diff --git a/src/libtrx/include/libtrx/game/game_flow/types.h b/src/libtrx/include/libtrx/game/game_flow/types.h index b098e0416..d2120ea31 100644 --- a/src/libtrx/include/libtrx/game/game_flow/types.h +++ b/src/libtrx/include/libtrx/game/game_flow/types.h @@ -98,11 +98,7 @@ typedef struct { typedef struct { int32_t num; GF_LEVEL_TYPE type; -#if TR_VERSION == 1 char *path; -#elif TR_VERSION == 2 - const char *path; -#endif char *title; MUSIC_TRACK_ID music_track; diff --git a/src/tr2/game/shell/common.c b/src/tr2/game/shell/common.c index 04e9ef088..8a301e4a9 100644 --- a/src/tr2/game/shell/common.c +++ b/src/tr2/game/shell/common.c @@ -393,7 +393,9 @@ void Shell_Main(void) GameBuf_Init(); if (level_to_play != nullptr) { - g_GameFlow.level_tables[GFLT_MAIN].levels[0].path = level_to_play; + Memory_Free(g_GameFlow.level_tables[GFLT_MAIN].levels[0].path); + g_GameFlow.level_tables[GFLT_MAIN].levels[0].path = + Memory_DupStr(level_to_play); } GF_COMMAND gf_cmd = level_to_play != nullptr @@ -468,6 +470,9 @@ void Shell_Main(void) } Config_Write(); + if (level_to_play != nullptr) { + Memory_FreePointer(&g_GameFlow.level_tables[GFLT_MAIN].levels[0].path); + } } void Shell_Shutdown(void)