Convert to SoldierID

This commit is contained in:
Asdow
2024-11-17 20:41:09 +02:00
parent 9532fbfe2c
commit f50bdf99cc
22 changed files with 188 additions and 191 deletions
+18 -18
View File
@@ -388,16 +388,16 @@ typedef struct
typedef struct
{
UINT16 usSoldierID;
FLOAT dNewXPos;
FLOAT dNewYPos;
SoldierID usSoldierID;
FLOAT dNewXPos;
FLOAT dNewYPos;
} gui_pos;
typedef struct
{
UINT16 usSoldierID;
INT16 usNewDirection;
SoldierID usSoldierID;
INT16 usNewDirection;
} gui_dir;
@@ -425,12 +425,12 @@ typedef struct
typedef struct
{
UINT16 ubID;
SoldierID ubID;
INT8 bTeam;
UINT16 gubOutOfTurnPersons;
UINT16 gubOutOfTurnOrder[MAXMERCS];
BOOLEAN fMarkInterruptOccurred;
UINT16 Interrupted;
SoldierID Interrupted;
} INT_STRUCT;
typedef struct
@@ -486,7 +486,7 @@ typedef struct
float dZ;
INT32 sGridNo;
bool bWasDud;
UINT16 ubOwnerID;
SoldierID ubOwnerID;
INT32 RealObjectID; // the local ID on the initiating client
UINT32 uiPreRandomIndex; // send out our current pre-random index
} grenade_result;
@@ -967,7 +967,7 @@ void send_hit( EV_S_WEAPONHIT *SWeaponHit )
memcpy( &weaphit_struct , SWeaponHit, sizeof( EV_S_WEAPONHIT ));
UINT16 usSoldierID=weaphit_struct.usSoldierID;
SoldierID usSoldierID = weaphit_struct.usSoldierID;
if(SWeaponHit->usSoldierID < 20)weaphit_struct.usSoldierID = weaphit_struct.usSoldierID+ubID_prefix;
if(SWeaponHit->ubAttackerID < 20)weaphit_struct.ubAttackerID = weaphit_struct.ubAttackerID+ubID_prefix;
@@ -981,9 +981,9 @@ void recieveHIT(RPCParameters *rpcParameters)
EV_S_WEAPONHIT* SWeaponHit = (EV_S_WEAPONHIT*)rpcParameters->input;
SOLDIERTYPE *pSoldier = MercPtrs[ SWeaponHit->usSoldierID ];
UINT16 usSoldierID;
UINT16 ubAttackerID;
SOLDIERTYPE *pSoldier = SWeaponHit->usSoldierID;
SoldierID usSoldierID;
SoldierID ubAttackerID;
if((SWeaponHit->usSoldierID >= ubID_prefix) && (SWeaponHit->usSoldierID < (ubID_prefix+6))) // within our netbTeam range...
usSoldierID = (SWeaponHit->usSoldierID - ubID_prefix);
@@ -1157,7 +1157,7 @@ void send_gui_pos(SOLDIERTYPE *pSoldier, FLOAT dNewXPos, FLOAT dNewYPos)
{
gui_pos gnPOS;
gnPOS.usSoldierID = (pSoldier->ubID)+ubID_prefix;
gnPOS.usSoldierID = pSoldier->ubID + ubID_prefix;
gnPOS.dNewXPos = dNewXPos;
gnPOS.dNewYPos = dNewYPos;
@@ -1916,7 +1916,7 @@ void send_interrupt (SOLDIERTYPE *pSoldier)
memcpy(INT.gubOutOfTurnOrder, gubOutOfTurnOrder, sizeof(UINT16) * MAXMERCS);
INT.gubOutOfTurnPersons = gubOutOfTurnPersons;
INT.Interrupted=gusSelectedSoldier+ubID_prefix;
INT.Interrupted = gusSelectedSoldier + ubID_prefix;
if(INT.bTeam==0)
{
@@ -3030,11 +3030,11 @@ void recieveGRENADE (RPCParameters *rpcParameters)
}
// we send a grenade result out to the clients as it may have been a fizzer
void send_grenade_result (float xPos, float yPos, float zPos, INT32 sGridNo, UINT8 ubOwnerID, INT32 iRealObjectID, bool bIsDud)
void send_grenade_result (float xPos, float yPos, float zPos, INT32 sGridNo, SoldierID ubOwnerID, INT32 iRealObjectID, bool bIsDud)
{
ubOwnerID = MPEncodeSoldierID(ubOwnerID); // translate our soldier to the "network" version
SOLDIERTYPE* pSoldier = MercPtrs[ubOwnerID];
SOLDIERTYPE* pSoldier = ubOwnerID;
if (pSoldier != NULL)
{
if ((pSoldier->bTeam == 1 && is_server) || IsOurSoldier(pSoldier))
@@ -3343,11 +3343,11 @@ void recieveDETONATEEXPLOSIVE (RPCParameters *rpcParameters)
}
}
void send_disarm_explosive(UINT32 sGridNo, UINT32 uiWorldItem, UINT16 ubID)
void send_disarm_explosive(UINT32 sGridNo, UINT32 uiWorldItem, SoldierID ubID)
{
ubID = MPEncodeSoldierID(ubID);
SOLDIERTYPE* pSoldier = MercPtrs[ubID];
SOLDIERTYPE* pSoldier = ubID;
if (pSoldier != NULL)
{
// explosive disarmed on this client, notify the other clients
+3 -3
View File
@@ -112,14 +112,14 @@ void send_interrupt(SOLDIERTYPE *pSoldier);
// OJW - 20091002 - explosives
void send_grenade (OBJECTTYPE *pGameObj, float dLifeLength, float xPos, float yPos, float zPos, float xForce, float yForce, float zForce, UINT32 sTargetGridNo, UINT16 ubOwner, UINT8 ubActionCode, UINT32 uiActionData, INT32 iRealObjectID, bool bIsThrownGrenade);
void send_grenade_result (float xPos, float yPos, float zPos, INT32 sGridNo, UINT8 ubOwnerID, INT32 iRealObjectID, bool bIsDud);
void send_grenade_result (float xPos, float yPos, float zPos, INT32 sGridNo, SoldierID ubOwnerID, INT32 iRealObjectID, bool bIsDud);
void send_plant_explosive (UINT16 ubID,UINT16 usItem,UINT8 ubItemStatus,UINT16 usFlags, UINT32 sGridNo,UINT8 ubLevel, UINT32 uiWorldIndex);
void send_detonate_explosive (UINT32 uiWorldIndex, UINT16 ubID);
void send_spreadeffect ( INT32 sGridNo, UINT8 ubRadius, UINT16 usItem, UINT16 ubOwner, BOOLEAN fSubsequent, INT8 bLevel, INT32 iSmokeEffectID );
void send_newsmokeeffect(INT32 sGridNo, UINT16 usItem, INT8 bLevel, UINT16 ubOwner, INT32 iSmokeEffectID);
void send_gasdamage( SOLDIERTYPE * pSoldier, UINT16 usExplosiveClassID, INT16 sSubsequent, BOOLEAN fRecompileMovementCosts, INT16 sWoundAmt, INT16 sBreathAmt, SoldierID ubOwner );
void send_explosivedamage( UINT16 ubPerson, UINT16 ubOwner, INT32 sBombGridNo, INT16 sWoundAmt, INT16 sBreathAmt, UINT32 uiDist, UINT16 usItem, INT16 sSubsequent );
void send_disarm_explosive(UINT32 sGridNo, UINT32 uiWorldIndex, UINT16 ubID);
void send_disarm_explosive(UINT32 sGridNo, UINT32 uiWorldIndex, SoldierID ubID);
void OpenChatMsgBox(void);
@@ -211,7 +211,7 @@ extern BOOLEAN fClientReceivedAllFiles;
// sick of confusing myself :)
// this one should be called before passing an ID off the client
inline UINT16 MPEncodeSoldierID( UINT16 ubID )
inline SoldierID MPEncodeSoldierID( SoldierID ubID )
{
if ( ubID < 20 )
return ubID + ubID_prefix; // soldier is ours
+2 -2
View File
@@ -2717,7 +2717,7 @@ void LuaHandleSectorLiberation( INT16 sSectorX, INT16 sSectorY, INT8 bSectorZ, B
void LuaHandleInteractiveActionResult( INT16 sSectorX, INT16 sSectorY,
INT8 bSectorZ,
INT32 sGridNo, UINT8 bLevel, UINT16 ubId,
INT32 sGridNo, UINT8 bLevel, SoldierID ubId,
UINT16 usActionType, INT32 sLuaactionid, INT32 difficulty, UINT16 skill )
{
const char* filename = "scripts\\Overhead.lua";
@@ -2731,7 +2731,7 @@ void LuaHandleInteractiveActionResult( INT16 sSectorX, INT16 sSectorY,
SGP_THROW_IFFALSE( _LS.L.EvalFile( filename ), _BS( "Cannot open file: " ) << filename << _BS::cget );
LuaFunction( _LS.L, "HandleInteractiveActionResult" ).Param<int>( sSectorX ).Param<int>( sSectorY ).Param<int>( bSectorZ ).Param<int>( sGridNo ).Param<int>( bLevel ).Param<int>( ubId ).Param<int>( usActionType ).Param<int>( sLuaactionid ).Param<int>( difficulty ).Param<int>( skill ).Call( 10 );
LuaFunction( _LS.L, "HandleInteractiveActionResult" ).Param<int>( sSectorX ).Param<int>( sSectorY ).Param<int>( bSectorZ ).Param<int>( sGridNo ).Param<int>( bLevel ).Param<int>( ubId.i ).Param<int>( usActionType ).Param<int>( sLuaactionid ).Param<int>( difficulty ).Param<int>( skill ).Call( 10 );
}
void LuaRecruitRPCAdditionalHandling( UINT8 usProfile )
+1 -1
View File
@@ -62,7 +62,7 @@ extern BOOLEAN LuaHandleQuestCodeOnSector( INT16 sSectorX, INT16 sSectorY, INT8
void LuaHandleSectorLiberation( INT16 sSectorX, INT16 sSectorY, INT8 bSectorZ, BOOLEAN fFirstTime );
void LuaHandleInteractiveActionResult( INT16 sSectorX, INT16 sSectorY,
INT8 bSectorZ,
INT32 sGridNo, UINT8 bLevel, UINT16 ubId,
INT32 sGridNo, UINT8 bLevel, SoldierID ubId,
UINT16 usActionType, INT32 sLuaactionid, INT32 difficulty, UINT16 skill );
void LuaRecruitRPCAdditionalHandling( UINT8 usProfile );
void LuaHandleSectorTacticalEntry( INT16 sSectorX, INT16 sSectorY, INT8 bSectorZ, BOOLEAN fHasEverBeenPlayerControlled );
+2 -2
View File
@@ -2087,10 +2087,10 @@ void HandleRenderFaceAdjustments( FACETYPE *pFace, BOOLEAN fDisplayBuffer, BOOLE
// Flugente: are we supplying ammo to someone else?
if (gGameExternalOptions.ubExternalFeeding > 0)
{
UINT16 ubID1 = 0;
SoldierID ubID1 = NOBODY;
UINT16 ubGunSlot1 = 0;
UINT16 ubFaceSlot1 = 0;
UINT16 ubID2 = 0;
SoldierID ubID2 = NOBODY;
UINT16 ubGunSlot2 = 0;
UINT16 ubFaceSlot2 = 0;
if (pSoldier->IsFeedingExternal(&ubID1, &ubGunSlot1, &ubFaceSlot1, &ubID2, &ubGunSlot2, &ubFaceSlot2))
+41 -45
View File
@@ -239,20 +239,20 @@ BOOLEAN HandleCheckForBadChangeToGetThrough( SOLDIERTYPE *pSoldier, SOLDIERTYPE
INT32 HandleItem( SOLDIERTYPE *pSoldier, INT32 sGridNo, INT8 bLevel, UINT16 usHandItem, BOOLEAN fFromUI )
{
SOLDIERTYPE *pTargetSoldier = NULL;
UINT16 usSoldierIndex;
INT32 sTargetGridNo;
INT16 sAPCost;
INT32 sActionGridNo;
UINT8 ubDirection = 0;
INT32 sAdjustedGridNo;
BOOLEAN fDropBomb = FALSE;
BOOLEAN fAddingTurningCost = FALSE;
BOOLEAN fAddingRaiseGunCost = FALSE;
LEVELNODE *pIntNode;
STRUCTURE *pStructure;
UINT16 usRaiseGunCost = 0;
UINT16 usTurningCost = 0;
SOLDIERTYPE *pTargetSoldier = NULL;
SoldierID usSoldierIndex;
INT32 sTargetGridNo;
INT16 sAPCost;
INT32 sActionGridNo;
UINT8 ubDirection = 0;
INT32 sAdjustedGridNo;
BOOLEAN fDropBomb = FALSE;
BOOLEAN fAddingTurningCost = FALSE;
BOOLEAN fAddingRaiseGunCost = FALSE;
LEVELNODE *pIntNode;
STRUCTURE *pStructure;
UINT16 usRaiseGunCost = 0;
UINT16 usTurningCost = 0;
//shadooow: automatically close EDB when opened and trying to use any weapon or action
if (gfInItemDescBox)
@@ -277,7 +277,7 @@ INT32 HandleItem( SOLDIERTYPE *pSoldier, INT32 sGridNo, INT8 bLevel, UINT16 usHa
//if ( FindSoldier( sGridNo, &usSoldierIndex, &uiMercFlags, FIND_SOLDIER_GRIDNO ) )
if ( ( usSoldierIndex = WhoIsThere2( sGridNo, bLevel ) ) != NOBODY )
{
pTargetSoldier = MercPtrs[ usSoldierIndex ];
pTargetSoldier = usSoldierIndex;
// anv: don't try to heal interactive spots
if (fFromUI && Item[usHandItem].usItemClass != IC_MEDKIT)
@@ -1394,11 +1394,11 @@ INT32 HandleItem( SOLDIERTYPE *pSoldier, INT32 sGridNo, INT8 bLevel, UINT16 usHa
}
}
UINT16 ubPerson = WhoIsThere2(usMapPos, pSoldier->pathing.bLevel);
SoldierID ubPerson = WhoIsThere2(usMapPos, pSoldier->pathing.bLevel);
// Flugente: apply misc items to other soldiers
// sevenfm: check that target soldier is visible
if (ItemCanBeAppliedToOthers(usHandItem) && ubPerson != NOBODY && MercPtrs[ubPerson] && MercPtrs[ubPerson]->bVisible != 0)
if (ItemCanBeAppliedToOthers(usHandItem) && ubPerson != NOBODY && ubPerson->bVisible != 0)
{
// ATE: AI CANNOT GO THROUGH HERE!
BOOLEAN fHadToUseCursorPos = FALSE;
@@ -4292,9 +4292,8 @@ BOOLEAN DrawItemPoolList( ITEM_POOL *pItemPool, INT32 sGridNo, UINT8 bCommand, I
if (gGameExternalOptions.gfShowBackpackOwner &&
Item[gWorldItems[pItemPool->iItemIndex].object.usItem].usItemClass == IC_LBEGEAR &&
LoadBearingEquipment[Item[gWorldItems[pItemPool->iItemIndex].object.usItem].ubClassIndex].lbeClass == BACKPACK &&
gWorldItems[pItemPool->iItemIndex].soldierID != NOBODY &&
MercPtrs[gWorldItems[pItemPool->iItemIndex].soldierID])
swprintf(pStr, L"%s (%d) (%s)", ShortItemNames[gWorldItems[pTempItemPool->iItemIndex].object.usItem], gWorldItems[pTempItemPool->iItemIndex].object.ubNumberOfObjects, MercPtrs[gWorldItems[pItemPool->iItemIndex].soldierID]->GetName());
gWorldItems[pItemPool->iItemIndex].soldierID != NOBODY)
swprintf(pStr, L"%s (%d) (%s)", ShortItemNames[gWorldItems[pTempItemPool->iItemIndex].object.usItem], gWorldItems[pTempItemPool->iItemIndex].object.ubNumberOfObjects, gWorldItems[pItemPool->iItemIndex].soldierID->GetName());
else
swprintf( pStr, L"%s (%d)", ShortItemNames[ gWorldItems[ pTempItemPool->iItemIndex ].object.usItem ], gWorldItems[ pTempItemPool->iItemIndex ].object.ubNumberOfObjects );
}
@@ -4303,9 +4302,8 @@ BOOLEAN DrawItemPoolList( ITEM_POOL *pItemPool, INT32 sGridNo, UINT8 bCommand, I
if (gGameExternalOptions.gfShowBackpackOwner &&
Item[gWorldItems[pItemPool->iItemIndex].object.usItem].usItemClass == IC_LBEGEAR &&
LoadBearingEquipment[Item[gWorldItems[pItemPool->iItemIndex].object.usItem].ubClassIndex].lbeClass == BACKPACK &&
gWorldItems[pItemPool->iItemIndex].soldierID != NOBODY &&
MercPtrs[gWorldItems[pItemPool->iItemIndex].soldierID])
swprintf(pStr, L"%s (%s)", ShortItemNames[gWorldItems[pTempItemPool->iItemIndex].object.usItem], MercPtrs[gWorldItems[pItemPool->iItemIndex].soldierID]->GetName());
gWorldItems[pItemPool->iItemIndex].soldierID != NOBODY)
swprintf(pStr, L"%s (%s)", ShortItemNames[gWorldItems[pTempItemPool->iItemIndex].object.usItem], gWorldItems[pItemPool->iItemIndex].soldierID->GetName());
else
swprintf( pStr, L"%s", ShortItemNames[ gWorldItems[ pTempItemPool->iItemIndex ].object.usItem ] );
}
@@ -4413,9 +4411,8 @@ BOOLEAN DrawItemPoolList( ITEM_POOL *pItemPool, INT32 sGridNo, UINT8 bCommand, I
if (gGameExternalOptions.gfShowBackpackOwner &&
Item[gWorldItems[pItemPool->iItemIndex].object.usItem].usItemClass == IC_LBEGEAR &&
LoadBearingEquipment[Item[gWorldItems[pItemPool->iItemIndex].object.usItem].ubClassIndex].lbeClass == BACKPACK &&
gWorldItems[pItemPool->iItemIndex].soldierID != NOBODY &&
MercPtrs[gWorldItems[pItemPool->iItemIndex].soldierID])
swprintf(pStr, L"%s (%d) (%s)", ShortItemNames[gWorldItems[pItemPool->iItemIndex].object.usItem], gWorldItems[pItemPool->iItemIndex].object.ubNumberOfObjects, MercPtrs[gWorldItems[pItemPool->iItemIndex].soldierID]->GetName());
gWorldItems[pItemPool->iItemIndex].soldierID != NOBODY)
swprintf(pStr, L"%s (%d) (%s)", ShortItemNames[gWorldItems[pItemPool->iItemIndex].object.usItem], gWorldItems[pItemPool->iItemIndex].object.ubNumberOfObjects, gWorldItems[pItemPool->iItemIndex].soldierID->GetName());
else
swprintf( pStr, L"%s (%d)", ShortItemNames[ gWorldItems[ pItemPool->iItemIndex ].object.usItem ], gWorldItems[ pItemPool->iItemIndex ].object.ubNumberOfObjects );
}
@@ -4424,9 +4421,8 @@ BOOLEAN DrawItemPoolList( ITEM_POOL *pItemPool, INT32 sGridNo, UINT8 bCommand, I
if (gGameExternalOptions.gfShowBackpackOwner &&
Item[gWorldItems[pItemPool->iItemIndex].object.usItem].usItemClass == IC_LBEGEAR &&
LoadBearingEquipment[Item[gWorldItems[pItemPool->iItemIndex].object.usItem].ubClassIndex].lbeClass == BACKPACK &&
gWorldItems[pItemPool->iItemIndex].soldierID != NOBODY &&
MercPtrs[gWorldItems[pItemPool->iItemIndex].soldierID])
swprintf(pStr, L"%s (%s)", ShortItemNames[gWorldItems[pItemPool->iItemIndex].object.usItem], MercPtrs[gWorldItems[pItemPool->iItemIndex].soldierID]->GetName());
gWorldItems[pItemPool->iItemIndex].soldierID != NOBODY)
swprintf(pStr, L"%s (%s)", ShortItemNames[gWorldItems[pItemPool->iItemIndex].object.usItem], gWorldItems[pItemPool->iItemIndex].soldierID->GetName());
else
swprintf( pStr, L"%s", ShortItemNames[ gWorldItems[ pItemPool->iItemIndex ].object.usItem ] );
}
@@ -4814,12 +4810,12 @@ void RenderTopmostFlashingItems( )
BOOLEAN VerifyGiveItem( SOLDIERTYPE *pSoldier, SOLDIERTYPE **ppTargetSoldier )
{
SOLDIERTYPE *pTSoldier;
UINT16 usSoldierIndex;
SoldierID usSoldierIndex;
OBJECTTYPE *pObject;
INT32 sGridNo;
UINT8 ubDirection;
UINT16 ubTargetMercID;
UINT8 ubDirection;
SoldierID ubTargetMercID;
// DO SOME CHECKS IF WE CAN DO ANIMATION.....
@@ -4828,7 +4824,7 @@ BOOLEAN VerifyGiveItem( SOLDIERTYPE *pSoldier, SOLDIERTYPE **ppTargetSoldier )
sGridNo = pSoldier->aiData.sPendingActionData2;
ubDirection = pSoldier->aiData.bPendingActionData3;
ubTargetMercID = (UINT16)pSoldier->aiData.uiPendingActionData4;
ubTargetMercID = static_cast<UINT16>( pSoldier->aiData.uiPendingActionData4 );
usSoldierIndex = WhoIsThere2( sGridNo, pSoldier->pathing.bLevel );
@@ -4864,7 +4860,7 @@ BOOLEAN VerifyGiveItem( SOLDIERTYPE *pSoldier, SOLDIERTYPE **ppTargetSoldier )
if ( ubTargetMercID != NOBODY )
{
MercPtrs[ ubTargetMercID ]->flags.uiStatusFlags &= (~SOLDIER_ENGAGEDINACTION );
ubTargetMercID->flags.uiStatusFlags &= (~SOLDIER_ENGAGEDINACTION );
}
OBJECTTYPE::DeleteMe( &pSoldier->pTempObject );
@@ -5078,13 +5074,13 @@ void SoldierGiveItemFromAnimation( SOLDIERTYPE *pSoldier )
INT32 AdjustGridNoForItemPlacement( SOLDIERTYPE *pSoldier, INT32 sGridNo )
{
STRUCTURE *pStructure;
INT16 sDesiredLevel;
INT32 sActionGridNo;
BOOLEAN fStructFound = FALSE;
UINT8 ubDirection;
INT32 sAdjustedGridNo;
UINT16 ubTargetID;
STRUCTURE *pStructure;
INT16 sDesiredLevel;
INT32 sActionGridNo;
BOOLEAN fStructFound = FALSE;
UINT8 ubDirection;
INT32 sAdjustedGridNo;
SoldierID ubTargetID;
sActionGridNo = sGridNo;
@@ -9405,11 +9401,11 @@ void DoInteractiveAction( INT32 sGridNo, SOLDIERTYPE *pSoldier )
// handle the default result of an interactive action
// This is called either if no lua action id is set, or by lua if this should happen as a supplement to whatever lua does
void DoInteractiveActionDefaultResult( INT32 sGridNo, UINT16 ubID, BOOLEAN aSuccess )
void DoInteractiveActionDefaultResult( INT32 sGridNo, SoldierID ubID, BOOLEAN aSuccess )
{
SOLDIERTYPE* pSoldier = NULL;
if ( ubID != NOBODY )
pSoldier = MercPtrs[ubID];
pSoldier = ubID;
// we need a valid soldier and a valid object
if ( !pSoldier )
@@ -10457,9 +10453,9 @@ void TakePhoto(SOLDIERTYPE* pSoldier, INT32 sGridNo, INT8 bLevel )
InARoom( newgridno, &room );
// check if there is someone here
UINT16 ubid = WhoIsThere2( newgridno, bLevel );
SoldierID ubid = WhoIsThere2( newgridno, bLevel );
LuaAddPhotoData( gWorldSectorX, gWorldSectorY, gbWorldSectorZ, newgridno, bLevel, pSoldier->ubProfile, room, ( ubid == NOBODY ) ? NO_PROFILE : MercPtrs[ubid]->ubProfile );
LuaAddPhotoData( gWorldSectorX, gWorldSectorY, gbWorldSectorZ, newgridno, bLevel, pSoldier->ubProfile, room, ( ubid == NOBODY ) ? NO_PROFILE : ubid->ubProfile );
}
}
}
+1 -1
View File
@@ -329,7 +329,7 @@ extern ITEM_POOL *gpItemPool;//dnl ch26 210909
// Flugente: interactive actions
void DoInteractiveAction( INT32 sGridNo, SOLDIERTYPE *pSoldier );
void DoInteractiveActionDefaultResult( INT32 sGridNo, UINT16 ubID, BOOLEAN aSuccess );
void DoInteractiveActionDefaultResult( INT32 sGridNo, SoldierID ubID, BOOLEAN aSuccess );
BOOLEAN SpendMoney( SOLDIERTYPE *pSoldier, UINT32 aAmount ); // character spends money - either from inventory or the account
// Flugente: intel
+25 -25
View File
@@ -429,41 +429,41 @@ INT16 guiCreateBadGuyIndex = 8;
// FLAGS
// These flags are set for a single frame execution and then are reset for the next iteration.
BOOLEAN gfUIDisplayActionPoints = FALSE;
BOOLEAN gfUIDisplayActionPoints = FALSE;
BOOLEAN gfUIDisplayActionPointsInvalid = FALSE;
BOOLEAN gfUIDisplayActionPointsBlack = FALSE;
BOOLEAN gfUIDisplayActionPointsCenter = FALSE;
BOOLEAN gfUIDisplayActionPointsCenter = FALSE;
INT16 gUIDisplayActionPointsOffY = 0;
INT16 gUIDisplayActionPointsOffX = 0;
BOOLEAN gfUIDoNotHighlightSelMerc = FALSE;
BOOLEAN gfUIHandleSelection = FALSE;
BOOLEAN gfUIHandleSelectionAboveGuy = FALSE;
BOOLEAN gfUIInDeadlock = FALSE;
UINT16 gUIDeadlockedSoldier = NOBODY;
BOOLEAN gfUIHandleShowMoveGrid = FALSE;
INT16 gUIDisplayActionPointsOffY = 0;
INT16 gUIDisplayActionPointsOffX = 0;
BOOLEAN gfUIDoNotHighlightSelMerc = FALSE;
BOOLEAN gfUIHandleSelection = FALSE;
BOOLEAN gfUIHandleSelectionAboveGuy = FALSE;
BOOLEAN gfUIInDeadlock = FALSE;
UINT16 gUIDeadlockedSoldier = NOBODY;
BOOLEAN gfUIHandleShowMoveGrid = FALSE;
INT32 gsUIHandleShowMoveGridLocation = NOWHERE ;
BOOLEAN gfUIOverItemPool = FALSE;
INT32 gfUIOverItemPoolGridNo = 0;
INT16 gsCurrentActionPoints = 1;
BOOLEAN gfUIHandlePhysicsTrajectory = FALSE;
BOOLEAN gfUIMouseOnValidCatcher = FALSE;
UINT16 gubUIValidCatcherID = 0;
BOOLEAN gfUIOverItemPool = FALSE;
INT32 gfUIOverItemPoolGridNo = 0;
INT16 gsCurrentActionPoints = 1;
BOOLEAN gfUIHandlePhysicsTrajectory = FALSE;
BOOLEAN gfUIMouseOnValidCatcher = FALSE;
SoldierID gubUIValidCatcherID = NOBODY;
BOOLEAN gfUIConfirmExitArrows = FALSE;
BOOLEAN gfUIConfirmExitArrows = FALSE;
BOOLEAN gfUIShowCurIntTile = FALSE;
BOOLEAN gfUIShowCurIntTile = FALSE;
BOOLEAN gfUIWaitingForUserSpeechAdvance = FALSE; // Waiting for key input/mouse click to advance speech
BOOLEAN gfUIKeyCheatModeOn = FALSE; // Sets cool cheat keys on
BOOLEAN gfUIAllMoveOn = FALSE; // Sets to all move
BOOLEAN gfUICanBeginAllMoveCycle = FALSE; // GEts set so we know that the next right-click is a move-call inc\stead of a movement cycle through
BOOLEAN gfUIWaitingForUserSpeechAdvance = FALSE; // Waiting for key input/mouse click to advance speech
BOOLEAN gfUIKeyCheatModeOn = FALSE; // Sets cool cheat keys on
BOOLEAN gfUIAllMoveOn = FALSE; // Sets to all move
BOOLEAN gfUICanBeginAllMoveCycle = FALSE; // GEts set so we know that the next right-click is a move-call inc\stead of a movement cycle through
INT32 gsSelectedGridNo = 0;
INT16 gsSelectedLevel = I_GROUND_LEVEL;
INT16 gsSelectedGuy = NOBODY;
INT32 gsSelectedGridNo = 0;
INT16 gsSelectedLevel = I_GROUND_LEVEL;
INT16 gsSelectedGuy = NOBODY;
BOOLEAN gfUIDisplayDamage = FALSE;
INT8 gbDamage = 0;
+9 -9
View File
@@ -181,7 +181,7 @@ extern UI_EVENT gEvents[ NUM_UI_EVENTS ];
extern UI_MODE gCurrentUIMode;
extern UI_MODE gOldUIMode;
extern UINT32 guiCurrentEvent;
extern INT16 gsSelectedLevel;
extern INT16 gsSelectedLevel;
extern BOOLEAN gfPlotNewMovement;
extern UINT32 guiPendingOverrideEvent;
@@ -191,34 +191,34 @@ extern BOOLEAN gfUIDisplayActionPoints;
extern BOOLEAN gfUIDisplayActionPointsInvalid;
extern BOOLEAN gfUIDisplayActionPointsBlack;
extern BOOLEAN gfUIDisplayActionPointsCenter;
extern INT16 gUIDisplayActionPointsOffY;
extern INT16 gUIDisplayActionPointsOffX;
extern INT16 gUIDisplayActionPointsOffY;
extern INT16 gUIDisplayActionPointsOffX;
extern BOOLEAN gfUIDoNotHighlightSelMerc;
extern UINT32 guiShowUPDownArrows;
extern BOOLEAN gfUIHandleSelection;
extern BOOLEAN gfUIHandleSelectionAboveGuy;
extern INT32 gsSelectedGridNo;
extern INT16 gsSelectedGuy;
extern INT32 gsSelectedGridNo;
extern INT16 gsSelectedGuy;
extern BOOLEAN gfUIInDeadlock;
extern UINT16 gUIDeadlockedSoldier;
extern BOOLEAN gfUIMouseOnValidCatcher;
extern UINT16 gubUIValidCatcherID;
extern SoldierID gubUIValidCatcherID;
extern BOOLEAN gUIUseReverse;
extern BOOLEAN gfUIHandleShowMoveGrid;
extern INT32 gsUIHandleShowMoveGridLocation;
extern INT32 gsUIHandleShowMoveGridLocation;
extern BOOLEAN gfUIDisplayDamage;
extern INT8 gbDamage;
extern INT32 gsDamageGridNo;
extern INT32 gsDamageGridNo;
extern BOOLEAN gfFontPopupDo;
extern BOOLEAN gUITargetReady;
extern BOOLEAN gUITargetShotWaiting;
extern INT32 gsUITargetShotGridNo;
extern INT32 gsUITargetShotGridNo;
extern CHAR16 gzLocation[ 20 ];
extern BOOLEAN gfUIBodyHitLocation;
+21 -21
View File
@@ -3548,7 +3548,7 @@ void DegradeNewlyAddedItems( )
// GET SOLDIER
if ( gTeamPanel[ cnt2 ].fOccupied )
{
pSoldier = MercPtrs[ gTeamPanel[ cnt2 ].ubID ];
pSoldier = gTeamPanel[ cnt2 ].ubID;
UINT32 invsize = pSoldier->inv.size();
for ( UINT32 cnt = 0; cnt < invsize; ++cnt )
@@ -4434,7 +4434,7 @@ void INVRenderSteeringWheel( UINT32 uiBuffer, UINT32 uiSteeringWheelIndex, SOLDI
return;
}
pVehicle = GetSoldierStructureForVehicle ( MercPtrs[ pSoldier->ubID ]->iVehicleId );
pVehicle = GetSoldierStructureForVehicle ( pSoldier->ubID->iVehicleId );
if ( pVehicle == NULL )
{
@@ -8796,11 +8796,11 @@ void DrawItemTileCursor( )
/*CHRISL: For some reason it's possible that gpItemPointerSoldier is not correctly set when we come into this function, but we require it to be set for
this function to work. So for now, let's set it using gusUIFullTargetID.*/
if(gpItemPointerSoldier->exists() == false)
gpItemPointerSoldier = MercPtrs[ gusUIFullTargetID ];
gpItemPointerSoldier = gusUIFullTargetID;
if ( gfUIFullTargetFound )
{
// Force mouse position to guy...
usMapPos = MercPtrs[ gusUIFullTargetID ]->sGridNo;
usMapPos = gusUIFullTargetID->sGridNo;
}
gusCurMousePos = usMapPos;
@@ -8871,7 +8871,7 @@ void DrawItemTileCursor( )
if ( gfUIFullTargetFound )
{
// Get soldier
pSoldier = MercPtrs[ gusUIFullTargetID ];
pSoldier = gusUIFullTargetID;
// Are they on our team?
// ATE: Can't be an EPC
@@ -8881,7 +8881,7 @@ void DrawItemTileCursor( )
{
// OK, on a valid pass
gfUIMouseOnValidCatcher = 4;
gubUIValidCatcherID = gusUIFullTargetID;
gubUIValidCatcherID = gusUIFullTargetID;
}
else
{
@@ -8890,7 +8890,7 @@ void DrawItemTileCursor( )
{
// OK, set global that this buddy can see catch...
gfUIMouseOnValidCatcher = TRUE;
gubUIValidCatcherID = gusUIFullTargetID;
gubUIValidCatcherID = gusUIFullTargetID;
}
}
}
@@ -8927,7 +8927,7 @@ void DrawItemTileCursor( )
gubUIValidCatcherID = gusUIFullTargetID;
// If this is a robot, change to say 'reload'
if ( MercPtrs[ gusUIFullTargetID ]->flags.uiStatusFlags & SOLDIER_ROBOT )
if ( gusUIFullTargetID->flags.uiStatusFlags & SOLDIER_ROBOT )
{
gfUIMouseOnValidCatcher = 3;
}
@@ -8947,9 +8947,9 @@ void DrawItemTileCursor( )
// Get AP cost
if ( MercPtrs[ gusUIFullTargetID ]->flags.uiStatusFlags & SOLDIER_ROBOT )
if ( gusUIFullTargetID->flags.uiStatusFlags & SOLDIER_ROBOT )
{
sAPCost = GetAPsToReloadRobot( gpItemPointerSoldier, MercPtrs[ gusUIFullTargetID ] );
sAPCost = GetAPsToReloadRobot( gpItemPointerSoldier, gusUIFullTargetID );
}
else
{
@@ -9011,7 +9011,7 @@ void DrawItemTileCursor( )
{
if ( gfUIMouseOnValidCatcher )
{
switch( gAnimControl[ MercPtrs[ gubUIValidCatcherID ]->usAnimState ].ubHeight )
switch( gAnimControl[ gubUIValidCatcherID->usAnimState ].ubHeight )
{
case ANIM_STAND:
@@ -9029,7 +9029,7 @@ void DrawItemTileCursor( )
break;
}
if ( MercPtrs[ gubUIValidCatcherID ]->pathing.bLevel > 0 )
if ( gubUIValidCatcherID->pathing.bLevel > 0 )
{
sEndZ = 0;
}
@@ -9135,9 +9135,9 @@ BOOLEAN HandleItemPointerClick( INT32 usMapPos )
if ( gfUIFullTargetFound )
{
// Force mouse position to guy...
usMapPos = MercPtrs[ gusUIFullTargetID ]->sGridNo;
usMapPos = gusUIFullTargetID->sGridNo;
if ( gAnimControl[ MercPtrs[ gusUIFullTargetID ]->usAnimState ].uiFlags & ANIM_MOVING )
if ( gAnimControl[ gusUIFullTargetID->usAnimState ].uiFlags & ANIM_MOVING )
{
return( FALSE );
}
@@ -9380,14 +9380,14 @@ BOOLEAN HandleItemPointerClick( INT32 usMapPos )
sGridNo = usMapPos;
// Kaiden: Vehicle Inventory change - Commented the following If test:
//if ( sDist <= PASSING_ITEM_DISTANCE_OKLIFE && gfUIFullTargetFound && MercPtrs[ gusUIFullTargetID ]->bTeam == gbPlayerNum && !AM_AN_EPC( MercPtrs[ gusUIFullTargetID ] ) && !( MercPtrs[ gusUIFullTargetID ]->flags.uiStatusFlags & SOLDIER_VEHICLE ) )
//if ( sDist <= PASSING_ITEM_DISTANCE_OKLIFE && gfUIFullTargetFound && gusUIFullTargetID->bTeam == gbPlayerNum && !AM_AN_EPC( gusUIFullTargetID ) && !( gusUIFullTargetID->flags.uiStatusFlags & SOLDIER_VEHICLE ) )
// And added this one instead:
if ( ( sDist <= PASSING_ITEM_DISTANCE_OKLIFE && gfUIFullTargetFound && MercPtrs[ gusUIFullTargetID ]->bTeam == gbPlayerNum && !AM_AN_EPC( MercPtrs[ gusUIFullTargetID ] ) ) && !( (!gGameExternalOptions.fVehicleInventory) && (MercPtrs[ gusUIFullTargetID ]->flags.uiStatusFlags & SOLDIER_VEHICLE) ) )
if ( ( sDist <= PASSING_ITEM_DISTANCE_OKLIFE && gfUIFullTargetFound && gusUIFullTargetID->bTeam == gbPlayerNum && !AM_AN_EPC( gusUIFullTargetID ) ) && !( (!gGameExternalOptions.fVehicleInventory) && (gusUIFullTargetID->flags.uiStatusFlags & SOLDIER_VEHICLE) ) )
{
// OK, do the transfer...
{
pSoldier = MercPtrs[ gusUIFullTargetID ];
pSoldier = gusUIFullTargetID;
{
// Change to inventory....
@@ -9489,7 +9489,7 @@ BOOLEAN HandleItemPointerClick( INT32 usMapPos )
// IF OVER OUR GUY...
if ( gfUIFullTargetFound )
{
pSoldier = MercPtrs[ gusUIFullTargetID ];
pSoldier = gusUIFullTargetID;
// Kaiden: Vehicle Inventory change - Commented the following If Test:
//if ( pSoldier->bTeam == gbPlayerNum && pSoldier->stats.bLife >= OKLIFE && !AM_AN_EPC( pSoldier ) && !( pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE ) )
@@ -11483,9 +11483,9 @@ void RenderItemPickupMenu( )
Item[gWorldItems[gItemPickupMenu.ItemPoolSlots[cnt]->iItemIndex].object.usItem].usItemClass == IC_LBEGEAR &&
LoadBearingEquipment[Item[gWorldItems[gItemPickupMenu.ItemPoolSlots[cnt]->iItemIndex].object.usItem].ubClassIndex].lbeClass == BACKPACK &&
gWorldItems[gItemPickupMenu.ItemPoolSlots[cnt]->iItemIndex].soldierID != NOBODY &&
MercPtrs[gWorldItems[gItemPickupMenu.ItemPoolSlots[cnt]->iItemIndex].soldierID])
gWorldItems[gItemPickupMenu.ItemPoolSlots[cnt]->iItemIndex].soldierID)
//swprintf(pStr, L"%s (%s)", ShortItemNames[pObject->usItem], MercPtrs[gWorldItems[gItemPickupMenu.ItemPoolSlots[cnt]->iItemIndex].soldierID]->GetName());
swprintf(pStr, L"(%s)", MercPtrs[gWorldItems[gItemPickupMenu.ItemPoolSlots[cnt]->iItemIndex].soldierID]->GetName());
swprintf(pStr, L"(%s)", gWorldItems[gItemPickupMenu.ItemPoolSlots[cnt]->iItemIndex].soldierID->GetName());
else
swprintf( pStr, L"%s", ShortItemNames[ pObject->usItem ] );
}
@@ -12757,7 +12757,7 @@ BOOLEAN LoadItemCursorFromSavedGame( HWFILE hFile )
}
else
{
gpItemPointerSoldier = MercPtrs[ SaveStruct.ubSoldierID ];
gpItemPointerSoldier = SaveStruct.ubSoldierID;
}
// Inv slot
+1 -1
View File
@@ -166,7 +166,7 @@ public:
BOOLEAN Save(HWFILE hFile);
BOOLEAN Load(HWFILE hFile);
UINT16 ubSoldierID;
SoldierID ubSoldierID;
UINT8 ubInvSlot;
BOOLEAN fCursorActive;
OBJECTTYPE ItemPointerInfo;
+11 -11
View File
@@ -569,7 +569,7 @@ void UpdateSelectedSoldier( UINT16 usSoldierID, BOOLEAN fSelect );
void CheckForFacePanelStartAnims( SOLDIERTYPE *pSoldier, INT16 sPanelX, INT16 sPanelY );
void HandleSoldierFaceFlash( SOLDIERTYPE *pSoldier, INT16 sFaceX, INT16 sFaceY );
BOOLEAN PlayerExistsInSlot( UINT16 ubID );
BOOLEAN PlayerExistsInSlot( SoldierID ubID );
void UpdateStatColor( UINT32 uiTimer, BOOLEAN fIncrease, BOOLEAN fDamaged, BOOLEAN fAugmented ); // SANDRO - added argument // Flugente - me too
extern void UpdateItemHatches();
@@ -6812,7 +6812,7 @@ void TMClickSecondHandInvCallback( MOUSE_REGION * pRegion, INT32 iReason )
}
BOOLEAN PlayerExistsInSlot( UINT16 ubID )
BOOLEAN PlayerExistsInSlot( SoldierID ubID )
{
INT32 cnt;
@@ -6870,17 +6870,17 @@ BOOLEAN RemovePlayerFromTeamSlotGivenMercID( UINT16 ubMercID )
}
void AddPlayerToInterfaceTeamSlot( UINT16 ubID )
void AddPlayerToInterfaceTeamSlot( SoldierID ubID )
{
INT32 cnt;
// If we are a vehicle don't ever add.....
if ( MercPtrs[ ubID ]->flags.uiStatusFlags & SOLDIER_VEHICLE )
if ( ubID->flags.uiStatusFlags & SOLDIER_VEHICLE )
{
return;
}
if ( !( MercPtrs[ ubID ]->flags.uiStatusFlags & ( SOLDIER_DRIVER | SOLDIER_PASSENGER ) ) )
if ( !( ubID->flags.uiStatusFlags & ( SOLDIER_DRIVER | SOLDIER_PASSENGER ) ) )
{
if ( !PlayerExistsInSlot( ubID ) )
{
@@ -6899,7 +6899,7 @@ void AddPlayerToInterfaceTeamSlot( UINT16 ubID )
fInterfacePanelDirty = DIRTYLEVEL2;
// Set ID to do open anim
MercPtrs[ ubID ]->flags.fUInewMerc = TRUE;
ubID->flags.fUInewMerc = TRUE;
break;
}
@@ -6909,14 +6909,14 @@ void AddPlayerToInterfaceTeamSlot( UINT16 ubID )
else
{
// anv: for passengers, position on team panel will be linked with seat in vehicle
if ( MercPtrs[ ubID ]->flags.uiStatusFlags & ( SOLDIER_DRIVER | SOLDIER_PASSENGER ) )
if ( ubID->flags.uiStatusFlags & ( SOLDIER_DRIVER | SOLDIER_PASSENGER ) )
{
SOLDIERTYPE *pVehicle = GetSoldierStructureForVehicle( MercPtrs[ ubID ]->iVehicleId );
SOLDIERTYPE *pVehicle = GetSoldierStructureForVehicle( ubID->iVehicleId );
if( pVehicle != NULL )
{
for( UINT8 iCounter = 0; iCounter < gNewVehicle[ pVehicleList[ MercPtrs[ ubID ]->iVehicleId ].ubVehicleType ].iNewSeatingCapacities; iCounter++ )
for( UINT8 iCounter = 0; iCounter < gNewVehicle[ pVehicleList[ ubID->iVehicleId ].ubVehicleType ].iNewSeatingCapacities; iCounter++ )
{
SOLDIERTYPE *pPassenger = pVehicleList[ MercPtrs[ ubID ]->iVehicleId ].pPassengers[ iCounter ];
SOLDIERTYPE *pPassenger = pVehicleList[ ubID->iVehicleId ].pPassengers[ iCounter ];
if( pPassenger != NULL && pPassenger->ubID == ubID )
{
gTeamPanel[ iCounter ].fOccupied = TRUE;
@@ -6929,7 +6929,7 @@ void AddPlayerToInterfaceTeamSlot( UINT16 ubID )
fInterfacePanelDirty = DIRTYLEVEL2;
// Set ID to do open anim
MercPtrs[ ubID ]->flags.fUInewMerc = TRUE;
ubID->flags.fUInewMerc = TRUE;
return;
}
+6 -6
View File
@@ -83,11 +83,11 @@ SoldierID GetSMPanelCurrentMerc( );
void UpdateSMPanel( );
BOOLEAN InitTEAMSlots( );
void AddPlayerToInterfaceTeamSlot( UINT16 ubID );
void AddPlayerToInterfaceTeamSlot( SoldierID ubID );
BOOLEAN RemovePlayerFromInterfaceTeamSlot( UINT8 ubID );
BOOLEAN GetPlayerIDFromInterfaceTeamSlot( UINT8 ubPanelSlot, UINT16 * pubID );
void RemoveAllPlayersFromSlot( );
BOOLEAN PlayerExistsInSlot( UINT16 ubID );
BOOLEAN PlayerExistsInSlot( SoldierID ubID );
BOOLEAN RemovePlayerFromTeamSlotGivenMercID( UINT16 ubMercID );
void CheckForAndAddMercToTeamPanel( SOLDIERTYPE *pSoldier );
void CleanUpStack( OBJECTTYPE * pObj, OBJECTTYPE * pCursorObj );
@@ -105,7 +105,7 @@ void InitOldInventorySystem( );
// ATE TO BE MOVED TO INTERFACE_ITEMS.C
extern INT8 gbNewItem[ NUM_INV_SLOTS ];
extern INT8 gbNewItemCycle[ NUM_INV_SLOTS ];
extern UINT8 gubNewItemMerc;
extern UINT8 gubNewItemMerc;
void ShowRadioLocator( SoldierID ubID, UINT8 ubLocatorSpeed );
void EndRadioLocator( UINT16 ubID );
@@ -118,12 +118,12 @@ extern BOOLEAN gfDisableTacticalPanelButtons;
typedef struct
{
UINT16 ubID;
BOOLEAN fOccupied;
SoldierID ubID;
BOOLEAN fOccupied;
} TEAM_PANEL_SLOTS_TYPE;
extern TEAM_PANEL_SLOTS_TYPE gTeamPanel[ NUM_TEAM_SLOTS ];
extern TEAM_PANEL_SLOTS_TYPE gTeamPanel[ NUM_TEAM_SLOTS ];
+4 -4
View File
@@ -1,7 +1,7 @@
#ifndef ITEM_TYPES_H
#define ITEM_TYPES_H
#include "types.h"
#include "Overhead Types.h"
#include <vector>
#include <list>
// THE_BOB : added for pocket popup definitions
@@ -408,15 +408,15 @@ namespace ObjectDataStructs {
struct OBJECT_BOMBS_AND_OTHER
{ // this is used by placed bombs, switches, and the action item
INT16 bBombStatus; // % status
INT8 bDetonatorType; // timed, remote, or pressure-activated
INT8 bDetonatorType; // timed, remote, or pressure-activated
UINT16 usBombItem; // the usItem of the bomb.
union
{
INT8 bDelay; // >=0 values used only
INT8 bFrequency; // >=0 values used only
};
UINT16 ubBombOwner; // side which placed the bomb
UINT8 bActionValue; // this is used by the ACTION_ITEM fake item
SoldierID ubBombOwner; // side which placed the bomb
UINT8 bActionValue; // this is used by the ACTION_ITEM fake item
union
{
UINT8 ubTolerance; // tolerance value for panic triggers
+4 -4
View File
@@ -15287,10 +15287,10 @@ BOOLEAN ObjectIsExternalFeeder(SOLDIERTYPE* pSoldier, OBJECTTYPE * pObject)
if ( !pSoldier || !pObject)
return( FALSE );
UINT16 usSoldierFeedingTarget1 = 0;
SoldierID usSoldierFeedingTarget1 = NOBODY;
UINT16 usGunSlot1 = 0;
UINT16 usAmmoSlot1 = 0;
UINT16 usSoldierFeedingTarget2 = 0;
SoldierID usSoldierFeedingTarget2 = NOBODY;
UINT16 usGunSlot2 = 0;
UINT16 usAmmoSlot2 = 0;
if ( pSoldier->IsFeedingExternal(&usSoldierFeedingTarget1, &usGunSlot1, &usAmmoSlot1, &usSoldierFeedingTarget2, &usGunSlot2, &usAmmoSlot2) )
@@ -15345,10 +15345,10 @@ OBJECTTYPE* GetExternalFeedingObject(SOLDIERTYPE* pSoldier, OBJECTTYPE * pObject
continue;
// we check if that guy is feeding someone, and that someone is really us
UINT16 usTeamSoldierFeedingTarget1 = 0;
SoldierID usTeamSoldierFeedingTarget1 = NOBODY;
UINT16 usGunSlot1 = 0;
UINT16 usAmmoSlot1 = 0;
UINT16 usTeamSoldierFeedingTarget2 = 0;
SoldierID usTeamSoldierFeedingTarget2 = NOBODY;
UINT16 usGunSlot2 = 0;
UINT16 usAmmoSlot2 = 0;
if ( pTeamSoldier->IsFeedingExternal(&usTeamSoldierFeedingTarget1, &usGunSlot1, &usAmmoSlot1, &usTeamSoldierFeedingTarget2, &usGunSlot2, &usAmmoSlot2) )
+1 -1
View File
@@ -4390,7 +4390,7 @@ UINT8 SoldierToSoldierBodyPartChanceToGetThrough( SOLDIERTYPE * pStartSoldier, S
return( ChanceToGetThrough( pStartSoldier, (FLOAT) sX, (FLOAT) sY, dEndZPos ) );
}
UINT8 SoldierToLocationChanceToGetThrough( SOLDIERTYPE * pStartSoldier, INT32 sGridNo, INT8 bLevel, INT8 bCubeLevel, UINT16 ubTargetID )
UINT8 SoldierToLocationChanceToGetThrough( SOLDIERTYPE * pStartSoldier, INT32 sGridNo, INT8 bLevel, INT8 bCubeLevel, SoldierID ubTargetID )
{
FLOAT dEndZPos;
INT16 sXPos;
+2 -2
View File
@@ -152,7 +152,7 @@ UINT8 SoldierToSoldierChanceToGetThrough( SOLDIERTYPE * pStartSoldier, SOLDIERTY
UINT8 SoldierToSoldierBodyPartChanceToGetThrough( SOLDIERTYPE * pStartSoldier, SOLDIERTYPE * pEndSoldier, UINT8 ubAimLocation );
UINT8 AISoldierToSoldierChanceToGetThrough( SOLDIERTYPE * pStartSoldier, SOLDIERTYPE * pEndSoldier );
UINT8 AISoldierToLocationChanceToGetThrough( SOLDIERTYPE * pStartSoldier, INT32 sGridNo, INT8 bLevel, INT8 bCubeLevel );
UINT8 SoldierToLocationChanceToGetThrough( SOLDIERTYPE * pStartSoldier, INT32 sGridNo, INT8 bLevel, INT8 bCubeLevel, UINT16 ubTargetID );
UINT8 SoldierToLocationChanceToGetThrough( SOLDIERTYPE * pStartSoldier, INT32 sGridNo, INT8 bLevel, INT8 bCubeLevel, SoldierID ubTargetID );
INT32 SoldierToLocationWindowTest( SOLDIERTYPE * pStartSoldier, INT32 sEndGridNo );
// sevenfm: AI LOS functions
INT32 LOS_Raised(SOLDIERTYPE * pStartSoldier, SOLDIERTYPE * pEndSoldier, int iTileSightLimit = CALC_FROM_ALL_DIRS, UINT8 ubAimLocation = LOS_POS);
@@ -261,4 +261,4 @@ void DamageRiotShield( SOLDIERTYPE* pSoldier, INT32& rsDamage, INT32& rsSecondar
extern INT8 GetStealth(SOLDIERTYPE* pSoldier);
extern INT8 GetSightAdjustmentBasedOnLBE(SOLDIERTYPE* pSoldier);
#endif
#endif
+1 -1
View File
@@ -128,7 +128,7 @@ struct TacticalStatusType
BOOLEAN fCantGetThrough;
INT32 sCantGetThroughGridNo;
INT32 sCantGetThroughSoldierGridNo;
UINT16 ubCantGetThroughID;
SoldierID ubCantGetThroughID;
BOOLEAN fDidGameJustStart;
BOOLEAN fStatChangeCheatOn;
UINT8 ubLastRequesterTargetID;
+16 -17
View File
@@ -2285,14 +2285,13 @@ void SOLDIERTYPE::CalcNewActionPoints( void )
void SOLDIERTYPE::DoNinjaAttack( void )
{
//UINT32 uiMercFlags;
UINT16 usSoldierIndex;
SOLDIERTYPE *pTSoldier;
UINT8 ubTDirection;
UINT8 ubTargetStance;
//UINT32 uiMercFlags;
SOLDIERTYPE *pTSoldier;
UINT8 ubTDirection;
UINT8 ubTargetStance;
usSoldierIndex = WhoIsThere2( this->sTargetGridNo, this->pathing.bLevel );
SoldierID usSoldierIndex = WhoIsThere2( this->sTargetGridNo, this->pathing.bLevel );
if ( usSoldierIndex != NOBODY )
{
GetSoldier( &pTSoldier, usSoldierIndex );
@@ -9449,8 +9448,8 @@ void SOLDIERTYPE::BeginSoldierClimbUpRoof(void)
return;//hayden disable climbing roof
}
INT8 bNewDirection;
UINT16 ubWhoIsThere;
INT8 bNewDirection;
SoldierID ubWhoIsThere;
if (FindHeigherLevel(this, this->sGridNo, this->ubDirection, &bNewDirection) && (this->pathing.bLevel == 0))
{
@@ -9623,8 +9622,8 @@ void SOLDIERTYPE::BeginSoldierClimbWindow( void )
void SOLDIERTYPE::BeginSoldierClimbWall( void )
{
INT8 bNewDirection;
UINT16 ubWhoIsThere;
INT8 bNewDirection;
SoldierID ubWhoIsThere;
if ( FindWallJumpDirection( this, this->sGridNo, this->ubDirection, &bNewDirection ) && (this->pathing.bLevel == 0) )
{
@@ -9660,8 +9659,8 @@ void SOLDIERTYPE::BeginSoldierClimbWall( void )
void SOLDIERTYPE::BeginSoldierClimbWallUp( void )
{
INT8 bNewDirection;
UINT16 ubWhoIsThere;
INT8 bNewDirection;
SoldierID ubWhoIsThere;
if ( FindLowerLevelWall( this, this->sGridNo, this->ubDirection, &bNewDirection ) && (this->pathing.bLevel > 0) )
{
@@ -11309,8 +11308,8 @@ BOOLEAN SOLDIERTYPE::CheckSoldierHitRoof( void )
void SOLDIERTYPE::BeginSoldierClimbDownRoof(void)
{
INT8 bNewDirection;
UINT16 ubWhoIsThere;
INT8 bNewDirection;
SoldierID ubWhoIsThere;
if (FindLowerLevel(this, this->sGridNo, this->ubDirection, &bNewDirection) && (this->pathing.bLevel > 0))
{
@@ -12469,7 +12468,7 @@ void SOLDIERTYPE::EVENT_SoldierBeginBladeAttack( INT32 sGridNo, UINT8 ubDirectio
{
SOLDIERTYPE *pTSoldier;
//UINT32 uiMercFlags;
UINT16 usSoldierIndex;
SoldierID usSoldierIndex;
UINT8 ubTDirection;
ROTTING_CORPSE *pCorpse;
@@ -12692,7 +12691,7 @@ void SOLDIERTYPE::EVENT_SoldierBeginPunchAttack( INT32 sGridNo, UINT8 ubDirectio
BOOLEAN fMartialArtist = FALSE;
SOLDIERTYPE *pTSoldier;
//UINT32 uiMercFlags;
UINT16 usSoldierIndex;
SoldierID usSoldierIndex;
UINT8 ubTDirection;
UINT16 usItem;
@@ -15148,7 +15147,7 @@ void SOLDIERTYPE::InventoryExplosion( void )
}
// Flugente: do we currently provide ammo (pAmmoSlot) for someone else's (pubId) gun (pGunSlot)?
BOOLEAN SOLDIERTYPE::IsFeedingExternal( UINT16 * pubId1, UINT16* pGunSlot1, UINT16* pAmmoSlot1, UINT16 * pubId2, UINT16* pGunSlot2, UINT16* pAmmoSlot2 )
BOOLEAN SOLDIERTYPE::IsFeedingExternal( SoldierID * pubId1, UINT16* pGunSlot1, UINT16* pAmmoSlot1, SoldierID * pubId2, UINT16* pGunSlot2, UINT16* pAmmoSlot2 )
{
// make sure we have to check this...
if ( gGameExternalOptions.ubExternalFeeding == 0 )
+1 -1
View File
@@ -1839,7 +1839,7 @@ public:
void InventoryExplosion( void );
// Flugente: do we currently provide ammo (pAmmoSlot) for someone else's (pubId) gun (pGunSlot)?
BOOLEAN IsFeedingExternal(UINT16 * pubId1, UINT16* pGunSlot1, UINT16* pAmmoSlot1, UINT16 * pubId2, UINT16* pGunSlot2, UINT16* pAmmoSlot2);
BOOLEAN IsFeedingExternal(SoldierID * pubId1, UINT16* pGunSlot1, UINT16* pAmmoSlot1, SoldierID* pubId2, UINT16* pGunSlot2, UINT16* pAmmoSlot2);
// Flugente: return first found object with a specific flag from our inventory
OBJECTTYPE* GetObjectWithFlag( UINT64 aFlag );
+15 -13
View File
@@ -176,7 +176,7 @@ INT16 sVehicleInternalOrigArmorValues[ NUMBER_OF_TYPES_OF_VEHICLES ][ NUMBER_OF_
// set the driver of the vehicle
void SetDriver( INT32 iID, UINT16 ubID );
void SetDriver( INT32 iID, SoldierID ubID );
//void RemoveSoldierFromVehicleBetweenSectors( pSoldier, iId );
@@ -1556,7 +1556,7 @@ SOLDIERTYPE *GetDriver( INT32 iID )
INT32 iCounter;
if( pVehicleList[ iID ].ubDriver != NOBODY )
{
return( MercPtrs[ pVehicleList[ iID ].ubDriver ] );
return( pVehicleList[ iID ].ubDriver );
}
else
{
@@ -1573,25 +1573,27 @@ SOLDIERTYPE *GetDriver( INT32 iID )
}
void SetDriver( INT32 iID, UINT16 ubID )
void SetDriver( INT32 iID, SoldierID ubID )
{
// anv: first make sure previous driver won't be driver anymore
if( pVehicleList[ iID ].ubDriver != NOBODY && MercPtrs[ pVehicleList[ iID ].ubDriver ]->iVehicleId == iID )
SOLDIERTYPE* prevDriver = pVehicleList[iID].ubDriver;
if( prevDriver != NOBODY && prevDriver->iVehicleId == iID )
{
if( MercPtrs[ pVehicleList[ iID ].ubDriver ] )
if( prevDriver )
{
MercPtrs[ pVehicleList[ iID ].ubDriver ]->flags.uiStatusFlags &= ~(SOLDIER_DRIVER);
if( GetSeatIndexFromSoldier( MercPtrs[ pVehicleList[ iID ].ubDriver ] ) != (-1) )
prevDriver->flags.uiStatusFlags &= ~(SOLDIER_DRIVER);
if( GetSeatIndexFromSoldier( prevDriver ) != (-1) )
{
MercPtrs[ pVehicleList[ iID ].ubDriver ]->flags.uiStatusFlags |= SOLDIER_PASSENGER;
prevDriver->flags.uiStatusFlags |= SOLDIER_PASSENGER;
}
}
}
// set proper flags
if( ubID != NOBODY )
{
MercPtrs[ ubID ]->flags.uiStatusFlags |= SOLDIER_DRIVER;
MercPtrs[ ubID ]->flags.uiStatusFlags &= ~(SOLDIER_PASSENGER);
ubID->flags.uiStatusFlags |= SOLDIER_DRIVER;
ubID->flags.uiStatusFlags &= ~(SOLDIER_PASSENGER);
}
pVehicleList[ iID ].ubDriver = ubID;
}
@@ -1821,7 +1823,7 @@ BOOLEAN ExitVehicle( SOLDIERTYPE *pSoldier )
}
else
{
UINT16 usTempSelectedSoldier = gusSelectedSoldier;
SoldierID usTempSelectedSoldier = gusSelectedSoldier;
SetCurrentSquad( CurrentSquad(), TRUE );
@@ -1984,7 +1986,7 @@ void AddPassangersToTeamPanel( INT32 iId )
}
void VehicleTakeDamage( UINT8 ubID, UINT8 ubReason, INT16 sDamage, INT32 sGridNo, UINT16 ubAttackerID )
void VehicleTakeDamage( UINT8 ubID, UINT8 ubReason, INT16 sDamage, INT32 sGridNo, SoldierID ubAttackerID )
{
if ( ubReason != TAKE_DAMAGE_GAS_FIRE && ubReason != TAKE_DAMAGE_GAS_NOTFIRE )
{
@@ -2013,7 +2015,7 @@ void VehicleTakeDamage( UINT8 ubID, UINT8 ubReason, INT16 sDamage, INT32 sGridNo
}
void HandleCriticalHitForVehicleInLocation( UINT8 ubID, INT16 sDmg, INT32 sGridNo, UINT16 ubAttackerID )
void HandleCriticalHitForVehicleInLocation( UINT8 ubID, INT16 sDmg, INT32 sGridNo, SoldierID ubAttackerID )
{
// check state the armor was s'posed to be in vs. the current state..the difference / orig state is % chance
// that a critical hit will occur
+3 -3
View File
@@ -289,7 +289,7 @@ typedef struct
BOOLEAN fBetweenSectors; // between sectors?
INT32 sGridNo; // location in tactical
SOLDIERTYPE *pPassengers[ MAXPASSENGERS ];
UINT16 ubDriver;
SoldierID ubDriver;
INT16 sInternalHitLocations[ NUMBER_OF_EXTERNAL_HIT_LOCATIONS_ON_VEHICLE ];
INT16 sArmourType;
INT16 sExternalArmorLocationsStatus[ NUMBER_OF_EXTERNAL_HIT_LOCATIONS_ON_VEHICLE ];
@@ -404,7 +404,7 @@ BOOLEAN SwapVehicleSeat( SOLDIERTYPE *pVehicle, SOLDIERTYPE *pSoldier, UINT8 ubS
void AddPassangersToTeamPanel( INT32 iId );
void VehicleTakeDamage( UINT8 ubID, UINT8 ubReason, INT16 sDamage, INT32 sGridNo , UINT16 ubAttackerID );
void VehicleTakeDamage( UINT8 ubID, UINT8 ubReason, INT16 sDamage, INT32 sGridNo , SoldierID ubAttackerID );
// the soldiertype containing this tactical incarnation of this vehicle
SOLDIERTYPE * GetSoldierStructureForVehicle( INT32 iId );
@@ -415,7 +415,7 @@ void AdjustVehicleAPs( SOLDIERTYPE *pSoldier, INT16 *pubPoints );
//INT16 GetOrigInternalArmorValueForVehicleInLocation( UINT8 ubID, UINT8 ubLocation );
// handle crit hit to vehicle in this location
void HandleCriticalHitForVehicleInLocation( UINT8 ubID, INT16 sDmg, INT32 sGridNo, UINT16 ubAttackerID );
void HandleCriticalHitForVehicleInLocation( UINT8 ubID, INT16 sDmg, INT32 sGridNo, SoldierID ubAttackerID );
// ste up armor values for this vehicle
void SetUpArmorForVehicle( UINT8 ubID );