diff options
-rw-r--r-- | asm/pokemon_storage_system.s | 225 | ||||
-rw-r--r-- | src/pokemon/pokemon_storage_system.c | 114 |
2 files changed, 114 insertions, 225 deletions
diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s index 46d6b8502..245a69131 100644 --- a/asm/pokemon_storage_system.s +++ b/asm/pokemon_storage_system.s @@ -5,231 +5,6 @@ .text - thumb_func_start sub_80972A8 -sub_80972A8: @ 80972A8 - push {r4,lr} - ldr r4, _080972B8 @ =gSharedMem - ldrb r0, [r4, 0x4] - cmp r0, 0 - beq _080972BC - cmp r0, 0x1 - beq _080972CA - b _080972F2 - .align 2, 0 -_080972B8: .4byte gSharedMem -_080972BC: - movs r0, 0 - bl sub_809B100 - ldrb r0, [r4, 0x4] - adds r0, 0x1 - strb r0, [r4, 0x4] - b _080972F2 -_080972CA: - bl sub_809B130 - lsls r0, 24 - cmp r0, 0 - bne _080972F2 - ldr r0, _080972E4 @ =gUnknown_0203847C - ldrb r0, [r0] - cmp r0, 0 - beq _080972EC - ldr r0, _080972E8 @ =sub_8097858 - bl SetPSSCallback - b _080972F2 - .align 2, 0 -_080972E4: .4byte gUnknown_0203847C -_080972E8: .4byte sub_8097858 -_080972EC: - ldr r0, _080972F8 @ =sub_8096C84 - bl SetPSSCallback -_080972F2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080972F8: .4byte sub_8096C84 - thumb_func_end sub_80972A8 - - thumb_func_start sub_80972FC -sub_80972FC: @ 80972FC - push {r4,lr} - ldr r4, _0809730C @ =gSharedMem - ldrb r0, [r4, 0x4] - cmp r0, 0 - beq _08097310 - cmp r0, 0x1 - beq _0809731E - b _08097346 - .align 2, 0 -_0809730C: .4byte gSharedMem -_08097310: - movs r0, 0x1 - bl sub_809B100 - ldrb r0, [r4, 0x4] - adds r0, 0x1 - strb r0, [r4, 0x4] - b _08097346 -_0809731E: - bl sub_809B130 - lsls r0, 24 - cmp r0, 0 - bne _08097346 - ldr r0, _08097338 @ =gUnknown_0203847C - ldrb r0, [r0] - cmp r0, 0 - beq _08097340 - ldr r0, _0809733C @ =sub_8097858 - bl SetPSSCallback - b _08097346 - .align 2, 0 -_08097338: .4byte gUnknown_0203847C -_0809733C: .4byte sub_8097858 -_08097340: - ldr r0, _0809734C @ =sub_8096C84 - bl SetPSSCallback -_08097346: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0809734C: .4byte sub_8096C84 - thumb_func_end sub_80972FC - - thumb_func_start c3_0808DC50 -c3_0808DC50: @ 8097350 - push {r4,lr} - ldr r4, _08097360 @ =gSharedMem - ldrb r0, [r4, 0x4] - cmp r0, 0 - beq _08097364 - cmp r0, 0x1 - beq _08097372 - b _08097386 - .align 2, 0 -_08097360: .4byte gSharedMem -_08097364: - movs r0, 0x2 - bl sub_809B100 - ldrb r0, [r4, 0x4] - adds r0, 0x1 - strb r0, [r4, 0x4] - b _08097386 -_08097372: - bl sub_809B130 - lsls r0, 24 - cmp r0, 0 - bne _08097386 - bl BoxSetMosaic - ldr r0, _0809738C @ =sub_8096C84 - bl SetPSSCallback -_08097386: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0809738C: .4byte sub_8096C84 - thumb_func_end c3_0808DC50 - - thumb_func_start sub_8097390 -sub_8097390: @ 8097390 - push {lr} - ldr r0, _080973A4 @ =gSharedMem - ldrb r0, [r0, 0x4] - cmp r0, 0x5 - bhi _08097462 - lsls r0, 2 - ldr r1, _080973A8 @ =_080973AC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080973A4: .4byte gSharedMem -_080973A8: .4byte _080973AC - .align 2, 0 -_080973AC: - .4byte _080973C4 - .4byte _080973FC - .4byte _0809741C - .4byte _0809742C - .4byte _0809743E - .4byte _0809745C -_080973C4: - bl CalculatePlayerPartyCount - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x6 - bne _080973E4 - movs r0, 0xE - bl sub_8098898 - ldr r1, _080973E0 @ =gSharedMem - movs r0, 0x1 - strb r0, [r1, 0x4] - b _08097462 - .align 2, 0 -_080973E0: .4byte gSharedMem -_080973E4: - bl sub_809B0E0 - movs r0, 0 - bl sub_809B100 - ldr r1, _080973F8 @ =gSharedMem - movs r0, 0x2 - strb r0, [r1, 0x4] - b _08097462 - .align 2, 0 -_080973F8: .4byte gSharedMem -_080973FC: - ldr r0, _08097414 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0xF3 - ands r0, r1 - cmp r0, 0 - beq _08097462 - bl sub_8098A5C - ldr r0, _08097418 @ =sub_8096C84 - bl SetPSSCallback - b _08097462 - .align 2, 0 -_08097414: .4byte gMain -_08097418: .4byte sub_8096C84 -_0809741C: - bl sub_809B130 - lsls r0, 24 - cmp r0, 0 - bne _08097462 - bl sub_809880C - b _0809744C -_0809742C: - bl sub_8098830 - lsls r0, 24 - cmp r0, 0 - bne _08097462 - movs r0, 0x1 - bl sub_809B100 - b _0809744C -_0809743E: - bl sub_809B130 - lsls r0, 24 - cmp r0, 0 - bne _08097462 - bl sub_80987DC -_0809744C: - ldr r1, _08097458 @ =gSharedMem - ldrb r0, [r1, 0x4] - adds r0, 0x1 - strb r0, [r1, 0x4] - b _08097462 - .align 2, 0 -_08097458: .4byte gSharedMem -_0809745C: - ldr r0, _08097468 @ =sub_8097004 - bl SetPSSCallback -_08097462: - pop {r0} - bx r0 - .align 2, 0 -_08097468: .4byte sub_8097004 - thumb_func_end sub_8097390 - thumb_func_start sub_809746C sub_809746C: @ 809746C push {r4,lr} diff --git a/src/pokemon/pokemon_storage_system.c b/src/pokemon/pokemon_storage_system.c index feed68e50..6f51b823e 100644 --- a/src/pokemon/pokemon_storage_system.c +++ b/src/pokemon/pokemon_storage_system.c @@ -103,6 +103,7 @@ void sub_809746C(void); void sub_8097594(void); void sub_8097788(void); void sub_80977E4(void); +void sub_8097858(void); void sub_809789C(void); void sub_8097BA0(void); void sub_8097CC0(void); @@ -116,10 +117,13 @@ bool8 sub_80985CC(void); void sub_80986E8(void); void sub_8098710(void); void sub_8098734(void); +void sub_80987DC(void); void sub_809880C(void); bool8 sub_8098830(void); void sub_8098898(u8 index); void sub_8098A5C(void); +void sub_809B100(u8 a0); +bool8 sub_809B130(void); void sub_8098B48(void); void sub_8099BF8(u8 a0); void sub_8099C70(u8 whichBox); @@ -130,6 +134,7 @@ 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_809B440(void); void sub_809BBC0(void); @@ -1418,6 +1423,115 @@ void sub_8097078(void) } } +void sub_80972A8(void) +{ + switch (ePokemonStorageSystem.unk_0004) + { + case 0: + sub_809B100(0); + ePokemonStorageSystem.unk_0004++; + break; + case 1: + if (!sub_809B130()) + { + if (gUnknown_0203847C) + SetPSSCallback(sub_8097858); + else + SetPSSCallback(sub_8096C84); + } + break; + } +} + +void sub_80972FC(void) +{ + switch (ePokemonStorageSystem.unk_0004) + { + case 0: + sub_809B100(1); + ePokemonStorageSystem.unk_0004++; + break; + case 1: + if (!sub_809B130()) + { + if (gUnknown_0203847C) + SetPSSCallback(sub_8097858); + else + SetPSSCallback(sub_8096C84); + } + break; + } +} + +void c3_0808DC50(void) +{ + switch (ePokemonStorageSystem.unk_0004) + { + case 0: + sub_809B100(2); + ePokemonStorageSystem.unk_0004++; + break; + case 1: + if (!sub_809B130()) + { + BoxSetMosaic(); + SetPSSCallback(sub_8096C84); + } + break; + } +} + +void sub_8097390(void) +{ + switch (ePokemonStorageSystem.unk_0004) + { + case 0: + if (CalculatePlayerPartyCount() == 6) + { + sub_8098898(14); + ePokemonStorageSystem.unk_0004 = 1; + } + else + { + sub_809B0E0(); + sub_809B100(0); + ePokemonStorageSystem.unk_0004 = 2; + } + break; + case 1: + if (gMain.newKeys & (A_BUTTON | B_BUTTON | DPAD_ANY)) + { + sub_8098A5C(); + SetPSSCallback(sub_8096C84); + } + break; + case 2: + if (!sub_809B130()) + { + sub_809880C(); + ePokemonStorageSystem.unk_0004++; + } + break; + case 3: + if (!sub_8098830()) + { + sub_809B100(1); + ePokemonStorageSystem.unk_0004++; + } + break; + case 4: + if (!sub_809B130()) + { + sub_80987DC(); + ePokemonStorageSystem.unk_0004++; + } + break; + case 5: + SetPSSCallback(sub_8097004); + break; + } +} + asm(".section .text.8098898"); void sub_8098898(u8 index) { |