summaryrefslogtreecommitdiff
path: root/src/engine
diff options
context:
space:
mode:
authorKiloku <mateus.sateles@protonmail.com>2025-01-03 19:19:10 -0300
committerLywx <kiritodev01@gmail.com>2025-01-03 16:59:24 -0600
commit6560c012fc5f98fef5fe4ce6168edac487c919ec (patch)
treebcb311212c6e1766690ae0ffa69384bd87111e2f /src/engine
parenteb44ba0f044586e010daeaa573c65dadd0784e0a (diff)
per-level checkpoints
Diffstat (limited to 'src/engine')
-rw-r--r--src/engine/fox_play.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/engine/fox_play.c b/src/engine/fox_play.c
index 74ffdb13..9f72f4e8 100644
--- a/src/engine/fox_play.c
+++ b/src/engine/fox_play.c
@@ -4678,10 +4678,15 @@ void Player_Setup(Player* playerx) {
gDisplayedHitCount = gHitCount;
D_hud_80161730 = 0;
- if (CVarGetInteger("gCheckpoint.Set", 0) && CVarGetInteger("gCheckpoint.gSavedLevel", -1) == gCurrentLevel) {
- gSavedGroundSurface = CVarGetInteger("gCheckpoint.gSavedGroundSurface", gSavedGroundSurface);
- gSavedPathProgress = CVarGetFloat("gCheckpoint.gSavedPathProgress", gSavedPathProgress);
- gSavedObjectLoadIndex = CVarGetInteger("gCheckpoint.gSavedObjectLoadIndex", gSavedObjectLoadIndex);
+ char buffer [48] = {"\0"};
+ sprintf(buffer, "gCheckpoint.%d.Set", gCurrentLevel);
+ if (CVarGetInteger(buffer, 0)) {
+ sprintf(buffer, "gCheckpoint.%d.gSavedGroundSurface", gCurrentLevel);
+ gSavedGroundSurface = CVarGetInteger(buffer, gSavedGroundSurface);
+ sprintf(buffer, "gCheckpoint.%d.gSavedPathProgress", gCurrentLevel);
+ gSavedPathProgress = CVarGetFloat(buffer, gSavedPathProgress);
+ sprintf(buffer, "gCheckpoint.%d.gSavedObjectLoadIndex", gCurrentLevel);
+ gSavedObjectLoadIndex = CVarGetInteger(buffer, gSavedObjectLoadIndex);
}
gMissedZoSearchlight = gSavedZoSearchlightStatus;