diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2018-01-15 17:14:39 -0500 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2018-01-15 17:14:39 -0500 |
commit | 08a108f432325d6501f3c6473a6d43265af0d5b7 (patch) | |
tree | 2f6a39bc7cd8fe70dbf149532e4fff11f2a1880e | |
parent | e3238abc63ac7e939ccdc58e555a9dcdc66f3525 (diff) |
through diegohint1
-rw-r--r-- | asm/pokemon_storage_system.s | 168 | ||||
-rw-r--r-- | include/pokemon.h | 2 | ||||
-rw-r--r-- | include/pokemon_storage_system.h | 3 | ||||
-rw-r--r-- | src/field/daycare.c | 2 | ||||
-rw-r--r-- | src/pokemon/pokemon_1.c | 2 | ||||
-rw-r--r-- | src/pokemon/pokemon_storage_system_4.c | 37 | ||||
-rw-r--r-- | src/pokemon/pokemon_summary_screen.c | 2 |
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, ¤tHP); } -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); } } |