mirror of
https://github.com/1dot13/source.git
synced 2026-07-22 13:40:22 +02:00
Merged revision(s) 7634 from branches/ja2_source_official_2014:
Fix: NPCs could be handcuffed. This is useless as long as there are no routines that handle their removal and interrogation. git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@7635 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
@@ -1248,7 +1248,7 @@ INT32 HandleItem( SOLDIERTYPE *pSoldier, INT32 sGridNo, INT8 bLevel, UINT16 usHa
|
||||
}
|
||||
|
||||
// Flugente: handcuffing people
|
||||
if ( gGameExternalOptions.fAllowPrisonerSystem && HasItemFlag(usHandItem, HANDCUFFS ) )
|
||||
if ( gGameExternalOptions.fAllowPrisonerSystem && HasItemFlag( usHandItem, HANDCUFFS ) && pTargetSoldier && pTargetSoldier->CanBeHandcuffed( ) )
|
||||
{
|
||||
// ATE: AI CANNOT GO THROUGH HERE!
|
||||
INT32 usMapPos;
|
||||
|
||||
@@ -16170,6 +16170,16 @@ BOOLEAN SOLDIERTYPE::FreePrisoner( )
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
// can this guy be handcuffed?
|
||||
BOOLEAN SOLDIERTYPE::CanBeHandcuffed( )
|
||||
{
|
||||
// if this is an enemy that has not already been captured, and is not a NPC, we can handcuff and thus capture him
|
||||
if ( this->bTeam == ENEMY_TEAM && !(this->usSoldierFlagMask & SOLDIER_POW) && this->ubProfile == NO_PROFILE )
|
||||
return TRUE;
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
// Flugente: scuba gear
|
||||
BOOLEAN SOLDIERTYPE::UsesScubaGear( )
|
||||
{
|
||||
@@ -19829,7 +19839,7 @@ void SOLDIERTYPE::EVENT_SoldierHandcuffPerson( INT32 sGridNo, UINT8 ubDirection
|
||||
|
||||
UINT8 ubPerson = WhoIsThere2( sGridNo, this->pathing.bLevel );
|
||||
|
||||
if ( ubPerson != NOBODY && MercPtrs[ubPerson]->bTeam == ENEMY_TEAM && !(MercPtrs[ubPerson]->usSoldierFlagMask & SOLDIER_POW) )
|
||||
if ( ubPerson != NOBODY && MercPtrs[ubPerson]->CanBeHandcuffed( ) )
|
||||
{
|
||||
// we found someone we can handcuff
|
||||
SOLDIERTYPE* pSoldier = MercPtrs[ubPerson];
|
||||
|
||||
@@ -1769,6 +1769,7 @@ public:
|
||||
BOOLEAN CanProcessPrisoners();
|
||||
UINT32 GetSurrenderStrength();
|
||||
BOOLEAN FreePrisoner(); // used for an enemy liberating fellow prisoners
|
||||
BOOLEAN CanBeHandcuffed(); // can this guy be handcuffed?
|
||||
|
||||
// Flugente: scuba gear
|
||||
BOOLEAN UsesScubaGear();
|
||||
|
||||
@@ -2253,11 +2253,9 @@ UINT8 HandleHandcuffCursor( SOLDIERTYPE *pSoldier, INT32 sGridNo, UINT32 uiCurso
|
||||
{
|
||||
// is there a person here?
|
||||
UINT8 usSoldierIndex = WhoIsThere2( sGridNo, pSoldier->pathing.bLevel );
|
||||
if ( usSoldierIndex != NOBODY )
|
||||
if ( usSoldierIndex != NOBODY && MercPtrs[usSoldierIndex]->CanBeHandcuffed( ) )
|
||||
{
|
||||
// no handcuffing if the guy is already caught...
|
||||
if ( !(MercPtrs[usSoldierIndex]->usSoldierFlagMask & SOLDIER_POW) )
|
||||
return( HANDCUFF_GREY_UICURSOR );
|
||||
return( HANDCUFF_GREY_UICURSOR );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user