summaryrefslogtreecommitdiff
path: root/asm/field_effect_helpers.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/field_effect_helpers.s')
-rw-r--r--asm/field_effect_helpers.s4308
1 files changed, 0 insertions, 4308 deletions
diff --git a/asm/field_effect_helpers.s b/asm/field_effect_helpers.s
deleted file mode 100644
index a2f2de676..000000000
--- a/asm/field_effect_helpers.s
+++ /dev/null
@@ -1,4308 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start SetUpReflection
-SetUpReflection: @ 80DAD7C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- adds r4, r1, 0
- lsls r5, r2, 24
- lsrs r5, 24
- movs r0, 0x20
- ldrsh r1, [r4, r0]
- movs r0, 0x22
- ldrsh r2, [r4, r0]
- adds r0, r4, 0
- movs r3, 0x98
- bl CreateCopySpriteAt
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _080DAE2C @ =gSprites
- adds r7, r1, r0
- ldr r0, _080DAE30 @ =sub_80DAF50
- str r0, [r7, 0x1C]
- ldrb r1, [r7, 0x5]
- movs r0, 0xC
- orrs r1, r0
- strb r1, [r7, 0x5]
- ldr r2, _080DAE34 @ =gReflectionEffectPaletteMap
- lsrs r0, r1, 4
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 4
- movs r2, 0xF
- ands r1, r2
- orrs r1, r0
- strb r1, [r7, 0x5]
- movs r1, 0x3F
- adds r1, r7
- mov r8, r1
- ldrb r0, [r1]
- movs r1, 0x40
- orrs r0, r1
- mov r1, r8
- strb r0, [r1]
- ldr r0, _080DAE38 @ =gDummySpriteAnimTable
- str r0, [r7, 0x8]
- adds r0, r7, 0
- movs r1, 0
- bl StartSpriteAnim
- ldr r0, _080DAE3C @ =gDummySpriteAffineAnimTable
- str r0, [r7, 0x10]
- mov r1, r8
- ldrb r0, [r1]
- movs r1, 0x8
- orrs r0, r1
- mov r1, r8
- strb r0, [r1]
- adds r2, r7, 0
- adds r2, 0x42
- ldrb r1, [r2]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r2]
- ldrh r0, [r4, 0x2E]
- strh r0, [r7, 0x2E]
- ldrb r0, [r6, 0x8]
- strh r0, [r7, 0x30]
- strh r5, [r7, 0x3C]
- adds r0, r6, 0
- adds r1, r7, 0
- bl npc_pal_op
- cmp r5, 0
- bne _080DAE22
- ldrb r0, [r7, 0x1]
- movs r1, 0x4
- negs r1, r1
- ands r1, r0
- movs r0, 0x1
- orrs r1, r0
- strb r1, [r7, 0x1]
-_080DAE22:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DAE2C: .4byte gSprites
-_080DAE30: .4byte sub_80DAF50
-_080DAE34: .4byte gReflectionEffectPaletteMap
-_080DAE38: .4byte gDummySpriteAnimTable
-_080DAE3C: .4byte gDummySpriteAffineAnimTable
- thumb_func_end SetUpReflection
-
- thumb_func_start sub_80DAE40
-sub_80DAE40: @ 80DAE40
- push {lr}
- ldrb r0, [r0, 0x5]
- bl GetObjectEventGraphicsInfo
- ldrh r0, [r0, 0xA]
- subs r0, 0x2
- lsls r0, 16
- asrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_80DAE40
-
- thumb_func_start npc_pal_op
-npc_pal_op: @ 80DAE54
- push {r4,r5,lr}
- sub sp, 0x8
- adds r5, r0, 0
- adds r4, r1, 0
- ldr r1, _080DAEAC @ =gUnknown_83FECCC
- mov r0, sp
- movs r2, 0x6
- bl memcpy
- movs r0, 0
- strh r0, [r4, 0x32]
- ldrb r0, [r5, 0x5]
- bl GetObjectEventGraphicsInfo
- ldrb r1, [r0, 0xC]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080DAEB0
- ldrb r0, [r5, 0x1F]
- bl MetatileBehavior_GetBridgeType
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080DAE96
- ldrb r0, [r5, 0x1E]
- bl MetatileBehavior_GetBridgeType
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _080DAEB0
-_080DAE96:
- subs r0, 0x1
- lsls r0, 1
- add r0, sp
- ldrh r0, [r0]
- strh r0, [r4, 0x32]
- ldrb r1, [r4, 0x5]
- lsrs r1, 4
- adds r0, r5, 0
- bl npc_pal_op_A
- b _080DAEBA
- .align 2, 0
-_080DAEAC: .4byte gUnknown_83FECCC
-_080DAEB0:
- ldrb r1, [r4, 0x5]
- lsrs r1, 4
- adds r0, r5, 0
- bl npc_pal_op_B
-_080DAEBA:
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end npc_pal_op
-
- thumb_func_start npc_pal_op_B
-npc_pal_op_B: @ 80DAEC4
- push {r4,lr}
- lsls r1, 24
- lsrs r4, r1, 24
- ldrb r0, [r0, 0x5]
- bl GetObjectEventGraphicsInfo
- adds r2, r0, 0
- ldrh r1, [r2, 0x4]
- ldr r0, _080DAEF0 @ =0x000011ff
- cmp r1, r0
- beq _080DAF18
- ldrb r0, [r2, 0xC]
- movs r1, 0xF
- ands r1, r0
- cmp r1, 0
- bne _080DAEF4
- ldrh r0, [r2, 0x2]
- adds r1, r4, 0
- bl LoadPlayerObjectReflectionPalette
- b _080DAF12
- .align 2, 0
-_080DAEF0: .4byte 0x000011ff
-_080DAEF4:
- cmp r1, 0xA
- bne _080DAF02
- ldrh r0, [r2, 0x2]
- adds r1, r4, 0
- bl LoadSpecialObjectReflectionPalette
- b _080DAF12
-_080DAF02:
- adds r0, r4, 0
- bl GetObjectPaletteTag
- lsls r0, 16
- lsrs r0, 16
- adds r1, r4, 0
- bl PatchObjectPalette
-_080DAF12:
- adds r0, r4, 0
- bl sub_807AA8C
-_080DAF18:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end npc_pal_op_B
-
- thumb_func_start npc_pal_op_A
-npc_pal_op_A: @ 80DAF20
- push {r4,lr}
- lsls r1, 24
- lsrs r4, r1, 24
- ldrb r0, [r0, 0x5]
- bl GetObjectEventGraphicsInfo
- adds r2, r0, 0
- ldrh r1, [r2, 0x4]
- ldr r0, _080DAF4C @ =0x000011ff
- cmp r1, r0
- beq _080DAF44
- adds r0, r1, 0
- adds r1, r4, 0
- bl PatchObjectPalette
- adds r0, r4, 0
- bl sub_807AA8C
-_080DAF44:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DAF4C: .4byte 0x000011ff
- thumb_func_end npc_pal_op_A
-
- thumb_func_start sub_80DAF50
-sub_80DAF50: @ 80DAF50
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r4, r0, 0
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080DAF98 @ =gObjectEvents
- adds r7, r0, r1
- ldrb r1, [r7, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080DAF9C @ =gSprites
- adds r5, r0, r1
- ldr r0, [r7]
- ldr r1, _080DAFA0 @ =0x00020001
- ands r0, r1
- cmp r0, r1
- bne _080DAF88
- ldrb r1, [r7, 0x8]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- cmp r1, r0
- beq _080DAFA4
-_080DAF88:
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- b _080DB0AE
- .align 2, 0
-_080DAF98: .4byte gObjectEvents
-_080DAF9C: .4byte gSprites
-_080DAFA0: .4byte 0x00020001
-_080DAFA4:
- ldr r1, _080DB0BC @ =gReflectionEffectPaletteMap
- ldrb r0, [r5, 0x5]
- lsrs r0, 4
- adds r0, r1
- ldrb r1, [r0]
- lsls r1, 4
- ldrb r2, [r4, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x5]
- ldrb r1, [r5, 0x1]
- lsrs r1, 6
- lsls r1, 6
- ldrb r2, [r4, 0x1]
- movs r3, 0x3F
- adds r0, r3, 0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldrb r0, [r5, 0x3]
- lsrs r0, 6
- lsls r0, 6
- ldrb r2, [r4, 0x3]
- adds r1, r3, 0
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x3]
- ldrb r0, [r5, 0x3]
- lsls r0, 26
- lsrs r0, 27
- movs r2, 0x10
- orrs r0, r2
- lsls r0, 1
- subs r2, 0x4F
- mov r9, r2
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x3]
- ldrh r1, [r5, 0x4]
- lsls r1, 22
- lsrs r1, 22
- ldrh r2, [r4, 0x4]
- ldr r0, _080DB0C0 @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- ldr r0, [r5, 0x18]
- str r0, [r4, 0x18]
- adds r0, r5, 0
- adds r0, 0x42
- ldrb r0, [r0]
- lsls r0, 26
- lsrs r0, 26
- adds r2, r4, 0
- adds r2, 0x42
- ands r3, r0
- ldrb r1, [r2]
- movs r0, 0x40
- negs r0, r0
- ands r0, r1
- orrs r0, r3
- strb r0, [r2]
- movs r0, 0x3E
- adds r0, r5
- mov r8, r0
- ldrb r0, [r0]
- adds r6, r4, 0
- adds r6, 0x3E
- movs r1, 0x4
- ands r1, r0
- ldrb r2, [r6]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r6]
- ldrh r0, [r5, 0x20]
- strh r0, [r4, 0x20]
- adds r0, r7, 0
- bl sub_80DAE40
- ldrh r1, [r5, 0x22]
- adds r0, r1
- ldrh r1, [r4, 0x32]
- adds r1, r0
- strh r1, [r4, 0x22]
- adds r0, r5, 0
- adds r0, 0x28
- ldrb r1, [r0]
- adds r0, r4, 0
- adds r0, 0x28
- strb r1, [r0]
- adds r0, r5, 0
- adds r0, 0x29
- ldrb r0, [r0]
- adds r1, r4, 0
- adds r1, 0x29
- strb r0, [r1]
- ldrh r0, [r5, 0x24]
- strh r0, [r4, 0x24]
- ldrh r0, [r5, 0x26]
- negs r0, r0
- strh r0, [r4, 0x26]
- mov r2, r8
- ldrb r0, [r2]
- movs r1, 0x2
- ands r1, r0
- ldrb r2, [r6]
- movs r0, 0x3
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r6]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080DB0AE
- ldrb r0, [r4, 0x3]
- mov r2, r9
- ands r2, r0
- strb r2, [r4, 0x3]
- ldrb r0, [r5, 0x3]
- lsls r0, 26
- lsrs r0, 27
- movs r1, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080DB0AE
- movs r1, 0x2
- adds r0, r2, 0
- orrs r0, r1
- strb r0, [r4, 0x3]
-_080DB0AE:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DB0BC: .4byte gReflectionEffectPaletteMap
-_080DB0C0: .4byte 0xfffffc00
- thumb_func_end sub_80DAF50
-
- thumb_func_start CreateWarpArrowSprite
-CreateWarpArrowSprite: @ 80DB0C4
- push {r4,lr}
- ldr r0, _080DB10C @ =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x20]
- movs r1, 0
- movs r2, 0
- movs r3, 0x52
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- cmp r0, 0x40
- beq _080DB102
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _080DB110 @ =gSprites
- adds r1, r0
- ldrb r2, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- movs r3, 0x4
- orrs r0, r3
- strb r0, [r1, 0x5]
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x2
- orrs r0, r2
- orrs r0, r3
- strb r0, [r1]
-_080DB102:
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080DB10C: .4byte gFieldEffectObjectTemplatePointers
-_080DB110: .4byte gSprites
- thumb_func_end CreateWarpArrowSprite
-
- thumb_func_start objid_set_invisible
-objid_set_invisible: @ 80DB114
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080DB130 @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
- bx lr
- .align 2, 0
-_080DB130: .4byte gSprites
- thumb_func_end objid_set_invisible
-
- thumb_func_start sub_80DB134
-sub_80DB134: @ 80DB134
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- lsls r2, 16
- lsrs r7, r2, 16
- lsls r3, 16
- lsrs r6, r3, 16
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- ldr r1, _080DB1D8 @ =gSprites
- adds r2, r0, r1
- adds r0, r2, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- bne _080DB17E
- movs r0, 0x2E
- ldrsh r1, [r2, r0]
- lsls r0, r7, 16
- asrs r0, 16
- cmp r1, r0
- bne _080DB17E
- movs r0, 0x30
- ldrsh r1, [r2, r0]
- lsls r0, r6, 16
- asrs r0, 16
- cmp r1, r0
- beq _080DB1CA
-_080DB17E:
- lsls r0, r7, 16
- asrs r0, 16
- lsls r1, r6, 16
- asrs r1, 16
- mov r4, sp
- adds r4, 0x2
- mov r2, sp
- adds r3, r4, 0
- bl SetSpritePosToMapCoords
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- ldr r1, _080DB1D8 @ =gSprites
- adds r2, r0, r1
- mov r0, sp
- ldrh r0, [r0]
- adds r0, 0x8
- strh r0, [r2, 0x20]
- ldrh r0, [r4]
- adds r0, 0x8
- strh r0, [r2, 0x22]
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
- strh r7, [r2, 0x2E]
- strh r6, [r2, 0x30]
- mov r1, r8
- subs r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- adds r0, r2, 0
- bl StartSpriteAnim
-_080DB1CA:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DB1D8: .4byte gSprites
- thumb_func_end sub_80DB134
-
- thumb_func_start oei_shadow
-oei_shadow: @ 80DB1DC
- push {r4,r5,lr}
- ldr r5, _080DB268 @ =gFieldEffectArguments
- ldrb r0, [r5]
- ldrb r1, [r5, 0x4]
- ldrb r2, [r5, 0x8]
- bl GetObjectEventIdByLocalIdAndMap
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080DB26C @ =gObjectEvents
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r0, [r1, 0x5]
- bl GetObjectEventGraphicsInfo
- adds r4, r0, 0
- ldr r2, _080DB270 @ =gFieldEffectObjectTemplatePointers
- ldr r1, _080DB274 @ =gUnknown_83FECD2
- ldrb r0, [r4, 0xC]
- lsls r0, 26
- lsrs r0, 30
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- movs r1, 0
- movs r2, 0
- movs r3, 0x94
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _080DB260
- ldr r0, _080DB278 @ =gSprites
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- ldr r0, [r5]
- strh r0, [r2, 0x2E]
- ldr r0, [r5, 0x4]
- strh r0, [r2, 0x30]
- ldr r0, [r5, 0x8]
- strh r0, [r2, 0x32]
- ldrh r1, [r4, 0xA]
- lsls r1, 16
- asrs r1, 17
- ldr r3, _080DB27C @ =gUnknown_83FECD6
- ldrb r0, [r4, 0xC]
- lsls r0, 26
- lsrs r0, 30
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- subs r1, r0
- strh r1, [r2, 0x34]
-_080DB260:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080DB268: .4byte gFieldEffectArguments
-_080DB26C: .4byte gObjectEvents
-_080DB270: .4byte gFieldEffectObjectTemplatePointers
-_080DB274: .4byte gUnknown_83FECD2
-_080DB278: .4byte gSprites
-_080DB27C: .4byte gUnknown_83FECD6
- thumb_func_end oei_shadow
-
- thumb_func_start oamc_shadow
-oamc_shadow: @ 80DB280
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- ldrh r0, [r5, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r5, 0x30]
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r5, 0x32]
- lsls r2, 24
- lsrs r2, 24
- mov r3, sp
- bl TryGetObjectEventIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- beq _080DB2AE
- adds r0, r5, 0
- movs r1, 0x3
- bl FieldEffectStop
- b _080DB334
-_080DB2AE:
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080DB33C @ =gObjectEvents
- adds r4, r0, r1
- ldrb r0, [r4, 0x4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _080DB340 @ =gSprites
- adds r1, r0
- ldrb r0, [r1, 0x5]
- movs r2, 0xC
- ands r2, r0
- ldrb r3, [r5, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r2
- strb r0, [r5, 0x5]
- ldrh r0, [r1, 0x20]
- strh r0, [r5, 0x20]
- ldrh r0, [r5, 0x34]
- ldrh r1, [r1, 0x22]
- adds r0, r1
- strh r0, [r5, 0x22]
- ldr r0, [r4]
- ldr r1, _080DB344 @ =0x00400001
- ands r0, r1
- cmp r0, r1
- bne _080DB32C
- ldrb r0, [r4, 0x1E]
- bl MetatileBehavior_IsPokeGrass
- lsls r0, 24
- cmp r0, 0
- bne _080DB32C
- ldrb r0, [r4, 0x1E]
- bl MetatileBehavior_IsSurfable
- lsls r0, 24
- cmp r0, 0
- bne _080DB32C
- ldrb r0, [r4, 0x1F]
- bl MetatileBehavior_IsSurfable
- lsls r0, 24
- cmp r0, 0
- bne _080DB32C
- ldrb r0, [r4, 0x1E]
- bl MetatileBehavior_IsReflective
- lsls r0, 24
- cmp r0, 0
- bne _080DB32C
- ldrb r0, [r4, 0x1F]
- bl MetatileBehavior_IsReflective
- lsls r0, 24
- cmp r0, 0
- beq _080DB334
-_080DB32C:
- adds r0, r5, 0
- movs r1, 0x3
- bl FieldEffectStop
-_080DB334:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DB33C: .4byte gObjectEvents
-_080DB340: .4byte gSprites
-_080DB344: .4byte 0x00400001
- thumb_func_end oamc_shadow
-
- thumb_func_start oei_grass_normal
-oei_grass_normal: @ 80DB348
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, _080DB3E0 @ =gFieldEffectArguments
- ldrh r1, [r5]
- mov r0, sp
- strh r1, [r0]
- ldrh r0, [r5, 0x4]
- mov r4, sp
- adds r4, 0x2
- strh r0, [r4]
- mov r0, sp
- adds r1, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8063BC4
- ldr r0, _080DB3E4 @ =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x10]
- mov r1, sp
- movs r2, 0
- ldrsh r1, [r1, r2]
- movs r3, 0
- ldrsh r2, [r4, r3]
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _080DB3D4
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080DB3E8 @ =gSprites
- adds r3, r0, r1
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x3
- ldrb r1, [r5, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r3, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0x5]
- ldr r0, [r5, 0x8]
- strh r0, [r3, 0x2E]
- ldr r0, [r5]
- strh r0, [r3, 0x30]
- ldr r0, [r5, 0x4]
- strh r0, [r3, 0x32]
- ldr r0, [r5, 0x10]
- strh r0, [r3, 0x34]
- ldr r0, [r5, 0x14]
- strh r0, [r3, 0x36]
- ldr r0, [r5, 0x18]
- strh r0, [r3, 0x38]
- ldr r0, [r5, 0x1C]
- cmp r0, 0
- beq _080DB3D4
- adds r0, r3, 0
- movs r1, 0x4
- bl SeekSpriteAnim
-_080DB3D4:
- movs r0, 0
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080DB3E0: .4byte gFieldEffectArguments
-_080DB3E4: .4byte gFieldEffectObjectTemplatePointers
-_080DB3E8: .4byte gSprites
- thumb_func_end oei_grass_normal
-
- thumb_func_start unc_grass_normal
-unc_grass_normal: @ 80DB3EC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r5, r0, 0
- ldrh r0, [r5, 0x38]
- lsrs r4, r0, 8
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r3, _080DB498 @ =gCamera
- ldrb r1, [r3]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080DB438
- ldr r0, _080DB49C @ =gSaveBlock1Ptr
- ldr r2, [r0]
- movs r0, 0x5
- ldrsb r0, [r2, r0]
- cmp r0, r4
- bne _080DB41E
- movs r0, 0x4
- ldrsb r0, [r2, r0]
- cmp r0, r7
- beq _080DB438
-_080DB41E:
- ldr r1, [r3, 0x4]
- ldrh r0, [r5, 0x30]
- subs r0, r1
- strh r0, [r5, 0x30]
- ldr r1, [r3, 0x8]
- ldrh r0, [r5, 0x32]
- subs r0, r1
- strh r0, [r5, 0x32]
- ldrb r1, [r2, 0x5]
- lsls r1, 8
- ldrb r0, [r2, 0x4]
- orrs r0, r1
- strh r0, [r5, 0x38]
-_080DB438:
- ldrh r0, [r5, 0x34]
- lsrs r1, r0, 8
- mov r8, r1
- lsls r0, 24
- lsrs r4, r0, 24
- ldrh r0, [r5, 0x36]
- lsls r0, 24
- lsrs r7, r0, 24
- movs r2, 0x30
- ldrsh r0, [r5, r2]
- movs r2, 0x32
- ldrsh r1, [r5, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r6, r0, 24
- mov r0, r8
- adds r1, r4, 0
- adds r2, r7, 0
- mov r3, sp
- bl TryGetObjectEventIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _080DB48C
- adds r0, r6, 0
- bl MetatileBehavior_IsTallGrass_2
- lsls r0, 24
- cmp r0, 0
- beq _080DB48C
- movs r1, 0x3C
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _080DB4A0
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080DB4A0
-_080DB48C:
- adds r0, r5, 0
- movs r1, 0x4
- bl FieldEffectStop
- b _080DB4E4
- .align 2, 0
-_080DB498: .4byte gCamera
-_080DB49C: .4byte gSaveBlock1Ptr
-_080DB4A0:
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080DB4F0 @ =gObjectEvents
- adds r2, r0, r1
- ldr r0, [r2, 0x10]
- ldr r1, [r5, 0x30]
- cmp r0, r1
- beq _080DB4C0
- ldr r0, [r2, 0x14]
- cmp r0, r1
- beq _080DB4C0
- movs r0, 0x1
- strh r0, [r5, 0x3C]
-_080DB4C0:
- movs r6, 0
- adds r0, r5, 0
- adds r0, 0x2B
- ldrb r0, [r0]
- cmp r0, 0
- bne _080DB4CE
- movs r6, 0x4
-_080DB4CE:
- adds r0, r5, 0
- movs r1, 0
- bl sub_8068EB4
- ldrh r1, [r5, 0x2E]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- adds r2, r6, 0
- bl sub_80DCD48
-_080DB4E4:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DB4F0: .4byte gObjectEvents
- thumb_func_end unc_grass_normal
-
- thumb_func_start FldEff_JumpTallGrass
-FldEff_JumpTallGrass: @ 80DB4F4
- push {r4,lr}
- ldr r4, _080DB558 @ =gFieldEffectArguments
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0xC
- bl sub_8063BC4
- ldr r0, _080DB55C @ =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x28]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _080DB550
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _080DB560 @ =gSprites
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r4, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldr r0, [r4, 0x8]
- strh r0, [r2, 0x2E]
- movs r0, 0xC
- strh r0, [r2, 0x30]
-_080DB550:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080DB558: .4byte gFieldEffectArguments
-_080DB55C: .4byte gFieldEffectObjectTemplatePointers
-_080DB560: .4byte gSprites
- thumb_func_end FldEff_JumpTallGrass
-
- thumb_func_start sub_80DB564
-sub_80DB564: @ 80DB564
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r4, [sp, 0x18]
- lsls r0, 24
- lsrs r0, 24
- mov r12, r0
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r6, r2, 24
- movs r5, 0
- ldr r0, _080DB5D4 @ =gSprites
- mov r8, r0
- lsls r3, 16
- asrs r3, 16
- lsls r4, 16
- asrs r4, 16
-_080DB588:
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- mov r1, r8
- adds r2, r0, r1
- adds r0, r2, 0
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 31
- cmp r0, 0
- beq _080DB5DC
- ldr r1, [r2, 0x1C]
- ldr r0, _080DB5D8 @ =unc_grass_normal
- cmp r1, r0
- bne _080DB5DC
- movs r1, 0x30
- ldrsh r0, [r2, r1]
- cmp r3, r0
- bne _080DB5DC
- movs r1, 0x32
- ldrsh r0, [r2, r1]
- cmp r4, r0
- bne _080DB5DC
- ldrh r1, [r2, 0x34]
- lsls r0, r1, 16
- asrs r0, 24
- cmp r12, r0
- bne _080DB5DC
- movs r0, 0xFF
- ands r0, r1
- cmp r7, r0
- bne _080DB5DC
- movs r1, 0x36
- ldrsh r0, [r2, r1]
- cmp r6, r0
- bne _080DB5DC
- adds r0, r5, 0
- b _080DB5E8
- .align 2, 0
-_080DB5D4: .4byte gSprites
-_080DB5D8: .4byte unc_grass_normal
-_080DB5DC:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3F
- bls _080DB588
- movs r0, 0x40
-_080DB5E8:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80DB564
-
- thumb_func_start FldEff_LongGrass
-FldEff_LongGrass: @ 80DB5F4
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, _080DB690 @ =gFieldEffectArguments
- ldrh r1, [r5]
- mov r0, sp
- strh r1, [r0]
- ldrh r0, [r5, 0x4]
- mov r4, sp
- adds r4, 0x2
- strh r0, [r4]
- mov r0, sp
- adds r1, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8063BC4
- ldr r0, _080DB694 @ =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x3C]
- mov r1, sp
- movs r2, 0
- ldrsh r1, [r1, r2]
- movs r3, 0
- ldrsh r2, [r4, r3]
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _080DB684
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080DB698 @ =gSprites
- adds r4, r0, r1
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2]
- ldrb r0, [r5, 0x8]
- bl ZCoordToPriority
- movs r1, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x5]
- ldr r0, [r5, 0x8]
- strh r0, [r4, 0x2E]
- ldr r0, [r5]
- strh r0, [r4, 0x30]
- ldr r0, [r5, 0x4]
- strh r0, [r4, 0x32]
- ldr r0, [r5, 0x10]
- strh r0, [r4, 0x34]
- ldr r0, [r5, 0x14]
- strh r0, [r4, 0x36]
- ldr r0, [r5, 0x18]
- strh r0, [r4, 0x38]
- ldr r0, [r5, 0x1C]
- cmp r0, 0
- beq _080DB684
- adds r0, r4, 0
- movs r1, 0x6
- bl SeekSpriteAnim
-_080DB684:
- movs r0, 0
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080DB690: .4byte gFieldEffectArguments
-_080DB694: .4byte gFieldEffectObjectTemplatePointers
-_080DB698: .4byte gSprites
- thumb_func_end FldEff_LongGrass
-
- thumb_func_start unc_grass_tall
-unc_grass_tall: @ 80DB69C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r5, r0, 0
- ldrh r0, [r5, 0x38]
- lsrs r7, r0, 8
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r3, _080DB748 @ =gCamera
- ldrb r1, [r3]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080DB6E8
- ldr r0, _080DB74C @ =gSaveBlock1Ptr
- ldr r2, [r0]
- movs r0, 0x5
- ldrsb r0, [r2, r0]
- cmp r0, r7
- bne _080DB6CE
- movs r0, 0x4
- ldrsb r0, [r2, r0]
- cmp r0, r6
- beq _080DB6E8
-_080DB6CE:
- ldr r1, [r3, 0x4]
- ldrh r0, [r5, 0x30]
- subs r0, r1
- strh r0, [r5, 0x30]
- ldr r1, [r3, 0x8]
- ldrh r0, [r5, 0x32]
- subs r0, r1
- strh r0, [r5, 0x32]
- ldrb r1, [r2, 0x5]
- lsls r1, 8
- ldrb r0, [r2, 0x4]
- orrs r0, r1
- strh r0, [r5, 0x38]
-_080DB6E8:
- ldrh r0, [r5, 0x34]
- lsrs r1, r0, 8
- mov r8, r1
- lsls r0, 24
- lsrs r7, r0, 24
- ldrh r0, [r5, 0x36]
- lsls r0, 24
- lsrs r6, r0, 24
- movs r2, 0x30
- ldrsh r0, [r5, r2]
- movs r2, 0x32
- ldrsh r1, [r5, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- mov r0, r8
- adds r1, r7, 0
- adds r2, r6, 0
- mov r3, sp
- bl TryGetObjectEventIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _080DB73C
- adds r0, r4, 0
- bl MetatileBehavior_IsLongGrass
- lsls r0, 24
- cmp r0, 0
- beq _080DB73C
- movs r1, 0x3C
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _080DB750
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080DB750
-_080DB73C:
- adds r0, r5, 0
- movs r1, 0x11
- bl FieldEffectStop
- b _080DB786
- .align 2, 0
-_080DB748: .4byte gCamera
-_080DB74C: .4byte gSaveBlock1Ptr
-_080DB750:
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080DB794 @ =gObjectEvents
- adds r2, r0, r1
- ldr r0, [r2, 0x10]
- ldr r1, [r5, 0x30]
- cmp r0, r1
- beq _080DB770
- ldr r0, [r2, 0x14]
- cmp r0, r1
- beq _080DB770
- movs r0, 0x1
- strh r0, [r5, 0x3C]
-_080DB770:
- adds r0, r5, 0
- movs r1, 0
- bl sub_8068EB4
- ldrh r1, [r5, 0x2E]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- movs r2, 0
- bl sub_80DCD48
-_080DB786:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DB794: .4byte gObjectEvents
- thumb_func_end unc_grass_tall
-
- thumb_func_start FldEff_JumpLongGrass
-FldEff_JumpLongGrass: @ 80DB798
- push {r4,lr}
- ldr r4, _080DB7FC @ =gFieldEffectArguments
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8063BC4
- ldr r0, _080DB800 @ =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x40]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _080DB7F4
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _080DB804 @ =gSprites
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r4, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldr r0, [r4, 0x8]
- strh r0, [r2, 0x2E]
- movs r0, 0x12
- strh r0, [r2, 0x30]
-_080DB7F4:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080DB7FC: .4byte gFieldEffectArguments
-_080DB800: .4byte gFieldEffectObjectTemplatePointers
-_080DB804: .4byte gSprites
- thumb_func_end FldEff_JumpLongGrass
-
- thumb_func_start sub_80DB808
-sub_80DB808: @ 80DB808
- push {r4-r6,lr}
- ldr r6, _080DB89C @ =gFieldEffectArguments
- ldrb r0, [r6]
- ldrb r1, [r6, 0x4]
- ldrb r2, [r6, 0x8]
- bl GetObjectEventIdByLocalIdAndMap
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, _080DB8A0 @ =gObjectEvents
- adds r5, r1, r0
- ldr r0, _080DB8A4 @ =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x78]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _080DB894
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r4, _080DB8A8 @ =gSprites
- adds r2, r4
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x5]
- movs r1, 0xC
- ands r1, r0
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldr r0, [r6]
- strh r0, [r2, 0x2E]
- ldr r0, [r6, 0x4]
- strh r0, [r2, 0x30]
- ldr r0, [r6, 0x8]
- strh r0, [r2, 0x32]
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r0, [r0, 0x20]
- strh r0, [r2, 0x34]
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r0, [r0, 0x22]
- strh r0, [r2, 0x36]
-_080DB894:
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_080DB89C: .4byte gFieldEffectArguments
-_080DB8A0: .4byte gObjectEvents
-_080DB8A4: .4byte gFieldEffectObjectTemplatePointers
-_080DB8A8: .4byte gSprites
- thumb_func_end sub_80DB808
-
- thumb_func_start sub_80DB8AC
-sub_80DB8AC: @ 80DB8AC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x30]
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r4, 0x32]
- lsls r2, 24
- lsrs r2, 24
- mov r3, sp
- bl TryGetObjectEventIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _080DB8EA
- ldr r5, _080DB8F4 @ =gObjectEvents
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r5
- ldrb r0, [r1, 0x2]
- lsls r0, 29
- cmp r0, 0
- blt _080DB8F8
-_080DB8EA:
- adds r0, r4, 0
- movs r1, 0x29
- bl FieldEffectStop
- b _080DB98E
- .align 2, 0
-_080DB8F4: .4byte gObjectEvents
-_080DB8F8:
- ldrb r0, [r1, 0x5]
- bl GetObjectEventGraphicsInfo
- mov r8, r0
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080DB99C @ =gSprites
- adds r6, r0, r1
- ldrh r5, [r6, 0x22]
- ldrh r7, [r6, 0x20]
- movs r0, 0x20
- ldrsh r1, [r6, r0]
- movs r2, 0x34
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _080DB934
- lsls r0, r5, 16
- asrs r0, 16
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- cmp r0, r1
- beq _080DB94E
-_080DB934:
- strh r7, [r4, 0x34]
- strh r5, [r4, 0x36]
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080DB94E
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnim
-_080DB94E:
- strh r7, [r4, 0x20]
- strh r5, [r4, 0x22]
- mov r1, r8
- ldrh r0, [r1, 0xA]
- lsls r0, 16
- asrs r0, 17
- subs r0, 0x8
- strh r0, [r4, 0x26]
- adds r0, r6, 0
- adds r0, 0x43
- ldrb r0, [r0]
- subs r0, 0x1
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- ldrb r0, [r6, 0x5]
- movs r1, 0xC
- ands r1, r0
- ldrb r2, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x5]
- adds r0, r6, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- lsls r1, 29
- lsrs r1, 31
- adds r0, r4, 0
- bl sub_8068EB4
-_080DB98E:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DB99C: .4byte gSprites
- thumb_func_end sub_80DB8AC
-
- thumb_func_start FldEff_SandFootprints
-FldEff_SandFootprints: @ 80DB9A0
- push {r4,lr}
- ldr r4, _080DBA08 @ =gFieldEffectArguments
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8063BC4
- ldr r0, _080DBA0C @ =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x2C]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- ldrb r3, [r4, 0x8]
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _080DB9FE
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080DBA10 @ =gSprites
- adds r0, r1
- adds r3, r0, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r3]
- movs r1, 0x3
- ldrb r2, [r4, 0xC]
- ands r2, r1
- lsls r2, 2
- ldrb r3, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r3
- orrs r1, r2
- strb r1, [r0, 0x5]
- movs r1, 0xD
- strh r1, [r0, 0x3C]
- ldrb r1, [r4, 0x10]
- bl StartSpriteAnim
-_080DB9FE:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080DBA08: .4byte gFieldEffectArguments
-_080DBA0C: .4byte gFieldEffectObjectTemplatePointers
-_080DBA10: .4byte gSprites
- thumb_func_end FldEff_SandFootprints
-
- thumb_func_start FldEff_DeepSandFootprints
-FldEff_DeepSandFootprints: @ 80DBA14
- push {r4,r5,lr}
- ldr r4, _080DBA7C @ =gFieldEffectArguments
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8063BC4
- ldr r0, _080DBA80 @ =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x5C]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- ldrb r3, [r4, 0x8]
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r1, r0, 24
- adds r5, r1, 0
- cmp r1, 0x40
- beq _080DBA74
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080DBA84 @ =gSprites
- adds r0, r1
- adds r3, r0, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r3]
- movs r1, 0x3
- ldrb r2, [r4, 0xC]
- ands r2, r1
- lsls r2, 2
- ldrb r3, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r3
- orrs r1, r2
- strb r1, [r0, 0x5]
- movs r1, 0x18
- strh r1, [r0, 0x3C]
- ldrb r1, [r4, 0x10]
- bl StartSpriteAnim
-_080DBA74:
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080DBA7C: .4byte gFieldEffectArguments
-_080DBA80: .4byte gFieldEffectObjectTemplatePointers
-_080DBA84: .4byte gSprites
- thumb_func_end FldEff_DeepSandFootprints
-
- thumb_func_start FldEff_BikeTireTracks
-FldEff_BikeTireTracks: @ 80DBA88
- push {r4,r5,lr}
- ldr r4, _080DBAF0 @ =gFieldEffectArguments
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8063BC4
- ldr r0, _080DBAF4 @ =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x6C]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- ldrb r3, [r4, 0x8]
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r1, r0, 24
- adds r5, r1, 0
- cmp r1, 0x40
- beq _080DBAE8
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080DBAF8 @ =gSprites
- adds r0, r1
- adds r3, r0, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r3]
- movs r1, 0x3
- ldrb r2, [r4, 0xC]
- ands r2, r1
- lsls r2, 2
- ldrb r3, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r3
- orrs r1, r2
- strb r1, [r0, 0x5]
- movs r1, 0x23
- strh r1, [r0, 0x3C]
- ldrb r1, [r4, 0x10]
- bl StartSpriteAnim
-_080DBAE8:
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080DBAF0: .4byte gFieldEffectArguments
-_080DBAF4: .4byte gFieldEffectObjectTemplatePointers
-_080DBAF8: .4byte gSprites
- thumb_func_end FldEff_BikeTireTracks
-
- thumb_func_start sub_80DBAFC
-sub_80DBAFC: @ 80DBAFC
- push {lr}
- ldr r2, _080DBB14 @ =gUnknown_83FECE0
- movs r3, 0x2E
- ldrsh r1, [r0, r3]
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- bl _call_via_r1
- pop {r0}
- bx r0
- .align 2, 0
-_080DBB14: .4byte gUnknown_83FECE0
- thumb_func_end sub_80DBAFC
-
- thumb_func_start sub_80DBB18
-sub_80DBB18: @ 80DBB18
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x30]
- adds r0, 0x1
- strh r0, [r1, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x28
- ble _080DBB2E
- movs r0, 0x1
- strh r0, [r1, 0x2E]
-_080DBB2E:
- adds r0, r1, 0
- movs r1, 0
- bl sub_8068EB4
- pop {r0}
- bx r0
- thumb_func_end sub_80DBB18
-
- thumb_func_start sub_80DBB3C
-sub_80DBB3C: @ 80DBB3C
- push {r4,lr}
- adds r4, r0, 0
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- ldrb r1, [r3]
- lsls r1, 29
- lsrs r1, 31
- adds r0, r4, 0
- bl sub_8068EB4
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0x38
- ble _080DBB80
- ldrh r1, [r4, 0x3C]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldEffectStop
-_080DBB80:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80DBB3C
-
- thumb_func_start FldEff_Splash
-FldEff_Splash: @ 80DBB88
- push {r4-r6,lr}
- ldr r6, _080DBC1C @ =gFieldEffectArguments
- ldrb r0, [r6]
- ldrb r1, [r6, 0x4]
- ldrb r2, [r6, 0x8]
- bl GetObjectEventIdByLocalIdAndMap
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, _080DBC20 @ =gObjectEvents
- adds r5, r1, r0
- ldr r0, _080DBC24 @ =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x34]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x40
- beq _080DBC12
- ldrb r0, [r5, 0x5]
- bl GetObjectEventGraphicsInfo
- lsls r3, r4, 4
- adds r3, r4
- lsls r3, 2
- ldr r4, _080DBC28 @ =gSprites
- adds r3, r4
- movs r1, 0x3E
- adds r1, r3
- mov r12, r1
- ldrb r1, [r1]
- movs r2, 0x2
- orrs r1, r2
- mov r2, r12
- strb r1, [r2]
- ldrb r2, [r5, 0x4]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrb r1, [r1, 0x5]
- movs r2, 0xC
- ands r2, r1
- ldrb r4, [r3, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r4
- orrs r1, r2
- strb r1, [r3, 0x5]
- ldr r1, [r6]
- strh r1, [r3, 0x2E]
- ldr r1, [r6, 0x4]
- strh r1, [r3, 0x30]
- ldr r1, [r6, 0x8]
- strh r1, [r3, 0x32]
- ldrh r0, [r0, 0xA]
- lsls r0, 16
- asrs r0, 17
- subs r0, 0x4
- strh r0, [r3, 0x26]
- movs r0, 0x3F
- bl PlaySE
-_080DBC12:
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_080DBC1C: .4byte gFieldEffectArguments
-_080DBC20: .4byte gObjectEvents
-_080DBC24: .4byte gFieldEffectObjectTemplatePointers
-_080DBC28: .4byte gSprites
- thumb_func_end FldEff_Splash
-
- thumb_func_start sub_80DBC2C
-sub_80DBC2C: @ 80DBC2C
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _080DBC5C
- ldrh r0, [r4, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x30]
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r4, 0x32]
- lsls r2, 24
- lsrs r2, 24
- mov r3, sp
- bl TryGetObjectEventIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- beq _080DBC66
-_080DBC5C:
- adds r0, r4, 0
- movs r1, 0xF
- bl FieldEffectStop
- b _080DBCA6
-_080DBC66:
- ldr r3, _080DBCB0 @ =gSprites
- ldr r2, _080DBCB4 @ =gObjectEvents
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x20]
- strh r0, [r4, 0x20]
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x22]
- strh r0, [r4, 0x22]
- adds r0, r4, 0
- movs r1, 0
- bl sub_8068EB4
-_080DBCA6:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DBCB0: .4byte gSprites
-_080DBCB4: .4byte gObjectEvents
- thumb_func_end sub_80DBC2C
-
- thumb_func_start FldEff_JumpSmallSplash
-FldEff_JumpSmallSplash: @ 80DBCB8
- push {r4,lr}
- ldr r4, _080DBD1C @ =gFieldEffectArguments
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0xC
- bl sub_8063BC4
- ldr r0, _080DBD20 @ =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x38]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _080DBD14
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _080DBD24 @ =gSprites
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r4, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldr r0, [r4, 0x8]
- strh r0, [r2, 0x2E]
- movs r0, 0x10
- strh r0, [r2, 0x30]
-_080DBD14:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080DBD1C: .4byte gFieldEffectArguments
-_080DBD20: .4byte gFieldEffectObjectTemplatePointers
-_080DBD24: .4byte gSprites
- thumb_func_end FldEff_JumpSmallSplash
-
- thumb_func_start oei_water_drop_tall
-oei_water_drop_tall: @ 80DBD28
- push {r4,lr}
- ldr r4, _080DBD8C @ =gFieldEffectArguments
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8063BC4
- ldr r0, _080DBD90 @ =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x30]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _080DBD84
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _080DBD94 @ =gSprites
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r4, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldr r0, [r4, 0x8]
- strh r0, [r2, 0x2E]
- movs r0, 0xE
- strh r0, [r2, 0x30]
-_080DBD84:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080DBD8C: .4byte gFieldEffectArguments
-_080DBD90: .4byte gFieldEffectObjectTemplatePointers
-_080DBD94: .4byte gSprites
- thumb_func_end oei_water_drop_tall
-
- thumb_func_start FldEff_FeetInFlowingWater
-FldEff_FeetInFlowingWater: @ 80DBD98
- push {r4-r7,lr}
- ldr r7, _080DBE38 @ =gFieldEffectArguments
- ldrb r0, [r7]
- ldrb r1, [r7, 0x4]
- ldrb r2, [r7, 0x8]
- bl GetObjectEventIdByLocalIdAndMap
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, _080DBE3C @ =gObjectEvents
- adds r6, r1, r0
- ldr r0, _080DBE40 @ =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x34]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x40
- beq _080DBE2E
- ldrb r0, [r6, 0x5]
- bl GetObjectEventGraphicsInfo
- adds r4, r0, 0
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- ldr r3, _080DBE44 @ =gSprites
- adds r0, r3
- ldr r1, _080DBE48 @ =sub_80DBE50
- str r1, [r0, 0x1C]
- adds r5, r0, 0
- adds r5, 0x3E
- ldrb r1, [r5]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r5]
- ldrb r2, [r6, 0x4]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r3
- ldrb r1, [r1, 0x5]
- movs r2, 0xC
- ands r2, r1
- ldrb r3, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r3
- orrs r1, r2
- strb r1, [r0, 0x5]
- ldr r1, [r7]
- strh r1, [r0, 0x2E]
- ldr r1, [r7, 0x4]
- strh r1, [r0, 0x30]
- ldr r1, [r7, 0x8]
- strh r1, [r0, 0x32]
- ldr r1, _080DBE4C @ =0x0000ffff
- strh r1, [r0, 0x34]
- movs r1, 0x1
- negs r1, r1
- strh r1, [r0, 0x36]
- ldrh r1, [r4, 0xA]
- lsls r1, 16
- asrs r1, 17
- subs r1, 0x4
- strh r1, [r0, 0x26]
- movs r1, 0x1
- bl StartSpriteAnim
-_080DBE2E:
- movs r0, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080DBE38: .4byte gFieldEffectArguments
-_080DBE3C: .4byte gObjectEvents
-_080DBE40: .4byte gFieldEffectObjectTemplatePointers
-_080DBE44: .4byte gSprites
-_080DBE48: .4byte sub_80DBE50
-_080DBE4C: .4byte 0x0000ffff
- thumb_func_end FldEff_FeetInFlowingWater
-
- thumb_func_start sub_80DBE50
-sub_80DBE50: @ 80DBE50
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x30]
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r4, 0x32]
- lsls r2, 24
- lsrs r2, 24
- mov r3, sp
- bl TryGetObjectEventIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _080DBE8A
- ldr r2, _080DBE94 @ =gObjectEvents
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r5, r0, r2
- ldrb r0, [r5, 0x2]
- lsls r0, 28
- cmp r0, 0
- blt _080DBE98
-_080DBE8A:
- adds r0, r4, 0
- movs r1, 0x22
- bl FieldEffectStop
- b _080DBEE2
- .align 2, 0
-_080DBE94: .4byte gObjectEvents
-_080DBE98:
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080DBEEC @ =gSprites
- adds r0, r1
- ldrh r1, [r0, 0x20]
- strh r1, [r4, 0x20]
- ldrh r1, [r0, 0x22]
- strh r1, [r4, 0x22]
- adds r0, 0x43
- ldrb r0, [r0]
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0
- bl sub_8068EB4
- ldr r1, [r5, 0x10]
- ldr r0, [r4, 0x34]
- cmp r1, r0
- beq _080DBEE2
- ldrh r0, [r5, 0x10]
- strh r0, [r4, 0x34]
- ldrh r0, [r5, 0x12]
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- bne _080DBEE2
- movs r0, 0x3F
- bl PlaySE
-_080DBEE2:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DBEEC: .4byte gSprites
- thumb_func_end sub_80DBE50
-
- thumb_func_start oei_ripples
-oei_ripples: @ 80DBEF0
- push {r4,lr}
- ldr r0, _080DBF44 @ =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x14]
- ldr r4, _080DBF48 @ =gFieldEffectArguments
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- ldrb r3, [r4, 0x8]
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _080DBF3C
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _080DBF4C @ =gSprites
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r4, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- movs r0, 0x5
- strh r0, [r2, 0x2E]
-_080DBF3C:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080DBF44: .4byte gFieldEffectObjectTemplatePointers
-_080DBF48: .4byte gFieldEffectArguments
-_080DBF4C: .4byte gSprites
- thumb_func_end oei_ripples
-
- thumb_func_start sub_80DBF50
-sub_80DBF50: @ 80DBF50
- push {r4-r6,lr}
- ldr r6, _080DBFE4 @ =gFieldEffectArguments
- ldrb r0, [r6]
- ldrb r1, [r6, 0x4]
- ldrb r2, [r6, 0x8]
- bl GetObjectEventIdByLocalIdAndMap
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, _080DBFE8 @ =gObjectEvents
- adds r5, r1, r0
- ldr r0, _080DBFEC @ =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x7C]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _080DBFDC
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r4, _080DBFF0 @ =gSprites
- adds r2, r4
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x5]
- movs r1, 0xC
- ands r1, r0
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldr r0, [r6]
- strh r0, [r2, 0x2E]
- ldr r0, [r6, 0x4]
- strh r0, [r2, 0x30]
- ldr r0, [r6, 0x8]
- strh r0, [r2, 0x32]
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r0, [r0, 0x20]
- strh r0, [r2, 0x34]
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r0, [r0, 0x22]
- strh r0, [r2, 0x36]
-_080DBFDC:
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_080DBFE4: .4byte gFieldEffectArguments
-_080DBFE8: .4byte gObjectEvents
-_080DBFEC: .4byte gFieldEffectObjectTemplatePointers
-_080DBFF0: .4byte gSprites
- thumb_func_end sub_80DBF50
-
- thumb_func_start sub_80DBFF4
-sub_80DBFF4: @ 80DBFF4
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x30]
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r4, 0x32]
- lsls r2, 24
- lsrs r2, 24
- mov r3, sp
- bl TryGetObjectEventIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _080DC02E
- ldr r5, _080DC038 @ =gObjectEvents
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r5
- ldrb r0, [r1, 0x2]
- lsls r0, 26
- cmp r0, 0
- blt _080DC03C
-_080DC02E:
- adds r0, r4, 0
- movs r1, 0x2A
- bl FieldEffectStop
- b _080DC080
- .align 2, 0
-_080DC038: .4byte gObjectEvents
-_080DC03C:
- ldrb r0, [r1, 0x5]
- bl GetObjectEventGraphicsInfo
- mov r1, sp
- ldrb r2, [r1]
- lsls r1, r2, 3
- adds r1, r2
- lsls r1, 2
- adds r1, r5
- ldrb r2, [r1, 0x4]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- ldr r2, _080DC088 @ =gSprites
- adds r1, r2
- ldrh r2, [r1, 0x20]
- strh r2, [r4, 0x20]
- ldrh r0, [r0, 0xA]
- lsls r0, 16
- asrs r0, 17
- ldrh r2, [r1, 0x22]
- adds r0, r2
- subs r0, 0x8
- strh r0, [r4, 0x22]
- adds r1, 0x43
- ldrb r0, [r1]
- subs r0, 0x1
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0
- bl sub_8068EB4
-_080DC080:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DC088: .4byte gSprites
- thumb_func_end sub_80DBFF4
-
- thumb_func_start FldEff_Unknown19
-FldEff_Unknown19: @ 80DC08C
- push {r4,lr}
- ldr r4, _080DC0EC @ =gFieldEffectArguments
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8063BC4
- ldr r0, _080DC0F0 @ =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x44]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- ldrb r3, [r4, 0x8]
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _080DC0E4
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _080DC0F4 @ =gSprites
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r4, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- movs r0, 0x13
- strh r0, [r2, 0x2E]
-_080DC0E4:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080DC0EC: .4byte gFieldEffectArguments
-_080DC0F0: .4byte gFieldEffectObjectTemplatePointers
-_080DC0F4: .4byte gSprites
- thumb_func_end FldEff_Unknown19
-
- thumb_func_start FldEff_Unknown20
-FldEff_Unknown20: @ 80DC0F8
- push {r4,lr}
- ldr r4, _080DC158 @ =gFieldEffectArguments
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8063BC4
- ldr r0, _080DC15C @ =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x48]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- ldrb r3, [r4, 0x8]
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _080DC150
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _080DC160 @ =gSprites
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r4, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- movs r0, 0x14
- strh r0, [r2, 0x2E]
-_080DC150:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080DC158: .4byte gFieldEffectArguments
-_080DC15C: .4byte gFieldEffectObjectTemplatePointers
-_080DC160: .4byte gSprites
- thumb_func_end FldEff_Unknown20
-
- thumb_func_start FldEff_Unknown21
-FldEff_Unknown21: @ 80DC164
- push {r4,lr}
- ldr r4, _080DC1C4 @ =gFieldEffectArguments
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8063BC4
- ldr r0, _080DC1C8 @ =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x4C]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- ldrb r3, [r4, 0x8]
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _080DC1BC
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _080DC1CC @ =gSprites
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r4, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- movs r0, 0x15
- strh r0, [r2, 0x2E]
-_080DC1BC:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080DC1C4: .4byte gFieldEffectArguments
-_080DC1C8: .4byte gFieldEffectObjectTemplatePointers
-_080DC1CC: .4byte gSprites
- thumb_func_end FldEff_Unknown21
-
- thumb_func_start FldEff_Unknown22
-FldEff_Unknown22: @ 80DC1D0
- push {r4,lr}
- ldr r4, _080DC230 @ =gFieldEffectArguments
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8063BC4
- ldr r0, _080DC234 @ =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x50]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- ldrb r3, [r4, 0x8]
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _080DC228
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _080DC238 @ =gSprites
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r4, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- movs r0, 0x16
- strh r0, [r2, 0x2E]
-_080DC228:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080DC230: .4byte gFieldEffectArguments
-_080DC234: .4byte gFieldEffectObjectTemplatePointers
-_080DC238: .4byte gSprites
- thumb_func_end FldEff_Unknown22
-
- thumb_func_start StartAshFieldEffect
-StartAshFieldEffect: @ 80DC23C
- push {r4,lr}
- lsls r2, 16
- lsrs r2, 16
- ldr r4, _080DC26C @ =gFieldEffectArguments
- lsls r0, 16
- asrs r0, 16
- str r0, [r4]
- lsls r1, 16
- asrs r1, 16
- str r1, [r4, 0x4]
- movs r0, 0x52
- str r0, [r4, 0x8]
- movs r0, 0x1
- str r0, [r4, 0xC]
- str r2, [r4, 0x10]
- lsls r3, 16
- asrs r3, 16
- str r3, [r4, 0x14]
- movs r0, 0x7
- bl FieldEffectStart
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DC26C: .4byte gFieldEffectArguments
- thumb_func_end StartAshFieldEffect
-
- thumb_func_start oei_ash
-oei_ash: @ 80DC270
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, _080DC2F0 @ =gFieldEffectArguments
- ldrh r1, [r5]
- mov r0, sp
- strh r1, [r0]
- ldrh r0, [r5, 0x4]
- mov r4, sp
- adds r4, 0x2
- strh r0, [r4]
- mov r0, sp
- adds r1, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8063BC4
- ldr r0, _080DC2F4 @ =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x18]
- mov r1, sp
- movs r2, 0
- ldrsh r1, [r1, r2]
- movs r3, 0
- ldrsh r2, [r4, r3]
- ldrb r3, [r5, 0x8]
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _080DC2E6
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _080DC2F8 @ =gSprites
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r5, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldr r0, [r5]
- strh r0, [r2, 0x30]
- ldr r0, [r5, 0x4]
- strh r0, [r2, 0x32]
- ldr r0, [r5, 0x10]
- strh r0, [r2, 0x34]
- ldr r0, [r5, 0x14]
- strh r0, [r2, 0x36]
-_080DC2E6:
- movs r0, 0
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080DC2F0: .4byte gFieldEffectArguments
-_080DC2F4: .4byte gFieldEffectObjectTemplatePointers
-_080DC2F8: .4byte gSprites
- thumb_func_end oei_ash
-
- thumb_func_start sub_80DC2FC
-sub_80DC2FC: @ 80DC2FC
- push {lr}
- ldr r2, _080DC314 @ =gUnknown_83FECE8
- movs r3, 0x2E
- ldrsh r1, [r0, r3]
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- bl _call_via_r1
- pop {r0}
- bx r0
- .align 2, 0
-_080DC314: .4byte gUnknown_83FECE8
- thumb_func_end sub_80DC2FC
-
- thumb_func_start sub_80DC318
-sub_80DC318: @ 80DC318
- push {lr}
- adds r3, r0, 0
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- subs r2, 0x12
- ldrb r0, [r2]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2]
- ldrh r0, [r3, 0x36]
- subs r0, 0x1
- strh r0, [r3, 0x36]
- lsls r0, 16
- cmp r0, 0
- bne _080DC342
- movs r0, 0x1
- strh r0, [r3, 0x2E]
-_080DC342:
- pop {r0}
- bx r0
- thumb_func_end sub_80DC318
-
- thumb_func_start sub_80DC348
-sub_80DC348: @ 80DC348
- push {r4,lr}
- adds r4, r0, 0
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- subs r2, 0x12
- ldrb r1, [r2]
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- ldrh r2, [r4, 0x34]
- bl MapGridSetMetatileIdAt
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- bl CurrentMapDrawMetatileAt
- ldr r2, _080DC3A0 @ =gObjectEvents
- ldr r0, _080DC3A4 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- movs r0, 0x2
- strh r0, [r4, 0x2E]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DC3A0: .4byte gObjectEvents
-_080DC3A4: .4byte gPlayerAvatar
- thumb_func_end sub_80DC348
-
- thumb_func_start sub_80DC3A8
-sub_80DC3A8: @ 80DC3A8
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0
- bl sub_8068EB4
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080DC3C8
- adds r0, r4, 0
- movs r1, 0x7
- bl FieldEffectStop
-_080DC3C8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80DC3A8
-
- thumb_func_start sub_80DC3D0
-sub_80DC3D0: @ 80DC3D0
- push {r4,r5,lr}
- ldr r4, _080DC43C @ =gFieldEffectArguments
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8063BC4
- ldr r0, _080DC440 @ =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x1C]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- movs r3, 0x96
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- cmp r0, 0x40
- beq _080DC42C
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _080DC444 @ =gSprites
- adds r1, r0
- adds r3, r1, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r2, 0x2
- orrs r0, r2
- strb r0, [r3]
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- strb r0, [r1, 0x5]
- ldr r0, [r4, 0x8]
- movs r2, 0
- strh r0, [r1, 0x32]
- strh r2, [r1, 0x34]
- ldr r0, _080DC448 @ =0x0000ffff
- strh r0, [r1, 0x3A]
- movs r0, 0x1
- negs r0, r0
- strh r0, [r1, 0x3C]
-_080DC42C:
- movs r0, 0x8
- bl FieldEffectActiveListRemove
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080DC43C: .4byte gFieldEffectArguments
-_080DC440: .4byte gFieldEffectObjectTemplatePointers
-_080DC444: .4byte gSprites
-_080DC448: .4byte 0x0000ffff
- thumb_func_end sub_80DC3D0
-
- thumb_func_start sub_80DC44C
-sub_80DC44C: @ 80DC44C
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- ldr r3, _080DC474 @ =gSprites
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r3
- ldrh r0, [r2, 0x2E]
- movs r3, 0x10
- negs r3, r3
- ands r3, r0
- movs r0, 0xF0
- lsls r0, 20
- ands r0, r1
- lsrs r0, 24
- orrs r0, r3
- strh r0, [r2, 0x2E]
- bx lr
- .align 2, 0
-_080DC474: .4byte gSprites
- thumb_func_end sub_80DC44C
-
- thumb_func_start sub_80DC478
-sub_80DC478: @ 80DC478
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- ldr r3, _080DC4A0 @ =gSprites
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r3
- ldrh r0, [r2, 0x2E]
- movs r3, 0xF1
- negs r3, r3
- ands r3, r0
- movs r0, 0xF0
- lsls r0, 20
- ands r0, r1
- lsrs r0, 20
- orrs r3, r0
- strh r3, [r2, 0x2E]
- bx lr
- .align 2, 0
-_080DC4A0: .4byte gSprites
- thumb_func_end sub_80DC478
-
- thumb_func_start sub_80DC4A4
-sub_80DC4A4: @ 80DC4A4
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- ldr r4, _080DC4D0 @ =gSprites
- lsls r3, r0, 4
- adds r3, r0
- lsls r3, 2
- adds r3, r4
- ldrh r0, [r3, 0x2E]
- ldr r4, _080DC4D4 @ =0xfffff0ff
- ands r4, r0
- movs r0, 0xF0
- lsls r0, 20
- ands r0, r1
- lsrs r0, 16
- orrs r4, r0
- strh r4, [r3, 0x2E]
- strh r2, [r3, 0x30]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DC4D0: .4byte gSprites
-_080DC4D4: .4byte 0xfffff0ff
- thumb_func_end sub_80DC4A4
-
- thumb_func_start sub_80DC4D8
-sub_80DC4D8: @ 80DC4D8
- ldrh r1, [r0, 0x2E]
- movs r0, 0xF
- ands r0, r1
- bx lr
- thumb_func_end sub_80DC4D8
-
- thumb_func_start sub_80DC4E0
-sub_80DC4E0: @ 80DC4E0
- ldrh r1, [r0, 0x2E]
- movs r0, 0xF0
- ands r0, r1
- lsrs r0, 4
- bx lr
- thumb_func_end sub_80DC4E0
-
- thumb_func_start sub_80DC4EC
-sub_80DC4EC: @ 80DC4EC
- ldrh r1, [r0, 0x2E]
- movs r0, 0xF0
- lsls r0, 4
- ands r0, r1
- lsrs r0, 8
- bx lr
- thumb_func_end sub_80DC4EC
-
- thumb_func_start sub_80DC4F8
-sub_80DC4F8: @ 80DC4F8
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0x32
- ldrsh r0, [r6, r1]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _080DC548 @ =gObjectEvents
- adds r4, r0
- ldrb r0, [r4, 0x4]
- lsls r5, r0, 4
- adds r5, r0
- lsls r5, 2
- ldr r0, _080DC54C @ =gSprites
- adds r5, r0
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_80DC550
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_80DC588
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- bl sub_80DC61C
- ldrb r0, [r5, 0x5]
- movs r1, 0xC
- ands r1, r0
- ldrb r2, [r6, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r6, 0x5]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DC548: .4byte gObjectEvents
-_080DC54C: .4byte gSprites
- thumb_func_end sub_80DC4F8
-
- thumb_func_start sub_80DC550
-sub_80DC550: @ 80DC550
- push {r4,r5,lr}
- sub sp, 0x8
- adds r5, r0, 0
- adds r4, r1, 0
- ldr r1, _080DC584 @ =gUnknown_83FECF4
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- adds r0, r4, 0
- bl sub_80DC4E0
- lsls r0, 24
- cmp r0, 0
- bne _080DC57C
- ldrb r0, [r5, 0x18]
- lsrs r0, 4
- add r0, sp
- ldrb r1, [r0]
- adds r0, r4, 0
- bl StartSpriteAnimIfDifferent
-_080DC57C:
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DC584: .4byte gUnknown_83FECF4
- thumb_func_end sub_80DC550
-
- thumb_func_start sub_80DC588
-sub_80DC588: @ 80DC588
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r4, r1, 0
- ldrh r2, [r0, 0x10]
- mov r1, sp
- strh r2, [r1]
- ldrh r1, [r0, 0x12]
- mov r0, sp
- adds r0, 0x2
- strh r1, [r0]
- movs r2, 0x26
- ldrsh r3, [r4, r2]
- mov r8, r0
- cmp r3, 0
- bne _080DC610
- mov r0, sp
- movs r5, 0
- ldrsh r2, [r0, r5]
- movs r5, 0x3A
- ldrsh r0, [r4, r5]
- cmp r2, r0
- bne _080DC5C4
- lsls r0, r1, 16
- asrs r0, 16
- movs r5, 0x3C
- ldrsh r1, [r4, r5]
- cmp r0, r1
- beq _080DC610
-_080DC5C4:
- strh r3, [r4, 0x38]
- strh r2, [r4, 0x3A]
- mov r1, r8
- movs r2, 0
- ldrsh r0, [r1, r2]
- strh r0, [r4, 0x3C]
- movs r5, 0x1
- mov r7, r8
- mov r6, sp
-_080DC5D6:
- adds r0, r5, 0
- mov r1, sp
- adds r2, r7, 0
- bl MoveCoords
- movs r1, 0
- ldrsh r0, [r6, r1]
- movs r2, 0
- ldrsh r1, [r7, r2]
- bl MapGridGetZCoordAt
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _080DC5FC
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- b _080DC610
-_080DC5FC:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- ldrh r0, [r4, 0x3A]
- strh r0, [r6]
- ldrh r0, [r4, 0x3C]
- mov r1, r8
- strh r0, [r1]
- cmp r5, 0x4
- bls _080DC5D6
-_080DC610:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80DC588
-
- thumb_func_start sub_80DC61C
-sub_80DC61C: @ 80DC61C
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r1, 0
- adds r4, r2, 0
- ldr r1, _080DC680 @ =gUnknown_83FECFA
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r0, r4, 0
- bl sub_80DC4D8
- lsls r0, 24
- lsrs r0, 24
- adds r2, r0, 0
- cmp r2, 0
- beq _080DC6A6
- ldrh r1, [r4, 0x36]
- adds r1, 0x1
- strh r1, [r4, 0x36]
- movs r3, 0x38
- ldrsh r0, [r4, r3]
- lsls r0, 1
- add r0, sp
- ldrh r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _080DC65C
- ldrh r0, [r4, 0x34]
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
-_080DC65C:
- ldrh r1, [r4, 0x36]
- movs r0, 0x1F
- ands r0, r1
- cmp r0, 0
- bne _080DC66C
- ldrh r0, [r4, 0x34]
- negs r0, r0
- strh r0, [r4, 0x34]
-_080DC66C:
- cmp r2, 0x2
- beq _080DC6A6
- adds r0, r4, 0
- bl sub_80DC4EC
- lsls r0, 24
- cmp r0, 0
- bne _080DC684
- ldrh r0, [r4, 0x26]
- b _080DC68A
- .align 2, 0
-_080DC680: .4byte gUnknown_83FECFA
-_080DC684:
- ldrh r0, [r4, 0x26]
- ldrh r3, [r4, 0x30]
- adds r0, r3
-_080DC68A:
- strh r0, [r5, 0x26]
- adds r0, r4, 0
- adds r0, 0x2B
- ldrb r0, [r0]
- cmp r0, 0
- beq _080DC69C
- ldrh r0, [r5, 0x26]
- adds r0, 0x1
- strh r0, [r5, 0x26]
-_080DC69C:
- ldrh r0, [r5, 0x20]
- strh r0, [r4, 0x20]
- ldrh r0, [r5, 0x22]
- adds r0, 0x8
- strh r0, [r4, 0x22]
-_080DC6A6:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80DC61C
-
- thumb_func_start sub_80DC6B0
-sub_80DC6B0: @ 80DC6B0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080DC6F4 @ =gDummySpriteTemplate
- movs r1, 0
- movs r2, 0
- movs r3, 0xFF
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r1, _080DC6F8 @ =gSprites
- adds r2, r1
- ldr r1, _080DC6FC @ =sub_80DC700
- str r1, [r2, 0x1C]
- movs r1, 0x3E
- adds r1, r2
- mov r12, r1
- ldrb r1, [r1]
- movs r3, 0x4
- orrs r1, r3
- mov r3, r12
- strb r1, [r3]
- strh r4, [r2, 0x2E]
- movs r1, 0x1
- strh r1, [r2, 0x30]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080DC6F4: .4byte gDummySpriteTemplate
-_080DC6F8: .4byte gSprites
-_080DC6FC: .4byte sub_80DC700
- thumb_func_end sub_80DC6B0
-
- thumb_func_start sub_80DC700
-sub_80DC700: @ 80DC700
- push {lr}
- adds r2, r0, 0
- movs r0, 0x2E
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080DC73C @ =gSprites
- adds r3, r0, r1
- ldrh r1, [r2, 0x32]
- adds r0, r1, 0x1
- strh r0, [r2, 0x32]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _080DC728
- ldrh r0, [r2, 0x30]
- ldrh r1, [r3, 0x26]
- adds r0, r1
- strh r0, [r3, 0x26]
-_080DC728:
- ldrh r1, [r2, 0x32]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0
- bne _080DC738
- ldrh r0, [r2, 0x30]
- negs r0, r0
- strh r0, [r2, 0x30]
-_080DC738:
- pop {r0}
- bx r0
- .align 2, 0
-_080DC73C: .4byte gSprites
- thumb_func_end sub_80DC700
-
- thumb_func_start FldEff_Dust
-FldEff_Dust: @ 80DC740
- push {r4,lr}
- ldr r4, _080DC7A4 @ =gFieldEffectArguments
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0xC
- bl sub_8063BC4
- ldr r0, _080DC7A8 @ =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x24]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _080DC79C
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _080DC7AC @ =gSprites
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r4, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldr r0, [r4, 0x8]
- strh r0, [r2, 0x2E]
- movs r0, 0xA
- strh r0, [r2, 0x30]
-_080DC79C:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080DC7A4: .4byte gFieldEffectArguments
-_080DC7A8: .4byte gFieldEffectObjectTemplatePointers
-_080DC7AC: .4byte gSprites
- thumb_func_end FldEff_Dust
-
- thumb_func_start FldEff_SandPile
-FldEff_SandPile: @ 80DC7B0
- push {r4-r7,lr}
- ldr r7, _080DC85C @ =gFieldEffectArguments
- ldrb r0, [r7]
- ldrb r1, [r7, 0x4]
- ldrb r2, [r7, 0x8]
- bl GetObjectEventIdByLocalIdAndMap
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, _080DC860 @ =gObjectEvents
- adds r6, r1, r0
- ldr r0, _080DC864 @ =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x74]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x40
- beq _080DC854
- ldrb r0, [r6, 0x5]
- bl GetObjectEventGraphicsInfo
- adds r5, r0, 0
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r4, _080DC868 @ =gSprites
- adds r0, r4
- adds r3, r0, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r3]
- ldrb r2, [r6, 0x4]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrb r1, [r1, 0x5]
- movs r2, 0xC
- ands r2, r1
- ldrb r3, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r3
- orrs r1, r2
- strb r1, [r0, 0x5]
- ldr r1, [r7]
- strh r1, [r0, 0x2E]
- ldr r1, [r7, 0x4]
- strh r1, [r0, 0x30]
- ldr r1, [r7, 0x8]
- strh r1, [r0, 0x32]
- ldrb r2, [r6, 0x4]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrh r1, [r1, 0x20]
- strh r1, [r0, 0x34]
- ldrb r2, [r6, 0x4]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrh r1, [r1, 0x22]
- strh r1, [r0, 0x36]
- ldrh r1, [r5, 0xA]
- lsls r1, 16
- asrs r1, 17
- subs r1, 0x2
- strh r1, [r0, 0x26]
- movs r1, 0x2
- bl SeekSpriteAnim
-_080DC854:
- movs r0, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080DC85C: .4byte gFieldEffectArguments
-_080DC860: .4byte gObjectEvents
-_080DC864: .4byte gFieldEffectObjectTemplatePointers
-_080DC868: .4byte gSprites
- thumb_func_end FldEff_SandPile
-
- thumb_func_start sub_80DC86C
-sub_80DC86C: @ 80DC86C
- push {r4-r6,lr}
- sub sp, 0x4
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x30]
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r4, 0x32]
- lsls r2, 24
- lsrs r2, 24
- mov r3, sp
- bl TryGetObjectEventIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _080DC8A6
- ldr r2, _080DC8B0 @ =gObjectEvents
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- ldrb r0, [r1, 0x2]
- lsls r0, 27
- cmp r0, 0
- blt _080DC8B4
-_080DC8A6:
- adds r0, r4, 0
- movs r1, 0x27
- bl FieldEffectStop
- b _080DC926
- .align 2, 0
-_080DC8B0: .4byte gObjectEvents
-_080DC8B4:
- ldr r2, _080DC930 @ =gSprites
- ldrb r1, [r1, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r5, [r0, 0x22]
- ldrh r6, [r0, 0x20]
- movs r2, 0x20
- ldrsh r1, [r0, r2]
- movs r2, 0x34
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _080DC8DC
- lsls r0, r5, 16
- asrs r0, 16
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- cmp r0, r1
- beq _080DC8F6
-_080DC8DC:
- strh r6, [r4, 0x34]
- strh r5, [r4, 0x36]
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080DC8F6
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnim
-_080DC8F6:
- strh r6, [r4, 0x20]
- strh r5, [r4, 0x22]
- ldr r3, _080DC930 @ =gSprites
- ldr r2, _080DC934 @ =gObjectEvents
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x43
- ldrb r0, [r0]
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0
- bl sub_8068EB4
-_080DC926:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DC930: .4byte gSprites
-_080DC934: .4byte gObjectEvents
- thumb_func_end sub_80DC86C
-
- thumb_func_start FldEff_Bubbles
-FldEff_Bubbles: @ 80DC938
- push {r4,lr}
- ldr r4, _080DC990 @ =gFieldEffectArguments
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0
- bl sub_8063BC4
- ldr r0, _080DC994 @ =gFieldEffectObjectTemplatePointers
- adds r0, 0x88
- ldr r0, [r0]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- movs r3, 0x52
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _080DC988
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _080DC998 @ =gSprites
- adds r1, r0
- adds r3, r1, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r2, 0x2
- orrs r0, r2
- strb r0, [r3]
- ldrb r2, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1, 0x5]
-_080DC988:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080DC990: .4byte gFieldEffectArguments
-_080DC994: .4byte gFieldEffectObjectTemplatePointers
-_080DC998: .4byte gSprites
- thumb_func_end FldEff_Bubbles
-
- thumb_func_start sub_80DC99C
-sub_80DC99C: @ 80DC99C
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x80
- movs r1, 0x80
- lsls r1, 1
- ands r0, r1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 24
- ldrh r1, [r4, 0x22]
- subs r1, r0
- strh r1, [r4, 0x22]
- adds r0, r4, 0
- movs r1, 0
- bl sub_8068EB4
- ldrh r1, [r4, 0x3E]
- ldr r0, _080DC9D8 @ =0x00001004
- ands r0, r1
- cmp r0, 0
- beq _080DC9D0
- adds r0, r4, 0
- movs r1, 0x35
- bl FieldEffectStop
-_080DC9D0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DC9D8: .4byte 0x00001004
- thumb_func_end sub_80DC99C
-
- thumb_func_start sub_80DC9DC
-sub_80DC9DC: @ 80DC9DC
- movs r0, 0
- bx lr
- thumb_func_end sub_80DC9DC
-
- thumb_func_start ShowTreeDisguiseFieldEffect
-ShowTreeDisguiseFieldEffect: @ 80DC9E0
- push {lr}
- movs r0, 0x1C
- movs r1, 0x18
- movs r2, 0x4
- bl ShowDisguiseFieldEffect
- pop {r1}
- bx r1
- thumb_func_end ShowTreeDisguiseFieldEffect
-
- thumb_func_start ShowMountainDisguiseFieldEffect
-ShowMountainDisguiseFieldEffect: @ 80DC9F0
- push {lr}
- movs r0, 0x1D
- movs r1, 0x19
- movs r2, 0x3
- bl ShowDisguiseFieldEffect
- pop {r1}
- bx r1
- thumb_func_end ShowMountainDisguiseFieldEffect
-
- thumb_func_start ShowSandDisguiseFieldEffect
-ShowSandDisguiseFieldEffect: @ 80DCA00
- push {lr}
- movs r0, 0x24
- movs r1, 0x1C
- movs r2, 0x2
- bl ShowDisguiseFieldEffect
- pop {r1}
- bx r1
- thumb_func_end ShowSandDisguiseFieldEffect
-
- thumb_func_start ShowDisguiseFieldEffect
-ShowDisguiseFieldEffect: @ 80DCA10
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- mov r8, r4
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r7, r2, 24
- ldr r5, _080DCA44 @ =gFieldEffectArguments
- ldrb r0, [r5]
- ldrb r1, [r5, 0x4]
- ldrb r2, [r5, 0x8]
- mov r3, sp
- bl TryGetObjectEventIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- beq _080DCA48
- adds r0, r4, 0
- bl FieldEffectActiveListRemove
- movs r0, 0x40
- b _080DCAB4
- .align 2, 0
-_080DCA44: .4byte gFieldEffectArguments
-_080DCA48:
- ldr r1, _080DCAC0 @ =gFieldEffectObjectTemplatePointers
- lsls r0, r6, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSpriteAtEnd
- mov r1, sp
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _080DCAB0
- mov r0, sp
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _080DCAC4 @ =gSprites
- adds r2, r0
- movs r0, 0x3E
- adds r0, r2
- mov r12, r0
- ldrb r3, [r0]
- lsls r1, r3, 30
- lsrs r1, 31
- adds r1, 0x1
- movs r0, 0x1
- ands r1, r0
- lsls r1, 1
- movs r0, 0x3
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- lsls r3, r7, 4
- ldrb r1, [r2, 0x5]
- movs r0, 0xF
- ands r0, r1
- orrs r0, r3
- strb r0, [r2, 0x5]
- mov r0, r8
- strh r0, [r2, 0x30]
- ldr r0, [r5]
- strh r0, [r2, 0x32]
- ldr r0, [r5, 0x4]
- strh r0, [r2, 0x34]
- ldr r0, [r5, 0x8]
- strh r0, [r2, 0x36]
-_080DCAB0:
- mov r0, sp
- ldrb r0, [r0]
-_080DCAB4:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080DCAC0: .4byte gFieldEffectObjectTemplatePointers
-_080DCAC4: .4byte gSprites
- thumb_func_end ShowDisguiseFieldEffect
-
- thumb_func_start sub_80DCAC8
-sub_80DCAC8: @ 80DCAC8
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- ldrh r0, [r5, 0x32]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r5, 0x34]
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r5, 0x36]
- lsls r2, 24
- lsrs r2, 24
- mov r3, sp
- bl TryGetObjectEventIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- beq _080DCAF8
- ldrh r1, [r5, 0x30]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl FieldEffectStop
-_080DCAF8:
- ldr r4, _080DCBB0 @ =gObjectEvents
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x5]
- bl GetObjectEventGraphicsInfo
- mov r1, sp
- ldrb r2, [r1]
- lsls r1, r2, 3
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrb r1, [r1, 0x4]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- ldr r1, _080DCBB4 @ =gSprites
- adds r2, r1
- adds r1, r2, 0
- adds r1, 0x3E
- ldrb r1, [r1]
- movs r3, 0x3E
- adds r3, r5
- mov r12, r3
- movs r3, 0x4
- ands r3, r1
- mov r1, r12
- ldrb r4, [r1]
- movs r1, 0x5
- negs r1, r1
- ands r1, r4
- orrs r1, r3
- mov r3, r12
- strb r1, [r3]
- ldrh r1, [r2, 0x20]
- strh r1, [r5, 0x20]
- ldrh r0, [r0, 0xA]
- lsls r0, 16
- asrs r0, 17
- ldrh r1, [r2, 0x22]
- adds r0, r1
- subs r0, 0x10
- strh r0, [r5, 0x22]
- adds r2, 0x43
- ldrb r0, [r2]
- subs r0, 0x1
- adds r1, r5, 0
- adds r1, 0x43
- strb r0, [r1]
- ldrh r1, [r5, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r5, r2]
- cmp r0, 0x1
- bne _080DCB78
- adds r0, r1, 0x1
- strh r0, [r5, 0x2E]
- adds r0, r5, 0
- movs r1, 0x1
- bl StartSpriteAnim
-_080DCB78:
- movs r3, 0x2E
- ldrsh r0, [r5, r3]
- ldrh r2, [r5, 0x2E]
- cmp r0, 0x2
- bne _080DCB94
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080DCB94
- movs r0, 0x1
- strh r0, [r5, 0x3C]
-_080DCB94:
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, 0x3
- bne _080DCBA8
- ldrh r1, [r5, 0x30]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl FieldEffectStop
-_080DCBA8:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DCBB0: .4byte gObjectEvents
-_080DCBB4: .4byte gSprites
- thumb_func_end sub_80DCAC8
-
- thumb_func_start sub_80DCBB8
-sub_80DCBB8: @ 80DCBB8
- push {lr}
- adds r1, r0, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080DCBD6
- ldr r2, _080DCBDC @ =gSprites
- ldrb r1, [r1, 0x1A]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x2E]
- adds r1, 0x1
- strh r1, [r0, 0x2E]
-_080DCBD6:
- pop {r0}
- bx r0
- .align 2, 0
-_080DCBDC: .4byte gSprites
- thumb_func_end sub_80DCBB8
-
- thumb_func_start sub_80DCBE0
-sub_80DCBE0: @ 80DCBE0
- push {lr}
- adds r2, r0, 0
- adds r2, 0x21
- ldrb r1, [r2]
- cmp r1, 0x2
- beq _080DCC16
- cmp r1, 0
- beq _080DCC16
- ldrb r1, [r0, 0x1A]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080DCC08 @ =gSprites
- adds r1, r0, r1
- movs r3, 0x3C
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bne _080DCC0C
- movs r0, 0
- b _080DCC18
- .align 2, 0
-_080DCC08: .4byte gSprites
-_080DCC0C:
- movs r0, 0x2
- strb r0, [r2]
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
-_080DCC16:
- movs r0, 0x1
-_080DCC18:
- pop {r1}
- bx r1
- thumb_func_end sub_80DCBE0
-
- thumb_func_start FldEff_Sparkle
-FldEff_Sparkle: @ 80DCC1C
- push {r4,lr}
- ldr r4, _080DCC84 @ =gFieldEffectArguments
- ldr r0, [r4]
- adds r0, 0x7
- str r0, [r4]
- ldr r0, [r4, 0x4]
- adds r0, 0x7
- str r0, [r4, 0x4]
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8063BC4
- ldr r0, _080DCC88 @ =gFieldEffectObjectTemplatePointers
- adds r0, 0x8C
- ldr r0, [r0]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- movs r3, 0x52
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _080DCC7C
- ldr r0, _080DCC8C @ =gSprites
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- movs r0, 0x3
- ldrb r2, [r4, 0x8]
- ands r2, r0
- lsls r2, 2
- ldrb r3, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0x5]
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x2
- orrs r0, r2
- strb r0, [r1]
-_080DCC7C:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080DCC84: .4byte gFieldEffectArguments
-_080DCC88: .4byte gFieldEffectObjectTemplatePointers
-_080DCC8C: .4byte gSprites
- thumb_func_end FldEff_Sparkle
-
- thumb_func_start sub_80DCC90
-sub_80DCC90: @ 80DCC90
- push {lr}
- adds r2, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bne _080DCCC4
- adds r0, r2, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080DCCBC
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r3]
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
-_080DCCBC:
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0
- beq _080DCCDA
-_080DCCC4:
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- strh r0, [r2, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x22
- ble _080DCCDA
- adds r0, r2, 0
- movs r1, 0x36
- bl FieldEffectStop
-_080DCCDA:
- pop {r0}
- bx r0
- thumb_func_end sub_80DCC90
-
- thumb_func_start sub_80DCCE0
-sub_80DCCE0: @ 80DCCE0
- push {r4,lr}
- adds r4, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080DCCFE
- ldrh r1, [r4, 0x30]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldEffectStop
- b _080DCD14
-_080DCCFE:
- adds r0, r4, 0
- movs r1, 0
- bl sub_8068EB4
- ldrh r0, [r4, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- adds r1, r4, 0
- movs r2, 0
- bl SetObjectSubpriorityByZCoord
-_080DCD14:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80DCCE0
-
- thumb_func_start sub_80DCD1C
-sub_80DCD1C: @ 80DCD1C
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080DCD3A
- ldrh r1, [r2, 0x2E]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r2, 0
- bl FieldEffectStop
- b _080DCD42
-_080DCD3A:
- adds r0, r2, 0
- movs r1, 0
- bl sub_8068EB4
-_080DCD42:
- pop {r0}
- bx r0
- thumb_func_end sub_80DCD1C
-
- thumb_func_start sub_80DCD48
-sub_80DCD48: @ 80DCD48
- push {r4-r7,lr}
- adds r6, r0, 0
- adds r0, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r2, 24
- lsrs r2, 24
- adds r1, r6, 0
- bl SetObjectSubpriorityByZCoord
- movs r7, 0
-_080DCD5E:
- lsls r0, r7, 3
- adds r0, r7
- lsls r0, 2
- ldr r1, _080DCDF8 @ =gObjectEvents
- adds r4, r0, r1
- ldrb r0, [r4]
- lsls r0, 31
- cmp r0, 0
- beq _080DCE00
- ldrb r0, [r4, 0x5]
- bl GetObjectEventGraphicsInfo
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080DCDFC @ =gSprites
- adds r5, r0, r1
- adds r0, r6, 0
- adds r0, 0x28
- movs r2, 0
- ldrsb r2, [r0, r2]
- ldrh r0, [r6, 0x20]
- adds r1, r0, r2
- subs r0, r2
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x20
- ldrsh r2, [r5, r0]
- cmp r1, r2
- bge _080DCE00
- lsls r0, r4, 16
- asrs r0, 16
- cmp r0, r2
- ble _080DCE00
- adds r0, r5, 0
- adds r0, 0x29
- movs r3, 0
- ldrsb r3, [r0, r3]
- ldrh r2, [r5, 0x22]
- adds r2, r3
- ldrh r4, [r5, 0x22]
- adds r0, r6, 0
- adds r0, 0x29
- movs r1, 0
- ldrsb r1, [r0, r1]
- ldrh r0, [r6, 0x22]
- subs r0, r1
- lsls r0, 16
- asrs r0, 16
- adds r3, r0, r3
- lsls r2, 16
- asrs r2, 16
- lsls r3, 16
- asrs r3, 16
- cmp r2, r3
- blt _080DCDD8
- cmp r2, r0
- bge _080DCE00
-_080DCDD8:
- lsls r0, r4, 16
- asrs r0, 16
- cmp r0, r3
- ble _080DCE00
- adds r2, r6, 0
- adds r2, 0x43
- adds r0, r5, 0
- adds r0, 0x43
- ldrb r1, [r0]
- ldrb r0, [r2]
- cmp r0, r1
- bhi _080DCE00
- adds r0, r1, 0x2
- strb r0, [r2]
- b _080DCE0A
- .align 2, 0
-_080DCDF8: .4byte gObjectEvents
-_080DCDFC: .4byte gSprites
-_080DCE00:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0xF
- bls _080DCD5E
-_080DCE0A:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80DCD48
-
- .align 2, 0 @ Don't pad with nop.