#279 Adjusted autocam/analog cam behavior while inside of a deku flower
This commit is contained in:
parent
b6b3bca731
commit
8cd7718b38
|
@ -1873,3 +1873,11 @@ void analog_cam_post_play_update(PlayState* play) {
|
||||||
active_cam->inputDir.y = analog_camera_pos.yaw + DEG_TO_BINANG(180);
|
active_cam->inputDir.y = analog_camera_pos.yaw + DEG_TO_BINANG(180);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool get_analog_cam_active() {
|
||||||
|
return analog_cam_active;
|
||||||
|
}
|
||||||
|
|
||||||
|
void set_analog_cam_active(bool is_active) {
|
||||||
|
analog_cam_active = is_active;
|
||||||
|
}
|
||||||
|
|
|
@ -2297,3 +2297,32 @@ void draw_dpad_icons(PlayState* play) {
|
||||||
|
|
||||||
CLOSE_DISPS(play->state.gfxCtx);
|
CLOSE_DISPS(play->state.gfxCtx);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extern s32 Player_GetMovementSpeedAndYaw(Player* this, f32* outSpeedTarget, s16* outYawTarget, f32 speedMode,
|
||||||
|
PlayState* play);
|
||||||
|
extern bool get_analog_cam_active();
|
||||||
|
extern void set_analog_cam_active(bool is_active);
|
||||||
|
|
||||||
|
// @recomp Updates yaw while inside of deku flower.
|
||||||
|
void func_80855F9C(PlayState* play, Player* this) {
|
||||||
|
f32 speedTarget;
|
||||||
|
s16 yawTarget;
|
||||||
|
|
||||||
|
this->stateFlags2 |= PLAYER_STATE2_20;
|
||||||
|
Player_GetMovementSpeedAndYaw(this, &speedTarget, &yawTarget, 0.018f, play);
|
||||||
|
|
||||||
|
// @recomp If analog cam is active and left stick inputs are occurring, reset auto cam.
|
||||||
|
if (
|
||||||
|
get_analog_cam_active() &&
|
||||||
|
(play->state.input[0].rel.stick_y != 0 || play->state.input[0].rel.stick_x != 0)
|
||||||
|
) {
|
||||||
|
set_analog_cam_active(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (get_analog_cam_active()) {
|
||||||
|
// @recomp set current yaw to active camera's yaw.
|
||||||
|
this->currentYaw = Camera_GetInputDirYaw(GET_ACTIVE_CAM(play));
|
||||||
|
} else {
|
||||||
|
Math_ScaledStepToS(&this->currentYaw, yawTarget, 0x258);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue