mirror of
https://github.com/coop-deluxe/sm64coopdx.git
synced 2024-11-22 03:55:11 +00:00
Fix camera problems (#398)
Fixed the issue where the camera wasn't behaving like vanilla in vanilla sm64 Fixed the issue where the camera was just stuck while in water/flying in a romhack
This commit is contained in:
parent
aa12eaacce
commit
1a440f6380
1 changed files with 28 additions and 23 deletions
|
@ -908,20 +908,21 @@ void pan_ahead_of_player(struct Camera *c) {
|
|||
}
|
||||
|
||||
s16 find_in_bounds_yaw_wdw_bob_thi(UNUSED Vec3f pos, UNUSED Vec3f origin, s16 yaw) {
|
||||
// switch (gCurrLevelArea) {
|
||||
// case AREA_WDW_MAIN:
|
||||
// yaw = clamp_positions_and_find_yaw(pos, origin, 4508.f, -3739.f, 4508.f, -3739.f);
|
||||
// break;
|
||||
// case AREA_BOB:
|
||||
// yaw = clamp_positions_and_find_yaw(pos, origin, 8000.f, -8000.f, 7050.f, -8000.f);
|
||||
// break;
|
||||
// case AREA_THI_HUGE:
|
||||
// yaw = clamp_positions_and_find_yaw(pos, origin, 8192.f, -8192.f, 8192.f, -8192.f);
|
||||
// break;
|
||||
// case AREA_THI_TINY:
|
||||
// yaw = clamp_positions_and_find_yaw(pos, origin, 2458.f, -2458.f, 2458.f, -2458.f);
|
||||
// break;
|
||||
// }
|
||||
if (!gCameraUseCourseSpecificSettings) { return yaw; }
|
||||
switch (gCurrLevelArea) {
|
||||
case AREA_WDW_MAIN:
|
||||
yaw = clamp_positions_and_find_yaw(pos, origin, 4508.f, -3739.f, 4508.f, -3739.f);
|
||||
break;
|
||||
case AREA_BOB:
|
||||
yaw = clamp_positions_and_find_yaw(pos, origin, 8000.f, -8000.f, 7050.f, -8000.f);
|
||||
break;
|
||||
case AREA_THI_HUGE:
|
||||
yaw = clamp_positions_and_find_yaw(pos, origin, 8192.f, -8192.f, 8192.f, -8192.f);
|
||||
break;
|
||||
case AREA_THI_TINY:
|
||||
yaw = clamp_positions_and_find_yaw(pos, origin, 2458.f, -2458.f, 2458.f, -2458.f);
|
||||
break;
|
||||
}
|
||||
return yaw;
|
||||
}
|
||||
|
||||
|
@ -1926,14 +1927,18 @@ s32 update_behind_mario_camera(struct Camera *c, Vec3f focus, Vec3f pos) {
|
|||
dist = 300.f;
|
||||
}
|
||||
vec3f_set_dist_and_angle(focus, pos, dist, pitch, yaw);
|
||||
if (gCurrLevelArea == AREA_WDW_MAIN) {
|
||||
|
||||
if (!gCameraUseCourseSpecificSettings) { return yaw; }
|
||||
switch (gCurrLevelArea) {
|
||||
case AREA_WDW_MAIN:
|
||||
yaw = clamp_positions_and_find_yaw(pos, focus, 4508.f, -3739.f, 4508.f, -3739.f);
|
||||
}
|
||||
if (gCurrLevelArea == AREA_THI_HUGE) {
|
||||
break;
|
||||
case AREA_THI_HUGE:
|
||||
yaw = clamp_positions_and_find_yaw(pos, focus, 8192.f, -8192.f, 8192.f, -8192.f);
|
||||
}
|
||||
if (gCurrLevelArea == AREA_THI_TINY) {
|
||||
break;
|
||||
case AREA_THI_TINY:
|
||||
yaw = clamp_positions_and_find_yaw(pos, focus, 2458.f, -2458.f, 2458.f, -2458.f);
|
||||
break;
|
||||
}
|
||||
|
||||
return yaw;
|
||||
|
@ -2425,7 +2430,7 @@ s16 update_default_camera(struct Camera *c) {
|
|||
c->pos[1] = ceilHeight;
|
||||
}
|
||||
}
|
||||
if (gCurrLevelArea == AREA_WDW_TOWN) {
|
||||
if (gCameraUseCourseSpecificSettings && gCurrLevelArea == AREA_WDW_TOWN) {
|
||||
yaw = clamp_positions_and_find_yaw(c->pos, c->focus, 2254.f, -3789.f, 3790.f, -2253.f);
|
||||
}
|
||||
return yaw;
|
||||
|
|
Loading…
Reference in a new issue