pokeheartgold/asm/overlay_12_0226B8FC.s

383 lines
7.7 KiB
ArmAsm

.include "asm/macros.inc"
.include "overlay_12_0226B8FC.inc"
.include "global.inc"
.text
thumb_func_start ov12_0226B8FC
ov12_0226B8FC: ; 0x0226B8FC
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x18
add r5, r0, #0
add r4, r1, #0
mov r0, #8
add r1, r3, #0
add r7, r2, #0
bl NARC_New
add r6, r0, #0
str r6, [sp]
mov r0, #0x50
str r0, [sp, #4]
mov r0, #0
str r0, [sp, #8]
mov r0, #1
str r0, [sp, #0xc]
mov r0, #2
str r0, [sp, #0x10]
ldr r0, [sp, #0x34]
mov r1, #3
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]
mov r0, #2
str r0, [sp, #4]
ldr r0, [sp, #0x30]
add r1, r4, #0
str r0, [sp, #8]
add r0, r5, #0
add r2, r6, #0
mov r3, #0xfa
bl SpriteRenderer_LoadCharResObjFromOpenNarc
mov r0, #1
str r0, [sp]
ldr r0, [sp, #0x38]
add r1, r4, #0
str r0, [sp, #4]
add r0, r5, #0
add r2, r6, #0
mov r3, #0xfb
bl SpriteRenderer_LoadCellResObjFromOpenNarc
mov r0, #1
str r0, [sp]
ldr r0, [sp, #0x3c]
add r1, r4, #0
str r0, [sp, #4]
add r0, r5, #0
add r2, r6, #0
mov r3, #0xfc
bl SpriteRenderer_LoadAnimResObjFromOpenNarc
add r0, r6, #0
bl NARC_Delete
add sp, #0x18
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end ov12_0226B8FC
thumb_func_start ov12_0226B97C
ov12_0226B97C: ; 0x0226B97C
push {r4, r5, r6, lr}
add r5, r0, #0
add r4, r2, #0
add r6, r3, #0
bl SpriteGfxHandler_UnloadCharObjById
add r0, r5, #0
add r1, r4, #0
bl SpriteGfxHandler_UnloadPlttObjById
add r0, r5, #0
add r1, r6, #0
bl SpriteGfxHandler_UnloadCellObjById
ldr r1, [sp, #0x10]
add r0, r5, #0
bl SpriteGfxHandler_UnloadAnimObjById
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_end ov12_0226B97C
thumb_func_start ov12_0226B9A4
ov12_0226B9A4: ; 0x0226B9A4
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x38
add r5, r3, #0
mov ip, r2
ldr r3, _0226BA1C ; =ov12_0226EBA0
add r6, r0, #0
add r7, r1, #0
add r2, sp, #4
mov r4, #6
_0226B9B6:
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
sub r4, r4, #1
bne _0226B9B6
ldr r0, [r3]
mov r1, #0x18
str r0, [r2]
ldr r0, [sp, #0x50]
str r5, [sp, #0x18]
str r0, [sp, #0x1c]
ldr r0, [sp, #0x54]
str r0, [sp, #0x20]
ldr r0, [sp, #0x58]
str r0, [sp, #0x24]
ldr r0, [sp, #0x5c]
str r0, [sp, #0xc]
ldr r0, [sp, #0x60]
str r0, [sp, #0x30]
mov r0, ip
bl AllocFromHeap
mov r1, #0
mov r2, #0x18
str r0, [sp]
bl MI_CpuFill8
ldr r5, [sp]
mov r4, #0
_0226B9EE:
add r0, r6, #0
add r1, r7, #0
add r2, sp, #4
bl SpriteRenderer_LoadResourcesAndCreateSprite
mov r1, #0
stmia r5!, {r0}
bl UnkImageStruct_SetSpriteVisibleFlag
add r4, r4, #1
cmp r4, #5
blt _0226B9EE
ldr r0, _0226BA20 ; =ov12_0226BB90
ldr r1, [sp]
ldr r2, _0226BA24 ; =0x00009C40
bl SysTask_CreateOnMainQueue
ldr r1, [sp]
str r0, [r1, #0x14]
add r0, r1, #0
add sp, #0x38
pop {r3, r4, r5, r6, r7, pc}
nop
_0226BA1C: .word ov12_0226EBA0
_0226BA20: .word ov12_0226BB90
_0226BA24: .word 0x00009C40
thumb_func_end ov12_0226B9A4
thumb_func_start ov12_0226BA28
ov12_0226BA28: ; 0x0226BA28
push {r4, r5, r6, lr}
add r6, r0, #0
mov r4, #0
add r5, r6, #0
_0226BA30:
ldr r0, [r5]
bl sub_0200D9DC
add r4, r4, #1
add r5, r5, #4
cmp r4, #5
blt _0226BA30
ldr r0, [r6, #0x14]
bl SysTask_Destroy
add r0, r6, #0
bl FreeToHeap
pop {r4, r5, r6, pc}
thumb_func_end ov12_0226BA28
thumb_func_start ov12_0226BA4C
ov12_0226BA4C: ; 0x0226BA4C
push {r4, r5, r6, lr}
add r5, r0, #0
lsl r1, r1, #0x10
lsl r2, r2, #0x10
ldr r4, [sp, #0x24]
add r6, r3, #0
ldr r0, [r5]
asr r1, r1, #0x10
asr r2, r2, #0x10
add r3, r4, #0
bl UnkImageStruct_SetSpritePositionXY_CustomScreenYOffset
ldr r2, [sp, #0x10]
lsl r1, r6, #0x10
lsl r2, r2, #0x10
ldr r0, [r5, #4]
asr r1, r1, #0x10
asr r2, r2, #0x10
add r3, r4, #0
bl UnkImageStruct_SetSpritePositionXY_CustomScreenYOffset
ldr r1, [sp, #0x14]
ldr r2, [sp, #0x18]
lsl r1, r1, #0x10
lsl r2, r2, #0x10
ldr r0, [r5, #8]
asr r1, r1, #0x10
asr r2, r2, #0x10
add r3, r4, #0
bl UnkImageStruct_SetSpritePositionXY_CustomScreenYOffset
ldr r1, [sp, #0x1c]
ldr r2, [sp, #0x20]
lsl r1, r1, #0x10
lsl r2, r2, #0x10
ldr r0, [r5, #0xc]
asr r1, r1, #0x10
asr r2, r2, #0x10
add r3, r4, #0
bl UnkImageStruct_SetSpritePositionXY_CustomScreenYOffset
ldr r0, [r5]
mov r1, #0
bl UnkImageStruct_SetSpriteAnimSeqNo
ldr r0, [r5, #4]
mov r1, #1
bl UnkImageStruct_SetSpriteAnimSeqNo
ldr r0, [r5, #8]
mov r1, #2
bl UnkImageStruct_SetSpriteAnimSeqNo
ldr r0, [r5, #0xc]
mov r1, #3
bl UnkImageStruct_SetSpriteAnimSeqNo
mov r4, #0
mov r6, #1
_0226BAC2:
ldr r0, [r5]
add r1, r6, #0
bl UnkImageStruct_SetSpriteVisibleFlag
add r4, r4, #1
add r5, r5, #4
cmp r4, #4
blt _0226BAC2
pop {r4, r5, r6, pc}
thumb_func_end ov12_0226BA4C
thumb_func_start ov12_0226BAD4
ov12_0226BAD4: ; 0x0226BAD4
push {r4, lr}
sub sp, #0x18
ldr r4, [sp, #0x20]
str r4, [sp]
ldr r4, [sp, #0x24]
str r4, [sp, #4]
ldr r4, [sp, #0x28]
str r4, [sp, #8]
ldr r4, [sp, #0x2c]
str r4, [sp, #0xc]
ldr r4, [sp, #0x30]
str r4, [sp, #0x10]
mov r4, #3
lsl r4, r4, #0x12
str r4, [sp, #0x14]
bl ov12_0226BA4C
add sp, #0x18
pop {r4, pc}
.balign 4, 0
thumb_func_end ov12_0226BAD4
thumb_func_start ov12_0226BAFC
ov12_0226BAFC: ; 0x0226BAFC
push {r3, r4, lr}
sub sp, #0x14
add r4, r2, #0
str r3, [sp]
ldr r2, [sp, #0x20]
str r1, [sp, #4]
str r2, [sp, #8]
str r4, [sp, #0xc]
str r2, [sp, #0x10]
add r2, r3, #0
add r3, r4, #0
bl ov12_0226BAD4
add sp, #0x14
pop {r3, r4, pc}
.balign 4, 0
thumb_func_end ov12_0226BAFC
thumb_func_start ov12_0226BB1C
ov12_0226BB1C: ; 0x0226BB1C
push {r4, lr}
sub sp, #0x18
add r4, r2, #0
str r3, [sp]
ldr r2, [sp, #0x20]
str r1, [sp, #4]
str r2, [sp, #8]
str r4, [sp, #0xc]
str r2, [sp, #0x10]
ldr r2, [sp, #0x24]
str r2, [sp, #0x14]
add r2, r3, #0
add r3, r4, #0
bl ov12_0226BA4C
add sp, #0x18
pop {r4, pc}
.balign 4, 0
thumb_func_end ov12_0226BB1C
thumb_func_start ov12_0226BB40
ov12_0226BB40: ; 0x0226BB40
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r3, #0
lsl r1, r1, #0x10
lsl r2, r2, #0x10
ldr r0, [r5, #0x10]
ldr r3, [sp, #0x10]
asr r1, r1, #0x10
asr r2, r2, #0x10
bl UnkImageStruct_SetSpritePositionXY_CustomScreenYOffset
ldr r0, [r5, #0x10]
add r1, r4, #0
bl UnkImageStruct_SetSpriteAnimSeqNo
ldr r0, [r5, #0x10]
mov r1, #1
bl UnkImageStruct_SetSpriteVisibleFlag
pop {r3, r4, r5, pc}
thumb_func_end ov12_0226BB40
thumb_func_start ov12_0226BB68
ov12_0226BB68: ; 0x0226BB68
push {r4, r5, r6, lr}
mov r4, #0
add r5, r0, #0
add r6, r4, #0
_0226BB70:
ldr r0, [r5]
add r1, r6, #0
bl UnkImageStruct_SetSpriteVisibleFlag
add r4, r4, #1
add r5, r5, #4
cmp r4, #5
blt _0226BB70
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_end ov12_0226BB68
thumb_func_start ov12_0226BB84
ov12_0226BB84: ; 0x0226BB84
ldr r3, _0226BB8C ; =UnkImageStruct_SetSpriteVisibleFlag
ldr r0, [r0, #0x10]
mov r1, #0
bx r3
.balign 4, 0
_0226BB8C: .word UnkImageStruct_SetSpriteVisibleFlag
thumb_func_end ov12_0226BB84
thumb_func_start ov12_0226BB90
ov12_0226BB90: ; 0x0226BB90
push {r4, r5, r6, lr}
add r6, r1, #0
ldr r0, [r6]
bl UnkImageStruct_GetSpriteVisibleFlag
cmp r0, #0
beq _0226BBC0
mov r4, #0
add r5, r6, #0
_0226BBA2:
ldr r0, [r5]
bl UnkImageStruct_TickSpriteAnimation1Frame
add r4, r4, #1
add r5, r5, #4
cmp r4, #4
blt _0226BBA2
ldr r0, [r6, #0x10]
bl UnkImageStruct_GetSpriteVisibleFlag
cmp r0, #1
bne _0226BBC0
ldr r0, [r6, #0x10]
bl UnkImageStruct_TickSpriteAnimation1Frame
_0226BBC0:
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_end ov12_0226BB90
.rodata
ov12_0226EBA0: ; 0x0226EBA0
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00