mirror of
https://github.com/1dot13/source.git
synced 2026-09-09 14:46:05 +02:00
- Fix: When retreating from tactical combat, militia gear was not dropped correctly
- Fix: Under certain circumstances, militia dropped gear twice in autoresolve git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@5926 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 )
|
else if( ubUnloadCode == ABOUT_TO_TRASH_WORLD )
|
||||||
{
|
{
|
||||||
//if we arent loading a saved game
|
//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
|
// Flugente: cause all militia whose equipment is from this sector to drop it
|
||||||
TeamDropAll( MILITIA_TEAM );
|
TeamDropAll( MILITIA_TEAM );
|
||||||
}
|
}*/
|
||||||
|
|
||||||
//Save the current sectors open temp files to the disk
|
//Save the current sectors open temp files to the disk
|
||||||
if( !SaveCurrentSectorsInformationToTempItemFile() )
|
if( !SaveCurrentSectorsInformationToTempItemFile() )
|
||||||
@@ -6274,8 +6274,14 @@ BOOLEAN CheckAndHandleUnloadingOfCurrentWorld()
|
|||||||
// Added logic to prevent a crash when player mercs would retreat from a battle involving militia and enemies.
|
// Added logic to prevent a crash when player mercs would retreat from a battle involving militia and enemies.
|
||||||
// Without the return here, it would proceed to trash the world, and then when autoresolve would come up to
|
// Without the return here, it would proceed to trash the world, and then when autoresolve would come up to
|
||||||
// finish the tactical battle, it would fail to find the existing soldier information (because it was trashed).
|
// finish the tactical battle, it would fail to find the existing soldier information (because it was trashed).
|
||||||
if( HandlePotentialBringUpAutoresolveToFinishBattle( sBattleSectorX, sBattleSectorY, sBattleSectorZ ) )
|
if( HandlePotentialBringUpAutoresolveToFinishBattle( sBattleSectorX, sBattleSectorY, sBattleSectorZ ) )
|
||||||
{
|
{
|
||||||
|
// Flugente: cause all militia whose equipment is from this sector to drop it - otherwise it can get lost
|
||||||
|
TeamDropAll( MILITIA_TEAM, TRUE );
|
||||||
|
|
||||||
|
// Save the current sectors Item list to a temporary file, if its not the first time in
|
||||||
|
SaveCurrentSectorsInformationToTempItemFile();
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
//end
|
//end
|
||||||
|
|||||||
@@ -10291,15 +10291,16 @@ void HandleSurrenderOffer( SOLDIERTYPE* pSoldier )
|
|||||||
DoMessageBox( MSG_BOX_BASIC_MEDIUM_BUTTONS, TacticalStr[ PRISONER_OFFER_SURRENDER ], guiCurrentScreen, MSG_BOX_FLAG_GENERIC_FOUR_BUTTONS, PrisonerSurrenderMessageBoxCallBack, NULL );
|
DoMessageBox( MSG_BOX_BASIC_MEDIUM_BUTTONS, TacticalStr[ PRISONER_OFFER_SURRENDER ], guiCurrentScreen, MSG_BOX_FLAG_GENERIC_FOUR_BUTTONS, PrisonerSurrenderMessageBoxCallBack, NULL );
|
||||||
}
|
}
|
||||||
|
|
||||||
void TeamDropAll(UINT8 bTeam)
|
void TeamDropAll(UINT8 bTeam, BOOLEAN fForce)
|
||||||
{
|
{
|
||||||
if ( bTeam > PLAYER_PLAN )
|
if ( bTeam > PLAYER_PLAN )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// not if there is a battle going on, or this team is hostile to us
|
// not if there is a battle going on
|
||||||
if ( (gTacticalStatus.uiFlags & INCOMBAT ) )
|
if ( (gTacticalStatus.uiFlags & INCOMBAT ) && !fForce )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
// not if this team is hostile to us
|
||||||
if ( gTacticalStatus.Team[ gbPlayerNum ].bSide != gTacticalStatus.Team[ bTeam ].bSide )
|
if ( gTacticalStatus.Team[ gbPlayerNum ].bSide != gTacticalStatus.Team[ bTeam ].bSide )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|||||||
+2
-1
@@ -408,6 +408,7 @@ STR16 GetNewTraitStr(UINT8 aTrait); // Flugente: deal with the insane new trait
|
|||||||
|
|
||||||
void HandleSurrenderOffer( SOLDIERTYPE* pSoldier ); // Flugente: offer the enemy the chance to surrender
|
void HandleSurrenderOffer( SOLDIERTYPE* pSoldier ); // Flugente: offer the enemy the chance to surrender
|
||||||
|
|
||||||
void TeamDropAll(UINT8 bTeam);
|
// setting fForce to TRUE allows dropping of gear in combat (used in auto-resolve instances)
|
||||||
|
void TeamDropAll(UINT8 bTeam, BOOLEAN fForce = FALSE);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
Reference in New Issue
Block a user