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

Go to the source code of this file.

Macros

#define ANTI_MASH_TIME   5
 

Enumerations

enum  {
  HIDX_BUTTON = 0 , HIDX_FRAME = 1 , HIDX_LIGHT_1 = 2 , HIDX_LIGHT_2 = 3 ,
  HIDX_LIGHT_3 = 4 , HIDX_05 = 5 , HIDX_RATING_1 = 6 , HIDX_RATING_2 = 7 ,
  HIDX_RATING_3 = 8 , HIDX_09 = 9 , HIDX_DIGIT = 10 , HIDX_TICK_1 = 11 ,
  HIDX_TICK_2 = 12 , HIDX_BUFF_ICON = 13
}
 
enum  {
  THREE_CHANCES_STATE_INIT = 0 , THREE_CHANCES_STATE_APPEAR = 1 , THREE_CHANCES_STATE_START = 10 , THREE_CHANCES_STATE_PREFACE = 11 ,
  THREE_CHANCES_STATE_FIRST_CHANCE = 12 , THREE_CHANCES_STATE_SECOND_CHANCE = 13 , THREE_CHANCES_STATE_THIRD_CHANCE = 14 , THREE_CHANCES_STATE_UNUSED_CHANCE = 15 ,
  THREE_CHANCES_STATE_WRAPUP = 16 , THREE_CHANCES_STATE_DISPOSE = 17
}
 

Functions

 INCLUDE_IMG ("battle/action_cmd/three_chances_1.png", battle_action_cmd_three_chances_1_png)
 
 INCLUDE_PAL ("battle/action_cmd/three_chances_1.pal", battle_action_cmd_three_chances_1_pal)
 
 INCLUDE_IMG ("battle/action_cmd/three_chances_2.png", battle_action_cmd_three_chances_2_png)
 
 INCLUDE_PAL ("battle/action_cmd/three_chances_2.pal", battle_action_cmd_three_chances_2_pal)
 
 INCLUDE_IMG ("battle/action_cmd/three_chances_3.png", battle_action_cmd_three_chances_3_png)
 
 INCLUDE_PAL ("battle/action_cmd/three_chances_3.pal", battle_action_cmd_three_chances_3_pal)
 
 INCLUDE_IMG ("battle/action_cmd/three_chances_0.png", battle_action_cmd_three_chances_0_png)
 
 INCLUDE_PAL ("battle/action_cmd/three_chances_0.pal", battle_action_cmd_three_chances_0_pal)
 
 INCLUDE_IMG ("battle/action_cmd/three_chances_block.png", battle_action_cmd_three_chances_block_png)
 
 INCLUDE_PAL ("battle/action_cmd/three_chances_block.pal", battle_action_cmd_three_chances_block_pal)
 
 INCLUDE_IMG ("battle/action_cmd/three_chances_circle.png", battle_action_cmd_three_chances_circle_png)
 
 INCLUDE_PAL ("battle/action_cmd/three_chances_circle.pal", battle_action_cmd_three_chances_circle_pal)
 
 INCLUDE_IMG ("battle/action_cmd/three_chances_cloud.png", battle_action_cmd_three_chances_cloud_png)
 
 INCLUDE_PAL ("battle/action_cmd/three_chances_cloud.pal", battle_action_cmd_three_chances_cloud_pal)
 
 INCLUDE_IMG ("battle/action_cmd/three_chances_4.png", battle_action_cmd_three_chances_4_png)
 
 INCLUDE_PAL ("battle/action_cmd/three_chances_4.pal", battle_action_cmd_three_chances_4_pal)
 
void N update (void)
 
void N draw (void)
 
void N free (void)
 

Variables

s32 actionCmdTableWaterBlock [][2]
 
HudScript HES_Digit1 = HES_TEMPLATE_CI_ENUM_SIZE(battle_action_cmd_three_chances_1, 24, 24)
 
HudScript HES_Digit2 = HES_TEMPLATE_CI_ENUM_SIZE(battle_action_cmd_three_chances_2, 24, 24)
 
HudScript HES_Digit3 = HES_TEMPLATE_CI_ENUM_SIZE(battle_action_cmd_three_chances_3, 24, 24)
 
HudScript HES_Digit0 = HES_TEMPLATE_CI_ENUM_SIZE(battle_action_cmd_three_chances_0, 24, 24)
 
HudScript HES_Digit4 = HES_TEMPLATE_CI_ENUM_SIZE(battle_action_cmd_three_chances_4, 24, 24)
 
HudScript HES_WaterBlock = HES_TEMPLATE_CI_ENUM_SIZE(battle_action_cmd_three_chances_block, 32, 32)
 
HudScript HES_TurboCharge = HES_TEMPLATE_CI_ENUM_SIZE(battle_action_cmd_three_chances_circle, 40, 40)
 
HudScript HES_CloudNine = HES_TEMPLATE_CI_ENUM_SIZE(battle_action_cmd_three_chances_cloud, 40, 40)
 
HudScriptDigitScripts []
 

Macro Definition Documentation

◆ ANTI_MASH_TIME

#define ANTI_MASH_TIME   5

Definition at line 42 of file three_chances.c.

Referenced by update().

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
HIDX_BUTTON 
HIDX_FRAME 
HIDX_LIGHT_1 
HIDX_LIGHT_2 
HIDX_LIGHT_3 
HIDX_05 
HIDX_RATING_1 
HIDX_RATING_2 
HIDX_RATING_3 
HIDX_09 
HIDX_DIGIT 
HIDX_TICK_1 
HIDX_TICK_2 
HIDX_BUFF_ICON 

Definition at line 10 of file three_chances.c.

10 {
11 HIDX_BUTTON = 0,
12 HIDX_FRAME = 1,
13 HIDX_LIGHT_1 = 2,
14 HIDX_LIGHT_2 = 3,
15 HIDX_LIGHT_3 = 4,
16 HIDX_05 = 5, // unused 4th light
17 HIDX_RATING_1 = 6,
18 HIDX_RATING_2 = 7,
19 HIDX_RATING_3 = 8,
20 HIDX_09 = 9, // unused rating for 4th light
21 HIDX_DIGIT = 10,
22 HIDX_TICK_1 = 11,
23 HIDX_TICK_2 = 12,
24 HIDX_BUFF_ICON = 13,
25};
@ HIDX_09
@ HIDX_BUTTON
@ HIDX_LIGHT_2
@ HIDX_TICK_1
@ HIDX_LIGHT_1
@ HIDX_FRAME
@ HIDX_RATING_2
@ HIDX_RATING_1
@ HIDX_BUFF_ICON
@ HIDX_TICK_2
@ HIDX_RATING_3
@ HIDX_DIGIT
@ HIDX_05
@ HIDX_LIGHT_3

◆ anonymous enum

anonymous enum
Enumerator
THREE_CHANCES_STATE_INIT 
THREE_CHANCES_STATE_APPEAR 
THREE_CHANCES_STATE_START 
THREE_CHANCES_STATE_PREFACE 
THREE_CHANCES_STATE_FIRST_CHANCE 
THREE_CHANCES_STATE_SECOND_CHANCE 
THREE_CHANCES_STATE_THIRD_CHANCE 
THREE_CHANCES_STATE_UNUSED_CHANCE 
THREE_CHANCES_STATE_WRAPUP 
THREE_CHANCES_STATE_DISPOSE 

Definition at line 28 of file three_chances.c.

28 {
29 THREE_CHANCES_STATE_INIT = 0, // create hud elements
30 THREE_CHANCES_STATE_APPEAR = 1, // hud elements move into position
31 THREE_CHANCES_STATE_START = 10, // begin the input-checking phase
32 THREE_CHANCES_STATE_PREFACE = 11, // first two ticks light up
33 THREE_CHANCES_STATE_FIRST_CHANCE = 12, // first window to match timing
34 THREE_CHANCES_STATE_SECOND_CHANCE = 13, // second window to match timing
35 THREE_CHANCES_STATE_THIRD_CHANCE = 14, // third window to match timing
36 THREE_CHANCES_STATE_UNUSED_CHANCE = 15, // unimplemented fourth chance to match timing
37 THREE_CHANCES_STATE_WRAPUP = 16, // tally overall success
38 THREE_CHANCES_STATE_DISPOSE = 17, // delay and disappear
39};
@ THREE_CHANCES_STATE_SECOND_CHANCE
@ THREE_CHANCES_STATE_DISPOSE
@ THREE_CHANCES_STATE_UNUSED_CHANCE
@ THREE_CHANCES_STATE_WRAPUP
@ THREE_CHANCES_STATE_PREFACE
@ THREE_CHANCES_STATE_THIRD_CHANCE
@ THREE_CHANCES_STATE_FIRST_CHANCE
@ THREE_CHANCES_STATE_INIT
@ THREE_CHANCES_STATE_START
@ THREE_CHANCES_STATE_APPEAR

Function Documentation

◆ INCLUDE_IMG() [1/8]

INCLUDE_IMG ( "battle/action_cmd/three_chances_1.png" ,
battle_action_cmd_three_chances_1_png  )

◆ INCLUDE_PAL() [1/8]

INCLUDE_PAL ( "battle/action_cmd/three_chances_1.pal" ,
battle_action_cmd_three_chances_1_pal  )

◆ INCLUDE_IMG() [2/8]

INCLUDE_IMG ( "battle/action_cmd/three_chances_2.png" ,
battle_action_cmd_three_chances_2_png  )

◆ INCLUDE_PAL() [2/8]

INCLUDE_PAL ( "battle/action_cmd/three_chances_2.pal" ,
battle_action_cmd_three_chances_2_pal  )

◆ INCLUDE_IMG() [3/8]

INCLUDE_IMG ( "battle/action_cmd/three_chances_3.png" ,
battle_action_cmd_three_chances_3_png  )

◆ INCLUDE_PAL() [3/8]

INCLUDE_PAL ( "battle/action_cmd/three_chances_3.pal" ,
battle_action_cmd_three_chances_3_pal  )

◆ INCLUDE_IMG() [4/8]

INCLUDE_IMG ( "battle/action_cmd/three_chances_0.png" ,
battle_action_cmd_three_chances_0_png  )

◆ INCLUDE_PAL() [4/8]

INCLUDE_PAL ( "battle/action_cmd/three_chances_0.pal" ,
battle_action_cmd_three_chances_0_pal  )

◆ INCLUDE_IMG() [5/8]

INCLUDE_IMG ( "battle/action_cmd/three_chances_block.png" ,
battle_action_cmd_three_chances_block_png  )

◆ INCLUDE_PAL() [5/8]

INCLUDE_PAL ( "battle/action_cmd/three_chances_block.pal" ,
battle_action_cmd_three_chances_block_pal  )

◆ INCLUDE_IMG() [6/8]

INCLUDE_IMG ( "battle/action_cmd/three_chances_circle.png" ,
battle_action_cmd_three_chances_circle_png  )

◆ INCLUDE_PAL() [6/8]

INCLUDE_PAL ( "battle/action_cmd/three_chances_circle.pal" ,
battle_action_cmd_three_chances_circle_pal  )

◆ INCLUDE_IMG() [7/8]

INCLUDE_IMG ( "battle/action_cmd/three_chances_cloud.png" ,
battle_action_cmd_three_chances_cloud_png  )

◆ INCLUDE_PAL() [7/8]

INCLUDE_PAL ( "battle/action_cmd/three_chances_cloud.pal" ,
battle_action_cmd_three_chances_cloud_pal  )

◆ INCLUDE_IMG() [8/8]

INCLUDE_IMG ( "battle/action_cmd/three_chances_4.png" ,
battle_action_cmd_three_chances_4_png  )

◆ INCLUDE_PAL() [8/8]

INCLUDE_PAL ( "battle/action_cmd/three_chances_4.pal" ,
battle_action_cmd_three_chances_4_pal  )

◆ update()

void N update ( void )

Definition at line 226 of file three_chances.c.

226 {
228 BattleStatus* battleStatus = &gBattleStatus;
229 s32 pos;
230 s32 i;
231 s32 window;
232 HudElemID hid;
233
234 switch (acs->state) {
237 hid = acs->hudElemIDs[HIDX_BUTTON];
238 if (acs->showHud) {
240 }
241 hud_element_set_alpha(hid, 255);
242 hid = acs->hudElemIDs[HIDX_FRAME];
243 hud_element_set_alpha(hid, 255);
244 if (acs->showHud) {
246 }
247 hid = acs->hudElemIDs[HIDX_LIGHT_1];
248 hud_element_set_alpha(hid, 255);
249 if (acs->showHud) {
251 }
252 hid = acs->hudElemIDs[HIDX_LIGHT_2];
253 hud_element_set_alpha(hid, 255);
254 if (acs->showHud) {
256 }
257 hid = acs->hudElemIDs[HIDX_LIGHT_3];
258 hud_element_set_alpha(hid, 255);
259 if (acs->showHud) {
261 }
262 hid = acs->hudElemIDs[HIDX_DIGIT];
263 hud_element_set_alpha(hid, 255);
264 if (acs->showHud) {
266 }
267 hid = acs->hudElemIDs[HIDX_TICK_1];
268 hud_element_set_alpha(hid, 255);
269 if (acs->showHud) {
271 }
272 hid = acs->hudElemIDs[HIDX_TICK_2];
273 hud_element_set_alpha(hid, 255);
274 if (acs->showHud) {
276 }
277 hid = acs->hudElemIDs[HIDX_BUFF_ICON];
278 hud_element_set_alpha(hid, 255);
279 if (acs->showHud) {
281 }
283 break;
286 if (acs->hudPrepareTime != 0) {
287 acs->hudPrepareTime--;
288 return;
289 }
290 acs->hudPosX += 20;
291 if (acs->hudPosX > 50) {
292 acs->hudPosX = 50;
293 }
299
300 hid = acs->hudElemIDs[HIDX_DIGIT];
301 switch (acs->variation) {
303 hud_element_set_render_pos(hid, acs->hudPosX + 91, acs->hudPosY + 7);
304 break;
306 hud_element_set_render_pos(hid, acs->hudPosX + 91, acs->hudPosY + 13);
307 break;
309 hud_element_set_render_pos(hid, acs->hudPosX + 91, acs->hudPosY + 13);
310 break;
311 }
312
316 break;
319 if (acs->prepareTime != 0) {
320 acs->prepareTime--;
321 return;
322 }
323
324 acs->stateTimer = acs->duration - 60;
325 if (acs->stateTimer < 42) {
326 acs->stateTimer = 42;
327 }
329
330 // fallthrough
333
334 // first two minor ticks
335 if (acs->stateTimer == 42) {
338 }
339 if (acs->stateTimer == 22) {
342 }
343
344 // activate the first light
345 if (acs->stateTimer == 2) {
349 }
350
351 acs->stateTimer--;
352
353 // prepare to listen for input
354 if (acs->stateTimer == 0) {
355 acs->stateTimer = 20;
356 acs->threeChances.time = 0;
358 acs->threeChances.hadCorrectTiming = FALSE;
359 acs->wrongButtonPressed = FALSE;
360 }
361 break;
364 // in this state, test for input during the first six frames (threeChances.time >= -5), then display
365 // a verdict and wait until the full 20 frame state lifetime is complete before beginning the next one.
366
367 // first six frames, if no input has been received
368 if (!(acs->wrongButtonPressed || acs->threeChances.hadCorrectTiming)
369 && acs->threeChances.time >= -5
370 ) {
371 s32 (*difficultyVec)[2] = (s32 (*)[2])battleStatus->actionCmdDifficultyTable;
372 window = difficultyVec[acs->difficulty][0] + difficultyVec[acs->difficulty][1] + ANTI_MASH_TIME;
373 pos = battleStatus->inputBufferPos;
374 pos -= window;
375 if (pos < 0) {
376 pos += ARRAY_COUNT(battleStatus->pushInputBuffer);
377 }
378 if (window == 0) {
379 window = 1;
380 }
381 // iterate through last N inputs looking for button presses
382 for (i = 0; i < window; pos++, i++) {
383 if (pos >= ARRAY_COUNT(battleStatus->pushInputBuffer)) {
384 pos -= ARRAY_COUNT(battleStatus->pushInputBuffer);
385 }
386
387 if (i < ANTI_MASH_TIME && (battleStatus->pushInputBuffer[pos] & BUTTON_A)) {
388 acs->wrongButtonPressed = TRUE;
389 }
390
391 if (((battleStatus->pushInputBuffer[pos] & BUTTON_A) && !acs->wrongButtonPressed) || acs->autoSucceed) {
392 acs->threeChances.hadCorrectTiming = TRUE;
393 battleStatus->actionProgress++;
394 break;
395 }
396 }
397 }
398
399 // if an input is received, show an early verdict
400 if ((acs->threeChances.time > -5)
401 && (acs->wrongButtonPressed || acs->threeChances.hadCorrectTiming)
402 ) {
403 hid = acs->hudElemIDs[HIDX_RATING_1];
404 if (acs->threeChances.hadCorrectTiming) {
406 } else {
408 }
409 hud_element_set_render_pos(hid, acs->hudPosX + 28, acs->hudPosY + 38);
411 }
412
413 // after six frames, show the verdict
414 if (acs->threeChances.time == -5) {
415 hid = acs->hudElemIDs[HIDX_RATING_1];
416 if (acs->threeChances.hadCorrectTiming) {
418 } else {
420 }
421 hud_element_set_render_pos(hid, acs->hudPosX + 28, acs->hudPosY + 38);
424 }
425
426 acs->threeChances.time--;
427
428 // activate the second light just before the next state begins
429 if (acs->stateTimer == 2) {
433 }
434
435 acs->stateTimer--;
436
437 if (acs->stateTimer == 0) {
438 acs->stateTimer = 20;
439 acs->threeChances.time = 0;
441 acs->threeChances.hadCorrectTiming = FALSE;
442 acs->wrongButtonPressed = FALSE;
443 }
444 break;
447 // in this state, test for input during the first six frames (threeChances.time >= -5), then display
448 // a verdict and wait until the full 20 frame state lifetime is complete before beginning the next one.
449
450 // first six frames, if no input has been received
451 if (!(acs->wrongButtonPressed || acs->threeChances.hadCorrectTiming)
452 && acs->threeChances.time >= -5
453 ) {
454 s32 (*difficultyVec)[2] = (s32 (*)[2])battleStatus->actionCmdDifficultyTable;
455 window = difficultyVec[acs->difficulty][0] + difficultyVec[acs->difficulty][1] + ANTI_MASH_TIME - 1;
456 if (window < 6) {
457 window = 6;
458 }
459 pos = battleStatus->inputBufferPos;
460 pos -= window;
461 if (pos < 0) {
462 pos += ARRAY_COUNT(battleStatus->pushInputBuffer);
463 }
464 if (window == 0) {
465 window = 1;
466 }
467 // iterate through last N inputs looking for button presses
468 for (i = 0; i < window; pos++, i++) {
469 if (pos >= ARRAY_COUNT(battleStatus->pushInputBuffer)) {
470 pos -= ARRAY_COUNT(battleStatus->pushInputBuffer);
471 }
472
473 if (i < ANTI_MASH_TIME) {
474 if (battleStatus->pushInputBuffer[pos] & BUTTON_A) {
475 acs->wrongButtonPressed = TRUE;
476 }
477 }
478
479 if (((battleStatus->pushInputBuffer[pos] & BUTTON_A) && !acs->wrongButtonPressed) || acs->autoSucceed) {
480 acs->threeChances.hadCorrectTiming = TRUE;
481 battleStatus->actionProgress++;
482 break;
483 }
484 }
485 }
486
487 // if an input is received, show an early verdict
488 if ((acs->threeChances.time > -5)
489 && (acs->wrongButtonPressed || acs->threeChances.hadCorrectTiming)
490 ) {
491 hid = acs->hudElemIDs[HIDX_RATING_2];
492 if (acs->threeChances.hadCorrectTiming) {
494 } else {
496 }
497 hud_element_set_render_pos(hid, acs->hudPosX + 48, acs->hudPosY + 38);
499 }
500
501 // after six frames, show the verdict
502 if (acs->threeChances.time == -5) {
503 hid = acs->hudElemIDs[HIDX_RATING_2];
504 if (acs->threeChances.hadCorrectTiming) {
506 } else {
508 }
509 hud_element_set_render_pos(hid, acs->hudPosX + 48, acs->hudPosY + 38);
512 }
513
514 acs->threeChances.time--;
515
516 // activate the third light just before the next state begins
517 if (acs->stateTimer == 2) {
521 }
522
523 acs->stateTimer--;
524
525 if (acs->stateTimer == 0) {
526 acs->stateTimer = 20;
527 acs->threeChances.time = 0;
529 acs->threeChances.hadCorrectTiming = FALSE;
530 acs->wrongButtonPressed = FALSE;
531 }
532 break;
535 // in this state, test for input during the first six frames (threeChances.time >= -5), then display
536 // a verdict and begin wrapping up the action command.
537
538 // first six frames, if no input has been received
539 if (!(acs->wrongButtonPressed || acs->threeChances.hadCorrectTiming)
540 && acs->threeChances.time >= -5
541 ) {
542 s32 (*difficultyVec)[2] = (s32 (*)[2])battleStatus->actionCmdDifficultyTable;
543 window = difficultyVec[acs->difficulty][0] + difficultyVec[acs->difficulty][1] + ANTI_MASH_TIME - 2;
544 if (window < 6) {
545 window = 6;
546 }
547 pos = battleStatus->inputBufferPos;
548 pos -= window;
549 if (pos < 0) {
550 pos += ARRAY_COUNT(battleStatus->pushInputBuffer);
551 }
552 if (window == 0) {
553 window = 1;
554 }
555 // iterate through last N inputs looking for button presses
556 for (i = 0; i < window; pos++, i++) {
557 if (pos >= ARRAY_COUNT(battleStatus->pushInputBuffer)) {
558 pos -= ARRAY_COUNT(battleStatus->pushInputBuffer);
559 }
560
561 if (i < ANTI_MASH_TIME) {
562 if (battleStatus->pushInputBuffer[pos] & BUTTON_A) {
563 acs->wrongButtonPressed = TRUE;
564 }
565 }
566
567 if (((battleStatus->pushInputBuffer[pos] & BUTTON_A) && !acs->wrongButtonPressed) ||
568 acs->autoSucceed) {
569 acs->threeChances.hadCorrectTiming = TRUE;
570 battleStatus->actionProgress++;
571 break;
572 }
573 }
574 }
575
576 // if an input is received, show an early verdict
577 if ((acs->threeChances.time > -5)
578 && (acs->wrongButtonPressed || acs->threeChances.hadCorrectTiming)
579 ) {
580 hid = acs->hudElemIDs[HIDX_RATING_3];
581 if (acs->threeChances.hadCorrectTiming) {
583 } else {
585 }
586 hud_element_set_render_pos(hid, acs->hudPosX + 68, acs->hudPosY + 38);
588 }
589
590 // after six frames, show the verdict
591 if (acs->threeChances.time == -5) {
592 hid = acs->hudElemIDs[HIDX_RATING_3];
593 if (acs->threeChances.hadCorrectTiming) {
595 } else {
597 }
598 hud_element_set_render_pos(hid, acs->hudPosX + 68, acs->hudPosY + 38);
602 return;
603 }
604
605 acs->threeChances.time--;
606 break;
608 if (battleStatus->actionProgress == 0) {
609 battleStatus->actionQuality = AC_QUALITY_FAILED;
610 } else {
611 battleStatus->actionQuality = battleStatus->actionProgress;
612 }
613 battleStatus->actionResult = ACTION_RESULT_SUCCESS;
614 if (battleStatus->actionQuality == 3) {
616 }
618 acs->stateTimer = 5;
620 break;
622 if (acs->stateTimer != 0) {
623 acs->stateTimer--;
624 return;
625 }
627 break;
628 }
629}
BSS ActionCommandStatus gActionCommandStatus
Definition action_cmd.c:91
void action_command_free(void)
Definition action_cmd.c:446
void increment_action_command_success_count(void)
Definition action_cmd.c:655
HudScript HES_TimingCharge3
#define AC_QUALITY_FAILED
Definition action_cmd.h:66
HudScript HES_AButton
HudElemID hudElemIDs[16]
Definition action_cmd.h:83
HudScript HES_TimingReady
HudScript HES_TimingOK
HudScript HES_AButtonDown
HudScript HES_TimingMiss
HudScript HES_TimingCharge2
s32 HudElemID
Vec3s pos
Definition demo_api.c:17
@ BUTTON_A
Definition enums.h:2790
@ SOUND_TIMING_BAR_TICK
Definition enums.h:952
@ SOUND_TIMING_BAR_GO
Definition enums.h:953
@ ACTION_RESULT_SUCCESS
Definition enums.h:1968
void btl_set_popup_duration(s32 duration)
void hud_element_set_alpha(s32 id, s32 opacity)
void hud_element_set_script(s32 id, HudScript *anim)
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.
@ HUD_ELEMENT_FLAG_DISABLED
Definition hud_element.h:72
void sfx_play_sound(s32 soundID)
Definition sfx.c:517
#define ARRAY_COUNT(arr)
Definition macros.h:40
#define POPUP_MSG_OFF
Definition battle.h:270
#define POPUP_MSG_ON
Definition battle.h:269
s32 * actionCmdDifficultyTable
s32 pushInputBuffer[64]
#define ANTI_MASH_TIME
@ ACV_THREE_CHANCES_CLOUD_NINE
@ ACV_THREE_CHANCES_TURBO_CHARGE
@ ACV_THREE_CHANCES_WATER_BLOCK
BattleStatus gBattleStatus
Definition battle.c:11

◆ draw()

◆ free()

Variable Documentation

◆ actionCmdTableWaterBlock

s32 actionCmdTableWaterBlock[][2]
extern

Definition at line 49 of file action_cmd.c.

49{ {6, 3}, {5, 3}, {4, 3}, {2, 3}, {1, 3}, {0, 3}, {0, 2}, {0, 1} };

◆ HES_Digit1

HudScript HES_Digit1 = HES_TEMPLATE_CI_ENUM_SIZE(battle_action_cmd_three_chances_1, 24, 24)

Definition at line 68 of file three_chances.c.

◆ HES_Digit2

HudScript HES_Digit2 = HES_TEMPLATE_CI_ENUM_SIZE(battle_action_cmd_three_chances_2, 24, 24)

Definition at line 69 of file three_chances.c.

◆ HES_Digit3

HudScript HES_Digit3 = HES_TEMPLATE_CI_ENUM_SIZE(battle_action_cmd_three_chances_3, 24, 24)

Definition at line 70 of file three_chances.c.

◆ HES_Digit0

HudScript HES_Digit0 = HES_TEMPLATE_CI_ENUM_SIZE(battle_action_cmd_three_chances_0, 24, 24)

Definition at line 71 of file three_chances.c.

◆ HES_Digit4

HudScript HES_Digit4 = HES_TEMPLATE_CI_ENUM_SIZE(battle_action_cmd_three_chances_4, 24, 24)

Definition at line 72 of file three_chances.c.

◆ HES_WaterBlock

HudScript HES_WaterBlock = HES_TEMPLATE_CI_ENUM_SIZE(battle_action_cmd_three_chances_block, 32, 32)

Definition at line 74 of file three_chances.c.

◆ HES_TurboCharge

HudScript HES_TurboCharge = HES_TEMPLATE_CI_ENUM_SIZE(battle_action_cmd_three_chances_circle, 40, 40)

Definition at line 75 of file three_chances.c.

◆ HES_CloudNine

HudScript HES_CloudNine = HES_TEMPLATE_CI_ENUM_SIZE(battle_action_cmd_three_chances_cloud, 40, 40)

Definition at line 76 of file three_chances.c.

◆ DigitScripts

HudScript* DigitScripts[]
Initial value:
= {
}
HudScript HES_Digit4
HudScript HES_Digit2
HudScript HES_Digit3
HudScript HES_Digit1
HudScript HES_Digit0

Definition at line 78 of file three_chances.c.

78 {
89};

Referenced by draw().