diff options
author | Tycho <work.tycho+git@gmail.com> | 2014-04-02 16:51:48 +0200 |
---|---|---|
committer | Tycho <work.tycho+git@gmail.com> | 2014-04-02 16:51:48 +0200 |
commit | 0075b2f72eb18f9283ae02b7b9a69bdb52d2bd46 (patch) | |
tree | edf3601fa8b13bfd93be14df2ba0fb112d2cad3d /src/Items/ItemBoat.h | |
parent | Merge branch 'master' into HTTPSizeT (diff) | |
parent | Fixed boat placement code. (diff) | |
download | cuberite-0075b2f72eb18f9283ae02b7b9a69bdb52d2bd46.tar cuberite-0075b2f72eb18f9283ae02b7b9a69bdb52d2bd46.tar.gz cuberite-0075b2f72eb18f9283ae02b7b9a69bdb52d2bd46.tar.bz2 cuberite-0075b2f72eb18f9283ae02b7b9a69bdb52d2bd46.tar.lz cuberite-0075b2f72eb18f9283ae02b7b9a69bdb52d2bd46.tar.xz cuberite-0075b2f72eb18f9283ae02b7b9a69bdb52d2bd46.tar.zst cuberite-0075b2f72eb18f9283ae02b7b9a69bdb52d2bd46.zip |
Diffstat (limited to 'src/Items/ItemBoat.h')
-rw-r--r-- | src/Items/ItemBoat.h | 26 |
1 files changed, 17 insertions, 9 deletions
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); |