Enhancement: It is now possible to view detailed camo information on the map screen (mouse-over popup at the camo value).

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@7791 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
silversurfer
2015-03-19 13:09:49 +00:00
parent 6e55c159de
commit a1f1b83952
+79 -3
View File
@@ -605,6 +605,7 @@ MOUSE_REGION gMPanelRegion;
MOUSE_REGION gMapViewRegion;
MOUSE_REGION gMapScreenMaskRegion;
MOUSE_REGION gTrashCanRegion;
MOUSE_REGION gMapMercCamoRegion;
// mouse regions for team info panel
MOUSE_REGION gTeamListNameRegion[ CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS ];
@@ -1030,7 +1031,6 @@ void ChangeCharacterListSortMethod( INT32 iValue );
void MapscreenMarkButtonsDirty();
extern BOOLEAN CanRedistributeMilitiaInSector( INT16 sClickedSectorX, INT16 sClickedSectorY, INT8 bClickedTownId );
extern INT32 GetNumberOfMercsInUpdateList( void );
@@ -5152,6 +5152,9 @@ UINT32 MapScreenHandle(void)
MSYS_DefineRegion( &gMapScreenMaskRegion, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, MSYS_PRIORITY_LOW,
CURSOR_NORMAL, MSYS_NO_CALLBACK, MapScreenMarkRegionBtnCallback);
// region for detailed merc camo
MSYS_DefineRegion( &gMapMercCamoRegion, ( MAP_CAMMO_X + 2), ( MAP_CAMMO_Y ), (MAP_CAMMO_X + 28), (MAP_CAMMO_Y + 10), MSYS_PRIORITY_HIGH, MSYS_NO_CURSOR, MSYS_NO_CALLBACK, MAPInvMoveCamoCallback );
// set help text for item glow region
SetRegionFastHelpText( &gCharInfoHandRegion, pMiscMapScreenMouseRegionHelpText[ 0 ] );
@@ -5202,6 +5205,7 @@ UINT32 MapScreenHandle(void)
MSYS_AddRegion( &gMapViewRegion);
MSYS_AddRegion( &gCharInfoFaceRegion);
MSYS_AddRegion( &gMPanelRegion);
MSYS_AddRegion( &gMapMercCamoRegion );
if ( !gfFadeOutDone && !gfFadeIn )
{
@@ -8523,6 +8527,7 @@ INT32 iCounter2 = 0;
MSYS_RemoveRegion( &gCharInfoHandRegion );
MSYS_RemoveRegion( &gMPanelRegion);
MSYS_RemoveRegion( &gMapScreenMaskRegion );
MSYS_RemoveRegion( &gMapMercCamoRegion);
fInMapMode = FALSE;
// remove team panel sort button
@@ -9230,6 +9235,7 @@ void CreateDestroyMapInvButton()
InitInvSlotInterface( gMapScreenInvPocketXY, &gSCamoXY, MAPInvMoveCallback, MAPInvClickCallback, MAPInvMoveCamoCallback, MAPInvClickCamoCallback, FALSE );
MSYS_EnableRegion(&gMPanelRegion);
MSYS_EnableRegion(&gMapMercCamoRegion);
// switch hand region help text to "Exit Inventory"
SetRegionFastHelpText( &gCharInfoHandRegion, pMiscMapScreenMouseRegionHelpText[ 2 ] );
@@ -9250,6 +9256,7 @@ void CreateDestroyMapInvButton()
//UnloadButtonImage( giMapInvButtonImage );
fTeamPanelDirty=TRUE;
MSYS_DisableRegion(&gMPanelRegion);
MSYS_DisableRegion(&gMapMercCamoRegion);
// switch hand region help text to "Enter Inventory"
SetRegionFastHelpText( &gCharInfoHandRegion, pMiscMapScreenMouseRegionHelpText[ 0 ] );
@@ -9271,7 +9278,6 @@ void BltCharInvPanel()
INT16 usX, usY;
UINT8 disOpt = 0;
// make sure we're here legally
Assert( MapCharacterHasAccessibleInventory( bSelectedInfoChar ) );
@@ -9395,7 +9401,77 @@ void BltCharInvPanel()
// Display camo value
swprintf( sString, L"%3d", max(0, min(max((pSoldier->bCamo + pSoldier->wornCamo), max((pSoldier->urbanCamo+pSoldier->wornUrbanCamo), max((pSoldier->desertCamo+pSoldier->wornDesertCamo), (pSoldier->snowCamo+pSoldier->wornSnowCamo)))),100)) );
FindFontRightCoordinates(MAP_CAMMO_X, MAP_CAMMO_Y, MAP_PERCENT_WIDTH, MAP_PERCENT_HEIGHT, sString, BLOCKFONT2, &usX, &usY);
mprintf( usX, usY, sString );
mprintf( usX, usY, sString );
if( fCharacterInfoPanelDirty )
{
static CHAR16 pStr[ 200 ];
// detailed camo info popup
CHAR16 pStrCamo[400];
swprintf( pStrCamo, L"" );
swprintf( pStr, L"");
if ((pSoldier->bCamo + pSoldier->wornCamo) > 0 )
{
swprintf( pStrCamo, L"\n%d/%d%s %s", pSoldier->bCamo, pSoldier->wornCamo, L"%", gzMiscItemStatsFasthelp[ 21 ]);
wcscat( pStr, pStrCamo);
swprintf( pStrCamo, L"" );
}
if ((pSoldier->urbanCamo + pSoldier->wornUrbanCamo) > 0 )
{
swprintf( pStrCamo, L"\n%d/%d%s %s", pSoldier->urbanCamo, pSoldier->wornUrbanCamo, L"%", gzMiscItemStatsFasthelp[ 22 ]);
wcscat( pStr, pStrCamo);
swprintf( pStrCamo, L"" );
}
if ((pSoldier->desertCamo + pSoldier->wornDesertCamo) > 0 )
{
swprintf( pStrCamo, L"\n%d/%d%s %s", pSoldier->desertCamo, pSoldier->wornDesertCamo, L"%", gzMiscItemStatsFasthelp[ 23 ]);
wcscat( pStr, pStrCamo);
swprintf( pStrCamo, L"" );
}
if ((pSoldier->snowCamo + pSoldier->wornSnowCamo) > 0 )
{
swprintf( pStrCamo, L"\n%d/%d%s %s", pSoldier->snowCamo, pSoldier->wornSnowCamo, L"%", gzMiscItemStatsFasthelp[ 24 ] );
wcscat( pStr, pStrCamo);
swprintf( pStrCamo, L"" );
}
// anv: display stealth together with camo
INT16 wornstealth = GetWornStealth(pSoldier) - pSoldier->GetBackgroundValue(BG_PERC_STEALTH);
INT16 bonusstealth = pSoldier->GetBackgroundValue(BG_PERC_STEALTH);
if ( pSoldier->ubBodyType == BLOODCAT )
{
bonusstealth += 50;
}
// SANDRO - new/old traits
else if ( gGameOptions.fNewTraitSystem && HAS_SKILL_TRAIT( pSoldier, STEALTHY_NT ))
{
bonusstealth += gSkillTraitValues.ubSTBonusToMoveQuietly;
}
else if ( !gGameOptions.fNewTraitSystem && HAS_SKILL_TRAIT( pSoldier, STEALTHY_OT ))
{
bonusstealth += 25 * NUM_SKILL_TRAITS( pSoldier, STEALTHY_OT );
}
if ( bonusstealth != 0 || wornstealth!= 0 )
{
CHAR16 pStrBonusStealth[400];
CHAR16 pStrWornStealth[400];
if( bonusstealth < 0 )
swprintf( pStrBonusStealth, L"%d", bonusstealth );
else
swprintf( pStrBonusStealth, L"+%d", bonusstealth );
if( wornstealth < 0 )
swprintf( pStrWornStealth, L"%d", wornstealth );
else
swprintf( pStrWornStealth, L"+%d", wornstealth );
swprintf( pStrCamo, L"\n%s/%s %s", pStrBonusStealth, pStrWornStealth, gzMiscItemStatsFasthelp[ 25 ] );
wcscat( pStr, pStrCamo);
swprintf( pStrCamo, L"" );
}
SetRegionFastHelpText( &(gMapMercCamoRegion), pStr );
}
}
if( InKeyRingPopup( ) )