From d07a391f171463ef3a483f35dcf3f8ced7284242 Mon Sep 17 00:00:00 2001 From: Isaac <62234577+Isaac0-dev@users.noreply.github.com> Date: Thu, 24 Mar 2022 13:48:06 +1000 Subject: [PATCH] Fixed desync for late joiners when using Non-stop mode and made bubble when no lives remaining kick you out of the level (#40) --- src/game/interaction.c | 1 + src/game/mario_actions_automatic.c | 2 ++ 2 files changed, 3 insertions(+) diff --git a/src/game/interaction.c b/src/game/interaction.c index 5b46adde..ee2ae40b 100644 --- a/src/game/interaction.c +++ b/src/game/interaction.c @@ -944,6 +944,7 @@ u32 interact_star_or_key(struct MarioState *m, UNUSED u32 interactType, struct O if (grandStar) { return set_mario_action(m, ACT_JUMBO_STAR_CUTSCENE, 0); } + save_file_do_save(gCurrSaveFileNum - 1, TRUE); if (!noExit || gServerSettings.stayInLevelAfterStar != 2) { return set_mario_action(m, starGrabAction, noExit + 2 * grandStar); diff --git a/src/game/mario_actions_automatic.c b/src/game/mario_actions_automatic.c index 4cb40a77..595f67b6 100644 --- a/src/game/mario_actions_automatic.c +++ b/src/game/mario_actions_automatic.c @@ -1016,6 +1016,8 @@ s32 act_bubbled(struct MarioState* m) { if (m->playerIndex == 0) { if (m->numLives == -1) { m->marioObj->header.gfx.node.flags |= GRAPH_RENDER_INVISIBLE; + level_trigger_warp(m, WARP_OP_DEATH); + return set_mario_action(m, ACT_SOFT_BONK, 0); } else { m->marioObj->header.gfx.node.flags &= ~GRAPH_RENDER_INVISIBLE; }