mirror of
https://github.com/1dot13/source.git
synced 2026-09-09 14:46:05 +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
|
// Flugente: handcuffing people
|
||||||
if ( gGameExternalOptions.fAllowPrisonerSystem && HasItemFlag(usHandItem, HANDCUFFS ) )
|
if ( gGameExternalOptions.fAllowPrisonerSystem && HasItemFlag( usHandItem, HANDCUFFS ) && pTargetSoldier && pTargetSoldier->CanBeHandcuffed( ) )
|
||||||
{
|
{
|
||||||
// ATE: AI CANNOT GO THROUGH HERE!
|
// ATE: AI CANNOT GO THROUGH HERE!
|
||||||
INT32 usMapPos;
|
INT32 usMapPos;
|
||||||
|
|||||||
@@ -16170,6 +16170,16 @@ BOOLEAN SOLDIERTYPE::FreePrisoner( )
|
|||||||
return FALSE;
|
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
|
// Flugente: scuba gear
|
||||||
BOOLEAN SOLDIERTYPE::UsesScubaGear( )
|
BOOLEAN SOLDIERTYPE::UsesScubaGear( )
|
||||||
{
|
{
|
||||||
@@ -19829,7 +19839,7 @@ void SOLDIERTYPE::EVENT_SoldierHandcuffPerson( INT32 sGridNo, UINT8 ubDirection
|
|||||||
|
|
||||||
UINT8 ubPerson = WhoIsThere2( sGridNo, this->pathing.bLevel );
|
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
|
// we found someone we can handcuff
|
||||||
SOLDIERTYPE* pSoldier = MercPtrs[ubPerson];
|
SOLDIERTYPE* pSoldier = MercPtrs[ubPerson];
|
||||||
|
|||||||
@@ -1769,6 +1769,7 @@ public:
|
|||||||
BOOLEAN CanProcessPrisoners();
|
BOOLEAN CanProcessPrisoners();
|
||||||
UINT32 GetSurrenderStrength();
|
UINT32 GetSurrenderStrength();
|
||||||
BOOLEAN FreePrisoner(); // used for an enemy liberating fellow prisoners
|
BOOLEAN FreePrisoner(); // used for an enemy liberating fellow prisoners
|
||||||
|
BOOLEAN CanBeHandcuffed(); // can this guy be handcuffed?
|
||||||
|
|
||||||
// Flugente: scuba gear
|
// Flugente: scuba gear
|
||||||
BOOLEAN UsesScubaGear();
|
BOOLEAN UsesScubaGear();
|
||||||
|
|||||||
@@ -2253,11 +2253,9 @@ UINT8 HandleHandcuffCursor( SOLDIERTYPE *pSoldier, INT32 sGridNo, UINT32 uiCurso
|
|||||||
{
|
{
|
||||||
// is there a person here?
|
// is there a person here?
|
||||||
UINT8 usSoldierIndex = WhoIsThere2( sGridNo, pSoldier->pathing.bLevel );
|
UINT8 usSoldierIndex = WhoIsThere2( sGridNo, pSoldier->pathing.bLevel );
|
||||||
if ( usSoldierIndex != NOBODY )
|
if ( usSoldierIndex != NOBODY && MercPtrs[usSoldierIndex]->CanBeHandcuffed( ) )
|
||||||
{
|
{
|
||||||
// no handcuffing if the guy is already caught...
|
return( HANDCUFF_GREY_UICURSOR );
|
||||||
if ( !(MercPtrs[usSoldierIndex]->usSoldierFlagMask & SOLDIER_POW) )
|
|
||||||
return( HANDCUFF_GREY_UICURSOR );
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user