diff --git a/source/hazard/hazard.cpp b/source/hazard/hazard.cpp index 359173ce9..3b61a1c7a 100644 --- a/source/hazard/hazard.cpp +++ b/source/hazard/hazard.cpp @@ -70,7 +70,16 @@ void CNpcHazard::think(int _frames) if ( m_isActive ) { - processMovement( _frames ); + int moveFrames = _frames; + + if ( moveFrames > 2 ) + { + // make sure hazards don't go berserk if too many frames are dropped + + moveFrames = 2; + } + + processMovement( moveFrames ); } if ( m_timerActive ) diff --git a/source/platform/pbubble.cpp b/source/platform/pbubble.cpp index b2c440399..77d1c2e7f 100644 --- a/source/platform/pbubble.cpp +++ b/source/platform/pbubble.cpp @@ -19,10 +19,5 @@ void CNpcBubblePlatform::processMovement( int _frames ) { - if ( _frames > 2 ) - { - _frames = 2; - } - Pos.vy -= m_data[m_type].speed * _frames; } \ No newline at end of file diff --git a/source/platform/platform.cpp b/source/platform/platform.cpp index c2eb15f65..ca940e35b 100644 --- a/source/platform/platform.cpp +++ b/source/platform/platform.cpp @@ -418,7 +418,16 @@ void CNpcPlatform::think(int _frames) m_reversed = false; } - processMovement(_frames); + int moveFrames = _frames; + + if ( moveFrames > 2 ) + { + // make sure platforms don't go berserk if too many frames are dropped + + moveFrames = 2; + } + + processMovement( moveFrames ); m_contact = false; }