summaryrefslogtreecommitdiff
path: root/asm/field_effect.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/field_effect.s')
-rw-r--r--asm/field_effect.s1545
1 files changed, 0 insertions, 1545 deletions
diff --git a/asm/field_effect.s b/asm/field_effect.s
index 370016f84..b955fe12c 100644
--- a/asm/field_effect.s
+++ b/asm/field_effect.s
@@ -5,1551 +5,6 @@
.text
- thumb_func_start FldEff_NpcFlyOut
-FldEff_NpcFlyOut: @ 8086D38
- push {r4,lr}
- ldr r0, _08086D84 @ =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x68]
- movs r1, 0x78
- movs r2, 0
- movs r3, 0x1
- bl CreateSprite
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r2, r4, 4
- adds r2, r4
- lsls r2, 2
- ldr r0, _08086D88 @ =gSprites
- adds r2, r0
- ldrb r1, [r2, 0x5]
- movs r0, 0xF
- ands r0, r1
- movs r1, 0xD
- negs r1, r1
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldr r0, _08086D8C @ =sub_8086D94
- str r0, [r2, 0x1C]
- ldr r0, _08086D90 @ =gFieldEffectArguments
- ldr r0, [r0]
- strh r0, [r2, 0x30]
- movs r0, 0x97
- bl PlaySE
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08086D84: .4byte gFieldEffectObjectTemplatePointers
-_08086D88: .4byte gSprites
-_08086D8C: .4byte sub_8086D94
-_08086D90: .4byte gFieldEffectArguments
- thumb_func_end FldEff_NpcFlyOut
-
- thumb_func_start sub_8086D94
-sub_8086D94: @ 8086D94
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- movs r1, 0x8C
- bl Cos
- movs r5, 0
- strh r0, [r4, 0x24]
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- movs r1, 0x48
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- adds r0, 0x4
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x32]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _08086DF6
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _08086E0C @ =gSprites
- adds r1, r0
- adds r3, r1, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- movs r0, 0x3
- negs r0, r0
- ands r0, r2
- strb r0, [r3]
- ldrh r0, [r4, 0x24]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r1, 0x20]
- ldrh r0, [r4, 0x26]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- subs r0, 0x8
- strh r0, [r1, 0x22]
- strh r5, [r1, 0x24]
- strh r5, [r1, 0x26]
-_08086DF6:
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0x7F
- ble _08086E06
- adds r0, r4, 0
- movs r1, 0x1E
- bl FieldEffectStop
-_08086E06:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08086E0C: .4byte gSprites
- thumb_func_end sub_8086D94
-
- thumb_func_start FldEff_UseFly
-FldEff_UseFly: @ 8086E10
- push {lr}
- ldr r0, _08086E34 @ =Task_UseFly
- movs r1, 0xFE
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08086E38 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _08086E3C @ =gFieldEffectArguments
- ldr r0, [r0]
- strh r0, [r1, 0xA]
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08086E34: .4byte Task_UseFly
-_08086E38: .4byte gTasks
-_08086E3C: .4byte gFieldEffectArguments
- thumb_func_end FldEff_UseFly
-
- thumb_func_start Task_UseFly
-Task_UseFly: @ 8086E40
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _08086E68 @ =sUseFlyEffectFuncs
- ldr r2, _08086E6C @ =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
-_08086E68: .4byte sUseFlyEffectFuncs
-_08086E6C: .4byte gTasks
- thumb_func_end Task_UseFly
-
- thumb_func_start UseFlyEffect_1
-UseFlyEffect_1: @ 8086E70
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, _08086EC0 @ =gPlayerAvatar
- ldrb r1, [r6, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08086EC4 @ =gObjectEvents
- adds r4, r0, r1
- adds r0, r4, 0
- bl ObjectEventIsMovementOverridden
- lsls r0, 24
- cmp r0, 0
- beq _08086E9A
- adds r0, r4, 0
- bl ObjectEventClearHeldMovementIfFinished
- lsls r0, 24
- cmp r0, 0
- beq _08086EB8
-_08086E9A:
- ldrb r0, [r6]
- strh r0, [r5, 0x26]
- movs r0, 0x1
- strb r0, [r6, 0x6]
- bl SetPlayerAvatarStateMask
- bl sub_805CB70
- adds r0, r4, 0
- movs r1, 0x45
- bl ObjectEventSetHeldMovement
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
-_08086EB8:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08086EC0: .4byte gPlayerAvatar
-_08086EC4: .4byte gObjectEvents
- thumb_func_end UseFlyEffect_1
-
- thumb_func_start UseFlyEffect_2
-UseFlyEffect_2: @ 8086EC8
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _08086F00 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08086F04 @ =gObjectEvents
- adds r0, r1
- bl ObjectEventClearHeldMovementIfFinished
- lsls r0, 24
- cmp r0, 0
- beq _08086EF8
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- ldr r1, _08086F08 @ =gFieldEffectArguments
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- str r0, [r1]
- movs r0, 0x3B
- bl FieldEffectStart
-_08086EF8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08086F00: .4byte gPlayerAvatar
-_08086F04: .4byte gObjectEvents
-_08086F08: .4byte gFieldEffectArguments
- thumb_func_end UseFlyEffect_2
-
- thumb_func_start UseFlyEffect_3
-UseFlyEffect_3: @ 8086F0C
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x6
- bl FieldEffectActiveListContains
- lsls r0, 24
- cmp r0, 0
- bne _08086F54
- ldr r0, _08086F5C @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08086F60 @ =gObjectEvents
- adds r5, r0, r1
- ldrh r1, [r4, 0x26]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08086F44
- ldrb r0, [r5, 0x1A]
- movs r1, 0x2
- bl sub_80DC44C
- ldrb r0, [r5, 0x1A]
- movs r1, 0
- bl sub_80DC478
-_08086F44:
- bl sub_8087168
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_08086F54:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08086F5C: .4byte gPlayerAvatar
-_08086F60: .4byte gObjectEvents
- thumb_func_end UseFlyEffect_3
-
- thumb_func_start UseFlyEffect_4
-UseFlyEffect_4: @ 8086F64
- push {r4,lr}
- adds r4, r0, 0
- ldrb r0, [r4, 0xA]
- bl sub_80871AC
- lsls r0, 24
- cmp r0, 0
- beq _08086F98
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0x10
- strh r0, [r4, 0xC]
- movs r0, 0x1
- bl SetPlayerAvatarTransitionFlags
- ldr r0, _08086FA0 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08086FA4 @ =gObjectEvents
- adds r0, r1
- movs r1, 0x2
- bl ObjectEventSetHeldMovement
-_08086F98:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08086FA0: .4byte gPlayerAvatar
-_08086FA4: .4byte gObjectEvents
- thumb_func_end UseFlyEffect_4
-
- thumb_func_start UseFlyEffect_5
-UseFlyEffect_5: @ 8086FA8
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _08086FF4 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08086FF8 @ =gObjectEvents
- adds r2, r0, r1
- ldrh r1, [r4, 0xC]
- movs r3, 0xC
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _08086FCE
- subs r0, r1, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- cmp r0, 0
- bne _08086FEC
-_08086FCE:
- adds r0, r2, 0
- bl ObjectEventClearHeldMovementIfFinished
- lsls r0, 24
- cmp r0, 0
- beq _08086FEC
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0x97
- bl PlaySE
- ldrb r0, [r4, 0xA]
- bl sub_80871C8
-_08086FEC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08086FF4: .4byte gPlayerAvatar
-_08086FF8: .4byte gObjectEvents
- thumb_func_end UseFlyEffect_5
-
- thumb_func_start UseFlyEffect_6
-UseFlyEffect_6: @ 8086FFC
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r0, [r5, 0xC]
- adds r0, 0x1
- strh r0, [r5, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _0808705A
- ldr r0, _08087060 @ =gPlayerAvatar
- ldrb r0, [r0, 0x5]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _08087064 @ =gObjectEvents
- adds r4, r0
- movs r0, 0x2
- bl GetPlayerAvatarGraphicsIdByStateId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl ObjectEventSetGraphicsId
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08087068 @ =gSprites
- adds r0, r1
- movs r1, 0x16
- bl StartSpriteAnim
- ldrb r0, [r4, 0x1]
- movs r1, 0x10
- orrs r0, r1
- strb r0, [r4, 0x1]
- adds r0, r4, 0
- movs r1, 0x54
- bl ObjectEventSetHeldMovement
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- movs r0, 0
- strh r0, [r5, 0xC]
-_0808705A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08087060: .4byte gPlayerAvatar
-_08087064: .4byte gObjectEvents
-_08087068: .4byte gSprites
- thumb_func_end UseFlyEffect_6
-
- thumb_func_start UseFlyEffect_7
-UseFlyEffect_7: @ 808706C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r0, [r5, 0xC]
- adds r0, 0x1
- strh r0, [r5, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x9
- ble _080870FC
- ldr r0, _08087104 @ =gPlayerAvatar
- ldrb r0, [r0, 0x5]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _08087108 @ =gObjectEvents
- adds r4, r0
- adds r0, r4, 0
- bl ObjectEventClearAnimIfSpecialAnimActive
- ldrb r1, [r4, 0x1]
- movs r0, 0x11
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x1]
- ldrb r1, [r4, 0x2]
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x2]
- ldrb r0, [r5, 0xA]
- ldrb r1, [r4, 0x4]
- bl sub_8087204
- movs r0, 0xA
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _0808710C @ =gSprites
- adds r0, r4
- ldr r1, _08087110 @ =gSaveBlock2Ptr
- ldr r1, [r1]
- ldrb r1, [r1, 0x8]
- lsls r1, 1
- adds r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- bl StartSpriteAnim
- movs r0, 0xA
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0
- bl sub_80877FC
- movs r0, 0xA
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, 0x1C
- adds r0, r4
- ldr r1, _08087114 @ =sub_8087828
- str r1, [r0]
- bl CameraObjectReset2
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
-_080870FC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08087104: .4byte gPlayerAvatar
-_08087108: .4byte gObjectEvents
-_0808710C: .4byte gSprites
-_08087110: .4byte gSaveBlock2Ptr
-_08087114: .4byte sub_8087828
- thumb_func_end UseFlyEffect_7
-
- thumb_func_start UseFlyEffect_8
-UseFlyEffect_8: @ 8087118
- push {r4,lr}
- adds r4, r0, 0
- ldrb r0, [r4, 0xA]
- bl sub_80871AC
- lsls r0, 24
- cmp r0, 0
- beq _08087132
- bl WarpFadeOutScreen
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_08087132:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end UseFlyEffect_8
-
- thumb_func_start UseFlyEffect_9
-UseFlyEffect_9: @ 8087138
- push {lr}
- ldr r0, _08087160 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808715A
- movs r0, 0x1F
- bl FieldEffectActiveListRemove
- ldr r0, _08087164 @ =Task_UseFly
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_0808715A:
- pop {r0}
- bx r0
- .align 2, 0
-_08087160: .4byte gPaletteFade
-_08087164: .4byte Task_UseFly
- thumb_func_end UseFlyEffect_9
-
- thumb_func_start sub_8087168
-sub_8087168: @ 8087168
- push {lr}
- ldr r0, _080871A0 @ =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x68]
- movs r1, 0xFF
- movs r2, 0xB4
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r1, _080871A4 @ =gSprites
- adds r2, r1
- ldrb r3, [r2, 0x5]
- movs r1, 0xF
- ands r1, r3
- movs r3, 0xD
- negs r3, r3
- ands r1, r3
- movs r3, 0x4
- orrs r1, r3
- strb r1, [r2, 0x5]
- ldr r1, _080871A8 @ =sub_8087220
- str r1, [r2, 0x1C]
- pop {r1}
- bx r1
- .align 2, 0
-_080871A0: .4byte gFieldEffectObjectTemplatePointers
-_080871A4: .4byte gSprites
-_080871A8: .4byte sub_8087220
- thumb_func_end sub_8087168
-
- thumb_func_start sub_80871AC
-sub_80871AC: @ 80871AC
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080871C4 @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r1, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- bx lr
- .align 2, 0
-_080871C4: .4byte gSprites
- thumb_func_end sub_80871AC
-
- thumb_func_start sub_80871C8
-sub_80871C8: @ 80871C8
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _080871FC @ =gSprites
- adds r4, r0
- ldr r0, _08087200 @ =sub_80872F0
- str r0, [r4, 0x1C]
- movs r1, 0
- movs r0, 0x78
- strh r0, [r4, 0x20]
- strh r1, [r4, 0x22]
- strh r1, [r4, 0x24]
- strh r1, [r4, 0x26]
- adds r0, r4, 0
- adds r0, 0x2E
- movs r2, 0x10
- bl memset
- movs r0, 0x40
- strh r0, [r4, 0x3A]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080871FC: .4byte gSprites
-_08087200: .4byte sub_80872F0
- thumb_func_end sub_80871C8
-
- thumb_func_start sub_8087204
-sub_8087204: @ 8087204
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _0808721C @ =gSprites
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r3
- strh r1, [r2, 0x3A]
- bx lr
- .align 2, 0
-_0808721C: .4byte gSprites
- thumb_func_end sub_8087204
-
- thumb_func_start sub_8087220
-sub_8087220: @ 8087220
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080872E2
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0808727A
- ldrb r0, [r4, 0x1]
- movs r1, 0x3
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldr r0, _0808725C @ =gUnknown_83CC1CC
- str r0, [r4, 0x10]
- adds r0, r4, 0
- bl InitSpriteAffineAnim
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAffineAnim
- ldr r0, _08087260 @ =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _08087264
- movs r0, 0x80
- b _08087266
- .align 2, 0
-_0808725C: .4byte gUnknown_83CC1CC
-_08087260: .4byte gSaveBlock2Ptr
-_08087264:
- movs r0, 0x76
-_08087266:
- strh r0, [r4, 0x20]
- ldr r0, _080872E8 @ =0x0000ffd0
- strh r0, [r4, 0x22]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- movs r0, 0x40
- strh r0, [r4, 0x30]
- adds r0, 0xC0
- strh r0, [r4, 0x32]
-_0808727A:
- ldrh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 24
- ldrh r1, [r4, 0x30]
- adds r0, r1
- strh r0, [r4, 0x30]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x78
- bl Cos
- strh r0, [r4, 0x24]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x78
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r2, [r4, 0x32]
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- ldr r0, _080872EC @ =0x000007ff
- cmp r1, r0
- bgt _080872B0
- adds r0, r2, 0
- adds r0, 0x60
- strh r0, [r4, 0x32]
-_080872B0:
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0x81
- ble _080872E2
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
- ldrb r1, [r4, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x1]
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- ldrb r1, [r4, 0x1]
- lsrs r1, 6
- ldrb r2, [r4, 0x3]
- lsrs r2, 6
- adds r0, r4, 0
- movs r3, 0
- bl CalcCenterToCornerVec
-_080872E2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080872E8: .4byte 0x0000ffd0
-_080872EC: .4byte 0x000007ff
- thumb_func_end sub_8087220
-
- thumb_func_start sub_80872F0
-sub_80872F0: @ 80872F0
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- movs r1, 0x8C
- bl Cos
- movs r5, 0
- strh r0, [r4, 0x24]
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- movs r1, 0x48
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- adds r0, 0x4
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x32]
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- cmp r0, 0x40
- beq _0808734E
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _08087360 @ =gSprites
- adds r1, r0
- adds r3, r1, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- movs r0, 0x3
- negs r0, r0
- ands r0, r2
- strb r0, [r3]
- ldrh r0, [r4, 0x24]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r1, 0x20]
- ldrh r0, [r4, 0x26]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- subs r0, 0x8
- strh r0, [r1, 0x22]
- strh r5, [r1, 0x24]
- strh r5, [r1, 0x26]
-_0808734E:
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0x7F
- ble _0808735A
- movs r0, 0x1
- strh r0, [r4, 0x3C]
-_0808735A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08087360: .4byte gSprites
- thumb_func_end sub_80872F0
-
- thumb_func_start sub_8087364
-sub_8087364: @ 8087364
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0808744E
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080873C4
- ldrb r0, [r4, 0x1]
- movs r1, 0x3
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldr r0, _080873A0 @ =gUnknown_83CC1CC
- str r0, [r4, 0x10]
- adds r0, r4, 0
- bl InitSpriteAffineAnim
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- ldr r0, _080873A4 @ =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _080873A8
- movs r0, 0x70
- b _080873AA
- .align 2, 0
-_080873A0: .4byte gUnknown_83CC1CC
-_080873A4: .4byte gSaveBlock2Ptr
-_080873A8:
- movs r0, 0x64
-_080873AA:
- strh r0, [r4, 0x20]
- ldr r0, _08087454 @ =0x0000ffe0
- strh r0, [r4, 0x22]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- movs r0, 0xF0
- strh r0, [r4, 0x30]
- movs r0, 0x80
- lsls r0, 4
- strh r0, [r4, 0x32]
- movs r0, 0x80
- strh r0, [r4, 0x36]
-_080873C4:
- ldrh r1, [r4, 0x32]
- lsls r1, 16
- asrs r1, 24
- ldrh r2, [r4, 0x30]
- adds r2, r1
- ldrh r0, [r4, 0x34]
- adds r0, r1
- strh r0, [r4, 0x34]
- movs r0, 0xFF
- ands r2, r0
- strh r2, [r4, 0x30]
- movs r3, 0x30
- ldrsh r0, [r4, r3]
- movs r1, 0x20
- bl Cos
- strh r0, [r4, 0x24]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x78
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r1, [r4, 0x32]
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- movs r2, 0x80
- lsls r2, 1
- cmp r0, r2
- ble _08087406
- ldrh r0, [r4, 0x36]
- subs r0, r1, r0
- strh r0, [r4, 0x32]
-_08087406:
- ldrh r1, [r4, 0x36]
- movs r3, 0x36
- ldrsh r0, [r4, r3]
- cmp r0, 0xFF
- bgt _08087416
- adds r0, r1, 0
- adds r0, 0x18
- strh r0, [r4, 0x36]
-_08087416:
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0xFF
- bgt _08087420
- strh r2, [r4, 0x32]
-_08087420:
- movs r2, 0x34
- ldrsh r0, [r4, r2]
- cmp r0, 0x3B
- ble _0808744E
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
- ldrb r1, [r4, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x1]
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_0808744E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08087454: .4byte 0x0000ffe0
- thumb_func_end sub_8087364
-
- thumb_func_start sub_8087458
-sub_8087458: @ 8087458
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_80871C8
- ldr r1, _0808747C @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _08087480 @ =sub_8087364
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808747C: .4byte gSprites
-_08087480: .4byte sub_8087364
- thumb_func_end sub_8087458
-
- thumb_func_start FldEff_FlyIn
-FldEff_FlyIn: @ 8087484
- push {lr}
- ldr r0, _08087494 @ =sub_8087498
- movs r1, 0xFE
- bl CreateTask
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08087494: .4byte sub_8087498
- thumb_func_end FldEff_FlyIn
-
- thumb_func_start sub_8087498
-sub_8087498: @ 8087498
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _080874C0 @ =gUnknown_83CC1D4
- ldr r2, _080874C4 @ =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
-_080874C0: .4byte gUnknown_83CC1D4
-_080874C4: .4byte gTasks
- thumb_func_end sub_8087498
-
- thumb_func_start sub_80874C8
-sub_80874C8: @ 80874C8
- push {r4-r6,lr}
- adds r6, r0, 0
- ldr r4, _080875B4 @ =gPlayerAvatar
- ldrb r1, [r4, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080875B8 @ =gObjectEvents
- adds r5, r0, r1
- adds r0, r5, 0
- bl ObjectEventIsMovementOverridden
- lsls r0, 24
- cmp r0, 0
- beq _080874F2
- adds r0, r5, 0
- bl ObjectEventClearHeldMovementIfFinished
- lsls r0, 24
- cmp r0, 0
- beq _080875AE
-_080874F2:
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
- movs r0, 0x21
- strh r0, [r6, 0xC]
- ldrb r0, [r4]
- strh r0, [r6, 0x26]
- movs r0, 0x1
- strb r0, [r4, 0x6]
- bl SetPlayerAvatarStateMask
- ldrh r1, [r6, 0x26]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0808751A
- ldrb r0, [r5, 0x1A]
- movs r1, 0
- bl sub_80DC44C
-_0808751A:
- movs r0, 0x2
- bl GetPlayerAvatarGraphicsIdByStateId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl ObjectEventSetGraphicsId
- bl CameraObjectReset2
- adds r0, r5, 0
- movs r1, 0x3
- bl ObjectEventTurn
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _080875BC @ =gSprites
- adds r0, r4
- movs r1, 0x16
- bl StartSpriteAnim
- ldrb r1, [r5, 0x1]
- movs r0, 0x21
- negs r0, r0
- ands r0, r1
- strb r0, [r5, 0x1]
- bl sub_8087168
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0xA]
- bl sub_80871C8
- ldrb r0, [r6, 0xA]
- ldrb r1, [r5, 0x4]
- bl sub_8087204
- movs r0, 0xA
- ldrsh r1, [r6, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _080875C0 @ =gSaveBlock2Ptr
- ldr r1, [r1]
- ldrb r1, [r1, 0x8]
- lsls r1, 25
- movs r2, 0x80
- lsls r2, 18
- adds r1, r2
- lsrs r1, 24
- bl StartSpriteAnim
- movs r0, 0xA
- ldrsh r1, [r6, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x1
- bl sub_80877FC
- movs r2, 0xA
- ldrsh r1, [r6, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, 0x1C
- adds r0, r4
- ldr r1, _080875C4 @ =sub_8087828
- str r1, [r0]
-_080875AE:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080875B4: .4byte gPlayerAvatar
-_080875B8: .4byte gObjectEvents
-_080875BC: .4byte gSprites
-_080875C0: .4byte gSaveBlock2Ptr
-_080875C4: .4byte sub_8087828
- thumb_func_end sub_80874C8
-
- thumb_func_start sub_80875C8
-sub_80875C8: @ 80875C8
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r0, 0xA
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r6, _08087638 @ =gSprites
- adds r0, r6
- bl sub_80878C0
- ldrh r1, [r5, 0xC]
- movs r2, 0xC
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _080875F2
- subs r0, r1, 0x1
- strh r0, [r5, 0xC]
- lsls r0, 16
- cmp r0, 0
- bne _08087630
-_080875F2:
- ldr r0, _0808763C @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08087640 @ =gObjectEvents
- adds r0, r1
- ldrb r0, [r0, 0x4]
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- adds r4, r6
- ldrb r0, [r5, 0xA]
- movs r1, 0x40
- bl sub_8087204
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- movs r1, 0
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x26]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- strh r1, [r4, 0x24]
- strh r1, [r4, 0x26]
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- strh r1, [r5, 0xC]
-_08087630:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08087638: .4byte gSprites
-_0808763C: .4byte gPlayerAvatar
-_08087640: .4byte gObjectEvents
- thumb_func_end sub_80875C8
-
- thumb_func_start sub_8087644
-sub_8087644: @ 8087644
- push {r4,lr}
- sub sp, 0x24
- adds r4, r0, 0
- ldr r1, _0808768C @ =gUnknown_83CC1F0
- mov r0, sp
- movs r2, 0x24
- bl memcpy
- ldr r0, _08087690 @ =gPlayerAvatar
- ldrb r0, [r0, 0x4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _08087694 @ =gSprites
- adds r1, r0
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- lsls r0, 1
- add r0, sp
- ldrh r0, [r0]
- strh r0, [r1, 0x26]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x11
- ble _08087682
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_08087682:
- add sp, 0x24
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808768C: .4byte gUnknown_83CC1F0
-_08087690: .4byte gPlayerAvatar
-_08087694: .4byte gSprites
- thumb_func_end sub_8087644
-
- thumb_func_start sub_8087698
-sub_8087698: @ 8087698
- push {r4-r6,lr}
- adds r6, r0, 0
- ldrb r0, [r6, 0xA]
- bl sub_80871AC
- lsls r0, 24
- cmp r0, 0
- beq _080876FC
- ldr r0, _08087704 @ =gPlayerAvatar
- ldrb r0, [r0, 0x5]
- lsls r5, r0, 3
- adds r5, r0
- lsls r5, 2
- ldr r0, _08087708 @ =gObjectEvents
- adds r5, r0
- ldrb r0, [r5, 0x4]
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _0808770C @ =gSprites
- adds r4, r0
- ldrb r1, [r5, 0x1]
- movs r0, 0x11
- negs r0, r0
- ands r0, r1
- strb r0, [r5, 0x1]
- movs r0, 0x10
- ldrsh r1, [r5, r0]
- movs r0, 0x12
- ldrsh r2, [r5, r0]
- adds r0, r5, 0
- bl sub_805F724
- movs r0, 0
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- adds r4, 0x3E
- ldrb r0, [r4]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4]
- bl sub_805CB70
- adds r0, r5, 0
- movs r1, 0x45
- bl ObjectEventSetHeldMovement
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
-_080876FC:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08087704: .4byte gPlayerAvatar
-_08087708: .4byte gObjectEvents
-_0808770C: .4byte gSprites
- thumb_func_end sub_8087698
-
- thumb_func_start sub_8087710
-sub_8087710: @ 8087710
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _08087740 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08087744 @ =gObjectEvents
- adds r0, r1
- bl ObjectEventClearHeldMovementIfFinished
- lsls r0, 24
- cmp r0, 0
- beq _08087738
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- ldrb r0, [r4, 0xA]
- bl sub_8087458
-_08087738:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08087740: .4byte gPlayerAvatar
-_08087744: .4byte gObjectEvents
- thumb_func_end sub_8087710
-
- thumb_func_start sub_8087748
-sub_8087748: @ 8087748
- push {r4,lr}
- adds r4, r0, 0
- ldrb r0, [r4, 0xA]
- bl sub_80871AC
- lsls r0, 24
- cmp r0, 0
- beq _08087774
- movs r0, 0xA
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0808777C @ =gSprites
- adds r0, r1
- bl DestroySprite
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0x10
- strh r0, [r4, 0xA]
-_08087774:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808777C: .4byte gSprites
- thumb_func_end sub_8087748
-
- thumb_func_start fishE
-fishE: @ 8087780
- push {r4-r7,lr}
- adds r5, r0, 0
- ldrh r0, [r5, 0xA]
- subs r0, 0x1
- strh r0, [r5, 0xA]
- lsls r0, 16
- cmp r0, 0
- bne _080877EA
- ldr r6, _080877F0 @ =gPlayerAvatar
- ldrb r1, [r6, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080877F4 @ =gObjectEvents
- adds r4, r0, r1
- movs r7, 0
- ldrh r1, [r5, 0x26]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080877B4
- movs r7, 0x2
- ldrb r0, [r4, 0x1A]
- movs r1, 0x1
- bl sub_80DC44C
-_080877B4:
- adds r0, r7, 0
- bl GetPlayerAvatarGraphicsIdByStateId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl ObjectEventSetGraphicsId
- adds r0, r4, 0
- movs r1, 0x1
- bl ObjectEventTurn
- ldrh r0, [r5, 0x26]
- strb r0, [r6]
- movs r0, 0
- strb r0, [r6, 0x6]
- movs r0, 0x20
- bl FieldEffectActiveListRemove
- ldr r0, _080877F8 @ =sub_8087498
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_080877EA:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080877F0: .4byte gPlayerAvatar
-_080877F4: .4byte gObjectEvents
-_080877F8: .4byte sub_8087498
- thumb_func_end fishE
-
- thumb_func_start sub_80877FC
-sub_80877FC: @ 80877FC
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r5, r1, 24
- lsrs r5, 24
- ldrb r0, [r4, 0x1]
- movs r1, 0x3
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldr r0, _08087824 @ =gUnknown_83CC23C
- str r0, [r4, 0x10]
- adds r0, r4, 0
- bl InitSpriteAffineAnim
- adds r0, r4, 0
- adds r1, r5, 0
- bl StartSpriteAffineAnim
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08087824: .4byte gUnknown_83CC23C
- thumb_func_end sub_80877FC
-
- thumb_func_start sub_8087828
-sub_8087828: @ 8087828
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- movs r1, 0xB4
- bl Cos
- movs r5, 0
- strh r0, [r4, 0x24]
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- movs r1, 0x48
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- adds r0, 0x2
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x32]
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- cmp r0, 0x40
- beq _08087886
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _080878BC @ =gSprites
- adds r1, r0
- adds r3, r1, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- movs r0, 0x3
- negs r0, r0
- ands r0, r2
- strb r0, [r3]
- ldrh r0, [r4, 0x24]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r1, 0x20]
- ldrh r0, [r4, 0x26]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- subs r0, 0x8
- strh r0, [r1, 0x22]
- strh r5, [r1, 0x24]
- strh r5, [r1, 0x26]
-_08087886:
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0x7F
- ble _080878B4
- movs r0, 0x1
- strh r0, [r4, 0x3C]
- ldrb r1, [r4, 0x1]
- subs r0, 0x5
- ands r0, r1
- strb r0, [r4, 0x1]
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- ldrb r1, [r4, 0x1]
- lsrs r1, 6
- ldrb r2, [r4, 0x3]
- lsrs r2, 6
- adds r0, r4, 0
- movs r3, 0
- bl CalcCenterToCornerVec
-_080878B4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080878BC: .4byte gSprites
- thumb_func_end sub_8087828
-
- thumb_func_start sub_80878C0
-sub_80878C0: @ 80878C0
- push {r4-r6,lr}
- adds r4, r0, 0
- ldrb r5, [r4, 0x1]
- lsls r0, r5, 30
- cmp r0, 0
- beq _08087916
- ldr r1, _0808791C @ =gOamMatrices
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r3, r0, 27
- lsls r0, r3, 3
- adds r1, r0, r1
- movs r2, 0
- ldrsh r0, [r1, r2]
- movs r2, 0x80
- lsls r2, 1
- cmp r0, r2
- beq _080878EC
- movs r6, 0x6
- ldrsh r0, [r1, r6]
- cmp r0, r2
- bne _08087916
-_080878EC:
- movs r0, 0x4
- negs r0, r0
- ands r0, r5
- strb r0, [r4, 0x1]
- adds r0, r3, 0
- bl FreeOamMatrix
- ldrb r1, [r4, 0x1]
- lsrs r1, 6
- ldrb r2, [r4, 0x3]
- lsrs r2, 6
- adds r0, r4, 0
- movs r3, 0
- bl CalcCenterToCornerVec
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnim
- ldr r0, _08087920 @ =sub_80872F0
- str r0, [r4, 0x1C]
-_08087916:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0808791C: .4byte gOamMatrices
-_08087920: .4byte sub_80872F0
- thumb_func_end sub_80878C0
-
thumb_func_start sub_8087924
sub_8087924: @ 8087924
push {r4-r7,lr}