From 1ec2867ced7484dfb158aae849d4e8e6b1939aa9 Mon Sep 17 00:00:00 2001 From: Asdow <20314541+Asdow@users.noreply.github.com> Date: Wed, 20 Nov 2024 22:59:56 +0200 Subject: [PATCH] Use SoldierID Fixed if conditions as well SOLDIERTYPE::ubProfile would never match with values above NOBODY --- Strategic/LuaInitNPCs.cpp | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/Strategic/LuaInitNPCs.cpp b/Strategic/LuaInitNPCs.cpp index ce76428c..e2c431e4 100644 --- a/Strategic/LuaInitNPCs.cpp +++ b/Strategic/LuaInitNPCs.cpp @@ -7562,12 +7562,11 @@ static int l_EVENT_InitNewSoldierAnim (lua_State *L) if ( lua_gettop(L) >= 3 ) { UINT16 ubTargetNPC = lua_tointeger(L,1); - //if (i == 2 ) BodyType = lua_tointeger(L,i); UINT32 ANIM = lua_tointeger(L,2); - INT32 cnt = lua_tointeger(L,3); - //if (i == 4 ) PlayerControl = lua_tointeger(L,i); + SoldierID solID = lua_tointeger(L,3); - if (ubTargetNPC > NOBODY) + // This is not my favorite, but now it will at least work. -Asdow + if (ubTargetNPC != NOBODY) { SOLDIERTYPE* pSoldier = FindSoldierByProfileID ( ubTargetNPC, TRUE ); if ( pSoldier )//&& pSoldier->ubBodyType == BodyType ) @@ -7576,10 +7575,10 @@ static int l_EVENT_InitNewSoldierAnim (lua_State *L) pSoldier->EVENT_InitNewSoldierAnim( ANIM, 0, TRUE ); } } - else if (ubTargetNPC == NOBODY) + else { - if ( MercPtrs[ cnt ]->bInSector ) - MercPtrs[ cnt ]->EVENT_InitNewSoldierAnim( ANIM, 0, TRUE ); + if ( solID != NOBODY && solID->bInSector ) + solID->EVENT_InitNewSoldierAnim( ANIM, 0, TRUE ); } } @@ -8049,12 +8048,12 @@ static int l_ChangeMercPtrsTeam (lua_State *L) { if ( lua_gettop(L) >= 2 ) { - UINT16 UID = lua_tointeger(L,1); + SoldierID UID = lua_tointeger(L,1); INT8 Side = lua_tointeger(L,2); - if ( MercPtrs[UID] && MercPtrs[ UID ]->bInSector && MercPtrs[ UID ]->bActive ) + if ( UID != NOBODY && UID->bInSector && UID->bActive ) { - MercPtrs[UID]->bSide = Side; + UID->bSide = Side; } }