summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2017-06-10 10:07:06 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2017-06-10 10:07:06 -0400
commit40bcba1a64f2377166b419ecbabf8ac4a097b8ef (patch)
tree7f104515f2d5884756e775a6b5708738761c875e
parent66b7c04c71d54baf37f0928dd50004af87596993 (diff)
Init functions for FieldMoveShowMon
-rwxr-xr-xasm/field_effect.s88
-rwxr-xr-xsrc/field_effect.c32
2 files changed, 32 insertions, 88 deletions
diff --git a/asm/field_effect.s b/asm/field_effect.s
index 311ec86a0..d0ea81b82 100755
--- a/asm/field_effect.s
+++ b/asm/field_effect.s
@@ -6,94 +6,6 @@
.text
- thumb_func_start FldEff_FieldMoveShowMon
-FldEff_FieldMoveShowMon: @ 8088068
- push {r4,lr}
- bl sav1_map_get_light_level
- lsls r0, 24
- lsrs r0, 24
- bl is_light_level_1_2_3_5_or_6
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08088088
- ldr r0, _08088084 @ =sub_8088120
- b _0808808A
- .align 2, 0
-_08088084: .4byte sub_8088120
-_08088088:
- ldr r0, _080880B8 @ =sub_808847C
-_0808808A:
- movs r1, 0xFF
- bl CreateTask
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r2, _080880BC @ =gUnknown_0202FF84
- ldr r0, [r2]
- ldr r1, [r2, 0x4]
- ldr r2, [r2, 0x8]
- bl sub_8088830
- ldr r2, _080880C0 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r2
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x26]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080880B8: .4byte sub_808847C
-_080880BC: .4byte gUnknown_0202FF84
-_080880C0: .4byte gTasks
- thumb_func_end FldEff_FieldMoveShowMon
-
- thumb_func_start FldEff_FieldMoveShowMonInit
-FldEff_FieldMoveShowMonInit: @ 80880C4
- push {r4-r6,lr}
- ldr r5, _08088118 @ =gUnknown_0202FF84
- ldr r0, [r5]
- movs r6, 0x80
- lsls r6, 24
- ands r6, r0
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- adds r4, r0, 0
- muls r4, r1
- ldr r0, _0808811C @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- str r0, [r5]
- adds r0, r4, 0
- movs r1, 0x1
- bl GetMonData
- str r0, [r5, 0x4]
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- str r0, [r5, 0x8]
- ldr r0, [r5]
- orrs r0, r6
- str r0, [r5]
- movs r0, 0x6
- bl FieldEffectStart
- movs r0, 0x3B
- bl FieldEffectActiveListRemove
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08088118: .4byte gUnknown_0202FF84
-_0808811C: .4byte gPlayerParty
- thumb_func_end FldEff_FieldMoveShowMonInit
-
thumb_func_start sub_8088120
sub_8088120: @ 8088120
push {lr}
diff --git a/src/field_effect.c b/src/field_effect.c
index 8a874efb6..3a56dfdcb 100755
--- a/src/field_effect.c
+++ b/src/field_effect.c
@@ -2008,3 +2008,35 @@ void sub_8087FDC(struct Task *task)
}
}
}
+
+void sub_8088120(u8);
+void sub_808847C(u8);
+u8 sub_8088830(u32, u32, u32);
+
+bool8 FldEff_FieldMoveShowMon(void)
+{
+ u8 taskId;
+ if (is_light_level_1_2_3_5_or_6(sav1_map_get_light_level()) == TRUE)
+ {
+ taskId = CreateTask(sub_8088120, 0xff);
+ } else
+ {
+ taskId = CreateTask(sub_808847C, 0xff);
+ }
+ gTasks[taskId].data[15] = sub_8088830(gUnknown_0202FF84[0], gUnknown_0202FF84[1], gUnknown_0202FF84[2]);
+ return FALSE;
+}
+
+bool8 FldEff_FieldMoveShowMonInit(void)
+{
+ struct Pokemon *pokemon;
+ u32 flag = gUnknown_0202FF84[0] & 0x80000000;
+ pokemon = &gPlayerParty[(u8)gUnknown_0202FF84[0]];
+ gUnknown_0202FF84[0] = GetMonData(pokemon, MON_DATA_SPECIES);
+ gUnknown_0202FF84[1] = GetMonData(pokemon, MON_DATA_OT_ID);
+ gUnknown_0202FF84[2] = GetMonData(pokemon, MON_DATA_PERSONALITY);
+ gUnknown_0202FF84[0] |= flag;
+ FieldEffectStart(FLDEFF_FIELD_MOVE_SHOW_MON);
+ FieldEffectActiveListRemove(FLDEFF_FIELD_MOVE_SHOW_MON_INIT);
+ return FALSE;
+}