summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2018-01-15 16:54:02 -0500
committerPikalaxALT <pikalaxalt@gmail.com>2018-01-15 16:54:02 -0500
commite3238abc63ac7e939ccdc58e555a9dcdc66f3525 (patch)
tree22971108836022443bbf13b0e82b679c9c7b67e9
parent66fe535e7f5f0466c15f5f82dd1c2823fc6110cf (diff)
through sub_809B44C
-rw-r--r--asm/pokemon_storage_system.s223
-rw-r--r--include/pokemon_storage_system.h2
-rw-r--r--src/pokemon/pokemon_storage_system_4.c86
3 files changed, 88 insertions, 223 deletions
diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s
index d408dc7ea..9b37cbe69 100644
--- a/asm/pokemon_storage_system.s
+++ b/asm/pokemon_storage_system.s
@@ -5,229 +5,6 @@
.text
- thumb_func_start sub_809B324
-sub_809B324: @ 809B324
- push {lr}
- ldr r0, _0809B348 @ =gPokemonStorageSystemPtr
- ldr r0, [r0]
- movs r1, 0x8E
- lsls r1, 5
- adds r0, r1
- ldr r1, [r0]
- movs r2, 0x26
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _0809B33E
- cmp r0, 0x8
- beq _0809B34C
-_0809B33E:
- ldrh r0, [r1, 0x26]
- adds r0, 0x1
- strh r0, [r1, 0x26]
- b _0809B350
- .align 2, 0
-_0809B348: .4byte gPokemonStorageSystemPtr
-_0809B34C:
- movs r0, 0
- b _0809B352
-_0809B350:
- movs r0, 0x1
-_0809B352:
- pop {r1}
- bx r1
- thumb_func_end sub_809B324
-
- thumb_func_start sub_809B358
-sub_809B358: @ 809B358
- push {lr}
- ldr r0, _0809B378 @ =gPokemonStorageSystemPtr
- ldr r0, [r0]
- movs r1, 0x8E
- lsls r1, 5
- adds r0, r1
- ldr r1, [r0]
- movs r2, 0x26
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _0809B37C
- ldrh r0, [r1, 0x26]
- subs r0, 0x1
- strh r0, [r1, 0x26]
- movs r0, 0x1
- b _0809B37E
- .align 2, 0
-_0809B378: .4byte gPokemonStorageSystemPtr
-_0809B37C:
- movs r0, 0
-_0809B37E:
- pop {r1}
- bx r1
- thumb_func_end sub_809B358
-
- thumb_func_start sub_809B384
-sub_809B384: @ 809B384
- push {r4,lr}
- ldr r0, _0809B3AC @ =gUnknown_020384E4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- beq _0809B3B4
- cmp r0, 0x1
- bne _0809B3D2
- ldr r4, _0809B3B0 @ =gUnknown_020384E5
- ldrb r1, [r4]
- movs r0, 0xE
- bl sub_809B44C
- ldrb r1, [r4]
- movs r0, 0
- bl sub_8099584
- b _0809B3CC
- .align 2, 0
-_0809B3AC: .4byte gUnknown_020384E4
-_0809B3B0: .4byte gUnknown_020384E5
-_0809B3B4:
- bl get_preferred_box
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _0809B3D8 @ =gUnknown_020384E5
- ldrb r1, [r4]
- bl sub_809B44C
- ldrb r1, [r4]
- movs r0, 0x1
- bl sub_8099584
-_0809B3CC:
- ldr r1, _0809B3DC @ =gUnknown_020384E6
- movs r0, 0x1
- strb r0, [r1]
-_0809B3D2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809B3D8: .4byte gUnknown_020384E5
-_0809B3DC: .4byte gUnknown_020384E6
- thumb_func_end sub_809B384
-
- thumb_func_start sub_809B3E0
-sub_809B3E0: @ 809B3E0
- push {r4,r5,lr}
- ldr r0, _0809B408 @ =gUnknown_020384E4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- beq _0809B410
- cmp r0, 0x1
- bne _0809B432
- ldr r4, _0809B40C @ =gUnknown_020384E5
- ldrb r1, [r4]
- movs r0, 0xE
- bl diegohint2
- ldrb r1, [r4]
- movs r0, 0xE
- bl sub_809960C
- b _0809B42C
- .align 2, 0
-_0809B408: .4byte gUnknown_020384E4
-_0809B40C: .4byte gUnknown_020384E5
-_0809B410:
- bl get_preferred_box
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _0809B438 @ =gUnknown_020384E5
- ldrb r1, [r5]
- adds r0, r4, 0
- bl diegohint2
- ldrb r1, [r5]
- adds r0, r4, 0
- bl sub_809960C
-_0809B42C:
- ldr r1, _0809B43C @ =gUnknown_020384E6
- movs r0, 0
- strb r0, [r1]
-_0809B432:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809B438: .4byte gUnknown_020384E5
-_0809B43C: .4byte gUnknown_020384E6
- thumb_func_end sub_809B3E0
-
- thumb_func_start sub_809B440
-sub_809B440: @ 809B440
- push {lr}
- bl sub_809BF74
- pop {r0}
- bx r0
- thumb_func_end sub_809B440
-
- thumb_func_start sub_809B44C
-sub_809B44C: @ 809B44C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- cmp r4, 0xE
- bne _0809B488
- ldr r0, _0809B478 @ =gPokemonStorageSystemPtr
- ldr r0, [r0]
- ldr r1, _0809B47C @ =0x000025b4
- adds r0, r1
- ldr r3, _0809B480 @ =gPlayerParty
- ldr r1, _0809B484 @ =gUnknown_020384E5
- movs r2, 0
- ldrsb r2, [r1, r2]
- movs r1, 0x64
- muls r1, r2
- adds r1, r3
- movs r2, 0x64
- bl memcpy
- b _0809B4AA
- .align 2, 0
-_0809B478: .4byte gPokemonStorageSystemPtr
-_0809B47C: .4byte 0x000025b4
-_0809B480: .4byte gPlayerParty
-_0809B484: .4byte gUnknown_020384E5
-_0809B488:
- lsls r1, r4, 2
- adds r1, r4
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 4
- ldr r2, _0809B4C0 @ =gPokemonStorage + 0x4
- adds r1, r2
- adds r0, r1
- ldr r1, _0809B4C4 @ =gPokemonStorageSystemPtr
- ldr r1, [r1]
- ldr r2, _0809B4C8 @ =0x000025b4
- adds r1, r2
- bl sub_803B4B4
-_0809B4AA:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_809B548
- ldr r0, _0809B4CC @ =gUnknown_020384E7
- strb r4, [r0]
- ldr r0, _0809B4D0 @ =gUnknown_020384E8
- strb r5, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809B4C0: .4byte gPokemonStorage + 0x4
-_0809B4C4: .4byte gPokemonStorageSystemPtr
-_0809B4C8: .4byte 0x000025b4
-_0809B4CC: .4byte gUnknown_020384E7
-_0809B4D0: .4byte gUnknown_020384E8
- thumb_func_end sub_809B44C
-
thumb_func_start diegohint2
diegohint2: @ 809B4D4
push {r4-r6,lr}
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);
diff --git a/src/pokemon/pokemon_storage_system_4.c b/src/pokemon/pokemon_storage_system_4.c
index 9e4865910..1127927bf 100644
--- a/src/pokemon/pokemon_storage_system_4.c
+++ b/src/pokemon/pokemon_storage_system_4.c
@@ -53,6 +53,9 @@ bool8 sub_809B324(void);
bool8 sub_809B358(void);
void sub_809B384(void);
void sub_809B3E0(void);
+void sub_809B44C(u8 a0, u8 a1);
+void diegohint2(u8 a0, u8 a1);
+void sub_809B548(u8 a0, u8 a1);
void diegohint1(u8 a0, u8 a1);
bool8 sub_809BF2C(void);
void sub_809BF74(void);
@@ -1481,3 +1484,86 @@ bool8 sub_809B24C(void)
}
return TRUE;
}
+
+bool8 sub_809B324(void)
+{
+ switch (gPokemonStorageSystemPtr->unk_11c0->pos2.y)
+ {
+ default:
+ gPokemonStorageSystemPtr->unk_11c0->pos2.y++;
+ break;
+ case 0:
+ gPokemonStorageSystemPtr->unk_11c0->pos2.y++;
+ break;
+ case 8:
+ return FALSE;
+ }
+ return TRUE;
+}
+
+bool8 sub_809B358(void)
+{
+ switch (gPokemonStorageSystemPtr->unk_11c0->pos2.y)
+ {
+ case 0:
+ return FALSE;
+ default:
+ gPokemonStorageSystemPtr->unk_11c0->pos2.y--;
+ break;
+ }
+ return TRUE;
+}
+
+void sub_809B384(void)
+{
+ switch (gUnknown_020384E4)
+ {
+ case 1:
+ sub_809B44C(14, gUnknown_020384E5);
+ sub_8099584(0, gUnknown_020384E5);
+ break;
+ case 0:
+ sub_809B44C(get_preferred_box(), gUnknown_020384E5);
+ sub_8099584(1, gUnknown_020384E5);
+ break;
+ default:
+ return;
+ }
+ gUnknown_020384E6 = 1;
+}
+
+void sub_809B3E0(void)
+{
+ u8 boxId;
+ switch (gUnknown_020384E4)
+ {
+ case 1:
+ diegohint2(14, gUnknown_020384E5);
+ sub_809960C(14, gUnknown_020384E5);
+ break;
+ case 0:
+ boxId = get_preferred_box();
+ diegohint2(boxId, gUnknown_020384E5);
+ sub_809960C(boxId, gUnknown_020384E5);
+ break;
+ default:
+ return;
+ }
+ gUnknown_020384E6 = 0;
+}
+
+void sub_809B440(void)
+{
+ sub_809BF74();
+}
+
+void sub_809B44C(u8 a0, u8 a1)
+{
+ if (a0 == 14)
+ gPokemonStorageSystemPtr->unk_25b4 = gPlayerParty[gUnknown_020384E5];
+ else
+ sub_803B4B4(gPokemonStorage.boxes[a0], &gPokemonStorageSystemPtr->unk_25b4);
+ sub_809B548(a0, a1);
+ gUnknown_020384E7 = a0;
+ gUnknown_020384E8 = a1;
+}