cmd/pos+play: make 0 always refer to the gym level

Resolves #2605.
This commit is contained in:
Marcin Kurczewski 2025-03-11 21:35:33 +01:00
parent 1989453f58
commit 332c0ba0cf
5 changed files with 7 additions and 1 deletions

View file

@ -7,6 +7,7 @@
- changed injections to a new file format with a smaller footprint and improved applicability tests (#1967)
- changed the `/pos` command to show `Demo` and `Cutscene` instead of `Level` when relevant
- changed the `/pos` command to show demo and cutscene numbers starting at 1, in line with `/play`
- changed the `/play` and `/pos` commands to always treat the gym level as the level 0 even if it's not included
- fixed several instances of the camera going out of bounds (#1034)
- fixed issues with stacked, floating and flipmap pushblocks in custom levels
- fixed issues with fixed cameras in 60 FPS shifting before settling on their target (#1186)

View file

@ -61,7 +61,7 @@ Currently supported commands:
`/level {name}`
`/play {num}`
`/play {name}`
Plays the specified level.
Plays the specified level. `/play 0` plays the gym level if it's available regular levels always start with number 1.
- `/cut {num}`
`/cutscene {num}`

View file

@ -9,6 +9,7 @@
- changed injections to a new file format with a smaller footprint, improved applicability tests and similar feature support as TR1 (#1967)
- changed the `/pos` command to show `Demo` and `Cutscene` instead of `Level` when relevant
- changed the `/pos` command to show demo and cutscene numbers starting at 1, in line with `/play`
- changed the `/play` and `/pos` commands to always treat the gym level as the level 0 even if it's not included
- fixed smashed windows blocking enemy pathing after loading a save (#2535)
- fixed several instances of the camera going out of bounds (#1034)
- fixed Lara getting stuck in a T-pose after jumping/falling and then dying before reaching fast fall speed (#2575)

View file

@ -18,6 +18,9 @@ static COMMAND_RESULT M_Entrypoint(const COMMAND_CONTEXT *const ctx)
const GF_LEVEL_TABLE *const level_table = GF_GetLevelTable(GFLT_MAIN);
if (String_ParseInteger(ctx->args, &level_to_load)) {
if (GF_GetGymLevel() == nullptr) {
level_to_load -= 1;
}
goto matched;
}

View file

@ -36,6 +36,7 @@ static COMMAND_RESULT M_Entrypoint(const COMMAND_CONTEXT *const ctx)
break;
default:
prefix = GS(OSD_POS_LEVEL);
reindex = GF_GetGymLevel() == nullptr ? 1 : 0;
break;
}