pokeemerald/asm/save_location.s
2017-09-16 21:32:37 -04:00

206 lines
3.4 KiB
ArmAsm
Executable File

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sav1_are_mapnumbers_in_given_list
sav1_are_mapnumbers_in_given_list: @ 81AFC84
push {r4,lr}
adds r2, r0, 0
ldr r0, =gSaveBlock1Ptr
ldr r0, [r0]
movs r1, 0x4
ldrsb r1, [r0, r1]
lsls r1, 8
ldrb r0, [r0, 0x5]
lsls r0, 24
asrs r0, 24
adds r0, r1
lsls r0, 16
lsrs r3, r0, 16
ldrh r0, [r2]
ldr r1, =0x0000ffff
cmp r0, r1
beq _081AFCC4
adds r4, r1, 0
adds r1, r2, 0
_081AFCAA:
ldrh r0, [r1]
cmp r0, r3
bne _081AFCBC
movs r0, 0x1
b _081AFCC6
.pool
_081AFCBC:
adds r1, 0x2
ldrh r0, [r1]
cmp r0, r4
bne _081AFCAA
_081AFCC4:
movs r0, 0
_081AFCC6:
pop {r4}
pop {r1}
bx r1
thumb_func_end sav1_are_mapnumbers_in_given_list
thumb_func_start sav1_is_in_pokecenter
sav1_is_in_pokecenter: @ 81AFCCC
push {lr}
ldr r0, =gUnknown_086143BC
bl sav1_are_mapnumbers_in_given_list
pop {r1}
bx r1
.pool
thumb_func_end sav1_is_in_pokecenter
thumb_func_start sub_81AFCDC
sub_81AFCDC: @ 81AFCDC
push {lr}
ldr r0, =gUnknown_0861440A
bl sav1_are_mapnumbers_in_given_list
pop {r1}
bx r1
.pool
thumb_func_end sub_81AFCDC
thumb_func_start sub_81AFCEC
sub_81AFCEC: @ 81AFCEC
push {lr}
ldr r0, =gUnknown_0861440E
bl sav1_are_mapnumbers_in_given_list
pop {r1}
bx r1
.pool
thumb_func_end sub_81AFCEC
thumb_func_start sav2_set_x9_bit3_when_sav1_in_pokecenter
sav2_set_x9_bit3_when_sav1_in_pokecenter: @ 81AFCFC
push {lr}
bl sav1_is_in_pokecenter
cmp r0, 0
bne _081AFD18
ldr r0, =gSaveBlock2Ptr
ldr r2, [r0]
ldrb r1, [r2, 0x9]
movs r0, 0xFD
ands r0, r1
b _081AFD22
.pool
_081AFD18:
ldr r0, =gSaveBlock2Ptr
ldr r2, [r0]
ldrb r1, [r2, 0x9]
movs r0, 0x2
orrs r0, r1
_081AFD22:
strb r0, [r2, 0x9]
pop {r0}
bx r0
.pool
thumb_func_end sav2_set_x9_bit3_when_sav1_in_pokecenter
thumb_func_start sub_81AFD2C
sub_81AFD2C: @ 81AFD2C
push {lr}
bl sub_81AFCDC
cmp r0, 0
bne _081AFD48
ldr r0, =gSaveBlock2Ptr
ldr r2, [r0]
ldrb r1, [r2, 0x9]
movs r0, 0xFB
ands r0, r1
b _081AFD52
.pool
_081AFD48:
ldr r0, =gSaveBlock2Ptr
ldr r2, [r0]
ldrb r1, [r2, 0x9]
movs r0, 0x4
orrs r0, r1
_081AFD52:
strb r0, [r2, 0x9]
pop {r0}
bx r0
.pool
thumb_func_end sub_81AFD2C
thumb_func_start sub_81AFD5C
sub_81AFD5C: @ 81AFD5C
push {lr}
bl sub_81AFCEC
cmp r0, 0
bne _081AFD78
ldr r0, =gSaveBlock2Ptr
ldr r2, [r0]
ldrb r1, [r2, 0x9]
movs r0, 0xF7
ands r0, r1
b _081AFD82
.pool
_081AFD78:
ldr r0, =gSaveBlock2Ptr
ldr r2, [r0]
ldrb r1, [r2, 0x9]
movs r0, 0x8
orrs r0, r1
_081AFD82:
strb r0, [r2, 0x9]
pop {r0}
bx r0
.pool
thumb_func_end sub_81AFD5C
thumb_func_start sav2_set_x9_depending_on_sav1_map
sav2_set_x9_depending_on_sav1_map: @ 81AFD8C
push {lr}
bl sav2_set_x9_bit3_when_sav1_in_pokecenter
bl sub_81AFD2C
bl sub_81AFD5C
pop {r0}
bx r0
thumb_func_end sav2_set_x9_depending_on_sav1_map
thumb_func_start sub_81AFDA0
sub_81AFDA0: @ 81AFDA0
ldr r0, =gSaveBlock2Ptr
ldr r2, [r0]
adds r2, 0xA8
ldr r0, [r2]
movs r1, 0x80
lsls r1, 8
orrs r0, r1
movs r1, 0x1
orrs r0, r1
movs r1, 0x2
orrs r0, r1
movs r1, 0x4
orrs r0, r1
movs r1, 0x10
orrs r0, r1
movs r1, 0x20
orrs r0, r1
movs r1, 0x8
orrs r0, r1
str r0, [r2]
bx lr
.pool
thumb_func_end sub_81AFDA0
thumb_func_start sub_81AFDD0
sub_81AFDD0: @ 81AFDD0
ldr r0, =gSaveBlock2Ptr
ldr r2, [r0]
ldrb r1, [r2, 0x9]
movs r0, 0x80
orrs r0, r1
strb r0, [r2, 0x9]
bx lr
.pool
thumb_func_end sub_81AFDD0
.align 2, 0 @ Don't pad with nop.