Paper Mario DX
Paper Mario (N64) modding
 
Loading...
Searching...
No Matches
181810.c
Go to the documentation of this file.
1#include "battle/battle.h"
2#include "vars_access.h"
3
4BSS char D_8029F660[0x400]; // unused?
5
13
14#define ACTOR_TYPE_LIST_END 0xFF
15
16u8* gBattleDmaDest = NULL;
17
19 ACTOR_TYPE_DUPLIGHOST,
20 ACTOR_TYPE_GHOST_GOOMBARIO,
21 ACTOR_TYPE_GHOST_KOOPER,
22 ACTOR_TYPE_GHOST_BOMBETTE,
23 ACTOR_TYPE_GHOST_PARAKARRY,
24 ACTOR_TYPE_GHOST_BOW,
25 ACTOR_TYPE_GHOST_WATT,
26 ACTOR_TYPE_GHOST_SUSHIE,
27 ACTOR_TYPE_GHOST_LAKILESTER,
29};
30
32 ACTOR_TYPE_LEE,
33 ACTOR_TYPE_LEE_GOOMBARIO,
34 ACTOR_TYPE_LEE_KOOPER,
35 ACTOR_TYPE_LEE_BOMBETTE,
36 ACTOR_TYPE_LEE_PARAKARRY,
37 ACTOR_TYPE_LEE_BOW,
38 ACTOR_TYPE_LEE_WATT,
39 ACTOR_TYPE_LEE_SUSHIE,
40 ACTOR_TYPE_LEE_LAKILESTER,
42};
43
45 ACTOR_TYPE_CRYSTAL_KING,
46 ACTOR_TYPE_CRYSTAL_CLONE,
48};
49
51 ACTOR_TYPE_TOY_TANK,
52 ACTOR_TYPE_LIGHT_BULB,
54};
55
57 ACTOR_TYPE_FINAL_BOWSER_1,
58 ACTOR_TYPE_FINAL_BOWSER_2,
60};
61
63 ACTOR_TYPE_MAGIKOOPA,
64 ACTOR_TYPE_MAGICLONE,
65 ACTOR_TYPE_FLYING_MAGIKOOPA,
66 ACTOR_TYPE_FLYING_MAGICLONE,
68};
69
71 ACTOR_TYPE_RED_MAGIKOOPA,
72 ACTOR_TYPE_FLYING_RED_MAGIKOOPA,
74};
75
77 ACTOR_TYPE_GREEN_MAGIKOOPA,
78 ACTOR_TYPE_FLYING_GREEN_MAGIKOOPA,
80};
81
83 ACTOR_TYPE_GRAY_MAGIKOOPA,
84 ACTOR_TYPE_FLYING_GRAY_MAGIKOOPA,
86};
87
89 ACTOR_TYPE_YELLOW_MAGIKOOPA,
90 ACTOR_TYPE_FLYING_YELLOW_MAGIKOOPA,
92};
93
95 ACTOR_TYPE_WHITE_MAGIKOOPA,
96 ACTOR_TYPE_FLYING_WHITE_MAGIKOOPA,
98};
99
114
115API_CALLABLE(ActorSpeak) {
116 Bytecode* args = script->ptrReadPos;
117 Actor* actor;
118 ActorPart* part;
119 s32 msgID;
120 s32 actorID;
121 s32 partID;
122 s32 anim;
123
124 f32 headX, headY, headZ;
125 s32 screenX, screenY, screenZ;
126 s32 msgID2;
127
128 if (isInitialCall) {
129 msgID = evt_get_variable(script, *args++);
130 actorID = evt_get_variable(script, *args++);
131 partID = evt_get_variable(script, *args++);
132 gSpeakingActorTalkAnim = evt_get_variable(script, *args++);
133 gSpeakingActorIdleAnim = evt_get_variable(script, *args++);
134 msgID2 = msgID;
135
136 if (actorID == ACTOR_SELF) {
137 actorID = script->owner1.actorID;
138 }
139
140 actor = get_actor(actorID);
141 part = get_actor_part(actor, partID);
142 gSpeakingActor = actor;
143 gSpeakingActorPart = part;
144
145 headX = actor->curPos.x + actor->headOffset.x;
146 if (!(actor->flags & ACTOR_FLAG_HALF_HEIGHT)) {
147 headY = actor->curPos.y + actor->headOffset.y + actor->size.y;
148 } else {
149 headY = actor->curPos.y + actor->headOffset.y + actor->size.y / 2;
150 }
151
152 headZ = actor->curPos.z + actor->headOffset.z;
153 get_screen_coords(CAM_BATTLE, headX, headY, headZ, &screenX, &screenY, &screenZ);
154
158
159 script->functionTemp[0] = 0;
161 if (gSpeakingActorTalkAnim >= 0) {
163 }
165 }
166
167 if (script->functionTemp[0] == 0) {
168 actor = gSpeakingActor;
169 part = gSpeakingActorPart;
170
171 headX = actor->curPos.x + actor->headOffset.x;
172 if (!(actor->flags & ACTOR_FLAG_HALF_HEIGHT)) {
173 headY = actor->curPos.y + actor->headOffset.y + actor->size.y;
174 } else {
175 headY = actor->curPos.y + actor->headOffset.y + actor->size.y / 2;
176 }
177
178 headZ = actor->curPos.z + actor->headOffset.z;
179 get_screen_coords(CAM_BATTLE, headX, headY, headZ, &screenX, &screenY, &screenZ);
180
182
185 return ApiStatus_DONE1;
186 }
187
190 } else {
192 }
193
194 if (anim >= 0) {
195 set_actor_anim_by_ref(actor, part, anim);
196 }
197
198 if (gSpeakingActorPrintIsDone == TRUE) {
200 gOverrideFlags &= ~GLOBAL_OVERRIDES_MESSAGES_OVER_FRONTUI;
201 return ApiStatus_DONE1;
202 }
203 }
204 return ApiStatus_BLOCK;
205}
206
207API_CALLABLE(EndActorSpeech) {
208 Bytecode* args = script->ptrReadPos;
209 ActorPart* actorPart;
210 Actor* actor;
211 s32 anim;
212 f32 x, y, z;
213 s32 screenX, screenY, screenZ;
214
215 if (isInitialCall) {
216 s32 actorID = evt_get_variable(script, *args++);
217 s32 partID = evt_get_variable(script, *args++);
218
219 gSpeakingActorTalkAnim = evt_get_variable(script, *args++);
220 gSpeakingActorIdleAnim = evt_get_variable(script, *args++);
221
222 if (actorID == ACTOR_SELF) {
223 actorID = script->owner1.actorID;
224 }
225
226 actor = get_actor(actorID);
227 actorPart = get_actor_part(actor, partID);
228 gSpeakingActor = actor;
229 gSpeakingActorPart = actorPart;
230
232 script->functionTemp[0] = 0;
234 }
235
236 if (script->functionTemp[0] == 0) {
237 actor = gSpeakingActor;
238 actorPart = gSpeakingActorPart;
239
240 x = actor->curPos.x + actor->headOffset.x;
242 y = actor->curPos.y + actor->headOffset.y + actor->size.y ;
243 } else {
244 y = actor->curPos.y + actor->headOffset.y + actor->size.y / 2;
245 }
246 z = actor->curPos.z + actor->headOffset.z;
247 get_screen_coords(CAM_BATTLE, x, y, z, &screenX, &screenY, &screenZ);
249
252 return ApiStatus_DONE1;
253 }
254
257 } else {
259 }
260
261 if (anim >= 0) {
262 set_actor_anim_by_ref(actor, actorPart, anim);
263 }
264
265 if (gSpeakingActorPrintIsDone == TRUE) {
267 gOverrideFlags &= ~GLOBAL_OVERRIDES_MESSAGES_OVER_FRONTUI;
268 return ApiStatus_DONE1;
269 }
270 }
271
272 return ApiStatus_BLOCK;
273}
274
275API_CALLABLE(ShowBattleChoice) {
276 Bytecode* args = script->ptrReadPos;
277
278 if (isInitialCall) {
279 s32 msgID = evt_get_variable(script, *args);
280
281 script->functionTemp[1] = 0;
282 D_8029FA64 = msg_get_printer_for_msg(msgID, &script->functionTemp[1]);
283 }
284
285 if (script->functionTemp[1] == 1) {
286 u8 currentOption = D_8029FA64->curOption;
287
289 script->varTable[0] = currentOption;
290
291 return ApiStatus_DONE1;
292 }
293
294 return ApiStatus_BLOCK;
295}
296
297API_CALLABLE(EnableBattleStatusBar) {
298 Bytecode* args = script->ptrReadPos;
299 b32 shouldEnable = evt_get_variable(script, *args++);
300
301 if (shouldEnable) {
303 } else {
305 }
306 return ApiStatus_DONE2;
307}
308
309API_CALLABLE(OverrideBattleDmaDest) {
310 gBattleDmaDest = (u8*) evt_get_variable(script, *script->ptrReadPos);
311 return ApiStatus_DONE2;
312}
313
314API_CALLABLE(LoadBattleDmaData) {
315 s32 dmaIndex = evt_get_variable(script, *script->ptrReadPos);
317 DmaTable* dmaEntry = &battleArea->dmaTable[dmaIndex];
318
319 if (dmaEntry == NULL) {
320 return ApiStatus_DONE2;
321 }
322
323 if (gBattleDmaDest == NULL) {
324 dma_copy(dmaEntry->start, dmaEntry->end, dmaEntry->dest);
325 } else {
326 dma_copy(dmaEntry->start, dmaEntry->end, gBattleDmaDest);
327 }
328
329 return ApiStatus_DONE2;
330}
331
332API_CALLABLE(EnableBattleFloorReflections) {
333 BattleStatus* battleStatus = &gBattleStatus;
334 Bytecode* args = script->ptrReadPos;
335
336 if (evt_get_variable(script, *args++)) {
337 battleStatus->reflectFlags |= BS_REFLECT_FLOOR;
339 } else {
340 battleStatus->reflectFlags &= ~BS_REFLECT_FLOOR;
341 gOverrideFlags &= ~GLOBAL_OVERRIDES_ENABLE_FLOOR_REFLECTION;
342 }
343
344 return ApiStatus_DONE2;
345}
346
347API_CALLABLE(SetDarknessMode) {
348 BattleStatus* battleStatus = &gBattleStatus;
349 Bytecode* args = script->ptrReadPos;
350 s32 darknessMode = evt_get_variable(script, *args++);
351
352 switch (darknessMode) {
355 break;
358 break;
361 break;
364 break;
365 }
366
367 return ApiStatus_DONE2;
368}
369
370API_CALLABLE(GetDarknessStatus) {
371 Bytecode* args = script->ptrReadPos;
372 s32 out1 = *args++;
373 s32 out2 = *args++;
374 u8 type;
375 f32 amt;
376 s32 isLight;
377
379
380 if (amt < 128.0f) {
381 isLight = FALSE;
382 } else {
383 isLight = TRUE;
384 }
385
386 evt_set_variable(script, out1, SCREEN_LAYER_BACK);
387 evt_set_variable(script, out2, isLight);
388
389 return ApiStatus_DONE2;
390}
391
392API_CALLABLE(PlaySoundAtActor) {
393 Bytecode* args = script->ptrReadPos;
394 s32 actorID = evt_get_variable(script, *args++);
395 Bytecode soundID = *args++;
396 Actor* actor;
397
398 if (actorID == ACTOR_SELF) {
399 actorID = script->owner1.actorID;
400 }
401
402 actor = get_actor(actorID);
403 sfx_play_sound_at_position(soundID, SOUND_SPACE_DEFAULT, actor->curPos.x, actor->curPos.y, actor->curPos.z);
404
405 return ApiStatus_DONE2;
406}
407
408API_CALLABLE(PlaySoundAtPart) {
409 Bytecode* args = script->ptrReadPos;
410 s32 actorID = evt_get_variable(script, *args++);
411 s32 partID = evt_get_variable(script, *args++);
412 Bytecode soundID = *args++;
413 ActorPart* part;
414
415 if (actorID == ACTOR_SELF) {
416 actorID = script->owner1.actorID;
417 }
418
419 part = get_actor_part(get_actor(actorID), partID);
420 sfx_play_sound_at_position(soundID, SOUND_SPACE_DEFAULT, part->curPos.x, part->curPos.y, part->curPos.z);
421
422 return ApiStatus_DONE2;
423}
424
425API_CALLABLE(PlayLoopingSoundAtActor) {
426 Bytecode* args = script->ptrReadPos;
427 s32 actorID = evt_get_variable(script, *args++);
428 s32 idx = evt_get_variable(script, *args++);
429 Bytecode soundID = *args++;
430 Actor* actor;
431
432 if (actorID == ACTOR_SELF) {
433 actorID = script->owner1.actorID;
434 }
435
436 actor = get_actor(actorID);
437 actor->loopingSoundID[idx] = soundID;
438 sfx_play_sound_at_position(soundID, SOUND_SPACE_DEFAULT, actor->curPos.x, actor->curPos.y, actor->curPos.z);
439
440 return ApiStatus_DONE2;
441}
442
443API_CALLABLE(StopLoopingSoundAtActor) {
444 Bytecode* args = script->ptrReadPos;
445 s32 actorID = evt_get_variable(script, *args++);
446 s32 idx = evt_get_variable(script, *args++);
447 Actor* actor;
448
449 if (actorID == ACTOR_SELF) {
450 actorID = script->owner1.actorID;
451 }
452
453 actor = get_actor(actorID);
454
455 if (actor->loopingSoundID[idx] == 0) {
456 return ApiStatus_DONE2;
457 }
458
459 sfx_stop_sound(actor->loopingSoundID[idx]);
460 actor->loopingSoundID[idx] = 0;
461 return ApiStatus_DONE2;
462}
463
464API_CALLABLE(SetForegroundModelsVisibleUnchecked) {
465 if (evt_get_variable(script, *script->ptrReadPos)) {
467 } else {
469 }
470 return ApiStatus_DONE2;
471}
472
473API_CALLABLE(SetForegroundModelsVisible) {
474 if (evt_get_variable(script, *script->ptrReadPos)) {
476 } else {
478 }
479 return ApiStatus_DONE2;
480}
481
482API_CALLABLE(MakeIgnoreResStatusField) {
483 Bytecode* args = script->ptrReadPos;
484 Bytecode outVar = *args++;
485 Bytecode typeFlag = *args++; // STATUS_FLAG_*
486 s32 duration = evt_get_variable(script, *args++);
487
488 evt_set_variable(script, outVar, DMG_STATUS_IGNORE_RES(typeFlag, duration));
489 return ApiStatus_DONE2;
490}
491
492API_CALLABLE(MakeStatusField) {
493 Bytecode* args = script->ptrReadPos;
494 s32 outVar = *args++;
495 s32 typeFlag = *args++; // STATUS_FLAG_*
496 s32 chance = evt_get_variable(script, *args++);
497 s32 duration = evt_get_variable(script, *args++);
498
499 evt_set_variable(script, outVar, DMG_STATUS_KEY(typeFlag, duration, chance));
500 return ApiStatus_DONE2;
501}
502
504 BattleStatus* battleStatus = &gBattleStatus;
505 s32 flags;
506
508 return TRUE;
509 }
510
512 if (actor->flags & ACTOR_FLAG_TYPE_CHANGED) {
513 flags |= battleStatus->tattleFlags[actor->actorType / 8];
514 }
515
516 return (flags >> (actor->actorType % 8)) & 1;
517}
518
520 BattleStatus* battleStatus = &gBattleStatus;
521 s32 flags;
522 s32 byteIdx;
523 s32 flagIdx;
524
526 return TRUE;
527 }
528
530 flags |= battleStatus->tattleFlags[actorType / 8];
531
532 return (flags >> (actorType % 8)) & 1;
533}
534
535void save_tattle_flags(s32 actorType) {
536 BattleStatus* battleStatus = &gBattleStatus;
537 u8* types;
538 s32 gb;
539 s32 i = 0;
540 s32 j;
541 s32 k;
542
543 while (TRUE) {
544 types = ActorTypesLists[i];
545 if (types == NULL) {
546 break;
547 }
548
549 for (j = 0; types[j] != ACTOR_TYPE_LIST_END; j++) {
550 if (actorType == types[j]) {
551 for (k = 0; types[k] != ACTOR_TYPE_LIST_END; k++) {
552 actorType = types[k];
553
555 gb |= 1 << (actorType % 8);
557 battleStatus->tattleFlags[actorType / 8] |= gb;
558 }
559 return;
560 }
561 }
562 i++;
563 }
564
566 gb |= 1 << (actorType % 8);
568 battleStatus->tattleFlags[actorType / 8] |= gb;
569}
570
571void load_tattle_flags(s32 actorType) {
572 BattleStatus* battleStatus = &gBattleStatus;
573 u8* types;
574 s32 gb;
575 s32 i = 0;
576 s32 j;
577 s32 k;
578
579 while (TRUE) {
580 types = ActorTypesLists[i];
581 if (types == NULL) {
582 break;
583 }
584
585 for (j = 0; types[j] != ACTOR_TYPE_LIST_END; j++) {
586 if (actorType == types[j]) {
587 for (k = 0; types[k] != ACTOR_TYPE_LIST_END; k++) {
588 actorType = types[k];
589
591 gb |= 1 << (actorType % 8);
592 battleStatus->tattleFlags[actorType / 8] |= gb;
593 }
594 return;
595 }
596 }
597 i++;
598 }
599
601 gb |= 1 << (actorType % 8);
602 battleStatus->tattleFlags[actorType / 8] |= gb;
603}
604
605API_CALLABLE(SetEnemiesFled) {
608
609 return ApiStatus_DONE2;
610}
611
612API_CALLABLE(MultiplyByActorScale) {
613 Bytecode* args = script->ptrReadPos;
614 Actor* actor = get_actor(script->owner1.actorID);
615
616 evt_set_float_variable(script, args[0], evt_get_float_variable(script, args[0]) * actor->scalingFactor);
617 return ApiStatus_DONE2;
618}
619
620API_CALLABLE(MultiplyVec2ByActorScale) {
621 Bytecode* args = script->ptrReadPos;
622 Actor* actor = get_actor(script->owner1.actorID);
623
624 evt_set_float_variable(script, args[0], evt_get_float_variable(script, args[0]) * actor->scalingFactor);
625 evt_set_float_variable(script, args[1], evt_get_float_variable(script, args[1]) * actor->scalingFactor);
626
627 return ApiStatus_DONE2;
628}
629
630API_CALLABLE(MultiplyVec3ByActorScale) {
631 Bytecode* args = script->ptrReadPos;
632 Actor* actor = get_actor(script->owner1.actorID);
633
634 evt_set_float_variable(script, args[0], evt_get_float_variable(script, args[0]) * actor->scalingFactor);
635 evt_set_float_variable(script, args[1], evt_get_float_variable(script, args[1]) * actor->scalingFactor);
636 evt_set_float_variable(script, args[2], evt_get_float_variable(script, args[2]) * actor->scalingFactor);
637
638 return ApiStatus_DONE2;
639}
640
641API_CALLABLE(ApplyShrinkFromOwner) {
642 Bytecode* args = script->ptrReadPos;
643 Actor* actor = get_actor(script->owner1.actorID);
644 s32 amt = evt_get_variable(script, *args);
645
646 if (actor->debuff == STATUS_KEY_SHRINK && amt > 0) {
647 amt /= 2;
648 }
649
650 evt_set_variable(script, *args++, amt);
651 return ApiStatus_DONE2;
652}
653
654API_CALLABLE(StartRumble) {
655 start_rumble_type(evt_get_variable(script, *script->ptrReadPos));
656 return ApiStatus_DONE2;
657}
BSS MessagePrintState * D_8029FA64
Definition 181810.c:7
u8 ActorTypesBowser[]
Definition 181810.c:56
u8 * gBattleDmaDest
Definition 181810.c:16
BSS char D_8029F660[0x400]
Definition 181810.c:4
s32 is_actortype_health_bar_visible(s32 actorType)
Definition 181810.c:519
u8 ActorTypesGreenMagikoopa[]
Definition 181810.c:76
u8 ActorTypesLee[]
Definition 181810.c:31
s32 is_actor_health_bar_visible(Actor *actor)
Definition 181810.c:503
BSS ActorPart * gSpeakingActorPart
Definition 181810.c:12
BSS MessagePrintState * gSpeakingActorPrintCtx
Definition 181810.c:6
#define ACTOR_TYPE_LIST_END
Definition 181810.c:14
u8 ActorTypesYellowMagikoopa[]
Definition 181810.c:88
u8 ActorTypesGrayMagikoopa[]
Definition 181810.c:82
u8 ActorTypesMagikoopa[]
Definition 181810.c:62
u8 ActorTypesCrystalKing[]
Definition 181810.c:44
u8 ActorTypesShyGuyBoss[]
Definition 181810.c:50
BSS s32 gSpeakingActorPrintIsDone
Definition 181810.c:8
void load_tattle_flags(s32 actorType)
Definition 181810.c:571
void save_tattle_flags(s32 actorType)
Definition 181810.c:535
BSS Actor * gSpeakingActor
Definition 181810.c:11
u8 * ActorTypesLists[]
Definition 181810.c:100
u8 ActorTypesWhiteMagikoopa[]
Definition 181810.c:94
BSS s32 gSpeakingActorIdleAnim
Definition 181810.c:10
BSS s32 gSpeakingActorTalkAnim
Definition 181810.c:9
u8 ActorTypesGhost[]
Definition 181810.c:18
u8 ActorTypesRedMagikoopa[]
Definition 181810.c:70
BattleArea gBattleAreas[]
Definition battle.c:50
Vec3s headOffset
f32 scalingFactor
s32 loopingSoundID[2]
s32 b32
Vec2bu size
Vec3f curPos
s8 flags
Definition demo_api.c:15
#define sfx_play_sound_at_position
@ MSG_STATE_FLAG_40
Definition enums.h:6244
@ MSG_STATE_FLAG_SPEAKING
Definition enums.h:6245
@ SCREEN_LAYER_BACK
Definition enums.h:2383
@ STATUS_KEY_SHRINK
Definition enums.h:2206
@ BTL_DARKNESS_MODE_3
Definition enums.h:6359
@ BTL_DARKNESS_MODE_2
Definition enums.h:6358
@ BTL_DARKNESS_MODE_0
Definition enums.h:6356
@ BTL_DARKNESS_MODE_1
Definition enums.h:6357
@ BS_REFLECT_FLOOR
Definition enums.h:3626
@ BATTLE_STATE_END_BATTLE
Definition enums.h:3663
@ ABILITY_PEEKABOO
Definition enums.h:490
@ ACTOR_SELF
Definition enums.h:2084
@ ACTOR_FLAG_HALF_HEIGHT
Definition enums.h:3335
@ ACTOR_FLAG_TYPE_CHANGED
Indicates actors type has changed, triggers recheck for if HP bar should be shown based on tattle sta...
Definition enums.h:3332
@ OUTCOME_ENEMY_FLED
Definition enums.h:1905
@ SOUND_SPACE_DEFAULT
Definition enums.h:1737
@ GLOBAL_OVERRIDES_MESSAGES_OVER_FRONTUI
Definition enums.h:4323
@ GLOBAL_OVERRIDES_ENABLE_FLOOR_REFLECTION
Definition enums.h:4326
@ BTL_DARKNESS_STATE_WATT_BASED
Definition enums.h:6366
@ BTL_DARKNESS_STATE_LOCKED
Definition enums.h:6363
@ BTL_DARKNESS_STATE_DARK
Definition enums.h:6364
@ CAM_BATTLE
Definition enums.h:1801
#define ApiStatus_DONE2
Definition evt.h:118
s32 Bytecode
Definition evt.h:7
#define ApiStatus_DONE1
Definition evt.h:117
#define ApiStatus_BLOCK
Definition evt.h:116
s32 evt_get_variable(Evt *script, Bytecode var)
Definition evt.c:1690
void hide_foreground_models(void)
Definition 190B20.c:2993
s32 is_ability_active(s32 arg0)
Definition inventory.c:1725
void msg_printer_set_origin_pos(MessagePrintState *msgPrintState, s32 x, s32 y)
Definition msg.c:1489
void get_screen_coords(s32 camID, f32 x, f32 y, f32 z, s32 *screenX, s32 *screenY, s32 *screenZ)
Definition cam_main.c:410
void decrement_status_bar_disabled(void)
Definition inventory.c:1646
f32 evt_set_float_variable(Evt *script, Bytecode var, f32 value)
Definition evt.c:1977
void close_message(MessagePrintState *msgPrintState)
Definition msg.c:1568
void set_actor_anim_by_ref(Actor *, ActorPart *, AnimID)
Definition 190B20.c:1047
u32 dma_copy(Addr romStart, Addr romEnd, void *vramDest)
Definition 43F0.c:444
s32 evt_set_variable(Evt *script, Bytecode var, s32 value)
Definition evt.c:1847
void hide_foreground_models_unchecked(void)
Definition 190B20.c:2963
void start_rumble_type(u32)
Definition 190B20.c:3098
MessagePrintState * msg_get_printer_for_msg(s32 msgID, s32 *a1)
Definition msg.c:1424
ActorPart * get_actor_part(Actor *actor, s32 partID)
Definition 190B20.c:1191
Actor * get_actor(s32 actorID)
Definition actor_api.c:155
void show_foreground_models_unchecked(void)
Definition 190B20.c:2978
void get_screen_overlay_params(s32, u8 *type, f32 *zoom)
f32 evt_get_float_variable(Evt *script, Bytecode var)
Definition evt.c:1930
void btl_set_state(s32 battleState)
void show_foreground_models(void)
Definition 190B20.c:3011
void increment_status_bar_disabled(void)
Definition inventory.c:1654
EncounterStatus gCurrentEncounter
Definition encounter.c:176
s8 battleOutcome
Definition npc.h:372
void sfx_stop_sound(s32 soundID)
Definition sfx.c:507
@ GB_Tattles_00
#define UNPACK_BTL_AREA(battleID)
Definition macros.h:148
#define DMG_STATUS_IGNORE_RES(typeFlag, duration)
Definition macros.h:226
#define BSS
Definition macros.h:7
#define EVT_INDEX_OF_GAME_BYTE(v)
Definition macros.h:143
#define DMG_STATUS_KEY(typeFlag, duration, chance)
Definition macros.h:224
DmaTable * dmaTable
Definition battle.h:221
s32 gCurrentBattleID
Definition battle.c:16
s32 gOverrideFlags
Definition main_loop.c:11
BattleStatus gBattleStatus
Definition battle.c:11
s32 get_global_byte(s32 index)
Get value of saved game byte.
s8 set_global_byte(s32 index, s32 value)
Set value of saved game byte.