diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2018-01-07 19:20:15 -0500 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2018-01-07 19:20:15 -0500 |
commit | b9ad9b3ad547b200e66b293169acbbfe4f50f76d (patch) | |
tree | d7ae8792bfe9c87665933d310cfee2de10713a3f | |
parent | 92fa7570b99d216f75becbd362a124a12cc1dcde (diff) |
through sub_8096874
-rw-r--r-- | asm/pokemon_storage_system.s | 88 | ||||
-rw-r--r-- | include/main.h | 2 | ||||
-rw-r--r-- | include/sprite.h | 1 | ||||
-rw-r--r-- | src/engine/naming_screen.c | 2 | ||||
-rw-r--r-- | src/field/use_pokeblock.c | 1 | ||||
-rw-r--r-- | src/pokemon/pokemon_storage_system.c | 47 | ||||
-rw-r--r-- | src/pokenav_before.c | 5 |
7 files changed, 51 insertions, 95 deletions
diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s index b4addb8e7..da5d00899 100644 --- a/asm/pokemon_storage_system.s +++ b/asm/pokemon_storage_system.s @@ -5,94 +5,6 @@ .text - thumb_func_start sub_80967DC -sub_80967DC: @ 80967DC - ldr r0, _08096800 @ =REG_BG0HOFS - movs r1, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x4 - strh r1, [r0] - subs r0, 0x2 - strh r1, [r0] - adds r0, 0x4 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - bx lr - .align 2, 0 -_08096800: .4byte REG_BG0HOFS - thumb_func_end sub_80967DC - - thumb_func_start sub_8096804 -sub_8096804: @ 8096804 - push {lr} - bl ResetPaletteFade - bl ResetSpriteData - bl FreeSpriteTileRanges - bl FreeAllSpritePalettes - bl ResetTasks - ldr r1, _0809683C @ =gReservedSpriteTileCount - movs r2, 0xA0 - lsls r2, 2 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _08096840 @ =gSharedMem + 0x20 - adds r1, r0, 0 - adds r1, 0x8 - movs r2, 0x8 - bl sub_809CFDC - ldr r1, _08096844 @ =gKeyRepeatStartDelay - movs r0, 0x14 - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0809683C: .4byte gReservedSpriteTileCount -_08096840: .4byte gSharedMem + 0x20 -_08096844: .4byte gKeyRepeatStartDelay - thumb_func_end sub_8096804 - - thumb_func_start sub_8096848 -sub_8096848: @ 8096848 - push {lr} - bl sub_809B0D4 - ldr r2, _08096868 @ =gUnknown_0203847C - movs r1, 0 - ldr r0, _0809686C @ =gSharedMem - ldrb r0, [r0, 0x5] - cmp r0, 0x1 - bne _0809685C - movs r1, 0x1 -_0809685C: - strb r1, [r2] - ldr r1, _08096870 @ =gUnknown_0203847E - movs r0, 0 - strb r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08096868: .4byte gUnknown_0203847C -_0809686C: .4byte gSharedMem -_08096870: .4byte gUnknown_0203847E - thumb_func_end sub_8096848 - - thumb_func_start sub_8096874 -sub_8096874: @ 8096874 - movs r1, 0x80 - lsls r1, 19 - movs r2, 0xFA - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - bx lr - thumb_func_end sub_8096874 - thumb_func_start sub_8096884 sub_8096884: @ 8096884 push {lr} 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; diff --git a/src/engine/naming_screen.c b/src/engine/naming_screen.c index 440504d5a..6f34fd678 100644 --- a/src/engine/naming_screen.c +++ b/src/engine/naming_screen.c @@ -26,8 +26,6 @@ #define COLUMN_COUNT 10 #endif -extern u16 gKeyRepeatStartDelay; - extern u8 CreateMonIcon(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, u32 personality); const u8 gSpriteImage_83CE094[] = INCBIN_U8("graphics/naming_screen/pc_icon/0.4bpp"); diff --git a/src/field/use_pokeblock.c b/src/field/use_pokeblock.c index 7253ac901..354193c14 100644 --- a/src/field/use_pokeblock.c +++ b/src/field/use_pokeblock.c @@ -104,7 +104,6 @@ static EWRAM_DATA struct Pokeblock *gUnknown_0203930C = NULL; EWRAM_DATA u8 gPokeblockMonID = 0; EWRAM_DATA s16 gPokeblockGain = 0; -extern u16 gKeyRepeatStartDelay; extern u16 gSpecialVar_ItemId; // FIXME: remove after merge of #349 Pokeblock static void launch_c3_walk_stairs_and_run_once(void (*const)(void)); diff --git a/src/pokemon/pokemon_storage_system.c b/src/pokemon/pokemon_storage_system.c index 30c0f2b67..9e559354b 100644 --- a/src/pokemon/pokemon_storage_system.c +++ b/src/pokemon/pokemon_storage_system.c @@ -24,9 +24,17 @@ struct PSS_MenuStringPtrs { const u8 *desc; }; +struct UnkStruct_2000020 { + struct UnkStruct_2000020 *unk_00; + u8 unk_04; + u8 unk_05; +}; + struct PokemonStorageSystemData { u8 filler_0000[5]; u8 unk_0005; + u8 filler_0006[26]; + struct UnkStruct_2000020 unk_0020[100]; // refine size later }; struct UnkPSSStruct_2002370 { @@ -53,6 +61,8 @@ void sub_8096784(struct Sprite *sprite); void task_intro_29(u8 whichMenu); void sub_8096884(void); struct Sprite *sub_809A9A0(u16 a0, u16 a1, u8 a2, u8 a3, u8 a4); +void sub_809B0D4(void); +void sub_809CFDC(struct UnkStruct_2000020 *a0, struct UnkStruct_2000020 * a1, u8 a2); const struct PSS_MenuStringPtrs gUnknown_083B600C[] = { {PCText_WithdrawPoke, PCText_MovePokeToParty}, @@ -112,6 +122,7 @@ EWRAM_DATA u8 gUnknown_02038474; EWRAM_DATA struct UnkPSSStruct_2002370 *gUnknown_02038478; EWRAM_DATA u8 gUnknown_0203847C; EWRAM_DATA u8 gUnknown_0203847D; +EWRAM_DATA u8 gUnknown_0203847E; static u8 CountPokemonInBoxN(u8 boxId) { @@ -753,6 +764,42 @@ void task_intro_29(u8 whichMenu) SetMainCallback2(sub_8096884); } +void sub_80967DC(void) +{ + REG_BG0HOFS = 0; + REG_BG0VOFS = 0; + REG_BG1HOFS = 0; + REG_BG1VOFS = 0; + REG_BG2VOFS = 0; + REG_BG2HOFS = 0; + REG_BG3HOFS = 0; + REG_BG3VOFS = 0; +} + +void sub_8096804(void) +{ + ResetPaletteFade(); + ResetSpriteData(); + FreeSpriteTileRanges(); + FreeAllSpritePalettes(); + ResetTasks(); + gReservedSpriteTileCount = 0x280; + sub_809CFDC(ePokemonStorageSystem.unk_0020, ePokemonStorageSystem.unk_0020 + 1, 8); + gKeyRepeatStartDelay = 20; +} + +void sub_8096848(void) +{ + sub_809B0D4(); + gUnknown_0203847C = (ePokemonStorageSystem.unk_0005 == 1 ? 1 : 0); + gUnknown_0203847E = 0; +} + +void sub_8096874(void) +{ + REG_DISPCNT = DISPCNT_OBJ_1D_MAP | DISPCNT_BG_ALL_ON | DISPCNT_OBJ_ON; +} + asm(".section .text.8098898"); void sub_8098898(u8 index) { diff --git a/src/pokenav_before.c b/src/pokenav_before.c index 7693cba7d..53f17b211 100644 --- a/src/pokenav_before.c +++ b/src/pokenav_before.c @@ -294,9 +294,6 @@ extern void sub_80F5BF0(); extern void sub_80F6F64(); extern void sub_80F19FC(); -extern u16 gKeyRepeatStartDelay; - - void sub_80EBA5C() { switch (gMain.state) { default: @@ -378,7 +375,7 @@ void sub_80EBC10() { u16 i; u16 *var1; - gKeyRepeatStartDelay = 0x14; + gKeyRepeatStartDelay = 20; ewram0_10.playerPartyCount = CalculatePlayerPartyCount(); ewram0_10.var6ddc = 0; ewram0_10.var9344 = 0; |