mirror of
https://github.com/1dot13/source.git
synced 2026-08-05 14:00:23 +02:00
- began cleaning of buggy LuaInitNPCCode (WIP)
- Fix: enemy NPCs (Mike) cannot surrender - Fix: in combat, ordering cleaning of guns only applies to the currently selected merc git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@5921 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
+581
-861
File diff suppressed because it is too large
Load Diff
@@ -4754,11 +4754,11 @@ void CleanWeapons( BOOLEAN fEntireTeam )
|
||||
return;
|
||||
|
||||
// no functionality if not in tactical or in combat, or nobody is here
|
||||
if ( (guiCurrentScreen != GAME_SCREEN && guiCurrentScreen != MSG_BOX_SCREEN) || (gTacticalStatus.uiFlags & INCOMBAT) )
|
||||
if ( (guiCurrentScreen != GAME_SCREEN && guiCurrentScreen != MSG_BOX_SCREEN) )
|
||||
return;
|
||||
|
||||
// if in turnbased mode, perform this action only for the selected merc, and use up APs
|
||||
if ( !fEntireTeam || gTacticalStatus.uiFlags & TURNBASED )
|
||||
// if in combat, always only for selected merc
|
||||
if ( !fEntireTeam || (gTacticalStatus.uiFlags & INCOMBAT) )
|
||||
{
|
||||
if ( gusSelectedSoldier == NOBODY )
|
||||
return;
|
||||
|
||||
@@ -10188,7 +10188,8 @@ void PrisonerSurrenderMessageBoxCallBack( UINT8 ubExitValue )
|
||||
{
|
||||
if( pSoldier->bActive && ( pSoldier->sSectorX == gWorldSectorX ) && ( pSoldier->sSectorY == gWorldSectorY ) && ( pSoldier->bSectorZ == gbWorldSectorZ) )
|
||||
{
|
||||
if( pSoldier->stats.bLife >= OKLIFE )
|
||||
// only if not dying, and if not a NPC (Mike...)
|
||||
if( pSoldier->stats.bLife >= OKLIFE && pSoldier->ubProfile == NO_PROFILE )
|
||||
{
|
||||
pSoldier->bSoldierFlagMask |= SOLDIER_POW;
|
||||
|
||||
|
||||
@@ -14226,8 +14226,8 @@ BOOLEAN SOLDIERTYPE::IsFeedingExternal(UINT8* pubId1, UINT16* pGunSlot1, UINT16
|
||||
|
||||
// do this check for both hands
|
||||
UINT16 firstslot = HANDPOS;
|
||||
UINT16 lastslot = SECONDHANDPOS;
|
||||
for (UINT16 invpos = firstslot; invpos <= lastslot; ++invpos)
|
||||
UINT16 lastslot = VESTPOCKPOS;
|
||||
for (UINT16 invpos = firstslot; invpos < lastslot; ++invpos)
|
||||
{
|
||||
// do we have ammo in our hands?
|
||||
OBJECTTYPE* pAmmoObj = &(this->inv[invpos]);
|
||||
@@ -14257,10 +14257,6 @@ BOOLEAN SOLDIERTYPE::IsFeedingExternal(UINT8* pubId1, UINT16* pGunSlot1, UINT16
|
||||
INT32 lastid = gTacticalStatus.Team[ this->bTeam ].bLastID;
|
||||
for ( pTeamSoldier = MercPtrs[ cnt ]; cnt < lastid; ++cnt, ++pTeamSoldier)
|
||||
{
|
||||
// we ourselves don't count, we can't face ourselves
|
||||
//if ( cnt == this->ubID )
|
||||
//continue;
|
||||
|
||||
// check if teamsoldier exists in this sector
|
||||
if ( !pTeamSoldier || !pTeamSoldier->bActive || !pTeamSoldier->bInSector || pTeamSoldier->sSectorX != this->sSectorX || pTeamSoldier->sSectorY != this->sSectorY || pTeamSoldier->bSectorZ != this->bSectorZ )
|
||||
continue;
|
||||
@@ -14363,9 +14359,6 @@ BOOLEAN SOLDIERTYPE::IsFeedingExternal(UINT8* pubId1, UINT16* pGunSlot1, UINT16
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// if we reach this point, the only soldier that we could reach doesn't fit -> stop this search
|
||||
//break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user