game-flow: fix NG+ saves breaking normal saves

Resolves #2515.
This commit is contained in:
Marcin Kurczewski 2025-02-16 19:17:24 +01:00
parent bac8061a3c
commit 4e72420ecd
No known key found for this signature in database
GPG key ID: CC65E6FD28CAE42A
5 changed files with 13 additions and 4 deletions

View file

@ -2,6 +2,7 @@
- fixed some of Lara's speech in the gym not playing in response to player action (#2514, regression from 4.8)
- fixed passport text disappearing too quickly (#2512, regression from 4.8.2)
- fixed inability to navigate to Select Level menu (#2518, regression from 4.8.2)
- fixed NG+ flag causing problems with loading non-NG+ savegames (#2515, regression from 2.8)
## [4.8.2](https://github.com/LostArtefacts/TRX/compare/tr1-4.8.1...tr1-4.8.2) - 2025-02-15
- changed default FPS value to 60 (#2501)

View file

@ -74,7 +74,7 @@ GF_COMMAND GF_InterpretSequence(
"running sequence for level=%d type=%d seq_ctx=%d", level->num,
level->type, seq_ctx);
GF_PreSequenceHook();
GF_PreSequenceHook(seq_ctx, seq_ctx_arg);
GF_COMMAND gf_cmd = { .action = GF_EXIT_TO_TITLE };

View file

@ -1,6 +1,6 @@
#pragma once
extern void GF_PreSequenceHook(void);
extern void GF_PreSequenceHook(GF_SEQUENCE_CONTEXT seq_ctx, void *seq_ctx_arg);
extern GF_SEQUENCE_CONTEXT GF_SwitchSequenceContext(
const GF_SEQUENCE_EVENT *event, GF_SEQUENCE_CONTEXT seq_ctx);
extern bool GF_ShouldSkipSequenceEvent(

View file

@ -346,12 +346,16 @@ static DECLARE_GF_EVENT_HANDLER(M_HandleSetupBaconLara)
return (GF_COMMAND) { .action = GF_NOOP };
}
void GF_PreSequenceHook(void)
void GF_PreSequenceHook(
const GF_SEQUENCE_CONTEXT seq_ctx, void *const seq_ctx_arg)
{
g_GameInfo.remove_guns = false;
g_GameInfo.remove_scions = false;
g_GameInfo.remove_ammo = false;
g_GameInfo.remove_medipacks = false;
if (seq_ctx == GFSC_SAVED) {
g_GameInfo.bonus_flag = false;
}
}
GF_SEQUENCE_CONTEXT GF_SwitchSequenceContext(

View file

@ -257,7 +257,8 @@ static DECLARE_GF_EVENT_HANDLER(M_HandleSetNumSecrets)
return gf_cmd;
}
void GF_PreSequenceHook(void)
void GF_PreSequenceHook(
const GF_SEQUENCE_CONTEXT seq_ctx, void *const seq_ctx_arg)
{
g_GF_NoFloor = 0;
g_GF_SunsetEnabled = false;
@ -265,6 +266,9 @@ void GF_PreSequenceHook(void)
g_GF_RemoveAmmo = false;
g_GF_RemoveWeapons = false;
g_GF_NumSecrets = 3;
if (seq_ctx == GFSC_SAVED) {
g_SaveGame.bonus_flag = false;
}
Camera_GetCineData()->position.target_angle = DEG_90;
}