through ov63_0221D344

This commit is contained in:
PikalaxALT 2024-04-05 21:38:28 -04:00
parent 02827d07e5
commit 913da02e27
No known key found for this signature in database
GPG Key ID: 7774E96AA69E5B61
4 changed files with 186 additions and 819 deletions

View File

@ -30,817 +30,9 @@
.extern ov63_0221CA1C
.extern ov63_0221CB48
.extern ov63_0221CB94
thumb_func_start ov63_0221CE94
ov63_0221CE94: ; 0x0221CE94
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x18
add r4, r0, #0
add r0, r1, #0
mov r1, #1
lsl r1, r1, #8
lsl r6, r2, #4
add r2, r4, r1
ldr r1, _0221D204 ; =0x0000328C
add r5, r4, #0
mul r1, r0
ldr r0, [r2, r1]
add r5, #0x14
add r7, r2, r1
str r0, [sp, #0x14]
bl Mon_GetBoxMon
str r0, [sp, #0x10]
add r0, r5, r6
mov r1, #0
bl FillWindowPixelBuffer
add r0, r4, #0
add r2, r4, #0
add r0, #0x84
add r2, #0x8c
ldr r0, [r0]
ldr r2, [r2]
mov r1, #4
bl ReadMsgDataIntoString
add r0, r4, #0
add r0, #0x88
ldr r0, [r0]
ldr r2, [sp, #0x10]
mov r1, #0
bl BufferBoxMonNickname
add r0, r4, #0
add r1, r4, #0
add r2, r4, #0
add r0, #0x88
add r1, #0x90
add r2, #0x8c
ldr r0, [r0]
ldr r1, [r1]
ldr r2, [r2]
bl StringExpandPlaceholders
mov r1, #0
add r2, r4, #0
str r1, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r0, _0221D208 ; =0x000F0200
add r2, #0x90
str r0, [sp, #8]
str r1, [sp, #0xc]
ldr r2, [r2]
add r0, r5, r6
mov r3, #2
bl AddTextPrinterParameterizedWithColor
add r0, r5, r6
bl CopyWindowPixelsToVram_TextMode
add r0, r5, r6
add r0, #0x10
mov r1, #0
bl FillWindowPixelBuffer
ldrb r1, [r7, #0x11]
cmp r1, #2
beq _0221CF2E
ldrb r0, [r7, #0x12]
cmp r0, #0
bne _0221CF42
_0221CF2E:
add r0, r4, #0
add r2, r4, #0
add r0, #0x84
add r2, #0x8c
ldr r0, [r0]
ldr r2, [r2]
mov r1, #3
bl ReadMsgDataIntoString
b _0221CF84
_0221CF42:
cmp r1, #0
bne _0221CF5A
add r0, r4, #0
add r2, r4, #0
add r0, #0x84
add r2, #0x8c
ldr r0, [r0]
ldr r2, [r2]
mov r1, #1
bl ReadMsgDataIntoString
b _0221CF84
_0221CF5A:
cmp r1, #1
bne _0221CF72
add r0, r4, #0
add r2, r4, #0
add r0, #0x84
add r2, #0x8c
ldr r0, [r0]
ldr r2, [r2]
mov r1, #2
bl ReadMsgDataIntoString
b _0221CF84
_0221CF72:
add r0, r4, #0
add r2, r4, #0
add r0, #0x84
add r2, #0x8c
ldr r0, [r0]
ldr r2, [r2]
mov r1, #3
bl ReadMsgDataIntoString
_0221CF84:
add r0, r4, #0
add r0, #0x88
ldr r0, [r0]
ldr r2, [sp, #0x10]
mov r1, #0
bl BufferBoxMonSpeciesName
add r0, r4, #0
add r1, r4, #0
add r2, r4, #0
add r0, #0x88
add r1, #0x90
add r2, #0x8c
ldr r0, [r0]
ldr r1, [r1]
ldr r2, [r2]
bl StringExpandPlaceholders
mov r1, #0
add r2, r4, #0
str r1, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r0, _0221D208 ; =0x000F0200
add r2, #0x90
str r0, [sp, #8]
str r1, [sp, #0xc]
add r0, r5, r6
ldr r2, [r2]
add r0, #0x10
mov r3, #2
bl AddTextPrinterParameterizedWithColor
add r0, r4, #0
add r2, r4, #0
add r0, #0x84
add r2, #0x8c
ldr r0, [r0]
ldr r2, [r2]
mov r1, #5
bl ReadMsgDataIntoString
mov r1, #0
str r1, [sp]
mov r0, #1
str r0, [sp, #4]
add r0, r4, #0
add r0, #0x88
ldrh r2, [r7, #0xe]
ldr r0, [r0]
mov r3, #3
bl BufferIntegerAsString
add r0, r4, #0
add r1, r4, #0
add r2, r4, #0
add r0, #0x88
add r1, #0x90
add r2, #0x8c
ldr r0, [r0]
ldr r1, [r1]
ldr r2, [r2]
bl StringExpandPlaceholders
mov r0, #0x10
str r0, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r0, _0221D208 ; =0x000F0200
add r2, r4, #0
str r0, [sp, #8]
mov r1, #0
add r0, r5, r6
str r1, [sp, #0xc]
add r2, #0x90
ldr r2, [r2]
add r0, #0x10
mov r3, #2
bl AddTextPrinterParameterizedWithColor
add r0, r5, r6
add r0, #0x10
bl CopyWindowPixelsToVram_TextMode
add r0, r5, r6
add r0, #0x20
mov r1, #0
bl FillWindowPixelBuffer
add r0, r4, #0
add r2, r4, #0
add r0, #0x84
add r2, #0x8c
ldr r0, [r0]
ldr r2, [r2]
mov r1, #6
bl ReadMsgDataIntoString
add r0, r4, #0
add r0, #0x88
ldr r0, [r0]
ldr r2, [sp, #0x10]
mov r1, #0
bl BufferBoxMonOTName
add r0, r4, #0
add r1, r4, #0
add r2, r4, #0
add r0, #0x88
add r1, #0x90
add r2, #0x8c
ldr r0, [r0]
ldr r1, [r1]
ldr r2, [r2]
bl StringExpandPlaceholders
mov r1, #0
str r1, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r0, _0221D208 ; =0x000F0200
add r2, r4, #0
str r0, [sp, #8]
add r0, r5, r6
str r1, [sp, #0xc]
add r2, #0x90
ldr r2, [r2]
add r0, #0x20
mov r3, #2
bl AddTextPrinterParameterizedWithColor
ldr r2, [r4]
ldr r1, [sp, #0x14]
ldr r2, [r2]
add r0, r4, #0
bl ov63_0221E310
cmp r0, #9
bls _0221D09C
b _0221D1DA
_0221D09C:
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_0221D0A8: ; jump table
.short _0221D0BC - _0221D0A8 - 2 ; case 0
.short _0221D0F4 - _0221D0A8 - 2 ; case 1
.short _0221D12C - _0221D0A8 - 2 ; case 2
.short _0221D140 - _0221D0A8 - 2 ; case 3
.short _0221D154 - _0221D0A8 - 2 ; case 4
.short _0221D168 - _0221D0A8 - 2 ; case 5
.short _0221D17C - _0221D0A8 - 2 ; case 6
.short _0221D190 - _0221D0A8 - 2 ; case 7
.short _0221D1A4 - _0221D0A8 - 2 ; case 8
.short _0221D1A4 - _0221D0A8 - 2 ; case 9
_0221D0BC:
add r0, r4, #0
add r2, r4, #0
add r0, #0x84
add r2, #0x8c
ldr r0, [r0]
ldr r2, [r2]
mov r1, #7
bl ReadMsgDataIntoString
add r0, r4, #0
add r0, #0x88
ldr r0, [r0]
ldr r2, [r7, #0x14]
mov r1, #0
bl BufferLandmarkName
add r0, r4, #0
add r1, r4, #0
add r2, r4, #0
add r0, #0x88
add r1, #0x90
add r2, #0x8c
ldr r0, [r0]
ldr r1, [r1]
ldr r2, [r2]
bl StringExpandPlaceholders
b _0221D1DA
_0221D0F4:
add r0, r4, #0
add r2, r4, #0
add r0, #0x84
add r2, #0x8c
ldr r0, [r0]
ldr r2, [r2]
mov r1, #8
bl ReadMsgDataIntoString
add r0, r4, #0
add r0, #0x88
ldr r0, [r0]
ldr r2, [r7, #0x14]
mov r1, #0
bl BufferLandmarkName
add r0, r4, #0
add r1, r4, #0
add r2, r4, #0
add r0, #0x88
add r1, #0x90
add r2, #0x8c
ldr r0, [r0]
ldr r1, [r1]
ldr r2, [r2]
bl StringExpandPlaceholders
b _0221D1DA
_0221D12C:
add r0, r4, #0
add r2, r4, #0
add r0, #0x84
add r2, #0x90
ldr r0, [r0]
ldr r2, [r2]
mov r1, #9
bl ReadMsgDataIntoString
b _0221D1DA
_0221D140:
add r0, r4, #0
add r2, r4, #0
add r0, #0x84
add r2, #0x90
ldr r0, [r0]
ldr r2, [r2]
mov r1, #0xa
bl ReadMsgDataIntoString
b _0221D1DA
_0221D154:
add r0, r4, #0
add r2, r4, #0
add r0, #0x84
add r2, #0x90
ldr r0, [r0]
ldr r2, [r2]
mov r1, #0xb
bl ReadMsgDataIntoString
b _0221D1DA
_0221D168:
add r0, r4, #0
add r2, r4, #0
add r0, #0x84
add r2, #0x90
ldr r0, [r0]
ldr r2, [r2]
mov r1, #0xe
bl ReadMsgDataIntoString
b _0221D1DA
_0221D17C:
add r0, r4, #0
add r2, r4, #0
add r0, #0x84
add r2, #0x90
ldr r0, [r0]
ldr r2, [r2]
mov r1, #0xc
bl ReadMsgDataIntoString
b _0221D1DA
_0221D190:
add r0, r4, #0
add r2, r4, #0
add r0, #0x84
add r2, #0x90
ldr r0, [r0]
ldr r2, [r2]
mov r1, #0xd
bl ReadMsgDataIntoString
b _0221D1DA
_0221D1A4:
add r0, r4, #0
add r2, r4, #0
add r0, #0x84
add r2, #0x8c
ldr r0, [r0]
ldr r2, [r2]
mov r1, #0xf
bl ReadMsgDataIntoString
add r0, r4, #0
add r0, #0x88
ldr r0, [r0]
ldr r2, [r7, #0x14]
mov r1, #0
bl BufferLandmarkName
add r0, r4, #0
add r1, r4, #0
add r2, r4, #0
add r0, #0x88
add r1, #0x90
add r2, #0x8c
ldr r0, [r0]
ldr r1, [r1]
ldr r2, [r2]
bl StringExpandPlaceholders
_0221D1DA:
mov r0, #0x18
str r0, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r0, _0221D208 ; =0x000F0200
mov r1, #0
str r0, [sp, #8]
add r0, r5, r6
str r1, [sp, #0xc]
add r4, #0x90
ldr r2, [r4]
add r0, #0x20
mov r3, #2
bl AddTextPrinterParameterizedWithColor
add r0, r5, r6
add r0, #0x20
bl CopyWindowPixelsToVram_TextMode
add sp, #0x18
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_0221D204: .word 0x0000328C
_0221D208: .word 0x000F0200
thumb_func_end ov63_0221CE94
thumb_func_start ov63_0221D20C
ov63_0221D20C: ; 0x0221D20C
push {r3, lr}
bl ov63_0221D240
mov r0, #0x10
mov r1, #1
bl GfGfx_EngineATogglePlanes
pop {r3, pc}
thumb_func_end ov63_0221D20C
thumb_func_start ov63_0221D21C
ov63_0221D21C: ; 0x0221D21C
push {r3, r4, r5, lr}
add r5, r0, #0
mov r4, #0
_0221D222:
add r0, r5, #0
add r1, r4, #0
bl ov63_0221C134
add r4, r4, #1
cmp r4, #0xf
blo _0221D222
add r0, r5, #0
bl ov63_0221CB48
add r0, r5, #0
bl ov63_0221C85C
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_end ov63_0221D21C
thumb_func_start ov63_0221D240
ov63_0221D240: ; 0x0221D240
push {r3, r4, r5, r6, r7, lr}
mov r2, #1
add r5, r0, #0
lsl r2, r2, #8
add r3, r5, r2
ldr r2, _0221D2EC ; =0x0000328C
mul r2, r1
add r1, r3, r2
str r1, [sp]
bl ov63_0221C6FC
ldr r1, [sp]
add r0, r5, #0
bl ov63_0221CA1C
ldr r4, _0221D2F0 ; =ov63_0221FF68
mov r7, #0
add r6, r5, #0
_0221D264:
add r0, r5, #0
add r1, r5, #0
add r0, #0x9c
add r1, #0xa0
ldr r0, [r0]
ldr r1, [r1]
add r2, r4, #0
bl SpriteRenderer_LoadResourcesAndCreateSprite
add r1, r6, #0
add r1, #0xa4
add r7, r7, #1
str r0, [r1]
add r4, #0x34
add r6, r6, #4
cmp r7, #5
bls _0221D264
ldr r1, [sp]
add r0, r5, #0
mov r2, #2
mov r3, #0
bl ov63_0221C8E8
ldr r1, [sp]
add r0, r5, #0
mov r2, #0
mov r3, #2
bl ov63_0221C8E8
ldr r1, [sp]
add r0, r5, #0
mov r2, #4
bl ov63_0221CB94
ldr r0, [sp]
ldrh r1, [r0, #0xc]
ldr r0, _0221D2F4 ; =0x0000FF9E
add r0, r1, r0
lsl r0, r0, #0x10
lsr r0, r0, #0x10
cmp r0, #1
bhi _0221D2CC
add r0, r5, #0
mov r1, #4
mov r2, #2
bl ov63_0221C16C
add r0, r5, #0
mov r1, #5
mov r2, #2
bl ov63_0221C16C
_0221D2CC:
add r0, r5, #0
mov r1, #1
mov r2, #0
bl ov63_0221C954
add r0, r5, #0
mov r1, #3
mov r2, #0
bl ov63_0221C954
add r0, r5, #0
mov r1, #5
mov r2, #0
bl ov63_0221C954
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_0221D2EC: .word 0x0000328C
_0221D2F0: .word ov63_0221FF68
_0221D2F4: .word 0x0000FF9E
thumb_func_end ov63_0221D240
thumb_func_start ov63_0221D2F8
ov63_0221D2F8: ; 0x0221D2F8
push {r4, lr}
add r4, r0, #0
ldrb r0, [r1, #5]
cmp r0, #0
beq _0221D322
add r0, r4, #0
add r0, #0xb4
mov r1, #0x1f
mvn r1, r1
ldr r0, [r0]
add r2, r1, #0
bl UnkImageStruct_AddSpritePositionXY
add r4, #0xb8
mov r1, #0x1f
mvn r1, r1
ldr r0, [r4]
add r2, r1, #0
bl UnkImageStruct_AddSpritePositionXY
pop {r4, pc}
_0221D322:
add r0, r4, #0
add r0, #0xb4
mov r1, #0xf
mvn r1, r1
ldr r0, [r0]
add r2, r1, #0
bl UnkImageStruct_AddSpritePositionXY
add r4, #0xb8
mov r1, #0xf
mvn r1, r1
ldr r0, [r4]
add r2, r1, #0
bl UnkImageStruct_AddSpritePositionXY
pop {r4, pc}
.balign 4, 0
thumb_func_end ov63_0221D2F8
thumb_func_start ov63_0221D344
ov63_0221D344: ; 0x0221D344
push {r3, r4, r5, lr}
ldr r1, _0221D54C ; =0x00013056
add r5, r0, #0
mov r2, #1
lsl r2, r2, #8
add r3, r5, r2
ldrh r1, [r5, r1]
ldr r2, _0221D550 ; =0x0000328C
mul r2, r1
add r4, r3, r2
bl ov63_0221D20C
ldr r0, [r5, #0x10]
mov r1, #0
bl BgClearTilemapBufferAndCommit
mov r1, #0
ldr r0, [r5, #0x10]
add r2, r1, #0
add r3, r1, #0
bl ScheduleSetBgPosText
mov r1, #0
ldr r0, [r5, #0x10]
mov r2, #3
add r3, r1, #0
bl ScheduleSetBgPosText
ldr r0, _0221D54C ; =0x00013056
mov r1, #1
ldrh r0, [r5, r0]
tst r0, r1
ldr r0, [r5, #0x10]
bne _0221D44E
mov r2, #0
add r3, r2, #0
bl ScheduleSetBgPosText
ldr r0, [r5, #0x10]
mov r1, #1
mov r2, #3
mov r3, #0
bl ScheduleSetBgPosText
mov r2, #0
ldr r0, [r5, #0x10]
mov r1, #2
add r3, r2, #0
bl ScheduleSetBgPosText
ldr r0, [r5, #0x10]
mov r1, #2
mov r2, #3
mov r3, #0
bl ScheduleSetBgPosText
mov r2, #0
ldr r0, [r5, #0x10]
mov r1, #3
add r3, r2, #0
bl ScheduleSetBgPosText
mov r1, #3
ldr r0, [r5, #0x10]
add r2, r1, #0
mov r3, #0
bl ScheduleSetBgPosText
add r0, r5, #0
add r0, #0xa4
mov r1, #1
mov r2, #0x27
ldr r0, [r0]
lsl r1, r1, #8
mvn r2, r2
bl UnkImageStruct_SetSpritePositionXY
add r0, r5, #0
add r0, #0xa8
mov r1, #0x4a
mov r2, #0x4f
ldr r0, [r0]
lsl r1, r1, #2
mvn r2, r2
bl UnkImageStruct_SetSpritePositionXY
ldrb r2, [r4, #0x13]
add r0, r5, #0
add r0, #0xac
add r2, #0x98
mov r1, #0x12
lsl r2, r2, #0x10
ldr r0, [r0]
lsl r1, r1, #4
asr r2, r2, #0x10
bl UnkImageStruct_SetSpritePositionXY
ldrb r2, [r4, #0x13]
add r0, r5, #0
add r0, #0xb0
add r2, #0x98
mov r1, #0x4a
lsl r2, r2, #0x10
ldr r0, [r0]
lsl r1, r1, #2
asr r2, r2, #0x10
bl UnkImageStruct_SetSpritePositionXY
add r0, r5, #0
mov r1, #0x51
add r0, #0xb4
mvn r1, r1
add r2, r1, #0
ldr r0, [r0]
add r2, #0x50
bl UnkImageStruct_SetSpritePositionXY
add r0, r5, #0
mov r1, #0x58
add r0, #0xb8
mvn r1, r1
add r2, r1, #0
ldr r0, [r0]
add r2, #0x56
bl UnkImageStruct_SetSpritePositionXY
ldr r1, _0221D54C ; =0x00013056
add r0, r5, #0
ldrh r1, [r5, r1]
mov r2, #1
bl ov63_0221CE94
b _0221D512
_0221D44E:
mov r2, #0
add r3, r2, #0
bl ScheduleSetBgPosText
mov r2, #3
add r3, r2, #0
ldr r0, [r5, #0x10]
mov r1, #1
add r3, #0xfd
bl ScheduleSetBgPosText
mov r2, #0
add r3, r2, #0
ldr r0, [r5, #0x10]
mov r1, #2
sub r3, #0xb8
bl ScheduleSetBgPosText
ldr r0, [r5, #0x10]
mov r1, #2
mov r2, #3
mov r3, #0
bl ScheduleSetBgPosText
mov r1, #3
add r3, r1, #0
ldr r0, [r5, #0x10]
mov r2, #0
add r3, #0xfd
bl ScheduleSetBgPosText
mov r1, #3
ldr r0, [r5, #0x10]
add r2, r1, #0
mov r3, #0
bl ScheduleSetBgPosText
add r0, r5, #0
add r0, #0xa4
mov r1, #0
add r2, r1, #0
ldr r0, [r0]
sub r2, #0x28
bl UnkImageStruct_SetSpritePositionXY
add r0, r5, #0
mov r1, #0x27
add r0, #0xa8
mvn r1, r1
add r2, r1, #0
ldr r0, [r0]
sub r2, #0x28
bl UnkImageStruct_SetSpritePositionXY
ldrb r2, [r4, #0x13]
add r0, r5, #0
add r0, #0xac
add r2, #0x98
mov r1, #0x4f
lsl r2, r2, #0x10
ldr r0, [r0]
mvn r1, r1
asr r2, r2, #0x10
bl UnkImageStruct_SetSpritePositionXY
ldrb r2, [r4, #0x13]
add r0, r5, #0
add r0, #0xb0
add r2, #0x98
mov r1, #0x5b
lsl r2, r2, #0x10
ldr r0, [r0]
mvn r1, r1
asr r2, r2, #0x10
bl UnkImageStruct_SetSpritePositionXY
add r0, r5, #0
add r0, #0xb4
mov r2, #1
ldr r0, [r0]
ldr r1, _0221D554 ; =0x00000152
mvn r2, r2
bl UnkImageStruct_SetSpritePositionXY
add r0, r5, #0
add r0, #0xb8
mov r2, #2
ldr r0, [r0]
ldr r1, _0221D558 ; =0x00000159
mvn r2, r2
bl UnkImageStruct_SetSpritePositionXY
ldr r1, _0221D54C ; =0x00013056
add r0, r5, #0
ldrh r1, [r5, r1]
mov r2, #4
bl ov63_0221CE94
_0221D512:
add r0, r5, #0
add r0, #0xa4
ldr r0, [r0]
mov r1, #2
bl sub_0200DF98
add r0, r5, #0
add r0, #0xa8
ldr r0, [r0]
mov r1, #2
bl sub_0200DF98
add r0, r5, #0
add r0, #0xa8
mov r1, #0xff
lsl r1, r1, #0x16
ldr r0, [r0]
add r2, r1, #0
bl sub_0200E024
add r0, r5, #0
add r1, r4, #0
bl ov63_0221D2F8
ldr r0, [r5, #0x10]
mov r1, #0
bl ScheduleBgTilemapBufferTransfer
pop {r3, r4, r5, pc}
.balign 4, 0
_0221D54C: .word 0x00013056
_0221D550: .word 0x0000328C
_0221D554: .word 0x00000152
_0221D558: .word 0x00000159
thumb_func_end ov63_0221D344
.extern ov63_0221CE94
.extern ov63_0221D20C
.extern ov63_0221D2F8
thumb_func_start RegisterHallOfFame_ShowMon_LeftSide
RegisterHallOfFame_ShowMon_LeftSide: ; 0x0221D55C
@ -5559,6 +4751,7 @@ ov63_0221FF58: ; 0x0221FF58
.byte 0x80, 0x00, 0x64, 0x00, 0x80, 0x00, 0x78, 0x00
.byte 0x00, 0x00, 0x80, 0x3F, 0xCD, 0xCC, 0x4C, 0x3F
.public ov63_0221FF68
ov63_0221FF68: ; 0x0221FF68
.byte 0x00, 0x02, 0xE0, 0x01, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xD8, 0xD8, 0x00, 0x00

View File

@ -109,8 +109,8 @@ BOOL SpriteRenderer_LoadCellResObjFromNarcId(SpriteRenderer* renderer, SpriteGfx
BOOL SpriteRenderer_LoadCellResObjFromOpenNarc(SpriteRenderer* renderer, SpriteGfxHandler* gfxHandler, NARC* narc, int fileId, BOOL compressed, int resId);
BOOL SpriteRenderer_LoadAnimResObjFromNarcId(SpriteRenderer* renderer, SpriteGfxHandler* gfxHandler, NarcId narcId, int fileId, BOOL compressed, int resId);
BOOL SpriteRenderer_LoadAnimResObjFromOpenNarc(SpriteRenderer* renderer, SpriteGfxHandler* gfxHandler, NARC* narc, int fileId, BOOL compressed, int resId);
UnkImageStruct* SpriteRenderer_LoadResourcesAndCreateSprite(SpriteRenderer* renderer, SpriteGfxHandler* gfxHandler, UnkTemplate_0200D748* unkTemplate);
UnkImageStruct* SpriteRenderer_LoadResourcesAndCreateSprite_CustomBottomScreenOffset(SpriteRenderer* renderer, SpriteGfxHandler* gfxHandler, UnkTemplate_0200D748* unkTemplate, fx32 yOffset);
UnkImageStruct* SpriteRenderer_LoadResourcesAndCreateSprite(SpriteRenderer* renderer, SpriteGfxHandler* gfxHandler, const UnkTemplate_0200D748* unkTemplate);
UnkImageStruct* SpriteRenderer_LoadResourcesAndCreateSprite_CustomBottomScreenOffset(SpriteRenderer* renderer, SpriteGfxHandler* gfxHandler, const UnkTemplate_0200D748* unkTemplate, fx32 yOffset);
NNSG2dImagePaletteProxy* sub_0200D934(SpriteGfxHandler* gfxHandler, int id);
int sub_0200D944(SpriteGfxHandler* gfxHandler, int id, int vram);
BOOL SpriteGfxHandler_UnloadCharObjById(SpriteGfxHandler* gfxHandler, u32 character);

View File

@ -42,10 +42,13 @@ typedef struct RegisterHofMon {
u8 unk_0005;
u8 filler_0006[0x6];
u16 unk_000C;
u8 filler_000E[0x2];
u16 unk_000E;
u8 unk_0010;
u8 unk_0011;
u8 filler_0012[0x5A];
u8 unk_0012;
u8 unk_0013;
u32 unk_0014;
u8 filler_0018[0x54];
u16 unk_006C[3200];
u16 unk_196C[3200];
u16 unk_326C[16];
@ -143,6 +146,11 @@ void ov63_0221CA1C(RegisterHallOfFameData *data, RegisterHofMon *mon);
void ov63_0221CB48(RegisterHallOfFameData *data);
void ov63_0221CB94(RegisterHallOfFameData *data, RegisterHofMon *hofMon, int a2);
void ov63_0221CC78(RegisterHallOfFameData *data);
void ov63_0221CE94(RegisterHallOfFameData *data, u16 a1, int a2);
void ov63_0221D20C(RegisterHallOfFameData *data, int a1);
void ov63_0221D21C(RegisterHallOfFameData *data);
void ov63_0221D240(RegisterHallOfFameData *data, int a1);
void ov63_0221D2F8(RegisterHallOfFameData *data, RegisterHofMon *mon);
void ov63_0221CD40(RegisterHallOfFameData *data);
void ov63_0221CD68(RegisterHallOfFameData *data);
void ov63_0221CDF8(RegisterHallOfFameData *data);
@ -152,6 +160,7 @@ void ov63_0221D344(RegisterHallOfFameData *data);
BOOL RegisterHallOfFame_ShowMon_LeftSide(RegisterHallOfFameData *data);
BOOL RegisterHallOfFame_ShowMon_RightSide(RegisterHallOfFameData *data);
void ov63_0221E114(RegisterHallOfFameData *data);
int ov63_0221E310(RegisterHallOfFameData *data, Pokemon *pokemon, PlayerProfile *profile);
int ov63_0221E404(u16 a0, u8 a1, u8 a2);
void ov63_0221E450(RegisterHallOfFameData *data, int a1, int a2, int a3, int a4);
BOOL ov63_0221E5A0(RegisterHallOfFameData *data);
@ -181,6 +190,7 @@ extern const u16 ov63_0221FC98[16];
extern RegisterHallOfFameScene (*const sSceneFuncs[])(RegisterHallOfFameData *data); // 0221FD18
extern const GraphicsBanks ov63_0221FD58;
extern const WindowTemplate ov63_0221FD80[7];
extern const UnkTemplate_0200D748 ov63_0221FF68[6];
BOOL RegisterHallOfFame_Init(OVY_MANAGER *man, int *state) {
Main_SetVBlankIntrCB(NULL, NULL);
@ -785,3 +795,167 @@ void ov63_0221CE7C(RegisterHallOfFameData *data) {
RemoveWindow(&data->unk_00014[i]);
}
}
void ov63_0221CE94(RegisterHallOfFameData *data, u16 a1, int a2) {
Window *windows = &data->unk_00014[a2];
RegisterHofMon *hofMon = &data->unk_00100[a1];
Pokemon *mon = hofMon->mon;
BoxPokemon *boxmon = Mon_GetBoxMon(mon);
FillWindowPixelBuffer(&windows[0], 0);
ReadMsgDataIntoString(data->msgData, msg_0180_00004, data->unk_0008C);
BufferBoxMonNickname(data->msgFormat, 0, boxmon);
StringExpandPlaceholders(data->msgFormat, data->unk_00090, data->unk_0008C);
AddTextPrinterParameterizedWithColor(&windows[0], 0, data->unk_00090, 2, 0, TEXT_SPEED_NOTRANSFER, MAKE_TEXT_COLOR(15, 2, 0), NULL);
CopyWindowPixelsToVram_TextMode(&windows[0]);
FillWindowPixelBuffer(&windows[1], 0);
if (hofMon->unk_0011 == 2 || hofMon->unk_0012 == 0) {
ReadMsgDataIntoString(data->msgData, msg_0180_00003, data->unk_0008C);
} else if (hofMon->unk_0011 == 0) {
ReadMsgDataIntoString(data->msgData, msg_0180_00001, data->unk_0008C);
} else if (hofMon->unk_0011 == 1) {
ReadMsgDataIntoString(data->msgData, msg_0180_00002, data->unk_0008C);
} else {
ReadMsgDataIntoString(data->msgData, msg_0180_00003, data->unk_0008C);
}
BufferBoxMonSpeciesName(data->msgFormat, 0, boxmon);
StringExpandPlaceholders(data->msgFormat, data->unk_00090, data->unk_0008C);
AddTextPrinterParameterizedWithColor(&windows[1], 0, data->unk_00090, 2, 0, TEXT_SPEED_NOTRANSFER, MAKE_TEXT_COLOR(15, 2, 0), NULL);
ReadMsgDataIntoString(data->msgData, msg_0180_00005, data->unk_0008C);
BufferIntegerAsString(data->msgFormat, 0, hofMon->unk_000E, 3, PRINTING_MODE_LEFT_ALIGN, TRUE);
StringExpandPlaceholders(data->msgFormat, data->unk_00090, data->unk_0008C);
AddTextPrinterParameterizedWithColor(&windows[1], 0, data->unk_00090, 2, 16, TEXT_SPEED_NOTRANSFER, MAKE_TEXT_COLOR(15, 2, 0), NULL);
CopyWindowPixelsToVram_TextMode(&windows[1]);
FillWindowPixelBuffer(&windows[2], 0);
ReadMsgDataIntoString(data->msgData, msg_0180_00006, data->unk_0008C);
BufferBoxMonOTName(data->msgFormat, 0, boxmon);
StringExpandPlaceholders(data->msgFormat, data->unk_00090, data->unk_0008C);
AddTextPrinterParameterizedWithColor(&windows[2], 0, data->unk_00090, 2, 0, TEXT_SPEED_NOTRANSFER, MAKE_TEXT_COLOR(15, 2, 0), NULL);
switch (ov63_0221E310(data, mon, data->args->profile)) {
case 0:
ReadMsgDataIntoString(data->msgData, msg_0180_00007, data->unk_0008C);
BufferLandmarkName(data->msgFormat, 0, hofMon->unk_0014);
StringExpandPlaceholders(data->msgFormat, data->unk_00090, data->unk_0008C);
break;
case 1:
ReadMsgDataIntoString(data->msgData, msg_0180_00008, data->unk_0008C);
BufferLandmarkName(data->msgFormat, 0, hofMon->unk_0014);
StringExpandPlaceholders(data->msgFormat, data->unk_00090, data->unk_0008C);
break;
case 2:
ReadMsgDataIntoString(data->msgData, msg_0180_00009, data->unk_00090);
break;
case 3:
ReadMsgDataIntoString(data->msgData, msg_0180_00010, data->unk_00090);
break;
case 4:
ReadMsgDataIntoString(data->msgData, msg_0180_00011, data->unk_00090);
break;
case 5:
ReadMsgDataIntoString(data->msgData, msg_0180_00014, data->unk_00090);
break;
case 6:
ReadMsgDataIntoString(data->msgData, msg_0180_00012, data->unk_00090);
break;
case 7:
ReadMsgDataIntoString(data->msgData, msg_0180_00013, data->unk_00090);
break;
case 8:
case 9:
ReadMsgDataIntoString(data->msgData, msg_0180_00015, data->unk_0008C);
BufferLandmarkName(data->msgFormat, 0, hofMon->unk_0014);
StringExpandPlaceholders(data->msgFormat, data->unk_00090, data->unk_0008C);
break;
}
AddTextPrinterParameterizedWithColor(&windows[2], 0, data->unk_00090, 2, 24, TEXT_SPEED_NOTRANSFER, MAKE_TEXT_COLOR(15, 2, 0), NULL);
CopyWindowPixelsToVram_TextMode(&windows[2]);
}
void ov63_0221D20C(RegisterHallOfFameData *data, int a1) {
ov63_0221D240(data, a1);
GfGfx_EngineATogglePlanes(GX_PLANEMASK_OBJ, GF_PLANE_TOGGLE_ON);
}
void ov63_0221D21C(RegisterHallOfFameData *data) {
for (u32 i = 0; i < 15u; ++i) {
ov63_0221C134(data, i);
}
ov63_0221CB48(data);
ov63_0221C85C(data);
}
void ov63_0221D240(RegisterHallOfFameData *data, int a1) {
RegisterHofMon *hofMon = &data->unk_00100[a1];
ov63_0221C6FC(data);
ov63_0221CA1C(data, hofMon);
for (int i = 0; i <= 5u; ++i) {
data->unk_000A4[i] = SpriteRenderer_LoadResourcesAndCreateSprite(data->spriteRenderer, data->spriteGfxHandler, &ov63_0221FF68[i]);
}
ov63_0221C8E8(data, hofMon, 2, 0);
ov63_0221C8E8(data, hofMon, 0, 2);
ov63_0221CB94(data, hofMon, 4);
if (hofMon->unk_000C == 98 || hofMon->unk_000C == 99) {
ov63_0221C16C(data, 4, 2);
ov63_0221C16C(data, 5, 2);
}
ov63_0221C954(data, 1, 0);
ov63_0221C954(data, 3, 0);
ov63_0221C954(data, 5, 0);
}
void ov63_0221D2F8(RegisterHallOfFameData *data, RegisterHofMon *mon) {
if (mon->unk_0005) {
UnkImageStruct_AddSpritePositionXY(data->unk_000A4[4], -32, -32);
UnkImageStruct_AddSpritePositionXY(data->unk_000A4[5], -32, -32);
} else {
UnkImageStruct_AddSpritePositionXY(data->unk_000A4[4], -16, -16);
UnkImageStruct_AddSpritePositionXY(data->unk_000A4[5], -16, -16);
}
}
void ov63_0221D344(RegisterHallOfFameData *data) {
RegisterHofMon *hofMon = &data->unk_00100[data->unk_13056];
ov63_0221D20C(data, data->unk_13056);
BgClearTilemapBufferAndCommit(data->bgConfig, GF_BG_LYR_MAIN_0);
ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_0, BG_POS_OP_SET_X, 0);
ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_0, BG_POS_OP_SET_Y, 0);
if ((data->unk_13056 & 1) == 0) {
ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_1, BG_POS_OP_SET_X, 0);
ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_1, BG_POS_OP_SET_Y, 0);
ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_2, BG_POS_OP_SET_X, 0);
ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_2, BG_POS_OP_SET_Y, 0);
ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_3, BG_POS_OP_SET_X, 0);
ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_3, BG_POS_OP_SET_Y, 0);
UnkImageStruct_SetSpritePositionXY(data->unk_000A4[0], 256, -40);
UnkImageStruct_SetSpritePositionXY(data->unk_000A4[1], 296, -80);
UnkImageStruct_SetSpritePositionXY(data->unk_000A4[2], 288, 152 + hofMon->unk_0013);
UnkImageStruct_SetSpritePositionXY(data->unk_000A4[3], 296, 152 + hofMon->unk_0013);
UnkImageStruct_SetSpritePositionXY(data->unk_000A4[4], -82, -2);
UnkImageStruct_SetSpritePositionXY(data->unk_000A4[5], -89, -3);
ov63_0221CE94(data, data->unk_13056, 1);
} else {
ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_1, BG_POS_OP_SET_X, 0);
ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_1, BG_POS_OP_SET_Y, 256);
ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_2, BG_POS_OP_SET_X, -184);
ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_2, BG_POS_OP_SET_Y, 0);
ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_3, BG_POS_OP_SET_X, 256);
ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_3, BG_POS_OP_SET_Y, 0);
UnkImageStruct_SetSpritePositionXY(data->unk_000A4[0], 0, -40);
UnkImageStruct_SetSpritePositionXY(data->unk_000A4[1], -40, -80);
UnkImageStruct_SetSpritePositionXY(data->unk_000A4[2], -80, 152 + hofMon->unk_0013);
UnkImageStruct_SetSpritePositionXY(data->unk_000A4[3], -92, 152 + hofMon->unk_0013);
UnkImageStruct_SetSpritePositionXY(data->unk_000A4[4], 338, -2);
UnkImageStruct_SetSpritePositionXY(data->unk_000A4[5], 345, -3);
ov63_0221CE94(data, data->unk_13056, 4);
}
sub_0200DF98(data->unk_000A4[0], 2);
sub_0200DF98(data->unk_000A4[1], 2);
sub_0200E024(data->unk_000A4[1], 1.5, 1.5);
ov63_0221D2F8(data, hofMon);
ScheduleBgTilemapBufferTransfer(data->bgConfig, GF_BG_LYR_MAIN_0);
}

View File

@ -19,7 +19,7 @@ static void DeinitSpriteRenderer(SpriteRenderer* renderer);
static void MyRemoveSpriteGfxHandler(SpriteRenderer* renderer, SpriteGfxHandler* gfxHandler);
static BOOL sub_0200D124(SpriteRenderer* renderer, SpriteGfxHandler* gfxHandler, const u16* a2, int a3, int a4);
static Sprite* MyCreateSprite(SpriteRenderer* renderer, SpriteGfxHandler* gfxHandler, int a2, s16 x, s16 y, s16 z, u16 animSeqNo, int rotation, int a8, NNS_G2D_VRAM_TYPE whichScreen, int a10, int a11, int a12, int a13);
static UnkImageStruct* MyLoadResourcesAndCreateSprite(SpriteRenderer* renderer, SpriteGfxHandler* gfxHandler, UnkTemplate_0200D748* unkTemplate, fx32 yOffset);
static UnkImageStruct* MyLoadResourcesAndCreateSprite(SpriteRenderer* renderer, SpriteGfxHandler* gfxHandler, const UnkTemplate_0200D748* unkTemplate, fx32 yOffset);
static BOOL MyLoadCellOrAnim_NarcId(SpriteRenderer* renderer, SpriteGfxHandler* gfxHandler, NarcId narcId, int fileId, BOOL compressed, GfGfxResType a6, int resId);
static BOOL MyLoadCellOrAnim_OpenNarc(SpriteRenderer* renderer, SpriteGfxHandler* gfxHandler, NARC* narc, int fileId, BOOL compressed, GfGfxResType a6, int resId);
static BOOL MyInsertResObjIntoList(GF_2DGfxResObjList* list, GF_2DGfxResObj* obj);
@ -396,15 +396,15 @@ BOOL SpriteRenderer_LoadAnimResObjFromOpenNarc(SpriteRenderer* renderer, SpriteG
return MyLoadCellOrAnim_OpenNarc(renderer, gfxHandler, narc, fileId, compressed, GF_GFX_RES_TYPE_ANIM, resId);
}
UnkImageStruct* SpriteRenderer_LoadResourcesAndCreateSprite(SpriteRenderer* renderer, SpriteGfxHandler* gfxHandler, UnkTemplate_0200D748* template) {
UnkImageStruct* SpriteRenderer_LoadResourcesAndCreateSprite(SpriteRenderer* renderer, SpriteGfxHandler* gfxHandler, const UnkTemplate_0200D748* template) {
return MyLoadResourcesAndCreateSprite(renderer, gfxHandler, template, FX32_CONST(GX_LCD_SIZE_Y));
}
UnkImageStruct* SpriteRenderer_LoadResourcesAndCreateSprite_CustomBottomScreenOffset(SpriteRenderer* renderer, SpriteGfxHandler* gfxHandler, UnkTemplate_0200D748* template, fx32 yOffset) {
UnkImageStruct* SpriteRenderer_LoadResourcesAndCreateSprite_CustomBottomScreenOffset(SpriteRenderer* renderer, SpriteGfxHandler* gfxHandler, const UnkTemplate_0200D748* template, fx32 yOffset) {
return MyLoadResourcesAndCreateSprite(renderer, gfxHandler, template, yOffset);
}
static UnkImageStruct* MyLoadResourcesAndCreateSprite(SpriteRenderer* renderer, SpriteGfxHandler* gfxHandler, UnkTemplate_0200D748* unkTemplate, fx32 yOffset) {
static UnkImageStruct* MyLoadResourcesAndCreateSprite(SpriteRenderer* renderer, SpriteGfxHandler* gfxHandler, const UnkTemplate_0200D748* unkTemplate, fx32 yOffset) {
int i;
int paletteOffset;
UnkImageStruct* ret = AllocFromHeap(renderer->heapId, sizeof(UnkImageStruct));