summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2017-08-30 08:43:32 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2017-08-30 08:43:32 -0400
commit448df1097658cab72dca07b48d205acb0c7e7164 (patch)
tree0b7a0a952bb8e20e65f422f0a33230ba59cb33cf
parent885aa7d1b875de62569319f28a5d2836d5c366e6 (diff)
sub_8041870 (find pre-evo)
-rw-r--r--asm/daycare.s73
-rw-r--r--src/daycare.c27
2 files changed, 27 insertions, 73 deletions
diff --git a/asm/daycare.s b/asm/daycare.s
index 1882ad61e..764069e67 100644
--- a/asm/daycare.s
+++ b/asm/daycare.s
@@ -6,79 +6,6 @@
.text
- thumb_func_start sub_8041870
-sub_8041870: @ 8041870
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 16
- lsrs r2, r0, 16
- movs r0, 0
- mov r8, r0
- ldr r0, _0804189C @ =gEvolutionTable
- mov r12, r0
-_08041882:
- movs r7, 0
- movs r6, 0x1
- movs r4, 0x80
- lsls r4, 9
- movs r5, 0x28
- mov r3, r12
- adds r3, 0x28
-_08041890:
- movs r1, 0
- ldrh r0, [r3, 0x4]
- cmp r0, r2
- bne _080418A0
- lsrs r2, r4, 16
- b _080418CC
- .align 2, 0
-_0804189C: .4byte gEvolutionTable
-_080418A0:
- adds r1, 0x1
- cmp r1, 0x4
- bgt _080418B6
- lsls r0, r1, 3
- adds r0, r5
- add r0, r12
- ldrh r0, [r0, 0x4]
- cmp r0, r2
- bne _080418A0
- lsrs r2, r4, 16
- movs r7, 0x1
-_080418B6:
- cmp r7, 0
- bne _080418CC
- movs r0, 0x80
- lsls r0, 9
- adds r4, r0
- adds r5, 0x28
- adds r3, 0x28
- adds r6, 0x1
- ldr r0, _080418EC @ =0x0000019b
- cmp r6, r0
- ble _08041890
-_080418CC:
- movs r0, 0xCE
- lsls r0, 1
- cmp r6, r0
- beq _080418DE
- movs r0, 0x1
- add r8, r0
- mov r0, r8
- cmp r0, 0x4
- ble _08041882
-_080418DE:
- adds r0, r2, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080418EC: .4byte 0x0000019b
- thumb_func_end sub_8041870
-
thumb_func_start sub_80418F0
sub_80418F0: @ 80418F0
push {r4,lr}
diff --git a/src/daycare.c b/src/daycare.c
index 3f65c5bea..dc1300182 100644
--- a/src/daycare.c
+++ b/src/daycare.c
@@ -261,3 +261,30 @@ void unref_sub_8041824(struct DayCareData *dayCareData)
dayCareData->unk_118 = 0;
dayCareData->unk_11a = 0;
}
+
+u16 sub_8041870(u16 species)
+{
+ int i, j, k;
+ bool8 found;
+ for (i = 0; i < 5; i ++)
+ {
+ found = FALSE;
+ for (j = 1; j < NUM_SPECIES; j ++)
+ {
+ for (k = 0; k < 5; k ++)
+ {
+ if (gEvolutionTable[j].evolutions[k].targetSpecies == species)
+ {
+ species = j;
+ found = TRUE;
+ break;
+ }
+ }
+ if (found)
+ break;
+ }
+ if (j == 412)
+ break;
+ }
+ return species;
+}