From c07c80f5efc775a708198dab10821be96ecec346 Mon Sep 17 00:00:00 2001 From: MysterD Date: Sat, 3 Jun 2023 02:17:53 -0700 Subject: [PATCH] Fix weird camera state when vanilla c-up cam is interrupted --- src/game/camera.c | 6 ++++++ src/game/mario.c | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/game/camera.c b/src/game/camera.c index 3ce4641c2..d34fa00e5 100644 --- a/src/game/camera.c +++ b/src/game/camera.c @@ -29,6 +29,7 @@ #include "engine/graph_node.h" #include "level_table.h" #include "game/hardcoded.h" +#include "game/sound_init.h" #include "pc/configfile.h" #include "pc/network/network.h" #include "pc/lua/smlua_hooks.h" @@ -2777,6 +2778,11 @@ s32 mode_c_up_camera(struct Camera *c) { if (!c) { return 0; } UNUSED u8 unused[12]; + if (gMarioStates[0].action != ACT_FIRST_PERSON) { + raise_background_noise(2); + set_camera_mode(c, -1, 1); + } + // Play a sound when entering C-Up mode if (!(sCameraSoundFlags & CAM_SOUND_C_UP_PLAYED)) { play_sound_cbutton_up(); diff --git a/src/game/mario.c b/src/game/mario.c index 1a09b8b12..6151e8bb8 100644 --- a/src/game/mario.c +++ b/src/game/mario.c @@ -1646,7 +1646,7 @@ void update_mario_inputs(struct MarioState *m) { } if (m->playerIndex == 0) { - if (!localIsPaused && gCameraMovementFlags & CAM_MOVE_C_UP_MODE) { + if (!localIsPaused && (gCameraMovementFlags & CAM_MOVE_C_UP_MODE)) { if (m->action & ACT_FLAG_ALLOW_FIRST_PERSON) { m->input |= INPUT_FIRST_PERSON; } else {