summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2017-06-29 21:39:25 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2017-06-29 21:39:25 -0400
commit1bb72454b44307b772660e54318598f0cea274cc (patch)
treeafa7f71f8dcadd4bc9f9903f7f33b7724849c216
parenteefb510a3c442d6997a6a681e919046a775766be (diff)
sub_8136E40
-rwxr-xr-xasm/use_pokeblock.s117
-rwxr-xr-xinclude/pokenav.h1
-rwxr-xr-xsrc/use_pokeblock.c38
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);
+ }
+}