Misc camera fixes

Made analog camera stop rotating or triggering TOTWC when paused
Fix broken vanilla camera on TOWTC w/BETTERCAMERA enabled
Fixes #15
This commit is contained in:
MysterD 2020-09-07 10:48:54 -07:00
parent bc2480da87
commit 3145dfabdc
3 changed files with 17 additions and 6 deletions

View file

@ -608,7 +608,7 @@ static void newcam_apply_values(struct Camera *c) {
if (gMarioStates[0].floor != NULL) {
if (gMarioStates[0].floor->type == SURFACE_LOOK_UP_WARP) {
if (save_file_get_total_star_count(gCurrSaveFileNum - 1, 0, 0x18) >= 10) {
if (newcam_tilt < -8000 && gMarioStates[0].forwardVel == 0) {
if (newcam_tilt < -8000 && gMarioStates[0].forwardVel == 0 && sCurrPlayMode != PLAY_MODE_PAUSED) {
level_trigger_warp(gMarioState, 1);
}
}
@ -647,6 +647,9 @@ void newcam_loop(struct Camera *c) {
newcam_stick_input();
newcam_rotate_button();
newcam_zoom_button();
} else {
newcam_yaw_acc *= 0.6f;
newcam_tilt_acc *= 0.6f;
}
newcam_position_cam();
newcam_find_fixed();

View file

@ -2924,7 +2924,13 @@ void update_lakitu(struct Camera *c) {
s16 newYaw;
UNUSED u8 unused1[8];
if (gCameraMovementFlags & CAM_MOVE_PAUSE_SCREEN) {
#ifdef BETTERCAMERA
u8 allowPauseCheck = (c->mode != CAMERA_MODE_NEWCAM);
#else
u8 allowPauseCheck = TRUE;
#endif
if (allowPauseCheck && (gCameraMovementFlags & CAM_MOVE_PAUSE_SCREEN)) {
} else {
if (c->cutscene) {
}

View file

@ -1789,10 +1789,12 @@ s32 act_flying(struct MarioState *m) {
#ifndef BETTERCAMERA
set_camera_mode(m->area->camera, CAMERA_MODE_BEHIND_MARIO, 1);
#else
if (newcam_active == 0)
set_camera_mode(m->area->camera, m->area->camera->defMode, 1);
else
{
if (newcam_active == 0) {
set_camera_mode(m->area->camera, CAMERA_MODE_BEHIND_MARIO, 1);
// note: EX sets it to the following line instead, but I have
// no idea why... possibly copy/paste error?
//set_camera_mode(m->area->camera, m->area->camera->defMode, 1);
} else {
m->area->camera->mode = CAMERA_MODE_NEWCAM;
gLakituState.mode = CAMERA_MODE_NEWCAM;
}