summaryrefslogtreecommitdiffstats
path: root/src/Piston.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Piston.cpp')
-rw-r--r--src/Piston.cpp13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/Piston.cpp b/src/Piston.cpp
index 048cc355d..63ffbad0b 100644
--- a/src/Piston.cpp
+++ b/src/Piston.cpp
@@ -24,7 +24,6 @@ const int PISTON_TICK_DELAY = 6;
cPiston::cPiston(cWorld * a_World)
: m_World(a_World)
{
-
}
@@ -132,19 +131,21 @@ void cPiston::RetractPiston(int pistx, int pisty, int pistz)
// Already retracted, bail out
return;
}
-
- m_World->BroadcastBlockAction(pistx, pisty, pistz, 1, pistonMeta & ~(8), pistonBlock);
- m_World->BroadcastSoundEffect("tile.piston.in", pistx * 8, pisty * 8, pistz * 8, 0.5f, 0.7f);
- m_World->SetBlock(pistx, pisty, pistz, pistonBlock, pistonMeta & ~(8));
// Check the extension:
AddDir(pistx, pisty, pistz, pistonMeta, 1);
if (m_World->GetBlock(pistx, pisty, pistz) != E_BLOCK_PISTON_EXTENSION)
{
- LOGD("%s: Piston without an extension?", __FUNCTION__);
+ LOGD("%s: Piston without an extension - still extending, or just in an invalid state?", __FUNCTION__);
return;
}
+ AddDir(pistx, pisty, pistz, pistonMeta, -1);
+ m_World->BroadcastBlockAction(pistx, pisty, pistz, 1, pistonMeta & ~(8), pistonBlock);
+ m_World->BroadcastSoundEffect("tile.piston.in", pistx * 8, pisty * 8, pistz * 8, 0.5f, 0.7f);
+ m_World->SetBlock(pistx, pisty, pistz, pistonBlock, pistonMeta & ~(8));
+ AddDir(pistx, pisty, pistz, pistonMeta, 1);
+
// Retract the extension, pull block if appropriate
if (IsSticky(pistonBlock))
{