mirror of
https://github.com/1dot13/source.git
synced 2026-07-29 13:52:17 +02:00
Fix: under certain circumstances, militia gear was not dropped correctly (a result of fixing the 'drop gear twice' bug)
git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@5997 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
@@ -6133,11 +6133,11 @@ BOOLEAN HandleDefiniteUnloadingOfWorld( UINT8 ubUnloadCode )
|
||||
else if( ubUnloadCode == ABOUT_TO_TRASH_WORLD )
|
||||
{
|
||||
//if we arent loading a saved game
|
||||
/*if( !(gTacticalStatus.uiFlags & LOADING_SAVED_GAME ) )
|
||||
if( !(gTacticalStatus.uiFlags & LOADING_SAVED_GAME ) )
|
||||
{
|
||||
// Flugente: cause all militia whose equipment is from this sector to drop it
|
||||
TeamDropAll( MILITIA_TEAM );
|
||||
}*/
|
||||
}
|
||||
|
||||
//Save the current sectors open temp files to the disk
|
||||
if( !SaveCurrentSectorsInformationToTempItemFile() )
|
||||
|
||||
@@ -15721,6 +15721,13 @@ BOOLEAN SOLDIERTYPE::UpdateMultiTurnAction()
|
||||
|
||||
void SOLDIERTYPE::DropSectorEquipment()
|
||||
{
|
||||
// not if we already dropped the gear
|
||||
if ( this->bSoldierFlagMask & SOLDIER_EQUIPMENT_DROPPED )
|
||||
return;
|
||||
|
||||
// set marker: we are about to drop our gear
|
||||
this->bSoldierFlagMask |= SOLDIER_EQUIPMENT_DROPPED;
|
||||
|
||||
OBJECTTYPE* pObj = NULL;
|
||||
UINT8 size = this->inv.size();
|
||||
|
||||
|
||||
@@ -365,8 +365,8 @@ enum
|
||||
#define SOLDIER_ASSASSIN 0x00000800 //2048 // we are an enemy assassin, and thus we will behave very different from normal enemies
|
||||
|
||||
#define SOLDIER_POW_PRISON 0x00001000 //4096 // this guy is a prisoner of war in a prison sector. SOLDIER_POW refers to people we capture, this refers to people we hold captive
|
||||
/*#define SOLDIER_EQ_EMPTY 0x00002000 //8192 // this militia has no equipment and is to be equipped from the sector inventory
|
||||
#define ENEMY_NET_3_LVL_4 0x00004000 //16384
|
||||
#define SOLDIER_EQUIPMENT_DROPPED 0x00002000 //8192 // under certain circumstances, militia can be ordered to drop their gear twice. Thus we set a marker to avoid that.
|
||||
/*#define ENEMY_NET_3_LVL_4 0x00004000 //16384
|
||||
#define ENEMY_NET_4_LVL_4 0x00008000 //32768
|
||||
|
||||
#define PLAYER_NET_1_LVL_1 0x00010000 //65536
|
||||
|
||||
@@ -2967,6 +2967,9 @@ SOLDIERTYPE* ReserveTacticalMilitiaSoldierForAutoresolve( UINT8 ubSoldierClass )
|
||||
if( !pSoldier )
|
||||
return NULL;
|
||||
|
||||
// the militia in autoresolve will drop their gear after combat. For this reason, there is no need for MercPtrs[i] to also drop it
|
||||
MercPtrs[i]->bSoldierFlagMask |= SOLDIER_EQUIPMENT_DROPPED;
|
||||
|
||||
//Assign a bogus ID, then return it
|
||||
pSoldier->ubID = 255;
|
||||
return pSoldier;
|
||||
|
||||
Reference in New Issue
Block a user