25 guMtxL2F(mtxFragment,
ENTITY_ADDR(entity, Mtx*, matrices++));
26 guMtxCatF(mtxTrans, mtxFragment, mtxFragment);
54 f32 rotSpeed, lateralSpeed, reboundSpeed;
55 f32 moveAngle, yawRad;
57 s32 numFragmentsDisappeared;
58 f32 hitX, hitY, hitZ, hitDepth;
60 numFragmentsDisappeared = 0;
65 for (i = 0; i < 12; i++) {
71 if (rotSpeed >= 0.0f) {
97 numFragmentsDisappeared++;
155 if (numFragmentsDisappeared >= 12) {
175 x_inv = -entity->
pos.
x;
176 y_inv = -entity->
pos.
y;
177 z_inv = -entity->
pos.
z;
179 for (i = 0; i < 12; i++) {
181 gDPSetRenderMode(gfxPos++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2);
182 gDPSetCombineMode(gfxPos++, G_CC_MODULATEIA, G_CC_MODULATEIA);
192 guMtxCatF(mtxRotY, mtxTransInv, mtxTransInv);
199 gSPDisplayList(gfxPos++, fragmentDlist);
200 gSPPopMatrix(gfxPos++, G_MTX_MODELVIEW);
225 for (i = 0; i < 12; i++) {
248 .modelAnimationNodes = 0,
251 .fpHandleCollision = NULL,
254 .aabbSize = { 60, 5, 60 }
struct BoardedFloorData * boardedFloor
void Entity_BoardedFloor_init(Entity *entity)
void Entity_BoardedFloor_shatter(Entity *entity)
Mtx Entity_BoardedFloor_FragmentMatrices[]
void Entity_BoardedFloor_idle(Entity *entity)
EntityModelScript Entity_BoardedFloor_Script
Gfx * Entity_BoardedFloor_FragmentsRender[]
EntityModelScript Entity_BoardedFloor_RenderScriptShattered
EntityModelScript Entity_BoardedFloor_RenderScript
void Entity_BoardedFloor_setupGfx(s32)
EntityBlueprint Entity_BoardedFloor
void Entity_BoardedFloor_update_fragments(Entity *entity)
void Entity_BoardedFloor_init_fragments(Entity *entity, Gfx **dlists, Mtx *matrices)
#define npc_raycast_down_sides
#define FRAGMENT_BUF_SIZE
#define STANDARD_ENTITY_MODEL_SCRIPT(gfx, renderMode)
#define ENTITY_ADDR(entity, type, data)
u8 fragmentLateralSpeed[13]
#define es_SetCallback(func, time)
#define es_SetFlags(flags)
#define es_PlaySound(soundId)
#define es_ClearFlags(flags)
f32 fragmentFallSpeed[13]
void entity_set_render_script(Entity *entity, EntityModelScript *cmdList)
@ COLLISION_IGNORE_ENTITIES
@ ENTITY_TYPE_BOARDED_FLOOR
@ ENTITY_COLLISION_PLAYER_TOUCH_FLOOR
@ RENDER_MODE_SURFACE_OPA
@ RENDER_MODE_SURFACE_XLU_LAYER1
@ ENTITY_FLAG_PENDING_INSTANCE_DELETE
@ ENTITY_FLAG_DISABLE_COLLISION
@ ACTION_STATE_SPIN_POUND
@ ACTION_STATE_TORNADO_POUND
Entity * get_entity_by_index(s32 index)
s32 entity_start_script(Entity *entity)
b32 npc_test_move_taller_with_slipping(s32, f32 *, f32 *, f32 *, f32, f32, f32, f32)
void exec_entity_commandlist(Entity *entity)
void(* renderSetupFunc)(s32)
PlayerStatus gPlayerStatus
DisplayContext * gDisplayContext