4#include "sprite/player.h"
34 case ANIM_MarioW1_Smash1_Miss_Back:
35 case ANIM_MarioW1_Smash1_Hit_Back:
36 case ANIM_MarioW1_Smash2_Miss_Back:
37 case ANIM_MarioW1_Smash2_Hit_Back:
38 case ANIM_MarioW1_Smash3_Miss_Back:
39 case ANIM_MarioW1_Smash3_Hit_Back:
51 f32 theta, sinTheta, cosTheta;
73 sinTheta =
sin_rad(theta) * 25.0f;
74 cosTheta =
cos_rad(theta) * -25.0f;
78 x = playerStatus->
pos.
x + sinTheta;
79 y = playerStatus->
pos.
y;
80 z = playerStatus->
pos.
z + cosTheta;
90 fx_smoke_impact(0, x, y, z, radius, numParticles, 0, (time + 3) * 3);
124 f32 playerX, playerY, playerZ;
132 if (angle >= 90.0f && angle < 270.0f) {
140 playerX = playerStatus->
pos.
x;
141 playerY = playerStatus->
pos.
y;
142 playerZ = playerStatus->
pos.
z;
145 for (i = 1; i < 16; i++) {
146 x = playerX + (outSinTheta * i);
148 z = playerZ - (outCosTheta * i);
163 if (angle >= 90.0f && angle < 270.0f) {
172 for (i = 1; i < 16; i++) {
173 x = playerX + (outSinTheta * i);
175 z = playerZ - (outCosTheta * i);
193 if (hammerLevel >= 0) {
201 if (hammerLevel >= 1) {
209 if (hammerLevel >= 2) {
239 playerStatus->
flags &= ~PS_FLAG_ACTION_STATE_CHANGED;
249 anim = ANIM_MarioW1_Smash3_Hit;
252 anim = ANIM_MarioW1_Smash3_Miss;
256 anim = ANIM_MarioW1_Smash2_Hit;
259 anim = ANIM_MarioW1_Smash2_Miss;
263 anim = ANIM_MarioW1_Smash1_Hit;
266 anim = ANIM_MarioW1_Smash1_Miss;
276 playerStatus->
flags &= ~PS_FLAG_HAMMER_CHECK;
294 f32 playerX, playerY, playerZ;
307 if (angle >= 90.0f && angle < 270.0f) {
315 playerX = playerStatus->
pos.
x;
316 playerY = playerStatus->
pos.
y;
317 playerZ = playerStatus->
pos.
z;
320 for (i = 1; i < 16; i++) {
321 x = playerX + (outSinTheta * i);
323 z = playerZ - (outCosTheta * i);
343 if (angle >= 90.0f && angle < 270.0f) {
352 for (i = 1; i < 16; i++) {
353 x = playerX + (outSinTheta * i);
355 z = playerZ - (outCosTheta * i);
374 if (hammerLevel == 2) {
376 }
else if (hammerLevel == 1) {
409 playerStatus->
flags &= ~PS_FLAG_NO_FLIPPING;
420 playerStatus->
flags &= ~PS_FLAG_HAMMER_CHECK;
423 playerStatus->
flags &= ~PS_FLAG_NO_FLIPPING;
AnimID trueAnimation
Encoding back-facing sprite.
@ CAM_SHAKE_DECAYING_VERTICAL
@ PS_FLAG_ENTERING_BATTLE
@ PS_FLAG_ACTION_STATE_CHANGED
@ ENTITY_TYPE_HAMMER1_BLOCK
@ ENTITY_TYPE_BOMBABLE_ROCK
@ ENTITY_TYPE_HAMMER3_BLOCK
@ ENTITY_TYPE_BLUE_SWITCH
@ ENTITY_TYPE_HAMMER2_BLOCK
@ ENTITY_TYPE_HAMMER3_BLOCK_TINY
@ ENTITY_TYPE_BRICK_BLOCK
@ ENTITY_TYPE_HAMMER2_BLOCK_TINY
@ ENTITY_TYPE_HAMMER1_BLOCK_TINY
@ ENTITY_TYPE_WOODEN_CRATE
@ PLAYER_COLLISION_HAMMER
@ SOUND_SLIDE_WHISTLE_OUT
@ SOUND_LIFE_SHROOM_CHIME
void start_rumble(s32, s32)
Entity * get_entity_by_index(s32 index)
s32 is_ability_active(s32 arg0)
f32 player_get_side_angle(void)
s32 player_test_lateral_overlap(s32, PlayerStatus *, f32 *, f32 *, f32 *, f32, f32)
u32 get_entity_type(s32 arg0)
void set_action_state(s32 actionState)
void suggest_player_anim_allow_backward(AnimID anim)
void exec_ShakeCamX(s32 arg0, s32 arg1, s32 arg2, f32 arg3)
void sin_cos_rad(f32 rad, f32 *outSinTheta, f32 *outCosTheta)
void sfx_play_sound_at_player(s32 soundID, s32 arg1)
#define COLLISION_WITH_ENTITY_BIT
CollisionStatus gCollisionStatus
PlayerStatus gPlayerStatus
HiddenPanelsData gCurrentHiddenPanels
s32 action_hammer_is_swinging_away(s32 animID)
void action_hammer_play_hit_fx(s32 hitID)
HammerHitData * HammerHit
void action_hammer_end_swing(void)
void action_update_hammer(void)
BSS HammerHitData D_802B6E90
HitID action_hammer_test_swing_collision(void)