mirror of
https://github.com/1dot13/source.git
synced 2026-07-29 13:52:17 +02:00
Convert MapScreenCharacterSt::usSolID to SoldierID
This commit is contained in:
@@ -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( !( pInventoryPoolList[ iCurrentSlot + iFirstSlotOnPage ].usFlags & WORLD_ITEM_REACHABLE ) ||
|
||||
!(( Menptr[ gCharactersList[ bSelectedInfoChar ].usSolID ].sSectorX == sSelMapX ) &&
|
||||
( Menptr[ gCharactersList[ bSelectedInfoChar ].usSolID ].sSectorY == sSelMapY ) &&
|
||||
( Menptr[ gCharactersList[ bSelectedInfoChar ].usSolID ].bSectorZ == iCurrentMapSectorZ )
|
||||
!(( gCharactersList[ bSelectedInfoChar ].usSolID->sSectorX == sSelMapX ) &&
|
||||
( gCharactersList[ bSelectedInfoChar ].usSolID->sSectorY == sSelMapY ) &&
|
||||
( gCharactersList[ bSelectedInfoChar ].usSolID->bSectorZ == iCurrentMapSectorZ )
|
||||
) )
|
||||
{
|
||||
//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;
|
||||
INT32 iOldNumberOfObjects = 0;
|
||||
INT16 sDistanceFromObject = 0;
|
||||
SOLDIERTYPE *pSoldier = NULL;
|
||||
CHAR16 sString[ 128 ];
|
||||
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
|
||||
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
|
||||
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
|
||||
{
|
||||
@@ -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(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
|
||||
// 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.
|
||||
if( !CanPlayerUseSectorInventory( &(Menptr[ gCharactersList[ bSelectedInfoChar ].usSolID ]) ) )
|
||||
if( !CanPlayerUseSectorInventory(pSelectedSoldier) )
|
||||
{
|
||||
DoScreenIndependantMessageBox( New113HAMMessage[ 22 ], MSG_BOX_FLAG_OK, NULL );
|
||||
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))
|
||||
{
|
||||
EmptyWeaponMagazine( &twItem->object, &gItemPointer );
|
||||
InternalMAPBeginItemPointer( MercPtrs[gCharactersList[bSelectedInfoChar].usSolID] );
|
||||
InternalMAPBeginItemPointer( pSelectedSoldier );
|
||||
}
|
||||
else
|
||||
MAPInternalInitItemDescriptionBox( &twItem->object, 0, MercPtrs[gCharactersList[bSelectedInfoChar].usSolID] );
|
||||
MAPInternalInitItemDescriptionBox( &twItem->object, 0, pSelectedSoldier );
|
||||
}
|
||||
}
|
||||
else if(fValidPointer)
|
||||
{
|
||||
// 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 );
|
||||
return;
|
||||
}
|
||||
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;
|
||||
fInterfacePanelDirty = DIRTYLEVEL2;
|
||||
}
|
||||
@@ -1597,11 +1601,13 @@ void MapInvenPoolSlots(MOUSE_REGION * pRegion, INT32 iReason )
|
||||
|
||||
//if( fShowInventoryFlag )
|
||||
{
|
||||
SOLDIERTYPE* pSelectedSoldier = gCharactersList[bSelectedInfoChar].usSolID;
|
||||
|
||||
// not in sector?
|
||||
if( ( Menptr[ gCharactersList[ bSelectedInfoChar ].usSolID ].sSectorX != sSelMapX ) ||
|
||||
( Menptr[ gCharactersList[ bSelectedInfoChar ].usSolID ].sSectorY != sSelMapY ) ||
|
||||
( Menptr[ gCharactersList[ bSelectedInfoChar ].usSolID ].bSectorZ != iCurrentMapSectorZ ) ||
|
||||
( Menptr[ gCharactersList[ bSelectedInfoChar ].usSolID ].flags.fBetweenSectors ) )
|
||||
if( ( pSelectedSoldier->sSectorX != sSelMapX ) ||
|
||||
( pSelectedSoldier->sSectorY != sSelMapY ) ||
|
||||
( pSelectedSoldier->bSectorZ != iCurrentMapSectorZ ) ||
|
||||
( pSelectedSoldier->flags.fBetweenSectors ) )
|
||||
{
|
||||
if ( gpItemPointer == NULL )
|
||||
{
|
||||
@@ -1633,13 +1639,13 @@ void MapInvenPoolSlots(MOUSE_REGION * pRegion, INT32 iReason )
|
||||
}
|
||||
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 );
|
||||
}
|
||||
}
|
||||
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 );
|
||||
}
|
||||
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 ( gpItemPointer == NULL )
|
||||
{
|
||||
SOLDIERTYPE* pSelectedSoldier = gCharactersList[bSelectedInfoChar].usSolID;
|
||||
|
||||
|
||||
// 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( ( ( 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 );
|
||||
return;
|
||||
@@ -1673,14 +1680,13 @@ void MapInvenPoolSlots(MOUSE_REGION * pRegion, INT32 iReason )
|
||||
if( ( sSelMapX == gWorldSectorX )&&( gWorldSectorY == sSelMapY ) &&(gbWorldSectorZ == iCurrentMapSectorZ ) )
|
||||
{
|
||||
// notify
|
||||
pSoldier = &( Menptr[ gCharactersList[ bSelectedInfoChar ].usSolID ] );
|
||||
|
||||
sDistanceFromObject = PythSpacesAway( sObjectSourceGridNo, pSoldier->sGridNo);
|
||||
sDistanceFromObject = PythSpacesAway( sObjectSourceGridNo, pSelectedSoldier->sGridNo);
|
||||
|
||||
/* if( sDistanceFromObject > MAX_DISTANCE_TO_PICKUP_ITEM )
|
||||
{
|
||||
// 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 );
|
||||
return;
|
||||
}
|
||||
@@ -1718,10 +1724,11 @@ void MapInvenPoolSlots(MOUSE_REGION * pRegion, INT32 iReason )
|
||||
}
|
||||
else
|
||||
{//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( ( 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 );
|
||||
return;
|
||||
@@ -1795,7 +1802,7 @@ void MapInvenPoolSlots(MOUSE_REGION * pRegion, INT32 iReason )
|
||||
/*
|
||||
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.
|
||||
{
|
||||
SOLDIERTYPE *pSoldier = &Menptr[ gCharactersList[ bSelectedInfoChar ].usSolID ];
|
||||
SOLDIERTYPE *pSoldier = gCharactersList[ bSelectedInfoChar ].usSolID;
|
||||
bool placedAllObjects = false;
|
||||
|
||||
if(pSoldier->exists() == true)
|
||||
@@ -2575,7 +2582,7 @@ void BeginInventoryPoolPtr( OBJECTTYPE *pInventorySlot )
|
||||
|
||||
if ( fShowInventoryFlag && bSelectedInfoChar >= 0 )
|
||||
{
|
||||
ReevaluateItemHatches( MercPtrs[ gCharactersList[ bSelectedInfoChar ].usSolID ], FALSE );
|
||||
ReevaluateItemHatches( gCharactersList[ bSelectedInfoChar ].usSolID, FALSE );
|
||||
fTeamPanelDirty = TRUE;
|
||||
}
|
||||
}
|
||||
@@ -2643,7 +2650,7 @@ void BeginInventoryPoolPtr( OBJECTTYPE *pInventorySlot )
|
||||
|
||||
if ( fShowInventoryFlag && bSelectedInfoChar >= 0 )
|
||||
{
|
||||
ReevaluateItemHatches( MercPtrs[ gCharactersList[ bSelectedInfoChar ].usSolID ], FALSE );
|
||||
ReevaluateItemHatches( gCharactersList[ bSelectedInfoChar ].usSolID, FALSE );
|
||||
fTeamPanelDirty = TRUE;
|
||||
}
|
||||
}
|
||||
@@ -3015,7 +3022,7 @@ void TemplateNameInputCallBack(UINT8 ubResult)
|
||||
{
|
||||
if (ubResult == MSG_BOX_RETURN_OK && wcscmp(gszMsgBoxInputString, L"") > 0)
|
||||
{
|
||||
SOLDIERTYPE* pSoldier = &Menptr[gCharactersList[bSelectedInfoChar].usSolID];
|
||||
SOLDIERTYPE* pSoldier = gCharactersList[bSelectedInfoChar].usSolID;
|
||||
if (pSoldier)
|
||||
{
|
||||
WriteEquipmentTemplate(pSoldier, gszMsgBoxInputString);
|
||||
@@ -3047,7 +3054,7 @@ void MapInventoryWriteEquipmentTemplate(GUI_BUTTON *btn, INT32 reason)
|
||||
{
|
||||
if ( btn->uiFlags & (BUTTON_CLICKED_ON) )
|
||||
{
|
||||
SOLDIERTYPE* pSoldier = &Menptr[gCharactersList[bSelectedInfoChar].usSolID];
|
||||
SOLDIERTYPE* pSoldier = gCharactersList[bSelectedInfoChar].usSolID;
|
||||
if ( pSoldier )
|
||||
{
|
||||
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) )
|
||||
{
|
||||
SOLDIERTYPE* pSoldier = &Menptr[gCharactersList[bSelectedInfoChar].usSolID];
|
||||
SOLDIERTYPE* pSoldier = gCharactersList[bSelectedInfoChar].usSolID;
|
||||
if ( pSoldier &&
|
||||
pSoldier->sSectorX == sSelMapX && pSoldier->sSectorY == sSelMapY && pSoldier->bSectorZ == iCurrentMapSectorZ &&
|
||||
!pSoldier->flags.fBetweenSectors )
|
||||
@@ -3525,11 +3532,12 @@ void HandleButtonStatesWhileMapInventoryActive( void )
|
||||
}
|
||||
|
||||
// Selected Merc is in sector? Or is in combat?
|
||||
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 ||
|
||||
!CanPlayerUseSectorInventory( &(Menptr[ gCharactersList[ bSelectedInfoChar ].usSolID ]) ) )
|
||||
SOLDIERTYPE* pSoldier = gCharactersList[bSelectedInfoChar].usSolID;
|
||||
if( pSoldier->sSectorX != sSelMapX ||
|
||||
pSoldier->sSectorY != sSelMapY ||
|
||||
pSoldier->bSectorZ != iCurrentMapSectorZ ||
|
||||
pSoldier->flags.fBetweenSectors ||
|
||||
!CanPlayerUseSectorInventory( pSoldier ) )
|
||||
{
|
||||
DisableButton( guiMapInvenSortButton[ 0 ] );
|
||||
DisableButton( guiMapInvenSortButton[ 1 ] );
|
||||
@@ -3640,7 +3648,7 @@ void HandleMouseInCompatableItemForMapSectorInventory( INT32 iCurrentSlot )
|
||||
if( fShowInventoryFlag )
|
||||
{
|
||||
//Soldier inventory is shown, highlight those items
|
||||
pSoldier = &Menptr[ gCharactersList[ bSelectedInfoChar ].usSolID ];
|
||||
pSoldier = gCharactersList[ bSelectedInfoChar ].usSolID;
|
||||
if( pSoldier )
|
||||
{
|
||||
if( HandleCompatibleAmmoUIForMapScreen( pSoldier, iCurrentSlot + ( iCurrentInventoryPoolPage * MAP_INVENTORY_POOL_SLOT_COUNT ), TRUE, FALSE ) )
|
||||
@@ -4815,7 +4823,7 @@ void SortSectorInventoryAmmo(bool useBoxes)
|
||||
OBJECTTYPE newCrate;
|
||||
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?" );
|
||||
|
||||
@@ -4957,7 +4965,7 @@ void SortSectorInventoryEjectAmmo()
|
||||
{
|
||||
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
|
||||
{
|
||||
@@ -5006,7 +5014,7 @@ void SortSectorInventoryEmptyLBE() {
|
||||
// current item
|
||||
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
|
||||
{
|
||||
@@ -5081,7 +5089,7 @@ void SortSectorInventorySeparateAttachments()
|
||||
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
|
||||
{
|
||||
@@ -5154,7 +5162,7 @@ void SortSectorInventoryStackAndMerge(bool ammoOnly )
|
||||
{
|
||||
OBJECTTYPE * StackObject;
|
||||
|
||||
SOLDIERTYPE * pSoldier = &(Menptr[ gCharactersList[ bSelectedInfoChar ].usSolID ]);
|
||||
SOLDIERTYPE * pSoldier = gCharactersList[ bSelectedInfoChar ].usSolID;
|
||||
|
||||
for ( UINT32 uiLoop = 0; uiLoop < pInventoryPoolList.size(); uiLoop++ )
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user