From 9033e1097a08fc48e03edf9df81ab4fdc053cf2a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andrzej=20Fa=C5=82kowski?= Date: Mon, 2 Oct 2023 18:30:17 +0200 Subject: [PATCH] Radar and overhead map color variants (#219) --- GameSettings.cpp | 6 ++++ GameSettings.h | 6 ++++ TileEngine/Radar Screen.cpp | 32 +++++++++++++++++-- TileEngine/overhead map.cpp | 62 +++++++++++++++++++++++++++++++++++++ 4 files changed, 103 insertions(+), 3 deletions(-) diff --git a/GameSettings.cpp b/GameSettings.cpp index e8170449..00802dcb 100644 --- a/GameSettings.cpp +++ b/GameSettings.cpp @@ -1185,6 +1185,12 @@ void LoadGameExternalOptions() // Flugente: additional decals on objects (cracked walls, blood spatters etc.) gGameExternalOptions.fAdditionalDecals = iniReader.ReadBoolean( "Graphics Settings", "ADDITIONAL_DECALS", FALSE ); + // anv: map color variants + gGameExternalOptions.ubRadarMapModeDay = iniReader.ReadInteger("Graphics Settings", "RADAR_MAP_MODE_DAY", 0, 0, 2); + gGameExternalOptions.ubRadarMapModeNight = iniReader.ReadInteger("Graphics Settings", "RADAR_MAP_MODE_NIGHT", 3, 0, 3); + gGameExternalOptions.ubOverheadMapModeDay = iniReader.ReadInteger("Graphics Settings", "OVERHEAD_MAP_MODE_DAY", 0, 0, 2); + gGameExternalOptions.ubOverheadMapModeNight = iniReader.ReadInteger("Graphics Settings", "OVERHEAD_MAP_MODE_NIGHT", 0, 0, 3); + //################# Sound Settings ################# gGameExternalOptions.guiWeaponSoundEffectsVolume = iniReader.ReadInteger("Sound Settings","WEAPON_SOUND_EFFECTS_VOLUME", 0, 0, 1000 /*1000 = 10x?*/); diff --git a/GameSettings.h b/GameSettings.h index 33c87d16..b5df2be5 100644 --- a/GameSettings.h +++ b/GameSettings.h @@ -952,6 +952,12 @@ typedef struct BOOLEAN fAdditionalDecals; // Flugente: show additional decals on objects (cracked walls, blood spatters etc.) + // anv: map color variants + UINT8 ubRadarMapModeDay; + UINT8 ubRadarMapModeNight; + UINT8 ubOverheadMapModeDay; + UINT8 ubOverheadMapModeNight; + //enable ext mouse key BOOLEAN bAltAimEnabled; BOOLEAN bAimedBurstEnabled; diff --git a/TileEngine/Radar Screen.cpp b/TileEngine/Radar Screen.cpp index 6146818e..c485d8ca 100644 --- a/TileEngine/Radar Screen.cpp +++ b/TileEngine/Radar Screen.cpp @@ -167,9 +167,35 @@ BOOLEAN LoadRadarScreenBitmap(CHAR8 * aFilename ) if( GetVideoObject( &hVObject, gusRadarImage ) ) { - // ATE: Add a shade table! - hVObject->pShades[ 0 ] = Create16BPPPaletteShaded( hVObject->pPaletteEntry, 255, 255, 255, FALSE ); - hVObject->pShades[ 1 ] = Create16BPPPaletteShaded( hVObject->pPaletteEntry, 100, 100, 100, FALSE ); + // ATE: Add a shade table! + // anv: pShades[ 0 ] is a day radar map, pShades[ 1 ] is a night radar map + switch( gGameExternalOptions.ubRadarMapModeDay ) + { + case 0: + hVObject->pShades[0] = Create16BPPPaletteShaded(hVObject->pPaletteEntry, 255, 255, 255, FALSE); + break; + case 1: + hVObject->pShades[0] = Create16BPPPaletteShaded(hVObject->pPaletteEntry, 352, 352, 352, TRUE); + break; + case 2: + hVObject->pShades[0] = Create16BPPPaletteShaded(hVObject->pPaletteEntry, 160, 255, 160, TRUE); + break; + } + switch( gGameExternalOptions.ubRadarMapModeNight ) + { + case 0: + hVObject->pShades[1] = Create16BPPPaletteShaded(hVObject->pPaletteEntry, 255, 255, 255, FALSE); + break; + case 1: + hVObject->pShades[1] = Create16BPPPaletteShaded(hVObject->pPaletteEntry, 352, 352, 352, TRUE); + break; + case 2: + hVObject->pShades[1] = Create16BPPPaletteShaded(hVObject->pPaletteEntry, 160, 255, 160, TRUE); + break; + case 3: + hVObject->pShades[1] = Create16BPPPaletteShaded(hVObject->pPaletteEntry, 100, 100, 100, FALSE); + break; + } } } diff --git a/TileEngine/overhead map.cpp b/TileEngine/overhead map.cpp index c2b5a052..313161c1 100644 --- a/TileEngine/overhead map.cpp +++ b/TileEngine/overhead map.cpp @@ -2299,6 +2299,68 @@ void CopyOverheadDBShadetablesFromTileset( ) } } + // anv: map color variants + if (NightTime()) + { + switch (gGameExternalOptions.ubOverheadMapModeNight) + { + case 0: + break; + case 1: + for (uiLoop = 0; uiLoop < (UINT32)giNumberOfTileTypes; uiLoop++) + { + for (uiLoop2 = 0; uiLoop2 < HVOBJECT_SHADE_TABLES; uiLoop2++) + { + gSmTileSurf[uiLoop].vo->pShades[uiLoop2] = Create16BPPPaletteShaded(gSmTileSurf[uiLoop].vo->pPaletteEntry, 352, 352, 352, TRUE); + } + } + break; + case 2: + for (uiLoop = 0; uiLoop < (UINT32)giNumberOfTileTypes; uiLoop++) + { + for (uiLoop2 = 0; uiLoop2 < HVOBJECT_SHADE_TABLES; uiLoop2++) + { + gSmTileSurf[uiLoop].vo->pShades[uiLoop2] = Create16BPPPaletteShaded(gSmTileSurf[uiLoop].vo->pPaletteEntry, 160, 255, 160, TRUE); + } + } + break; + case 3: + for (uiLoop = 0; uiLoop < (UINT32)giNumberOfTileTypes; uiLoop++) + { + for (uiLoop2 = 0; uiLoop2 < HVOBJECT_SHADE_TABLES; uiLoop2++) + { + gSmTileSurf[uiLoop].vo->pShades[uiLoop2] = Create16BPPPaletteShaded(gSmTileSurf[uiLoop].vo->pPaletteEntry, 100, 100, 100, FALSE); + } + } + break; + } + } + else + { + switch (gGameExternalOptions.ubOverheadMapModeDay) + { + case 0: + break; + case 1: + for (uiLoop = 0; uiLoop < (UINT32)giNumberOfTileTypes; uiLoop++) + { + for (uiLoop2 = 0; uiLoop2 < HVOBJECT_SHADE_TABLES; uiLoop2++) + { + gSmTileSurf[uiLoop].vo->pShades[uiLoop2] = Create16BPPPaletteShaded(gSmTileSurf[uiLoop].vo->pPaletteEntry, 352, 352, 352, TRUE); + } + } + break; + case 2: + for (uiLoop = 0; uiLoop < (UINT32)giNumberOfTileTypes; uiLoop++) + { + for (uiLoop2 = 0; uiLoop2 < HVOBJECT_SHADE_TABLES; uiLoop2++) + { + gSmTileSurf[uiLoop].vo->pShades[uiLoop2] = Create16BPPPaletteShaded(gSmTileSurf[uiLoop].vo->pPaletteEntry, 160, 255, 160, TRUE); + } + } + break; + } + } } void TrashOverheadMap( )