Paper Mario DX
Paper Mario (N64) modding
 
Loading...
Searching...
No Matches
16C8E0.c
Go to the documentation of this file.
1#include "common.h"
2#include "nu/nusys.h"
3#include "hud_element.h"
4#include "battle/battle.h"
5#include "script_api/battle.h"
6#include "sprite.h"
7#include "effects.h"
9
16
32
43
49
51
52extern HudScript HES_HPBar;
56
57void btl_render_actors(void);
62
65 f32 maxMagnitude = 60.0f;
66 f32 stickX = battleStatus->stickX;
67 f32 stickY = battleStatus->stickY;
68 u16 currentButtonsDown = battleStatus->curButtonsDown;
69 f32 mag;
70
72 stickY = 0.0f;
73 stickX = 0.0f;
75 stickY = maxMagnitude;
76 }
78 stickY = -maxMagnitude;
79 }
81 stickX = -maxMagnitude;
82 }
84 stickX = maxMagnitude;
85 }
86 }
87
88 mag = dist2D(0.0f, 0.0f, stickX, -stickY);
89 if (mag >= maxMagnitude) {
90 mag = maxMagnitude;
91 }
92
93 *angle = atan2(0.0f, 0.0f, stickX, -stickY);
94 *magnitude = mag;
95}
96
101
106
110 Camera* tattleCam = &gCameras[CAM_TATTLE];
112 s32 i;
113
121
122 for (i = 0; i < ARRAY_COUNT(battleStatus->pushInputBuffer); i++) {
123 battleStatus->pushInputBuffer[i] = 0;
124 }
125
126 battleStatus->inputBufferPos = 0;
127 battleStatus->holdInputBufferPos = 0;
128 battleStatus->waitForState = BATTLE_STATE_NONE;
129
130 for (i = 0; i < ARRAY_COUNT(battleStatus->enemyActors); i++) {
131 battleStatus->enemyActors[i] = NULL;
132 }
133
134 battleStatus->playerActor = NULL;
135 battleStatus->partnerActor = NULL;
136
137 for (i = 0; i < ARRAY_COUNT(battleStatus->lastPlayerMenuSelection); i++) {
138 battleStatus->lastPlayerMenuSelection[i] = -1;
139 battleStatus->lastPartnerMenuSelection[i] = -1;
140 }
141
142 for (i = 0; i < ARRAY_COUNT(battleStatus->tattleFlags); i++) {
143 battleStatus->tattleFlags[i] = 0;
144 }
145
149 } else {
151 }
152
159
160 for (i = 0; i < ARRAY_COUNT(BtlStarPointTensHIDs); i++) {
164 }
165
166 for (i = 0; i < ARRAY_COUNT(BtlStarPointShinesHIDs); i++) {
170 }
171
172 for (i = 0; i < ARRAY_COUNT(BtlStarPointOnesHIDs); i++) {
176 }
177
180
181 if (playerData->battlesCount < 9999) {
182 playerData->battlesCount++;
183 }
184
185 bSavedPartner = playerData->curPartner;
187 playerData->curPartner = PARTNER_TWINK;
188 }
189}
190
197
198void btl_update(void) {
201 Actor* partner = battleStatus->partnerActor;
204 s32 cond;
205
206 if (battleStatus->inputBitmask != -1) {
208 s32 inputBitmask = battleStatus->inputBitmask;
209
210 battleStatus->curButtonsDown = gGameStatusPtr->curButtons[1] & inputBitmask;
211 battleStatus->curButtonsPressed = gGameStatusPtr->pressedButtons[1] & inputBitmask;
212 battleStatus->curButtonsHeld = gGameStatusPtr->heldButtons[1] & inputBitmask;
213 battleStatus->stickX = gGameStatusPtr->stickX[1];
214 battleStatus->stickY = gGameStatusPtr->stickY[1];
215 } else {
216 s32 inputBitmask2 = battleStatus->inputBitmask;
217
218 battleStatus->curButtonsDown = gGameStatusPtr->curButtons[0] & inputBitmask2;
219 battleStatus->curButtonsPressed = gGameStatusPtr->pressedButtons[0] & inputBitmask2;
221 battleStatus->stickX = gGameStatusPtr->stickX[0];
222 battleStatus->stickY = gGameStatusPtr->stickY[0];
223 }
224 }
225
227 battleStatus->stickAngle = outAngle;
228 battleStatus->stickMagnitude = outMagnitude;
229 battleStatus->pushInputBuffer[battleStatus->inputBufferPos] = battleStatus->curButtonsPressed;
230 battleStatus->holdInputBuffer[battleStatus->inputBufferPos] = battleStatus->curButtonsDown;
231
232 battleStatus->inputBufferPos++;
233 if (battleStatus->inputBufferPos >= ARRAY_COUNT(battleStatus->pushInputBuffer)) {
234 battleStatus->inputBufferPos = 0;
235 }
236
237 if (battleStatus->preUpdateCallback != NULL) {
238 battleStatus->preUpdateCallback();
239 }
240
241 cond = TRUE;
242 if (battleStatus->waitForState == BATTLE_STATE_NONE || battleStatus->waitForState != gBattleState) {
243 switch (gBattleState) {
246 return;
249 cond = FALSE;
250 break;
253 break;
256 break;
259 break;
262 break;
265 break;
268 break;
271 break;
274 break;
277 break;
280 break;
283 break;
286 break;
289 break;
292 break;
295 break;
298 break;
301 break;
304 break;
307 break;
310 break;
313 break;
316 break;
319 break;
322 break;
325 break;
328 break;
331 break;
334 break;
337 break;
340 break;
343 cond = FALSE;
344 break;
345 }
346 }
347
348 battleStatus->unk_90++;
349 if (battleStatus->unk_90 == 40) {
351 }
352
358
359 if (battleStatus->darknessMode != BTL_DARKNESS_STATE_LOCKED) {
362
364
365 if (battleStatus->darknessMode > BTL_DARKNESS_STATE_NONE) {
367 if (partner == NULL) {
369 } else if (playerData->curPartner == PARTNER_WATT) {
370 paramAmount -= 10.0f;
371 if (paramAmount < 0.0f) {
372 paramAmount = 0.0f;
373 }
375 } else {
376 paramAmount += 10.0f;
377 if (paramAmount > 215.0f) {
378 paramAmount = 215.0f;
379 }
381 }
382 } else if (battleStatus->darknessMode < BTL_DARKNESS_STATE_NONE) {
383 paramAmount -= 10.0f;
384 if (paramAmount < 0.0f) {
385 paramAmount = 0.0f;
388 } else {
390 }
391 }
392
393 if (cond || EndDemoWhiteOut != -1) {
394 if (EndDemoWhiteOut == -1) {
398
400 if (paramType == (u8) OVERLAY_NONE) {
401 EndDemoWhiteOut = 0;
403 }
404 }
405 } else if (EndDemoWhiteOut == 255) {
408 }
409 } else {
410 EndDemoWhiteOut += 10;
411 if (EndDemoWhiteOut > 255) {
412 EndDemoWhiteOut = 255;
413 }
414
419 }
420 }
421 }
422}
423
424void btl_draw_ui(void) {
425 s32 changed = FALSE;
426 s32 state;
427
428 state = gBattleState;
430 state = gLastDrawBattleState;
432 changed = TRUE;
433 } else {
434 switch (state) {
439 return;
441 return;
442 }
443 }
444
447
448 if (!changed) {
449 switch (state) {
452 break;
455 break;
458 break;
461 break;
464 break;
467 break;
470 break;
473 break;
476 break;
479 break;
482 break;
485 break;
488 break;
491 break;
494 break;
497 break;
500 break;
503 break;
506 break;
509 break;
512 break;
515 break;
518 break;
521 break;
524 break;
527 break;
530 break;
533 break;
536 break;
539 break;
542 break;
545 break;
546 }
547 }
550}
551
556 Actor* actor;
557 s32 i;
558
561 if (battleStatus->initBattleCallback != NULL) {
562 battleStatus->initBattleCallback();
563 }
566
568 for (i = 0; i < ARRAY_COUNT(battleStatus->enemyActors); i++) {
569 actor = battleStatus->enemyActors[i];
570
571 if (actor != NULL && !(actor->flags & ACTOR_FLAG_INVISIBLE)) {
572 renderTaskPtr->appendGfxArg = (void*)i;
574 renderTaskPtr->dist = actor->curPos.z;
575 renderTaskPtr->renderMode = actor->renderMode;
577
578 if (actor->flags & ACTOR_FLAG_BLUR_ENABLED) {
579 renderTaskPtr->appendGfxArg = actor;
581 renderTaskPtr->dist = actor->curPos.z;
584 }
585
586 if (battleStatus->reflectFlags & BS_REFLECT_FLOOR) {
587 renderTaskPtr->appendGfxArg = actor;
589 renderTaskPtr->dist = actor->curPos.z;
590 renderTaskPtr->renderMode = actor->renderMode;
592 }
593 }
594 }
595
596 actor = battleStatus->partnerActor;
597 if (actor != NULL && !(actor->flags & ACTOR_FLAG_INVISIBLE)) {
598 renderTaskPtr->appendGfxArg = NULL;
600 renderTaskPtr->dist = actor->curPos.z;
601 renderTaskPtr->renderMode = actor->renderMode;
603
604 if (actor->flags & ACTOR_FLAG_BLUR_ENABLED) {
605 renderTaskPtr->appendGfxArg = actor;
607 renderTaskPtr->dist = actor->curPos.z;
610 }
611
612 if (battleStatus->reflectFlags & BS_REFLECT_FLOOR) {
613 renderTaskPtr->appendGfxArg = NULL;
615 renderTaskPtr->dist = actor->curPos.z;
616 renderTaskPtr->renderMode = actor->renderMode;
618 }
619 }
620
621 actor = battleStatus->playerActor;
622 if (actor != NULL && !(actor->flags & ACTOR_FLAG_INVISIBLE)) {
623 renderTaskPtr->appendGfxArg = NULL;
625 renderTaskPtr->dist = actor->curPos.z;
626 renderTaskPtr->renderMode = actor->renderMode;
628
629 if (actor->flags & ACTOR_FLAG_BLUR_ENABLED) {
630 renderTaskPtr->appendGfxArg = actor;
631 renderTaskPtr->appendGfx = (void (*) (void*)) appendGfx_player_actor_blur;
632 renderTaskPtr->dist = actor->curPos.z;
635 }
636
637 if (battleStatus->reflectFlags & BS_REFLECT_FLOOR) {
638 renderTaskPtr->appendGfxArg = NULL;
640 renderTaskPtr->dist = actor->curPos.z;
641 renderTaskPtr->renderMode = actor->renderMode;
643 }
644 }
645 }
646 }
647 }
648}
649
651 return a + (b - a) * alpha / 256;
652}
653
657 u8 r1, g1, b1, a1;
658 s32 fogR, fogG, fogB, fogA;
659 s32 i;
660
662 s32 numLines;
664 s32 posX, posY;
665 s32 texOffsetX;
667 s16 texOffsetY;
668
670
671 if (is_world_fog_enabled()) {
676 if (fogA == 255) {
677 for (i = 0; i < ARRAY_COUNT(gTattleBgPalette); i++) {
678 gTattleBgPalette[i] = 1;
679 }
680 } else {
681 for (i = 0; i < ARRAY_COUNT(gTattleBgPalette); i++) {
686 gTattleBgPalette[i] = blendedB << 1 | blendedG << 6 | blendedR << 11 | 1;
687 }
688 }
689 }
690
699 gDPSetScissor(gMainGfxPos++, G_SC_NON_INTERLACE, cam->viewportStartX, cam->viewportStartY, cam->viewportStartX + cam->viewportW - 1, cam->viewportStartY + cam->viewportH - 1);
701 if (!fogEnabled) {
703 } else {
705 }
708 texOffsetX = 0;
709 lineHeight = 2048 / bgWidth;
712 posX = cam->viewportStartX;
713 posY = cam->viewportStartY;
714 for (i = 0; i < numLines; i++) {
715 texOffsetY = gTattleBgTextureYOffset + lineHeight * i;
716 if (texOffsetY > gGameStatusPtr->backgroundMaxY) {
717 texOffsetY -= gGameStatusPtr->backgroundMaxY;
718 }
721 0, 0, 295, 5, 0,
723
724 gSPTextureRectangle(gMainGfxPos++, posX * 4, (lineHeight * i + posY) * 4,
725 (texOffsetX + posX - 1) * 4, (lineHeight * i + lineHeight - 1 + posY) * 4,
726 G_TX_RENDERTILE, bgWidth * 32, 0, 4096, 1024);
727 gSPTextureRectangle(gMainGfxPos++, (texOffsetX + posX) * 4, (lineHeight * i + posY) * 4,
728 (bgWidth + posX - 1) * 4, (lineHeight * i + lineHeight - 1 + posY) * 4,
729 G_TX_RENDERTILE, 0, 0, 4096, 1024);
730 }
731 if (extraHeight != 0) {
732 texOffsetY = gTattleBgTextureYOffset + lineHeight * i;
733 if (texOffsetY > gGameStatusPtr->backgroundMaxY) {
734 texOffsetY -= gGameStatusPtr->backgroundMaxY;
735 }
738 0, 0, 295, extraHeight - 1, 0,
740 gSPTextureRectangle(gMainGfxPos++, posX * 4, (i * lineHeight + posY) * 4,
741 (texOffsetX + posX - 1) * 4, (bgHeight + - 1 + posY) * 4,
742 G_TX_RENDERTILE, bgWidth * 32, 0, 4096, 1024);
743 gSPTextureRectangle(gMainGfxPos++, (texOffsetX + posX) * 4, (i * lineHeight + posY) * 4,
744 (bgWidth + posX - 1) * 4, (bgHeight - 1 + posY) * 4,
745 G_TX_RENDERTILE, 0, 0, 4096, 1024);
746 }
747 }
748
749 gSPViewport(gMainGfxPos++, &cam->vp);
754 gDPSetScissorFrac(gMainGfxPos++, G_SC_NON_INTERLACE, cam->viewportStartX * 4.0f, cam->viewportStartY * 4.0f, (cam->viewportStartX + cam->viewportW) * 4.0f, (cam->viewportStartY + cam->viewportH) * 4.0f);
771 gDPFillRectangle(gMainGfxPos++, cam->viewportStartX, cam->viewportStartY, cam->viewportStartX + cam->viewportW - 1, cam->viewportStartY + cam->viewportH - 1);
774
777 gDPSetFillColor(gMainGfxPos++, PACK_FILL_COLOR(cam->bgColor[0], cam->bgColor[1], cam->bgColor[2], 1));
778 gDPFillRectangle(gMainGfxPos++, cam->viewportStartX, cam->viewportStartY, cam->viewportStartX + cam->viewportW - 1, cam->viewportStartY + cam->viewportH - 1);
779 }
780
782 gSPPerspNormalize(gMainGfxPos++, cam->perspNorm);
785}
786
790
793
795 return;
796 }
797
799 s32 i;
800
801 for (i = 0; i < ARRAY_COUNT(battleStatus->enemyActors); i++) {
802 Actor* enemy = battleStatus->enemyActors[i];
803
804 if (enemy != NULL) {
806 s32 temp;
807 s32 ones;
808
809 currentHP = enemy->curHP;
810 temp = (currentHP * 25) / enemy->maxHP;
811
812 if (temp < enemy->healthFraction) {
813 enemy->healthFraction -= 2;
814 if (enemy->healthFraction < temp) {
815 enemy->healthFraction = temp;
816 }
817 }
818
819 if (enemy->healthFraction < temp) {
820 enemy->healthFraction += 2;
821 if (enemy->healthFraction > temp) {
822 enemy->healthFraction = temp;
823 }
824 }
825
829 ) {
830 f32 x = enemy->healthBarPos.x;
831 f32 y = enemy->healthBarPos.y;
832 f32 z = enemy->healthBarPos.z;
833
834 if (enemy->healthBarPos.y >= -500) {
838
840 screenY += 16;
841 hid = HPBarHID;
846
847 #define DIGIT_WIDTH 6
849 hid = HPBarHID;
850 // draw all digits
851 while (TRUE) {
852 s32 digit = currentHP % 10;
853
856 btl_draw_prim_quad(0, 0, 0, 0, screenX + nextDigitXOffset, screenY + 2, 8, 8);
859
860 if (currentHP < 10) {
861 break;
862 }
863
864 currentHP /= 10;
866 }
867 #undef DIGIT_WIDTH
868
869 temp = enemy->healthFraction;
870 temp = 25 - temp;
871 btl_draw_prim_quad(168, 0, 0, 255, screenX + 11 - temp, screenY - 7, temp, 1);
872 btl_draw_prim_quad(255, 0, 0, 255, screenX + 11 - temp, screenY - 6, temp, 4);
873 }
874 }
875 }
876 }
877 }
878}
879
883 s32 i;
884
887 StarPointsBasePosX = 292;
888 StarPointsBasePosY = 196;
891 } else {
895 if (StarPointsMoveInterpAmt < 1) {
897 }
898 }
899
902 if (StarPointsBlinkTimer > 8) {
903 if (StarPointsBlinkTimer <= 12) {
905 } else {
907 }
908 }
910 }
911
912 if (showStarPoints) {
913 s32 posX, posY;
914 s32 tens, ones;
915 s32 id;
916
917 battleStatus->incrementStarPointDelay--;
919 if (StarPointsIncrementInterp <= 0.0f) {
920 s32 pendingStarPoints;
921
922 if (battleStatus->pendingStarPoints > 0) {
923 battleStatus->totalStarPoints++;
924 if (battleStatus->totalStarPoints > 100) {
925 battleStatus->totalStarPoints = 100;
926 }
927 battleStatus->pendingStarPoints--;
928 }
929
930 pendingStarPoints = battleStatus->pendingStarPoints;
931 if (pendingStarPoints < 1) {
932 pendingStarPoints = 1;
933 }
934
935 StarPointsIncrementInterp = (f32) battleStatus->incrementStarPointDelay / pendingStarPoints;
936 if (StarPointsIncrementInterp < 1.0) {
938 }
939 if (StarPointsIncrementInterp > 6.0) {
941 }
942 }
943
944 posX = StarPointsBasePosX;
945 posY = StarPointsBasePosY;
946 tens = battleStatus->totalStarPoints / 10;
947 ones = battleStatus->totalStarPoints % 10;
948
949 for (i = 0; i < tens; i++) {
950 id = BtlStarPointTensHIDs[i];
953 }
955 hud_element_set_render_pos(id, posX, posY);
957
961 }
963 hud_element_set_render_pos(id, posX, posY - 5);
965 posX -= 20.0f;
966 }
967
968 for (; i < ARRAY_COUNT(BtlStarPointTensHIDs); i++) {
971 }
972
973 posX = StarPointsBasePosX;
974 posY = StarPointsBasePosY + 14.0f;
976 if (ones != 0) {
977 draw_box(0, WINDOW_STYLE_4, posX - 100, posY - 5, 0, 110, 12, 120, 0, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, NULL, NULL,
979 }
980 }
981
982 for (i = 0; i < ones; i++) {
983 id = BtlStarPointOnesHIDs[i];
986 }
988 hud_element_set_render_pos(id, posX, posY);
990 posX -= 10.0f;
991 }
992
993 for (; i < ARRAY_COUNT(BtlStarPointOnesHIDs); i++) {
995 }
996 }
997 }
998}
999
1002 s32 i;
1003
1004 for (i = 0; i < ARRAY_COUNT(gCameras); i++) {
1006 }
1007
1014}
1015
1040
1042 ActorPart* part;
1045 s32 i;
1046
1047 // TODO hard-coded
1048 for (i = 0; i < 2; i++) {
1049 remove_actor_decoration(actor, i);
1050 }
1051
1052 if (actor->idleScript != NULL) {
1054 }
1055 if (actor->handleEventScript != NULL) {
1057 }
1058 if (actor->takeTurnScript != NULL) {
1060 }
1062
1063 part = actor->partsTable;
1064
1065 while (part != NULL) {
1066 if (!(part->flags & ACTOR_PART_FLAG_NO_SHADOW)) {
1067 delete_shadow(part->shadowIndex);
1068 }
1069
1070 if (part->idleAnimations != NULL) {
1071 set_npc_imgfx_all(part->spriteInstanceID, IMGFX_CLEAR, 0, 0, 0, 0, 0);
1072
1073 ASSERT(spr_free_sprite(part->spriteInstanceID) == 0);
1074
1075 if (!(part->flags & ACTOR_PART_FLAG_SKIP_MOVEMENT_ALLOC)) {
1076 heap_free(part->movement);
1077 }
1078
1079 if (!(part->flags & ACTOR_PART_FLAG_NO_DECORATIONS)) {
1080 heap_free(part->decorationTable);
1081 }
1082 }
1083 actorPartTemp = part->nextPart;
1084 heap_free(part);
1086 }
1087
1088 delete_shadow(actor->shadow.id);
1091
1092 if (actor->attackResultEffect != NULL) {
1094 }
1095
1097 for (i = 0; i < ARRAY_COUNT(battleStatus->enemyActors); i++) {
1098 if (battleStatus->enemyActors[i] == actor) {
1100 break;
1101 }
1102 }
1103
1104 heap_free(actor);
1105}
1106
1108 ActorPart* partsTable;
1109 ActorPartMovement* movement;
1110 DecorationTable* decorations;
1111 s32 i;
1112
1113 for (i = 0; i < 2; i++) {
1114 remove_actor_decoration(player, i);
1115 }
1116
1117 if (player->idleScript != NULL) {
1119 }
1120 if (player->handleEventScript != NULL) {
1122 }
1123 if (player->takeTurnScript != NULL) {
1125 }
1126
1127 partsTable = player->partsTable;
1128 decorations = partsTable->decorationTable;
1129 movement = partsTable->movement;
1130
1131 delete_shadow(player->shadow.id);
1134
1135 if (player->attackResultEffect != NULL) {
1137 }
1138
1139 heap_free(movement);
1140 heap_free(decorations);
1141 heap_free(partsTable);
1142 heap_free(player);
1143}
BSS f32 SavedWorldPlayerPosX
Definition 16C8E0.c:24
s32 BattleScreenFadeAmt
Definition 16C8E0.c:50
void btl_update(void)
Definition 16C8E0.c:198
HudScript HES_ItemStarPoint
HudScript HES_HPDigit0
BSS f32 SavedWorldPlayerPosY
Definition 16C8E0.c:25
BSS s32 StarPointsMoveInterpAmt
Definition 16C8E0.c:21
HudScript HES_HPDigit2
b8 BtlStarPointsBlinking
Definition 16C8E0.c:11
#define DIGIT_WIDTH
BSS s32 bSavedOverrideFlags
Definition 16C8E0.c:18
void update_nonplayer_actor_shadows(void)
Definition 16C8E0.c:191
HudScript HES_HPDigit3
HudScript HES_HPDigit9
HudScript HES_HPDigit4
void btl_start_blinking_starpoints(void)
Definition 16C8E0.c:97
void tattle_cam_pre_render(Camera *)
Definition 16C8E0.c:654
void btl_update_starpoints_display(void)
Definition 16C8E0.c:880
void get_stick_input_radial(f32 *angle, f32 *magnitude)
Definition 16C8E0.c:63
void btl_stop_blinking_starpoints(void)
Definition 16C8E0.c:102
HudScript HES_StatusSPShine
BSS s32 bSavedPartner
Definition 16C8E0.c:17
HudScript HES_HPDigit8
void btl_render_actors(void)
Definition 16C8E0.c:552
HudScript HES_HPBar
HudScript HES_HPDigit7
s16 DemoBattleBeginDelay
Definition 16C8E0.c:14
void btl_draw_ui(void)
Definition 16C8E0.c:424
BSS s32 StarPointsBasePosX
Definition 16C8E0.c:19
s16 EndDemoWhiteOut
Definition 16C8E0.c:13
u16 blend_tattle_background_channel(u16 a, s32 b, s32 alpha)
Definition 16C8E0.c:650
BSS f32 SavedWorldPlayerPosZ
Definition 16C8E0.c:26
BSS HudElemID HPBarHID
Definition 16C8E0.c:27
HudScript HES_HPDigit5
void btl_draw_enemy_health_bars(void)
Definition 16C8E0.c:791
void btl_delete_player_actor(Actor *player)
Definition 16C8E0.c:1107
void tattle_cam_post_render(Camera *)
Definition 16C8E0.c:787
HudScript HES_HPDigit6
BSS HudElemID BtlStarPointTensHIDs[10]
Definition 16C8E0.c:28
s8 StarPointsBlinkTimer
Definition 16C8E0.c:12
HudScript HES_SmallStarPoint
BSS Camera SavedWorldCameras[ARRAY_COUNT(gCameras)]
Definition 16C8E0.c:23
void btl_delete_actor(Actor *actor)
Definition 16C8E0.c:1041
void btl_save_world_cameras(void)
Definition 16C8E0.c:1000
BSS PAL_BIN gTattleBgPalette[0x100]
Definition 16C8E0.c:31
BSS HudElemID BtlStarPointOnesHIDs[10]
Definition 16C8E0.c:30
HudScript * bHPDigitHudScripts[]
Definition 16C8E0.c:44
f32 StarPointsIncrementInterp
Definition 16C8E0.c:10
void initialize_battle(void)
Definition 16C8E0.c:107
BSS HudElemID BtlStarPointShinesHIDs[10]
Definition 16C8E0.c:29
void btl_restore_world_cameras(void)
Definition 16C8E0.c:1016
HudScript HES_HPDigit1
BSS s32 StarPointsBasePosY
Definition 16C8E0.c:20
u16 gTattleBgTextureYOffset
Definition 16C8E0.c:15
BSS s32 D_8029DA4C
Definition 16C8E0.c:22
BSS s32 PopupMenu_SelectedIndex
void create_action_command_ui_worker(void)
Definition action_cmd.c:531
void btl_state_update_celebration(void)
Definition level_up.c:508
void btl_state_draw_celebration(void)
Definition level_up.c:1294
u16 * nuGfxCfb_ptr
Definition cam_main.c:13
void btl_state_update_change_partner(void)
void btl_state_draw_change_partner(void)
struct EffectInstance * disableEffect
struct EffectInstance * attackResultEffect
struct Evt * takeTurnScript
s32 idleScriptID
u32 pressedButtons[4]
struct ActorPartMovement * movement
s8 healthFraction
struct Evt * idleScript
union Actor::@38 shadow
struct Evt * handleEventScript
struct ActorPart * partsTable
s32 takeTurnScriptID
Vec3s healthBarPos
s32 HudElemID
s32 b32
s32 handleEventScriptID
u16 * backgroundPalette
s16 hudElementDataIndex
#define PAL_BIN
Vec3f curPos
s8 b8
struct DecorationTable * decorationTable
void btl_state_update_defeat(void)
Definition defeat.c:11
void btl_state_draw_defeat(void)
Definition defeat.c:97
void btl_state_draw_defend(void)
Definition defend.c:36
void btl_state_update_defend(void)
Definition defend.c:9
#define queue_render_task
#define guMtxF2L
#define remove_effect
#define mdl_get_shroud_tint_params
#define atan2
#define draw_box
struct AttackResultTextFXData * attackResultText
Definition effects.h:2536
EffectInstanceDataPtr data
Definition effects.h:2605
#define ASSERT(condition)
void btl_state_update_end_battle(void)
Definition end_battle.c:15
void btl_state_draw_end_battle(void)
Definition end_battle.c:124
void btl_state_draw_end_demo_battle(void)
Definition end_demo.c:107
void btl_state_update_end_demo_battle(void)
Definition end_demo.c:16
void btl_state_update_end_training_battle(void)
void btl_state_draw_end_training_battle(void)
void btl_state_update_enemy_striking_first(void)
void btl_state_draw_enemy_striking_first(void)
void btl_state_update_enemy_move(void)
Definition enemy_move.c:15
void btl_state_draw_enemy_move(void)
Definition enemy_move.c:241
void btl_state_update_next_enemy(void)
Definition enemy_next.c:11
void btl_state_draw_next_enemy(void)
Definition enemy_next.c:141
@ WINDOW_STYLE_4
Definition enums.h:5959
@ OVERLAY_NONE
Definition enums.h:2373
@ OVERLAY_SCREEN_COLOR
Definition enums.h:2374
@ BACKGROUND_FLAG_TEXTURE
Definition enums.h:5870
@ BUTTON_D_RIGHT
Definition enums.h:2769
@ BUTTON_D_DOWN
Definition enums.h:2771
@ BUTTON_D_UP
Definition enums.h:2772
@ BUTTON_D_LEFT
Definition enums.h:2770
@ IMGFX_CLEAR
Definition enums.h:4702
@ PEACH_FLAG_IS_PEACH
Definition enums.h:2474
@ GLOW_PAL_OFF
Definition enums.h:2244
@ BS_FLAGS1_MENU_OPEN
Definition enums.h:3599
@ BS_FLAGS1_PARTNER_ACTING
Definition enums.h:3621
@ BS_FLAGS1_ACTORS_VISIBLE
Definition enums.h:3598
@ SCREEN_LAYER_FRONT
Definition enums.h:2368
@ SCREEN_LAYER_BACK
Definition enums.h:2369
@ BS_FLAGS2_AWARDING_STAR_POINTS
Definition enums.h:3637
@ BS_FLAGS2_PEACH_BATTLE
Definition enums.h:3643
@ BS_REFLECT_FLOOR
Definition enums.h:3659
@ BATTLE_STATE_BEGIN_PARTNER_TURN
Definition enums.h:3672
@ BATTLE_STATE_ENEMY_MOVE
Definition enums.h:3685
@ BATTLE_STATE_NEXT_ENEMY
Definition enums.h:3684
@ BATTLE_STATE_ENEMY_FIRST_STRIKE
Definition enums.h:3668
@ BATTLE_STATE_RUN_AWAY
Definition enums.h:3688
@ BATTLE_STATE_FIRST_STRIKE
Definition enums.h:3666
@ BATTLE_STATE_PREPARE_MENU
Definition enums.h:3676
@ BATTLE_STATE_SWITCH_TO_PARTNER
Definition enums.h:3675
@ BATTLE_STATE_INVALID
Definition enums.h:3663
@ BATTLE_STATE_PLAYER_MENU
Definition enums.h:3677
@ BATTLE_STATE_DEFEND
Definition enums.h:3689
@ BATTLE_STATE_END_TRAINING_BATTLE
Definition enums.h:3693
@ BATTLE_STATE_PLAYER_MOVE
Definition enums.h:3682
@ BATTLE_STATE_END_DEMO_BATTLE
Definition enums.h:3696
@ BATTLE_STATE_CELEBRATION
Definition enums.h:3695
@ BATTLE_STATE_SWITCH_TO_PLAYER
Definition enums.h:3674
@ BATTLE_STATE_BEGIN_TURN
Definition enums.h:3669
@ BATTLE_STATE_PARTNER_FIRST_STRIKE
Definition enums.h:3667
@ BATTLE_STATE_END_PARTNER_TURN
Definition enums.h:3687
@ BATTLE_STATE_END_PLAYER_TURN
Definition enums.h:3686
@ BATTLE_STATE_PARTNER_MOVE
Definition enums.h:3683
@ BATTLE_STATE_START
Definition enums.h:3665
@ BATTLE_STATE_DEFEAT
Definition enums.h:3691
@ BATTLE_STATE_TRANSFER_TURN
Definition enums.h:3673
@ BATTLE_STATE_PEACH_MENU
Definition enums.h:3679
@ BATTLE_STATE_PARTNER_MENU
Definition enums.h:3678
@ BATTLE_STATE_NONE
Definition enums.h:3664
@ BATTLE_STATE_BEGIN_PLAYER_TURN
Definition enums.h:3671
@ BATTLE_STATE_SELECT_TARGET
Definition enums.h:3681
@ BATTLE_STATE_TWINK_MENU
Definition enums.h:3680
@ BATTLE_STATE_CHANGE_PARTNER
Definition enums.h:3692
@ BATTLE_STATE_VICTORY
Definition enums.h:3690
@ BATTLE_STATE_END_BATTLE
Definition enums.h:3694
@ BATTLE_STATE_END_TURN
Definition enums.h:3670
@ WINDOW_GROUP_BATTLE
Definition enums.h:4909
@ RENDER_MODE_SURFACE_XLU_LAYER3
Definition enums.h:3333
@ ACTOR_FLAG_INVISIBLE
Actor is not rendered.
Definition enums.h:3358
@ ACTOR_FLAG_BLUR_ENABLED
Definition enums.h:3378
@ ACTOR_FLAG_HEALTH_BAR_HIDDEN
Definition enums.h:3372
@ ACTOR_FLAG_TARGET_ONLY
Battle ends even if undefeated. No turn.
Definition enums.h:3368
@ ACTOR_FLAG_NO_HEALTH_BAR
Definition enums.h:3371
@ PARTNER_WATT
Definition enums.h:2925
@ PARTNER_TWINK
Definition enums.h:2930
@ DEMO_STATE_CHANGE_MAP
Definition enums.h:3570
@ GLOBAL_OVERRIDES_ENABLE_FLOOR_REFLECTION
Definition enums.h:3911
@ ACTOR_PART_FLAG_SKIP_MOVEMENT_ALLOC
Definition enums.h:3400
@ ACTOR_PART_FLAG_NO_SHADOW
Definition enums.h:3386
@ ACTOR_PART_FLAG_NO_DECORATIONS
Definition enums.h:3385
@ BTL_DARKNESS_STATE_NONE
Definition enums.h:5950
@ BTL_DARKNESS_STATE_LOCKED
Definition enums.h:5948
@ CAM_TATTLE
Definition enums.h:1828
@ CAM_DEFAULT
Definition enums.h:1826
@ CAM_BATTLE
Definition enums.h:1827
void set_screen_overlay_params_back(u8, f32)
void remove_actor_decoration(Actor *actor, s32 decorationIndex)
Definition 190B20.c:2486
void update_hero_shadows(void)
void func_80255FD8(void)
void get_screen_coords(s32 camID, f32 x, f32 y, f32 z, s32 *screenX, s32 *screenY, s32 *screenZ)
Definition cam_main.c:409
void btl_popup_messages_draw_ui(void)
void startup_set_fade_screen_alpha(s16 alpha)
void btl_popup_messages_draw_world_geometry(void)
void appendGfx_player_actor(void *)
void update_damage_popups(void)
Definition 190B20.c:2052
void appendGfx_player_actor_reflection(void *)
void appendGfx_partner_actor(void *)
void appendGfx_player_actor_blur(Actor *)
void set_screen_overlay_params_front(u8, f32)
s32 is_world_fog_enabled(void)
Definition model.c:3795
void btl_bonk_cleanup(void)
f32 dist2D(f32 ax, f32 ay, f32 bx, f32 by)
Definition 43F0.c:668
void hide_foreground_models_unchecked(void)
Definition 190B20.c:2695
s32 create_worker_scene(void(*updateFunc)(void), void(*renderFunc)(void))
Definition worker.c:32
s32 heap_free(void *ptr)
Definition heap.c:42
void appendGfx_enemy_actor_blur(void *)
void set_actor_glow_pal(Actor *actor, s32 arg1)
Definition 190B20.c:2386
void kill_script_by_ID(s32 id)
void appendGfx_enemy_actor(void *)
void set_screen_overlay_color(s32, u8, u8, u8)
void show_foreground_models_unchecked(void)
Definition 190B20.c:2710
void update_health_bars(void)
Definition 190B20.c:2247
void appendGfx_partner_actor_blur(void *)
void appendGfx_partner_actor_reflection(void *)
void startup_set_fade_screen_color(s16 color)
void btl_draw_prim_quad(u8 r, u8 g, u8 b, u8 a, u16 left, u16 top, u16 arg6, u16 arg7)
Definition 190B20.c:2663
void btl_popup_messages_update(void)
void btl_popup_messages_init(void)
void set_windows_visible(s32 groupIdx)
Definition windows.c:445
void get_screen_overlay_params(s32, u8 *type, f32 *zoom)
void get_world_fog_color(s32 *r, s32 *g, s32 *b, s32 *a)
Definition model.c:3804
void update_action_ratings(void)
Definition 190B20.c:2175
void update_enemy_shadows(void)
void btl_set_state(s32 battleState)
s32 is_actor_health_bar_visible(Actor *)
Definition 181810.c:503
void delete_shadow(s32)
Definition entity.c:626
void remove_all_status_icons(s32)
void appendGfx_enemy_actor_reflection(void *)
void increment_status_bar_disabled(void)
Definition inventory.c:1664
void draw_status_ui(void)
Definition inventory.c:1421
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_draw_next(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)
@ HUD_ELEMENT_FLAG_DISABLED
Definition hud_element.h:72
@ HUD_ELEMENT_FLAG_MANUAL_RENDER
Definition hud_element.h:78
s32 HudScript[]
Definition hud_element.h:9
u16 * nuGfxZBuffer
Definition main.c:46
void btl_state_update_partner_menu(void)
void btl_state_draw_partner_menu(void)
void btl_state_update_peach_menu(void)
Definition menu_peach.c:24
void btl_state_draw_peach_menu(void)
Definition menu_peach.c:169
void btl_state_update_player_menu(void)
void btl_state_draw_player_menu(void)
void btl_state_draw_twink_menu(void)
Definition menu_twink.c:198
void btl_state_update_twink_menu(void)
Definition menu_twink.c:27
void btl_state_draw_partner_striking_first(void)
void btl_state_update_partner_striking_first(void)
void btl_state_draw_partner_move(void)
void btl_state_update_partner_move(void)
void btl_state_update_begin_partner_turn(void)
void btl_state_draw_begin_partner_turn(void)
void btl_state_draw_end_partner_turn(void)
void btl_state_update_end_partner_turn(void)
void btl_state_update_first_strike(void)
void btl_state_draw_first_stike(void)
void btl_state_draw_player_move(void)
void btl_state_update_player_move(void)
Definition player_move.c:19
void btl_state_draw_begin_player_turn(void)
void btl_state_update_begin_player_turn(void)
void btl_state_update_end_player_turn(void)
void btl_state_draw_end_player_turn(void)
void btl_state_update_prepare_menu(void)
Definition prepare_menu.c:4
void btl_state_draw_prepare_menu(void)
void btl_state_draw_run_away(void)
Definition run_away.c:182
void btl_state_update_run_away(void)
Definition run_away.c:17
#define NPC_DISPOSE_POS_Z
Definition macros.h:173
#define UNPACK_PAL_B(color)
Definition macros.h:281
#define UNPACK_PAL_R(color)
Definition macros.h:279
#define SCREEN_WIDTH
Definition macros.h:109
#define NPC_DISPOSE_POS_X
Definition macros.h:171
#define BSS
Definition macros.h:7
#define ARRAY_COUNT(arr)
Definition macros.h:40
#define NPC_DISPOSE_POS_Y
Definition macros.h:172
#define UNPACK_PAL_G(color)
Definition macros.h:280
#define SCREEN_HEIGHT
Definition macros.h:110
#define PACK_FILL_DEPTH(z, dz)
Definition macros.h:176
#define PACK_FILL_COLOR(r, g, b, a)
Definition macros.h:175
void btl_state_draw_select_target(void)
void btl_state_update_select_target(void)
s32 spr_free_sprite(s32 spriteInstanceID)
Definition sprite.c:1162
void set_npc_imgfx_all(s32 spriteIdx, ImgFXType imgfxType, s32 imgfxArg1, s32 imgfxArg2, s32 imgfxArg3, s32 imgfxArg4, s32 imgfxArg5)
Definition sprite.c:1238
void btl_state_update_normal_start(void)
void btl_state_draw_normal_start(void)
void btl_state_draw_switch_to_partner(void)
void btl_state_update_end_turn(void)
Definition turn_end.c:13
void btl_state_draw_victory(void)
Definition victory.c:212
void btl_state_update_victory(void)
Definition victory.c:16
void btl_state_draw_end_turn(void)
Definition turn_end.c:176
void btl_state_update_switch_to_player(void)
void btl_state_update_transfer_turn(void)
void btl_state_draw_transfer_turn(void)
void btl_state_update_begin_turn(void)
Definition turn_begin.c:12
void btl_state_draw_begin_turn(void)
Definition turn_begin.c:186
void btl_state_draw_switch_to_player(void)
void btl_state_update_switch_to_partner(void)
struct Actor * enemyActors[24]
void(* fpDoPreRender)(struct Camera *)
void(* fpDoPostRender)(struct Camera *)
s32 gBattleState
Definition battle.cpp:13
s32 gOverrideFlags
Definition main_loop.c:10
GameStatus * gGameStatusPtr
Definition main_loop.c:31
Camera gCameras[4]
Definition cam_main.c:16
Gfx * gMainGfxPos
Definition cam_main.c:14
PlayerData gPlayerData
Definition 77480.c:39
BattleStatus gBattleStatus
Definition battle.cpp:14
PlayerStatus gPlayerStatus
Definition 77480.c:38
s32 gCurrentCameraID
Definition cam_math.c:5
s32 gLastDrawBattleState
Definition battle.cpp:15
DisplayContext * gDisplayContext
Definition cam_main.c:15
s16 gCurrentCamID
Definition cam_main.c:12