diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2018-01-15 16:54:02 -0500 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2018-01-15 16:54:02 -0500 |
commit | e3238abc63ac7e939ccdc58e555a9dcdc66f3525 (patch) | |
tree | 22971108836022443bbf13b0e82b679c9c7b67e9 | |
parent | 66fe535e7f5f0466c15f5f82dd1c2823fc6110cf (diff) |
through sub_809B44C
-rw-r--r-- | asm/pokemon_storage_system.s | 223 | ||||
-rw-r--r-- | include/pokemon_storage_system.h | 2 | ||||
-rw-r--r-- | src/pokemon/pokemon_storage_system_4.c | 86 |
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; +} |