pokeemerald-jp/asm/event_data.s
2019-09-27 01:42:56 -04:00

621 lines
11 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.text
.syntax unified
thumb_func_start InitEventData
InitEventData: @ 0x0809CBD8
push {r4, lr}
ldr r4, _0809CC0C
ldr r0, [r4]
ldr r1, _0809CC10
adds r0, r0, r1
movs r2, #0x96
lsls r2, r2, #1
movs r1, #0
bl memset
ldr r0, [r4]
ldr r1, _0809CC14
adds r0, r0, r1
movs r2, #0x80
lsls r2, r2, #2
movs r1, #0
bl memset
ldr r0, _0809CC18
movs r1, #0
movs r2, #0x10
bl memset
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0809CC0C: .4byte 0x03005AEC
_0809CC10: .4byte 0x00001270
_0809CC14: .4byte 0x0000139C
_0809CC18: .4byte 0x0203729C
thumb_func_end InitEventData
thumb_func_start ClearTempFieldEventData
ClearTempFieldEventData: @ 0x0809CC1C
push {lr}
ldr r0, _0809CC5C
ldr r0, [r0]
ldr r1, _0809CC60
adds r2, r0, r1
movs r1, #0
str r1, [r2]
ldr r1, _0809CC64
adds r0, r0, r1
movs r1, #0
movs r2, #0x20
bl memset
ldr r0, _0809CC68
bl FlagClear
ldr r0, _0809CC6C
bl FlagClear
ldr r0, _0809CC70
bl FlagClear
ldr r0, _0809CC74
bl FlagClear
movs r0, #0x88
lsls r0, r0, #4
bl FlagClear
pop {r0}
bx r0
.align 2, 0
_0809CC5C: .4byte 0x03005AEC
_0809CC60: .4byte 0x00001270
_0809CC64: .4byte 0x0000139C
_0809CC68: .4byte 0x000008AD
_0809CC6C: .4byte 0x000008AE
_0809CC70: .4byte 0x00000889
_0809CC74: .4byte 0x000008C1
thumb_func_end ClearTempFieldEventData
thumb_func_start ClearDailyFlags
ClearDailyFlags: @ 0x0809CC78
push {lr}
ldr r0, _0809CC90
ldr r0, [r0]
ldr r1, _0809CC94
adds r0, r0, r1
movs r1, #0
movs r2, #8
bl memset
pop {r0}
bx r0
.align 2, 0
_0809CC90: .4byte 0x03005AEC
_0809CC94: .4byte 0x00001394
thumb_func_end ClearDailyFlags
thumb_func_start DisableNationalPokedex
DisableNationalPokedex: @ 0x0809CC98
push {lr}
ldr r0, _0809CCB4
bl GetVarPointer
ldr r1, _0809CCB8
ldr r2, [r1]
movs r1, #0
strb r1, [r2, #0x1a]
strh r1, [r0]
ldr r0, _0809CCBC
bl FlagClear
pop {r0}
bx r0
.align 2, 0
_0809CCB4: .4byte 0x00004046
_0809CCB8: .4byte 0x03005AF0
_0809CCBC: .4byte 0x00000896
thumb_func_end DisableNationalPokedex
thumb_func_start EnableNationalPokedex
EnableNationalPokedex: @ 0x0809CCC0
push {r4, r5, lr}
ldr r0, _0809CCF4
bl GetVarPointer
ldr r4, _0809CCF8
ldr r2, [r4]
movs r5, #0
movs r1, #0xda
strb r1, [r2, #0x1a]
ldr r2, _0809CCFC
adds r1, r2, #0
strh r1, [r0]
ldr r0, _0809CD00
bl FlagSet
ldr r1, [r4]
movs r0, #1
strb r0, [r1, #0x19]
ldr r0, [r4]
strb r5, [r0, #0x18]
bl ResetPokedexScrollPositions
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_0809CCF4: .4byte 0x00004046
_0809CCF8: .4byte 0x03005AF0
_0809CCFC: .4byte 0x00000302
_0809CD00: .4byte 0x00000896
thumb_func_end EnableNationalPokedex
thumb_func_start IsNationalPokedexEnabled
IsNationalPokedexEnabled: @ 0x0809CD04
push {lr}
ldr r0, _0809CD30
ldr r0, [r0]
ldrb r0, [r0, #0x1a]
cmp r0, #0xda
bne _0809CD40
ldr r0, _0809CD34
bl VarGet
lsls r0, r0, #0x10
ldr r1, _0809CD38
cmp r0, r1
bne _0809CD40
ldr r0, _0809CD3C
bl FlagGet
lsls r0, r0, #0x18
cmp r0, #0
beq _0809CD40
movs r0, #1
b _0809CD42
.align 2, 0
_0809CD30: .4byte 0x03005AF0
_0809CD34: .4byte 0x00004046
_0809CD38: .4byte 0x03020000
_0809CD3C: .4byte 0x00000896
_0809CD40:
movs r0, #0
_0809CD42:
pop {r1}
bx r1
.align 2, 0
thumb_func_end IsNationalPokedexEnabled
thumb_func_start DisableMysteryEvent
DisableMysteryEvent: @ 0x0809CD48
push {lr}
ldr r0, _0809CD54
bl FlagClear
pop {r0}
bx r0
.align 2, 0
_0809CD54: .4byte 0x000008AC
thumb_func_end DisableMysteryEvent
thumb_func_start EnableMysteryEvent
EnableMysteryEvent: @ 0x0809CD58
push {lr}
ldr r0, _0809CD64
bl FlagSet
pop {r0}
bx r0
.align 2, 0
_0809CD64: .4byte 0x000008AC
thumb_func_end EnableMysteryEvent
thumb_func_start IsMysteryEventEnabled
IsMysteryEventEnabled: @ 0x0809CD68
push {lr}
ldr r0, _0809CD78
bl FlagGet
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
pop {r1}
bx r1
.align 2, 0
_0809CD78: .4byte 0x000008AC
thumb_func_end IsMysteryEventEnabled
thumb_func_start DisableMysteryGift
DisableMysteryGift: @ 0x0809CD7C
push {lr}
ldr r0, _0809CD88
bl FlagClear
pop {r0}
bx r0
.align 2, 0
_0809CD88: .4byte 0x000008DB
thumb_func_end DisableMysteryGift
thumb_func_start EnableMysteryGift
EnableMysteryGift: @ 0x0809CD8C
push {lr}
ldr r0, _0809CD98
bl FlagSet
pop {r0}
bx r0
.align 2, 0
_0809CD98: .4byte 0x000008DB
thumb_func_end EnableMysteryGift
thumb_func_start IsMysteryGiftEnabled
IsMysteryGiftEnabled: @ 0x0809CD9C
push {lr}
ldr r0, _0809CDAC
bl FlagGet
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
pop {r1}
bx r1
.align 2, 0
_0809CDAC: .4byte 0x000008DB
thumb_func_end IsMysteryGiftEnabled
thumb_func_start sub_0809CDB0
sub_0809CDB0: @ 0x0809CDB0
push {lr}
movs r0, #0xf2
lsls r0, r0, #1
bl FlagClear
ldr r0, _0809CE28
bl FlagClear
movs r0, #0xf3
lsls r0, r0, #1
bl FlagClear
ldr r0, _0809CE2C
bl FlagClear
movs r0, #0xf4
lsls r0, r0, #1
bl FlagClear
ldr r0, _0809CE30
bl FlagClear
movs r0, #0xf5
lsls r0, r0, #1
bl FlagClear
ldr r0, _0809CE34
bl FlagClear
movs r0, #0xf6
lsls r0, r0, #1
bl FlagClear
ldr r0, _0809CE38
bl FlagClear
movs r0, #0xf7
lsls r0, r0, #1
bl FlagClear
ldr r0, _0809CE3C
bl FlagClear
movs r0, #0xf8
lsls r0, r0, #1
bl FlagClear
ldr r0, _0809CE40
bl FlagClear
movs r0, #0xf9
lsls r0, r0, #1
bl FlagClear
ldr r0, _0809CE44
bl FlagClear
pop {r0}
bx r0
.align 2, 0
_0809CE28: .4byte 0x000001E5
_0809CE2C: .4byte 0x000001E7
_0809CE30: .4byte 0x000001E9
_0809CE34: .4byte 0x000001EB
_0809CE38: .4byte 0x000001ED
_0809CE3C: .4byte 0x000001EF
_0809CE40: .4byte 0x000001F1
_0809CE44: .4byte 0x000001F3
thumb_func_end sub_0809CDB0
thumb_func_start sub_0809CE48
sub_0809CE48: @ 0x0809CE48
push {lr}
ldr r0, _0809CE90
movs r1, #0
bl VarSet
ldr r0, _0809CE94
movs r1, #0
bl VarSet
ldr r0, _0809CE98
movs r1, #0
bl VarSet
ldr r0, _0809CE9C
movs r1, #0
bl VarSet
ldr r0, _0809CEA0
movs r1, #0
bl VarSet
ldr r0, _0809CEA4
movs r1, #0
bl VarSet
ldr r0, _0809CEA8
movs r1, #0
bl VarSet
ldr r0, _0809CEAC
movs r1, #0
bl VarSet
pop {r0}
bx r0
.align 2, 0
_0809CE90: .4byte 0x000040DD
_0809CE94: .4byte 0x000040DE
_0809CE98: .4byte 0x000040DF
_0809CE9C: .4byte 0x000040E0
_0809CEA0: .4byte 0x000040E1
_0809CEA4: .4byte 0x000040E2
_0809CEA8: .4byte 0x000040E3
_0809CEAC: .4byte 0x000040E4
thumb_func_end sub_0809CE48
thumb_func_start DisableResetRTC
DisableResetRTC: @ 0x0809CEB0
push {lr}
ldr r0, _0809CEC4
movs r1, #0
bl VarSet
ldr r0, _0809CEC8
bl FlagClear
pop {r0}
bx r0
.align 2, 0
_0809CEC4: .4byte 0x0000402C
_0809CEC8: .4byte 0x000008C2
thumb_func_end DisableResetRTC
thumb_func_start EnableResetRTC
EnableResetRTC: @ 0x0809CECC
push {lr}
ldr r0, _0809CEE4
movs r1, #0x92
lsls r1, r1, #4
bl VarSet
ldr r0, _0809CEE8
bl FlagSet
pop {r0}
bx r0
.align 2, 0
_0809CEE4: .4byte 0x0000402C
_0809CEE8: .4byte 0x000008C2
thumb_func_end EnableResetRTC
thumb_func_start CanResetRTC
CanResetRTC: @ 0x0809CEEC
push {lr}
ldr r0, _0809CF10
bl FlagGet
lsls r0, r0, #0x18
cmp r0, #0
beq _0809CF18
ldr r0, _0809CF14
bl VarGet
lsls r0, r0, #0x10
movs r1, #0x92
lsls r1, r1, #0x14
cmp r0, r1
bne _0809CF18
movs r0, #1
b _0809CF1A
.align 2, 0
_0809CF10: .4byte 0x000008C2
_0809CF14: .4byte 0x0000402C
_0809CF18:
movs r0, #0
_0809CF1A:
pop {r1}
bx r1
.align 2, 0
thumb_func_end CanResetRTC
thumb_func_start GetVarPointer
GetVarPointer: @ 0x0809CF20
push {lr}
lsls r0, r0, #0x10
lsrs r1, r0, #0x10
adds r2, r1, #0
ldr r0, _0809CF34
cmp r1, r0
bhi _0809CF38
movs r0, #0
b _0809CF60
.align 2, 0
_0809CF34: .4byte 0x00003FFF
_0809CF38:
lsls r0, r1, #0x10
cmp r0, #0
bge _0809CF54
ldr r0, _0809CF4C
ldr r2, _0809CF50
adds r1, r1, r2
lsls r1, r1, #2
adds r1, r1, r0
ldr r0, [r1]
b _0809CF60
.align 2, 0
_0809CF4C: .4byte 0x081DAF34
_0809CF50: .4byte 0xFFFF8000
_0809CF54:
ldr r0, _0809CF64
lsls r1, r2, #1
ldr r2, _0809CF68
adds r1, r1, r2
ldr r0, [r0]
adds r0, r0, r1
_0809CF60:
pop {r1}
bx r1
.align 2, 0
_0809CF64: .4byte 0x03005AEC
_0809CF68: .4byte 0xFFFF939C
thumb_func_end GetVarPointer
thumb_func_start VarGet
VarGet: @ 0x0809CF6C
push {r4, lr}
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
adds r0, r4, #0
bl GetVarPointer
cmp r0, #0
beq _0809CF80
ldrh r0, [r0]
b _0809CF82
_0809CF80:
adds r0, r4, #0
_0809CF82:
pop {r4}
pop {r1}
bx r1
thumb_func_end VarGet
thumb_func_start VarSet
VarSet: @ 0x0809CF88
push {r4, lr}
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
lsls r1, r1, #0x10
lsrs r4, r1, #0x10
bl GetVarPointer
cmp r0, #0
beq _0809CFA0
strh r4, [r0]
movs r0, #1
b _0809CFA2
_0809CFA0:
movs r0, #0
_0809CFA2:
pop {r4}
pop {r1}
bx r1
thumb_func_end VarSet
thumb_func_start VarGetEventObjectGraphicsId
VarGetEventObjectGraphicsId: @ 0x0809CFA8
push {lr}
lsls r0, r0, #0x18
lsrs r0, r0, #8
ldr r1, _0809CFC0
adds r0, r0, r1
lsrs r0, r0, #0x10
bl VarGet
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
pop {r1}
bx r1
.align 2, 0
_0809CFC0: .4byte 0x40100000
thumb_func_end VarGetEventObjectGraphicsId
thumb_func_start GetFlagPointer
GetFlagPointer: @ 0x0809CFC4
push {lr}
lsls r1, r0, #0x10
lsrs r2, r1, #0x10
adds r3, r2, #0
cmp r2, #0
bne _0809CFD4
movs r0, #0
b _0809D006
_0809CFD4:
ldr r0, _0809CFE8
cmp r2, r0
bhi _0809CFF4
ldr r0, _0809CFEC
lsrs r1, r1, #0x13
ldr r2, _0809CFF0
adds r1, r1, r2
ldr r0, [r0]
b _0809D004
.align 2, 0
_0809CFE8: .4byte 0x00003FFF
_0809CFEC: .4byte 0x03005AEC
_0809CFF0: .4byte 0x00001270
_0809CFF4:
ldr r1, _0809D00C
adds r0, r3, r1
cmp r0, #0
bge _0809D000
ldr r2, _0809D010
adds r0, r3, r2
_0809D000:
asrs r0, r0, #3
ldr r1, _0809D014
_0809D004:
adds r0, r0, r1
_0809D006:
pop {r1}
bx r1
.align 2, 0
_0809D00C: .4byte 0xFFFFC000
_0809D010: .4byte 0xFFFFC007
_0809D014: .4byte 0x0203729C
thumb_func_end GetFlagPointer
thumb_func_start FlagSet
FlagSet: @ 0x0809D018
push {r4, lr}
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
adds r0, r4, #0
bl GetFlagPointer
adds r2, r0, #0
cmp r2, #0
beq _0809D038
movs r0, #7
ands r0, r4
movs r1, #1
lsls r1, r0
ldrb r0, [r2]
orrs r1, r0
strb r1, [r2]
_0809D038:
movs r0, #0
pop {r4}
pop {r1}
bx r1
thumb_func_end FlagSet
thumb_func_start FlagClear
FlagClear: @ 0x0809D040
push {r4, lr}
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
adds r0, r4, #0
bl GetFlagPointer
adds r2, r0, #0
cmp r2, #0
beq _0809D060
movs r0, #7
ands r0, r4
movs r1, #1
lsls r1, r0
ldrb r0, [r2]
bics r0, r1
strb r0, [r2]
_0809D060:
movs r0, #0
pop {r4}
pop {r1}
bx r1
thumb_func_end FlagClear
thumb_func_start FlagGet
FlagGet: @ 0x0809D068
push {r4, lr}
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
adds r0, r4, #0
bl GetFlagPointer
cmp r0, #0
beq _0809D08C
ldrb r0, [r0]
movs r1, #7
ands r1, r4
asrs r0, r1
movs r1, #1
ands r0, r1
cmp r0, #0
beq _0809D08C
movs r0, #1
b _0809D08E
_0809D08C:
movs r0, #0
_0809D08E:
pop {r4}
pop {r1}
bx r1
thumb_func_end FlagGet