From e4a84faabf3f4e2f005e55a88babce7e8ae49c58 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 6 Jan 2018 10:49:52 -0500 Subject: through unref_sub_8095C60 --- include/decoration.h | 5 ----- include/pokemon.h | 8 ++++---- 2 files changed, 4 insertions(+), 9 deletions(-) (limited to 'include') diff --git a/include/decoration.h b/include/decoration.h index 972e82faf..3d619a598 100644 --- a/include/decoration.h +++ b/include/decoration.h @@ -127,10 +127,6 @@ extern u8 gUnknown_020388F5; extern u8 gUnknown_020388F6; extern u8 gUnknown_020388D6[16]; extern u8 gUnknown_020388E6[12]; -extern u16 gSpecialVar_0x8004; -extern u16 gSpecialVar_0x8005; -extern u16 gSpecialVar_0x8006; -extern u16 gSpecialVar_0x8007; extern u16 gUnknown_020391A4; extern u16 gUnknown_020391A6; extern u8 gUnknown_020391A8; @@ -161,7 +157,6 @@ extern const struct YesNoFuncTable gUnknown_083ECAA0; extern u8 sub_8134194(u8); // src/decoration_inventory extern bool8 sub_81341D4(void); // src/decoration_inventory extern void sub_8134104(u8); // src/decoration_inventory -extern bool8 sub_807D770(void); extern void sub_8109DAC(u8); // src/trader extern void ReshowPlayerPC(u8); // src/player_pc void Task_SecretBasePC_Decoration(u8); diff --git a/include/pokemon.h b/include/pokemon.h index a1c30f1f3..89599d994 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -418,10 +418,10 @@ struct BattleMove struct PokemonStorage { - /*0x00*/ u8 currentBox; - /*0x01*/ struct BoxPokemon boxes[14][30]; - u8 boxNames[14][9]; - u8 unkArray[14]; + /*0x0000*/ u8 currentBox; + /*0x0004*/ struct BoxPokemon boxes[14][30]; + /*0x8344*/ u8 boxNames[14][9]; + /*0x83c2*/ u8 unkArray[14]; }; struct SpindaSpot -- cgit v1.2.3 From 4db981200c1d011c370a45d123c31b397b7d62cc Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 6 Jan 2018 11:54:46 -0500 Subject: nonmatching unref_sub_8095D08 --- include/gba/macro.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/gba/macro.h b/include/gba/macro.h index d9e6739b3..540e08375 100644 --- a/include/gba/macro.h +++ b/include/gba/macro.h @@ -105,7 +105,7 @@ #define DmaClearLarge(dmaNum, dest, size, block, bit) \ { \ - const void *_dest = dest; \ + void *_dest = dest; \ u32 _size = size; \ while (1) \ { \ -- cgit v1.2.3 From 666654ff6dcec5916a7eac8425a5ddaae3be1a0e Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 6 Jan 2018 16:04:53 -0500 Subject: through ResetPokemonStorageSystem --- include/decoration.h | 1 - include/pokemon.h | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) (limited to 'include') diff --git a/include/decoration.h b/include/decoration.h index 3d619a598..4ac26998e 100644 --- a/include/decoration.h +++ b/include/decoration.h @@ -133,7 +133,6 @@ extern u8 gUnknown_020391A8; extern u8 gUnknown_020391A9; extern u8 gUnknown_020391AA; extern u8 gUnknown_02039234; -extern void (*gFieldCallback)(void); extern const struct YesNoFuncTable gUnknown_083EC96C[]; extern struct UnkStruct_020391B4 gUnknown_020391B4[16]; diff --git a/include/pokemon.h b/include/pokemon.h index 89599d994..7edd3395f 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -421,7 +421,7 @@ struct PokemonStorage /*0x0000*/ u8 currentBox; /*0x0004*/ struct BoxPokemon boxes[14][30]; /*0x8344*/ u8 boxNames[14][9]; - /*0x83c2*/ u8 unkArray[14]; + /*0x83c2*/ u8 wallpaper[14]; }; struct SpindaSpot -- cgit v1.2.3 From 92fa7570b99d216f75becbd362a124a12cc1dcde Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 7 Jan 2018 18:44:14 -0500 Subject: through task_intro_29 --- include/ewram.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include') diff --git a/include/ewram.h b/include/ewram.h index 5a350840a..9a281368f 100755 --- a/include/ewram.h +++ b/include/ewram.h @@ -28,6 +28,7 @@ extern u8 gSharedMem[]; #define ewram0_9(i) (u8 *)(ewram_addr + (i * 0x20)) #define ewram0_10 (*(struct UnknownPokenav0*)(gSharedMem + 0)) #define ewram0_11 (*(struct UnknownPokenav0_1*)(gSharedMem + 0)) +#define ePokemonStorageSystem (*(struct PokemonStorageSystemData *)(gSharedMem + 0)) #define ewram4 (*(struct UnknownStruct8 *)(gSharedMem + 0x4)) #define ewram520 ((struct UnknownStruct7 *)(gSharedMem + 0x00520)) #define ewram520_2 (u8 *)(ewram_addr + 0x520) -- cgit v1.2.3 From b9ad9b3ad547b200e66b293169acbbfe4f50f76d Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 7 Jan 2018 19:20:15 -0500 Subject: through sub_8096874 --- include/main.h | 2 ++ include/sprite.h | 1 + 2 files changed, 3 insertions(+) (limited to 'include') diff --git a/include/main.h b/include/main.h index ff9bb89c7..78403225e 100644 --- a/include/main.h +++ b/include/main.h @@ -51,6 +51,8 @@ extern bool8 gLinkVSyncDisabled; extern const u8 gGameVersion; extern const u8 gGameLanguage; +extern u16 gKeyRepeatStartDelay; + void AgbMain(void); void SetMainCallback2(MainCallback callback); void InitKeys(void); diff --git a/include/sprite.h b/include/sprite.h index b72c09989..3ad418356 100644 --- a/include/sprite.h +++ b/include/sprite.h @@ -235,6 +235,7 @@ extern const union AffineAnimCmd *const gDummySpriteAffineAnimTable[]; extern s16 gSpriteCoordOffsetX; extern s16 gSpriteCoordOffsetY; extern u8 gReservedSpritePaletteCount; +extern u16 gReservedSpriteTileCount; extern u8 gOamLimit; -- cgit v1.2.3 From bfeaa80fcd9409645325c2f7ae94850f970fbb58 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 7 Jan 2018 19:47:59 -0500 Subject: through sub_8096884 --- include/mon_markings.h | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 include/mon_markings.h (limited to 'include') diff --git a/include/mon_markings.h b/include/mon_markings.h new file mode 100644 index 000000000..a2b0ac821 --- /dev/null +++ b/include/mon_markings.h @@ -0,0 +1,26 @@ +#ifndef POKERUBY_MON_MARKINGS_H +#define POKERUBY_MON_MARKINGS_H + +struct PokemonMarkMenu +{ + /*0x0000*/ u16 baseTileTag; + /*0x0002*/ u16 basePaletteTag; + /*0x0004*/ u8 markings; // bit flags + /*0x0005*/ s8 cursorPos; + /*0x0006*/ bool8 markingsArray[4]; + /*0x000A*/ u8 cursorBaseY; + /*0x000B*/ bool8 spriteSheetLoadRequired; + /*0x000C*/ struct Sprite *menuWindowSprites[2]; // upper and lower halves of menu window + /*0x0014*/ struct Sprite *menuMarkingSprites[4]; + /*0x0024*/ struct Sprite *menuTextSprite; + /*0x0028*/ const u8 *frameTiles; + /*0x002C*/ const u16 *framePalette; + /*0x0030*/ u8 menuWindowSpriteTiles[0x1000]; + /*0x1030*/ u8 filler1030[0x80]; + /*0x10B0*/ u8 tileLoadState; +}; + +void sub_80F7404(void); +void sub_80F727C(struct PokemonMarkMenu *ptr); + +#endif //POKERUBY_MON_MARKINGS_H -- cgit v1.2.3 From ceebbe19918520c65ed9bdcd79d4ae5fbb669d88 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 7 Jan 2018 22:03:21 -0500 Subject: through sub_8096BE0 --- include/mon_markings.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/mon_markings.h b/include/mon_markings.h index a2b0ac821..eae80861a 100644 --- a/include/mon_markings.h +++ b/include/mon_markings.h @@ -18,7 +18,7 @@ struct PokemonMarkMenu /*0x0030*/ u8 menuWindowSpriteTiles[0x1000]; /*0x1030*/ u8 filler1030[0x80]; /*0x10B0*/ u8 tileLoadState; -}; +}; // 10b4 void sub_80F7404(void); void sub_80F727C(struct PokemonMarkMenu *ptr); -- cgit v1.2.3 From 02fea36a2e43523c9e9401897ac2fdbeb37ed3d4 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 7 Jan 2018 22:25:16 -0500 Subject: through sub_8096C68 --- include/pc_screen_effect.h | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 include/pc_screen_effect.h (limited to 'include') diff --git a/include/pc_screen_effect.h b/include/pc_screen_effect.h new file mode 100644 index 000000000..a791fc66f --- /dev/null +++ b/include/pc_screen_effect.h @@ -0,0 +1,19 @@ +#ifndef POKERUBY_PC_SCREEN_EFFECT_H +#define POKERUBY_PC_SCREEN_EFFECT_H + +struct PCScreenEffectStruct +{ + /*0x00*/ u16 tileTag; + /*0x02*/ u16 paletteTag; + /*0x04*/ u16 unk04; + /*0x06*/ u16 unk06; + /*0x08*/ u16 unk08; + /*0x0A*/ u16 unk0A; + /*0x0C*/ s16 unk0C; + /*0x10*/ u32 selectedPalettes; +}; + +void sub_80C5CD4(struct PCScreenEffectStruct *unkStruct); +bool8 sub_80C5DCC(void); + +#endif //POKERUBY_PC_SCREEN_EFFECT_H -- cgit v1.2.3 From 78df16e7989be5142ed0d1fd01c4ece6483f0571 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 8 Jan 2018 14:57:26 -0700 Subject: Through sub_809746C; enums for PC storage actions --- include/ewram.h | 4 ---- 1 file changed, 4 deletions(-) (limited to 'include') diff --git a/include/ewram.h b/include/ewram.h index 19e05134f..d8ebd71ec 100755 --- a/include/ewram.h +++ b/include/ewram.h @@ -39,10 +39,6 @@ extern u8 gSharedMem[]; #define ewram01000 (*(struct Unk2001000 *)(gSharedMem + 0x1000)) #define ewramBerryPicTemp (gSharedMem + 0x1000) #define EWRAM_1000 (*(struct Struct2001000 *)(gSharedMem + 0x1000)) -#define gUnk20011fa (u8 *)(&gSharedMem[0x11FA]) -#define gUnk2002694 (u8 *)(&gSharedMem[0x2694]) -#define gUnk20026A6 (u8 *)(&gSharedMem[0x26A6]) -#define gUnk20026e4 (u8 *)(&gSharedMem[0x26E4]) #define ewram4000 (gSharedMem + 0x4000) #define gUnknown_02007000 (*(ewramStruct_02007000 *)(gSharedMem + 0x7000)) #define ARRAY_2007800 ((struct EasyChatPair *)(gSharedMem + 0x7800)) -- cgit v1.2.3 From 660fa0c0f38a684eda6c117958447deacac88820 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 8 Jan 2018 15:37:05 -0700 Subject: through sub_8097858 --- include/mon_markings.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/mon_markings.h b/include/mon_markings.h index eae80861a..3b4aa333c 100644 --- a/include/mon_markings.h +++ b/include/mon_markings.h @@ -20,7 +20,10 @@ struct PokemonMarkMenu /*0x10B0*/ u8 tileLoadState; }; // 10b4 -void sub_80F7404(void); void sub_80F727C(struct PokemonMarkMenu *ptr); +void sub_80F7404(void); +void sub_80F7418(u8 markings, s16 x, s16 y); +void sub_80F7470(void); +bool8 sub_80F7500(void); #endif //POKERUBY_MON_MARKINGS_H -- cgit v1.2.3 From e2ff8b73c7e17777be8c4065a93e8727768bb914 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 8 Jan 2018 22:05:43 -0500 Subject: through sub_8097BA0; fix calls to pc_screen_effect from scene/hall_of_fame --- include/ewram.h | 1 + include/pc_screen_effect.h | 2 ++ 2 files changed, 3 insertions(+) (limited to 'include') diff --git a/include/ewram.h b/include/ewram.h index f24f089f6..3f627878f 100755 --- a/include/ewram.h +++ b/include/ewram.h @@ -241,6 +241,7 @@ extern u8 gSharedMem[]; #define ewram1C000 (*(struct Unk201C000 *)(gSharedMem + 0x1C000)) #define ewram1c000 (*(struct Unk201C000 *)(gSharedMem + 0x1C000)) // FIXME, names too similar #define eHallOfFameMons1 (struct HallofFameMons*)(&gSharedMem[0x1C000]) +#define eHOFPCScreenEffect (*(struct PCScreenEffectStruct *)(gSharedMem + 0x1c000)) #define EWRAM_1C800 (*(struct Unk201C800 *)(gSharedMem + 0x1C800)) #define ewram1D000 ((struct Pokemon *)(gSharedMem + 0x1D000)) #define ewram1D000_2 ((u16 *)(gSharedMem + 0x1D000)) diff --git a/include/pc_screen_effect.h b/include/pc_screen_effect.h index a791fc66f..36661bc3b 100644 --- a/include/pc_screen_effect.h +++ b/include/pc_screen_effect.h @@ -15,5 +15,7 @@ struct PCScreenEffectStruct void sub_80C5CD4(struct PCScreenEffectStruct *unkStruct); bool8 sub_80C5DCC(void); +void sub_80C5E38(struct PCScreenEffectStruct *unkStruct); +bool8 sub_80C5F98(void); #endif //POKERUBY_PC_SCREEN_EFFECT_H -- cgit v1.2.3 From 6503d0fee3d9423640f563745692af35f7298c8b Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 9 Jan 2018 10:09:55 -0500 Subject: through sub_8097E70; split PSS in 3 --- include/graphics.h | 5 ++ include/pokemon_storage_system.h | 120 +++++++++++++++++++++++++++++++++++++++ include/text.h | 2 + 3 files changed, 127 insertions(+) (limited to 'include') diff --git a/include/graphics.h b/include/graphics.h index 00a210350..91ba45acd 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -2743,4 +2743,9 @@ extern const u16 gCableCar_Pal[]; extern const u16 gCableCarBG_Pal[]; extern const u8 gCableCarBG_Gfx[]; +extern const u8 gPSSMenuHeader_Gfx[]; +extern const u8 gPSSMenuHeader_Tilemap[]; +extern const u16 gPSSMenu1_Pal[]; +extern const u16 gPSSMenu2_Pal[]; + #endif // GUARD_GRAPHICS_H diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h index 9fe3436ef..51ebda88f 100644 --- a/include/pokemon_storage_system.h +++ b/include/pokemon_storage_system.h @@ -1,8 +1,128 @@ #ifndef GUARD_POKEMON_STORAGE_SYSTEM_H #define GUARD_POKEMON_STORAGE_SYSTEM_H +#include "pc_screen_effect.h" +#include "mon_markings.h" + +enum { + PC_TEXT_EXIT_BOX, + PC_TEXT_WHAT_YOU_DO, + PC_TEXT_PICK_A_THEME, + PC_TEXT_PICK_A_WALLPAPER, + PC_TEXT_IS_SELECTED, + PC_TEXT_JUMP_TO_WHICH_BOX, + PC_TEXT_DEPOSIT_IN_WHICH_BOX, + PC_TEXT_WAS_DEPOSITED, + PC_TEXT_BOX_IS_FULL, + PC_TEXT_RELEASE_POKE, + PC_TEXT_WAS_RELEASED, + PC_TEXT_BYE_BYE, + PC_TEXT_MARK_POKE, + PC_TEXT_LAST_POKE, + PC_TEXT_PARTY_FULL, + PC_TEXT_HOLDING_POKE, + PC_TEXT_WHICH_ONE_WILL_TAKE, + PC_TEXT_CANT_RELEASE_EGG, + PC_TEXT_CONTINUE_BOX, + PC_TEXT_CAME_BACK, + PC_TEXT_WORRIED, + PC_TEXT_SURPRISE, + PC_TEXT_PLEASE_REMOVE_MAIL +}; + +enum { + PC_TEXT_FMT_NORMAL, + PC_TEXT_FMT_MON_NAME, + PC_TEXT_FMT_UNK_02, + PC_TEXT_FMT_UNK_03, + PC_TEXT_FMT_MON_NAME_2, + PC_TEXT_FMT_UNK_05, + PC_TEXT_FMT_MON_NAME_AFTER_EXCL_MARK +}; + +struct StorageAction { + const u8 *text; + u8 format; +}; + +struct PSS_MenuStringPtrs { + const u8 *text; + const u8 *desc; +}; + +struct UnkStruct_2000020 { + struct UnkStruct_2000020 *unk_00; + u8 unk_04; + u8 unk_05; +}; + +struct UnkPSSStruct_2002370 { + struct Sprite *unk_0000; + struct Sprite *unk_0004[4]; + u32 unk_0014[3]; + struct Sprite *unk_0020[2]; + u8 filler_0028[0x214]; + u8 curBox; + u8 unk_023d; + u8 unk_023e; + u16 unk_0240; + u16 unk_0242; +}; // 0244 + +struct PokemonStorageSystemData { + void (*unk_0000)(void); + u8 unk_0004; + u8 unk_0005; + u8 unk_0006; + u8 unk_0007; + u16 unk_0008; + u16 unk_000a; + struct PCScreenEffectStruct unk_000c; + struct UnkStruct_2000020 unk_0020[274]; // refine size later + u8 filler_08b0[2]; + s16 unk_08b2; + u16 unk_08b4; + u8 filler_08b6[0x4a8]; + s16 unk_0d5e; + s16 unk_0d60; + u8 filler_0d62[0x490]; + u16 unk_11f2; + u8 filler_11f4[2]; + u8 unk_11f6; + u8 unk_11f7; + u8 unk_11f8; + u8 unk_11f9; + u8 unk_11fa[0xc2]; + struct PokemonMarkMenu unk_12bc; + struct UnkPSSStruct_2002370 unk_2370; + u8 filler_25b4[0xd8]; + u8 unk_268c; + u8 unk_268d; + u8 unk_268e; + struct Pokemon *unk_2690; + u8 unk_2694[18]; + u8 unk_26a6[62]; + u8 unk_26e4[0x20]; + u16 unk_2704[0x40]; + u8 unk_2784[0x800]; +}; + +extern EWRAM_DATA u16 gUnknown_02039760[0x600]; + +extern struct PokemonStorageSystemData *const gPokemonStorageSystemPtr; +extern u8 *const gUnknown_083B6DB8; + +void sub_8096264(struct UnkPSSStruct_2002370 *a0, u16 tileTag, u16 palTag, u8 a3); +void sub_809634C(u8 curBox); +u8 sub_8096368(void); +void sub_809635C(void); +void sub_8096310(void); +void sub_80961A8(void); + +void task_intro_29(u8 whichMenu); void ResetPokemonStorageSystem(void); void BoxMonRestorePP(struct BoxPokemon *); void party_compaction(void); +struct Sprite *sub_809A9A0(u16 a0, u16 a1, u8 a2, u8 a3, u8 a4); #endif // GUARD_POKEMON_STORAGE_SYSTEM_H diff --git a/include/text.h b/include/text.h index ebc4ebe7e..281a0535a 100644 --- a/include/text.h +++ b/include/text.h @@ -253,4 +253,6 @@ void StripExtCtrlCodes(u8 *str); s32 StringCompareWithoutExtCtrlCodes(const u8 *str1, const u8 *str2); u8 sub_8004FD0(struct Window *win, u8 *dest, const u8 *src, u16 tileDataStartOffset, u8 left, u16 top, u8 width, u32 a8); +extern const u16 gUnknownPalette_81E6692[]; + #endif // GUARD_TEXT_H -- cgit v1.2.3 From 4facfe910285787778666eeee747b4c1c7201d98 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 9 Jan 2018 14:43:24 -0500 Subject: through sub_80980D4 (nonmatching) --- include/mon_markings.h | 1 + include/pokemon_storage_system.h | 17 +++++++++++++---- 2 files changed, 14 insertions(+), 4 deletions(-) (limited to 'include') diff --git a/include/mon_markings.h b/include/mon_markings.h index 3b4aa333c..5b6abf356 100644 --- a/include/mon_markings.h +++ b/include/mon_markings.h @@ -25,5 +25,6 @@ void sub_80F7404(void); void sub_80F7418(u8 markings, s16 x, s16 y); void sub_80F7470(void); bool8 sub_80F7500(void); +struct Sprite *sub_80F7940(u16 tileTag, u16 paletteTag, const u16 *palette); #endif //POKERUBY_MON_MARKINGS_H diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h index 51ebda88f..cbdec8999 100644 --- a/include/pokemon_storage_system.h +++ b/include/pokemon_storage_system.h @@ -85,14 +85,19 @@ struct PokemonStorageSystemData { u8 filler_08b6[0x4a8]; s16 unk_0d5e; s16 unk_0d60; - u8 filler_0d62[0x490]; + u8 filler_0d62[0x48a]; + u32 unk_11ec; + u16 unk_11f0; u16 unk_11f2; u8 filler_11f4[2]; u8 unk_11f6; u8 unk_11f7; u8 unk_11f8; u8 unk_11f9; - u8 unk_11fa[0xc2]; + u8 unk_11fa[0xb2]; + struct Sprite *unk_12ac; + struct Sprite *unk_12b0[2]; + u16 *unk_12b8; struct PokemonMarkMenu unk_12bc; struct UnkPSSStruct_2002370 unk_2370; u8 filler_25b4[0xd8]; @@ -102,8 +107,12 @@ struct PokemonStorageSystemData { struct Pokemon *unk_2690; u8 unk_2694[18]; u8 unk_26a6[62]; - u8 unk_26e4[0x20]; - u16 unk_2704[0x40]; + u8 unk_26e4[0x16]; + u16 unk_26fa; + u16 *unk_26fc; + struct Sprite *unk_2700; + u16 unk_2704[0x10]; + u8 filler_2724[0x60]; u8 unk_2784[0x800]; }; -- cgit v1.2.3 From ebae5167939d1a10a2a37324063bb4f70c43a4ea Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 9 Jan 2018 17:29:50 -0500 Subject: through sub_8098350 --- include/mon_markings.h | 1 + include/pokemon_storage_system.h | 11 +++++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/mon_markings.h b/include/mon_markings.h index 5b6abf356..d06264865 100644 --- a/include/mon_markings.h +++ b/include/mon_markings.h @@ -26,5 +26,6 @@ void sub_80F7418(u8 markings, s16 x, s16 y); void sub_80F7470(void); bool8 sub_80F7500(void); struct Sprite *sub_80F7940(u16 tileTag, u16 paletteTag, const u16 *palette); +void sub_80F7A10(u8 markings, void *dest); #endif //POKERUBY_MON_MARKINGS_H diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h index cbdec8999..f91a5f08e 100644 --- a/include/pokemon_storage_system.h +++ b/include/pokemon_storage_system.h @@ -85,7 +85,8 @@ struct PokemonStorageSystemData { u8 filler_08b6[0x4a8]; s16 unk_0d5e; s16 unk_0d60; - u8 filler_0d62[0x48a]; + u8 filler_0d62[0x486]; + u8 *unk_11e8; u32 unk_11ec; u16 unk_11f0; u16 unk_11f2; @@ -94,7 +95,11 @@ struct PokemonStorageSystemData { u8 unk_11f7; u8 unk_11f8; u8 unk_11f9; - u8 unk_11fa[0xb2]; + u8 unk_11fa[0x15]; + u8 unk_120f[0x25]; + u8 unk_1234[0x25]; + u8 unk_1259[0x21]; + u8 unk_127a[0x32]; struct Sprite *unk_12ac; struct Sprite *unk_12b0[2]; u16 *unk_12b8; @@ -114,6 +119,8 @@ struct PokemonStorageSystemData { u16 unk_2704[0x10]; u8 filler_2724[0x60]; u8 unk_2784[0x800]; + u8 filler_2f84[0x1800]; + u8 unk_4784[0x800]; }; extern EWRAM_DATA u16 gUnknown_02039760[0x600]; -- cgit v1.2.3 From 2eb10c6f2d16729dde12b0fd26cac3f45b85a557 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 9 Jan 2018 20:18:46 -0500 Subject: close swiss cheese in pokemon_storage_system_2.c --- include/graphics.h | 4 ++++ include/pokemon_storage_system.h | 12 ++++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/graphics.h b/include/graphics.h index 91ba45acd..a8ac2783d 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -2747,5 +2747,9 @@ extern const u8 gPSSMenuHeader_Gfx[]; extern const u8 gPSSMenuHeader_Tilemap[]; extern const u16 gPSSMenu1_Pal[]; extern const u16 gPSSMenu2_Pal[]; +extern const u8 gPSSMenuMisc_Gfx[]; +extern const u8 gPSSMenuMisc_Tilemap[]; +extern const u16 gPSSMenu3_Pal[]; +extern const u16 gPSSMenu4_Pal[]; #endif // GUARD_GRAPHICS_H diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h index f91a5f08e..b82213bb2 100644 --- a/include/pokemon_storage_system.h +++ b/include/pokemon_storage_system.h @@ -78,8 +78,16 @@ struct PokemonStorageSystemData { u16 unk_0008; u16 unk_000a; struct PCScreenEffectStruct unk_000c; - struct UnkStruct_2000020 unk_0020[274]; // refine size later - u8 filler_08b0[2]; + struct UnkStruct_2000020 unk_0020[17]; // refine size later + u16 unk_00a8[0x400]; + u16 unk_08a8; + u16 unk_08aa; + u8 unk_08ac; + u8 unk_08ad; + u8 unk_08ae; + u8 unk_08af; + u8 unk_08b0; + bool8 unk_08b1; s16 unk_08b2; u16 unk_08b4; u8 filler_08b6[0x4a8]; -- cgit v1.2.3 From f361bbd3e63a0b342ddfbd4c4c8d9e5a7536d2cc Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 9 Jan 2018 20:30:32 -0500 Subject: finish pokemon_storage_system_2.c --- include/pokemon.h | 2 +- include/pokemon_storage_system.h | 55 +++++++++++++++++++++++++++++++++++++--- 2 files changed, 53 insertions(+), 4 deletions(-) (limited to 'include') diff --git a/include/pokemon.h b/include/pokemon.h index fd1709320..af65599f8 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -627,6 +627,6 @@ void RandomlyGivePartyPokerus(struct Pokemon *party); void PartySpreadPokerus(struct Pokemon *party); struct Sprite *sub_80F7920(u16, u16, const u16 *); - +void BoxMonRestorePP(struct BoxPokemon *); #endif // GUARD_POKEMON_H diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h index b82213bb2..ab2a14362 100644 --- a/include/pokemon_storage_system.h +++ b/include/pokemon_storage_system.h @@ -142,11 +142,60 @@ u8 sub_8096368(void); void sub_809635C(void); void sub_8096310(void); void sub_80961A8(void); - void task_intro_29(u8 whichMenu); void ResetPokemonStorageSystem(void); -void BoxMonRestorePP(struct BoxPokemon *); -void party_compaction(void); +void sub_8098B48(void); +void sub_8099310(void); +bool8 sub_8099374(void); +void sub_80994A8(s16 a0); +void sub_809954C(void); +void sub_8099958(void); +bool8 sub_8099990(void); struct Sprite *sub_809A9A0(u16 a0, u16 a1, u8 a2, u8 a3, u8 a4); +void sub_809BB90(void); +void sub_8099BF8(u8 a0); +void sub_8099C70(u8 whichBox); +bool8 sub_8099D34(void); +void sub_8099DCC(u8 a0); +bool8 sub_8099E08(void); +void sub_809A860(u8 a0); +void sub_809AA24(void); +void sub_809AA98(void); +bool8 sub_809AC00(void); +void sub_809B0C0(u8 a0); +void sub_809B0D4(void); +void sub_809B0E0(void); +u8 sub_809B0F4(void); +void sub_809B068(void); +void sub_809B100(u8 a0); +bool8 sub_809B130(void); +void sub_809B440(void); +bool8 sub_809B62C(u8); +void sub_809B6BC(void); +void sub_809B6DC(void); +bool8 sub_809B734(void); +void sub_809B760(void); +void sub_809B7AC(void); +void sub_809B7D4(void); +s8 sub_809B960(void); +void sub_809BBC0(void); +void sub_809BC18(void); +void sub_809BD14(void); +void party_compaction(void); +void sub_809BDD8(u8 markings); +bool8 sub_809BE80(void); +bool8 sub_809BEBC(void); +bool8 sub_809BF20(void); +bool8 sub_809BF48(void); +u8 sub_809CA40(void); +void sub_809CDCC(void); +void sub_809CDEC(u8 a0); +void sub_809CE84(void); +s16 sub_809CF30(void); +void sub_809CFDC(struct UnkStruct_2000020 *a0, struct UnkStruct_2000020 *a1, u8 a2); +void sub_809CFF0(void); +void sub_809D034(void *dest, u16 dLeft, u16 dTop, const void *src, u16 sLeft, u16 sTop, u16 width, u16 height); +void sub_809D104(void *dest, u16 dLeft, u16 dTop, const void *src, u16 sLeft, u16 sTop, u16 width, u16 height); +void sub_809D16C(void *dest, u16 dLeft, u16 dTop, u16 width, u16 height); #endif // GUARD_POKEMON_STORAGE_SYSTEM_H -- cgit v1.2.3 From c4244f5bec27741c18a12611f245df5572b11d8b Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 9 Jan 2018 21:18:42 -0500 Subject: through sub_8098BF0 --- include/pokemon_storage_system.h | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) (limited to 'include') diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h index ab2a14362..7f16b5d4f 100644 --- a/include/pokemon_storage_system.h +++ b/include/pokemon_storage_system.h @@ -90,10 +90,18 @@ struct PokemonStorageSystemData { bool8 unk_08b1; s16 unk_08b2; u16 unk_08b4; - u8 filler_08b6[0x4a8]; + u8 filler_08b6[0x4a6]; + u16 unk_0d5c; s16 unk_0d5e; s16 unk_0d60; - u8 filler_0d62[0x486]; + u8 filler_0d62[0x2d2]; + struct Sprite *unk_1034; + u32 unk_1038[6]; + u32 unk_1050[30]; + u8 filler_10c8[8]; + u16 unk_10d0[40]; + u16 unk_1120[40]; + u8 filler_1170[0x78]; u8 *unk_11e8; u32 unk_11ec; u16 unk_11f0; @@ -113,7 +121,8 @@ struct PokemonStorageSystemData { u16 *unk_12b8; struct PokemonMarkMenu unk_12bc; struct UnkPSSStruct_2002370 unk_2370; - u8 filler_25b4[0xd8]; + struct Pokemon unk_25b4; + u8 filler_2618[0x74]; u8 unk_268c; u8 unk_268d; u8 unk_268e; @@ -131,11 +140,12 @@ struct PokemonStorageSystemData { u8 unk_4784[0x800]; }; -extern EWRAM_DATA u16 gUnknown_02039760[0x600]; - +extern u16 gUnknown_02039760[0x600]; +extern struct UnkPSSStruct_2002370 *gUnknown_02038478; extern struct PokemonStorageSystemData *const gPokemonStorageSystemPtr; extern u8 *const gUnknown_083B6DB8; +u8 CountPokemonInBoxN(u8 boxId); void sub_8096264(struct UnkPSSStruct_2002370 *a0, u16 tileTag, u16 palTag, u8 a3); void sub_809634C(u8 curBox); u8 sub_8096368(void); @@ -145,6 +155,7 @@ void sub_80961A8(void); void task_intro_29(u8 whichMenu); void ResetPokemonStorageSystem(void); void sub_8098B48(void); +void sub_8099200(u8 a0); void sub_8099310(void); bool8 sub_8099374(void); void sub_80994A8(s16 a0); -- cgit v1.2.3 From 7cdd2b2a42a96135949e399d1fa3a00c5f56ae67 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 9 Jan 2018 22:08:11 -0500 Subject: through sub_8098E68 --- include/pokemon_storage_system.h | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'include') diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h index 7f16b5d4f..26c1b140d 100644 --- a/include/pokemon_storage_system.h +++ b/include/pokemon_storage_system.h @@ -96,12 +96,14 @@ struct PokemonStorageSystemData { s16 unk_0d60; u8 filler_0d62[0x2d2]; struct Sprite *unk_1034; - u32 unk_1038[6]; - u32 unk_1050[30]; + struct Sprite *unk_1038[6]; + struct Sprite *unk_1050[30]; u8 filler_10c8[8]; u16 unk_10d0[40]; u16 unk_1120[40]; - u8 filler_1170[0x78]; + u8 filler_1170[8]; + u16 unk_1178; + u8 filler_117a[0x6e]; u8 *unk_11e8; u32 unk_11ec; u16 unk_11f0; @@ -154,7 +156,7 @@ void sub_8096310(void); void sub_80961A8(void); void task_intro_29(u8 whichMenu); void ResetPokemonStorageSystem(void); -void sub_8098B48(void); +void ResetPSSMonIconSprites(void); void sub_8099200(u8 a0); void sub_8099310(void); bool8 sub_8099374(void); -- cgit v1.2.3 From 4ae149b93441ffce560f3b7018842bc4c5d39326 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 9 Jan 2018 22:52:37 -0500 Subject: through sub_8098EE0 --- include/pokemon_storage_system.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h index 26c1b140d..295084eea 100644 --- a/include/pokemon_storage_system.h +++ b/include/pokemon_storage_system.h @@ -103,7 +103,9 @@ struct PokemonStorageSystemData { u16 unk_1120[40]; u8 filler_1170[8]; u16 unk_1178; - u8 filler_117a[0x6e]; + u8 filler_117a[3]; + u8 unk_117d; + u8 filler_117e[0x6a]; u8 *unk_11e8; u32 unk_11ec; u16 unk_11f0; -- cgit v1.2.3 From cb28e3a679841c01191f19cb7e7f0da28f0bf160 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 9 Jan 2018 23:05:21 -0500 Subject: sub_809900C --- include/pokemon_storage_system.h | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h index 295084eea..0f20bfa16 100644 --- a/include/pokemon_storage_system.h +++ b/include/pokemon_storage_system.h @@ -101,9 +101,14 @@ struct PokemonStorageSystemData { u8 filler_10c8[8]; u16 unk_10d0[40]; u16 unk_1120[40]; - u8 filler_1170[8]; + u8 filler_1170[2]; + u16 unk_1172; + u16 unk_1174; + s16 unk_1176; u16 unk_1178; - u8 filler_117a[3]; + u8 unk_117a; + u8 unk_117b; + u8 unk_117c; u8 unk_117d; u8 filler_117e[0x6a]; u8 *unk_11e8; -- cgit v1.2.3 From e0726bf8d6af39f287c65ad22ce192988e8468bb Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 10 Jan 2018 20:20:16 -0500 Subject: through sub_8099374 --- include/pokemon_storage_system.h | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'include') diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h index 0f20bfa16..6040e31be 100644 --- a/include/pokemon_storage_system.h +++ b/include/pokemon_storage_system.h @@ -96,18 +96,19 @@ struct PokemonStorageSystemData { s16 unk_0d60; u8 filler_0d62[0x2d2]; struct Sprite *unk_1034; - struct Sprite *unk_1038[6]; - struct Sprite *unk_1050[30]; + struct Sprite *unk_1038[6]; // party + struct Sprite *unk_1050[30]; // box u8 filler_10c8[8]; u16 unk_10d0[40]; u16 unk_1120[40]; - u8 filler_1170[2]; + u8 unk_1170; + u8 unk_1171; u16 unk_1172; - u16 unk_1174; + s16 unk_1174; s16 unk_1176; u16 unk_1178; u8 unk_117a; - u8 unk_117b; + s8 unk_117b; u8 unk_117c; u8 unk_117d; u8 filler_117e[0x6a]; @@ -164,7 +165,7 @@ void sub_80961A8(void); void task_intro_29(u8 whichMenu); void ResetPokemonStorageSystem(void); void ResetPSSMonIconSprites(void); -void sub_8099200(u8 a0); +void sub_8099200(bool8 a0); void sub_8099310(void); bool8 sub_8099374(void); void sub_80994A8(s16 a0); -- cgit v1.2.3 From d6464c7c40f5ac1b9da557d5990e2b7e83997720 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 10 Jan 2018 21:53:25 -0500 Subject: through sub_809971C --- include/pokemon_storage_system.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h index 6040e31be..38a81c2a9 100644 --- a/include/pokemon_storage_system.h +++ b/include/pokemon_storage_system.h @@ -98,7 +98,8 @@ struct PokemonStorageSystemData { struct Sprite *unk_1034; struct Sprite *unk_1038[6]; // party struct Sprite *unk_1050[30]; // box - u8 filler_10c8[8]; + struct Sprite **unk_10c8; + u8 filler_10cc[4]; u16 unk_10d0[40]; u16 unk_1120[40]; u8 unk_1170; -- cgit v1.2.3 From a1ccd03edd90601759a04f223c9558181a657728 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 10 Jan 2018 22:08:58 -0500 Subject: Refine struct at 02000028 --- include/pokemon_storage_system.h | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'include') diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h index 38a81c2a9..438af769b 100644 --- a/include/pokemon_storage_system.h +++ b/include/pokemon_storage_system.h @@ -50,8 +50,16 @@ struct PSS_MenuStringPtrs { const u8 *desc; }; +struct UnkStruct_2000028 { + void *unk_00; + void *unk_04; + u16 unk_08; + u16 unk_0a; + void (*unk_0c)(struct UnkStruct_2000028 *data); +}; + struct UnkStruct_2000020 { - struct UnkStruct_2000020 *unk_00; + struct UnkStruct_2000028 *unk_00; u8 unk_04; u8 unk_05; }; @@ -78,7 +86,8 @@ struct PokemonStorageSystemData { u16 unk_0008; u16 unk_000a; struct PCScreenEffectStruct unk_000c; - struct UnkStruct_2000020 unk_0020[17]; // refine size later + struct UnkStruct_2000020 unk_0020; + struct UnkStruct_2000028 unk_0028[8]; u16 unk_00a8[0x400]; u16 unk_08a8; u16 unk_08aa; @@ -99,7 +108,7 @@ struct PokemonStorageSystemData { struct Sprite *unk_1038[6]; // party struct Sprite *unk_1050[30]; // box struct Sprite **unk_10c8; - u8 filler_10cc[4]; + struct Sprite **unk_10cc; u16 unk_10d0[40]; u16 unk_1120[40]; u8 unk_1170; @@ -214,7 +223,7 @@ void sub_809CDCC(void); void sub_809CDEC(u8 a0); void sub_809CE84(void); s16 sub_809CF30(void); -void sub_809CFDC(struct UnkStruct_2000020 *a0, struct UnkStruct_2000020 *a1, u8 a2); +void sub_809CFDC(struct UnkStruct_2000020 *a0, struct UnkStruct_2000028 *a1, u8 a2); void sub_809CFF0(void); void sub_809D034(void *dest, u16 dLeft, u16 dTop, const void *src, u16 sLeft, u16 sTop, u16 width, u16 height); void sub_809D104(void *dest, u16 dLeft, u16 dTop, const void *src, u16 sLeft, u16 sTop, u16 width, u16 height); -- cgit v1.2.3 From 7a65953ccc2313db6de0ec061220b1a5f8751b36 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 12 Jan 2018 08:53:01 -0500 Subject: through sub_80999C4 --- include/pokemon_storage_system.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h index 438af769b..129202934 100644 --- a/include/pokemon_storage_system.h +++ b/include/pokemon_storage_system.h @@ -121,7 +121,9 @@ struct PokemonStorageSystemData { s8 unk_117b; u8 unk_117c; u8 unk_117d; - u8 filler_117e[0x6a]; + u8 filler_117e[0x42]; + struct Sprite *unk_11c0; + u8 filler_11c4[0x24]; u8 *unk_11e8; u32 unk_11ec; u16 unk_11f0; -- cgit v1.2.3 From 12ec094b4b3641cf33fc1cf45634090e067c70b6 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 12 Jan 2018 09:46:31 -0500 Subject: Remaining functions and data in pss3 --- include/pokemon_icon.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'include') diff --git a/include/pokemon_icon.h b/include/pokemon_icon.h index 7e26c1c9b..a1a965d81 100644 --- a/include/pokemon_icon.h +++ b/include/pokemon_icon.h @@ -1,6 +1,9 @@ #ifndef GUARD_POKEMON_ICON_H #define GUARD_POKEMON_ICON_H +extern const u8 * const gMonIconTable[]; +extern const u8 gMonIconPaletteIndices[]; + u8 CreateMonIcon(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, u32 personality); u8 UpdateMonIconFrame(struct Sprite *sprite); u8 sub_809D3A4(u16 arg0, void (*)(struct Sprite *), int, u8 arg3, u32 arg4); @@ -12,5 +15,6 @@ void sub_809D580(u16); void sub_809D608(u16); void sub_809D62C(struct Sprite *sprite); void sub_809D824(struct Sprite *sprite, u8 animNum); +u16 mon_icon_convert_unown_species_id(u16 species, u32 personality); #endif // GUARD_POKEMON_ICON_H -- cgit v1.2.3 From f37add5cfb4bb369ec096d91f62915ee4f88a1d7 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 12 Jan 2018 12:13:35 -0500 Subject: through sub_8099D90 --- include/pokemon_storage_system.h | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h index 129202934..09b3be60f 100644 --- a/include/pokemon_storage_system.h +++ b/include/pokemon_storage_system.h @@ -99,11 +99,26 @@ struct PokemonStorageSystemData { bool8 unk_08b1; s16 unk_08b2; u16 unk_08b4; - u8 filler_08b6[0x4a6]; + u16 unk_08b6; + u16 unk_08b8; + u8 unk_08ba; + u8 unk_08bb; + u16 unk_08bc; + u16 unk_08be; + u16 unk_08c0; + u16 unk_08c2; + u16 unk_08c4; + u16 unk_08c6; + u16 unk_08c8; + u8 unk_08ca[0x400]; + u8 unk_0cca; + u16 unk_0ccc[0x20]; + u8 filler_0d0c[0x50]; u16 unk_0d5c; s16 unk_0d5e; s16 unk_0d60; - u8 filler_0d62[0x2d2]; + u8 unk_0d62[0x2d0]; + u8 unk_1032; struct Sprite *unk_1034; struct Sprite *unk_1038[6]; // party struct Sprite *unk_1050[30]; // box @@ -177,6 +192,9 @@ void sub_80961A8(void); void task_intro_29(u8 whichMenu); void ResetPokemonStorageSystem(void); void ResetPSSMonIconSprites(void); +void SpawnBoxIconSprites(u8 boxId); +u8 get_preferred_box(void); +bool8 sub_80990AC(void); void sub_8099200(bool8 a0); void sub_8099310(void); bool8 sub_8099374(void); -- cgit v1.2.3 From aadd5c8ac07ef5967d8e2cf58fbdd04f79d5b82a Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 12 Jan 2018 13:41:32 -0500 Subject: through sub_8099EB0 and relevant data --- include/pokemon_storage_system.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'include') diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h index 09b3be60f..cd4dceadf 100644 --- a/include/pokemon_storage_system.h +++ b/include/pokemon_storage_system.h @@ -101,7 +101,7 @@ struct PokemonStorageSystemData { u16 unk_08b4; u16 unk_08b6; u16 unk_08b8; - u8 unk_08ba; + bool8 unk_08ba; u8 unk_08bb; u16 unk_08bc; u16 unk_08be; @@ -112,12 +112,13 @@ struct PokemonStorageSystemData { u16 unk_08c8; u8 unk_08ca[0x400]; u8 unk_0cca; - u16 unk_0ccc[0x20]; + u16 unk_0ccc[0x1e]; + u32 unk_0d08; u8 filler_0d0c[0x50]; u16 unk_0d5c; s16 unk_0d5e; s16 unk_0d60; - u8 unk_0d62[0x2d0]; + u16 unk_0d62[360]; u8 unk_1032; struct Sprite *unk_1034; struct Sprite *unk_1038[6]; // party -- cgit v1.2.3 From daa0a98ee0129be1797274de318a35df30d39020 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 13 Jan 2018 20:07:32 -0500 Subject: through sub_809A23C --- include/pokemon_storage_system.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h index cd4dceadf..62014e62c 100644 --- a/include/pokemon_storage_system.h +++ b/include/pokemon_storage_system.h @@ -112,7 +112,11 @@ struct PokemonStorageSystemData { u16 unk_08c8; u8 unk_08ca[0x400]; u8 unk_0cca; - u16 unk_0ccc[0x1e]; + u16 unk_0ccc[0x10]; + u16 unk_0cec; + u16 unk_0cee; + struct Sprite *unk_0cf0[2]; + u8 filler_0cf8[16]; u32 unk_0d08; u8 filler_0d0c[0x50]; u16 unk_0d5c; -- cgit v1.2.3 From e8daaa0f3ef2d97f7afe378494f33037f5bc8ee9 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 14 Jan 2018 18:21:22 -0500 Subject: sub_809A3D0 --- include/pokemon_storage_system.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h index 62014e62c..85ffeaefe 100644 --- a/include/pokemon_storage_system.h +++ b/include/pokemon_storage_system.h @@ -116,7 +116,8 @@ struct PokemonStorageSystemData { u16 unk_0cec; u16 unk_0cee; struct Sprite *unk_0cf0[2]; - u8 filler_0cf8[16]; + struct Sprite *unk_0cf8[2]; + u8 filler_0cd0[8]; u32 unk_0d08; u8 filler_0d0c[0x50]; u16 unk_0d5c; -- cgit v1.2.3 From 5fcd1184d8a189887e44559edb12417717afca5b Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 14 Jan 2018 19:10:31 -0500 Subject: through sub_809A860 --- include/pokemon_storage_system.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h index 85ffeaefe..0131ce18b 100644 --- a/include/pokemon_storage_system.h +++ b/include/pokemon_storage_system.h @@ -117,7 +117,7 @@ struct PokemonStorageSystemData { u16 unk_0cee; struct Sprite *unk_0cf0[2]; struct Sprite *unk_0cf8[2]; - u8 filler_0cd0[8]; + struct Sprite *unk_0d00[2]; u32 unk_0d08; u8 filler_0d0c[0x50]; u16 unk_0d5c; @@ -215,7 +215,7 @@ void sub_8099C70(u8 whichBox); bool8 sub_8099D34(void); void sub_8099DCC(u8 a0); bool8 sub_8099E08(void); -void sub_809A860(u8 a0); +void sub_809A860(bool8 a0); void sub_809AA24(void); void sub_809AA98(void); bool8 sub_809AC00(void); -- cgit v1.2.3 From d8091a8fadb1089cbc090772bbb2fbcbab633357 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 14 Jan 2018 21:01:43 -0500 Subject: through sub_809AA98 --- include/pokemon_storage_system.h | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h index 0131ce18b..1afed5d1b 100644 --- a/include/pokemon_storage_system.h +++ b/include/pokemon_storage_system.h @@ -144,7 +144,9 @@ struct PokemonStorageSystemData { u8 unk_117d; u8 filler_117e[0x42]; struct Sprite *unk_11c0; - u8 filler_11c4[0x24]; + u8 filler_11c4[0x1e]; + u8 unk_11e2; + u8 filler_11e3[5]; u8 *unk_11e8; u32 unk_11ec; u16 unk_11f0; @@ -200,6 +202,7 @@ void ResetPokemonStorageSystem(void); void ResetPSSMonIconSprites(void); void SpawnBoxIconSprites(u8 boxId); u8 get_preferred_box(void); +void sub_8098BF0(void); bool8 sub_80990AC(void); void sub_8099200(bool8 a0); void sub_8099310(void); @@ -208,7 +211,7 @@ void sub_80994A8(s16 a0); void sub_809954C(void); void sub_8099958(void); bool8 sub_8099990(void); -struct Sprite *sub_809A9A0(u16 a0, u16 a1, u8 a2, u8 a3, u8 a4); +struct Sprite *sub_809A9A0(u16 x, u16 y, u8 animId, u8 priority, u8 subpriority); void sub_809BB90(void); void sub_8099BF8(u8 a0); void sub_8099C70(u8 whichBox); -- cgit v1.2.3 From 68528382d5d8a17c5d6d65f1566a9ba7c807e14a Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 15 Jan 2018 15:10:56 -0500 Subject: through sub_809AF18 --- include/pokemon_storage_system.h | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h index 1afed5d1b..e911664de 100644 --- a/include/pokemon_storage_system.h +++ b/include/pokemon_storage_system.h @@ -144,9 +144,21 @@ struct PokemonStorageSystemData { u8 unk_117d; u8 filler_117e[0x42]; struct Sprite *unk_11c0; - u8 filler_11c4[0x1e]; + struct Sprite *unk_11c4; + s32 unk_11c8; + s32 unk_11cc; + s32 unk_11d0; + s32 unk_11d4; + s16 unk_11d8; + s16 unk_11da; + u16 unk_11dc; + s8 unk_11de; + s8 unk_11df; + u8 unk_11e0; + u8 unk_11e1; u8 unk_11e2; - u8 filler_11e3[5]; + u8 unk_11e3; + u8 filler_11e4[4]; u8 *unk_11e8; u32 unk_11ec; u16 unk_11f0; -- cgit v1.2.3 From 650f85e7db8ea123256d661a7db59c9325115130 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 15 Jan 2018 15:46:17 -0500 Subject: through sub_809B130 --- include/pokemon_storage_system.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h index e911664de..3191b841c 100644 --- a/include/pokemon_storage_system.h +++ b/include/pokemon_storage_system.h @@ -172,7 +172,9 @@ struct PokemonStorageSystemData { u8 unk_120f[0x25]; u8 unk_1234[0x25]; u8 unk_1259[0x21]; - u8 unk_127a[0x32]; + u8 unk_127a[0x2a]; + bool8 (*unk_12a4)(void); + u8 unk_12a8; struct Sprite *unk_12ac; struct Sprite *unk_12b0[2]; u16 *unk_12b8; -- cgit v1.2.3 From 66fe535e7f5f0466c15f5f82dd1c2823fc6110cf Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 15 Jan 2018 16:16:25 -0500 Subject: through sub_809B24C --- include/pokemon_storage_system.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h index 3191b841c..a2b5964d4 100644 --- a/include/pokemon_storage_system.h +++ b/include/pokemon_storage_system.h @@ -175,6 +175,7 @@ struct PokemonStorageSystemData { u8 unk_127a[0x2a]; bool8 (*unk_12a4)(void); u8 unk_12a8; + u8 unk_12a9; struct Sprite *unk_12ac; struct Sprite *unk_12b0[2]; u16 *unk_12b8; @@ -223,10 +224,11 @@ void sub_8099310(void); bool8 sub_8099374(void); void sub_80994A8(s16 a0); void sub_809954C(void); +void sub_80996B0(u8 a0, u8 a1); +bool8 sub_809971C(void); void sub_8099958(void); bool8 sub_8099990(void); struct Sprite *sub_809A9A0(u16 x, u16 y, u8 animId, u8 priority, u8 subpriority); -void sub_809BB90(void); void sub_8099BF8(u8 a0); void sub_8099C70(u8 whichBox); bool8 sub_8099D34(void); @@ -252,6 +254,7 @@ void sub_809B760(void); void sub_809B7AC(void); void sub_809B7D4(void); s8 sub_809B960(void); +void sub_809BB90(void); void sub_809BBC0(void); void sub_809BC18(void); void sub_809BD14(void); -- cgit v1.2.3 From e3238abc63ac7e939ccdc58e555a9dcdc66f3525 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 15 Jan 2018 16:54:02 -0500 Subject: through sub_809B44C --- include/pokemon_storage_system.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'include') diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h index a2b5964d4..eefea4ec8 100644 --- a/include/pokemon_storage_system.h +++ b/include/pokemon_storage_system.h @@ -224,6 +224,8 @@ void sub_8099310(void); bool8 sub_8099374(void); void sub_80994A8(s16 a0); void sub_809954C(void); +void sub_8099584(u8 a0, u8 a1); +void sub_809960C(u8 a0, u8 a1); void sub_80996B0(u8 a0, u8 a1); bool8 sub_809971C(void); void sub_8099958(void); -- cgit v1.2.3 From 08a108f432325d6501f3c6473a6d43265af0d5b7 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 15 Jan 2018 17:14:39 -0500 Subject: through diegohint1 --- include/pokemon.h | 2 +- include/pokemon_storage_system.h | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/pokemon.h b/include/pokemon.h index 8624270f1..47d6bcfc7 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -522,7 +522,7 @@ void sub_803ADE8(struct Pokemon *mon, struct UnknownPokemonStruct *src); void sub_803AF78(struct Pokemon *mon, struct UnknownPokemonStruct *dest); u16 CalculateBoxMonChecksum(struct BoxPokemon *boxMon); void CalculateMonStats(struct Pokemon *mon); -void sub_803B4B4(const struct BoxPokemon *src, struct Pokemon *dest); +void ExpandBoxMon(const struct BoxPokemon *src, struct Pokemon *dest); u8 GetLevelFromMonExp(struct Pokemon *mon); u8 GetLevelFromBoxMonExp(struct BoxPokemon *boxMon); u16 GiveMoveToMon(struct Pokemon *mon, u16 move); diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h index eefea4ec8..7960213ae 100644 --- a/include/pokemon_storage_system.h +++ b/include/pokemon_storage_system.h @@ -182,7 +182,8 @@ struct PokemonStorageSystemData { struct PokemonMarkMenu unk_12bc; struct UnkPSSStruct_2002370 unk_2370; struct Pokemon unk_25b4; - u8 filler_2618[0x74]; + struct Pokemon unk_2618; + u8 filler_267c[0x10]; u8 unk_268c; u8 unk_268d; u8 unk_268e; -- cgit v1.2.3 From 7b45766d0765d42d7326a7f6cdb21a54d386117e Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 15 Jan 2018 19:32:02 -0500 Subject: through sub_809B7D4 --- include/pokemon_storage_system.h | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h index 7960213ae..b0aa8cb47 100644 --- a/include/pokemon_storage_system.h +++ b/include/pokemon_storage_system.h @@ -183,7 +183,16 @@ struct PokemonStorageSystemData { struct UnkPSSStruct_2002370 unk_2370; struct Pokemon unk_25b4; struct Pokemon unk_2618; - u8 filler_267c[0x10]; + s8 unk_267c; + u8 unk_267d; + u8 unk_267e; + u8 unk_267f; + u8 unk_2680; + u8 unk_2681; + s8 unk_2682; + s8 unk_2683; + u16 unk_2684; + u16 unk_2686[3]; u8 unk_268c; u8 unk_268d; u8 unk_268e; @@ -206,6 +215,7 @@ extern struct UnkPSSStruct_2002370 *gUnknown_02038478; extern struct PokemonStorageSystemData *const gPokemonStorageSystemPtr; extern u8 *const gUnknown_083B6DB8; +s16 GetIndexOfFirstEmptySpaceInBoxN(u8 boxId); u8 CountPokemonInBoxN(u8 boxId); void sub_8096264(struct UnkPSSStruct_2002370 *a0, u16 tileTag, u16 palTag, u8 a3); void sub_809634C(u8 curBox); @@ -219,16 +229,22 @@ void ResetPSSMonIconSprites(void); void SpawnBoxIconSprites(u8 boxId); u8 get_preferred_box(void); void sub_8098BF0(void); +void sub_8098D20(u8 monId); bool8 sub_80990AC(void); void sub_8099200(bool8 a0); void sub_8099310(void); bool8 sub_8099374(void); +void sub_8099480(void); void sub_80994A8(s16 a0); +void sub_8099520(u8 a0); void sub_809954C(void); void sub_8099584(u8 a0, u8 a1); void sub_809960C(u8 a0, u8 a1); void sub_80996B0(u8 a0, u8 a1); bool8 sub_809971C(void); +void sub_809981C(u8 mode, u8 idx); +bool8 sub_80998D8(void); +void sub_8099920(void); void sub_8099958(void); bool8 sub_8099990(void); struct Sprite *sub_809A9A0(u16 x, u16 y, u8 animId, u8 priority, u8 subpriority); -- cgit v1.2.3 From 7a2eef97c35e4672bd17bfca86a6ea19d22a3eba Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 15 Jan 2018 20:34:56 -0500 Subject: sub_809B960 --- include/pokemon_storage_system.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'include') diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h index b0aa8cb47..8e50cc8d0 100644 --- a/include/pokemon_storage_system.h +++ b/include/pokemon_storage_system.h @@ -183,12 +183,12 @@ struct PokemonStorageSystemData { struct UnkPSSStruct_2002370 unk_2370; struct Pokemon unk_25b4; struct Pokemon unk_2618; - s8 unk_267c; + u8 unk_267c; u8 unk_267d; u8 unk_267e; u8 unk_267f; - u8 unk_2680; - u8 unk_2681; + s8 unk_2680; + s8 unk_2681; s8 unk_2682; s8 unk_2683; u16 unk_2684; -- cgit v1.2.3 From 102515325993caef0d57082cd7d8db69335b665b Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 15 Jan 2018 21:11:01 -0500 Subject: through party_compaction --- include/pokemon_storage_system.h | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h index 8e50cc8d0..f8d288ff0 100644 --- a/include/pokemon_storage_system.h +++ b/include/pokemon_storage_system.h @@ -196,7 +196,10 @@ struct PokemonStorageSystemData { u8 unk_268c; u8 unk_268d; u8 unk_268e; - struct Pokemon *unk_2690; + union { + struct Pokemon *pokemon; + struct BoxPokemon *box; + } unk_2690; u8 unk_2694[18]; u8 unk_26a6[62]; u8 unk_26e4[0x16]; @@ -215,6 +218,7 @@ extern struct UnkPSSStruct_2002370 *gUnknown_02038478; extern struct PokemonStorageSystemData *const gPokemonStorageSystemPtr; extern u8 *const gUnknown_083B6DB8; +u8 StorageSystemGetPartySize(void); s16 GetIndexOfFirstEmptySpaceInBoxN(u8 boxId); u8 CountPokemonInBoxN(u8 boxId); void sub_8096264(struct UnkPSSStruct_2002370 *a0, u16 tileTag, u16 palTag, u8 a3); @@ -277,7 +281,7 @@ void sub_809BB90(void); void sub_809BBC0(void); void sub_809BC18(void); void sub_809BD14(void); -void party_compaction(void); +s16 party_compaction(void); void sub_809BDD8(u8 markings); bool8 sub_809BE80(void); bool8 sub_809BEBC(void); -- cgit v1.2.3 From 40d8fee1d0badb81120cad7a5aabfd8f5b0031d8 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 15 Jan 2018 21:59:56 -0500 Subject: through sub_809BF48 --- include/pokemon_storage_system.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include') diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h index f8d288ff0..8dd51259c 100644 --- a/include/pokemon_storage_system.h +++ b/include/pokemon_storage_system.h @@ -220,6 +220,7 @@ extern u8 *const gUnknown_083B6DB8; u8 StorageSystemGetPartySize(void); s16 GetIndexOfFirstEmptySpaceInBoxN(u8 boxId); +u8 CountAlivePartyMonsExceptOne(u8 toSkip); u8 CountPokemonInBoxN(u8 boxId); void sub_8096264(struct UnkPSSStruct_2002370 *a0, u16 tileTag, u16 palTag, u8 a3); void sub_809634C(u8 curBox); -- cgit v1.2.3 From c4bae7a571f5aea6785e108089e904f9dad67701 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 15 Jan 2018 22:45:08 -0500 Subject: sub_809C04C --- include/pokemon_storage_system.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h index 8dd51259c..5319b7a2d 100644 --- a/include/pokemon_storage_system.h +++ b/include/pokemon_storage_system.h @@ -159,7 +159,7 @@ struct PokemonStorageSystemData { u8 unk_11e2; u8 unk_11e3; u8 filler_11e4[4]; - u8 *unk_11e8; + const u8 *unk_11e8; u32 unk_11ec; u16 unk_11f0; u16 unk_11f2; -- cgit v1.2.3 From 91cfb6a564f73f02eb57792f8a0f4aa82e1867d1 Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Tue, 16 Jan 2018 22:25:35 -0600 Subject: add debug ifdefs --- include/cable_club.h | 3 +++ include/clock.h | 1 + include/constants/decorations.h | 2 ++ include/debug.h | 1 + include/overworld.h | 2 ++ 5 files changed, 9 insertions(+) (limited to 'include') diff --git a/include/cable_club.h b/include/cable_club.h index a2fe46b30..2f509c9fc 100644 --- a/include/cable_club.h +++ b/include/cable_club.h @@ -20,5 +20,8 @@ void sub_8083B90(void); void sub_8083BDC(void); bool32 sub_8083BF4(u8 linkPlayerIndex); void sub_8083C50(u8 taskId); +#if DEBUG +void debug_sub_808B838(u8); +#endif #endif // GUARD_CABLE_CLUB_H diff --git a/include/clock.h b/include/clock.h index 4e6560c91..5772145d3 100644 --- a/include/clock.h +++ b/include/clock.h @@ -3,6 +3,7 @@ // TODO: time of day and seconds in a day defines +void InitTimeBasedEvents(void); void DoTimeBasedEvents(void); #endif diff --git a/include/constants/decorations.h b/include/constants/decorations.h index 2e3558721..c361ccdf1 100644 --- a/include/constants/decorations.h +++ b/include/constants/decorations.h @@ -123,4 +123,6 @@ #define DECOR_REGICE_DOLL 119 #define DECOR_REGISTEEL_DOLL 120 +#define DECOR_COUNT 121 + #endif // GUARD_CONSTANTS_DECORATIONS_H diff --git a/include/debug.h b/include/debug.h index f3ad8c401..8f9e84c24 100644 --- a/include/debug.h +++ b/include/debug.h @@ -3,5 +3,6 @@ // matsuda_debug_menu void sub_80AAF30(void); +void unref_sub_80AB084(const u8 *text); #endif // GUARD_DEBUG_H diff --git a/include/overworld.h b/include/overworld.h index 0954f1b63..50089593f 100644 --- a/include/overworld.h +++ b/include/overworld.h @@ -235,4 +235,6 @@ void CreateLinkPlayerSprite(u8); void SpriteCB_LinkPlayer(struct Sprite *); void sub_805465C(void); +void CB2_InitTestMenu(void); + #endif // GUARD_ROM4_H -- cgit v1.2.3 From 8835353325d9c7eba7664bde5d5a2d4c40c4376d Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Wed, 17 Jan 2018 18:24:33 -0600 Subject: resolve more undefined references --- include/strings.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/strings.h b/include/strings.h index fe9cfc6ba..91c5c5344 100644 --- a/include/strings.h +++ b/include/strings.h @@ -164,7 +164,7 @@ extern const u8 gOtherText_None[]; extern const u8 gOtherText_ThreeQuestions2[]; -extern const u8 gOtherText_FiveQuestionsAndSlash[]; +extern const u8 gOtherText_FiveQuestions[]; extern const u8 gOtherText_OneDash[]; extern const u8 gOtherText_TwoDashes[]; -- cgit v1.2.3 From 1685a7977a652f35998a717395407d625878e20e Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Mon, 22 Jan 2018 21:42:14 -0600 Subject: dump some debug baseroms --- include/pokeblock.h | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'include') diff --git a/include/pokeblock.h b/include/pokeblock.h index 6720653a0..cda598f6c 100644 --- a/include/pokeblock.h +++ b/include/pokeblock.h @@ -3,12 +3,20 @@ enum { - PBLOCK_CLR_BLACK, - PBLOCK_CLR_RED, + PBLOCK_CLR_RED = 1, PBLOCK_CLR_BLUE, PBLOCK_CLR_PINK, PBLOCK_CLR_GREEN, - PBLOCK_CLR_YELLOW + PBLOCK_CLR_YELLOW, + PBLOCK_CLR_PURPLE, + PBLOCK_CLR_INDIGO, + PBLOCK_CLR_BROWN, + PBLOCK_CLR_LITEBLUE, + PBLOCK_CLR_OLIVE, + PBLOCK_CLR_GRAY, + PBLOCK_CLR_BLACK, + PBLOCK_CLR_WHITE, + PBLOCK_CLR_GOLD, }; enum -- cgit v1.2.3 From 1e6cb59a0cd0dff15f749a5274bee17ca994c178 Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Tue, 23 Jan 2018 20:43:28 -0600 Subject: start decompiling start_menu_debug.c --- include/battle.h | 2 ++ include/debug.h | 6 ++++++ include/link.h | 1 + include/mystery_event_menu.h | 1 + include/reset_rtc_screen.h | 1 + include/trade.h | 1 + 6 files changed, 12 insertions(+) (limited to 'include') diff --git a/include/battle.h b/include/battle.h index d3cbd24f5..544e65b80 100644 --- a/include/battle.h +++ b/include/battle.h @@ -763,6 +763,8 @@ void sub_8012324(void); void SwapTurnOrder(u8, u8); u8 GetWhoStrikesFirst(u8, u8, u8); +void debug_sub_8010800(void); + // asm/battle_3.o u8 CheckMoveLimitations(u8 bank, u8 unusableMoves, u8 check); u8 UpdateTurnCounters(void); diff --git a/include/debug.h b/include/debug.h index 3c1a2b0a5..713b21ec5 100644 --- a/include/debug.h +++ b/include/debug.h @@ -5,4 +5,10 @@ void sub_80AAF30(void); void Crash(const u8 *text); +// tomomichi_debug_menu +void debug_nullsub_66(void); + +// sound_check_menu +void CB2_StartSoundCheckMenu(void); + #endif // GUARD_DEBUG_H diff --git a/include/link.h b/include/link.h index 367add625..21bb0b780 100644 --- a/include/link.h +++ b/include/link.h @@ -194,5 +194,6 @@ u32 LinkMain1(u8 *, u16 *, u16[CMD_LENGTH][MAX_LINK_PLAYERS]); void LinkVSync(void); void Timer3Intr(void); void SerialCB(void); +void LinkTestScreen(void); #endif // GUARD_LINK_H diff --git a/include/mystery_event_menu.h b/include/mystery_event_menu.h index 8801789d9..c1f5fbb8f 100644 --- a/include/mystery_event_menu.h +++ b/include/mystery_event_menu.h @@ -2,5 +2,6 @@ #define GUARD_MYSTERY_EVENT_MENU_H void CB2_InitMysteryEventMenu(void); +void debug_sub_815D15C(void); #endif // GUARD_MYSTERY_EVENT_MENU_H diff --git a/include/reset_rtc_screen.h b/include/reset_rtc_screen.h index 5807dec99..2de95534a 100644 --- a/include/reset_rtc_screen.h +++ b/include/reset_rtc_screen.h @@ -2,5 +2,6 @@ #define GUARD_RESET_RTC_SCREEN_H void CB2_InitResetRtcScreen(void); +void debug_sub_806F8F8(void); #endif // GUARD_RESET_RTC_SCREEN_H diff --git a/include/trade.h b/include/trade.h index 46f58a802..d6dee0bd9 100644 --- a/include/trade.h +++ b/include/trade.h @@ -51,6 +51,7 @@ extern const u32 gUnknown_0820CA98[]; extern const u16 gUnknown_0820F798[]; void sub_8047CD8(void); +void sub_804B790(void); void sub_804E174(void); extern const u8 gOtherText_MaleSymbol3[2]; extern const u8 gOtherText_FemaleSymbol3[2]; -- cgit v1.2.3 From 6437a2acd5b662db779352c24f34116852a1c605 Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Tue, 23 Jan 2018 21:44:01 -0600 Subject: decompile kagaya_debug_menu.c --- include/region_map.h | 1 + include/slot_machine.h | 1 + include/trainer_card.h | 2 ++ 3 files changed, 4 insertions(+) (limited to 'include') diff --git a/include/region_map.h b/include/region_map.h index 254307052..e7a357fe2 100644 --- a/include/region_map.h +++ b/include/region_map.h @@ -68,5 +68,6 @@ void CreateRegionMapPlayerIcon(u16, u16); const u8 *GetMapSectionName(u8 *dest, u16 mapSectionId, u16 length); const u8 *CopyMapName(u8 *dest, u16 b); const u8 *CopyLocationName(u8 *dest, u16 b); +void CB2_InitFlyRegionMap(void); #endif // GUARD_REGION_MAP_H diff --git a/include/slot_machine.h b/include/slot_machine.h index f886d9239..7759ca1b2 100644 --- a/include/slot_machine.h +++ b/include/slot_machine.h @@ -75,5 +75,6 @@ struct SlotMachineEwramStruct { void PlaySlotMachine(u8 arg0, MainCallback cb); void sub_8104DA4(void); u8 sub_8105BB4(u8 templateIdx, u8 cbAndCoordsIdx, s16 a2); +void debug_sub_811609C(u8, void (*)(void)); #endif // GUARD_SLOT_MACHINE_H diff --git a/include/trainer_card.h b/include/trainer_card.h index 7ea1d9fc0..28cabbd09 100644 --- a/include/trainer_card.h +++ b/include/trainer_card.h @@ -32,6 +32,8 @@ void TrainerCard_ShowPlayerCard(void (*)(void)); void TrainerCard_ShowLinkCard(u8, void (*)(void)); void TrainerCard_GenerateCardForPlayer(struct TrainerCard *); u8 sub_80934C4(u8 id); +void debug_sub_80A0710(void (*)(void)); +void debug_sub_80A073C(void (*)(void)); extern struct TrainerCard gTrainerCards[4]; -- cgit v1.2.3 From dbcf1ce9cb124e303e6bed3fecede7a72b8000f2 Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Wed, 24 Jan 2018 00:58:38 -0600 Subject: integrate some debug differences --- include/link.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include') diff --git a/include/link.h b/include/link.h index 21bb0b780..ecebb586a 100644 --- a/include/link.h +++ b/include/link.h @@ -195,5 +195,6 @@ void LinkVSync(void); void Timer3Intr(void); void SerialCB(void); void LinkTestScreen(void); +void debug_sub_8008264(u32 value, int left, int top, int r3, int sp0); #endif // GUARD_LINK_H -- cgit v1.2.3 From d125e9b461204d0f80ae25d35a1569613ee3aa6e Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Wed, 24 Jan 2018 01:35:05 -0600 Subject: integrate debug Blender_PrintBlendingResults --- include/link.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include') diff --git a/include/link.h b/include/link.h index ecebb586a..f3e918bc6 100644 --- a/include/link.h +++ b/include/link.h @@ -196,5 +196,6 @@ void Timer3Intr(void); void SerialCB(void); void LinkTestScreen(void); void debug_sub_8008264(u32 value, int left, int top, int r3, int sp0); +u32 sub_8007E40(void); #endif // GUARD_LINK_H -- cgit v1.2.3 From 8cce68537704adb0d1d34a96fa977675ad1a0340 Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Wed, 24 Jan 2018 20:11:06 -0600 Subject: integrate debug functions in field_control_avatar.c --- include/debug.h | 3 +++ include/field_control_avatar.h | 1 + include/field_fadetransition.h | 1 + 3 files changed, 5 insertions(+) (limited to 'include') diff --git a/include/debug.h b/include/debug.h index 713b21ec5..2136dbfb8 100644 --- a/include/debug.h +++ b/include/debug.h @@ -1,6 +1,9 @@ #ifndef GUARD_DEBUG_H #define GUARD_DEBUG_H +// start_menu_debug +void DebugMenu_8077048(void); + // matsuda_debug_menu void sub_80AAF30(void); void Crash(const u8 *text); diff --git a/include/field_control_avatar.h b/include/field_control_avatar.h index 2d5693e40..49e9f23e3 100644 --- a/include/field_control_avatar.h +++ b/include/field_control_avatar.h @@ -36,5 +36,6 @@ bool8 sub_8068870(u16 a); bool8 sub_8068894(void); bool8 sub_8068A64(struct MapPosition *, u16); u8 sub_8068F18(void); +bool8 dive_warp(struct MapPosition *position, u16 b); #endif diff --git a/include/field_fadetransition.h b/include/field_fadetransition.h index 4377367f7..cd0cb6eab 100644 --- a/include/field_fadetransition.h +++ b/include/field_fadetransition.h @@ -27,5 +27,6 @@ void sub_8080F48(void); void sub_8080F58(void); void sub_8080F68(void); void sub_8080F9C(void); +void debug_sub_80888D8(void); #endif // GUARD_FIELD_FADETRANSITION_H -- cgit v1.2.3 From 4327bee485510b424cbf28e450d90ff50e6fe78b Mon Sep 17 00:00:00 2001 From: ProjectRevoTPP Date: Wed, 24 Jan 2018 23:34:17 -0500 Subject: merge field files into evobjmv.c. --- include/evobjmv.h | 478 ++++++++++++++++++++++++++++++++++++++++ include/field_ground_effect.h | 27 --- include/field_map_obj.h | 440 ------------------------------------ include/field_map_obj_helpers.h | 23 -- include/fieldmap.h | 2 +- 5 files changed, 479 insertions(+), 491 deletions(-) create mode 100644 include/evobjmv.h delete mode 100644 include/field_ground_effect.h delete mode 100644 include/field_map_obj.h delete mode 100644 include/field_map_obj_helpers.h (limited to 'include') diff --git a/include/evobjmv.h b/include/evobjmv.h new file mode 100644 index 000000000..9f76a5856 --- /dev/null +++ b/include/evobjmv.h @@ -0,0 +1,478 @@ +#ifndef GUARD_EVOBJMV_H +#define GUARD_EVOBJMV_H + +#include "sprite.h" + +extern const u8 gUnknown_0830FD14[]; + +#define fieldmap_object_cb(setup, callback, table) \ +static u8 callback(struct MapObject *, struct Sprite *);\ +void setup(struct Sprite *sprite)\ +{\ + meta_step(&gMapObjects[sprite->data[0]], sprite, callback);\ +}\ +static u8 callback(struct MapObject *mapObject, struct Sprite *sprite)\ +{\ + return table[sprite->data[1]](mapObject, sprite);\ +} + +#define fieldmap_object_null_cb(setup, callback) \ +static u8 callback(struct MapObject *, struct Sprite *);\ +void setup(struct Sprite *sprite)\ +{\ + meta_step(&gMapObjects[sprite->data[0]], sprite, callback);\ +}\ +static u8 callback(struct MapObject *mapObject, struct Sprite *sprite)\ +{\ + return 0;\ +} + +struct PairedPalettes +{ + u16 tag; + const u16 *data; +}; + +extern const u16 gMapObjectPalette19[]; + +extern const u32 gMapObjectPic_MovingBox[32]; +extern const struct SpriteFrameImage gMapObjectPicTable_PechaBerryTree[]; + +extern const u8 gFieldEffectPic_CutGrass[]; +extern const u16 gFieldEffectObjectPalette6[]; + +void sub_805C058(struct MapObject *mapObject, s16 a, s16 b); +void FieldObjectSetDirection(struct MapObject *pObject, u8 unk_18); +void MoveCoords(u8 direction, s16 *x, s16 *y); +void meta_step(struct MapObject *pObject, struct Sprite *pSprite, u8 (*d8)(struct MapObject *, struct Sprite *)); +void npc_reset(struct MapObject *mapObject, struct Sprite *sprite); + +u8 sub_805CAAC(s16 a0, s16 a1, s16 a2, s16 a3); +u8 sub_805CADC(s16 a0, s16 a1, s16 a2, s16 a3); +u8 sub_805CAEC(s16 a0, s16 a1, s16 a2, s16 a3); +u8 sub_805CB00(s16 a0, s16 a1, s16 a2, s16 a3); +u8 sub_805CB5C(s16 a0, s16 a1, s16 a2, s16 a3); +u8 sub_805CBB8(s16 a0, s16 a1, s16 a2, s16 a3); +u8 sub_805CC14(s16 a0, s16 a1, s16 a2, s16 a3); +u8 sub_805CC70(s16 a0, s16 a1, s16 a2, s16 a3); +u8 sub_805CCAC(s16 a0, s16 a1, s16 a2, s16 a3); +u8 sub_805CCE8(s16 a0, s16 a1, s16 a2, s16 a3); +u8 sub_805CD24(s16 a0, s16 a1, s16 a2, s16 a3); + +u8 sub_805F3EC(struct MapObject *, struct Sprite *, u8, bool8(u8)); +u8 sub_805F3F0(struct MapObject *, struct Sprite *, u8, bool8(u8)); +u8 sub_805F438(struct MapObject *, struct Sprite *, u8, bool8(u8)); +u8 sub_805F4F0(struct MapObject *, struct Sprite *, u8, bool8(u8)); +u8 sub_805F5A8(struct MapObject *, struct Sprite *, u8, bool8(u8)); +u8 sub_805F660(struct MapObject *, struct Sprite *, u8, bool8(u8)); +u8 cph_IM_DIFFERENT(struct MapObject *, struct Sprite *, u8, bool8(u8)); +u8 sub_805F760(struct MapObject *, struct Sprite *, u8, bool8(u8)); +u8 oac_hopping(struct MapObject *, struct Sprite *, u8, bool8(u8)); + +extern struct CameraSomething gUnknown_03004880; +extern u16 gUnknown_03004898; +extern u16 gUnknown_0300489C; + +extern const struct Coords16 gDirectionToVector[]; + +void FieldObjectCB_BerryTree(struct Sprite *); +void FieldObjectCB_Hidden1(struct Sprite *); +void FieldObjectCB_MountainDisguise(struct Sprite *); +void FieldObjectCB_TreeDisguise(struct Sprite *); +void sub_80587B4(struct Sprite *); +void sub_805C884(struct Sprite *); +void sub_805C8AC(struct Sprite *); +void sub_805CDE8(struct Sprite *); +void sub_805CF28(struct Sprite *); +void sub_805D0AC(struct Sprite *); +void sub_805D230(struct Sprite *); +void sub_805D4F4(struct Sprite *); +void sub_805D634(struct Sprite *); +void sub_805D774(struct Sprite *); +void sub_805D8B4(struct Sprite *); +void sub_805D9F4(struct Sprite *); +void sub_805DB34(struct Sprite *); +void sub_805DC74(struct Sprite *); +void sub_805DDB4(struct Sprite *); +void sub_805DEF4(struct Sprite *); +void sub_805E034(struct Sprite *); +void sub_805E174(struct Sprite *); +void sub_805E278(struct Sprite *); +void sub_805E37C(struct Sprite *); +void sub_805E5DC(struct Sprite *); +void sub_805E668(struct Sprite *); +void sub_805E6F4(struct Sprite *); +void sub_805E780(struct Sprite *); +void sub_805E80C(struct Sprite *); +void sub_805E898(struct Sprite *); +void sub_805E924(struct Sprite *); +void sub_805E9B0(struct Sprite *); +void sub_805EA3C(struct Sprite *); +void sub_805EAC8(struct Sprite *); +void sub_805EB54(struct Sprite *); +void sub_805EBE0(struct Sprite *); +void sub_805EC6C(struct Sprite *); +void sub_805ECF8(struct Sprite *); +void sub_805ED84(struct Sprite *); +void sub_805EE10(struct Sprite *); +void sub_805EE9C(struct Sprite *); +void sub_805EF28(struct Sprite *); +void sub_805EFB4(struct Sprite *); +void sub_805F040(struct Sprite *); +void sub_805F0CC(struct Sprite *); +void sub_805F158(struct Sprite *); +void sub_805F1E4(struct Sprite *); +void sub_805F270(struct Sprite *); +void sub_805F2FC(struct Sprite *); +void sub_805F8E0(struct Sprite *); +void sub_805FB20(struct Sprite *); +void sub_805FB90(struct Sprite *); +void sub_805FC00(struct Sprite *); +void sub_805FC70(struct Sprite *); + +u8 sub_805C8F0(struct MapObject *, struct Sprite *); +u8 sub_805C904(struct MapObject *, struct Sprite *); +u8 sub_805C930(struct MapObject *, struct Sprite *); +u8 sub_805C96C(struct MapObject *, struct Sprite *); +u8 sub_805C98C(struct MapObject *, struct Sprite *); +u8 sub_805C9D8(struct MapObject *, struct Sprite *); +u8 sub_805CA08(struct MapObject *, struct Sprite *); +u8 sub_805CE2C(struct MapObject *, struct Sprite *); +u8 sub_805CE40(struct MapObject *, struct Sprite *); +u8 sub_805CE6C(struct MapObject *, struct Sprite *); +u8 sub_805CEB0(struct MapObject *, struct Sprite *); +u8 sub_805CEE0(struct MapObject *, struct Sprite *); +u8 sub_805CF6C(struct MapObject *, struct Sprite *); +u8 sub_805CF80(struct MapObject *, struct Sprite *); +u8 sub_805CFAC(struct MapObject *, struct Sprite *); +u8 sub_805CFE8(struct MapObject *, struct Sprite *); +u8 sub_805D008(struct MapObject *, struct Sprite *); +u8 sub_805D054(struct MapObject *, struct Sprite *); +u8 sub_805D084(struct MapObject *, struct Sprite *); +u8 sub_805D0F0(struct MapObject *, struct Sprite *); +u8 sub_805D104(struct MapObject *, struct Sprite *); +u8 sub_805D130(struct MapObject *, struct Sprite *); +u8 sub_805D16C(struct MapObject *, struct Sprite *); +u8 sub_805D18C(struct MapObject *, struct Sprite *); +u8 sub_805D1D8(struct MapObject *, struct Sprite *); +u8 sub_805D208(struct MapObject *, struct Sprite *); +u8 sub_805D274(struct MapObject *, struct Sprite *); +u8 sub_805D2A0(struct MapObject *, struct Sprite *); +u8 sub_805D2C0(struct MapObject *, struct Sprite *); +u8 do_berry_tree_growth_sparkle_1(struct MapObject *, struct Sprite *); +u8 sub_805D3EC(struct MapObject *, struct Sprite *); +u8 do_berry_tree_growth_sparkle_2(struct MapObject *, struct Sprite *); +u8 sub_805D458(struct MapObject *, struct Sprite *); +u8 sub_805D4A8(struct MapObject *, struct Sprite *); +u8 sub_805D538(struct MapObject *, struct Sprite *); +u8 sub_805D54C(struct MapObject *, struct Sprite *); +u8 sub_805D578(struct MapObject *, struct Sprite *); +u8 sub_805D5BC(struct MapObject *, struct Sprite *); +u8 sub_805D5EC(struct MapObject *, struct Sprite *); +u8 sub_805D678(struct MapObject *, struct Sprite *); +u8 sub_805D68C(struct MapObject *, struct Sprite *); +u8 sub_805D6B8(struct MapObject *, struct Sprite *); +u8 sub_805D6FC(struct MapObject *, struct Sprite *); +u8 sub_805D72C(struct MapObject *, struct Sprite *); +u8 sub_805D7B8(struct MapObject *, struct Sprite *); +u8 sub_805D7CC(struct MapObject *, struct Sprite *); +u8 sub_805D7F8(struct MapObject *, struct Sprite *); +u8 sub_805D83C(struct MapObject *, struct Sprite *); +u8 sub_805D86C(struct MapObject *, struct Sprite *); +u8 sub_805D8F8(struct MapObject *, struct Sprite *); +u8 sub_805D90C(struct MapObject *, struct Sprite *); +u8 sub_805D938(struct MapObject *, struct Sprite *); +u8 sub_805D97C(struct MapObject *, struct Sprite *); +u8 sub_805D9AC(struct MapObject *, struct Sprite *); +u8 sub_805DA38(struct MapObject *, struct Sprite *); +u8 sub_805DA4C(struct MapObject *, struct Sprite *); +u8 sub_805DA78(struct MapObject *, struct Sprite *); +u8 sub_805DABC(struct MapObject *, struct Sprite *); +u8 sub_805DAEC(struct MapObject *, struct Sprite *); +u8 sub_805DB78(struct MapObject *, struct Sprite *); +u8 sub_805DB8C(struct MapObject *, struct Sprite *); +u8 sub_805DBB8(struct MapObject *, struct Sprite *); +u8 sub_805DBFC(struct MapObject *, struct Sprite *); +u8 sub_805DC2C(struct MapObject *, struct Sprite *); +u8 sub_805DCB8(struct MapObject *, struct Sprite *); +u8 sub_805DCCC(struct MapObject *, struct Sprite *); +u8 sub_805DCF8(struct MapObject *, struct Sprite *); +u8 sub_805DD3C(struct MapObject *, struct Sprite *); +u8 sub_805DD6C(struct MapObject *, struct Sprite *); +u8 sub_805DDF8(struct MapObject *, struct Sprite *); +u8 sub_805DE0C(struct MapObject *, struct Sprite *); +u8 sub_805DE38(struct MapObject *, struct Sprite *); +u8 sub_805DE7C(struct MapObject *, struct Sprite *); +u8 sub_805DEAC(struct MapObject *, struct Sprite *); +u8 sub_805DF38(struct MapObject *, struct Sprite *); +u8 sub_805DF4C(struct MapObject *, struct Sprite *); +u8 sub_805DF78(struct MapObject *, struct Sprite *); +u8 sub_805DFBC(struct MapObject *, struct Sprite *); +u8 sub_805DFEC(struct MapObject *, struct Sprite *); +u8 sub_805E078(struct MapObject *, struct Sprite *); +u8 sub_805E08C(struct MapObject *, struct Sprite *); +u8 sub_805E0B8(struct MapObject *, struct Sprite *); +u8 sub_805E0FC(struct MapObject *, struct Sprite *); +u8 sub_805E12C(struct MapObject *, struct Sprite *); +u8 sub_805E1B8(struct MapObject *, struct Sprite *); +u8 sub_805E1E4(struct MapObject *, struct Sprite *); +u8 sub_805E208(struct MapObject *, struct Sprite *); +u8 sub_805E234(struct MapObject *, struct Sprite *); +u8 sub_805E2BC(struct MapObject *, struct Sprite *); +u8 sub_805E2E8(struct MapObject *, struct Sprite *); +u8 sub_805E30C(struct MapObject *, struct Sprite *); +u8 sub_805E338(struct MapObject *, struct Sprite *); +u8 sub_805E3C0(struct MapObject *, struct Sprite *); +u8 sub_805E3D4(struct MapObject *, struct Sprite *); +u8 sub_805E40C(struct MapObject *, struct Sprite *); +u8 sub_805E4C4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805E620(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805E6AC(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805E738(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805E7C4(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805E850(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805E8DC(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805E968(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805E9F4(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805EA80(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805EB0C(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805EB98(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805EC24(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805ECB0(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805ED3C(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805EDC8(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805EE54(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805EEE0(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805EF6C(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805EFF8(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805F084(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805F110(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805F19C(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805F228(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805F2B4(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 mss_npc_reset_oampriv3_1_unk2_unk3(struct MapObject *, struct Sprite *); +u8 sub_805F364(struct MapObject *, struct Sprite *); +u8 sub_805F3C4(struct MapObject *, struct Sprite *); +u8 mss_npc_reset_oampriv3_1_unk2_unk3(struct MapObject *, struct Sprite *); +u8 mss_08062EA4(struct MapObject *, struct Sprite *); +u8 sub_805F3C4(struct MapObject *, struct Sprite *); +u8 sub_805FAF8(struct MapObject *, struct Sprite *); +u8 sub_805FB64(struct MapObject *, struct Sprite *); +u8 sub_805FB04(struct MapObject *, struct Sprite *); +u8 sub_805FBD4(struct MapObject *, struct Sprite *); +u8 sub_805FB04(struct MapObject *, struct Sprite *); +u8 sub_805FC44(struct MapObject *, struct Sprite *); +u8 sub_805FB04(struct MapObject *, struct Sprite *); +u8 sub_805FCB4(struct MapObject *, struct Sprite *); +u8 sub_805FCE8(struct MapObject *, struct Sprite *); +u8 sub_805FD08(struct MapObject *, struct Sprite *); + +u8 get_go_image_anim_num(u8); +u8 get_go_fast_image_anim_num(u8); +u8 get_go_fast_image_anim_num(u8); +u8 get_go_faster_image_anim_num(u8); +u8 sub_805FD78(u8); + +u32 state_to_direction(u8, u32, u32); + +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, const struct SubspriteTable **subspriteTables); +u8 AddPseudoFieldObject(u16 graphicsId, void (*callback)(struct Sprite *), s16 x, s16 y, 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 *, void *, void *, void *); +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, u32); +u8 sub_8060024(struct MapObject *, s16, s16, u8); +bool8 IsBerryTreeSparkling(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, u32 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(u32); +u8 GetSimpleGoAnimId(u32); +u8 GetGoSpeed0AnimId(u32); +u8 sub_8060744(u32); +u8 d2s_08064034(u32); +u8 sub_806079C(u32); +u8 sub_80607C8(u32); +u8 sub_80607F4(u32); +u8 GetJumpLedgeAnimId(u32); +u8 sub_806084C(u32); +u8 sub_8060878(u32); +u8 sub_80608A4(u32); +u8 sub_80608D0(u32); +u8 GetStepInPlaceDelay32AnimId(u32); +u8 GetStepInPlaceDelay16AnimId(u32); +u8 GetStepInPlaceDelay8AnimId(u32); +u8 GetStepInPlaceDelay4AnimId(u32); +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 *); +u8 SpawnSpecialFieldObjectParametrized(u8, u8, u8, s16, s16, u8); +void CameraObjectSetFollowedObjectId(u8); +u8 sub_805ADDC(u8); +void sub_8060320(u32, s16 *, s16 *, s16, s16); +u8 obj_unfreeze(struct Sprite *, s16, s16, u8); +u16 npc_paltag_by_palslot(u8); +void sub_8060470(s16 *, s16 *, s16, s16); +bool8 FreezeMapObject(struct MapObject *); +void FreezeMapObjects(void); +void FreezeMapObjectsExceptOne(u8); +void UnfreezeMapObjects(void); +void sub_806487C(struct Sprite *sprite, bool8 invisible); +void sub_8064990(u8, u8); +void UnfreezeMapObject(struct MapObject *mapObject); +void oamt_npc_ministep_reset(struct Sprite *sprite, u8 a2, u8 a3); +void sub_806467C(struct Sprite *sprite, u8 direction); +bool8 sub_806468C(struct Sprite *sprite); +void sub_80646E4(struct Sprite *sprite, u8 a2, u8 a3, u8 a4); +void DoShadowFieldEffect(struct MapObject *mapObject); +u8 sub_8064704(struct Sprite *); +u8 sub_806478C(struct Sprite *); +void obj_anim_image_set_and_seek(struct Sprite *sprite, u8 a2, u8 a3); +void DoRippleFieldEffect(struct MapObject *mapObj, struct Sprite *sprite); +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 // GUARD_EVOBJMV_H diff --git a/include/field_ground_effect.h b/include/field_ground_effect.h deleted file mode 100644 index 19d43c916..000000000 --- a/include/field_ground_effect.h +++ /dev/null @@ -1,27 +0,0 @@ -#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 // GUARD_FIELD_GROUND_EFFECT_H diff --git a/include/field_map_obj.h b/include/field_map_obj.h deleted file mode 100644 index cf3be36b2..000000000 --- a/include/field_map_obj.h +++ /dev/null @@ -1,440 +0,0 @@ -#ifndef GUARD_FIELD_MAP_OBJ_H -#define GUARD_FIELD_MAP_OBJ_H - -#include "sprite.h" - -extern const u8 gUnknown_0830FD14[]; - -#define fieldmap_object_cb(setup, callback, table) \ -static u8 callback(struct MapObject *, struct Sprite *);\ -void setup(struct Sprite *sprite)\ -{\ - meta_step(&gMapObjects[sprite->data[0]], sprite, callback);\ -}\ -static u8 callback(struct MapObject *mapObject, struct Sprite *sprite)\ -{\ - return table[sprite->data[1]](mapObject, sprite);\ -} - -#define fieldmap_object_null_cb(setup, callback) \ -static u8 callback(struct MapObject *, struct Sprite *);\ -void setup(struct Sprite *sprite)\ -{\ - meta_step(&gMapObjects[sprite->data[0]], sprite, callback);\ -}\ -static u8 callback(struct MapObject *mapObject, struct Sprite *sprite)\ -{\ - return 0;\ -} - -struct PairedPalettes -{ - u16 tag; - const u16 *data; -}; - -extern const u16 gMapObjectPalette19[]; - -extern const u32 gMapObjectPic_MovingBox[32]; -extern const struct SpriteFrameImage gMapObjectPicTable_PechaBerryTree[]; - -extern const u8 gFieldEffectPic_CutGrass[]; -extern const u16 gFieldEffectObjectPalette6[]; - -void sub_805C058(struct MapObject *mapObject, s16 a, s16 b); -void FieldObjectSetDirection(struct MapObject *pObject, u8 unk_18); -void MoveCoords(u8 direction, s16 *x, s16 *y); -void meta_step(struct MapObject *pObject, struct Sprite *pSprite, u8 (*d8)(struct MapObject *, struct Sprite *)); -void npc_reset(struct MapObject *mapObject, struct Sprite *sprite); - -u8 sub_805CAAC(s16 a0, s16 a1, s16 a2, s16 a3); -u8 sub_805CADC(s16 a0, s16 a1, s16 a2, s16 a3); -u8 sub_805CAEC(s16 a0, s16 a1, s16 a2, s16 a3); -u8 sub_805CB00(s16 a0, s16 a1, s16 a2, s16 a3); -u8 sub_805CB5C(s16 a0, s16 a1, s16 a2, s16 a3); -u8 sub_805CBB8(s16 a0, s16 a1, s16 a2, s16 a3); -u8 sub_805CC14(s16 a0, s16 a1, s16 a2, s16 a3); -u8 sub_805CC70(s16 a0, s16 a1, s16 a2, s16 a3); -u8 sub_805CCAC(s16 a0, s16 a1, s16 a2, s16 a3); -u8 sub_805CCE8(s16 a0, s16 a1, s16 a2, s16 a3); -u8 sub_805CD24(s16 a0, s16 a1, s16 a2, s16 a3); - -u8 sub_805F3EC(struct MapObject *, struct Sprite *, u8, bool8(u8)); -u8 sub_805F3F0(struct MapObject *, struct Sprite *, u8, bool8(u8)); -u8 sub_805F438(struct MapObject *, struct Sprite *, u8, bool8(u8)); -u8 sub_805F4F0(struct MapObject *, struct Sprite *, u8, bool8(u8)); -u8 sub_805F5A8(struct MapObject *, struct Sprite *, u8, bool8(u8)); -u8 sub_805F660(struct MapObject *, struct Sprite *, u8, bool8(u8)); -u8 cph_IM_DIFFERENT(struct MapObject *, struct Sprite *, u8, bool8(u8)); -u8 sub_805F760(struct MapObject *, struct Sprite *, u8, bool8(u8)); -u8 oac_hopping(struct MapObject *, struct Sprite *, u8, bool8(u8)); - -extern struct CameraSomething gUnknown_03004880; -extern u16 gUnknown_03004898; -extern u16 gUnknown_0300489C; - -extern const struct Coords16 gDirectionToVector[]; - -void FieldObjectCB_BerryTree(struct Sprite *); -void FieldObjectCB_Hidden1(struct Sprite *); -void FieldObjectCB_MountainDisguise(struct Sprite *); -void FieldObjectCB_TreeDisguise(struct Sprite *); -void sub_80587B4(struct Sprite *); -void sub_805C884(struct Sprite *); -void sub_805C8AC(struct Sprite *); -void sub_805CDE8(struct Sprite *); -void sub_805CF28(struct Sprite *); -void sub_805D0AC(struct Sprite *); -void sub_805D230(struct Sprite *); -void sub_805D4F4(struct Sprite *); -void sub_805D634(struct Sprite *); -void sub_805D774(struct Sprite *); -void sub_805D8B4(struct Sprite *); -void sub_805D9F4(struct Sprite *); -void sub_805DB34(struct Sprite *); -void sub_805DC74(struct Sprite *); -void sub_805DDB4(struct Sprite *); -void sub_805DEF4(struct Sprite *); -void sub_805E034(struct Sprite *); -void sub_805E174(struct Sprite *); -void sub_805E278(struct Sprite *); -void sub_805E37C(struct Sprite *); -void sub_805E5DC(struct Sprite *); -void sub_805E668(struct Sprite *); -void sub_805E6F4(struct Sprite *); -void sub_805E780(struct Sprite *); -void sub_805E80C(struct Sprite *); -void sub_805E898(struct Sprite *); -void sub_805E924(struct Sprite *); -void sub_805E9B0(struct Sprite *); -void sub_805EA3C(struct Sprite *); -void sub_805EAC8(struct Sprite *); -void sub_805EB54(struct Sprite *); -void sub_805EBE0(struct Sprite *); -void sub_805EC6C(struct Sprite *); -void sub_805ECF8(struct Sprite *); -void sub_805ED84(struct Sprite *); -void sub_805EE10(struct Sprite *); -void sub_805EE9C(struct Sprite *); -void sub_805EF28(struct Sprite *); -void sub_805EFB4(struct Sprite *); -void sub_805F040(struct Sprite *); -void sub_805F0CC(struct Sprite *); -void sub_805F158(struct Sprite *); -void sub_805F1E4(struct Sprite *); -void sub_805F270(struct Sprite *); -void sub_805F2FC(struct Sprite *); -void sub_805F8E0(struct Sprite *); -void sub_805FB20(struct Sprite *); -void sub_805FB90(struct Sprite *); -void sub_805FC00(struct Sprite *); -void sub_805FC70(struct Sprite *); - -u8 sub_805C8F0(struct MapObject *, struct Sprite *); -u8 sub_805C904(struct MapObject *, struct Sprite *); -u8 sub_805C930(struct MapObject *, struct Sprite *); -u8 sub_805C96C(struct MapObject *, struct Sprite *); -u8 sub_805C98C(struct MapObject *, struct Sprite *); -u8 sub_805C9D8(struct MapObject *, struct Sprite *); -u8 sub_805CA08(struct MapObject *, struct Sprite *); -u8 sub_805CE2C(struct MapObject *, struct Sprite *); -u8 sub_805CE40(struct MapObject *, struct Sprite *); -u8 sub_805CE6C(struct MapObject *, struct Sprite *); -u8 sub_805CEB0(struct MapObject *, struct Sprite *); -u8 sub_805CEE0(struct MapObject *, struct Sprite *); -u8 sub_805CF6C(struct MapObject *, struct Sprite *); -u8 sub_805CF80(struct MapObject *, struct Sprite *); -u8 sub_805CFAC(struct MapObject *, struct Sprite *); -u8 sub_805CFE8(struct MapObject *, struct Sprite *); -u8 sub_805D008(struct MapObject *, struct Sprite *); -u8 sub_805D054(struct MapObject *, struct Sprite *); -u8 sub_805D084(struct MapObject *, struct Sprite *); -u8 sub_805D0F0(struct MapObject *, struct Sprite *); -u8 sub_805D104(struct MapObject *, struct Sprite *); -u8 sub_805D130(struct MapObject *, struct Sprite *); -u8 sub_805D16C(struct MapObject *, struct Sprite *); -u8 sub_805D18C(struct MapObject *, struct Sprite *); -u8 sub_805D1D8(struct MapObject *, struct Sprite *); -u8 sub_805D208(struct MapObject *, struct Sprite *); -u8 sub_805D274(struct MapObject *, struct Sprite *); -u8 sub_805D2A0(struct MapObject *, struct Sprite *); -u8 sub_805D2C0(struct MapObject *, struct Sprite *); -u8 do_berry_tree_growth_sparkle_1(struct MapObject *, struct Sprite *); -u8 sub_805D3EC(struct MapObject *, struct Sprite *); -u8 do_berry_tree_growth_sparkle_2(struct MapObject *, struct Sprite *); -u8 sub_805D458(struct MapObject *, struct Sprite *); -u8 sub_805D4A8(struct MapObject *, struct Sprite *); -u8 sub_805D538(struct MapObject *, struct Sprite *); -u8 sub_805D54C(struct MapObject *, struct Sprite *); -u8 sub_805D578(struct MapObject *, struct Sprite *); -u8 sub_805D5BC(struct MapObject *, struct Sprite *); -u8 sub_805D5EC(struct MapObject *, struct Sprite *); -u8 sub_805D678(struct MapObject *, struct Sprite *); -u8 sub_805D68C(struct MapObject *, struct Sprite *); -u8 sub_805D6B8(struct MapObject *, struct Sprite *); -u8 sub_805D6FC(struct MapObject *, struct Sprite *); -u8 sub_805D72C(struct MapObject *, struct Sprite *); -u8 sub_805D7B8(struct MapObject *, struct Sprite *); -u8 sub_805D7CC(struct MapObject *, struct Sprite *); -u8 sub_805D7F8(struct MapObject *, struct Sprite *); -u8 sub_805D83C(struct MapObject *, struct Sprite *); -u8 sub_805D86C(struct MapObject *, struct Sprite *); -u8 sub_805D8F8(struct MapObject *, struct Sprite *); -u8 sub_805D90C(struct MapObject *, struct Sprite *); -u8 sub_805D938(struct MapObject *, struct Sprite *); -u8 sub_805D97C(struct MapObject *, struct Sprite *); -u8 sub_805D9AC(struct MapObject *, struct Sprite *); -u8 sub_805DA38(struct MapObject *, struct Sprite *); -u8 sub_805DA4C(struct MapObject *, struct Sprite *); -u8 sub_805DA78(struct MapObject *, struct Sprite *); -u8 sub_805DABC(struct MapObject *, struct Sprite *); -u8 sub_805DAEC(struct MapObject *, struct Sprite *); -u8 sub_805DB78(struct MapObject *, struct Sprite *); -u8 sub_805DB8C(struct MapObject *, struct Sprite *); -u8 sub_805DBB8(struct MapObject *, struct Sprite *); -u8 sub_805DBFC(struct MapObject *, struct Sprite *); -u8 sub_805DC2C(struct MapObject *, struct Sprite *); -u8 sub_805DCB8(struct MapObject *, struct Sprite *); -u8 sub_805DCCC(struct MapObject *, struct Sprite *); -u8 sub_805DCF8(struct MapObject *, struct Sprite *); -u8 sub_805DD3C(struct MapObject *, struct Sprite *); -u8 sub_805DD6C(struct MapObject *, struct Sprite *); -u8 sub_805DDF8(struct MapObject *, struct Sprite *); -u8 sub_805DE0C(struct MapObject *, struct Sprite *); -u8 sub_805DE38(struct MapObject *, struct Sprite *); -u8 sub_805DE7C(struct MapObject *, struct Sprite *); -u8 sub_805DEAC(struct MapObject *, struct Sprite *); -u8 sub_805DF38(struct MapObject *, struct Sprite *); -u8 sub_805DF4C(struct MapObject *, struct Sprite *); -u8 sub_805DF78(struct MapObject *, struct Sprite *); -u8 sub_805DFBC(struct MapObject *, struct Sprite *); -u8 sub_805DFEC(struct MapObject *, struct Sprite *); -u8 sub_805E078(struct MapObject *, struct Sprite *); -u8 sub_805E08C(struct MapObject *, struct Sprite *); -u8 sub_805E0B8(struct MapObject *, struct Sprite *); -u8 sub_805E0FC(struct MapObject *, struct Sprite *); -u8 sub_805E12C(struct MapObject *, struct Sprite *); -u8 sub_805E1B8(struct MapObject *, struct Sprite *); -u8 sub_805E1E4(struct MapObject *, struct Sprite *); -u8 sub_805E208(struct MapObject *, struct Sprite *); -u8 sub_805E234(struct MapObject *, struct Sprite *); -u8 sub_805E2BC(struct MapObject *, struct Sprite *); -u8 sub_805E2E8(struct MapObject *, struct Sprite *); -u8 sub_805E30C(struct MapObject *, struct Sprite *); -u8 sub_805E338(struct MapObject *, struct Sprite *); -u8 sub_805E3C0(struct MapObject *, struct Sprite *); -u8 sub_805E3D4(struct MapObject *, struct Sprite *); -u8 sub_805E40C(struct MapObject *, struct Sprite *); -u8 sub_805E4C4(struct MapObject *, struct Sprite *); -u8 sub_805E4EC(struct MapObject *, struct Sprite *); -u8 sub_805E620(struct MapObject *, struct Sprite *); -u8 sub_805E5B4(struct MapObject *, struct Sprite *); -u8 sub_805E4EC(struct MapObject *, struct Sprite *); -u8 sub_805E6AC(struct MapObject *, struct Sprite *); -u8 sub_805E5B4(struct MapObject *, struct Sprite *); -u8 sub_805E4EC(struct MapObject *, struct Sprite *); -u8 sub_805E738(struct MapObject *, struct Sprite *); -u8 sub_805E5B4(struct MapObject *, struct Sprite *); -u8 sub_805E4EC(struct MapObject *, struct Sprite *); -u8 sub_805E7C4(struct MapObject *, struct Sprite *); -u8 sub_805E5B4(struct MapObject *, struct Sprite *); -u8 sub_805E4EC(struct MapObject *, struct Sprite *); -u8 sub_805E850(struct MapObject *, struct Sprite *); -u8 sub_805E5B4(struct MapObject *, struct Sprite *); -u8 sub_805E4EC(struct MapObject *, struct Sprite *); -u8 sub_805E8DC(struct MapObject *, struct Sprite *); -u8 sub_805E5B4(struct MapObject *, struct Sprite *); -u8 sub_805E4EC(struct MapObject *, struct Sprite *); -u8 sub_805E968(struct MapObject *, struct Sprite *); -u8 sub_805E5B4(struct MapObject *, struct Sprite *); -u8 sub_805E4EC(struct MapObject *, struct Sprite *); -u8 sub_805E9F4(struct MapObject *, struct Sprite *); -u8 sub_805E5B4(struct MapObject *, struct Sprite *); -u8 sub_805E4EC(struct MapObject *, struct Sprite *); -u8 sub_805EA80(struct MapObject *, struct Sprite *); -u8 sub_805E5B4(struct MapObject *, struct Sprite *); -u8 sub_805E4EC(struct MapObject *, struct Sprite *); -u8 sub_805EB0C(struct MapObject *, struct Sprite *); -u8 sub_805E5B4(struct MapObject *, struct Sprite *); -u8 sub_805E4EC(struct MapObject *, struct Sprite *); -u8 sub_805EB98(struct MapObject *, struct Sprite *); -u8 sub_805E5B4(struct MapObject *, struct Sprite *); -u8 sub_805E4EC(struct MapObject *, struct Sprite *); -u8 sub_805EC24(struct MapObject *, struct Sprite *); -u8 sub_805E5B4(struct MapObject *, struct Sprite *); -u8 sub_805E4EC(struct MapObject *, struct Sprite *); -u8 sub_805ECB0(struct MapObject *, struct Sprite *); -u8 sub_805E5B4(struct MapObject *, struct Sprite *); -u8 sub_805E4EC(struct MapObject *, struct Sprite *); -u8 sub_805ED3C(struct MapObject *, struct Sprite *); -u8 sub_805E5B4(struct MapObject *, struct Sprite *); -u8 sub_805E4EC(struct MapObject *, struct Sprite *); -u8 sub_805EDC8(struct MapObject *, struct Sprite *); -u8 sub_805E5B4(struct MapObject *, struct Sprite *); -u8 sub_805E4EC(struct MapObject *, struct Sprite *); -u8 sub_805EE54(struct MapObject *, struct Sprite *); -u8 sub_805E5B4(struct MapObject *, struct Sprite *); -u8 sub_805E4EC(struct MapObject *, struct Sprite *); -u8 sub_805EEE0(struct MapObject *, struct Sprite *); -u8 sub_805E5B4(struct MapObject *, struct Sprite *); -u8 sub_805E4EC(struct MapObject *, struct Sprite *); -u8 sub_805EF6C(struct MapObject *, struct Sprite *); -u8 sub_805E5B4(struct MapObject *, struct Sprite *); -u8 sub_805E4EC(struct MapObject *, struct Sprite *); -u8 sub_805EFF8(struct MapObject *, struct Sprite *); -u8 sub_805E5B4(struct MapObject *, struct Sprite *); -u8 sub_805E4EC(struct MapObject *, struct Sprite *); -u8 sub_805F084(struct MapObject *, struct Sprite *); -u8 sub_805E5B4(struct MapObject *, struct Sprite *); -u8 sub_805E4EC(struct MapObject *, struct Sprite *); -u8 sub_805F110(struct MapObject *, struct Sprite *); -u8 sub_805E5B4(struct MapObject *, struct Sprite *); -u8 sub_805E4EC(struct MapObject *, struct Sprite *); -u8 sub_805F19C(struct MapObject *, struct Sprite *); -u8 sub_805E5B4(struct MapObject *, struct Sprite *); -u8 sub_805E4EC(struct MapObject *, struct Sprite *); -u8 sub_805F228(struct MapObject *, struct Sprite *); -u8 sub_805E5B4(struct MapObject *, struct Sprite *); -u8 sub_805E4EC(struct MapObject *, struct Sprite *); -u8 sub_805F2B4(struct MapObject *, struct Sprite *); -u8 sub_805E5B4(struct MapObject *, struct Sprite *); -u8 mss_npc_reset_oampriv3_1_unk2_unk3(struct MapObject *, struct Sprite *); -u8 sub_805F364(struct MapObject *, struct Sprite *); -u8 sub_805F3C4(struct MapObject *, struct Sprite *); -u8 mss_npc_reset_oampriv3_1_unk2_unk3(struct MapObject *, struct Sprite *); -u8 mss_08062EA4(struct MapObject *, struct Sprite *); -u8 sub_805F3C4(struct MapObject *, struct Sprite *); -u8 sub_805FAF8(struct MapObject *, struct Sprite *); -u8 sub_805FB64(struct MapObject *, struct Sprite *); -u8 sub_805FB04(struct MapObject *, struct Sprite *); -u8 sub_805FBD4(struct MapObject *, struct Sprite *); -u8 sub_805FB04(struct MapObject *, struct Sprite *); -u8 sub_805FC44(struct MapObject *, struct Sprite *); -u8 sub_805FB04(struct MapObject *, struct Sprite *); -u8 sub_805FCB4(struct MapObject *, struct Sprite *); -u8 sub_805FCE8(struct MapObject *, struct Sprite *); -u8 sub_805FD08(struct MapObject *, struct Sprite *); - -u8 get_go_image_anim_num(u8); -u8 get_go_fast_image_anim_num(u8); -u8 get_go_fast_image_anim_num(u8); -u8 get_go_faster_image_anim_num(u8); -u8 sub_805FD78(u8); - -u32 state_to_direction(u8, u32, u32); - -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, const struct SubspriteTable **subspriteTables); -u8 AddPseudoFieldObject(u16 graphicsId, void (*callback)(struct Sprite *), s16 x, s16 y, 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 *, void *, void *, void *); -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, u32); -u8 sub_8060024(struct MapObject *, s16, s16, u8); -bool8 IsBerryTreeSparkling(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, u32 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(u32); -u8 GetSimpleGoAnimId(u32); -u8 GetGoSpeed0AnimId(u32); -u8 sub_8060744(u32); -u8 d2s_08064034(u32); -u8 sub_806079C(u32); -u8 sub_80607C8(u32); -u8 sub_80607F4(u32); -u8 GetJumpLedgeAnimId(u32); -u8 sub_806084C(u32); -u8 sub_8060878(u32); -u8 sub_80608A4(u32); -u8 sub_80608D0(u32); -u8 GetStepInPlaceDelay32AnimId(u32); -u8 GetStepInPlaceDelay16AnimId(u32); -u8 GetStepInPlaceDelay8AnimId(u32); -u8 GetStepInPlaceDelay4AnimId(u32); -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 *); -u8 SpawnSpecialFieldObjectParametrized(u8, u8, u8, s16, s16, u8); -void CameraObjectSetFollowedObjectId(u8); -u8 sub_805ADDC(u8); -void sub_8060320(u32, s16 *, s16 *, s16, s16); -u8 obj_unfreeze(struct Sprite *, s16, s16, u8); -u16 npc_paltag_by_palslot(u8); -void sub_8060470(s16 *, s16 *, s16, s16); - -#endif // GUARD_FIELD_MAP_OBJ_H diff --git a/include/field_map_obj_helpers.h b/include/field_map_obj_helpers.h deleted file mode 100644 index f760bf153..000000000 --- a/include/field_map_obj_helpers.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef GUARD_FIELDMAPOBJHELP_H -#define GUARD_FIELDMAPOBJHELP_H - -#include "sprite.h" - -bool8 FreezeMapObject(struct MapObject *); -void FreezeMapObjects(void); -void FreezeMapObjectsExceptOne(u8); -void UnfreezeMapObjects(void); -void sub_806487C(struct Sprite *sprite, bool8 invisible); -void sub_8064990(u8, u8); -void UnfreezeMapObject(struct MapObject *mapObject); -void oamt_npc_ministep_reset(struct Sprite *sprite, u8 a2, u8 a3); -void sub_806467C(struct Sprite *sprite, u8 direction); -bool8 sub_806468C(struct Sprite *sprite); -void sub_80646E4(struct Sprite *sprite, u8 a2, u8 a3, u8 a4); -void DoShadowFieldEffect(struct MapObject *mapObject); -u8 sub_8064704(struct Sprite *); -u8 sub_806478C(struct Sprite *); -void obj_anim_image_set_and_seek(struct Sprite *sprite, u8 a2, u8 a3); -void DoRippleFieldEffect(struct MapObject *mapObj, struct Sprite *sprite); - -#endif diff --git a/include/fieldmap.h b/include/fieldmap.h index 67b85fa62..1003b026f 100644 --- a/include/fieldmap.h +++ b/include/fieldmap.h @@ -1,6 +1,6 @@ #ifndef GUARD_FIELDMAP2_H #define GUARD_FIELDMAP2_H -#include "field_map_obj.h" +#include "evobjmv.h" extern struct BackupMapData gUnknown_03004870; struct MapHeader *mapconnection_get_mapheader(struct MapConnection *connection); -- cgit v1.2.3 From 4c1e0b8b303320a173203b8ab94c2a695555ace3 Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Thu, 25 Jan 2018 00:07:15 -0600 Subject: integrate debug functions in mail.c and decompile some debug code --- include/constants/items.h | 2 ++ include/easy_chat.h | 1 + 2 files changed, 3 insertions(+) (limited to 'include') diff --git a/include/constants/items.h b/include/constants/items.h index 9b88db1da..6f54e6ee4 100644 --- a/include/constants/items.h +++ b/include/constants/items.h @@ -401,4 +401,6 @@ // Check if the item is one that can be used on a Pokemon. #define IS_POKEMON_ITEM(item) ((item) >= ITEM_POTION && (item) <= ITEM_0B2) +#define IS_ITEM_MAIL(item) ((item) >= ITEM_ORANGE_MAIL && (item) <= ITEM_RETRO_MAIL) + #endif // GUARD_CONSTANTS_ITEMS_H diff --git a/include/easy_chat.h b/include/easy_chat.h index 58750fa92..b86b166aa 100644 --- a/include/easy_chat.h +++ b/include/easy_chat.h @@ -117,6 +117,7 @@ struct Shared1000 // const pointer to shared1000. easy_chat might be two separate files. extern struct Shared1000 *const gEasyChatStruct; +void sub_80E60D8(void); void sub_80E62A0(u8 arg0, u16 *arg1, void (*arg2)(void), u8 arg3); u16 sub_80EB72C(u16 group); void sub_80EB6FC(u16 *, u16); -- cgit v1.2.3 From cb9aec12785894d727583d13b0152c6d32948553 Mon Sep 17 00:00:00 2001 From: camthesaxman Date: Mon, 29 Jan 2018 15:08:10 -0600 Subject: integrate debug code in pokenav_before.c --- include/link.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include') diff --git a/include/link.h b/include/link.h index e8dfc333a..6a7212645 100644 --- a/include/link.h +++ b/include/link.h @@ -195,6 +195,7 @@ void LinkVSync(void); void Timer3Intr(void); void SerialCB(void); void LinkTestScreen(void); +void debug_sub_8008218(u16 *buffer, void *arg1, u16 (*arg2)[], u32 arg3); void debug_sub_8008264(u32 value, int left, int top, int r3, int sp0); u32 sub_8007E40(void); -- cgit v1.2.3 From 6ecfa94ffb3d8c9ed8548c573a2ec1c1ef9357a4 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 30 Jan 2018 16:30:08 -0500 Subject: Remove some explicit calls to memcpy in matsuda_debug_menu; label fields in ContestPokemon --- include/contest.h | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) (limited to 'include') diff --git a/include/contest.h b/include/contest.h index b0bdd7f61..557b9e5c4 100644 --- a/include/contest.h +++ b/include/contest.h @@ -43,17 +43,13 @@ struct ContestPokemon /*0x02*/ u8 nickname[POKEMON_NAME_LENGTH + 1]; /*0x0D*/ u8 trainerName[8]; /*0x15*/ u8 trainerGfxId; - /*0x16*/ u8 unk16; - /*0x17*/ u8 filler17; /*0x18*/ u32 flags; - /*0x1C*/ u8 unk1C_0:2; - u8 unk1C_2:1; - u8 unk1C_3:1; - u8 unk1C_4:1; - u8 unk1C_5:1; - u8 unk1C_6:1; - u8 unk1C_7:1; - u8 filler1D; + /*0x1C*/ u8 whichRank:2; + u8 aiPool_Cool:1; + u8 aiPool_Beauty:1; + u8 aiPool_Cute:1; + u8 aiPool_Smart:1; + u8 aiPool_Tough:1; /*0x1E*/ u16 moves[4]; // moves /*0x26*/ u8 cool; // cool /*0x27*/ u8 beauty; // beauty @@ -61,8 +57,7 @@ struct ContestPokemon /*0x29*/ u8 smart; // smart /*0x2A*/ u8 tough; // tough /*0x2B*/ u8 sheen; // sheen - /*0x2C*/ u8 unk2C; - /*0x2D*/ u8 unk2D[11]; + /*0x2C*/ u8 unk2C[12]; /*0x38*/ u32 personality; // personality /*0x3C*/ u32 otId; // otId }; // wow -- cgit v1.2.3 From cce651aabe5d00d45ca0a11055e278f40eb774cc Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 30 Jan 2018 17:54:25 -0500 Subject: match sub_8116100 --- include/global.h | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'include') diff --git a/include/global.h b/include/global.h index d0af4a4d1..6dd772795 100644 --- a/include/global.h +++ b/include/global.h @@ -65,6 +65,15 @@ enum #define T2_READ_32(ptr) ((ptr)[0] + ((ptr)[1] << 8) + ((ptr)[2] << 16) + ((ptr)[3] << 24)) #define T2_READ_PTR(ptr) (void*) T2_READ_32(ptr) +// Credits to Made (dolphin emoji) +#define S16TOPOSFLOAT(val) \ +({ \ + s16 v = (val); \ + float f = (float)v; \ + if(v < 0) f += 65536.0f; \ + f; \ +}) + enum { VERSION_SAPPHIRE = 1, -- cgit v1.2.3 From 2df648dc4b9dee51503d319c677456c008b438fb Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Tue, 30 Jan 2018 19:56:12 -0800 Subject: Finish decompiling rock.s --- include/rom_8077ABC.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'include') diff --git a/include/rom_8077ABC.h b/include/rom_8077ABC.h index 21ec88a90..81a11ba04 100644 --- a/include/rom_8077ABC.h +++ b/include/rom_8077ABC.h @@ -103,5 +103,7 @@ bool8 sub_8078718(struct Sprite *sprite); bool8 sub_8078CE8(struct Sprite *sprite); void oamt_add_pos2_onto_pos1(struct Sprite *sprite); void sub_8078BD4(struct Sprite *sprite); +void sub_807941C(struct Sprite *sprite); +void sub_80789D4(bool8 a1); #endif // GUARD_ROM_8077ABC_H -- cgit v1.2.3 From 58928acf41b3ed7fc9f7de12db2aad27de744203 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Tue, 30 Jan 2018 20:13:43 -0800 Subject: Use standard naming convention for pc_screen_effect.h guard --- include/pc_screen_effect.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'include') diff --git a/include/pc_screen_effect.h b/include/pc_screen_effect.h index 36661bc3b..d3f6d22de 100644 --- a/include/pc_screen_effect.h +++ b/include/pc_screen_effect.h @@ -1,5 +1,5 @@ -#ifndef POKERUBY_PC_SCREEN_EFFECT_H -#define POKERUBY_PC_SCREEN_EFFECT_H +#ifndef GUARD_PC_SCREEN_EFFECT_H +#define GUARD_PC_SCREEN_EFFECT_H struct PCScreenEffectStruct { @@ -18,4 +18,4 @@ bool8 sub_80C5DCC(void); void sub_80C5E38(struct PCScreenEffectStruct *unkStruct); bool8 sub_80C5F98(void); -#endif //POKERUBY_PC_SCREEN_EFFECT_H +#endif //GUARD_PC_SCREEN_EFFECT_H -- cgit v1.2.3 From c410df510012f7a6ccfc342b398cd5d407fb0bf6 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Wed, 31 Jan 2018 18:33:01 -0800 Subject: Start decompiling psychic.s --- include/battle_anim.h | 1 + include/rom_8077ABC.h | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/battle_anim.h b/include/battle_anim.h index a94e6d13c..fd1becf39 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -63,5 +63,6 @@ void sub_80763FC(u16 a, u16 *b, u32 c, u8 d); s16 CalculatePanIncrement(s16 sourcePan, s16 targetPan, s16 incrementPan); s16 sub_8077104(s16 newPan, int oldPan); void DestroyAnimSoundTask(u8 taskId); +void sub_8076464(u8 a); #endif diff --git a/include/rom_8077ABC.h b/include/rom_8077ABC.h index 81a11ba04..756c5fa03 100644 --- a/include/rom_8077ABC.h +++ b/include/rom_8077ABC.h @@ -85,7 +85,7 @@ void sub_8078174(struct Sprite *sprite); void sub_80793C4(struct Sprite *sprite); void sub_807A3FC(u8 slot, u8 a2, s16 *a3, s16 *a4); u8 sub_8079ED4(u8 slot); -int sub_807A100(u8 slot, u8 a2); +s16 sub_807A100(u8 slot, u8 a2); u16 sub_80790F0(s16 a, s16 b); void sub_8078FDC(struct Sprite *sprite, bool8 a2, s16 xScale, s16 yScale, u16 rotation); void sub_807867C(struct Sprite *sprite, s16 a2); -- cgit v1.2.3 From 513d85e2df9cdb288df6345107130c4bd144148d Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Thu, 1 Feb 2018 12:20:37 -0800 Subject: Finish decompiling psychic.s --- include/rom_8077ABC.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include') diff --git a/include/rom_8077ABC.h b/include/rom_8077ABC.h index 756c5fa03..f7b75fb04 100644 --- a/include/rom_8077ABC.h +++ b/include/rom_8077ABC.h @@ -105,5 +105,6 @@ void oamt_add_pos2_onto_pos1(struct Sprite *sprite); void sub_8078BD4(struct Sprite *sprite); void sub_807941C(struct Sprite *sprite); void sub_80789D4(bool8 a1); +void sub_8079AB8(u8 sprite, u8 sprite2); #endif // GUARD_ROM_8077ABC_H -- cgit v1.2.3 From 9776f51f0643a8d988fcd5fc2ac404a7ea285235 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 3 Feb 2018 09:18:12 -0500 Subject: Declare gBagPockets as non-const in item.c for the sake of getting AddBagItem to match without the NONMATCHING define --- include/item.h | 2 -- 1 file changed, 2 deletions(-) (limited to 'include') diff --git a/include/item.h b/include/item.h index 8f6cc883b..bafa8a3fd 100644 --- a/include/item.h +++ b/include/item.h @@ -30,8 +30,6 @@ struct BagPocket #define NUM_BAG_POCKETS 5 -extern const struct BagPocket gBagPockets[NUM_BAG_POCKETS]; - void CopyItemName(u16 itemId, u8 *string); bool8 IsBagPocketNonEmpty(u8 pocket); bool8 CheckBagHasItem(u16 itemId, u16 count); -- cgit v1.2.3 From 338d2b0b1897899a6fa787f8baa4cf392f81b718 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Sun, 4 Feb 2018 12:34:18 -0800 Subject: Finish decompiling dark.s except one function --- include/rom_8077ABC.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include') diff --git a/include/rom_8077ABC.h b/include/rom_8077ABC.h index f7b75fb04..ff737135b 100644 --- a/include/rom_8077ABC.h +++ b/include/rom_8077ABC.h @@ -106,5 +106,6 @@ void sub_8078BD4(struct Sprite *sprite); void sub_807941C(struct Sprite *sprite); void sub_80789D4(bool8 a1); void sub_8079AB8(u8 sprite, u8 sprite2); +u8 sub_807A4A0(int bank, u8 sprite, int species); #endif // GUARD_ROM_8077ABC_H -- cgit v1.2.3 From 377710a0cb9cd85f2d1d221c1de30f671b4286cd Mon Sep 17 00:00:00 2001 From: camthesaxman Date: Tue, 6 Feb 2018 21:20:07 -0600 Subject: decompile debug code in cable_club.c --- include/field_specials.h | 1 + include/link.h | 7 ++++++- include/overworld.h | 10 ++++++---- 3 files changed, 13 insertions(+), 5 deletions(-) (limited to 'include') diff --git a/include/field_specials.h b/include/field_specials.h index 52325879c..a8e8d3da7 100644 --- a/include/field_specials.h +++ b/include/field_specials.h @@ -26,5 +26,6 @@ void SetShoalItemFlag(u16); u8 GetLeadMonIndex(void); void ResetFanClub(void); u8 sub_810FB10(u8 a0); +void sub_810FEFC(void); #endif // GUARD_FIELD_SPECIALS_H diff --git a/include/link.h b/include/link.h index 6a7212645..d8c6690ea 100644 --- a/include/link.h +++ b/include/link.h @@ -131,10 +131,11 @@ extern const struct BlockRequest sBlockRequestLookupTable[5]; extern struct Link gLink; extern u16 gRecvCmds[CMD_LENGTH][MAX_LINK_PLAYERS]; +// TODO: Why is gBlockSendBuffer a u8 array, while gBlockRecvBuffer is a u16 array? extern u8 gBlockSendBuffer[BLOCK_BUFFER_SIZE]; +extern u16 gBlockRecvBuffer[MAX_LINK_PLAYERS][BLOCK_BUFFER_SIZE / 2]; extern u16 gLinkType; extern u32 gLinkStatus; -extern u16 gBlockRecvBuffer[MAX_LINK_PLAYERS][BLOCK_BUFFER_SIZE / 2]; extern u16 gSendCmd[CMD_LENGTH]; extern u8 gShouldAdvanceLinkState; #if GERMAN @@ -145,6 +146,8 @@ extern struct LinkPlayer gLinkPlayers[]; extern u16 word_3002910[]; extern bool8 gReceivedRemoteLinkPlayers; extern bool8 gLinkOpen; +extern bool8 gLinkPlayerPending[MAX_LINK_PLAYERS]; +void (*gLinkCallback)(void); void Task_DestroySelf(u8); void sub_8007270(u8); @@ -198,5 +201,7 @@ void LinkTestScreen(void); void debug_sub_8008218(u16 *buffer, void *arg1, u16 (*arg2)[], u32 arg3); void debug_sub_8008264(u32 value, int left, int top, int r3, int sp0); u32 sub_8007E40(void); +void PrintHex(u32, u8, u8, u8); +void InitLinkTestBG_Unused(u8, u8, u8, u8); #endif // GUARD_LINK_H diff --git a/include/overworld.h b/include/overworld.h index 50089593f..734f751d4 100644 --- a/include/overworld.h +++ b/include/overworld.h @@ -24,6 +24,8 @@ struct UCoords32 extern const struct UCoords32 gUnknown_0821664C[]; extern void (*gFieldCallback)(void); +extern u8 gFieldLinkPlayerCount; +extern u8 gUnknown_03004860; // sub_8052F5C void Overworld_ResetStateAfterFly(void); @@ -91,7 +93,7 @@ void sub_8053D14(u16); // GetLocationMusic // GetCurrLocationDefaultMusic // GetWarpDestinationMusic -// Overworld_ResetMapMusic +void Overworld_ResetMapMusic(void); void Overworld_PlaySpecialMapMusic(void); void Overworld_SetSavedMusic(u16); void Overworld_ClearSavedMusic(void); @@ -185,11 +187,11 @@ u16 sub_8055438(u32); // sub_80554B8 // sub_80554BC // sub_80554E4 -// sub_80554F8 +s32 sub_80554F8(void); // unref_sub_8055568 -// sub_8055574 +void sub_8055574(void); u16 sub_8055588(void); -// sub_805559C +void sub_805559C(void); void sub_80555B0(int linkPlayerId, int a2, struct UnkStruct_8054FF8 *a3); bool32 sub_8055618(struct UnkStruct_8054FF8 *); bool32 sub_8055630(struct UnkStruct_8054FF8 *); -- cgit v1.2.3 From 4ddd59b4cae97d152b08c49516641fb176095882 Mon Sep 17 00:00:00 2001 From: camthesaxman Date: Tue, 6 Feb 2018 21:35:53 -0600 Subject: fix build --- include/overworld.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/overworld.h b/include/overworld.h index 734f751d4..dc393cc63 100644 --- a/include/overworld.h +++ b/include/overworld.h @@ -189,9 +189,9 @@ u16 sub_8055438(u32); // sub_80554E4 s32 sub_80554F8(void); // unref_sub_8055568 -void sub_8055574(void); +u16 sub_8055574(void); u16 sub_8055588(void); -void sub_805559C(void); +u16 sub_805559C(void); void sub_80555B0(int linkPlayerId, int a2, struct UnkStruct_8054FF8 *a3); bool32 sub_8055618(struct UnkStruct_8054FF8 *); bool32 sub_8055630(struct UnkStruct_8054FF8 *); -- cgit v1.2.3 From 843c7016bbfe4c3a0d93a74b17ec43da98f49b2d Mon Sep 17 00:00:00 2001 From: camthesaxman Date: Tue, 6 Feb 2018 22:41:43 -0600 Subject: decompile debug code in reset_rtc_screen.c --- include/rtc.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include') diff --git a/include/rtc.h b/include/rtc.h index fdc5ad709..e117cf753 100644 --- a/include/rtc.h +++ b/include/rtc.h @@ -44,5 +44,6 @@ void RtcInitLocalTimeOffset(s32 hour, s32 minute); void RtcCalcLocalTimeOffset(s32 days, s32 hours, s32 minutes, s32 seconds); void CalcTimeDifference(struct Time *result, struct Time *t1, struct Time *t2); u32 RtcGetMinuteCount(void); +void debug_sub_8009894(u8 *); #endif // GUARD_RTC_UTIL_H -- cgit v1.2.3 From aaf065aba01db7456ed9a8fd82ccb2961ea9d97a Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Sat, 10 Feb 2018 14:46:53 -0800 Subject: Sync battle anim script command names with pokeemerald --- include/macros/battle_anim.inc | 74 +++++++++++++++++++++--------------------- 1 file changed, 37 insertions(+), 37 deletions(-) (limited to 'include') diff --git a/include/macros/battle_anim.inc b/include/macros/battle_anim.inc index 4ff845032..bf409a848 100644 --- a/include/macros/battle_anim.inc +++ b/include/macros/battle_anim.inc @@ -1,14 +1,14 @@ - .macro loadsprite id + .macro loadspritegfx id .byte 0x00 .2byte \id .endm - .macro unloadsprite id + .macro unloadspritegfx id .byte 0x01 .2byte \id .endm - .macro sprite template, priority, argv:vararg + .macro createsprite template, priority, argv:vararg .byte 0x02 .4byte \template .byte \priority @@ -18,7 +18,7 @@ .Lsprite_\@_2: .endm - .macro createtask addr, priority, argv:vararg + .macro createvisualtask addr, priority, argv:vararg .byte 0x03 .4byte \addr .byte \priority @@ -28,12 +28,12 @@ .Lcreatetask_\@_2: .endm - .macro pause delay + .macro delay amount .byte 0x04 - .byte \delay + .byte \amount .endm - .macro wait + .macro waitforvisualfinish .byte 0x05 .endm @@ -78,29 +78,29 @@ .4byte \addr .endm - .macro ret + .macro return .byte 0x0F .endm - .macro setvar var_num, value + .macro setarg arg_num, value .byte 0x10 - .byte \var_num + .byte \arg_num .2byte \value .endm - .macro ifelse addr1, addr2 + .macro choosetwoturnanim addr1, addr2 .byte 0x11 .4byte \addr1 .4byte \addr2 .endm - .macro jumpif cond, addr + .macro jumpifmoveturn cond, addr .byte 0x12 .byte \cond .4byte \addr .endm - .macro jump addr + .macro goto addr .byte 0x13 .4byte \addr .endm @@ -127,7 +127,7 @@ .byte \id .endm - .macro panse_19 id, pan + .macro playsewithpan id, pan .byte 0x19 .2byte \id .byte \pan @@ -147,7 +147,7 @@ .byte \delay .endm - .macro panse_1C id, pan, delay, count + .macro loopsewithpan id, pan, delay, count .byte 0x1C .2byte \id .byte \pan @@ -155,7 +155,7 @@ .byte \count .endm - .macro panse_1D id, pan, count + .macro waitplaysewithpan id, pan, count .byte 0x1D .2byte \id .byte \pan @@ -167,7 +167,7 @@ .2byte \bldcnt .endm - .macro createtask_1F addr, argv:vararg + .macro createsoundtask addr, argv:vararg .byte 0x1F .4byte \addr .byte (.Lcreatetask_1F_\@_2 - .Lcreatetask_1F_\@_1) / 2 @@ -180,29 +180,29 @@ .byte 0x20 .endm - .macro jumpvareq var_num, value, addr + .macro jumpargeq arg_num, value, addr .byte 0x21 - .byte \var_num + .byte \arg_num .2byte \value .4byte \addr .endm - .macro monbg_22 unk + .macro monbg_22 bank .byte 0x22 - .byte \unk + .byte \bank .endm - .macro clearmonbg_23 unk + .macro clearmonbg_23 bank .byte 0x23 - .byte \unk + .byte \bank .endm - .macro jumpunkcond addr + .macro jumpifcontest addr .byte 0x24 .4byte \addr .endm - .macro fadetobg_25 a, b, c + .macro fadetobgfromset a, b, c .byte 0x25 .byte \a .byte \b @@ -227,38 +227,38 @@ .byte \delay .endm - .macro monbgprio_28 unk + .macro monbgprio_28 bank .byte 0x28 - .byte \unk + .byte \bank .endm .macro monbgprio_29 .byte 0x29 .endm - .macro monbgprio_2A unk + .macro monbgprio_2A bank .byte 0x2A - .byte \unk + .byte \bank .endm - .macro invisible side + .macro invisible bank .byte 0x2B - .byte \side + .byte \bank .endm - .macro visible side + .macro visible bank .byte 0x2C - .byte \side + .byte \bank .endm - .macro doublebattle_2D unk + .macro doublebattle_2D bank .byte 0x2D - .byte \unk + .byte \bank .endm - .macro doublebattle_2E unk + .macro doublebattle_2E bank .byte 0x2E - .byte \unk + .byte \bank .endm .macro stopsound -- cgit v1.2.3 From c59acc702458caa610ce856ce20ac6dc12d16621 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Sat, 10 Feb 2018 17:29:11 -0800 Subject: Start documenting battle anims --- include/battle_anim.h | 10 +--------- include/constants/battle_anim.h | 9 +++++++++ 2 files changed, 10 insertions(+), 9 deletions(-) create mode 100644 include/constants/battle_anim.h (limited to 'include') diff --git a/include/battle_anim.h b/include/battle_anim.h index fd1becf39..ce9bb13de 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -9,14 +9,6 @@ #define REG_BG2CNT_BITFIELD REG_BGnCNT_BITFIELD(2) #define REG_BG3CNT_BITFIELD REG_BGnCNT_BITFIELD(3) -enum -{ - ANIM_BANK_ATTACKER, - ANIM_BANK_TARGET, - ANIM_BANK_ATK_PARTNER, - ANIM_BANK_DEF_PARTNER, -}; - struct BattleAnimBackground { void *image; @@ -51,7 +43,7 @@ extern struct DisableStruct *gAnimDisableStructPtr; void DoMoveAnim(u16 move); void LaunchBattleAnimation(const u8 *const moveAnims[], u16 b, u8 c); bool8 IsAnimBankSpriteVisible(u8 a); -void sub_8076034(u8, u8); +void MoveBattlerSpriteToBG(u8, u8); bool8 IsContest(void); void ClearBattleAnimationVars(void); void DestroyAnimSprite(struct Sprite *sprite); diff --git a/include/constants/battle_anim.h b/include/constants/battle_anim.h new file mode 100644 index 000000000..c173a8730 --- /dev/null +++ b/include/constants/battle_anim.h @@ -0,0 +1,9 @@ +#ifndef GUARD_BATTLEANIM_CONSTANTS_H +#define GUARD_BATTLEANIM_CONSTANTS_H + +#define ANIM_BANK_ATTACKER 0 +#define ANIM_BANK_TARGET 1 +#define ANIM_BANK_ATK_PARTNER 2 +#define ANIM_BANK_DEF_PARTNER 3 + +#endif -- cgit v1.2.3 From 4fe6a8bd80ff947661aea391060207a53895338e Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Sat, 10 Feb 2018 23:49:54 -0800 Subject: Document battle anim things related to SWIFT and TWISTER --- include/rom_8077ABC.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'include') diff --git a/include/rom_8077ABC.h b/include/rom_8077ABC.h index ff737135b..97e001635 100644 --- a/include/rom_8077ABC.h +++ b/include/rom_8077ABC.h @@ -36,8 +36,8 @@ 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 InitAnimSpriteTranslationDeltas(struct Sprite *sprite); +bool8 TranslateAnimSpriteByDeltas(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); @@ -65,7 +65,7 @@ void sub_807A850(struct Task *task, u8 taskId); void sub_807A8D4(struct Sprite *sprite); void sub_807A960(struct Sprite *sprite); void sub_8078A34(struct Sprite *sprite); -void sub_80787B0(struct Sprite *sprite, u8); +void InitAnimSpritePos(struct Sprite *sprite, u8); void sub_8078764(struct Sprite *sprite, u8); void sub_8078B34(struct Sprite *sprite); void sub_8078D60(struct Sprite *sprite); @@ -83,7 +83,7 @@ void sub_8078C00(struct Sprite *sprite); void sub_8078114(struct Sprite *sprite); void sub_8078174(struct Sprite *sprite); void sub_80793C4(struct Sprite *sprite); -void sub_807A3FC(u8 slot, u8 a2, s16 *a3, s16 *a4); +void SetAverageBattlerPositions(u8 slot, u8 a2, s16 *a3, s16 *a4); u8 sub_8079ED4(u8 slot); s16 sub_807A100(u8 slot, u8 a2); u16 sub_80790F0(s16 a, s16 b); @@ -99,7 +99,7 @@ void sub_80798F4(struct Task *task, u8 a2, const void *a3); bool8 sub_807992C(struct Task *task); u8 sub_8077FC0(u8 slot); void move_anim_8074EE0(struct Sprite *sprite); -bool8 sub_8078718(struct Sprite *sprite); +bool8 TranslateAnimSpriteLinearAndSine(struct Sprite *sprite); bool8 sub_8078CE8(struct Sprite *sprite); void oamt_add_pos2_onto_pos1(struct Sprite *sprite); void sub_8078BD4(struct Sprite *sprite); -- cgit v1.2.3 From c775680d716299ae74cbcfb7eeb41c8982010021 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Sun, 11 Feb 2018 12:43:48 -0800 Subject: Document battle anim things related to STRENGTH, TACKLE, BODY_SLAM, and SUPERSONIC --- include/rom_8077ABC.h | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) (limited to 'include') diff --git a/include/rom_8077ABC.h b/include/rom_8077ABC.h index 97e001635..ed42871a6 100644 --- a/include/rom_8077ABC.h +++ b/include/rom_8077ABC.h @@ -16,8 +16,8 @@ u8 GetAnimBankSpriteId(u8 side); void StoreSpriteCallbackInData(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); +void TranslateMonBGUntil(struct Sprite *sprite); +void TranslateMonBGSubPixelUntil(struct Sprite *sprite); u8 GetBankSide(u8); u8 GetBankSide(u8); u8 GetBankSide(u8 side); @@ -34,11 +34,10 @@ 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 InitSpriteDataForLinearTranslation(struct Sprite *sprite); void InitAnimSpriteTranslationDeltas(struct Sprite *sprite); bool8 TranslateAnimSpriteByDeltas(struct Sprite *sprite); -void sub_8078BB8(struct Sprite *sprite); +void TranslateAnimSpriteByDeltasUntil(struct Sprite *sprite); void sub_8078D44(struct Sprite *sprite); void obj_id_set_rotscale(u8 sprite, s16, s16, u16); bool8 sub_8078E38(); @@ -67,7 +66,7 @@ void sub_807A960(struct Sprite *sprite); void sub_8078A34(struct Sprite *sprite); void InitAnimSpritePos(struct Sprite *sprite, u8); void sub_8078764(struct Sprite *sprite, u8); -void sub_8078B34(struct Sprite *sprite); +void StartTranslateAnimSpriteByDeltas(struct Sprite *sprite); void sub_8078D60(struct Sprite *sprite); void sub_80786EC(struct Sprite *sprite); void sub_80782D8(struct Sprite *sprite); @@ -103,7 +102,7 @@ bool8 TranslateAnimSpriteLinearAndSine(struct Sprite *sprite); bool8 sub_8078CE8(struct Sprite *sprite); void oamt_add_pos2_onto_pos1(struct Sprite *sprite); void sub_8078BD4(struct Sprite *sprite); -void sub_807941C(struct Sprite *sprite); +void TranslateAnimSpriteToTargetMonLocation(struct Sprite *sprite); void sub_80789D4(bool8 a1); void sub_8079AB8(u8 sprite, u8 sprite2); u8 sub_807A4A0(int bank, u8 sprite, int species); -- cgit v1.2.3 From b4e5099c7623f2fd19f6670da0d20ccd6f202e6b Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Wed, 14 Feb 2018 23:19:37 -0600 Subject: decompile debug_sub_801174C --- include/pokeblock.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include') diff --git a/include/pokeblock.h b/include/pokeblock.h index cda598f6c..af39cbfd3 100644 --- a/include/pokeblock.h +++ b/include/pokeblock.h @@ -42,6 +42,7 @@ s16 PokeblockGetGain(u8, const struct Pokeblock *); u8 sub_810CB68(u8, u8*); void PokeblockCopyName(struct Pokeblock *pokeblock, u8 *dest); void CB2_PreparePokeblockFeedScene(void); +bool8 sub_810CA34(struct Pokeblock *); #include "main.h" -- cgit v1.2.3 From aaa67d9f274611bc0a1eb1a28409e36756417c24 Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Thu, 15 Feb 2018 01:19:14 -0600 Subject: decompile debug_sub_8011EA0 and debug_sub_8012294 --- include/pokeblock.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/pokeblock.h b/include/pokeblock.h index af39cbfd3..a606a32ad 100644 --- a/include/pokeblock.h +++ b/include/pokeblock.h @@ -42,7 +42,7 @@ s16 PokeblockGetGain(u8, const struct Pokeblock *); u8 sub_810CB68(u8, u8*); void PokeblockCopyName(struct Pokeblock *pokeblock, u8 *dest); void CB2_PreparePokeblockFeedScene(void); -bool8 sub_810CA34(struct Pokeblock *); +bool8 sub_810CA34(const struct Pokeblock *); #include "main.h" -- cgit v1.2.3 From e58c4ac922c10a2e7c06e1c3d27a95cf51361cb5 Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Thu, 15 Feb 2018 01:36:03 -0600 Subject: ItemId_GetItem -> ItemId_GetName --- include/item.h | 21 +-------------------- 1 file changed, 1 insertion(+), 20 deletions(-) (limited to 'include') diff --git a/include/item.h b/include/item.h index bafa8a3fd..57aebf88e 100644 --- a/include/item.h +++ b/include/item.h @@ -1,27 +1,8 @@ #ifndef GUARD_ITEM_H #define GUARD_ITEM_H - typedef void (*ItemUseFunc)(u8); -struct Item -{ - u8 name[14]; - u16 itemId; - u16 price; - u8 holdEffect; - u8 holdEffectParam; - const u8 *description; - u8 importance; - u8 unk19; - u8 pocket; - u8 type; - ItemUseFunc fieldUseFunc; - u8 battleUsage; - ItemUseFunc battleUseFunc; - u8 secondaryId; -}; - struct BagPocket { struct ItemSlot *itemSlots; @@ -43,7 +24,7 @@ bool8 CheckPCHasItem(u16 itemId, u16 count); bool8 AddPCItem(u16 itemId, u16 count); void RemovePCItem(u8 index, u16 count); void SwapRegisteredBike(void); -const struct Item *ItemId_GetItem(u16 itemId); +const u8 *ItemId_GetName(u16 itemId); u16 ItemId_GetId(u16 itemId); u16 ItemId_GetPrice(u16 itemId); u8 ItemId_GetHoldEffect(u16 itemId); -- cgit v1.2.3 From abd9ab75e831d66dc30d27091251d1ad37334bdf Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Thu, 15 Feb 2018 22:24:05 -0600 Subject: decompile region_map.c and cable_car.c debug functions --- include/ewram.h | 1 - 1 file changed, 1 deletion(-) (limited to 'include') diff --git a/include/ewram.h b/include/ewram.h index cafb418fb..f1d9baa78 100644 --- a/include/ewram.h +++ b/include/ewram.h @@ -13,7 +13,6 @@ extern u8 gSharedMem[]; #define ewram0_2 (*(struct Struct2000000 *)(gSharedMem + 0x0)) #define namingScreenData (*(struct NamingScreenData *)(gSharedMem + 0x0)) #define ewramBerryPic (gSharedMem + 0x0) -#define ewram0_3 (*(struct UnknownStruct3 *)(gSharedMem + 0x0)) #define ewram0_4 (*(struct Unk2000000 *)(gSharedMem + 0x0)) #define ewram0_5 (*(struct UnkStruct *)(gSharedMem + 0x0)) #define eMatsudaDebugVar (gSharedMem[0x0]) -- cgit v1.2.3 From 18837b385535975044c14ed9a735833dc7d02126 Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Fri, 16 Feb 2018 00:57:15 -0600 Subject: decompile some debug code in slot_machine.c --- include/slot_machine.h | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'include') diff --git a/include/slot_machine.h b/include/slot_machine.h index 7759ca1b2..b31798657 100644 --- a/include/slot_machine.h +++ b/include/slot_machine.h @@ -1,7 +1,8 @@ #ifndef GUARD_SLOT_MACHINE_H #define GUARD_SLOT_MACHINE_H -enum { +enum +{ SLOT_MACHINE_TAG_7_RED, SLOT_MACHINE_TAG_7_BLUE, SLOT_MACHINE_TAG_AZURILL, @@ -11,7 +12,8 @@ enum { SLOT_MACHINE_TAG_REPLAY }; -enum { +enum +{ SLOT_MACHINE_MATCHED_1CHERRY, SLOT_MACHINE_MATCHED_2CHERRY, SLOT_MACHINE_MATCHED_REPLAY, @@ -24,7 +26,8 @@ enum { SLOT_MACHINE_MATCHED_NONE }; -struct SlotMachineEwramStruct { +struct SlotMachineEwramStruct +{ /*0x00*/ u8 state; /*0x01*/ u8 unk01; /*0x02*/ u8 pikaPower; @@ -70,6 +73,10 @@ struct SlotMachineEwramStruct { /*0x5e*/ u16 winOut; /*0x60*/ u16 backupMapMusic; /*0x64*/ MainCallback prevMainCb; +#if DEBUG + u8 unk68[4]; + u8 unk6C[0]; +#endif }; void PlaySlotMachine(u8 arg0, MainCallback cb); -- cgit v1.2.3 From edc214732e28e264a3d54afc01a44c2307604703 Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Fri, 16 Feb 2018 18:41:05 -0600 Subject: finish decompiling debug code in slot_machine.c --- include/slot_machine.h | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/slot_machine.h b/include/slot_machine.h index b31798657..85a3047e2 100644 --- a/include/slot_machine.h +++ b/include/slot_machine.h @@ -74,8 +74,17 @@ struct SlotMachineEwramStruct /*0x60*/ u16 backupMapMusic; /*0x64*/ MainCallback prevMainCb; #if DEBUG - u8 unk68[4]; - u8 unk6C[0]; + u32 unk68; + u32 unk6C; + u32 unk70; + u32 unk74; + u32 unk78; + u32 unk7C; + u32 unk80; + u32 unk84; + u32 unk88; + u32 unk8C; + s32 unk90; #endif }; -- cgit v1.2.3 From 0c189f3efb02f9d8e485c55b36c1ed86883ea1fe Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Fri, 16 Feb 2018 18:51:32 -0600 Subject: reorganize slot machine data --- include/slot_machine.h | 87 -------------------------------------------------- 1 file changed, 87 deletions(-) (limited to 'include') diff --git a/include/slot_machine.h b/include/slot_machine.h index 85a3047e2..456f2bed6 100644 --- a/include/slot_machine.h +++ b/include/slot_machine.h @@ -1,93 +1,6 @@ #ifndef GUARD_SLOT_MACHINE_H #define GUARD_SLOT_MACHINE_H -enum -{ - SLOT_MACHINE_TAG_7_RED, - SLOT_MACHINE_TAG_7_BLUE, - SLOT_MACHINE_TAG_AZURILL, - SLOT_MACHINE_TAG_LOTAD, - SLOT_MACHINE_TAG_CHERRY, - SLOT_MACHINE_TAG_POWER, - SLOT_MACHINE_TAG_REPLAY -}; - -enum -{ - SLOT_MACHINE_MATCHED_1CHERRY, - SLOT_MACHINE_MATCHED_2CHERRY, - SLOT_MACHINE_MATCHED_REPLAY, - SLOT_MACHINE_MATCHED_LOTAD, - SLOT_MACHINE_MATCHED_AZURILL, - SLOT_MACHINE_MATCHED_POWER, - SLOT_MACHINE_MATCHED_777_MIXED, - SLOT_MACHINE_MATCHED_777_RED, - SLOT_MACHINE_MATCHED_777_BLUE, - SLOT_MACHINE_MATCHED_NONE -}; - -struct SlotMachineEwramStruct -{ - /*0x00*/ u8 state; - /*0x01*/ u8 unk01; - /*0x02*/ u8 pikaPower; - /*0x03*/ u8 unk03; - /*0x04*/ u8 unk04; - /*0x05*/ u8 unk05; - /*0x06*/ u8 unk06; - /*0x07*/ u8 unk07; - /*0x08*/ u16 matchedSymbols; - /*0x0A*/ u8 unk0A; - /*0x0B*/ u8 unk0B; - /*0x0C*/ s16 coins; - /*0x0E*/ s16 payout; - /*0x10*/ s16 unk10; - /*0x12*/ s16 bet; - /*0x14*/ s16 unk14; - /*0x16*/ s16 unk16; - /*0x18*/ s16 unk18; - /*0x1A*/ s16 unk1A; - /*0x1C*/ s16 unk1C[3]; - /*0x22*/ u16 unk22[3]; - /*0x28*/ s16 reelPositions[3]; - /*0x2E*/ s16 unk2E[3]; - /*0x34*/ s16 unk34[3]; - /*0x3A*/ u8 reelTasks[3]; - /*0x3D*/ u8 unk3D; - /*0x3E*/ u8 unk3E; - /*0x3F*/ u8 unk3F; - /*0x40*/ u8 unk40; - /*0x41*/ u8 unk41; - /*0x42*/ u8 unk42; - /*0x43*/ u8 unk43; - /*0x44*/ u8 unk44[5]; - /*0x49*/ u8 unk49[2]; - /*0x49*/ u8 unk4B[3]; - /*0x4E*/ u8 unk4E[2]; - /*0x50*/ u8 unk50[2]; - /*0x52*/ u8 unk52[2]; - /*0x54*/ u8 unk54[4]; - /*0x58*/ u16 win0h; - /*0x5a*/ u16 win0v; - /*0x5c*/ u16 winIn; - /*0x5e*/ u16 winOut; - /*0x60*/ u16 backupMapMusic; - /*0x64*/ MainCallback prevMainCb; -#if DEBUG - u32 unk68; - u32 unk6C; - u32 unk70; - u32 unk74; - u32 unk78; - u32 unk7C; - u32 unk80; - u32 unk84; - u32 unk88; - u32 unk8C; - s32 unk90; -#endif -}; - void PlaySlotMachine(u8 arg0, MainCallback cb); void sub_8104DA4(void); u8 sub_8105BB4(u8 templateIdx, u8 cbAndCoordsIdx, s16 a2); -- cgit v1.2.3 From 051af13fe7f92644f2bacc9c225dd7ff52b6cc56 Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Fri, 16 Feb 2018 22:51:19 -0600 Subject: decompile more debug code --- include/new_game.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'include') diff --git a/include/new_game.h b/include/new_game.h index 5be7f6265..c90606b5a 100644 --- a/include/new_game.h +++ b/include/new_game.h @@ -1,6 +1,8 @@ #ifndef GUARD_NEW_GAME_H #define GUARD_NEW_GAME_H +extern u8 gUnknown_020297ED; + void write_word_to_mem(u32 var, u8 *dataPtr); void copy_word_to_mem(u8 *copyTo, u8 *copyFrom); void InitPlayerTrainerId(void); -- cgit v1.2.3 From b9f8d43825463363a67be0ce9fcd00b23d264e05 Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Sat, 17 Feb 2018 15:32:57 -0600 Subject: decompile more debug code --- include/battle_tower.h | 1 + include/global.berry.h | 2 +- include/global.h | 25 +++++++++++++++++++++---- include/shop.h | 2 +- include/start_menu.h | 2 ++ 5 files changed, 26 insertions(+), 6 deletions(-) (limited to 'include') diff --git a/include/battle_tower.h b/include/battle_tower.h index a3e1ff28c..fe9d4ae6e 100644 --- a/include/battle_tower.h +++ b/include/battle_tower.h @@ -98,5 +98,6 @@ void SetEReaderTrainerName(u8*); u8 GetEReaderTrainerPicIndex(void); u8 GetEReaderTrainerClassNameIndex(void); void ValidateEReaderTrainer(void); +void SetEReaderTrainerChecksum(struct BattleTowerEReaderTrainer *ereaderTrainer); #endif // GUARD_BATTLE_TOWER_H diff --git a/include/global.berry.h b/include/global.berry.h index 21a0dd500..8f185c8f9 100644 --- a/include/global.berry.h +++ b/include/global.berry.h @@ -3,7 +3,7 @@ struct Berry { - /*0x00*/ const u8 name[7]; + /*0x00*/ u8 name[7]; /*0x07*/ u8 firmness; /*0x08*/ u16 size; /*0x0A*/ u8 maxYield; diff --git a/include/global.h b/include/global.h index 6dd772795..4b23fded7 100644 --- a/include/global.h +++ b/include/global.h @@ -734,9 +734,10 @@ struct Pokedex struct BattleTowerTrainer { - u8 trainerClass; - u8 name[8]; - u8 teamFlags; + /*0x00*/ u8 trainerClass; + /*0x01*/ u8 name[8]; + /*0x09*/ u8 teamFlags; + /*0x0C*/ struct { u16 easyChat[6]; } greeting; @@ -756,6 +757,7 @@ struct BattleTowerRecord // record mixing /*0xA0*/u32 checksum; }; +#if 0 struct BattleTowerEReaderTrainer { /*0x00*/u8 unk0; @@ -775,6 +777,21 @@ struct BattleTowerEReaderTrainer /*0x34*/struct UnknownPokemonStruct party[3]; /*0xB8*/u32 checksum; }; +#endif + +struct BattleTowerEReaderTrainer +{ + /*0x00*/ u8 unk0; + /*0x01*/ u8 trainerClass; + /*0x02*/ u16 winStreak; + /*0x04*/ u8 name[8]; + /*0x0C*/ u8 trainerId[4]; + /*0x10*/ u16 greeting[6]; + /*0x1C*/ u16 farewellPlayerLost[6]; + /*0x28*/ u16 farewellPlayerWon[6]; + /*0x34*/ struct UnknownPokemonStruct party[3]; + /*0xB8*/ u32 checksum; +}; struct BattleTowerData { @@ -831,7 +848,7 @@ struct MapPosition { s16 x; s16 y; - u8 height; + s8 height; }; struct UnkStruct_8054FF8 diff --git a/include/shop.h b/include/shop.h index 80602e26c..347d46d3c 100644 --- a/include/shop.h +++ b/include/shop.h @@ -28,7 +28,7 @@ enum struct MartInfo { /* 0x0 */ void (* callback) (void); - /* 0x4 */ u16 *itemList; + /* 0x4 */ const u16 *itemList; /* 0x8 */ u8 itemCount; // how many unique items are there for sale? /* 0x9 */ u8 cursor; // this shows the on-screen true index of the cursor and not the current item selected. /* 0xA */ u8 numChoices; // how many options does the mart have? can be either 2 or 1 (BUY/SELL vs BUY) diff --git a/include/start_menu.h b/include/start_menu.h index d3f77dc99..5e513b9dc 100644 --- a/include/start_menu.h +++ b/include/start_menu.h @@ -1,6 +1,8 @@ #ifndef GUARD_STARTER_CHOOSE_H #define GUARD_STARTER_CHOOSE_H +extern u8 (*gMenuCallback)(void); + //Public functions void CreateStartMenuTask(void (*func)(u8)); void sub_80712B4(u8 taskId); -- cgit v1.2.3 From 17a5968adbc1dfb6586641729b39eeb3873481df Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Sat, 17 Feb 2018 17:30:31 -0600 Subject: decompile more debug code --- include/global.h | 26 +------------------------- include/link.h | 1 + 2 files changed, 2 insertions(+), 25 deletions(-) (limited to 'include') diff --git a/include/global.h b/include/global.h index 4b23fded7..dcd20981e 100644 --- a/include/global.h +++ b/include/global.h @@ -740,7 +740,7 @@ struct BattleTowerTrainer /*0x0C*/ struct { u16 easyChat[6]; - } greeting; + } greeting[6]; }; struct BattleTowerRecord // record mixing @@ -757,28 +757,6 @@ struct BattleTowerRecord // record mixing /*0xA0*/u32 checksum; }; -#if 0 -struct BattleTowerEReaderTrainer -{ - /*0x00*/u8 unk0; - /*0x01*/u8 trainerClass; - /*0x02*/u16 winStreak; - /*0x04*/u8 name[8]; - /*0x0C*/u8 trainerId[4]; - /*0x10*/struct { - u16 easyChat[6]; - } greeting; - /*0x1C*/struct { - u16 easyChat[6]; - } farewellPlayerLost; - /*0x28*/struct { - u16 easyChat[6]; - } farewellPlayerWon; - /*0x34*/struct UnknownPokemonStruct party[3]; - /*0xB8*/u32 checksum; -}; -#endif - struct BattleTowerEReaderTrainer { /*0x00*/ u8 unk0; @@ -867,8 +845,6 @@ struct HallOfFame u8 filler[0x1F00]; }; -extern struct HallOfFame gHallOfFame; extern struct SaveBlock2 gSaveBlock2; -extern u8 ewram[]; #endif // GUARD_GLOBAL_H diff --git a/include/link.h b/include/link.h index d8c6690ea..f9f2b6d0e 100644 --- a/include/link.h +++ b/include/link.h @@ -148,6 +148,7 @@ extern bool8 gReceivedRemoteLinkPlayers; extern bool8 gLinkOpen; extern bool8 gLinkPlayerPending[MAX_LINK_PLAYERS]; void (*gLinkCallback)(void); +extern u8 gUnknown_Debug_30030E0; void Task_DestroySelf(u8); void sub_8007270(u8); -- cgit v1.2.3 From 99befda409870bedc2120f3af0b84f3d6d55806b Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Sat, 17 Feb 2018 17:54:53 -0600 Subject: remove unnecessary struct in battle tower data --- include/global.h | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) (limited to 'include') diff --git a/include/global.h b/include/global.h index dcd20981e..ec82d5d1d 100644 --- a/include/global.h +++ b/include/global.h @@ -737,24 +737,20 @@ struct BattleTowerTrainer /*0x00*/ u8 trainerClass; /*0x01*/ u8 name[8]; /*0x09*/ u8 teamFlags; - /*0x0C*/ - struct { - u16 easyChat[6]; - } greeting[6]; + u8 filler0A[2]; + /*0x0C*/ u16 greeting[6]; }; struct BattleTowerRecord // record mixing { - /*0x00*/u8 battleTowerLevelType; // 0 = level 50, 1 = level 100 - /*0x01*/u8 trainerClass; - /*0x02*/u16 winStreak; - /*0x04*/u8 name[8]; - /*0x0C*/u8 trainerId[4]; - /*0x10*/struct { - u16 easyChat[6]; - } greeting; - /*0x1C*/struct UnknownPokemonStruct party[3]; - /*0xA0*/u32 checksum; + /*0x00*/ u8 battleTowerLevelType; // 0 = level 50, 1 = level 100 + /*0x01*/ u8 trainerClass; + /*0x02*/ u16 winStreak; + /*0x04*/ u8 name[8]; + /*0x0C*/ u8 trainerId[4]; + /*0x10*/ u16 greeting[6]; + /*0x1C*/ struct UnknownPokemonStruct party[3]; + /*0xA0*/ u32 checksum; }; struct BattleTowerEReaderTrainer -- cgit v1.2.3 From e74b0c6e51796d2c8c7fab6ef22f75d15a6c8786 Mon Sep 17 00:00:00 2001 From: ProjectRevoTPP Date: Sat, 17 Feb 2018 22:14:41 -0500 Subject: take your stupid fucking politically correct names since you dont care about authenticity --- include/event_object_movement.h | 478 ++++++++++++++++++++++++++++++++++++++++ include/evobjmv.h | 478 ---------------------------------------- include/fieldmap.h | 2 +- 3 files changed, 479 insertions(+), 479 deletions(-) create mode 100644 include/event_object_movement.h delete mode 100644 include/evobjmv.h (limited to 'include') diff --git a/include/event_object_movement.h b/include/event_object_movement.h new file mode 100644 index 000000000..495942656 --- /dev/null +++ b/include/event_object_movement.h @@ -0,0 +1,478 @@ +#ifndef GUARD_EVENTOBJMV_H +#define GUARD_EVENTOBJMV_H + +#include "sprite.h" + +extern const u8 gUnknown_0830FD14[]; + +#define fieldmap_object_cb(setup, callback, table) \ +static u8 callback(struct MapObject *, struct Sprite *);\ +void setup(struct Sprite *sprite)\ +{\ + meta_step(&gMapObjects[sprite->data[0]], sprite, callback);\ +}\ +static u8 callback(struct MapObject *mapObject, struct Sprite *sprite)\ +{\ + return table[sprite->data[1]](mapObject, sprite);\ +} + +#define fieldmap_object_null_cb(setup, callback) \ +static u8 callback(struct MapObject *, struct Sprite *);\ +void setup(struct Sprite *sprite)\ +{\ + meta_step(&gMapObjects[sprite->data[0]], sprite, callback);\ +}\ +static u8 callback(struct MapObject *mapObject, struct Sprite *sprite)\ +{\ + return 0;\ +} + +struct PairedPalettes +{ + u16 tag; + const u16 *data; +}; + +extern const u16 gMapObjectPalette19[]; + +extern const u32 gMapObjectPic_MovingBox[32]; +extern const struct SpriteFrameImage gMapObjectPicTable_PechaBerryTree[]; + +extern const u8 gFieldEffectPic_CutGrass[]; +extern const u16 gFieldEffectObjectPalette6[]; + +void sub_805C058(struct MapObject *mapObject, s16 a, s16 b); +void FieldObjectSetDirection(struct MapObject *pObject, u8 unk_18); +void MoveCoords(u8 direction, s16 *x, s16 *y); +void meta_step(struct MapObject *pObject, struct Sprite *pSprite, u8 (*d8)(struct MapObject *, struct Sprite *)); +void npc_reset(struct MapObject *mapObject, struct Sprite *sprite); + +u8 sub_805CAAC(s16 a0, s16 a1, s16 a2, s16 a3); +u8 sub_805CADC(s16 a0, s16 a1, s16 a2, s16 a3); +u8 sub_805CAEC(s16 a0, s16 a1, s16 a2, s16 a3); +u8 sub_805CB00(s16 a0, s16 a1, s16 a2, s16 a3); +u8 sub_805CB5C(s16 a0, s16 a1, s16 a2, s16 a3); +u8 sub_805CBB8(s16 a0, s16 a1, s16 a2, s16 a3); +u8 sub_805CC14(s16 a0, s16 a1, s16 a2, s16 a3); +u8 sub_805CC70(s16 a0, s16 a1, s16 a2, s16 a3); +u8 sub_805CCAC(s16 a0, s16 a1, s16 a2, s16 a3); +u8 sub_805CCE8(s16 a0, s16 a1, s16 a2, s16 a3); +u8 sub_805CD24(s16 a0, s16 a1, s16 a2, s16 a3); + +u8 sub_805F3EC(struct MapObject *, struct Sprite *, u8, bool8(u8)); +u8 sub_805F3F0(struct MapObject *, struct Sprite *, u8, bool8(u8)); +u8 sub_805F438(struct MapObject *, struct Sprite *, u8, bool8(u8)); +u8 sub_805F4F0(struct MapObject *, struct Sprite *, u8, bool8(u8)); +u8 sub_805F5A8(struct MapObject *, struct Sprite *, u8, bool8(u8)); +u8 sub_805F660(struct MapObject *, struct Sprite *, u8, bool8(u8)); +u8 cph_IM_DIFFERENT(struct MapObject *, struct Sprite *, u8, bool8(u8)); +u8 sub_805F760(struct MapObject *, struct Sprite *, u8, bool8(u8)); +u8 oac_hopping(struct MapObject *, struct Sprite *, u8, bool8(u8)); + +extern struct CameraSomething gUnknown_03004880; +extern u16 gUnknown_03004898; +extern u16 gUnknown_0300489C; + +extern const struct Coords16 gDirectionToVector[]; + +void FieldObjectCB_BerryTree(struct Sprite *); +void FieldObjectCB_Hidden1(struct Sprite *); +void FieldObjectCB_MountainDisguise(struct Sprite *); +void FieldObjectCB_TreeDisguise(struct Sprite *); +void sub_80587B4(struct Sprite *); +void sub_805C884(struct Sprite *); +void sub_805C8AC(struct Sprite *); +void sub_805CDE8(struct Sprite *); +void sub_805CF28(struct Sprite *); +void sub_805D0AC(struct Sprite *); +void sub_805D230(struct Sprite *); +void sub_805D4F4(struct Sprite *); +void sub_805D634(struct Sprite *); +void sub_805D774(struct Sprite *); +void sub_805D8B4(struct Sprite *); +void sub_805D9F4(struct Sprite *); +void sub_805DB34(struct Sprite *); +void sub_805DC74(struct Sprite *); +void sub_805DDB4(struct Sprite *); +void sub_805DEF4(struct Sprite *); +void sub_805E034(struct Sprite *); +void sub_805E174(struct Sprite *); +void sub_805E278(struct Sprite *); +void sub_805E37C(struct Sprite *); +void sub_805E5DC(struct Sprite *); +void sub_805E668(struct Sprite *); +void sub_805E6F4(struct Sprite *); +void sub_805E780(struct Sprite *); +void sub_805E80C(struct Sprite *); +void sub_805E898(struct Sprite *); +void sub_805E924(struct Sprite *); +void sub_805E9B0(struct Sprite *); +void sub_805EA3C(struct Sprite *); +void sub_805EAC8(struct Sprite *); +void sub_805EB54(struct Sprite *); +void sub_805EBE0(struct Sprite *); +void sub_805EC6C(struct Sprite *); +void sub_805ECF8(struct Sprite *); +void sub_805ED84(struct Sprite *); +void sub_805EE10(struct Sprite *); +void sub_805EE9C(struct Sprite *); +void sub_805EF28(struct Sprite *); +void sub_805EFB4(struct Sprite *); +void sub_805F040(struct Sprite *); +void sub_805F0CC(struct Sprite *); +void sub_805F158(struct Sprite *); +void sub_805F1E4(struct Sprite *); +void sub_805F270(struct Sprite *); +void sub_805F2FC(struct Sprite *); +void sub_805F8E0(struct Sprite *); +void sub_805FB20(struct Sprite *); +void sub_805FB90(struct Sprite *); +void sub_805FC00(struct Sprite *); +void sub_805FC70(struct Sprite *); + +u8 sub_805C8F0(struct MapObject *, struct Sprite *); +u8 sub_805C904(struct MapObject *, struct Sprite *); +u8 sub_805C930(struct MapObject *, struct Sprite *); +u8 sub_805C96C(struct MapObject *, struct Sprite *); +u8 sub_805C98C(struct MapObject *, struct Sprite *); +u8 sub_805C9D8(struct MapObject *, struct Sprite *); +u8 sub_805CA08(struct MapObject *, struct Sprite *); +u8 sub_805CE2C(struct MapObject *, struct Sprite *); +u8 sub_805CE40(struct MapObject *, struct Sprite *); +u8 sub_805CE6C(struct MapObject *, struct Sprite *); +u8 sub_805CEB0(struct MapObject *, struct Sprite *); +u8 sub_805CEE0(struct MapObject *, struct Sprite *); +u8 sub_805CF6C(struct MapObject *, struct Sprite *); +u8 sub_805CF80(struct MapObject *, struct Sprite *); +u8 sub_805CFAC(struct MapObject *, struct Sprite *); +u8 sub_805CFE8(struct MapObject *, struct Sprite *); +u8 sub_805D008(struct MapObject *, struct Sprite *); +u8 sub_805D054(struct MapObject *, struct Sprite *); +u8 sub_805D084(struct MapObject *, struct Sprite *); +u8 sub_805D0F0(struct MapObject *, struct Sprite *); +u8 sub_805D104(struct MapObject *, struct Sprite *); +u8 sub_805D130(struct MapObject *, struct Sprite *); +u8 sub_805D16C(struct MapObject *, struct Sprite *); +u8 sub_805D18C(struct MapObject *, struct Sprite *); +u8 sub_805D1D8(struct MapObject *, struct Sprite *); +u8 sub_805D208(struct MapObject *, struct Sprite *); +u8 sub_805D274(struct MapObject *, struct Sprite *); +u8 sub_805D2A0(struct MapObject *, struct Sprite *); +u8 sub_805D2C0(struct MapObject *, struct Sprite *); +u8 do_berry_tree_growth_sparkle_1(struct MapObject *, struct Sprite *); +u8 sub_805D3EC(struct MapObject *, struct Sprite *); +u8 do_berry_tree_growth_sparkle_2(struct MapObject *, struct Sprite *); +u8 sub_805D458(struct MapObject *, struct Sprite *); +u8 sub_805D4A8(struct MapObject *, struct Sprite *); +u8 sub_805D538(struct MapObject *, struct Sprite *); +u8 sub_805D54C(struct MapObject *, struct Sprite *); +u8 sub_805D578(struct MapObject *, struct Sprite *); +u8 sub_805D5BC(struct MapObject *, struct Sprite *); +u8 sub_805D5EC(struct MapObject *, struct Sprite *); +u8 sub_805D678(struct MapObject *, struct Sprite *); +u8 sub_805D68C(struct MapObject *, struct Sprite *); +u8 sub_805D6B8(struct MapObject *, struct Sprite *); +u8 sub_805D6FC(struct MapObject *, struct Sprite *); +u8 sub_805D72C(struct MapObject *, struct Sprite *); +u8 sub_805D7B8(struct MapObject *, struct Sprite *); +u8 sub_805D7CC(struct MapObject *, struct Sprite *); +u8 sub_805D7F8(struct MapObject *, struct Sprite *); +u8 sub_805D83C(struct MapObject *, struct Sprite *); +u8 sub_805D86C(struct MapObject *, struct Sprite *); +u8 sub_805D8F8(struct MapObject *, struct Sprite *); +u8 sub_805D90C(struct MapObject *, struct Sprite *); +u8 sub_805D938(struct MapObject *, struct Sprite *); +u8 sub_805D97C(struct MapObject *, struct Sprite *); +u8 sub_805D9AC(struct MapObject *, struct Sprite *); +u8 sub_805DA38(struct MapObject *, struct Sprite *); +u8 sub_805DA4C(struct MapObject *, struct Sprite *); +u8 sub_805DA78(struct MapObject *, struct Sprite *); +u8 sub_805DABC(struct MapObject *, struct Sprite *); +u8 sub_805DAEC(struct MapObject *, struct Sprite *); +u8 sub_805DB78(struct MapObject *, struct Sprite *); +u8 sub_805DB8C(struct MapObject *, struct Sprite *); +u8 sub_805DBB8(struct MapObject *, struct Sprite *); +u8 sub_805DBFC(struct MapObject *, struct Sprite *); +u8 sub_805DC2C(struct MapObject *, struct Sprite *); +u8 sub_805DCB8(struct MapObject *, struct Sprite *); +u8 sub_805DCCC(struct MapObject *, struct Sprite *); +u8 sub_805DCF8(struct MapObject *, struct Sprite *); +u8 sub_805DD3C(struct MapObject *, struct Sprite *); +u8 sub_805DD6C(struct MapObject *, struct Sprite *); +u8 sub_805DDF8(struct MapObject *, struct Sprite *); +u8 sub_805DE0C(struct MapObject *, struct Sprite *); +u8 sub_805DE38(struct MapObject *, struct Sprite *); +u8 sub_805DE7C(struct MapObject *, struct Sprite *); +u8 sub_805DEAC(struct MapObject *, struct Sprite *); +u8 sub_805DF38(struct MapObject *, struct Sprite *); +u8 sub_805DF4C(struct MapObject *, struct Sprite *); +u8 sub_805DF78(struct MapObject *, struct Sprite *); +u8 sub_805DFBC(struct MapObject *, struct Sprite *); +u8 sub_805DFEC(struct MapObject *, struct Sprite *); +u8 sub_805E078(struct MapObject *, struct Sprite *); +u8 sub_805E08C(struct MapObject *, struct Sprite *); +u8 sub_805E0B8(struct MapObject *, struct Sprite *); +u8 sub_805E0FC(struct MapObject *, struct Sprite *); +u8 sub_805E12C(struct MapObject *, struct Sprite *); +u8 sub_805E1B8(struct MapObject *, struct Sprite *); +u8 sub_805E1E4(struct MapObject *, struct Sprite *); +u8 sub_805E208(struct MapObject *, struct Sprite *); +u8 sub_805E234(struct MapObject *, struct Sprite *); +u8 sub_805E2BC(struct MapObject *, struct Sprite *); +u8 sub_805E2E8(struct MapObject *, struct Sprite *); +u8 sub_805E30C(struct MapObject *, struct Sprite *); +u8 sub_805E338(struct MapObject *, struct Sprite *); +u8 sub_805E3C0(struct MapObject *, struct Sprite *); +u8 sub_805E3D4(struct MapObject *, struct Sprite *); +u8 sub_805E40C(struct MapObject *, struct Sprite *); +u8 sub_805E4C4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805E620(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805E6AC(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805E738(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805E7C4(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805E850(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805E8DC(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805E968(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805E9F4(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805EA80(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805EB0C(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805EB98(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805EC24(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805ECB0(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805ED3C(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805EDC8(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805EE54(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805EEE0(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805EF6C(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805EFF8(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805F084(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805F110(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805F19C(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805F228(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805F2B4(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 mss_npc_reset_oampriv3_1_unk2_unk3(struct MapObject *, struct Sprite *); +u8 sub_805F364(struct MapObject *, struct Sprite *); +u8 sub_805F3C4(struct MapObject *, struct Sprite *); +u8 mss_npc_reset_oampriv3_1_unk2_unk3(struct MapObject *, struct Sprite *); +u8 mss_08062EA4(struct MapObject *, struct Sprite *); +u8 sub_805F3C4(struct MapObject *, struct Sprite *); +u8 sub_805FAF8(struct MapObject *, struct Sprite *); +u8 sub_805FB64(struct MapObject *, struct Sprite *); +u8 sub_805FB04(struct MapObject *, struct Sprite *); +u8 sub_805FBD4(struct MapObject *, struct Sprite *); +u8 sub_805FB04(struct MapObject *, struct Sprite *); +u8 sub_805FC44(struct MapObject *, struct Sprite *); +u8 sub_805FB04(struct MapObject *, struct Sprite *); +u8 sub_805FCB4(struct MapObject *, struct Sprite *); +u8 sub_805FCE8(struct MapObject *, struct Sprite *); +u8 sub_805FD08(struct MapObject *, struct Sprite *); + +u8 get_go_image_anim_num(u8); +u8 get_go_fast_image_anim_num(u8); +u8 get_go_fast_image_anim_num(u8); +u8 get_go_faster_image_anim_num(u8); +u8 sub_805FD78(u8); + +u32 state_to_direction(u8, u32, u32); + +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, const struct SubspriteTable **subspriteTables); +u8 AddPseudoFieldObject(u16 graphicsId, void (*callback)(struct Sprite *), s16 x, s16 y, 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 *, void *, void *, void *); +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, u32); +u8 sub_8060024(struct MapObject *, s16, s16, u8); +bool8 IsBerryTreeSparkling(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, u32 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(u32); +u8 GetSimpleGoAnimId(u32); +u8 GetGoSpeed0AnimId(u32); +u8 sub_8060744(u32); +u8 d2s_08064034(u32); +u8 sub_806079C(u32); +u8 sub_80607C8(u32); +u8 sub_80607F4(u32); +u8 GetJumpLedgeAnimId(u32); +u8 sub_806084C(u32); +u8 sub_8060878(u32); +u8 sub_80608A4(u32); +u8 sub_80608D0(u32); +u8 GetStepInPlaceDelay32AnimId(u32); +u8 GetStepInPlaceDelay16AnimId(u32); +u8 GetStepInPlaceDelay8AnimId(u32); +u8 GetStepInPlaceDelay4AnimId(u32); +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 *); +u8 SpawnSpecialFieldObjectParametrized(u8, u8, u8, s16, s16, u8); +void CameraObjectSetFollowedObjectId(u8); +u8 sub_805ADDC(u8); +void sub_8060320(u32, s16 *, s16 *, s16, s16); +u8 obj_unfreeze(struct Sprite *, s16, s16, u8); +u16 npc_paltag_by_palslot(u8); +void sub_8060470(s16 *, s16 *, s16, s16); +bool8 FreezeMapObject(struct MapObject *); +void FreezeMapObjects(void); +void FreezeMapObjectsExceptOne(u8); +void UnfreezeMapObjects(void); +void sub_806487C(struct Sprite *sprite, bool8 invisible); +void sub_8064990(u8, u8); +void UnfreezeMapObject(struct MapObject *mapObject); +void oamt_npc_ministep_reset(struct Sprite *sprite, u8 a2, u8 a3); +void sub_806467C(struct Sprite *sprite, u8 direction); +bool8 sub_806468C(struct Sprite *sprite); +void sub_80646E4(struct Sprite *sprite, u8 a2, u8 a3, u8 a4); +void DoShadowFieldEffect(struct MapObject *mapObject); +u8 sub_8064704(struct Sprite *); +u8 sub_806478C(struct Sprite *); +void obj_anim_image_set_and_seek(struct Sprite *sprite, u8 a2, u8 a3); +void DoRippleFieldEffect(struct MapObject *mapObj, struct Sprite *sprite); +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 // GUARD_EVENTOBJMV_H diff --git a/include/evobjmv.h b/include/evobjmv.h deleted file mode 100644 index 9f76a5856..000000000 --- a/include/evobjmv.h +++ /dev/null @@ -1,478 +0,0 @@ -#ifndef GUARD_EVOBJMV_H -#define GUARD_EVOBJMV_H - -#include "sprite.h" - -extern const u8 gUnknown_0830FD14[]; - -#define fieldmap_object_cb(setup, callback, table) \ -static u8 callback(struct MapObject *, struct Sprite *);\ -void setup(struct Sprite *sprite)\ -{\ - meta_step(&gMapObjects[sprite->data[0]], sprite, callback);\ -}\ -static u8 callback(struct MapObject *mapObject, struct Sprite *sprite)\ -{\ - return table[sprite->data[1]](mapObject, sprite);\ -} - -#define fieldmap_object_null_cb(setup, callback) \ -static u8 callback(struct MapObject *, struct Sprite *);\ -void setup(struct Sprite *sprite)\ -{\ - meta_step(&gMapObjects[sprite->data[0]], sprite, callback);\ -}\ -static u8 callback(struct MapObject *mapObject, struct Sprite *sprite)\ -{\ - return 0;\ -} - -struct PairedPalettes -{ - u16 tag; - const u16 *data; -}; - -extern const u16 gMapObjectPalette19[]; - -extern const u32 gMapObjectPic_MovingBox[32]; -extern const struct SpriteFrameImage gMapObjectPicTable_PechaBerryTree[]; - -extern const u8 gFieldEffectPic_CutGrass[]; -extern const u16 gFieldEffectObjectPalette6[]; - -void sub_805C058(struct MapObject *mapObject, s16 a, s16 b); -void FieldObjectSetDirection(struct MapObject *pObject, u8 unk_18); -void MoveCoords(u8 direction, s16 *x, s16 *y); -void meta_step(struct MapObject *pObject, struct Sprite *pSprite, u8 (*d8)(struct MapObject *, struct Sprite *)); -void npc_reset(struct MapObject *mapObject, struct Sprite *sprite); - -u8 sub_805CAAC(s16 a0, s16 a1, s16 a2, s16 a3); -u8 sub_805CADC(s16 a0, s16 a1, s16 a2, s16 a3); -u8 sub_805CAEC(s16 a0, s16 a1, s16 a2, s16 a3); -u8 sub_805CB00(s16 a0, s16 a1, s16 a2, s16 a3); -u8 sub_805CB5C(s16 a0, s16 a1, s16 a2, s16 a3); -u8 sub_805CBB8(s16 a0, s16 a1, s16 a2, s16 a3); -u8 sub_805CC14(s16 a0, s16 a1, s16 a2, s16 a3); -u8 sub_805CC70(s16 a0, s16 a1, s16 a2, s16 a3); -u8 sub_805CCAC(s16 a0, s16 a1, s16 a2, s16 a3); -u8 sub_805CCE8(s16 a0, s16 a1, s16 a2, s16 a3); -u8 sub_805CD24(s16 a0, s16 a1, s16 a2, s16 a3); - -u8 sub_805F3EC(struct MapObject *, struct Sprite *, u8, bool8(u8)); -u8 sub_805F3F0(struct MapObject *, struct Sprite *, u8, bool8(u8)); -u8 sub_805F438(struct MapObject *, struct Sprite *, u8, bool8(u8)); -u8 sub_805F4F0(struct MapObject *, struct Sprite *, u8, bool8(u8)); -u8 sub_805F5A8(struct MapObject *, struct Sprite *, u8, bool8(u8)); -u8 sub_805F660(struct MapObject *, struct Sprite *, u8, bool8(u8)); -u8 cph_IM_DIFFERENT(struct MapObject *, struct Sprite *, u8, bool8(u8)); -u8 sub_805F760(struct MapObject *, struct Sprite *, u8, bool8(u8)); -u8 oac_hopping(struct MapObject *, struct Sprite *, u8, bool8(u8)); - -extern struct CameraSomething gUnknown_03004880; -extern u16 gUnknown_03004898; -extern u16 gUnknown_0300489C; - -extern const struct Coords16 gDirectionToVector[]; - -void FieldObjectCB_BerryTree(struct Sprite *); -void FieldObjectCB_Hidden1(struct Sprite *); -void FieldObjectCB_MountainDisguise(struct Sprite *); -void FieldObjectCB_TreeDisguise(struct Sprite *); -void sub_80587B4(struct Sprite *); -void sub_805C884(struct Sprite *); -void sub_805C8AC(struct Sprite *); -void sub_805CDE8(struct Sprite *); -void sub_805CF28(struct Sprite *); -void sub_805D0AC(struct Sprite *); -void sub_805D230(struct Sprite *); -void sub_805D4F4(struct Sprite *); -void sub_805D634(struct Sprite *); -void sub_805D774(struct Sprite *); -void sub_805D8B4(struct Sprite *); -void sub_805D9F4(struct Sprite *); -void sub_805DB34(struct Sprite *); -void sub_805DC74(struct Sprite *); -void sub_805DDB4(struct Sprite *); -void sub_805DEF4(struct Sprite *); -void sub_805E034(struct Sprite *); -void sub_805E174(struct Sprite *); -void sub_805E278(struct Sprite *); -void sub_805E37C(struct Sprite *); -void sub_805E5DC(struct Sprite *); -void sub_805E668(struct Sprite *); -void sub_805E6F4(struct Sprite *); -void sub_805E780(struct Sprite *); -void sub_805E80C(struct Sprite *); -void sub_805E898(struct Sprite *); -void sub_805E924(struct Sprite *); -void sub_805E9B0(struct Sprite *); -void sub_805EA3C(struct Sprite *); -void sub_805EAC8(struct Sprite *); -void sub_805EB54(struct Sprite *); -void sub_805EBE0(struct Sprite *); -void sub_805EC6C(struct Sprite *); -void sub_805ECF8(struct Sprite *); -void sub_805ED84(struct Sprite *); -void sub_805EE10(struct Sprite *); -void sub_805EE9C(struct Sprite *); -void sub_805EF28(struct Sprite *); -void sub_805EFB4(struct Sprite *); -void sub_805F040(struct Sprite *); -void sub_805F0CC(struct Sprite *); -void sub_805F158(struct Sprite *); -void sub_805F1E4(struct Sprite *); -void sub_805F270(struct Sprite *); -void sub_805F2FC(struct Sprite *); -void sub_805F8E0(struct Sprite *); -void sub_805FB20(struct Sprite *); -void sub_805FB90(struct Sprite *); -void sub_805FC00(struct Sprite *); -void sub_805FC70(struct Sprite *); - -u8 sub_805C8F0(struct MapObject *, struct Sprite *); -u8 sub_805C904(struct MapObject *, struct Sprite *); -u8 sub_805C930(struct MapObject *, struct Sprite *); -u8 sub_805C96C(struct MapObject *, struct Sprite *); -u8 sub_805C98C(struct MapObject *, struct Sprite *); -u8 sub_805C9D8(struct MapObject *, struct Sprite *); -u8 sub_805CA08(struct MapObject *, struct Sprite *); -u8 sub_805CE2C(struct MapObject *, struct Sprite *); -u8 sub_805CE40(struct MapObject *, struct Sprite *); -u8 sub_805CE6C(struct MapObject *, struct Sprite *); -u8 sub_805CEB0(struct MapObject *, struct Sprite *); -u8 sub_805CEE0(struct MapObject *, struct Sprite *); -u8 sub_805CF6C(struct MapObject *, struct Sprite *); -u8 sub_805CF80(struct MapObject *, struct Sprite *); -u8 sub_805CFAC(struct MapObject *, struct Sprite *); -u8 sub_805CFE8(struct MapObject *, struct Sprite *); -u8 sub_805D008(struct MapObject *, struct Sprite *); -u8 sub_805D054(struct MapObject *, struct Sprite *); -u8 sub_805D084(struct MapObject *, struct Sprite *); -u8 sub_805D0F0(struct MapObject *, struct Sprite *); -u8 sub_805D104(struct MapObject *, struct Sprite *); -u8 sub_805D130(struct MapObject *, struct Sprite *); -u8 sub_805D16C(struct MapObject *, struct Sprite *); -u8 sub_805D18C(struct MapObject *, struct Sprite *); -u8 sub_805D1D8(struct MapObject *, struct Sprite *); -u8 sub_805D208(struct MapObject *, struct Sprite *); -u8 sub_805D274(struct MapObject *, struct Sprite *); -u8 sub_805D2A0(struct MapObject *, struct Sprite *); -u8 sub_805D2C0(struct MapObject *, struct Sprite *); -u8 do_berry_tree_growth_sparkle_1(struct MapObject *, struct Sprite *); -u8 sub_805D3EC(struct MapObject *, struct Sprite *); -u8 do_berry_tree_growth_sparkle_2(struct MapObject *, struct Sprite *); -u8 sub_805D458(struct MapObject *, struct Sprite *); -u8 sub_805D4A8(struct MapObject *, struct Sprite *); -u8 sub_805D538(struct MapObject *, struct Sprite *); -u8 sub_805D54C(struct MapObject *, struct Sprite *); -u8 sub_805D578(struct MapObject *, struct Sprite *); -u8 sub_805D5BC(struct MapObject *, struct Sprite *); -u8 sub_805D5EC(struct MapObject *, struct Sprite *); -u8 sub_805D678(struct MapObject *, struct Sprite *); -u8 sub_805D68C(struct MapObject *, struct Sprite *); -u8 sub_805D6B8(struct MapObject *, struct Sprite *); -u8 sub_805D6FC(struct MapObject *, struct Sprite *); -u8 sub_805D72C(struct MapObject *, struct Sprite *); -u8 sub_805D7B8(struct MapObject *, struct Sprite *); -u8 sub_805D7CC(struct MapObject *, struct Sprite *); -u8 sub_805D7F8(struct MapObject *, struct Sprite *); -u8 sub_805D83C(struct MapObject *, struct Sprite *); -u8 sub_805D86C(struct MapObject *, struct Sprite *); -u8 sub_805D8F8(struct MapObject *, struct Sprite *); -u8 sub_805D90C(struct MapObject *, struct Sprite *); -u8 sub_805D938(struct MapObject *, struct Sprite *); -u8 sub_805D97C(struct MapObject *, struct Sprite *); -u8 sub_805D9AC(struct MapObject *, struct Sprite *); -u8 sub_805DA38(struct MapObject *, struct Sprite *); -u8 sub_805DA4C(struct MapObject *, struct Sprite *); -u8 sub_805DA78(struct MapObject *, struct Sprite *); -u8 sub_805DABC(struct MapObject *, struct Sprite *); -u8 sub_805DAEC(struct MapObject *, struct Sprite *); -u8 sub_805DB78(struct MapObject *, struct Sprite *); -u8 sub_805DB8C(struct MapObject *, struct Sprite *); -u8 sub_805DBB8(struct MapObject *, struct Sprite *); -u8 sub_805DBFC(struct MapObject *, struct Sprite *); -u8 sub_805DC2C(struct MapObject *, struct Sprite *); -u8 sub_805DCB8(struct MapObject *, struct Sprite *); -u8 sub_805DCCC(struct MapObject *, struct Sprite *); -u8 sub_805DCF8(struct MapObject *, struct Sprite *); -u8 sub_805DD3C(struct MapObject *, struct Sprite *); -u8 sub_805DD6C(struct MapObject *, struct Sprite *); -u8 sub_805DDF8(struct MapObject *, struct Sprite *); -u8 sub_805DE0C(struct MapObject *, struct Sprite *); -u8 sub_805DE38(struct MapObject *, struct Sprite *); -u8 sub_805DE7C(struct MapObject *, struct Sprite *); -u8 sub_805DEAC(struct MapObject *, struct Sprite *); -u8 sub_805DF38(struct MapObject *, struct Sprite *); -u8 sub_805DF4C(struct MapObject *, struct Sprite *); -u8 sub_805DF78(struct MapObject *, struct Sprite *); -u8 sub_805DFBC(struct MapObject *, struct Sprite *); -u8 sub_805DFEC(struct MapObject *, struct Sprite *); -u8 sub_805E078(struct MapObject *, struct Sprite *); -u8 sub_805E08C(struct MapObject *, struct Sprite *); -u8 sub_805E0B8(struct MapObject *, struct Sprite *); -u8 sub_805E0FC(struct MapObject *, struct Sprite *); -u8 sub_805E12C(struct MapObject *, struct Sprite *); -u8 sub_805E1B8(struct MapObject *, struct Sprite *); -u8 sub_805E1E4(struct MapObject *, struct Sprite *); -u8 sub_805E208(struct MapObject *, struct Sprite *); -u8 sub_805E234(struct MapObject *, struct Sprite *); -u8 sub_805E2BC(struct MapObject *, struct Sprite *); -u8 sub_805E2E8(struct MapObject *, struct Sprite *); -u8 sub_805E30C(struct MapObject *, struct Sprite *); -u8 sub_805E338(struct MapObject *, struct Sprite *); -u8 sub_805E3C0(struct MapObject *, struct Sprite *); -u8 sub_805E3D4(struct MapObject *, struct Sprite *); -u8 sub_805E40C(struct MapObject *, struct Sprite *); -u8 sub_805E4C4(struct MapObject *, struct Sprite *); -u8 sub_805E4EC(struct MapObject *, struct Sprite *); -u8 sub_805E620(struct MapObject *, struct Sprite *); -u8 sub_805E5B4(struct MapObject *, struct Sprite *); -u8 sub_805E4EC(struct MapObject *, struct Sprite *); -u8 sub_805E6AC(struct MapObject *, struct Sprite *); -u8 sub_805E5B4(struct MapObject *, struct Sprite *); -u8 sub_805E4EC(struct MapObject *, struct Sprite *); -u8 sub_805E738(struct MapObject *, struct Sprite *); -u8 sub_805E5B4(struct MapObject *, struct Sprite *); -u8 sub_805E4EC(struct MapObject *, struct Sprite *); -u8 sub_805E7C4(struct MapObject *, struct Sprite *); -u8 sub_805E5B4(struct MapObject *, struct Sprite *); -u8 sub_805E4EC(struct MapObject *, struct Sprite *); -u8 sub_805E850(struct MapObject *, struct Sprite *); -u8 sub_805E5B4(struct MapObject *, struct Sprite *); -u8 sub_805E4EC(struct MapObject *, struct Sprite *); -u8 sub_805E8DC(struct MapObject *, struct Sprite *); -u8 sub_805E5B4(struct MapObject *, struct Sprite *); -u8 sub_805E4EC(struct MapObject *, struct Sprite *); -u8 sub_805E968(struct MapObject *, struct Sprite *); -u8 sub_805E5B4(struct MapObject *, struct Sprite *); -u8 sub_805E4EC(struct MapObject *, struct Sprite *); -u8 sub_805E9F4(struct MapObject *, struct Sprite *); -u8 sub_805E5B4(struct MapObject *, struct Sprite *); -u8 sub_805E4EC(struct MapObject *, struct Sprite *); -u8 sub_805EA80(struct MapObject *, struct Sprite *); -u8 sub_805E5B4(struct MapObject *, struct Sprite *); -u8 sub_805E4EC(struct MapObject *, struct Sprite *); -u8 sub_805EB0C(struct MapObject *, struct Sprite *); -u8 sub_805E5B4(struct MapObject *, struct Sprite *); -u8 sub_805E4EC(struct MapObject *, struct Sprite *); -u8 sub_805EB98(struct MapObject *, struct Sprite *); -u8 sub_805E5B4(struct MapObject *, struct Sprite *); -u8 sub_805E4EC(struct MapObject *, struct Sprite *); -u8 sub_805EC24(struct MapObject *, struct Sprite *); -u8 sub_805E5B4(struct MapObject *, struct Sprite *); -u8 sub_805E4EC(struct MapObject *, struct Sprite *); -u8 sub_805ECB0(struct MapObject *, struct Sprite *); -u8 sub_805E5B4(struct MapObject *, struct Sprite *); -u8 sub_805E4EC(struct MapObject *, struct Sprite *); -u8 sub_805ED3C(struct MapObject *, struct Sprite *); -u8 sub_805E5B4(struct MapObject *, struct Sprite *); -u8 sub_805E4EC(struct MapObject *, struct Sprite *); -u8 sub_805EDC8(struct MapObject *, struct Sprite *); -u8 sub_805E5B4(struct MapObject *, struct Sprite *); -u8 sub_805E4EC(struct MapObject *, struct Sprite *); -u8 sub_805EE54(struct MapObject *, struct Sprite *); -u8 sub_805E5B4(struct MapObject *, struct Sprite *); -u8 sub_805E4EC(struct MapObject *, struct Sprite *); -u8 sub_805EEE0(struct MapObject *, struct Sprite *); -u8 sub_805E5B4(struct MapObject *, struct Sprite *); -u8 sub_805E4EC(struct MapObject *, struct Sprite *); -u8 sub_805EF6C(struct MapObject *, struct Sprite *); -u8 sub_805E5B4(struct MapObject *, struct Sprite *); -u8 sub_805E4EC(struct MapObject *, struct Sprite *); -u8 sub_805EFF8(struct MapObject *, struct Sprite *); -u8 sub_805E5B4(struct MapObject *, struct Sprite *); -u8 sub_805E4EC(struct MapObject *, struct Sprite *); -u8 sub_805F084(struct MapObject *, struct Sprite *); -u8 sub_805E5B4(struct MapObject *, struct Sprite *); -u8 sub_805E4EC(struct MapObject *, struct Sprite *); -u8 sub_805F110(struct MapObject *, struct Sprite *); -u8 sub_805E5B4(struct MapObject *, struct Sprite *); -u8 sub_805E4EC(struct MapObject *, struct Sprite *); -u8 sub_805F19C(struct MapObject *, struct Sprite *); -u8 sub_805E5B4(struct MapObject *, struct Sprite *); -u8 sub_805E4EC(struct MapObject *, struct Sprite *); -u8 sub_805F228(struct MapObject *, struct Sprite *); -u8 sub_805E5B4(struct MapObject *, struct Sprite *); -u8 sub_805E4EC(struct MapObject *, struct Sprite *); -u8 sub_805F2B4(struct MapObject *, struct Sprite *); -u8 sub_805E5B4(struct MapObject *, struct Sprite *); -u8 mss_npc_reset_oampriv3_1_unk2_unk3(struct MapObject *, struct Sprite *); -u8 sub_805F364(struct MapObject *, struct Sprite *); -u8 sub_805F3C4(struct MapObject *, struct Sprite *); -u8 mss_npc_reset_oampriv3_1_unk2_unk3(struct MapObject *, struct Sprite *); -u8 mss_08062EA4(struct MapObject *, struct Sprite *); -u8 sub_805F3C4(struct MapObject *, struct Sprite *); -u8 sub_805FAF8(struct MapObject *, struct Sprite *); -u8 sub_805FB64(struct MapObject *, struct Sprite *); -u8 sub_805FB04(struct MapObject *, struct Sprite *); -u8 sub_805FBD4(struct MapObject *, struct Sprite *); -u8 sub_805FB04(struct MapObject *, struct Sprite *); -u8 sub_805FC44(struct MapObject *, struct Sprite *); -u8 sub_805FB04(struct MapObject *, struct Sprite *); -u8 sub_805FCB4(struct MapObject *, struct Sprite *); -u8 sub_805FCE8(struct MapObject *, struct Sprite *); -u8 sub_805FD08(struct MapObject *, struct Sprite *); - -u8 get_go_image_anim_num(u8); -u8 get_go_fast_image_anim_num(u8); -u8 get_go_fast_image_anim_num(u8); -u8 get_go_faster_image_anim_num(u8); -u8 sub_805FD78(u8); - -u32 state_to_direction(u8, u32, u32); - -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, const struct SubspriteTable **subspriteTables); -u8 AddPseudoFieldObject(u16 graphicsId, void (*callback)(struct Sprite *), s16 x, s16 y, 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 *, void *, void *, void *); -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, u32); -u8 sub_8060024(struct MapObject *, s16, s16, u8); -bool8 IsBerryTreeSparkling(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, u32 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(u32); -u8 GetSimpleGoAnimId(u32); -u8 GetGoSpeed0AnimId(u32); -u8 sub_8060744(u32); -u8 d2s_08064034(u32); -u8 sub_806079C(u32); -u8 sub_80607C8(u32); -u8 sub_80607F4(u32); -u8 GetJumpLedgeAnimId(u32); -u8 sub_806084C(u32); -u8 sub_8060878(u32); -u8 sub_80608A4(u32); -u8 sub_80608D0(u32); -u8 GetStepInPlaceDelay32AnimId(u32); -u8 GetStepInPlaceDelay16AnimId(u32); -u8 GetStepInPlaceDelay8AnimId(u32); -u8 GetStepInPlaceDelay4AnimId(u32); -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 *); -u8 SpawnSpecialFieldObjectParametrized(u8, u8, u8, s16, s16, u8); -void CameraObjectSetFollowedObjectId(u8); -u8 sub_805ADDC(u8); -void sub_8060320(u32, s16 *, s16 *, s16, s16); -u8 obj_unfreeze(struct Sprite *, s16, s16, u8); -u16 npc_paltag_by_palslot(u8); -void sub_8060470(s16 *, s16 *, s16, s16); -bool8 FreezeMapObject(struct MapObject *); -void FreezeMapObjects(void); -void FreezeMapObjectsExceptOne(u8); -void UnfreezeMapObjects(void); -void sub_806487C(struct Sprite *sprite, bool8 invisible); -void sub_8064990(u8, u8); -void UnfreezeMapObject(struct MapObject *mapObject); -void oamt_npc_ministep_reset(struct Sprite *sprite, u8 a2, u8 a3); -void sub_806467C(struct Sprite *sprite, u8 direction); -bool8 sub_806468C(struct Sprite *sprite); -void sub_80646E4(struct Sprite *sprite, u8 a2, u8 a3, u8 a4); -void DoShadowFieldEffect(struct MapObject *mapObject); -u8 sub_8064704(struct Sprite *); -u8 sub_806478C(struct Sprite *); -void obj_anim_image_set_and_seek(struct Sprite *sprite, u8 a2, u8 a3); -void DoRippleFieldEffect(struct MapObject *mapObj, struct Sprite *sprite); -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 // GUARD_EVOBJMV_H diff --git a/include/fieldmap.h b/include/fieldmap.h index 1003b026f..5aa9eb360 100644 --- a/include/fieldmap.h +++ b/include/fieldmap.h @@ -1,6 +1,6 @@ #ifndef GUARD_FIELDMAP2_H #define GUARD_FIELDMAP2_H -#include "evobjmv.h" +#include "event_object_movement.h" extern struct BackupMapData gUnknown_03004870; struct MapHeader *mapconnection_get_mapheader(struct MapConnection *connection); -- cgit v1.2.3 From 605c4b66f0d53198413a3ebe69171eefa193f3b0 Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Sun, 18 Feb 2018 16:14:49 -0600 Subject: decompile more debug code --- include/link.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/link.h b/include/link.h index f9f2b6d0e..01f086fe8 100644 --- a/include/link.h +++ b/include/link.h @@ -199,7 +199,7 @@ void LinkVSync(void); void Timer3Intr(void); void SerialCB(void); void LinkTestScreen(void); -void debug_sub_8008218(u16 *buffer, void *arg1, u16 (*arg2)[], u32 arg3); +void debug_sub_8008218(u16 *buffer, void *arg1, u16 *arg2, u32 arg3); void debug_sub_8008264(u32 value, int left, int top, int r3, int sp0); u32 sub_8007E40(void); void PrintHex(u32, u8, u8, u8); -- cgit v1.2.3 From 5388d28bf33b38bb8dbb825564491feaa89c1787 Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Sun, 18 Feb 2018 17:37:29 -0600 Subject: decompile more debug code --- include/link.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/link.h b/include/link.h index 01f086fe8..ca6c368ff 100644 --- a/include/link.h +++ b/include/link.h @@ -199,7 +199,7 @@ void LinkVSync(void); void Timer3Intr(void); void SerialCB(void); void LinkTestScreen(void); -void debug_sub_8008218(u16 *buffer, void *arg1, u16 *arg2, u32 arg3); +void debug_sub_8008218(u16 *buffer, u32 arg1, u16 *arg2, u32 arg3); void debug_sub_8008264(u32 value, int left, int top, int r3, int sp0); u32 sub_8007E40(void); void PrintHex(u32, u8, u8, u8); -- cgit v1.2.3 From 5d60aa677f5a3af8ce132673447a9dd535c7ef93 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Fri, 2 Mar 2018 18:49:29 -0800 Subject: Remove items from other games --- include/constants/items.h | 32 -------------------------------- 1 file changed, 32 deletions(-) (limited to 'include') diff --git a/include/constants/items.h b/include/constants/items.h index 6f54e6ee4..a52c72599 100644 --- a/include/constants/items.h +++ b/include/constants/items.h @@ -363,38 +363,6 @@ #define ITEM_15B 347 #define ITEM_15C 348 -// FireRed/LeafGreen -#define ITEM_OAKS_PARCEL 349 -#define ITEM_POKE_FLUTE 350 -#define ITEM_SECRET_KEY 351 -#define ITEM_BIKE_VOUCHER 352 -#define ITEM_GOLD_TEETH 353 -#define ITEM_OLD_AMBER 354 -#define ITEM_CARD_KEY 355 -#define ITEM_LIFT_KEY 356 -#define ITEM_HELIX_FOSSIL 357 -#define ITEM_DOME_FOSSIL 358 -#define ITEM_SILPH_SCOPE 359 -#define ITEM_BICYCLE 360 -#define ITEM_TOWN_MAP 361 -#define ITEM_VS_SEEKER 362 -#define ITEM_FAME_CHECKER 363 -#define ITEM_TM_CASE 364 -#define ITEM_BERRY_POUCH 365 -#define ITEM_TEACHY_TV 366 -#define ITEM_TRI_PASS 367 -#define ITEM_RAINBOW_PASS 368 -#define ITEM_TEA 369 -#define ITEM_MYSTIC_TICKET 370 -#define ITEM_AURORA_TICKET 371 -#define ITEM_POWDER_JAR 372 -#define ITEM_RUBY 373 -#define ITEM_SAPPHIRE 374 - -// Emerald -#define ITEM_MAGMA_EMBLEM 375 -#define ITEM_OLD_SEA_MAP 376 - #define NUM_TECHNICAL_MACHINES 50 #define NUM_HIDDEN_MACHINES 8 -- cgit v1.2.3 From 570d547ee7d3a57da026d2fac007036beaf80233 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Thu, 15 Mar 2018 08:12:14 -0700 Subject: Document PIN_MISSILE and ICICLE_SPEAR anims --- include/rom_8077ABC.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/rom_8077ABC.h b/include/rom_8077ABC.h index ed42871a6..5e48cc3d2 100644 --- a/include/rom_8077ABC.h +++ b/include/rom_8077ABC.h @@ -68,7 +68,7 @@ void InitAnimSpritePos(struct Sprite *sprite, u8); void sub_8078764(struct Sprite *sprite, u8); void StartTranslateAnimSpriteByDeltas(struct Sprite *sprite); void sub_8078D60(struct Sprite *sprite); -void sub_80786EC(struct Sprite *sprite); +void InitAnimSpriteTranslationOverDuration(struct Sprite *sprite); void sub_80782D8(struct Sprite *sprite); void sub_8078CC0(struct Sprite *sprite); void sub_8078600(struct Sprite *sprite); @@ -85,7 +85,7 @@ void sub_80793C4(struct Sprite *sprite); void SetAverageBattlerPositions(u8 slot, u8 a2, s16 *a3, s16 *a4); u8 sub_8079ED4(u8 slot); s16 sub_807A100(u8 slot, u8 a2); -u16 sub_80790F0(s16 a, s16 b); +u16 ArcTan2Neg(s16 a, s16 b); void sub_8078FDC(struct Sprite *sprite, bool8 a2, s16 xScale, s16 yScale, u16 rotation); void sub_807867C(struct Sprite *sprite, s16 a2); u8 sub_8077EE4(u8 slot, u8 a2); -- cgit v1.2.3 From 3c9552befdbd295b94a06fca31a4c03c667465b3 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Sat, 17 Mar 2018 11:44:32 -0700 Subject: More battle anim documentation --- include/rom_8077ABC.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'include') diff --git a/include/rom_8077ABC.h b/include/rom_8077ABC.h index 5e48cc3d2..1910b7cb2 100644 --- a/include/rom_8077ABC.h +++ b/include/rom_8077ABC.h @@ -12,10 +12,10 @@ struct Struct_sub_8078914 { u8 GetBankPosition(u8, u8); u8 sub_8077E44(u8 slot, u16 species, u8 a3); -u8 GetAnimBankSpriteId(u8 side); +u8 GetAnimBankSpriteId(u8 bank); void StoreSpriteCallbackInData(struct Sprite *sprite, void(*callback)(struct Sprite *)); void sub_8078314(struct Sprite *sprite); -void sub_8078364(struct Sprite *sprite); +void TranslateSpriteOverDuration(struct Sprite *sprite); void TranslateMonBGUntil(struct Sprite *sprite); void TranslateMonBGSubPixelUntil(struct Sprite *sprite); u8 GetBankSide(u8); @@ -47,8 +47,8 @@ void sub_8078F9C(u8 sprite); void sub_8079518(struct Sprite *sprite); void sub_8079534(struct Sprite *sprite); void sub_80796F8(u8 task); -void sub_80797EC(struct Task *task); -void sub_8079814(u8 taskId); +void AnimTask_BlendMonInAndOutSetup(struct Task *task); +void AnimTask_BlendMonInAndOutStep(u8 taskId); void sub_8079A64(u8 sprite); u16 sub_8079B10(u8 sprite); void sub_8079BF4(s16 *bottom, s16 *top, const void *ptr); @@ -69,7 +69,7 @@ void sub_8078764(struct Sprite *sprite, u8); void StartTranslateAnimSpriteByDeltas(struct Sprite *sprite); void sub_8078D60(struct Sprite *sprite); void InitAnimSpriteTranslationOverDuration(struct Sprite *sprite); -void sub_80782D8(struct Sprite *sprite); +void WaitAnimForDuration(struct Sprite *sprite); void sub_8078CC0(struct Sprite *sprite); void sub_8078600(struct Sprite *sprite); void sub_8078504(struct Sprite *sprite); -- cgit v1.2.3 From 583724758e97fafc8e6796f13d2c46660d6f4388 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Mon, 19 Mar 2018 21:18:06 -0700 Subject: Label and use constants for weather cycle logic --- include/global.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/global.h b/include/global.h index ec82d5d1d..faa4ace68 100644 --- a/include/global.h +++ b/include/global.h @@ -632,7 +632,7 @@ struct SaveBlock1 /* 0x02025734 */ /*0x24*/ struct WarpData warp4; /*0x2C*/ u16 savedMusic; /*0x2E*/ u8 weather; - /*0x2F*/ u8 filler_2F; + /*0x2F*/ u8 weatherCycleStage; /*0x30*/ u8 flashLevel; // flash level on current map, 0 being normal and 4 being the darkest /*0x32*/ u16 mapDataId; /*0x34*/ u16 mapView[0x100]; -- cgit v1.2.3