summaryrefslogtreecommitdiff
path: root/asm/var.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/var.s')
-rw-r--r--asm/var.s104
1 files changed, 104 insertions, 0 deletions
diff --git a/asm/var.s b/asm/var.s
new file mode 100644
index 000000000..366a5355f
--- /dev/null
+++ b/asm/var.s
@@ -0,0 +1,104 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start GetVarPointer
+GetVarPointer: @ 8069210
+ push {lr}
+ lsls r0, 16
+ lsrs r1, r0, 16
+ adds r2, r1, 0
+ ldr r0, _08069224
+ cmp r1, r0
+ bhi _08069228
+ movs r0, 0
+ b _0806924A
+ .align 2, 0
+_08069224: .4byte 0x00003fff
+_08069228:
+ lsls r0, r1, 16
+ cmp r0, 0
+ bge _08069244
+ ldr r0, _0806923C
+ ldr r2, _08069240
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, [r1]
+ b _0806924A
+ .align 2, 0
+_0806923C: .4byte gUnknown_0814B14C
+_08069240: .4byte 0xffff8000
+_08069244:
+ lsls r0, r2, 1
+ ldr r1, _08069250
+ adds r0, r1
+_0806924A:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08069250: .4byte 0x0201ea74
+ thumb_func_end GetVarPointer
+
+ thumb_func_start VarGet
+VarGet: @ 8069254
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r4, 0
+ bl GetVarPointer
+ cmp r0, 0
+ beq _08069268
+ ldrh r0, [r0]
+ b _0806926A
+_08069268:
+ adds r0, r4, 0
+_0806926A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end VarGet
+
+ thumb_func_start VarSet
+VarSet: @ 8069270
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, 16
+ lsrs r4, r1, 16
+ bl GetVarPointer
+ cmp r0, 0
+ beq _08069288
+ strh r4, [r0]
+ movs r0, 0x1
+ b _0806928A
+_08069288:
+ movs r0, 0
+_0806928A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end VarSet
+
+ thumb_func_start VarGetFieldObjectGraphicsId
+VarGetFieldObjectGraphicsId: @ 8069290
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 8
+ ldr r1, _080692A8
+ adds r0, r1
+ lsrs r0, 16
+ bl VarGet
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080692A8: .4byte 0x40100000
+ thumb_func_end VarGetFieldObjectGraphicsId
+
+ .align 2, 0 @ Don't pad with nop.