From bbf0792ed28995061b4f5db2739fdfd65c95e89c Mon Sep 17 00:00:00 2001 From: luciusDXL Date: Thu, 29 Dec 2022 12:51:48 -0700 Subject: [PATCH 1/2] The secret percentage is now updated after loading from a save. This fixes the LDATA save percentage issue. --- TheForceEngine/TFE_DarkForces/hud.cpp | 2 +- TheForceEngine/TFE_DarkForces/player.cpp | 12 +----------- TheForceEngine/TFE_Jedi/Level/level.h | 2 ++ TheForceEngine/TFE_Jedi/Level/levelData.cpp | 18 ++++++++++++++++++ TheForceEngine/gitVersion.h | 2 +- 5 files changed, 23 insertions(+), 13 deletions(-) diff --git a/TheForceEngine/TFE_DarkForces/hud.cpp b/TheForceEngine/TFE_DarkForces/hud.cpp index 2df4463a7..7f4d12cf5 100644 --- a/TheForceEngine/TFE_DarkForces/hud.cpp +++ b/TheForceEngine/TFE_DarkForces/hud.cpp @@ -343,8 +343,8 @@ namespace TFE_DarkForces if (!fromSave) { s_secretsFound = 0; + s_secretsPercent = 0; } - s_secretsPercent = 0; hud_initAnimation(); if (s_config.showUI) diff --git a/TheForceEngine/TFE_DarkForces/player.cpp b/TheForceEngine/TFE_DarkForces/player.cpp index 86e474926..a73c7217c 100644 --- a/TheForceEngine/TFE_DarkForces/player.cpp +++ b/TheForceEngine/TFE_DarkForces/player.cpp @@ -1732,17 +1732,7 @@ namespace TFE_DarkForces // Remove the flag so the secret isn't counted twice. newSector->flags1 &= ~SEC_FLAGS1_SECRET; s_secretsFound++; - if (s_levelState.secretCount) - { - // 100.0 * found / count - fixed16_16 percentage = mul16(FIXED(100), div16(intToFixed16(s_secretsFound), intToFixed16(s_levelState.secretCount))); - s_secretsPercent = floor16(percentage); - } - else - { - s_secretsPercent = 100; - } - s_secretsPercent = max(0, min(100, s_secretsPercent)); + level_updateSecretPercent(); } } diff --git a/TheForceEngine/TFE_Jedi/Level/level.h b/TheForceEngine/TFE_Jedi/Level/level.h index d14bb8be4..68c5e4872 100644 --- a/TheForceEngine/TFE_Jedi/Level/level.h +++ b/TheForceEngine/TFE_Jedi/Level/level.h @@ -53,5 +53,7 @@ namespace TFE_Jedi void level_addSound(const char* name, u32 freq, s32 priority); void level_loadPalette(); + void level_updateSecretPercent(); + void ambientSoundTaskFunc(MessageType msg); } diff --git a/TheForceEngine/TFE_Jedi/Level/levelData.cpp b/TheForceEngine/TFE_Jedi/Level/levelData.cpp index aeddd89f3..73da77b83 100644 --- a/TheForceEngine/TFE_Jedi/Level/levelData.cpp +++ b/TheForceEngine/TFE_Jedi/Level/levelData.cpp @@ -17,6 +17,7 @@ using namespace TFE_DarkForces; namespace TFE_DarkForces { extern s32 s_secretsFound; + extern s32 s_secretsPercent; } namespace TFE_Jedi @@ -88,6 +89,21 @@ namespace TFE_Jedi level_loadPalette(); } } + + void level_updateSecretPercent() + { + if (s_levelState.secretCount) + { + // 100.0 * found / count + fixed16_16 percentage = mul16(FIXED(100), div16(intToFixed16(s_secretsFound), intToFixed16(s_levelState.secretCount))); + s_secretsPercent = floor16(percentage); + } + else + { + s_secretsPercent = 100; + } + s_secretsPercent = max(0, min(100, s_secretsPercent)); + } void level_serialize(Stream* stream) { @@ -126,6 +142,8 @@ namespace TFE_Jedi s_levelState.sectors = (RSector*)level_alloc(sizeof(RSector) * s_levelState.sectorCount); s_levelState.controlSector->id = s_levelState.sectorCount; s_levelState.controlSector->index = s_levelState.controlSector->id; + + level_updateSecretPercent(); } RSector* sector = s_levelState.sectors; for (u32 s = 0; s < s_levelState.sectorCount; s++, sector++) diff --git a/TheForceEngine/gitVersion.h b/TheForceEngine/gitVersion.h index 6eeb9e6cf..63e20d685 100644 --- a/TheForceEngine/gitVersion.h +++ b/TheForceEngine/gitVersion.h @@ -1,3 +1,3 @@ const char c_gitVersion[] = R"( -v1.01.000-1-gb414d166 +v1.01.000-2-gbeda6e51 )"; From 7fc39864a36e7675ae5c2ff38c4a364634fc869e Mon Sep 17 00:00:00 2001 From: luciusDXL Date: Thu, 29 Dec 2022 23:30:47 -0700 Subject: [PATCH 2/2] Fix the [ and ] buttons in the PDA. --- TheForceEngine/TFE_DarkForces/GameUI/pda.cpp | 6 ++++-- TheForceEngine/gitVersion.h | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/TheForceEngine/TFE_DarkForces/GameUI/pda.cpp b/TheForceEngine/TFE_DarkForces/GameUI/pda.cpp index 9d8d135c7..a92b78df9 100644 --- a/TheForceEngine/TFE_DarkForces/GameUI/pda.cpp +++ b/TheForceEngine/TFE_DarkForces/GameUI/pda.cpp @@ -407,6 +407,7 @@ namespace TFE_DarkForces if (s_buttonPressed == s_simulatePressed) { automap_updateMapData(MAP_LAYER_UP); + s_simulatePressed = 0; } } break; case PDA_BTN_LAYERDOWN: @@ -414,6 +415,7 @@ namespace TFE_DarkForces if (s_buttonPressed == s_simulatePressed) { automap_updateMapData(MAP_LAYER_DOWN); + s_simulatePressed = 0; } } break; } @@ -625,11 +627,11 @@ namespace TFE_DarkForces if (TFE_Input::keyPressed(KEY_LEFTBRACKET)) { - s_simulatePressed = PDA_BTN_LAYERUP; + s_simulatePressed = PDA_BTN_LAYERDOWN; } else if (TFE_Input::keyPressed(KEY_RIGHTBRACKET)) { - s_simulatePressed = PDA_BTN_LAYERDOWN; + s_simulatePressed = PDA_BTN_LAYERUP; } } else if (s_pdaMode == PDA_MODE_BRIEF) diff --git a/TheForceEngine/gitVersion.h b/TheForceEngine/gitVersion.h index 63e20d685..c998fb9d9 100644 --- a/TheForceEngine/gitVersion.h +++ b/TheForceEngine/gitVersion.h @@ -1,3 +1,3 @@ const char c_gitVersion[] = R"( -v1.01.000-2-gbeda6e51 +v1.01.000-3-gbbf0792e )";