diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2017-06-10 10:07:06 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2017-06-10 10:07:06 -0400 |
commit | 40bcba1a64f2377166b419ecbabf8ac4a097b8ef (patch) | |
tree | 7f104515f2d5884756e775a6b5708738761c875e | |
parent | 66b7c04c71d54baf37f0928dd50004af87596993 (diff) |
Init functions for FieldMoveShowMon
-rwxr-xr-x | asm/field_effect.s | 88 | ||||
-rwxr-xr-x | src/field_effect.c | 32 |
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; +} |