Skip to content

Commit

Permalink
tr1/inventory: reset selected item on closing inventory
Browse files Browse the repository at this point in the history
This resets the selected key item when the inventory is closed to avoid
it being pre-selected to a non-existent item when the inventory is
re-opened.

Resolves #1586.
  • Loading branch information
lahm86 committed Nov 12, 2024
1 parent cee5759 commit f3a29d3
Show file tree
Hide file tree
Showing 11 changed files with 35 additions and 2 deletions.
1 change: 1 addition & 0 deletions docs/tr1/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
- added a special target, "pickup", to item-based console commands
- added support for custom levels to enforce values for any config setting (#1846)
- added support for key/puzzle/pickup descriptions, allowing players to examine said items in the inventory (#1821)
- added an option to fix inventory item usage duplication (#1586)
- changed OpenGL backend to use version 3.3, with fallback to 2.1 if initialization fails (#1738)
- changed text backend to accept named sequences. Currently supported sequences (limited by the sprites available in OG):
- `\{umlaut}`
Expand Down
1 change: 1 addition & 0 deletions src/tr1/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ typedef struct {
bool fix_wall_jump_glitch;
bool fix_bridge_collision;
bool fix_qwop_glitch;
bool fix_item_duplication_glitch;
bool fix_alligator_ai;
bool change_pierre_spawn;
bool fix_bear_ai;
Expand Down
1 change: 1 addition & 0 deletions src/tr1/config_map.def
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ CFG_BOOL(g_Config, fix_descending_glitch, false)
CFG_BOOL(g_Config, fix_wall_jump_glitch, false)
CFG_BOOL(g_Config, fix_bridge_collision, true)
CFG_BOOL(g_Config, fix_qwop_glitch, false)
CFG_BOOL(g_Config, fix_item_duplication_glitch, false)
CFG_BOOL(g_Config, fix_alligator_ai, true)
CFG_BOOL(g_Config, change_pierre_spawn, true)
CFG_BOOL(g_Config, fix_bear_ai, true)
Expand Down
1 change: 1 addition & 0 deletions src/tr1/game/inventory.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,6 @@ void Inv_AddItemNTimes(GAME_OBJECT_ID object_id, int32_t qty);
void Inv_InsertItem(INVENTORY_ITEM *inv_item);
int32_t Inv_RequestItem(GAME_OBJECT_ID object_id);
void Inv_RemoveAllItems(void);
void Inv_ClearSelection(void);
bool Inv_RemoveItem(GAME_OBJECT_ID object_id);
GAME_OBJECT_ID Inv_GetItemOption(GAME_OBJECT_ID object_id);
8 changes: 6 additions & 2 deletions src/tr1/game/inventory/inventory_func.c
Original file line number Diff line number Diff line change
Expand Up @@ -263,9 +263,13 @@ int32_t Inv_RequestItem(const GAME_OBJECT_ID object_id)
void Inv_RemoveAllItems(void)
{
g_InvMainObjects = 1;
g_InvMainCurrent = 0;

g_InvKeysObjects = 0;
Inv_ClearSelection();
}

void Inv_ClearSelection(void)
{
g_InvMainCurrent = 0;
g_InvKeysCurrent = 0;
}

Expand Down
4 changes: 4 additions & 0 deletions src/tr1/game/phase/phase_inventory.c
Original file line number Diff line number Diff line change
Expand Up @@ -211,6 +211,10 @@ static void Inv_Destroy(void)
Inv_Ring_RemoveAllText();
m_InvChosen = NO_OBJECT;

if (g_Config.fix_item_duplication_glitch) {
Inv_ClearSelection();
}

if (m_VersionText) {
Text_Remove(m_VersionText);
m_VersionText = NULL;
Expand Down
4 changes: 4 additions & 0 deletions tools/tr1/config/TR1X_ConfigTool/Resources/Lang/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -168,6 +168,10 @@
"Title": "Fix QWOP glitch",
"Description": "Fixes Lara jumping on small steps sometimes resulting in a weird running animation, known as a QWOP state."
},
"fix_item_duplication_glitch": {
"Title": "Fix item duplication glitch",
"Description": "Fixes the ability to duplicate usage of key items in the inventory."
},
"fix_tihocan_secret_sound": {
"Title": "Fix Tomb of Tihocan secret sound",
"Description": "Prevents the secret sound from incorrectly playing when using the golden key in Tomb of Tihocan."
Expand Down
4 changes: 4 additions & 0 deletions tools/tr1/config/TR1X_ConfigTool/Resources/Lang/es.json
Original file line number Diff line number Diff line change
Expand Up @@ -352,6 +352,10 @@
"Title": "Arreglar fallo de QWOP",
"Description": "Corrige que Lara salte en pequeños pasos, lo que a veces resulta en una animación extraña de carrera, conocida como estado QWOP."
},
"fix_item_duplication_glitch": {
"Title": "Arreglar fallo de duplicación de elementos",
"Description": "Corrige la capacidad de duplicar el uso de elementos clave en el inventario."
},
"fix_secrets_killing_music": {
"Title": "Evitar detener la música en recogidas de secretos",
"Description": "Corrige el sonido de recoger un secreto que detiene la pista de música activa."
Expand Down
4 changes: 4 additions & 0 deletions tools/tr1/config/TR1X_ConfigTool/Resources/Lang/fr.json
Original file line number Diff line number Diff line change
Expand Up @@ -168,6 +168,10 @@
"Title": "Correction du glitch QWOP",
"Description": "Corrige le saut de Lara sur de petites étapes, entraînant parfois une animation de course étrange, connu sous le nom du glitch QWOP."
},
"fix_item_duplication_glitch": {
"Title": "Correction du glitch de duplication d'élément",
"Description": "Corrige la possibilité de dupliquer l'utilisation d'éléments clés dans l'inventaire."
},
"fix_tihocan_secret_sound": {
"Title": "Correction du son du secret dans le niveau de la tombe de Tihocan",
"Description": "Corrige le fait que le son du secret se joue de manière incorrecte lors de l'utilisation de la clé dorée dans le niveau de la tombe de Tihocan."
Expand Down
4 changes: 4 additions & 0 deletions tools/tr1/config/TR1X_ConfigTool/Resources/Lang/it.json
Original file line number Diff line number Diff line change
Expand Up @@ -168,6 +168,10 @@
"Title": "Correggi il glitch QWOP",
"Description": "Risolve il problema per cui a volte Lara, saltando da piccoli gradini, provoca una strana animazione di corsa nota come stato QWOP."
},
"fix_item_duplication_glitch": {
"Title": "Correggi il glitch duplicazione degli oggetti",
"Description": "Risolto il problema con la possibilità di duplicare l'utilizzo degli elementi chiave nell'inventario."
},
"fix_tihocan_secret_sound": {
"Title": "Correggi il suono dei segreti nella Tomba di Tihocan",
"Description": "Impedisce la riproduzione errata del suono dei segreti quando si utilizza la chiave dorata nella Tomba di Tihocan."
Expand Down
5 changes: 5 additions & 0 deletions tools/tr1/config/TR1X_ConfigTool/Resources/specification.json
Original file line number Diff line number Diff line change
Expand Up @@ -193,6 +193,11 @@
"DataType": "Bool",
"DefaultValue": false
},
{
"Field": "fix_item_duplication_glitch",
"DataType": "Bool",
"DefaultValue": false
},
{
"Field": "fix_tihocan_secret_sound",
"DataType": "Bool",
Expand Down

0 comments on commit f3a29d3

Please sign in to comment.