marioparty4/src/REL/option/sound.c
2024-03-16 13:04:23 -07:00

1654 lines
57 KiB
C
Executable file

#include "REL/option.h"
#include "game/data.h"
#include "game/esprite.h"
#include "game/gamework_data.h"
#include "game/hsfman.h"
#include "game/hsfmotion.h"
#include "game/memory.h"
#include "game/msm.h"
#include "game/process.h"
#include "game/window.h"
#include "dolphin.h"
#include "math.h"
typedef struct {
/* 0x000 */ omObjData *unk00[26];
/* 0x068 */ UnkWindowDataStruct *unk68[13];
/* 0x09C */ s32 unk9C;
/* 0x0A0 */ s16 unkA0[19];
/* 0x0C6 */ char unkC6[2];
/* 0x0C8 */ s32 unkC8;
/* 0x0CC */ s32 unkCC;
/* 0x0D0 */ s32 unkD0;
/* 0x0D4 */ s32 unkD4;
/* 0x0D8 */ s32 unkD8;
/* 0x0DC */ s32 unkDC;
/* 0x0E0 */ s16 unkE0;
/* 0x0E2 */ char unkE2[2];
/* 0x0E4 */ s32 unkE4;
/* 0x0E8 */ s32 unkE8;
/* 0x0EC */ s32 unkEC;
/* 0x0F0 */ s16 unkF0;
/* 0x0F2 */ s16 unkF2;
/* 0x0F4 */ s16 unkF4;
/* 0x0F6 */ s16 unkF6;
/* 0x0F8 */ s32 unkF8;
/* 0x0FC */ s32 unkFC;
/* 0x100 */ s32 unk100;
/* 0x104 */ float unk104;
/* 0x108 */ float unk108;
/* 0x10C */ Process *unk10C;
} UnkSoundDataStruct00; // Size 0x110
typedef struct {
/* 0x00 */ s32 unk00;
/* 0x04 */ s32 unk04;
/* 0x08 */ s32 unk08;
/* 0x0C */ float unk0C;
/* 0x10 */ float unk10;
} UnkSoundDataStruct01; // Size 0x14
typedef struct {
/* 0x00 */ BOOL unk00;
/* 0x04 */ s32 unk04;
/* 0x08 */ s16 unk08;
/* 0x0A */ s16 unk0A;
/* 0x0C */ s32 unk0C;
} lbl_1_rodata_1E0_Data; // Size 0x10
static void fn_1_43E8(omObjData *arg0);
static void fn_1_4658(omObjData *arg0);
static void fn_1_4A7C(omObjData *arg0);
static void fn_1_4E50(omObjData *arg0);
static void fn_1_578C(omObjData *arg0);
static void fn_1_6044(omObjData *arg0, s32 arg1);
static void fn_1_613C(omObjData *arg0);
static omObjData *fn_1_61A0(void);
static void fn_1_629C(omObjData *arg0);
static omObjData *fn_1_62F0(void);
static void fn_1_63EC(omObjData *arg0);
static omObjData *fn_1_6440(void);
static void fn_1_64D4(omObjData *arg0);
static omObjData *fn_1_6528(s32 arg0, s32 arg1);
static void fn_1_6640(omObjData *arg0);
static void fn_1_6694(omObjData *arg0);
static void fn_1_66CC(omObjData *arg0);
static void fn_1_6704(omObjData *arg0);
static void fn_1_67C8(omObjData *arg0);
static void fn_1_6828(omObjData *arg0);
static void fn_1_6A0C(omObjData *arg0);
static void fn_1_6A80(omObjData *arg0);
static void fn_1_6C5C(omObjData *arg0);
static void fn_1_6CD0(omObjData *arg0, s32 arg1);
static void fn_1_6EA4(omObjData *arg0);
static void fn_1_6F48(omObjData *arg0, s32 arg1);
static void fn_1_711C(omObjData *arg0);
static omObjData *fn_1_71C0(s32 arg0);
static void fn_1_72A8(omObjData *arg0);
static void fn_1_7310(omObjData *arg0);
static void fn_1_7710(omObjData *arg0, s32 arg1, s32 arg2, s32 arg3);
static void fn_1_78A0(omObjData *arg0);
static void fn_1_7900(omObjData *arg0);
static void fn_1_793C(void);
static void fn_1_7F00(omObjData *arg0);
static void fn_1_8048(omObjData *arg0);
omObjData *lbl_1_bss_38;
static const s32 lbl_1_rodata_1A8[] = {
MAKE_MESSID(47, 70),
MAKE_MESSID(47, 81),
MAKE_MESSID(47, 172),
MAKE_MESSID(47, 92),
MAKE_MESSID(47, 101),
MAKE_MESSID(47, 109),
MAKE_MESSID(47, 119),
MAKE_MESSID(47, 173),
MAKE_MESSID(47, 174),
MAKE_MESSID(47, 129),
MAKE_MESSID(47, 140),
MAKE_MESSID(47, 149),
MAKE_MESSID(47, 156),
MAKE_MESSID(47, 176)
};
static const lbl_1_rodata_1E0_Data lbl_1_rodata_1E0[14][10] = {
{
{ TRUE, MAKE_MESSID(47, 71), 1, 0, 20 },
{ TRUE, MAKE_MESSID(47, 72), 2, 79, 43 },
{ TRUE, MAKE_MESSID(47, 73), 3, 81, 44 },
{ TRUE, MAKE_MESSID(47, 74), 29, 80, 45 },
{ TRUE, MAKE_MESSID(47, 76), 30, 82, 47 },
{ TRUE, MAKE_MESSID(47, 78), 1, 0, 12 },
{ TRUE, MAKE_MESSID(47, 77), 4, 83, 48 },
{ TRUE, MAKE_MESSID(47, 80), 11, 90, 40 },
{ FALSE, MAKE_MESSID(47, 69), 0, 0, 0 },
{ FALSE, MAKE_MESSID(47, 69), 0, 0, 0 }
},
{
{ TRUE, MAKE_MESSID(47, 79), 1, 0, 5 },
{ TRUE, MAKE_MESSID(47, 170), 33, 0, 12 },
{ TRUE, MAKE_MESSID(47, 82), 33, 0, 7 },
{ TRUE, MAKE_MESSID(47, 83), 33, 0, 4 },
{ TRUE, MAKE_MESSID(47, 171), 33, 0, 10 },
{ TRUE, MAKE_MESSID(47, 84), 33, 0, 9 },
{ TRUE, MAKE_MESSID(47, 85), 33, 0, 1 },
{ TRUE, MAKE_MESSID(47, 86), 33, 0, 3 },
{ TRUE, MAKE_MESSID(47, 87), 33, 0, 2 },
{ FALSE, MAKE_MESSID(47, 69), 0, 0, 0 }
},
{
{ TRUE, MAKE_MESSID(47, 88), 33, 0, 5 },
{ TRUE, MAKE_MESSID(47, 89), 33, 0, 6 },
{ TRUE, MAKE_MESSID(47, 90), 33, 0, 11 },
{ TRUE, MAKE_MESSID(47, 91), 33, 0, 8 },
{ TRUE, MAKE_MESSID(47, 125), 1, 0, 2 },
{ TRUE, MAKE_MESSID(47, 126), 1, 0, 6 },
{ TRUE, MAKE_MESSID(47, 127), 1, 0, 9 },
{ TRUE, MAKE_MESSID(47, 128), 1, 0, 10 },
{ TRUE, MAKE_MESSID(47, 124), 12, 93, 49 },
{ TRUE, MAKE_MESSID(47, 123), 12, 93, 50 }
},
{
{ TRUE, MAKE_MESSID(47, 93), 5, 84, 13 },
{ TRUE, MAKE_MESSID(47, 94), 5, 84, 14 },
{ TRUE, MAKE_MESSID(47, 95), 5, 84, 15 },
{ TRUE, MAKE_MESSID(47, 96), 5, 84, 16 },
{ FALSE, MAKE_MESSID(47, 69), 0, 0, 0 },
{ FALSE, MAKE_MESSID(47, 69), 0, 0, 0 },
{ FALSE, MAKE_MESSID(47, 69), 0, 0, 0 },
{ FALSE, MAKE_MESSID(47, 69), 0, 0, 0 },
{ FALSE, MAKE_MESSID(47, 69), 0, 0, 0 },
{ FALSE, MAKE_MESSID(47, 69), 0, 0, 0 }
},
{
{ TRUE, MAKE_MESSID(47, 97), 6, 85, 17 },
{ TRUE, MAKE_MESSID(47, 98), 6, 85, 18 },
{ TRUE, MAKE_MESSID(47, 99), 6, 85, 19 },
{ TRUE, MAKE_MESSID(47, 100), 6, 85, 20 },
{ FALSE, MAKE_MESSID(47, 69), 0, 0, 0 },
{ FALSE, MAKE_MESSID(47, 69), 0, 0, 0 },
{ FALSE, MAKE_MESSID(47, 69), 0, 0, 0 },
{ FALSE, MAKE_MESSID(47, 69), 0, 0, 0 },
{ FALSE, MAKE_MESSID(47, 69), 0, 0, 0 },
{ FALSE, MAKE_MESSID(47, 69), 0, 0, 0 }
},
{
{ TRUE, MAKE_MESSID(47, 102), 7, 86, 21 },
{ TRUE, MAKE_MESSID(47, 103), 7, 86, 22 },
{ TRUE, MAKE_MESSID(47, 104), 7, 86, 23 },
{ TRUE, MAKE_MESSID(47, 105), 7, 86, 24 },
{ TRUE, MAKE_MESSID(47, 106), 7, 86, 25 },
{ TRUE, MAKE_MESSID(47, 107), 7, 86, 26 },
{ TRUE, MAKE_MESSID(47, 108), 7, 86, 27 },
{ FALSE, MAKE_MESSID(47, 69), 0, 0, 0 },
{ FALSE, MAKE_MESSID(47, 69), 0, 0, 0 },
{ FALSE, MAKE_MESSID(47, 69), 0, 0, 0 }
},
{
{ TRUE, MAKE_MESSID(47, 110), 8, 87, 28 },
{ TRUE, MAKE_MESSID(47, 111), 8, 87, 30 },
{ TRUE, MAKE_MESSID(47, 112), 8, 87, 29 },
{ TRUE, MAKE_MESSID(47, 113), 8, 87, 31 },
{ TRUE, MAKE_MESSID(47, 114), 8, 87, 32 },
{ FALSE, MAKE_MESSID(47, 69), 0, 0, 0 },
{ FALSE, MAKE_MESSID(47, 69), 0, 0, 0 },
{ FALSE, MAKE_MESSID(47, 69), 0, 0, 0 },
{ FALSE, MAKE_MESSID(47, 69), 0, 0, 0 },
{ FALSE, MAKE_MESSID(47, 69), 0, 0, 0 }
},
{
{ TRUE, MAKE_MESSID(47, 115), 9, 88, 33 },
{ TRUE, MAKE_MESSID(47, 116), 9, 88, 34 },
{ TRUE, MAKE_MESSID(47, 117), 9, 88, 35 },
{ TRUE, MAKE_MESSID(47, 118), 9, 88, 36 },
{ FALSE, MAKE_MESSID(47, 69), 0, 0, 0 },
{ FALSE, MAKE_MESSID(47, 69), 0, 0, 0 },
{ FALSE, MAKE_MESSID(47, 69), 0, 0, 0 },
{ FALSE, MAKE_MESSID(47, 69), 0, 0, 0 },
{ FALSE, MAKE_MESSID(47, 69), 0, 0, 0 },
{ FALSE, MAKE_MESSID(47, 69), 0, 0, 0 }
},
{
{ TRUE, MAKE_MESSID(47, 120), 10, 89, 37 },
{ TRUE, MAKE_MESSID(47, 121), 10, 89, 38 },
{ TRUE, MAKE_MESSID(47, 122), 10, 89, 39 },
{ FALSE, MAKE_MESSID(47, 69), 0, 0, 0 },
{ FALSE, MAKE_MESSID(47, 69), 0, 0, 0 },
{ FALSE, MAKE_MESSID(47, 69), 0, 0, 0 },
{ FALSE, MAKE_MESSID(47, 69), 0, 0, 0 },
{ FALSE, MAKE_MESSID(47, 69), 0, 0, 0 },
{ FALSE, MAKE_MESSID(47, 69), 0, 0, 0 },
{ FALSE, MAKE_MESSID(47, 69), 0, 0, 0 }
},
{
{ TRUE, MAKE_MESSID(47, 130), 13, 94, 59 },
{ TRUE, MAKE_MESSID(47, 131), 13, 94, 57 },
{ TRUE, MAKE_MESSID(47, 132), 14, 95, 67 },
{ TRUE, MAKE_MESSID(47, 133), 15, 96, 68 },
{ TRUE, MAKE_MESSID(47, 134), 16, 97, 69 },
{ TRUE, MAKE_MESSID(47, 135), 17, 98, 70 },
{ TRUE, MAKE_MESSID(47, 136), 18, 99, 71 },
{ TRUE, MAKE_MESSID(47, 137), 19, 100, 72 },
{ TRUE, MAKE_MESSID(47, 138), 20, 101, 73 },
{ TRUE, MAKE_MESSID(47, 139), 21, 102, 74 }
},
{
{ TRUE, MAKE_MESSID(47, 141), 22, 103, 75 },
{ TRUE, MAKE_MESSID(47, 142), 23, 104, 76 },
{ TRUE, MAKE_MESSID(47, 143), 24, 105, 77 },
{ TRUE, MAKE_MESSID(47, 144), 13, 94, 58 },
{ TRUE, MAKE_MESSID(47, 175), 13, 94, 60 },
{ TRUE, MAKE_MESSID(47, 145), 1, 0, 1 },
{ TRUE, MAKE_MESSID(47, 146), 1, 0, 3 },
{ TRUE, MAKE_MESSID(47, 147), 1, 0, 4 },
{ TRUE, MAKE_MESSID(47, 148), 1, 0, 11 },
{ FALSE, MAKE_MESSID(47, 69), 0, 0, 0 }
},
{
{ TRUE, MAKE_MESSID(47, 152), 25, 106, 61 },
{ TRUE, MAKE_MESSID(47, 150), 25, 106, 62 },
{ TRUE, MAKE_MESSID(47, 151), 25, 106, 63 },
{ TRUE, MAKE_MESSID(47, 155), 26, 107, 65 },
{ TRUE, MAKE_MESSID(47, 153), 26, 107, 64 },
{ TRUE, MAKE_MESSID(47, 154), 26, 107, 66 },
{ TRUE, MAKE_MESSID(47, 164), 1, 0, 13 },
{ FALSE, MAKE_MESSID(47, 69), 0, 0, 0 },
{ FALSE, MAKE_MESSID(47, 69), 0, 0, 0 },
{ FALSE, MAKE_MESSID(47, 69), 0, 0, 0 }
},
{
{ TRUE, MAKE_MESSID(47, 157), 27, 108, 51 },
{ TRUE, MAKE_MESSID(47, 158), 27, 108, 53 },
{ TRUE, MAKE_MESSID(47, 159), 27, 108, 54 },
{ TRUE, MAKE_MESSID(47, 160), 27, 108, 52 },
{ TRUE, MAKE_MESSID(47, 161), 27, 108, 55 },
{ TRUE, MAKE_MESSID(47, 162), 27, 108, 56 },
{ TRUE, MAKE_MESSID(47, 163), 1, 0, 7 },
{ TRUE, MAKE_MESSID(47, 165), 1, 0, 22 },
{ FALSE, MAKE_MESSID(47, 69), 0, 0, 0 },
{ FALSE, MAKE_MESSID(47, 69), 0, 0, 0 }
},
{
{ TRUE, MAKE_MESSID(47, 177), 32, 92, 46 },
{ TRUE, MAKE_MESSID(47, 178), 31, 91, 41 },
{ FALSE, MAKE_MESSID(47, 69), 0, 0, 0 },
{ FALSE, MAKE_MESSID(47, 69), 0, 0, 0 },
{ FALSE, MAKE_MESSID(47, 69), 0, 0, 0 },
{ FALSE, MAKE_MESSID(47, 69), 0, 0, 0 },
{ FALSE, MAKE_MESSID(47, 69), 0, 0, 0 },
{ FALSE, MAKE_MESSID(47, 69), 0, 0, 0 },
{ FALSE, MAKE_MESSID(47, 69), 0, 0, 0 },
{ FALSE, MAKE_MESSID(47, 69), 0, 0, 0 }
}
};
static const s32 lbl_1_rodata_AA0[12] = {
MAKE_MESSID( 0, 0),
MAKE_MESSID( 0, 1),
MAKE_MESSID( 0, 2),
MAKE_MESSID( 0, 3),
MAKE_MESSID( 0, 4),
MAKE_MESSID( 0, 5),
MAKE_MESSID( 0, 6),
MAKE_MESSID( 0, 7),
MAKE_MESSID(47, 34),
MAKE_MESSID(47, 44),
MAKE_MESSID(47, 55),
MAKE_MESSID(47, 62)
};
static const lbl_1_rodata_1E0_Data lbl_1_rodata_AD0[12][10] = {
{
{ TRUE, MAKE_MESSID(47, 26), 28, 109, 2217 },
{ TRUE, MAKE_MESSID(47, 27), 28, 109, 2219 },
{ TRUE, MAKE_MESSID(47, 28), 28, 109, 2216 },
{ TRUE, MAKE_MESSID(47, 29), 28, 109, 2223 },
{ TRUE, MAKE_MESSID(47, 30), 28, 109, 2220 },
{ TRUE, MAKE_MESSID(47, 31), 28, 109, 2221 },
{ TRUE, MAKE_MESSID(47, 32), 28, 109, 2222 },
{ TRUE, MAKE_MESSID(47, 33), 28, 109, 2218 },
{ FALSE, MAKE_MESSID(47, 24), 28, 109, 0 },
{ FALSE, MAKE_MESSID(47, 24), 28, 109, 0 }
},
{
{ TRUE, MAKE_MESSID(47, 26), 28, 109, 2208 },
{ TRUE, MAKE_MESSID(47, 27), 28, 109, 2210 },
{ TRUE, MAKE_MESSID(47, 28), 28, 109, 2207 },
{ TRUE, MAKE_MESSID(47, 29), 28, 109, 2214 },
{ TRUE, MAKE_MESSID(47, 30), 28, 109, 2211 },
{ TRUE, MAKE_MESSID(47, 31), 28, 109, 2212 },
{ TRUE, MAKE_MESSID(47, 32), 28, 109, 2213 },
{ TRUE, MAKE_MESSID(47, 33), 28, 109, 2209 },
{ FALSE, MAKE_MESSID(47, 24), 28, 109, 0 },
{ FALSE, MAKE_MESSID(47, 24), 28, 109, 0 }
},
{
{ TRUE, MAKE_MESSID(47, 26), 28, 109, 2226 },
{ TRUE, MAKE_MESSID(47, 27), 28, 109, 2228 },
{ TRUE, MAKE_MESSID(47, 28), 28, 109, 2225 },
{ TRUE, MAKE_MESSID(47, 29), 28, 109, 2232 },
{ TRUE, MAKE_MESSID(47, 30), 28, 109, 2229 },
{ TRUE, MAKE_MESSID(47, 31), 28, 109, 2230 },
{ TRUE, MAKE_MESSID(47, 32), 28, 109, 2231 },
{ TRUE, MAKE_MESSID(47, 33), 28, 109, 2227 },
{ FALSE, MAKE_MESSID(47, 24), 28, 109, 0 },
{ FALSE, MAKE_MESSID(47, 24), 28, 109, 0 }
},
{
{ TRUE, MAKE_MESSID(47, 26), 28, 109, 2253 },
{ TRUE, MAKE_MESSID(47, 27), 28, 109, 2255 },
{ TRUE, MAKE_MESSID(47, 28), 28, 109, 2252 },
{ TRUE, MAKE_MESSID(47, 29), 28, 109, 2259 },
{ TRUE, MAKE_MESSID(47, 30), 28, 109, 2256 },
{ TRUE, MAKE_MESSID(47, 31), 28, 109, 2257 },
{ TRUE, MAKE_MESSID(47, 32), 28, 109, 2258 },
{ TRUE, MAKE_MESSID(47, 33), 28, 109, 2254 },
{ FALSE, MAKE_MESSID(47, 24), 28, 109, 0 },
{ FALSE, MAKE_MESSID(47, 24), 28, 109, 0 }
},
{
{ TRUE, MAKE_MESSID(47, 26), 28, 109, 2244 },
{ TRUE, MAKE_MESSID(47, 27), 28, 109, 2246 },
{ TRUE, MAKE_MESSID(47, 28), 28, 109, 2243 },
{ TRUE, MAKE_MESSID(47, 29), 28, 109, 2250 },
{ TRUE, MAKE_MESSID(47, 30), 28, 109, 2247 },
{ TRUE, MAKE_MESSID(47, 31), 28, 109, 2248 },
{ TRUE, MAKE_MESSID(47, 32), 28, 109, 2249 },
{ TRUE, MAKE_MESSID(47, 33), 28, 109, 2245 },
{ FALSE, MAKE_MESSID(47, 24), 28, 109, 0 },
{ FALSE, MAKE_MESSID(47, 24), 28, 109, 0 }
},
{
{ TRUE, MAKE_MESSID(47, 26), 28, 109, 2199 },
{ TRUE, MAKE_MESSID(47, 27), 28, 109, 2201 },
{ TRUE, MAKE_MESSID(47, 28), 28, 109, 2198 },
{ TRUE, MAKE_MESSID(47, 29), 28, 109, 2205 },
{ TRUE, MAKE_MESSID(47, 30), 28, 109, 2202 },
{ TRUE, MAKE_MESSID(47, 31), 28, 109, 2203 },
{ TRUE, MAKE_MESSID(47, 32), 28, 109, 2204 },
{ TRUE, MAKE_MESSID(47, 33), 28, 109, 2200 },
{ FALSE, MAKE_MESSID(47, 24), 28, 109, 0 },
{ FALSE, MAKE_MESSID(47, 24), 28, 109, 0 }
},
{
{ TRUE, MAKE_MESSID(47, 26), 28, 109, 2190 },
{ TRUE, MAKE_MESSID(47, 27), 28, 109, 2192 },
{ TRUE, MAKE_MESSID(47, 28), 28, 109, 2189 },
{ TRUE, MAKE_MESSID(47, 29), 28, 109, 2196 },
{ TRUE, MAKE_MESSID(47, 30), 28, 109, 2193 },
{ TRUE, MAKE_MESSID(47, 31), 28, 109, 2194 },
{ TRUE, MAKE_MESSID(47, 32), 28, 109, 2195 },
{ TRUE, MAKE_MESSID(47, 33), 28, 109, 2191 },
{ FALSE, MAKE_MESSID(47, 24), 28, 109, 0 },
{ FALSE, MAKE_MESSID(47, 24), 28, 109, 0 }
},
{
{ TRUE, MAKE_MESSID(47, 26), 28, 109, 2235 },
{ TRUE, MAKE_MESSID(47, 27), 28, 109, 2237 },
{ TRUE, MAKE_MESSID(47, 28), 28, 109, 2234 },
{ TRUE, MAKE_MESSID(47, 29), 28, 109, 2241 },
{ TRUE, MAKE_MESSID(47, 30), 28, 109, 2238 },
{ TRUE, MAKE_MESSID(47, 31), 28, 109, 2239 },
{ TRUE, MAKE_MESSID(47, 32), 28, 109, 2240 },
{ TRUE, MAKE_MESSID(47, 33), 28, 109, 2236 },
{ FALSE, MAKE_MESSID(47, 24), 28, 109, 0 },
{ FALSE, MAKE_MESSID(47, 24), 28, 109, 0 }
},
{
{ TRUE, MAKE_MESSID(47, 35), 28, 109, 54 },
{ TRUE, MAKE_MESSID(47, 36), 28, 109, 55 },
{ TRUE, MAKE_MESSID(47, 37), 28, 109, 56 },
{ TRUE, MAKE_MESSID(47, 38), 28, 109, 67 },
{ TRUE, MAKE_MESSID(47, 39), 28, 109, 68 },
{ TRUE, MAKE_MESSID(47, 40), 28, 109, 69 },
{ TRUE, MAKE_MESSID(47, 41), 28, 109, 64 },
{ TRUE, MAKE_MESSID(47, 42), 28, 109, 65 },
{ TRUE, MAKE_MESSID(47, 43), 28, 109, 66 },
{ FALSE, MAKE_MESSID(47, 24), 0, 0, 0 }
},
{
{ TRUE, MAKE_MESSID(47, 45), 28, 109, 75 },
{ TRUE, MAKE_MESSID(47, 46), 28, 109, 76 },
{ TRUE, MAKE_MESSID(47, 47), 28, 109, 77 },
{ TRUE, MAKE_MESSID(47, 48), 28, 109, 70 },
{ TRUE, MAKE_MESSID(47, 49), 28, 109, 71 },
{ TRUE, MAKE_MESSID(47, 50), 28, 109, 72 },
{ TRUE, MAKE_MESSID(47, 51), 28, 109, 58 },
{ TRUE, MAKE_MESSID(47, 52), 28, 109, 59 },
{ TRUE, MAKE_MESSID(47, 53), 28, 109, 60 },
{ TRUE, MAKE_MESSID(47, 54), 28, 109, 61 }
},
{
{ TRUE, MAKE_MESSID(47, 56), 28, 109, 62 },
{ TRUE, MAKE_MESSID(47, 57), 28, 109, 63 },
{ TRUE, MAKE_MESSID(47, 58), 28, 109, 79 },
{ TRUE, MAKE_MESSID(47, 59), 28, 109, 80 },
{ TRUE, MAKE_MESSID(47, 60), 28, 109, 73 },
{ TRUE, MAKE_MESSID(47, 61), 28, 109, 74 },
{ FALSE, MAKE_MESSID(47, 24), 28, 109, 0 },
{ FALSE, MAKE_MESSID(47, 24), 28, 109, 0 },
{ FALSE, MAKE_MESSID(47, 24), 28, 109, 0 },
{ FALSE, MAKE_MESSID(47, 24), 28, 109, 0 }
},
{
{ TRUE, MAKE_MESSID(47, 63), 28, 109, 36 },
{ TRUE, MAKE_MESSID(47, 64), 28, 109, 37 },
{ TRUE, MAKE_MESSID(47, 65), 28, 109, 38 },
{ TRUE, MAKE_MESSID(47, 67), 28, 109, 40 },
{ FALSE, MAKE_MESSID(47, 24), 28, 109, 0 },
{ FALSE, MAKE_MESSID(47, 24), 28, 109, 0 },
{ FALSE, MAKE_MESSID(47, 24), 28, 109, 0 },
{ FALSE, MAKE_MESSID(47, 24), 28, 109, 0 },
{ FALSE, MAKE_MESSID(47, 24), 28, 109, 0 },
{ FALSE, MAKE_MESSID(47, 24), 28, 109, 0 }
}
};
static s32 lbl_1_data_118[14] = {
1, 1, 1, 0,
0, 0, 0, 0,
0, 1, 1, 0,
0, 0
};
static omObjFunc lbl_1_data_150[] = {
NULL,
fn_1_43E8,
fn_1_4658,
fn_1_4A7C,
fn_1_4E50,
fn_1_578C
};
static s32 lbl_1_data_168[] = {
MAKE_MESSID(47, 8),
MAKE_MESSID(47, 10),
MAKE_MESSID(47, 9)
};
omObjData *fn_1_4028(void) {
omObjData *temp_r29;
UnkSoundDataStruct00 *temp_r3;
s32 i;
temp_r29 = omAddObjEx(lbl_1_bss_8, 1003, 0, 0, 1, NULL);
temp_r3 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(UnkSoundDataStruct00), MEMORY_DEFAULT_NUM);
temp_r29->data = temp_r3;
temp_r3->unkCC = 0;
temp_r3->unkE8 = 0;
temp_r3->unkE4 = 0;
temp_r3->unkF0 = -2;
temp_r3->unkF2 = -1;
temp_r3->unkF4 = -1;
temp_r3->unkF6 = -1;
temp_r3->unk10C = NULL;
switch (GWGameStat.sound_mode) {
case 0:
temp_r3->unkD0 = 1;
break;
case 2:
default:
temp_r3->unkD0 = 0;
break;
}
temp_r3->unk00[0] = fn_1_6440();
for (i = 0; i < 6; i++) {
temp_r3->unk00[i + 1] = fn_1_6528(i % 3, (i / 3) > 0);
}
fn_1_613C(temp_r29);
temp_r3->unk00[7] = fn_1_61A0();
temp_r3->unk00[8] = fn_1_62F0();
for (i = 0; i < 16; i++) {
temp_r3->unk00[i + 10] = fn_1_71C0((i / 8) == 0 ? 0 : 1);
}
fn_1_6704(temp_r29);
fn_1_4388(temp_r29, 0);
for (i = 0; i < 6; i++) {
lbl_1_data_118[i + 3] = (GWGameStat.board_play_count[i] != 0) ? 1 : 0;
}
lbl_1_data_118[11] = (GWGameStat.field10E_bit6 != 0) ? 1 : 0;
lbl_1_data_118[12] = (GWGameStat.field10E_bit6 != 0) ? 1 : 0;
lbl_1_data_118[13] = (GWGameStat.field10E_bit6 != 0) ? 1 : 0;
return temp_r29;
}
void fn_1_42DC(omObjData *arg0) {
UnkSoundDataStruct00 *temp_r31 = arg0->data;
s32 i;
fn_1_629C(temp_r31->unk00[7]);
fn_1_63EC(temp_r31->unk00[8]);
fn_1_64D4(temp_r31->unk00[0]);
for (i = 0; i < 6; i++) {
fn_1_6640(temp_r31->unk00[i + 1]);
}
for (i = 0; i < 16; i++) {
fn_1_72A8(temp_r31->unk00[i + 10]);
}
fn_1_67C8(arg0);
HuMemDirectFree(temp_r31);
}
void fn_1_4388(omObjData *arg0, s32 arg1) {
UnkSoundDataStruct00 *temp_r31 = arg0->data;
temp_r31->unk9C = arg1;
arg0->func = lbl_1_data_150[arg1];
arg0->unk10 = 0;
arg0->unk10 = 0;
}
s32 fn_1_43CC(omObjData *arg0) {
UnkSoundDataStruct00 *temp_r31 = arg0->data;
return temp_r31->unk9C;
}
static void fn_1_43E8(omObjData *arg0) {
UnkSoundDataStruct00 *temp_r30 = arg0->data;
s32 i;
switch (arg0->unk10) {
case 0:
if (temp_r30->unkE8 == 0) {
temp_r30->unk68[0] = fn_1_A44C(0);
temp_r30->unk68[1] = fn_1_A44C(1);
temp_r30->unk68[2] = fn_1_A44C(2);
for (i = 0; i < 10; i++) {
temp_r30->unk68[i + 3] = fn_1_A44C(3);
}
fn_1_AF0(lbl_1_bss_10, 0.0f, 120.0f, -600.0f, 0x28);
fn_1_A6C(lbl_1_bss_10, 0.0f, 120.0f, -350.0f, 0x28);
temp_r30->unkE8 = 1;
temp_r30->unkCC = 0;
temp_r30->unkE4 = 0;
arg0->unk10 = 1;
} else {
arg0->unk10 = 2;
}
break;
case 1:
if (fn_1_CB8(lbl_1_bss_10) == 0) {
fn_1_4388(arg0, 2);
}
break;
case 2:
for (i = 0; i < 13; i++) {
fn_1_A6AC(temp_r30->unk68[i]);
}
fn_1_AF0(lbl_1_bss_10, 0.0f, 120.0f, -600.0f, 0x28);
fn_1_A6C(lbl_1_bss_10, 0.0f, 120.0f, 0.0f, 0x28);
temp_r30->unkE8 = 0;
temp_r30->unkE4 = 0;
fn_1_4388(arg0, 0);
break;
}
}
static void fn_1_4658(omObjData *arg0) {
UnkSoundDataStruct00 *temp_r31 = arg0->data;
switch (arg0->unk10) {
case 0:
fn_1_613C(arg0);
temp_r31->unkD8 = temp_r31->unkCC;
if (temp_r31->unkE4 == 0) {
fn_1_3D54(lbl_1_bss_30);
} else {
fn_1_6C5C(arg0);
fn_1_6EA4(arg0);
fn_1_711C(arg0);
}
temp_r31->unkE4 = 0;
temp_r31->unkEC = 0;
arg0->unk10 = 1;
/* fallthrough */
case 1:
fn_1_6828(arg0);
fn_1_A6EC(temp_r31->unk68[1]);
fn_1_A71C(temp_r31->unk68[1], MAKE_MESSID(47, 168));
fn_1_A6EC(temp_r31->unk68[0]);
fn_1_A71C(temp_r31->unk68[0], lbl_1_data_168[temp_r31->unkD8]);
if (temp_r31->unkEC == 0) {
Hu3DModelAttrReset(temp_r31->unk00[7]->model[0], 1);
temp_r31->unkEC = 1;
}
omSetTra(temp_r31->unk00[7], -34.0f + 40.0f * temp_r31->unkD8, 120.0f, -500.0f);
arg0->unk10 = 2;
/* fallthrough */
case 2:
if (temp_r31->unk68[0]->unk20 == 0 && temp_r31->unk68[1]->unk20 == 0) {
if (fn_1_550(0x100) != 0) {
temp_r31->unkCC = temp_r31->unkD8;
temp_r31->unkE4 = 1;
fn_1_6044(arg0, temp_r31->unkCC);
HuAudFXPlay(2);
arg0->unk10 = 3;
} else if (fn_1_550(0x200) != 0) {
HuAudFXPlay(3);
arg0->unk10 = 3;
} else if (fn_1_584(1) != 0 && temp_r31->unkD8 > 0) {
temp_r31->unkD8--;
HuAudFXPlay(0);
arg0->unk10 = 1;
} else if (fn_1_584(2) != 0 && temp_r31->unkD8 < 2) {
temp_r31->unkD8++;
HuAudFXPlay(0);
arg0->unk10 = 1;
}
}
break;
case 3:
fn_1_A704(temp_r31->unk68[1]);
fn_1_A704(temp_r31->unk68[0]);
if (temp_r31->unkE4 == 0) {
fn_1_3E1C(lbl_1_bss_30);
}
Hu3DModelAttrSet(temp_r31->unk00[7]->model[0], 1);
arg0->unk10 = 4;
/* fallthrough */
case 4:
if ((temp_r31->unkE4 != 0 || fn_1_3ED0(lbl_1_bss_30) == 0) && temp_r31->unk68[0]->unk20 == 0 && temp_r31->unk68[1]->unk20 == 0) {
if (temp_r31->unkE4 != 0) {
switch (temp_r31->unkCC) {
case 0:
fn_1_4388(arg0, 3);
break;
case 1:
fn_1_4388(arg0, 4);
break;
case 2:
fn_1_4388(arg0, 5);
break;
}
} else {
fn_1_6A0C(arg0);
fn_1_4388(arg0, 1);
}
}
break;
}
}
static const s32 lbl_1_rodata_1278[] = { 2, 0 };
static const s32 lbl_1_rodata_1280[] = { 1, 0 };
static const s32 lbl_1_rodata_1288[] = {
MAKE_MESSID(47, 11),
MAKE_MESSID(47, 12)
};
static void fn_1_4A7C(omObjData *arg0) {
UnkSoundDataStruct00 *temp_r31 = arg0->data;
Vec sp8;
switch (arg0->unk10) {
case 0:
fn_1_6A0C(arg0);
temp_r31->unkE4 = 0;
temp_r31->unkD8 = temp_r31->unkD0;
temp_r31->unkEC = 0;
temp_r31->unkE4 = 0;
fn_1_78A0(arg0);
arg0->unk10 = 1;
/* fallthrough */
case 1:
fn_1_6A80(arg0);
fn_1_A6EC(temp_r31->unk68[1]);
fn_1_A71C(temp_r31->unk68[1], MAKE_MESSID(47, 168));
fn_1_A6EC(temp_r31->unk68[0]);
fn_1_A71C(temp_r31->unk68[0], lbl_1_rodata_1288[temp_r31->unkD0]);
if (temp_r31->unkEC == 0) {
Hu3DModelAttrReset(temp_r31->unk00[8]->model[0], 1);
temp_r31->unkEC = 1;
}
sp8.x = -38.0f;
sp8.y = 140.0f - 15.0f * temp_r31->unkD8;
sp8.z = -500.0f;
omSetTra(temp_r31->unk00[8], sp8.x, sp8.y, sp8.z);
arg0->unk10 = 2;
/* fallthrough */
case 2:
if (temp_r31->unk68[0]->unk20 == 0 && temp_r31->unk68[1]->unk20 == 0) {
if (fn_1_550(0x100) != 0) {
temp_r31->unkD0 = temp_r31->unkD8;
if (temp_r31->unkD0 == 0) {
HuAudFXPlay(0x841);
} else {
HuAudFXPlay(0x842);
}
GWGameStat.sound_mode = lbl_1_rodata_1278[temp_r31->unkD8];
msmSysSetOutputMode(lbl_1_rodata_1278[temp_r31->unkD8]);
OSSetSoundMode(lbl_1_rodata_1280[temp_r31->unkD8]);
temp_r31->unkE4 = 1;
fn_1_6A80(arg0);
temp_r31->unkC8 = 0;
arg0->unk10 = 3;
} else if (fn_1_550(0x200) != 0) {
HuAudFXPlay(3);
arg0->unk10 = 4;
} else if (fn_1_584(8) != 0 && temp_r31->unkD8 > 0) {
temp_r31->unkD8--;
HuAudFXPlay(0);
arg0->unk10 = 1;
} else if (fn_1_584(4) != 0 && temp_r31->unkD8 < 1) {
temp_r31->unkD8++;
HuAudFXPlay(0);
arg0->unk10 = 1;
}
}
break;
case 3:
if (temp_r31->unkC8++ >= 60) {
arg0->unk10 = 4;
return;
}
break;
case 4:
fn_1_7900(arg0);
fn_1_A704(temp_r31->unk68[1]);
fn_1_A704(temp_r31->unk68[0]);
Hu3DModelAttrSet(temp_r31->unk00[8]->model[0], 1);
arg0->unk10 = 5;
/* fallthrough */
case 5:
if (temp_r31->unk68[0]->unk20 == 0 && temp_r31->unk68[1]->unk20 == 0) {
temp_r31->unkE4 = 0;
fn_1_6A80(arg0);
temp_r31->unkE4 = 1;
fn_1_4388(arg0, 2);
}
break;
}
}
static void fn_1_4E50(omObjData *arg0) {
UnkSoundDataStruct00 *temp_r31 = arg0->data;
float temp_f31;
float temp_f30;
float temp_f29;
float temp_f28;
float temp_f27;
float temp_f26;
s32 var_r28;
s32 var_r29;
s32 sp8;
sp8 = temp_r31->unkD8;
switch (arg0->unk10) {
case 0:
fn_1_6A0C(arg0);
temp_r31->unkD4 = 0;
temp_r31->unk100 = 0;
temp_r31->unkFC = 0;
espBankSet(temp_r31->unkA0[14], 0);
espBankSet(temp_r31->unkA0[15], 2);
espPosSet(temp_r31->unkA0[14], 36.0f, 222.0f);
espPosSet(temp_r31->unkA0[15], 544.0f, 222.0f);
fn_1_160(temp_r31->unkA0[14], 1, 5);
fn_1_160(temp_r31->unkA0[15], 1, 5);
temp_r31->unkF8 = 0;
arg0->unk10 = 1;
/* fallthrough */
case 1:
temp_r31->unkD8 = 0;
temp_r31->unkDC = 0;
if (temp_r31->unkFC != 0) {
do {
temp_r31->unkD4 += temp_r31->unkFC;
if (temp_r31->unkD4 >= 14) {
temp_r31->unkD4 = 0;
} else if (temp_r31->unkD4 < 0) {
temp_r31->unkD4 = 13;
}
} while (lbl_1_data_118[temp_r31->unkD4] == 0);
HuAudFXPlay(0x840);
if (temp_r31->unkFC > 0) {
espBankSet(temp_r31->unkA0[15], 3);
} else {
espBankSet(temp_r31->unkA0[14], 1);
}
temp_r31->unkF8 = 5;
temp_r31->unkFC = 0;
}
arg0->unk10 = 2;
/* fallthrough */
case 2:
if (temp_r31->unk100 != 0) {
var_r29 = temp_r31->unkD8 + temp_r31->unk100;
if (var_r29 > 9) {
var_r29 = 9;
} else if (var_r29 < 0) {
var_r29 = 0;
}
if (!lbl_1_rodata_1E0[temp_r31->unkD4][var_r29].unk00) {
if (temp_r31->unkD8 < 5) {
for (var_r28 = var_r29; var_r28 >= 5; var_r28--) {
if (lbl_1_rodata_1E0[temp_r31->unkD4][var_r28].unk00) {
var_r29 = var_r28;
break;
}
}
if (var_r28 < 5) {
var_r29 = temp_r31->unkD8;
}
} else {
var_r29 = temp_r31->unkD8;
}
}
temp_r31->unkDC = temp_r31->unkD8;
if (temp_r31->unkD8 != var_r29) {
temp_r31->unkD8 = var_r29;
HuAudFXPlay(0x840);
}
temp_r31->unk100 = 0;
}
arg0->unk10 = 3;
/* fallthrough */
case 3:
fn_1_6CD0(arg0, temp_r31->unkD4);
fn_1_A6EC(temp_r31->unk68[0]);
fn_1_A71C(temp_r31->unk68[0], MAKE_MESSID(47, 10));
fn_1_A6EC(temp_r31->unk68[1]);
fn_1_A71C(temp_r31->unk68[1], MAKE_MESSID(47, 18));
espDispOn(temp_r31->unkA0[18]);
temp_r31->unk104 = 0.0f;
temp_r31->unk108 = 0.0625f;
if (temp_r31->unkF8 > 0) {
arg0->unk10 = 5;
} else {
arg0->unk10 = 4;
}
/* fallthrough */
case 4:
temp_f31 = 166.0f + 244.0f * (temp_r31->unkDC / 5);
temp_f30 = 144.0f + 29.0f * (temp_r31->unkDC % 5);
temp_f27 = 166.0f + 244.0f * (temp_r31->unkD8 / 5);
temp_f26 = 144.0f + 29.0f * (temp_r31->unkD8 % 5);
temp_f29 = temp_f31 + temp_r31->unk104 * (temp_f27 - temp_f31);
temp_f28 = temp_f30 + temp_r31->unk104 * (temp_f26 - temp_f30);
espPosSet(temp_r31->unkA0[18], temp_f29, temp_f28);
if ((temp_r31->unk104 += temp_r31->unk108) < 1.0f) {
break;
}
espPosSet(temp_r31->unkA0[18], 166.0f + 244.0f * (temp_r31->unkD8 / 5), 144.0f + 29.0f * (temp_r31->unkD8 % 5));
arg0->unk10 = 6;
break;
case 5:
if (temp_r31->unkF8 > 0) {
temp_r31->unkF8--;
break;
}
espBankSet(temp_r31->unkA0[14], 0);
espBankSet(temp_r31->unkA0[15], 2);
arg0->unk10 = 6;
/* fallthrough */
case 6:
if (temp_r31->unk68[0]->unk20 == 0 && temp_r31->unk68[1]->unk20 == 0) {
if (fn_1_550(0x100) != 0) {
if (temp_r31->unkF0 == -2) {
HuAudFadeOut(0x64);
temp_r31->unkF0 = -1;
} else if (temp_r31->unkF0 != -1) {
HuAudSeqFadeOut(temp_r31->unkF0, 0x64);
temp_r31->unkF0 = -1;
}
fn_1_7F00(arg0);
} else if (fn_1_550(0x200) != 0) {
HuAudFXPlay(3);
temp_r31->unkC8 = 0;
arg0->unk10 = 7;
} else {
if (fn_1_5B8(1) != 0 && temp_r31->unkD8 >= 5) {
temp_r31->unk100 -= 5;
} else if (fn_1_5B8(2) != 0 && temp_r31->unkD8 < 5) {
temp_r31->unk100 += 5;
}
if (fn_1_5B8(8) != 0 && temp_r31->unkD8 % 5 > 0) {
temp_r31->unk100--;
} else if (fn_1_5B8(4) != 0 && temp_r31->unkD8 % 5 < 4) {
temp_r31->unk100++;
}
if (temp_r31->unk100 != 0) {
arg0->unk10 = 2;
} else if (fn_1_550(0x40) != 0) {
temp_r31->unkFC = -1;
} else if (fn_1_550(0x20) != 0) {
temp_r31->unkFC = 1;
}
if (temp_r31->unkFC != 0) {
arg0->unk10 = 1;
}
}
}
break;
case 7:
fn_1_A704(temp_r31->unk68[1]);
fn_1_A704(temp_r31->unk68[0]);
fn_1_8048(arg0);
fn_1_160(temp_r31->unkA0[14], 0, 5);
fn_1_160(temp_r31->unkA0[15], 0, 5);
arg0->unk10 = 8;
/* fallthrough */
case 8:
if (temp_r31->unk68[0]->unk20 == 0 && temp_r31->unk68[1]->unk20 == 0) {
espDispOff(temp_r31->unkA0[18]);
if (temp_r31->unkF0 == -1) {
temp_r31->unkF0 = HuAudSeqPlay(0x2D);
}
fn_1_4388(arg0, 2);
}
break;
}
}
static void fn_1_578C(omObjData *arg0) {
UnkSoundDataStruct00 *temp_r31 = arg0->data;
float temp_f31;
float temp_f30;
float temp_f29;
float temp_f28;
float temp_f27;
float temp_f26;
s32 var_r28;
s32 var_r29;
switch (arg0->unk10) {
case 0:
fn_1_6A0C(arg0);
temp_r31->unkD4 = 0;
temp_r31->unk100 = 0;
temp_r31->unkFC = 0;
espBankSet(temp_r31->unkA0[14], 0);
espBankSet(temp_r31->unkA0[15], 2);
espPosSet(temp_r31->unkA0[14], 36.0f, 222.0f);
espPosSet(temp_r31->unkA0[15], 544.0f, 222.0f);
fn_1_160(temp_r31->unkA0[14], 1, 5);
fn_1_160(temp_r31->unkA0[15], 1, 5);
temp_r31->unkF8 = 0;
arg0->unk10 = 3;
/* fallthrough */
case 1:
temp_r31->unkD8 = 0;
temp_r31->unkDC = 0;
if (temp_r31->unkFC != 0) {
temp_r31->unkD4 += temp_r31->unkFC;
if (temp_r31->unkD4 > 11) {
temp_r31->unkD4 = 0;
} else if (temp_r31->unkD4 < 0) {
temp_r31->unkD4 = 11;
}
HuAudFXPlay(0x840);
if (temp_r31->unkFC > 0) {
espBankSet(temp_r31->unkA0[15], 3);
} else {
espBankSet(temp_r31->unkA0[14], 1);
}
temp_r31->unkF8 = 5;
temp_r31->unkFC = 0;
}
arg0->unk10 = 2;
/* fallthrough */
case 2:
if (temp_r31->unk100 != 0) {
var_r29 = temp_r31->unkD8 + temp_r31->unk100;
if (var_r29 > 9) {
var_r29 = 9;
} else if (var_r29 < 0) {
var_r29 = 0;
}
if (!lbl_1_rodata_AD0[temp_r31->unkD4][var_r29].unk00) {
if (temp_r31->unkD8 < 5) {
for (var_r28 = var_r29; var_r28 >= 5; var_r28--) {
if (lbl_1_rodata_AD0[temp_r31->unkD4][var_r28].unk00) {
var_r29 = var_r28;
break;
}
}
if (var_r28 < 5) {
var_r29 = temp_r31->unkD8;
}
} else {
var_r29 = temp_r31->unkD8;
}
}
temp_r31->unkDC = temp_r31->unkD8;
if (temp_r31->unkD8 != var_r29) {
temp_r31->unkD8 = var_r29;
HuAudFXPlay(0x840);
}
temp_r31->unk100 = 0;
}
arg0->unk10 = 3;
/* fallthrough */
case 3:
fn_1_6F48(arg0, temp_r31->unkD4);
fn_1_A6EC(temp_r31->unk68[0]);
fn_1_A71C(temp_r31->unk68[0], MAKE_MESSID(47, 9));
fn_1_A6EC(temp_r31->unk68[1]);
fn_1_A71C(temp_r31->unk68[1], MAKE_MESSID(47, 18));
espDispOn(temp_r31->unkA0[18]);
temp_r31->unk104 = 0.0f;
temp_r31->unk108 = 0.0625f;
if (temp_r31->unkF8 > 0) {
arg0->unk10 = 5;
} else {
arg0->unk10 = 4;
}
/* fallthrough */
case 4:
temp_f31 = 166.0f + 244.0f * (temp_r31->unkDC / 5);
temp_f30 = 144.0f + 29.0f * (temp_r31->unkDC % 5);
temp_f27 = 166.0f + 244.0f * (temp_r31->unkD8 / 5);
temp_f26 = 144.0f + 29.0f * (temp_r31->unkD8 % 5);
temp_f29 = temp_f31 + temp_r31->unk104 * (temp_f27 - temp_f31);
temp_f28 = temp_f30 + temp_r31->unk104 * (temp_f26 - temp_f30);
espPosSet(temp_r31->unkA0[18], temp_f29, temp_f28);
if ((temp_r31->unk104 += temp_r31->unk108) < 1.0f) {
break;
}
espPosSet(temp_r31->unkA0[18], 166.0f + 244.0f * (temp_r31->unkD8 / 5), 144.0f + 29.0f * (temp_r31->unkD8 % 5));
arg0->unk10 = 6;
break;
case 5:
if (temp_r31->unkF8 > 0) {
temp_r31->unkF8--;
break;
}
espBankSet(temp_r31->unkA0[14], 0);
espBankSet(temp_r31->unkA0[15], 2);
arg0->unk10 = 6;
/* fallthrough */
case 6:
if (temp_r31->unk68[0]->unk20 == 0 && temp_r31->unk68[1]->unk20 == 0) {
if (fn_1_550(0x100) != 0) {
fn_1_7F00(arg0);
} else if (fn_1_550(0x200) != 0) {
HuAudFXPlay(3);
temp_r31->unkC8 = 0;
arg0->unk10 = 7;
} else {
if (fn_1_5B8(1) != 0 && temp_r31->unkD8 >= 5) {
temp_r31->unk100 -= 5;
} else if (fn_1_5B8(2) != 0 && temp_r31->unkD8 < 5) {
temp_r31->unk100 += 5;
}
if (fn_1_5B8(8) != 0 && temp_r31->unkD8 % 5 > 0) {
temp_r31->unk100--;
} else if (fn_1_5B8(4) != 0 && temp_r31->unkD8 % 5 < 4) {
temp_r31->unk100++;
}
if (temp_r31->unk100 != 0) {
arg0->unk10 = 2;
} else if (fn_1_550(0x40) != 0) {
temp_r31->unkFC = -1;
} else if (fn_1_550(0x20) != 0) {
temp_r31->unkFC = 1;
}
if (temp_r31->unkFC != 0) {
arg0->unk10 = 1;
}
}
}
break;
case 7:
fn_1_A704(temp_r31->unk68[1]);
fn_1_A704(temp_r31->unk68[0]);
fn_1_8048(arg0);
fn_1_160(temp_r31->unkA0[14], 0, 5);
fn_1_160(temp_r31->unkA0[15], 0, 5);
arg0->unk10 = 8;
/* fallthrough */
case 8:
if (temp_r31->unk68[0]->unk20 == 0 && temp_r31->unk68[1]->unk20 == 0) {
espDispOff(temp_r31->unkA0[18]);
fn_1_4388(arg0, 2);
}
break;
}
}
static void fn_1_6044(omObjData *arg0, s32 arg1) {
UnkSoundDataStruct00 *temp_r31 = arg0->data;
switch (arg1) {
case 0:
fn_1_6694(temp_r31->unk00[1]);
fn_1_6694(temp_r31->unk00[5]);
fn_1_6694(temp_r31->unk00[6]);
fn_1_66CC(temp_r31->unk00[4]);
fn_1_66CC(temp_r31->unk00[2]);
fn_1_66CC(temp_r31->unk00[3]);
break;
case 1:
fn_1_6694(temp_r31->unk00[4]);
fn_1_6694(temp_r31->unk00[2]);
fn_1_6694(temp_r31->unk00[6]);
fn_1_66CC(temp_r31->unk00[1]);
fn_1_66CC(temp_r31->unk00[5]);
fn_1_66CC(temp_r31->unk00[3]);
break;
case 2:
fn_1_6694(temp_r31->unk00[4]);
fn_1_6694(temp_r31->unk00[5]);
fn_1_6694(temp_r31->unk00[3]);
fn_1_66CC(temp_r31->unk00[1]);
fn_1_66CC(temp_r31->unk00[2]);
fn_1_66CC(temp_r31->unk00[6]);
break;
}
}
static void fn_1_613C(omObjData *arg0) {
UnkSoundDataStruct00 *temp_r31 = arg0->data;
fn_1_6694(temp_r31->unk00[4]);
fn_1_6694(temp_r31->unk00[5]);
fn_1_6694(temp_r31->unk00[6]);
fn_1_66CC(temp_r31->unk00[1]);
fn_1_66CC(temp_r31->unk00[2]);
fn_1_66CC(temp_r31->unk00[3]);
}
static omObjData *fn_1_61A0(void) {
omObjData *temp_r31;
temp_r31 = omAddObjEx(lbl_1_bss_8, 1003, 1, 0, 1, NULL);
temp_r31->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_OPTION, 13));
Hu3DModelLayerSet(temp_r31->model[0], 2);
Hu3DModelAttrSet(temp_r31->model[0], 0x40000001);
omSetRot(temp_r31, -80.0f, 45.0f, 0.0f);
omSetSca(temp_r31, 0.6f, 0.6f, 0.6f);
Hu3DModelAttrSet(temp_r31->model[0], 1);
return temp_r31;
}
static void fn_1_629C(omObjData *arg0) {
s32 i;
for (i = 0; i < 1; i++) {
Hu3DModelKill(arg0->model[i]);
}
}
static omObjData *fn_1_62F0(void) {
omObjData *temp_r31;
temp_r31 = omAddObjEx(lbl_1_bss_8, 1003, 1, 0, 1, NULL);
temp_r31->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_OPTION, 14));
Hu3DModelLayerSet(temp_r31->model[0], 2);
Hu3DModelAttrSet(temp_r31->model[0], 0x40000001);
omSetRot(temp_r31, 0.0f, -90.0f, 0.0f);
omSetSca(temp_r31, 0.6f, 0.6f, 0.6f);
Hu3DModelAttrSet(temp_r31->model[0], 1);
return temp_r31;
}
static void fn_1_63EC(omObjData *arg0) {
s32 i;
for (i = 0; i < 1; i++) {
Hu3DModelKill(arg0->model[i]);
}
}
static omObjData *fn_1_6440(void) {
omObjData *temp_r31;
temp_r31 = omAddObjEx(lbl_1_bss_8, 1003, 1, 0, 1, NULL);
temp_r31->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_OPTION, 3));
Hu3DModelAttrSet(temp_r31->model[0], 0x40000001);
Hu3DModelLayerSet(temp_r31->model[0], 0);
return temp_r31;
}
static void fn_1_64D4(omObjData *arg0) {
s32 i;
for (i = 0; i < 1; i++) {
Hu3DModelKill(arg0->model[i]);
}
}
static const Vec lbl_1_rodata_12D0[3] = {
{ -40.0f, 0.0f, 0.0f },
{ 0.0f, 0.0f, 0.0f },
{ 40.0f, 0.0f, 0.0f }
};
static omObjData *fn_1_6528(s32 arg0, s32 arg1) {
omObjData *temp_r31;
temp_r31 = omAddObjEx(lbl_1_bss_8, 1003, 1, 0, 1, NULL);
if (arg1 != 0) {
temp_r31->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_OPTION, 5));
} else {
temp_r31->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_OPTION, 4));
}
Hu3DModelAttrSet(temp_r31->model[0], 0x40000001);
Hu3DModelLayerSet(temp_r31->model[0], 0);
omSetTra(temp_r31, lbl_1_rodata_12D0[arg0].x, lbl_1_rodata_12D0[arg0].y, lbl_1_rodata_12D0[arg0].z);
return temp_r31;
}
static void fn_1_6640(omObjData *arg0) {
s32 i;
for (i = 0; i < 1; i++) {
Hu3DModelKill(arg0->model[i]);
}
}
static void fn_1_6694(omObjData *arg0) {
Hu3DModelAttrReset(arg0->model[0], 1);
}
static void fn_1_66CC(omObjData *arg0) {
Hu3DModelAttrSet(arg0->model[0], 1);
}
static s32 lbl_1_data_1BC[] = {
DATA_MAKE_NUM(DATADIR_OPTION, 38),
DATA_MAKE_NUM(DATADIR_OPTION, 39),
DATA_MAKE_NUM(DATADIR_OPTION, 40),
DATA_MAKE_NUM(DATADIR_OPTION, 35),
DATA_MAKE_NUM(DATADIR_OPTION, 36),
DATA_MAKE_NUM(DATADIR_OPTION, 37),
DATA_MAKE_NUM(DATADIR_OPTION, 41),
DATA_MAKE_NUM(DATADIR_OPTION, 43),
DATA_MAKE_NUM(DATADIR_OPTION, 42),
DATA_MAKE_NUM(DATADIR_OPTION, 44),
DATA_MAKE_NUM(DATADIR_OPTION, 45),
DATA_MAKE_NUM(DATADIR_OPTION, 46),
DATA_MAKE_NUM(DATADIR_OPTION, 47),
DATA_MAKE_NUM(DATADIR_OPTION, 48),
DATA_MAKE_NUM(DATADIR_OPTION, 49),
DATA_MAKE_NUM(DATADIR_OPTION, 49),
DATA_MAKE_NUM(DATADIR_OPTION, 63),
DATA_MAKE_NUM(DATADIR_OPTION, 64),
DATA_MAKE_NUM(DATADIR_OPTION, 65)
};
static void fn_1_6704(omObjData *arg0) {
UnkSoundDataStruct00 *temp_r31 = arg0->data;
s32 i;
for (i = 0; i < 19; i++) {
temp_r31->unkA0[i] = espEntry(lbl_1_data_1BC[i], 0, 0);
espDrawNoSet(temp_r31->unkA0[i], 0x40);
espDispOff(temp_r31->unkA0[i]);
}
espBankSet(temp_r31->unkA0[14], 0);
espBankSet(temp_r31->unkA0[15], 2);
HuSprExecLayerSet(0x40, 1);
}
static void fn_1_67C8(omObjData *arg0) {
UnkSoundDataStruct00 *temp_r31 = arg0->data;
s32 i;
for (i = 0; i < 19; i++) {
espKill(temp_r31->unkA0[i]);
}
}
static void fn_1_6828(omObjData *arg0) {
UnkSoundDataStruct00 *temp_r31 = arg0->data;
float temp_f31 = 288.0f;
float temp_f30 = 188.0f;
espPosSet(temp_r31->unkA0[12], 288.0f, 72.0f);
espPosSet(temp_r31->unkA0[0], temp_f31 + -112.0f, temp_f30);
espPosSet(temp_r31->unkA0[3], temp_f31 + -112.0f, temp_f30);
espPosSet(temp_r31->unkA0[1], temp_f31, temp_f30);
espPosSet(temp_r31->unkA0[4], temp_f31, temp_f30);
espPosSet(temp_r31->unkA0[2], temp_f31 + 112.0f, temp_f30);
espPosSet(temp_r31->unkA0[5], temp_f31 + 112.0f, temp_f30);
espDispOn(temp_r31->unkA0[12]);
switch (temp_r31->unkD8) {
case 0:
espDispOn(temp_r31->unkA0[3]);
espDispOn(temp_r31->unkA0[1]);
espDispOn(temp_r31->unkA0[2]);
espDispOff(temp_r31->unkA0[0]);
espDispOff(temp_r31->unkA0[4]);
espDispOff(temp_r31->unkA0[5]);
break;
case 1:
espDispOn(temp_r31->unkA0[0]);
espDispOn(temp_r31->unkA0[4]);
espDispOn(temp_r31->unkA0[2]);
espDispOff(temp_r31->unkA0[3]);
espDispOff(temp_r31->unkA0[1]);
espDispOff(temp_r31->unkA0[5]);
break;
case 2:
espDispOn(temp_r31->unkA0[0]);
espDispOn(temp_r31->unkA0[1]);
espDispOn(temp_r31->unkA0[5]);
espDispOff(temp_r31->unkA0[3]);
espDispOff(temp_r31->unkA0[4]);
espDispOff(temp_r31->unkA0[2]);
break;
}
}
static const s32 lbl_1_rodata_1308[] = { 12, 0, 1, 2, 3, 4, 5 };
static void fn_1_6A0C(omObjData *arg0) {
UnkSoundDataStruct00 *temp_r30 = arg0->data;
s32 i;
for (i = 0; i < 7; i++) {
espDispOff(temp_r30->unkA0[lbl_1_rodata_1308[i]]);
}
}
static void fn_1_6A80(omObjData *arg0) {
UnkSoundDataStruct00 *temp_r31 = arg0->data;
float temp_f31 = 290.0f;
float temp_f30 = 192.0f;
espPosSet(temp_r31->unkA0[13], 288.0f, 72.0f);
espPosSet(temp_r31->unkA0[6], temp_f31, temp_f30 - 32.0f);
espPosSet(temp_r31->unkA0[7], temp_f31, temp_f30 - 32.0f);
espPosSet(temp_r31->unkA0[8], temp_f31, temp_f30 + 32.0f);
espPosSet(temp_r31->unkA0[9], temp_f31, temp_f30 + 32.0f);
switch (temp_r31->unkD8) {
case 0:
espPosSet(temp_r31->unkA0[17], temp_f31, temp_f30 - 32.0f);
break;
case 1:
espPosSet(temp_r31->unkA0[17], temp_f31, temp_f30 + 32.0f);
break;
}
espDispOn(temp_r31->unkA0[13]);
switch (temp_r31->unkD8) {
case 0:
espDispOn(temp_r31->unkA0[6]);
espDispOn(temp_r31->unkA0[9]);
espDispOff(temp_r31->unkA0[7]);
espDispOff(temp_r31->unkA0[8]);
break;
case 1:
espDispOn(temp_r31->unkA0[7]);
espDispOn(temp_r31->unkA0[8]);
espDispOff(temp_r31->unkA0[6]);
espDispOff(temp_r31->unkA0[9]);
break;
}
if (temp_r31->unkE4 != 0) {
espDispOn(temp_r31->unkA0[17]);
} else {
espDispOff(temp_r31->unkA0[17]);
}
}
static const s32 lbl_1_rodata_1330[] = { 13, 6, 7, 8, 9 };
static void fn_1_6C5C(omObjData *arg0) {
UnkSoundDataStruct00 *temp_r30 = arg0->data;
s32 i;
for (i = 0; i < 5; i++) {
espDispOff(temp_r30->unkA0[lbl_1_rodata_1330[i]]);
}
}
static void fn_1_6CD0(omObjData *arg0, s32 arg1) {
UnkSoundDataStruct00 *temp_r31 = arg0->data;
s32 i;
espPosSet(temp_r31->unkA0[10], 288.0f, 72.0f);
espDispOn(temp_r31->unkA0[10]);
fn_1_A7F0(temp_r31->unk68[2]);
for (i = 0; i < 10; i++) {
fn_1_A7F0(temp_r31->unk68[i + 3]);
fn_1_A7B0(temp_r31->unk68[i + 3], 52.0f + 244.0f * (i / 5), 124.0f + 29.0f * (i % 5));
}
fn_1_A71C(temp_r31->unk68[2], lbl_1_rodata_1A8[arg1]);
for (i = 0; i < 10; i++) {
fn_1_A71C(temp_r31->unk68[i + 3], lbl_1_rodata_1E0[arg1][i].unk04);
}
}
static const s32 lbl_1_rodata_134C[] = { 10 };
static void fn_1_6EA4(omObjData *arg0) {
UnkSoundDataStruct00 *temp_r30 = arg0->data;
s32 i;
for (i = 0; i < 1; i++) {
espDispOff(temp_r30->unkA0[lbl_1_rodata_134C[i]]);
}
fn_1_A828(temp_r30->unk68[2]);
for (i = 0; i < 10; i++) {
fn_1_A828(temp_r30->unk68[i + 3]);
}
}
static void fn_1_6F48(omObjData *arg0, s32 arg1) {
UnkSoundDataStruct00 *temp_r31 = arg0->data;
s32 i;
espPosSet(temp_r31->unkA0[11], 288.0f, 72.0f);
espDispOn(temp_r31->unkA0[11]);
fn_1_A7F0(temp_r31->unk68[2]);
for (i = 0; i < 10; i++) {
fn_1_A7F0(temp_r31->unk68[i + 3]);
fn_1_A7B0(temp_r31->unk68[i + 3], 52.0f + 244.0f * (i / 5), 124.0f + 29.0f * (i % 5));
}
fn_1_A71C(temp_r31->unk68[2], lbl_1_rodata_AA0[arg1]);
for (i = 0; i < 10; i++) {
fn_1_A71C(temp_r31->unk68[i + 3], lbl_1_rodata_AD0[arg1][i].unk04);
}
}
static const s32 lbl_1_rodata_1350[] = { 11, 0 };
static void fn_1_711C(omObjData *arg0) {
UnkSoundDataStruct00 *temp_r30 = arg0->data;
s32 i;
for (i = 0; i < 1; i++) {
espDispOff(temp_r30->unkA0[lbl_1_rodata_1350[i]]);
}
fn_1_A828(temp_r30->unk68[2]);
for (i = 0; i < 10; i++) {
fn_1_A828(temp_r30->unk68[i + 3]);
}
}
static s32 lbl_1_data_208[] = {
DATA_MAKE_NUM(DATADIR_OPTION, 7),
DATA_MAKE_NUM(DATADIR_OPTION, 8)
};
static omObjData *fn_1_71C0(s32 arg0) {
omObjData *temp_r31;
UnkSoundDataStruct01 *temp_r3;
temp_r31 = omAddObjEx(lbl_1_bss_8, 1003, 1, 0, 1, NULL);
temp_r3 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(UnkSoundDataStruct01), MEMORY_DEFAULT_NUM);
temp_r31->data = temp_r3;
temp_r3->unk00 = 0;
temp_r3->unk04 = arg0;
temp_r31->model[0] = Hu3DModelCreateFile(lbl_1_data_208[arg0]);
Hu3DModelAttrSet(temp_r31->model[0], 0x40000001);
Hu3DModelLayerSet(temp_r31->model[0], 2);
Hu3DModelAttrReset(temp_r31->model[0], 2);
return temp_r31;
}
static void fn_1_72A8(omObjData *arg0) {
UnkSoundDataStruct01 *temp_r30 = arg0->data;
s32 i;
for (i = 0; i < 1; i++) {
Hu3DModelKill(arg0->model[i]);
}
HuMemDirectFree(temp_r30);
}
static void fn_1_7310(omObjData *arg0) {
UnkSoundDataStruct01 *temp_r31 = arg0->data;
float temp_f31;
float temp_f30;
float var_f29;
float var_f28;
float temp_f27;
float temp_f26;
float temp_f25;
float temp_f24;
float temp_f23;
Hu3DModelAttrReset(arg0->model[0], 1);
temp_f31 = sin(45.0f * temp_r31->unk0C * M_PI / 180.0);
temp_f31 = temp_f31 * temp_f31;
switch (temp_r31->unk08) {
case 0:
var_f29 = 174.5f + 7.0f * temp_f31;
var_f28 = -15.0 + 30.0 * sin(1440.0f * temp_f31 * M_PI / 180.0);
break;
case 1:
var_f29 = 185.5f - (7.0f * temp_f31);
var_f28 = 15.0 - 30.0 * sin(1440.0f * temp_f31 * M_PI / 180.0);
break;
}
temp_f23 = sin(180.0f * temp_r31->unk0C * M_PI / 180.0);
temp_f27 = 500.0f - 25.0f * temp_f31;
temp_f26 = temp_f27 * -sin(var_f29 * M_PI / 180.0);
temp_f25 = temp_f27 * cos(var_f29 * M_PI / 180.0);
temp_f24 = 160.0f - 15.0f * temp_r31->unk0C;
temp_f30 = 0.5 + 2.0 * sin(90.0f * temp_f31 * M_PI / 180.0);
omSetTra(arg0, temp_f26, temp_f24, temp_f25);
Hu3DModelTPLvlSet(arg0->model[0], temp_f23);
omSetSca(arg0, temp_f30, temp_f30, temp_f30);
omSetRot(arg0, 0.0f, 0.0f, var_f28);
if ((temp_r31->unk0C += temp_r31->unk10) < 1.0f) {
return;
}
temp_r31->unk00 = 0;
Hu3DModelAttrSet(arg0->model[0], 1);
arg0->func = NULL;
arg0->unk10 = 0;
}
static void fn_1_7710(omObjData *arg0, s32 arg1, s32 arg2, s32 arg3) {
omObjData *var_r30;
UnkSoundDataStruct01 *var_r31;
s32 i;
for (i = 0; i < 16; i++) {
var_r30 = ((UnkSoundDataStruct00*) arg0->data)->unk00[i + 10];
var_r31 = var_r30->data;
if (var_r31->unk00 == 0 && var_r31->unk04 == arg1) {
break;
}
}
if (i != 16) {
Hu3DMotionTimeSet(var_r30->model[0], 2.0f * arg3);
Hu3DMotionStartEndSet(var_r30->model[0], 2.0f * arg3, 2.0f * arg3 + 1.0f);
var_r31->unk00 = 1;
var_r31->unk08 = arg2;
var_r31->unk0C = 0.0f;
var_r31->unk10 = 0.011111111f;
var_r30->func = fn_1_7310;
var_r30->unk10 = 0;
}
}
static void fn_1_78A0(omObjData *arg0) {
UnkSoundDataStruct00 *temp_r31 = arg0->data;
temp_r31->unk10C = HuPrcChildCreate(fn_1_793C, 0x64, 0x2000, 0, HuPrcCurrentGet());
temp_r31->unk10C->user_data = arg0;
}
static void fn_1_7900(omObjData *arg0) {
UnkSoundDataStruct00 *temp_r31 = arg0->data;
HuPrcKill(temp_r31->unk10C);
}
static void fn_1_793C(void) {
omObjData *temp_r26;
UnkSoundDataStruct00 *sp8;
s32 var_r21;
s32 temp_r31;
temp_r26 = HuPrcCurrentGet()->user_data;
sp8 = temp_r26->data;
while (1) {
switch (sp8->unkD8) {
case 0:
var_r21 = 1;
temp_r31 = frandmod(7);
fn_1_7710(temp_r26, var_r21, 0, temp_r31);
var_r21 = 0;
temp_r31 = frandmod(7);
fn_1_7710(temp_r26, var_r21, 1, temp_r31);
break;
case 1:
var_r21 = 0;
temp_r31 = frandmod(7);
fn_1_7710(temp_r26, var_r21, 0, temp_r31);
fn_1_7710(temp_r26, var_r21, 1, temp_r31);
break;
}
HuPrcSleep(0x18);
}
}
static void fn_1_7F00(omObjData *arg0) {
UnkSoundDataStruct00 *temp_r30 = arg0->data;
lbl_1_rodata_1E0_Data *var_r31;
if (temp_r30->unkCC == 1) {
var_r31 = (lbl_1_rodata_1E0_Data*) &lbl_1_rodata_1E0[temp_r30->unkD4][temp_r30->unkD8];
} else {
var_r31 = (lbl_1_rodata_1E0_Data*) &lbl_1_rodata_AD0[temp_r30->unkD4][temp_r30->unkD8];
}
if (var_r31->unk00 != 0) {
fn_1_8048(arg0);
switch (var_r31->unk08) {
case 1:
temp_r30->unkF4 = HuAudSStreamPlay(var_r31->unk0C);
break;
case 28:
if (var_r31->unk0A != temp_r30->unkE0) {
HuAudSndGrpSetSet(var_r31->unk0A);
}
temp_r30->unkF6 = HuAudFXPlay(var_r31->unk0C);
break;
default:
if (var_r31->unk0A != temp_r30->unkE0 && var_r31->unk0A != 2) {
HuAudSndGrpSetSet(var_r31->unk0A);
}
temp_r30->unkF2 = HuAudSeqPlay(var_r31->unk0C);
break;
}
temp_r30->unkE0 = var_r31->unk0A;
HuPrcSleep(40);
}
}
static void fn_1_8048(omObjData *arg0) {
UnkSoundDataStruct00 *temp_r31 = arg0->data;
if (temp_r31->unkF2 != -1) {
HuAudSeqFadeOut(temp_r31->unkF2, 0x64);
temp_r31->unkF2 = -1;
}
if (temp_r31->unkF4 != -1) {
HuAudSStreamFadeOut(temp_r31->unkF4, 0x64);
temp_r31->unkF4 = -1;
}
if (temp_r31->unkF6 != -1) {
HuAudFXFadeOut(temp_r31->unkF6, 0x64);
temp_r31->unkF6 = -1;
}
HuPrcSleep(20);
}