From 8464f689ea214d3c30105ae58539885cf1268317 Mon Sep 17 00:00:00 2001 From: Tycho Date: Tue, 4 Feb 2014 10:59:05 -0800 Subject: Improved Type safety of eBlockFace May Fix #640 --- src/Items/ItemBoat.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/Items/ItemBoat.h') diff --git a/src/Items/ItemBoat.h b/src/Items/ItemBoat.h index 79c8e9589..31d1ca52e 100644 --- a/src/Items/ItemBoat.h +++ b/src/Items/ItemBoat.h @@ -29,9 +29,9 @@ public: - virtual bool OnItemUse(cWorld * a_World, cPlayer * a_Player, const cItem & a_Item, int a_BlockX, int a_BlockY, int a_BlockZ, char a_Dir) override + virtual bool OnItemUse(cWorld * a_World, cPlayer * a_Player, const cItem & a_Item, int a_BlockX, int a_BlockY, int a_BlockZ, eBlockFace a_Dir) override { - if (a_Dir > 0) + if (a_Dir != BLOCK_FACE_YM || a_Dir != BLOCK_FACE_NONE) { return false; } -- cgit v1.2.3 From 75e0b38d835d5707494218748a404bc284f37852 Mon Sep 17 00:00:00 2001 From: tonibm19 Date: Mon, 10 Feb 2014 18:17:44 +0100 Subject: Maybe fixed boat placing --- src/Items/ItemBoat.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/Items/ItemBoat.h') diff --git a/src/Items/ItemBoat.h b/src/Items/ItemBoat.h index 31d1ca52e..dd6eaaf14 100644 --- a/src/Items/ItemBoat.h +++ b/src/Items/ItemBoat.h @@ -31,7 +31,7 @@ public: virtual bool OnItemUse(cWorld * a_World, cPlayer * a_Player, const cItem & a_Item, int a_BlockX, int a_BlockY, int a_BlockZ, eBlockFace a_Dir) override { - if (a_Dir != BLOCK_FACE_YM || a_Dir != BLOCK_FACE_NONE) + if (a_Dir > 0) { return false; } -- cgit v1.2.3 From 23f69bc0931a6b2f5b9575283abb6c63d306655a Mon Sep 17 00:00:00 2001 From: worktycho Date: Mon, 10 Feb 2014 17:59:17 +0000 Subject: Fixed stupid mistax in conditional boats can't be placed if the face is not block_face_none and not block_face_YM, not if it is only not one. --- src/Items/ItemBoat.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'src/Items/ItemBoat.h') diff --git a/src/Items/ItemBoat.h b/src/Items/ItemBoat.h index 31d1ca52e..929533c9c 100644 --- a/src/Items/ItemBoat.h +++ b/src/Items/ItemBoat.h @@ -1,4 +1,3 @@ - // ItemBoat.h // Declares the various boat ItemHandlers @@ -31,7 +30,7 @@ public: virtual bool OnItemUse(cWorld * a_World, cPlayer * a_Player, const cItem & a_Item, int a_BlockX, int a_BlockY, int a_BlockZ, eBlockFace a_Dir) override { - if (a_Dir != BLOCK_FACE_YM || a_Dir != BLOCK_FACE_NONE) + if (a_Dir != BLOCK_FACE_YM && a_Dir != BLOCK_FACE_NONE) { return false; } -- cgit v1.2.3 From 7ad4a86c4947a619951db9fdad4f37bbb4252236 Mon Sep 17 00:00:00 2001 From: worktycho Date: Mon, 10 Feb 2014 18:06:49 +0000 Subject: Added additional parenthasies --- src/Items/ItemBoat.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'src/Items/ItemBoat.h') diff --git a/src/Items/ItemBoat.h b/src/Items/ItemBoat.h index b45485251..a28ec8e22 100644 --- a/src/Items/ItemBoat.h +++ b/src/Items/ItemBoat.h @@ -1,4 +1,3 @@ - // ItemBoat.h // Declares the various boat ItemHandlers @@ -31,7 +30,7 @@ public: virtual bool OnItemUse(cWorld * a_World, cPlayer * a_Player, const cItem & a_Item, int a_BlockX, int a_BlockY, int a_BlockZ, eBlockFace a_Dir) override { - if (a_Dir != BLOCK_FACE_YM && a_Dir != BLOCK_FACE_NONE) + if ((a_Dir != BLOCK_FACE_YM) && (a_Dir != BLOCK_FACE_NONE)) { return false; } -- cgit v1.2.3 From 5c6d4745990a0aa90d0c6c01da65d6e8dfa32bfc Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Wed, 2 Apr 2014 16:40:13 +0200 Subject: Fixed boat placement code. --- src/Items/ItemBoat.h | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) (limited to 'src/Items/ItemBoat.h') diff --git a/src/Items/ItemBoat.h b/src/Items/ItemBoat.h index a28ec8e22..42f4ffc8f 100644 --- a/src/Items/ItemBoat.h +++ b/src/Items/ItemBoat.h @@ -39,12 +39,20 @@ public: public cBlockTracer::cCallbacks { public: - Vector3d Pos; - virtual bool OnNextBlock(int a_BlockX, int a_BlockY, int a_BlockZ, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta, char a_EntryFace) override + Vector3d m_Pos; + bool m_HasFound; + + cCallbacks(void) : + m_HasFound(false) { - if (a_BlockType != E_BLOCK_AIR) + } + + virtual bool OnNextBlock(int a_CBBlockX, int a_CBBlockY, int a_CBBlockZ, BLOCKTYPE a_CBBlockType, NIBBLETYPE a_CBBlockMeta, char a_CBEntryFace) override + { + if (a_CBBlockType != E_BLOCK_AIR) { - Pos = Vector3d(a_BlockX, a_BlockY, a_BlockZ); + m_Pos.Set(a_CBBlockX, a_CBBlockY, a_CBBlockZ); + m_HasFound = true; return true; } return false; @@ -57,15 +65,15 @@ public: Tracer.Trace(Start.x, Start.y, Start.z, End.x, End.y, End.z); - double x = Callbacks.Pos.x; - double y = Callbacks.Pos.y; - double z = Callbacks.Pos.z; - - if ((x == 0) && (y == 0) && (z == 0)) + if (!Callbacks.m_HasFound) { return false; } + double x = Callbacks.m_Pos.x; + double y = Callbacks.m_Pos.y; + double z = Callbacks.m_Pos.z; + cBoat * Boat = new cBoat(x + 0.5, y + 1, z + 0.5); Boat->Initialize(a_World); -- cgit v1.2.3