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
+ 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",