summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2018-01-07 22:03:21 -0500
committerPikalaxALT <pikalaxalt@gmail.com>2018-01-07 22:03:21 -0500
commitceebbe19918520c65ed9bdcd79d4ae5fbb669d88 (patch)
tree641a7133fab87e7ccae7445154327b42c8570da0
parent0947fdf167bff7fe67e1344fea8b287fc59a6cd2 (diff)
through sub_8096BE0
-rw-r--r--asm/pokemon_storage_system.s117
-rw-r--r--include/mon_markings.h2
-rw-r--r--src/pokemon/pokemon_storage_system.c74
3 files changed, 66 insertions, 127 deletions
diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s
index 47324f443..4db9c1667 100644
--- a/asm/pokemon_storage_system.s
+++ b/asm/pokemon_storage_system.s
@@ -5,123 +5,6 @@
.text
- thumb_func_start sub_8096AFC
-sub_8096AFC: @ 8096AFC
- push {lr}
- ldr r2, _08096B2C @ =REG_BG2HOFS
- ldr r1, _08096B30 @ =gSharedMem
- ldr r3, _08096B34 @ =0x000008b4
- adds r0, r1, r3
- ldrh r0, [r0]
- strh r0, [r2]
- adds r2, 0x4
- ldrh r0, [r1, 0xA]
- strh r0, [r2]
- adds r2, 0x2
- ldrh r0, [r1, 0x8]
- strh r0, [r2]
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl sub_809CFF0
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- .align 2, 0
-_08096B2C: .4byte REG_BG2HOFS
-_08096B30: .4byte gSharedMem
-_08096B34: .4byte 0x000008b4
- thumb_func_end sub_8096AFC
-
- thumb_func_start sub_8096B38
-sub_8096B38: @ 8096B38
- push {lr}
- ldr r0, _08096B58 @ =gSharedMem
- ldr r0, [r0]
- bl _call_via_r0
- bl sub_8097E44
- bl sub_8098734
- bl AnimateSprites
- bl BuildOamBuffer
- pop {r0}
- bx r0
- .align 2, 0
-_08096B58: .4byte gSharedMem
- thumb_func_end sub_8096B38
-
- thumb_func_start sub_8096B5C
-sub_8096B5C: @ 8096B5C
- push {r4,r5,lr}
- sub sp, 0x8
- ldr r4, _08096B70 @ =gSharedMem
- ldrb r0, [r4, 0x6]
- cmp r0, 0
- beq _08096B74
- cmp r0, 0x1
- beq _08096BAC
- b _08096BCC
- .align 2, 0
-_08096B70: .4byte gSharedMem
-_08096B74:
- ldr r1, _08096B98 @ =0x00002690
- adds r0, r4, r1
- ldr r0, [r0]
- ldr r2, _08096B9C @ =0x0000268d
- adds r1, r4, r2
- ldrb r1, [r1]
- ldr r3, _08096BA0 @ =0x0000268c
- adds r2, r4, r3
- ldrb r2, [r2]
- ldr r3, _08096BA4 @ =sub_80969A0
- ldr r5, _08096BA8 @ =0x0000268e
- adds r4, r5
- ldrb r4, [r4]
- str r4, [sp]
- bl ShowPokemonSummaryScreen
- b _08096BCC
- .align 2, 0
-_08096B98: .4byte 0x00002690
-_08096B9C: .4byte 0x0000268d
-_08096BA0: .4byte 0x0000268c
-_08096BA4: .4byte sub_80969A0
-_08096BA8: .4byte 0x0000268e
-_08096BAC:
- ldr r0, _08096BD4 @ =gPokemonStorage
- ldrb r2, [r0]
- lsls r1, r2, 3
- adds r1, r2
- ldr r2, _08096BD8 @ =0x00008344
- adds r0, r2
- adds r1, r0
- movs r0, 0
- str r0, [sp]
- ldr r0, _08096BDC @ =sub_80969A0
- str r0, [sp, 0x4]
- movs r0, 0x1
- movs r2, 0
- movs r3, 0
- bl DoNamingScreen
-_08096BCC:
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08096BD4: .4byte gPokemonStorage
-_08096BD8: .4byte 0x00008344
-_08096BDC: .4byte sub_80969A0
- thumb_func_end sub_8096B5C
-
- thumb_func_start sub_8096BE0
-sub_8096BE0: @ 8096BE0
- ldr r1, _08096BEC @ =gSharedMem
- str r0, [r1]
- movs r0, 0
- strb r0, [r1, 0x4]
- bx lr
- .align 2, 0
-_08096BEC: .4byte gSharedMem
- thumb_func_end sub_8096BE0
-
thumb_func_start sub_8096BF0
sub_8096BF0: @ 8096BF0
push {r4,lr}
diff --git a/include/mon_markings.h b/include/mon_markings.h
index a2b0ac821..eae80861a 100644
--- a/include/mon_markings.h
+++ b/include/mon_markings.h
@@ -18,7 +18,7 @@ struct PokemonMarkMenu
/*0x0030*/ u8 menuWindowSpriteTiles[0x1000];
/*0x1030*/ u8 filler1030[0x80];
/*0x10B0*/ u8 tileLoadState;
-};
+}; // 10b4
void sub_80F7404(void);
void sub_80F727C(struct PokemonMarkMenu *ptr);
diff --git a/src/pokemon/pokemon_storage_system.c b/src/pokemon/pokemon_storage_system.c
index 2b36f5d71..f09d9b302 100644
--- a/src/pokemon/pokemon_storage_system.c
+++ b/src/pokemon/pokemon_storage_system.c
@@ -13,6 +13,8 @@
#include "event_data.h"
#include "ewram.h"
#include "script.h"
+#include "pokemon_summary_screen.h"
+#include "naming_screen.h"
#include "pokemon_storage_system.h"
struct StorageAction {
@@ -31,15 +33,6 @@ struct UnkStruct_2000020 {
u8 unk_05;
};
-struct PokemonStorageSystemData {
- u8 filler_0000[5];
- u8 unk_0005;
- u8 filler_0006[26];
- struct UnkStruct_2000020 unk_0020[595]; // refine size later
- u8 filler_12b8[4];
- struct PokemonMarkMenu unk_12bc;
-};
-
struct UnkPSSStruct_2002370 {
struct Sprite *unk_0000;
struct Sprite *unk_0004[4];
@@ -51,6 +44,27 @@ struct UnkPSSStruct_2002370 {
u8 unk_023e;
u16 unk_0240;
u16 unk_0242;
+}; // 0244
+
+struct PokemonStorageSystemData {
+ void (*unk_0000)(void);
+ u8 unk_0004;
+ u8 unk_0005;
+ u8 unk_0006;
+ u16 unk_0008;
+ u16 unk_000a;
+ u8 filler_000c[20];
+ struct UnkStruct_2000020 unk_0020[274]; // refine size later
+ u8 filler_08b0[4];
+ u16 unk_08b4;
+ u8 filler_08b6[0xa06];
+ struct PokemonMarkMenu unk_12bc;
+ struct UnkPSSStruct_2002370 unk_2370;
+ u8 filler_25b4[0xd8];
+ u8 unk_268c;
+ u8 unk_268d;
+ u8 unk_268e;
+ struct Pokemon *unk_2690;
};
void StorageSystemCreatePrimaryMenu(u8 whichMenu);
@@ -69,8 +83,10 @@ void sub_8096BE0(void (*func)(void));
void sub_8096BF0(void);
void sub_8096C68(void);
void sub_8097DE0(void);
+void sub_8097E44(void);
void sub_8097E70(void);
void sub_8098400(void);
+void sub_8098734(void);
void sub_8099BF8(u8 a0);
void sub_8098B48(void);
struct Sprite *sub_809A9A0(u16 a0, u16 a1, u8 a2, u8 a3, u8 a4);
@@ -80,6 +96,7 @@ void sub_809B0D4(void);
void sub_809BBC0(void);
void sub_809BD14(void);
void sub_809CFDC(struct UnkStruct_2000020 *a0, struct UnkStruct_2000020 *a1, u8 a2);
+void sub_809CFF0(void);
const struct PSS_MenuStringPtrs gUnknown_083B600C[] = {
{PCText_WithdrawPoke, PCText_MovePokeToParty},
@@ -955,6 +972,45 @@ void sub_80969A0(void)
}
}
+void sub_8096AFC(void)
+{
+ REG_BG2HOFS = ePokemonStorageSystem.unk_08b4;
+ REG_BG3HOFS = ePokemonStorageSystem.unk_000a;
+ REG_BG3VOFS = ePokemonStorageSystem.unk_0008;
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ sub_809CFF0();
+ TransferPlttBuffer();
+}
+
+void sub_8096B38(void)
+{
+ ePokemonStorageSystem.unk_0000();
+ sub_8097E44();
+ sub_8098734();
+ AnimateSprites();
+ BuildOamBuffer();
+}
+
+void sub_8096B5C(void)
+{
+ switch (ePokemonStorageSystem.unk_0006)
+ {
+ case 0:
+ ShowPokemonSummaryScreen(ePokemonStorageSystem.unk_2690, ePokemonStorageSystem.unk_268d, ePokemonStorageSystem.unk_268c, sub_80969A0, ePokemonStorageSystem.unk_268e);
+ break;
+ case 1:
+ DoNamingScreen(1, gPokemonStorage.boxNames[gPokemonStorage.currentBox], 0, 0, 0, sub_80969A0);
+ break;
+ }
+}
+
+void sub_8096BE0(void (*func)(void))
+{
+ ePokemonStorageSystem.unk_0000 = func;
+ ePokemonStorageSystem.unk_0004 = 0;
+}
+
asm(".section .text.8098898");
void sub_8098898(u8 index) {