summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2018-01-15 17:14:39 -0500
committerPikalaxALT <pikalaxalt@gmail.com>2018-01-15 17:14:39 -0500
commit08a108f432325d6501f3c6473a6d43265af0d5b7 (patch)
tree2f6a39bc7cd8fe70dbf149532e4fff11f2a1880e
parente3238abc63ac7e939ccdc58e555a9dcdc66f3525 (diff)
through diegohint1
-rw-r--r--asm/pokemon_storage_system.s168
-rw-r--r--include/pokemon.h2
-rw-r--r--include/pokemon_storage_system.h3
-rw-r--r--src/field/daycare.c2
-rw-r--r--src/pokemon/pokemon_1.c2
-rw-r--r--src/pokemon/pokemon_storage_system_4.c37
-rw-r--r--src/pokemon/pokemon_summary_screen.c2
7 files changed, 43 insertions, 173 deletions
diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s
index 9b37cbe69..e47abfda0 100644
--- a/asm/pokemon_storage_system.s
+++ b/asm/pokemon_storage_system.s
@@ -5,172 +5,6 @@
.text
- thumb_func_start diegohint2
-diegohint2: @ 809B4D4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- cmp r6, 0xE
- bne _0809B508
- ldr r1, _0809B4FC @ =gPlayerParty
- movs r0, 0x64
- muls r0, r5
- adds r0, r1
- ldr r1, _0809B500 @ =gPokemonStorageSystemPtr
- ldr r1, [r1]
- ldr r2, _0809B504 @ =0x000025b4
- adds r1, r2
- movs r2, 0x64
- bl memcpy
- b _0809B536
- .align 2, 0
-_0809B4FC: .4byte gPlayerParty
-_0809B500: .4byte gPokemonStorageSystemPtr
-_0809B504: .4byte 0x000025b4
-_0809B508:
- ldr r0, _0809B53C @ =gPokemonStorageSystemPtr
- ldr r4, [r0]
- ldr r0, _0809B540 @ =0x000025b4
- adds r4, r0
- adds r0, r4, 0
- bl BoxMonRestorePP
- ldr r3, _0809B544 @ =gPokemonStorage
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 4
- lsls r2, r6, 2
- adds r2, r6
- lsls r1, r2, 4
- subs r1, r2
- lsls r1, 5
- adds r0, r1
- adds r0, r3
- adds r0, 0x4
- adds r1, r4, 0
- movs r2, 0x50
- bl memcpy
-_0809B536:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809B53C: .4byte gPokemonStorageSystemPtr
-_0809B540: .4byte 0x000025b4
-_0809B544: .4byte gPokemonStorage
- thumb_func_end diegohint2
-
- thumb_func_start sub_809B548
-sub_809B548: @ 809B548
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r2, r1, 24
- cmp r0, 0xE
- bne _0809B568
- movs r0, 0x64
- muls r0, r2
- ldr r1, _0809B564 @ =gPlayerParty
- adds r0, r1
- bl ZeroMonData
- b _0809B582
- .align 2, 0
-_0809B564: .4byte gPlayerParty
-_0809B568:
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 4
- ldr r2, _0809B588 @ =gPokemonStorage + 0x4
- adds r1, r2
- adds r0, r1
- bl ZeroBoxMonData
-_0809B582:
- pop {r0}
- bx r0
- .align 2, 0
-_0809B588: .4byte gPokemonStorage + 0x4
- thumb_func_end sub_809B548
-
- thumb_func_start diegohint1
-diegohint1: @ 809B58C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r6, r1, 24
- cmp r5, 0xE
- bne _0809B5C0
- ldr r0, _0809B5B4 @ =gPokemonStorageSystemPtr
- ldr r0, [r0]
- ldr r1, _0809B5B8 @ =0x00002618
- adds r0, r1
- ldr r2, _0809B5BC @ =gPlayerParty
- movs r1, 0x64
- muls r1, r6
- adds r1, r2
- movs r2, 0x64
- bl memcpy
- b _0809B5E2
- .align 2, 0
-_0809B5B4: .4byte gPokemonStorageSystemPtr
-_0809B5B8: .4byte 0x00002618
-_0809B5BC: .4byte gPlayerParty
-_0809B5C0:
- lsls r1, r5, 2
- adds r1, r5
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 4
- ldr r2, _0809B614 @ =gPokemonStorage + 0x4
- adds r1, r2
- adds r0, r1
- ldr r1, _0809B618 @ =gPokemonStorageSystemPtr
- ldr r1, [r1]
- ldr r2, _0809B61C @ =0x00002618
- adds r1, r2
- bl sub_803B4B4
-_0809B5E2:
- adds r0, r5, 0
- adds r1, r6, 0
- bl diegohint2
- ldr r0, _0809B618 @ =gPokemonStorageSystemPtr
- ldr r1, [r0]
- ldr r0, _0809B620 @ =0x000025b4
- adds r4, r1, r0
- ldr r2, _0809B61C @ =0x00002618
- adds r1, r2
- adds r0, r4, 0
- movs r2, 0x64
- bl memcpy
- adds r0, r4, 0
- movs r1, 0
- bl sub_809C04C
- ldr r0, _0809B624 @ =gUnknown_020384E7
- strb r5, [r0]
- ldr r0, _0809B628 @ =gUnknown_020384E8
- strb r6, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809B614: .4byte gPokemonStorage + 0x4
-_0809B618: .4byte gPokemonStorageSystemPtr
-_0809B61C: .4byte 0x00002618
-_0809B620: .4byte 0x000025b4
-_0809B624: .4byte gUnknown_020384E7
-_0809B628: .4byte gUnknown_020384E8
- thumb_func_end diegohint1
-
thumb_func_start sub_809B62C
sub_809B62C: @ 809B62C
push {r4-r6,lr}
@@ -474,7 +308,7 @@ _0809B864:
ldr r4, [r1]
ldr r2, _0809B908 @ =0x00002618
adds r1, r4, r2
- bl sub_803B4B4
+ bl ExpandBoxMon
ldrb r0, [r5]
ldr r1, _0809B90C @ =0x00002682
adds r4, r1
diff --git a/include/pokemon.h b/include/pokemon.h
index 8624270f1..47d6bcfc7 100644
--- a/include/pokemon.h
+++ b/include/pokemon.h
@@ -522,7 +522,7 @@ void sub_803ADE8(struct Pokemon *mon, struct UnknownPokemonStruct *src);
void sub_803AF78(struct Pokemon *mon, struct UnknownPokemonStruct *dest);
u16 CalculateBoxMonChecksum(struct BoxPokemon *boxMon);
void CalculateMonStats(struct Pokemon *mon);
-void sub_803B4B4(const struct BoxPokemon *src, struct Pokemon *dest);
+void ExpandBoxMon(const struct BoxPokemon *src, struct Pokemon *dest);
u8 GetLevelFromMonExp(struct Pokemon *mon);
u8 GetLevelFromBoxMonExp(struct BoxPokemon *boxMon);
u16 GiveMoveToMon(struct Pokemon *mon, u16 move);
diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h
index eefea4ec8..7960213ae 100644
--- a/include/pokemon_storage_system.h
+++ b/include/pokemon_storage_system.h
@@ -182,7 +182,8 @@ struct PokemonStorageSystemData {
struct PokemonMarkMenu unk_12bc;
struct UnkPSSStruct_2002370 unk_2370;
struct Pokemon unk_25b4;
- u8 filler_2618[0x74];
+ struct Pokemon unk_2618;
+ u8 filler_267c[0x10];
u8 unk_268c;
u8 unk_268d;
u8 unk_268e;
diff --git a/src/field/daycare.c b/src/field/daycare.c
index 36dd7ec03..2f0c7281e 100644
--- a/src/field/daycare.c
+++ b/src/field/daycare.c
@@ -205,7 +205,7 @@ static u16 TakeSelectedPokemonFromDaycare(struct DayCare * daycare, u8 slot)
GetBoxMonNick(&daycare->mons[slot], gStringVar1);
species = GetBoxMonData(&daycare->mons[slot], MON_DATA_SPECIES);
- sub_803B4B4(&daycare->mons[slot], &pokemon);
+ ExpandBoxMon(&daycare->mons[slot], &pokemon);
if (GetMonData(&pokemon, MON_DATA_LEVEL) != MAX_LEVEL)
{
diff --git a/src/pokemon/pokemon_1.c b/src/pokemon/pokemon_1.c
index 0242e7444..06a088046 100644
--- a/src/pokemon/pokemon_1.c
+++ b/src/pokemon/pokemon_1.c
@@ -524,7 +524,7 @@ void CalculateMonStats(struct Pokemon *mon)
SetMonData(mon, MON_DATA_HP, &currentHP);
}
-void sub_803B4B4(const struct BoxPokemon *src, struct Pokemon *dest)
+void ExpandBoxMon(const struct BoxPokemon *src, struct Pokemon *dest)
{
u32 value = 0;
dest->box = *src;
diff --git a/src/pokemon/pokemon_storage_system_4.c b/src/pokemon/pokemon_storage_system_4.c
index 1127927bf..73d71fa0e 100644
--- a/src/pokemon/pokemon_storage_system_4.c
+++ b/src/pokemon/pokemon_storage_system_4.c
@@ -60,6 +60,7 @@ void diegohint1(u8 a0, u8 a1);
bool8 sub_809BF2C(void);
void sub_809BF74(void);
void sub_809C028(void);
+void sub_809C04C(struct Pokemon *pokemon, u8 a1);
void sub_809CC04(void);
// .rodata
@@ -1562,8 +1563,42 @@ 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);
+ ExpandBoxMon(gPokemonStorage.boxes[a0] + a1, &gPokemonStorageSystemPtr->unk_25b4);
sub_809B548(a0, a1);
gUnknown_020384E7 = a0;
gUnknown_020384E8 = a1;
}
+
+void diegohint2(u8 a0, u8 a1)
+{
+ if (a0 == 14)
+ {
+ gPlayerParty[a1] = gPokemonStorageSystemPtr->unk_25b4;
+ }
+ else
+ {
+ BoxMonRestorePP(&gPokemonStorageSystemPtr->unk_25b4.box);
+ gPokemonStorage.boxes[a0][a1] = gPokemonStorageSystemPtr->unk_25b4.box;
+ }
+}
+
+void sub_809B548(u8 a0, u8 a1)
+{
+ if (a0 == 14)
+ ZeroMonData(gPlayerParty + a1);
+ else
+ ZeroBoxMonData(gPokemonStorage.boxes[a0] + a1);
+}
+
+void diegohint1(u8 a0, u8 a1)
+{
+ if (a0 == 14)
+ gPokemonStorageSystemPtr->unk_2618 = gPlayerParty[a1];
+ else
+ ExpandBoxMon(gPokemonStorage.boxes[a0] + a1, &gPokemonStorageSystemPtr->unk_2618);
+ diegohint2(a0, a1);
+ gPokemonStorageSystemPtr->unk_25b4 = gPokemonStorageSystemPtr->unk_2618;
+ sub_809C04C(&gPokemonStorageSystemPtr->unk_25b4, 0);
+ gUnknown_020384E7 = a0;
+ gUnknown_020384E8 = a1;
+}
diff --git a/src/pokemon/pokemon_summary_screen.c b/src/pokemon/pokemon_summary_screen.c
index ce83ad070..dce65898c 100644
--- a/src/pokemon/pokemon_summary_screen.c
+++ b/src/pokemon/pokemon_summary_screen.c
@@ -2253,7 +2253,7 @@ static void sub_809F678(struct Pokemon *mon)
else
{
struct BoxPokemon *mons = pssData.monList.boxMons;
- sub_803B4B4(&mons[pssData.monIndex], mon);
+ ExpandBoxMon(&mons[pssData.monIndex], mon);
}
}