summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2018-01-08 13:53:24 -0700
committerPikalaxALT <pikalaxalt@gmail.com>2018-01-08 13:53:24 -0700
commit673d64c35b21ebb8f3c6fc8b547c7f736fa4f593 (patch)
treecdff50ac33b5b5058b4faaf312961d39ba1c3495
parent56c2c7ef00396c53a8bc859141b46fa488bb42fa (diff)
through sub_8097390
-rw-r--r--asm/pokemon_storage_system.s225
-rw-r--r--src/pokemon/pokemon_storage_system.c114
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) {