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 StageListRow * gCurrentStagePtr
 
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 Battle * gOverrideBattlePtr
 
BSS Battle * gCurrentBattlePtr
 
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 25 of file battle.cpp.

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

◆ 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 35 of file battle.cpp.

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

◆ 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 45 of file battle.cpp.

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

◆ 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 56 of file battle.cpp.

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

Function Documentation

◆ reset_battle_status()

void reset_battle_status ( void )

Definition at line 117 of file battle.cpp.

117 {
122 gCurrentBattlePtr = nullptr;
124 gCurrentStagePtr = nullptr;
125 gCurrentStageID = 0;
126 gOverrideBattlePtr = nullptr;
127}
BSS s32 gBattleSubState
Definition battle.cpp:17
BSS Battle * gOverrideBattlePtr
Definition battle.cpp:21
BSS s32 gLastDrawBattleState
Definition battle.cpp:15
BSS StageListRow * gCurrentStagePtr
Definition battle.cpp:12
BSS s32 gCurrentBattleID
Definition battle.cpp:19
BSS s32 gCurrentStageID
Definition battle.cpp:20
BSS s32 gBattleState
Definition battle.cpp:13
BSS Battle * gCurrentBattlePtr
Definition battle.cpp:22
@ BATTLE_STATE_NONE
Definition enums.h:3664
@ BTL_SUBSTATE_INIT
Definition states.h:8
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 129 of file battle.cpp.

129 {
132
133 dma_copy((u8*)battleArea->dmaStart, (u8*)battleArea->dmaEnd, (u8*)battleArea->dmaDest);
134
135 gCurrentBattlePtr = &(*battleArea->battles)[battleIdx];
136
137 if (gCurrentStageID < 0) {
138 gCurrentStagePtr = nullptr;
139 } else {
141 }
142
145}
BattleArea gBattleAreas[]
When updating this, make sure you also update:
Definition battle.cpp:68
@ BATTLE_STATE_START
Definition enums.h:3665
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:159
#define UNPACK_BTL_INDEX(battleID)
Definition macros.h:160

Referenced by state_step_battle().

◆ load_battle()

void load_battle ( s32 battleID)

◆ set_battle_stage()

void set_battle_stage ( s32 stageID)

Definition at line 155 of file battle.cpp.

155 {
157}

Referenced by load_demo_battle(), and update_encounters_pre_battle().

◆ set_battle_formation()

void set_battle_formation ( Battle * battle)

Definition at line 159 of file battle.cpp.

159 {
161}

Referenced by update_encounters_pre_battle().

◆ setup_demo_player()

void setup_demo_player ( void )

Definition at line 163 of file battle.cpp.

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

Referenced by load_demo_battle().

◆ load_demo_battle()

void load_demo_battle ( u32 index)

Definition at line 208 of file battle.cpp.

208 {
210 u32 mode;
212
217
225 clear_npcs();
234 clear_entity_data(true);
243
244 switch (index) {
245 case 0: // hammer first strike on Fuzzies
247 mode = 0;
248 playerData->hasActionCommands = false;
250 break;
251 case 1: // jump on Monty Mole
253 mode = 0;
254 playerData->curPartner = PARTNER_BOW;
256 break;
257 case 2: // Parakarry shell shot against Pokey
259 mode = 0;
260 playerData->curPartner = PARTNER_PARAKARRY;
263 break;
264 case 3: // Thunder Rage on Shy Guys at the slot machine
266 mode = 0;
267 playerData->curPartner = PARTNER_WATT;
269 break;
270 case 4: // stomped by Tubba Blubba
272 mode = 0;
273 playerData->curPartner = PARTNER_KOOPER;
276 break;
277 default:
279 mode = 2;
281 }
282
285
286 switch (mode) {
287 case 0:
294 break;
295 case 1:
298 gCurrentEncounter.hitTier = playerData->hammerLevel;
300 break;
301 case 2:
306 break;
307 case 3:
311 break;
312 case 4:
317 break;
318 }
319
327}
void set_battle_stage(s32 stageID)
Definition battle.cpp:155
void setup_demo_player(void)
Definition battle.cpp:163
void reset_battle_status(void)
Definition battle.cpp:117
void load_battle(s32 battleID)
Definition battle.cpp:147
@ 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:2383
@ DEBUG_CONTACT_NONE
Definition enums.h:3866
@ DEMO_BTL_FLAG_10
Definition enums.h:3579
@ DEMO_BTL_FLAG_20
Definition enums.h:3580
@ DEMO_BTL_FLAG_ENEMY_ACTING
Definition enums.h:3578
@ DEMO_BTL_FLAG_ENABLED
Definition enums.h:3576
@ DEMO_BTL_FLAG_40
Definition enums.h:3581
@ DEMO_BTL_FLAG_PARTNER_ACTING
Definition enums.h:3577
@ 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:3562
@ PARTNER_WATT
Definition enums.h:2925
@ PARTNER_BOW
Definition enums.h:2928
@ PARTNER_PARAKARRY
Definition enums.h:2923
@ PARTNER_KOOPER
Definition enums.h:2921
@ PLAYER_SPRITES_MARIO_WORLD
Definition enums.h:5931
@ FIRST_STRIKE_NONE
Definition enums.h:3492
@ FIRST_STRIKE_ENEMY
Definition enums.h:3494
@ FIRST_STRIKE_PLAYER
Definition enums.h:3493
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:2363
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:1887
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:39
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 clear_entity_models(void)
void reset_background_settings(void)
Definition background.c:33
void initialize_status_bar(void)
Definition inventory.c:482
void reset_back_screen_overlay_progress(void)
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:2221
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:765
#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 14 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_merlee_on_first_strike(), btl_merlee_on_start_turn(), btl_partner_can_act(), btl_player_can_act(), 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_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_transfer_turn(), btl_state_update_twink_menu(), btl_state_update_victory(), btl_submenu_moves_update(), btl_submenu_strats_update(), btl_substate_try_hpfp_recovery(), btl_update(), btl_update_ko_status(), btl_update_message_popup(), btl_update_starpoints_display(), 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(), 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_cloud_nine(), update_command_loss(), update_enemy_shadows(), update_health_bars(), update_hero_shadows(), update_nonplayer_actor_shadows(), update_player_actor_shadow(), update_status_damage(), update_turbo_charge(), and update_water_block().

◆ gLastDrawBattleState

◆ gDefeatedBattleSubstate

BSS s32 gDefeatedBattleSubstate

Definition at line 16 of file battle.cpp.

Referenced by btl_check_player_defeated().

◆ gBattleSubState

BSS s32 gBattleSubState

Definition at line 17 of file battle.cpp.

Referenced by btl_check_player_defeated(), btl_set_state(), btl_state_draw_celebration(), btl_state_draw_partner_menu(), btl_state_draw_peach_menu(), btl_state_draw_player_menu(), btl_state_draw_twink_menu(), 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_transfer_turn(), btl_state_update_twink_menu(), btl_state_update_victory(), draw_content_level_up_textbox(), load_battle(), reset_battle_status(), update_cloud_nine(), update_command_loss(), update_status_damage(), update_turbo_charge(), and update_water_block().

◆ gDefeatedBattleState

BSS s32 gDefeatedBattleState

Definition at line 18 of file battle.cpp.

Referenced by btl_check_player_defeated().

◆ gCurrentBattleID

◆ gCurrentStageID

BSS s32 gCurrentStageID

◆ gOverrideBattlePtr

BSS Battle* gOverrideBattlePtr

◆ gCurrentBattlePtr

◆ gBattleAreas

BattleArea gBattleAreas[]

When updating this, make sure you also update:

Definition at line 68 of file battle.cpp.

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

Referenced by load_battle_section().