summaryrefslogtreecommitdiff
path: root/asm/landmark.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/landmark.s')
-rw-r--r--asm/landmark.s132
1 files changed, 132 insertions, 0 deletions
diff --git a/asm/landmark.s b/asm/landmark.s
new file mode 100644
index 000000000..7eed817a4
--- /dev/null
+++ b/asm/landmark.s
@@ -0,0 +1,132 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_811A8CC
+sub_811A8CC: @ 811A8CC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r5, r2, 24
+ bl sub_811A920
+ adds r4, r0, 0
+ cmp r4, 0
+ bne _0811A8E8
+_0811A8E4:
+ movs r0, 0
+ b _0811A91A
+_0811A8E8:
+ ldr r6, _0811A8EC @ =0x0000ffff
+ b _0811A8FE
+ .align 2, 0
+_0811A8EC: .4byte 0x0000ffff
+_0811A8F0:
+ subs r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+_0811A8F6:
+ adds r4, 0x4
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _0811A8E4
+_0811A8FE:
+ ldr r1, [r4]
+ ldrh r0, [r1, 0x4]
+ cmp r0, r6
+ beq _0811A912
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0811A8F6
+_0811A912:
+ cmp r5, 0
+ bne _0811A8F0
+ ldr r0, [r4]
+ ldr r0, [r0]
+_0811A91A:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811A8CC
+
+ thumb_func_start sub_811A920
+sub_811A920: @ 811A920
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r1, 24
+ lsrs r6, r1, 24
+ movs r2, 0
+ ldr r0, _0811A964 @ =gLandmarkLists
+ ldrb r1, [r0]
+ adds r4, r0, 0
+ cmp r1, 0x58
+ beq _0811A990
+ adds r1, r4, 0
+_0811A938:
+ lsls r0, r2, 3
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, r3
+ bhi _0811A990
+ cmp r0, r3
+ beq _0811A956
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ lsls r0, r2, 3
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x58
+ bne _0811A938
+_0811A956:
+ lsls r0, r2, 3
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x58
+ bne _0811A970
+ b _0811A990
+ .align 2, 0
+_0811A964: .4byte gLandmarkLists
+_0811A968:
+ adds r0, r4, 0x4
+ adds r0, r1, r0
+ ldr r0, [r0]
+ b _0811A992
+_0811A970:
+ cmp r0, r3
+ bne _0811A990
+ ldr r5, _0811A998 @ =gLandmarkLists
+_0811A976:
+ lsls r1, r2, 3
+ adds r0, r1, r5
+ ldrb r0, [r0, 0x1]
+ cmp r0, r6
+ beq _0811A968
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ lsls r0, r2, 3
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, r3
+ beq _0811A976
+_0811A990:
+ movs r0, 0
+_0811A992:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811A998: .4byte gLandmarkLists
+ thumb_func_end sub_811A920
+
+ .align 2, 0 @ Don't pad with nop.