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

Go to the source code of this file.

Macros

#define FULLY_EXTENDED_Y   18
 
#define FULLY_RETRACTED_Y   -100
 

Enumerations

enum  BlinkModes { BLINK_OFF = 0 , BLINK_ON = 1 }
 
enum  ShimmerStates { STATUS_SHIMMER_OFF = 0 , STATUS_SHIMMER_BEGIN = 1 , STATUS_SHIMMER_ON = 2 }
 

Functions

void status_bar_start_blinking_coins (void)
 
void status_bar_stop_blinking_coins (void)
 
void clear_player_data (void)
 
s32 add_item (s32 itemID)
 Add itemID to player inventory and return inventory slot in which it was placed.
 
s32 remove_item (s32 itemID)
 Remove first instance of itemID found in player inventory.
 
s32 find_item (s32 itemID)
 Search player inventory for itemID and return first matching array index.
 
s32 count_item (s32 itemID)
 Search player inventory for itemID and count the number matches.
 
b32 has_item (s32 itemID)
 Check whether player has itemID in their inventory.
 
s32 store_item (s32 itemID)
 Add itemID to player storage and return slot in which it was placed.
 
b32 is_badge_equipped (s32 itemID)
 
void sort_consumables (void)
 Bubbles up player inventory items such that all ITEM_NONE values are at the bottom.
 
s32 get_consumables_count (void)
 
s32 get_consumables_empty (void)
 
s32 get_stored_count (void)
 
s32 get_stored_empty (void)
 
void enforce_hpfp_limits (void)
 
void initialize_status_bar (void)
 
void status_bar_draw_number (s32 iconID, s32 startX, s32 startY, s32 value, s32 numDigits)
 
void status_bar_draw_stat (s32 id, s32 startX, s32 startY, s32 currentValue, s32 maxValue)
 
void update_status_bar (void)
 
void coin_counter_draw_content (UNK_TYPE arg0, s32 posX, s32 posY)
 
void update_coin_counter (void)
 
void show_coin_counter (void)
 
void hide_coin_counter (void)
 
void hide_coin_counter_immediately (void)
 
void draw_status_ui (void)
 
void open_status_bar_slowly (void)
 
void open_status_bar_quickly (void)
 
void close_status_bar (void)
 
void setup_status_bar_for_world (void)
 
void setup_status_bar_for_battle (void)
 
void enable_status_bar_input (void)
 
void disable_status_bar_input (void)
 
b32 can_control_status_bar (void)
 
void status_bar_ignore_changes (void)
 
void status_bar_show_and_ignore_changes (void)
 
void status_bar_respond_to_changes (void)
 
s32 status_bar_is_ignoring_changes (void)
 
void status_bar_always_show_on (void)
 
void status_bar_always_show_off (void)
 
s32 is_status_bar_visible (void)
 
void status_bar_start_blinking_hp (void)
 
void status_bar_stop_blinking_hp (void)
 
void status_bar_start_blinking_fp (void)
 
void status_bar_stop_blinking_fp (void)
 
void status_bar_start_blinking_sp (void)
 
void status_bar_stop_blinking_sp (void)
 
void status_bar_start_blinking_sp_bars (s32 numBarsToBlink)
 
void status_bar_start_blinking_starpoints (void)
 
void status_bar_stop_blinking_starpoints (void)
 
void decrement_status_bar_disabled (void)
 
void increment_status_bar_disabled (void)
 
void sync_status_bar (void)
 
void reset_status_bar (void)
 
s32 is_ability_active (s32 ability)
 
s32 is_partner_ability_active (s32 ability)
 
s32 add_coins (s32 amt)
 
s32 add_star_points (s32 amt)
 
s32 add_star_pieces (s32 amt)
 
void increment_max_star_power (void)
 
void set_max_star_power (s8 newMax)
 
void add_star_power (s32 amt)
 
s32 recover_fp (s32 amt)
 Recover player FP.
 
s32 recover_hp (s32 amt)
 Recover player HP.
 
void subtract_hp (s32 amt)
 
s8 has_full_hp (void)
 
s8 has_full_fp (void)
 

Variables

BSS b16 ShowingCoinCounter
 
BSS b16 HidingCoinCounter
 
StatusBar gStatusBar
 
HudScriptTimesHudScript
 
HudScriptSPIncrementHudScripts []
 
HudScriptSPStarHudScripts []
 
s32 StatusBarSPIncrementOffsets []
 
HudScriptDigitHudScripts [10]
 
HudScript HES_StatusCoinSparkle
 
HudScript HES_StatusHP
 
HudScript HES_StatusHP_de
 
HudScript HES_StatusHP_fr
 
HudScript HES_StatusHP_es
 
HudScript HES_StatusHeart
 
HudScript HES_StatusFP
 
HudScript HES_StatusFP_de
 
HudScript HES_StatusFP_fr
 
HudScript HES_StatusFP_es
 
HudScript HES_StatusFlower
 
HudScript HES_StatusStarPoint
 
HudScript HES_StatusStar1
 
HudScript HES_StatusTimes
 
HudScript HES_StatusSPShine
 
HudScript HES_StatusSPEmptyIncrement
 
HudScript HES_StatusStarEmpty
 
HudScriptSlashHudScript
 

Macro Definition Documentation

◆ FULLY_EXTENDED_Y

#define FULLY_EXTENDED_Y   18

Definition at line 6 of file inventory.c.

Referenced by status_bar_show_and_ignore_changes(), and update_status_bar().

◆ FULLY_RETRACTED_Y

#define FULLY_RETRACTED_Y   -100

Enumeration Type Documentation

◆ BlinkModes

enum BlinkModes
Enumerator
BLINK_OFF 
BLINK_ON 

Definition at line 9 of file inventory.c.

9 {
10 BLINK_OFF = 0,
11 BLINK_ON = 1,
12};
@ BLINK_ON
Definition inventory.c:11
@ BLINK_OFF
Definition inventory.c:10

◆ ShimmerStates

Enumerator
STATUS_SHIMMER_OFF 
STATUS_SHIMMER_BEGIN 
STATUS_SHIMMER_ON 

Definition at line 14 of file inventory.c.

14 {
18};
@ STATUS_SHIMMER_OFF
Definition inventory.c:15
@ STATUS_SHIMMER_BEGIN
Definition inventory.c:16
@ STATUS_SHIMMER_ON
Definition inventory.c:17

Function Documentation

◆ status_bar_start_blinking_coins()

void status_bar_start_blinking_coins ( void )

Definition at line 1586 of file inventory.c.

1586 {
1587 StatusBar* statusBar = &gStatusBar;
1588
1590 statusBar->coinsBlinkTimeLeft = 120;
1591 }
1592
1593 if (statusBar->coinsBlinking != BLINK_ON) {
1594 statusBar->coinsBlinking = BLINK_ON;
1595 statusBar->coinsBlinkAnimTime = 0;
1596 }
1597}
@ CONTEXT_WORLD
Definition enums.h:3528
StatusBar gStatusBar
Definition inventory.c:23
GameStatus * gGameStatusPtr
Definition main_loop.c:32

Referenced by update_status_bar().

◆ status_bar_stop_blinking_coins()

void status_bar_stop_blinking_coins ( void )

Definition at line 1599 of file inventory.c.

1599 {
1600 StatusBar* statusBar = &gStatusBar;
1601
1602 if (statusBar->coinsBlinking != BLINK_OFF) {
1603 statusBar->coinsBlinking = BLINK_OFF;
1604 statusBar->coinsBlinkAnimTime = 0;
1605 statusBar->coinsBlinkTimeLeft = 0;
1606 }
1607}

Referenced by update_status_bar().

◆ clear_player_data()

void clear_player_data ( void )

Definition at line 55 of file inventory.c.

55 {
56 PlayerData* playerData = &gPlayerData;
57 s32 i;
58
59 ShowingCoinCounter = FALSE;
60 HidingCoinCounter = FALSE;
61
62 playerData->curHP = 10;
63 playerData->curMaxHP = 10;
64 playerData->hardMaxHP = 10;
65 playerData->curFP = 5;
66 playerData->curMaxFP = 5;
67 playerData->hardMaxFP = 5;
68 playerData->maxBP = 3;
69 playerData->level = 1;
70 playerData->bootsLevel = 0;
71 playerData->hammerLevel = -1;
72 playerData->hasActionCommands = FALSE;
73 playerData->coins = 0;
74 playerData->starPieces = 0;
75 playerData->starPoints = 0;
76 playerData->unused_011 = 0;
77 playerData->unused_288 = 0;
78
80 playerData->merleeCastsLeft = 0;
81 playerData->merleeTurnCount = -1;
82
83 playerData->maxStarPower = 0;
84 playerData->starPower = 0;
85 playerData->starBeamLevel = 0;
86
87 playerData->curPartner = PARTNER_NONE;
88
89 for (i = 0; i < ARRAY_COUNT(playerData->partners); i++) {
90 playerData->partners[i].enabled = FALSE;
91 playerData->partners[i].level = PARTNER_RANK_NORMAL;
92 playerData->partners[i].unk_02[0] = 0;
93 playerData->partners[i].unk_02[1] = 0;
94 playerData->partners[i].unk_02[2] = 0;
95 }
96
97 for (i = 0; i < ARRAY_COUNT(playerData->keyItems); i++) {
98 playerData->keyItems[i] = ITEM_NONE;
99 }
100
101 for (i = 0; i < ARRAY_COUNT(playerData->badges); i++) {
102 playerData->badges[i] = ITEM_NONE;
103 }
104
105 for (i = 0; i < ARRAY_COUNT(playerData->invItems); i++) {
106 playerData->invItems[i] = ITEM_NONE;
107 }
108
109 for (i = 0; i < ARRAY_COUNT(playerData->equippedBadges); i++) {
110 playerData->equippedBadges[i] = ITEM_NONE;
111 }
112
113 for (i = 0; i < ARRAY_COUNT(playerData->storedItems); i++) {
114 playerData->storedItems[i] = ITEM_NONE;
115 }
116
117 playerData->actionCommandAttempts = 0;
118 playerData->actionCommandSuccesses = 0;
119 playerData->hitsTaken = 0;
120 playerData->hitsBlocked = 0;
121 playerData->playerFirstStrikes = 0;
122 playerData->enemyFirstStrikes = 0;
123 playerData->powerBounces = 0;
124 playerData->battlesCount = 0;
125 playerData->battlesWon = 0;
126 playerData->fleeAttempts = 0;
127 playerData->battlesFled = 0;
128 playerData->trainingsDone = 0;
129 playerData->walkingStepsTaken = 0;
130 playerData->runningStepsTaken = 0;
131 playerData->idleFrameCounter = 0;
132 playerData->totalCoinsEarned = 0;
133 playerData->frameCounter = 0;
134 playerData->quizzesAnswered = 0;
135 playerData->quizzesCorrect = 0;
136
137 for (i = 0; i < ARRAY_COUNT(playerData->partnerUnlockedTime); i++) {
138 playerData->partnerUnlockedTime[i] = 0;
139 playerData->partnerUsedTime[i] = 0;
140 }
141
142 playerData->droTreeHintTime = 0;
143 playerData->starPiecesCollected = 0;
144 playerData->jumpGamePlays = 0;
145 playerData->jumpGameTotal = 0;
146 playerData->jumpGameRecord = 0;
147 playerData->smashGamePlays = 0;
148 playerData->smashGameTotal = 0;
149 playerData->smashGameRecord = 0;
150}
s16 equippedBadges[64]
s16 badges[128]
s16 storedItems[32]
PartnerData partners[12]
s32 partnerUsedTime[12]
u16 actionCommandSuccesses
u16 starPiecesCollected
s32 partnerUnlockedTime[12]
u16 actionCommandAttempts
s16 keyItems[32]
s16 invItems[10]
@ MERLEE_SPELL_NONE
Definition enums.h:1910
@ PARTNER_RANK_NORMAL
Definition enums.h:2018
@ PARTNER_NONE
Definition enums.h:2885
BSS b16 HidingCoinCounter
Definition inventory.c:21
BSS b16 ShowingCoinCounter
Definition inventory.c:20
#define ARRAY_COUNT(arr)
Definition macros.h:40
PlayerData gPlayerData
Definition 77480.c:40

Referenced by filemenu_yesno_handle_input(), load_demo_battle(), load_engine_data(), state_init_title_screen(), state_step_demo(), state_step_intro(), and state_step_startup().

◆ add_item()

s32 add_item ( s32 itemID)

Add itemID to player inventory and return inventory slot in which it was placed.

Returns
the index of the new item in the player's inventory, or -1 if there was no room

Definition at line 152 of file inventory.c.

152 {
153 s32 idx;
154
155 // handle key items
156 if (item_is_key(itemID)) {
157 for (idx = 0; idx < ARRAY_COUNT(gPlayerData.keyItems); idx++) {
158 if (gPlayerData.keyItems[idx] == ITEM_NONE) {
159 break;
160 }
161 }
162
163 if (idx >= ARRAY_COUNT(gPlayerData.keyItems)) {
164 return -1;
165 }
166
167 gPlayerData.keyItems[idx] = itemID;
168 return idx;
169 }
170
171 // handle badges
172 if (item_is_badge(itemID)) {
173 for (idx = 0; idx < ARRAY_COUNT(gPlayerData.badges); idx++) {
174 if (gPlayerData.badges[idx] == ITEM_NONE) {
175 break;
176 }
177 }
178
179 if (idx >= ARRAY_COUNT(gPlayerData.badges)) {
180 return -1;
181 }
182
183 gPlayerData.badges[idx] = itemID;
184 return idx;
185 }
186
187 // handle consumables
189
190 for (idx = 0; idx < ARRAY_COUNT(gPlayerData.invItems); idx++) {
191 if (gPlayerData.invItems[idx] == ITEM_NONE) {
192 break;
193 }
194 }
195
196 if (idx == ARRAY_COUNT(gPlayerData.invItems)) {
197 return -1;
198 }
199
200 gPlayerData.invItems[idx] = itemID;
201 return idx;
202}
void sort_consumables(void)
Bubbles up player inventory items such that all ITEM_NONE values are at the bottom.
Definition inventory.c:410

Referenced by update_item_entity_pickup().

◆ remove_item()

s32 remove_item ( s32 itemID)

Remove first instance of itemID found in player inventory.

Returns
the index of the removed item in the player's inventory, or -1 none was found

Definition at line 204 of file inventory.c.

204 {
205 s32 idx;
206
207 // handle key items
208 if (item_is_key(itemID)) {
209 for (idx = 0; idx < ARRAY_COUNT(gPlayerData.keyItems); idx++) {
210 if (gPlayerData.keyItems[idx] == itemID) {
211 break;
212 }
213 }
214
215 if (idx >= ARRAY_COUNT(gPlayerData.keyItems)) {
216 return -1;
217 }
218
219 gPlayerData.keyItems[idx] = ITEM_NONE;
220 return idx;
221 }
222
223 // handle badges
224 if (item_is_badge(itemID)) {
225 // unequip
226 for (idx = 0; idx < ARRAY_COUNT(gPlayerData.equippedBadges); idx++) {
227 if (gPlayerData.equippedBadges[idx] == itemID) {
228 gPlayerData.equippedBadges[idx] = ITEM_NONE;
229 }
230 }
231
232 for (idx = 0; idx < ARRAY_COUNT(gPlayerData.badges); idx++) {
233 if (gPlayerData.badges[idx] == itemID) {
234 break;
235 }
236 }
237
238 if (idx >= ARRAY_COUNT(gPlayerData.badges)) {
239 return -1;
240 }
241
242 gPlayerData.badges[idx] = ITEM_NONE;
243 return idx;
244 }
245
246 // handle consumables
247 for (idx = 0; idx < ARRAY_COUNT(gPlayerData.invItems); idx++) {
248 if (gPlayerData.invItems[idx] == itemID) {
249 break;
250 }
251 }
252
253 if (idx == ARRAY_COUNT(gPlayerData.invItems)) {
254 return -1;
255 }
256
257 gPlayerData.invItems[idx] = ITEM_NONE;
259 return idx;
260}

◆ find_item()

s32 find_item ( s32 itemID)

Search player inventory for itemID and return first matching array index.

Returns
the index of the given item in the player's inventory, or -1 if not found

Definition at line 264 of file inventory.c.

264 {
265 s32 idx;
266
267 // handle key items
268 if (item_is_key(itemID)) {
269 for (idx = 0; idx < ARRAY_COUNT(gPlayerData.keyItems); idx++) {
270 if (gPlayerData.keyItems[idx] == itemID) {
271 break;
272 }
273 }
274
275 if (idx >= ARRAY_COUNT(gPlayerData.keyItems)) {
276 return -1;
277 }
278 return idx;
279 }
280
281 // handle badges
282 if (item_is_badge(itemID)) {
283 for (idx = 0; idx < ARRAY_COUNT(gPlayerData.badges); idx++) {
284 if (gPlayerData.badges[idx] == itemID) {
285 break;
286 }
287 }
288
289 if (idx >= ARRAY_COUNT(gPlayerData.badges)) {
290 return -1;
291 }
292 return idx;
293 }
294
295 // handle consumables
296 for (idx = 0; idx < ARRAY_COUNT(gPlayerData.invItems); idx++) {
297 if (gPlayerData.invItems[idx] == itemID) {
298 break;
299 }
300 }
301
302 if (idx == ARRAY_COUNT(gPlayerData.invItems)) {
303 return -1;
304 }
305 return idx;
306}

Referenced by btl_state_update_defeat().

◆ count_item()

s32 count_item ( s32 itemID)

Search player inventory for itemID and count the number matches.

Returns
the number of items matching itemID

Definition at line 310 of file inventory.c.

310 {
311 s32 idx;
312 s32 sum = 0;
313
314 // handle key items
315 if (item_is_key(itemID)) {
316 for (idx = 0; idx < ARRAY_COUNT(gPlayerData.keyItems); idx++) {
317 if (gPlayerData.keyItems[idx] == itemID) {
318 sum++;
319 }
320 }
321 return sum;
322 }
323
324 // handle badges
325 if (item_is_badge(itemID)) {
326 for (idx = 0; idx < ARRAY_COUNT(gPlayerData.badges); idx++) {
327 if (gPlayerData.badges[idx] == itemID) {
328 sum++;
329 }
330 }
331 return sum;
332 }
333
334 // handle consumables
335 for (idx = 0; idx < ARRAY_COUNT(gPlayerData.invItems); idx++) {
336 if (gPlayerData.invItems[idx] == itemID) {
337 sum++;
338 }
339 }
340 return sum;
341}

◆ has_item()

b32 has_item ( s32 itemID)

Check whether player has itemID in their inventory.

Returns
boolean 'does player have item?'

Definition at line 343 of file inventory.c.

343 {
344 s32 idx;
345
346 // handle key items
347 if (item_is_key(itemID)) {
348 for (idx = 0; idx < ARRAY_COUNT(gPlayerData.keyItems); idx++) {
349 if (gPlayerData.keyItems[idx] == itemID) {
350 return TRUE;
351 }
352 }
353 return FALSE;
354 }
355
356 // handle badges
357 if (item_is_badge(itemID)) {
358 for (idx = 0; idx < ARRAY_COUNT(gPlayerData.badges); idx++) {
359 if (gPlayerData.badges[idx] == itemID) {
360 return TRUE;
361 }
362 }
363 return FALSE;
364 }
365
366 // handle consumables
367 for (idx = 0; idx < ARRAY_COUNT(gPlayerData.invItems); idx++) {
368 if (gPlayerData.invItems[idx] == itemID) {
369 return TRUE;
370 }
371 }
372 return FALSE;
373}

◆ store_item()

s32 store_item ( s32 itemID)

Add itemID to player storage and return slot in which it was placed.

Returns
the index of the new item in player storage, or -1 if there was no room

Definition at line 375 of file inventory.c.

375 {
376 s32 idx;
377
378 for (idx = 0; idx < ARRAY_COUNT(gPlayerData.storedItems); idx++) {
379 if (gPlayerData.storedItems[idx] == ITEM_NONE) {
380 break;
381 }
382 }
383
384 if (idx == ARRAY_COUNT(gPlayerData.storedItems)) {
385 return -1;
386 } else {
387 gPlayerData.storedItems[idx] = itemID;
388 }
389
390 return idx;
391}

◆ is_badge_equipped()

b32 is_badge_equipped ( s32 itemID)
Returns
whether the player has itemID as an equipped badge

Definition at line 393 of file inventory.c.

393 {
394 s32 idx;
395
396 if (!item_is_badge(itemID)) {
397 return FALSE;
398 }
399
400 for (idx = 0; idx < ARRAY_COUNT(gPlayerData.equippedBadges); idx++) {
401 if (gPlayerData.equippedBadges[idx] == itemID) {
402 return TRUE;
403 }
404 }
405
406 return FALSE;
407}

◆ sort_consumables()

void sort_consumables ( void )

Bubbles up player inventory items such that all ITEM_NONE values are at the bottom.

Definition at line 410 of file inventory.c.

410 {
411 s32 i, j;
412
413 for (i = ARRAY_COUNT(gPlayerData.invItems) - 2; i >= 0; i--) {
414 // leave ITEM_NONE at the end of the list alone
415 if (gPlayerData.invItems[i] == ITEM_NONE) {
416 continue;
417 }
418 // swap any other ITEM_NONE to the end of the list
419 for (j = ARRAY_COUNT(gPlayerData.invItems) - 1; i < j; j--) {
420 if (gPlayerData.invItems[j] == ITEM_NONE) {
422 gPlayerData.invItems[i] = ITEM_NONE;
423 break;
424 }
425 }
426 }
427}

Referenced by add_item(), remove_consumable(), remove_item(), and update_item_entity_pickup().

◆ get_consumables_count()

s32 get_consumables_count ( void )
Returns
the number of consumables in player inventory

Definition at line 429 of file inventory.c.

429 {
430 s32 idx;
431 s32 sum = 0;
432
433 for (idx = 0; idx < ARRAY_COUNT(gPlayerData.invItems); idx++) {
434 if (gPlayerData.invItems[idx] != ITEM_NONE) {
435 sum++;
436 }
437 }
438
439 return sum;
440}

Referenced by get_consumables_empty().

◆ get_consumables_empty()

s32 get_consumables_empty ( void )
Returns
the available room for consumables in player inventory

Definition at line 442 of file inventory.c.

442 {
444}
s32 get_consumables_count(void)
Definition inventory.c:429

◆ get_stored_count()

s32 get_stored_count ( void )
Returns
the number of consumables in player storage

Definition at line 446 of file inventory.c.

446 {
447 s32 idx;
448 s32 sum = 0;
449
450 for (idx = 0; idx < ARRAY_COUNT(gPlayerData.storedItems); idx++) {
451 if (gPlayerData.storedItems[idx] != ITEM_NONE) {
452 sum++;
453 }
454 }
455
456 return sum;
457}

Referenced by get_stored_empty().

◆ get_stored_empty()

s32 get_stored_empty ( void )
Returns
the available room in player storage

Definition at line 459 of file inventory.c.

459 {
461}
s32 get_stored_count(void)
Definition inventory.c:446

◆ enforce_hpfp_limits()

void enforce_hpfp_limits ( void )

Definition at line 463 of file inventory.c.

463 {
464 PlayerData* playerData = &gPlayerData;
465
466 playerData->curMaxHP = playerData->hardMaxHP + (is_ability_active(ABILITY_HP_PLUS) * 5);
467 if (playerData->curMaxHP > 75) {
468 playerData->curMaxHP = 75;
469 }
470 if (playerData->curHP > playerData->curMaxHP) {
471 playerData->curHP = playerData->curMaxHP;
472 }
473
474 playerData->curMaxFP = playerData->hardMaxFP + (is_ability_active(ABILITY_FP_PLUS) * 5);
475 if (playerData->curMaxFP > 75) {
476 playerData->curMaxFP = 75;
477 }
478 if (playerData->curFP > playerData->curMaxFP) {
479 playerData->curFP = playerData->curMaxFP;
480 }
481}
@ ABILITY_FP_PLUS
Definition enums.h:448
@ ABILITY_HP_PLUS
Definition enums.h:440
s32 is_ability_active(s32 ability)
Definition inventory.c:1736

Referenced by pause_badges_handle_input(), and pause_handle_input().

◆ initialize_status_bar()

void initialize_status_bar ( void )

Definition at line 483 of file inventory.c.

483 {
484 StatusBar* statusBar = &gStatusBar;
485 PlayerData* playerData = &gPlayerData;
486 HudElemID hid;
487
488 statusBar->drawPosX = 12;
489 ShowingCoinCounter = FALSE;
490 HidingCoinCounter = FALSE;
491 statusBar->drawPosY = FULLY_RETRACTED_Y;
492 statusBar->hidden = FALSE;
493 statusBar->showTimer = 210;
494 statusBar->unk_3B = FALSE;
495 statusBar->ignoreChanges = FALSE;
496 statusBar->openInputDisabled = FALSE;
497 statusBar->alwaysShown = FALSE;
498 statusBar->hpBlinking = BLINK_OFF;
499 statusBar->hpBlinkAnimTime = 0;
500 statusBar->hpBlinkTimeLeft = 0;
501 statusBar->fpBlinking = BLINK_OFF;
502 statusBar->fpBlinkAnimTime = 0;
503 statusBar->fpBlinkTimeLeft = 0;
504 statusBar->starPowerBlinking = BLINK_OFF;
505 statusBar->starPowerBlinkCounter = 0;
506 statusBar->coinsBlinking = BLINK_OFF;
507 statusBar->coinsBlinkAnimTime = 0;
508 statusBar->coinsBlinkTimeLeft = 0;
509 statusBar->disabled = 0;
510 statusBar->starpointsBlinking = BLINK_OFF;
511 statusBar->displayHP = playerData->curHP;
512 statusBar->displayFP = playerData->curFP;
513 statusBar->displayCoins = playerData->coins;
514 statusBar->displayStarpoints = playerData->starPoints;
515 statusBar->displayStarPower = playerData->starPower;
516 statusBar->starpointsBlinkAnimTime = 0;
517 statusBar->prevIgnoreChanges = -1;
518 statusBar->unk_3C = FALSE;
519 statusBar->shimmerState = STATUS_SHIMMER_OFF;
520 statusBar->shimmerTime = 0;
521 statusBar->shimmerLimit = 0;
522 statusBar->powBarsToBlink = 0;
523 statusBar->coinCounterHideDelay = 0;
524 statusBar->coinCountDisposeTime = 0;
525 statusBar->iconIndex12 = -1;
526
528
529#if VERSION_PAL
530 switch (gCurrentLanguage) {
531 case LANGUAGE_EN:
532 hid = statusBar->hpIconHIDs[0] = hud_element_create(&HES_StatusHP);
533 break;
534 case LANGUAGE_DE:
535 hid = statusBar->hpIconHIDs[0] = hud_element_create(&HES_StatusHP_de);
536 break;
537 case LANGUAGE_FR:
538 hid = statusBar->hpIconHIDs[0] = hud_element_create(&HES_StatusHP_fr);
539 break;
540 case LANGUAGE_ES:
541 hid = statusBar->hpIconHIDs[0] = hud_element_create(&HES_StatusHP_es);
542 break;
543 }
544
547#else
548 statusBar->hpIconHIDs[0] = hid = hud_element_create(&HES_StatusHP);
551#endif
552
553 statusBar->hpIconHIDs[1] = hid = hud_element_create(&HES_StatusHeart);
556
557#if VERSION_PAL
558 switch (gCurrentLanguage) {
559 case LANGUAGE_EN:
560 hid = statusBar->fpIconHIDs[0] = hud_element_create(&HES_StatusFP);
561 break;
562 case LANGUAGE_DE:
563 hid = statusBar->fpIconHIDs[0] = hud_element_create(&HES_StatusFP_de);
564 break;
565 case LANGUAGE_FR:
566 hid = statusBar->fpIconHIDs[0] = hud_element_create(&HES_StatusFP_fr);
567 break;
568 case LANGUAGE_ES:
569 hid = statusBar->fpIconHIDs[0] = hud_element_create(&HES_StatusFP_es);
570 break;
571 }
572
575#else
576 statusBar->fpIconHIDs[0] = hid = hud_element_create(&HES_StatusFP);
579#endif
580
581 statusBar->fpIconHIDs[1] = hid = hud_element_create(&HES_StatusFlower);
584
585 statusBar->coinIconHID = hid = hud_element_create(&HES_StatusCoin);
588
592
596
600
601 statusBar->hpTimesHID = hid = hud_element_create(&HES_StatusTimes);
604
605 statusBar->fpTimesHID = hid = hud_element_create(&HES_StatusTimes);
608
609 statusBar->spTimesHID = hid = hud_element_create(&HES_StatusTimes);
612
616
620
622}
HudElemID spShineHID
HudElemID spTimesHID
HudElemID hpTimesHID
s8 starPowerBlinkCounter
s8 starpointsBlinkAnimTime
s16 displayStarpoints
s8 coinCountDisposeTime
HudElemID hpIconHIDs[2]
HudElemID coinIconHID
s32 HudElemID
HudElemID coinTimesHID
HudElemID coinSparkleHID
HudElemID starIconHID
HudElemID iconIndex12
HudElemID fpIconHIDs[2]
s8 coinCounterHideDelay
HudElemID spIconHID
HudElemID fpTimesHID
@ LANGUAGE_DE
Definition enums.h:6400
@ LANGUAGE_ES
Definition enums.h:6402
@ LANGUAGE_EN
Definition enums.h:6399
@ LANGUAGE_FR
Definition enums.h:6401
void star_power_shimmer_init(void)
HudScript HES_StatusCoin
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.
@ HUD_ELEMENT_FLAG_DISABLED
Definition hud_element.h:72
@ HUD_ELEMENT_FLAG_80
Definition hud_element.h:78
@ HUD_ELEMENT_FLAG_FILTER_TEX
Definition hud_element.h:86
#define FULLY_RETRACTED_Y
Definition inventory.c:7
HudScript HES_StatusHP_de
HudScript HES_StatusHP
HudScript HES_StatusFP_de
HudScript HES_StatusStar1
HudScript HES_StatusFP
HudScript HES_StatusSPShine
void close_status_bar(void)
Definition inventory.c:1451
HudScript HES_StatusStarPoint
HudScript HES_StatusHP_es
HudScript HES_StatusCoinSparkle
HudScript HES_StatusFP_fr
HudScript HES_StatusTimes
HudScript HES_StatusHP_fr
HudScript HES_StatusFP_es
HudScript HES_StatusHeart
HudScript HES_StatusFlower
#define gCurrentLanguage
Definition variables.h:115

Referenced by load_demo_battle(), and load_map_by_IDs().

◆ status_bar_draw_number()

void status_bar_draw_number ( s32 iconID,
s32 startX,
s32 startY,
s32 value,
s32 numDigits )

Definition at line 624 of file inventory.c.

624 {
625 s8 digits[4];
626 s32 drawX, drawY;
627 b32 keepDrawing;
628 s32 digit;
629 s32 i;
630
632 drawX = startX + 8;
633 drawY = startY + 8;
634 hud_element_set_render_pos(iconID, drawX, drawY - 1);
636 hud_element_draw_next(iconID);
637
638 // Write each digit of the input number into the digits array
639 for (i = 0; i < numDigits; i++) {
640 digit = value % 10;
641 digits[(numDigits - i) - 1] = digit;
642 value /= 10;
643 }
644
645 drawX += 13;
646 keepDrawing = FALSE;
647
648 for (i = 0; i < numDigits; i++, drawX += 8) {
649 digit = digits[i];
650
651 // Once we have encountered our first non-zero digit, we need to keep drawing the remaining digits
652 if (digit != 0 || keepDrawing || (i == numDigits - 1)) {
653 keepDrawing = TRUE;
655 hud_element_set_render_pos(iconID, drawX, drawY);
657 hud_element_draw_next(iconID);
658 }
659 }
660}
s32 b32
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)
HudScript * TimesHudScript
Definition partners.c:146
HudScript * DigitHudScripts[10]
Definition partners.c:142

Referenced by update_status_bar().

◆ status_bar_draw_stat()

void status_bar_draw_stat ( s32 id,
s32 startX,
s32 startY,
s32 currentValue,
s32 maxValue )

Definition at line 662 of file inventory.c.

662 {
663 s8 digits[4];
664 b32 keepDrawing;
665 s32 digit;
666 s32 numDigits = 2;
667 s32 drawX;
668 s32 drawY;
669 s32 i = 0;
670 s32 baseX = startX + 8;
671 s32 baseY = startY + 8;
672
674 hud_element_set_render_pos(id, baseX + 14, baseY + 1);
677
678 for (i = 0; i < numDigits; i++) {
679 s32 num = currentValue % 10;
680 digits[numDigits - i - 1] = num;
681 currentValue /= 10;
682 }
683
684 drawX = baseX;
685 drawY = baseY;
686 keepDrawing = FALSE;
687 for (i = 0; i < numDigits; i++, drawX += 8) {
688 digit = digits[i];
689 if (digit != 0 || keepDrawing || i == numDigits - 1) {
690 keepDrawing = TRUE;
692 hud_element_set_render_pos(id, drawX, drawY);
695 }
696 }
697
698 for (i = 0; i < numDigits; i++) {
699 digits[numDigits - i - 1] = maxValue % 10;
700 maxValue /= 10;
701 }
702
703 drawX = baseX + 26;
704 drawY = baseY;
705 keepDrawing = FALSE;
706 for (i = 0; i < numDigits; i++, drawX += 8) {
707 digit = digits[i];
708 if (digit != 0 || keepDrawing || i == numDigits - 1) {
709 keepDrawing = TRUE;
711 hud_element_set_render_pos(id, drawX, drawY);
714 }
715 }
716}
HudScript * SlashHudScript
Definition partners.c:147

Referenced by update_status_bar().

◆ update_status_bar()

void update_status_bar ( void )

Definition at line 718 of file inventory.c.

718 {
719 StatusBar* statusBar = &gStatusBar;
720 PlayerData* playerData = &gPlayerData;
721 PlayerStatus* playerStatus = &gPlayerStatus;
722 s32 sp50;
723 b32 showAddedBar;
724 s32 i;
725 s32 x;
726 s32 y;
727 s32 showStat;
728 s32 id;
729 s32 limit;
730 s32 s7;
731 s32 s1;
732 s32 spBars;
733 s32 maxStarPower;
734
739 ) {
740 return;
741 }
742
743 if (gGameStatusPtr->context == CONTEXT_WORLD && playerData->coins != statusBar->displayCoins) {
745 }
746
747 // update coin counter (+1 coin per frame for each 5-coin delta)
748 i = playerData->coins - statusBar->displayCoins;
749 if (i < 0) {
750 i = (i - 4) / 5;
751 } else {
752 i = (i + 4) / 5;
753 }
754 statusBar->displayCoins += i;
755
756 // show the status bar if HP has changed
757 if (statusBar->displayHP != playerData->curHP && !statusBar->ignoreChanges) {
758 if (statusBar->hidden) {
759 statusBar->showTimer = 70;
760 statusBar->hidden = FALSE;
761 statusBar->unk_3B = FALSE;
762 } else {
763 statusBar->showTimer = 70;
764 }
765 }
766
767 // show the status bar if FP has changed
768 if (statusBar->displayFP != playerData->curFP && !statusBar->ignoreChanges) {
769 if (statusBar->hidden) {
770 statusBar->showTimer = 70;
771 statusBar->hidden = FALSE;
772 statusBar->unk_3B = FALSE;
773 } else {
774 statusBar->showTimer = 70;
775 }
776 }
777
778 // show the status bar if star power has changed
779 if (statusBar->displayStarPower != playerData->starPower && !statusBar->ignoreChanges) {
780 if (statusBar->hidden) {
781 statusBar->showTimer = 70;
782 statusBar->hidden = FALSE;
783 statusBar->unk_3B = FALSE;
784 } else {
785 statusBar->showTimer = 70;
786 }
787 }
788
789 // sync displayed HP toward true HP
790 if (statusBar->displayHP != playerData->curHP) {
791 if (gGameStatusPtr->context == CONTEXT_WORLD && playerData->curHP < statusBar->displayHP) {
793 }
794 if (statusBar->displayHP < playerData->curHP) {
795 if (statusBar->drawPosY >= FULLY_EXTENDED_Y) {
796 if (gGameStatusPtr->frameCounter % 4 == 0) {
797 statusBar->displayHP++;
799 }
800 } else if (gGameStatusPtr->frameCounter % 4 == 0) {
801 statusBar->displayHP++;
802 }
803 } else if (gGameStatusPtr->frameCounter % 4 == 0) {
804 statusBar->displayHP--;
805 }
806 }
807
808 // sync displayed FP toward true FP
809 if (statusBar->displayFP != playerData->curFP) {
810 if (gGameStatusPtr->context == CONTEXT_WORLD && playerData->curFP < statusBar->displayFP) {
812 }
813 if (statusBar->displayFP < playerData->curFP) {
814 if (statusBar->drawPosY >= FULLY_EXTENDED_Y) {
815 if (gGameStatusPtr->frameCounter % 4 == 0) {
816 statusBar->displayFP++;
818 }
819 } else if (gGameStatusPtr->frameCounter % 4 == 0) {
820 statusBar->displayFP++;
821 }
822 } else if (gGameStatusPtr->frameCounter % 4 == 0) {
823 statusBar->displayFP--;
824 }
825 }
826
827 // sync displayed star power toward true star power
828 if (statusBar->displayStarPower != playerData->starPower) {
829 if (statusBar->displayStarPower < playerData->starPower) {
830 statusBar->displayStarPower += 10;
831 if (statusBar->displayStarPower > playerData->starPower) {
832 statusBar->displayStarPower = playerData->starPower;
833 }
834 } else {
835 statusBar->displayStarPower -= 10;
836 if (statusBar->displayStarPower < playerData->starPower) {
837 statusBar->displayStarPower = playerData->starPower;
838 }
839 }
840 }
841
842 if (statusBar->disabled) {
843 return;
844 }
845
846 if (statusBar->alwaysShown && statusBar->hidden && playerStatus->inputDisabledCount == 0) {
847 statusBar->showTimer = 42;
848 statusBar->hidden = FALSE;
849 statusBar->unk_3B = FALSE;
850 }
851
852 switch (statusBar->hidden) {
853 case FALSE:
854 statusBar->drawPosY += 10;
855 if (statusBar->drawPosY >= FULLY_EXTENDED_Y) {
856 statusBar->drawPosY = FULLY_EXTENDED_Y;
857 if (statusBar->unk_3C && statusBar->unk_3B && playerStatus->actionState != ACTION_STATE_IDLE) {
858 statusBar->showTimer = 0;
859 }
860 if (statusBar->showTimer != 0) {
861 statusBar->showTimer--;
862 } else {
863 if (!statusBar->ignoreChanges) {
864 if (!statusBar->unk_3B || playerStatus->actionState != ACTION_STATE_IDLE) {
866 statusBar->hidden = TRUE;
867 statusBar->showTimer = 0;
868 statusBar->unk_3C = FALSE;
869 }
870 }
871 }
872 }
873 }
874 break;
875 case TRUE:
876 statusBar->drawPosY -= 5;
877 if (statusBar->drawPosY < FULLY_RETRACTED_Y) {
878 statusBar->drawPosY = FULLY_RETRACTED_Y;
879 if (!statusBar->ignoreChanges) {
880 if (playerStatus->actionState != ACTION_STATE_IDLE) {
881 statusBar->showTimer = 0;
882 } else if (playerStatus->flags & (PS_FLAG_NO_STATIC_COLLISION | PS_FLAG_INPUT_DISABLED)) {
883 statusBar->showTimer = 0;
884 } else {
885 statusBar->showTimer++;
886 }
887
888 if (statusBar->showTimer >= 240 && gGameStatusPtr->context == CONTEXT_WORLD) {
889 statusBar->showTimer = 210;
890 statusBar->hidden = FALSE;
891 statusBar->unk_3B = TRUE;
892 statusBar->unk_3C = TRUE;
893 }
894 }
895 }
896 break;
897 }
898
899 gDPSetScissor(gMainGfxPos++, G_SC_NON_INTERLACE, 12, 20, SCREEN_WIDTH - 12, SCREEN_HEIGHT - 20);
900 x = statusBar->drawPosX;
901 y = statusBar->drawPosY;
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);
904
905 if (statusBar->hpBlinkTimeLeft > 0) {
906 statusBar->hpBlinkTimeLeft--;
907 if (statusBar->hpBlinkTimeLeft == 0) {
909 }
910 }
911
912 showStat = TRUE;
913 if (statusBar->hpBlinking != BLINK_OFF) {
914 if (statusBar->hpBlinkAnimTime > 8) {
915 showStat = FALSE;
916 if (statusBar->hpBlinkAnimTime > 12) {
917 statusBar->hpBlinkAnimTime = 0;
918 showStat = TRUE;
919 }
920 }
921 statusBar->hpBlinkAnimTime++;
922 }
923
924 if (showStat) {
925 id = statusBar->hpIconHIDs[0];
926 x = statusBar->drawPosX + 22;
927 y = statusBar->drawPosY + 13;
930
931 id = statusBar->hpIconHIDs[1];
932 x = statusBar->drawPosX + 37;
933 y = statusBar->drawPosY + 13;
936
937 x = statusBar->drawPosX + 48;
938 y = statusBar->drawPosY + 8;
939 status_bar_draw_stat(statusBar->hpTimesHID, x, y, statusBar->displayHP, playerData->curMaxHP);
940 }
941
942 if (statusBar->fpBlinkTimeLeft > 0) {
943 statusBar->fpBlinkTimeLeft--;
944 if (statusBar->fpBlinkTimeLeft == 0) {
946 }
947 }
948
949 showStat = TRUE;
950 if (statusBar->fpBlinking != BLINK_OFF) {
951 if (statusBar->fpBlinkAnimTime > 8) {
952 showStat = FALSE;
953 if (statusBar->fpBlinkAnimTime > 12) {
954 statusBar->fpBlinkAnimTime = 0;
955 showStat = TRUE;
956 }
957 }
958 statusBar->fpBlinkAnimTime++;
959 }
960
961 if (showStat) {
962 id = statusBar->fpIconHIDs[0];
963 x = statusBar->drawPosX + 110;
964 y = statusBar->drawPosY + 13;
967
968 id = statusBar->fpIconHIDs[1];
969 x = statusBar->drawPosX + 125;
970 y = statusBar->drawPosY + 13;
973
974 x = statusBar->drawPosX + 136;
975 y = statusBar->drawPosY + 8;
976 status_bar_draw_stat(statusBar->fpTimesHID, x, y, statusBar->displayFP, playerData->curMaxFP);
977 }
978
979 if (playerData->level >= 27) {
980 playerData->starPoints = 0;
981 }
982
983 showStat = TRUE;
984 if (statusBar->starpointsBlinking != BLINK_OFF) {
985 if (statusBar->starpointsBlinkAnimTime > 8) {
986 if (statusBar->starpointsBlinkAnimTime <= 12) {
987 showStat = FALSE;
988 } else {
989 statusBar->starpointsBlinkAnimTime = 0;
990 }
991 }
992 statusBar->starpointsBlinkAnimTime++;
993 }
994
995 if (showStat) {
996 id = statusBar->spIconHID;
997 x = statusBar->drawPosX + 195;
998 y = statusBar->drawPosY + 14;
1001
1002 id = statusBar->spShineHID;
1003 x = statusBar->drawPosX + 195;
1004 y = statusBar->drawPosY + 9;
1007
1008 x = statusBar->drawPosX + 200;
1009 y = statusBar->drawPosY + 8;
1010 status_bar_draw_number(statusBar->spTimesHID, x, y, playerData->starPoints, 2);
1011 }
1012
1013 if (statusBar->coinsBlinkTimeLeft > 0) {
1014 statusBar->coinsBlinkTimeLeft--;
1015 if (statusBar->coinsBlinkTimeLeft == 0) {
1017 }
1018 }
1019
1020 showStat = TRUE;
1021 if (statusBar->coinsBlinking != BLINK_OFF) {
1022 if (statusBar->coinsBlinkAnimTime > 8) {
1023 showStat = FALSE;
1024 if (statusBar->coinsBlinkAnimTime > 12) {
1025 statusBar->coinsBlinkAnimTime = 0;
1026 showStat = TRUE;
1027 }
1028 }
1029 statusBar->coinsBlinkAnimTime++;
1030 }
1031
1032 if (showStat) {
1033 id = statusBar->coinIconHID;
1034 x = statusBar->drawPosX + 244;
1035 y = statusBar->drawPosY + 14;
1038
1039 id = statusBar->coinSparkleHID;
1040 x = statusBar->drawPosX + 244;
1041 y = statusBar->drawPosY + 14;
1044
1045 x = statusBar->drawPosX + 247;
1046 y = statusBar->drawPosY + 8;
1047 status_bar_draw_number(statusBar->coinTimesHID, x, y, statusBar->displayCoins, 3);
1048 }
1049
1050 id = statusBar->starIconHID;
1051 showStat = TRUE;
1052 if (statusBar->starPowerBlinking != BLINK_OFF) {
1053 if (statusBar->starPowerBlinkCounter > 5) {
1054 if (statusBar->starPowerBlinkCounter <= 8) {
1055 showStat = FALSE;
1056 } else {
1057 statusBar->starPowerBlinkCounter = 0;
1058 showStat = TRUE;
1059 }
1060 }
1061 statusBar->starPowerBlinkCounter++;
1062 }
1063
1064 x = statusBar->drawPosX + 20;
1065 y = statusBar->drawPosY + 28;
1066
1067 spBars = statusBar->displayStarPower / SP_PER_BAR;
1068 limit = statusBar->displayStarPower % SP_PER_BAR;
1069 limit /= 32;
1070 limit += spBars * 8;
1071 if (statusBar->shimmerState == STATUS_SHIMMER_BEGIN) {
1072 spBars = playerData->starPower / SP_PER_BAR;
1073 limit = playerData->starPower % SP_PER_BAR;
1074 limit = limit / 32;
1075 limit += spBars * 8;
1076 star_power_shimmer_start(0, x + limit * 25 / 10, y, 1.0f);
1077 statusBar->shimmerState = STATUS_SHIMMER_ON;
1078 }
1079
1080 showAddedBar = FALSE;
1081 if (statusBar->shimmerState != STATUS_SHIMMER_OFF) {
1082 if (statusBar->shimmerTime != 0) {
1083 statusBar->shimmerTime--;
1084 } else {
1085 statusBar->shimmerState = STATUS_SHIMMER_OFF;
1086 }
1087 // creates a stipple pattern repeating 5x zero, 5x one, ...
1088 if ((statusBar->shimmerTime / 5) & 1) {
1089 showAddedBar = TRUE;
1090 }
1091 maxStarPower = statusBar->shimmerLimit; // required to match
1092 // added together, these just equal shimmerLimit
1093 s7 = statusBar->shimmerLimit % 8;
1094 s7 += (statusBar->shimmerLimit / 8) * 8;
1095 } else {
1096 s7 = limit;
1097 }
1098
1099 i = 0;
1100 sp50 = 0;
1101 s1 = 0;
1102
1103 if (statusBar->starPowerBlinking != BLINK_OFF) {
1104 if (!showStat) {
1105 s32 limit = statusBar->powBarsToBlink * 8;
1106 if (sp50 < limit) {
1107 while (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; }
1115 i++;
1116 s1 = 0;
1117 sp50++;
1118 if (i >= limit) {
1119 break;
1120 }
1121 }
1122 }
1123 }
1124 }
1125
1126 while (TRUE) {
1127 if (i >= limit || i >= s7 && !showAddedBar) {
1128 break;
1129 }
1130 i++;
1131
1133 hud_element_set_render_pos(id, x + sp50 * 20 + StatusBarSPIncrementOffsets[0], y - 2);
1135
1136 s1++;
1137 if (i >= limit || i >= s7 && !showAddedBar) {
1138 break;
1139 }
1140 i++;
1142
1143 hud_element_set_render_pos(id, x + sp50 * 20 + StatusBarSPIncrementOffsets[1], y - 2);
1145 s1++;
1146 if (i >= limit || i >= s7 && !showAddedBar) {
1147 break;
1148 }
1149 i++;
1151 hud_element_set_render_pos(id, x + sp50 * 20 + StatusBarSPIncrementOffsets[2], y - 2);
1153 s1++;
1154 if (i >= limit || i >= s7 && !showAddedBar) {
1155 break;
1156 }
1157 i++;
1159 hud_element_set_render_pos(id, x + sp50 * 20 + StatusBarSPIncrementOffsets[3], y - 2);
1161 s1++;
1162 if (i >= limit || i >= s7 && !showAddedBar) {
1163 break;
1164 }
1165 i++;
1167 hud_element_set_render_pos(id, x + sp50 * 20 + StatusBarSPIncrementOffsets[4], y - 2);
1169 s1++;
1170
1171 if (i >= limit || i >= s7 && !showAddedBar) {
1172 break;
1173 }
1174 i++;
1176 hud_element_set_render_pos(id, x + sp50 * 20 + StatusBarSPIncrementOffsets[5], y - 2);
1178 s1++;
1179
1180 if (i >= limit || i >= s7 && !showAddedBar) {
1181 break;
1182 }
1183 i++;
1185 hud_element_set_render_pos(id, x + sp50 * 20 + StatusBarSPIncrementOffsets[6], y - 2);
1187 s1++;
1188
1189 if (i >= limit || i >= s7 && !showAddedBar) {
1190 break;
1191 }
1192 i++;
1194 hud_element_set_render_pos(id, x + 12 + sp50 * 20, y);
1196
1197 s1 = 0;
1198 sp50++;
1199 if (i >= limit || i >= s7 && !showAddedBar) {
1200 break;
1201 }
1202 }
1203
1204 maxStarPower = playerData->maxStarPower;
1205 limit = maxStarPower * 8;
1206 while (TRUE) {
1207 if (i >= limit) {
1208 break;
1209 }
1210 if (s1 == 0) {
1211 i++;
1213 hud_element_set_render_pos(id, x + sp50 * 20 + StatusBarSPIncrementOffsets[s1], y - 2);
1215 if (i >= limit) {
1216 break;
1217 }
1218 s1 = 1;
1219 }
1220 if (s1 == 1) {
1221 i++;
1223 hud_element_set_render_pos(id, x + sp50 * 20 + StatusBarSPIncrementOffsets[s1], y - 2);
1225 if (i >= limit) {
1226 break;
1227 }
1228 s1 = 2;
1229 }
1230 if (s1 == 2) {
1231 i++;
1233 hud_element_set_render_pos(id, x + sp50 * 20 + StatusBarSPIncrementOffsets[s1], y - 2);
1235 if (i >= limit) {
1236 break;
1237 }
1238 s1 = 3;
1239 }
1240 if (s1 == 3) {
1241 i++;
1243 hud_element_set_render_pos(id, x + sp50 * 20 + StatusBarSPIncrementOffsets[s1], y - 2);
1245 if (i >= limit) {
1246 break;
1247 }
1248 s1 = 4;
1249 }
1250 if (s1 == 4) {
1251 i++;
1253 hud_element_set_render_pos(id, x + sp50 * 20 + StatusBarSPIncrementOffsets[s1], y - 2);
1255 if (i >= limit) {
1256 break;
1257 }
1258 s1 = 5;
1259 }
1260 if (s1 == 5) {
1261 i++;
1263 hud_element_set_render_pos(id, x + sp50 * 20 + StatusBarSPIncrementOffsets[s1], y - 2);
1265 if (i >= limit) {
1266 break;
1267 }
1268 s1 = 6;
1269 }
1270 if (s1 == 6) {
1271 i++;
1273 hud_element_set_render_pos(id, x + sp50 * 20 + StatusBarSPIncrementOffsets[s1], y - 2);
1275 if (i >= limit) {
1276 break;
1277 }
1278 s1 = 7;
1279 }
1280
1281 if (s1 == 7) {
1282 i++;
1284 hud_element_set_render_pos(id, x + 12 + sp50 * 20, y);
1286 if (i >= limit) {
1287 break;
1288 }
1289 }
1290 s1 = 0;
1291 sp50++;
1292 }
1293
1296}
#define draw_box
@ WINDOW_STYLE_5
Definition enums.h:6374
@ WINDOW_STYLE_6
Definition enums.h:6375
@ PEACH_FLAG_IS_PEACH
Definition enums.h:2488
@ STORY_EPILOGUE
Definition enums.h:234
@ PS_FLAG_NO_STATIC_COLLISION
Definition enums.h:3051
@ PS_FLAG_INPUT_DISABLED
Definition enums.h:3052
@ INTRO_PART_0
Definition enums.h:3551
@ SOUND_FLOWER_PICKUP
Definition enums.h:927
@ SOUND_HEART_PICKUP
Definition enums.h:924
@ ACTION_STATE_IDLE
Definition enums.h:2426
@ DEMO_STATE_NONE
Definition enums.h:3534
s32 evt_get_variable(Evt *script, Bytecode var)
Definition evt.c:1689
void star_power_shimmer_update(void)
void star_power_shimmer_start(s32, f32, f32, f32)
void star_power_shimmer_draw(void)
void status_bar_start_blinking_hp(void)
Definition inventory.c:1541
void status_bar_start_blinking_fp(void)
Definition inventory.c:1564
void status_bar_stop_blinking_hp(void)
Definition inventory.c:1554
HudScript * SPStarHudScripts[]
Definition partners.c:152
HudScript HES_StatusStarEmpty
HudScript * SPIncrementHudScripts[]
Definition partners.c:148
s32 StatusBarSPIncrementOffsets[]
Definition partners.c:156
void status_bar_stop_blinking_fp(void)
Definition inventory.c:1577
void status_bar_draw_number(s32 iconID, s32 startX, s32 startY, s32 value, s32 numDigits)
Definition inventory.c:624
void status_bar_stop_blinking_coins(void)
Definition inventory.c:1599
void status_bar_draw_stat(s32 id, s32 startX, s32 startY, s32 currentValue, s32 maxValue)
Definition inventory.c:662
HudScript HES_StatusSPEmptyIncrement
void status_bar_start_blinking_coins(void)
Definition inventory.c:1586
#define FULLY_EXTENDED_Y
Definition inventory.c:6
void sfx_play_sound(s32 soundID)
Definition sfx.c:517
@ GB_StoryProgress
#define SCREEN_WIDTH
Definition macros.h:109
#define SCREEN_HEIGHT
Definition macros.h:110
#define SP_PER_BAR
Definition macros.h:102
Gfx * gMainGfxPos
Definition cam_main.c:15
PlayerStatus gPlayerStatus
Definition 77480.c:39

Referenced by draw_status_ui().

◆ coin_counter_draw_content()

void coin_counter_draw_content ( UNK_TYPE arg0,
s32 posX,
s32 posY )

Definition at line 1298 of file inventory.c.

1298 {
1299 StatusBar* statusBar = &gStatusBar;
1300 s32 iconIndex;
1301
1302 if ((gPlayerData.coins != statusBar->displayCoins) && ((gGameStatusPtr->frameCounter % 3) == 0)) {
1304 }
1305
1306 iconIndex = statusBar->coinCountTimesHID;
1307 hud_element_set_render_pos(iconIndex, posX + 27, posY + 11);
1308 hud_element_draw_clipped(iconIndex);
1309
1310 iconIndex = statusBar->coinCountIconHID;
1311 hud_element_set_render_pos(iconIndex, posX + 15, posY + 11);
1312 hud_element_draw_clipped(iconIndex);
1313
1315}
HudElemID coinCountTimesHID
HudElemID coinCountIconHID
@ DRAW_NUMBER_STYLE_ALIGN_RIGHT
drawn to the left of posX
Definition enums.h:5392
@ DRAW_NUMBER_STYLE_MONOSPACE
Definition enums.h:5393
@ MSG_PAL_STANDARD
Definition enums.h:5414
@ DRAW_NUMBER_CHARSET_THIN
Definition enums.h:5400
@ SOUND_COIN_PICKUP
Definition enums.h:922
void draw_number(s32 value, s32 x, s32 y, s32 variableWidthChars, s32 palette, s32 opacity, u16 style)
Definition msg.c:2223
void hud_element_draw_clipped(s32 id)

Referenced by show_coin_counter().

◆ update_coin_counter()

void update_coin_counter ( void )

Definition at line 1317 of file inventory.c.

1317 {
1318 StatusBar* statusBar = &gStatusBar;
1319
1320 if (statusBar->coinCountDisposeTime != 0) {
1321 statusBar->coinCountDisposeTime--;
1322 if ((statusBar->coinCountDisposeTime == 0) && (statusBar->iconIndex12 > -1)) {
1323 hud_element_free(statusBar->iconIndex12);
1324 hud_element_free(statusBar->iconIndex13);
1325 statusBar->iconIndex12 = -1;
1326 }
1327 HidingCoinCounter = FALSE;
1328 }
1329
1330 if (statusBar->coinCounterHideDelay == 0) {
1331 return;
1332 }
1333
1334 if ((statusBar->displayCoins == gPlayerData.coins) && (statusBar->coinCounterHideDelay > 30)) {
1335 statusBar->coinCounterHideDelay = 30;
1336 }
1337
1338 if ((statusBar->displayCoins == gPlayerData.coins) || (statusBar->coinCounterHideDelay <= 30)) {
1339 statusBar->coinCounterHideDelay--;
1340 if (statusBar->coinCounterHideDelay != 0) {
1341 return;
1342 }
1343
1345 statusBar->coinCountDisposeTime = 15;
1346 ShowingCoinCounter = FALSE;
1347 HidingCoinCounter = TRUE;
1348 statusBar->iconIndex12 = statusBar->coinCountTimesHID;
1349 statusBar->iconIndex13 = statusBar->coinCountIconHID;
1350 statusBar->displayCoins = gPlayerData.coins;
1351 if (statusBar->prevIgnoreChanges > -1) {
1352 statusBar->ignoreChanges = statusBar->prevIgnoreChanges;
1353 statusBar->prevIgnoreChanges = -1;
1354 }
1355 }
1356}
HudElemID iconIndex13
@ WIN_CURRENCY_COUNTER
Definition enums.h:5260
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)
Definition windows.c:184
void set_window_update(s32 panelID, s32)
Definition windows.c:434
void hud_element_free(s32 id)

Referenced by draw_status_ui().

◆ show_coin_counter()

void show_coin_counter ( void )

Definition at line 1358 of file inventory.c.

1358 {
1359 StatusBar* statusBar = &gStatusBar;
1360 HudElemID hid;
1361
1362 // if a coin counter is already visible, dispose of previous counter and reset state
1365 if (statusBar->iconIndex12 > -1) {
1368 statusBar->iconIndex12 = -1;
1369 }
1370 statusBar->coinCounterHideDelay = 0;
1371 statusBar->coinCountDisposeTime = 0;
1372 ShowingCoinCounter = FALSE;
1373 HidingCoinCounter = FALSE;
1374 }
1375
1376 if (statusBar->coinCounterHideDelay == 0) {
1381 hud_element_set_tint(hid, 255, 255, 255);
1384 hud_element_set_tint(hid, 255, 255, 255);
1385 statusBar->coinCounterHideDelay = 0;
1386
1387 if (statusBar->prevIgnoreChanges < 0) {
1388 statusBar->prevIgnoreChanges = statusBar->ignoreChanges;
1389 }
1390
1391 statusBar->ignoreChanges = TRUE;
1392 ShowingCoinCounter = TRUE;
1393 }
1394}
@ WINDOW_PRIORITY_21
Definition enums.h:3187
@ WINDOW_UPDATE_HIDE
Definition enums.h:5311
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)
Definition windows.c:161
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
HudScript HES_MenuTimes
void hud_element_set_tint(s32 id, s32 r, s32 g, s32 b)
void coin_counter_draw_content(UNK_TYPE arg0, s32 posX, s32 posY)
Definition inventory.c:1298

◆ hide_coin_counter()

void hide_coin_counter ( void )

Definition at line 1396 of file inventory.c.

1396 {
1397 StatusBar* statusBar = &gStatusBar;
1398
1399 if (ShowingCoinCounter && (statusBar->coinCounterHideDelay == 0)) {
1400 statusBar->coinCounterHideDelay = 60;
1401 }
1402}

◆ hide_coin_counter_immediately()

void hide_coin_counter_immediately ( void )

Definition at line 1404 of file inventory.c.

1404 {
1405 StatusBar* statusBar = &gStatusBar;
1406
1407 if (ShowingCoinCounter && (statusBar->coinCounterHideDelay == 0)) {
1408 statusBar->coinCounterHideDelay = 1;
1409 }
1410}

◆ draw_status_ui()

void draw_status_ui ( void )

Definition at line 1422 of file inventory.c.

1422 {
1425
1426 #if DX_DEBUG_MENU
1427 dx_debug_menu_main();
1428 #endif
1429}
void update_coin_counter(void)
Definition inventory.c:1317
void update_status_bar(void)
Definition inventory.c:718

Referenced by btl_draw_ui(), state_drawUI_change_map(), state_drawUI_enter_world(), and state_drawUI_world().

◆ open_status_bar_slowly()

void open_status_bar_slowly ( void )

Definition at line 1431 of file inventory.c.

1431 {
1432 StatusBar* statusBar = &gStatusBar;
1433
1434 if (statusBar->hidden) {
1435 statusBar->showTimer = 210;
1436 statusBar->hidden = FALSE;
1437 statusBar->unk_3B = TRUE;
1438 }
1439}

Referenced by action_update_hit_fire(), action_update_hit_lava(), and check_input_status_bar().

◆ open_status_bar_quickly()

void open_status_bar_quickly ( void )

Definition at line 1441 of file inventory.c.

1441 {
1442 StatusBar* statusBar = &gStatusBar;
1443
1444 if (statusBar->hidden) {
1445 statusBar->showTimer = 105;
1446 statusBar->hidden = FALSE;
1447 statusBar->unk_3B = TRUE;
1448 }
1449}

Referenced by create_standard_popup_menu(), and shop_open_item_select_popup().

◆ close_status_bar()

void close_status_bar ( void )

Definition at line 1451 of file inventory.c.

1451 {
1452 StatusBar* statusBar = &gStatusBar;
1453
1454 if (statusBar->hidden != TRUE) {
1455 statusBar->hidden = TRUE;
1456 statusBar->showTimer = 0;
1457 statusBar->unk_3B = TRUE;
1458 }
1459}

Referenced by check_conversation_trigger(), check_input_status_bar(), destroy_popup_menu(), initialize_status_bar(), and shop_close_item_select_popup().

◆ setup_status_bar_for_world()

void setup_status_bar_for_world ( void )

Definition at line 1461 of file inventory.c.

1461 {
1462 StatusBar* statusBar = &gStatusBar;
1463
1464 statusBar->drawPosY = FULLY_RETRACTED_Y;
1465 statusBar->ignoreChanges = FALSE;
1466 statusBar->showTimer = 0;
1467 statusBar->hidden = TRUE;
1468 statusBar->unk_3B = FALSE;
1469 statusBar->unk_3C = FALSE;
1470}

Referenced by update_encounters_post_battle().

◆ setup_status_bar_for_battle()

void setup_status_bar_for_battle ( void )

Definition at line 1472 of file inventory.c.

1472 {
1473 StatusBar* statusBar = &gStatusBar;
1474
1475 statusBar->drawPosY = 0;
1476 statusBar->ignoreChanges = FALSE;
1477 statusBar->showTimer = 210;
1478 statusBar->hidden = FALSE;
1479 statusBar->unk_3B = TRUE;
1480 statusBar->unk_3C = FALSE;
1481}

Referenced by btl_state_update_normal_start().

◆ enable_status_bar_input()

void enable_status_bar_input ( void )

Definition at line 1483 of file inventory.c.

1483 {
1485}

◆ disable_status_bar_input()

void disable_status_bar_input ( void )

Definition at line 1487 of file inventory.c.

1487 {
1489}

◆ can_control_status_bar()

b32 can_control_status_bar ( void )

Definition at line 1492 of file inventory.c.

1492 {
1494 return FALSE;
1495 }
1496
1497 if (gStatusBar.alwaysShown) {
1498 return FALSE;
1499 }
1500
1502 return FALSE;
1503 }
1504
1505 return TRUE;
1506}

Referenced by check_input_status_bar().

◆ status_bar_ignore_changes()

void status_bar_ignore_changes ( void )

Definition at line 1508 of file inventory.c.

1508 {
1510}

Referenced by create_standard_popup_menu(), and shop_open_item_select_popup().

◆ status_bar_show_and_ignore_changes()

void status_bar_show_and_ignore_changes ( void )

Definition at line 1512 of file inventory.c.

1512 {
1513 StatusBar* statusBar = &gStatusBar;
1514
1515 statusBar->ignoreChanges = TRUE;
1516 statusBar->drawPosY = FULLY_EXTENDED_Y;
1517}

◆ status_bar_respond_to_changes()

void status_bar_respond_to_changes ( void )

Definition at line 1519 of file inventory.c.

1519 {
1520 gStatusBar.ignoreChanges = FALSE;
1521}

Referenced by destroy_popup_menu(), shop_close_item_select_popup(), and state_step_unpause().

◆ status_bar_is_ignoring_changes()

s32 status_bar_is_ignoring_changes ( void )

Definition at line 1523 of file inventory.c.

1523 {
1524 StatusBar* statusBar = &gStatusBar;
1525
1526 return statusBar->alwaysShown + statusBar->ignoreChanges;
1527}

Referenced by create_battle_popup_menu(), create_shop_popup_menu(), and create_standard_popup_menu().

◆ status_bar_always_show_on()

void status_bar_always_show_on ( void )

Definition at line 1529 of file inventory.c.

1529 {
1530 gStatusBar.alwaysShown = TRUE;
1531}

Referenced by shop_open_item_select_popup().

◆ status_bar_always_show_off()

void status_bar_always_show_off ( void )

Definition at line 1533 of file inventory.c.

1533 {
1534 gStatusBar.alwaysShown = FALSE;
1535}

Referenced by draw_shop_items(), and shop_close_item_select_popup().

◆ is_status_bar_visible()

s32 is_status_bar_visible ( void )

Definition at line 1537 of file inventory.c.

1537 {
1538 return !gStatusBar.hidden;
1539}

Referenced by check_input_status_bar().

◆ status_bar_start_blinking_hp()

void status_bar_start_blinking_hp ( void )

Definition at line 1541 of file inventory.c.

1541 {
1542 StatusBar* statusBar = &gStatusBar;
1543
1545 statusBar->hpBlinkTimeLeft = 120;
1546 }
1547
1548 if (statusBar->hpBlinking != BLINK_ON) {
1549 statusBar->hpBlinking = BLINK_ON;
1550 statusBar->hpBlinkAnimTime = 0;
1551 }
1552}

Referenced by update_status_bar().

◆ status_bar_stop_blinking_hp()

void status_bar_stop_blinking_hp ( void )

Definition at line 1554 of file inventory.c.

1554 {
1555 StatusBar* statusBar = &gStatusBar;
1556
1557 if (statusBar->hpBlinking != BLINK_OFF) {
1558 statusBar->hpBlinking = BLINK_OFF;
1559 statusBar->hpBlinkAnimTime = 0;
1560 statusBar->hpBlinkTimeLeft = 0;
1561 }
1562}

Referenced by update_status_bar().

◆ status_bar_start_blinking_fp()

void status_bar_start_blinking_fp ( void )

Definition at line 1564 of file inventory.c.

1564 {
1565 StatusBar* statusBar = &gStatusBar;
1566
1568 statusBar->fpBlinkTimeLeft = 120;
1569 }
1570
1571 if (statusBar->fpBlinking != BLINK_ON) {
1572 statusBar->fpBlinking = BLINK_ON;
1573 statusBar->fpBlinkAnimTime = 0;
1574 }
1575}

Referenced by btl_menu_moves_draw_content(), and update_status_bar().

◆ status_bar_stop_blinking_fp()

void status_bar_stop_blinking_fp ( void )

Definition at line 1577 of file inventory.c.

1577 {
1578 StatusBar* statusBar = &gStatusBar;
1579
1580 if (statusBar->fpBlinking != BLINK_OFF) {
1581 statusBar->fpBlinking = BLINK_OFF;
1582 statusBar->fpBlinkAnimTime = 0;
1583 }
1584}

Referenced by btl_menu_moves_draw_content(), btl_submenu_moves_update(), and update_status_bar().

◆ status_bar_start_blinking_sp()

void status_bar_start_blinking_sp ( void )

Definition at line 1609 of file inventory.c.

1609 {
1610 PlayerData* playerData = &gPlayerData;
1611 StatusBar* statusBar = &gStatusBar;
1612
1613 statusBar->powBarsToBlink = playerData->maxStarPower;
1614 if (statusBar->starPowerBlinking != BLINK_ON) {
1615 statusBar->starPowerBlinking = BLINK_ON;
1616 statusBar->starPowerBlinkCounter = 0;
1617 }
1618}

◆ status_bar_stop_blinking_sp()

void status_bar_stop_blinking_sp ( void )

Definition at line 1620 of file inventory.c.

1620 {
1621 StatusBar* statusBar = &gStatusBar;
1622
1623 if (statusBar->starPowerBlinking != BLINK_OFF) {
1624 statusBar->starPowerBlinking = BLINK_OFF;
1625 statusBar->starPowerBlinkCounter = 0;
1626 }
1627}

Referenced by btl_menu_moves_draw_content(), and btl_submenu_moves_update().

◆ status_bar_start_blinking_sp_bars()

void status_bar_start_blinking_sp_bars ( s32 numBarsToBlink)

Definition at line 1629 of file inventory.c.

1629 {
1630 StatusBar* statusBar = &gStatusBar;
1631
1632 statusBar->powBarsToBlink = numBarsToBlink;
1633 if (statusBar->starPowerBlinking != BLINK_ON) {
1634 statusBar->starPowerBlinking = BLINK_ON;
1635 statusBar->starPowerBlinkCounter = 0;
1636 }
1637}

Referenced by btl_menu_moves_draw_content().

◆ status_bar_start_blinking_starpoints()

void status_bar_start_blinking_starpoints ( void )

Definition at line 1639 of file inventory.c.

1639 {
1640 StatusBar* statusBar = &gStatusBar;
1641
1642 if (statusBar->starpointsBlinking != BLINK_ON) {
1643 statusBar->starpointsBlinking = BLINK_ON;
1644 statusBar->starpointsBlinkAnimTime = 0;
1645 }
1646}

Referenced by btl_state_update_run_away().

◆ status_bar_stop_blinking_starpoints()

void status_bar_stop_blinking_starpoints ( void )

Definition at line 1648 of file inventory.c.

1648 {
1649 StatusBar* statusBar = &gStatusBar;
1650
1651 if (statusBar->starpointsBlinking != BLINK_OFF) {
1652 statusBar->starpointsBlinking = BLINK_OFF;
1653 statusBar->starpointsBlinkAnimTime = 0;
1654 }
1655}

Referenced by btl_state_update_run_away().

◆ decrement_status_bar_disabled()

void decrement_status_bar_disabled ( void )

◆ increment_status_bar_disabled()

void increment_status_bar_disabled ( void )

◆ sync_status_bar()

void sync_status_bar ( void )

Definition at line 1671 of file inventory.c.

1671 {
1672 PlayerData* playerData = &gPlayerData;
1673 StatusBar* statusBar = &gStatusBar;
1674
1675 statusBar->displayHP = playerData->curHP;
1676 statusBar->displayFP = playerData->curFP;
1677 statusBar->displayStarPower = playerData->starPower;
1678 statusBar->displayCoins = playerData->coins;
1679 statusBar->displayStarpoints = playerData->starPoints;
1680}

◆ reset_status_bar()

void reset_status_bar ( void )

Definition at line 1682 of file inventory.c.

1682 {
1683 PlayerData* playerData = &gPlayerData;
1684 StatusBar* statusBar = &gStatusBar;
1685 s32 i;
1686
1687 statusBar->drawPosX = 12;
1688 statusBar->drawPosY = FULLY_RETRACTED_Y;
1689 statusBar->hidden = 0;
1690 statusBar->showTimer = 210;
1691 statusBar->unk_3B = FALSE;
1692 statusBar->ignoreChanges = FALSE;
1693 statusBar->openInputDisabled = FALSE;
1694 statusBar->alwaysShown = FALSE;
1695 statusBar->hpBlinking = BLINK_OFF;
1696 statusBar->hpBlinkAnimTime = 0;
1697 statusBar->hpBlinkTimeLeft = 0;
1698 statusBar->fpBlinking = BLINK_OFF;
1699 statusBar->fpBlinkAnimTime = 0;
1700 statusBar->fpBlinkTimeLeft = 0;
1701 statusBar->coinsBlinking = BLINK_OFF;
1702 statusBar->coinsBlinkAnimTime = 0;
1703 statusBar->coinsBlinkTimeLeft = 0;
1704 statusBar->starPowerBlinking = BLINK_OFF;
1705 statusBar->starPowerBlinkCounter = 0;
1706 statusBar->disabled = 0;
1707 statusBar->starpointsBlinking = BLINK_OFF;
1708 statusBar->starpointsBlinkAnimTime = 0;
1709 statusBar->prevIgnoreChanges = -1;
1710 statusBar->displayHP = playerData->curHP;
1711 statusBar->displayFP = playerData->curFP;
1712 statusBar->displayCoins = playerData->coins;
1713 statusBar->displayStarpoints = playerData->starPoints;
1714 statusBar->displayStarPower = playerData->starPower;
1715 statusBar->unk_3C = FALSE;
1716
1717 for (i = 0; i < ARRAY_COUNT(statusBar->hpIconHIDs); i++) {
1718 copy_world_hud_element_ref_to_battle(statusBar->hpIconHIDs[i], statusBar->hpIconHIDs[i]);
1719 }
1720
1721 for (i = 0; i < ARRAY_COUNT(statusBar->fpIconHIDs); i++) {
1722 copy_world_hud_element_ref_to_battle(statusBar->fpIconHIDs[i], statusBar->fpIconHIDs[i]);
1723 }
1724
1734}
void copy_world_hud_element_ref_to_battle(s32 worldID, s32 battleID)

Referenced by state_step_battle(), and state_step_pause().

◆ is_ability_active()

s32 is_ability_active ( s32 ability)

Definition at line 1736 of file inventory.c.

1736 {
1737 PlayerData* playerData = &gPlayerData;
1738 s32 attackFXArray[6];
1739 s32 attackFXIndex;
1740 s32 badgeItemID;
1741 s32 badgeMoveID;
1742 s32 ret;
1743 s32 i;
1744
1745 ret = 0;
1746 attackFXIndex = 0;
1747
1748 for (i = 0; i < ARRAY_COUNT(attackFXArray); i++) {
1749 attackFXArray[i] = 0;
1750 }
1751
1753 return 0;
1754 }
1755
1756 for (i = 0; i < ARRAY_COUNT(playerData->equippedBadges); i++) {
1757 badgeItemID = playerData->equippedBadges[i];
1758 if (badgeItemID == ITEM_NONE)
1759 continue;
1760
1761 badgeMoveID = gItemTable[badgeItemID].moveID;
1762
1763 switch (ability) {
1765 if (badgeMoveID == MOVE_DODGE_MASTER) {
1766 ret++;
1767 }
1768 break;
1770 if (badgeMoveID == MOVE_SPIKE_SHIELD) {
1771 ret++;
1772 }
1773 break;
1775 if (badgeMoveID == MOVE_FIRST_ATTACK) {
1776 ret++;
1777 }
1778 break;
1779 case ABILITY_HP_PLUS:
1780 if (badgeMoveID == MOVE_HP_PLUS) {
1781 ret++;
1782 }
1783 break;
1784 case ABILITY_DOUBLE_DIP:
1785 if (badgeMoveID == MOVE_DOUBLE_DIP) {
1786 ret++;
1787 }
1788 break;
1790 if (badgeMoveID == MOVE_MYSTERY_SCROLL) {
1791 ret++;
1792 }
1793 if (playerData->hasActionCommands) {
1794 ret++;
1795 }
1796 break;
1798 if (badgeMoveID == MOVE_FIRE_SHIELD) {
1799 ret++;
1800 }
1801 break;
1803 if (badgeMoveID == MOVE_PRETTY_LUCKY) {
1804 ret++;
1805 }
1806 break;
1807 case ABILITY_HP_DRAIN:
1808 if (badgeMoveID == MOVE_HP_DRAIN) {
1809 ret++;
1810 }
1811 break;
1813 if (badgeMoveID == MOVE_ALLOR_NOTHING) {
1814 ret++;
1815 }
1816 break;
1817 case ABILITY_SLOW_GO:
1818 if (badgeMoveID == MOVE_SLOW_GO) {
1819 ret++;
1820 }
1821 break;
1822 case ABILITY_FP_PLUS:
1823 if (badgeMoveID == MOVE_FP_PLUS) {
1824 ret++;
1825 }
1826 break;
1827 case ABILITY_ICE_POWER:
1828 if (badgeMoveID == MOVE_ICE_POWER) {
1829 ret++;
1830 }
1831 break;
1833 if (badgeMoveID == MOVE_FEELING_FINE) {
1834 ret++;
1835 }
1836 break;
1837 case ABILITY_ATTACK_FX:
1838 if (badgeMoveID == MOVE_ATTACK_FX_A) {
1839 attackFXArray[attackFXIndex++] = 1;
1840 ret = -1;
1841 }
1842 if (badgeMoveID == MOVE_ATTACK_FX_D) {
1843 attackFXArray[attackFXIndex++] = 2;
1844 ret = -1;
1845 }
1846 if (badgeMoveID == MOVE_ATTACK_FX_B) {
1847 attackFXArray[attackFXIndex++] = 3;
1848 ret = -1;
1849 }
1850 if (badgeMoveID == MOVE_ATTACK_FX_E) {
1851 attackFXArray[attackFXIndex++] = 4;
1852 ret = -1;
1853 }
1854 if (badgeMoveID == MOVE_ATTACK_FX_C) {
1855 attackFXArray[attackFXIndex++] = 5;
1856 ret = -1;
1857 }
1858 if (badgeMoveID == MOVE_ATTACK_FX_F) {
1859 attackFXArray[attackFXIndex++] = 6;
1860 ret = -1;
1861 }
1862 break;
1864 if (badgeMoveID == MOVE_MONEY_MONEY) {
1865 ret++;
1866 }
1867 break;
1868 case ABILITY_CHILL_OUT:
1869 if (badgeMoveID == MOVE_CHILL_OUT_BADGE) {
1870 ret++;
1871 }
1872 break;
1874 if (badgeMoveID == MOVE_HAPPY_HEART) {
1875 ret++;
1876 }
1877 break;
1878 case ABILITY_ZAP_TAP:
1879 if (badgeMoveID == MOVE_ZAP_TAP) {
1880 ret++;
1881 }
1882 break;
1883 case ABILITY_MEGA_RUSH:
1884 if (badgeMoveID == MOVE_MEGA_RUSH) {
1885 ret++;
1886 }
1887 break;
1888 case ABILITY_BERSERKER:
1889 if (badgeMoveID == MOVE_BERSERKER) {
1890 ret++;
1891 }
1892 break;
1893 case ABILITY_RIGHT_ON:
1894 if (badgeMoveID == MOVE_RIGHT_ON) {
1895 ret++;
1896 }
1897 break;
1899 if (badgeMoveID == MOVE_RUNAWAY_PAY) {
1900 ret++;
1901 }
1902 break;
1904 if (badgeMoveID == MOVE_FLOWER_SAVER) {
1905 ret++;
1906 }
1907 break;
1908 case ABILITY_PAY_OFF:
1909 if (badgeMoveID == MOVE_PAY_OFF) {
1910 ret++;
1911 }
1912 break;
1914 if (badgeMoveID == MOVE_DEFEND_PLUS) {
1915 ret++;
1916 }
1917 break;
1918 case ABILITY_POWER_PLUS:
1919 if (badgeMoveID == MOVE_POWER_PLUS) {
1920 ret++;
1921 }
1922 break;
1923 case ABILITY_REFUND:
1924 if (badgeMoveID == MOVE_REFUND) {
1925 ret++;
1926 }
1927 break;
1928 case ABILITY_POWER_RUSH:
1929 if (badgeMoveID == MOVE_POWER_RUSH) {
1930 ret++;
1931 }
1932 break;
1934 if (badgeMoveID == MOVE_CRAZY_HEART) {
1935 ret++;
1936 }
1937 break;
1938 case ABILITY_LAST_STAND:
1939 if (badgeMoveID == MOVE_LAST_STAND) {
1940 ret++;
1941 }
1942 break;
1943 case ABILITY_CLOSE_CALL:
1944 if (badgeMoveID == MOVE_CLOSE_CALL) {
1945 ret++;
1946 }
1947 break;
1949 if (badgeMoveID == MOVE_P_UP_D_DOWN) {
1950 ret++;
1951 }
1952 break;
1953 case ABILITY_LUCKY_DAY:
1954 if (badgeMoveID == MOVE_LUCKY_DAY) {
1955 ret++;
1956 }
1957 break;
1959 if (badgeMoveID == MOVE_MEGA_HP_DRAIN) {
1960 ret++;
1961 }
1962 break;
1964 if (badgeMoveID == MOVE_P_DOWN_D_UP) {
1965 ret++;
1966 }
1967 break;
1969 if (badgeMoveID == MOVE_FLOWER_FANATIC) {
1970 ret++;
1971 }
1972 break;
1974 if (badgeMoveID == MOVE_SPEEDY_SPIN) {
1975 ret++;
1976 }
1977 break;
1979 if (badgeMoveID == MOVE_SPIN_ATTACK) {
1980 ret++;
1981 }
1982 break;
1983 case ABILITY_I_SPY:
1984 if (badgeMoveID == MOVE_I_SPY) {
1985 ret++;
1986 }
1987 break;
1989 if (badgeMoveID == MOVE_BUMP_ATTACK) {
1990 ret++;
1991 }
1992 break;
1994 if (badgeMoveID == MOVE_QUICK_CHANGE) {
1995 ret++;
1996 }
1997 break;
1999 if (badgeMoveID == MOVE_HEART_FINDER) {
2000 ret++;
2001 }
2002 break;
2004 if (badgeMoveID == MOVE_FLOWER_FINDER) {
2005 ret++;
2006 }
2007 break;
2009 if (badgeMoveID == MOVE_DIZZY_ATTACK) {
2010 ret++;
2011 }
2012 break;
2014 if (badgeMoveID == MOVE_UNUSED_FINAL_GOOMPA) {
2015 ret++;
2016 }
2017 break;
2019 if (badgeMoveID == MOVE_UNUSED_FINAL_BOBOMB) {
2020 ret++;
2021 }
2022 break;
2023 case ABILITY_DEEP_FOCUS:
2024 if (badgeMoveID == MOVE_DEEP_FOCUS) {
2025 ret++;
2026 }
2027 break;
2029 if (badgeMoveID == MOVE_SUPER_FOCUS) {
2030 ret++;
2031 }
2032 break;
2033 case ABILITY_KAIDEN:
2034 if (badgeMoveID == MOVE_KAIDEN) {
2035 ret++;
2036 }
2037 break;
2039 if (badgeMoveID == MOVE_DAMAGE_DODGE) {
2040 ret++;
2041 }
2042 break;
2044 if (badgeMoveID == MOVE_HAPPY_FLOWER) {
2045 ret++;
2046 }
2047 break;
2049 if (badgeMoveID == MOVE_GROUP_FOCUS) {
2050 ret++;
2051 }
2052 break;
2053 case ABILITY_PEEKABOO:
2054 if (badgeMoveID == MOVE_PEEKABOO) {
2055 ret++;
2056 }
2057 break;
2059 if (badgeMoveID == MOVE_HEALTHY_HEALTHY) {
2060 ret++;
2061 }
2062 break;
2063 }
2064 }
2065
2066 if (ret < 0) {
2067 ret = attackFXArray[rand_int(attackFXIndex - 1)];
2068 }
2069 return ret;
2070}
#define rand_int
@ ABILITY_BERSERKER
Definition enums.h:457
@ ABILITY_FLOWER_SAVER
Definition enums.h:460
@ ABILITY_QUICK_CHANGE
Definition enums.h:462
@ ABILITY_DEEP_FOCUS
Definition enums.h:484
@ ABILITY_BUMP_ATTACK
Definition enums.h:478
@ ABILITY_FEELING_FINE
Definition enums.h:450
@ ABILITY_ATTACK_FX
Definition enums.h:451
@ ABILITY_FLOWER_FINDER
Definition enums.h:480
@ ABILITY_P_DOWN_D_UP
Definition enums.h:473
@ ABILITY_MEGA_HP_DRAIN
Definition enums.h:472
@ ABILITY_DOUBLE_DIP
Definition enums.h:441
@ ABILITY_PAY_OFF
Definition enums.h:461
@ ABILITY_POWER_RUSH
Definition enums.h:466
@ ABILITY_SPIN_ATTACK
Definition enums.h:476
@ ABILITY_CHILL_OUT
Definition enums.h:453
@ ABILITY_MONEY_MONEY
Definition enums.h:452
@ ABILITY_FLOWER_FANATIC
Definition enums.h:474
@ ABILITY_REFUND
Definition enums.h:465
@ ABILITY_PEEKABOO
Definition enums.h:490
@ ABILITY_POWER_PLUS
Definition enums.h:464
@ ABILITY_CLOSE_CALL
Definition enums.h:469
@ ABILITY_HEALTHY_HEALTHY
Definition enums.h:491
@ ABILITY_MEGA_RUSH
Definition enums.h:456
@ ABILITY_HEART_FINDER
Definition enums.h:479
@ ABILITY_DIZZY_ATTACK
Definition enums.h:481
@ ABILITY_DEFEND_PLUS
Definition enums.h:463
@ ABILITY_FINAL_GOOMPA
Definition enums.h:482
@ ABILITY_I_SPY
Definition enums.h:477
@ ABILITY_DAMAGE_DODGE
Definition enums.h:487
@ ABILITY_SPIKE_SHIELD
Definition enums.h:438
@ ABILITY_KAIDEN
Definition enums.h:486
@ ABILITY_ZAP_TAP
Definition enums.h:455
@ ABILITY_LAST_STAND
Definition enums.h:468
@ ABILITY_P_UP_D_DOWN
Definition enums.h:470
@ ABILITY_HAPPY_HEART
Definition enums.h:454
@ ABILITY_FIRE_SHIELD
Definition enums.h:443
@ ABILITY_DODGE_MASTER
Definition enums.h:436
@ ABILITY_FINAL_BOBOMB
Definition enums.h:483
@ ABILITY_ICE_POWER
Definition enums.h:449
@ ABILITY_LUCKY_DAY
Definition enums.h:471
@ ABILITY_CRAZY_HEART
Definition enums.h:467
@ ABILITY_SUPER_FOCUS
Definition enums.h:485
@ ABILITY_ALL_OR_NOTHING
Definition enums.h:446
@ ABILITY_HAPPY_FLOWER
Definition enums.h:488
@ ABILITY_RUNAWAY_PAY
Definition enums.h:459
@ ABILITY_PRETTY_LUCKY
Definition enums.h:444
@ ABILITY_RIGHT_ON
Definition enums.h:458
@ ABILITY_HP_DRAIN
Definition enums.h:445
@ ABILITY_MYSTERY_SCROLL
Definition enums.h:442
@ ABILITY_FIRST_ATTACK
Definition enums.h:439
@ ABILITY_GROUP_FOCUS
Definition enums.h:489
@ ABILITY_SLOW_GO
Definition enums.h:447
@ ABILITY_SPEEDY_SPIN
Definition enums.h:475
ItemData gItemTable[]

Referenced by action_command_init_status(), action_hammer_play_hit_fx(), action_update_run(), action_update_spin(), action_update_walk(), adjust_action_command_difficulty(), appendGfx_player_actor(), btl_menu_strats_draw_content(), btl_state_update_begin_player_turn(), btl_state_update_begin_turn(), btl_state_update_celebration(), btl_state_update_end_player_turn(), btl_state_update_first_strike(), btl_state_update_normal_start(), btl_state_update_partner_menu(), btl_state_update_player_move(), btl_state_update_run_away(), btl_state_update_select_target(), calc_enemy_damage_target(), calc_player_damage_enemy(), check_block_input(), check_input_spin(), enforce_hpfp_limits(), entity_HiddenPanel_set_ispy_notification(), get_coin_drop_amount(), inflict_status(), is_actor_health_bar_visible(), is_actortype_health_bar_visible(), load_player_actor(), player_team_is_ability_active(), show_first_strike_message(), spawn_drops(), update_encounters_neutral(), update_encounters_pre_battle(), and update_locomotion_state().

◆ is_partner_ability_active()

s32 is_partner_ability_active ( s32 ability)

Definition at line 2072 of file inventory.c.

2072 {
2073 return 0;
2074}

Referenced by player_team_is_ability_active().

◆ add_coins()

s32 add_coins ( s32 amt)

Definition at line 2076 of file inventory.c.

2076 {
2077 PlayerData* playerData = &gPlayerData;
2078 s16 newCoins = playerData->coins + amt;
2079
2080 playerData->coins = newCoins;
2081 if (newCoins > 999) {
2082 playerData->coins = 999;
2083 }
2084 if (playerData->coins < 0) {
2085 playerData->coins = 0;
2086 }
2087
2088 if (amt > 0) {
2089 playerData->totalCoinsEarned += amt;
2090 if (playerData->totalCoinsEarned > 99999) {
2091 playerData->totalCoinsEarned = 99999;
2092 }
2093 }
2094 return playerData->coins;
2095}

◆ add_star_points()

s32 add_star_points ( s32 amt)

Definition at line 2097 of file inventory.c.

2097 {
2098 PlayerData* playerData = &gPlayerData;
2099 s8 newSP = playerData->starPoints + amt;
2100
2101 // TODO: probably a macro!
2102 playerData->starPoints = newSP;
2103 if (newSP > 100) {
2104 playerData->starPoints = 100;
2105 }
2106
2107 // TODO: probably a macro!
2108 newSP = playerData->starPoints;
2109 if (newSP < 0) {
2110 playerData->starPoints = 0;
2111 }
2112 return gPlayerData.starPoints;
2113}

◆ add_star_pieces()

s32 add_star_pieces ( s32 amt)

Definition at line 2115 of file inventory.c.

2115 {
2116 PlayerData* playerData = &gPlayerData;
2117 s32 newSP = playerData->starPieces;
2118
2119 newSP += amt;
2120 if (newSP > MAX_STAR_PIECES) {
2121 newSP = MAX_STAR_PIECES;
2122 }
2123 if (newSP < 0) {
2124 newSP = 0;
2125 }
2126 playerData->starPieces = newSP;
2127
2128 if (amt > 0) {
2129 playerData->starPiecesCollected += amt;
2130 }
2131
2132 return playerData->starPieces;
2133}
#define MAX_STAR_PIECES
Definition macros.h:100

◆ increment_max_star_power()

void increment_max_star_power ( void )

Definition at line 2135 of file inventory.c.

◆ set_max_star_power()

void set_max_star_power ( s8 newMax)

Definition at line 2140 of file inventory.c.

2140 {
2141 gPlayerData.maxStarPower = newMax;
2142 gPlayerData.starPower = newMax * SP_PER_BAR;
2143}

◆ add_star_power()

void add_star_power ( s32 amt)

Definition at line 2145 of file inventory.c.

2145 {
2146 PlayerData* playerData = &gPlayerData;
2147 StatusBar* statusBar = &gStatusBar;
2148 s32 maxPower;
2149 s32 newPower;
2150
2152 statusBar->shimmerTime = 60;
2153
2154 if (playerData->starPower < 0) {
2155 statusBar->shimmerLimit = (playerData->starPower + 31) / SP_PER_SEG;
2156 } else {
2157 statusBar->shimmerLimit = playerData->starPower / SP_PER_SEG;
2158 }
2159
2160 playerData->starPower += amt;
2161
2162 maxPower = playerData->maxStarPower * SP_PER_BAR;
2163 if (playerData->starPower > maxPower) {
2164 playerData->starPower = maxPower;
2165 }
2166
2168}
#define SP_PER_SEG
Definition macros.h:103

◆ recover_fp()

s32 recover_fp ( s32 amt)

Recover player FP.

Parameters
amtthe amount to recover, -1 for full, -2 for full and increase max by 1 (unused)
Returns
the new FP value, after recovery has been applied

Definition at line 2170 of file inventory.c.

2170 {
2171 if (amt == -2) {
2174 } else if (amt == -1) {
2176 } else {
2177 if (amt > 0) {
2178 gPlayerData.curFP += amt;
2179 }
2182 }
2183 }
2184 return gPlayerData.curFP;
2185}

Referenced by entity_HeartBlockContent__anim_heal().

◆ recover_hp()

s32 recover_hp ( s32 amt)

Recover player HP.

Parameters
amtthe amount to recover, -1 for full, -2 for full and increase max by 1 (unused)
Returns
the new HP value, after recovery has been applied

Definition at line 2187 of file inventory.c.

2187 {
2188 if (amt == -2) {
2191 } else if (amt == -1) {
2193 } else {
2194 if (amt > 0) {
2195 gPlayerData.curHP += amt;
2196 }
2199 }
2200 }
2201 return gPlayerData.curHP;
2202}

Referenced by entity_HeartBlockContent__anim_heal().

◆ subtract_hp()

void subtract_hp ( s32 amt)

Definition at line 2204 of file inventory.c.

2204 {
2205 PlayerData* playerData = &gPlayerData;
2206 s32 newHP = playerData->curHP;
2207
2208 if (amt > 0) {
2209 newHP -= amt;
2210 }
2211 if (amt < 0 || newHP < 1) {
2212 newHP = 1;
2213 }
2214 playerData->curHP = newHP;
2215}

Referenced by action_update_hit_fire(), action_update_hit_lava(), and func_802BC274_E2EBA4().

◆ has_full_hp()

s8 has_full_hp ( void )

Definition at line 2217 of file inventory.c.

2217 {
2219}

◆ has_full_fp()

s8 has_full_fp ( void )

Definition at line 2221 of file inventory.c.

2221 {
2223}

Variable Documentation

◆ ShowingCoinCounter

◆ HidingCoinCounter

BSS b16 HidingCoinCounter

◆ gStatusBar

◆ TimesHudScript

HudScript* TimesHudScript
extern

Definition at line 146 of file partners.c.

Referenced by status_bar_draw_number().

◆ SPIncrementHudScripts

HudScript* SPIncrementHudScripts[]
extern

Definition at line 148 of file partners.c.

148 {
151};
HudScript HES_StatusSPIncrement6
HudScript HES_StatusSPIncrement4
HudScript HES_StatusSPIncrement3
HudScript HES_StatusSPIncrement7
HudScript HES_StatusSPIncrement5
HudScript HES_StatusSPIncrement2
HudScript HES_StatusSPIncrement1

Referenced by update_status_bar().

◆ SPStarHudScripts

HudScript* SPStarHudScripts[]
extern

Definition at line 152 of file partners.c.

154};
HudScript HES_StatusStar1
HudScript HES_StatusStar2
HudScript HES_StatusStar3
HudScript HES_StatusStar7
HudScript HES_StatusStar5
HudScript HES_StatusStar6
HudScript HES_StatusStar4

Referenced by update_status_bar().

◆ StatusBarSPIncrementOffsets

s32 StatusBarSPIncrementOffsets[]
extern

Definition at line 156 of file partners.c.

156{ -1, 1, 2, 4, 5, 7, 8, 0, 0, 0 };

Referenced by update_status_bar().

◆ DigitHudScripts

HudScript* DigitHudScripts[10]
extern

Definition at line 142 of file partners.c.

142 {
145};
HudScript HES_StatusDigit6
HudScript HES_StatusDigit1
HudScript HES_StatusDigit8
HudScript HES_StatusDigit3
HudScript HES_StatusDigit5
HudScript HES_StatusDigit2
HudScript HES_StatusDigit7
HudScript HES_StatusDigit9
HudScript HES_StatusDigit0
HudScript HES_StatusDigit4

Referenced by status_bar_draw_number(), and status_bar_draw_stat().

◆ HES_StatusCoinSparkle

HudScript HES_StatusCoinSparkle
extern

Definition at line 2112 of file global_hud_scripts.c.

2112 {
2121 hs_End
2122};
HudScript HES_CoinSparkleB
HudScript HES_CoinSparkleA
HudScript HES_CoinSparkleC
HudScript HES_CoinSparkleE
HudScript HES_CoinSparkleD
#define hs_RandomBranch(args...)
#define hs_SetTileSize(size)
#define hs_SetVisible
#define hs_End
@ HUD_ELEMENT_SIZE_8x8
Definition hud_element.h:43
#define HS_PTR(sym)

Referenced by initialize_status_bar().

◆ HES_StatusHP

HudScript HES_StatusHP
extern

Definition at line 2014 of file global_hud_scripts.c.

Referenced by initialize_status_bar().

◆ HES_StatusHP_de

HudScript HES_StatusHP_de
extern

Referenced by initialize_status_bar().

◆ HES_StatusHP_fr

HudScript HES_StatusHP_fr
extern

Referenced by initialize_status_bar().

◆ HES_StatusHP_es

HudScript HES_StatusHP_es
extern

Referenced by initialize_status_bar().

◆ HES_StatusHeart

HudScript HES_StatusHeart
extern

Definition at line 2061 of file global_hud_scripts.c.

2061 {
2063 hs_Loop
2064 hs_SetRGBA(60, ui_stat_heart_png)
2066 hs_End
2067};
#define hs_SetRGBA(time, image)
#define hs_Restart
#define hs_Loop
@ HUD_ELEMENT_SIZE_16x16
Definition hud_element.h:44

Referenced by initialize_status_bar().

◆ HES_StatusFP

HudScript HES_StatusFP
extern

Definition at line 2016 of file global_hud_scripts.c.

Referenced by initialize_status_bar().

◆ HES_StatusFP_de

HudScript HES_StatusFP_de
extern

Referenced by initialize_status_bar().

◆ HES_StatusFP_fr

HudScript HES_StatusFP_fr
extern

Referenced by initialize_status_bar().

◆ HES_StatusFP_es

HudScript HES_StatusFP_es
extern

Referenced by initialize_status_bar().

◆ HES_StatusFlower

HudScript HES_StatusFlower
extern

Definition at line 2069 of file global_hud_scripts.c.

2069 {
2071 hs_Loop
2072 hs_SetRGBA(60, ui_stat_flower_png)
2074 hs_End
2075};

Referenced by initialize_status_bar().

◆ HES_StatusStarPoint

HudScript HES_StatusStarPoint
extern

Definition at line 2124 of file global_hud_scripts.c.

2124 {
2127 hs_Loop
2128 hs_SetCI(2, ui_status_star_point_0)
2129 hs_SetCI(2, ui_status_star_point_1)
2130 hs_SetCI(2, ui_status_star_point_2)
2131 hs_SetCI(2, ui_status_star_point_3)
2132 hs_SetCI(2, ui_status_star_point_4)
2133 hs_SetCI(2, ui_status_star_point_5)
2134 hs_SetCI(2, ui_status_star_point_6)
2135 hs_SetCI(2, ui_status_star_point_7)
2137 hs_End
2138};
#define hs_SetCI(time, name)

Referenced by initialize_status_bar().

◆ HES_StatusStar1

HudScript HES_StatusStar1
extern

Definition at line 2045 of file global_hud_scripts.c.

Referenced by initialize_status_bar().

◆ HES_StatusTimes

HudScript HES_StatusTimes
extern

Definition at line 1990 of file global_hud_scripts.c.

Referenced by initialize_status_bar().

◆ HES_StatusSPShine

HudScript HES_StatusSPShine
extern

Definition at line 762 of file global_hud_scripts.c.

762 {
765 hs_Loop
766 hs_SetRGBA(60, ui_status_star_point_shine_png)
768 hs_End
769};
@ HUD_ELEMENT_SIZE_24x24
Definition hud_element.h:45
#define hs_UseIA8

Referenced by initialize_status_bar().

◆ HES_StatusSPEmptyIncrement

HudScript HES_StatusSPEmptyIncrement
extern

Definition at line 2043 of file global_hud_scripts.c.

Referenced by update_status_bar().

◆ HES_StatusStarEmpty

HudScript HES_StatusStarEmpty
extern

Definition at line 2059 of file global_hud_scripts.c.

Referenced by update_status_bar().

◆ SlashHudScript

HudScript* SlashHudScript
extern

Definition at line 147 of file partners.c.

Referenced by status_bar_draw_stat().