From 18a55c89cc5bdf037e5ac32938f4c31da28af260 Mon Sep 17 00:00:00 2001 From: Flugente Date: Tue, 27 Aug 2013 20:04:36 +0000 Subject: [PATCH] Fix: gear icons and assignment icons no longer overlap git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@6325 3b4a5df2-a311-0410-b5c6-a8a6f20db521 --- Tactical/Faces.cpp | 62 ++++++++++++++++++++++++---------------------- 1 file changed, 32 insertions(+), 30 deletions(-) diff --git a/Tactical/Faces.cpp b/Tactical/Faces.cpp index 4ae64158c..a0afd2d69 100644 --- a/Tactical/Faces.cpp +++ b/Tactical/Faces.cpp @@ -1621,8 +1621,10 @@ void DoRightIcon( UINT32 uiRenderBuffer, FACETYPE *pFace, INT16 sFaceX, INT16 sF void HandleRenderFaceAdjustments( FACETYPE *pFace, BOOLEAN fDisplayBuffer, BOOLEAN fUseExternBuffer, UINT32 uiBuffer, INT16 sFaceX, INT16 sFaceY, UINT16 usEyesX, UINT16 usEyesY ) { INT16 sIconX, sIconY; - INT16 sIconIndex=-1; + INT16 sIconIndex = -1; + INT16 sIconIndex_Assignment = -1; BOOLEAN fDoIcon = FALSE; + BOOLEAN fDoIcon_Assignment = FALSE; UINT32 uiRenderBuffer; INT16 sPtsAvailable = 0; FLOAT bPtsAvailable = 0.0; // Flugente: sometimes, we want to display float values... @@ -2121,16 +2123,7 @@ void HandleRenderFaceAdjustments( FACETYPE *pFace, BOOLEAN fDisplayBuffer, BOOLE } } } - - if ( fDoIcon ) - { - // Find X, y for placement - GetXYForIconPlacement( pFace, sIconIndex, sFaceX, sFaceY, &sIconX, &sIconY, guiPORTRAITICONS ); - BltVideoObjectFromIndex( uiRenderBuffer, guiPORTRAITICONS, sIconIndex, sIconX, sIconY, VO_BLT_SRCTRANSPARENCY, NULL ); - - fDoIcon = FALSE; - bNumRightIcons++; - } + //------------------------------------end of tactical face gear----------------------------- { @@ -2202,8 +2195,8 @@ void HandleRenderFaceAdjustments( FACETYPE *pFace, BOOLEAN fDisplayBuffer, BOOLE switch( pSoldier->bAssignment ) { case DOCTOR: - sIconIndex = 1; - fDoIcon = TRUE; + sIconIndex_Assignment = 1; + fDoIcon_Assignment = TRUE; sPtsAvailable = CalculateHealingPointsForDoctor( MercPtrs[ pFace->ubSoldierID ], &usMaximumPts, FALSE ); fShowNumber = TRUE; fShowMaximum = TRUE; @@ -2214,8 +2207,8 @@ void HandleRenderFaceAdjustments( FACETYPE *pFace, BOOLEAN fDisplayBuffer, BOOLE break; case PATIENT: - sIconIndex = 2; - fDoIcon = TRUE; + sIconIndex_Assignment = 2; + fDoIcon_Assignment = TRUE; // show current health / maximum health sPtsAvailable = MercPtrs[ pFace->ubSoldierID ]->stats.bLife; usMaximumPts = MercPtrs[ pFace->ubSoldierID ]->stats.bLifeMax; @@ -2229,8 +2222,8 @@ void HandleRenderFaceAdjustments( FACETYPE *pFace, BOOLEAN fDisplayBuffer, BOOLE case TRAIN_MOBILE: case TRAIN_TEAMMATE: case TRAIN_BY_OTHER: - sIconIndex = 3; - fDoIcon = TRUE; + sIconIndex_Assignment = 3; + fDoIcon_Assignment = TRUE; fShowNumber = TRUE; fShowMaximum = TRUE; @@ -2257,8 +2250,8 @@ void HandleRenderFaceAdjustments( FACETYPE *pFace, BOOLEAN fDisplayBuffer, BOOLE case REPAIR: - sIconIndex = 0; - fDoIcon = TRUE; + sIconIndex_Assignment = 0; + fDoIcon_Assignment = TRUE; sPtsAvailable = CalculateRepairPointsForRepairman( MercPtrs[ pFace->ubSoldierID ], &usMaximumPts, FALSE ); fShowNumber = TRUE; fShowMaximum = TRUE; @@ -2275,8 +2268,8 @@ void HandleRenderFaceAdjustments( FACETYPE *pFace, BOOLEAN fDisplayBuffer, BOOLE case MOVE_EQUIPMENT: { - sIconIndex = 15; - fDoIcon = TRUE; + sIconIndex_Assignment = 15; + fDoIcon_Assignment = TRUE; GetShortSectorString( SECTORX(pSoldier->usItemMoveSectorID), SECTORY(pSoldier->usItemMoveSectorID), wShortText ); @@ -2286,8 +2279,8 @@ void HandleRenderFaceAdjustments( FACETYPE *pFace, BOOLEAN fDisplayBuffer, BOOLE break; case FACILITY_INTERROGATE_PRISONERS: - sIconIndex = 13; - fDoIcon = TRUE; + sIconIndex_Assignment = 13; + fDoIcon_Assignment = TRUE; sPtsAvailable = (INT16)( CalculateInterrogationValue(pSoldier, &usMaximumPts ) ); fShowNumber = TRUE; fShowMaximum = TRUE; @@ -2298,23 +2291,23 @@ void HandleRenderFaceAdjustments( FACETYPE *pFace, BOOLEAN fDisplayBuffer, BOOLE if ( MercPtrs[ pFace->ubSoldierID ]->ubServicePartner != NOBODY ) { // Doctor... - sIconIndex = 1; - fDoIcon = TRUE; + sIconIndex_Assignment = 1; + fDoIcon_Assignment = TRUE; } if ( MercPtrs[ pFace->ubSoldierID ]->ubServiceCount != 0 ) { // Patient - sIconIndex = 2; - fDoIcon = TRUE; + sIconIndex_Assignment = 2; + fDoIcon_Assignment = TRUE; } - if ( fDoIcon ) + if ( fDoIcon_Assignment ) { // Find X, y for placement - GetXYForIconPlacement( pFace, sIconIndex, sFaceX, sFaceY, &sIconX, &sIconY, guiASSIGNMENTICONS ); - BltVideoObjectFromIndex( uiRenderBuffer, guiASSIGNMENTICONS, sIconIndex, sIconX, sIconY, VO_BLT_SRCTRANSPARENCY, NULL ); + GetXYForIconPlacement( pFace, sIconIndex_Assignment, sFaceX, sFaceY, &sIconX, &sIconY, guiASSIGNMENTICONS ); + BltVideoObjectFromIndex( uiRenderBuffer, guiASSIGNMENTICONS, sIconIndex_Assignment, sIconX, sIconY, VO_BLT_SRCTRANSPARENCY, NULL ); // ATE: Show numbers only in mapscreen if( fShowNumber ) @@ -2344,6 +2337,15 @@ void HandleRenderFaceAdjustments( FACETYPE *pFace, BOOLEAN fDisplayBuffer, BOOLE SetFontDestBuffer( FRAME_BUFFER, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, FALSE ); } } + else if ( fDoIcon ) + { + // Find X, y for placement + GetXYForIconPlacement( pFace, sIconIndex, sFaceX, sFaceY, &sIconX, &sIconY, guiPORTRAITICONS ); + BltVideoObjectFromIndex( uiRenderBuffer, guiPORTRAITICONS, sIconIndex, sIconX, sIconY, VO_BLT_SRCTRANSPARENCY, NULL ); + + fDoIcon = FALSE; + bNumRightIcons++; + } } } else