summaryrefslogtreecommitdiff
path: root/asm/fldeff_sweetscent.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/fldeff_sweetscent.s')
-rw-r--r--asm/fldeff_sweetscent.s220
1 files changed, 220 insertions, 0 deletions
diff --git a/asm/fldeff_sweetscent.s b/asm/fldeff_sweetscent.s
new file mode 100644
index 000000000..d4036acd2
--- /dev/null
+++ b/asm/fldeff_sweetscent.s
@@ -0,0 +1,220 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start SetUpFieldMove_SweetScent
+SetUpFieldMove_SweetScent: @ 8159EF0
+ ldr r1, =gFieldCallback
+ ldr r0, =hm_add_c3_launch_phase_2
+ str r0, [r1]
+ ldr r1, =gUnknown_0203CEEC
+ ldr r0, =hm2_sweet_scent
+ str r0, [r1]
+ movs r0, 0x1
+ bx lr
+ .pool
+ thumb_func_end SetUpFieldMove_SweetScent
+
+ thumb_func_start hm2_sweet_scent
+hm2_sweet_scent: @ 8159F10
+ push {lr}
+ movs r0, 0x33
+ bl FieldEffectStart
+ bl brm_get_pokemon_selection
+ ldr r1, =gUnknown_02038C08
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end hm2_sweet_scent
+
+ thumb_func_start FldEff_SweetScent
+FldEff_SweetScent: @ 8159F2C
+ push {lr}
+ bl sub_80AC3D0
+ bl oei_task_add
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r2, =sub_8159F5C
+ lsrs r0, r2, 16
+ strh r0, [r1, 0x18]
+ strh r2, [r1, 0x1A]
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end FldEff_SweetScent
+
+ thumb_func_start sub_8159F5C
+sub_8159F5C: @ 8159F5C
+ push {r4,r5,lr}
+ sub sp, 0x4
+ movs r0, 0xEC
+ bl PlaySE
+ ldr r5, =gPlttBufferUnfaded
+ ldr r1, =gPaletteDecompressionBuffer
+ movs r4, 0x80
+ lsls r4, 1
+ adds r0, r5, 0
+ adds r2, r4, 0
+ bl CpuFastSet
+ ldr r0, =gPlttBufferFaded
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl CpuFastSet
+ bl GetPlayerAvatarObjectId
+ ldr r2, =gSprites
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r1, [r1, 0x5]
+ lsrs r1, 4
+ adds r1, 0x10
+ movs r0, 0x1
+ lsls r0, r1
+ mvns r0, r0
+ movs r1, 0x1F
+ str r1, [sp]
+ movs r1, 0x4
+ movs r2, 0
+ movs r3, 0x8
+ bl BeginNormalPaletteFade
+ ldr r0, =sub_8159FEC
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r0, 0
+ strh r0, [r1, 0x8]
+ movs r0, 0x33
+ bl FieldEffectActiveListRemove
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8159F5C
+
+ thumb_func_start sub_8159FEC
+sub_8159FEC: @ 8159FEC
+ push {r4-r6,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0
+ bne _0815A088
+ bl sub_81BE72C
+ movs r0, 0x40
+ movs r1, 0x8
+ movs r2, 0x1F
+ bl BlendPalettes
+ ldr r0, =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r4, r1, r0
+ ldrh r1, [r4, 0x8]
+ movs r2, 0x8
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x40
+ bne _0815A084
+ strh r6, [r4, 0x8]
+ bl SweetScentWildEncounter
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0815A044
+ adds r0, r5, 0
+ bl DestroyTask
+ b _0815A088
+ .pool
+_0815A044:
+ ldr r0, =sub_815A090
+ str r0, [r4]
+ bl GetPlayerAvatarObjectId
+ ldr r2, =gSprites
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r1, [r1, 0x5]
+ lsrs r1, 4
+ adds r1, 0x10
+ movs r0, 0x1
+ lsls r0, r1
+ mvns r0, r0
+ movs r1, 0x1F
+ str r1, [sp]
+ movs r1, 0x4
+ movs r2, 0x8
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ bl sub_81BE6B8
+ b _0815A088
+ .pool
+_0815A084:
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x8]
+_0815A088:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8159FEC
+
+ thumb_func_start sub_815A090
+sub_815A090: @ 815A090
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0815A0BE
+ ldr r0, =gPaletteDecompressionBuffer
+ ldr r1, =gPlttBufferUnfaded
+ movs r2, 0x80
+ lsls r2, 1
+ bl CpuFastSet
+ bl sub_80AC3E4
+ ldr r0, =gUnknown_08290CAE
+ bl ScriptContext1_SetupScript
+ adds r0, r4, 0
+ bl DestroyTask
+_0815A0BE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815A090
+
+ .align 2, 0 @ Don't pad with nop.
+ \ No newline at end of file