Match overlay7 files

This commit is contained in:
Nomura
2022-12-29 20:33:36 +01:00
parent 1653509e21
commit efa4dc0bc7
13 changed files with 4794 additions and 11106 deletions

View File

@@ -1,148 +0,0 @@
.public sub_0200112C
.public sub_02001288
.public sub_02001384
.public sub_020013AC
.public sub_020014D0
.public sub_020014DC
.public sub_02001504
.public sub_02002100
.public sub_02002114
.public sub_02002154
.public sub_02002AC8
.public sub_02002AE4
.public sub_02002B20
.public sub_02005748
.public sub_0200B144
.public sub_0200B190
.public sub_0200B1B8
.public sub_0200B358
.public sub_0200B3F0
.public sub_0200B498
.public sub_0200B60C
.public sub_0200C388
.public sub_0200D9E8
.public sub_0200DA58
.public sub_0200DC48
.public sub_0200DC9C
.public sub_02013A04
.public sub_02013A3C
.public sub_02013A4C
.public sub_02013A6C
.public sub_02018144
.public sub_020181C4
.public sub_0201A7A0
.public sub_0201A7CC
.public sub_0201A7E8
.public sub_0201A8FC
.public sub_0201A954
.public sub_0201ACF4
.public sub_0201ADA4
.public sub_0201AE78
.public sub_0201C294
.public sub_0201D730
.public sub_0201D738
.public GF_AssertFail
.public sub_02023790
.public sub_020237BC
.public sub_02025E38
.public sub_02025E44
.public sub_02025E6C
.public sub_02025F20
.public sub_02025F24
.public sub_02032AC0
.public sub_02032D98
.public sub_02032DC4
.public sub_02032E1C
.public sub_02032E44
.public sub_02032E64
.public sub_02032EE8
.public sub_02032FE4
.public sub_02033808
.public sub_0203383C
.public sub_02033870
.public sub_02033884
.public sub_020339AC
.public sub_02033EA8
.public sub_02035D78
.public sub_02035E18
.public sub_0203608C
.public sub_020360F0
.public sub_02036148
.public sub_02036158
.public sub_02036450
.public sub_020364F0
.public sub_02036540
.public sub_02036594
.public sub_020365A8
.public sub_020365D0
.public sub_02036994
.public sub_020388F4
.public sub_0203D174
.public sub_02059708
.public sub_02059748
.public sub_02059788
.public sub_020597A4
.public sub_0205987C
.public sub_0205D8F4
.public sub_0205D944
.public sub_0205D994
.public sub_0205DA04
.public MI_CpuFill8
.public ov7_02249960
.public ov7_02249A10
.public ov7_02249AB4
.public ov7_02249B98
.public ov7_02249C2C
.public ov7_02249C64
.public ov7_02249C94
.public ov7_02249E0C
.public ov7_02249EE0
.public ov7_02249F54
.public ov7_02249FFC
.public ov7_0224A0C8
.public ov7_0224A128
.public ov7_0224A244
.public ov7_0224A34C
.public ov7_0224A394
.public ov7_0224A3E4
.public ov7_0224A438
.public ov7_0224A510
.public ov7_0224A528
.public ov7_0224A530
.public ov7_0224A53C
.public ov7_0224A5D0
.public ov7_0224A64C
.public ov7_0224A6D4
.public ov7_0224A718
.public ov7_0224A72C
.public ov7_0224A7D0
.public ov7_0224A97C
.public ov7_0224AB64
.public ov7_0224ABA4
.public ov7_0224ABE0
.public ov7_0224AC08
.public ov7_0224AC48
.public ov7_0224ACA4
.public ov7_0224AD68
.public ov7_0224ADD8
.public ov7_0224AE10
.public ov7_0224AE78
.public ov7_0224AECC
.public ov7_0224AF2C
.public ov7_0224AF84
.public ov7_0224AFD8
.public ov7_0224B054
.public ov7_0224B08C
.public ov7_0224B0E8
.public ov7_0224B14C
.public ov7_0224B274
.public ov7_0224B2A0
.public ov7_0224B2DC
.public ov7_0224B31C
.public ov7_0224B348
.public ov7_0224B370
.public ov7_0224B3A8
.public ov7_0224B3D4
.public ov7_0224B3E8
.public ov7_0224B3FC
.public ov7_0224B4E4

File diff suppressed because it is too large Load Diff

View File

@@ -1,68 +0,0 @@
.public sub_0200112C
.public sub_02001288
.public sub_02001384
.public sub_020014D0
.public sub_020014DC
.public sub_02002D7C
.public sub_02005748
.public sub_0200B144
.public sub_0200B190
.public sub_0200B1B8
.public sub_0200B358
.public sub_0200B3F0
.public sub_0200B48C
.public sub_0200B60C
.public sub_0200C388
.public sub_0200DC48
.public sub_0200DC9C
.public sub_0200E084
.public sub_02013A04
.public sub_02013A3C
.public sub_02013A4C
.public sub_02013A6C
.public sub_02018184
.public sub_020181C4
.public sub_0201A7A0
.public sub_0201A7CC
.public sub_0201A7E8
.public sub_0201A8FC
.public sub_0201A954
.public sub_0201ACF4
.public sub_0201ADA4
.public sub_0201C3C0
.public sub_0201D738
.public sub_02023790
.public sub_020237BC
.public sub_02025E44
.public sub_02026074
.public sub_0202610C
.public sub_02026150
.public sub_0202616C
.public sub_02050944
.public sub_02050A60
.public sub_02050A64
.public sub_0205D8F4
.public sub_0205D944
.public sub_0205D988
.public sub_0205D994
.public sub_0205DA04
.public sub_0207A268
.public sub_0207A2A8
.public sub_0207A2C0
.public sub_0207A594
.public MI_CpuFill8
.public abs
.public _s32_div_f
.public ov7_0224B4E8
.public ov7_0224B558
.public ov7_0224B57C
.public ov7_0224B5A8
.public ov7_0224B6AC
.public ov7_0224B6E8
.public ov7_0224B788
.public ov7_0224B83C
.public ov7_0224B8DC
.public ov7_0224BBA0
.public ov7_0224BBC4
.public ov7_0224BC74
.public ov7_0224BE10

File diff suppressed because it is too large Load Diff

View File

@@ -1,105 +0,0 @@
.public sub_0200112C
.public sub_02001288
.public sub_02001384
.public sub_020014D0
.public sub_020014DC
.public sub_02002100
.public sub_02002114
.public sub_02002E7C
.public sub_02002E98
.public sub_02005748
.public sub_02006C24
.public sub_02006CA8
.public sub_020093B4
.public sub_020095C4
.public sub_02009714
.public sub_02009754
.public sub_02009A4C
.public sub_02009B04
.public sub_02009BC4
.public sub_0200A3DC
.public sub_0200A4E4
.public sub_0200A640
.public sub_0200A6DC
.public sub_0200B144
.public sub_0200B190
.public sub_0200B1EC
.public sub_0200B358
.public sub_0200B3F0
.public sub_0200B60C
.public sub_0200B70C
.public sub_0200B77C
.public sub_0200BFAC
.public sub_0200C388
.public sub_0200DAA4
.public sub_0200DC48
.public sub_0200DD0C
.public sub_0200E060
.public sub_02018144
.public sub_020181C4
.public sub_02019448
.public sub_02019CB8
.public sub_02019EBC
.public sub_0201A778
.public sub_0201A7E8
.public sub_0201A8FC
.public sub_0201A928
.public sub_0201A954
.public sub_0201ACF4
.public sub_0201ADA4
.public sub_0201D724
.public sub_0201D78C
.public sub_02021964
.public sub_020219F8
.public sub_02021B90
.public sub_02021BD4
.public sub_02021CAC
.public sub_02021CC8
.public sub_02021D6C
.public GF_AssertFail
.public sub_02023790
.public sub_020237BC
.public sub_02023868
.public sub_02025E44
.public sub_02027AC0
.public sub_02027B50
.public sub_02029D04
.public sub_02029D50
.public sub_02029E2C
.public sub_0202A750
.public sub_0205D8CC
.public sub_0207D60C
.public sub_0207D730
.public sub_0207D990
.public memset
.public ov7_0224C338
.public ov7_0224C35C
.public ov7_0224C3B8
.public ov7_0224C3CC
.public ov7_0224C3E0
.public ov7_0224C3EC
.public ov7_0224C444
.public ov7_0224C468
.public ov7_0224C4B8
.public ov7_0224C4E0
.public ov7_0224C580
.public ov7_0224C620
.public ov7_0224C698
.public ov7_0224C6DC
.public ov7_0224C768
.public ov7_0224C934
.public ov7_0224C9A4
.public ov7_0224CA0C
.public ov7_0224CA34
.public ov7_0224CA54
.public ov7_0224CB40
.public ov7_0224CB70
.public ov7_0224CBD0
.public ov7_0224CBE4
.public ov7_0224CC44
.public ov7_0224CC6C
.public ov7_0224CC78
.public ov7_0224CC88
.public ov7_0224CCB8
.public ov7_0224CCE4
.public ov7_0224CCF4

File diff suppressed because it is too large Load Diff

View File

@@ -1,188 +0,0 @@
.public sub_0200112C
.public sub_02001288
.public sub_02001384
.public sub_020014DC
.public sub_02001504
.public sub_02001B7C
.public sub_02001BC4
.public sub_02001BE0
.public sub_02002100
.public sub_02002114
.public sub_02002D7C
.public sub_02005748
.public sub_02006C24
.public sub_02006CA8
.public sub_020070E8
.public sub_0200710C
.public sub_02007130
.public sub_02009968
.public sub_020099D4
.public sub_02009DC8
.public sub_0200A4C0
.public sub_0200A6B8
.public sub_0200B144
.public sub_0200B190
.public sub_0200B1EC
.public sub_0200B358
.public sub_0200B3F0
.public sub_0200B60C
.public sub_0200B630
.public sub_0200B70C
.public sub_0200B77C
.public sub_0200B7B4
.public sub_0200BC80
.public sub_0200BE64
.public sub_0200BE98
.public sub_0200C388
.public sub_0200C440
.public sub_0200C560
.public sub_0200C648
.public sub_0200D414
.public sub_0200D494
.public sub_0200DAA4
.public sub_0200DC48
.public sub_0200DC9C
.public sub_0200DD0C
.public sub_0200E060
.public sub_0200E084
.public sub_0200F2AC
.public sub_02013A04
.public sub_02013A3C
.public sub_02013A4C
.public sub_02013A6C
.public sub_02018144
.public sub_020181C4
.public sub_02019060
.public sub_02019CB8
.public sub_02019EBC
.public sub_0201A008
.public sub_0201A7E8
.public sub_0201A8D4
.public sub_0201A8FC
.public sub_0201A9A4
.public sub_0201ACF4
.public sub_0201ADA4
.public sub_0201AE78
.public sub_0201D738
.public sub_0201D78C
.public sub_0201FF0C
.public sub_0201FF48
.public sub_02020014
.public sub_020203AC
.public sub_020203B8
.public sub_020203C0
.public sub_020203D4
.public sub_02020990
.public sub_020219F8
.public sub_02021BD4
.public sub_02021CAC
.public sub_02021D34
.public sub_02021E2C
.public sub_02023790
.public sub_020237BC
.public sub_02025E38
.public sub_02025E44
.public sub_02025F74
.public sub_02025FB8
.public sub_02027B50
.public sub_0202895C
.public sub_020289A0
.public sub_020298B0
.public sub_0202B758
.public sub_0202BD08
.public sub_0202BD14
.public sub_0202BD20
.public sub_0202BD2C
.public sub_0202BD38
.public sub_0202CA1C
.public sub_0202CAE0
.public sub_0202CB70
.public sub_0202CBC8
.public sub_0202CD88
.public sub_0202CF28
.public sub_0202CF70
.public sub_0202D230
.public sub_0202D750
.public sub_0203A138
.public sub_0203D1E4
.public sub_020507E4
.public sub_02050924
.public sub_02050944
.public sub_02050A60
.public sub_02050A64
.public sub_0205745C
.public sub_0205D8F4
.public sub_0205D944
.public sub_0205D994
.public sub_0205DA04
.public sub_0205EA78
.public sub_0206B3B4
.public sub_0206D504
.public sub_0207CB2C
.public sub_0207CE78
.public sub_0207CFC8
.public sub_0207CFF0
.public sub_0207D268
.public sub_0207D55C
.public sub_0207D570
.public sub_0207D730
.public sub_0207D824
.public sub_0207D990
.public sub_0208C15C
.public sub_02098164
.public sub_020981D0
.public sub_020981F4
.public MIi_CpuClear32
.public memset
.public _u32_div_f
.public ov5_021D1744
.public ov5_021D2F14
.public ov5_021D30A8
.public ov5_021D3104
.public ov7_0224CD28
.public ov7_0224CD88
.public ov7_0224CE90
.public ov7_0224CEAC
.public ov7_0224D008
.public ov7_0224D018
.public ov7_0224D040
.public ov7_0224D1EC
.public ov7_0224D21C
.public ov7_0224D250
.public ov7_0224D388
.public ov7_0224D3E8
.public ov7_0224D44C
.public ov7_0224D474
.public ov7_0224D548
.public ov7_0224D5D8
.public ov7_0224D620
.public ov7_0224D698
.public ov7_0224D6BC
.public ov7_0224DAF8
.public ov7_0224DC84
.public ov7_0224DE94
.public ov7_0224DED4
.public ov7_0224DFB0
.public ov7_0224E098
.public ov7_0224E28C
.public ov7_0224E3A0
.public ov7_0224E3D8
.public ov7_0224E5B0
.public ov7_0224E6B8
.public ov7_0224E7C8
.public ov7_0224E834
.public ov7_0224E890
.public ov7_0224E8CC
.public ov7_0224E8F4
.public ov7_0224E920
.public ov7_0224E950
.public ov7_0224EA2C
.public ov7_0224EA54
.public ov7_0224EAD0
.public ov7_0224EB14
.public ov7_0224EB38
.public ov7_0224EB7C
.public ov7_0224EC10
.public ov7_0224EC20
.public ov7_0224EC38
.public ov7_0224EC9C

File diff suppressed because it is too large Load Diff

View File

@@ -949,10 +949,10 @@ Overlay overlay6
Overlay overlay7
{
After overlay6
Object asm/overlay007/ov7_02249960.o
Object asm/overlay007/ov7_0224B4E8.o
Object asm/overlay007/ov7_0224BE9C.o
Object asm/overlay007/ov7_0224CD28.o
Object src/overlay007/ov7_02249960.o
Object src/overlay007/ov7_0224B4E8.o
Object src/overlay007/ov7_0224BE9C.o
Object src/overlay007/ov7_0224CD28.o
}
Overlay overlay8

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,587 @@
#include <nitro.h>
#include <string.h>
#include "data_021BF67C.h"
#include "struct_decls/struct_0200112C_decl.h"
#include "struct_decls/struct_0200B144_decl.h"
#include "struct_decls/struct_0200B358_decl.h"
#include "struct_decls/struct_02013A04_decl.h"
#include "struct_decls/struct_02023790_decl.h"
#include "struct_decls/struct_020508D4_decl.h"
#include "struct_decls/struct_02079FF4_decl.h"
#include "struct_decls/struct_02098700_decl.h"
#include "struct_defs/struct_02013A04_t.h"
#include "struct_defs/struct_0202610C.h"
#include "struct_defs/struct_0203CDB0.h"
#include "struct_defs/struct_0205AA50.h"
#include "overlay084/struct_ov84_02240FA8.h"
#include "unk_0200112C.h"
#include "unk_02002B7C.h"
#include "unk_02005474.h"
#include "unk_0200AC5C.h"
#include "unk_0200B358.h"
#include "unk_0200DA60.h"
#include "unk_02013A04.h"
#include "unk_02017E74.h"
#include "unk_02018340.h"
#include "unk_0201D670.h"
#include "unk_02023790.h"
#include "unk_02025E08.h"
#include "unk_0202602C.h"
#include "unk_02026150.h"
#include "unk_020508D4.h"
#include "unk_0205D8CC.h"
#include "unk_02079FEC.h"
#include "unk_0207A2A8.h"
#include "overlay007/ov7_0224B4E8.h"
typedef struct {
UnkStruct_0200112C * unk_00;
UnkStruct_0200112C * unk_04;
UnkStruct_02013A04 * unk_08;
UnkStruct_02013A04 * unk_0C;
UnkStruct_0203CDB0 * unk_10;
UnkStruct_02023790 * unk_14;
UnkStruct_02023790 * unk_18;
UnkStruct_02023790 * unk_1C;
UnkStruct_02023790 * unk_20;
UnkStruct_0205AA50 unk_24;
UnkStruct_0205AA50 unk_34;
UnkStruct_0205AA50 unk_44;
UnkStruct_0205AA50 unk_54;
UnkStruct_0200B358 * unk_64;
UnkStruct_0200B144 * unk_68;
UnkStruct_02098700 * unk_6C;
u16 * unk_70;
int unk_74;
u16 unk_78;
u16 unk_7A;
int unk_7C;
u16 unk_80;
u16 unk_82;
} UnkStruct_ov7_0224B4E8;
typedef struct {
u32 unk_00;
u32 unk_04;
} UnkStruct_ov7_0224F4D8;
static const UnkStruct_ov84_02240FA8 Unk_ov7_0224F188 = {
NULL,
NULL,
NULL,
NULL,
0x0,
0x0,
0x0,
0x8,
0x0,
0x0,
0x1,
0xF,
0x2,
0x0,
0x10,
0x1,
0x0,
0x0,
NULL
};
static void ov7_0224B4E8 (UnkStruct_ov7_0224B4E8 * param0, int param1)
{
if (sub_0201A7CC(&param0->unk_54) == 0) {
sub_0201A7A0(&param0->unk_54);
sub_0205D8F4(param0->unk_10->unk_08, &param0->unk_54, 3);
sub_0205D944(&param0->unk_54, sub_02025E44(param0->unk_10->unk_0C));
} else {
sub_0205D988(&param0->unk_54);
}
sub_0200B1B8(param0->unk_68, param1, param0->unk_14);
sub_0200C388(param0->unk_64, param0->unk_18, param0->unk_14);
param0->unk_74 = sub_0205D994(&param0->unk_54, param0->unk_18, sub_02025E44(param0->unk_10->unk_0C), 1);
}
static void ov7_0224B558 (UnkStruct_ov7_0224B4E8 * param0, BOOL param1)
{
if (param1) {
sub_0200E084(&param0->unk_54, 0);
sub_0201ACF4(&param0->unk_54);
}
sub_0201A8FC(&param0->unk_54);
}
static void ov7_0224B57C (UnkStruct_ov7_0224B4E8 * param0, int param1)
{
sub_0202616C(param0->unk_10->unk_0C, param1, param0->unk_1C, 4);
sub_0200B48C(param0->unk_64, 0, param0->unk_1C, 0, 1, GAME_LANGUAGE);
}
static void ov7_0224B5A8 (UnkStruct_ov7_0224B4E8 * param0)
{
UnkStruct_ov84_02240FA8 v0;
UnkStruct_0205AA50 * v1 = &(param0->unk_34);
UnkStruct_0202610C * v2 = sub_0202610C(param0->unk_10->unk_0C, 0);
int v3 = 5;
if (v2) {
v3++;
}
if (sub_0201A7CC(v1) == 0) {
int v4;
param0->unk_08 = sub_02013A04(v3 + 2, 4);
sub_0201A7E8(param0->unk_10->unk_08, v1, 3, 1, 1, 16, (v3 + 2) * 2, 13, 1);
sub_0200DC48(&param0->unk_34, 1, 1024 - (18 + 12) - 9, 11);
sub_02013A4C(param0->unk_08, param0->unk_68, 123, 12);
for (v4 = 0; v4 < v3; v4++) {
ov7_0224B57C(param0, v4);
sub_0200B1B8(param0->unk_68, 113, param0->unk_1C);
sub_0200C388(param0->unk_64, param0->unk_20, param0->unk_1C);
sub_02013A6C(param0->unk_08, param0->unk_20, v4);
}
sub_02013A4C(param0->unk_08, param0->unk_68, 114, 0xfffffffe);
}
v0 = Unk_ov7_0224F188;
v0.unk_10 = v3 + 2;
v0.unk_12 = v3 + 2;
v0.unk_00 = param0->unk_08;
v0.unk_0C = &param0->unk_34;
v0.unk_1C = param0;
param0->unk_00 = sub_0200112C(&v0, 0, param0->unk_78, 4);
sub_0201A954(&param0->unk_34);
}
static void ov7_0224B6AC (UnkStruct_ov7_0224B4E8 * param0)
{
if (param0->unk_00) {
sub_02001384(param0->unk_00, NULL, NULL);
sub_0200DC9C(&param0->unk_34, 1);
sub_0201C3C0(param0->unk_34.unk_00, param0->unk_34.unk_04);
sub_0201A8FC(&param0->unk_34);
sub_02013A3C(param0->unk_08);
param0->unk_00 = NULL;
}
}
static int ov7_0224B6E8 (UnkStruct_ov7_0224B4E8 * param0)
{
int v0;
u16 v1;
v0 = sub_02001288(param0->unk_00);
sub_020014DC(param0->unk_00, NULL, &param0->unk_78);
v1 = param0->unk_80;
sub_020014D0(param0->unk_00, &param0->unk_80);
if (v1 != param0->unk_80) {
sub_02005748(1500);
}
switch (v0) {
case 0xffffffff:
return 0;
case 12:
sub_02005748(1500);
param0->unk_10->unk_B0 = NULL;
ov7_0224B6AC(param0);
return 2;
case 0xfffffffe:
sub_02005748(1500);
param0->unk_10->unk_B0 = NULL;
ov7_0224B6AC(param0);
return -1;
default:
sub_02005748(1500);
param0->unk_10->unk_B0 = sub_02026150(param0->unk_10->unk_0C, v0);
break;
}
return 1;
}
static UnkStruct_ov7_0224F4D8 Unk_ov7_0224F4D8[] = {
{0x73, (u32)1},
{0x74, (u32)2},
{0x72, (u32)0xfffffffe}
};
static void ov7_0224B788 (UnkStruct_ov7_0224B4E8 * param0)
{
UnkStruct_ov84_02240FA8 v0;
int v1 = 3, v2;
int v3 = 10;
int v4 = 9;
int v5 = 22;
UnkStruct_ov7_0224F4D8 * v6 = Unk_ov7_0224F4D8;
param0->unk_0C = sub_02013A04(v1, 4);
sub_0201A7E8(param0->unk_10->unk_08, &param0->unk_44, 3, v5, v3, v4, v1 * 2, 13, (((1024 - (18 + 12) - 9 - (32 * 8)) - (18 + 12 + 24)) - (27 * 4)) - v4 * v1 * 2);
sub_0200DC48(&param0->unk_44, 1, 1024 - (18 + 12) - 9, 11);
{
int v7;
for (v7 = 0; v7 < v1; v7++) {
sub_02013A4C(param0->unk_0C, param0->unk_68, v6->unk_00, v6->unk_04);
v6++;
}
}
v0 = Unk_ov7_0224F188;
v0.unk_10 = v1;
v0.unk_12 = v1;
v0.unk_00 = param0->unk_0C;
v0.unk_0C = &param0->unk_44;
v0.unk_1C = param0;
param0->unk_04 = sub_0200112C(&v0, 0, param0->unk_7A, 4);
sub_0201A954(&param0->unk_44);
}
static int ov7_0224B83C (UnkStruct_ov7_0224B4E8 * param0)
{
int v0;
u16 v1;
v0 = sub_02001288(param0->unk_04);
sub_020014DC(param0->unk_04, NULL, &param0->unk_7A);
v1 = param0->unk_82;
sub_020014D0(param0->unk_04, &param0->unk_82);
if (v1 != param0->unk_82) {
sub_02005748(1500);
}
switch (v0) {
case 0xffffffff:
return 0;
case 0xfffffffe:
sub_02005748(1500);
v0 = -1;
break;
default:
sub_02005748(1500);
ov7_0224B6AC(param0);
break;
}
if (param0->unk_04) {
sub_02001384(param0->unk_04, NULL, NULL);
sub_0200DC9C(&param0->unk_44, 1);
sub_0201C3C0(param0->unk_44.unk_00, param0->unk_44.unk_04);
sub_0201A8FC(&param0->unk_44);
sub_02013A3C(param0->unk_0C);
param0->unk_04 = NULL;
}
return v0;
}
static u8 Unk_ov7_0224F4C0[] = {
0x1,
0x2,
0x3,
0x5,
0x7,
0x4,
0xB,
0xA,
0x9
};
static u8 Unk_ov7_0224F4CC[] = {
0x54,
0x55,
0x56,
0x57,
0x59,
0x5B,
0x5B,
0x5B,
0x5D
};
static void ov7_0224B8DC (UnkStruct_ov7_0224B4E8 * param0)
{
UnkStruct_0200B144 * v0;
UnkStruct_0200B358 * v1 = param0->unk_64;
UnkStruct_02023790 * v2;
UnkStruct_02023790 * v3;
UnkStruct_0205AA50 * v4;
int v5, v6, v7, v8;
const int v9 = 16;
const int v10 = 2;
const int v11 = 15;
const int v12 = 55;
const int v13 = (24 * 8) - 1;
v0 = sub_0200B144(0, 26, 353, 4);
v2 = sub_02023790((90 * 2), 4);
v3 = sub_02023790((90 * 2), 4);
v4 = &param0->unk_24;
sub_0201A7E8(param0->unk_10->unk_08, v4, 3, 4, 2, 24, 19, 13, 1);
sub_0200DC48(v4, 1, 1024 - (18 + 12) - 9, 11);
sub_0201ADA4(v4, 15);
ov7_0224B57C(param0, param0->unk_78 - 1);
sub_0200B1B8(v0, 95, v2);
sub_0200C388(v1, v3, v2);
sub_0201D738(v4, 0, v3, v10 + v12, 0, 0xff, NULL);
for (v5 = 0; v5 < 9; v5++) {
sub_0200B1B8(v0, 75 + v5, v2);
sub_0201D738(v4, 0, v2, v10, v9 + v11 * v5, 0xff, NULL);
}
for (v5 = 0; v5 < 9; v5++) {
v6 = sub_02026074(param0->unk_10->unk_B0, Unk_ov7_0224F4C0[v5]);
v7 = Unk_ov7_0224F4CC[v5];
switch (Unk_ov7_0224F4C0[v5]) {
case 1:
sub_0200B60C(v1, 0, v6, 1, 1, 1);
break;
case 2:
sub_0200B60C(v1, 0, v6, 3, 0, 1);
break;
case 3:
if (v6 == 0) {
v7 = 96;
} else {
sub_0200B60C(v1, 0, v6, 3, 0, 1);
}
break;
case 5:
v6 = (v6 >= 0) ? (((v6 * 10 * 1000) / 254 + 5) / 10) : -(((-v6 * 10 * 1000) / 254 + 5) / 10);
sub_0200B60C(v1, 0, abs(v6 / 12), 2, 0, 1);
sub_0200B60C(v1, 1, abs(v6 % 12), 2, 2, 1);
if (v6 == 0) {
v7 = 96;
} else if (v6 > 0) {
v7++;
}
break;
case 7:
v6 = (v6 >= 0) ? (((v6 * 220462) + 50000) / 100000) : -(((-v6 * 220462) + 50000) / 100000);
sub_0200B60C(v1, 0, abs(v6), 3, 0, 1);
if (v6 == 0) {
v7 = 96;
} else if (v6 > 0) {
v7++;
}
break;
case 4:
case 11:
case 10:
case 9:
if (v6 == 0) {
v7++;
}
break;
default:
break;
}
sub_0200B1B8(v0, v7, v2);
sub_0200C388(v1, v3, v2);
{
int v14 = sub_02002D7C(0, v3, 0);
int v15 = v13 - v14;
sub_0201D738(v4, 0, v3, v15, v9 + v11 * v5, 0xff, NULL);
}
}
sub_020237BC(v2);
sub_020237BC(v3);
sub_0200B190(v0);
sub_0201A954(v4);
}
static void ov7_0224BBA0 (UnkStruct_ov7_0224B4E8 * param0)
{
sub_0200DC9C(&param0->unk_24, 1);
sub_0201C3C0(param0->unk_24.unk_00, param0->unk_24.unk_04);
sub_0201A8FC(&param0->unk_24);
}
static BOOL ov7_0224BBC4 (UnkStruct_ov7_0224B4E8 * param0)
{
UnkStruct_02079FF4 * v0 = sub_0207A268(param0->unk_10->unk_0C);
int v1 = sub_0207A594(param0->unk_10->unk_B0, v0, param0->unk_6C);
int v2;
switch (v1) {
case 0:
return 1;
case 4:
sub_02005748(1523);
ov7_0224B57C(param0, param0->unk_78 - 1);
v2 = sub_02026074(param0->unk_10->unk_B0, 1);
sub_0200B60C(param0->unk_64, 1, v2, 1, 1, 1);
ov7_0224B4E8(param0, 107);
break;
default:
case 1:
sub_02005748(1523);
ov7_0224B57C(param0, param0->unk_78 - 1);
v2 = sub_02026074(param0->unk_10->unk_B0, 3);
sub_0200B60C(param0->unk_64, 1, v2, 3, 0, 1);
ov7_0224B4E8(param0, 121);
break;
}
return 0;
}
static BOOL ov7_0224BC74 (UnkStruct_020508D4 * param0)
{
UnkStruct_0203CDB0 * v0 = sub_02050A60(param0);
UnkStruct_ov7_0224B4E8 * v1 = sub_02050A64(param0);
int v2;
switch (v1->unk_7C) {
case 0:
ov7_0224B4E8(v1, 106);
v1->unk_7C++;
break;
case 1:
if (sub_0205DA04(v1->unk_74)) {
ov7_0224B5A8(v1);
v1->unk_7C++;
}
break;
case 2:
v2 = ov7_0224B6E8(v1);
if (v2 == -1) {
*v1->unk_70 = 2;
v1->unk_7C = 11;
} else if (v2 == 2) {
*v1->unk_70 = 3;
v1->unk_7C = 11;
} else if (v2 == 1) {
v1->unk_7C = 3;
}
break;
case 3:
ov7_0224B788(v1);
v1->unk_7C++;
break;
case 4:
v2 = ov7_0224B83C(v1);
if (v2 == -1) {
v1->unk_7C = 2;
} else if (v2 == 1) {
v1->unk_7C = 5;
} else if (v2 == 2) {
v1->unk_7C = 7;
}
break;
case 5:
if (ov7_0224BBC4(v1)) {
*v1->unk_70 = 1;
v1->unk_7C = 11;
} else {
v1->unk_7C = 6;
}
break;
case 6:
if (sub_0205DA04(v1->unk_74)) {
if (Unk_021BF67C.unk_48 & (PAD_BUTTON_A | PAD_BUTTON_B)) {
v1->unk_7C = 0;
}
}
break;
case 7:
ov7_0224B558(v1, 1);
ov7_0224B8DC(v1);
v1->unk_7C++;
break;
case 8:
if (Unk_021BF67C.unk_48 & (PAD_BUTTON_A | PAD_BUTTON_B)) {
ov7_0224BBA0(v1);
ov7_0224B4E8(v1, 106);
ov7_0224B5A8(v1);
v1->unk_7C = 9;
}
break;
case 9:
if (sub_0205DA04(v1->unk_74)) {
v1->unk_7C = 3;
}
break;
case 10:
break;
case 11:
ov7_0224B6AC(v1);
ov7_0224B558(v1, 0);
sub_0200B3F0(v1->unk_64);
sub_0200B190(v1->unk_68);
sub_020237BC(v1->unk_14);
sub_020237BC(v1->unk_18);
sub_020237BC(v1->unk_1C);
sub_020237BC(v1->unk_20);
sub_0207A2C0(v1->unk_6C);
sub_020181C4(v1);
return 1;
default:
return 1;
}
return 0;
}
static UnkStruct_ov7_0224B4E8 * ov7_0224BE10 (UnkStruct_0203CDB0 * param0)
{
UnkStruct_ov7_0224B4E8 * v0 = sub_02018184(11, sizeof(UnkStruct_ov7_0224B4E8));
MI_CpuClear8(v0, sizeof(UnkStruct_ov7_0224B4E8));
v0->unk_7C = 0;
v0->unk_10 = param0;
v0->unk_10->unk_B0 = NULL;
v0->unk_64 = sub_0200B358(4);
v0->unk_68 = sub_0200B144(0, 26, 221, 4);
v0->unk_14 = sub_02023790((90 * 2), 4);
v0->unk_18 = sub_02023790((90 * 2), 4);
v0->unk_1C = sub_02023790((90 * 2), 4);
v0->unk_20 = sub_02023790((90 * 2), 4);
v0->unk_6C = sub_0207A2A8(11);
return v0;
}
void ov7_0224BE7C (UnkStruct_020508D4 * param0, u16 * param1)
{
UnkStruct_0203CDB0 * v0 = sub_02050A60(param0);
UnkStruct_ov7_0224B4E8 * v1 = ov7_0224BE10(v0);
v1->unk_70 = param1;
sub_02050944(param0, ov7_0224BC74, v1);
}

View File

@@ -0,0 +1,884 @@
#include <nitro.h>
#include <string.h>
#include "data_021BF67C.h"
#include "struct_decls/struct_0200112C_decl.h"
#include "struct_decls/struct_02001AF4_decl.h"
#include "struct_decls/struct_02006C24_decl.h"
#include "struct_decls/struct_02009714_decl.h"
#include "struct_decls/struct_02009DC8_decl.h"
#include "struct_decls/struct_0200B144_decl.h"
#include "struct_decls/struct_0200B358_decl.h"
#include "struct_decls/struct_02013A04_decl.h"
#include "struct_decls/struct_02018340_decl.h"
#include "struct_decls/struct_020218BC_decl.h"
#include "struct_decls/struct_02022550_decl.h"
#include "struct_decls/struct_02023790_decl.h"
#include "struct_decls/struct_02029D04_decl.h"
#include "struct_decls/struct_0207D3C0_decl.h"
#include "struct_decls/struct_021C0794_decl.h"
#include "overlay007/struct_ov7_0224BEFC_decl.h"
#include "struct_defs/struct_0200C738.h"
#include "struct_defs/struct_02013A04_t.h"
#include "struct_defs/struct_020279FC.h"
#include "struct_defs/struct_0205AA50.h"
#include "overlay019/struct_ov19_021DA864.h"
#include "overlay061/struct_ov61_0222C884.h"
#include "overlay083/struct_ov83_0223D9A8.h"
#include "overlay084/struct_ov84_02240FA8.h"
#include "unk_0200112C.h"
#include "unk_02001AF4.h"
#include "unk_02002B7C.h"
#include "unk_02005474.h"
#include "unk_020068C8.h"
#include "unk_020093B4.h"
#include "unk_02009714.h"
#include "unk_0200A328.h"
#include "unk_0200AC5C.h"
#include "unk_0200B358.h"
#include "unk_0200DA60.h"
#include "unk_02017E74.h"
#include "unk_02018340.h"
#include "unk_0201D670.h"
#include "unk_020218BC.h"
#include "unk_02023790.h"
#include "unk_02025E08.h"
#include "unk_020279FC.h"
#include "unk_020298BC.h"
#include "unk_0205D8CC.h"
#include "unk_0207D3B8.h"
#include "overlay007/ov7_0224BE9C.h"
typedef struct {
u32 unk_00;
u32 unk_04;
u32 unk_08;
} UnkStruct_ov7_0224F1B4;
static const UnkStruct_ov7_0224F1B4 Unk_ov7_0224F1B4[22] = {
{ 0x32, 0x0, 0x1 },
{ 0x33, 0x1, 0x1 },
{ 0x34, 0x2, 0x1 },
{ 0x35, 0x6, 0x1 },
{ 0x36, 0x3, 0x1 },
{ 0x37, 0x4, 0x1 },
{ 0x38, 0x5, 0x1 },
{ 0x39, 0x7, 0x1 },
{ 0x3A, 0xF, 0xA },
{ 0x3B, 0x10, 0xA },
{ 0x3C, 0x11, 0xA },
{ 0x3D, 0x12, 0xA },
{ 0x3E, 0x13, 0xA },
{ 0x3F, 0x1A, 0x32 },
{ 0x40, 0x1F, 0x64 },
{ 0x41, 0x1B, 0x32 },
{ 0x42, 0x20, 0x64 },
{ 0x43, 0x1C, 0x32 },
{ 0x44, 0x1D, 0x32 },
{ 0x45, 0x21, 0x64 },
{ 0x46, 0x1E, 0x64 },
{ 0x47, 0x22, 0x64 }
};
typedef struct {
u32 unk_00;
UnkStruct_0205AA50 * unk_04;
u32 unk_08;
u32 unk_0C;
UnkStruct_02023790 * unk_10;
} UnkStruct_ov7_0224C3EC;
typedef struct {
u32 unk_00;
UnkStruct_0205AA50 * unk_04;
UnkStruct_0200B358 * unk_08;
UnkStruct_02023790 * unk_0C;
UnkStruct_02023790 * unk_10[3];
} UnkStruct_ov7_0224C620;
typedef struct {
u32 unk_00;
UnkStruct_0205AA50 * unk_04;
UnkStruct_0200112C * unk_08;
UnkStruct_02013A04 unk_0C[23];
UnkStruct_02023790 * unk_C4[23];
s32 unk_120;
UnkStruct_0200B358 * unk_124;
UnkStruct_02023790 * unk_128;
u16 unk_12C;
u16 unk_12E;
void * unk_130;
void (* unk_134)(void *, u32);
UnkStruct_02009714 * unk_138[4];
UnkStruct_02009DC8 * unk_148[4];
UnkStruct_02022550 * unk_158[2];
} UnkStruct_ov7_0224C768;
typedef void (* UnkFuncPtr_ov7_0224C768)(void *, u32);
typedef struct {
u32 unk_00;
UnkStruct_02001AF4 * unk_04;
u32 unk_08;
} UnkStruct_ov7_0224CC44;
typedef struct {
u32 unk_00;
UnkStruct_02018340 * unk_04;
UnkStruct_ov7_0224C620 * unk_08;
const UnkStruct_ov7_0224F1B4 * unk_0C;
UnkStruct_0207D3C0 * unk_10;
} UnkStruct_ov7_0224CBE4;
typedef struct UnkStruct_ov7_0224BEFC_t {
u32 unk_00;
u32 unk_04;
UnkStruct_021C0794 * unk_08;
UnkStruct_02029D04 * unk_0C;
UnkStruct_0207D3C0 * unk_10;
UnkStruct_02018340 * unk_14;
u32 unk_18;
UnkStruct_020218BC * unk_1C;
UnkStruct_0200C738 unk_20;
UnkStruct_0200B144 * unk_1AC;
u32 unk_1B0;
u32 unk_1B4;
UnkStruct_ov7_0224C3EC unk_1B8;
UnkStruct_ov7_0224C620 unk_1CC;
UnkStruct_ov7_0224C768 unk_1E8;
UnkStruct_ov7_0224CC44 unk_348;
UnkStruct_ov7_0224CBE4 unk_354;
};
static void ov7_0224C35C(UnkStruct_ov7_0224BEFC * param0);
static void ov7_0224C3B8(UnkStruct_ov7_0224BEFC * param0);
static void ov7_0224C3CC(UnkStruct_ov7_0224BEFC * param0);
static void ov7_0224C3E0(UnkStruct_ov7_0224BEFC * param0);
static void ov7_0224C338(UnkStruct_ov7_0224BEFC * param0);
static void ov7_0224C3EC(UnkStruct_ov7_0224C3EC * param0, UnkStruct_02018340 * param1, u32 param2, u32 param3);
static void ov7_0224C444(UnkStruct_ov7_0224C3EC * param0);
static void ov7_0224C468(UnkStruct_ov7_0224C3EC * param0, UnkStruct_02023790 * param1, u32 param2);
static BOOL ov7_0224C4B8(UnkStruct_ov7_0224C3EC * param0);
static void ov7_0224C4E0(UnkStruct_ov7_0224C3EC * param0, UnkStruct_0200B144 * param1, u32 param2, const UnkStruct_ov7_0224F1B4 * param3, u32 param4);
static void ov7_0224C580(UnkStruct_ov7_0224C3EC * param0, UnkStruct_0200B144 * param1, u32 param2, const UnkStruct_ov7_0224F1B4 * param3, u32 param4);
static void ov7_0224C620(UnkStruct_ov7_0224C620 * param0, UnkStruct_02018340 * param1, UnkStruct_0200B144 * param2, u32 param3);
static void ov7_0224C698(UnkStruct_ov7_0224C620 * param0);
static void ov7_0224C6DC(UnkStruct_ov7_0224C620 * param0, u32 param1, u32 param2, u32 param3);
static void ov7_0224C768(UnkStruct_ov7_0224C768 * param0, UnkStruct_02018340 * param1, u32 param2, const UnkStruct_ov7_0224F1B4 * param3, u32 param4, UnkStruct_0200B144 * param5, void * param6, UnkFuncPtr_ov7_0224C768 param7, UnkStruct_020218BC * param8);
static void ov7_0224C934(UnkStruct_ov7_0224C768 * param0);
static u32 ov7_0224C9A4(UnkStruct_ov7_0224C768 * param0);
static void ov7_0224CA0C(UnkStruct_ov7_0224C768 * param0);
static void ov7_0224CA34(UnkStruct_ov7_0224C768 * param0);
static void ov7_0224CA54(UnkStruct_ov19_021DA864 * param0, UnkStruct_ov7_0224C768 * param1, u32 param2);
static void ov7_0224CB40(UnkStruct_ov7_0224C768 * param0);
static void ov7_0224CB70(UnkStruct_ov7_0224C768 * param0);
static void ov7_0224CC44(UnkStruct_ov7_0224CC44 * param0, UnkStruct_02018340 * param1, u32 param2);
static void ov7_0224CC6C(UnkStruct_ov7_0224CC44 * param0);
static u32 ov7_0224CC78(UnkStruct_ov7_0224CC44 * param0);
static void ov7_0224CBD0(UnkStruct_ov7_0224CBE4 * param0, UnkStruct_ov7_0224C620 * param1, const UnkStruct_ov7_0224F1B4 * param2, UnkStruct_0207D3C0 * param3, u32 param4, UnkStruct_02018340 * param5);
static void ov7_0224CBE4(void * param0, u32 param1);
static BOOL ov7_0224CC88(const UnkStruct_02029D04 * param0, const UnkStruct_ov7_0224F1B4 * param1, u32 param2);
static BOOL ov7_0224CCB8(UnkStruct_0207D3C0 * param0, const UnkStruct_ov7_0224F1B4 * param1, u32 param2, u32 param3);
static BOOL ov7_0224CCE4(const UnkStruct_02029D04 * param0, const UnkStruct_ov7_0224F1B4 * param1, u32 param2);
static void ov7_0224CCF4(UnkStruct_02029D04 * param0, UnkStruct_0207D3C0 * param1, const UnkStruct_ov7_0224F1B4 * param2, u32 param3, u32 param4);
UnkStruct_ov7_0224BEFC * ov7_0224BE9C (u32 param0, UnkStruct_021C0794 * param1, UnkStruct_02018340 * param2)
{
UnkStruct_ov7_0224BEFC * v0 = sub_02018144(param0, sizeof(UnkStruct_ov7_0224BEFC));
memset(v0, 0, sizeof(UnkStruct_ov7_0224BEFC));
v0->unk_18 = param0;
v0->unk_14 = param2;
v0->unk_08 = param1;
v0->unk_0C = sub_02029D04(sub_0202A750(v0->unk_08));
v0->unk_10 = sub_0207D990(param1);
v0->unk_1AC = sub_0200B144(0, 26, 572, v0->unk_18);
ov7_0224C338(v0);
ov7_0224C35C(v0);
ov7_0224C3CC(v0);
return v0;
}
void ov7_0224BEFC (UnkStruct_ov7_0224BEFC * param0)
{
sub_0200B190(param0->unk_1AC);
ov7_0224C3B8(param0);
ov7_0224C3E0(param0);
memset(param0, 0, sizeof(UnkStruct_ov7_0224BEFC));
sub_020181C4(param0);
}
BOOL ov7_0224BF2C (UnkStruct_ov7_0224BEFC * param0)
{
UnkStruct_02023790 * v0;
BOOL v1;
switch (param0->unk_00) {
case 0:
ov7_0224C3EC(&param0->unk_1B8, param0->unk_14, param0->unk_18, param0->unk_1B4);
v0 = sub_0200B1EC(param0->unk_1AC, 4);
ov7_0224C468(&param0->unk_1B8, v0, param0->unk_18);
sub_020237BC(v0);
param0->unk_00 = 11;
param0->unk_04 = 1;
break;
case 1:
if (ov7_0224CC88(param0->unk_0C, Unk_ov7_0224F1B4, 22)) {
v0 = sub_0200B1EC(param0->unk_1AC, 5);
ov7_0224C468(&param0->unk_1B8, v0, param0->unk_18);
sub_020237BC(v0);
param0->unk_00 = 11;
param0->unk_04 = 12;
} else {
param0->unk_00 = 2;
}
break;
case 2:
ov7_0224C620(&param0->unk_1CC, param0->unk_14, param0->unk_1AC, param0->unk_18);
ov7_0224CBD0(&param0->unk_354, &param0->unk_1CC, Unk_ov7_0224F1B4, param0->unk_10, param0->unk_18, param0->unk_14);
ov7_0224C768(&param0->unk_1E8, param0->unk_14, param0->unk_18, Unk_ov7_0224F1B4, 22, param0->unk_1AC, &param0->unk_354, ov7_0224CBE4, param0->unk_1C);
case 3:
ov7_0224CA0C(&param0->unk_1E8);
v0 = sub_0200B1EC(param0->unk_1AC, 6);
ov7_0224C468(&param0->unk_1B8, v0, param0->unk_18);
sub_020237BC(v0);
param0->unk_00 = 10;
param0->unk_04 = 4;
break;
case 4:
v1 = ov7_0224C9A4(&param0->unk_1E8);
if ((v1 != 0xffffffff) && (v1 != 0xfffffffe)) {
sub_02019CB8(param0->unk_14, 3, 0, 0, 0, 32, 18, 17);
ov7_0224CA34(&param0->unk_1E8);
ov7_0224C4E0(&param0->unk_1B8, param0->unk_1AC, param0->unk_18, Unk_ov7_0224F1B4, param0->unk_1E8.unk_12C);
param0->unk_00 = 10;
param0->unk_04 = 5;
sub_02005748(1500);
} else if (v1 == 0xfffffffe) {
v0 = sub_0200B1EC(param0->unk_1AC, 11);
ov7_0224C468(&param0->unk_1B8, v0, param0->unk_18);
sub_020237BC(v0);
param0->unk_00 = 11;
param0->unk_04 = 12;
sub_02005748(1500);
}
break;
case 5:
ov7_0224CC44(&param0->unk_348, param0->unk_14, param0->unk_18);
param0->unk_00 = 6;
break;
case 6:
v1 = ov7_0224CC78(&param0->unk_348);
if (v1 == 0) {
if (ov7_0224CCB8(param0->unk_10, Unk_ov7_0224F1B4, param0->unk_1E8.unk_12C, param0->unk_18) == 0) {
v0 = sub_0200B1EC(param0->unk_1AC, 9);
ov7_0224C468(&param0->unk_1B8, v0, param0->unk_18);
sub_020237BC(v0);
param0->unk_00 = 11;
param0->unk_04 = 3;
ov7_0224CC6C(&param0->unk_348);
break;
}
if (ov7_0224CCE4(param0->unk_0C, Unk_ov7_0224F1B4, param0->unk_1E8.unk_12C) == 0) {
v0 = sub_0200B1EC(param0->unk_1AC, 10);
ov7_0224C468(&param0->unk_1B8, v0, param0->unk_18);
sub_020237BC(v0);
ov7_0224CC6C(&param0->unk_348);
param0->unk_00 = 11;
param0->unk_04 = 3;
break;
}
v0 = sub_0200B1EC(param0->unk_1AC, 8);
ov7_0224C468(&param0->unk_1B8, v0, param0->unk_18);
sub_020237BC(v0);
ov7_0224CC6C(&param0->unk_348);
param0->unk_00 = 11;
param0->unk_04 = 7;
} else if (v1 == 0xfffffffe) {
ov7_0224CC6C(&param0->unk_348);
param0->unk_00 = 3;
}
break;
case 7:
ov7_0224CCF4(param0->unk_0C, param0->unk_10, Unk_ov7_0224F1B4, param0->unk_1E8.unk_12C, param0->unk_18);
ov7_0224C580(&param0->unk_1B8, param0->unk_1AC, param0->unk_18, Unk_ov7_0224F1B4, param0->unk_1E8.unk_12C);
if (ov7_0224CC88(param0->unk_0C, Unk_ov7_0224F1B4, 22)) {
param0->unk_00 = 11;
param0->unk_04 = 8;
} else {
param0->unk_00 = 11;
param0->unk_04 = 3;
}
break;
case 8:
v0 = sub_0200B1EC(param0->unk_1AC, 13);
ov7_0224C468(&param0->unk_1B8, v0, param0->unk_18);
sub_020237BC(v0);
param0->unk_00 = 11;
param0->unk_04 = 9;
break;
case 9:
v0 = sub_0200B1EC(param0->unk_1AC, 5);
ov7_0224C468(&param0->unk_1B8, v0, param0->unk_18);
sub_020237BC(v0);
param0->unk_00 = 11;
param0->unk_04 = 12;
break;
case 10:
if (ov7_0224C4B8(&param0->unk_1B8)) {
param0->unk_00 = param0->unk_04;
}
break;
case 11:
if (ov7_0224C4B8(&param0->unk_1B8)) {
if (Unk_021BF67C.unk_48 & (PAD_BUTTON_A | PAD_BUTTON_B)) {
param0->unk_00 = param0->unk_04;
}
}
break;
case 12:
ov7_0224C444(&param0->unk_1B8);
ov7_0224C698(&param0->unk_1CC);
ov7_0224C934(&param0->unk_1E8);
ov7_0224CC6C(&param0->unk_348);
return 1;
default:
break;
}
sub_020219F8(param0->unk_1C);
return 0;
}
static void ov7_0224C338 (UnkStruct_ov7_0224BEFC * param0)
{
UnkStruct_020279FC * v0 = sub_02025E44(param0->unk_08);
param0->unk_1B0 = sub_02027B50(v0);
param0->unk_1B4 = sub_02027AC0(v0);
}
static void ov7_0224C35C (UnkStruct_ov7_0224BEFC * param0)
{
sub_0200DD0C(param0->unk_14, 3, 1, 10, param0->unk_1B0, param0->unk_18);
sub_02002E98(0, 12 * 32, param0->unk_18);
sub_0200DAA4(param0->unk_14, 3, (1 + (18 + 12)), 11, 0, param0->unk_18);
sub_02002E7C(0, 13 * 32, param0->unk_18);
sub_02019EBC(param0->unk_14, 3);
}
static void ov7_0224C3B8 (UnkStruct_ov7_0224BEFC * param0)
{
sub_02019EBC(param0->unk_14, 3);
sub_0205D8CC(0, 1);
}
static void ov7_0224C3CC (UnkStruct_ov7_0224BEFC * param0)
{
param0->unk_1C = sub_020095C4(2, &param0->unk_20, param0->unk_18);
}
static void ov7_0224C3E0 (UnkStruct_ov7_0224BEFC * param0)
{
sub_02021964(param0->unk_1C);
}
static void ov7_0224C3EC (UnkStruct_ov7_0224C3EC * param0, UnkStruct_02018340 * param1, u32 param2, u32 param3)
{
if (param0->unk_00 == 1) {
return;
}
param0->unk_08 = param3;
param0->unk_04 = sub_0201A778(param2, 1);
sub_0201A7E8(param1, param0->unk_04, 3, 2, 19, 27, 4, 12, ((1 + (18 + 12)) + 9));
sub_0201ADA4(param0->unk_04, 15);
sub_0200E060(param0->unk_04, 0, 1, 10);
param0->unk_00 = 1;
}
static void ov7_0224C444 (UnkStruct_ov7_0224C3EC * param0)
{
if (param0->unk_00 == 0) {
return;
}
sub_0201ACF4(param0->unk_04);
sub_0201A8FC(param0->unk_04);
sub_0201A928(param0->unk_04, 1);
param0->unk_00 = 0;
}
static void ov7_0224C468 (UnkStruct_ov7_0224C3EC * param0, UnkStruct_02023790 * param1, u32 param2)
{
GF_ASSERT(param0->unk_10 == NULL);
sub_0201ADA4(param0->unk_04, 15);
param0->unk_10 = sub_02023868(param1, param2);
param0->unk_0C = sub_0201D78C(param0->unk_04, 1, param0->unk_10, 0, 0, param0->unk_08, ((u32)(((1 & 0xff) << 16) | ((2 & 0xff) << 8) | ((15 & 0xff) << 0))), NULL);
sub_0201A954(param0->unk_04);
}
static BOOL ov7_0224C4B8 (UnkStruct_ov7_0224C3EC * param0)
{
if (sub_0201D724(param0->unk_0C) == 0) {
if (param0->unk_10 != NULL) {
sub_020237BC(param0->unk_10);
param0->unk_10 = NULL;
}
return 1;
}
return 0;
}
static void ov7_0224C4E0 (UnkStruct_ov7_0224C3EC * param0, UnkStruct_0200B144 * param1, u32 param2, const UnkStruct_ov7_0224F1B4 * param3, u32 param4)
{
UnkStruct_02023790 * v0;
UnkStruct_02023790 * v1;
UnkStruct_0200B358 * v2;
v2 = sub_0200B358(param2);
v1 = sub_02023790(200, param2);
v0 = sub_0200B1EC(param1, 7);
if (param3[param4].unk_08 == 1) {
sub_0200B70C(v2, 0, param3[param4].unk_04 + 149);
} else {
sub_0200B77C(v2, 0, param3[param4].unk_04 + 149);
}
sub_0200B60C(v2, 1, param3[param4].unk_08, 3, 0, 1);
sub_0200BFAC(v2, 2, param3[param4].unk_00);
sub_0200C388(v2, v1, v0);
ov7_0224C468(param0, v1, param2);
sub_0200B3F0(v2);
sub_020237BC(v1);
sub_020237BC(v0);
}
static void ov7_0224C580 (UnkStruct_ov7_0224C3EC * param0, UnkStruct_0200B144 * param1, u32 param2, const UnkStruct_ov7_0224F1B4 * param3, u32 param4)
{
UnkStruct_02023790 * v0;
UnkStruct_02023790 * v1;
UnkStruct_0200B358 * v2;
v2 = sub_0200B358(param2);
v1 = sub_02023790(200, param2);
v0 = sub_0200B1EC(param1, 12);
if (param3[param4].unk_08 == 1) {
sub_0200B70C(v2, 0, param3[param4].unk_04 + 149);
} else {
sub_0200B77C(v2, 0, param3[param4].unk_04 + 149);
}
sub_0200B60C(v2, 1, param3[param4].unk_08, 3, 0, 1);
sub_0200BFAC(v2, 2, param3[param4].unk_00);
sub_0200C388(v2, v1, v0);
ov7_0224C468(param0, v1, param2);
sub_0200B3F0(v2);
sub_020237BC(v1);
sub_020237BC(v0);
}
static void ov7_0224C620 (UnkStruct_ov7_0224C620 * param0, UnkStruct_02018340 * param1, UnkStruct_0200B144 * param2, u32 param3)
{
int v0;
if (param0->unk_00 == 1) {
return;
}
param0->unk_04 = sub_0201A778(param3, 1);
sub_0201A7E8(param1, param0->unk_04, 3, 1, 11, 14, 6, 13, (((1 + (18 + 12)) + 9) + (27 * 4)));
param0->unk_08 = sub_0200B358(param3);
for (v0 = 0; v0 < 3; v0++) {
param0->unk_10[v0] = sub_0200B1EC(param2, 16 + v0);
}
param0->unk_0C = sub_02023790(32, param3);
sub_0201ADA4(param0->unk_04, 15);
param0->unk_00 = 1;
}
static void ov7_0224C698 (UnkStruct_ov7_0224C620 * param0)
{
int v0;
if (param0->unk_00 == 0) {
return;
}
for (v0 = 0; v0 < 3; v0++) {
sub_020237BC(param0->unk_10[v0]);
}
sub_020237BC(param0->unk_0C);
sub_0200B3F0(param0->unk_08);
sub_0201ACF4(param0->unk_04);
sub_0201A8FC(param0->unk_04);
sub_0201A928(param0->unk_04, 1);
param0->unk_00 = 0;
}
static void ov7_0224C6DC (UnkStruct_ov7_0224C620 * param0, u32 param1, u32 param2, u32 param3)
{
int v0;
sub_0200B70C(param0->unk_08, 0, param1 + 149);
sub_0200B60C(param0->unk_08, 1, param2, 3, 1, 1);
sub_0200B60C(param0->unk_08, 2, param3, 3, 1, 1);
sub_0201ADA4(param0->unk_04, 15);
for (v0 = 0; v0 < 3; v0++) {
sub_0200C388(param0->unk_08, param0->unk_0C, param0->unk_10[v0]);
sub_0201D78C(param0->unk_04, 0, param0->unk_0C, 0, 16 * v0, 0xff, ((u32)(((1 & 0xff) << 16) | ((2 & 0xff) << 8) | ((15 & 0xff) << 0))), NULL);
}
sub_0200DC48(param0->unk_04, 0, (1 + (18 + 12)), 11);
}
static void ov7_0224C768 (UnkStruct_ov7_0224C768 * param0, UnkStruct_02018340 * param1, u32 param2, const UnkStruct_ov7_0224F1B4 * param3, u32 param4, UnkStruct_0200B144 * param5, void * param6, UnkFuncPtr_ov7_0224C768 param7, UnkStruct_020218BC * param8)
{
int v0;
UnkStruct_02023790 * v1;
UnkStruct_ov19_021DA864 v2;
UnkStruct_ov83_0223D9A8 v3;
static const u8 v4[2] = {
8, 136
};
static UnkStruct_ov84_02240FA8 v5 = {
NULL,
NULL,
NULL,
NULL,
0,
7,
0,
16,
0,
8,
1,
15,
2,
0,
0,
0,
0,
0,
NULL
};
if (param0->unk_00 == 1) {
return;
}
param0->unk_00 = 1;
param0->unk_120 = param4 + 1;
param0->unk_130 = param6;
param0->unk_134 = param7;
param0->unk_04 = sub_0201A778(param2, 1);
sub_0201A7E8(param1, param0->unk_04, 3, 17, 1, 14, 16, 13, ((((1 + (18 + 12)) + 9) + (27 * 4)) + (14 * 6)));
param0->unk_124 = sub_0200B358(param2);
param0->unk_128 = sub_02023790(32, param2);
v1 = sub_0200B1EC(param5, 16);
for (v0 = 0; v0 < param4; v0++) {
sub_0200BFAC(param0->unk_124, 0, param3[v0].unk_00);
sub_0200C388(param0->unk_124, param0->unk_128, v1);
param0->unk_C4[v0] = sub_02023868(param0->unk_128, param2);
param0->unk_0C[v0].unk_00 = param0->unk_C4[v0];
param0->unk_0C[v0].unk_04 = v0;
}
param0->unk_C4[param4] = sub_0200B1EC(param5, 19);
param0->unk_0C[param4].unk_00 = param0->unk_C4[param4];
param0->unk_0C[param4].unk_04 = param4;
sub_0200B3F0(param0->unk_124);
sub_020237BC(param0->unk_128);
sub_020237BC(v1);
v5.unk_0C = param0->unk_04;
v5.unk_10 = param0->unk_120;
v5.unk_00 = param0->unk_0C;
param0->unk_08 = sub_0200112C(&v5, 0, 0, param2);
sub_0200DC48(param0->unk_04, 0, (1 + (18 + 12)), 11);
for (v0 = 0; v0 < 4; v0++) {
param0->unk_138[v0] = sub_02009714(1, v0, param2);
}
ov7_0224CA54(&v2, param0, param2);
v3.unk_00 = param8;
v3.unk_04 = &v2;
v3.unk_14 = 0;
v3.unk_18 = NNS_G2D_VRAM_TYPE_2DMAIN;
v3.unk_1C = param2;
v3.unk_08.x = 192 * FX32_ONE;
for (v0 = 0; v0 < 2; v0++) {
v3.unk_08.y = v4[v0] * FX32_ONE;
param0->unk_158[v0] = sub_02021B90(&v3);
sub_02021D6C(param0->unk_158[v0], v0);
sub_02021CC8(param0->unk_158[v0], 1);
}
}
static void ov7_0224C934 (UnkStruct_ov7_0224C768 * param0)
{
int v0;
if (param0->unk_00 == 0) {
return;
}
for (v0 = 0; v0 < 2; v0++) {
sub_02021BD4(param0->unk_158[v0]);
}
ov7_0224CB40(param0);
for (v0 = 0; v0 < param0->unk_120; v0++) {
sub_020237BC(param0->unk_C4[v0]);
}
sub_02001384(param0->unk_08, NULL, NULL);
sub_0201ACF4(param0->unk_04);
sub_0201A8FC(param0->unk_04);
sub_0201A928(param0->unk_04, 1);
param0->unk_00 = 1;
}
static u32 ov7_0224C9A4 (UnkStruct_ov7_0224C768 * param0)
{
u32 v0;
u16 v1;
v0 = sub_02001288(param0->unk_08);
if (v0 == 0xffffffff) {
sub_020014D0(param0->unk_08, &v1);
if (param0->unk_12C != v1) {
param0->unk_12C = v1;
param0->unk_134(param0->unk_130, param0->unk_12C);
sub_02005748(1500);
ov7_0224CB70(param0);
}
} else if (v0 != 0xfffffffe) {
if (param0->unk_12C == (param0->unk_120 - 1)) {
v0 = 0xfffffffe;
}
}
return v0;
}
static void ov7_0224CA0C (UnkStruct_ov7_0224C768 * param0)
{
param0->unk_134(param0->unk_130, param0->unk_12C);
sub_0200DC48(param0->unk_04, 0, (1 + (18 + 12)), 11);
ov7_0224CB70(param0);
}
static void ov7_0224CA34 (UnkStruct_ov7_0224C768 * param0)
{
sub_02021CAC(param0->unk_158[0], 0);
sub_02021CAC(param0->unk_158[1], 0);
}
static void ov7_0224CA54 (UnkStruct_ov19_021DA864 * param0, UnkStruct_ov7_0224C768 * param1, u32 param2)
{
UnkStruct_02006C24 * v0 = sub_02006C24(62, param2);
param1->unk_148[0] = sub_02009A4C(param1->unk_138[0], v0, 4, 0, 5000, NNS_G2D_VRAM_TYPE_2DMAIN, param2);
param1->unk_148[1] = sub_02009B04(param1->unk_138[1], v0, 10, 0, 5000, NNS_G2D_VRAM_TYPE_2DMAIN, 1, param2);
param1->unk_148[2] = sub_02009BC4(param1->unk_138[2], v0, 5, 0, 5000, 2, param2);
param1->unk_148[3] = sub_02009BC4(param1->unk_138[3], v0, 6, 0, 5000, 3, param2);
sub_02006CA8(v0);
sub_0200A3DC(param1->unk_148[0]);
sub_0200A640(param1->unk_148[1]);
sub_020093B4(param0, 5000, 5000, 5000, 5000, 0xffffffff, 0xffffffff, 0, 0, param1->unk_138[0], param1->unk_138[1], param1->unk_138[2], param1->unk_138[3], NULL, NULL);
}
static void ov7_0224CB40 (UnkStruct_ov7_0224C768 * param0)
{
int v0;
sub_0200A4E4(param0->unk_148[0]);
sub_0200A6DC(param0->unk_148[1]);
for (v0 = 0; v0 < 4; v0++) {
sub_02009754(param0->unk_138[v0]);
}
}
static void ov7_0224CB70 (UnkStruct_ov7_0224C768 * param0)
{
u16 v0;
sub_020014DC(param0->unk_08, &v0, NULL);
if ((v0 <= 0)) {
sub_02021CAC(param0->unk_158[0], 0);
} else {
sub_02021CAC(param0->unk_158[0], 1);
}
if (v0 >= (param0->unk_120 - 7)) {
sub_02021CAC(param0->unk_158[1], 0);
} else {
sub_02021CAC(param0->unk_158[1], 1);
}
}
static void ov7_0224CBD0 (UnkStruct_ov7_0224CBE4 * param0, UnkStruct_ov7_0224C620 * param1, const UnkStruct_ov7_0224F1B4 * param2, UnkStruct_0207D3C0 * param3, u32 param4, UnkStruct_02018340 * param5)
{
param0->unk_04 = param5;
param0->unk_08 = param1;
param0->unk_0C = param2;
param0->unk_10 = param3;
param0->unk_00 = param4;
}
static void ov7_0224CBE4 (void * param0, u32 param1)
{
UnkStruct_ov7_0224CBE4 * v0 = param0;
u32 v1;
if (param1 < 22) {
v1 = sub_0207D730(v0->unk_10, v0->unk_0C[param1].unk_04 + 149, v0->unk_00);
ov7_0224C6DC(v0->unk_08, v0->unk_0C[param1].unk_04, v0->unk_0C[param1].unk_08, v1);
} else {
sub_02019CB8(v0->unk_04, 3, 0, 1 - 1, 11 - 1, 14 + 2, 6 + 2, 17);
sub_02019448(v0->unk_04, 3);
}
}
static void ov7_0224CC44 (UnkStruct_ov7_0224CC44 * param0, UnkStruct_02018340 * param1, u32 param2)
{
static const UnkStruct_ov61_0222C884 v0 = {
3,
24,
13,
7,
4,
13,
(((((1 + (18 + 12)) + 9) + (27 * 4)) + (14 * 6)) + (14 * 16))
};
if (param0->unk_00 == 1) {
return;
}
param0->unk_04 = sub_02002100(param1, &v0, (1 + (18 + 12)), 11, param2);
param0->unk_08 = param2;
param0->unk_00 = 1;
}
static void ov7_0224CC6C (UnkStruct_ov7_0224CC44 * param0)
{
if (param0->unk_00 == 0) {
return;
}
param0->unk_00 = 0;
}
static u32 ov7_0224CC78 (UnkStruct_ov7_0224CC44 * param0)
{
u32 v0;
v0 = sub_02002114(param0->unk_04, param0->unk_08);
return v0;
}
static BOOL ov7_0224CC88 (const UnkStruct_02029D04 * param0, const UnkStruct_ov7_0224F1B4 * param1, u32 param2)
{
int v0;
for (v0 = 0; v0 < param2; v0++) {
if (sub_02029D50(param0, param1[v0].unk_00, 1) == 1) {
return 0;
}
}
return 1;
}
static BOOL ov7_0224CCB8 (UnkStruct_0207D3C0 * param0, const UnkStruct_ov7_0224F1B4 * param1, u32 param2, u32 param3)
{
u32 v0;
v0 = sub_0207D730(param0, param1[param2].unk_04 + 149, param3);
if (v0 >= param1[param2].unk_08) {
return 1;
}
return 0;
}
static BOOL ov7_0224CCE4 (const UnkStruct_02029D04 * param0, const UnkStruct_ov7_0224F1B4 * param1, u32 param2)
{
return sub_02029D50(param0, param1[param2].unk_00, 1);
}
static void ov7_0224CCF4 (UnkStruct_02029D04 * param0, UnkStruct_0207D3C0 * param1, const UnkStruct_ov7_0224F1B4 * param2, u32 param3, u32 param4)
{
u32 v0 = param2[param3].unk_00;
u32 v1 = param2[param3].unk_04 + 149;
u32 v2 = param2[param3].unk_08;
BOOL v3;
sub_02029E2C(param0, v0, 1);
v3 = sub_0207D60C(param1, v1, v2, param4);
GF_ASSERT(v3 == 1);
}

File diff suppressed because it is too large Load Diff