mirror of
https://github.com/1dot13/source.git
synced 2026-08-05 14:00:23 +02:00
Prisoner feature bugfix (#110)
* Allow game to continue after offering to surrender to enemies * Fix issues related to surrender and POW quests - Quests were ended prematurely if one had prisoners in both alma and tixa - Strategic status flags for rescue/escape were not set properly - Only the maximum amount a prison can hold will be taken as POWs, rest of the mercs will either escape or have to fight to the death, to prevent a player having unrescuable POWs - Capturing a mercenary had a lot of functions called that should not have been, IF the merc is not going to be captured after all * Switch all tactical surrender calls to use one unified function * Only mercs that are capable can escape Incapacitated mercs left behind will die. Should probably prioritize incapacitated mercs to be captured by the enemy to prevent needless deaths * Combine pow quest state changes into one function * Add JumpIntoEscapedSector to header file * Allow enemy to demand surrender even if they already have POWs in Tixa and Alma * Remove surrender from UB * Address review feedback
This commit is contained in:
@@ -255,7 +255,6 @@ void CreatePlayerControlledMonster();
|
||||
void ChangeCurrentSquad( INT32 iSquad );
|
||||
void HandleSelectMercSlot( UINT8 ubPanelSlot, INT8 bCode );
|
||||
void EscapeUILock( );
|
||||
void TestCapture( );
|
||||
|
||||
#ifdef JA2BETAVERSION
|
||||
void ToggleMapEdgepoints();
|
||||
@@ -4476,9 +4475,8 @@ void GetKeyboardInput( UINT32 *puiNewEvent )
|
||||
{
|
||||
if ( CHEATER_CHEAT_LEVEL( ) )
|
||||
{
|
||||
TestCapture( );
|
||||
|
||||
//EnterCombatMode( gbPlayerNum );
|
||||
// Test Capturing Mercs as POW
|
||||
AttemptToCapturePlayerSoldiers();
|
||||
}
|
||||
}
|
||||
else if ( fCtrl && fShift )
|
||||
@@ -6536,42 +6534,6 @@ void HandleStealthChangeFromUIKeys( )
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
void TestCapture( )
|
||||
{
|
||||
INT32 cnt;
|
||||
SOLDIERTYPE *pSoldier;
|
||||
UINT32 uiNumChosen = 0;
|
||||
|
||||
//StartQuest( QUEST_HELD_IN_ALMA, gWorldSectorX, gWorldSectorY );
|
||||
//EndQuest( QUEST_HELD_IN_ALMA, gWorldSectorX, gWorldSectorY );
|
||||
|
||||
BeginCaptureSquence( );
|
||||
|
||||
gStrategicStatus.uiFlags &= (~STRATEGIC_PLAYER_CAPTURED_FOR_RESCUE );
|
||||
|
||||
// loop through soldiers and pick 3 lucky ones....
|
||||
for ( cnt = gTacticalStatus.Team[gbPlayerNum].bFirstID, pSoldier=MercPtrs[cnt]; cnt <= gTacticalStatus.Team[gbPlayerNum].bLastID; cnt++, pSoldier++ )
|
||||
{
|
||||
if ( pSoldier->stats.bLife >= OKLIFE && pSoldier->bActive && pSoldier->bInSector )
|
||||
{
|
||||
if ( uiNumChosen < 3 )
|
||||
{
|
||||
EnemyCapturesPlayerSoldier( pSoldier );
|
||||
|
||||
// Remove them from tectical....
|
||||
pSoldier->RemoveSoldierFromGridNo( );
|
||||
|
||||
uiNumChosen++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
EndCaptureSequence( );
|
||||
}
|
||||
|
||||
|
||||
void PopupAssignmentMenuInTactical( SOLDIERTYPE *pSoldier )
|
||||
{
|
||||
// do something
|
||||
|
||||
Reference in New Issue
Block a user