Use VS Seeker field effect
This commit is contained in:
+39
-243
@@ -5,212 +5,8 @@
|
|||||||
|
|
||||||
.text
|
.text
|
||||||
|
|
||||||
thumb_func_start FldEff_Unk41
|
thumb_func_start FldEff_NpcFlyOut
|
||||||
FldEff_Unk41: @ 8086BA8
|
FldEff_NpcFlyOut: @ 8086D38
|
||||||
push {lr}
|
|
||||||
ldr r0, _08086BC8 @ =gQuestLogState
|
|
||||||
ldrb r0, [r0]
|
|
||||||
cmp r0, 0x1
|
|
||||||
bne _08086BBA
|
|
||||||
movs r0, 0x8
|
|
||||||
movs r1, 0x59
|
|
||||||
bl sub_811278C
|
|
||||||
_08086BBA:
|
|
||||||
ldr r0, _08086BCC @ =Task_FldEffUnk41
|
|
||||||
movs r1, 0xFF
|
|
||||||
bl CreateTask
|
|
||||||
movs r0, 0
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
.align 2, 0
|
|
||||||
_08086BC8: .4byte gQuestLogState
|
|
||||||
_08086BCC: .4byte Task_FldEffUnk41
|
|
||||||
thumb_func_end FldEff_Unk41
|
|
||||||
|
|
||||||
thumb_func_start Task_FldEffUnk41
|
|
||||||
Task_FldEffUnk41: @ 8086BD0
|
|
||||||
push {lr}
|
|
||||||
adds r1, r0, 0
|
|
||||||
lsls r1, 24
|
|
||||||
lsrs r1, 24
|
|
||||||
ldr r3, _08086BF8 @ =sUnk41EffectFuncs
|
|
||||||
ldr r2, _08086BFC @ =gTasks
|
|
||||||
lsls r0, r1, 2
|
|
||||||
adds r0, r1
|
|
||||||
lsls r0, 3
|
|
||||||
adds r0, r2
|
|
||||||
movs r2, 0x8
|
|
||||||
ldrsh r1, [r0, r2]
|
|
||||||
lsls r1, 2
|
|
||||||
adds r1, r3
|
|
||||||
ldr r1, [r1]
|
|
||||||
bl _call_via_r1
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_08086BF8: .4byte sUnk41EffectFuncs
|
|
||||||
_08086BFC: .4byte gTasks
|
|
||||||
thumb_func_end Task_FldEffUnk41
|
|
||||||
|
|
||||||
thumb_func_start Unk41Effect_1
|
|
||||||
Unk41Effect_1: @ 8086C00
|
|
||||||
push {r4,lr}
|
|
||||||
adds r4, r0, 0
|
|
||||||
bl ScriptContext2_Enable
|
|
||||||
bl FreezeObjectEvents
|
|
||||||
ldr r1, _08086C20 @ =gPlayerAvatar
|
|
||||||
movs r0, 0x1
|
|
||||||
strb r0, [r1, 0x6]
|
|
||||||
ldrh r0, [r4, 0x8]
|
|
||||||
adds r0, 0x1
|
|
||||||
strh r0, [r4, 0x8]
|
|
||||||
pop {r4}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_08086C20: .4byte gPlayerAvatar
|
|
||||||
thumb_func_end Unk41Effect_1
|
|
||||||
|
|
||||||
thumb_func_start Unk41Effect_2
|
|
||||||
Unk41Effect_2: @ 8086C24
|
|
||||||
push {r4,r5,lr}
|
|
||||||
adds r5, r0, 0
|
|
||||||
ldr r0, _08086C68 @ =gPlayerAvatar
|
|
||||||
ldrb r1, [r0, 0x5]
|
|
||||||
lsls r0, r1, 3
|
|
||||||
adds r0, r1
|
|
||||||
lsls r0, 2
|
|
||||||
ldr r1, _08086C6C @ =gObjectEvents
|
|
||||||
adds r4, r0, r1
|
|
||||||
adds r0, r4, 0
|
|
||||||
bl ObjectEventIsMovementOverridden
|
|
||||||
lsls r0, 24
|
|
||||||
cmp r0, 0
|
|
||||||
beq _08086C4E
|
|
||||||
adds r0, r4, 0
|
|
||||||
bl ObjectEventClearHeldMovementIfFinished
|
|
||||||
lsls r0, 24
|
|
||||||
cmp r0, 0
|
|
||||||
beq _08086C60
|
|
||||||
_08086C4E:
|
|
||||||
bl sub_805CBE8
|
|
||||||
adds r0, r4, 0
|
|
||||||
movs r1, 0x45
|
|
||||||
bl ObjectEventSetHeldMovement
|
|
||||||
ldrh r0, [r5, 0x8]
|
|
||||||
adds r0, 0x1
|
|
||||||
strh r0, [r5, 0x8]
|
|
||||||
_08086C60:
|
|
||||||
pop {r4,r5}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_08086C68: .4byte gPlayerAvatar
|
|
||||||
_08086C6C: .4byte gObjectEvents
|
|
||||||
thumb_func_end Unk41Effect_2
|
|
||||||
|
|
||||||
thumb_func_start Unk41Effect_3
|
|
||||||
Unk41Effect_3: @ 8086C70
|
|
||||||
push {r4-r6,lr}
|
|
||||||
adds r6, r0, 0
|
|
||||||
ldr r5, _08086C9C @ =gPlayerAvatar
|
|
||||||
ldrb r1, [r5, 0x5]
|
|
||||||
lsls r0, r1, 3
|
|
||||||
adds r0, r1
|
|
||||||
lsls r0, 2
|
|
||||||
ldr r1, _08086CA0 @ =gObjectEvents
|
|
||||||
adds r4, r0, r1
|
|
||||||
adds r0, r4, 0
|
|
||||||
bl ObjectEventClearHeldMovementIfFinished
|
|
||||||
lsls r0, 24
|
|
||||||
cmp r0, 0
|
|
||||||
beq _08086CEE
|
|
||||||
ldrb r1, [r5]
|
|
||||||
movs r0, 0x6
|
|
||||||
ands r0, r1
|
|
||||||
cmp r0, 0
|
|
||||||
beq _08086CA4
|
|
||||||
movs r0, 0x1
|
|
||||||
b _08086CAE
|
|
||||||
.align 2, 0
|
|
||||||
_08086C9C: .4byte gPlayerAvatar
|
|
||||||
_08086CA0: .4byte gObjectEvents
|
|
||||||
_08086CA4:
|
|
||||||
movs r0, 0x8
|
|
||||||
ands r0, r1
|
|
||||||
cmp r0, 0
|
|
||||||
beq _08086CC0
|
|
||||||
movs r0, 0x2
|
|
||||||
_08086CAE:
|
|
||||||
bl GetPlayerAvatarGraphicsIdByStateId
|
|
||||||
adds r1, r0, 0
|
|
||||||
lsls r1, 24
|
|
||||||
lsrs r1, 24
|
|
||||||
adds r0, r4, 0
|
|
||||||
bl ObjectEventSetGraphicsId
|
|
||||||
b _08086CD2
|
|
||||||
_08086CC0:
|
|
||||||
movs r0, 0
|
|
||||||
bl GetPlayerAvatarGraphicsIdByStateId
|
|
||||||
adds r1, r0, 0
|
|
||||||
lsls r1, 24
|
|
||||||
lsrs r1, 24
|
|
||||||
adds r0, r4, 0
|
|
||||||
bl ObjectEventSetGraphicsId
|
|
||||||
_08086CD2:
|
|
||||||
ldrb r0, [r4, 0x18]
|
|
||||||
lsls r0, 28
|
|
||||||
lsrs r0, 28
|
|
||||||
bl GetFaceDirectionMovementAction
|
|
||||||
adds r1, r0, 0
|
|
||||||
lsls r1, 24
|
|
||||||
lsrs r1, 24
|
|
||||||
adds r0, r4, 0
|
|
||||||
bl ObjectEventForceSetSpecialAnim
|
|
||||||
ldrh r0, [r6, 0x8]
|
|
||||||
adds r0, 0x1
|
|
||||||
strh r0, [r6, 0x8]
|
|
||||||
_08086CEE:
|
|
||||||
pop {r4-r6}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
thumb_func_end Unk41Effect_3
|
|
||||||
|
|
||||||
thumb_func_start Unk41Effect_4
|
|
||||||
Unk41Effect_4: @ 8086CF4
|
|
||||||
push {r4,lr}
|
|
||||||
ldr r4, _08086D2C @ =gPlayerAvatar
|
|
||||||
ldrb r1, [r4, 0x5]
|
|
||||||
lsls r0, r1, 3
|
|
||||||
adds r0, r1
|
|
||||||
lsls r0, 2
|
|
||||||
ldr r1, _08086D30 @ =gObjectEvents
|
|
||||||
adds r0, r1
|
|
||||||
bl ObjectEventClearHeldMovementIfFinished
|
|
||||||
lsls r0, 24
|
|
||||||
cmp r0, 0
|
|
||||||
beq _08086D26
|
|
||||||
movs r0, 0
|
|
||||||
strb r0, [r4, 0x6]
|
|
||||||
movs r0, 0x41
|
|
||||||
bl FieldEffectActiveListRemove
|
|
||||||
ldr r0, _08086D34 @ =Task_FldEffUnk41
|
|
||||||
bl FindTaskIdByFunc
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
bl DestroyTask
|
|
||||||
_08086D26:
|
|
||||||
pop {r4}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_08086D2C: .4byte gPlayerAvatar
|
|
||||||
_08086D30: .4byte gObjectEvents
|
|
||||||
_08086D34: .4byte Task_FldEffUnk41
|
|
||||||
thumb_func_end Unk41Effect_4
|
|
||||||
|
|
||||||
thumb_func_start sub_8086D38
|
|
||||||
sub_8086D38: @ 8086D38
|
|
||||||
push {r4,lr}
|
push {r4,lr}
|
||||||
ldr r0, _08086D84 @ =gFieldEffectObjectTemplatePointers
|
ldr r0, _08086D84 @ =gFieldEffectObjectTemplatePointers
|
||||||
ldr r0, [r0, 0x68]
|
ldr r0, [r0, 0x68]
|
||||||
@@ -251,7 +47,7 @@ _08086D84: .4byte gFieldEffectObjectTemplatePointers
|
|||||||
_08086D88: .4byte gSprites
|
_08086D88: .4byte gSprites
|
||||||
_08086D8C: .4byte sub_8086D94
|
_08086D8C: .4byte sub_8086D94
|
||||||
_08086D90: .4byte gFieldEffectArguments
|
_08086D90: .4byte gFieldEffectArguments
|
||||||
thumb_func_end sub_8086D38
|
thumb_func_end FldEff_NpcFlyOut
|
||||||
|
|
||||||
thumb_func_start sub_8086D94
|
thumb_func_start sub_8086D94
|
||||||
sub_8086D94: @ 8086D94
|
sub_8086D94: @ 8086D94
|
||||||
@@ -321,7 +117,7 @@ _08086E0C: .4byte gSprites
|
|||||||
thumb_func_start FldEff_UseFly
|
thumb_func_start FldEff_UseFly
|
||||||
FldEff_UseFly: @ 8086E10
|
FldEff_UseFly: @ 8086E10
|
||||||
push {lr}
|
push {lr}
|
||||||
ldr r0, _08086E34 @ =sub_8086E40
|
ldr r0, _08086E34 @ =Task_UseFly
|
||||||
movs r1, 0xFE
|
movs r1, 0xFE
|
||||||
bl CreateTask
|
bl CreateTask
|
||||||
lsls r0, 24
|
lsls r0, 24
|
||||||
@@ -338,18 +134,18 @@ FldEff_UseFly: @ 8086E10
|
|||||||
pop {r1}
|
pop {r1}
|
||||||
bx r1
|
bx r1
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
_08086E34: .4byte sub_8086E40
|
_08086E34: .4byte Task_UseFly
|
||||||
_08086E38: .4byte gTasks
|
_08086E38: .4byte gTasks
|
||||||
_08086E3C: .4byte gFieldEffectArguments
|
_08086E3C: .4byte gFieldEffectArguments
|
||||||
thumb_func_end FldEff_UseFly
|
thumb_func_end FldEff_UseFly
|
||||||
|
|
||||||
thumb_func_start sub_8086E40
|
thumb_func_start Task_UseFly
|
||||||
sub_8086E40: @ 8086E40
|
Task_UseFly: @ 8086E40
|
||||||
push {lr}
|
push {lr}
|
||||||
adds r1, r0, 0
|
adds r1, r0, 0
|
||||||
lsls r1, 24
|
lsls r1, 24
|
||||||
lsrs r1, 24
|
lsrs r1, 24
|
||||||
ldr r3, _08086E68 @ =gUnknown_83CC178
|
ldr r3, _08086E68 @ =sUseFlyEffectFuncs
|
||||||
ldr r2, _08086E6C @ =gTasks
|
ldr r2, _08086E6C @ =gTasks
|
||||||
lsls r0, r1, 2
|
lsls r0, r1, 2
|
||||||
adds r0, r1
|
adds r0, r1
|
||||||
@@ -364,12 +160,12 @@ sub_8086E40: @ 8086E40
|
|||||||
pop {r0}
|
pop {r0}
|
||||||
bx r0
|
bx r0
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
_08086E68: .4byte gUnknown_83CC178
|
_08086E68: .4byte sUseFlyEffectFuncs
|
||||||
_08086E6C: .4byte gTasks
|
_08086E6C: .4byte gTasks
|
||||||
thumb_func_end sub_8086E40
|
thumb_func_end Task_UseFly
|
||||||
|
|
||||||
thumb_func_start sub_8086E70
|
thumb_func_start UseFlyEffect_1
|
||||||
sub_8086E70: @ 8086E70
|
UseFlyEffect_1: @ 8086E70
|
||||||
push {r4-r6,lr}
|
push {r4-r6,lr}
|
||||||
adds r5, r0, 0
|
adds r5, r0, 0
|
||||||
ldr r6, _08086EC0 @ =gPlayerAvatar
|
ldr r6, _08086EC0 @ =gPlayerAvatar
|
||||||
@@ -409,10 +205,10 @@ _08086EB8:
|
|||||||
.align 2, 0
|
.align 2, 0
|
||||||
_08086EC0: .4byte gPlayerAvatar
|
_08086EC0: .4byte gPlayerAvatar
|
||||||
_08086EC4: .4byte gObjectEvents
|
_08086EC4: .4byte gObjectEvents
|
||||||
thumb_func_end sub_8086E70
|
thumb_func_end UseFlyEffect_1
|
||||||
|
|
||||||
thumb_func_start sub_8086EC8
|
thumb_func_start UseFlyEffect_2
|
||||||
sub_8086EC8: @ 8086EC8
|
UseFlyEffect_2: @ 8086EC8
|
||||||
push {r4,lr}
|
push {r4,lr}
|
||||||
adds r4, r0, 0
|
adds r4, r0, 0
|
||||||
ldr r0, _08086F00 @ =gPlayerAvatar
|
ldr r0, _08086F00 @ =gPlayerAvatar
|
||||||
@@ -443,10 +239,10 @@ _08086EF8:
|
|||||||
_08086F00: .4byte gPlayerAvatar
|
_08086F00: .4byte gPlayerAvatar
|
||||||
_08086F04: .4byte gObjectEvents
|
_08086F04: .4byte gObjectEvents
|
||||||
_08086F08: .4byte gFieldEffectArguments
|
_08086F08: .4byte gFieldEffectArguments
|
||||||
thumb_func_end sub_8086EC8
|
thumb_func_end UseFlyEffect_2
|
||||||
|
|
||||||
thumb_func_start sub_8086F0C
|
thumb_func_start UseFlyEffect_3
|
||||||
sub_8086F0C: @ 8086F0C
|
UseFlyEffect_3: @ 8086F0C
|
||||||
push {r4,r5,lr}
|
push {r4,r5,lr}
|
||||||
adds r4, r0, 0
|
adds r4, r0, 0
|
||||||
movs r0, 0x6
|
movs r0, 0x6
|
||||||
@@ -487,10 +283,10 @@ _08086F54:
|
|||||||
.align 2, 0
|
.align 2, 0
|
||||||
_08086F5C: .4byte gPlayerAvatar
|
_08086F5C: .4byte gPlayerAvatar
|
||||||
_08086F60: .4byte gObjectEvents
|
_08086F60: .4byte gObjectEvents
|
||||||
thumb_func_end sub_8086F0C
|
thumb_func_end UseFlyEffect_3
|
||||||
|
|
||||||
thumb_func_start sub_8086F64
|
thumb_func_start UseFlyEffect_4
|
||||||
sub_8086F64: @ 8086F64
|
UseFlyEffect_4: @ 8086F64
|
||||||
push {r4,lr}
|
push {r4,lr}
|
||||||
adds r4, r0, 0
|
adds r4, r0, 0
|
||||||
ldrb r0, [r4, 0xA]
|
ldrb r0, [r4, 0xA]
|
||||||
@@ -521,10 +317,10 @@ _08086F98:
|
|||||||
.align 2, 0
|
.align 2, 0
|
||||||
_08086FA0: .4byte gPlayerAvatar
|
_08086FA0: .4byte gPlayerAvatar
|
||||||
_08086FA4: .4byte gObjectEvents
|
_08086FA4: .4byte gObjectEvents
|
||||||
thumb_func_end sub_8086F64
|
thumb_func_end UseFlyEffect_4
|
||||||
|
|
||||||
thumb_func_start sub_8086FA8
|
thumb_func_start UseFlyEffect_5
|
||||||
sub_8086FA8: @ 8086FA8
|
UseFlyEffect_5: @ 8086FA8
|
||||||
push {r4,lr}
|
push {r4,lr}
|
||||||
adds r4, r0, 0
|
adds r4, r0, 0
|
||||||
ldr r0, _08086FF4 @ =gPlayerAvatar
|
ldr r0, _08086FF4 @ =gPlayerAvatar
|
||||||
@@ -564,10 +360,10 @@ _08086FEC:
|
|||||||
.align 2, 0
|
.align 2, 0
|
||||||
_08086FF4: .4byte gPlayerAvatar
|
_08086FF4: .4byte gPlayerAvatar
|
||||||
_08086FF8: .4byte gObjectEvents
|
_08086FF8: .4byte gObjectEvents
|
||||||
thumb_func_end sub_8086FA8
|
thumb_func_end UseFlyEffect_5
|
||||||
|
|
||||||
thumb_func_start sub_8086FFC
|
thumb_func_start UseFlyEffect_6
|
||||||
sub_8086FFC: @ 8086FFC
|
UseFlyEffect_6: @ 8086FFC
|
||||||
push {r4,r5,lr}
|
push {r4,r5,lr}
|
||||||
adds r5, r0, 0
|
adds r5, r0, 0
|
||||||
ldrh r0, [r5, 0xC]
|
ldrh r0, [r5, 0xC]
|
||||||
@@ -619,10 +415,10 @@ _0808705A:
|
|||||||
_08087060: .4byte gPlayerAvatar
|
_08087060: .4byte gPlayerAvatar
|
||||||
_08087064: .4byte gObjectEvents
|
_08087064: .4byte gObjectEvents
|
||||||
_08087068: .4byte gSprites
|
_08087068: .4byte gSprites
|
||||||
thumb_func_end sub_8086FFC
|
thumb_func_end UseFlyEffect_6
|
||||||
|
|
||||||
thumb_func_start sub_808706C
|
thumb_func_start UseFlyEffect_7
|
||||||
sub_808706C: @ 808706C
|
UseFlyEffect_7: @ 808706C
|
||||||
push {r4,r5,lr}
|
push {r4,r5,lr}
|
||||||
adds r5, r0, 0
|
adds r5, r0, 0
|
||||||
ldrh r0, [r5, 0xC]
|
ldrh r0, [r5, 0xC]
|
||||||
@@ -700,10 +496,10 @@ _08087108: .4byte gObjectEvents
|
|||||||
_0808710C: .4byte gSprites
|
_0808710C: .4byte gSprites
|
||||||
_08087110: .4byte gSaveBlock2Ptr
|
_08087110: .4byte gSaveBlock2Ptr
|
||||||
_08087114: .4byte sub_8087828
|
_08087114: .4byte sub_8087828
|
||||||
thumb_func_end sub_808706C
|
thumb_func_end UseFlyEffect_7
|
||||||
|
|
||||||
thumb_func_start sub_8087118
|
thumb_func_start UseFlyEffect_8
|
||||||
sub_8087118: @ 8087118
|
UseFlyEffect_8: @ 8087118
|
||||||
push {r4,lr}
|
push {r4,lr}
|
||||||
adds r4, r0, 0
|
adds r4, r0, 0
|
||||||
ldrb r0, [r4, 0xA]
|
ldrb r0, [r4, 0xA]
|
||||||
@@ -719,10 +515,10 @@ _08087132:
|
|||||||
pop {r4}
|
pop {r4}
|
||||||
pop {r0}
|
pop {r0}
|
||||||
bx r0
|
bx r0
|
||||||
thumb_func_end sub_8087118
|
thumb_func_end UseFlyEffect_8
|
||||||
|
|
||||||
thumb_func_start sub_8087138
|
thumb_func_start UseFlyEffect_9
|
||||||
sub_8087138: @ 8087138
|
UseFlyEffect_9: @ 8087138
|
||||||
push {lr}
|
push {lr}
|
||||||
ldr r0, _08087160 @ =gPaletteFade
|
ldr r0, _08087160 @ =gPaletteFade
|
||||||
ldrb r1, [r0, 0x7]
|
ldrb r1, [r0, 0x7]
|
||||||
@@ -732,7 +528,7 @@ sub_8087138: @ 8087138
|
|||||||
bne _0808715A
|
bne _0808715A
|
||||||
movs r0, 0x1F
|
movs r0, 0x1F
|
||||||
bl FieldEffectActiveListRemove
|
bl FieldEffectActiveListRemove
|
||||||
ldr r0, _08087164 @ =sub_8086E40
|
ldr r0, _08087164 @ =Task_UseFly
|
||||||
bl FindTaskIdByFunc
|
bl FindTaskIdByFunc
|
||||||
lsls r0, 24
|
lsls r0, 24
|
||||||
lsrs r0, 24
|
lsrs r0, 24
|
||||||
@@ -742,8 +538,8 @@ _0808715A:
|
|||||||
bx r0
|
bx r0
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
_08087160: .4byte gPaletteFade
|
_08087160: .4byte gPaletteFade
|
||||||
_08087164: .4byte sub_8086E40
|
_08087164: .4byte Task_UseFly
|
||||||
thumb_func_end sub_8087138
|
thumb_func_end UseFlyEffect_9
|
||||||
|
|
||||||
thumb_func_start sub_8087168
|
thumb_func_start sub_8087168
|
||||||
sub_8087168: @ 8087168
|
sub_8087168: @ 8087168
|
||||||
|
|||||||
+10
-17
@@ -6,23 +6,16 @@
|
|||||||
.section .rodata
|
.section .rodata
|
||||||
.align 2
|
.align 2
|
||||||
|
|
||||||
.align 2
|
sUseFlyEffectFuncs:: @ 83CC178 dataptr (incomplete)
|
||||||
sUnk41EffectFuncs:: @ 83CC168 dataptr
|
.4byte UseFlyEffect_1
|
||||||
.4byte Unk41Effect_1
|
.4byte UseFlyEffect_2
|
||||||
.4byte Unk41Effect_2
|
.4byte UseFlyEffect_3
|
||||||
.4byte Unk41Effect_3
|
.4byte UseFlyEffect_4
|
||||||
.4byte Unk41Effect_4
|
.4byte UseFlyEffect_5
|
||||||
|
.4byte UseFlyEffect_6
|
||||||
gUnknown_83CC178:: @ 83CC178 dataptr (incomplete)
|
.4byte UseFlyEffect_7
|
||||||
.4byte sub_8086E70
|
.4byte UseFlyEffect_8
|
||||||
.4byte sub_8086EC8
|
.4byte UseFlyEffect_9
|
||||||
.4byte sub_8086F0C
|
|
||||||
.4byte sub_8086F64
|
|
||||||
.4byte sub_8086FA8
|
|
||||||
.4byte sub_8086FFC
|
|
||||||
.4byte sub_808706C
|
|
||||||
.4byte sub_8087118
|
|
||||||
.4byte sub_8087138
|
|
||||||
|
|
||||||
gUnknown_83CC19C:: @ 83CC19C affineanimcmd
|
gUnknown_83CC19C:: @ 83CC19C affineanimcmd
|
||||||
obj_rot_scal_anim_frame 8, 8, 226, 0
|
obj_rot_scal_anim_frame 8, 8, 226, 0
|
||||||
|
|||||||
@@ -67,7 +67,7 @@ gFieldEffectScriptPointers:: @ 81D96AC
|
|||||||
.4byte gFldEffScript_HallOfFameRecord
|
.4byte gFldEffScript_HallOfFameRecord
|
||||||
.4byte gFldEffScript_UseTeleport
|
.4byte gFldEffScript_UseTeleport
|
||||||
.4byte gFldEffScript_SmileyFaceIcon
|
.4byte gFldEffScript_SmileyFaceIcon
|
||||||
.4byte gFldEffScript_Unk41
|
.4byte gFldEffScript_UseVsSeeker
|
||||||
.4byte gFldEffScript_DoubleExclMarkIcon
|
.4byte gFldEffScript_DoubleExclMarkIcon
|
||||||
.4byte gFldEffScript_Unk43
|
.4byte gFldEffScript_Unk43
|
||||||
.4byte gFldEffScript_Unk44
|
.4byte gFldEffScript_Unk44
|
||||||
@@ -192,7 +192,7 @@ gFldEffScript_MountainDisguise:: @ 81D98AC
|
|||||||
end
|
end
|
||||||
|
|
||||||
gFldEffScript_NpcflyOut:: @ 81D98B2
|
gFldEffScript_NpcflyOut:: @ 81D98B2
|
||||||
callnative sub_8086D38
|
callnative FldEff_NpcFlyOut
|
||||||
end
|
end
|
||||||
|
|
||||||
gFldEffScript_UseFly:: @ 81D98B8
|
gFldEffScript_UseFly:: @ 81D98B8
|
||||||
@@ -325,8 +325,8 @@ gFldEffScript_SmileyFaceIcon:: @ 81D998C
|
|||||||
callnative FldEff_SmileyFaceIcon
|
callnative FldEff_SmileyFaceIcon
|
||||||
end
|
end
|
||||||
|
|
||||||
gFldEffScript_Unk41:: @ 81D9992
|
gFldEffScript_UseVsSeeker:: @ 81D9992
|
||||||
callnative FldEff_Unk41
|
callnative FldEff_UseVsSeeker
|
||||||
end
|
end
|
||||||
|
|
||||||
gFldEffScript_DoubleExclMarkIcon:: @ 81D9998
|
gFldEffScript_DoubleExclMarkIcon:: @ 81D9998
|
||||||
|
|||||||
@@ -66,7 +66,7 @@
|
|||||||
#define FLDEFF_HALL_OF_FAME_RECORD 62
|
#define FLDEFF_HALL_OF_FAME_RECORD 62
|
||||||
#define FLDEFF_USE_TELEPORT 63
|
#define FLDEFF_USE_TELEPORT 63
|
||||||
#define FLDEFF_SMILEY_FACE_ICON 64
|
#define FLDEFF_SMILEY_FACE_ICON 64
|
||||||
#define FLDEFF_UNK_41 65 // TODO: related to vs_seeker
|
#define FLDEFF_USE_VS_SEEKER 65 // TODO: related to vs_seeker
|
||||||
#define FLDEFF_DOUBLE_EXCL_MARK_ICON 66
|
#define FLDEFF_DOUBLE_EXCL_MARK_ICON 66
|
||||||
#define FLDEFF_UNK_43 67 // TODO: related to deoxys
|
#define FLDEFF_UNK_43 67 // TODO: related to deoxys
|
||||||
#define FLDEFF_UNK_44 68 // TODO: related to ???
|
#define FLDEFF_UNK_44 68 // TODO: related to ???
|
||||||
|
|||||||
@@ -36,5 +36,6 @@ bool32 sub_805DC24(void);
|
|||||||
bool8 PartyHasMonWithSurf(void);
|
bool8 PartyHasMonWithSurf(void);
|
||||||
bool8 IsPlayerSurfingNorth(void);
|
bool8 IsPlayerSurfingNorth(void);
|
||||||
void player_get_pos_including_state_based_drift(s16 *x, s16 *y);
|
void player_get_pos_including_state_based_drift(s16 *x, s16 *y);
|
||||||
|
void sub_805CBE8(void);
|
||||||
|
|
||||||
#endif //GUARD_FIELD_PLAYER_AVATAR_H
|
#endif //GUARD_FIELD_PLAYER_AVATAR_H
|
||||||
|
|||||||
@@ -51,5 +51,6 @@ void sub_8110840(void *oldSave);
|
|||||||
void sub_8112F18(u8 windowId);
|
void sub_8112F18(u8 windowId);
|
||||||
bool8 sub_8111C2C(void);
|
bool8 sub_8111C2C(void);
|
||||||
void sub_81128BC(u8 a0);
|
void sub_81128BC(u8 a0);
|
||||||
|
void sub_811278C(u8, u8);
|
||||||
|
|
||||||
#endif //GUARD_QUEST_LOG_H
|
#endif //GUARD_QUEST_LOG_H
|
||||||
|
|||||||
@@ -2967,3 +2967,75 @@ void UseSurfEffect_5(struct Task * task)
|
|||||||
HelpSystem_SetSomeVariable2(22);
|
HelpSystem_SetSomeVariable2(22);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Task_FldEffUseVsSeeker(u8 taskId);
|
||||||
|
void UseVsSeekerEffect_1(struct Task * task);
|
||||||
|
void UseVsSeekerEffect_2(struct Task * task);
|
||||||
|
void UseVsSeekerEffect_3(struct Task * task);
|
||||||
|
void UseVsSeekerEffect_4(struct Task * task);
|
||||||
|
|
||||||
|
void (*const sUseVsSeekerEffectFuncs[])(struct Task * task) = {
|
||||||
|
UseVsSeekerEffect_1,
|
||||||
|
UseVsSeekerEffect_2,
|
||||||
|
UseVsSeekerEffect_3,
|
||||||
|
UseVsSeekerEffect_4
|
||||||
|
};
|
||||||
|
|
||||||
|
u32 FldEff_UseVsSeeker(void)
|
||||||
|
{
|
||||||
|
if (gQuestLogState == QL_STATE_1)
|
||||||
|
sub_811278C(8, 89);
|
||||||
|
CreateTask(Task_FldEffUseVsSeeker, 0xFF);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Task_FldEffUseVsSeeker(u8 taskId)
|
||||||
|
{
|
||||||
|
sUseVsSeekerEffectFuncs[gTasks[taskId].data[0]](&gTasks[taskId]);
|
||||||
|
}
|
||||||
|
|
||||||
|
void UseVsSeekerEffect_1(struct Task * task)
|
||||||
|
{
|
||||||
|
ScriptContext2_Enable();
|
||||||
|
FreezeObjectEvents();
|
||||||
|
gPlayerAvatar.preventStep = TRUE;
|
||||||
|
task->data[0]++;
|
||||||
|
}
|
||||||
|
|
||||||
|
void UseVsSeekerEffect_2(struct Task * task)
|
||||||
|
{
|
||||||
|
struct ObjectEvent * playerObj = &gObjectEvents[gPlayerAvatar.objectEventId];
|
||||||
|
if (!ObjectEventIsMovementOverridden(playerObj) || ObjectEventClearHeldMovementIfFinished(playerObj))
|
||||||
|
{
|
||||||
|
sub_805CBE8();
|
||||||
|
ObjectEventSetHeldMovement(playerObj, MOVEMENT_ACTION_START_ANIM_IN_DIRECTION);
|
||||||
|
task->data[0]++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void UseVsSeekerEffect_3(struct Task * task)
|
||||||
|
{
|
||||||
|
struct ObjectEvent * playerObj = &gObjectEvents[gPlayerAvatar.objectEventId];
|
||||||
|
if (ObjectEventClearHeldMovementIfFinished(playerObj))
|
||||||
|
{
|
||||||
|
if (gPlayerAvatar.flags & (PLAYER_AVATAR_FLAG_ACRO_BIKE | PLAYER_AVATAR_FLAG_MACH_BIKE))
|
||||||
|
ObjectEventSetGraphicsId(playerObj, GetPlayerAvatarGraphicsIdByStateId(1));
|
||||||
|
else if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_SURFING)
|
||||||
|
ObjectEventSetGraphicsId(playerObj, GetPlayerAvatarGraphicsIdByStateId(2));
|
||||||
|
else
|
||||||
|
ObjectEventSetGraphicsId(playerObj, GetPlayerAvatarGraphicsIdByStateId(0));
|
||||||
|
ObjectEventForceSetSpecialAnim(playerObj, GetFaceDirectionMovementAction(playerObj->facingDirection));
|
||||||
|
task->data[0]++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void UseVsSeekerEffect_4(struct Task * task)
|
||||||
|
{
|
||||||
|
struct ObjectEvent * playerObj = &gObjectEvents[gPlayerAvatar.objectEventId];
|
||||||
|
if (ObjectEventClearHeldMovementIfFinished(playerObj))
|
||||||
|
{
|
||||||
|
gPlayerAvatar.preventStep = FALSE;
|
||||||
|
FieldEffectActiveListRemove(FLDEFF_USE_VS_SEEKER);
|
||||||
|
DestroyTask(FindTaskIdByFunc(Task_FldEffUseVsSeeker));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -156,13 +156,13 @@ static void sub_8150708(void)
|
|||||||
|
|
||||||
static void sub_815077C(void)
|
static void sub_815077C(void)
|
||||||
{
|
{
|
||||||
FieldEffectStart(FLDEFF_UNK_41);
|
FieldEffectStart(FLDEFF_USE_VS_SEEKER);
|
||||||
CreateTask(sub_8150794, 0x00);
|
CreateTask(sub_8150794, 0x00);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sub_8150794(u8 taskId)
|
static void sub_8150794(u8 taskId)
|
||||||
{
|
{
|
||||||
if (!FieldEffectActiveListContains(FLDEFF_UNK_41))
|
if (!FieldEffectActiveListContains(FLDEFF_USE_VS_SEEKER))
|
||||||
{
|
{
|
||||||
UnfreezeObjectEvents();
|
UnfreezeObjectEvents();
|
||||||
ScriptContext2_Disable();
|
ScriptContext2_Disable();
|
||||||
|
|||||||
+2
-2
@@ -748,7 +748,7 @@ void Task_VsSeeker_0(u8 taskId)
|
|||||||
else if (respval == 2)
|
else if (respval == 2)
|
||||||
{
|
{
|
||||||
ItemUse_SetQuestLogEvent(QL_EVENT_USED_ITEM, 0, gSpecialVar_ItemId, 0xffff);
|
ItemUse_SetQuestLogEvent(QL_EVENT_USED_ITEM, 0, gSpecialVar_ItemId, 0xffff);
|
||||||
FieldEffectStart(FLDEFF_UNK_41); // TODO: name this enum
|
FieldEffectStart(FLDEFF_USE_VS_SEEKER); // TODO: name this enum
|
||||||
gTasks[taskId].func = Task_VsSeeker_1;
|
gTasks[taskId].func = Task_VsSeeker_1;
|
||||||
gTasks[taskId].data[0] = 15;
|
gTasks[taskId].data[0] = 15;
|
||||||
}
|
}
|
||||||
@@ -774,7 +774,7 @@ static void Task_VsSeeker_2(u8 taskId)
|
|||||||
data[2]++;
|
data[2]++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!FieldEffectActiveListContains(FLDEFF_UNK_41))
|
if (!FieldEffectActiveListContains(FLDEFF_USE_VS_SEEKER))
|
||||||
{
|
{
|
||||||
data[1] = 0;
|
data[1] = 0;
|
||||||
data[2] = 0;
|
data[2] = 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user