6#define FULLY_EXTENDED_Y 18
7#define FULLY_RETRACTED_Y -100
62 playerData->
curHP = 10;
65 playerData->
curFP = 5;
68 playerData->
maxBP = 3;
69 playerData->
level = 1;
73 playerData->
coins = 0;
102 playerData->
badges[i] = ITEM_NONE;
106 playerData->
invItems[i] = ITEM_NONE;
156 if (item_is_key(itemID)) {
172 if (item_is_badge(itemID)) {
208 if (item_is_key(itemID)) {
224 if (item_is_badge(itemID)) {
268 if (item_is_key(itemID)) {
282 if (item_is_badge(itemID)) {
315 if (item_is_key(itemID)) {
325 if (item_is_badge(itemID)) {
347 if (item_is_key(itemID)) {
357 if (item_is_badge(itemID)) {
396 if (!item_is_badge(itemID)) {
492 statusBar->
hidden = FALSE;
494 statusBar->
unk_3B = FALSE;
518 statusBar->
unk_3C = FALSE;
639 for (i = 0; i < numDigits; i++) {
641 digits[(numDigits - i) - 1] = digit;
648 for (i = 0; i < numDigits; i++, drawX += 8) {
652 if (digit != 0 || keepDrawing || (i == numDigits - 1)) {
670 s32 baseX = startX + 8;
671 s32 baseY = startY + 8;
678 for (i = 0; i < numDigits; i++) {
679 s32 num = currentValue % 10;
680 digits[numDigits - i - 1] = num;
687 for (i = 0; i < numDigits; i++, drawX += 8) {
689 if (digit != 0 || keepDrawing || i == numDigits - 1) {
698 for (i = 0; i < numDigits; i++) {
699 digits[numDigits - i - 1] = maxValue % 10;
706 for (i = 0; i < numDigits; i++, drawX += 8) {
708 if (digit != 0 || keepDrawing || i == numDigits - 1) {
760 statusBar->
hidden = FALSE;
761 statusBar->
unk_3B = FALSE;
771 statusBar->
hidden = FALSE;
772 statusBar->
unk_3B = FALSE;
782 statusBar->
hidden = FALSE;
783 statusBar->
unk_3B = FALSE;
848 statusBar->
hidden = FALSE;
849 statusBar->
unk_3B = FALSE;
852 switch (statusBar->
hidden) {
868 statusBar->
unk_3C = FALSE;
890 statusBar->
hidden = FALSE;
902 draw_box(0,
WINDOW_STYLE_5, x, y, 0, 174, 35, 255, 0, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, NULL, NULL, NULL,
SCREEN_WIDTH,
SCREEN_HEIGHT, NULL);
903 draw_box(0,
WINDOW_STYLE_6, x + 174, y, 0, 122, 25, 255, 0, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, NULL, NULL, NULL,
SCREEN_WIDTH,
SCREEN_HEIGHT, NULL);
979 if (playerData->
level >= 27) {
1070 limit += spBars * 8;
1075 limit += spBars * 8;
1080 showAddedBar = FALSE;
1089 showAddedBar = TRUE;
1108 i++; s1++;
if (i >= limit) {
break; }
1109 i++; s1++;
if (i >= limit) {
break; }
1110 i++; s1++;
if (i >= limit) {
break; }
1111 i++; s1++;
if (i >= limit) {
break; }
1112 i++; s1++;
if (i >= limit) {
break; }
1113 i++; s1++;
if (i >= limit) {
break; }
1114 i++; s1++;
if (i >= limit) {
break; }
1127 if (i >= limit || i >= s7 && !showAddedBar) {
1137 if (i >= limit || i >= s7 && !showAddedBar) {
1146 if (i >= limit || i >= s7 && !showAddedBar) {
1154 if (i >= limit || i >= s7 && !showAddedBar) {
1162 if (i >= limit || i >= s7 && !showAddedBar) {
1171 if (i >= limit || i >= s7 && !showAddedBar) {
1180 if (i >= limit || i >= s7 && !showAddedBar) {
1189 if (i >= limit || i >= s7 && !showAddedBar) {
1199 if (i >= limit || i >= s7 && !showAddedBar) {
1205 limit = maxStarPower * 8;
1427 dx_debug_menu_main();
1436 statusBar->
hidden = FALSE;
1437 statusBar->
unk_3B = TRUE;
1446 statusBar->
hidden = FALSE;
1447 statusBar->
unk_3B = TRUE;
1454 if (statusBar->
hidden != TRUE) {
1455 statusBar->
hidden = TRUE;
1457 statusBar->
unk_3B = TRUE;
1467 statusBar->
hidden = TRUE;
1468 statusBar->
unk_3B = FALSE;
1469 statusBar->
unk_3C = FALSE;
1478 statusBar->
hidden = FALSE;
1479 statusBar->
unk_3B = TRUE;
1480 statusBar->
unk_3C = FALSE;
1691 statusBar->
unk_3B = FALSE;
1715 statusBar->
unk_3C = FALSE;
1738 s32 attackFXArray[6];
1748 for (i = 0; i <
ARRAY_COUNT(attackFXArray); i++) {
1749 attackFXArray[i] = 0;
1758 if (badgeItemID == ITEM_NONE)
1765 if (badgeMoveID == MOVE_DODGE_MASTER) {
1770 if (badgeMoveID == MOVE_SPIKE_SHIELD) {
1775 if (badgeMoveID == MOVE_FIRST_ATTACK) {
1780 if (badgeMoveID == MOVE_HP_PLUS) {
1785 if (badgeMoveID == MOVE_DOUBLE_DIP) {
1790 if (badgeMoveID == MOVE_MYSTERY_SCROLL) {
1798 if (badgeMoveID == MOVE_FIRE_SHIELD) {
1803 if (badgeMoveID == MOVE_PRETTY_LUCKY) {
1808 if (badgeMoveID == MOVE_HP_DRAIN) {
1813 if (badgeMoveID == MOVE_ALLOR_NOTHING) {
1818 if (badgeMoveID == MOVE_SLOW_GO) {
1823 if (badgeMoveID == MOVE_FP_PLUS) {
1828 if (badgeMoveID == MOVE_ICE_POWER) {
1833 if (badgeMoveID == MOVE_FEELING_FINE) {
1838 if (badgeMoveID == MOVE_ATTACK_FX_A) {
1839 attackFXArray[attackFXIndex++] = 1;
1842 if (badgeMoveID == MOVE_ATTACK_FX_D) {
1843 attackFXArray[attackFXIndex++] = 2;
1846 if (badgeMoveID == MOVE_ATTACK_FX_B) {
1847 attackFXArray[attackFXIndex++] = 3;
1850 if (badgeMoveID == MOVE_ATTACK_FX_E) {
1851 attackFXArray[attackFXIndex++] = 4;
1854 if (badgeMoveID == MOVE_ATTACK_FX_C) {
1855 attackFXArray[attackFXIndex++] = 5;
1858 if (badgeMoveID == MOVE_ATTACK_FX_F) {
1859 attackFXArray[attackFXIndex++] = 6;
1864 if (badgeMoveID == MOVE_MONEY_MONEY) {
1869 if (badgeMoveID == MOVE_CHILL_OUT_BADGE) {
1874 if (badgeMoveID == MOVE_HAPPY_HEART) {
1879 if (badgeMoveID == MOVE_ZAP_TAP) {
1884 if (badgeMoveID == MOVE_MEGA_RUSH) {
1889 if (badgeMoveID == MOVE_BERSERKER) {
1894 if (badgeMoveID == MOVE_RIGHT_ON) {
1899 if (badgeMoveID == MOVE_RUNAWAY_PAY) {
1904 if (badgeMoveID == MOVE_FLOWER_SAVER) {
1909 if (badgeMoveID == MOVE_PAY_OFF) {
1914 if (badgeMoveID == MOVE_DEFEND_PLUS) {
1919 if (badgeMoveID == MOVE_POWER_PLUS) {
1924 if (badgeMoveID == MOVE_REFUND) {
1929 if (badgeMoveID == MOVE_POWER_RUSH) {
1934 if (badgeMoveID == MOVE_CRAZY_HEART) {
1939 if (badgeMoveID == MOVE_LAST_STAND) {
1944 if (badgeMoveID == MOVE_CLOSE_CALL) {
1949 if (badgeMoveID == MOVE_P_UP_D_DOWN) {
1954 if (badgeMoveID == MOVE_LUCKY_DAY) {
1959 if (badgeMoveID == MOVE_MEGA_HP_DRAIN) {
1964 if (badgeMoveID == MOVE_P_DOWN_D_UP) {
1969 if (badgeMoveID == MOVE_FLOWER_FANATIC) {
1974 if (badgeMoveID == MOVE_SPEEDY_SPIN) {
1979 if (badgeMoveID == MOVE_SPIN_ATTACK) {
1984 if (badgeMoveID == MOVE_I_SPY) {
1989 if (badgeMoveID == MOVE_BUMP_ATTACK) {
1994 if (badgeMoveID == MOVE_QUICK_CHANGE) {
1999 if (badgeMoveID == MOVE_HEART_FINDER) {
2004 if (badgeMoveID == MOVE_FLOWER_FINDER) {
2009 if (badgeMoveID == MOVE_DIZZY_ATTACK) {
2014 if (badgeMoveID == MOVE_UNUSED_FINAL_GOOMPA) {
2019 if (badgeMoveID == MOVE_UNUSED_FINAL_BOBOMB) {
2024 if (badgeMoveID == MOVE_DEEP_FOCUS) {
2029 if (badgeMoveID == MOVE_SUPER_FOCUS) {
2034 if (badgeMoveID == MOVE_KAIDEN) {
2039 if (badgeMoveID == MOVE_DAMAGE_DODGE) {
2044 if (badgeMoveID == MOVE_HAPPY_FLOWER) {
2049 if (badgeMoveID == MOVE_GROUP_FOCUS) {
2054 if (badgeMoveID == MOVE_PEEKABOO) {
2059 if (badgeMoveID == MOVE_HEALTHY_HEALTHY) {
2067 ret = attackFXArray[
rand_int(attackFXIndex - 1)];
2078 s16 newCoins = playerData->
coins + amt;
2080 playerData->
coins = newCoins;
2081 if (newCoins > 999) {
2082 playerData->
coins = 999;
2084 if (playerData->
coins < 0) {
2085 playerData->
coins = 0;
2094 return playerData->
coins;
2174 }
else if (amt == -1) {
2191 }
else if (amt == -1) {
2206 s32 newHP = playerData->
curHP;
2211 if (amt < 0 || newHP < 1) {
2214 playerData->
curHP = newHP;
s8 starpointsBlinkAnimTime
HudElemID coinCountTimesHID
u16 actionCommandSuccesses
HudElemID coinCountIconHID
s32 partnerUnlockedTime[12]
u16 actionCommandAttempts
@ DRAW_NUMBER_STYLE_ALIGN_RIGHT
drawn to the left of posX
@ DRAW_NUMBER_STYLE_MONOSPACE
@ PS_FLAG_NO_STATIC_COLLISION
@ DRAW_NUMBER_CHARSET_THIN
@ ABILITY_HEALTHY_HEALTHY
s32 evt_get_variable(Evt *script, Bytecode var)
void basic_hidden_window_update(s32 windowIndex, s32 *flags, s32 *posX, s32 *posY, s32 *posZ, f32 *scaleX, f32 *scaleY, f32 *rotX, f32 *rotY, f32 *rotZ, s32 *darkening, s32 *opacity)
void set_window_update(s32 panelID, s32)
void basic_window_update(s32 windowIndex, s32 *flags, s32 *posX, s32 *posY, s32 *posZ, f32 *scaleX, f32 *scaleY, f32 *rotX, f32 *rotY, f32 *rotZ, s32 *darkening, s32 *opacity)
void star_power_shimmer_update(void)
void star_power_shimmer_start(s32, f32, f32, f32)
void set_window_properties(s32 panelID, s32 posX, s32 posY, s32 width, s32 height, u8, void *drawContents, void *drawContentsArg, s8 parent)
void star_power_shimmer_init(void)
void star_power_shimmer_draw(void)
void draw_number(s32 value, s32 x, s32 y, s32 variableWidthChars, s32 palette, s32 opacity, u16 style)
void hud_element_set_script(s32 id, HudScript *anim)
void hud_element_draw_next(s32 id)
void hud_element_set_tint(s32 id, s32 r, s32 g, s32 b)
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.
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_draw_clipped(s32 id)
void hud_element_free(s32 id)
void copy_world_hud_element_ref_to_battle(s32 worldID, s32 battleID)
@ HUD_ELEMENT_FLAG_DISABLED
@ HUD_ELEMENT_FLAG_FILTER_TEX
b32 can_control_status_bar(void)
void setup_status_bar_for_world(void)
void show_coin_counter(void)
s32 find_item(s32 itemID)
Search player inventory for itemID and return first matching array index.
#define FULLY_RETRACTED_Y
void status_bar_start_blinking_hp(void)
s32 recover_hp(s32 amt)
Recover player HP.
HudScript * TimesHudScript
HudScript HES_StatusHP_de
s32 add_star_pieces(s32 amt)
HudScript * SlashHudScript
HudScript HES_StatusFP_de
HudScript * DigitHudScripts[10]
void status_bar_ignore_changes(void)
void reset_status_bar(void)
s32 store_item(s32 itemID)
Add itemID to player storage and return slot in which it was placed.
void setup_status_bar_for_battle(void)
void enable_status_bar_input(void)
void status_bar_start_blinking_fp(void)
HudScript HES_StatusStar1
s32 recover_fp(s32 amt)
Recover player FP.
s32 is_partner_ability_active(s32 ability)
void sort_consumables(void)
Bubbles up player inventory items such that all ITEM_NONE values are at the bottom.
void decrement_status_bar_disabled(void)
void update_coin_counter(void)
void hide_coin_counter(void)
void sync_status_bar(void)
void status_bar_stop_blinking_hp(void)
void open_status_bar_quickly(void)
s32 get_consumables_empty(void)
HudScript * SPStarHudScripts[]
HudScript HES_StatusStarEmpty
s32 count_item(s32 itemID)
Search player inventory for itemID and count the number matches.
HudScript * SPIncrementHudScripts[]
HudScript HES_StatusSPShine
void close_status_bar(void)
HudScript HES_StatusStarPoint
HudScript HES_StatusHP_es
void status_bar_stop_blinking_sp(void)
void update_status_bar(void)
void increment_max_star_power(void)
b32 is_badge_equipped(s32 itemID)
void status_bar_show_and_ignore_changes(void)
void status_bar_stop_blinking_starpoints(void)
s32 StatusBarSPIncrementOffsets[]
s32 add_star_points(s32 amt)
HudScript HES_StatusCoinSparkle
BSS b16 HidingCoinCounter
void disable_status_bar_input(void)
s32 remove_item(s32 itemID)
Remove first instance of itemID found in player inventory.
void status_bar_start_blinking_starpoints(void)
void status_bar_stop_blinking_fp(void)
void status_bar_draw_number(s32 iconID, s32 startX, s32 startY, s32 value, s32 numDigits)
void status_bar_stop_blinking_coins(void)
HudScript HES_StatusFP_fr
s32 get_stored_empty(void)
s32 get_stored_count(void)
HudScript HES_StatusTimes
void status_bar_start_blinking_sp(void)
void set_max_star_power(s8 newMax)
void subtract_hp(s32 amt)
void status_bar_always_show_off(void)
s32 get_consumables_count(void)
void clear_player_data(void)
void hide_coin_counter_immediately(void)
s32 status_bar_is_ignoring_changes(void)
HudScript HES_StatusHP_fr
void status_bar_draw_stat(s32 id, s32 startX, s32 startY, s32 currentValue, s32 maxValue)
HudScript HES_StatusFP_es
void enforce_hpfp_limits(void)
s32 is_status_bar_visible(void)
void open_status_bar_slowly(void)
void initialize_status_bar(void)
void coin_counter_draw_content(UNK_TYPE arg0, s32 posX, s32 posY)
b32 has_item(s32 itemID)
Check whether player has itemID in their inventory.
HudScript HES_StatusHeart
BSS b16 ShowingCoinCounter
HudScript HES_StatusSPEmptyIncrement
HudScript HES_StatusFlower
void status_bar_start_blinking_coins(void)
s32 is_ability_active(s32 ability)
void status_bar_respond_to_changes(void)
void status_bar_always_show_on(void)
void increment_status_bar_disabled(void)
void draw_status_ui(void)
void status_bar_start_blinking_sp_bars(s32 numBarsToBlink)
void add_star_power(s32 amt)
s32 add_item(s32 itemID)
Add itemID to player inventory and return inventory slot in which it was placed.
void sfx_play_sound(s32 soundID)
ApiStatus ShowCoinCounter(Evt *script, b32 isInitialCall)
GameStatus * gGameStatusPtr
PlayerStatus gPlayerStatus