diff options
Diffstat (limited to 'src/battle_setup.c')
-rw-r--r-- | src/battle_setup.c | 1416 |
1 files changed, 0 insertions, 1416 deletions
diff --git a/src/battle_setup.c b/src/battle_setup.c deleted file mode 100644 index 31c127416..000000000 --- a/src/battle_setup.c +++ /dev/null @@ -1,1416 +0,0 @@ -#include "global.h" -#include "battle_setup.h" -#include "battle.h" -#include "battle_transition.h" -#include "data2.h" -#include "event_data.h" -#include "field_control_avatar.h" -#include "field_fadetransition.h" -#include "field_map_obj_helpers.h" -#include "field_message_box.h" -#include "field_player_avatar.h" -#include "field_weather.h" -#include "fieldmap.h" -#include "fldeff_80C5CD4.h" -#include "main.h" -#include "map_constants.h" -#include "metatile_behavior.h" -#include "opponent_constants.h" -#include "palette.h" -#include "rng.h" -#include "rom4.h" -#include "safari_zone.h" -#include "script.h" -#include "script_pokemon_80C4.h" -#include "secret_base.h" -#include "songs.h" -#include "sound.h" -#include "species.h" -#include "starter_choose.h" -#include "string_util.h" -#include "strings.h" -#include "task.h" -#include "text.h" -#include "trainer.h" - -extern u16 gScriptResult; - -extern void (*gFieldCallback)(void); - -EWRAM_DATA u16 gTrainerBattleMode = 0; -EWRAM_DATA u16 gTrainerBattleOpponent = 0; -EWRAM_DATA u16 gTrainerMapObjectLocalId = 0; -EWRAM_DATA u8 *gTrainerIntroSpeech = NULL; -EWRAM_DATA u8 *gTrainerDefeatSpeech = NULL; -EWRAM_DATA u8 *gTrainerVictorySpeech = NULL; -EWRAM_DATA u8 *gTrainerCannotBattleSpeech = NULL; -EWRAM_DATA u8 *gTrainerBattleScriptReturnAddress = NULL; -EWRAM_DATA u8 *gTrainerBattleEndScript = NULL; - -extern u16 gBattleTypeFlags; -extern u16 gScriptLastTalked; -extern u8 gBattleOutcome; - -extern struct MapObject gMapObjects[]; - -extern u8 gUnknown_0819F818[]; -extern u8 gUnknown_0819F840[]; -extern u8 gUnknown_0819F878[]; -extern u8 gUnknown_0819F887[]; -extern u8 gUnknown_0819F8AE[]; - -extern u8 gUnknown_0819F80B[]; -extern u8 gUnknown_081C6C02[]; - - -static const u8 gBattleTransitionTable_Wild[][2] = -{ - {8, 9}, - {5, 10}, - {0, 10}, - {7, 6}, -}; -static const u8 gBattleTransitionTable_Trainer[][2] = -{ - {4, 11}, - {2, 3}, - {0, 10}, - {1, 6}, -}; -static const struct TrainerBattleSpec gTrainerBattleSpecs_0[] = -{ - {&gTrainerBattleMode, 0}, - {&gTrainerBattleOpponent, 1}, - {&gTrainerMapObjectLocalId, 1}, - {&gTrainerIntroSpeech, 2}, - {&gTrainerDefeatSpeech, 2}, - {&gTrainerVictorySpeech, 5}, - {&gTrainerCannotBattleSpeech, 5}, - {&gTrainerBattleEndScript, 5}, - {&gTrainerBattleScriptReturnAddress, 6}, -}; -static const struct TrainerBattleSpec gTrainerBattleSpecs_1[] = -{ - {&gTrainerBattleMode, 0}, - {&gTrainerBattleOpponent, 1}, - {&gTrainerMapObjectLocalId, 1}, - {&gTrainerIntroSpeech, 2}, - {&gTrainerDefeatSpeech, 2}, - {&gTrainerVictorySpeech, 5}, - {&gTrainerCannotBattleSpeech, 5}, - {&gTrainerBattleEndScript, 2}, - {&gTrainerBattleScriptReturnAddress, 6}, -}; -static const struct TrainerBattleSpec gTrainerBattleSpecs_2[] = -{ - {&gTrainerBattleMode, 0}, - {&gTrainerBattleOpponent, 1}, - {&gTrainerMapObjectLocalId, 1}, - {&gTrainerIntroSpeech, 2}, - {&gTrainerDefeatSpeech, 2}, - {&gTrainerVictorySpeech, 5}, - {&gTrainerCannotBattleSpeech, 2}, - {&gTrainerBattleEndScript, 5}, - {&gTrainerBattleScriptReturnAddress, 6}, -}; -static const struct TrainerBattleSpec gTrainerBattleSpecs_3[] = -{ - {&gTrainerBattleMode, 0}, - {&gTrainerBattleOpponent, 1}, - {&gTrainerMapObjectLocalId, 1}, - {&gTrainerIntroSpeech, 5}, - {&gTrainerDefeatSpeech, 2}, - {&gTrainerVictorySpeech, 5}, - {&gTrainerCannotBattleSpeech, 5}, - {&gTrainerBattleEndScript, 5}, - {&gTrainerBattleScriptReturnAddress, 6}, -}; -static const struct TrainerBattleSpec gTrainerBattleSpecs_4[] = -{ - {&gTrainerBattleMode, 0}, - {&gTrainerBattleOpponent, 1}, - {&gTrainerMapObjectLocalId, 1}, - {&gTrainerIntroSpeech, 2}, - {&gTrainerDefeatSpeech, 2}, - {&gTrainerVictorySpeech, 5}, - {&gTrainerCannotBattleSpeech, 2}, - {&gTrainerBattleEndScript, 2}, - {&gTrainerBattleScriptReturnAddress, 6}, -}; - -const struct TrainerEyeTrainer gTrainerEyeTrainers[] = -{ - { - {OPPONENT_ROSE_1, OPPONENT_ROSE_2, OPPONENT_ROSE_3, OPPONENT_ROSE_4, OPPONENT_ROSE_5}, - MAP_GROUP_ROUTE118, - MAP_ID_ROUTE118, - }, - { - {OPPONENT_DUSTY_1, OPPONENT_DUSTY_2, OPPONENT_DUSTY_3, OPPONENT_DUSTY_4, OPPONENT_DUSTY_5}, - MAP_GROUP_ROUTE111, - MAP_ID_ROUTE111, - }, - { - {OPPONENT_LOLA_1, OPPONENT_LOLA_2, OPPONENT_LOLA_3, OPPONENT_LOLA_4, OPPONENT_LOLA_5}, - MAP_GROUP_ROUTE109, - MAP_ID_ROUTE109, - }, - { - {OPPONENT_RICKY_1, OPPONENT_RICKY_2, OPPONENT_RICKY_3, OPPONENT_RICKY_4, OPPONENT_RICKY_5}, - MAP_GROUP_ROUTE109, - MAP_ID_ROUTE109, - }, - { - {OPPONENT_RITA_AND_SAM_1, OPPONENT_RITA_AND_SAM_2, OPPONENT_RITA_AND_SAM_3, OPPONENT_RITA_AND_SAM_4, OPPONENT_RITA_AND_SAM_5}, - MAP_GROUP_ROUTE124, - MAP_ID_ROUTE124, - }, - { - {OPPONENT_BROOKE_1, OPPONENT_BROOKE_2, OPPONENT_BROOKE_3, OPPONENT_BROOKE_4, OPPONENT_BROOKE_5}, - MAP_GROUP_ROUTE111, - MAP_ID_ROUTE111, - }, - { - {OPPONENT_WILTON_1, OPPONENT_WILTON_2, OPPONENT_WILTON_3, OPPONENT_WILTON_4, OPPONENT_WILTON_5}, - MAP_GROUP_ROUTE111, - MAP_ID_ROUTE111, - }, - { - {OPPONENT_VALERIE_1, OPPONENT_VALERIE_2, OPPONENT_VALERIE_3, OPPONENT_VALERIE_4, OPPONENT_VALERIE_5}, - MAP_GROUP_MT_PYRE_6F, - MAP_ID_MT_PYRE_6F, - }, - { - {OPPONENT_CINDY_1, OPPONENT_CINDY_3, OPPONENT_CINDY_4, OPPONENT_CINDY_5, OPPONENT_CINDY_6}, - MAP_GROUP_ROUTE104, - MAP_ID_ROUTE104, - }, - { - {OPPONENT_JESSICA_1, OPPONENT_JESSICA_2, OPPONENT_JESSICA_3, OPPONENT_JESSICA_4, OPPONENT_JESSICA_5}, - MAP_GROUP_ROUTE121, - MAP_ID_ROUTE121, - }, - { - {OPPONENT_WINSTON_1, OPPONENT_WINSTON_2, OPPONENT_WINSTON_3, OPPONENT_WINSTON_4, OPPONENT_WINSTON_5}, - MAP_GROUP_ROUTE104, - MAP_ID_ROUTE104, - }, - { - {OPPONENT_STEVE_1, OPPONENT_STEVE_2, OPPONENT_STEVE_3, OPPONENT_STEVE_4, OPPONENT_STEVE_5}, - MAP_GROUP_ROUTE114, - MAP_ID_ROUTE114, - }, - { - {OPPONENT_TONY_1, OPPONENT_TONY_2, OPPONENT_TONY_3, OPPONENT_TONY_4, OPPONENT_TONY_5}, - MAP_GROUP_ROUTE107, - MAP_ID_ROUTE107, - }, - { - {OPPONENT_NOB_1, OPPONENT_NOB_2, OPPONENT_NOB_3, OPPONENT_NOB_4, OPPONENT_NOB_5}, - MAP_GROUP_ROUTE115, - MAP_ID_ROUTE115, - }, - { - {OPPONENT_DALTON_1, OPPONENT_DALTON_2, OPPONENT_DALTON_3, OPPONENT_DALTON_4, OPPONENT_DALTON_5}, - MAP_GROUP_ROUTE118, - MAP_ID_ROUTE118, - }, - { - {OPPONENT_BERNIE_1, OPPONENT_BERNIE_2, OPPONENT_BERNIE_3, OPPONENT_BERNIE_4, OPPONENT_BERNIE_5}, - MAP_GROUP_ROUTE114, - MAP_ID_ROUTE114, - }, - { - {OPPONENT_ETHAN_1, OPPONENT_ETHAN_2, OPPONENT_ETHAN_3, OPPONENT_ETHAN_4, OPPONENT_ETHAN_5}, - MAP_GROUP_JAGGED_PASS, - MAP_ID_JAGGED_PASS, - }, - { - {OPPONENT_JOHN_AND_JAY_1, OPPONENT_JOHN_AND_JAY_2, OPPONENT_JOHN_AND_JAY_3, OPPONENT_JOHN_AND_JAY_4, OPPONENT_JOHN_AND_JAY_5}, - MAP_GROUP_METEOR_FALLS_1F_2R, - MAP_ID_METEOR_FALLS_1F_2R, - }, - { - {OPPONENT_BRANDON_1, OPPONENT_BRANDON_2, OPPONENT_BRANDON_3, OPPONENT_BRANDON_4, OPPONENT_BRANDON_5}, - MAP_GROUP_ROUTE120, - MAP_ID_ROUTE120, - }, - { - {OPPONENT_CAMERON_1, OPPONENT_CAMERON_2, OPPONENT_CAMERON_3, OPPONENT_CAMERON_4, OPPONENT_CAMERON_5}, - MAP_GROUP_ROUTE123, - MAP_ID_ROUTE123, - }, - { - {OPPONENT_JACKI_1, OPPONENT_JACKI_2, OPPONENT_JACKI_3, OPPONENT_JACKI_4, OPPONENT_JACKI_5}, - MAP_GROUP_ROUTE123, - MAP_ID_ROUTE123, - }, - { - {OPPONENT_WALTER_1, OPPONENT_WALTER_2, OPPONENT_WALTER_3, OPPONENT_WALTER_4, OPPONENT_WALTER_5}, - MAP_GROUP_ROUTE121, - MAP_ID_ROUTE121, - }, - { - {OPPONENT_KAREN_1, OPPONENT_KAREN_2, OPPONENT_KAREN_3, OPPONENT_KAREN_4, OPPONENT_KAREN_5}, - MAP_GROUP_ROUTE116, - MAP_ID_ROUTE116, - }, - { - {OPPONENT_JERRY_1, OPPONENT_JERRY_2, OPPONENT_JERRY_3, OPPONENT_JERRY_4, OPPONENT_JERRY_5}, - MAP_GROUP_ROUTE116, - MAP_ID_ROUTE116, - }, - { - {OPPONENT_ANNA_AND_MEG_1, OPPONENT_ANNA_AND_MEG_2, OPPONENT_ANNA_AND_MEG_3, OPPONENT_ANNA_AND_MEG_4, OPPONENT_ANNA_AND_MEG_5}, - MAP_GROUP_ROUTE117, - MAP_ID_ROUTE117, - }, - { - {OPPONENT_ISABEL_1, OPPONENT_ISABEL_2, OPPONENT_ISABEL_3, OPPONENT_ISABEL_4, OPPONENT_ISABEL_5}, - MAP_GROUP_ROUTE110, - MAP_ID_ROUTE110, - }, - { - {OPPONENT_MIGUEL_1, OPPONENT_MIGUEL_2, OPPONENT_MIGUEL_3, OPPONENT_MIGUEL_4, OPPONENT_MIGUEL_5}, - MAP_GROUP_ROUTE103, - MAP_ID_ROUTE103, - }, - { - {OPPONENT_TIMOTHY_1, OPPONENT_TIMOTHY_2, OPPONENT_TIMOTHY_3, OPPONENT_TIMOTHY_4, OPPONENT_TIMOTHY_5}, - MAP_GROUP_ROUTE115, - MAP_ID_ROUTE115, - }, - { - {OPPONENT_SHELBY_1, OPPONENT_SHELBY_2, OPPONENT_SHELBY_3, OPPONENT_SHELBY_4, OPPONENT_SHELBY_5}, - MAP_GROUP_MT_CHIMNEY, - MAP_ID_MT_CHIMNEY, - }, - { - {OPPONENT_CALVIN_1, OPPONENT_CALVIN_2, OPPONENT_CALVIN_3, OPPONENT_CALVIN_4, OPPONENT_CALVIN_5}, - MAP_GROUP_ROUTE102, - MAP_ID_ROUTE102, - }, - { - {OPPONENT_ELLIOT_1, OPPONENT_ELLIOT_2, OPPONENT_ELLIOT_3, OPPONENT_ELLIOT_4, OPPONENT_ELLIOT_5}, - MAP_GROUP_ROUTE106, - MAP_ID_ROUTE106, - }, - { - {OPPONENT_ABIGAIL_1, OPPONENT_ABIGAIL_2, OPPONENT_ABIGAIL_3, OPPONENT_ABIGAIL_4, OPPONENT_ABIGAIL_5}, - MAP_GROUP_ROUTE110, - MAP_ID_ROUTE110, - }, - { - {OPPONENT_BENJAMIN_1, OPPONENT_BENJAMIN_2, OPPONENT_BENJAMIN_3, OPPONENT_BENJAMIN_4, OPPONENT_BENJAMIN_5}, - MAP_GROUP_ROUTE110, - MAP_ID_ROUTE110, - }, - { - {OPPONENT_ISAIAH_1, OPPONENT_ISAIAH_2, OPPONENT_ISAIAH_3, OPPONENT_ISAIAH_4, OPPONENT_ISAIAH_5}, - MAP_GROUP_ROUTE128, - MAP_ID_ROUTE128, - }, - { - {OPPONENT_KATELYN_1, OPPONENT_KATELYN_2, OPPONENT_KATELYN_3, OPPONENT_KATELYN_4, OPPONENT_KATELYN_5}, - MAP_GROUP_ROUTE128, - MAP_ID_ROUTE128, - }, - { - {OPPONENT_MARIA_1, OPPONENT_MARIA_2, OPPONENT_MARIA_3, OPPONENT_MARIA_4, OPPONENT_MARIA_5}, - MAP_GROUP_ROUTE117, - MAP_ID_ROUTE117, - }, - { - {OPPONENT_DYLAN_1, OPPONENT_DYLAN_2, OPPONENT_DYLAN_3, OPPONENT_DYLAN_4, OPPONENT_DYLAN_5}, - MAP_GROUP_ROUTE117, - MAP_ID_ROUTE117, - }, - { - {OPPONENT_NICOLAS_1, OPPONENT_NICOLAS_2, OPPONENT_NICOLAS_3, OPPONENT_NICOLAS_4, OPPONENT_NICOLAS_5}, - MAP_GROUP_METEOR_FALLS_1F_2R, - MAP_ID_METEOR_FALLS_1F_2R, - }, - { - {OPPONENT_ROBERT_1, OPPONENT_ROBERT_2, OPPONENT_ROBERT_3, OPPONENT_ROBERT_4, OPPONENT_ROBERT_5}, - MAP_GROUP_ROUTE120, - MAP_ID_ROUTE120, - }, - { - {OPPONENT_LAO_1, OPPONENT_LAO_2, OPPONENT_LAO_3, OPPONENT_LAO_4, OPPONENT_LAO_5}, - MAP_GROUP_ROUTE113, - MAP_ID_ROUTE113, - }, - { - {OPPONENT_CYNDY_1, OPPONENT_CYNDY_2, OPPONENT_CYNDY_3, OPPONENT_CYNDY_4, OPPONENT_CYNDY_5}, - MAP_GROUP_ROUTE115, - MAP_ID_ROUTE115, - }, - { - {OPPONENT_MADELINE_1, OPPONENT_MADELINE_2, OPPONENT_MADELINE_3, OPPONENT_MADELINE_4, OPPONENT_MADELINE_5}, - MAP_GROUP_ROUTE113, - MAP_ID_ROUTE113, - }, - { - {OPPONENT_JENNY_1, OPPONENT_JENNY_2, OPPONENT_JENNY_3, OPPONENT_JENNY_4, OPPONENT_JENNY_5}, - MAP_GROUP_ROUTE124, - MAP_ID_ROUTE124, - }, - { - {OPPONENT_DIANA_1, OPPONENT_DIANA_2, OPPONENT_DIANA_3, OPPONENT_DIANA_4, OPPONENT_DIANA_5}, - MAP_GROUP_JAGGED_PASS, - MAP_ID_JAGGED_PASS, - }, - { - {OPPONENT_AMY_AND_LIV_1, OPPONENT_AMY_AND_LIV_2, OPPONENT_AMY_AND_LIV_4, OPPONENT_AMY_AND_LIV_5, OPPONENT_AMY_AND_LIV_6}, - MAP_GROUP_ROUTE103, - MAP_ID_ROUTE103, - }, - { - {OPPONENT_ERNEST_1, OPPONENT_ERNEST_2, OPPONENT_ERNEST_3, OPPONENT_ERNEST_4, OPPONENT_ERNEST_5}, - MAP_GROUP_ROUTE125, - MAP_ID_ROUTE125, - }, - { - {OPPONENT_EDWIN_1, OPPONENT_EDWIN_2, OPPONENT_EDWIN_3, OPPONENT_EDWIN_4, OPPONENT_EDWIN_5}, - MAP_GROUP_ROUTE110, - MAP_ID_ROUTE110, - }, - { - {OPPONENT_LYDIA_1, OPPONENT_LYDIA_2, OPPONENT_LYDIA_3, OPPONENT_LYDIA_4, OPPONENT_LYDIA_5}, - MAP_GROUP_ROUTE117, - MAP_ID_ROUTE117, - }, - { - {OPPONENT_ISAAC_1, OPPONENT_ISAAC_2, OPPONENT_ISAAC_3, OPPONENT_ISAAC_4, OPPONENT_ISAAC_5}, - MAP_GROUP_ROUTE117, - MAP_ID_ROUTE117, - }, - { - {OPPONENT_CATHERINE_1, OPPONENT_CATHERINE_2, OPPONENT_CATHERINE_3, OPPONENT_CATHERINE_4, OPPONENT_CATHERINE_5}, - MAP_GROUP_ROUTE119, - MAP_ID_ROUTE119, - }, - { - {OPPONENT_JACKSON_1, OPPONENT_JACKSON_2, OPPONENT_JACKSON_3, OPPONENT_JACKSON_4, OPPONENT_JACKSON_5}, - MAP_GROUP_ROUTE119, - MAP_ID_ROUTE119, - }, - { - {OPPONENT_HALEY_1, OPPONENT_HALEY_2, OPPONENT_HALEY_3, OPPONENT_HALEY_4, OPPONENT_HALEY_5}, - MAP_GROUP_ROUTE104, - MAP_ID_ROUTE104, - }, - { - {OPPONENT_JAMES_1, OPPONENT_JAMES_2, OPPONENT_JAMES_3, OPPONENT_JAMES_4, OPPONENT_JAMES_5}, - MAP_GROUP_PETALBURG_WOODS, - MAP_ID_PETALBURG_WOODS, - }, - { - {OPPONENT_TRENT_1, OPPONENT_TRENT_2, OPPONENT_TRENT_3, OPPONENT_TRENT_4, OPPONENT_TRENT_5}, - MAP_GROUP_ROUTE112, - MAP_ID_ROUTE112, - }, - { - {OPPONENT_LOIS_AND_HAL_1, OPPONENT_LOIS_AND_HAL_2, OPPONENT_LOIS_AND_HAL_3, OPPONENT_LOIS_AND_HAL_4, OPPONENT_LOIS_AND_HAL_5}, - MAP_GROUP_ABANDONED_SHIP_ROOMS2_1F, - MAP_ID_ABANDONED_SHIP_ROOMS2_1F, - }, - { - {OPPONENT_WALLY_3, OPPONENT_WALLY_4, OPPONENT_WALLY_5, OPPONENT_WALLY_6, OPPONENT_NONE}, - MAP_GROUP_VICTORY_ROAD_1F, - MAP_ID_VICTORY_ROAD_1F, - }, -}; - -static const u16 sBadgeFlags[] = {BADGE01_GET, BADGE02_GET, BADGE03_GET, BADGE04_GET, BADGE05_GET, BADGE06_GET, BADGE07_GET, BADGE08_GET}; - -void task01_battle_start(u8 taskId) -{ - s16 *data = gTasks[taskId].data; - - switch (data[0]) - { - case 0: - if (!FieldPoisonEffectIsRunning()) // is poison not active? - { - sub_811AABC(data[1]); - data[0]++; // go to case 1. - } - break; - case 1: - if (IsBattleTransitionDone() == TRUE) - { - SetMainCallback2(sub_800E7C4); - prev_quest_postbuffer_cursor_backup_reset(); - overworld_poison_timer_set(); - DestroyTask(taskId); - } - break; - } -} - -void task_add_01_battle_start(u8 transition, u16 song) -{ - u8 taskId = CreateTask(task01_battle_start, 1); - - gTasks[taskId].data[1] = transition; - current_map_music_set__default_for_battle(song); -} - -void CheckForSafariZoneAndProceed(void) -{ - if (GetSafariZoneFlag()) - StartBattle_Safari(); - else - StartBattle_StandardWild(); -} - -void StartBattle_StandardWild(void) -{ - ScriptContext2_Enable(); - FreezeMapObjects(); - sub_80597F4(); - gMain.savedCallback = HandleWildBattleEnd; - gBattleTypeFlags = 0; - task_add_01_battle_start(GetWildBattleTransition(), 0); - IncrementGameStat(7); - IncrementGameStat(8); -} - -void StartBattle_Roamer(void) -{ - ScriptContext2_Enable(); - FreezeMapObjects(); - sub_80597F4(); - gMain.savedCallback = HandleWildBattleEnd; - gBattleTypeFlags = BATTLE_TYPE_ROAMER; - task_add_01_battle_start(GetWildBattleTransition(), 0); - IncrementGameStat(7); - IncrementGameStat(8); -} - -void StartBattle_Safari(void) -{ - ScriptContext2_Enable(); - FreezeMapObjects(); - sub_80597F4(); - gMain.savedCallback = sub_80C824C; - gBattleTypeFlags = BATTLE_TYPE_SAFARI; - task_add_01_battle_start(GetWildBattleTransition(), 0); -} - -void task_add_01_battle_start_with_music_and_stats(void) -{ - task_add_01_battle_start(GetTrainerBattleTransition(), 0); - IncrementGameStat(7); - IncrementGameStat(9); -} - -//Initiates battle where Wally catches Ralts -void StartBattle_WallyTutorial(void) -{ - CreateMaleMon(&gEnemyParty[0], SPECIES_RALTS, 5); - ScriptContext2_Enable(); - gMain.savedCallback = c2_exit_to_overworld_1_continue_scripts_restart_music; - gBattleTypeFlags = BATTLE_TYPE_WALLY_TUTORIAL; - task_add_01_battle_start(8, 0); -} - -void StartBattle_ScriptedWild(void) -{ - ScriptContext2_Enable(); - gMain.savedCallback = HandleScriptedWildBattleEnd; - gBattleTypeFlags = 0; - task_add_01_battle_start(GetWildBattleTransition(), 0); - IncrementGameStat(7); - IncrementGameStat(8); -} - -void StartBattle_SouthernIsland(void) -{ - ScriptContext2_Enable(); - gMain.savedCallback = HandleScriptedWildBattleEnd; - gBattleTypeFlags = BATTLE_TYPE_LEGENDARY; - task_add_01_battle_start(GetWildBattleTransition(), 0); - IncrementGameStat(7); - IncrementGameStat(8); -} - -void StartBattle_Rayquaza(void) -{ - ScriptContext2_Enable(); - gMain.savedCallback = HandleScriptedWildBattleEnd; - gBattleTypeFlags = BATTLE_TYPE_LEGENDARY; - task_add_01_battle_start(0, BGM_BATTLE34); - IncrementGameStat(7); - IncrementGameStat(8); -} - -void StartBattle_GroudonKyogre(void) -{ - ScriptContext2_Enable(); - gMain.savedCallback = HandleScriptedWildBattleEnd; - gBattleTypeFlags = BATTLE_TYPE_LEGENDARY | BATTLE_TYPE_KYOGRE_GROUDON; - if (gGameVersion == 2) - task_add_01_battle_start(0xB, BGM_BATTLE34); // KYOGRE - else - task_add_01_battle_start(0x6, BGM_BATTLE34); // GROUDON - IncrementGameStat(7); - IncrementGameStat(8); -} - -void StartBattle_Regi(void) -{ - ScriptContext2_Enable(); - gMain.savedCallback = HandleScriptedWildBattleEnd; - gBattleTypeFlags = BATTLE_TYPE_LEGENDARY | BATTLE_TYPE_REGI; - task_add_01_battle_start(0xA, BGM_BATTLE36); - IncrementGameStat(7); - IncrementGameStat(8); -} - -void HandleWildBattleEnd(void) -{ - CpuFill16(0, (void *)BG_PLTT, BG_PLTT_SIZE); - ResetOamRange(0, 128); - - if (battle_exit_is_player_defeat(gBattleOutcome) == TRUE) - { - SetMainCallback2(CB2_WhiteOut); - } - else - { - SetMainCallback2(c2_exit_to_overworld_2_switch); - gFieldCallback = sub_8080E44; - } -} - -void HandleScriptedWildBattleEnd(void) -{ - CpuFill16(0, (void *)BG_PLTT, BG_PLTT_SIZE); - ResetOamRange(0, 128); - - if (battle_exit_is_player_defeat(gBattleOutcome) == TRUE) - SetMainCallback2(CB2_WhiteOut); - else - SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music); -} - -s8 GetBattleTerrain(void) -{ - u16 tileBehavior; - s16 x, y; - - PlayerGetDestCoords(&x, &y); - tileBehavior = MapGridGetMetatileBehaviorAt(x, y); - - if (MetatileBehavior_IsTallGrass(tileBehavior)) - return 0; - if (MetatileBehavior_IsLongGrass(tileBehavior)) - return 1; - if (MetatileBehavior_IsSandOrDeepSand(tileBehavior)) - return 2; - switch (gMapHeader.mapType) - { - case MAP_TYPE_TOWN: - case MAP_TYPE_CITY: - case MAP_TYPE_ROUTE: - break; - case MAP_TYPE_UNDERGROUND: - if (sub_80574C4(tileBehavior)) - return 8; - if (MetatileBehavior_IsSurfableWaterOrUnderwater(tileBehavior)) - return 5; - return 7; - case MAP_TYPE_INDOOR: - case MAP_TYPE_SECRET_BASE: - return 8; - case MAP_TYPE_UNDERWATER: - return 3; - case MAP_TYPE_6: - if (MetatileBehavior_IsSurfableWaterOrUnderwater(tileBehavior)) - return 4; - return 9; - } - if (sub_8057568(tileBehavior)) - return 4; - if (MetatileBehavior_IsSurfableWaterOrUnderwater(tileBehavior)) - return 5; - if (sub_80574D8(tileBehavior)) - return 6; - if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING)) - { - if (sub_8057450(tileBehavior)) - return 5; - if (MetatileBehavior_IsBridge(tileBehavior) == TRUE) - return 4; - } - if (gSaveBlock1.location.mapGroup == 0 && gSaveBlock1.location.mapNum == 28) - return 2; - if (GetSav1Weather() == 8) - return 2; - return 9; -} - -s8 GetBattleTransitionTypeByMap(void) -{ - u8 flashUsed; - u16 tileBehavior; - s16 x, y; - - PlayerGetDestCoords(&x, &y); - tileBehavior = MapGridGetMetatileBehaviorAt(x, y); - - flashUsed = sav1_get_flash_used_on_map(); - - if (flashUsed) - return 2; - - if (!MetatileBehavior_IsSurfableWaterOrUnderwater(tileBehavior)) - { - switch (gMapHeader.mapType) - { - case MAP_TYPE_UNDERGROUND: - return 1; - case MAP_TYPE_UNDERWATER: - return 3; - default: - return 0; - } - } - return 3; -} - -u16 GetSumOfPartyMonLevel(u8 numMons) -{ - u8 sum = 0; - int i; - - for (i = 0; i < 6; i++) - { - u32 species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2); - - if (species != SPECIES_EGG && species != SPECIES_NONE && GetMonData(&gPlayerParty[i], MON_DATA_HP) != 0) - { - sum += GetMonData(&gPlayerParty[i], MON_DATA_LEVEL); - numMons--; - if (numMons == 0) - break; - } - } - return sum; -} - -u8 GetSumOfEnemyPartyLevel(u16 trainerNum, u8 numMons) -{ - u8 i; - u8 sum; - u32 count = numMons; - void *party; - - if (gTrainers[trainerNum].partySize < count) - count = gTrainers[trainerNum].partySize; - - sum = 0; - - switch (gTrainers[trainerNum].partyFlags) - { - case 0: - party = gTrainers[trainerNum].party; - for (i = 0; i < count; i++) - sum += ((struct TrainerPartyMember0 *)party)[i].level; - break; - case 1: - party = gTrainers[trainerNum].party; - for (i = 0; i < count; i++) - sum += ((struct TrainerPartyMember1 *)party)[i].level; - break; - case 2: - party = gTrainers[trainerNum].party; - for (i = 0; i < count; i++) - sum += ((struct TrainerPartyMember2 *)party)[i].level; - break; - case 3: - party = gTrainers[trainerNum].party; - for (i = 0; i < count; i++) - sum += ((struct TrainerPartyMember3 *)party)[i].level; - break; - } - - return sum; -} - -u8 GetWildBattleTransition(void) -{ - u8 flashVar = GetBattleTransitionTypeByMap(); - u8 level = GetMonData(&gEnemyParty[0], MON_DATA_LEVEL); - - if (level < (u8)GetSumOfPartyMonLevel(1)) // is wild mon level than the player's mon level? - return gBattleTransitionTable_Wild[flashVar][0]; - else - return gBattleTransitionTable_Wild[flashVar][1]; // use a white fade in instead of normal transition. -} - -u8 GetTrainerBattleTransition(void) -{ - const struct Trainer *trainer; - u8 minPartyCount; - u8 flashVar; - u8 level; - - if (gTrainerBattleOpponent == 1024) // link battle? - return 16; - - trainer = gTrainers; - - if (trainer[gTrainerBattleOpponent].trainerClass == 24) // league? - { - if (gTrainerBattleOpponent == 261) - return 12; - if (gTrainerBattleOpponent == 262) - return 13; - if (gTrainerBattleOpponent == 263) - return 14; - if (gTrainerBattleOpponent == 264) - return 15; - return 16; - } - - if (trainer[gTrainerBattleOpponent].trainerClass == 32) // team leader? - return 16; - - if (trainer[gTrainerBattleOpponent].doubleBattle == TRUE) - minPartyCount = 2; // double battles always at least have 2 pokemon. - else - minPartyCount = 1; - - flashVar = GetBattleTransitionTypeByMap(); - level = GetSumOfEnemyPartyLevel(gTrainerBattleOpponent, minPartyCount); - - if (level < (u8)GetSumOfPartyMonLevel(minPartyCount)) // is wild mon level than the player's mon level? - return gBattleTransitionTable_Trainer[flashVar][0]; - else - return gBattleTransitionTable_Trainer[flashVar][1]; -} - -u8 GetBattleTowerBattleTransition(void) -{ - u8 monData = GetMonData(&gEnemyParty[0], MON_DATA_LEVEL); - - if (monData < (u8)GetSumOfPartyMonLevel(1)) - return 4; - else - return 3; -} - -void ChooseStarter(void) -{ - SetMainCallback2(CB2_ChooseStarter); - gMain.savedCallback = CB2_GiveStarter; -} - -void CB2_GiveStarter(void) -{ - u16 starterPoke; - - *GetVarPointer(0x4023) = gScriptResult; - starterPoke = GetStarterPokemon(gScriptResult); - ScriptGiveMon(starterPoke, 5, 0, 0, 0, 0); - ResetTasks(); - sub_80408BC(); - SetMainCallback2(CB2_StartFirstBattle); - sub_811AAD8(0); -} - -void CB2_StartFirstBattle(void) -{ - UpdatePaletteFade(); - RunTasks(); - - if (IsBattleTransitionDone() == TRUE) - { - gBattleTypeFlags = BATTLE_TYPE_FIRST_BATTLE; - gMain.savedCallback = HandleFirstBattleEnd; - SetMainCallback2(sub_800E7C4); - prev_quest_postbuffer_cursor_backup_reset(); - overworld_poison_timer_set(); - IncrementGameStat(7); - IncrementGameStat(8); - } -} - -void HandleFirstBattleEnd(void) -{ - sav1_reset_battle_music_maybe(); - SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music); -} - -u32 TrainerBattleLoadArg32(const u8 *ptr) -{ - return ptr[0] | (ptr[1] << 8) | (ptr[2] << 16) | (ptr[3] << 24); -} - -u16 TrainerBattleLoadArg16(const u8 *ptr) -{ - return ptr[0] | (ptr[1] << 8); -} - -u8 TrainerBattleLoadArg8(const u8 *ptr) -{ - return ptr[0]; -} - -u16 trainerflag_opponent(void) -{ - return TRAINER_FLAG_START + gTrainerBattleOpponent; -} - -bool32 battle_exit_is_player_defeat(u32 a1) -{ - switch (a1) - { - case 2: - case 3: - return TRUE; - case 1: - case 4: - case 5: - case 6: - case 7: - return FALSE; - } - return FALSE; -} - -void sub_80822BC(void) -{ - gTrainerBattleMode = 0; - gTrainerBattleOpponent = 0; - gTrainerMapObjectLocalId = 0; - gTrainerIntroSpeech = 0; - gTrainerDefeatSpeech = 0; - gTrainerVictorySpeech = 0; - gTrainerCannotBattleSpeech = 0; - gTrainerBattleScriptReturnAddress = 0; - gTrainerBattleEndScript = 0; -} - -void TrainerBattleLoadArgs(const struct TrainerBattleSpec *specs, const u8 *data) -{ - while (1) - { - switch (specs->ptrType) - { - case 0: - *(u8 *)specs->ptr = TrainerBattleLoadArg8(data); - data++; - break; - case 1: - *(u16 *)specs->ptr = TrainerBattleLoadArg16(data); - data += 2; - break; - case 2: - *(u32 *)specs->ptr = TrainerBattleLoadArg32(data); - data += 4; - break; - case 3: - *(u8 *)specs->ptr = 0; - break; - case 4: - *(u16 *)specs->ptr = 0; - break; - case 5: - *(u32 *)specs->ptr = 0; - break; - case 6: - *(const u8 **)specs->ptr = data; - return; - } - specs++; - } -} - -void battle_80801F0(void) -{ - if (gTrainerMapObjectLocalId) - { - gScriptLastTalked = gTrainerMapObjectLocalId; - gSelectedMapObject = GetFieldObjectIdByLocalIdAndMap(gTrainerMapObjectLocalId, gSaveBlock1.location.mapNum, gSaveBlock1.location.mapGroup); - } -} - -u8 *TrainerBattleConfigure(const u8 *data) -{ - sub_80822BC(); - gTrainerBattleMode = TrainerBattleLoadArg8(data); - - switch (gTrainerBattleMode) - { - case 3: - TrainerBattleLoadArgs(gTrainerBattleSpecs_3, data); - return gUnknown_0819F878; - case 4: - TrainerBattleLoadArgs(gTrainerBattleSpecs_2, data); - battle_80801F0(); - return gUnknown_0819F840; - case 1: - case 2: - TrainerBattleLoadArgs(gTrainerBattleSpecs_1, data); - battle_80801F0(); - return gUnknown_0819F818; - case 6: - case 8: - TrainerBattleLoadArgs(gTrainerBattleSpecs_4, data); - battle_80801F0(); - return gUnknown_0819F840; - case 7: - TrainerBattleLoadArgs(gTrainerBattleSpecs_2, data); - battle_80801F0(); - gTrainerBattleOpponent = sub_8082C4C(gTrainerBattleOpponent); - return gUnknown_0819F8AE; - case 5: - TrainerBattleLoadArgs(gTrainerBattleSpecs_0, data); - battle_80801F0(); - gTrainerBattleOpponent = sub_8082C4C(gTrainerBattleOpponent); - return gUnknown_0819F887; - default: - TrainerBattleLoadArgs(gTrainerBattleSpecs_0, data); - battle_80801F0(); - return gUnknown_0819F818; - } -} - -void TrainerWantsBattle(u8 trainerMapObjId, u8 *trainerScript) -{ - gSelectedMapObject = trainerMapObjId; - gScriptLastTalked = gMapObjects[trainerMapObjId].localId; - TrainerBattleConfigure(trainerScript + 1); - ScriptContext1_SetupScript(gUnknown_0819F80B); - ScriptContext2_Enable(); -} - -bool32 GetTrainerFlagFromScriptPointer(u8 *data) -{ - u32 flag = TrainerBattleLoadArg16(data + 2); - return FlagGet(TRAINER_FLAG_START + flag); -} - -void sub_8082524(void) -{ - struct MapObject *mapObject = &gMapObjects[gSelectedMapObject]; - - npc_set_running_behaviour_etc(mapObject, npc_running_behaviour_by_direction(mapObject->mapobj_unk_18)); -} - -u8 sub_8082558(void) -{ - return gTrainerBattleMode; -} - -u8 sub_8082564(void) -{ - return FlagGet(trainerflag_opponent()); -} - -void sub_808257C(void) -{ - FlagSet(trainerflag_opponent()); -} - -void unref_sub_8082590(void) -{ - FlagSet(trainerflag_opponent()); // duplicate function -} - -u8 trainer_flag_check(u16 flag) -{ - return FlagGet(TRAINER_FLAG_START + flag); -} - -void trainer_flag_set(u16 flag) -{ - FlagSet(TRAINER_FLAG_START + flag); -} - -void trainer_flag_clear(u16 flag) -{ - FlagReset(TRAINER_FLAG_START + flag); -} - -void sub_80825E4(void) -{ - gBattleTypeFlags = BATTLE_TYPE_TRAINER; - gMain.savedCallback = sub_808260C; - task_add_01_battle_start_with_music_and_stats(); - ScriptContext1_Stop(); -} - -void sub_808260C(void) -{ - if (gTrainerBattleOpponent == 1024) - { - SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music); // link battle? - } - else if (battle_exit_is_player_defeat(gBattleOutcome) == TRUE) - { - SetMainCallback2(CB2_WhiteOut); - } - else - { - SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music); - sub_808257C(); - } -} - -void do_choose_name_or_words_screen(void) -{ - if (gTrainerBattleOpponent == 1024) - { - SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music); // link battle? - } - else if (battle_exit_is_player_defeat(gBattleOutcome) == TRUE) - { - SetMainCallback2(CB2_WhiteOut); - } - else - { - SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music); - sub_808257C(); - sub_8082CB8(); - } -} - -void sub_80826B0(void) -{ - gBattleTypeFlags = BATTLE_TYPE_TRAINER; - gMain.savedCallback = do_choose_name_or_words_screen; - task_add_01_battle_start_with_music_and_stats(); - ScriptContext1_Stop(); -} - -void sub_80826D8(void) -{ - ShowFieldMessage(sub_808281C()); -} - -u8 *sub_80826E8(void) -{ - if (gTrainerBattleScriptReturnAddress) - return gTrainerBattleScriptReturnAddress; - else - return gUnknown_081C6C02; -} - -u8 *sub_8082700(void) -{ - if (gTrainerBattleEndScript) - return gTrainerBattleEndScript; - else - return gUnknown_081C6C02; -} - -void sub_8082718(void) -{ - ShowFieldMessage(sub_8082880()); -} - -void PlayTrainerEncounterMusic(void) -{ - u16 music; - - if (gTrainerBattleMode != 1 && gTrainerBattleMode != 8) - { - switch (sub_803FC58(gTrainerBattleOpponent)) - { - case TRAINER_ENCOUNTER_MUSIC_MALE: - music = BGM_BOYEYE; - break; - case TRAINER_ENCOUNTER_MUSIC_FEMALE: - music = BGM_GIRLEYE; - break; - case TRAINER_ENCOUNTER_MUSIC_GIRL: - music = BGM_SYOUJOEYE; - break; - case TRAINER_ENCOUNTER_MUSIC_INTENSE: - music = BGM_HAGESHII; - break; - case TRAINER_ENCOUNTER_MUSIC_COOL: - music = BGM_KAKKOII; - break; - case TRAINER_ENCOUNTER_MUSIC_AQUA: - music = BGM_AQA_0; - break; - case TRAINER_ENCOUNTER_MUSIC_MAGMA: - music = BGM_MGM0; - break; - case TRAINER_ENCOUNTER_MUSIC_SWIMMER: - music = BGM_SWIMEYE; - break; - case TRAINER_ENCOUNTER_MUSIC_TWINS: - music = BGM_HUTAGO; - break; - case TRAINER_ENCOUNTER_MUSIC_ELITE_FOUR: - music = BGM_SITENNOU; - break; - case TRAINER_ENCOUNTER_MUSIC_HIKER: - music = BGM_YAMA_EYE; - break; - case TRAINER_ENCOUNTER_MUSIC_INTERVIEWER: - music = BGM_INTER_V; - break; - case TRAINER_ENCOUNTER_MUSIC_RICH: - music = BGM_TEST; - break; - default: - music = BGM_AYASII; - } - PlayNewMapMusic(music); - } -} - -//Returns an empty string if a null pointer was passed, otherwise returns str -u8 *SanitizeString(const u8 *str) -{ - if (str) - return (u8 *) str; - else - return (u8 *) gOtherText_CancelWithTerminator; -} - -u8 *sub_808281C(void) -{ - return SanitizeString(gTrainerIntroSpeech); -} - -u8 *sub_8082830(void) -{ - u8 *str; - - if (gTrainerBattleOpponent == 1024) - str = sub_80BCCE8(); - else - str = gTrainerDefeatSpeech; - - StringExpandPlaceholders(gStringVar4, SanitizeString(str)); - return gStringVar4; -} - -u8 *unref_sub_808286C(void) -{ - return SanitizeString(gTrainerVictorySpeech); -} - -u8 *sub_8082880(void) -{ - return SanitizeString(gTrainerCannotBattleSpeech); -} - -s32 sub_8082894(const struct TrainerEyeTrainer *trainers, u16 trainerNum) -{ - s32 i; - - for (i = 0; i < NUM_TRAINER_EYE_TRAINERS; i++) - { - if (trainers[i].trainerNums[0] == trainerNum) - return i; - } - return -1; -} - -s32 sub_80828B8(const struct TrainerEyeTrainer *trainers, u16 trainerNum) -{ - s32 i; - s32 j; - - for (i = 0; i < NUM_TRAINER_EYE_TRAINERS; i++) - { - for (j = 0; j < 5 && trainers[i].trainerNums[j] != 0; j++) - { - if (trainers[i].trainerNums[j] == trainerNum) - return i; - } - } - return -1; -} - -bool32 sub_80828FC(const struct TrainerEyeTrainer *trainers, u16 mapGroup, u16 mapNum) -{ - int i; - bool32 ret = FALSE; - - for (i = 0; i < NUM_TRAINER_EYE_TRAINERS; i++) - { - if (trainers[i].mapGroup == mapGroup && trainers[i].mapNum == mapNum) - { - if (gSaveBlock1.trainerRematches[i] != 0) - ret = TRUE; - else if (trainer_flag_check(trainers[i].trainerNums[0]) == TRUE && (Random() % 100) <= 30) - { - int j = 1; - - while (j < 5 && trainers[i].trainerNums[j] != 0 && trainer_flag_check(trainers[i].trainerNums[j])) - j++; - gSaveBlock1.trainerRematches[i] = j; - ret = TRUE; - } - } - } - return ret; -} - -s32 sub_80829A8(const struct TrainerEyeTrainer *trainers, u16 mapGroup, u16 mapNum) -{ - s32 i; - - for (i = 0; i < NUM_TRAINER_EYE_TRAINERS; i++) - { - if (trainers[i].mapGroup == mapGroup && trainers[i].mapNum == mapNum && gSaveBlock1.trainerRematches[i]) - return 1; - } - return 0; -} - -s32 sub_80829E8(const struct TrainerEyeTrainer *trainers, u16 mapGroup, u16 mapNum) -{ - s32 i; - - for (i = 0; i < NUM_TRAINER_EYE_TRAINERS; i++) - { - if (trainers[i].mapGroup == mapGroup && trainers[i].mapNum == mapNum) - return 1; - } - return 0; -} - -bool8 sub_8082A18(const struct TrainerEyeTrainer *trainers, u16 trainerNum) -{ - s32 trainerEyeIndex = sub_8082894(trainers, trainerNum); - - if (trainerEyeIndex != -1 && trainerEyeIndex < 100 && gSaveBlock1.trainerRematches[trainerEyeIndex]) - return TRUE; - else - return FALSE; -} - -bool8 sub_8082A54(const struct TrainerEyeTrainer *trainers, u16 trainerNum) -{ - s32 trainerEyeIndex = sub_80828B8(trainers, trainerNum); - - if (trainerEyeIndex != -1 && trainerEyeIndex < 100 && gSaveBlock1.trainerRematches[trainerEyeIndex]) - return TRUE; - else - return FALSE; -} - -u16 sub_8082A90(const struct TrainerEyeTrainer *trainers, u16 trainerNum) -{ - int i; - const struct TrainerEyeTrainer *trainer; - s32 trainerEyeIndex = sub_8082894(trainers, trainerNum); - - if (trainerEyeIndex == -1) - return 0; - trainer = &trainers[trainerEyeIndex]; - for (i = 1; i < 5; i++) - { - if (!trainer->trainerNums[i]) - return trainer->trainerNums[i - 1]; - if (!trainer_flag_check(trainer->trainerNums[i])) - return trainer->trainerNums[i]; - } - return trainer->trainerNums[4]; -} - -void sub_8082AE4(const struct TrainerEyeTrainer *trainers, u16 trainerNum) -{ - s32 trainerEyeIndex = sub_80828B8(trainers, trainerNum); - - if (trainerEyeIndex != -1) - gSaveBlock1.trainerRematches[trainerEyeIndex] = 0; -} - -bool8 sub_8082B10(const struct TrainerEyeTrainer *trainers, u16 trainerNum) -{ - s32 trainerEyeIndex = sub_8082894(trainers, trainerNum); - - if (trainerEyeIndex != -1 && trainer_flag_check(trainers[trainerEyeIndex].trainerNums[1])) - return TRUE; - else - return FALSE; -} - -bool32 sub_8082B44(void) -{ - int badgeCount = 0; - u32 i; - - for (i = 0; i < 8; i++) - { - if (FlagGet(sBadgeFlags[i]) == TRUE) - { - badgeCount++; - if (badgeCount >= 5) - return TRUE; - } - } - return FALSE; -} - -void sub_8082B78(void) -{ - if (sub_8082B44()) - { - if (gSaveBlock1.trainerRematchStepCounter >= TRAINER_REMATCH_STEPS) - gSaveBlock1.trainerRematchStepCounter = TRAINER_REMATCH_STEPS; - else - gSaveBlock1.trainerRematchStepCounter++; - } -} - -bool32 sub_8082BA4(void) -{ - if (sub_8082B44() && gSaveBlock1.trainerRematchStepCounter >= TRAINER_REMATCH_STEPS) - return TRUE; - else - return FALSE; -} - -void sub_8082BD0(u16 mapGroup, u16 mapNum) -{ - if (sub_8082BA4() && sub_80828FC(gTrainerEyeTrainers, mapGroup, mapNum) == TRUE) - gSaveBlock1.trainerRematchStepCounter = 0; -} - -s32 sub_8082C0C(u16 mapGroup, u16 mapNum) -{ - return sub_80829A8(gTrainerEyeTrainers, mapGroup, mapNum); -} - -s32 unref_sub_8082C2C(u16 mapGroup, u16 mapNum) -{ - return sub_80829E8(gTrainerEyeTrainers, mapGroup, mapNum); -} - -u16 sub_8082C4C(u16 trainerNum) -{ - return sub_8082A90(gTrainerEyeTrainers, trainerNum); -} - -s32 sub_8082C68(void) -{ - if (sub_8082A18(gTrainerEyeTrainers, gTrainerBattleOpponent)) - return 1; - else - return sub_8082B10(gTrainerEyeTrainers, gTrainerBattleOpponent); -} - -u8 sub_8082C9C(void) -{ - return sub_8082A54(gTrainerEyeTrainers, gTrainerBattleOpponent); -} - -void sub_8082CB8(void) -{ - sub_8082AE4(gTrainerEyeTrainers, gTrainerBattleOpponent); - sub_808257C(); -} |