Small improvements to camera freeze (#244)

This commit is contained in:
Agent X 2022-12-17 13:26:32 -05:00 committed by GitHub
parent 3a7034c4ed
commit d03ec2dd9d
2 changed files with 8 additions and 5 deletions

View File

@ -3051,13 +3051,15 @@ void update_lakitu(struct Camera *c) {
* Gets controller input, checks for cutscenes, handles mode changes, and moves the camera
*/
void update_camera(struct Camera *c) {
if (gOverrideFreezeCamera && !gDjuiInMainMenu) {
return;
}
UNUSED u8 unused[24];
gCamera = c;
update_camera_hud_status(c);
if (gOverrideFreezeCamera && !gDjuiInMainMenu) {
return;
}
if (c->cutscene == 0) {
// Only process R_TRIG if 'fixed' is not selected in the menu
if (cam_select_alt_mode(0) == CAM_SELECTION_MARIO
@ -4006,7 +4008,8 @@ s32 update_camera_hud_status(struct Camera *c) {
s16 status = CAM_STATUS_NONE;
if (c->cutscene != 0
|| ((gPlayer1Controller->buttonDown & R_TRIG) && cam_select_alt_mode(0) == CAM_SELECTION_FIXED)) {
|| ((gPlayer1Controller->buttonDown & R_TRIG) && cam_select_alt_mode(0) == CAM_SELECTION_FIXED)
|| gOverrideFreezeCamera) {
status |= CAM_STATUS_FIXED;
} else if (set_cam_angle(0) == CAM_ANGLE_MARIO) {
status |= CAM_STATUS_MARIO;

View File

@ -1075,7 +1075,7 @@ s32 act_first_person(struct MarioState *m) {
set_camera_mode(m->area->camera, CAMERA_MODE_C_UP, 0x10);
}
m->actionState = 1;
} else if (!(m->input & INPUT_FIRST_PERSON) || sp1C) {
} else if (!(m->input & INPUT_FIRST_PERSON) || sp1C || gOverrideFreezeCamera) {
if (m->playerIndex == 0) {
raise_background_noise(2);
// Go back to the last camera mode