Match files in overlay13

This commit is contained in:
Nomura
2022-12-30 18:02:05 +01:00
parent f1a53a1878
commit 67a070eb9f
31 changed files with 7510 additions and 19259 deletions

View File

@@ -1,172 +0,0 @@
.public sub_02002BB8
.public sub_02002C60
.public sub_02002FBC
.public sub_02003050
.public sub_02003164
.public sub_02003178
.public sub_0200384C
.public sub_02005748
.public sub_0200679C
.public sub_020067D0
.public sub_02006AC0
.public sub_02006C24
.public sub_02006CA8
.public sub_02006CB8
.public sub_02006E3C
.public sub_020070E8
.public sub_0200B144
.public sub_0200B190
.public sub_0200B1B8
.public sub_0200B1EC
.public sub_0200B358
.public sub_0200B3F0
.public sub_0200B5CC
.public sub_0200BA74
.public sub_0200C388
.public sub_0200C440
.public sub_0200C560
.public sub_0200C7EC
.public sub_0200D3F4
.public sub_0200DD04
.public sub_0200DD08
.public sub_0200E084
.public sub_02018144
.public sub_020181C4
.public sub_020183A0
.public sub_020183C4
.public sub_02019044
.public sub_02019690
.public sub_020198C0
.public sub_02019CB8
.public sub_02019EBC
.public sub_02019F04
.public sub_0201AD10
.public sub_0201C3C0
.public sub_0201CED0
.public sub_0201D724
.public sub_0201FF74
.public sub_02022664
.public sub_02022798
.public sub_02023790
.public sub_020237BC
.public sub_02074470
.public sub_02075AD0
.public sub_02075D6C
.public sub_02076B10
.public sub_020790C4
.public sub_020790DC
.public sub_0207A0F8
.public sub_0207A0FC
.public sub_0207CFF0
.public sub_0207D28C
.public sub_0207D60C
.public sub_0207DA1C
.public sub_0208C0BC
.public sub_0208E9F0
.public sub_02095734
.public NNS_G2dGetUnpackedScreenData
.public memcpy
.public memset
.public _s32_div_f
.public ov13_0221FCAC
.public ov13_0221FE5C
.public ov13_0221FF60
.public ov13_0221FFDC
.public ov13_0222012C
.public ov13_022201DC
.public ov13_0222029C
.public ov13_022203A0
.public ov13_02220418
.public ov13_0222050C
.public ov13_02220628
.public ov13_0222072C
.public ov13_02220738
.public ov13_02220744
.public ov13_02220750
.public ov13_0222075C
.public ov13_02220768
.public ov13_0222078C
.public ov13_022207B8
.public ov13_022207DC
.public ov13_0222081C
.public ov13_02220834
.public ov13_02220848
.public ov13_02220864
.public ov13_0222088C
.public ov13_022208A4
.public ov13_02220A4C
.public ov13_02220B78
.public ov13_02220BA4
.public ov13_02220C0C
.public ov13_02220D1C
.public ov13_02220D4C
.public ov13_02220F08
.public ov13_02220F60
.public ov13_02220F98
.public ov13_0222124C
.public ov13_022212C4
.public ov13_0222130C
.public ov13_02221354
.public ov13_0222139C
.public ov13_022213E4
.public ov13_022213F0
.public ov13_02221428
.public ov13_022214E0
.public ov13_02221560
.public ov13_02221590
.public ov13_02221630
.public ov13_02221654
.public ov13_022216C0
.public ov13_02221738
.public ov13_022217A4
.public ov13_0222194C
.public ov13_0222196C
.public ov13_0222198C
.public ov13_022219AC
.public ov13_022219DC
.public ov13_02221A04
.public ov13_02221A3C
.public ov13_02221A54
.public ov13_02221A88
.public ov13_02221AC4
.public ov13_02221BB0
.public ov13_02221BC8
.public ov13_02221BF8
.public ov13_02223118
.public ov13_02223448
.public ov13_022234A8
.public ov13_02223F5C
.public ov13_022240E0
.public ov13_02224144
.public ov13_0222449C
.public ov13_02224500
.public ov13_02224970
.public ov13_02224B7C
.public ov13_022252E8
.public ov13_0222537C
.public ov13_0222563C
.public ov13_022256E8
.public ov13_02225710
.public ov13_02225A3C
.public ov13_02225FCC
.public ov13_0222601C
.public ov13_022260EC
.public ov13_02226444
.public ov13_022264C4
.public ov13_02228A38
.public ov13_02228A50
.public ov13_02228A5C
.public ov13_02228A60
.public ov13_02228B64
.public ov16_0223DF00
.public ov16_0223DF0C
.public ov16_0223DFAC
.public ov16_0223E064
.public ov16_0223E120
.public ov16_0223E1AC
.public ov16_0223E1B0
.public ov16_0223E1F8
.public ov16_0223E258
.public ov16_0223E30C
.public ov16_0223EDE0
.public ov16_0223F1F8

File diff suppressed because it is too large Load Diff

View File

@@ -1,87 +0,0 @@
.public sub_02002AC8
.public sub_02002D7C
.public sub_02002EEC
.public sub_0200B144
.public sub_0200B190
.public sub_0200B1B8
.public sub_0200B1EC
.public sub_0200B5CC
.public sub_0200B60C
.public sub_0200B630
.public sub_0200B6A0
.public sub_0200B70C
.public sub_0200C388
.public sub_0200C578
.public sub_0200C5BC
.public sub_0200C648
.public sub_0200E060
.public sub_020181C4
.public sub_0201A778
.public sub_0201A8D4
.public sub_0201A8FC
.public sub_0201A928
.public sub_0201A9A4
.public sub_0201ADA4
.public sub_0201AE78
.public sub_0201C294
.public sub_0201D738
.public sub_0201D78C
.public sub_02023790
.public sub_020237BC
.public sub_02074470
.public sub_02076B10
.public sub_020790C4
.public sub_0207A0F8
.public sub_0207CF48
.public sub_0207CFF0
.public sub_0207D014
.public sub_0208C0BC
.public sub_0208C104
.public sub_0208E9F0
.public sub_0209577C
.public ov13_02221AC4
.public ov13_02221C54
.public ov13_02221E08
.public ov13_02221E50
.public ov13_02221ED0
.public ov13_02221FA8
.public ov13_02222030
.public ov13_022220CC
.public ov13_02222170
.public ov13_022221C8
.public ov13_0222222C
.public ov13_02222290
.public ov13_02222464
.public ov13_02222560
.public ov13_0222265C
.public ov13_0222275C
.public ov13_0222285C
.public ov13_0222295C
.public ov13_02222AF4
.public ov13_02222B6C
.public ov13_02222BB4
.public ov13_02222C9C
.public ov13_02222CE4
.public ov13_02222DCC
.public ov13_02222E2C
.public ov13_02222E94
.public ov13_02222EF8
.public ov13_02222F74
.public ov13_022230A8
.public ov13_0222317C
.public ov13_022232C8
.public ov13_0222339C
.public ov13_02223448
.public ov13_022234A8
.public ov13_022234C8
.public ov13_02223550
.public ov13_022236B8
.public ov13_022237F8
.public ov13_02223A10
.public ov13_02223B74
.public ov13_02223C9C
.public ov13_02223E68
.public ov13_02223F7C
.public ov13_02224108
.public ov16_0223DFAC
.public ov16_0223EDF0

File diff suppressed because it is too large Load Diff

View File

@@ -1,104 +0,0 @@
.public sub_02006C24
.public sub_02006CA8
.public sub_0200C704
.public sub_0200C7C0
.public sub_0200CB30
.public sub_0200CBDC
.public sub_0200CC3C
.public sub_0200CD7C
.public sub_0200CDC4
.public sub_0200CE0C
.public sub_0200CE24
.public sub_0200CE3C
.public sub_0200CE54
.public sub_0200CE6C
.public sub_0200D0B0
.public sub_0200D0F4
.public sub_0200D34C
.public sub_0200D364
.public sub_0200D37C
.public sub_0200D3CC
.public sub_0200D3F4
.public sub_0200D41C
.public sub_0200D4C4
.public sub_0200D948
.public sub_0201FF74
.public sub_020790C4
.public sub_02079D80
.public sub_02079D8C
.public sub_02079EDC
.public sub_02079FD0
.public sub_02079FD8
.public sub_02079FE4
.public sub_0207A0F8
.public sub_0207C908
.public sub_0207C92C
.public sub_0207C944
.public sub_0207C948
.public sub_0207C9B0
.public sub_0207C9EC
.public sub_0207CA90
.public sub_0207CAA8
.public sub_0207CAC0
.public sub_0207CAC4
.public sub_0207D2D0
.public sub_02081930
.public sub_02081934
.public sub_02081938
.public sub_0208193C
.public sub_0208C104
.public sub_0208E9E0
.public sub_0208E9E4
.public sub_0208E9E8
.public sub_0208E9EC
.public _u32_div_f
.public ov13_0222453C
.public ov13_02224588
.public ov13_02224670
.public ov13_02224720
.public ov13_02224798
.public ov13_02224848
.public ov13_022248D8
.public ov13_02224948
.public ov13_022249AC
.public ov13_022249CC
.public ov13_02224A0C
.public ov13_02224A5C
.public ov13_02224AB0
.public ov13_02224AD4
.public ov13_02224B28
.public ov13_02224B5C
.public ov13_02224C14
.public ov13_02224CB0
.public ov13_02224D08
.public ov13_02224DA0
.public ov13_02224E78
.public ov13_02224F3C
.public ov13_02224FA8
.public ov13_0222506C
.public ov13_022250D8
.public ov13_02225150
.public ov13_022251B4
.public ov13_02225248
.public ov13_022252E8
.public ov13_02225304
.public ov13_02225324
.public ov13_022253DC
.public ov13_02225420
.public ov13_0222554C
.public ov13_022255B8
.public ov13_022255EC
.public ov13_02225614
.public ov13_02228A58
.public ov13_02228A60
.public ov13_02228A64
.public ov13_02228A68
.public ov13_02228A90
.public ov13_02228A9C
.public ov13_02228AC8
.public ov16_0223E010
.public ov16_0226DB7C
.public ov16_0226DBFC
.public ov16_0226DC24
.public ov16_0226DCA8
.public ov16_0226DDE8

File diff suppressed because it is too large Load Diff

View File

@@ -1,18 +0,0 @@
.public sub_02002FBC
.public sub_0200D5DC
.public sub_02018144
.public sub_020181C4
.public sub_020198C0
.public sub_0201A9A4
.public sub_0201C04C
.public sub_0201C3C0
.public memcpy
.public ov13_022213F0
.public ov13_022219AC
.public ov13_02225AF0
.public ov13_02225B40
.public ov13_02225C4C
.public ov13_02225D8C
.public ov13_02225E08
.public ov13_02225EB8
.public ov13_02226484

File diff suppressed because it is too large Load Diff

View File

@@ -1,129 +0,0 @@
.public sub_02002BB8
.public sub_02002C60
.public sub_02003050
.public sub_02003178
.public sub_0200384C
.public sub_02005748
.public sub_0200679C
.public sub_020067D0
.public sub_02006C24
.public sub_02006CA8
.public sub_02006CB8
.public sub_02006E3C
.public sub_020070E8
.public sub_0200710C
.public sub_0200B144
.public sub_0200B190
.public sub_0200B1B8
.public sub_0200B1EC
.public sub_0200B358
.public sub_0200B3F0
.public sub_0200B498
.public sub_0200B5CC
.public sub_0200B630
.public sub_0200C388
.public sub_0200C440
.public sub_0200C560
.public sub_0200C7EC
.public sub_0200DD04
.public sub_0200DD08
.public sub_0200E084
.public sub_020181C4
.public sub_020183A0
.public sub_020183C4
.public sub_02019044
.public sub_02019690
.public sub_02019E2C
.public sub_02019EBC
.public sub_02019F04
.public sub_0201C3C0
.public sub_0201C63C
.public sub_0201CED0
.public sub_0201D724
.public sub_0201FF74
.public sub_02022664
.public sub_02022798
.public sub_02023790
.public sub_020237BC
.public sub_02076B10
.public sub_020799A0
.public sub_0207A0F8
.public sub_0207CFF0
.public sub_0207D60C
.public sub_0207D9D8
.public sub_0207D9E4
.public sub_0207D9E8
.public sub_0207D9EC
.public sub_0207D9F0
.public sub_0207DA1C
.public sub_0207DA24
.public NNS_G2dGetUnpackedScreenData
.public memset
.public ov13_02226590
.public ov13_0222668C
.public ov13_02226760
.public ov13_02226838
.public ov13_02226948
.public ov13_022269C0
.public ov13_02226A5C
.public ov13_02226C48
.public ov13_02226C54
.public ov13_02226C60
.public ov13_02226C6C
.public ov13_02226C7C
.public ov13_02226C94
.public ov13_02226CBC
.public ov13_02226CD4
.public ov13_02226CFC
.public ov13_02226D94
.public ov13_02226ED0
.public ov13_02226F9C
.public ov13_02226FC4
.public ov13_022270B8
.public ov13_022270F8
.public ov13_02227118
.public ov13_0222717C
.public ov13_022271D0
.public ov13_02227238
.public ov13_02227244
.public ov13_02227260
.public ov13_02227288
.public ov13_022272AC
.public ov13_02227324
.public ov13_02227334
.public ov13_02227350
.public ov13_02227650
.public ov13_02227698
.public ov13_022279F4
.public ov13_02227A4C
.public ov13_02227A7C
.public ov13_02227AC8
.public ov13_02227BA8
.public ov13_02227BDC
.public ov13_02227E08
.public ov13_02227E68
.public ov13_02228008
.public ov13_02228050
.public ov13_022280F0
.public ov13_02228128
.public ov13_0222880C
.public ov13_02228848
.public ov13_02228924
.public ov13_02228A38
.public ov13_02228A50
.public ov13_02228A5C
.public ov13_02228A60
.public ov13_02228B64
.public ov16_0223DF00
.public ov16_0223DF0C
.public ov16_0223DF10
.public ov16_0223DF20
.public ov16_0223DFAC
.public ov16_0223E064
.public ov16_0223E1AC
.public ov16_0223E1B0
.public ov16_0223E228
.public ov16_0223E30C
.public ov16_0223EDE0
.public ov16_0225B45C
.public ov16_0226DFD4

File diff suppressed because it is too large Load Diff

View File

@@ -1,35 +0,0 @@
.public sub_02002AC8
.public sub_02002D7C
.public sub_0200B1EC
.public sub_0200B60C
.public sub_0200B70C
.public sub_0200C388
.public sub_0200E060
.public sub_02019CB8
.public sub_0201A778
.public sub_0201A8D4
.public sub_0201A8FC
.public sub_0201A928
.public sub_0201A9A4
.public sub_0201ADA4
.public sub_0201C294
.public sub_0201D738
.public sub_0201D78C
.public sub_02023790
.public sub_020237BC
.public sub_0207CFC8
.public ov13_022272AC
.public ov13_02227374
.public ov13_022273CC
.public ov13_022274A8
.public ov13_0222754C
.public ov13_022275E0
.public ov13_02227650
.public ov13_02227698
.public ov13_022277C8
.public ov13_02227888
.public ov13_022278A0
.public ov13_02227910
.public ov13_02227974
.public ov13_02227A1C
.public ov16_0223EDF0

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +0,0 @@
.public sub_0207CFF0
.public sub_0207D688
.public sub_0207D910
.public _s32_div_f
.public _u32_div_f

View File

@@ -1,238 +0,0 @@
.include "macros/function.inc"
.include "overlay013/ov13_02227A4C.inc"
.text
thumb_func_start ov13_02227A4C
ov13_02227A4C: ; 0x02227A4C
push {r4, lr}
add r4, r0, #0
ldr r3, [r4, #0]
ldrh r1, [r3, #0x20]
cmp r1, #0
bne _02227A5C
mov r0, #0
pop {r4, pc}
_02227A5C:
ldr r0, [r3, #8]
ldr r3, [r3, #0xc]
mov r2, #1
bl sub_0207D688
cmp r0, #0
bne _02227A76
ldr r1, [r4, #0]
mov r0, #0
strh r0, [r1, #0x20]
ldr r1, [r4, #0]
strb r0, [r1, #0x1f]
pop {r4, pc}
_02227A76:
mov r0, #1
pop {r4, pc}
; .align 2, 0
thumb_func_end ov13_02227A4C
thumb_func_start ov13_02227A7C
ov13_02227A7C: ; 0x02227A7C
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
ldr r0, _02227AC4 ; =0x0000114D
ldr r6, [r5, #0]
ldrb r7, [r5, r0]
mov r0, #0x90
ldrh r2, [r6, #0x20]
mul r0, r7
mov r4, #0
add r1, r5, r0
_02227A90:
ldrh r0, [r1, #0x3c]
cmp r2, r0
bne _02227ABA
add r0, r4, #0
mov r1, #6
bl _u32_div_f
add r0, r6, r7
add r0, #0x27
strb r1, [r0]
add r0, r4, #0
mov r1, #6
bl _u32_div_f
ldr r1, _02227AC4 ; =0x0000114D
ldr r2, [r5, #0]
ldrb r1, [r5, r1]
add r1, r2, r1
add r1, #0x2c
strb r0, [r1]
pop {r3, r4, r5, r6, r7, pc}
_02227ABA:
add r4, r4, #1
add r1, r1, #4
cmp r4, #0x24
blo _02227A90
pop {r3, r4, r5, r6, r7, pc}
; .align 2, 0
_02227AC4: .word 0x0000114D
thumb_func_end ov13_02227A7C
thumb_func_start ov13_02227AC8
ov13_02227AC8: ; 0x02227AC8
push {r4, r5, r6, r7, lr}
sub sp, #0xc
add r4, r0, #0
mov r0, #0
str r0, [sp, #4]
_02227AD2:
mov r0, #0
str r0, [sp]
ldr r0, [sp, #4]
lsl r0, r0, #0x10
lsr r0, r0, #0x10
str r0, [sp, #8]
_02227ADE:
ldr r0, [r4, #0]
ldr r2, [sp]
ldr r0, [r0, #8]
lsl r2, r2, #0x10
ldr r1, [sp, #8]
lsr r2, r2, #0x10
bl sub_0207D910
add r5, r0, #0
beq _02227B50
ldrh r0, [r5]
cmp r0, #0
beq _02227B48
ldrh r1, [r5, #2]
cmp r1, #0
beq _02227B48
ldr r2, [r4, #0]
mov r1, #0xd
ldr r2, [r2, #0xc]
bl sub_0207CFF0
add r7, r0, #0
ldr r1, _02227B9C ; =0x02229BB0
mov r0, #0
_02227B0E:
mov r2, #1
lsl r2, r0
tst r2, r7
beq _02227B40
ldrb r2, [r1]
mov r3, #0x90
add r6, r2, #0
mul r6, r3
add r3, r4, r2
ldr r2, _02227BA0 ; =0x0000114F
ldrb r2, [r3, r2]
add r3, r4, r6
lsl r2, r2, #2
add r2, r2, r3
ldrh r3, [r5]
strh r3, [r2, #0x3c]
ldrh r3, [r5, #2]
strh r3, [r2, #0x3e]
ldrb r2, [r1]
add r6, r4, r2
ldr r2, _02227BA0 ; =0x0000114F
ldrb r2, [r6, r2]
add r3, r2, #1
ldr r2, _02227BA0 ; =0x0000114F
strb r3, [r6, r2]
_02227B40:
add r0, r0, #1
add r1, r1, #1
cmp r0, #5
blo _02227B0E
_02227B48:
ldr r0, [sp]
add r0, r0, #1
str r0, [sp]
b _02227ADE
_02227B50:
ldr r0, [sp, #4]
add r0, r0, #1
str r0, [sp, #4]
cmp r0, #8
blo _02227AD2
mov r5, #0
add r7, r5, #0
_02227B5E:
ldr r0, _02227BA0 ; =0x0000114F
add r6, r4, r5
ldrb r0, [r6, r0]
cmp r0, #0
bne _02227B6E
ldr r0, _02227BA4 ; =0x00001154
strb r7, [r6, r0]
b _02227B7A
_02227B6E:
sub r0, r0, #1
mov r1, #6
bl _s32_div_f
ldr r1, _02227BA4 ; =0x00001154
strb r0, [r6, r1]
_02227B7A:
ldr r1, [r4, #0]
ldr r0, _02227BA4 ; =0x00001154
add r2, r1, r5
add r2, #0x2c
ldrb r0, [r6, r0]
ldrb r2, [r2]
cmp r0, r2
bhs _02227B90
add r1, r1, r5
add r1, #0x2c
strb r0, [r1]
_02227B90:
add r5, r5, #1
cmp r5, #5
blo _02227B5E
add sp, #0xc
pop {r4, r5, r6, r7, pc}
nop
_02227B9C: .word 0x02229BB0
_02227BA0: .word 0x0000114F
_02227BA4: .word 0x00001154
thumb_func_end ov13_02227AC8
thumb_func_start ov13_02227BA8
ov13_02227BA8: ; 0x02227BA8
push {r3, r4}
ldr r2, _02227BD8 ; =0x0000114D
ldr r3, [r0, #0]
ldrb r2, [r0, r2]
add r3, r3, r2
add r3, #0x2c
ldrb r4, [r3]
mov r3, #6
mul r3, r4
add r1, r1, r3
lsl r3, r1, #2
mov r1, #0x90
mul r1, r2
add r0, r0, r1
add r1, r0, r3
ldrh r0, [r1, #0x3c]
cmp r0, #0
beq _02227BD2
ldrh r1, [r1, #0x3e]
cmp r1, #0
bne _02227BD4
_02227BD2:
mov r0, #0
_02227BD4:
pop {r3, r4}
bx lr
; .align 2, 0
_02227BD8: .word 0x0000114D
thumb_func_end ov13_02227BA8
.rodata
.global Unk_ov13_02229BB0
Unk_ov13_02229BB0: ; 0x02229BB0
.incbin "incbin/overlay13_rodata.bin", 0xEB4, 0x5

View File

@@ -1,54 +0,0 @@
.public sub_02003050
.public sub_02006C24
.public sub_02006CA8
.public sub_0200C704
.public sub_0200C7C0
.public sub_0200CB30
.public sub_0200CC3C
.public sub_0200CDC4
.public sub_0200CE24
.public sub_0200CE54
.public sub_0200CE6C
.public sub_0200D0B0
.public sub_0200D0F4
.public sub_0200D3F4
.public sub_0200D4C4
.public sub_0200D948
.public sub_0201FF74
.public sub_0207CE78
.public sub_0207CF40
.public sub_0207CF44
.public ov13_02227BA8
.public ov13_02227C08
.public ov13_02227C54
.public ov13_02227D10
.public ov13_02227D48
.public ov13_02227D78
.public ov13_02227DE8
.public ov13_02227E48
.public ov13_02227EAC
.public ov13_02227EE0
.public ov13_02227F38
.public ov13_02227F7C
.public ov13_02227FDC
.public ov13_02228070
.public ov13_022280C8
.public ov13_02228A58
.public ov13_02228A60
.public ov13_02228A64
.public ov13_02228A68
.public ov13_02228A90
.public ov13_02228A9C
.public ov16_0223E010
.public ov16_0226DB7C
.public ov16_0226DBFC
.public ov16_0226DC24
.public ov16_0226DCA8
.public ov16_0226DDE8
.public ov16_0226DE44
.public ov16_0226DEC4
.public ov16_0226DEEC
.public ov16_0226DF68
.public ov16_0226DFB0
.public ov16_0226DFBC
.public ov16_0226DFD0

View File

@@ -1,731 +0,0 @@
.include "macros/function.inc"
.include "overlay013/ov13_02227BDC.inc"
.text
thumb_func_start ov13_02227BDC
ov13_02227BDC: ; 0x02227BDC
push {r4, lr}
add r4, r0, #0
bl ov13_02227C08
add r0, r4, #0
bl ov13_02227C54
add r0, r4, #0
bl ov13_02227DE8
add r0, r4, #0
bl ov13_02227F7C
add r0, r4, #0
bl ov13_02228070
mov r0, #0x10
mov r1, #1
bl sub_0201FF74
pop {r4, pc}
; .align 2, 0
thumb_func_end ov13_02227BDC
thumb_func_start ov13_02227C08
ov13_02227C08: ; 0x02227C08
push {r3, r4, r5, lr}
sub sp, #0x18
ldr r3, _02227C50 ; =0x02229BE4
add r2, sp, #0
add r5, r0, #0
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldr r0, [r5, #0]
ldr r0, [r0, #0]
bl ov16_0223E010
add r4, r0, #0
bl sub_0200C704
mov r1, #0xc3
lsl r1, r1, #2
str r0, [r5, r1]
ldr r1, [r5, r1]
add r0, r4, #0
mov r2, #0xc
bl sub_0200C7C0
mov r1, #0xc3
lsl r1, r1, #2
ldr r1, [r5, r1]
add r0, r4, #0
add r2, sp, #0
bl sub_0200CB30
add sp, #0x18
pop {r3, r4, r5, pc}
nop
_02227C50: .word 0x02229BE4
thumb_func_end ov13_02227C08
thumb_func_start ov13_02227C54
ov13_02227C54: ; 0x02227C54
push {r4, r5, r6, r7, lr}
sub sp, #0x1c
add r6, r0, #0
ldr r1, [r6, #0]
mov r0, #0x10
ldr r1, [r1, #0xc]
bl sub_02006C24
add r7, r0, #0
ldr r0, [r6, #0]
ldr r0, [r0, #0]
bl ov16_0223E010
str r0, [sp, #0x18]
mov r4, #0
_02227C72:
ldr r0, _02227D0C ; =0x0000B4B7
add r5, r4, r0
mov r0, #1
add r1, r0, #0
bl sub_0207CE78
add r3, r0, #0
mov r0, #0
str r0, [sp]
mov r0, #2
str r0, [sp, #4]
mov r1, #0xc3
str r5, [sp, #8]
lsl r1, r1, #2
ldr r0, [sp, #0x18]
ldr r1, [r6, r1]
add r2, r7, #0
bl sub_0200CC3C
mov r0, #1
mov r1, #2
bl sub_0207CE78
str r7, [sp]
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]
mov r3, #0xc3
str r5, [sp, #0x14]
lsl r3, r3, #2
ldr r0, [r6, #8]
ldr r2, [sp, #0x18]
ldr r3, [r6, r3]
mov r1, #3
bl sub_0200CDC4
add r4, r4, #1
cmp r4, #6
blo _02227C72
bl sub_0207CF40
add r3, r0, #0
mov r0, #0
str r0, [sp]
ldr r0, _02227D0C ; =0x0000B4B7
mov r1, #0xc3
str r0, [sp, #4]
lsl r1, r1, #2
ldr r0, [sp, #0x18]
ldr r1, [r6, r1]
add r2, r7, #0
bl sub_0200CE24
bl sub_0207CF44
add r3, r0, #0
mov r0, #0
str r0, [sp]
ldr r0, _02227D0C ; =0x0000B4B7
mov r1, #0xc3
str r0, [sp, #4]
lsl r1, r1, #2
ldr r0, [sp, #0x18]
ldr r1, [r6, r1]
add r2, r7, #0
bl sub_0200CE54
add r0, r7, #0
bl sub_02006CA8
add sp, #0x1c
pop {r4, r5, r6, r7, pc}
nop
_02227D0C: .word 0x0000B4B7
thumb_func_end ov13_02227C54
thumb_func_start ov13_02227D10
ov13_02227D10: ; 0x02227D10
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
add r5, r0, #0
ldr r0, [r5, #0]
add r6, r1, #0
ldr r0, [r0, #0]
add r4, r2, #0
bl ov16_0223E010
add r7, r0, #0
add r0, r6, #0
mov r1, #1
bl sub_0207CE78
add r3, r0, #0
mov r0, #0
str r0, [sp]
mov r1, #0xc3
str r4, [sp, #4]
lsl r1, r1, #2
ldr r1, [r5, r1]
add r0, r7, #0
mov r2, #0x10
bl sub_0200D948
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
; .align 2, 0
thumb_func_end ov13_02227D10
thumb_func_start ov13_02227D48
ov13_02227D48: ; 0x02227D48
push {r4, r5, lr}
sub sp, #0xc
add r5, r0, #0
add r0, r1, #0
mov r1, #2
add r4, r2, #0
bl sub_0207CE78
add r2, r0, #0
mov r0, #3
str r0, [sp]
mov r0, #0x20
str r0, [sp, #4]
lsl r0, r4, #0x14
lsr r0, r0, #0x10
str r0, [sp, #8]
ldr r3, [r5, #0]
ldr r0, [r5, #8]
ldr r3, [r3, #0xc]
mov r1, #0x10
bl sub_02003050
add sp, #0xc
pop {r4, r5, pc}
thumb_func_end ov13_02227D48
thumb_func_start ov13_02227D78
ov13_02227D78: ; 0x02227D78
push {r4, r5, lr}
sub sp, #0x34
add r5, r0, #0
ldr r0, [r5, #0]
add r4, r1, #0
ldr r0, [r0, #0]
bl ov16_0223E010
mov r2, #0
add r1, sp, #0
strh r2, [r1]
strh r2, [r1, #2]
strh r2, [r1, #4]
strh r2, [r1, #6]
mov r1, #0x14
ldr r3, _02227DD4 ; =0x02229CCC
mul r1, r4
ldr r3, [r3, r1]
str r2, [sp, #0xc]
str r3, [sp, #8]
mov r3, #2
str r3, [sp, #0x10]
ldr r3, _02227DD8 ; =0x02229CBC
str r2, [sp, #0x30]
ldr r3, [r3, r1]
add r2, sp, #0
str r3, [sp, #0x14]
ldr r3, _02227DDC ; =0x02229CC0
ldr r3, [r3, r1]
str r3, [sp, #0x18]
ldr r3, _02227DE0 ; =0x02229CC4
ldr r3, [r3, r1]
str r3, [sp, #0x1c]
ldr r3, _02227DE4 ; =0x02229CC8
ldr r1, [r3, r1]
str r1, [sp, #0x20]
mov r1, #1
str r1, [sp, #0x2c]
mov r1, #0xc3
lsl r1, r1, #2
ldr r1, [r5, r1]
bl sub_0200CE6C
add sp, #0x34
pop {r4, r5, pc}
nop
_02227DD4: .word 0x02229CCC
_02227DD8: .word 0x02229CBC
_02227DDC: .word 0x02229CC0
_02227DE0: .word 0x02229CC4
_02227DE4: .word 0x02229CC8
thumb_func_end ov13_02227D78
thumb_func_start ov13_02227DE8
ov13_02227DE8: ; 0x02227DE8
push {r3, r4, r5, r6, r7, lr}
add r6, r0, #0
mov r7, #0x31
mov r4, #0
add r5, r6, #0
lsl r7, r7, #4
_02227DF4:
add r0, r6, #0
add r1, r4, #0
bl ov13_02227D78
str r0, [r5, r7]
add r4, r4, #1
add r5, r5, #4
cmp r4, #6
blo _02227DF4
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end ov13_02227DE8
thumb_func_start ov13_02227E08
ov13_02227E08: ; 0x02227E08
push {r3, r4, r5, r6, r7, lr}
add r7, r0, #0
ldr r0, [r7, #0]
ldr r0, [r0, #0]
bl ov16_0223E010
mov r6, #0x31
str r0, [sp]
mov r4, #0
add r5, r7, #0
lsl r6, r6, #4
_02227E1E:
ldr r0, [r5, r6]
bl sub_0200D0F4
add r4, r4, #1
add r5, r5, #4
cmp r4, #6
blo _02227E1E
add r0, r7, #0
bl ov13_02227FDC
add r0, r7, #0
bl ov13_022280C8
mov r1, #0xc3
lsl r1, r1, #2
ldr r0, [sp]
ldr r1, [r7, r1]
bl sub_0200D0B0
pop {r3, r4, r5, r6, r7, pc}
; .align 2, 0
thumb_func_end ov13_02227E08
thumb_func_start ov13_02227E48
ov13_02227E48: ; 0x02227E48
push {r4, r5, r6, lr}
add r5, r1, #0
add r4, r2, #0
mov r1, #1
add r6, r0, #0
bl sub_0200D3F4
lsl r1, r5, #0x10
lsl r2, r4, #0x10
add r0, r6, #0
asr r1, r1, #0x10
asr r2, r2, #0x10
bl sub_0200D4C4
pop {r4, r5, r6, pc}
; .align 2, 0
thumb_func_end ov13_02227E48
thumb_func_start ov13_02227E68
ov13_02227E68: ; 0x02227E68
push {r3, r4, r5, r6, r7, lr}
mov r6, #0x31
str r0, [sp]
add r7, r1, #0
mov r4, #0
add r5, r0, #0
lsl r6, r6, #4
_02227E76:
ldr r0, [r5, r6]
mov r1, #0
bl sub_0200D3F4
add r4, r4, #1
add r5, r5, #4
cmp r4, #6
blo _02227E76
cmp r7, #0
beq _02227E94
cmp r7, #1
beq _02227E9C
cmp r7, #2
beq _02227EA4
pop {r3, r4, r5, r6, r7, pc}
_02227E94:
ldr r0, [sp]
bl ov13_02227EAC
pop {r3, r4, r5, r6, r7, pc}
_02227E9C:
ldr r0, [sp]
bl ov13_02227EE0
pop {r3, r4, r5, r6, r7, pc}
_02227EA4:
ldr r0, [sp]
bl ov13_02227F38
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end ov13_02227E68
thumb_func_start ov13_02227EAC
ov13_02227EAC: ; 0x02227EAC
push {r4, lr}
add r4, r0, #0
ldr r1, [r4, #0]
ldrh r1, [r1, #0x20]
cmp r1, #0
beq _02227EDA
ldr r2, _02227EDC ; =0x0000B4B7
bl ov13_02227D10
ldr r1, [r4, #0]
ldr r3, _02227EDC ; =0x0000B4B7
ldrh r1, [r1, #0x20]
add r0, r4, #0
mov r2, #0
bl ov13_02227D48
mov r0, #0x31
lsl r0, r0, #4
ldr r0, [r4, r0]
mov r1, #0x18
mov r2, #0xb2
bl ov13_02227E48
_02227EDA:
pop {r4, pc}
; .align 2, 0
_02227EDC: .word 0x0000B4B7
thumb_func_end ov13_02227EAC
thumb_func_start ov13_02227EE0
ov13_02227EE0: ; 0x02227EE0
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
ldr r6, _02227F30 ; =0x02229C44
mov r4, #0
add r7, r5, #0
_02227EEA:
add r0, r5, #0
add r1, r4, #0
bl ov13_02227BA8
str r0, [sp]
cmp r0, #0
beq _02227F22
ldr r2, _02227F34 ; =0x0000B4B7
ldr r1, [sp]
add r0, r5, #0
add r2, r4, r2
bl ov13_02227D10
ldr r3, _02227F34 ; =0x0000B4B7
lsl r2, r4, #0x10
ldr r1, [sp]
add r0, r5, #0
lsr r2, r2, #0x10
add r3, r4, r3
bl ov13_02227D48
mov r0, #0x31
lsl r0, r0, #4
ldr r0, [r7, r0]
ldr r1, [r6, #0]
ldr r2, [r6, #4]
bl ov13_02227E48
_02227F22:
add r4, r4, #1
add r6, #8
add r7, r7, #4
cmp r4, #6
blo _02227EEA
pop {r3, r4, r5, r6, r7, pc}
nop
_02227F30: .word 0x02229C44
_02227F34: .word 0x0000B4B7
thumb_func_end ov13_02227EE0
thumb_func_start ov13_02227F38
ov13_02227F38: ; 0x02227F38
push {r3, r4, r5, lr}
ldr r1, _02227F74 ; =0x0000114D
add r4, r0, #0
ldrb r1, [r4, r1]
ldr r2, [r4, #0]
add r1, r2, r1
add r1, #0x27
ldrb r1, [r1]
bl ov13_02227BA8
add r5, r0, #0
ldr r2, _02227F78 ; =0x0000B4B7
add r0, r4, #0
add r1, r5, #0
bl ov13_02227D10
ldr r3, _02227F78 ; =0x0000B4B7
add r0, r4, #0
add r1, r5, #0
mov r2, #0
bl ov13_02227D48
mov r0, #0x31
lsl r0, r0, #4
ldr r0, [r4, r0]
mov r1, #0x28
mov r2, #0x2c
bl ov13_02227E48
pop {r3, r4, r5, pc}
; .align 2, 0
_02227F74: .word 0x0000114D
_02227F78: .word 0x0000B4B7
thumb_func_end ov13_02227F38
thumb_func_start ov13_02227F7C
ov13_02227F7C: ; 0x02227F7C
push {r4, r5, lr}
sub sp, #0x14
add r5, r0, #0
ldr r0, [r5, #0]
ldr r0, [r0, #0]
bl ov16_0223E010
ldr r1, _02227FD8 ; =0x0000B4BE
add r4, r0, #0
str r1, [sp]
str r1, [sp, #4]
sub r1, r1, #5
str r1, [sp, #8]
str r1, [sp, #0xc]
mov r1, #0xc3
ldr r3, [r5, #0]
lsl r1, r1, #2
ldr r1, [r5, r1]
ldr r2, [r5, #8]
ldr r3, [r3, #0xc]
bl ov16_0226DB7C
ldr r3, _02227FD8 ; =0x0000B4BE
mov r1, #0xc3
str r3, [sp]
sub r0, r3, #5
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0
str r0, [sp, #0xc]
mov r0, #1
str r0, [sp, #0x10]
ldr r2, [r5, #0]
lsl r1, r1, #2
ldr r1, [r5, r1]
ldr r2, [r2, #0xc]
add r0, r4, #0
bl ov16_0226DC24
add r1, r0, #0
ldr r0, [r5, #0x34]
bl ov13_02228A64
add sp, #0x14
pop {r4, r5, pc}
nop
_02227FD8: .word 0x0000B4BE
thumb_func_end ov13_02227F7C
thumb_func_start ov13_02227FDC
ov13_02227FDC: ; 0x02227FDC
push {r3, r4, lr}
sub sp, #4
add r4, r0, #0
ldr r0, [r4, #0x34]
bl ov13_02228A58
bl ov16_0226DCA8
ldr r3, _02228004 ; =0x0000B4B9
mov r0, #0xc3
add r1, r3, #5
str r3, [sp]
lsl r0, r0, #2
ldr r0, [r4, r0]
add r2, r1, #0
bl ov16_0226DBFC
add sp, #4
pop {r3, r4, pc}
nop
_02228004: .word 0x0000B4B9
thumb_func_end ov13_02227FDC
thumb_func_start ov13_02228008
ov13_02228008: ; 0x02228008
push {r3, r4, r5, lr}
add r4, r1, #0
add r5, r0, #0
ldr r1, _02228048 ; =0x02229BC8
lsl r2, r4, #2
ldr r0, [r5, #0x34]
ldr r1, [r1, r2]
bl ov13_02228A9C
cmp r4, #0
beq _02228026
cmp r4, #1
beq _02228032
cmp r4, #2
pop {r3, r4, r5, pc}
_02228026:
ldr r1, _0222804C ; =0x0000114D
ldr r0, [r5, #0x34]
ldrb r1, [r5, r1]
bl ov13_02228A68
pop {r3, r4, r5, pc}
_02228032:
ldr r1, _0222804C ; =0x0000114D
ldr r2, [r5, #0]
ldrb r1, [r5, r1]
ldr r0, [r5, #0x34]
add r1, r2, r1
add r1, #0x27
ldrb r1, [r1]
bl ov13_02228A68
pop {r3, r4, r5, pc}
nop
_02228048: .word 0x02229BC8
_0222804C: .word 0x0000114D
thumb_func_end ov13_02228008
thumb_func_start ov13_02228050
ov13_02228050: ; 0x02228050
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0x34]
mov r1, #0
bl ov13_02228A60
ldr r0, [r4, #0x34]
bl ov13_02228A90
ldr r0, [r4, #0x34]
bl ov13_02228A58
bl ov16_0226DDE8
pop {r4, pc}
; .align 2, 0
thumb_func_end ov13_02228050
thumb_func_start ov13_02228070
ov13_02228070: ; 0x02228070
push {r4, r5, lr}
sub sp, #0x14
add r5, r0, #0
ldr r0, [r5, #0]
ldr r0, [r0, #0]
bl ov16_0223E010
ldr r1, _022280C4 ; =0x0000B4BD
add r4, r0, #0
str r1, [sp]
str r1, [sp, #4]
sub r1, r1, #5
str r1, [sp, #8]
str r1, [sp, #0xc]
mov r1, #0xc3
ldr r2, [r5, #0]
lsl r1, r1, #2
ldr r1, [r5, r1]
ldr r2, [r2, #0xc]
ldr r3, [r5, #8]
bl ov16_0226DE44
ldr r3, _022280C4 ; =0x0000B4BD
mov r1, #0xc3
str r3, [sp]
sub r0, r3, #5
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0
str r0, [sp, #0xc]
str r0, [sp, #0x10]
ldr r2, [r5, #0]
lsl r1, r1, #2
ldr r1, [r5, r1]
ldr r2, [r2, #0xc]
add r0, r4, #0
bl ov16_0226DEEC
str r0, [r5, #0x38]
add sp, #0x14
pop {r4, r5, pc}
nop
_022280C4: .word 0x0000B4BD
thumb_func_end ov13_02228070
thumb_func_start ov13_022280C8
ov13_022280C8: ; 0x022280C8
push {r3, r4, lr}
sub sp, #4
add r4, r0, #0
ldr r0, [r4, #0x38]
bl ov16_0226DF68
ldr r3, _022280EC ; =0x0000B4B8
mov r0, #0xc3
add r1, r3, #5
str r3, [sp]
lsl r0, r0, #2
ldr r0, [r4, r0]
add r2, r1, #0
bl ov16_0226DEC4
add sp, #4
pop {r3, r4, pc}
nop
_022280EC: .word 0x0000B4B8
thumb_func_end ov13_022280C8
thumb_func_start ov13_022280F0
ov13_022280F0: ; 0x022280F0
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0]
ldr r0, [r0, #0x14]
cmp r0, #1
bne _02228116
lsl r3, r1, #3
ldr r1, _02228120 ; =0x02229BFC
ldr r2, _02228124 ; =0x02229C00
ldr r0, [r4, #0x38]
ldr r1, [r1, r3]
ldr r2, [r2, r3]
bl ov16_0226DFB0
ldr r0, [r4, #0x38]
mov r1, #0x3c
bl ov16_0226DFD0
pop {r4, pc}
_02228116:
ldr r0, [r4, #0x38]
bl ov16_0226DFBC
pop {r4, pc}
nop
_02228120: .word 0x02229BFC
_02228124: .word 0x02229C00
thumb_func_end ov13_022280F0
.rodata
.global Unk_ov13_02229BB8
Unk_ov13_02229BB8: ; 0x02229BB8
.incbin "incbin/overlay13_rodata.bin", 0xEBC, 0xEC4 - 0xEBC
.global Unk_ov13_02229BC0
Unk_ov13_02229BC0: ; 0x02229BC0
.incbin "incbin/overlay13_rodata.bin", 0xEC4, 0xECC - 0xEC4
.global Unk_ov13_02229BC8
Unk_ov13_02229BC8: ; 0x02229BC8
.incbin "incbin/overlay13_rodata.bin", 0xECC, 0xED8 - 0xECC
.global Unk_ov13_02229BD4
Unk_ov13_02229BD4: ; 0x02229BD4
.incbin "incbin/overlay13_rodata.bin", 0xED8, 0xEE8 - 0xED8
.global Unk_ov13_02229BE4
Unk_ov13_02229BE4: ; 0x02229BE4
.incbin "incbin/overlay13_rodata.bin", 0xEE8, 0xF00 - 0xEE8
.global Unk_ov13_02229BFC
Unk_ov13_02229BFC: ; 0x02229BFC
.incbin "incbin/overlay13_rodata.bin", 0xF00, 0xF18 - 0xF00
.global Unk_ov13_02229C14
Unk_ov13_02229C14: ; 0x02229C14
.incbin "incbin/overlay13_rodata.bin", 0xF18, 0xF48 - 0xF18
.global Unk_ov13_02229C44
Unk_ov13_02229C44: ; 0x02229C44
.incbin "incbin/overlay13_rodata.bin", 0xF48, 0xF78 - 0xF48
.global Unk_ov13_02229C74
Unk_ov13_02229C74: ; 0x02229C74
.incbin "incbin/overlay13_rodata.bin", 0xF78, 0xFC0 - 0xF78
.global Unk_ov13_02229CBC
Unk_ov13_02229CBC: ; 0x02229CBC
.incbin "incbin/overlay13_rodata.bin", 0xFC0, 0x78

View File

@@ -1,17 +0,0 @@
.public sub_0200D408
.public sub_0200D5DC
.public sub_02018144
.public sub_020181C4
.public sub_020198C0
.public sub_0201A9A4
.public sub_0201C04C
.public sub_0201C3C0
.public ov13_02227BA8
.public ov13_02228460
.public ov13_022284B0
.public ov13_02228558
.public ov13_022285C8
.public ov13_0222863C
.public ov13_022286B8
.public ov13_0222872C
.public ov13_022287A4

File diff suppressed because it is too large Load Diff

View File

@@ -1,10 +0,0 @@
.public sub_02005748
.public sub_02018144
.public sub_020181C4
.public sub_0201E010
.public sub_0201E01C
.public sub_0201E028
.public ov13_02228A90
.public ov13_02228ACC
.public ov13_02228B18
.public ov16_0226DD7C

View File

@@ -1,420 +0,0 @@
.include "macros/function.inc"
.include "overlay013/ov13_02228A38.inc"
.text
thumb_func_start ov13_02228A38
ov13_02228A38: ; 0x02228A38
push {r3, lr}
mov r1, #0x10
bl sub_02018144
add r3, r0, #0
mov r2, #0x10
mov r1, #0
_02228A46:
strb r1, [r3]
add r3, r3, #1
sub r2, r2, #1
bne _02228A46
pop {r3, pc}
thumb_func_end ov13_02228A38
thumb_func_start ov13_02228A50
ov13_02228A50: ; 0x02228A50
ldr r3, _02228A54 ; =sub_020181C4
bx r3
; .align 2, 0
_02228A54: .word sub_020181C4
thumb_func_end ov13_02228A50
thumb_func_start ov13_02228A58
ov13_02228A58: ; 0x02228A58
ldr r0, [r0, #0]
bx lr
thumb_func_end ov13_02228A58
thumb_func_start ov13_02228A5C
ov13_02228A5C: ; 0x02228A5C
ldrb r0, [r0, #8]
bx lr
thumb_func_end ov13_02228A5C
thumb_func_start ov13_02228A60
ov13_02228A60: ; 0x02228A60
strb r1, [r0, #8]
bx lr
thumb_func_end ov13_02228A60
thumb_func_start ov13_02228A64
ov13_02228A64: ; 0x02228A64
str r1, [r0, #0]
bx lr
thumb_func_end ov13_02228A64
thumb_func_start ov13_02228A68
ov13_02228A68: ; 0x02228A68
push {r3, r4, lr}
sub sp, #4
strb r1, [r0, #9]
ldrb r1, [r0, #8]
cmp r1, #1
bne _02228A8C
ldrb r1, [r0, #9]
ldr r2, [r0, #4]
lsl r4, r1, #3
add r3, r2, r4
ldrb r1, [r3, #3]
str r1, [sp]
ldrb r1, [r2, r4]
ldrb r2, [r3, #2]
ldrb r3, [r3, #1]
ldr r0, [r0, #0]
bl ov16_0226DD7C
_02228A8C:
add sp, #4
pop {r3, r4, pc}
thumb_func_end ov13_02228A68
thumb_func_start ov13_02228A90
ov13_02228A90: ; 0x02228A90
mov r1, #0
strb r1, [r0, #9]
mov r1, #0xff
strb r1, [r0, #0xa]
bx lr
; .align 2, 0
thumb_func_end ov13_02228A90
thumb_func_start ov13_02228A9C
ov13_02228A9C: ; 0x02228A9C
push {r3, r4, r5, lr}
add r4, r0, #0
add r5, r1, #0
bl ov13_02228A90
mov r0, #0
str r5, [r4, #4]
mvn r0, r0
str r0, [r4, #0xc]
ldrb r0, [r4, #8]
cmp r0, #1
bne _02228AC6
ldr r3, [r4, #4]
ldrb r0, [r3, #3]
str r0, [sp]
ldrb r1, [r3]
ldrb r2, [r3, #2]
ldrb r3, [r3, #1]
ldr r0, [r4, #0]
bl ov16_0226DD7C
_02228AC6:
pop {r3, r4, r5, pc}
thumb_func_end ov13_02228A9C
thumb_func_start ov13_02228AC8
ov13_02228AC8: ; 0x02228AC8
str r1, [r0, #0xc]
bx lr
thumb_func_end ov13_02228AC8
thumb_func_start ov13_02228ACC
ov13_02228ACC: ; 0x02228ACC
push {r3, r4, lr}
sub sp, #4
ldrb r1, [r0, #8]
cmp r1, #1
bne _02228ADC
add sp, #4
mov r0, #1
pop {r3, r4, pc}
_02228ADC:
ldr r1, _02228B10 ; =0x021BF67C
ldr r2, [r1, #0x48]
mov r1, #0xf3
tst r1, r2
beq _02228B08
mov r1, #1
strb r1, [r0, #8]
ldrb r1, [r0, #9]
ldr r2, [r0, #4]
lsl r4, r1, #3
add r3, r2, r4
ldrb r1, [r3, #3]
str r1, [sp]
ldrb r1, [r2, r4]
ldrb r2, [r3, #2]
ldrb r3, [r3, #1]
ldr r0, [r0, #0]
bl ov16_0226DD7C
ldr r0, _02228B14 ; =0x000005DC
bl sub_02005748
_02228B08:
mov r0, #0
add sp, #4
pop {r3, r4, pc}
nop
_02228B10: .word 0x021BF67C
_02228B14: .word 0x000005DC
thumb_func_end ov13_02228ACC
thumb_func_start ov13_02228B18
ov13_02228B18: ; 0x02228B18
cmp r1, #3
bhi _02228B60
add r1, r1, r1
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_02228B28: ; jump table
.short _02228B30 - _02228B28 - 2 ; case 0
.short _02228B3C - _02228B28 - 2 ; case 1
.short _02228B48 - _02228B28 - 2 ; case 2
.short _02228B54 - _02228B28 - 2 ; case 3
_02228B30:
ldrb r1, [r0, #5]
mov r0, #0x80
tst r0, r1
beq _02228B60
mov r0, #1
bx lr
_02228B3C:
ldrb r1, [r0, #4]
mov r0, #0x80
tst r0, r1
beq _02228B60
mov r0, #1
bx lr
_02228B48:
ldrb r1, [r0, #7]
mov r0, #0x80
tst r0, r1
beq _02228B60
mov r0, #1
bx lr
_02228B54:
ldrb r1, [r0, #6]
mov r0, #0x80
tst r0, r1
beq _02228B60
mov r0, #1
bx lr
_02228B60:
mov r0, #0
bx lr
thumb_func_end ov13_02228B18
thumb_func_start ov13_02228B64
ov13_02228B64: ; 0x02228B64
push {r4, r5, r6, r7, lr}
sub sp, #0x14
add r5, r0, #0
bl ov13_02228ACC
cmp r0, #0
bne _02228B7A
mov r0, #0
add sp, #0x14
mvn r0, r0
pop {r4, r5, r6, r7, pc}
_02228B7A:
ldr r0, _02228CF0 ; =0x021BF67C
mov r1, #0x40
ldr r0, [r0, #0x48]
tst r1, r0
beq _02228B9E
mov r1, #0
str r1, [sp]
ldrb r0, [r5, #9]
add r2, r1, #0
add r3, r1, #0
str r0, [sp, #4]
str r1, [sp, #8]
ldr r0, [r5, #4]
bl sub_0201E028
add r4, r0, #0
mov r6, #0
b _02228C06
_02228B9E:
mov r1, #0x80
tst r1, r0
beq _02228BC0
mov r1, #0
str r1, [sp]
ldrb r0, [r5, #9]
add r2, r1, #0
add r3, r1, #0
str r0, [sp, #4]
mov r0, #1
str r0, [sp, #8]
ldr r0, [r5, #4]
bl sub_0201E028
add r4, r0, #0
mov r6, #1
b _02228C06
_02228BC0:
mov r1, #0x20
tst r1, r0
beq _02228BE2
mov r1, #0
str r1, [sp]
ldrb r0, [r5, #9]
add r2, r1, #0
add r3, r1, #0
str r0, [sp, #4]
mov r0, #2
str r0, [sp, #8]
ldr r0, [r5, #4]
bl sub_0201E028
add r4, r0, #0
mov r6, #2
b _02228C06
_02228BE2:
mov r1, #0x10
tst r0, r1
beq _02228C04
mov r1, #0
str r1, [sp]
ldrb r0, [r5, #9]
add r2, r1, #0
add r3, r1, #0
str r0, [sp, #4]
mov r0, #3
str r0, [sp, #8]
ldr r0, [r5, #4]
bl sub_0201E028
add r4, r0, #0
mov r6, #3
b _02228C06
_02228C04:
mov r4, #0xff
_02228C06:
cmp r4, #0xff
beq _02228CC6
mov r0, #1
str r0, [sp, #0xc]
mov r0, #0x80
add r1, r4, #0
tst r1, r0
beq _02228C26
ldrb r1, [r5, #0xa]
cmp r1, #0xff
beq _02228C20
add r4, r1, #0
b _02228C26
_02228C20:
eor r0, r4
lsl r0, r0, #0x18
lsr r4, r0, #0x18
_02228C26:
mov r7, #0
_02228C28:
mov r0, #1
ldr r1, [r5, #0xc]
lsl r0, r4
tst r0, r1
bne _02228C60
str r7, [sp, #0xc]
str r7, [sp]
str r4, [sp, #4]
str r6, [sp, #8]
ldr r0, [r5, #4]
add r1, r7, #0
add r2, r7, #0
add r3, r7, #0
bl sub_0201E028
mov r1, #0x7f
and r0, r1
lsl r0, r0, #0x18
lsr r1, r0, #0x18
cmp r1, r4
beq _02228C58
ldrb r0, [r5, #9]
cmp r1, r0
bne _02228C5C
_02228C58:
ldrb r4, [r5, #9]
b _02228C60
_02228C5C:
add r4, r1, #0
b _02228C28
_02228C60:
ldrb r0, [r5, #9]
cmp r0, r4
beq _02228CBE
ldr r0, [r5, #4]
lsl r7, r4, #3
add r1, sp, #0x10
add r2, sp, #0x10
add r0, r0, r7
add r1, #3
add r2, #2
bl sub_0201E010
ldr r0, [r5, #4]
add r1, sp, #0x10
add r0, r0, r7
add r1, #1
add r2, sp, #0x10
bl sub_0201E01C
ldr r0, [r5, #4]
add r1, r6, #0
add r0, r0, r7
bl ov13_02228B18
cmp r0, #1
bne _02228CA0
ldr r0, [sp, #0xc]
cmp r0, #0
beq _02228CA0
ldrb r0, [r5, #9]
strb r0, [r5, #0xa]
b _02228CA4
_02228CA0:
mov r0, #0xff
strb r0, [r5, #0xa]
_02228CA4:
strb r4, [r5, #9]
add r3, sp, #0x10
ldrb r0, [r3]
str r0, [sp]
ldrb r1, [r3, #3]
ldrb r2, [r3, #1]
ldrb r3, [r3, #2]
ldr r0, [r5, #0]
bl ov16_0226DD7C
ldr r0, _02228CF4 ; =0x000005DC
bl sub_02005748
_02228CBE:
mov r0, #0
add sp, #0x14
mvn r0, r0
pop {r4, r5, r6, r7, pc}
_02228CC6:
ldr r0, _02228CF0 ; =0x021BF67C
ldr r1, [r0, #0x48]
mov r0, #1
tst r0, r1
beq _02228CD6
add sp, #0x14
ldrb r0, [r5, #9]
pop {r4, r5, r6, r7, pc}
_02228CD6:
mov r0, #2
tst r1, r0
beq _02228CEA
ldr r0, _02228CF8 ; =0x000005DD
bl sub_02005748
mov r0, #1
add sp, #0x14
mvn r0, r0
pop {r4, r5, r6, r7, pc}
_02228CEA:
sub r0, r0, #3
add sp, #0x14
pop {r4, r5, r6, r7, pc}
; .align 2, 0
_02228CF0: .word 0x021BF67C
_02228CF4: .word 0x000005DC
_02228CF8: .word 0x000005DD
thumb_func_end ov13_02228B64

View File

@@ -1011,16 +1011,16 @@ Overlay overlay12
Overlay overlay13
{
After overlay11
Object asm/overlay013/ov13_0221FC20.o
Object asm/overlay013/ov13_02221A88.o
Object asm/overlay013/ov13_02224500.o
Object asm/overlay013/ov13_02225710.o
Object asm/overlay013/ov13_022264F4.o
Object asm/overlay013/ov13_02227288.o
Object asm/overlay013/ov13_02227A4C.o
Object asm/overlay013/ov13_02227BDC.o
Object asm/overlay013/ov13_02228128.o
Object asm/overlay013/ov13_02228A38.o
Object src/overlay013/ov13_0221FC20.o
Object src/overlay013/ov13_02221A88.o
Object src/overlay013/ov13_02224500.o
Object src/overlay013/ov13_02225710.o
Object src/overlay013/ov13_022264F4.o
Object src/overlay013/ov13_02227288.o
Object src/overlay013/ov13_02227A4C.o
Object src/overlay013/ov13_02227BDC.o
Object src/overlay013/ov13_02228128.o
Object src/overlay013/ov13_02228A38.o
}
Overlay overlay14

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,947 @@
#include <nitro.h>
#include <string.h>
#include "struct_decls/struct_02006C24_decl.h"
#include "struct_decls/struct_0200C6E4_decl.h"
#include "overlay016/struct_ov16_0226DC24_decl.h"
#include "struct_defs/struct_0200D0F4.h"
#include "struct_defs/struct_020F1DB8.h"
#include "overlay013/struct_ov13_022213F0.h"
#include "overlay013/struct_ov13_02221ED0.h"
#include "overlay104/struct_ov104_0223F9E0.h"
#include "overlay104/struct_ov104_02241308.h"
#include "unk_020068C8.h"
#include "unk_0200C6E4.h"
#include "unk_0201FE94.h"
#include "unk_020790B0.h"
#include "unk_02079D40.h"
#include "unk_02079FEC.h"
#include "unk_0207C908.h"
#include "unk_0207CDEC.h"
#include "unk_0207E0B8.h"
#include "unk_0208C098.h"
#include "unk_0208C324.h"
#include "overlay013/ov13_02224500.h"
#include "overlay013/ov13_02228A38.h"
#include "overlay016/ov16_0223DF00.h"
#include "overlay016/ov16_0226DB7C.h"
static void ov13_0222453C(UnkStruct_ov13_022213F0 * param0);
static void ov13_02224588(UnkStruct_ov13_022213F0 * param0);
static void ov13_02224670(UnkStruct_ov13_022213F0 * param0);
static void ov13_02224848(UnkStruct_ov13_022213F0 * param0);
static void ov13_02224720(UnkStruct_ov13_022213F0 * param0);
static void ov13_02224798(UnkStruct_ov13_022213F0 * param0);
static void ov13_02224948(UnkStruct_ov13_022213F0 * param0);
static void ov13_022249CC(UnkStruct_ov13_022213F0 * param0);
static void ov13_02224C14(UnkStruct_ov13_022213F0 * param0);
static void ov13_02224CB0(UnkStruct_ov13_022213F0 * param0);
static void ov13_02224D08(UnkStruct_ov13_022213F0 * param0);
static void ov13_02224DA0(UnkStruct_ov13_022213F0 * param0);
static void ov13_02224E78(UnkStruct_ov13_022213F0 * param0);
static void ov13_02224F3C(UnkStruct_ov13_022213F0 * param0);
static void ov13_02224FA8(UnkStruct_ov13_022213F0 * param0);
static void ov13_0222506C(UnkStruct_ov13_022213F0 * param0);
static void ov13_022250D8(UnkStruct_ov13_022213F0 * param0);
static void ov13_02225150(UnkStruct_ov13_022213F0 * param0);
static void ov13_022251B4(UnkStruct_ov13_022213F0 * param0);
static void ov13_02225248(UnkStruct_ov13_022213F0 * param0);
static void ov13_02225420(UnkStruct_ov13_022213F0 * param0);
static void ov13_0222554C(UnkStruct_ov13_022213F0 * param0);
static void ov13_022255B8(UnkStruct_ov13_022213F0 * param0);
static const int Unk_ov13_02229514[][5] = {
{0xB016, 0xB00A, 0xB00A, 0xB00A, 0x0},
{0xB016, 0xB00A, 0xB00A, 0xB00A, 0x0},
{0xB016, 0xB00A, 0xB00A, 0xB00A, 0x0},
{0xB016, 0xB00A, 0xB00A, 0xB00A, 0x0},
{0xB016, 0xB00A, 0xB00A, 0xB00A, 0x0},
{0xB016, 0xB00A, 0xB00A, 0xB00A, 0x0},
{0xB016, 0xB00A, 0xB00A, 0xB00A, 0x0},
{0xB007, 0xB007, 0xB007, 0xB007, 0x1},
{0xB008, 0xB007, 0xB007, 0xB007, 0x1},
{0xB009, 0xB007, 0xB007, 0xB007, 0x1},
{0xB00A, 0xB007, 0xB007, 0xB007, 0x1},
{0xB00B, 0xB007, 0xB007, 0xB007, 0x1},
{0xB00C, 0xB007, 0xB007, 0xB007, 0x1},
{0xB00D, 0xB008, 0xB008, 0xB008, 0x1},
{0xB00D, 0xB008, 0xB008, 0xB008, 0x1},
{0xB00D, 0xB008, 0xB008, 0xB008, 0x1},
{0xB00D, 0xB008, 0xB008, 0xB008, 0x1},
{0xB00D, 0xB008, 0xB008, 0xB008, 0x1},
{0xB00D, 0xB008, 0xB008, 0xB008, 0x1},
{0xB00E, 0xB009, 0xB009, 0xB009, 0x0},
{0xB00F, 0xB009, 0xB009, 0xB009, 0x0},
{0xB010, 0xB009, 0xB009, 0xB009, 0x0},
{0xB011, 0xB009, 0xB009, 0xB009, 0x0},
{0xB012, 0xB009, 0xB009, 0xB009, 0x0},
{0xB013, 0xB009, 0xB009, 0xB009, 0x0},
{0xB014, 0xB009, 0xB009, 0xB009, 0x0},
{0xB015, 0xB009, 0xB009, 0xB009, 0x0},
{0xB017, 0xB00B, 0xB00B, 0xB00B, 0x0},
{0xB017, 0xB00B, 0xB00B, 0xB00B, 0x0},
{0xB017, 0xB00B, 0xB00B, 0xB00B, 0x0},
{0xB017, 0xB00B, 0xB00B, 0xB00B, 0x0},
{0xB017, 0xB00B, 0xB00B, 0xB00B, 0x0},
{0xB016, 0xB00A, 0xB00A, 0xB00A, 0x0},
{0xB016, 0xB00A, 0xB00A, 0xB00A, 0x0},
{0xB016, 0xB00A, 0xB00A, 0xB00A, 0x0},
{0xB016, 0xB00A, 0xB00A, 0xB00A, 0x0},
{0xB016, 0xB00A, 0xB00A, 0xB00A, 0x0},
{0xB016, 0xB00A, 0xB00A, 0xB00A, 0x0},
{0xB016, 0xB00A, 0xB00A, 0xB00A, 0x0}
};
static const int Unk_ov13_02229404[][2] = {
{0x10, 0x10},
{0x90, 0x18},
{0x10, 0x40},
{0x90, 0x48},
{0x10, 0x70},
{0x90, 0x78}
};
static const int Unk_ov13_02229434[][2] = {
{0x1C, 0x28},
{0x9C, 0x30},
{0x1C, 0x58},
{0x9C, 0x60},
{0x1C, 0x88},
{0x9C, 0x90}
};
static const int Unk_ov13_0222921C[2] = {
0x80,
0x48
};
static const int Unk_ov13_0222923C[2] = {
0x18,
0xC
};
static const int Unk_ov13_0222924C[2] = {
0xC6,
0x14
};
static const int Unk_ov13_022292C4[][2] = {
{0x82, 0x10},
{0xA4, 0x10}
};
static const int Unk_ov13_02229324[][2] = {
{0x18, 0x50},
{0x98, 0x50},
{0x18, 0x80},
{0x98, 0x80}
};
static const int Unk_ov13_02229244[2] = {
0x18,
0xC
};
static const int Unk_ov13_02229254[2] = {
0xC6,
0x14
};
static const int Unk_ov13_022292A4[][2] = {
{0x82, 0x10},
{0xA4, 0x10}
};
static const int Unk_ov13_02229264[2] = {
0x18,
0xC
};
static const int Unk_ov13_02229224[2] = {
0xC6,
0x14
};
static const int Unk_ov13_022292B4[][2] = {
{0x82, 0x10},
{0xA4, 0x10}
};
static const int Unk_ov13_0222922C[2] = {
0x88,
0x30
};
static const int Unk_ov13_02229214[2] = {
0x18,
0x58
};
static const int Unk_ov13_02229234[2] = {
0x18,
0xC
};
static const int Unk_ov13_02229294[][2] = {
{0x82, 0x10},
{0xA4, 0x10}
};
static const int Unk_ov13_022293DC[][2] = {
{0x18, 0x50},
{0x98, 0x50},
{0x18, 0x80},
{0x98, 0x80},
{0x58, 0xB0}
};
static const int Unk_ov13_0222927C[2] = {
0x18,
0xC
};
static const int Unk_ov13_02229284[][2] = {
{0x82, 0x10},
{0xA4, 0x10}
};
static const int Unk_ov13_0222926C[2] = {
0x88,
0x30
};
static const int Unk_ov13_02229274[2] = {
0x18,
0x58
};
static const int Unk_ov13_0222925C[2] = {
0x88,
0x48
};
void ov13_02224500 (UnkStruct_ov13_022213F0 * param0)
{
ov13_0222453C(param0);
ov13_02224588(param0);
ov13_02224670(param0);
ov13_02224720(param0);
ov13_02224798(param0);
ov13_02224848(param0);
ov13_02224948(param0);
ov13_0222554C(param0);
sub_0201FF74(GX_PLANEMASK_OBJ, 1);
}
static void ov13_0222453C (UnkStruct_ov13_022213F0 * param0)
{
UnkStruct_ov104_02241308 v0 = {18, 6, 6, 6, 0, 0};
UnkStruct_0200C6E4 * v1 = ov16_0223E010(param0->unk_00->unk_08);
param0->unk_1FB0 = sub_0200C704(v1);
sub_0200C7C0(v1, param0->unk_1FB0, 38 + 5);
sub_0200CB30(v1, param0->unk_1FB0, &v0);
}
static void ov13_02224588 (UnkStruct_ov13_022213F0 * param0)
{
UnkStruct_0200C6E4 * v0;
u32 v1;
UnkStruct_02006C24 * v2;
v2 = sub_02006C24(19, param0->unk_00->unk_0C);
v0 = ov16_0223E010(param0->unk_00->unk_08);
sub_0200CDC4(param0->unk_1E4, 3, v0, param0->unk_1FB0, v2, sub_02079FD0(), 0, 3, NNS_G2D_VRAM_TYPE_2DSUB, 45063);
sub_0200CE24(v0, param0->unk_1FB0, v2, sub_02079FD8(), 0, 45063);
sub_0200CE54(v0, param0->unk_1FB0, v2, sub_02079FE4(), 0, 45063);
for (v1 = 0; v1 < 6; v1++) {
if (param0->unk_04[v1].unk_04 != 0) {
sub_0200CC3C(v0, param0->unk_1FB0, v2, sub_02079D80(param0->unk_04[v1].unk_00), 0, NNS_G2D_VRAM_TYPE_2DSUB, 45063 + v1);
} else {
sub_0200CC3C(v0, param0->unk_1FB0, v2, sub_02079D8C(0, 0, 0), 0, NNS_G2D_VRAM_TYPE_2DSUB, 45063 + v1);
}
}
sub_02006CA8(v2);
}
static void ov13_02224670 (UnkStruct_ov13_022213F0 * param0)
{
UnkStruct_0200C6E4 * v0 = ov16_0223E010(param0->unk_00->unk_08);
UnkStruct_02006C24 * v1;
v1 = sub_02006C24(39, param0->unk_00->unk_0C);
sub_0200CDC4(param0->unk_1E4, 3, v0, param0->unk_1FB0, v1, sub_0208E9E4(), 0, 1, NNS_G2D_VRAM_TYPE_2DSUB, 45064);
sub_0200CE24(v0, param0->unk_1FB0, v1, sub_0208E9E8(), 0, 45064);
sub_0200CE54(v0, param0->unk_1FB0, v1, sub_0208E9EC(), 0, 45064);
sub_0200CC3C(v0, param0->unk_1FB0, v1, sub_0208E9E0(), 0, NNS_G2D_VRAM_TYPE_2DSUB, 45069);
sub_02006CA8(v1);
}
static void ov13_02224720 (UnkStruct_ov13_022213F0 * param0)
{
UnkStruct_0200C6E4 * v0;
u32 v1;
v0 = ov16_0223E010(param0->unk_00->unk_08);
sub_0207C9B0(param0->unk_1E4, 3, v0, param0->unk_1FB0, NNS_G2D_VRAM_TYPE_2DSUB, 45065);
sub_0207C9EC(v0, param0->unk_1FB0, 45065, 45065);
for (v1 = 45070; v1 <= 45076; v1++) {
sub_0207C948(v0, param0->unk_1FB0, NNS_G2D_VRAM_TYPE_2DSUB, 0, v1);
}
sub_0207CAC4(v0, param0->unk_1FB0, NNS_G2D_VRAM_TYPE_2DSUB, 0, 45077);
}
static void ov13_02224798 (UnkStruct_ov13_022213F0 * param0)
{
UnkStruct_0200C6E4 * v0;
u32 v1;
UnkStruct_02006C24 * v2;
v2 = sub_02006C24(20, param0->unk_00->unk_0C);
v0 = ov16_0223E010(param0->unk_00->unk_08);
sub_0200CDC4(param0->unk_1E4, 3, v0, param0->unk_1FB0, v2, sub_02081934(), 0, 1, NNS_G2D_VRAM_TYPE_2DSUB, 45066);
sub_0200CE24(v0, param0->unk_1FB0, v2, sub_02081938(), 0, 45066);
sub_0200CE54(v0, param0->unk_1FB0, v2, sub_0208193C(), 0, 45066);
sub_0200CC3C(v0, param0->unk_1FB0, v2, sub_02081930(), 0, NNS_G2D_VRAM_TYPE_2DSUB, 45078);
sub_02006CA8(v2);
}
static void ov13_02224848 (UnkStruct_ov13_022213F0 * param0)
{
UnkStruct_0200C6E4 * v0 = ov16_0223E010(param0->unk_00->unk_08);
sub_0200CD7C(param0->unk_1E4, 3, v0, param0->unk_1FB0, 72, 27, 0, 1, NNS_G2D_VRAM_TYPE_2DSUB, 45067);
sub_0200CE0C(v0, param0->unk_1FB0, 72, 25, 0, 45067);
sub_0200CE3C(v0, param0->unk_1FB0, 72, 24, 0, 45067);
sub_0200CBDC(v0, param0->unk_1FB0, 72, 26, 0, NNS_G2D_VRAM_TYPE_2DSUB, 45079);
}
static UnkStruct_0200D0F4 * ov13_022248D8 (UnkStruct_ov13_022213F0 * param0, u32 param1)
{
UnkStruct_ov104_0223F9E0 v0;
UnkStruct_0200C6E4 * v1;
v1 = ov16_0223E010(param0->unk_00->unk_08);
v0.unk_00 = 0;
v0.unk_02 = 0;
v0.unk_04 = 0;
v0.unk_06 = 0;
v0.unk_08 = Unk_ov13_02229514[param1][4];
v0.unk_0C = 0;
v0.unk_10 = NNS_G2D_VRAM_TYPE_2DSUB;
v0.unk_14[0] = Unk_ov13_02229514[param1][0];
v0.unk_14[1] = Unk_ov13_02229514[param1][1];
v0.unk_14[2] = Unk_ov13_02229514[param1][2];
v0.unk_14[3] = Unk_ov13_02229514[param1][3];
v0.unk_2C = 1;
v0.unk_30 = 0;
return sub_0200CE6C(v1, param0->unk_1FB0, &v0);
}
static void ov13_02224948 (UnkStruct_ov13_022213F0 * param0)
{
u32 v0;
for (v0 = 0; v0 < 38; v0++) {
param0->unk_1FB4[v0] = ov13_022248D8(param0, v0);
}
ov13_022249CC(param0);
}
void ov13_02224970 (UnkStruct_ov13_022213F0 * param0)
{
UnkStruct_0200C6E4 * v0;
u32 v1;
v0 = ov16_0223E010(param0->unk_00->unk_08);
for (v1 = 0; v1 < 38; v1++) {
sub_0200D0F4(param0->unk_1FB4[v1]);
}
ov13_022255B8(param0);
sub_0200D0B0(v0, param0->unk_1FB0);
}
static void ov13_022249AC (UnkStruct_0200D0F4 * param0, const int param1, const int param2)
{
sub_0200D3F4(param0, 1);
sub_0200D4C4(param0, param1, param2);
}
static void ov13_022249CC (UnkStruct_ov13_022213F0 * param0)
{
s32 v0;
for (v0 = 0; v0 < 6; v0++) {
if (param0->unk_04[v0].unk_04 == 0) {
continue;
}
sub_0200D41C(param0->unk_1FB4[7 + v0], sub_02079EDC(param0->unk_04[v0].unk_04, param0->unk_04[v0].unk_2E, param0->unk_04[v0].unk_17_7));
}
}
static void ov13_02224A0C (UnkStruct_ov13_022213F0 * param0, UnkStruct_0200D0F4 * param1, u32 param2, u8 param3)
{
UnkStruct_0200C6E4 * v0 = ov16_0223E010(param0->unk_00->unk_08);
sub_0200D948(v0, param0->unk_1FB0, sub_0207C944(), sub_0207C908(param3), 1, param2);
sub_0200D41C(param1, sub_0207C92C(param3) + 4);
}
static void ov13_02224A5C (UnkStruct_ov13_022213F0 * param0, UnkStruct_0200D0F4 * param1, u32 param2)
{
UnkStruct_0200C6E4 * v0 = ov16_0223E010(param0->unk_00->unk_08);
sub_0200D948(v0, param0->unk_1FB0, sub_0207CAC0(), sub_0207CA90(param2), 1, 45077);
sub_0200D41C(param1, sub_0207CAA8(param2) + 4);
}
static void ov13_02224AB0 (u16 param0, UnkStruct_0200D0F4 * param1, const int param2, const int param3)
{
if (param0 == 7) {
return;
}
sub_0200D364(param1, param0);
ov13_022249AC(param1, param2, param3);
}
static void ov13_02224AD4 (UnkStruct_ov13_022213F0 * param0, UnkStruct_ov13_02221ED0 * param1, const int * param2)
{
ov13_02224A0C(param0, param0->unk_1FB4[19], 45070, param1->unk_14);
ov13_022249AC(param0->unk_1FB4[19], param2[0], param2[1]);
if (param1->unk_14 != param1->unk_15) {
ov13_02224A0C(param0, param0->unk_1FB4[20], 45071, param1->unk_15);
ov13_022249AC(param0->unk_1FB4[20], param2[2], param2[3]);
}
}
static void ov13_02224B28 (u16 param0, UnkStruct_0200D0F4 * param1, const int param2, const int param3)
{
if (param0 == 0) {
return;
}
if (sub_0207D2D0(param0) == 1) {
sub_0200D364(param1, 1);
} else {
sub_0200D364(param1, 0);
}
ov13_022249AC(param1, param2, param3);
}
static void ov13_02224B5C (u8 param0, UnkStruct_0200D0F4 * param1, const int param2, const int param3)
{
if (param0 == 0) {
return;
}
sub_0200D364(param1, 2);
ov13_022249AC(param1, param2, param3);
}
void ov13_02224B7C (UnkStruct_ov13_022213F0 * param0, u32 param1)
{
u32 v0;
for (v0 = 0; v0 < 38; v0++) {
sub_0200D3F4(param0->unk_1FB4[v0], 0);
}
switch (param1) {
case 0:
ov13_02224C14(param0);
break;
case 1:
ov13_02224CB0(param0);
break;
case 2:
ov13_02224D08(param0);
break;
case 3:
ov13_02224DA0(param0);
break;
case 4:
ov13_02224E78(param0);
break;
case 5:
ov13_0222506C(param0);
break;
case 6:
ov13_02224F3C(param0);
break;
case 7:
ov13_02224FA8(param0);
break;
case 8:
ov13_02225150(param0);
break;
case 9:
ov13_022250D8(param0);
break;
}
}
static void ov13_02224C14 (UnkStruct_ov13_022213F0 * param0)
{
s32 v0;
for (v0 = 0; v0 < 6; v0++) {
if (param0->unk_04[v0].unk_04 == 0) {
continue;
}
ov13_022249AC(param0->unk_1FB4[7 + v0], Unk_ov13_02229404[v0][0], Unk_ov13_02229404[v0][1]);
ov13_02224AB0(param0->unk_04[v0].unk_17_3, param0->unk_1FB4[13 + v0], Unk_ov13_02229434[v0][0], Unk_ov13_02229434[v0][1]);
ov13_02224B28(param0->unk_04[v0].unk_1A, param0->unk_1FB4[0 + v0], Unk_ov13_02229404[v0][0] + 8, Unk_ov13_02229404[v0][1] + 8);
ov13_02224B5C(param0->unk_04[v0].unk_2D, param0->unk_1FB4[32 + v0], Unk_ov13_02229404[v0][0] + 16, Unk_ov13_02229404[v0][1] + 8);
}
}
static void ov13_02224CB0 (UnkStruct_ov13_022213F0 * param0)
{
UnkStruct_ov13_02221ED0 * v0;
u16 v1;
v0 = &param0->unk_04[param0->unk_00->unk_11];
ov13_022249AC(param0->unk_1FB4[7 + param0->unk_00->unk_11], Unk_ov13_0222921C[0], Unk_ov13_0222921C[1]);
ov13_02224B28(v0->unk_1A, param0->unk_1FB4[0 + param0->unk_00->unk_11], Unk_ov13_0222921C[0] + 8, Unk_ov13_0222921C[1] + 8);
ov13_02224B5C(v0->unk_2D, param0->unk_1FB4[32 + param0->unk_00->unk_11], Unk_ov13_0222921C[0] + 16, Unk_ov13_0222921C[1] + 8);
}
static void ov13_02224D08 (UnkStruct_ov13_022213F0 * param0)
{
UnkStruct_ov13_02221ED0 * v0;
u16 v1;
v0 = &param0->unk_04[param0->unk_00->unk_11];
ov13_022249AC(param0->unk_1FB4[7 + param0->unk_00->unk_11], Unk_ov13_0222923C[0], Unk_ov13_0222923C[1]);
ov13_02224AB0(v0->unk_17_3, param0->unk_1FB4[13 + param0->unk_00->unk_11], Unk_ov13_0222924C[0], Unk_ov13_0222924C[1]);
ov13_02224AD4(param0, v0, &Unk_ov13_022292C4[0][0]);
ov13_02224B28(v0->unk_1A, param0->unk_1FB4[0 + param0->unk_00->unk_11], Unk_ov13_0222923C[0] + 8, Unk_ov13_0222923C[1] + 8);
ov13_02224B5C(v0->unk_2D, param0->unk_1FB4[32 + param0->unk_00->unk_11], Unk_ov13_0222923C[0] + 16, Unk_ov13_0222923C[1] + 8);
ov13_02224B28(v0->unk_1A, param0->unk_1FB4[6], 20, 132);
}
static void ov13_02224DA0 (UnkStruct_ov13_022213F0 * param0)
{
UnkStruct_ov13_02221ED0 * v0;
u32 v1;
v0 = &param0->unk_04[param0->unk_00->unk_11];
ov13_022249AC(param0->unk_1FB4[7 + param0->unk_00->unk_11], Unk_ov13_02229244[0], Unk_ov13_02229244[1]);
ov13_02224AB0(v0->unk_17_3, param0->unk_1FB4[13 + param0->unk_00->unk_11], Unk_ov13_02229254[0], Unk_ov13_02229254[1]);
ov13_02224AD4(param0, v0, &Unk_ov13_022292A4[0][0]);
ov13_02224B28(v0->unk_1A, param0->unk_1FB4[0 + param0->unk_00->unk_11], Unk_ov13_02229244[0] + 8, Unk_ov13_02229244[1] + 8);
ov13_02224B5C(v0->unk_2D, param0->unk_1FB4[32 + param0->unk_00->unk_11], Unk_ov13_02229244[0] + 16, Unk_ov13_02229244[1] + 8);
for (v1 = 0; v1 < 4; v1++) {
if (v0->unk_30[v1].unk_00 == 0) {
continue;
}
ov13_02224A0C(param0, param0->unk_1FB4[21 + v1], 45072 + v1, v0->unk_30[v1].unk_04);
ov13_022249AC(param0->unk_1FB4[21 + v1], Unk_ov13_02229324[v1][0], Unk_ov13_02229324[v1][1]);
}
}
static void ov13_02224E78 (UnkStruct_ov13_022213F0 * param0)
{
UnkStruct_ov13_02221ED0 * v0 = &param0->unk_04[param0->unk_00->unk_11];
ov13_022249AC(param0->unk_1FB4[7 + param0->unk_00->unk_11], Unk_ov13_02229264[0], Unk_ov13_02229264[1]);
ov13_02224AB0(v0->unk_17_3, param0->unk_1FB4[13 + param0->unk_00->unk_11], Unk_ov13_02229224[0], Unk_ov13_02229224[1]);
ov13_02224AD4(param0, v0, &Unk_ov13_022292B4[0][0]);
ov13_022249AC(param0->unk_1FB4[21 + param0->unk_00->unk_34], Unk_ov13_0222922C[0], Unk_ov13_0222922C[1]);
ov13_02224B28(v0->unk_1A, param0->unk_1FB4[0 + param0->unk_00->unk_11], Unk_ov13_02229264[0] + 8, Unk_ov13_02229264[1] + 8);
ov13_02224B5C(v0->unk_2D, param0->unk_1FB4[32 + param0->unk_00->unk_11], Unk_ov13_02229264[0] + 16, Unk_ov13_02229264[1] + 8);
ov13_02224A5C(param0, param0->unk_1FB4[26], v0->unk_30[param0->unk_00->unk_34].unk_05);
ov13_022249AC(param0->unk_1FB4[26], Unk_ov13_02229214[0], Unk_ov13_02229214[1]);
}
static void ov13_02224F3C (UnkStruct_ov13_022213F0 * param0)
{
UnkStruct_ov13_02221ED0 * v0;
u16 v1;
v0 = &param0->unk_04[param0->unk_00->unk_11];
ov13_022249AC(param0->unk_1FB4[7 + param0->unk_00->unk_11], Unk_ov13_02229234[0], Unk_ov13_02229234[1]);
ov13_02224AD4(param0, v0, &Unk_ov13_02229294[0][0]);
ov13_02224B28(v0->unk_1A, param0->unk_1FB4[0 + param0->unk_00->unk_11], Unk_ov13_02229234[0] + 8, Unk_ov13_02229234[1] + 8);
ov13_02224B5C(v0->unk_2D, param0->unk_1FB4[32 + param0->unk_00->unk_11], Unk_ov13_02229234[0] + 16, Unk_ov13_02229234[1] + 8);
ov13_022252E8(param0);
}
static void ov13_02224FA8 (UnkStruct_ov13_022213F0 * param0)
{
UnkStruct_ov13_02221ED0 * v0 = &param0->unk_04[param0->unk_00->unk_11];
ov13_022249AC(param0->unk_1FB4[7 + param0->unk_00->unk_11], Unk_ov13_0222927C[0], Unk_ov13_0222927C[1]);
ov13_02224AD4(param0, v0, &Unk_ov13_02229284[0][0]);
ov13_022249AC(param0->unk_1FB4[21 + param0->unk_00->unk_34], Unk_ov13_0222926C[0], Unk_ov13_0222926C[1]);
ov13_02224B28(v0->unk_1A, param0->unk_1FB4[0 + param0->unk_00->unk_11], Unk_ov13_0222927C[0] + 8, Unk_ov13_0222927C[1] + 8);
ov13_02224B5C(v0->unk_2D, param0->unk_1FB4[32 + param0->unk_00->unk_11], Unk_ov13_0222927C[0] + 16, Unk_ov13_0222927C[1] + 8);
if (param0->unk_00->unk_34 < 4) {
ov13_02224A5C(param0, param0->unk_1FB4[26], v0->unk_30[param0->unk_00->unk_34].unk_05);
} else {
ov13_02224A5C(param0, param0->unk_1FB4[26], sub_020790C4(param0->unk_00->unk_24, 1));
}
ov13_022249AC(param0->unk_1FB4[26], Unk_ov13_02229274[0], Unk_ov13_02229274[1]);
}
static void ov13_0222506C (UnkStruct_ov13_022213F0 * param0)
{
UnkStruct_ov13_02221ED0 * v0;
u16 v1;
v0 = &param0->unk_04[param0->unk_00->unk_11];
ov13_022249AC(param0->unk_1FB4[7 + param0->unk_00->unk_11], Unk_ov13_02229234[0], Unk_ov13_02229234[1]);
ov13_02224AD4(param0, v0, &Unk_ov13_02229294[0][0]);
ov13_02224B28(v0->unk_1A, param0->unk_1FB4[0 + param0->unk_00->unk_11], Unk_ov13_02229234[0] + 8, Unk_ov13_02229234[1] + 8);
ov13_02224B5C(v0->unk_2D, param0->unk_1FB4[32 + param0->unk_00->unk_11], Unk_ov13_02229234[0] + 16, Unk_ov13_02229234[1] + 8);
ov13_022252E8(param0);
}
static void ov13_022250D8 (UnkStruct_ov13_022213F0 * param0)
{
UnkStruct_ov13_02221ED0 * v0 = &param0->unk_04[param0->unk_00->unk_11];
ov13_022249AC(param0->unk_1FB4[7 + param0->unk_00->unk_11], Unk_ov13_0222927C[0], Unk_ov13_0222927C[1]);
ov13_022249AC(param0->unk_1FB4[21 + param0->unk_00->unk_34], Unk_ov13_0222925C[0], Unk_ov13_0222925C[1]);
ov13_02224B28(v0->unk_1A, param0->unk_1FB4[0 + param0->unk_00->unk_11], Unk_ov13_0222927C[0] + 8, Unk_ov13_0222927C[1] + 8);
ov13_02224B5C(v0->unk_2D, param0->unk_1FB4[32 + param0->unk_00->unk_11], Unk_ov13_0222927C[0] + 16, Unk_ov13_0222927C[1] + 8);
ov13_02225420(param0);
}
static void ov13_02225150 (UnkStruct_ov13_022213F0 * param0)
{
UnkStruct_ov13_02221ED0 * v0 = &param0->unk_04[param0->unk_00->unk_11];
ov13_022249AC(param0->unk_1FB4[7 + param0->unk_00->unk_11], Unk_ov13_0222927C[0], Unk_ov13_0222927C[1]);
ov13_02224B28(v0->unk_1A, param0->unk_1FB4[0 + param0->unk_00->unk_11], Unk_ov13_0222927C[0] + 8, Unk_ov13_0222927C[1] + 8);
ov13_02224B5C(v0->unk_2D, param0->unk_1FB4[32 + param0->unk_00->unk_11], Unk_ov13_0222927C[0] + 16, Unk_ov13_0222927C[1] + 8);
ov13_022252E8(param0);
ov13_02225420(param0);
}
static void ov13_022251B4 (UnkStruct_ov13_022213F0 * param0)
{
UnkStruct_ov13_02221ED0 * v0;
u16 v1;
v0 = &param0->unk_04[param0->unk_00->unk_11];
for (v1 = 0; v1 < 4; v1++) {
if (v0->unk_30[v1].unk_00 == 0) {
continue;
}
ov13_02224A0C(param0, param0->unk_1FB4[21 + v1], 45072 + v1, v0->unk_30[v1].unk_04);
ov13_022249AC(param0->unk_1FB4[21 + v1], Unk_ov13_022293DC[v1][0], Unk_ov13_022293DC[v1][1]);
}
if (param0->unk_00->unk_24 != 0) {
ov13_02224A0C(param0, param0->unk_1FB4[25], 45076, sub_020790C4(param0->unk_00->unk_24, 3));
ov13_022249AC(param0->unk_1FB4[25], Unk_ov13_022293DC[4][0], Unk_ov13_022293DC[4][1]);
}
}
static void ov13_02225248 (UnkStruct_ov13_022213F0 * param0)
{
UnkStruct_ov13_02221ED0 * v0;
u16 v1;
v0 = &param0->unk_04[param0->unk_00->unk_11];
for (v1 = 0; v1 < 4; v1++) {
if (v0->unk_30[v1].unk_00 == 0) {
continue;
}
ov13_02224A0C(param0, param0->unk_1FB4[21 + v1], 45072 + v1, sub_020790C4(v0->unk_30[v1].unk_00, 11) + 18);
ov13_022249AC(param0->unk_1FB4[21 + v1], Unk_ov13_022293DC[v1][0], Unk_ov13_022293DC[v1][1]);
}
if (param0->unk_00->unk_24 != 0) {
ov13_02224A0C(param0, param0->unk_1FB4[25], 45076, sub_020790C4(param0->unk_00->unk_24, 11) + 18);
ov13_022249AC(param0->unk_1FB4[25], Unk_ov13_022293DC[4][0], Unk_ov13_022293DC[4][1]);
}
}
void ov13_022252E8 (UnkStruct_ov13_022213F0 * param0)
{
if (param0->unk_2073_0 == 0) {
ov13_022251B4(param0);
} else {
ov13_02225248(param0);
}
}
static void ov13_02225304 (UnkStruct_0200D0F4 * param0, u8 param1)
{
if (sub_0200D37C(param0) == param1) {
return;
}
sub_0200D3CC(param0, 0);
sub_0200D364(param0, param1);
}
static u8 ov13_02225324 (UnkStruct_ov13_02221ED0 * param0)
{
if (param0->unk_10 == 0) {
return 0;
}
if ((param0->unk_17_3 != 7) && (param0->unk_17_3 != 6)) {
return 5;
}
switch (sub_0208C104(param0->unk_10, param0->unk_12, 48)) {
case 4:
return 1;
case 3:
return 2;
case 2:
return 3;
case 1:
return 4;
}
return 0;
}
void ov13_0222537C (UnkStruct_ov13_022213F0 * param0)
{
u16 v0;
u16 v1;
for (v0 = 0; v0 < sub_0207A0F8(param0->unk_00->unk_00); v0++) {
if (param0->unk_04[v0].unk_04 == 0) {
continue;
}
v1 = ov13_02225324(&param0->unk_04[v0]);
ov13_02225304(param0->unk_1FB4[7 + v0], v1);
sub_0200D34C(param0->unk_1FB4[7 + v0], FX32_ONE);
}
}
static s16 ov13_022253DC (u32 param0, s16 param1, s16 param2)
{
u32 v0;
param0 += 44;
if (param2 > param1) {
v0 = ((param2 - param1) * param0) << 16;
v0 = (v0 / 300) >> 16;
return param2 + (s16)v0 * -1;
}
v0 = ((param1 - param2) * param0) << 16;
v0 = (v0 / 300) >> 16;
return param2 + (s16)v0;
}
static void ov13_02225420 (UnkStruct_ov13_022213F0 * param0)
{
UnkStruct_ov13_02221ED0 * v0;
u16 v1;
v0 = &param0->unk_04[param0->unk_00->unk_11];
ov13_02225304(param0->unk_1FB4[27], 0);
ov13_02225304(param0->unk_1FB4[28], 1);
ov13_02225304(param0->unk_1FB4[29], 3);
ov13_02225304(param0->unk_1FB4[30], 4);
ov13_02225304(param0->unk_1FB4[31], 2);
ov13_022249AC(param0->unk_1FB4[27], ov13_022253DC(v0->unk_28, 144, 144), ov13_022253DC(v0->unk_28, 2, 24));
ov13_022249AC(param0->unk_1FB4[28], ov13_022253DC(v0->unk_29, 164, 144), ov13_022253DC(v0->unk_29, 16, 24));
ov13_022249AC(param0->unk_1FB4[29], ov13_022253DC(v0->unk_2A, 156, 144), ov13_022253DC(v0->unk_2A, 41, 24));
ov13_022249AC(param0->unk_1FB4[30], ov13_022253DC(v0->unk_2B, 131, 143), ov13_022253DC(v0->unk_2B, 41, 24));
ov13_022249AC(param0->unk_1FB4[31], ov13_022253DC(v0->unk_2C, 123, 143), ov13_022253DC(v0->unk_2C, 16, 24));
}
static void ov13_0222554C (UnkStruct_ov13_022213F0 * param0)
{
UnkStruct_0200C6E4 * v0;
UnkStruct_ov16_0226DC24 * v1;
v0 = ov16_0223E010(param0->unk_00->unk_08);
ov16_0226DB7C(v0, param0->unk_1FB0, param0->unk_1E4, param0->unk_00->unk_0C, 45080, 45068, 45068, 45068);
v1 = ov16_0226DC24(v0, param0->unk_1FB0, param0->unk_00->unk_0C, 45080, 45068, 45068, 45068, 0, 1);
ov13_02228A64(param0->unk_2084, v1);
}
static void ov13_022255B8 (UnkStruct_ov13_022213F0 * param0)
{
ov16_0226DCA8(ov13_02228A58(param0->unk_2084));
ov16_0226DBFC(param0->unk_1FB0, 45080, 45068, 45068, 45068);
}
static const UnkStruct_020F1DB8 Unk_ov13_02229464[] = {
{0x8, 0x8, 0x78, 0x28, 0x6, 0x2, 0x6, 0x1},
{0x88, 0x10, 0xF8, 0x30, 0x4, 0x3, 0x0, 0x2},
{0x8, 0x38, 0x78, 0x58, 0x0, 0x4, 0x1, 0x3},
{0x88, 0x40, 0xF8, 0x60, 0x1, 0x5, 0x2, 0x4},
{0x8, 0x68, 0x78, 0x88, 0x2, 0x1, 0x3, 0x5},
{0x88, 0x70, 0xF8, 0x90, 0x3, 0x6, 0x4, 0x6},
{0xE0, 0xA0, 0xF8, 0xB8, 0x5, 0x0, 0x5, 0x0}
};
static const UnkStruct_020F1DB8 Unk_ov13_02229344[] = {
{0x10, 0x10, 0xF0, 0x88, 0x0, 0x81, 0x0, 0x0},
{0x8, 0xA0, 0x60, 0xB8, 0x0, 0x1, 0x1, 0x2},
{0x70, 0xA0, 0xC8, 0xB8, 0x0, 0x2, 0x1, 0x3},
{0xE0, 0xA0, 0xF8, 0xB8, 0x0, 0x3, 0x2, 0x3}
};
static const UnkStruct_020F1DB8 Unk_ov13_02229304[] = {
{0x8, 0xA0, 0x20, 0xB8, 0x0, 0x0, 0x0, 0x1},
{0x30, 0xA0, 0x48, 0xB8, 0x1, 0x1, 0x0, 0x2},
{0x68, 0xA0, 0xC0, 0xB8, 0x2, 0x2, 0x1, 0x3},
{0xE0, 0xA0, 0xF8, 0xB8, 0x3, 0x3, 0x2, 0x3}
};
static const UnkStruct_020F1DB8 Unk_ov13_022294D4[] = {
{0x8, 0x38, 0x78, 0x58, 0x0, 0x2, 0x0, 0x1},
{0x88, 0x38, 0xF8, 0x58, 0x1, 0x3, 0x0, 0x1},
{0x8, 0x68, 0x78, 0x88, 0x0, 0x84, 0x2, 0x3},
{0x88, 0x68, 0xF8, 0x88, 0x1, 0x87, 0x2, 0x3},
{0x8, 0xA0, 0x20, 0xB8, 0x2, 0x4, 0x4, 0x5},
{0x30, 0xA0, 0x48, 0xB8, 0x2, 0x5, 0x4, 0x6},
{0x68, 0xA0, 0xC0, 0xB8, 0x3, 0x6, 0x5, 0x7},
{0xE0, 0xA0, 0xF8, 0xB8, 0x3, 0x7, 0x6, 0x7}
};
static const UnkStruct_020F1DB8 Unk_ov13_02229364[] = {
{0x5C, 0x9D, 0x7C, 0xA5, 0x0, 0x2, 0x0, 0x1},
{0x84, 0x9D, 0xA4, 0xA5, 0x1, 0x3, 0x0, 0x4},
{0x5C, 0xAD, 0x7C, 0xB5, 0x0, 0x2, 0x2, 0x3},
{0x84, 0xAD, 0xA4, 0xB5, 0x1, 0x3, 0x2, 0x4},
{0xE0, 0xA0, 0xF8, 0xB8, 0x4, 0x4, 0x83, 0x4}
};
static const UnkStruct_020F1DB8 Unk_ov13_0222949C[] = {
{0x8, 0x38, 0x78, 0x58, 0x5, 0x2, 0x0, 0x1},
{0x88, 0x38, 0xF8, 0x58, 0x5, 0x3, 0x0, 0x1},
{0x8, 0x68, 0x78, 0x88, 0x0, 0x4, 0x2, 0x3},
{0x88, 0x68, 0xF8, 0x88, 0x1, 0x6, 0x2, 0x3},
{0x48, 0x98, 0xB8, 0xB8, 0x2, 0x4, 0x4, 0x6},
{0xC0, 0x8, 0xF8, 0x18, 0x5, 0x81, 0x0, 0x5},
{0xE0, 0xA0, 0xF8, 0xB8, 0x3, 0x6, 0x4, 0x6}
};
static const UnkStruct_020F1DB8 Unk_ov13_022292D4[] = {
{0x8, 0xA0, 0xC8, 0xB8, 0x1, 0x0, 0x0, 0x2},
{0xC0, 0x8, 0xF8, 0x18, 0x1, 0x82, 0x0, 0x1},
{0xE0, 0xA0, 0xF8, 0xB8, 0x1, 0x2, 0x0, 0x2}
};
static const UnkStruct_020F1DB8 Unk_ov13_022293B4[] = {
{0x8, 0x38, 0x78, 0x58, 0x0, 0x2, 0x0, 0x1},
{0x88, 0x38, 0xF8, 0x58, 0x1, 0x3, 0x0, 0x1},
{0x8, 0x68, 0x78, 0x88, 0x0, 0x4, 0x2, 0x3},
{0x88, 0x68, 0xF8, 0x88, 0x1, 0x4, 0x2, 0x3},
{0xE0, 0xA0, 0xF8, 0xB8, 0x83, 0x4, 0x4, 0x4}
};
static const UnkStruct_020F1DB8 * const Unk_ov13_0222938C[] = {
Unk_ov13_02229464,
Unk_ov13_02229344,
Unk_ov13_02229304,
Unk_ov13_022294D4,
Unk_ov13_02229364,
Unk_ov13_022293B4,
Unk_ov13_0222949C,
Unk_ov13_022292D4,
Unk_ov13_0222949C,
Unk_ov13_022292D4
};
static void ov13_022255EC (UnkStruct_ov13_022213F0 * param0)
{
if (param0->unk_2073_4 == 0) {
ov13_02228AC8(param0->unk_2084, 0x5f);
} else {
ov13_02228AC8(param0->unk_2084, 0x7f);
}
}
static void ov13_02225614 (UnkStruct_ov13_022213F0 * param0)
{
if (param0->unk_2073_4 == 0) {
ov13_02228AC8(param0->unk_2084, 5);
} else {
ov13_02228AC8(param0->unk_2084, 7);
}
}
void ov13_0222563C (UnkStruct_ov13_022213F0 * param0, u8 param1)
{
ov13_02228A9C(param0->unk_2084, Unk_ov13_0222938C[param1]);
switch (param1) {
case 0:
ov13_02228A68(param0->unk_2084, param0->unk_00->unk_11);
param0->unk_2088 = 0;
param0->unk_00->unk_34 = 0;
break;
case 1:
ov13_02228A68(param0->unk_2084, param0->unk_2088);
param0->unk_00->unk_34 = 0;
break;
case 3:
case 4:
ov13_02228A68(param0->unk_2084, param0->unk_00->unk_34);
break;
case 6:
case 8:
ov13_022255EC(param0);
ov13_02228A68(param0->unk_2084, param0->unk_2089);
break;
case 7:
case 9:
ov13_02225614(param0);
ov13_02228A68(param0->unk_2084, param0->unk_208A);
break;
}
}
void ov13_022256E8 (UnkStruct_ov13_022213F0 * param0)
{
ov13_02228A60(param0->unk_2084, 0);
ov13_02228A90(param0->unk_2084);
ov16_0226DDE8(ov13_02228A58(param0->unk_2084));
}

View File

@@ -0,0 +1,733 @@
#include <nitro.h>
#include <string.h>
#include "overlay013/struct_ov13_022213F0.h"
#include "unk_02002F38.h"
#include "unk_0200C6E4.h"
#include "unk_02017E74.h"
#include "unk_02018340.h"
#include "overlay013/ov13_0221FC20.h"
#include "overlay013/ov13_02225710.h"
typedef struct {
u8 unk_00;
u8 unk_01;
u8 unk_02;
u8 unk_03;
} UnkStruct_ov13_02229924;
static void ov13_02225AF0(u16 * param0, u16 * param1, u8 param2, u8 param3, u8 param4, u8 param5);
static u8 ov13_02226484(UnkStruct_ov13_022213F0 * param0);
static const UnkStruct_ov13_02229924 Unk_ov13_02229924[] = {
{0x0, 0x0, 0x10, 0x6},
{0x10, 0x1, 0x10, 0x6},
{0x0, 0x6, 0x10, 0x6},
{0x10, 0x7, 0x10, 0x6},
{0x0, 0xC, 0x10, 0x6},
{0x10, 0xD, 0x10, 0x6},
{0x1B, 0x13, 0x5, 0x5},
{0x1, 0x1, 0x1E, 0x11},
{0x0, 0x13, 0xD, 0x5},
{0xC, 0x13, 0xD, 0x5},
{0xD, 0x13, 0xD, 0x5},
{0xC, 0x13, 0xD, 0x5},
{0x0, 0x13, 0x5, 0x5},
{0x5, 0x13, 0x5, 0x5},
{0x0, 0x6, 0x10, 0x6},
{0x10, 0x6, 0x10, 0x6},
{0x0, 0xC, 0x10, 0x6},
{0x10, 0xC, 0x10, 0x6},
{0x17, 0x0, 0x9, 0x4},
{0x0, 0x6, 0x10, 0x6},
{0x10, 0x6, 0x10, 0x6},
{0x0, 0xC, 0x10, 0x6},
{0x10, 0xC, 0x10, 0x6},
{0x0, 0x6, 0x10, 0x6},
{0x10, 0x6, 0x10, 0x6},
{0x0, 0xC, 0x10, 0x6},
{0x10, 0xC, 0x10, 0x6},
{0x8, 0x12, 0x10, 0x6},
{0x0, 0x13, 0x1A, 0x5},
{0x0, 0x13, 0x1A, 0x5},
{0xB, 0x13, 0x5, 0x2},
{0x10, 0x13, 0x5, 0x2},
{0xB, 0x15, 0x5, 0x2},
{0x10, 0x15, 0x5, 0x2}
};
static const u8 Unk_ov13_02229838[] = {
0x0,
0xFF
};
static const u8 Unk_ov13_02229830[] = {
0x1,
0xFF
};
static const u8 Unk_ov13_02229864[] = {
0x2,
0xFF
};
static const u8 Unk_ov13_0222983C[] = {
0x3,
0xFF
};
static const u8 Unk_ov13_02229828[] = {
0x4,
0xFF
};
static const u8 Unk_ov13_02229840[] = {
0x5,
0xFF
};
static const u8 Unk_ov13_02229874[] = {
0x0,
0x1,
0xFF
};
static const u8 Unk_ov13_02229820[] = {
0x2,
0xFF
};
static const u8 Unk_ov13_02229824[] = {
0x3,
0xFF
};
static const u8 Unk_ov13_02229870[] = {
0x15,
0xFF
};
static const u8 Unk_ov13_0222986C[] = {
0x5,
0xFF
};
static const u8 Unk_ov13_02229878[] = {
0x7,
0x1,
0xFF
};
static const u8 Unk_ov13_02229880[] = {
0x8,
0x2,
0xFF
};
static const u8 Unk_ov13_02229884[] = {
0x9,
0x3,
0xFF
};
static const u8 Unk_ov13_02229888[] = {
0xA,
0x4,
0xFF
};
static const u8 Unk_ov13_0222985C[] = {
0x1,
0xFF
};
static const u8 Unk_ov13_02229854[] = {
0x2,
0xFF
};
static const u8 Unk_ov13_02229850[] = {
0x3,
0xFF
};
static const u8 Unk_ov13_0222984C[] = {
0x4,
0xFF
};
static const u8 Unk_ov13_0222982C[] = {
0x1,
0xFF
};
static const u8 Unk_ov13_02229844[] = {
0x2,
0xFF
};
static const u8 Unk_ov13_02229868[] = {
0x3,
0xFF
};
static const u8 Unk_ov13_02229860[] = {
0x4,
0xFF
};
static const u8 Unk_ov13_02229858[] = {
0x5,
0xFF
};
static const u8 Unk_ov13_02229834[] = {
0xB,
0xFF
};
static const u8 Unk_ov13_02229848[] = {
0x6,
0xFF
};
static const u8 * const Unk_ov13_0222989C[] = {
Unk_ov13_02229838,
Unk_ov13_02229830,
Unk_ov13_02229864,
Unk_ov13_0222983C,
Unk_ov13_02229828,
Unk_ov13_02229840,
NULL,
Unk_ov13_02229874,
Unk_ov13_02229820,
Unk_ov13_0222986C,
Unk_ov13_02229824,
Unk_ov13_02229870,
NULL,
NULL,
Unk_ov13_02229878,
Unk_ov13_02229880,
Unk_ov13_02229884,
Unk_ov13_02229888,
NULL,
Unk_ov13_0222985C,
Unk_ov13_02229854,
Unk_ov13_02229850,
Unk_ov13_0222984C,
Unk_ov13_0222982C,
Unk_ov13_02229844,
Unk_ov13_02229868,
Unk_ov13_02229860,
Unk_ov13_02229858,
Unk_ov13_02229834,
Unk_ov13_02229848,
NULL,
NULL,
NULL,
NULL
};
static const s16 Unk_ov13_02229896[] = {
0x2,
0xFFFFFFFFFFFFFFFD,
0x1
};
static const s16 Unk_ov13_02229890[] = {
0x2,
0xFFFFFFFFFFFFFFFC,
0x2
};
static const u8 Unk_ov13_0222988C[] = {
0x2,
0x3,
0x1
};
static const u8 Unk_ov13_0222987C[] = {
0x2,
0x4,
0x2
};
void ov13_02225710 (UnkStruct_ov13_022213F0 * param0, u16 * param1)
{
ov13_02225AF0(param0->unk_1E8[0], param1, 0, 0, 16, 6);
ov13_02225AF0(param0->unk_1E8[1], param1, 0, (0 + 6), 16, 6);
ov13_02225AF0(param0->unk_1E8[2], param1, 0, ((0 + 6) + 6), 16, 6);
ov13_02225AF0(param0->unk_1E8[3], param1, 0, (((0 + 6) + 6) + 6), 16, 6);
ov13_02225AF0(param0->unk_4E8[0], param1, 16, 0, 16, 6);
ov13_02225AF0(param0->unk_4E8[1], param1, 16, (0 + 6), 16, 6);
ov13_02225AF0(param0->unk_4E8[2], param1, 16, ((0 + 6) + 6), 16, 6);
ov13_02225AF0(param0->unk_4E8[3], param1, 16, (((0 + 6) + 6) + 6), 16, 6);
ov13_02225AF0(param0->unk_7E8[0], param1, 0, 39, 13, 5);
ov13_02225AF0(param0->unk_7E8[1], param1, 0, (39 + 5), 13, 5);
ov13_02225AF0(param0->unk_7E8[2], param1, (0 + 13), 39, 13, 5);
ov13_02225AF0(param0->unk_7E8[3], param1, (0 + 13), (39 + 5), 13, 5);
ov13_02225AF0(param0->unk_9F0[0], param1, 0, 49, 5, 5);
ov13_02225AF0(param0->unk_9F0[1], param1, (0 + 5), 49, 5, 5);
ov13_02225AF0(param0->unk_9F0[2], param1, ((0 + 5) + 5), 49, 5, 5);
ov13_02225AF0(param0->unk_9F0[3], param1, (((0 + 5) + 5) + 5), 49, 5, 5);
ov13_02225AF0(param0->unk_AB8[0], param1, 0, 54, 5, 5);
ov13_02225AF0(param0->unk_AB8[1], param1, (0 + 5), 54, 5, 5);
ov13_02225AF0(param0->unk_AB8[2], param1, ((0 + 5) + 5), 54, 5, 5);
ov13_02225AF0(param0->unk_AB8[3], param1, (((0 + 5) + 5) + 5), 54, 5, 5);
ov13_02225AF0(param0->unk_B80[0], param1, 26, 24, 5, 5);
ov13_02225AF0(param0->unk_B80[1], param1, 26, (24 + 5), 5, 5);
ov13_02225AF0(param0->unk_B80[2], param1, 26, ((24 + 5) + 5), 5, 5);
ov13_02225AF0(param0->unk_B80[3], param1, 26, (((24 + 5) + 5) + 5), 5, 5);
ov13_02225AF0(param0->unk_1B3C[0], param1, 0, 24, 26, 5);
ov13_02225AF0(param0->unk_1B3C[1], param1, 0, (24 + 5), 26, 5);
ov13_02225AF0(param0->unk_1B3C[2], param1, 0, ((24 + 5) + 5), 26, 5);
ov13_02225AF0(param0->unk_1E48[0], param1, 20, 49, 9, 4);
ov13_02225AF0(param0->unk_1E48[1], param1, 20, (49 + 4), 9, 4);
ov13_02225AF0(param0->unk_1E48[2], param1, 20, ((49 + 4) + 4), 9, 4);
ov13_02225AF0(param0->unk_1F20[0], param1, 0, 59, 5, 2);
ov13_02225AF0(param0->unk_1F20[1], param1, 5, 59, 5, 2);
ov13_02225AF0(param0->unk_1F20[2], param1, 10, 59, 5, 2);
}
void ov13_02225A3C (UnkStruct_ov13_022213F0 * param0, u16 * param1)
{
ov13_02225AF0(param0->unk_C48[0], param1, 0, 0, 30, 17);
ov13_02225AF0(param0->unk_C48[1], param1, 0, (0 + 17), 30, 17);
ov13_02225AF0(param0->unk_C48[2], param1, 0, ((0 + 17) + 17), 30, 17);
ov13_02225AF0(param0->unk_183C[0], param1, 0, 51, 16, 6);
ov13_02225AF0(param0->unk_183C[1], param1, (0 + 16), 51, 16, 6);
ov13_02225AF0(param0->unk_183C[2], param1, 0, (51 + 6), 16, 6);
ov13_02225AF0(param0->unk_183C[3], param1, ((0 + 16)), ((51 + 6)), 16, 6);
}
static void ov13_02225AF0 (u16 * param0, u16 * param1, u8 param2, u8 param3, u8 param4, u8 param5)
{
u16 v0, v1;
for (v0 = 0; v0 < param5; v0++) {
for (v1 = 0; v1 < param4; v1++) {
param0[v0 * param4 + v1] = param1[(param3 + v0) * 32 + param2 + v1];
}
}
}
static u16 * ov13_02225B40 (UnkStruct_ov13_022213F0 * param0, u8 param1, u8 param2, u8 param3)
{
switch (param1) {
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
if (param3 == 0) {
return param0->unk_1E8[param2];
} else {
return param0->unk_4E8[param2];
}
case 6:
return param0->unk_B80[param2];
case 7:
return param0->unk_C48[param2];
case 8:
case 9:
case 10:
case 11:
return param0->unk_7E8[param2];
case 12:
return param0->unk_9F0[param2];
case 13:
return param0->unk_AB8[param2];
case 14:
case 15:
case 16:
case 17:
case 19:
case 20:
case 21:
case 22:
case 23:
case 24:
case 25:
case 26:
case 27:
return param0->unk_183C[param2];
case 28:
case 29:
return param0->unk_1B3C[param2];
case 18:
return param0->unk_1E48[param2];
case 30:
case 31:
case 32:
case 33:
return param0->unk_1F20[param2];
}
return NULL;
}
static void ov13_02225C4C (UnkStruct_ov13_022213F0 * param0, u16 * param1, u8 param2, u8 param3, u8 param4)
{
u16 * v0;
u8 v1, v2;
u8 v3, v4;
v0 = ov13_02225B40(param0, param2, param3, param4);
v1 = Unk_ov13_02229924[param2].unk_02;
v2 = Unk_ov13_02229924[param2].unk_03;
memcpy(param1, v0, v1 * v2 * 2);
switch (param2) {
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
if (param0->unk_04[param2 - 0].unk_04 == 0) {
break;
}
if (param0->unk_04[param2 - 0].unk_17_7 != 0) {
u16 v5[2];
v5[0] = param1[2 * v1 + 6 - 1];
v5[1] = param1[(2 + 1) * v1 + 6 - 1];
for (v3 = 0; v3 < 2; v3++) {
for (v4 = 0; v4 < 9; v4++) {
param1[(2 + v3) * v1 + 6 + v4] = v5[v3];
}
}
} else {
if (param0->unk_04[param2 - 0].unk_10 == 0) {
for (v3 = 0; v3 < v1 * v2; v3++) {
param1[v3] = (param1[v3] & 0xfff) | (2 << 12);
}
} else if (ov13_022219AC(param0, param2 - 0) == 1) {
for (v3 = 0; v3 < v1 * v2; v3++) {
param1[v3] = (param1[v3] & 0xfff) | (1 << 12);
}
}
}
break;
case 27:
for (v3 = 0; v3 < v1 * v2; v3++) {
param1[v3] = (param1[v3] & 0xfff) | (10 << 12);
}
break;
}
}
static void ov13_02225D8C (UnkStruct_ov13_022213F0 * param0, u8 param1, u8 param2, u8 param3)
{
u16 * v0 = sub_02018144(param0->unk_00->unk_0C, Unk_ov13_02229924[param1].unk_02 * Unk_ov13_02229924[param1].unk_03 * 2);
ov13_02225C4C(param0, v0, param1, param2, param3);
sub_020198C0(param0->unk_1E0, 6, v0, Unk_ov13_02229924[param1].unk_00, Unk_ov13_02229924[param1].unk_01, Unk_ov13_02229924[param1].unk_02, Unk_ov13_02229924[param1].unk_03);
sub_0201C3C0(param0->unk_1E0, 6);
sub_020181C4(v0);
}
static void ov13_02225E08 (UnkStruct_ov13_022213F0 * param0, u8 param1, u8 param2)
{
const u8 * v0;
u16 v1;
u8 v2, v3;
v0 = Unk_ov13_0222989C[param1];
if (v0 == NULL) {
return;
}
if ((param1 == 0) || (param1 == 1) || (param1 == 2) || (param1 == 3) || (param1 == 4) || (param1 == 5)) {
v3 = Unk_ov13_0222988C[param2];
} else {
v3 = Unk_ov13_0222987C[param2];
}
switch (param2) {
case 0:
v2 = 1;
break;
case 1:
v2 = 0;
break;
case 2:
v2 = 1;
break;
}
if ((param1 >= 14) && (param1 <= 17)) {
sub_0201C04C(&param0->unk_206C[v0[param0->unk_2071]], v2, v3, 0);
sub_0201A9A4(&param0->unk_206C[v0[param0->unk_2071]]);
} else {
for (v1 = 0; v1 < 8; v1++) {
if (v0[v1] == 0xff) {
break;
}
sub_0201C04C(&param0->unk_206C[v0[v1]], v2, v3, 0);
sub_0201A9A4(&param0->unk_206C[v0[v1]]);
}
}
}
static void ov13_02225EB8 (UnkStruct_ov13_022213F0 * param0, u8 param1, u8 param2)
{
switch (param1) {
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
sub_0200D5DC(param0->unk_1FB4[13 + param1 - 0], 0, Unk_ov13_02229896[param2]);
sub_0200D5DC(param0->unk_1FB4[0 + param1 - 0], 0, Unk_ov13_02229896[param2]);
sub_0200D5DC(param0->unk_1FB4[7 + param1 - 0], 0, Unk_ov13_02229896[param2]);
break;
case 7:
sub_0200D5DC(param0->unk_1FB4[0 + param0->unk_00->unk_11], 0, Unk_ov13_02229890[param2]);
sub_0200D5DC(param0->unk_1FB4[7 + param0->unk_00->unk_11], 0, Unk_ov13_02229890[param2]);
break;
case 14:
case 15:
case 16:
case 17:
sub_0200D5DC(param0->unk_1FB4[21 + param1 - 14], 0, Unk_ov13_02229890[param2]);
break;
case 19:
case 20:
case 21:
case 22:
sub_0200D5DC(param0->unk_1FB4[21 + param1 - 19], 0, Unk_ov13_02229890[param2]);
break;
case 23:
case 24:
case 25:
case 26:
case 27:
sub_0200D5DC(param0->unk_1FB4[21 + param1 - 23], 0, Unk_ov13_02229890[param2]);
break;
}
}
void ov13_02225FCC (UnkStruct_ov13_022213F0 * param0, u8 param1)
{
param0->unk_1F9F_4 = 0;
if ((param1 >= 0) && (param1 <= 5)) {
if (ov13_022213F0(param0, param1 - 0) == 2) {
param0->unk_1F9F_4 = 1;
}
}
param0->unk_1F9C = 0;
param0->unk_1F9D = 0;
param0->unk_1F9E = param1;
param0->unk_1F9F_7 = 1;
}
void ov13_0222601C (UnkStruct_ov13_022213F0 * param0)
{
if (param0->unk_1F9F_7 == 0) {
return;
}
switch (param0->unk_1F9C) {
case 0:
ov13_02225D8C(param0, param0->unk_1F9E, 1, param0->unk_1F9F_4);
ov13_02225E08(param0, param0->unk_1F9E, 1);
ov13_02225EB8(param0, param0->unk_1F9E, 1);
param0->unk_1F9D = 0;
param0->unk_1F9C = 1;
break;
case 1:
ov13_02225D8C(param0, param0->unk_1F9E, 2, param0->unk_1F9F_4);
ov13_02225E08(param0, param0->unk_1F9E, 2);
ov13_02225EB8(param0, param0->unk_1F9E, 2);
param0->unk_1F9D = 0;
param0->unk_1F9C = 2;
break;
case 2:
ov13_02225D8C(param0, param0->unk_1F9E, 0, param0->unk_1F9F_4);
ov13_02225E08(param0, param0->unk_1F9E, 0);
ov13_02225EB8(param0, param0->unk_1F9E, 0);
param0->unk_1F9D = 0;
param0->unk_1F9F_7 = 0;
break;
}
}
void ov13_022260EC (UnkStruct_ov13_022213F0 * param0, u8 param1)
{
u16 v0, v1;
switch (param1) {
case 0:
for (v0 = 0; v0 < 6; v0++) {
v1 = ov13_022213F0(param0, v0);
if (v1 == 0) {
ov13_02225D8C(param0, 0 + v0, 3, 1);
} else if (v1 == 1) {
ov13_02225D8C(param0, 0 + v0, 0, 0);
} else if (v1 == 2) {
ov13_02225D8C(param0, 0 + v0, 0, 1);
}
}
if (param0->unk_00->unk_35 == 1) {
ov13_02225D8C(param0, 6, 3, 0);
} else {
ov13_02225D8C(param0, 6, 0, 0);
}
break;
case 1:
ov13_02225D8C(param0, 6, 0, 0);
ov13_02225D8C(param0, 7, 0, 0);
if (param0->unk_04[param0->unk_00->unk_11].unk_17_7 != 0) {
ov13_02225D8C(param0, 8, 3, 0);
ov13_02225D8C(param0, 10, 3, 0);
} else {
ov13_02225D8C(param0, 8, 0, 0);
ov13_02225D8C(param0, 10, 0, 0);
}
break;
case 2:
if (ov13_02226484(param0) == 1) {
ov13_02225D8C(param0, 12, 0, 0);
ov13_02225D8C(param0, 13, 0, 0);
} else {
ov13_02225D8C(param0, 12, 3, 0);
ov13_02225D8C(param0, 13, 3, 0);
}
ov13_02225D8C(param0, 11, 0, 0);
ov13_02225D8C(param0, 6, 0, 0);
break;
case 3:
if (ov13_02226484(param0) == 1) {
ov13_02225D8C(param0, 12, 0, 0);
ov13_02225D8C(param0, 13, 0, 0);
} else {
ov13_02225D8C(param0, 12, 3, 0);
ov13_02225D8C(param0, 13, 3, 0);
}
for (v0 = 0; v0 < 4; v0++) {
if (param0->unk_04[param0->unk_00->unk_11].unk_30[v0].unk_00 != 0) {
ov13_02225D8C(param0, 14 + v0, 0, 0);
} else {
ov13_02225D8C(param0, 14 + v0, 3, 0);
}
}
ov13_02225D8C(param0, 9, 0, 0);
ov13_02225D8C(param0, 6, 0, 0);
break;
case 4:
ov13_02225D8C(param0, 6, 0, 0);
for (v0 = 0; v0 < 4; v0++) {
if (param0->unk_00->unk_34 == v0) {
ov13_02225D8C(param0, 30 + v0, 2, 0);
} else {
ov13_02225D8C(param0, 30 + v0, 0, 0);
}
}
break;
case 5:
for (v0 = 0; v0 < 4; v0++) {
if (param0->unk_04[param0->unk_00->unk_11].unk_30[v0].unk_00 != 0) {
ov13_02225D8C(param0, 19 + v0, 0, 0);
} else {
ov13_02225D8C(param0, 19 + v0, 3, 0);
}
}
ov13_02225D8C(param0, 6, 0, 0);
break;
case 6:
case 8:
ov13_02225D8C(param0, 23, 0, 0);
ov13_02225D8C(param0, 24, 0, 0);
ov13_02225D8C(param0, 25, 0, 0);
ov13_02225D8C(param0, 26, 0, 0);
ov13_02225D8C(param0, 27, 0, 0);
ov13_02225D8C(param0, 6, 0, 0);
if (param0->unk_2073_4 == 1) {
ov13_02225D8C(param0, 18, 0, 0);
}
break;
case 7:
ov13_02225D8C(param0, 28, 0, 0);
ov13_02225D8C(param0, 6, 0, 0);
if (param0->unk_2073_4 == 1) {
ov13_02225D8C(param0, 18, 0, 0);
}
break;
case 9:
ov13_02225D8C(param0, 29, 0, 0);
ov13_02225D8C(param0, 6, 0, 0);
if (param0->unk_2073_4 == 1) {
ov13_02225D8C(param0, 18, 0, 0);
}
break;
}
}
void ov13_02226444 (UnkStruct_ov13_022213F0 * param0, u8 param1)
{
if (param1 == 3) {
sub_02002FBC(param0->unk_1E4, &param0->unk_1F5C[16], 1, 12 * 16, 0x20);
} else {
sub_02002FBC(param0->unk_1E4, &param0->unk_1F5C[0], 1, 12 * 16, 0x20);
}
}
static u8 ov13_02226484 (UnkStruct_ov13_022213F0 * param0)
{
u16 v0, v1;
v1 = 0;
for (v0 = 0; v0 < 6; v0++) {
if ((param0->unk_04[v0].unk_04 != 0) && (param0->unk_04[v0].unk_17_7 == 0)) {
v1++;
}
}
if (v1 >= 2) {
return 1;
}
return 0;
}
void ov13_022264C4 (UnkStruct_ov13_022213F0 * param0)
{
if (ov13_022213F0(param0, param0->unk_00->unk_11) == 2) {
ov13_02225D8C(param0, 0 + param0->unk_00->unk_11, 0, 1);
} else {
ov13_02225D8C(param0, 0 + param0->unk_00->unk_11, 0, 0);
}
}

View File

@@ -0,0 +1,848 @@
#include <nitro.h>
#include <string.h>
#include "data_021BF67C.h"
#include "struct_decls/struct_02006C24_decl.h"
#include "struct_decls/struct_0200B144_decl.h"
#include "struct_decls/struct_02018340_decl.h"
#include "struct_decls/struct_0201CD38_decl.h"
#include "struct_decls/struct_02023790_decl.h"
#include "struct_decls/struct_02073C74_decl.h"
#include "struct_decls/struct_020797DC_decl.h"
#include "struct_decls/struct_02079FF4_decl.h"
#include "struct_decls/struct_0207ADB4_decl.h"
#include "struct_decls/struct_0207D99C_decl.h"
#include "struct_defs/union_02022594_020225E0.h"
#include "overlay013/struct_ov13_022264F4.h"
#include "overlay013/struct_ov13_02227244.h"
#include "overlay084/struct_ov84_0223BA5C.h"
#include "overlay097/struct_ov97_0222DB78.h"
#include "unk_02002B7C.h"
#include "unk_02002F38.h"
#include "unk_02005474.h"
#include "unk_0200679C.h"
#include "unk_020068C8.h"
#include "unk_02006E3C.h"
#include "unk_0200AC5C.h"
#include "unk_0200B358.h"
#include "unk_0200C440.h"
#include "unk_0200C6E4.h"
#include "unk_0200DA60.h"
#include "unk_02017E74.h"
#include "unk_02018340.h"
#include "unk_0201CCF0.h"
#include "unk_0201D670.h"
#include "unk_0201FE94.h"
#include "unk_02022594.h"
#include "unk_02023790.h"
#include "unk_02073C2C.h"
#include "unk_020797C8.h"
#include "unk_02079FEC.h"
#include "unk_0207CDEC.h"
#include "unk_0207D3B8.h"
#include "overlay013/ov13_022264F4.h"
#include "overlay013/ov13_02227288.h"
#include "overlay013/ov13_02227A4C.h"
#include "overlay013/ov13_02227BDC.h"
#include "overlay013/ov13_02228128.h"
#include "overlay013/ov13_02228A38.h"
#include "overlay016/ov16_0223DF00.h"
#include "overlay016/ov16_0225177C.h"
#include "overlay016/ov16_0226DE44.h"
static void ov13_02226590(UnkStruct_0201CD38 * param0, void * param1);
static u8 ov13_0222668C(UnkStruct_ov13_02227244 * param0);
static u8 ov13_02226760(UnkStruct_ov13_02227244 * param0);
static u8 ov13_02226838(UnkStruct_ov13_02227244 * param0);
static u8 ov13_022269C0(UnkStruct_ov13_02227244 * param0);
static u8 ov13_02226C48(UnkStruct_ov13_02227244 * param0);
static u8 ov13_02226C54(UnkStruct_ov13_02227244 * param0);
static u8 ov13_02226C60(UnkStruct_ov13_02227244 * param0);
static u8 ov13_02226948(UnkStruct_ov13_02227244 * param0);
static u8 ov13_02226C6C(UnkStruct_ov13_02227244 * param0);
static u8 ov13_02226C7C(UnkStruct_ov13_02227244 * param0);
static u8 ov13_02226C94(UnkStruct_ov13_02227244 * param0);
static u8 ov13_02226CBC(UnkStruct_ov13_02227244 * param0);
static u8 ov13_02226D94(UnkStruct_ov13_02227244 * param0);
static u8 ov13_02226CD4(UnkStruct_ov13_02227244 * param0);
static u8 ov13_02226CFC(UnkStruct_0201CD38 * param0, UnkStruct_ov13_02227244 * param1);
static void ov13_02226ED0(UnkStruct_ov13_02227244 * param0);
static void ov13_02226F9C(UnkStruct_02018340 * param0);
static void ov13_02226FC4(UnkStruct_ov13_02227244 * param0);
static void ov13_022270B8(UnkStruct_ov13_02227244 * param0);
static void ov13_022270F8(UnkStruct_ov13_02227244 * param0);
static u8 ov13_02226A5C(UnkStruct_ov13_02227244 * param0);
static void ov13_02227118(UnkStruct_ov13_02227244 * param0, u8 param1);
static void ov13_022271D0(UnkStruct_ov13_02227244 * param0, u8 param1);
static int ov13_02227238(UnkStruct_ov13_02227244 * param0, const UnkUnion_02022594 * param1);
static void ov13_02227260(UnkStruct_0207ADB4 * param0, u16 param1, u16 param2, u32 param3);
static const UnkUnion_02022594 Unk_ov13_02229A1C[] = {
{0x8, 0x4F, 0x0, 0x7F},
{0x50, 0x97, 0x0, 0x7F},
{0x8, 0x4F, 0x80, 0xFF},
{0x50, 0x97, 0x80, 0xFF},
{0x98, 0xBF, 0x0, 0xCF},
{0x98, 0xBF, 0xD8, 0xFF},
{0xFF, 0x0, 0x0, 0x0}
};
static const UnkUnion_02022594 Unk_ov13_02229A38[] = {
{0x8, 0x37, 0x0, 0x7F},
{0x8, 0x37, 0x80, 0xFF},
{0x38, 0x67, 0x0, 0x7F},
{0x38, 0x67, 0x80, 0xFF},
{0x68, 0x97, 0x0, 0x7F},
{0x68, 0x97, 0x80, 0xFF},
{0x98, 0xBF, 0x0, 0x27},
{0x98, 0xBF, 0x28, 0x4F},
{0x98, 0xBF, 0xD8, 0xFF},
{0xFF, 0x0, 0x0, 0x0}
};
static const UnkUnion_02022594 Unk_ov13_022299AC[] = {
{0x98, 0xBF, 0x0, 0xCF},
{0x98, 0xBF, 0xD8, 0xFF},
{0xFF, 0x0, 0x0, 0x0}
};
void ov13_022264F4 (UnkStruct_ov13_022264F4 * param0)
{
UnkStruct_ov13_02227244 * v0;
v0 = sub_0201CED0(sub_0200679C(ov13_02226590, sizeof(UnkStruct_ov13_02227244), 100, param0->unk_0C));
memset(v0, 0, sizeof(UnkStruct_ov13_02227244));
v0->unk_00 = param0;
v0->unk_04 = ov16_0223DF00(param0->unk_00);
v0->unk_08 = ov16_0223E064(param0->unk_00);
v0->unk_114A = 0;
{
UnkStruct_0207D99C * v1;
u8 v2;
v1 = ov16_0223E1B0(param0->unk_00);
for (v2 = 0; v2 < 5; v2++) {
sub_0207D9D8(v1, v2, &v0->unk_00->unk_27[v2], &v0->unk_00->unk_2C[v2]);
}
v0->unk_00->unk_20 = sub_0207D9E4(v1);
v0->unk_00->unk_1F = sub_0207D9E8(v1);
}
ov13_02227A4C(v0);
if (ov16_0223DF0C(v0->unk_00->unk_00) & 0x400) {
v0->unk_00->unk_14 = 1;
}
}
static void ov13_02226590 (UnkStruct_0201CD38 * param0, void * param1)
{
UnkStruct_ov13_02227244 * v0 = (UnkStruct_ov13_02227244 *)param1;
switch (v0->unk_114A) {
case 0:
v0->unk_114A = ov13_0222668C(v0);
break;
case 1:
v0->unk_114A = ov13_02226760(v0);
break;
case 2:
v0->unk_114A = ov13_02226838(v0);
break;
case 3:
v0->unk_114A = ov13_022269C0(v0);
break;
case 4:
v0->unk_114A = ov13_02226C48(v0);
break;
case 5:
v0->unk_114A = ov13_02226C54(v0);
break;
case 6:
v0->unk_114A = ov13_02226C60(v0);
break;
case 7:
v0->unk_114A = ov13_02226948(v0);
break;
case 8:
v0->unk_114A = ov13_02226C6C(v0);
break;
case 9:
v0->unk_114A = ov13_02226C7C(v0);
break;
case 10:
v0->unk_114A = ov13_02226C94(v0);
break;
case 11:
v0->unk_114A = ov13_02226CBC(v0);
break;
case 12:
v0->unk_114A = ov13_02226D94(v0);
break;
case 13:
v0->unk_114A = ov13_02226CD4(v0);
break;
case 14:
if (ov13_02226CFC(param0, v0) == 1) {
return;
}
}
ov13_02228848(v0);
sub_0200C7EC(v0->unk_30C);
}
static u8 ov13_0222668C (UnkStruct_ov13_02227244 * param0)
{
G2S_BlendNone();
param0->unk_34 = ov13_02228A38(param0->unk_00->unk_0C);
ov13_02226ED0(param0);
ov13_02226FC4(param0);
ov13_022270B8(param0);
sub_02002BB8(2, param0->unk_00->unk_0C);
param0->unk_114D = (u8)sub_0207D9EC(ov16_0223E1B0(param0->unk_00->unk_00));
ov13_02227AC8(param0);
ov13_02228924(param0, param0->unk_114C);
ov13_02227288(param0);
ov13_02227350(param0, param0->unk_114C);
ov13_02227BDC(param0);
ov13_02227E68(param0, param0->unk_114C);
if (param0->unk_00->unk_25 != 0) {
ov13_02228A60(param0->unk_34, 1);
}
ov13_02228008(param0, param0->unk_114C);
ov13_022280F0(param0, param0->unk_114C);
sub_02003178(param0->unk_08, (0x2 | 0x8), 0xffff, -8, 16, 0, 0);
if (param0->unk_00->unk_14 == 1) {
return 12;
}
return 1;
}
static u8 ov13_02226760 (UnkStruct_ov13_02227244 * param0)
{
if (sub_0200384C(param0->unk_08) != 0) {
return 1;
}
{
int v0 = ov13_02227238(param0, Unk_ov13_02229A1C);
if (v0 == 0xffffffff) {
v0 = ov13_02228B64(param0->unk_34);
if (v0 == 0xfffffffe) {
v0 = 5;
}
} else {
ov13_02228050(param0);
}
switch (v0) {
case 0:
case 1:
case 2:
case 3:
sub_02005748(1501);
param0->unk_114D = (u8)v0;
param0->unk_114B = 5;
ov13_0222880C(param0, 0 + v0 - 0, 0);
return 11;
case 4:
if (param0->unk_00->unk_20 != 0) {
sub_02005748(1501);
param0->unk_114D = param0->unk_00->unk_1F;
param0->unk_114B = 6;
ov13_02227A7C(param0);
ov13_0222880C(param0, 4, 0);
return 11;
}
break;
case 5:
sub_02005748(1501);
param0->unk_00->unk_1C = 0;
param0->unk_00->unk_1E = 4;
ov13_0222880C(param0, 5, 0);
return 13;
}
}
return 1;
}
static u8 ov13_02226838 (UnkStruct_ov13_02227244 * param0)
{
{
int v0 = ov13_02227238(param0, Unk_ov13_02229A38);
if (v0 == 0xffffffff) {
v0 = ov13_02228B64(param0->unk_34);
if (v0 == 0xfffffffe) {
v0 = 8;
}
} else {
ov13_02228050(param0);
}
switch (v0) {
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
if (ov13_02227BA8(param0, v0) != 0) {
sub_02005748(1501);
param0->unk_00->unk_27[param0->unk_114D] = (u8)v0;
param0->unk_114B = 6;
ov13_0222880C(param0, 6 + v0, 0);
return 11;
}
break;
case 6:
if (param0->unk_1154[param0->unk_114D] != 0) {
sub_02005748(1501);
param0->unk_114B = 7;
param0->unk_114E = -1;
ov13_0222880C(param0, 12, 0);
return 11;
}
break;
case 7:
if (param0->unk_1154[param0->unk_114D] != 0) {
sub_02005748(1501);
param0->unk_114B = 7;
param0->unk_114E = 1;
ov13_0222880C(param0, 13, 0);
return 11;
}
break;
case 8:
sub_02005748(1501);
param0->unk_114B = 4;
ov13_0222880C(param0, 14, 0);
return 11;
}
}
return 2;
}
static u8 ov13_02226948 (UnkStruct_ov13_02227244 * param0)
{
s8 v0 = param0->unk_00->unk_2C[param0->unk_114D];
param0->unk_00->unk_27[param0->unk_114D] = 0;
v0 += param0->unk_114E;
if (v0 > param0->unk_1154[param0->unk_114D]) {
param0->unk_00->unk_2C[param0->unk_114D] = 0;
} else if (v0 < 0) {
param0->unk_00->unk_2C[param0->unk_114D] = param0->unk_1154[param0->unk_114D];
} else {
param0->unk_00->unk_2C[param0->unk_114D] = v0;
}
ov13_02227650(param0);
ov13_02227698(param0);
ov13_02227E68(param0, param0->unk_114C);
ov13_02228924(param0, param0->unk_114C);
return 2;
}
static u8 ov13_022269C0 (UnkStruct_ov13_02227244 * param0)
{
{
int v0 = ov13_02227238(param0, Unk_ov13_022299AC);
if (v0 == 0xffffffff) {
v0 = ov13_02228B64(param0->unk_34);
if (v0 == 0xfffffffe) {
v0 = 1;
}
} else {
ov13_02228050(param0);
}
switch (v0) {
case 0:
sub_02005748(1501);
param0->unk_00->unk_1C = ov13_02227BA8(param0, param0->unk_00->unk_27[param0->unk_114D]);
param0->unk_00->unk_1E = param0->unk_114D;
ov13_0222880C(param0, 15, 0);
return ov13_02226A5C(param0);
case 1:
sub_02005748(1501);
param0->unk_114B = 5;
ov13_0222880C(param0, 16, 0);
return 11;
}
}
return 3;
}
static u8 ov13_02226A5C (UnkStruct_ov13_02227244 * param0)
{
UnkStruct_ov13_022264F4 * v0 = param0->unk_00;
if (param0->unk_114D == 3) {
int v1 = ov13_02227244(param0);
u32 v2 = sub_0207CFF0(v0->unk_1C, 7, v0->unk_0C);
if ((v0->unk_18 != 0) && (v0->unk_1C != 55) && (v2 != 3)) {
UnkStruct_02073C74 * v3;
UnkStruct_02023790 * v4;
v3 = ov16_0223DFAC(v0->unk_00, v0->unk_10, v1);
v4 = sub_0200B1EC(param0->unk_10, 46);
sub_0200B5CC(param0->unk_14, 0, sub_02076B10(v3));
sub_0200B630(param0->unk_14, 1, 373);
sub_0200C388(param0->unk_14, param0->unk_18, v4);
sub_020237BC(v4);
ov13_022279F4(param0);
param0->unk_114B = 8;
return 9;
}
if (ov16_0223E30C(v0->unk_00, v0->unk_10, v1, 0, v0->unk_1C) == 1) {
ov13_02227260(v0->unk_00, v0->unk_1C, param0->unk_114D, v0->unk_0C);
return 13;
} else if (v2 == 3) {
if (!(ov16_0223DF0C(v0->unk_00) & 0x1)) {
ov13_02227260(v0->unk_00, v0->unk_1C, param0->unk_114D, v0->unk_0C);
return 13;
} else {
UnkStruct_0200B144 * v5;
UnkStruct_02023790 * v6;
v5 = sub_0200B144(1, 26, 213, v0->unk_0C);
v6 = sub_0200B1EC(v5, 36);
sub_0200B498(param0->unk_14, 0, v0->unk_04);
sub_0200C388(param0->unk_14, param0->unk_18, v6);
sub_020237BC(v6);
sub_0200B190(v5);
ov13_022279F4(param0);
param0->unk_114B = 8;
return 9;
}
} else {
sub_0200B1B8(param0->unk_10, 34, param0->unk_18);
ov13_022279F4(param0);
param0->unk_114B = 8;
return 9;
}
} else if (param0->unk_114D == 2) {
if (v0->unk_22 == 1) {
sub_0200B1B8(param0->unk_10, 44, param0->unk_18);
ov13_022279F4(param0);
param0->unk_114B = 8;
return 9;
}
if (v0->unk_23 == 1) {
sub_0200B1B8(param0->unk_10, 47, param0->unk_18);
ov13_022279F4(param0);
param0->unk_114B = 8;
return 9;
}
if (v0->unk_24 == 1) {
sub_0200B1B8(param0->unk_10, 48, param0->unk_18);
ov13_022279F4(param0);
param0->unk_114B = 8;
return 9;
}
{
UnkStruct_02079FF4 * v7 = ov16_0223DF20(v0->unk_00, v0->unk_10);
UnkStruct_020797DC * v8 = ov16_0223E228(v0->unk_00);
if ((sub_0207A0F8(v7) == 6) && (sub_020799A0(v8) == 18)) {
sub_0200B1B8(param0->unk_10, 45, param0->unk_18);
ov13_022279F4(param0);
param0->unk_114B = 8;
return 9;
}
}
}
return 13;
}
static u8 ov13_02226C48 (UnkStruct_ov13_02227244 * param0)
{
ov13_022271D0(param0, 0);
return 1;
}
static u8 ov13_02226C54 (UnkStruct_ov13_02227244 * param0)
{
ov13_022271D0(param0, 1);
return 2;
}
static u8 ov13_02226C60 (UnkStruct_ov13_02227244 * param0)
{
ov13_022271D0(param0, 2);
return 3;
}
static u8 ov13_02226C6C (UnkStruct_ov13_02227244 * param0)
{
sub_0200E084(&param0->unk_1C, 0);
return 3;
}
static u8 ov13_02226C7C (UnkStruct_ov13_02227244 * param0)
{
if (sub_0201D724(param0->unk_32) == 0) {
return 10;
}
return 9;
}
static u8 ov13_02226C94 (UnkStruct_ov13_02227244 * param0)
{
if ((Unk_021BF67C.unk_48 & (PAD_BUTTON_A | PAD_BUTTON_B)) || (sub_02022798() == 1)) {
return param0->unk_114B;
}
return 10;
}
static u8 ov13_02226CBC (UnkStruct_ov13_02227244 * param0)
{
if (param0->unk_113E == 2) {
return param0->unk_114B;
}
return 11;
}
static u8 ov13_02226CD4 (UnkStruct_ov13_02227244 * param0)
{
sub_02003178(param0->unk_08, (0x2 | 0x8), 0xffff, -8, 0, 16, 0);
return 14;
}
static u8 ov13_02226CFC (UnkStruct_0201CD38 * param0, UnkStruct_ov13_02227244 * param1)
{
if (sub_0200384C(param1->unk_08) != 0) {
return 0;
}
ov13_02227E08(param1);
ov13_02227334(param1);
ov13_022270F8(param1);
ov13_02226F9C(param1->unk_04);
param1->unk_00->unk_25 = ov13_02228A5C(param1->unk_34);
ov13_02228A50(param1->unk_34);
sub_02002C60(2);
if (param1->unk_00->unk_1C != 0) {
UnkStruct_0207D99C * v0;
u8 v1;
v0 = ov16_0223E1B0(param1->unk_00->unk_00);
for (v1 = 0; v1 < 5; v1++) {
sub_0207D9F0(v0, v1, param1->unk_00->unk_27[v1], param1->unk_00->unk_2C[v1]);
}
sub_0207DA24(v0, param1->unk_114D);
}
param1->unk_00->unk_26 = 1;
sub_020067D0(param0);
return 1;
}
static u8 ov13_02226D94 (UnkStruct_ov13_02227244 * param0)
{
if (sub_0200384C(param0->unk_08) != 0) {
return 12;
}
switch (param0->unk_1159) {
case 0:
if (ov16_0226DFD4(param0->unk_38) == 1) {
sub_02005748(1501);
param0->unk_114D = 2;
param0->unk_114B = 12;
ov13_0222880C(param0, 2, 0);
param0->unk_115A = 0;
param0->unk_1159++;
return 11;
} else {
param0->unk_115A++;
}
break;
case 1:
ov13_02226C54(param0);
param0->unk_1159++;
break;
case 2:
if (ov16_0226DFD4(param0->unk_38) == 1) {
sub_02005748(1501);
param0->unk_00->unk_27[param0->unk_114D] = 0;
param0->unk_114B = 12;
ov13_0222880C(param0, 6, 0);
param0->unk_115A = 0;
param0->unk_1159++;
return 11;
} else {
param0->unk_115A++;
}
break;
case 3:
ov13_02226C60(param0);
param0->unk_1159++;
break;
case 4:
if (ov16_0226DFD4(param0->unk_38) == 1) {
sub_02005748(1501);
param0->unk_00->unk_1C = ov13_02227BA8(param0, param0->unk_00->unk_27[param0->unk_114D]);
param0->unk_00->unk_1E = param0->unk_114D;
ov13_0222880C(param0, 15, 0);
return ov13_02226A5C(param0);
} else {
param0->unk_115A++;
}
break;
}
return 12;
}
static void ov13_02226ED0 (UnkStruct_ov13_02227244 * param0)
{
{
UnkStruct_ov84_0223BA5C v0 = {
GX_DISPMODE_GRAPHICS,
GX_BGMODE_0,
GX_BGMODE_0,
GX_BG0_AS_3D,
};
sub_020183A0(&v0, 1);
}
{
UnkStruct_ov97_0222DB78 v1 = {
0,
0,
0x2000,
0,
4,
GX_BG_COLORMODE_16,
GX_BG_SCRBASE_0xd000,
GX_BG_CHARBASE_0x00000,
GX_BG_EXTPLTT_23,
3,
0,
0,
0
};
sub_020183C4(param0->unk_04, 6, &v1, 0);
}
{
UnkStruct_ov97_0222DB78 v2 = {
0,
0,
0x800,
0,
1,
GX_BG_COLORMODE_16,
GX_BG_SCRBASE_0xf800,
GX_BG_CHARBASE_0x10000,
GX_BG_EXTPLTT_01,
1,
0,
0,
0
};
sub_020183C4(param0->unk_04, 5, &v2, 0);
sub_02019EBC(param0->unk_04, 5);
}
{
UnkStruct_ov97_0222DB78 v3 = {
0,
0,
0x800,
0,
1,
GX_BG_COLORMODE_16,
GX_BG_SCRBASE_0xf000,
GX_BG_CHARBASE_0x00000,
GX_BG_EXTPLTT_01,
0,
0,
0,
0
};
sub_020183C4(param0->unk_04, 4, &v3, 0);
sub_02019EBC(param0->unk_04, 4);
}
sub_02019690(5, 32, 0, param0->unk_00->unk_0C);
sub_02019690(4, 32, 0, param0->unk_00->unk_0C);
sub_0201C3C0(param0->unk_04, 5);
sub_0201C3C0(param0->unk_04, 4);
}
static void ov13_02226F9C (UnkStruct_02018340 * param0)
{
sub_0201FF74(GX_PLANEMASK_BG0 | GX_PLANEMASK_BG1 | GX_PLANEMASK_BG2 | GX_PLANEMASK_OBJ, 0);
sub_02019044(param0, 4);
sub_02019044(param0, 5);
sub_02019044(param0, 6);
}
static void ov13_02226FC4 (UnkStruct_ov13_02227244 * param0)
{
UnkStruct_02006C24 * v0;
v0 = sub_02006C24(77, param0->unk_00->unk_0C);
sub_020070E8(v0, 2, param0->unk_04, 6, 0, 0, 0, param0->unk_00->unk_0C);
sub_0200710C(v0, 0, param0->unk_04, 6, 0, 0, 0, param0->unk_00->unk_0C);
{
NNSG2dScreenData * v1;
void * v2;
u16 * v3;
v2 = sub_02006CB8(v0, 1, param0->unk_00->unk_0C);
NNS_G2dGetUnpackedScreenData(v2, &v1);
v3 = (u16 *)v1->rawData;
ov13_02228128(param0, v3);
sub_020181C4(v2);
}
sub_02006CA8(v0);
sub_02003050(param0->unk_08, 77, 3, param0->unk_00->unk_0C, 1, 0x20 * 12, 0);
sub_02003050(param0->unk_08, 14, 7, param0->unk_00->unk_0C, 1, 0x20, 15 * 16);
{
int v4 = ov16_0223EDE0(param0->unk_00->unk_00);
sub_02006E3C(38, sub_0200DD04(v4), param0->unk_04, 4, 1024 - (18 + 12), 0, 0, param0->unk_00->unk_0C);
sub_02003050(param0->unk_08, 38, sub_0200DD08(v4), param0->unk_00->unk_0C, 1, 0x20, 14 * 16);
}
}
static void ov13_022270B8 (UnkStruct_ov13_02227244 * param0)
{
param0->unk_10 = sub_0200B144(0, 26, 2, param0->unk_00->unk_0C);
param0->unk_0C = sub_0200C440(15, 14, 0, param0->unk_00->unk_0C);
param0->unk_14 = sub_0200B358(param0->unk_00->unk_0C);
param0->unk_18 = sub_02023790(512, param0->unk_00->unk_0C);
}
static void ov13_022270F8 (UnkStruct_ov13_02227244 * param0)
{
sub_0200B190(param0->unk_10);
sub_0200C560(param0->unk_0C);
sub_0200B3F0(param0->unk_14);
sub_020237BC(param0->unk_18);
}
static void ov13_02227118 (UnkStruct_ov13_02227244 * param0, u8 param1)
{
switch (param1) {
case 0:
sub_0201C63C(param0->unk_04, 6, 0, 0);
sub_0201C63C(param0->unk_04, 6, 3, 0);
break;
case 1:
sub_0201C63C(param0->unk_04, 6, 0, 256);
sub_0201C63C(param0->unk_04, 6, 3, 0);
break;
case 2:
sub_0201C63C(param0->unk_04, 6, 0, 0);
sub_0201C63C(param0->unk_04, 6, 3, 256);
break;
}
}
static void ov13_0222717C (UnkStruct_ov13_02227244 * param0, u8 param1)
{
if (param1 != 2) {
return;
}
sub_02019E2C(param0->unk_04, 6, 2, 35, 28, 4, 8 + param0->unk_114D);
sub_02019E2C(param0->unk_04, 6, 2, 40, 28, 8, 8 + param0->unk_114D);
}
static void ov13_022271D0 (UnkStruct_ov13_02227244 * param0, u8 param1)
{
ov13_0222717C(param0, param1);
ov13_02227118(param0, param1);
sub_02019F04(param0->unk_04, 4, 0);
sub_02019F04(param0->unk_04, 5, 0);
ov13_02227324(param0);
ov13_022272AC(param0, param1);
ov13_02227350(param0, param1);
ov13_02228924(param0, param1);
ov13_02228008(param0, param1);
ov13_022280F0(param0, param1);
param0->unk_114C = param1;
ov13_02227E68(param0, param0->unk_114C);
}
static int ov13_02227238 (UnkStruct_ov13_02227244 * param0, const UnkUnion_02022594 * param1)
{
int v0 = sub_02022664(param1);
return v0;
}
int ov13_02227244 (UnkStruct_ov13_02227244 * param0)
{
int v0;
v0 = ov16_0225B45C(param0->unk_00->unk_00, ov16_0223DF10(param0->unk_00->unk_00), 2, param0->unk_00->unk_10);
return v0;
}
static void ov13_02227260 (UnkStruct_0207ADB4 * param0, u16 param1, u16 param2, u32 param3)
{
sub_0207D60C(ov16_0223E1AC(param0), param1, 1, param3);
sub_0207DA1C(ov16_0223E1B0(param0), param1, param2);
}

View File

@@ -0,0 +1,389 @@
#include <nitro.h>
#include <string.h>
#include "struct_decls/struct_02023790_decl.h"
#include "struct_defs/struct_0205AA50.h"
#include "overlay013/struct_ov13_02227244.h"
#include "overlay061/struct_ov61_0222C884.h"
#include "unk_02002328.h"
#include "unk_02002B7C.h"
#include "unk_0200AC5C.h"
#include "unk_0200B358.h"
#include "unk_0200DA60.h"
#include "unk_02018340.h"
#include "unk_0201D670.h"
#include "unk_02023790.h"
#include "unk_0207CDEC.h"
#include "overlay013/ov13_02227288.h"
#include "overlay016/ov16_0223DF00.h"
static void ov13_022273CC(UnkStruct_ov13_02227244 * param0);
static void ov13_02227888(UnkStruct_ov13_02227244 * param0);
static void ov13_02227974(UnkStruct_ov13_02227244 * param0);
static const UnkStruct_ov61_0222C884 Unk_ov13_02229A60 = {
0x4,
0x2,
0x13,
0x1B,
0x4,
0xF,
0x376
};
static const UnkStruct_ov61_0222C884 Unk_ov13_02229A88[] = {
{0x4, 0x2, 0x4, 0xC, 0x5, 0x0, 0x2CE},
{0x4, 0x2, 0xD, 0xC, 0x5, 0x0, 0x30A},
{0x4, 0x12, 0x5, 0xC, 0x3, 0x0, 0x286},
{0x4, 0x12, 0xE, 0xC, 0x3, 0x0, 0x2AA},
{0x4, 0x5, 0x14, 0x14, 0x3, 0x0, 0x24A}
};
static const UnkStruct_ov61_0222C884 Unk_ov13_02229AE0[] = {
{0x5, 0x1, 0x1, 0xE, 0x3, 0x0, 0x1},
{0x5, 0x8, 0x4, 0x4, 0x3, 0x4, 0x2B},
{0x5, 0x11, 0x1, 0xE, 0x3, 0x0, 0x37},
{0x5, 0x18, 0x4, 0x4, 0x3, 0x4, 0x61},
{0x5, 0x1, 0x7, 0xE, 0x3, 0x0, 0x6D},
{0x5, 0x8, 0xA, 0x4, 0x3, 0x4, 0x97},
{0x5, 0x11, 0x7, 0xE, 0x3, 0x0, 0xA3},
{0x5, 0x18, 0xA, 0x4, 0x3, 0x4, 0xCD},
{0x5, 0x1, 0xD, 0xE, 0x3, 0x0, 0xD9},
{0x5, 0x8, 0x10, 0x4, 0x3, 0x4, 0x103},
{0x5, 0x11, 0xD, 0xE, 0x3, 0x0, 0x10F},
{0x5, 0x18, 0x10, 0x4, 0x3, 0x4, 0x139},
{0x5, 0x1, 0x1, 0xE, 0x3, 0x0, 0x145},
{0x5, 0x8, 0x4, 0x4, 0x3, 0x4, 0x16F},
{0x5, 0x11, 0x1, 0xE, 0x3, 0x0, 0x17B},
{0x5, 0x18, 0x4, 0x4, 0x3, 0x4, 0x1A5},
{0x5, 0x1, 0x7, 0xE, 0x3, 0x0, 0x1B1},
{0x5, 0x8, 0xA, 0x4, 0x3, 0x4, 0x1DB},
{0x5, 0x11, 0x7, 0xE, 0x3, 0x0, 0x1E7},
{0x5, 0x18, 0xA, 0x4, 0x3, 0x4, 0x211},
{0x5, 0x1, 0xD, 0xE, 0x3, 0x0, 0x21D},
{0x5, 0x8, 0x10, 0x4, 0x3, 0x4, 0x247},
{0x5, 0x11, 0xD, 0xE, 0x3, 0x0, 0x253},
{0x5, 0x18, 0x10, 0x4, 0x3, 0x4, 0x27D},
{0x5, 0xB, 0x13, 0xA, 0x5, 0x4, 0x289},
{0x5, 0x16, 0x14, 0x4, 0x3, 0x4, 0x2BB}
};
static const UnkStruct_ov61_0222C884 Unk_ov13_02229A68[] = {
{0x5, 0x7, 0x4, 0xC, 0x2, 0x4, 0x2C7},
{0x5, 0x14, 0x4, 0x4, 0x2, 0x4, 0x2DF},
{0x5, 0x2, 0x9, 0x1C, 0x6, 0x4, 0x2E7},
{0x5, 0xA, 0x14, 0x6, 0x3, 0x0, 0x38F}
};
void ov13_02227288 (UnkStruct_ov13_02227244 * param0)
{
sub_0201A8D4(param0->unk_04, &param0->unk_1C, &Unk_ov13_02229A60);
ov13_022272AC(param0, param0->unk_114C);
}
void ov13_022272AC (UnkStruct_ov13_02227244 * param0, u32 param1)
{
const UnkStruct_ov61_0222C884 * v0;
u8 v1;
switch (param1) {
case 0:
v0 = Unk_ov13_02229A88;
param0->unk_30 = 5;
break;
case 1:
v0 = Unk_ov13_02229AE0;
param0->unk_30 = 26;
break;
case 2:
v0 = Unk_ov13_02229A68;
param0->unk_30 = 4;
break;
}
param0->unk_2C = sub_0201A778(param0->unk_00->unk_0C, param0->unk_30);
for (v1 = 0; v1 < param0->unk_30; v1++) {
sub_0201A8D4(param0->unk_04, &param0->unk_2C[v1], &v0[v1]);
}
}
void ov13_02227324 (UnkStruct_ov13_02227244 * param0)
{
sub_0201A928(param0->unk_2C, param0->unk_30);
}
void ov13_02227334 (UnkStruct_ov13_02227244 * param0)
{
u32 v0;
sub_0201A928(param0->unk_2C, param0->unk_30);
sub_0201A8FC(&param0->unk_1C);
}
void ov13_02227350 (UnkStruct_ov13_02227244 * param0, u32 param1)
{
switch (param1) {
case 0:
ov13_022273CC(param0);
break;
case 1:
ov13_02227888(param0);
break;
case 2:
ov13_02227974(param0);
break;
}
}
static void ov13_02227374 (UnkStruct_ov13_02227244 * param0, u32 param1, u32 param2, u32 param3, u32 param4, u32 param5)
{
UnkStruct_0205AA50 * v0;
UnkStruct_02023790 * v1;
u32 v2;
u32 v3;
v0 = &param0->unk_2C[param1];
v1 = sub_0200B1EC(param0->unk_10, param2);
v2 = sub_02002D7C(param3, v1, 0);
v3 = (sub_0201C294(v0) * 8 - v2) / 2;
sub_0201D78C(v0, param3, v1, v3, param4, 0xff, param5, NULL);
sub_020237BC(v1);
sub_0201A9A4(v0);
}
static void ov13_022273CC (UnkStruct_ov13_02227244 * param0)
{
u32 v0;
for (v0 = 0; v0 < 5; v0++) {
sub_0201ADA4(&param0->unk_2C[v0], 0);
}
ov13_02227374(param0, 0, 0, 2, 8, ((u32)(((3 & 0xff) << 16) | ((2 & 0xff) << 8) | ((1 & 0xff) << 0))));
ov13_02227374(param0, 0, 1, 2, 24, ((u32)(((3 & 0xff) << 16) | ((2 & 0xff) << 8) | ((1 & 0xff) << 0))));
ov13_02227374(param0, 1, 2, 2, 8, ((u32)(((3 & 0xff) << 16) | ((2 & 0xff) << 8) | ((1 & 0xff) << 0))));
ov13_02227374(param0, 1, 3, 2, 24, ((u32)(((3 & 0xff) << 16) | ((2 & 0xff) << 8) | ((1 & 0xff) << 0))));
ov13_02227374(param0, 2, 7, 2, 8, ((u32)(((3 & 0xff) << 16) | ((2 & 0xff) << 8) | ((1 & 0xff) << 0))));
ov13_02227374(param0, 3, 6, 2, 8, ((u32)(((3 & 0xff) << 16) | ((2 & 0xff) << 8) | ((1 & 0xff) << 0))));
if (param0->unk_00->unk_20 != 0) {
UnkStruct_02023790 * v1 = sub_0200B1EC(param0->unk_10, 8);
sub_0201D78C(&param0->unk_2C[4], 2, v1, 0, 6, 0xff, ((u32)(((3 & 0xff) << 16) | ((2 & 0xff) << 8) | ((1 & 0xff) << 0))), NULL);
sub_020237BC(v1);
sub_0201A9A4(&param0->unk_2C[4]);
}
}
static const u32 Unk_ov13_02229AB0[][2] = {
{0x9, 0xA},
{0xB, 0xC},
{0xD, 0xE},
{0xF, 0x10},
{0x11, 0x12},
{0x13, 0x14}
};
static void ov13_022274A8 (UnkStruct_ov13_02227244 * param0, u32 param1, u32 param2, u32 param3, u32 param4, u32 param5)
{
UnkStruct_0205AA50 * v0;
UnkStruct_02023790 * v1;
u32 v2;
u32 v3;
v0 = &param0->unk_2C[param3];
sub_0201ADA4(v0, 0);
if (param0->unk_3C[param0->unk_114D][param1].unk_00 != 0) {
v1 = sub_0200B1EC(param0->unk_10, Unk_ov13_02229AB0[param2][0]);
sub_0200B70C(param0->unk_14, 0, param0->unk_3C[param0->unk_114D][param1].unk_00);
sub_0200C388(param0->unk_14, param0->unk_18, v1);
v2 = sub_02002D7C(param4, param0->unk_18, 0);
v3 = (sub_0201C294(v0) * 8 - v2) / 2;
sub_0201D78C(v0, param4, param0->unk_18, v3, 8, 0xff, param5, NULL);
sub_020237BC(v1);
}
sub_0201A9A4(v0);
}
static void ov13_0222754C (UnkStruct_ov13_02227244 * param0, u32 param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6)
{
UnkStruct_02023790 * v0;
UnkStruct_0205AA50 * v1;
v1 = &param0->unk_2C[param3];
sub_0201ADA4(v1, 0);
if (param0->unk_3C[param0->unk_114D][param1].unk_02 != 0) {
v0 = sub_0200B1EC(param0->unk_10, Unk_ov13_02229AB0[param2][1]);
sub_0200B60C(param0->unk_14, 0, param0->unk_3C[param0->unk_114D][param1].unk_02, 3, 0, 1);
sub_0200C388(param0->unk_14, param0->unk_18, v0);
sub_0201D78C(v1, param4, param0->unk_18, 0, param5, 0xff, param6, NULL);
sub_020237BC(v0);
}
sub_0201A9A4(v1);
}
static void ov13_022275E0 (UnkStruct_ov13_02227244 * param0, u32 param1)
{
u32 v0;
u32 v1;
v1 = param0->unk_00->unk_2C[param0->unk_114D] * 6 + param1;
if (param0->unk_31 == 0) {
v0 = 0;
} else {
v0 = 12;
}
ov13_022274A8(param0, v1, param1, v0 + param1 * 2, 2, ((u32)(((3 & 0xff) << 16) | ((2 & 0xff) << 8) | ((1 & 0xff) << 0))));
ov13_0222754C(param0, v1, param1, v0 + 1 + param1 * 2, 0, 4, ((u32)(((1 & 0xff) << 16) | ((2 & 0xff) << 8) | ((0 & 0xff) << 0))));
}
void ov13_02227650 (UnkStruct_ov13_02227244 * param0)
{
u16 v0;
sub_02019CB8(param0->unk_04, 5, 0, 0, 0, 32, 19, 17);
for (v0 = 0; v0 < 6; v0++) {
ov13_022275E0(param0, v0);
}
param0->unk_31 ^= 1;
}
void ov13_02227698 (UnkStruct_ov13_02227244 * param0)
{
UnkStruct_0205AA50 * v0;
UnkStruct_02023790 * v1;
u32 v2;
u32 v3;
sub_0201ADA4(&param0->unk_2C[25], 0);
v0 = &param0->unk_2C[25];
v1 = sub_0200B1EC(param0->unk_10, 28);
v2 = sub_02002D7C(0, v1, 0);
v3 = (sub_0201C294(v0) * 8 - v2) / 2;
sub_0201D78C(v0, 0, v1, v3, 4, 0xff, (((u32)(((1 & 0xff) << 16) | ((2 & 0xff) << 8) | ((0 & 0xff) << 0)))), NULL);
sub_020237BC(v1);
v1 = sub_0200B1EC(param0->unk_10, 29);
sub_0200B60C(param0->unk_14, 0, param0->unk_1154[param0->unk_114D] + 1, 2, 0, 1);
sub_0200C388(param0->unk_14, param0->unk_18, v1);
sub_0201D78C(v0, 0, param0->unk_18, v3 + v2, 4, 0xff, (((u32)(((1 & 0xff) << 16) | ((2 & 0xff) << 8) | ((0 & 0xff) << 0)))), NULL);
sub_020237BC(v1);
v1 = sub_0200B1EC(param0->unk_10, 30);
sub_0200B60C(param0->unk_14, 0, param0->unk_00->unk_2C[param0->unk_114D] + 1, 2, 0, 1);
sub_0200C388(param0->unk_14, param0->unk_18, v1);
v2 = sub_02002D7C(0, param0->unk_18, 0);
sub_0201D78C(v0, 0, param0->unk_18, v3 - v2, 4, 0xff, (((u32)(((1 & 0xff) << 16) | ((2 & 0xff) << 8) | ((0 & 0xff) << 0)))), NULL);
sub_020237BC(v1);
sub_0201A9A4(v0);
}
static void ov13_022277C8 (UnkStruct_ov13_02227244 * param0)
{
sub_0201ADA4(&param0->unk_2C[24], 0);
switch (param0->unk_114D) {
case 0:
ov13_02227374(param0, 24, 22, 0, 4, (((u32)(((1 & 0xff) << 16) | ((2 & 0xff) << 8) | ((0 & 0xff) << 0)))));
ov13_02227374(param0, 24, 23, 0, (4 + 16), (((u32)(((1 & 0xff) << 16) | ((2 & 0xff) << 8) | ((0 & 0xff) << 0)))));
break;
case 1:
ov13_02227374(param0, 24, 24, 0, 4, (((u32)(((1 & 0xff) << 16) | ((2 & 0xff) << 8) | ((0 & 0xff) << 0)))));
ov13_02227374(param0, 24, 25, 0, (4 + 16), (((u32)(((1 & 0xff) << 16) | ((2 & 0xff) << 8) | ((0 & 0xff) << 0)))));
break;
case 2:
ov13_02227374(param0, 24, 26, 0, 12, (((u32)(((1 & 0xff) << 16) | ((2 & 0xff) << 8) | ((0 & 0xff) << 0)))));
break;
case 3:
ov13_02227374(param0, 24, 27, 0, 12, (((u32)(((1 & 0xff) << 16) | ((2 & 0xff) << 8) | ((0 & 0xff) << 0)))));
break;
}
}
static void ov13_02227888 (UnkStruct_ov13_02227244 * param0)
{
ov13_02227650(param0);
ov13_022277C8(param0);
ov13_02227698(param0);
}
static void ov13_022278A0 (UnkStruct_ov13_02227244 * param0, u32 param1)
{
UnkStruct_0205AA50 * v0;
UnkStruct_02023790 * v1;
v0 = &param0->unk_2C[0];
v1 = sub_0200B1EC(param0->unk_10, Unk_ov13_02229AB0[0][0]);
sub_0200B70C(param0->unk_14, 0, param0->unk_3C[param0->unk_114D][param1].unk_00);
sub_0200C388(param0->unk_14, param0->unk_18, v1);
sub_0201ADA4(v0, 0);
sub_0201D78C(v0, 0, param0->unk_18, 0, 0, 0xff, (((u32)(((1 & 0xff) << 16) | ((2 & 0xff) << 8) | ((0 & 0xff) << 0)))), NULL);
sub_020237BC(v1);
sub_0201A9A4(v0);
}
static void ov13_02227910 (UnkStruct_ov13_02227244 * param0, u32 param1)
{
UnkStruct_0205AA50 * v0;
UnkStruct_02023790 * v1;
v0 = &param0->unk_2C[2];
v1 = sub_02023790(130, param0->unk_00->unk_0C);
sub_0207CFC8(v1, param0->unk_3C[param0->unk_114D][param1].unk_00, param0->unk_00->unk_0C);
sub_0201D78C(v0, 0, v1, 4, 0, 0xff, ((u32)(((1 & 0xff) << 16) | ((2 & 0xff) << 8) | ((0 & 0xff) << 0))), NULL);
sub_020237BC(v1);
sub_0201A9A4(v0);
}
static void ov13_02227974 (UnkStruct_ov13_02227244 * param0)
{
u32 v0;
u32 v1;
for (v0 = 0; v0 < 4; v0++) {
sub_0201ADA4(&param0->unk_2C[v0], 0);
}
v1 = param0->unk_00->unk_2C[param0->unk_114D] * 6 + param0->unk_00->unk_27[param0->unk_114D];
ov13_022278A0(param0, v1);
ov13_0222754C(param0, v1, 0, 1, 0, 0, ((u32)(((1 & 0xff) << 16) | ((2 & 0xff) << 8) | ((0 & 0xff) << 0))));
ov13_02227910(param0, v1);
ov13_02227374(param0, 3, 31, 2, 6, ((u32)(((3 & 0xff) << 16) | ((2 & 0xff) << 8) | ((1 & 0xff) << 0))));
}
void ov13_022279F4 (UnkStruct_ov13_02227244 * param0)
{
sub_0200E060(&param0->unk_1C, 1, 1024 - (18 + 12), 14);
sub_0201ADA4(&param0->unk_1C, 15);
ov13_02227A1C(param0);
}
void ov13_02227A1C (UnkStruct_ov13_02227244 * param0)
{
sub_02002AC8(1);
param0->unk_32 = sub_0201D738(&param0->unk_1C, 1, param0->unk_18, 0, 0, ov16_0223EDF0(param0->unk_00->unk_00), NULL);
}

View File

@@ -0,0 +1,100 @@
#include <nitro.h>
#include <string.h>
#include "struct_defs/struct_0207CDEC.h"
#include "overlay013/struct_ov13_02227244.h"
#include "unk_0207CDEC.h"
#include "unk_0207D3B8.h"
#include "overlay013/ov13_02227A4C.h"
u8 ov13_02227A4C (UnkStruct_ov13_02227244 * param0)
{
if (param0->unk_00->unk_20 == 0) {
return 0;
}
if (sub_0207D688(param0->unk_00->unk_08, param0->unk_00->unk_20, 1, param0->unk_00->unk_0C) == 0) {
param0->unk_00->unk_20 = 0;
param0->unk_00->unk_1F = 0;
return 0;
}
return 1;
}
void ov13_02227A7C (UnkStruct_ov13_02227244 * param0)
{
u32 v0;
for (v0 = 0; v0 < 36; v0++) {
if (param0->unk_00->unk_20 == param0->unk_3C[param0->unk_114D][v0].unk_00) {
param0->unk_00->unk_27[param0->unk_114D] = v0 % 6;
param0->unk_00->unk_2C[param0->unk_114D] = v0 / 6;
break;
}
}
}
static const u8 Unk_ov13_02229BB0[] = {
0x2,
0x3,
0x0,
0x1,
0x0
};
void ov13_02227AC8 (UnkStruct_ov13_02227244 * param0)
{
UnkStruct_0207CDEC * v0;
u32 v1, v2, v3;
s32 v4;
for (v1 = 0; v1 < 8; v1++) {
v2 = 0;
while (TRUE) {
v0 = sub_0207D910(param0->unk_00->unk_08, v1, v2);
if (v0 == NULL) {
break;
}
if (!((v0->unk_00 == 0) || (v0->unk_02 == 0))) {
v4 = sub_0207CFF0(v0->unk_00, 13, param0->unk_00->unk_0C);
for (v3 = 0; v3 < 5; v3++) {
if ((v4 & (1 << v3)) == 0) {
continue;
}
param0->unk_3C[Unk_ov13_02229BB0[v3]][param0->unk_114F[Unk_ov13_02229BB0[v3]]] = *v0;
param0->unk_114F[Unk_ov13_02229BB0[v3]]++;
}
}
v2++;
}
}
for (v1 = 0; v1 < 5; v1++) {
if (param0->unk_114F[v1] == 0) {
param0->unk_1154[v1] = 0;
} else {
param0->unk_1154[v1] = (param0->unk_114F[v1] - 1) / 6;
}
if (param0->unk_1154[v1] < param0->unk_00->unk_2C[v1]) {
param0->unk_00->unk_2C[v1] = param0->unk_1154[v1];
}
}
}
u16 ov13_02227BA8 (UnkStruct_ov13_02227244 * param0, u32 param1)
{
if ((param0->unk_3C[param0->unk_114D][param0->unk_00->unk_2C[param0->unk_114D] * 6 + param1].unk_00 != 0) && (param0->unk_3C[param0->unk_114D][param0->unk_00->unk_2C[param0->unk_114D] * 6 + param1].unk_02 != 0)) {
return param0->unk_3C[param0->unk_114D][param0->unk_00->unk_2C[param0->unk_114D] * 6 + param1].unk_00;
}
return 0;
}

View File

@@ -0,0 +1,340 @@
#include <nitro.h>
#include <string.h>
#include "struct_decls/struct_02006C24_decl.h"
#include "struct_decls/struct_0200C6E4_decl.h"
#include "overlay016/struct_ov16_0226DC24_decl.h"
#include "overlay016/struct_ov16_0226DEEC_decl.h"
#include "struct_defs/struct_0200D0F4.h"
#include "struct_defs/struct_020F1DB8.h"
#include "overlay013/struct_ov13_02227244.h"
#include "overlay104/struct_ov104_0223F9E0.h"
#include "overlay104/struct_ov104_02241308.h"
#include "unk_02002F38.h"
#include "unk_020068C8.h"
#include "unk_0200C6E4.h"
#include "unk_0201FE94.h"
#include "unk_0207CDEC.h"
#include "overlay013/ov13_02227A4C.h"
#include "overlay013/ov13_02227BDC.h"
#include "overlay013/ov13_02228A38.h"
#include "overlay016/ov16_0223DF00.h"
#include "overlay016/ov16_0226DB7C.h"
#include "overlay016/ov16_0226DE44.h"
static void ov13_02227C08(UnkStruct_ov13_02227244 * param0);
static void ov13_02227C54(UnkStruct_ov13_02227244 * param0);
static void ov13_02227D10(UnkStruct_ov13_02227244 * param0, u16 param1, u32 param2);
static void ov13_02227D48(UnkStruct_ov13_02227244 * param0, u16 param1, u16 param2, u32 param3);
static void ov13_02227DE8(UnkStruct_ov13_02227244 * param0);
static void ov13_02227EAC(UnkStruct_ov13_02227244 * param0);
static void ov13_02227EE0(UnkStruct_ov13_02227244 * param0);
static void ov13_02227F38(UnkStruct_ov13_02227244 * param0);
static void ov13_02227F7C(UnkStruct_ov13_02227244 * param0);
static void ov13_02227FDC(UnkStruct_ov13_02227244 * param0);
static void ov13_02228070(UnkStruct_ov13_02227244 * param0);
static void ov13_022280C8(UnkStruct_ov13_02227244 * param0);
static const int Unk_ov13_02229BC0[2] = {
0x18,
0xB2
};
static const int Unk_ov13_02229C44[][2] = {
{0x2C, 0x2D},
{0xAC, 0x2D},
{0x2C, 0x5D},
{0xAC, 0x5D},
{0x2C, 0x8D},
{0xAC, 0x8D}
};
static const int Unk_ov13_02229BB8[2] = {
0x28,
0x2C
};
static const int Unk_ov13_02229CBC[][5] = {
{0xB4B7, 0xB4B7, 0xB4B7, 0xB4B7, 0x1},
{0xB4B8, 0xB4B8, 0xB4B7, 0xB4B7, 0x1},
{0xB4B9, 0xB4B9, 0xB4B7, 0xB4B7, 0x1},
{0xB4BA, 0xB4BA, 0xB4B7, 0xB4B7, 0x1},
{0xB4BB, 0xB4BB, 0xB4B7, 0xB4B7, 0x1},
{0xB4BC, 0xB4BC, 0xB4B7, 0xB4B7, 0x1}
};
void ov13_02227BDC (UnkStruct_ov13_02227244 * param0)
{
ov13_02227C08(param0);
ov13_02227C54(param0);
ov13_02227DE8(param0);
ov13_02227F7C(param0);
ov13_02228070(param0);
sub_0201FF74(GX_PLANEMASK_OBJ, 1);
}
static void ov13_02227C08 (UnkStruct_ov13_02227244 * param0)
{
UnkStruct_ov104_02241308 v0 = {8, 8, 3, 3, 0, 0};
UnkStruct_0200C6E4 * v1 = ov16_0223E010(param0->unk_00->unk_00);
param0->unk_30C = sub_0200C704(v1);
sub_0200C7C0(v1, param0->unk_30C, 6 + 5 + 1);
sub_0200CB30(v1, param0->unk_30C, &v0);
}
static void ov13_02227C54 (UnkStruct_ov13_02227244 * param0)
{
UnkStruct_0200C6E4 * v0;
u32 v1;
UnkStruct_02006C24 * v2;
v2 = sub_02006C24(16, param0->unk_00->unk_0C);
v0 = ov16_0223E010(param0->unk_00->unk_00);
for (v1 = 0; v1 < 6; v1++) {
sub_0200CC3C(v0, param0->unk_30C, v2, sub_0207CE78(1, 1), 0, NNS_G2D_VRAM_TYPE_2DSUB, 46263 + v1);
sub_0200CDC4(param0->unk_08, 3, v0, param0->unk_30C, v2, sub_0207CE78(1, 2), 0, 1, NNS_G2D_VRAM_TYPE_2DSUB, 46263 + v1);
}
sub_0200CE24(v0, param0->unk_30C, v2, sub_0207CF40(), 0, 46263);
sub_0200CE54(v0, param0->unk_30C, v2, sub_0207CF44(), 0, 46263);
sub_02006CA8(v2);
}
static void ov13_02227D10 (UnkStruct_ov13_02227244 * param0, u16 param1, u32 param2)
{
UnkStruct_0200C6E4 * v0 = ov16_0223E010(param0->unk_00->unk_00);
sub_0200D948(v0, param0->unk_30C, 16, sub_0207CE78(param1, 1), 0, param2);
}
static void ov13_02227D48 (UnkStruct_ov13_02227244 * param0, u16 param1, u16 param2, u32 param3)
{
sub_02003050(param0->unk_08, 16, sub_0207CE78(param1, 2), param0->unk_00->unk_0C, 3, 0x20, param2 * 16);
}
static UnkStruct_0200D0F4 * ov13_02227D78 (UnkStruct_ov13_02227244 * param0, u32 param1)
{
UnkStruct_ov104_0223F9E0 v0;
UnkStruct_0200C6E4 * v1;
v1 = ov16_0223E010(param0->unk_00->unk_00);
v0.unk_00 = 0;
v0.unk_02 = 0;
v0.unk_04 = 0;
v0.unk_06 = 0;
v0.unk_08 = Unk_ov13_02229CBC[param1][4];
v0.unk_0C = 0;
v0.unk_10 = NNS_G2D_VRAM_TYPE_2DSUB;
v0.unk_14[0] = Unk_ov13_02229CBC[param1][0];
v0.unk_14[1] = Unk_ov13_02229CBC[param1][1];
v0.unk_14[2] = Unk_ov13_02229CBC[param1][2];
v0.unk_14[3] = Unk_ov13_02229CBC[param1][3];
v0.unk_2C = 1;
v0.unk_30 = 0;
return sub_0200CE6C(v1, param0->unk_30C, &v0);
}
static void ov13_02227DE8 (UnkStruct_ov13_02227244 * param0)
{
u32 v0;
for (v0 = 0; v0 < 6; v0++) {
param0->unk_310[v0] = ov13_02227D78(param0, v0);
}
}
void ov13_02227E08 (UnkStruct_ov13_02227244 * param0)
{
UnkStruct_0200C6E4 * v0;
u32 v1;
v0 = ov16_0223E010(param0->unk_00->unk_00);
for (v1 = 0; v1 < 6; v1++) {
sub_0200D0F4(param0->unk_310[v1]);
}
ov13_02227FDC(param0);
ov13_022280C8(param0);
sub_0200D0B0(v0, param0->unk_30C);
}
static void ov13_02227E48 (UnkStruct_0200D0F4 * param0, const int param1, const int param2)
{
sub_0200D3F4(param0, 1);
sub_0200D4C4(param0, param1, param2);
}
void ov13_02227E68 (UnkStruct_ov13_02227244 * param0, u32 param1)
{
u32 v0;
for (v0 = 0; v0 < 6; v0++) {
sub_0200D3F4(param0->unk_310[v0], 0);
}
switch (param1) {
case 0:
ov13_02227EAC(param0);
break;
case 1:
ov13_02227EE0(param0);
break;
case 2:
ov13_02227F38(param0);
break;
}
}
static void ov13_02227EAC (UnkStruct_ov13_02227244 * param0)
{
u16 v0;
if (param0->unk_00->unk_20 != 0) {
ov13_02227D10(param0, param0->unk_00->unk_20, 46263);
ov13_02227D48(param0, param0->unk_00->unk_20, 0, 46263);
ov13_02227E48(param0->unk_310[0], Unk_ov13_02229BC0[0], Unk_ov13_02229BC0[1]);
}
}
static void ov13_02227EE0 (UnkStruct_ov13_02227244 * param0)
{
u32 v0;
u16 v1;
for (v0 = 0; v0 < 6; v0++) {
v1 = ov13_02227BA8(param0, v0);
if (v1 == 0) {
continue;
}
ov13_02227D10(param0, v1, 46263 + v0);
ov13_02227D48(param0, v1, (u16)v0, 46263 + v0);
ov13_02227E48(param0->unk_310[v0], Unk_ov13_02229C44[v0][0], Unk_ov13_02229C44[v0][1]);
}
}
static void ov13_02227F38 (UnkStruct_ov13_02227244 * param0)
{
u16 v0;
v0 = ov13_02227BA8(param0, param0->unk_00->unk_27[param0->unk_114D]);
ov13_02227D10(param0, v0, 46263);
ov13_02227D48(param0, v0, 0, 46263);
ov13_02227E48(param0->unk_310[0], Unk_ov13_02229BB8[0], Unk_ov13_02229BB8[1]);
}
static void ov13_02227F7C (UnkStruct_ov13_02227244 * param0)
{
UnkStruct_0200C6E4 * v0;
UnkStruct_ov16_0226DC24 * v1;
v0 = ov16_0223E010(param0->unk_00->unk_00);
ov16_0226DB7C(v0, param0->unk_30C, param0->unk_08, param0->unk_00->unk_0C, 46270, 46270, 46265, 46265);
v1 = ov16_0226DC24(v0, param0->unk_30C, param0->unk_00->unk_0C, 46270, 46270, 46265, 46265, 0, 1);
ov13_02228A64(param0->unk_34, v1);
}
static void ov13_02227FDC (UnkStruct_ov13_02227244 * param0)
{
ov16_0226DCA8(ov13_02228A58(param0->unk_34));
ov16_0226DBFC(param0->unk_30C, 46270, 46270, 46265, 46265);
}
static const UnkStruct_020F1DB8 Unk_ov13_02229C14[] = {
{0x8, 0x10, 0x78, 0x48, 0x0, 0x1, 0x0, 0x2},
{0x8, 0x58, 0x78, 0x90, 0x0, 0x4, 0x1, 0x3},
{0x88, 0x10, 0xF8, 0x48, 0x2, 0x3, 0x0, 0x2},
{0x88, 0x58, 0xF8, 0x90, 0x2, 0x5, 0x1, 0x3},
{0x8, 0xA0, 0xC8, 0xB8, 0x1, 0x4, 0x4, 0x5},
{0xE0, 0xA0, 0xF8, 0xB8, 0x83, 0x5, 0x4, 0x5}
};
static const UnkStruct_020F1DB8 Unk_ov13_02229C74[] = {
{0x8, 0x10, 0x78, 0x30, 0x0, 0x2, 0x0, 0x1},
{0x88, 0x10, 0xF8, 0x30, 0x1, 0x3, 0x0, 0x1},
{0x8, 0x40, 0x78, 0x60, 0x0, 0x4, 0x2, 0x3},
{0x88, 0x40, 0xF8, 0x60, 0x1, 0x5, 0x2, 0x3},
{0x8, 0x70, 0x78, 0x90, 0x2, 0x86, 0x4, 0x5},
{0x88, 0x70, 0xF8, 0x90, 0x3, 0x8, 0x4, 0x5},
{0x8, 0xA0, 0x20, 0xB8, 0x4, 0x6, 0x6, 0x7},
{0x30, 0xA0, 0x48, 0xB8, 0x4, 0x7, 0x6, 0x8},
{0xE0, 0xA0, 0xF8, 0xB8, 0x5, 0x8, 0x7, 0x8}
};
static const UnkStruct_020F1DB8 Unk_ov13_02229BD4[] = {
{0x8, 0xA0, 0xC8, 0xB8, 0x0, 0x0, 0x0, 0x1},
{0xE0, 0xA0, 0xF8, 0xB8, 0x1, 0x1, 0x0, 0x1}
};
static const UnkStruct_020F1DB8 * const Unk_ov13_02229BC8[] = {
Unk_ov13_02229C14,
Unk_ov13_02229C74,
Unk_ov13_02229BD4
};
void ov13_02228008 (UnkStruct_ov13_02227244 * param0, u8 param1)
{
ov13_02228A9C(param0->unk_34, Unk_ov13_02229BC8[param1]);
switch (param1) {
case 0:
ov13_02228A68(param0->unk_34, param0->unk_114D);
break;
case 1:
ov13_02228A68(param0->unk_34, param0->unk_00->unk_27[param0->unk_114D]);
break;
case 2:
break;
}
}
void ov13_02228050 (UnkStruct_ov13_02227244 * param0)
{
ov13_02228A60(param0->unk_34, 0);
ov13_02228A90(param0->unk_34);
ov16_0226DDE8(ov13_02228A58(param0->unk_34));
}
static void ov13_02228070 (UnkStruct_ov13_02227244 * param0)
{
UnkStruct_0200C6E4 * v0;
UnkStruct_ov16_0226DEEC * v1;
v0 = ov16_0223E010(param0->unk_00->unk_00);
ov16_0226DE44(v0, param0->unk_30C, param0->unk_00->unk_0C, param0->unk_08, 46269, 46269, 46264, 46264);
param0->unk_38 = ov16_0226DEEC(v0, param0->unk_30C, param0->unk_00->unk_0C, 46269, 46269, 46264, 46264, 0, 0);
}
static void ov13_022280C8 (UnkStruct_ov13_02227244 * param0)
{
ov16_0226DF68(param0->unk_38);
ov16_0226DEC4(param0->unk_30C, 46269, 46269, 46264, 46264);
}
static const int Unk_ov13_02229BFC[3][2] = {
{0xC0, 0x18},
{0x40, 0x10},
{0x68, 0x98}
};
void ov13_022280F0 (UnkStruct_ov13_02227244 * param0, u8 param1)
{
if (param0->unk_00->unk_14 == 1) {
ov16_0226DFB0(param0->unk_38, Unk_ov13_02229BFC[param1][0], Unk_ov13_02229BFC[param1][1]);
ov16_0226DFD0(param0->unk_38, 60);
} else {
ov16_0226DFBC(param0->unk_38);
}
}

View File

@@ -0,0 +1,504 @@
#include <nitro.h>
#include <string.h>
#include "struct_defs/struct_0200D0F4.h"
#include "overlay013/struct_ov13_02227244.h"
#include "unk_0200C6E4.h"
#include "unk_02017E74.h"
#include "unk_02018340.h"
#include "overlay013/ov13_02227A4C.h"
#include "overlay013/ov13_02228128.h"
typedef struct {
u8 unk_00;
u8 unk_01;
u8 unk_02;
u8 unk_03;
} UnkStruct_ov13_02229D7C;
static void ov13_02228460(u16 * param0, u16 * param1, u8 param2, u8 param3, u8 param4, u8 param5);
static const UnkStruct_ov13_02229D7C Unk_ov13_02229D7C[] = {
{0x0, 0x1, 0x10, 0x9},
{0x0, 0xA, 0x10, 0x9},
{0x10, 0x1, 0x10, 0x9},
{0x10, 0xA, 0x10, 0x9},
{0x0, 0x13, 0x1A, 0x5},
{0x1B, 0x13, 0x5, 0x5},
{0x20, 0x1, 0x10, 0x6},
{0x30, 0x1, 0x10, 0x6},
{0x20, 0x7, 0x10, 0x6},
{0x30, 0x7, 0x10, 0x6},
{0x20, 0xD, 0x10, 0x6},
{0x30, 0xD, 0x10, 0x6},
{0x20, 0x13, 0x5, 0x5},
{0x25, 0x13, 0x5, 0x5},
{0x3B, 0x13, 0x5, 0x5},
{0x0, 0x33, 0x1A, 0x5},
{0x1B, 0x33, 0x5, 0x5}
};
static const u8 Unk_ov13_02229D48[] = {
0x0,
0xFF
};
static const u8 Unk_ov13_02229D3C[] = {
0x1,
0xFF
};
static const u8 Unk_ov13_02229D44[] = {
0x2,
0xFF
};
static const u8 Unk_ov13_02229D34[] = {
0x3,
0xFF
};
static const u8 Unk_ov13_02229D40[] = {
0x4,
0xFF
};
static const u8 Unk_ov13_02229D64[] = {
0x0,
0x1,
0xFF
};
static const u8 Unk_ov13_02229D60[] = {
0x2,
0x3,
0xFF
};
static const u8 Unk_ov13_02229D5C[] = {
0x4,
0x5,
0xFF
};
static const u8 Unk_ov13_02229D58[] = {
0x6,
0x7,
0xFF
};
static const u8 Unk_ov13_02229D68[] = {
0x8,
0x9,
0xFF
};
static const u8 Unk_ov13_02229D70[] = {
0xA,
0xB,
0xFF
};
static const u8 Unk_ov13_02229D74[] = {
0xC,
0xD,
0xFF
};
static const u8 Unk_ov13_02229D4C[] = {
0xE,
0xF,
0xFF
};
static const u8 Unk_ov13_02229D50[] = {
0x10,
0x11,
0xFF
};
static const u8 Unk_ov13_02229D6C[] = {
0x12,
0x13,
0xFF
};
static const u8 Unk_ov13_02229D78[] = {
0x14,
0x15,
0xFF
};
static const u8 Unk_ov13_02229D54[] = {
0x16,
0x17,
0xFF
};
static const u8 Unk_ov13_02229D38[] = {
0x3,
0xFF
};
static const u8 * const Unk_ov13_02229DC0[] = {
Unk_ov13_02229D48,
Unk_ov13_02229D3C,
Unk_ov13_02229D44,
Unk_ov13_02229D34,
Unk_ov13_02229D40,
NULL,
Unk_ov13_02229D64,
Unk_ov13_02229D60,
Unk_ov13_02229D5C,
Unk_ov13_02229D58,
Unk_ov13_02229D68,
Unk_ov13_02229D70,
NULL,
NULL,
NULL,
Unk_ov13_02229D38,
NULL,
Unk_ov13_02229D74,
Unk_ov13_02229D4C,
Unk_ov13_02229D50,
Unk_ov13_02229D6C,
Unk_ov13_02229D78,
Unk_ov13_02229D54
};
void ov13_02228128 (UnkStruct_ov13_02227244 * param0, u16 * param1)
{
ov13_02228460(param0->unk_328[0], param1, 0, 0, 16, 9);
ov13_02228460(param0->unk_328[1], param1, 0, (0 + 9), 16, 9);
ov13_02228460(param0->unk_328[2], param1, 0, ((0 + 9) + 9), 16, 9);
ov13_02228460(param0->unk_688[0], param1, 0, 27, 26, 5);
ov13_02228460(param0->unk_688[1], param1, 0, (27 + 5), 26, 5);
ov13_02228460(param0->unk_688[2], param1, 0, ((27 + 5) + 5), 26, 5);
ov13_02228460(param0->unk_688[3], param1, 0, ((27 + 5) + 5), 26, 5);
ov13_02228460(param0->unk_A98[0], param1, 0, 57, 5, 5);
ov13_02228460(param0->unk_A98[1], param1, (0 + 5), 57, 5, 5);
ov13_02228460(param0->unk_A98[2], param1, ((0 + 5) + 5), 57, 5, 5);
ov13_02228460(param0->unk_B2E[0], param1, 16, 0, 16, 6);
ov13_02228460(param0->unk_B2E[1], param1, 16, (0 + 6), 16, 6);
ov13_02228460(param0->unk_B2E[2], param1, 16, ((0 + 6) + 6), 16, 6);
ov13_02228460(param0->unk_B2E[3], param1, 16, (((0 + 6) + 6) + 6), 16, 6);
ov13_02228460(param0->unk_E2E[0], param1, 0, 47, 5, 5);
ov13_02228460(param0->unk_E2E[1], param1, (0 + 5), 47, 5, 5);
ov13_02228460(param0->unk_E2E[2], param1, ((0 + 5) + 5), 47, 5, 5);
ov13_02228460(param0->unk_E2E[3], param1, (((0 + 5) + 5) + 5), 47, 5, 5);
ov13_02228460(param0->unk_EF6[0], param1, 0, 52, 5, 5);
ov13_02228460(param0->unk_EF6[1], param1, (0 + 5), 52, 5, 5);
ov13_02228460(param0->unk_EF6[2], param1, ((0 + 5) + 5), 52, 5, 5);
ov13_02228460(param0->unk_EF6[3], param1, (((0 + 5) + 5) + 5), 52, 5, 5);
ov13_02228460(param0->unk_FBE[0], param1, 20, 47, 4, 4);
ov13_02228460(param0->unk_FBE[1], param1, (20 + 4), 47, 4, 4);
ov13_02228460(param0->unk_FBE[2], param1, ((20 + 4) + 4), 47, 4, 4);
ov13_02228460(param0->unk_101E[0], param1, 20, (47 + 4), 4, 4);
ov13_02228460(param0->unk_101E[1], param1, (20 + 4), ((47 + 4)), 4, 4);
ov13_02228460(param0->unk_101E[2], param1, ((20 + 4) + 4), ((47 + 4)), 4, 4);
ov13_02228460(param0->unk_107E[0], param1, 20, ((47 + 4) + 4), 4, 4);
ov13_02228460(param0->unk_107E[1], param1, (20 + 4), (((47 + 4) + 4)), 4, 4);
ov13_02228460(param0->unk_107E[2], param1, ((20 + 4) + 4), (((47 + 4) + 4)), 4, 4);
ov13_02228460(param0->unk_10DE[0], param1, 20, (((47 + 4) + 4) + 4), 4, 4);
ov13_02228460(param0->unk_10DE[1], param1, (20 + 4), ((((47 + 4) + 4) + 4)), 4, 4);
ov13_02228460(param0->unk_10DE[2], param1, ((20 + 4) + 4), ((((47 + 4) + 4) + 4)), 4, 4);
}
static void ov13_02228460 (u16 * param0, u16 * param1, u8 param2, u8 param3, u8 param4, u8 param5)
{
u16 v0, v1;
for (v0 = 0; v0 < param5; v0++) {
for (v1 = 0; v1 < param4; v1++) {
param0[v0 * param4 + v1] = param1[(param3 + v0) * 32 + param2 + v1];
}
}
}
static u16 * ov13_022284B0 (UnkStruct_ov13_02227244 * param0, u8 param1, u8 param2)
{
switch (param1) {
case 0:
case 1:
case 2:
case 3:
return param0->unk_328[param2];
case 4:
return param0->unk_688[param2];
case 5:
case 14:
case 16:
return param0->unk_A98[param2];
case 6:
case 7:
case 8:
case 9:
case 10:
case 11:
return param0->unk_B2E[param2];
case 12:
return param0->unk_E2E[param2];
case 13:
return param0->unk_EF6[param2];
case 15:
return param0->unk_688[param2];
}
return NULL;
}
static u16 ov13_02228558 (UnkStruct_ov13_02227244 * param0, u8 param1, u8 param2, u8 param3)
{
if (param2 == 3) {
return 5;
}
switch (param1) {
case 0:
case 1:
case 2:
case 3:
return 0;
case 4:
return 3;
case 5:
case 14:
case 16:
case 12:
case 13:
return 2;
case 6:
case 7:
case 8:
case 9:
case 10:
case 11:
return 8 + param0->unk_114D;
case 15:
if (param3 == 2) {
return 8 + param0->unk_114D;
} else {
return 1;
}
}
return 0;
}
static void ov13_022285C8 (UnkStruct_ov13_02227244 * param0, u16 * param1, u8 param2, u8 param3)
{
u16 * v0;
u16 v1, v2;
if (param2 == 0) {
v0 = param0->unk_FBE[param3];
} else if (param2 == 1) {
v0 = param0->unk_101E[param3];
} else if (param2 == 2) {
v0 = param0->unk_107E[param3];
} else if (param2 == 3) {
v0 = param0->unk_10DE[param3];
} else {
return;
}
for (v1 = 0; v1 < 4; v1++) {
for (v2 = 0; v2 < 4; v2++) {
param1[16 * (0 + v1) + 6 + v2] = v0[4 * v1 + v2];
}
}
}
static void ov13_0222863C (UnkStruct_ov13_02227244 * param0, u16 * param1, u8 param2, u8 param3, u8 param4)
{
u16 * v0;
u16 v1;
u16 v2;
v0 = ov13_022284B0(param0, param2, param3);
v1 = ov13_02228558(param0, param2, param3, param4) << 12;
for (v2 = 0; v2 < Unk_ov13_02229D7C[param2].unk_02 * Unk_ov13_02229D7C[param2].unk_03; v2++) {
param1[v2] = v1 | (v0[v2] & 0xfff);
}
ov13_022285C8(param0, param1, param2, param3);
}
static void ov13_022286B8 (UnkStruct_ov13_02227244 * param0, u8 param1, u8 param2, u8 param3)
{
u16 * v0;
v0 = sub_02018144(param0->unk_00->unk_0C, Unk_ov13_02229D7C[param1].unk_02 * Unk_ov13_02229D7C[param1].unk_03 * 2);
ov13_0222863C(param0, v0, param1, param2, param3);
sub_020198C0(param0->unk_04, 6, v0, Unk_ov13_02229D7C[param1].unk_00, Unk_ov13_02229D7C[param1].unk_01, Unk_ov13_02229D7C[param1].unk_02, Unk_ov13_02229D7C[param1].unk_03);
sub_0201C3C0(param0->unk_04, 6);
sub_020181C4(v0);
}
static void ov13_0222872C (UnkStruct_ov13_02227244 * param0, u8 param1, u8 param2)
{
const u8 * v0;
u16 v1;
u8 v2, v3;
if ((param1 >= 6) && (param1 <= 11) && (param0->unk_31 == 0)) {
v0 = Unk_ov13_02229DC0[(16 + 1) + param1 - 6];
} else {
v0 = Unk_ov13_02229DC0[param1];
}
if (v0 == NULL) {
return;
}
switch (param2) {
case 0:
case 2:
v2 = 1;
v3 = 2;
break;
case 1:
v2 = 0;
v3 = 4;
break;
}
for (v1 = 0; v1 < 8; v1++) {
if (v0[v1] == 0xff) {
break;
}
sub_0201C04C(&param0->unk_2C[v0[v1]], v2, v3, 0);
sub_0201A9A4(&param0->unk_2C[v0[v1]]);
}
}
static void ov13_022287A4 (UnkStruct_ov13_02227244 * param0, u8 param1, u8 param2)
{
UnkStruct_0200D0F4 * v0;
u8 v1;
if ((param1 >= 6) && (param1 <= 11)) {
v0 = param0->unk_310[param1 - 6];
} else if (param1 == 4) {
for (v1 = 0; v1 < 6; v1++) {
v0 = param0->unk_310[v1];
if (sub_0200D408(v0) != 0) {
break;
}
}
} else {
return;
}
switch (param2) {
case 0:
case 2:
sub_0200D5DC(v0, 0, 2);
break;
case 1:
sub_0200D5DC(v0, 0, -4);
break;
}
}
void ov13_0222880C (UnkStruct_ov13_02227244 * param0, u8 param1, u8 param2)
{
param0->unk_113E = 0;
param0->unk_113F = 0;
param0->unk_1140 = param1;
param0->unk_1141_4 = param2;
param0->unk_1141_0 = 1;
}
void ov13_02228848 (UnkStruct_ov13_02227244 * param0)
{
if (param0->unk_1141_0 == 0) {
return;
}
switch (param0->unk_113E) {
case 0:
ov13_022286B8(param0, param0->unk_1140, 1, param0->unk_114C);
ov13_0222872C(param0, param0->unk_1140, 1);
ov13_022287A4(param0, param0->unk_1140, 1);
param0->unk_113F = 0;
param0->unk_113E = 1;
break;
case 1:
ov13_022286B8(param0, param0->unk_1140, 2, param0->unk_114C);
ov13_0222872C(param0, param0->unk_1140, 2);
ov13_022287A4(param0, param0->unk_1140, 2);
param0->unk_113F = 0;
param0->unk_113E = 2;
break;
case 2:
ov13_022286B8(param0, param0->unk_1140, 0, param0->unk_114C);
ov13_0222872C(param0, param0->unk_1140, 0);
ov13_022287A4(param0, param0->unk_1140, 0);
param0->unk_113F = 0;
param0->unk_113E = 0;
param0->unk_1141_0 = 0;
break;
}
}
void ov13_02228924 (UnkStruct_ov13_02227244 * param0, u8 param1)
{
switch (param1) {
case 0:
ov13_022286B8(param0, 0, 0, param1);
ov13_022286B8(param0, 1, 0, param1);
ov13_022286B8(param0, 2, 0, param1);
ov13_022286B8(param0, 3, 0, param1);
if (param0->unk_00->unk_20 == 0) {
ov13_022286B8(param0, 4, 3, param1);
} else {
ov13_022286B8(param0, 4, 0, param1);
}
ov13_022286B8(param0, 5, 0, param1);
break;
case 1:
{
u32 v0;
for (v0 = 0; v0 < 6; v0++) {
if (ov13_02227BA8(param0, v0) == 0) {
ov13_022286B8(param0, 6 + v0, 3, param1);
} else {
ov13_022286B8(param0, 6 + v0, 0, param1);
}
}
}
if (param0->unk_1154[param0->unk_114D] == 0) {
ov13_022286B8(param0, 12, 3, param1);
ov13_022286B8(param0, 13, 3, param1);
} else {
ov13_022286B8(param0, 12, 0, param1);
ov13_022286B8(param0, 13, 0, param1);
}
ov13_022286B8(param0, 14, 0, param1);
break;
case 2:
ov13_022286B8(param0, 15, 0, param1);
ov13_022286B8(param0, 16, 0, param1);
}
}

View File

@@ -0,0 +1,218 @@
#include <nitro.h>
#include <string.h>
#include "data_021BF67C.h"
#include "overlay013/struct_ov13_02228A50_decl.h"
#include "overlay016/struct_ov16_0226DC24_decl.h"
#include "struct_defs/struct_020F1DB8.h"
#include "unk_02005474.h"
#include "unk_02017E74.h"
#include "unk_0201E010.h"
#include "overlay013/ov13_02228A38.h"
#include "overlay016/ov16_0226DB7C.h"
struct UnkStruct_ov13_02228A50_t {
UnkStruct_ov16_0226DC24 * unk_00;
const UnkStruct_020F1DB8 * unk_04;
u8 unk_08;
u8 unk_09;
u8 unk_0A;
u32 unk_0C;
};
UnkStruct_ov13_02228A50 * ov13_02228A38 (u32 param0)
{
UnkStruct_ov13_02228A50 * v0 = sub_02018144(param0, sizeof(UnkStruct_ov13_02228A50));
memset(v0, 0, sizeof(UnkStruct_ov13_02228A50));
return v0;
}
void ov13_02228A50 (UnkStruct_ov13_02228A50 * param0)
{
sub_020181C4(param0);
}
UnkStruct_ov16_0226DC24 * ov13_02228A58 (UnkStruct_ov13_02228A50 * param0)
{
return param0->unk_00;
}
u8 ov13_02228A5C (UnkStruct_ov13_02228A50 * param0)
{
return param0->unk_08;
}
void ov13_02228A60 (UnkStruct_ov13_02228A50 * param0, u8 param1)
{
param0->unk_08 = param1;
}
void ov13_02228A64 (UnkStruct_ov13_02228A50 * param0, UnkStruct_ov16_0226DC24 * param1)
{
param0->unk_00 = param1;
}
void ov13_02228A68 (UnkStruct_ov13_02228A50 * param0, u8 param1)
{
param0->unk_09 = param1;
if (param0->unk_08 == 1) {
ov16_0226DD7C(param0->unk_00, param0->unk_04[param0->unk_09].unk_00, param0->unk_04[param0->unk_09].unk_02, param0->unk_04[param0->unk_09].unk_01, param0->unk_04[param0->unk_09].unk_03);
}
}
void ov13_02228A90 (UnkStruct_ov13_02228A50 * param0)
{
param0->unk_09 = 0;
param0->unk_0A = 0xff;
}
void ov13_02228A9C (UnkStruct_ov13_02228A50 * param0, const UnkStruct_020F1DB8 * param1)
{
ov13_02228A90(param0);
param0->unk_04 = param1;
param0->unk_0C = 0xffffffff;
if (param0->unk_08 == 1) {
ov16_0226DD7C(param0->unk_00, param0->unk_04[0].unk_00, param0->unk_04[0].unk_02, param0->unk_04[0].unk_01, param0->unk_04[0].unk_03);
}
}
void ov13_02228AC8 (UnkStruct_ov13_02228A50 * param0, u32 param1)
{
param0->unk_0C = param1;
}
static u8 ov13_02228ACC (UnkStruct_ov13_02228A50 * param0)
{
if (param0->unk_08 == 1) {
return 1;
}
if (Unk_021BF67C.unk_48 & ((PAD_KEY_UP | PAD_KEY_DOWN | PAD_KEY_LEFT | PAD_KEY_RIGHT) | PAD_BUTTON_B | PAD_BUTTON_A)) {
param0->unk_08 = 1;
ov16_0226DD7C(param0->unk_00, param0->unk_04[param0->unk_09].unk_00, param0->unk_04[param0->unk_09].unk_02, param0->unk_04[param0->unk_09].unk_01, param0->unk_04[param0->unk_09].unk_03);
sub_02005748(1500);
}
return 0;
}
static u8 ov13_02228B18 (const UnkStruct_020F1DB8 * param0, u8 param1)
{
switch (param1) {
case 0:
if (param0->unk_05 & 0x80) {
return 1;
}
break;
case 1:
if (param0->unk_04 & 0x80) {
return 1;
}
break;
case 2:
if (param0->unk_07 & 0x80) {
return 1;
}
break;
case 3:
if (param0->unk_06 & 0x80) {
return 1;
}
break;
}
return 0;
}
u32 ov13_02228B64 (UnkStruct_ov13_02228A50 * param0)
{
u8 v0, v1, v2, v3;
u8 v4;
u8 v5;
if (ov13_02228ACC(param0) == 0) {
return 0xffffffff;
}
if (Unk_021BF67C.unk_48 & PAD_KEY_UP) {
v4 = sub_0201E028(param0->unk_04, NULL, NULL, NULL, NULL, param0->unk_09, 0);
v5 = 0;
} else if (Unk_021BF67C.unk_48 & PAD_KEY_DOWN) {
v4 = sub_0201E028(param0->unk_04, NULL, NULL, NULL, NULL, param0->unk_09, 1);
v5 = 1;
} else if (Unk_021BF67C.unk_48 & PAD_KEY_LEFT) {
v4 = sub_0201E028(param0->unk_04, NULL, NULL, NULL, NULL, param0->unk_09, 2);
v5 = 2;
} else if (Unk_021BF67C.unk_48 & PAD_KEY_RIGHT) {
v4 = sub_0201E028(param0->unk_04, NULL, NULL, NULL, NULL, param0->unk_09, 3);
v5 = 3;
} else {
v4 = 0xffffffff;
}
if (v4 != 0xff) {
u8 v6 = 1;
if (v4 & 0x80) {
if (param0->unk_0A != 0xff) {
v4 = param0->unk_0A;
} else {
v4 ^= 0x80;
}
}
while (TRUE) {
u8 v7;
if (param0->unk_0C & (1 << v4)) {
break;
}
v6 = 0;
v7 = sub_0201E028(param0->unk_04, NULL, NULL, NULL, NULL, v4, v5) & (0xff ^ 0x80);
if ((v7 == v4) || (v7 == param0->unk_09)) {
v4 = param0->unk_09;
break;
}
v4 = v7;
}
if (param0->unk_09 != v4) {
sub_0201E010(&param0->unk_04[v4], &v0, &v1);
sub_0201E01C(&param0->unk_04[v4], &v2, &v3);
if ((ov13_02228B18(&param0->unk_04[v4], v5) == 1) && (v6 != 0)) {
param0->unk_0A = param0->unk_09;
} else {
param0->unk_0A = 0xff;
}
param0->unk_09 = v4;
ov16_0226DD7C(param0->unk_00, v0, v2, v1, v3);
sub_02005748(1500);
}
return 0xffffffff;
}
if (Unk_021BF67C.unk_48 & PAD_BUTTON_A) {
return param0->unk_09;
}
if (Unk_021BF67C.unk_48 & PAD_BUTTON_B) {
sub_02005748(1501);
return 0xfffffffe;
}
return 0xffffffff;
}