mirror of
https://github.com/1dot13/source.git
synced 2026-08-05 14:00:23 +02:00
New option SHOW_BACKPACK_OWNER (TRUE by default): show backpack owner's name on the ground and in taking items interface.
git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8735 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
@@ -936,6 +936,7 @@ void LoadGameExternalOptions()
|
||||
//################# Tactical Interface Settings #################
|
||||
|
||||
gGameExternalOptions.gfRevealItems = iniReader.ReadBoolean("Tactical Interface Settings","REVEAL_DROPPED_ENEMY_ITEMS_AFTER_COMBAT",TRUE);
|
||||
gGameExternalOptions.gfShowBackpackOwner = iniReader.ReadBoolean("Tactical Interface Settings", "SHOW_BACKPACK_OWNER", TRUE);
|
||||
|
||||
// Unload weapons & remove attachments
|
||||
gGameExternalOptions.gfShiftFUnloadWeapons = iniReader.ReadBoolean("Tactical Interface Settings","SHIFT_F_UNLOAD_WEAPONS",1);
|
||||
|
||||
@@ -769,6 +769,7 @@ typedef struct
|
||||
BOOLEAN fEnableAllWeaponCaches;
|
||||
BOOLEAN fEnableAllTerrorists;
|
||||
BOOLEAN gfRevealItems;
|
||||
BOOLEAN gfShowBackpackOwner;
|
||||
BOOLEAN fEnableArmorCoverage; // ShadoWarrior for Captain J's armor coverage
|
||||
|
||||
// ShadoWarrior: Tooltip changes (start)
|
||||
|
||||
@@ -4208,11 +4208,25 @@ BOOLEAN DrawItemPoolList( ITEM_POOL *pItemPool, INT32 sGridNo, UINT8 bCommand, I
|
||||
// Set string
|
||||
if ( gWorldItems[ pTempItemPool->iItemIndex ].object.ubNumberOfObjects > 1 )
|
||||
{
|
||||
swprintf( pStr, L"%s (%d)", ShortItemNames[ gWorldItems[ pTempItemPool->iItemIndex ].object.usItem ], gWorldItems[ pTempItemPool->iItemIndex ].object.ubNumberOfObjects );
|
||||
if (gGameExternalOptions.gfShowBackpackOwner &&
|
||||
Item[gWorldItems[pItemPool->iItemIndex].object.usItem].usItemClass == IC_LBEGEAR &&
|
||||
LoadBearingEquipment[Item[gWorldItems[pItemPool->iItemIndex].object.usItem].ubClassIndex].lbeClass == BACKPACK &&
|
||||
gWorldItems[pItemPool->iItemIndex].soldierID != -1 &&
|
||||
MercPtrs[gWorldItems[pItemPool->iItemIndex].soldierID])
|
||||
swprintf(pStr, L"%s (%d) (%s)", ShortItemNames[gWorldItems[pTempItemPool->iItemIndex].object.usItem], gWorldItems[pTempItemPool->iItemIndex].object.ubNumberOfObjects, MercPtrs[gWorldItems[pItemPool->iItemIndex].soldierID]->GetName());
|
||||
else
|
||||
swprintf( pStr, L"%s (%d)", ShortItemNames[ gWorldItems[ pTempItemPool->iItemIndex ].object.usItem ], gWorldItems[ pTempItemPool->iItemIndex ].object.ubNumberOfObjects );
|
||||
}
|
||||
else
|
||||
{
|
||||
swprintf( pStr, L"%s", ShortItemNames[ gWorldItems[ pTempItemPool->iItemIndex ].object.usItem ] );
|
||||
if (gGameExternalOptions.gfShowBackpackOwner &&
|
||||
Item[gWorldItems[pItemPool->iItemIndex].object.usItem].usItemClass == IC_LBEGEAR &&
|
||||
LoadBearingEquipment[Item[gWorldItems[pItemPool->iItemIndex].object.usItem].ubClassIndex].lbeClass == BACKPACK &&
|
||||
gWorldItems[pItemPool->iItemIndex].soldierID != -1 &&
|
||||
MercPtrs[gWorldItems[pItemPool->iItemIndex].soldierID])
|
||||
swprintf(pStr, L"%s (%s)", ShortItemNames[gWorldItems[pTempItemPool->iItemIndex].object.usItem], MercPtrs[gWorldItems[pItemPool->iItemIndex].soldierID]->GetName());
|
||||
else
|
||||
swprintf( pStr, L"%s", ShortItemNames[ gWorldItems[ pTempItemPool->iItemIndex ].object.usItem ] );
|
||||
}
|
||||
|
||||
// Get Width
|
||||
@@ -4315,11 +4329,25 @@ BOOLEAN DrawItemPoolList( ITEM_POOL *pItemPool, INT32 sGridNo, UINT8 bCommand, I
|
||||
|
||||
if ( gWorldItems[ pItemPool->iItemIndex ].object.ubNumberOfObjects > 1 )
|
||||
{
|
||||
swprintf( pStr, L"%s (%d)", ShortItemNames[ gWorldItems[ pItemPool->iItemIndex ].object.usItem ], gWorldItems[ pItemPool->iItemIndex ].object.ubNumberOfObjects );
|
||||
if (gGameExternalOptions.gfShowBackpackOwner &&
|
||||
Item[gWorldItems[pItemPool->iItemIndex].object.usItem].usItemClass == IC_LBEGEAR &&
|
||||
LoadBearingEquipment[Item[gWorldItems[pItemPool->iItemIndex].object.usItem].ubClassIndex].lbeClass == BACKPACK &&
|
||||
gWorldItems[pItemPool->iItemIndex].soldierID != -1 &&
|
||||
MercPtrs[gWorldItems[pItemPool->iItemIndex].soldierID])
|
||||
swprintf(pStr, L"%s (%d) (%s)", ShortItemNames[gWorldItems[pItemPool->iItemIndex].object.usItem], gWorldItems[pItemPool->iItemIndex].object.ubNumberOfObjects, MercPtrs[gWorldItems[pItemPool->iItemIndex].soldierID]->GetName());
|
||||
else
|
||||
swprintf( pStr, L"%s (%d)", ShortItemNames[ gWorldItems[ pItemPool->iItemIndex ].object.usItem ], gWorldItems[ pItemPool->iItemIndex ].object.ubNumberOfObjects );
|
||||
}
|
||||
else
|
||||
{
|
||||
swprintf( pStr, L"%s", ShortItemNames[ gWorldItems[ pItemPool->iItemIndex ].object.usItem ] );
|
||||
if (gGameExternalOptions.gfShowBackpackOwner &&
|
||||
Item[gWorldItems[pItemPool->iItemIndex].object.usItem].usItemClass == IC_LBEGEAR &&
|
||||
LoadBearingEquipment[Item[gWorldItems[pItemPool->iItemIndex].object.usItem].ubClassIndex].lbeClass == BACKPACK &&
|
||||
gWorldItems[pItemPool->iItemIndex].soldierID != -1 &&
|
||||
MercPtrs[gWorldItems[pItemPool->iItemIndex].soldierID])
|
||||
swprintf(pStr, L"%s (%s)", ShortItemNames[gWorldItems[pItemPool->iItemIndex].object.usItem], MercPtrs[gWorldItems[pItemPool->iItemIndex].soldierID]->GetName());
|
||||
else
|
||||
swprintf( pStr, L"%s", ShortItemNames[ gWorldItems[ pItemPool->iItemIndex ].object.usItem ] );
|
||||
}
|
||||
|
||||
gprintfdirty( sFontX, sY, pStr );
|
||||
@@ -4330,7 +4358,6 @@ BOOLEAN DrawItemPoolList( ITEM_POOL *pItemPool, INT32 sGridNo, UINT8 bCommand, I
|
||||
}
|
||||
pItemPool = pItemPool->pNext;
|
||||
|
||||
|
||||
if ( fDoBack )
|
||||
{
|
||||
if ( cnt == ( bNumItemsListed - 1) )
|
||||
@@ -4338,7 +4365,6 @@ BOOLEAN DrawItemPoolList( ITEM_POOL *pItemPool, INT32 sGridNo, UINT8 bCommand, I
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
if ( fDoBack )
|
||||
{
|
||||
|
||||
@@ -5776,7 +5776,6 @@ void UpdateAttachmentTooltips(OBJECTTYPE *pObject, UINT8 ubStatusIndex)
|
||||
|
||||
UINT16 usLoopSlotID = usAttachmentSlotIndexVector[slotCount];
|
||||
attachList.clear();
|
||||
|
||||
//Print all attachments that fit on this item.
|
||||
for(UINT16 usLoop = 0; usLoop < MAXATTACHMENTS; ++usLoop)
|
||||
{ //We no longer find valid attachments from AttachmentSlots.xml so we need to work a bit harder to get our list
|
||||
@@ -11473,7 +11472,16 @@ void RenderItemPickupMenu( )
|
||||
}
|
||||
else
|
||||
{
|
||||
swprintf( pStr, L"%s", ShortItemNames[ pObject->usItem ] );
|
||||
if (gGameExternalOptions.gfShowBackpackOwner &&
|
||||
!gfStealing &&
|
||||
Item[gWorldItems[gItemPickupMenu.ItemPoolSlots[cnt]->iItemIndex].object.usItem].usItemClass == IC_LBEGEAR &&
|
||||
LoadBearingEquipment[Item[gWorldItems[gItemPickupMenu.ItemPoolSlots[cnt]->iItemIndex].object.usItem].ubClassIndex].lbeClass == BACKPACK &&
|
||||
gWorldItems[gItemPickupMenu.ItemPoolSlots[cnt]->iItemIndex].soldierID != -1 &&
|
||||
MercPtrs[gWorldItems[gItemPickupMenu.ItemPoolSlots[cnt]->iItemIndex].soldierID])
|
||||
//swprintf(pStr, L"%s (%s)", ShortItemNames[pObject->usItem], MercPtrs[gWorldItems[gItemPickupMenu.ItemPoolSlots[cnt]->iItemIndex].soldierID]->GetName());
|
||||
swprintf(pStr, L"(%s)", MercPtrs[gWorldItems[gItemPickupMenu.ItemPoolSlots[cnt]->iItemIndex].soldierID]->GetName());
|
||||
else
|
||||
swprintf( pStr, L"%s", ShortItemNames[ pObject->usItem ] );
|
||||
}
|
||||
VarFindFontCenterCoordinates( sCenX, sCenY, ITEMPICK_TEXT_WIDTH, 1 , ITEMDESC_FONT, &sFontX, &sFontY, pStr );
|
||||
mprintf_buffer( pDestBuf, uiDestPitchBYTES, ITEMDESC_FONT, sFontX, sFontY, pStr );
|
||||
@@ -11483,14 +11491,9 @@ void RenderItemPickupMenu( )
|
||||
}
|
||||
|
||||
SetFontShadow( DEFAULT_SHADOW );
|
||||
|
||||
|
||||
UnLockVideoSurface( FRAME_BUFFER );
|
||||
|
||||
InvalidateRegion( gItemPickupMenu.sX, gItemPickupMenu.sY, gItemPickupMenu.sX + gItemPickupMenu.sWidth, gItemPickupMenu.sY + gItemPickupMenu.sHeight );
|
||||
|
||||
gItemPickupMenu.fDirtyLevel = 0;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -496,7 +496,7 @@ UINT16 DetermineMovementMode( SOLDIERTYPE * pSoldier, INT8 bAction )
|
||||
return SWATTING;
|
||||
}
|
||||
|
||||
// use swatting/crawling for snipers on roof or when under fire
|
||||
// use swatting for snipers on roof or when under fire
|
||||
if (pSoldier->pathing.bLevel > 0 &&
|
||||
pSoldier->aiData.bAlertStatus >= STATUS_YELLOW &&
|
||||
(pSoldier->aiData.bOrders == SNIPER ||
|
||||
|
||||
Reference in New Issue
Block a user