Paper Mario DX
Paper Mario (N64) modding
 
Loading...
Searching...
No Matches
status_icons.c File Reference

Go to the source code of this file.

Data Structures

struct  HudComplexStatusIcon
 
struct  HudSimpleStatusIcon
 
struct  HudStatusIcon
 

Macros

#define MAX_ICONS   (64)
 

Enumerations

enum  StatusIconFlag {
  STATUS_ICON_FLAG_USED = 0x001 , STATUS_ICON_FLAG_BATTLE = 0x002 , STATUS_ICON_FLAG_DEBUFF = 0x004 , STATUS_ICON_FLAG_STATIC = 0x008 ,
  STATUS_ICON_FLAG_TRANSPARENT = 0x010 , STATUS_ICON_FLAG_STATUS_CHILL_OUT = 0x020 , STATUS_ICON_FLAG_BOOST_JUMP = 0x040 , STATUS_ICON_FLAG_BOOST_HAMMER = 0x080 ,
  STATUS_ICON_FLAG_BOOST_PARTNER = 0x100 , STATUS_ICON_FLAG_SURPRISE = 0x200 , STATUS_ICON_FLAG_PERIL = 0x400 , STATUS_ICON_FLAG_DANGER = 0x800
}
 
enum  StatusIconTask { STATUS_ICON_TASK_NONE = 0 , STATUS_ICON_TASK_LOAD = 1 , STATUS_ICON_TASK_DRAW = 2 }
 

Functions

void update_merlee_message (void *popup)
 
void draw_merlee_message (void *popup)
 
void func_80045BC8 (void)
 
void init_all_status_icons (void)
 
void update_all_status_icons (void *popup)
 
void draw_all_status_icons (void *popup)
 
void func_80045AC0 (void)
 
void func_80045B10 (void)
 
void update_merlee_messages (void)
 
void draw_merlee_messages (void)
 
PopupMessageget_current_merlee_message (void)
 
void dispose_merlee_message (PopupMessage *popup)
 
void show_merlee_message (s16 messageIndex, s16 duration)
 
void draw_merlee_message_string (PopupMessage *popup, s32 posX, s32 posY)
 
s32 is_merlee_message_done (void)
 
s32 create_status_icon_set (void)
 
void remove_all_status_icons (s32 iconID)
 
void set_status_icons_properties (s32 iconID, f32 x, f32 y, f32 z, s32 arg, s32 arg2, s32 radius, s32 offsetY)
 
void set_status_icons_offset (s32 iconID, s32 offsetY, s32 offsetX)
 
void create_status_debuff (s32 iconID, s32 statusID)
 
void remove_status_debuff (s32 iconID)
 
void enable_status_debuff (s32 iconID)
 
void create_status_static (s32 iconID, s32 statusID)
 
void remove_status_static (s32 iconID)
 
void enable_status_static (s32 iconID)
 
void create_status_transparent (s32 iconID, s32 statusID)
 
void remove_status_transparent (s32 iconID)
 
void enable_status_transparent (s32 iconID)
 
void create_status_chill_out (s32 iconID)
 
void remove_status_chill_out (s32 iconID)
 
void enable_status_chill_out (s32 iconID)
 
void create_status_icon_boost_jump (s32 iconID)
 
void remove_status_icon_boost_jump (s32 iconID)
 
void enable_status_icon_boost_jump (s32 iconID)
 
void create_status_icon_boost_hammer (s32 iconID)
 
void remove_status_icon_boost_hammer (s32 iconID)
 
void enable_status_icon_boost_hammer (s32 iconID)
 
void create_status_icon_boost_partner (s32 iconID)
 
void remove_status_icon_boost_partner (s32 iconID)
 
void enable_status_icon_boost_partner (s32 iconID)
 
void create_status_icon_surprise (s32 iconID)
 
void remove_status_icon_surprise (s32 iconID)
 
void enable_status_icon_surprise (s32 iconID)
 
void create_status_icon_peril (s32 iconID)
 
void remove_status_icon_peril (s32 iconID)
 
void enable_status_icon_peril (s32 iconID)
 
void create_status_icon_danger (s32 iconID)
 
void remove_status_icon_danger (s32 iconID)
 
void enable_status_icon_danger (s32 iconID)
 

Variables

s16 D_80078160 [] = { 28, 40 }
 
s16 D_80078164 [] = { 0, -2 }
 
s32 D_80078168 []
 
BSS PopupMessage D_800A0BC0 [32]
 
BSS s32 D_800A0F40
 
BSS HudStatusIconD_800A0F44
 
HudScript HES_Item_KeyGift
 
HudScript HES_AsleepBegin
 
HudScript HES_AsleepEnd
 
HudScript HES_ElectrifiedBegin
 
HudScript HES_ElectrifiedEnd
 
HudScript HES_ParalyzedBegin
 
HudScript HES_ParalyzedEnd
 
HudScript HES_DizzyEnd
 
HudScript HES_PoisonedBegin
 
HudScript HES_PoisonedEnd
 
HudScript HES_DizzyBegin
 
HudScript HES_FrozenBegin
 
HudScript HES_FrozenEnd
 
HudScript HES_WeakenedLoop
 
HudScript HES_WeakenedBegin
 
HudScript HES_WeakenedEnd
 
HudScript HES_StoppedBegin
 
HudScript HES_StoppedEnd
 
HudScript HES_ShrunkBegin
 
HudScript HES_ShrunkEnd
 
HudScript HES_TransparentBegin
 
HudScript HES_TransparentEnd
 
HudScript HES_BoostJumpBegin
 
HudScript HES_BoostJumpEnd
 
HudScript HES_BoostHammerBegin
 
HudScript HES_BoostHammerEnd
 
HudScript HES_BoostPartner
 
HudScript HES_Surprise
 
HudScript HES_Peril
 
HudScript HES_Danger
 
const f32 status_icons_rodata_alignment = 0.0f
 

Data Structure Documentation

◆ HudComplexStatusIcon

struct HudComplexStatusIcon
Data Fields
s8 active
s8 removing
s8 activeTask
s8 removingTask
s8 unk_04
s8 frameCounter
HudElemID activeElementHID
HudElemID removingElementHID

◆ HudSimpleStatusIcon

struct HudSimpleStatusIcon
Data Fields
s8 active
s8 removing
s32 activeElementID

◆ HudStatusIcon

struct HudStatusIcon
Data Fields
s32 flags
Vec3f worldPos
s32 status1Radius
s32 status1OffsetY
s32 status2Radius
s32 status2OffsetY
s32 status3Radius
s32 status3OffsetY
s32 status4Radius
s32 status4OffsetY
s32 offsetY
s32 offsetX
HudComplexStatusIcon status1
HudComplexStatusIcon status2
HudComplexStatusIcon status3
HudComplexStatusIcon status4
HudSimpleStatusIcon boostJump
s32 prevIndexBoostJump
HudSimpleStatusIcon boostHammer
s32 prevIndexBoostHammer
HudSimpleStatusIcon boostPartner
HudSimpleStatusIcon surprise
HudSimpleStatusIcon peril
HudSimpleStatusIcon danger

Macro Definition Documentation

◆ MAX_ICONS

#define MAX_ICONS   (64)

Enumeration Type Documentation

◆ StatusIconFlag

Enumerator
STATUS_ICON_FLAG_USED 
STATUS_ICON_FLAG_BATTLE 
STATUS_ICON_FLAG_DEBUFF 
STATUS_ICON_FLAG_STATIC 
STATUS_ICON_FLAG_TRANSPARENT 
STATUS_ICON_FLAG_STATUS_CHILL_OUT 
STATUS_ICON_FLAG_BOOST_JUMP 
STATUS_ICON_FLAG_BOOST_HAMMER 
STATUS_ICON_FLAG_BOOST_PARTNER 
STATUS_ICON_FLAG_SURPRISE 
STATUS_ICON_FLAG_PERIL 
STATUS_ICON_FLAG_DANGER 

Definition at line 8 of file status_icons.c.

8 {
21};
@ 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_USED
Definition status_icons.c:9
@ STATUS_ICON_FLAG_BOOST_HAMMER
@ STATUS_ICON_FLAG_TRANSPARENT
@ STATUS_ICON_FLAG_DANGER
@ STATUS_ICON_FLAG_BOOST_JUMP
@ STATUS_ICON_FLAG_PERIL

◆ StatusIconTask

Enumerator
STATUS_ICON_TASK_NONE 
STATUS_ICON_TASK_LOAD 
STATUS_ICON_TASK_DRAW 

Definition at line 23 of file status_icons.c.

23 {
27};
@ STATUS_ICON_TASK_DRAW
@ STATUS_ICON_TASK_LOAD
@ STATUS_ICON_TASK_NONE

Function Documentation

◆ update_merlee_message()

void update_merlee_message ( void * popup)

Definition at line 221 of file status_icons.c.

221 {
222 PopupMessage* popup = data;
223 s32 closeMessage = FALSE;
224
225 switch (popup->showMsgState) {
228 break;
230 popup->showMsgState = BTL_MSG_STATE_POPUP_DELAY;
231 break;
234 popup->duration = 0;
235 }
236 if (popup->duration != 0) {
237 popup->duration--;
238 } else {
240 }
241 break;
243 popup->showMsgState = BTL_MSG_STATE_POPUP_DISPOSE;
244 break;
247 break;
248 }
249
250 if (closeMessage) {
252 D_800A0F40 = 0;
254 }
255}
BSS s32 PopupMenu_SelectedIndex
u32 pressedButtons[4]
@ BTL_MSG_STATE_POPUP_DISPOSE
Definition enums.h:4154
@ BTL_MSG_STATE_POPUP_POST_DELAY
Definition enums.h:4153
@ BTL_MSG_STATE_INIT
Definition enums.h:4149
@ BTL_MSG_STATE_POPUP_PRE_DELAY
Definition enums.h:4151
@ BTL_MSG_STATE_POPUP_DELAY
Definition enums.h:4152
@ BUTTON_A
Definition enums.h:2790
@ BUTTON_B
Definition enums.h:2789
@ WINDOW_UPDATE_HIDE
Definition enums.h:5311
@ WIN_BTL_POPUP
Definition enums.h:5249
void set_window_update(s32 panelID, s32)
Definition windows.c:434
BSS s32 D_800A0F40
void dispose_merlee_message(PopupMessage *popup)
GameStatus * gGameStatusPtr
Definition main_loop.c:32

Referenced by show_merlee_message().

◆ draw_merlee_message()

void draw_merlee_message ( void * popup)

Definition at line 281 of file status_icons.c.

281 {
282#if VERSION_JP
283 PopupMessage* popup = data;
284 s32 width;
285 s32 height;
286 s32 messageID;
287 s32 xPos;
288
289 switch (popup->messageIndex) {
290 case 0:
291 if (popup->needsInit) {
293 messageID = D_80078168[popup->messageIndex];
294 width = get_msg_width(messageID, 0) + 23;
295 xPos = 160 - (width / 2);
296 height = 45;
299 }
300 break;
301
302 case 1:
303 if (popup->needsInit) {
304 popup->needsInit = FALSE;
305 messageID = D_80078168[popup->messageIndex];
306 width = get_msg_width(messageID, 0) + 23;
307 xPos = 160 - (width / 2);
308 height = 28;
311 }
312 break;
313 }
314#else
315 PopupMessage* popup = data;
316 s32 messageID;
317 s32 xPos;
318 s32 width;
319
320 if (popup->needsInit) {
322 messageID = D_80078168[popup->messageIndex];
323 width = get_msg_width(messageID, 0) + 30;
324 xPos = 160 - (width / 2);
327 }
328#endif
329}
#define get_msg_width
@ WINDOW_PRIORITY_0
Definition enums.h:3182
@ WINDOW_UPDATE_SHOW
Definition enums.h:5310
void set_window_properties(s32 panelID, s32 posX, s32 posY, s32 width, s32 height, u8, void *drawContents, void *drawContentsArg, s8 parent)
Definition windows.c:373
s32 get_msg_lines(s32 messageID)
Definition msg.c:1979
s32 D_80078168[]
void draw_merlee_message_string(PopupMessage *popup, s32 posX, s32 posY)
s16 D_80078160[]

Referenced by show_merlee_message().

◆ func_80045BC8()

void func_80045BC8 ( void )

Definition at line 161 of file status_icons.c.

161 {
162 s32 i;
163
164 for (i = 0; i < ARRAY_COUNT(D_800A0BC0); i++) {
166 if (popup->active && popup->renderWorldFunc != NULL) {
168 }
169 }
170}
PopupMessageCallback renderWorldFunc
#define ARRAY_COUNT(arr)
Definition macros.h:40
BSS PopupMessage D_800A0BC0[32]

Referenced by func_80045AC0().

◆ init_all_status_icons()

void init_all_status_icons ( void )

Definition at line 335 of file status_icons.c.

335 {
336 int i;
337 HudStatusIcon* icons;
339
340 if (popup != NULL) {
341 popup->updateFunc = update_all_status_icons;
342 popup->unk_00 = 0;
343 popup->renderWorldFunc = NULL;
344 popup->renderUIFunc = draw_all_status_icons;
345 popup->data.icons = general_heap_malloc(MAX_ICONS * sizeof(HudStatusIcon));
346 icons = D_800A0F44 = popup->data.icons;
347 ASSERT(icons != NULL);
348
349 for (i = 0; i < MAX_ICONS; i++, icons++)
350 icons->flags = 0;
351 }
352}
#define general_heap_malloc
#define ASSERT(condition)
PopupMessage * get_current_merlee_message(void)
#define MAX_ICONS
Definition status_icons.c:6
void update_all_status_icons(void *popup)
void draw_all_status_icons(void *popup)
BSS HudStatusIcon * D_800A0F44

Referenced by func_80045AC0().

◆ update_all_status_icons()

void update_all_status_icons ( void * popup)

Definition at line 354 of file status_icons.c.

354 {
355 PopupMessage* popup = data;
357 s32 elementID;
358 s32 i;
359
360 for (i = 0, icon = D_800A0F44; i < MAX_ICONS; i++, icon++) {
361 if (icon->flags == 0) {
362 continue;
363 }
364
365 if (icon->status1.activeTask == STATUS_ICON_TASK_LOAD) {
366 switch (icon->status1.active) {
367 case STATUS_KEY_SLEEP:
369 break;
371 elementID = icon->status1.activeElementHID = hud_element_create(&HES_ParalyzedBegin);
372 break;
373 case STATUS_KEY_DIZZY:
374 elementID = icon->status1.activeElementHID = hud_element_create(&HES_DizzyBegin);
375 break;
376 case STATUS_KEY_FEAR:
377 elementID = icon->status1.activeElementHID = hud_element_create(&HES_WeakenedLoop);
378 break;
379 case STATUS_KEY_STOP:
380 elementID = icon->status1.activeElementHID = hud_element_create(&HES_StoppedBegin);
381 break;
383 elementID = icon->status1.activeElementHID = hud_element_create(&HES_PoisonedBegin);
384 break;
386 elementID = icon->status1.activeElementHID = hud_element_create(&HES_ShrunkBegin);
387 break;
389 elementID = icon->status1.activeElementHID = hud_element_create(&HES_FrozenBegin);
390 break;
391 default:
392 elementID = icon->status1.activeElementHID = hud_element_create(&HES_Item_KeyGift);
393 break;
394 }
397 icon->status1.activeTask = STATUS_ICON_TASK_DRAW;
398 }
399
400 switch (icon->status1.removingTask) {
402 break;
404 switch (icon->status1.removing) {
405 case STATUS_KEY_SLEEP:
406 hud_element_set_script(icon->status1.removingElementHID, &HES_AsleepEnd);
407 break;
409 hud_element_set_script(icon->status1.removingElementHID, &HES_ParalyzedEnd);
410 break;
411 case STATUS_KEY_DIZZY:
412 hud_element_set_script(icon->status1.removingElementHID, &HES_DizzyEnd);
413 break;
414 case STATUS_KEY_FEAR:
415 hud_element_set_script(icon->status1.removingElementHID, &HES_WeakenedLoop);
416 break;
417 case STATUS_KEY_STOP:
418 hud_element_set_script(icon->status1.removingElementHID, &HES_StoppedEnd);
419 break;
421 hud_element_set_script(icon->status1.removingElementHID, &HES_PoisonedEnd);
422 break;
424 hud_element_set_script(icon->status1.removingElementHID, &HES_ShrunkEnd);
425 break;
427 hud_element_set_script(icon->status1.removingElementHID, &HES_FrozenEnd);
428 break;
429 default:
430 hud_element_set_script(icon->status1.removingElementHID, &HES_Item_KeyGift);
431 break;
432 }
433
434 icon->status1.frameCounter = 10;
435 icon->status1.removingTask = STATUS_ICON_TASK_DRAW;
436 break;
437
439 if (icon->status1.frameCounter != 0) {
440 icon->status1.frameCounter--;
441 } else {
442 icon->status1.removing = 0;
443 hud_element_free(icon->status1.removingElementHID);
444 icon->status1.removingTask = STATUS_ICON_TASK_NONE;
445 }
446 break;
447 }
448
449 if (icon->status2.activeTask == STATUS_ICON_TASK_LOAD) {
450 switch (icon->status2.active) {
452 elementID = icon->status2.activeElementHID = hud_element_create(&HES_ElectrifiedBegin);
453 break;
454 default:
455 elementID = icon->status2.activeElementHID = hud_element_create(&HES_Item_KeyGift);
456 break;
457 }
458
461 icon->status2.activeTask = STATUS_ICON_TASK_DRAW;
462 }
463
464 switch (icon->status2.removingTask) {
466 break;
468 switch (icon->status2.removing) {
470 hud_element_set_script(icon->status2.removingElementHID, &HES_ElectrifiedEnd);
471 break;
472 default:
473 hud_element_set_script(icon->status2.removingElementHID, &HES_Item_KeyGift);
474 break;
475 }
476
477 icon->status2.frameCounter = 20;
478 icon->status2.removingTask = STATUS_ICON_TASK_DRAW;
479 break;
481 if (icon->status2.frameCounter != 0) {
482 icon->status2.frameCounter--;
483 } else {
484 icon->status2.removing = 0;
485 hud_element_free(icon->status2.removingElementHID);
486 icon->status2.removingTask = STATUS_ICON_TASK_NONE;
487 }
488 break;
489 }
490
491 if (icon->status3.activeTask == STATUS_ICON_TASK_LOAD) {
492 switch (icon->status3.active) {
494 elementID = icon->status3.activeElementHID = hud_element_create(&HES_TransparentBegin);
495 break;
496 default:
497 elementID = icon->status3.activeElementHID = hud_element_create(&HES_Item_KeyGift);
498 break;
499 }
500
503 icon->status3.activeTask = STATUS_ICON_TASK_DRAW;
504 }
505
506 switch (icon->status3.removingTask) {
508 break;
510 switch (icon->status3.removing) {
512 hud_element_set_script(icon->status3.removingElementHID, &HES_TransparentEnd);
513 break;
514 default:
515 hud_element_set_script(icon->status3.removingElementHID, &HES_Item_KeyGift);
516 break;
517 }
518
519 icon->status3.frameCounter = 20;
520 icon->status3.removingTask = STATUS_ICON_TASK_DRAW;
521 break;
523 if (icon->status3.frameCounter != 0) {
524 icon->status3.frameCounter--;
525 } else {
526 icon->status3.removing = 0;
527 hud_element_free(icon->status3.removingElementHID);
528 icon->status3.removingTask = STATUS_ICON_TASK_NONE;
529 }
530 break;
531 }
532
533 if (icon->status4.activeTask == STATUS_ICON_TASK_LOAD) {
534 elementID = icon->status4.activeElementHID = hud_element_create(&HES_WeakenedBegin);
537 icon->status4.activeTask = STATUS_ICON_TASK_DRAW;
538 }
539
540 switch (icon->status4.removingTask) {
542 break;
544 hud_element_set_script(icon->status4.removingElementHID, &HES_WeakenedEnd);
545 icon->status4.frameCounter = 20;
546 icon->status4.removingTask = STATUS_ICON_TASK_DRAW;
547 break;
549 if (icon->status4.frameCounter != 0) {
550 icon->status4.frameCounter--;
551 } else {
552 icon->status4.removing = 0;
553 hud_element_free(icon->status4.removingElementHID);
554 icon->status4.removingTask = STATUS_ICON_TASK_NONE;
555 }
556 break;
557 }
558
559 if (icon->boostJump.removing) {
560 if (icon->boostJump.removing == 1) {
561 s32 index = icon->prevIndexBoostJump;
562
564 hud_element_free(index);
565 icon->boostJump.removing = 0;
566 }
567 }
568 }
569
570 if (icon->boostHammer.removing) {
571 if (icon->boostHammer.removing == 1) {
572 s32 index = icon->prevIndexBoostHammer;
573
575 hud_element_free(index);
576 icon->boostHammer.removing = 0;
577 }
578 }
579 }
580 }
581}
s8 flags
Definition demo_api.c:15
@ STATUS_KEY_PARALYZE
Definition enums.h:2201
@ STATUS_KEY_FROZEN
Definition enums.h:2203
@ STATUS_KEY_TRANSPARENT
Definition enums.h:2210
@ STATUS_KEY_STATIC
Definition enums.h:2207
@ STATUS_KEY_FEAR
Definition enums.h:2199
@ STATUS_KEY_SLEEP
Definition enums.h:2202
@ STATUS_KEY_STOP
Definition enums.h:2204
@ STATUS_KEY_SHRINK
Definition enums.h:2206
@ STATUS_KEY_DIZZY
Definition enums.h:2200
@ STATUS_KEY_POISON
Definition enums.h:2205
void hud_element_set_script(s32 id, HudScript *anim)
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_free(s32 id)
@ HUD_ELEMENT_FLAG_DISABLED
Definition hud_element.h:72
@ HUD_ELEMENT_FLAG_80
Definition hud_element.h:78
@ HUD_ELEMENT_FLAG_ANIMATION_FINISHED
Definition hud_element.h:73
HudScript HES_WeakenedEnd
HudScript HES_StoppedEnd
HudScript HES_DizzyBegin
HudScript HES_WeakenedBegin
HudScript HES_TransparentEnd
HudScript HES_ElectrifiedBegin
HudScript HES_PoisonedEnd
HudScript HES_PoisonedBegin
HudScript HES_DizzyEnd
HudScript HES_AsleepEnd
HudScript HES_Item_KeyGift
HudElemID activeElementHID
HudScript HES_ParalyzedEnd
HudScript HES_StoppedBegin
HudScript HES_ShrunkEnd
HudScript HES_ShrunkBegin
HudScript HES_ParalyzedBegin
HudScript HES_AsleepBegin
HudScript HES_TransparentBegin
HudScript HES_FrozenEnd
HudComplexStatusIcon status1
HudScript HES_FrozenBegin
HudScript HES_WeakenedLoop
HudScript HES_ElectrifiedEnd

Referenced by init_all_status_icons().

◆ draw_all_status_icons()

void draw_all_status_icons ( void * popup)

Definition at line 583 of file status_icons.c.

583 {
584 PopupMessage* popup = data;
586 s32 elementId;
587 f32 x, y, z;
588 s32 screenX, screenY, screenZ;
590 s32 offsetY;
592 int i;
593
607
608 for (i = 0, icon = D_800A0F44; i < MAX_ICONS; i++, icon++) {
609 if (icon->flags == 0) {
610 continue;
611 }
612
613 iconCounter = 0;
614 isActiveDrawn = 0;
615 if (icon->status1.activeTask == STATUS_ICON_TASK_DRAW) {
616 if (icon->flags & STATUS_ICON_FLAG_DEBUFF) {
617 hud_element_set_flags(icon->status1.activeElementHID, HUD_ELEMENT_FLAG_DISABLED);
619 hud_element_clear_flags(icon->status1.activeElementHID, HUD_ELEMENT_FLAG_DISABLED);
620
621 x = icon->worldPos.x;
622 y = icon->worldPos.y + icon->status1OffsetY;
623 z = icon->worldPos.z;
624
625 add_vec2D_polar(&x, &z, icon->status1Radius, clamp_angle(camera->curYaw + 90));
627 elementId = icon->status1.activeElementHID;
630 iconCounter = 1;
631 isActiveDrawn = 1;
632 }
633 }
634
635 if (icon->status1.removingTask == STATUS_ICON_TASK_DRAW
637 ) {
638 hud_element_clear_flags(icon->status1.removingElementHID, HUD_ELEMENT_FLAG_DISABLED);
639
640 if (isActiveDrawn == 0) {
641 iconCounter++;
642 }
643
644 x = icon->worldPos.x;
645 y = icon->worldPos.y + icon->status1OffsetY;
646 z = icon->worldPos.z;
647
648 add_vec2D_polar(&x, &z, icon->status1Radius, clamp_angle(camera->curYaw + 90));
650 elementId = icon->status1.removingElementHID;
653 }
654
655 isActiveDrawn = 0;
656 if (icon->status2.activeTask == STATUS_ICON_TASK_DRAW) {
657 if (icon->flags & STATUS_ICON_FLAG_STATIC) {
658 hud_element_set_flags(icon->status2.activeElementHID, HUD_ELEMENT_FLAG_DISABLED);
660 hud_element_clear_flags(icon->status2.activeElementHID, HUD_ELEMENT_FLAG_DISABLED);
661
662 offsetY = 0;
663 if (iconCounter == 0) {
664 offsetY = -17;
665 }
666
667 x = icon->worldPos.x;
668 y = icon->worldPos.y + icon->status2OffsetY + offsetY;
669 z = icon->worldPos.z;
670
671 add_vec2D_polar(&x, &z, icon->status2Radius, clamp_angle(camera->curYaw + 90));
673 elementId = icon->status2.activeElementHID;
676
677 iconCounter++;
678 isActiveDrawn = 1;
679 }
680 }
681
682 if (icon->status2.removingTask == STATUS_ICON_TASK_DRAW
684 ) {
685 hud_element_clear_flags(icon->status2.removingElementHID, HUD_ELEMENT_FLAG_DISABLED);
686
687 offsetY = 0;
688 if (iconCounter == 0) {
689 offsetY = -17;
690 }
691 if (isActiveDrawn == 0) {
692 iconCounter++;
693 }
694
695 x = icon->worldPos.x;
696 y = icon->worldPos.y + icon->status2OffsetY + offsetY;
697 z = icon->worldPos.z;
698
699 add_vec2D_polar(&x, &z, icon->status2Radius, clamp_angle(camera->curYaw + 90));
701 elementId = icon->status2.removingElementHID;
704 }
705
706 isActiveDrawn = 0;
707 if (icon->status3.activeTask == STATUS_ICON_TASK_DRAW) {
708 if (icon->flags & STATUS_ICON_FLAG_TRANSPARENT) {
709 hud_element_set_flags(icon->status3.activeElementHID, HUD_ELEMENT_FLAG_DISABLED);
711 hud_element_clear_flags(icon->status3.activeElementHID, HUD_ELEMENT_FLAG_DISABLED);
712
713 offsetY = 0;
714 if (iconCounter == 1) {
715 offsetY = -17;
716 } if (iconCounter == 0) {
717 offsetY = -34;
718 }
719
720 x = icon->worldPos.x;
721 y = icon->worldPos.y + icon->status3OffsetY + offsetY;
722 z = icon->worldPos.z;
723
724 add_vec2D_polar(&x, &z, icon->status3Radius, clamp_angle(camera->curYaw + 90));
726 elementId = icon->status3.activeElementHID;
729 iconCounter++;
730 isActiveDrawn = 1;
731 }
732 }
733
734 if (icon->status3.removingTask == STATUS_ICON_TASK_DRAW
736 ) {
737 hud_element_clear_flags(icon->status3.removingElementHID, HUD_ELEMENT_FLAG_DISABLED);
738
739 offsetY = 0;
740 if (iconCounter == 1) {
741 offsetY = -17;
742 }
743 if (iconCounter == 0) {
744 offsetY = -34;
745 }
746 if (isActiveDrawn == 0) {
747 iconCounter++;
748 }
749
750 x = icon->worldPos.x;
751 y = icon->worldPos.y + icon->status3OffsetY + offsetY;
752 z = icon->worldPos.z;
753
754 add_vec2D_polar(&x, &z, icon->status3Radius, clamp_angle(camera->curYaw + 90));
756 elementId = icon->status3.removingElementHID;
759 }
760
761 isActiveDrawn = 0;
762 if (icon->status4.activeTask == STATUS_ICON_TASK_DRAW) {
764 hud_element_set_flags(icon->status4.activeElementHID, HUD_ELEMENT_FLAG_DISABLED);
766 hud_element_clear_flags(icon->status4.activeElementHID, HUD_ELEMENT_FLAG_DISABLED);
767
768 offsetY = 0;
769 if (iconCounter == 2) {
770 offsetY = -17;
771 }
772 if (iconCounter == 1) {
773 offsetY = -34;
774 }
775 if (iconCounter == 0) {
776 offsetY = -51;
777 }
778
779 x = icon->worldPos.x;
780 y = icon->worldPos.y + icon->status4OffsetY + offsetY;
781 z = icon->worldPos.z;
782
783 add_vec2D_polar(&x, &z, icon->status4Radius, clamp_angle(camera->curYaw + 90));
785 elementId = icon->status4.activeElementHID;
788 iconCounter++;
789 isActiveDrawn = 1;
790 }
791 }
792
793 if (icon->status4.removingTask == STATUS_ICON_TASK_DRAW
795 ) {
796 hud_element_clear_flags(icon->status4.removingElementHID, HUD_ELEMENT_FLAG_DISABLED);
797
798 offsetY = 0;
799 if (iconCounter == 2) {
800 offsetY = -17;
801 }
802 if (iconCounter == 1) {
803 offsetY = -34;
804 }
805 if (iconCounter == 0) {
806 offsetY = -51;
807 }
808 if (isActiveDrawn == 0) {
809 iconCounter++;
810 }
811
812 x = icon->worldPos.x;
813 y = icon->worldPos.y + icon->status4OffsetY + offsetY;
814 z = icon->worldPos.z;
815
816 add_vec2D_polar(&x, &z, icon->status4Radius, clamp_angle(camera->curYaw + 90));
818 elementId = icon->status4.removingElementHID;
821 }
822
823 do {
824 if (icon->boostJump.active) {
825 if (icon->flags & STATUS_ICON_FLAG_BOOST_JUMP) {
826 hud_element_set_flags(icon->boostJump.activeElementID, HUD_ELEMENT_FLAG_DISABLED);
828 hud_element_clear_flags(icon->boostJump.activeElementID, HUD_ELEMENT_FLAG_DISABLED);
829
830 x = icon->worldPos.x;
831 z = icon->worldPos.z;
832
833 get_screen_coords(gCurrentCameraID, x, icon->worldPos.y + icon->offsetY, z, &screenX, &screenY, &screenZ);
834 elementId = icon->boostJump.activeElementID;
837 }
838 }
839 } while (0);
840
841 if (icon->boostJump.removing) {
843
844 x = icon->worldPos.x;
845 z = icon->worldPos.z;
846
847 get_screen_coords(gCurrentCameraID, x, icon->worldPos.y + icon->offsetY, z, &screenX, &screenY, &screenZ);
848 elementId = icon->prevIndexBoostJump;
851 }
852
853 do {
854 if (icon->boostHammer.active) {
855 if (icon->flags & STATUS_ICON_FLAG_BOOST_HAMMER) {
856 hud_element_set_flags(icon->boostHammer.activeElementID, HUD_ELEMENT_FLAG_DISABLED);
858 hud_element_clear_flags(icon->boostHammer.activeElementID, HUD_ELEMENT_FLAG_DISABLED);
859
860 x = icon->worldPos.x;
861 z = icon->worldPos.z;
862
863 get_screen_coords(gCurrentCameraID, x, icon->worldPos.y + icon->offsetY, z, &screenX, &screenY, &screenZ);
864 elementId = icon->boostHammer.activeElementID;
867 }
868 }
869 } while (0);
870
871 if (icon->boostHammer.removing) {
873
874 x = icon->worldPos.x;
875 z = icon->worldPos.z;
876
877 get_screen_coords(gCurrentCameraID, x, icon->worldPos.y + icon->offsetY, z, &screenX, &screenY, &screenZ);
878 elementId = icon->prevIndexBoostHammer;
881 }
882
883 do {
884 if (icon->boostPartner.active) {
886 hud_element_set_flags(icon->boostPartner.activeElementID, HUD_ELEMENT_FLAG_DISABLED);
888 hud_element_clear_flags(icon->boostPartner.activeElementID, HUD_ELEMENT_FLAG_DISABLED);
889
890 x = icon->worldPos.x;
891 z = icon->worldPos.z;
892
893 get_screen_coords(gCurrentCameraID, x, icon->worldPos.y + icon->offsetY, z, &screenX, &screenY, &screenZ);
894 elementId = icon->boostPartner.activeElementID;
897 }
898 }
899 } while (0);
900
901 do {
902 if (icon->surprise.active) {
903 if (icon->flags & STATUS_ICON_FLAG_SURPRISE) {
904 hud_element_set_flags(icon->surprise.activeElementID, HUD_ELEMENT_FLAG_DISABLED);
906 hud_element_clear_flags(icon->surprise.activeElementID, HUD_ELEMENT_FLAG_DISABLED);
907
908 x = icon->worldPos.x;
909 z = icon->worldPos.z;
910
911 get_screen_coords(gCurrentCameraID, x, icon->worldPos.y + icon->offsetY, z, &screenX, &screenY, &screenZ);
912 elementId = icon->surprise.activeElementID;
915 }
916 }
917 } while (0);
918
919 do {
920 if (icon->peril.active) {
921 if (icon->flags & STATUS_ICON_FLAG_PERIL) {
925
926 x = icon->worldPos.x;
927 z = icon->worldPos.z;
928
929 get_screen_coords(gCurrentCameraID, x, icon->worldPos.y + icon->offsetY, z, &screenX, &screenY, &screenZ);
930 elementId = icon->peril.activeElementID;
933 }
934 }
935 } while (0);
936
937 do {
938 if (icon->danger.active) {
939 if (icon->flags & STATUS_ICON_FLAG_DANGER) {
940 hud_element_set_flags(icon->danger.activeElementID, HUD_ELEMENT_FLAG_DISABLED);
943
944 x = icon->worldPos.x;
945 z = icon->worldPos.z;
946
947 get_screen_coords(gCurrentCameraID, x, icon->worldPos.y + icon->offsetY, z, &screenX, &screenY, &screenZ);
948 elementId = icon->danger.activeElementID;
951 }
952 }
953 } while (0);
954 }
955}
#define clamp_angle
@ CONTEXT_BATTLE
Definition enums.h:3529
void get_screen_coords(s32 camID, f32 x, f32 y, f32 z, s32 *screenX, s32 *screenY, s32 *screenZ)
Definition cam_main.c:410
void add_vec2D_polar(f32 *x, f32 *y, f32 r, f32 theta)
Definition 43F0.c:684
void hud_element_draw_next(s32 id)
void hud_element_set_render_pos(s32 id, s32 x, s32 y)
void hud_element_clear_flags(s32 id, s32 flags)
Turns off the given flags.
#define SCREEN_WIDTH
Definition macros.h:109
#define SCREEN_HEIGHT
Definition macros.h:110
Camera gCameras[4]
Definition cam_main.c:17
Gfx * gMainGfxPos
Definition cam_main.c:15
s32 gCurrentCameraID
Definition cam_math.c:4

Referenced by init_all_status_icons().

◆ func_80045AC0()

void func_80045AC0 ( void )

Definition at line 125 of file status_icons.c.

125 {
126 s32 i;
127
128 for (i = 0; i < ARRAY_COUNT(D_800A0BC0); i++) {
130 popup->active = FALSE;
131 popup->data.icons = NULL;
132 }
133
136}
s32 create_worker_scene(void(*updateFunc)(void), void(*renderFunc)(void))
Definition worker.c:32
void func_80045BC8(void)
void init_all_status_icons(void)

Referenced by clear_encounter_status(), and init_encounter_status().

◆ func_80045B10()

void func_80045B10 ( void )

Definition at line 138 of file status_icons.c.

138 {
139 s32 i;
140
141 for (i = 0; i < ARRAY_COUNT(D_800A0BC0); i++) {
143 if (popup->data.icons != NULL) {
144 heap_free(popup->data.icons);
145 }
146 popup->active = FALSE;
147 }
148}
s32 heap_free(void *ptr)
Definition heap.c:42

◆ update_merlee_messages()

void update_merlee_messages ( void )

Definition at line 150 of file status_icons.c.

150 {
151 s32 i;
152
153 for (i = 0; i < ARRAY_COUNT(D_800A0BC0); i++) {
155 if (popup->active && popup->updateFunc != NULL) {
157 }
158 }
159}
PopupMessageCallback updateFunc

Referenced by update_encounters().

◆ draw_merlee_messages()

void draw_merlee_messages ( void )

Definition at line 172 of file status_icons.c.

172 {
173 s32 i;
174
175 for (i = 0; i < ARRAY_COUNT(D_800A0BC0); i++) {
177 if (popup->active && popup->renderUIFunc != NULL) {
179 }
180 }
181}
PopupMessageCallback renderUIFunc

Referenced by draw_encounter_ui().

◆ get_current_merlee_message()

PopupMessage * get_current_merlee_message ( void )

Definition at line 183 of file status_icons.c.

183 {
184 s32 i;
185
186 for (i = 0; i < ARRAY_COUNT(D_800A0BC0); i++) {
188 if (!popup->active) {
189 popup->active = TRUE;
190 return popup;
191 }
192 }
193
194 return NULL;
195}

Referenced by init_all_status_icons(), and show_merlee_message().

◆ dispose_merlee_message()

void dispose_merlee_message ( PopupMessage * popup)

Definition at line 197 of file status_icons.c.

197 {
198 if (popup->data.icons != NULL) {
199 heap_free(popup->data.icons);
200 popup->data.icons = NULL;
201 }
202 popup->active = FALSE;
203}

Referenced by update_merlee_message().

◆ show_merlee_message()

void show_merlee_message ( s16 messageIndex,
s16 duration )

Definition at line 205 of file status_icons.c.

205 {
207
208 if (popup != NULL) {
209 popup->updateFunc = update_merlee_message;
210 popup->renderUIFunc = draw_merlee_message;
211 popup->needsInit = TRUE;
212 popup->unk_00 = 0;
213 popup->renderWorldFunc = NULL;
214 popup->messageIndex = messageIndex;
215 popup->duration = duration;
216 popup->showMsgState = BTL_MSG_STATE_INIT;
217 D_800A0F40 = 1;
218 }
219}
void draw_merlee_message(void *popup)
void update_merlee_message(void *popup)

◆ draw_merlee_message_string()

void draw_merlee_message_string ( PopupMessage * popup,
s32 posX,
s32 posY )

Definition at line 257 of file status_icons.c.

257 {
258#if VERSION_JP
259 s32 messageID;
260
261 posX += 11;
262 posY += 6;
263
264 if (popup->messageIndex >= ARRAY_COUNT(D_80078168)) return;
265 if (popup->messageIndex < 0) return;
266
267 messageID = D_80078168[popup->messageIndex];
268 draw_msg(messageID, posX, posY, 255, MSG_PAL_0F, 0);
269#else
270 s32 messageID = D_80078168[popup->messageIndex];
271
272 posY += 6;
273 posX += 15;
274
275 posY += D_80078164[get_msg_lines(messageID) - 1];
276
277 draw_msg(messageID, posX, posY, 255, MSG_PAL_0F, 0);
278#endif
279}
#define draw_msg
@ MSG_PAL_0F
Definition enums.h:5419
s16 D_80078164[]

Referenced by draw_merlee_message().

◆ is_merlee_message_done()

s32 is_merlee_message_done ( void )

Definition at line 331 of file status_icons.c.

331 {
332 return D_800A0F40;
333}

◆ create_status_icon_set()

s32 create_status_icon_set ( void )

Definition at line 957 of file status_icons.c.

957 {
958 s32 i;
960
961 for (icon = D_800A0F44, i = 0; i < MAX_ICONS; icon++, i++) {
962 if (icon->flags == 0) {
963 break;
964 }
965 }
966
967 ASSERT(i < MAX_ICONS);
968
970
973 }
974
975 icon->worldPos.x = 0;
976 icon->worldPos.y = 0;
977 icon->worldPos.z = 0;
978
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;
1011
1012 return i;
1013}
@ CONTEXT_WORLD
Definition enums.h:3528

Referenced by create_actor(), load_partner_actor(), and load_player_actor().

◆ remove_all_status_icons()

void remove_all_status_icons ( s32 iconID)

Definition at line 1015 of file status_icons.c.

1015 {
1017
1028 statusIcon->flags = 0;
1029}
void remove_status_icon_surprise(s32 iconID)
void remove_status_debuff(s32 iconID)
void remove_status_icon_boost_jump(s32 iconID)
void remove_status_icon_boost_partner(s32 iconID)
void remove_status_transparent(s32 iconID)
void remove_status_static(s32 iconID)
void remove_status_icon_peril(s32 iconID)
void remove_status_chill_out(s32 iconID)
void remove_status_icon_boost_hammer(s32 iconID)
void remove_status_icon_danger(s32 iconID)

Referenced by btl_delete_actor(), and btl_delete_player_actor().

◆ set_status_icons_properties()

void set_status_icons_properties ( s32 iconID,
f32 x,
f32 y,
f32 z,
s32 arg,
s32 arg2,
s32 radius,
s32 offsetY )

Definition at line 1031 of file status_icons.c.

1031 {
1033
1034 icon->worldPos.x = x;
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;
1045}

Referenced by appendGfx_npc_actor(), and appendGfx_player_actor().

◆ set_status_icons_offset()

void set_status_icons_offset ( s32 iconID,
s32 offsetY,
s32 offsetX )

Definition at line 1047 of file status_icons.c.

1047 {
1049
1050 statusIcon->offsetY = offsetY;
1051 statusIcon->offsetX = offsetX;
1052}

Referenced by appendGfx_npc_actor(), and appendGfx_player_actor().

◆ create_status_debuff()

void create_status_debuff ( s32 iconID,
s32 statusID )

Definition at line 1054 of file status_icons.c.

1054 {
1056
1058 if (statusIcon->status1.active != statusID) {
1060 statusIcon->status1.active = statusID;
1061 statusIcon->status1.activeTask = STATUS_ICON_TASK_LOAD;
1062 }
1063}

Referenced by appendGfx_npc_actor(), appendGfx_player_actor(), and inflict_status().

◆ remove_status_debuff()

void remove_status_debuff ( s32 iconID)

Definition at line 1065 of file status_icons.c.

1065 {
1067
1068 if (statusIcon->status1.active && !statusIcon->status1.removing) {
1069 statusIcon->status1.removing = statusIcon->status1.active;
1070 statusIcon->status1.removingTask = STATUS_ICON_TASK_LOAD;
1071 statusIcon->status1.active = 0;
1072 statusIcon->status1.activeTask = STATUS_ICON_TASK_NONE;
1073 statusIcon->status1.frameCounter = 10;
1074 statusIcon->status1.removingElementHID = statusIcon->status1.activeElementHID;
1075 }
1076}

Referenced by btl_state_update_9(), btl_state_update_begin_player_turn(), btl_state_update_defeat(), create_status_debuff(), and remove_all_status_icons().

◆ enable_status_debuff()

void enable_status_debuff ( s32 iconID)

Definition at line 1078 of file status_icons.c.

◆ create_status_static()

void create_status_static ( s32 iconID,
s32 statusID )

Definition at line 1084 of file status_icons.c.

1084 {
1086
1088 if (statusIcon->status2.active != statusID) {
1090 statusIcon->status2.active = statusID;
1091 statusIcon->status2.activeTask = 1;
1092 }
1093}

Referenced by appendGfx_npc_actor(), appendGfx_player_actor(), and inflict_status().

◆ remove_status_static()

void remove_status_static ( s32 iconID)

Definition at line 1095 of file status_icons.c.

1095 {
1097
1098 if (statusIcon->status2.active && !statusIcon->status2.removing) {
1099 statusIcon->status2.removing = statusIcon->status2.active;
1100 statusIcon->status2.removingTask = TRUE;
1101 statusIcon->status2.active = FALSE;
1102 statusIcon->status2.activeTask = FALSE;
1103 statusIcon->status2.frameCounter = 10;
1104 statusIcon->status2.removingElementHID = statusIcon->status2.activeElementHID;
1105 }
1106}
HudComplexStatusIcon status2

Referenced by btl_state_update_9(), btl_state_update_begin_player_turn(), calc_item_damage_enemy(), create_status_static(), remove_all_status_icons(), and remove_player_buffs().

◆ enable_status_static()

void enable_status_static ( s32 iconID)

Definition at line 1108 of file status_icons.c.

Referenced by appendGfx_npc_actor(), and appendGfx_player_actor().

◆ create_status_transparent()

void create_status_transparent ( s32 iconID,
s32 statusID )

Definition at line 1114 of file status_icons.c.

1114 {
1116
1118 if (statusIcon->status3.active != statusID) {
1120 statusIcon->status3.active = statusID;
1121 statusIcon->status3.activeTask = 1;
1122 }
1123}

Referenced by appendGfx_npc_actor(), appendGfx_player_actor(), and inflict_status().

◆ remove_status_transparent()

void remove_status_transparent ( s32 iconID)

Definition at line 1125 of file status_icons.c.

1125 {
1127
1128 if (statusIcon->status3.active && !statusIcon->status3.removing) {
1129 statusIcon->status3.removing = statusIcon->status3.active;
1130 statusIcon->status3.removingTask = TRUE;
1131 statusIcon->status3.active = FALSE;
1132 statusIcon->status3.activeTask = FALSE;
1133 statusIcon->status3.frameCounter = 10;
1134 statusIcon->status3.removingElementHID = statusIcon->status3.activeElementHID;
1135 }
1136}
HudComplexStatusIcon status3

Referenced by btl_state_update_9(), btl_state_update_begin_player_turn(), calc_item_damage_enemy(), create_status_transparent(), remove_all_status_icons(), and remove_player_buffs().

◆ enable_status_transparent()

void enable_status_transparent ( s32 iconID)

Definition at line 1138 of file status_icons.c.

◆ create_status_chill_out()

void create_status_chill_out ( s32 iconID)

Definition at line 1144 of file status_icons.c.

1144 {
1146
1148 if (!statusIcon->status4.active) {
1149 statusIcon->status4.active = TRUE;
1150 statusIcon->status4.activeTask = TRUE;
1151 }
1152}

Referenced by appendGfx_npc_actor().

◆ remove_status_chill_out()

void remove_status_chill_out ( s32 iconID)

Definition at line 1154 of file status_icons.c.

1154 {
1156
1157 if (statusIcon->status4.active && !statusIcon->status4.removing) {
1158 statusIcon->status4.removing = statusIcon->status4.active;
1159 statusIcon->status4.removingTask = TRUE;
1160 statusIcon->status4.active = FALSE;
1161 statusIcon->status4.activeTask = FALSE;
1162 statusIcon->status4.frameCounter = 10;
1163 statusIcon->status4.removingElementHID = statusIcon->status4.activeElementHID;
1164 }
1165}
HudComplexStatusIcon status4

Referenced by btl_state_update_begin_player_turn(), and remove_all_status_icons().

◆ enable_status_chill_out()

void enable_status_chill_out ( s32 iconID)

◆ create_status_icon_boost_jump()

void create_status_icon_boost_jump ( s32 iconID)

Definition at line 1173 of file status_icons.c.

1173 {
1175 HudElemID hid;
1176
1178 if (!statusIcon->boostJump.active) {
1179 statusIcon->boostJump.active = TRUE;
1183 statusIcon->boostJump.activeElementID = hid;
1184 }
1185}
s32 HudElemID
HudScript HES_BoostJumpBegin

Referenced by appendGfx_player_actor().

◆ remove_status_icon_boost_jump()

void remove_status_icon_boost_jump ( s32 iconID)

Definition at line 1187 of file status_icons.c.

1187 {
1189
1190 if (statusIcon->boostJump.active) {
1192 statusIcon->boostJump.active = FALSE;
1193 statusIcon->boostJump.removing = TRUE;
1194 statusIcon->prevIndexBoostJump = hid;
1196 }
1197}
HudSimpleStatusIcon boostJump
HudScript HES_BoostJumpEnd

Referenced by appendGfx_player_actor(), and remove_all_status_icons().

◆ enable_status_icon_boost_jump()

void enable_status_icon_boost_jump ( s32 iconID)

Definition at line 1199 of file status_icons.c.

Referenced by appendGfx_player_actor().

◆ create_status_icon_boost_hammer()

void create_status_icon_boost_hammer ( s32 iconID)

Definition at line 1205 of file status_icons.c.

1205 {
1207 HudElemID hid;
1208
1210 if (!statusIcon->boostHammer.active) {
1211 statusIcon->boostHammer.active = TRUE;
1215 statusIcon->boostHammer.activeElementID = hid;
1216 }
1217}
HudScript HES_BoostHammerBegin

Referenced by appendGfx_player_actor().

◆ remove_status_icon_boost_hammer()

void remove_status_icon_boost_hammer ( s32 iconID)

Definition at line 1219 of file status_icons.c.

1219 {
1221
1222 if (statusIcon->boostHammer.active) {
1224 statusIcon->boostHammer.active = FALSE;
1225 statusIcon->boostHammer.removing = FALSE;
1226 statusIcon->prevIndexBoostHammer = hid;
1228 }
1229}
HudSimpleStatusIcon boostHammer
HudScript HES_BoostHammerEnd

Referenced by appendGfx_player_actor(), and remove_all_status_icons().

◆ enable_status_icon_boost_hammer()

void enable_status_icon_boost_hammer ( s32 iconID)

Definition at line 1231 of file status_icons.c.

Referenced by appendGfx_player_actor().

◆ create_status_icon_boost_partner()

void create_status_icon_boost_partner ( s32 iconID)

Definition at line 1237 of file status_icons.c.

1237 {
1239 HudElemID hid;
1240
1242 if (!statusIcon->boostPartner.active) {
1243 statusIcon->boostPartner.active = TRUE;
1247 statusIcon->boostPartner.activeElementID = hid;
1248 }
1249}
HudScript HES_BoostPartner

◆ remove_status_icon_boost_partner()

void remove_status_icon_boost_partner ( s32 iconID)

Definition at line 1251 of file status_icons.c.

1251 {
1253
1254 if (statusIcon->boostPartner.active) {
1256 hud_element_free(statusIcon->boostPartner.activeElementID);
1257 }
1258}
HudSimpleStatusIcon boostPartner

Referenced by remove_all_status_icons().

◆ enable_status_icon_boost_partner()

void enable_status_icon_boost_partner ( s32 iconID)

Definition at line 1260 of file status_icons.c.

◆ create_status_icon_surprise()

void create_status_icon_surprise ( s32 iconID)

Definition at line 1266 of file status_icons.c.

1266 {
1268 HudElemID hid;
1269
1271 if (!statusIcon->surprise.active) {
1272 statusIcon->surprise.active = TRUE;
1276 statusIcon->surprise.activeElementID = hid;
1277 }
1278}
HudScript HES_Surprise

◆ remove_status_icon_surprise()

void remove_status_icon_surprise ( s32 iconID)

Definition at line 1280 of file status_icons.c.

1280 {
1282
1283 if (statusIcon->surprise.active) {
1285 hud_element_free(statusIcon->surprise.activeElementID);
1286 }
1287}
HudSimpleStatusIcon surprise

Referenced by remove_all_status_icons().

◆ enable_status_icon_surprise()

void enable_status_icon_surprise ( s32 iconID)

Definition at line 1289 of file status_icons.c.

◆ create_status_icon_peril()

void create_status_icon_peril ( s32 iconID)

Definition at line 1295 of file status_icons.c.

1295 {
1297 HudElemID hid;
1298
1300 if (!statusIcon->peril.active) {
1301 statusIcon->peril.active = TRUE;
1305 statusIcon->peril.activeElementID = hid;
1306 }
1307}
HudScript HES_Peril

Referenced by appendGfx_player_actor().

◆ remove_status_icon_peril()

void remove_status_icon_peril ( s32 iconID)

Definition at line 1309 of file status_icons.c.

1309 {
1311
1312 if (statusIcon->peril.active) {
1314 hud_element_free(statusIcon->peril.activeElementID);
1315 }
1316}
HudSimpleStatusIcon peril

Referenced by appendGfx_player_actor(), and remove_all_status_icons().

◆ enable_status_icon_peril()

void enable_status_icon_peril ( s32 iconID)

Definition at line 1318 of file status_icons.c.

◆ create_status_icon_danger()

void create_status_icon_danger ( s32 iconID)

Definition at line 1324 of file status_icons.c.

1324 {
1326 HudElemID hid;
1327
1329 if (!statusIcon->danger.active) {
1330 statusIcon->danger.active = TRUE;
1334 statusIcon->danger.activeElementID = hid;
1335 }
1336}
HudScript HES_Danger

Referenced by appendGfx_player_actor().

◆ remove_status_icon_danger()

void remove_status_icon_danger ( s32 iconID)

Definition at line 1338 of file status_icons.c.

1338 {
1340
1341 if (statusIcon->danger.active) {
1343 hud_element_free(statusIcon->danger.activeElementID);
1344 }
1345}
HudSimpleStatusIcon danger

Referenced by appendGfx_player_actor(), and remove_all_status_icons().

◆ enable_status_icon_danger()

void enable_status_icon_danger ( s32 iconID)

Definition at line 1347 of file status_icons.c.

Variable Documentation

◆ D_80078160

s16 D_80078160[] = { 28, 40 }

Definition at line 74 of file status_icons.c.

74{ 28, 40 };

Referenced by draw_merlee_message().

◆ D_80078164

s16 D_80078164[] = { 0, -2 }

Definition at line 75 of file status_icons.c.

75{ 0, -2 };

Referenced by draw_merlee_message_string().

◆ D_80078168

◆ D_800A0BC0

◆ D_800A0F40

BSS s32 D_800A0F40

◆ D_800A0F44

◆ HES_Item_KeyGift

HudScript HES_Item_KeyGift
extern

Referenced by update_all_status_icons().

◆ HES_AsleepBegin

HudScript HES_AsleepBegin
extern

Definition at line 811 of file global_hud_scripts.c.

811 {
813 hs_SetCustomSize(16, 16)
814 hs_SetAlpha(30)
815 hs_SetTexelOffset(10, -10)
817 hs_SetAlpha(50)
818 hs_SetTexelOffset(8, -8)
820 hs_SetAlpha(80)
821 hs_SetTexelOffset(6, -6)
823 hs_SetAlpha(120)
824 hs_SetTexelOffset(5, -5)
826 hs_SetAlpha(170)
827 hs_SetTexelOffset(4, -4)
829 hs_SetAlpha(200)
830 hs_SetTexelOffset(3, -3)
832 hs_SetAlpha(220)
833 hs_SetTexelOffset(2, -2)
835 hs_SetAlpha(240)
836 hs_SetTexelOffset(1, -1)
838 hs_SetAlpha(255)
841 hs_Loop
847 hs_End
848};
#define hs_SetCustomSize(arg0, arg1)
#define hs_SetVisible
#define hs_End
#define hs_Restart
#define hs_SetAlpha(alpha)
#define hs_Loop
#define hs_SetCI(time, name)
#define hs_SetTexelOffset(x, y)

Referenced by update_all_status_icons().

◆ HES_AsleepEnd

◆ HES_ElectrifiedBegin

HudScript HES_ElectrifiedBegin
extern

Definition at line 904 of file global_hud_scripts.c.

904 {
906 hs_SetCustomSize(16, 16)
907 hs_SetAlpha(30)
908 hs_SetTexelOffset(10, -10)
910 hs_SetAlpha(50)
911 hs_SetTexelOffset(8, -8)
913 hs_SetAlpha(80)
914 hs_SetTexelOffset(6, -6)
916 hs_SetAlpha(120)
917 hs_SetTexelOffset(5, -5)
919 hs_SetAlpha(170)
920 hs_SetTexelOffset(4, -4)
922 hs_SetAlpha(200)
923 hs_SetTexelOffset(3, -3)
925 hs_SetAlpha(220)
926 hs_SetTexelOffset(2, -2)
928 hs_SetAlpha(240)
929 hs_SetTexelOffset(1, -1)
931 hs_SetAlpha(255)
934 hs_Loop
949 hs_End
950};
#define hs_SetCI_Explicit(time, raster, palette)

Referenced by update_all_status_icons().

◆ HES_ElectrifiedEnd

◆ HES_ParalyzedBegin

HudScript HES_ParalyzedBegin
extern

Definition at line 1006 of file global_hud_scripts.c.

1006 {
1008 hs_SetCustomSize(16, 16)
1009 hs_SetAlpha(30)
1010 hs_SetTexelOffset(10, -10)
1012 hs_SetAlpha(50)
1013 hs_SetTexelOffset(8, -8)
1015 hs_SetAlpha(80)
1016 hs_SetTexelOffset(6, -6)
1018 hs_SetAlpha(120)
1019 hs_SetTexelOffset(5, -5)
1021 hs_SetAlpha(170)
1022 hs_SetTexelOffset(4, -4)
1024 hs_SetAlpha(200)
1025 hs_SetTexelOffset(3, -3)
1027 hs_SetAlpha(220)
1028 hs_SetTexelOffset(2, -2)
1030 hs_SetAlpha(240)
1031 hs_SetTexelOffset(1, -1)
1033 hs_SetAlpha(255)
1034 hs_SetTexelOffset(0, 0)
1036 hs_Loop
1051 hs_End
1052};

Referenced by update_all_status_icons().

◆ HES_ParalyzedEnd

◆ HES_DizzyEnd

◆ HES_PoisonedBegin

◆ HES_PoisonedEnd

◆ HES_DizzyBegin

◆ HES_FrozenBegin

◆ HES_FrozenEnd

◆ HES_WeakenedLoop

HudScript HES_WeakenedLoop
extern

Definition at line 1339 of file global_hud_scripts.c.

Referenced by update_all_status_icons().

◆ HES_WeakenedBegin

◆ HES_WeakenedEnd

HudScript HES_WeakenedEnd
extern

◆ HES_StoppedBegin

◆ HES_StoppedEnd

HudScript HES_StoppedEnd
extern

◆ HES_ShrunkBegin

◆ HES_ShrunkEnd

◆ HES_TransparentBegin

◆ HES_TransparentEnd

◆ HES_BoostJumpBegin

◆ HES_BoostJumpEnd

◆ HES_BoostHammerBegin

◆ HES_BoostHammerEnd

◆ HES_BoostPartner

HudScript HES_BoostPartner
extern

Definition at line 1817 of file global_hud_scripts.c.

Referenced by create_status_icon_boost_partner().

◆ HES_Surprise

HudScript HES_Surprise
extern

Definition at line 1819 of file global_hud_scripts.c.

Referenced by create_status_icon_surprise().

◆ HES_Peril

HudScript HES_Peril
extern

Definition at line 2172 of file global_hud_scripts.c.

2172 {
2175 hs_Loop
2182 hs_End
2183};
@ SOUND_PERIL
Definition enums.h:1305
#define hs_PlaySound(arg0)
#define hs_SetTileSize(size)
@ HUD_ELEMENT_FLAG_200000
Definition hud_element.h:92
#define hs_ClearFlags(arg0)
@ HUD_ELEMENT_SIZE_40x16
Definition hud_element.h:65
#define hs_SetFlags(arg0)

Referenced by create_status_icon_peril().

◆ HES_Danger

◆ status_icons_rodata_alignment

const f32 status_icons_rodata_alignment = 0.0f

Definition at line 1353 of file status_icons.c.