4#include "sprite/player.h"
79 s32 reachedTangentAngle;
84 playerStatus->
flags &= ~PS_FLAG_ACTION_STATE_CHANGED;
91 playerStatus->
pitch = 0;
134 if (transformation->
npc == NULL) {
163 reachedTangentAngle = FALSE;
165 if (prevFacingAngle < 270 && playerStatus->spriteFacingAngle >= 270) {
166 reachedTangentAngle = TRUE;
171 reachedTangentAngle = TRUE;
174 if (reachedTangentAngle) {
229 disguiseNpc->
flags &= ~NPC_FLAG_IGNORE_CAMERA_FOR_YAW;
230 playerStatus->
flags &= ~PS_FLAG_ROTATION_LOCKED;
248 reachedTangentAngle = FALSE;
250 if (prevFacingAngle < 270 && playerStatus->spriteFacingAngle >= 270) {
251 reachedTangentAngle = TRUE;
256 reachedTangentAngle = TRUE;
259 if (reachedTangentAngle) {
262 playerStatus->
animFlags &= ~PA_FLAG_INVISIBLE;
309 playerStatus->
flags &= ~PS_FLAG_ROTATION_LOCKED;
341 transformation->
pos.
x = playerStatus->
pos.
x + (radius *
sin_rad(angle));
342 transformation->
pos.
z = playerStatus->
pos.
z - (radius *
cos_rad(angle));
343 transformation->
pos.
y = playerStatus->
pos.
y - 20;
347 transformation->
pos.
x - 8,
348 transformation->
pos.
y + 50,
349 transformation->
pos.
z,
358 if (transformation->
npc != NULL) {
s8 availableDisguiseType
set in main map scripts
@ PEACH_FLAG_BLOCK_NEXT_DISGUISE
@ PS_FLAG_ROTATION_LOCKED
@ PS_FLAG_ACTION_STATE_CHANGED
@ SOUND_KKJ_USE_SNEAKY_PARASOL
@ SOUND_SNEAKY_PARASOL_TRANSFORM
@ SOUND_SNEAKY_PARASOL_COPY
@ NPC_FLAG_IGNORE_CAMERA_FOR_YAW
s32 disable_player_static_collisions(void)
f32 player_get_side_angle(void)
void set_action_state(s32 actionState)
void peach_sync_disguise_npc(void)
void suggest_player_anim_allow_backward(AnimID anim)
void set_time_freeze_mode(s32)
Time freeze modes: 0: none 1: NPCs move, can't be interacted with 2: NPCs don't move,...
s32 enable_player_static_collisions(void)
Npc * peach_make_disguise_npc(s32 peachDisguise)
void free_npc_by_index(s32 listIndex)
Npc * npc_find_closest(f32 x, f32 y, f32 z, f32 radius)
Finds the closest NPC to a given point within a radius.
Npc * get_npc_by_index(s32 listIndex)
void sfx_play_sound_at_player(s32 soundID, s32 arg1)
@ SUBSTATE_DISGUISE_MAKE_NPC
@ SUBSTATE_DISGUISE_SPIN_DOWN
@ SUBSTATE_REVERT_WAIT_FOR_ANGLE
@ SUBSTATE_DISGUISE_BEGIN
@ SUBSTATE_DISGUISE_FINISH_SPIN
@ SUBSTATE_DISGUISE_WAIT_FOR_ANGLE
Npc * parasol_get_npc(void)
BSS TransformationData ParasolTransformation
s32 peach_disguise_check_overlaps(void)
void peach_force_disguise_action(s32)
void action_update_parasol(void)
void parasol_update_spin(void)
GameStatus * gGameStatusPtr
s32 PrevPlayerCamRelativeYaw
PlayerStatus gPlayerStatus
s32 PeachDisguiseNpcIndex