From 9a942fcb898157e3be8dfd4eae6d49baea6c4cad Mon Sep 17 00:00:00 2001 From: Shadooow Date: Fri, 21 May 2021 18:46:29 +0000 Subject: [PATCH] improved the way how marbles works, now it will work already when reaching the gridno where marbles are, not just when trying to exit it git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@9036 3b4a5df2-a311-0410-b5c6-a8a6f20db521 --- Tactical/Overhead.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/Tactical/Overhead.cpp b/Tactical/Overhead.cpp index 1aa146a6..38602d2d 100644 --- a/Tactical/Overhead.cpp +++ b/Tactical/Overhead.cpp @@ -2884,6 +2884,26 @@ BOOLEAN HandleAtNewGridNo( SOLDIERTYPE *pSoldier, BOOLEAN *pfKeepMoving ) return( FALSE ); } + if (pSoldier->pathing.bLevel == 0 && pSoldier->aiData.ubPendingAction != MERC_PICKUPITEM && (pSoldier->bOverTerrainType == FLAT_FLOOR || pSoldier->bOverTerrainType == PAVED_ROAD)) + { + INT32 iMarblesIndex; + if (MarblesExistAtLocation(pSoldier->sGridNo, 0, &iMarblesIndex)) + { + // Slip on marbles! + pSoldier->DoMercBattleSound(BATTLE_SOUND_CURSE1); + if (pSoldier->bTeam == gbPlayerNum) + { + ScreenMsg(FONT_MCOLOR_LTYELLOW, MSG_UI_FEEDBACK, Message[STR_SLIPPED_MARBLES], pSoldier->name); + } + RemoveItemFromPool(pSoldier->sGridNo, iMarblesIndex, 0); + SoldierCollapse(pSoldier); + if (pSoldier->bActionPoints > 0) + { + pSoldier->bActionPoints -= (INT8)(Random(pSoldier->bActionPoints) + 1); + } + return(FALSE); + } + } // Set "interrupt occurred" flag to false so that we will know whether *this // particular call* to HandleSight caused an interrupt