sovereignx/include/battle_setup.h

78 lines
2.9 KiB
C
Raw Normal View History

2017-10-01 00:12:42 +01:00
#ifndef GUARD_BATTLE_SETUP_H
#define GUARD_BATTLE_SETUP_H
#include "gym_leader_rematch.h"
2017-12-01 20:25:13 +00:00
#define REMATCHES_COUNT 5
struct RematchTrainer
{
u16 trainerIds[REMATCHES_COUNT];
u16 mapGroup;
u16 mapNum;
};
extern const struct RematchTrainer gRematchTable[REMATCH_TABLE_ENTRIES];
extern u16 gTrainerBattleOpponent_A;
extern u16 gTrainerBattleOpponent_B;
extern u16 gPartnerTrainerId;
2017-11-17 16:50:07 +00:00
void BattleSetup_StartWildBattle(void);
2018-10-14 21:37:07 +01:00
void BattleSetup_StartDoubleWildBattle(void);
2017-12-01 20:25:13 +00:00
void BattleSetup_StartBattlePikeWildBattle(void);
2017-11-17 16:50:07 +00:00
void BattleSetup_StartRoamerBattle(void);
2017-12-01 20:25:13 +00:00
void StartWallyTutorialBattle(void);
void BattleSetup_StartScriptedWildBattle(void);
2020-10-19 19:47:32 +01:00
void BattleSetup_StartScriptedDoubleWildBattle(void);
2017-12-01 20:25:13 +00:00
void BattleSetup_StartLatiBattle(void);
void BattleSetup_StartLegendaryBattle(void);
void StartGroudonKyogreBattle(void);
void StartRegiBattle(void);
u8 BattleSetup_GetTerrainId(void);
u8 GetWildBattleTransition(void);
2018-11-24 00:02:02 +00:00
u8 GetTrainerBattleTransition(void);
2022-05-21 20:21:50 +01:00
u8 GetSpecialBattleTransition(s32 id);
2017-12-01 20:25:13 +00:00
void ChooseStarter(void);
void ResetTrainerOpponentIds(void);
void SetMapVarsToTrainer(void);
const u8 *BattleSetup_ConfigureTrainerBattle(const u8 *data);
2019-11-21 05:14:40 +00:00
void ConfigureAndSetUpOneTrainerBattle(u8 trainerObjEventId, const u8 *trainerScript);
void ConfigureTwoTrainersBattle(u8 trainerObjEventId, const u8 *trainerScript);
2017-12-01 20:25:13 +00:00
void SetUpTwoTrainersBattle(void);
bool32 GetTrainerFlagFromScriptPointer(const u8 *data);
void SetTrainerFacingDirection(void);
2017-12-01 20:25:13 +00:00
u8 GetTrainerBattleMode(void);
bool8 GetTrainerFlag(void);
bool8 HasTrainerBeenFought(u16 trainerId);
void SetTrainerFlag(u16 trainerId);
void ClearTrainerFlag(u16 trainerId);
2017-10-12 08:06:19 +01:00
void BattleSetup_StartTrainerBattle(void);
2017-12-01 20:25:13 +00:00
void BattleSetup_StartRematchBattle(void);
void ShowTrainerIntroSpeech(void);
const u8 *BattleSetup_GetScriptAddrAfterBattle(void);
const u8 *BattleSetup_GetTrainerPostBattleScript(void);
void ShowTrainerCantBattleSpeech(void);
void PlayTrainerEncounterMusic(void);
2017-12-01 20:25:13 +00:00
const u8 *GetTrainerALoseText(void);
const u8 *GetTrainerBLoseText(void);
const u8 *GetTrainerWonSpeech(void);
void UpdateRematchIfDefeated(s32 rematchTableId);
void IncrementRematchStepCounter(void);
void TryUpdateRandomTrainerRematches(u16 mapGroup, u16 mapNum);
bool32 DoesSomeoneWantRematchIn(u16 mapGroup, u16 mapNum);
bool32 IsRematchTrainerIn(u16 mapGroup, u16 mapNum);
u16 GetLastBeatenRematchTrainerId(u16 trainerId);
bool8 ShouldTryRematchBattle(void);
bool8 IsTrainerReadyForRematch(void);
void ShouldTryGetTrainerScript(void);
u16 CountBattledRematchTeams(u16 trainerId);
2017-10-01 00:12:42 +01:00
Ported TheXaman's latest changes to the Debug Menu (#2815) * Added option for generating incrementing pokemon in pc boxes # Conflicts: # src/debug.c * added submenu arrows, increased menu high to full screen # Conflicts: # src/debug.c * combined flags and vars into one submenu # Conflicts: # src/debug.c * added new window to flags/vars showing the current state and added submenu indicator # Conflicts: # src/debug.c * added alligned arrows for debug submenus # Conflicts: # src/debug.c * used {CLEAR_TO X} instead of manual spaces # Conflicts: # src/debug.c * renamed gDebugText to proper sDebugText # Conflicts: # src/debug.c * added Fill submenu, added fill function for PC items and all bag pockets @LOuroboros # Conflicts: # src/debug.c * put cheat start into utility # Conflicts: # src/debug.c * put fill submenu into main menu # Conflicts: # src/debug.c * tiny fix * renaming and reordering # Conflicts: # src/debug.c * Added reset pokedex flags for @AsparagusEduardo * made flag toggle list dynamic # Conflicts: # src/debug.c * initial battle debug menu WIP # Conflicts: # src/debug.c # src/wild_encounter.c * fix visual bug * added battle start # Conflicts: # include/debug.h # src/battle_ai_script_commands.c * Added faster way to add initial movesets to mon * Added waiting music for the slow box filling * Simplified the call to scripts * Simplified debug scripts * Disabled Battle Test for now * Fixed personality on fast PC fill being always 0 * Removed BATTLE_ENGINE instances + added AI_FLAG_COUNT * Added missing return TRUE * Sets nickname * Changed how GetSpeciesName to how it's used upstream --------- Co-authored-by: TheXaman <48356183+TheXaman@users.noreply.github.com>
2023-07-18 08:17:03 +01:00
void DoStandardWildBattle_Debug(void);
void BattleSetup_StartTrainerBattle_Debug(void);
Port pokefirered's Vs. Seeker to pokeemerald (#3256) * First version of Vs. Seeker * Update movement.inc https://github.com/rh-hideout/pokeemerald-expansion/pull/3256/files/98f7e9978d8cd16083ea1bc7857f4f0235a9f1af#r1306721924 * Update field_effect_scripts.s https://github.com/rh-hideout/pokeemerald-expansion/pull/3256/files#r1306722004 * Update field_effect_scripts.s https://github.com/rh-hideout/pokeemerald-expansion/pull/3256/files#r1306722024 * Update item_use.h https://github.com/rh-hideout/pokeemerald-expansion/pull/3256/files#r1306722401 * Update movement_action_func_tables.h https://github.com/rh-hideout/pokeemerald-expansion/pull/3256/files#r1306722828 * Update event_object_movement.c https://github.com/rh-hideout/pokeemerald-expansion/pull/3256/files#r1306722887 * Update overworld.c https://github.com/rh-hideout/pokeemerald-expansion/pull/3256/files#r1306723396 * Update vs_seeker.h https://github.com/rh-hideout/pokeemerald-expansion/pull/3256/files#r1306724158 * Update vs_seeker.c Addressed some cleanup comments from SBird * Update UpdateRandomTrainerRematches Fixed typo in ClearAllTrainerRematchStates Fixed types in GetRematchableTrainerLocalId * Updated UseVsSeekerEffect_2 * Updated UseVsSeekerEffect_3 * Updated UseVsSeekerEffect_4 * Fixed bug that allowed Vs Seeker to be used indoors in correct places Moved VsSeeker function declarations into header * Refactored FieldUseFunc_VsSeeker * Added curly braces to else case in FieldUseFunc_VsSeeker * renamed data[x] in Task_ResetObjectsRematchWantedState * Refactored Task_ResetObjectsRematchWantedState * Refactored VsSeekerResetObjectMovementAfterChargeComplete * Refactored ResetMovementOfRematchableTrainers * Refactored GatherNearbyTrainerInfo * Refactored Task_VsSeeker_3 * CanUseVsSeeker * Refactored GetVsSeekerResponseInArea * GetCurVsSeekerResponse refactored * Cleaned up GetTrainerFlagFromScript * Gave sensible names to Task_VsSeeker * Fixed two bugs where player would not have the right gfx state after using VsSeeker on a Bike or Underwater * Renamed UseVsSeeker Functions * Added I_VS_SEEKER_CHARGING to make Vs. Seeker broken until flag is assigned Removed extra VsSeeker animation code * Addressed PR feedback * Fixed issue with building non-modern * Refactored GetRunningBehaviorFromGraphicsId and renamed to GetResponseMovementTypeFromTrainerGraphicsId * Addresses Lunos's PR feedback: https://github.com/rh-hideout/pokeemerald-expansion/pull/3256\#pullrequestreview-1623547850 Removed the check to see if a map was not indoors to improve readability Made IsValidLocationForVsSeeker into a static function * Added changes in response to Jasper's feedback https://github.com/rh-hideout/pokeemerald-expansion/pull/3256\#pullrequestreview-1725276522 * Updated with Edu's discord feedback https://discord.com/channels/419213663107416084/1135040810082123907/1176872015085453392 * Removed ifdef tags around the repo unless needed https://github.com/rh-hideout/pokeemerald-expansion/pull/3256/files/b5dc744cedc8e14c88d461afbbdc693c4f54e950
2023-11-26 17:58:43 +00:00
s32 TrainerIdToRematchTableId(const struct RematchTrainer *table, u16 trainerId);
s32 FirstBattleTrainerIdToRematchTableId(const struct RematchTrainer *table, u16 trainerId);
u16 GetRematchTrainerIdFromTable(const struct RematchTrainer *table, u16 firstBattleTrainerId);
Ported TheXaman's latest changes to the Debug Menu (#2815) * Added option for generating incrementing pokemon in pc boxes # Conflicts: # src/debug.c * added submenu arrows, increased menu high to full screen # Conflicts: # src/debug.c * combined flags and vars into one submenu # Conflicts: # src/debug.c * added new window to flags/vars showing the current state and added submenu indicator # Conflicts: # src/debug.c * added alligned arrows for debug submenus # Conflicts: # src/debug.c * used {CLEAR_TO X} instead of manual spaces # Conflicts: # src/debug.c * renamed gDebugText to proper sDebugText # Conflicts: # src/debug.c * added Fill submenu, added fill function for PC items and all bag pockets @LOuroboros # Conflicts: # src/debug.c * put cheat start into utility # Conflicts: # src/debug.c * put fill submenu into main menu # Conflicts: # src/debug.c * tiny fix * renaming and reordering # Conflicts: # src/debug.c * Added reset pokedex flags for @AsparagusEduardo * made flag toggle list dynamic # Conflicts: # src/debug.c * initial battle debug menu WIP # Conflicts: # src/debug.c # src/wild_encounter.c * fix visual bug * added battle start # Conflicts: # include/debug.h # src/battle_ai_script_commands.c * Added faster way to add initial movesets to mon * Added waiting music for the slow box filling * Simplified the call to scripts * Simplified debug scripts * Disabled Battle Test for now * Fixed personality on fast PC fill being always 0 * Removed BATTLE_ENGINE instances + added AI_FLAG_COUNT * Added missing return TRUE * Sets nickname * Changed how GetSpeciesName to how it's used upstream --------- Co-authored-by: TheXaman <48356183+TheXaman@users.noreply.github.com>
2023-07-18 08:17:03 +01:00
2017-10-01 00:12:42 +01:00
#endif // GUARD_BATTLE_SETUP_H