diff --git a/CHANGELOG.md b/CHANGELOG.md index 6c9be4e8d..839000fbf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ ## [Unreleased](https://github.com/LostArtefacts/TR1X/compare/stable...develop) - ××××-××-×× - added `/exit` command (#1462) - added reflections to Midas Hand death animation and savegame crystals (#154) +- added an option to use PS1 tinted savegame crystals (#1506) - changed the target change functionality from the look key to a new, standalone key (default `z` on keyboard, `left analog click` on controller) (#1503) - fixed `/play`, `/load`, `/demo` and similar commands not working in stats, credits, cinematics and fmvs (#1477) - fixed console commands being able to interfere with demos, cutscenes and the title screen (#1489, regression from 3.0) diff --git a/GAMEFLOW.md b/GAMEFLOW.md index 4e95e2b5e..e3459cf7e 100644 --- a/GAMEFLOW.md +++ b/GAMEFLOW.md @@ -1425,6 +1425,14 @@ provided with the game achieves. jumping, if that option is enabled. + + + purple_crystal.bin + + + Injects a replacement savegame crystal model to match the PS1 style. + + scion_collision.bin diff --git a/data/ship/cfg/TR1X_gameflow.json5 b/data/ship/cfg/TR1X_gameflow.json5 index f75d3632f..8a9c49f13 100644 --- a/data/ship/cfg/TR1X_gameflow.json5 +++ b/data/ship/cfg/TR1X_gameflow.json5 @@ -18,6 +18,7 @@ "data/injections/braid.bin", "data/injections/lara_animations.bin", "data/injections/lara_jumping.bin", + "data/injections/purple_crystal.bin", "data/injections/uzi_sfx.bin", ], "convert_dropped_guns": false, diff --git a/data/ship/data/injections/purple_crystal.bin b/data/ship/data/injections/purple_crystal.bin new file mode 100644 index 000000000..7dbfef60f Binary files /dev/null and b/data/ship/data/injections/purple_crystal.bin differ diff --git a/src/config.h b/src/config.h index f53e7b898..86a0c58a6 100644 --- a/src/config.h +++ b/src/config.h @@ -93,6 +93,7 @@ typedef struct { bool enable_loading_screens; bool fix_animated_sprites; bool enable_skybox; + bool enable_ps1_crystals; struct { int32_t layout; diff --git a/src/config_map.def b/src/config_map.def index d14aca3e7..891ce1f53 100644 --- a/src/config_map.def +++ b/src/config_map.def @@ -108,3 +108,4 @@ CFG_DOUBLE(g_Config, ui.bar_scale, DEFAULT_UI_SCALE) CFG_BOOL(g_Config, profile.new_game_plus_unlock, false) CFG_BOOL(g_Config, fix_animated_sprites, true) CFG_BOOL(g_Config, enable_skybox, true) +CFG_BOOL(g_Config, enable_ps1_crystals, true) diff --git a/src/game/inject.c b/src/game/inject.c index 42c3b0140..86311ea6e 100644 --- a/src/game/inject.c +++ b/src/game/inject.c @@ -46,6 +46,7 @@ typedef enum INJECTION_TYPE { INJ_PS1_ENEMY = 8, INJ_DISABLE_ANIM_SPRITE = 9, INJ_SKYBOX = 10, + INJ_PS1_CRYSTAL = 11, } INJECTION_TYPE; typedef struct INJECTION { @@ -244,6 +245,10 @@ static void Inject_LoadFromFile(INJECTION *injection, const char *filename) case INJ_SKYBOX: injection->relevant = g_Config.enable_skybox; break; + case INJ_PS1_CRYSTAL: + injection->relevant = + g_Config.enable_save_crystals && g_Config.enable_ps1_crystals; + break; default: LOG_WARNING("%s is of unknown type %d", filename, injection->type); break; diff --git a/tools/config/TR1X_ConfigTool/Resources/Lang/en.json b/tools/config/TR1X_ConfigTool/Resources/Lang/en.json index e2d85f03a..70c2456c2 100644 --- a/tools/config/TR1X_ConfigTool/Resources/Lang/en.json +++ b/tools/config/TR1X_ConfigTool/Resources/Lang/en.json @@ -311,6 +311,10 @@ "Title": "3D pickups", "Description": "Enables 3D models to be rendered in place of the sprites for pickup items." }, + "enable_ps1_crystals": { + "Title": "Enable PS1 save crystals", + "Description": "Save crystals will be drawn with a purple tint, more similar to the PS1 type." + }, "enable_round_shadow": { "Title": "Rounded shadows", "Description": "Enables round shadows instead of the default octagonal ones." diff --git a/tools/config/TR1X_ConfigTool/Resources/Lang/es.json b/tools/config/TR1X_ConfigTool/Resources/Lang/es.json index 95ac1ef74..f94b4dfae 100644 --- a/tools/config/TR1X_ConfigTool/Resources/Lang/es.json +++ b/tools/config/TR1X_ConfigTool/Resources/Lang/es.json @@ -119,6 +119,10 @@ "Title": "Recogidas en 3D", "Description": "Permite que los modelos en 3D se representen en lugar de los sprites para los objetos a recoger." }, + "enable_ps1_crystals": { + "Title": "Habilitar cristales guardados de PS1", + "Description": "Los cristales guardados se dibujarán con un tinte púrpura, más similar al tipo PS1." + }, "enable_skybox": { "Title": "Cielo", "Description": "Habilita el cielo en niveles soportados." diff --git a/tools/config/TR1X_ConfigTool/Resources/Lang/fr.json b/tools/config/TR1X_ConfigTool/Resources/Lang/fr.json index aae1632ef..1eb8c9d30 100644 --- a/tools/config/TR1X_ConfigTool/Resources/Lang/fr.json +++ b/tools/config/TR1X_ConfigTool/Resources/Lang/fr.json @@ -311,6 +311,10 @@ "Title": "Collectibles 3D", "Description": "Active les collectibles en 3D au lieu des objets en 2D." }, + "enable_ps1_crystals": { + "Title": "Activer les cristaux de sauvegarde PS1", + "Description": "Les cristaux de sauvegarde seront dessinés avec une teinte violette, plus similaire au type PS1." + }, "enable_round_shadow": { "Title": "Ombres rondes", "Description": "Active les ombres rondes au lieu d'ombres octagonales." diff --git a/tools/config/TR1X_ConfigTool/Resources/Lang/it.json b/tools/config/TR1X_ConfigTool/Resources/Lang/it.json index a057ec8b4..5caa37765 100644 --- a/tools/config/TR1X_ConfigTool/Resources/Lang/it.json +++ b/tools/config/TR1X_ConfigTool/Resources/Lang/it.json @@ -311,6 +311,10 @@ "Title": "Oggetti 3D", "Description": "Sostituisce gli oggetti 2D con i rispettivi modelli 3D." }, + "enable_ps1_crystals": { + "Title": "Abilita i cristalli di salvataggio PS1", + "Description": "I cristalli di salvataggio verranno disegnati con una tinta viola, più simile al tipo PS1." + }, "enable_round_shadow": { "Title": "Ombre rotonde", "Description": "Abilita le ombre rotonde invece di quelle ottagonali predefinite." diff --git a/tools/config/TR1X_ConfigTool/Resources/specification.json b/tools/config/TR1X_ConfigTool/Resources/specification.json index dac0c60b0..caf1b231c 100644 --- a/tools/config/TR1X_ConfigTool/Resources/specification.json +++ b/tools/config/TR1X_ConfigTool/Resources/specification.json @@ -406,6 +406,11 @@ "DataType": "Bool", "DefaultValue": true }, + { + "Field": "enable_ps1_crystals", + "DataType": "Bool", + "DefaultValue": true + }, { "Field": "enable_round_shadow", "DataType": "Bool",