diff options
-rwxr-xr-x | asm/use_pokeblock.s | 117 | ||||
-rwxr-xr-x | include/pokenav.h | 1 | ||||
-rwxr-xr-x | src/use_pokeblock.c | 38 |
3 files changed, 39 insertions, 117 deletions
diff --git a/asm/use_pokeblock.s b/asm/use_pokeblock.s index 5e1f94267..f5abbb27e 100755 --- a/asm/use_pokeblock.s +++ b/asm/use_pokeblock.s @@ -6,123 +6,6 @@ .text - thumb_func_start sub_8136E10 -sub_8136E10: @ 8136E10 - push {r4-r7,lr} - adds r6, r0, 0 - adds r5, r1, 0 - movs r4, 0 - ldr r7, _08136E3C @ =gUnknown_08406118 -_08136E1A: - lsls r0, r4, 2 - adds r0, r7 - ldr r1, [r0] - adds r0, r6, 0 - bl GetMonData - adds r1, r5, r4 - strb r0, [r1] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x4 - bls _08136E1A - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08136E3C: .4byte gUnknown_08406118 - thumb_func_end sub_8136E10 - - thumb_func_start sub_8136E40 -sub_8136E40: @ 8136E40 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - mov r8, r0 - adds r5, r1, 0 - adds r0, r5, 0 - movs r1, 0x30 - bl GetMonData - cmp r0, 0xFF - beq _08136EDC - mov r0, r8 - adds r1, r5, 0 - bl sub_8136F74 - movs r4, 0 - mov r7, sp -_08136E64: - ldr r1, _08136EE8 @ =gUnknown_08406118 - lsls r0, r4, 2 - adds r0, r1 - ldr r6, [r0] - adds r0, r5, 0 - adds r1, r6, 0 - bl GetMonData - lsls r0, 24 - lsrs r0, 24 - strb r0, [r7] - ldr r1, _08136EEC @ =gUnknown_02039304 - ldr r1, [r1] - lsls r2, r4, 1 - adds r1, 0x66 - adds r1, r2 - ldrh r1, [r1] - adds r0, r1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r0, 0 - bge _08136E92 - movs r1, 0 -_08136E92: - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0xFF - ble _08136E9C - movs r1, 0xFF -_08136E9C: - strb r1, [r7] - adds r0, r5, 0 - adds r1, r6, 0 - mov r2, sp - bl SetMonData - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x4 - bls _08136E64 - adds r0, r5, 0 - movs r1, 0x30 - bl GetMonData - lsls r0, 24 - lsrs r0, 24 - mov r2, r8 - ldrb r2, [r2, 0x6] - adds r1, r0, r2 - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0xFF - ble _08136ECE - movs r1, 0xFF -_08136ECE: - mov r0, sp - strb r1, [r0] - adds r0, r5, 0 - movs r1, 0x30 - mov r2, sp - bl SetMonData -_08136EDC: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08136EE8: .4byte gUnknown_08406118 -_08136EEC: .4byte gUnknown_02039304 - thumb_func_end sub_8136E40 - thumb_func_start sub_8136EF0 sub_8136EF0: @ 8136EF0 push {r4,r5,lr} diff --git a/include/pokenav.h b/include/pokenav.h index 87079600d..97634955a 100755 --- a/include/pokenav.h +++ b/include/pokenav.h @@ -23,6 +23,7 @@ struct UnkPokenavStruct_Sub1 { /*0x5c*/ u8 unk5c[1]; /*0x5d*/ u8 fil5d[4]; /*0x61*/ u8 unk61[5]; + /*0x66*/ s16 unk66[5]; }; struct UnkPokenavStruct_Sub2 { diff --git a/src/use_pokeblock.c b/src/use_pokeblock.c index efa3b6200..c4b0d4e2e 100755 --- a/src/use_pokeblock.c +++ b/src/use_pokeblock.c @@ -85,6 +85,7 @@ void sub_8136C6C(void); bool8 sub_8136D00(void); void sub_8136DC0(u8 *, u8, s16); void sub_8136DA0(const u8 *); +void sub_8136F74(struct Pokeblock *, struct Pokemon *); void sub_8136130(struct Pokeblock *pokeblock, MainCallback callback) { @@ -745,3 +746,40 @@ void sub_8136DC0(u8 *dest, u8 a1, s16 a2) "_08136E0C: .4byte gOtherText_NothingChanged"); } #endif + +void sub_8136E10(struct Pokemon *pokemon, u8 *data) +{ + u16 i; + for (i=0; i<5; i++) + { + data[i] = GetMonData(pokemon, gUnknown_08406118[i]); + } +} + +void sub_8136E40(struct Pokeblock *pokeblock, struct Pokemon *pokemon) +{ + u16 i; + s16 cstat; + u8 data; + if (GetMonData(pokemon, MON_DATA_SHEEN) != 255) + { + sub_8136F74(pokeblock, pokemon); + for (i=0; i<5; i++) + { + data = GetMonData(pokemon, gUnknown_08406118[i]); + cstat = data + gUnknown_02039304->unk66[i]; + if (cstat < 0) + cstat = 0; + if (cstat > 255) + cstat = 255; + data = cstat; + SetMonData(pokemon, gUnknown_08406118[i], &data); + } + cstat = (u8)GetMonData(pokemon, MON_DATA_SHEEN); + cstat = cstat + pokeblock->feel; + if (cstat > 255) + cstat = 255; + data = cstat; + SetMonData(pokemon, MON_DATA_SHEEN, &data); + } +} |