From 19b5bc074935a8ce79d8f96c1b6e55d668188969 Mon Sep 17 00:00:00 2001 From: Banjo Kazooie Date: Sun, 27 Nov 2022 16:25:40 -0600 Subject: [PATCH] lair .data fully define --- decompressed.us.v10.yaml | 6 +- include/enums.h | 2 + src/core1/code_2DA0.c | 11 +- src/core1/code_5650.c | 8 +- src/lair/code_0.c | 193 ++++++++++++++++-------- src/lair/code_42A0.c | 46 ++++-- src/lair/code_5ED0.c | 306 +++++++++++++++++++++++++++++++++++++-- 7 files changed, 472 insertions(+), 100 deletions(-) diff --git a/decompressed.us.v10.yaml b/decompressed.us.v10.yaml index 0c66ac5e..a18daf0e 100644 --- a/decompressed.us.v10.yaml +++ b/decompressed.us.v10.yaml @@ -2074,10 +2074,10 @@ segments: - [0x10A3C40, c, code_BBD0] #DONE - [0x10A4230, c, code_C1C0] #DONE - [0x10A4730, c, code_C6C0] #DONE - - [0x10A4930, bin, data_C8C0] #.data, code_0] - - [0x10A51A0, bin, data_D130] #.data, code_42A0] + - [0x10A4930, .data, code_0] + - [0x10A51A0, .data, code_42A0] - [0x10A5390, .data, code_5640] - - [0x10A53E0, bin, data_D370] #.data, code_5ED0] + - [0x10A53E0, .data, code_5ED0] - [0x10A6430, .data, code_86F0] - [0x10A64E0, .data, code_9C40] - [0x10A6560, .data, code_A170] diff --git a/include/enums.h b/include/enums.h index ce6b16b2..0eb680d6 100644 --- a/include/enums.h +++ b/include/enums.h @@ -270,6 +270,8 @@ enum unkflags_1{ UNKFLAGS1_7F_SANDCASTLE_OPEN_CC = 0x7F, + UNKFLAGS1_84_SANDCASTLE_OPEN_BGS = 0x84, + UNKFLAGS1_86_SANDCASTLE_SHOCKSPRING_JUMP_UNLOCKED = 0x86, UNKFLAGS1_87_SANDCASTLE_OPEN_GV,// 0X87 diff --git a/src/core1/code_2DA0.c b/src/core1/code_2DA0.c index f96b4578..f7e95db9 100644 --- a/src/core1/code_2DA0.c +++ b/src/core1/code_2DA0.c @@ -5,18 +5,17 @@ void func_80240924(s32 arg0); OSMesgQueue D_8027E120; -OSMesg D_8027E138; +OSMesg D_8027E138; OSMesgQueue D_8027E140; -OSMesg D_8027E158; -OSThread D_8027E160; -u8 pad_8027E310[0x800]; -extern u8 D_8027EB10; +OSMesg D_8027E158; +OSThread D_8027E160; +u8 D_8027E310[0x800]; /* .code */ void func_802407C0(void){ osCreateMesgQueue(&D_8027E120, &D_8027E138, 1); osCreateMesgQueue(&D_8027E140, &D_8027E158, 1); - osCreateThread(&D_8027E160, 2, func_80240924, NULL, &D_8027EB10, 10); + osCreateThread(&D_8027E160, 2, func_80240924, NULL, &D_8027E310[0x800], 10); osStartThread(&D_8027E160); } diff --git a/src/core1/code_5650.c b/src/core1/code_5650.c index f4d51521..0f7aeb99 100644 --- a/src/core1/code_5650.c +++ b/src/core1/code_5650.c @@ -21,14 +21,14 @@ extern struct { }D_8027EF18; /* .data */ -extern struct{ +struct{ N_AL_Struct81s *unk0; N_AL_Struct81s *unk4; N_AL_Struct81s *unk8; }D_802758C0 = {NULL, NULL, NULL}; -extern N_ALSndPlayer *D_802758CC = &D_8027EEC0; -extern s32 D_802758D0 = 1; -extern s16 D_802758D4 = 0; +N_ALSndPlayer *D_802758CC = &D_8027EEC0; +s32 D_802758D0 = 1; +s16 D_802758D4 = 0; /* .code */ void func_80243070(Struct87s *arg0) { diff --git a/src/lair/code_0.c b/src/lair/code_0.c index 27462b60..a662a169 100644 --- a/src/lair/code_0.c +++ b/src/lair/code_0.c @@ -85,65 +85,132 @@ extern ActorInfo D_80394CF0; extern ActorInfo D_80394C94; /* .data */ -extern ActorAnimationInfo D_80392CB0[]; -extern ActorInfo lair_D_80392D90 = { 0x270, 0x2D8, 0x3B2, 0x1, NULL, func_802D3D54, func_80326224, func_80325E78, 0, 0, 0.0f, 0}; -extern ActorInfo D_80392DB4 = { 0x110, 0x214, 0x4AB, 0x1, D_80392CB0, func_803896D4, func_80326224, func_80325888, 0, 0, 0.0f, 0}; -extern ActorInfo D_80392DD8 = { 0x113, 0x217, 0x4A9, 0x1, D_80392CB0, func_803896F4, func_80326224, func_80325888, 0, 0, 0.0f, 0}; -extern ActorInfo D_80392DFC = { 0x115, 0x219, 0x4AA, 0x1, D_80392CB0, func_80389714, func_80326224, func_80325888, 0, 0, 0.0f, 0}; -extern ActorInfo D_80392E20 = { 0x11B, 0x221, 0x4B5, 0x1, D_80392CB0, func_80389734, func_80326224, func_80325888, 0, 0, 0.0f, 0}; -extern ActorInfo D_80392E44 = { 0x11C, 0x222, 0x4B2, 0x1, D_80392CB0, func_8038975C, func_80326224, func_80325888, 0, 0, 0.0f, 0}; -extern ActorInfo D_80392E68 = { 0x11D, 0x223, 0x4B0, 0x1, D_80392CB0, func_80389784, func_80326224, func_80325888, 0, 0, 0.0f, 0}; -extern ActorInfo D_80392E8C = { 0x232, 0x23C, 0x4B8, 0x1, D_80392CB0, func_803897AC, func_80326224, func_80325888, 0, 0, 0.0f, 0}; -extern ActorInfo D_80392EB0 = { 0x23F, 0x246, 0x534, 0x1, D_80392CB0, func_80386D20, func_80326224, func_80325888, 0, 0, 0.0f, 0}; -extern ActorInfo D_80392ED4 = { 0x241, 0x248, 0x540, 0x1, D_80392CB0, func_80386780, func_80326224, func_80325888, 0, 0, 0.0f, 0}; -extern ActorInfo D_80392EF8 = { 0x109, 0x20D, 0x4A1, 0x1, D_80392CB0, lair_func_80386550, func_80326224, func_80325888, 0, 0, 0.0f, 0x85}; -extern ActorInfo D_80392F1C = { 0x264, 0x2E5, 0x550, 0x19, D_80392CB0, func_80388524, func_80326224, func_80325888, 0, 0, 0.0f, 0}; -extern ActorInfo D_80392F40 = { 0x224, 0x230, 0x4BF, 0xB, D_80392CB0, lair_func_803863F0, func_80326224, func_80325888, 0, 0, 0.0f, 0x88}; -extern ActorInfo D_80392F64 = { 0x225, 0x231, 0x4D5, 0xE, D_80392CB0, lair_func_803864B0, func_80326224, func_80325888, 0, 0, 0.0f, 0x88}; -extern ActorInfo D_80392F88 = { 0x111, 0x215, 0x4A4, 0x1, NULL, func_80388FC8, func_80326224, func_80325E78, 0, 0, 0.0f, 0}; -extern ActorInfo D_80392FAC = { 0x112, 0x216, 0x4A5, 0x1, NULL, func_80388FC8, func_80326224, func_80325E78, 0, 0, 0.0f, 0}; -extern ActorInfo D_80392FD0 = { 0x114, 0x218, 0x4A6, 0x1, NULL, lair_func_80389204, func_80326224, func_80325E78, 0, 0, 0.0f, 0}; -extern ActorInfo D_80392FF4 = { 0x10D, 0x211, 0x4A3, 0x1, NULL, func_80388524, func_80326224, func_80325E78, 0, 0, 0.0f, 0}; -extern ActorInfo D_80393018 = { 0x22C, 0x23A, 0x4D9, 0x1, NULL, func_803882B0, func_80326224, func_80325E78, 0, 0, 0.0f, 0}; -extern ActorInfo D_8039303C = { 0x164, 0x259, 0x507, 0x1, NULL, func_803880BC, func_80326224, func_80325E78, 0, 0, 0.0f, 0}; -extern ActorInfo D_80393060 = { 0x165, 0x25A, 0x508, 0x1, NULL, func_8038824C, func_80326224, func_80325E78, 0, 0, 0.0f, 0}; -extern ActorInfo D_80393084 = { 0x240, 0x247, 0x48A, 0x1, NULL, func_80386D78, func_80326224, func_80325E78, 0, 0, 0.0f, 0}; -extern ActorInfo D_803930A8 = { 0x242, 0x249, 0x2DD, 0x1, NULL, func_803867A8, func_80326224, func_80325E78, 0, 0, 0.0f, 0}; -extern ActorInfo D_803930CC = { 0x11F, 0x225, 0x4B3, 0x1, NULL, func_8038A064, func_80326224, func_80325E78, 0, 0, 0.0f, 0}; -extern ActorInfo D_803930F0 = { 0x10A, 0x20E, 0x4A2, 0x1, NULL, func_80388524, func_80326224, func_80325E78, 0, 0, 0.0f, 0}; -extern ActorInfo D_80393114 = { 0x11A, 0x220, 0x4B7, 0x1, NULL, func_80389FF4, func_80326224, func_80325E78, 0, 0, 0.0f, 0x91}; -extern ActorInfo D_80393138 = { 0x11E, 0x224, 0x4AF, 0x1, NULL, func_8038A014, func_80326224, func_80325E78, 0, 0, 0.0f, 0x83}; -extern ActorInfo D_8039315C = { 0x227, 0x234, 0x4D6, 0x1, NULL, func_80388524, func_80326224, func_80325E78, 0, 0, 0.0f, 0x93}; -extern ActorInfo D_80393180 = { 0x228, 0x235, 0x4D7, 0x1, NULL, func_80388524, func_80326224, func_80325E78, 0, 0, 0.0f, 0x8B}; -extern ActorInfo D_803931A4 = { 0x229, 0x236, 0x4D8, 0x1, NULL, func_80388524, func_80326224, func_80325E78, 0, 0, 0.0f, 0x8B}; -extern ActorInfo D_803931C8 = { MARKER_121_GLASS_EYE, ACTOR_227_GLASS_EYE, ASSET_4BD_MODEL_GLASS_EYE, 0x1, NULL, func_8038A034, func_80326224, func_80325888, 0, 0, 0.0f, 0x89}; -extern ActorInfo D_803931EC = { 0x116, 0x21A, 0x4AC, 0x1, NULL, func_803893B8, func_80326224, func_80325E78, 0, 0, 0.0f, 0x82}; -extern ActorInfo D_80393210 = { 0x117, 0x21B, 0x4AD, 0x1, NULL, lair_func_803894B0, func_80326224, func_80325E78, 0, 0, 0.0f, 0x82}; -extern ActorInfo D_80393234 = { 0x10B, 0x20F, 0x4B4, 0x1, NULL, func_80388524, func_80326224, func_80325E78, 0, 0, 0.0f, 0x90}; -extern ActorInfo D_80393258 = { 0x10C, 0x210, 0x4AE, 0x1, NULL, func_80388524, func_80326224, func_80325E78, 0, 0, 0.0f, 0x84}; -extern ActorInfo D_8039327C = { 0x10E, 0x212, 0x4A7, 0x1, NULL, func_80388524, func_80326224, func_80325E78, 0, 0, 0.0f, 0x7F}; -extern ActorInfo D_803932A0 = { 0x120, 0x226, 0x4BC, 0x1, NULL, func_80388524, func_80326224, func_80325E78, 0, 0, 0.0f, 0x87}; -extern ActorInfo D_803932C4 = { 0x122, 0x228, 0x4BE, 0x1, NULL, func_80388524, func_80326224, func_80325E78, 0, 0, 0.0f, 0x8C}; -extern ActorInfo D_803932E8 = { 0x10F, 0x213, 0x4A8, 0x1, NULL, func_803875F0, func_80326224, func_80325E78, 0, 0, 0.0f, 0x80}; -extern ActorInfo D_8039330C = { 0x118, 0x21E, 0x4B1, 0x1, NULL, lair_func_8038A084, func_80326224, func_80325E78, 0, 0, 0.0f, 0x8F}; -extern ActorInfo D_80393330 = { 0x119, 0x21F, 0x4B6, 0x1, NULL, func_8038A0A4, func_80326224, func_80325E78, 0, 0, 0.0f, 0x92}; -extern ActorInfo D_80393354 = { 0x266, 0x2E3, 0x563, 0x1, NULL, func_803870DC, func_80326224, lair_func_80387560, 0, 0, 0.0f, 0}; -extern ActorInfo D_80393378 = { 0x17D, 0x1E1, 0x517, 0x1, NULL, func_80389D08, func_80326224, func_80389E10, 0, 0, 0.0f, 0x8D}; -extern ActorInfo D_8039339C = { 0x234, 0x23E, 0x4E1, 0x12, D_80392CB0, func_8038982C, func_80326224, func_80325E78, 0, 0, 0.0f, 0}; -extern ActorInfo D_803933C0 = { 0x163, 0x258, 0x511, 0x12, D_80392CB0, func_80389898, func_80326224, func_8038664C, 0, 0, 0.0f, 0x8E}; -extern ActorInfo D_803933E4 = { 0x160, 0x255, 0x509, 0x15, D_80392CB0, func_80389934, func_80326224, func_80325888, 0, 0, 0.0f, 0}; -extern ActorInfo D_80393408 = { 0x102, 0x203, 0x491, 0x1, D_80392CB0, func_80387730, func_80326224, func_80387DA8, 0, 0, 0.0f, 0}; -extern struct31s D_8039342C; -extern s16 D_80393452[]; //enum bkprog_e -extern s16 D_80393466[]; -extern s16 D_8039347A[]; //notedoor_notes_required_to_open -extern s16 D_80393490[]; -extern s32 D_803934A0[3]; -extern struct31s D_803934AC; -extern struct42s D_803934D4; -extern s32 D_80393504[4]; +ActorAnimationInfo D_80392CB0[] = { + { 0, 0.0f}, + { 0, 0.0f}, + { 0xD4, 0.15f}, + { 0xD5, 0.5f}, + { 0, 0.0f}, + { 0, 0.0f}, + { 0xD4, 0.15f}, + { 0xD5, 0.5f}, + { 0xD5, 1e+08f}, + {0x1E3, 0.73}, + {0x1E3, 1e+08f}, + {0x1F0, 1.0f}, + {0x1F1, 0.7f}, + {0x1F1, 1e+08f}, + {0x1F2, 1.0f}, + {0x1F3, 0.4f}, + {0x1F3, 1e+08f}, + { 0, 0.0f}, + {0x218, 1e+08f}, + {0x218, 1.0f}, + {0x218, 1e+08f}, + {0x235, 1e+08f}, + {0x235, 1e+08f}, + {0x235, 1.0f}, + {0x235, 1e+08f}, + {0x271, 1e+08f}, + {0x271, 3.0f}, + {0x271, 1e+08f} +}; +ActorInfo lair_D_80392D90 = { 0x270, 0x2D8, 0x3B2, 0x1, NULL, func_802D3D54, func_80326224, func_80325E78, 0, 0, 0.0f, 0}; +ActorInfo D_80392DB4 = { 0x110, 0x214, 0x4AB, 0x1, D_80392CB0, func_803896D4, func_80326224, func_80325888, 0, 0, 0.0f, 0}; +ActorInfo D_80392DD8 = { 0x113, 0x217, 0x4A9, 0x1, D_80392CB0, func_803896F4, func_80326224, func_80325888, 0, 0, 0.0f, 0}; +ActorInfo D_80392DFC = { 0x115, 0x219, 0x4AA, 0x1, D_80392CB0, func_80389714, func_80326224, func_80325888, 0, 0, 0.0f, 0}; +ActorInfo D_80392E20 = { 0x11B, 0x221, 0x4B5, 0x1, D_80392CB0, func_80389734, func_80326224, func_80325888, 0, 0, 0.0f, 0}; +ActorInfo D_80392E44 = { 0x11C, 0x222, 0x4B2, 0x1, D_80392CB0, func_8038975C, func_80326224, func_80325888, 0, 0, 0.0f, 0}; +ActorInfo D_80392E68 = { 0x11D, 0x223, 0x4B0, 0x1, D_80392CB0, func_80389784, func_80326224, func_80325888, 0, 0, 0.0f, 0}; +ActorInfo D_80392E8C = { 0x232, 0x23C, 0x4B8, 0x1, D_80392CB0, func_803897AC, func_80326224, func_80325888, 0, 0, 0.0f, 0}; +ActorInfo D_80392EB0 = { 0x23F, 0x246, 0x534, 0x1, D_80392CB0, func_80386D20, func_80326224, func_80325888, 0, 0, 0.0f, 0}; +ActorInfo D_80392ED4 = { 0x241, 0x248, 0x540, 0x1, D_80392CB0, func_80386780, func_80326224, func_80325888, 0, 0, 0.0f, 0}; +ActorInfo D_80392EF8 = { 0x109, 0x20D, 0x4A1, 0x1, D_80392CB0, lair_func_80386550, func_80326224, func_80325888, 0, 0, 0.0f, 0x85}; +ActorInfo D_80392F1C = { 0x264, 0x2E5, 0x550, 0x19, D_80392CB0, func_80388524, func_80326224, func_80325888, 0, 0, 0.0f, 0}; +ActorInfo D_80392F40 = { 0x224, 0x230, 0x4BF, 0xB, D_80392CB0, lair_func_803863F0, func_80326224, func_80325888, 0, 0, 0.0f, 0x88}; +ActorInfo D_80392F64 = { 0x225, 0x231, 0x4D5, 0xE, D_80392CB0, lair_func_803864B0, func_80326224, func_80325888, 0, 0, 0.0f, 0x88}; +ActorInfo D_80392F88 = { 0x111, 0x215, 0x4A4, 0x1, NULL, func_80388FC8, func_80326224, func_80325E78, 0, 0, 0.0f, 0}; +ActorInfo D_80392FAC = { 0x112, 0x216, 0x4A5, 0x1, NULL, func_80388FC8, func_80326224, func_80325E78, 0, 0, 0.0f, 0}; +ActorInfo D_80392FD0 = { 0x114, 0x218, 0x4A6, 0x1, NULL, lair_func_80389204, func_80326224, func_80325E78, 0, 0, 0.0f, 0}; +ActorInfo D_80392FF4 = { 0x10D, 0x211, 0x4A3, 0x1, NULL, func_80388524, func_80326224, func_80325E78, 0, 0, 0.0f, 0}; +ActorInfo D_80393018 = { 0x22C, 0x23A, 0x4D9, 0x1, NULL, func_803882B0, func_80326224, func_80325E78, 0, 0, 0.0f, 0}; +ActorInfo D_8039303C = { 0x164, 0x259, 0x507, 0x1, NULL, func_803880BC, func_80326224, func_80325E78, 0, 0, 0.0f, 0}; +ActorInfo D_80393060 = { 0x165, 0x25A, 0x508, 0x1, NULL, func_8038824C, func_80326224, func_80325E78, 0, 0, 0.0f, 0}; +ActorInfo D_80393084 = { 0x240, 0x247, 0x48A, 0x1, NULL, func_80386D78, func_80326224, func_80325E78, 0, 0, 0.0f, 0}; +ActorInfo D_803930A8 = { 0x242, 0x249, 0x2DD, 0x1, NULL, func_803867A8, func_80326224, func_80325E78, 0, 0, 0.0f, 0}; +ActorInfo D_803930CC = { 0x11F, 0x225, 0x4B3, 0x1, NULL, func_8038A064, func_80326224, func_80325E78, 0, 0, 0.0f, 0}; +ActorInfo D_803930F0 = { 0x10A, 0x20E, 0x4A2, 0x1, NULL, func_80388524, func_80326224, func_80325E78, 0, 0, 0.0f, 0}; +ActorInfo D_80393114 = { 0x11A, 0x220, 0x4B7, 0x1, NULL, func_80389FF4, func_80326224, func_80325E78, 0, 0, 0.0f, 0x91}; +ActorInfo D_80393138 = { 0x11E, 0x224, 0x4AF, 0x1, NULL, func_8038A014, func_80326224, func_80325E78, 0, 0, 0.0f, 0x83}; +ActorInfo D_8039315C = { 0x227, 0x234, 0x4D6, 0x1, NULL, func_80388524, func_80326224, func_80325E78, 0, 0, 0.0f, 0x93}; +ActorInfo D_80393180 = { 0x228, 0x235, 0x4D7, 0x1, NULL, func_80388524, func_80326224, func_80325E78, 0, 0, 0.0f, 0x8B}; +ActorInfo D_803931A4 = { 0x229, 0x236, 0x4D8, 0x1, NULL, func_80388524, func_80326224, func_80325E78, 0, 0, 0.0f, 0x8B}; +ActorInfo D_803931C8 = { MARKER_121_GLASS_EYE, ACTOR_227_GLASS_EYE, ASSET_4BD_MODEL_GLASS_EYE, 0x1, NULL, func_8038A034, func_80326224, func_80325888, 0, 0, 0.0f, 0x89}; +ActorInfo D_803931EC = { 0x116, 0x21A, 0x4AC, 0x1, NULL, func_803893B8, func_80326224, func_80325E78, 0, 0, 0.0f, 0x82}; +ActorInfo D_80393210 = { 0x117, 0x21B, 0x4AD, 0x1, NULL, lair_func_803894B0, func_80326224, func_80325E78, 0, 0, 0.0f, 0x82}; +ActorInfo D_80393234 = { 0x10B, 0x20F, 0x4B4, 0x1, NULL, func_80388524, func_80326224, func_80325E78, 0, 0, 0.0f, 0x90}; +ActorInfo D_80393258 = { 0x10C, 0x210, 0x4AE, 0x1, NULL, func_80388524, func_80326224, func_80325E78, 0, 0, 0.0f, 0x84}; +ActorInfo D_8039327C = { 0x10E, 0x212, 0x4A7, 0x1, NULL, func_80388524, func_80326224, func_80325E78, 0, 0, 0.0f, 0x7F}; +ActorInfo D_803932A0 = { 0x120, 0x226, 0x4BC, 0x1, NULL, func_80388524, func_80326224, func_80325E78, 0, 0, 0.0f, 0x87}; +ActorInfo D_803932C4 = { 0x122, 0x228, 0x4BE, 0x1, NULL, func_80388524, func_80326224, func_80325E78, 0, 0, 0.0f, 0x8C}; +ActorInfo D_803932E8 = { 0x10F, 0x213, 0x4A8, 0x1, NULL, func_803875F0, func_80326224, func_80325E78, 0, 0, 0.0f, 0x80}; +ActorInfo D_8039330C = { 0x118, 0x21E, 0x4B1, 0x1, NULL, lair_func_8038A084, func_80326224, func_80325E78, 0, 0, 0.0f, 0x8F}; +ActorInfo D_80393330 = { 0x119, 0x21F, 0x4B6, 0x1, NULL, func_8038A0A4, func_80326224, func_80325E78, 0, 0, 0.0f, 0x92}; +ActorInfo D_80393354 = { 0x266, 0x2E3, 0x563, 0x1, NULL, func_803870DC, func_80326224, lair_func_80387560, 0, 0, 0.0f, 0}; +ActorInfo D_80393378 = { 0x17D, 0x1E1, 0x517, 0x1, NULL, func_80389D08, func_80326224, func_80389E10, 0, 0, 0.0f, 0x8D}; +ActorInfo D_8039339C = { 0x234, 0x23E, 0x4E1, 0x12, D_80392CB0, func_8038982C, func_80326224, func_80325E78, 0, 0, 0.0f, 0}; +ActorInfo D_803933C0 = { 0x163, 0x258, 0x511, 0x12, D_80392CB0, func_80389898, func_80326224, func_8038664C, 0, 0, 0.0f, 0x8E}; +ActorInfo D_803933E4 = { 0x160, 0x255, 0x509, 0x15, D_80392CB0, func_80389934, func_80326224, func_80325888, 0, 0, 0.0f, 0}; +ActorInfo D_80393408 = { 0x102, 0x203, 0x491, 0x1, D_80392CB0, func_80387730, func_80326224, func_80387DA8, 0, 0, 0.0f, 0}; +struct31s D_8039342C = { + {0.31f, 0.37f}, + {0.17f, 0.22f}, + {0.0f, 0.01f}, + {0.9f, 0.9f}, + 0.0f, 0.0f +}; +s16 D_80393454[] = { + BKPROG_31_MM_OPEN, + BKPROG_32_TTC_OPEN, + BKPROG_33_CC_OPEN, + BKPROG_34_BGS_OPEN, + BKPROG_35_FP_OPEN, + BKPROG_36_GV_OPEN, + BKPROG_37_MMM_OPEN, + BKPROG_38_RBB_OPEN, + BKPROG_39_CCW_OPEN, + 0 +}; -/* .bss */ +s16 D_80393468[] = { + 0, + 0, + UNKFLAGS1_7F_SANDCASTLE_OPEN_CC, + UNKFLAGS1_84_SANDCASTLE_OPEN_BGS, + UNKFLAGS1_8B_SANDCASTLE_OPEN_FP, + UNKFLAGS1_87_SANDCASTLE_OPEN_GV, + UNKFLAGS1_8C_SANDCASTLE_OPEN_MMM, + UNKFLAGS1_90_SANDCASTLE_OPEN_RBB, + UNKFLAGS1_93_SANDCASTLE_OPEN_CCW, + 0 +}; + +s16 D_8039347C[] = {50, 180, 260, 350, 450, 640, 765, 810, 828, 846, 864, 882}; //notedoor_notes_required_to_open + +s16 D_80393494[] = {0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B}; +s32 D_803934A0[3] = {0x00, 0xFF, 0x00}; +struct31s D_803934AC = { + {1.0f, 2.0f}, + {2.4f, 5.0f}, + {0.0f, 3.2f}, + {3.8f, 5.0f}, + 0.31f, 0.93f +}; +struct42s D_803934D4 = { + {{-80.0f, 30.0f, -80.0f}, {80.0f, 270.0f, 80.0f}}, + {{40.0f, 0.0f, -50.0f}, {100.0f, 200.0f, 50.0f}}, +}; +s32 D_80393504[4] = {0x87, 0x87, 0x87, 0xB4}; //chcobweb @@ -219,7 +286,7 @@ void lair_func_80386550(Actor *this) func_80326310(this); func_80328B8C(this, 10, 0.98f, 1); - this->pitch = 270.f; + this->pitch = 270.0f; } break; @@ -458,8 +525,8 @@ void func_803870DC(Actor *this) { f32 sp64[3]; s32 temp_s7; - phi_v1 = func_8031FF1C(D_80393452[this->unkF4_8]) - || (D_80393466[this->unkF4_8] != 0 && func_803203FC(D_80393466[this->unkF4_8])); + phi_v1 = func_8031FF1C(D_80393454[this->unkF4_8 - 1]) + || (D_80393468[this->unkF4_8 - 1] != 0 && func_803203FC(D_80393468[this->unkF4_8 - 1])); if (!this->unk16C_4) { this->unk16C_4 = TRUE; @@ -600,7 +667,7 @@ void func_80387730(Actor *this) { marker_despawn(this->marker); return; } - if ((this->unkF4_8 >= 2U) && (this->unkF4_8 < 8U) && func_803203FC(D_80393490[this->unkF4_8])) { + if ((this->unkF4_8 >= 2U) && (this->unkF4_8 < 8U) && func_803203FC(D_80393494[this->unkF4_8 - 2])) { marker_despawn(this->marker); return; } @@ -620,7 +687,7 @@ void func_80387730(Actor *this) { if ((ml_vec3f_distance(spAC, this->position) < 500.0f) && (func_803114C4() != 0xF64)) { func_802FACA4(0xC); } - if (itemscore_noteScores_getTotal() >= D_8039347A[this->unkF4_8]) { + if (itemscore_noteScores_getTotal() >= D_8039347C[this->unkF4_8 - 1]) { if (this->marker->unk14_21) { func_8032BC60(this, 5, sp90); func_8032BC60(this, 6, sp84); diff --git a/src/lair/code_42A0.c b/src/lair/code_42A0.c index 1fc46a3a..297e55c4 100644 --- a/src/lair/code_42A0.c +++ b/src/lair/code_42A0.c @@ -23,15 +23,43 @@ void func_8038AE2C(Actor *this); Actor *func_8038B898(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx); /* .data */ -extern ActorAnimationInfo D_80393520[]; -extern ActorInfo D_80393560 = { 0x231, 0x23B, 0x4DF, 0x1, D_80393520, func_8038AE2C, func_80326224, func_8038B898, 0, 0, 3.0f, 0}; -extern ActorInfo D_80393584 = { 0x244, 0x2DB, 0x450, 0x1, D_80393520, func_8038AE2C, func_80326224, func_8038B898, 0, 0, 3.0f, 0}; -extern f32 D_803935A8[][2][3]; -extern Struct_lair_42A0_0 D_80393620[]; -extern f32 D_80393670[]; -extern f32 D_80393688[]; -extern f32 D_803936A8[]; -extern f32 D_803936E4[]; +ActorAnimationInfo D_80393520[] = { + { 0, 0.0f}, + {0x213, 2.66f}, + {0x212, 2.0f}, + {0x214, 6.4f}, + {0x215, 3.4f}, + {0x216, 1.0f}, + {0x28F, 5.167f}, + {0x290, 6.26f} +}; +ActorInfo D_80393560 = { 0x231, 0x23B, 0x4DF, 1, D_80393520, func_8038AE2C, func_80326224, func_8038B898, 0, 0, 3.0f, 0}; +ActorInfo D_80393584 = { 0x244, 0x2DB, 0x450, 1, D_80393520, func_8038AE2C, func_80326224, func_8038B898, 0, 0, 3.0f, 0}; +f32 D_803935A8[][2][3] = { + {{1.0f, 1.0f, 1.0f}, {1.0f, 0.0f, 1.0f}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 1.0f, 1.0f}}, + {{1.0f, 1.0f, 1.0f}, {1.0f, 0.4f, 0.0f}}, + {{1.0f, 1.0f, 1.0f}, {0.3f, 0.6f, 1.0f}}, + {{1.0f, 1.0f, 1.0f}, {1.0f, 1.0f, 0.0f}} +}; + +Struct_lair_42A0_0 D_80393620[] = { + {MAP_6A_GL_TTC_AND_CC_PUZZLE, 0x5A, 0x8, 0x72, 0x62, 0x6A, 0x240}, + {MAP_6F_GL_FP_LOBBY, 0x5B, 0x8, 0x73, 0x63, 0x6B, 0x240}, + {MAP_6F_GL_FP_LOBBY, 0x5C, 0x9, 0x74, 0x64, 0x6C, 0x241}, + {MAP_77_GL_RBB_LOBBY, 0x5D, 0x8, 0x75, 0x65, 0x6D, 0x240}, + {MAP_6C_GL_RED_CAULDRON_ROOM, 0x5E, 0x8, 0x76, 0x66, 0x6E, 0x240}, + {MAP_79_GL_CCW_LOBBY, 0x5F, 0x8, 0x77, 0x67, 0x6F, 0x240}, + {MAP_93_GL_DINGPOT, 0x60, 0x0, 0x78, 0x68, 0x70, 0x240}, + {0, 0x61, 0x0, 0x79, 0x69, 0x71, 0x240}, + {MAP_8E_GL_FURNACE_FUN, 0x8A, 0x8, 0x90, 0x8C, 0x8E, 0x240}, + {MAP_93_GL_DINGPOT, 0x8B, 0x8, 0x91, 0x8D, 0x8F, 0x241} +}; + +f32 D_80393670[] = {0.083f, 0.202f, 0.285f, 0.371f, 0.417f, -1.0f}; +f32 D_80393688[] = {0.571f, 0.608f, 0.645f, 0.685f, 0.716f, 0.75f, 0.791f, -1.0f}; +f32 D_803936A8[] = {0.293f, 0.376f, 0.42f, 0.453f, 0.488f, 0.522f, 0.556f, 0.59f, 0.626f, 0.661f, 0.693f, 0.729f, 0.764f, 0.863f, -1.0f}; +f32 D_803936E4[] = {0.03f, 0.09f, 0.2f, 0.25f, 0.32f, 0.4f, 0.45f, 1.0f}; /* .code */ bool func_8038A690(Actor *this) { diff --git a/src/lair/code_5ED0.c b/src/lair/code_5ED0.c index e7f48a9a..b24fa661 100644 --- a/src/lair/code_5ED0.c +++ b/src/lair/code_5ED0.c @@ -85,31 +85,307 @@ extern void func_8029A95C(s32); // set transformation extern struct FF_StorageStruct *D_8037DCB8; /* .data */ -extern Struct_lair_5ED0_0 D_80393760[FF_QNF_CNT - 1]; -extern struct FF_QuestionTypeInfo FF_QuestionTypeInfoArr[5]; //D_80394340 +extern Struct_lair_5ED0_0 D_80393760[FF_QNF_CNT - 1] = { + {{ 0, 0, 0x192, 0}, 1, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{ 0, 0, 0x199, 0}, 2, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{ 0, 0, 0, 0x194}, 0, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{ 0, 0x193, 0, 0x195}, 6, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{ 0, 0x194, 0, 0x196}, 8, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{ 0, 0x195, 0, 0x197}, 0, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{ 0, 0x196, 0x19B, 0x198}, 3, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{ 0, 0x197, 0, 0x199}, 1, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{0x192, 0x198, 0, 0x19A}, 0, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{ 0, 0x199, 0x19C, 0}, 5, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{0x197, 0, 0x19E, 0}, 2, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{0x19A, 0, 0x19F, 0}, 1, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{ 0, 0, 0x1A0, 0}, 8, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{0x19B, 0, 0x1A3, 0}, 1, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{0x19C, 0, 0x1A6, 0}, 0, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{0x19D, 0, 0x1AB, 0}, 1, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{ 0, 0, 0x1AC, 0}, 8, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{ 0, 0, 0x1AD, 0x1A3}, 5, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{0x19E, 0x1A2, 0, 0x1A4}, 4, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{ 0, 0x1A3, 0, 0x1A5}, 0, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{ 0, 0x1A4, 0, 0x1A6}, 1, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{0x19F, 0x1A5, 0, 0x1A7}, 4, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{ 0, 0x1A6, 0, 0x1A8}, 2, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{ 0, 0x1A7, 0, 0x1A9}, 1, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{ 0, 0x1A8, 0x1AE, 0x1AA}, 3, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{ 0, 0x1A9, 0, 0x1AB}, 5, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{0x1A0, 0x1AA, 0, 0}, 1, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{0x1A1, 0, 0x1AF, 0}, 0, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{0x1A2, 0, 0x1B3, 0}, 0, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{0x1A9, 0, 0x1B4, 0}, 6, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{0x1AC, 0, 0x1B5, 0x1B0}, 5, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{ 0, 0x1AF, 0, 0x1B1}, 2, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{ 0, 0x1B0, 0, 0x1B2}, 1, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{ 0, 0x1B1, 0, 0x1B3}, 3, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{0x1AD, 0x1B2, 0x1B6, 0}, 6, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{0x1AE, 0, 0x1BD, 0}, 0, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{0x1AF, 0, 0x1C0, 0}, 0, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{0x1B3, 0, 0x1C1, 0x1B7}, 5, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{ 0, 0x1B6, 0, 0x1B8}, 1, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{ 0, 0x1B7, 0, 0x1B9}, 0, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{ 0, 0x1B8, 0, 0x1BA}, 1, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{ 0, 0x1B9, 0x1C2, 0x1BB}, 4, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{ 0, 0x1BA, 0, 0x1BC}, 3, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{ 0, 0x1BB, 0, 0x1BD}, 2, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{0x1B4, 0x1BC, 0, 0x1BE}, 5, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{ 0, 0x1BD, 0, 0x1BF}, 1, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{ 0, 0x1BE, 0x1C3, 0}, 2, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{0x1B5, 0, 0x1C4, 0}, 3, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{0x1B6, 0, 0x1C8, 0}, 2, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{0x1BA, 0, 0x1C9, 0}, 5, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{0x1BF, 0, 0x1CA, 0}, 2, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{0x1C0, 0, 0, 0x1C5}, 0, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{ 0, 0x1C4, 0, 0x1C6}, 3, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{ 0, 0x1C5, 0x1CD, 0x1C7}, 4, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{ 0, 0x1C6, 0, 0x1C8}, 3, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{0x1C1, 0x1C7, 0, 0}, 6, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{0x1C2, 0, 0x1D0, 0}, 6, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{0x1C3, 0, 0x1D5, 0x1CB}, 3, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{ 0, 0x1CA, 0, 0x1CC}, 5, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{ 0, 0x1CB, 0, 0}, 8, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{0x1C6, 0, 0x1D6, 0}, 1, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{ 0, 0, 0x1D7, 0x1CF}, 0, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{ 0, 0x1CE, 0, 0x1D0}, 1, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{0x1C9, 0x1CF, 0, 0x1D1}, 6, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{ 0, 0x1D0, 0, 0x1D2}, 2, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{ 0, 0x1D1, 0, 0x1D3}, 3, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{ 0, 0x1D2, 0x1D8, 0x1D4}, 4, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{ 0, 0x1D3, 0, 0x1D5}, 1, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{0x1CA, 0x1D4, 0, 0}, 0, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{0x1CD, 0, 0x1D9, 0}, 2, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{0x1CE, 0, 0x1DD, 0}, 2, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{0x1D3, 0, 0x1DE, 0}, 6, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{0x1D6, 0, 0x1E0, 0x1DA}, 5, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{ 0, 0x1D9, 0, 0x1DB}, 5, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{ 0, 0x1DA, 0, 0x1DC}, 0, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{ 0, 0x1DB, 0, 0x1DD}, 3, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{0x1D7, 0x1DC, 0x1E1, 0}, 4, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{0x1D8, 0, 0x1E2, 0}, 6, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{ 0, 0, 0x1E3, 0}, 8, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{0x1D9, 0, 0x1E5, 0}, 1, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{0x1DD, 0, 0x1E6, 0}, 1, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{0x1DE, 0, 0x1EB, 0}, 6, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{0x1DF, 0, 0, 0x1E4}, 2, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{ 0, 0x1E3, 0, 0x1E5}, 6, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{0x1E0, 0x1E4, 0, 0}, 0, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{0x1E1, 0, 0, 0x1E7}, 6, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{ 0, 0x1E6, 0x1EF, 0x1E8}, 5, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{ 0, 0x1E7, 0, 0x1E9}, 1, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{ 0, 0x1E8, 0, 0x1EA}, 0, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{ 0, 0x1E9, 0, 0x1EB}, 2, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{0x1E2, 0x1EA, 0, 0x1EC}, 0, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{ 0, 0x1EB, 0, 0x1ED}, 6, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{ 0, 0x1EC, 0, 0x1EE}, 6, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{ 0, 0x1ED, 0, 0}, 0, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{0x1E7, 0, 0x191, 0}, 6, 0, 0, {0, 0, 0}, 0.0f, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}} +}; + + +extern struct FF_QuestionTypeInfo FF_QuestionTypeInfoArr[5] = { + { 0x0, 100}, + { 0x64, 118}, + { 0xDA, 51}, + {0x10D, 30}, + {0x12B, 6} +}; extern struct { u8 unk0; - // u8 pad1[1]; s16 unk2; - s16 unk4; - u8 UNK_06; - u8 UNK_07; - f32 unk8; -} D_80394354[]; +} D_80394354[] = { + {0, 0x401 /*SFX_401_*/, 32000, 1.0f}, + {1, COMUSIC_C_EGG_COLLECTED, 0x7FFF, 3.0f}, + {1, COMUSIC_B_RED_FEATHER_COLLECTED, 32000, 3.0f}, + {1, COMUSIC_15_EXTRA_LIFE_COLLECTED, 32000, 3.5f}, + {1, COMUSIC_16_HONEYCOMB_COLLECTED, 0x7FFF, 3.0f}, + {1, COMUSIC_9_NOTE_COLLECTED, 32000, 3.0f}, + {1, COMUSIC_14_GOLD_FEATHER_COLLECTED, 0x7FFF, 3.0f}, + {1, COMUSIC_17_EMPTY_HONEYCOMB_COLLECTED, 0x7FFF, 3.0f}, + {2, TALK_PIC_1D_GOBI, 0, 0.0f}, + {2, TALK_PIC_15_CLANKER, 0, 0.0f}, + {2, TALK_PIC_1B_TRUNKER, 0, 0.0f}, + {2, TALK_PIC_17_VILE_4, 0, 0.0f}, + {2, TALK_PIC_13_BLUBBER, 0, 0.0f}, + {2, TALK_PIC_10_MUMBO_1, 0, 0.0f}, + {2, TALK_PIC_12_CONGA, 0, 0.0f}, + {2, TALK_PIC_F_BOTTLES, 0, 0.0f}, + {2, TALK_PIC_11_CHIMPY, 0, 0.0f}, + {2, TALK_PIC_18_TIPTUP, 0, 0.0f}, + {2, TALK_PIC_1C_RUBEE, 0, 0.0f}, + {2, TALK_PIC_1F_TEEHEE, 0, 0.0f}, + {2, TALK_PIC_3E_SNORKEL, 0, 0.0f}, + {2, TALK_PIC_41_GRUNTILDA_3, 0, 0.0f}, + {2, TALK_PIC_43_BOGGY, 0, 0.0f}, + {2, TALK_PIC_44_WOZZA, 0, 0.0f}, + {2, TALK_PIC_50_NAMBUT, 0, 0.0f}, + {2, TALK_PIC_51_POLAR_BEAR_CUBS, 0, 0.0f}, + {2, TALK_PIC_55_ADULT_EEYRIE, 0, 0.0f}, + {2, TALK_PIC_57_BRENTILDA, 0, 0.0f}, + {2, TALK_PIC_58_TOOTY_3, 0, 0.0f}, + {2, TALK_PIC_5A_LOGGO, 0, 0.0f}, + {2, TALK_PIC_14_NIPPER, 0, 0.0f}, + {2, TALK_PIC_19_TANKTUP, 0, 0.0f}, + {2, TALK_PIC_20_JINJO_YELLOW, 0, 0.0f}, + {1, COMUSIC_57_TURBO_TRAINERS, 32000, 10.0f}, + {1, COMUSIC_58_WADING_BOOTS, 32000, 10.0f}, + {1, COMUSIC_25_USING_GOLD_FEATHERS, 32000, 10.0f}, + {1, COMUSIC_5A_FP_IGLOO_SAD, 32000, 10.0f}, + {1, COMUSIC_44_CCW_NABNUT, 32000, 10.0f}, + {1, COMUSIC_41_MUMBOS_HUT, 32000, 10.0f}, + {3, COMUSIC_2_MM, 0x103F, 10.0f}, + {3, COMUSIC_5_TTC_VACATION_VERSION, 0x60FF, 10.0f}, + {3, COMUSIC_1C_CC_ALTERNATIVE, 0x407F, 10.0f}, + {3, COMUSIC_6_BGS, 0x6F4F, 10.0f}, + {3, COMUSIC_20_GV_ALTERNATIVE, 0x67FE, 10.0f}, + {3, COMUSIC_F_MMM_ALTERNATIVE, 0xCFFF, 10.0f}, + {3, COMUSIC_3_FP_TWINKLIES_TALKING, 0x43FF, 10.0f}, + {3, COMUSIC_2F_CCW_HUBROOM, 0x0007, 10.0f}, + {3, COMUSIC_33_RBB_ALTERNATIVE, 0x71BF, 10.0f}, + {1, COMUSIC_4B_CCW_ZUBBA_FIGHT, 32000, 10.0f}, + {1, COMUSIC_6B_FP_ALTERNATIVE, 32000, 10.0f}, + {3, COMUSIC_5_TTC_VACATION_VERSION, 0x7800, 10.0f}, +}; -// ? extern struct { - s16 unk0; - s16 UNK_01; -} D_803945B8[]; + s16 map; + s16 exit; +} D_803945B8[] = { + {MAP_3A_RBB_BOSS_BOOM_BOX, 2}, + {MAP_10_BGS_MR_VILE, 2}, + {MAP_13_GV_MEMORY_GAME, 2}, + {MAP_5A_CCW_SUMMER_ZUBBA_HIVE, 3}, + {MAP_11_BGS_TIPTUP, 2}, + {MAP_A_TTC_SANDCASTLE, 2} +}; extern struct { s16 unk0; s16 UNK_01; -} D_803945D0[]; +} D_803945D0[] = { + {MAP_2_MM_MUMBOS_MOUNTAIN, 0x1B}, + {MAP_2_MM_MUMBOS_MOUNTAIN, 0x1E}, + {MAP_2_MM_MUMBOS_MOUNTAIN, 0x20}, + {MAP_2_MM_MUMBOS_MOUNTAIN, 0x25}, + {MAP_2_MM_MUMBOS_MOUNTAIN, 0x1C}, + {MAP_2_MM_MUMBOS_MOUNTAIN, 0x21}, + {MAP_2_MM_MUMBOS_MOUNTAIN, 0x22}, + {MAP_C_MM_TICKERS_TOWER, 0x08}, + {MAP_2_MM_MUMBOS_MOUNTAIN, 0x23}, + {MAP_2_MM_MUMBOS_MOUNTAIN, 0x24}, + {MAP_C_MM_TICKERS_TOWER, 0x06}, + {MAP_C_MM_TICKERS_TOWER, 0x07}, + {MAP_7_TTC_TREASURE_TROVE_COVE, 0x16}, + {MAP_7_TTC_TREASURE_TROVE_COVE, 0x18}, + {MAP_5_TTC_BLUBBERS_SHIP, 0x02}, + {MAP_A_TTC_SANDCASTLE, 0x03}, + {MAP_7_TTC_TREASURE_TROVE_COVE, 0x0E}, + {MAP_7_TTC_TREASURE_TROVE_COVE, 0x19}, + {MAP_7_TTC_TREASURE_TROVE_COVE, 0x1A}, + {MAP_A_TTC_SANDCASTLE, 0x02}, + {MAP_7_TTC_TREASURE_TROVE_COVE, 0x0F}, + {MAP_7_TTC_TREASURE_TROVE_COVE, 0x14}, + {MAP_6_TTC_NIPPERS_SHELL, 0x02}, + {MAP_5_TTC_BLUBBERS_SHIP, 0x03}, + {MAP_B_CC_CLANKERS_CAVERN, 0x0D}, + {MAP_21_CC_WITCH_SWITCH_ROOM, 0x04}, + {MAP_21_CC_WITCH_SWITCH_ROOM, 0x05}, + {MAP_22_CC_INSIDE_CLANKER, 0x07}, + {MAP_B_CC_CLANKERS_CAVERN, 0x09}, + {MAP_B_CC_CLANKERS_CAVERN, 0x0A}, + {MAP_B_CC_CLANKERS_CAVERN, 0x10}, + {MAP_22_CC_INSIDE_CLANKER, 0x06}, + {MAP_B_CC_CLANKERS_CAVERN, 0x0E}, + {MAP_B_CC_CLANKERS_CAVERN, 0x11}, + {MAP_B_CC_CLANKERS_CAVERN, 0x0F}, + {MAP_22_CC_INSIDE_CLANKER, 0x08}, + {MAP_D_BGS_BUBBLEGLOOP_SWAMP, 0x13}, + {MAP_D_BGS_BUBBLEGLOOP_SWAMP, 0x15}, + {MAP_D_BGS_BUBBLEGLOOP_SWAMP, 0x16}, + {MAP_D_BGS_BUBBLEGLOOP_SWAMP, 0x17}, + {MAP_D_BGS_BUBBLEGLOOP_SWAMP, 0x14}, + {MAP_11_BGS_TIPTUP, 0x05}, + {MAP_D_BGS_BUBBLEGLOOP_SWAMP, 0x18}, + {MAP_D_BGS_BUBBLEGLOOP_SWAMP, 0x19}, + {MAP_11_BGS_TIPTUP, 0x06}, + {MAP_11_BGS_TIPTUP, 0x07}, + {MAP_10_BGS_MR_VILE, 0x04}, + {MAP_D_BGS_BUBBLEGLOOP_SWAMP, 0x1A}, + {MAP_27_FP_FREEZEEZY_PEAK, 0x38}, + {MAP_27_FP_FREEZEEZY_PEAK, 0x3B}, + {MAP_41_FP_BOGGYS_IGLOO, 0x04}, + {MAP_27_FP_FREEZEEZY_PEAK, 0x38}, + {MAP_27_FP_FREEZEEZY_PEAK, 0x2F}, + {MAP_27_FP_FREEZEEZY_PEAK, 0x39}, + {MAP_7F_FP_WOZZAS_CAVE, 0x04}, + {MAP_53_FP_CHRISTMAS_TREE, 0x09}, + {MAP_27_FP_FREEZEEZY_PEAK, 0x30}, + {MAP_27_FP_FREEZEEZY_PEAK, 0x3A}, + {MAP_53_FP_CHRISTMAS_TREE, 0x0A}, + {MAP_27_FP_FREEZEEZY_PEAK, 0x30}, + {MAP_12_GV_GOBIS_VALLEY, 0x25}, + {MAP_12_GV_GOBIS_VALLEY, 0x2A}, + {MAP_13_GV_MEMORY_GAME, 0x01}, + {MAP_16_GV_RUBEES_CHAMBER, 0x03}, + {MAP_12_GV_GOBIS_VALLEY, 0x26}, + {MAP_12_GV_GOBIS_VALLEY, 0x2B}, + {MAP_12_GV_GOBIS_VALLEY, 0x2C}, + {MAP_14_GV_SANDYBUTTS_MAZE, 0x0C}, + {MAP_14_GV_SANDYBUTTS_MAZE, 0x0D}, + {MAP_14_GV_SANDYBUTTS_MAZE, 0x0E}, + {MAP_15_GV_WATER_PYRAMID, 0x03}, + {MAP_12_GV_GOBIS_VALLEY, 0x2D}, + {MAP_1B_MMM_MAD_MONSTER_MANSION, 0x1F}, + {MAP_1B_MMM_MAD_MONSTER_MANSION, 0x20}, + {MAP_1D_MMM_CELLAR, 0x08}, + {MAP_1C_MMM_CHURCH, 0x03}, + {MAP_1B_MMM_MAD_MONSTER_MANSION, 0x1D}, + {MAP_1B_MMM_MAD_MONSTER_MANSION, 0x1B}, + {MAP_1B_MMM_MAD_MONSTER_MANSION, 0x1E}, + {MAP_2B_MMM_SECRET_CHURCH_ROOM, 0x02}, + {MAP_26_MMM_NAPPERS_ROOM, 0x03}, + {MAP_26_MMM_NAPPERS_ROOM, 0x05}, + {MAP_1C_MMM_CHURCH, 0x04}, + {MAP_8D_MMM_INSIDE_LOGGO, 0x01}, + {MAP_31_RBB_RUSTY_BUCKET_BAY, 0x20}, + {MAP_31_RBB_RUSTY_BUCKET_BAY, 0x22}, + {MAP_34_RBB_ENGINE_ROOM, 0x09}, + {MAP_3C_RBB_KITCHEN, 0x04}, + {MAP_31_RBB_RUSTY_BUCKET_BAY, 0x12}, + {MAP_31_RBB_RUSTY_BUCKET_BAY, 0x15}, + {MAP_3C_RBB_KITCHEN, 0x03}, + {MAP_3B_RBB_STORAGE_ROOM, 0x04}, + {MAP_31_RBB_RUSTY_BUCKET_BAY, 0x21}, + {MAP_31_RBB_RUSTY_BUCKET_BAY, 0x23}, + {MAP_34_RBB_ENGINE_ROOM, 0x0F}, + {MAP_8B_RBB_ANCHOR_ROOM, 0x03}, + {MAP_45_CCW_AUTUMN, 0x0D}, + {MAP_44_CCW_SUMMER, 0x08}, + {MAP_5A_CCW_SUMMER_ZUBBA_HIVE, 0x05}, + {MAP_43_CCW_SPRING, 0x05}, + {MAP_45_CCW_AUTUMN, 0x05}, + {MAP_46_CCW_WINTER, 0x02}, + {MAP_44_CCW_SUMMER, 0x0A}, + {MAP_40_CCW_HUB, 0x05}, + {MAP_46_CCW_WINTER, 0x07}, + {MAP_44_CCW_SUMMER, 0x09}, + {MAP_5F_CCW_SUMMER_NABNUTS_HOUSE, 0x02}, + {MAP_45_CCW_AUTUMN, 0x0E}, + {MAP_12_GV_GOBIS_VALLEY, 0x27}, + {MAP_E_MM_MUMBOS_SKULL, 0x02}, + {MAP_5F_CCW_SUMMER_NABNUTS_HOUSE, 0x01}, + {MAP_2_MM_MUMBOS_MOUNTAIN, 0x1D}, + {MAP_B_CC_CLANKERS_CAVERN, 0x1D}, + {MAP_10_BGS_MR_VILE, 0x03}, + {MAP_12_GV_GOBIS_VALLEY, 0x28}, + {MAP_7_TTC_TREASURE_TROVE_COVE, 0x10}, + {MAP_27_FP_FREEZEEZY_PEAK, 0x31}, + {MAP_1_SM_SPIRAL_MOUNTAIN, 0x13} +}; /* .code */ // FF: get total number of questions per type @@ -564,8 +840,8 @@ void func_8038D4BC(void) // trigger warp after a delay timedFunc_set_3(0.25f, (TFQM3)func_802E4078, - D_803945B8[D_8037DCB8->unkC].unk0, - D_803945B8[D_8037DCB8->unkC].UNK_01, + D_803945B8[D_8037DCB8->unkC].map, + D_803945B8[D_8037DCB8->unkC].exit, 1 ); }