Use SoldierID

Fixed if conditions as well
SOLDIERTYPE::ubProfile would never match with values above NOBODY
This commit is contained in:
Asdow
2024-11-20 23:02:39 +02:00
parent a9120ef984
commit 1ec2867ced
+9 -10
View File
@@ -7562,12 +7562,11 @@ static int l_EVENT_InitNewSoldierAnim (lua_State *L)
if ( lua_gettop(L) >= 3 ) if ( lua_gettop(L) >= 3 )
{ {
UINT16 ubTargetNPC = lua_tointeger(L,1); UINT16 ubTargetNPC = lua_tointeger(L,1);
//if (i == 2 ) BodyType = lua_tointeger(L,i);
UINT32 ANIM = lua_tointeger(L,2); UINT32 ANIM = lua_tointeger(L,2);
INT32 cnt = lua_tointeger(L,3); SoldierID solID = lua_tointeger(L,3);
//if (i == 4 ) PlayerControl = lua_tointeger(L,i);
if (ubTargetNPC > NOBODY) // This is not my favorite, but now it will at least work. -Asdow
if (ubTargetNPC != NOBODY)
{ {
SOLDIERTYPE* pSoldier = FindSoldierByProfileID ( ubTargetNPC, TRUE ); SOLDIERTYPE* pSoldier = FindSoldierByProfileID ( ubTargetNPC, TRUE );
if ( pSoldier )//&& pSoldier->ubBodyType == BodyType ) if ( pSoldier )//&& pSoldier->ubBodyType == BodyType )
@@ -7576,10 +7575,10 @@ static int l_EVENT_InitNewSoldierAnim (lua_State *L)
pSoldier->EVENT_InitNewSoldierAnim( ANIM, 0, TRUE ); pSoldier->EVENT_InitNewSoldierAnim( ANIM, 0, TRUE );
} }
} }
else if (ubTargetNPC == NOBODY) else
{ {
if ( MercPtrs[ cnt ]->bInSector ) if ( solID != NOBODY && solID->bInSector )
MercPtrs[ cnt ]->EVENT_InitNewSoldierAnim( ANIM, 0, TRUE ); solID->EVENT_InitNewSoldierAnim( ANIM, 0, TRUE );
} }
} }
@@ -8049,12 +8048,12 @@ static int l_ChangeMercPtrsTeam (lua_State *L)
{ {
if ( lua_gettop(L) >= 2 ) if ( lua_gettop(L) >= 2 )
{ {
UINT16 UID = lua_tointeger(L,1); SoldierID UID = lua_tointeger(L,1);
INT8 Side = lua_tointeger(L,2); 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;
} }
} }