Fix data, option menus, impl boos, fix demo camera (#156)

* Fix data and option menus

* safer code

* wip boos impl

* finish impl boos

* Fix demo camera

* slightly better match
This commit is contained in:
MegaMech
2025-01-18 08:58:12 -07:00
committed by GitHub
parent 04d56d6ba0
commit 8c46368d5d
14 changed files with 549 additions and 382 deletions
+96 -1
View File
@@ -403,6 +403,101 @@ SplineData D_800E5C90 = {
},
};
/** The below boo6-10 are generated to allow up to 10 boos **/
SplineData boo6 = {
0x0016,
{
{ { 0x0007, 0x0013, 0x0035 }, 0x0029 }, { { 0x0008, 0x000f, 0x0017 }, 0x0029 },
{ { 0x0001, 0x0013, 0x0002 }, 0x0029 }, { { 0x0016, 0x000b, 0x0002 }, 0x0029 },
{ { 0x0001, 0x0013, 0xffe0 }, 0x0029 }, { { 0xfff1, 0x000b, 0x0002 }, 0x0029 },
{ { 0x0001, 0x0013, 0xffe0 }, 0x0029 }, { { 0x0016, 0x000b, 0x0002 }, 0x0029 },
{ { 0x0001, 0x0013, 0x0020 }, 0x0029 }, { { 0xfff1, 0x000b, 0x0035 }, 0x0029 },
{ { 0x0001, 0x0013, 0x0020 }, 0x0029 }, { { 0x0016, 0x000b, 0x0002 }, 0x0029 },
{ { 0x0001, 0x0013, 0xffe0 }, 0x0029 }, { { 0xfff1, 0x000b, 0x0002 }, 0x0029 },
{ { 0x0001, 0x0013, 0xffe0 }, 0x0029 }, { { 0x0016, 0x000b, 0x0002 }, 0x0029 },
{ { 0x0001, 0x0013, 0xffe0 }, 0x0029 }, { { 0xfff1, 0x000b, 0x0002 }, 0x0029 },
{ { 0x0001, 0x0013, 0x0016 }, 0x0029 }, { { 0x0007, 0x000b, 0x001f }, 0x0029 },
{ { 0x0007, 0x0013, 0x0030 }, 0x0029 }, { { 0x0007, 0x0013, 0x0035 }, 0x0029 },
{ { 0x0007, 0x0013, 0x0035 }, 0x0029 },
},
};
SplineData boo7 = {
0x0017,
{
{ { 0x0003, 0x0012, 0xffd0 }, 0x0026 }, { { 0x0017, 0x000e, 0xffd5 }, 0x0026 },
{ { 0x0003, 0x0012, 0xffe5 }, 0x0026 }, { { 0xfff0, 0x000c, 0x0002 }, 0x0026 },
{ { 0x0003, 0x0012, 0x0025 }, 0x0026 }, { { 0x0017, 0x000c, 0x0035 }, 0x0026 },
{ { 0x0003, 0x0012, 0x0039 }, 0x0026 }, { { 0xfff0, 0x000c, 0x0039 }, 0x0026 },
{ { 0x0003, 0x0012, 0x0025 }, 0x0026 }, { { 0xfff0, 0x000c, 0x0020 }, 0x0026 },
{ { 0x0003, 0x0012, 0x0003 }, 0x0026 }, { { 0xfffa, 0x000c, 0x0020 }, 0x0026 },
{ { 0x0003, 0x0012, 0x0030 }, 0x0026 }, { { 0x000e, 0x000b, 0x0039 }, 0x0026 },
{ { 0x0003, 0x0012, 0x0045 }, 0x0026 }, { { 0xfffa, 0x0016, 0x0039 }, 0x0026 },
{ { 0x0003, 0x0010, 0x0030 }, 0x0026 }, { { 0x000e, 0x000d, 0x0025 }, 0x0026 },
{ { 0x0003, 0x0012, 0x0005 }, 0x0026 }, { { 0xfffa, 0x000d, 0x0025 }, 0x0026 },
{ { 0x0003, 0x0012, 0x0030 }, 0x0026 }, { { 0x000e, 0x000d, 0x0039 }, 0x0026 },
{ { 0x0003, 0x000d, 0x0045 }, 0x0026 }, { { 0x0003, 0x0012, 0xffd0 }, 0x0026 },
},
};
SplineData boo8 = {
0x0018,
{
{ { 0xfff3, 0x000b, 0x0001 }, 0x0015 }, { { 0xfff7, 0x000b, 0xfff7 }, 0x0015 },
{ { 0x0001, 0x000b, 0xfff2 }, 0x0015 }, { { 0x000b, 0x000b, 0xfff7 }, 0x0015 },
{ { 0x000e, 0x000b, 0x0001 }, 0x0015 }, { { 0x000b, 0x000b, 0x000b }, 0x0015 },
{ { 0x0001, 0x000b, 0x000e }, 0x0015 }, { { 0xfff7, 0x000b, 0x000b }, 0x0015 },
{ { 0xfff3, 0x000b, 0x0001 }, 0x0015 }, { { 0xfff7, 0x000b, 0xfff7 }, 0x0015 },
{ { 0x0001, 0x000b, 0xfff2 }, 0x0015 }, { { 0x000b, 0x000b, 0xfff7 }, 0x0015 },
{ { 0x000e, 0x000b, 0x0001 }, 0x0015 }, { { 0x000b, 0x000b, 0x000b }, 0x0015 },
{ { 0x0001, 0x000b, 0x000e }, 0x0015 }, { { 0xfff7, 0x000b, 0x000b }, 0x0015 },
{ { 0xfff3, 0x000b, 0x0001 }, 0x0015 }, { { 0xfff7, 0x000b, 0xfff7 }, 0x0015 },
{ { 0x0001, 0x000b, 0xfff2 }, 0x0015 }, { { 0x000b, 0x000b, 0xfff7 }, 0x0015 },
{ { 0x000e, 0x000b, 0x0001 }, 0x0015 }, { { 0x000b, 0x000b, 0x000b }, 0x0015 },
{ { 0x0001, 0x000b, 0x000e }, 0x0015 }, { { 0xfff7, 0x000b, 0x000b }, 0x0015 },
{ { 0xfff3, 0x000b, 0x0001 }, 0x0015 },
},
};
SplineData boo9 = {
0x0016,
{
{ { 0x0007, 0x0013, 0x0033 }, 0x001f }, { { 0x0007, 0x0010, 0x0016 }, 0x001f },
{ { 0x0001, 0x0013, 0x0005 }, 0x001f }, { { 0x0016, 0x000b, 0x0005 }, 0x001f },
{ { 0x0001, 0x0013, 0xffe1 }, 0x001f }, { { 0xfff2, 0x000b, 0x0005 }, 0x001f },
{ { 0x0001, 0x0013, 0xffe1 }, 0x001f }, { { 0x0016, 0x000b, 0x0005 }, 0x001f },
{ { 0x0001, 0x0013, 0x0021 }, 0x001f }, { { 0xfff2, 0x000b, 0x0033 }, 0x001f },
{ { 0x0001, 0x0013, 0x0021 }, 0x001f }, { { 0x0016, 0x000b, 0x0005 }, 0x001f },
{ { 0x0001, 0x0013, 0xffe1 }, 0x001f }, { { 0xfff2, 0x000b, 0x0005 }, 0x001f },
{ { 0x0001, 0x0013, 0xffe1 }, 0x001f }, { { 0x0016, 0x000b, 0x0005 }, 0x001f },
{ { 0x0001, 0x0013, 0xffe1 }, 0x001f }, { { 0xfff2, 0x000b, 0x0005 }, 0x001f },
{ { 0x0001, 0x0013, 0x0015 }, 0x001f }, { { 0x0007, 0x000b, 0x001f }, 0x001f },
{ { 0x0007, 0x0013, 0x002f }, 0x001f }, { { 0x0007, 0x0013, 0x0033 }, 0x001f },
{ { 0x0007, 0x0013, 0x0033 }, 0x001f },
},
};
SplineData boo10 = {
0x0017,
{
{ { 0x0001, 0x0012, 0xffd5 }, 0x001a }, { { 0x0018, 0x000e, 0xffd7 }, 0x001a },
{ { 0x0001, 0x0012, 0xffe7 }, 0x001a }, { { 0xfff2, 0x000c, 0x0004 }, 0x001a },
{ { 0x0001, 0x0012, 0x0026 }, 0x001a }, { { 0x0018, 0x000c, 0x0036 }, 0x001a },
{ { 0x0001, 0x0012, 0x003a }, 0x001a }, { { 0xfff2, 0x000c, 0x003a }, 0x001a },
{ { 0x0001, 0x0012, 0x0026 }, 0x001a }, { { 0xfff2, 0x000c, 0x0021 }, 0x001a },
{ { 0x0001, 0x0012, 0x0004 }, 0x001a }, { { 0xfffb, 0x000c, 0x0021 }, 0x001a },
{ { 0x0001, 0x0012, 0x0031 }, 0x001a }, { { 0x000f, 0x000b, 0x003a }, 0x001a },
{ { 0x0001, 0x0012, 0x0046 }, 0x001a }, { { 0xfffb, 0x0017, 0x003a }, 0x001a },
{ { 0x0001, 0x0010, 0x0031 }, 0x001a }, { { 0x000f, 0x000e, 0x0026 }, 0x001a },
{ { 0x0001, 0x0012, 0x0006 }, 0x001a }, { { 0xfffb, 0x000e, 0x0026 }, 0x001a },
{ { 0x0001, 0x0012, 0x0031 }, 0x001a }, { { 0x000f, 0x000e, 0x003a }, 0x001a },
{ { 0x0001, 0x000e, 0x0046 }, 0x001a }, { { 0x0001, 0x0012, 0xffd5 }, 0x001a },
},
};
/** The above boo6-10 are generated to allow up to 10 boos **/
// Only referenced in func_8007D070, which itself is unused
SplineData D_800E5D54 = {
0x0004,
@@ -427,7 +522,7 @@ SplineData D_800E5D78 = {
// Note the use of the plain SplineData type here. Since these are pointers, we don't care
// about their internal array size
SplineData* D_800E5D9C[] = { &D_800E5988, &D_800E5A44, &D_800E5B08, &D_800E5BD4, &D_800E5C90 };
SplineData* D_800E5D9C[] = { &D_800E5988, &D_800E5A44, &D_800E5B08, &D_800E5BD4, &D_800E5C90, &boo6, &boo7, &boo8, &boo9, &boo10 };
// Unused
SplineData* D_800E5DB0 = &D_800E5988;