4#include "message_ids.h"
188 if (!
popup->active) {
214 popup->messageIndex = messageIndex;
215 popup->duration = duration;
225 switch (
popup->showMsgState) {
236 if (
popup->duration != 0) {
265 if (
popup->messageIndex < 0)
return;
289 switch (
popup->messageIndex) {
291 if (
popup->needsInit) {
295 xPos = 160 - (width / 2);
303 if (
popup->needsInit) {
307 xPos = 160 - (width / 2);
320 if (
popup->needsInit) {
324 xPos = 160 - (width / 2);
361 if (
icon->flags == 0) {
366 switch (
icon->status1.active) {
400 switch (
icon->status1.removingTask) {
404 switch (
icon->status1.removing) {
434 icon->status1.frameCounter = 10;
439 if (
icon->status1.frameCounter != 0) {
440 icon->status1.frameCounter--;
442 icon->status1.removing = 0;
450 switch (
icon->status2.active) {
464 switch (
icon->status2.removingTask) {
468 switch (
icon->status2.removing) {
477 icon->status2.frameCounter = 20;
481 if (
icon->status2.frameCounter != 0) {
482 icon->status2.frameCounter--;
484 icon->status2.removing = 0;
492 switch (
icon->status3.active) {
506 switch (
icon->status3.removingTask) {
510 switch (
icon->status3.removing) {
519 icon->status3.frameCounter = 20;
523 if (
icon->status3.frameCounter != 0) {
524 icon->status3.frameCounter--;
526 icon->status3.removing = 0;
540 switch (
icon->status4.removingTask) {
545 icon->status4.frameCounter = 20;
549 if (
icon->status4.frameCounter != 0) {
550 icon->status4.frameCounter--;
552 icon->status4.removing = 0;
559 if (
icon->boostJump.removing) {
560 if (
icon->boostJump.removing == 1) {
561 s32 index =
icon->prevIndexBoostJump;
565 icon->boostJump.removing = 0;
570 if (
icon->boostHammer.removing) {
571 if (
icon->boostHammer.removing == 1) {
572 s32 index =
icon->prevIndexBoostHammer;
576 icon->boostHammer.removing = 0;
609 if (
icon->flags == 0) {
621 x =
icon->worldPos.x;
622 y =
icon->worldPos.y +
icon->status1OffsetY;
623 z =
icon->worldPos.z;
644 x =
icon->worldPos.x;
645 y =
icon->worldPos.y +
icon->status1OffsetY;
646 z =
icon->worldPos.z;
667 x =
icon->worldPos.x;
668 y =
icon->worldPos.y +
icon->status2OffsetY + offsetY;
669 z =
icon->worldPos.z;
695 x =
icon->worldPos.x;
696 y =
icon->worldPos.y +
icon->status2OffsetY + offsetY;
697 z =
icon->worldPos.z;
720 x =
icon->worldPos.x;
721 y =
icon->worldPos.y +
icon->status3OffsetY + offsetY;
722 z =
icon->worldPos.z;
750 x =
icon->worldPos.x;
751 y =
icon->worldPos.y +
icon->status3OffsetY + offsetY;
752 z =
icon->worldPos.z;
779 x =
icon->worldPos.x;
780 y =
icon->worldPos.y +
icon->status4OffsetY + offsetY;
781 z =
icon->worldPos.z;
812 x =
icon->worldPos.x;
813 y =
icon->worldPos.y +
icon->status4OffsetY + offsetY;
814 z =
icon->worldPos.z;
824 if (
icon->boostJump.active) {
830 x =
icon->worldPos.x;
831 z =
icon->worldPos.z;
841 if (
icon->boostJump.removing) {
844 x =
icon->worldPos.x;
845 z =
icon->worldPos.z;
854 if (
icon->boostHammer.active) {
860 x =
icon->worldPos.x;
861 z =
icon->worldPos.z;
871 if (
icon->boostHammer.removing) {
874 x =
icon->worldPos.x;
875 z =
icon->worldPos.z;
884 if (
icon->boostPartner.active) {
890 x =
icon->worldPos.x;
891 z =
icon->worldPos.z;
902 if (
icon->surprise.active) {
908 x =
icon->worldPos.x;
909 z =
icon->worldPos.z;
920 if (
icon->peril.active) {
926 x =
icon->worldPos.x;
927 z =
icon->worldPos.z;
938 if (
icon->danger.active) {
944 x =
icon->worldPos.x;
945 z =
icon->worldPos.z;
962 if (
icon->flags == 0) {
975 icon->worldPos.x = 0;
976 icon->worldPos.y = 0;
977 icon->worldPos.z = 0;
979 icon->status1Radius = 0;
980 icon->status1OffsetY = 0;
981 icon->status2Radius = 0;
982 icon->status2OffsetY = 0;
983 icon->status3Radius = 0;
984 icon->status3OffsetY = 0;
985 icon->status4Radius = 0;
986 icon->status4OffsetY = 0;
987 icon->status1.active = 0;
988 icon->status1.removing = 0;
989 icon->status1.activeTask = 0;
990 icon->status1.removingTask = 0;
991 icon->status2.active = 0;
992 icon->status2.removing = 0;
993 icon->status2.activeTask = 0;
994 icon->status2.removingTask = 0;
995 icon->status3.active = 0;
996 icon->status3.removing = 0;
997 icon->status3.activeTask = 0;
998 icon->status3.removingTask = 0;
999 icon->status4.active = 0;
1000 icon->status4.removing = 0;
1001 icon->status4.activeTask = 0;
1002 icon->status4.removingTask = 0;
1003 icon->boostJump.active = 0;
1004 icon->boostJump.removing = 0;
1005 icon->boostHammer.active = 0;
1006 icon->boostHammer.removing = 0;
1007 icon->boostPartner.active = 0;
1008 icon->surprise.active = 0;
1009 icon->peril.active = 0;
1010 icon->danger.active = 0;
1035 icon->worldPos.y = y;
1036 icon->worldPos.z = z;
1037 icon->status1Radius = radius + 17;
1038 icon->status1OffsetY = offsetY;
1039 icon->status2Radius = radius + 17;
1040 icon->status2OffsetY = offsetY + 17;
1041 icon->status3Radius = radius + 17;
1042 icon->status3OffsetY = offsetY + 34;
1043 icon->status4Radius = radius + 17;
1044 icon->status4OffsetY = offsetY + 51;
BSS s32 PopupMenu_SelectedIndex
PopupMessageCallback updateFunc
PopupMessageCallback renderUIFunc
PopupMessageCallback renderWorldFunc
#define general_heap_malloc
#define ASSERT(condition)
@ BTL_MSG_STATE_POPUP_DISPOSE
@ BTL_MSG_STATE_POPUP_POST_DELAY
@ BTL_MSG_STATE_POPUP_PRE_DELAY
@ BTL_MSG_STATE_POPUP_DELAY
void get_screen_coords(s32 camID, f32 x, f32 y, f32 z, s32 *screenX, s32 *screenY, s32 *screenZ)
void set_window_update(s32 panelID, s32)
s32 create_worker_scene(void(*updateFunc)(void), void(*renderFunc)(void))
void set_window_properties(s32 panelID, s32 posX, s32 posY, s32 width, s32 height, u8, void *drawContents, void *drawContentsArg, s8 parent)
void add_vec2D_polar(f32 *x, f32 *y, f32 r, f32 theta)
s32 get_msg_lines(s32 messageID)
void hud_element_set_script(s32 id, HudScript *anim)
void hud_element_draw_next(s32 id)
void hud_element_set_render_pos(s32 id, s32 x, s32 y)
s32 hud_element_create(HudScript *anim)
Creates a new HUD element and returns its ID.
HudElement * get_hud_element(s32 id)
void hud_element_set_flags(s32 id, s32 flags)
Turns on the given flags.
void hud_element_clear_flags(s32 id, s32 flags)
Turns off the given flags.
void hud_element_free(s32 id)
@ HUD_ELEMENT_FLAG_DISABLED
@ HUD_ELEMENT_FLAG_ANIMATION_FINISHED
void set_status_icons_offset(s32 iconID, s32 offsetY, s32 offsetX)
void draw_merlee_message(void *popup)
PopupMessage * get_current_merlee_message(void)
HudSimpleStatusIcon boostPartner
void remove_status_icon_surprise(s32 iconID)
HudComplexStatusIcon status2
void remove_status_debuff(s32 iconID)
HudSimpleStatusIcon boostJump
HudElemID removingElementHID
s32 is_merlee_message_done(void)
void draw_merlee_message_string(PopupMessage *popup, s32 posX, s32 posY)
void remove_status_icon_boost_jump(s32 iconID)
void remove_status_icon_boost_partner(s32 iconID)
void update_merlee_message(void *popup)
HudComplexStatusIcon status4
void remove_status_transparent(s32 iconID)
void create_status_transparent(s32 iconID, s32 statusID)
void enable_status_icon_boost_hammer(s32 iconID)
void enable_status_transparent(s32 iconID)
HudSimpleStatusIcon surprise
HudScript HES_WeakenedEnd
const f32 status_icons_rodata_alignment
void enable_status_debuff(s32 iconID)
s32 create_status_icon_set(void)
void create_status_static(s32 iconID, s32 statusID)
void update_all_status_icons(void *popup)
void remove_status_static(s32 iconID)
HudScript HES_WeakenedBegin
@ STATUS_ICON_FLAG_SURPRISE
@ STATUS_ICON_FLAG_STATIC
@ STATUS_ICON_FLAG_STATUS_CHILL_OUT
@ STATUS_ICON_FLAG_BOOST_PARTNER
@ STATUS_ICON_FLAG_DEBUFF
@ STATUS_ICON_FLAG_BATTLE
@ STATUS_ICON_FLAG_BOOST_HAMMER
@ STATUS_ICON_FLAG_TRANSPARENT
@ STATUS_ICON_FLAG_DANGER
@ STATUS_ICON_FLAG_BOOST_JUMP
HudScript HES_TransparentEnd
HudScript HES_ElectrifiedBegin
HudScript HES_PoisonedEnd
HudScript HES_PoisonedBegin
BSS PopupMessage D_800A0BC0[32]
void remove_status_icon_peril(s32 iconID)
void create_status_icon_surprise(s32 iconID)
void enable_status_chill_out(s32 iconID)
void remove_status_chill_out(s32 iconID)
void enable_status_icon_boost_partner(s32 iconID)
void enable_status_icon_boost_jump(s32 iconID)
HudScript HES_BoostHammerBegin
HudScript HES_Item_KeyGift
HudElemID activeElementHID
void create_status_icon_boost_jump(s32 iconID)
void show_merlee_message(s16 messageIndex, s16 duration)
HudScript HES_ParalyzedEnd
void enable_status_static(s32 iconID)
HudScript HES_StoppedBegin
void remove_status_icon_boost_hammer(s32 iconID)
HudScript HES_ShrunkBegin
HudScript HES_BoostPartner
void draw_merlee_messages(void)
void create_status_debuff(s32 iconID, s32 statusID)
HudSimpleStatusIcon danger
void set_status_icons_properties(s32 iconID, f32 x, f32 y, f32 z, s32 arg, s32 arg2, s32 radius, s32 offsetY)
void draw_all_status_icons(void *popup)
HudSimpleStatusIcon peril
HudScript HES_ParalyzedBegin
void create_status_icon_boost_hammer(s32 iconID)
HudScript HES_AsleepBegin
void update_merlee_messages(void)
void enable_status_icon_peril(s32 iconID)
HudScript HES_BoostJumpEnd
HudScript HES_TransparentBegin
void enable_status_icon_surprise(s32 iconID)
BSS HudStatusIcon * D_800A0F44
HudSimpleStatusIcon boostHammer
HudComplexStatusIcon status1
HudScript HES_BoostJumpBegin
void remove_all_status_icons(s32 iconID)
void init_all_status_icons(void)
void create_status_icon_peril(s32 iconID)
HudScript HES_BoostHammerEnd
void create_status_icon_danger(s32 iconID)
void create_status_chill_out(s32 iconID)
void remove_status_icon_danger(s32 iconID)
void enable_status_icon_danger(s32 iconID)
HudComplexStatusIcon status3
HudScript HES_FrozenBegin
void dispose_merlee_message(PopupMessage *popup)
HudScript HES_WeakenedLoop
void create_status_icon_boost_partner(s32 iconID)
HudScript HES_ElectrifiedEnd
GameStatus * gGameStatusPtr