mirror of
https://github.com/pret/pokeheartgold.git
synced 2024-11-23 21:30:05 +00:00
1517 lines
27 KiB
ArmAsm
1517 lines
27 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "overlay_12_0226ADE0.inc"
|
|
.include "global.inc"
|
|
|
|
.text
|
|
|
|
thumb_func_start ov12_0226ADE0
|
|
ov12_0226ADE0: ; 0x0226ADE0
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x18
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
mov r0, #8
|
|
mov r1, #5
|
|
add r7, r2, #0
|
|
bl NARC_New
|
|
add r6, r0, #0
|
|
str r6, [sp]
|
|
mov r0, #0x6e
|
|
str r0, [sp, #4]
|
|
mov r0, #0
|
|
str r0, [sp, #8]
|
|
mov r0, #1
|
|
str r0, [sp, #0xc]
|
|
str r0, [sp, #0x10]
|
|
ldr r0, _0226AE60 ; =0x00004E45
|
|
mov r1, #2
|
|
str r0, [sp, #0x14]
|
|
add r0, r7, #0
|
|
add r2, r5, #0
|
|
add r3, r4, #0
|
|
bl sub_0200D68C
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
ldr r0, _0226AE64 ; =0x00004FBF
|
|
mov r3, #0x55
|
|
str r0, [sp, #8]
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
add r2, r6, #0
|
|
lsl r3, r3, #2
|
|
bl SpriteRenderer_LoadCharResObjFromOpenNarc
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
ldr r0, _0226AE68 ; =0x00004FB8
|
|
ldr r3, _0226AE6C ; =0x00000155
|
|
str r0, [sp, #4]
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
add r2, r6, #0
|
|
bl SpriteRenderer_LoadCellResObjFromOpenNarc
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
ldr r0, _0226AE70 ; =0x00004FAD
|
|
ldr r3, _0226AE74 ; =0x00000156
|
|
str r0, [sp, #4]
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
add r2, r6, #0
|
|
bl SpriteRenderer_LoadAnimResObjFromOpenNarc
|
|
add r0, r6, #0
|
|
bl NARC_Delete
|
|
add sp, #0x18
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_0226AE60: .word 0x00004E45
|
|
_0226AE64: .word 0x00004FBF
|
|
_0226AE68: .word 0x00004FB8
|
|
_0226AE6C: .word 0x00000155
|
|
_0226AE70: .word 0x00004FAD
|
|
_0226AE74: .word 0x00000156
|
|
thumb_func_end ov12_0226ADE0
|
|
|
|
thumb_func_start ov12_0226AE78
|
|
ov12_0226AE78: ; 0x0226AE78
|
|
push {r4, lr}
|
|
ldr r1, _0226AE9C ; =0x00004FBF
|
|
add r4, r0, #0
|
|
bl SpriteGfxHandler_UnloadCharObjById
|
|
ldr r1, _0226AEA0 ; =0x00004E45
|
|
add r0, r4, #0
|
|
bl SpriteGfxHandler_UnloadPlttObjById
|
|
ldr r1, _0226AEA4 ; =0x00004FB8
|
|
add r0, r4, #0
|
|
bl SpriteGfxHandler_UnloadCellObjById
|
|
ldr r1, _0226AEA8 ; =0x00004FAD
|
|
add r0, r4, #0
|
|
bl SpriteGfxHandler_UnloadAnimObjById
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_0226AE9C: .word 0x00004FBF
|
|
_0226AEA0: .word 0x00004E45
|
|
_0226AEA4: .word 0x00004FB8
|
|
_0226AEA8: .word 0x00004FAD
|
|
thumb_func_end ov12_0226AE78
|
|
|
|
thumb_func_start ov12_0226AEAC
|
|
ov12_0226AEAC: ; 0x0226AEAC
|
|
push {r4, lr}
|
|
mov r0, #5
|
|
lsl r1, r0, #6
|
|
bl AllocFromHeap
|
|
mov r2, #5
|
|
mov r1, #0
|
|
lsl r2, r2, #6
|
|
add r4, r0, #0
|
|
bl MI_CpuFill8
|
|
add r0, r4, #0
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov12_0226AEAC
|
|
|
|
thumb_func_start ov12_0226AEC8
|
|
ov12_0226AEC8: ; 0x0226AEC8
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #4]
|
|
cmp r0, #0
|
|
beq _0226AED6
|
|
bl GF_AssertFail
|
|
_0226AED6:
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov12_0226AEC8
|
|
|
|
thumb_func_start ov12_0226AEE0
|
|
ov12_0226AEE0: ; 0x0226AEE0
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x20
|
|
str r0, [sp, #0x14]
|
|
ldr r0, [sp, #0x38]
|
|
add r6, r1, #0
|
|
str r0, [sp, #0x38]
|
|
ldr r0, [sp, #0x3c]
|
|
str r2, [sp, #0x18]
|
|
str r0, [sp, #0x3c]
|
|
str r3, [sp, #0x1c]
|
|
bl ov12_0226AEAC
|
|
ldr r1, [sp, #0x3c]
|
|
ldr r2, [sp, #0x1c]
|
|
str r1, [sp]
|
|
ldr r3, [sp, #0x38]
|
|
add r1, r6, #0
|
|
add r7, r0, #0
|
|
bl ov12_0226AFEC
|
|
add r5, r7, #0
|
|
mov r4, #0
|
|
add r5, #0x1c
|
|
_0226AF0E:
|
|
ldr r0, [sp, #0x14]
|
|
add r1, r6, #0
|
|
ldrb r0, [r0, r4]
|
|
bl ov12_0226B884
|
|
ldr r1, [sp, #0x1c]
|
|
ldr r3, [sp, #0x18]
|
|
str r1, [sp]
|
|
str r4, [sp, #4]
|
|
str r0, [sp, #8]
|
|
ldr r0, [sp, #0x38]
|
|
mov r1, #0x4f
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [sp, #0x3c]
|
|
lsl r1, r1, #2
|
|
str r0, [sp, #0x10]
|
|
add r0, r5, #0
|
|
add r1, r7, r1
|
|
add r2, r6, #0
|
|
bl ov12_0226B29C
|
|
add r4, r4, #1
|
|
add r5, #0x30
|
|
cmp r4, #6
|
|
blt _0226AF0E
|
|
add r0, r7, #0
|
|
add sp, #0x20
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov12_0226AEE0
|
|
|
|
thumb_func_start ov12_0226AF48
|
|
ov12_0226AF48: ; 0x0226AF48
|
|
ldr r1, [r0, #4]
|
|
cmp r1, #0
|
|
bne _0226AF66
|
|
mov r2, #0
|
|
_0226AF50:
|
|
ldr r1, [r0, #0x20]
|
|
cmp r1, #0
|
|
bne _0226AF5E
|
|
add r2, r2, #1
|
|
add r0, #0x30
|
|
cmp r2, #6
|
|
blt _0226AF50
|
|
_0226AF5E:
|
|
cmp r2, #6
|
|
bne _0226AF66
|
|
mov r0, #1
|
|
bx lr
|
|
_0226AF66:
|
|
mov r0, #0
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov12_0226AF48
|
|
|
|
thumb_func_start ov12_0226AF6C
|
|
ov12_0226AF6C: ; 0x0226AF6C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r6, r0, #0
|
|
add r4, r1, #0
|
|
add r7, r2, #0
|
|
cmp r6, #0
|
|
bne _0226AF7C
|
|
bl GF_AssertFail
|
|
_0226AF7C:
|
|
add r0, r6, #0
|
|
add r1, r4, #0
|
|
bl ov12_0226B144
|
|
add r5, r6, #0
|
|
mov r4, #0
|
|
add r5, #0x1c
|
|
add r6, #0x18
|
|
_0226AF8C:
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
add r2, r7, #0
|
|
add r3, r6, #0
|
|
bl ov12_0226B694
|
|
add r4, r4, #1
|
|
add r5, #0x30
|
|
cmp r4, #6
|
|
blt _0226AF8C
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov12_0226AF6C
|
|
|
|
thumb_func_start ov12_0226AFA4
|
|
ov12_0226AFA4: ; 0x0226AFA4
|
|
ldr r1, [r0, #4]
|
|
cmp r1, #0
|
|
bne _0226AFC2
|
|
mov r2, #0
|
|
_0226AFAC:
|
|
ldr r1, [r0, #0x20]
|
|
cmp r1, #0
|
|
bne _0226AFBA
|
|
add r2, r2, #1
|
|
add r0, #0x30
|
|
cmp r2, #6
|
|
blt _0226AFAC
|
|
_0226AFBA:
|
|
cmp r2, #6
|
|
bne _0226AFC2
|
|
mov r0, #1
|
|
bx lr
|
|
_0226AFC2:
|
|
mov r0, #0
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov12_0226AFA4
|
|
|
|
thumb_func_start ov12_0226AFC8
|
|
ov12_0226AFC8: ; 0x0226AFC8
|
|
push {r4, r5, r6, lr}
|
|
add r6, r0, #0
|
|
ldr r0, [r6]
|
|
bl sub_0200D9DC
|
|
mov r4, #0
|
|
add r5, r6, #0
|
|
_0226AFD6:
|
|
ldr r0, [r5, #0x1c]
|
|
bl sub_0200D9DC
|
|
add r4, r4, #1
|
|
add r5, #0x30
|
|
cmp r4, #6
|
|
blt _0226AFD6
|
|
add r0, r6, #0
|
|
bl ov12_0226AEC8
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end ov12_0226AFC8
|
|
|
|
thumb_func_start ov12_0226AFEC
|
|
ov12_0226AFEC: ; 0x0226AFEC
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
ldr r0, [r5]
|
|
add r6, r1, #0
|
|
add r4, r2, #0
|
|
add r7, r3, #0
|
|
mov r1, #0
|
|
cmp r0, #0
|
|
bne _0226B006
|
|
ldr r0, [r5, #4]
|
|
cmp r0, #0
|
|
bne _0226B006
|
|
mov r1, #1
|
|
_0226B006:
|
|
cmp r1, #0
|
|
bne _0226B00E
|
|
bl GF_AssertFail
|
|
_0226B00E:
|
|
add r0, r5, #0
|
|
mov r1, #0
|
|
mov r2, #0x1c
|
|
bl MI_CpuFill8
|
|
ldr r1, [sp, #0x18]
|
|
ldr r2, _0226B084 ; =ov12_0226EB38
|
|
add r0, r7, #0
|
|
bl SpriteRenderer_LoadResourcesAndCreateSprite
|
|
str r0, [r5]
|
|
cmp r6, #0
|
|
ldr r0, [r5]
|
|
bne _0226B044
|
|
ldr r2, _0226B088 ; =ov12_0226EB28
|
|
lsl r3, r4, #1
|
|
ldrsh r2, [r2, r3]
|
|
mov r1, #0x16
|
|
lsl r1, r1, #4
|
|
bl UnkImageStruct_SetSpritePositionXY
|
|
ldr r0, [r5]
|
|
mov r1, #8
|
|
ldr r0, [r0]
|
|
bl Set2dSpriteAnimSeqNo
|
|
b _0226B05C
|
|
_0226B044:
|
|
ldr r2, _0226B08C ; =ov12_0226EB20
|
|
lsl r3, r4, #1
|
|
ldrsh r2, [r2, r3]
|
|
mov r1, #0x5f
|
|
mvn r1, r1
|
|
bl UnkImageStruct_SetSpritePositionXY
|
|
ldr r0, [r5]
|
|
mov r1, #7
|
|
ldr r0, [r0]
|
|
bl Set2dSpriteAnimSeqNo
|
|
_0226B05C:
|
|
ldr r0, [r5]
|
|
ldr r0, [r0]
|
|
bl TickSpriteAnimation1Frame
|
|
str r6, [r5, #0xc]
|
|
mov r2, #0x7d
|
|
str r4, [r5, #0x10]
|
|
mov r0, #0
|
|
strb r0, [r5, #0x1a]
|
|
ldr r0, _0226B090 ; =ov12_0226B098
|
|
add r1, r5, #0
|
|
lsl r2, r2, #2
|
|
bl CreateSysTask
|
|
str r0, [r5, #4]
|
|
ldr r0, _0226B094 ; =0x00000711
|
|
bl PlaySE
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_0226B084: .word ov12_0226EB38
|
|
_0226B088: .word ov12_0226EB28
|
|
_0226B08C: .word ov12_0226EB20
|
|
_0226B090: .word ov12_0226B098
|
|
_0226B094: .word 0x00000711
|
|
thumb_func_end ov12_0226AFEC
|
|
|
|
thumb_func_start ov12_0226B098
|
|
ov12_0226B098: ; 0x0226B098
|
|
push {r3, r4, lr}
|
|
sub sp, #4
|
|
add r4, r1, #0
|
|
ldrb r1, [r4, #0x1a]
|
|
cmp r1, #0
|
|
beq _0226B0AA
|
|
cmp r1, #1
|
|
beq _0226B0C6
|
|
b _0226B12E
|
|
_0226B0AA:
|
|
add r1, sp, #0
|
|
ldr r0, [r4]
|
|
add r1, #2
|
|
add r2, sp, #0
|
|
bl UnkImageStruct_GetSpritePositionXY
|
|
add r1, sp, #0
|
|
mov r0, #2
|
|
ldrsh r0, [r1, r0]
|
|
lsl r0, r0, #8
|
|
str r0, [r4, #0x14]
|
|
ldrb r0, [r4, #0x1a]
|
|
add r0, r0, #1
|
|
strb r0, [r4, #0x1a]
|
|
_0226B0C6:
|
|
ldr r0, [r4, #0xc]
|
|
ldr r1, [r4, #0x14]
|
|
cmp r0, #0
|
|
bne _0226B0FE
|
|
mov r0, #0x12
|
|
lsl r0, r0, #8
|
|
sub r1, r1, r0
|
|
mov r0, #0xe
|
|
lsl r0, r0, #0xc
|
|
str r1, [r4, #0x14]
|
|
cmp r1, r0
|
|
bgt _0226B0E6
|
|
str r0, [r4, #0x14]
|
|
ldrb r0, [r4, #0x1a]
|
|
add r0, r0, #1
|
|
strb r0, [r4, #0x1a]
|
|
_0226B0E6:
|
|
ldr r2, [r4, #0x10]
|
|
ldr r1, [r4, #0x14]
|
|
lsl r3, r2, #1
|
|
ldr r2, _0226B13C ; =ov12_0226EB28
|
|
lsl r1, r1, #8
|
|
ldrsh r2, [r2, r3]
|
|
ldr r0, [r4]
|
|
asr r1, r1, #0x10
|
|
bl UnkImageStruct_SetSpritePositionXY
|
|
add sp, #4
|
|
pop {r3, r4, pc}
|
|
_0226B0FE:
|
|
mov r0, #0x12
|
|
lsl r0, r0, #8
|
|
add r1, r1, r0
|
|
mov r0, #2
|
|
lsl r0, r0, #0xc
|
|
str r1, [r4, #0x14]
|
|
cmp r1, r0
|
|
blt _0226B116
|
|
str r0, [r4, #0x14]
|
|
ldrb r0, [r4, #0x1a]
|
|
add r0, r0, #1
|
|
strb r0, [r4, #0x1a]
|
|
_0226B116:
|
|
ldr r2, [r4, #0x10]
|
|
ldr r1, [r4, #0x14]
|
|
lsl r3, r2, #1
|
|
ldr r2, _0226B140 ; =ov12_0226EB20
|
|
lsl r1, r1, #8
|
|
ldrsh r2, [r2, r3]
|
|
ldr r0, [r4]
|
|
asr r1, r1, #0x10
|
|
bl UnkImageStruct_SetSpritePositionXY
|
|
add sp, #4
|
|
pop {r3, r4, pc}
|
|
_0226B12E:
|
|
bl DestroySysTask
|
|
mov r0, #0
|
|
str r0, [r4, #4]
|
|
add sp, #4
|
|
pop {r3, r4, pc}
|
|
nop
|
|
_0226B13C: .word ov12_0226EB28
|
|
_0226B140: .word ov12_0226EB20
|
|
thumb_func_end ov12_0226B098
|
|
|
|
thumb_func_start ov12_0226B144
|
|
ov12_0226B144: ; 0x0226B144
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
ldr r0, [r5]
|
|
add r4, r1, #0
|
|
cmp r0, #0
|
|
beq _0226B156
|
|
ldr r0, [r5, #4]
|
|
cmp r0, #0
|
|
beq _0226B15A
|
|
_0226B156:
|
|
bl GF_AssertFail
|
|
_0226B15A:
|
|
mov r0, #0
|
|
strb r0, [r5, #0x1a]
|
|
str r4, [r5, #8]
|
|
cmp r4, #0
|
|
bne _0226B168
|
|
mov r0, #4
|
|
b _0226B168
|
|
_0226B168:
|
|
strb r0, [r5, #0x1b]
|
|
mov r2, #0x7d
|
|
ldr r0, _0226B17C ; =ov12_0226B180
|
|
add r1, r5, #0
|
|
lsl r2, r2, #2
|
|
bl CreateSysTask
|
|
str r0, [r5, #4]
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_0226B17C: .word ov12_0226B180
|
|
thumb_func_end ov12_0226B144
|
|
|
|
thumb_func_start ov12_0226B180
|
|
ov12_0226B180: ; 0x0226B180
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #8
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
ldrb r0, [r4, #0x1a]
|
|
cmp r0, #0
|
|
beq _0226B198
|
|
cmp r0, #1
|
|
beq _0226B1CE
|
|
cmp r0, #2
|
|
beq _0226B1FC
|
|
b _0226B27A
|
|
_0226B198:
|
|
add r1, sp, #4
|
|
ldr r0, [r4]
|
|
add r1, #2
|
|
add r2, sp, #4
|
|
bl UnkImageStruct_GetSpritePositionXY
|
|
add r1, sp, #4
|
|
mov r0, #2
|
|
ldrsh r1, [r1, r0]
|
|
lsl r0, r0, #0xb
|
|
mov r2, #0x3f
|
|
lsl r1, r1, #8
|
|
str r1, [r4, #0x14]
|
|
strh r0, [r4, #0x18]
|
|
mov r0, #0x18
|
|
ldrsh r0, [r4, r0]
|
|
mov r1, #0
|
|
asr r3, r0, #8
|
|
mov r0, #0x10
|
|
sub r0, r0, r3
|
|
str r0, [sp]
|
|
ldr r0, _0226B28C ; =0x04000050
|
|
bl G2x_SetBlendAlpha_
|
|
ldrb r0, [r4, #0x1a]
|
|
add r0, r0, #1
|
|
strb r0, [r4, #0x1a]
|
|
_0226B1CE:
|
|
ldrb r0, [r4, #0x1b]
|
|
cmp r0, #0
|
|
beq _0226B1DC
|
|
sub r0, r0, #1
|
|
add sp, #8
|
|
strb r0, [r4, #0x1b]
|
|
pop {r3, r4, r5, pc}
|
|
_0226B1DC:
|
|
mov r0, #0x18
|
|
ldrsh r0, [r4, r0]
|
|
asr r1, r0, #8
|
|
mov r0, #0x10
|
|
sub r0, r0, r1
|
|
lsl r0, r0, #8
|
|
orr r1, r0
|
|
ldr r0, _0226B290 ; =0x04000052
|
|
strh r1, [r0]
|
|
ldr r0, [r4]
|
|
mov r1, #1
|
|
bl sub_0200E0FC
|
|
ldrb r0, [r4, #0x1a]
|
|
add r0, r0, #1
|
|
strb r0, [r4, #0x1a]
|
|
_0226B1FC:
|
|
ldr r0, [r4, #8]
|
|
cmp r0, #0
|
|
bne _0226B240
|
|
ldr r0, [r4, #0xc]
|
|
ldr r1, [r4, #0x14]
|
|
cmp r0, #0
|
|
bne _0226B226
|
|
mov r0, #1
|
|
lsl r0, r0, #0xa
|
|
sub r1, r1, r0
|
|
str r1, [r4, #0x14]
|
|
ldr r2, [r4, #0x10]
|
|
lsl r1, r1, #8
|
|
lsl r3, r2, #1
|
|
ldr r2, _0226B294 ; =ov12_0226EB28
|
|
ldr r0, [r4]
|
|
ldrsh r2, [r2, r3]
|
|
asr r1, r1, #0x10
|
|
bl UnkImageStruct_SetSpritePositionXY
|
|
b _0226B240
|
|
_0226B226:
|
|
mov r0, #1
|
|
lsl r0, r0, #0xa
|
|
add r1, r1, r0
|
|
str r1, [r4, #0x14]
|
|
ldr r2, [r4, #0x10]
|
|
lsl r1, r1, #8
|
|
lsl r3, r2, #1
|
|
ldr r2, _0226B298 ; =ov12_0226EB20
|
|
ldr r0, [r4]
|
|
ldrsh r2, [r2, r3]
|
|
asr r1, r1, #0x10
|
|
bl UnkImageStruct_SetSpritePositionXY
|
|
_0226B240:
|
|
mov r1, #0x18
|
|
ldrsh r2, [r4, r1]
|
|
add r0, r1, #0
|
|
add r0, #0xe8
|
|
sub r0, r2, r0
|
|
strh r0, [r4, #0x18]
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, #0
|
|
bgt _0226B264
|
|
mov r1, #0
|
|
strh r1, [r4, #0x18]
|
|
ldr r0, [r4]
|
|
ldr r0, [r0]
|
|
bl thunk_Set2dSpriteVisibleFlag
|
|
ldrb r0, [r4, #0x1a]
|
|
add r0, r0, #1
|
|
strb r0, [r4, #0x1a]
|
|
_0226B264:
|
|
mov r0, #0x18
|
|
ldrsh r0, [r4, r0]
|
|
add sp, #8
|
|
asr r1, r0, #8
|
|
mov r0, #0x10
|
|
sub r0, r0, r1
|
|
lsl r0, r0, #8
|
|
orr r1, r0
|
|
ldr r0, _0226B290 ; =0x04000052
|
|
strh r1, [r0]
|
|
pop {r3, r4, r5, pc}
|
|
_0226B27A:
|
|
bl BattleSystem_SetDefaultBlend
|
|
add r0, r5, #0
|
|
bl DestroySysTask
|
|
mov r0, #0
|
|
str r0, [r4, #4]
|
|
add sp, #8
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_0226B28C: .word 0x04000050
|
|
_0226B290: .word 0x04000052
|
|
_0226B294: .word ov12_0226EB28
|
|
_0226B298: .word ov12_0226EB20
|
|
thumb_func_end ov12_0226B180
|
|
|
|
thumb_func_start ov12_0226B29C
|
|
ov12_0226B29C: ; 0x0226B29C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
ldr r0, [r5]
|
|
add r7, r1, #0
|
|
add r6, r2, #0
|
|
mov r1, #0
|
|
str r3, [sp]
|
|
ldr r4, [sp, #0x1c]
|
|
cmp r0, #0
|
|
bne _0226B2B8
|
|
ldr r0, [r5, #4]
|
|
cmp r0, #0
|
|
bne _0226B2B8
|
|
mov r1, #1
|
|
_0226B2B8:
|
|
cmp r1, #0
|
|
bne _0226B2C0
|
|
bl GF_AssertFail
|
|
_0226B2C0:
|
|
add r0, r5, #0
|
|
mov r1, #0
|
|
mov r2, #0x30
|
|
bl MI_CpuFill8
|
|
ldr r0, [sp, #0x24]
|
|
ldr r1, [sp, #0x28]
|
|
ldr r2, _0226B390 ; =ov12_0226EB6C
|
|
bl SpriteRenderer_LoadResourcesAndCreateSprite
|
|
str r0, [r5]
|
|
cmp r6, #0
|
|
ldr r0, [r5]
|
|
bne _0226B2EE
|
|
ldr r2, [sp, #0x18]
|
|
mov r1, #0x45
|
|
lsl r3, r2, #1
|
|
ldr r2, _0226B394 ; =ov12_0226EB30
|
|
lsl r1, r1, #2
|
|
ldrsh r2, [r2, r3]
|
|
bl UnkImageStruct_SetSpritePositionXY
|
|
b _0226B2FE
|
|
_0226B2EE:
|
|
ldr r2, [sp, #0x18]
|
|
mov r1, #0x13
|
|
lsl r3, r2, #1
|
|
ldr r2, _0226B398 ; =ov12_0226EB18
|
|
mvn r1, r1
|
|
ldrsh r2, [r2, r3]
|
|
bl UnkImageStruct_SetSpritePositionXY
|
|
_0226B2FE:
|
|
ldr r0, [r5]
|
|
ldr r1, [sp, #0x20]
|
|
ldr r0, [r0]
|
|
bl Set2dSpriteAnimSeqNo
|
|
ldr r0, [r5]
|
|
ldr r0, [r0]
|
|
bl TickSpriteAnimation1Frame
|
|
add r0, r5, #0
|
|
str r6, [r5, #8]
|
|
add r0, #0x2d
|
|
strb r4, [r0]
|
|
ldr r0, [sp, #0x18]
|
|
str r0, [r5, #0xc]
|
|
ldr r0, [sp, #0x20]
|
|
bl ov12_0226B8C4
|
|
add r1, r5, #0
|
|
add r1, #0x2e
|
|
strb r0, [r1]
|
|
ldr r0, [sp, #0x20]
|
|
str r7, [r5, #0x14]
|
|
cmp r0, #6
|
|
bne _0226B334
|
|
ldr r0, _0226B39C ; =0x00000713
|
|
b _0226B336
|
|
_0226B334:
|
|
ldr r0, _0226B3A0 ; =0x00000712
|
|
_0226B336:
|
|
strh r0, [r5, #0x2a]
|
|
cmp r6, #0
|
|
bne _0226B34A
|
|
lsl r0, r4, #4
|
|
add r0, #0xa2
|
|
str r0, [r5, #0x20]
|
|
mov r0, #0xf
|
|
mul r0, r4
|
|
add r0, #0x9c
|
|
b _0226B35C
|
|
_0226B34A:
|
|
lsl r1, r4, #4
|
|
mov r0, #0x5e
|
|
sub r0, r0, r1
|
|
str r0, [r5, #0x20]
|
|
mov r0, #0xf
|
|
add r1, r4, #0
|
|
mul r1, r0
|
|
mov r0, #0x64
|
|
sub r0, r0, r1
|
|
_0226B35C:
|
|
str r0, [r5, #0x24]
|
|
add r0, r5, #0
|
|
mov r1, #0
|
|
add r0, #0x2c
|
|
strb r1, [r0]
|
|
ldr r0, [sp]
|
|
ldr r2, _0226B3A4 ; =0x000001F5
|
|
cmp r0, #0
|
|
bne _0226B382
|
|
lsl r0, r4, #1
|
|
add r0, r4, r0
|
|
add r0, r0, #5
|
|
strh r0, [r5, #0x28]
|
|
ldr r0, _0226B3A8 ; =ov12_0226B3B0
|
|
add r1, r5, #0
|
|
bl CreateSysTask
|
|
str r0, [r5, #4]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0226B382:
|
|
ldr r0, _0226B3AC ; =ov12_0226B5B0
|
|
strh r1, [r5, #0x28]
|
|
add r1, r5, #0
|
|
bl CreateSysTask
|
|
str r0, [r5, #4]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_0226B390: .word ov12_0226EB6C
|
|
_0226B394: .word ov12_0226EB30
|
|
_0226B398: .word ov12_0226EB18
|
|
_0226B39C: .word 0x00000713
|
|
_0226B3A0: .word 0x00000712
|
|
_0226B3A4: .word 0x000001F5
|
|
_0226B3A8: .word ov12_0226B3B0
|
|
_0226B3AC: .word ov12_0226B5B0
|
|
thumb_func_end ov12_0226B29C
|
|
|
|
thumb_func_start ov12_0226B3B0
|
|
ov12_0226B3B0: ; 0x0226B3B0
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
add r0, r4, #0
|
|
add r0, #0x2c
|
|
ldrb r0, [r0]
|
|
cmp r0, #6
|
|
bls _0226B3C2
|
|
b _0226B592
|
|
_0226B3C2:
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_0226B3CE: ; jump table
|
|
.short _0226B3DC - _0226B3CE - 2 ; case 0
|
|
.short _0226B400 - _0226B3CE - 2 ; case 1
|
|
.short _0226B40E - _0226B3CE - 2 ; case 2
|
|
.short _0226B490 - _0226B3CE - 2 ; case 3
|
|
.short _0226B4A8 - _0226B3CE - 2 ; case 4
|
|
.short _0226B4E8 - _0226B3CE - 2 ; case 5
|
|
.short _0226B516 - _0226B3CE - 2 ; case 6
|
|
_0226B3DC:
|
|
add r1, sp, #0
|
|
ldr r0, [r4]
|
|
add r1, #2
|
|
add r2, sp, #0
|
|
bl UnkImageStruct_GetSpritePositionXY
|
|
add r1, sp, #0
|
|
mov r0, #2
|
|
ldrsh r0, [r1, r0]
|
|
lsl r0, r0, #8
|
|
str r0, [r4, #0x1c]
|
|
add r0, r4, #0
|
|
add r0, #0x2c
|
|
ldrb r0, [r0]
|
|
add r1, r0, #1
|
|
add r0, r4, #0
|
|
add r0, #0x2c
|
|
strb r1, [r0]
|
|
_0226B400:
|
|
mov r0, #0x28
|
|
ldrsh r0, [r4, r0]
|
|
cmp r0, #0
|
|
ble _0226B40E
|
|
sub r0, r0, #1
|
|
strh r0, [r4, #0x28]
|
|
pop {r3, r4, r5, pc}
|
|
_0226B40E:
|
|
ldr r0, [r4, #8]
|
|
ldr r1, [r4, #0x1c]
|
|
cmp r0, #0
|
|
bne _0226B452
|
|
mov r0, #0x12
|
|
lsl r0, r0, #8
|
|
sub r1, r1, r0
|
|
str r1, [r4, #0x1c]
|
|
ldr r0, [r4, #0x24]
|
|
lsl r0, r0, #8
|
|
cmp r1, r0
|
|
bgt _0226B43C
|
|
str r0, [r4, #0x1c]
|
|
ldrh r0, [r4, #0x2a]
|
|
bl PlaySE
|
|
add r0, r4, #0
|
|
add r0, #0x2c
|
|
ldrb r0, [r0]
|
|
add r1, r0, #1
|
|
add r0, r4, #0
|
|
add r0, #0x2c
|
|
strb r1, [r0]
|
|
_0226B43C:
|
|
ldr r2, [r4, #0xc]
|
|
ldr r1, [r4, #0x1c]
|
|
lsl r3, r2, #1
|
|
ldr r2, _0226B5A8 ; =ov12_0226EB30
|
|
lsl r1, r1, #8
|
|
ldrsh r2, [r2, r3]
|
|
ldr r0, [r4]
|
|
asr r1, r1, #0x10
|
|
bl UnkImageStruct_SetSpritePositionXY
|
|
b _0226B486
|
|
_0226B452:
|
|
mov r0, #0x12
|
|
lsl r0, r0, #8
|
|
add r1, r1, r0
|
|
str r1, [r4, #0x1c]
|
|
ldr r0, [r4, #0x24]
|
|
lsl r0, r0, #8
|
|
cmp r1, r0
|
|
blt _0226B472
|
|
str r0, [r4, #0x1c]
|
|
add r0, r4, #0
|
|
add r0, #0x2c
|
|
ldrb r0, [r0]
|
|
add r1, r0, #1
|
|
add r0, r4, #0
|
|
add r0, #0x2c
|
|
strb r1, [r0]
|
|
_0226B472:
|
|
ldr r2, [r4, #0xc]
|
|
ldr r1, [r4, #0x1c]
|
|
lsl r3, r2, #1
|
|
ldr r2, _0226B5AC ; =ov12_0226EB18
|
|
lsl r1, r1, #8
|
|
ldrsh r2, [r2, r3]
|
|
ldr r0, [r4]
|
|
asr r1, r1, #0x10
|
|
bl UnkImageStruct_SetSpritePositionXY
|
|
_0226B486:
|
|
ldr r0, [r4]
|
|
ldr r0, [r0]
|
|
bl TickSpriteAnimation1Frame
|
|
pop {r3, r4, r5, pc}
|
|
_0226B490:
|
|
ldr r1, [r4, #0x14]
|
|
mov r0, #0
|
|
ldrsb r0, [r1, r0]
|
|
add r0, r0, #1
|
|
strb r0, [r1]
|
|
add r0, r4, #0
|
|
add r0, #0x2c
|
|
ldrb r0, [r0]
|
|
add r1, r0, #1
|
|
add r0, r4, #0
|
|
add r0, #0x2c
|
|
strb r1, [r0]
|
|
_0226B4A8:
|
|
ldr r1, [r4, #0x14]
|
|
mov r0, #0
|
|
ldrsb r0, [r1, r0]
|
|
cmp r0, #6
|
|
beq _0226B4BC
|
|
ldr r0, [r4]
|
|
ldr r0, [r0]
|
|
bl TickSpriteAnimation1Frame
|
|
pop {r3, r4, r5, pc}
|
|
_0226B4BC:
|
|
ldr r0, [r4, #8]
|
|
cmp r0, #0
|
|
ldr r0, [r4]
|
|
bne _0226B4CE
|
|
ldr r0, [r0]
|
|
mov r1, #1
|
|
bl Sprite_SetAnimCtrlCurrentFrame
|
|
b _0226B4D6
|
|
_0226B4CE:
|
|
ldr r0, [r0]
|
|
mov r1, #1
|
|
bl Sprite_SetAnimCtrlCurrentFrame
|
|
_0226B4D6:
|
|
mov r0, #0
|
|
strh r0, [r4, #0x28]
|
|
add r0, r4, #0
|
|
add r0, #0x2c
|
|
ldrb r0, [r0]
|
|
add r1, r0, #1
|
|
add r0, r4, #0
|
|
add r0, #0x2c
|
|
strb r1, [r0]
|
|
_0226B4E8:
|
|
mov r0, #0x28
|
|
ldrsh r1, [r4, r0]
|
|
add r1, r1, #1
|
|
strh r1, [r4, #0x28]
|
|
ldrsh r0, [r4, r0]
|
|
cmp r0, #0
|
|
blt _0226B5A6
|
|
add r1, r4, #0
|
|
ldr r0, [r4]
|
|
add r1, #0x2e
|
|
ldrb r1, [r1]
|
|
ldr r0, [r0]
|
|
bl Set2dSpriteAnimSeqNo
|
|
mov r0, #0
|
|
strh r0, [r4, #0x28]
|
|
add r0, r4, #0
|
|
add r0, #0x2c
|
|
ldrb r0, [r0]
|
|
add r1, r0, #1
|
|
add r0, r4, #0
|
|
add r0, #0x2c
|
|
strb r1, [r0]
|
|
_0226B516:
|
|
ldr r0, [r4, #8]
|
|
ldr r1, [r4, #0x1c]
|
|
cmp r0, #0
|
|
bne _0226B554
|
|
mov r0, #6
|
|
lsl r0, r0, #8
|
|
add r1, r1, r0
|
|
str r1, [r4, #0x1c]
|
|
ldr r0, [r4, #0x20]
|
|
lsl r0, r0, #8
|
|
cmp r1, r0
|
|
blt _0226B53E
|
|
str r0, [r4, #0x1c]
|
|
add r0, r4, #0
|
|
add r0, #0x2c
|
|
ldrb r0, [r0]
|
|
add r1, r0, #1
|
|
add r0, r4, #0
|
|
add r0, #0x2c
|
|
strb r1, [r0]
|
|
_0226B53E:
|
|
ldr r2, [r4, #0xc]
|
|
ldr r1, [r4, #0x1c]
|
|
lsl r3, r2, #1
|
|
ldr r2, _0226B5A8 ; =ov12_0226EB30
|
|
lsl r1, r1, #8
|
|
ldrsh r2, [r2, r3]
|
|
ldr r0, [r4]
|
|
asr r1, r1, #0x10
|
|
bl UnkImageStruct_SetSpritePositionXY
|
|
b _0226B588
|
|
_0226B554:
|
|
mov r0, #6
|
|
lsl r0, r0, #8
|
|
sub r1, r1, r0
|
|
str r1, [r4, #0x1c]
|
|
ldr r0, [r4, #0x20]
|
|
lsl r0, r0, #8
|
|
cmp r1, r0
|
|
bgt _0226B574
|
|
str r0, [r4, #0x1c]
|
|
add r0, r4, #0
|
|
add r0, #0x2c
|
|
ldrb r0, [r0]
|
|
add r1, r0, #1
|
|
add r0, r4, #0
|
|
add r0, #0x2c
|
|
strb r1, [r0]
|
|
_0226B574:
|
|
ldr r2, [r4, #0xc]
|
|
ldr r1, [r4, #0x1c]
|
|
lsl r3, r2, #1
|
|
ldr r2, _0226B5AC ; =ov12_0226EB18
|
|
lsl r1, r1, #8
|
|
ldrsh r2, [r2, r3]
|
|
ldr r0, [r4]
|
|
asr r1, r1, #0x10
|
|
bl UnkImageStruct_SetSpritePositionXY
|
|
_0226B588:
|
|
ldr r0, [r4]
|
|
ldr r0, [r0]
|
|
bl TickSpriteAnimation1Frame
|
|
pop {r3, r4, r5, pc}
|
|
_0226B592:
|
|
ldr r0, [r4]
|
|
mov r1, #0
|
|
ldr r0, [r0]
|
|
bl Sprite_SetAnimCtrlCurrentFrame
|
|
add r0, r5, #0
|
|
bl DestroySysTask
|
|
mov r0, #0
|
|
str r0, [r4, #4]
|
|
_0226B5A6:
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_0226B5A8: .word ov12_0226EB30
|
|
_0226B5AC: .word ov12_0226EB18
|
|
thumb_func_end ov12_0226B3B0
|
|
|
|
thumb_func_start ov12_0226B5B0
|
|
ov12_0226B5B0: ; 0x0226B5B0
|
|
push {r3, r4, lr}
|
|
sub sp, #4
|
|
add r4, r1, #0
|
|
add r1, #0x2c
|
|
ldrb r1, [r1]
|
|
cmp r1, #0
|
|
beq _0226B5C8
|
|
cmp r1, #1
|
|
beq _0226B5F6
|
|
cmp r1, #2
|
|
beq _0226B606
|
|
b _0226B67E
|
|
_0226B5C8:
|
|
add r1, sp, #0
|
|
ldr r0, [r4]
|
|
add r1, #2
|
|
add r2, sp, #0
|
|
bl UnkImageStruct_GetSpritePositionXY
|
|
add r1, sp, #0
|
|
mov r0, #2
|
|
ldrsh r0, [r1, r0]
|
|
mov r1, #0
|
|
lsl r0, r0, #8
|
|
str r0, [r4, #0x1c]
|
|
ldr r0, [r4]
|
|
ldr r0, [r0]
|
|
bl Sprite_SetAnimCtrlCurrentFrame
|
|
add r0, r4, #0
|
|
add r0, #0x2c
|
|
ldrb r0, [r0]
|
|
add r1, r0, #1
|
|
add r0, r4, #0
|
|
add r0, #0x2c
|
|
strb r1, [r0]
|
|
_0226B5F6:
|
|
mov r0, #0x28
|
|
ldrsh r0, [r4, r0]
|
|
cmp r0, #0
|
|
ble _0226B606
|
|
sub r0, r0, #1
|
|
add sp, #4
|
|
strh r0, [r4, #0x28]
|
|
pop {r3, r4, pc}
|
|
_0226B606:
|
|
ldr r0, [r4, #8]
|
|
ldr r1, [r4, #0x1c]
|
|
cmp r0, #0
|
|
bne _0226B646
|
|
mov r0, #0x12
|
|
lsl r0, r0, #8
|
|
sub r1, r1, r0
|
|
str r1, [r4, #0x1c]
|
|
ldr r0, [r4, #0x20]
|
|
lsl r0, r0, #8
|
|
cmp r1, r0
|
|
bgt _0226B62E
|
|
str r0, [r4, #0x1c]
|
|
add r0, r4, #0
|
|
add r0, #0x2c
|
|
ldrb r0, [r0]
|
|
add r1, r0, #1
|
|
add r0, r4, #0
|
|
add r0, #0x2c
|
|
strb r1, [r0]
|
|
_0226B62E:
|
|
ldr r2, [r4, #0xc]
|
|
ldr r1, [r4, #0x1c]
|
|
lsl r3, r2, #1
|
|
ldr r2, _0226B68C ; =ov12_0226EB30
|
|
lsl r1, r1, #8
|
|
ldrsh r2, [r2, r3]
|
|
ldr r0, [r4]
|
|
asr r1, r1, #0x10
|
|
bl UnkImageStruct_SetSpritePositionXY
|
|
add sp, #4
|
|
pop {r3, r4, pc}
|
|
_0226B646:
|
|
mov r0, #0x12
|
|
lsl r0, r0, #8
|
|
add r1, r1, r0
|
|
str r1, [r4, #0x1c]
|
|
ldr r0, [r4, #0x20]
|
|
lsl r0, r0, #8
|
|
cmp r1, r0
|
|
blt _0226B666
|
|
str r0, [r4, #0x1c]
|
|
add r0, r4, #0
|
|
add r0, #0x2c
|
|
ldrb r0, [r0]
|
|
add r1, r0, #1
|
|
add r0, r4, #0
|
|
add r0, #0x2c
|
|
strb r1, [r0]
|
|
_0226B666:
|
|
ldr r2, [r4, #0xc]
|
|
ldr r1, [r4, #0x1c]
|
|
lsl r3, r2, #1
|
|
ldr r2, _0226B690 ; =ov12_0226EB18
|
|
lsl r1, r1, #8
|
|
ldrsh r2, [r2, r3]
|
|
ldr r0, [r4]
|
|
asr r1, r1, #0x10
|
|
bl UnkImageStruct_SetSpritePositionXY
|
|
add sp, #4
|
|
pop {r3, r4, pc}
|
|
_0226B67E:
|
|
bl DestroySysTask
|
|
mov r0, #0
|
|
str r0, [r4, #4]
|
|
add sp, #4
|
|
pop {r3, r4, pc}
|
|
nop
|
|
_0226B68C: .word ov12_0226EB30
|
|
_0226B690: .word ov12_0226EB18
|
|
thumb_func_end ov12_0226B5B0
|
|
|
|
thumb_func_start ov12_0226B694
|
|
ov12_0226B694: ; 0x0226B694
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
ldr r0, [r5]
|
|
add r6, r1, #0
|
|
add r7, r2, #0
|
|
add r4, r3, #0
|
|
cmp r0, #0
|
|
beq _0226B6AA
|
|
ldr r0, [r5, #4]
|
|
cmp r0, #0
|
|
beq _0226B6AE
|
|
_0226B6AA:
|
|
bl GF_AssertFail
|
|
_0226B6AE:
|
|
add r0, r5, #0
|
|
mov r1, #0
|
|
add r0, #0x2c
|
|
strb r1, [r0]
|
|
cmp r7, #0
|
|
str r4, [r5, #0x18]
|
|
ldr r2, _0226B6EC ; =0x000001F5
|
|
bne _0226B6D8
|
|
lsl r0, r6, #1
|
|
add r0, r6, r0
|
|
strh r0, [r5, #0x28]
|
|
add r0, r5, #0
|
|
mov r1, #4
|
|
add r0, #0x2f
|
|
strb r1, [r0]
|
|
ldr r0, _0226B6F0 ; =ov12_0226B6F8
|
|
add r1, r5, #0
|
|
bl CreateSysTask
|
|
str r0, [r5, #4]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0226B6D8:
|
|
add r0, r5, #0
|
|
strh r1, [r5, #0x28]
|
|
add r0, #0x2f
|
|
strb r1, [r0]
|
|
ldr r0, _0226B6F4 ; =ov12_0226B82C
|
|
add r1, r5, #0
|
|
bl CreateSysTask
|
|
str r0, [r5, #4]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_0226B6EC: .word 0x000001F5
|
|
_0226B6F0: .word ov12_0226B6F8
|
|
_0226B6F4: .word ov12_0226B82C
|
|
thumb_func_end ov12_0226B694
|
|
|
|
thumb_func_start ov12_0226B6F8
|
|
ov12_0226B6F8: ; 0x0226B6F8
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
ldr r1, [r4, #0x18]
|
|
add r5, r0, #0
|
|
mov r0, #0
|
|
ldrsh r1, [r1, r0]
|
|
cmp r1, #0
|
|
bne _0226B712
|
|
add r0, r4, #0
|
|
mov r1, #0x64
|
|
add r0, #0x2c
|
|
strb r1, [r0]
|
|
b _0226B73A
|
|
_0226B712:
|
|
mov r0, #1
|
|
lsl r0, r0, #0xc
|
|
cmp r1, r0
|
|
bge _0226B73A
|
|
add r0, r4, #0
|
|
add r0, #0x2c
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _0226B73A
|
|
ldr r0, [r4]
|
|
cmp r0, #0
|
|
beq _0226B73A
|
|
bl sub_0200E110
|
|
cmp r0, #1
|
|
beq _0226B73A
|
|
ldr r0, [r4]
|
|
mov r1, #1
|
|
bl sub_0200E0FC
|
|
_0226B73A:
|
|
add r0, r4, #0
|
|
add r0, #0x2c
|
|
ldrb r0, [r0]
|
|
cmp r0, #2
|
|
bgt _0226B754
|
|
cmp r0, #0
|
|
blt _0226B808
|
|
beq _0226B758
|
|
cmp r0, #1
|
|
beq _0226B77C
|
|
cmp r0, #2
|
|
beq _0226B7A2
|
|
b _0226B808
|
|
_0226B754:
|
|
cmp r0, #0x64
|
|
b _0226B808
|
|
_0226B758:
|
|
add r1, sp, #0
|
|
ldr r0, [r4]
|
|
add r1, #2
|
|
add r2, sp, #0
|
|
bl UnkImageStruct_GetSpritePositionXY
|
|
add r1, sp, #0
|
|
mov r0, #2
|
|
ldrsh r0, [r1, r0]
|
|
lsl r0, r0, #8
|
|
str r0, [r4, #0x1c]
|
|
add r0, r4, #0
|
|
add r0, #0x2c
|
|
ldrb r0, [r0]
|
|
add r1, r0, #1
|
|
add r0, r4, #0
|
|
add r0, #0x2c
|
|
strb r1, [r0]
|
|
_0226B77C:
|
|
add r0, r4, #0
|
|
add r0, #0x2f
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _0226B794
|
|
add r0, r4, #0
|
|
add r0, #0x2f
|
|
ldrb r0, [r0]
|
|
add r4, #0x2f
|
|
sub r0, r0, #1
|
|
strb r0, [r4]
|
|
pop {r3, r4, r5, pc}
|
|
_0226B794:
|
|
mov r0, #0x28
|
|
ldrsh r0, [r4, r0]
|
|
cmp r0, #0
|
|
ble _0226B7A2
|
|
sub r0, r0, #1
|
|
strh r0, [r4, #0x28]
|
|
pop {r3, r4, r5, pc}
|
|
_0226B7A2:
|
|
ldr r0, [r4, #8]
|
|
ldr r1, [r4, #0x1c]
|
|
cmp r0, #0
|
|
bne _0226B7C6
|
|
mov r0, #3
|
|
lsl r0, r0, #0xa
|
|
sub r1, r1, r0
|
|
str r1, [r4, #0x1c]
|
|
ldr r2, [r4, #0xc]
|
|
lsl r1, r1, #8
|
|
lsl r3, r2, #1
|
|
ldr r2, _0226B820 ; =ov12_0226EB30
|
|
ldr r0, [r4]
|
|
ldrsh r2, [r2, r3]
|
|
asr r1, r1, #0x10
|
|
bl UnkImageStruct_SetSpritePositionXY
|
|
b _0226B7E0
|
|
_0226B7C6:
|
|
mov r0, #3
|
|
lsl r0, r0, #0xa
|
|
add r1, r1, r0
|
|
str r1, [r4, #0x1c]
|
|
ldr r2, [r4, #0xc]
|
|
lsl r1, r1, #8
|
|
lsl r3, r2, #1
|
|
ldr r2, _0226B824 ; =ov12_0226EB18
|
|
ldr r0, [r4]
|
|
ldrsh r2, [r2, r3]
|
|
asr r1, r1, #0x10
|
|
bl UnkImageStruct_SetSpritePositionXY
|
|
_0226B7E0:
|
|
ldr r1, [r4, #0x1c]
|
|
ldr r0, _0226B828 ; =0xFFFFF000
|
|
cmp r1, r0
|
|
blt _0226B7F0
|
|
mov r0, #0x11
|
|
lsl r0, r0, #0xc
|
|
cmp r1, r0
|
|
ble _0226B7FE
|
|
_0226B7F0:
|
|
add r0, r4, #0
|
|
add r0, #0x2c
|
|
ldrb r0, [r0]
|
|
add r1, r0, #1
|
|
add r0, r4, #0
|
|
add r0, #0x2c
|
|
strb r1, [r0]
|
|
_0226B7FE:
|
|
ldr r0, [r4]
|
|
ldr r0, [r0]
|
|
bl TickSpriteAnimation1Frame
|
|
pop {r3, r4, r5, pc}
|
|
_0226B808:
|
|
ldr r0, [r4]
|
|
mov r1, #0
|
|
ldr r0, [r0]
|
|
bl thunk_Set2dSpriteVisibleFlag
|
|
add r0, r5, #0
|
|
bl DestroySysTask
|
|
mov r0, #0
|
|
str r0, [r4, #4]
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_0226B820: .word ov12_0226EB30
|
|
_0226B824: .word ov12_0226EB18
|
|
_0226B828: .word 0xFFFFF000
|
|
thumb_func_end ov12_0226B6F8
|
|
|
|
thumb_func_start ov12_0226B82C
|
|
ov12_0226B82C: ; 0x0226B82C
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
ldr r1, [r4, #0x18]
|
|
add r5, r0, #0
|
|
mov r0, #0
|
|
ldrsh r0, [r1, r0]
|
|
cmp r0, #0
|
|
bne _0226B844
|
|
add r0, r4, #0
|
|
mov r1, #0x64
|
|
add r0, #0x2c
|
|
strb r1, [r0]
|
|
_0226B844:
|
|
add r0, r4, #0
|
|
add r0, #0x2c
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _0226B856
|
|
cmp r0, #1
|
|
beq _0226B880
|
|
cmp r0, #0x64
|
|
b _0226B86C
|
|
_0226B856:
|
|
ldr r0, [r4]
|
|
mov r1, #1
|
|
bl sub_0200E0FC
|
|
add r0, r4, #0
|
|
add r0, #0x2c
|
|
ldrb r0, [r0]
|
|
add r4, #0x2c
|
|
add r0, r0, #1
|
|
strb r0, [r4]
|
|
pop {r3, r4, r5, pc}
|
|
_0226B86C:
|
|
ldr r0, [r4]
|
|
mov r1, #0
|
|
ldr r0, [r0]
|
|
bl thunk_Set2dSpriteVisibleFlag
|
|
add r0, r5, #0
|
|
bl DestroySysTask
|
|
mov r0, #0
|
|
str r0, [r4, #4]
|
|
_0226B880:
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov12_0226B82C
|
|
|
|
thumb_func_start ov12_0226B884
|
|
ov12_0226B884: ; 0x0226B884
|
|
cmp r0, #3
|
|
bhi _0226B89C
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_0226B894: ; jump table
|
|
.short _0226B89C - _0226B894 - 2 ; case 0
|
|
.short _0226B8A0 - _0226B894 - 2 ; case 1
|
|
.short _0226B8AC - _0226B894 - 2 ; case 2
|
|
.short _0226B8B8 - _0226B894 - 2 ; case 3
|
|
_0226B89C:
|
|
mov r0, #6
|
|
bx lr
|
|
_0226B8A0:
|
|
cmp r1, #0
|
|
bne _0226B8A8
|
|
mov r0, #3
|
|
bx lr
|
|
_0226B8A8:
|
|
mov r0, #0
|
|
bx lr
|
|
_0226B8AC:
|
|
cmp r1, #0
|
|
bne _0226B8B4
|
|
mov r0, #5
|
|
bx lr
|
|
_0226B8B4:
|
|
mov r0, #2
|
|
bx lr
|
|
_0226B8B8:
|
|
cmp r1, #0
|
|
bne _0226B8C0
|
|
mov r0, #4
|
|
bx lr
|
|
_0226B8C0:
|
|
mov r0, #1
|
|
bx lr
|
|
thumb_func_end ov12_0226B884
|
|
|
|
thumb_func_start ov12_0226B8C4
|
|
ov12_0226B8C4: ; 0x0226B8C4
|
|
cmp r0, #6
|
|
bhi _0226B8FA
|
|
add r1, r0, r0
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_0226B8D4: ; jump table
|
|
.short _0226B8E8 - _0226B8D4 - 2 ; case 0
|
|
.short _0226B8F8 - _0226B8D4 - 2 ; case 1
|
|
.short _0226B8F0 - _0226B8D4 - 2 ; case 2
|
|
.short _0226B8E4 - _0226B8D4 - 2 ; case 3
|
|
.short _0226B8F4 - _0226B8D4 - 2 ; case 4
|
|
.short _0226B8EC - _0226B8D4 - 2 ; case 5
|
|
.short _0226B8E2 - _0226B8D4 - 2 ; case 6
|
|
_0226B8E2:
|
|
bx lr
|
|
_0226B8E4:
|
|
mov r0, #0
|
|
bx lr
|
|
_0226B8E8:
|
|
mov r0, #3
|
|
bx lr
|
|
_0226B8EC:
|
|
mov r0, #2
|
|
bx lr
|
|
_0226B8F0:
|
|
mov r0, #5
|
|
bx lr
|
|
_0226B8F4:
|
|
mov r0, #1
|
|
bx lr
|
|
_0226B8F8:
|
|
mov r0, #4
|
|
_0226B8FA:
|
|
bx lr
|
|
thumb_func_end ov12_0226B8C4
|
|
|
|
.rodata
|
|
ov12_0226EB18: ; 0x0226EB18
|
|
.byte 0x0E, 0x00, 0x32, 0x00, 0x32, 0x00, 0x00, 0x00
|
|
|
|
ov12_0226EB20: ; 0x0226EB20
|
|
.byte 0x14, 0x00, 0x38, 0x00, 0x38, 0x00, 0x00, 0x00
|
|
|
|
ov12_0226EB28: ; 0x0226EB28
|
|
.byte 0x54, 0x00, 0x78, 0x00, 0x78, 0x00, 0x00, 0x00
|
|
|
|
ov12_0226EB30: ; 0x0226EB30
|
|
.byte 0x4E, 0x00, 0x72, 0x00, 0x72, 0x00, 0x00, 0x00
|
|
|
|
ov12_0226EB38: ; 0x0226EB38
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xBF, 0x4F, 0x00, 0x00
|
|
.byte 0x45, 0x4E, 0x00, 0x00, 0xB8, 0x4F, 0x00, 0x00, 0xAD, 0x4F, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF
|
|
.byte 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov12_0226EB6C: ; 0x0226EB6C
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
|
|
.byte 0xBF, 0x4F, 0x00, 0x00, 0x45, 0x4E, 0x00, 0x00, 0xB8, 0x4F, 0x00, 0x00, 0xAD, 0x4F, 0x00, 0x00
|
|
.byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|