From d929b47aeac5afeb6f535ddca3fa1e9740ab8fc1 Mon Sep 17 00:00:00 2001 From: Wanne Date: Mon, 9 Jul 2012 08:14:38 +0000 Subject: [PATCH] - A fix for the general slow down issue due to scope icons (by tazpn) git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@5369 3b4a5df2-a311-0410-b5c6-a8a6f20db521 --- Tactical/Interface Items.cpp | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/Tactical/Interface Items.cpp b/Tactical/Interface Items.cpp index 637c57bc..d5c416de 100644 --- a/Tactical/Interface Items.cpp +++ b/Tactical/Interface Items.cpp @@ -1375,6 +1375,15 @@ BOOLEAN InitInvSlotInterface( INV_REGION_DESC *pRegionDesc , INV_REGION_DESC *pC FilenameForBPP("INTERFACE\\gold_key_button.sti", VObjectDesc.ImageFile); CHECKF( AddVideoObject( &VObjectDesc, &guiGoldKeyVO ) ); + // added by Flugente + // HEADROCK HAM 4: Advanced Icons + if ( gGameExternalOptions.fScopeModes && gGameExternalOptions.fDisplayScopeModes ) + { + VObjectDesc.fCreateFlags = VOBJECT_CREATE_FROMFILE; + strcpy( VObjectDesc.ImageFile, "INTERFACE\\ItemInfoAdvancedIcons.STI" ); + CHECKF( AddVideoObject( &VObjectDesc, &guiItemInfoAdvancedIcon) ); + } + // Add cammo region MSYS_DefineRegion( &gSMInvCamoRegion, pCamoRegion->sX, pCamoRegion->sY, (INT16)(pCamoRegion->sX + CAMO_REGION_WIDTH ), (INT16)(pCamoRegion->sY + CAMO_REGION_HEIGHT ), MSYS_PRIORITY_HIGH, MSYS_NO_CURSOR, INVMoveCammoCallback, INVClickCammoCallback ); @@ -1501,6 +1510,12 @@ void ShutdownInvSlotInterface( ) DeleteVideoObjectFromIndex( guiGoldKeyVO ); + if ( guiItemInfoAdvancedIcon != 0 ) + { + DeleteVideoObjectFromIndex( guiItemInfoAdvancedIcon ); + guiItemInfoAdvancedIcon = 0; + } + // Remove regions // Add regions for inventory slots for ( cnt = 0; cnt < NUM_INV_SLOTS; cnt++ ) @@ -3810,17 +3825,21 @@ void INVRenderItem( UINT32 uiBuffer, SOLDIERTYPE * pSoldier, OBJECTTYPE *pObjec gprintfinvalidate( sNewX, sNewY, pStr ); } - if ( gGameExternalOptions.fScopeModes && gGameExternalOptions.fDisplayScopeModes && pSoldier && pObject == &(pSoldier->inv[HANDPOS] ) && Item[pSoldier->inv[HANDPOS].usItem].usItemClass == IC_GUN ) + if ( gGameExternalOptions.fScopeModes && gGameExternalOptions.fDisplayScopeModes + && pSoldier && pObject == &(pSoldier->inv[HANDPOS] ) && Item[pSoldier->inv[HANDPOS].usItem].usItemClass == IC_GUN ) { sNewX = sX + 5; // rather arbitrary sNewY = sY; // added by Flugente // HEADROCK HAM 4: Advanced Icons - VOBJECT_DESC VObjectDesc; - VObjectDesc.fCreateFlags = VOBJECT_CREATE_FROMFILE; - strcpy( VObjectDesc.ImageFile, "INTERFACE\\ItemInfoAdvancedIcons.STI" ); - AddStandardVideoObject( &VObjectDesc, &guiItemInfoAdvancedIcon ); + if (guiItemInfoAdvancedIcon == 0) + { + VOBJECT_DESC VObjectDesc; + VObjectDesc.fCreateFlags = VOBJECT_CREATE_FROMFILE; + strcpy( VObjectDesc.ImageFile, "INTERFACE\\ItemInfoAdvancedIcons.STI" ); + AddVideoObject( &VObjectDesc, &guiItemInfoAdvancedIcon); + } std::map ObjList; GetScopeLists(&pSoldier->inv[HANDPOS], ObjList);