summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2018-01-08 15:22:37 -0700
committerPikalaxALT <pikalaxalt@gmail.com>2018-01-08 15:22:37 -0700
commit882bf5c3cf945927b3049eb8675bf1964d8706e8 (patch)
tree2c2f11553160282f7dda666af0037c73ae4c193f
parent78df16e7989be5142ed0d1fd01c4ece6483f0571 (diff)
sub_8097594
-rw-r--r--asm/pokemon_storage_system.s232
-rw-r--r--src/pokemon/pokemon_storage_system.c144
2 files changed, 142 insertions, 234 deletions
diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s
index 2622e7d84..8d31aedb4 100644
--- a/asm/pokemon_storage_system.s
+++ b/asm/pokemon_storage_system.s
@@ -5,238 +5,6 @@
.text
- thumb_func_start sub_8097594
-sub_8097594: @ 8097594
- push {r4,lr}
- ldr r0, _080975AC @ =gSharedMem
- ldrb r0, [r0, 0x4]
- cmp r0, 0xD
- bls _080975A0
- b _0809777A
-_080975A0:
- lsls r0, 2
- ldr r1, _080975B0 @ =_080975B4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080975AC: .4byte gSharedMem
-_080975B0: .4byte _080975B4
- .align 2, 0
-_080975B4:
- .4byte _080975EC
- .4byte _08097600
- .4byte _0809763A
- .4byte _0809766E
- .4byte _0809767A
- .4byte _08097690
- .4byte _080976C8
- .4byte _080976E0
- .4byte _080976EC
- .4byte _080976F0
- .4byte _08097704
- .4byte _08097720
- .4byte _08097732
- .4byte _08097764
-_080975EC:
- movs r0, 0x9
- bl PrintStorageActionText
- movs r0, 0x1
- bl sub_8098A38
- ldr r1, _0809761C @ =gSharedMem
- ldrb r0, [r1, 0x4]
- adds r0, 0x1
- strb r0, [r1, 0x4]
-_08097600:
- bl ProcessMenuInputNoWrap
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _0809762C
- cmp r1, 0
- bgt _08097620
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08097626
- b _0809777A
- .align 2, 0
-_0809761C: .4byte gSharedMem
-_08097620:
- cmp r1, 0x1
- beq _08097626
- b _0809777A
-_08097626:
- bl sub_8098A5C
- b _080976E0
-_0809762C:
- bl sub_8098A5C
- bl sub_809B7D4
- bl sub_809B6DC
- b _08097744
-_0809763A:
- bl sub_809B960
- bl sub_809B734
- lsls r0, 24
- cmp r0, 0
- beq _0809764A
- b _0809777A
-_0809764A:
- ldr r4, _08097650 @ =gSharedMem
- b _0809765A
- .align 2, 0
-_08097650: .4byte gSharedMem
-_08097654:
- cmp r0, 0
- bne _0809765A
- b _08097758
-_0809765A:
- bl sub_809B960
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x1
- bne _08097654
- ldrb r0, [r4, 0x4]
- adds r0, 0x1
- strb r0, [r4, 0x4]
- b _0809777A
-_0809766E:
- bl sub_809B760
- bl sub_809801C
- movs r0, 0xA
- b _08097740
-_0809767A:
- ldr r0, _0809768C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _08097688
- b _0809777A
-_08097688:
- movs r0, 0xB
- b _08097740
- .align 2, 0
-_0809768C: .4byte gMain
-_08097690:
- ldr r0, _080976B4 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _0809777A
- bl sub_8098A5C
- ldr r0, _080976B8 @ =gUnknown_0203847C
- ldrb r0, [r0]
- cmp r0, 0
- beq _080976BC
- bl party_compaction
- bl sub_8099310
- b _08097744
- .align 2, 0
-_080976B4: .4byte gMain
-_080976B8: .4byte gUnknown_0203847C
-_080976BC:
- ldr r1, _080976C4 @ =gSharedMem
- movs r0, 0x7
- strb r0, [r1, 0x4]
- b _0809777A
- .align 2, 0
-_080976C4: .4byte gSharedMem
-_080976C8:
- bl sub_8099374
- lsls r0, 24
- cmp r0, 0
- bne _0809777A
- bl sub_809B440
- bl BoxSetMosaic
- bl sub_80987DC
- b _08097744
-_080976E0:
- ldr r0, _080976E8 @ =sub_8096C84
- bl SetPSSCallback
- b _0809777A
- .align 2, 0
-_080976E8: .4byte sub_8096C84
-_080976EC:
- movs r0, 0xA
- b _08097740
-_080976F0:
- ldr r0, _08097700 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _0809777A
- movs r0, 0x15
- b _08097740
- .align 2, 0
-_08097700: .4byte gMain
-_08097704:
- ldr r0, _0809771C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _0809777A
- bl sub_8098A5C
- bl sub_8099958
- b _08097744
- .align 2, 0
-_0809771C: .4byte gMain
-_08097720:
- bl sub_8099990
- lsls r0, 24
- cmp r0, 0
- bne _0809777A
- bl sub_809B7AC
- movs r0, 0x13
- b _08097740
-_08097732:
- ldr r0, _08097750 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _0809777A
- movs r0, 0x14
-_08097740:
- bl PrintStorageActionText
-_08097744:
- ldr r1, _08097754 @ =gSharedMem
- ldrb r0, [r1, 0x4]
- adds r0, 0x1
- strb r0, [r1, 0x4]
- b _0809777A
- .align 2, 0
-_08097750: .4byte gMain
-_08097754: .4byte gSharedMem
-_08097758:
- ldr r1, _08097760 @ =gSharedMem
- movs r0, 0x8
- strb r0, [r1, 0x4]
- b _0809777A
- .align 2, 0
-_08097760: .4byte gSharedMem
-_08097764:
- ldr r0, _08097780 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _0809777A
- bl sub_8098A5C
- ldr r0, _08097784 @ =sub_8096C84
- bl SetPSSCallback
-_0809777A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08097780: .4byte gMain
-_08097784: .4byte sub_8096C84
- thumb_func_end sub_8097594
-
thumb_func_start sub_8097788
sub_8097788: @ 8097788
push {r4,r5,lr}
diff --git a/src/pokemon/pokemon_storage_system.c b/src/pokemon/pokemon_storage_system.c
index 916dc411a..9e18dadb5 100644
--- a/src/pokemon/pokemon_storage_system.c
+++ b/src/pokemon/pokemon_storage_system.c
@@ -158,14 +158,16 @@ void sub_8098710(void);
void sub_8098734(void);
void sub_80987DC(void);
void sub_809880C(void);
+void sub_809801C(void);
bool8 sub_8098830(void);
void PrintStorageActionText(u8 index);
+void sub_8098A38(u8);
void sub_8098A5C(void);
-void sub_809B100(u8 a0);
-bool8 sub_809B130(void);
void sub_8098B48(void);
void sub_8099310(void);
bool8 sub_8099374(void);
+void sub_8099958(void);
+bool8 sub_8099990(void);
void sub_8099BF8(u8 a0);
void sub_8099C70(u8 whichBox);
bool8 sub_8099D34(void);
@@ -177,9 +179,17 @@ void sub_809B0C0(u8 a0);
void sub_809B0D4(void);
void sub_809B0E0(void);
u8 sub_809B0F4(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_809BD14(void);
bool8 sub_809BE80(void);
@@ -1638,6 +1648,136 @@ void sub_809746C(void)
}
}
+void sub_8097594(void)
+{
+ switch (ePokemonStorageSystem.unk_0004)
+ {
+ case 0:
+ PrintStorageActionText(PC_TEXT_RELEASE_POKE);
+ sub_8098A38(1);
+ ePokemonStorageSystem.unk_0004++;
+ // fallthrough
+ case 1:
+ switch (ProcessMenuInputNoWrap())
+ {
+ case -1:
+ case 1:
+ sub_8098A5C();
+ SetPSSCallback(sub_8096C84);
+ break;
+ case 0:
+ sub_8098A5C();
+ sub_809B7D4();
+ sub_809B6DC();
+ ePokemonStorageSystem.unk_0004++;
+ break;
+ }
+ break;
+ case 2:
+ sub_809B960();
+ if (!sub_809B734())
+ {
+ while (1)
+ {
+ s8 r0 = sub_809B960();
+ if (r0 == 1)
+ {
+ ePokemonStorageSystem.unk_0004++;
+ break;
+ }
+ if (r0 == 0)
+ {
+ ePokemonStorageSystem.unk_0004 = 8;
+ break;
+ }
+ }
+ }
+ break;
+ case 3:
+ sub_809B760();
+ sub_809801C();
+ PrintStorageActionText(PC_TEXT_WAS_RELEASED);
+ ePokemonStorageSystem.unk_0004++;
+ break;
+ case 4:
+ if (gMain.newKeys & (A_BUTTON | B_BUTTON))
+ {
+ PrintStorageActionText(PC_TEXT_BYE_BYE);
+ ePokemonStorageSystem.unk_0004++;
+ }
+ break;
+ case 5:
+ if (gMain.newKeys & (A_BUTTON | B_BUTTON))
+ {
+ sub_8098A5C();
+ if (gUnknown_0203847C)
+ {
+ party_compaction();
+ sub_8099310();
+ ePokemonStorageSystem.unk_0004++;
+ }
+ else
+ {
+ ePokemonStorageSystem.unk_0004 = 7;
+ }
+ }
+ break;
+ case 6:
+ if (!sub_8099374())
+ {
+ sub_809B440();
+ BoxSetMosaic();
+ sub_80987DC();
+ ePokemonStorageSystem.unk_0004++;
+ }
+ break;
+ case 7:
+ SetPSSCallback(sub_8096C84);
+ break;
+ case 8:
+ PrintStorageActionText(PC_TEXT_WAS_RELEASED);
+ ePokemonStorageSystem.unk_0004++;
+ break;
+ case 9:
+ if (gMain.newKeys & (A_BUTTON | B_BUTTON))
+ {
+ PrintStorageActionText(PC_TEXT_SURPRISE);
+ ePokemonStorageSystem.unk_0004++;
+ }
+ break;
+ case 10:
+ if (gMain.newKeys & (A_BUTTON | B_BUTTON))
+ {
+ sub_8098A5C();
+ sub_8099958();
+ ePokemonStorageSystem.unk_0004++;
+ }
+ break;
+ case 11:
+ if (!sub_8099990())
+ {
+ sub_809B7AC();
+ PrintStorageActionText(PC_TEXT_CAME_BACK);
+ ePokemonStorageSystem.unk_0004++;
+ }
+ break;
+ case 12:
+ if (gMain.newKeys & (A_BUTTON | B_BUTTON))
+ {
+ PrintStorageActionText(PC_TEXT_WORRIED);
+ ePokemonStorageSystem.unk_0004++;
+ }
+ break;
+ case 13:
+ if (gMain.newKeys & (A_BUTTON | B_BUTTON))
+ {
+ sub_8098A5C();
+ SetPSSCallback(sub_8096C84);
+ }
+ break;
+ }
+}
+
asm(".section .text.8098898");
void PrintStorageActionText(u8 index) {