fix merge conflicts

This commit is contained in:
camthesaxman 2017-06-17 19:46:25 -05:00
commit 82ddae9db4
221 changed files with 2062 additions and 1702 deletions

View File

@ -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

View File

@ -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*/);

View File

@ -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

View File

@ -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

11
include/battle_811DA74.h Normal file
View File

@ -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

View File

@ -27,5 +27,6 @@ void BattleAI_DoAIProcessing(void);
void sub_810745C(void);
void AIStackPushVar(u8 *);
u8 AIStackPop(void);
void BattleAI_HandleItemUseBeforeAISetup(void);
#endif

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

7
include/battle_message.h Normal file
View File

@ -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

8
include/battle_records.h Normal file
View File

@ -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

7
include/battle_tower.h Normal file
View File

@ -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

View File

@ -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

6
include/berry_blender.h Normal file
View File

@ -0,0 +1,6 @@
#ifndef GUARD_BERRY_BLENDER_H
#define GUARD_BERRY_BLENDER_H
void sub_80516C4(u8, u16);
#endif // GUARD_BERRY_BLENDER_H

22
include/cable_club.h Normal file
View File

@ -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

8
include/choose_party.h Normal file
View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

28
include/cute_sketch.h Normal file
View File

@ -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

14
include/daycare.h Normal file
View File

@ -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

7
include/debug.h Normal file
View File

@ -0,0 +1,7 @@
#ifndef GUARD_DEBUG_H
#define GUARD_DEBUG_H
// matsuda_debug_menu
void sub_80AAF30(void);
#endif // GUARD_DEBUG_H

View File

@ -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

View File

@ -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

View File

@ -6,5 +6,6 @@
void InitDewfordTrend(void);
void sub_80FA4E4(void *, u32, u8);
void UpdateDewfordTrendPerDay(u16);
#endif

6
include/diploma.h Normal file
View File

@ -0,0 +1,6 @@
#ifndef GUARD_DIPLOMA_H
#define GUARD_DIPLOMA_H
void sub_8145D88(void);
#endif // GUARD_DIPLOMA_H

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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);

View File

@ -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

6
include/field_poison.h Normal file
View File

@ -0,0 +1,6 @@
#ifndef GUARD_FIELD_POISON_H
#define GUARD_FIELD_POISON_H
s32 overworld_poison(void);
#endif // GUARD_FIELD_POISON_H

View File

@ -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

View File

@ -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

13
include/field_specials.h Normal file
View File

@ -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

8
include/field_tasks.h Normal file
View File

@ -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

View File

@ -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

View File

@ -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

9
include/fldeff_80C5CD4.h Normal file
View File

@ -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

13
include/fldeff_cut.h Normal file
View File

@ -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

8
include/fldeff_flash.h Normal file
View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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("");

9
include/hall_of_fame.h Normal file
View File

@ -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

View File

@ -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

29
include/item_menu.h Normal file
View File

@ -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

28
include/item_use.h Normal file
View File

@ -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

6
include/learn_move.h Normal file
View File

@ -0,0 +1,6 @@
#ifndef GUARD_LEARN_MOVE_H
#define GUARD_LEARN_MOVE_H
void sub_8132670(void);
#endif // GUARD_LEARN_MOVE_H

16
include/mail_data.h Normal file
View File

@ -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

7
include/map_name_popup.h Normal file
View File

@ -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

View File

@ -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

View File

@ -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 *);

View File

@ -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

View File

@ -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

View File

@ -1,6 +1,21 @@
#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;
};
// TODO: Unify these two structs
#define DATA_COUNT (6)
@ -39,4 +54,98 @@ extern u8 ewram[];
#define ewram1B000_alt (*(struct Struct201B000 *)(ewram + 0x1B000))
#define EWRAM_1B000 ewram1B000_alt
#endif // GUARD_PARTY_MENU_H
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

View File

@ -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

7
include/pokeball.h Normal file
View File

@ -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

10
include/pokeblock.h Normal file
View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

14
include/pokemon_icon.h Normal file
View File

@ -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

View File

@ -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

14
include/pokemon_menu.h Normal file
View File

@ -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

View File

@ -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

View File

@ -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

19
include/pokenav.h Normal file
View File

@ -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

13
include/region_map.h Normal file
View File

@ -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

View File

@ -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

25
include/rom3.h Normal file
View File

@ -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

View File

@ -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);

59
include/rom_8077ABC.h Normal file
View File

@ -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

10
include/rom_8094928.h Normal file
View File

@ -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

8
include/rotating_gate.h Normal file
View File

@ -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

View File

@ -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);

View File

@ -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);

View File

@ -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

15
include/secret_base.h Normal file
View File

@ -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

18
include/shop.h Normal file
View File

@ -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

8
include/slot_machine.h Normal file
View File

@ -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

View File

@ -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);

View File

@ -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);

8
include/time_events.h Normal file
View File

@ -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

View File

@ -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);

6
include/trader.h Normal file
View File

@ -0,0 +1,6 @@
#ifndef GUARD_TRADER_H
#define GUARD_TRADER_H
void sub_81099CC(void);
#endif // GUARD_TRADER_H

View File

@ -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

14
include/unknown_task.h Normal file
View File

@ -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

13
include/util.h Normal file
View File

@ -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

View File

@ -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);

View File

@ -1,5 +1,4 @@
#include "global.h"
#include "asm.h"
struct BardSound
{

Some files were not shown because too many files have changed in this diff Show More