diff options
Diffstat (limited to 'include')
32 files changed, 211 insertions, 161 deletions
diff --git a/include/battle.h b/include/battle.h index 7c1528072..4c28c24a0 100644 --- a/include/battle.h +++ b/include/battle.h @@ -79,7 +79,7 @@ #define B_ACTION_SAFARI_POKEBLOCK 6 #define B_ACTION_SAFARI_GO_NEAR 7 #define B_ACTION_SAFARI_RUN 8 -#define B_ACTION_9 9 +#define B_ACTION_OLDMAN_THROW 9 #define B_ACTION_EXEC_SCRIPT 10 #define B_ACTION_TRY_FINISH 11 #define B_ACTION_FINISHED 12 @@ -101,17 +101,6 @@ #define MAX_TRAINER_ITEMS 4 #define MAX_MON_MOVES 4 -#define BATTLE_TERRAIN_GRASS 0 -#define BATTLE_TERRAIN_LONG_GRASS 1 -#define BATTLE_TERRAIN_SAND 2 -#define BATTLE_TERRAIN_UNDERWATER 3 -#define BATTLE_TERRAIN_WATER 4 -#define BATTLE_TERRAIN_POND 5 -#define BATTLE_TERRAIN_ROCK 6 -#define BATTLE_TERRAIN_CAVE 7 -#define BATTLE_TERRAIN_INSIDE 8 -#define BATTLE_TERRAIN_PLAIN 9 - // array entries for battle communication #define MULTIUSE_STATE 0x0 #define CURSOR_POSITION 0x1 @@ -528,15 +517,11 @@ struct BattleStruct u16 hpOnSwitchout[2]; u8 abilityPreventingSwitchout; u8 hpScale; - u8 field_AE; - u8 field_AF; - u8 field_B0; - u8 field_B1; - u8 field_B2; - u8 field_B3; + u16 savedBattleTypeFlags; // ??? + void (*savedCallback)(void); u8 synchronizeMoveEffect; - u8 field_B5; - u8 field_B6; + u8 multiplayerId; + u8 overworldWeatherDone; u8 atkCancellerTracker; u16 usedHeldItems[MAX_BATTLERS_COUNT]; u8 chosenItem[4]; // why is this an u8? @@ -556,7 +541,12 @@ struct BattleStruct u8 wishPerishSongBattlerId; u8 field_182; u8 field_183; - u8 field_184[124]; // currently unknown + u8 field_184; + u8 field_185; + u8 field_186; + u8 field_187; + struct BattleEnigmaBerry battleEnigmaBerry; + u8 field_1A4[0x5C]; // currently unknown }; // size == 0x200 bytes extern struct BattleStruct *gBattleStruct; @@ -929,5 +919,8 @@ extern u16 gLastPrintedMoves[MAX_BATTLERS_COUNT]; extern u8 gActionsByTurnOrder[MAX_BATTLERS_COUNT]; extern u8 gChosenActionByBattler[MAX_BATTLERS_COUNT]; extern u8 gBattleTerrain; +extern struct UnknownPokemonStruct4 gUnknown_2022B58[3]; +extern u16 *gUnknown_2022BC0; +extern u16 gRandomTurnNumber; #endif // GUARD_BATTLE_H diff --git a/include/battle_anim.h b/include/battle_anim.h index feaa8816b..1eb1a7353 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -2,8 +2,9 @@ #define GUARD_BATTLE_ANIM_H #include "battle.h" -#include "constants/battle_anim.h" +#include "data.h" #include "task.h" +#include "constants/battle_anim.h" enum { @@ -168,6 +169,8 @@ u8 LaunchBallStarsTask(u8 x, u8 y, u8 kindOfStars, u8 arg3, u8 ballId); u8 LaunchBallFadeMonTask(bool8 unFadeLater, u8 battlerId, u32 arg2, u8 ballId); // battle_anim_mons.c +extern const struct MonCoords gCastformFrontSpriteCoords[]; + u8 GetBattlerSpriteCoord(u8 battlerId, u8 coordType); u8 GetBattlerSpriteCoord2(u8 battlerId, u8 coordType); u8 GetBattlerSpriteDefault_Y(u8 battlerId); @@ -237,9 +240,9 @@ void SetGreyscaleOrOriginalPalette(u16 paletteNum, bool8 restoreOriginalColor); u32 sub_8075BE8(u8 battleBackground, u8 attacker, u8 target, u8 attackerPartner, u8 targetPartner, u8 a6, u8 a7); u32 sub_8075CB8(u8 a1, u8 a2, u8 a3, u8 a4); u8 sub_8075D80(u8 a1); -void sub_8075D9C(struct Sprite *sprite); +void AnimSpriteOnMonPos(struct Sprite *sprite); void TranslateAnimSpriteToTargetMonLocation(struct Sprite *sprite); -void sub_8075E80(struct Sprite *sprite); +void AnimThrowProjectile(struct Sprite *sprite); void sub_8075F0C(struct Sprite *sprite); s16 CloneBattlerSpriteWithBlend(u8 animBattler); void obj_delete_but_dont_free_vram(struct Sprite *sprite); diff --git a/include/battle_bg.h b/include/battle_bg.h index 6bf90a104..a467f34c8 100644 --- a/include/battle_bg.h +++ b/include/battle_bg.h @@ -1,6 +1,13 @@ #ifndef GUARD_BATTLE_BG_H #define GUARD_BATTLE_BG_H +#include "bg.h" + +extern const struct BgTemplate gBattleBgTemplates[]; + void sub_800F34C(void); +void DrawBattleEntryBackground(void); +void sub_800F6FC(u8 taskId); +void LoadBattleMenuWindowGfx(void); #endif // GUARD_BATTLE_BG_H diff --git a/include/battle_controllers.h b/include/battle_controllers.h index 6da4ca240..03755c9b3 100644 --- a/include/battle_controllers.h +++ b/include/battle_controllers.h @@ -260,10 +260,10 @@ void SetControllerToPlayerPartner(void); void SetControllerToSafari(void); // pokedude controller -void SetControllerToPokedude(void); +void SetControllerToPokeDude(void); // oak controller -void SetControllerToOakOrOldman(void); +void SetControllerToOakOrOldMan(void); bool8 sub_80EB2E0(u8); void sub_80EB2F4(u8); void sub_80E8570(void); diff --git a/include/battle_main.h b/include/battle_main.h index 757ee3468..613171da9 100644 --- a/include/battle_main.h +++ b/include/battle_main.h @@ -1,6 +1,8 @@ #ifndef GUARD_BATTLE_MAIN_H #define GUARD_BATTLE_MAIN_H +#include "constants/abilities.h" + struct TrainerMoney { u8 classId; @@ -43,61 +45,54 @@ struct UnknownPokemonStruct4 #define BOUNCE_MON 0x0 #define BOUNCE_HEALTHBOX 0x1 +extern const struct SpriteTemplate gUnknown_824EFF0; +extern const struct OamData gOamData_824F010; +extern const struct OamData gOamData_824F018; +extern const u8 gTypeNames[][TYPE_NAME_LENGTH + 1]; +extern const u8 gStatusConditionString_PoisonJpn[8]; +extern const u8 gStatusConditionString_SleepJpn[8]; +extern const u8 gStatusConditionString_ParalysisJpn[8]; +extern const u8 gStatusConditionString_BurnJpn[8]; +extern const u8 gStatusConditionString_IceJpn[8]; +extern const u8 gStatusConditionString_ConfusionJpn[8]; +extern const u8 gStatusConditionString_LoveJpn[8]; +extern const u8 *const gStatusConditionStringsTable[7][2]; +extern const u8 gTypeEffectiveness[336]; +extern const struct TrainerMoney gTrainerMoneyTable[]; +extern const u8 *const gAbilityDescriptionPointers[ABILITIES_COUNT]; +extern const u8 gAbilityNames[ABILITIES_COUNT][ABILITY_NAME_LENGTH + 1]; + void CB2_InitBattle(void); void BattleMainCB2(void); -void CB2_QuitRecordedBattle(void); -void sub_8038528(struct Sprite* sprite); -void sub_8038A04(void); // unused +void FreeRestoreBattleData(void); void VBlankCB_Battle(void); +void nullsub_9(struct Sprite *sprite); void sub_801182C(struct Sprite *sprite); void sub_8011A1C(void); -u32 sub_80391E0(u8 arrayId, u8 caseId); -u32 sub_80397C4(u32 setId, u32 tableId); -void oac_poke_opponent(struct Sprite *sprite); -void SpriteCallbackDummy_2(struct Sprite *sprite); -void sub_8039934(struct Sprite *sprite); -void sub_8012098(struct Sprite *sprite); +u32 sub_8011C44(u8 arrayId, u8 caseId); +void SpriteCB_WildMon(struct Sprite *sprite); +void SpriteCallbackDummy2(struct Sprite *sprite); +void SpriteCB_FaintOpponentMon(struct Sprite *sprite); void sub_8012044(struct Sprite *sprite); -void sub_8039B58(struct Sprite *sprite); -void sub_8039BB4(struct Sprite *sprite); -void sub_80105DC(struct Sprite *sprite); +void sub_8012098(struct Sprite *sprite); +void sub_80120C4(struct Sprite *sprite); +void sub_8012100(struct Sprite *sprite); void sub_8012110(struct Sprite *sprite); -void DoBounceEffect(u8 bank, u8 b, s8 c, s8 d); -void EndBounceEffect(u8 bank, bool8 b); -void sub_8039E44(struct Sprite *sprite); -void sub_8039E60(struct Sprite *sprite); -void sub_8039E84(struct Sprite *sprite); +void DoBounceEffect(u8 battler, u8 which, s8 delta, s8 amplitude); +void EndBounceEffect(u8 battler, u8 which); +void sub_8012354(struct Sprite *sprite); void sub_801236C(struct Sprite *sprite); +void nullsub_12(void); void BeginBattleIntro(void); void SwitchInClearSetData(void); void FaintClearSetData(void); -void sub_803B3AC(void); // unused -void sub_803B598(void); // unused void BattleTurnPassed(void); u8 IsRunningFromBattleImpossible(void); -void sub_8013F6C(u8 battlerId); +void sub_8013F6C(u8 battler); void SwapTurnOrder(u8 id1, u8 id2); -u8 GetWhoStrikesFirst(u8 bank1, u8 bank2, bool8 ignoreChosenMoves); +u8 GetWhoStrikesFirst(u8 battler1, u8 battler2, bool8 ignoreChosenMoves); void RunBattleScriptCommands_PopCallbacksStack(void); void RunBattleScriptCommands(void); -bool8 TryRunFromBattle(u8 bank); -void sub_800FD9C(void); -void sub_80120C4(struct Sprite *); -void sub_8012100(struct Sprite *); -void nullsub_12(void); -void SpriteCB_FaintOpponentMon(struct Sprite *sprite); - -extern const u8 gStatusConditionString_PoisonJpn[8]; -extern const u8 gStatusConditionString_SleepJpn[8]; -extern const u8 gStatusConditionString_ParalysisJpn[8]; -extern const u8 gStatusConditionString_BurnJpn[8]; -extern const u8 gStatusConditionString_IceJpn[8]; -extern const u8 gStatusConditionString_ConfusionJpn[8]; -extern const u8 gStatusConditionString_LoveJpn[8]; - -extern const u8 * const gStatusConditionStringsTable[7][2]; - -extern const u8 gTypeEffectiveness[336]; -extern const struct TrainerMoney gTrainerMoneyTable[]; +bool8 TryRunFromBattle(u8 battler); #endif // GUARD_BATTLE_MAIN_H diff --git a/include/battle_message.h b/include/battle_message.h index ffc9d5bb7..130dc7ce9 100644 --- a/include/battle_message.h +++ b/include/battle_message.h @@ -238,4 +238,12 @@ extern const u8* const gStatNamesTable2[]; extern const u16 gMissStringIds[]; extern const u16 gTrappingMoves[]; +extern const u8 gText_Sleep[]; +extern const u8 gText_Poison[]; +extern const u8 gText_Burn[]; +extern const u8 gText_Paralysis[]; +extern const u8 gText_Ice[]; +extern const u8 gText_Confusion[]; +extern const u8 gText_Love[]; + #endif // GUARD_BATTLE_MESSAGE_H diff --git a/include/battle_scripts.h b/include/battle_scripts.h index a13a8c097..184527587 100644 --- a/include/battle_scripts.h +++ b/include/battle_scripts.h @@ -227,5 +227,13 @@ extern const u8 BattleScript_FlushMessageBox[]; extern const u8 BattleScript_SpikesOnFaintedBattler[]; extern const u8 BattleScript_GhostBallDodge[]; extern const u8 gUnknown_81D9A88[]; +extern const u8 gUnknown_81D91A1[]; // knizz: silph scope unveil +extern const u8 gUnknown_81D88D7[]; + +extern const u8 *const gBattleScriptsForMoveEffects[]; +extern const u8 *const gBattlescriptsForBallThrow[]; +extern const u8 *const gBattlescriptsForRunningByItem[]; +extern const u8 *const gBattlescriptsForUsingItem[]; +extern const u8 *const gBattlescriptsForSafariActions[]; #endif // GUARD_BATTLE_SCRIPTS_H diff --git a/include/battle_setup.h b/include/battle_setup.h index 61395811b..e599acd8a 100644 --- a/include/battle_setup.h +++ b/include/battle_setup.h @@ -3,20 +3,36 @@ #include "global.h" -void BattleSetup_StartScriptedWildBattle(void); -u8 BattleSetup_GetTerrainId(void); -u8 *BattleSetup_ConfigureTrainerBattle(const u8 *data); -void BattleSetup_StartBattlePikeWildBattle(void); void BattleSetup_StartWildBattle(void); void BattleSetup_StartRoamerBattle(void); - -u8 HasTrainerAlreadyBeenFought(u16); -void SetTrainerFlag(u16); -void ClearTrainerFlag(u16); -void BattleSetup_StartTrainerBattle(void); -u8 *BattleSetup_GetScriptAddrAfterBattle(void); -u8 *BattleSetup_GetTrainerPostBattleScript(void); -void sub_80803FC(void); +void BattleSetup_StartOldManTutorialBattle(void); +void BattleSetup_StartScriptedWildBattle(void); +void BattleSetup_StartMarowakBattle(void); +void sub_807F998(void); +void BattleSetup_StartLegendaryBattle(void); +void BattleSetup_StartIceCaveBattle(void); +void sub_807FABC(void); +u8 BattleSetup_GetTerrainId(void); u8 sub_8080060(void); +const u8 *BattleSetup_ConfigureTrainerBattle(const u8 *data); +void ConfigureAndSetUpOneTrainerBattle(u8 trainerEventObjId, const u8 *trainerScript); +bool32 GetTrainerFlagFromScriptPointer(const u8 *data); +void SetUpTrainerMovement(void); +u8 GetTrainerBattleMode(void); +u16 sub_80803D8(void); +u16 GetTrainerFlag(void); +void SetBattledTrainerFlag(void); +bool8 HasTrainerBeenFought(u16 trainerId); +void SetTrainerFlag(u16 trainerId); +void ClearTrainerFlag(u16 trainerId); +void BattleSetup_StartTrainerBattle(void); +void BattleSetup_StartRematchBattle(void); +void ShowTrainerIntroSpeech(void); +const u8 *BattleSetup_GetScriptAddrAfterBattle(void); +const u8 *BattleSetup_GetTrainerPostBattleScript(void); +void ShowTrainerCantBattleSpeech(void); +void SetUpTrainerEncounterMusic(void); +const u8 *GetTrainerALoseText(void); +const u8 *GetTrainerWonSpeech(void); #endif // GUARD_BATTLE_SETUP_H diff --git a/include/berry.h b/include/berry.h index 0e554a789..d55192301 100644 --- a/include/berry.h +++ b/include/berry.h @@ -63,7 +63,7 @@ void FieldObjectInteractionRemoveBerryTree(void); u8 PlayerHasBerries(void); void ResetBerryTreeSparkleFlags(void); void sub_809C794(void); -const struct Berry * sub_809C8A0(u8 berryIdx); +const struct Berry * GetBerryInfo(u8 berryIdx); extern const struct Berry gBerries[]; diff --git a/include/constants/abilities.h b/include/constants/abilities.h index 4e2c4056c..4ad54c86f 100644 --- a/include/constants/abilities.h +++ b/include/constants/abilities.h @@ -80,4 +80,6 @@ #define ABILITY_CACOPHONY 76 #define ABILITY_AIR_LOCK 77 +#define ABILITIES_COUNT 78 + #endif // GUARD_CONSTANTS_ABILITIES_H diff --git a/include/constants/battle.h b/include/constants/battle.h index a0099d23f..bbea92d05 100644 --- a/include/constants/battle.h +++ b/include/constants/battle.h @@ -56,13 +56,13 @@ #define BATTLE_TYPE_OLDMAN_TUTORIAL 0x0200 #define BATTLE_TYPE_ROAMER 0x0400 #define BATTLE_TYPE_EREADER_TRAINER 0x0800 -#define BATTLE_TYPE_KYOGRE_GROUDON 0x1000 +#define BATTLE_TYPE_KYOGRE_GROUDON 0x1000 // TODO: used, rename later #define BATTLE_TYPE_LEGENDARY 0x2000 -#define BATTLE_TYPE_REGI 0x4000 +#define BATTLE_TYPE_REGI 0x4000 // TODO: used, rename later #define BATTLE_TYPE_GHOST 0x8000 #define BATTLE_TYPE_POKEDUDE 0x10000 -#define BATTLE_TYPE_PALACE 0x20000 -#define BATTLE_TYPE_ARENA 0x40000 +#define BATTLE_TYPE_PALACE 0x20000 // TODO: used, rename later +#define BATTLE_TYPE_ARENA 0x40000 // TODO: used rename later #define BATTLE_TYPE_TRAINER_TOWER 0x80000 #define BATTLE_TYPE_PIKE 0x100000 #define BATTLE_TYPE_PYRAMID 0x200000 diff --git a/include/constants/battle_setup.h b/include/constants/battle_setup.h new file mode 100644 index 000000000..8f700dc04 --- /dev/null +++ b/include/constants/battle_setup.h @@ -0,0 +1,15 @@ +#ifndef GUARD_CONSTANTS_BATTLE_SETUP_H +#define GUARD_CONSTANTS_BATTLE_SETUP_H + +#define TRAINER_BATTLE_SINGLE 0 +#define TRAINER_BATTLE_CONTINUE_SCRIPT_NO_MUSIC 1 +#define TRAINER_BATTLE_CONTINUE_SCRIPT 2 +#define TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT 3 +#define TRAINER_BATTLE_DOUBLE 4 +#define TRAINER_BATTLE_REMATCH 5 +#define TRAINER_BATTLE_CONTINUE_SCRIPT_DOUBLE 6 +#define TRAINER_BATTLE_REMATCH_DOUBLE 7 +#define TRAINER_BATTLE_CONTINUE_SCRIPT_DOUBLE_NO_MUSIC 8 +#define TRAINER_BATTLE_TUTORIAL 9 + +#endif // GUARD_CONSTANTS_BATTLE_SETUP_H diff --git a/include/constants/map_types.h b/include/constants/map_types.h new file mode 100644 index 000000000..94fb99a57 --- /dev/null +++ b/include/constants/map_types.h @@ -0,0 +1,28 @@ +#ifndef GUARD_CONSTANTS_MAP_TYPES_H +#define GUARD_CONSTANTS_MAP_TYPES_H + +#define MAP_TYPE_0 0 +#define MAP_TYPE_TOWN 1 +#define MAP_TYPE_CITY 2 +#define MAP_TYPE_ROUTE 3 +#define MAP_TYPE_UNDERGROUND 4 +#define MAP_TYPE_UNDERWATER 5 +#define MAP_TYPE_OCEAN_ROUTE 6 +#define MAP_TYPE_7 7 +#define MAP_TYPE_INDOOR 8 +#define MAP_TYPE_SECRET_BASE 9 + +enum +{ + MAP_BATTLE_SCENE_NORMAL, // 0 + MAP_BATTLE_SCENE_GYM, // 1 + MAP_BATTLE_SCENE_MAGMA, // 2 + MAP_BATTLE_SCENE_AQUA, // 3 + MAP_BATTLE_SCENE_SIDNEY, // 4 + MAP_BATTLE_SCENE_PHOEBE, // 5 + MAP_BATTLE_SCENE_GLACIA, // 6 + MAP_BATTLE_SCENE_DRAKE, // 7 + MAP_BATTLE_SCENE_BATTLE_TOWER, // 8 +}; + +#endif // GUARD_CONSTANTS_MAP_TYPES_H
\ No newline at end of file diff --git a/include/constants/trainers.h b/include/constants/trainers.h index 7359e9381..d8c429ed5 100644 --- a/include/constants/trainers.h +++ b/include/constants/trainers.h @@ -165,6 +165,8 @@ #define TRAINER_PIC_LADY 146 #define TRAINER_PIC_PAINTER 147 +#define TRAINER_SECRET_BASE 1024 + #define F_TRAINER_FEMALE (1 << 7) #define TRAINER_PIC_AQUA_LEADER_ARCHIE 0 diff --git a/include/data.h b/include/data.h index 99594209b..9726b95e5 100644 --- a/include/data.h +++ b/include/data.h @@ -16,8 +16,6 @@ struct MonCoords extern const u8 gSpeciesNames[][POKEMON_NAME_LENGTH + 1]; extern const u8 gMoveNames[][13]; -extern const u8 gAbilityNames[][13]; -extern const u8 gTypeNames[][7]; extern const u16 gUnknown_8251CB8[]; extern const u16 gUnknown_8251FEE[]; extern const u16 gUnknown_8252324[]; diff --git a/include/event_scripts.h b/include/event_scripts.h index 99b453c85..500dd8069 100644 --- a/include/event_scripts.h +++ b/include/event_scripts.h @@ -1155,6 +1155,15 @@ extern const u8 EventScript_SafariOutOfBalls[]; extern const u8 EventScript_ItemfinderDigUpUnderfootItem[]; +// battle_setup +extern const u8 EventScript_DoTrainerBattle[]; +extern const u8 EventScript_TryDoDoubleTrainerBattle[]; +extern const u8 EventScript_TryDoNormalTrainerBattle[]; +extern const u8 EventScript_TryDoDoubleRematchBattle[]; +extern const u8 EventScript_TryDoRematchBattle[]; +extern const u8 gUnknown_81A4EB4[]; +extern const u8 EventScript_1C555B[]; + // new_game extern const u8 EventScript_ResetAllMapFlags[]; diff --git a/include/evolution_scene.h b/include/evolution_scene.h index 1d87ceb76..6ceed99c1 100644 --- a/include/evolution_scene.h +++ b/include/evolution_scene.h @@ -3,8 +3,8 @@ #include "global.h" -void BeginEvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, bool8 canStopEvo, u8 partyID); -void EvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, bool8 canStopEvo, u8 partyID); +void BeginEvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, u8, u8 partyID); +void EvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, u8, u8 partyID); void TradeEvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, u8 preEvoSpriteID, u8 partyID); extern void (*gCB2_AfterEvolution)(void); diff --git a/include/field_control_avatar.h b/include/field_control_avatar.h index 0a33138b3..ecb622de5 100644 --- a/include/field_control_avatar.h +++ b/include/field_control_avatar.h @@ -5,4 +5,7 @@ extern u32 gUnknown_3005078; +void RestartWildEncounterImmunitySteps(void); +void ClearPoisonStepCounter(void); + #endif //GUARD_FIELD_CONTROL_AVATAR_H diff --git a/include/field_map_obj.h b/include/field_map_obj.h index baed87ac6..2628f5ca5 100644 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -85,7 +85,7 @@ void sub_8063E28(struct MapObject *, struct Sprite *); void FieldObjectSetHeldMovement(struct MapObject *, u8); void npc_coords_shift_still(struct MapObject *); void sub_805FE7C(struct MapObject *, u8); -void npc_set_running_behaviour_etc(struct MapObject *, u8); +void SetTrainerMovementType(struct MapObject *, u8); u8 sub_80634F0(u8 direction); u8 sub_8063500(u8 a0); void EventObjectSetGraphicsId(struct MapObject *mapObject, u8 a1); @@ -94,6 +94,8 @@ void npc_paltag_set_load(u8 mode); bool8 FieldObjectIsMovementOverridden(struct MapObject *mapObject); u8 FieldObjectCheckHeldMovementStatus(struct MapObject *mapObject); u8 sub_8063F84(u8 direction); +u8 GetTrainerFacingDirectionMovementType(u8 direction); + // Exported data declarations diff --git a/include/field_player_avatar.h b/include/field_player_avatar.h index 2c408afc9..1d431771b 100644 --- a/include/field_player_avatar.h +++ b/include/field_player_avatar.h @@ -13,8 +13,8 @@ u8 player_get_direction_upper_nybble(void); u8 player_get_x22(void); void sub_808D074(u8); -void sub_805C270(); -void sub_805C780(); +void sub_805C270(void); +void sub_805C780(void); void GetXYCoordsOneStepInFrontOfPlayer(s16 *xPtr, s16 *yPtr); u8 sub_805C808(u8); void SetPlayerAvatarStateMask(u8 mask); diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h index bf142d265..9c132db61 100644 --- a/include/global.fieldmap.h +++ b/include/global.fieldmap.h @@ -13,35 +13,6 @@ enum CONNECTION_EMERGE }; -// map types -enum -{ - MAP_TYPE_0, - MAP_TYPE_TOWN, - MAP_TYPE_CITY, - MAP_TYPE_ROUTE, - MAP_TYPE_UNDERGROUND, - MAP_TYPE_UNDERWATER, - MAP_TYPE_6, - MAP_TYPE_7, - MAP_TYPE_INDOOR, - MAP_TYPE_SECRET_BASE -}; - -// map battle scenes -enum -{ - MAP_BATTLE_SCENE_NORMAL, // 0 - MAP_BATTLE_SCENE_GYM, // 1 - MAP_BATTLE_SCENE_MAGMA, // 2 - MAP_BATTLE_SCENE_AQUA, // 3 - MAP_BATTLE_SCENE_SIDNEY, // 4 - MAP_BATTLE_SCENE_PHOEBE, // 5 - MAP_BATTLE_SCENE_GLACIA, // 6 - MAP_BATTLE_SCENE_DRAKE, // 7 - MAP_BATTLE_SCENE_BATTLE_TOWER, // 8 -}; - typedef void (*TilesetCB)(void); struct Tileset @@ -241,7 +212,7 @@ struct MapObject /*0x0C*/ struct Coords16 coords1; /*0x10*/ struct Coords16 coords2; /*0x14*/ struct Coords16 coords3; - /*0x18*/ u8 mapobj_unk_18:4; //current direction? + /*0x18*/ u8 facingDirection:4; //current direction? /*0x18*/ u8 placeholder18:4; /*0x19*/ union MapObjectRange range; /*0x1A*/ u8 mapobj_unk_1A; diff --git a/include/global.h b/include/global.h index 57035ce30..26c5d9570 100644 --- a/include/global.h +++ b/include/global.h @@ -32,6 +32,13 @@ // GF's lingo #define NELEMS ARRAY_COUNT +#define SWAP(a, b, temp) \ +{ \ + temp = a; \ + a = b; \ + b = temp; \ +} + // useful math macros // Converts a number to Q8.8 fixed-point format diff --git a/include/link_rfu.h b/include/link_rfu.h index 2be9dd3c9..f5aa682e6 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -11,7 +11,7 @@ bool32 MG_PrintTextOnWindow1AndWaitButton(u8 * cmdPtr, const u8 * src); void sub_80FA190(void); void MG_DrawCheckerboardPattern(void); void task_add_05_task_del_08FA224_when_no_RfuFunc(void); -bool8 IsRfuTaskFinished(void); +bool8 IsLinkRfuTaskFinished(void); void DestroyWirelessStatusIndicatorSprite(void); void MEvent_CreateTask_CardOrNewsWithFriend(u8); void MEvent_CreateTask_CardOrNewsOverWireless(u8); diff --git a/include/map_obj_80688E4.h b/include/map_obj_80688E4.h index bfac00378..bfd5dd3c7 100644 --- a/include/map_obj_80688E4.h +++ b/include/map_obj_80688E4.h @@ -3,7 +3,7 @@ #include "global.h" -void player_bitmagic(void); +void FreezeEventObjects(void); void FreezeMapObject(struct MapObject *); void FreezeMapObjectsExceptOne(u8 mapObjectId); diff --git a/include/metatile_behavior.h b/include/metatile_behavior.h index 62bcfdd38..df03001bf 100644 --- a/include/metatile_behavior.h +++ b/include/metatile_behavior.h @@ -10,7 +10,7 @@ bool8 MetatileBehavior_IsJumpNorth(u8 metatileBehavior); bool8 MetatileBehavior_IsJumpSouth(u8 metatileBehavior); bool8 MetatileBehavior_IsTallGrass(u8 metatileBehavior); bool8 MetatileBehavior_IsMB21OrSand(u8 metatileBehavior); -bool8 MetatileBehavior_IsMB21OrWaterfallBottom(u8 metatileBehavior); +bool8 MetatileBehavior_IsSandOrDeepSand(u8 metatileBehavior); bool8 MetatileBehavior_ReturnFalse(u8 metatileBehavior); bool8 MetatileBehavior_IsReflective(u8 metatileBehavior); bool8 MetatileBehavior_IsIce(u8 metatileBehavior); @@ -53,15 +53,15 @@ bool8 MetatileBehavior_IsPC(u8 metatileBehavior); bool8 MetatileBehavior_IsPondWaterOrPuddle(u8 metatileBehavior); bool8 MetatileBehavior_IsPuddle(u8 metatileBehavior); bool8 MetatileBehavior_IsTallGrass_2(u8 metatileBehavior); -bool8 MetatileBehavior_ReturnFalse_3(u8 metatileBehavior); +bool8 MetatileBehavior_IsLongGrass(u8 metatileBehavior); bool8 MetatileBehavior_ReturnFalse_4(u8 metatileBehavior); bool8 MetatileBehavior_ReturnFalse_5(u8 metatileBehavior); -bool8 MetatileBehavior_ReturnFalse_6(u8 metatileBehavior); -bool8 MetatileBehavior_ReturnFalse_7(u8 metatileBehavior); +bool8 MetatileBehavior_IsBridge(u8 metatileBehavior); +bool8 MetatileBehavior_GetBridgeType(u8 metatileBehavior); bool8 MetatileBehavior_UnusedIsMB_01(u8 metatileBehavior); bool8 MetatileBehavior_UnusedIsTallGrass(u8 metatileBehavior); -bool8 MetatileBehavior_IsMB0B(u8 metatileBehavior); -bool8 MetatileBehavior_IsMB0C(u8 metatileBehavior); +bool8 MetatileBehavior_IsIndoorEncounter(u8 metatileBehavior); +bool8 MetatileBehavior_IsMountain(u8 metatileBehavior); bool8 MetatileBehavior_IsDeepOrSemiDeepWater(u8 metatileBehavior); bool8 MetatileBehavior_IsMB19(u8 metatileBehavior); bool8 MetatileBehavior_IsWaterfallBottom(u8 metatileBehavior); diff --git a/include/overworld.h b/include/overworld.h index 65e3fe723..f1da789ac 100644 --- a/include/overworld.h +++ b/include/overworld.h @@ -61,7 +61,7 @@ void sub_8084EBC(s16, s16); void player_avatar_init_params_reset(void); void Overworld_SetFlashLevel(s32 a1); -//u8 Overworld_GetFlashLevel(void); +u8 Overworld_GetFlashLevel(void); void sub_8085524(u16); void Overworld_SetSavedMusic(u16); @@ -140,5 +140,6 @@ bool32 Overworld_DoScrollSceneForCredits(u8 *, const struct CreditsOverworldCmd bool32 sub_8058318(void); void CB2_ReturnToStartMenu(void); +void CB2_WhiteOut(void); #endif //GUARD_OVERWORLD_H diff --git a/include/party_menu.h b/include/party_menu.h index 5b9b6e1c4..53731bee6 100644 --- a/include/party_menu.h +++ b/include/party_menu.h @@ -84,5 +84,7 @@ bool8 IsMultiBattle(void); void sub_8126EDC(void); void PartyMenuInit_FromPlayerPc(void); void CB2_PartyMenuFromStartMenu(void); +void sub_8128198(void); +void sub_8127FF4(u8 slot, u8 slot2); #endif // GUARD_PARTY_MENU_H diff --git a/include/pokemon.h b/include/pokemon.h index c5ee4eda5..24328e44e 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -169,35 +169,6 @@ enum EGG_GROUP_UNDISCOVERED }; -enum -{ - NATURE_HARDY, - NATURE_LONELY, - NATURE_BRAVE, - NATURE_ADAMANT, - NATURE_NAUGHTY, - NATURE_BOLD, - NATURE_DOCILE, - NATURE_RELAXED, - NATURE_IMPISH, - NATURE_LAX, - NATURE_TIMID, - NATURE_HASTY, - NATURE_SERIOUS, - NATURE_JOLLY, - NATURE_NAIVE, - NATURE_MODEST, - NATURE_MILD, - NATURE_QUIET, - NATURE_BASHFUL, - NATURE_RASH, - NATURE_CALM, - NATURE_GENTLE, - NATURE_SASSY, - NATURE_CAREFUL, - NATURE_QUIRKY, -}; - struct PokemonSubstruct0 { u16 species; @@ -629,10 +600,10 @@ u8 GetTrainerEncounterMusicId(u16 trainer); void AdjustFriendship(struct Pokemon *mon, u8 event); void MonGainEVs(struct Pokemon *mon, u16 defeatedSpecies); u16 GetMonEVCount(struct Pokemon *mon); -void sub_8043A68(void); +void RandomlyGivePartyPokerus(struct Pokemon *party); u8 CheckPartyPokerus(struct Pokemon *party, u8 selection); u8 CheckPartyHasHadPokerus(struct Pokemon *party, u8 selection); -void sub_8043B40(void); +void PartySpreadPokerus(struct Pokemon *party); bool8 TryIncrementMonLevel(struct Pokemon *mon); u32 CanMonLearnTMHM(struct Pokemon *mon, u8 tm); u8 GetMoveRelearnerMoves(struct Pokemon *mon, u16 *moves); diff --git a/include/quest_log.h b/include/quest_log.h index f5fd820b0..a5352db1f 100644 --- a/include/quest_log.h +++ b/include/quest_log.h @@ -14,6 +14,7 @@ struct UnkStruct_3005E90 u8 unk_2; }; +extern u8 gUnknown_203ADFA; extern u8 gUnknown_3005E88; extern u16 sNumQuestLogs; extern struct UnkStruct_3005E90 gUnknown_3005E90; @@ -40,6 +41,10 @@ void sub_8112450(void); void sub_8112364(void); u8 sub_8112CAC(void); void sub_81138F8(void); +void sub_812C224(void); +void sub_812BFDC(void); +void sub_811231C(void); +void sub_81139BC(void); void *QuestLogGetFlagOrVarPtr(bool8 isFlag, u16 idx); void QuestLogSetFlagOrVar(bool8 isFlag, u16 idx, u16 value); diff --git a/include/safari_zone.h b/include/safari_zone.h index feaa93ed0..a50351570 100644 --- a/include/safari_zone.h +++ b/include/safari_zone.h @@ -16,4 +16,6 @@ void ExitSafariMode(void); bool8 SafariZoneTakeStep(void); void SafariZoneRetirePrompt(void); +void CB2_EndSafariBattle(void); + #endif // GUARD_SAFARI_ZONE_H diff --git a/include/script_pokemon_util_80A0058.h b/include/script_pokemon_util_80A0058.h index e1d228589..768e838dd 100644 --- a/include/script_pokemon_util_80A0058.h +++ b/include/script_pokemon_util_80A0058.h @@ -4,5 +4,6 @@ bool8 ScriptGiveMon(u16 species, u8 level, u16 item, u32 unk1, u32 unk2, u8 unk3); bool8 ScriptGiveEgg(u16 species); void ScriptSetMonMoveSlot(u8 partyIdx, u16 move, u8 slot); +void sp000_heal_pokemon(void); #endif //GUARD_SCRIPT_POKEMON_UTIL_80A0058_H diff --git a/include/vs_seeker.h b/include/vs_seeker.h index efc014a4a..fdd6839df 100644 --- a/include/vs_seeker.h +++ b/include/vs_seeker.h @@ -6,9 +6,10 @@ void Task_VsSeeker_0(u8 taskId); void sub_810CB90(void); void sub_810CDE8(void); -int sub_810CE64(u16 a0); +int GetRematchTrainerId(u16 a0); bool8 sub_810CF04(u8 a0); u8 sub_810CF54(); void sub_810D0D0(void); +void sub_810CB90(void); #endif //GUARD_VS_SEEKER_H |