diff --git a/configure.py b/configure.py index c77657bc..c26c011b 100644 --- a/configure.py +++ b/configure.py @@ -1328,7 +1328,7 @@ config.libs = [ Object(Matching, "REL/executor.c"), Object(Matching, "REL/present/init.c"), Object(Matching, "REL/present/camera.c"), - Object(NonMatching, "REL/present/present.c"), + Object(Matching, "REL/present/present.c"), Object(Matching, "REL/present/main.c"), Object(Matching, "REL/present/common.c"), } diff --git a/include/REL/present.h b/include/REL/present.h index 59c8fc88..af9b3a01 100644 --- a/include/REL/present.h +++ b/include/REL/present.h @@ -132,8 +132,8 @@ typedef struct UnkPresentNestedInnerStruct { } UnkPresentNestedInnerStruct; typedef struct UnkPresentNestedOuterStruct { - /* 0x00 */ UnkPresentNestedInnerStruct unk_00[11]; - /* 0xB0 */ s32 unkB0; + /* 0x00 */ s32 unk00; + /* 0x04 */ UnkPresentNestedInnerStruct unk_04[11]; } UnkPresentNestedOuterStruct; typedef struct UnkPresentStruct7 { diff --git a/src/REL/present/present.c b/src/REL/present/present.c index 374eb215..8598cf4b 100644 --- a/src/REL/present/present.c +++ b/src/REL/present/present.c @@ -41,76 +41,55 @@ static const s32 lbl_1_rodata_A0[] = { 0x006E006C, 0x006E006B, 0x006E0000, 0x006 0x006E0082, 0x006E0083, 0x006E0084, 0x006E0085, 0x006E0086 }; static const UnkPresentNestedOuterStruct lbl_1_rodata_2B8[] = { - { { { 0x00000006, 0x00000002, 0x00000008, 0x00320006 }, { 0x00320042, 0x00000003, 0x00000009, 0x00320007 }, - { 0x00320043, 0x00000004, 0x0000000A, 0x00320008 }, { 0x00320044, 0x00000005, 0x0000000B, 0x00320009 }, - { 0x00320045, 0x00000006, 0x0000000C, 0x0032000A }, { 0x00320046, 0x00000007, 0x0000000D, 0x0032000B }, - { 0x00320047, 0x00000000, 0x00000000, 0x00000000 }, { 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, - { 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, { 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, - { 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, - 0x00000000 }, - { { { 0x00000006, 0x0000000E, 0x00000014, 0x0032000C }, { 0x00320048, 0x0000000F, 0x00000015, 0x0032000D }, - { 0x00320049, 0x00000010, 0x00000016, 0x0032000E }, { 0x0032004A, 0x00000011, 0x00000017, 0x0032000F }, - { 0x0032004B, 0x00000012, 0x00000018, 0x00320010 }, { 0x0032004C, 0x00000013, 0x00000019, 0x00320011 }, - { 0x0032004D, 0x00000000, 0x00000000, 0x00000000 }, { 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, - { 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, { 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, - { 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, - 0x00000000 }, - { { { 0x00000006, 0x0000001A, 0x00000020, 0x00320012 }, { 0x0032004E, 0x0000001B, 0x00000021, 0x00320013 }, - { 0x0032004F, 0x0000001C, 0x00000022, 0x00320014 }, { 0x00320050, 0x0000001D, 0x00000023, 0x00320015 }, - { 0x00320051, 0x0000001E, 0x00000024, 0x00320016 }, { 0x00320052, 0x0000001F, 0x00000025, 0x00320017 }, - { 0x00320053, 0x00000000, 0x00000000, 0x00000000 }, { 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, - { 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, { 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, - { 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, - 0x00000000 }, - { { { 0x00000006, 0x00000026, 0x0000002C, 0x00320018 }, { 0x00320054, 0x00000027, 0x0000002D, 0x00320019 }, - { 0x00320055, 0x00000028, 0x0000002E, 0x0032001A }, { 0x00320056, 0x00000029, 0x0000002F, 0x0032001B }, - { 0x00320057, 0x0000002A, 0x00000030, 0x0032001C }, { 0x00320058, 0x0000002B, 0x00000031, 0x0032001D }, - { 0x00320059, 0x00000000, 0x00000000, 0x00000000 }, { 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, - { 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, { 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, - { 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, - 0x00000000 }, - { { { 0x00000006, 0x00000032, 0x00000038, 0x0032001E }, { 0x0032005A, 0x00000033, 0x00000039, 0x0032001F }, - { 0x0032005B, 0x00000034, 0x0000003A, 0x00320020 }, { 0x0032005C, 0x00000035, 0x0000003B, 0x00320021 }, - { 0x0032005D, 0x00000036, 0x0000003C, 0x00320022 }, { 0x0032005E, 0x00000037, 0x0000003D, 0x00320023 }, - { 0x0032005F, 0x00000000, 0x00000000, 0x00000000 }, { 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, - { 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, { 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, - { 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, - 0x00000000 }, - { { { 0x00000001, 0x00000001, 0xFFFFFFFF, 0x00320041 }, { 0x00320041, 0x00000000, 0x00000000, 0x00000000 }, - { 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, { 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, - { 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, { 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, - { 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, { 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, - { 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, { 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, - { 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, - 0x00000000 }, - { { { 0x00000006, 0x0000003E, 0x00000044, 0x00320024 }, { 0x00320060, 0x0000003F, 0x00000045, 0x00320025 }, - { 0x00320061, 0x00000040, 0x00000046, 0x00320026 }, { 0x00320062, 0x00000041, 0x00000047, 0x00320027 }, - { 0x00320063, 0x00000042, 0x00000048, 0x00320028 }, { 0x00320064, 0x00000043, 0x00000049, 0x00320029 }, - { 0x00320065, 0x00000000, 0x00000000, 0x00000000 }, { 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, - { 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, { 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, - { 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, - 0x00000000 }, - { { { 0x00000006, 0x0000004A, 0x00000050, 0x0032002A }, { 0x00320066, 0x0000004B, 0x00000051, 0x0032002B }, - { 0x00320067, 0x0000004C, 0x00000052, 0x0032002C }, { 0x00320068, 0x0000004D, 0x00000053, 0x0032002D }, - { 0x00320069, 0x0000004E, 0x00000054, 0x0032002E }, { 0x0032006A, 0x0000004F, 0x00000055, 0x0032002F }, - { 0x0032006B, 0x00000000, 0x00000000, 0x00000000 }, { 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, - { 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, { 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, - { 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, - 0x00000000 }, - { { { 0x00000006, 0x00000056, 0x0000005C, 0x00320030 }, { 0x0032006C, 0x00000057, 0x0000005D, 0x00320031 }, - { 0x0032006D, 0x00000058, 0x0000005E, 0x00320032 }, { 0x0032006E, 0x00000059, 0x0000005F, 0x00320033 }, - { 0x0032006F, 0x0000005A, 0x00000060, 0x00320034 }, { 0x00320070, 0x0000005B, 0x00000061, 0x00320035 }, - { 0x00320071, 0x00000000, 0x00000000, 0x00000000 }, { 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, - { 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, { 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, - { 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, - 0x00000000 }, - { { { 0x0000000B, 0x00000062, 0xFFFFFFFF, 0x00320036 }, { 0x00320072, 0x00000063, 0xFFFFFFFF, 0x00320037 }, - { 0x00320073, 0x00000064, 0xFFFFFFFF, 0x00320038 }, { 0x00320074, 0x00000065, 0xFFFFFFFF, 0x00320039 }, - { 0x00320075, 0x00000066, 0xFFFFFFFF, 0x0032003A }, { 0x00320076, 0x00000067, 0xFFFFFFFF, 0x0032003B }, - { 0x00320077, 0x00000068, 0xFFFFFFFF, 0x0032003C }, { 0x00320078, 0x00000069, 0xFFFFFFFF, 0x0032003D }, - { 0x00320079, 0x0000006A, 0xFFFFFFFF, 0x0032003E }, { 0x0032007A, 0x0000006B, 0xFFFFFFFF, 0x0032003F }, - { 0x0032007B, 0x0000006C, 0xFFFFFFFF, 0x00320040 } }, - 0x0032007C }, + { 0x00000006, { { 0x00000002, 0x00000008, 0x00320006, 0x00320042 }, { 0x00000003, 0x00000009, 0x00320007, 0x00320043 }, + { 0x00000004, 0x0000000A, 0x00320008, 0x00320044 }, { 0x00000005, 0x0000000B, 0x00320009, 0x00320045 }, + { 0x00000006, 0x0000000C, 0x0032000A, 0x00320046 }, { 0x00000007, 0x0000000D, 0x0032000B, 0x00320047 }, + }, + }, + { 0x00000006, { { 0x0000000E, 0x00000014, 0x0032000C, 0x00320048 }, { 0x0000000F, 0x00000015, 0x0032000D, 0x00320049 }, + { 0x00000010, 0x00000016, 0x0032000E, 0x0032004A }, { 0x00000011, 0x00000017, 0x0032000F, 0x0032004B }, + { 0x00000012, 0x00000018, 0x00320010, 0x0032004C }, { 0x00000013, 0x00000019, 0x00320011, 0x0032004D }, + }, + }, + { 0x00000006, { { 0x0000001A, 0x00000020, 0x00320012, 0x0032004E }, { 0x0000001B, 0x00000021, 0x00320013, 0x0032004F }, + { 0x0000001C, 0x00000022, 0x00320014, 0x00320050 }, { 0x0000001D, 0x00000023, 0x00320015, 0x00320051 }, + { 0x0000001E, 0x00000024, 0x00320016, 0x00320052 }, { 0x0000001F, 0x00000025, 0x00320017, 0x00320053 }, + }, + }, + { 0x00000006, { { 0x00000026, 0x0000002C, 0x00320018, 0x00320054 }, { 0x00000027, 0x0000002D, 0x00320019, 0x00320055 }, + { 0x00000028, 0x0000002E, 0x0032001A, 0x00320056 }, { 0x00000029, 0x0000002F, 0x0032001B, 0x00320057 }, + { 0x0000002A, 0x00000030, 0x0032001C, 0x00320058 }, { 0x0000002B, 0x00000031, 0x0032001D, 0x00320059 }, + }, + }, + { 0x00000006, { { 0x00000032, 0x00000038, 0x0032001E, 0x0032005A }, { 0x00000033, 0x00000039, 0x0032001F, 0x0032005B }, + { 0x00000034, 0x0000003A, 0x00320020, 0x0032005C }, { 0x00000035, 0x0000003B, 0x00320021, 0x0032005D }, + { 0x00000036, 0x0000003C, 0x00320022, 0x0032005E }, { 0x00000037, 0x0000003D, 0x00320023, 0x0032005F }, + }, + }, + { 0x00000001, { { 0x00000001, 0xFFFFFFFF, 0x00320041, 0x00320041 } } }, + { 0x00000006, { { 0x0000003E, 0x00000044, 0x00320024, 0x00320060 }, { 0x0000003F, 0x00000045, 0x00320025, 0x00320061 }, + { 0x00000040, 0x00000046, 0x00320026, 0x00320062 }, { 0x00000041, 0x00000047, 0x00320027, 0x00320063 }, + { 0x00000042, 0x00000048, 0x00320028, 0x00320064 }, { 0x00000043, 0x00000049, 0x00320029, 0x00320065 }, + }, + }, + { 0x00000006, { { 0x0000004A, 0x00000050, 0x0032002A, 0x00320066 }, { 0x0000004B, 0x00000051, 0x0032002B, 0x00320067 }, + { 0x0000004C, 0x00000052, 0x0032002C, 0x00320068 }, { 0x0000004D, 0x00000053, 0x0032002D, 0x00320069 }, + { 0x0000004E, 0x00000054, 0x0032002E, 0x0032006A }, { 0x0000004F, 0x00000055, 0x0032002F, 0x0032006B }, + }, + }, + { 0x00000006, { { 0x00000056, 0x0000005C, 0x00320030, 0x0032006C }, { 0x00000057, 0x0000005D, 0x00320031, 0x0032006D }, + { 0x00000058, 0x0000005E, 0x00320032, 0x0032006E }, { 0x00000059, 0x0000005F, 0x00320033, 0x0032006F }, + { 0x0000005A, 0x00000060, 0x00320034, 0x00320070 }, { 0x0000005B, 0x00000061, 0x00320035, 0x00320071 }, + }, + }, + { 0x0000000B, { { 0x00000062, 0xFFFFFFFF, 0x00320036, 0x00320072 }, { 0x00000063, 0xFFFFFFFF, 0x00320037, 0x00320073 }, + { 0x00000064, 0xFFFFFFFF, 0x00320038, 0x00320074 }, { 0x00000065, 0xFFFFFFFF, 0x00320039, 0x00320075 }, + { 0x00000066, 0xFFFFFFFF, 0x0032003A, 0x00320076 }, { 0x00000067, 0xFFFFFFFF, 0x0032003B, 0x00320077 }, + { 0x00000068, 0xFFFFFFFF, 0x0032003C, 0x00320078 }, { 0x00000069, 0xFFFFFFFF, 0x0032003D, 0x00320079 }, + { 0x0000006A, 0xFFFFFFFF, 0x0032003E, 0x0032007A }, { 0x0000006B, 0xFFFFFFFF, 0x0032003F, 0x0032007B }, + { 0x0000006C, 0xFFFFFFFF, 0x00320040, 0x0032007C } + }, + }, }; omObjData *fn_1_1458(void) @@ -467,15 +446,14 @@ void fn_1_20E8(omObjData *object) fn_1_40B0(var_r31->unk_22C, 0x32007F); if (var_r31->unk_04) { - // fn_1_40B0(var_r31->unk_228, ((((u8 *)lbl_1_rodata_2B8) + var_r27 * 180 + var_r29 * 16))->unk10); - // fn_1_40B0(var_r31->unk_228, lbl_1_rodata_2B8[var_r27].unk_00[var_r29].unk_00->unk10); // TODO match + fn_1_40B0(var_r31->unk_228, lbl_1_rodata_2B8[var_r27].unk_04[var_r29].unk_0C); } else { fn_1_40B0(var_r31->unk_228, 0x320003); } var_r31->unk_258 = 0.0f; var_r31->unk_25C = 5.0f / 30.0f; if (var_r31->unk_04) { - fn_1_268C(var_r31->unk_10[lbl_1_rodata_2B8[var_r27].unk_00[var_r29].unk_04], &sp8.x, &sp8.y, &sp8.z); + fn_1_268C(var_r31->unk_10[lbl_1_rodata_2B8[var_r27].unk_04[var_r29].unk_00], &sp8.x, &sp8.y, &sp8.z); Hu3D3Dto2D(&sp8, 1, &sp8); sp8.y -= 15.0f; sp8.x -= 20.0f; @@ -710,20 +688,18 @@ s32 fn_1_2C5C(omObjData *object, s32 arg1) if (var_r18 == 1) { return var_r31->unk_238; } - var_r21 = var_r31->unk_10[lbl_1_rodata_2B8[var_r31->unk_234].unk_00[var_r31->unk_238].unk_04]; - fn_1_268C(var_r21, &sp38.x, &sp38.y, &sp38.z); + fn_1_268C(var_r31->unk_10[lbl_1_rodata_2B8[var_r31->unk_234].unk_04[var_r31->unk_238].unk_00], &sp38.x, &sp38.y, &sp38.z); Hu3D3Dto2D(&sp38, 1, &sp38); for (var_r28 = 0, var_r26 = 0; !var_r28 && (var_r26 < 1); var_r26++) { for (var_r28 = 0, var_r30 = 0; var_r30 < var_r22; var_r30++) { if (var_r30 == var_r31->unk_238) { continue; } - if (!fn_1_2B84(object, var_r30, var_r31->unk_234)) { + if (!fn_1_2B84(object, var_r31->unk_234, var_r30)) { continue; } - var_r19 = var_r31->unk_10[lbl_1_rodata_2B8[var_r31->unk_234].unk_00[var_r30].unk_04]; - fn_1_268C(var_r19, &sp2C.x, &sp2C.y, &sp2C.z); + fn_1_268C(var_r31->unk_10[lbl_1_rodata_2B8[var_r31->unk_234].unk_04[var_r30].unk_00], &sp2C.x, &sp2C.y, &sp2C.z); Hu3D3Dto2D(&sp2C, 1, &sp2C); var_f30 = sp38.x - sp2C.x; var_f29 = sp38.y - sp2C.y; @@ -802,12 +778,7 @@ s32 fn_1_2C5C(omObjData *object, s32 arg1) } } } while (var_r23); - if (var_r26 <= 1) { - var_r17 = 0; - } else { - var_r17 = var_r28 - 1; - } - return spA4[var_r17].unk_00; + return spA4[(var_r26 <= 1) ? 0 : var_r28 - 1].unk_00; } static const s32 lbl_1_rodata_AC8[] = { 6, 6, 6, 6, 6, 1, 6, 6, 6, 11 }; @@ -862,7 +833,7 @@ void fn_1_33AC(omObjData *object) object->unk10 = 3; case 3: fn_1_4080(var_r31->unk_228); - fn_1_4104(var_r31->unk_228, lbl_1_rodata_2B8[var_r31->unk_234].unk_00[var_r31->unk_238].unk_0C, 0); + fn_1_4104(var_r31->unk_228, lbl_1_rodata_2B8[var_r31->unk_234].unk_04[var_r31->unk_238].unk08, 0); fn_1_40B0(var_r31->unk_228, 0x320004); fn_1_419C(var_r31->unk_228); object->unk10 = 4;