diff options
222 files changed, 2057 insertions, 1749 deletions
diff --git a/include/asm.h b/include/asm.h deleted file mode 100644 index e72683e45..000000000 --- a/include/asm.h +++ /dev/null @@ -1,59 +0,0 @@ -#ifndef PROJECT_ASM_H -#define PROJECT_ASM_H - -#include "asm_fieldmap.h" -#include "main.h" -#include "sprite.h" -#include "task.h" - -struct FieldInput -{ - u8 pressedAButton:1; - u8 input_field_0_1:1; - u8 pressedStartButton:1; - u8 pressedSelectButton:1; - u8 input_field_0_4:1; - u8 input_field_0_5:1; - u8 input_field_0_6:1; - u8 pressedBButton:1; - u8 input_field_1_0:1; - u8 input_field_1_1:1; - u8 input_field_1_2:1; - u8 input_field_1_3:1; - u8 input_field_1_4:1; - u8 input_field_1_5:1; - u8 input_field_1_6:1; - u8 input_field_1_7:1; - u8 dpadDirection; - u8 input_field_3; -}; - -struct UnknownStruct_FPA -{ - u8 unk0; - u8 unk1; - u8 unk2; - s16 unk4; - s16 unk6; - u8 unk8; - u8 unk9; - u8 unkA_0:4; - u8 unkA_4:4; - u16 unkC; - u16 unkE; - u32 unk10; - u16 unk14; -}; - -struct CryRelatedStruct -{ - u16 unk0; - u8 unk2; - u8 paletteNo; - u8 xPos; - u8 yPos; -}; - -#include "asm.inc.h" - -#endif //PROJECT_ASM_H diff --git a/include/asm.inc.h b/include/asm.inc.h deleted file mode 100644 index 1a5e9447f..000000000 --- a/include/asm.inc.h +++ /dev/null @@ -1,450 +0,0 @@ -// src/rom3.o -void sub_800C35C(void); - -struct UnkStruct8060024 { - u8 outsideMovementRect:1; - u8 tileIsImpassable:1; - u8 elevationMismatch:1; - u8 pathBlockedByObject:1; - u8 pad_04:4; -}; - -// asm/battle_2.o -void sub_800E7C4(void); -u8 b_first_side(u8, u8, u8); -void sub_80157C4(u8 index); - -// asm/battle_3.o -u8 sub_8015A98(u8, u8, u8); -u8 sub_8018324(u8, u8, u8, u8, u16); - -// asm/battle_5.o -void sub_802C098(); -void sub_802E3E4(u8, int); -void nullsub_8(u8); - -// asm/battle_7.o -void sub_8032AA8(u8, u8); - -// src/pokemon_3.o -u16 SpeciesToNationalPokedexNum(u16); -void DrawSpindaSpots(u16, u32, u8 *, u8); -u8 sub_803FC58(u16); -void AdjustFriendship(struct Pokemon *, u8); -void sub_80408BC(); -void current_map_music_set__default_for_battle(u16); - -// src/util.o -void StoreWordInTwoHalfwords(u16 *, u32); -void LoadWordFromTwoHalfwords(u16 *, u32 *); - -// src/daycare.o -u8 Daycare_CountPokemon(struct BoxPokemon *); - -// asm/daycare.o -void sub_8041324(struct BoxPokemon *, struct RecordMixing_UnknownStruct *); -void sub_8041790(int i); -u16 sub_8041870(u16); -void sub_8041940(void); -void sub_8041950(void); -u8 daycare_relationship_score_from_savegame(void); - -// asm/pokeball.o -void CreatePokeballSprite(u8 r0, u8 r1, u8 r2, u8 r3, u8 s1, u8 s2, u8 s3, u16 s4); - -// asm/berry_blender.o -void sub_80516C4(u8, u16); - -// src/field_map_obj.o -void sub_805AA98(); -u8 sub_805AB54(void); -u8 GetFieldObjectIdByLocalIdAndMap(u8, u8, u8); -bool8 TryGetFieldObjectIdByLocalIdAndMap(u8, u8, u8, u8 *); -u8 GetFieldObjectIdByXY(s16, s16); -void RemoveFieldObjectByLocalIdAndMap(u8, u8, u8); -u8 SpawnSpecialFieldObject(struct MapObjectTemplate *); -u8 show_sprite(u8, u8, u8); -u8 AddPseudoFieldObject(u16 graphicsId, void (*callback)(struct Sprite *), s16 c, s16 d, u8 subpriority); -u8 sub_805B410(u8, u8, s16, s16, u8, u8); -void sub_805B55C(s16 a, s16 b); -void sub_805B710(u16 i, u16 i1); -void sub_805B980(struct MapObject *, u8); -void FieldObjectTurn(struct MapObject *, u8); -void FieldObjectTurnByLocalIdAndMap(u8, u8, u8, u8); -const struct MapObjectGraphicsInfo *GetFieldObjectGraphicsInfo(u8); -void npc_by_local_id_and_map_set_field_1_bit_x20(u8, u8, u8, u8); -void FieldObjectGetLocalIdAndMap(struct MapObject *, u8 *, u8 *, u8 *); -void sub_805BCF0(u8, u8, u8, u8); -void sub_805BD48(u8, u8, u8); -void sub_805BD90(u8 localId, u8 mapNum, u8 mapGroup, s16 x, s16 y); -void gpu_pal_allocator_reset__manage_upper_four(void); -void npc_coords_shift(struct MapObject *pObject, s16 x, s16 y); -void sub_805C0F8(u8, u8, u8, s16, s16); -void npc_coords_shift_still(struct MapObject *pObject); -u8 GetFieldObjectIdByXYZ(u16, u16, u8); -void UpdateFieldObjectsForCameraUpdate(s16, s16); -u8 AddCameraObject(u8); -u8 * GetFieldObjectScriptPointerByFieldObjectId(u8); -u8 FieldObjectGetBerryTreeId(u8); -void sub_805C754(struct MapObject *pObject); -void sub_805C774(struct MapObject *, u8); -void sub_805C78C(u8, u8, u8); -void sub_805C7C4(u8 i); - -// asm/field_map_obj.o -u8 FieldObjectDirectionToImageAnimId(u8); -u8 get_go_image_anim_num(u8 unk_19); -u8 sub_805FD98(u8); -u8 sub_805FDE8(u8); -u8 sub_805FDF8(u8); -u8 sub_805FE08(u8); -void npc_set_running_behaviour_etc(struct MapObject *, u8); -u8 npc_running_behaviour_by_direction(u8); -u8 npc_block_way(struct MapObject *, s16, s16, u8); -u8 sub_8060024(struct MapObject *, s16, s16, u8); -u8 sub_8060234(u8, u8, u8); -void sub_8060288(u8, u8, u8); -void sub_80603CC(s16 x, s16 y, s16 *pInt, s16 *pInt1); -void FieldObjectMoveDestCoords(struct MapObject *pObject, u8 unk_19, s16 *pInt, s16 *pInt1); -bool8 FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive(struct MapObject *); -bool8 FieldObjectSetSpecialAnim(struct MapObject *, u8); -void FieldObjectForceSetSpecialAnim(struct MapObject *pObject, u8 a); -void FieldObjectClearAnimIfSpecialAnimActive(struct MapObject *); -void FieldObjectClearAnim(struct MapObject *); -bool8 FieldObjectCheckIfSpecialAnimFinishedOrInactive(struct MapObject *); -u8 FieldObjectClearAnimIfSpecialAnimFinished(struct MapObject *); -u8 FieldObjectGetSpecialAnim(struct MapObject *); -u8 GetFaceDirectionAnimId(u8); -u8 GetSimpleGoAnimId(u8); -u8 GetGoSpeed0AnimId(u8 a); -u8 sub_8060744(u8 a); -u8 d2s_08064034(u8 a); -u8 sub_806079C(u8 a); -u8 sub_80607F4(u8 a); -u8 GetJumpLedgeAnimId(u8 a); -u8 sub_806084C(u8); -u8 sub_8060878(u8); -u8 sub_80608D0(u8); -u8 GetStepInPlaceDelay32AnimId(u8 a); -u8 GetStepInPlaceDelay16AnimId(u8); -u8 GetStepInPlaceDelay8AnimId(u8 a); -u8 GetStepInPlaceDelay4AnimId(u8 a); -u8 FieldObjectFaceOppositeDirection(struct MapObject *, u8); -u8 sub_80609D8(u8); -u8 sub_8060A04(u8); -u8 sub_8060A30(u8); -u8 sub_8060A5C(u8); -u8 sub_8060A88(u8); -u8 sub_8060AB4(u8); -u8 sub_8060AE0(u8); -u8 sub_8060B0C(u8); -u8 sub_8060B38(u8); -u8 sub_8060B64(u8); -u8 GetOppositeDirection(u8); - -// asm/field_ground_effect.o -u8 GetLedgeJumpDirection(s16, s16, u8); -u8 ZCoordToPriority(u8); -void FieldObjectUpdateZCoord(struct MapObject *pObject); -void SetObjectSubpriorityByZCoord(u8, struct Sprite *, u8); - -// asm/field_tasks.o -void SetUpFieldTasks(); -void ActivatePerStepCallback(u8); -void ResetFieldTasksArgs(void); - -// asm/reset_rtc_screen.o -void CB2_InitResetRtcScreen(void); - -// asm/party_menu.o -void sub_806CB74(u8 taskId); -void sub_806CCE4(void); -void sub_806CD44(u8 taskId); -void sub_806D538(); -void sub_806D5A4(void); -void GetMonNickname(struct Pokemon *mon, u8 *nickname); -bool8 pokemon_has_move(struct Pokemon *, u16); -void sub_806FA18(u8 taskId); - -// src/party_menu.o -u8 sub_806E834(const u8 *message, u8 arg1); - -// src/rom_8077ABC.o -u8 battle_side_get_owner(u8); -u8 battle_get_per_side_status(u8); -u8 battle_get_side_with_given_state(u8); -bool8 IsDoubleBattle(); - -// asm/field_weather.o -void SetWeather(u32); - -// src/field_fadetransition.o -void pal_fill_black(); -void sub_8080990(void); -void sub_80809B0(void); - -// asm/field_fadetransition.o -void sub_8080A3C(void); -void sub_8080AC4(void); -void mapldr_default(); -void sub_8080B60(void); -void atk17_seteffectuser(void); -void sub_8080E44(void); -void sub_8080E88(void); -void sp13E_warp_to_last_warp(void); -void sub_8080EF0(void); -void sp13F_fall_to_last_warp(void); -void sub_8080F68(void); -void sub_8080F9C(void); - -// asm/rom_8080874.o -void sub_8081594(u8); -void sub_80815E0(u8 val); - -// asm/cable_club.o -u8 sub_8083664(void); -void sub_8083A84(TaskFunc); -s32 sub_8083BF4(u8 id); - -// asm/field_effect.o -u8 CreateTrainerSprite_BirchSpeech(u8, s16, s16, u8, u8 *); -void LoadTrainerGfx_TrainerCard(u8 gender, u16, u8 *); -u8 CreateBirchSprite(s16, s16, u8); - -// asm/unknown_task.o -void remove_some_task(void); -void dp12_8087EA4(void); -void sub_80895F8(u32 i, u32 i1, u32 i2); -void sub_8089668(void); -void sub_8089944(int i, int i1, int i2, int i3, int i4, int i5, int i6); - -// asm/pokemon_menu.o -void sub_8089A70(void); -void sub_808A004(); -void sub_808AB90(void); - -// asm/rom_8094928.o -u8 pokemon_order_func(u8); - -// asm/pokemon_storage_system.o -void ResetPokemonStorageSystem(void); - -// asm/pokemon_icon.o -u8 sub_809D3A4(u16 arg0, void (*)(struct Sprite *), int, u8 arg3, u32 arg4); -u16 sub_809D4A8(u16); -void sub_809D510(struct Sprite *); -void sub_809D580(u16); -void sub_809D608(u16); - -// asm/pokemon_summary_screen.o -u8 pokemon_ailments_get_primary(u32); - -// src/script_movement.o -bool8 exec_movement(u8, u8, u8, u8 *); -bool8 sub_80A212C(u8, u8, u8); -void sub_80A2178(void); - -// asm/mail_data.o -void ClearMailData(void); -u16 MailSpeciesToSpecies(u16, u8 *); - -// src/map_name_popup.o -void ShowMapNamePopup(void); -void HideMapNamePopup(); - -// asm/item_menu.o -void sub_80A3684(void); -void ClearBag(void); -void sub_80A53F8(void); -void sub_80A5B40(void); -void sub_80A68CC(); -u8 sub_80A7D8C(u8 berry, int i, int i1); -void sub_80A7DD4(void); -u8 sub_80A7E5C(u8); - -// asm/contest.o -void ResetLinkContestBoolean(void); -void sub_80AE098(u8); -void sub_80AE398(u8, u8); -u32 sub_80AE770(u8, u8); -void sub_80AE82C(u8); -void sub_80AF668(void); -void sub_80B0F28(u8); -void sub_80B2D1C(void); - -// asm/shop.o -void CreatePokemartMenu(void *); -void CreateDecorationShop1Menu(void *); -void CreateDecorationShop2Menu(void *); - -// asm/secret_base.o -void ResetSecretBases(void); -u8 sub_80BBB24(void); -void sub_80BBCCC(u8); -u8 *sub_80BCCE8(void); -void sub_80BD674(void *, u32, u8); - -// asm/tv.o -void ClearTVShowData(void); -void UpdateTVScreensOnMap(int, int); -void ResetGabbyAndTy(void); -u8 sub_80BDEAC(u8 *); -void sub_80BE160(TVShow *); -void sub_80BE8EC(u16); -void UpdateMassOutbreakTimeLeft(u16); -void sub_80BE97C(u8); -void sub_80BEA50(u16); -void sub_80BEA5C(u16); -bool8 GetPriceReduction(u8); -void sub_80BEE84(u16); -size_t sub_80BF0B8(int); -void sub_80BF478(void); -u16 sub_80BF674(u16 species); -s8 sub_80BF720(TVShow *); -bool8 sub_80BF77C(u16); -void sub_80BFD44(u8 *, u32, u8); -void sub_80C0514(void *, u32, u8); - -// src/tv.o -void StartMassOutbreak(void); -void TVShowDone(void); - -// asm/contest_link_80C2020.o -void sub_80C2358(void); -void sub_80C48C8(void); -void sub_80C4940(void); -void sub_80C4980(u8); -u8 sub_80C4B34(u8 *); - -// asm/fldeff_80C5CD4.o -void DoFieldPoisonEffect(void); -bool32 FieldPoisonEffectIsRunning(void); -void CreateRecordMixingSprite(void); -void DestroyRecordMixingSprite(void); - -// asm/rotating_gate.o -void RotatingGatePuzzleCameraUpdate(s16, s16); -void sub_80C8080(); -u32 CheckForRotatingGatePuzzleCollision(u8, s16, s16); - -// asm/contest_link_80C857C.o -void sub_80C8734(u8); -void sub_80C88AC(u8); -void sub_80C8E1C(u8); -void sub_80C8EBC(u8); -void sub_80C8F34(u8); - -// asm/easy_chat.o -void InitEasyChatPhrases(void); -u8* sub_80EB3FC(u8 *, u16); -u8 *ConvertEasyChatWordsToString(u8 *dst, u16 *words, u16, u16); - -// asm/pokenav.o -void sub_80EBA5C(void); - -// src/mauville_old_man.o -void SetMauvilleOldMan(void); - -// asm/mauville_old_man.o -void sub_80F7F30(void); - -// asm/menu_helpers.o -bool8 sub_80F9344(void); -void sub_80F9368(void); -void sub_80F9438(void); - -// asm/region_map.o -void sub_80FBFB4(u8 *str, u8 region, u8); -void CopyMapName(); -u8 *CopyLocationName(u8 *dest, u8 location); - -// asm/slot_machine.o -void PlaySlotMachine(u8, void *); - -// asm/pokeblock.o -void ClearPokeblocks(void); -void sub_810CA6C(s32); -s16 sub_810CAE4(u8, struct Pokeblock *); - -// asm/fldeff_flash.o -void sub_810CC80(void); - -// src/time_events.o -u8 IsMirageIslandPresent(void); - -// asm/field_specials.o -void ResetCyclingRoadChallengeData(void); -bool32 CountSSTidalStep(u16); -u8 GetSSTidalLocation(s8 *, s8 *, s16 *, s16 *); -void ScriptAddElevatorMenuItem(u8, u8, u8, u8); -void ScriptShowElevatorMenu(void); -u8 GetLeadMonIndex(void); -void ResetFanClub(void); - -// asm/battle_records.o -void InitLinkBattleRecords(void); - -// asm/pokedex_cry_screen.o -u8 sub_8119E3C(struct CryRelatedStruct *, u8); -void sub_8119F88(u8 a); -void sub_811A050(u16 species); -u8 ShowPokedexCryScreen(struct CryRelatedStruct *, u8); -void DestroyCryMeterNeedleSprite(); - -// asm/battle_transition.o -void sub_811AABC(u8); -void sub_811AAD8(u8); -u8 sub_811AAE8(void); - -// asm/battle_message.o -void get_battle_strings_(u8 *); -void sub_8120FFC(const u8 *, u8 *); - -// src/mystery_event_script.o -u32 sub_812613C(u8 *); -void sub_8126160(u8); - -// asm/mystery_event_script.o -u16 sub_8126338(void); - -// asm/field_effect_helpers.o -u8 sub_8126B54(void); -void objid_set_invisible(u8); -void sub_8126BC4(u8 unk_1B, u8 r6, s16 x, s16 y); -void sub_8127ED0(u8, u8); -void sub_8127F28(u8, u8, s16); -u8 sub_8128124(u8 id); - -// asm/learn_move.o -void sub_8132670(void); - -// asm/decoration_inventory.o -void ClearDecorationInventories(void); -u8 sub_8133FE4(u8); -u8 IsThereStorageSpaceForDecoration(u8); -u8 sub_8134074(u8); -s8 sub_81340A8(u8); - -// asm/battle_tower.o -void sub_8134AC0(void *); - -// src/player_pc.o -void NewGameInitPCItems(void); - -// asm/hall_of_fame.o -void sub_8143648(u16 paletteTag, u8 arg1); - -// src/diploma.o -void sub_8145D88(void); - -// asm/intro_credits_graphics.o -void load_intro_part2_graphics(/*TODO: arg types*/); -void sub_8148C78(/*TODO: arg types*/); -void sub_8148CB0(u8); -void sub_8148E90(u8); -u8 sub_8148EC0(/*TODO: arg types*/); -void sub_8149020(/*TODO: arg types*/); -u8 intro_create_brendan_sprite(/*TODO: arg types*/); -u8 intro_create_may_sprite(/*TODO: arg types*/); -u8 intro_create_latios_sprite(/*TODO: arg types*/); -u8 intro_create_latias_sprite(/*TODO: arg types*/); diff --git a/include/asm_fieldmap.h b/include/asm_fieldmap.h deleted file mode 100644 index 10d8c8f6d..000000000 --- a/include/asm_fieldmap.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef GUARD_FIELDMAP_H -#define GUARD_FIELDMAP_H - -void not_trainer_hill_battle_pyramid(void); -void sub_8055FC0(void); -u8 MapGridGetZCoordAt(); -bool8 MapGridIsImpassableAt(s16, s16); -int MapGridGetMetatileIdAt(int, int); -u32 MapGridGetMetatileBehaviorAt(int x, int y); // return: (u8|u16|int) args: (int|s16|s32) -u8 MapGridGetMetatileLayerTypeAt(/*TODO: arg types*/); -void MapGridSetMetatileIdAt(u32, u32, u16); -void save_serialize_map(void); -int CameraMove(int, int); -void sub_8056C50(u16, u16); -void sav1_camera_get_focus_coords(s16 *x, s16 *y); -void GetCameraCoords(s16*, s16*); -void sub_8056D28(struct MapData *pData); -void sub_8056D38(struct MapData *pData); -void apply_map_tileset2_palette(struct MapData *pData); -void copy_map_tileset1_tileset2_to_vram(/*TODO: arg types*/); -void apply_map_tileset1_tileset2_palette(/*TODO: arg types*/); - -#endif // GUARD_FIELDMAP_H diff --git a/include/battle.h b/include/battle.h index 4d222834e..255813ca3 100644 --- a/include/battle.h +++ b/include/battle.h @@ -1,6 +1,8 @@ #ifndef GUARD_BATTLE_H #define GUARD_BATTLE_H +#include "sprite.h" + #define BATTLE_TYPE_DOUBLE 0x0001 #define BATTLE_TYPE_LINK 0x0002 #define BATTLE_TYPE_WILD 0x0004 @@ -29,6 +31,9 @@ #define MAX_TRAINER_ITEMS 4 #define MAX_MON_MOVES 4 +// needed to match the hack that is get_item, thanks cam, someone else clean this up later. +extern u8 unk_2000000[]; + enum { WEATHER_SUN, @@ -197,7 +202,7 @@ struct Struct2017840 u8 unk9_0:1; }; -extern struct UnknownStruct1 unk_2016A00; +extern struct UnkBattleStruct1 unk_2016A00; extern struct UnkBattleStruct4 gUnknown_02024CA8[]; extern struct AI_ThinkingStruct gAIThinkingSpace; @@ -213,4 +218,103 @@ extern u8 ewram[]; #define ewram17810 ((struct Struct2017810 *) (ewram + 0x17810)) #define ewram17840 (*(struct Struct2017840 *) (ewram + 0x17840)) +// asm/battle_1.o +void sub_800D6D4(); +void sub_800D74C(); +void sub_800D7B8(void); +void sub_800DAB8(); +void sub_800DE30(u8); +void sub_800E23C(); + +// src/battle_2.o +void sub_800E7C4(void); +void InitBattle(void); +void sub_800EC9C(void); +void sub_800F104(void); +void sub_800F298(void); +void sub_800F808(void); +void sub_800F838(struct Sprite *); +u8 CreateNPCTrainerParty(struct Pokemon *, u16); +void sub_800FCFC(void); +void c2_8011A1C(void); +void sub_80101B8(void); +void c2_081284E0(void); +void sub_8010278(struct Sprite *); +void sub_80102AC(struct Sprite *); +void nullsub_37(struct Sprite *); +void sub_8010320(struct Sprite *); +void sub_8010494(struct Sprite *); +void sub_801053C(struct Sprite *); +void oac_poke_ally_(struct Sprite *); +void nullsub_86(struct Sprite *); +void objc_dp11b_pingpong(struct Sprite *); +void nullsub_41(void); +void sub_8010800(void); +void sub_8010824(void); +void sub_8010874(void); +void bc_8012FAC(void); +void bc_load_battlefield(void); +void sub_8011384(void); +void bc_801333C(void); +void bc_battle_begin_message(void); +void bc_8013568(void); +void sub_8011800(void); +void sub_8011834(void); +void bc_801362C(void); +void sub_8011970(void); +void sub_80119B4(void); +void sub_8011B00(void); +void sub_8011E8C(void); + +// asm/battle_2.o +void sub_8012324(void); +void sub_8012FBC(u8, u8); +u8 b_first_side(u8, u8, u8); +void sub_801365C(u8); +void sub_801377C(void); +void sub_80138F0(void); +void dp01_battle_side_mark_buffer_for_execution(); +void sub_80155A4(); +void b_cancel_multi_turn_move_maybe(u8); +void b_std_message(); +void sub_80156DC(); +void sub_80157C4(u8 index); + +// asm/battle_3.o +u8 sub_8015A98(u8, u8, u8); +u8 sub_8015DFC(); +u8 sub_8016558(); +u8 sub_80170DC(); +u8 sub_80173A4(); +u8 sub_8018324(u8, u8, u8, u8, u16); +u8 sub_801A02C(); + +// asm/battle_4.o +void sub_801CAF8(u8, u8); +void move_effectiveness_something(u16, u8, u8); + +// asm/battle_5.o +void nullsub_91(void); +void sub_802BF74(void); +void sub_802C098(); +void c3_0802FDF4(u8); +void sub_802E3E4(u8, int); +void nullsub_8(u8); +void sub_802E414(void); + +// asm/battle_7.o +void move_anim_start_t4(u8 a, u8 b, u8 c, u8 d); +void nullsub_9(u16); +void nullsub_10(int); +void load_gfxc_health_bar(); +u8 battle_load_something(); +void sub_8031F88(u8); +void sub_80324F8(struct Pokemon *, u8); +void sub_8032638(); +void sub_8032AA8(u8, u8); +void sub_8032AE0(void); + +// asm/battle_9.o +void sub_8037510(void); + #endif // GUARD_BATTLE_H diff --git a/include/battle_811DA74.h b/include/battle_811DA74.h new file mode 100644 index 000000000..8b7e2f090 --- /dev/null +++ b/include/battle_811DA74.h @@ -0,0 +1,11 @@ +#ifndef GUARD_BATTLE_811DA74_H +#define GUARD_BATTLE_811DA74_H + +void sub_811DA78(void); +void sub_811DA94(void); +void sub_811E0A0(void); +void dp01_tbl3_exec_completed(void); +u32 dp01_getattr_by_ch1_for_player_pokemon(u8 a, u8 *b); +void sub_811EC68(u8); + +#endif // GUARD_BATTLE_811DA74_H diff --git a/include/battle_ai.h b/include/battle_ai.h index a5fea3480..028da2c27 100644 --- a/include/battle_ai.h +++ b/include/battle_ai.h @@ -27,5 +27,6 @@ void BattleAI_DoAIProcessing(void); void sub_810745C(void); void AIStackPushVar(u8 *); u8 AIStackPop(void); +void BattleAI_HandleItemUseBeforeAISetup(void); #endif diff --git a/include/battle_anim.h b/include/battle_anim.h index e75c71ec0..48ceece21 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -1,6 +1,8 @@ #ifndef GUARD_BATTLEANIM_H #define GUARD_BATTLEANIM_H +#include "sprite.h" + #define SCRIPT_READ_8(ptr) ((ptr)[0]) #define SCRIPT_READ_16(ptr) ((ptr)[0] | ((ptr)[1] << 8)) #define SCRIPT_READ_32(ptr) ((ptr)[0] + ((ptr)[1] << 8) + ((ptr)[2] << 16) + ((ptr)[3] << 24)) @@ -54,5 +56,12 @@ void DoMoveAnim(const u8 *const moveAnims[], u16 b, u8 c); bool8 b_side_obj__get_some_boolean(u8 a); void sub_8076034(u8, u8); bool8 IsContest(void); +void battle_anim_clear_some_data(void); +void move_anim_8072740(struct Sprite *sprite); +void DestroyAnimVisualTask(u8 task); +void DestroyAnimVisualTask(u8 task); +bool8 b_side_obj__get_some_boolean(u8); +u8 IsContest(); + #endif diff --git a/include/battle_anim_80CA710.h b/include/battle_anim_80CA710.h new file mode 100644 index 000000000..fbbe23b97 --- /dev/null +++ b/include/battle_anim_80CA710.h @@ -0,0 +1,6 @@ +#ifndef GUARD_BATTLE_ANIM_80CA710_H +#define GUARD_BATTLE_ANIM_80CA710_H + +void sub_80E4EF8(int, int, int, int, u16, u8, int); + +#endif // GUARD_BATTLE_ANIM_80CA710_H diff --git a/include/battle_anim_81258BC.h b/include/battle_anim_81258BC.h new file mode 100644 index 000000000..6bbf5dde2 --- /dev/null +++ b/include/battle_anim_81258BC.h @@ -0,0 +1,7 @@ +#ifndef GUARD_BATTLE_ANIM_81258BC_H +#define GUARD_BATTLE_ANIM_81258BC_H + +void sub_812B468(void); +void bx_battle_menu_t6_2(void); + +#endif // GUARD_BATTLE_ANIM_81258BC_H diff --git a/include/battle_anim_8137220.h b/include/battle_anim_8137220.h new file mode 100644 index 000000000..c9708ac62 --- /dev/null +++ b/include/battle_anim_8137220.h @@ -0,0 +1,6 @@ +#ifndef GUARD_BATTLE_ANIM_8137220_H +#define GUARD_BATTLE_ANIM_8137220_H + +void sub_8137224(void); + +#endif // GUARD_BATTLE_ANIM_8137220_H diff --git a/include/battle_anim_813F0F4.h b/include/battle_anim_813F0F4.h new file mode 100644 index 000000000..230a04dbb --- /dev/null +++ b/include/battle_anim_813F0F4.h @@ -0,0 +1,6 @@ +#ifndef GUARD_BATTLE_ANIM_813F0F4_H +#define GUARD_BATTLE_ANIM_813F0F4_H + +void sub_8141828(); + +#endif // GUARD_BATTLE_ANIM_813F0F4_H diff --git a/include/battle_interface.h b/include/battle_interface.h index 70434f9a9..8230c7502 100644 --- a/include/battle_interface.h +++ b/include/battle_interface.h @@ -32,5 +32,6 @@ s32 sub_8045C78(u8, u8, u8, u8); s16 sub_80460C8(struct BattleInterfaceStruct1 *, int *, void *, int); u8 GetScaledHPFraction(s16, s16, u8); u8 GetHPBarLevel(s16, s16); +void sub_80440EC(u8 a, s16 b, u8 c); #endif // GUARD_BATTLE_INTERFACE_H diff --git a/include/battle_message.h b/include/battle_message.h new file mode 100644 index 000000000..04a7770a3 --- /dev/null +++ b/include/battle_message.h @@ -0,0 +1,7 @@ +#ifndef GUARD_BATTLE_MESSAGE_H +#define GUARD_BATTLE_MESSAGE_H + +void get_battle_strings_(u8 *); +void sub_8120FFC(const u8 *, u8 *); + +#endif // GUARD_BATTLE_MESSAGE_H diff --git a/include/battle_party_menu.h b/include/battle_party_menu.h index 11752296b..5112c7b3c 100644 --- a/include/battle_party_menu.h +++ b/include/battle_party_menu.h @@ -16,19 +16,6 @@ struct Struct201B000 s16 unk266; }; -struct PartyMenuItem -{ - const u8 *text; - TaskFunc func; -}; - -struct PartyPopupMenu -{ - u8 unk0; - u8 unk1; - const u8 *unk4; -}; - extern u8 unk_2000000[]; void SetUpBattlePokemonMenu(u8); diff --git a/include/battle_records.h b/include/battle_records.h new file mode 100644 index 000000000..f0c1a101b --- /dev/null +++ b/include/battle_records.h @@ -0,0 +1,8 @@ +#ifndef GUARD_BATTLE_RECORDS_H +#define GUARD_BATTLE_RECORDS_H + +void InitLinkBattleRecords(void); +void PrintLinkBattleWinsLossesDraws(void *); +void PrintLinkBattleRecord(void *, u8); + +#endif // GUARD_BATTLE_RECORDS_H diff --git a/include/battle_tower.h b/include/battle_tower.h new file mode 100644 index 000000000..193905b93 --- /dev/null +++ b/include/battle_tower.h @@ -0,0 +1,7 @@ +#ifndef GUARD_BATTLE_TOWER_H +#define GUARD_BATTLE_TOWER_H + +void sub_8134AC0(void *); +u16 sub_8135D3C(u8); + +#endif // GUARD_BATTLE_TOWER_H diff --git a/include/battle_transition.h b/include/battle_transition.h new file mode 100644 index 000000000..b01378505 --- /dev/null +++ b/include/battle_transition.h @@ -0,0 +1,8 @@ +#ifndef GUARD_BATTLE_TRANSITION_H +#define GUARD_BATTLE_TRANSITION_H + +void sub_811AABC(u8); +void sub_811AAD8(u8); +u8 sub_811AAE8(void); + +#endif // GUARD_BATTLE_TRANSITION_H diff --git a/include/berry_blender.h b/include/berry_blender.h new file mode 100644 index 000000000..924b24b00 --- /dev/null +++ b/include/berry_blender.h @@ -0,0 +1,6 @@ +#ifndef GUARD_BERRY_BLENDER_H +#define GUARD_BERRY_BLENDER_H + +void sub_80516C4(u8, u16); + +#endif // GUARD_BERRY_BLENDER_H diff --git a/include/cable_club.h b/include/cable_club.h new file mode 100644 index 000000000..9e6a703e3 --- /dev/null +++ b/include/cable_club.h @@ -0,0 +1,22 @@ +#ifndef GUARD_CABLE_CLUB_H +#define GUARD_CABLE_CLUB_H + +#include "task.h" + +void sub_8082D4C(); +void sub_8082D60(u8, u8); +u16 sub_8082D9C(u8, u8); +u32 sub_8082DF4(u8); +u32 sub_8082E28(u8); +u32 sub_8082EB8(u8); +void sub_8082FEC(u8 taskId); +void sub_80833C4(u8 taskId); +void sub_8083418(u8 taskId); +u8 sub_8083444(u8 taskId); +u8 sub_8083664(void); +void sub_8083A84(TaskFunc); +s32 sub_8083BF4(u8 id); +void sub_8083C50(u8); +void sub_8083188(u8 taskId); + +#endif // GUARD_CABLE_CLUB_H diff --git a/include/choose_party.h b/include/choose_party.h new file mode 100644 index 000000000..1e575a355 --- /dev/null +++ b/include/choose_party.h @@ -0,0 +1,8 @@ +#ifndef GUARD_CHOOSE_PARTY_H +#define GUARD_CHOOSE_PARTY_H + +void sub_8121E10(void); +void sub_8121E34(void); +void sub_8123138(u8); + +#endif // GUARD_CHOOSE_PARTY_H diff --git a/include/contest.h b/include/contest.h index 82520717f..983f9bc6a 100644 --- a/include/contest.h +++ b/include/contest.h @@ -22,5 +22,19 @@ struct ContestPokemon }; // wow extern struct ContestPokemon gContestMons[]; +void ResetLinkContestBoolean(void); +void sub_80AB2AC(void); +void sub_80AB47C(void); +void sub_80AE098(u8); +void sub_80AE398(u8, u8); +u8 sub_80AE47C(struct Pokemon *party); +u32 sub_80AE770(u8, u8); +void sub_80AE82C(u8); +u8 sub_80AEB1C(); +void sub_80AF668(void); +void sub_80B0F28(u8); +int sub_80B2A7C(u8); //Don't know return type size +u8 sub_80B2C4C(u8, u8); +void sub_80B2D1C(void); #endif // GUARD_CONTEST_H diff --git a/include/contest_link_80C2020.h b/include/contest_link_80C2020.h new file mode 100644 index 000000000..0b49d188c --- /dev/null +++ b/include/contest_link_80C2020.h @@ -0,0 +1,13 @@ +#ifndef GUARD_CONTEST_LINK_80C2020_H +#define GUARD_CONTEST_LINK_80C2020_H + +void sub_80C2358(void); +void sub_80C46EC(void); +void sub_80C4740(void); +void sub_80C48C8(void); +void sub_80C48F4(void); +void sub_80C4940(void); +void sub_80C4980(u8); +u8 sub_80C4B34(u8 *); + +#endif // GUARD_CONTEST_LINK_80C2020_H diff --git a/include/contest_link_80C857C.h b/include/contest_link_80C857C.h new file mode 100644 index 000000000..9135ba2e7 --- /dev/null +++ b/include/contest_link_80C857C.h @@ -0,0 +1,10 @@ +#ifndef GUARD_CONTEST_LINK_80C857C_H +#define GUARD_CONTEST_LINK_80C857C_H + +void sub_80C8734(u8); +void sub_80C88AC(u8); +void sub_80C8E1C(u8); +void sub_80C8EBC(u8); +void sub_80C8F34(u8); + +#endif // GUARD_CONTEST_LINK_80C857C_H diff --git a/include/contest_painting.h b/include/contest_painting.h index 5c1b065c2..ad1cecfed 100644 --- a/include/contest_painting.h +++ b/include/contest_painting.h @@ -60,26 +60,7 @@ struct LabelPair const u8 *suffix; }; -struct Unk03005E20 -{ - u8 var_0; - u8 pad1[3]; - u16 (*var_4)[][32]; - u16 (*var_8)[]; - u8 pad0C[4]; - u32 var_10; - u16 var_14; - u16 var_16; - u8 var_18; - u8 var_19; - u8 var_1A; - u8 var_1B; - u8 var_1C; - u8 var_1D; - u8 var_1E; - u8 var_1F; -}; - void sub_8106630(u32); +void CB2_ContestPainting(void); #endif diff --git a/include/coord_event_weather.h b/include/coord_event_weather.h new file mode 100644 index 000000000..86fb48793 --- /dev/null +++ b/include/coord_event_weather.h @@ -0,0 +1,6 @@ +#ifndef GUARD_COORD_EVENT_WEATHER_H +#define GUARD_COORD_EVENT_WEATHER_H + +void DoCoordEventWeather(u8); + +#endif // GUARD_COORD_EVENT_WEATHER_H diff --git a/include/cute_sketch.h b/include/cute_sketch.h new file mode 100644 index 000000000..1fa3c90fb --- /dev/null +++ b/include/cute_sketch.h @@ -0,0 +1,28 @@ +#ifndef GUARD_CUTE_SKETCH_H +#define GUARD_CUTE_SKETCH_H + +struct Unk03005E20 +{ + u8 var_0; + u8 pad1[3]; + u16 (*var_4)[][32]; + u16 (*var_8)[]; + u8 pad0C[4]; + u32 var_10; + u16 var_14; + u16 var_16; + u8 var_18; + u8 var_19; + u8 var_1A; + u8 var_1B; + u8 var_1C; + u8 var_1D; + u8 var_1E; + u8 var_1F; +}; + +void sub_80FC7A0(struct Unk03005E20 *); +void sub_80FD8CC(struct Unk03005E20 *); +void sub_80FDA18(struct Unk03005E20 *); + +#endif // GUARD_CUTE_SKETCH_H diff --git a/include/daycare.h b/include/daycare.h new file mode 100644 index 000000000..b90c50610 --- /dev/null +++ b/include/daycare.h @@ -0,0 +1,14 @@ +#ifndef GUARD_DAYCARE_H +#define GUARD_DAYCARE_H + +u8 Daycare_CountPokemon(struct BoxPokemon *); +void sub_8041324(struct BoxPokemon *, struct RecordMixing_UnknownStruct *); +void sub_8041790(int i); +u16 sub_8041870(u16); +void sub_8041940(void); +void sub_8041950(void); +void sub_8042044(struct Pokemon *mon, u16, u8); +u8 sub_80422A0(void); +u8 daycare_relationship_score_from_savegame(void); + +#endif // GUARD_DAYCARE_H diff --git a/include/debug.h b/include/debug.h new file mode 100644 index 000000000..f3ad8c401 --- /dev/null +++ b/include/debug.h @@ -0,0 +1,7 @@ +#ifndef GUARD_DEBUG_H +#define GUARD_DEBUG_H + +// matsuda_debug_menu +void sub_80AAF30(void); + +#endif // GUARD_DEBUG_H diff --git a/include/decoration.h b/include/decoration.h index 2e83a9414..2595d491a 100644 --- a/include/decoration.h +++ b/include/decoration.h @@ -1,6 +1,8 @@ #ifndef GUARD_DECORATION_H #define GUARD_DECORATION_H +#include "task.h" + enum DecoId { /*000*/ DECOR_NONE, /*001*/ DECOR_SMALL_DESK, @@ -372,5 +374,6 @@ void sub_8100FB4(u8); void sub_810153C(u8); void sub_8101590(u8); void sub_8101848(u8); +void DoPlayerPCDecoration(u8); #endif // GUARD_DECORATION_H diff --git a/include/decoration_inventory.h b/include/decoration_inventory.h index dd87e7239..afc354237 100644 --- a/include/decoration_inventory.h +++ b/include/decoration_inventory.h @@ -1,8 +1,10 @@ -// -// Created by Scott Norton on 6/5/17. -// +#ifndef GUARD_DECORATION_INVENTORY_H +#define GUARD_DECORATION_INVENTORY_H -#ifndef POKERUBY_DECORATION_INVENTORY_H -#define POKERUBY_DECORATION_INVENTORY_H +void ClearDecorationInventories(void); +u8 sub_8133FE4(u8); +u8 IsThereStorageSpaceForDecoration(u8); +u8 sub_8134074(u8); +s8 sub_81340A8(u8); -#endif //POKERUBY_DECORATION_INVENTORY_H +#endif // GUARD_DECORATION_INVENTORY_H diff --git a/include/dewford_trend.h b/include/dewford_trend.h index a37de3389..26075d633 100644 --- a/include/dewford_trend.h +++ b/include/dewford_trend.h @@ -6,5 +6,6 @@ void InitDewfordTrend(void); void sub_80FA4E4(void *, u32, u8); +void UpdateDewfordTrendPerDay(u16); #endif diff --git a/include/diploma.h b/include/diploma.h new file mode 100644 index 000000000..81e9e3bb2 --- /dev/null +++ b/include/diploma.h @@ -0,0 +1,6 @@ +#ifndef GUARD_DIPLOMA_H +#define GUARD_DIPLOMA_H + +void sub_8145D88(void); + +#endif // GUARD_DIPLOMA_H diff --git a/include/easy_chat.h b/include/easy_chat.h index dca6b80c2..6b04f524b 100644 --- a/include/easy_chat.h +++ b/include/easy_chat.h @@ -29,5 +29,16 @@ enum { u16 sub_80EB72C(u16 group); void sub_80EB6FC(u16 *, u16); +void InitEasyChatPhrases(void); +u8 sub_80EAD7C(u8 group); +u16 sub_80EAE88(u8); +u8 sub_80EB37C(u16); +u8* sub_80EB3FC(u8 *, u16); +u8 *ConvertEasyChatWordsToString(u8 *dst, u16 *words, u16, u16); +u16 sub_80EB784(u16 group); +u8 sub_80EB868(u8); +void sub_80EB890(u8); +u8 sub_80EB8C0(void); +u16 sub_80EB8EC(void); #endif // GUARD_EASYCHAT_H diff --git a/include/field_control_avatar.h b/include/field_control_avatar.h index 0f8b74d59..a85e02132 100644 --- a/include/field_control_avatar.h +++ b/include/field_control_avatar.h @@ -1,7 +1,27 @@ #ifndef GUARD_FIELDCONTROLAVATAR_H #define GUARD_FIELDCONTROLAVATAR_H -#include "asm.h" +struct FieldInput +{ + u8 pressedAButton:1; + u8 input_field_0_1:1; + u8 pressedStartButton:1; + u8 pressedSelectButton:1; + u8 input_field_0_4:1; + u8 input_field_0_5:1; + u8 input_field_0_6:1; + u8 pressedBButton:1; + u8 input_field_1_0:1; + u8 input_field_1_1:1; + u8 input_field_1_2:1; + u8 input_field_1_3:1; + u8 input_field_1_4:1; + u8 input_field_1_5:1; + u8 input_field_1_6:1; + u8 input_field_1_7:1; + u8 dpadDirection; + u8 input_field_3; +}; void FieldClearPlayerInput(struct FieldInput *pStruct); void FieldGetPlayerInput(struct FieldInput *pStruct, u16 keys, u16 heldKeys); @@ -11,5 +31,10 @@ void overworld_poison_timer_set(void); void prev_quest_postbuffer_cursor_backup_reset(void); u8 *sub_8068E24(struct MapPosition *); u8 *GetFieldObjectScriptPointerForComparison(); +bool8 mapheader_trigger_activate_at__run_now(struct MapPosition *); +bool8 sub_8068870(u16 a); +bool8 sub_8068894(void); +bool8 sub_8068A64(struct MapPosition *, u16); +u8 sub_8068F18(void); #endif diff --git a/include/field_effect.h b/include/field_effect.h index 2cf7f0c7a..74b5fa34d 100644 --- a/include/field_effect.h +++ b/include/field_effect.h @@ -2,6 +2,7 @@ #define GUARD_FIELD_EFFECT_H #include "sprite.h" +#include "task.h" enum FieldEffectScriptIdx { @@ -235,4 +236,13 @@ void sub_808948C(struct Task *); void sub_80894C4(struct Task *); void fishE(struct Task *); +u8 CreateTrainerSprite_BirchSpeech(u8 gender, s16 x, s16 y, u8 subpriority, u8 *buffer); +void LoadTrainerGfx_TrainerCard(u8 gender, u16 palOffset, u8 *dest); +u8 CreateBirchSprite(s16 x, s16 y, u8 subpriority); +u8 CreateMonSprite_PicBox(u16, s16, s16, u8); +void FreeResourcesAndDestroySprite(struct Sprite *sprite); +void MultiplyInvertedPaletteRGBComponents(u16, u8, u8, u8); +void sub_80878A8(void); +void sub_8087BA8(void); + #endif // GUARD_FIELD_EFFECT_H diff --git a/include/field_effect_helpers.h b/include/field_effect_helpers.h index 62f492bdc..56838fc3a 100644 --- a/include/field_effect_helpers.h +++ b/include/field_effect_helpers.h @@ -1,11 +1,13 @@ -// -// Created by scott on 5/25/2017. -// - -#ifndef POKERUBY_FIELD_EFFECT_HELPERS_H -#define POKERUBY_FIELD_EFFECT_HELPERS_H +#ifndef GUARD_FIELD_EFFECT_HELPERS_H +#define GUARD_FIELD_EFFECT_HELPERS_H void sub_812869C(struct MapObject *); bool8 sub_81286C4(struct MapObject *); +u8 sub_8126B54(void); +void objid_set_invisible(u8); +void sub_8126BC4(u8 unk_1B, u8 r6, s16 x, s16 y); +void sub_8127ED0(u8, u8); +void sub_8127F28(u8, u8, s16); +u8 sub_8128124(u8 id); -#endif //POKERUBY_FIELD_EFFECT_HELPERS_H +#endif // GUARD_FIELD_EFFECT_HELPERS_H diff --git a/include/field_fadetransition.h b/include/field_fadetransition.h new file mode 100644 index 000000000..764adfc9a --- /dev/null +++ b/include/field_fadetransition.h @@ -0,0 +1,31 @@ +#ifndef GUARD_FIELD_FADETRANSITION_H +#define GUARD_FIELD_FADETRANSITION_H + +void palette_bg_fill_white(void); +void palette_bg_fill_black(void); +void pal_fill_black(void); +void pal_fill_black(); +void pal_fill_black(void); +void task0A_asap_script_env_2_enable_and_set_ctx_running(u8); +void sub_8080990(void); +void sub_80809B0(void); +void sub_8080A3C(void); +void sub_8080AC4(void); +void mapldr_default(); +void sub_8080B60(void); +void atk17_seteffectuser(void); +void sub_8080E28(void); +void sub_8080E44(void); +int sub_8080E70(void); +void sub_8080E88(void); +void sub_8080E88(); +void sp13E_warp_to_last_warp(void); +void sub_8080EF0(void); +void sp13F_fall_to_last_warp(void); +void sub_8080F2C(u8); +void sub_8080F48(void); +void sub_8080F58(void); +void sub_8080F68(void); +void sub_8080F9C(void); + +#endif // GUARD_FIELD_FADETRANSITION_H diff --git a/include/field_ground_effect.h b/include/field_ground_effect.h index 8a69426b3..19d43c916 100644 --- a/include/field_ground_effect.h +++ b/include/field_ground_effect.h @@ -1,11 +1,27 @@ -// -// Created by Scott Norton on 5/22/17. -// - -#ifndef POKERUBY_FIELD_GROUND_EFFECT_H -#define POKERUBY_FIELD_GROUND_EFFECT_H +#ifndef GUARD_FIELD_GROUND_EFFECT_H +#define GUARD_FIELD_GROUND_EFFECT_H bool8 IsZCoordMismatchAt(u8 z, s16 x, s16 y); bool8 AreZCoordsCompatible(u8 z1, u8 z2); +void FieldObjectUpdateMetatileBehaviors(struct MapObject *); +void GetGroundEffectFlags_Reflection(struct MapObject *, u32 *); +void GetGroundEffectFlags_TallGrassOnSpawn(struct MapObject *, u32 *); +void GetGroundEffectFlags_TallGrassOnBeginStep(struct MapObject *, u32 *); +void GetGroundEffectFlags_LongGrassOnSpawn(struct MapObject *, u32 *); +void GetGroundEffectFlags_LongGrassOnBeginStep(struct MapObject *, u32 *); +void GetGroundEffectFlags_Tracks(struct MapObject *, u32 *); +void GetGroundEffectFlags_SandPile(struct MapObject *, u32 *); +void GetGroundEffectFlags_ShallowFlowingWater(struct MapObject *, u32 *); +void GetGroundEffectFlags_Puddle(struct MapObject *, u32 *); +void GetGroundEffectFlags_Ripple(struct MapObject *, u32 *); +void GetGroundEffectFlags_ShortGrass(struct MapObject *, u32 *); +void GetGroundEffectFlags_HotSprings(struct MapObject *, u32 *); +void GetGroundEffectFlags_Seaweed(struct MapObject *, u32 *); +void GetGroundEffectFlags_JumpLanding(struct MapObject *, u32 *); +u8 FieldObjectCheckForReflectiveSurface(struct MapObject *); +u8 GetLedgeJumpDirection(s16, s16, u8); +u8 ZCoordToPriority(u8); +void FieldObjectUpdateZCoord(struct MapObject *pObject); +void SetObjectSubpriorityByZCoord(u8, struct Sprite *, u8); -#endif //POKERUBY_FIELD_GROUND_EFFECT_H +#endif // GUARD_FIELD_GROUND_EFFECT_H diff --git a/include/field_map_obj.h b/include/field_map_obj.h index 0347b90d4..e4999dee6 100644 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -92,4 +92,110 @@ extern u16 gUnknown_0300489C; extern u32 gUnknown_0202FF84[]; int state_to_direction(u8, u8, u8); + +void sub_805AA98(); +void sub_805AAB0(void); +u8 sub_805AB54(void); +u8 GetFieldObjectIdByLocalIdAndMap(u8, u8, u8); +bool8 TryGetFieldObjectIdByLocalIdAndMap(u8, u8, u8, u8 *); +u8 GetFieldObjectIdByXY(s16, s16); +u8 GetFieldObjectIdByLocalIdAndMapInternal(u8, u8, u8); +u8 GetFieldObjectIdByLocalId(u8); +u8 GetAvailableFieldObjectSlot(u16, u8, u8, u8 *); +void RemoveFieldObjectByLocalIdAndMap(u8, u8, u8); +void RemoveFieldObjectInternal(struct MapObject *); +u8 SpawnSpecialFieldObject(struct MapObjectTemplate *); +u8 show_sprite(u8, u8, u8); +void MakeObjectTemplateFromFieldObjectTemplate(struct MapObjectTemplate *mapObjTemplate, struct SpriteTemplate *sprTemplate, struct SubspriteTable **subspriteTables); +u8 AddPseudoFieldObject(u16 graphicsId, void (*callback)(struct Sprite *), s16 c, s16 d, u8 subpriority); +u8 sub_805B410(u8, u8, s16, s16, u8, u8); +void sub_805B55C(s16 a, s16 b); +void sub_805B710(u16 i, u16 i1); +void sub_805B980(struct MapObject *, u8); +void FieldObjectTurn(struct MapObject *, u8); +void FieldObjectTurnByLocalIdAndMap(u8, u8, u8, u8); +const struct MapObjectGraphicsInfo *GetFieldObjectGraphicsInfo(u8); +void FieldObjectHandleDynamicGraphicsId(struct MapObject *); +void npc_by_local_id_and_map_set_field_1_bit_x20(u8, u8, u8, u8); +void FieldObjectGetLocalIdAndMap(struct MapObject *, u8 *, u8 *, u8 *); +void sub_805BCC0(s16 x, s16 y); +void sub_805BCF0(u8, u8, u8, u8); +void sub_805BD48(u8, u8, u8); +void sub_805BD90(u8 localId, u8 mapNum, u8 mapGroup, s16 x, s16 y); +void gpu_pal_allocator_reset__manage_upper_four(void); +void sub_805BDF8(u16); +u8 sub_805BE58(const struct SpritePalette *); +void pal_patch_for_npc(u16, u16); +u8 FindFieldObjectPaletteIndexByTag(u16); +void npc_load_two_palettes__no_record(u16, u8); +void npc_load_two_palettes__and_record(u16, u8); +void npc_coords_shift(struct MapObject *pObject, s16 x, s16 y); +void sub_805C0F8(u8, u8, u8, s16, s16); +void npc_coords_shift_still(struct MapObject *pObject); +u8 GetFieldObjectIdByXYZ(u16, u16, u8); +void UpdateFieldObjectsForCameraUpdate(s16, s16); +u8 AddCameraObject(u8); +void CameraObjectReset1(void); +u8 * GetFieldObjectScriptPointerByFieldObjectId(u8); +u16 GetFieldObjectFlagIdByFieldObjectId(u8); +u8 FieldObjectGetBerryTreeId(u8); +struct MapObjectTemplate *GetFieldObjectTemplateByLocalIdAndMap(u8, u8, u8); +void sub_805C754(struct MapObject *pObject); +void sub_805C774(struct MapObject *, u8); +void sub_805C78C(u8, u8, u8); +void sub_805C7C4(u8 i); +u8 FieldObjectDirectionToImageAnimId(u8); +u8 get_go_image_anim_num(u8 unk_19); +u8 sub_805FD98(u8); +u8 sub_805FDE8(u8); +u8 sub_805FDF8(u8); +u8 sub_805FE08(u8); +void npc_set_running_behaviour_etc(struct MapObject *, u8); +u8 npc_running_behaviour_by_direction(u8); +u8 npc_block_way(struct MapObject *, s16, s16, u8); +u8 sub_8060024(struct MapObject *, s16, s16, u8); +u8 sub_8060234(u8, u8, u8); +void sub_8060288(u8, u8, u8); +void sub_8060388(s16, s16, s16 *, s16 *); +void sub_80603CC(s16 x, s16 y, s16 *pInt, s16 *pInt1); +void GetFieldObjectMovingCameraOffset(s16 *, s16 *); +void FieldObjectMoveDestCoords(struct MapObject *pObject, u8 unk_19, s16 *pInt, s16 *pInt1); +bool8 FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive(struct MapObject *); +bool8 FieldObjectIsSpecialAnimActive(struct MapObject *); +bool8 FieldObjectSetSpecialAnim(struct MapObject *, u8); +void FieldObjectForceSetSpecialAnim(struct MapObject *pObject, u8 a); +void FieldObjectClearAnimIfSpecialAnimActive(struct MapObject *); +void FieldObjectClearAnim(struct MapObject *); +bool8 FieldObjectCheckIfSpecialAnimFinishedOrInactive(struct MapObject *); +u8 FieldObjectClearAnimIfSpecialAnimFinished(struct MapObject *); +u8 FieldObjectGetSpecialAnim(struct MapObject *); +u8 GetFaceDirectionAnimId(u8); +u8 GetSimpleGoAnimId(u8); +u8 GetGoSpeed0AnimId(u8 a); +u8 sub_8060744(u8 a); +u8 d2s_08064034(u8 a); +u8 sub_806079C(u8 a); +u8 sub_80607F4(u8 a); +u8 GetJumpLedgeAnimId(u8 a); +u8 sub_806084C(u8); +u8 sub_8060878(u8); +u8 sub_80608D0(u8); +u8 GetStepInPlaceDelay32AnimId(u8 a); +u8 GetStepInPlaceDelay16AnimId(u8); +u8 GetStepInPlaceDelay8AnimId(u8 a); +u8 GetStepInPlaceDelay4AnimId(u8 a); +u8 FieldObjectFaceOppositeDirection(struct MapObject *, u8); +u8 sub_80609D8(u8); +u8 sub_8060A04(u8); +u8 sub_8060A30(u8); +u8 sub_8060A5C(u8); +u8 sub_8060A88(u8); +u8 sub_8060AB4(u8); +u8 sub_8060AE0(u8); +u8 sub_8060B0C(u8); +u8 sub_8060B38(u8); +u8 sub_8060B64(u8); +u8 GetOppositeDirection(u8); +void sub_80634D0(struct MapObject *, struct Sprite *); + #endif // GUARD_FIELD_MAP_OBJ_H diff --git a/include/field_map_obj_helpers.h b/include/field_map_obj_helpers.h index 5dceec595..fd29a9a7f 100644 --- a/include/field_map_obj_helpers.h +++ b/include/field_map_obj_helpers.h @@ -1,6 +1,8 @@ #ifndef GUARD_FIELDMAPOBJHELP_H #define GUARD_FIELDMAPOBJHELP_H +#include "sprite.h" + bool8 FreezeMapObject(struct MapObject *); void FreezeMapObjects(void); void FreezeMapObjectsExceptOne(u8); diff --git a/include/field_player_avatar.h b/include/field_player_avatar.h index fc21c4e3c..86b1af3fb 100644 --- a/include/field_player_avatar.h +++ b/include/field_player_avatar.h @@ -1,37 +1,39 @@ #ifndef GUARD_FIELD_PLAYER_AVATAR_H #define GUARD_FIELD_PLAYER_AVATAR_H +#include "task.h" + // sub_80587B4 void player_step(u8 a, u16 b, u16 c); -// ForcedMovement_None -// ForcedMovement_Slip -// sub_8058AAC -// sub_8058AC4 -// sub_8058ADC -// sub_8058AF4 -// sub_8058B0C -// sub_8058B24 -// sub_8058B3C -// sub_8058B54 -// ForcedMovement_SlideSouth -// ForcedMovement_SlideNorth -// ForcedMovement_SlideWest -// ForcedMovement_SlideEast -// sub_8058C04 -// sub_8058C10 -// ForcedMovement_MuddySlope -// PlayerNotOnBikeNotMoving -// PlayerNotOnBikeTurningInPlace -// sub_8058D0C +u8 ForcedMovement_None(void); +u8 ForcedMovement_Slip(void); +u8 sub_8058AAC(void); +u8 sub_8058AC4(void); +u8 sub_8058ADC(void); +u8 sub_8058AF4(void); +u8 sub_8058B0C(void); +u8 sub_8058B24(void); +u8 sub_8058B3C(void); +u8 sub_8058B54(void); +u8 ForcedMovement_SlideSouth(void); +u8 ForcedMovement_SlideNorth(void); +u8 ForcedMovement_SlideWest(void); +u8 ForcedMovement_SlideEast(void); +u8 sub_8058C04(void); +u8 sub_8058C10(void); +u8 ForcedMovement_MuddySlope(void); +void PlayerNotOnBikeNotMoving(u8 direction, u16 heldKeys); +void PlayerNotOnBikeTurningInPlace(u8 direction, u16 heldKeys); +void sub_8058D0C(u8 direction, u16 heldKeys); u8 CheckForFieldObjectCollision(struct MapObject *a, s16 b, s16 c, u8 d, u8 e); void SetPlayerAvatarTransitionFlags(u16 a); -// nullsub_49 -// PlayerAvatarTransition_Normal -// PlayerAvatarTransition_MachBike -// PlayerAvatarTransition_AcroBike -// PlayerAvatarTransition_Surfing -// PlayerAvatarTransition_Underwater -// sub_80591F4 +void nullsub_49(struct MapObject *a); +void PlayerAvatarTransition_Normal(struct MapObject *a); +void PlayerAvatarTransition_MachBike(struct MapObject *a); +void PlayerAvatarTransition_AcroBike(struct MapObject *a); +void PlayerAvatarTransition_Surfing(struct MapObject *a); +void PlayerAvatarTransition_Underwater(struct MapObject *a); +void sub_80591F4(struct MapObject *a); void sub_8059204(void); u8 player_get_x22(void); void PlayerSetAnimId(u8 a, u8 b); @@ -72,41 +74,41 @@ u8 GetPlayerAvatarGenderByGraphicsId(u8 gfxId); bool8 PartyHasMonWithSurf(void); bool8 IsPlayerSurfingNorth(void); bool8 IsPlayerFacingSurfableFishableWater(void); -// ClearPlayerAvatarInfo +void ClearPlayerAvatarInfo(void); void SetPlayerAvatarStateMask(u8 a); u8 GetPlayerAvatarGraphicsIdByCurrentState(void); void SetPlayerAvatarExtraStateTransition(u8 a, u8 b); void InitPlayerAvatar(s16 a, s16 b, u8 c, u8 d); -// sub_8059B88 +void sub_8059B88(u8); void sub_8059BF4(void); // sub_8059C3C void sub_8059C94(u8); // sub_8059D08 -// sub_8059E84 -// sub_8059EA4 -// sub_8059F40 -// sub_805A000 -// sub_805A0D8 -// sub_805A100 -// sub_805A178 -// sub_805A1B8 +u8 sub_8059E84(struct Task *task, struct MapObject *b, struct MapObject *c); +u8 sub_8059EA4(struct Task *task, struct MapObject *b, struct MapObject *c); +u8 sub_8059F40(struct Task *task, struct MapObject *b, struct MapObject *c); +u8 sub_805A000(struct Task *task, struct MapObject *mapObject); +u8 sub_805A0D8(struct Task *task, struct MapObject *mapObject); +u8 sub_805A100(struct Task *task, struct MapObject *mapObject); +u8 sub_805A178(struct Task *task, struct MapObject *mapObject); +u8 sub_805A1B8(struct Task *task, struct MapObject *mapObject); void sub_805A20C(u8 a); void StartFishing(u8 a); -// Fishing1 -// Fishing2 -// Fishing3 -// Fishing4 -// Fishing5 -// Fishing6 -// Fishing7 -// Fishing8 -// Fishing9 -// Fishing10 -// Fishing11 -// Fishing12 -// Fishing13 -// Fishing14 -// Fishing15 -// Fishing16 +u8 Fishing1(struct Task *task); +u8 Fishing2(struct Task *task); +u8 Fishing3(struct Task *task); +u8 Fishing4(struct Task *task); +u8 Fishing5(struct Task *task); +u8 Fishing6(struct Task *task); +u8 Fishing7(struct Task *task); +u8 Fishing8(struct Task *task); +u8 Fishing9(struct Task *task); +u8 Fishing10(struct Task *task); +u8 Fishing11(struct Task *task); +u8 Fishing12(struct Task *task); +u8 Fishing13(struct Task *task); +u8 Fishing14(struct Task *task); +u8 Fishing15(struct Task *task); +u8 Fishing16(struct Task *task); #endif diff --git a/include/field_poison.h b/include/field_poison.h new file mode 100644 index 000000000..8e8e2746f --- /dev/null +++ b/include/field_poison.h @@ -0,0 +1,6 @@ +#ifndef GUARD_FIELD_POISON_H +#define GUARD_FIELD_POISON_H + +s32 overworld_poison(void); + +#endif // GUARD_FIELD_POISON_H diff --git a/include/field_region_map.h b/include/field_region_map.h new file mode 100644 index 000000000..93b8c6d68 --- /dev/null +++ b/include/field_region_map.h @@ -0,0 +1,10 @@ +#ifndef GUARD_FIELD_REGION_MAP_H +#define GUARD_FIELD_REGION_MAP_H + +void CB2_FieldInitRegionMap(void); +void VBlankCB_FieldRegionMap(void); +void CB2_FieldRegionMap(void); +void sub_813EFDC(void); +void sub_813F0C8(void); + +#endif // GUARD_FIELD_REGION_MAP_H diff --git a/include/field_screen_effect.h b/include/field_screen_effect.h new file mode 100644 index 000000000..d86109282 --- /dev/null +++ b/include/field_screen_effect.h @@ -0,0 +1,7 @@ +#ifndef GUARD_FIELD_SCREEN_EFFECT_H +#define GUARD_FIELD_SCREEN_EFFECT_H + +void sub_8081594(u8); +void sub_80815E0(u8 val); + +#endif // GUARD_FIELD_SCREEN_EFFECT_H diff --git a/include/field_specials.h b/include/field_specials.h new file mode 100644 index 000000000..d0eb12065 --- /dev/null +++ b/include/field_specials.h @@ -0,0 +1,13 @@ +#ifndef GUARD_FIELD_SPECIALS_H +#define GUARD_FIELD_SPECIALS_H + +void ResetCyclingRoadChallengeData(void); +bool32 CountSSTidalStep(u16); +u8 GetSSTidalLocation(s8 *, s8 *, s16 *, s16 *); +void ScriptAddElevatorMenuItem(u8, u8, u8, u8); +void ScriptShowElevatorMenu(void); +void SetShoalItemFlag(u16); +u8 GetLeadMonIndex(void); +void ResetFanClub(void); + +#endif // GUARD_FIELD_SPECIALS_H diff --git a/include/field_tasks.h b/include/field_tasks.h new file mode 100644 index 000000000..53e704395 --- /dev/null +++ b/include/field_tasks.h @@ -0,0 +1,8 @@ +#ifndef GUARD_FIELD_TASKS_H +#define GUARD_FIELD_TASKS_H + +void SetUpFieldTasks(); +void ActivatePerStepCallback(u8); +void ResetFieldTasksArgs(void); + +#endif // GUARD_FIELD_TASKS_H diff --git a/include/field_weather.h b/include/field_weather.h index df216aea7..409f76028 100644 --- a/include/field_weather.h +++ b/include/field_weather.h @@ -42,4 +42,9 @@ void sub_80806E4(void); void DoCurrentWeather(void); void sub_8080750(); +u8 sub_807D770(void); +bool8 sub_807DDFC(void); +void SetWeather(u32); +void UpdateWeatherPerDay(u16); + #endif // GUARD_WEATHER_H diff --git a/include/fieldmap.h b/include/fieldmap.h index d08627ddc..67b85fa62 100644 --- a/include/fieldmap.h +++ b/include/fieldmap.h @@ -10,4 +10,36 @@ int CanCameraMoveInDirection(int direction); u32 GetBehaviorByMetatileId(u16 metatile); void MapGridSetMetatileEntryAt(int, int, u16); +void not_trainer_hill_battle_pyramid(void); +void sub_8055FC0(void); +void mapheader_copy_mapdata_with_padding(struct MapHeader *mapHeader); +void map_copy_with_padding(u16 *map, u16 width, u16 height); +void sub_80560AC(struct MapHeader *); +void fillSouthConnection(struct MapHeader *, struct MapHeader *, s32); +void fillNorthConnection(struct MapHeader *, struct MapHeader *, s32); +void fillWestConnection(struct MapHeader *, struct MapHeader *, s32); +void fillEastConnection(struct MapHeader *, struct MapHeader *, s32); +u8 MapGridGetZCoordAt(int s, int y); +u8 MapGridIsImpassableAt(int, int); +u32 MapGridGetMetatileIdAt(int, int); +u32 MapGridGetMetatileBehaviorAt(int x, int y); // return: (u8|u16|int) args: (int|s16|s32) +u8 MapGridGetMetatileLayerTypeAt(int, int); +void MapGridSetMetatileIdAt(int, int, u16); +u32 GetBehaviorByMetatileId(u16 metatile); +void save_serialize_map(void); +void sub_8056670(); +bool8 CameraMove(int, int); +struct MapConnection *sub_8056A64(u8 direction, int x, int y); +bool8 sub_8056ABC(u8 direction, int x, int y, struct MapConnection *connection); +bool8 sub_8056B20(int x, int src_width, int dest_width, int offset); +struct MapConnection *sub_8056BA0(s16 x, s16 y); // fieldmap.c +void sub_8056C50(u16, u16); +void sav1_camera_get_focus_coords(u16 *x, u16 *y); +void GetCameraCoords(u16*, u16*); +void sub_8056D28(struct MapData *pData); +void sub_8056D38(struct MapData *pData); +void apply_map_tileset2_palette(struct MapData *pData); +void copy_map_tileset1_tileset2_to_vram(/*TODO: arg types*/); +void apply_map_tileset1_tileset2_palette(/*TODO: arg types*/); + #endif diff --git a/include/fldeff_80C5CD4.h b/include/fldeff_80C5CD4.h new file mode 100644 index 000000000..413e8ad96 --- /dev/null +++ b/include/fldeff_80C5CD4.h @@ -0,0 +1,9 @@ +#ifndef GUARD_FLDEFF_80C5CD4_H +#define GUARD_FLDEFF_80C5CD4_H + +void DoFieldPoisonEffect(void); +bool32 FieldPoisonEffectIsRunning(void); +void CreateRecordMixingSprite(void); +void DestroyRecordMixingSprite(void); + +#endif // GUARD_FLDEFF_80C5CD4_H diff --git a/include/fldeff_cut.h b/include/fldeff_cut.h new file mode 100644 index 000000000..0a5261468 --- /dev/null +++ b/include/fldeff_cut.h @@ -0,0 +1,13 @@ +#ifndef GUARD_FLDEFF_CUT_H +#define GUARD_FLDEFF_CUT_H + +void sub_80A25E8(void); +void sub_80A2634(void); +void sub_80A2684(void); +void sub_80A27A8(s16, s16); +void sub_80A28F4(s16, s16); +void objc_8097BBC(struct Sprite *sprite); +void sub_80A2AB8(void); +void sub_80A2B00(void); // unknown args + +#endif // GUARD_FLDEFF_CUT_H diff --git a/include/fldeff_flash.h b/include/fldeff_flash.h new file mode 100644 index 000000000..546a7f5dc --- /dev/null +++ b/include/fldeff_flash.h @@ -0,0 +1,8 @@ +#ifndef GUARD_FLDEFF_FLASH_H +#define GUARD_FLDEFF_FLASH_H + +void sub_810CC80(void); +u8 sub_810CDB8(u8, u8); +u8 fade_type_for_given_maplight_pair(u8, u8); + +#endif // GUARD_FLDEFF_FLASH_H diff --git a/include/fldeff_softboiled.h b/include/fldeff_softboiled.h new file mode 100644 index 000000000..97c65be08 --- /dev/null +++ b/include/fldeff_softboiled.h @@ -0,0 +1,7 @@ +#ifndef GUARD_FLDEFF_SOFTBOILED_H +#define GUARD_FLDEFF_SOFTBOILED_H + +bool8 SetUpFieldMove_SoftBoiled(void); +void sub_8133D28(u8 taskid); + +#endif // GUARD_FLDEFF_SOFTBOILED_H diff --git a/include/fldeff_teleport.h b/include/fldeff_teleport.h new file mode 100644 index 000000000..e447f5132 --- /dev/null +++ b/include/fldeff_teleport.h @@ -0,0 +1,7 @@ +#ifndef GUARD_FLDEFF_TELEPORT_H +#define GUARD_FLDEFF_TELEPORT_H + +void hm_teleport_run_dp02scr(void); +void sub_814A404(void); + +#endif // GUARD_FLDEFF_TELEPORT_H diff --git a/include/global.h b/include/global.h index 0e7c43437..9da4bd57c 100755 --- a/include/global.h +++ b/include/global.h @@ -4,6 +4,21 @@ #include "gba/gba.h" #include "config.h" +// IDE support +#ifdef __APPLE__ +#define _(x) x +#define __(x) x +#define INCBIN_U8 {0} +#define INCBIN_U16 {0} +#define INCBIN_U32 {0} +#define INCBIN_S8 {0} +#define INCBIN_S16 {0} +#define INCBIN_S32 {0} +void * memcpy (void *, const void *, size_t); +void * memset (void *, int, size_t); +int strcmp (const char *, const char *); +#endif + // Prevent cross-jump optimization. #define BLOCK_CROSS_JUMP asm(""); diff --git a/include/hall_of_fame.h b/include/hall_of_fame.h new file mode 100644 index 000000000..62e84c39e --- /dev/null +++ b/include/hall_of_fame.h @@ -0,0 +1,9 @@ +#ifndef GUARD_HALL_OF_FAME_H +#define GUARD_HALL_OF_FAME_H + +void sub_8141F90(void); +void sub_8143648(u16 paletteTag, u8 arg1); +void sub_81428CC(void); +void sub_8143680(int, u8); + +#endif // GUARD_HALL_OF_FAME_H diff --git a/include/intro_credits_graphics.h b/include/intro_credits_graphics.h new file mode 100644 index 000000000..85485a2c4 --- /dev/null +++ b/include/intro_credits_graphics.h @@ -0,0 +1,24 @@ +#ifndef GUARD_INTRO_CREDITS_GRAPHICS_H +#define GUARD_INTRO_CREDITS_GRAPHICS_H + +extern const struct SpriteSheet gIntro2BrendanSpriteSheet; +extern const struct SpriteSheet gIntro2MaySpriteSheet; +extern const struct SpriteSheet gIntro2BicycleSpriteSheet; +extern const struct SpriteSheet gIntro2LatiosSpriteSheet; +extern const struct SpriteSheet gIntro2LatiasSpriteSheet; +extern const struct SpritePalette gIntro2SpritePalettes[]; +extern const struct SpriteSheet gUnknown_08416E24; +extern const struct SpriteSheet gUnknown_08416E34; + +void load_intro_part2_graphics(/*TODO: arg types*/); +void sub_8148C78(/*TODO: arg types*/); +void sub_8148CB0(u8); +void sub_8148E90(u8); +u8 sub_8148EC0(/*TODO: arg types*/); +void sub_8149020(/*TODO: arg types*/); +u8 intro_create_brendan_sprite(/*TODO: arg types*/); +u8 intro_create_may_sprite(/*TODO: arg types*/); +u8 intro_create_latios_sprite(/*TODO: arg types*/); +u8 intro_create_latias_sprite(/*TODO: arg types*/); + +#endif // GUARD_INTRO_CREDITS_GRAPHICS_H diff --git a/include/item_menu.h b/include/item_menu.h new file mode 100644 index 000000000..301836ac8 --- /dev/null +++ b/include/item_menu.h @@ -0,0 +1,29 @@ +#ifndef GUARD_ITEM_MENU_H +#define GUARD_ITEM_MENU_H + +#include "string_util.h" + +void sub_80A3684(void); +void ClearBag(void); +void sub_80A3E0C(void); +void sub_80A3FA0(u16 *, u32, u32, u32, u32, u32); +void sub_80A4164(u8 *, u16, enum StringConvertMode, u8); +void sub_80A418C(u16, enum StringConvertMode, int, int, int); +void sub_80A53F8(void); +void HandleItemMenuPaletteFade(u8); +void sub_80A5B40(void); +void CleanUpItemMenuMessage(u8); +void CleanUpOverworldMessage(u8); +void ExecuteItemUseFromBlackPalette(void); +void sub_80A5D04(void); +void sub_80A6300(void); +void sub_80A68CC(); +void sub_80A6A30(void); +int sub_80A6D1C(void); +void sub_80A6DCC(void); +void sub_80A7094(u8); +u8 sub_80A7D8C(u8 berry, int i, int i1); +void sub_80A7DD4(void); +u8 sub_80A7E5C(u8); + +#endif // GUARD_ITEM_MENU_H diff --git a/include/item_use.h b/include/item_use.h new file mode 100644 index 000000000..b35389ee8 --- /dev/null +++ b/include/item_use.h @@ -0,0 +1,28 @@ +#ifndef GUARD_ITEM_USE_H +#define GUARD_ITEM_USE_H + +void ItemUseOnFieldCB_Bike(u8); +void ItemUseOnFieldCB_Rod(u8); +void ItemUseOnFieldCB_Itemfinder(u8); +void RunItemfinderResults(u8); +void ExitItemfinder(u8); +bool8 ItemfinderCheckForHiddenItems(struct MapEvents *events, u8 taskId); +void sub_80C9720(u8); +void sub_80C9838(u8, s16, s16); +u8 GetPlayerDirectionTowardsHiddenItem(s16, s16); +void SetPlayerDirectionTowardsItem(u8); +void DisplayItemRespondingMessageAndExitItemfinder(u8); +void RotatePlayerAndExitItemfinder(u8); +void sub_80C9D00(u8); +void sub_80C9D74(u8); +void ItemUseOutOfBattle_TMHM(u8); +void sub_80C9EE4(u8); +void sub_80C9F10(u8); +void sub_80C9F80(u8); +void sub_80C9FC0(u8); +void task08_080A1C44(u8); +u8 sub_80CA1C8(void); +void ItemUseOutOfBattle_EvolutionStone(u8); +void ItemUseOutOfBattle_CannotUse(u8); + +#endif // GUARD_ITEM_USE_H diff --git a/include/learn_move.h b/include/learn_move.h new file mode 100644 index 000000000..85fbf046e --- /dev/null +++ b/include/learn_move.h @@ -0,0 +1,6 @@ +#ifndef GUARD_LEARN_MOVE_H +#define GUARD_LEARN_MOVE_H + +void sub_8132670(void); + +#endif // GUARD_LEARN_MOVE_H diff --git a/include/mail_data.h b/include/mail_data.h new file mode 100644 index 000000000..df4b385a1 --- /dev/null +++ b/include/mail_data.h @@ -0,0 +1,16 @@ +#ifndef GUARD_MAIL_DATA_H +#define GUARD_MAIL_DATA_H + +void ClearMailData(void); +void ClearMailStruct(struct MailStruct *); +void ClearMailStruct(struct MailStruct *); +u8 GiveMailToMon(struct Pokemon *, u16); +u16 SpeciesToMailSpecies(u16, u32); +u16 MailSpeciesToSpecies(u16, u16 *); +u8 GiveMailToMon2(struct Pokemon *, struct MailStruct *); +void TakeMailFromMon(struct Pokemon *); +u8 TakeMailFromMon2(struct Pokemon *); +bool8 ItemIsMail(u16); +bool8 ItemIsMail(u16); + +#endif // GUARD_MAIL_DATA_H diff --git a/include/map_name_popup.h b/include/map_name_popup.h new file mode 100644 index 000000000..aeee7e029 --- /dev/null +++ b/include/map_name_popup.h @@ -0,0 +1,7 @@ +#ifndef GUARD_MAP_NAME_POPUP_H +#define GUARD_MAP_NAME_POPUP_H + +void ShowMapNamePopup(void); +void HideMapNamePopup(); + +#endif // GUARD_MAP_NAME_POPUP_H diff --git a/include/mauville_old_man.h b/include/mauville_old_man.h new file mode 100644 index 000000000..473fcf5c8 --- /dev/null +++ b/include/mauville_old_man.h @@ -0,0 +1,11 @@ +#ifndef GUARD_MAUVILLE_OLD_MAN_H +#define GUARD_MAUVILLE_OLD_MAN_H + +void SetMauvilleOldMan(void); +void sub_80F7DC0(void); +void sub_80F7F30(void); +void sub_80F7F80(u8); +void sub_80F83D0(void); +void sub_80F83F8(void); + +#endif // GUARD_MAUVILLE_OLD_MAN_H diff --git a/include/menu.h b/include/menu.h index c18f4cb9e..a6784a553 100644 --- a/include/menu.h +++ b/include/menu.h @@ -21,6 +21,14 @@ struct MenuAction3 void (*func2)(u8); }; +extern const struct MenuAction gMenuYesNoItems[]; + +extern struct Window gMenuWindow; +extern struct Window *gMenuWindowPtr; +extern u16 gMenuTextTileOffset; +extern u16 gMenuTextWindowContentTileOffset; +extern u16 gMenuMessageBoxContentTileOffset; + void CloseMenu(void); void AppendToList(u8 *list, u8 *pindex, u32 value); void InitMenuWindow(const struct WindowConfig *); diff --git a/include/menu_helpers.h b/include/menu_helpers.h index 74248e85a..0aa9f79f7 100644 --- a/include/menu_helpers.h +++ b/include/menu_helpers.h @@ -1,6 +1,8 @@ #ifndef GUARD_MENU_HELPERS_H #define GUARD_MENU_HELPERS_H +#include "task.h" + struct YesNoFuncTable { void (*yesFunc)(u8); @@ -8,5 +10,18 @@ struct YesNoFuncTable }; void DoYesNoFuncWithChoice(u8, const struct YesNoFuncTable *); +void sub_80F914C(u8, const struct YesNoFuncTable *); +void DisplayItemMessageOnField(u8, const u8 *, TaskFunc, u16); +bool8 sub_80F9344(void); +u8 sub_80F9344(void); +void sub_80F9368(void); +void sub_80F9438(void); +void sub_80F944C(void); +void CreateVerticalScrollIndicators(u8, u8, u8); // include/decoration.h +void sub_80F979C(u32, u32); // unknown args +void DestroyVerticalScrollIndicator(u8); +void BuyMenuFreeMemory(void); +void sub_80F98DC(int); +void sub_80F996C(u8); #endif // GUARD_MENU_HELPERS_H diff --git a/include/mystery_event_script.h b/include/mystery_event_script.h new file mode 100644 index 000000000..766303588 --- /dev/null +++ b/include/mystery_event_script.h @@ -0,0 +1,8 @@ +#ifndef GUARD_MYSTERY_EVENT_SCRIPT_H +#define GUARD_MYSTERY_EVENT_SCRIPT_H + +u32 sub_812613C(u8 *); +void sub_8126160(u32 val); +u16 sub_8126338(void); + +#endif // GUARD_MYSTERY_EVENT_SCRIPT_H diff --git a/include/party_menu.h b/include/party_menu.h new file mode 100644 index 000000000..917d6a58c --- /dev/null +++ b/include/party_menu.h @@ -0,0 +1,113 @@ +#ifndef GUARD_PARTY_MENU_H +#define GUARD_PARTY_MENU_H + +#include "task.h" + +struct PartyMenuItem +{ + const u8 *text; + TaskFunc func; +}; + +struct PartyPopupMenu +{ + u8 unk0; + u8 unk1; + const u8 *unk4; +}; + +void sub_806AEDC(void); +void sub_806AF4C(); +void OpenPartyMenu(u8, u8); +void OpenPartyMenu(); +u8 sub_806B124(void); +u8 IsLinkDoubleBattle(void); +u8 sub_806B58C(u8); +u8 sub_806B58C(u8); +void sub_806BC3C(u8, u8); +u8 sub_806BD58(u8, u8); +u8 sub_806BD58(u8, u8); +u16 sub_806BD80(); // undefined args in battle_party_menu.c +void task_pc_turn_off(); +void sub_806BF74(); +void sub_806C994(); +u8 sub_806CA38(u8); +void sub_806CB74(u8 taskId); +void sub_806CCE4(void); +void sub_806CD44(u8 taskId); +void sub_806D538(); +void sub_806D538(); +void sub_806D538(); +void sub_806D5A4(void); +void SetMonIconAnim(); +void TryCreatePartyMenuMonIcon(u8, u8, struct Pokemon *); +void LoadHeldItemIconGraphics(void); +void LoadHeldItemIconGraphics(void); +void CreateHeldItemIcons_806DC34(); // undefined args +void CreateHeldItemIcons_806DC34(); +u8 GetMonIconSpriteId_maybe(); +void SetHeldItemIconVisibility(); +void TryPrintPartyMenuMonNickname(); +void PrintPartyMenuMonNicknames(void); +void PrintPartyMenuMonNicknames(void); +void GetMonNickname(struct Pokemon *mon, u8 *nickname); +void PartyMenuClearLevelStatusTilemap(); +void PartyMenuPrintMonLevelOrStatus(); +void PartyMenuPrintMonsLevelOrStatus(void); +void PartyMenuPrintMonsLevelOrStatus(void); +void PartyMenuDoPrintHP(u8, int, u16, u16); +void PartyMenuTryPrintMonsHP(void); +void nullsub_13(void); +void PartyMenuDrawHPBars(void); +void sub_806E6F0(); +void sub_806E750(u8, const struct PartyPopupMenu *, const struct PartyMenuItem *, int); +void sub_806E7D0(u8, const struct PartyPopupMenu *); +TaskFunc PartyMenuGetPopupMenuFunc(u8, const struct PartyPopupMenu *, const struct PartyMenuItem *, u8); +void sub_8070968(); +void sub_8070A20(); +void Task_RareCandy3(u8); +void sub_8070C54(); +void DoEvolutionStoneItemEffect(u8, u16, TaskFunc); +u8 GetItemEffectType(); +u8 sub_806E834(const u8 *message, u8 arg1); +void sub_806E8D0(u8 taskId, u16 b, TaskFunc c); +void party_menu_link_mon_held_item_object(u8); +void Task_ConfirmGiveHeldItem(u8); +void DisplayGiveHeldItemMessage(u8, u16, u8); +void DisplayTakeHeldItemMessage(u8, u16, u8); +void Task_ConfirmTakeHeldMail(u8); +u16 ItemIdToBattleMoveId(u16); +bool8 pokemon_has_move(struct Pokemon *, u16); +void TeachMonTMMove(u8, u16, TaskFunc); +void Task_TeamMonTMMove(u8); +void Task_TeamMonTMMove2(u8); +void Task_TeamMonTMMove3(u8); +void Task_TeamMonTMMove4(u8); +void sub_806F358(u8); +void sub_806F390(u8); +void sub_806F44C(u8); +void TMMoveUpdateMoveSlot(u8); +void StopTryingToTeachMove_806F614(u8); +void StopTryingToTeachMove_806F67C(u8); +void StopTryingToTeachMove_806F6B4(u8); +void sub_806F8AC(u8 taskId); +void sub_806FA18(u8 taskId); +void sub_806FB0C(u8 taskId); +void sub_806FB44(u8); +void PartyMenuUpdateLevelOrStatus(struct Pokemon *, u8); +void GetMedicineItemEffectMessage(u16); +bool8 ExecuteTableBasedItemEffect__(u8, u16, u8); +void UseMedicine(u8, u16, TaskFunc); +bool8 IsBlueYellowRedFlute(u16); +void sub_8070048(u8, u16, TaskFunc); +void sub_8070088(u8); +void sub_80701DC(u8 taskId); +void DoPPRecoveryItemEffect(u8, u16, TaskFunc); +void DoRecoverPP(u8); +void DoPPUpItemEffect(u8, u16, TaskFunc); +void DoRareCandyItemEffect(u8, u16, TaskFunc); +void Task_RareCandy1(u8); +void Task_RareCandy2(u8); +void sub_8070848(u8 taskId); + +#endif // GUARD_PARTY_MENU_H diff --git a/include/player_pc.h b/include/player_pc.h index 5f53d80ac..f2446ebdf 100755 --- a/include/player_pc.h +++ b/include/player_pc.h @@ -1,5 +1,5 @@ -#ifndef GUARD_PLAYERPC_H -#define GUARD_PLAYERPC_H +#ifndef GUARD_PLAYER_PC_H +#define GUARD_PLAYER_PC_H // general task defines #define TASK gTasks[taskId] @@ -84,4 +84,24 @@ void PlayerPC(void); void ItemStorage_ReturnToMenuAfterDeposit(void); void Mailbox_ReturnToMailListAfterDeposit(void); -#endif +void sub_813A240(u8); +void sub_813A280(u8); +void sub_813A468(u8); +void sub_813A4B4(u8); +void HandleQuantityRolling(u8); +void sub_813A6FC(u8); +void sub_813A794(u8); +void sub_813A8F0(u8); +void sub_813A984(u8); +void sub_813A9EC(u8); +void sub_813AA30(u8, u8); +void sub_813ABE8(u8); +void sub_813AD58(u16); +void sub_813AE0C(u8); +void sub_813AE6C(u8, u8); +u8 sub_813AF3C(void); +void sub_813AF78(void); +void sub_813B108(u8); +void sub_813B174(u8); + +#endif // GUARD_PLAYER_PC_H diff --git a/include/pokeball.h b/include/pokeball.h new file mode 100644 index 000000000..b6fbbcf77 --- /dev/null +++ b/include/pokeball.h @@ -0,0 +1,7 @@ +#ifndef GUARD_POKEBALL_H +#define GUARD_POKEBALL_H + +void CreatePokeballSprite(u8 r0, u8 r1, u8 r2, u8 r3, u8 s1, u8 s2, u8 s3, u16 s4); +void sub_804777C(u8); + +#endif // GUARD_POKEBALL_H diff --git a/include/pokeblock.h b/include/pokeblock.h new file mode 100644 index 000000000..257c83f1c --- /dev/null +++ b/include/pokeblock.h @@ -0,0 +1,10 @@ +#ifndef GUARD_POKEBLOCK_H +#define GUARD_POKEBLOCK_H + +void sub_810B96C(void); +void sub_810BA7C(u8); +void ClearPokeblocks(void); +void sub_810CA6C(s32); +s16 sub_810CAE4(u8, struct Pokeblock *); + +#endif // GUARD_POKEBLOCK_H diff --git a/include/pokedex_area_screen.h b/include/pokedex_area_screen.h new file mode 100644 index 000000000..35ea43854 --- /dev/null +++ b/include/pokedex_area_screen.h @@ -0,0 +1,6 @@ +#ifndef GUARD_POKEDEX_AREA_SCREEN_H +#define GUARD_POKEDEX_AREA_SCREEN_H + +void ShowPokedexAreaScreen(u16 species, u8 *string); + +#endif // GUARD_POKEDEX_AREA_SCREEN_H diff --git a/include/pokedex_cry_screen.h b/include/pokedex_cry_screen.h new file mode 100644 index 000000000..ee586a092 --- /dev/null +++ b/include/pokedex_cry_screen.h @@ -0,0 +1,19 @@ +#ifndef GUARD_POKEDEX_CRY_SCREEN_H +#define GUARD_POKEDEX_CRY_SCREEN_H + +struct CryRelatedStruct +{ + u16 unk0; + u8 unk2; + u8 paletteNo; + u8 xPos; + u8 yPos; +}; + +u8 ShowPokedexCryScreen(struct CryRelatedStruct *, u8); +u8 sub_8119E3C(struct CryRelatedStruct *, u8); +void sub_8119F88(u8 a); +void sub_811A050(u16 species); +void DestroyCryMeterNeedleSprite(); + +#endif // GUARD_POKEDEX_CRY_SCREEN_H diff --git a/include/pokemon.h b/include/pokemon.h index a9c780dbb..273e7d26e 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -1,6 +1,8 @@ #ifndef GUARD_POKEMON_H #define GUARD_POKEMON_H +#include "sprite.h" + #define MON_DATA_PERSONALITY 0 #define MON_DATA_OT_ID 1 #define MON_DATA_NICKNAME 2 @@ -382,6 +384,29 @@ struct PokemonStorage u8 unkArray[14]; }; +struct Evolution +{ + u16 method; + u16 param; + u16 targetSpecies; +}; + +struct EvolutionData +{ + struct Evolution evolutions[5]; +}; + +extern const u8 *const gItemEffectTable[]; +extern u8 gTrainerClassToPicIndex[]; +extern u8 gTrainerClassToNameIndex[]; +extern const u32 gExperienceTables[8][101]; +extern const struct BaseStats gBaseStats[]; +extern struct EvolutionData gEvolutionTable[]; +extern const u16 *gLevelUpLearnsets[]; +extern u8 gUnknown_08208238[]; +extern u8 gUnknown_0820823C[]; +extern u8 gStatStageRatios[][2]; + extern struct Pokemon gPlayerParty[PARTY_SIZE]; extern struct Pokemon gEnemyParty[PARTY_SIZE]; @@ -464,4 +489,26 @@ void MonRestorePP(struct Pokemon *); u8 *sub_803F378(u16 itemId); u16 NationalPokedexNumToSpecies(u16 nationalNum); +u16 NationalToHoennOrder(u16); +u16 SpeciesToNationalPokedexNum(u16); +u16 HoennToNationalOrder(u16); +void DrawSpindaSpots(u16, u32, u8 *, u8); +u8 sub_803FBBC(void); +u8 sub_803FC58(u16); +void AdjustFriendship(struct Pokemon *, u8); +u8 CheckPartyHasHadPokerus(struct Pokemon *, u8); +void UpdatePartyPokerusTime(u16); +u32 CanMonLearnTMHM(struct Pokemon *, u8); +u8 sub_8040574(struct Pokemon *party); +void ClearBattleMonForms(void); +void sub_80408BC(); +void current_map_music_set__default_for_battle(u16); +const u16 *species_and_otid_get_pal(u16, u32, u32); +const struct SpritePalette *sub_80409C8(u16, u32, u32); +bool8 IsOtherTrainer(u32, u8 *); +void sub_8040B8C(void); +void SetWildMonHeldItem(void); +u8 *sub_8040D08(); +bool32 sub_8040D3C(u16 species, u8 *name, u8 language); + #endif // GUARD_POKEMON_H diff --git a/include/pokemon_icon.h b/include/pokemon_icon.h new file mode 100644 index 000000000..98f984564 --- /dev/null +++ b/include/pokemon_icon.h @@ -0,0 +1,14 @@ +#ifndef GUARD_POKEMON_ICON_H +#define GUARD_POKEMON_ICON_H + +u8 CreateMonIcon(); +u8 sub_809D3A4(u16 arg0, void (*)(struct Sprite *), int, u8 arg3, u32 arg4); +u16 GetUnownLetterByPersonality(u32); +u16 sub_809D4A8(u16); +void sub_809D510(struct Sprite *); +void sub_809D51C(void); +void sub_809D580(u16); +void sub_809D608(u16); +void UpdateMonIconFrame(struct Sprite *sprite); + +#endif // GUARD_POKEMON_ICON_H diff --git a/include/pokemon_item_effect.h b/include/pokemon_item_effect.h new file mode 100644 index 000000000..c09649aff --- /dev/null +++ b/include/pokemon_item_effect.h @@ -0,0 +1,6 @@ +#ifndef GUARD_POKEMON_ITEM_EFFECT_H +#define GUARD_POKEMON_ITEM_EFFECT_H + +bool8 ExecuteTableBasedItemEffect_(struct Pokemon *mon, u16, u8, u16); + +#endif // GUARD_POKEMON_ITEM_EFFECT_H diff --git a/include/pokemon_menu.h b/include/pokemon_menu.h new file mode 100644 index 000000000..d22dbb708 --- /dev/null +++ b/include/pokemon_menu.h @@ -0,0 +1,14 @@ +#ifndef GUARD_POKEMON_MENU_H +#define GUARD_POKEMON_MENU_H + +void sub_8089A70(void); +void sub_808A004(); +void sub_808AB90(void); +void sub_808AB90(void); // unknown args +void sub_808AB90(void); +void sub_808B020(void); +void sub_808B0C0(u8); +void sub_808B508(u8); +void sub_808B564(); + +#endif // GUARD_POKEMON_MENU_H diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h new file mode 100644 index 000000000..bd4e7915b --- /dev/null +++ b/include/pokemon_storage_system.h @@ -0,0 +1,6 @@ +#ifndef GUARD_POKEMON_STORAGE_SYSTEM_H +#define GUARD_POKEMON_STORAGE_SYSTEM_H + +void ResetPokemonStorageSystem(void); + +#endif // GUARD_POKEMON_STORAGE_SYSTEM_H diff --git a/include/pokemon_summary_screen.h b/include/pokemon_summary_screen.h new file mode 100644 index 000000000..3f7ed8fad --- /dev/null +++ b/include/pokemon_summary_screen.h @@ -0,0 +1,16 @@ +#ifndef GUARD_POKEMON_SUMMARY_SCREEN_H +#define GUARD_POKEMON_SUMMARY_SCREEN_H + +extern const u8 *const gNatureNames[]; + +void ShowPokemonSummaryScreen(struct Pokemon *, u8, u8, void (*)(u8), int); +void sub_809D9F0(struct Pokemon *party, u8, u8, void *, u32); +void sub_809D9F0(struct Pokemon *, u8, u8, void *, u32); +u8 sub_809FA30(void); +u8 pokemon_ailments_get_primary(u32); +u8 GetMonStatusAndPokerus(); +u8 *sub_80A1E9C(u8 *dest, const u8 *src, u8); +u8 *PokemonSummaryScreen_CopyPokemonLevel(u8 *dest, u8 level); +u8 PokemonSummaryScreen_CheckOT(struct Pokemon *pokemon); + +#endif // GUARD_POKEMON_SUMMARY_SCREEN_H diff --git a/include/pokenav.h b/include/pokenav.h new file mode 100644 index 000000000..ccea77a57 --- /dev/null +++ b/include/pokenav.h @@ -0,0 +1,19 @@ +#ifndef GUARD_POKENAV_H +#define GUARD_POKENAV_H + +struct UnkPokenavStruct_Sub { + /*0x0*/ u16 unk0; + /*0x2*/ u8 filler2[6]; +}; + +struct UnkPokenavStruct { + /*0x0000*/ u8 filler0000[0xCEE8]; + /*0xCEE8*/ struct UnkPokenavStruct_Sub unkCEE8[78]; + /*0xD158*/ u16 unkD158; +}; + +extern struct UnkPokenavStruct *gUnknown_083DFEC4; + +void sub_80EBA5C(void); + +#endif // GUARD_POKENAV_H diff --git a/include/region_map.h b/include/region_map.h new file mode 100644 index 000000000..0cef566f6 --- /dev/null +++ b/include/region_map.h @@ -0,0 +1,13 @@ +#ifndef GUARD_REGION_MAP_H +#define GUARD_REGION_MAP_H + +void sub_80FA8EC(u32, u8); +void sub_80FAB10(void); +u8 sub_80FAB60(void); +void sub_80FBB3C(u16, u16); +void sub_80FBCF0(u32, u8); +void sub_80FBFB4(u8 *str, u8 region, u8); +void CopyMapName(); +u8 *CopyLocationName(u8 *dest, u8 location); + +#endif // GUARD_REGION_MAP_H diff --git a/include/reset_rtc_screen.h b/include/reset_rtc_screen.h new file mode 100644 index 000000000..5807dec99 --- /dev/null +++ b/include/reset_rtc_screen.h @@ -0,0 +1,6 @@ +#ifndef GUARD_RESET_RTC_SCREEN_H +#define GUARD_RESET_RTC_SCREEN_H + +void CB2_InitResetRtcScreen(void); + +#endif // GUARD_RESET_RTC_SCREEN_H diff --git a/include/rom3.h b/include/rom3.h new file mode 100644 index 000000000..a66162443 --- /dev/null +++ b/include/rom3.h @@ -0,0 +1,25 @@ +#ifndef GUARD_ROM3_H +#define GUARD_ROM3_H + +void sub_800B858(void); +void setup_poochyena_battle(); +void sub_800B950(void); +void sub_800B9A8(void); +void sub_800BA78(void); +void sub_800BD54(void); +void sub_800BF28(void); +void dp01_prepare_buffer_wireless_probably(u8 a, u16, u8 *c); +void sub_800C1A8(u8); +void sub_800C35C(void); +void sub_800C47C(u8); +void dp01_build_cmdbuf_x00_a_b_0(u8 a, u8 b, u8 c); +void dp01_build_cmdbuf_x04_4_4_4(u8 a); +void sub_800C704(u8, u8, u8); +void dp01_build_cmdbuf_x07_7_7_7(u8 a); +void dp01_build_cmdbuf_x12_a_bb(u8 a, u8 b, u16 c); +void dp01_build_cmdbuf_x1D_1D_numargs_varargs(u8, u16, u8 *); +void dp01_build_cmdbuf_x2E_a(u8 a, u8 b); +void dp01_build_cmdbuf_x2F_2F_2F_2F(u8 a); +void dp01_build_cmdbuf_x30_TODO(u8 a, u8 *b, u8 c); + +#endif // GUARD_ROM3_H diff --git a/include/rom4.h b/include/rom4.h index 9bfb9a51f..eac4d29a2 100644 --- a/include/rom4.h +++ b/include/rom4.h @@ -17,6 +17,13 @@ struct LinkPlayerMapObject u8 mode; }; +struct UCoords32 +{ + u32 x, y; +}; + +extern struct UCoords32 gUnknown_0821664C[]; + // sub_8052F5C void flag_var_implications_of_teleport_(void); void new_game(void); @@ -37,7 +44,7 @@ void update_saveblock1_field_object_movement_behavior(u8, u8); // warp_set // warp_data_is_not_neg_1 struct MapHeader * const get_mapheader_by_bank_and_number(u16 mapGroup, u16 mapNum); -// warp1_get_mapheader +struct MapHeader * const warp1_get_mapheader(void); // set_current_map_header_from_sav1_save_old_name // sub_805338C // sub_80533CC @@ -65,10 +72,10 @@ void gpu_sync_bg_hide(); // sub_8053850 bool8 sub_80538B0(u16 x, u16 y); bool8 sub_80538D0(u16 x, u16 y); -// sub_80538F0 +void sub_80538F0(u8 mapGroup, u8 mapNum); // sub_8053994 void player_avatar_init_params_reset(void); -// walkrun_find_lowest_active_bit_in_bitfield +void walkrun_find_lowest_active_bit_in_bitfield(void); // sub_8053AA8 u8 sub_8053B00(struct UnkPlayerStruct *playerStruct, u16 a2, u8 a3); u8 sub_8053B60(struct UnkPlayerStruct *playerStruct, u8, u16, u8); @@ -200,7 +207,7 @@ u32 sub_80558AC(void); u32 sub_8055910(void); u32 sub_8055940(void); // ZeroLinkPlayerMapObject -// strange_npc_table_clear +void strange_npc_table_clear(void); // ZeroMapObject void SpawnLinkPlayerMapObject(u8, s16, s16, u8); void InitLinkPlayerMapObjectPos(struct MapObject *, s16, s16); diff --git a/include/rom_8077ABC.h b/include/rom_8077ABC.h new file mode 100644 index 000000000..26c89d4cc --- /dev/null +++ b/include/rom_8077ABC.h @@ -0,0 +1,59 @@ +#ifndef GUARD_ROM_8077ABC_H +#define GUARD_ROM_8077ABC_H + +#include "sprite.h" +#include "task.h" + +u8 sub_8077ABC(u8, u8); +u8 sub_8077E44(u8 slot, u16 species, u8 a3); +u8 obj_id_for_side_relative_to_move(u8 side); +void oamt_set_x3A_32(struct Sprite *sprite, void(*callback)(struct Sprite *)); +void sub_8078314(struct Sprite *sprite); +void sub_8078364(struct Sprite *sprite); +void sub_8078458(struct Sprite *sprite); +void sub_80784A8(struct Sprite *sprite); +u8 battle_side_get_owner(u8); +u8 battle_side_get_owner(u8); +u8 battle_side_get_owner(u8 side); +u8 battle_side_get_owner(u8 slot); +u8 battle_side_get_owner(u8); +u8 battle_get_per_side_status(u8); +u8 battle_get_per_side_status(u8 slot); +u8 battle_get_side_with_given_state(u8); +u8 battle_get_side_with_given_state(u8); +u8 battle_get_side_with_given_state(u8 state); +u8 sub_8078874(u8); +bool8 sub_8078874(u8); +bool8 IsDoubleBattle(); +u8 IsDoubleBattle(void); +bool8 IsDoubleBattle(void); +void sub_8078914(); +u8 sub_80789BC(); +void sub_8078A5C(struct Sprite *sprite); +void sub_8078A5C(struct Sprite *sprite); +void obj_translate_based_on_private_1_2_3_4(struct Sprite *sprite); +bool8 sub_8078B5C(struct Sprite *sprite); +void sub_8078BB8(struct Sprite *sprite); +void sub_8078D44(struct Sprite *sprite); +void obj_id_set_rotscale(u8 sprite, s16, s16, u16); +bool8 sub_8078E38(); +void sub_8078E70(u8 sprite, u8); +void sub_8078F40(u8 sprite); +void sub_8078F9C(u8 sprite); +void sub_8079518(struct Sprite *sprite); +void sub_80796F8(u8 task); +void sub_80797EC(struct Task *task); +void sub_8079814(u8 taskId); +void sub_8079A64(u8 sprite); +u16 sub_8079B10(u8 sprite); +void sub_8079BF4(s16 *bottom, s16 *top, void *ptr); +void *sub_8079BFC(s16 bottom, s16 top); +void sub_8079E24(); +u8 sub_8079E90(u8 slot); +u8 battle_get_per_side_status_permutated(u8 slot); +void sub_807A784(u8 taskId); +void sub_807A850(struct Task *task, u8 taskId); +void sub_807A8D4(struct Sprite *sprite); +void sub_807A960(struct Sprite *sprite); + +#endif // GUARD_ROM_8077ABC_H diff --git a/include/rom_8094928.h b/include/rom_8094928.h new file mode 100644 index 000000000..fd4e58847 --- /dev/null +++ b/include/rom_8094928.h @@ -0,0 +1,10 @@ +#ifndef GUARD_ROM_8094928_H +#define GUARD_ROM_8094928_H + +void sub_8094978(u8, u8); +u8 sub_8094C20(u8); +void sub_8094C98(u8, u8); +u8 pokemon_order_func(u8); +void sub_8094E4C(void); + +#endif // GUARD_ROM_8094928_H diff --git a/include/rotating_gate.h b/include/rotating_gate.h new file mode 100644 index 000000000..6f4f38a9a --- /dev/null +++ b/include/rotating_gate.h @@ -0,0 +1,8 @@ +#ifndef GUARD_ROTATING_GATE_H +#define GUARD_ROTATING_GATE_H + +void RotatingGatePuzzleCameraUpdate(s16, s16); +void sub_80C8080(); +u32 CheckForRotatingGatePuzzleCollision(u8, s16, s16); + +#endif // GUARD_ROTATING_GATE_H diff --git a/include/safari_zone.h b/include/safari_zone.h index f491be2f1..0bee08a95 100644 --- a/include/safari_zone.h +++ b/include/safari_zone.h @@ -1,6 +1,8 @@ #ifndef GUARD_SAFARI_ZONE_H #define GUARD_SAFARI_ZONE_H +extern u8 gNumSafariBalls; + bool32 GetSafariZoneFlag(void); void SetSafariZoneFlag(void); void ResetSafariZoneFlag(void); diff --git a/include/script_menu.h b/include/script_menu.h index 7a504556e..458aad13d 100644 --- a/include/script_menu.h +++ b/include/script_menu.h @@ -7,6 +7,8 @@ struct MultichoiceListStruct u8 count; }; +extern const struct TextStruct gUnknown_083CE048[]; + bool8 sub_80B5054(u8 left, u8 top, u8 var3, u8 var4); bool8 sub_80B50B0(u8 left, u8 top, u8 var3, u8 var4, u8 var5); u16 GetStringWidthInTilesForScriptMenu(const u8 *str); diff --git a/include/script_movement.h b/include/script_movement.h new file mode 100644 index 000000000..e3cdc25b3 --- /dev/null +++ b/include/script_movement.h @@ -0,0 +1,8 @@ +#ifndef GUARD_SCRIPT_MOVEMENT_H +#define GUARD_SCRIPT_MOVEMENT_H + +bool8 exec_movement(u8, u8, u8, u8 *); +bool8 sub_80A212C(u8, u8, u8); +void sub_80A2178(void); + +#endif // GUARD_SCRIPT_MOVEMENT_H diff --git a/include/secret_base.h b/include/secret_base.h new file mode 100644 index 000000000..3ca5ab182 --- /dev/null +++ b/include/secret_base.h @@ -0,0 +1,15 @@ +#ifndef GUARD_SECRET_BASE_H +#define GUARD_SECRET_BASE_H + +void ResetSecretBases(void); +void sub_80BB970(struct MapEvents *); +u8 sub_80BBB24(void); +void sub_80BBCCC(u8); +void sub_80BC038(); +u8 sub_80BC050(); +void sub_80BC300(); +const u8 sub_80BCCA4(u8); +u8 *sub_80BCCE8(void); +void sub_80BD674(void *, u32, u8); + +#endif // GUARD_SECRET_BASE_H diff --git a/include/shop.h b/include/shop.h new file mode 100644 index 000000000..cca6091c9 --- /dev/null +++ b/include/shop.h @@ -0,0 +1,18 @@ +#ifndef GUARD_SHOP_H +#define GUARD_SHOP_H + +void sub_80B2E38(u8); +void HandleShopMenuQuit(u8); +void sub_80B2FA0(u8); +void BuyMenuDrawGraphics(void); +void sub_80B3240(void); +void sub_80B3270(void); +void BuyMenuDrawMapGraphics(void); +void sub_80B3764(int, int); +void sub_80B37EC(void); +void sub_80B40E8(u8); +void CreatePokemartMenu(void *); +void CreateDecorationShop1Menu(void *); +void CreateDecorationShop2Menu(void *); + +#endif // GUARD_SHOP_H diff --git a/include/slot_machine.h b/include/slot_machine.h new file mode 100644 index 000000000..c39aa7ca8 --- /dev/null +++ b/include/slot_machine.h @@ -0,0 +1,8 @@ +#ifndef GUARD_SLOT_MACHINE_H +#define GUARD_SLOT_MACHINE_H + +void PlaySlotMachine(u8, void *); +void sub_8104DA4(void); +u8 sub_8105BB4(u8, u8, s16); + +#endif // GUARD_SLOT_MACHINE_H diff --git a/include/starter_choose.h b/include/starter_choose.h index 008d1b14e..44ca8c34c 100644 --- a/include/starter_choose.h +++ b/include/starter_choose.h @@ -3,6 +3,11 @@ #include "sprite.h" +extern const u16 gBirchBagGrassPal[2][16]; +extern const u8 gBirchBagTilemap[]; +extern const u8 gBirchGrassTilemap[]; +extern const u8 gBirchHelpGfx[]; + u16 GetStarterPokemon(u16); void CB2_ChooseStarter(void); diff --git a/include/string_util.h b/include/string_util.h index f45c2741f..7a4bfa4c1 100644 --- a/include/string_util.h +++ b/include/string_util.h @@ -8,6 +8,8 @@ enum StringConvertMode STR_CONV_MODE_LEADING_ZEROS }; +extern const u8 gEmptyString_81E72B0[]; + u8 *StringCopy10(u8 *dest, const u8 *src); u8 *StringGetEnd10(u8 *str); u8 *StringCopy8(u8 *dest, const u8 *src); diff --git a/include/time_events.h b/include/time_events.h new file mode 100644 index 000000000..fd6d29f39 --- /dev/null +++ b/include/time_events.h @@ -0,0 +1,8 @@ +#ifndef GUARD_TIME_EVENTS_H +#define GUARD_TIME_EVENTS_H + +void UpdateMirageRnd(u16); +u8 IsMirageIslandPresent(void); +void UpdateBirchState(u16); + +#endif // GUARD_TIME_EVENTS_H diff --git a/include/title_screen.h b/include/title_screen.h index 304ec0540..91da38018 100644 --- a/include/title_screen.h +++ b/include/title_screen.h @@ -3,6 +3,8 @@ #include "sprite.h" +extern const u16 gUnknown_08393E64[]; + void SpriteCallback_VersionBannerLeft(struct Sprite *sprite); void SpriteCallback_VersionBannerRight(struct Sprite *sprite); void SpriteCallback_PressStartCopyrightBanner(struct Sprite *sprite); diff --git a/include/trader.h b/include/trader.h new file mode 100644 index 000000000..24a9f2a07 --- /dev/null +++ b/include/trader.h @@ -0,0 +1,6 @@ +#ifndef GUARD_TRADER_H +#define GUARD_TRADER_H + +void sub_81099CC(void); + +#endif // GUARD_TRADER_H diff --git a/include/tv.h b/include/tv.h index b1ed61a82..277d29750 100644 --- a/include/tv.h +++ b/include/tv.h @@ -1,9 +1,6 @@ -// -// Created by Scott Norton on 5/18/17. -// +#ifndef GUARD_TV_H +#define GUARD_TV_H -#ifndef POKERUBY_TV_H -#define POKERUBY_TV_H enum { TVSHOW_FAN_CLUB_LETTER = 1, @@ -20,4 +17,94 @@ enum TVSHOW_WORLD_OF_MASTERS, TVSHOW_MASS_OUTBREAK = 41, }; -#endif //POKERUBY_TV_H + +extern u8 *gUnknown_083D1464[3]; + +void ClearTVShowData(void); +u8 sub_80BDEAC(u8 *); +void sub_80BE028(void); +void sub_80BE074(void); +void sub_80BE138(TVShow *show); +void sub_80BE160(TVShow *show); +void sub_80BE160(TVShow *); +void sub_80BE188(void); +void sub_80BE320(void); +void StartMassOutbreak(void); +void sub_80BE5FC(void); +void sub_80BE65C(void); +void sub_80BE6A0(void); +void nullsub_21(void); +void sub_80BE778(void); +void sub_80BE8EC(u16); +void UpdateMassOutbreakTimeLeft(u16); +void sub_80BE97C(u8); +void sub_80BE9D4(); +void sub_80BEA50(u16); +void sub_80BEA5C(u16); +void sub_80BEA88(void); +void sub_80BEA88(void); +void sub_80BEB20(void); +int sub_80BEBC8(struct UnknownSaveStruct2ABC *arg0); +extern void sub_80BEBF4(void); +void sub_80BEC10(u8); +bool8 GetPriceReduction(u8); +bool8 IsPriceDiscounted(u8); +bool8 sub_80BEE48(u8); +void sub_80BEE84(u16); +size_t sub_80BF0B8(int); +bool8 sub_80BF1B4(u8); +void sub_80BF20C(void); +void sub_80BF334(void); +void sub_80BF3A4(void); +void sub_80BF3DC(void); +void sub_80BF46C(void); +void sub_80BF478(void); +void sub_80BF478(void); +void sub_80BF484(void); +void sub_80BF4BC(void); +void sub_80BF55C(TVShow tvShow[], u8 showidx); +void sub_80BF55C(TVShow tvShow[], u8 showidx); +void sub_80BF588(TVShow tvShows[]); +u16 sub_80BF674(u16 species); +void sub_80BF6D8(void); +s8 sub_80BF720(TVShow *); +s8 sub_80BF74C(TVShow tvShow[]); +bool8 sub_80BF77C(u16); +bool8 sub_80BF77C(u16); +u32 GetPlayerTrainerId(void); +void sub_80BFD44(u8 *, u32, u8); +u8 sub_80C004C(TVShow *tv1, TVShow *tv2, u8 idx); +u8 sub_80C00B4(TVShow *tv1, TVShow *tv2, u8 idx); +u8 sub_80C0134(TVShow *tv1, TVShow *tv2, u8 idx); +s8 sub_80C019C(TVShow tvShows[]); +void sub_80C01D4(void); +void sub_80C03A8(u8 showidx); +void sub_80C03C8(u16 species, u8 showidx); +void sub_80C0408(void); +bool8 sub_80C06E8(struct UnknownSaveStruct2ABC *arg0, struct UnknownSaveStruct2ABC *arg1, s8 arg2); +void TVShowConvertInternationalString(u8 *, u8 *, u8); +void DoTVShowTheNameRaterShow(void); +void DoTVShowPokemonTodaySuccessfulCapture(void); +void DoTVShowPokemonTodayFailedCapture(void); +void DoTVShowPokemonFanClubLetter(void); +void DoTVShowRecentHappenings(void); +void DoTVShowPokemonFanClubOpinions(void); +void nullsub_22(void); +void DoTVShowPokemonNewsMassOutbreak(void); +void DoTVShowPokemonAngler(void); +void DoTVShowTheWorldOfMasters(void); +void TVShowDone(void); +void UpdateTVScreensOnMap(int, int); +void ResetGabbyAndTy(void); +void TakeTVShowInSearchOfTrainersOffTheAir(void); +extern u8 GabbyAndTyGetBattleNum(void); +void sub_80C04A0(void); +void sub_80C0514(void *, u32, u8); +void DoTVShowBravoTrainerPokemonProfile(void); +void DoTVShowBravoTrainerBattleTowerProfile(void); +void DoTVShowTodaysSmartShopper(void); +void sub_80BE3BC(void); +void UpdateTVShowsPerDay(u16); +void sub_80C045C(); + +#endif // GUARD_TV_H diff --git a/include/unknown_task.h b/include/unknown_task.h new file mode 100644 index 000000000..dc07767d6 --- /dev/null +++ b/include/unknown_task.h @@ -0,0 +1,14 @@ +#ifndef GUARD_UNKNOWN_TASK_H +#define GUARD_UNKNOWN_TASK_H + +void remove_some_task(void); +void remove_some_task(void); +void dp12_8087EA4(void); +void dp12_8087EA4(void); +void sub_80895F8(u32 i, u32 i1, u32 i2); +void sub_80895F8(); +void sub_8089668(void); +void sub_8089668(); +void sub_8089944(int i, int i1, int i2, int i3, int i4, int i5, int i6); + +#endif // GUARD_UNKNOWN_TASK_H diff --git a/include/util.h b/include/util.h new file mode 100644 index 000000000..1851c2e82 --- /dev/null +++ b/include/util.h @@ -0,0 +1,13 @@ +#ifndef GUARD_UTIL_H +#define GUARD_UTIL_H + +#include "sprite.h" + +extern const u8 gMiscBlank_Gfx[]; +extern const u32 gBitTable[]; + +u8 CreateInvisibleSpriteWithCallback(void (*)(struct Sprite *)); +void StoreWordInTwoHalfwords(u16 *, u32); +void LoadWordFromTwoHalfwords(u16 *, u32 *); + +#endif // GUARD_UTIL_H diff --git a/include/wild_encounter.h b/include/wild_encounter.h index 33b7df7b9..a4485b08d 100644 --- a/include/wild_encounter.h +++ b/include/wild_encounter.h @@ -1,6 +1,31 @@ #ifndef GUARD_WILD_ENCOUNTER_H #define GUARD_WILD_ENCOUNTER_H +struct WildPokemon +{ + u8 minLevel; + u8 maxLevel; + u16 species; +}; + +struct WildPokemonInfo +{ + u8 encounterRate; + const struct WildPokemon *wildPokemon; +}; + +struct WildPokemonHeader +{ + u8 mapGroup; + u8 mapNum; + struct WildPokemonInfo *landMonsInfo; + struct WildPokemonInfo *waterMonsInfo; + struct WildPokemonInfo *rockSmashMonsInfo; + struct WildPokemonInfo *fishingMonsInfo; +}; + +extern struct WildPokemonHeader gWildMonHeaders[]; + void DisableWildEncounters(bool8 disabled); bool8 StandardWildEncounter(u16 a, u16 b); void RockSmashWildEncounter(void); diff --git a/src/bard_music.c b/src/bard_music.c index 43c2923d2..a5514e3f7 100644 --- a/src/bard_music.c +++ b/src/bard_music.c @@ -1,5 +1,4 @@ #include "global.h" -#include "asm.h" struct BardSound { diff --git a/src/battle_2.c b/src/battle_2.c index c147bdb95..451c4f108 100644 --- a/src/battle_2.c +++ b/src/battle_2.c @@ -1,22 +1,31 @@ #include "global.h" -#include "asm.h" +#include "abilities.h" #include "battle.h" +#include "battle_interface.h" +#include "battle_setup.h" #include "data2.h" +#include "item.h" +#include "link.h" #include "main.h" -#include "text.h" +#include "name_string_util.h" #include "palette.h" -#include "sprite.h" -#include "task.h" +#include "party_menu.h" +#include "pokeball.h" +#include "pokedex.h" #include "pokemon.h" -#include "species.h" -#include "link.h" -#include "name_string_util.h" -#include "battle_setup.h" #include "rng.h" -#include "sound.h" +#include "rom3.h" +#include "rom_8077ABC.h" +#include "rom_8094928.h" #include "songs.h" +#include "sound.h" +#include "species.h" +#include "sprite.h" +#include "task.h" +#include "text.h" #include "trig.h" -#include "abilities.h" +#include "unknown_task.h" +#include "util.h" struct UnknownStruct6 { @@ -87,8 +96,6 @@ struct UnknownStruct13 extern const u16 gUnknown_08D004E0[]; extern const struct MonCoords gCastformFrontSpriteCoords[]; -extern const struct BaseStats gBaseStats[]; -extern const u32 gBitTable[]; extern u8 ewram[]; #define ewram0 (*(struct UnknownStruct7 *)(ewram + 0x0)) @@ -212,86 +219,6 @@ extern u32 gBattleMoveDamage; extern struct BattlePokemon gBattleMons[]; extern u8 gBattleMoveFlags; -extern void sub_800B858(void); -extern void dp12_8087EA4(void); -extern void sub_80895F8(); -extern void sub_800D6D4(); -extern void sub_800DAB8(); -extern void sub_800E23C(); -extern void setup_poochyena_battle(); -extern void SetWildMonHeldItem(void); -extern void AdjustFriendship(struct Pokemon *, u8); -extern void sub_800DE30(u8); -extern void sub_800B950(void); -extern u8 battle_load_something(); -extern void OpenPartyMenu(); -extern void sub_8089668(); -extern void sub_800D74C(); -extern void sub_804777C(u8); -extern void sub_8043DFC(); -extern u8 CreateInvisibleSpriteWithCallback(void (*)(struct Sprite *)); -extern void dp01_build_cmdbuf_x00_a_b_0(u8 a, u8 b, u8 c); -extern void dp01_build_cmdbuf_x04_4_4_4(u8 a); -extern void dp01_build_cmdbuf_x07_7_7_7(u8 a); -extern void dp01_build_cmdbuf_x12_a_bb(u8 a, u8 b, u16 c); -extern void dp01_build_cmdbuf_x2E_a(u8 a, u8 b); -extern void dp01_build_cmdbuf_x2F_2F_2F_2F(u8 a); -extern void dp01_build_cmdbuf_x30_TODO(u8 a, u8 *b, u8 c); -extern void dp01_battle_side_mark_buffer_for_execution(); -extern u8 GetNationalPokedexFlag(); -extern void sub_800C704(u8, u8, u8); -extern u8 sub_8018324(); -extern u8 sub_801A02C(); -extern u8 sub_8015DFC(); -extern u8 sub_8016558(); -extern u8 sub_80173A4(); -extern u8 sub_80170DC(); -extern u8 ItemId_GetHoldEffect(u16); -extern void sub_8094C98(); - -void InitBattle(void); -void sub_800EC9C(void); -void sub_800F104(void); -void sub_800F298(void); -void sub_800F808(void); -void sub_800F838(struct Sprite *); -u8 CreateNPCTrainerParty(struct Pokemon *, u16); -void sub_800FCFC(void); -void sub_8010824(void); -void sub_80101B8(void); -void c2_081284E0(void); -void sub_8010278(struct Sprite *); -void sub_80102AC(struct Sprite *); -void nullsub_37(struct Sprite *); -void sub_8010320(struct Sprite *); -void sub_8010494(struct Sprite *); -void sub_801053C(struct Sprite *); -void oac_poke_ally_(struct Sprite *); -void nullsub_86(struct Sprite *); -void objc_dp11b_pingpong(struct Sprite *); -void sub_8010874(void); -void bc_8012FAC(void); -void bc_load_battlefield(void); -void sub_8011384(void); -void bc_801333C(void); -void bc_battle_begin_message(void); -void bc_8013568(void); -void sub_8011800(void); -void sub_8011834(void); -void bc_801362C(void); -void sub_8011970(void); -void sub_80119B4(void); -void sub_8011B00(void); -void sub_8011E8C(void); -void sub_8012324(void); -void sub_8012FBC(u8, u8); -u8 b_first_side(); -void sub_801365C(u8); -void sub_801377C(void); -void sub_80138F0(void); -void b_cancel_multi_turn_move_maybe(u8); -void b_std_message(); -void sub_80156DC(); void sub_800E7C4(void) { diff --git a/src/battle_6.c b/src/battle_6.c index bc540ce72..866a66ae3 100644 --- a/src/battle_6.c +++ b/src/battle_6.c @@ -1,5 +1,6 @@ #include "global.h" -#include "asm.h" +#include "battle.h" +#include "battle_message.h" #include "menu_cursor.h" #include "text.h" diff --git a/src/battle_7.c b/src/battle_7.c index 50f348406..9c8b86fb4 100644 --- a/src/battle_7.c +++ b/src/battle_7.c @@ -1,5 +1,4 @@ #include "global.h" -#include "asm.h" #include "battle.h" #include "battle_anim.h" #include "battle_interface.h" @@ -10,6 +9,8 @@ #include "m4a.h" #include "palette.h" #include "pokemon.h" +#include "rom_8077ABC.h" +#include "rom_8094928.h" #include "songs.h" #include "sound.h" #include "species.h" diff --git a/src/battle_811DA74.c b/src/battle_811DA74.c index 439e6b3c6..b855f1535 100644 --- a/src/battle_811DA74.c +++ b/src/battle_811DA74.c @@ -1,18 +1,24 @@ #include "global.h" -#include "asm.h" #include "battle.h" #include "battle_interface.h" #include "data2.h" +#include "battle_811DA74.h" +#include "battle_anim_813F0F4.h" #include "link.h" #include "m4a.h" #include "main.h" #include "palette.h" +#include "pokeball.h" #include "pokemon.h" +#include "rom3.h" +#include "rom_8077ABC.h" #include "sound.h" #include "songs.h" #include "sprite.h" #include "string_util.h" +#include "task.h" #include "text.h" +#include "util.h" struct UnknownStruct1 { @@ -35,7 +41,6 @@ struct UnknownStruct5 u8 unk0_7:1; }; -extern u32 gBitTable[]; extern u16 gBattleTypeFlags; extern struct UnknownStruct5 gUnknown_020238C8; @@ -113,8 +118,6 @@ extern void c3_0802FDF4(u8); extern void sub_8031F88(); extern void sub_8141828(); extern void c2_8011A1C(void); -extern void dp01_prepare_buffer_wireless_probably(); -extern void dp01_build_cmdbuf_x1D_1D_numargs_varargs(int, u16, void *); void sub_811DA94(void); void sub_811E0A0(void); @@ -127,6 +130,7 @@ void sub_811FF30(void); void sub_812071C(u8); void sub_81208E0(void); + void nullsub_74(void) { } diff --git a/src/battle_ai.c b/src/battle_ai.c index 4f00cc7cb..cb8023251 100644 --- a/src/battle_ai.c +++ b/src/battle_ai.c @@ -1,7 +1,6 @@ #include "global.h" #include "battle_ai.h" #include "abilities.h" -#include "asm.h" #include "battle.h" #include "battle_move_effects.h" #include "data2.h" @@ -9,11 +8,9 @@ #include "moves.h" #include "pokemon.h" #include "rng.h" +#include "rom_8077ABC.h" #include "species.h" - -extern void sub_801CAF8(u8, u8); - -extern void move_effectiveness_something(u16, u8, u8); +#include "util.h" extern u16 gBattleTypeFlags; extern u16 gBattleWeather; @@ -35,9 +32,7 @@ extern struct BattlePokemon gUnknown_02024A8C[]; extern u8 gUnknown_030042E0[]; extern u8 gCritMultiplier; extern u16 gTrainerBattleOpponent; -extern u32 gBitTable[]; extern u8 *BattleAIs[]; -extern struct BaseStats gBaseStats[]; /* gAIScriptPtr is a pointer to the next battle AI cmd command to read. diff --git a/src/battle_anim.c b/src/battle_anim.c index bdb34365f..90e5c97c3 100644 --- a/src/battle_anim.c +++ b/src/battle_anim.c @@ -1,9 +1,14 @@ #include "global.h" #include "battle_anim.h" -#include "asm.h" +#include "battle.h" +#include "battle_anim_80CA710.h" +#include "battle_interface.h" +#include "contest.h" #include "decompress.h" #include "m4a.h" +#include "main.h" #include "palette.h" +#include "rom_8077ABC.h" #include "sound.h" #include "sprite.h" #include "task.h" @@ -57,20 +62,6 @@ extern const struct SpriteSheet gBattleAnimPicTable[]; extern const struct SpritePalette gBattleAnimPaletteTable[]; extern const struct BattleAnimBackground gBattleAnimBackgroundTable[]; -extern void sub_8079E24(); -extern void sub_8043EB4(); -extern u8 sub_8079E90(); -extern u8 sub_8077ABC(); -extern u8 sub_8078874(u8); -extern void sub_8078914(); -extern u8 sub_80AEB1C(); -extern void sub_80E4EF8(int, int, int, int, u16, u8, int); -extern u8 sub_80789BC(); -extern void sub_80AB2AC(void); -extern void sub_800D7B8(void); -extern u8 obj_id_for_side_relative_to_move(); -extern u8 battle_get_per_side_status_permutated(); - static void RunAnimScriptCommand(void); static void ScriptCmd_loadsprite(void); static void ScriptCmd_unloadsprite(void); diff --git a/src/battle_anim_80A7E7C.c b/src/battle_anim_80A7E7C.c index 285a782f3..12b53d7d9 100644 --- a/src/battle_anim_80A7E7C.c +++ b/src/battle_anim_80A7E7C.c @@ -1,5 +1,6 @@ #include "global.h" #include "battle_anim.h" +#include "rom_8077ABC.h" #include "sprite.h" #include "task.h" #include "trig.h" @@ -15,20 +16,6 @@ extern u16 gUnknown_0202F7BC; extern u8 gBattleAnimPlayerMonIndex; extern u8 gBattleAnimEnemyMonIndex; -extern u8 obj_id_for_side_relative_to_move(u8 side); -extern void DestroyAnimVisualTask(u8 task); -extern u8 battle_get_side_with_given_state(u8 state); -extern u8 battle_side_get_owner(u8 side); -extern void oamt_set_x3A_32(struct Sprite *sprite, void(*callback)(struct Sprite*)); -extern void sub_8078458(struct Sprite *sprite); -extern void move_anim_8072740(struct Sprite *sprite); -extern void sub_8078A5C(struct Sprite *sprite); -extern void sub_80784A8(struct Sprite *sprite); -extern void sub_8078E70(u8 sprite, u8); -extern void obj_id_set_rotscale(u8 sprite, int, int, u16); -extern void sub_8078F40(u8 sprite); -extern void sub_8078F9C(u8 sprite); - static void sub_80A7EF0(u8 task); static void sub_80A808C(u8 task); static void sub_80A81D8(u8 task); diff --git a/src/battle_anim_81258BC.c b/src/battle_anim_81258BC.c index 42a685f4a..fe4e9bd38 100644 --- a/src/battle_anim_81258BC.c +++ b/src/battle_anim_81258BC.c @@ -1,7 +1,9 @@ #include "global.h" -#include "asm.h" -#include "text.h" +#include "battle_anim_81258BC.h" +#include "battle.h" +#include "battle_message.h" #include "menu_cursor.h" +#include "text.h" extern struct Window gUnknown_03004210; extern u8 gUnknown_020238CC[]; @@ -11,12 +13,10 @@ extern const u8 gUnknown_08400CBB[]; extern u8 gUnknown_02024A60; extern const u8 gUnknown_08400D15[]; -extern void* gUnknown_03004330[]; +extern void *gUnknown_03004330[]; extern u16 gUnknown_030042A0; extern u16 gUnknown_030042A4; -void bx_battle_menu_t6_2(void); - #if ENGLISH #define SUB_812BB10_TILE_DATA_OFFSET 440 #elif GERMAN diff --git a/src/battle_interface.c b/src/battle_interface.c index c5d07e8e9..042861c22 100644 --- a/src/battle_interface.c +++ b/src/battle_interface.c @@ -1,16 +1,18 @@ #include "global.h" -#include "asm.h" #include "battle.h" -#include "sprite.h" -#include "string_util.h" -#include "text.h" +#include "battle_interface.h" #include "decompress.h" -#include "sound.h" -#include "songs.h" -#include "battle.h" #include "palette.h" #include "pokedex.h" -#include "battle_interface.h" +#include "pokemon.h" +#include "rom_8077ABC.h" +#include "safari_zone.h" +#include "songs.h" +#include "sound.h" +#include "sprite.h" +#include "string_util.h" +#include "task.h" +#include "text.h" struct UnknownStruct5 { @@ -39,9 +41,7 @@ extern u8 gUnknown_02024A72[]; extern u8 gUnknown_03004340[]; extern u16 gBattleTypeFlags; -extern u8 gNumSafariBalls; -extern u32 gExperienceTables[8][101]; extern const struct SpriteTemplate gSpriteTemplate_820A4EC[]; extern const struct SpriteTemplate gSpriteTemplate_820A51C[]; extern const struct SpriteTemplate gSpriteTemplate_820A54C; @@ -71,22 +71,17 @@ extern const u8 gUnknown_0820A81C[]; extern const u8 gUnknown_0820A864[]; extern const u8 gUnknown_0820A89C[]; extern const u8 gUnknown_0820A8B0[]; -extern const struct BaseStats gBaseStats[]; extern const u8 BattleText_SafariBalls[]; extern const u8 BattleText_SafariBallsLeft[]; extern const u8 BattleText_HighlightRed[]; extern const u8 gUnknown_08D1216C[][32]; -extern const u8 *const gNatureNames[]; extern const u16 gBattleInterfaceStatusIcons_DynPal[]; #define ABS(n) ((n) >= 0 ? (n) : -(n)) // Used for computing copy destination addresses #define MACRO1(n) ((n) - (n) / 8 * 8) + 64 * ((n) / 8) -extern int sub_8040D3C(); -extern void load_gfxc_health_bar(); - static void sub_8043D5C(struct Sprite *); static const void *sub_8043CDC(u8); static void sub_8044210(u8, s16, u8); diff --git a/src/battle_party_menu.c b/src/battle_party_menu.c index 7b4eb0258..c02290e80 100644 --- a/src/battle_party_menu.c +++ b/src/battle_party_menu.c @@ -1,10 +1,16 @@ #include "global.h" #include "battle_party_menu.h" -#include "asm.h" +#include "battle.h" +#include "item_menu.h" #include "main.h" #include "menu.h" +#include "menu_helpers.h" #include "palette.h" +#include "party_menu.h" #include "pokemon.h" +#include "pokemon_summary_screen.h" +#include "rom_8077ABC.h" +#include "rom_8094928.h" #include "songs.h" #include "sound.h" #include "string_util.h" @@ -36,41 +42,6 @@ struct Unk201B000 #define ewram1B000 (*(struct Unk201B000 *)(ewram + 0x1B000)) #define UNK_201606C_ARRAY (ewram + 0x1606C) // lazy define but whatever. -extern u8 IsLinkDoubleBattle(void); -extern void TryCreatePartyMenuMonIcon(u8, u8, struct Pokemon *); -extern void LoadHeldItemIconGraphics(void); -extern void CreateHeldItemIcons_806DC34(); -extern u8 sub_806BD58(u8, u8); -extern void PartyMenuPrintMonsLevelOrStatus(void); -extern void PrintPartyMenuMonNicknames(void); -extern void PartyMenuTryPrintMonsHP(void); -extern void nullsub_13(void); -extern void PartyMenuDrawHPBars(void); -extern u8 sub_806B58C(u8); -extern u8 GetItemEffectType(); -extern void sub_806E750(u8, const struct PartyPopupMenu *, const struct PartyMenuItem *, int); -extern u16 sub_806BD80(); -extern u8 sub_806CA38(); -extern void sub_806D5A4(void); -extern void sub_802E414(void); -extern void sub_80A6DCC(void); -extern void sub_806AF4C(); -extern u8 sub_80F9344(void); -extern u8 sub_806B124(void); -extern void sub_806C994(); -extern void sub_806BF74(); -extern void sub_806AEDC(void); -extern TaskFunc PartyMenuGetPopupMenuFunc(u8, const struct PartyPopupMenu *, const struct PartyMenuItem *, u8); -extern void ShowPokemonSummaryScreen(struct Pokemon *, u8, u8, void (*)(u8), int); -extern void sub_806E7D0(u8, const struct PartyPopupMenu *); -extern u8 *sub_8040D08(); -extern void sub_8040B8C(void); -extern void sub_806E6F0(); -extern void sub_806D538(); -extern void nullsub_14(); -extern void OpenPartyMenu(); -extern u8 sub_803FBBC(void); - extern u16 gScriptItemId; extern u8 gPlayerPartyCount; extern u8 gUnknown_02024A68; @@ -84,11 +55,13 @@ extern u8 gUnknown_02038473; extern u8 gUnknown_020384F0; extern void (*gUnknown_03004AE4)(); //don't know types yet extern struct PokemonStorage gPokemonStorage; +extern void nullsub_14(); void sub_8094C98(u8, u8); +u8 pokemon_order_func(u8); + static void sub_8094998(u8[3], u8); static void sub_8094A74(u8[3], u8, u32); -u8 pokemon_order_func(u8); static void sub_8094D60(void); static void Task_809527C(u8); static void Task_80952B4(u8); diff --git a/src/battle_records.c b/src/battle_records.c index 35fd3284b..cf86787f0 100644 --- a/src/battle_records.c +++ b/src/battle_records.c @@ -1,11 +1,8 @@ #include "global.h" +#include "battle_records.h" #include "menu.h" #include "strings2.h" -void PrintLinkBattleWinsLossesDraws(void *); - -void PrintLinkBattleRecord(void *, u8); - void ShowLinkBattleRecords(void) { s32 i; MenuDrawTextWindow(1, 0, 28, 18); diff --git a/src/battle_setup.c b/src/battle_setup.c index cb99bf5f5..e4e83dfa1 100644 --- a/src/battle_setup.c +++ b/src/battle_setup.c @@ -1,14 +1,17 @@ #include "global.h" #include "battle_setup.h" -#include "asm.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" @@ -19,6 +22,7 @@ #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" @@ -33,9 +37,6 @@ extern u16 gScriptResult; extern void (*gFieldCallback)(void); -extern struct Pokemon gEnemyParty[]; -extern struct Pokemon gPlayerParty[]; - EWRAM_DATA u16 gTrainerBattleMode = 0; EWRAM_DATA u16 gTrainerBattleOpponent = 0; EWRAM_DATA u16 gTrainerMapObjectLocalId = 0; diff --git a/src/berry.c b/src/berry.c index 257248e5c..d6fbb955e 100644 --- a/src/berry.c +++ b/src/berry.c @@ -1,8 +1,10 @@ #include "global.h" #include "berry.h" -#include "asm.h" #include "field_control_avatar.h" +#include "field_map_obj.h" +#include "fieldmap.h" #include "item.h" +#include "item_menu.h" #include "items.h" #include "main.h" #include "rng.h" diff --git a/src/berry_tag_screen.c b/src/berry_tag_screen.c index 394a3691b..5647d4593 100644 --- a/src/berry_tag_screen.c +++ b/src/berry_tag_screen.c @@ -1,11 +1,13 @@ #include "global.h" #include "berry_tag_screen.h" -#include "asm.h" #include "berry.h" #include "decompress.h" +#include "field_map_obj.h" +#include "item_menu.h" #include "items.h" #include "main.h" #include "menu.h" +#include "menu_helpers.h" #include "palette.h" #include "rom4.h" #include "songs.h" diff --git a/src/bike.c b/src/bike.c index d7175b5e0..f37eb2144 100644 --- a/src/bike.c +++ b/src/bike.c @@ -1,8 +1,8 @@ #include "global.h" #include "bike.h" -#include "asm.h" #include "field_map_obj.h" #include "field_player_avatar.h" +#include "fieldmap.h" #include "flags.h" #include "global.fieldmap.h" #include "metatile_behavior.h" diff --git a/src/birch_pc.c b/src/birch_pc.c index f01107b3d..5fb6427c3 100644 --- a/src/birch_pc.c +++ b/src/birch_pc.c @@ -1,5 +1,4 @@ #include "global.h" -#include "asm.h" #include "event_data.h" #include "field_message_box.h" #include "pokedex.h" diff --git a/src/braille_puzzles.c b/src/braille_puzzles.c index 2ee4f91bb..4de945b9c 100644 --- a/src/braille_puzzles.c +++ b/src/braille_puzzles.c @@ -1,10 +1,11 @@ #include "global.h" #include "braille_puzzles.h" -#include "asm.h" #include "event_data.h" #include "field_camera.h" #include "field_effect.h" +#include "fieldmap.h" #include "flags.h" +#include "main.h" #include "map_obj_lock.h" #include "menu.h" #include "rom6.h" diff --git a/src/cable_club.c b/src/cable_club.c index 45fb347f3..13ae65322 100644 --- a/src/cable_club.c +++ b/src/cable_club.c @@ -1,5 +1,5 @@ #include "global.h" -#include "asm.h" +#include "cable_club.h" #include "field_message_box.h" #include "link.h" #include "main.h" @@ -20,20 +20,9 @@ extern u8 gFieldLinkPlayerCount; extern u8 gUnknown_081A4932[]; extern const u8 gUnknown_081A4975[]; -void sub_8082D4C(); -void sub_8082D60(u8, u8); -u16 sub_8082D9C(u8, u8); -u32 sub_8082DF4(u8); -u32 sub_8082E28(u8); -u32 sub_8082EB8(u8); -void sub_8082FEC(u8 taskId); static void sub_80830E4(u8 taskId); -void sub_8083188(u8 taskId); static void sub_8083288(u8 taskId); static void sub_8083314(u8 taskId); -void sub_80833C4(u8 taskId); -void sub_8083418(u8 taskId); -u8 sub_8083444(u8 taskId); void sub_808303C(u8 taskId) { s32 linkPlayerCount; diff --git a/src/calculate_base_damage.c b/src/calculate_base_damage.c index 7868a2c67..f3799ab66 100644 --- a/src/calculate_base_damage.c +++ b/src/calculate_base_damage.c @@ -16,9 +16,7 @@ #include "text.h" extern u8 gPlayerPartyCount; -extern struct Pokemon gPlayerParty[6]; extern u8 gEnemyPartyCount; -extern struct Pokemon gEnemyParty[6]; extern u16 unk_20160BC[]; extern struct SecretBaseRecord gSecretBaseRecord; @@ -36,21 +34,10 @@ extern u16 gTrainerBattleOpponent; extern struct PokemonStorage gPokemonStorage; extern u8 gBadEggNickname[]; -extern u32 gBitTable[]; -extern struct BaseStats gBaseStats[]; extern struct SpriteTemplate gSpriteTemplate_8208288[]; -extern u8 gTrainerClassToPicIndex[]; -extern u8 gTrainerClassToNameIndex[]; extern u8 gSecretBaseTrainerClasses[]; -extern u8 gUnknown_08208238[]; -extern u8 gUnknown_0820823C[]; -extern u8 gStatStageRatios[]; extern u8 gHoldEffectToType[][2]; -extern u8 battle_side_get_owner(u8); -extern u8 sub_8018324(u8, u8, u8, u8, u16); -extern u8 sub_803C348(u8); - #define APPLY_STAT_MOD(var, mon, stat, statIndex) \ { \ (var) = (stat) * (gStatStageRatios)[(mon)->statStages[(statIndex)] * 2]; \ diff --git a/src/clear_save_data_menu.c b/src/clear_save_data_menu.c index 690ce3f55..498562fe0 100644 --- a/src/clear_save_data_menu.c +++ b/src/clear_save_data_menu.c @@ -10,8 +10,6 @@ #include "strings2.h" #include "task.h" -extern const struct MenuAction gMenuYesNoItems[]; - static void VBlankCB_ClearSaveDataScreen(void); static void Task_InitMenu(u8); static void Task_ProcessMenuInput(u8); diff --git a/src/clock.c b/src/clock.c index b263e99ae..1f2aac9fd 100644 --- a/src/clock.c +++ b/src/clock.c @@ -1,21 +1,18 @@ #include "global.h" #include "clock.h" #include "berry.h" +#include "dewford_trend.h" #include "event_data.h" +#include "field_specials.h" +#include "field_weather.h" #include "lottery_corner.h" #include "main.h" #include "rom4.h" #include "rtc.h" +#include "time_events.h" +#include "tv.h" #include "wallclock.h" -extern void UpdateDewfordTrendPerDay(u16); -extern void UpdateTVShowsPerDay(u16); -extern void UpdateWeatherPerDay(u16); -extern void UpdatePartyPokerusTime(u16); -extern void UpdateMirageRnd(u16); -extern void UpdateBirchState(u16); -extern void SetShoalItemFlag(u16); - static void InitTimeBasedEvents(void); static void UpdatePerDay(struct Time *time); static void UpdatePerMinute(struct Time *time); diff --git a/src/contest_painting.c b/src/contest_painting.c index d7bacb905..eddcc87c1 100644 --- a/src/contest_painting.c +++ b/src/contest_painting.c @@ -1,6 +1,6 @@ #include "global.h" #include "contest_painting.h" -#include "asm.h" +#include "cute_sketch.h" #include "data2.h" #include "decompress.h" #include "main.h" @@ -11,6 +11,7 @@ #include "string_util.h" #include "strings.h" #include "text.h" +#include "unknown_task.h" extern u8 unk_2000000[]; extern u8 gUnknown_03000750; @@ -105,11 +106,6 @@ static void VBlankCB_ContestPainting(void); void sub_8106B90(); //should be static static void sub_8107090(u8 arg0, u8 arg1); -extern void sub_80FC7A0(struct Unk03005E20*); -extern void sub_80FDA18(struct Unk03005E20*); -extern void sub_80FD8CC(struct Unk03005E20*); -extern void *species_and_otid_get_pal(); - __attribute__((naked)) void sub_8106630(u32 arg0) { diff --git a/src/coord_event_weather.c b/src/coord_event_weather.c index f033e5391..9c5a1ca4d 100644 --- a/src/coord_event_weather.c +++ b/src/coord_event_weather.c @@ -1,5 +1,6 @@ #include "global.h" -#include "asm.h" +#include "coord_event_weather.h" +#include "field_weather.h" struct CoordEventWeather { diff --git a/src/credits.c b/src/credits.c index c8de577fc..a7d6191e6 100644 --- a/src/credits.c +++ b/src/credits.c @@ -1,8 +1,9 @@ #include "global.h" -#include "asm.h" #include "data2.h" #include "decompress.h" #include "event_data.h" +#include "hall_of_fame.h" +#include "intro_credits_graphics.h" #include "m4a.h" #include "main.h" #include "menu.h" @@ -13,6 +14,7 @@ #include "sound.h" #include "species.h" #include "starter_choose.h" +#include "task.h" #include "trig.h" asm(".set REG_BASE, 0x4000000"); @@ -21,8 +23,6 @@ asm(".set OFFSET_REG_BLDALPHA, 0x52"); asm(".set REG_BLDCNT, REG_BASE + OFFSET_REG_BLDCNT"); asm(".set REG_BLDALPHA, REG_BASE + OFFSET_REG_BLDALPHA"); -extern void *species_and_otid_get_pal(u32, u16, u16); - enum { PAGE_TITLE, @@ -187,11 +187,6 @@ extern s16 gUnknown_0203935C; extern u8 gReservedSpritePaletteCount; -// data/starter_choose -extern u16 gBirchBagGrassPal[32]; -extern u8 gBirchGrassTilemap[]; -extern u8 gBirchHelpGfx[]; - // data/hall_of_fame extern void *gUnknown_0840B5A0[]; @@ -211,14 +206,6 @@ extern const union AnimCmd *const gSpriteAnimTable_0840CA54[]; extern const union AnimCmd *const gSpriteAnimTable_0840CA94[]; extern struct SpriteTemplate gSpriteTemplate_840CAEC; -// data/intro_credits_graphics -extern const struct SpriteSheet gIntro2BrendanSpriteSheet; -extern const struct SpriteSheet gIntro2MaySpriteSheet; -extern const struct SpriteSheet gIntro2BicycleSpriteSheet; -extern const struct SpritePalette gIntro2SpritePalettes[]; -extern const struct SpriteSheet gUnknown_08416E24; -extern const struct SpriteSheet gUnknown_08416E34; - // graphics extern u8 gCreditsCopyrightEnd_Gfx[]; extern u16 gIntroCopyright_Pal[16]; @@ -246,7 +233,7 @@ static void sub_8145128(u16, u16, u16); static void sub_81452D0(u16 arg0, u16 palette); static void spritecb_player_8145378(struct Sprite *sprite); static void spritecb_rival_8145420(struct Sprite *sprite); -static u8 sub_81456B4(u16 nationalNum, u16 x, u16 y, u16 position); +static u8 sub_81456B4(u16 species, u16 x, u16 y, u16 position); static void sub_81458DC(void); static void vblank_8143948(void) @@ -461,7 +448,7 @@ void task_a_8143D04(u8 taskIdA) gReservedSpritePaletteCount = 8; LZ77UnCompVram(&gBirchHelpGfx, (void *)VRAM); LZ77UnCompVram(&gBirchGrassTilemap, (void *)(VRAM + 0x3800)); - LoadPalette(gBirchBagGrassPal + 1, 1, 31 * 2); + LoadPalette(gBirchBagGrassPal[0] + 1, 1, 31 * 2); for (i = 0; i < 0x800; i++) HALL_OF_FAME_SHEET_0[i] = 0x11; @@ -1508,7 +1495,7 @@ void spritecb_81454E0(struct Sprite *sprite) { static u8 sub_81456B4(u16 species, u16 x, u16 y, u16 position) { u32 personality; - void *palette; + const u16 *palette; u8 spriteId; u8 spriteId2; diff --git a/src/daycare.c b/src/daycare.c index 381450a0b..cded18207 100755 --- a/src/daycare.c +++ b/src/daycare.c @@ -1,9 +1,9 @@ #include "global.h" +#include "daycare.h" #include "pokemon.h" #include "species.h" #include "items.h" #include "string_util.h" -#include "asm.h" extern u8 gLastFieldPokeMenuOpened; diff --git a/src/decompress.c b/src/decompress.c index 37aa1e8d5..1d38447b5 100644 --- a/src/decompress.c +++ b/src/decompress.c @@ -1,6 +1,5 @@ #include "global.h" #include "decompress.h" -#include "asm.h" #include "data2.h" #include "species.h" #include "text.h" diff --git a/src/decoration.c b/src/decoration.c index 6974f7c92..a60870ab8 100644 --- a/src/decoration.c +++ b/src/decoration.c @@ -1,5 +1,5 @@ #include "global.h" -#include "asm.h" +#include "main.h" #include "map_object_constants.h" #include "rom4.h" #include "sound.h" @@ -12,6 +12,7 @@ #include "palette.h" #include "field_player_avatar.h" #include "field_camera.h" +#include "field_fadetransition.h" #include "fieldmap.h" #include "metatile_behavior.h" #include "event_data.h" diff --git a/src/decoration_inventory.c b/src/decoration_inventory.c index 6463f50dc..35ba7e228 100644 --- a/src/decoration_inventory.c +++ b/src/decoration_inventory.c @@ -100,7 +100,7 @@ bool8 sub_8134074(u8 decorIdx) return TRUE; } -bool8 sub_81340A8(u8 decorIdx) +s8 sub_81340A8(u8 decorIdx) { u8 i; u8 invIdx; diff --git a/src/dewford_trend.c b/src/dewford_trend.c index e4ce0c0c7..aaf4dd66a 100644 --- a/src/dewford_trend.c +++ b/src/dewford_trend.c @@ -1,6 +1,5 @@ #include "global.h" #include "dewford_trend.h" -#include "asm.h" #include "easy_chat.h" #include "event_data.h" #include "link.h" diff --git a/src/diploma.c b/src/diploma.c index 80adac8f7..ba7de58aa 100644 --- a/src/diploma.c +++ b/src/diploma.c @@ -1,5 +1,5 @@ #include "global.h" -#include "asm.h" +#include "diploma.h" #include "main.h" #include "menu.h" #include "palette.h" @@ -10,6 +10,7 @@ #include "strings2.h" #include "task.h" #include "text.h" +#include "unknown_task.h" static void VBlankCB(void); static void MainCB2(void); diff --git a/src/easy_chat.c b/src/easy_chat.c index e43ba751f..cc2cd7030 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -1,6 +1,5 @@ #include "global.h" #include "easy_chat.h" -#include "asm.h" #include "data2.h" #include "event_data.h" #include "field_message_box.h" @@ -11,17 +10,9 @@ #include "strings2.h" #include "text.h" -u8 sub_80EB37C(u16); -u8 sub_80EB8C0(void); -u8 sub_80EB868(u8); -u16 sub_80EAE88(u8); -void sub_80EB890(u8); -u16 sub_80EB784(u16 group); -u8 sub_80EAD7C(u8 group); static bool8 sub_80EB680(u16 *, u16, u16, u16); static u16 sub_80EB9D8(void); static u16 sub_80EB960(void); -u16 sub_80EB72C(u16); extern void *gEasyChatGroupWords[]; extern const u8 gEasyChatGroupSizes[]; diff --git a/src/field_camera.c b/src/field_camera.c index df5ccc301..1aed1549b 100644 --- a/src/field_camera.c +++ b/src/field_camera.c @@ -1,9 +1,9 @@ #include "global.h" #include "field_camera.h" -#include "asm.h" -#include "asm_fieldmap.h" #include "berry.h" #include "field_player_avatar.h" +#include "fieldmap.h" +#include "rotating_gate.h" #include "sprite.h" #include "text.h" diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c index 8220a144b..2d8140be5 100644 --- a/src/field_control_avatar.c +++ b/src/field_control_avatar.c @@ -1,17 +1,25 @@ #include "global.h" #include "field_control_avatar.h" -#include "asm.h" #include "battle_setup.h" #include "bike.h" +#include "coord_event_weather.h" +#include "daycare.h" #include "event_data.h" +#include "field_fadetransition.h" #include "field_player_avatar.h" +#include "field_poison.h" +#include "field_specials.h" +#include "fieldmap.h" #include "flags.h" +#include "item_menu.h" #include "metatile_behavior.h" #include "rom4.h" #include "safari_zone.h" #include "script.h" +#include "secret_base.h" #include "songs.h" #include "sound.h" +#include "start_menu.h" #include "trainer_see.h" #include "vars.h" #include "wild_encounter.h" @@ -22,7 +30,6 @@ struct Coords32 s32 y; }; -extern const struct Coords32 gUnknown_0821664C[]; extern u16 gScriptLastTalked; extern u16 gScriptFacing; extern struct LinkPlayerMapObject gLinkPlayerMapObjects[]; @@ -82,14 +89,10 @@ static u8 *TryGetFieldMoveScript(struct MapPosition *, u8, u8); static bool32 sub_8068770(void); static bool32 sub_80687A4(void); static bool8 sub_80687E4(struct MapPosition *, u16, u16); -bool8 mapheader_trigger_activate_at__run_now(struct MapPosition *); -bool8 sub_8068870(u16 a); -bool8 sub_8068894(void); static void happiness_algorithm_step(void); static bool8 overworld_poison_step(void); static bool8 is_it_battle_time_3(u16); static bool8 mapheader_run_first_tag2_script_list_match_conditionally(struct MapPosition *, u16, u8); -bool8 sub_8068A64(struct MapPosition *, u16); static bool8 sub_8068B30(u16); static bool8 is_non_stair_warp_tile(u16, u8); static s8 map_warp_check_packed(struct MapHeader *, struct MapPosition *); @@ -98,21 +101,6 @@ static bool8 map_warp_consider_2_to_inside(struct MapPosition *, u16, u8); static s8 map_warp_check(struct MapHeader *, u16, u16, u8); static u8 *mapheader_trigger_activate_at(struct MapHeader *, u16, u16, u8); static struct BgEvent *FindInvisibleMapObjectByPosition(struct MapHeader *, u16, u16, u8); -u8 sub_8068F18(void); - -extern u8 mapheader_run_first_tag2_script_list_match(void); -extern void sub_8071310(void); -extern int sub_80A6D1C(void); -extern u8 sub_80BC050(); -extern u8 sub_80422A0(void); -extern s32 overworld_poison(void); -extern void sub_8080E88(); -extern void walkrun_find_lowest_active_bit_in_bitfield(void); -extern void sub_8080F2C(u8); -extern void sub_8080F48(void); -extern void sub_8080F58(void); -extern void sub_80BC038(); -extern void DoCoordEventWeather(u8); void FieldClearPlayerInput(struct FieldInput *input) { diff --git a/src/field_door.c b/src/field_door.c index fa763a5d6..791ed4c94 100644 --- a/src/field_door.c +++ b/src/field_door.c @@ -1,7 +1,7 @@ #include "global.h" #include "field_door.h" -#include "asm.h" #include "field_camera.h" +#include "fieldmap.h" #include "metatile_behavior.h" #include "task.h" diff --git a/src/field_effect.c b/src/field_effect.c index 3b6a2ff4c..9591bb6a0 100755 --- a/src/field_effect.c +++ b/src/field_effect.c @@ -1,5 +1,4 @@ #include "global.h" -#include "asm.h" #include "data2.h" #include "script.h" #include "trig.h" @@ -21,6 +20,11 @@ #include "metatile_behavior.h" #include "field_camera.h" #include "field_effect.h" +#include "field_fadetransition.h" +#include "fieldmap.h" +#include "field_map_obj.h" +#include "util.h" +#include "field_effect_helpers.h" #define subsprite_table(ptr) {.subsprites = ptr, .subspriteCount = (sizeof ptr) / (sizeof(struct Subsprite))} diff --git a/src/field_fadetransition.c b/src/field_fadetransition.c index b5e6c1039..364d55e51 100644 --- a/src/field_fadetransition.c +++ b/src/field_fadetransition.c @@ -1,25 +1,15 @@ #include "global.h" #include "gba/syscall.h" +#include "field_fadetransition.h" +#include "field_player_avatar.h" #include "field_weather.h" +#include "fldeff_flash.h" #include "global.fieldmap.h" +#include "rom4.h" #include "script.h" #include "task.h" -void palette_bg_fill_white(void); -void palette_bg_fill_black(void); -void pal_fill_black(void); -void task0A_asap_script_env_2_enable_and_set_ctx_running(u8); - -extern u8 get_map_light_from_warp0(void); -extern u8 sav1_map_get_light_level(void); -extern u8 fade_type_for_given_maplight_pair(u8, u8); extern u16 gPlttBufferFaded[]; -extern struct MapHeader * warp1_get_mapheader(void); -extern void sub_8059B88(u8); -extern void sub_8053E90(void); - -extern u8 sub_810CDB8(u8, u8); -extern int sub_8080E70(void); void palette_bg_fill_white(void) { diff --git a/src/field_ground_effect.c b/src/field_ground_effect.c index 1aea8f52e..42862d0ff 100644 --- a/src/field_ground_effect.c +++ b/src/field_ground_effect.c @@ -1,26 +1,10 @@ #include "global.h" -#include "asm_fieldmap.h" +#include "field_ground_effect.h" +#include "fieldmap.h" #include "metatile_behavior.h" extern u32 gUnknown_08376008[]; -void FieldObjectUpdateMetatileBehaviors(struct MapObject *); -void GetGroundEffectFlags_Reflection(struct MapObject *, u32 *); -void GetGroundEffectFlags_TallGrassOnSpawn(struct MapObject *, u32 *); -void GetGroundEffectFlags_TallGrassOnBeginStep(struct MapObject *, u32 *); -void GetGroundEffectFlags_LongGrassOnSpawn(struct MapObject *, u32 *); -void GetGroundEffectFlags_LongGrassOnBeginStep(struct MapObject *, u32 *); -void GetGroundEffectFlags_Tracks(struct MapObject *, u32 *); -void GetGroundEffectFlags_SandPile(struct MapObject *, u32 *); -void GetGroundEffectFlags_ShallowFlowingWater(struct MapObject *, u32 *); -void GetGroundEffectFlags_Puddle(struct MapObject *, u32 *); -void GetGroundEffectFlags_Ripple(struct MapObject *, u32 *); -void GetGroundEffectFlags_ShortGrass(struct MapObject *, u32 *); -void GetGroundEffectFlags_HotSprings(struct MapObject *, u32 *); -void GetGroundEffectFlags_Seaweed(struct MapObject *, u32 *); -void GetGroundEffectFlags_JumpLanding(struct MapObject *, u32 *); -u8 FieldObjectCheckForReflectiveSurface(struct MapObject *); - void GetAllGroundEffectFlags_OnSpawn(struct MapObject *mapObj, u32 *flags) { FieldObjectUpdateMetatileBehaviors(mapObj); diff --git a/src/field_map_obj.c b/src/field_map_obj.c index 26cd1de02..ade72923d 100644 --- a/src/field_map_obj.c +++ b/src/field_map_obj.c @@ -1,49 +1,24 @@ #include "global.h" #include "field_map_obj.h" -#include "field_map_obj_helpers.h" -#include "fieldmap.h" -#include "asm.h" #include "berry.h" #include "event_data.h" -#include "field_player_avatar.h" +#include "field_camera.h" #include "field_effect.h" +#include "field_effect_helpers.h" #include "field_ground_effect.h" +#include "field_map_obj_helpers.h" +#include "field_player_avatar.h" +#include "fieldmap.h" #include "palette.h" -#include "rom4.h" #include "rng.h" +#include "rom4.h" #include "sprite.h" -#include "field_camera.h" #include "metatile_behavior.h" #include "map_constants.h" #include "trainer_see.h" -#include "field_effect_helpers.h" extern const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[36]; - -extern void strange_npc_table_clear(void); -extern void ClearPlayerAvatarInfo(void); -extern void npc_load_two_palettes__no_record(u16, u8); -extern void npc_load_two_palettes__and_record(u16, u8); -extern void sub_8060388(s16, s16, s16 *, s16 *); -void sub_80634D0(struct MapObject *, struct Sprite *); -extern void pal_patch_for_npc(u16, u16); -extern void CameraObjectReset1(void); - -void sub_805AAB0(void); -u8 GetFieldObjectIdByLocalId(u8); -u8 GetFieldObjectIdByLocalIdAndMapInternal(u8, u8, u8); -u8 GetAvailableFieldObjectSlot(u16, u8, u8, u8 *); -void FieldObjectHandleDynamicGraphicsId(struct MapObject *); -void RemoveFieldObjectInternal(struct MapObject *); -u16 GetFieldObjectFlagIdByFieldObjectId(u8); -void MakeObjectTemplateFromFieldObjectTemplate(struct MapObjectTemplate *mapObjTemplate, struct SpriteTemplate *sprTemplate, struct SubspriteTable **subspriteTables); -struct MapObjectTemplate *GetFieldObjectTemplateByLocalIdAndMap(u8, u8, u8); -void GetFieldObjectMovingCameraOffset(s16 *, s16 *); -void sub_805BDF8(u16); -u8 sub_805BE58(const struct SpritePalette *); -u8 FindFieldObjectPaletteIndexByTag(u16); - struct PairedPalettes { u16 tag; diff --git a/src/field_map_obj_helpers.c b/src/field_map_obj_helpers.c index afc3c680c..17584c96a 100644 --- a/src/field_map_obj_helpers.c +++ b/src/field_map_obj_helpers.c @@ -1,14 +1,14 @@ #include "global.h" -#include "asm.h" -#include "asm_fieldmap.h" +#include "field_map_obj_helpers.h" #include "field_effect.h" +#include "field_ground_effect.h" +#include "field_map_obj.h" #include "sprite.h" typedef void (*SpriteStepFunc)(struct Sprite *sprite, u8 dir); extern u32 gUnknown_0202FF84[]; -extern struct UCoords16 gDirectionToVector[]; extern s16 gUnknown_08376194[]; extern SpriteStepFunc *gUnknown_08376180[]; extern s8 *gUnknown_083761D0[]; @@ -76,26 +76,26 @@ void Step1(struct Sprite *sprite, u8 dir) void Step2(struct Sprite *sprite, u8 dir) { - sprite->pos1.x += 2 * gDirectionToVector[dir].x; - sprite->pos1.y += 2 * gDirectionToVector[dir].y; + sprite->pos1.x += 2 * (u16) gDirectionToVector[dir].x; + sprite->pos1.y += 2 * (u16) gDirectionToVector[dir].y; } void Step3(struct Sprite *sprite, u8 dir) { - sprite->pos1.x += 2 * gDirectionToVector[dir].x + gDirectionToVector[dir].x; - sprite->pos1.y += 2 * gDirectionToVector[dir].y + gDirectionToVector[dir].y; + sprite->pos1.x += 2 * (u16) gDirectionToVector[dir].x + (u16) gDirectionToVector[dir].x; + sprite->pos1.y += 2 * (u16) gDirectionToVector[dir].y + (u16) gDirectionToVector[dir].y; } void Step4(struct Sprite *sprite, u8 dir) { - sprite->pos1.x += 4 * gDirectionToVector[dir].x; - sprite->pos1.y += 4 * gDirectionToVector[dir].y; + sprite->pos1.x += 4 * (u16) gDirectionToVector[dir].x; + sprite->pos1.y += 4 * (u16) gDirectionToVector[dir].y; } void Step8(struct Sprite *sprite, u8 dir) { - sprite->pos1.x += 8 * gDirectionToVector[dir].x; - sprite->pos1.y += 8 * gDirectionToVector[dir].y; + sprite->pos1.x += 8 * (u16) gDirectionToVector[dir].x; + sprite->pos1.y += 8 * (u16) gDirectionToVector[dir].y; } void oamt_npc_ministep_reset(struct Sprite *sprite, u8 a2, u8 a3) diff --git a/src/field_message_box.c b/src/field_message_box.c index 798725540..2cd2e66ab 100644 --- a/src/field_message_box.c +++ b/src/field_message_box.c @@ -1,14 +1,12 @@ #include "global.h" #include "field_message_box.h" +#include "menu.h" #include "string_util.h" #include "task.h" #include "text.h" #include "text_window.h" extern struct Window gFieldMessageBoxWindow; -extern u16 gMenuTextWindowContentTileOffset; - -extern u16 gMenuTextTileOffset; static u8 sMessageBoxMode; diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c index 1e1162350..3cdb45584 100644 --- a/src/field_player_avatar.c +++ b/src/field_player_avatar.c @@ -1,23 +1,27 @@ #include "global.h" #include "field_player_avatar.h" -#include "asm.h" -#include "asm_fieldmap.h" #include "bike.h" #include "event_data.h" #include "field_effect.h" +#include "field_effect_helpers.h" +#include "field_ground_effect.h" #include "field_map_obj.h" #include "field_map_obj_helpers.h" +#include "fieldmap.h" #include "main.h" #include "map_object_constants.h" #include "menu.h" #include "metatile_behavior.h" +#include "party_menu.h" #include "rng.h" #include "rom4.h" +#include "rotating_gate.h" #include "script.h" #include "songs.h" #include "sound.h" #include "strings2.h" #include "task.h" +#include "tv.h" #include "wild_encounter.h" extern u32 gUnknown_0202FF84[]; @@ -29,41 +33,14 @@ static void MovePlayerAvatarUsingKeypadInput(u8 a, u16 b, u16 c); static void PlayerAllowForcedMovementIfMovingSameDirection(void); static u8 TryDoMetatileBehaviorForcedMovement(void); static u8 GetForcedMovementByMetatileBehavior(void); -u8 ForcedMovement_None(void); -u8 ForcedMovement_Slip(void); -u8 sub_8058AAC(void); -u8 sub_8058AC4(void); -u8 sub_8058ADC(void); -u8 sub_8058AF4(void); -u8 sub_8058B0C(void); -u8 sub_8058B24(void); -u8 sub_8058B3C(void); -u8 sub_8058B54(void); -u8 ForcedMovement_SlideSouth(void); -u8 ForcedMovement_SlideNorth(void); -u8 ForcedMovement_SlideWest(void); -u8 ForcedMovement_SlideEast(void); -u8 sub_8058C04(void); -u8 sub_8058C10(void); -u8 ForcedMovement_MuddySlope(void); static void MovePlayerNotOnBike(u8 a, u16 b); static u8 CheckMovementInputNotOnBike(u8 a); -void PlayerNotOnBikeNotMoving(u8 direction, u16 heldKeys); -void PlayerNotOnBikeTurningInPlace(u8 direction, u16 heldKeys); -void sub_8058D0C(u8 direction, u16 heldKeys); static u8 CheckForPlayerAvatarCollision(u8 a); static u8 sub_8058EF0(s16 a, s16 b, u8 c); static bool8 ShouldJumpLedge(s16 a, s16 b, u8 c); static u8 sub_8058F6C(s16 a, s16 b, u8 c); static void check_acro_bike_metatile(int unused1, int unused2, u8 c, u8 *d); static void DoPlayerAvatarTransition(void); -void nullsub_49(struct MapObject *a); -void PlayerAvatarTransition_Normal(struct MapObject *a); -void PlayerAvatarTransition_MachBike(struct MapObject *a); -void PlayerAvatarTransition_AcroBike(struct MapObject *a); -void PlayerAvatarTransition_Surfing(struct MapObject *a); -void PlayerAvatarTransition_Underwater(struct MapObject *a); -void sub_80591F4(struct MapObject *a); static bool8 player_is_anim_in_certain_ranges(void); static bool8 sub_80592A4(void); static bool8 PlayerIsAnimActive(void); @@ -72,32 +49,8 @@ static void PlayerNotOnBikeCollide(u8 a); static void PlayCollisionSoundIfNotFacingWarp(u8 a); static void sub_8059D60(struct MapObject *a); static void StartStrengthAnim(u8 a, u8 b); -u8 sub_8059E84(struct Task *task, struct MapObject *b, struct MapObject *c); -u8 sub_8059EA4(struct Task *task, struct MapObject *b, struct MapObject *c); -u8 sub_8059F40(struct Task *task, struct MapObject *b, struct MapObject *c); static void sub_8059F94(void); -u8 sub_805A000(struct Task *task, struct MapObject *mapObject); static void sub_805A06C(void); -u8 sub_805A0D8(struct Task *task, struct MapObject *mapObject); -u8 sub_805A100(struct Task *task, struct MapObject *mapObject); -u8 sub_805A178(struct Task *task, struct MapObject *mapObject); -u8 sub_805A1B8(struct Task *task, struct MapObject *mapObject); -u8 Fishing1(struct Task *task); -u8 Fishing2(struct Task *task); -u8 Fishing3(struct Task *task); -u8 Fishing4(struct Task *task); -u8 Fishing5(struct Task *task); -u8 Fishing6(struct Task *task); -u8 Fishing7(struct Task *task); -u8 Fishing8(struct Task *task); -u8 Fishing9(struct Task *task); -u8 Fishing10(struct Task *task); -u8 Fishing11(struct Task *task); -u8 Fishing12(struct Task *task); -u8 Fishing13(struct Task *task); -u8 Fishing14(struct Task *task); -u8 Fishing15(struct Task *task); -u8 Fishing16(struct Task *task); static bool8 (*const gUnknown_0830FB58[])(u8) = { diff --git a/src/field_poison.c b/src/field_poison.c index 4d4d4b975..8c9e029e1 100644 --- a/src/field_poison.c +++ b/src/field_poison.c @@ -1,13 +1,14 @@ #include "global.h" -#include "asm.h" +#include "field_poison.h" #include "field_message_box.h" +#include "fldeff_80C5CD4.h" #include "pokemon.h" +#include "pokemon_summary_screen.h" #include "script.h" #include "string_util.h" #include "task.h" #include "text.h" -extern struct Pokemon gPlayerParty[6]; extern u16 gScriptResult; extern u8 fieldPoisonText_PokemonFainted[]; diff --git a/src/field_region_map.c b/src/field_region_map.c index 66e3d968c..58b0e37bc 100644 --- a/src/field_region_map.c +++ b/src/field_region_map.c @@ -1,17 +1,12 @@ #include "global.h" -#include "asm.h" +#include "field_region_map.h" #include "main.h" #include "menu.h" #include "palette.h" +#include "region_map.h" #include "sprite.h" -#include "text.h" #include "strings2.h" - -extern void sub_80FA8EC(u32, u8); -extern void sub_80FAB10(void); -extern u8 sub_80FAB60(void); -extern void sub_80FBCF0(u32, u8); -extern void sub_80FBB3C(u16, u16); +#include "text.h" struct RegionMapStruct { @@ -30,12 +25,6 @@ struct UnkStruct extern struct UnkStruct unk_2000000; -void CB2_FieldInitRegionMap(void); -void CB2_FieldRegionMap(void); -void VBlankCB_FieldRegionMap(void); -void sub_813EFDC(void); -void sub_813F0C8(void); - void FieldInitRegionMap(MainCallback callback) { SetVBlankCallback(NULL); diff --git a/src/field_special_scene.c b/src/field_special_scene.c index 9e06ede81..c88ac8f65 100644 --- a/src/field_special_scene.c +++ b/src/field_special_scene.c @@ -1,11 +1,16 @@ #include "global.h" #include "field_special_scene.h" -#include "asm.h" #include "event_data.h" #include "field_camera.h" +#include "field_fadetransition.h" +#include "field_map_obj.h" +#include "field_specials.h" +#include "fieldmap.h" +#include "main.h" #include "palette.h" #include "rom4.h" #include "script.h" +#include "script_movement.h" #include "songs.h" #include "sound.h" #include "sprite.h" diff --git a/src/field_specials.c b/src/field_specials.c index 9f5a314e2..2cb2cf795 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -1,5 +1,6 @@ #include "global.h" -#include "asm.h" +#include "field_specials.h" +#include "diploma.h" #include "event_data.h" #include "field_player_avatar.h" #include "main.h" diff --git a/src/field_weather.c b/src/field_weather.c index ff5d5b507..5ff2eddf9 100644 --- a/src/field_weather.c +++ b/src/field_weather.c @@ -1,6 +1,5 @@ #include "global.h" #include "field_weather.h" -#include "asm.h" #include "palette.h" #include "sprite.h" #include "task.h" diff --git a/src/fieldmap.c b/src/fieldmap.c index 2ed2266f5..e573ec13a 100644 --- a/src/fieldmap.c +++ b/src/fieldmap.c @@ -1,14 +1,10 @@ #include "global.h" #include "fieldmap.h" #include "palette.h" - -extern struct MapHeader * const get_mapheader_by_bank_and_number(u8, u8); -extern void mapheader_run_script_with_tag_x1(void); -extern void sub_80BB970(struct MapEvents *); -extern void sub_80BBCCC(); -extern void sub_8056670(); -extern void UpdateTVScreensOnMap(); -extern void sub_80538F0(u8 mapGroup, u8 mapNum); +#include "rom4.h" +#include "script.h" +#include "secret_base.h" +#include "tv.h" struct ConnectionFlags { @@ -24,8 +20,6 @@ struct Coords32 s32 y; }; -extern const struct Coords32 gUnknown_0821664C[]; - EWRAM_DATA static u16 gUnknown_02029828[0x2800] = {0}; EWRAM_DATA struct MapHeader gMapHeader = {0}; EWRAM_DATA struct Camera gUnknown_0202E844 = {0}; @@ -33,17 +27,6 @@ EWRAM_DATA static struct ConnectionFlags gUnknown_0202E850 = {0}; static const struct ConnectionFlags sDummyConnectionFlags = {0}; -void mapheader_copy_mapdata_with_padding(struct MapHeader *mapHeader); -void sub_80560AC(struct MapHeader *); -void map_copy_with_padding(u16 *map, u16 width, u16 height); -void fillSouthConnection(struct MapHeader *, struct MapHeader *, s32); -void fillNorthConnection(struct MapHeader *, struct MapHeader *, s32); -void fillWestConnection(struct MapHeader *, struct MapHeader *, s32); -void fillEastConnection(struct MapHeader *, struct MapHeader *, s32); -struct MapConnection *sub_8056A64(u8 direction, int x, int y); -bool8 sub_8056ABC(u8 direction, int x, int y, struct MapConnection *connection); -bool8 sub_8056B20(int x, int src_width, int dest_width, int offset); - struct MapHeader *mapconnection_get_mapheader(struct MapConnection *connection) { return get_mapheader_by_bank_and_number(connection->mapGroup, connection->mapNum); @@ -352,7 +335,7 @@ union Block u16 value; }; -u16 MapGridGetZCoordAt(int x, int y) +u8 MapGridGetZCoordAt(int x, int y) { u16 block; int i; @@ -378,7 +361,7 @@ u16 MapGridGetZCoordAt(int x, int y) return block >> 12; } -u16 MapGridIsImpassableAt(int x, int y) +u8 MapGridIsImpassableAt(int x, int y) { u16 block; int i; @@ -404,7 +387,7 @@ u16 MapGridIsImpassableAt(int x, int y) return (block & 0xc00) >> 10; } -u16 MapGridGetMetatileIdAt(int x, int y) +u32 MapGridGetMetatileIdAt(int x, int y) { u16 block; int i; @@ -444,7 +427,7 @@ u32 MapGridGetMetatileBehaviorAt(int x, int y) return GetBehaviorByMetatileId(metatile) & 0xff; } -u16 MapGridGetMetatileLayerTypeAt(int x, int y) +u8 MapGridGetMetatileLayerTypeAt(int x, int y) { u16 metatile; metatile = MapGridGetMetatileIdAt(x, y); diff --git a/src/fldeff_cut.c b/src/fldeff_cut.c index 4a2313499..e837dbd45 100644 --- a/src/fldeff_cut.c +++ b/src/fldeff_cut.c @@ -1,17 +1,20 @@ #include "global.h" -#include "asm.h" +#include "fldeff_cut.h" #include "field_camera.h" #include "field_effect.h" #include "field_player_avatar.h" +#include "fieldmap.h" #include "map_obj_lock.h" #include "metatile_behavior.h" #include "metatile_behaviors.h" +#include "pokemon_menu.h" #include "rom4.h" #include "rom6.h" #include "script.h" #include "songs.h" #include "sound.h" #include "sprite.h" +#include "task.h" #include "trig.h" extern u8 gCutGrassSpriteArray[8]; // seems to be an array of 8 sprite IDs @@ -28,18 +31,6 @@ extern u32 gUnknown_0202FF84[]; extern u8 UseCutScript; -extern void sub_808AB90(void); // unknown args -extern void sub_805BCC0(s16 x, s16 y); - -void sub_80A2634(void); -void sub_80A25E8(void); -void sub_80A2684(void); -void sub_80A27A8(s16, s16); -void sub_80A28F4(s16, s16); -void objc_8097BBC(struct Sprite *sprite); -void sub_80A2AB8(void); -void sub_80A2B00(void); // unknown args - bool8 SetUpFieldMove_Cut(void) { s16 x, y; diff --git a/src/fldeff_softboiled.c b/src/fldeff_softboiled.c index d0ee712af..45f319c62 100644 --- a/src/fldeff_softboiled.c +++ b/src/fldeff_softboiled.c @@ -1,7 +1,9 @@ #include "global.h" -#include "asm.h" +#include "fldeff_softboiled.h" #include "menu.h" +#include "party_menu.h" #include "pokemon.h" +#include "pokemon_menu.h" #include "songs.h" #include "sound.h" #include "sprite.h" @@ -62,10 +64,6 @@ extern u8 gLastFieldPokeMenuOpened; extern u8 unk_2000000[]; extern u8 gUnknown_0202E8F4; -// Public -bool8 SetUpFieldMove_SoftBoiled(void); -void sub_8133D28(u8 taskid); - // Static static void sub_8133D50(u8 taskId); static void sub_8133E74(u8 taskId); diff --git a/src/fldeff_strength.c b/src/fldeff_strength.c index a831676b8..1edae09d4 100644 --- a/src/fldeff_strength.c +++ b/src/fldeff_strength.c @@ -1,8 +1,9 @@ #include "global.h" -#include "asm.h" #include "braille_puzzles.h" #include "field_effect.h" +#include "party_menu.h" #include "pokemon.h" +#include "pokemon_menu.h" #include "rom6.h" #include "script.h" #include "task.h" diff --git a/src/fldeff_sweetscent.c b/src/fldeff_sweetscent.c index 3a9281ac2..6e782f4ac 100644 --- a/src/fldeff_sweetscent.c +++ b/src/fldeff_sweetscent.c @@ -1,8 +1,8 @@ #include "global.h" -#include "asm.h" #include "field_effect.h" #include "field_player_avatar.h" #include "palette.h" +#include "pokemon_menu.h" #include "rom6.h" #include "script.h" #include "sound.h" diff --git a/src/fldeff_teleport.c b/src/fldeff_teleport.c index 952193ff0..df12d3072 100644 --- a/src/fldeff_teleport.c +++ b/src/fldeff_teleport.c @@ -1,11 +1,11 @@ #include "global.h" -#include "asm.h" +#include "fldeff_teleport.h" #include "field_effect.h" #include "field_player_avatar.h" +#include "pokemon_menu.h" #include "rom4.h" #include "rom6.h" - -extern void sub_8087BA8(void); +#include "task.h" extern u32 gUnknown_0202FF84[]; @@ -13,9 +13,6 @@ extern void (*gFieldCallback)(void); extern u8 gLastFieldPokeMenuOpened; extern void (*gUnknown_03005CE4)(void); -void hm_teleport_run_dp02scr(void); -void sub_814A404(void); - bool8 SetUpFieldMove_Teleport(void) { if (is_light_level_1_2_3_or_6(gMapHeader.mapType) == TRUE) diff --git a/src/hof_pc.c b/src/hof_pc.c index ca0c2f370..4646d171c 100644 --- a/src/hof_pc.c +++ b/src/hof_pc.c @@ -1,4 +1,5 @@ #include "global.h" +#include "hall_of_fame.h" #include "main.h" #include "palette.h" #include "rom4.h" @@ -6,8 +7,8 @@ #include "script_menu.h" #include "task.h" -extern void sub_81428CC(void); extern void (*gFieldCallback)(void); +extern void (*gUnknown_0300485C)(void); static void ReshowPCMenuAfterHallOfFamePC(void); static void Task_WaitForPaletteFade(u8); diff --git a/src/intro.c b/src/intro.c index ba2197ae7..f13bd04e6 100644 --- a/src/intro.c +++ b/src/intro.c @@ -1,9 +1,10 @@ #include "global.h" #include "gba/m4a_internal.h" #include "intro.h" -#include "asm.h" #include "data2.h" #include "decompress.h" +#include "hall_of_fame.h" +#include "intro_credits_graphics.h" #include "libgncmultiboot.h" #include "link.h" #include "m4a.h" @@ -18,9 +19,7 @@ #include "task.h" #include "title_screen.h" #include "trig.h" - -extern void *species_and_otid_get_pal(/*TODO: arg types*/); -extern void sub_8143680(int, u8); +#include "unknown_task.h" extern struct SpriteTemplate gUnknown_02024E8C; extern u16 gUnknown_02039318; @@ -33,16 +32,9 @@ extern u16 gSaveFileStatus; extern u8 gReservedSpritePaletteCount; extern const u8 gInterfaceGfx_PokeBall[]; extern const u16 gInterfacePal_PokeBall[]; -extern const struct SpriteSheet gIntro2BrendanSpriteSheet; -extern const struct SpriteSheet gIntro2MaySpriteSheet; -extern const struct SpriteSheet gIntro2BicycleSpriteSheet; -extern const struct SpriteSheet gIntro2LatiosSpriteSheet; -extern const struct SpriteSheet gIntro2LatiasSpriteSheet; -extern const struct SpritePalette gIntro2SpritePalettes[]; extern const u8 gIntroCopyright_Gfx[]; extern const u16 gIntroCopyright_Pal[]; extern const u16 gIntroCopyright_Tilemap[]; -extern const u16 gUnknown_08393E64[]; extern void *const gUnknown_0840B5A0[]; //-------------------------------------------------- @@ -1780,7 +1772,7 @@ void sub_813CE30(u16 scrX, u16 scrY, u16 zoom, u16 alpha) static u16 sub_813CE88(u16 species, s16 x, s16 y, u16 d, u8 front) { - void *pal; + const u16 *pal; u8 spriteId; if (front) diff --git a/src/item.c b/src/item.c index ad2b9aed3..920670e8f 100644 --- a/src/item.c +++ b/src/item.c @@ -1,10 +1,9 @@ #include "global.h" #include "item.h" +#include "berry.h" #include "string_util.h" #include "strings.h" -extern struct Berry *GetBerryInfo(u8 berry); - extern u8 gUnknown_02038560; extern struct Item gItems[]; diff --git a/src/item_use.c b/src/item_use.c index c04cf9d7a..269c847a5 100644 --- a/src/item_use.c +++ b/src/item_use.c @@ -1,15 +1,19 @@ #include "global.h" -#include "asm.h" +#include "item_use.h" #include "battle.h" #include "berry.h" +#include "bike.h" #include "coins.h" #include "data2.h" #include "event_data.h" +#include "field_effect.h" +#include "field_fadetransition.h" #include "field_map_obj_helpers.h" #include "field_player_avatar.h" #include "field_weather.h" #include "fieldmap.h" #include "item.h" +#include "item_menu.h" #include "items.h" #include "mail.h" #include "main.h" @@ -18,7 +22,12 @@ #include "menu_helpers.h" #include "metatile_behavior.h" #include "palette.h" +#include "party_menu.h" +#include "pokeblock.h" +#include "pokemon_item_effect.h" +#include "pokemon_menu.h" #include "rom4.h" +#include "rom_8094928.h" #include "script.h" #include "songs.h" #include "sound.h" @@ -29,7 +38,8 @@ extern void (* gUnknown_03005D00)(u8); extern void (* gFieldCallback)(void); -extern void (* gUnknown_03004AE4)(u8); +extern void (* gUnknown_0300485C)(void); +extern void (* gUnknown_03004AE4)(u8, u16, TaskFunc); extern u8 gUnknown_02038561; extern u8 gLastFieldPokeMenuOpened; @@ -40,62 +50,9 @@ extern u8 gUnknown_081A168F[]; extern u16 gUnknown_02024A6A[]; -extern void HandleItemMenuPaletteFade(u8); -extern void ExecuteItemUseFromBlackPalette(void); -extern void DisplayItemMessageOnField(u8, const u8 *, TaskFunc, u16); -extern void CleanUpItemMenuMessage(u8); -extern void CleanUpOverworldMessage(u8); -extern void ItemUseOnFieldCB_Bike(u8); -extern void ItemUseOnFieldCB_Rod(u8); -extern void ItemUseOnFieldCB_Itemfinder(u8); -extern void sub_80A5D04(void); -extern bool8 IsBikingDisallowedByPlayer(void); -extern void GetOnOffBike(u8); -extern struct MapConnection *sub_8056BA0(s16 x, s16 y); // fieldmap.c -extern void sub_810BA7C(u8); -extern void sub_8080E28(void); -extern void UseMedicine(u8); -extern void sub_8070048(u8); -extern void DoPPRecoveryItemEffect(u8); -extern void DoPPUpItemEffect(u8); -extern void DoRareCandyItemEffect(u8); -extern void DoEvolutionStoneItemEffect(u8); -extern u16 ItemIdToBattleMoveId(u16); -extern void sub_80A3FA0(u16 *, u32, u32, u32, u32, u32); -extern void sub_80A3E0C(void); -extern void TeachMonTMMove(u8); -extern void sub_80878A8(void); -extern void sub_8053014(void); -extern void sub_80A7094(u8); -extern bool8 ExecuteTableBasedItemEffect_(struct Pokemon *mon, u16, u8, u16); -extern void sub_8094E4C(void); -extern u8 ExecuteTableBasedItemEffect__(u8 u8, u16 u16, int i); -extern u8 GetItemEffectType(); -extern void sub_808B020(void); -extern void sub_810B96C(void); - extern u16 gScriptItemId; extern u16 gBattleTypeFlags; -bool8 ItemfinderCheckForHiddenItems(struct MapEvents *events, u8 taskId); -void RunItemfinderResults(u8); -void ExitItemfinder(u8); -void sub_80C9720(u8); -void sub_80C9838(u8, s16, s16); -u8 GetPlayerDirectionTowardsHiddenItem(s16, s16); -void SetPlayerDirectionTowardsItem(u8); -void DisplayItemRespondingMessageAndExitItemfinder(u8); -void RotatePlayerAndExitItemfinder(u8); -void sub_80C9D00(u8); -void sub_80C9D74(u8); -void sub_80C9EE4(u8); -void sub_80C9F10(u8); -void sub_80C9F80(u8); -void sub_80C9FC0(u8); -void ItemUseOutOfBattle_TMHM(u8); -void ItemUseOutOfBattle_EvolutionStone(u8); -void ItemUseOutOfBattle_CannotUse(u8); - static const u8 gSSTidalBetaString[] = _("この チケットで ふねに のりほうだい\nはやく のってみたいな"); static const u8 gSSTidalBetaString2[] = _("この チケットで ふねに のりほうだい\nはやく のってみたいな"); diff --git a/src/link.c b/src/link.c index 17e78e0a5..5f6c32370 100644 --- a/src/link.c +++ b/src/link.c @@ -1,7 +1,9 @@ #include "global.h" #include "link.h" -#include "asm.h" #include "battle.h" +#include "berry.h" +#include "berry_blender.h" +#include "hall_of_fame.h" #include "main.h" #include "menu.h" #include "palette.h" @@ -75,6 +77,7 @@ static void sub_80083E0(void); static void sub_8008454(void); static void sub_80084C8(void); static void sub_80084F4(void); + static void CheckErrorStatus(void); static void CB2_PrintErrorMessage(void); static u8 IsSioMultiMaster(void); diff --git a/src/load_save.c b/src/load_save.c index 0add1b0e3..0630f060c 100644 --- a/src/load_save.c +++ b/src/load_save.c @@ -1,7 +1,6 @@ #include "global.h" #include "gba/flash_internal.h" #include "load_save.h" -#include "asm.h" #include "main.h" #include "pokemon.h" #include "rom4.h" diff --git a/src/lottery_corner.c b/src/lottery_corner.c index 66e1238ef..c2c25b9ac 100644 --- a/src/lottery_corner.c +++ b/src/lottery_corner.c @@ -9,7 +9,6 @@ extern u16 gScriptResult; extern u16 gSpecialVar_0x8004; -extern struct Pokemon gPlayerParty[6]; extern struct PokemonStorage gPokemonStorage; extern u16 gSpecialVar_0x8005; extern u16 gSpecialVar_0x8006; diff --git a/src/mail.c b/src/mail.c index 4ec107011..658d37976 100644 --- a/src/mail.c +++ b/src/mail.c @@ -1,16 +1,20 @@ #include "global.h" #include "mail.h" -#include "asm.h" +#include "easy_chat.h" #include "items.h" +#include "mail_data.h" #include "menu.h" +#include "menu_helpers.h" #include "name_string_util.h" #include "palette.h" +#include "pokemon_icon.h" #include "rom4.h" #include "sprite.h" #include "string_util.h" #include "strings2.h" #include "task.h" #include "text.h" +#include "unknown_task.h" struct UnkMailStruct { @@ -84,7 +88,7 @@ static void sub_80F8FB4(void); void HandleReadMail(struct MailStruct *arg0, MainCallback arg1, bool8 arg2) { u16 mailDesign; - u8 buffer[4]; + u16 buffer[2]; ewram0.varFF = GAME_LANGUAGE; ewram0.var100 = 1; diff --git a/src/mail_data.c b/src/mail_data.c index 23d22e21f..ae3f4b3e8 100644 --- a/src/mail_data.c +++ b/src/mail_data.c @@ -1,15 +1,12 @@ #include "global.h" +#include "mail_data.h" #include "items.h" #include "name_string_util.h" #include "pokemon.h" +#include "pokemon_icon.h" #include "species.h" #include "text.h" -void ClearMailStruct(struct MailStruct *); -u16 SpeciesToMailSpecies(u16, u32); -bool8 ItemIsMail(u16); -u16 GetUnownLetterByPersonality(u32); - void ClearMailData(void) { u8 i; diff --git a/src/main.c b/src/main.c index 19891459c..afaa0e77a 100644 --- a/src/main.c +++ b/src/main.c @@ -2,17 +2,18 @@ #include "gba/flash_internal.h" #include "gba/m4a_internal.h" #include "main.h" -#include "asm.h" #include "intro.h" #include "link.h" #include "load_save.h" #include "m4a.h" #include "play_time.h" #include "rng.h" +#include "rom3.h" #include "rom4.h" #include "rtc.h" #include "siirtc.h" #include "sound.h" +#include "unknown_task.h" extern struct SoundInfo gSoundInfo; extern u32 IntrMain[]; diff --git a/src/main_menu.c b/src/main_menu.c index ac26d604d..09fd06d9e 100644 --- a/src/main_menu.c +++ b/src/main_menu.c @@ -1,14 +1,15 @@ #include "global.h" #include "main_menu.h" -#include "asm.h" #include "data2.h" #include "decompress.h" #include "event_data.h" +#include "field_effect.h" #include "menu.h" #include "mystery_event_menu.h" #include "naming_screen.h" #include "option_menu.h" #include "palette.h" +#include "pokeball.h" #include "rom4.h" #include "rtc.h" #include "save_menu_util.h" @@ -20,6 +21,7 @@ #include "task.h" #include "text.h" #include "title_screen.h" +#include "unknown_task.h" #define BirchSpeechUpdateWindowText() ((u8)MenuUpdateWindowText_OverrideLineLength(24)) diff --git a/src/map_name_popup.c b/src/map_name_popup.c index c10a3f9de..303cc3d07 100644 --- a/src/map_name_popup.c +++ b/src/map_name_popup.c @@ -1,7 +1,8 @@ #include "global.h" -#include "asm.h" +#include "map_name_popup.h" #include "event_data.h" #include "menu.h" +#include "region_map.h" #include "task.h" EWRAM_DATA static u8 sTaskId = 0; diff --git a/src/map_obj_lock.c b/src/map_obj_lock.c index 713ca03f9..bd40bcacc 100644 --- a/src/map_obj_lock.c +++ b/src/map_obj_lock.c @@ -1,8 +1,9 @@ #include "global.h" #include "map_obj_lock.h" -#include "asm.h" +#include "field_map_obj.h" #include "field_map_obj_helpers.h" #include "field_player_avatar.h" +#include "script_movement.h" #include "task.h" extern u16 gScriptFacing; diff --git a/src/matsuda_debug_menu.c b/src/matsuda_debug_menu.c index 018e36567..3665cabd8 100644 --- a/src/matsuda_debug_menu.c +++ b/src/matsuda_debug_menu.c @@ -1,7 +1,8 @@ #include "global.h" #include "matsuda_debug_menu.h" -#include "asm.h" #include "contest.h" +#include "contest_link_80C2020.h" +#include "contest_link_80C857C.h" #include "data2.h" #include "link.h" #include "main.h" @@ -13,6 +14,7 @@ #include "string_util.h" #include "task.h" #include "text.h" +#include "unknown_task.h" extern u8 gUnknown_0203856C; extern u8 gUnknown_0203857D[][64]; @@ -27,8 +29,6 @@ extern u8 gContestPlayerMonIndex; extern u16 gScriptContestCategory; extern u16 gScriptContestRank; -extern struct Window gMenuWindow; - extern u16 gUnknown_030042A4; extern u16 gUnknown_030042A0; extern u16 gUnknown_030042C0; @@ -84,8 +84,6 @@ static void sub_80AA10C(void); static void sub_80AA5BC(u8); static void sub_80AA614(u8, u8); static void sub_80AAD08(struct Sprite *, s8); -extern void sub_80AB47C(void); -extern int sub_80B2A7C(u8); //Don't know return type size u8 unref_sub_80A9B28(void) { diff --git a/src/mauville_old_man.c b/src/mauville_old_man.c index d6fb33917..93684fc60 100644 --- a/src/mauville_old_man.c +++ b/src/mauville_old_man.c @@ -1,20 +1,16 @@ #include "global.h" -#include "asm.h" +#include "mauville_old_man.h" +#include "easy_chat.h" #include "menu.h" #include "rng.h" #include "script.h" #include "string_util.h" #include "strings.h" +#include "trader.h" extern u16 gScriptResult; extern u16 gSpecialVar_0x8004; -extern void sub_80F83F8(void); -extern void sub_81099CC(void); -extern void sub_80F83D0(void); -extern void sub_80F7F80(u8); -extern u16 sub_80EB8EC(void); -extern void sub_80F7DC0(void); extern u32 gUnknown_083E5388[]; extern u32 gUnknown_083E53A8[]; diff --git a/src/metatile_behavior.c b/src/metatile_behavior.c index befd6f20d..d05ba0b89 100644 --- a/src/metatile_behavior.c +++ b/src/metatile_behavior.c @@ -1,4 +1,5 @@ #include "global.h" +#include "metatile_behavior.h" #include "metatile_behaviors.h" #define TILE_ATTRIBUTES(three, two, one) (((one) ? 1 : 0) | ((two) ? 2 : 0) | ((three) ? 4 : 0)) @@ -247,8 +248,6 @@ static const u8 sTileBitAttributes[] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE) }; -bool8 MetatileBehavior_IsWaterfall(u8); - // only used as default case for checking jump landing in field_ground_effect. bool8 MetatileBehavior_IsATile(u8 var) { diff --git a/src/mori_debug_menu.c b/src/mori_debug_menu.c index 18c65b7e6..ba79261c0 100644 --- a/src/mori_debug_menu.c +++ b/src/mori_debug_menu.c @@ -1,10 +1,12 @@ #include "global.h" #include "mori_debug_menu.h" -#include "asm.h" #include "data2.h" +#include "daycare.h" +#include "learn_move.h" #include "link.h" #include "main.h" #include "menu.h" +#include "pokeblock.h" #include "start_menu.h" #include "string_util.h" diff --git a/src/mystery_event_menu.c b/src/mystery_event_menu.c index 77c959b07..4be5dec1c 100644 --- a/src/mystery_event_menu.c +++ b/src/mystery_event_menu.c @@ -1,9 +1,9 @@ #include "global.h" #include "mystery_event_menu.h" -#include "asm.h" #include "link.h" #include "main.h" #include "menu.h" +#include "mystery_event_script.h" #include "palette.h" #include "save.h" #include "songs.h" diff --git a/src/mystery_event_script.c b/src/mystery_event_script.c index 515a0722f..e3d533d28 100644 --- a/src/mystery_event_script.c +++ b/src/mystery_event_script.c @@ -1,4 +1,5 @@ #include "global.h" +#include "mystery_event_script.h" #include "script.h" #include "string_util.h" #include "text.h" @@ -16,8 +17,6 @@ extern ScrCmdFunc gScriptFuncs_End[]; extern u8 gOtherText_DataCannotUseVersion[]; -void sub_8126160(u32 val); - bool32 sub_8126098(u16 a1, u32 a2, u16 a3, u32 a4) { if (!(a1 & 0x2)) diff --git a/src/name_string_util.c b/src/name_string_util.c index a1812d5e9..f1a935453 100644 --- a/src/name_string_util.c +++ b/src/name_string_util.c @@ -1,4 +1,5 @@ #include "global.h" +#include "name_string_util.h" #include "string_util.h" #include "text.h" diff --git a/src/naming_screen.c b/src/naming_screen.c index 53ee5ff19..88059e669 100644 --- a/src/naming_screen.c +++ b/src/naming_screen.c @@ -1,10 +1,13 @@ #include "global.h" #include "naming_screen.h" -#include "asm.h" #include "data2.h" +#include "field_effect.h" +#include "field_map_obj.h" +#include "field_player_avatar.h" #include "main.h" #include "menu.h" #include "palette.h" +#include "pokemon_icon.h" #include "songs.h" #include "sound.h" #include "sprite.h" @@ -13,11 +16,7 @@ #include "task.h" #include "text.h" #include "trig.h" - -extern u8 GetRivalAvatarGraphicsIdByStateIdAndGender(u8, u8); -extern u8 CreateMonIcon(); -extern void sub_809D51C(void); -extern void MultiplyInvertedPaletteRGBComponents(u16, u8, u8, u8); +#include "util.h" extern u16 gKeyRepeatStartDelay; @@ -51,7 +50,6 @@ extern const struct SpriteTemplate gSpriteTemplate_83CE688; extern const struct SpriteSheet gUnknown_083CE6A0[]; extern const struct SpritePalette gUnknown_083CE708[]; extern const u8 gNamingScreenMenu_Gfx[]; -extern u16 gMenuMessageBoxContentTileOffset; extern const u16 gNamingScreenPalettes[]; extern const u16 gUnknown_083CE748[]; extern const u16 gUnknown_083CEBF8[]; diff --git a/src/new_game.c b/src/new_game.c index 12e04a4ef..33aacd10a 100644 --- a/src/new_game.c +++ b/src/new_game.c @@ -1,18 +1,30 @@ #include "global.h" #include "new_game.h" -#include "asm.h" +#include "battle_records.h" #include "berry.h" +#include "contest.h" +#include "decoration_inventory.h" #include "dewford_trend.h" +#include "easy_chat.h" #include "event_data.h" +#include "field_specials.h" +#include "item_menu.h" #include "lottery_corner.h" +#include "mail_data.h" +#include "mauville_old_man.h" #include "play_time.h" +#include "player_pc.h" +#include "pokeblock.h" #include "pokedex.h" #include "pokemon_size_record.h" +#include "pokemon_storage_system.h" #include "rng.h" #include "roamer.h" #include "rom4.h" #include "rtc.h" #include "script.h" +#include "secret_base.h" +#include "tv.h" extern u8 gDifferentSaveFile; diff --git a/src/palette.c b/src/palette.c index a610049bc..94a4f8092 100644 --- a/src/palette.c +++ b/src/palette.c @@ -1,6 +1,5 @@ #include "global.h" #include "palette.h" -#include "asm.h" #include "blend_palette.h" #include "decompress.h" diff --git a/src/party_menu.c b/src/party_menu.c index ad0007695..be0db4dc4 100644 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -1,20 +1,28 @@ #include "global.h" -#include "asm.h" +#include "party_menu.h" +#include "battle.h" +#include "battle_interface.h" +#include "battle_party_menu.h" #include "data2.h" +#include "event_data.h" +#include "item.h" +#include "mail_data.h" +#include "main.h" #include "menu.h" +#include "palette.h" #include "pokemon.h" +#include "pokemon_item_effect.h" +#include "pokemon_menu.h" +#include "pokemon_summary_screen.h" +#include "rom_8077ABC.h" +#include "rom_8094928.h" #include "songs.h" #include "sound.h" +#include "species.h" +#include "sprite.h" #include "string_util.h" #include "strings.h" #include "task.h" -#include "sprite.h" -#include "palette.h" -#include "event_data.h" -#include "main.h" -#include "item.h" -#include "battle_interface.h" -#include "species.h" #define DATA_COUNT (6) @@ -88,75 +96,8 @@ extern const u16 gUnknown_08376504[]; extern void (*const gUnknown_08376B54[])(u8); extern const u8 *const gUnknown_08376D04[DATA_COUNT]; extern const struct UnknownStruct5 gUnknown_08376BB4[][6]; -extern const u8 *const gItemEffectTable[]; - -extern bool8 IsDoubleBattle(void); -extern void SetUpBattlePokemonMenu(u8); -extern void sub_808B0C0(u8); -extern u8 GiveMailToMon(struct Pokemon *, u16); -extern bool8 ItemIsMail(u16); -extern void ClearMailStruct(struct MailStruct *); -extern u8 GiveMailToMon2(struct Pokemon *, struct MailStruct *); -extern void TakeMailFromMon(struct Pokemon *); -extern u8 TakeMailFromMon2(struct Pokemon *); -extern u32 CanMonLearnTMHM(struct Pokemon *, u8); -extern void sub_809D9F0(struct Pokemon *, u8, u8, void *, u32); -extern void sub_808B564(); -extern u8 sub_809FA30(void); -extern void sub_808B508(u8); -extern void sub_8032638(); -extern u8 sub_8094C20(); -extern bool8 ExecuteTableBasedItemEffect_(); -extern u8 GetMonStatusAndPokerus(); - -u8 sub_806CA38(u8); -void task_pc_turn_off(); -static void sub_806E884(u8 taskId); -void sub_806F8AC(u8 taskId); -void sub_806FB0C(u8 taskId); -void PartyMenuUpdateLevelOrStatus(struct Pokemon *, u8); -bool8 ExecuteTableBasedItemEffect__(u8, u16, u8); -void sub_80701DC(u8 taskId); -void DoRecoverPP(u8); -void Task_RareCandy1(u8); -void Task_RareCandy2(u8); -void Task_RareCandy3(u8); -void sub_806D538(); -void sub_806D5A4(void); -void sub_806E8D0(u8 taskId, u16 b, TaskFunc c); -void GetMedicineItemEffectMessage(u16); -void sub_8070A20(); -void sub_8070848(u8 taskId); -void sub_8070968(); -void party_menu_link_mon_held_item_object(u8); -void Task_ConfirmGiveHeldItem(u8); -void DisplayGiveHeldItemMessage(u8, u16, u8); -void SetHeldItemIconVisibility(); -void DisplayTakeHeldItemMessage(u8, u16, u8); -void Task_ConfirmTakeHeldMail(u8); -void Task_TeamMonTMMove(u8); -void Task_TeamMonTMMove2(u8); -void Task_TeamMonTMMove3(u8); -void Task_TeamMonTMMove4(u8); -void sub_806F358(u8); -void sub_806F390(u8); -void sub_806F44C(u8); -void TMMoveUpdateMoveSlot(u8); -void StopTryingToTeachMove_806F614(u8); -void StopTryingToTeachMove_806F67C(u8); -void StopTryingToTeachMove_806F6B4(u8); -void sub_806FB44(u8); -void sub_8070C54(); -void SetMonIconAnim(); -u8 GetMonIconSpriteId_maybe(); -void PartyMenuDoPrintHP(u8, int, u16, u16); -void PartyMenuClearLevelStatusTilemap(); -void PartyMenuPrintMonLevelOrStatus(); -u8 GetItemEffectType(); -bool8 IsBlueYellowRedFlute(u16); -void TryPrintPartyMenuMonNickname(); -void sub_8070088(u8); +static void sub_806E884(u8 taskId); /* void sub_806AEDC(void) diff --git a/src/player_pc.c b/src/player_pc.c index 1d4165c17..9cb395432 100644 --- a/src/player_pc.c +++ b/src/player_pc.c @@ -1,7 +1,10 @@ #include "global.h" -#include "asm.h" +#include "player_pc.h" +#include "decoration.h" +#include "field_fadetransition.h" #include "field_weather.h" #include "item.h" +#include "item_menu.h" #include "items.h" #include "main.h" #include "menu.h" @@ -24,7 +27,6 @@ extern void BuyMenuFreeMemory(void); extern void DestroyVerticalScrollIndicator(u8); extern void PauseVerticalScrollIndicator(u8); extern void StartVerticalScrollIndicators(int); -extern void CreateVerticalScrollIndicators(u32, u32, u32); // unknown args extern void LoadScrollIndicatorPalette(void); extern void ClearMailStruct(struct MailStruct *); extern u8 sub_807D770(void); @@ -180,6 +182,26 @@ static const u16 gUnknown_08406334[3] = static const u8 gHighlightedMoveToBagFormatText[] = _("{COLOR RED}{STR_VAR_1}"); +extern u8 *gUnknown_02039314; +extern struct MenuAction gUnknown_08406298[]; + +extern u8 gUnknown_084062B8[]; +extern u8 gUnknown_084062BC[]; +extern u8 gUnknown_0840632A[]; +extern u8 gUnknown_08406327[]; +extern u8 gUnknown_0840631E[]; +extern u8 gUnknown_08406318[]; + +extern u8 gUnknown_030007B4; +extern u8 unk_201FE00[]; + +extern u8 gUnknown_08152850; +extern u8 gUnknown_08152C75; + +extern u32 gUnknown_08406288[]; +extern const struct MenuAction gUnknown_084062C0[]; +extern const struct YesNoFuncTable gUnknown_084062E0; + void NewGameInitPCItems(void) { u8 i; diff --git a/src/pokedex.c b/src/pokedex.c index be6ef03a9..8674c3d2b 100644 --- a/src/pokedex.c +++ b/src/pokedex.c @@ -1,7 +1,8 @@ + #include "global.h" #include "gba/m4a_internal.h" #include "pokedex.h" -#include "asm.h" +#include "battle.h" #include "data2.h" #include "decompress.h" #include "event_data.h" @@ -11,7 +12,11 @@ #include "menu.h" #include "menu_cursor.h" #include "palette.h" +#include "pokedex_area_screen.h" +#include "pokedex_cry_screen.h" +#include "pokemon.h" #include "rng.h" +#include "rom4.h" #include "songs.h" #include "sound.h" #include "species.h" @@ -19,6 +24,7 @@ #include "strings.h" #include "task.h" #include "trig.h" +#include "unknown_task.h" #define NATIONAL_DEX_COUNT 386 @@ -159,26 +165,13 @@ extern const u16 gPokedexMenu2_Pal[]; extern const struct SpriteSheet gTrainerFrontPicTable[]; extern const struct MonCoords gTrainerFrontPicCoords[]; extern const struct PokedexEntry gPokedexEntries[]; -extern const struct BaseStats gBaseStats[]; extern const u8 gPokedexMenuSearch_Gfx[]; extern const u8 gUnknown_08E96D2C[]; extern const u16 gPokedexMenuSearch_Pal[]; extern const u8 gTypeNames[][7]; extern const u8 gPokedexMenu2_Gfx[]; -extern u16 NationalPokedexNumToSpecies(u16); -extern void ShowPokedexAreaScreen(u16 species, u8 *string); -extern void sub_814AD7C(u8, u8); -extern void sub_800D74C(); -extern const u16 *species_and_otid_get_pal(u16, u32, u32); -extern void m4aMPlayVolumeControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, u16 volume); -extern bool8 BeginNormalPaletteFade(u32, s8, u8, u8, u16); -extern void remove_some_task(void); -extern u8 sub_8091E3C(void); -extern void DisableNationalPokedex(void); -extern void sub_805469C(void); -extern u16 HoennToNationalOrder(u16); -extern u16 NationalToHoennOrder(u16); +static u8 sub_8091E3C(void); static const u16 sPokedexSearchPalette[] = INCBIN_U16("graphics/pokedex/search.gbapal"); static const u16 sNationalPokedexPalette[] = INCBIN_U16("graphics/pokedex/national.gbapal"); @@ -1297,6 +1290,7 @@ static u8 sub_8092E10(u8, u8); static void sub_8092EB0(u8); static void sub_809308C(u8); + void ResetPokedex(void) { u16 i; diff --git a/src/pokedex_cry_screen.c b/src/pokedex_cry_screen.c index 53807befc..92fd832fc 100644 --- a/src/pokedex_cry_screen.c +++ b/src/pokedex_cry_screen.c @@ -1,5 +1,5 @@ #include "global.h" -#include "asm.h" +#include "pokedex_cry_screen.h" #include "palette.h" #include "sprite.h" diff --git a/src/pokemon_1.c b/src/pokemon_1.c index dacbb81c3..c55105ef3 100644 --- a/src/pokemon_1.c +++ b/src/pokemon_1.c @@ -1,5 +1,4 @@ #include "global.h" -#include "asm.h" #include "data2.h" #include "items.h" #include "main.h" @@ -17,17 +16,10 @@ //Extracts the lower 16 bits of a 32-bit number #define LOHALF(n) ((n) & 0xFFFF) -extern struct Pokemon gPlayerParty[6]; // 0x3004360 -extern struct Pokemon gEnemyParty[6]; // 0x30045C0 - extern u8 unk_2000000[]; extern u16 word_2024E82; extern u8 byte_2024E88; -extern u32 gExperienceTables[8][101]; -extern struct BaseStats gBaseStats[]; -extern const u16 *gLevelUpLearnsets[]; - void ZeroBoxMonData(struct BoxPokemon *boxMon) { u8 *raw = (u8 *)boxMon; diff --git a/src/pokemon_2.c b/src/pokemon_2.c index 7fbfc1271..91cd77f86 100644 --- a/src/pokemon_2.c +++ b/src/pokemon_2.c @@ -1,20 +1,20 @@ #include "global.h" -#include "asm.h" +#include "battle.h" #include "data2.h" #include "event_data.h" #include "main.h" #include "pokemon.h" #include "rng.h" +#include "rom_8077ABC.h" #include "species.h" #include "sprite.h" #include "string_util.h" -#include "text.h" #include "strings2.h" +#include "text.h" +#include "util.h" extern u8 gPlayerPartyCount; -extern struct Pokemon gPlayerParty[6]; extern u8 gEnemyPartyCount; -extern struct Pokemon gEnemyParty[6]; extern u16 unk_20160BC[]; extern struct SecretBaseRecord gSecretBaseRecord; @@ -36,16 +36,9 @@ extern u16 gTrainerBattleOpponent; extern struct PokemonStorage gPokemonStorage; extern u8 gBadEggNickname[]; -extern u32 gBitTable[]; -extern struct BaseStats gBaseStats[]; extern const struct SpriteTemplate gSpriteTemplate_8208288[]; //array of pointers to arrays of pointers to union AnimCmd (We probably need to typedef this.) -extern u8 gTrainerClassToPicIndex[]; -extern u8 gTrainerClassToNameIndex[]; extern u8 gSecretBaseTrainerClasses[]; -extern u8 gUnknown_08208238[]; -extern u8 gUnknown_0820823C[]; -extern u8 gStatStageRatios[][2]; extern u8 gHoldEffectToType[][2]; u8 sub_803C348(u8 a1) diff --git a/src/pokemon_3.c b/src/pokemon_3.c index f4eac79a7..9e69a3850 100644 --- a/src/pokemon_3.c +++ b/src/pokemon_3.c @@ -1,17 +1,19 @@ #include "global.h" -#include "asm.h" #include "battle.h" +#include "battle_message.h" #include "data2.h" #include "event_data.h" #include "hold_effects.h" #include "item.h" #include "items.h" #include "link.h" -#include "main.h" #include "m4a.h" +#include "main.h" #include "pokemon.h" #include "rng.h" #include "rom4.h" +#include "rom_8077ABC.h" +#include "rom_8094928.h" #include "rtc.h" #include "songs.h" #include "sound.h" @@ -19,6 +21,7 @@ #include "sprite.h" #include "string_util.h" #include "text.h" +#include "util.h" #define EVO_FRIENDSHIP 0x0001 // Pokémon levels up with friendship ≥ 220 #define EVO_FRIENDSHIP_DAY 0x0002 // Pokémon levels up during the day with friendship ≥ 220 @@ -36,18 +39,6 @@ #define EVO_LEVEL_SHEDINJA 0x000e // Pokémon reaches the specified level (special value for Shedinja) #define EVO_BEAUTY 0x000f // Pokémon levels up with beauty ≥ specified value -struct Evolution -{ - u16 method; - u16 param; - u16 targetSpecies; -}; - -struct EvolutionData -{ - struct Evolution evolutions[5]; -}; - struct SpindaSpot { u8 x, y; @@ -55,14 +46,10 @@ struct SpindaSpot }; extern u8 gPlayerPartyCount; -extern struct Pokemon gPlayerParty[6]; extern u8 gEnemyPartyCount; -extern struct Pokemon gEnemyParty[6]; extern struct BattlePokemon gBattleMons[4]; -extern u8 * const gItemEffectTable[]; extern u8 gUnknown_02024A60; extern struct BattleEnigmaBerry gEnigmaBerries[]; -extern struct EvolutionData gEvolutionTable[]; extern u16 gSpeciesToHoennPokedexNum[]; extern u16 gSpeciesToNationalPokedexNum[]; extern u16 gHoennToNationalOrder[]; @@ -79,11 +66,7 @@ extern s8 gNatureStatTable[][5]; extern s8 gUnknown_082082FE[][3]; extern u16 gTrainerBattleOpponent; extern u16 gBattleTypeFlags; -extern struct BaseStats gBaseStats[]; -extern u32 gBitTable[]; -extern u32 gExperienceTables[8][101]; extern u32 gTMHMLearnsets[][2]; -extern const u16 *gLevelUpLearnsets[]; extern u8 gBattleMonForms[]; extern const u8 BattleText_Wally[]; extern const u16 gHMMoves[]; @@ -100,8 +83,6 @@ extern u8 gUnknown_083FEE5D[]; extern u8 gUnknown_083FEE92[]; extern u8 *gUnknown_08400F58[]; -u8 CheckPartyHasHadPokerus(struct Pokemon *, u8); - bool8 HealStatusConditions(struct Pokemon *mon, u32 unused, u32 healMask, u8 battleId) { u32 status = GetMonData(mon, MON_DATA_STATUS, 0); @@ -131,7 +112,7 @@ u8 GetItemEffectParamOffset(u16 itemId, u8 effectByte, u8 effectBit) offset = 6; - temp = gItemEffectTable[itemId - 13]; + temp = (u8 *) gItemEffectTable[itemId - 13]; if (!temp && itemId != ITEM_ENIGMA_BERRY) return 0; @@ -259,7 +240,7 @@ u8 *sub_803F378(u16 itemId) } else { - itemEffect = gItemEffectTable[itemId - 13]; + itemEffect = (u8 *) gItemEffectTable[itemId - 13]; } gUnknown_02024C0B = gUnknown_02024E6C; @@ -1191,8 +1172,6 @@ void current_map_music_set__default_for_battle(u16 song) PlayNewMapMusic(sub_8040728()); } -const u16 *species_and_otid_get_pal(u16, u32, u32); - const u16 *pokemon_get_pal(struct Pokemon *mon) { u16 species = GetMonData(mon, MON_DATA_SPECIES2, 0); @@ -1207,7 +1186,7 @@ const u16 *pokemon_get_pal(struct Pokemon *mon) //Extracts the lower 16 bits of a 32-bit number #define LOHALF(n) ((n) & 0xFFFF) -const u16 *species_and_otid_get_pal(u16 species, u32 otId , u32 personality) +const u16 *species_and_otid_get_pal(u16 species, u32 otId, u32 personality) { u32 shinyValue; @@ -1221,8 +1200,6 @@ const u16 *species_and_otid_get_pal(u16 species, u32 otId , u32 personality) return gMonPaletteTable[species].data; } -const struct SpritePalette *sub_80409C8(u16, u32, u32); - const struct SpritePalette *sub_8040990(struct Pokemon *mon) { u16 species = GetMonData(mon, MON_DATA_SPECIES2, 0); @@ -1270,8 +1247,6 @@ s8 sub_8040A7C(u32 personality, u8 a2) return gUnknown_083F7E28[nature * 5 + a2]; } -bool8 IsOtherTrainer(u32, u8 *); - bool8 IsTradedMon(struct Pokemon *mon) { u8 otName[8]; diff --git a/src/pokemon_size_record.c b/src/pokemon_size_record.c index b2f8a1569..f293190e8 100644 --- a/src/pokemon_size_record.c +++ b/src/pokemon_size_record.c @@ -2,14 +2,12 @@ #include "pokemon_size_record.h" #include "data2.h" #include "event_data.h" +#include "pokedex.h" #include "species.h" #include "string_util.h" #include "strings2.h" #include "text.h" -extern u16 SpeciesToNationalPokedexNum(u16); -extern u16 GetPokedexHeightWeight(u16, u8); - struct UnknownStruct { u16 unk0; diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c index 679ec0bc4..fb837f1f6 100644 --- a/src/pokemon_storage_system.c +++ b/src/pokemon_storage_system.c @@ -1,4 +1,5 @@ #include "global.h" +#include "pokemon_storage_system.h" #include "menu.h" #include "string_util.h" diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index 56a56e455..61ae11438 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -1,20 +1,15 @@ #include "global.h" -#include "asm.h" +#include "pokemon_summary_screen.h" #include "link.h" #include "menu.h" #include "pokemon.h" +#include "region_map.h" #include "string_util.h" #include "strings2.h" +#include "tv.h" extern struct Pokemon *unk_2018000; -extern u8 *(gNatureNames[]); - -u8 *sub_80A1E9C(u8 *dest, u8 *src, u8); -u8 PokemonSummaryScreen_CheckOT(struct Pokemon *pokemon); -u8 *PokemonSummaryScreen_CopyPokemonLevel(u8 *dest, u8 level); -u32 GetPlayerTrainerId(void); - bool8 PokemonSummaryScreen_CheckOT(struct Pokemon *mon) { u32 trainerId; diff --git a/src/pokenav.c b/src/pokenav.c index f50f039f8..24253e878 100644 --- a/src/pokenav.c +++ b/src/pokenav.c @@ -1,24 +1,9 @@ #include "global.h" +#include "pokenav.h" #include "battle.h" #include "data2.h" #include "string_util.h" -struct UnkPokenavStruct_Sub { - /*0x0*/ u16 unk0; - /*0x2*/ u8 filler2[6]; -}; - - -struct UnkPokenavStruct { - /*0x0000*/ u8 filler0000[0xCEE8]; - /*0xCEE8*/ struct UnkPokenavStruct_Sub unkCEE8[78]; - /*0xD158*/ u16 unkD158; - -}; - -extern struct UnkPokenavStruct *gUnknown_083DFEC4; - - void sub_80F700C(u8 *arg0, u16 arg1) { struct Trainer *trainer; u8 *ptr; diff --git a/src/post_battle_event_funcs.c b/src/post_battle_event_funcs.c index f0b88025c..8d85705c8 100644 --- a/src/post_battle_event_funcs.c +++ b/src/post_battle_event_funcs.c @@ -1,13 +1,12 @@ #include "global.h" #include "event_data.h" +#include "hall_of_fame.h" #include "load_save.h" #include "main.h" #include "pokemon.h" #include "rom4.h" #include "script_pokemon_80C4.h" -extern void sub_8141F90(void); - extern u8 gUnknown_02039324; int GameClear(void) diff --git a/src/record_mixing.c b/src/record_mixing.c index f9cb4116e..e1a72cf2e 100644 --- a/src/record_mixing.c +++ b/src/record_mixing.c @@ -1,17 +1,24 @@ #include "global.h" #include "record_mixing.h" -#include "asm.h" +#include "battle_tower.h" +#include "cable_club.h" +#include "daycare.h" #include "dewford_trend.h" #include "event_data.h" +#include "fldeff_80C5CD4.h" #include "link.h" +#include "mauville_old_man.h" #include "menu.h" +#include "mystery_event_script.h" #include "rom4.h" #include "script.h" +#include "secret_base.h" #include "songs.h" #include "sound.h" #include "string_util.h" #include "strings2.h" #include "task.h" +#include "tv.h" extern void *recordMixingSecretBases; @@ -53,9 +60,6 @@ struct PlayerRecords { extern struct PlayerRecords unk_2008000; extern struct PlayerRecords unk_2018000; -void sub_80BC300(); -void sub_80C045C(); - void RecordMixing_PrepareExchangePacket(void) { sub_80BC300(); diff --git a/src/roamer.c b/src/roamer.c index 394f81c75..948828d5e 100644 --- a/src/roamer.c +++ b/src/roamer.c @@ -1,7 +1,7 @@ #include "global.h" +#include "roamer.h" #include "pokemon.h" #include "rng.h" -#include "roamer.h" #include "species.h" #ifdef SAPPHIRE diff --git a/src/rom3.c b/src/rom3.c index be6ae0b27..93f0f0356 100644 --- a/src/rom3.c +++ b/src/rom3.c @@ -1,11 +1,19 @@ #include "global.h" -#include "asm.h" +#include "rom3.h" #include "battle.h" +#include "battle_811DA74.h" +#include "battle_ai.h" +#include "battle_anim.h" +#include "battle_anim_81258BC.h" +#include "battle_anim_8137220.h" +#include "cable_club.h" #include "items.h" #include "link.h" #include "pokemon.h" +#include "rom_8094928.h" #include "species.h" #include "task.h" +#include "util.h" extern u8 unk_2000000[]; @@ -13,7 +21,6 @@ extern u8 unk_2000000[]; #define EWRAM_15000 ((u8 *)(unk_2000000 + 0x15000)) extern u16 gBattleTypeFlags; -extern const u32 gBitTable[]; extern u16 gBattleWeather; extern struct BattlePokemon gBattleMons[]; @@ -49,32 +56,6 @@ extern u8 gUnknown_030042B0[]; extern void (*gUnknown_030042D4)(void); extern void (*gUnknown_03004330[])(void); -extern void sub_800BF28(void); -extern void sub_8083C50(u8); -extern void nullsub_41(void); -extern void nullsub_91(void); -extern void battle_anim_clear_some_data(void); -extern void ClearBattleMonForms(void); -extern void BattleAI_HandleItemUseBeforeAISetup(void); -extern void sub_8094978(u8, int); -extern void sub_800BA78(void); -extern void sub_800B9A8(void); -extern void sub_800BD54(void); -extern void sub_8010800(void); -extern void sub_812B468(void); -extern void sub_8137224(void); -extern void sub_802BF74(void); -extern void sub_8032AE0(void); -extern void sub_8037510(void); -extern void sub_811DA78(void); -extern void dp01_prepare_buffer_wireless_probably(u8 a, u16, u8 *c); -extern void sub_800C1A8(u8); -extern void sub_800C47C(u8); -extern void sub_8007F4C(void); -extern u8 sub_8007ECC(void); -extern void sub_80155A4(); -extern u8 sub_8018324(); - void sub_800B858(void) { if (gBattleTypeFlags & BATTLE_TYPE_LINK) diff --git a/src/rom4.c b/src/rom4.c index 98060c3b1..2ddd5ed9f 100644 --- a/src/rom4.c +++ b/src/rom4.c @@ -1,24 +1,31 @@ #include "global.h" #include "rom4.h" -#include "asm.h" -#include "asm_fieldmap.h" #include "battle_setup.h" #include "berry.h" +#include "cable_club.h" #include "clock.h" #include "event_data.h" #include "field_camera.h" #include "field_control_avatar.h" #include "field_effect.h" +#include "field_fadetransition.h" +#include "field_ground_effect.h" #include "field_map_obj.h" #include "field_map_obj_helpers.h" #include "field_message_box.h" #include "field_player_avatar.h" -#include "field_weather.h" +#include "field_screen_effect.h" #include "field_special_scene.h" +#include "field_specials.h" +#include "field_tasks.h" +#include "field_weather.h" +#include "fieldmap.h" +#include "fldeff_flash.h" #include "heal_location.h" #include "link.h" #include "load_save.h" #include "main.h" +#include "map_name_popup.h" #include "menu.h" #include "metatile_behavior.h" #include "new_game.h" @@ -26,14 +33,19 @@ #include "play_time.h" #include "rng.h" #include "roamer.h" +#include "rotating_gate.h" #include "safari_zone.h" #include "script.h" #include "script_pokemon_80C4.h" +#include "secret_base.h" #include "songs.h" #include "sound.h" #include "start_menu.h" #include "task.h" #include "tileset_anim.h" +#include "time_events.h" +#include "tv.h" +#include "unknown_task.h" #include "wild_encounter.h" #ifdef SAPPHIRE @@ -48,11 +60,6 @@ struct UnkTVStruct u32 tv_field_4; }; -struct UCoords32 -{ - u32 x, y; -}; - extern struct WarpData gUnknown_020297F0; extern struct WarpData gUnknown_020297F8; extern struct WarpData gUnknown_02029800; @@ -71,8 +78,6 @@ extern void (*gFieldCallback)(void); extern u8 gUnknown_03004860; extern u8 gFieldLinkPlayerCount; -extern struct UnkTVStruct gUnknown_03004870; - extern u16 gUnknown_03004898; extern u16 gUnknown_0300489C; @@ -97,8 +102,6 @@ extern u8 TradeRoom_PromptToCancelLink[]; extern u8 TradeRoom_TerminateLink[]; extern u8 gUnknown_081A4508[]; -extern struct UCoords32 gUnknown_0821664C[]; - extern u8 (*gUnknown_082166A0[])(struct LinkPlayerMapObject *, struct MapObject *, u8); extern u8 (*gUnknown_082166AC[])(struct LinkPlayerMapObject *, struct MapObject *, u8); extern void (*gUnknown_082166D8[])(struct LinkPlayerMapObject *, struct MapObject *); @@ -567,7 +570,7 @@ void sub_8053994(u32 a1) not_trainer_hill_battle_pyramid(); if (a1 != 1 && v3) { - UpdateTVScreensOnMap(gUnknown_03004870.tv_field_0, gUnknown_03004870.tv_field_4); + UpdateTVScreensOnMap(gUnknown_03004870.width, gUnknown_03004870.height); sub_80BBCCC(1); } } diff --git a/src/rom6.c b/src/rom6.c index a8233eb5b..759aed93f 100644 --- a/src/rom6.c +++ b/src/rom6.c @@ -1,9 +1,11 @@ #include "global.h" #include "rom6.h" -#include "asm.h" #include "braille_puzzles.h" #include "field_effect.h" +#include "field_map_obj.h" #include "field_player_avatar.h" +#include "item_use.h" +#include "pokemon_menu.h" #include "rom4.h" #include "script.h" #include "songs.h" @@ -19,10 +21,6 @@ extern u8 gLastFieldPokeMenuOpened; extern void (*gUnknown_03005CE4)(void); extern u8 UseRockSmashScript[]; -extern void sub_808AB90(void); -extern void task08_080A1C44(u8); -extern u8 sub_80CA1C8(void); - static void task08_080C9820(u8); static void sub_810B3DC(u8); static void sub_810B428(u8); diff --git a/src/rom_8077ABC.c b/src/rom_8077ABC.c index 9561db690..a31a764fb 100644 --- a/src/rom_8077ABC.c +++ b/src/rom_8077ABC.c @@ -1,13 +1,17 @@ #include "global.h" +#include "rom_8077ABC.h" #include "battle.h" +#include "battle_anim.h" #include "blend_palette.h" #include "data2.h" #include "decompress.h" #include "palette.h" +#include "pokemon_icon.h" #include "species.h" #include "sprite.h" #include "task.h" #include "trig.h" +#include "util.h" #define GET_UNOWN_LETTER(personality) ((\ (((personality & 0x03000000) >> 24) << 6) \ @@ -89,7 +93,6 @@ struct BGCnt { extern struct OamData gOamData_837DF9C[]; extern const union AnimCmd *const gDummySpriteAnimTable[]; extern const union AffineAnimCmd *const gDummySpriteAffineAnimTable[]; -extern u8 gMiscBlank_Gfx[]; extern struct Struct_unk_2019348 unk_2019348; extern struct TransformStatus gTransformStatuses[]; @@ -108,45 +111,6 @@ extern struct OamMatrix gOamMatrices[]; extern struct Struct_2017810 unk_2017810[]; extern u8 gUnknown_0202F7BE; -extern u8 IsContest(); -extern bool8 sub_8078874(u8); -extern bool8 b_side_obj__get_some_boolean(u8); -extern void UpdateMonIconFrame(struct Sprite *sprite); -extern void CalcCenterToCornerVec(struct Sprite *sprite, u8 shape, u8 size, u8 affineMode); -extern void *species_and_otid_get_pal(u32, u32, u32); -extern void FreeSpriteOamMatrix(struct Sprite *sprite); -extern void ResetPaletteStructByUid(u16); -extern void DestroyAnimVisualTask(u8 task); -extern u8 CreateInvisibleSpriteWithCallback(void (*callback)(struct Sprite *)); - -u8 sub_8077E44(u8 slot, u16 species, u8 a3); -u8 battle_get_per_side_status(u8 slot); -u8 battle_side_get_owner(u8 slot); -void sub_8078314(struct Sprite *sprite); -void sub_8078364(struct Sprite *sprite); -void move_anim_8072740(struct Sprite *sprite); -void obj_translate_based_on_private_1_2_3_4(struct Sprite *sprite); -bool8 sub_8078B5C(struct Sprite *sprite); -u8 battle_get_per_side_status_permutated(u8 slot); -void sub_8078A5C(struct Sprite *sprite); -void sub_8078BB8(struct Sprite *sprite); -void sub_8078D44(struct Sprite *sprite); -bool8 sub_8078E38(); -void sub_8079518(struct Sprite *sprite); -void sub_80796F8(u8 task); -void sub_80797EC(struct Task *task); -void sub_8079814(u8 taskId); -void sub_8079BF4(s16 *bottom, s16 *top, void *ptr); -void *sub_8079BFC(s16 bottom, s16 top); -void sub_8079A64(u8 sprite); -u16 sub_8079B10(u8 sprite); -u8 sub_8079E90(u8 slot); -void sub_807A784(u8 taskId); -void sub_807A850(struct Task *task, u8 taskId); -void sub_807A8D4(struct Sprite *sprite); -void sub_807A960(struct Sprite *sprite); - - EWRAM_DATA union AffineAnimCmd *gUnknown_0202F7D4 = NULL; EWRAM_DATA u32 filler_0202F7D8[3] = {0}; diff --git a/src/safari_zone.c b/src/safari_zone.c index 986412826..fa6c11f52 100644 --- a/src/safari_zone.c +++ b/src/safari_zone.c @@ -1,7 +1,7 @@ #include "global.h" #include "safari_zone.h" -#include "asm.h" #include "event_data.h" +#include "field_fadetransition.h" #include "field_player_avatar.h" #include "main.h" #include "rom4.h" diff --git a/src/save.c b/src/save.c index 9ab6e83f6..570210fb0 100644 --- a/src/save.c +++ b/src/save.c @@ -2,7 +2,6 @@ #include "gba/gba.h" #include "gba/flash_internal.h" #include "save.h" -#include "asm.h" #include "load_save.h" #include "rom4.h" #include "save_failed_screen.h" diff --git a/src/save_failed_screen.c b/src/save_failed_screen.c index a3de0bd00..a64b3eb5f 100644 --- a/src/save_failed_screen.c +++ b/src/save_failed_screen.c @@ -1,12 +1,13 @@ #include "global.h" #include "gba/flash_internal.h" -#include "asm.h" +#include "save_failed_screen.h" #include "m4a.h" #include "main.h" #include "menu.h" #include "palette.h" #include "save.h" #include "sprite.h" +#include "starter_choose.h" #include "strings.h" #include "task.h" #include "text.h" @@ -35,12 +36,6 @@ extern struct SaveFailedClockStruct gSaveFailedClockInfo; extern u32 gDamagedSaveSectors; extern u32 gGameContinueCallback; -extern u8 gBirchHelpGfx[]; - -extern u8 gBirchGrassTilemap[]; -extern u8 gBirchBagTilemap[]; -extern u8 gBirchBagGrassPal[0x40]; - static const struct OamData sClockOamData = { 160, // Y diff --git a/src/save_menu_util.c b/src/save_menu_util.c index 8910bb300..b2dd662d6 100644 --- a/src/save_menu_util.c +++ b/src/save_menu_util.c @@ -1,9 +1,9 @@ #include "global.h" #include "save_menu_util.h" -#include "asm.h" #include "event_data.h" #include "menu.h" #include "pokedex.h" +#include "region_map.h" #include "string_util.h" #include "strings2.h" diff --git a/src/scrcmd.c b/src/scrcmd.c index f2b5090af..a394f2a55 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -1,43 +1,52 @@ #include "global.h" -#include "asm.h" -#include "asm_fieldmap.h" #include "battle_setup.h" #include "berry.h" #include "clock.h" #include "coins.h" +#include "contest_link_80C2020.h" #include "contest_painting.h" #include "data2.h" #include "decoration.h" +#include "decoration_inventory.h" #include "event_data.h" #include "field_door.h" #include "field_effect.h" +#include "field_fadetransition.h" +#include "field_map_obj.h" #include "field_map_obj_helpers.h" #include "field_message_box.h" #include "field_player_avatar.h" +#include "field_screen_effect.h" +#include "field_specials.h" +#include "field_tasks.h" #include "field_weather.h" +#include "fieldmap.h" #include "item.h" #include "main.h" #include "map_obj_lock.h" #include "menu.h" #include "money.h" +#include "mystery_event_script.h" #include "palette.h" +#include "party_menu.h" #include "pokemon.h" #include "rng.h" #include "rom4.h" #include "rtc.h" #include "script.h" #include "script_menu.h" +#include "script_movement.h" #include "script_pokemon_80C4.h" #include "script_pokemon_80F9.h" +#include "shop.h" +#include "slot_machine.h" #include "sound.h" #include "string_util.h" +#include "tv.h" typedef u16 (*SpecialFunc)(void); typedef void (*NativeFunc)(void); -extern struct Pokemon gPlayerParty[6]; // 0x3004360 -extern struct Pokemon gEnemyParty[6]; // 0x30045C0 - extern u32 gUnknown_0202E8AC; extern u32 gUnknown_0202E8B0; extern u16 gUnknown_0202E8B4; @@ -60,8 +69,6 @@ extern SpecialFunc gSpecials[]; extern u8 *gStdScripts[]; extern u8 *gStdScripts_End[]; -extern u8 * const gUnknown_083CE048[]; - // This is defined in here so the optimizer can't see its value when compiling // script.c. void * const gNullScriptPtr = NULL; @@ -1409,7 +1416,7 @@ bool8 ScrCmd_bufferstd(struct ScriptContext *ctx) { u8 stringVarIndex = ScriptReadByte(ctx); u16 index = VarGet(ScriptReadHalfword(ctx)); - StringCopy(sScriptStringVars[stringVarIndex], gUnknown_083CE048[index]); + StringCopy(sScriptStringVars[stringVarIndex], gUnknown_083CE048[index].text); return FALSE; } diff --git a/src/script.c b/src/script.c index 7a9c8e102..488a67de1 100644 --- a/src/script.c +++ b/src/script.c @@ -1,6 +1,5 @@ #include "global.h" #include "script.h" -#include "asm_fieldmap.h" #include "event_data.h" #define RAM_SCRIPT_MAGIC 51 diff --git a/src/script_menu.c b/src/script_menu.c index d6e328eb4..23e8bf2d9 100644 --- a/src/script_menu.c +++ b/src/script_menu.c @@ -1,6 +1,7 @@ #include "global.h" #include "script_menu.h" #include "event_data.h" +#include "field_effect.h" #include "menu.h" #include "palette.h" #include "script.h" @@ -573,10 +574,6 @@ extern u8 gPCText_WhichPCShouldBeAccessed[]; extern u16 gScriptResult; -// field_effect -extern void FreeResourcesAndDestroySprite(struct Sprite *sprite); -extern u8 CreateMonSprite_PicBox(u16, s16, s16, u8); - bool8 sub_80B5054(u8 left, u8 top, u8 var3, u8 var4) { if (FuncIsActiveTask(sub_80B52B4) == 1) diff --git a/src/script_movement.c b/src/script_movement.c index 2dc816532..31143ed6f 100644 --- a/src/script_movement.c +++ b/src/script_movement.c @@ -1,14 +1,12 @@ #include "global.h" -#include "asm.h" +#include "script_movement.h" +#include "field_map_obj.h" #include "field_map_obj_helpers.h" #include "task.h" +#include "util.h" -extern const u32 gBitTable[]; extern u8 *gUnknown_020384F8[]; -extern void UnfreezeMapObject(struct MapObject *); -extern bool8 FieldObjectIsSpecialAnimActive(struct MapObject *); - static void sub_80A2198(u8); static u8 sub_80A21E0(void); static bool8 sub_80A21F4(u8, u8, u8 *); diff --git a/src/script_pokemon_util_80C4BF0.c b/src/script_pokemon_util_80C4BF0.c index abc4dbc9e..c8171db52 100644 --- a/src/script_pokemon_util_80C4BF0.c +++ b/src/script_pokemon_util_80C4BF0.c @@ -1,9 +1,13 @@ #include "global.h" -#include "asm.h" #include "battle.h" #include "berry.h" +#include "choose_party.h" #include "contest.h" +#include "contest_link_80C2020.h" +#include "contest_painting.h" #include "data2.h" +#include "daycare.h" +#include "debug.h" #include "decompress.h" #include "event_data.h" #include "items.h" @@ -22,19 +26,7 @@ #define CONTEST_ENTRY_PIC_LEFT 10 #define CONTEST_ENTRY_PIC_TOP 3 -extern void sub_80C46EC(void); -extern void sub_80C4740(void); -extern void sub_80C48F4(void); -extern void sub_80B2A7C(u8); -extern void sub_80AAF30(void); // matsuda debug? -extern u8 sub_80B2C4C(u8, u8); -extern void CB2_ContestPainting(void); -extern void sub_8042044(struct Pokemon *mon, u16, u8); -extern void sub_8121E10(void); -extern void sub_8121E34(void); - extern struct SpriteTemplate gUnknown_02024E8C; -extern struct SpritePalette *sub_80409C8(u16, u32, u32); extern u8 gContestPlayerMonIndex; extern u8 gIsLinkContest; @@ -436,7 +428,7 @@ void ShowContestEntryMonPic(void) HandleLoadSpecialPokePic((struct SpriteSheet *)&gMonFrontPicTable[species].data, gMonFrontPicCoords[species].coords, gMonFrontPicCoords[species].y_offset, (u32)gUnknown_081FAF4C[0], gUnknown_081FAF4C[1], species, var1); - paletteData = sub_80409C8(species, var2, var1); + paletteData = (struct SpritePalette *) sub_80409C8(species, var2, var1); LoadCompressedObjectPalette(paletteData); GetMonSpriteTemplate_803C56C(species, 1); gUnknown_02024E8C.paletteTag = paletteData->tag; diff --git a/src/script_pokemon_util_80F99CC.c b/src/script_pokemon_util_80F99CC.c index ee140187f..606cd9dd4 100644 --- a/src/script_pokemon_util_80F99CC.c +++ b/src/script_pokemon_util_80F99CC.c @@ -1,9 +1,13 @@ #include "global.h" -#include "asm.h" #include "battle_party_menu.h" +#include "choose_party.h" +#include "contest.h" #include "data2.h" +#include "field_fadetransition.h" #include "palette.h" +#include "party_menu.h" #include "pokemon.h" +#include "pokemon_summary_screen.h" #include "rom4.h" #include "script.h" #include "script_pokemon_80F9.h" @@ -20,22 +24,6 @@ extern u16 gScriptResult; extern void (*gFieldCallback)(void); -extern void OpenPartyMenu(u8, u8); -extern void TryCreatePartyMenuMonIcon(u8, u8, struct Pokemon *); -extern void LoadHeldItemIconGraphics(void); -extern void CreateHeldItemIcons_806DC34(); // undefined args -extern u8 sub_806BD58(u8, u8); -extern void PartyMenuPrintMonsLevelOrStatus(void); -extern void PrintPartyMenuMonNicknames(void); -extern u8 sub_806B58C(u8); -extern u8 sub_80AE47C(struct Pokemon *party); -extern void sub_806BC3C(u8, u8); -extern u16 sub_806BD80(); // undefined args in battle_party_menu.c -extern u8 sub_806CA38(); -extern void sub_8123138(u8); -extern u8 sub_8040574(struct Pokemon *party); -extern void sub_809D9F0(struct Pokemon *party, u8, u8, void *, u32); - void sub_80F99CC(void) { u8 taskId; @@ -71,7 +59,7 @@ void sub_80F9A8C(u8 taskId) if(!gPaletteFade.active) { gPaletteFade.bufferTransferDisabled = 1; - OpenPartyMenu(gTasks[taskId].data[0], 0); + OpenPartyMenu((u8) gTasks[taskId].data[0], 0); DestroyTask(taskId); } } diff --git a/src/secret_base.c b/src/secret_base.c index adcd47d66..6291051a6 100644 --- a/src/secret_base.c +++ b/src/secret_base.c @@ -1,22 +1,25 @@ #include "global.h" -#include "string_util.h" -#include "strings.h" -#include "text.h" +#include "secret_base.h" +#include "decoration.h" #include "event_data.h" -#include "vars.h" -#include "rom4.h" -#include "asm.h" -#include "script.h" -#include "field_player_avatar.h" #include "field_camera.h" -#include "map_constants.h" -#include "task.h" -#include "palette.h" +#include "field_fadetransition.h" +#include "field_player_avatar.h" #include "field_weather.h" +#include "fieldmap.h" +#include "main.h" +#include "map_constants.h" +#include "map_name_popup.h" #include "metatile_behavior.h" +#include "palette.h" #include "pokemon.h" +#include "rom4.h" #include "script.h" -#include "decoration.h" +#include "string_util.h" +#include "strings.h" +#include "task.h" +#include "text.h" +#include "vars.h" extern u8 gUnknown_020387DC; extern u16 gSpecialVar_0x8004; @@ -30,8 +33,8 @@ extern const struct u16 unk_083D1358_1; } gUnknown_083D1358[7]; extern const u8 gUnknown_083D1374[4 * 16]; +extern void *gUnknown_0300485C; extern const u8 gUnknown_083D13EC[12]; -extern const u8 sub_80BCCA4(u8); extern u8 gUnknown_081A2E14[]; @@ -823,8 +826,6 @@ u8 sub_80BC14C(u8 sbid) return 0; } - - u8 *sub_80BC190(u8 *dest, u8 arg1) { // 80bc190 u8 local1; u8 *str; diff --git a/src/shop.c b/src/shop.c index cd39b075a..d53646a88 100644 --- a/src/shop.c +++ b/src/shop.c @@ -1,9 +1,12 @@ #include "global.h" -#include "asm.h" +#include "shop.h" #include "decompress.h" +#include "field_fadetransition.h" #include "field_weather.h" +#include "item_menu.h" #include "main.h" #include "menu.h" +#include "menu_helpers.h" #include "money.h" #include "palette.h" #include "script.h" @@ -11,6 +14,8 @@ #include "sprite.h" #include "strings.h" #include "task.h" +#include "tv.h" +#include "unknown_task.h" struct UnknownShopStruct { @@ -35,26 +40,6 @@ extern u16 gBuyMenuFrame_Tilemap[]; extern u16 gMenuMoneyPal[16]; extern u16 gUnknown_083CC710[2]; -extern void sub_80A6300(void); -extern void sub_80BE3BC(void); -extern void DisplayItemMessageOnField(u8, const u8*, TaskFunc, u16); -extern u8 sub_807D770(void); -extern void pal_fill_black(void); -extern void sub_80B3764(int, int); -extern void sub_80B37EC(void); -extern void sub_80B40E8(u8); -extern void BuyMenuDrawMapGraphics(void); -extern void sub_80F944C(void); -extern void CreateVerticalScrollIndicators(u32, u32, u32); // unknown args -extern void sub_80F979C(u32, u32); // unknown args - -void sub_80B2E38(u8); -void HandleShopMenuQuit(u8); -void sub_80B2FA0(u8); -void BuyMenuDrawGraphics(void); -void sub_80B3240(void); -void sub_80B3270(void); - u8 CreateShopMenu(bool8 var) { ScriptContext2_Enable(); diff --git a/src/slot_machine.c b/src/slot_machine.c index c087bf6b4..c9a06a758 100644 --- a/src/slot_machine.c +++ b/src/slot_machine.c @@ -1,4 +1,5 @@ #include "global.h" +#include "slot_machine.h" #include "decompress.h" #include "palette.h" #include "task.h" @@ -31,11 +32,6 @@ extern const u16 gUnknown_08E95A18[]; extern u16 gUnknown_08E95AB8[]; extern u16 gUnknown_08E95FB8[]; - -void sub_8104DA4(void); - -u8 sub_8105BB4(u8, u8, s16); - static void LoadSlotMachineWheelOverlay(void); void sub_8104CAC(u8 arg0) { diff --git a/src/smokescreen.c b/src/smokescreen.c index 0406c1cb3..8345cb6ad 100644 --- a/src/smokescreen.c +++ b/src/smokescreen.c @@ -2,8 +2,8 @@ #include "data2.h" #include "decompress.h" #include "sprite.h" +#include "util.h" -extern u8 CreateInvisibleSpriteWithCallback(void (*)(struct Sprite *)); static void sub_8046388(struct Sprite *); diff --git a/src/sound.c b/src/sound.c index ed69ca01d..c9c4916b0 100644 --- a/src/sound.c +++ b/src/sound.c @@ -1,9 +1,9 @@ #include "global.h" #include "gba/m4a_internal.h" #include "sound.h" -#include "asm.h" #include "battle.h" #include "m4a.h" +#include "main.h" #include "songs.h" #include "task.h" @@ -13,7 +13,7 @@ struct Fanfare u16 duration; }; -// Hack: different prototype than definition +// FIXME: different prototype than definition u32 SpeciesToCryId(u32); extern u16 gBattleTypeFlags; diff --git a/src/sprite.c b/src/sprite.c index 409c66cfa..fb8c2b648 100644 --- a/src/sprite.c +++ b/src/sprite.c @@ -57,7 +57,6 @@ static void ClearSpriteCopyRequests(void); static void ResetOamMatrices(void); static void ResetSprite(struct Sprite *sprite); static s16 AllocSpriteTiles(u16 tileCount); -u8 SpriteTileAllocBitmapOp(u16 bit, u8 op); static void RequestSpriteFrameImageCopy(u16 index, u16 tileNum, const struct SpriteFrameImage *images); static void ResetAllSprites(void); static void BeginAnim(struct Sprite *sprite); diff --git a/src/start_menu.c b/src/start_menu.c index 80080cd43..e05f3a999 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -1,10 +1,11 @@ #include "global.h" #include "start_menu.h" -#include "asm.h" #include "event_data.h" #include "field_map_obj_helpers.h" #include "field_player_avatar.h" #include "field_weather.h" +#include "fieldmap.h" +#include "item_menu.h" #include "load_save.h" #include "main.h" #include "map_obj_lock.h" @@ -12,6 +13,8 @@ #include "option_menu.h" #include "palette.h" #include "pokedex.h" +#include "pokemon_menu.h" +#include "pokenav.h" #include "rom4.h" #include "safari_zone.h" #include "save.h" @@ -25,6 +28,7 @@ #include "strings2.h" #include "task.h" #include "trainer_card.h" +#include "unknown_task.h" //Menu actions enum { @@ -49,7 +53,6 @@ extern u16 gSaveFileStatus; extern u16 gScriptResult; extern u8 (*gCallback_03004AE8)(void); extern u8 gUnknown_03004860; -extern u8 gNumSafariBalls; EWRAM_DATA static u8 sStartMenuCursorPos = 0; EWRAM_DATA static u8 sNumStartMenuActions = 0; diff --git a/src/starter_choose.c b/src/starter_choose.c index 0ed8315fc..f30be8e08 100644 --- a/src/starter_choose.c +++ b/src/starter_choose.c @@ -1,6 +1,5 @@ #include "global.h" #include "starter_choose.h" -#include "asm.h" #include "data2.h" #include "decompress.h" #include "main.h" @@ -15,6 +14,7 @@ #include "strings.h" #include "task.h" #include "trig.h" +#include "unknown_task.h" extern u16 gScriptResult; extern struct SpriteTemplate gUnknown_02024E8C; @@ -23,7 +23,7 @@ extern struct SpriteTemplate gUnknown_02024E8C; // Graphics Data //-------------------------------------------------- -const u16 gBirchBagGrassPal[][16] = +const u16 gBirchBagGrassPal[2][16] = { INCBIN_U16("graphics/misc/birch_bag.gbapal"), INCBIN_U16("graphics/misc/birch_grass.gbapal"), diff --git a/src/strings.c b/src/strings.c index fa083f00d..cc0641dce 100644 --- a/src/strings.c +++ b/src/strings.c @@ -1,4 +1,5 @@ #include "global.h" +#include "strings.h" #if ENGLISH // placeholder strings @@ -923,7 +924,6 @@ const u8 gSystemText_NoSaveFileNoTime[] = _("There is no save file, so the time\ const u8 gSystemText_ClockAdjustmentUsable[] = _("The in-game clock adjustment system\nis now useable."); const u8 gSystemText_Saving[] = _("SAVING...\nDON’T TURN OFF THE POWER."); #elif GERMAN -#include "global.h" // placeholder strings const u8 gExpandedPlaceholder_Empty[] = _(""); diff --git a/src/time_events.c b/src/time_events.c index 8cbf52a1a..e1b9a2e9e 100644 --- a/src/time_events.c +++ b/src/time_events.c @@ -1,5 +1,7 @@ #include "global.h" +#include "time_events.h" #include "event_data.h" +#include "field_weather.h" #include "pokemon.h" #include "rng.h" #include "rom4.h" @@ -7,16 +9,14 @@ #include "script.h" #include "task.h" -extern bool8 sub_807DDFC(void); - -u32 GetMirageRnd(void) +static u32 GetMirageRnd(void) { u32 hi = VarGet(VAR_MIRAGE_RND_H); u32 lo = VarGet(VAR_MIRAGE_RND_L); return (hi << 16) | lo; } -void SetMirageRnd(u32 rnd) +static void SetMirageRnd(u32 rnd) { VarSet(VAR_MIRAGE_RND_H, rnd >> 16); VarSet(VAR_MIRAGE_RND_L, rnd); diff --git a/src/title_screen.c b/src/title_screen.c index 241e5489e..12c31d10a 100644 --- a/src/title_screen.c +++ b/src/title_screen.c @@ -1,7 +1,6 @@ #include "global.h" #include "gba/m4a_internal.h" #include "title_screen.h" -#include "asm.h" #include "clear_save_data_menu.h" #include "decompress.h" #include "event_data.h" @@ -10,9 +9,11 @@ #include "main.h" #include "main_menu.h" #include "palette.h" +#include "reset_rtc_screen.h" #include "sound.h" #include "sprite.h" #include "task.h" +#include "unknown_task.h" extern u8 gReservedSpritePaletteCount; extern struct MusicPlayerInfo gMPlay_BGM; diff --git a/src/trainer_card.c b/src/trainer_card.c index ef3a2d857..b2a1ad71b 100644 --- a/src/trainer_card.c +++ b/src/trainer_card.c @@ -1,7 +1,8 @@ #include "global.h" #include "trainer_card.h" -#include "asm.h" +#include "easy_chat.h" #include "event_data.h" +#include "field_effect.h" #include "link.h" #include "main.h" #include "menu.h" @@ -16,6 +17,8 @@ #include "string_util.h" #include "strings2.h" #include "task.h" +#include "unknown_task.h" +#include "util.h" typedef void (*Callback)(void); @@ -68,9 +71,8 @@ extern u16 gUnknown_08E8D9C0[]; extern bool8 (*const gUnknown_083B5EBC[])(struct Task *); extern bool8 (*const gUnknown_083B5ED8[])(struct Task *); -// Other signature than on save_menu_util.h +// FIXME: Other signature than on save_menu_util.h void FormatPlayTime(u8 *playtime, u16 hours, u16 minutes, s16 colon); - u16 GetPokedexSeenCount(void); enum diff --git a/src/trainer_see.c b/src/trainer_see.c index 6c2bf0ab0..9b7a47f6b 100644 --- a/src/trainer_see.c +++ b/src/trainer_see.c @@ -1,7 +1,5 @@ #include "global.h" #include "trainer_see.h" -#include "asm.h" -#include "asm_fieldmap.h" #include "battle_setup.h" #include "field_effect.h" #include "field_map_obj.h" @@ -9,6 +7,7 @@ #include "script.h" #include "sprite.h" #include "task.h" +#include "util.h" extern bool8 (*gIsTrainerInRange[])(struct MapObject *, u16, s16, s16); extern bool8 (*gTrainerSeeFuncList[])(u8, struct Task *, struct MapObject *); @@ -1,7 +1,9 @@ #include "global.h" -#include "asm.h" #include "tv.h" +#include "battle_tower.h" +#include "contest_painting.h" #include "data2.h" +#include "easy_chat.h" #include "event_data.h" #include "fieldmap.h" #include "field_message_box.h" @@ -19,10 +21,23 @@ #include "battle.h" #include "link.h" #include "easy_chat.h" +#include "field_map_obj.h" +#include "field_specials.h" #include "item.h" #include "items.h" -#include "contest_painting.h" +#include "link.h" +#include "map_constants.h" +#include "naming_screen.h" +#include "pokedex.h" +#include "region_map.h" +#include "rng.h" +#include "rom4.h" #include "rtc.h" +#include "script_menu.h" +#include "species.h" +#include "string_util.h" +#include "strings.h" +#include "text.h" struct UnkTvStruct { @@ -40,13 +55,13 @@ struct OutbreakPokemon /*0x0B*/ u8 location; }; -extern u8 *gUnknown_083D1464[3]; -extern u8 gUnknown_02038694; - struct TVSaleItem { u16 item_id; u16 item_amount; }; + +extern u8 gUnknown_02038694; + extern struct TVSaleItem gUnknown_02038724[3]; extern u16 gSpecialVar_0x8004; @@ -73,11 +88,8 @@ extern u8 *gTVFishingGuruAdviceTextGroup[]; extern u8 *gTVWorldOfMastersTextGroup[]; extern struct OutbreakPokemon gPokeOutbreakSpeciesList[5]; -extern void sub_80BEBF4(void); - extern u16 gUnknown_020387E0; extern u16 gUnknown_020387E2; -extern const u8 *gUnknown_083CE048[]; extern const u8 *gTVNewsTextGroup1[]; extern const u8 *gTVNewsTextGroup2[]; @@ -85,7 +97,20 @@ extern const u8 *gTVNewsTextGroup3[]; extern u16 gScriptLastTalked; -u32 GetPlayerTrainerId(void); + +extern u8 gScriptContestCategory; +extern u8 gScriptContestRank; +extern u8 gUnknown_03004316[11]; +extern u8 gUnknown_02024D26; + +extern u16 gUnknown_02024C04; + +extern u8 ewram[]; +#define gUnknown_02007000 (*(ewramStruct_02007000 *)(ewram + 0x7000)) +extern u8 gUnknown_020387E4; + +extern u8 gUnknown_03000720; +extern s8 gUnknown_03000722; void ClearTVShowData(void) { @@ -302,7 +327,7 @@ void SetTVMetatilesOnMap(int, int, u16); bool8 sub_80BECA0(void); bool8 IsTVShowInSearchOfTrainersAiring(void); -void UpdateTVScreensOnMap(int a0, int a1) +void UpdateTVScreensOnMap(int width, int height) { u8 bigMovieOrEmergencyNewsOnTv; FlagSet(SYS_TV_WATCH); @@ -310,19 +335,19 @@ void UpdateTVScreensOnMap(int a0, int a1) switch (bigMovieOrEmergencyNewsOnTv) { case 1: - SetTVMetatilesOnMap(a0, a1, 0x3); + SetTVMetatilesOnMap(width, height, 0x3); break; case 2: break; default: if (gSaveBlock1.location.mapGroup == MAP_GROUP_LILYCOVE_CITY_COVE_LILY_MOTEL_1F && gSaveBlock1.location.mapNum == MAP_ID_LILYCOVE_CITY_COVE_LILY_MOTEL_1F) { - SetTVMetatilesOnMap(a0, a1, 0x3); + SetTVMetatilesOnMap(width, height, 0x3); } else if (FlagGet(SYS_TV_START) && (sub_80BD8B8() != 0xff || sub_80BECA0() != 0xff || IsTVShowInSearchOfTrainersAiring())) { FlagReset(SYS_TV_WATCH); - SetTVMetatilesOnMap(a0, a1, 0x3); + SetTVMetatilesOnMap(width, height, 0x3); } } } @@ -1141,8 +1166,6 @@ void UpdateMassOutbreakTimeLeft(u16 arg0) gSaveBlock1.outbreakUnk5 -= arg0; } -void sub_80BE9D4(); - void sub_80BE97C(bool8 flag) { u8 var0, var1; @@ -1241,15 +1264,6 @@ void sub_80BEA88(void) } } -int sub_80BEBC8(struct UnknownSaveStruct2ABC *arg0); -void sub_80BEC10(u8); -void sub_80BF588(TVShow tvShows[]); -void sub_80BF6D8(void); -bool8 sub_80BF77C(u16); -bool8 sub_80BEE48(u8); - -bool8 IsPriceDiscounted(u8); - void sub_80BEB20(void) { u16 rval; struct SaveBlock1 *save; @@ -1453,16 +1467,16 @@ void sub_80BEF10(u8 strvaridx, u8 rank) switch (rank) { case NORMAL_RANK: - StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[NORMAL_RANK + 5]); + StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[NORMAL_RANK + 5].text); break; case SUPER_RANK: - StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[SUPER_RANK + 5]); + StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[SUPER_RANK + 5].text); break; case HYPER_RANK: - StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[HYPER_RANK + 5]); + StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[HYPER_RANK + 5].text); break; case MASTER_RANK: - StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[MASTER_RANK + 5]); + StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[MASTER_RANK + 5].text); break; } } @@ -1472,19 +1486,19 @@ void CopyContestCategoryToStringVar(u8 strvaridx, u8 category) switch (category) { case CONTEST_COOL: - StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[CONTEST_COOL]); + StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[CONTEST_COOL].text); break; case CONTEST_BEAUTY: - StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[CONTEST_BEAUTY]); + StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[CONTEST_BEAUTY].text); break; case CONTEST_CUTE: - StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[CONTEST_CUTE]); + StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[CONTEST_CUTE].text); break; case CONTEST_SMART: - StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[CONTEST_SMART]); + StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[CONTEST_SMART].text); break; case CONTEST_TOUGH: - StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[CONTEST_TOUGH]); + StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[CONTEST_TOUGH].text); break; } } @@ -2158,10 +2172,6 @@ void sub_80BFD20(void) RemoveFieldObjectByLocalIdAndMap(5, gSaveBlock1.location.mapNum, gSaveBlock1.location.mapGroup); } -extern u8 ewram[]; -#define gUnknown_02007000 (*(ewramStruct_02007000 *)(ewram + 0x7000)) -extern u8 gUnknown_020387E4; - typedef union ewramStruct_02007000 { TVShow tvshows[4][25]; struct UnknownSaveStruct2ABC unknown_2abc[4][16]; @@ -2450,9 +2460,6 @@ s8 sub_80C019C(TVShow tvShows[]) { return -1; } -void sub_80C03A8(u8 showidx); -void sub_80C03C8(u16 species, u8 showidx); - #ifdef NONMATCHING void sub_80C01D4(void) { @@ -2875,22 +2882,6 @@ void sub_80C05C4(struct UnknownSaveStruct2ABC a0[16], struct UnknownSaveStruct2A } } -void DoTVShowPokemonFanClubLetter(void); -void DoTVShowRecentHappenings(void); -void DoTVShowPokemonFanClubOpinions(void); -void nullsub_22(void); -void DoTVShowPokemonNewsMassOutbreak(void); -void DoTVShowBravoTrainerPokemonProfile(void); -void DoTVShowBravoTrainerBattleTowerProfile(void); -void DoTVShowPokemonTodaySuccessfulCapture(void); -void DoTVShowTodaysSmartShopper(void); -void DoTVShowTheNameRaterShow(void); -void DoTVShowPokemonTodayFailedCapture(void); -void DoTVShowPokemonAngler(void); -void DoTVShowTheWorldOfMasters(void); - -bool8 sub_80C06E8(struct UnknownSaveStruct2ABC *arg0, struct UnknownSaveStruct2ABC *arg1, s8 arg2); - void sub_80C06BC(struct UnknownSaveStruct2ABC *arg0[16], struct UnknownSaveStruct2ABC *arg1[16]) { struct UnknownSaveStruct2ABC *str0; struct UnknownSaveStruct2ABC *str1; @@ -3298,10 +3289,6 @@ void DoTVShowTodaysSmartShopper(void) ShowFieldMessage(gTVSmartShopperTextGroup[switchval]); } -void TVShowConvertInternationalString(u8 *, u8 *, u8); - -void TakeTVShowInSearchOfTrainersOffTheAir(void); - void DoTVShowTheNameRaterShow(void) { TVShow *tvShow; u8 switchval; diff --git a/src/unknown_debug_menu.c b/src/unknown_debug_menu.c index bbaeef63a..2cdcbaabd 100644 --- a/src/unknown_debug_menu.c +++ b/src/unknown_debug_menu.c @@ -7,7 +7,7 @@ extern u8 (*gCallback_03004AE8)(void); extern const struct MenuAction gUnknown_0842C29C[]; -u8 sub_814A464(void); +static u8 sub_814A464(void); int unref_sub_814A414(void) { @@ -19,7 +19,7 @@ int unref_sub_814A414(void) return 0; } -u8 sub_814A464(void) +static u8 sub_814A464(void) { s8 result = ProcessMenuInput(); if (result == -2) diff --git a/src/util.c b/src/util.c index 55608854c..c83fe8c8a 100644 --- a/src/util.c +++ b/src/util.c @@ -1,5 +1,5 @@ #include "global.h" -#include "sprite.h" +#include "util.h" extern const struct SpriteTemplate gInvisibleSpriteTemplate; extern const u8 gSpriteDimensions[3][4][2]; diff --git a/src/wallclock.c b/src/wallclock.c index d55d14edb..efc7dd42a 100644 --- a/src/wallclock.c +++ b/src/wallclock.c @@ -1,6 +1,5 @@ #include "global.h" #include "wallclock.h" -#include "asm.h" #include "decompress.h" #include "main.h" #include "menu.h" @@ -11,12 +10,12 @@ #include "strings2.h" #include "task.h" #include "trig.h" +#include "unknown_task.h" extern u16 gSpecialVar_0x8004; extern u8 gMiscClock_Gfx[]; extern u8 gUnknown_08E95774[]; extern u8 gUnknown_08E954B0[]; -extern const struct MenuAction gMenuYesNoItems[]; extern u16 gMiscClockMale_Pal[]; extern u16 gMiscClockFemale_Pal[]; diff --git a/src/wild_encounter.c b/src/wild_encounter.c index 9dfcf0e5c..96f47c067 100644 --- a/src/wild_encounter.c +++ b/src/wild_encounter.c @@ -1,41 +1,19 @@ #include "global.h" #include "wild_encounter.h" #include "abilities.h" -#include "asm.h" #include "battle_setup.h" #include "event_data.h" #include "field_player_avatar.h" +#include "fieldmap.h" #include "metatile_behavior.h" +#include "pokeblock.h" #include "rng.h" #include "roamer.h" #include "rom4.h" #include "safari_zone.h" #include "script.h" #include "species.h" - -struct WildPokemon -{ - u8 minLevel; - u8 maxLevel; - u16 species; -}; - -struct WildPokemonInfo -{ - u8 encounterRate; - const struct WildPokemon *wildPokemon; -}; - -struct WildPokemonHeader -{ - u8 mapGroup; - u8 mapNum; - struct WildPokemonInfo *landMonsInfo; - struct WildPokemonInfo *waterMonsInfo; - struct WildPokemonInfo *rockSmashMonsInfo; - struct WildPokemonInfo *fishingMonsInfo; -}; - +#include "tv.h" const struct WildPokemon PetalburgCity_WaterMons [] = { @@ -2921,9 +2899,6 @@ const struct WildPokemonInfo Underwater2_WaterMonsInfo = {4, Underwater2_WaterMo extern u16 gRoute119WaterTileData[]; -extern struct WildPokemonHeader gWildMonHeaders[]; -extern struct Pokemon gEnemyParty[6]; -extern struct Pokemon gPlayerParty[6]; extern u16 gScriptResult; extern struct WildPokemon gWildFeebasRoute119Data; extern u8 Event_RepelWoreOff[]; |