From e60013478664db1b792a9c970078c8c1e676d0ac Mon Sep 17 00:00:00 2001 From: Shadooow Date: Sat, 1 Jan 2022 20:44:21 +0000 Subject: [PATCH] fixed bug allowing to move robot without soldier having control device if they were both in party where another soldier not chosen to move had the device git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@9227 3b4a5df2-a311-0410-b5c6-a8a6f20db521 --- Strategic/Map Screen Interface.cpp | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/Strategic/Map Screen Interface.cpp b/Strategic/Map Screen Interface.cpp index ed30851d..fc937d83 100644 --- a/Strategic/Map Screen Interface.cpp +++ b/Strategic/Map Screen Interface.cpp @@ -4604,11 +4604,22 @@ void HandleSettingTheSelectedListOfMercs( void ) { INT8 pbErrorNumber = -1; pSoldier = MercPtrs[gCharactersList[GetSelectedDestChar()].usSolID]; - if (!CanCharacterMoveInStrategic(pSoldier, &pbErrorNumber)) + INT8 bSquadValue = pSoldier->bAssignment; + + // find number of characters in particular squad. + for (INT8 bCounter = 0; bCounter < NUMBER_OF_SOLDIERS_PER_SQUAD; ++bCounter) { - SetSelectedDestChar(-1); - giDestHighLine = -1; - return; + // valid slot? + if (Squad[bSquadValue][bCounter] != NULL && !CanCharacterMoveInStrategic(Squad[bSquadValue][bCounter], &pbErrorNumber)) + { + if (pbErrorNumber != -1) + { + ReportMapScreenMovementError(pbErrorNumber); + } + SetSelectedDestChar(-1); + giDestHighLine = -1; + return; + } } // set cursor SetUpCursorForStrategicMap( );