Paper Mario DX
Paper Mario (N64) modding
 
Loading...
Searching...
No Matches
battle.cpp File Reference

Go to the source code of this file.

Macros

#define BTL_AREA(id, debugName)
 
#define BTL_AREA_C(id, debugName)
 
#define BTL_AREA_DMA(id, jpName)
 
#define BTL_AREA_AUX(id, jpName)
 

Functions

void reset_battle_status (void)
 
void load_battle_section (void)
 
void load_battle (s32 battleID)
 
void set_battle_stage (s32 stageID)
 
void set_battle_formation (Battle *battle)
 
void setup_demo_player (void)
 
void load_demo_battle (u32 index)
 

Variables

BSS StageListRowgCurrentStagePtr
 
BSS s32 gBattleState
 
BSS BattleStatus gBattleStatus
 
BSS s32 gLastDrawBattleState
 
BSS s32 gDefeatedBattleSubstate
 
BSS s32 gBattleSubState
 
BSS s32 gDefeatedBattleState
 
BSS s32 gCurrentBattleID
 
BSS s32 gCurrentStageID
 
BSS BattlegOverrideBattlePtr
 
BSS BattlegCurrentBattlePtr
 
BattleArea gBattleAreas []
 When updating this, make sure you also update:
 

Macro Definition Documentation

◆ BTL_AREA

#define BTL_AREA ( id,
debugName )
Value:
{ \
.name = debugName, \
.dmaStart = battle_area_##id##_ROM_START, \
.dmaEnd = battle_area_##id##_ROM_END, \
.dmaDest = battle_area_##id##_VRAM, \
.battles = &battle::area::id::Battles, \
.stages = &battle::area::id::Stages, \
}
BSS s32 PopupMenu_SelectedIndex

Definition at line 24 of file battle.cpp.

24#define BTL_AREA(id, debugName) { \
25 .name = debugName, \
26 .dmaStart = battle_area_##id##_ROM_START, \
27 .dmaEnd = battle_area_##id##_ROM_END, \
28 .dmaDest = battle_area_##id##_VRAM, \
29 .battles = &battle::area::id::Battles, \
30 .stages = &battle::area::id::Stages, \
31}

◆ BTL_AREA_C

#define BTL_AREA_C ( id,
debugName )
Value:
{ \
.name = debugName, \
.dmaStart = battle_area_##id##_ROM_START, \
.dmaEnd = battle_area_##id##_ROM_END, \
.dmaDest = battle_area_##id##_VRAM, \
.battles = &b_area_##id##_Formations, \
.stages = &b_area_##id##_Stages, \
} \

Definition at line 34 of file battle.cpp.

34#define BTL_AREA_C(id, debugName) { \
35 .name = debugName, \
36 .dmaStart = battle_area_##id##_ROM_START, \
37 .dmaEnd = battle_area_##id##_ROM_END, \
38 .dmaDest = battle_area_##id##_VRAM, \
39 .battles = &b_area_##id##_Formations, \
40 .stages = &b_area_##id##_Stages, \
41} \
42

◆ BTL_AREA_DMA

#define BTL_AREA_DMA ( id,
jpName )
Value:
{ \
.name = jpName, \
.dmaStart = battle_area_##id##_ROM_START, \
.dmaEnd = battle_area_##id##_ROM_END, \
.dmaDest = battle_area_##id##_VRAM, \
.battles = &b_area_##id##_Formations, \
.stages = &b_area_##id##_Stages, \
.dmaTable = b_area_##id##_dmaTable, \
} \

Definition at line 44 of file battle.cpp.

44#define BTL_AREA_DMA(id, jpName) { \
45 .name = jpName, \
46 .dmaStart = battle_area_##id##_ROM_START, \
47 .dmaEnd = battle_area_##id##_ROM_END, \
48 .dmaDest = battle_area_##id##_VRAM, \
49 .battles = &b_area_##id##_Formations, \
50 .stages = &b_area_##id##_Stages, \
51 .dmaTable = b_area_##id##_dmaTable, \
52} \
53

◆ BTL_AREA_AUX

#define BTL_AREA_AUX ( id,
jpName )
Value:
{ \
.name = jpName, \
.dmaStart = battle_area_##id##_ROM_START, \
.dmaEnd = battle_area_##id##_ROM_END, \
.dmaDest = battle_area_##id##_VRAM, \
} \

Definition at line 55 of file battle.cpp.

55#define BTL_AREA_AUX(id, jpName) { \
56 .name = jpName, \
57 .dmaStart = battle_area_##id##_ROM_START, \
58 .dmaEnd = battle_area_##id##_ROM_END, \
59 .dmaDest = battle_area_##id##_VRAM, \
60} \
61

Function Documentation

◆ reset_battle_status()

void reset_battle_status ( void )

Definition at line 116 of file battle.cpp.

116 {
124 gCurrentStageID = 0;
126}
BSS s32 gBattleSubState
Definition battle.cpp:16
BSS Battle * gOverrideBattlePtr
Definition battle.cpp:20
BSS s32 gLastDrawBattleState
Definition battle.cpp:14
BSS StageListRow * gCurrentStagePtr
Definition battle.cpp:11
BSS s32 gCurrentBattleID
Definition battle.cpp:18
BSS s32 gCurrentStageID
Definition battle.cpp:19
BSS s32 gBattleState
Definition battle.cpp:12
BSS Battle * gCurrentBattlePtr
Definition battle.cpp:21
@ BTL_SUBSTATE_INIT
Definition enums.h:3670
@ BATTLE_STATE_0
Definition enums.h:3630
GameStatus * gGameStatusPtr
Definition main_loop.c:31

Referenced by load_demo_battle(), load_map_by_IDs(), state_step_demo(), state_step_intro(), and state_step_startup().

◆ load_battle_section()

void load_battle_section ( void )

Definition at line 128 of file battle.cpp.

128 {
131
132 dma_copy((u8*)battleArea->dmaStart, (u8*)battleArea->dmaEnd, (u8*)battleArea->dmaDest);
133
134 gCurrentBattlePtr = &(*battleArea->battles)[battleIdx];
135
136 if (gCurrentStageID < 0) {
138 } else {
140 }
141
144}
BattleArea gBattleAreas[]
When updating this, make sure you also update:
Definition battle.cpp:67
@ BATTLE_STATE_NORMAL_START
Definition enums.h:3631
u32 dma_copy(Addr romStart, Addr romEnd, void *vramDest)
Definition 43F0.c:442
void btl_set_state(s32 battleState)
#define UNPACK_BTL_AREA(battleID)
Definition macros.h:152
#define UNPACK_BTL_INDEX(battleID)
Definition macros.h:153

Referenced by state_step_battle().

◆ load_battle()

void load_battle ( s32 battleID)

Definition at line 146 of file battle.cpp.

Referenced by load_demo_battle(), and update_encounters_pre_battle().

◆ set_battle_stage()

void set_battle_stage ( s32 stageID)

Definition at line 154 of file battle.cpp.

154 {
156}

Referenced by load_demo_battle(), and update_encounters_pre_battle().

◆ set_battle_formation()

void set_battle_formation ( Battle * battle)

Definition at line 158 of file battle.cpp.

158 {
160}

Referenced by update_encounters_pre_battle().

◆ setup_demo_player()

void setup_demo_player ( void )

Definition at line 162 of file battle.cpp.

162 {
164 s32 i;
165
166 playerData->curHP = 15;
167 playerData->curMaxHP = 15;
168 playerData->hardMaxHP = 15;
169 playerData->curFP = 10;
170 playerData->curMaxFP = 10;
171 playerData->hardMaxFP = 10;
172 playerData->level = 3;
173 playerData->hasActionCommands = TRUE;
174 playerData->starPoints = 55;
175 playerData->bootsLevel = 0;
176 playerData->hammerLevel = 0;
177 playerData->coins = 34;
178
179 for (i = 1; i < ARRAY_COUNT(playerData->partners); i++) {
180 playerData->partners[i].enabled = TRUE;
181 playerData->partners[i].level = 2;
182 }
183
184 playerData->curPartner = PARTNER_GOOMBARIO;
185
186 for (i = 0; i < ARRAY_COUNT(playerData->badges); i++) {
187 playerData->badges[i] = ITEM_NONE;
188 }
189
190 for (i = 0; i < ARRAY_COUNT(playerData->equippedBadges); i++) {
191 playerData->equippedBadges[i] = ITEM_NONE;
192 }
193
194 for (i = 0; i < ARRAY_COUNT(playerData->invItems); i++) {
195 playerData->invItems[i] = ITEM_NONE;
196 }
197
198 playerData->unused_288 = 0;
199 playerData->merleeSpellType = MERLEE_SPELL_NONE;
200 playerData->merleeCastsLeft = 0;
201 playerData->merleeTurnCount = 0;
202 playerData->maxStarPower = 0;
203 playerData->starPower = 0;
204 playerData->starBeamLevel = 0;
205}
@ MERLEE_SPELL_NONE
Definition enums.h:1910
@ PARTNER_GOOMBARIO
Definition enums.h:2886
#define ARRAY_COUNT(arr)
Definition macros.h:40
PlayerData gPlayerData
Definition 77480.c:39

Referenced by load_demo_battle().

◆ load_demo_battle()

void load_demo_battle ( u32 index)

Definition at line 207 of file battle.cpp.

207 {
209 u32 mode;
210 s32 battleID;
211
216
224 clear_npcs();
242
243 switch (index) {
244 case 0: // hammer first strike on Fuzzies
246 mode = 0;
247 playerData->hasActionCommands = FALSE;
249 break;
250 case 1: // jump on Monty Mole
252 mode = 0;
253 playerData->curPartner = PARTNER_BOW;
255 break;
256 case 2: // Parakarry shell shot against Pokey
258 mode = 0;
259 playerData->curPartner = PARTNER_PARAKARRY;
262 break;
263 case 3: // Thunder Rage on Shy Guys at the slot machine
265 mode = 0;
266 playerData->curPartner = PARTNER_WATT;
268 break;
269 case 4: // stomped by Tubba Blubba
271 mode = 0;
272 playerData->curPartner = PARTNER_KOOPER;
275 break;
276 default:
278 mode = 2;
280 }
281
284
285 switch (mode) {
286 case 0:
293 break;
294 case 1:
297 gCurrentEncounter.hitTier = playerData->hammerLevel;
299 break;
300 case 2:
305 break;
306 case 3:
310 break;
311 case 4:
316 break;
317 }
318
326}
void set_battle_stage(s32 stageID)
Definition battle.cpp:154
void setup_demo_player(void)
Definition battle.cpp:162
void reset_battle_status(void)
Definition battle.cpp:116
void load_battle(s32 battleID)
Definition battle.cpp:146
@ BTL_DIG_FORMATION_02
@ BTL_DIG_FORMATION_01
@ BTL_DIG_FORMATION_03
@ BTL_DIG_FORMATION_00
@ BTL_DIG_FORMATION_04
@ OVERLAY_TYPE_9
Definition enums.h:2397
@ DEBUG_CONTACT_NONE
Definition enums.h:4266
@ DEMO_BTL_FLAG_10
Definition enums.h:3545
@ DEMO_BTL_FLAG_20
Definition enums.h:3546
@ DEMO_BTL_FLAG_ENEMY_ACTING
Definition enums.h:3544
@ DEMO_BTL_FLAG_ENABLED
Definition enums.h:3542
@ DEMO_BTL_FLAG_40
Definition enums.h:3547
@ DEMO_BTL_FLAG_PARTNER_ACTING
Definition enums.h:3543
@ ENCOUNTER_TRIGGER_JUMP
Definition enums.h:269
@ ENCOUNTER_TRIGGER_HAMMER
Definition enums.h:271
@ ENCOUNTER_TRIGGER_NONE
Definition enums.h:268
@ ENCOUNTER_TRIGGER_PARTNER
Definition enums.h:273
@ CONTEXT_WORLD
Definition enums.h:3528
@ PARTNER_WATT
Definition enums.h:2891
@ PARTNER_BOW
Definition enums.h:2894
@ PARTNER_PARAKARRY
Definition enums.h:2889
@ PARTNER_KOOPER
Definition enums.h:2887
@ PLAYER_SPRITES_MARIO_WORLD
Definition enums.h:6345
@ FIRST_STRIKE_NONE
Definition enums.h:3458
@ FIRST_STRIKE_ENEMY
Definition enums.h:3460
@ FIRST_STRIKE_PLAYER
Definition enums.h:3459
void clear_script_list(void)
void clear_item_entity_data(void)
void create_cameras(void)
Definition cam_main.c:254
void clear_animator_list(void)
Definition animator.c:222
void clear_model_data(void)
Definition model.c:2364
void clear_trigger_data(void)
Definition trigger.c:13
void clear_sprite_shading_data(void)
void clear_entity_data(b32)
Definition entity.c:787
s32 evt_set_variable(Evt *script, Bytecode var, s32 value)
Definition evt.c:1846
void set_screen_overlay_params_front(u8, f32)
void clear_printers(void)
Definition msg.c:196
void clear_player_status(void)
Definition 77480.c:806
void clear_effect_data(void)
Definition effects.c:41
HeapNode * general_heap_create(void)
Definition heap.c:6
void clear_worker_list(void)
Definition worker.c:10
void clear_player_data(void)
Definition inventory.c:54
void func_80138188(void)
void clear_entity_models(void)
void reset_background_settings(void)
Definition background.c:33
void initialize_status_bar(void)
Definition inventory.c:482
void hud_element_clear_cache(void)
char unk_07
Definition npc.h:370
void clear_npcs(void)
Definition npc.c:59
void clear_encounter_status(void)
Definition npc.c:2222
EncounterStatus gCurrentEncounter
Definition encounter.c:175
s8 instigatorValue
Definition npc.h:378
s8 firstStrikeType
Definition npc.h:367
@ GF_Tutorial_SwapTurnOrder
void spr_init_sprites(s32 playerSpriteSet)
Definition sprite.c:764
#define BTL_STAGE_DEFAULT
Definition stage_names.h:3
s32 gOverrideFlags
Definition main_loop.c:10

Referenced by state_step_demo().

Variable Documentation

◆ gCurrentStagePtr

◆ gBattleState

◆ gBattleStatus

BSS BattleStatus gBattleStatus

Definition at line 13 of file battle.cpp.

Referenced by action_command_free(), action_command_init_status(), action_command_update(), adjust_action_command_difficulty(), appendGfx_npc_actor(), appendGfx_partner_actor_reflection(), appendGfx_player_actor(), appendGfx_player_actor_reflection(), btl_are_all_enemies_defeated(), btl_cam_move(), btl_cam_use_preset_impl(), btl_check_can_change_partner(), btl_delete_actor(), btl_draw_enemy_health_bars(), btl_draw_upgrade_windows(), btl_init_menu_boots(), btl_init_menu_hammer(), btl_init_menu_items(), btl_init_menu_partner(), btl_main_menu_draw(), btl_main_menu_update(), btl_menu_show_switch_to_peach(), btl_menu_show_switch_to_twink(), btl_merlee_on_first_strike(), btl_merlee_on_start_turn(), btl_render_actors(), btl_restore_world_cameras(), btl_set_player_idle_anims(), btl_set_state(), btl_state_draw_celebration(), btl_state_draw_end_battle(), btl_state_draw_select_target(), btl_state_update_9(), btl_state_update_begin_partner_turn(), btl_state_update_begin_player_turn(), btl_state_update_begin_turn(), btl_state_update_celebration(), btl_state_update_change_partner(), btl_state_update_defeat(), btl_state_update_defend(), btl_state_update_end_battle(), btl_state_update_end_demo_battle(), btl_state_update_end_partner_turn(), btl_state_update_end_player_turn(), btl_state_update_end_training_battle(), btl_state_update_end_turn(), btl_state_update_enemy_move(), btl_state_update_enemy_striking_first(), btl_state_update_first_strike(), btl_state_update_next_enemy(), btl_state_update_normal_start(), btl_state_update_partner_menu(), btl_state_update_partner_move(), btl_state_update_partner_striking_first(), btl_state_update_peach_menu(), btl_state_update_player_menu(), btl_state_update_player_move(), btl_state_update_prepare_menu(), btl_state_update_run_away(), btl_state_update_select_target(), btl_state_update_switch_to_partner(), btl_state_update_switch_to_player(), btl_state_update_twink_menu(), btl_state_update_victory(), btl_submenu_moves_update(), btl_update(), btl_update_ko_status(), btl_update_message_popup(), btl_update_starpoints_display(), btl_update_strats_menu(), calc_enemy_damage_target(), calc_enemy_test_target(), calc_item_check_hit(), calc_item_damage_enemy(), calc_partner_damage_enemy(), calc_partner_test_enemy(), calc_player_damage_enemy(), calc_player_test_enemy(), can_switch_to_partner(), can_switch_to_player(), check_block_input(), count_power_plus(), count_targets(), create_actor(), create_target_list(), deduct_current_move_fp(), disable_partner_blur(), disable_player_blur(), dispatch_damage_event_actor(), dispatch_damage_event_partner(), dispatch_damage_event_player(), dispatch_damage_tick_event_player(), dispatch_event_partner(), dispatch_event_partner_continue_turn(), dispatch_event_player(), dispatch_event_player_continue_turn(), draw(), draw_content_level_up_textbox(), enable_partner_blur(), enable_player_blur(), force_disable_partner_blur(), force_disable_player_blur(), force_disable_player_blur_immediately(), get_actor(), get_cam_subject_properties(), get_flash_damage_intensity(), get_player_anim_for_status(), get_stick_input_radial(), hide_foreground_models(), hide_foreground_models_unchecked(), inflict_status(), initialize_battle(), is_actor_health_bar_visible(), is_actortype_health_bar_visible(), load_partner_actor(), load_player_actor(), load_tattle_flags(), player_team_is_ability_active(), remove_player_buffs(), render_with_player_debuff_palettes(), reset_actor_turn_info(), reset_partner_blur(), reset_player_blur(), save_tattle_flags(), show_action_rating(), show_damage_fx(), show_foreground_models(), show_foreground_models_unchecked(), show_immune_bonk(), try_inflict_status(), update(), update_action_ratings(), update_camera_no_interp(), update_enemy_shadows(), update_health_bars(), update_hero_shadows(), update_nonplayer_actor_shadows(), and update_player_actor_shadow().

◆ gLastDrawBattleState

◆ gDefeatedBattleSubstate

BSS s32 gDefeatedBattleSubstate

Definition at line 15 of file battle.cpp.

Referenced by btl_check_player_defeated().

◆ gBattleSubState

◆ gDefeatedBattleState

BSS s32 gDefeatedBattleState

Definition at line 17 of file battle.cpp.

Referenced by btl_check_player_defeated().

◆ gCurrentBattleID

BSS s32 gCurrentBattleID

◆ gCurrentStageID

BSS s32 gCurrentStageID

◆ gOverrideBattlePtr

BSS Battle* gOverrideBattlePtr

◆ gCurrentBattlePtr

◆ gBattleAreas

BattleArea gBattleAreas[]

When updating this, make sure you also update:

Definition at line 67 of file battle.cpp.

67 {
68 BTL_AREA_C(kmr_part_1, "KMR Part 1"),
69 BTL_AREA_C(kmr_part_2, "エリア KMR その2"),
70 BTL_AREA_C(kmr_part_3, "エリア KMR その3"),
71 BTL_AREA_C(mac, "エリア MAC"),
72 BTL_AREA_C(hos, "エリア HOS"),
73 BTL_AREA_C(nok, "エリア NOK"),
74 BTL_AREA_C(trd_part_1, "エリア TRD その1"),
75 BTL_AREA_C(trd_part_2, "エリア TRD その2"),
76 BTL_AREA_C(trd_part_3, "エリア TRD その3"),
77 BTL_AREA_C(iwa, "エリア IWA"),
78 BTL_AREA_C(sbk, "エリア SBK"),
79 BTL_AREA_C(isk_part_1, "エリア ISK その1"),
80 BTL_AREA_C(isk_part_2, "エリア ISK その2"),
81 BTL_AREA_C(mim, "エリア MIM"),
82 BTL_AREA_C(arn, "エリア ARN"),
83 BTL_AREA_C(dgb, "エリア DGB"),
84 BTL_AREA_C(omo, "エリア OMO"),
85 BTL_AREA_C(omo2, "エリア OMO2"),
86 BTL_AREA_C(omo3, "エリア OMO3"),
87 BTL_AREA_C(kgr, "エリア KGR"),
88 BTL_AREA_C(jan, "エリア JAN"),
89 BTL_AREA_C(jan2, "エリア JAN2"),
90 BTL_AREA_C(kzn, "エリア KZN"),
91 BTL_AREA_DMA(kzn2, "エリア KZN2"),
92 BTL_AREA_C(flo, "エリア FLO"),
93 BTL_AREA_C(flo2, "エリア FLO2"),
94 BTL_AREA_C(tik, "エリア TIK"),
95 BTL_AREA_C(tik2, "エリア TIK2"),
96 BTL_AREA_C(tik3, "エリア TIK3"),
97 BTL_AREA_C(sam, "エリア SAM"),
98 BTL_AREA_C(sam2, "エリア SAM2"),
99 BTL_AREA_C(pra, "エリア PRA"),
100 BTL_AREA_C(pra2, "エリア PRA2"),
101 BTL_AREA_C(pra3, "エリア PRA3"),
102 BTL_AREA_C(kpa, "エリア KPA"),
103 BTL_AREA_C(kpa2, "エリア KPA2"),
104 BTL_AREA_C(kpa3, "エリア KPA3"),
105 BTL_AREA_C(kpa4, "エリア KPA4"),
106 BTL_AREA_C(kkj, "エリア KKJ"),
107 BTL_AREA_C(dig, "エリア DIG"),
108 BTL_AREA_AUX(omo2_1, "エリア OMO2_1"),
109 BTL_AREA_AUX(omo2_2, "エリア OMO2_2"),
110 BTL_AREA_AUX(omo2_3, "エリア OMO2_3"),
111 BTL_AREA_AUX(omo2_4, "エリア OMO2_4"),
112 BTL_AREA_AUX(omo2_5, "エリア OMO2_5"),
113 BTL_AREA_AUX(omo2_6, "エリア OMO2_6"),
114};
#define BTL_AREA_DMA(id, jpName)
Definition battle.cpp:44
#define BTL_AREA_C(id, debugName)
Definition battle.cpp:34
#define BTL_AREA_AUX(id, jpName)
Definition battle.cpp:55

Referenced by load_battle_section().