mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-11-16 19:47:35 +01:00
1487 lines
23 KiB
ArmAsm
1487 lines
23 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "constants/constants.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_80D3718
|
|
sub_80D3718: @ 80D3718
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x1C
|
|
movs r0, 0x52
|
|
bl npc_before_player_of_type
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080D3754
|
|
ldr r1, =gUnknown_03005DB0
|
|
ldr r0, =FieldCallback_Teleport
|
|
str r0, [r1]
|
|
ldr r1, =gUnknown_0203CEEC
|
|
ldr r0, =sub_80D3A9C
|
|
str r0, [r1]
|
|
movs r0, 0x1
|
|
b _080D3A2C
|
|
.pool
|
|
_080D3754:
|
|
ldr r0, =gUnknown_0203AB40
|
|
adds r1, r0, 0x2
|
|
bl PlayerGetDestCoords
|
|
bl GetCursorSelectionMonId
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x64
|
|
muls r0, r1
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
bl GetMonAbility
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r0, [sp, 0xC]
|
|
cmp r0, 0x34
|
|
bne _080D3798
|
|
ldr r1, =gUnknown_03001100
|
|
movs r0, 0x5
|
|
strb r0, [r1]
|
|
ldr r0, =gUnknown_03001101
|
|
movs r1, 0x2
|
|
b _080D37A2
|
|
.pool
|
|
_080D3798:
|
|
ldr r1, =gUnknown_03001100
|
|
movs r0, 0x3
|
|
strb r0, [r1]
|
|
ldr r0, =gUnknown_03001101
|
|
movs r1, 0x1
|
|
_080D37A2:
|
|
strb r1, [r0]
|
|
ldr r0, =gUnknown_03001102
|
|
strb r1, [r0]
|
|
movs r6, 0
|
|
movs r1, 0
|
|
_080D37AC:
|
|
mov r2, sp
|
|
adds r0, r2, r6
|
|
strb r1, [r0]
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0x8
|
|
bls _080D37AC
|
|
movs r6, 0
|
|
ldr r2, =gUnknown_03001108
|
|
movs r1, 0
|
|
_080D37C2:
|
|
adds r0, r6, r2
|
|
strb r1, [r0]
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0x18
|
|
bls _080D37C2
|
|
movs r3, 0
|
|
str r3, [sp, 0x10]
|
|
movs r6, 0
|
|
_080D37D6:
|
|
ldr r4, =0x0000ffff
|
|
adds r0, r6, r4
|
|
ldr r1, =gUnknown_0203AB40
|
|
ldrh r1, [r1, 0x2]
|
|
adds r0, r1
|
|
movs r5, 0
|
|
adds r2, r6, 0x1
|
|
str r2, [sp, 0x18]
|
|
lsls r7, r6, 1
|
|
lsls r0, 16
|
|
str r0, [sp, 0x14]
|
|
asrs r0, 16
|
|
mov r10, r0
|
|
lsls r0, r6, 2
|
|
adds r0, r6
|
|
mov r9, r0
|
|
_080D37F6:
|
|
ldr r3, =0x0000ffff
|
|
adds r0, r5, r3
|
|
ldr r4, =gUnknown_0203AB40
|
|
ldrh r4, [r4]
|
|
adds r0, r4
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
mov r8, r1
|
|
asrs r4, r0, 16
|
|
adds r0, r4, 0
|
|
mov r1, r10
|
|
bl MapGridGetZCoordAt
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =gUnknown_0203AB40
|
|
movs r1, 0x4
|
|
ldrsb r1, [r2, r1]
|
|
cmp r0, r1
|
|
bne _080D38BC
|
|
adds r0, r4, 0
|
|
mov r1, r10
|
|
bl MapGridGetMetatileBehaviorAt
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
adds r0, r4, 0
|
|
bl MetatileBehavior_IsPokeGrass
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _080D3846
|
|
adds r0, r4, 0
|
|
bl MetatileBehavior_IsAsh
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080D3856
|
|
_080D3846:
|
|
adds r0, r5, 0x6
|
|
add r0, r9
|
|
ldr r3, =gUnknown_03001108
|
|
adds r0, r3
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
movs r0, 0x1
|
|
str r0, [sp, 0x10]
|
|
_080D3856:
|
|
mov r1, r8
|
|
lsls r0, r1, 16
|
|
asrs r0, 16
|
|
ldr r2, [sp, 0x14]
|
|
asrs r1, r2, 16
|
|
bl MapGridIsImpassableAt
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080D3890
|
|
adds r0, r7, r6
|
|
adds r0, r5
|
|
mov r3, sp
|
|
adds r1, r3, r0
|
|
b _080D38C4
|
|
.pool
|
|
_080D3890:
|
|
adds r0, r7, r6
|
|
adds r0, r5
|
|
mov r2, sp
|
|
adds r1, r2, r0
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
bl MetatileBehavior_IsCuttableGrass
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0x1
|
|
bne _080D38C8
|
|
adds r0, r5, 0x6
|
|
add r0, r9
|
|
ldr r3, =gUnknown_03001108
|
|
adds r0, r3
|
|
strb r1, [r0]
|
|
b _080D38C8
|
|
.pool
|
|
_080D38BC:
|
|
adds r0, r7, r6
|
|
adds r0, r5
|
|
mov r4, sp
|
|
adds r1, r4, r0
|
|
_080D38C4:
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
_080D38C8:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x2
|
|
bls _080D37F6
|
|
ldr r1, [sp, 0x18]
|
|
lsls r0, r1, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0x2
|
|
bhi _080D38DE
|
|
b _080D37D6
|
|
_080D38DE:
|
|
ldr r2, [sp, 0xC]
|
|
cmp r2, 0x34
|
|
beq _080D38EE
|
|
ldr r3, [sp, 0x10]
|
|
cmp r3, 0x1
|
|
beq _080D38EC
|
|
b _080D3A2A
|
|
_080D38EC:
|
|
b _080D3A1E
|
|
_080D38EE:
|
|
movs r6, 0
|
|
ldr r4, =gUnknown_0203AB40
|
|
mov r9, r4
|
|
ldr r0, =gUnknown_0857C608
|
|
mov r10, r0
|
|
_080D38F8:
|
|
lsls r2, r6, 2
|
|
mov r3, r10
|
|
adds r1, r2, r3
|
|
movs r0, 0
|
|
ldrsb r0, [r1, r0]
|
|
mov r4, r9
|
|
ldrh r4, [r4]
|
|
adds r0, r4
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r8, r0
|
|
movs r0, 0x1
|
|
ldrsb r0, [r1, r0]
|
|
mov r1, r9
|
|
ldrh r1, [r1, 0x2]
|
|
adds r0, r1
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
movs r7, 0x1
|
|
movs r5, 0
|
|
ldr r3, =gUnknown_0857C608 + 2
|
|
adds r0, r2, r3
|
|
ldrb r0, [r0]
|
|
adds r6, 0x1
|
|
str r6, [sp, 0x18]
|
|
adds r6, r2, 0
|
|
cmp r0, 0
|
|
beq _080D395A
|
|
_080D3930:
|
|
adds r1, r2, 0
|
|
adds r0, r5, r2
|
|
adds r0, r3
|
|
ldrb r0, [r0]
|
|
subs r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add r0, sp
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _080D39F4
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x1
|
|
bhi _080D395A
|
|
adds r0, r5, r1
|
|
adds r0, r3
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _080D3930
|
|
_080D395A:
|
|
cmp r7, 0x1
|
|
bne _080D3A0C
|
|
mov r1, r8
|
|
lsls r0, r1, 16
|
|
asrs r5, r0, 16
|
|
lsls r0, r4, 16
|
|
asrs r4, r0, 16
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl MapGridGetZCoordAt
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r2, r9
|
|
movs r1, 0x4
|
|
ldrsb r1, [r2, r1]
|
|
cmp r0, r1
|
|
bne _080D3A0C
|
|
mov r3, r10
|
|
adds r2, r6, r3
|
|
movs r1, 0x1
|
|
ldrsb r1, [r2, r1]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
adds r0, 0xC
|
|
ldrb r2, [r2]
|
|
adds r0, r2
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl MapGridGetMetatileBehaviorAt
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
adds r0, r4, 0
|
|
bl MetatileBehavior_IsPokeGrass
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _080D39BC
|
|
adds r0, r4, 0
|
|
bl MetatileBehavior_IsAsh
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080D39F8
|
|
_080D39BC:
|
|
ldr r1, =gUnknown_03005DB0
|
|
ldr r0, =FieldCallback_Teleport
|
|
str r0, [r1]
|
|
ldr r1, =gUnknown_0203CEEC
|
|
ldr r0, =hm2_ruin_valley
|
|
str r0, [r1]
|
|
ldr r0, =gUnknown_03001108
|
|
adds r0, r6, r0
|
|
strb r7, [r0]
|
|
movs r4, 0x1
|
|
str r4, [sp, 0x10]
|
|
b _080D3A0C
|
|
.pool
|
|
_080D39F4:
|
|
movs r7, 0
|
|
b _080D395A
|
|
_080D39F8:
|
|
adds r0, r4, 0
|
|
bl MetatileBehavior_IsCuttableGrass
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0x1
|
|
bne _080D3A0C
|
|
ldr r0, =gUnknown_03001108
|
|
adds r0, r6, r0
|
|
strb r1, [r0]
|
|
_080D3A0C:
|
|
ldr r1, [sp, 0x18]
|
|
lsls r0, r1, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0xF
|
|
bhi _080D3A18
|
|
b _080D38F8
|
|
_080D3A18:
|
|
ldr r2, [sp, 0x10]
|
|
cmp r2, 0x1
|
|
bne _080D3A2A
|
|
_080D3A1E:
|
|
ldr r1, =gUnknown_03005DB0
|
|
ldr r0, =FieldCallback_Teleport
|
|
str r0, [r1]
|
|
ldr r1, =gUnknown_0203CEEC
|
|
ldr r0, =hm2_ruin_valley
|
|
str r0, [r1]
|
|
_080D3A2A:
|
|
ldr r0, [sp, 0x10]
|
|
_080D3A2C:
|
|
add sp, 0x1C
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_80D3718
|
|
|
|
thumb_func_start hm2_ruin_valley
|
|
hm2_ruin_valley: @ 80D3A50
|
|
push {lr}
|
|
movs r0, 0x1
|
|
bl FieldEffectStart
|
|
bl GetCursorSelectionMonId
|
|
ldr r1, =gFieldEffectArguments
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end hm2_ruin_valley
|
|
|
|
thumb_func_start sub_80D3A6C
|
|
sub_80D3A6C: @ 80D3A6C
|
|
push {lr}
|
|
bl oei_task_add
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
ldr r2, =sub_80D3AEC
|
|
lsrs r0, r2, 16
|
|
strh r0, [r1, 0x18]
|
|
strh r2, [r1, 0x1A]
|
|
movs r0, 0x12
|
|
bl IncrementGameStat
|
|
movs r0, 0
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_80D3A6C
|
|
|
|
thumb_func_start sub_80D3A9C
|
|
sub_80D3A9C: @ 80D3A9C
|
|
push {lr}
|
|
bl GetCursorSelectionMonId
|
|
ldr r1, =gFieldEffectArguments
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r0, [r1]
|
|
ldr r0, =Route103_EventScript_290705
|
|
bl ScriptContext1_SetupScript
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80D3A9C
|
|
|
|
thumb_func_start sub_80D3ABC
|
|
sub_80D3ABC: @ 80D3ABC
|
|
push {lr}
|
|
bl oei_task_add
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
ldr r2, =sub_80D4354
|
|
lsrs r0, r2, 16
|
|
strh r0, [r1, 0x18]
|
|
strh r2, [r1, 0x1A]
|
|
movs r0, 0x12
|
|
bl IncrementGameStat
|
|
movs r0, 0
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_80D3ABC
|
|
|
|
thumb_func_start sub_80D3AEC
|
|
sub_80D3AEC: @ 80D3AEC
|
|
push {lr}
|
|
movs r0, 0x1
|
|
bl FieldEffectActiveListRemove
|
|
movs r0, 0x3A
|
|
bl FieldEffectStart
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80D3AEC
|
|
|
|
thumb_func_start sub_80D3B00
|
|
sub_80D3B00: @ 80D3B00
|
|
push {r4-r7,lr}
|
|
movs r6, 0
|
|
movs r0, 0x80
|
|
bl PlaySE
|
|
ldr r4, =gUnknown_0203AB40
|
|
adds r1, r4, 0x2
|
|
adds r0, r4, 0
|
|
bl PlayerGetDestCoords
|
|
adds r7, r4, 0
|
|
_080D3B16:
|
|
ldr r0, =gUnknown_03001108
|
|
adds r0, r6, r0
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _080D3B64
|
|
adds r0, r6, 0
|
|
movs r1, 0x5
|
|
bl __umodsi3
|
|
adds r4, r0, 0
|
|
subs r4, 0x2
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r6, 0
|
|
movs r1, 0x5
|
|
bl __udivsi3
|
|
adds r5, r0, 0
|
|
subs r5, 0x2
|
|
lsls r4, 24
|
|
asrs r4, 24
|
|
ldrh r0, [r7]
|
|
adds r4, r0
|
|
lsls r5, 24
|
|
asrs r5, 24
|
|
ldrh r2, [r7, 0x2]
|
|
adds r5, r2
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
lsls r5, 16
|
|
asrs r5, 16
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80D3C10
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_808E75C
|
|
_080D3B64:
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0x18
|
|
bls _080D3B16
|
|
ldr r2, =gUnknown_0203AB40
|
|
ldr r0, =gUnknown_03001101
|
|
ldrb r1, [r0]
|
|
ldrh r0, [r2]
|
|
subs r0, r1
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
ldr r1, =gUnknown_03001102
|
|
ldrb r1, [r1]
|
|
mvns r1, r1
|
|
ldrh r2, [r2, 0x2]
|
|
adds r1, r2
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
bl sub_80D3D5C
|
|
bl DrawWholeMapView
|
|
ldr r4, =gUnknown_02039DD0
|
|
movs r0, 0x8
|
|
bl AllocZeroed
|
|
str r0, [r4]
|
|
movs r6, 0
|
|
ldr r5, =gSprites
|
|
_080D3BA0:
|
|
ldr r0, =gPlayerAvatar
|
|
ldrb r1, [r0, 0x4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
ldrh r1, [r0, 0x2]
|
|
lsls r1, 23
|
|
lsrs r1, 7
|
|
movs r2, 0x80
|
|
lsls r2, 12
|
|
adds r1, r2
|
|
asrs r1, 16
|
|
ldrb r2, [r0]
|
|
adds r2, 0x14
|
|
ldr r0, =gUnknown_0857C66C
|
|
movs r3, 0
|
|
bl CreateSprite
|
|
ldr r1, [r4]
|
|
adds r1, r6
|
|
strb r0, [r1]
|
|
ldr r0, [r4]
|
|
adds r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
lsls r1, r6, 5
|
|
strh r1, [r0, 0x32]
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0x7
|
|
bls _080D3BA0
|
|
movs r0, 0
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_80D3B00
|
|
|
|
thumb_func_start sub_80D3C10
|
|
sub_80D3C10: @ 80D3C10
|
|
push {r4-r7,lr}
|
|
lsls r0, 16
|
|
lsls r1, 16
|
|
lsrs r6, r0, 16
|
|
asrs r4, r0, 16
|
|
lsrs r7, r1, 16
|
|
asrs r5, r1, 16
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl MapGridGetMetatileIdAt
|
|
adds r1, r0, 0
|
|
ldr r0, =0x00000207
|
|
cmp r1, r0
|
|
bgt _080D3C5C
|
|
subs r0, 0x1
|
|
cmp r1, r0
|
|
bge _080D3CD4
|
|
cmp r1, 0x25
|
|
beq _080D3CF6
|
|
cmp r1, 0x25
|
|
bgt _080D3C4C
|
|
cmp r1, 0xD
|
|
beq _080D3C9C
|
|
cmp r1, 0x15
|
|
beq _080D3C9C
|
|
b _080D3D00
|
|
.pool
|
|
_080D3C4C:
|
|
movs r0, 0xE3
|
|
lsls r0, 1
|
|
cmp r1, r0
|
|
beq _080D3CAC
|
|
adds r0, 0x1
|
|
cmp r1, r0
|
|
beq _080D3CB2
|
|
b _080D3D00
|
|
_080D3C5C:
|
|
ldr r0, =0x00000212
|
|
cmp r1, r0
|
|
beq _080D3CE4
|
|
cmp r1, r0
|
|
bgt _080D3C78
|
|
subs r0, 0xA
|
|
cmp r1, r0
|
|
beq _080D3C9C
|
|
adds r0, 0x2
|
|
cmp r1, r0
|
|
beq _080D3CE4
|
|
b _080D3D00
|
|
.pool
|
|
_080D3C78:
|
|
ldr r0, =0x00000282
|
|
cmp r1, r0
|
|
beq _080D3CC4
|
|
cmp r1, r0
|
|
bgt _080D3C90
|
|
subs r0, 0x1
|
|
cmp r1, r0
|
|
beq _080D3CBC
|
|
b _080D3D00
|
|
.pool
|
|
_080D3C90:
|
|
ldr r0, =0x00000283
|
|
cmp r1, r0
|
|
beq _080D3CCC
|
|
b _080D3D00
|
|
.pool
|
|
_080D3C9C:
|
|
lsls r0, r6, 16
|
|
asrs r0, 16
|
|
lsls r1, r7, 16
|
|
asrs r1, 16
|
|
movs r2, 0x1
|
|
bl MapGridSetMetatileIdAt
|
|
b _080D3D00
|
|
_080D3CAC:
|
|
movs r2, 0xE7
|
|
lsls r2, 1
|
|
b _080D3CD6
|
|
_080D3CB2:
|
|
ldr r2, =0x000001cf
|
|
b _080D3CD6
|
|
.pool
|
|
_080D3CBC:
|
|
ldr r2, =0x00000279
|
|
b _080D3CD6
|
|
.pool
|
|
_080D3CC4:
|
|
ldr r2, =0x0000027a
|
|
b _080D3CD6
|
|
.pool
|
|
_080D3CCC:
|
|
ldr r2, =0x0000027b
|
|
b _080D3CD6
|
|
.pool
|
|
_080D3CD4:
|
|
ldr r2, =0x00000271
|
|
_080D3CD6:
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl MapGridSetMetatileIdAt
|
|
b _080D3D00
|
|
.pool
|
|
_080D3CE4:
|
|
lsls r0, r6, 16
|
|
asrs r0, 16
|
|
lsls r1, r7, 16
|
|
asrs r1, 16
|
|
movs r2, 0x86
|
|
lsls r2, 2
|
|
bl MapGridSetMetatileIdAt
|
|
b _080D3D00
|
|
_080D3CF6:
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0xE
|
|
bl MapGridSetMetatileIdAt
|
|
_080D3D00:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80D3C10
|
|
|
|
thumb_func_start sub_80D3D08
|
|
sub_80D3D08: @ 80D3D08
|
|
push {lr}
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
bl MapGridGetMetatileIdAt
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
adds r2, r1, 0
|
|
cmp r1, 0x1
|
|
bne _080D3D24
|
|
movs r0, 0x1
|
|
b _080D3D56
|
|
_080D3D24:
|
|
ldr r0, =0x00000279
|
|
cmp r1, r0
|
|
bne _080D3D34
|
|
movs r0, 0x2
|
|
b _080D3D56
|
|
.pool
|
|
_080D3D34:
|
|
ldr r0, =0x0000027a
|
|
cmp r1, r0
|
|
bne _080D3D44
|
|
movs r0, 0x3
|
|
b _080D3D56
|
|
.pool
|
|
_080D3D44:
|
|
ldr r0, =0x0000027b
|
|
cmp r2, r0
|
|
beq _080D3D54
|
|
movs r0, 0
|
|
b _080D3D56
|
|
.pool
|
|
_080D3D54:
|
|
movs r0, 0x4
|
|
_080D3D56:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80D3D08
|
|
|
|
thumb_func_start sub_80D3D5C
|
|
sub_80D3D5C: @ 80D3D5C
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r9, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
mov r10, r1
|
|
ldr r1, =gUnknown_03001100
|
|
ldrb r2, [r1]
|
|
mov r3, r10
|
|
adds r0, r2, r3
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
str r0, [sp]
|
|
movs r4, 0
|
|
cmp r4, r2
|
|
blt _080D3D8A
|
|
b _080D3EA0
|
|
_080D3D8A:
|
|
lsls r0, r3, 16
|
|
asrs r7, r0, 16
|
|
_080D3D8E:
|
|
mov r1, r9
|
|
lsls r0, r1, 16
|
|
asrs r0, 16
|
|
lsls r4, 16
|
|
asrs r1, r4, 16
|
|
adds r0, r1
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
asrs r5, r0, 16
|
|
adds r0, r5, 0
|
|
adds r1, r7, 0
|
|
bl MapGridGetMetatileIdAt
|
|
mov r8, r4
|
|
cmp r0, 0x15
|
|
bne _080D3E12
|
|
adds r4, r7, 0x1
|
|
lsls r1, r4, 16
|
|
asrs r1, 16
|
|
adds r0, r5, 0
|
|
bl sub_80D3D08
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x2
|
|
beq _080D3DE8
|
|
cmp r0, 0x2
|
|
bgt _080D3DD0
|
|
cmp r0, 0x1
|
|
beq _080D3DDA
|
|
b _080D3E12
|
|
.pool
|
|
_080D3DD0:
|
|
cmp r0, 0x3
|
|
beq _080D3DF8
|
|
cmp r0, 0x4
|
|
beq _080D3E08
|
|
b _080D3E12
|
|
_080D3DDA:
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x82
|
|
lsls r2, 2
|
|
bl MapGridSetMetatileIdAt
|
|
b _080D3E12
|
|
_080D3DE8:
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
ldr r2, =0x00000281
|
|
bl MapGridSetMetatileIdAt
|
|
b _080D3E12
|
|
.pool
|
|
_080D3DF8:
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
ldr r2, =0x00000282
|
|
bl MapGridSetMetatileIdAt
|
|
b _080D3E12
|
|
.pool
|
|
_080D3E08:
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
ldr r2, =0x00000283
|
|
bl MapGridSetMetatileIdAt
|
|
_080D3E12:
|
|
lsls r0, r6, 16
|
|
asrs r5, r0, 16
|
|
ldr r3, [sp]
|
|
lsls r0, r3, 16
|
|
asrs r4, r0, 16
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl MapGridGetMetatileIdAt
|
|
cmp r0, 0x1
|
|
bne _080D3E8C
|
|
adds r4, 0x1
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl MapGridGetMetatileIdAt
|
|
movs r1, 0x82
|
|
lsls r1, 2
|
|
cmp r0, r1
|
|
bne _080D3E44
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x1
|
|
bl MapGridSetMetatileIdAt
|
|
_080D3E44:
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl MapGridGetMetatileIdAt
|
|
ldr r1, =0x00000281
|
|
cmp r0, r1
|
|
bne _080D3E5C
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
ldr r2, =0x00000279
|
|
bl MapGridSetMetatileIdAt
|
|
_080D3E5C:
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl MapGridGetMetatileIdAt
|
|
ldr r1, =0x00000282
|
|
cmp r0, r1
|
|
bne _080D3E74
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
ldr r2, =0x0000027a
|
|
bl MapGridSetMetatileIdAt
|
|
_080D3E74:
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl MapGridGetMetatileIdAt
|
|
ldr r1, =0x00000283
|
|
cmp r0, r1
|
|
bne _080D3E8C
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
ldr r2, =0x0000027b
|
|
bl MapGridSetMetatileIdAt
|
|
_080D3E8C:
|
|
movs r1, 0x80
|
|
lsls r1, 9
|
|
add r1, r8
|
|
lsrs r4, r1, 16
|
|
asrs r1, 16
|
|
ldr r0, =gUnknown_03001100
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
bge _080D3EA0
|
|
b _080D3D8E
|
|
_080D3EA0:
|
|
ldr r1, =gUnknown_03001100
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x5
|
|
bne _080D3EC8
|
|
mov r3, r9
|
|
lsls r5, r3, 16
|
|
asrs r5, 16
|
|
mov r0, r10
|
|
lsls r4, r0, 16
|
|
asrs r4, 16
|
|
movs r0, 0
|
|
adds r1, r5, 0
|
|
adds r2, r4, 0
|
|
bl sub_80D3EF4
|
|
movs r0, 0x1
|
|
adds r1, r5, 0
|
|
adds r2, r4, 0
|
|
bl sub_80D3EF4
|
|
_080D3EC8:
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80D3D5C
|
|
|
|
thumb_func_start sub_80D3EF4
|
|
sub_80D3EF4: @ 80D3EF4
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 16
|
|
lsrs r5, r1, 16
|
|
adds r3, r5, 0
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
mov r10, r2
|
|
cmp r0, 0
|
|
bne _080D3F2C
|
|
mov r2, sp
|
|
ldr r1, =gUnknown_03001108
|
|
ldrb r0, [r1, 0x5]
|
|
strb r0, [r2]
|
|
ldrb r0, [r1, 0xA]
|
|
strb r0, [r2, 0x1]
|
|
ldrb r0, [r1, 0xF]
|
|
strb r0, [r2, 0x2]
|
|
mov r8, r5
|
|
b _080D3F4E
|
|
.pool
|
|
_080D3F2C:
|
|
cmp r0, 0x1
|
|
beq _080D3F32
|
|
b _080D414A
|
|
_080D3F32:
|
|
mov r2, sp
|
|
ldr r1, =gUnknown_03001108
|
|
ldrb r0, [r1, 0x9]
|
|
strb r0, [r2]
|
|
ldrb r0, [r1, 0xE]
|
|
strb r0, [r2, 0x1]
|
|
ldrb r0, [r1, 0x13]
|
|
strb r0, [r2, 0x2]
|
|
lsls r0, r3, 16
|
|
movs r1, 0x80
|
|
lsls r1, 11
|
|
adds r0, r1
|
|
lsrs r0, 16
|
|
mov r8, r0
|
|
_080D3F4E:
|
|
mov r0, sp
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _080D3FC6
|
|
mov r1, r8
|
|
lsls r0, r1, 16
|
|
asrs r5, r0, 16
|
|
mov r1, r10
|
|
lsls r0, r1, 16
|
|
asrs r0, 16
|
|
adds r4, r0, 0x3
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl MapGridGetMetatileIdAt
|
|
movs r1, 0x82
|
|
lsls r1, 2
|
|
cmp r0, r1
|
|
bne _080D3F7E
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x1
|
|
bl MapGridSetMetatileIdAt
|
|
_080D3F7E:
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl MapGridGetMetatileIdAt
|
|
ldr r1, =0x00000281
|
|
cmp r0, r1
|
|
bne _080D3F96
|
|
ldr r2, =0x00000279
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl MapGridSetMetatileIdAt
|
|
_080D3F96:
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl MapGridGetMetatileIdAt
|
|
ldr r1, =0x00000282
|
|
cmp r0, r1
|
|
bne _080D3FAE
|
|
ldr r2, =0x0000027a
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl MapGridSetMetatileIdAt
|
|
_080D3FAE:
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl MapGridGetMetatileIdAt
|
|
ldr r1, =0x00000283
|
|
cmp r0, r1
|
|
bne _080D3FC6
|
|
ldr r2, =0x0000027b
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl MapGridSetMetatileIdAt
|
|
_080D3FC6:
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x1]
|
|
cmp r0, 0x1
|
|
bne _080D40C0
|
|
mov r0, r8
|
|
lsls r5, r0, 16
|
|
asrs r6, r5, 16
|
|
mov r1, r10
|
|
lsls r4, r1, 16
|
|
asrs r7, r4, 16
|
|
adds r1, r7, 0x2
|
|
adds r0, r6, 0
|
|
bl MapGridGetMetatileIdAt
|
|
mov r9, r4
|
|
cmp r0, 0x15
|
|
bne _080D4056
|
|
adds r4, r7, 0x3
|
|
lsls r1, r4, 16
|
|
asrs r1, 16
|
|
adds r0, r6, 0
|
|
bl sub_80D3D08
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x2
|
|
beq _080D4034
|
|
cmp r0, 0x2
|
|
bgt _080D4024
|
|
cmp r0, 0x1
|
|
beq _080D402E
|
|
b _080D4056
|
|
.pool
|
|
_080D4024:
|
|
cmp r0, 0x3
|
|
beq _080D403C
|
|
cmp r0, 0x4
|
|
beq _080D404C
|
|
b _080D4056
|
|
_080D402E:
|
|
movs r2, 0x82
|
|
lsls r2, 2
|
|
b _080D403E
|
|
_080D4034:
|
|
ldr r2, =0x00000281
|
|
b _080D403E
|
|
.pool
|
|
_080D403C:
|
|
ldr r2, =0x00000282
|
|
_080D403E:
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl MapGridSetMetatileIdAt
|
|
b _080D4056
|
|
.pool
|
|
_080D404C:
|
|
ldr r2, =0x00000283
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl MapGridSetMetatileIdAt
|
|
_080D4056:
|
|
asrs r5, 16
|
|
mov r1, r9
|
|
asrs r0, r1, 16
|
|
adds r4, r0, 0x4
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl MapGridGetMetatileIdAt
|
|
movs r1, 0x82
|
|
lsls r1, 2
|
|
cmp r0, r1
|
|
bne _080D4078
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x1
|
|
bl MapGridSetMetatileIdAt
|
|
_080D4078:
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl MapGridGetMetatileIdAt
|
|
ldr r1, =0x00000281
|
|
cmp r0, r1
|
|
bne _080D4090
|
|
ldr r2, =0x00000279
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl MapGridSetMetatileIdAt
|
|
_080D4090:
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl MapGridGetMetatileIdAt
|
|
ldr r1, =0x00000282
|
|
cmp r0, r1
|
|
bne _080D40A8
|
|
ldr r2, =0x0000027a
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl MapGridSetMetatileIdAt
|
|
_080D40A8:
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl MapGridGetMetatileIdAt
|
|
ldr r1, =0x00000283
|
|
cmp r0, r1
|
|
bne _080D40C0
|
|
ldr r2, =0x0000027b
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl MapGridSetMetatileIdAt
|
|
_080D40C0:
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x2]
|
|
cmp r0, 0x1
|
|
bne _080D414A
|
|
mov r1, r8
|
|
lsls r0, r1, 16
|
|
asrs r5, r0, 16
|
|
mov r1, r10
|
|
lsls r0, r1, 16
|
|
asrs r4, r0, 16
|
|
adds r1, r4, 0x3
|
|
adds r0, r5, 0
|
|
bl MapGridGetMetatileIdAt
|
|
cmp r0, 0x15
|
|
bne _080D414A
|
|
adds r4, 0x4
|
|
lsls r1, r4, 16
|
|
asrs r1, 16
|
|
adds r0, r5, 0
|
|
bl sub_80D3D08
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x2
|
|
beq _080D4128
|
|
cmp r0, 0x2
|
|
bgt _080D4118
|
|
cmp r0, 0x1
|
|
beq _080D4122
|
|
b _080D414A
|
|
.pool
|
|
_080D4118:
|
|
cmp r0, 0x3
|
|
beq _080D4130
|
|
cmp r0, 0x4
|
|
beq _080D4140
|
|
b _080D414A
|
|
_080D4122:
|
|
movs r2, 0x82
|
|
lsls r2, 2
|
|
b _080D4132
|
|
_080D4128:
|
|
ldr r2, =0x00000281
|
|
b _080D4132
|
|
.pool
|
|
_080D4130:
|
|
ldr r2, =0x00000282
|
|
_080D4132:
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl MapGridSetMetatileIdAt
|
|
b _080D414A
|
|
.pool
|
|
_080D4140:
|
|
ldr r2, =0x00000283
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl MapGridSetMetatileIdAt
|
|
_080D414A:
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80D3EF4
|
|
|
|
thumb_func_start objc_8097BA8
|
|
objc_8097BA8: @ 80D4160
|
|
movs r2, 0
|
|
movs r1, 0x8
|
|
strh r1, [r0, 0x2E]
|
|
strh r2, [r0, 0x30]
|
|
strh r2, [r0, 0x34]
|
|
ldr r1, =objc_8097BBC
|
|
str r1, [r0, 0x1C]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end objc_8097BA8
|
|
|
|
thumb_func_start objc_8097BBC
|
|
objc_8097BBC: @ 80D4174
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x32
|
|
ldrsh r0, [r4, r1]
|
|
movs r2, 0x2E
|
|
ldrsh r1, [r4, r2]
|
|
bl Sin
|
|
strh r0, [r4, 0x24]
|
|
movs r1, 0x32
|
|
ldrsh r0, [r4, r1]
|
|
movs r2, 0x2E
|
|
ldrsh r1, [r4, r2]
|
|
bl Cos
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x8
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r4, 0x32]
|
|
ldrh r1, [r4, 0x2E]
|
|
adds r1, 0x1
|
|
ldrh r2, [r4, 0x34]
|
|
lsls r0, r2, 16
|
|
asrs r0, 18
|
|
adds r1, r0
|
|
strh r1, [r4, 0x2E]
|
|
adds r2, 0x1
|
|
strh r2, [r4, 0x34]
|
|
ldrh r1, [r4, 0x30]
|
|
movs r2, 0x30
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0x1C
|
|
beq _080D41C0
|
|
adds r0, r1, 0x1
|
|
strh r0, [r4, 0x30]
|
|
b _080D41C4
|
|
_080D41C0:
|
|
ldr r0, =sub_80D41D0
|
|
str r0, [r4, 0x1C]
|
|
_080D41C4:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end objc_8097BBC
|
|
|
|
thumb_func_start sub_80D41D0
|
|
sub_80D41D0: @ 80D41D0
|
|
push {r4-r6,lr}
|
|
movs r4, 0x1
|
|
_080D41D4:
|
|
ldr r6, =gUnknown_02039DD0
|
|
ldr r0, [r6]
|
|
adds r0, r4
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r5, =gSprites
|
|
adds r0, r5
|
|
bl DestroySprite
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x7
|
|
bls _080D41D4
|
|
ldr r0, [r6]
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
movs r1, 0x3A
|
|
bl FieldEffectStop
|
|
ldr r0, [r6]
|
|
bl Free
|
|
movs r0, 0
|
|
str r0, [r6]
|
|
bl sub_80984F4
|
|
bl ScriptContext2_Disable
|
|
bl unown_chamber_related
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080D422A
|
|
ldr r0, =FarawayIsland_Interior_EventScript_267EDB
|
|
bl ScriptContext1_SetupScript
|
|
_080D422A:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80D41D0
|
|
|
|
thumb_func_start sub_80D423C
|
|
sub_80D423C: @ 80D423C
|
|
push {r4,r5,lr}
|
|
lsls r0, 16
|
|
asrs r5, r0, 16
|
|
lsls r1, 16
|
|
asrs r4, r1, 16
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl MapGridGetMetatileBehaviorAt
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl MetatileBehavior_IsLongGrass_Duplicate
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080D42AE
|
|
adds r4, 0x1
|
|
lsls r1, r4, 16
|
|
asrs r1, 16
|
|
adds r0, r5, 0
|
|
bl sub_80D3D08
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x2
|
|
beq _080D428A
|
|
cmp r0, 0x2
|
|
bgt _080D427A
|
|
cmp r0, 0x1
|
|
beq _080D4284
|
|
b _080D42AE
|
|
_080D427A:
|
|
cmp r0, 0x3
|
|
beq _080D4294
|
|
cmp r0, 0x4
|
|
beq _080D42A4
|
|
b _080D42AE
|
|
_080D4284:
|
|
movs r2, 0x82
|
|
lsls r2, 2
|
|
b _080D4296
|
|
_080D428A:
|
|
ldr r2, =0x00000281
|
|
b _080D4296
|
|
.pool
|
|
_080D4294:
|
|
ldr r2, =0x00000282
|
|
_080D4296:
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl MapGridSetMetatileIdAt
|
|
b _080D42AE
|
|
.pool
|
|
_080D42A4:
|
|
ldr r2, =0x00000283
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl MapGridSetMetatileIdAt
|
|
_080D42AE:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80D423C
|
|
|
|
thumb_func_start sub_80D42B8
|
|
sub_80D42B8: @ 80D42B8
|
|
push {r4,r5,lr}
|
|
lsls r0, 16
|
|
asrs r4, r0, 16
|
|
lsls r1, 16
|
|
asrs r5, r1, 16
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl MapGridGetMetatileIdAt
|
|
cmp r0, 0x1
|
|
bne _080D434A
|
|
adds r5, 0x1
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl MapGridGetMetatileBehaviorAt
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl MetatileBehavior_IsLongGrassSouthEdge
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080D434A
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl MapGridGetMetatileIdAt
|
|
adds r1, r0, 0
|
|
ldr r0, =0x00000281
|
|
cmp r1, r0
|
|
beq _080D4328
|
|
cmp r1, r0
|
|
bgt _080D4308
|
|
subs r0, 0x79
|
|
cmp r1, r0
|
|
beq _080D431C
|
|
b _080D434A
|
|
.pool
|
|
_080D4308:
|
|
ldr r0, =0x00000282
|
|
cmp r1, r0
|
|
beq _080D4330
|
|
adds r0, 0x1
|
|
cmp r1, r0
|
|
beq _080D4340
|
|
b _080D434A
|
|
.pool
|
|
_080D431C:
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x1
|
|
bl MapGridSetMetatileIdAt
|
|
b _080D434A
|
|
_080D4328:
|
|
ldr r2, =0x00000279
|
|
b _080D4332
|
|
.pool
|
|
_080D4330:
|
|
ldr r2, =0x0000027a
|
|
_080D4332:
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl MapGridSetMetatileIdAt
|
|
b _080D434A
|
|
.pool
|
|
_080D4340:
|
|
ldr r2, =0x0000027b
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl MapGridSetMetatileIdAt
|
|
_080D434A:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80D42B8
|
|
|
|
thumb_func_start sub_80D4354
|
|
sub_80D4354: @ 80D4354
|
|
push {lr}
|
|
movs r0, 0x80
|
|
bl PlaySE
|
|
movs r0, 0x2
|
|
bl FieldEffectActiveListRemove
|
|
bl EnableBothScriptContexts
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80D4354
|
|
|
|
.align 2, 0 @ Don't pad with nop.
|