Import changes from the local SVN working copy

This commit is contained in:
Asdow
2022-10-10 10:08:44 +03:00
parent 9cc567644f
commit 1f0a8f46e8
170 changed files with 1798 additions and 1764 deletions
+3 -3
View File
@@ -168,7 +168,7 @@ void AddNewItemToSelectedMercsInventory( BOOLEAN fCreate );
void RenderMercInventoryPanel(); void RenderMercInventoryPanel();
void SetDroppableCheckboxesBasedOnMercsInventory(); void SetDroppableCheckboxesBasedOnMercsInventory();
extern BOOLEAN InternalAddSoldierToSector( UINT8 ubID, BOOLEAN fCalculateDirection, BOOLEAN fUseAnimation, UINT16 usAnimState, UINT16 usAnimCode ); extern BOOLEAN InternalAddSoldierToSector( UINT16 ubID, BOOLEAN fCalculateDirection, BOOLEAN fUseAnimation, UINT16 usAnimState, UINT16 usAnimCode );
//array which keeps track of which item is in which slot. This is dependant on the selected merc, so //array which keeps track of which item is in which slot. This is dependant on the selected merc, so
//these temp values must be updated when different mercs are selected, and reset when a merc detailed //these temp values must be updated when different mercs are selected, and reset when a merc detailed
@@ -565,7 +565,7 @@ void AddMercToWorld( INT32 iMapIndex )
if( IsLocationSittable( iMapIndex, gfRoofPlacement ) ) if( IsLocationSittable( iMapIndex, gfRoofPlacement ) )
{ {
UINT8 ubID; UINT16 ubID;
INT16 sSectorX, sSectorY; INT16 sSectorX, sSectorY;
SOLDIERINITNODE *pNode; SOLDIERINITNODE *pNode;
@@ -3789,7 +3789,7 @@ void PasteMercPlacement( INT32 iMapIndex )
if( IsLocationSittable( iMapIndex, gfRoofPlacement ) ) if( IsLocationSittable( iMapIndex, gfRoofPlacement ) )
{ {
UINT8 ubID; UINT16 ubID;
INT16 sSectorX, sSectorY; INT16 sSectorX, sSectorY;
SOLDIERINITNODE *pNode; SOLDIERINITNODE *pNode;
+2 -1
View File
@@ -22,6 +22,7 @@ extern CHAR16 zRevisionNumber[16];
// Keeps track of the saved game version. Increment the saved game version whenever // Keeps track of the saved game version. Increment the saved game version whenever
// you will invalidate the saved game file // you will invalidate the saved game file
#define INCREASED_TEAMSIZES 184 // Asdow: SOLDIERTYPE ubID changed from UINT8 -> UINT16
#define REBELCOMMAND 183 #define REBELCOMMAND 183
#define DRAGSTRUCTURE 182 // Flugente: we can drag structures behind us #define DRAGSTRUCTURE 182 // Flugente: we can drag structures behind us
#define DISABILITYFLAGMASK 181 // Flugente: disabilities get a flagmask #define DISABILITYFLAGMASK 181 // Flugente: disabilities get a flagmask
@@ -103,7 +104,7 @@ extern CHAR16 zRevisionNumber[16];
#define AP100_SAVEGAME_DATATYPE_CHANGE 105 // Before this, we didn't have the 100AP structure changes #define AP100_SAVEGAME_DATATYPE_CHANGE 105 // Before this, we didn't have the 100AP structure changes
#define NIV_SAVEGAME_DATATYPE_CHANGE 102 // Before this, we used the old structure system #define NIV_SAVEGAME_DATATYPE_CHANGE 102 // Before this, we used the old structure system
#define SAVE_GAME_VERSION REBELCOMMAND #define SAVE_GAME_VERSION INCREASED_TEAMSIZES
//#define RUSSIANGOLD //#define RUSSIANGOLD
#ifdef __cplusplus #ifdef __cplusplus
+3 -3
View File
@@ -3700,11 +3700,11 @@ void OutOfStockMessageBoxCallBack( UINT8 bExitValue )
UINT8 CheckPlayersInventoryForGunMatchingGivenAmmoID( INT16 sItemID ) UINT8 CheckPlayersInventoryForGunMatchingGivenAmmoID( INT16 sItemID )
{ {
UINT8 ubItemCount=0; UINT8 ubItemCount=0;
UINT8 ubMercCount; UINT16 ubMercCount;
UINT8 ubPocketCount; UINT8 ubPocketCount;
UINT8 ubFirstID = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; UINT16 ubFirstID = gTacticalStatus.Team[ OUR_TEAM ].bFirstID;
UINT8 ubLastID = gTacticalStatus.Team[ OUR_TEAM ].bLastID; UINT16 ubLastID = gTacticalStatus.Team[ OUR_TEAM ].bLastID;
//loop through all the mercs on the team //loop through all the mercs on the team
for( ubMercCount = ubFirstID; ubMercCount <= ubLastID; ++ubMercCount ) for( ubMercCount = ubFirstID; ubMercCount <= ubLastID; ++ubMercCount )
+1 -1
View File
@@ -26,7 +26,7 @@ class SOLDIERTYPE;
typedef struct typedef struct
{ {
BOOLEAN fActive; BOOLEAN fActive;
UINT8 ubSoldierID; UINT16 ubSoldierID;
UINT8 ubMercID; UINT8 ubMercID;
INT32 iPayOutPrice; INT32 iPayOutPrice;
} LIFE_INSURANCE_PAYOUT; } LIFE_INSURANCE_PAYOUT;
+10 -10
View File
@@ -170,7 +170,7 @@ void InsuranceContractUserTextFieldCallBack( UINT8 ubID, BOOLEAN fEntering );
INT8 CountInsurableMercs(); INT8 CountInsurableMercs();
void DisableInsuranceContractNextPreviousbuttons(); void DisableInsuranceContractNextPreviousbuttons();
void CreateDestroyInsuranceContractFormButtons( BOOLEAN fCreate); void CreateDestroyInsuranceContractFormButtons( BOOLEAN fCreate);
void HandleAcceptButton( UINT8 ubSoldierID, UINT8 ubFormID ); void HandleAcceptButton( UINT16 ubSoldierID, UINT8 ubFormID );
FLOAT DiffFromNormRatio( INT16 sThisValue, INT16 sNormalValue ); FLOAT DiffFromNormRatio( INT16 sThisValue, INT16 sNormalValue );
void InsContractNoMercsPopupCallBack( UINT8 bExitValue ); void InsContractNoMercsPopupCallBack( UINT8 bExitValue );
void BuildInsuranceArray(); void BuildInsuranceArray();
@@ -752,7 +752,7 @@ void BtnInsuranceAcceptClearForm1ButtonCallback(GUI_BUTTON *btn,INT32 reason)
if (btn->uiFlags & BUTTON_CLICKED_ON) if (btn->uiFlags & BUTTON_CLICKED_ON)
{ {
UINT8 ubButton = (UINT8) MSYS_GetBtnUserData( btn, 0 ); UINT8 ubButton = (UINT8) MSYS_GetBtnUserData( btn, 0 );
UINT8 ubSoldierID = (UINT8) GetSoldierIDFromMercID( gubMercIDForMercInForm1 ); INT16 ubSoldierID = GetSoldierIDFromMercID( gubMercIDForMercInForm1 );
btn->uiFlags &= (~BUTTON_CLICKED_ON ); btn->uiFlags &= (~BUTTON_CLICKED_ON );
@@ -796,7 +796,7 @@ void BtnInsuranceAcceptClearForm2ButtonCallback(GUI_BUTTON *btn,INT32 reason)
if (btn->uiFlags & BUTTON_CLICKED_ON) if (btn->uiFlags & BUTTON_CLICKED_ON)
{ {
UINT8 ubButton = (UINT8) MSYS_GetBtnUserData( btn, 0 ); UINT8 ubButton = (UINT8) MSYS_GetBtnUserData( btn, 0 );
UINT8 ubSoldierID = (UINT8) GetSoldierIDFromMercID( gubMercIDForMercInForm2 ); INT16 ubSoldierID = GetSoldierIDFromMercID( gubMercIDForMercInForm2 );
btn->uiFlags &= (~BUTTON_CLICKED_ON ); btn->uiFlags &= (~BUTTON_CLICKED_ON );
@@ -841,7 +841,7 @@ void BtnInsuranceAcceptClearForm3ButtonCallback(GUI_BUTTON *btn,INT32 reason)
if (btn->uiFlags & BUTTON_CLICKED_ON) if (btn->uiFlags & BUTTON_CLICKED_ON)
{ {
UINT8 ubButton = (UINT8) MSYS_GetBtnUserData( btn, 0 ); UINT8 ubButton = (UINT8) MSYS_GetBtnUserData( btn, 0 );
UINT8 ubSoldierID = (UINT8) GetSoldierIDFromMercID( gubMercIDForMercInForm3 ); INT16 ubSoldierID = GetSoldierIDFromMercID( gubMercIDForMercInForm3 );
btn->uiFlags &= (~BUTTON_CLICKED_ON ); btn->uiFlags &= (~BUTTON_CLICKED_ON );
@@ -943,10 +943,10 @@ void SelectInsuranceContractRegionCallBack(MOUSE_REGION * pRegion, INT32 iReason
INT8 CountInsurableMercs() INT8 CountInsurableMercs()
{ {
INT16 cnt; UINT16 cnt;
SOLDIERTYPE *pSoldier; SOLDIERTYPE *pSoldier;
INT16 bLastTeamID; UINT16 bLastTeamID;
INT8 bCount=0; INT8 bCount=0;
// Set locator to first merc // Set locator to first merc
cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID;
@@ -1071,7 +1071,7 @@ void CreateDestroyInsuranceContractFormButtons( BOOLEAN fCreate)
void HandleAcceptButton( UINT8 ubSoldierID, UINT8 ubFormID ) void HandleAcceptButton( UINT16 ubSoldierID, UINT8 ubFormID )
{ {
//passed in either 1,2,3 should be 0,1,2 //passed in either 1,2,3 should be 0,1,2
ubFormID--; ubFormID--;
@@ -1459,7 +1459,7 @@ void EndInsuranceInvestigation( UINT8 ubPayoutID )
//void InsuranceContractPayLifeInsuranceForDeadMerc( LIFE_INSURANCE_PAYOUT *pPayoutStruct ) //void InsuranceContractPayLifeInsuranceForDeadMerc( LIFE_INSURANCE_PAYOUT *pPayoutStruct )
void InsuranceContractPayLifeInsuranceForDeadMerc( UINT8 ubPayoutID ) void InsuranceContractPayLifeInsuranceForDeadMerc( UINT16 ubPayoutID )
{ {
//if the mercs id number is the same what is in the soldier array //if the mercs id number is the same what is in the soldier array
if( LaptopSaveInfo.pLifeInsurancePayouts[ ubPayoutID ].ubSoldierID == Menptr[ LaptopSaveInfo.pLifeInsurancePayouts[ ubPayoutID ].ubSoldierID ].ubID ) if( LaptopSaveInfo.pLifeInsurancePayouts[ ubPayoutID ].ubSoldierID == Menptr[ LaptopSaveInfo.pLifeInsurancePayouts[ ubPayoutID ].ubSoldierID ].ubID )
+1 -1
View File
@@ -18,7 +18,7 @@ void DailyUpdateOfInsuredMercs();
//void InsuranceContractPayLifeInsuranceForDeadMerc( LIFE_INSURANCE_PAYOUT *pPayoutStruct ); //void InsuranceContractPayLifeInsuranceForDeadMerc( LIFE_INSURANCE_PAYOUT *pPayoutStruct );
BOOLEAN AddLifeInsurancePayout( SOLDIERTYPE *pSoldier ); BOOLEAN AddLifeInsurancePayout( SOLDIERTYPE *pSoldier );
void InsuranceContractPayLifeInsuranceForDeadMerc( UINT8 ubPayoutID ); void InsuranceContractPayLifeInsuranceForDeadMerc( UINT16 ubPayoutID );
void StartInsuranceInvestigation( UINT8 ubPayoutID ); void StartInsuranceInvestigation( UINT8 ubPayoutID );
void EndInsuranceInvestigation( UINT8 ubPayoutID ); void EndInsuranceInvestigation( UINT8 ubPayoutID );
+42 -43
View File
@@ -387,13 +387,13 @@ typedef struct
typedef struct typedef struct
{ {
UINT8 ubProfileID; UINT16 ubProfileID;
} send_dismiss_struct; } send_dismiss_struct;
typedef struct typedef struct
{ {
UINT8 usSoldierID; UINT16 usSoldierID;
FLOAT dNewXPos; FLOAT dNewXPos;
FLOAT dNewYPos; FLOAT dNewYPos;
@@ -401,7 +401,7 @@ typedef struct
typedef struct typedef struct
{ {
UINT8 usSoldierID; UINT16 usSoldierID;
INT16 usNewDirection; INT16 usNewDirection;
} gui_dir; } gui_dir;
@@ -430,12 +430,12 @@ typedef struct
typedef struct typedef struct
{ {
UINT8 ubID; UINT16 ubID;
INT8 bTeam; INT8 bTeam;
UINT8 gubOutOfTurnPersons; UINT16 gubOutOfTurnPersons;
UINT8 gubOutOfTurnOrder[MAXMERCS]; UINT16 gubOutOfTurnOrder[MAXMERCS];
BOOLEAN fMarkInterruptOccurred; BOOLEAN fMarkInterruptOccurred;
UINT8 Interrupted; UINT16 Interrupted;
} INT_STRUCT; } INT_STRUCT;
typedef struct typedef struct
@@ -475,7 +475,7 @@ typedef struct
float dForceY; float dForceY;
float dForceZ; float dForceZ;
UINT32 sTargetGridNo; UINT32 sTargetGridNo;
UINT8 ubID; UINT16 ubID;
UINT8 ubActionCode; UINT8 ubActionCode;
UINT32 uiActionData; UINT32 uiActionData;
UINT16 usItem; UINT16 usItem;
@@ -491,7 +491,7 @@ typedef struct
float dZ; float dZ;
INT32 sGridNo; INT32 sGridNo;
bool bWasDud; bool bWasDud;
UINT8 ubOwnerID; UINT16 ubOwnerID;
INT32 RealObjectID; // the local ID on the initiating client INT32 RealObjectID; // the local ID on the initiating client
UINT32 uiPreRandomIndex; // send out our current pre-random index UINT32 uiPreRandomIndex; // send out our current pre-random index
} grenade_result; } grenade_result;
@@ -499,7 +499,7 @@ typedef struct
typedef struct typedef struct
{ {
UINT32 sGridNo; UINT32 sGridNo;
UINT8 ubID; UINT16 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
@@ -511,7 +511,7 @@ typedef struct
typedef struct typedef struct
{ {
UINT8 ubID; UINT16 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
@@ -521,7 +521,7 @@ typedef struct
{ {
UINT32 uiWorldItemIndex; UINT32 uiWorldItemIndex;
UINT8 ubMPTeamIndex; UINT8 ubMPTeamIndex;
UINT8 ubID; UINT16 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;
@@ -531,7 +531,7 @@ typedef struct
INT32 sGridNo; INT32 sGridNo;
UINT8 ubRadius; UINT8 ubRadius;
UINT16 usItem; UINT16 usItem;
UINT8 ubOwner; UINT16 ubOwner;
BOOLEAN fSubsequent; BOOLEAN fSubsequent;
INT8 bLevel; INT8 bLevel;
INT32 iSmokeEffectID; INT32 iSmokeEffectID;
@@ -541,13 +541,13 @@ typedef struct
typedef struct typedef struct
{ {
UINT8 ubDamageFunc; // 1 - gas damage , 2 - explosive damage UINT8 ubDamageFunc; // 1 - gas damage , 2 - explosive damage
UINT8 ubSoldierID; UINT16 ubSoldierID;
UINT16 usExplosiveClassID; UINT16 usExplosiveClassID;
INT16 sSubsequent; INT16 sSubsequent;
BOOL fRecompileMovementCosts; BOOL fRecompileMovementCosts;
INT16 sWoundAmt; INT16 sWoundAmt;
INT16 sBreathAmt; INT16 sBreathAmt;
UINT8 ubAttackerID; UINT16 ubAttackerID;
UINT16 usItem; UINT16 usItem;
INT32 sBombGridNo; INT32 sBombGridNo;
UINT32 uiDist; UINT32 uiDist;
@@ -571,7 +571,7 @@ int client_progress[4];
int TEAM; int TEAM;
UINT8 netbTeam; UINT8 netbTeam;
UINT8 ubID_prefix; UINT16 ubID_prefix;
bool is_connected=false; bool is_connected=false;
bool is_connecting=false; bool is_connecting=false;
@@ -990,7 +990,7 @@ void recieveHIT(RPCParameters *rpcParameters)
SOLDIERTYPE *pSoldier = MercPtrs[ SWeaponHit->usSoldierID ]; SOLDIERTYPE *pSoldier = MercPtrs[ SWeaponHit->usSoldierID ];
UINT16 usSoldierID; UINT16 usSoldierID;
UINT8 ubAttackerID; UINT16 ubAttackerID;
if((SWeaponHit->usSoldierID >= ubID_prefix) && (SWeaponHit->usSoldierID < (ubID_prefix+6))) // within our netbTeam range... if((SWeaponHit->usSoldierID >= ubID_prefix) && (SWeaponHit->usSoldierID < (ubID_prefix+6))) // within our netbTeam range...
usSoldierID = (SWeaponHit->usSoldierID - ubID_prefix); usSoldierID = (SWeaponHit->usSoldierID - ubID_prefix);
@@ -1017,7 +1017,7 @@ void recieveHIT(RPCParameters *rpcParameters)
} }
void send_dismiss(UINT8 ubCurrentSoldierID) void send_dismiss(UINT16 ubCurrentSoldierID)
{ {
send_dismiss_struct sDismissMerc; send_dismiss_struct sDismissMerc;
@@ -1089,8 +1089,7 @@ void recieveHIRE(RPCParameters *rpcParameters)
send_hire_struct* sHireMerc = (send_hire_struct*)rpcParameters->input; send_hire_struct* sHireMerc = (send_hire_struct*)rpcParameters->input;
SOLDIERTYPE *pSoldier; SOLDIERTYPE *pSoldier;
UINT8 iNewIndex; UINT16 iNewIndex;
UINT8 ubCount=0;
SOLDIERCREATE_STRUCT MercCreateStruct; SOLDIERCREATE_STRUCT MercCreateStruct;
BOOLEAN fReturn = FALSE; BOOLEAN fReturn = FALSE;
@@ -1283,7 +1282,7 @@ UINT8 numenemyLAN( UINT8 ubSectorX, UINT8 ubSectorY )
return ubNumEnemies; return ubNumEnemies;
} }
void send_AI( SOLDIERCREATE_STRUCT *pCreateStruct, UINT8 *pubID ) void send_AI( SOLDIERCREATE_STRUCT *pCreateStruct, UINT16 * pubID )
{ {
AI_STRUCT send_inv; AI_STRUCT send_inv;
send_inv.standard_data = *pCreateStruct; send_inv.standard_data = *pCreateStruct;
@@ -1298,7 +1297,7 @@ void send_AI( SOLDIERCREATE_STRUCT *pCreateStruct, UINT8 *pubID )
void recieveAI (RPCParameters *rpcParameters) void recieveAI (RPCParameters *rpcParameters)
{ {
UINT8 iNewIndex; UINT16 iNewIndex;
SOLDIERTYPE *pSoldier; SOLDIERTYPE *pSoldier;
AI_STRUCT* send_inv = (AI_STRUCT*)rpcParameters->input; AI_STRUCT* send_inv = (AI_STRUCT*)rpcParameters->input;
@@ -1921,7 +1920,7 @@ void send_interrupt (SOLDIERTYPE *pSoldier)
INT.ubID = pSoldier->ubID; INT.ubID = pSoldier->ubID;
INT.bTeam = pSoldier->bTeam; INT.bTeam = pSoldier->bTeam;
memcpy(INT.gubOutOfTurnOrder, gubOutOfTurnOrder, sizeof(UINT8) * MAXMERCS); memcpy(INT.gubOutOfTurnOrder, gubOutOfTurnOrder, sizeof(UINT16) * MAXMERCS);
INT.gubOutOfTurnPersons = gubOutOfTurnPersons; INT.gubOutOfTurnPersons = gubOutOfTurnPersons;
INT.Interrupted=gusSelectedSoldier+ubID_prefix; INT.Interrupted=gusSelectedSoldier+ubID_prefix;
@@ -1977,7 +1976,7 @@ void send_interrupt (SOLDIERTYPE *pSoldier)
INT->gubOutOfTurnOrder[i]=INT->gubOutOfTurnOrder[i]-ubID_prefix; INT->gubOutOfTurnOrder[i]=INT->gubOutOfTurnOrder[i]-ubID_prefix;
} }
} }
memcpy(gubOutOfTurnOrder,INT->gubOutOfTurnOrder, sizeof(UINT8) * MAXMERCS); memcpy(gubOutOfTurnOrder,INT->gubOutOfTurnOrder, sizeof(UINT16) * MAXMERCS);
gubOutOfTurnPersons = INT->gubOutOfTurnPersons; gubOutOfTurnPersons = INT->gubOutOfTurnPersons;
if(INT->bTeam==netbTeam)//for us if(INT->bTeam==netbTeam)//for us
@@ -2025,7 +2024,7 @@ void send_interrupt (SOLDIERTYPE *pSoldier)
INT->gubOutOfTurnOrder[i]=INT->gubOutOfTurnOrder[i]-ubID_prefix; INT->gubOutOfTurnOrder[i]=INT->gubOutOfTurnOrder[i]-ubID_prefix;
} }
} }
memcpy(gubOutOfTurnOrder,INT->gubOutOfTurnOrder, sizeof(UINT8) * MAXMERCS); memcpy(gubOutOfTurnOrder,INT->gubOutOfTurnOrder, sizeof(UINT16) * MAXMERCS);
gubOutOfTurnPersons = INT->gubOutOfTurnPersons; gubOutOfTurnPersons = INT->gubOutOfTurnPersons;
AddTopMessage( PLAYER_INTERRUPT_MESSAGE, TeamTurnString[ INT->bTeam ] ); AddTopMessage( PLAYER_INTERRUPT_MESSAGE, TeamTurnString[ INT->bTeam ] );
@@ -2141,7 +2140,7 @@ void end_interrupt ( BOOLEAN fMarkInterruptOccurred )
INT_STRUCT INT; INT_STRUCT INT;
INT.ubID = pSoldier->ubID; INT.ubID = pSoldier->ubID;
INT.bTeam = pSoldier->bTeam; INT.bTeam = pSoldier->bTeam;
memcpy(INT.gubOutOfTurnOrder, gubOutOfTurnOrder, sizeof(UINT8) * MAXMERCS); memcpy(INT.gubOutOfTurnOrder, gubOutOfTurnOrder, sizeof(UINT16) * MAXMERCS);
INT.gubOutOfTurnPersons = gubOutOfTurnPersons; INT.gubOutOfTurnPersons = gubOutOfTurnPersons;
INT.fMarkInterruptOccurred=fMarkInterruptOccurred; INT.fMarkInterruptOccurred=fMarkInterruptOccurred;
if(is_server)Sawarded=false; if(is_server)Sawarded=false;
@@ -2182,7 +2181,7 @@ void resume_turn(RPCParameters *rpcParameters)
} }
} }
memcpy(gubOutOfTurnOrder,INT->gubOutOfTurnOrder, sizeof(UINT8) * MAXMERCS); memcpy(gubOutOfTurnOrder,INT->gubOutOfTurnOrder, sizeof(UINT16) * MAXMERCS);
gubOutOfTurnPersons = INT->gubOutOfTurnPersons; gubOutOfTurnPersons = INT->gubOutOfTurnPersons;
EndInterrupt( INT->fMarkInterruptOccurred ); EndInterrupt( INT->fMarkInterruptOccurred );
} }
@@ -2928,7 +2927,7 @@ void recieveMAPCHANGE( RPCParameters *rpcParameters )
} }
// 20091002 - OJW - Explosives // 20091002 - OJW - Explosives
void send_grenade (OBJECTTYPE *pGameObj, float dLifeLength, float xPos, float yPos, float zPos, float xForce, float yForce, float zForce, UINT32 sTargetGridNo, UINT8 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, UINT16 ubOwner, UINT8 ubActionCode, UINT32 uiActionData, INT32 iRealObjectID, bool bIsThrownGrenade)
{ {
ubOwner = MPEncodeSoldierID(ubOwner); // translate our soldier to the "network" version ubOwner = MPEncodeSoldierID(ubOwner); // translate our soldier to the "network" version
@@ -2993,7 +2992,7 @@ void recieveGRENADE (RPCParameters *rpcParameters)
CreateItem( gren->usItem, 99, newObj ); CreateItem( gren->usItem, 99, newObj );
OBJECTTYPE::CopyToOrCreateAt(&pThrower->pTempObject, newObj); OBJECTTYPE::CopyToOrCreateAt(&pThrower->pTempObject, newObj);
// this will create a grenade and launch it // this will create a grenade and launch it
INT32 i = CreatePhysicalObject( pThrower->pTempObject , gren->dLifeSpan , gren->dX , gren->dY , gren->dZ , gren->dForceX , gren->dForceY , gren->dForceZ , pThrower->ubID , gren->ubActionCode , gren->uiActionData, false); INT32 i = CreatePhysicalObject( pThrower->pTempObject, gren->dLifeSpan, gren->dX, gren->dY, gren->dZ, gren->dForceX, gren->dForceY, gren->dForceZ, pThrower->ubID, gren->ubActionCode, gren->uiActionData, false);
// save extra state info so we can check and feed it result later // save extra state info so we can check and feed it result later
ObjectSlots[ i ].mpRealObjectID = gren->RealObjectID; ObjectSlots[ i ].mpRealObjectID = gren->RealObjectID;
ObjectSlots[ i ].mpTeam = pThrower->bTeam; ObjectSlots[ i ].mpTeam = pThrower->bTeam;
@@ -3136,7 +3135,7 @@ void recieveGRENADERESULT (RPCParameters *rpcParameters)
} }
} }
void send_plant_explosive (UINT8 ubID,UINT16 usItem,UINT8 ubItemStatus,UINT16 usFlags, UINT32 sGridNo,UINT8 ubLevel, UINT32 uiWorldItemIndex) void send_plant_explosive (UINT16 ubID,UINT16 usItem,UINT8 ubItemStatus,UINT16 usFlags, UINT32 sGridNo,UINT8 ubLevel, UINT32 uiWorldItemIndex)
{ {
explosive_obj exp; explosive_obj exp;
@@ -3184,7 +3183,7 @@ void recievePLANTEXPLOSIVE (RPCParameters *rpcParameters)
OBJECTTYPE* newObj = new OBJECTTYPE(); OBJECTTYPE* newObj = new OBJECTTYPE();
CreateItem( exp->usItem, exp->ubItemStatus, newObj ); CreateItem( exp->usItem, exp->ubItemStatus, newObj );
INT32 iNewItemIndex; INT32 iNewItemIndex;
OBJECTTYPE* pObj = AddItemToPoolAndGetIndex( exp->sGridNo, newObj, VISIBLE, exp->ubLevel, exp->usFlags,0, exp->ubID ,&iNewItemIndex); OBJECTTYPE* pObj = AddItemToPoolAndGetIndex( exp->sGridNo, newObj, VISIBLE, exp->ubLevel, exp->usFlags,0, exp->ubID,&iNewItemIndex);
// need to save Item Type metadata agaist the world item // need to save Item Type metadata agaist the world item
(*pObj)[0]->data.misc.ubBombOwner = exp->ubID + 2; // this is a hack the designers put into the game, storing the side as well (which isnt relevant in MP, but still have to do it) (*pObj)[0]->data.misc.ubBombOwner = exp->ubID + 2; // this is a hack the designers put into the game, storing the side as well (which isnt relevant in MP, but still have to do it)
(*pObj)[0]->data.misc.usBombItem = exp->usItem; (*pObj)[0]->data.misc.usBombItem = exp->usItem;
@@ -3237,7 +3236,7 @@ void recievePLANTEXPLOSIVE (RPCParameters *rpcParameters)
} }
} }
void send_detonate_explosive (UINT32 uiWorldIndex, UINT8 ubID) void send_detonate_explosive (UINT32 uiWorldIndex, UINT16 ubID)
{ {
ubID = MPEncodeSoldierID(ubID); ubID = MPEncodeSoldierID(ubID);
@@ -3351,7 +3350,7 @@ void recieveDETONATEEXPLOSIVE (RPCParameters *rpcParameters)
} }
} }
void send_disarm_explosive(UINT32 sGridNo, UINT32 uiWorldItem, UINT8 ubID) void send_disarm_explosive(UINT32 sGridNo, UINT32 uiWorldItem, UINT16 ubID)
{ {
ubID = MPEncodeSoldierID(ubID); ubID = MPEncodeSoldierID(ubID);
@@ -3474,7 +3473,7 @@ void recieveDISARMEXPLOSIVE (RPCParameters *rpcParameters)
} }
} }
void send_spreadeffect ( INT32 sGridNo, UINT8 ubRadius, UINT16 usItem, UINT8 ubOwner, BOOLEAN fSubsequent, INT8 bLevel, INT32 iSmokeEffectID ) void send_spreadeffect ( INT32 sGridNo, UINT8 ubRadius, UINT16 usItem, UINT16 ubOwner, BOOLEAN fSubsequent, INT8 bLevel, INT32 iSmokeEffectID )
{ {
spreadeffect_struct sef; spreadeffect_struct sef;
@@ -3527,7 +3526,7 @@ void recieveSPREADEFFECT (RPCParameters *rpcParameters)
if ( gSmokeEffectData[ uiCount ].fAllocated == TRUE && gSmokeEffectData[ uiCount ].iMPTeamIndex == pSoldier->bTeam && gSmokeEffectData[ uiCount ].iMPSmokeEffectID == sef->iSmokeEffectID) if ( gSmokeEffectData[ uiCount ].fAllocated == TRUE && gSmokeEffectData[ uiCount ].iMPTeamIndex == pSoldier->bTeam && gSmokeEffectData[ uiCount ].iMPSmokeEffectID == sef->iSmokeEffectID)
{ {
bFound = true; bFound = true;
SpreadEffect( sef->sGridNo , sef->ubRadius , sef->usItem , sef->ubOwner , sef->fSubsequent , sef->bLevel , uiCount , TRUE); SpreadEffect( sef->sGridNo, sef->ubRadius, sef->usItem, sef->ubOwner, sef->fSubsequent, sef->bLevel, uiCount, TRUE);
break; break;
} }
} }
@@ -3544,7 +3543,7 @@ void recieveSPREADEFFECT (RPCParameters *rpcParameters)
} }
else else
{ {
SpreadEffect( sef->sGridNo , sef->ubRadius , sef->usItem , sef->ubOwner , sef->fSubsequent , sef->bLevel , sef->iSmokeEffectID , TRUE); SpreadEffect( sef->sGridNo, sef->ubRadius, sef->usItem, sef->ubOwner, sef->fSubsequent, sef->bLevel, sef->iSmokeEffectID, TRUE);
} }
} }
} }
@@ -3559,7 +3558,7 @@ void recieveSPREADEFFECT (RPCParameters *rpcParameters)
} }
} }
void send_newsmokeeffect(INT32 sGridNo, UINT16 usItem, INT8 bLevel, UINT8 ubOwner, INT32 iSmokeEffectID) void send_newsmokeeffect(INT32 sGridNo, UINT16 usItem, INT8 bLevel, UINT16 ubOwner, INT32 iSmokeEffectID)
{ {
// i'm reusing this struct, the parameters are essentially the same // i'm reusing this struct, the parameters are essentially the same
spreadeffect_struct sef; spreadeffect_struct sef;
@@ -3602,7 +3601,7 @@ void recieveNEWSMOKEEFFECT (RPCParameters *rpcParameters)
guiPreRandomIndex = sef->uiPreRandomIndex; guiPreRandomIndex = sef->uiPreRandomIndex;
// start new smoke effect // start new smoke effect
INT32 iNewSmokeIndex = NewSmokeEffect( sef->sGridNo , sef->usItem , sef->bLevel , sef->ubOwner , TRUE ); INT32 iNewSmokeIndex = NewSmokeEffect( sef->sGridNo, sef->usItem, sef->bLevel, sef->ubOwner, TRUE );
// attach remote id to local smoke effect // attach remote id to local smoke effect
gSmokeEffectData[iNewSmokeIndex].iMPTeamIndex = pSoldier->bTeam; gSmokeEffectData[iNewSmokeIndex].iMPTeamIndex = pSoldier->bTeam;
@@ -3620,7 +3619,7 @@ void recieveNEWSMOKEEFFECT (RPCParameters *rpcParameters)
} }
} }
void send_gasdamage( SOLDIERTYPE * pSoldier, UINT16 usExplosiveClassID, INT16 sSubsequent, BOOLEAN fRecompileMovementCosts, INT16 sWoundAmt, INT16 sBreathAmt, UINT8 ubOwner ) void send_gasdamage( SOLDIERTYPE * pSoldier, UINT16 usExplosiveClassID, INT16 sSubsequent, BOOLEAN fRecompileMovementCosts, INT16 sWoundAmt, INT16 sBreathAmt, UINT16 ubOwner )
{ {
explosiondamage_struct exp; explosiondamage_struct exp;
exp.ubDamageFunc = 1; exp.ubDamageFunc = 1;
@@ -3642,7 +3641,7 @@ void send_gasdamage( SOLDIERTYPE * pSoldier, UINT16 usExplosiveClassID, INT16 sS
client->RPC("sendEXPLOSIONDAMAGE",(const char*)&exp, (int)sizeof(explosiondamage_struct)*8, HIGH_PRIORITY, RELIABLE, 0, UNASSIGNED_SYSTEM_ADDRESS, true, 0, UNASSIGNED_NETWORK_ID,0); client->RPC("sendEXPLOSIONDAMAGE",(const char*)&exp, (int)sizeof(explosiondamage_struct)*8, HIGH_PRIORITY, RELIABLE, 0, UNASSIGNED_SYSTEM_ADDRESS, true, 0, UNASSIGNED_NETWORK_ID,0);
} }
void send_explosivedamage( UINT8 ubPerson, UINT8 ubOwner, INT32 sBombGridNo, INT16 sWoundAmt, INT16 sBreathAmt, UINT32 uiDist, UINT16 usItem, INT16 sSubsequent ) void send_explosivedamage( UINT16 ubPerson, UINT16 ubOwner, INT32 sBombGridNo, INT16 sWoundAmt, INT16 sBreathAmt, UINT32 uiDist, UINT16 usItem, INT16 sSubsequent )
{ {
explosiondamage_struct exp; explosiondamage_struct exp;
exp.ubDamageFunc = 2; exp.ubDamageFunc = 2;
@@ -3699,7 +3698,7 @@ void recieveEXPLOSIONDAMAGE (RPCParameters *rpcParameters)
} }
else if (exp->ubDamageFunc == 2) else if (exp->ubDamageFunc == 2)
{ {
DamageSoldierFromBlast( exp->ubSoldierID , exp->ubAttackerID , exp->sBombGridNo , exp->sWoundAmt , exp->sBreathAmt , exp->uiDist , exp->usItem , exp->sSubsequent , TRUE); DamageSoldierFromBlast( exp->ubSoldierID, exp->ubAttackerID, exp->sBombGridNo, exp->sWoundAmt, exp->sBreathAmt, exp->uiDist, exp->usItem, exp->sSubsequent, TRUE);
} }
} }
} }
@@ -4206,7 +4205,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
UINT8 id = pSoldier->ubID; UINT16 id = pSoldier->ubID;
UINT32 time = GetJA2Clock(); UINT32 time = GetJA2Clock();
if(id < 20 || (is_server && id <120)) if(id < 20 || (is_server && id <120))
@@ -4519,7 +4518,7 @@ void recieveDISCONNECT(RPCParameters* rpcParameters)
// kill the dead clients mercs out of the game // kill the dead clients mercs out of the game
UINT8 iNetbTeam = (cl_num)+5; UINT8 iNetbTeam = (cl_num)+5;
UINT8 iubID_prefix = gTacticalStatus.Team[ iNetbTeam ].bFirstID;//over here now UINT16 iubID_prefix = gTacticalStatus.Team[ iNetbTeam ].bFirstID;//over here now
// kill any alive soldiers for the disconnected team // kill any alive soldiers for the disconnected team
SOLDIERTYPE *pTeamSoldier; SOLDIERTYPE *pTeamSoldier;
+15 -15
View File
@@ -36,7 +36,7 @@ extern UINT8 cGameType;
extern bool allowlaptop; extern bool allowlaptop;
extern UINT8 netbTeam; extern UINT8 netbTeam;
extern UINT8 ubID_prefix; extern UINT16 ubID_prefix;
extern FLOAT cDamageMultiplier; extern FLOAT cDamageMultiplier;
//OJW - 20081218 //OJW - 20081218
@@ -97,33 +97,33 @@ 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( UINT8 iNewIndex, UINT8 ubCurrentSoldier, INT16 iTotalContractLength, BOOLEAN fCopyProfileItemsOver);
void send_dismiss( UINT8 ubCurrentSoldier); 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);
void send_gui_dir(SOLDIERTYPE *pSoldier, UINT16 usNewDirection); void send_gui_dir(SOLDIERTYPE *pSoldier, UINT16 usNewDirection);
void send_EndTurn( UINT8 ubNextTeam ); void send_EndTurn( UINT8 ubNextTeam );
void send_AI( SOLDIERCREATE_STRUCT *pCreateStruct, UINT8 *pubID ); void send_AI( SOLDIERCREATE_STRUCT *pCreateStruct, UINT16 * pubID );
void send_stop (EV_S_STOP_MERC *SStopMerc); void send_stop (EV_S_STOP_MERC *SStopMerc);
void send_interrupt(SOLDIERTYPE *pSoldier); 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, UINT8 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, 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, UINT8 ubOwnerID, INT32 iRealObjectID, bool bIsDud);
void send_plant_explosive (UINT8 ubID,UINT16 usItem,UINT8 ubItemStatus,UINT16 usFlags, UINT32 sGridNo,UINT8 ubLevel, UINT32 uiWorldIndex); void send_plant_explosive (UINT16 ubID,UINT16 usItem,UINT8 ubItemStatus,UINT16 usFlags, UINT32 sGridNo,UINT8 ubLevel, UINT32 uiWorldIndex);
void send_detonate_explosive (UINT32 uiWorldIndex, UINT8 ubID); void send_detonate_explosive (UINT32 uiWorldIndex, UINT16 ubID);
void send_spreadeffect ( INT32 sGridNo, UINT8 ubRadius, UINT16 usItem, UINT8 ubOwner, BOOLEAN fSubsequent, INT8 bLevel, INT32 iSmokeEffectID ); 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, UINT8 ubOwner, 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, UINT8 ubOwner ); void send_gasdamage( SOLDIERTYPE * pSoldier, UINT16 usExplosiveClassID, INT16 sSubsequent, BOOLEAN fRecompileMovementCosts, INT16 sWoundAmt, INT16 sBreathAmt, UINT16 ubOwner );
void send_explosivedamage( UINT8 ubPerson, UINT8 ubOwner, INT32 sBombGridNo, INT16 sWoundAmt, INT16 sBreathAmt, UINT32 uiDist, UINT16 usItem, INT16 sSubsequent ); 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, UINT8 ubID); void send_disarm_explosive(UINT32 sGridNo, UINT32 uiWorldIndex, UINT16 ubID);
void OpenChatMsgBox(void); void OpenChatMsgBox(void);
INT8 FireBullet( UINT8 ubFirer, BULLET * pBullet, BOOLEAN fFake ); INT8 FireBullet( UINT16 ubFirer, BULLET * pBullet, BOOLEAN fFake );
void reapplySETTINGS(); void reapplySETTINGS();
@@ -211,7 +211,7 @@ extern BOOLEAN fClientReceivedAllFiles;
// sick of confusing myself :) // sick of confusing myself :)
// this one should be called before passing an ID off the client // this one should be called before passing an ID off the client
inline UINT8 MPEncodeSoldierID( UINT8 ubID ) inline UINT16 MPEncodeSoldierID( UINT16 ubID )
{ {
if ( ubID < 20 ) if ( ubID < 20 )
return ubID + ubID_prefix; // soldier is ours return ubID + ubID_prefix; // soldier is ours
@@ -220,7 +220,7 @@ inline UINT8 MPEncodeSoldierID( UINT8 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 UINT8 MPDecodeSoldierID( UINT8 ubID ) inline UINT16 MPDecodeSoldierID( UINT16 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
@@ -233,7 +233,7 @@ inline bool IsOurSoldier (SOLDIERTYPE* pSoldier)
return pSoldier->bTeam == netbTeam || pSoldier->bTeam == 0; return pSoldier->bTeam == netbTeam || pSoldier->bTeam == 0;
} }
inline bool IsOurSoldier (UINT8 ubID) inline bool IsOurSoldier (UINT16 ubID)
{ {
return (ubID >= ubID_prefix && ubID < (ubID_prefix + 7)) || ubID < 20; return (ubID >= ubID_prefix && ubID < (ubID_prefix + 7)) || ubID < 20;
} }
+2 -2
View File
@@ -62,7 +62,7 @@ void startCombat(UINT8 ubStartingTeam);
void intAI (SOLDIERTYPE *pSoldier ); void intAI (SOLDIERTYPE *pSoldier );
void teamwiped (void); void teamwiped (void);
BOOLEAN check_status (void); BOOLEAN check_status (void);
extern UINT8 NumEnemyInSector( ); extern UINT16 NumEnemyInSector( );
extern INT8 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 );
+63 -212
View File
@@ -322,7 +322,7 @@ typedef struct
INT16 sCurInterfacePanel; INT16 sCurInterfacePanel;
UINT8 ubSMCurrentMercID; UINT16 ubSMCurrentMercID;
BOOLEAN fFirstTimeInMapScreen; BOOLEAN fFirstTimeInMapScreen;
@@ -559,8 +559,8 @@ BOOLEAN SetMercsInsertionGridNo( );
BOOLEAN LoadOppListInfoFromSavedGame( HWFILE hFile ); BOOLEAN LoadOppListInfoFromSavedGame( HWFILE hFile );
BOOLEAN SaveOppListInfoToSavedGame( HWFILE hFile ); BOOLEAN SaveOppListInfoToSavedGame( HWFILE hFile );
BOOLEAN LoadMercPathToSoldierStruct( HWFILE hFilem, UINT8 ubID ); BOOLEAN LoadMercPathToSoldierStruct( HWFILE hFilem, UINT16 ubID );
BOOLEAN SaveMercPathFromSoldierStruct( HWFILE hFilem, UINT8 ubID ); BOOLEAN SaveMercPathFromSoldierStruct( HWFILE hFilem, UINT16 ubID );
BOOLEAN LoadGeneralInfo( HWFILE hFile ); BOOLEAN LoadGeneralInfo( HWFILE hFile );
BOOLEAN SaveGeneralInfo( HWFILE hFile ); BOOLEAN SaveGeneralInfo( HWFILE hFile );
@@ -1082,7 +1082,7 @@ BOOLEAN ITEM_CURSOR_SAVE_INFO::Load(HWFILE hFile)
if ( guiCurrentSaveGameVersion >= NIV_SAVEGAME_DATATYPE_CHANGE ) if ( guiCurrentSaveGameVersion >= NIV_SAVEGAME_DATATYPE_CHANGE )
{ {
//3 bytes of info, screw being neat //3 bytes of info, screw being neat
if ( !FileRead( hFile, this, 3, &uiNumBytesRead ) ) if ( !FileRead( hFile, this, SIZEOF_ITEM_CURSOR_SAVE_INFO_POD, &uiNumBytesRead ) )
{ {
return FALSE; return FALSE;
} }
@@ -1111,7 +1111,7 @@ BOOLEAN ITEM_CURSOR_SAVE_INFO::Save(HWFILE hFile)
{ {
UINT32 uiNumBytesWritten; UINT32 uiNumBytesWritten;
//3 bytes of info, screw being neat //3 bytes of info, screw being neat
if ( !FileWrite( hFile, this, 3, &uiNumBytesWritten ) ) if ( !FileWrite( hFile, this, SIZEOF_ITEM_CURSOR_SAVE_INFO_POD, &uiNumBytesWritten ) )
{ {
return FALSE; return FALSE;
} }
@@ -1859,8 +1859,20 @@ BOOLEAN SOLDIERTYPE::Load(HWFILE hFile)
//the soldier type info has changed at version 102 //the soldier type info has changed at version 102
//CHRISL: To accomodate future changes to this structure, we'll load each value field by field //CHRISL: To accomodate future changes to this structure, we'll load each value field by field
numBytesRead = 0; numBytesRead = 0;
FileRead( hFile, this, (offsetof(SOLDIERTYPE, ubBodyType)+sizeof(ubBodyType)), &uiNumBytesRead ); if (guiCurrentSaveGameVersion >= INCREASED_TEAMSIZES)
numBytesRead += uiNumBytesRead; {
numBytesRead = ReadFieldByField(hFile, &this->ubID, sizeof(ubID), sizeof(UINT16), numBytesRead);
}
else
{
numBytesRead = ReadFieldByField(hFile, &this->ubID, sizeof(ubID), sizeof(UINT8), numBytesRead);
// Read and discard bReserved1 so numBytesRead matches the struct size later
UINT8 bReserved1 = 0;
numBytesRead = ReadFieldByField(hFile, &bReserved1, sizeof(bReserved1), sizeof(UINT8), numBytesRead);
}
numBytesRead = ReadFieldByField(hFile, &this->name, sizeof(name), sizeof(CHAR16), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->ubBodyType, sizeof(ubBodyType), sizeof(UINT8), numBytesRead);
if(guiCurrentSaveGameVersion >= AP100_SAVEGAME_DATATYPE_CHANGE) if(guiCurrentSaveGameVersion >= AP100_SAVEGAME_DATATYPE_CHANGE)
{ //CHRISL: It was changed at version 104 to allow for 16bit action points for the 100AP system { //CHRISL: It was changed at version 104 to allow for 16bit action points for the 100AP system
numBytesRead = ReadFieldByField(hFile, &this->bActionPoints, sizeof(bActionPoints), sizeof(INT16), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->bActionPoints, sizeof(bActionPoints), sizeof(INT16), numBytesRead);
@@ -1888,7 +1900,7 @@ BOOLEAN SOLDIERTYPE::Load(HWFILE hFile)
numBytesRead = ReadFieldByField(hFile, &this->ubWaitActionToDo, sizeof(ubWaitActionToDo), sizeof(UINT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->ubWaitActionToDo, sizeof(ubWaitActionToDo), sizeof(UINT8), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->ubInsertionDirection, sizeof(ubInsertionDirection), sizeof(INT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->ubInsertionDirection, sizeof(ubInsertionDirection), sizeof(INT8), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->bGunType, sizeof(bGunType), sizeof(INT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->bGunType, sizeof(bGunType), sizeof(INT8), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->ubOppNum, sizeof(ubOppNum), sizeof(UINT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->ubOppNum, sizeof(ubOppNum), sizeof(UINT16), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->bLastRenderVisibleValue, sizeof(bLastRenderVisibleValue), sizeof(INT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->bLastRenderVisibleValue, sizeof(bLastRenderVisibleValue), sizeof(INT8), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->ubAttackingHand, sizeof(ubAttackingHand), sizeof(UINT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->ubAttackingHand, sizeof(ubAttackingHand), sizeof(UINT8), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->sWeightCarriedAtTurnStart, sizeof(sWeightCarriedAtTurnStart), sizeof(INT16), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->sWeightCarriedAtTurnStart, sizeof(sWeightCarriedAtTurnStart), sizeof(INT16), numBytesRead);
@@ -1932,8 +1944,8 @@ BOOLEAN SOLDIERTYPE::Load(HWFILE hFile)
numBytesRead = ReadFieldByField(hFile, &this->usAnimState, sizeof(usAnimState), sizeof(UINT16), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->usAnimState, sizeof(usAnimState), sizeof(UINT16), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->uiAIDelay, sizeof(uiAIDelay), sizeof(UINT32), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->uiAIDelay, sizeof(uiAIDelay), sizeof(UINT32), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->sReloadDelay, sizeof(sReloadDelay), sizeof(INT16), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->sReloadDelay, sizeof(sReloadDelay), sizeof(INT16), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->ubAttackerID, sizeof(ubAttackerID), sizeof(UINT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->ubAttackerID, sizeof(ubAttackerID), sizeof(UINT16), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->ubPreviousAttackerID, sizeof(ubPreviousAttackerID), sizeof(UINT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->ubPreviousAttackerID, sizeof(ubPreviousAttackerID), sizeof(UINT16), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->sInsertionGridNo, sizeof(sInsertionGridNo), sizeof(INT32), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->sInsertionGridNo, sizeof(sInsertionGridNo), sizeof(INT32), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->AnimCache, sizeof(AnimCache), 1, numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->AnimCache, sizeof(AnimCache), 1, numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->bSide, sizeof(bSide), sizeof(UINT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->bSide, sizeof(bSide), sizeof(UINT8), numBytesRead);
@@ -2013,7 +2025,7 @@ BOOLEAN SOLDIERTYPE::Load(HWFILE hFile)
numBytesRead = ReadFieldByField(hFile, &this->pCurrentShade, sizeof(pCurrentShade), sizeof(UINT16), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->pCurrentShade, sizeof(pCurrentShade), sizeof(UINT16), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->ubFadeLevel, sizeof(ubFadeLevel), sizeof(UINT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->ubFadeLevel, sizeof(ubFadeLevel), sizeof(UINT8), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->ubServiceCount, sizeof(ubServiceCount), sizeof(UINT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->ubServiceCount, sizeof(ubServiceCount), sizeof(UINT8), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->ubServicePartner, sizeof(ubServicePartner), sizeof(UINT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->ubServicePartner, sizeof(ubServicePartner), sizeof(UINT16), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->pThrowParams, sizeof(pThrowParams), 4, numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->pThrowParams, sizeof(pThrowParams), 4, numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->bReverse, sizeof(bReverse), sizeof(INT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->bReverse, sizeof(bReverse), sizeof(INT8), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->pLevelNode, sizeof(pLevelNode), 4, numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->pLevelNode, sizeof(pLevelNode), 4, numBytesRead);
@@ -2111,7 +2123,7 @@ BOOLEAN SOLDIERTYPE::Load(HWFILE hFile)
numBytesRead = ReadFieldByField(hFile, &this->iTotalLengthOfInsuranceContract, sizeof(iTotalLengthOfInsuranceContract), sizeof(INT32), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->iTotalLengthOfInsuranceContract, sizeof(iTotalLengthOfInsuranceContract), sizeof(INT32), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->ubSoldierClass, sizeof(ubSoldierClass), sizeof(UINT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->ubSoldierClass, sizeof(ubSoldierClass), sizeof(UINT8), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->ubAPsLostToSuppression, sizeof(ubAPsLostToSuppression), sizeof(UINT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->ubAPsLostToSuppression, sizeof(ubAPsLostToSuppression), sizeof(UINT8), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->ubSuppressorID, sizeof(ubSuppressorID), sizeof(UINT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->ubSuppressorID, sizeof(ubSuppressorID), sizeof(UINT16), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->ubDesiredSquadAssignment, sizeof(ubDesiredSquadAssignment), sizeof(UINT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->ubDesiredSquadAssignment, sizeof(ubDesiredSquadAssignment), sizeof(UINT8), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->ubNumTraversalsAllowedToMerge, sizeof(ubNumTraversalsAllowedToMerge), sizeof(UINT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->ubNumTraversalsAllowedToMerge, sizeof(ubNumTraversalsAllowedToMerge), sizeof(UINT8), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->usPendingAnimation2, sizeof(usPendingAnimation2), sizeof(UINT16), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->usPendingAnimation2, sizeof(usPendingAnimation2), sizeof(UINT16), numBytesRead);
@@ -2123,7 +2135,7 @@ BOOLEAN SOLDIERTYPE::Load(HWFILE hFile)
numBytesRead = ReadFieldByField(hFile, &this->bBlockedByAnotherMercDirection, sizeof(bBlockedByAnotherMercDirection), sizeof(INT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->bBlockedByAnotherMercDirection, sizeof(bBlockedByAnotherMercDirection), sizeof(INT8), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->usAttackingWeapon, sizeof(usAttackingWeapon), sizeof(UINT16), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->usAttackingWeapon, sizeof(usAttackingWeapon), sizeof(UINT16), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->bWeaponMode, sizeof(bWeaponMode), sizeof(INT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->bWeaponMode, sizeof(bWeaponMode), sizeof(INT8), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->ubTargetID, sizeof(ubTargetID), sizeof(UINT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->ubTargetID, sizeof(ubTargetID), sizeof(UINT16), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->bAIScheduleProgress, sizeof(bAIScheduleProgress), sizeof(INT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->bAIScheduleProgress, sizeof(bAIScheduleProgress), sizeof(INT8), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->sOffWorldGridNo, sizeof(sOffWorldGridNo), sizeof(INT32), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->sOffWorldGridNo, sizeof(sOffWorldGridNo), sizeof(INT32), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->pAniTile, sizeof(pAniTile), 1, numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->pAniTile, sizeof(pAniTile), 1, numBytesRead);
@@ -2144,8 +2156,8 @@ BOOLEAN SOLDIERTYPE::Load(HWFILE hFile)
numBytesRead = ReadFieldByField(hFile, &this->bOldBattleSnd, sizeof(bOldBattleSnd), sizeof(INT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->bOldBattleSnd, sizeof(bOldBattleSnd), sizeof(INT8), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->iBurstSoundID, sizeof(iBurstSoundID), sizeof(INT32), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->iBurstSoundID, sizeof(iBurstSoundID), sizeof(INT32), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->bSlotItemTakenFrom, sizeof(bSlotItemTakenFrom), sizeof(INT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->bSlotItemTakenFrom, sizeof(bSlotItemTakenFrom), sizeof(INT8), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->ubAutoBandagingMedic, sizeof(ubAutoBandagingMedic), sizeof(UINT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->ubAutoBandagingMedic, sizeof(ubAutoBandagingMedic), sizeof(UINT16), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->ubRobotRemoteHolderID, sizeof(ubRobotRemoteHolderID), sizeof(UINT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->ubRobotRemoteHolderID, sizeof(ubRobotRemoteHolderID), sizeof(UINT16), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->uiTimeOfLastContractUpdate, sizeof(uiTimeOfLastContractUpdate), sizeof(UINT32), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->uiTimeOfLastContractUpdate, sizeof(uiTimeOfLastContractUpdate), sizeof(UINT32), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->bTypeOfLastContract, sizeof(bTypeOfLastContract), sizeof(INT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->bTypeOfLastContract, sizeof(bTypeOfLastContract), sizeof(INT8), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->bTurnsCollapsed, sizeof(bTurnsCollapsed), sizeof(INT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->bTurnsCollapsed, sizeof(bTurnsCollapsed), sizeof(INT8), numBytesRead);
@@ -2164,7 +2176,7 @@ BOOLEAN SOLDIERTYPE::Load(HWFILE hFile)
numBytesRead = ReadFieldByField(hFile, &this->bRegenBoostersUsedToday, sizeof(bRegenBoostersUsedToday), sizeof(INT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->bRegenBoostersUsedToday, sizeof(bRegenBoostersUsedToday), sizeof(INT8), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->bNumPelletsHitBy, sizeof(bNumPelletsHitBy), sizeof(INT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->bNumPelletsHitBy, sizeof(bNumPelletsHitBy), sizeof(INT8), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->sSkillCheckGridNo, sizeof(sSkillCheckGridNo), sizeof(INT32), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->sSkillCheckGridNo, sizeof(sSkillCheckGridNo), sizeof(INT32), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->ubLastEnemyCycledID, sizeof(ubLastEnemyCycledID), sizeof(UINT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->ubLastEnemyCycledID, sizeof(ubLastEnemyCycledID), sizeof(UINT16), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->ubPrevSectorID, sizeof(ubPrevSectorID), sizeof(UINT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->ubPrevSectorID, sizeof(ubPrevSectorID), sizeof(UINT8), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->ubNumTilesMovesSinceLastForget, sizeof(ubNumTilesMovesSinceLastForget), sizeof(UINT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->ubNumTilesMovesSinceLastForget, sizeof(ubNumTilesMovesSinceLastForget), sizeof(UINT8), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->bTurningIncrement, sizeof(bTurningIncrement), sizeof(INT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->bTurningIncrement, sizeof(bTurningIncrement), sizeof(INT8), numBytesRead);
@@ -2172,7 +2184,7 @@ BOOLEAN SOLDIERTYPE::Load(HWFILE hFile)
numBytesRead = ReadFieldByField(hFile, &this->usValueGoneUp, sizeof(usValueGoneUp), sizeof(UINT16), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->usValueGoneUp, sizeof(usValueGoneUp), sizeof(UINT16), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->ubNumLocateCycles, sizeof(ubNumLocateCycles), sizeof(UINT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->ubNumLocateCycles, sizeof(ubNumLocateCycles), sizeof(UINT8), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->ubDelayedMovementFlags, sizeof(ubDelayedMovementFlags), sizeof(UINT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->ubDelayedMovementFlags, sizeof(ubDelayedMovementFlags), sizeof(UINT8), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->ubCTGTTargetID, sizeof(ubCTGTTargetID), sizeof(UINT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->ubCTGTTargetID, sizeof(ubCTGTTargetID), sizeof(UINT16), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->uiMercChecksum, sizeof(uiMercChecksum), sizeof(UINT32), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->uiMercChecksum, sizeof(uiMercChecksum), sizeof(UINT32), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->bCurrentCivQuote, sizeof(bCurrentCivQuote), sizeof(INT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->bCurrentCivQuote, sizeof(bCurrentCivQuote), sizeof(INT8), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->bCurrentCivQuoteDelta, sizeof(bCurrentCivQuoteDelta), sizeof(INT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->bCurrentCivQuoteDelta, sizeof(bCurrentCivQuoteDelta), sizeof(INT8), numBytesRead);
@@ -2203,7 +2215,7 @@ BOOLEAN SOLDIERTYPE::Load(HWFILE hFile)
numBytesRead = ReadFieldByField(hFile, &this->ubLastDamageReason, sizeof(ubLastDamageReason), sizeof(UINT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->ubLastDamageReason, sizeof(ubLastDamageReason), sizeof(UINT8), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->sLastTwoLocations, sizeof(sLastTwoLocations), sizeof(INT32), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->sLastTwoLocations, sizeof(sLastTwoLocations), sizeof(INT32), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->uiTimeSinceLastBleedGrunt, sizeof(uiTimeSinceLastBleedGrunt), sizeof(INT32), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->uiTimeSinceLastBleedGrunt, sizeof(uiTimeSinceLastBleedGrunt), sizeof(INT32), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->ubNextToPreviousAttackerID, sizeof(ubNextToPreviousAttackerID), sizeof(UINT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->ubNextToPreviousAttackerID, sizeof(ubNextToPreviousAttackerID), sizeof(UINT16), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->bDoAutofire, sizeof(bDoAutofire), sizeof(UINT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->bDoAutofire, sizeof(bDoAutofire), sizeof(UINT8), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->numFlanks, sizeof(numFlanks), sizeof(INT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->numFlanks, sizeof(numFlanks), sizeof(INT8), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->lastFlankSpot, sizeof(lastFlankSpot), sizeof(INT32), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->lastFlankSpot, sizeof(lastFlankSpot), sizeof(INT32), numBytesRead);
@@ -2230,9 +2242,7 @@ BOOLEAN SOLDIERTYPE::Load(HWFILE hFile)
numBytesRead = ReadFieldByField(hFile, &this->bScopeMode, sizeof(bScopeMode), sizeof(INT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->bScopeMode, sizeof(bScopeMode), sizeof(INT8), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->ubMilitiaAssists, sizeof(ubMilitiaAssists), sizeof(UINT8), numBytesRead ); numBytesRead = ReadFieldByField(hFile, &this->ubMilitiaAssists, sizeof(ubMilitiaAssists), sizeof(UINT8), numBytesRead );
numBytesRead = ReadFieldByField(hFile, &this->sNonNPCTraderID, sizeof(sNonNPCTraderID), sizeof(INT8), numBytesRead ); numBytesRead = ReadFieldByField(hFile, &this->sNonNPCTraderID, sizeof(sNonNPCTraderID), sizeof(INT8), numBytesRead );
//numBytesRead = ReadFieldByField(hFile, &this->bUnusedINT8_3, sizeof(bUnusedINT8_3), sizeof(INT8), numBytesRead ); numBytesRead = ReadFieldByField(hFile, &this->usDragPersonID, sizeof(usDragPersonID), sizeof(UINT16), numBytesRead );
numBytesRead = ReadFieldByField(hFile, &this->usDragPersonID, sizeof(usDragPersonID), sizeof(UINT8), numBytesRead );
//numBytesRead = ReadFieldByField(hFile, &this->bUnusedINT16_4, sizeof(bUnusedINT16_4), sizeof(INT16), numBytesRead );
numBytesRead = ReadFieldByField(hFile, &this->sDragCorpseID, sizeof(sDragCorpseID), sizeof(INT16), numBytesRead ); numBytesRead = ReadFieldByField(hFile, &this->sDragCorpseID, sizeof(sDragCorpseID), sizeof(INT16), numBytesRead );
if ( guiCurrentSaveGameVersion < DRAGPERSONS ) if ( guiCurrentSaveGameVersion < DRAGPERSONS )
@@ -2351,10 +2361,10 @@ BOOLEAN SOLDIERTYPE::Load(HWFILE hFile)
if ( guiCurrentSaveGameVersion >= DISEASE_SYSTEM ) if ( guiCurrentSaveGameVersion >= DISEASE_SYSTEM )
{ {
numBytesRead = ReadFieldByField( hFile, &this->sDiseasePoints, sizeof(sDiseasePoints), sizeof(INT32), numBytesRead ); numBytesRead = ReadFieldByField( hFile, &this->sDiseasePoints, sizeof(sDiseasePoints), sizeof(INT16), numBytesRead );
numBytesRead = ReadFieldByField( hFile, &this->sDiseaseFlag, sizeof(sDiseaseFlag), sizeof(UINT8), numBytesRead ); numBytesRead = ReadFieldByField( hFile, &this->sDiseaseFlag, sizeof(sDiseaseFlag), sizeof(UINT8), numBytesRead );
numBytesRead = ReadFieldByField( hFile, &this->ubFiller, sizeof( ubFiller ), sizeof( UINT8 ), numBytesRead ); numBytesRead = ReadFieldByField( hFile, &this->ubFiller, sizeof( ubFiller ), sizeof( UINT8 ), numBytesRead );
numBytesRead = ReadFieldByField( hFile, &this->ubHoursRemainingOnMiniEvent, sizeof( ubHoursRemainingOnMiniEvent), sizeof( UINT8 ), numBytesRead ); numBytesRead = ReadFieldByField( hFile, &this->ubHoursRemainingOnMiniEvent, sizeof( ubHoursRemainingOnMiniEvent), sizeof( UINT16 ), numBytesRead );
numBytesRead = ReadFieldByField( hFile, &this->usGLDelayMode, sizeof( usGLDelayMode ), sizeof( UINT8 ), numBytesRead ); numBytesRead = ReadFieldByField( hFile, &this->usGLDelayMode, sizeof( usGLDelayMode ), sizeof( UINT8 ), numBytesRead );
numBytesRead = ReadFieldByField( hFile, &this->usBarrelMode, sizeof( usBarrelMode ), sizeof( UINT8 ), numBytesRead ); numBytesRead = ReadFieldByField( hFile, &this->usBarrelMode, sizeof( usBarrelMode ), sizeof( UINT8 ), numBytesRead );
numBytesRead = ReadFieldByField( hFile, &this->usBarrelCounter, sizeof( usBarrelCounter ), sizeof( UINT8 ), numBytesRead ); numBytesRead = ReadFieldByField( hFile, &this->usBarrelCounter, sizeof( usBarrelCounter ), sizeof( UINT8 ), numBytesRead );
@@ -2486,140 +2496,6 @@ BOOLEAN SOLDIERTYPE::Load(HWFILE hFile)
buffer++; buffer++;
} }
/*if ( guiCurrentSaveGameVersion >= FOOD_CHANGES )
{
numBytesRead = ReadFieldByField(hFile, &this->bFoodLevel, sizeof(bFoodLevel), sizeof(INT32), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->bDrinkLevel, sizeof(bDrinkLevel), sizeof(INT32), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->usStarveDamageHealth, sizeof(usStarveDamageHealth), sizeof(UINT8), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->usStarveDamageStrength, sizeof(usStarveDamageStrength), sizeof(UINT8), numBytesRead);
if ( guiCurrentSaveGameVersion >= MULTITURN_ACTIONS )
{
numBytesRead = ReadFieldByField(hFile, &this->bOverTurnAPS, sizeof(bOverTurnAPS), sizeof(INT16), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->sMTActionGridNo, sizeof(sMTActionGridNo), sizeof(INT32), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->usMultiTurnAction, sizeof(usMultiTurnAction), sizeof(UINT8), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->bAIIndex, sizeof(bAIIndex), sizeof(UINT16), numBytesRead);
if ( guiCurrentSaveGameVersion >= SOLDIER_PROFILES )
{
numBytesRead = ReadFieldByField(hFile, &this->usSoldierProfile, sizeof(usSoldierProfile), sizeof(UINT16), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->usItemMoveSectorID, sizeof(usItemMoveSectorID), sizeof(UINT8), numBytesRead);
if ( guiCurrentSaveGameVersion >= SOLDIER_PROFILES )
{
numBytesRead = ReadFieldByField(hFile, &this->usSkillCounter, sizeof(usSkillCounter), sizeof(UINT16), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->usSkillCooldown, sizeof(usSkillCooldown), sizeof(UINT32), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->usAISkillUse, sizeof(usAISkillUse), sizeof(UINT8), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->ubFiller, sizeof(ubFiller), sizeof(UINT8), numBytesRead);
}
else
{
for(UINT8 i = 0; i < SOLDIER_COUNTER_MAX; ++i)
this->usSkillCounter[i] = 0;
for(UINT8 i = 0; i < SOLDIER_COOLDOWN_MAX; ++i)
this->usSkillCooldown[i] = 0;
this->usAISkillUse = 0;
// as we added new variables, fillersize was reduced, here we account for that. We have to also read the existing fillers that now do not exist anymore
const UINT8 tmp = sizeof(usSkillCounter) + sizeof(usSkillCooldown) + sizeof(usAISkillUse);
UINT8 blarg[tmp];
numBytesRead = ReadFieldByField(hFile, &blarg, tmp, sizeof(UINT8), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->ubFiller, sizeof(ubFiller), sizeof(UINT8), numBytesRead);
}
}
else
{
this->usSoldierProfile = 0;
this->usItemMoveSectorID = 0;
// as we added new variables, fillersize was reduced, here we account for that. We have to also read the existing fillers that now do not exist anymore
const UINT8 tmp = sizeof(usSoldierProfile) + sizeof(usItemMoveSectorID);
UINT8 blarg[tmp];
numBytesRead = ReadFieldByField(hFile, &blarg, tmp, sizeof(UINT8), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->ubFiller, sizeof(ubFiller), sizeof(UINT8), numBytesRead);
}
}
else
{
this->bOverTurnAPS = 0;
this->sMTActionGridNo = NOWHERE;
this->usMultiTurnAction = 0;
this->bAIIndex = 0;
this->usSoldierProfile = 0;
this->usItemMoveSectorID = 0;
// as we added new variables, fillersize was reduced, here we account for that. We have to also read the existing fillers that now do not exist anymore
// +1 for padding
const UINT8 tmp = sizeof(bOverTurnAPS) + sizeof(this->sMTActionGridNo) + sizeof(usMultiTurnAction) + sizeof(bAIIndex) + 1 + sizeof(usSoldierProfile) + sizeof(usItemMoveSectorID);
UINT8 blarg[tmp];
numBytesRead = ReadFieldByField(hFile, &blarg, tmp, sizeof(UINT8), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->ubFiller, sizeof(ubFiller), sizeof(UINT8), numBytesRead);
}
}
else
{
//CHRISL: We have to make sure we add a buffer to account for the lack of ubInterruptCounter and that buffer needs to be a full DWORD in size
for(int i = 0; i < sizeof(bFoodLevel); ++i)
buffer++;
while((buffer%4) > 0)
buffer++;
for(int i = 0; i < sizeof(bDrinkLevel); ++i)
buffer++;
while((buffer%4) > 0)
buffer++;
for(int i = 0; i < sizeof(usStarveDamageHealth); ++i)
buffer++;
while((buffer%4) > 0)
buffer++;
for(int i = 0; i < sizeof(usStarveDamageStrength); ++i)
buffer++;
while((buffer%4) > 0)
buffer++;
for(int i = 0; i < sizeof(bOverTurnAPS); ++i)
buffer++;
while((buffer%4) > 0)
buffer++;
for(int i = 0; i < sizeof(sMTActionGridNo); ++i)
buffer++;
while((buffer%4) > 0)
buffer++;
for(int i = 0; i < sizeof(usMultiTurnAction); ++i)
buffer++;
while((buffer%4) > 0)
buffer++;
for(int i = 0; i < sizeof(bAIIndex); ++i)
buffer++;
while((buffer%4) > 0)
buffer++;
for(int i = 0; i < sizeof(usSoldierProfile); ++i)
buffer++;
while((buffer%4) > 0)
buffer++;
for(int i = 0; i < sizeof(usItemMoveSectorID); ++i)
buffer++;
while((buffer%4) > 0)
buffer++;
for(int i = 0; i < sizeof(ubFiller); ++i)
buffer++;
while((buffer%4) > 0)
buffer++;
}*/
#ifdef JA2UB #ifdef JA2UB
numBytesRead = ReadFieldByField(hFile, &this->fIgnoreGetupFromCollapseCheck, sizeof(fIgnoreGetupFromCollapseCheck), sizeof(BOOLEAN), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->fIgnoreGetupFromCollapseCheck, sizeof(fIgnoreGetupFromCollapseCheck), sizeof(BOOLEAN), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->GetupFromJA25StartCounter, sizeof(GetupFromJA25StartCounter), sizeof(TIMECOUNTER), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->GetupFromJA25StartCounter, sizeof(GetupFromJA25StartCounter), sizeof(TIMECOUNTER), numBytesRead);
@@ -2627,38 +2503,9 @@ BOOLEAN SOLDIERTYPE::Load(HWFILE hFile)
numBytesRead = ReadFieldByField(hFile, &this->ubPercentDamageInflictedByTeam, sizeof(ubPercentDamageInflictedByTeam), sizeof(UINT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->ubPercentDamageInflictedByTeam, sizeof(ubPercentDamageInflictedByTeam), sizeof(UINT8), numBytesRead);
#endif #endif
numBytesRead += buffer; numBytesRead += buffer;
if(numBytesRead != SIZEOF_SOLDIERTYPE_POD) const UINT32 PODsize = SIZEOF_SOLDIERTYPE_POD;
if(numBytesRead != PODsize)
return(FALSE); return(FALSE);
/* //CHRISL: It was further changed at version 104 to allow for 16bit action points for the 100AP system
//first, load the POD
if ( guiCurrentSaveGameVersion >= AP100_SAVEGAME_DATATYPE_CHANGE )
{
if ( !FileRead( hFile, this, SIZEOF_SOLDIERTYPE_POD, &uiNumBytesRead ) )
{
return(FALSE);
}
}
else
{
numBytesRead = 0;
FileRead( hFile, this, (offsetof(SOLDIERTYPE, ubBodyType)+sizeof(ubBodyType)), &uiNumBytesRead );
numBytesRead += uiNumBytesRead;
numBytesRead = ReadFieldByField(hFile, &this->bActionPoints, 1, 1, numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->bInitialActionPoints, 1, 1, numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->bOldLife, sizeof(bOldLife), sizeof(INT8), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->bVisible, sizeof(bVisible), sizeof(INT8), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->bActive, sizeof(bActive), sizeof(INT8), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->bTeam, sizeof(bTeam), sizeof(INT8), numBytesRead);
//CHRISL: in the old structure, there are 3 padding bytes at this point in the file. We need to account for
// them before continuing. We also want to include them in our numBytesRead since they cover the changes
// caused by increasing two elements by 1byte each. This includes shifting one byte of padding
FileRead( hFile, padding, 3, &uiNumBytesRead );
numBytesRead += uiNumBytesRead;
FileRead( hFile, &this->pTempObject, (SIZEOF_SOLDIERTYPE_POD-numBytesRead), &uiNumBytesRead );
numBytesRead += uiNumBytesRead;
if(numBytesRead != SIZEOF_SOLDIERTYPE_POD)
return(FALSE);
}*/
//load the OO inventory //load the OO inventory
if ( !this->inv.Load(hFile) ) if ( !this->inv.Load(hFile) )
@@ -2696,7 +2543,7 @@ BOOLEAN SOLDIERTYPE::Load(HWFILE hFile)
numBytesRead = ReadFieldByField(hFile, &this->aiData.sNoiseGridno, sizeof(aiData.sNoiseGridno), sizeof(INT32), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->aiData.sNoiseGridno, sizeof(aiData.sNoiseGridno), sizeof(INT32), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->aiData.ubNoiseVolume, sizeof(aiData.ubNoiseVolume), sizeof(UINT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->aiData.ubNoiseVolume, sizeof(aiData.ubNoiseVolume), sizeof(UINT8), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->aiData.bLastAttackHit, sizeof(aiData.bLastAttackHit), sizeof(INT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->aiData.bLastAttackHit, sizeof(aiData.bLastAttackHit), sizeof(INT8), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->aiData.ubXRayedBy, sizeof(aiData.ubXRayedBy), sizeof(UINT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->aiData.ubXRayedBy, sizeof(aiData.ubXRayedBy), sizeof(UINT16), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->aiData.dHeightAdjustment, sizeof(aiData.dHeightAdjustment), sizeof(FLOAT), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->aiData.dHeightAdjustment, sizeof(aiData.dHeightAdjustment), sizeof(FLOAT), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->aiData.bMorale, sizeof(aiData.bMorale), sizeof(INT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->aiData.bMorale, sizeof(aiData.bMorale), sizeof(INT8), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->aiData.bTeamMoraleMod, sizeof(aiData.bTeamMoraleMod), sizeof(INT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->aiData.bTeamMoraleMod, sizeof(aiData.bTeamMoraleMod), sizeof(INT8), numBytesRead);
@@ -2719,7 +2566,7 @@ BOOLEAN SOLDIERTYPE::Load(HWFILE hFile)
numBytesRead = ReadFieldByField(hFile, &this->aiData.bMoved, sizeof(aiData.bMoved), sizeof(INT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->aiData.bMoved, sizeof(aiData.bMoved), sizeof(INT8), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->aiData.bHunting, sizeof(aiData.bHunting), sizeof(INT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->aiData.bHunting, sizeof(aiData.bHunting), sizeof(INT8), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->aiData.ubLastCall, sizeof(aiData.ubLastCall), sizeof(UINT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->aiData.ubLastCall, sizeof(aiData.ubLastCall), sizeof(UINT8), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->aiData.ubCaller, sizeof(aiData.ubCaller), sizeof(UINT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->aiData.ubCaller, sizeof(aiData.ubCaller), sizeof(UINT16), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->aiData.sCallerGridNo, sizeof(aiData.sCallerGridNo), sizeof(INT32), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->aiData.sCallerGridNo, sizeof(aiData.sCallerGridNo), sizeof(INT32), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->aiData.bCallPriority, sizeof(aiData.bCallPriority), sizeof(UINT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->aiData.bCallPriority, sizeof(aiData.bCallPriority), sizeof(UINT8), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &this->aiData.bCallActedUpon, sizeof(aiData.bCallActedUpon), sizeof(INT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &this->aiData.bCallActedUpon, sizeof(aiData.bCallActedUpon), sizeof(INT8), numBytesRead);
@@ -2951,9 +2798,14 @@ BOOLEAN WORLDITEM::Load(INT8** hBuffer, float dMajorMapVersion, UINT8 ubMinorMap
LOADDATA(&oldWorldItem, *hBuffer, _OLD_SIZEOF_WORLDITEM_POD); LOADDATA(&oldWorldItem, *hBuffer, _OLD_SIZEOF_WORLDITEM_POD);
*this = oldWorldItem; *this = oldWorldItem;
} }
else if (dMajorMapVersion < 8.0)
{
LOADDATA(this, *hBuffer, _SIZEOF_WORLDITEM_INT8_ID_POD);
}
else else
{
LOADDATA(this, *hBuffer, SIZEOF_WORLDITEM_POD); LOADDATA(this, *hBuffer, SIZEOF_WORLDITEM_POD);
}
// Load the OO OBJECTTYPE // Load the OO OBJECTTYPE
this->object.Load(hBuffer, dMajorMapVersion, ubMinorMapVersion); this->object.Load(hBuffer, dMajorMapVersion, ubMinorMapVersion);
} }
@@ -6675,7 +6527,7 @@ BOOLEAN LoadSavedGame( int ubSavedGameID )
if( gTacticalStatus.ubAttackBusyCount > 1 ) if( gTacticalStatus.ubAttackBusyCount > 1 )
{ {
//Lock the ui //Lock the ui
SetUIBusy( (UINT8)gusSelectedSoldier ); SetUIBusy( gusSelectedSoldier );
} }
// OJW - 20090403 - Fix Tactical Interface is still locked after quick-load // OJW - 20090403 - Fix Tactical Interface is still locked after quick-load
else else
@@ -6920,7 +6772,7 @@ BOOLEAN LoadSavedGame( int ubSavedGameID )
// player team character fixes // player team character fixes
SOLDIERTYPE *pTeamSoldier; SOLDIERTYPE *pTeamSoldier;
for (INT8 bLoop=gTacticalStatus.Team[gbPlayerNum].bFirstID; bLoop <= gTacticalStatus.Team[gbPlayerNum].bLastID; bLoop++) for (UINT16 bLoop=gTacticalStatus.Team[gbPlayerNum].bFirstID; bLoop <= gTacticalStatus.Team[gbPlayerNum].bLastID; bLoop++)
{ {
pTeamSoldier=MercPtrs[bLoop]; pTeamSoldier=MercPtrs[bLoop];
@@ -7130,7 +6982,7 @@ BOOLEAN LoadSoldierStructure( HWFILE hFile )
{ {
UINT16 cnt; UINT16 cnt;
UINT32 uiNumBytesRead=0; UINT32 uiNumBytesRead=0;
UINT8 ubId; UINT16 ubId;
UINT8 ubOne = 1; UINT8 ubOne = 1;
UINT8 ubActive = 1; UINT8 ubActive = 1;
UINT32 uiPercentage; UINT32 uiPercentage;
@@ -7868,8 +7720,8 @@ BOOLEAN LoadTacticalStatusFromSavedGame( HWFILE hFile )
numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.fPanicFlags, sizeof(gTacticalStatus.fPanicFlags), sizeof(INT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.fPanicFlags, sizeof(gTacticalStatus.fPanicFlags), sizeof(INT8), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.sPanicTriggerGridNoUnused, sizeof(gTacticalStatus.sPanicTriggerGridNoUnused), sizeof(INT32), numBytesRead); numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.sPanicTriggerGridNoUnused, sizeof(gTacticalStatus.sPanicTriggerGridNoUnused), sizeof(INT32), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.sHandGrid, sizeof(gTacticalStatus.sHandGrid), sizeof(INT16), numBytesRead); numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.sHandGrid, sizeof(gTacticalStatus.sHandGrid), sizeof(INT16), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.ubSpottersCalledForBy, sizeof(gTacticalStatus.ubSpottersCalledForBy), sizeof(UINT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.ubSpottersCalledForBy, sizeof(gTacticalStatus.ubSpottersCalledForBy), sizeof(UINT16), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.ubTheChosenOne, sizeof(gTacticalStatus.ubTheChosenOne), sizeof(UINT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.ubTheChosenOne, sizeof(gTacticalStatus.ubTheChosenOne), sizeof(UINT16), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.uiTimeOfLastInput, sizeof(gTacticalStatus.uiTimeOfLastInput), sizeof(UINT32), numBytesRead); numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.uiTimeOfLastInput, sizeof(gTacticalStatus.uiTimeOfLastInput), sizeof(UINT32), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.uiTimeSinceDemoOn, sizeof(gTacticalStatus.uiTimeSinceDemoOn), sizeof(UINT32), numBytesRead); numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.uiTimeSinceDemoOn, sizeof(gTacticalStatus.uiTimeSinceDemoOn), sizeof(UINT32), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.uiCountdownToRestart, sizeof(gTacticalStatus.uiCountdownToRestart), sizeof(UINT32), numBytesRead); numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.uiCountdownToRestart, sizeof(gTacticalStatus.uiCountdownToRestart), sizeof(UINT32), numBytesRead);
@@ -7888,13 +7740,13 @@ BOOLEAN LoadTacticalStatusFromSavedGame( HWFILE hFile )
numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.bRealtimeSpeed, sizeof(gTacticalStatus.bRealtimeSpeed), sizeof(INT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.bRealtimeSpeed, sizeof(gTacticalStatus.bRealtimeSpeed), sizeof(INT8), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.ubEnemyIntention, sizeof(gTacticalStatus.ubEnemyIntention), sizeof(UINT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.ubEnemyIntention, sizeof(gTacticalStatus.ubEnemyIntention), sizeof(UINT8), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.ubEnemyIntendedRetreatDirection, sizeof(gTacticalStatus.ubEnemyIntendedRetreatDirection), sizeof(UINT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.ubEnemyIntendedRetreatDirection, sizeof(gTacticalStatus.ubEnemyIntendedRetreatDirection), sizeof(UINT8), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.ubEnemySightingOnTheirTurnEnemyID, sizeof(gTacticalStatus.ubEnemySightingOnTheirTurnEnemyID), sizeof(UINT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.ubEnemySightingOnTheirTurnEnemyID, sizeof(gTacticalStatus.ubEnemySightingOnTheirTurnEnemyID), sizeof(UINT16), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.ubEnemySightingOnTheirTurnPlayerID, sizeof(gTacticalStatus.ubEnemySightingOnTheirTurnPlayerID), sizeof(UINT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.ubEnemySightingOnTheirTurnPlayerID, sizeof(gTacticalStatus.ubEnemySightingOnTheirTurnPlayerID), sizeof(UINT16), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.fEnemySightingOnTheirTurn, sizeof(gTacticalStatus.fEnemySightingOnTheirTurn), sizeof(BOOLEAN), numBytesRead); numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.fEnemySightingOnTheirTurn, sizeof(gTacticalStatus.fEnemySightingOnTheirTurn), sizeof(BOOLEAN), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.fAutoBandageMode, sizeof(gTacticalStatus.fAutoBandageMode), sizeof(BOOLEAN), numBytesRead); numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.fAutoBandageMode, sizeof(gTacticalStatus.fAutoBandageMode), sizeof(BOOLEAN), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.ubAttackBusyCount, sizeof(gTacticalStatus.ubAttackBusyCount), sizeof(UINT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.ubAttackBusyCount, sizeof(gTacticalStatus.ubAttackBusyCount), sizeof(UINT8), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.bNumEnemiesFoughtInBattleUnused, sizeof(gTacticalStatus.bNumEnemiesFoughtInBattleUnused), sizeof(INT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.bNumEnemiesFoughtInBattleUnused, sizeof(gTacticalStatus.bNumEnemiesFoughtInBattleUnused), sizeof(INT8), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.ubEngagedInConvFromActionMercID, sizeof(gTacticalStatus.ubEngagedInConvFromActionMercID), sizeof(UINT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.ubEngagedInConvFromActionMercID, sizeof(gTacticalStatus.ubEngagedInConvFromActionMercID), sizeof(UINT16), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.usTactialTurnLimitCounter, sizeof(gTacticalStatus.usTactialTurnLimitCounter), sizeof(UINT16), numBytesRead); numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.usTactialTurnLimitCounter, sizeof(gTacticalStatus.usTactialTurnLimitCounter), sizeof(UINT16), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.fInTopMessage, sizeof(gTacticalStatus.fInTopMessage), sizeof(BOOLEAN), numBytesRead); numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.fInTopMessage, sizeof(gTacticalStatus.fInTopMessage), sizeof(BOOLEAN), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.ubTopMessageType, sizeof(gTacticalStatus.ubTopMessageType), sizeof(UINT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.ubTopMessageType, sizeof(gTacticalStatus.ubTopMessageType), sizeof(UINT8), numBytesRead);
@@ -7912,7 +7764,7 @@ BOOLEAN LoadTacticalStatusFromSavedGame( HWFILE hFile )
numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.fSaidCreatureFlavourQuote, sizeof(gTacticalStatus.fSaidCreatureFlavourQuote), sizeof(BOOLEAN), numBytesRead); numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.fSaidCreatureFlavourQuote, sizeof(gTacticalStatus.fSaidCreatureFlavourQuote), sizeof(BOOLEAN), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.fHaveSeenCreature, sizeof(gTacticalStatus.fHaveSeenCreature), sizeof(BOOLEAN), numBytesRead); numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.fHaveSeenCreature, sizeof(gTacticalStatus.fHaveSeenCreature), sizeof(BOOLEAN), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.fKilledEnemyOnAttack, sizeof(gTacticalStatus.fKilledEnemyOnAttack), sizeof(BOOLEAN), numBytesRead); numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.fKilledEnemyOnAttack, sizeof(gTacticalStatus.fKilledEnemyOnAttack), sizeof(BOOLEAN), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.ubEnemyKilledOnAttack, sizeof(gTacticalStatus.ubEnemyKilledOnAttack), sizeof(UINT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.ubEnemyKilledOnAttack, sizeof(gTacticalStatus.ubEnemyKilledOnAttack), sizeof(UINT16), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.bEnemyKilledOnAttackLevel, sizeof(gTacticalStatus.bEnemyKilledOnAttackLevel), sizeof(INT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.bEnemyKilledOnAttackLevel, sizeof(gTacticalStatus.bEnemyKilledOnAttackLevel), sizeof(INT8), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.ubEnemyKilledOnAttackLocation, sizeof(gTacticalStatus.ubEnemyKilledOnAttackLocation), sizeof(UINT16), numBytesRead); numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.ubEnemyKilledOnAttackLocation, sizeof(gTacticalStatus.ubEnemyKilledOnAttackLocation), sizeof(UINT16), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.fItemsSeenOnAttack, sizeof(gTacticalStatus.fItemsSeenOnAttack), sizeof(BOOLEAN), numBytesRead); numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.fItemsSeenOnAttack, sizeof(gTacticalStatus.fItemsSeenOnAttack), sizeof(BOOLEAN), numBytesRead);
@@ -7926,7 +7778,7 @@ BOOLEAN LoadTacticalStatusFromSavedGame( HWFILE hFile )
numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.fCantGetThrough, sizeof(gTacticalStatus.fCantGetThrough), sizeof(BOOLEAN), numBytesRead); numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.fCantGetThrough, sizeof(gTacticalStatus.fCantGetThrough), sizeof(BOOLEAN), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.sCantGetThroughGridNo, sizeof(gTacticalStatus.sCantGetThroughGridNo), sizeof(INT32), numBytesRead); numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.sCantGetThroughGridNo, sizeof(gTacticalStatus.sCantGetThroughGridNo), sizeof(INT32), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.sCantGetThroughSoldierGridNo, sizeof(gTacticalStatus.sCantGetThroughSoldierGridNo), sizeof(INT32), numBytesRead); numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.sCantGetThroughSoldierGridNo, sizeof(gTacticalStatus.sCantGetThroughSoldierGridNo), sizeof(INT32), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.ubCantGetThroughID, sizeof(gTacticalStatus.ubCantGetThroughID), sizeof(UINT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.ubCantGetThroughID, sizeof(gTacticalStatus.ubCantGetThroughID), sizeof(UINT16), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.fDidGameJustStart, sizeof(gTacticalStatus.fDidGameJustStart), sizeof(BOOLEAN), numBytesRead); numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.fDidGameJustStart, sizeof(gTacticalStatus.fDidGameJustStart), sizeof(BOOLEAN), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.fStatChangeCheatOn, sizeof(gTacticalStatus.fStatChangeCheatOn), sizeof(BOOLEAN), numBytesRead); numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.fStatChangeCheatOn, sizeof(gTacticalStatus.fStatChangeCheatOn), sizeof(BOOLEAN), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.ubLastRequesterTargetID, sizeof(gTacticalStatus.ubLastRequesterTargetID), sizeof(UINT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.ubLastRequesterTargetID, sizeof(gTacticalStatus.ubLastRequesterTargetID), sizeof(UINT8), numBytesRead);
@@ -7940,7 +7792,6 @@ BOOLEAN LoadTacticalStatusFromSavedGame( HWFILE hFile )
numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.fHasAGameBeenStarted, sizeof(gTacticalStatus.fHasAGameBeenStarted), sizeof(BOOLEAN), numBytesRead); numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.fHasAGameBeenStarted, sizeof(gTacticalStatus.fHasAGameBeenStarted), sizeof(BOOLEAN), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.bConsNumTurnsWeHaventSeenButEnemyDoes, sizeof(gTacticalStatus.bConsNumTurnsWeHaventSeenButEnemyDoes), sizeof(INT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.bConsNumTurnsWeHaventSeenButEnemyDoes, sizeof(gTacticalStatus.bConsNumTurnsWeHaventSeenButEnemyDoes), sizeof(INT8), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.fSomeoneHit, sizeof(gTacticalStatus.fSomeoneHit), sizeof(BOOLEAN), numBytesRead); numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.fSomeoneHit, sizeof(gTacticalStatus.fSomeoneHit), sizeof(BOOLEAN), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.ubPaddingSmall, sizeof(gTacticalStatus.ubPaddingSmall), sizeof(UINT8), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.uiTimeSinceLastOpplistDecay, sizeof(gTacticalStatus.uiTimeSinceLastOpplistDecay), sizeof(UINT32), numBytesRead); numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.uiTimeSinceLastOpplistDecay, sizeof(gTacticalStatus.uiTimeSinceLastOpplistDecay), sizeof(UINT32), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.bMercArrivingQuoteBeingUsed, sizeof(gTacticalStatus.bMercArrivingQuoteBeingUsed), sizeof(INT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.bMercArrivingQuoteBeingUsed, sizeof(gTacticalStatus.bMercArrivingQuoteBeingUsed), sizeof(INT8), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.ubEnemyKilledOnAttackKiller, sizeof(gTacticalStatus.ubEnemyKilledOnAttackKiller), sizeof(UINT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.ubEnemyKilledOnAttackKiller, sizeof(gTacticalStatus.ubEnemyKilledOnAttackKiller), sizeof(UINT8), numBytesRead);
@@ -7958,7 +7809,7 @@ BOOLEAN LoadTacticalStatusFromSavedGame( HWFILE hFile )
numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.uiCreatureTenseQuoteLastUpdate, sizeof(gTacticalStatus.uiCreatureTenseQuoteLastUpdate), sizeof(UINT32), numBytesRead); numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.uiCreatureTenseQuoteLastUpdate, sizeof(gTacticalStatus.uiCreatureTenseQuoteLastUpdate), sizeof(UINT32), numBytesRead);
if ( guiCurrentSaveGameVersion >= BUGFIX_NPC_DATA_FOR_BIG_MAPS ) if ( guiCurrentSaveGameVersion >= BUGFIX_NPC_DATA_FOR_BIG_MAPS )
{ {
numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.ubLastRequesterSurgeryTargetID, sizeof(gTacticalStatus.ubLastRequesterSurgeryTargetID), sizeof(UINT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.ubLastRequesterSurgeryTargetID, sizeof(gTacticalStatus.ubLastRequesterSurgeryTargetID), sizeof(UINT16), numBytesRead);
if ( guiCurrentSaveGameVersion >= IMPROVED_INTERRUPT_SYSTEM ) if ( guiCurrentSaveGameVersion >= IMPROVED_INTERRUPT_SYSTEM )
{ {
numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.ubInterruptPending, sizeof(gTacticalStatus.ubInterruptPending), sizeof(UINT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &gTacticalStatus.ubInterruptPending, sizeof(gTacticalStatus.ubInterruptPending), sizeof(UINT8), numBytesRead);
@@ -8404,7 +8255,7 @@ void CreateSavedGameFileNameFromNumber( UINT8 ubSaveGameID, STR pzNewFileName )
BOOLEAN SaveMercPathFromSoldierStruct( HWFILE hFile, UINT8 ubID ) BOOLEAN SaveMercPathFromSoldierStruct( HWFILE hFile, UINT16 ubID )
{ {
UINT32 uiNumOfNodes=0; UINT32 uiNumOfNodes=0;
PathStPtr pTempPath = Menptr[ ubID ].pMercPath; PathStPtr pTempPath = Menptr[ ubID ].pMercPath;
@@ -8445,7 +8296,7 @@ BOOLEAN SaveMercPathFromSoldierStruct( HWFILE hFile, UINT8 ubID )
BOOLEAN LoadMercPathToSoldierStruct( HWFILE hFile, UINT8 ubID ) BOOLEAN LoadMercPathToSoldierStruct( HWFILE hFile, UINT16 ubID )
{ {
UINT32 uiNumOfNodes=0; UINT32 uiNumOfNodes=0;
PathStPtr pTempPath = NULL; PathStPtr pTempPath = NULL;
@@ -8728,7 +8579,7 @@ BOOLEAN SaveGeneralInfo( HWFILE hFile )
if( gpSMCurrentMerc ) if( gpSMCurrentMerc )
sGeneralInfo.ubSMCurrentMercID = gpSMCurrentMerc->ubID; sGeneralInfo.ubSMCurrentMercID = gpSMCurrentMerc->ubID;
else else
sGeneralInfo.ubSMCurrentMercID = 255; sGeneralInfo.ubSMCurrentMercID = NOBODY;
//Save the fact that it is the first time in mapscreen //Save the fact that it is the first time in mapscreen
sGeneralInfo.fFirstTimeInMapScreen = fFirstTimeInMapScreen; sGeneralInfo.fFirstTimeInMapScreen = fFirstTimeInMapScreen;
@@ -8992,7 +8843,7 @@ BOOLEAN LoadGeneralInfo( HWFILE hFile )
numBytesRead = ReadFieldByField(hFile, &sGeneralInfo.uiSeedNumber, sizeof(sGeneralInfo.uiSeedNumber), sizeof(UINT32), numBytesRead); numBytesRead = ReadFieldByField(hFile, &sGeneralInfo.uiSeedNumber, sizeof(sGeneralInfo.uiSeedNumber), sizeof(UINT32), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &sGeneralInfo.uiBaseJA2Clock, sizeof(sGeneralInfo.uiBaseJA2Clock), sizeof(UINT32), numBytesRead); numBytesRead = ReadFieldByField(hFile, &sGeneralInfo.uiBaseJA2Clock, sizeof(sGeneralInfo.uiBaseJA2Clock), sizeof(UINT32), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &sGeneralInfo.sCurInterfacePanel, sizeof(sGeneralInfo.sCurInterfacePanel), sizeof(INT16), numBytesRead); numBytesRead = ReadFieldByField(hFile, &sGeneralInfo.sCurInterfacePanel, sizeof(sGeneralInfo.sCurInterfacePanel), sizeof(INT16), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &sGeneralInfo.ubSMCurrentMercID, sizeof(sGeneralInfo.ubSMCurrentMercID), sizeof(UINT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &sGeneralInfo.ubSMCurrentMercID, sizeof(sGeneralInfo.ubSMCurrentMercID), sizeof(UINT16), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &sGeneralInfo.fFirstTimeInMapScreen, sizeof(sGeneralInfo.fFirstTimeInMapScreen), sizeof(BOOLEAN), numBytesRead); numBytesRead = ReadFieldByField(hFile, &sGeneralInfo.fFirstTimeInMapScreen, sizeof(sGeneralInfo.fFirstTimeInMapScreen), sizeof(BOOLEAN), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &sGeneralInfo.fDisableDueToBattleRoster, sizeof(sGeneralInfo.fDisableDueToBattleRoster), sizeof(BOOLEAN), numBytesRead); numBytesRead = ReadFieldByField(hFile, &sGeneralInfo.fDisableDueToBattleRoster, sizeof(sGeneralInfo.fDisableDueToBattleRoster), sizeof(BOOLEAN), numBytesRead);
numBytesRead = ReadFieldByField(hFile, &sGeneralInfo.fDisableMapInterfaceDueToBattle, sizeof(sGeneralInfo.fDisableMapInterfaceDueToBattle), sizeof(BOOLEAN), numBytesRead); numBytesRead = ReadFieldByField(hFile, &sGeneralInfo.fDisableMapInterfaceDueToBattle, sizeof(sGeneralInfo.fDisableMapInterfaceDueToBattle), sizeof(BOOLEAN), numBytesRead);
@@ -9268,7 +9119,7 @@ BOOLEAN LoadGeneralInfo( HWFILE hFile )
// Restore the selected merc // Restore the selected merc
if( sGeneralInfo.ubSMCurrentMercID == 255 ) if( sGeneralInfo.ubSMCurrentMercID == NOBODY)
gpSMCurrentMerc = NULL; gpSMCurrentMerc = NULL;
else else
gpSMCurrentMerc = &Menptr[ sGeneralInfo.ubSMCurrentMercID ]; gpSMCurrentMerc = &Menptr[ sGeneralInfo.ubSMCurrentMercID ];
@@ -9729,10 +9580,10 @@ void GetBestPossibleSectorXYZValues( INT16 *psSectorX, INT16 *psSectorY, INT8 *p
} }
else else
{ {
INT16 sSoldierCnt; UINT16 sSoldierCnt;
SOLDIERTYPE *pSoldier; SOLDIERTYPE *pSoldier;
INT16 bLastTeamID; UINT16 bLastTeamID;
BOOLEAN fFoundAMerc=FALSE; BOOLEAN fFoundAMerc=FALSE;
// Set locator to first merc // Set locator to first merc
sSoldierCnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; sSoldierCnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID;
+2 -3
View File
@@ -57,7 +57,7 @@ typedef struct
INT16 sSectorX; INT16 sSectorX;
INT16 sSectorY; INT16 sSectorY;
INT8 bSectorZ; INT8 bSectorZ;
UINT8 ubNumOfMercsOnPlayersTeam; UINT16 ubNumOfMercsOnPlayersTeam;
INT32 iCurrentBalance; INT32 iCurrentBalance;
UINT32 uiCurrentScreen; UINT32 uiCurrentScreen;
@@ -72,11 +72,10 @@ typedef struct
UINT32 uiRandom; UINT32 uiRandom;
UINT8 ubFiller[500]; // WANNE: Decrease this filler by 1, for each new UINT8 variable! UINT8 ubFiller[494]; // WANNE: Decrease this filler by 1, for each new UINT8 variable!
} SAVED_GAME_HEADER; } SAVED_GAME_HEADER;
extern UINT32 guiScreenToGotoAfterLoadingSavedGame; extern UINT32 guiScreenToGotoAfterLoadingSavedGame;
extern UINT32 guiCurrentSaveGameVersion; extern UINT32 guiCurrentSaveGameVersion;
+1 -1
View File
@@ -653,7 +653,7 @@ void RenderMovingGroupsAndMercs()
void RenderInfoInSector() void RenderInfoInSector()
{ {
UINT8 ubSectorX, ubSectorY; UINT8 ubSectorX, ubSectorY;
UINT8 ubMercs=0, ubActive=0, ubUnconcious=0, ubCollapsed=0; UINT16 ubMercs=0, ubActive=0, ubUnconcious=0, ubCollapsed=0;
INT32 i, xp, yp; INT32 i, xp, yp;
if( gfViewEnemies && !gbViewLevel ) if( gfViewEnemies && !gbViewLevel )
+9 -10
View File
@@ -1225,7 +1225,7 @@ BOOLEAN IsAnythingAroundForSoldierToClean( SOLDIERTYPE * pSoldier )
} }
// now the other merc's stuff // now the other merc's stuff
for(UINT8 teamIndex = gTacticalStatus.Team[gbPlayerNum].bFirstID; teamIndex <= gTacticalStatus.Team[gbPlayerNum].bLastID; ++teamIndex) for(UINT16 teamIndex = gTacticalStatus.Team[gbPlayerNum].bFirstID; teamIndex <= gTacticalStatus.Team[gbPlayerNum].bLastID; ++teamIndex)
{ {
// Ignore self, mercs in other sectors, etc. // Ignore self, mercs in other sectors, etc.
if (CanCharacterRepairAnotherSoldiersStuff(pSoldier, MercPtrs[teamIndex])) if (CanCharacterRepairAnotherSoldiersStuff(pSoldier, MercPtrs[teamIndex]))
@@ -1289,7 +1289,6 @@ BOOLEAN DoesCharacterHaveAnyItemsToRepair( SOLDIERTYPE *pSoldier, INT8 bHighestP
{ {
INT8 bPocket; INT8 bPocket;
UINT8 ubItemsInPocket, ubObjectInPocketCounter; UINT8 ubItemsInPocket, ubObjectInPocketCounter;
INT8 bLoop;
OBJECTTYPE * pObj; OBJECTTYPE * pObj;
UINT8 ubPassType; UINT8 ubPassType;
@@ -1340,7 +1339,7 @@ BOOLEAN DoesCharacterHaveAnyItemsToRepair( SOLDIERTYPE *pSoldier, INT8 bHighestP
if ( bHighestPass != - 1 ) if ( bHighestPass != - 1 )
{ {
// now look for items to repair on other mercs // now look for items to repair on other mercs
for( bLoop = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; bLoop <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++bLoop ) for( UINT16 bLoop = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; bLoop <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++bLoop )
{ {
SOLDIERTYPE* pOtherSoldier = MercPtrs[ bLoop ]; SOLDIERTYPE* pOtherSoldier = MercPtrs[ bLoop ];
@@ -2052,7 +2051,7 @@ INT8 CountMilitiaTrainersInSoldiersSector( SOLDIERTYPE * pSoldier, UINT8 ubMilit
AssertNotNIL(pSoldier); AssertNotNIL(pSoldier);
for ( UINT8 bLoop = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; bLoop <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++bLoop ) for ( UINT16 bLoop = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; bLoop <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++bLoop )
{ {
SOLDIERTYPE* pOtherSoldier = MercPtrs[ bLoop ]; SOLDIERTYPE* pOtherSoldier = MercPtrs[ bLoop ];
if ( pSoldier != pOtherSoldier && pOtherSoldier->bActive && pOtherSoldier->stats.bLife >= OKLIFE && pOtherSoldier->sSectorX == pSoldier->sSectorX && pOtherSoldier->sSectorY == pSoldier->sSectorY && pSoldier->bSectorZ == pOtherSoldier->bSectorZ ) if ( pSoldier != pOtherSoldier && pOtherSoldier->bActive && pOtherSoldier->stats.bLife >= OKLIFE && pOtherSoldier->sSectorX == pSoldier->sSectorX && pOtherSoldier->sSectorY == pSoldier->sSectorY && pSoldier->bSectorZ == pOtherSoldier->bSectorZ )
@@ -5477,7 +5476,7 @@ void HandleRepairBySoldier( SOLDIERTYPE *pSoldier )
// first our own stuff // first our own stuff
CollectCleanableItems(pSoldier, pSoldier, itemsToClean); CollectCleanableItems(pSoldier, pSoldier, itemsToClean);
// then other mercs' stuff // then other mercs' stuff
for(UINT8 teamIndex = gTacticalStatus.Team[gbPlayerNum].bFirstID; teamIndex <= gTacticalStatus.Team[gbPlayerNum].bLastID; ++teamIndex) for(UINT16 teamIndex = gTacticalStatus.Team[gbPlayerNum].bFirstID; teamIndex <= gTacticalStatus.Team[gbPlayerNum].bLastID; ++teamIndex)
{ {
// Ignore self, mercs in other sectors, etc. // Ignore self, mercs in other sectors, etc.
if (CanCharacterRepairAnotherSoldiersStuff(pSoldier, MercPtrs[teamIndex])) if (CanCharacterRepairAnotherSoldiersStuff(pSoldier, MercPtrs[teamIndex]))
@@ -5522,7 +5521,7 @@ void HandleRepairBySoldier( SOLDIERTYPE *pSoldier )
// silversurfer: Looks strange? It's not. This function now needs the guy that does the repairs and the one that owns the stuff. // silversurfer: Looks strange? It's not. This function now needs the guy that does the repairs and the one that owns the stuff.
CollectRepairableItems(pSoldier, pSoldier, itemsToFix); CollectRepairableItems(pSoldier, pSoldier, itemsToFix);
for(UINT8 teamIndex = gTacticalStatus.Team[gbPlayerNum].bFirstID; teamIndex <= gTacticalStatus.Team[gbPlayerNum].bLastID; ++teamIndex) for(UINT16 teamIndex = gTacticalStatus.Team[gbPlayerNum].bFirstID; teamIndex <= gTacticalStatus.Team[gbPlayerNum].bLastID; ++teamIndex)
{ {
// Ignore self, mercs in other sectors, etc. // Ignore self, mercs in other sectors, etc.
if (CanCharacterRepairAnotherSoldiersStuff(pSoldier, MercPtrs[teamIndex])) if (CanCharacterRepairAnotherSoldiersStuff(pSoldier, MercPtrs[teamIndex]))
@@ -9501,7 +9500,7 @@ void HandleHealingByNaturalCauses( SOLDIERTYPE *pSoldier )
if ( gGameOptions.fNewTraitSystem ) if ( gGameOptions.fNewTraitSystem )
{ {
SOLDIERTYPE * pMedic = NULL; SOLDIERTYPE * pMedic = NULL;
UINT8 cnt; UINT16 cnt;
UINT16 bRegenerationBonus = 0; UINT16 bRegenerationBonus = 0;
cnt = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; cnt = gTacticalStatus.Team[ OUR_TEAM ].bFirstID;
@@ -13814,7 +13813,7 @@ void AssignmentMenuBtnCallback( MOUSE_REGION * pRegion, INT32 iReason )
{ {
SOLDIERTYPE * pMedic = NULL; SOLDIERTYPE * pMedic = NULL;
SOLDIERTYPE * pBestMedic = NULL; SOLDIERTYPE * pBestMedic = NULL;
UINT8 cnt; UINT16 cnt;
INT8 bSlot; INT8 bSlot;
// Find the best doctor // Find the best doctor
@@ -14096,7 +14095,7 @@ void AssignmentMenuBtnCallback( MOUSE_REGION * pRegion, INT32 iReason )
{ {
SOLDIERTYPE * pMedic = NULL; SOLDIERTYPE * pMedic = NULL;
SOLDIERTYPE * pBestMedic = NULL; SOLDIERTYPE * pBestMedic = NULL;
UINT8 cnt; UINT16 cnt;
INT8 bSlot; INT8 bSlot;
// Find the best doctor // Find the best doctor
@@ -19505,7 +19504,7 @@ void ResumeOldAssignment( SOLDIERTYPE *pSoldier )
void RepairItemsOnOthers( SOLDIERTYPE *pSoldier, UINT8 *pubRepairPtsLeft ) void RepairItemsOnOthers( SOLDIERTYPE *pSoldier, UINT8 *pubRepairPtsLeft )
{ {
UINT8 ubPassType; UINT8 ubPassType;
INT8 bLoop; UINT16 bLoop;
SOLDIERTYPE * pOtherSoldier; SOLDIERTYPE * pOtherSoldier;
SOLDIERTYPE * pBestOtherSoldier; SOLDIERTYPE * pBestOtherSoldier;
INT8 bPriority, bBestPriority = -1; INT8 bPriority, bBestPriority = -1;
+4 -4
View File
@@ -2853,7 +2853,7 @@ void RetreatButtonCallback( GUI_BUTTON *btn, INT32 reason )
if( gpAR->pRobotCell ) if( gpAR->pRobotCell )
{ {
//if robot is retreating, set the retreat time to be the same as the robot's controller. //if robot is retreating, set the retreat time to be the same as the robot's controller.
UINT8 ubRobotControllerID; UINT16 ubRobotControllerID;
ubRobotControllerID = gpAR->pRobotCell->pSoldier->ubRobotRemoteHolderID; ubRobotControllerID = gpAR->pRobotCell->pSoldier->ubRobotRemoteHolderID;
@@ -3027,7 +3027,7 @@ void MercCellMouseClickCallback( MOUSE_REGION *reg, INT32 reason )
if( gpAR->pRobotCell ) if( gpAR->pRobotCell )
{ //if controller is retreating, make the robot retreat too. { //if controller is retreating, make the robot retreat too.
UINT8 ubRobotControllerID; UINT16 ubRobotControllerID;
ubRobotControllerID = gpAR->pRobotCell->pSoldier->ubRobotRemoteHolderID; ubRobotControllerID = gpAR->pRobotCell->pSoldier->ubRobotRemoteHolderID;
@@ -3751,7 +3751,7 @@ UINT8 GetUnusedMercProfileID()
BOOLEAN fUnique = FALSE; BOOLEAN fUnique = FALSE;
while( !fUnique ) while( !fUnique )
{ {
ubRandom = (UINT8)PreRandom( 40 ); ubRandom = (UINT8)PreRandom(CODE_MAXIMUM_NUMBER_OF_PLAYER_MERCS);
for( i = 0; i < 19; i++ ) for( i = 0; i < 19; i++ )
{ {
fUnique = TRUE; fUnique = TRUE;
@@ -3769,7 +3769,7 @@ void CreateTempPlayerMerc()
{ {
SOLDIERCREATE_STRUCT MercCreateStruct; SOLDIERCREATE_STRUCT MercCreateStruct;
static INT32 iSoldierCount=0; static INT32 iSoldierCount=0;
UINT8 ubID; UINT16 ubID;
//Init the merc create structure with basic information //Init the merc create structure with basic information
MercCreateStruct.bTeam = SOLDIER_CREATE_AUTO_TEAM; MercCreateStruct.bTeam = SOLDIER_CREATE_AUTO_TEAM;
+2 -2
View File
@@ -240,7 +240,7 @@ BOOLEAN ExecuteStrategicEvent( STRATEGICEVENT *pEvent )
//If a merc gets hired and they dont show up immediately, the merc gets added to the queue and shows up //If a merc gets hired and they dont show up immediately, the merc gets added to the queue and shows up
// uiTimeTillMercArrives minutes later // uiTimeTillMercArrives minutes later
case EVENT_DELAYED_HIRING_OF_MERC: case EVENT_DELAYED_HIRING_OF_MERC:
MercArrivesCallback( (UINT8) pEvent->uiParam ); MercArrivesCallback( (UINT16) pEvent->uiParam );
break; break;
//handles the life insurance contract for a merc from AIM. //handles the life insurance contract for a merc from AIM.
case EVENT_HANDLE_INSURED_MERCS: case EVENT_HANDLE_INSURED_MERCS:
@@ -248,7 +248,7 @@ BOOLEAN ExecuteStrategicEvent( STRATEGICEVENT *pEvent )
break; break;
//handles when a merc is killed an there is a life insurance payout //handles when a merc is killed an there is a life insurance payout
case EVENT_PAY_LIFE_INSURANCE_FOR_DEAD_MERC: case EVENT_PAY_LIFE_INSURANCE_FOR_DEAD_MERC:
InsuranceContractPayLifeInsuranceForDeadMerc( (UINT8) pEvent->uiParam ); InsuranceContractPayLifeInsuranceForDeadMerc( (UINT16) pEvent->uiParam );
break; break;
//gets called every day at midnight. //gets called every day at midnight.
case EVENT_MERC_DAILY_UPDATE: case EVENT_MERC_DAILY_UPDATE:
+58 -68
View File
@@ -908,7 +908,7 @@ UINT16 PROFILLUA_sSectorX;
UINT16 PROFILLUA_sSectorY; UINT16 PROFILLUA_sSectorY;
UINT8 PROFILLUA_bSectorZ; UINT8 PROFILLUA_bSectorZ;
UINT8 PROFILLUA_Level; UINT8 PROFILLUA_Level;
UINT8 PROFILLUA_ubID; UINT16 PROFILLUA_ubID;
UINT32 PROFILLUA_sGridNo; UINT32 PROFILLUA_sGridNo;
UINT8 PROFILLUA_ubDirectiono; UINT8 PROFILLUA_ubDirectiono;
UINT8 PROFILLUA_bTeam; UINT8 PROFILLUA_bTeam;
@@ -918,7 +918,7 @@ UINT16 PROFILLUA2_sSectorX;
UINT16 PROFILLUA2_sSectorY; UINT16 PROFILLUA2_sSectorY;
UINT8 PROFILLUA2_bSectorZ; UINT8 PROFILLUA2_bSectorZ;
UINT32 PROFILLUA2_sGridNo; UINT32 PROFILLUA2_sGridNo;
UINT8 PROFILLUA2_ubID; UINT16 PROFILLUA2_ubID;
LUA_GLOBAL gLuaGlobal[1000]; LUA_GLOBAL gLuaGlobal[1000];
@@ -2354,7 +2354,7 @@ static int l_WhoIsThere2 (lua_State *L)
{ {
UINT32 sGridNo = lua_tointeger(L,1); UINT32 sGridNo = lua_tointeger(L,1);
INT8 bLevel = lua_tointeger(L,2); INT8 bLevel = lua_tointeger(L,2);
UINT8 Val = WhoIsThere2( sGridNo, bLevel ); UINT16 Val = WhoIsThere2( sGridNo, bLevel );
lua_pushinteger(L, Val); lua_pushinteger(L, Val);
} }
@@ -2698,8 +2698,9 @@ void LuaHandleSectorLiberation( INT16 sSectorX, INT16 sSectorY, INT8 bSectorZ, B
LuaFunction( _LS.L, "HandleSectorLiberation" ).Param<int>( sSectorX ).Param<int>( sSectorY ).Param<int>( bSectorZ ).Param<bool>( fFirstTime ).Call( 4 ); LuaFunction( _LS.L, "HandleSectorLiberation" ).Param<int>( sSectorX ).Param<int>( sSectorY ).Param<int>( bSectorZ ).Param<bool>( fFirstTime ).Call( 4 );
} }
void LuaHandleInteractiveActionResult( INT16 sSectorX, INT16 sSectorY, INT8 bSectorZ, void LuaHandleInteractiveActionResult( INT16 sSectorX, INT16 sSectorY,
INT32 sGridNo, UINT8 bLevel, UINT8 ubId, INT8 bSectorZ,
INT32 sGridNo, UINT8 bLevel, UINT16 ubId,
UINT16 usActionType, INT32 sLuaactionid, INT32 difficulty, UINT16 skill ) UINT16 usActionType, INT32 sLuaactionid, INT32 difficulty, UINT16 skill )
{ {
const char* filename = "scripts\\Overhead.lua"; const char* filename = "scripts\\Overhead.lua";
@@ -2918,7 +2919,7 @@ BOOLEAN LuaIDScripts(UINT8 Init, UINT8 ubTargetNPC, UINT16 usActionCode, UINT8 u
SOLDIERTYPE * FindSoldierByProfileID_( UINT8 ubProfileID ) SOLDIERTYPE * FindSoldierByProfileID_( UINT8 ubProfileID )
{ {
UINT8 ubLoop, ubLoopLimit; UINT16 ubLoop, ubLoopLimit;
SOLDIERTYPE * pSoldier; SOLDIERTYPE * pSoldier;
ubLoopLimit = MAX_NUM_SOLDIERS; ubLoopLimit = MAX_NUM_SOLDIERS;
@@ -2935,7 +2936,7 @@ SOLDIERTYPE * FindSoldierByProfileID_( UINT8 ubProfileID )
SOLDIERTYPE * FindSoldierByProfileID2( UINT8 ubProfileID, BOOLEAN fPlayerMercsOnly ) SOLDIERTYPE * FindSoldierByProfileID2( UINT8 ubProfileID, BOOLEAN fPlayerMercsOnly )
{ {
UINT8 cnt2, ubLoopLimit; UINT16 cnt2, ubLoopLimit;
SOLDIERTYPE * pSoldier; SOLDIERTYPE * pSoldier;
ubLoopLimit = gTacticalStatus.Team[CIV_TEAM].bLastID; ubLoopLimit = gTacticalStatus.Team[CIV_TEAM].bLastID;
@@ -4730,7 +4731,7 @@ static int l_NumMercsNear(lua_State *L)
{ {
UINT8 ubProfileID = lua_tointeger(L,1); UINT8 ubProfileID = lua_tointeger(L,1);
UINT8 ubMaxDist = lua_tointeger(L,2); UINT8 ubMaxDist = lua_tointeger(L,2);
UINT8 ID2 = NumMercsNear( ubProfileID, ubMaxDist ); UINT16 ID2 = NumMercsNear( ubProfileID, ubMaxDist );
lua_pushinteger(L, ID2); lua_pushinteger(L, ID2);
} }
@@ -5799,7 +5800,7 @@ static int l_SetOffPanicBombs (lua_State *L)
{ {
if ( lua_gettop(L) >= 2 ) if ( lua_gettop(L) >= 2 )
{ {
UINT8 ubID = lua_tointeger(L,1); UINT16 ubID = lua_tointeger(L,1);
INT8 bPanicTrigger = lua_tointeger(L,2); INT8 bPanicTrigger = lua_tointeger(L,2);
SetOffPanicBombs( ubID, bPanicTrigger ); SetOffPanicBombs( ubID, bPanicTrigger );
} }
@@ -5852,7 +5853,7 @@ static int l_MakeNoise(lua_State *L)
if ( lua_gettop(L) >= 6 ) if ( lua_gettop(L) >= 6 )
{ {
UINT8 ubNoiseMaker = lua_tointeger(L,1); UINT16 ubNoiseMaker = lua_tointeger(L,1);
INT32 sGridNo = lua_tointeger(L,2); INT32 sGridNo = lua_tointeger(L,2);
INT8 bLevel = lua_tointeger(L,3); INT8 bLevel = lua_tointeger(L,3);
UINT8 ubTerrType = lua_tointeger(L,4); UINT8 ubTerrType = lua_tointeger(L,4);
@@ -5995,7 +5996,7 @@ return 0;
static int l_ActionInProgress(lua_State *L) static int l_ActionInProgress(lua_State *L)
{ {
UINT8 cnt2; UINT16 cnt2;
SOLDIERTYPE * pSoldier; SOLDIERTYPE * pSoldier;
if (lua_gettop(L) >= 2) if (lua_gettop(L) >= 2)
@@ -6357,7 +6358,7 @@ static int l_ActivateSwitchInGridNo(lua_State *L)
{ {
if (lua_gettop(L) >= 2) if (lua_gettop(L) >= 2)
{ {
UINT8 ubID = lua_tointeger(L, 1); UINT16 ubID = lua_tointeger(L, 1);
INT32 sGridNo = lua_tointeger(L, 2); INT32 sGridNo = lua_tointeger(L, 2);
if (!TileIsOutOfBounds(sGridNo) && ubID < TOTAL_SOLDIERS) if (!TileIsOutOfBounds(sGridNo) && ubID < TOTAL_SOLDIERS)
@@ -7128,7 +7129,7 @@ static int l_ACTION_ITEM_SEX (lua_State *L)
if ( ! (gTacticalStatus.uiFlags & INCOMBAT) ) if ( ! (gTacticalStatus.uiFlags & INCOMBAT) )
{ {
UINT8 ubID; UINT16 ubID;
OBJECTTYPE DoorCloser; OBJECTTYPE DoorCloser;
INT16 sTeleportSpot; INT16 sTeleportSpot;
INT16 sDoorSpot; INT16 sDoorSpot;
@@ -7579,7 +7580,7 @@ static int l_EVENT_InitNewSoldierAnim (lua_State *L)
{ {
if ( lua_gettop(L) >= 3 ) if ( lua_gettop(L) >= 3 )
{ {
UINT8 ubTargetNPC = lua_tointeger(L,1); UINT16 ubTargetNPC = lua_tointeger(L,1);
//if (i == 2 ) BodyType = lua_tointeger(L,i); //if (i == 2 ) BodyType = lua_tointeger(L,i);
UINT32 ANIM = lua_tointeger(L,2); UINT32 ANIM = lua_tointeger(L,2);
INT32 cnt = lua_tointeger(L,3); INT32 cnt = lua_tointeger(L,3);
@@ -7636,13 +7637,13 @@ static int l_SetEnterCombatMode (lua_State *L)
if ( lua_gettop(L) >= 2 ) if ( lua_gettop(L) >= 2 )
{ {
UINT16 group = lua_tointeger(L,1); UINT16 group = lua_tointeger(L,1);
UINT8 ubID = lua_tointeger(L,2); UINT16 ubID = lua_tointeger(L,2);
if ( ubID == NOBODY ) if ( ubID == NOBODY )
return 0; return 0;
SOLDIERTYPE* pGoon = NULL; SOLDIERTYPE* pGoon = NULL;
for ( UINT8 ubLoop = gTacticalStatus.Team[ CIV_TEAM ].bFirstID; ubLoop <= gTacticalStatus.Team[ CIV_TEAM ].bLastID; ubLoop++ ) for ( UINT16 ubLoop = gTacticalStatus.Team[ CIV_TEAM ].bFirstID; ubLoop <= gTacticalStatus.Team[ CIV_TEAM ].bLastID; ubLoop++ )
{ {
pGoon = MercPtrs[ ubLoop ]; pGoon = MercPtrs[ ubLoop ];
if ( pGoon->ubCivilianGroup == group && pGoon->bActive && pGoon->bInSector && pGoon->stats.bLife >= OKLIFE && pGoon->aiData.bOppList[ ubID ] == SEEN_CURRENTLY ) if ( pGoon->ubCivilianGroup == group && pGoon->bActive && pGoon->bInSector && pGoon->stats.bLife >= OKLIFE && pGoon->aiData.bOppList[ ubID ] == SEEN_CURRENTLY )
@@ -7675,7 +7676,7 @@ static int l_MakeMercPtrsHostile (lua_State *L)
{ {
if ( lua_gettop(L) >= 1 ) if ( lua_gettop(L) >= 1 )
{ {
UINT8 ubID = lua_tointeger(L,1); UINT16 ubID = lua_tointeger(L,1);
MakeCivHostile(MercPtrs[ ubID ]); MakeCivHostile(MercPtrs[ ubID ]);
} }
@@ -7734,7 +7735,7 @@ static int l_EVENT_SoldierGotHit (lua_State *L)
DeleteTalkingMenu(); DeleteTalkingMenu();
if ( pTarget2->stats.bLife >= 0 ) if ( pTarget2->stats.bLife >= 0 )
{ {
pTarget2->EVENT_SoldierGotHit( 1, 100, 10, pTarget2->ubDirection, 320, NOBODY , FIRE_WEAPON_NO_SPECIAL, AIM_SHOT_TORSO, 0, NOWHERE ); pTarget2->EVENT_SoldierGotHit( 1, 100, 10, pTarget2->ubDirection, 320, NOBODY, FIRE_WEAPON_NO_SPECIAL, AIM_SHOT_TORSO, 0, NOWHERE );
} }
} }
} }
@@ -8067,7 +8068,7 @@ static int l_ChangeMercPtrsTeam (lua_State *L)
{ {
if ( lua_gettop(L) >= 2 ) if ( lua_gettop(L) >= 2 )
{ {
UINT8 UID = lua_tointeger(L,1); UINT16 UID = lua_tointeger(L,1);
INT8 Side = lua_tointeger(L,2); INT8 Side = lua_tointeger(L,2);
if ( MercPtrs[UID] && MercPtrs[ UID ]->bInSector && MercPtrs[ UID ]->bActive ) if ( MercPtrs[UID] && MercPtrs[ UID ]->bInSector && MercPtrs[ UID ]->bActive )
@@ -8878,46 +8879,33 @@ static int l_GetDirection (lua_State *L)
static int l_ubID (lua_State *L) static int l_ubID (lua_State *L)
{ {
UINT8 n = lua_gettop(L); if (lua_gettop(L) >= 1)
int i = 0;
UINT8 ubTargetNPC = 0;
SOLDIERTYPE *pSoldier;
UINT32 ubID = 0;
for (i= 1; i<=n; i++ )
{ {
if (i == 1 ) UINT8 ubTargetNPC = 0;
ubTargetNPC = lua_tointeger(L,i); SOLDIERTYPE *pSoldier;
ubTargetNPC = lua_tointeger(L, 1);
pSoldier = FindSoldierByProfileID(ubTargetNPC, FALSE);
if (pSoldier)
lua_pushinteger(L, pSoldier->ubID);
else
lua_pushinteger(L, -1);
} }
pSoldier = FindSoldierByProfileID( ubTargetNPC, FALSE);
if ( pSoldier )
ubID = pSoldier->ubID;
else
ubID = -1;
lua_pushinteger(L, ubID);
return 1; return 1;
} }
//------------ //------------
static int l_GetFirstID (lua_State *L) static int l_GetFirstID (lua_State *L)
{ {
UINT8 n = lua_gettop(L); if (lua_gettop(L) >= 1)
int i;
UINT8 team = 0;
UINT32 id;
for (i= 1; i<=n; i++ )
{ {
if (i == 1 ) team = lua_tointeger(L,i); UINT8 team = 0;
UINT32 id;
team = lua_tointeger(L, 1);
id = gTacticalStatus.Team[team].bFirstID;
lua_pushinteger(L, id);
} }
id = gTacticalStatus.Team[ team ].bFirstID;
lua_pushinteger(L, id);
return 1; return 1;
} }
@@ -9190,7 +9178,7 @@ static int l_WearGasMaskIfAvailable(lua_State *L)
{ {
if ( lua_gettop( L ) >= 1 ) if ( lua_gettop( L ) >= 1 )
{ {
UINT8 ubID = lua_tointeger( L, 1 ); UINT16 ubID = lua_tointeger( L, 1 );
if ( MercPtrs[ubID] && MercPtrs[ubID]->bInSector && MercPtrs[ubID]->bActive ) if ( MercPtrs[ubID] && MercPtrs[ubID]->bInSector && MercPtrs[ubID]->bActive )
{ {
@@ -9205,7 +9193,7 @@ static int l_SetNewSituationMercPtsr(lua_State *L)
{ {
UINT8 n = lua_gettop(L); UINT8 n = lua_gettop(L);
int i = 0; int i = 0;
UINT8 ubID = 0; UINT16 ubID = 0;
BOOLEAN Bool = FALSE; BOOLEAN Bool = FALSE;
SOLDIERTYPE * pSoldier; SOLDIERTYPE * pSoldier;
@@ -9573,7 +9561,7 @@ static int l_SetOffBombsInGridNo (lua_State *L)
{ {
UINT8 n = lua_gettop(L); UINT8 n = lua_gettop(L);
int i = 0; int i = 0;
UINT8 ubID = 0; UINT16 ubID = 0;
INT32 sGridNo = 0; INT32 sGridNo = 0;
BOOLEAN fAllBombs = FALSE; BOOLEAN fAllBombs = FALSE;
INT8 bLevel = 0; INT8 bLevel = 0;
@@ -9613,7 +9601,7 @@ static int l_AnimMercPtsrSoldierGotHit (lua_State *L)
{ {
if ( MercPtrs[ ubID ]->stats.bLife >= 0 ) if ( MercPtrs[ ubID ]->stats.bLife >= 0 )
{ {
MercPtrs[ ubID ]->EVENT_SoldierGotHit( 1, 100, 10, MercPtrs[ ubID ]->ubDirection, 320, NOBODY , FIRE_WEAPON_NO_SPECIAL, AIM_SHOT_TORSO, 0, NOWHERE ); MercPtrs[ ubID ]->EVENT_SoldierGotHit( 1, 100, 10, MercPtrs[ ubID ]->ubDirection, 320, NOBODY, FIRE_WEAPON_NO_SPECIAL, AIM_SHOT_TORSO, 0, NOWHERE );
} }
} }
@@ -9738,7 +9726,8 @@ static int l_FindSoldierByProfileID (lua_State *L)
{ {
UINT8 n = lua_gettop(L); UINT8 n = lua_gettop(L);
int i = 0; int i = 0;
UINT8 ubTargetNPC = 0,ubLoop = 0,ubLoopLimit = 0; UINT8 ubTargetNPC = 0;
UINT16 ubLoop = 0, ubLoopLimit = 0;
SOLDIERTYPE *pSoldier; SOLDIERTYPE *pSoldier;
UINT8 id = -1; UINT8 id = -1;
@@ -9767,7 +9756,8 @@ static int l_FindSoldierByProfileIDBool (lua_State *L)
{ {
UINT8 n = lua_gettop(L); UINT8 n = lua_gettop(L);
int i = 0; int i = 0;
UINT8 ubTargetNPC = 0,ubLoop = 0,ubLoopLimit = 0; UINT8 ubTargetNPC = 0;
UINT16 ubLoop = 0, ubLoopLimit = 0;
SOLDIERTYPE *pSoldier; SOLDIERTYPE *pSoldier;
UINT8 id = -1; UINT8 id = -1;
BOOLEAN ProfBool = FALSE; BOOLEAN ProfBool = FALSE;
@@ -11445,7 +11435,7 @@ static int l_SetMoneyInSoldierProfile(lua_State *L)
static int l_AddToShouldBecomeHostileOrSayQuoteList(lua_State *L) static int l_AddToShouldBecomeHostileOrSayQuoteList(lua_State *L)
{ {
UINT8 ubID = 0; UINT16 ubID = 0;
UINT8 n = lua_gettop(L); UINT8 n = lua_gettop(L);
int i = 0; int i = 0;
@@ -12381,7 +12371,7 @@ return 0;
static int l_SetMercPtsrSectorZ(lua_State *L) static int l_SetMercPtsrSectorZ(lua_State *L)
{ {
UINT8 ubID = 0; UINT16 ubID = 0;
BOOLEAN Bool = FALSE; BOOLEAN Bool = FALSE;
SOLDIERTYPE * pSoldier; SOLDIERTYPE * pSoldier;
INT8 SectorZ; INT8 SectorZ;
@@ -12413,7 +12403,7 @@ static int l_SetMercPtsrSectorZ(lua_State *L)
static int l_SetMercPtsrSectorX(lua_State *L) static int l_SetMercPtsrSectorX(lua_State *L)
{ {
UINT8 ubID = 0; UINT16 ubID = 0;
BOOLEAN Bool = FALSE; BOOLEAN Bool = FALSE;
SOLDIERTYPE * pSoldier; SOLDIERTYPE * pSoldier;
INT16 SectorX; INT16 SectorX;
@@ -12446,7 +12436,7 @@ static int l_SetMercPtsrSectorX(lua_State *L)
static int l_SetMercPtsrSectorY(lua_State *L) static int l_SetMercPtsrSectorY(lua_State *L)
{ {
UINT8 ubID = 0; UINT16 ubID = 0;
BOOLEAN Bool = FALSE; BOOLEAN Bool = FALSE;
SOLDIERTYPE * pSoldier; SOLDIERTYPE * pSoldier;
INT16 SectorY; INT16 SectorY;
@@ -12479,7 +12469,7 @@ static int l_SetMercPtsrSectorY(lua_State *L)
static int l_SetMercPtsrubGroupID(lua_State *L) static int l_SetMercPtsrubGroupID(lua_State *L)
{ {
UINT8 ubID = 0; UINT16 ubID = 0;
BOOLEAN Bool = FALSE; BOOLEAN Bool = FALSE;
SOLDIERTYPE * pSoldier; SOLDIERTYPE * pSoldier;
INT8 GroupID; INT8 GroupID;
@@ -12512,7 +12502,7 @@ static int l_SetMercPtsrubGroupID(lua_State *L)
static int l_CheckMercPtsrSectorY(lua_State *L) static int l_CheckMercPtsrSectorY(lua_State *L)
{ {
UINT8 ubID = 0; UINT16 ubID = 0;
BOOLEAN Bool = FALSE; BOOLEAN Bool = FALSE;
SOLDIERTYPE * pSoldier; SOLDIERTYPE * pSoldier;
INT16 SectorY; INT16 SectorY;
@@ -12550,7 +12540,7 @@ static int l_CheckMercPtsrSectorY(lua_State *L)
static int l_CheckMercPtsrSectorX(lua_State *L) static int l_CheckMercPtsrSectorX(lua_State *L)
{ {
UINT8 ubID = 0; UINT16 ubID = 0;
BOOLEAN Bool = FALSE; BOOLEAN Bool = FALSE;
SOLDIERTYPE * pSoldier; SOLDIERTYPE * pSoldier;
INT16 SectorX; INT16 SectorX;
@@ -12588,7 +12578,7 @@ static int l_CheckMercPtsrSectorX(lua_State *L)
static int l_CheckMercPtsrSectorZ(lua_State *L) static int l_CheckMercPtsrSectorZ(lua_State *L)
{ {
UINT8 ubID = 0; UINT16 ubID = 0;
BOOLEAN Bool = FALSE; BOOLEAN Bool = FALSE;
SOLDIERTYPE * pSoldier; SOLDIERTYPE * pSoldier;
INT16 SectorZ; INT16 SectorZ;
@@ -12626,7 +12616,7 @@ static int l_CheckMercPtsrSectorZ(lua_State *L)
static int l_CheckMercPtsrubGroupID(lua_State *L) static int l_CheckMercPtsrubGroupID(lua_State *L)
{ {
UINT8 ubID = 0; UINT16 ubID = 0;
BOOLEAN Bool = FALSE; BOOLEAN Bool = FALSE;
SOLDIERTYPE * pSoldier; SOLDIERTYPE * pSoldier;
UINT8 GroupID; UINT8 GroupID;
@@ -13269,7 +13259,7 @@ static int l_DoInteractiveActionDefaultResult( lua_State *L )
if ( lua_gettop( L ) >= 3 ) if ( lua_gettop( L ) >= 3 )
{ {
INT32 sGridNo = lua_tointeger( L, 1 ); INT32 sGridNo = lua_tointeger( L, 1 );
UINT8 ubID = lua_tointeger( L, 2 ); UINT16 ubID = lua_tointeger( L, 2 );
BOOLEAN success = lua_tointeger( L, 3 ); BOOLEAN success = lua_tointeger( L, 3 );
DoInteractiveActionDefaultResult( sGridNo, ubID, success ); DoInteractiveActionDefaultResult( sGridNo, ubID, success );
@@ -13282,7 +13272,7 @@ static int l_GiveExp( lua_State *L )
{ {
if ( lua_gettop( L ) >= 3 ) if ( lua_gettop( L ) >= 3 )
{ {
UINT8 ubID = lua_tointeger( L, 1 ); UINT16 ubID = lua_tointeger( L, 1 );
UINT8 ubStat = lua_tointeger( L, 2 ); UINT8 ubStat = lua_tointeger( L, 2 );
UINT16 usNumChances = lua_tointeger( L, 3 ); UINT16 usNumChances = lua_tointeger( L, 3 );
@@ -13375,7 +13365,7 @@ static int l_SoldierSpendMoney( lua_State *L )
{ {
if ( lua_gettop( L ) >= 2 ) if ( lua_gettop( L ) >= 2 )
{ {
UINT8 usId = lua_tointeger( L, 1 ); UINT16 usId = lua_tointeger( L, 1 );
UINT32 amount = lua_tointeger( L, 2 ); UINT32 amount = lua_tointeger( L, 2 );
lua_pushinteger( L, SpendMoney( MercPtrs[usId], amount ) ); lua_pushinteger( L, SpendMoney( MercPtrs[usId], amount ) );
+5 -4
View File
@@ -33,7 +33,7 @@ extern UINT16 PROFILLUA_sSectorX;
extern UINT16 PROFILLUA_sSectorY; extern UINT16 PROFILLUA_sSectorY;
extern UINT8 PROFILLUA_bSectorZ; extern UINT8 PROFILLUA_bSectorZ;
extern UINT8 PROFILLUA_Level; extern UINT8 PROFILLUA_Level;
extern UINT8 PROFILLUA_ubID; extern UINT16 PROFILLUA_ubID;
extern UINT32 PROFILLUA_sGridNo; extern UINT32 PROFILLUA_sGridNo;
extern UINT8 PROFILLUA_ubDirectiono; extern UINT8 PROFILLUA_ubDirectiono;
extern UINT8 PROFILLUA_bTeam; extern UINT8 PROFILLUA_bTeam;
@@ -42,7 +42,7 @@ extern UINT8 PROFILLUA2_ubProfile;
extern UINT16 PROFILLUA2_sSectorX; extern UINT16 PROFILLUA2_sSectorX;
extern UINT16 PROFILLUA2_sSectorY; extern UINT16 PROFILLUA2_sSectorY;
extern UINT8 PROFILLUA2_bSectorZ; extern UINT8 PROFILLUA2_bSectorZ;
extern UINT8 PROFILLUA2_ubID; extern UINT16 PROFILLUA2_ubID;
extern UINT32 PROFILLUA2_sGridNo; extern UINT32 PROFILLUA2_sGridNo;
extern BOOLEAN LetHandleLoyaltyChangeForNPCAction(UINT8 ubNPCProfileId , UINT8 Init); extern BOOLEAN LetHandleLoyaltyChangeForNPCAction(UINT8 ubNPCProfileId , UINT8 Init);
@@ -60,8 +60,9 @@ extern BOOLEAN LuaHandleQuestCodeOnSector( INT16 sSectorX, INT16 sSectorY, INT8
//extern BOOLEAN LuaHandleQuestCodeOnSectorEntry( INT16 sSectorX, INT16 sSectorY, INT8 bSectorZ, UINT8 Init); //extern BOOLEAN LuaHandleQuestCodeOnSectorEntry( INT16 sSectorX, INT16 sSectorY, INT8 bSectorZ, UINT8 Init);
void LuaHandleSectorLiberation( INT16 sSectorX, INT16 sSectorY, INT8 bSectorZ, BOOLEAN fFirstTime ); void LuaHandleSectorLiberation( INT16 sSectorX, INT16 sSectorY, INT8 bSectorZ, BOOLEAN fFirstTime );
void LuaHandleInteractiveActionResult( INT16 sSectorX, INT16 sSectorY, INT8 bSectorZ, void LuaHandleInteractiveActionResult( INT16 sSectorX, INT16 sSectorY,
INT32 sGridNo, UINT8 bLevel, UINT8 ubId, INT8 bSectorZ,
INT32 sGridNo, UINT8 bLevel, UINT16 ubId,
UINT16 usActionType, INT32 sLuaactionid, INT32 difficulty, UINT16 skill ); UINT16 usActionType, INT32 sLuaactionid, INT32 difficulty, UINT16 skill );
void LuaRecruitRPCAdditionalHandling( UINT8 usProfile ); void LuaRecruitRPCAdditionalHandling( UINT8 usProfile );
void LuaHandleSectorTacticalEntry( INT16 sSectorX, INT16 sSectorY, INT8 bSectorZ, BOOLEAN fHasEverBeenPlayerControlled ); void LuaHandleSectorTacticalEntry( INT16 sSectorX, INT16 sSectorY, INT8 bSectorZ, BOOLEAN fHasEverBeenPlayerControlled );
+1 -1
View File
@@ -76,7 +76,7 @@
#define HELICOPTER_RETURN_REASON_DAMAGE 2 #define HELICOPTER_RETURN_REASON_DAMAGE 2
extern FACETYPE *gpCurrentTalkingFace; extern FACETYPE *gpCurrentTalkingFace;
extern UINT8 gubCurrentTalkingID; extern UINT16 gubCurrentTalkingID;
// current temp path for dest char // current temp path for dest char
extern PathStPtr pTempHelicopterPath; extern PathStPtr pTempHelicopterPath;
@@ -205,7 +205,7 @@ INT32 iCurrentInventoryPoolPage = 0;
INT32 iLastInventoryPoolPage = 0; INT32 iLastInventoryPoolPage = 0;
INT32 sObjectSourceGridNo = -1;//shadooow: I don't see much of a sense in this, we have gpItemPointerSoldier and we can use gpItemPointerSoldier->sGridNo to do this, this is actually unused INT32 sObjectSourceGridNo = -1;//shadooow: I don't see much of a sense in this, we have gpItemPointerSoldier and we can use gpItemPointerSoldier->sGridNo to do this, this is actually unused
INT8 sObjectSourseSoldierID = -1; INT16 sObjectSourseSoldierID = -1;
// number of unseen items in sector // number of unseen items in sector
UINT32 uiNumberOfUnSeenItems = 0; UINT32 uiNumberOfUnSeenItems = 0;
+5 -5
View File
@@ -478,10 +478,10 @@ UINT32 guiMAPCURSORS;
UINT32 guiMapPathingArrows; UINT32 guiMapPathingArrows;
// assignment selection character // assignment selection character
INT8 bSelectedAssignChar=-1; INT16 bSelectedAssignChar=-1;
// current contract char // current contract char
INT8 bSelectedContractChar = -1; INT16 bSelectedContractChar = -1;
// has the temp path for character or helicopter been already drawn? // has the temp path for character or helicopter been already drawn?
@@ -604,11 +604,11 @@ BOOLEAN SaveHiddenTownToSaveGameFile( HWFILE hFile );
// Flugente: added getter/setter so that we can easily check when a new char is set // Flugente: added getter/setter so that we can easily check when a new char is set
// we also set a marker determining when we should update the squads data, so that we only check that when required // we also set a marker determining when we should update the squads data, so that we only check that when required
// destination plotting character // destination plotting character
INT8 bSelectedDestChar = -1; INT16 bSelectedDestChar = -1;
bool gSquadEncumbranceCheckNecessary = true; bool gSquadEncumbranceCheckNecessary = true;
INT8 GetSelectedDestChar() { return bSelectedDestChar; } INT16 GetSelectedDestChar() { return bSelectedDestChar; }
void SetSelectedDestChar( INT8 aVal ) void SetSelectedDestChar( INT16 aVal )
{ {
bSelectedDestChar = aVal; bSelectedDestChar = aVal;
gSquadEncumbranceCheckNecessary = true; gSquadEncumbranceCheckNecessary = true;
+5 -5
View File
@@ -372,19 +372,19 @@ extern BOOLEAN fDrawTempHeliPath;
extern BOOLEAN fDrawTempMilitiaPath; extern BOOLEAN fDrawTempMilitiaPath;
// selected destination char // selected destination char
INT8 GetSelectedDestChar(); INT16 GetSelectedDestChar();
void SetSelectedDestChar( INT8 aVal ); void SetSelectedDestChar( INT16 aVal );
extern bool gSquadEncumbranceCheckNecessary; extern bool gSquadEncumbranceCheckNecessary;
// current assignment character // current assignment character
extern INT8 bSelectedAssignChar; extern INT16 bSelectedAssignChar;
// the info character // the info character
extern INT8 bSelectedInfoChar; extern INT16 bSelectedInfoChar;
// the contract char // the contract char
extern INT8 bSelectedContractChar; extern INT16 bSelectedContractChar;
// map arrows graphical index value // map arrows graphical index value
extern UINT32 guiMAPCURSORS; extern UINT32 guiMAPCURSORS;
+84 -50
View File
@@ -70,8 +70,8 @@ extern UILayout_CharPanelIconRegion UI_CHAR_Icon;
extern UILayout_CharList UI_CHARLIST; extern UILayout_CharList UI_CHARLIST;
// marke strogg more mercs // marke strogg more mercs
extern UINT8 FIRSTmercTOdisplay = 0 ; extern UINT16 FIRSTmercTOdisplay = 0 ;
extern UINT8 maxNumberOfMercVisibleInStrategyList = 0; // WANNE: Max merc displayed in the list depends on the resolution extern UINT16 maxNumberOfMercVisibleInStrategyList = 0; // WANNE: Max merc displayed in the list depends on the resolution
// inventory pool position on screen // inventory pool position on screen
#define MAP_INVEN_POOL_X 300 #define MAP_INVEN_POOL_X 300
@@ -227,7 +227,7 @@ extern UINT32 guiSAVEBUFFER;
extern BOOLEAN fShowInventoryFlag; extern BOOLEAN fShowInventoryFlag;
extern FACETYPE *gpCurrentTalkingFace; extern FACETYPE *gpCurrentTalkingFace;
extern UINT8 gubCurrentTalkingID; extern UINT16 gubCurrentTalkingID;
extern BOOLEAN fMapScreenBottomDirty; extern BOOLEAN fMapScreenBottomDirty;
extern MOUSE_REGION gMPanelRegion; extern MOUSE_REGION gMPanelRegion;
@@ -1355,7 +1355,7 @@ void HandleDisplayOfSelectedMercArrows( void )
{ {
INT16 sYPosition = 0; INT16 sYPosition = 0;
HVOBJECT hHandle; HVOBJECT hHandle;
UINT8 ubCount = 0; UINT16 ubCount = 0;
UINT16 selectedCharArrowX = UI_CHARLIST.Region.x + 1; UINT16 selectedCharArrowX = UI_CHARLIST.Region.x + 1;
@@ -2119,8 +2119,8 @@ void FindAndSetThisContractSoldier( SOLDIERTYPE *pSoldier )
{ {
if( gCharactersList[ iCounter].usSolID == pSoldier->ubID ) if( gCharactersList[ iCounter].usSolID == pSoldier->ubID )
{ {
ChangeSelectedInfoChar( ( INT8 )iCounter, TRUE ); ChangeSelectedInfoChar( ( INT16 )iCounter, TRUE );
bSelectedContractChar = ( INT8 )iCounter; bSelectedContractChar = ( INT16 )iCounter;
fShowContractMenu = TRUE; fShowContractMenu = TRUE;
// create // create
@@ -2373,9 +2373,9 @@ void RandomMercInGroupSaysQuote( GROUP *pGroup, UINT16 usQuoteNum )
{ {
PLAYERGROUP *pPlayer; PLAYERGROUP *pPlayer;
SOLDIERTYPE *pSoldier; SOLDIERTYPE *pSoldier;
UINT8 ubMercsInGroup[ CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS ]; UINT16 ubMercsInGroup[ CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS ];
UINT8 ubNumMercs = 0; UINT16 ubNumMercs = 0;
UINT8 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)
@@ -2406,7 +2406,7 @@ void RandomMercInGroupSaysQuote( GROUP *pGroup, UINT16 usQuoteNum )
// At least say quote.... // At least say quote....
if ( ubNumMercs > 0 ) if ( ubNumMercs > 0 )
{ {
ubChosenMerc = (UINT8)Random( ubNumMercs ); ubChosenMerc = (UINT16)Random( ubNumMercs );
pSoldier = MercPtrs[ ubMercsInGroup[ ubChosenMerc ] ]; pSoldier = MercPtrs[ ubMercsInGroup[ ubChosenMerc ] ];
TacticalCharacterDialogue( pSoldier, usQuoteNum ); TacticalCharacterDialogue( pSoldier, usQuoteNum );
@@ -2454,7 +2454,7 @@ BOOLEAN ValidSelectableCharForNextOrPrev( INT32 iNewCharSlot )
if ( fShowInventoryFlag || fHoldingItem ) if ( fShowInventoryFlag || fHoldingItem )
{ {
// the new guy must have accessible inventory // the new guy must have accessible inventory
if ( !MapCharacterHasAccessibleInventory( ( INT8 ) iNewCharSlot ) ) if ( !MapCharacterHasAccessibleInventory( ( INT16 ) iNewCharSlot ) )
{ {
return( FALSE ); return( FALSE );
} }
@@ -3761,60 +3761,67 @@ void CreatePopUpBoxForMovementBox( void )
// create the pop up box and mouse regions for movement list // create the pop up box and mouse regions for movement list
// create basic box // create basic box
CreatePopUpBox(&ghMoveBox, AssignmentDimensions, MovePosition, (POPUP_BOX_FLAG_CLIP_TEXT|POPUP_BOX_FLAG_RESIZE )); CreatePopUpBox(&ghMoveBox, AssignmentDimensions, MovePosition, ( POPUP_BOX_FLAG_CLIP_TEXT|POPUP_BOX_FLAG_RESIZE ));
// which buffer will box render to // which buffer will box render to
SetBoxBuffer(ghMoveBox, FRAME_BUFFER); SetBoxBuffer(ghMoveBox, FRAME_BUFFER);
// border type? // border type?
SetBorderType(ghMoveBox,guiPOPUPBORDERS); SetBorderType(ghMoveBox,guiPOPUPBORDERS);
// background texture // background texture
SetBackGroundSurface(ghMoveBox, guiPOPUPTEX); SetBackGroundSurface(ghMoveBox, guiPOPUPTEX);
// margin sizes // margin sizes
SetMargins( ghMoveBox, 6, 6, 4, 4 ); SetMargins( ghMoveBox, 6, 6, 4, 4 );
// space between lines // space between lines
SetLineSpace(ghMoveBox, 2); SetLineSpace(ghMoveBox, 2);
// set current box to this one // set current box to this one
SetCurrentBox( ghMoveBox ); SetCurrentBox( ghMoveBox );
// add strings // add strings
AddStringsToMoveBox( ); AddStringsToMoveBox( );
// set font type // set font type
SetBoxFont(ghMoveBox, MAP_SCREEN_FONT); SetBoxFont(ghMoveBox, MAP_SCREEN_FONT);
// set highlight color // set highlight color
SetBoxHighLight(ghMoveBox, FONT_WHITE); SetBoxHighLight(ghMoveBox, FONT_WHITE);
// unhighlighted color // unhighlighted color
SetBoxForeground(ghMoveBox, FONT_LTGREEN); SetBoxForeground(ghMoveBox, FONT_LTGREEN);
// make the header line WHITE // make the header line WHITE
SetBoxLineForeground( ghMoveBox, 0, FONT_WHITE ); SetBoxLineForeground( ghMoveBox, 0, FONT_WHITE );
// make the done and cancel lines YELLOW // make the done and cancel lines YELLOW
SetBoxLineForeground( ghMoveBox, GetNumberOfLinesOfTextInBox( ghMoveBox ) - 1, FONT_YELLOW ); SetBoxLineForeground( ghMoveBox, GetNumberOfLinesOfTextInBox( ghMoveBox ) - 1, FONT_YELLOW );
if ( IsAnythingSelectedForMoving() ) if ( IsAnythingSelectedForMoving() )
{ {
SetBoxLineForeground( ghMoveBox, GetNumberOfLinesOfTextInBox( ghMoveBox ) - 2, FONT_YELLOW ); SetBoxLineForeground( ghMoveBox, GetNumberOfLinesOfTextInBox( ghMoveBox ) - 2, FONT_YELLOW );
} }
// background color // background color
SetBoxBackground(ghMoveBox, FONT_BLACK); SetBoxBackground(ghMoveBox, FONT_BLACK);
// shaded color..for darkened text // shaded color..for darkened text
SetBoxShade( ghMoveBox, FONT_BLACK ); SetBoxShade( ghMoveBox, FONT_BLACK );
SetBoxSecondColumnForeground(ghMoveBox, FONT_LTGREEN);
SetBoxSecondColumnBackground(ghMoveBox, FONT_BLACK);
SetBoxSecondColumnHighLight(ghMoveBox, FONT_WHITE);
SetBoxSecondColumnShade(ghMoveBox, FONT_BLACK);
SetBoxSecondColumnFont(ghMoveBox, MAP_SCREEN_FONT);
SetBoxSecondColumnMinimumOffset(ghMoveBox, 1);
SetBoxSecondColumnOffsetAdjustment(ghMoveBox, -50);
// resize box to text // resize box to text
ResizeBoxToText( ghMoveBox ); ResizeBoxToText( ghMoveBox );
GetBoxPosition( ghMoveBox, &Position); GetBoxPosition( ghMoveBox, &Position);
GetBoxSize( ghMoveBox, &Dimensions ); GetBoxSize( ghMoveBox, &Dimensions );
@@ -3841,7 +3848,9 @@ void AddStringsToMoveBox( void )
CHAR16 sString[ 128 ], sStringB[ 128 ]; CHAR16 sString[ 128 ], sStringB[ 128 ];
UINT32 hStringHandle; UINT32 hStringHandle;
BOOLEAN fFirstOne = TRUE; BOOLEAN fFirstOne = TRUE;
const INT32 firstColumnMaxEntries = 4 * gGameOptions.ubSquadSize;
INT32 entries = 0;
bool isFirstColumnFull = false;
// set the current box // set the current box
SetCurrentBox( ghMoveBox ); SetCurrentBox( ghMoveBox );
@@ -3854,16 +3863,19 @@ void AddStringsToMoveBox( void )
GetShortSectorString( sSelMapX, sSelMapY, sStringB ); GetShortSectorString( sSelMapX, sSelMapY, sStringB );
swprintf( sString, L"%s %s", pMovementMenuStrings[ 0 ], sStringB ); swprintf( sString, L"%s %s", pMovementMenuStrings[ 0 ], sStringB );
AddMonoString(&hStringHandle, sString ); AddMonoString(&hStringHandle, sString );
AddSecondColumnMonoString(&hStringHandle, L"");
// blank line // blank line
AddMonoString(&hStringHandle, L"" ); AddMonoString(&hStringHandle, L"" );
AddSecondColumnMonoString(&hStringHandle, L"");
// add Select all line // add Select all line
if (giNumberOfSquadsInSectorMoving > 1) if (giNumberOfSquadsInSectorMoving > 1)
{ {
swprintf(sString, L"%s", pMovementMenuStrings[4]); swprintf(sString, L"%s", pMovementMenuStrings[4]);
AddMonoString(&hStringHandle, sString); AddMonoString(&hStringHandle, sString);
AddSecondColumnMonoString(&hStringHandle, L"");
} }
@@ -3885,7 +3897,15 @@ void AddStringsToMoveBox( void )
else else
swprintf( sString, L"%s", pSquadMenuStrings[iSquadMovingList[ iCount ] ] ); swprintf( sString, L"%s", pSquadMenuStrings[iSquadMovingList[ iCount ] ] );
} }
AddMonoString(&hStringHandle, sString ); if (!isFirstColumnFull)
{
AddMonoString(&hStringHandle, sString);
}
else
{
AddMonoStringToSecondColumn(&hStringHandle, sString );
}
entries += 1;
// now add all the grunts in it // now add all the grunts in it
for( iCountB = 0; iCountB < giNumberOfSoldiersInSectorMoving; iCountB++ ) for( iCountB = 0; iCountB < giNumberOfSoldiersInSectorMoving; iCountB++ )
@@ -3901,9 +3921,23 @@ void AddStringsToMoveBox( void )
{ {
swprintf( sString, L" %s", pSoldierMovingList[ iCountB ]->name ); swprintf( sString, L" %s", pSoldierMovingList[ iCountB ]->name );
} }
AddMonoString(&hStringHandle, sString );
if (!isFirstColumnFull)
{
AddMonoString(&hStringHandle, sString);
}
else
{
AddMonoStringToSecondColumn(&hStringHandle, sString);
}
entries += 1;
} }
} }
if (entries > firstColumnMaxEntries)
{
isFirstColumnFull = true;
}
} }
@@ -4202,7 +4236,7 @@ void ClearMouseRegionsForMoveBox( void )
INT32 iCounter = 0; INT32 iCounter = 0;
// run through list of mouse regions // run through list of mouse regions
for( iCounter = 0; iCounter < ( INT32 )GetNumberOfLinesOfTextInBox( ghMoveBox ); iCounter++ ) for( iCounter = 0; iCounter < ( INT32 )(GetNumberOfLinesOfTextInBox( ghMoveBox ) + GetNumberOfSecondaryLinesOfTextInBox(ghMoveBox)); iCounter++)
{ {
// remove this region // remove this region
MSYS_RemoveRegion( &gMoveMenuRegion[ iCounter ] ); MSYS_RemoveRegion( &gMoveMenuRegion[ iCounter ] );
@@ -4647,11 +4681,11 @@ void HandleSettingTheSelectedListOfMercs( void )
// yes, then set them as the destination plotting character for movement arrow purposes // yes, then set them as the destination plotting character for movement arrow purposes
fFirstOne = FALSE; fFirstOne = FALSE;
SetSelectedDestChar(( INT8 )iCounter ); SetSelectedDestChar(( INT16 )iCounter );
// make DEST column glow // make DEST column glow
giDestHighLine = iCounter; giDestHighLine = iCounter;
ChangeSelectedInfoChar( ( INT8 ) iCounter, TRUE ); ChangeSelectedInfoChar( ( INT16 ) iCounter, TRUE );
} }
// add this guy to the selected list of grunts // add this guy to the selected list of grunts
@@ -6185,7 +6219,7 @@ BOOLEAN CanCharacterMoveInStrategic( SOLDIERTYPE *pSoldier, INT8 *pbErrorNumber
( !pSoldier->flags.fBetweenSectors ) && gMercProfiles[ ELDIN ].bMercStatus != MERC_IS_DEAD ) ( !pSoldier->flags.fBetweenSectors ) && gMercProfiles[ ELDIN ].bMercStatus != MERC_IS_DEAD )
{ {
//DBrot: More Rooms //DBrot: More Rooms
UINT8 /*ubRoom,*/ cnt; UINT16 /*ubRoom,*/ cnt;
UINT16 usRoom; UINT16 usRoom;
SOLDIERTYPE * pSoldier2; SOLDIERTYPE * pSoldier2;
+2 -2
View File
@@ -24,8 +24,8 @@ typedef struct FASTHELPREGION {
// Flugente: externalised squad names // Flugente: externalised squad names
extern std::vector<std::wstring> gSquadNameVector; extern std::vector<std::wstring> gSquadNameVector;
extern UINT8 FIRSTmercTOdisplay ; extern UINT16 FIRSTmercTOdisplay ;
extern UINT8 maxNumberOfMercVisibleInStrategyList; extern UINT16 maxNumberOfMercVisibleInStrategyList;
// String Lengths Defines // String Lengths Defines
#define MAX_NAME_LENGTH 10 #define MAX_NAME_LENGTH 10
+9 -9
View File
@@ -286,7 +286,7 @@ void EndCurrentContractRenewal( )
} }
} }
void HandleMercIsWillingToRenew( UINT8 ubID ) void HandleMercIsWillingToRenew( UINT16 ubID )
{ {
SOLDIERTYPE *pSoldier = MercPtrs[ ubID ]; SOLDIERTYPE *pSoldier = MercPtrs[ ubID ];
@@ -306,7 +306,7 @@ void HandleMercIsWillingToRenew( UINT8 ubID )
} }
void HandleMercIsNotWillingToRenew( UINT8 ubID ) void HandleMercIsNotWillingToRenew( UINT16 ubID )
{ {
SOLDIERTYPE *pSoldier = MercPtrs[ ubID ]; SOLDIERTYPE *pSoldier = MercPtrs[ ubID ];
@@ -746,9 +746,9 @@ BOOLEAN WillMercRenew( SOLDIERTYPE *pSoldier, BOOLEAN fSayQuote )
void HandleBuddiesReactionToFiringMerc(SOLDIERTYPE *pFiredSoldier, INT8 bMoraleEvent ) void HandleBuddiesReactionToFiringMerc(SOLDIERTYPE *pFiredSoldier, INT8 bMoraleEvent )
{ {
INT8 bMercID; UINT16 bMercID;
INT8 bLastTeamID; UINT16 bLastTeamID;
SOLDIERTYPE * pSoldier; SOLDIERTYPE * pSoldier;
bMercID = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; bMercID = gTacticalStatus.Team[ gbPlayerNum ].bFirstID;
@@ -1456,9 +1456,9 @@ 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
UINT8 ubPotentialMercs[ CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS ] = { 0 }; UINT16 ubPotentialMercs[ CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS ] = { 0 };
UINT8 ubNumMercs = 0; UINT16 ubNumMercs = 0;
UINT8 ubChosenMerc; UINT16 ubChosenMerc;
gfFirstMercSayQuote = FALSE; gfFirstMercSayQuote = FALSE;
@@ -1538,7 +1538,7 @@ void FindOutIfAnyMercAboutToLeaveIsGonnaRenew( void )
// OK, pick one.... // OK, pick one....
if ( ubNumMercs > 0 ) if ( ubNumMercs > 0 )
{ {
ubChosenMerc = (UINT8)Random( ubNumMercs ); ubChosenMerc = (UINT16)Random( ubNumMercs );
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( MercPtrs[ ubPotentialMercs[ ubChosenMerc ] ], QUOTE_CONTRACTS_OVER );
+2 -2
View File
@@ -68,8 +68,8 @@ void FindOutIfAnyMercAboutToLeaveIsGonnaRenew( void );
void BeginContractRenewalSequence( ); void BeginContractRenewalSequence( );
void HandleContractRenewalSequence( ); void HandleContractRenewalSequence( );
void EndCurrentContractRenewal( ); void EndCurrentContractRenewal( );
void HandleMercIsWillingToRenew( UINT8 ubID ); void HandleMercIsWillingToRenew( UINT16 ubID );
void HandleMercIsNotWillingToRenew( UINT8 ubID ); void HandleMercIsNotWillingToRenew( UINT16 ubID );
BOOLEAN ContractIsExpiring( SOLDIERTYPE *pSoldier ); BOOLEAN ContractIsExpiring( SOLDIERTYPE *pSoldier );
UINT32 GetHourWhenContractDone( SOLDIERTYPE *pSoldier ); UINT32 GetHourWhenContractDone( SOLDIERTYPE *pSoldier );
+1 -1
View File
@@ -1728,7 +1728,7 @@ void RetreatMercsCallback( GUI_BUTTON *btn, INT32 reason )
{ {
///////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////
// SANDRO - merc records - times retreated counter // SANDRO - merc records - times retreated counter
for( UINT8 i = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; i <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; i++ ) for( UINT16 i = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; i <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; i++ )
{ {
if ( MercPtrs[i]->bActive && MercPtrs[i]->stats.bLife >= OKLIFE ) if ( MercPtrs[i]->bActive && MercPtrs[i]->stats.bLife >= OKLIFE )
{ {
+2 -2
View File
@@ -600,7 +600,7 @@ UINT8 NumFreeSlots( UINT8 ubTeam )
return ubNumFreeSlots; return ubNumFreeSlots;
} }
#pragma optimize("",off)
//Called when entering a sector so the campaign AI can automatically insert the //Called when entering a sector so the campaign AI can automatically insert the
//correct number of troops of each type based on the current number in the sector //correct number of troops of each type based on the current number in the sector
//in global focus (gWorldSectorX/Y) //in global focus (gWorldSectorX/Y)
@@ -1152,7 +1152,7 @@ BOOLEAN PrepareEnemyForUndergroundBattle()
Assert( FALSE ); Assert( FALSE );
return FALSE; return FALSE;
} }
#pragma optimize("",on)
//The queen AI layer must process the event by subtracting forces, etc. //The queen AI layer must process the event by subtracting forces, etc.
void ProcessQueenCmdImplicationsOfDeath( SOLDIERTYPE *pSoldier ) void ProcessQueenCmdImplicationsOfDeath( SOLDIERTYPE *pSoldier )
{ {
+4 -7
View File
@@ -2997,9 +2997,9 @@ void DestroyQuestDebugTextInputBoxes()
void AddNPCToGridNo( INT32 iGridNo ) void AddNPCToGridNo( INT32 iGridNo )
{ {
SOLDIERCREATE_STRUCT MercCreateStruct; SOLDIERCREATE_STRUCT MercCreateStruct;
INT16 sSectorX, sSectorY; INT16 sSectorX, sSectorY;
UINT8 ubID; UINT16 ubID;
GetCurrentWorldSector( &sSectorX, &sSectorY ); GetCurrentWorldSector( &sSectorX, &sSectorY );
MercCreateStruct.bTeam = CIV_TEAM; MercCreateStruct.bTeam = CIV_TEAM;
@@ -3670,10 +3670,7 @@ void IncrementActiveDropDownBox( INT16 sIncrementValue )
INT16 IsMercInTheSector( UINT16 usMercID ) INT16 IsMercInTheSector( UINT16 usMercID )
{ {
if( usMercID == -1 ) UINT16 cnt;
return( FALSE );
UINT8 cnt;
for ( cnt=0; cnt < TOTAL_SOLDIERS; cnt++ ) for ( cnt=0; cnt < TOTAL_SOLDIERS; cnt++ )
{ {
//if the merc is active //if the merc is active
+10 -10
View File
@@ -186,7 +186,7 @@ BOOLEAN CheckNPCWithin( UINT8 ubFirstNPC, UINT8 ubSecondNPC, UINT8 ubMaxDistance
return( PythSpacesAway( pFirstNPC->sGridNo, pSecondNPC->sGridNo ) <= ubMaxDistance ); return( PythSpacesAway( pFirstNPC->sGridNo, pSecondNPC->sGridNo ) <= ubMaxDistance );
} }
BOOLEAN CheckGuyVisible( UINT8 ubNPC, UINT8 ubGuy ) BOOLEAN CheckGuyVisible( UINT16 ubNPC, UINT16 ubGuy )
{ {
// NB ONLY WORKS IF ON DIFFERENT TEAMS // NB ONLY WORKS IF ON DIFFERENT TEAMS
SOLDIERTYPE * pNPC, * pGuy; SOLDIERTYPE * pNPC, * pGuy;
@@ -304,12 +304,12 @@ UINT32 NumWoundedMercsNearby( UINT8 ubProfileID )
return( bNumber ); return( bNumber );
} }
INT8 NumMercsNear( UINT8 ubProfileID, UINT8 ubMaxDist ) UINT16 NumMercsNear( UINT8 ubProfileID, UINT8 ubMaxDist )
{ {
INT8 bNumber = 0; UINT16 bNumber = 0;
UINT32 uiLoop; UINT32 uiLoop;
SOLDIERTYPE * pNPC; SOLDIERTYPE *pNPC;
SOLDIERTYPE * pSoldier; SOLDIERTYPE *pSoldier;
INT32 sGridNo; INT32 sGridNo;
pNPC = FindSoldierByProfileID( ubProfileID, FALSE ); pNPC = FindSoldierByProfileID( ubProfileID, FALSE );
@@ -399,7 +399,7 @@ BOOLEAN PCInSameRoom( UINT8 ubProfileID )
//DBrot: More Rooms //DBrot: More Rooms
//UINT8 ubRoom; //UINT8 ubRoom;
UINT16 usRoom; UINT16 usRoom;
INT8 bLoop; UINT16 bLoop;
SOLDIERTYPE * pSoldier; SOLDIERTYPE * pSoldier;
pNPC = FindSoldierByProfileID( ubProfileID, FALSE ); pNPC = FindSoldierByProfileID( ubProfileID, FALSE );
@@ -541,8 +541,8 @@ BOOLEAN FemalePresent( UINT8 ubProfileID )
BOOLEAN CheckPlayerHasHead( void ) BOOLEAN CheckPlayerHasHead( void )
{ {
INT8 bLoop; UINT16 bLoop;
SOLDIERTYPE * pSoldier; SOLDIERTYPE * pSoldier;
for ( bLoop = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; bLoop <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; bLoop++ ) for ( bLoop = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; bLoop <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; bLoop++ )
{ {
@@ -1725,7 +1725,7 @@ void GiveQuestRewardPoint( INT16 sQuestSectorX, INT16 sQuestsSectorY, INT8 bExpR
{ {
ScreenMsg( FONT_MCOLOR_LTBLUE, MSG_TESTVERSION, L"QUEST COMPLETED - Adding to merc records and awarding experiences (%d).", (bExpReward * gGameExternalOptions.usAwardSpecialExpForQuests) ); ScreenMsg( FONT_MCOLOR_LTBLUE, MSG_TESTVERSION, L"QUEST COMPLETED - Adding to merc records and awarding experiences (%d).", (bExpReward * gGameExternalOptions.usAwardSpecialExpForQuests) );
for ( UINT8 i = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; i <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; i++ ) for ( UINT16 i = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; i <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; i++ )
{ {
if( MercPtrs[ i ]->bActive && MercPtrs[ i ]->stats.bLife >= CONSCIOUSNESS && !(MercPtrs[ i ]->flags.uiStatusFlags & SOLDIER_VEHICLE) && MercPtrs[ i ]->ubProfile != NO_PROFILE && if( MercPtrs[ i ]->bActive && MercPtrs[ i ]->stats.bLife >= CONSCIOUSNESS && !(MercPtrs[ i ]->flags.uiStatusFlags & SOLDIER_VEHICLE) && MercPtrs[ i ]->ubProfile != NO_PROFILE &&
MercPtrs[ i ]->sSectorX == sQuestSectorX && MercPtrs[ i ]->sSectorY == sQuestsSectorY && !MercPtrs[ i ]->flags.fBetweenSectors && MercPtrs[ i ]->bTeam == gbPlayerNum && MercPtrs[ i ]->sSectorX == sQuestSectorX && MercPtrs[ i ]->sSectorY == sQuestsSectorY && !MercPtrs[ i ]->flags.fBetweenSectors && MercPtrs[ i ]->bTeam == gbPlayerNum &&
+2 -2
View File
@@ -728,12 +728,12 @@ extern BOOLEAN CheckNPCWounded( UINT8 ubProfileID, BOOLEAN fByPlayerOnly );
extern BOOLEAN CheckNPCInOkayHealth( UINT8 ubProfileID ); extern BOOLEAN CheckNPCInOkayHealth( UINT8 ubProfileID );
extern BOOLEAN CheckNPCBleeding( UINT8 ubProfileID ); extern BOOLEAN CheckNPCBleeding( UINT8 ubProfileID );
extern BOOLEAN CheckNPCWithin( UINT8 ubFirstNPC, UINT8 ubSecondNPC, UINT8 ubMaxDistance ); extern BOOLEAN CheckNPCWithin( UINT8 ubFirstNPC, UINT8 ubSecondNPC, UINT8 ubMaxDistance );
extern BOOLEAN CheckGuyVisible( UINT8 ubNPC, UINT8 ubGuy ); extern BOOLEAN CheckGuyVisible( UINT16 ubNPC, UINT16 ubGuy );
extern BOOLEAN CheckNPCAt( UINT8 ubNPC, INT32 sGridNo ); extern BOOLEAN CheckNPCAt( UINT8 ubNPC, INT32 sGridNo );
extern BOOLEAN CheckNPCIsEnemy( UINT8 ubProfileID ); extern BOOLEAN CheckNPCIsEnemy( UINT8 ubProfileID );
extern BOOLEAN CheckIfMercIsNearNPC( SOLDIERTYPE *pMerc, UINT8 ubProfileId ); extern BOOLEAN CheckIfMercIsNearNPC( SOLDIERTYPE *pMerc, UINT8 ubProfileId );
extern UINT32 NumWoundedMercsNearby( UINT8 ubProfileID ); extern UINT32 NumWoundedMercsNearby( UINT8 ubProfileID );
extern INT8 NumMercsNear( UINT8 ubProfileID, UINT8 ubMaxDist ); extern UINT16 NumMercsNear( UINT8 ubProfileID, UINT8 ubMaxDist );
extern BOOLEAN CheckNPCIsEPC( UINT8 ubProfileID ); extern BOOLEAN CheckNPCIsEPC( UINT8 ubProfileID );
//DBrot: More Rooms //DBrot: More Rooms
//extern BOOLEAN NPCInRoom( UINT8 ubProfileID, UINT8 ubRoomID ); //extern BOOLEAN NPCInRoom( UINT8 ubProfileID, UINT8 ubRoomID );
+1 -1
View File
@@ -657,7 +657,7 @@ BOOLEAN SortSchedule( SCHEDULENODE *pSchedule )
BOOLEAN BumpAnyExistingMerc( INT32 sGridNo ) BOOLEAN BumpAnyExistingMerc( INT32 sGridNo )
{ {
UINT8 ubID; UINT16 ubID;
SOLDIERTYPE * pSoldier; // NB this is the person already in the location, SOLDIERTYPE * pSoldier; // NB this is the person already in the location,
INT32 sNewGridNo; INT32 sNewGridNo;
UINT8 ubDir; UINT8 ubDir;
+1 -1
View File
@@ -63,7 +63,7 @@ public:
UINT32 usData2[MAX_SCHEDULE_ACTIONS]; // Secondary information, not used by most actions UINT32 usData2[MAX_SCHEDULE_ACTIONS]; // Secondary information, not used by most actions
UINT8 ubAction[MAX_SCHEDULE_ACTIONS]; UINT8 ubAction[MAX_SCHEDULE_ACTIONS];
UINT8 ubScheduleID; UINT8 ubScheduleID;
UINT8 ubSoldierID; UINT16 ubSoldierID;
UINT16 usFlags; UINT16 usFlags;
public: public:
SCHEDULENODE& operator=(const _OLD_SCHEDULENODE& src); SCHEDULENODE& operator=(const _OLD_SCHEDULENODE& src);
+1 -1
View File
@@ -55,7 +55,7 @@ UINT32 guiPabloExtraDaysBribed = 0;
UINT8 gubCambriaMedicalObjects; UINT8 gubCambriaMedicalObjects;
extern INT8 NumMercsNear( UINT8 ubProfileID, UINT8 ubMaxDist ); extern UINT16 NumMercsNear( UINT8 ubProfileID, UINT8 ubMaxDist );
extern SECTOR_EXT_DATA SectorExternalData[256][4]; extern SECTOR_EXT_DATA SectorExternalData[256][4];
+12 -15
View File
@@ -189,7 +189,7 @@ void StrategicHandlePlayerTeamMercDeath( SOLDIERTYPE *pSoldier )
void MercDailyUpdate() void MercDailyUpdate()
{ {
INT32 cnt; INT32 cnt;
INT8 bLastTeamID; UINT16 bLastTeamID;
SOLDIERTYPE *pSoldier; SOLDIERTYPE *pSoldier;
//SOLDIERTYPE *pQuitList[ 21 ]; //SOLDIERTYPE *pQuitList[ 21 ];
MERCPROFILESTRUCT *pProfile; MERCPROFILESTRUCT *pProfile;
@@ -725,7 +725,7 @@ void HandleMercsAboutToLeave( SOLDIERTYPE *pMercList )
// ATE: This function deals with MERC MERC and NPC's leaving because of not getting paid... // ATE: This function deals with MERC MERC and NPC's leaving because of not getting paid...
// NOT AIM renewals.... // NOT AIM renewals....
void MercsContractIsFinished( UINT8 ubID ) void MercsContractIsFinished( UINT16 ubID )
{ {
SOLDIERTYPE *pSoldier; SOLDIERTYPE *pSoldier;
@@ -779,7 +779,7 @@ void MercsContractIsFinished( UINT8 ubID )
} }
// ATE: Called for RPCs who should now complain about no pay... // ATE: Called for RPCs who should now complain about no pay...
void RPCWhineAboutNoPay( UINT8 ubID ) void RPCWhineAboutNoPay( UINT16 ubID )
{ {
SOLDIERTYPE *pSoldier; SOLDIERTYPE *pSoldier;
@@ -908,17 +908,14 @@ void MercComplainAboutEquipment( UINT8 ubProfile )
void UpdateBuddyAndHatedCounters( void ) void UpdateBuddyAndHatedCounters( void )
{ {
INT8 bMercID; UINT16 bMercID, bOtherID, bLastTeamID;
INT32 iLoop; INT32 iLoop;
INT8 bOtherID; UINT8 ubOtherProfileID;
INT8 bLastTeamID; SOLDIERTYPE *pSoldier;
UINT8 ubOtherProfileID; SOLDIERTYPE *pOtherSoldier;
SOLDIERTYPE *pSoldier; MERCPROFILESTRUCT *pProfile;
SOLDIERTYPE *pOtherSoldier; BOOLEAN fSameGroupOnly;
MERCPROFILESTRUCT *pProfile; BOOLEAN fUpdatedTimeTillNextHatedComplaint = FALSE;
BOOLEAN fSameGroupOnly;
BOOLEAN fUpdatedTimeTillNextHatedComplaint = FALSE;
bMercID = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; bMercID = gTacticalStatus.Team[ gbPlayerNum ].bFirstID;
bLastTeamID = gTacticalStatus.Team[ gbPlayerNum ].bLastID; bLastTeamID = gTacticalStatus.Team[ gbPlayerNum ].bLastID;
@@ -1259,7 +1256,7 @@ void UpdateBuddyAndHatedCounters( void )
void HourlyCamouflageUpdate( void ) void HourlyCamouflageUpdate( void )
{ {
INT8 bMercID, bLastTeamID; UINT16 bMercID, bLastTeamID;
SOLDIERTYPE * pSoldier; SOLDIERTYPE * pSoldier;
BOOLEAN camoWoreOff = FALSE; BOOLEAN camoWoreOff = FALSE;
bMercID = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; bMercID = gTacticalStatus.Team[ gbPlayerNum ].bFirstID;
+2 -2
View File
@@ -6,8 +6,8 @@ class SOLDIERTYPE;
void StrategicHandlePlayerTeamMercDeath( SOLDIERTYPE *pSoldier ); void StrategicHandlePlayerTeamMercDeath( SOLDIERTYPE *pSoldier );
void MercDailyUpdate(); void MercDailyUpdate();
void MercsContractIsFinished( UINT8 ubID ); void MercsContractIsFinished( UINT16 ubID );
void RPCWhineAboutNoPay( UINT8 ubID ); void RPCWhineAboutNoPay( UINT16 ubID );
void MercComplainAboutEquipment( UINT8 ubProfileID ); void MercComplainAboutEquipment( UINT8 ubProfileID );
BOOLEAN SoldierHasWorseEquipmentThanUsedTo( SOLDIERTYPE *pSoldier ); BOOLEAN SoldierHasWorseEquipmentThanUsedTo( SOLDIERTYPE *pSoldier );
void UpdateBuddyAndHatedCounters( void ); void UpdateBuddyAndHatedCounters( void );
+1 -1
View File
@@ -136,7 +136,7 @@ UINT8 gubMonsterMineInfestation[]={
// the static NPC dialogue faces // the static NPC dialogue faces
//extern UINT32 uiExternalStaticNPCFaces[]; //extern UINT32 uiExternalStaticNPCFaces[];
extern FACETYPE *gpCurrentTalkingFace; extern FACETYPE *gpCurrentTalkingFace;
extern UINT8 gubCurrentTalkingID; extern UINT16 gubCurrentTalkingID;
+1 -1
View File
@@ -4366,7 +4366,7 @@ BOOLEAN LoadPlayerGroupList( HWFILE hFile, GROUP **pGroup )
//Should never happen //Should never happen
Assert( sTempID != -1 ); Assert( sTempID != -1 );
pTemp->ubID = (UINT8) sTempID; pTemp->ubID = (UINT16) sTempID;
pTemp->pSoldier = &Menptr[ pTemp->ubID ]; pTemp->pSoldier = &Menptr[ pTemp->ubID ];
+1 -1
View File
@@ -52,7 +52,7 @@ typedef struct WAYPOINT
typedef struct PLAYERGROUP typedef struct PLAYERGROUP
{ {
UINT8 ubProfileID; //SAVE THIS VALUE ONLY. The others are temp (for quick access) UINT8 ubProfileID; //SAVE THIS VALUE ONLY. The others are temp (for quick access)
UINT8 ubID; //index in the Menptr array UINT16 ubID; //index in the Menptr array
SOLDIERTYPE *pSoldier; //direct access to the soldier pointer SOLDIERTYPE *pSoldier; //direct access to the soldier pointer
UINT8 bFlags; //flags referring to individual player soldiers UINT8 bFlags; //flags referring to individual player soldiers
struct PLAYERGROUP *next; //next player in list struct PLAYERGROUP *next; //next player in list
+6 -6
View File
@@ -2133,9 +2133,9 @@ BOOLEAN DidFirstBattleTakePlaceInThisTown( INT8 bTownId )
UINT32 PlayerStrength( void ) UINT32 PlayerStrength( void )
{ {
UINT8 ubLoop; UINT16 ubLoop;
SOLDIERTYPE * pSoldier; SOLDIERTYPE * pSoldier;
UINT32 uiStrength, uiTotal = 0; UINT32 uiStrength, uiTotal = 0;
for ( ubLoop = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; ubLoop <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ubLoop++ ) for ( ubLoop = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; ubLoop <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ubLoop++ )
{ {
@@ -2155,9 +2155,9 @@ UINT32 PlayerStrength( void )
UINT32 EnemyStrength( void ) UINT32 EnemyStrength( void )
{ {
UINT8 ubLoop; UINT16 ubLoop;
SOLDIERTYPE * pSoldier; SOLDIERTYPE * pSoldier;
UINT32 uiStrength, uiTotal = 0; UINT32 uiStrength, uiTotal = 0;
for ( ubLoop = gTacticalStatus.Team[ ENEMY_TEAM ].bFirstID; ubLoop <= gTacticalStatus.Team[ CIV_TEAM ].bLastID; ubLoop++ ) for ( ubLoop = gTacticalStatus.Team[ ENEMY_TEAM ].bFirstID; ubLoop <= gTacticalStatus.Team[ CIV_TEAM ].bLastID; ubLoop++ )
{ {
+10 -10
View File
@@ -175,67 +175,67 @@
<ConfigurationType>StaticLibrary</ConfigurationType> <ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries> <UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>NotSet</CharacterSet> <CharacterSet>NotSet</CharacterSet>
<PlatformToolset>v142</PlatformToolset> <PlatformToolset>v143</PlatformToolset>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType> <ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries> <UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>NotSet</CharacterSet> <CharacterSet>NotSet</CharacterSet>
<PlatformToolset>v142</PlatformToolset> <PlatformToolset>v143</PlatformToolset>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='MapEditorD|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='MapEditorD|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType> <ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries> <UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>NotSet</CharacterSet> <CharacterSet>NotSet</CharacterSet>
<PlatformToolset>v142</PlatformToolset> <PlatformToolset>v143</PlatformToolset>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='MapEditorD|x64'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='MapEditorD|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType> <ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries> <UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>NotSet</CharacterSet> <CharacterSet>NotSet</CharacterSet>
<PlatformToolset>v142</PlatformToolset> <PlatformToolset>v143</PlatformToolset>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType> <ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries> <UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>false</WholeProgramOptimization> <WholeProgramOptimization>false</WholeProgramOptimization>
<CharacterSet>NotSet</CharacterSet> <CharacterSet>NotSet</CharacterSet>
<PlatformToolset>v142</PlatformToolset> <PlatformToolset>v143</PlatformToolset>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType> <ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries> <UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>false</WholeProgramOptimization> <WholeProgramOptimization>false</WholeProgramOptimization>
<CharacterSet>NotSet</CharacterSet> <CharacterSet>NotSet</CharacterSet>
<PlatformToolset>v142</PlatformToolset> <PlatformToolset>v143</PlatformToolset>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='MapEditor|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='MapEditor|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType> <ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries> <UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>false</WholeProgramOptimization> <WholeProgramOptimization>false</WholeProgramOptimization>
<CharacterSet>NotSet</CharacterSet> <CharacterSet>NotSet</CharacterSet>
<PlatformToolset>v142</PlatformToolset> <PlatformToolset>v143</PlatformToolset>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='MapEditor|x64'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='MapEditor|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType> <ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries> <UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>false</WholeProgramOptimization> <WholeProgramOptimization>false</WholeProgramOptimization>
<CharacterSet>NotSet</CharacterSet> <CharacterSet>NotSet</CharacterSet>
<PlatformToolset>v142</PlatformToolset> <PlatformToolset>v143</PlatformToolset>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_WithDebugInfo|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_WithDebugInfo|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType> <ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries> <UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>false</WholeProgramOptimization> <WholeProgramOptimization>false</WholeProgramOptimization>
<CharacterSet>NotSet</CharacterSet> <CharacterSet>NotSet</CharacterSet>
<PlatformToolset>v142</PlatformToolset> <PlatformToolset>v143</PlatformToolset>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_WithDebugInfo|x64'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_WithDebugInfo|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType> <ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries> <UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>false</WholeProgramOptimization> <WholeProgramOptimization>false</WholeProgramOptimization>
<CharacterSet>NotSet</CharacterSet> <CharacterSet>NotSet</CharacterSet>
<PlatformToolset>v142</PlatformToolset> <PlatformToolset>v143</PlatformToolset>
</PropertyGroup> </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings"> <ImportGroup Label="ExtensionSettings">
+4
View File
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup />
</Project>
+38 -34
View File
@@ -502,7 +502,7 @@ BOOLEAN gfMapPanelWasRedrawn = FALSE;
UINT8 gubMAP_HandInvDispText[ NUM_INV_SLOTS ]; UINT8 gubMAP_HandInvDispText[ NUM_INV_SLOTS ];
// currently selected character's list index // currently selected character's list index
INT8 bSelectedInfoChar = -1; INT16 bSelectedInfoChar = -1;
// map sort button images // map sort button images
INT32 giMapSortButtonImage[ MAX_SORT_METHODS ] = { -1, -1, -1, -1, -1, -1 }; INT32 giMapSortButtonImage[ MAX_SORT_METHODS ] = { -1, -1, -1, -1, -1, -1 };
@@ -926,7 +926,6 @@ INT32 GetIndexForthis( SOLDIERTYPE *pSoldier );
void CheckForAndRenderNewMailOverlay(); void CheckForAndRenderNewMailOverlay();
BOOLEAN MapCharacterHasAccessibleInventory( INT8 bCharNumber );
void CheckForInventoryModeCancellation(); void CheckForInventoryModeCancellation();
void ChangeMapScreenMaskCursor( UINT16 usCursor ); void ChangeMapScreenMaskCursor( UINT16 usCursor );
@@ -1905,16 +1904,14 @@ BOOLEAN InitializeInvPanelCoordsRobot()
} }
// the tries to select a mapscreen character by his soldier ID // the tries to select a mapscreen character by his soldier ID
BOOLEAN SetInfoChar( UINT8 ubID ) BOOLEAN SetInfoChar( UINT16 ubID )
{ {
INT8 bCounter; for (INT16 bCounter = 0; bCounter < giMAXIMUM_NUMBER_OF_PLAYER_SLOTS; bCounter++)
for ( bCounter = 0; bCounter < giMAXIMUM_NUMBER_OF_PLAYER_SLOTS; bCounter++)
{ {
// skip invalid characters // skip invalid characters
if ( gCharactersList[ bCounter ].fValid == TRUE ) if ( gCharactersList[ bCounter ].fValid == TRUE )
{ {
if ( gCharactersList[ bCounter ].usSolID == (UINT16)ubID ) if ( gCharactersList[ bCounter ].usSolID == ubID )
{ {
ChangeSelectedInfoChar( bCounter, TRUE ); ChangeSelectedInfoChar( bCounter, TRUE );
return( TRUE ); return( TRUE );
@@ -3985,7 +3982,7 @@ void AddCharacter( SOLDIERTYPE *pCharacter )
} }
// copy over soldier id value // copy over soldier id value
gCharactersList[usCount].usSolID = ( UINT16 )pCharacter->ubID; gCharactersList[usCount].usSolID = pCharacter->ubID;
// valid character // valid character
gCharactersList[usCount].fValid = TRUE; gCharactersList[usCount].fValid = TRUE;
@@ -5338,9 +5335,19 @@ UINT32 MapScreenHandle(void)
CreateMouseRegionForPauseOfClock( INTERFACE_CLOCK_X, INTERFACE_CLOCK_Y ); CreateMouseRegionForPauseOfClock( INTERFACE_CLOCK_X, INTERFACE_CLOCK_Y );
// WANNE: The number of merc we can display in the list, depends on the resolution // WANNE: The number of merc we can display in the list, depends on the resolution
if (iResolution >= _640x480 && iResolution < _800x600) if (isWidescreenUI())
{ {
maxNumberOfMercVisibleInStrategyList = 22; if (giMAXIMUM_NUMBER_OF_PLAYER_SLOTS <= 57)
maxNumberOfMercVisibleInStrategyList = giMAXIMUM_NUMBER_OF_PLAYER_SLOTS;
else
maxNumberOfMercVisibleInStrategyList = 57;
}
else if (iResolution >= _1024x768)
{
if (giMAXIMUM_NUMBER_OF_PLAYER_SLOTS <= 51)
maxNumberOfMercVisibleInStrategyList = giMAXIMUM_NUMBER_OF_PLAYER_SLOTS;
else
maxNumberOfMercVisibleInStrategyList = 51;
} }
else if (iResolution < _1024x768) else if (iResolution < _1024x768)
{ {
@@ -5348,10 +5355,7 @@ UINT32 MapScreenHandle(void)
} }
else else
{ {
if (giMAXIMUM_NUMBER_OF_PLAYER_SLOTS <= 51) maxNumberOfMercVisibleInStrategyList = 22;
maxNumberOfMercVisibleInStrategyList = giMAXIMUM_NUMBER_OF_PLAYER_SLOTS;
else
maxNumberOfMercVisibleInStrategyList = 51;
} }
// create mouse regions // create mouse regions
@@ -7629,9 +7633,9 @@ void GetMapKeyboardInput( UINT32 *puiNewEvent )
{ {
if( gCharactersList[ giHighLine ].fValid == TRUE ) if( gCharactersList[ giHighLine ].fValid == TRUE )
{ {
bSelectedAssignChar = ( INT8 )giHighLine; bSelectedAssignChar = ( INT16 )giHighLine;
RebuildAssignmentsBox( ); RebuildAssignmentsBox( );
ChangeSelectedInfoChar( ( INT8 ) giHighLine, FALSE ); ChangeSelectedInfoChar( ( INT16 ) giHighLine, FALSE );
fShowAssignmentMenu = TRUE; fShowAssignmentMenu = TRUE;
} }
} }
@@ -7639,7 +7643,7 @@ void GetMapKeyboardInput( UINT32 *puiNewEvent )
{ {
if( gCharactersList[ bSelectedInfoChar ].fValid == TRUE ) if( gCharactersList[ bSelectedInfoChar ].fValid == TRUE )
{ {
bSelectedAssignChar = ( INT8 )bSelectedInfoChar; bSelectedAssignChar = bSelectedInfoChar;
RebuildAssignmentsBox( ); RebuildAssignmentsBox( );
fShowAssignmentMenu = TRUE; fShowAssignmentMenu = TRUE;
} }
@@ -11482,7 +11486,7 @@ void TeamListAssignmentRegionBtnCallBack(MOUSE_REGION *pRegion, INT32 iReason )
return; return;
} }
bSelectedAssignChar = ( INT8 ) iValue + FIRSTmercTOdisplay; bSelectedAssignChar = ( INT16 ) iValue + FIRSTmercTOdisplay;
RebuildAssignmentsBox( ); RebuildAssignmentsBox( );
// reset dest character // reset dest character
@@ -11740,7 +11744,7 @@ void TeamListDestinationRegionBtnCallBack(MOUSE_REGION *pRegion, INT32 iReason )
// select this character as the one plotting strategic movement // select this character as the one plotting strategic movement
SetSelectedDestChar( (INT8)iValue + FIRSTmercTOdisplay ); SetSelectedDestChar( (INT16)iValue + FIRSTmercTOdisplay );
// remember the current paths for all selected characters so we can restore them if need be // remember the current paths for all selected characters so we can restore them if need be
RememberPreviousPathForAllSelectedChars(); RememberPreviousPathForAllSelectedChars();
@@ -12793,7 +12797,7 @@ void ReBuildCharactersList( void )
void HandleChangeOfInfoChar( void ) void HandleChangeOfInfoChar( void )
{ {
static INT8 bOldInfoChar = -1; static INT16 bOldInfoChar = -1;
if( bSelectedInfoChar != bOldInfoChar ) if( bSelectedInfoChar != bOldInfoChar )
{ {
@@ -12849,7 +12853,7 @@ void TestMessageSystem( void )
void EnableDisableTeamListRegionsAndHelpText( void ) void EnableDisableTeamListRegionsAndHelpText( void )
{ {
// check if valid character here, if so, then do nothing..other wise set help text timer to a gazillion // check if valid character here, if so, then do nothing..other wise set help text timer to a gazillion
INT8 bCharNum; INT16 bCharNum;
for( bCharNum = 0; bCharNum < giMAXIMUM_NUMBER_OF_PLAYER_SLOTS; bCharNum++ ) for( bCharNum = 0; bCharNum < giMAXIMUM_NUMBER_OF_PLAYER_SLOTS; bCharNum++ )
@@ -13004,10 +13008,10 @@ void UpdatePausedStatesDueToTimeCompression( void )
BOOLEAN ContinueDialogue(SOLDIERTYPE *pSoldier, BOOLEAN fDone ) BOOLEAN ContinueDialogue(SOLDIERTYPE *pSoldier, BOOLEAN fDone )
{ {
// continue this grunts dialogue, restore when done // continue this grunts dialogue, restore when done
static INT8 bOldSelectedInfoChar = -1; static INT16 bOldSelectedInfoChar = -1;
static BOOLEAN fTalkingingGuy = FALSE; static BOOLEAN fTalkingingGuy = FALSE;
INT8 bCounter = 0; UINT16 bCounter = 0;
@@ -13665,9 +13669,9 @@ void UpdateStatusOfMapSortButtons( void )
INT8 GetLastValidCharacterInTeamPanelList( void ) INT16 GetLastValidCharacterInTeamPanelList( void )
{ {
INT8 iCounter = 0, iValue = 0; INT16 iCounter = 0, iValue = 0;
// run through the list and find the last valid guy in the list // run through the list and find the last valid guy in the list
for( iCounter = 0; iCounter < giMAXIMUM_NUMBER_OF_PLAYER_SLOTS; iCounter++ ) for( iCounter = 0; iCounter < giMAXIMUM_NUMBER_OF_PLAYER_SLOTS; iCounter++ )
@@ -14543,7 +14547,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;
UINT8 uiID, uiIDA; UINT16 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;
@@ -15093,7 +15097,7 @@ BOOLEAN CanToggleSelectedCharInventory( void )
BOOLEAN MapCharacterHasAccessibleInventory( INT8 bCharNumber ) BOOLEAN MapCharacterHasAccessibleInventory( INT16 bCharNumber )
{ {
SOLDIERTYPE *pSoldier = NULL; SOLDIERTYPE *pSoldier = NULL;
@@ -15606,7 +15610,7 @@ INT32 GetContractExpiryTime( SOLDIERTYPE *pSoldier )
void ChangeSelectedInfoChar( INT8 bCharNumber, BOOLEAN fResetSelectedList ) void ChangeSelectedInfoChar( INT16 bCharNumber, BOOLEAN fResetSelectedList )
{ {
Assert( ( bCharNumber >= -1 ) && ( bCharNumber < giMAXIMUM_NUMBER_OF_PLAYER_SLOTS ) ); Assert( ( bCharNumber >= -1 ) && ( bCharNumber < giMAXIMUM_NUMBER_OF_PLAYER_SLOTS ) );
@@ -16177,10 +16181,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
UINT8 ubSelectedMercID[ CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS ]; UINT16 ubSelectedMercID[ CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS ];
UINT8 ubSelectedMercIndex[ CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS ]; UINT16 ubSelectedMercIndex[ CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS ];
UINT8 ubNumMercs = 0; UINT16 ubNumMercs = 0;
UINT8 ubChosenMerc; UINT16 ubChosenMerc;
for( iCounter = 0; iCounter < giMAXIMUM_NUMBER_OF_PLAYER_SLOTS; iCounter++ ) for( iCounter = 0; iCounter < giMAXIMUM_NUMBER_OF_PLAYER_SLOTS; iCounter++ )
@@ -16193,7 +16197,7 @@ void RandomAwakeSelectedMercConfirmsStrategicMove( void )
!AM_A_ROBOT( pSoldier ) && !AM_AN_EPC( pSoldier ) && !pSoldier->flags.fMercAsleep ) !AM_A_ROBOT( pSoldier ) && !AM_AN_EPC( pSoldier ) && !pSoldier->flags.fMercAsleep )
{ {
ubSelectedMercID[ ubNumMercs ] = pSoldier->ubID; ubSelectedMercID[ ubNumMercs ] = pSoldier->ubID;
ubSelectedMercIndex[ ubNumMercs ] = (UINT8)iCounter; ubSelectedMercIndex[ ubNumMercs ] = (UINT16)iCounter;
ubNumMercs++; ubNumMercs++;
} }
@@ -16202,7 +16206,7 @@ void RandomAwakeSelectedMercConfirmsStrategicMove( void )
if ( ubNumMercs > 0 ) if ( ubNumMercs > 0 )
{ {
ubChosenMerc = (UINT8)Random( ubNumMercs ); ubChosenMerc = (UINT16)Random( ubNumMercs );
// 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 );
+3 -3
View File
@@ -135,7 +135,7 @@ extern BOOLEAN gfInChangeArrivalSectorMode;
extern BOOLEAN gfSkyriderEmptyHelpGiven; extern BOOLEAN gfSkyriderEmptyHelpGiven;
BOOLEAN SetInfoChar(UINT8 ubSolId); BOOLEAN SetInfoChar(UINT16 ubID);
void EndMapScreen( BOOLEAN fDuringFade ); void EndMapScreen( BOOLEAN fDuringFade );
void ReBuildCharactersList( void ); void ReBuildCharactersList( void );
@@ -152,7 +152,7 @@ BOOLEAN CanExtendContractForCharSlot( INT8 bCharNumber );
void TellPlayerWhyHeCantCompressTime( void ); void TellPlayerWhyHeCantCompressTime( void );
void ChangeSelectedInfoChar( INT8 bCharNumber, BOOLEAN fResetSelectedList ); void ChangeSelectedInfoChar( INT16 bCharNumber, BOOLEAN fResetSelectedList );
void MAPEndItemPointer(); void MAPEndItemPointer();
@@ -169,7 +169,7 @@ void ExplainWhySkyriderCantFly( void );
BOOLEAN CanChangeSleepStatusForCharSlot( INT8 bCharNumber ); BOOLEAN CanChangeSleepStatusForCharSlot( INT8 bCharNumber );
BOOLEAN CanChangeSleepStatusForSoldier( SOLDIERTYPE *pSoldier ); BOOLEAN CanChangeSleepStatusForSoldier( SOLDIERTYPE *pSoldier );
BOOLEAN MapCharacterHasAccessibleInventory( INT8 bCharNumber ); BOOLEAN MapCharacterHasAccessibleInventory( INT16 bCharNumber );
// CHRISL: New functions to handle initialization of inventory coordinates // CHRISL: New functions to handle initialization of inventory coordinates
BOOLEAN InitializeInvPanelCoordsOld( ); BOOLEAN InitializeInvPanelCoordsOld( );
+3 -3
View File
@@ -2058,7 +2058,7 @@ void GetCurrentWorldSector( INT16 *psMapX, INT16 *psMapY )
} }
//not in overhead.h! //not in overhead.h!
extern UINT8 NumEnemyInSector( ); extern UINT16 NumEnemyInSector( );
void HandleRPCDescriptionOfSector( INT16 sSectorX, INT16 sSectorY, INT16 sSectorZ ) void HandleRPCDescriptionOfSector( INT16 sSectorX, INT16 sSectorY, INT16 sSectorZ )
{ {
@@ -2777,7 +2777,7 @@ void HandleQuestCodeOnSectorEntry( INT16 sNewSectorX, INT16 sNewSectorY, INT8 bN
//UINT8 ubRandomMiner[RANDOM_HEAD_MINERS] = { 106, 156, 157, 158 }; //UINT8 ubRandomMiner[RANDOM_HEAD_MINERS] = { 106, 156, 157, 158 };
//UINT8 ubMiner, ubMinersPlaced, ubMine; //UINT8 ubMiner, ubMinersPlaced, ubMine;
UINT8 ubThisMine; UINT8 ubThisMine;
UINT8 cnt; UINT16 cnt;
SOLDIERTYPE * pSoldier; SOLDIERTYPE * pSoldier;
// are we in a mine sector, on the surface? // are we in a mine sector, on the surface?
@@ -4063,7 +4063,7 @@ void JumpIntoAdjacentSector( UINT8 ubTacticalDirection, UINT8 ubJumpCode, INT32
// Set initial selected // Set initial selected
// ATE: moved this towards top... // ATE: moved this towards top...
gubPreferredInitialSelectedGuy = (UINT8)gusSelectedSoldier; gubPreferredInitialSelectedGuy = gusSelectedSoldier;
if ( ubJumpCode == JUMP_ALL_LOAD_NEW || ubJumpCode == JUMP_ALL_NO_LOAD ) if ( ubJumpCode == JUMP_ALL_LOAD_NEW || ubJumpCode == JUMP_ALL_NO_LOAD )
{ {
+6 -6
View File
@@ -310,9 +310,9 @@ BOOLEAN BeginAirRaid( )
INT32 PickLocationNearAnyMercInSector( ) INT32 PickLocationNearAnyMercInSector( )
{ {
UINT8 ubMercsInSector[ 20 ] = { 0 }; UINT16 ubMercsInSector[ 20 ] = { 0 };
UINT8 ubNumMercs = 0; UINT16 ubNumMercs = 0;
UINT8 ubChosenMerc; UINT16 ubChosenMerc;
SOLDIERTYPE *pTeamSoldier; SOLDIERTYPE *pTeamSoldier;
INT32 cnt=0; INT32 cnt=0;
@@ -330,7 +330,7 @@ INT32 PickLocationNearAnyMercInSector( )
DebugMsg(TOPIC_JA2,DBG_LEVEL_3,String("PickLocationNearAnyMercInSector: looping %d",cnt)); DebugMsg(TOPIC_JA2,DBG_LEVEL_3,String("PickLocationNearAnyMercInSector: looping %d",cnt));
if ( OK_INSECTOR_MERC( pTeamSoldier ) ) if ( OK_INSECTOR_MERC( pTeamSoldier ) )
{ {
ubMercsInSector[ ubNumMercs ] = (UINT8)cnt; ubMercsInSector[ ubNumMercs ] = (UINT16)cnt;
ubNumMercs++; ubNumMercs++;
} }
} }
@@ -339,7 +339,7 @@ INT32 PickLocationNearAnyMercInSector( )
DebugMsg(TOPIC_JA2,DBG_LEVEL_3,String("PickLocationNearAnyMercInSector: number of guys %d",ubNumMercs)); DebugMsg(TOPIC_JA2,DBG_LEVEL_3,String("PickLocationNearAnyMercInSector: number of guys %d",ubNumMercs));
if ( ubNumMercs > 0 ) if ( ubNumMercs > 0 )
{ {
ubChosenMerc = (UINT8)Random( ubNumMercs ); ubChosenMerc = (UINT16)Random( ubNumMercs );
DebugMsg(TOPIC_JA2,DBG_LEVEL_3,String("PickLocationNearAnyMercInSector: chosen guy = %d",ubChosenMerc)); DebugMsg(TOPIC_JA2,DBG_LEVEL_3,String("PickLocationNearAnyMercInSector: chosen guy = %d",ubChosenMerc));
return( MercPtrs[ ubMercsInSector[ ubChosenMerc ] ]->sGridNo ); return( MercPtrs[ ubMercsInSector[ ubChosenMerc ] ]->sGridNo );
@@ -1007,7 +1007,7 @@ void DoBombing( )
} }
// Drop bombs... // Drop bombs...
InternalIgniteExplosion( NOBODY, CenterX( sBombGridNo ), CenterY( sBombGridNo ), 0, sBombGridNo, usItem, fLocate , (UINT8)IsRoofPresentAtGridNo( sBombGridNo ) ); InternalIgniteExplosion( NOBODY, CenterX( sBombGridNo ), CenterY( sBombGridNo ), 0, sBombGridNo, usItem, fLocate, (UINT8)IsRoofPresentAtGridNo( sBombGridNo ) );
} }
+3 -3
View File
@@ -917,7 +917,7 @@ BOOLEAN DeInitAnimationSystem( )
STRUCTURE_FILE_REF *InternalGetAnimationStructureRef( UINT8 usSoldierID, UINT16 usSurfaceIndex, UINT16 usAnimState, BOOLEAN fUseAbsolute ) STRUCTURE_FILE_REF *InternalGetAnimationStructureRef( UINT16 usSoldierID, UINT16 usSurfaceIndex, UINT16 usAnimState, BOOLEAN fUseAbsolute )
{ {
INT8 bStructDataType; INT8 bStructDataType;
@@ -946,13 +946,13 @@ STRUCTURE_FILE_REF *InternalGetAnimationStructureRef( UINT8 usSoldierID, UINT16
} }
STRUCTURE_FILE_REF *GetAnimationStructureRef( UINT8 usSoldierID, UINT16 usSurfaceIndex, UINT16 usAnimState ) STRUCTURE_FILE_REF *GetAnimationStructureRef( UINT16 usSoldierID, UINT16 usSurfaceIndex, UINT16 usAnimState )
{ {
return( InternalGetAnimationStructureRef( usSoldierID, usSurfaceIndex, usAnimState, FALSE ) ); return( InternalGetAnimationStructureRef( usSoldierID, usSurfaceIndex, usAnimState, FALSE ) );
} }
STRUCTURE_FILE_REF *GetDefaultStructureRef( UINT8 usSoldierID ) STRUCTURE_FILE_REF *GetDefaultStructureRef( UINT16 usSoldierID )
{ {
return( gAnimStructureDatabase[ MercPtrs[ usSoldierID ]->ubBodyType ][ DEFAULT_STRUCT ].pStructureFileRef ); return( gAnimStructureDatabase[ MercPtrs[ usSoldierID ]->ubBodyType ][ DEFAULT_STRUCT ].pStructureFileRef );
} }
+2 -2
View File
@@ -696,8 +696,8 @@ void ClearAnimationSurfacesUsageHistory( UINT16 usSoldierID );
void DeleteAnimationProfiles( ); void DeleteAnimationProfiles( );
BOOLEAN LoadAnimationProfiles( ); BOOLEAN LoadAnimationProfiles( );
STRUCTURE_FILE_REF *GetAnimationStructureRef( UINT8 usSoldierID, UINT16 usSurfaceIndex, UINT16 usAnimState ); STRUCTURE_FILE_REF *GetAnimationStructureRef( UINT16 usSoldierID, UINT16 usSurfaceIndex, UINT16 usAnimState );
STRUCTURE_FILE_REF *GetDefaultStructureRef( UINT8 usSoldierID ); STRUCTURE_FILE_REF *GetDefaultStructureRef( UINT16 usSoldierID );
// Profile data // Profile data
extern ANIM_PROF *gpAnimProfiles; extern ANIM_PROF *gpAnimProfiles;
+1 -1
View File
@@ -1818,7 +1818,7 @@ void RemoveRandomItemFromArmsDealerInventory( UINT8 ubArmsDealer, UINT16 usItemI
} }
BOOLEAN AddDeadArmsDealerItemsToWorld( UINT8 usProfileID, UINT8 aMercID ) BOOLEAN AddDeadArmsDealerItemsToWorld( UINT8 usProfileID, UINT16 aMercID )
{ {
//Get Dealer ID from from merc Id //Get Dealer ID from from merc Id
INT8 bArmsDealer = GetArmsDealerIDFromMercID( usProfileID ); INT8 bArmsDealer = GetArmsDealerIDFromMercID( usProfileID );
+1 -1
View File
@@ -366,7 +366,7 @@ UINT32 GetTimeToFixItemBeingRepaired( UINT8 ubArmsDealer, UINT16 usItemIndex, UI
BOOLEAN CanDealerTransactItem( UINT8 ubArmsDealer, UINT16 usItemIndex, BOOLEAN fPurchaseFromPlayer ); BOOLEAN CanDealerTransactItem( UINT8 ubArmsDealer, UINT16 usItemIndex, BOOLEAN fPurchaseFromPlayer );
BOOLEAN CanDealerRepairItem( UINT8 ubArmsDealer, UINT16 usItemIndex ); BOOLEAN CanDealerRepairItem( UINT8 ubArmsDealer, UINT16 usItemIndex );
BOOLEAN AddDeadArmsDealerItemsToWorld( UINT8 usProfileID, UINT8 aMercID ); BOOLEAN AddDeadArmsDealerItemsToWorld( UINT8 usProfileID, UINT16 aMercID );
void MakeObjectOutOfDealerItems( DEALER_SPECIAL_ITEM *pSpclItemInfo, OBJECTTYPE *pObject ); void MakeObjectOutOfDealerItems( DEALER_SPECIAL_ITEM *pSpclItemInfo, OBJECTTYPE *pObject );
void CreateObjectForDealer( int usItem, int status, int numObjects, OBJECTTYPE *pObject ); void CreateObjectForDealer( int usItem, int status, int numObjects, OBJECTTYPE *pObject );
+3 -3
View File
@@ -89,7 +89,7 @@ BOOLEAN RemoveFacesForAutoBandage( void );
extern BOOLEAN CanCharacterAutoBandageTeammate( SOLDIERTYPE *pSoldier ); extern BOOLEAN CanCharacterAutoBandageTeammate( SOLDIERTYPE *pSoldier );
extern BOOLEAN CanCharacterBeAutoBandagedByTeammate( SOLDIERTYPE *pSoldier ); extern BOOLEAN CanCharacterBeAutoBandagedByTeammate( SOLDIERTYPE *pSoldier );
extern UINT8 NumEnemyInSector( ); extern UINT16 NumEnemyInSector( );
void BeginAutoBandage( ) void BeginAutoBandage( )
{ {
@@ -316,7 +316,7 @@ BOOLEAN CreateAutoBandageString( void )
{ {
INT32 cnt; INT32 cnt;
// WDS - make number of mercenaries, etc. be configurable // WDS - make number of mercenaries, etc. be configurable
UINT8 ubDoctor[CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS], ubDoctors = 0; UINT16 ubDoctor[CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS], ubDoctors = 0;
UINT32 uiDoctorNameStringLength = 1; // for end-of-string character UINT32 uiDoctorNameStringLength = 1; // for end-of-string character
STR16 sTemp; STR16 sTemp;
SOLDIERTYPE * pSoldier; SOLDIERTYPE * pSoldier;
@@ -399,7 +399,7 @@ void SetAutoBandageComplete( void )
void AutoBandage( BOOLEAN fStart ) void AutoBandage( BOOLEAN fStart )
{ {
SGPRect aRect; SGPRect aRect;
UINT8 ubLoop; UINT16 ubLoop;
INT32 cnt; INT32 cnt;
SOLDIERTYPE * pSoldier; SOLDIERTYPE * pSoldier;
+5 -5
View File
@@ -28,7 +28,7 @@
#endif #endif
INT32 gsBoxerGridNo[ NUM_BOXERS ] = { 11393, 11233, 11073 }; INT32 gsBoxerGridNo[ NUM_BOXERS ] = { 11393, 11233, 11073 };
UINT8 gubBoxerID[ NUM_BOXERS ] = { NOBODY, NOBODY, NOBODY }; UINT16 gubBoxerID[ NUM_BOXERS ] = { NOBODY, NOBODY, NOBODY };
BOOLEAN gfBoxerFought[ NUM_BOXERS ] = { FALSE, FALSE, FALSE }; BOOLEAN gfBoxerFought[ NUM_BOXERS ] = { FALSE, FALSE, FALSE };
BOOLEAN gfLastBoxingMatchWonByPlayer = FALSE; BOOLEAN gfLastBoxingMatchWonByPlayer = FALSE;
UINT8 gubBoxingMatchesWon = 0; UINT8 gubBoxingMatchesWon = 0;
@@ -331,7 +331,7 @@ void CountPeopleInBoxingRingAndDoActions( void )
BOOLEAN CheckOnBoxers( void ) BOOLEAN CheckOnBoxers( void )
{ {
UINT32 uiLoop; UINT32 uiLoop;
UINT8 ubID; UINT16 ubID;
// repick boxer IDs every time // repick boxer IDs every time
if ( gubBoxerID[0] == NOBODY ) if ( gubBoxerID[0] == NOBODY )
@@ -482,9 +482,9 @@ BOOLEAN AnotherFightPossible( void )
// a player has at least OKLIFE + 5 life // a player has at least OKLIFE + 5 life
// and at least one fight HAS occurred // and at least one fight HAS occurred
UINT8 ubLoop; UINT16 ubLoop;
SOLDIERTYPE * pSoldier; SOLDIERTYPE * pSoldier;
UINT8 ubAvailable; UINT8 ubAvailable;
ubAvailable = BoxersAvailable(); ubAvailable = BoxersAvailable();
+1 -1
View File
@@ -20,7 +20,7 @@ enum DisqualificationReasons
} ; } ;
extern INT32 gsBoxerGridNo[ NUM_BOXERS ]; extern INT32 gsBoxerGridNo[ NUM_BOXERS ];
extern UINT8 gubBoxerID[ NUM_BOXERS ]; extern UINT16 gubBoxerID[ NUM_BOXERS ];
extern BOOLEAN gfBoxerFought[ NUM_BOXERS ]; extern BOOLEAN gfBoxerFought[ NUM_BOXERS ];
extern INT8 gbBoxingState; extern INT8 gbBoxingState;
extern BOOLEAN gfLastBoxingMatchWonByPlayer; extern BOOLEAN gfLastBoxingMatchWonByPlayer;
+3 -3
View File
@@ -30,8 +30,8 @@ typedef struct
LEVELNODE* pNodes[BULLET_TRACER_MAX_LENGTH]; LEVELNODE* pNodes[BULLET_TRACER_MAX_LENGTH];
//afp-end //afp-end
INT32 iBullet; INT32 iBullet;
UINT8 ubFirerID; UINT16 ubFirerID;
UINT8 ubTargetID; UINT16 ubTargetID;
INT8 bStartCubesAboveLevelZ; INT8 bStartCubesAboveLevelZ;
INT8 bEndCubesAboveLevelZ; INT8 bEndCubesAboveLevelZ;
INT32 sGridNo; INT32 sGridNo;
@@ -83,7 +83,7 @@ typedef struct
extern UINT32 guiNumBullets; extern UINT32 guiNumBullets;
INT32 CreateBullet( UINT8 ubFirer, BOOLEAN fFake, UINT16 usFlags,UINT16 fromItem ); INT32 CreateBullet( UINT16 ubFirerID, BOOLEAN fFake, UINT16 usFlags,UINT16 fromItem );
void RemoveBullet( INT32 iBullet ); void RemoveBullet( INT32 iBullet );
void StopBullet( INT32 iBullet ); void StopBullet( INT32 iBullet );
void UpdateBullets( ); void UpdateBullets( );
+1 -1
View File
@@ -1837,7 +1837,7 @@ void TestDumpStatChanges(void)
void AwardExperienceBonusToActiveSquad( UINT8 ubExpBonusType ) void AwardExperienceBonusToActiveSquad( UINT8 ubExpBonusType )
{ {
UINT16 usXPs = 0; UINT16 usXPs = 0;
UINT8 ubGuynum; UINT16 ubGuynum;
SOLDIERTYPE *pSoldier; SOLDIERTYPE *pSoldier;
+2 -1
View File
@@ -1127,7 +1127,7 @@ BOOLEAN LoadCivQuotesFromLoadGameFile( HWFILE hFile )
return( TRUE ); return( TRUE );
} }
//-------------------------------------------------------------- //--------------------------------------------------------------
#pragma optimize("", off)
// anv: start enemy taunt with probabilty depending on taunt settings // anv: start enemy taunt with probabilty depending on taunt settings
void PossiblyStartEnemyTaunt( SOLDIERTYPE *pCiv, TAUNTTYPE iTauntType, UINT32 uiTargetID ) void PossiblyStartEnemyTaunt( SOLDIERTYPE *pCiv, TAUNTTYPE iTauntType, UINT32 uiTargetID )
{ {
@@ -1342,6 +1342,7 @@ void PossiblyStartEnemyTaunt( SOLDIERTYPE *pCiv, TAUNTTYPE iTauntType, UINT32 ui
StartEnemyTaunt( pCiv, iTauntType, pTarget ); StartEnemyTaunt( pCiv, iTauntType, pTarget );
} }
#pragma optimize("", on)
// SANDRO - soldier taunts // SANDRO - soldier taunts
void StartEnemyTaunt( SOLDIERTYPE *pCiv, TAUNTTYPE iTauntType, SOLDIERTYPE *pTarget ) void StartEnemyTaunt( SOLDIERTYPE *pCiv, TAUNTTYPE iTauntType, SOLDIERTYPE *pTarget )
+25 -25
View File
@@ -176,7 +176,7 @@ UINT8 gubNumStopTimeQuotes = 2;
#define INITIAL_Q_SIZE 10 #define INITIAL_Q_SIZE 10
HQUEUE ghDialogueQ = NULL; HQUEUE ghDialogueQ = NULL;
FACETYPE *gpCurrentTalkingFace = NULL; FACETYPE *gpCurrentTalkingFace = NULL;
UINT8 gubCurrentTalkingID = NO_PROFILE; UINT16 gubCurrentTalkingID = NO_PROFILE;
INT8 gbUIHandlerID; INT8 gbUIHandlerID;
INT32 giNPCReferenceCount = 0; INT32 giNPCReferenceCount = 0;
@@ -763,7 +763,7 @@ void HandleDialogue( )
{ {
SOLDIERTYPE * pMike; SOLDIERTYPE * pMike;
INT32 sPlayerGridNo; INT32 sPlayerGridNo;
UINT8 ubPlayerID; UINT16 ubPlayerID;
pMike = FindSoldierByProfileID( MIKE, FALSE ); pMike = FindSoldierByProfileID( MIKE, FALSE );
if ( pMike ) if ( pMike )
@@ -949,11 +949,11 @@ void HandleDialogue( )
} }
else if ( QItem->uiSpecialEventFlag & DIALOGUE_SPECIAL_EVENT_CONTRACT_WANTS_TO_RENEW ) else if ( QItem->uiSpecialEventFlag & DIALOGUE_SPECIAL_EVENT_CONTRACT_WANTS_TO_RENEW )
{ {
HandleMercIsWillingToRenew( (UINT8)QItem->uiSpecialEventData ); HandleMercIsWillingToRenew( (UINT16)QItem->uiSpecialEventData );
} }
else if ( QItem->uiSpecialEventFlag & DIALOGUE_SPECIAL_EVENT_CONTRACT_NOGO_TO_RENEW ) else if ( QItem->uiSpecialEventFlag & DIALOGUE_SPECIAL_EVENT_CONTRACT_NOGO_TO_RENEW )
{ {
HandleMercIsNotWillingToRenew( (UINT8)QItem->uiSpecialEventData ); HandleMercIsNotWillingToRenew( (UINT16)QItem->uiSpecialEventData );
} }
else else
{ {
@@ -2061,7 +2061,7 @@ BOOLEAN SpecialCharacterDialogueEventWithExtraParam( UINT32 uiSpecialEventFlag,
} }
extern INT8 gbSelectedArmsDealerID; extern INT8 gbSelectedArmsDealerID;
extern UINT8 gusIDOfCivTrader; extern UINT16 gusIDOfCivTrader;
BOOLEAN ExecuteCharacterDialogue( UINT8 ubCharacterNum, UINT16 usQuoteNum, INT32 iFaceIndex, UINT8 bUIHandlerID, BOOLEAN fFromSoldier ) BOOLEAN ExecuteCharacterDialogue( UINT8 ubCharacterNum, UINT16 usQuoteNum, INT32 iFaceIndex, UINT8 bUIHandlerID, BOOLEAN fFromSoldier )
{ {
@@ -3176,8 +3176,8 @@ void HandleDialogueEnd( FACETYPE *pFace )
SOLDIERTYPE *pSoldier = FindSoldierByProfileID( gTacticalStatus.ubLastQuoteProfileNUm, FALSE ); SOLDIERTYPE *pSoldier = FindSoldierByProfileID( gTacticalStatus.ubLastQuoteProfileNUm, FALSE );
if ( pSoldier ) if ( pSoldier )
{ {
UINT8 ubSeenEnemies[ MAX_NUM_SOLDIERS ]; UINT16 ubSeenEnemies[ MAX_NUM_SOLDIERS ];
UINT8 ubSeenEnemiesCnt = 0; UINT16 ubSeenEnemiesCnt = 0;
switch( gTacticalStatus.ubLastQuoteSaid ) switch( gTacticalStatus.ubLastQuoteSaid )
{ {
case QUOTE_CLOSE_CALL: case QUOTE_CLOSE_CALL:
@@ -3188,7 +3188,7 @@ void HandleDialogueEnd( FACETYPE *pFace )
break; break;
default: default:
// select random enemy, who we see, who sees us and isn't deaf // select random enemy, who we see, who sees us and isn't deaf
for(UINT8 cnt = gTacticalStatus.Team[ ENEMY_TEAM ].bFirstID; cnt <= gTacticalStatus.Team[ ENEMY_TEAM ].bLastID ; cnt++ ) for(UINT16 cnt = gTacticalStatus.Team[ ENEMY_TEAM ].bFirstID; cnt <= gTacticalStatus.Team[ ENEMY_TEAM ].bLastID ; cnt++ )
{ {
if( MercPtrs[cnt] != NULL && MercPtrs[cnt]->aiData.bOppList[pSoldier->ubID] == SEEN_CURRENTLY if( MercPtrs[cnt] != NULL && MercPtrs[cnt]->aiData.bOppList[pSoldier->ubID] == SEEN_CURRENTLY
&& MercPtrs[pSoldier->ubID]->aiData.bOppList[cnt] == SEEN_CURRENTLY && !( MercPtrs[cnt]->bDeafenedCounter > 0 ) ) && MercPtrs[pSoldier->ubID]->aiData.bOppList[cnt] == SEEN_CURRENTLY && !( MercPtrs[cnt]->bDeafenedCounter > 0 ) )
@@ -3359,9 +3359,9 @@ void RenderSubtitleBoxOverlay( VIDEO_OVERLAY *pBlitter )
void SayQuoteFromAnyBodyInSector( UINT16 usQuoteNum ) void SayQuoteFromAnyBodyInSector( UINT16 usQuoteNum )
{ {
// WDS - make number of mercenaries, etc. be configurable // WDS - make number of mercenaries, etc. be configurable
std::vector<UINT8> ubMercsInSector (CODE_MAXIMUM_NUMBER_OF_PLAYER_MERCS, 0); std::vector<UINT16> ubMercsInSector (CODE_MAXIMUM_NUMBER_OF_PLAYER_MERCS, 0);
UINT8 ubNumMercs = 0; UINT16 ubNumMercs = 0;
UINT8 ubChosenMerc; UINT16 ubChosenMerc;
SOLDIERTYPE *pTeamSoldier; SOLDIERTYPE *pTeamSoldier;
INT32 cnt; INT32 cnt;
@@ -3395,7 +3395,7 @@ void SayQuoteFromAnyBodyInSector( UINT16 usQuoteNum )
#endif #endif
} }
ubMercsInSector[ ubNumMercs ] = (UINT8)cnt; ubMercsInSector[ ubNumMercs ] = (UINT16)cnt;
ubNumMercs++; ubNumMercs++;
} }
} }
@@ -3403,7 +3403,7 @@ void SayQuoteFromAnyBodyInSector( UINT16 usQuoteNum )
// If we are > 0 // If we are > 0
if ( ubNumMercs > 0 ) if ( ubNumMercs > 0 )
{ {
ubChosenMerc = (UINT8)Random( ubNumMercs ); ubChosenMerc = (UINT16)Random( ubNumMercs );
// If we are air raid, AND red exists somewhere... // If we are air raid, AND red exists somewhere...
if ( usQuoteNum == QUOTE_AIR_RAID ) if ( usQuoteNum == QUOTE_AIR_RAID )
@@ -3412,7 +3412,7 @@ void SayQuoteFromAnyBodyInSector( UINT16 usQuoteNum )
{ {
if ( ubMercsInSector[ cnt ] == 11 ) if ( ubMercsInSector[ cnt ] == 11 )
{ {
ubChosenMerc = (UINT8)cnt; ubChosenMerc = (UINT16)cnt;
break; break;
} }
} }
@@ -3447,7 +3447,7 @@ void SayQuoteFromAnyBodyInThisSector( INT16 sSectorX, INT16 sSectorY, INT8 bSect
// Add guy if he's a candidate... // Add guy if he's a candidate...
if( pTeamSoldier->sSectorX == sSectorX && pTeamSoldier->sSectorY == sSectorY && pTeamSoldier->bSectorZ == bSectorZ && !AM_AN_EPC( pTeamSoldier ) && !( pTeamSoldier->flags.uiStatusFlags & SOLDIER_GASSED ) && !(AM_A_ROBOT( pTeamSoldier )) && !pTeamSoldier->flags.fMercAsleep ) if( pTeamSoldier->sSectorX == sSectorX && pTeamSoldier->sSectorY == sSectorY && pTeamSoldier->bSectorZ == bSectorZ && !AM_AN_EPC( pTeamSoldier ) && !( pTeamSoldier->flags.uiStatusFlags & SOLDIER_GASSED ) && !(AM_A_ROBOT( pTeamSoldier )) && !pTeamSoldier->flags.fMercAsleep )
{ {
ubMercsInSector[ ubNumMercs ] = (UINT8)cnt; ubMercsInSector[ ubNumMercs ] = (UINT16)cnt;
++ubNumMercs; ++ubNumMercs;
} }
} }
@@ -3481,9 +3481,9 @@ void SayQuoteFromAnyBodyInThisSector( INT16 sSectorX, INT16 sSectorY, INT8 bSect
void SayQuoteFromNearbyMercInSector( INT32 sGridNo, INT8 bDistance, UINT16 usQuoteNum ) void SayQuoteFromNearbyMercInSector( INT32 sGridNo, INT8 bDistance, UINT16 usQuoteNum )
{ {
// WDS - make number of mercenaries, etc. be configurable // WDS - make number of mercenaries, etc. be configurable
std::vector<UINT8> ubMercsInSector (CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS, 0 ); std::vector<UINT16> ubMercsInSector (CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS, 0 );
UINT8 ubNumMercs = 0; UINT16 ubNumMercs = 0;
UINT8 ubChosenMerc; UINT16 ubChosenMerc;
SOLDIERTYPE *pTeamSoldier; SOLDIERTYPE *pTeamSoldier;
INT32 cnt; INT32 cnt;
@@ -3503,7 +3503,7 @@ void SayQuoteFromNearbyMercInSector( INT32 sGridNo, INT8 bDistance, UINT16 usQuo
{ {
continue; continue;
} }
ubMercsInSector[ ubNumMercs ] = (UINT8)cnt; ubMercsInSector[ ubNumMercs ] = (UINT16)cnt;
ubNumMercs++; ubNumMercs++;
} }
} }
@@ -3511,7 +3511,7 @@ void SayQuoteFromNearbyMercInSector( INT32 sGridNo, INT8 bDistance, UINT16 usQuo
// If we are > 0 // If we are > 0
if ( ubNumMercs > 0 ) if ( ubNumMercs > 0 )
{ {
ubChosenMerc = (UINT8)Random( ubNumMercs ); ubChosenMerc = (UINT16)Random( ubNumMercs );
if (usQuoteNum == 66) if (usQuoteNum == 66)
{ {
@@ -3526,9 +3526,9 @@ void SayQuoteFromNearbyMercInSector( INT32 sGridNo, INT8 bDistance, UINT16 usQuo
void SayQuote58FromNearbyMercInSector( INT32 sGridNo, INT8 bDistance, UINT16 usQuoteNum, INT8 bSex ) void SayQuote58FromNearbyMercInSector( INT32 sGridNo, INT8 bDistance, UINT16 usQuoteNum, INT8 bSex )
{ {
// WDS - make number of mercenaries, etc. be configurable // WDS - make number of mercenaries, etc. be configurable
std::vector<UINT8> ubMercsInSector (CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS, 0); std::vector<UINT16> ubMercsInSector (CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS, 0);
UINT8 ubNumMercs = 0; UINT16 ubNumMercs = 0;
UINT8 ubChosenMerc; UINT16 ubChosenMerc;
SOLDIERTYPE *pTeamSoldier; SOLDIERTYPE *pTeamSoldier;
INT32 cnt = gTacticalStatus.Team[gbPlayerNum].bFirstID; INT32 cnt = gTacticalStatus.Team[gbPlayerNum].bFirstID;
@@ -3553,7 +3553,7 @@ void SayQuote58FromNearbyMercInSector( INT32 sGridNo, INT8 bDistance, UINT16 usQ
continue; continue;
} }
ubMercsInSector[ ubNumMercs ] = (UINT8)cnt; ubMercsInSector[ ubNumMercs ] = (UINT16)cnt;
++ubNumMercs; ++ubNumMercs;
} }
} }
@@ -3561,7 +3561,7 @@ void SayQuote58FromNearbyMercInSector( INT32 sGridNo, INT8 bDistance, UINT16 usQ
// If we are > 0 // If we are > 0
if ( ubNumMercs > 0 ) if ( ubNumMercs > 0 )
{ {
ubChosenMerc = (UINT8)Random( ubNumMercs ); ubChosenMerc = (UINT16)Random( ubNumMercs );
TacticalCharacterDialogue( MercPtrs[ ubMercsInSector[ ubChosenMerc ] ], usQuoteNum ); TacticalCharacterDialogue( MercPtrs[ ubMercsInSector[ ubChosenMerc ] ], usQuoteNum );
} }
} }
+2 -3
View File
@@ -1105,7 +1105,7 @@ void SetfDynamicOpinionSpeechInProgress( BOOLEAN aVal )
} }
void AddOpinionEvent( UINT8 usProfileA, UINT8 usProfileB, UINT8 usEvent, BOOLEAN fStartDialogue ) void AddOpinionEvent( UINT16 usProfileA, UINT16 usProfileB, UINT8 usEvent, BOOLEAN fStartDialogue )
{ {
if ( usProfileA == NO_PROFILE || usProfileB == NO_PROFILE ) if ( usProfileA == NO_PROFILE || usProfileB == NO_PROFILE )
return; return;
@@ -1669,10 +1669,9 @@ void RolloverDynamicOpinions( UINT8 usProfileA )
// check wether other people are friends with someone else we hate. All persons must be in Arulco // check wether other people are friends with someone else we hate. All persons must be in Arulco
void CheckForFriendsofHated( SOLDIERTYPE* pSoldier ) void CheckForFriendsofHated( SOLDIERTYPE* pSoldier )
{ {
INT8 bMercID, bOtherID, bThirdID; UINT16 bMercID, bOtherID, bThirdID, bLastTeamID;
INT8 bOpinion = -1; INT8 bOpinion = -1;
INT8 bSecondOpinion = -1; INT8 bSecondOpinion = -1;
INT8 bLastTeamID;
SOLDIERTYPE* pOtherSoldier; SOLDIERTYPE* pOtherSoldier;
SOLDIERTYPE* pThirdSoldier; SOLDIERTYPE* pThirdSoldier;
+1 -1
View File
@@ -452,7 +452,7 @@ BOOLEAN LoadDynamicDialogue( HWFILE hwFile );
// modify usProfileA's opinion of usProfileB because of usEvent // modify usProfileA's opinion of usProfileB because of usEvent
void AddOpinionEvent( UINT8 usProfileA, UINT8 usProfileB, UINT8 usEvent, BOOLEAN fStartDialogue = TRUE ); void AddOpinionEvent( UINT16 usProfileA, UINT16 usProfileB, UINT8 usEvent, BOOLEAN fStartDialogue = TRUE );
// get usProfileA's opinion of usProfileB on one of the last 4 days // get usProfileA's opinion of usProfileB on one of the last 4 days
INT8 GetDynamicOpinionDay( UINT8 usProfileA, UINT8 usProfileB, UINT8 usDay ); INT8 GetDynamicOpinionDay( UINT8 usProfileA, UINT8 usProfileB, UINT8 usDay );
+3 -3
View File
@@ -182,7 +182,7 @@ void HandleDeidrannaDeath( SOLDIERTYPE *pKillerSoldier, INT32 sGridNo, INT8 bLev
{ {
SOLDIERTYPE *pTeamSoldier; SOLDIERTYPE *pTeamSoldier;
INT32 cnt; INT32 cnt;
UINT8 ubKillerSoldierID = NOBODY; UINT16 ubKillerSoldierID = NOBODY;
// Start victory music here... // Start victory music here...
SetMusicMode( MUSIC_TACTICAL_VICTORY ); SetMusicMode( MUSIC_TACTICAL_VICTORY );
@@ -673,7 +673,7 @@ void BeginHandleQueenBitchDeath( SOLDIERTYPE *pKillerSoldier, INT32 sGridNo, INT
{ {
// gTacticalStatus.ubAttackBusyCount++; // gTacticalStatus.ubAttackBusyCount++;
DebugAttackBusy( "Killing off a queen ally.\n"); DebugAttackBusy( "Killing off a queen ally.\n");
pTeamSoldier->EVENT_SoldierGotHit( 0, 10000, 0, pTeamSoldier->ubDirection, 320, NOBODY , FIRE_WEAPON_NO_SPECIAL, pTeamSoldier->bAimShotLocation, 0, NOWHERE ); pTeamSoldier->EVENT_SoldierGotHit( 0, 10000, 0, pTeamSoldier->ubDirection, 320, NOBODY, FIRE_WEAPON_NO_SPECIAL, pTeamSoldier->bAimShotLocation, 0, NOWHERE );
} }
} }
} }
@@ -685,7 +685,7 @@ void HandleQueenBitchDeath( SOLDIERTYPE *pKillerSoldier, INT32 sGridNo, INT8 bLe
{ {
SOLDIERTYPE *pTeamSoldier; SOLDIERTYPE *pTeamSoldier;
INT32 cnt; INT32 cnt;
UINT8 ubKillerSoldierID = NOBODY; UINT16 ubKillerSoldierID = NOBODY;
// Start victory music here... // Start victory music here...
SetMusicMode( MUSIC_TACTICAL_VICTORY ); SetMusicMode( MUSIC_TACTICAL_VICTORY );
+8 -10
View File
@@ -50,8 +50,6 @@
#endif #endif
// Defines // Defines
#define NUM_FACE_SLOTS 50
#define END_FACE_OVERLAY_DELAY 2000 #define END_FACE_OVERLAY_DELAY 2000
@@ -135,7 +133,7 @@ INT32 InitSoldierFace( SOLDIERTYPE *pSoldier )
} }
INT32 InitFace( UINT8 usMercProfileID, UINT8 ubSoldierID, UINT32 uiInitFlags ) INT32 InitFace( UINT8 usMercProfileID, UINT16 ubSoldierID, UINT32 uiInitFlags )
{ {
UINT32 uiBlinkFrequency; UINT32 uiBlinkFrequency;
UINT32 uiExpressionFrequency; UINT32 uiExpressionFrequency;
@@ -162,7 +160,7 @@ INT32 InitFace( UINT8 usMercProfileID, UINT8 ubSoldierID, UINT32 uiInitFlags )
} }
INT32 InternalInitFace( UINT8 usMercProfileID, UINT8 ubSoldierID, UINT32 uiInitFlags, INT32 iFaceFileID, UINT32 uiBlinkFrequency, UINT32 uiExpressionFrequency ) INT32 InternalInitFace( UINT8 usMercProfileID, UINT16 ubSoldierID, UINT32 uiInitFlags, INT32 iFaceFileID, UINT32 uiBlinkFrequency, UINT32 uiExpressionFrequency )
{ {
FACETYPE *pFace; FACETYPE *pFace;
VOBJECT_DESC VObjectDesc; VOBJECT_DESC VObjectDesc;
@@ -557,7 +555,7 @@ void DeleteFace( INT32 iFaceIndex )
} }
void SetAutoFaceActiveFromSoldier( UINT32 uiDisplayBuffer, UINT32 uiRestoreBuffer, UINT8 ubSoldierID , UINT16 usFaceX, UINT16 usFaceY ) void SetAutoFaceActiveFromSoldier( UINT32 uiDisplayBuffer, UINT32 uiRestoreBuffer, UINT16 ubSoldierID, UINT16 usFaceX, UINT16 usFaceY )
{ {
if( ubSoldierID == NOBODY ) if( ubSoldierID == NOBODY )
{ {
@@ -761,7 +759,7 @@ void InternalSetAutoFaceActive( UINT32 uiDisplayBuffer, UINT32 uiRestoreBuffer,
} }
void SetAutoFaceInActiveFromSoldier( UINT8 ubSoldierID ) void SetAutoFaceInActiveFromSoldier( UINT16 ubSoldierID )
{ {
// Check for valid soldier // Check for valid soldier
CHECKV( ubSoldierID != NOBODY ); CHECKV( ubSoldierID != NOBODY );
@@ -1349,7 +1347,7 @@ void SetFaceShade( SOLDIERTYPE *pSoldier, FACETYPE *pFace, BOOLEAN fExternBlit )
} }
} }
BOOLEAN RenderAutoFaceFromSoldier( UINT8 ubSoldierID ) BOOLEAN RenderAutoFaceFromSoldier( UINT16 ubSoldierID )
{ {
// Check for valid soldier // Check for valid soldier
CHECKF( ubSoldierID != NOBODY ); CHECKF( ubSoldierID != NOBODY );
@@ -2107,10 +2105,10 @@ void HandleRenderFaceAdjustments( FACETYPE *pFace, BOOLEAN fDisplayBuffer, BOOLE
// Flugente: are we supplying ammo to someone else? // Flugente: are we supplying ammo to someone else?
if (gGameExternalOptions.ubExternalFeeding > 0) if (gGameExternalOptions.ubExternalFeeding > 0)
{ {
UINT8 ubID1 = 0; UINT16 ubID1 = 0;
UINT16 ubGunSlot1 = 0; UINT16 ubGunSlot1 = 0;
UINT16 ubFaceSlot1 = 0; UINT16 ubFaceSlot1 = 0;
UINT8 ubID2 = 0; UINT16 ubID2 = 0;
UINT16 ubGunSlot2 = 0; UINT16 ubGunSlot2 = 0;
UINT16 ubFaceSlot2 = 0; UINT16 ubFaceSlot2 = 0;
if (MercPtrs[pFace->ubSoldierID]->IsFeedingExternal(&ubID1, &ubGunSlot1, &ubFaceSlot1, &ubID2, &ubGunSlot2, &ubFaceSlot2)) if (MercPtrs[pFace->ubSoldierID]->IsFeedingExternal(&ubID1, &ubGunSlot1, &ubFaceSlot1, &ubID2, &ubGunSlot2, &ubFaceSlot2))
@@ -2640,7 +2638,7 @@ BOOLEAN RenderAutoFace( INT32 iFaceIndex )
} }
BOOLEAN ExternRenderFaceFromSoldier( UINT32 uiBuffer, UINT8 ubSoldierID, INT16 sX, INT16 sY ) BOOLEAN ExternRenderFaceFromSoldier( UINT32 uiBuffer, UINT16 ubSoldierID, INT16 sX, INT16 sY )
{ {
// Check for valid soldier // Check for valid soldier
CHECKF( ubSoldierID != NOBODY ); CHECKF( ubSoldierID != NOBODY );
+7 -7
View File
@@ -105,7 +105,7 @@ BOOLEAN DoesSoldierRefuseToEat( SOLDIERTYPE *pSoldier, OBJECTTYPE *pObj )
if ( UsingFoodSystem() ) if ( UsingFoodSystem() )
{ {
// static variables to remember the last food someone was forced to eat // static variables to remember the last food someone was forced to eat
static UINT8 lasteater = 0; static UINT16 lasteater = 0;
static UINT16 lastitem = 0; static UINT16 lastitem = 0;
UINT32 foodtype = Item[pObj->usItem].foodtype; UINT32 foodtype = Item[pObj->usItem].foodtype;
@@ -765,8 +765,8 @@ void EatFromInventory( SOLDIERTYPE *pSoldier, BOOLEAN fcanteensonly )
void HourlyFoodUpdate( void ) void HourlyFoodUpdate( void )
{ {
INT8 bMercID, bLastTeamID; UINT16 bMercID, bLastTeamID;
SOLDIERTYPE * pSoldier = NULL; SOLDIERTYPE * pSoldier = NULL;
bMercID = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; bMercID = gTacticalStatus.Team[ gbPlayerNum ].bFirstID;
bLastTeamID = gTacticalStatus.Team[ gbPlayerNum ].bLastID; bLastTeamID = gTacticalStatus.Team[ gbPlayerNum ].bLastID;
@@ -831,8 +831,8 @@ void SectorFillCanteens( void )
addtemperature = FOOD_WATER_POISONOUS_TEMPERATURE; addtemperature = FOOD_WATER_POISONOUS_TEMPERATURE;
// first step: fill all canteens in inventories // first step: fill all canteens in inventories
INT8 bMercID, bLastTeamID; UINT16 bMercID, bLastTeamID;
SOLDIERTYPE * pSoldier = NULL; SOLDIERTYPE * pSoldier = NULL;
bMercID = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; bMercID = gTacticalStatus.Team[ gbPlayerNum ].bFirstID;
bLastTeamID = gTacticalStatus.Team[ gbPlayerNum ].bLastID; bLastTeamID = gTacticalStatus.Team[ gbPlayerNum ].bLastID;
@@ -905,8 +905,8 @@ void SectorFillCanteens( void )
INT32 drumsize = Food[Item[pWaterDrum->usItem].foodtype].bDrinkPoints; INT32 drumsize = Food[Item[pWaterDrum->usItem].foodtype].bDrinkPoints;
// first step: fill all canteens in inventories // first step: fill all canteens in inventories
INT8 bMercID, bLastTeamID; UINT16 bMercID, bLastTeamID;
SOLDIERTYPE * pSoldier = NULL; SOLDIERTYPE * pSoldier = NULL;
bMercID = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; bMercID = gTacticalStatus.Team[ gbPlayerNum ].bFirstID;
bLastTeamID = gTacticalStatus.Team[ gbPlayerNum ].bLastID; bLastTeamID = gTacticalStatus.Team[ gbPlayerNum ].bLastID;
+1 -3
View File
@@ -443,10 +443,8 @@ void ProcessImplicationsOfPCMessingWithDoor( SOLDIERTYPE * pSoldier )
// if player is hacking at a door in the brothel and a kingpin guy can see him // if player is hacking at a door in the brothel and a kingpin guy can see him
if ( (InARoom( pSoldier->sGridNo, &usRoom ) && IN_BROTHEL( usRoom )) || (gWorldSectorX == 5 && gWorldSectorY == MAP_ROW_D && gbWorldSectorZ == 0 && (pSoldier->sGridNo == gModSettings.iBrothelDoor1 || pSoldier->sGridNo == gModSettings.iBrothelDoor2 || pSoldier->sGridNo == gModSettings.iBrothelDoor3 ) ) )//11010,11177,11176 if ( (InARoom( pSoldier->sGridNo, &usRoom ) && IN_BROTHEL( usRoom )) || (gWorldSectorX == 5 && gWorldSectorY == MAP_ROW_D && gbWorldSectorZ == 0 && (pSoldier->sGridNo == gModSettings.iBrothelDoor1 || pSoldier->sGridNo == gModSettings.iBrothelDoor2 || pSoldier->sGridNo == gModSettings.iBrothelDoor3 ) ) )//11010,11177,11176
{ {
UINT8 ubLoop;
// see if a kingpin goon can see us // see if a kingpin goon can see us
for ( ubLoop = gTacticalStatus.Team[ CIV_TEAM ].bFirstID; ubLoop <= gTacticalStatus.Team[ CIV_TEAM ].bLastID; ubLoop++ ) for (UINT16 ubLoop = gTacticalStatus.Team[ CIV_TEAM ].bFirstID; ubLoop <= gTacticalStatus.Team[ CIV_TEAM ].bLastID; ubLoop++ )
{ {
pGoon = MercPtrs[ ubLoop ]; pGoon = MercPtrs[ ubLoop ];
if ( pGoon->ubCivilianGroup == KINGPIN_CIV_GROUP && pGoon->bActive && pGoon->bInSector && pGoon->stats.bLife >= OKLIFE && pGoon->aiData.bOppList[ pSoldier->ubID ] == SEEN_CURRENTLY ) if ( pGoon->ubCivilianGroup == KINGPIN_CIV_GROUP && pGoon->bActive && pGoon->bInSector && pGoon->stats.bLife >= OKLIFE && pGoon->aiData.bOppList[ pSoldier->ubID ] == SEEN_CURRENTLY )
+25 -25
View File
@@ -1023,7 +1023,7 @@ INT32 HandleItem( SOLDIERTYPE *pSoldier, INT32 sGridNo, INT8 bLevel, UINT16 usHa
if ( Item[usHandItem].toolkit ) if ( Item[usHandItem].toolkit )
{ {
UINT8 ubMercID; UINT16 ubMercID;
BOOLEAN fVehicle = FALSE; BOOLEAN fVehicle = FALSE;
INT32 sVehicleGridNo=-1; INT32 sVehicleGridNo=-1;
@@ -1096,7 +1096,7 @@ INT32 HandleItem( SOLDIERTYPE *pSoldier, INT32 sGridNo, INT8 bLevel, UINT16 usHa
if ( Item[usHandItem].gascan ) if ( Item[usHandItem].gascan )
{ {
UINT8 ubMercID; UINT16 ubMercID;
INT32 sVehicleGridNo=-1; INT32 sVehicleGridNo=-1;
// For repair, check if we are over a vehicle, then get gridnot to edge of that vehicle! // For repair, check if we are over a vehicle, then get gridnot to edge of that vehicle!
@@ -1390,7 +1390,7 @@ INT32 HandleItem( SOLDIERTYPE *pSoldier, INT32 sGridNo, INT8 bLevel, UINT16 usHa
} }
} }
UINT8 ubPerson = WhoIsThere2(usMapPos, pSoldier->pathing.bLevel); UINT16 ubPerson = WhoIsThere2(usMapPos, pSoldier->pathing.bLevel);
// Flugente: apply misc items to other soldiers // Flugente: apply misc items to other soldiers
// sevenfm: check that target soldier is visible // sevenfm: check that target soldier is visible
@@ -2133,7 +2133,7 @@ void SoldierHandleDropItem( SOLDIERTYPE *pSoldier )
} }
} }
AddItemToPool( pSoldier->sGridNo, pSoldier->pTempObject, 1, pSoldier->pathing.bLevel, 0 , -1 ); AddItemToPool( pSoldier->sGridNo, pSoldier->pTempObject, 1, pSoldier->pathing.bLevel, 0, -1 );
NotifySoldiersToLookforItems( ); NotifySoldiersToLookforItems( );
OBJECTTYPE::DeleteMe( &pSoldier->pTempObject ); OBJECTTYPE::DeleteMe( &pSoldier->pTempObject );
@@ -2376,7 +2376,7 @@ void HandleAutoPlaceFail( SOLDIERTYPE *pSoldier, INT32 iItemIndex, INT32 sGridNo
else else
{ {
// Add back to world... // Add back to world...
AddItemToPool( sGridNo, &(gWorldItems[ iItemIndex ].object ), 1 , pSoldier->pathing.bLevel, 0, -1 ); AddItemToPool( sGridNo, &(gWorldItems[ iItemIndex ].object ), 1, pSoldier->pathing.bLevel, 0, -1 );
// If we are a merc, say DAMN quote.... // If we are a merc, say DAMN quote....
if ( pSoldier->bTeam == gbPlayerNum ) if ( pSoldier->bTeam == gbPlayerNum )
@@ -2944,17 +2944,17 @@ void RemoveItemGraphicFromWorld( INVTYPE *pItem, INT32 sGridNo, UINT8 ubLevel, L
} }
// INVENTORY POOL STUFF // INVENTORY POOL STUFF
OBJECTTYPE* AddItemToPool( INT32 sGridNo, OBJECTTYPE *pObject, INT8 bVisible, UINT8 ubLevel, UINT16 usFlags, INT8 bRenderZHeightAboveLevel, INT8 soldierID ) OBJECTTYPE* AddItemToPool( INT32 sGridNo, OBJECTTYPE *pObject, INT8 bVisible, UINT8 ubLevel, UINT16 usFlags, INT8 bRenderZHeightAboveLevel, INT16 soldierID)
{ {
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, INT8 soldierID, INT32 * piItemIndex ) OBJECTTYPE * AddItemToPoolAndGetIndex( INT32 sGridNo, OBJECTTYPE *pObject, INT8 bVisible, UINT8 ubLevel, UINT16 usFlags, INT8 bRenderZHeightAboveLevel, INT16 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, INT8 soldierID, INT32 * piItemIndex ) OBJECTTYPE* InternalAddItemToPool( INT32 *psGridNo, OBJECTTYPE *pObject, INT8 bVisible, UINT8 ubLevel, UINT16 usFlags, INT8 bRenderZHeightAboveLevel, INT16 soldierID, INT32 * piItemIndex )
{ {
ITEM_POOL *pItemPool; ITEM_POOL *pItemPool;
ITEM_POOL *pItemPoolTemp; ITEM_POOL *pItemPoolTemp;
@@ -4816,7 +4816,7 @@ BOOLEAN VerifyGiveItem( SOLDIERTYPE *pSoldier, SOLDIERTYPE **ppTargetSoldier )
INT32 sGridNo; INT32 sGridNo;
UINT8 ubDirection; UINT8 ubDirection;
UINT8 ubTargetMercID; UINT16 ubTargetMercID;
// DO SOME CHECKS IF WE CAN DO ANIMATION..... // DO SOME CHECKS IF WE CAN DO ANIMATION.....
@@ -4825,7 +4825,7 @@ BOOLEAN VerifyGiveItem( SOLDIERTYPE *pSoldier, SOLDIERTYPE **ppTargetSoldier )
sGridNo = pSoldier->aiData.sPendingActionData2; sGridNo = pSoldier->aiData.sPendingActionData2;
ubDirection = pSoldier->aiData.bPendingActionData3; ubDirection = pSoldier->aiData.bPendingActionData3;
ubTargetMercID = (UINT8)pSoldier->aiData.uiPendingActionData4; ubTargetMercID = (UINT16)pSoldier->aiData.uiPendingActionData4;
usSoldierIndex = WhoIsThere2( sGridNo, pSoldier->pathing.bLevel ); usSoldierIndex = WhoIsThere2( sGridNo, pSoldier->pathing.bLevel );
@@ -4851,7 +4851,7 @@ BOOLEAN VerifyGiveItem( SOLDIERTYPE *pSoldier, SOLDIERTYPE **ppTargetSoldier )
{ {
if ( pSoldier->pTempObject != NULL ) if ( pSoldier->pTempObject != NULL )
{ {
AddItemToPool( pSoldier->sGridNo, pSoldier->pTempObject, 1, pSoldier->pathing.bLevel, 0 , -1 ); AddItemToPool( pSoldier->sGridNo, pSoldier->pTempObject, 1, pSoldier->pathing.bLevel, 0, -1 );
// Place it on the ground! // Place it on the ground!
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, TacticalStr[ ITEM_HAS_BEEN_PLACED_ON_GROUND_STR ], ShortItemNames[ pSoldier->pTempObject->usItem ] ); ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, TacticalStr[ ITEM_HAS_BEEN_PLACED_ON_GROUND_STR ], ShortItemNames[ pSoldier->pTempObject->usItem ] );
@@ -4881,7 +4881,7 @@ void SoldierGiveItemFromAnimation( SOLDIERTYPE *pSoldier )
INT32 sGridNo; INT32 sGridNo;
UINT8 ubDirection; UINT8 ubDirection;
UINT8 ubTargetMercID; UINT16 ubTargetMercID;
UINT16 usItemNum; UINT16 usItemNum;
BOOLEAN fToTargetPlayer = FALSE; BOOLEAN fToTargetPlayer = FALSE;
@@ -4910,7 +4910,7 @@ void SoldierGiveItemFromAnimation( SOLDIERTYPE *pSoldier )
sGridNo = pSoldier->aiData.sPendingActionData2; sGridNo = pSoldier->aiData.sPendingActionData2;
ubDirection = pSoldier->aiData.bPendingActionData3; ubDirection = pSoldier->aiData.bPendingActionData3;
ubTargetMercID = (UINT8)pSoldier->aiData.uiPendingActionData4; ubTargetMercID = (UINT16)pSoldier->aiData.uiPendingActionData4;
// ATE: Deduct APs! // ATE: Deduct APs!
DeductPoints( pSoldier, GetBasicAPsToPickupItem( pSoldier ), 0 ); // SANDRO DeductPoints( pSoldier, GetBasicAPsToPickupItem( pSoldier ), 0 ); // SANDRO
@@ -5004,7 +5004,7 @@ void SoldierGiveItemFromAnimation( SOLDIERTYPE *pSoldier )
DirtyMercPanelInterface( pSoldier, DIRTYLEVEL2 ); DirtyMercPanelInterface( pSoldier, DIRTYLEVEL2 );
} }
AddItemToPool( pSoldier->sGridNo, &gTempObject, 1, pSoldier->pathing.bLevel, 0 , -1 ); AddItemToPool( pSoldier->sGridNo, &gTempObject, 1, pSoldier->pathing.bLevel, 0, -1 );
// We could not place it! // We could not place it!
// Drop it on the ground? // Drop it on the ground?
@@ -5081,7 +5081,7 @@ INT32 AdjustGridNoForItemPlacement( SOLDIERTYPE *pSoldier, INT32 sGridNo )
BOOLEAN fStructFound = FALSE; BOOLEAN fStructFound = FALSE;
UINT8 ubDirection; UINT8 ubDirection;
INT32 sAdjustedGridNo; INT32 sAdjustedGridNo;
UINT8 ubTargetID; UINT16 ubTargetID;
sActionGridNo = sGridNo; sActionGridNo = sGridNo;
@@ -6169,7 +6169,7 @@ void BoobyTrapMessageBoxCallBack( UINT8 ubExitValue )
{ {
// OJW - 20091029 - disarm explosives // OJW - 20091029 - disarm explosives
if (is_networked && is_client) if (is_networked && is_client)
send_disarm_explosive( gsBoobyTrapGridNo , gpBoobyTrapItemPool->iItemIndex , gpBoobyTrapSoldier->ubID ); send_disarm_explosive( gsBoobyTrapGridNo, gpBoobyTrapItemPool->iItemIndex, gpBoobyTrapSoldier->ubID );
// remove it from the ground // remove it from the ground
RemoveItemFromPool( gsBoobyTrapGridNo, gpBoobyTrapItemPool->iItemIndex, gbBoobyTrapLevel ); RemoveItemFromPool( gsBoobyTrapGridNo, gpBoobyTrapItemPool->iItemIndex, gbBoobyTrapLevel );
} }
@@ -6191,7 +6191,7 @@ void BoobyTrapMessageBoxCallBack( UINT8 ubExitValue )
// OJW - 20091029 - disarm explosives // OJW - 20091029 - disarm explosives
if (is_networked && is_client) if (is_networked && is_client)
send_disarm_explosive( gsBoobyTrapGridNo , gpBoobyTrapItemPool->iItemIndex , gpBoobyTrapSoldier->ubID ); send_disarm_explosive( gsBoobyTrapGridNo, gpBoobyTrapItemPool->iItemIndex, gpBoobyTrapSoldier->ubID );
RemoveItemFromPool( gsBoobyTrapGridNo, gpBoobyTrapItemPool->iItemIndex, gbBoobyTrapLevel ); RemoveItemFromPool( gsBoobyTrapGridNo, gpBoobyTrapItemPool->iItemIndex, gbBoobyTrapLevel );
} }
@@ -6208,7 +6208,7 @@ void BoobyTrapMessageBoxCallBack( UINT8 ubExitValue )
} }
// OJW - 20091029 - disarm explosives // OJW - 20091029 - disarm explosives
if (is_networked && is_client) if (is_networked && is_client)
send_disarm_explosive( gsBoobyTrapGridNo , gpBoobyTrapItemPool->iItemIndex , gpBoobyTrapSoldier->ubID ); send_disarm_explosive( gsBoobyTrapGridNo, gpBoobyTrapItemPool->iItemIndex, gpBoobyTrapSoldier->ubID );
// remove it from the ground // remove it from the ground
RemoveItemFromPool( gsBoobyTrapGridNo, gpBoobyTrapItemPool->iItemIndex, gbBoobyTrapLevel ); RemoveItemFromPool( gsBoobyTrapGridNo, gpBoobyTrapItemPool->iItemIndex, gbBoobyTrapLevel );
@@ -6363,7 +6363,7 @@ void SwitchMessageBoxCallBack( UINT8 ubExitValue )
// Message that switch is activated... // Message that switch is activated...
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, gzLateLocalizedString[ 60 ] ); ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, gzLateLocalizedString[ 60 ] );
SetOffBombsByFrequency( gpTempSoldier->ubID, bTempFrequency ); SetOffBombsByFrequency( gpTempSoldier->ubID, bTempFrequency );
} }
} }
@@ -6733,11 +6733,11 @@ void TestPotentialOwner( SOLDIERTYPE * pSoldier )
void CheckForPickedOwnership( void ) void CheckForPickedOwnership( void )
{ {
ITEM_POOL * pItemPool; ITEM_POOL * pItemPool;
UINT8 ubProfile; UINT8 ubProfile;
UINT8 ubCivGroup; UINT8 ubCivGroup;
SOLDIERTYPE * pSoldier; SOLDIERTYPE * pSoldier;
UINT8 ubLoop; UINT16 ubLoop;
// LOOP THROUGH LIST TO FIND NODE WE WANT // LOOP THROUGH LIST TO FIND NODE WE WANT
GetItemPool( gsTempGridNo, &pItemPool, gpTempSoldier->pathing.bLevel ); GetItemPool( gsTempGridNo, &pItemPool, gpTempSoldier->pathing.bLevel );
@@ -9403,7 +9403,7 @@ void DoInteractiveAction( INT32 sGridNo, SOLDIERTYPE *pSoldier )
// handle the default result of an interactive action // 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 // 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, UINT8 ubID, BOOLEAN aSuccess ) void DoInteractiveActionDefaultResult( INT32 sGridNo, UINT16 ubID, BOOLEAN aSuccess )
{ {
SOLDIERTYPE* pSoldier = NULL; SOLDIERTYPE* pSoldier = NULL;
if ( ubID != NOBODY ) if ( ubID != NOBODY )
+4 -4
View File
@@ -194,9 +194,9 @@ 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, INT8 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, INT8 soldierID, INT32 * piItemIndex ); OBJECTTYPE* AddItemToPoolAndGetIndex( INT32 sGridNo, 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, INT8 soldierID, INT32 * piItemIndex ); OBJECTTYPE* InternalAddItemToPool( INT32 *psGridNo, OBJECTTYPE *pObject, INT8 bVisible, UINT8 ubLevel, UINT16 usFlags, INT8 bRenderZHeightAboveLevel, INT16 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 );
@@ -328,7 +328,7 @@ extern ITEM_POOL *gpItemPool;//dnl ch26 210909
// Flugente: interactive actions // Flugente: interactive actions
void DoInteractiveAction( INT32 sGridNo, SOLDIERTYPE *pSoldier ); void DoInteractiveAction( INT32 sGridNo, SOLDIERTYPE *pSoldier );
void DoInteractiveActionDefaultResult( INT32 sGridNo, UINT8 ubID, BOOLEAN aSuccess ); void DoInteractiveActionDefaultResult( INT32 sGridNo, UINT16 ubID, BOOLEAN aSuccess );
BOOLEAN SpendMoney( SOLDIERTYPE *pSoldier, UINT32 aAmount ); // character spends money - either from inventory or the account BOOLEAN SpendMoney( SOLDIERTYPE *pSoldier, UINT32 aAmount ); // character spends money - either from inventory or the account
// Flugente: intel // Flugente: intel
+3 -3
View File
@@ -46,7 +46,7 @@ BOOLEAN AddUIPlan( INT32 sGridNo, UINT8 ubPlanID )
INT8 bDirection; INT8 bDirection;
INT32 iLoop; INT32 iLoop;
SOLDIERCREATE_STRUCT MercCreateStruct; SOLDIERCREATE_STRUCT MercCreateStruct;
UINT8 ubNewIndex; UINT16 ubNewIndex;
// Depeding on stance and direction facing, add guy! // Depeding on stance and direction facing, add guy!
@@ -122,7 +122,7 @@ BOOLEAN AddUIPlan( INT32 sGridNo, UINT8 ubPlanID )
pPlanSoldier->ChangeSoldierState( pPlanSoldier->usUIMovementMode, 0, FALSE ); pPlanSoldier->ChangeSoldierState( pPlanSoldier->usUIMovementMode, 0, FALSE );
// Change selected soldier // Change selected soldier
gusSelectedSoldier = (UINT16)pPlanSoldier->ubID; gusSelectedSoldier = pPlanSoldier->ubID;
// Change global planned mode to this guy! // Change global planned mode to this guy!
gpUIPlannedSoldier = pPlanSoldier; gpUIPlannedSoldier = pPlanSoldier;
@@ -165,7 +165,7 @@ BOOLEAN AddUIPlan( INT32 sGridNo, UINT8 ubPlanID )
if ( TacticalCreateSoldier( &MercCreateStruct, &ubNewIndex ) ) if ( TacticalCreateSoldier( &MercCreateStruct, &ubNewIndex ) )
{ {
// Get pointer to soldier // Get pointer to soldier
GetSoldier( &pPlanSoldier, (UINT16)ubNewIndex ); GetSoldier( &pPlanSoldier, ubNewIndex );
pPlanSoldier->sPlannedTargetX = -1; pPlanSoldier->sPlannedTargetX = -1;
pPlanSoldier->sPlannedTargetY = -1; pPlanSoldier->sPlannedTargetY = -1;
+25 -24
View File
@@ -294,7 +294,7 @@ BOOLEAN gfResetUIMovementOptimization = FALSE;
BOOLEAN gfResetUIItemCursorOptimization = FALSE; BOOLEAN gfResetUIItemCursorOptimization = FALSE;
BOOLEAN gfBeginVehicleCursor = FALSE; BOOLEAN gfBeginVehicleCursor = FALSE;
INT32 gsOutOfRangeGridNo = NOWHERE; INT32 gsOutOfRangeGridNo = NOWHERE;
UINT8 gubOutOfRangeMerc = NOBODY; UINT16 gubOutOfRangeMerc = NOBODY;
BOOLEAN gfOKForExchangeCursor = FALSE; BOOLEAN gfOKForExchangeCursor = FALSE;
UINT32 guiUIInterfaceSwapCursorsTime = 0; UINT32 guiUIInterfaceSwapCursorsTime = 0;
INT32 gsJumpOverGridNo = 0; INT32 gsJumpOverGridNo = 0;
@@ -441,7 +441,7 @@ BOOLEAN gfUIDoNotHighlightSelMerc = FALSE;
BOOLEAN gfUIHandleSelection = FALSE; BOOLEAN gfUIHandleSelection = FALSE;
BOOLEAN gfUIHandleSelectionAboveGuy = FALSE; BOOLEAN gfUIHandleSelectionAboveGuy = FALSE;
BOOLEAN gfUIInDeadlock = FALSE; BOOLEAN gfUIInDeadlock = FALSE;
UINT8 gUIDeadlockedSoldier = NOBODY; UINT16 gUIDeadlockedSoldier = NOBODY;
BOOLEAN gfUIHandleShowMoveGrid = FALSE; BOOLEAN gfUIHandleShowMoveGrid = FALSE;
INT32 gsUIHandleShowMoveGridLocation = NOWHERE ; INT32 gsUIHandleShowMoveGridLocation = NOWHERE ;
BOOLEAN gfUIOverItemPool = FALSE; BOOLEAN gfUIOverItemPool = FALSE;
@@ -449,7 +449,7 @@ INT32 gfUIOverItemPoolGridNo = 0;
INT16 gsCurrentActionPoints = 1; INT16 gsCurrentActionPoints = 1;
BOOLEAN gfUIHandlePhysicsTrajectory = FALSE; BOOLEAN gfUIHandlePhysicsTrajectory = FALSE;
BOOLEAN gfUIMouseOnValidCatcher = FALSE; BOOLEAN gfUIMouseOnValidCatcher = FALSE;
UINT8 gubUIValidCatcherID = 0; UINT16 gubUIValidCatcherID = 0;
@@ -577,7 +577,7 @@ UINT32 HandleTacticalUI( void )
gfUIInterfaceSetBusy = FALSE; gfUIInterfaceSetBusy = FALSE;
//UNLOCK UI //UNLOCK UI
UnSetUIBusy( (UINT8)gusSelectedSoldier ); UnSetUIBusy( gusSelectedSoldier );
// Decrease global busy counter... // Decrease global busy counter...
gTacticalStatus.ubAttackBusyCount = 0; gTacticalStatus.ubAttackBusyCount = 0;
@@ -1500,7 +1500,7 @@ UINT32 UIHandleTestHit( UI_EVENT *pUIEvent )
// gTacticalStatus.ubAttackBusyCount++; // gTacticalStatus.ubAttackBusyCount++;
DebugAttackBusy( "Testing a hit.\n" ); DebugAttackBusy( "Testing a hit.\n" );
pSoldier->EVENT_SoldierGotHit( 1, bDamage, 10, pSoldier->ubDirection, 320, NOBODY , FIRE_WEAPON_NO_SPECIAL, pSoldier->bAimShotLocation, 0, NOWHERE ); pSoldier->EVENT_SoldierGotHit( 1, bDamage, 10, pSoldier->ubDirection, 320, NOBODY, FIRE_WEAPON_NO_SPECIAL, pSoldier->bAimShotLocation, 0, NOWHERE );
// callahan update end - put everything as it was // callahan update end - put everything as it was
} }
return( GAME_SCREEN ); return( GAME_SCREEN );
@@ -1716,7 +1716,7 @@ UINT32 UIHandleMOnTerrain( UI_EVENT *pUIEvent )
// THIS IS JUST A CRUDE TEST FOR NOW // THIS IS JUST A CRUDE TEST FOR NOW
if ( pSoldier->stats.bLife < OKLIFE ) if ( pSoldier->stats.bLife < OKLIFE )
{ {
UINT8 ubID; UINT16 ubID;
// Show reg. cursor // Show reg. cursor
// GO INTO IDLE MODE // GO INTO IDLE MODE
// guiPendingOverrideEvent = I_CHANGE_TO_IDLE; // guiPendingOverrideEvent = I_CHANGE_TO_IDLE;
@@ -1725,7 +1725,7 @@ UINT32 UIHandleMOnTerrain( UI_EVENT *pUIEvent )
if ( ubID != NOBODY ) if ( ubID != NOBODY )
{ {
SelectSoldier( (INT16)ubID, FALSE, FALSE ); SelectSoldier( ubID, FALSE, FALSE );
} }
else else
{ {
@@ -1963,13 +1963,13 @@ UINT32 UIHandleAOnTerrain( UI_EVENT *pUIEvent )
// Set // Set
gsOutOfRangeGridNo = MercPtrs[ gusUIFullTargetID ]->sGridNo; gsOutOfRangeGridNo = MercPtrs[ gusUIFullTargetID ]->sGridNo;
gubOutOfRangeMerc = (UINT8)gusSelectedSoldier; gubOutOfRangeMerc = gusSelectedSoldier;
} }
} }
} }
} }
guiNewUICursor = GetProperItemCursor( (UINT8)gusSelectedSoldier, pSoldier->inv[ HANDPOS ].usItem, usMapPos, FALSE ); guiNewUICursor = GetProperItemCursor( gusSelectedSoldier, pSoldier->inv[ HANDPOS ].usItem, usMapPos, FALSE );
// Show UI ON GUY // Show UI ON GUY
UIHandleOnMerc( FALSE ); UIHandleOnMerc( FALSE );
@@ -2123,7 +2123,7 @@ UINT32 UIHandleCMoveMerc( UI_EVENT *pUIEvent )
STRUCTURE *pStructure; STRUCTURE *pStructure;
UINT8 ubDirection = 0xff; UINT8 ubDirection = 0xff;
BOOLEAN fAllMove; BOOLEAN fAllMove;
INT8 bLoop; UINT16 bLoop;
LEVELNODE *pIntTile; LEVELNODE *pIntTile;
INT32 sIntTileGridNo; INT32 sIntTileGridNo;
BOOLEAN fOldFastMove; BOOLEAN fOldFastMove;
@@ -2745,7 +2745,7 @@ UINT32 UIHandleCAOnTerrain( UI_EVENT *pUIEvent )
if ( GetSoldier( &pSoldier, gusSelectedSoldier ) ) if ( GetSoldier( &pSoldier, gusSelectedSoldier ) )
{ {
guiNewUICursor = GetProperItemCursor( (UINT8)gusSelectedSoldier, pSoldier->inv[ HANDPOS ].usItem, usMapPos, TRUE ); guiNewUICursor = GetProperItemCursor( gusSelectedSoldier, pSoldier->inv[ HANDPOS ].usItem, usMapPos, TRUE );
UIHandleOnMerc( FALSE ); UIHandleOnMerc( FALSE );
} }
@@ -3465,7 +3465,7 @@ BOOLEAN SelectedMercCanAffordMove( )
return( FALSE ); return( FALSE );
} }
void GetMercClimbDirection( UINT8 ubSoldierID, BOOLEAN *pfGoDown, BOOLEAN *pfGoUp ) void GetMercClimbDirection( UINT16 ubSoldierID, BOOLEAN *pfGoDown, BOOLEAN *pfGoUp )
{ {
INT8 bNewDirection; INT8 bNewDirection;
SOLDIERTYPE *pSoldier; SOLDIERTYPE *pSoldier;
@@ -3839,7 +3839,7 @@ UINT32 UIHandleIETOnTerrain( UI_EVENT *pUIEvent )
} }
void UIHandleSoldierStanceChange( UINT8 ubSoldierID, INT8 bNewStance ) void UIHandleSoldierStanceChange( UINT16 ubSoldierID, INT8 bNewStance )
{ {
SOLDIERTYPE *pSoldier = MercPtrs[ ubSoldierID ]; SOLDIERTYPE *pSoldier = MercPtrs[ ubSoldierID ];
@@ -4259,7 +4259,7 @@ INT8 DrawUIMovementPath( SOLDIERTYPE *pSoldier, INT32 usMapPos, UINT32 uiFlags )
LEVELNODE *pIntTile; LEVELNODE *pIntTile;
INT8 bReturnCode = 0; INT8 bReturnCode = 0;
BOOLEAN fPlot; BOOLEAN fPlot;
UINT8 ubMercID; UINT16 ubMercID;
if ( (gTacticalStatus.uiFlags & INCOMBAT ) && ( gTacticalStatus.uiFlags & TURNBASED ) || _KeyDown( SHIFT ) ) if ( (gTacticalStatus.uiFlags & INCOMBAT ) && ( gTacticalStatus.uiFlags & TURNBASED ) || _KeyDown( SHIFT ) )
{ {
@@ -5588,7 +5588,7 @@ UINT32 UIHandleLCLook( UI_EVENT *pUIEvent )
UINT32 UIHandleTOnTerrain( UI_EVENT *pUIEvent ) UINT32 UIHandleTOnTerrain( UI_EVENT *pUIEvent )
{ {
SOLDIERTYPE *pSoldier; SOLDIERTYPE *pSoldier;
UINT8 ubTargID; UINT16 ubTargID;
UINT32 uiRange; UINT32 uiRange;
INT32 usMapPos; INT32 usMapPos;
BOOLEAN fValidTalkableGuy = FALSE; BOOLEAN fValidTalkableGuy = FALSE;
@@ -5619,7 +5619,7 @@ UINT32 UIHandleTOnTerrain( UI_EVENT *pUIEvent )
//CHECK FOR VALID TALKABLE GUY HERE //CHECK FOR VALID TALKABLE GUY HERE
fValidTalkableGuy = IsValidTalkableNPCFromMouse( &ubTargID, FALSE, TRUE , FALSE ); fValidTalkableGuy = IsValidTalkableNPCFromMouse( &ubTargID, FALSE, TRUE, FALSE );
// USe cursor based on distance // USe cursor based on distance
// Get distance away // Get distance away
@@ -6374,20 +6374,20 @@ UINT32 UIHandleLAEndLockOurTurn( UI_EVENT *pUIEvent )
BOOLEAN IsValidTalkableNPCFromMouse( UINT8 *pubSoldierID , BOOLEAN fGive, BOOLEAN fAllowMercs, BOOLEAN fCheckCollapsed ) BOOLEAN IsValidTalkableNPCFromMouse( UINT16 * pubSoldierID, BOOLEAN fGive, BOOLEAN fAllowMercs, BOOLEAN fCheckCollapsed )
{ {
// Check if there is a guy here to talk to! // Check if there is a guy here to talk to!
if ( gfUIFullTargetFound ) if ( gfUIFullTargetFound )
{ {
*pubSoldierID = (UINT8)gusUIFullTargetID; *pubSoldierID = gusUIFullTargetID;
return( IsValidTalkableNPC( (UINT8)gusUIFullTargetID, fGive, fAllowMercs, fCheckCollapsed ) ); return( IsValidTalkableNPC( gusUIFullTargetID, fGive, fAllowMercs, fCheckCollapsed ) );
} }
return( FALSE ); return( FALSE );
} }
BOOLEAN IsValidTalkableNPC( UINT8 ubSoldierID, BOOLEAN fGive , BOOLEAN fAllowMercs, BOOLEAN fCheckCollapsed ) BOOLEAN IsValidTalkableNPC( UINT16 ubSoldierID, BOOLEAN fGive, BOOLEAN fAllowMercs, BOOLEAN fCheckCollapsed )
{ {
SOLDIERTYPE *pSoldier = MercPtrs[ ubSoldierID ]; SOLDIERTYPE *pSoldier = MercPtrs[ ubSoldierID ];
BOOLEAN fValidGuy = FALSE; BOOLEAN fValidGuy = FALSE;
@@ -6509,7 +6509,7 @@ BOOLEAN HandleTalkInit( )
if ( gfUIFullTargetFound ) if ( gfUIFullTargetFound )
{ {
// Is he a valid NPC? // Is he a valid NPC?
if ( IsValidTalkableNPC( (UINT8)gusUIFullTargetID, FALSE, TRUE , FALSE ) ) if ( IsValidTalkableNPC( gusUIFullTargetID, FALSE, TRUE, FALSE ) )
{ {
GetSoldier( &pTSoldier, gusUIFullTargetID ); GetSoldier( &pTSoldier, gusUIFullTargetID );
@@ -6716,7 +6716,7 @@ BOOLEAN HandleTalkInit( )
void SetUIBusy( UINT8 ubID ) void SetUIBusy( UINT16 ubID )
{ {
if ( (gTacticalStatus.uiFlags & INCOMBAT ) && ( gTacticalStatus.uiFlags & TURNBASED ) && ( gTacticalStatus.ubCurrentTeam == gbPlayerNum ) ) if ( (gTacticalStatus.uiFlags & INCOMBAT ) && ( gTacticalStatus.uiFlags & TURNBASED ) && ( gTacticalStatus.ubCurrentTeam == gbPlayerNum ) )
{ {
@@ -6728,7 +6728,7 @@ void SetUIBusy( UINT8 ubID )
} }
} }
void UnSetUIBusy( UINT8 ubID ) void UnSetUIBusy( UINT16 ubID )
{ {
if ( gfUserTurnRegionActive && (gTacticalStatus.uiFlags & INCOMBAT ) && ( gTacticalStatus.uiFlags & TURNBASED ) && ( gTacticalStatus.ubCurrentTeam == gbPlayerNum ) ) if ( gfUserTurnRegionActive && (gTacticalStatus.uiFlags & INCOMBAT ) && ( gTacticalStatus.uiFlags & TURNBASED ) && ( gTacticalStatus.ubCurrentTeam == gbPlayerNum ) )
{ {
@@ -7274,7 +7274,8 @@ BOOLEAN IsValidJumpLocation( SOLDIERTYPE *pSoldier, INT32 sGridNo, BOOLEAN fChec
INT32 sFourGrids[4], sDistance=0, sSpot, sInBetween, sInBetween2, iDoorGridNo; INT32 sFourGrids[4], sDistance=0, sSpot, sInBetween, sInBetween2, iDoorGridNo;
static const UINT8 sDirs[4] = { NORTH, EAST, SOUTH, WEST }; static const UINT8 sDirs[4] = { NORTH, EAST, SOUTH, WEST };
//INT32 cnt; //INT32 cnt;
UINT8 ubGuyThere, ubMovementCost, ubDirection; UINT16 ubGuyThere;
UINT8 ubMovementCost, ubDirection;
INT8 bTileHeight = 0; INT8 bTileHeight = 0;
// SANDRO: commented out to allow jumping even in cases we could get to the destination normally // SANDRO: commented out to allow jumping even in cases we could get to the destination normally
+8 -8
View File
@@ -200,10 +200,10 @@ extern BOOLEAN gfUIHandleSelectionAboveGuy;
extern INT32 gsSelectedGridNo; extern INT32 gsSelectedGridNo;
extern INT16 gsSelectedGuy; extern INT16 gsSelectedGuy;
extern BOOLEAN gfUIInDeadlock; extern BOOLEAN gfUIInDeadlock;
extern UINT8 gUIDeadlockedSoldier; extern UINT16 gUIDeadlockedSoldier;
extern BOOLEAN gfUIMouseOnValidCatcher; extern BOOLEAN gfUIMouseOnValidCatcher;
extern UINT8 gubUIValidCatcherID; extern UINT16 gubUIValidCatcherID;
extern BOOLEAN gUIUseReverse; extern BOOLEAN gUIUseReverse;
@@ -320,13 +320,13 @@ void AdjustSoldierCreationStartValues( );
BOOLEAN SelectedMercCanAffordAttack( ); BOOLEAN SelectedMercCanAffordAttack( );
BOOLEAN SelectedMercCanAffordMove( ); BOOLEAN SelectedMercCanAffordMove( );
void GetMercClimbDirection( UINT8 ubSoldierID, BOOLEAN *pfGoDown, BOOLEAN *pfGoUp ); void GetMercClimbDirection( UINT16 ubSoldierID, BOOLEAN *pfGoDown, BOOLEAN *pfGoUp );
void ToggleHandCursorMode( UINT32 *puiNewEvent ); void ToggleHandCursorMode( UINT32 *puiNewEvent );
void ToggleTalkCursorMode( UINT32 *puiNewEvent ); void ToggleTalkCursorMode( UINT32 *puiNewEvent );
void ToggleLookCursorMode( UINT32 *puiNewEvent ); void ToggleLookCursorMode( UINT32 *puiNewEvent );
void UIHandleSoldierStanceChange( UINT8 ubSoldierID, INT8 bNewStance ); void UIHandleSoldierStanceChange( UINT16 ubSoldierID, INT8 bNewStance );
void GetCursorMovementFlags( UINT32 *puiCursorFlags ); void GetCursorMovementFlags( UINT32 *puiCursorFlags );
BOOLEAN HandleUIMovementCursor( SOLDIERTYPE *pSoldier, UINT32 uiCursorFlags, INT32 usMapPos, UINT32 uiFlags ); BOOLEAN HandleUIMovementCursor( SOLDIERTYPE *pSoldier, UINT32 uiCursorFlags, INT32 usMapPos, UINT32 uiFlags );
@@ -334,15 +334,15 @@ BOOLEAN UIMouseOnValidAttackLocation( SOLDIERTYPE *pSoldier );
BOOLEAN UIOkForItemPickup( SOLDIERTYPE *pSoldier, INT32 sGridNo ); BOOLEAN UIOkForItemPickup( SOLDIERTYPE *pSoldier, INT32 sGridNo );
BOOLEAN IsValidTalkableNPCFromMouse( UINT8 *pubSoldierID, BOOLEAN fGive, BOOLEAN fAllowMercs, BOOLEAN fCheckCollapsed ); BOOLEAN IsValidTalkableNPCFromMouse( UINT16 * pubSoldierID, BOOLEAN fGive, BOOLEAN fAllowMercs, BOOLEAN fCheckCollapsed );
BOOLEAN IsValidTalkableNPC( UINT8 ubSoldierID, BOOLEAN fGive, BOOLEAN fAllowMercs, BOOLEAN fCheckCollapsed ); BOOLEAN IsValidTalkableNPC( UINT16 ubSoldierID, BOOLEAN fGive, BOOLEAN fAllowMercs, BOOLEAN fCheckCollapsed );
BOOLEAN HandleTalkInit( ); BOOLEAN HandleTalkInit( );
BOOLEAN HandleCheckForExitArrowsInput( BOOLEAN fAdjustForConfirm ); BOOLEAN HandleCheckForExitArrowsInput( BOOLEAN fAdjustForConfirm );
void SetUIBusy( UINT8 ubID ); void SetUIBusy( UINT16 ubID );
void UnSetUIBusy( UINT8 ubID ); void UnSetUIBusy( UINT16 ubID );
UINT32 UIHandleLUIEndLock( UI_EVENT *pUIEvent ); UINT32 UIHandleLUIEndLock( UI_EVENT *pUIEvent );
+1 -1
View File
@@ -921,7 +921,7 @@ void RenderTopmostTacticalInterface( )
} }
else else
{ {
DrawSelectedUIAboveGuy((UINT16)pSoldier->ubID); DrawSelectedUIAboveGuy(pSoldier->ubID);
} }
DrawCounters( pSoldier ); DrawCounters( pSoldier );
+11 -11
View File
@@ -187,7 +187,7 @@ BOOLEAN InternalInitiateConversation( SOLDIERTYPE *pDestSoldier, SOLDIERTYPE *pS
extern void EndGameMessageBoxCallBack( UINT8 ubExitValue ); extern void EndGameMessageBoxCallBack( UINT8 ubExitValue );
extern INT32 FindNearestOpenableNonDoor( INT32 sStartGridNo ); extern INT32 FindNearestOpenableNonDoor( INT32 sStartGridNo );
extern void RecalculateOppCntsDueToBecomingNeutral( SOLDIERTYPE * pSoldier ); extern void RecalculateOppCntsDueToBecomingNeutral( SOLDIERTYPE * pSoldier );
extern UINT8 NumCapableEnemyInSector( ); extern UINT16 NumCapableEnemyInSector( );
#ifdef JA2UB #ifdef JA2UB
//JA25 UB //JA25 UB
@@ -1042,7 +1042,7 @@ void TalkPanelClickCallback( MOUSE_REGION * pRegion, INT32 iReason )
// open inv panel... // open inv panel...
gfSwitchPanel = TRUE; gfSwitchPanel = TRUE;
gbNewPanel = SM_PANEL; gbNewPanel = SM_PANEL;
gubNewPanelParam = (UINT8)gpSrcSoldier->ubID; gubNewPanelParam = gpSrcSoldier->ubID;
// Wait! // Wait!
gpDestSoldier->aiData.bNextAction = AI_ACTION_WAIT; gpDestSoldier->aiData.bNextAction = AI_ACTION_WAIT;
@@ -1560,7 +1560,7 @@ void HandleNPCTriggerNPC( UINT8 ubTargetNPC, UINT8 ubTargetRecord, BOOLEAN fShow
guiWaitingForTriggerTime = GetJA2Clock( ); guiWaitingForTriggerTime = GetJA2Clock( );
// Setup locator! // Setup locator!
ShowRadioLocator( (UINT8)pSoldier->ubID, SHOW_LOCATOR_FAST ); ShowRadioLocator( pSoldier->ubID, SHOW_LOCATOR_FAST );
// If he's visible, locate... // If he's visible, locate...
if ( pSoldier->bVisible != -1 ) if ( pSoldier->bVisible != -1 )
@@ -1589,7 +1589,7 @@ void HandleNPCTrigger( )
{ {
SOLDIERTYPE *pSoldier; SOLDIERTYPE *pSoldier;
INT32 sPlayerGridNo; INT32 sPlayerGridNo;
UINT8 ubPlayerID; UINT16 ubPlayerID;
pSoldier = FindSoldierByProfileID( gubTargetNPC, FALSE ); pSoldier = FindSoldierByProfileID( gubTargetNPC, FALSE );
if (!pSoldier) if (!pSoldier)
@@ -2481,7 +2481,7 @@ void HandleNPCDoAction( UINT8 ubTargetNPC, UINT16 usActionCode, UINT8 ubQuoteNum
if (pSoldier) if (pSoldier)
{ {
DeleteTalkingMenu(); DeleteTalkingMenu();
pSoldier->EVENT_SoldierGotHit( 1, 100, 10, pSoldier->ubDirection, 320, NOBODY , FIRE_WEAPON_NO_SPECIAL, AIM_SHOT_TORSO, 0, NOWHERE ); pSoldier->EVENT_SoldierGotHit( 1, 100, 10, pSoldier->ubDirection, 320, NOBODY, FIRE_WEAPON_NO_SPECIAL, AIM_SHOT_TORSO, 0, NOWHERE );
} }
break; break;
@@ -2826,7 +2826,7 @@ void HandleNPCDoAction( UINT8 ubTargetNPC, UINT16 usActionCode, UINT8 ubQuoteNum
bItemIn = FindObj( pSoldier, DEED ); bItemIn = FindObj( pSoldier, DEED );
if (bItemIn != NO_SLOT) if (bItemIn != NO_SLOT)
{ {
AddItemToPool( 12541, &(pSoldier->inv[bItemIn]), -1 , 0, 0, 0 ); AddItemToPool( 12541, &(pSoldier->inv[bItemIn]), -1, 0, 0, 0 );
DeleteObj( &(pSoldier->inv[ bItemIn ]) ); DeleteObj( &(pSoldier->inv[ bItemIn ]) );
RemoveObjectFromSoldierProfile( ubTargetNPC, DEED ); RemoveObjectFromSoldierProfile( ubTargetNPC, DEED );
} }
@@ -3225,7 +3225,7 @@ void HandleNPCDoAction( UINT8 ubTargetNPC, UINT16 usActionCode, UINT8 ubQuoteNum
if ( pSoldier ) if ( pSoldier )
{ {
INT32 sNearestPC; INT32 sNearestPC;
UINT8 ubID; UINT16 ubID;
INT8 bMoneySlot; INT8 bMoneySlot;
INT8 bEmptySlot; INT8 bEmptySlot;
@@ -3358,7 +3358,7 @@ void HandleNPCDoAction( UINT8 ubTargetNPC, UINT16 usActionCode, UINT8 ubQuoteNum
pSoldier = FindSoldierByProfileID( ubTargetNPC, FALSE ); pSoldier = FindSoldierByProfileID( ubTargetNPC, FALSE );
if (pSoldier) if (pSoldier)
{ {
UINT8 ubTargetID; UINT16 ubTargetID;
SOLDIERTYPE *pTarget; SOLDIERTYPE *pTarget;
// Target a different merc.... // Target a different merc....
@@ -3478,7 +3478,7 @@ void HandleNPCDoAction( UINT8 ubTargetNPC, UINT16 usActionCode, UINT8 ubQuoteNum
pSoldier = FindSoldierByProfileID( ubTargetNPC, FALSE ); pSoldier = FindSoldierByProfileID( ubTargetNPC, FALSE );
if (pSoldier) if (pSoldier)
{ {
UINT8 ubTargetID; UINT16 ubTargetID;
SOLDIERTYPE *pTarget; SOLDIERTYPE *pTarget;
INT32 cnt; INT32 cnt;
BOOLEAN fGoodTarget = FALSE; BOOLEAN fGoodTarget = FALSE;
@@ -3901,7 +3901,7 @@ void HandleNPCDoAction( UINT8 ubTargetNPC, UINT16 usActionCode, UINT8 ubQuoteNum
if ( !gfInTalkPanel ) if ( !gfInTalkPanel )
{ {
INT32 sNearestPC; INT32 sNearestPC;
UINT8 ubID; UINT16 ubID;
pSoldier = FindSoldierByProfileID( ubTargetNPC, FALSE ); pSoldier = FindSoldierByProfileID( ubTargetNPC, FALSE );
if ( pSoldier ) if ( pSoldier )
@@ -4850,7 +4850,7 @@ void DialogueMessageBoxCallBack( UINT8 ubExitValue )
{ {
// He tried to lie..... // He tried to lie.....
// Find the best conscious merc with a chance.... // Find the best conscious merc with a chance....
UINT8 cnt; UINT16 cnt;
SOLDIERTYPE * pLier = NULL; SOLDIERTYPE * pLier = NULL;
SOLDIERTYPE * pSoldier; SOLDIERTYPE * pSoldier;
+11 -11
View File
@@ -238,7 +238,7 @@ extern MOUSE_REGION gMPanelRegion;
extern BOOLEAN fMapInventoryItem; extern BOOLEAN fMapInventoryItem;
extern BOOLEAN gfAddingMoneyToMercFromPlayersAccount; extern BOOLEAN gfAddingMoneyToMercFromPlayersAccount;
extern SOLDIERTYPE *gpSMCurrentMerc; extern SOLDIERTYPE *gpSMCurrentMerc;
extern UINT8 gubSelectSMPanelToMerc; extern UINT16 gubSelectSMPanelToMerc;
extern MOUSE_REGION gSM_SELMERCMoneyRegion; extern MOUSE_REGION gSM_SELMERCMoneyRegion;
extern UINT32 guiMapInvSecondHandBlockout; extern UINT32 guiMapInvSecondHandBlockout;
@@ -8829,7 +8829,7 @@ void DrawItemTileCursor( )
{ {
INT32 usMapPos; INT32 usMapPos;
UINT16 usIndex; UINT16 usIndex;
UINT8 ubSoldierID; UINT16 ubSoldierID;
INT16 sAPCost; INT16 sAPCost;
BOOLEAN fRecalc; BOOLEAN fRecalc;
UINT32 uiCursorFlags; UINT32 uiCursorFlags;
@@ -8935,7 +8935,7 @@ void DrawItemTileCursor( )
{ {
// OK, on a valid pass // OK, on a valid pass
gfUIMouseOnValidCatcher = 4; gfUIMouseOnValidCatcher = 4;
gubUIValidCatcherID = (UINT8)gusUIFullTargetID; gubUIValidCatcherID = gusUIFullTargetID;
} }
else else
{ {
@@ -8944,7 +8944,7 @@ void DrawItemTileCursor( )
{ {
// OK, set global that this buddy can see catch... // OK, set global that this buddy can see catch...
gfUIMouseOnValidCatcher = TRUE; gfUIMouseOnValidCatcher = TRUE;
gubUIValidCatcherID = (UINT8)gusUIFullTargetID; gubUIValidCatcherID = gusUIFullTargetID;
} }
} }
} }
@@ -8978,7 +8978,7 @@ void DrawItemTileCursor( )
// OK, set global that this buddy can see catch... // OK, set global that this buddy can see catch...
gfUIMouseOnValidCatcher = 2; gfUIMouseOnValidCatcher = 2;
gubUIValidCatcherID = (UINT8)gusUIFullTargetID; gubUIValidCatcherID = gusUIFullTargetID;
// If this is a robot, change to say 'reload' // If this is a robot, change to say 'reload'
if ( MercPtrs[ gusUIFullTargetID ]->flags.uiStatusFlags & SOLDIER_ROBOT ) if ( MercPtrs[ gusUIFullTargetID ]->flags.uiStatusFlags & SOLDIER_ROBOT )
@@ -9175,7 +9175,7 @@ BOOLEAN HandleItemPointerClick( INT32 usMapPos )
UINT8 ubDirection; UINT8 ubDirection;
UINT8 ubSoldierID; UINT16 ubSoldierID;
UINT16 usItem; UINT16 usItem;
INT16 sAPCost; INT16 sAPCost;
SOLDIERTYPE *pSoldier=NULL; SOLDIERTYPE *pSoldier=NULL;
@@ -9411,7 +9411,7 @@ BOOLEAN HandleItemPointerClick( INT32 usMapPos )
case ANIM_CROUCH: case ANIM_CROUCH:
case ANIM_PRONE: case ANIM_PRONE:
AddItemToPool( usMapPos, gpItemPointer, 1, gpItemPointerSoldier->pathing.bLevel, 0 , -1 ); AddItemToPool( usMapPos, gpItemPointer, 1, gpItemPointerSoldier->pathing.bLevel, 0, -1 );
NotifySoldiersToLookforItems( ); NotifySoldiersToLookforItems( );
break; break;
} }
@@ -10960,7 +10960,7 @@ BOOLEAN InitializeItemPickupMenu( SOLDIERTYPE *pSoldier, INT32 sGridNo, ITEM_POO
// Change to INV panel if not there already... // Change to INV panel if not there already...
gfSwitchPanel = TRUE; gfSwitchPanel = TRUE;
gbNewPanel = SM_PANEL; gbNewPanel = SM_PANEL;
gubNewPanelParam = (UINT8)pSoldier->ubID; gubNewPanelParam = pSoldier->ubID;
//Determine total # //Determine total #
cnt = 0; cnt = 0;
@@ -12761,7 +12761,7 @@ void CancelItemPointer( )
if ( !AutoPlaceObject( gpItemPointerSoldier, gpItemPointer, FALSE ) ) if ( !AutoPlaceObject( gpItemPointerSoldier, gpItemPointer, FALSE ) )
{ {
// Alright, place of the friggen ground! // Alright, place of the friggen ground!
AddItemToPool( gpItemPointerSoldier->sGridNo, gpItemPointer, 1, gpItemPointerSoldier->pathing.bLevel, 0 , -1 ); AddItemToPool( gpItemPointerSoldier->sGridNo, gpItemPointer, 1, gpItemPointerSoldier->pathing.bLevel, 0, -1 );
NotifySoldiersToLookforItems( ); NotifySoldiersToLookforItems( );
} }
} }
@@ -12769,7 +12769,7 @@ void CancelItemPointer( )
else else
{ {
// We drop it here..... // We drop it here.....
AddItemToPool( gpItemPointerSoldier->sGridNo, gpItemPointer, 1, gpItemPointerSoldier->pathing.bLevel, 0 , -1 ); AddItemToPool( gpItemPointerSoldier->sGridNo, gpItemPointer, 1, gpItemPointerSoldier->pathing.bLevel, 0, -1 );
NotifySoldiersToLookforItems( ); NotifySoldiersToLookforItems( );
} }
EndItemPointer( ); EndItemPointer( );
@@ -12920,7 +12920,7 @@ BOOLEAN InitializeStealItemPickupMenu( SOLDIERTYPE *pSoldier, SOLDIERTYPE *pOppo
// Change to INV panel if not there already... // Change to INV panel if not there already...
gfSwitchPanel = TRUE; gfSwitchPanel = TRUE;
gbNewPanel = SM_PANEL; gbNewPanel = SM_PANEL;
gubNewPanelParam = (UINT8)pSoldier->ubID; gubNewPanelParam = pSoldier->ubID;
gItemPickupMenu.ubTotalItems = ubCount; gItemPickupMenu.ubTotalItems = ubCount;
+2 -1
View File
@@ -166,11 +166,12 @@ public:
BOOLEAN Save(HWFILE hFile); BOOLEAN Save(HWFILE hFile);
BOOLEAN Load(HWFILE hFile); BOOLEAN Load(HWFILE hFile);
UINT8 ubSoldierID; UINT16 ubSoldierID;
UINT8 ubInvSlot; UINT8 ubInvSlot;
BOOLEAN fCursorActive; BOOLEAN fCursorActive;
OBJECTTYPE ItemPointerInfo; OBJECTTYPE ItemPointerInfo;
}; };
#define SIZEOF_ITEM_CURSOR_SAVE_INFO_POD offsetof( ITEM_CURSOR_SAVE_INFO, ItemPointerInfo )
// HEADROCK HAM 5: Enums for big-item display attachment asterisks. // HEADROCK HAM 5: Enums for big-item display attachment asterisks.
enum enum
+39 -39
View File
@@ -394,7 +394,7 @@ INT32 giSMZipperButton = -1;
BOOLEAN gfSwitchPanel = FALSE; BOOLEAN gfSwitchPanel = FALSE;
UINT8 gbNewPanel = SM_PANEL; UINT8 gbNewPanel = SM_PANEL;
UINT8 gubNewPanelParam = 0; UINT16 gubNewPanelParam = 0;
BOOLEAN gfUIStanceDifferent = FALSE; BOOLEAN gfUIStanceDifferent = FALSE;
BOOLEAN gfAllDisabled = FALSE; BOOLEAN gfAllDisabled = FALSE;
@@ -405,7 +405,7 @@ BOOLEAN gfAddingMoneyToMercFromPlayersAccount = FALSE;
BOOLEAN gfCheckForMouseOverItem = FALSE; BOOLEAN gfCheckForMouseOverItem = FALSE;
UINT32 guiMouseOverItemTime = 0; UINT32 guiMouseOverItemTime = 0;
INT8 gbCheckForMouseOverItemPos = 0; INT8 gbCheckForMouseOverItemPos = 0;
UINT8 gubSelectSMPanelToMerc = NOBODY; UINT16 gubSelectSMPanelToMerc = NOBODY;
BOOLEAN gfReEvaluateDisabledINVPanelButtons = FALSE; BOOLEAN gfReEvaluateDisabledINVPanelButtons = FALSE;
UINT32 guiBrownBackgroundForTeamPanel; UINT32 guiBrownBackgroundForTeamPanel;
@@ -573,7 +573,7 @@ void UpdateSelectedSoldier( UINT16 usSoldierID, BOOLEAN fSelect );
void CheckForFacePanelStartAnims( SOLDIERTYPE *pSoldier, INT16 sPanelX, INT16 sPanelY ); void CheckForFacePanelStartAnims( SOLDIERTYPE *pSoldier, INT16 sPanelX, INT16 sPanelY );
void HandleSoldierFaceFlash( SOLDIERTYPE *pSoldier, INT16 sFaceX, INT16 sFaceY ); void HandleSoldierFaceFlash( SOLDIERTYPE *pSoldier, INT16 sFaceX, INT16 sFaceY );
BOOLEAN PlayerExistsInSlot( UINT8 ubID ); BOOLEAN PlayerExistsInSlot( UINT16 ubID );
void UpdateStatColor( UINT32 uiTimer, BOOLEAN fIncrease, BOOLEAN fDamaged, BOOLEAN fAugmented ); // SANDRO - added argument // Flugente - me too void UpdateStatColor( UINT32 uiTimer, BOOLEAN fIncrease, BOOLEAN fDamaged, BOOLEAN fAugmented ); // SANDRO - added argument // Flugente - me too
extern void UpdateItemHatches(); extern void UpdateItemHatches();
@@ -597,7 +597,7 @@ void CheckForDisabledForGiveItem( )
INT8 bDestLevel; INT8 bDestLevel;
INT32 cnt; INT32 cnt;
SOLDIERTYPE *pSoldier; SOLDIERTYPE *pSoldier;
UINT8 ubSrcSoldier; UINT16 ubSrcSoldier;
// CHRISL: If Merc hasn't been set, default to first merc // CHRISL: If Merc hasn't been set, default to first merc
if(gpSMCurrentMerc==NULL) if(gpSMCurrentMerc==NULL)
@@ -638,7 +638,7 @@ void CheckForDisabledForGiveItem( )
} }
else else
{ {
ubSrcSoldier = (UINT8)gusSelectedSoldier; ubSrcSoldier = gusSelectedSoldier;
if ( gpItemPointer != NULL ) if ( gpItemPointer != NULL )
{ {
@@ -690,7 +690,7 @@ void CheckForDisabledForGiveItem( )
} }
} }
void SetSMPanelCurrentMerc( UINT8 ubNewID ) void SetSMPanelCurrentMerc( UINT16 ubNewID )
{ {
gubSelectSMPanelToMerc = NOBODY; gubSelectSMPanelToMerc = NOBODY;
@@ -3729,7 +3729,7 @@ void SMInvClickCallback( MOUSE_REGION * pRegion, INT32 iReason )
} }
else // item in cursor else // item in cursor
{ {
UINT8 ubSrcID, ubDestID; UINT16 ubSrcID, ubDestID;
BOOLEAN fOKToGo = FALSE; BOOLEAN fOKToGo = FALSE;
BOOLEAN fDeductPoints = FALSE; BOOLEAN fDeductPoints = FALSE;
@@ -4217,7 +4217,7 @@ BOOLEAN ChangeDropPackStatus(SOLDIERTYPE *pSoldier, BOOLEAN newStatus)
} }
} }
MoveItemToLBEItem( pSoldier, BPACKPOCKPOS ); MoveItemToLBEItem( pSoldier, BPACKPOCKPOS );
AddItemToPoolAndGetIndex(pSoldier->sGridNo, &pSoldier->inv[BPACKPOCKPOS], 1, pSoldier->pathing.bLevel, 0 , -1, pSoldier->ubID, &worldKey ); AddItemToPoolAndGetIndex(pSoldier->sGridNo, &pSoldier->inv[BPACKPOCKPOS], 1, pSoldier->pathing.bLevel, 0, -1, pSoldier->ubID, &worldKey );
// Item successfully added to world // Item successfully added to world
if(worldKey != ITEM_NOT_FOUND) if(worldKey != ITEM_NOT_FOUND)
{ {
@@ -4829,7 +4829,7 @@ void BtnPrevMercCallback(GUI_BUTTON *btn,INT32 reason)
sID = FindPrevActiveAndAliveMerc( gpSMCurrentMerc, TRUE, TRUE ); sID = FindPrevActiveAndAliveMerc( gpSMCurrentMerc, TRUE, TRUE );
gubSelectSMPanelToMerc = (UINT8)sID; gubSelectSMPanelToMerc = (UINT16)sID;
if ( !gfInItemPickupMenu ) if ( !gfInItemPickupMenu )
{ {
@@ -4878,7 +4878,7 @@ void BtnNextMercCallback(GUI_BUTTON *btn,INT32 reason)
sID = FindNextActiveAndAliveMerc( gpSMCurrentMerc, TRUE, TRUE ); sID = FindNextActiveAndAliveMerc( gpSMCurrentMerc, TRUE, TRUE );
// Give him the panel! // Give him the panel!
gubSelectSMPanelToMerc = (UINT8)sID; gubSelectSMPanelToMerc = (UINT16)sID;
if ( !gfInItemPickupMenu ) if ( !gfInItemPickupMenu )
{ {
@@ -5893,7 +5893,7 @@ void BtnSquadCallback(GUI_BUTTON *btn,INT32 reason)
} }
void SetTEAMPanelCurrentMerc( UINT8 ubNewID ) void SetTEAMPanelCurrentMerc( UINT16 ubNewID )
{ {
// Ignore ther ID given! // Ignore ther ID given!
// ALWYAS USE CURRENT MERC! // ALWYAS USE CURRENT MERC!
@@ -6026,10 +6026,10 @@ void HandleMouseOverTeamFaceForContMove( BOOLEAN fOn )
void MercFacePanelMoveCallback( MOUSE_REGION * pRegion, INT32 iReason ) void MercFacePanelMoveCallback( MOUSE_REGION * pRegion, INT32 iReason )
{ {
UINT8 ubID, ubSoldierID; UINT16 ubID, ubSoldierID;
SOLDIERTYPE *pSoldier; SOLDIERTYPE *pSoldier;
ubID = (UINT8) MSYS_GetRegionUserData( pRegion, 0 ); ubID = (UINT16) MSYS_GetRegionUserData( pRegion, 0 );
// If our flags are set to do this, gofoit! // If our flags are set to do this, gofoit!
if ( (guiTacticalInterfaceFlags & INTERFACE_MAPSCREEN ) ) if ( (guiTacticalInterfaceFlags & INTERFACE_MAPSCREEN ) )
@@ -6072,9 +6072,9 @@ void MercFacePanelMoveCallback( MOUSE_REGION * pRegion, INT32 iReason )
void EnemyIndicatorClickCallback( MOUSE_REGION * pRegion, INT32 iReason ) void EnemyIndicatorClickCallback( MOUSE_REGION * pRegion, INT32 iReason )
{ {
UINT8 ubID, ubSoldierID; UINT16 ubID, ubSoldierID;
ubID = (UINT8) MSYS_GetRegionUserData( pRegion, 0 ); ubID = (UINT16) MSYS_GetRegionUserData( pRegion, 0 );
if ( ubID == NOBODY ) if ( ubID == NOBODY )
{ {
@@ -6127,9 +6127,9 @@ void EnemyIndicatorClickCallback( MOUSE_REGION * pRegion, INT32 iReason )
void MercFacePanelCallback( MOUSE_REGION * pRegion, INT32 iReason ) void MercFacePanelCallback( MOUSE_REGION * pRegion, INT32 iReason )
{ {
UINT8 ubID, ubSoldierID; UINT16 ubID, ubSoldierID;
ubID = (UINT8) MSYS_GetRegionUserData( pRegion, 0 ); ubID = (UINT16) MSYS_GetRegionUserData( pRegion, 0 );
// If our flags are set to do this, gofoit! // If our flags are set to do this, gofoit!
if ( (guiTacticalInterfaceFlags & INTERFACE_MAPSCREEN ) ) if ( (guiTacticalInterfaceFlags & INTERFACE_MAPSCREEN ) )
@@ -6248,7 +6248,7 @@ void MercFacePanelCallback( MOUSE_REGION * pRegion, INT32 iReason )
{ {
gfSwitchPanel = TRUE; gfSwitchPanel = TRUE;
gbNewPanel = SM_PANEL; gbNewPanel = SM_PANEL;
gubNewPanelParam = (UINT8)ubSoldierID; gubNewPanelParam = ubSoldierID;
// silversurfer: This needs to be reset to TRUE because inventory view only allows radar screen to be displayed and not the squad list. // silversurfer: This needs to be reset to TRUE because inventory view only allows radar screen to be displayed and not the squad list.
fRenderRadarScreen = TRUE; fRenderRadarScreen = TRUE;
} }
@@ -6259,7 +6259,7 @@ void MercFacePanelCallback( MOUSE_REGION * pRegion, INT32 iReason )
extern void InternalSelectSoldier( UINT16 usSoldierID, BOOLEAN fAcknowledge, BOOLEAN fForceReselect, BOOLEAN fFromUI ); extern void InternalSelectSoldier( UINT16 usSoldierID, BOOLEAN fAcknowledge, BOOLEAN fForceReselect, BOOLEAN fFromUI );
void HandleLocateSelectMerc( UINT8 ubID, INT8 bFlag ) void HandleLocateSelectMerc( UINT16 ubID, INT8 bFlag )
{ {
BOOLEAN fSelect = FALSE; BOOLEAN fSelect = FALSE;
@@ -6386,7 +6386,7 @@ void HandleLocateSelectMerc( UINT8 ubID, INT8 bFlag )
void ShowRadioLocator( UINT8 ubID, UINT8 ubLocatorSpeed ) void ShowRadioLocator( UINT16 ubID, UINT8 ubLocatorSpeed )
{ {
RESETTIMECOUNTER( MercPtrs[ ubID ]->timeCounters.FlashSelCounter, FLASH_SELECTOR_DELAY ); RESETTIMECOUNTER( MercPtrs[ ubID ]->timeCounters.FlashSelCounter, FLASH_SELECTOR_DELAY );
@@ -6413,7 +6413,7 @@ void ShowRadioLocator( UINT8 ubID, UINT8 ubLocatorSpeed )
} }
} }
void EndRadioLocator( UINT8 ubID ) void EndRadioLocator( UINT16 ubID )
{ {
MercPtrs[ ubID ]->flags.fFlashLocator = FALSE; MercPtrs[ ubID ]->flags.fFlashLocator = FALSE;
MercPtrs[ ubID ]->flags.fShowLocator = FALSE; MercPtrs[ ubID ]->flags.fShowLocator = FALSE;
@@ -6681,9 +6681,9 @@ void RenderSoldierTeamInv( SOLDIERTYPE *pSoldier, INT16 sX, INT16 sY, UINT8 ubPa
void TMFirstHandInvCallback( MOUSE_REGION * pRegion, INT32 iReason ) void TMFirstHandInvCallback( MOUSE_REGION * pRegion, INT32 iReason )
{ {
UINT8 ubID, ubSoldierID; UINT16 ubID, ubSoldierID;
ubID = (UINT8) MSYS_GetRegionUserData( pRegion, 0 ); ubID = (UINT16) MSYS_GetRegionUserData( pRegion, 0 );
// If our flags are set to do this, gofoit! // If our flags are set to do this, gofoit!
if ( (guiTacticalInterfaceFlags & INTERFACE_MAPSCREEN ) ) if ( (guiTacticalInterfaceFlags & INTERFACE_MAPSCREEN ) )
@@ -6731,10 +6731,10 @@ void TMFirstHandInvCallback( MOUSE_REGION * pRegion, INT32 iReason )
void TMClickFirstHandInvCallback( MOUSE_REGION * pRegion, INT32 iReason ) void TMClickFirstHandInvCallback( MOUSE_REGION * pRegion, INT32 iReason )
{ {
UINT8 ubID, ubSoldierID; UINT16 ubID, ubSoldierID;
UINT16 usOldHandItem; UINT16 usOldHandItem;
ubID = (UINT8) MSYS_GetRegionUserData( pRegion, 0 ); ubID = (UINT16) MSYS_GetRegionUserData( pRegion, 0 );
if ( ubID == NOBODY ) if ( ubID == NOBODY )
@@ -6777,10 +6777,10 @@ void TMClickFirstHandInvCallback( MOUSE_REGION * pRegion, INT32 iReason )
void TMClickSecondHandInvCallback( MOUSE_REGION * pRegion, INT32 iReason ) void TMClickSecondHandInvCallback( MOUSE_REGION * pRegion, INT32 iReason )
{ {
UINT8 ubID, ubSoldierID; UINT16 ubID, ubSoldierID;
UINT16 usOldHandItem; UINT16 usOldHandItem;
ubID = (UINT8) MSYS_GetRegionUserData( pRegion, 0 ); ubID = (UINT16) MSYS_GetRegionUserData( pRegion, 0 );
if ( ubID == NOBODY ) if ( ubID == NOBODY )
return; return;
@@ -6822,7 +6822,7 @@ void TMClickSecondHandInvCallback( MOUSE_REGION * pRegion, INT32 iReason )
} }
BOOLEAN PlayerExistsInSlot( UINT8 ubID ) BOOLEAN PlayerExistsInSlot( UINT16 ubID )
{ {
INT32 cnt; INT32 cnt;
@@ -6841,7 +6841,7 @@ BOOLEAN PlayerExistsInSlot( UINT8 ubID )
} }
INT8 GetTeamSlotFromPlayerID( UINT8 ubID ) INT8 GetTeamSlotFromPlayerID( UINT16 ubID )
{ {
INT8 cnt; INT8 cnt;
@@ -6860,7 +6860,7 @@ INT8 GetTeamSlotFromPlayerID( UINT8 ubID )
} }
BOOLEAN RemovePlayerFromTeamSlotGivenMercID( UINT8 ubMercID ) BOOLEAN RemovePlayerFromTeamSlotGivenMercID( UINT16 ubMercID )
{ {
INT32 cnt; INT32 cnt;
@@ -6880,7 +6880,7 @@ BOOLEAN RemovePlayerFromTeamSlotGivenMercID( UINT8 ubMercID )
} }
void AddPlayerToInterfaceTeamSlot( UINT8 ubID ) void AddPlayerToInterfaceTeamSlot( UINT16 ubID )
{ {
INT32 cnt; INT32 cnt;
@@ -6964,7 +6964,7 @@ BOOLEAN InitTEAMSlots( )
} }
BOOLEAN GetPlayerIDFromInterfaceTeamSlot( UINT8 ubPanelSlot, UINT8 *pubID ) BOOLEAN GetPlayerIDFromInterfaceTeamSlot( UINT8 ubPanelSlot, UINT16 * pubID )
{ {
if ( ubPanelSlot >= gGameOptions.ubSquadSize ) if ( ubPanelSlot >= gGameOptions.ubSquadSize )
{ {
@@ -7141,7 +7141,7 @@ void CleanUpStack( OBJECTTYPE * pObj, OBJECTTYPE * pCursorObj )
} }
} }
UINT8 FindNextMercInTeamPanel( SOLDIERTYPE *pSoldier, BOOLEAN fGoodForLessOKLife, BOOLEAN fOnlyRegularMercs ) UINT16 FindNextMercInTeamPanel( SOLDIERTYPE *pSoldier, BOOLEAN fGoodForLessOKLife, BOOLEAN fOnlyRegularMercs )
{ {
INT32 cnt; INT32 cnt;
INT32 bFirstID; INT32 bFirstID;
@@ -7174,14 +7174,14 @@ UINT8 FindNextMercInTeamPanel( SOLDIERTYPE *pSoldier, BOOLEAN fGoodForLessOKLife
{ {
if ( pTeamSoldier->stats.bLife > 0 && pTeamSoldier->bActive && pTeamSoldier->bInSector && pTeamSoldier->bTeam == gbPlayerNum && pTeamSoldier->bAssignment < ON_DUTY && OK_INTERRUPT_MERC( pTeamSoldier ) && pSoldier->bAssignment == pTeamSoldier->bAssignment ) if ( pTeamSoldier->stats.bLife > 0 && pTeamSoldier->bActive && pTeamSoldier->bInSector && pTeamSoldier->bTeam == gbPlayerNum && pTeamSoldier->bAssignment < ON_DUTY && OK_INTERRUPT_MERC( pTeamSoldier ) && pSoldier->bAssignment == pTeamSoldier->bAssignment )
{ {
return( (UINT8)gTeamPanel[ cnt ].ubID ); return( gTeamPanel[ cnt ].ubID );
} }
} }
else else
{ {
if ( OK_CONTROLLABLE_MERC( pTeamSoldier) && OK_INTERRUPT_MERC( pTeamSoldier ) && pSoldier->bAssignment == pTeamSoldier->bAssignment ) if ( OK_CONTROLLABLE_MERC( pTeamSoldier) && OK_INTERRUPT_MERC( pTeamSoldier ) && pSoldier->bAssignment == pTeamSoldier->bAssignment )
{ {
return( (UINT8)gTeamPanel[ cnt ].ubID ); return( gTeamPanel[ cnt ].ubID );
} }
} }
} }
@@ -7234,14 +7234,14 @@ UINT8 FindNextMercInTeamPanel( SOLDIERTYPE *pSoldier, BOOLEAN fGoodForLessOKLife
{ {
if ( pTeamSoldier->stats.bLife > 0 && pTeamSoldier->bActive && pTeamSoldier->bInSector && pTeamSoldier->bTeam == gbPlayerNum && pTeamSoldier->bAssignment < ON_DUTY && OK_INTERRUPT_MERC( pTeamSoldier ) && pSoldier->bAssignment == pTeamSoldier->bAssignment ) if ( pTeamSoldier->stats.bLife > 0 && pTeamSoldier->bActive && pTeamSoldier->bInSector && pTeamSoldier->bTeam == gbPlayerNum && pTeamSoldier->bAssignment < ON_DUTY && OK_INTERRUPT_MERC( pTeamSoldier ) && pSoldier->bAssignment == pTeamSoldier->bAssignment )
{ {
return( (UINT8)gTeamPanel[ cnt ].ubID ); return( gTeamPanel[ cnt ].ubID );
} }
} }
else else
{ {
if ( OK_CONTROLLABLE_MERC( pTeamSoldier) && OK_INTERRUPT_MERC( pTeamSoldier ) && pSoldier->bAssignment == pTeamSoldier->bAssignment ) if ( OK_CONTROLLABLE_MERC( pTeamSoldier) && OK_INTERRUPT_MERC( pTeamSoldier ) && pSoldier->bAssignment == pTeamSoldier->bAssignment )
{ {
return( (UINT8)gTeamPanel[ cnt ].ubID ); return( gTeamPanel[ cnt ].ubID );
} }
} }
} }
@@ -7462,7 +7462,7 @@ void KeyRingSlotInvClickCallback( MOUSE_REGION * pRegion, INT32 iReason )
} }
else else
{ {
UINT8 ubSrcID, ubDestID; UINT16 ubSrcID, ubDestID;
BOOLEAN fOKToGo = FALSE; BOOLEAN fOKToGo = FALSE;
BOOLEAN fDeductPoints = FALSE; BOOLEAN fDeductPoints = FALSE;
@@ -7473,7 +7473,7 @@ void KeyRingSlotInvClickCallback( MOUSE_REGION * pRegion, INT32 iReason )
} }
// ATE: OK, get source, dest guy if different... check for and then charge appropriate APs // ATE: OK, get source, dest guy if different... check for and then charge appropriate APs
ubSrcID = ( UINT8 )gCharactersList[ bSelectedInfoChar ].usSolID; ubSrcID = gCharactersList[ bSelectedInfoChar ].usSolID;
if ( gpItemPointerSoldier ) if ( gpItemPointerSoldier )
{ {
ubDestID = gpItemPointerSoldier->ubID; ubDestID = gpItemPointerSoldier->ubID;
+10 -10
View File
@@ -77,18 +77,18 @@ void UpdateTEAMPanel( );
*/ */
BOOLEAN InitializeTEAMPanelCoords( ); BOOLEAN InitializeTEAMPanelCoords( );
void SetSMPanelCurrentMerc( UINT8 ubNewID ); void SetSMPanelCurrentMerc( UINT16 ubNewID );
void SetTEAMPanelCurrentMerc( UINT8 ubNewID ); void SetTEAMPanelCurrentMerc( UINT16 ubNewID );
UINT16 GetSMPanelCurrentMerc( ); UINT16 GetSMPanelCurrentMerc( );
void UpdateSMPanel( ); void UpdateSMPanel( );
BOOLEAN InitTEAMSlots( ); BOOLEAN InitTEAMSlots( );
void AddPlayerToInterfaceTeamSlot( UINT8 ubID ); void AddPlayerToInterfaceTeamSlot( UINT16 ubID );
BOOLEAN RemovePlayerFromInterfaceTeamSlot( UINT8 ubID ); BOOLEAN RemovePlayerFromInterfaceTeamSlot( UINT8 ubID );
BOOLEAN GetPlayerIDFromInterfaceTeamSlot( UINT8 ubPanelSlot, UINT8 *pubID ); BOOLEAN GetPlayerIDFromInterfaceTeamSlot( UINT8 ubPanelSlot, UINT16 * pubID );
void RemoveAllPlayersFromSlot( ); void RemoveAllPlayersFromSlot( );
BOOLEAN PlayerExistsInSlot( UINT8 ubID ); BOOLEAN PlayerExistsInSlot( UINT16 ubID );
BOOLEAN RemovePlayerFromTeamSlotGivenMercID( UINT8 ubMercID ); BOOLEAN RemovePlayerFromTeamSlotGivenMercID( UINT16 ubMercID );
void CheckForAndAddMercToTeamPanel( SOLDIERTYPE *pSoldier ); void CheckForAndAddMercToTeamPanel( SOLDIERTYPE *pSoldier );
void CleanUpStack( OBJECTTYPE * pObj, OBJECTTYPE * pCursorObj ); void CleanUpStack( OBJECTTYPE * pObj, OBJECTTYPE * pCursorObj );
@@ -107,8 +107,8 @@ extern INT8 gbNewItem[ NUM_INV_SLOTS ];
extern INT8 gbNewItemCycle[ NUM_INV_SLOTS ]; extern INT8 gbNewItemCycle[ NUM_INV_SLOTS ];
extern UINT8 gubNewItemMerc; extern UINT8 gubNewItemMerc;
void ShowRadioLocator( UINT8 ubID, UINT8 ubLocatorSpeed ); void ShowRadioLocator( UINT16 ubID, UINT8 ubLocatorSpeed );
void EndRadioLocator( UINT8 ubID ); void EndRadioLocator( UINT16 ubID );
extern MOUSE_REGION gSMPanelRegion; extern MOUSE_REGION gSMPanelRegion;
@@ -118,7 +118,7 @@ extern BOOLEAN gfDisableTacticalPanelButtons;
typedef struct typedef struct
{ {
UINT8 ubID; UINT16 ubID;
BOOLEAN fOccupied; BOOLEAN fOccupied;
} TEAM_PANEL_SLOTS_TYPE; } TEAM_PANEL_SLOTS_TYPE;
@@ -149,7 +149,7 @@ void GoToMapScreenFromTactical( void );
void FinishAnySkullPanelAnimations( ); void FinishAnySkullPanelAnimations( );
UINT8 FindNextMercInTeamPanel( SOLDIERTYPE *pSoldier, BOOLEAN fGoodForLessOKLife, BOOLEAN fOnlyRegularMercs ); UINT16 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);
+1 -1
View File
@@ -498,7 +498,7 @@ void RenderSoldierFace( SOLDIERTYPE *pSoldier, INT16 sFaceX, INT16 sFaceY, BOOLE
} }
else else
{ {
SetAutoFaceActiveFromSoldier( FRAME_BUFFER, guiSAVEBUFFER, pSoldier->ubID , sFaceX, sFaceY ); SetAutoFaceActiveFromSoldier( FRAME_BUFFER, guiSAVEBUFFER, pSoldier->ubID, sFaceX, sFaceY );
// SetAutoFaceActiveFromSoldier( FRAME_BUFFER, FACE_AUTO_RESTORE_BUFFER, pSoldier->ubID , sFaceX, sFaceY ); // SetAutoFaceActiveFromSoldier( FRAME_BUFFER, FACE_AUTO_RESTORE_BUFFER, pSoldier->ubID , sFaceX, sFaceY );
} }
} }
+17 -17
View File
@@ -126,8 +126,8 @@ extern BOOLEAN gfCannotGetThrough; // will use it when showing red laser dot
extern void SoldierTooltip(SOLDIERTYPE*); extern void SoldierTooltip(SOLDIERTYPE*);
BOOLEAN gfProgBarActive = FALSE; BOOLEAN gfProgBarActive = FALSE;
UINT8 gubProgNumEnemies = 0; UINT16 gubProgNumEnemies = 0;
UINT8 gubProgCurEnemy = 0; UINT16 gubProgCurEnemy = 0;
UINT32 guiPORTRAITICONS; UINT32 guiPORTRAITICONS;
@@ -192,7 +192,7 @@ BOOLEAN gfPanelAllocated = FALSE;
extern MOUSE_REGION gDisableRegion; extern MOUSE_REGION gDisableRegion;
extern MOUSE_REGION gUserTurnRegion; extern MOUSE_REGION gUserTurnRegion;
extern BOOLEAN gfUserTurnRegionActive; extern BOOLEAN gfUserTurnRegionActive;
extern UINT8 gubSelectSMPanelToMerc; extern UINT16 gubSelectSMPanelToMerc;
extern BOOLEAN gfIgnoreOnSelectedGuy; extern BOOLEAN gfIgnoreOnSelectedGuy;
enum enum
@@ -670,7 +670,7 @@ void ShutdownCurrentPanel( )
void SetCurrentTacticalPanelCurrentMerc( UINT8 ubID ) void SetCurrentTacticalPanelCurrentMerc( UINT16 ubID )
{ {
SOLDIERTYPE *pSoldier; SOLDIERTYPE *pSoldier;
@@ -696,7 +696,7 @@ void SetCurrentTacticalPanelCurrentMerc( UINT8 ubID )
break; break;
case TEAM_PANEL: case TEAM_PANEL:
SetTEAMPanelCurrentMerc( (UINT8)gusSelectedSoldier ); SetTEAMPanelCurrentMerc( gusSelectedSoldier );
break; break;
} }
@@ -734,7 +734,7 @@ void SetCurrentInterfacePanel( UINT8 ubNewPanel )
void ToggleTacticalPanels( ) void ToggleTacticalPanels( )
{ {
gfSwitchPanel = TRUE; gfSwitchPanel = TRUE;
gubNewPanelParam = (UINT8)gusSelectedSoldier; gubNewPanelParam = gusSelectedSoldier;
if ( gsCurInterfacePanel == SM_PANEL ) if ( gsCurInterfacePanel == SM_PANEL )
{ {
@@ -764,7 +764,7 @@ void RemoveCurrentTacticalPanelButtons( )
} }
BOOLEAN IsMercPortraitVisible( UINT8 ubSoldierID ) BOOLEAN IsMercPortraitVisible( UINT16 ubSoldierID )
{ {
if ( gsCurInterfacePanel == TEAM_PANEL ) if ( gsCurInterfacePanel == TEAM_PANEL )
{ {
@@ -4244,7 +4244,7 @@ void BtnDoorMenuCallback(GUI_BUTTON *btn,INT32 reason)
if ( EnoughPoints( gOpenDoorMenu.pSoldier, GetAPsToOpenDoor( gOpenDoorMenu.pSoldier ), APBPConstants[BP_OPEN_DOOR], FALSE ) ) if ( EnoughPoints( gOpenDoorMenu.pSoldier, GetAPsToOpenDoor( gOpenDoorMenu.pSoldier ), APBPConstants[BP_OPEN_DOOR], FALSE ) )
{ {
// Set UI // Set UI
SetUIBusy( (UINT8)gOpenDoorMenu.pSoldier->ubID ); SetUIBusy( gOpenDoorMenu.pSoldier->ubID );
if ( gOpenDoorMenu.fClosingDoor ) if ( gOpenDoorMenu.fClosingDoor )
{ {
@@ -4269,7 +4269,7 @@ void BtnDoorMenuCallback(GUI_BUTTON *btn,INT32 reason)
if ( EnoughPoints( gOpenDoorMenu.pSoldier, APBPConstants[AP_BOOT_DOOR], APBPConstants[BP_BOOT_DOOR], FALSE ) ) if ( EnoughPoints( gOpenDoorMenu.pSoldier, APBPConstants[AP_BOOT_DOOR], APBPConstants[BP_BOOT_DOOR], FALSE ) )
{ {
// Set UI // Set UI
SetUIBusy( (UINT8)gOpenDoorMenu.pSoldier->ubID ); SetUIBusy( gOpenDoorMenu.pSoldier->ubID );
InteractWithClosedDoor( gOpenDoorMenu.pSoldier, HANDLE_DOOR_FORCE ); InteractWithClosedDoor( gOpenDoorMenu.pSoldier, HANDLE_DOOR_FORCE );
} }
@@ -4286,7 +4286,7 @@ void BtnDoorMenuCallback(GUI_BUTTON *btn,INT32 reason)
if ( EnoughPoints( gOpenDoorMenu.pSoldier, APBPConstants[AP_UNLOCK_DOOR], APBPConstants[BP_UNLOCK_DOOR], FALSE ) ) if ( EnoughPoints( gOpenDoorMenu.pSoldier, APBPConstants[AP_UNLOCK_DOOR], APBPConstants[BP_UNLOCK_DOOR], FALSE ) )
{ {
// Set UI // Set UI
SetUIBusy( (UINT8)gOpenDoorMenu.pSoldier->ubID ); SetUIBusy( gOpenDoorMenu.pSoldier->ubID );
InteractWithClosedDoor( gOpenDoorMenu.pSoldier, HANDLE_DOOR_UNLOCK ); InteractWithClosedDoor( gOpenDoorMenu.pSoldier, HANDLE_DOOR_UNLOCK );
} }
@@ -4303,7 +4303,7 @@ void BtnDoorMenuCallback(GUI_BUTTON *btn,INT32 reason)
if ( EnoughPoints( gOpenDoorMenu.pSoldier, GetAPsToPicklock( gOpenDoorMenu.pSoldier ), APBPConstants[BP_PICKLOCK], FALSE ) ) // SANDRO if ( EnoughPoints( gOpenDoorMenu.pSoldier, GetAPsToPicklock( gOpenDoorMenu.pSoldier ), APBPConstants[BP_PICKLOCK], FALSE ) ) // SANDRO
{ {
// Set UI // Set UI
SetUIBusy( (UINT8)gOpenDoorMenu.pSoldier->ubID ); SetUIBusy( gOpenDoorMenu.pSoldier->ubID );
InteractWithClosedDoor( gOpenDoorMenu.pSoldier, HANDLE_DOOR_LOCKPICK ); InteractWithClosedDoor( gOpenDoorMenu.pSoldier, HANDLE_DOOR_LOCKPICK );
} }
@@ -4320,7 +4320,7 @@ void BtnDoorMenuCallback(GUI_BUTTON *btn,INT32 reason)
if ( EnoughPoints( gOpenDoorMenu.pSoldier, APBPConstants[AP_EXAMINE_DOOR], APBPConstants[BP_EXAMINE_DOOR], FALSE ) ) if ( EnoughPoints( gOpenDoorMenu.pSoldier, APBPConstants[AP_EXAMINE_DOOR], APBPConstants[BP_EXAMINE_DOOR], FALSE ) )
{ {
// Set UI // Set UI
SetUIBusy( (UINT8)gOpenDoorMenu.pSoldier->ubID ); SetUIBusy( gOpenDoorMenu.pSoldier->ubID );
InteractWithClosedDoor( gOpenDoorMenu.pSoldier, HANDLE_DOOR_EXAMINE ); InteractWithClosedDoor( gOpenDoorMenu.pSoldier, HANDLE_DOOR_EXAMINE );
} }
@@ -4361,7 +4361,7 @@ void BtnDoorMenuCallback(GUI_BUTTON *btn,INT32 reason)
if ( EnoughPoints( gOpenDoorMenu.pSoldier, GetAPsToBombDoor( gOpenDoorMenu.pSoldier ), APBPConstants[BP_EXPLODE_DOOR], FALSE ) ) // SANDRO if ( EnoughPoints( gOpenDoorMenu.pSoldier, GetAPsToBombDoor( gOpenDoorMenu.pSoldier ), APBPConstants[BP_EXPLODE_DOOR], FALSE ) ) // SANDRO
{ {
// Set UI // Set UI
SetUIBusy( (UINT8)gOpenDoorMenu.pSoldier->ubID ); SetUIBusy( gOpenDoorMenu.pSoldier->ubID );
InteractWithClosedDoor( gOpenDoorMenu.pSoldier, HANDLE_DOOR_EXPLODE ); InteractWithClosedDoor( gOpenDoorMenu.pSoldier, HANDLE_DOOR_EXPLODE );
} }
@@ -4379,7 +4379,7 @@ void BtnDoorMenuCallback(GUI_BUTTON *btn,INT32 reason)
if ( EnoughPoints( gOpenDoorMenu.pSoldier, GetAPsToUntrapDoor( gOpenDoorMenu.pSoldier ), APBPConstants[BP_UNTRAP_DOOR], FALSE ) ) // SANDRO if ( EnoughPoints( gOpenDoorMenu.pSoldier, GetAPsToUntrapDoor( gOpenDoorMenu.pSoldier ), APBPConstants[BP_UNTRAP_DOOR], FALSE ) ) // SANDRO
{ {
// Set UI // Set UI
SetUIBusy( (UINT8)gOpenDoorMenu.pSoldier->ubID ); SetUIBusy( gOpenDoorMenu.pSoldier->ubID );
InteractWithClosedDoor( gOpenDoorMenu.pSoldier, HANDLE_DOOR_UNTRAP ); InteractWithClosedDoor( gOpenDoorMenu.pSoldier, HANDLE_DOOR_UNTRAP );
} }
@@ -4420,7 +4420,7 @@ void BtnDoorMenuCallback(GUI_BUTTON *btn,INT32 reason)
if ( EnoughPoints( gOpenDoorMenu.pSoldier, APBPConstants[AP_USE_CROWBAR], APBPConstants[BP_USE_CROWBAR], FALSE ) ) if ( EnoughPoints( gOpenDoorMenu.pSoldier, APBPConstants[AP_USE_CROWBAR], APBPConstants[BP_USE_CROWBAR], FALSE ) )
{ {
// Set UI // Set UI
SetUIBusy( (UINT8)gOpenDoorMenu.pSoldier->ubID ); SetUIBusy( gOpenDoorMenu.pSoldier->ubID );
InteractWithClosedDoor( gOpenDoorMenu.pSoldier, HANDLE_DOOR_CROWBAR ); InteractWithClosedDoor( gOpenDoorMenu.pSoldier, HANDLE_DOOR_CROWBAR );
} }
@@ -5178,7 +5178,7 @@ void PauseRT( BOOLEAN fPause )
} }
void InitEnemyUIBar( UINT8 ubNumEnemies, UINT8 ubDoneEnemies ) void InitEnemyUIBar( UINT16 ubNumEnemies, UINT16 ubDoneEnemies )
{ {
// OK, set value // OK, set value
gubProgNumEnemies = ubNumEnemies + ubDoneEnemies; gubProgNumEnemies = ubNumEnemies + ubDoneEnemies;
@@ -5218,7 +5218,7 @@ void InitPlayerUIBar( BOOLEAN fInterrupt )
{ {
SOLDIERTYPE *pTeamSoldier; SOLDIERTYPE *pTeamSoldier;
INT32 cnt = 0; INT32 cnt = 0;
INT8 bNumOK = 0, bNumNotOK = 0; INT16 bNumOK = 0, bNumNotOK = 0;
if ( !gGameOptions.fTurnTimeLimit ) if ( !gGameOptions.fTurnTimeLimit )
{ {
+5 -5
View File
@@ -366,7 +366,7 @@ enum
extern BOOLEAN gfSwitchPanel; extern BOOLEAN gfSwitchPanel;
extern BOOLEAN gfUIStanceDifferent; extern BOOLEAN gfUIStanceDifferent;
extern UINT8 gbNewPanel; extern UINT8 gbNewPanel;
extern UINT8 gubNewPanelParam; extern UINT16 gubNewPanelParam;
extern INT16 gsCurInterfacePanel; extern INT16 gsCurInterfacePanel;
extern UINT32 guiRENDERBUFFER; extern UINT32 guiRENDERBUFFER;
@@ -458,9 +458,9 @@ BOOLEAN DrawCTHIndicator();
void CreateCurrentTacticalPanelButtons( ); void CreateCurrentTacticalPanelButtons( );
void RemoveCurrentTacticalPanelButtons( ); void RemoveCurrentTacticalPanelButtons( );
void SetCurrentTacticalPanelCurrentMerc( UINT8 ubID ); void SetCurrentTacticalPanelCurrentMerc( UINT16 ubID );
void SetCurrentInterfacePanel( UINT8 ubNewPanel ); void SetCurrentInterfacePanel( UINT8 ubNewPanel );
BOOLEAN IsMercPortraitVisible( UINT8 ubSoldierID ); BOOLEAN IsMercPortraitVisible( UINT16 ubSoldierID );
BOOLEAN InitializeCurrentPanel( ); BOOLEAN InitializeCurrentPanel( );
void ShutdownCurrentPanel( ); void ShutdownCurrentPanel( );
@@ -475,7 +475,7 @@ void HandleUpDownArrowBackgrounds( );
void EndDeadlockMsg( ); void EndDeadlockMsg( );
void HandleLocateSelectMerc( UINT8 ubID, INT8 bFlag ); void HandleLocateSelectMerc( UINT16 ubID, INT8 bFlag );
void DirtyMercPanelInterface( SOLDIERTYPE *pSoldier, UINT8 ubDirtyLevel ); void DirtyMercPanelInterface( SOLDIERTYPE *pSoldier, UINT8 ubDirtyLevel );
@@ -515,7 +515,7 @@ void EndTopMessage( );
void PauseRT( BOOLEAN fPause ); void PauseRT( BOOLEAN fPause );
void InitEnemyUIBar( UINT8 ubNumEnemies, UINT8 ubDoneEnemies ); void InitEnemyUIBar( UINT16 ubNumEnemies, UINT16 ubDoneEnemies );
STR16 GetSoldierHealthString( SOLDIERTYPE *pSoldier ); STR16 GetSoldierHealthString( SOLDIERTYPE *pSoldier );
+1 -1
View File
@@ -125,7 +125,7 @@ bool IsSlotASmallPocket(int slot)
return false; return false;
} }
void CreateLBE (OBJECTTYPE* pObj, UINT8 ubID, int numSubPockets) void CreateLBE (OBJECTTYPE* pObj, UINT16 ubID, int numSubPockets)
{ {
int uniqueID; int uniqueID;
LBENODE* pLBE = NULL; LBENODE* pLBE = NULL;
+2 -2
View File
@@ -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, UINT8 ubID, int numSubPockets); void CreateLBE(OBJECTTYPE* pObj, UINT16 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);
@@ -415,7 +415,7 @@ namespace ObjectDataStructs {
INT8 bDelay; // >=0 values used only INT8 bDelay; // >=0 values used only
INT8 bFrequency; // >=0 values used only INT8 bFrequency; // >=0 values used only
}; };
UINT8 ubBombOwner; // side which placed the bomb UINT16 ubBombOwner; // side which placed the bomb
UINT8 bActionValue; // this is used by the ACTION_ITEM fake item UINT8 bActionValue; // this is used by the ACTION_ITEM fake item
union union
{ {
+5 -5
View File
@@ -9397,7 +9397,7 @@ void CheckEquipmentForFragileItemDamage( SOLDIERTYPE *pSoldier, INT32 iDamage )
} }
BOOLEAN DamageItemOnGround( OBJECTTYPE * pObject, INT32 sGridNo, INT8 bLevel, INT32 iDamage, UINT8 ubOwner ) BOOLEAN DamageItemOnGround( OBJECTTYPE * pObject, INT32 sGridNo, INT8 bLevel, INT32 iDamage, UINT16 ubOwner )
{ {
#ifdef JA2BETAVERSION #ifdef JA2BETAVERSION
CHAR tmpMPDbgString[512]; CHAR tmpMPDbgString[512];
@@ -15411,10 +15411,10 @@ BOOLEAN ObjectIsExternalFeeder(SOLDIERTYPE* pSoldier, OBJECTTYPE * pObject)
if ( !pSoldier || !pObject) if ( !pSoldier || !pObject)
return( FALSE ); return( FALSE );
UINT8 usSoldierFeedingTarget1 = 0; UINT16 usSoldierFeedingTarget1 = 0;
UINT16 usGunSlot1 = 0; UINT16 usGunSlot1 = 0;
UINT16 usAmmoSlot1 = 0; UINT16 usAmmoSlot1 = 0;
UINT8 usSoldierFeedingTarget2 = 0; UINT16 usSoldierFeedingTarget2 = 0;
UINT16 usGunSlot2 = 0; UINT16 usGunSlot2 = 0;
UINT16 usAmmoSlot2 = 0; UINT16 usAmmoSlot2 = 0;
if ( pSoldier->IsFeedingExternal(&usSoldierFeedingTarget1, &usGunSlot1, &usAmmoSlot1, &usSoldierFeedingTarget2, &usGunSlot2, &usAmmoSlot2) ) if ( pSoldier->IsFeedingExternal(&usSoldierFeedingTarget1, &usGunSlot1, &usAmmoSlot1, &usSoldierFeedingTarget2, &usGunSlot2, &usAmmoSlot2) )
@@ -15469,10 +15469,10 @@ OBJECTTYPE* GetExternalFeedingObject(SOLDIERTYPE* pSoldier, OBJECTTYPE * pObject
continue; continue;
// we check if that guy is feeding someone, and that someone is really us // we check if that guy is feeding someone, and that someone is really us
UINT8 usTeamSoldierFeedingTarget1 = 0; UINT16 usTeamSoldierFeedingTarget1 = 0;
UINT16 usGunSlot1 = 0; UINT16 usGunSlot1 = 0;
UINT16 usAmmoSlot1 = 0; UINT16 usAmmoSlot1 = 0;
UINT8 usTeamSoldierFeedingTarget2 = 0; UINT16 usTeamSoldierFeedingTarget2 = 0;
UINT16 usGunSlot2 = 0; UINT16 usGunSlot2 = 0;
UINT16 usAmmoSlot2 = 0; UINT16 usAmmoSlot2 = 0;
if ( pTeamSoldier->IsFeedingExternal(&usTeamSoldierFeedingTarget1, &usGunSlot1, &usAmmoSlot1, &usTeamSoldierFeedingTarget2, &usGunSlot2, &usAmmoSlot2) ) if ( pTeamSoldier->IsFeedingExternal(&usTeamSoldierFeedingTarget1, &usGunSlot1, &usAmmoSlot1, &usTeamSoldierFeedingTarget2, &usGunSlot2, &usAmmoSlot2) )
+1 -1
View File
@@ -227,7 +227,7 @@ UINT16 StandardGunListReplacement( UINT16 usGun );
UINT16 FindReplacementMagazine( UINT8 ubCalibre, UINT16 ubMagSize, UINT8 ubAmmoType); UINT16 FindReplacementMagazine( UINT8 ubCalibre, UINT16 ubMagSize, UINT8 ubAmmoType);
UINT16 FindReplacementMagazineIfNecessary( UINT16 usOldGun, UINT16 usOldAmmo, UINT16 usNewGun ); UINT16 FindReplacementMagazineIfNecessary( UINT16 usOldGun, UINT16 usOldAmmo, UINT16 usNewGun );
BOOLEAN DamageItemOnGround( OBJECTTYPE * pObject, INT32 sGridNo, INT8 bLevel, INT32 iDamage, UINT8 ubOwner ); BOOLEAN DamageItemOnGround( OBJECTTYPE * pObject, INT32 sGridNo, INT8 bLevel, INT32 iDamage, UINT16 ubOwner );
BOOLEAN CompatibleFaceItem( UINT16 usItem1, UINT16 usItem2 ); BOOLEAN CompatibleFaceItem( UINT16 usItem1, UINT16 usItem2 );
+6 -6
View File
@@ -2433,7 +2433,7 @@ INT32 SoldierTo3DLocationLineOfSightTest( SOLDIERTYPE * pStartSoldier, INT32 sGr
{ {
FLOAT dStartZPos, dEndZPos; FLOAT dStartZPos, dEndZPos;
INT16 sXPos, sYPos; INT16 sXPos, sYPos;
UINT8 ubTargetID; UINT16 ubTargetID;
BOOLEAN fOk; BOOLEAN fOk;
CHECKF( pStartSoldier ); CHECKF( pStartSoldier );
@@ -4385,7 +4385,7 @@ UINT8 SoldierToSoldierBodyPartChanceToGetThrough( SOLDIERTYPE * pStartSoldier, S
return( ChanceToGetThrough( pStartSoldier, (FLOAT) CenterX( pEndSoldier->sGridNo ), (FLOAT) CenterY( pEndSoldier->sGridNo ), dEndZPos ) ); return( ChanceToGetThrough( pStartSoldier, (FLOAT) CenterX( pEndSoldier->sGridNo ), (FLOAT) CenterY( pEndSoldier->sGridNo ), dEndZPos ) );
} }
UINT8 SoldierToLocationChanceToGetThrough( SOLDIERTYPE * pStartSoldier, INT32 sGridNo, INT8 bLevel, INT8 bCubeLevel, UINT8 ubTargetID ) UINT8 SoldierToLocationChanceToGetThrough( SOLDIERTYPE * pStartSoldier, INT32 sGridNo, INT8 bLevel, INT8 bCubeLevel, UINT16 ubTargetID )
{ {
FLOAT dEndZPos; FLOAT dEndZPos;
INT16 sXPos; INT16 sXPos;
@@ -4637,7 +4637,7 @@ void CalculateFiringIncrementsSimple( DOUBLE ddHorizAngle, DOUBLE ddVerticAngle,
pBullet->qIncrZ = FloatToFixed( (FLOAT) ( sin( ddVerticAngle ) / sin( (PI/2) - ddVerticAngle ) * HEIGHTUNITS_PER_CELL ) );//dnl ch60 010913 pBullet->qIncrZ = FloatToFixed( (FLOAT) ( sin( ddVerticAngle ) / sin( (PI/2) - ddVerticAngle ) * HEIGHTUNITS_PER_CELL ) );//dnl ch60 010913
} }
INT8 FireBullet( UINT8 ubFirer, BULLET * pBullet, BOOLEAN fFake ) INT8 FireBullet( UINT16 ubFirer, BULLET * pBullet, BOOLEAN fFake )
{ {
//DebugMsg(TOPIC_JA2,DBG_LEVEL_3,String("FireBullet")); //DebugMsg(TOPIC_JA2,DBG_LEVEL_3,String("FireBullet"));
@@ -5782,7 +5782,7 @@ INT8 FireBulletGivenTarget( SOLDIERTYPE * pFirer, FLOAT dEndX, FLOAT dEndY, FLOA
// Note that this function does not make provisions for Fake Firing. There is no need for it, and it would needlessly // Note that this function does not make provisions for Fake Firing. There is no need for it, and it would needlessly
// complicate things anyway. // complicate things anyway.
// Also note we receive start coordinates from the bomb itself, because there's nowhere else to get them. // Also note we receive start coordinates from the bomb itself, because there's nowhere else to get them.
INT8 FireFragmentGivenTarget( UINT8 ubOwner, FLOAT dStartX, FLOAT dStartY, FLOAT dStartZ, FLOAT dEndX, FLOAT dEndY, FLOAT dEndZ, UINT16 usExplosiveItem ) INT8 FireFragmentGivenTarget( UINT16 ubOwner, FLOAT dStartX, FLOAT dStartY, FLOAT dStartZ, FLOAT dEndX, FLOAT dEndY, FLOAT dEndZ, UINT16 usExplosiveItem )
{ {
// Artificial... // Artificial...
dStartZ++; dStartZ++;
@@ -7023,7 +7023,7 @@ void MoveBullet( INT32 iBullet )
FIXEDPT qLastZ; FIXEDPT qLastZ;
SOLDIERTYPE * pTarget; SOLDIERTYPE * pTarget;
UINT8 ubTargetID; UINT16 ubTargetID;
BOOLEAN fIntended; BOOLEAN fIntended;
BOOLEAN fStopped; BOOLEAN fStopped;
INT8 bOldLOSIndexX; INT8 bOldLOSIndexX;
@@ -9930,7 +9930,7 @@ UINT32 CalcCounterForceAccuracy(SOLDIERTYPE *pShooter, OBJECTTYPE *pWeapon, UINT
// If we can't see the target, but buddies can see it, CF-Accuracy drops by 50% // If we can't see the target, but buddies can see it, CF-Accuracy drops by 50%
// If we can't see the target and neither can buddies, CF-Accuracy drops by 75% // If we can't see the target and neither can buddies, CF-Accuracy drops by 75%
UINT8 ubTargetID = WhoIsThere2( pShooter->sTargetGridNo, pShooter->bTargetLevel ); // Target ubID UINT16 ubTargetID = WhoIsThere2( pShooter->sTargetGridNo, pShooter->bTargetLevel ); // Target ubID
INT16 sDistVis = pShooter->GetMaxDistanceVisible(pShooter->sTargetGridNo, pShooter->bTargetLevel, CALC_FROM_ALL_DIRS ) * CELL_X_SIZE; INT16 sDistVis = pShooter->GetMaxDistanceVisible(pShooter->sTargetGridNo, pShooter->bTargetLevel, CALC_FROM_ALL_DIRS ) * CELL_X_SIZE;
gbForceWeaponNotReady = true; gbForceWeaponNotReady = true;
INT16 sDistVisNoScope = pShooter->GetMaxDistanceVisible(pShooter->sTargetGridNo, pShooter->bTargetLevel, CALC_FROM_ALL_DIRS ) * CELL_X_SIZE; INT16 sDistVisNoScope = pShooter->GetMaxDistanceVisible(pShooter->sTargetGridNo, pShooter->bTargetLevel, CALC_FROM_ALL_DIRS ) * CELL_X_SIZE;
+2 -2
View File
@@ -69,7 +69,7 @@ INT8 FireBulletGivenTarget( SOLDIERTYPE * pFirer, FLOAT dEndX, FLOAT dEndY, FLOA
// HEADROCK HAM 4: Changed the name of one argument to avoid confusion with the new CTH system. // HEADROCK HAM 4: Changed the name of one argument to avoid confusion with the new CTH system.
INT8 FireBulletGivenTargetNCTH( SOLDIERTYPE * pFirer, FLOAT dEndX, FLOAT dEndY, FLOAT dEndZ, UINT16 usHandItem, INT16 sApertureRatio, BOOLEAN fBuckshot, BOOLEAN fFake ); INT8 FireBulletGivenTargetNCTH( SOLDIERTYPE * pFirer, FLOAT dEndX, FLOAT dEndY, FLOAT dEndZ, UINT16 usHandItem, INT16 sApertureRatio, BOOLEAN fBuckshot, BOOLEAN fFake );
// HEADROCK HAM 5: Function for fragments ejected from an explosion. // HEADROCK HAM 5: Function for fragments ejected from an explosion.
INT8 FireFragmentGivenTarget( UINT8 ubOwner, FLOAT dStartX, FLOAT dStartY, FLOAT dStartZ, FLOAT dEndX, FLOAT dEndY, FLOAT dEndZ, UINT16 usExplosiveItem ); INT8 FireFragmentGivenTarget( UINT16 ubOwner, FLOAT dStartX, FLOAT dStartY, FLOAT dStartZ, FLOAT dEndX, FLOAT dEndY, FLOAT dEndZ, UINT16 usExplosiveItem );
// Flugente: fire a shot from a gun that has no user (used for traps with attached guns) // Flugente: fire a shot from a gun that has no user (used for traps with attached guns)
INT8 FireBulletGivenTargetTrapOnly( SOLDIERTYPE* pThrower, OBJECTTYPE* pObj, INT32 gridno, FLOAT dStartZ, FLOAT dEndX, FLOAT dEndY, FLOAT dEndZ, INT16 sHitBy); INT8 FireBulletGivenTargetTrapOnly( SOLDIERTYPE* pThrower, OBJECTTYPE* pObj, INT32 gridno, FLOAT dStartZ, FLOAT dEndX, FLOAT dEndY, FLOAT dEndZ, INT16 sHitBy);
@@ -152,7 +152,7 @@ UINT8 SoldierToSoldierChanceToGetThrough( SOLDIERTYPE * pStartSoldier, SOLDIERTY
UINT8 SoldierToSoldierBodyPartChanceToGetThrough( SOLDIERTYPE * pStartSoldier, SOLDIERTYPE * pEndSoldier, UINT8 ubAimLocation ); UINT8 SoldierToSoldierBodyPartChanceToGetThrough( SOLDIERTYPE * pStartSoldier, SOLDIERTYPE * pEndSoldier, UINT8 ubAimLocation );
UINT8 AISoldierToSoldierChanceToGetThrough( SOLDIERTYPE * pStartSoldier, SOLDIERTYPE * pEndSoldier ); UINT8 AISoldierToSoldierChanceToGetThrough( SOLDIERTYPE * pStartSoldier, SOLDIERTYPE * pEndSoldier );
UINT8 AISoldierToLocationChanceToGetThrough( SOLDIERTYPE * pStartSoldier, INT32 sGridNo, INT8 bLevel, INT8 bCubeLevel ); UINT8 AISoldierToLocationChanceToGetThrough( SOLDIERTYPE * pStartSoldier, INT32 sGridNo, INT8 bLevel, INT8 bCubeLevel );
UINT8 SoldierToLocationChanceToGetThrough( SOLDIERTYPE * pStartSoldier, INT32 sGridNo, INT8 bLevel, INT8 bCubeLevel, UINT8 ubTargetID ); UINT8 SoldierToLocationChanceToGetThrough( SOLDIERTYPE * pStartSoldier, INT32 sGridNo, INT8 bLevel, INT8 bCubeLevel, UINT16 ubTargetID );
INT32 SoldierToLocationWindowTest( SOLDIERTYPE * pStartSoldier, INT32 sEndGridNo ); INT32 SoldierToLocationWindowTest( SOLDIERTYPE * pStartSoldier, INT32 sEndGridNo );
// sevenfm: AI LOS functions // sevenfm: AI LOS functions
INT32 LOS_Raised(SOLDIERTYPE * pStartSoldier, SOLDIERTYPE * pEndSoldier, int iTileSightLimit = CALC_FROM_ALL_DIRS, UINT8 ubAimLocation = LOS_POS); INT32 LOS_Raised(SOLDIERTYPE * pStartSoldier, SOLDIERTYPE * pEndSoldier, int iTileSightLimit = CALC_FROM_ALL_DIRS, UINT8 ubAimLocation = LOS_POS);
+4 -4
View File
@@ -359,7 +359,7 @@ UINT8 ubHeliScripts[ NUM_HELI_STATES ][ MAX_HELI_SCRIPT ] =
BOOLEAN gfHandleHeli = FALSE; BOOLEAN gfHandleHeli = FALSE;
UINT8 gusHeliSeats[ MAX_MERC_IN_HELI ]; UINT16 gusHeliSeats[ MAX_MERC_IN_HELI ];
INT8 gbNumHeliSeatsOccupied = 0; INT8 gbNumHeliSeatsOccupied = 0;
BOOLEAN gfFirstGuyDown = FALSE; BOOLEAN gfFirstGuyDown = FALSE;
@@ -396,7 +396,7 @@ void ResetHeliSeats( )
gbNumHeliSeatsOccupied = 0; gbNumHeliSeatsOccupied = 0;
} }
void AddMercToHeli( UINT8 ubID ) void AddMercToHeli( UINT16 ubID )
{ {
if ( gbNumHeliSeatsOccupied < MAX_MERC_IN_HELI ) if ( gbNumHeliSeatsOccupied < MAX_MERC_IN_HELI )
{ {
@@ -1028,7 +1028,7 @@ void HandleFirstHeliDropOfGame( )
CharacterDialogueWithSpecialEvent( 0, 0, 0, DIALOGUE_TACTICAL_UI , FALSE , FALSE , DIALOGUE_SPECIAL_EVENT_ENABLE_AI ,0, 0 ); CharacterDialogueWithSpecialEvent( 0, 0, 0, DIALOGUE_TACTICAL_UI , FALSE , FALSE , DIALOGUE_SPECIAL_EVENT_ENABLE_AI ,0, 0 );
} }
UINT8 SpawnAirDropElite( INT32 sGridNo ) UINT16 SpawnAirDropElite( INT32 sGridNo )
{ {
SOLDIERTYPE *pSoldier; SOLDIERTYPE *pSoldier;
@@ -1079,7 +1079,7 @@ void InitiateEnemyAirDropSoldiers( INT32 sGridNo )
for ( int i = 0; i < 6; ++i ) for ( int i = 0; i < 6; ++i )
{ {
UINT8 id = SpawnAirDropElite( gMapInformation.sSouthGridNo + i ); UINT16 id = SpawnAirDropElite( gMapInformation.sSouthGridNo + i );
if ( id == NOBODY ) if ( id == NOBODY )
return; return;
+8 -8
View File
@@ -131,7 +131,7 @@ UINT16 GetInitialHeliRandomTime();
INT8 HireMerc( MERC_HIRE_STRUCT *pHireMerc) INT8 HireMerc( MERC_HIRE_STRUCT *pHireMerc)
{ {
SOLDIERTYPE *pSoldier; SOLDIERTYPE *pSoldier;
UINT8 iNewIndex; UINT16 iNewIndex;
UINT8 ubCurrentSoldier = pHireMerc->ubProfileID; UINT8 ubCurrentSoldier = pHireMerc->ubProfileID;
MERCPROFILESTRUCT *pMerc; MERCPROFILESTRUCT *pMerc;
SOLDIERCREATE_STRUCT MercCreateStruct; SOLDIERCREATE_STRUCT MercCreateStruct;
@@ -429,7 +429,7 @@ INT8 HireMerc( MERC_HIRE_STRUCT *pHireMerc)
} }
void MercArrivesCallback( UINT8 ubSoldierID ) void MercArrivesCallback( UINT16 ubSoldierID )
{ {
MERCPROFILESTRUCT *pMerc; MERCPROFILESTRUCT *pMerc;
SOLDIERTYPE *pSoldier; SOLDIERTYPE *pSoldier;
@@ -502,7 +502,7 @@ void MercArrivesCallback( UINT8 ubSoldierID )
{ {
bool force_helidrop = true; bool force_helidrop = true;
SOLDIERTYPE *pTeamSoldier; SOLDIERTYPE *pTeamSoldier;
for (UINT8 cnt = 0; cnt < giMAXIMUM_NUMBER_OF_PLAYER_SLOTS; cnt++) for (UINT16 cnt = 0; cnt < giMAXIMUM_NUMBER_OF_PLAYER_SLOTS; cnt++)
{ {
if (gCharactersList[cnt].fValid) if (gCharactersList[cnt].fValid)
{ {
@@ -671,12 +671,12 @@ BOOLEAN IsTheSoldierAliveAndConcious( SOLDIERTYPE *pSoldier )
return(FALSE); return(FALSE);
} }
UINT8 NumberOfMercsOnPlayerTeam() UINT16 NumberOfMercsOnPlayerTeam()
{ {
INT8 cnt; UINT16 cnt;
SOLDIERTYPE *pSoldier; SOLDIERTYPE *pSoldier;
INT16 bLastTeamID; UINT16 bLastTeamID;
UINT8 ubCount=0; UINT16 ubCount=0;
// Set locator to first merc // Set locator to first merc
cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID;
@@ -702,7 +702,7 @@ UINT8 NumberOfMercsOnPlayerTeam()
void HandleMercArrivesQuotes( SOLDIERTYPE *pSoldier ) void HandleMercArrivesQuotes( SOLDIERTYPE *pSoldier )
{ {
UINT8 cnt, usLastTeamID; UINT16 cnt, usLastTeamID;
INT8 bHated; INT8 bHated;
SOLDIERTYPE *pTeamSoldier; SOLDIERTYPE *pTeamSoldier;
#ifdef JA2UB #ifdef JA2UB
+2 -2
View File
@@ -46,10 +46,10 @@ extern INT16 gsMercArriveSectorY;
INT8 HireMerc( MERC_HIRE_STRUCT *pHireMerc); INT8 HireMerc( MERC_HIRE_STRUCT *pHireMerc);
void MercArrivesCallback( UINT8 ubSoldierID ); void MercArrivesCallback( UINT16 ubSoldierID );
BOOLEAN IsMercHireable( UINT8 ubMercID ); BOOLEAN IsMercHireable( UINT8 ubMercID );
BOOLEAN IsMercDead( UINT8 ubMercID ); BOOLEAN IsMercDead( UINT8 ubMercID );
UINT8 NumberOfMercsOnPlayerTeam(); UINT16 NumberOfMercsOnPlayerTeam();
BOOLEAN IsTheSoldierAliveAndConcious( SOLDIERTYPE *pSoldier ); BOOLEAN IsTheSoldierAliveAndConcious( SOLDIERTYPE *pSoldier );
void HandleMercArrivesQuotes( SOLDIERTYPE *pSoldier ); void HandleMercArrivesQuotes( SOLDIERTYPE *pSoldier );
void UpdateAnyInTransitMercsWithGlobalArrivalSector( ); void UpdateAnyInTransitMercsWithGlobalArrivalSector( );
+10 -9
View File
@@ -347,7 +347,7 @@ void PrepareMilitiaForTactical( BOOLEAN fPrepareAll)
void HandleMilitiaPromotions( void ) void HandleMilitiaPromotions( void )
{ {
UINT8 cnt; UINT16 cnt;
SOLDIERTYPE* pTeamSoldier; SOLDIERTYPE* pTeamSoldier;
gbGreenToElitePromotions = 0; gbGreenToElitePromotions = 0;
@@ -1442,7 +1442,7 @@ void MilitiaControlMenuBtnCallBack( MOUSE_REGION * pRegion, INT32 iReason )
case( MILCON_MENU_ALL_ATTACK ): case( MILCON_MENU_ALL_ATTACK ):
if (fAllowSectorOrder) if (fAllowSectorOrder)
{ {
UINT8 cnt; UINT16 cnt;
SOLDIERTYPE *pTeamSoldier; SOLDIERTYPE *pTeamSoldier;
cnt = gTacticalStatus.Team[ MILITIA_TEAM ].bFirstID; cnt = gTacticalStatus.Team[ MILITIA_TEAM ].bFirstID;
@@ -1479,7 +1479,7 @@ void MilitiaControlMenuBtnCallBack( MOUSE_REGION * pRegion, INT32 iReason )
case( MILCON_MENU_ALL_HOLD ): case( MILCON_MENU_ALL_HOLD ):
if (fAllowSectorOrder) if (fAllowSectorOrder)
{ {
UINT8 cnt; UINT16 cnt;
SOLDIERTYPE *pTeamSoldier; SOLDIERTYPE *pTeamSoldier;
cnt = gTacticalStatus.Team[ MILITIA_TEAM ].bFirstID; cnt = gTacticalStatus.Team[ MILITIA_TEAM ].bFirstID;
@@ -1515,7 +1515,7 @@ void MilitiaControlMenuBtnCallBack( MOUSE_REGION * pRegion, INT32 iReason )
case( MILCON_MENU_ALL_RETREAT ): case( MILCON_MENU_ALL_RETREAT ):
if (fAllowSectorOrder) if (fAllowSectorOrder)
{ {
UINT8 cnt; UINT16 cnt;
INT16 sActionGridNo; INT16 sActionGridNo;
SOLDIERTYPE *pTeamSoldier; SOLDIERTYPE *pTeamSoldier;
@@ -1578,7 +1578,8 @@ void MilitiaControlMenuBtnCallBack( MOUSE_REGION * pRegion, INT32 iReason )
case( MILCON_MENU_ALL_COMETOME ): case( MILCON_MENU_ALL_COMETOME ):
if (fAllowSectorOrder) if (fAllowSectorOrder)
{ {
UINT8 cnt, ubDirection; UINT16 cnt;
UINT8 ubDirection;
INT32 sActionGridNo, sGridNo, sAdjustedGridNo; INT32 sActionGridNo, sGridNo, sAdjustedGridNo;
SOLDIERTYPE *pTeamSoldier; SOLDIERTYPE *pTeamSoldier;
@@ -1634,7 +1635,7 @@ void MilitiaControlMenuBtnCallBack( MOUSE_REGION * pRegion, INT32 iReason )
case( MILCON_MENU_ALL_SPREAD ): case( MILCON_MENU_ALL_SPREAD ):
if (fAllowSectorOrder) if (fAllowSectorOrder)
{ {
UINT8 cnt; UINT16 cnt;
INT32 sActionGridNo; INT32 sActionGridNo;
SOLDIERTYPE *pTeamSoldier; SOLDIERTYPE *pTeamSoldier;
@@ -1687,7 +1688,7 @@ void MilitiaControlMenuBtnCallBack( MOUSE_REGION * pRegion, INT32 iReason )
case( MILCON_MENU_ALL_GETDOWN ): case( MILCON_MENU_ALL_GETDOWN ):
if (fAllowSectorOrder) if (fAllowSectorOrder)
{ {
UINT8 cnt; UINT16 cnt;
SOLDIERTYPE *pTeamSoldier; SOLDIERTYPE *pTeamSoldier;
cnt = gTacticalStatus.Team[ MILITIA_TEAM ].bFirstID; cnt = gTacticalStatus.Team[ MILITIA_TEAM ].bFirstID;
@@ -1725,7 +1726,7 @@ void MilitiaControlMenuBtnCallBack( MOUSE_REGION * pRegion, INT32 iReason )
case( MILCON_MENU_ALL_CROUCH ): case( MILCON_MENU_ALL_CROUCH ):
if (fAllowSectorOrder) if (fAllowSectorOrder)
{ {
UINT8 cnt; UINT16 cnt;
SOLDIERTYPE *pTeamSoldier; SOLDIERTYPE *pTeamSoldier;
cnt = gTacticalStatus.Team[ MILITIA_TEAM ].bFirstID; cnt = gTacticalStatus.Team[ MILITIA_TEAM ].bFirstID;
@@ -1763,7 +1764,7 @@ void MilitiaControlMenuBtnCallBack( MOUSE_REGION * pRegion, INT32 iReason )
case( MILCON_MENU_ALL_TAKE_COVER ): case( MILCON_MENU_ALL_TAKE_COVER ):
if (fAllowSectorOrder) if (fAllowSectorOrder)
{ {
UINT8 cnt; UINT16 cnt;
INT16 sActionGridNo; INT16 sActionGridNo;
INT32 iDummy; INT32 iDummy;
SOLDIERTYPE *pTeamSoldier; SOLDIERTYPE *pTeamSoldier;
+4 -5
View File
@@ -257,7 +257,7 @@ void DecayStrategicMorale( SOLDIERTYPE * pSoldier )
void DecayTacticalMoraleModifiers( void ) void DecayTacticalMoraleModifiers( void )
{ {
SOLDIERTYPE * pSoldier; SOLDIERTYPE * pSoldier;
UINT8 ubLoop, ubLoop2; UINT16 ubLoop, ubLoop2;
BOOLEAN fHandleNervous; BOOLEAN fHandleNervous;
ubLoop = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; ubLoop = gTacticalStatus.Team[ gbPlayerNum ].bFirstID;
@@ -364,7 +364,7 @@ void DecayTacticalMoraleModifiers( void )
void DecayStrategicMoraleModifiers( void ) void DecayStrategicMoraleModifiers( void )
{ {
SOLDIERTYPE * pSoldier; SOLDIERTYPE * pSoldier;
UINT8 ubLoop; UINT16 ubLoop;
ubLoop = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; ubLoop = gTacticalStatus.Team[ gbPlayerNum ].bFirstID;
for ( pSoldier = MercPtrs[ ubLoop ]; ubLoop <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ubLoop++, pSoldier++ ) for ( pSoldier = MercPtrs[ ubLoop ]; ubLoop <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ubLoop++, pSoldier++ )
@@ -730,7 +730,7 @@ void HandleMoraleEventForSoldier( SOLDIERTYPE * pSoldier, INT8 bMoraleEvent )
void HandleMoraleEvent( SOLDIERTYPE *pSoldier, INT8 bMoraleEvent, INT16 sMapX, INT16 sMapY, INT8 bMapZ ) void HandleMoraleEvent( SOLDIERTYPE *pSoldier, INT8 bMoraleEvent, INT16 sMapX, INT16 sMapY, INT8 bMapZ )
{ {
UINT8 ubLoop; UINT16 ubLoop;
SOLDIERTYPE * pTeamSoldier; SOLDIERTYPE * pTeamSoldier;
MERCPROFILESTRUCT * pProfile; MERCPROFILESTRUCT * pProfile;
@@ -1144,14 +1144,13 @@ void HandleMoraleEvent( SOLDIERTYPE *pSoldier, INT8 bMoraleEvent, INT16 sMapX, I
void HourlyMoraleUpdate( void ) void HourlyMoraleUpdate( void )
{ {
INT8 bMercID, bOtherID; UINT16 bMercID, bOtherID, bLastTeamID;
INT8 bActualTeamOpinion; INT8 bActualTeamOpinion;
INT8 bTeamMoraleModChange, bTeamMoraleModDiff; INT8 bTeamMoraleModChange, bTeamMoraleModDiff;
INT8 bOpinion=-1; INT8 bOpinion=-1;
INT32 iTotalOpinions; INT32 iTotalOpinions;
INT8 bNumTeamMembers; INT8 bNumTeamMembers;
INT8 bHighestTeamLeadership = 0; INT8 bHighestTeamLeadership = 0;
INT8 bLastTeamID;
SOLDIERTYPE * pSoldier; SOLDIERTYPE * pSoldier;
SOLDIERTYPE * pOtherSoldier; SOLDIERTYPE * pOtherSoldier;
MERCPROFILESTRUCT * pProfile; MERCPROFILESTRUCT * pProfile;
+13 -12
View File
@@ -276,31 +276,32 @@ const int startingZ = 0;
// ENUMERATION OF SOLDIER POSIITONS IN GLOBAL SOLDIER LIST // ENUMERATION OF SOLDIER POSIITONS IN GLOBAL SOLDIER LIST
// WDS - make number of mercenaries, etc. be configurable // WDS - make number of mercenaries, etc. be configurable
#define CODE_MAXIMUM_NUMBER_OF_PLAYER_MERCS 32 #define CODE_MAXIMUM_NUMBER_OF_PLAYER_MERCS 254
extern UINT8 giMAXIMUM_NUMBER_OF_PLAYER_MERCS; extern UINT16 giMAXIMUM_NUMBER_OF_PLAYER_MERCS;
#define CODE_MAXIMUM_NUMBER_OF_PLAYER_VEHICLES 6 #define CODE_MAXIMUM_NUMBER_OF_PLAYER_VEHICLES 6
extern UINT8 giMAXIMUM_NUMBER_OF_PLAYER_VEHICLES; extern UINT16 giMAXIMUM_NUMBER_OF_PLAYER_VEHICLES;
#define CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS CODE_MAXIMUM_NUMBER_OF_PLAYER_MERCS+CODE_MAXIMUM_NUMBER_OF_PLAYER_VEHICLES #define CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS CODE_MAXIMUM_NUMBER_OF_PLAYER_MERCS+CODE_MAXIMUM_NUMBER_OF_PLAYER_VEHICLES
extern UINT8 giMAXIMUM_NUMBER_OF_PLAYER_SLOTS; extern UINT16 giMAXIMUM_NUMBER_OF_PLAYER_SLOTS;
#define CODE_MAXIMUM_NUMBER_OF_ENEMIES 64 #define CODE_MAXIMUM_NUMBER_OF_ENEMIES 256
extern UINT8 giMAXIMUM_NUMBER_OF_ENEMIES; extern UINT16 giMAXIMUM_NUMBER_OF_ENEMIES;
#define CODE_MAXIMUM_NUMBER_OF_CREATURES 40 #define CODE_MAXIMUM_NUMBER_OF_CREATURES 40
extern UINT8 giMAXIMUM_NUMBER_OF_CREATURES; extern UINT16 giMAXIMUM_NUMBER_OF_CREATURES;
#define CODE_MAXIMUM_NUMBER_OF_REBELS 64 #define CODE_MAXIMUM_NUMBER_OF_REBELS 64
extern UINT8 giMAXIMUM_NUMBER_OF_REBELS; extern UINT16 giMAXIMUM_NUMBER_OF_REBELS;
#define CODE_MAXIMUM_NUMBER_OF_CIVS 40 #define CODE_MAXIMUM_NUMBER_OF_CIVS 40
extern UINT8 giMAXIMUM_NUMBER_OF_CIVS; extern UINT16 giMAXIMUM_NUMBER_OF_CIVS;
// The following should be the largest from the above set of constants. // The following should be the largest from the above set of constants.
// Note: Is there any way to compute this via the preprocessor? // Note: Is there any way to compute this via the preprocessor?
#define LARGEST_NUMBER_IN_ANY_GROUP 64 #define LARGEST_NUMBER_IN_ANY_GROUP 260
#define MAX_NUM_SOLDIERS (CODE_MAXIMUM_NUMBER_OF_PLAYER_MERCS+CODE_MAXIMUM_NUMBER_OF_PLAYER_VEHICLES+CODE_MAXIMUM_NUMBER_OF_ENEMIES+CODE_MAXIMUM_NUMBER_OF_CREATURES+CODE_MAXIMUM_NUMBER_OF_REBELS+CODE_MAXIMUM_NUMBER_OF_CIVS) #define MAX_NUM_SOLDIERS (CODE_MAXIMUM_NUMBER_OF_PLAYER_MERCS+CODE_MAXIMUM_NUMBER_OF_PLAYER_VEHICLES+CODE_MAXIMUM_NUMBER_OF_ENEMIES+CODE_MAXIMUM_NUMBER_OF_CREATURES+CODE_MAXIMUM_NUMBER_OF_REBELS+CODE_MAXIMUM_NUMBER_OF_CIVS)
#define NUM_PLANNING_MERCS 8 #define NUM_PLANNING_MERCS 8
#define TOTAL_SOLDIERS ( NUM_PLANNING_MERCS + MAX_NUM_SOLDIERS ) //#define TOTAL_SOLDIERS ( NUM_PLANNING_MERCS + MAX_NUM_SOLDIERS )
#define TOTAL_SOLDIERS (MAX_NUM_SOLDIERS )
// If there are more than (one less the size of the field used to store IDs (currently a char)) then fail // If there are more than (one less the size of the field used to store IDs (currently a char)) then fail
#if TOTAL_SOLDIERS > 254 #if TOTAL_SOLDIERS > 2048
#error Too many! #error Too many!
#endif #endif
#if CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS > LARGEST_NUMBER_IN_ANY_GROUP #if CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS > LARGEST_NUMBER_IN_ANY_GROUP
+123 -124
View File
@@ -143,19 +143,19 @@
#include "GameInitOptionsScreen.h" #include "GameInitOptionsScreen.h"
// OJW - 20090419 // OJW - 20090419
UINT8 giMAXIMUM_NUMBER_OF_PLAYER_MERCS = CODE_MAXIMUM_NUMBER_OF_PLAYER_MERCS; UINT16 giMAXIMUM_NUMBER_OF_PLAYER_MERCS = CODE_MAXIMUM_NUMBER_OF_PLAYER_MERCS;
UINT8 giMAXIMUM_NUMBER_OF_PLAYER_VEHICLES = CODE_MAXIMUM_NUMBER_OF_PLAYER_VEHICLES; UINT16 giMAXIMUM_NUMBER_OF_PLAYER_VEHICLES = CODE_MAXIMUM_NUMBER_OF_PLAYER_VEHICLES;
UINT8 giMAXIMUM_NUMBER_OF_PLAYER_SLOTS = CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS; UINT16 giMAXIMUM_NUMBER_OF_PLAYER_SLOTS = CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS;
UINT8 giMAXIMUM_NUMBER_OF_ENEMIES = CODE_MAXIMUM_NUMBER_OF_ENEMIES; UINT16 giMAXIMUM_NUMBER_OF_ENEMIES = CODE_MAXIMUM_NUMBER_OF_ENEMIES;
UINT8 giMAXIMUM_NUMBER_OF_CREATURES = CODE_MAXIMUM_NUMBER_OF_CREATURES; UINT16 giMAXIMUM_NUMBER_OF_CREATURES = CODE_MAXIMUM_NUMBER_OF_CREATURES;
UINT8 giMAXIMUM_NUMBER_OF_REBELS = CODE_MAXIMUM_NUMBER_OF_REBELS; UINT16 giMAXIMUM_NUMBER_OF_REBELS = CODE_MAXIMUM_NUMBER_OF_REBELS;
UINT8 giMAXIMUM_NUMBER_OF_CIVS = CODE_MAXIMUM_NUMBER_OF_CIVS; UINT16 giMAXIMUM_NUMBER_OF_CIVS = CODE_MAXIMUM_NUMBER_OF_CIVS;
//forward declarations of common classes to eliminate includes //forward declarations of common classes to eliminate includes
class OBJECTTYPE; class OBJECTTYPE;
class SOLDIERTYPE; class SOLDIERTYPE;
extern void HandleTBPickUpBackpacks(BOOLEAN fAll);
extern void HandleBestSightingPositionInRealtime(); extern void HandleBestSightingPositionInRealtime();
extern INT32 GetCurrentBalance( void ); extern INT32 GetCurrentBalance( void );
@@ -372,7 +372,7 @@ CHAR8 gzDirectionStr[][ 30 ] =
}; };
// TEMP VALUES FOR TEAM DEFAULT POSITIONS // TEMP VALUES FOR TEAM DEFAULT POSITIONS
UINT8 bDefaultTeamRangesMP[ MAXTEAMS ][ 2 ] = UINT16 bDefaultTeamRangesMP[ MAXTEAMS ][ 2 ] =
{ {
0, 19, //20 US 0, 19, //20 US
@@ -388,7 +388,7 @@ UINT8 bDefaultTeamRangesMP[ MAXTEAMS ][ 2 ] =
MAX_NUM_SOLDIERS, TOTAL_SOLDIERS - 1 // PLANNING SOLDIERS MAX_NUM_SOLDIERS, TOTAL_SOLDIERS - 1 // PLANNING SOLDIERS
}; };
UINT8 bDefaultTeamRanges[ MAXTEAMS_SP ][ 2 ] = UINT16 bDefaultTeamRanges[ MAXTEAMS_SP ][ 2 ] =
{ {
0, 0,
CODE_MAXIMUM_NUMBER_OF_PLAYER_MERCS+CODE_MAXIMUM_NUMBER_OF_PLAYER_VEHICLES-1, CODE_MAXIMUM_NUMBER_OF_PLAYER_MERCS+CODE_MAXIMUM_NUMBER_OF_PLAYER_VEHICLES-1,
@@ -420,16 +420,16 @@ COLORVAL bDefaultTeamColors[ MAXTEAMS ] =
}; };
// UTILITY FUNCTIONS // UTILITY FUNCTIONS
INT8 NumActiveAndConsciousTeamMembers( UINT8 ubTeam ); UINT16 NumActiveAndConsciousTeamMembers( UINT8 ubTeam );
UINT8 NumEnemyInSector( ); UINT16 NumEnemyInSector( );
UINT8 NumEnemyInSectorExceptCreatures(); UINT16 NumEnemyInSectorExceptCreatures();
UINT8 NumCapableEnemyInSector( ); UINT16 NumCapableEnemyInSector( );
BOOLEAN KillIncompacitatedEnemyInSector( ); BOOLEAN KillIncompacitatedEnemyInSector( );
BOOLEAN CheckForLosingEndOfBattle( ); BOOLEAN CheckForLosingEndOfBattle( );
void EndBattleWithUnconsciousGuysCallback( UINT8 bExitValue ); void EndBattleWithUnconsciousGuysCallback( UINT8 bExitValue );
UINT8 NumEnemyInSectorNotDeadOrDying( ); UINT16 NumEnemyInSectorNotDeadOrDying( );
UINT8 NumBloodcatsInSectorNotDeadOrDying( ); UINT16 NumBloodcatsInSectorNotDeadOrDying( );
UINT8 gubWaitingForAllMercsToExitCode = 0; UINT8 gubWaitingForAllMercsToExitCode = 0;
UINT8 gusNumMercsUntilWaitingOver = 0; UINT8 gusNumMercsUntilWaitingOver = 0;
@@ -659,7 +659,7 @@ void ShutdownTacticalEngine( )
BOOLEAN InitOverhead( ) BOOLEAN InitOverhead( )
{ {
UINT32 cnt; UINT32 cnt;
UINT8 cnt2; UINT16 cnt2;
// Set pointers list // Set pointers list
for( cnt = 0; cnt < TOTAL_SOLDIERS; cnt++ ) for( cnt = 0; cnt < TOTAL_SOLDIERS; cnt++ )
@@ -1331,7 +1331,7 @@ BOOLEAN ExecuteOverhead( )
} }
// OK, if we are the selected soldier, refresh some UI stuff // OK, if we are the selected soldier, refresh some UI stuff
if ( pSoldier->ubID == (UINT8)gusSelectedSoldier ) if ( pSoldier->ubID == gusSelectedSoldier )
{ {
gfUIRefreshArrows = TRUE; gfUIRefreshArrows = TRUE;
} }
@@ -3378,7 +3378,7 @@ void InternalSelectSoldier( UINT16 usSoldierID, BOOLEAN fAcknowledge, BOOLEAN fF
UpdateForContOverPortrait( pOldSoldier, FALSE ); UpdateForContOverPortrait( pOldSoldier, FALSE );
} }
gusSelectedSoldier = (UINT16)usSoldierID; gusSelectedSoldier = usSoldierID;
// find which squad this guy is, then set selected squad to this guy // find which squad this guy is, then set selected squad to this guy
if( pSoldier->bAssignment == VEHICLE ) if( pSoldier->bAssignment == VEHICLE )
@@ -3405,7 +3405,7 @@ void InternalSelectSoldier( UINT16 usSoldierID, BOOLEAN fAcknowledge, BOOLEAN fF
//pSoldier->SetCheckSoldierLightFlag( ); //pSoldier->SetCheckSoldierLightFlag( );
// Set interface to reflect new selection! // Set interface to reflect new selection!
SetCurrentTacticalPanelCurrentMerc( (UINT8)usSoldierID ); SetCurrentTacticalPanelCurrentMerc( usSoldierID );
// PLay ATTN SOUND // PLay ATTN SOUND
if ( fAcknowledge ) if ( fAcknowledge )
@@ -3513,11 +3513,11 @@ void LocateSoldier( UINT16 usID, BOOLEAN fSetLocator)
{ {
if ( fSetLocator == SETLOCATOR || fSetLocator == 10 ) if ( fSetLocator == SETLOCATOR || fSetLocator == 10 )
{ {
ShowRadioLocator((UINT8)usID, SHOW_LOCATOR_NORMAL ); ShowRadioLocator(usID, SHOW_LOCATOR_NORMAL );
} }
else else
{ {
ShowRadioLocator((UINT8)usID, SHOW_LOCATOR_FAST ); ShowRadioLocator(usID, SHOW_LOCATOR_FAST );
} }
} }
} }
@@ -3569,7 +3569,7 @@ void SlideTo(INT32 sGridNo, UINT16 usSoldierID , UINT16 usReasonID, BOOLEAN fSet
// Locate even if on screen // Locate even if on screen
if (fSetLocator) if (fSetLocator)
ShowRadioLocator((UINT8) usSoldierID, SHOW_LOCATOR_NORMAL ); ShowRadioLocator( usSoldierID, SHOW_LOCATOR_NORMAL );
// FIRST CHECK IF WE ARE ON SCREEN // FIRST CHECK IF WE ARE ON SCREEN
if ( GridNoOnScreen( MercPtrs[ usSoldierID ]->sGridNo ) ) if ( GridNoOnScreen( MercPtrs[ usSoldierID ]->sGridNo ) )
@@ -4167,7 +4167,7 @@ void HandleNPCTeamMemberDeath( SOLDIERTYPE *pSoldierOld )
// killing crows/cows is not worth any experience! // killing crows/cows is not worth any experience!
if ( ( pSoldierOld->ubBodyType != CROW ) && ( pSoldierOld->ubBodyType != COW ) ) //&& pSoldierOld->ubLastDamageReason != TAKE_DAMAGE_BLOODLOSS ) // SANDRO - why not give exp for bleeding out? if ( ( pSoldierOld->ubBodyType != CROW ) && ( pSoldierOld->ubBodyType != COW ) ) //&& pSoldierOld->ubLastDamageReason != TAKE_DAMAGE_BLOODLOSS ) // SANDRO - why not give exp for bleeding out?
{ {
UINT8 ubAssister = NOBODY; UINT16 ubAssister = NOBODY;
// if it was a kill by a player's merc // if it was a kill by a player's merc
if (pSoldierOld->ubAttackerID != NOBODY && MercPtrs[ pSoldierOld->ubAttackerID ]->bTeam == gbPlayerNum ) if (pSoldierOld->ubAttackerID != NOBODY && MercPtrs[ pSoldierOld->ubAttackerID ]->bTeam == gbPlayerNum )
@@ -4267,7 +4267,7 @@ void HandleNPCTeamMemberDeath( SOLDIERTYPE *pSoldierOld )
CheckForEndOfBattle( FALSE ); CheckForEndOfBattle( FALSE );
} }
UINT8 LastActiveTeamMember( UINT8 ubTeam ) UINT16 LastActiveTeamMember( UINT16 ubTeam )
{ {
INT32 cnt; INT32 cnt;
SOLDIERTYPE *pSoldier; SOLDIERTYPE *pSoldier;
@@ -4279,7 +4279,7 @@ UINT8 LastActiveTeamMember( UINT8 ubTeam )
{ {
if ( pSoldier->bActive ) if ( pSoldier->bActive )
{ {
return( (INT8)cnt ); return( (UINT16)cnt );
} }
} }
@@ -4542,9 +4542,9 @@ void MakeCivHostile(SOLDIERTYPE *pSoldier)
UINT8 CivilianGroupMembersChangeSidesWithinProximity( SOLDIERTYPE * pAttacked ) UINT8 CivilianGroupMembersChangeSidesWithinProximity( SOLDIERTYPE * pAttacked )
{ {
SOLDIERTYPE * pSoldier; SOLDIERTYPE * pSoldier;
UINT8 ubFirstProfile = NO_PROFILE; UINT8 ubFirstProfile = NO_PROFILE;
UINT8 cnt; UINT16 cnt;
if ( pAttacked->ubCivilianGroup == NON_CIV_GROUP ) if ( pAttacked->ubCivilianGroup == NON_CIV_GROUP )
{ {
@@ -4584,11 +4584,11 @@ UINT8 CivilianGroupMembersChangeSidesWithinProximity( SOLDIERTYPE * pAttacked )
SOLDIERTYPE * CivilianGroupMemberChangesSides( SOLDIERTYPE * pAttacked ) SOLDIERTYPE * CivilianGroupMemberChangesSides( SOLDIERTYPE * pAttacked )
{ {
SOLDIERTYPE * pNew; SOLDIERTYPE * pNew;
SOLDIERTYPE * pNewAttacked = pAttacked; SOLDIERTYPE * pNewAttacked = pAttacked;
SOLDIERTYPE * pSoldier; SOLDIERTYPE * pSoldier;
UINT8 cnt; UINT16 cnt;
UINT8 ubFirstProfile = NO_PROFILE; UINT8 ubFirstProfile = NO_PROFILE;
if ( pAttacked->ubCivilianGroup == NON_CIV_GROUP ) if ( pAttacked->ubCivilianGroup == NON_CIV_GROUP )
{ {
@@ -4778,11 +4778,11 @@ gTacticalStatus.fCivGroupHostile[ ubLoop ] = CIV_GROUP_HOSTILE;
} }
*/ */
INT8 NumActiveAndConsciousTeamMembers( UINT8 ubTeam ) UINT16 NumActiveAndConsciousTeamMembers( UINT8 ubTeam )
{ {
INT32 cnt; INT32 cnt;
SOLDIERTYPE *pSoldier; SOLDIERTYPE *pSoldier;
UINT8 ubCount = 0; UINT16 ubCount = 0;
cnt = gTacticalStatus.Team[ ubTeam ].bFirstID; cnt = gTacticalStatus.Team[ ubTeam ].bFirstID;
@@ -4799,10 +4799,10 @@ INT8 NumActiveAndConsciousTeamMembers( UINT8 ubTeam )
} }
UINT8 FindNextActiveAndAliveMerc( SOLDIERTYPE *pSoldier, BOOLEAN fGoodForLessOKLife, BOOLEAN fOnlyRegularMercs ) UINT16 FindNextActiveAndAliveMerc( SOLDIERTYPE *pSoldier, BOOLEAN fGoodForLessOKLife, BOOLEAN fOnlyRegularMercs )
{ {
UINT8 bLastTeamID; UINT16 bLastTeamID;
INT32 cnt; UINT16 cnt;
SOLDIERTYPE *pTeamSoldier; SOLDIERTYPE *pTeamSoldier;
cnt = pSoldier->ubID + 1; cnt = pSoldier->ubID + 1;
@@ -4823,14 +4823,14 @@ UINT8 FindNextActiveAndAliveMerc( SOLDIERTYPE *pSoldier, BOOLEAN fGoodForLessOKL
{ {
if ( pTeamSoldier->stats.bLife > 0 && pTeamSoldier->bActive && pTeamSoldier->bInSector && pTeamSoldier->bTeam == gbPlayerNum && ( pTeamSoldier->bAssignment < ON_DUTY || pTeamSoldier->bAssignment == VEHICLE ) && OK_INTERRUPT_MERC( pTeamSoldier ) && pSoldier->bAssignment == pTeamSoldier->bAssignment ) if ( pTeamSoldier->stats.bLife > 0 && pTeamSoldier->bActive && pTeamSoldier->bInSector && pTeamSoldier->bTeam == gbPlayerNum && ( pTeamSoldier->bAssignment < ON_DUTY || pTeamSoldier->bAssignment == VEHICLE ) && OK_INTERRUPT_MERC( pTeamSoldier ) && pSoldier->bAssignment == pTeamSoldier->bAssignment )
{ {
return( (UINT8)cnt ); return( cnt );
} }
} }
else else
{ {
if ( OK_CONTROLLABLE_MERC( pTeamSoldier) && OK_INTERRUPT_MERC( pTeamSoldier ) && pSoldier->bAssignment == pTeamSoldier->bAssignment ) if ( OK_CONTROLLABLE_MERC( pTeamSoldier) && OK_INTERRUPT_MERC( pTeamSoldier ) && pSoldier->bAssignment == pTeamSoldier->bAssignment )
{ {
return( (UINT8)cnt ); return( cnt );
} }
} }
} }
@@ -4854,14 +4854,14 @@ UINT8 FindNextActiveAndAliveMerc( SOLDIERTYPE *pSoldier, BOOLEAN fGoodForLessOKL
{ {
if ( pTeamSoldier->stats.bLife > 0 && pTeamSoldier->bActive && pTeamSoldier->bInSector && pTeamSoldier->bTeam == gbPlayerNum && ( pTeamSoldier->bAssignment < ON_DUTY || pTeamSoldier->bAssignment == VEHICLE ) && OK_INTERRUPT_MERC( pTeamSoldier ) && pSoldier->bAssignment == pTeamSoldier->bAssignment ) if ( pTeamSoldier->stats.bLife > 0 && pTeamSoldier->bActive && pTeamSoldier->bInSector && pTeamSoldier->bTeam == gbPlayerNum && ( pTeamSoldier->bAssignment < ON_DUTY || pTeamSoldier->bAssignment == VEHICLE ) && OK_INTERRUPT_MERC( pTeamSoldier ) && pSoldier->bAssignment == pTeamSoldier->bAssignment )
{ {
return( (UINT8)cnt ); return( cnt );
} }
} }
else else
{ {
if ( OK_CONTROLLABLE_MERC( pTeamSoldier) && OK_INTERRUPT_MERC( pTeamSoldier ) && pSoldier->bAssignment == pTeamSoldier->bAssignment ) if ( OK_CONTROLLABLE_MERC( pTeamSoldier) && OK_INTERRUPT_MERC( pTeamSoldier ) && pSoldier->bAssignment == pTeamSoldier->bAssignment )
{ {
return( (UINT8)cnt ); return( cnt );
} }
} }
} }
@@ -4913,9 +4913,9 @@ SOLDIERTYPE *FindNextActiveSquad( SOLDIERTYPE *pSoldier )
} }
UINT8 FindPrevActiveAndAliveMerc( SOLDIERTYPE *pSoldier, BOOLEAN fGoodForLessOKLife, BOOLEAN fOnlyRegularMercs ) UINT16 FindPrevActiveAndAliveMerc( SOLDIERTYPE *pSoldier, BOOLEAN fGoodForLessOKLife, BOOLEAN fOnlyRegularMercs )
{ {
UINT8 bLastTeamID; UINT16 bLastTeamID;
INT32 cnt; INT32 cnt;
SOLDIERTYPE *pTeamSoldier; SOLDIERTYPE *pTeamSoldier;
@@ -4939,14 +4939,14 @@ UINT8 FindPrevActiveAndAliveMerc( SOLDIERTYPE *pSoldier, BOOLEAN fGoodForLessOKL
// Check for bLife > 0 // Check for bLife > 0
if ( pTeamSoldier->stats.bLife > 0 && pTeamSoldier->bActive && pTeamSoldier->bInSector && pTeamSoldier->bTeam == gbPlayerNum && ( pTeamSoldier->bAssignment < ON_DUTY || pTeamSoldier->bAssignment == VEHICLE ) && OK_INTERRUPT_MERC( pTeamSoldier ) && pSoldier->bAssignment == pTeamSoldier->bAssignment ) if ( pTeamSoldier->stats.bLife > 0 && pTeamSoldier->bActive && pTeamSoldier->bInSector && pTeamSoldier->bTeam == gbPlayerNum && ( pTeamSoldier->bAssignment < ON_DUTY || pTeamSoldier->bAssignment == VEHICLE ) && OK_INTERRUPT_MERC( pTeamSoldier ) && pSoldier->bAssignment == pTeamSoldier->bAssignment )
{ {
return( (UINT8)cnt ); return( (UINT16)cnt );
} }
} }
else else
{ {
if ( OK_CONTROLLABLE_MERC( pTeamSoldier ) && OK_INTERRUPT_MERC( pTeamSoldier ) && pSoldier->bAssignment == pTeamSoldier->bAssignment ) if ( OK_CONTROLLABLE_MERC( pTeamSoldier ) && OK_INTERRUPT_MERC( pTeamSoldier ) && pSoldier->bAssignment == pTeamSoldier->bAssignment )
{ {
return( (UINT8)cnt ); return( (UINT16)cnt );
} }
} }
} }
@@ -4969,14 +4969,14 @@ UINT8 FindPrevActiveAndAliveMerc( SOLDIERTYPE *pSoldier, BOOLEAN fGoodForLessOKL
{ {
if ( pTeamSoldier->stats.bLife > 0 && pTeamSoldier->bActive && pTeamSoldier->bInSector && pTeamSoldier->bTeam == gbPlayerNum && ( pTeamSoldier->bAssignment < ON_DUTY || pTeamSoldier->bAssignment == VEHICLE ) && OK_INTERRUPT_MERC( pTeamSoldier ) && pSoldier->bAssignment == pTeamSoldier->bAssignment ) if ( pTeamSoldier->stats.bLife > 0 && pTeamSoldier->bActive && pTeamSoldier->bInSector && pTeamSoldier->bTeam == gbPlayerNum && ( pTeamSoldier->bAssignment < ON_DUTY || pTeamSoldier->bAssignment == VEHICLE ) && OK_INTERRUPT_MERC( pTeamSoldier ) && pSoldier->bAssignment == pTeamSoldier->bAssignment )
{ {
return( (UINT8)cnt ); return( (UINT16)cnt );
} }
} }
else else
{ {
if ( OK_CONTROLLABLE_MERC( pTeamSoldier) && OK_INTERRUPT_MERC( pTeamSoldier ) && pSoldier->bAssignment == pTeamSoldier->bAssignment ) if ( OK_CONTROLLABLE_MERC( pTeamSoldier) && OK_INTERRUPT_MERC( pTeamSoldier ) && pSoldier->bAssignment == pTeamSoldier->bAssignment )
{ {
return( (UINT8)cnt ); return( (UINT16)cnt );
} }
} }
} }
@@ -4990,8 +4990,8 @@ UINT8 FindPrevActiveAndAliveMerc( SOLDIERTYPE *pSoldier, BOOLEAN fGoodForLessOKL
BOOLEAN CheckForPlayerTeamInMissionExit( ) BOOLEAN CheckForPlayerTeamInMissionExit( )
{ {
INT32 cnt; INT32 cnt;
SOLDIERTYPE *pSoldier; SOLDIERTYPE *pSoldier;
UINT8 bGuysIn = 0; UINT16 bGuysIn = 0;
// End the turn of player charactors // End the turn of player charactors
cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID;
@@ -5087,10 +5087,10 @@ extern BOOLEAN InternalOkayToAddStructureToWorld( INT32 sBaseGridNo, INT8 bLevel
// NB if making changes don't forget to update NewOKDestinationAndDirection // NB if making changes don't forget to update NewOKDestinationAndDirection
BOOLEAN NewOKDestination( SOLDIERTYPE * pCurrSoldier, INT32 sGridNo, BOOLEAN fPeopleToo, INT8 bLevel ) BOOLEAN NewOKDestination( SOLDIERTYPE * pCurrSoldier, INT32 sGridNo, BOOLEAN fPeopleToo, INT8 bLevel )
{ {
UINT8 bPerson; UINT16 bPerson;
STRUCTURE * pStructure; STRUCTURE *pStructure;
INT16 sDesiredLevel; INT16 sDesiredLevel;
BOOLEAN fOKCheckStruct; BOOLEAN fOKCheckStruct;
// sevenfm: allow civilians and NPCs with profile to go off screen // sevenfm: allow civilians and NPCs with profile to go off screen
if (!GridNoOnVisibleWorldTile(sGridNo) && (pCurrSoldier->bTeam != CIV_TEAM || pCurrSoldier->ubProfile == NO_PROFILE)) if (!GridNoOnVisibleWorldTile(sGridNo) && (pCurrSoldier->bTeam != CIV_TEAM || pCurrSoldier->ubProfile == NO_PROFILE))
@@ -5228,10 +5228,10 @@ BOOLEAN NewOKDestination( SOLDIERTYPE * pCurrSoldier, INT32 sGridNo, BOOLEAN fPe
// NB if making changes don't forget to update NewOKDestination // NB if making changes don't forget to update NewOKDestination
INT16 NewOKDestinationAndDirection( SOLDIERTYPE * pCurrSoldier, INT32 sGridNo, INT8 bDirection, BOOLEAN fPeopleToo, INT8 bLevel ) INT16 NewOKDestinationAndDirection( SOLDIERTYPE * pCurrSoldier, INT32 sGridNo, INT8 bDirection, BOOLEAN fPeopleToo, INT8 bLevel )
{ {
UINT8 bPerson; UINT16 bPerson;
STRUCTURE * pStructure; STRUCTURE *pStructure;
INT16 sDesiredLevel; INT16 sDesiredLevel;
BOOLEAN fOKCheckStruct; BOOLEAN fOKCheckStruct;
if (fPeopleToo && ( bPerson = WhoIsThere2( sGridNo, bLevel ) ) != NOBODY ) if (fPeopleToo && ( bPerson = WhoIsThere2( sGridNo, bLevel ) ) != NOBODY )
{ {
@@ -5439,7 +5439,7 @@ BOOLEAN IsLocationSittableExcludingPeople( INT32 iMapIndex, BOOLEAN fOnRoof )
BOOLEAN TeamMemberNear(INT8 bTeam, INT32 sGridNo, INT32 iRange) BOOLEAN TeamMemberNear(INT8 bTeam, INT32 sGridNo, INT32 iRange)
{ {
UINT8 bLoop; UINT16 bLoop;
SOLDIERTYPE * pSoldier; SOLDIERTYPE * pSoldier;
for (bLoop=gTacticalStatus.Team[bTeam].bFirstID, pSoldier=MercPtrs[bLoop]; bLoop <= gTacticalStatus.Team[bTeam].bLastID; ++bLoop, pSoldier++) for (bLoop=gTacticalStatus.Team[bTeam].bFirstID, pSoldier=MercPtrs[bLoop]; bLoop <= gTacticalStatus.Team[bTeam].bLastID; ++bLoop, pSoldier++)
@@ -5832,14 +5832,14 @@ INT32 FindNextToAdjacentGridEx( SOLDIERTYPE *pSoldier, INT32 sGridNo, UINT8 *pub
//INT32 cnt; //INT32 cnt;
INT32 sClosest = -1, sSpot, sSpot2; INT32 sClosest = -1, sSpot, sSpot2;
INT32 sCloseGridNo = NOWHERE; INT32 sCloseGridNo = NOWHERE;
UINT32 uiMercFlags; UINT32 uiMercFlags;
UINT16 usSoldierIndex; UINT16 usSoldierIndex;
UINT8 ubDir; UINT8 ubDir;
STRUCTURE *pDoor; STRUCTURE *pDoor;
UINT8 ubWallOrientation; UINT8 ubWallOrientation;
BOOLEAN fCheckGivenGridNo = TRUE; BOOLEAN fCheckGivenGridNo = TRUE;
UINT8 ubTestDirection; UINT8 ubTestDirection;
UINT8 ubWhoIsThere; UINT16 ubWhoIsThere;
// CHECK IF WE WANT TO FORCE GRIDNO TO PERSON // CHECK IF WE WANT TO FORCE GRIDNO TO PERSON
if ( psAdjustedGridNo != NULL ) if ( psAdjustedGridNo != NULL )
@@ -6145,7 +6145,7 @@ INT32 FindNextToAdjacentGridEx( SOLDIERTYPE *pSoldier, INT32 sGridNo, UINT8 *pub
INT32 FindAdjacentPunchTarget( SOLDIERTYPE * pSoldier, SOLDIERTYPE * pTargetSoldier, INT32 * psAdjustedTargetGridNo, UINT8 * pubDirection ) INT32 FindAdjacentPunchTarget( SOLDIERTYPE * pSoldier, SOLDIERTYPE * pTargetSoldier, INT32 * psAdjustedTargetGridNo, UINT8 * pubDirection )
{ {
INT32 sSpot; INT32 sSpot;
UINT8 ubGuyThere; UINT16 ubGuyThere;
for ( UINT8 cnt = 0; cnt < NUM_WORLD_DIRECTIONS; ++cnt ) for ( UINT8 cnt = 0; cnt < NUM_WORLD_DIRECTIONS; ++cnt )
{ {
@@ -6883,9 +6883,9 @@ void SayBattleSoundFromAnyBodyInSector( INT32 iBattleSnd )
{ {
// WDS - make number of mercenaries, etc. be configurable // WDS - make number of mercenaries, etc. be configurable
// UINT8 ubMercsInSector[ CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS ] = { 0 }; // UINT8 ubMercsInSector[ CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS ] = { 0 };
std::vector<UINT8> ubMercsInSector (CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS, 0); std::vector<UINT16> ubMercsInSector (CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS, 0);
UINT8 ubNumMercs = 0; UINT16 ubNumMercs = 0;
UINT8 ubChosenMerc; UINT16 ubChosenMerc;
SOLDIERTYPE *pTeamSoldier; SOLDIERTYPE *pTeamSoldier;
INT32 cnt; INT32 cnt;
@@ -6900,7 +6900,7 @@ void SayBattleSoundFromAnyBodyInSector( INT32 iBattleSnd )
// Add guy if he's a candidate... // Add guy if he's a candidate...
if ( OK_INSECTOR_MERC( pTeamSoldier ) && !AM_AN_EPC( pTeamSoldier ) && !( pTeamSoldier->flags.uiStatusFlags & SOLDIER_GASSED ) && !(AM_A_ROBOT( pTeamSoldier )) && !pTeamSoldier->flags.fMercAsleep ) if ( OK_INSECTOR_MERC( pTeamSoldier ) && !AM_AN_EPC( pTeamSoldier ) && !( pTeamSoldier->flags.uiStatusFlags & SOLDIER_GASSED ) && !(AM_A_ROBOT( pTeamSoldier )) && !pTeamSoldier->flags.fMercAsleep )
{ {
ubMercsInSector[ ubNumMercs ] = (UINT8)cnt; ubMercsInSector[ ubNumMercs ] = (UINT16)cnt;
ubNumMercs++; ubNumMercs++;
} }
} }
@@ -6908,7 +6908,7 @@ void SayBattleSoundFromAnyBodyInSector( INT32 iBattleSnd )
// If we are > 0 // If we are > 0
if ( ubNumMercs > 0 ) if ( ubNumMercs > 0 )
{ {
ubChosenMerc = (UINT8)Random( ubNumMercs ); ubChosenMerc = (UINT16)Random( ubNumMercs );
MercPtrs[ ubChosenMerc ]->DoMercBattleSound( (UINT8)iBattleSnd ); MercPtrs[ ubChosenMerc ]->DoMercBattleSound( (UINT8)iBattleSnd );
} }
@@ -7402,10 +7402,6 @@ void UpdateWoundedFromSectorInfo( INT16 sMapX, INT16 sMapY, INT8 bMapZ )
{ {
SOLDIERTYPE *pSoldier; SOLDIERTYPE *pSoldier;
INT32 cnt = 0; INT32 cnt = 0;
UINT8 ubNumPrisoners = 0;
UINT8 ubNumPrisonerAdmin = 0;
UINT8 ubNumPrisonerTroop = 0;
UINT8 ubNumPrisonerElite = 0;
// Check if the battle is won! // Check if the battle is won!
// Loop through all mercs and make go // Loop through all mercs and make go
@@ -7543,7 +7539,7 @@ BOOLEAN CheckForEndOfBattle( BOOLEAN fAnEnemyRetreated )
if (fBattleLost) if (fBattleLost)
{ {
// sevenfm: count alive/dead/not covert mercs in sector/retreating from sector // sevenfm: count alive/dead/not covert mercs in sector/retreating from sector
UINT8 ubLoop = gTacticalStatus.Team[gbPlayerNum].bFirstID; UINT16 ubLoop = gTacticalStatus.Team[gbPlayerNum].bFirstID;
BOOLEAN fFoundNotCovertMerc = FALSE; BOOLEAN fFoundNotCovertMerc = FALSE;
BOOLEAN fFoundAliveMerc = FALSE; BOOLEAN fFoundAliveMerc = FALSE;
BOOLEAN fFoundDeadMerc = FALSE; BOOLEAN fFoundDeadMerc = FALSE;
@@ -7592,7 +7588,7 @@ BOOLEAN CheckForEndOfBattle( BOOLEAN fAnEnemyRetreated )
memset(&(gTacticalStatus.bNumFoughtInBattle), 0, MAXTEAMS); memset(&(gTacticalStatus.bNumFoughtInBattle), 0, MAXTEAMS);
// If here, the battle has been lost! // If here, the battle has been lost!
UnSetUIBusy((UINT8)gusSelectedSoldier); UnSetUIBusy(gusSelectedSoldier);
if (gTacticalStatus.uiFlags & INCOMBAT) if (gTacticalStatus.uiFlags & INCOMBAT)
{ {
@@ -7725,7 +7721,7 @@ BOOLEAN CheckForEndOfBattle( BOOLEAN fAnEnemyRetreated )
// battle for us // battle for us
EndAllAITurns( ); EndAllAITurns( );
UnSetUIBusy( (UINT8)gusSelectedSoldier ); UnSetUIBusy( gusSelectedSoldier );
// ATE: // ATE:
// If we ended battle in any team other than the player's // If we ended battle in any team other than the player's
@@ -8011,7 +8007,10 @@ BOOLEAN CheckForEndOfBattle( BOOLEAN fAnEnemyRetreated )
// Flugente: in any case, reset creature attack variables // Flugente: in any case, reset creature attack variables
ResetCreatureAttackVariables(); ResetCreatureAttackVariables();
// sevenfm: switch off radio // sevenfm: pick up dropped backpacks
HandleTBPickUpBackpacks(TRUE);
// sevenfm: switch off radio
//SwitchOffAllRadio(); //SwitchOffAllRadio();
// If we are the server, we escape this function at the top if we think the game should still be running // If we are the server, we escape this function at the top if we think the game should still be running
@@ -8154,7 +8153,7 @@ void CycleVisibleEnemies( SOLDIERTYPE *pSrcSoldier )
// If we are > ok start, this is the one! // If we are > ok start, this is the one!
if ( cnt > pSrcSoldier->ubLastEnemyCycledID ) if ( cnt > pSrcSoldier->ubLastEnemyCycledID )
{ {
pSrcSoldier->ubLastEnemyCycledID = (UINT8)cnt; pSrcSoldier->ubLastEnemyCycledID = (UINT16)cnt;
//ATE: Change to Slide To... //ATE: Change to Slide To...
SlideTo( 0, pSoldier->ubID, 0, SETANDREMOVEPREVIOUSLOCATOR ); SlideTo( 0, pSoldier->ubID, 0, SETANDREMOVEPREVIOUSLOCATOR );
@@ -8182,7 +8181,7 @@ void CycleVisibleEnemies( SOLDIERTYPE *pSrcSoldier )
// If we are > ok start, this is the one! // If we are > ok start, this is the one!
if ( cnt > pSrcSoldier->ubLastEnemyCycledID ) if ( cnt > pSrcSoldier->ubLastEnemyCycledID )
{ {
pSrcSoldier->ubLastEnemyCycledID = (UINT8)cnt; pSrcSoldier->ubLastEnemyCycledID = (UINT16)cnt;
//ATE: Change to Slide To... //ATE: Change to Slide To...
SlideTo( 0, pSoldier->ubID, 0, SETANDREMOVEPREVIOUSLOCATOR ); SlideTo( 0, pSoldier->ubID, 0, SETANDREMOVEPREVIOUSLOCATOR );
@@ -8217,7 +8216,7 @@ void CycleVisibleEnemiesBackward( SOLDIERTYPE *pSrcSoldier )
// If we are > ok start, this is the one! // If we are > ok start, this is the one!
if ( cnt < pSrcSoldier->ubLastEnemyCycledID ) if ( cnt < pSrcSoldier->ubLastEnemyCycledID )
{ {
pSrcSoldier->ubLastEnemyCycledID = (UINT8)cnt; pSrcSoldier->ubLastEnemyCycledID = (UINT16)cnt;
//ATE: Change to Slide To... //ATE: Change to Slide To...
SlideTo( 0, pSoldier->ubID, 0, SETANDREMOVEPREVIOUSLOCATOR ); SlideTo( 0, pSoldier->ubID, 0, SETANDREMOVEPREVIOUSLOCATOR );
@@ -8246,7 +8245,7 @@ void CycleVisibleEnemiesBackward( SOLDIERTYPE *pSrcSoldier )
// If we are > ok start, this is the one! // If we are > ok start, this is the one!
if ( cnt < pSrcSoldier->ubLastEnemyCycledID ) if ( cnt < pSrcSoldier->ubLastEnemyCycledID )
{ {
pSrcSoldier->ubLastEnemyCycledID = (UINT8)cnt; pSrcSoldier->ubLastEnemyCycledID = (UINT16)cnt;
//ATE: Change to Slide To... //ATE: Change to Slide To...
SlideTo( 0, pSoldier->ubID, 0, SETANDREMOVEPREVIOUSLOCATOR ); SlideTo( 0, pSoldier->ubID, 0, SETANDREMOVEPREVIOUSLOCATOR );
@@ -8289,11 +8288,11 @@ BOOLEAN PlayerTeamFull( )
return( TRUE ); return( TRUE );
} }
UINT8 NumPCsInSector( ) UINT16 NumPCsInSector( )
{ {
SOLDIERTYPE *pTeamSoldier; SOLDIERTYPE *pTeamSoldier;
UINT32 cnt = 0; UINT32 cnt = 0;
UINT8 ubNumPlayers = 0; UINT16 ubNumPlayers = 0;
// Check if the battle is won! // Check if the battle is won!
// Loop through all mercs and make go // Loop through all mercs and make go
@@ -8314,11 +8313,11 @@ UINT8 NumPCsInSector( )
} }
UINT8 NumEnemyInSector( ) UINT16 NumEnemyInSector( )
{ {
SOLDIERTYPE *pTeamSoldier; SOLDIERTYPE *pTeamSoldier;
INT32 cnt = 0; INT32 cnt = 0;
UINT8 ubNumEnemies = 0; UINT16 ubNumEnemies = 0;
// Check if the battle is won! // Check if the battle is won!
// Loop through all mercs and make go // Loop through all mercs and make go
@@ -8338,11 +8337,11 @@ UINT8 NumEnemyInSector( )
} }
UINT8 NumZombiesInSector( ) UINT16 NumZombiesInSector( )
{ {
SOLDIERTYPE *pTeamSoldier; SOLDIERTYPE *pTeamSoldier;
INT32 cnt = 0; INT32 cnt = 0;
UINT8 ubNumZombies = 0; UINT16 ubNumZombies = 0;
for ( pTeamSoldier = Menptr, cnt = 0; cnt < TOTAL_SOLDIERS; ++pTeamSoldier, ++cnt ) for ( pTeamSoldier = Menptr, cnt = 0; cnt < TOTAL_SOLDIERS; ++pTeamSoldier, ++cnt )
{ {
@@ -8358,11 +8357,11 @@ UINT8 NumZombiesInSector( )
return( ubNumZombies ); return( ubNumZombies );
} }
UINT8 NumEnemyInSectorExceptCreatures() UINT16 NumEnemyInSectorExceptCreatures()
{ {
SOLDIERTYPE *pTeamSoldier; SOLDIERTYPE *pTeamSoldier;
INT32 cnt = 0; INT32 cnt = 0;
UINT8 ubNumEnemies = 0; UINT16 ubNumEnemies = 0;
// Check if the battle is won! // Check if the battle is won!
// Loop through all mercs and make go // Loop through all mercs and make go
@@ -8383,11 +8382,11 @@ UINT8 NumEnemyInSectorExceptCreatures()
} }
UINT8 NumEnemyInSectorNotDeadOrDying( ) UINT16 NumEnemyInSectorNotDeadOrDying( )
{ {
SOLDIERTYPE *pTeamSoldier; SOLDIERTYPE *pTeamSoldier;
INT32 cnt = 0; INT32 cnt = 0;
UINT8 ubNumEnemies = 0; UINT16 ubNumEnemies = 0;
// Check if the battle is won! // Check if the battle is won!
// Loop through all mercs and make go // Loop through all mercs and make go
@@ -8418,11 +8417,11 @@ UINT8 NumEnemyInSectorNotDeadOrDying( )
} }
UINT8 NumBloodcatsInSectorNotDeadOrDying( ) UINT16 NumBloodcatsInSectorNotDeadOrDying( )
{ {
SOLDIERTYPE *pTeamSoldier; SOLDIERTYPE *pTeamSoldier;
INT32 cnt = 0; INT32 cnt = 0;
UINT8 ubNumEnemies = 0; UINT16 ubNumEnemies = 0;
// Check if the battle is won! // Check if the battle is won!
// Loop through all mercs and make go // Loop through all mercs and make go
@@ -8457,11 +8456,11 @@ UINT8 NumBloodcatsInSectorNotDeadOrDying( )
} }
UINT8 NumCapableEnemyInSector( ) UINT16 NumCapableEnemyInSector( )
{ {
SOLDIERTYPE *pTeamSoldier; SOLDIERTYPE *pTeamSoldier;
INT32 cnt = 0; INT32 cnt = 0;
UINT8 ubNumEnemies = 0; UINT16 ubNumEnemies = 0;
// Check if the battle is won! // Check if the battle is won!
// Loop through all mercs and make go // Loop through all mercs and make go
@@ -8505,7 +8504,7 @@ BOOLEAN CheckForLosingEndOfBattle( )
{ {
SOLDIERTYPE *pTeamSoldier; SOLDIERTYPE *pTeamSoldier;
INT32 cnt = 0; INT32 cnt = 0;
INT8 bNumDead = 0, bNumNotOK = 0, bNumInBattle = 0, bNumNotOKRealMercs = 0; UINT16 bNumDead = 0, bNumNotOK = 0, bNumInBattle = 0, bNumNotOKRealMercs = 0;
BOOLEAN fMadeCorpse; BOOLEAN fMadeCorpse;
BOOLEAN fDoCapture = FALSE; BOOLEAN fDoCapture = FALSE;
BOOLEAN fOnlyEPCsLeft = TRUE; BOOLEAN fOnlyEPCsLeft = TRUE;
@@ -8864,9 +8863,9 @@ INT8 CalcSuppressionTolerance( SOLDIERTYPE * pSoldier )
return( bTolerance ); return( bTolerance );
} }
extern void IncrementWatchedLoc(UINT8 ubID, INT32 sGridNo, INT8 bLevel); extern void IncrementWatchedLoc(UINT16 ubID, INT32 sGridNo, INT8 bLevel);
void HandleSuppressionFire( UINT8 ubTargetedMerc, UINT8 ubCausedAttacker ) void HandleSuppressionFire( UINT16 ubTargetedMerc, UINT16 ubCausedAttacker )
{ {
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
// //
@@ -9245,7 +9244,7 @@ void HandleSuppressionFire( UINT8 ubTargetedMerc, UINT8 ubCausedAttacker )
// "Soldier is pinned down!" // "Soldier is pinned down!"
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, New113HAMMessage[1], pSoldier->GetName() ); ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, New113HAMMessage[1], pSoldier->GetName() );
// HEADROCK HAM 3.2: Added a radio locator! // HEADROCK HAM 3.2: Added a radio locator!
ShowRadioLocator( (UINT8)pSoldier->ubID, SHOW_LOCATOR_NORMAL ); ShowRadioLocator( pSoldier->ubID, SHOW_LOCATOR_NORMAL );
} }
} }
} }
@@ -9653,7 +9652,7 @@ SOLDIERTYPE *InternalReduceAttackBusyCount( )
SOLDIERTYPE * pTarget; SOLDIERTYPE * pTarget;
BOOLEAN fEnterCombat = FALSE; BOOLEAN fEnterCombat = FALSE;
UINT32 cnt; UINT32 cnt;
UINT8 ubID; UINT16 ubID;
#if 0 #if 0
// 0verhaul: None of this is necessary anymore with the new attack busy system // 0verhaul: None of this is necessary anymore with the new attack busy system
@@ -9997,7 +9996,7 @@ SOLDIERTYPE *InternalReduceAttackBusyCount( )
if ( gTacticalStatus.uiFlags & CHECK_SIGHT_AT_END_OF_ATTACK ) if ( gTacticalStatus.uiFlags & CHECK_SIGHT_AT_END_OF_ATTACK )
{ {
UINT8 ubLoop; UINT16 ubLoop;
SOLDIERTYPE * pSightSoldier; SOLDIERTYPE * pSightSoldier;
AllTeamsLookForAll( FALSE ); AllTeamsLookForAll( FALSE );
@@ -10317,7 +10316,7 @@ void RemoveManFromTeam( INT8 bTeam )
void RemoveSoldierFromTacticalSector( SOLDIERTYPE *pSoldier, BOOLEAN fAdjustSelected ) void RemoveSoldierFromTacticalSector( SOLDIERTYPE *pSoldier, BOOLEAN fAdjustSelected )
{ {
UINT8 ubID; UINT16 ubID;
SOLDIERTYPE *pNewSoldier; SOLDIERTYPE *pNewSoldier;
// reset merc's opplist // reset merc's opplist
@@ -10661,9 +10660,9 @@ void HandleCreatureTenseQuote( )
{ {
// WDS - make number of mercenaries, etc. be configurable // WDS - make number of mercenaries, etc. be configurable
// UINT8 ubMercsInSector[ CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS ] = { 0 }; // UINT8 ubMercsInSector[ CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS ] = { 0 };
std::vector<UINT8> ubMercsInSector (CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS, 0); std::vector<UINT16> ubMercsInSector (CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS, 0);
UINT8 ubNumMercs = 0; UINT16 ubNumMercs = 0;
UINT8 ubChosenMerc; UINT16 ubChosenMerc;
SOLDIERTYPE *pTeamSoldier; SOLDIERTYPE *pTeamSoldier;
INT32 cnt; INT32 cnt;
INT32 uiTime; INT32 uiTime;
@@ -10691,7 +10690,7 @@ void HandleCreatureTenseQuote( )
// Add guy if he's a candidate... // Add guy if he's a candidate...
if ( OK_INSECTOR_MERC( pTeamSoldier ) && !AM_AN_EPC( pTeamSoldier ) && !( pTeamSoldier->flags.uiStatusFlags & SOLDIER_GASSED ) && !(AM_A_ROBOT( pTeamSoldier )) && !pTeamSoldier->flags.fMercAsleep ) if ( OK_INSECTOR_MERC( pTeamSoldier ) && !AM_AN_EPC( pTeamSoldier ) && !( pTeamSoldier->flags.uiStatusFlags & SOLDIER_GASSED ) && !(AM_A_ROBOT( pTeamSoldier )) && !pTeamSoldier->flags.fMercAsleep )
{ {
ubMercsInSector[ ubNumMercs ] = (UINT8)cnt; ubMercsInSector[ ubNumMercs ] = (UINT16)cnt;
ubNumMercs++; ubNumMercs++;
} }
} }
@@ -10699,7 +10698,7 @@ void HandleCreatureTenseQuote( )
// If we are > 0 // If we are > 0
if ( ubNumMercs > 0 ) if ( ubNumMercs > 0 )
{ {
ubChosenMerc = (UINT8)Random( ubNumMercs ); ubChosenMerc = (UINT16)Random( ubNumMercs );
DoCreatureTensionQuote ( MercPtrs[ ubMercsInSector[ ubChosenMerc ] ] ); DoCreatureTensionQuote ( MercPtrs[ ubMercsInSector[ ubChosenMerc ] ] );
} }
@@ -10812,7 +10811,7 @@ INT8 CheckStatusNearbyFriendlies( SOLDIERTYPE *pSoldier )
INT8 bLevelDifference = 0; INT8 bLevelDifference = 0;
// Run through each friendly. // Run through each friendly.
for ( UINT8 iCounter = gTacticalStatus.Team[ pSoldier->bTeam ].bFirstID ; iCounter <= gTacticalStatus.Team[ pSoldier->bTeam ].bLastID ; iCounter ++ ) for ( UINT16 iCounter = gTacticalStatus.Team[ pSoldier->bTeam ].bFirstID ; iCounter <= gTacticalStatus.Team[ pSoldier->bTeam ].bLastID ; iCounter ++ )
{ {
pLeader = MercPtrs[ iCounter ]; pLeader = MercPtrs[ iCounter ];
// Make sure that character is alive, not too shocked, and conscious, and of higher experience level // Make sure that character is alive, not too shocked, and conscious, and of higher experience level
@@ -10904,7 +10903,7 @@ INT8 CheckStatusNearbyFriendliesSimple(SOLDIERTYPE *pSoldier)
} }
// Run through each friendly. // Run through each friendly.
for (UINT8 ubFriend = gTacticalStatus.Team[ pSoldier->bTeam ].bFirstID ; ubFriend <= gTacticalStatus.Team[ pSoldier->bTeam ].bLastID ; ubFriend ++) for (UINT16 ubFriend = gTacticalStatus.Team[ pSoldier->bTeam ].bFirstID ; ubFriend <= gTacticalStatus.Team[ pSoldier->bTeam ].bLastID ; ubFriend ++)
{ {
pFriend = MercPtrs[ ubFriend ]; pFriend = MercPtrs[ ubFriend ];
@@ -11047,7 +11046,7 @@ void HandleDisplayingOfPlayerLostDialogue( )
} }
#endif #endif
static UINT8 prisonerdialoguetargetID = NOBODY; static UINT16 prisonerdialoguetargetID = NOBODY;
void TurnCoatAttemptMessageBoxCallBack( UINT8 ubExitValue ) void TurnCoatAttemptMessageBoxCallBack( UINT8 ubExitValue )
{ {
@@ -11605,7 +11604,7 @@ void TeamRestock(UINT8 bTeam)
} }
// are we allowed to steal access this guy's inventory? // are we allowed to steal access this guy's inventory?
BOOLEAN AllowedToStealFromTeamMate( UINT8 ubID, UINT8 ubTargetID ) BOOLEAN AllowedToStealFromTeamMate( UINT16 ubID, UINT16 ubTargetID )
{ {
if ( gGameExternalOptions.fAccessOtherMercInventories && ubID != ubTargetID && MercPtrs[ubID]->bTeam == MercPtrs[ubTargetID]->bTeam && !AM_AN_EPC(MercPtrs[ubTargetID]) && !IsVehicle(MercPtrs[ubTargetID]) ) if ( gGameExternalOptions.fAccessOtherMercInventories && ubID != ubTargetID && MercPtrs[ubID]->bTeam == MercPtrs[ubTargetID]->bTeam && !AM_AN_EPC(MercPtrs[ubTargetID]) && !IsVehicle(MercPtrs[ubTargetID]) )
return TRUE; return TRUE;
@@ -11764,11 +11763,11 @@ INT8 CalcEffectiveShockLevel( SOLDIERTYPE * pSoldier )
} }
// Flugente: count number of enemy officers // Flugente: count number of enemy officers
UINT8 HighestEnemyOfficersInSector( UINT8& aType ) UINT16 HighestEnemyOfficersInSector( UINT8& aType )
{ {
SOLDIERTYPE* pSoldier; SOLDIERTYPE* pSoldier;
INT32 cnt = 0; INT32 cnt = 0;
UINT8 num = 0; UINT16 num = 0;
UINT8 type = OFFICER_NONE; UINT8 type = OFFICER_NONE;
for ( cnt = gTacticalStatus.Team[ ENEMY_TEAM ].bFirstID, pSoldier = MercPtrs[cnt]; cnt <= gTacticalStatus.Team[ ENEMY_TEAM ].bLastID; pSoldier++, ++cnt ) for ( cnt = gTacticalStatus.Team[ ENEMY_TEAM ].bFirstID, pSoldier = MercPtrs[cnt]; cnt <= gTacticalStatus.Team[ ENEMY_TEAM ].bLastID; pSoldier++, ++cnt )
@@ -11794,7 +11793,7 @@ UINT16 NumSoldiersWithFlagInSector( UINT8 aTeam, UINT32 aFlag )
{ {
SOLDIERTYPE* pSoldier; SOLDIERTYPE* pSoldier;
INT32 cnt = 0; INT32 cnt = 0;
UINT8 num = 0; UINT16 num = 0;
for ( cnt = gTacticalStatus.Team[aTeam].bFirstID, pSoldier = MercPtrs[cnt]; cnt <= gTacticalStatus.Team[aTeam].bLastID; pSoldier++, ++cnt ) for ( cnt = gTacticalStatus.Team[aTeam].bFirstID, pSoldier = MercPtrs[cnt]; cnt <= gTacticalStatus.Team[aTeam].bLastID; pSoldier++, ++cnt )
{ {
+22 -23
View File
@@ -23,12 +23,12 @@ enum
// TACTICAL ENGINE STATUS FLAGS // TACTICAL ENGINE STATUS FLAGS
typedef struct typedef struct
{ {
UINT8 bFirstID; UINT16 bFirstID;
UINT8 bLastID; UINT16 bLastID;
COLORVAL RadarColor; COLORVAL RadarColor;
INT8 bSide; INT8 bSide;
INT8 bMenInSector; INT16 bMenInSector;
UINT8 ubLastMercToRadio; UINT16 ubLastMercToRadio;
INT8 bTeamActive; INT8 bTeamActive;
INT8 bAwareOfOpposition; INT8 bAwareOfOpposition;
INT8 bHuman; INT8 bHuman;
@@ -69,8 +69,8 @@ struct TacticalStatusType
INT8 fPanicFlags; INT8 fPanicFlags;
INT32 sPanicTriggerGridNoUnused; INT32 sPanicTriggerGridNoUnused;
INT16 sHandGrid; INT16 sHandGrid;
UINT8 ubSpottersCalledForBy; UINT16 ubSpottersCalledForBy;
UINT8 ubTheChosenOne; UINT16 ubTheChosenOne;
UINT32 uiTimeOfLastInput; UINT32 uiTimeOfLastInput;
UINT32 uiTimeSinceDemoOn; UINT32 uiTimeSinceDemoOn;
UINT32 uiCountdownToRestart; UINT32 uiCountdownToRestart;
@@ -89,13 +89,13 @@ struct TacticalStatusType
INT8 bRealtimeSpeed; INT8 bRealtimeSpeed;
UINT8 ubEnemyIntention; UINT8 ubEnemyIntention;
UINT8 ubEnemyIntendedRetreatDirection; UINT8 ubEnemyIntendedRetreatDirection;
UINT8 ubEnemySightingOnTheirTurnEnemyID; UINT16 ubEnemySightingOnTheirTurnEnemyID;
UINT8 ubEnemySightingOnTheirTurnPlayerID; UINT16 ubEnemySightingOnTheirTurnPlayerID;
BOOLEAN fEnemySightingOnTheirTurn; BOOLEAN fEnemySightingOnTheirTurn;
BOOLEAN fAutoBandageMode; BOOLEAN fAutoBandageMode;
UINT8 ubAttackBusyCount; UINT8 ubAttackBusyCount;
INT8 bNumEnemiesFoughtInBattleUnused; INT8 bNumEnemiesFoughtInBattleUnused;
UINT8 ubEngagedInConvFromActionMercID; UINT16 ubEngagedInConvFromActionMercID;
UINT16 usTactialTurnLimitCounter; UINT16 usTactialTurnLimitCounter;
BOOLEAN fInTopMessage; BOOLEAN fInTopMessage;
UINT8 ubTopMessageType; UINT8 ubTopMessageType;
@@ -114,7 +114,7 @@ struct TacticalStatusType
BOOLEAN fSaidCreatureFlavourQuote; BOOLEAN fSaidCreatureFlavourQuote;
BOOLEAN fHaveSeenCreature; BOOLEAN fHaveSeenCreature;
BOOLEAN fKilledEnemyOnAttack; BOOLEAN fKilledEnemyOnAttack;
UINT8 ubEnemyKilledOnAttack; UINT16 ubEnemyKilledOnAttack;
INT8 bEnemyKilledOnAttackLevel; INT8 bEnemyKilledOnAttackLevel;
UINT16 ubEnemyKilledOnAttackLocation; UINT16 ubEnemyKilledOnAttackLocation;
BOOLEAN fItemsSeenOnAttack; BOOLEAN fItemsSeenOnAttack;
@@ -128,7 +128,7 @@ struct TacticalStatusType
BOOLEAN fCantGetThrough; BOOLEAN fCantGetThrough;
INT32 sCantGetThroughGridNo; INT32 sCantGetThroughGridNo;
INT32 sCantGetThroughSoldierGridNo; INT32 sCantGetThroughSoldierGridNo;
UINT8 ubCantGetThroughID; UINT16 ubCantGetThroughID;
BOOLEAN fDidGameJustStart; BOOLEAN fDidGameJustStart;
BOOLEAN fStatChangeCheatOn; BOOLEAN fStatChangeCheatOn;
UINT8 ubLastRequesterTargetID; UINT8 ubLastRequesterTargetID;
@@ -142,10 +142,9 @@ struct TacticalStatusType
BOOLEAN fHasAGameBeenStarted; BOOLEAN fHasAGameBeenStarted;
INT8 bConsNumTurnsWeHaventSeenButEnemyDoes; INT8 bConsNumTurnsWeHaventSeenButEnemyDoes;
BOOLEAN fSomeoneHit; BOOLEAN fSomeoneHit;
UINT8 ubPaddingSmall;
UINT32 uiTimeSinceLastOpplistDecay; UINT32 uiTimeSinceLastOpplistDecay;
INT8 bMercArrivingQuoteBeingUsed; INT8 bMercArrivingQuoteBeingUsed;
UINT8 ubEnemyKilledOnAttackKiller; UINT16 ubEnemyKilledOnAttackKiller;
BOOLEAN fCountingDownForGuideDescription; BOOLEAN fCountingDownForGuideDescription;
INT8 bGuideDescriptionCountDown; INT8 bGuideDescriptionCountDown;
UINT8 ubGuideDescriptionToUse; UINT8 ubGuideDescriptionToUse;
@@ -159,7 +158,7 @@ struct TacticalStatusType
UINT16 sCreatureTenseQuoteDelay; UINT16 sCreatureTenseQuoteDelay;
UINT32 uiCreatureTenseQuoteLastUpdate; UINT32 uiCreatureTenseQuoteLastUpdate;
// SANDRO - added these // SANDRO - added these
UINT8 ubLastRequesterSurgeryTargetID; UINT16 ubLastRequesterSurgeryTargetID;
UINT8 ubInterruptPending; UINT8 ubInterruptPending;
// sevenfm: Ctrl+D disable interrupts // sevenfm: Ctrl+D disable interrupts
BOOLEAN ubDisablePlayerInterrupts; BOOLEAN ubDisablePlayerInterrupts;
@@ -240,11 +239,11 @@ void SlideToLocation( UINT16 usReasonID, INT32 sDestGridNo );
void RebuildAllSoldierShadeTables( ); void RebuildAllSoldierShadeTables( );
void HandlePlayerTeamMemberDeath( SOLDIERTYPE *pSoldier ); void HandlePlayerTeamMemberDeath( SOLDIERTYPE *pSoldier );
UINT8 LastActiveTeamMember( UINT8 ubTeam ); UINT16 LastActiveTeamMember( UINT16 ubTeam );
BOOLEAN SoldierOnVisibleWorldTile( SOLDIERTYPE *pSoldier ); BOOLEAN SoldierOnVisibleWorldTile( SOLDIERTYPE *pSoldier );
UINT8 FindNextActiveAndAliveMerc( SOLDIERTYPE *pSoldier, BOOLEAN fGoodForLessOKLife, BOOLEAN fOnlyRegularMercs ); UINT16 FindNextActiveAndAliveMerc( SOLDIERTYPE *pSoldier, BOOLEAN fGoodForLessOKLife, BOOLEAN fOnlyRegularMercs );
UINT8 FindPrevActiveAndAliveMerc( SOLDIERTYPE *pSoldier, BOOLEAN fGoodForLessOKLife, BOOLEAN fOnlyRegularMercs ); UINT16 FindPrevActiveAndAliveMerc( SOLDIERTYPE *pSoldier, BOOLEAN fGoodForLessOKLife, BOOLEAN fOnlyRegularMercs );
BOOLEAN CheckForPlayerTeamInMissionExit( ); BOOLEAN CheckForPlayerTeamInMissionExit( );
void HandleNPCTeamMemberDeath( SOLDIERTYPE *pSoldier ); void HandleNPCTeamMemberDeath( SOLDIERTYPE *pSoldier );
@@ -261,7 +260,7 @@ INT32 FindNextToAdjacentGridEx( SOLDIERTYPE *pSoldier, INT32 sGridNo, UINT8 *pub
void SelectNextAvailSoldier( SOLDIERTYPE *pSoldier ); void SelectNextAvailSoldier( SOLDIERTYPE *pSoldier );
BOOLEAN TeamMemberNear(INT8 bTeam, INT32 sGridNo, INT32 iRange); BOOLEAN TeamMemberNear(INT8 bTeam, INT32 sGridNo, INT32 iRange);
BOOLEAN IsValidTargetMerc( UINT8 ubSoldierID ); BOOLEAN IsValidTargetMerc( UINT16 ubSoldierID );
// FUNCTIONS FOR MANIPULATING MERC SLOTS - A LIST OF ALL ACTIVE MERCS // FUNCTIONS FOR MANIPULATING MERC SLOTS - A LIST OF ALL ACTIVE MERCS
INT32 GetFreeMercSlot( ); INT32 GetFreeMercSlot( );
@@ -323,7 +322,7 @@ BOOLEAN HostileBloodcatsPresent( );
BOOLEAN HostileZombiesPresent( ); BOOLEAN HostileZombiesPresent( );
BOOLEAN HostileCreaturesPresent(); BOOLEAN HostileCreaturesPresent();
UINT8 NumPCsInSector( ); UINT16 NumPCsInSector( );
void SetSoldierNonNeutral( SOLDIERTYPE * pSoldier ); void SetSoldierNonNeutral( SOLDIERTYPE * pSoldier );
void SetSoldierNeutral( SOLDIERTYPE * pSoldier ); void SetSoldierNeutral( SOLDIERTYPE * pSoldier );
@@ -351,10 +350,10 @@ extern BOOLEAN gogglewarning;
// will a sam site under the players control shoot down an airraid? // will a sam site under the players control shoot down an airraid?
BOOLEAN WillAirRaidBeStopped( INT16 sSectorX, INT16 sSectorY ); BOOLEAN WillAirRaidBeStopped( INT16 sSectorX, INT16 sSectorY );
// HEADROCK HAM 3.5: Externalized for First Arrival enemy check // HEADROCK HAM 3.5: Externalized for First Arrival enemy check
extern UINT8 NumEnemyInSector(); extern UINT16 NumEnemyInSector();
// Flugente // Flugente
extern UINT8 NumZombiesInSector(); extern UINT16 NumZombiesInSector();
// Flugente: offer the enemy the chance to surrender // Flugente: offer the enemy the chance to surrender
void HandleSurrenderOffer( SOLDIERTYPE* pSoldier ); void HandleSurrenderOffer( SOLDIERTYPE* pSoldier );
@@ -371,7 +370,7 @@ void TeamDropAll(UINT8 bTeam, BOOLEAN fForce = FALSE);
void TeamRestock(UINT8 bTeam); void TeamRestock(UINT8 bTeam);
// are we allowed to steal access this guy's inventory? // are we allowed to steal access this guy's inventory?
BOOLEAN AllowedToStealFromTeamMate( UINT8 aAccessorID, UINT8 aTargetID ); BOOLEAN AllowedToStealFromTeamMate( UINT16 ubID, UINT16 ubTargetID );
// Flugente: is an soldier profile already used? // Flugente: is an soldier profile already used?
BOOLEAN IsProfileInUse(UINT8 usTeam, INT8 aType, UINT16 aNr); BOOLEAN IsProfileInUse(UINT8 usTeam, INT8 aType, UINT16 aNr);
@@ -402,7 +401,7 @@ enum {
}; };
// Flugente: return number of enemy officers and highest rank found // Flugente: return number of enemy officers and highest rank found
UINT8 HighestEnemyOfficersInSector(UINT8& aType); UINT16 HighestEnemyOfficersInSector(UINT8& aType);
// count all soldiers in the current sector that have a specific flag set // count all soldiers in the current sector that have a specific flag set
UINT16 NumSoldiersWithFlagInSector(UINT8 aTeam, UINT32 aFlag); UINT16 NumSoldiersWithFlagInSector(UINT8 aTeam, UINT32 aFlag);
+1 -1
View File
@@ -2517,7 +2517,7 @@ b=GetJA2Clock();//return s->sGridNo+6;
INT8 bLoopState = LOOPING_CLOCKWISE; INT8 bLoopState = LOOPING_CLOCKWISE;
//BOOLEAN fLoopForwards = FALSE; //BOOLEAN fLoopForwards = FALSE;
BOOLEAN fCheckedBehind = FALSE; BOOLEAN fCheckedBehind = FALSE;
UINT8 ubMerc; UINT16 ubMerc;
INT32 iDestX,iDestY, iLocX, iLocY, dx, dy; INT32 iDestX,iDestY, iLocX, iLocY, dx, dy;
INT32 newLoc,curLoc; INT32 newLoc,curLoc;
//INT32 curY; //INT32 curY;
+4 -4
View File
@@ -1545,7 +1545,7 @@ void GetRTMousePositionInput( UINT32 *puiNewEvent )
{ {
if( gfUIFullTargetFound ) if( gfUIFullTargetFound )
{ {
if ( IsValidTalkableNPC( (UINT8)gusUIFullTargetID, FALSE, FALSE, FALSE ) && !_KeyDown( SHIFT ) && !AM_AN_EPC( pSoldier ) && MercPtrs[ gusUIFullTargetID ]->bTeam != ENEMY_TEAM && !ValidQuickExchangePosition( ) ) if ( IsValidTalkableNPC( gusUIFullTargetID, FALSE, FALSE, FALSE ) && !_KeyDown( SHIFT ) && !AM_AN_EPC( pSoldier ) && MercPtrs[ gusUIFullTargetID ]->bTeam != ENEMY_TEAM && !ValidQuickExchangePosition( ) )
{ {
uiMoveTargetSoldierId = gusUIFullTargetID; uiMoveTargetSoldierId = gusUIFullTargetID;
*puiNewEvent = T_CHANGE_TO_TALKING; *puiNewEvent = T_CHANGE_TO_TALKING;
@@ -1588,7 +1588,7 @@ void GetRTMousePositionInput( UINT32 *puiNewEvent )
if ( gfUIFullTargetFound ) if ( gfUIFullTargetFound )
//if ( gfUIFullTargetFound ) //if ( gfUIFullTargetFound )
{ {
if ( IsValidTargetMerc( (UINT8)gusUIFullTargetID ) ) if ( IsValidTargetMerc( gusUIFullTargetID ) )
{ {
guiUITargetSoldierId = gusUIFullTargetID; guiUITargetSoldierId = gusUIFullTargetID;
@@ -2077,7 +2077,7 @@ void HandleAltMouseRTX2Button(UINT32 *puiNewEvent)
// sevenfm: original mouse commands functionality // sevenfm: original mouse commands functionality
void HandleMouseRTWheel( void ) void HandleMouseRTWheel( void )
{ {
UINT8 bID; UINT16 bID;
// nothing in hand and either not in SM panel, or the matching button is enabled if we are in SM panel // nothing in hand and either not in SM panel, or the matching button is enabled if we are in SM panel
if ( !( gTacticalStatus.uiFlags & ENGAGED_IN_CONV ) && if ( !( gTacticalStatus.uiFlags & ENGAGED_IN_CONV ) &&
( ( gsCurInterfacePanel != SM_PANEL ) || ( ButtonList[ iSMPanelButtons[ NEXTMERC_BUTTON ] ]->uiFlags & BUTTON_ENABLED ) ) ) ( ( gsCurInterfacePanel != SM_PANEL ) || ( ButtonList[ iSMPanelButtons[ NEXTMERC_BUTTON ] ]->uiFlags & BUTTON_ENABLED ) ) )
@@ -2205,7 +2205,7 @@ void HandleMouseRTX2Button( UINT32 *puiNewEvent )
// For each guy on squad... // For each guy on squad...
{ {
SOLDIERTYPE *pTeamSoldier; SOLDIERTYPE *pTeamSoldier;
INT8 bLoop; INT16 bLoop;
BOOLEAN fStealthOn = FALSE; BOOLEAN fStealthOn = FALSE;
// Check if at least one guy is on stealth.... // Check if at least one guy is on stealth....
+4 -4
View File
@@ -1165,7 +1165,7 @@ void AddCrowToCorpse( ROTTING_CORPSE *pCorpse )
{ {
SOLDIERCREATE_STRUCT MercCreateStruct; SOLDIERCREATE_STRUCT MercCreateStruct;
INT8 ubBodyType = CROW; INT8 ubBodyType = CROW;
UINT8 iNewIndex; UINT16 iNewIndex;
INT32 sGridNo; INT32 sGridNo;
UINT8 ubDirection; UINT8 ubDirection;
SOLDIERTYPE *pSoldier; SOLDIERTYPE *pSoldier;
@@ -2970,13 +2970,13 @@ void CreateZombiefromCorpse( ROTTING_CORPSE * pCorpse, UINT16 usAnimState )
MercCreateStruct.fVisible = TRUE; MercCreateStruct.fVisible = TRUE;
INT8 iNewIndex; UINT16 iNewIndex;
if ( TacticalCreateSoldier( &MercCreateStruct, (UINT8 *)&iNewIndex ) ) if ( TacticalCreateSoldier( &MercCreateStruct, &iNewIndex ) )
{ {
/* certain values have to be set afterwards - the alternative would be to edit each and every function that gets called from TacticalCreateSoldier() subsequently and /* certain values have to be set afterwards - the alternative would be to edit each and every function that gets called from TacticalCreateSoldier() subsequently and
* make an exception for zombies every time... * make an exception for zombies every time...
*/ */
SOLDIERTYPE* pNewSoldier = MercPtrs[ (UINT8)iNewIndex ]; SOLDIERTYPE* pNewSoldier = MercPtrs[ iNewIndex ];
pNewSoldier->bActionPoints = 60; pNewSoldier->bActionPoints = 60;
pNewSoldier->bInitialActionPoints = 60; pNewSoldier->bInitialActionPoints = 60;
+9 -9
View File
@@ -299,7 +299,7 @@ INT32 giSKIMessageBox=-1;
INT8 gbSelectedArmsDealerID = -1; //Contains the enum value for the currently selected arms dealer INT8 gbSelectedArmsDealerID = -1; //Contains the enum value for the currently selected arms dealer
// Flugente: while we're trading, store the ID of non-NPC dealers // Flugente: while we're trading, store the ID of non-NPC dealers
UINT8 gusIDOfCivTrader = NOBODY; UINT16 gusIDOfCivTrader = NOBODY;
//the quote that is in progress, in certain circumstances, we don't want queuing of related but different quotes //the quote that is in progress, in certain circumstances, we don't want queuing of related but different quotes
INT32 giShopKeepDialogueEventinProgress = - 1; INT32 giShopKeepDialogueEventinProgress = - 1;
@@ -360,7 +360,7 @@ BOOLEAN gfDoneBusinessThisSession = FALSE;
// this is used within SKI exclusively, to handle small faces // this is used within SKI exclusively, to handle small faces
UINT8 gubArrayOfEmployedMercs[ CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS ]; UINT8 gubArrayOfEmployedMercs[ CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS ];
UINT32 guiSmallSoldiersFace[ CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS ]; UINT32 guiSmallSoldiersFace[ CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS ];
UINT8 gubNumberMercsInArray; UINT16 gubNumberMercsInArray;
//The subutitled text for what the merc is saying //The subutitled text for what the merc is saying
CHAR16 gsShopKeeperTalkingText[ SKI_SUBTITLE_TEXT_SIZE ]; CHAR16 gsShopKeeperTalkingText[ SKI_SUBTITLE_TEXT_SIZE ];
@@ -392,7 +392,7 @@ extern OBJECTTYPE *gpItemDescObject;
extern OBJECTTYPE *gpItemDescPrevObject; extern OBJECTTYPE *gpItemDescPrevObject;
extern OBJECTTYPE *gpItemDescPrevObject; extern OBJECTTYPE *gpItemDescPrevObject;
extern void HandleShortCutExitState( void ); extern void HandleShortCutExitState( void );
extern UINT8 gubSelectSMPanelToMerc; extern UINT16 gubSelectSMPanelToMerc;
extern INT32 giItemDescAmmoButton; extern INT32 giItemDescAmmoButton;
extern BOOLEAN BltVSurfaceUsingDD( HVSURFACE hDestVSurface, HVSURFACE hSrcVSurface, UINT32 fBltFlags, INT32 iDestX, INT32 iDestY, RECT *SrcRect ); extern BOOLEAN BltVSurfaceUsingDD( HVSURFACE hDestVSurface, HVSURFACE hSrcVSurface, UINT32 fBltFlags, INT32 iDestX, INT32 iDestY, RECT *SrcRect );
@@ -875,8 +875,8 @@ BOOLEAN EnterShopKeeperInterface()
//Reinitialize the team panel to be the SM panel //Reinitialize the team panel to be the SM panel
SetCurrentInterfacePanel( SM_PANEL ); SetCurrentInterfacePanel( SM_PANEL );
SetCurrentTacticalPanelCurrentMerc( (UINT8)gusSelectedSoldier ); SetCurrentTacticalPanelCurrentMerc( gusSelectedSoldier );
SetSMPanelCurrentMerc( (UINT8)gusSelectedSoldier ); SetSMPanelCurrentMerc( gusSelectedSoldier );
// load the Main trade screen background image // load the Main trade screen background image
VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE; VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE;
@@ -1132,7 +1132,7 @@ BOOLEAN ExitShopKeeperInterface()
UnloadButtonImage( guiSKI_InvPageDownButtonImage ); UnloadButtonImage( guiSKI_InvPageDownButtonImage );
//loop through the area and delete small faces //loop through the area and delete small faces
for (UINT8 ubCnt=0; ubCnt<gubNumberMercsInArray; ++ubCnt) for (UINT16 ubCnt=0; ubCnt<gubNumberMercsInArray; ++ubCnt)
{ {
DeleteVideoObjectFromIndex( guiSmallSoldiersFace[ ubCnt ] ); DeleteVideoObjectFromIndex( guiSmallSoldiersFace[ ubCnt ] );
} }
@@ -2466,7 +2466,7 @@ void EnterShopKeeperInterfaceScreen( UINT8 ubArmsDealer )
} }
// Flugente: set up shopkeeper with a non-NPC // Flugente: set up shopkeeper with a non-NPC
void EnterShopKeeperInterfaceScreen_NonNPC( INT8 ubArmsDealerID, UINT8 aMercID ) void EnterShopKeeperInterfaceScreen_NonNPC( INT8 ubArmsDealerID, UINT16 aMercID )
{ {
gusIDOfCivTrader = aMercID; gusIDOfCivTrader = aMercID;
@@ -5206,7 +5206,7 @@ int CountNumberOfItemsInTheArmsDealersOfferArea( )
INT8 GetSlotNumberForMerc( UINT8 ubProfile ) INT8 GetSlotNumberForMerc( UINT8 ubProfile )
{ {
for( INT8 bCnt = 0; bCnt < gubNumberMercsInArray; ++bCnt ) for( UINT16 bCnt = 0; bCnt < gubNumberMercsInArray; ++bCnt )
{ {
if( gubArrayOfEmployedMercs[ bCnt ] == ubProfile ) if( gubArrayOfEmployedMercs[ bCnt ] == ubProfile )
return( bCnt ); return( bCnt );
@@ -6691,7 +6691,7 @@ void AddShopkeeperToGridNo( UINT8 ubProfile, INT32 sGridNo )
{ {
SOLDIERCREATE_STRUCT MercCreateStruct; SOLDIERCREATE_STRUCT MercCreateStruct;
INT16 sSectorX, sSectorY; INT16 sSectorX, sSectorY;
UINT8 ubID; UINT16 ubID;
GetCurrentWorldSector( &sSectorX, &sSectorY ); GetCurrentWorldSector( &sSectorX, &sSectorY );
+1 -1
View File
@@ -97,7 +97,7 @@ bool RepairmanItemQsortCompare(INVENTORY_IN_SLOT& pInvSlot1, INVENTORY_IN_SLOT&
void EnterShopKeeperInterfaceScreen( UINT8 ubArmsDealer ); void EnterShopKeeperInterfaceScreen( UINT8 ubArmsDealer );
// Flugente: set up shopkeeper with a non-NPC // Flugente: set up shopkeeper with a non-NPC
void EnterShopKeeperInterfaceScreen_NonNPC( INT8 ubArmsDealerID, UINT8 aMercID ); void EnterShopKeeperInterfaceScreen_NonNPC( INT8 ubArmsDealerID, UINT16 aMercID );
void EnableDisableShopkeeperButtons(UINT32 uiCurrentItemDescriptionScreen, int bpAction); void EnableDisableShopkeeperButtons(UINT32 uiCurrentItemDescriptionScreen, int bpAction);
+2 -2
View File
@@ -23,7 +23,7 @@ std::vector<std::string> gTemplateVector;
extern void ReadEquipmentTable( SOLDIERTYPE* pSoldier, std::string name ); extern void ReadEquipmentTable( SOLDIERTYPE* pSoldier, std::string name );
extern INT8 bSelectedInfoChar; extern INT16 bSelectedInfoChar;
// sevenfm: need this for correct calculation of traits menu position // sevenfm: need this for correct calculation of traits menu position
extern INT16 gsInterfaceLevel; extern INT16 gsInterfaceLevel;
@@ -395,7 +395,7 @@ SkillSelection::Functions( UINT32 aVal )
if ( pSoldier == NULL ) if ( pSoldier == NULL )
return; return;
UINT8 ubID = WhoIsThere2(sTraitsMenuTargetGridNo, 0 ); UINT16 ubID = WhoIsThere2(sTraitsMenuTargetGridNo, 0 );
BOOLEAN result = pSoldier->UseSkill(aVal, sTraitsMenuTargetGridNo, ubID); BOOLEAN result = pSoldier->UseSkill(aVal, sTraitsMenuTargetGridNo, ubID);
+6 -8
View File
@@ -1136,8 +1136,7 @@ INT32 FindRandomGridNoBetweenCircles( INT32 sCenterGridNo, UINT8 uInnerRadius, U
return(sGridNo); return(sGridNo);
} }
BOOLEAN InternalAddSoldierToSector(UINT16 ubID, BOOLEAN fCalculateDirection, BOOLEAN fUseAnimation, UINT16 usAnimState, UINT16 usAnimCode )
BOOLEAN InternalAddSoldierToSector( UINT8 ubID, BOOLEAN fCalculateDirection, BOOLEAN fUseAnimation, UINT16 usAnimState, UINT16 usAnimCode )
{ {
UINT8 ubDirection = 0; UINT8 ubDirection = 0;
UINT8 ubCalculatedDirection = 0; UINT8 ubCalculatedDirection = 0;
@@ -1334,20 +1333,19 @@ BOOLEAN InternalAddSoldierToSector( UINT8 ubID, BOOLEAN fCalculateDirection, BOO
return( FALSE ); return( FALSE );
} }
BOOLEAN AddSoldierToSector( UINT16 ubID )
BOOLEAN AddSoldierToSector( UINT8 ubID )
{ {
DebugMsg(TOPIC_JA2,DBG_LEVEL_3,String("AddSoldierToSector")); DebugMsg(TOPIC_JA2,DBG_LEVEL_3,String("AddSoldierToSector"));
return( InternalAddSoldierToSector( ubID, TRUE, FALSE, 0 , 0) ); return( InternalAddSoldierToSector( ubID, TRUE, FALSE, 0 , 0) );
} }
BOOLEAN AddSoldierToSectorNoCalculateDirection( UINT8 ubID ) BOOLEAN AddSoldierToSectorNoCalculateDirection( UINT16 ubID )
{ {
DebugMsg(TOPIC_JA2,DBG_LEVEL_3,String("AddSoldierToSectorNoCalculateDirection")); DebugMsg(TOPIC_JA2,DBG_LEVEL_3,String("AddSoldierToSectorNoCalculateDirection"));
return( InternalAddSoldierToSector( ubID, FALSE, FALSE, 0, 0 ) ); return( InternalAddSoldierToSector( ubID, FALSE, FALSE, 0, 0 ) );
} }
BOOLEAN AddSoldierToSectorNoCalculateDirectionUseAnimation( UINT8 ubID, UINT16 usAnimState, UINT16 usAnimCode ) BOOLEAN AddSoldierToSectorNoCalculateDirectionUseAnimation( UINT16 ubID, UINT16 usAnimState, UINT16 usAnimCode )
{ {
DebugMsg(TOPIC_JA2,DBG_LEVEL_3,String("AddSoldierToSectorNoCalculateDirectionUseAnimation")); DebugMsg(TOPIC_JA2,DBG_LEVEL_3,String("AddSoldierToSectorNoCalculateDirectionUseAnimation"));
return( InternalAddSoldierToSector( ubID, FALSE, TRUE, usAnimState, usAnimCode ) ); return( InternalAddSoldierToSector( ubID, FALSE, TRUE, usAnimState, usAnimCode ) );
@@ -1777,8 +1775,8 @@ void AddSoldierToSectorGridNo( SOLDIERTYPE *pSoldier, INT32 sGridNo, UINT8 ubDir
BOOLEAN IsMercOnTeam(UINT8 ubMercID, BOOLEAN aAlreadyInCountry, BOOLEAN aAlive) BOOLEAN IsMercOnTeam(UINT8 ubMercID, BOOLEAN aAlreadyInCountry, BOOLEAN aAlive)
{ {
UINT16 cnt; UINT16 cnt;
UINT8 ubLastTeamID; UINT16 ubLastTeamID;
SOLDIERTYPE *pTeamSoldier; SOLDIERTYPE *pTeamSoldier;
cnt = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; cnt = gTacticalStatus.Team[ OUR_TEAM ].bFirstID;
ubLastTeamID = gTacticalStatus.Team[ OUR_TEAM ].bLastID; ubLastTeamID = gTacticalStatus.Team[ OUR_TEAM ].bLastID;
+3 -3
View File
@@ -30,11 +30,11 @@ INT32 FindRandomGridNoBetweenCircles( INT32 sCenterGridNo, UINT8 uInnerRadius, U
// Adds a soldier ( already created in mercptrs[] array )! // Adds a soldier ( already created in mercptrs[] array )!
// Finds a good placement based on data in the loaded sector and if they are enemy's or not, etc... // Finds a good placement based on data in the loaded sector and if they are enemy's or not, etc...
BOOLEAN AddSoldierToSector( UINT8 ubID ); BOOLEAN AddSoldierToSector( UINT16 ubID );
BOOLEAN AddSoldierToSectorNoCalculateDirection( UINT8 ubID ); BOOLEAN AddSoldierToSectorNoCalculateDirection( UINT16 ubID );
BOOLEAN AddSoldierToSectorNoCalculateDirectionUseAnimation( UINT8 ubID, UINT16 usAnimState, UINT16 usAnimCode ); BOOLEAN AddSoldierToSectorNoCalculateDirectionUseAnimation( UINT16 ubID, UINT16 usAnimState, UINT16 usAnimCode );
// IsMercOnTeam() checks to see if the passed in Merc Profile ID is currently on the player's team // IsMercOnTeam() checks to see if the passed in Merc Profile ID is currently on the player's team
BOOLEAN IsMercOnTeam( UINT8 ubMercID, BOOLEAN aAlreadyInCountry, BOOLEAN aAlive ); BOOLEAN IsMercOnTeam( UINT8 ubMercID, BOOLEAN aAlreadyInCountry, BOOLEAN aAlive );
+18 -19
View File
@@ -107,10 +107,10 @@ BOOLEAN HandleUnjamAnimation( SOLDIERTYPE *pSoldier );
extern void HandleSystemNewAISituation( SOLDIERTYPE *pSoldier, BOOLEAN fResetABC ); extern void HandleSystemNewAISituation( SOLDIERTYPE *pSoldier, BOOLEAN fResetABC );
extern void PlaySoldierFootstepSound( SOLDIERTYPE *pSoldier ); extern void PlaySoldierFootstepSound( SOLDIERTYPE *pSoldier );
extern UINT8 NumCapableEnemyInSector( ); extern UINT16 NumCapableEnemyInSector( );
extern BOOLEAN gfKillingGuysForLosingBattle; extern BOOLEAN gfKillingGuysForLosingBattle;
extern UINT8 gubInterruptProvoker; extern UINT16 gubInterruptProvoker;
extern UINT16 PickSoldierReadyAnimation( SOLDIERTYPE *pSoldier, BOOLEAN fEndReady, BOOLEAN fHipStance ); extern UINT16 PickSoldierReadyAnimation( SOLDIERTYPE *pSoldier, BOOLEAN fEndReady, BOOLEAN fHipStance );
@@ -1167,7 +1167,7 @@ BOOLEAN AdjustToNextAnimationFrame( SOLDIERTYPE *pSoldier )
{ {
if (pSoldier->bTeam == 0 || (pSoldier->bTeam == 1 && is_server)) if (pSoldier->bTeam == 0 || (pSoldier->bTeam == 1 && is_server))
{ {
send_grenade( pSoldier->pTempObject , pSoldier->pThrowParams->dLifeSpan, pSoldier->pThrowParams->dX, pSoldier->pThrowParams->dY, pSoldier->pThrowParams->dZ, pSoldier->pThrowParams->dForceX, pSoldier->pThrowParams->dForceY, pSoldier->pThrowParams->dForceZ, pSoldier->sTargetGridNo, pSoldier->ubID, pSoldier->pThrowParams->ubActionCode, pSoldier->pThrowParams->uiActionData, iRealObjectID , true); send_grenade( pSoldier->pTempObject, pSoldier->pThrowParams->dLifeSpan, pSoldier->pThrowParams->dX, pSoldier->pThrowParams->dY, pSoldier->pThrowParams->dZ, pSoldier->pThrowParams->dForceX, pSoldier->pThrowParams->dForceY, pSoldier->pThrowParams->dForceZ, pSoldier->sTargetGridNo, pSoldier->ubID, pSoldier->pThrowParams->ubActionCode, pSoldier->pThrowParams->uiActionData, iRealObjectID, true);
} }
} }
@@ -1789,7 +1789,7 @@ BOOLEAN AdjustToNextAnimationFrame( SOLDIERTYPE *pSoldier )
pSoldier->uiTimeOfLastRandomAction = 0; pSoldier->uiTimeOfLastRandomAction = 0;
// Don't play these generally if this is the guy selected by player, as this one is "awaiting orders" // Don't play these generally if this is the guy selected by player, as this one is "awaiting orders"
if (pSoldier->ubID != (UINT8)gusSelectedSoldier || Random( 10 ) == 0 ) if (pSoldier->ubID != gusSelectedSoldier || Random( 10 ) == 0 )
{ {
// Don't do any in water! // Don't do any in water!
// Also don't play if we are in the middle of something // Also don't play if we are in the middle of something
@@ -3130,7 +3130,7 @@ BOOLEAN AdjustToNextAnimationFrame( SOLDIERTYPE *pSoldier )
// Reload robot.... // Reload robot....
{ {
UINT8 ubPerson; UINT16 ubPerson;
SOLDIERTYPE *pRobot; SOLDIERTYPE *pRobot;
// Get pointer... // Get pointer...
@@ -3307,7 +3307,7 @@ BOOLEAN AdjustToNextAnimationFrame( SOLDIERTYPE *pSoldier )
// REFUELING A VEHICLE // REFUELING A VEHICLE
// THE GAS_CAN IS IN THE MERCS MAIN HAND AT THIS TIME // THE GAS_CAN IS IN THE MERCS MAIN HAND AT THIS TIME
{ {
UINT8 ubPerson; UINT16 ubPerson;
SOLDIERTYPE *pVehicle; SOLDIERTYPE *pVehicle;
// Get pointer to vehicle... // Get pointer to vehicle...
@@ -3559,13 +3559,13 @@ BOOLEAN ShouldMercSayHappyWithGunQuote( SOLDIERTYPE *pSoldier )
void SayBuddyWitnessedQuoteFromKill( SOLDIERTYPE *pKillerSoldier, INT32 sGridNo, INT8 bLevel ) void SayBuddyWitnessedQuoteFromKill( SOLDIERTYPE *pKillerSoldier, INT32 sGridNo, INT8 bLevel )
{ {
// WDS - make number of mercenaries, etc. be configurable // WDS - make number of mercenaries, etc. be configurable
std::vector<UINT8> ubMercsInSector (CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS, 0); std::vector<UINT16> ubMercsInSector (CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS, 0);
// UINT8 ubMercsInSector[ CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS ] = { 0 }; // UINT8 ubMercsInSector[ CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS ] = { 0 };
std::vector<INT8> bBuddyIndex (CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS, -1); std::vector<INT8> bBuddyIndex (CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS, -1);
// INT8 bBuddyIndex[ CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS ] = { -1 }; // INT8 bBuddyIndex[ CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS ] = { -1 };
INT8 bTempBuddyIndex; INT8 bTempBuddyIndex;
UINT8 ubNumMercs = 0; UINT16 ubNumMercs = 0;
UINT8 ubChosenMerc; UINT16 ubChosenMerc;
SOLDIERTYPE *pTeamSoldier; SOLDIERTYPE *pTeamSoldier;
INT32 cnt; INT32 cnt;
UINT16 usQuoteNum; UINT16 usQuoteNum;
@@ -3651,7 +3651,7 @@ void SayBuddyWitnessedQuoteFromKill( SOLDIERTYPE *pKillerSoldier, INT32 sGridNo,
} }
// OK, a good candidate... // OK, a good candidate...
ubMercsInSector[ ubNumMercs ] = (UINT8)cnt; ubMercsInSector[ ubNumMercs ] = (UINT16)cnt;
bBuddyIndex[ ubNumMercs ] = bTempBuddyIndex; bBuddyIndex[ ubNumMercs ] = bTempBuddyIndex;
++ubNumMercs; ++ubNumMercs;
} }
@@ -3661,7 +3661,7 @@ void SayBuddyWitnessedQuoteFromKill( SOLDIERTYPE *pKillerSoldier, INT32 sGridNo,
// If we are > 0 // If we are > 0
if ( ubNumMercs > 0 ) if ( ubNumMercs > 0 )
{ {
ubChosenMerc = (UINT8)Random( ubNumMercs ); ubChosenMerc = (UINT16)Random( ubNumMercs );
switch( bBuddyIndex[ ubChosenMerc ] ) switch( bBuddyIndex[ ubChosenMerc ] )
{ {
@@ -3751,10 +3751,9 @@ void HandleKilledQuote( SOLDIERTYPE *pKilledSoldier, SOLDIERTYPE *pKillerSoldier
SOLDIERTYPE *pTeamSoldier; SOLDIERTYPE *pTeamSoldier;
INT32 cnt; INT32 cnt;
// WDS - make number of mercenaries, etc. be configurable // WDS - make number of mercenaries, etc. be configurable
std::vector<UINT8> ubMercsInSector (CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS, 0); std::vector<UINT16> ubMercsInSector (CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS, 0);
// UINT8 ubMercsInSector[ CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS ] = { 0 }; UINT16 ubNumMercs = 0;
UINT8 ubNumMercs = 0; UINT16 ubChosenMerc;
UINT8 ubChosenMerc;
BOOLEAN fDoSomeoneElse = FALSE; BOOLEAN fDoSomeoneElse = FALSE;
gfLastMercTalkedAboutKillingID = pKilledSoldier->ubID; gfLastMercTalkedAboutKillingID = pKilledSoldier->ubID;
@@ -3822,7 +3821,7 @@ void HandleKilledQuote( SOLDIERTYPE *pKilledSoldier, SOLDIERTYPE *pKillerSoldier
// Can we see location? // Can we see location?
if ( SoldierTo3DLocationLineOfSightTest( pTeamSoldier, sGridNo, bLevel, 3, TRUE, CALC_FROM_ALL_DIRS ) ) if ( SoldierTo3DLocationLineOfSightTest( pTeamSoldier, sGridNo, bLevel, 3, TRUE, CALC_FROM_ALL_DIRS ) )
{ {
ubMercsInSector[ ubNumMercs ] = (UINT8)cnt; ubMercsInSector[ ubNumMercs ] = (UINT16)cnt;
ubNumMercs++; ubNumMercs++;
} }
} }
@@ -3832,7 +3831,7 @@ void HandleKilledQuote( SOLDIERTYPE *pKilledSoldier, SOLDIERTYPE *pKillerSoldier
// Did we find anybody? // Did we find anybody?
if ( ubNumMercs > 0 ) if ( ubNumMercs > 0 )
{ {
ubChosenMerc = (UINT8)Random( ubNumMercs ); ubChosenMerc = (UINT16)Random( ubNumMercs );
// We have a random chance of not saying our we killed a guy quote // We have a random chance of not saying our we killed a guy quote
if ( Random( 100 ) < 50 ) if ( Random( 100 ) < 50 )
@@ -4000,8 +3999,8 @@ BOOLEAN HandleSoldierDeath( SOLDIERTYPE *pSoldier , BOOLEAN *pfMadeCorpse )
{ {
////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////
// SANDRO - some changes here // SANDRO - some changes here
UINT8 ubAttacker = pSoldier->ubAttackerID; UINT16 ubAttacker = pSoldier->ubAttackerID;
UINT8 ubAssister = pSoldier->ubPreviousAttackerID; UINT16 ubAssister = pSoldier->ubPreviousAttackerID;
// If attacker is nobody, and we died, then set the last attacker(if exists) as our killer // If attacker is nobody, and we died, then set the last attacker(if exists) as our killer
if ( ubAttacker == NOBODY ) if ( ubAttacker == NOBODY )
{ {
+44 -38
View File
@@ -157,7 +157,7 @@ extern BOOLEAN gfShiftBombPlant;
#include "connect.h" #include "connect.h"
extern void TeleportSelectedSoldier( void ); extern void TeleportSelectedSoldier( void );
extern BOOLEAN AddSoldierToSectorNoCalculateDirectionUseAnimation( UINT8 ubID, UINT16 usAnimState, UINT16 usAnimCode ); extern BOOLEAN AddSoldierToSectorNoCalculateDirectionUseAnimation( UINT16 ubID, UINT16 usAnimState, UINT16 usAnimCode );
// Flugente: external sector data // Flugente: external sector data
extern SECTOR_EXT_DATA SectorExternalData[256][4]; extern SECTOR_EXT_DATA SectorExternalData[256][4];
@@ -695,7 +695,7 @@ SOLDIERTYPE& SOLDIERTYPE::operator=(const OLDSOLDIERTYPE_101& src)
this->sLastTwoLocations[1] = src.sLastTwoLocations[1]; this->sLastTwoLocations[1] = src.sLastTwoLocations[1];
this->ubID = src.ubID; this->ubID = src.ubID;
this->bReserved1 = src.bReserved1; //this->bReserved1 = src.bReserved1;
this->ubBodyType = src.ubBodyType; this->ubBodyType = src.ubBodyType;
this->bActionPoints = src.bActionPoints; this->bActionPoints = src.bActionPoints;
@@ -1730,7 +1730,7 @@ void AdjustForFastTurnAnimation( SOLDIERTYPE *pSoldier );
UINT16 SelectFireAnimation( SOLDIERTYPE *pSoldier, UINT8 ubHeight ); UINT16 SelectFireAnimation( SOLDIERTYPE *pSoldier, UINT8 ubHeight );
void SelectFallAnimation( SOLDIERTYPE *pSoldier ); void SelectFallAnimation( SOLDIERTYPE *pSoldier );
BOOLEAN FullStructAlone( INT32 sGridNo, UINT8 ubRadius ); BOOLEAN FullStructAlone( INT32 sGridNo, UINT8 ubRadius );
void SoldierGotHitGunFire( SOLDIERTYPE *pSoldier, UINT16 usWeaponIndex, INT16 sDamage, UINT16 bDirection, UINT16 sRange, UINT8 ubAttackerID, UINT8 ubSpecial, UINT8 ubHitLocation ); void SoldierGotHitGunFire( SOLDIERTYPE *pSoldier, UINT16 usWeaponIndex, INT16 sDamage, UINT16 bDirection, UINT16 sRange, UINT16 ubAttackerID, UINT8 ubSpecial, UINT8 ubHitLocation );
void SoldierGotHitBlade( SOLDIERTYPE *pSoldier, UINT16 usWeaponIndex, INT16 sDamage, UINT16 bDirection, UINT16 sRange, UINT8 ubAttackerID, UINT8 ubSpecial, UINT8 ubHitLocation ); void SoldierGotHitBlade( SOLDIERTYPE *pSoldier, UINT16 usWeaponIndex, INT16 sDamage, UINT16 bDirection, UINT16 sRange, UINT8 ubAttackerID, UINT8 ubSpecial, UINT8 ubHitLocation );
void SoldierGotHitPunch( SOLDIERTYPE *pSoldier, UINT16 usWeaponIndex, INT16 sDamage, UINT16 bDirection, UINT16 sRange, UINT8 ubAttackerID, UINT8 ubSpecial, UINT8 ubHitLocation ); void SoldierGotHitPunch( SOLDIERTYPE *pSoldier, UINT16 usWeaponIndex, INT16 sDamage, UINT16 bDirection, UINT16 sRange, UINT8 ubAttackerID, UINT8 ubSpecial, UINT8 ubHitLocation );
void SoldierGotHitExplosion( SOLDIERTYPE *pSoldier, UINT16 usWeaponIndex, INT16 sDamage, UINT16 bDirection, UINT16 sRange, UINT8 ubAttackerID, UINT8 ubSpecial, UINT8 ubHitLocation ); void SoldierGotHitExplosion( SOLDIERTYPE *pSoldier, UINT16 usWeaponIndex, INT16 sDamage, UINT16 bDirection, UINT16 sRange, UINT8 ubAttackerID, UINT8 ubSpecial, UINT8 ubHitLocation );
@@ -5870,9 +5870,9 @@ UINT16 PickSoldierReadyAnimation( SOLDIERTYPE *pSoldier, BOOLEAN fEndReady, BOOL
// extern SOLDIERTYPE * FreeUpAttackerGivenTarget( UINT8 ubID, UINT8 ubTargetID ); // extern SOLDIERTYPE * FreeUpAttackerGivenTarget( UINT8 ubID, UINT8 ubTargetID );
// extern SOLDIERTYPE * ReduceAttackBusyGivenTarget( UINT8 ubID, UINT8 ubTargetID ); // extern SOLDIERTYPE * ReduceAttackBusyGivenTarget( UINT8 ubID, UINT8 ubTargetID );
#pragma optimize("", off)
// ATE: THIS FUNCTION IS USED FOR ALL SOLDIER TAKE DAMAGE FUNCTIONS! // ATE: THIS FUNCTION IS USED FOR ALL SOLDIER TAKE DAMAGE FUNCTIONS!
void SOLDIERTYPE::EVENT_SoldierGotHit( UINT16 usWeaponIndex, INT16 sDamage, INT16 sBreathLoss, UINT16 bDirection, UINT16 sRange, UINT8 ubAttackerID, UINT8 ubSpecial, UINT8 ubHitLocation, INT16 sSubsequent, INT32 sLocationGrid ) void SOLDIERTYPE::EVENT_SoldierGotHit( UINT16 usWeaponIndex, INT16 sDamage, INT16 sBreathLoss, UINT16 bDirection, UINT16 sRange, UINT16 ubAttackerID, UINT8 ubSpecial, UINT8 ubHitLocation, INT16 sSubsequent, INT32 sLocationGrid )
{ {
UINT8 ubCombinedLoss, ubVolume, ubReason; UINT8 ubCombinedLoss, ubVolume, ubReason;
// SOLDIERTYPE * pNewSoldier; // SOLDIERTYPE * pNewSoldier;
@@ -6603,12 +6603,18 @@ void SOLDIERTYPE::EVENT_SoldierGotHit( UINT16 usWeaponIndex, INT16 sDamage, INT1
if ( Item[usWeaponIndex].usItemClass & IC_GUN ) if ( Item[usWeaponIndex].usItemClass & IC_GUN )
{ {
PossiblyStartEnemyTaunt( this, TAUNT_GOT_HIT_GUNFIRE, ubAttackerID ); PossiblyStartEnemyTaunt( this, TAUNT_GOT_HIT_GUNFIRE, ubAttackerID );
PossiblyStartEnemyTaunt( MercPtrs[ubAttackerID], TAUNT_HIT_GUNFIRE, this->ubID ); if (ubAttackerID != NOBODY)
{
PossiblyStartEnemyTaunt(MercPtrs[ubAttackerID], TAUNT_HIT_GUNFIRE, this->ubID);
}
} }
else else
{ {
PossiblyStartEnemyTaunt( this, TAUNT_GOT_HIT_THROWING_KNIFE, ubAttackerID ); PossiblyStartEnemyTaunt( this, TAUNT_GOT_HIT_THROWING_KNIFE, ubAttackerID );
PossiblyStartEnemyTaunt( MercPtrs[ubAttackerID], TAUNT_HIT_THROWING_KNIFE, this->ubID ); if (ubAttackerID != NOBODY)
{
PossiblyStartEnemyTaunt(MercPtrs[ubAttackerID], TAUNT_HIT_THROWING_KNIFE, this->ubID);
}
} }
} }
if ( Item[usWeaponIndex].usItemClass & IC_BLADE ) if ( Item[usWeaponIndex].usItemClass & IC_BLADE )
@@ -6637,7 +6643,7 @@ void SOLDIERTYPE::EVENT_SoldierGotHit( UINT16 usWeaponIndex, INT16 sDamage, INT1
// anv: taunts are called from UseHandToHand() // anv: taunts are called from UseHandToHand()
} }
} }
#pragma optimize("", on)
UINT8 CalcScreamVolume( SOLDIERTYPE * pSoldier, UINT8 ubCombinedLoss ) UINT8 CalcScreamVolume( SOLDIERTYPE * pSoldier, UINT8 ubCombinedLoss )
{ {
// NB explosions are so loud they should drown out screams // NB explosions are so loud they should drown out screams
@@ -6719,7 +6725,7 @@ void DoGenericHit( SOLDIERTYPE *pSoldier, UINT8 ubSpecial, INT16 bDirection )
} }
void SoldierGotHitGunFire( SOLDIERTYPE *pSoldier, UINT16 usWeaponIndex, INT16 sDamage, UINT16 bDirection, UINT16 sRange, UINT8 ubAttackerID, UINT8 ubSpecial, UINT8 ubHitLocation ) void SoldierGotHitGunFire( SOLDIERTYPE *pSoldier, UINT16 usWeaponIndex, INT16 sDamage, UINT16 bDirection, UINT16 sRange, UINT16 ubAttackerID, UINT8 ubSpecial, UINT8 ubHitLocation )
{ {
INT32 usNewGridNo; INT32 usNewGridNo;
BOOLEAN fBlownAway = FALSE; BOOLEAN fBlownAway = FALSE;
@@ -9740,7 +9746,7 @@ void SOLDIERTYPE::BeginSoldierClimbUpRoof(void)
} }
INT8 bNewDirection; INT8 bNewDirection;
UINT8 ubWhoIsThere; UINT16 ubWhoIsThere;
if (FindHeigherLevel(this, this->sGridNo, this->ubDirection, &bNewDirection) && (this->pathing.bLevel == 0)) if (FindHeigherLevel(this, this->sGridNo, this->ubDirection, &bNewDirection) && (this->pathing.bLevel == 0))
{ {
@@ -9914,7 +9920,7 @@ void SOLDIERTYPE::BeginSoldierClimbWindow( void )
void SOLDIERTYPE::BeginSoldierClimbWall( void ) void SOLDIERTYPE::BeginSoldierClimbWall( void )
{ {
INT8 bNewDirection; INT8 bNewDirection;
UINT8 ubWhoIsThere; UINT16 ubWhoIsThere;
if ( FindWallJumpDirection( this, this->sGridNo, this->ubDirection, &bNewDirection ) && (this->pathing.bLevel == 0) ) if ( FindWallJumpDirection( this, this->sGridNo, this->ubDirection, &bNewDirection ) && (this->pathing.bLevel == 0) )
{ {
@@ -9951,7 +9957,7 @@ void SOLDIERTYPE::BeginSoldierClimbWall( void )
void SOLDIERTYPE::BeginSoldierClimbWallUp( void ) void SOLDIERTYPE::BeginSoldierClimbWallUp( void )
{ {
INT8 bNewDirection; INT8 bNewDirection;
UINT8 ubWhoIsThere; UINT16 ubWhoIsThere;
if ( FindLowerLevelWall( this, this->sGridNo, this->ubDirection, &bNewDirection ) && (this->pathing.bLevel > 0) ) if ( FindLowerLevelWall( this, this->sGridNo, this->ubDirection, &bNewDirection ) && (this->pathing.bLevel > 0) )
{ {
@@ -10249,7 +10255,7 @@ void HandleTakeDamageDeath( SOLDIERTYPE *pSoldier, UINT8 bOldLife, UINT8 ubReaso
} }
UINT8 SOLDIERTYPE::SoldierTakeDamage( INT8 bHeight, INT16 sLifeDeduct, INT16 sBreathLoss, UINT8 ubReason, UINT8 ubAttacker, INT32 sSourceGrid, INT16 sSubsequent, BOOLEAN fShowDamage ) UINT8 SOLDIERTYPE::SoldierTakeDamage( INT8 bHeight, INT16 sLifeDeduct, INT16 sBreathLoss, UINT8 ubReason, UINT16 ubAttacker, INT32 sSourceGrid, INT16 sSubsequent, BOOLEAN fShowDamage )
{ {
#ifdef JA2BETAVERSION #ifdef JA2BETAVERSION
if ( is_networked ) { if ( is_networked ) {
@@ -11573,7 +11579,7 @@ BOOLEAN SOLDIERTYPE::CheckSoldierHitRoof( void )
void SOLDIERTYPE::BeginSoldierClimbDownRoof(void) void SOLDIERTYPE::BeginSoldierClimbDownRoof(void)
{ {
INT8 bNewDirection; INT8 bNewDirection;
UINT8 ubWhoIsThere; UINT16 ubWhoIsThere;
if (FindLowerLevel(this, this->sGridNo, this->ubDirection, &bNewDirection) && (this->pathing.bLevel > 0)) if (FindLowerLevel(this, this->sGridNo, this->ubDirection, &bNewDirection) && (this->pathing.bLevel > 0))
{ {
@@ -12835,7 +12841,7 @@ void SOLDIERTYPE::EVENT_SoldierBeginBladeAttack( INT32 sGridNo, UINT8 ubDirectio
if ( this->flags.uiStatusFlags & SOLDIER_MONSTER ) if ( this->flags.uiStatusFlags & SOLDIER_MONSTER )
{ {
// Is there an unconscious guy at gridno...... // Is there an unconscious guy at gridno......
UINT8 ubTargetID = WhoIsThere2( sGridNo, this->bTargetLevel ); UINT16 ubTargetID = WhoIsThere2( sGridNo, this->bTargetLevel );
if ( ubTargetID != NOBODY && ((MercPtrs[ubTargetID]->stats.bLife < OKLIFE && MercPtrs[ubTargetID]->stats.bLife > 0) || (MercPtrs[ubTargetID]->bBreath < OKBREATH && MercPtrs[ubTargetID]->bCollapsed)) ) if ( ubTargetID != NOBODY && ((MercPtrs[ubTargetID]->stats.bLife < OKLIFE && MercPtrs[ubTargetID]->stats.bLife > 0) || (MercPtrs[ubTargetID]->bBreath < OKBREATH && MercPtrs[ubTargetID]->bCollapsed)) )
{ {
@@ -13573,7 +13579,7 @@ void SOLDIERTYPE::EVENT_SoldierBeginFirstAid( INT32 sGridNo, UINT8 ubDirection )
this->sTargetGridNo = sGridNo; this->sTargetGridNo = sGridNo;
// SET PARTNER ID // SET PARTNER ID
this->ubServicePartner = (UINT8)usSoldierIndex; this->ubServicePartner = usSoldierIndex;
// SET PARTNER'S COUNT REFERENCE // SET PARTNER'S COUNT REFERENCE
pTSoldier->ubServiceCount++; pTSoldier->ubServiceCount++;
@@ -15104,7 +15110,7 @@ BOOLEAN SOLDIERTYPE::IsWeaponMounted( void )
if ( !IsLocationSittable( nextGridNoinSight, 0 ) ) if ( !IsLocationSittable( nextGridNoinSight, 0 ) )
{ {
// resting our gun on people is allowed sometimes // resting our gun on people is allowed sometimes
UINT usPersonID = WhoIsThere2( nextGridNoinSight, this->pathing.bLevel ); UINT16 usPersonID = WhoIsThere2( nextGridNoinSight, this->pathing.bLevel );
if ( usPersonID == NOBODY ) if ( usPersonID == NOBODY )
applybipod = TRUE; applybipod = TRUE;
else else
@@ -15178,7 +15184,7 @@ BOOLEAN SOLDIERTYPE::IsWeaponMounted( void )
if ( !IsLocationSittable( nextGridNoinSight, 0 ) ) if ( !IsLocationSittable( nextGridNoinSight, 0 ) )
{ {
// resting our gun on people is allowed sometimes // resting our gun on people is allowed sometimes
UINT usPersonID = WhoIsThere2( nextGridNoinSight, this->pathing.bLevel ); UINT16 usPersonID = WhoIsThere2( nextGridNoinSight, this->pathing.bLevel );
if ( usPersonID == NOBODY ) if ( usPersonID == NOBODY )
applybipod = TRUE; applybipod = TRUE;
else else
@@ -15480,7 +15486,7 @@ void SOLDIERTYPE::InventoryExplosion( void )
} }
// Flugente: do we currently provide ammo (pAmmoSlot) for someone else's (pubId) gun (pGunSlot)? // Flugente: do we currently provide ammo (pAmmoSlot) for someone else's (pubId) gun (pGunSlot)?
BOOLEAN SOLDIERTYPE::IsFeedingExternal( UINT8* pubId1, UINT16* pGunSlot1, UINT16* pAmmoSlot1, UINT8* pubId2, UINT16* pGunSlot2, UINT16* pAmmoSlot2 ) BOOLEAN SOLDIERTYPE::IsFeedingExternal( UINT16 * pubId1, UINT16* pGunSlot1, UINT16* pAmmoSlot1, UINT16 * pubId2, UINT16* pGunSlot2, UINT16* pAmmoSlot2 )
{ {
// make sure we have to check this... // make sure we have to check this...
if ( gGameExternalOptions.ubExternalFeeding == 0 ) if ( gGameExternalOptions.ubExternalFeeding == 0 )
@@ -16166,7 +16172,7 @@ BOOLEAN SOLDIERTYPE::EquipmentTooGood( BOOLEAN fCloselook )
// are we in covert mode? we need to have the correct flag set, and not wear anything suspicious, or behave in a suspicious way // are we in covert mode? we need to have the correct flag set, and not wear anything suspicious, or behave in a suspicious way
BOOLEAN SOLDIERTYPE::SeemsLegit( UINT8 ubObserverID ) BOOLEAN SOLDIERTYPE::SeemsLegit( UINT16 ubObserverID )
{ {
SOLDIERTYPE* pSoldier = MercPtrs[ubObserverID]; SOLDIERTYPE* pSoldier = MercPtrs[ubObserverID];
@@ -16454,7 +16460,7 @@ BOOLEAN SOLDIERTYPE::SeemsLegit( UINT8 ubObserverID )
} }
// do we recognize someone else as a combatant? // do we recognize someone else as a combatant?
BOOLEAN SOLDIERTYPE::RecognizeAsCombatant( UINT8 ubTargetID ) BOOLEAN SOLDIERTYPE::RecognizeAsCombatant( UINT16 ubTargetID )
{ {
// this will only work with the new trait system // this will only work with the new trait system
if ( !gGameOptions.fNewTraitSystem ) if ( !gGameOptions.fNewTraitSystem )
@@ -16550,7 +16556,7 @@ void SOLDIERTYPE::LooseDisguise( void )
// rehandle sight for everybody // rehandle sight for everybody
SOLDIERTYPE* pSoldier; SOLDIERTYPE* pSoldier;
UINT8 iLoop = gTacticalStatus.Team[OUR_TEAM].bFirstID; UINT16 iLoop = gTacticalStatus.Team[OUR_TEAM].bFirstID;
for ( pSoldier = MercPtrs[iLoop]; iLoop <= gTacticalStatus.Team[CIV_TEAM].bLastID; ++iLoop, ++pSoldier ) for ( pSoldier = MercPtrs[iLoop]; iLoop <= gTacticalStatus.Team[CIV_TEAM].bLastID; ++iLoop, ++pSoldier )
{ {
if ( pSoldier->bActive && pSoldier->bInSector && pSoldier->stats.bLife > 0 ) if ( pSoldier->bActive && pSoldier->bInSector && pSoldier->stats.bLife > 0 )
@@ -16793,7 +16799,7 @@ BOOLEAN SOLDIERTYPE::FreePrisoner( )
// we can only free people we are facing // we can only free people we are facing
INT32 nextGridNoinSight = NewGridNo( this->sGridNo, DirectionInc( this->ubDirection ) ); INT32 nextGridNoinSight = NewGridNo( this->sGridNo, DirectionInc( this->ubDirection ) );
UINT8 target = WhoIsThere2( nextGridNoinSight, this->pathing.bLevel ); UINT16 target = WhoIsThere2( nextGridNoinSight, this->pathing.bLevel );
// is there somebody? // is there somebody?
if ( target != NOBODY ) if ( target != NOBODY )
@@ -19050,7 +19056,7 @@ BOOLEAN SOLDIERTYPE::OrderArtilleryStrike( UINT32 usSectorNr, INT32 sTargetGridN
// as of 2013-09-25, I say it is no longer necessary to fire a signal shell first. The player can fire a signal shell (by mortar or hand) manually to mark one or more targets if he wants // as of 2013-09-25, I say it is no longer necessary to fire a signal shell first. The player can fire a signal shell (by mortar or hand) manually to mark one or more targets if he wants
// if he does not do so, active vox operators will be targetted. Who knows, the vox operator might be doing a heroic last stand for all we know... // if he does not do so, active vox operators will be targetted. Who knows, the vox operator might be doing a heroic last stand for all we know...
UINT8 radiooperatorID = 0; UINT16 radiooperatorID = 0;
//BOOLEAN signalshellfired = FALSE; //BOOLEAN signalshellfired = FALSE;
UINT8 mortaritemcnt = 0; UINT8 mortaritemcnt = 0;
UINT16 mortararray[5]; UINT16 mortararray[5];
@@ -19585,7 +19591,7 @@ BOOLEAN SOLDIERTYPE::AIDoctorFriend( )
// we can only free people we are facing // we can only free people we are facing
INT32 nextGridNoinSight = NewGridNo( this->sGridNo, DirectionInc( this->ubDirection ) ); INT32 nextGridNoinSight = NewGridNo( this->sGridNo, DirectionInc( this->ubDirection ) );
UINT8 target = WhoIsThere2( nextGridNoinSight, this->pathing.bLevel ); UINT16 target = WhoIsThere2( nextGridNoinSight, this->pathing.bLevel );
// is there somebody? // is there somebody?
if ( target != NOBODY ) if ( target != NOBODY )
@@ -22573,7 +22579,7 @@ void SOLDIERTYPE::EVENT_SoldierBeginCutFence( INT32 sGridNo, UINT8 ubDirection )
void SOLDIERTYPE::EVENT_SoldierBeginRepair( INT32 sGridNo, UINT8 ubDirection ) void SOLDIERTYPE::EVENT_SoldierBeginRepair( INT32 sGridNo, UINT8 ubDirection )
{ {
INT8 bRepairItem; INT8 bRepairItem;
UINT8 ubID; UINT16 ubID;
// Make sure we have a structure here.... // Make sure we have a structure here....
bRepairItem = IsRepairableStructAtGridNo( sGridNo, &ubID ); bRepairItem = IsRepairableStructAtGridNo( sGridNo, &ubID );
@@ -22618,7 +22624,7 @@ void SOLDIERTYPE::EVENT_SoldierBeginRepair( INT32 sGridNo, UINT8 ubDirection )
void SOLDIERTYPE::EVENT_SoldierBeginRefuel( INT32 sGridNo, UINT8 ubDirection ) void SOLDIERTYPE::EVENT_SoldierBeginRefuel( INT32 sGridNo, UINT8 ubDirection )
{ {
INT8 bRefuelItem; INT8 bRefuelItem;
UINT8 ubID; UINT16 ubID;
// Make sure we have a structure here.... // Make sure we have a structure here....
bRefuelItem = IsRefuelableStructAtGridNo( sGridNo, &ubID ); bRefuelItem = IsRefuelableStructAtGridNo( sGridNo, &ubID );
@@ -22792,7 +22798,7 @@ void SOLDIERTYPE::EVENT_SoldierHandcuffPerson( INT32 sGridNo, UINT8 ubDirection
if ( !gGameExternalOptions.fAllowPrisonerSystem ) if ( !gGameExternalOptions.fAllowPrisonerSystem )
return; return;
UINT8 ubPerson = WhoIsThere2( sGridNo, this->pathing.bLevel ); UINT16 ubPerson = WhoIsThere2( sGridNo, this->pathing.bLevel );
if ( ubPerson != NOBODY && MercPtrs[ubPerson]->CanBeCaptured( ) ) if ( ubPerson != NOBODY && MercPtrs[ubPerson]->CanBeCaptured( ) )
{ {
@@ -22935,7 +22941,7 @@ void SOLDIERTYPE::EVENT_SoldierHandcuffPerson( INT32 sGridNo, UINT8 ubDirection
void SOLDIERTYPE::EVENT_SoldierApplyItemToPerson( INT32 sGridNo, UINT8 ubDirection ) void SOLDIERTYPE::EVENT_SoldierApplyItemToPerson( INT32 sGridNo, UINT8 ubDirection )
{ {
UINT8 ubPerson = WhoIsThere2( sGridNo, this->pathing.bLevel ); UINT16 ubPerson = WhoIsThere2( sGridNo, this->pathing.bLevel );
if ( ubPerson != NOBODY ) if ( ubPerson != NOBODY )
{ {
@@ -23071,7 +23077,7 @@ void SOLDIERTYPE::EVENT_SoldierApplyItemToPerson( INT32 sGridNo, UINT8 ubDirecti
void SOLDIERTYPE::EVENT_SoldierTakeBloodFromPerson( INT32 sGridNo, UINT8 ubDirection ) void SOLDIERTYPE::EVENT_SoldierTakeBloodFromPerson( INT32 sGridNo, UINT8 ubDirection )
{ {
UINT8 ubPerson = WhoIsThere2( sGridNo, this->pathing.bLevel ); UINT16 ubPerson = WhoIsThere2( sGridNo, this->pathing.bLevel );
if ( ubPerson != NOBODY && ubPerson != this->ubID ) if ( ubPerson != NOBODY && ubPerson != this->ubID )
{ {
@@ -23142,7 +23148,7 @@ void SOLDIERTYPE::EVENT_SoldierTakeBloodFromPerson( INT32 sGridNo, UINT8 ubDirec
void SOLDIERTYPE::EVENT_SoldierApplySplintToPerson( INT32 sGridNo, UINT8 ubDirection ) void SOLDIERTYPE::EVENT_SoldierApplySplintToPerson( INT32 sGridNo, UINT8 ubDirection )
{ {
UINT8 ubPerson = WhoIsThere2( sGridNo, this->pathing.bLevel ); UINT16 ubPerson = WhoIsThere2( sGridNo, this->pathing.bLevel );
if ( ubPerson != NOBODY && ubPerson != this->ubID ) if ( ubPerson != NOBODY && ubPerson != this->ubID )
{ {
@@ -23211,7 +23217,7 @@ void SOLDIERTYPE::EVENT_SoldierInteractiveAction( INT32 sGridNo, UINT16 usAction
void SOLDIERTYPE::EVENT_SoldierBeginReloadRobot( INT32 sGridNo, UINT8 ubDirection, UINT8 ubMercSlot ) void SOLDIERTYPE::EVENT_SoldierBeginReloadRobot( INT32 sGridNo, UINT8 ubDirection, UINT8 ubMercSlot )
{ {
UINT8 ubPerson; UINT16 ubPerson;
// Make sure we have a robot here.... // Make sure we have a robot here....
ubPerson = WhoIsThere2( sGridNo, this->pathing.bLevel ); ubPerson = WhoIsThere2( sGridNo, this->pathing.bLevel );
@@ -23442,7 +23448,7 @@ void AbandonBoxingDueToSurrenderCallback(UINT8 ubExitValue)
} }
SOLDIERTYPE *pTMilitiaSoldier;//global pointer SOLDIERTYPE *pTMilitiaSoldier;//global pointer
BOOLEAN SOLDIERTYPE::PlayerSoldierStartTalking( UINT8 ubTargetID, BOOLEAN fValidate ) BOOLEAN SOLDIERTYPE::PlayerSoldierStartTalking( UINT16 ubTargetID, BOOLEAN fValidate )
{ {
INT16 sFacingDir, sXPos, sYPos, sAPCost; INT16 sFacingDir, sXPos, sYPos, sAPCost;
SOLDIERTYPE *pTSoldier; SOLDIERTYPE *pTSoldier;
@@ -23460,7 +23466,7 @@ BOOLEAN SOLDIERTYPE::PlayerSoldierStartTalking( UINT8 ubTargetID, BOOLEAN fValid
{ {
// OK, since we locked this guy from moving // OK, since we locked this guy from moving
// we should be close enough, so talk ( unless he is now dead ) // we should be close enough, so talk ( unless he is now dead )
if ( !IsValidTalkableNPC( (UINT8)ubTargetID, FALSE, FALSE, FALSE ) ) if ( !IsValidTalkableNPC( ubTargetID, FALSE, FALSE, FALSE ) )
{ {
return(FALSE); return(FALSE);
} }
@@ -24386,7 +24392,7 @@ void SetSoldierPersonalLightLevel( SOLDIERTYPE *pSoldier )
void BeginSoldierClimbWallUp( SOLDIERTYPE *pSoldier ) void BeginSoldierClimbWallUp( SOLDIERTYPE *pSoldier )
{ {
INT8 bNewDirection; INT8 bNewDirection;
UINT8 ubWhoIsThere; UINT16 ubWhoIsThere;
if ( FindLowerLevelWall( pSoldier, pSoldier->sGridNo, pSoldier->ubDirection, &bNewDirection ) && (pSoldier->pathing.bLevel > 0) ) if ( FindLowerLevelWall( pSoldier, pSoldier->sGridNo, pSoldier->ubDirection, &bNewDirection ) && (pSoldier->pathing.bLevel > 0) )
{ {
@@ -24724,7 +24730,7 @@ INT8 NUM_SKILL_TRAITS( SOLDIERTYPE * pSoldier, UINT8 uiSkillTraitNumber )
UINT8 GetSquadleadersCountInVicinity( SOLDIERTYPE * pSoldier, BOOLEAN fWithHigherLevel, BOOLEAN fDontCheckDistance ) UINT8 GetSquadleadersCountInVicinity( SOLDIERTYPE * pSoldier, BOOLEAN fWithHigherLevel, BOOLEAN fDontCheckDistance )
{ {
UINT8 cnt = 0; UINT16 cnt = 0;
UINT8 ubNumberSL = 0; UINT8 ubNumberSL = 0;
// loop through all soldiers around // loop through all soldiers around
@@ -25091,7 +25097,7 @@ BOOLEAN ResolvePendingInterrupt( SOLDIERTYPE * pSoldier, UINT8 ubInterruptType )
///////////////////////////// /////////////////////////////
SOLDIERTYPE *pInterrupter; SOLDIERTYPE *pInterrupter;
UINT8 ubInterruptersFound = 0; UINT8 ubInterruptersFound = 0;
UINT8 ubaInterruptersList[64]; UINT16 ubaInterruptersList[64];
UINT16 uCnt = 0, uiReactionTime; UINT16 uCnt = 0, uiReactionTime;
INT16 iInjuryPenalty; INT16 iInjuryPenalty;
@@ -25609,7 +25615,7 @@ UINT16 GridNoSpotterCTHBonus( SOLDIERTYPE* pSniper, INT32 sGridNo, INT8 bTeam )
{ {
BOOLEAN targetseen = FALSE; BOOLEAN targetseen = FALSE;
UINT usID = WhoIsThere2( sGridNo, pSniper->bTargetLevel ); UINT16 usID = WhoIsThere2( sGridNo, pSniper->bTargetLevel );
// is someone is at the sGridNo, check wether the spotter can see any part of him check wether head can be seen) // is someone is at the sGridNo, check wether the spotter can see any part of him check wether head can be seen)
if ( usID != NOBODY && SoldierToSoldierLineOfSightTest( pSoldier, MercPtrs[usID], 0, NO_DISTANCE_LIMIT, AIM_SHOT_HEAD ) > 0 ) if ( usID != NOBODY && SoldierToSoldierLineOfSightTest( pSoldier, MercPtrs[usID], 0, NO_DISTANCE_LIMIT, AIM_SHOT_HEAD ) > 0 )

Some files were not shown because too many files have changed in this diff Show More