mirror of
https://github.com/1dot13/source.git
synced 2026-09-09 14:46:05 +02:00
improved inventory costs feature to show red straffing on pockets that soldier has not enough APs to move currently held item into
git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@9044 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
@@ -451,7 +451,7 @@ void ItemDescTransformRegionCallback( MOUSE_REGION *pRegion, INT32 reason );
|
|||||||
// the done descrition button callback
|
// the done descrition button callback
|
||||||
void ItemDescDoneButtonCallback( GUI_BUTTON *btn, INT32 reason );
|
void ItemDescDoneButtonCallback( GUI_BUTTON *btn, INT32 reason );
|
||||||
|
|
||||||
|
extern INT32 iLastHandPos;
|
||||||
extern BOOLEAN fMapInventoryItem;
|
extern BOOLEAN fMapInventoryItem;
|
||||||
BOOLEAN gfItemPopupRegionCallbackEndFix = FALSE;
|
BOOLEAN gfItemPopupRegionCallbackEndFix = FALSE;
|
||||||
extern void InternalMAPBeginItemPointer( SOLDIERTYPE *pSoldier );
|
extern void InternalMAPBeginItemPointer( SOLDIERTYPE *pSoldier );
|
||||||
@@ -2746,6 +2746,19 @@ void INVRenderINVPanelItem( SOLDIERTYPE *pSoldier, INT16 sPocket, UINT8 fDirtyLe
|
|||||||
if ( CanItemFitInPosition( pSoldier, gpItemPointer, (INT8)sPocket, FALSE ) )
|
if ( CanItemFitInPosition( pSoldier, gpItemPointer, (INT8)sPocket, FALSE ) )
|
||||||
{
|
{
|
||||||
fHatchItOut = FALSE;
|
fHatchItOut = FALSE;
|
||||||
|
if (UsingInventoryCostsAPSystem() && (gTacticalStatus.uiFlags & INCOMBAT) && pSoldier->bInSector)
|
||||||
|
{
|
||||||
|
//Jenilee: determine the cost of moving this item around in our inventory
|
||||||
|
UINT16 usCostToMoveItem = GetInvMovementCost(gpItemPointer, iLastHandPos, sPocket);
|
||||||
|
// Flugente: backgrounds
|
||||||
|
usCostToMoveItem = (usCostToMoveItem * (100 + pSoldier->GetBackgroundValue(BG_INVENTORY))) / 100;
|
||||||
|
|
||||||
|
//we dont have enough APs to move it to this slot
|
||||||
|
if (usCostToMoveItem > 0 && pSoldier->bActionPoints < usCostToMoveItem && pSoldier->inv[iLastHandPos].usItem == NULL)
|
||||||
|
{
|
||||||
|
fHatchItOut = 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// Flugente: we call this function a lot, so only call if necessary
|
// Flugente: we call this function a lot, so only call if necessary
|
||||||
else if ( !fHatchItOut && (
|
else if ( !fHatchItOut && (
|
||||||
@@ -2778,8 +2791,18 @@ void INVRenderINVPanelItem( SOLDIERTYPE *pSoldier, INT16 sPocket, UINT8 fDirtyLe
|
|||||||
|
|
||||||
if ( fHatchItOut )
|
if ( fHatchItOut )
|
||||||
{
|
{
|
||||||
UINT32 uiWhichBuffer = ( guiCurrentItemDescriptionScreen == MAP_SCREEN ) ? guiSAVEBUFFER : guiRENDERBUFFER;
|
//shadooow: hatch all pockets that we cannot put item into due to insufficient action points with red
|
||||||
DrawHatchOnInventory( uiWhichBuffer, sX, sY, (UINT16)(gSMInvData[ sPocket ].sWidth-1), (UINT16)(gSMInvData[ sPocket ].sHeight-1) );
|
if (fHatchItOut == 2)
|
||||||
|
{
|
||||||
|
UINT16 usColor = Get16BPPColor(FROMRGB(150, 0, 50));
|
||||||
|
UINT32 uiWhichBuffer = (guiCurrentItemDescriptionScreen == MAP_SCREEN) ? guiSAVEBUFFER : guiRENDERBUFFER;
|
||||||
|
DrawHatchOnInventory_MilitiaAccess(uiWhichBuffer, sX, sY, (UINT16)(gSMInvData[sPocket].sWidth - 1), (UINT16)(gSMInvData[sPocket].sHeight - 1), usColor);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
UINT32 uiWhichBuffer = (guiCurrentItemDescriptionScreen == MAP_SCREEN) ? guiSAVEBUFFER : guiRENDERBUFFER;
|
||||||
|
DrawHatchOnInventory(uiWhichBuffer, sX, sY, (UINT16)(gSMInvData[sPocket].sWidth - 1), (UINT16)(gSMInvData[sPocket].sHeight - 1));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// Flugente: if we are currently trading, hatch all items that the trade won't accept anyway in red. That way the player doesn't have to manually find out
|
// Flugente: if we are currently trading, hatch all items that the trade won't accept anyway in red. That way the player doesn't have to manually find out
|
||||||
else if ( (guiTacticalInterfaceFlags & INTERFACE_SHOPKEEP_INTERFACE) && pObject->exists( ) && DoesCurrentDealerRefuseToTradeItem( pObject->usItem ) )
|
else if ( (guiTacticalInterfaceFlags & INTERFACE_SHOPKEEP_INTERFACE) && pObject->exists( ) && DoesCurrentDealerRefuseToTradeItem( pObject->usItem ) )
|
||||||
|
|||||||
Reference in New Issue
Block a user