7extern Addr entity_model_HiddenPanel_ROM_END;
8extern Addr entity_model_HiddenPanel_ROM_START;
53 entity->
flags &= ~ENTITY_FLAG_DISABLE_COLLISION;
76 if (distToPlayer <= 100) {
90 npc->
flags &= ~NPC_FLAG_FLYING;
96 if (distToPlayer > 60) {
117 if (yaw < 90.0f || yaw >= 180.0f && yaw < 270.0f) {
118 rotAngle = entity->
rot.
z;
121 rotAngle = entity->
rot.
x;
125 switch (data->
state) {
141 entity->
flags &= ~ENTITY_FLAG_HIDDEN;
147 entity->
rot.
x = 0.0f;
148 entity->
rot.
z = 0.0f;
162 if (rotAngle >= 360.0f) {
174 if (rotAngle >= 360.0f) {
178 if (--data->
timer <= 0) {
189 if (rotAngle >= 360.0f) {
203 entity->
rot.
x = 0.0f;
204 entity->
rot.
z = 0.0f;
216 entity->
pos.
y += 2.0f;
219 entity->
flags &= ~ENTITY_FLAG_HIDDEN;
222 entity->
pos.
y += 6.0f;
225 entity->
pos.
y -= 1.0f;
238 if (data->
timer < 0) {
245 entity->
flags &= ~ENTITY_FLAG_DISABLE_COLLISION;
256 entity->
rot.
x = rotAngle;
258 entity->
rot.
z = rotAngle;
263 if (itemEntity != NULL) {
284 if (itemEntity != NULL) {
314 data->
itemID = ITEM_STAR_PIECE;
370 .modelAnimationNodes = 0,
373 .fpHandleCollision = NULL,
376 .aabbSize = { 60, 0, 60 }
380static const f32 rodata_alignment[] = {0.0f, 0.0f};
EntityModelScript ERS_HiddenPanel
void entity_HiddenPanel_setupGfx(s32 entityIndex)
Gfx Gfx_HiddenPanel_RenderHole[]
void entity_HiddenPanel_set_ispy_notification(Entity *entity)
void entity_HiddenPanel_flip_over(Entity *)
void entity_HiddenPanel_idle(Entity *entity)
Gfx Gfx_HiddenPanel_RenderTop[]
s32 npc_find_standing_on_entity(s32 entityIndex)
Gfx Gfx_HiddenPanel_Render[]
s32 entity_HiddenPanel_is_item_on_top(Entity *)
EntityBlueprint Entity_HiddenPanel
void mdl_project_tex_coords(s32 modelID, Gfx *destGfx, Matrix4f destMtx, void *destVertices)
Gfx Gfx_HiddenPanel_Render2[]
EntityScript Entity_HiddenPanel_Script
void entity_HiddenPanel_init(Entity *entity)
void entity_HiddenPanel_hide(Entity *entity)
Gfx Gfx_AltHiddenPanel_RenderTop[]
struct HiddenPanelData * hiddenPanel
#define mdl_draw_hidden_panel_surface
s32 CreateEntityVarArgBuffer[]
#define ENTITY_ADDR(entity, type, data)
#define es_SetCallback(func, time)
#define ems_SetRenderMode(mode)
#define es_Label(labelId)
#define ems_SetFlags(flags)
void entity_set_render_script(Entity *entity, EntityModelScript *cmdList)
#define ems_Draw(dlist, holdTime)
@ ENTITY_MODEL_FLAG_10000
@ CAM_SHAKE_DECAYING_VERTICAL
@ ITEM_SPAWN_MODE_TOSS_NEVER_VANISH
@ ENTITY_TYPE_HIDDEN_PANEL
@ PA_FLAG_OPENED_HIDDEN_PANEL
@ ENTITY_COLLISION_PLAYER_TOUCH_FLOOR
@ RENDER_MODE_SURFACE_OPA
@ ENTITY_FLAG_DISABLE_COLLISION
Entity * get_entity_by_index(s32 index)
s32 is_ability_active(s32 arg0)
ItemEntity * get_item_entity(s32 itemEntityIndex)
s32 disable_player_static_collisions(void)
s32 make_item_entity_nodelay(s32 itemID, f32 x, f32 y, f32 z, s32 itemSpawnMode, s32 pickupVar)
f32 dist2D(f32 ax, f32 ay, f32 bx, f32 by)
void exec_entity_commandlist(Entity *entity)
void exec_ShakeCamX(s32 arg0, s32 arg1, s32 arg2, f32 arg3)
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)
f32 get_xz_dist_to_player(f32, f32)
Npc * get_npc_by_index(s32 listIndex)
void sfx_play_sound(s32 soundID)
void(* renderSetupFunc)(s32)
u8 Addr[]
Linker symbol address, as in ld_addrs.h.
PlayerStatus * gPlayerStatusPtr
DisplayContext * gDisplayContext
HiddenPanelsData gCurrentHiddenPanels
s32 get_global_flag(s32 index)