mirror of
https://github.com/1dot13/source.git
synced 2026-09-02 14:36:06 +02:00
Convert MapScreenCharacterSt::usSolID to SoldierID
This commit is contained in:
+18
-17
@@ -632,7 +632,7 @@ BOOLEAN ValidTrainingPartnerInSameSectorOnAssignmentFound( SOLDIERTYPE *pSoldier
|
|||||||
|
|
||||||
extern void AddSectorForSoldierToListOfSectorsThatCompletedMilitiaTraining( SOLDIERTYPE *pSoldier );
|
extern void AddSectorForSoldierToListOfSectorsThatCompletedMilitiaTraining( SOLDIERTYPE *pSoldier );
|
||||||
|
|
||||||
extern BOOLEAN CanChangeSleepStatusForCharSlot( INT8 bCharNumber );
|
extern BOOLEAN CanChangeSleepStatusForCharSlot( INT16 bCharNumber );
|
||||||
|
|
||||||
// only 2 trainers are allowed per sector, so this function counts the # in a guy's sector
|
// only 2 trainers are allowed per sector, so this function counts the # in a guy's sector
|
||||||
// HEADROCK HAM 3.6: Now takes an extra argument for Militia Type
|
// HEADROCK HAM 3.6: Now takes an extra argument for Militia Type
|
||||||
@@ -3106,7 +3106,7 @@ void VerifyTownTrainingIsPaidFor( void )
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
pSoldier = &Menptr[ gCharactersList[ iCounter ].usSolID ];
|
pSoldier = gCharactersList[ iCounter ].usSolID;
|
||||||
|
|
||||||
if( pSoldier->bActive && ( pSoldier->bAssignment == TRAIN_TOWN ) )
|
if( pSoldier->bActive && ( pSoldier->bAssignment == TRAIN_TOWN ) )
|
||||||
{
|
{
|
||||||
@@ -9643,7 +9643,8 @@ void CreateDestroyMouseRegionsForAssignmentMenu( void )
|
|||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if( ( Menptr[gCharactersList[bSelectedAssignChar].usSolID].stats.bLife == 0 ) || ( Menptr[gCharactersList[bSelectedAssignChar].usSolID].bAssignment == ASSIGNMENT_POW ) )
|
|
||||||
|
if( ( gCharactersList[bSelectedAssignChar].usSolID->stats.bLife == 0 ) || ( gCharactersList[bSelectedAssignChar].usSolID->bAssignment == ASSIGNMENT_POW ) )
|
||||||
{
|
{
|
||||||
// dead guy handle menu stuff
|
// dead guy handle menu stuff
|
||||||
fShowRemoveMenu = fShowAssignmentMenu | fShowContractMenu;
|
fShowRemoveMenu = fShowAssignmentMenu | fShowContractMenu;
|
||||||
@@ -11114,7 +11115,7 @@ void DetermineWhichAssignmentMenusCanBeShown( void )
|
|||||||
CreateDestroyMouseRegionForFacilityMenu();
|
CreateDestroyMouseRegionForFacilityMenu();
|
||||||
CreateDestroyMouseRegionsForFacilityAssignmentMenu();
|
CreateDestroyMouseRegionsForFacilityAssignmentMenu();
|
||||||
|
|
||||||
if( ( ( Menptr[gCharactersList[ bSelectedInfoChar ].usSolID].stats.bLife == 0 )||( Menptr[gCharactersList[bSelectedInfoChar].usSolID].bAssignment == ASSIGNMENT_POW ) ) && ( (guiTacticalInterfaceFlags & INTERFACE_MAPSCREEN ) ) )
|
if( ( ( gCharactersList[ bSelectedInfoChar ].usSolID->stats.bLife == 0 )||( gCharactersList[bSelectedInfoChar].usSolID->bAssignment == ASSIGNMENT_POW ) ) && ( (guiTacticalInterfaceFlags & INTERFACE_MAPSCREEN ) ) )
|
||||||
{
|
{
|
||||||
// show basic assignment menu
|
// show basic assignment menu
|
||||||
ShowBox( ghRemoveMercAssignBox );
|
ShowBox( ghRemoveMercAssignBox );
|
||||||
@@ -11596,7 +11597,7 @@ void CreateDestroyMouseRegionsForContractMenu( void )
|
|||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if( Menptr[gCharactersList[bSelectedContractChar].usSolID].stats.bLife == 0 )
|
if( gCharactersList[bSelectedContractChar].usSolID->stats.bLife == 0 )
|
||||||
{
|
{
|
||||||
|
|
||||||
// dead guy handle menu stuff
|
// dead guy handle menu stuff
|
||||||
@@ -12825,7 +12826,7 @@ void ContractMenuBtnCallback( MOUSE_REGION * pRegion, INT32 iReason )
|
|||||||
|
|
||||||
if ( (guiTacticalInterfaceFlags & INTERFACE_MAPSCREEN ) )
|
if ( (guiTacticalInterfaceFlags & INTERFACE_MAPSCREEN ) )
|
||||||
{
|
{
|
||||||
pSoldier = &Menptr[ gCharactersList[ bSelectedInfoChar ].usSolID ];
|
pSoldier = gCharactersList[ bSelectedInfoChar ].usSolID;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -18406,7 +18407,7 @@ BOOLEAN HandleSelectedMercsBeingPutAsleep( BOOLEAN fWakeUp, BOOLEAN fDisplayWarn
|
|||||||
if( gCharactersList[ iCounter ].fValid )
|
if( gCharactersList[ iCounter ].fValid )
|
||||||
{
|
{
|
||||||
// get the soldier pointer
|
// get the soldier pointer
|
||||||
pSoldier = &Menptr[ gCharactersList[ iCounter ].usSolID ];
|
pSoldier = gCharactersList[ iCounter ].usSolID;
|
||||||
|
|
||||||
if( pSoldier->bActive == FALSE )
|
if( pSoldier->bActive == FALSE )
|
||||||
{
|
{
|
||||||
@@ -18807,7 +18808,7 @@ void SetAssignmentForList( INT8 bAssignment, INT8 bParam )
|
|||||||
{
|
{
|
||||||
if( gCharactersList[ bSelectedAssignChar ].fValid == TRUE )
|
if( gCharactersList[ bSelectedAssignChar ].fValid == TRUE )
|
||||||
{
|
{
|
||||||
pSelectedSoldier = &Menptr[ gCharactersList[ bSelectedAssignChar ].usSolID ];
|
pSelectedSoldier = gCharactersList[ bSelectedAssignChar ].usSolID;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -18819,9 +18820,9 @@ void SetAssignmentForList( INT8 bAssignment, INT8 bParam )
|
|||||||
if( ( gCharactersList[ iCounter ].fValid ) &&
|
if( ( gCharactersList[ iCounter ].fValid ) &&
|
||||||
( fSelectedListOfMercsForMapScreen[ iCounter ] == TRUE ) &&
|
( fSelectedListOfMercsForMapScreen[ iCounter ] == TRUE ) &&
|
||||||
( iCounter != bSelectedAssignChar ) &&
|
( iCounter != bSelectedAssignChar ) &&
|
||||||
!(Menptr[ gCharactersList[ iCounter ].usSolID].flags.uiStatusFlags & SOLDIER_VEHICLE ) )
|
!(gCharactersList[ iCounter ].usSolID->flags.uiStatusFlags & SOLDIER_VEHICLE ) )
|
||||||
{
|
{
|
||||||
pSoldier = MercPtrs[ gCharactersList[ iCounter ].usSolID ];
|
pSoldier = gCharactersList[ iCounter ].usSolID;
|
||||||
|
|
||||||
// assume it's NOT gonna work
|
// assume it's NOT gonna work
|
||||||
fItWorked = FALSE;
|
fItWorked = FALSE;
|
||||||
@@ -19616,13 +19617,13 @@ SOLDIERTYPE *GetSelectedAssignSoldier( BOOLEAN fNullOK, BOOLEAN fReturnVehicleDr
|
|||||||
if( ( bSelectedAssignChar >= 0 ) && ( bSelectedAssignChar < giMAXIMUM_NUMBER_OF_PLAYER_SLOTS ) &&
|
if( ( bSelectedAssignChar >= 0 ) && ( bSelectedAssignChar < giMAXIMUM_NUMBER_OF_PLAYER_SLOTS ) &&
|
||||||
( gCharactersList[ bSelectedAssignChar ].fValid ) )
|
( gCharactersList[ bSelectedAssignChar ].fValid ) )
|
||||||
{
|
{
|
||||||
pSoldier = &Menptr[ gCharactersList[ bSelectedAssignChar ].usSolID ];
|
pSoldier = gCharactersList[ bSelectedAssignChar ].usSolID;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// tactical version
|
// tactical version
|
||||||
pSoldier = &Menptr[ gusUIFullTargetID ];
|
pSoldier = gusUIFullTargetID;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( !fNullOK )
|
if ( !fNullOK )
|
||||||
@@ -20079,7 +20080,7 @@ BOOLEAN FindAnyAwakeTrainers( SOLDIERTYPE *pTrainee )
|
|||||||
|
|
||||||
while(gCharactersList[ubCounter].fValid)
|
while(gCharactersList[ubCounter].fValid)
|
||||||
{
|
{
|
||||||
pTrainer = MercPtrs[ gCharactersList[ ubCounter ].usSolID ];
|
pTrainer = gCharactersList[ ubCounter ].usSolID;
|
||||||
|
|
||||||
// Is trainer awake?
|
// Is trainer awake?
|
||||||
if (pTrainer->bAssignment == TRAIN_TEAMMATE && pTrainer->bTrainStat == pTrainee->bTrainStat &&
|
if (pTrainer->bAssignment == TRAIN_TEAMMATE && pTrainer->bTrainStat == pTrainee->bTrainStat &&
|
||||||
@@ -20115,7 +20116,7 @@ BOOLEAN FindAnyAwakeTrainees( SOLDIERTYPE *pTrainer )
|
|||||||
|
|
||||||
while(gCharactersList[ubCounter].fValid)
|
while(gCharactersList[ubCounter].fValid)
|
||||||
{
|
{
|
||||||
pTrainee = MercPtrs[ gCharactersList[ ubCounter ].usSolID ];
|
pTrainee = gCharactersList[ ubCounter ].usSolID;
|
||||||
|
|
||||||
// Is trainee awake?
|
// Is trainee awake?
|
||||||
if (pTrainee->bAssignment == TRAIN_BY_OTHER && pTrainee->bTrainStat == pTrainer->bTrainStat &&
|
if (pTrainee->bAssignment == TRAIN_BY_OTHER && pTrainee->bTrainStat == pTrainer->bTrainStat &&
|
||||||
@@ -21058,7 +21059,7 @@ INT8 CountFreeFacilitySlots( UINT8 sMapX, UINT8 sMapY, UINT8 ubFacilityType )
|
|||||||
// Count number of people doing anything at this facility.
|
// Count number of people doing anything at this facility.
|
||||||
while(gCharactersList[ubCounter].fValid)
|
while(gCharactersList[ubCounter].fValid)
|
||||||
{
|
{
|
||||||
pSoldier = MercPtrs[ gCharactersList[ ubCounter ].usSolID ];
|
pSoldier = gCharactersList[ ubCounter ].usSolID;
|
||||||
|
|
||||||
// Is character operating this facility?
|
// Is character operating this facility?
|
||||||
if( (UINT8)pSoldier->sFacilityTypeOperated == ubFacilityType &&
|
if( (UINT8)pSoldier->sFacilityTypeOperated == ubFacilityType &&
|
||||||
@@ -21101,7 +21102,7 @@ INT8 CountFreeFacilityAssignmentSlots( UINT8 sMapX, UINT8 sMapY, UINT8 ubFacilit
|
|||||||
// Count number of people doing this assignment at this facility.
|
// Count number of people doing this assignment at this facility.
|
||||||
while(gCharactersList[ubCounter].fValid)
|
while(gCharactersList[ubCounter].fValid)
|
||||||
{
|
{
|
||||||
pSoldier = MercPtrs[ gCharactersList[ ubCounter ].usSolID ];
|
pSoldier = gCharactersList[ ubCounter ].usSolID;
|
||||||
|
|
||||||
// Is character operating this facility?
|
// Is character operating this facility?
|
||||||
if( (UINT8)pSoldier->sFacilityTypeOperated == ubFacilityType &&
|
if( (UINT8)pSoldier->sFacilityTypeOperated == ubFacilityType &&
|
||||||
@@ -21527,7 +21528,7 @@ void ResetAllExpensiveFacilityAssignments()
|
|||||||
|
|
||||||
while(gCharactersList[ubCounter].fValid)
|
while(gCharactersList[ubCounter].fValid)
|
||||||
{
|
{
|
||||||
pSoldier = MercPtrs[ gCharactersList[ ubCounter ].usSolID ];
|
pSoldier = gCharactersList[ ubCounter ].usSolID;
|
||||||
|
|
||||||
// Is character doing facility work?
|
// Is character doing facility work?
|
||||||
INT8 ubAssignmentIndex = GetSoldierFacilityAssignmentIndex( pSoldier );
|
INT8 ubAssignmentIndex = GetSoldierFacilityAssignmentIndex( pSoldier );
|
||||||
|
|||||||
@@ -357,7 +357,7 @@ void UpdateStrategicDetectionLevel( )
|
|||||||
// Run through list of player-characters
|
// Run through list of player-characters
|
||||||
while(gCharactersList[ubCounter].fValid)
|
while(gCharactersList[ubCounter].fValid)
|
||||||
{
|
{
|
||||||
pSoldier = MercPtrs[ gCharactersList[ ubCounter ].usSolID ];
|
pSoldier = gCharactersList[ ubCounter ].usSolID;
|
||||||
|
|
||||||
// Is character truly valid?
|
// Is character truly valid?
|
||||||
if( !( pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE ) &&
|
if( !( pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE ) &&
|
||||||
@@ -499,7 +499,7 @@ void UpdateSkyriderCostModifier()
|
|||||||
|
|
||||||
while(gCharactersList[ubCounter].fValid)
|
while(gCharactersList[ubCounter].fValid)
|
||||||
{
|
{
|
||||||
pSoldier = MercPtrs[ gCharactersList[ ubCounter ].usSolID ];
|
pSoldier = gCharactersList[ ubCounter ].usSolID;
|
||||||
|
|
||||||
// Is character truly valid?
|
// Is character truly valid?
|
||||||
if( !( pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE ) &&
|
if( !( pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE ) &&
|
||||||
@@ -562,7 +562,7 @@ void UpdateFacilityUsageCosts( )
|
|||||||
|
|
||||||
while(gCharactersList[ubCounter].fValid)
|
while(gCharactersList[ubCounter].fValid)
|
||||||
{
|
{
|
||||||
pSoldier = MercPtrs[ gCharactersList[ ubCounter ].usSolID ];
|
pSoldier = gCharactersList[ ubCounter ].usSolID;
|
||||||
|
|
||||||
// Is character truly valid?
|
// Is character truly valid?
|
||||||
if( !( pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE ) &&
|
if( !( pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE ) &&
|
||||||
@@ -704,7 +704,7 @@ INT32 MineIncomeModifierFromFacility( UINT8 ubMine )
|
|||||||
UINT8 ubCounter = 0;
|
UINT8 ubCounter = 0;
|
||||||
while (gCharactersList[ubCounter].fValid)
|
while (gCharactersList[ubCounter].fValid)
|
||||||
{
|
{
|
||||||
pSoldier = MercPtrs[ gCharactersList[ ubCounter ].usSolID ];
|
pSoldier = gCharactersList[ ubCounter ].usSolID;
|
||||||
|
|
||||||
// Is character truly valid?
|
// Is character truly valid?
|
||||||
if( !( pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE ) &&
|
if( !( pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE ) &&
|
||||||
@@ -1112,7 +1112,7 @@ void HandleHourlyRisks()
|
|||||||
|
|
||||||
while (gCharactersList[iCounter].fValid)
|
while (gCharactersList[iCounter].fValid)
|
||||||
{
|
{
|
||||||
pSoldier = MercPtrs[ gCharactersList[ iCounter ].usSolID ];
|
pSoldier = gCharactersList[ iCounter ].usSolID;
|
||||||
|
|
||||||
// Is character truly valid?
|
// Is character truly valid?
|
||||||
if( !( pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE ) &&
|
if( !( pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE ) &&
|
||||||
@@ -1994,7 +1994,7 @@ INT32 GetTotalFacilityHourlyCosts( BOOLEAN fPositive )
|
|||||||
// Run through list of player-characters
|
// Run through list of player-characters
|
||||||
while(gCharactersList[ubCounter].fValid)
|
while(gCharactersList[ubCounter].fValid)
|
||||||
{
|
{
|
||||||
pSoldier = MercPtrs[ gCharactersList[ ubCounter ].usSolID ];
|
pSoldier = gCharactersList[ ubCounter ].usSolID;
|
||||||
|
|
||||||
// Is character truly valid?
|
// Is character truly valid?
|
||||||
if( !( pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE ) &&
|
if( !( pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE ) &&
|
||||||
|
|||||||
@@ -683,9 +683,9 @@ BOOLEAN RenderItemInPoolSlot( INT32 iCurrentSlot, INT32 iFirstSlotOnPage )
|
|||||||
// if the item is not reachable, or if the selected merc is not in the current sector
|
// if the item is not reachable, or if the selected merc is not in the current sector
|
||||||
//
|
//
|
||||||
if( !( pInventoryPoolList[ iCurrentSlot + iFirstSlotOnPage ].usFlags & WORLD_ITEM_REACHABLE ) ||
|
if( !( pInventoryPoolList[ iCurrentSlot + iFirstSlotOnPage ].usFlags & WORLD_ITEM_REACHABLE ) ||
|
||||||
!(( Menptr[ gCharactersList[ bSelectedInfoChar ].usSolID ].sSectorX == sSelMapX ) &&
|
!(( gCharactersList[ bSelectedInfoChar ].usSolID->sSectorX == sSelMapX ) &&
|
||||||
( Menptr[ gCharactersList[ bSelectedInfoChar ].usSolID ].sSectorY == sSelMapY ) &&
|
( gCharactersList[ bSelectedInfoChar ].usSolID->sSectorY == sSelMapY ) &&
|
||||||
( Menptr[ gCharactersList[ bSelectedInfoChar ].usSolID ].bSectorZ == iCurrentMapSectorZ )
|
( gCharactersList[ bSelectedInfoChar ].usSolID->bSectorZ == iCurrentMapSectorZ )
|
||||||
) )
|
) )
|
||||||
{
|
{
|
||||||
//Shade the item, but only if it is an active item!
|
//Shade the item, but only if it is an active item!
|
||||||
@@ -1351,7 +1351,6 @@ void MapInvenPoolSlots(MOUSE_REGION * pRegion, INT32 iReason )
|
|||||||
UINT16 usOldItemIndex, usNewItemIndex;
|
UINT16 usOldItemIndex, usNewItemIndex;
|
||||||
INT32 iOldNumberOfObjects = 0;
|
INT32 iOldNumberOfObjects = 0;
|
||||||
INT16 sDistanceFromObject = 0;
|
INT16 sDistanceFromObject = 0;
|
||||||
SOLDIERTYPE *pSoldier = NULL;
|
|
||||||
CHAR16 sString[ 128 ];
|
CHAR16 sString[ 128 ];
|
||||||
extern OBJECTTYPE *gpItemDescObject;
|
extern OBJECTTYPE *gpItemDescObject;
|
||||||
|
|
||||||
@@ -1370,11 +1369,16 @@ void MapInvenPoolSlots(MOUSE_REGION * pRegion, INT32 iReason )
|
|||||||
{
|
{
|
||||||
//CHRISL: Make it possible to right click and pull up stack popup and/or item description boxes
|
//CHRISL: Make it possible to right click and pull up stack popup and/or item description boxes
|
||||||
WORLDITEM * twItem = &(pInventoryPoolList[ ( iCurrentInventoryPoolPage * MAP_INVENTORY_POOL_SLOT_COUNT ) + iCounter ]);
|
WORLDITEM * twItem = &(pInventoryPoolList[ ( iCurrentInventoryPoolPage * MAP_INVENTORY_POOL_SLOT_COUNT ) + iCounter ]);
|
||||||
bool fValidPointer = false;
|
bool fValidPointer = false;
|
||||||
|
|
||||||
//CHRISL: Try to update InSector value so we don't have to "activate" a sector
|
//CHRISL: Try to update InSector value so we don't have to "activate" a sector
|
||||||
if(MercPtrs[gCharactersList[bSelectedInfoChar].usSolID]->sSectorX == sSelMapX && MercPtrs[gCharactersList[bSelectedInfoChar].usSolID]->sSectorY == sSelMapY && MercPtrs[gCharactersList[bSelectedInfoChar].usSolID]->bSectorZ == iCurrentMapSectorZ && !MercPtrs[gCharactersList[bSelectedInfoChar].usSolID]->flags.fBetweenSectors)
|
SOLDIERTYPE* pSelectedSoldier = gCharactersList[bSelectedInfoChar].usSolID;
|
||||||
|
const auto x = pSelectedSoldier->sSectorX;
|
||||||
|
const auto y = pSelectedSoldier->sSectorY;
|
||||||
|
const auto z = pSelectedSoldier->bSectorZ;
|
||||||
|
if(x == sSelMapX && y == sSelMapY && z == iCurrentMapSectorZ && !pSelectedSoldier->flags.fBetweenSectors)
|
||||||
{
|
{
|
||||||
MercPtrs[gCharactersList[bSelectedInfoChar].usSolID]->bInSector=TRUE;
|
pSelectedSoldier->bInSector = TRUE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -1388,7 +1392,7 @@ void MapInvenPoolSlots(MOUSE_REGION * pRegion, INT32 iReason )
|
|||||||
}
|
}
|
||||||
if ( !InSectorStackPopup( ) && !InItemStackPopup( ) /*&& !InItemDescriptionBox( ) */ && !InKeyRingPopup( ) && twItem->object.exists() == true && (bSelectedInfoChar != -1 && gCharactersList[bSelectedInfoChar].fValid) )
|
if ( !InSectorStackPopup( ) && !InItemStackPopup( ) /*&& !InItemDescriptionBox( ) */ && !InKeyRingPopup( ) && twItem->object.exists() == true && (bSelectedInfoChar != -1 && gCharactersList[bSelectedInfoChar].fValid) )
|
||||||
{
|
{
|
||||||
if(OK_CONTROL_MERC( MercPtrs[gCharactersList[bSelectedInfoChar].usSolID] ))
|
if(OK_CONTROL_MERC( pSelectedSoldier ))
|
||||||
{
|
{
|
||||||
//CHRISL: The old setup had a flaw I didn't consider. if, for some reason, the ItemSlotLimit = 0
|
//CHRISL: The old setup had a flaw I didn't consider. if, for some reason, the ItemSlotLimit = 0
|
||||||
// nothing might happen. Now we setup a flag to determine if our cursor is value for the item we're
|
// nothing might happen. Now we setup a flag to determine if our cursor is value for the item we're
|
||||||
@@ -1474,7 +1478,7 @@ void MapInvenPoolSlots(MOUSE_REGION * pRegion, INT32 iReason )
|
|||||||
}
|
}
|
||||||
|
|
||||||
// HEADROCK HAM 5: Sector Inventory Item Desc Box no longer accessible during combat.
|
// HEADROCK HAM 5: Sector Inventory Item Desc Box no longer accessible during combat.
|
||||||
if( !CanPlayerUseSectorInventory( &(Menptr[ gCharactersList[ bSelectedInfoChar ].usSolID ]) ) )
|
if( !CanPlayerUseSectorInventory(pSelectedSoldier) )
|
||||||
{
|
{
|
||||||
DoScreenIndependantMessageBox( New113HAMMessage[ 22 ], MSG_BOX_FLAG_OK, NULL );
|
DoScreenIndependantMessageBox( New113HAMMessage[ 22 ], MSG_BOX_FLAG_OK, NULL );
|
||||||
return;
|
return;
|
||||||
@@ -1484,23 +1488,23 @@ void MapInvenPoolSlots(MOUSE_REGION * pRegion, INT32 iReason )
|
|||||||
if ( _KeyDown(SHIFT) && gpItemPointer == NULL && Item[twItem->object.usItem].usItemClass == IC_GUN && (twItem->object)[0]->data.gun.ubGunShotsLeft && !ItemIsSingleShotRocketLauncher(twItem->object.usItem))
|
if ( _KeyDown(SHIFT) && gpItemPointer == NULL && Item[twItem->object.usItem].usItemClass == IC_GUN && (twItem->object)[0]->data.gun.ubGunShotsLeft && !ItemIsSingleShotRocketLauncher(twItem->object.usItem))
|
||||||
{
|
{
|
||||||
EmptyWeaponMagazine( &twItem->object, &gItemPointer );
|
EmptyWeaponMagazine( &twItem->object, &gItemPointer );
|
||||||
InternalMAPBeginItemPointer( MercPtrs[gCharactersList[bSelectedInfoChar].usSolID] );
|
InternalMAPBeginItemPointer( pSelectedSoldier );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
MAPInternalInitItemDescriptionBox( &twItem->object, 0, MercPtrs[gCharactersList[bSelectedInfoChar].usSolID] );
|
MAPInternalInitItemDescriptionBox( &twItem->object, 0, pSelectedSoldier );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(fValidPointer)
|
else if(fValidPointer)
|
||||||
{
|
{
|
||||||
// Sector Inventory Stack Popup no longer accessible during combat.
|
// Sector Inventory Stack Popup no longer accessible during combat.
|
||||||
if( !CanPlayerUseSectorInventory( &(Menptr[ gCharactersList[ bSelectedInfoChar ].usSolID ]) ) )
|
if( !CanPlayerUseSectorInventory(pSelectedSoldier) )
|
||||||
{
|
{
|
||||||
DoScreenIndependantMessageBox( New113HAMMessage[ 22 ], MSG_BOX_FLAG_OK, NULL );
|
DoScreenIndependantMessageBox( New113HAMMessage[ 22 ], MSG_BOX_FLAG_OK, NULL );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
InitSectorStackPopup( MercPtrs[gCharactersList[bSelectedInfoChar].usSolID], twItem, iCounter, xResOffset, yResOffset - 10, 261, ( SCREEN_HEIGHT - PLAYER_INFO_Y ) );
|
InitSectorStackPopup( pSelectedSoldier, twItem, iCounter, xResOffset, yResOffset - 10, 261, ( SCREEN_HEIGHT - PLAYER_INFO_Y ) );
|
||||||
fTeamPanelDirty=TRUE;
|
fTeamPanelDirty=TRUE;
|
||||||
fInterfacePanelDirty = DIRTYLEVEL2;
|
fInterfacePanelDirty = DIRTYLEVEL2;
|
||||||
}
|
}
|
||||||
@@ -1597,11 +1601,13 @@ void MapInvenPoolSlots(MOUSE_REGION * pRegion, INT32 iReason )
|
|||||||
|
|
||||||
//if( fShowInventoryFlag )
|
//if( fShowInventoryFlag )
|
||||||
{
|
{
|
||||||
|
SOLDIERTYPE* pSelectedSoldier = gCharactersList[bSelectedInfoChar].usSolID;
|
||||||
|
|
||||||
// not in sector?
|
// not in sector?
|
||||||
if( ( Menptr[ gCharactersList[ bSelectedInfoChar ].usSolID ].sSectorX != sSelMapX ) ||
|
if( ( pSelectedSoldier->sSectorX != sSelMapX ) ||
|
||||||
( Menptr[ gCharactersList[ bSelectedInfoChar ].usSolID ].sSectorY != sSelMapY ) ||
|
( pSelectedSoldier->sSectorY != sSelMapY ) ||
|
||||||
( Menptr[ gCharactersList[ bSelectedInfoChar ].usSolID ].bSectorZ != iCurrentMapSectorZ ) ||
|
( pSelectedSoldier->bSectorZ != iCurrentMapSectorZ ) ||
|
||||||
( Menptr[ gCharactersList[ bSelectedInfoChar ].usSolID ].flags.fBetweenSectors ) )
|
( pSelectedSoldier->flags.fBetweenSectors ) )
|
||||||
{
|
{
|
||||||
if ( gpItemPointer == NULL )
|
if ( gpItemPointer == NULL )
|
||||||
{
|
{
|
||||||
@@ -1633,13 +1639,13 @@ void MapInvenPoolSlots(MOUSE_REGION * pRegion, INT32 iReason )
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
swprintf( sString, pMapInventoryErrorString[ 2 ], Menptr[ gCharactersList[ bSelectedInfoChar ].usSolID ].name );
|
swprintf( sString, pMapInventoryErrorString[ 2 ], pSelectedSoldier->name );
|
||||||
DoMapMessageBox( MSG_BOX_BASIC_STYLE, sString, MAP_SCREEN, MSG_BOX_FLAG_OK, NULL );
|
DoMapMessageBox( MSG_BOX_BASIC_STYLE, sString, MAP_SCREEN, MSG_BOX_FLAG_OK, NULL );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
swprintf( sString, pMapInventoryErrorString[ 5 ], Menptr[ gCharactersList[ bSelectedInfoChar ].usSolID ].name );
|
swprintf( sString, pMapInventoryErrorString[ 5 ], pSelectedSoldier->name );
|
||||||
DoMapMessageBox( MSG_BOX_BASIC_STYLE, sString, MAP_SCREEN, MSG_BOX_FLAG_OK, NULL );
|
DoMapMessageBox( MSG_BOX_BASIC_STYLE, sString, MAP_SCREEN, MSG_BOX_FLAG_OK, NULL );
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
@@ -1650,6 +1656,7 @@ void MapInvenPoolSlots(MOUSE_REGION * pRegion, INT32 iReason )
|
|||||||
// If we do not have an item in hand, start moving it
|
// If we do not have an item in hand, start moving it
|
||||||
if ( gpItemPointer == NULL )
|
if ( gpItemPointer == NULL )
|
||||||
{
|
{
|
||||||
|
SOLDIERTYPE* pSelectedSoldier = gCharactersList[bSelectedInfoChar].usSolID;
|
||||||
|
|
||||||
|
|
||||||
// Return if empty
|
// Return if empty
|
||||||
@@ -1658,7 +1665,7 @@ void MapInvenPoolSlots(MOUSE_REGION * pRegion, INT32 iReason )
|
|||||||
|
|
||||||
// if in battle inform player they will have to do this in tactical
|
// if in battle inform player they will have to do this in tactical
|
||||||
// if( ( ( gTacticalStatus.fEnemyInSector ) ||( ( sSelMapX == gWorldSectorX ) && ( sSelMapY == gWorldSectorY ) && ( iCurrentMapSectorZ == gbWorldSectorZ ) && ( gTacticalStatus.uiFlags & INCOMBAT ) ) ) )
|
// if( ( ( gTacticalStatus.fEnemyInSector ) ||( ( sSelMapX == gWorldSectorX ) && ( sSelMapY == gWorldSectorY ) && ( iCurrentMapSectorZ == gbWorldSectorZ ) && ( gTacticalStatus.uiFlags & INCOMBAT ) ) ) )
|
||||||
if( !CanPlayerUseSectorInventory( &Menptr[ gCharactersList[ bSelectedInfoChar ].usSolID ] ) )
|
if( !CanPlayerUseSectorInventory(pSelectedSoldier) )
|
||||||
{
|
{
|
||||||
DoMapMessageBox( MSG_BOX_BASIC_STYLE, pMapInventoryErrorString[ 3 ], MAP_SCREEN, MSG_BOX_FLAG_OK, NULL );
|
DoMapMessageBox( MSG_BOX_BASIC_STYLE, pMapInventoryErrorString[ 3 ], MAP_SCREEN, MSG_BOX_FLAG_OK, NULL );
|
||||||
return;
|
return;
|
||||||
@@ -1673,14 +1680,13 @@ void MapInvenPoolSlots(MOUSE_REGION * pRegion, INT32 iReason )
|
|||||||
if( ( sSelMapX == gWorldSectorX )&&( gWorldSectorY == sSelMapY ) &&(gbWorldSectorZ == iCurrentMapSectorZ ) )
|
if( ( sSelMapX == gWorldSectorX )&&( gWorldSectorY == sSelMapY ) &&(gbWorldSectorZ == iCurrentMapSectorZ ) )
|
||||||
{
|
{
|
||||||
// notify
|
// notify
|
||||||
pSoldier = &( Menptr[ gCharactersList[ bSelectedInfoChar ].usSolID ] );
|
|
||||||
|
|
||||||
sDistanceFromObject = PythSpacesAway( sObjectSourceGridNo, pSoldier->sGridNo);
|
sDistanceFromObject = PythSpacesAway( sObjectSourceGridNo, pSelectedSoldier->sGridNo);
|
||||||
|
|
||||||
/* if( sDistanceFromObject > MAX_DISTANCE_TO_PICKUP_ITEM )
|
/* if( sDistanceFromObject > MAX_DISTANCE_TO_PICKUP_ITEM )
|
||||||
{
|
{
|
||||||
// see for the loaded sector if the merc is cloase enough?
|
// see for the loaded sector if the merc is cloase enough?
|
||||||
swprintf( sString, pMapInventoryErrorString[ 0 ], Menptr[ gCharactersList[ bSelectedInfoChar ].usSolID ].name );
|
swprintf( sString, pMapInventoryErrorString[ 0 ], pSelectedSoldier->name );
|
||||||
DoMapMessageBox( MSG_BOX_BASIC_STYLE, sString, MAP_SCREEN, MSG_BOX_FLAG_OK, NULL );
|
DoMapMessageBox( MSG_BOX_BASIC_STYLE, sString, MAP_SCREEN, MSG_BOX_FLAG_OK, NULL );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -1718,10 +1724,11 @@ void MapInvenPoolSlots(MOUSE_REGION * pRegion, INT32 iReason )
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{//we have an item on cursor
|
{//we have an item on cursor
|
||||||
|
SOLDIERTYPE* pSelectedSoldier = gCharactersList[bSelectedInfoChar].usSolID;
|
||||||
|
|
||||||
// if in battle inform player they will have to do this in tactical
|
// if in battle inform player they will have to do this in tactical
|
||||||
// if( ( gTacticalStatus.fEnemyInSector ) ||( ( sSelMapX == gWorldSectorX ) && ( sSelMapY == gWorldSectorY ) && ( iCurrentMapSectorZ == gbWorldSectorZ ) && ( gTacticalStatus.uiFlags & INCOMBAT ) ) )
|
// if( ( gTacticalStatus.fEnemyInSector ) ||( ( sSelMapX == gWorldSectorX ) && ( sSelMapY == gWorldSectorY ) && ( iCurrentMapSectorZ == gbWorldSectorZ ) && ( gTacticalStatus.uiFlags & INCOMBAT ) ) )
|
||||||
if( !CanPlayerUseSectorInventory( &Menptr[ gCharactersList[ bSelectedInfoChar ].usSolID ] ) )
|
if( !CanPlayerUseSectorInventory(pSelectedSoldier) )
|
||||||
{
|
{
|
||||||
DoMapMessageBox( MSG_BOX_BASIC_STYLE, pMapInventoryErrorString[ 4 ], MAP_SCREEN, MSG_BOX_FLAG_OK, NULL );
|
DoMapMessageBox( MSG_BOX_BASIC_STYLE, pMapInventoryErrorString[ 4 ], MAP_SCREEN, MSG_BOX_FLAG_OK, NULL );
|
||||||
return;
|
return;
|
||||||
@@ -1795,7 +1802,7 @@ void MapInvenPoolSlots(MOUSE_REGION * pRegion, INT32 iReason )
|
|||||||
/*
|
/*
|
||||||
if ( fShowInventoryFlag && bSelectedInfoChar >= 0 )
|
if ( fShowInventoryFlag && bSelectedInfoChar >= 0 )
|
||||||
{
|
{
|
||||||
ReevaluateItemHatches( MercPtrs[ gCharactersList[ bSelectedInfoChar ].usSolID ], FALSE );
|
ReevaluateItemHatches( gCharactersList[ bSelectedInfoChar ].usSolID, FALSE );
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
@@ -2471,7 +2478,7 @@ void BeginInventoryPoolPtr( OBJECTTYPE *pInventorySlot )
|
|||||||
|
|
||||||
if ( _KeyDown ( CTRL ))//MM: Pass item to selected merc. Delete if none selected.
|
if ( _KeyDown ( CTRL ))//MM: Pass item to selected merc. Delete if none selected.
|
||||||
{
|
{
|
||||||
SOLDIERTYPE *pSoldier = &Menptr[ gCharactersList[ bSelectedInfoChar ].usSolID ];
|
SOLDIERTYPE *pSoldier = gCharactersList[ bSelectedInfoChar ].usSolID;
|
||||||
bool placedAllObjects = false;
|
bool placedAllObjects = false;
|
||||||
|
|
||||||
if(pSoldier->exists() == true)
|
if(pSoldier->exists() == true)
|
||||||
@@ -2575,7 +2582,7 @@ void BeginInventoryPoolPtr( OBJECTTYPE *pInventorySlot )
|
|||||||
|
|
||||||
if ( fShowInventoryFlag && bSelectedInfoChar >= 0 )
|
if ( fShowInventoryFlag && bSelectedInfoChar >= 0 )
|
||||||
{
|
{
|
||||||
ReevaluateItemHatches( MercPtrs[ gCharactersList[ bSelectedInfoChar ].usSolID ], FALSE );
|
ReevaluateItemHatches( gCharactersList[ bSelectedInfoChar ].usSolID, FALSE );
|
||||||
fTeamPanelDirty = TRUE;
|
fTeamPanelDirty = TRUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2643,7 +2650,7 @@ void BeginInventoryPoolPtr( OBJECTTYPE *pInventorySlot )
|
|||||||
|
|
||||||
if ( fShowInventoryFlag && bSelectedInfoChar >= 0 )
|
if ( fShowInventoryFlag && bSelectedInfoChar >= 0 )
|
||||||
{
|
{
|
||||||
ReevaluateItemHatches( MercPtrs[ gCharactersList[ bSelectedInfoChar ].usSolID ], FALSE );
|
ReevaluateItemHatches( gCharactersList[ bSelectedInfoChar ].usSolID, FALSE );
|
||||||
fTeamPanelDirty = TRUE;
|
fTeamPanelDirty = TRUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3015,7 +3022,7 @@ void TemplateNameInputCallBack(UINT8 ubResult)
|
|||||||
{
|
{
|
||||||
if (ubResult == MSG_BOX_RETURN_OK && wcscmp(gszMsgBoxInputString, L"") > 0)
|
if (ubResult == MSG_BOX_RETURN_OK && wcscmp(gszMsgBoxInputString, L"") > 0)
|
||||||
{
|
{
|
||||||
SOLDIERTYPE* pSoldier = &Menptr[gCharactersList[bSelectedInfoChar].usSolID];
|
SOLDIERTYPE* pSoldier = gCharactersList[bSelectedInfoChar].usSolID;
|
||||||
if (pSoldier)
|
if (pSoldier)
|
||||||
{
|
{
|
||||||
WriteEquipmentTemplate(pSoldier, gszMsgBoxInputString);
|
WriteEquipmentTemplate(pSoldier, gszMsgBoxInputString);
|
||||||
@@ -3047,7 +3054,7 @@ void MapInventoryWriteEquipmentTemplate(GUI_BUTTON *btn, INT32 reason)
|
|||||||
{
|
{
|
||||||
if ( btn->uiFlags & (BUTTON_CLICKED_ON) )
|
if ( btn->uiFlags & (BUTTON_CLICKED_ON) )
|
||||||
{
|
{
|
||||||
SOLDIERTYPE* pSoldier = &Menptr[gCharactersList[bSelectedInfoChar].usSolID];
|
SOLDIERTYPE* pSoldier = gCharactersList[bSelectedInfoChar].usSolID;
|
||||||
if ( pSoldier )
|
if ( pSoldier )
|
||||||
{
|
{
|
||||||
DoMessageBox( MSG_BOX_BASIC_SMALL_BUTTONS, szGearTemplateText[0], guiCurrentScreen, MSG_BOX_FLAG_INPUTBOX, TemplateNameInputCallBack, NULL );
|
DoMessageBox( MSG_BOX_BASIC_SMALL_BUTTONS, szGearTemplateText[0], guiCurrentScreen, MSG_BOX_FLAG_INPUTBOX, TemplateNameInputCallBack, NULL );
|
||||||
@@ -3072,7 +3079,7 @@ void MapInventoryReadEquipmentTemplate(GUI_BUTTON *btn, INT32 reason)
|
|||||||
{
|
{
|
||||||
if ( btn->uiFlags & (BUTTON_CLICKED_ON) )
|
if ( btn->uiFlags & (BUTTON_CLICKED_ON) )
|
||||||
{
|
{
|
||||||
SOLDIERTYPE* pSoldier = &Menptr[gCharactersList[bSelectedInfoChar].usSolID];
|
SOLDIERTYPE* pSoldier = gCharactersList[bSelectedInfoChar].usSolID;
|
||||||
if ( pSoldier &&
|
if ( pSoldier &&
|
||||||
pSoldier->sSectorX == sSelMapX && pSoldier->sSectorY == sSelMapY && pSoldier->bSectorZ == iCurrentMapSectorZ &&
|
pSoldier->sSectorX == sSelMapX && pSoldier->sSectorY == sSelMapY && pSoldier->bSectorZ == iCurrentMapSectorZ &&
|
||||||
!pSoldier->flags.fBetweenSectors )
|
!pSoldier->flags.fBetweenSectors )
|
||||||
@@ -3525,11 +3532,12 @@ void HandleButtonStatesWhileMapInventoryActive( void )
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Selected Merc is in sector? Or is in combat?
|
// Selected Merc is in sector? Or is in combat?
|
||||||
if(MercPtrs[gCharactersList[bSelectedInfoChar].usSolID]->sSectorX != sSelMapX ||
|
SOLDIERTYPE* pSoldier = gCharactersList[bSelectedInfoChar].usSolID;
|
||||||
MercPtrs[gCharactersList[bSelectedInfoChar].usSolID]->sSectorY != sSelMapY ||
|
if( pSoldier->sSectorX != sSelMapX ||
|
||||||
MercPtrs[gCharactersList[bSelectedInfoChar].usSolID]->bSectorZ != iCurrentMapSectorZ ||
|
pSoldier->sSectorY != sSelMapY ||
|
||||||
MercPtrs[gCharactersList[bSelectedInfoChar].usSolID]->flags.fBetweenSectors ||
|
pSoldier->bSectorZ != iCurrentMapSectorZ ||
|
||||||
!CanPlayerUseSectorInventory( &(Menptr[ gCharactersList[ bSelectedInfoChar ].usSolID ]) ) )
|
pSoldier->flags.fBetweenSectors ||
|
||||||
|
!CanPlayerUseSectorInventory( pSoldier ) )
|
||||||
{
|
{
|
||||||
DisableButton( guiMapInvenSortButton[ 0 ] );
|
DisableButton( guiMapInvenSortButton[ 0 ] );
|
||||||
DisableButton( guiMapInvenSortButton[ 1 ] );
|
DisableButton( guiMapInvenSortButton[ 1 ] );
|
||||||
@@ -3640,7 +3648,7 @@ void HandleMouseInCompatableItemForMapSectorInventory( INT32 iCurrentSlot )
|
|||||||
if( fShowInventoryFlag )
|
if( fShowInventoryFlag )
|
||||||
{
|
{
|
||||||
//Soldier inventory is shown, highlight those items
|
//Soldier inventory is shown, highlight those items
|
||||||
pSoldier = &Menptr[ gCharactersList[ bSelectedInfoChar ].usSolID ];
|
pSoldier = gCharactersList[ bSelectedInfoChar ].usSolID;
|
||||||
if( pSoldier )
|
if( pSoldier )
|
||||||
{
|
{
|
||||||
if( HandleCompatibleAmmoUIForMapScreen( pSoldier, iCurrentSlot + ( iCurrentInventoryPoolPage * MAP_INVENTORY_POOL_SLOT_COUNT ), TRUE, FALSE ) )
|
if( HandleCompatibleAmmoUIForMapScreen( pSoldier, iCurrentSlot + ( iCurrentInventoryPoolPage * MAP_INVENTORY_POOL_SLOT_COUNT ), TRUE, FALSE ) )
|
||||||
@@ -4815,7 +4823,7 @@ void SortSectorInventoryAmmo(bool useBoxes)
|
|||||||
OBJECTTYPE newCrate;
|
OBJECTTYPE newCrate;
|
||||||
int loopCount = 0;
|
int loopCount = 0;
|
||||||
|
|
||||||
SOLDIERTYPE * pSoldier = &(Menptr[ gCharactersList[ bSelectedInfoChar ].usSolID ]);
|
SOLDIERTYPE * pSoldier = gCharactersList[ bSelectedInfoChar ].usSolID;
|
||||||
|
|
||||||
AssertMsg( pSoldier != NULL, "Sector Inventory: Attempting ammo sort without valid selected soldier?" );
|
AssertMsg( pSoldier != NULL, "Sector Inventory: Attempting ammo sort without valid selected soldier?" );
|
||||||
|
|
||||||
@@ -4957,7 +4965,7 @@ void SortSectorInventoryEjectAmmo()
|
|||||||
{
|
{
|
||||||
OBJECTTYPE gTempObject;
|
OBJECTTYPE gTempObject;
|
||||||
|
|
||||||
SOLDIERTYPE * pSoldier = &(Menptr[ gCharactersList[ bSelectedInfoChar ].usSolID ]);
|
SOLDIERTYPE * pSoldier = gCharactersList[ bSelectedInfoChar ].usSolID;
|
||||||
|
|
||||||
for ( UINT32 uiLoop = 0; uiLoop < pInventoryPoolList.size(); uiLoop++ ) //for all items in sector
|
for ( UINT32 uiLoop = 0; uiLoop < pInventoryPoolList.size(); uiLoop++ ) //for all items in sector
|
||||||
{
|
{
|
||||||
@@ -5006,7 +5014,7 @@ void SortSectorInventoryEmptyLBE() {
|
|||||||
// current item
|
// current item
|
||||||
WORLDITEM * pInventoryItem = NULL;
|
WORLDITEM * pInventoryItem = NULL;
|
||||||
|
|
||||||
SOLDIERTYPE * pSoldier = &(Menptr[gCharactersList[bSelectedInfoChar].usSolID]);
|
SOLDIERTYPE * pSoldier = gCharactersList[bSelectedInfoChar].usSolID;
|
||||||
|
|
||||||
for (UINT32 uiLoop = 0; uiLoop < pInventoryPoolList.size(); uiLoop++) //for all items in sector
|
for (UINT32 uiLoop = 0; uiLoop < pInventoryPoolList.size(); uiLoop++) //for all items in sector
|
||||||
{
|
{
|
||||||
@@ -5081,7 +5089,7 @@ void SortSectorInventorySeparateAttachments()
|
|||||||
WORLDITEM * pInventoryItem = NULL;
|
WORLDITEM * pInventoryItem = NULL;
|
||||||
|
|
||||||
|
|
||||||
SOLDIERTYPE * pSoldier = &(Menptr[gCharactersList[bSelectedInfoChar].usSolID]);
|
SOLDIERTYPE * pSoldier = gCharactersList[bSelectedInfoChar].usSolID;
|
||||||
|
|
||||||
for (UINT32 uiLoop = 0; uiLoop < pInventoryPoolList.size(); uiLoop++) //for all items in sector
|
for (UINT32 uiLoop = 0; uiLoop < pInventoryPoolList.size(); uiLoop++) //for all items in sector
|
||||||
{
|
{
|
||||||
@@ -5154,7 +5162,7 @@ void SortSectorInventoryStackAndMerge(bool ammoOnly )
|
|||||||
{
|
{
|
||||||
OBJECTTYPE * StackObject;
|
OBJECTTYPE * StackObject;
|
||||||
|
|
||||||
SOLDIERTYPE * pSoldier = &(Menptr[ gCharactersList[ bSelectedInfoChar ].usSolID ]);
|
SOLDIERTYPE * pSoldier = gCharactersList[ bSelectedInfoChar ].usSolID;
|
||||||
|
|
||||||
for ( UINT32 uiLoop = 0; uiLoop < pInventoryPoolList.size(); uiLoop++ )
|
for ( UINT32 uiLoop = 0; uiLoop < pInventoryPoolList.size(); uiLoop++ )
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1298,7 +1298,7 @@ INT32 ShowOnDutyTeam( INT16 sMapX, INT16 sMapY )
|
|||||||
// run through list
|
// run through list
|
||||||
while(gCharactersList[ubCounter].fValid)
|
while(gCharactersList[ubCounter].fValid)
|
||||||
{
|
{
|
||||||
pSoldier = MercPtrs[ gCharactersList[ ubCounter ].usSolID ];
|
pSoldier = gCharactersList[ ubCounter ].usSolID;
|
||||||
|
|
||||||
if( !( pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE ) &&
|
if( !( pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE ) &&
|
||||||
( pSoldier->sSectorX == sMapX) &&
|
( pSoldier->sSectorX == sMapX) &&
|
||||||
@@ -1350,7 +1350,7 @@ INT32 ShowAssignedTeam(INT16 sMapX, INT16 sMapY, INT32 iCount)
|
|||||||
|
|
||||||
while(gCharactersList[ubCounter].fValid)
|
while(gCharactersList[ubCounter].fValid)
|
||||||
{
|
{
|
||||||
pSoldier = MercPtrs[ gCharactersList[ ubCounter ].usSolID ];
|
pSoldier = gCharactersList[ ubCounter ].usSolID;
|
||||||
|
|
||||||
// given number of on duty members, find number of assigned chars
|
// given number of on duty members, find number of assigned chars
|
||||||
// start at beginning of list, look for people who are in sector and assigned
|
// start at beginning of list, look for people who are in sector and assigned
|
||||||
@@ -7126,7 +7126,7 @@ UINT8 NumActiveCharactersInSector( INT16 sSectorX, INT16 sSectorY, INT16 bSector
|
|||||||
{
|
{
|
||||||
if( gCharactersList[ iCounter ].fValid )
|
if( gCharactersList[ iCounter ].fValid )
|
||||||
{
|
{
|
||||||
pSoldier = &( Menptr[ gCharactersList[ iCounter ].usSolID ] );
|
pSoldier = gCharactersList[ iCounter ].usSolID;
|
||||||
|
|
||||||
if( pSoldier->bActive && ( pSoldier->stats.bLife > 0 ) &&
|
if( pSoldier->bActive && ( pSoldier->stats.bLife > 0 ) &&
|
||||||
( pSoldier->bAssignment != ASSIGNMENT_POW ) && ( pSoldier->bAssignment != IN_TRANSIT ) )
|
( pSoldier->bAssignment != ASSIGNMENT_POW ) && ( pSoldier->bAssignment != IN_TRANSIT ) )
|
||||||
|
|||||||
@@ -552,7 +552,7 @@ void ResetAssignmentsForMercsTrainingUnpaidSectorsInSelectedList( UINT8 ubMiliti
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
pSoldier = &Menptr[ gCharactersList[ iCounter ].usSolID ];
|
pSoldier = gCharactersList[ iCounter ].usSolID;
|
||||||
|
|
||||||
if( pSoldier->bActive == FALSE )
|
if( pSoldier->bActive == FALSE )
|
||||||
{
|
{
|
||||||
@@ -586,7 +586,7 @@ void ResetAssignmentOfMercsThatWereTrainingMilitiaInThisSector( INT16 sSectorX,
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
pSoldier = &Menptr[ gCharactersList[ iCounter ].usSolID ];
|
pSoldier = gCharactersList[ iCounter ].usSolID;
|
||||||
|
|
||||||
if( pSoldier->bActive == FALSE )
|
if( pSoldier->bActive == FALSE )
|
||||||
{
|
{
|
||||||
@@ -618,7 +618,7 @@ void DeselectSelectedListMercsWhoCantMoveWithThisGuy( SOLDIERTYPE *pSoldier )
|
|||||||
{
|
{
|
||||||
if( fSelectedListOfMercsForMapScreen[ iCounter ] == TRUE )
|
if( fSelectedListOfMercsForMapScreen[ iCounter ] == TRUE )
|
||||||
{
|
{
|
||||||
pSoldier2 = &( Menptr[ gCharactersList[ iCounter ].usSolID ] );
|
pSoldier2 = gCharactersList[ iCounter ].usSolID;
|
||||||
|
|
||||||
// skip the guy we are
|
// skip the guy we are
|
||||||
if ( pSoldier == pSoldier2 )
|
if ( pSoldier == pSoldier2 )
|
||||||
@@ -707,7 +707,7 @@ void SelectUnselectedMercsWhoMustMoveWithThisGuy( void )
|
|||||||
// if not already selected
|
// if not already selected
|
||||||
if( fSelectedListOfMercsForMapScreen[ iCounter ] == FALSE )
|
if( fSelectedListOfMercsForMapScreen[ iCounter ] == FALSE )
|
||||||
{
|
{
|
||||||
pSoldier = &( Menptr[ gCharactersList[ iCounter ].usSolID ] );
|
pSoldier = gCharactersList[ iCounter ].usSolID;
|
||||||
|
|
||||||
// if on a squad or in a vehicle
|
// if on a squad or in a vehicle
|
||||||
if ( ( pSoldier->bAssignment < ON_DUTY ) || ( pSoldier->bAssignment == VEHICLE ) )
|
if ( ( pSoldier->bAssignment < ON_DUTY ) || ( pSoldier->bAssignment == VEHICLE ) )
|
||||||
@@ -735,7 +735,7 @@ BOOLEAN AnyMercInSameSquadOrVehicleIsSelected( SOLDIERTYPE *pSoldier )
|
|||||||
// if selected
|
// if selected
|
||||||
if( fSelectedListOfMercsForMapScreen[ iCounter ] == TRUE )
|
if( fSelectedListOfMercsForMapScreen[ iCounter ] == TRUE )
|
||||||
{
|
{
|
||||||
pSoldier2 = &( Menptr[ gCharactersList[ iCounter ].usSolID ] );
|
pSoldier2 = gCharactersList[ iCounter ].usSolID;
|
||||||
|
|
||||||
// if they have the same assignment
|
// if they have the same assignment
|
||||||
if( pSoldier->bAssignment == pSoldier2->bAssignment )
|
if( pSoldier->bAssignment == pSoldier2->bAssignment )
|
||||||
@@ -1295,10 +1295,10 @@ void CheckAndUpdateBasedOnContractTimes( void )
|
|||||||
if( gCharactersList[iCounter].fValid == TRUE )
|
if( gCharactersList[iCounter].fValid == TRUE )
|
||||||
{
|
{
|
||||||
// what kind of merc
|
// what kind of merc
|
||||||
if(Menptr[gCharactersList[iCounter].usSolID].ubWhatKindOfMercAmI == MERC_TYPE__AIM_MERC)
|
if(gCharactersList[iCounter].usSolID->ubWhatKindOfMercAmI == MERC_TYPE__AIM_MERC)
|
||||||
{
|
{
|
||||||
// amount of time left on contract
|
// amount of time left on contract
|
||||||
iTimeRemaining=Menptr[gCharactersList[iCounter].usSolID].iEndofContractTime-GetWorldTotalMin();
|
iTimeRemaining = gCharactersList[iCounter].usSolID->iEndofContractTime - GetWorldTotalMin();
|
||||||
if(iTimeRemaining >60*24)
|
if(iTimeRemaining >60*24)
|
||||||
{
|
{
|
||||||
// more than a day, display in green
|
// more than a day, display in green
|
||||||
@@ -1329,9 +1329,9 @@ void CheckAndUpdateBasedOnContractTimes( void )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if( Menptr[gCharactersList[iCounter].usSolID].ubWhatKindOfMercAmI == MERC_TYPE__MERC )
|
else if( gCharactersList[iCounter].usSolID->ubWhatKindOfMercAmI == MERC_TYPE__MERC )
|
||||||
{
|
{
|
||||||
iTimeRemaining = Menptr[gCharactersList[iCounter].usSolID].iTotalContractLength;
|
iTimeRemaining = gCharactersList[iCounter].usSolID->iTotalContractLength;
|
||||||
|
|
||||||
if( iTimeRemaining != iOldContractTimes[ iCounter ])
|
if( iTimeRemaining != iOldContractTimes[ iCounter ])
|
||||||
{
|
{
|
||||||
@@ -1395,7 +1395,7 @@ void HandleDisplayOfSelectedMercArrows( void )
|
|||||||
if( gCharactersList[ ubCount + FIRSTmercTOdisplay ].fValid == TRUE )
|
if( gCharactersList[ ubCount + FIRSTmercTOdisplay ].fValid == TRUE )
|
||||||
{
|
{
|
||||||
// are they in the selected list or int he same mvt group as this guy
|
// are they in the selected list or int he same mvt group as this guy
|
||||||
if( ( IsEntryInSelectedListSet( ubCount + FIRSTmercTOdisplay ) == TRUE ) || ( ( GetSelectedDestChar() != - 1 ) ? ( ( Menptr[ gCharactersList[ ubCount + FIRSTmercTOdisplay ].usSolID ].ubGroupID != 0 ) ? ( Menptr[ gCharactersList[GetSelectedDestChar()].usSolID ].ubGroupID == Menptr[ gCharactersList[ ubCount + FIRSTmercTOdisplay ].usSolID ].ubGroupID ) : FALSE ) : FALSE ) )
|
if( ( IsEntryInSelectedListSet( ubCount + FIRSTmercTOdisplay ) == TRUE ) || ( ( GetSelectedDestChar() != - 1 ) ? ( ( gCharactersList[ ubCount + FIRSTmercTOdisplay ].usSolID->ubGroupID != 0 ) ? ( gCharactersList[GetSelectedDestChar()].usSolID->ubGroupID == gCharactersList[ ubCount + FIRSTmercTOdisplay ].usSolID->ubGroupID ) : FALSE ) : FALSE ) )
|
||||||
{
|
{
|
||||||
sYPosition = y + ( ubCount * ( Y_SIZE + 2) ) - 1;
|
sYPosition = y + ( ubCount * ( Y_SIZE + 2) ) - 1;
|
||||||
|
|
||||||
@@ -1426,10 +1426,15 @@ void HandleDisplayOfItemPopUpForSector( INT16 sMapX, INT16 sMapY, INT16 sMapZ )
|
|||||||
{
|
{
|
||||||
if( gCharactersList[ bSelectedInfoChar ].fValid == TRUE )
|
if( gCharactersList[ bSelectedInfoChar ].fValid == TRUE )
|
||||||
{
|
{
|
||||||
if( ( Menptr[ gCharactersList[ bSelectedInfoChar ].usSolID].sSectorX == sMapX ) && ( Menptr[ gCharactersList[ bSelectedInfoChar ].usSolID].sSectorY == sMapY ) && ( Menptr[ gCharactersList[ bSelectedInfoChar ].usSolID].bSectorZ == sMapZ ) && ( Menptr[ gCharactersList[ bSelectedInfoChar ].usSolID].bActive ) && ( Menptr[ gCharactersList[ bSelectedInfoChar ].usSolID].stats.bLife >= OKLIFE ) )
|
SOLDIERTYPE* pSoldier = gCharactersList[bSelectedInfoChar].usSolID;
|
||||||
|
if( ( pSoldier->sSectorX == sMapX ) &&
|
||||||
|
( pSoldier->sSectorY == sMapY ) &&
|
||||||
|
( pSoldier->bSectorZ == sMapZ ) &&
|
||||||
|
( pSoldier->bActive ) &&
|
||||||
|
( pSoldier->stats.bLife >= OKLIFE ) )
|
||||||
{
|
{
|
||||||
// valid character
|
// valid character
|
||||||
InitializeItemPickupMenu( &( Menptr[ gCharactersList[ bSelectedInfoChar ].usSolID] ), NOWHERE , pItemPool, MAP_INVEN_POOL_X, MAP_INVEN_POOL_Y, -1 );
|
InitializeItemPickupMenu( pSoldier, NOWHERE , pItemPool, MAP_INVEN_POOL_X, MAP_INVEN_POOL_Y, -1 );
|
||||||
fWasInited = TRUE;
|
fWasInited = TRUE;
|
||||||
|
|
||||||
CreateScreenMaskForInventoryPoolPopUp( );
|
CreateScreenMaskForInventoryPoolPopUp( );
|
||||||
@@ -1937,19 +1942,19 @@ void UpdateCharRegionHelpText( void )
|
|||||||
if( ( bSelectedInfoChar != -1 ) && ( gCharactersList[ bSelectedInfoChar ].fValid == TRUE ) )
|
if( ( bSelectedInfoChar != -1 ) && ( gCharactersList[ bSelectedInfoChar ].fValid == TRUE ) )
|
||||||
{
|
{
|
||||||
// valid soldier selected
|
// valid soldier selected
|
||||||
pSoldier = MercPtrs[ gCharactersList[ bSelectedInfoChar ].usSolID ];
|
pSoldier = gCharactersList[ bSelectedInfoChar ].usSolID;
|
||||||
|
|
||||||
// health/energy/morale
|
// health/energy/morale
|
||||||
if( pSoldier->bAssignment != ASSIGNMENT_POW && pSoldier->bAssignment != ASSIGNMENT_MINIEVENT && pSoldier->bAssignment != ASSIGNMENT_REBELCOMMAND )
|
if( pSoldier->bAssignment != ASSIGNMENT_POW && pSoldier->bAssignment != ASSIGNMENT_MINIEVENT && pSoldier->bAssignment != ASSIGNMENT_REBELCOMMAND )
|
||||||
{
|
{
|
||||||
if ( pSoldier->stats.bLife != 0 )
|
if ( pSoldier->stats.bLife != 0 )
|
||||||
{
|
{
|
||||||
if ( AM_A_ROBOT( MercPtrs[ gCharactersList[ bSelectedInfoChar ].usSolID ] ) )
|
if ( AM_A_ROBOT(pSoldier) )
|
||||||
{
|
{
|
||||||
// robot (condition only)
|
// robot (condition only)
|
||||||
swprintf( sString, L"%s: %d/%d", pMapScreenStatusStrings[ 3 ], pSoldier->stats.bLife, pSoldier->stats.bLifeMax );
|
swprintf( sString, L"%s: %d/%d", pMapScreenStatusStrings[ 3 ], pSoldier->stats.bLife, pSoldier->stats.bLifeMax );
|
||||||
}
|
}
|
||||||
else if ( Menptr[ gCharactersList[ bSelectedInfoChar ].usSolID ].flags.uiStatusFlags & SOLDIER_VEHICLE )
|
else if (pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE )
|
||||||
{
|
{
|
||||||
// vehicle (condition/fuel)
|
// vehicle (condition/fuel)
|
||||||
swprintf( sString, L"%s: %d/%d, %s: %d/%d",
|
swprintf( sString, L"%s: %d/%d, %s: %d/%d",
|
||||||
@@ -2491,7 +2496,7 @@ BOOLEAN MapscreenCanPassItemToCharNum( INT32 iNewCharSlot )
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
pNewSoldier = MercPtrs[ gCharactersList[ iNewCharSlot ].usSolID ];
|
pNewSoldier = gCharactersList[ iNewCharSlot ].usSolID;
|
||||||
|
|
||||||
// if in a hostile sector, disallow
|
// if in a hostile sector, disallow
|
||||||
if (gTacticalStatus.fEnemyInSector && pNewSoldier->bInSector)
|
if (gTacticalStatus.fEnemyInSector && pNewSoldier->bInSector)
|
||||||
@@ -2531,7 +2536,7 @@ BOOLEAN MapscreenCanPassItemToCharNum( INT32 iNewCharSlot )
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
pOldSoldier = MercPtrs[ gCharactersList[ bSelectedInfoChar ].usSolID ];
|
pOldSoldier = gCharactersList[ bSelectedInfoChar ].usSolID;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3633,7 +3638,7 @@ void SetUpMovingListsForSector( INT16 sSectorX, INT16 sSectorY, INT16 sSectorZ )
|
|||||||
{
|
{
|
||||||
if( gCharactersList[ iCounter ].fValid )
|
if( gCharactersList[ iCounter ].fValid )
|
||||||
{
|
{
|
||||||
pSoldier = MercPtrs[ gCharactersList[ iCounter ].usSolID ];
|
pSoldier = gCharactersList[ iCounter ].usSolID;
|
||||||
|
|
||||||
if( ( pSoldier->bActive ) &&
|
if( ( pSoldier->bActive ) &&
|
||||||
( pSoldier->bAssignment != IN_TRANSIT ) && ( pSoldier->bAssignment != ASSIGNMENT_POW ) && !SPY_LOCATION( pSoldier->bAssignment ) && ( pSoldier->bAssignment != ASSIGNMENT_MINIEVENT ) && ( pSoldier->bAssignment != ASSIGNMENT_REBELCOMMAND ) &&
|
( pSoldier->bAssignment != IN_TRANSIT ) && ( pSoldier->bAssignment != ASSIGNMENT_POW ) && !SPY_LOCATION( pSoldier->bAssignment ) && ( pSoldier->bAssignment != ASSIGNMENT_MINIEVENT ) && ( pSoldier->bAssignment != ASSIGNMENT_REBELCOMMAND ) &&
|
||||||
@@ -4584,7 +4589,7 @@ void HandleSettingTheSelectedListOfMercs( void )
|
|||||||
// is the current guy a valid character?
|
// is the current guy a valid character?
|
||||||
if( gCharactersList[ iCounter ].fValid == TRUE )
|
if( gCharactersList[ iCounter ].fValid == TRUE )
|
||||||
{
|
{
|
||||||
pSoldier = MercPtrs[ gCharactersList[ iCounter ].usSolID ];
|
pSoldier = gCharactersList[ iCounter ].usSolID;
|
||||||
|
|
||||||
if ( pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE )
|
if ( pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE )
|
||||||
{
|
{
|
||||||
@@ -4620,7 +4625,7 @@ void HandleSettingTheSelectedListOfMercs( void )
|
|||||||
if( GetSelectedDestChar() != -1 )
|
if( GetSelectedDestChar() != -1 )
|
||||||
{
|
{
|
||||||
INT8 pbErrorNumber = -1;
|
INT8 pbErrorNumber = -1;
|
||||||
pSoldier = MercPtrs[gCharactersList[GetSelectedDestChar()].usSolID];
|
pSoldier = gCharactersList[GetSelectedDestChar()].usSolID;
|
||||||
INT8 bSquadValue = pSoldier->bAssignment;
|
INT8 bSquadValue = pSoldier->bAssignment;
|
||||||
if (bSquadValue == VEHICLE)
|
if (bSquadValue == VEHICLE)
|
||||||
{
|
{
|
||||||
@@ -5679,7 +5684,7 @@ void UpdateHelpTextForMapScreenMercIcons( void )
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
// if merc is an AIM merc
|
// if merc is an AIM merc
|
||||||
if( Menptr[ gCharactersList[ bSelectedInfoChar ].usSolID ].ubWhatKindOfMercAmI == MERC_TYPE__AIM_MERC )
|
if( gCharactersList[ bSelectedInfoChar ].usSolID->ubWhatKindOfMercAmI == MERC_TYPE__AIM_MERC )
|
||||||
{
|
{
|
||||||
SetRegionFastHelpText( &(gContractIconRegion), zMarksMapScreenText[ 22 ] );
|
SetRegionFastHelpText( &(gContractIconRegion), zMarksMapScreenText[ 22 ] );
|
||||||
}
|
}
|
||||||
@@ -5689,7 +5694,7 @@ void UpdateHelpTextForMapScreenMercIcons( void )
|
|||||||
}
|
}
|
||||||
|
|
||||||
// if merc has life insurance
|
// if merc has life insurance
|
||||||
if( Menptr[ gCharactersList[ bSelectedInfoChar ].usSolID ].usLifeInsurance > 0 )
|
if( gCharactersList[ bSelectedInfoChar ].usSolID->usLifeInsurance > 0 )
|
||||||
{
|
{
|
||||||
SetRegionFastHelpText( &(gInsuranceIconRegion), zMarksMapScreenText[ 3 ] );
|
SetRegionFastHelpText( &(gInsuranceIconRegion), zMarksMapScreenText[ 3 ] );
|
||||||
}
|
}
|
||||||
@@ -5699,7 +5704,7 @@ void UpdateHelpTextForMapScreenMercIcons( void )
|
|||||||
}
|
}
|
||||||
|
|
||||||
// if merc has a medical deposit
|
// if merc has a medical deposit
|
||||||
if( Menptr[ gCharactersList[ bSelectedInfoChar ].usSolID ].usMedicalDeposit > 0 )
|
if( gCharactersList[ bSelectedInfoChar ].usSolID->usMedicalDeposit > 0 )
|
||||||
{
|
{
|
||||||
SetRegionFastHelpText( &(gDepositIconRegion), zMarksMapScreenText[ 12 ] );
|
SetRegionFastHelpText( &(gDepositIconRegion), zMarksMapScreenText[ 12 ] );
|
||||||
}
|
}
|
||||||
@@ -6310,7 +6315,7 @@ BOOLEAN CanEntireMovementGroupMercIsInMove( SOLDIERTYPE *pSoldier, INT8 *pbError
|
|||||||
if( gCharactersList[ iCounter ].fValid == TRUE )
|
if( gCharactersList[ iCounter ].fValid == TRUE )
|
||||||
{
|
{
|
||||||
// get soldier
|
// get soldier
|
||||||
pCurrentSoldier = &( Menptr[ gCharactersList[ iCounter ].usSolID ] );
|
pCurrentSoldier = gCharactersList[ iCounter ].usSolID;
|
||||||
|
|
||||||
// skip inactive grunts
|
// skip inactive grunts
|
||||||
if( pCurrentSoldier->bActive == FALSE )
|
if( pCurrentSoldier->bActive == FALSE )
|
||||||
|
|||||||
@@ -418,7 +418,7 @@ void CheckForMeanwhileOKStart( )
|
|||||||
SOLDIERTYPE *pSoldier;
|
SOLDIERTYPE *pSoldier;
|
||||||
BOOLEAN fFoundSoldierToInterrogate = FALSE;
|
BOOLEAN fFoundSoldierToInterrogate = FALSE;
|
||||||
UINT32 uiCount = 0;
|
UINT32 uiCount = 0;
|
||||||
for (pSoldier = MercPtrs[gCharactersList[uiCount].usSolID]; gCharactersList[uiCount].fValid; uiCount++, pSoldier++)
|
for (pSoldier = gCharactersList[uiCount].usSolID; gCharactersList[uiCount].fValid; uiCount++, pSoldier++)
|
||||||
{
|
{
|
||||||
if (pSoldier->sSectorX == gModSettings.ubMeanwhileInterrogatePOWSectorX && pSoldier->sSectorY == gModSettings.ubMeanwhileInterrogatePOWSectorY &&
|
if (pSoldier->sSectorX == gModSettings.ubMeanwhileInterrogatePOWSectorX && pSoldier->sSectorY == gModSettings.ubMeanwhileInterrogatePOWSectorY &&
|
||||||
pSoldier->bSectorZ == 0 && pSoldier->bAssignment == ASSIGNMENT_POW && pSoldier->stats.bLife > 0 && gMercProfiles[pSoldier->ubProfile].bMercStatus != MERC_FIRED_AS_A_POW)
|
pSoldier->bSectorZ == 0 && pSoldier->bAssignment == ASSIGNMENT_POW && pSoldier->stats.bLife > 0 && gMercProfiles[pSoldier->ubProfile].bMercStatus != MERC_FIRED_AS_A_POW)
|
||||||
|
|||||||
@@ -1379,7 +1379,7 @@ void HandleCompletionOfTownTrainingByGroupWithTrainer( SOLDIERTYPE *pTrainer, UI
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
pSoldier = &Menptr[ gCharactersList[ iCounter ].usSolID ];
|
pSoldier = gCharactersList[ iCounter ].usSolID;
|
||||||
|
|
||||||
// valid soldier?
|
// valid soldier?
|
||||||
if( pSoldier->bActive == FALSE )
|
if( pSoldier->bActive == FALSE )
|
||||||
@@ -1532,7 +1532,7 @@ void BuildListOfUnpaidTrainableSectors( UINT8 ubMilitiaType )
|
|||||||
// selected?
|
// selected?
|
||||||
if( ( fSelectedListOfMercsForMapScreen[ iCounter ] == TRUE ) || ( iCounter == bSelectedAssignChar ) )
|
if( ( fSelectedListOfMercsForMapScreen[ iCounter ] == TRUE ) || ( iCounter == bSelectedAssignChar ) )
|
||||||
{
|
{
|
||||||
pSoldier = &Menptr[ gCharactersList[ iCounter ].usSolID ];
|
pSoldier = gCharactersList[ iCounter ].usSolID;
|
||||||
|
|
||||||
// HEADROCK HAM 3.6: Two different conditions depending on the type of militia being trained.
|
// HEADROCK HAM 3.6: Two different conditions depending on the type of militia being trained.
|
||||||
if( ubMilitiaType == TOWN_MILITIA )
|
if( ubMilitiaType == TOWN_MILITIA )
|
||||||
|
|||||||
+186
-189
File diff suppressed because it is too large
Load Diff
@@ -150,7 +150,7 @@ void ChangeSelectedMapSector( INT16 sMapX, INT16 sMapY, INT8 bMapZ );
|
|||||||
|
|
||||||
BOOLEAN CanToggleSelectedCharInventory( void );
|
BOOLEAN CanToggleSelectedCharInventory( void );
|
||||||
|
|
||||||
BOOLEAN CanExtendContractForCharSlot( INT8 bCharNumber );
|
BOOLEAN CanExtendContractForCharSlot( INT16 bCharNumber );
|
||||||
|
|
||||||
void TellPlayerWhyHeCantCompressTime( void );
|
void TellPlayerWhyHeCantCompressTime( void );
|
||||||
|
|
||||||
@@ -168,7 +168,7 @@ void CancelChangeArrivalSectorMode( void );
|
|||||||
|
|
||||||
void ExplainWhySkyriderCantFly( void );
|
void ExplainWhySkyriderCantFly( void );
|
||||||
|
|
||||||
BOOLEAN CanChangeSleepStatusForCharSlot( INT8 bCharNumber );
|
BOOLEAN CanChangeSleepStatusForCharSlot( INT16 bCharNumber );
|
||||||
BOOLEAN CanChangeSleepStatusForSoldier( SOLDIERTYPE *pSoldier );
|
BOOLEAN CanChangeSleepStatusForSoldier( SOLDIERTYPE *pSoldier );
|
||||||
|
|
||||||
BOOLEAN MapCharacterHasAccessibleInventory( INT16 bCharNumber );
|
BOOLEAN MapCharacterHasAccessibleInventory( INT16 bCharNumber );
|
||||||
|
|||||||
@@ -2362,16 +2362,17 @@ void addAmmoToPocketPopup( SOLDIERTYPE *pSoldier, INT16 sPocket, POPUP* popup )
|
|||||||
}
|
}
|
||||||
|
|
||||||
POPUP * createPopupForPocket( SOLDIERTYPE *pSoldier, INT16 sPocket ){
|
POPUP * createPopupForPocket( SOLDIERTYPE *pSoldier, INT16 sPocket ){
|
||||||
|
SOLDIERTYPE* pSelectedSoldier = gCharactersList[bSelectedInfoChar].usSolID;
|
||||||
|
|
||||||
if( !(
|
if( !(
|
||||||
guiCurrentItemDescriptionScreen == MAP_SCREEN
|
guiCurrentItemDescriptionScreen == MAP_SCREEN
|
||||||
&& fShowMapInventoryPool
|
&& fShowMapInventoryPool
|
||||||
&& ( ( Menptr[ gCharactersList[ bSelectedInfoChar ].usSolID ].sSectorX == sSelMapX )
|
&& ( ( pSelectedSoldier->sSectorX == sSelMapX )
|
||||||
&& ( Menptr[ gCharactersList[ bSelectedInfoChar ].usSolID ].sSectorY == sSelMapY )
|
&& ( pSelectedSoldier->sSectorY == sSelMapY )
|
||||||
&& ( Menptr[ gCharactersList[ bSelectedInfoChar ].usSolID ].bSectorZ == iCurrentMapSectorZ )
|
&& ( pSelectedSoldier->bSectorZ == iCurrentMapSectorZ )
|
||||||
)
|
)
|
||||||
&& CanPlayerUseSectorInventory( &Menptr[ gCharactersList[ bSelectedInfoChar ].usSolID ] )
|
&& CanPlayerUseSectorInventory( pSelectedSoldier )
|
||||||
) )
|
) )
|
||||||
{
|
{
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
@@ -5853,13 +5854,14 @@ void UpdateAttachmentTooltips(OBJECTTYPE *pObject, UINT8 ubStatusIndex)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
BOOLEAN showAttachmentPopups = FALSE;
|
BOOLEAN showAttachmentPopups = FALSE;
|
||||||
|
SOLDIERTYPE* pSoldier = gCharactersList[bSelectedInfoChar].usSolID;
|
||||||
|
|
||||||
if( guiCurrentItemDescriptionScreen == MAP_SCREEN
|
if( guiCurrentItemDescriptionScreen == MAP_SCREEN
|
||||||
&& fShowMapInventoryPool
|
&& fShowMapInventoryPool
|
||||||
&& ( (Menptr[ gCharactersList[ bSelectedInfoChar ].usSolID ].sSectorX == sSelMapX )
|
&& ( (pSoldier->sSectorX == sSelMapX )
|
||||||
&& ( Menptr[ gCharactersList[ bSelectedInfoChar ].usSolID ].sSectorY == sSelMapY )
|
&& ( pSoldier->sSectorY == sSelMapY )
|
||||||
&& ( Menptr[ gCharactersList[ bSelectedInfoChar ].usSolID ].bSectorZ == iCurrentMapSectorZ ) )
|
&& ( pSoldier->bSectorZ == iCurrentMapSectorZ ) )
|
||||||
&& CanPlayerUseSectorInventory( &Menptr[ gCharactersList[ bSelectedInfoChar ].usSolID ] )
|
&& CanPlayerUseSectorInventory( pSoldier )
|
||||||
&& attachList.size()>0 ) // silversurfer: no need to show popups if we have nothing to display
|
&& attachList.size()>0 ) // silversurfer: no need to show popups if we have nothing to display
|
||||||
{
|
{
|
||||||
showAttachmentPopups = TRUE;
|
showAttachmentPopups = TRUE;
|
||||||
@@ -10546,18 +10548,20 @@ void ItemPopupRegionCallback( MOUSE_REGION * pRegion, INT32 iReason )
|
|||||||
|
|
||||||
if (iReason & MSYS_CALLBACK_REASON_LBUTTON_DWN)
|
if (iReason & MSYS_CALLBACK_REASON_LBUTTON_DWN)
|
||||||
{
|
{
|
||||||
if( ( Menptr[ gCharactersList[ bSelectedInfoChar ].usSolID ].sSectorX != sSelMapX ) ||
|
SOLDIERTYPE* pSelected = gCharactersList[bSelectedInfoChar].usSolID;
|
||||||
( Menptr[ gCharactersList[ bSelectedInfoChar ].usSolID ].sSectorY != sSelMapY ) ||
|
|
||||||
( Menptr[ gCharactersList[ bSelectedInfoChar ].usSolID ].bSectorZ != iCurrentMapSectorZ ) ||
|
if( ( pSelected->sSectorX != sSelMapX ) ||
|
||||||
( Menptr[ gCharactersList[ bSelectedInfoChar ].usSolID ].flags.fBetweenSectors ) )
|
( pSelected->sSectorY != sSelMapY ) ||
|
||||||
|
( pSelected->bSectorZ != iCurrentMapSectorZ ) ||
|
||||||
|
( pSelected->flags.fBetweenSectors ) )
|
||||||
{
|
{
|
||||||
if ( gpItemPointer == NULL )
|
if ( gpItemPointer == NULL )
|
||||||
{
|
{
|
||||||
swprintf( sString, pMapInventoryErrorString[ 2 ], Menptr[ gCharactersList[ bSelectedInfoChar ].usSolID ].name );
|
swprintf( sString, pMapInventoryErrorString[ 2 ], pSelected->name );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
swprintf( sString, pMapInventoryErrorString[ 5 ], Menptr[ gCharactersList[ bSelectedInfoChar ].usSolID ].name );
|
swprintf( sString, pMapInventoryErrorString[ 5 ], pSelected->name );
|
||||||
}
|
}
|
||||||
DoMapMessageBox( MSG_BOX_BASIC_STYLE, sString, MAP_SCREEN, MSG_BOX_FLAG_OK, NULL );
|
DoMapMessageBox( MSG_BOX_BASIC_STYLE, sString, MAP_SCREEN, MSG_BOX_FLAG_OK, NULL );
|
||||||
return;
|
return;
|
||||||
@@ -12824,7 +12828,7 @@ void UpdateItemHatches()
|
|||||||
{
|
{
|
||||||
if ( fShowInventoryFlag && bSelectedInfoChar >= 0 )
|
if ( fShowInventoryFlag && bSelectedInfoChar >= 0 )
|
||||||
{
|
{
|
||||||
pSoldier = MercPtrs[ gCharactersList[ bSelectedInfoChar ].usSolID ];
|
pSoldier = gCharactersList[ bSelectedInfoChar ].usSolID;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -14539,7 +14543,7 @@ void UpdateMercBodyRegionHelpText( )
|
|||||||
wcscpy( sString, L"" );
|
wcscpy( sString, L"" );
|
||||||
|
|
||||||
// valid soldier selected
|
// valid soldier selected
|
||||||
pSoldier = MercPtrs[gCharactersList[bSelectedInfoChar].usSolID];
|
pSoldier = gCharactersList[bSelectedInfoChar].usSolID;
|
||||||
|
|
||||||
// health/energy/morale
|
// health/energy/morale
|
||||||
if ( pSoldier->bAssignment != ASSIGNMENT_POW )
|
if ( pSoldier->bAssignment != ASSIGNMENT_POW )
|
||||||
@@ -14551,7 +14555,7 @@ void UpdateMercBodyRegionHelpText( )
|
|||||||
// robot (condition only)
|
// robot (condition only)
|
||||||
swprintf( sString, L"%s: %d/%d", pMapScreenStatusStrings[3], pSoldier->stats.bLife, pSoldier->stats.bLifeMax );
|
swprintf( sString, L"%s: %d/%d", pMapScreenStatusStrings[3], pSoldier->stats.bLife, pSoldier->stats.bLifeMax );
|
||||||
}
|
}
|
||||||
else if ( Menptr[gCharactersList[bSelectedInfoChar].usSolID].flags.uiStatusFlags & SOLDIER_VEHICLE )
|
else if (pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE )
|
||||||
{
|
{
|
||||||
// vehicle (condition/fuel)
|
// vehicle (condition/fuel)
|
||||||
swprintf( sString, L"%s: %d/%d, %s: %d/%d",
|
swprintf( sString, L"%s: %d/%d, %s: %d/%d",
|
||||||
|
|||||||
@@ -7320,9 +7320,7 @@ void KeyRingItemPanelButtonCallback( MOUSE_REGION * pRegion, INT32 iReason )
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
pSoldier = gCharactersList[ bSelectedInfoChar ].usSolID;
|
||||||
|
|
||||||
pSoldier = &( Menptr[ gCharactersList[ bSelectedInfoChar ].usSolID ] );
|
|
||||||
sStartYPosition = MAP_START_KEYRING_Y;
|
sStartYPosition = MAP_START_KEYRING_Y;
|
||||||
sWidth = 261;
|
sWidth = 261;
|
||||||
sHeight = ( 359 - 107 );
|
sHeight = ( 359 - 107 );
|
||||||
@@ -7457,7 +7455,7 @@ void KeyRingSlotInvClickCallback( MOUSE_REGION * pRegion, INT32 iReason )
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
UINT16 ubSrcID, ubDestID;
|
SoldierID ubSrcID, ubDestID;
|
||||||
BOOLEAN fOKToGo = FALSE;
|
BOOLEAN fOKToGo = FALSE;
|
||||||
BOOLEAN fDeductPoints = FALSE;
|
BOOLEAN fDeductPoints = FALSE;
|
||||||
|
|
||||||
|
|||||||
@@ -51,24 +51,24 @@ bool checkLBEArrayIntegrity(bool verbose) {
|
|||||||
if (!gCharactersList[i].fValid || gCharactersList[i].usSolID >= NOBODY) continue;
|
if (!gCharactersList[i].fValid || gCharactersList[i].usSolID >= NOBODY) continue;
|
||||||
|
|
||||||
SoldierID id = gCharactersList[i].usSolID;
|
SoldierID id = gCharactersList[i].usSolID;
|
||||||
SOLDIERTYPE soldier = Menptr[id];
|
SOLDIERTYPE *soldier = id;
|
||||||
|
|
||||||
if (verbose)ScreenMsg(FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"LBENODE integrity check start: checking soldier items (%s)...", soldier.name);
|
if (verbose)ScreenMsg(FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"LBENODE integrity check start: checking soldier items (%s)...", soldier->name);
|
||||||
|
|
||||||
for (int j = 0; j < soldier.inv.size(); j++) {
|
for (int j = 0; j < soldier->inv.size(); j++) {
|
||||||
OBJECTTYPE * object = &(soldier.inv[j]);
|
OBJECTTYPE * object = &(soldier->inv[j]);
|
||||||
if (object->HasAnyActiveLBEs()) {
|
if (object->HasAnyActiveLBEs()) {
|
||||||
|
|
||||||
if (!checkObjectLBEIntegrity(object)) {
|
if (!checkObjectLBEIntegrity(object)) {
|
||||||
ScreenMsg(FONT_MCOLOR_LTRED, MSG_INTERFACE, L"> LBENODE missing: %s -> %s!", soldier.name, Item[object->usItem].szItemName);
|
ScreenMsg(FONT_MCOLOR_LTRED, MSG_INTERFACE, L"> LBENODE missing: %s -> %s!", soldier->name, Item[object->usItem].szItemName);
|
||||||
integrityCheck = false;
|
integrityCheck = false;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (verbose)ScreenMsg(FONT_MCOLOR_LTGREEN, MSG_INTERFACE, L"> OK: %s -> %s", soldier.name, Item[object->usItem].szItemName);
|
if (verbose)ScreenMsg(FONT_MCOLOR_LTGREEN, MSG_INTERFACE, L"> OK: %s -> %s", soldier->name, Item[object->usItem].szItemName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (verbose)ScreenMsg(FONT_MCOLOR_LTGRAY, MSG_INTERFACE, L"> SKIP: %s -> %s", soldier.name, Item[object->usItem].szItemName);
|
if (verbose)ScreenMsg(FONT_MCOLOR_LTGRAY, MSG_INTERFACE, L"> SKIP: %s -> %s", soldier->name, Item[object->usItem].szItemName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -502,7 +502,7 @@ void MercArrivesCallback( UINT16 ubSoldierID )
|
|||||||
{
|
{
|
||||||
if (gCharactersList[cnt].fValid)
|
if (gCharactersList[cnt].fValid)
|
||||||
{
|
{
|
||||||
pTeamSoldier = &Menptr[gCharactersList[cnt].usSolID];
|
pTeamSoldier = gCharactersList[cnt].usSolID;
|
||||||
if (pTeamSoldier != pSoldier && pTeamSoldier->bAssignment != ASSIGNMENT_DEAD && pTeamSoldier->bAssignment != ASSIGNMENT_POW && pTeamSoldier->bAssignment != IN_TRANSIT && pSoldier->ubStrategicInsertionCode != INSERTION_CODE_CHOPPER)
|
if (pTeamSoldier != pSoldier && pTeamSoldier->bAssignment != ASSIGNMENT_DEAD && pTeamSoldier->bAssignment != ASSIGNMENT_POW && pTeamSoldier->bAssignment != IN_TRANSIT && pSoldier->ubStrategicInsertionCode != INSERTION_CODE_CHOPPER)
|
||||||
{
|
{
|
||||||
force_helidrop = false;
|
force_helidrop = false;
|
||||||
|
|||||||
@@ -1096,7 +1096,7 @@ EquipmentSelection::Functions(UINT32 aVal)
|
|||||||
}
|
}
|
||||||
else if ( aVal < gTemplateVector.size( ) )
|
else if ( aVal < gTemplateVector.size( ) )
|
||||||
{
|
{
|
||||||
SOLDIERTYPE* pSoldier = &Menptr[gCharactersList[bSelectedInfoChar].usSolID];
|
SOLDIERTYPE* pSoldier = gCharactersList[bSelectedInfoChar].usSolID;
|
||||||
if ( pSoldier )
|
if ( pSoldier )
|
||||||
{
|
{
|
||||||
std::string name = gTemplateVector[aVal];
|
std::string name = gTemplateVector[aVal];
|
||||||
|
|||||||
Reference in New Issue
Block a user