summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/Entities/HangingEntity.cpp15
-rw-r--r--src/Entities/HangingEntity.h2
-rw-r--r--src/WorldStorage/WSSAnvil.cpp2
3 files changed, 17 insertions, 2 deletions
diff --git a/src/Entities/HangingEntity.cpp b/src/Entities/HangingEntity.cpp
index 8c70c606e..e789f5f18 100644
--- a/src/Entities/HangingEntity.cpp
+++ b/src/Entities/HangingEntity.cpp
@@ -21,6 +21,21 @@ cHangingEntity::cHangingEntity(eEntityType a_EntityType, eBlockFace a_BlockFace,
+void cHangingEntity::SetDirection(eBlockFace a_BlockFace)
+{
+ if ((a_BlockFace < 2) || (a_BlockFace > 5))
+ {
+ ASSERT(!"Tried to set a bad direction!");
+ return;
+ }
+
+ m_BlockFace = a_BlockFace;
+}
+
+
+
+
+
void cHangingEntity::SpawnOn(cClientHandle & a_ClientHandle)
{
int Dir = 0;
diff --git a/src/Entities/HangingEntity.h b/src/Entities/HangingEntity.h
index 3593f9ede..455f2f23f 100644
--- a/src/Entities/HangingEntity.h
+++ b/src/Entities/HangingEntity.h
@@ -24,7 +24,7 @@ public:
eBlockFace GetDirection() const { return m_BlockFace; } // tolua_export
/** Set the orientation from the hanging entity */
- void SetDirection(eBlockFace a_BlockFace) { m_BlockFace = a_BlockFace; } // tolua_export
+ void SetDirection(eBlockFace a_BlockFace); // tolua_export
/** Returns the X coord. */
int GetTileX() const { return POSX_TOINT; } // tolua_export
diff --git a/src/WorldStorage/WSSAnvil.cpp b/src/WorldStorage/WSSAnvil.cpp
index bd814e2c7..7a9490cd4 100644
--- a/src/WorldStorage/WSSAnvil.cpp
+++ b/src/WorldStorage/WSSAnvil.cpp
@@ -1664,7 +1664,7 @@ void cWSSAnvil::LoadHangingFromNBT(cHangingEntity & a_Hanging, const cParsedNBT
if (Direction > 0)
{
Direction = (int)a_NBT.GetByte(Direction);
- if ((Direction < 0) || (Direction > 5))
+ if ((Direction < 2) || (Direction > 5))
{
a_Hanging.SetDirection(BLOCK_FACE_NORTH);
}