1654 lines
57 KiB
C
Executable file
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);
|
|
}
|