mirror of
https://github.com/1dot13/source.git
synced 2026-09-02 14:36:06 +02:00
Convert to SoldierID
This commit is contained in:
@@ -1461,8 +1461,8 @@ void InsuranceContractPayLifeInsuranceForDeadMerc( UINT16 ubPayoutID )
|
|||||||
if( LaptopSaveInfo.pLifeInsurancePayouts[ ubPayoutID ].ubSoldierID == Menptr[ LaptopSaveInfo.pLifeInsurancePayouts[ ubPayoutID ].ubSoldierID ].ubID )
|
if( LaptopSaveInfo.pLifeInsurancePayouts[ ubPayoutID ].ubSoldierID == Menptr[ LaptopSaveInfo.pLifeInsurancePayouts[ ubPayoutID ].ubSoldierID ].ubID )
|
||||||
{
|
{
|
||||||
// and if the soldier is still active ( player hasn't removed carcass yet ), reset insurance flag
|
// and if the soldier is still active ( player hasn't removed carcass yet ), reset insurance flag
|
||||||
if( Menptr[ LaptopSaveInfo.pLifeInsurancePayouts[ ubPayoutID ].ubSoldierID ].bActive )
|
if( LaptopSaveInfo.pLifeInsurancePayouts[ ubPayoutID ].ubSoldierID->bActive )
|
||||||
Menptr[ LaptopSaveInfo.pLifeInsurancePayouts[ ubPayoutID ].ubSoldierID ].usLifeInsurance = 0;
|
LaptopSaveInfo.pLifeInsurancePayouts[ ubPayoutID ].ubSoldierID->usLifeInsurance = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
//add transaction to players account
|
//add transaction to players account
|
||||||
|
|||||||
+47
-48
@@ -470,7 +470,7 @@ typedef struct
|
|||||||
float dForceY;
|
float dForceY;
|
||||||
float dForceZ;
|
float dForceZ;
|
||||||
UINT32 sTargetGridNo;
|
UINT32 sTargetGridNo;
|
||||||
UINT16 ubID;
|
SoldierID ubID;
|
||||||
UINT8 ubActionCode;
|
UINT8 ubActionCode;
|
||||||
UINT32 uiActionData;
|
UINT32 uiActionData;
|
||||||
UINT16 usItem;
|
UINT16 usItem;
|
||||||
@@ -494,7 +494,7 @@ typedef struct
|
|||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
UINT32 sGridNo;
|
UINT32 sGridNo;
|
||||||
UINT16 ubID;
|
SoldierID ubID;
|
||||||
UINT16 usItem;
|
UINT16 usItem;
|
||||||
UINT8 ubItemStatus;
|
UINT8 ubItemStatus;
|
||||||
UINT32 uiWorldIndex; // the local World Index of this bomb on its creators client
|
UINT32 uiWorldIndex; // the local World Index of this bomb on its creators client
|
||||||
@@ -506,7 +506,7 @@ typedef struct
|
|||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
UINT16 ubID;
|
SoldierID ubID;
|
||||||
UINT32 uiWorldItemIndex;
|
UINT32 uiWorldItemIndex;
|
||||||
UINT8 ubMPTeamIndex;
|
UINT8 ubMPTeamIndex;
|
||||||
UINT32 uiPreRandomIndex; // send out our current pre-random index
|
UINT32 uiPreRandomIndex; // send out our current pre-random index
|
||||||
@@ -516,7 +516,7 @@ typedef struct
|
|||||||
{
|
{
|
||||||
UINT32 uiWorldItemIndex;
|
UINT32 uiWorldItemIndex;
|
||||||
UINT8 ubMPTeamIndex;
|
UINT8 ubMPTeamIndex;
|
||||||
UINT16 ubID;
|
SoldierID ubID;
|
||||||
UINT32 sGridNo;
|
UINT32 sGridNo;
|
||||||
UINT32 uiPreRandomIndex; // send out our current pre-random index
|
UINT32 uiPreRandomIndex; // send out our current pre-random index
|
||||||
} disarm_struct;
|
} disarm_struct;
|
||||||
@@ -526,7 +526,7 @@ typedef struct
|
|||||||
INT32 sGridNo;
|
INT32 sGridNo;
|
||||||
UINT8 ubRadius;
|
UINT8 ubRadius;
|
||||||
UINT16 usItem;
|
UINT16 usItem;
|
||||||
UINT16 ubOwner;
|
SoldierID ubOwner;
|
||||||
BOOLEAN fSubsequent;
|
BOOLEAN fSubsequent;
|
||||||
INT8 bLevel;
|
INT8 bLevel;
|
||||||
INT32 iSmokeEffectID;
|
INT32 iSmokeEffectID;
|
||||||
@@ -802,7 +802,7 @@ void recievePATH(RPCParameters *rpcParameters)
|
|||||||
|
|
||||||
EV_S_SENDPATHTONETWORK* SNetPath = (EV_S_SENDPATHTONETWORK*)rpcParameters->input;
|
EV_S_SENDPATHTONETWORK* SNetPath = (EV_S_SENDPATHTONETWORK*)rpcParameters->input;
|
||||||
|
|
||||||
SOLDIERTYPE *pSoldier = MercPtrs[ SNetPath->usSoldierID ];
|
SOLDIERTYPE *pSoldier = SNetPath->usSoldierID;
|
||||||
|
|
||||||
|
|
||||||
memcpy(pSoldier->pathing.usPathingData, SNetPath->usPathData,sizeof(UINT16)*30);
|
memcpy(pSoldier->pathing.usPathingData, SNetPath->usPathData,sizeof(UINT16)*30);
|
||||||
@@ -863,7 +863,7 @@ void recieveSTANCE(RPCParameters *rpcParameters)
|
|||||||
|
|
||||||
EV_S_CHANGESTANCE* SChangeStance = (EV_S_CHANGESTANCE*)rpcParameters->input;
|
EV_S_CHANGESTANCE* SChangeStance = (EV_S_CHANGESTANCE*)rpcParameters->input;
|
||||||
|
|
||||||
SOLDIERTYPE *pSoldier = MercPtrs[ SChangeStance->usSoldierID ];
|
SOLDIERTYPE *pSoldier = SChangeStance->usSoldierID;
|
||||||
|
|
||||||
pSoldier->ChangeSoldierStance( SChangeStance->ubNewStance );
|
pSoldier->ChangeSoldierStance( SChangeStance->ubNewStance );
|
||||||
|
|
||||||
@@ -906,7 +906,7 @@ void recieveDIR(RPCParameters *rpcParameters)
|
|||||||
EV_S_SETDESIREDDIRECTION* SSetDesiredDirection = (EV_S_SETDESIREDDIRECTION*)rpcParameters->input;
|
EV_S_SETDESIREDDIRECTION* SSetDesiredDirection = (EV_S_SETDESIREDDIRECTION*)rpcParameters->input;
|
||||||
|
|
||||||
|
|
||||||
SOLDIERTYPE *pSoldier = MercPtrs[ SSetDesiredDirection->usSoldierID ];
|
SOLDIERTYPE *pSoldier = SSetDesiredDirection->usSoldierID;
|
||||||
|
|
||||||
pSoldier->EVENT_SetSoldierDesiredDirection( SSetDesiredDirection->usDesiredDirection );
|
pSoldier->EVENT_SetSoldierDesiredDirection( SSetDesiredDirection->usDesiredDirection );
|
||||||
|
|
||||||
@@ -945,7 +945,7 @@ void recieveFIRE(RPCParameters *rpcParameters)
|
|||||||
EV_S_BEGINFIREWEAPON* SBeginFireWeapon = (EV_S_BEGINFIREWEAPON*)rpcParameters->input;
|
EV_S_BEGINFIREWEAPON* SBeginFireWeapon = (EV_S_BEGINFIREWEAPON*)rpcParameters->input;
|
||||||
//ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"SendBeginFireWeaponEvent" );
|
//ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"SendBeginFireWeaponEvent" );
|
||||||
|
|
||||||
SOLDIERTYPE *pSoldier = MercPtrs[ SBeginFireWeapon->usSoldierID ];
|
SOLDIERTYPE *pSoldier = SBeginFireWeapon->usSoldierID;
|
||||||
|
|
||||||
pSoldier->sTargetGridNo = SBeginFireWeapon->sTargetGridNo;
|
pSoldier->sTargetGridNo = SBeginFireWeapon->sTargetGridNo;
|
||||||
pSoldier->bTargetLevel = SBeginFireWeapon->bTargetLevel;
|
pSoldier->bTargetLevel = SBeginFireWeapon->bTargetLevel;
|
||||||
@@ -1019,7 +1019,7 @@ void send_dismiss(UINT16 ubCurrentSoldierID)
|
|||||||
client->RPC("sendDISMISS",(const char*)&sDismissMerc, (int)sizeof(send_dismiss_struct)*8, HIGH_PRIORITY, RELIABLE, 0, UNASSIGNED_SYSTEM_ADDRESS, true, 0, UNASSIGNED_NETWORK_ID,0);
|
client->RPC("sendDISMISS",(const char*)&sDismissMerc, (int)sizeof(send_dismiss_struct)*8, HIGH_PRIORITY, RELIABLE, 0, UNASSIGNED_SYSTEM_ADDRESS, true, 0, UNASSIGNED_NETWORK_ID,0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void send_hire( UINT8 iNewIndex, UINT8 ubCurrentSoldier, INT16 iTotalContractLength, BOOLEAN fCopyProfileItemsOver)
|
void send_hire( SoldierID iNewIndex, UINT8 ubCurrentSoldier, INT16 iTotalContractLength, BOOLEAN fCopyProfileItemsOver)
|
||||||
{
|
{
|
||||||
send_hire_struct sHireMerc;
|
send_hire_struct sHireMerc;
|
||||||
|
|
||||||
@@ -1028,7 +1028,7 @@ void send_hire( UINT8 iNewIndex, UINT8 ubCurrentSoldier, INT16 iTotalContractLen
|
|||||||
sHireMerc.fCopyProfileItemsOver=fCopyProfileItemsOver;
|
sHireMerc.fCopyProfileItemsOver=fCopyProfileItemsOver;
|
||||||
sHireMerc.bTeam=netbTeam;
|
sHireMerc.bTeam=netbTeam;
|
||||||
|
|
||||||
SOLDIERTYPE *pSoldier = MercPtrs[ iNewIndex ];
|
SOLDIERTYPE *pSoldier = iNewIndex;
|
||||||
|
|
||||||
UINT8 sectorEdge = cStartingSectorEdge;
|
UINT8 sectorEdge = cStartingSectorEdge;
|
||||||
|
|
||||||
@@ -1169,7 +1169,7 @@ void recieveguiPOS(RPCParameters *rpcParameters)
|
|||||||
{
|
{
|
||||||
gui_pos* gnPOS = (gui_pos*)rpcParameters->input;
|
gui_pos* gnPOS = (gui_pos*)rpcParameters->input;
|
||||||
|
|
||||||
SOLDIERTYPE *pSoldier = MercPtrs[ gnPOS->usSoldierID ];
|
SOLDIERTYPE *pSoldier = gnPOS->usSoldierID;
|
||||||
|
|
||||||
INT32 sNewGridNo;
|
INT32 sNewGridNo;
|
||||||
|
|
||||||
@@ -1195,7 +1195,7 @@ void recieveguiDIR(RPCParameters *rpcParameters)
|
|||||||
{
|
{
|
||||||
gui_dir* gnDIR = (gui_dir*)rpcParameters->input;
|
gui_dir* gnDIR = (gui_dir*)rpcParameters->input;
|
||||||
|
|
||||||
SOLDIERTYPE *pSoldier = MercPtrs[ gnDIR->usSoldierID ];
|
SOLDIERTYPE *pSoldier = gnDIR->usSoldierID;
|
||||||
|
|
||||||
pSoldier->EVENT_SetSoldierDirection( gnDIR->usNewDirection );
|
pSoldier->EVENT_SetSoldierDirection( gnDIR->usNewDirection );
|
||||||
}
|
}
|
||||||
@@ -1899,7 +1899,7 @@ void recieveSTOP (RPCParameters *rpcParameters)
|
|||||||
{
|
{
|
||||||
EV_S_STOP_MERC* SStopMerc =(EV_S_STOP_MERC*)rpcParameters->input;
|
EV_S_STOP_MERC* SStopMerc =(EV_S_STOP_MERC*)rpcParameters->input;
|
||||||
|
|
||||||
SOLDIERTYPE *pSoldier = MercPtrs[ SStopMerc->usSoldierID ];
|
SOLDIERTYPE *pSoldier = SStopMerc->usSoldierID;
|
||||||
|
|
||||||
pSoldier->EVENT_InternalSetSoldierPosition( SStopMerc->sXPos, SStopMerc->sYPos,FALSE, FALSE, FALSE );
|
pSoldier->EVENT_InternalSetSoldierPosition( SStopMerc->sXPos, SStopMerc->sYPos,FALSE, FALSE, FALSE );
|
||||||
pSoldier->EVENT_SetSoldierDirection( SStopMerc->ubDirection );
|
pSoldier->EVENT_SetSoldierDirection( SStopMerc->ubDirection );
|
||||||
@@ -1944,7 +1944,7 @@ void send_interrupt (SOLDIERTYPE *pSoldier)
|
|||||||
if (cGameType == MP_TYPE_COOP)
|
if (cGameType == MP_TYPE_COOP)
|
||||||
{
|
{
|
||||||
INT_STRUCT* INT = (INT_STRUCT*)rpcParameters->input;
|
INT_STRUCT* INT = (INT_STRUCT*)rpcParameters->input;
|
||||||
SOLDIERTYPE* pOpponent = MercPtrs[ INT->Interrupted];
|
SOLDIERTYPE* pOpponent = INT->Interrupted;
|
||||||
|
|
||||||
if( INT->bTeam == netbTeam || is_server)//its for us or we are server and its for AI which we control
|
if( INT->bTeam == netbTeam || is_server)//its for us or we are server and its for AI which we control
|
||||||
{
|
{
|
||||||
@@ -1978,7 +1978,7 @@ void send_interrupt (SOLDIERTYPE *pSoldier)
|
|||||||
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"Recieved interrupt between %s and %s.", TeamNameStrings[pOpponent->bTeam], TeamNameStrings[INT->bTeam] );
|
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"Recieved interrupt between %s and %s.", TeamNameStrings[pOpponent->bTeam], TeamNameStrings[INT->bTeam] );
|
||||||
|
|
||||||
//start interrupt turn //real interrupt code
|
//start interrupt turn //real interrupt code
|
||||||
SOLDIERTYPE* pSoldier = MercPtrs[ INT->ubID ];
|
SOLDIERTYPE* pSoldier = INT->ubID;
|
||||||
ManSeesMan(pSoldier,pOpponent,pOpponent->sGridNo,pOpponent->pathing.bLevel,2,1);
|
ManSeesMan(pSoldier,pOpponent,pOpponent->sGridNo,pOpponent->pathing.bLevel,2,1);
|
||||||
StartInterrupt();
|
StartInterrupt();
|
||||||
}
|
}
|
||||||
@@ -1994,7 +1994,7 @@ void send_interrupt (SOLDIERTYPE *pSoldier)
|
|||||||
{
|
{
|
||||||
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"Interrupt of %s awarded to you.", TeamNameStrings[pOpponent->bTeam] );//was MPClientMessage[37], can be reconnected if text updated and translated
|
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"Interrupt of %s awarded to you.", TeamNameStrings[pOpponent->bTeam] );//was MPClientMessage[37], can be reconnected if text updated and translated
|
||||||
|
|
||||||
SOLDIERTYPE* pSoldier = MercPtrs[ INT->ubID ];
|
SOLDIERTYPE* pSoldier = INT->ubID;
|
||||||
ManSeesMan(pSoldier,pOpponent,pOpponent->sGridNo,pOpponent->pathing.bLevel,2,1);
|
ManSeesMan(pSoldier,pOpponent,pOpponent->sGridNo,pOpponent->pathing.bLevel,2,1);
|
||||||
StartInterrupt();
|
StartInterrupt();
|
||||||
}
|
}
|
||||||
@@ -2003,7 +2003,7 @@ void send_interrupt (SOLDIERTYPE *pSoldier)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
INT_STRUCT* INT = (INT_STRUCT*)rpcParameters->input;
|
INT_STRUCT* INT = (INT_STRUCT*)rpcParameters->input;
|
||||||
SOLDIERTYPE* pOpponent = MercPtrs[ INT->Interrupted];
|
SOLDIERTYPE* pOpponent = INT->Interrupted;
|
||||||
|
|
||||||
if(INT->bTeam==netbTeam)//for us
|
if(INT->bTeam==netbTeam)//for us
|
||||||
{
|
{
|
||||||
@@ -2028,7 +2028,7 @@ void send_interrupt (SOLDIERTYPE *pSoldier)
|
|||||||
if( INT->bTeam != 0)//not for our team - hayden
|
if( INT->bTeam != 0)//not for our team - hayden
|
||||||
{
|
{
|
||||||
//stop moving merc who was interrupted and init UI bar
|
//stop moving merc who was interrupted and init UI bar
|
||||||
SOLDIERTYPE* pMerc = MercPtrs[ INT->ubID ];
|
SOLDIERTYPE* pMerc = INT->ubID;
|
||||||
pMerc->HaultSoldierFromSighting(TRUE);
|
pMerc->HaultSoldierFromSighting(TRUE);
|
||||||
FreezeInterfaceForEnemyTurn();
|
FreezeInterfaceForEnemyTurn();
|
||||||
InitEnemyUIBar( 0, 0 );
|
InitEnemyUIBar( 0, 0 );
|
||||||
@@ -2049,7 +2049,7 @@ void send_interrupt (SOLDIERTYPE *pSoldier)
|
|||||||
{
|
{
|
||||||
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"Interrupt of %s awarded to you.", TeamNameStrings[pOpponent->bTeam] );//was MPClientMessage[37], can be reconnected if text updated and translated
|
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"Interrupt of %s awarded to you.", TeamNameStrings[pOpponent->bTeam] );//was MPClientMessage[37], can be reconnected if text updated and translated
|
||||||
|
|
||||||
SOLDIERTYPE* pSoldier = MercPtrs[ INT->ubID ];
|
SOLDIERTYPE* pSoldier = INT->ubID;
|
||||||
ManSeesMan(pSoldier,pOpponent,pOpponent->sGridNo,pOpponent->pathing.bLevel,2,1);
|
ManSeesMan(pSoldier,pOpponent,pOpponent->sGridNo,pOpponent->pathing.bLevel,2,1);
|
||||||
StartInterrupt();
|
StartInterrupt();
|
||||||
}
|
}
|
||||||
@@ -2924,7 +2924,7 @@ void send_grenade (OBJECTTYPE *pGameObj, float dLifeLength, float xPos, float yP
|
|||||||
{
|
{
|
||||||
ubOwner = MPEncodeSoldierID(ubOwner); // translate our soldier to the "network" version
|
ubOwner = MPEncodeSoldierID(ubOwner); // translate our soldier to the "network" version
|
||||||
|
|
||||||
SOLDIERTYPE* pSoldier = MercPtrs[ubOwner];
|
SOLDIERTYPE* pSoldier = ubOwner;
|
||||||
if (pSoldier != NULL)
|
if (pSoldier != NULL)
|
||||||
{
|
{
|
||||||
if ((pSoldier->bTeam == 1 && is_server) || IsOurSoldier(pSoldier))
|
if ((pSoldier->bTeam == 1 && is_server) || IsOurSoldier(pSoldier))
|
||||||
@@ -2942,7 +2942,6 @@ void send_grenade (OBJECTTYPE *pGameObj, float dLifeLength, float xPos, float yP
|
|||||||
gren.ubID = ubOwner;
|
gren.ubID = ubOwner;
|
||||||
gren.usItem = pGameObj->usItem;
|
gren.usItem = pGameObj->usItem;
|
||||||
gren.sTargetGridNo = sTargetGridNo;
|
gren.sTargetGridNo = sTargetGridNo;
|
||||||
gren.ubID = ubOwner;
|
|
||||||
gren.RealObjectID = iRealObjectID;
|
gren.RealObjectID = iRealObjectID;
|
||||||
gren.IsThrownGrenade = bIsThrownGrenade;
|
gren.IsThrownGrenade = bIsThrownGrenade;
|
||||||
gren.uiPreRandomIndex = guiPreRandomIndex;
|
gren.uiPreRandomIndex = guiPreRandomIndex;
|
||||||
@@ -2965,7 +2964,7 @@ void recieveGRENADE (RPCParameters *rpcParameters)
|
|||||||
|
|
||||||
gren->ubID = MPDecodeSoldierID(gren->ubID);
|
gren->ubID = MPDecodeSoldierID(gren->ubID);
|
||||||
|
|
||||||
SOLDIERTYPE* pThrower = MercPtrs[ gren->ubID ];
|
SOLDIERTYPE* pThrower = gren->ubID;
|
||||||
if (pThrower != NULL)
|
if (pThrower != NULL)
|
||||||
{
|
{
|
||||||
guiPreRandomIndex = gren->uiPreRandomIndex;
|
guiPreRandomIndex = gren->uiPreRandomIndex;
|
||||||
@@ -3067,7 +3066,7 @@ void recieveGRENADERESULT (RPCParameters *rpcParameters)
|
|||||||
|
|
||||||
gres->ubOwnerID = MPDecodeSoldierID(gres->ubOwnerID);
|
gres->ubOwnerID = MPDecodeSoldierID(gres->ubOwnerID);
|
||||||
|
|
||||||
SOLDIERTYPE* pThrower = MercPtrs[ gres->ubOwnerID ];
|
SOLDIERTYPE* pThrower = gres->ubOwnerID;
|
||||||
if (pThrower != NULL)
|
if (pThrower != NULL)
|
||||||
{
|
{
|
||||||
// grenade wasnt thrown by one of our guys, so we should do it on the client
|
// grenade wasnt thrown by one of our guys, so we should do it on the client
|
||||||
@@ -3128,7 +3127,7 @@ void recieveGRENADERESULT (RPCParameters *rpcParameters)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void send_plant_explosive (UINT16 ubID,UINT16 usItem,UINT8 ubItemStatus,UINT16 usFlags, UINT32 sGridNo,UINT8 ubLevel, UINT32 uiWorldItemIndex)
|
void send_plant_explosive (SoldierID ubID,UINT16 usItem,UINT8 ubItemStatus,UINT16 usFlags, UINT32 sGridNo,UINT8 ubLevel, UINT32 uiWorldItemIndex)
|
||||||
{
|
{
|
||||||
explosive_obj exp;
|
explosive_obj exp;
|
||||||
|
|
||||||
@@ -3160,7 +3159,7 @@ void recievePLANTEXPLOSIVE (RPCParameters *rpcParameters)
|
|||||||
|
|
||||||
exp->ubID = MPDecodeSoldierID( exp->ubID );
|
exp->ubID = MPDecodeSoldierID( exp->ubID );
|
||||||
|
|
||||||
SOLDIERTYPE* pSoldier = MercPtrs[ exp->ubID ];
|
SOLDIERTYPE* pSoldier = exp->ubID;
|
||||||
if (pSoldier != NULL)
|
if (pSoldier != NULL)
|
||||||
{
|
{
|
||||||
// explosive wasnt planted on our client, so we should do it on the client
|
// explosive wasnt planted on our client, so we should do it on the client
|
||||||
@@ -3297,7 +3296,7 @@ void recieveDETONATEEXPLOSIVE (RPCParameters *rpcParameters)
|
|||||||
|
|
||||||
det->ubID = MPDecodeSoldierID(det->ubID);
|
det->ubID = MPDecodeSoldierID(det->ubID);
|
||||||
|
|
||||||
SOLDIERTYPE* pSoldier = MercPtrs[det->ubID];
|
SOLDIERTYPE* pSoldier = det->ubID;
|
||||||
if (pSoldier != NULL)
|
if (pSoldier != NULL)
|
||||||
{
|
{
|
||||||
// if explosive detonation didnt originate from this client then its need to be performed here
|
// if explosive detonation didnt originate from this client then its need to be performed here
|
||||||
@@ -3410,7 +3409,7 @@ void recieveDISARMEXPLOSIVE (RPCParameters *rpcParameters)
|
|||||||
|
|
||||||
disarm->ubID = MPDecodeSoldierID(disarm->ubID);
|
disarm->ubID = MPDecodeSoldierID(disarm->ubID);
|
||||||
|
|
||||||
SOLDIERTYPE* pSoldier = MercPtrs[disarm->ubID];
|
SOLDIERTYPE* pSoldier = disarm->ubID;
|
||||||
if (pSoldier != NULL)
|
if (pSoldier != NULL)
|
||||||
{
|
{
|
||||||
// if explosive disarm didnt originate from this client then its need to be performed here
|
// if explosive disarm didnt originate from this client then its need to be performed here
|
||||||
@@ -3439,7 +3438,7 @@ void recieveDISARMEXPLOSIVE (RPCParameters *rpcParameters)
|
|||||||
// print out a screen message if it was our bomb
|
// print out a screen message if it was our bomb
|
||||||
if (disarm->ubMPTeamIndex == netbTeam)
|
if (disarm->ubMPTeamIndex == netbTeam)
|
||||||
{
|
{
|
||||||
SOLDIERTYPE * pBombOwner = MercPtrs[gWorldItems[ gWorldBombs[ uiCount ].iItemIndex ].soldierID];
|
SOLDIERTYPE * pBombOwner = gWorldItems[ gWorldBombs[ uiCount ].iItemIndex ].soldierID;
|
||||||
if (pBombOwner != NULL)
|
if (pBombOwner != NULL)
|
||||||
{
|
{
|
||||||
ScreenMsg( FONT_LTBLUE , MSG_MPSYSTEM , MPClientMessage[71], pBombOwner->name, pSoldier->name);
|
ScreenMsg( FONT_LTBLUE , MSG_MPSYSTEM , MPClientMessage[71], pBombOwner->name, pSoldier->name);
|
||||||
@@ -3494,7 +3493,7 @@ void recieveSPREADEFFECT (RPCParameters *rpcParameters)
|
|||||||
|
|
||||||
sef->ubOwner = MPDecodeSoldierID(sef->ubOwner);
|
sef->ubOwner = MPDecodeSoldierID(sef->ubOwner);
|
||||||
|
|
||||||
SOLDIERTYPE* pSoldier = MercPtrs[sef->ubOwner];
|
SOLDIERTYPE* pSoldier = sef->ubOwner;
|
||||||
if (pSoldier != NULL)
|
if (pSoldier != NULL)
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -3579,7 +3578,7 @@ void recieveNEWSMOKEEFFECT (RPCParameters *rpcParameters)
|
|||||||
// translate any of our soldier ids back to the correct local copy
|
// translate any of our soldier ids back to the correct local copy
|
||||||
sef->ubOwner = MPDecodeSoldierID(sef->ubOwner);
|
sef->ubOwner = MPDecodeSoldierID(sef->ubOwner);
|
||||||
|
|
||||||
SOLDIERTYPE* pSoldier = MercPtrs[sef->ubOwner];
|
SOLDIERTYPE* pSoldier = sef->ubOwner;
|
||||||
if (pSoldier != NULL)
|
if (pSoldier != NULL)
|
||||||
{
|
{
|
||||||
// new smoke effect didnt originate from us
|
// new smoke effect didnt originate from us
|
||||||
@@ -3665,7 +3664,7 @@ void recieveEXPLOSIONDAMAGE (RPCParameters *rpcParameters)
|
|||||||
exp->ubAttackerID = MPDecodeSoldierID(exp->ubAttackerID);
|
exp->ubAttackerID = MPDecodeSoldierID(exp->ubAttackerID);
|
||||||
|
|
||||||
|
|
||||||
SOLDIERTYPE* pSoldier = MercPtrs[exp->ubSoldierID];
|
SOLDIERTYPE* pSoldier = exp->ubSoldierID;
|
||||||
if (pSoldier != NULL)
|
if (pSoldier != NULL)
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -3733,7 +3732,7 @@ void recieveBULLET(RPCParameters *rpcParameters)
|
|||||||
INT8 bTeam = OUR_TEAM;
|
INT8 bTeam = OUR_TEAM;
|
||||||
if ( netb->net_bullet.ubFirerID != NOBODY )
|
if ( netb->net_bullet.ubFirerID != NOBODY )
|
||||||
{
|
{
|
||||||
pFirer = MercPtrs[ netb->net_bullet.ubFirerID ];
|
pFirer = netb->net_bullet.ubFirerID;
|
||||||
bTeam=pFirer->bTeam;
|
bTeam=pFirer->bTeam;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3837,8 +3836,8 @@ void recieveSTATE(RPCParameters *rpcParameters)
|
|||||||
void send_death( SOLDIERTYPE *pSoldier )
|
void send_death( SOLDIERTYPE *pSoldier )
|
||||||
{
|
{
|
||||||
death_struct nDeath;
|
death_struct nDeath;
|
||||||
nDeath.soldier_id=pSoldier->ubID;
|
nDeath.soldier_id = pSoldier->ubID;
|
||||||
nDeath.attacker_id=pSoldier->ubAttackerID;
|
nDeath.attacker_id = pSoldier->ubAttackerID;
|
||||||
|
|
||||||
// Translate soldier id for other clients if the soldier was one of ours
|
// Translate soldier id for other clients if the soldier was one of ours
|
||||||
if(pSoldier->ubID<20)nDeath.soldier_id=nDeath.soldier_id+ubID_prefix;
|
if(pSoldier->ubID<20)nDeath.soldier_id=nDeath.soldier_id+ubID_prefix;
|
||||||
@@ -3852,7 +3851,7 @@ void send_death( SOLDIERTYPE *pSoldier )
|
|||||||
nDeath.attacker_id = pSoldier->ubNextToPreviousAttackerID;
|
nDeath.attacker_id = pSoldier->ubNextToPreviousAttackerID;
|
||||||
}
|
}
|
||||||
|
|
||||||
SOLDIERTYPE * pAttacker=MercPtrs[ nDeath.attacker_id ];
|
SOLDIERTYPE * pAttacker = nDeath.attacker_id;
|
||||||
INT8 pA_bTeam=CLIENT_NUM;
|
INT8 pA_bTeam=CLIENT_NUM;
|
||||||
CHAR16 pA_name[ 10 ];
|
CHAR16 pA_name[ 10 ];
|
||||||
INT8 pS_bTeam=CLIENT_NUM;
|
INT8 pS_bTeam=CLIENT_NUM;
|
||||||
@@ -3951,15 +3950,15 @@ void send_death( SOLDIERTYPE *pSoldier )
|
|||||||
void recieveDEATH (RPCParameters *rpcParameters)
|
void recieveDEATH (RPCParameters *rpcParameters)
|
||||||
{
|
{
|
||||||
death_struct* nDeath = (death_struct*)rpcParameters->input;
|
death_struct* nDeath = (death_struct*)rpcParameters->input;
|
||||||
SOLDIERTYPE * pSoldier=MercPtrs[ nDeath->soldier_id ];
|
SOLDIERTYPE * pSoldier = nDeath->soldier_id;
|
||||||
|
|
||||||
UINT16 ubAttackerID;
|
SoldierID ubAttackerID;
|
||||||
if((nDeath->attacker_id >= ubID_prefix) && (nDeath->attacker_id < (ubID_prefix+6)))
|
if((nDeath->attacker_id >= ubID_prefix) && (nDeath->attacker_id < (ubID_prefix+6)))
|
||||||
ubAttackerID = (nDeath->attacker_id - ubID_prefix);
|
ubAttackerID = (nDeath->attacker_id - ubID_prefix);
|
||||||
else
|
else
|
||||||
ubAttackerID = nDeath->attacker_id;
|
ubAttackerID = nDeath->attacker_id;
|
||||||
|
|
||||||
SOLDIERTYPE * pAttacker=MercPtrs[ ubAttackerID ];
|
SOLDIERTYPE * pAttacker = ubAttackerID;
|
||||||
INT8 pA_bTeam;
|
INT8 pA_bTeam;
|
||||||
CHAR16 pA_name[ 10 ];
|
CHAR16 pA_name[ 10 ];
|
||||||
INT8 pS_bTeam;
|
INT8 pS_bTeam;
|
||||||
@@ -4070,7 +4069,7 @@ void send_miss(EV_S_MISS * SMiss)
|
|||||||
void recievehitSTRUCT (RPCParameters *rpcParameters)
|
void recievehitSTRUCT (RPCParameters *rpcParameters)
|
||||||
{
|
{
|
||||||
EV_S_STRUCTUREHIT* struct_hit = (EV_S_STRUCTUREHIT*)rpcParameters->input;
|
EV_S_STRUCTUREHIT* struct_hit = (EV_S_STRUCTUREHIT*)rpcParameters->input;
|
||||||
SOLDIERTYPE *pSoldier = MercPtrs[ struct_hit->ubAttackerID ];
|
SOLDIERTYPE *pSoldier = struct_hit->ubAttackerID;
|
||||||
INT8 bTeam=pSoldier->bTeam;
|
INT8 bTeam=pSoldier->bTeam;
|
||||||
INT32 iBullet = bTable[bTeam][struct_hit->iBullet].local_id;
|
INT32 iBullet = bTable[bTeam][struct_hit->iBullet].local_id;
|
||||||
|
|
||||||
@@ -4093,7 +4092,7 @@ void recieveMISS (RPCParameters *rpcParameters)
|
|||||||
{
|
{
|
||||||
EV_S_MISS* shot_miss = (EV_S_MISS*)rpcParameters->input;
|
EV_S_MISS* shot_miss = (EV_S_MISS*)rpcParameters->input;
|
||||||
|
|
||||||
SOLDIERTYPE *pSoldier = MercPtrs[ shot_miss->ubAttackerID ];
|
SOLDIERTYPE *pSoldier = shot_miss->ubAttackerID;
|
||||||
INT8 bTeam=pSoldier->bTeam;
|
INT8 bTeam=pSoldier->bTeam;
|
||||||
INT32 iBullet = bTable[bTeam][shot_miss->iBullet].local_id;
|
INT32 iBullet = bTable[bTeam][shot_miss->iBullet].local_id;
|
||||||
|
|
||||||
@@ -4198,7 +4197,7 @@ BOOLEAN check_status (void)// any 'enemies' and clients left to fight ??
|
|||||||
void UpdateSoldierToNetwork ( SOLDIERTYPE *pSoldier )
|
void UpdateSoldierToNetwork ( SOLDIERTYPE *pSoldier )
|
||||||
{
|
{
|
||||||
//this send stats to other clients at intervals
|
//this send stats to other clients at intervals
|
||||||
UINT16 id = pSoldier->ubID;
|
SoldierID id = pSoldier->ubID;
|
||||||
UINT32 time = GetJA2Clock();
|
UINT32 time = GetJA2Clock();
|
||||||
|
|
||||||
if(id < 20 || (is_server && id <120))
|
if(id < 20 || (is_server && id <120))
|
||||||
@@ -4243,7 +4242,7 @@ void UpdateSoldierFromNetwork (RPCParameters *rpcParameters)
|
|||||||
{
|
{
|
||||||
EV_S_UPDATENETWORKSOLDIER* SUpdateNetworkSoldier = (EV_S_UPDATENETWORKSOLDIER*)rpcParameters->input;
|
EV_S_UPDATENETWORKSOLDIER* SUpdateNetworkSoldier = (EV_S_UPDATENETWORKSOLDIER*)rpcParameters->input;
|
||||||
|
|
||||||
SOLDIERTYPE *pSoldier = MercPtrs[ SUpdateNetworkSoldier->usSoldierID ];
|
SOLDIERTYPE *pSoldier = SUpdateNetworkSoldier->usSoldierID;
|
||||||
pSoldier->bBreath=SUpdateNetworkSoldier->bBreath;
|
pSoldier->bBreath=SUpdateNetworkSoldier->bBreath;
|
||||||
pSoldier->stats.bLife=SUpdateNetworkSoldier->bLife;
|
pSoldier->stats.bLife=SUpdateNetworkSoldier->bLife;
|
||||||
|
|
||||||
@@ -4424,7 +4423,7 @@ void recieve_fireweapon (RPCParameters *rpcParameters)
|
|||||||
{
|
{
|
||||||
EV_S_FIREWEAPON* SFireWeapon = (EV_S_FIREWEAPON*)rpcParameters->input;
|
EV_S_FIREWEAPON* SFireWeapon = (EV_S_FIREWEAPON*)rpcParameters->input;
|
||||||
|
|
||||||
SOLDIERTYPE *pSoldier = MercPtrs[ SFireWeapon->usSoldierID ];
|
SOLDIERTYPE *pSoldier = SFireWeapon->usSoldierID;
|
||||||
|
|
||||||
pSoldier->sTargetGridNo = SFireWeapon->sTargetGridNo;
|
pSoldier->sTargetGridNo = SFireWeapon->sTargetGridNo;
|
||||||
pSoldier->bTargetLevel = SFireWeapon->bTargetLevel;
|
pSoldier->bTargetLevel = SFireWeapon->bTargetLevel;
|
||||||
@@ -4449,7 +4448,7 @@ void recieve_door (RPCParameters *rpcParameters)
|
|||||||
{
|
{
|
||||||
doors* sDoor = (doors*)rpcParameters->input;
|
doors* sDoor = (doors*)rpcParameters->input;
|
||||||
|
|
||||||
SOLDIERTYPE *pSoldier = MercPtrs[ sDoor->ubID ];
|
SOLDIERTYPE *pSoldier = sDoor->ubID;
|
||||||
BOOLEAN fNoAnimations = FALSE;
|
BOOLEAN fNoAnimations = FALSE;
|
||||||
|
|
||||||
if ( !AllMercsLookForDoor( sDoor->sGridNo, FALSE ) )//check for los
|
if ( !AllMercsLookForDoor( sDoor->sGridNo, FALSE ) )//check for los
|
||||||
@@ -4725,14 +4724,14 @@ void recieve_heal (RPCParameters *rpcParameters)
|
|||||||
{
|
{
|
||||||
heal* data = (heal*)rpcParameters->input;
|
heal* data = (heal*)rpcParameters->input;
|
||||||
|
|
||||||
UINT16 healed;
|
SoldierID healed;
|
||||||
|
|
||||||
if((data->ubID >= ubID_prefix) && (data->ubID < (ubID_prefix+6)))
|
if((data->ubID >= ubID_prefix) && (data->ubID < (ubID_prefix+6)))
|
||||||
healed = (data->ubID - ubID_prefix);
|
healed = (data->ubID - ubID_prefix);
|
||||||
else
|
else
|
||||||
healed = data->ubID;
|
healed = data->ubID;
|
||||||
|
|
||||||
SOLDIERTYPE *pSoldier = MercPtrs[ healed ];
|
SOLDIERTYPE *pSoldier = healed;
|
||||||
pSoldier->bBleeding=data->bBleeding;
|
pSoldier->bBleeding=data->bBleeding;
|
||||||
pSoldier->stats.bLife=data->bLife;
|
pSoldier->stats.bLife=data->bLife;
|
||||||
|
|
||||||
@@ -4758,7 +4757,7 @@ void awardINT (RPCParameters *rpcParameters)
|
|||||||
{
|
{
|
||||||
AIint* data= (AIint*)rpcParameters->input;
|
AIint* data= (AIint*)rpcParameters->input;
|
||||||
|
|
||||||
SOLDIERTYPE *pSoldier = MercPtrs[ data->ubID ];
|
SOLDIERTYPE *pSoldier = data->ubID;
|
||||||
|
|
||||||
StartInterrupt();
|
StartInterrupt();
|
||||||
|
|
||||||
|
|||||||
@@ -96,7 +96,7 @@ void send_dir ( SOLDIERTYPE *pSoldier, UINT16 usDesiredDirection );
|
|||||||
void send_fire( SOLDIERTYPE *pSoldier, INT32 sTargetGridNo );
|
void send_fire( SOLDIERTYPE *pSoldier, INT32 sTargetGridNo );
|
||||||
void send_hit( EV_S_WEAPONHIT *SWeaponHit );
|
void send_hit( EV_S_WEAPONHIT *SWeaponHit );
|
||||||
void send_bullet( BULLET * pBullet, UINT16 usHandItem);
|
void send_bullet( BULLET * pBullet, UINT16 usHandItem);
|
||||||
void send_hire( UINT8 iNewIndex, UINT8 ubCurrentSoldier, INT16 iTotalContractLength, BOOLEAN fCopyProfileItemsOver);
|
void send_hire( SoldierID iNewIndex, UINT8 ubCurrentSoldier, INT16 iTotalContractLength, BOOLEAN fCopyProfileItemsOver);
|
||||||
void send_dismiss( UINT16 ubCurrentSoldierID);
|
void send_dismiss( UINT16 ubCurrentSoldierID);
|
||||||
|
|
||||||
void send_gui_pos(SOLDIERTYPE *pSoldier, FLOAT dNewXPos, FLOAT dNewYPos);
|
void send_gui_pos(SOLDIERTYPE *pSoldier, FLOAT dNewXPos, FLOAT dNewYPos);
|
||||||
@@ -113,7 +113,7 @@ void send_interrupt(SOLDIERTYPE *pSoldier);
|
|||||||
// OJW - 20091002 - explosives
|
// OJW - 20091002 - explosives
|
||||||
void send_grenade (OBJECTTYPE *pGameObj, float dLifeLength, float xPos, float yPos, float zPos, float xForce, float yForce, float zForce, UINT32 sTargetGridNo, SoldierID ubOwner, UINT8 ubActionCode, UINT32 uiActionData, INT32 iRealObjectID, bool bIsThrownGrenade);
|
void send_grenade (OBJECTTYPE *pGameObj, float dLifeLength, float xPos, float yPos, float zPos, float xForce, float yForce, float zForce, UINT32 sTargetGridNo, SoldierID ubOwner, UINT8 ubActionCode, UINT32 uiActionData, INT32 iRealObjectID, bool bIsThrownGrenade);
|
||||||
void send_grenade_result (float xPos, float yPos, float zPos, INT32 sGridNo, SoldierID 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_plant_explosive ( SoldierID ubID,UINT16 usItem,UINT8 ubItemStatus,UINT16 usFlags, UINT32 sGridNo,UINT8 ubLevel, UINT32 uiWorldIndex);
|
||||||
void send_detonate_explosive (UINT32 uiWorldIndex, SoldierID ubID);
|
void send_detonate_explosive (UINT32 uiWorldIndex, SoldierID ubID);
|
||||||
void send_spreadeffect ( INT32 sGridNo, UINT8 ubRadius, UINT16 usItem, SoldierID ubOwner, BOOLEAN fSubsequent, INT8 bLevel, INT32 iSmokeEffectID );
|
void send_spreadeffect ( INT32 sGridNo, UINT8 ubRadius, UINT16 usItem, SoldierID ubOwner, BOOLEAN fSubsequent, INT8 bLevel, INT32 iSmokeEffectID );
|
||||||
void send_newsmokeeffect(INT32 sGridNo, UINT16 usItem, INT8 bLevel, SoldierID ubOwner, INT32 iSmokeEffectID);
|
void send_newsmokeeffect(INT32 sGridNo, UINT16 usItem, INT8 bLevel, SoldierID ubOwner, INT32 iSmokeEffectID);
|
||||||
@@ -220,7 +220,7 @@ inline SoldierID MPEncodeSoldierID( SoldierID ubID )
|
|||||||
}
|
}
|
||||||
|
|
||||||
// this one can be called anywhere, even if the ID was not "encoded"
|
// this one can be called anywhere, even if the ID was not "encoded"
|
||||||
inline UINT16 MPDecodeSoldierID( UINT16 ubID )
|
inline SoldierID MPDecodeSoldierID( SoldierID ubID )
|
||||||
{
|
{
|
||||||
if ( ubID >= ubID_prefix && ubID < (ubID_prefix + 7) )
|
if ( ubID >= ubID_prefix && ubID < (ubID_prefix + 7) )
|
||||||
return ubID - ubID_prefix; // soldier is ours
|
return ubID - ubID_prefix; // soldier is ours
|
||||||
|
|||||||
@@ -5,29 +5,29 @@ extern int readyteamreg[10];
|
|||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
UINT16 soldier_id;
|
SoldierID soldier_id;
|
||||||
UINT16 attacker_id;
|
SoldierID attacker_id;
|
||||||
UINT8 attacker_team;
|
UINT8 attacker_team;
|
||||||
UINT8 soldier_team;
|
UINT8 soldier_team;
|
||||||
}death_struct;
|
}death_struct;
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
UINT16 ubID;
|
SoldierID ubID;
|
||||||
INT32 sGridNo;
|
INT32 sGridNo;
|
||||||
BOOLEAN fNoAnimations;
|
BOOLEAN fNoAnimations;
|
||||||
}doors;
|
}doors;
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
UINT16 ubID;
|
SoldierID ubID;
|
||||||
INT8 bLife;
|
INT8 bLife;
|
||||||
INT8 bBleeding;
|
INT8 bBleeding;
|
||||||
}heal;
|
}heal;
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
UINT16 ubID;
|
SoldierID ubID;
|
||||||
INT8 bteam;
|
INT8 bteam;
|
||||||
}AIint;
|
}AIint;
|
||||||
|
|
||||||
@@ -65,4 +65,4 @@ BOOLEAN check_status (void);
|
|||||||
extern UINT16 NumEnemyInSector( );
|
extern UINT16 NumEnemyInSector( );
|
||||||
extern UINT16 NumActiveAndConsciousTeamMembers( UINT8 ubTeam );
|
extern UINT16 NumActiveAndConsciousTeamMembers( UINT8 ubTeam );
|
||||||
void send_heal (SOLDIERTYPE *pSoldier );
|
void send_heal (SOLDIERTYPE *pSoldier );
|
||||||
void requestAIint(SOLDIERTYPE *pSoldier );
|
void requestAIint(SOLDIERTYPE *pSoldier );
|
||||||
|
|||||||
@@ -2380,9 +2380,9 @@ void RandomMercInGroupSaysQuote( GROUP *pGroup, UINT16 usQuoteNum )
|
|||||||
{
|
{
|
||||||
PLAYERGROUP *pPlayer;
|
PLAYERGROUP *pPlayer;
|
||||||
SOLDIERTYPE *pSoldier;
|
SOLDIERTYPE *pSoldier;
|
||||||
UINT16 ubMercsInGroup[ CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS ];
|
SoldierID ubMercsInGroup[ CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS ];
|
||||||
UINT16 ubNumMercs = 0;
|
UINT16 ubNumMercs = 0;
|
||||||
UINT16 ubChosenMerc;
|
UINT16 ubChosenMerc;
|
||||||
|
|
||||||
|
|
||||||
// if traversing tactically, don't do this, unless time compression was required for some reason (don't go to sector)
|
// if traversing tactically, don't do this, unless time compression was required for some reason (don't go to sector)
|
||||||
@@ -2414,7 +2414,7 @@ void RandomMercInGroupSaysQuote( GROUP *pGroup, UINT16 usQuoteNum )
|
|||||||
if ( ubNumMercs > 0 )
|
if ( ubNumMercs > 0 )
|
||||||
{
|
{
|
||||||
ubChosenMerc = (UINT16)Random( ubNumMercs );
|
ubChosenMerc = (UINT16)Random( ubNumMercs );
|
||||||
pSoldier = MercPtrs[ ubMercsInGroup[ ubChosenMerc ] ];
|
pSoldier = ubMercsInGroup[ ubChosenMerc ];
|
||||||
|
|
||||||
TacticalCharacterDialogue( pSoldier, usQuoteNum );
|
TacticalCharacterDialogue( pSoldier, usQuoteNum );
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1416,7 +1416,7 @@ void FindOutIfAnyMercAboutToLeaveIsGonnaRenew( void )
|
|||||||
SOLDIERTYPE *pSoldier = NULL, *pSoldierWhoWillQuit = NULL;
|
SOLDIERTYPE *pSoldier = NULL, *pSoldierWhoWillQuit = NULL;
|
||||||
INT32 iCounter= 0, iNumberOnTeam = 0;
|
INT32 iCounter= 0, iNumberOnTeam = 0;
|
||||||
// WDS - make number of mercenaries, etc. be configurable
|
// WDS - make number of mercenaries, etc. be configurable
|
||||||
UINT16 ubPotentialMercs[ CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS ] = { 0 };
|
SoldierID ubPotentialMercs[ CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS ] = { 0 };
|
||||||
UINT16 ubNumMercs = 0;
|
UINT16 ubNumMercs = 0;
|
||||||
UINT16 ubChosenMerc;
|
UINT16 ubChosenMerc;
|
||||||
|
|
||||||
@@ -1499,15 +1499,16 @@ void FindOutIfAnyMercAboutToLeaveIsGonnaRenew( void )
|
|||||||
if ( ubNumMercs > 0 )
|
if ( ubNumMercs > 0 )
|
||||||
{
|
{
|
||||||
ubChosenMerc = (UINT16)Random( ubNumMercs );
|
ubChosenMerc = (UINT16)Random( ubNumMercs );
|
||||||
|
SOLDIERTYPE *pChosenSoldier = ubPotentialMercs[ubChosenMerc];
|
||||||
|
|
||||||
SpecialCharacterDialogueEvent( DIALOGUE_SPECIAL_EVENT_LOCK_INTERFACE,1 ,MAP_SCREEN ,0 ,0 ,0 );
|
SpecialCharacterDialogueEvent( DIALOGUE_SPECIAL_EVENT_LOCK_INTERFACE,1 ,MAP_SCREEN ,0 ,0 ,0 );
|
||||||
HandleImportantMercQuote( MercPtrs[ ubPotentialMercs[ ubChosenMerc ] ], QUOTE_CONTRACTS_OVER );
|
HandleImportantMercQuote( pChosenSoldier, QUOTE_CONTRACTS_OVER );
|
||||||
SpecialCharacterDialogueEvent( DIALOGUE_SPECIAL_EVENT_LOCK_INTERFACE,0 ,MAP_SCREEN ,0 ,0 ,0 );
|
SpecialCharacterDialogueEvent( DIALOGUE_SPECIAL_EVENT_LOCK_INTERFACE,0 ,MAP_SCREEN ,0 ,0 ,0 );
|
||||||
|
|
||||||
AddReasonToWaitingListQueue( CONTRACT_EXPIRE_WARNING_REASON );
|
AddReasonToWaitingListQueue( CONTRACT_EXPIRE_WARNING_REASON );
|
||||||
TacticalCharacterDialogueWithSpecialEvent( MercPtrs[ ubPotentialMercs[ ubChosenMerc ] ], 0, DIALOGUE_SPECIAL_EVENT_SHOW_UPDATE_MENU, 0,0 );
|
TacticalCharacterDialogueWithSpecialEvent( pChosenSoldier, 0, DIALOGUE_SPECIAL_EVENT_SHOW_UPDATE_MENU, 0,0 );
|
||||||
|
|
||||||
MercPtrs[ ubPotentialMercs[ ubChosenMerc ] ]->ubContractRenewalQuoteCode = SOLDIER_CONTRACT_RENEW_QUOTE_89_USED;
|
pChosenSoldier->ubContractRenewalQuoteCode = SOLDIER_CONTRACT_RENEW_QUOTE_89_USED;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2558,15 +2558,16 @@ void CheckForRobotAndIfItsControlled( void )
|
|||||||
// search for the robot on player's team
|
// search for the robot on player's team
|
||||||
for( i = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; i <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; i++ )
|
for( i = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; i <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; i++ )
|
||||||
{
|
{
|
||||||
if( MercPtrs[ i ]->bActive && MercPtrs[ i ]->stats.bLife && AM_A_ROBOT( MercPtrs[ i ] ))
|
SOLDIERTYPE *pSoldier = MercPtrs[i];
|
||||||
|
if( pSoldier->bActive && pSoldier->stats.bLife && AM_A_ROBOT( pSoldier ))
|
||||||
{
|
{
|
||||||
// check whether it has a valid controller with it. This sets its ubRobotRemoteHolderID field.
|
// check whether it has a valid controller with it. This sets its ubRobotRemoteHolderID field.
|
||||||
MercPtrs[ i ]->UpdateRobotControllerGivenRobot( );
|
pSoldier->UpdateRobotControllerGivenRobot( );
|
||||||
|
|
||||||
// if he has a controller, set controllers
|
// if he has a controller, set controllers
|
||||||
if ( MercPtrs[ i ]->ubRobotRemoteHolderID != NOBODY )
|
if ( pSoldier->ubRobotRemoteHolderID != NOBODY )
|
||||||
{
|
{
|
||||||
MercPtrs[ MercPtrs[ i ]->ubRobotRemoteHolderID ]->UpdateRobotControllerGivenController( );
|
pSoldier->ubRobotRemoteHolderID->UpdateRobotControllerGivenController( );
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -14656,7 +14656,7 @@ void SortListOfMercsInTeamPanel( BOOLEAN fRetainSelectedMercs, BOOLEAN fReverse
|
|||||||
INT32 iCounter = 0, iCounterA = 0;
|
INT32 iCounter = 0, iCounterA = 0;
|
||||||
INT16 sEndSectorA, sEndSectorB;
|
INT16 sEndSectorA, sEndSectorB;
|
||||||
INT32 iExpiryTime, iExpiryTimeA;
|
INT32 iExpiryTime, iExpiryTimeA;
|
||||||
UINT16 uiID, uiIDA;
|
SoldierID uiID, uiIDA;
|
||||||
SOLDIERTYPE *pSelectedSoldier[ CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS ];
|
SOLDIERTYPE *pSelectedSoldier[ CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS ];
|
||||||
SOLDIERTYPE *pCurrentSoldier = NULL;
|
SOLDIERTYPE *pCurrentSoldier = NULL;
|
||||||
SOLDIERTYPE *pPreviousSelectedInfoChar = NULL;
|
SOLDIERTYPE *pPreviousSelectedInfoChar = NULL;
|
||||||
@@ -15859,7 +15859,7 @@ void CancelPathsOfAllSelectedCharacters()
|
|||||||
// if we've clicked on a selected valid character
|
// if we've clicked on a selected valid character
|
||||||
if( ( gCharactersList[ bCounter ].fValid == TRUE ) && IsEntryInSelectedListSet( bCounter ) )
|
if( ( gCharactersList[ bCounter ].fValid == TRUE ) && IsEntryInSelectedListSet( bCounter ) )
|
||||||
{
|
{
|
||||||
pSoldier = MercPtrs[ gCharactersList[ bCounter ].usSolID ];
|
pSoldier = gCharactersList[ bCounter ].usSolID;
|
||||||
|
|
||||||
// and he has a route set
|
// and he has a route set
|
||||||
if ( GetLengthOfMercPath( pSoldier ) > 0 )
|
if ( GetLengthOfMercPath( pSoldier ) > 0 )
|
||||||
@@ -16283,10 +16283,10 @@ void RandomAwakeSelectedMercConfirmsStrategicMove( void )
|
|||||||
SOLDIERTYPE *pSoldier = NULL;
|
SOLDIERTYPE *pSoldier = NULL;
|
||||||
INT32 iCounter;
|
INT32 iCounter;
|
||||||
// WDS - make number of mercenaries, etc. be configurable
|
// WDS - make number of mercenaries, etc. be configurable
|
||||||
UINT16 ubSelectedMercID[ CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS ];
|
SoldierID ubSelectedMercID[ CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS ];
|
||||||
UINT16 ubSelectedMercIndex[ CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS ];
|
UINT16 ubSelectedMercIndex[ CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS ];
|
||||||
UINT16 ubNumMercs = 0;
|
UINT16 ubNumMercs = 0;
|
||||||
UINT16 ubChosenMerc;
|
UINT16 ubChosenMerc;
|
||||||
|
|
||||||
|
|
||||||
for( iCounter = 0; iCounter < giMAXIMUM_NUMBER_OF_PLAYER_SLOTS; iCounter++ )
|
for( iCounter = 0; iCounter < giMAXIMUM_NUMBER_OF_PLAYER_SLOTS; iCounter++ )
|
||||||
@@ -16313,7 +16313,7 @@ void RandomAwakeSelectedMercConfirmsStrategicMove( void )
|
|||||||
// select that merc so that when he speaks we're showing his portrait and not someone else
|
// select that merc so that when he speaks we're showing his portrait and not someone else
|
||||||
ChangeSelectedInfoChar( ubSelectedMercIndex[ ubChosenMerc ], FALSE );
|
ChangeSelectedInfoChar( ubSelectedMercIndex[ ubChosenMerc ], FALSE );
|
||||||
|
|
||||||
MercPtrs[ ubSelectedMercID[ ubChosenMerc ] ]->DoMercBattleSound( BATTLE_SOUND_OK1 );
|
ubSelectedMercID[ ubChosenMerc ]->DoMercBattleSound( BATTLE_SOUND_OK1 );
|
||||||
//TacticalCharacterDialogue( MercPtrs[ ubSelectedMercID[ ubChosenMerc ] ], ubQuoteNum );
|
//TacticalCharacterDialogue( MercPtrs[ ubSelectedMercID[ ubChosenMerc ] ], ubQuoteNum );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2953,12 +2953,12 @@ OBJECTTYPE* AddItemToPool( INT32 sGridNo, OBJECTTYPE *pObject, INT8 bVisible, UI
|
|||||||
return InternalAddItemToPool( &sGridNo, pObject, bVisible, ubLevel, usFlags, bRenderZHeightAboveLevel, soldierID, NULL );
|
return InternalAddItemToPool( &sGridNo, pObject, bVisible, ubLevel, usFlags, bRenderZHeightAboveLevel, soldierID, NULL );
|
||||||
}
|
}
|
||||||
|
|
||||||
OBJECTTYPE * AddItemToPoolAndGetIndex( INT32 sGridNo, OBJECTTYPE *pObject, INT8 bVisible, UINT8 ubLevel, UINT16 usFlags, INT8 bRenderZHeightAboveLevel, INT16 soldierID, INT32 * piItemIndex )
|
OBJECTTYPE * AddItemToPoolAndGetIndex( INT32 sGridNo, OBJECTTYPE *pObject, INT8 bVisible, UINT8 ubLevel, UINT16 usFlags, INT8 bRenderZHeightAboveLevel, SoldierID soldierID, INT32 * piItemIndex )
|
||||||
{
|
{
|
||||||
return( InternalAddItemToPool( &sGridNo, pObject, bVisible, ubLevel, usFlags, bRenderZHeightAboveLevel, soldierID, piItemIndex ) );
|
return( InternalAddItemToPool( &sGridNo, pObject, bVisible, ubLevel, usFlags, bRenderZHeightAboveLevel, soldierID, piItemIndex ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
OBJECTTYPE* InternalAddItemToPool( INT32 *psGridNo, OBJECTTYPE *pObject, INT8 bVisible, UINT8 ubLevel, UINT16 usFlags, INT8 bRenderZHeightAboveLevel, INT16 soldierID, INT32 * piItemIndex )
|
OBJECTTYPE* InternalAddItemToPool( INT32 *psGridNo, OBJECTTYPE *pObject, INT8 bVisible, UINT8 ubLevel, UINT16 usFlags, INT8 bRenderZHeightAboveLevel, SoldierID soldierID, INT32 * piItemIndex )
|
||||||
{
|
{
|
||||||
ITEM_POOL *pItemPool;
|
ITEM_POOL *pItemPool;
|
||||||
ITEM_POOL *pItemPoolTemp;
|
ITEM_POOL *pItemPoolTemp;
|
||||||
|
|||||||
@@ -195,8 +195,8 @@ void AllSoldiersLookforItems( BOOLEAN RevealRoofsAndItems );
|
|||||||
void SoldierGetItemFromWorld( SOLDIERTYPE *pSoldier, INT32 iItemIndex, INT32 sGridNo, INT8 bZLevel, BOOLEAN *pfSelectionList );
|
void SoldierGetItemFromWorld( SOLDIERTYPE *pSoldier, INT32 iItemIndex, INT32 sGridNo, INT8 bZLevel, BOOLEAN *pfSelectionList );
|
||||||
|
|
||||||
OBJECTTYPE* AddItemToPool(INT32 sGridNo, OBJECTTYPE* pObject, INT8 bVisible, UINT8 ubLevel, UINT16 usFlags, INT8 bRenderZHeightAboveLevel, INT16 soldierID = -1);
|
OBJECTTYPE* AddItemToPool(INT32 sGridNo, OBJECTTYPE* pObject, INT8 bVisible, UINT8 ubLevel, UINT16 usFlags, INT8 bRenderZHeightAboveLevel, INT16 soldierID = -1);
|
||||||
OBJECTTYPE* AddItemToPoolAndGetIndex( INT32 sGridNo, OBJECTTYPE *pObject, INT8 bVisible, UINT8 ubLevel, UINT16 usFlags, INT8 bRenderZHeightAboveLevel, INT16 soldierID, INT32 * piItemIndex );
|
OBJECTTYPE* AddItemToPoolAndGetIndex( INT32 sGridNo, OBJECTTYPE *pObject, INT8 bVisible, UINT8 ubLevel, UINT16 usFlags, INT8 bRenderZHeightAboveLevel, SoldierID soldierID, INT32 * piItemIndex );
|
||||||
OBJECTTYPE* InternalAddItemToPool( INT32 *psGridNo, OBJECTTYPE *pObject, INT8 bVisible, UINT8 ubLevel, UINT16 usFlags, INT8 bRenderZHeightAboveLevel, INT16 soldierID, INT32 * piItemIndex );
|
OBJECTTYPE* InternalAddItemToPool( INT32 *psGridNo, OBJECTTYPE *pObject, INT8 bVisible, UINT8 ubLevel, UINT16 usFlags, INT8 bRenderZHeightAboveLevel, SoldierID soldierID, INT32 * piItemIndex );
|
||||||
|
|
||||||
INT32 AdjustGridNoForItemPlacement( SOLDIERTYPE *pSoldier, INT32 sGridNo );
|
INT32 AdjustGridNoForItemPlacement( SOLDIERTYPE *pSoldier, INT32 sGridNo );
|
||||||
BOOLEAN GetItemPool( INT32 usMapPos, ITEM_POOL **ppItemPool, UINT8 ubLevel );
|
BOOLEAN GetItemPool( INT32 usMapPos, ITEM_POOL **ppItemPool, UINT8 ubLevel );
|
||||||
|
|||||||
@@ -3725,7 +3725,7 @@ void SMInvClickCallback( MOUSE_REGION * pRegion, INT32 iReason )
|
|||||||
}
|
}
|
||||||
else // item in cursor
|
else // item in cursor
|
||||||
{
|
{
|
||||||
UINT16 ubSrcID, ubDestID;
|
SoldierID ubSrcID, ubDestID;
|
||||||
BOOLEAN fOKToGo = FALSE;
|
BOOLEAN fOKToGo = FALSE;
|
||||||
BOOLEAN fDeductPoints = FALSE;
|
BOOLEAN fDeductPoints = FALSE;
|
||||||
|
|
||||||
@@ -5277,7 +5277,7 @@ BOOLEAN InitializeTEAMPanel( )
|
|||||||
{
|
{
|
||||||
if ( gTeamPanel[ cnt ].ubID != NOBODY )
|
if ( gTeamPanel[ cnt ].ubID != NOBODY )
|
||||||
{
|
{
|
||||||
HandleMouseOverSoldierFaceForContMove( MercPtrs[ gTeamPanel[ cnt ].ubID ], TRUE );
|
HandleMouseOverSoldierFaceForContMove( gTeamPanel[ cnt ].ubID, TRUE );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -5352,7 +5352,7 @@ BOOLEAN ShutdownTEAMPanel( )
|
|||||||
|
|
||||||
if ( gTeamPanel[ cnt ].ubID != NOBODY )
|
if ( gTeamPanel[ cnt ].ubID != NOBODY )
|
||||||
{
|
{
|
||||||
HandleMouseOverSoldierFaceForContMove( MercPtrs[ gTeamPanel[ cnt ].ubID ], FALSE );
|
HandleMouseOverSoldierFaceForContMove( gTeamPanel[ cnt ].ubID, FALSE );
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -5416,7 +5416,7 @@ void RenderTEAMPanel( BOOLEAN fDirty )
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
pSoldier = MercPtrs[ gTeamPanel[ cnt ].ubID ];
|
pSoldier = gTeamPanel[ cnt ].ubID;
|
||||||
|
|
||||||
if ( pSoldier->flags.uiStatusFlags & ( SOLDIER_DRIVER ) )
|
if ( pSoldier->flags.uiStatusFlags & ( SOLDIER_DRIVER ) )
|
||||||
{
|
{
|
||||||
@@ -5520,7 +5520,7 @@ void RenderTEAMPanel( BOOLEAN fDirty )
|
|||||||
// GET SOLDIER
|
// GET SOLDIER
|
||||||
if ( gTeamPanel[ cnt ].fOccupied )
|
if ( gTeamPanel[ cnt ].fOccupied )
|
||||||
{
|
{
|
||||||
pSoldier = MercPtrs[ gTeamPanel[ cnt ].ubID ];
|
pSoldier = gTeamPanel[ cnt ].ubID;
|
||||||
|
|
||||||
// Update animations....
|
// Update animations....
|
||||||
if ( pSoldier->flags.fClosePanel || pSoldier->flags.fClosePanelToDie )
|
if ( pSoldier->flags.fClosePanel || pSoldier->flags.fClosePanelToDie )
|
||||||
@@ -6016,7 +6016,8 @@ void HandleMouseOverTeamFaceForContMove( BOOLEAN fOn )
|
|||||||
|
|
||||||
void MercFacePanelMoveCallback( MOUSE_REGION * pRegion, INT32 iReason )
|
void MercFacePanelMoveCallback( MOUSE_REGION * pRegion, INT32 iReason )
|
||||||
{
|
{
|
||||||
UINT16 ubID, ubSoldierID;
|
UINT16 ubID;
|
||||||
|
SoldierID ubSoldierID;
|
||||||
SOLDIERTYPE *pSoldier;
|
SOLDIERTYPE *pSoldier;
|
||||||
|
|
||||||
ubID = (UINT16) MSYS_GetRegionUserData( pRegion, 0 );
|
ubID = (UINT16) MSYS_GetRegionUserData( pRegion, 0 );
|
||||||
@@ -6040,7 +6041,7 @@ void MercFacePanelMoveCallback( MOUSE_REGION * pRegion, INT32 iReason )
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
pSoldier = MercPtrs[ ubSoldierID ];
|
pSoldier = ubSoldierID;
|
||||||
|
|
||||||
if ( !pSoldier->bActive )
|
if ( !pSoldier->bActive )
|
||||||
{
|
{
|
||||||
@@ -6062,7 +6063,8 @@ void MercFacePanelMoveCallback( MOUSE_REGION * pRegion, INT32 iReason )
|
|||||||
|
|
||||||
void EnemyIndicatorClickCallback( MOUSE_REGION * pRegion, INT32 iReason )
|
void EnemyIndicatorClickCallback( MOUSE_REGION * pRegion, INT32 iReason )
|
||||||
{
|
{
|
||||||
UINT16 ubID, ubSoldierID;
|
UINT16 ubID;
|
||||||
|
SoldierID ubSoldierID;
|
||||||
|
|
||||||
ubID = (UINT16) MSYS_GetRegionUserData( pRegion, 0 );
|
ubID = (UINT16) MSYS_GetRegionUserData( pRegion, 0 );
|
||||||
|
|
||||||
@@ -6085,7 +6087,7 @@ void EnemyIndicatorClickCallback( MOUSE_REGION * pRegion, INT32 iReason )
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( !MercPtrs[ ubSoldierID ]->bActive )
|
if ( !ubSoldierID->bActive )
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -6093,14 +6095,14 @@ void EnemyIndicatorClickCallback( MOUSE_REGION * pRegion, INT32 iReason )
|
|||||||
|
|
||||||
if (iReason & MSYS_CALLBACK_REASON_LBUTTON_DWN)
|
if (iReason & MSYS_CALLBACK_REASON_LBUTTON_DWN)
|
||||||
{
|
{
|
||||||
//if ( MercPtrs[ ubSoldierID ]->flags.uiStatusFlags & ( SOLDIER_DRIVER | SOLDIER_PASSENGER ) )
|
//if ( ubSoldierID->flags.uiStatusFlags & ( SOLDIER_DRIVER | SOLDIER_PASSENGER ) )
|
||||||
//{
|
//{
|
||||||
//}
|
//}
|
||||||
//else
|
//else
|
||||||
{
|
{
|
||||||
SOLDIERTYPE *pSoldier;
|
SOLDIERTYPE *pSoldier;
|
||||||
|
|
||||||
pSoldier = MercPtrs[ ubSoldierID ];
|
pSoldier = ubSoldierID;
|
||||||
|
|
||||||
if ( pSoldier->aiData.bOppCnt > 0 )
|
if ( pSoldier->aiData.bOppCnt > 0 )
|
||||||
{ // Cycle....
|
{ // Cycle....
|
||||||
@@ -6117,7 +6119,8 @@ void EnemyIndicatorClickCallback( MOUSE_REGION * pRegion, INT32 iReason )
|
|||||||
|
|
||||||
void MercFacePanelCallback( MOUSE_REGION * pRegion, INT32 iReason )
|
void MercFacePanelCallback( MOUSE_REGION * pRegion, INT32 iReason )
|
||||||
{
|
{
|
||||||
UINT16 ubID, ubSoldierID;
|
UINT16 ubID;
|
||||||
|
SoldierID ubSoldierID;
|
||||||
|
|
||||||
ubID = (UINT16) MSYS_GetRegionUserData( pRegion, 0 );
|
ubID = (UINT16) MSYS_GetRegionUserData( pRegion, 0 );
|
||||||
|
|
||||||
@@ -6155,12 +6158,12 @@ void MercFacePanelCallback( MOUSE_REGION * pRegion, INT32 iReason )
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( !MercPtrs[ ubSoldierID ]->bActive )
|
if ( !ubSoldierID->bActive )
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!OK_INTERRUPT_MERC(MercPtrs[ubSoldierID]))
|
if (!OK_INTERRUPT_MERC(ubSoldierID))
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -6169,10 +6172,10 @@ void MercFacePanelCallback( MOUSE_REGION * pRegion, INT32 iReason )
|
|||||||
{
|
{
|
||||||
if ( !gfInItemPickupMenu && gpItemPointer == NULL )
|
if ( !gfInItemPickupMenu && gpItemPointer == NULL )
|
||||||
{
|
{
|
||||||
//if ( MercPtrs[ ubSoldierID ]->flags.uiStatusFlags & ( SOLDIER_DRIVER | SOLDIER_PASSENGER ) )
|
//if ( ubSoldierID->flags.uiStatusFlags & ( SOLDIER_DRIVER | SOLDIER_PASSENGER ) )
|
||||||
//if ( MercPtrs[ ubSoldierID ]->flags.uiStatusFlags & ( SOLDIER_DRIVER ) )
|
//if ( ubSoldierID->flags.uiStatusFlags & ( SOLDIER_DRIVER ) )
|
||||||
//{
|
//{
|
||||||
// pVehicle = GetSoldierStructureForVehicle( MercPtrs[ ubSoldierID ]->iVehicleId );
|
// pVehicle = GetSoldierStructureForVehicle( ubSoldierID->iVehicleId );
|
||||||
|
|
||||||
// HandleLocateSelectMerc( pVehicle->ubID, 0 );
|
// HandleLocateSelectMerc( pVehicle->ubID, 0 );
|
||||||
//}
|
//}
|
||||||
@@ -6181,10 +6184,10 @@ void MercFacePanelCallback( MOUSE_REGION * pRegion, INT32 iReason )
|
|||||||
if ( !InOverheadMap( ) )
|
if ( !InOverheadMap( ) )
|
||||||
{
|
{
|
||||||
// If we can continue a move, do so!
|
// If we can continue a move, do so!
|
||||||
if ( CheckForMercContMove( MercPtrs[ ubSoldierID ] ) )
|
if ( CheckForMercContMove( ubSoldierID ) )
|
||||||
{
|
{
|
||||||
// Continue
|
// Continue
|
||||||
ContinueMercMovement( MercPtrs[ ubSoldierID ] );
|
ContinueMercMovement( ubSoldierID );
|
||||||
ErasePath( TRUE );
|
ErasePath( TRUE );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -6192,21 +6195,21 @@ void MercFacePanelCallback( MOUSE_REGION * pRegion, INT32 iReason )
|
|||||||
// HEADROCK HAM 3.5: Shift-Click a merc's face will add him to the current selection.
|
// HEADROCK HAM 3.5: Shift-Click a merc's face will add him to the current selection.
|
||||||
if (!(gTacticalStatus.uiFlags & INCOMBAT) && _KeyDown( SHIFT ) )
|
if (!(gTacticalStatus.uiFlags & INCOMBAT) && _KeyDown( SHIFT ) )
|
||||||
{
|
{
|
||||||
if ( ! (MercPtrs[ ubSoldierID ]->flags.uiStatusFlags & SOLDIER_MULTI_SELECTED ) )
|
if ( ! (ubSoldierID->flags.uiStatusFlags & SOLDIER_MULTI_SELECTED ) )
|
||||||
{
|
{
|
||||||
if ( OK_CONTROLLABLE_MERC( MercPtrs[ ubSoldierID ] ) && !( MercPtrs[ ubSoldierID ]->flags.uiStatusFlags & ( SOLDIER_VEHICLE | SOLDIER_PASSENGER | SOLDIER_DRIVER ) ) )
|
if ( OK_CONTROLLABLE_MERC( ubSoldierID ) && !( ubSoldierID->flags.uiStatusFlags & ( SOLDIER_VEHICLE | SOLDIER_PASSENGER | SOLDIER_DRIVER ) ) )
|
||||||
{
|
{
|
||||||
//ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"%s added", MercPtrs[ ubSoldierID ]->name );
|
//ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"%s added", ubSoldierID->name );
|
||||||
gusSelectedSoldier->flags.uiStatusFlags |= SOLDIER_MULTI_SELECTED;
|
gusSelectedSoldier->flags.uiStatusFlags |= SOLDIER_MULTI_SELECTED;
|
||||||
MercPtrs[ ubSoldierID ]->flags.uiStatusFlags |= SOLDIER_MULTI_SELECTED;
|
ubSoldierID->flags.uiStatusFlags |= SOLDIER_MULTI_SELECTED;
|
||||||
EndMultiSoldierSelection( TRUE );
|
EndMultiSoldierSelection( TRUE );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// A shift-click on a selected character will remove that character from the current selection.
|
// A shift-click on a selected character will remove that character from the current selection.
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
//ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"%s removed", MercPtrs[ ubSoldierID ]->name );
|
//ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"%s removed", ubSoldierID->name );
|
||||||
MercPtrs[ ubSoldierID ]->flags.uiStatusFlags &= (~SOLDIER_MULTI_SELECTED );
|
ubSoldierID->flags.uiStatusFlags &= (~SOLDIER_MULTI_SELECTED );
|
||||||
if (ubSoldierID != gusSelectedSoldier)
|
if (ubSoldierID != gusSelectedSoldier)
|
||||||
{
|
{
|
||||||
gusSelectedSoldier->flags.uiStatusFlags |= SOLDIER_MULTI_SELECTED;
|
gusSelectedSoldier->flags.uiStatusFlags |= SOLDIER_MULTI_SELECTED;
|
||||||
@@ -6216,7 +6219,7 @@ void MercFacePanelCallback( MOUSE_REGION * pRegion, INT32 iReason )
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
//ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"%s selected", MercPtrs[ ubSoldierID ]->name );
|
//ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"%s selected", ubSoldierID->name );
|
||||||
HandleLocateSelectMerc( ubSoldierID, 0 );
|
HandleLocateSelectMerc( ubSoldierID, 0 );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -6233,8 +6236,8 @@ void MercFacePanelCallback( MOUSE_REGION * pRegion, INT32 iReason )
|
|||||||
if ( !InOverheadMap( ) )
|
if ( !InOverheadMap( ) )
|
||||||
{
|
{
|
||||||
// Only if guy is not dead!
|
// Only if guy is not dead!
|
||||||
//if ( !( MercPtrs[ ubSoldierID ]->flags.uiStatusFlags & SOLDIER_DEAD ) && !AM_AN_EPC( MercPtrs[ ubSoldierID ] ) && !( MercPtrs[ ubSoldierID ]->flags.uiStatusFlags & ( SOLDIER_DRIVER | SOLDIER_PASSENGER ) ) )
|
//if ( !( ubSoldierID->flags.uiStatusFlags & SOLDIER_DEAD ) && !AM_AN_EPC( ubSoldierID ) && !( ubSoldierID->flags.uiStatusFlags & ( SOLDIER_DRIVER | SOLDIER_PASSENGER ) ) )
|
||||||
if ( !( MercPtrs[ ubSoldierID ]->flags.uiStatusFlags & SOLDIER_DEAD ) && !AM_AN_EPC( MercPtrs[ ubSoldierID ] ) )
|
if ( !( ubSoldierID->flags.uiStatusFlags & SOLDIER_DEAD ) && !AM_AN_EPC( ubSoldierID ) )
|
||||||
{
|
{
|
||||||
gfSwitchPanel = TRUE;
|
gfSwitchPanel = TRUE;
|
||||||
gbNewPanel = SM_PANEL;
|
gbNewPanel = SM_PANEL;
|
||||||
@@ -6671,7 +6674,8 @@ void RenderSoldierTeamInv( SOLDIERTYPE *pSoldier, INT16 sX, INT16 sY, UINT8 ubPa
|
|||||||
|
|
||||||
void TMFirstHandInvCallback( MOUSE_REGION * pRegion, INT32 iReason )
|
void TMFirstHandInvCallback( MOUSE_REGION * pRegion, INT32 iReason )
|
||||||
{
|
{
|
||||||
UINT16 ubID, ubSoldierID;
|
UINT16 ubID;
|
||||||
|
SoldierID ubSoldierID;
|
||||||
|
|
||||||
ubID = (UINT16) MSYS_GetRegionUserData( pRegion, 0 );
|
ubID = (UINT16) MSYS_GetRegionUserData( pRegion, 0 );
|
||||||
|
|
||||||
@@ -6694,7 +6698,7 @@ void TMFirstHandInvCallback( MOUSE_REGION * pRegion, INT32 iReason )
|
|||||||
ubSoldierID = gTeamPanel[ ubID ].ubID;
|
ubSoldierID = gTeamPanel[ ubID ].ubID;
|
||||||
|
|
||||||
|
|
||||||
if ( !MercPtrs[ ubSoldierID ]->bActive )
|
if ( !ubSoldierID->bActive )
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -6721,7 +6725,8 @@ void TMFirstHandInvCallback( MOUSE_REGION * pRegion, INT32 iReason )
|
|||||||
|
|
||||||
void TMClickFirstHandInvCallback( MOUSE_REGION * pRegion, INT32 iReason )
|
void TMClickFirstHandInvCallback( MOUSE_REGION * pRegion, INT32 iReason )
|
||||||
{
|
{
|
||||||
UINT16 ubID, ubSoldierID;
|
UINT16 ubID;
|
||||||
|
SoldierID ubSoldierID;
|
||||||
UINT16 usOldHandItem;
|
UINT16 usOldHandItem;
|
||||||
|
|
||||||
ubID = (UINT16) MSYS_GetRegionUserData( pRegion, 0 );
|
ubID = (UINT16) MSYS_GetRegionUserData( pRegion, 0 );
|
||||||
@@ -6739,9 +6744,9 @@ void TMClickFirstHandInvCallback( MOUSE_REGION * pRegion, INT32 iReason )
|
|||||||
if (iReason == MSYS_CALLBACK_REASON_LBUTTON_UP )
|
if (iReason == MSYS_CALLBACK_REASON_LBUTTON_UP )
|
||||||
{
|
{
|
||||||
// anv: select vehicle by clicking on the steering wheel
|
// anv: select vehicle by clicking on the steering wheel
|
||||||
//if ( MercPtrs[ ubSoldierID ]->flags.uiStatusFlags & SOLDIER_DRIVER )
|
//if ( ubSoldierID->flags.uiStatusFlags & SOLDIER_DRIVER )
|
||||||
//{
|
//{
|
||||||
// SOLDIERTYPE *pVehicle = GetSoldierStructureForVehicle( MercPtrs[ ubSoldierID ]->iVehicleId );
|
// SOLDIERTYPE *pVehicle = GetSoldierStructureForVehicle( ubSoldierID->iVehicleId );
|
||||||
// HandleLocateSelectMerc( pVehicle->ubID, 0 );
|
// HandleLocateSelectMerc( pVehicle->ubID, 0 );
|
||||||
//}
|
//}
|
||||||
//else
|
//else
|
||||||
@@ -6753,12 +6758,12 @@ void TMClickFirstHandInvCallback( MOUSE_REGION * pRegion, INT32 iReason )
|
|||||||
|
|
||||||
if (iReason == MSYS_CALLBACK_REASON_RBUTTON_UP )
|
if (iReason == MSYS_CALLBACK_REASON_RBUTTON_UP )
|
||||||
{
|
{
|
||||||
if ( !AM_A_ROBOT( MercPtrs[ ubSoldierID ] ) )
|
if ( !AM_A_ROBOT( ubSoldierID ) )
|
||||||
{
|
{
|
||||||
usOldHandItem = MercPtrs[ ubSoldierID ]->inv[HANDPOS].usItem;
|
usOldHandItem = ubSoldierID->inv[HANDPOS].usItem;
|
||||||
//SwapOutHandItem( MercPtrs[ ubSoldierID ] );
|
//SwapOutHandItem( ubSoldierID );
|
||||||
SwapHandItems( MercPtrs[ ubSoldierID ] );
|
SwapHandItems( ubSoldierID );
|
||||||
MercPtrs[ ubSoldierID ]->ReLoadSoldierAnimationDueToHandItemChange( usOldHandItem, MercPtrs[ ubSoldierID ]->inv[HANDPOS].usItem );
|
ubSoldierID->ReLoadSoldierAnimationDueToHandItemChange( usOldHandItem, ubSoldierID->inv[HANDPOS].usItem );
|
||||||
fInterfacePanelDirty = DIRTYLEVEL2;
|
fInterfacePanelDirty = DIRTYLEVEL2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -6767,7 +6772,8 @@ void TMClickFirstHandInvCallback( MOUSE_REGION * pRegion, INT32 iReason )
|
|||||||
|
|
||||||
void TMClickSecondHandInvCallback( MOUSE_REGION * pRegion, INT32 iReason )
|
void TMClickSecondHandInvCallback( MOUSE_REGION * pRegion, INT32 iReason )
|
||||||
{
|
{
|
||||||
UINT16 ubID, ubSoldierID;
|
UINT16 ubID;
|
||||||
|
SoldierID ubSoldierID;
|
||||||
UINT16 usOldHandItem;
|
UINT16 usOldHandItem;
|
||||||
|
|
||||||
ubID = (UINT16) MSYS_GetRegionUserData( pRegion, 0 );
|
ubID = (UINT16) MSYS_GetRegionUserData( pRegion, 0 );
|
||||||
@@ -6783,28 +6789,28 @@ void TMClickSecondHandInvCallback( MOUSE_REGION * pRegion, INT32 iReason )
|
|||||||
|
|
||||||
if (iReason == MSYS_CALLBACK_REASON_LBUTTON_UP )
|
if (iReason == MSYS_CALLBACK_REASON_LBUTTON_UP )
|
||||||
{
|
{
|
||||||
if ( MercPtrs[ ubSoldierID ]->flags.uiStatusFlags & ( SOLDIER_PASSENGER | SOLDIER_DRIVER ) )
|
if ( ubSoldierID->flags.uiStatusFlags & ( SOLDIER_PASSENGER | SOLDIER_DRIVER ) )
|
||||||
{
|
{
|
||||||
ExitVehicle( MercPtrs[ ubSoldierID ] );
|
ExitVehicle( ubSoldierID );
|
||||||
}
|
}
|
||||||
else if (UsingNewInventorySystem() && !AM_A_ROBOT(MercPtrs[ubSoldierID]))
|
else if (UsingNewInventorySystem() && !AM_A_ROBOT(ubSoldierID))
|
||||||
{
|
{
|
||||||
MercPtrs[ubSoldierID]->SwitchWeapons();
|
ubSoldierID->SwitchWeapons();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (iReason == MSYS_CALLBACK_REASON_RBUTTON_UP )
|
if (iReason == MSYS_CALLBACK_REASON_RBUTTON_UP )
|
||||||
{
|
{
|
||||||
if ( MercPtrs[ ubSoldierID ]->flags.uiStatusFlags & ( SOLDIER_PASSENGER | SOLDIER_DRIVER ) )
|
if ( ubSoldierID->flags.uiStatusFlags & ( SOLDIER_PASSENGER | SOLDIER_DRIVER ) )
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if ( !AM_A_ROBOT( MercPtrs[ ubSoldierID ] ) )
|
if ( !AM_A_ROBOT( ubSoldierID ) )
|
||||||
{
|
{
|
||||||
usOldHandItem = MercPtrs[ ubSoldierID ]->inv[HANDPOS].usItem;
|
usOldHandItem = ubSoldierID->inv[HANDPOS].usItem;
|
||||||
SwapHandItems( MercPtrs[ ubSoldierID ] );
|
SwapHandItems( ubSoldierID );
|
||||||
MercPtrs[ ubSoldierID ]->ReLoadSoldierAnimationDueToHandItemChange( usOldHandItem, MercPtrs[ ubSoldierID ]->inv[HANDPOS].usItem );
|
ubSoldierID->ReLoadSoldierAnimationDueToHandItemChange( usOldHandItem, ubSoldierID->inv[HANDPOS].usItem );
|
||||||
fInterfacePanelDirty = DIRTYLEVEL2;
|
fInterfacePanelDirty = DIRTYLEVEL2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -6831,7 +6837,7 @@ BOOLEAN PlayerExistsInSlot( SoldierID ubID )
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
INT8 GetTeamSlotFromPlayerID( UINT16 ubID )
|
INT8 GetTeamSlotFromPlayerID( SoldierID ubID )
|
||||||
{
|
{
|
||||||
INT8 cnt;
|
INT8 cnt;
|
||||||
|
|
||||||
@@ -6850,7 +6856,7 @@ INT8 GetTeamSlotFromPlayerID( UINT16 ubID )
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
BOOLEAN RemovePlayerFromTeamSlotGivenMercID( UINT16 ubMercID )
|
BOOLEAN RemovePlayerFromTeamSlotGivenMercID( SoldierID ubMercID )
|
||||||
{
|
{
|
||||||
INT32 cnt;
|
INT32 cnt;
|
||||||
|
|
||||||
@@ -6954,7 +6960,7 @@ BOOLEAN InitTEAMSlots( )
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
BOOLEAN GetPlayerIDFromInterfaceTeamSlot( UINT8 ubPanelSlot, UINT16 * pubID )
|
BOOLEAN GetPlayerIDFromInterfaceTeamSlot( UINT8 ubPanelSlot, SoldierID * pubID )
|
||||||
{
|
{
|
||||||
if ( ubPanelSlot >= gGameOptions.ubSquadSize )
|
if ( ubPanelSlot >= gGameOptions.ubSquadSize )
|
||||||
{
|
{
|
||||||
@@ -6992,14 +6998,14 @@ BOOLEAN RemovePlayerFromInterfaceTeamSlot( UINT8 ubPanelSlot )
|
|||||||
|
|
||||||
if ( gTeamPanel[ ubPanelSlot ].fOccupied )
|
if ( gTeamPanel[ ubPanelSlot ].fOccupied )
|
||||||
{
|
{
|
||||||
if ( !( MercPtrs[ gTeamPanel[ ubPanelSlot ].ubID ]->flags.uiStatusFlags & SOLDIER_DEAD ) )
|
if ( !( gTeamPanel[ ubPanelSlot ].ubID->flags.uiStatusFlags & SOLDIER_DEAD ) )
|
||||||
{
|
{
|
||||||
// Set Id to close
|
// Set Id to close
|
||||||
MercPtrs[ gTeamPanel[ ubPanelSlot ].ubID ]->flags.fUICloseMerc = TRUE;
|
gTeamPanel[ ubPanelSlot ].ubID->flags.fUICloseMerc = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set face to inactive...
|
// Set face to inactive...
|
||||||
SetAutoFaceInActive( MercPtrs[ gTeamPanel[ ubPanelSlot ].ubID ]->iFaceIndex );
|
SetAutoFaceInActive( gTeamPanel[ ubPanelSlot ].ubID->iFaceIndex );
|
||||||
|
|
||||||
|
|
||||||
gTeamPanel[ ubPanelSlot ].fOccupied = FALSE;
|
gTeamPanel[ ubPanelSlot ].fOccupied = FALSE;
|
||||||
@@ -7132,7 +7138,7 @@ void CleanUpStack( OBJECTTYPE * pObj, OBJECTTYPE * pCursorObj )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
UINT16 FindNextMercInTeamPanel( SOLDIERTYPE *pSoldier, BOOLEAN fGoodForLessOKLife, BOOLEAN fOnlyRegularMercs )
|
SoldierID FindNextMercInTeamPanel( SOLDIERTYPE *pSoldier, BOOLEAN fGoodForLessOKLife, BOOLEAN fOnlyRegularMercs )
|
||||||
{
|
{
|
||||||
INT32 cnt;
|
INT32 cnt;
|
||||||
INT32 bFirstID;
|
INT32 bFirstID;
|
||||||
@@ -7151,7 +7157,7 @@ UINT16 FindNextMercInTeamPanel( SOLDIERTYPE *pSoldier, BOOLEAN fGoodForLessOKLif
|
|||||||
if ( gTeamPanel[ cnt ].fOccupied )
|
if ( gTeamPanel[ cnt ].fOccupied )
|
||||||
{
|
{
|
||||||
// Set Id to close
|
// Set Id to close
|
||||||
pTeamSoldier = MercPtrs[ gTeamPanel[ cnt ].ubID ];
|
pTeamSoldier = gTeamPanel[ cnt ].ubID;
|
||||||
|
|
||||||
if ( fOnlyRegularMercs )
|
if ( fOnlyRegularMercs )
|
||||||
{
|
{
|
||||||
@@ -7211,7 +7217,7 @@ UINT16 FindNextMercInTeamPanel( SOLDIERTYPE *pSoldier, BOOLEAN fGoodForLessOKLif
|
|||||||
{
|
{
|
||||||
if ( gTeamPanel[ cnt ].fOccupied )
|
if ( gTeamPanel[ cnt ].fOccupied )
|
||||||
{
|
{
|
||||||
pTeamSoldier = MercPtrs[ gTeamPanel[ cnt ].ubID ];
|
pTeamSoldier = gTeamPanel[ cnt ].ubID;
|
||||||
|
|
||||||
if ( fOnlyRegularMercs )
|
if ( fOnlyRegularMercs )
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -85,10 +85,10 @@ void UpdateSMPanel( );
|
|||||||
BOOLEAN InitTEAMSlots( );
|
BOOLEAN InitTEAMSlots( );
|
||||||
void AddPlayerToInterfaceTeamSlot( SoldierID ubID );
|
void AddPlayerToInterfaceTeamSlot( SoldierID ubID );
|
||||||
BOOLEAN RemovePlayerFromInterfaceTeamSlot( UINT8 ubID );
|
BOOLEAN RemovePlayerFromInterfaceTeamSlot( UINT8 ubID );
|
||||||
BOOLEAN GetPlayerIDFromInterfaceTeamSlot( UINT8 ubPanelSlot, UINT16 * pubID );
|
BOOLEAN GetPlayerIDFromInterfaceTeamSlot( UINT8 ubPanelSlot, SoldierID * pubID );
|
||||||
void RemoveAllPlayersFromSlot( );
|
void RemoveAllPlayersFromSlot( );
|
||||||
BOOLEAN PlayerExistsInSlot( SoldierID ubID );
|
BOOLEAN PlayerExistsInSlot( SoldierID ubID );
|
||||||
BOOLEAN RemovePlayerFromTeamSlotGivenMercID( UINT16 ubMercID );
|
BOOLEAN RemovePlayerFromTeamSlotGivenMercID( SoldierID ubMercID );
|
||||||
void CheckForAndAddMercToTeamPanel( SOLDIERTYPE *pSoldier );
|
void CheckForAndAddMercToTeamPanel( SOLDIERTYPE *pSoldier );
|
||||||
void CleanUpStack( OBJECTTYPE * pObj, OBJECTTYPE * pCursorObj );
|
void CleanUpStack( OBJECTTYPE * pObj, OBJECTTYPE * pCursorObj );
|
||||||
|
|
||||||
@@ -149,7 +149,7 @@ void GoToMapScreenFromTactical( void );
|
|||||||
|
|
||||||
void FinishAnySkullPanelAnimations( );
|
void FinishAnySkullPanelAnimations( );
|
||||||
|
|
||||||
UINT16 FindNextMercInTeamPanel( SOLDIERTYPE *pSoldier, BOOLEAN fGoodForLessOKLife, BOOLEAN fOnlyRegularMercs );
|
SoldierID FindNextMercInTeamPanel( SOLDIERTYPE *pSoldier, BOOLEAN fGoodForLessOKLife, BOOLEAN fOnlyRegularMercs );
|
||||||
|
|
||||||
// CHRISL: New callback functions for backpack buttons
|
// CHRISL: New callback functions for backpack buttons
|
||||||
BOOLEAN ChangeDropPackStatus(SOLDIERTYPE *pSoldier, BOOLEAN newStatus);
|
BOOLEAN ChangeDropPackStatus(SOLDIERTYPE *pSoldier, BOOLEAN newStatus);
|
||||||
|
|||||||
@@ -125,7 +125,7 @@ bool IsSlotASmallPocket(int slot)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CreateLBE (OBJECTTYPE* pObj, UINT16 ubID, int numSubPockets)
|
void CreateLBE (OBJECTTYPE* pObj, SoldierID ubID, int numSubPockets)
|
||||||
{
|
{
|
||||||
int uniqueID;
|
int uniqueID;
|
||||||
LBENODE* pLBE = NULL;
|
LBENODE* pLBE = NULL;
|
||||||
|
|||||||
@@ -247,7 +247,7 @@ public:
|
|||||||
|
|
||||||
UINT32 lbeClass;
|
UINT32 lbeClass;
|
||||||
UINT16 lbeIndex;
|
UINT16 lbeIndex;
|
||||||
UINT16 ubID;
|
SoldierID ubID;
|
||||||
BOOLEAN ZipperFlag;
|
BOOLEAN ZipperFlag;
|
||||||
int uniqueID;
|
int uniqueID;
|
||||||
UINT32 uiNodeChecksum;
|
UINT32 uiNodeChecksum;
|
||||||
@@ -259,7 +259,7 @@ public:
|
|||||||
#define SIZEOF_LBENODE_POD (offsetof(LBENODE, endOfPOD))
|
#define SIZEOF_LBENODE_POD (offsetof(LBENODE, endOfPOD))
|
||||||
bool checkLBEArrayIntegrity(bool verbose=false); // BOB: checks all worldItems for missing LBE info
|
bool checkLBEArrayIntegrity(bool verbose=false); // BOB: checks all worldItems for missing LBE info
|
||||||
|
|
||||||
void CreateLBE(OBJECTTYPE* pObj, UINT16 ubID, int numSubPockets);
|
void CreateLBE(OBJECTTYPE* pObj, SoldierID ubID, int numSubPockets);
|
||||||
bool DestroyLBEIfEmpty(OBJECTTYPE* pObj, int stackIndex = 0);
|
bool DestroyLBEIfEmpty(OBJECTTYPE* pObj, int stackIndex = 0);
|
||||||
void DestroyLBE(OBJECTTYPE* pObj, int stackIndex = 0);
|
void DestroyLBE(OBJECTTYPE* pObj, int stackIndex = 0);
|
||||||
void GetLBESlots(UINT32 LBEType, std::vector<INT8>& LBESlots);
|
void GetLBESlots(UINT32 LBEType, std::vector<INT8>& LBESlots);
|
||||||
|
|||||||
@@ -284,7 +284,7 @@ void ItemCreationCallBack( UINT8 ubResult );
|
|||||||
void CheatCreateItem();
|
void CheatCreateItem();
|
||||||
// silversurfer: added for merc portrait swapping in tactical
|
// silversurfer: added for merc portrait swapping in tactical
|
||||||
void SwapMercPortraits ( SOLDIERTYPE *pSoldier, INT8 bDirection );
|
void SwapMercPortraits ( SOLDIERTYPE *pSoldier, INT8 bDirection );
|
||||||
extern INT8 GetTeamSlotFromPlayerID( UINT16 ubID );
|
extern INT8 GetTeamSlotFromPlayerID( SoldierID ubID );
|
||||||
extern FACETYPE *gpCurrentTalkingFace;
|
extern FACETYPE *gpCurrentTalkingFace;
|
||||||
|
|
||||||
// Flugente: toggle display of enemy role indicators
|
// Flugente: toggle display of enemy role indicators
|
||||||
@@ -6257,7 +6257,7 @@ void ChangeCurrentSquad( INT32 iSquad )
|
|||||||
|
|
||||||
void HandleSelectMercSlot( UINT8 ubPanelSlot, INT8 bCode )
|
void HandleSelectMercSlot( UINT8 ubPanelSlot, INT8 bCode )
|
||||||
{
|
{
|
||||||
UINT16 ubID;
|
SoldierID ubID;
|
||||||
|
|
||||||
if ( GetPlayerIDFromInterfaceTeamSlot( ubPanelSlot, &ubID ) )
|
if ( GetPlayerIDFromInterfaceTeamSlot( ubPanelSlot, &ubID ) )
|
||||||
{
|
{
|
||||||
|
|||||||
+12
-12
@@ -1420,7 +1420,7 @@ UINT8 HandleNonActivatedTargetCursor( SOLDIERTYPE *pSoldier, INT32 usMapPos , BO
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void DetermineCursorBodyLocation( UINT16 ubSoldierID, BOOLEAN fDisplay, BOOLEAN fRecalc )
|
void DetermineCursorBodyLocation( SoldierID ubSoldierID, BOOLEAN fDisplay, BOOLEAN fRecalc )
|
||||||
{
|
{
|
||||||
INT32 usMapPos;
|
INT32 usMapPos;
|
||||||
SOLDIERTYPE *pTargetSoldier = NULL, *pSoldier;
|
SOLDIERTYPE *pTargetSoldier = NULL, *pSoldier;
|
||||||
@@ -1429,7 +1429,7 @@ void DetermineCursorBodyLocation( UINT16 ubSoldierID, BOOLEAN fDisplay, BOOLEAN
|
|||||||
BOOLEAN fOnGuy = FALSE;
|
BOOLEAN fOnGuy = FALSE;
|
||||||
LEVELNODE *pNode;
|
LEVELNODE *pNode;
|
||||||
|
|
||||||
pSoldier = MercPtrs[ ubSoldierID ];
|
pSoldier = ubSoldierID;
|
||||||
|
|
||||||
if ( gTacticalStatus.ubAttackBusyCount > 0 )
|
if ( gTacticalStatus.ubAttackBusyCount > 0 )
|
||||||
{
|
{
|
||||||
@@ -2263,10 +2263,10 @@ UINT8 HandleBloodbagCursor( SOLDIERTYPE *pSoldier, INT32 sGridNo, BOOLEAN fActiv
|
|||||||
if ( HasItemFlag( ( &( pSoldier->inv[HANDPOS] ) )->usItem, EMPTY_BLOOD_BAG ) )
|
if ( HasItemFlag( ( &( pSoldier->inv[HANDPOS] ) )->usItem, EMPTY_BLOOD_BAG ) )
|
||||||
{
|
{
|
||||||
// is there a person here?
|
// is there a person here?
|
||||||
UINT16 usSoldierIndex = WhoIsThere2( sGridNo, pSoldier->pathing.bLevel );
|
SoldierID usSoldierIndex = WhoIsThere2( sGridNo, pSoldier->pathing.bLevel );
|
||||||
if ( usSoldierIndex != NOBODY )
|
if ( usSoldierIndex != NOBODY )
|
||||||
{
|
{
|
||||||
if ( usSoldierIndex != pSoldier->ubID && MercPtrs[usSoldierIndex]->IsValidBloodDonor() )
|
if ( usSoldierIndex != pSoldier->ubID && usSoldierIndex->IsValidBloodDonor() )
|
||||||
return BLOODBAG_GREY_UICURSOR;
|
return BLOODBAG_GREY_UICURSOR;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2298,10 +2298,10 @@ UINT8 HandleSplintCursor( SOLDIERTYPE *pSoldier, INT32 sGridNo, BOOLEAN fActivat
|
|||||||
}
|
}
|
||||||
|
|
||||||
// is there a person here?
|
// is there a person here?
|
||||||
UINT16 usSoldierIndex = WhoIsThere2( sGridNo, pSoldier->pathing.bLevel );
|
SoldierID usSoldierIndex = WhoIsThere2( sGridNo, pSoldier->pathing.bLevel );
|
||||||
if ( usSoldierIndex != NOBODY )
|
if ( usSoldierIndex != NOBODY )
|
||||||
{
|
{
|
||||||
if ( usSoldierIndex != pSoldier->ubID && MercPtrs[usSoldierIndex]->CanReceiveSplint() )
|
if ( usSoldierIndex != pSoldier->ubID && usSoldierIndex->CanReceiveSplint() )
|
||||||
return SPLINT_GREY_UICURSOR;
|
return SPLINT_GREY_UICURSOR;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2384,8 +2384,8 @@ UINT8 HandleHandcuffCursor( SOLDIERTYPE *pSoldier, INT32 sGridNo, UINT32 uiCurso
|
|||||||
if ( HasItemFlag( (&(pSoldier->inv[HANDPOS]))->usItem, HANDCUFFS ) )
|
if ( HasItemFlag( (&(pSoldier->inv[HANDPOS]))->usItem, HANDCUFFS ) )
|
||||||
{
|
{
|
||||||
// is there a person here?
|
// is there a person here?
|
||||||
UINT16 usSoldierIndex = WhoIsThere2( sGridNo, pSoldier->pathing.bLevel );
|
SoldierID usSoldierIndex = WhoIsThere2( sGridNo, pSoldier->pathing.bLevel );
|
||||||
if (usSoldierIndex != NOBODY && MercPtrs[usSoldierIndex] && MercPtrs[usSoldierIndex]->bVisible >= 0 && MercPtrs[usSoldierIndex]->CanBeCaptured())
|
if (usSoldierIndex != NOBODY && usSoldierIndex->bVisible >= 0 && usSoldierIndex->CanBeCaptured())
|
||||||
{
|
{
|
||||||
return( HANDCUFF_GREY_UICURSOR );
|
return( HANDCUFF_GREY_UICURSOR );
|
||||||
}
|
}
|
||||||
@@ -2406,8 +2406,8 @@ UINT8 HandleApplyItemCursor(SOLDIERTYPE *pSoldier, INT32 sGridNo, UINT32 uiCurso
|
|||||||
if (ItemCanBeAppliedToOthers((&(pSoldier->inv[HANDPOS]))->usItem))
|
if (ItemCanBeAppliedToOthers((&(pSoldier->inv[HANDPOS]))->usItem))
|
||||||
{
|
{
|
||||||
// is there a person here?
|
// is there a person here?
|
||||||
UINT16 ubPerson = WhoIsThere2(sGridNo, pSoldier->pathing.bLevel);
|
SoldierID ubPerson = WhoIsThere2(sGridNo, pSoldier->pathing.bLevel);
|
||||||
if (ubPerson != NOBODY && MercPtrs[ubPerson] && MercPtrs[ubPerson]->bVisible >= 0)
|
if (ubPerson != NOBODY && ubPerson->bVisible >= 0)
|
||||||
{
|
{
|
||||||
return(APPLYITEM_GREY_UICURSOR);
|
return(APPLYITEM_GREY_UICURSOR);
|
||||||
}
|
}
|
||||||
@@ -3022,8 +3022,8 @@ UINT8 GetActionModeCursor( SOLDIERTYPE *pSoldier )
|
|||||||
if ( GetMouseMapPos( &usMapPos ) )
|
if ( GetMouseMapPos( &usMapPos ) )
|
||||||
{
|
{
|
||||||
// is there a person here?
|
// is there a person here?
|
||||||
UINT16 ubPerson = WhoIsThere2(usMapPos, pSoldier->pathing.bLevel);
|
SoldierID ubPerson = WhoIsThere2(usMapPos, pSoldier->pathing.bLevel);
|
||||||
if (ubPerson != NOBODY && MercPtrs[ubPerson] && MercPtrs[ubPerson]->bVisible >= 0)
|
if (ubPerson != NOBODY && ubPerson->bVisible >= 0)
|
||||||
{
|
{
|
||||||
ubCursor = APPLYITEMCURS;
|
ubCursor = APPLYITEMCURS;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
|
|
||||||
|
|
||||||
UINT8 GetProperItemCursor( SoldierID ubSoldierID, UINT16 ubItemIndex, INT32 usMapPos, BOOLEAN fActivated );
|
UINT8 GetProperItemCursor( SoldierID ubSoldierID, UINT16 ubItemIndex, INT32 usMapPos, BOOLEAN fActivated );
|
||||||
void DetermineCursorBodyLocation( UINT16 ubSoldierID, BOOLEAN fDisplay, BOOLEAN fRecalc );
|
void DetermineCursorBodyLocation( SoldierID ubSoldierID, BOOLEAN fDisplay, BOOLEAN fRecalc );
|
||||||
|
|
||||||
void HandleLeftClickCursor( SOLDIERTYPE *pSoldier );
|
void HandleLeftClickCursor( SOLDIERTYPE *pSoldier );
|
||||||
void HandleRightClickAdjustCursor( SOLDIERTYPE *pSoldier, INT32 usMapPos );
|
void HandleRightClickAdjustCursor( SOLDIERTYPE *pSoldier, INT32 usMapPos );
|
||||||
|
|||||||
@@ -610,7 +610,7 @@ void ResizeWorldItems(void)//dnl ch75 271013
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
INT32 AddItemToWorld( INT32 sGridNo, OBJECTTYPE *pObject, UINT8 ubLevel, UINT16 usFlags, INT8 bRenderZHeightAboveLevel, INT8 bVisible, INT16 soldierID )
|
INT32 AddItemToWorld( INT32 sGridNo, OBJECTTYPE *pObject, UINT8 ubLevel, UINT16 usFlags, INT8 bRenderZHeightAboveLevel, INT8 bVisible, SoldierID soldierID )
|
||||||
{
|
{
|
||||||
UINT32 iItemIndex;
|
UINT32 iItemIndex;
|
||||||
INT32 iReturn;
|
INT32 iReturn;
|
||||||
@@ -658,12 +658,15 @@ INT32 AddItemToWorld( INT32 sGridNo, OBJECTTYPE *pObject, UINT8 ubLevel, UINT16
|
|||||||
{
|
{
|
||||||
SOLDIERTYPE* pSoldier = NULL;
|
SOLDIERTYPE* pSoldier = NULL;
|
||||||
|
|
||||||
if (soldierID == -1)
|
if (soldierID == NOBODY)
|
||||||
{
|
{
|
||||||
if (gWorldItems[ iItemIndex ].object[0]->data.misc.ubBombOwner > 1)
|
if (gWorldItems[ iItemIndex ].object[0]->data.misc.ubBombOwner > 1)
|
||||||
{
|
{
|
||||||
soldierID = gWorldItems[ iItemIndex ].object[0]->data.misc.ubBombOwner - 2; // undo the hack
|
soldierID = gWorldItems[ iItemIndex ].object[0]->data.misc.ubBombOwner - 2; // undo the hack
|
||||||
pSoldier = MercPtrs[ soldierID ];
|
if ( soldierID < NOBODY )
|
||||||
|
{
|
||||||
|
pSoldier = soldierID;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -122,7 +122,7 @@ public:
|
|||||||
extern std::vector<WORLDITEM> gWorldItems;//dnl ch75 261013
|
extern std::vector<WORLDITEM> gWorldItems;//dnl ch75 261013
|
||||||
extern UINT32 guiNumWorldItems;
|
extern UINT32 guiNumWorldItems;
|
||||||
|
|
||||||
INT32 AddItemToWorld( INT32 sGridNo, OBJECTTYPE *pObject, UINT8 ubLevel, UINT16 usFlags, INT8 bRenderZHeightAboveLevel, INT8 bVisible, INT16 soldierID );
|
INT32 AddItemToWorld( INT32 sGridNo, OBJECTTYPE *pObject, UINT8 ubLevel, UINT16 usFlags, INT8 bRenderZHeightAboveLevel, INT8 bVisible, SoldierID soldierID );
|
||||||
void RemoveItemFromWorld( INT32 iItemIndex );
|
void RemoveItemFromWorld( INT32 iItemIndex );
|
||||||
INT32 FindWorldItem( UINT16 usItem );
|
INT32 FindWorldItem( UINT16 usItem );
|
||||||
|
|
||||||
|
|||||||
@@ -1106,7 +1106,7 @@ inline UINT16 * GetShadeTable(LEVELNODE * pNode, SOLDIERTYPE * pSoldier, SOLDIER
|
|||||||
}
|
}
|
||||||
// Set shade
|
// Set shade
|
||||||
// If a bad guy is highlighted
|
// If a bad guy is highlighted
|
||||||
if (gfUIHandleSelectionAboveGuy == TRUE && MercPtrs[gsSelectedGuy]->bSide != gbPlayerNum)
|
if (gfUIHandleSelectionAboveGuy == TRUE && gsSelectedGuy->bSide != gbPlayerNum)
|
||||||
{
|
{
|
||||||
if (gsSelectedGuy == pSoldier->ubID)
|
if (gsSelectedGuy == pSoldier->ubID)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user