31 height = shell->
pos[0];
38 switch (shell->
state) {
46 shell->
pos[0] = player->
pos[0] + somePosVel[0];
47 pad2 = player->
pos[1] - somePosVel[1];
48 shell->
pos[2] = player->
pos[2] + somePosVel[2];
51 if ((z < 5.0f) && (z > -5.0f)) {
63 var_f2 = player->
unk_094 * 1.2f;
67 somePosVel[2] = -var_f2;
109 if (shell->
state == 2) {
112 var_f2 = player->
unk_094 * 1.2f;
114 somePosVel[0] = 0.0f;
115 somePosVel[1] = 0.0f;
116 somePosVel[2] = var_f2;
126 shell->
pos[0] = player->
pos[0] + somePosVel[0];
127 shell->
pos[1] = player->
pos[1] + somePosVel[1];
128 shell->
pos[2] = player->
pos[2] + somePosVel[2];
135 shell->
flags &= ~0x1000;
142 somePos2[0] = shell->
pos[0];
143 somePos2[1] = shell->
pos[1];
144 somePos2[2] = shell->
pos[2];
153 shell->
flags |= 0x80;
157 player = &
gPlayers[shell->playerId];
163 somePosVel[0] =
sins(shell->rotAngle) * 8.0f;
165 somePosVel[2] =
coss(shell->rotAngle) * 8.0f;
167 somePos2[0] = shell->
pos[0];
168 somePos2[1] = shell->
pos[1];
169 somePos2[2] = shell->
pos[2];
170 shell->
pos[0] = player->
pos[0] + somePosVel[0];
171 shell->
pos[1] = player->
pos[1] + somePosVel[1];
172 shell->
pos[2] = player->
pos[2] + somePosVel[2];
183 shell->rotAngle += 0x5B0;
184 shell->someTimer -= 1;
186 if (shell->someTimer == 0) {
@ ACTOR_TRIPLE_GREEN_SHELL
Definition actor_types.h:59
@ MOVING_SHELL
Definition actor_types.h:95
@ HELD_SHELL
Definition actor_types.h:93
@ RELEASED_SHELL
Definition actor_types.h:94
@ GREEN_SHELL_HIT_A_RACER
Definition actor_types.h:98
@ TRIPLE_GREEN_SHELL
Definition actor_types.h:97
void destroy_destructable_actor(struct Actor *actor)
Definition actors.c:1813
void destroy_actor(struct Actor *actor)
Definition actors.c:1290
void copy_collision(Collision *src, Collision *dest)
Definition actors_extended.c:19
void func_802B4E30(struct Actor *arg0)
Definition actors_extended.c:962
s16 gCourseMinZ
Definition code_800029B0.c:93
s16 gCourseMaxZ
Definition code_800029B0.c:92
s16 gCourseMinX
Definition code_800029B0.c:87
struct Actor gActorList[ACTOR_LIST_SIZE]
Definition code_800029B0.c:148
s16 gCourseMinY
Definition code_800029B0.c:90
s16 gCourseMaxX
Definition code_800029B0.c:86
s32 add_green_shell_in_unexpired_actor_list(s32 actorIndex)
Definition code_80005FD0.c:3255
void shell_collision(Collision *collision, Vec3f velocity)
Definition collision.c:586
f32 calculate_surface_height(f32 x, f32 y, f32 z, u16 index)
Definition collision.c:519
u16 actor_terrain_collision(Collision *collision, f32 boundingBoxSize, f32 x1, f32 y1, f32 z1, f32 x2, f32 y2, f32 z2)
Definition collision.c:1221
f32 Vec3f[3]
Definition common_structs.h:6
#define PLAYER_HUMAN
Definition defines.h:101
void func_800C9060(u8 playerId, u32 soundBits)
Definition external.c:2894
void func_800C90F4(u8 playerId, u32 soundBits)
Definition external.c:2906
void func_800C98B8(Vec3f position, Vec3f velocity, u32 soundBits)
Definition external.c:3049
void update_actor_green_shell(struct ShellActor *shell)
Updates the green shell actor.
Definition update.inc.c:12
#define UNUSED
Definition macros.h:24
Player gPlayers[NUM_PLAYERS]
Definition main.c:73
struct Controller gControllers[NUM_PLAYERS]
Definition main.c:63
f32 sins(u16 arg0)
Definition math_util.c:1055
void func_802B64C4(Vec3f arg0, s16 arg1)
Definition math_util.c:606
void mtxf_translate_vec3f_mat3(Vec3f pos, Mat3 mat)
Definition math_util.c:572
f32 coss(u16 arg0)
Definition math_util.c:1059
#define Z_TRIG
Definition os.h:398
#define SOUND_ARG_LOAD(sound_bank, byte2, byte3, sound_id)
Definition sounds.h:14
Definition actor_types.h:120
Vec3f velocity
Definition actor_types.h:130
Collision unk30
Definition actor_types.h:131
s16 flags
Definition actor_types.h:122
Vec3f pos
Definition actor_types.h:129
f32 boundingBoxSize
Definition actor_types.h:126
Vec3f surfaceDistance
Definition common_structs.h:146
u16 meshIndexZX
Definition common_structs.h:145
Definition common_structs.h:71
s16 rawStickY
Definition common_structs.h:73
u16 buttonDepressed
Definition common_structs.h:76
Definition common_structs.h:255
s16 unk_0C0
Definition common_structs.h:307
f32 unk_094
Definition common_structs.h:292
Mat3 orientationMatrix
Definition common_structs.h:334
u16 characterId
Definition common_structs.h:362
Vec3s rotation
Definition common_structs.h:269
Collision collision
Definition common_structs.h:332
f32 boundingBoxSize
Definition common_structs.h:282
u16 type
Definition common_structs.h:256
Vec3f pos
Definition common_structs.h:265
Definition actor_types.h:302
s16 rotAngle
Definition actor_types.h:318
s16 rotVelocity
Definition actor_types.h:316
s16 flags
Definition actor_types.h:304
f32 boundingBoxSize
Definition actor_types.h:315
s16 state
Definition actor_types.h:313
s16 playerId
Definition actor_types.h:321
Vec3f velocity
Definition actor_types.h:324
s16 parentIndex
Definition actor_types.h:308
Vec3f pos
Definition actor_types.h:323
Collision unk30
Definition actor_types.h:325
s16 someTimer
Definition actor_types.h:309
Definition actor_types.h:286
s16 rotVelocity
Definition actor_types.h:293
s16 type
Definition actor_types.h:287
float f32
Definition ultratypes.h:34