Paper Mario DX
Paper Mario (N64) modding
 
Loading...
Searching...
No Matches
water_block.c
Go to the documentation of this file.
1#include "common.h"
2#include "battle/action_cmd.h"
3#include "include_asset.h"
4
5#define NAMESPACE action_command_water_block
6
7INCLUDE_IMG("battle/action_cmd/water_block_1.png", battle_action_cmd_water_block_1_png);
8INCLUDE_PAL("battle/action_cmd/water_block_1.pal", battle_action_cmd_water_block_1_pal);
9
10INCLUDE_IMG("battle/action_cmd/water_block_2.png", battle_action_cmd_water_block_2_png);
11INCLUDE_PAL("battle/action_cmd/water_block_2.pal", battle_action_cmd_water_block_2_pal);
12
13INCLUDE_IMG("battle/action_cmd/water_block_3.png", battle_action_cmd_water_block_3_png);
14INCLUDE_PAL("battle/action_cmd/water_block_3.pal", battle_action_cmd_water_block_3_pal);
15
16INCLUDE_IMG("battle/action_cmd/water_block_0.png", battle_action_cmd_water_block_0_png);
17INCLUDE_PAL("battle/action_cmd/water_block_0.pal", battle_action_cmd_water_block_0_pal);
18
19INCLUDE_IMG("battle/action_cmd/water_block_block.png", battle_action_cmd_water_block_block_png);
20INCLUDE_PAL("battle/action_cmd/water_block_block.pal", battle_action_cmd_water_block_block_pal);
21
22INCLUDE_IMG("battle/action_cmd/water_block_circle.png", battle_action_cmd_water_block_circle_png);
23INCLUDE_PAL("battle/action_cmd/water_block_circle.pal", battle_action_cmd_water_block_circle_pal);
24
25INCLUDE_IMG("battle/action_cmd/water_block_cloud.png", battle_action_cmd_water_block_cloud_png);
26INCLUDE_PAL("battle/action_cmd/water_block_cloud.pal", battle_action_cmd_water_block_cloud_pal);
27
28INCLUDE_IMG("battle/action_cmd/water_block_4.png", battle_action_cmd_water_block_4_png);
29INCLUDE_PAL("battle/action_cmd/water_block_4.pal", battle_action_cmd_water_block_4_pal);
30
35 HUD_ELEMENT_OP_SetCI, 60, (s32)battle_action_cmd_water_block_1_png, (s32)battle_action_cmd_water_block_1_pal,
36 0x00000003,
38};
39
44 HUD_ELEMENT_OP_SetCI, 60, (s32)battle_action_cmd_water_block_2_png, (s32)battle_action_cmd_water_block_2_pal,
45 0x00000003,
47};
48
53 HUD_ELEMENT_OP_SetCI, 60, (s32)battle_action_cmd_water_block_3_png, (s32)battle_action_cmd_water_block_3_pal,
54 0x00000003,
56};
57
62 HUD_ELEMENT_OP_SetCI, 60, (s32)battle_action_cmd_water_block_0_png, (s32)battle_action_cmd_water_block_0_pal,
63 0x00000003,
65};
66
71 HUD_ELEMENT_OP_SetCI, 60, (s32)battle_action_cmd_water_block_4_png, (s32)battle_action_cmd_water_block_4_pal,
72 0x00000003,
74};
75
80 HUD_ELEMENT_OP_SetCI, 60, (s32)battle_action_cmd_water_block_block_png, (s32)battle_action_cmd_water_block_block_pal,
81 0x00000003,
83};
84
89 HUD_ELEMENT_OP_SetCI, 60, (s32)battle_action_cmd_water_block_circle_png, (s32)battle_action_cmd_water_block_circle_pal,
90 0x00000003,
92};
93
98 HUD_ELEMENT_OP_SetCI, 60, (s32)battle_action_cmd_water_block_cloud_png, (s32)battle_action_cmd_water_block_cloud_pal,
99 0x00000003,
101};
102
106
110
111extern s32 actionCmdTableWaterBlock[];
112
113API_CALLABLE(N(init)) {
114 ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;
115 BattleStatus* battleStatus = &gBattleStatus;
116 Bytecode* args = script->ptrReadPos;
117 s32 id;
118
119 battleStatus->unk_82 = 5;
121
123 battleStatus->actionSuccess = 0;
124 return ApiStatus_DONE2;
125 }
126
128 actionCommandStatus->actionCommandID = ACTION_COMMAND_WATER_BLOCK;
129 actionCommandStatus->state = 0;
130 actionCommandStatus->wrongButtonPressed = FALSE;
131 actionCommandStatus->barFillLevel = 0;
132 actionCommandStatus->barFillWidth = 0;
133 actionCommandStatus->targetWeakness = evt_get_variable(script, *args++);
134 battleStatus->actionQuality = 1;
135 actionCommandStatus->hudPrepareTime = 30;
136 actionCommandStatus->hudPosX = -48;
137 actionCommandStatus->hudPosY = 80;
138
140 actionCommandStatus->hudElements[0] = id;
142 hud_element_set_render_pos(id, actionCommandStatus->hudPosX, actionCommandStatus->hudPosY);
144
146 actionCommandStatus->hudElements[1] = id;
147 hud_element_set_render_pos(id, actionCommandStatus->hudPosX, actionCommandStatus->hudPosY + 28);
150
152 actionCommandStatus->hudElements[2] = id;
153 hud_element_set_render_pos(id, actionCommandStatus->hudPosX, actionCommandStatus->hudPosY + 28);
156
158 actionCommandStatus->hudElements[3] = id;
159 hud_element_set_render_pos(id, actionCommandStatus->hudPosX, actionCommandStatus->hudPosY + 28);
162
164 actionCommandStatus->hudElements[4] = id;
165 hud_element_set_render_pos(id, actionCommandStatus->hudPosX, actionCommandStatus->hudPosY + 28);
168
170 actionCommandStatus->hudElements[6] = id;
171 hud_element_set_render_pos(id, actionCommandStatus->hudPosX, actionCommandStatus->hudPosY);
174
176 actionCommandStatus->hudElements[7] = id;
177 hud_element_set_render_pos(id, actionCommandStatus->hudPosX, actionCommandStatus->hudPosY);
180
182 actionCommandStatus->hudElements[8] = id;
183 hud_element_set_render_pos(id, actionCommandStatus->hudPosX, actionCommandStatus->hudPosY);
186
187 actionCommandStatus->hudElements[10] = hud_element_create(D_802AB184_42C674[0]);
188 hud_element_set_render_pos(actionCommandStatus->hudElements[10],
189 actionCommandStatus->hudPosX, actionCommandStatus->hudPosY);
190
191 actionCommandStatus->hudElements[11] = hud_element_create(&HES_TimingCharge4c);
192 hud_element_set_render_pos(actionCommandStatus->hudElements[11],
193 actionCommandStatus->hudPosX, actionCommandStatus->hudPosY);
194
196 actionCommandStatus->hudElements[12] = id;
197 hud_element_set_render_pos(id, actionCommandStatus->hudPosX, actionCommandStatus->hudPosY);
198
199 switch (actionCommandStatus->targetWeakness) {
200 case 0:
201 actionCommandStatus->hudElements[13] = hud_element_create(&HES_WaterBlockBlock);
202 id = actionCommandStatus->hudElements[13];
203 break;
204 case 1:
205 actionCommandStatus->hudElements[13] = hud_element_create(&HES_WaterBlockCircle);
206 id = actionCommandStatus->hudElements[13];
207 break;
208 case 2:
209 actionCommandStatus->hudElements[13] = hud_element_create(&HES_WaterBlockCloud);
210 id = actionCommandStatus->hudElements[13];
211 break;
212 }
213
214 hud_element_set_render_pos(id, actionCommandStatus->hudPosX, actionCommandStatus->hudPosY);
215 return ApiStatus_DONE2;
216}
217
218API_CALLABLE(N(start)) {
219 ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;
220 BattleStatus* battleStatus = &gBattleStatus;
221 Bytecode* args = script->ptrReadPos;
222
224 battleStatus->actionSuccess = 0;
225 return ApiStatus_DONE2;
226 }
227
229 actionCommandStatus->prepareTime = evt_get_variable(script, *args++);
230 actionCommandStatus->duration = evt_get_variable(script, *args++);
231 actionCommandStatus->difficulty = evt_get_variable(script, *args++);
232 actionCommandStatus->difficulty = adjust_action_command_difficulty(actionCommandStatus->difficulty);
233 actionCommandStatus->wrongButtonPressed = FALSE;
234 actionCommandStatus->barFillLevel = 0;
235 actionCommandStatus->barFillWidth = 0;
236 battleStatus->actionQuality = 1;
237 battleStatus->actionSuccess = 0;
238 battleStatus->actionResult = ACTION_RESULT_FAIL;
239 actionCommandStatus->state = 10;
240 battleStatus->flags1 &= ~BS_FLAGS1_FREE_ACTION_COMMAND;
242 return ApiStatus_DONE2;
243}
244
245void N(update)(void) {
246 ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;
247 BattleStatus* battleStatus = &gBattleStatus;
248 s32 pos;
249 s32 i;
250 s32 limit;
251 s32 id;
252
253 switch (actionCommandStatus->state) {
254 case 0:
256 id = actionCommandStatus->hudElements[0];
257 if (actionCommandStatus->showHud) {
259 }
260 hud_element_set_alpha(id, 255);
261 id = actionCommandStatus->hudElements[1];
262 hud_element_set_alpha(id, 255);
263 if (actionCommandStatus->showHud) {
265 }
266 id = actionCommandStatus->hudElements[2];
267 hud_element_set_alpha(id, 255);
268 if (actionCommandStatus->showHud) {
270 }
271 id = actionCommandStatus->hudElements[3];
272 hud_element_set_alpha(id, 255);
273 if (actionCommandStatus->showHud) {
275 }
276 id = actionCommandStatus->hudElements[4];
277 hud_element_set_alpha(id, 255);
278 if (actionCommandStatus->showHud) {
280 }
281 id = actionCommandStatus->hudElements[10];
282 hud_element_set_alpha(id, 255);
283 if (actionCommandStatus->showHud) {
285 }
286 id = actionCommandStatus->hudElements[11];
287 hud_element_set_alpha(id, 255);
288 if (actionCommandStatus->showHud) {
290 }
291 id = actionCommandStatus->hudElements[12];
292 hud_element_set_alpha(id, 255);
293 if (actionCommandStatus->showHud) {
295 }
296 id = actionCommandStatus->hudElements[13];
297 hud_element_set_alpha(id, 255);
298 if (actionCommandStatus->showHud) {
300 }
301 actionCommandStatus->state = 1;
302 break;
303 case 1:
305 if (actionCommandStatus->hudPrepareTime != 0) {
306 actionCommandStatus->hudPrepareTime--;
307 return;
308 }
309 actionCommandStatus->hudPosX += 20;
310 if (actionCommandStatus->hudPosX > 50) {
311 actionCommandStatus->hudPosX = 50;
312 }
313 hud_element_set_render_pos(actionCommandStatus->hudElements[0], actionCommandStatus->hudPosX, actionCommandStatus->hudPosY);
314 hud_element_set_render_pos(actionCommandStatus->hudElements[1], actionCommandStatus->hudPosX + 28, actionCommandStatus->hudPosY + 28);
315 hud_element_set_render_pos(actionCommandStatus->hudElements[2], actionCommandStatus->hudPosX + 21, actionCommandStatus->hudPosY + 24);
316 hud_element_set_render_pos(actionCommandStatus->hudElements[3], actionCommandStatus->hudPosX + 41, actionCommandStatus->hudPosY + 24);
317 hud_element_set_render_pos(actionCommandStatus->hudElements[4], actionCommandStatus->hudPosX + 61, actionCommandStatus->hudPosY + 24);
318
319 id = actionCommandStatus->hudElements[10];
320 switch (actionCommandStatus->targetWeakness) {
321 case 0:
322 hud_element_set_render_pos(id, actionCommandStatus->hudPosX + 91, actionCommandStatus->hudPosY + 7);
323 break;
324 case 1:
325 hud_element_set_render_pos(id, actionCommandStatus->hudPosX + 91, actionCommandStatus->hudPosY + 13);
326 break;
327 case 2:
328 hud_element_set_render_pos(id, actionCommandStatus->hudPosX + 91, actionCommandStatus->hudPosY + 13);
329 break;
330 }
331
332 hud_element_set_render_pos(actionCommandStatus->hudElements[11], actionCommandStatus->hudPosX - 5, actionCommandStatus->hudPosY + 29);
333 hud_element_set_render_pos(actionCommandStatus->hudElements[12], actionCommandStatus->hudPosX + 7, actionCommandStatus->hudPosY + 29);
334 hud_element_set_render_pos(actionCommandStatus->hudElements[13], actionCommandStatus->hudPosX + 92, actionCommandStatus->hudPosY + 23);
335 break;
336 case 10:
338 if (actionCommandStatus->prepareTime != 0) {
339 actionCommandStatus->prepareTime--;
340 return;
341 }
342
343 actionCommandStatus->frameCounter = actionCommandStatus->duration - 60;
344 if (actionCommandStatus->frameCounter < 42) {
345 actionCommandStatus->frameCounter = 42;
346 }
347 actionCommandStatus->state = 11;
348 // fallthrough
349 case 11:
351 if (actionCommandStatus->frameCounter == 42) {
352 hud_element_set_script(actionCommandStatus->hudElements[11], &HES_TimingCharge3);
354 }
355 if (actionCommandStatus->frameCounter == 22) {
356 hud_element_set_script(actionCommandStatus->hudElements[12], &HES_TimingCharge2);
358 }
359 if (actionCommandStatus->frameCounter == 2) {
360 hud_element_set_script(actionCommandStatus->hudElements[2], &HES_TimingReady);
361 hud_element_set_script(actionCommandStatus->hudElements[0], &HES_AButtonDown);
363 }
364 actionCommandStatus->frameCounter--;
365 if (actionCommandStatus->frameCounter == 0) {
366 actionCommandStatus->frameCounter = 20;
367 actionCommandStatus->unk_5D = 0;
368 actionCommandStatus->state = 12;
369 actionCommandStatus->unk_5C = 0;
370 actionCommandStatus->wrongButtonPressed = FALSE;
371 }
372 break;
373 case 12:
375 if (!actionCommandStatus->wrongButtonPressed && (actionCommandStatus->unk_5C == 0) && (actionCommandStatus->unk_5D >= -5)) {
376 limit = battleStatus->actionCmdDifficultyTable[actionCommandStatus->difficulty * 2] +
377 battleStatus->actionCmdDifficultyTable[actionCommandStatus->difficulty * 2 + 1] +
378 5;
379 pos = battleStatus->inputBufferPos;
380 pos -= limit;
381 if (pos < 0) {
382 pos += ARRAY_COUNT(battleStatus->pushInputBuffer);
383 }
384 if (limit == 0) {
385 limit = 1;
386 }
387
388 for (i = 0; i < limit; pos++, i++) {
389 if (pos >= ARRAY_COUNT(battleStatus->pushInputBuffer)) {
390 pos -= ARRAY_COUNT(battleStatus->pushInputBuffer);
391 }
392
393 if (i < 5 && (battleStatus->pushInputBuffer[pos] & BUTTON_A)) {
394 actionCommandStatus->wrongButtonPressed = TRUE;
395 }
396
397 if (((battleStatus->pushInputBuffer[pos] & BUTTON_A) && !actionCommandStatus->wrongButtonPressed) ||
398 actionCommandStatus->autoSucceed) {
399 actionCommandStatus->unk_5C = 1;
400 battleStatus->actionQuality++;
401 break;
402 }
403 }
404 }
405
406 if ((actionCommandStatus->unk_5D >= -4) && (actionCommandStatus->wrongButtonPressed || (actionCommandStatus->unk_5C != 0))) {
407 id = actionCommandStatus->hudElements[6];
408 if (actionCommandStatus->unk_5C != 0) {
410 } else {
412 }
413 hud_element_set_render_pos(id, actionCommandStatus->hudPosX + 28, actionCommandStatus->hudPosY + 38);
415 }
416
417 if (actionCommandStatus->unk_5D == -5) {
418 id = actionCommandStatus->hudElements[6];
419 if (actionCommandStatus->unk_5C != 0) {
421 } else {
423 }
424 hud_element_set_render_pos(id, actionCommandStatus->hudPosX + 28, actionCommandStatus->hudPosY + 38);
426 hud_element_set_script(actionCommandStatus->hudElements[0], &HES_AButton);
427 }
428 actionCommandStatus->unk_5D--;
429 if (actionCommandStatus->frameCounter == 2) {
430 hud_element_set_script(actionCommandStatus->hudElements[3], &HES_TimingReady);
431 hud_element_set_script(actionCommandStatus->hudElements[0], &HES_AButtonDown);
433 }
434 actionCommandStatus->frameCounter--;
435 if (actionCommandStatus->frameCounter == 0) {
436 actionCommandStatus->frameCounter = 20;
437 actionCommandStatus->unk_5D = 0;
438 actionCommandStatus->state = 13;
439 actionCommandStatus->unk_5C = 0;
440 actionCommandStatus->wrongButtonPressed = FALSE;
441 }
442 break;
443 case 13:
445 if (!actionCommandStatus->wrongButtonPressed && (actionCommandStatus->unk_5C == 0) && (actionCommandStatus->unk_5D >= -5)) {
446 limit = battleStatus->actionCmdDifficultyTable[actionCommandStatus->difficulty * 2] +
447 battleStatus->actionCmdDifficultyTable[actionCommandStatus->difficulty * 2 + 1] +
448 4;
449 if (limit < 6) {
450 limit = 6;
451 }
452 pos = battleStatus->inputBufferPos;
453 pos -= limit;
454 if (pos < 0) {
455 pos += ARRAY_COUNT(battleStatus->pushInputBuffer);
456 }
457 if (limit == 0) {
458 limit = 1;
459 }
460
461 for (i = 0; i < limit; pos++, i++) {
462 if (pos >= ARRAY_COUNT(battleStatus->pushInputBuffer)) {
463 pos -= ARRAY_COUNT(battleStatus->pushInputBuffer);
464 }
465
466 if (i < 5) {
467 if (battleStatus->pushInputBuffer[pos] & BUTTON_A) {
468 actionCommandStatus->wrongButtonPressed = TRUE;
469 }
470 }
471
472 if (((battleStatus->pushInputBuffer[pos] & BUTTON_A) && !actionCommandStatus->wrongButtonPressed) ||
473 actionCommandStatus->autoSucceed) {
474 actionCommandStatus->unk_5C = 1;
475 battleStatus->actionQuality++;
476 break;
477 }
478 }
479 }
480
481 if ((actionCommandStatus->unk_5D >= -4) && (actionCommandStatus->wrongButtonPressed || (actionCommandStatus->unk_5C != 0))) {
482 id = actionCommandStatus->hudElements[7];
483 if (actionCommandStatus->unk_5C != 0) {
485 } else {
487 }
488 hud_element_set_render_pos(id, actionCommandStatus->hudPosX + 48, actionCommandStatus->hudPosY + 38);
490 }
491 if (actionCommandStatus->unk_5D == -5) {
492 id = actionCommandStatus->hudElements[7];
493 if (actionCommandStatus->unk_5C != 0) {
495 } else {
497 }
498 hud_element_set_render_pos(id, actionCommandStatus->hudPosX + 48, actionCommandStatus->hudPosY + 38);
500 hud_element_set_script(actionCommandStatus->hudElements[0], &HES_AButton);
501 }
502 actionCommandStatus->unk_5D--;
503 if (actionCommandStatus->frameCounter == 2) {
504 hud_element_set_script(actionCommandStatus->hudElements[4], &HES_TimingReady);
505 hud_element_set_script(actionCommandStatus->hudElements[0], &HES_AButtonDown);
507 }
508 actionCommandStatus->frameCounter--;
509 if (actionCommandStatus->frameCounter == 0) {
510 actionCommandStatus->frameCounter = 20;
511 actionCommandStatus->unk_5D = 0;
512 actionCommandStatus->state = 14;
513 actionCommandStatus->unk_5C = 0;
514 actionCommandStatus->wrongButtonPressed = FALSE;
515 }
516 break;
517 case 14:
519 if (!actionCommandStatus->wrongButtonPressed && (actionCommandStatus->unk_5C == 0) && (actionCommandStatus->unk_5D >= -5)) {
520 limit = battleStatus->actionCmdDifficultyTable[actionCommandStatus->difficulty * 2] +
521 battleStatus->actionCmdDifficultyTable[actionCommandStatus->difficulty * 2 + 1] +
522 3;
523 if (limit < 6) {
524 limit = 6;
525 }
526 pos = battleStatus->inputBufferPos;
527 pos -= limit;
528 if (pos < 0) {
529 pos += ARRAY_COUNT(battleStatus->pushInputBuffer);
530 }
531 if (limit == 0) {
532 limit = 1;
533 }
534
535 for (i = 0; i < limit; pos++, i++) {
536 if (pos >= ARRAY_COUNT(battleStatus->pushInputBuffer)) {
537 pos -= ARRAY_COUNT(battleStatus->pushInputBuffer);
538 }
539
540 if (i < 5) {
541 if (battleStatus->pushInputBuffer[pos] & BUTTON_A) {
542 actionCommandStatus->wrongButtonPressed = TRUE;
543 }
544 }
545
546 if (((battleStatus->pushInputBuffer[pos] & BUTTON_A) && !actionCommandStatus->wrongButtonPressed) ||
547 actionCommandStatus->autoSucceed) {
548 actionCommandStatus->unk_5C = 1;
549 battleStatus->actionQuality++;
550 break;
551 }
552 }
553 }
554 if (actionCommandStatus->unk_5D >= -4) {
555 if (actionCommandStatus->wrongButtonPressed || (actionCommandStatus->unk_5C != 0)) {
556 id = actionCommandStatus->hudElements[8];
557 if (actionCommandStatus->unk_5C != 0) {
559 } else {
561 }
562 hud_element_set_render_pos(id, actionCommandStatus->hudPosX + 68, actionCommandStatus->hudPosY + 38);
564 }
565 }
566 if (actionCommandStatus->unk_5D == -5) {
567 id = actionCommandStatus->hudElements[8];
568 if (actionCommandStatus->unk_5C != 0) {
570 } else {
572 }
573 hud_element_set_render_pos(id, actionCommandStatus->hudPosX + 68, actionCommandStatus->hudPosY + 38);
575 hud_element_set_script(actionCommandStatus->hudElements[0], &HES_AButton);
576 actionCommandStatus->state = 16;
577 return;
578 }
579 actionCommandStatus->unk_5D--;
580 break;
581 case 16:
582 if (battleStatus->actionQuality == 0) {
583 battleStatus->actionSuccess = -1;
584 } else {
585 battleStatus->actionSuccess = battleStatus->actionQuality;
586 }
587 battleStatus->actionResult = ACTION_RESULT_SUCCESS;
588 if (battleStatus->actionSuccess == 3) {
590 }
592 actionCommandStatus->frameCounter = 5;
593 actionCommandStatus->state = 17;
594 break;
595 case 17:
596 if (actionCommandStatus->frameCounter != 0) {
597 actionCommandStatus->frameCounter--;
598 return;
599 }
601 break;
602 }
603}
604
605void N(draw)(void) {
606 s32 hudElement;
607 ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;
608 BattleStatus* battleStatus = &gBattleStatus;
609
610 hud_element_draw_clipped(actionCommandStatus->hudElements[0]);
611 hud_element_draw_clipped(actionCommandStatus->hudElements[1]);
612 hud_element_draw_clipped(actionCommandStatus->hudElements[2]);
613 hud_element_draw_clipped(actionCommandStatus->hudElements[3]);
614 hud_element_draw_clipped(actionCommandStatus->hudElements[4]);
615 hud_element_draw_clipped(actionCommandStatus->hudElements[6]);
616 hud_element_draw_clipped(actionCommandStatus->hudElements[7]);
617 hud_element_draw_clipped(actionCommandStatus->hudElements[8]);
618 hud_element_draw_clipped(actionCommandStatus->hudElements[13]);
619
620 hudElement = actionCommandStatus->hudElements[10];
621 if (hud_element_get_script(hudElement) != D_802AB180_42C670[battleStatus->actionQuality]) {
622 hud_element_set_script(hudElement, D_802AB180_42C670[battleStatus->actionQuality]);
623 }
624
625 hud_element_draw_clipped(hudElement);
626 hud_element_draw_clipped(actionCommandStatus->hudElements[11]);
627 hud_element_draw_clipped(actionCommandStatus->hudElements[12]);
628}
629
BSS ActionCommandStatus gActionCommandStatus
Definition action_cmd.c:91
void func_80269160(void)
Definition action_cmd.c:655
void action_command_free(void)
Definition action_cmd.c:446
s32 adjust_action_command_difficulty(s32 arg0)
Definition action_cmd.c:101
void action_command_init_status(void)
Definition action_cmd.c:256
void func_80269118(void)
Definition action_cmd.c:641
HudScript HES_TimingCharge3
HudScript HES_AButton
HudScript HES_TimingReady
HudScript HES_TimingOK
HudScript HES_TimingCharge4b
HudScript HES_TimingBar3Chances
HudScript HES_TimingWait
HudScript HES_TimingCharge4c
HudScript HES_AButtonDown
HudScript HES_TimingMiss
HudScript HES_TimingCharge2
@ ACTION_COMMAND_MODE_NOT_LEARNED
Definition action_cmd.h:38
HudScript HES_WaterBlock4
Definition water_block.c:67
HudScript HES_WaterBlockBlock
Definition water_block.c:76
HudScript HES_WaterBlockCloud
Definition water_block.c:94
HudScript HES_WaterBlock0
Definition water_block.c:58
HudScript HES_WaterBlock1
Definition water_block.c:31
HudScript * D_802AB180_42C670[]
HudScript HES_WaterBlock2
Definition water_block.c:40
HudScript HES_WaterBlockCircle
Definition water_block.c:85
void N free(void)
HudScript HES_WaterBlock3
Definition water_block.c:49
s32 actionCmdTableWaterBlock[]
Definition action_cmd.c:49
void N update(void)
void N draw(void)
HudScript * D_802AB184_42C674[]
Vec3s pos
Definition demo_api.c:17
@ ACTION_COMMAND_WATER_BLOCK
Definition enums.h:3494
@ 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
@ ACTION_RESULT_FAIL
Definition enums.h:1967
#define ApiStatus_DONE2
Definition evt.h:118
s32 Bytecode
Definition evt.h:7
void btl_set_popup_duration(s32 duration)
s32 evt_get_variable(Evt *script, Bytecode var)
Definition evt.c:1690
void hud_element_set_alpha(s32 id, s32 opacity)
void hud_element_set_script(s32 id, HudScript *anim)
void hud_element_set_render_depth(s32 id, s32 z)
HudScript * hud_element_get_script(s32 id)
void hud_element_set_render_pos(s32 id, s32 x, s32 y)
s32 hud_element_create(HudScript *anim)
Creates a new HUD element and returns its ID.
void hud_element_set_flags(s32 id, s32 flags)
Turns on the given flags.
void hud_element_clear_flags(s32 id, s32 flags)
Turns off the given flags.
void hud_element_draw_clipped(s32 id)
void hud_element_free(s32 id)
@ HUD_ELEMENT_OP_SetCI
Definition hud_element.h:16
@ HUD_ELEMENT_OP_End
Definition hud_element.h:14
@ HUD_ELEMENT_OP_SetVisible
Definition hud_element.h:22
@ HUD_ELEMENT_OP_Loop
Definition hud_element.h:18
@ HUD_ELEMENT_OP_SetTileSize
Definition hud_element.h:19
@ HUD_ELEMENT_FLAG_DISABLED
Definition hud_element.h:74
@ HUD_ELEMENT_FLAG_80
Definition hud_element.h:80
@ HUD_ELEMENT_SIZE_24x24
Definition hud_element.h:47
@ HUD_ELEMENT_SIZE_40x40
Definition hud_element.h:64
@ HUD_ELEMENT_SIZE_32x32
Definition hud_element.h:48
s32 HudScript[]
Definition hud_element.h:9
#define INCLUDE_PAL(FILENAME, SYMBOLNAME)
#define INCLUDE_IMG(FILENAME, SYMBOLNAME)
void sfx_play_sound(s32 soundID)
Definition sfx.c:517
#define ARRAY_COUNT(arr)
Definition macros.h:40
s32 * actionCmdDifficultyTable
s32 pushInputBuffer[64]
BattleStatus gBattleStatus
Definition battle.c:11
void N init(Npc *bombette)
Definition bombette.c:66