5#include "message_ids.h"
10extern Addr entity_model_HeartBlockContent_ROM_END;
11extern Addr entity_model_HeartBlockContent_ROM_START;
12extern Addr entity_model_HeartBlock_ROM_END;
13extern Addr entity_model_HeartBlock_ROM_START;
48 gDPSetPrimColor(gfxPos++, 0, 0, 0, 0, 0, entity->
alpha);
51 if (entity->
alpha < alpha) {
52 alpha = entity->
alpha;
59 gDPSetRenderMode(gfxPos++, AA_EN | Z_CMP | IM_RD | CVG_DST_SAVE | ZMODE_OPA | FORCE_BL | GBL_c1(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA), AA_EN | Z_CMP | IM_RD | CVG_DST_SAVE | ZMODE_OPA | FORCE_BL | GBL_c2(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA));
60 gSPDisplayList(gfxPos++, dlist);
61 gDPPipeSync(gfxPos++);
63 gDPSetPrimColor(gfxPos++, 0, 0, 0, 0, 0, alpha);
64 gSPPopMatrix(gfxPos++, G_MTX_MODELVIEW);
67 if (entity->
alpha < alpha) {
68 alpha = entity->
alpha;
75 gDPSetRenderMode(gfxPos++, AA_EN | Z_CMP | IM_RD | CVG_DST_SAVE | ZMODE_OPA | FORCE_BL | GBL_c1(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA), AA_EN | Z_CMP | IM_RD | CVG_DST_SAVE | ZMODE_OPA | FORCE_BL | GBL_c2(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA));
76 gSPDisplayList(gfxPos++, dlist);
77 gDPPipeSync(gfxPos++);
79 gDPSetPrimColor(gfxPos++, 0, 0, 0, 0, 0, alpha);
80 gSPPopMatrix(gfxPos++, G_MTX_MODELVIEW);
94 entity->
pos.
y = entityTemp->
pos.
y + 14.0f;
119 entity->
rot.
x = 0.0f;
120 entity->
rot.
y = 0.0f;
121 entity->
rot.
z = 0.0f;
130 switch (data->
state) {
142 if (entity->
scale.
x >= 1.0) {
183 entity->
rot.
z = 0.0f;
189 f32 offsetX, offsetY, offsetZ;
191 switch (data->
state) {
203 entity->
flags &= ~ENTITY_FLAG_ALWAYS_FACE_CAMERA;
250 playerStatus->
pos.
y + offsetY,
251 playerStatus->
pos.
z - offsetZ,
271 if (entity->
rot.
y >= 360.0f) {
272 entity->
rot.
y -= 360.0f;
275 if (entity->
alpha < 7) {
277 if (data->
state == 4) {
288 playerStatus->
animFlags &= ~PA_FLAG_RAISED_ARMS;
306 if (entity->
scale.
x < 1.0) {
317 if (entity->
scale.
x <= 1.0) {
401 if (useAltSparkleType == FALSE) {
445 .modelAnimationNodes = 0,
451 .aabbSize = { 25, 25, 25 }
458 .modelAnimationNodes = 0,
461 .fpHandleCollision = NULL,
464 .aabbSize = { 18, 6, 18 }
471 .modelAnimationNodes = 0,
477 .aabbSize = { 25, 25, 25 }
EntityBlueprint Entity_HeartBlockFrame
void entity_HeartBlockContent__reset(Entity *entity)
EntityModelScript Entity_HeartBlockContent_RenderScriptIdle
EntityModelScript Entity_HeartBlockContent_RenderScriptHit
EntityBlueprint Entity_HeartBlockContent
EntityBlueprint Entity_HeartBlock
void entity_HeartBlockContent_init(Entity *entity)
Gfx Entity_HeartBlockContent_RenderHeartHappy[]
Gfx Entity_HeartBlockContent_RenderHeartAwake[]
EntityModelScript Entity_HeartBlock_RenderScript
void entity_HeartBlock_show_tutorial_message(Entity *entity)
void entity_HeartBlock_change_render_script(Entity *entity)
void entity_HeartBlockContent_reset_data(Entity *entity)
EntityScript Entity_InertBlock_Script
void entity_HeartBlockContent_setupGfx(s32 entityIndex)
EntityModelScript Entity_HeartBlockContent_RenderScriptAfterHit
void entity_HeartBlock_wait_for_close_tutorial(Entity *entity)
void entity_HeartBlockContent__anim_heal(Entity *entity, s32 arg1)
s8 entity_HeartBlock_create_child_entity(Entity *entity, EntityBlueprint *bp)
f32 entity_HeartBlockContent_get_previous_yaw(HeartBlockContentData *data, s32 lagTime)
void entity_HeartBlockContent_anim_idle(Entity *entity, s32 arg1)
BSS u32 HeartBlockPrinterClosed
Gfx Entity_HeartBlockContent_RenderHeartSleeping[]
void entity_HeartBlock_idle(Entity *entity)
void entity_HeartBlockContent_set_initial_pos(Entity *entity)
void entity_HeartBlock_init(Entity *entity)
void entity_HeartBlockContent__setupGfx(s32 entityIndex, Gfx *arg1)
void entity_HeartBlockContent_idle(Entity *entity)
EntityScript Entity_HeartBlockContent_Script
void entity_HeartBlockContent_reset(Entity *entity)
void entity_HeartBlockContent_anim_beating(Entity *entity)
EntityScript Entity_HeartBlock_Script
Gfx Entity_HeartBlock_Render[]
void entity_HeartBlockContent_anim_heal(Entity *entity)
struct HeartBlockContentData * heartBlockContent
s32 CreateEntityVarArgBuffer[]
#define STANDARD_ENTITY_MODEL_SCRIPT(gfx, renderMode)
#define ENTITY_ADDR(entity, type, data)
#define es_SetCallback(func, time)
#define es_PlaySound(soundId)
void entity_set_render_script(Entity *entity, EntityModelScript *cmdList)
@ ENTITY_TYPE_HEALING_BLOCK_FRAME
@ ENTITY_TYPE_HEALING_BLOCK
@ ENTITY_TYPE_HEALING_BLOCK_CONTENT
@ PA_FLAG_RAISED_ARMS
Sets action state to ACTION_STATE_RAISE_ARMS on idle.
@ RENDER_MODE_SURFACE_XLU_LAYER3
@ RENDER_MODE_SURFACE_XLU_LAYER2
@ ENTITY_FLAG_FIXED_SHADOW_SIZE
@ ENTITY_FLAG_DISABLE_COLLISION
@ ENTITY_FLAG_ALWAYS_FACE_CAMERA
Entity * get_entity_by_index(s32 index)
s32 disable_player_input(void)
s32 entity_can_collide_with_jumping_player(Entity *entity)
void entity_block_hit_animate_scale(Entity *entity)
s32 entity_start_script(Entity *entity)
s32 enable_player_input(void)
MessagePrintState * msg_get_printer_for_msg(s32 msgID, s32 *a1)
s32 entity_base_block_idle(Entity *entity)
void exec_entity_commandlist(Entity *entity)
void entity_base_block_init(Entity *entity)
f32 entity_block_hit_init_scale(Entity *entity)
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 create_entity(EntityBlueprint *bp,...)
s32 entity_block_handle_collision(Entity *entity)
s32 recover_hp(s32 amt)
Recover player HP.
s32 recover_fp(s32 amt)
Recover player FP.
void sfx_play_sound(s32 soundID)
void(* renderSetupFunc)(s32)
u8 Addr[]
Linker symbol address, as in ld_addrs.h.
PlayerStatus gPlayerStatus
DisplayContext * gDisplayContext
s32 set_global_flag(s32 index)
s32 get_global_flag(s32 index)