diff --git a/Graphics/levels/Chapter04/Level04/Level04.MEX b/Graphics/levels/Chapter04/Level04/Level04.MEX index 55c235626..8a7776ed7 100644 Binary files a/Graphics/levels/Chapter04/Level04/Level04.MEX and b/Graphics/levels/Chapter04/Level04/Level04.MEX differ diff --git a/Graphics/levels/Chapter04/Level04/level04.Mep b/Graphics/levels/Chapter04/Level04/level04.Mep index 5226ab9d0..78803f59b 100644 Binary files a/Graphics/levels/Chapter04/Level04/level04.Mep and b/Graphics/levels/Chapter04/Level04/level04.Mep differ diff --git a/source/enemy/nfdutch.cpp b/source/enemy/nfdutch.cpp index a5cf2a1be..c0eadad45 100644 --- a/source/enemy/nfdutch.cpp +++ b/source/enemy/nfdutch.cpp @@ -202,6 +202,23 @@ void CNpcFlyingDutchmanEnemy::processClose( int _frames ) m_extendDir = EXTEND_UP; } + CPlayer *player = GameScene.getPlayer(); + + DVECTOR const &playerPos = player->getPos(); + + s32 minX, maxX; + m_npcPath.getPathXExtents( &minX, &maxX ); + + if ( playerPos.vx < minX || playerPos.vx > maxX || + playerPos.vy < m_minY || playerPos.vy > m_maxY ) + { + if ( m_state != FLYING_DUTCHMAN_RETURN ) + { + m_state = FLYING_DUTCHMAN_RETURN; + m_timerTimer = 2 * GameState::getOneSecondInFrames(); + } + } + if ( !m_inRange ) { if ( playerYDistSqr > 100 )