marioparty4/src/REL/m437Dll/main.c
2024-11-10 19:01:38 +01:00

3463 lines
94 KiB
C
Executable file

#include "REL/m437Dll.h"
#include "game/chrman.h"
#include "game/data.h"
#include "game/gamework.h"
#include "game/gamework_data.h"
#include "game/hsfdraw.h"
#include "game/hsfman.h"
#include "game/hsfmotion.h"
#include "game/minigame_seq.h"
#include "game/objsub.h"
#include "game/pad.h"
#include "game/printfunc.h"
#include "game/process.h"
#include "game/sprite.h"
#include "game/window.h"
#include "game/wipe.h"
#include "dolphin.h"
#include "math.h"
#include "string.h"
typedef struct {
/* 0x000 */ omObjData *unk00;
/* 0x004 */ s32 unk04;
/* 0x008 */ s32 unk08;
/* 0x00C */ s32 unk0C;
/* 0x010 */ s32 unk10;
/* 0x014 */ s32 unk14;
/* 0x018 */ char unk18[4];
/* 0x01C */ s32 unk1C;
/* 0x020 */ s32 unk20;
/* 0x024 */ s32 unk24;
/* 0x028 */ s32 unk28;
/* 0x02C */ s32 unk2C;
/* 0x030 */ s32 unk30;
/* 0x034 */ s32 unk34;
/* 0x038 */ s32 unk38;
/* 0x03C */ s32 unk3C;
/* 0x040 */ s32 unk40;
/* 0x044 */ float unk44;
/* 0x048 */ float unk48;
/* 0x04C */ float unk4C;
/* 0x050 */ StructFn15CD0 unk50;
} StructBss1DC; // Size 0x138
typedef struct {
/* 0x00 */ omObjData *unk00;
/* 0x04 */ s32 unk04;
/* 0x08 */ s32 unk08;
/* 0x0C */ s32 unk0C;
/* 0x10 */ s32 unk10;
/* 0x14 */ s32 unk14;
/* 0x18 */ s32 unk18;
/* 0x1C */ s32 unk1C;
/* 0x20 */ s32 unk20;
} StructBss920; // Size 0x24
typedef struct {
/* 0x00 */ s32 unk00;
/* 0x04 */ s32 unk04;
/* 0x08 */ s32 unk08;
/* 0x0C */ s32 unk0C;
/* 0x10 */ s32 unk10;
} StructFn3410; // Size 0x14
typedef struct {
/* 0x00 */ omObjData *unk00;
/* 0x04 */ s32 unk04;
/* 0x08 */ s32 unk08;
/* 0x0C */ s32 unk0C;
/* 0x10 */ s32 unk10;
/* 0x14 */ s32 unk14;
/* 0x18 */ s32 unk18;
/* 0x1C */ s32 unk1C;
/* 0x20 */ s32 unk20;
/* 0x24 */ float unk24;
} StructBss8D4; // Size 0x28
typedef struct {
/* 0x000 */ omObjData *unk00;
/* 0x004 */ s32 unk04;
/* 0x008 */ s32 unk08;
/* 0x00C */ s32 unk0C;
/* 0x010 */ s32 unk10;
/* 0x014 */ s32 unk14;
/* 0x018 */ s32 unk18;
/* 0x01C */ s32 unk1C;
/* 0x020 */ s32 unk20;
/* 0x024 */ StructFn15CD0 unk24;
} StructBss6BC; // Size 0x10C
typedef struct {
/* 0x00 */ omObjData *unk00;
/* 0x04 */ s32 unk04;
/* 0x08 */ s32 unk08;
/* 0x0C */ s32 unk0C;
/* 0x10 */ s32 unk10;
/* 0x14 */ s32 unk14;
/* 0x18 */ s32 unk18;
/* 0x1C */ s32 unk1C;
/* 0x20 */ s32 unk20;
} StructBss8FC; // Size 0x24
typedef struct {
/* 0x00 */ omObjData *unk00;
/* 0x04 */ s32 unk04;
/* 0x08 */ s32 unk08;
/* 0x0C */ s32 unk0C;
/* 0x10 */ s32 unk10;
/* 0x14 */ s32 unk14;
/* 0x18 */ s32 unk18;
/* 0x1C */ s32 unk1C;
/* 0x20 */ s32 unk20;
/* 0x24 */ float unk24[7];
/* 0x40 */ char unk40[4];
/* 0x44 */ float unk44[7];
/* 0x60 */ char unk60[4];
/* 0x64 */ float unk64[7];
/* 0x80 */ char unk80[4];
/* 0x84 */ float unk84[7];
/* 0xA0 */ char unkA0[4];
/* 0xA4 */ float unkA4[7];
/* 0xC0 */ char unkC0[4];
/* 0xC4 */ float unkC4[7];
/* 0xE0 */ char unkE0[4];
} StructBss68; // Size 0xE4
typedef struct {
/* 0x00 */ s32 unk00;
/* 0x04 */ s32 unk04;
/* 0x08 */ s32 unk08;
/* 0x0C */ s32 unk0C;
/* 0x10 */ s32 unk10;
/* 0x14 */ s32 unk14;
/* 0x18 */ s32 unk18;
/* 0x1C */ s32 unk1C;
/* 0x20 */ s32 unk20;
} StructBss944; // Size 0x24
typedef struct {
/* 0x00 */ s32 unk00;
/* 0x04 */ s32 unk04;
/* 0x08 */ char unk08[0x38];
} StructBss968; // Size 0x40
void fn_1_0(void);
void fn_1_1A8(void);
void fn_1_230(s32 arg0, s32 arg1, float arg2);
void fn_1_298(s32 arg0, float arg1);
float fn_1_304(s32 arg0);
void fn_1_434(void);
void fn_1_4C0(void);
void fn_1_8A4(void (*arg0)(void));
void fn_1_8C4(void (*arg0)(void));
void fn_1_8E4(omObjData *arg0);
void fn_1_F8C(void);
void fn_1_10C0(void);
void fn_1_1184(s32 arg0);
s32 fn_1_11BC(void);
void fn_1_11E0(void);
void fn_1_1218(omObjData *arg0);
void fn_1_13E8(void);
void fn_1_144C(s32 arg0, float arg1, float arg2, s32 arg3);
void fn_1_1A90(void);
void fn_1_1AB4(s32 arg0, float arg1, float arg2);
s32 fn_1_1F0C(float arg0, float arg1, float arg2, float arg3, s32 arg4);
s32 fn_1_20F8(float arg0, float arg1, float arg2, float arg3, s32 arg4);
void fn_1_22E4(s32 arg0, float arg1, float arg2);
void fn_1_273C(s32 arg0);
void fn_1_27A4(s32 arg0);
void fn_1_280C(s32 arg0, s32 arg1);
void fn_1_28F4(s32 arg0);
void fn_1_2A10(s32 arg0, s32 arg1);
void fn_1_2A94(float *arg0, s32 arg1);
void fn_1_2B04(omObjData *arg0);
void fn_1_2BAC(s32 arg0);
void fn_1_2BBC(omObjData *arg0);
void fn_1_3194(omObjData *arg0);
void fn_1_3260(StructBss920 *arg0);
void fn_1_3410(omObjData *arg0);
float fn_1_3694(void);
float fn_1_36B4(void);
void fn_1_37D4(s32 arg0);
void fn_1_37E8(omObjData *arg0);
s32 fn_1_3990(void);
void fn_1_39C4(float arg0);
void fn_1_39E4(omObjData *arg0);
void fn_1_3B50(void);
void fn_1_3B64(omObjData *arg0);
void fn_1_3CB8(s32 arg0);
void fn_1_3D40(omObjData *arg0);
void fn_1_3F44(omObjData *arg0);
void fn_1_4538(StructBss8FC *arg0);
void fn_1_46C0(omObjData *arg0);
void fn_1_4928(s32 arg0);
void fn_1_4938(omObjData *arg0);
void fn_1_4AF8(s32 arg0);
void fn_1_4BAC(s32 arg0, s32 arg1, s32 arg2, s32 arg3);
void fn_1_4C40(omObjData *arg0);
void fn_1_4E00(StructBss8D4 *arg0);
void fn_1_4EE0(omObjData *arg0);
void fn_1_5148(s32 arg0, s32 arg1, s32 arg2, s32 arg3);
void fn_1_51DC(s32 arg0, s32 arg1, s32 arg2, s32 arg3);
void fn_1_5270(s32 arg0, s32 arg1, s32 arg2, s32 arg3);
void fn_1_5304(s32 arg0);
void fn_1_532C(omObjData *arg0);
void fn_1_5658(omObjData *arg0);
void fn_1_5984(StructBss6BC *arg0);
void fn_1_5AD8(omObjData *arg0);
void fn_1_5FBC(void);
void fn_1_610C(s32 arg0, s32 arg1);
void fn_1_6134(omObjData *arg0);
void fn_1_6198(s32 arg0, s32 arg1);
void fn_1_6200(omObjData *arg0);
void fn_1_6580(s32 arg0, s32 arg1, s32 arg2);
void fn_1_65E0(omObjData *arg0);
void fn_1_70F8(s32 arg0, s32 arg1);
void fn_1_7134(omObjData *arg0);
void fn_1_72CC(omObjData *arg0);
void fn_1_74B0(StructBss1DC *arg0);
void fn_1_7678(omObjData *arg0);
void fn_1_79E0(void);
void fn_1_7A14(omObjData *arg0);
void fn_1_82E0(omObjData *arg0);
void fn_1_8308(StructBss68 *arg0);
void fn_1_84C4(omObjData *arg0);
void fn_1_8684(void);
void fn_1_8734(void);
void fn_1_8824(void);
void fn_1_88D4(void);
void fn_1_8984(void);
void fn_1_8A34(void);
void fn_1_8B24(void);
void fn_1_8BD4(void);
void fn_1_8C84(s32 arg0);
void fn_1_8DA4(void);
void fn_1_9320(void);
void fn_1_96D8(void);
void fn_1_9B2C(s32 arg0);
void fn_1_9FA0(void);
void fn_1_A440(void);
void fn_1_A860(void);
s32 fn_1_A864(void);
void fn_1_A9E8(void);
s32 fn_1_AA24(void);
void fn_1_AA80(void);
s32 fn_1_AABC(void);
void fn_1_AB18(void);
s32 fn_1_AB68(void);
void fn_1_ABB0(void);
s32 fn_1_ABEC(void);
void fn_1_AC70(void);
s32 fn_1_ACCC(void);
void fn_1_AD28(void);
s32 fn_1_AD98(void);
void fn_1_ADE0(void);
s32 fn_1_AE1C(void);
void fn_1_AE78(void);
s32 fn_1_AF4C(void);
void fn_1_B194(void);
s32 fn_1_B1C4(void);
float fn_1_B250(void);
void fn_1_B270(void);
s32 fn_1_B3F0(s32 arg0);
float fn_1_B4F4(s32 arg0, s32 arg1);
void fn_1_B7E0(void);
void fn_1_B8D0(void);
void fn_1_BC18(void);
void fn_1_BCC8(void);
void fn_1_BDB8(s32 arg0);
void fn_1_BE80(void);
void fn_1_C248(void);
void fn_1_C610(void);
void fn_1_C9C4(void);
void fn_1_CD20(void);
void fn_1_D03C(void);
void fn_1_D3C0(void);
void fn_1_D754(void);
s32 fn_1_D930(void);
void fn_1_DCEC(void);
s32 fn_1_DEC4(void);
void fn_1_E2A8(void);
s32 fn_1_E598(void);
void fn_1_E634(void);
s32 fn_1_E944(void);
void fn_1_E9A0(void);
s32 fn_1_EAA4(void);
void fn_1_EB38(void);
s32 fn_1_EC10(void);
void fn_1_EDD4(void);
s32 fn_1_EEA0(void);
void fn_1_EFCC(void);
s32 fn_1_F0B8(void);
void fn_1_F0F8(void);
s32 fn_1_F144(void);
void fn_1_F18C(void);
s32 fn_1_F294(void);
void fn_1_F3D8(void);
s32 fn_1_F494(void);
void fn_1_F4D4(void);
s32 fn_1_F504(void);
void fn_1_F590(void);
s32 fn_1_F640(void);
void fn_1_F6EC(void);
s32 fn_1_F71C(void);
void fn_1_F7A8(omObjData *arg0);
s32 fn_1_F89C(void);
void fn_1_F8AC(void);
void fn_1_1043C(omObjData *arg0);
void fn_1_108A4(omObjData *arg0);
void fn_1_10B30(void);
StructBss968 lbl_1_bss_968;
StructBss944 lbl_1_bss_944;
StructBss920 lbl_1_bss_920;
StructBss8FC lbl_1_bss_8FC;
StructBss8D4 lbl_1_bss_8D4;
StructBss6BC lbl_1_bss_6BC[2];
StructBss1DC lbl_1_bss_1DC[4];
StructBss160 lbl_1_bss_160;
float lbl_1_bss_15C;
float lbl_1_bss_158;
float lbl_1_bss_154;
float lbl_1_bss_150;
float lbl_1_bss_14C;
StructBss68 lbl_1_bss_68;
StructBss50 lbl_1_bss_50;
StructBss50 lbl_1_bss_38;
StructBss50 lbl_1_bss_20;
s32 lbl_1_bss_1C;
s32 lbl_1_bss_18;
float lbl_1_bss_14;
s32 lbl_1_bss_10;
s32 lbl_1_bss_C;
s32 lbl_1_bss_8;
s32 lbl_1_bss_4;
Process *lbl_1_bss_0;
s32 lbl_1_data_0[][5] = { { 91, 105, 126, 141, -1 }, { 91, 105, 126, 141, -1 }, { 124, 137, -1, -1, -1 }, { 85, 100, 127, -1, -1 },
{ 124, 139, -1, -1, -1 }, { 85, 97, 127, 139, -1 }, { 127, 137, -1, -1, -1 }, { 79, 95, 109, 127, -1 } };
s32 lbl_1_data_A0 = -1;
s32 lbl_1_data_A4 = -1;
s32 lbl_1_data_A8 = -1;
void fn_1_0(void)
{
s32 i;
while (TRUE) {
HuPrcVSleep();
if (lbl_1_data_A0 == -1 || lbl_1_data_A4 == -1 || lbl_1_data_A8 == -1 || lbl_1_data_A4 != Hu3DMotionIDGet(lbl_1_data_A0)) {
continue;
}
for (i = 0; i < 5; i++) {
if (lbl_1_data_0[lbl_1_data_A8][i] != -1 && Hu3DMotionTimeGet(lbl_1_data_A0) >= lbl_1_data_0[lbl_1_data_A8][i]) {
OSReport("KE-System CHR:%d TIME:%d\n", lbl_1_data_A8, lbl_1_data_0[lbl_1_data_A8][i]);
HuAudFXPlay(0x6D8);
lbl_1_data_0[lbl_1_data_A8][i] = -1;
}
}
}
}
void fn_1_1A8(void)
{
s32 var_r31;
var_r31 = Hu3DGLightCreate(0.0f, 1000.0f, 0.0f, 0.0f, -1.0f, 0.0f, 0xFF, 0xFF, 0xFF);
Hu3DGLightInfinitytSet(var_r31);
}
void fn_1_230(s32 arg0, s32 arg1, float arg2)
{
StructBss160 *var_r31;
var_r31 = &lbl_1_bss_160;
var_r31->unk44[arg0] = arg1;
if (var_r31->unk60[arg0] < 0.0f) {
var_r31->unk60[arg0] = -arg2;
}
else {
var_r31->unk60[arg0] = arg2;
}
}
void fn_1_298(s32 arg0, float arg1)
{
fn_1_230(arg0, -1, arg1);
}
float fn_1_304(s32 arg0)
{
StructBss160 *var_r31;
var_r31 = &lbl_1_bss_160;
if (var_r31->unk60[arg0] != 0.0f) {
var_r31->unk60[arg0] *= -0.9f;
if (var_r31->unk44[arg0] == -1) {
if (var_r31->unk60[arg0] >= -0.5f && var_r31->unk60[arg0] <= 0.5f) {
var_r31->unk60[arg0] = 0.0f;
}
}
else {
var_r31->unk44[arg0]--;
if (var_r31->unk44[arg0] <= 0) {
var_r31->unk44[arg0] = 0;
var_r31->unk60[arg0] = 0.0f;
}
}
}
return var_r31->unk60[arg0];
}
void fn_1_434(void)
{
StructBss160 *var_r31;
var_r31 = &lbl_1_bss_160;
var_r31->unk08 = 0.0f;
var_r31->unk0C = 225.0f;
var_r31->unk10 = 1740.0f;
var_r31->unk20 = -10.0f;
var_r31->unk24 = 0.0f;
var_r31->unk28 = 0.0f;
var_r31->unk38 = 300.0f;
}
void fn_1_4C0(void)
{
StructBss160 *var_r31;
var_r31 = &lbl_1_bss_160;
if (HuPadBtn[0] & 0x200) {
if (HuPadBtn[0] & 0x100) {
var_r31->unk10 -= HuPadStkY[0] / 10.0f;
}
else {
var_r31->unk08 += HuPadStkX[0] / 10.0f;
var_r31->unk0C += HuPadStkY[0] / 10.0f;
}
}
if (HuPadBtn[0] & 0x800) {
var_r31->unk20 -= HuPadStkY[0] / 100.0f;
var_r31->unk24 += HuPadStkX[0] / 100.0f;
if (var_r31->unk20 < 0.0f) {
var_r31->unk20 += 360.0f;
}
if (var_r31->unk20 >= 360.0f) {
var_r31->unk20 -= 360.0f;
}
if (var_r31->unk24 < 0.0f) {
var_r31->unk24 += 360.0f;
}
if (var_r31->unk24 >= 360.0f) {
var_r31->unk24 -= 360.0f;
}
}
if (HuPadBtn[0] & 0x400) {
var_r31->unk38 -= HuPadStkY[0] / 10.0f;
}
print8(16, 100, 1.0f, ">>>>>>>>>> CAMERA TEST <<<<<<<<<<");
print8(16, 110, 1.0f, "CENTER : %.2f, %.2f, %.2f", var_r31->unk08, var_r31->unk0C, var_r31->unk10);
print8(16, 120, 1.0f, "ROT : %.2f, %.2f, %.2f", var_r31->unk20, var_r31->unk24, var_r31->unk28);
print8(16, 130, 1.0f, "ZOOM : %.2f", var_r31->unk38);
}
void fn_1_8A4(void (*arg0)(void))
{
StructBss160 *var_r31;
var_r31 = &lbl_1_bss_160;
var_r31->unk00 = arg0;
}
void fn_1_8C4(void (*arg0)(void))
{
StructBss160 *var_r31;
var_r31 = &lbl_1_bss_160;
var_r31->unk04 = arg0;
}
void fn_1_8E4(omObjData *arg0)
{
StructBss160 *var_r31;
var_r31 = &lbl_1_bss_160;
if (var_r31->unk00 != NULL) {
var_r31->unk00();
}
Center.x = var_r31->unk08 + fn_1_304(0);
Center.y = var_r31->unk0C + fn_1_304(1);
Center.z = var_r31->unk10 + fn_1_304(2);
CRot.x = var_r31->unk20 + fn_1_304(3);
CRot.y = var_r31->unk24 + fn_1_304(4);
CRot.z = var_r31->unk28 + fn_1_304(5);
CZoom = var_r31->unk38 + fn_1_304(6);
}
void fn_1_F8C(void)
{
Hu3DCameraCreate(1);
Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f);
Hu3DCameraPerspectiveSet(1, 45.0f, 0.1f, 10000.0f, 1.2f);
fn_1_8A4(fn_1_434);
fn_1_8C4(fn_1_4C0);
omAddObjEx(lbl_1_bss_0, 0x7FDA, 0, 0, -1, omOutView);
omAddObjEx(lbl_1_bss_0, 0x7FD9, 0, 0, -1, fn_1_8E4);
}
void fn_1_10C0(void)
{
Vec sp20 = { 0.0f, 3000.0f, 1.0f };
Vec sp14 = { 0.0f, 0.0f, 0.0f };
Vec sp8 = { 0.0f, 1.0f, 0.0f };
Hu3DShadowCreate(45.0f, 2000.0f, 25000.0f);
Hu3DShadowTPLvlSet(0.8f);
Hu3DShadowPosSet(&sp20, &sp8, &sp14);
}
void fn_1_1184(s32 arg0)
{
if (lbl_1_bss_8 == 0) {
lbl_1_bss_8 = 1;
lbl_1_bss_4 = arg0 * 60;
}
}
s32 fn_1_11BC(void)
{
if (lbl_1_bss_8 == 3) {
return 1;
}
else {
return 0;
}
}
void fn_1_11E0(void)
{
if (lbl_1_bss_8 == 2) {
lbl_1_bss_8 = 3;
lbl_1_bss_4 = 30;
}
}
s32 lbl_1_data_12C = -1;
void fn_1_1218(omObjData *arg0)
{
switch (lbl_1_bss_8) {
case 1:
if (lbl_1_data_12C == -1) {
lbl_1_data_12C = MGSeqCreate(1, lbl_1_bss_4 / 60, -1, -1);
}
lbl_1_bss_8 = 2;
break;
case 2:
lbl_1_bss_4--;
if (lbl_1_data_12C != -1) {
MGSeqParamSet(lbl_1_data_12C, 1, (lbl_1_bss_4 + 59) / 60);
}
if (lbl_1_bss_4 <= 0) {
lbl_1_bss_4 = 30;
lbl_1_bss_8 = 3;
}
break;
case 3:
if (lbl_1_data_12C != -1) {
MGSeqParamSet(lbl_1_data_12C, 2, -1);
lbl_1_data_12C = -1;
}
lbl_1_bss_4 = 0;
lbl_1_bss_8 = 0;
break;
}
}
void fn_1_13E8(void)
{
lbl_1_bss_4 = 0;
lbl_1_bss_8 = 0;
omAddObjEx(lbl_1_bss_0, 0x2000, 0, 0, -1, fn_1_1218);
}
// Identical to mgmodedll/main.c::fn_1_245CC
void fn_1_144C(s32 arg0, float arg1, float arg2, s32 arg3)
{
WindowData *temp_r29;
float temp_f29;
float temp_f28;
float temp_f25;
float temp_f24;
float temp_f27;
float temp_f26;
float var_f31;
float var_f30;
float var_f23;
float var_f22;
float var_f21;
float var_f20;
s32 i;
temp_r29 = &winData[arg0];
temp_f29 = temp_r29->pos_x;
temp_f28 = temp_r29->pos_y;
temp_f25 = temp_r29->w;
temp_f24 = temp_r29->h;
var_f31 = temp_f29 + temp_f25 * arg1;
temp_f27 = 4.0f / temp_f25;
if (var_f31 + 4.0f - (temp_f29 + temp_f25) >= 0.0f) {
var_f31 = temp_f29 + temp_f25 - 4.0f;
}
else {
if (temp_f29 - (var_f31 - 2.0f) >= 0.0f) {
var_f31 = temp_f29;
}
else {
var_f31 -= 2.0f;
}
}
var_f30 = temp_f28 + temp_f24 * arg2;
temp_f26 = 4.0f / temp_f24;
if (var_f30 + 4.0f - (temp_f28 + temp_f24) >= 0.0f) {
var_f30 = temp_f28 + temp_f24 - 4.0f;
}
else {
if (temp_f28 - (var_f30 - 2.0f) >= 0.0f) {
var_f30 = temp_f28;
}
else {
var_f30 -= 2.0f;
}
}
if (arg3 != 0) {
HuWinPosSet(arg0, var_f31, var_f30);
HuWinScaleSet(arg0, temp_f27, temp_f26);
var_f23 = var_f31;
var_f21 = temp_f27;
var_f22 = var_f30;
var_f20 = temp_f26;
}
else {
HuWinPosSet(arg0, temp_f29, temp_f28);
HuWinScaleSet(arg0, 1.0f, 1.0f);
var_f23 = temp_f29;
var_f21 = 1.0f;
var_f22 = temp_f28;
var_f20 = 1.0f;
}
HuWinDispOn(arg0);
for (i = 0; i <= 15; i++) {
HuPrcVSleep();
if (arg3 != 0) {
if (i <= 10) {
var_f23 = fn_1_113B0(var_f31, temp_f29, i, 10.0f);
var_f21 = fn_1_113B0(temp_f27, 1.0f, i, 10.0f);
}
else {
var_f22 = fn_1_113B0(var_f30, temp_f28, i - 10, 5.0f);
var_f20 = fn_1_113B0(temp_f26, 1.0f, i - 10, 5.0f);
}
}
else {
if (i <= 10) {
var_f22 = fn_1_113B0(temp_f28, var_f30, i, 10.0f);
var_f20 = fn_1_113B0(1.0f, temp_f26, i, 10.0f);
}
else {
var_f23 = fn_1_113B0(temp_f29, var_f31, i - 10, 5.0f);
var_f21 = fn_1_113B0(1.0f, temp_f27, i - 10, 5.0f);
}
}
HuWinPosSet(arg0, var_f23, var_f22);
HuWinScaleSet(arg0, var_f21, var_f20);
}
if (arg3 != 0) {
HuWinPosSet(arg0, temp_f29, temp_f28);
HuWinScaleSet(arg0, 1.0f, 1.0f);
}
else {
HuWinPosSet(arg0, var_f31, var_f30);
HuWinScaleSet(arg0, temp_f27, temp_f26);
}
HuPrcVSleep();
}
void fn_1_1A90(void)
{
HuWinInit(1);
}
void fn_1_1AB4(s32 arg0, float arg1, float arg2)
{
WindowData *temp_r31;
float temp_f29;
float temp_f28;
float temp_f27;
float temp_f26;
float temp_f25;
float temp_f24;
float var_f31;
float var_f30;
float temp_f23;
float temp_f22;
float temp_f21;
float temp_f20;
s32 i;
temp_r31 = &winData[arg0];
temp_f29 = temp_r31->pos_x;
temp_f28 = temp_r31->pos_y;
temp_f27 = temp_r31->w;
temp_f26 = temp_r31->h;
var_f31 = temp_f29 + temp_f27 * arg1;
temp_f25 = 4.0f / temp_f27;
if (var_f31 + 4.0f - (temp_f29 + temp_f27) >= 0.0f) {
var_f31 = temp_f29 + temp_f27 - 4.0f;
}
else {
if (temp_f29 - (var_f31 - 2.0f) >= 0.0f) {
var_f31 = temp_f29;
}
else {
var_f31 = var_f31 - 2.0f;
}
}
var_f30 = temp_f28 + temp_f26 * arg2;
temp_f24 = 4.0f / temp_f26;
if (var_f30 + 4.0f - (temp_f28 + temp_f26) >= 0.0f) {
var_f30 = temp_f28 + temp_f26 - 4.0f;
}
else {
if (temp_f28 - (var_f30 - 2.0f) >= 0.0f) {
var_f30 = temp_f28;
}
else {
var_f30 = var_f30 - 2.0f;
}
}
HuWinPosSet(arg0, var_f31, var_f30);
HuWinScaleSet(arg0, temp_f25, temp_f24);
HuPrcVSleep();
for (i = 0; i < 10; i++) {
temp_f23 = fn_1_113B0(var_f31, temp_f29, i, 10.0f);
temp_f21 = fn_1_113B0(temp_f25, 1.0f, i, 10.0f);
temp_f22 = fn_1_113B0(var_f30, temp_f28, i, 10.0f);
temp_f20 = fn_1_113B0(temp_f24, 1.0f, i, 10.0f);
HuWinPosSet(arg0, temp_f23, temp_f22);
HuWinScaleSet(arg0, temp_f21, temp_f20);
HuPrcVSleep();
}
HuWinPosSet(arg0, temp_f29, temp_f28);
HuWinScaleSet(arg0, 1.0f, 1.0f);
HuPrcVSleep();
}
s32 fn_1_1F0C(float arg0, float arg1, float arg2, float arg3, s32 arg4)
{
s32 var_r31;
s32 sp18[][6] = { { 0xFF, 0xFF, 0xCC, 0x00, 0x09, 0x09 }, { 0xCC, 0xFF, 0xFF, 0x00, 0x09, 0x09 }, { 0xFF, 0xCC, 0xFF, 0x00, 0x09, 0x09 } };
var_r31 = HuWinCreate(arg0, arg1, arg2, arg3, 1);
HuSprColorSet(winData[var_r31].group, 0, sp18[arg4][0], sp18[arg4][1], sp18[arg4][2]);
winData[var_r31].mess_color = sp18[arg4][3];
winData[var_r31].mess_shadow_color = sp18[arg4][4];
winData[var_r31].attr |= 0x80;
HuWinBGTPLvlSet(var_r31, sp18[arg4][5] / 10.0f);
winData[var_r31].active_pad = 0;
fn_1_144C(var_r31, 0.5f, 0.5f, 1);
return var_r31;
}
s32 fn_1_20F8(float arg0, float arg1, float arg2, float arg3, s32 arg4)
{
return fn_1_1F0C(arg0, arg1, arg2, arg3, arg4);
}
void fn_1_22E4(s32 arg0, float arg1, float arg2)
{
WindowData *temp_r31;
float temp_f29;
float temp_f28;
float temp_f27;
float temp_f26;
float temp_f25;
float temp_f24;
float var_f31;
float var_f30;
float temp_f23;
float temp_f22;
float temp_f21;
float temp_f20;
s32 i;
temp_r31 = &winData[arg0];
temp_f29 = temp_r31->pos_x;
temp_f28 = temp_r31->pos_y;
temp_f27 = temp_r31->w;
temp_f26 = temp_r31->h;
var_f31 = temp_f29 + temp_f27 * arg1;
temp_f25 = 4.0f / temp_f27;
if (var_f31 + 4.0f - (temp_f29 + temp_f27) >= 0.0f) {
var_f31 = temp_f29 + temp_f27 - 4.0f;
}
else {
if (temp_f29 - (var_f31 - 2.0f) >= 0.0f) {
var_f31 = temp_f29;
}
else {
var_f31 = var_f31 - 2.0f;
}
}
var_f30 = temp_f28 + temp_f26 * arg2;
temp_f24 = 4.0f / temp_f26;
if (var_f30 + 4.0f - (temp_f28 + temp_f26) >= 0.0f) {
var_f30 = temp_f28 + temp_f26 - 4.0f;
}
else {
if (temp_f28 - (var_f30 - 2.0f) >= 0.0f) {
var_f30 = temp_f28;
}
else {
var_f30 = var_f30 - 2.0f;
}
}
HuWinPosSet(arg0, temp_f29, temp_f28);
HuWinScaleSet(arg0, 1.0f, 1.0f);
HuPrcVSleep();
for (i = 0; i < 10; i++) {
temp_f23 = fn_1_11540(temp_f29, var_f31, i, 10.0f);
temp_f21 = fn_1_11540(1.0f, temp_f25, i, 10.0f);
temp_f22 = fn_1_11540(temp_f28, var_f30, i, 10.0f);
temp_f20 = fn_1_11540(1.0f, temp_f24, i, 10.0f);
HuWinPosSet(arg0, temp_f23, temp_f22);
HuWinScaleSet(arg0, temp_f21, temp_f20);
HuPrcVSleep();
}
HuWinPosSet(arg0, var_f31, var_f30);
HuWinScaleSet(arg0, temp_f25, temp_f24);
HuPrcVSleep();
}
void fn_1_273C(s32 arg0)
{
HuWinMesSet(arg0, MAKE_MESSID(29, 22));
HuPrcVSleep();
fn_1_144C(arg0, 0.5f, 0.5f, 0);
HuWinKill(arg0);
}
void fn_1_27A4(s32 arg0)
{
fn_1_273C(arg0);
}
void fn_1_280C(s32 arg0, s32 arg1)
{
s32 var_r30;
s32 temp_r28;
s32 i;
var_r30 = 0;
temp_r28 = GWMessDelayGet();
if (arg1 > 0) {
HuPrcSleep(arg1);
return;
}
HuWinComKeyReset();
for (i = 0; i < 4; i++) {
if (lbl_1_bss_1DC[i].unk34 == 0) {
var_r30 = 1;
winData[arg0].active_pad = 0xF;
}
}
if (var_r30 == 0) {
winData[arg0].active_pad = 0xF;
HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, temp_r28);
}
HuWinMesWait(arg0);
HuWinComKeyReset();
}
void fn_1_28F4(s32 arg0)
{
s32 var_r31;
s32 temp_r28;
s32 i;
var_r31 = 0;
temp_r28 = GWMessDelayGet();
HuWinComKeyReset();
for (i = 0; i < 4; i++) {
if (lbl_1_bss_1DC[i].unk34 == 0) {
var_r31 = 1;
winData[arg0].active_pad = 0xF;
}
}
if (var_r31 == 0) {
winData[arg0].active_pad = 0xF;
HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, temp_r28);
}
var_r31 = HuWinChoiceGet(arg0, 1);
if (var_r31 == -1 || var_r31 == 1) {
lbl_1_bss_10 = 0;
}
else {
lbl_1_bss_10 = 1;
}
HuWinComKeyReset();
}
void fn_1_2A10(s32 arg0, s32 arg1)
{
winData[arg0].mess_color = 0;
winData[arg0].mess_shadow_color = 9;
winData[arg0].attr |= 0x80;
HuWinMesSet(arg0, arg1);
}
void fn_1_2A94(float *arg0, s32 arg1)
{
float spC[2];
HuWinMesMaxSizeGet(1, spC, arg1);
if (spC[0] > arg0[0]) {
arg0[0] = spC[0];
}
if (spC[1] > arg0[1]) {
arg0[1] = spC[1];
}
}
void fn_1_2B04(omObjData *arg0)
{
s32 i;
for (i = 0; i < 3; i++) {
Hu3DData[arg0->model[i + 5]].rot.y += 360.0f / (2500.0f + 2500.0f * i);
}
}
void fn_1_2BAC(s32 arg0)
{
lbl_1_bss_920.unk04 = arg0;
}
void fn_1_2BBC(omObjData *arg0)
{
StructBss920 *temp_r30;
temp_r30 = arg0->data;
switch (temp_r30->unk04) {
case 2:
fn_1_119A0(arg0, 9, 9, 1, 0);
Hu3DModelAttrReset(arg0->model[9], HU3D_ATTR_DISPOFF);
temp_r30->unk1C = 0;
fn_1_230(1, 10, 4.0f);
HuAudFXPlay(0x6CF);
/* fallthrough */
case 1:
fn_1_119A0(arg0, 0, 0, 1, 0);
fn_1_119A0(arg0, 3, 3, 1, 0);
fn_1_119A0(arg0, 4, 4, 1, 0);
fn_1_119A0(arg0, 5, 5, 1, 0);
fn_1_119A0(arg0, 6, 6, 1, 0);
fn_1_119A0(arg0, 7, 7, 1, 0);
if (temp_r30->unk04 == 1) {
HuAudFXPlay(0x6CE);
}
temp_r30->unk04 = 10;
break;
case 3:
temp_r30->unk04 = 30;
fn_1_119A0(arg0, 0, 0, 1, 0);
fn_1_119A0(arg0, 1, 1, 1, 0);
fn_1_119A0(arg0, 2, 2, 1, 0);
fn_1_119A0(arg0, 3, 3, 1, 0);
fn_1_119A0(arg0, 4, 4, 1, 0);
fn_1_119A0(arg0, 5, 5, 1, 0);
fn_1_119A0(arg0, 6, 6, 1, 0);
fn_1_119A0(arg0, 7, 7, 1, 0);
fn_1_119A0(arg0, 8, 8, 0, 0);
Hu3DModelAttrReset(arg0->model[8], HU3D_ATTR_DISPOFF);
Hu3DModelAttrReset(arg0->model[9], HU3D_ATTR_DISPOFF);
HuAudFXPlay(0x6D0);
break;
case 10:
if (Hu3DMotionEndCheck(arg0->model[3])) {
temp_r30->unk04 = 0;
fn_1_119A0(arg0, 3, 13, 1, 1);
fn_1_119A0(arg0, 4, 14, 1, 1);
Hu3DModelAttrSet(arg0->model[8], HU3D_ATTR_DISPOFF);
Hu3DModelAttrSet(arg0->model[9], HU3D_ATTR_DISPOFF);
}
break;
case 30:
fn_1_230(6, -1, 8.0f);
if (Hu3DMotionTimeGet(arg0->model[3]) >= 30.0f) {
temp_r30->unk04 = 10;
fn_1_230(6, -1, 128.0f);
HuAudFXPlay(0x6DA);
omVibrate(lbl_1_bss_1DC[0].unk2C, 12, 12, 0);
omVibrate(lbl_1_bss_1DC[1].unk2C, 12, 12, 0);
omVibrate(lbl_1_bss_1DC[2].unk2C, 12, 12, 0);
omVibrate(lbl_1_bss_1DC[3].unk2C, 12, 12, 0);
fn_1_37D4(1);
}
break;
}
if (Hu3DMotionTimeGet(arg0->model[9]) >= 25.0f && temp_r30->unk1C == 0) {
temp_r30->unk1C = 1;
fn_1_230(1, 10, 4.0f);
}
else if (Hu3DMotionTimeGet(arg0->model[9]) >= 40.0f && temp_r30->unk1C == 1) {
temp_r30->unk1C = 2;
fn_1_230(1, 10, 4.0f);
}
if (temp_r30->unk04 == 0) {
if (temp_r30->unk14++ >= 300) {
temp_r30->unk14 = 0;
if (rand8() % 2 != 0) {
fn_1_2BAC(1);
}
}
}
}
void fn_1_3194(omObjData *arg0)
{
fn_1_2B04(arg0);
fn_1_2BBC(arg0);
}
void fn_1_3260(StructBss920 *arg0)
{
omObjData *temp_r29 = arg0->unk00;
s32 sp80[][3] = { { 2, -1, 0 }, { 2, -1, 0 }, { 2, -1, 0 }, { 1, 1, 0 }, { 1, 1, 0 }, { 2, -1, 0 }, { 2, -1, 0 }, { 2, -1, 0 }, { 2, -1, 1 },
{ 2, -1, 1 } };
Vec sp8[] = { { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, -680.0f }, { 0.0f, 0.0f, -680.0f }, { 525.0f, 0.0f, -1150.0f }, { -525.0f, 0.0f, -1150.0f },
{ 0.0f, 150.0f, 50.0f }, { 0.0f, 150.0f, 0.0f }, { 0.0f, 150.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f } };
s32 i;
for (i = 0; i < 10; i++) {
Hu3DModelPosSet(temp_r29->model[i], sp8[i].x, sp8[i].y, sp8[i].z);
if (sp80[i][2] == 1) {
Hu3DModelAttrSet(temp_r29->model[i], HU3D_ATTR_DISPOFF);
}
if (sp80[i][1] != -1) {
fn_1_119A0(temp_r29, i, i + 10, 1, sp80[i][1]);
}
else {
fn_1_119A0(temp_r29, i, i, 1, sp80[i][1]);
}
}
temp_r29->work[0] = temp_r29->work[1] = temp_r29->work[2] = temp_r29->work[3] = 0;
arg0->unk14 = arg0->unk18 = arg0->unk1C = arg0->unk20 = 0;
arg0->unk04 = arg0->unk08 = arg0->unk0C = arg0->unk10 = 0;
}
void fn_1_3410(omObjData *arg0)
{
StructFn3410 sp80[] = { { DATA_MAKE_NUM(DATADIR_M437, 36), 2, -1, 1, 0 }, { DATA_MAKE_NUM(DATADIR_M437, 37), 2, -1, 1, 0 },
{ DATA_MAKE_NUM(DATADIR_M437, 38), 2, -1, 2, 0 }, { DATA_MAKE_NUM(DATADIR_M437, 39), 1, DATA_MAKE_NUM(DATADIR_M437, 41), 2, 0 },
{ DATA_MAKE_NUM(DATADIR_M437, 40), 1, DATA_MAKE_NUM(DATADIR_M437, 42), 2, 0 }, { DATA_MAKE_NUM(DATADIR_M437, 33), 2, -1, 0, 0 },
{ DATA_MAKE_NUM(DATADIR_M437, 34), 2, -1, 0, 0 }, { DATA_MAKE_NUM(DATADIR_M437, 35), 2, -1, 0, 0 },
{ DATA_MAKE_NUM(DATADIR_M437, 43), 2, -1, 0, 1 }, { DATA_MAKE_NUM(DATADIR_M437, 44), 2, -1, 0, 1 } };
Vec sp8[] = { { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, -680.0f }, { 0.0f, 0.0f, -680.0f }, { 525.0f, 0.0f, -1150.0f }, { -525.0f, 0.0f, -1150.0f },
{ 0.0f, 150.0f, 50.0f }, { 0.0f, 150.0f, 0.0f }, { 0.0f, 150.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f } };
s32 i;
for (i = 0; i < 10; i++) {
arg0->model[i] = Hu3DModelCreateFile(sp80[i].unk00);
arg0->motion[i] = Hu3DMotionIDGet(arg0->model[i]);
if (sp80[i].unk08 != -1) {
arg0->motion[i + 10] = Hu3DJointMotionFile(arg0->model[i], sp80[i].unk08);
}
Hu3DModelPosSet(arg0->model[i], sp8[i].x, sp8[i].y, sp8[i].z);
if (sp80[i].unk0C == 1) {
Hu3DModelShadowMapSet(arg0->model[i]);
}
else if (sp80[i].unk0C == 2) {
Hu3DModelShadowSet(arg0->model[i]);
}
if (sp80[i].unk10 == 1) {
Hu3DModelAttrSet(arg0->model[i], HU3D_ATTR_DISPOFF);
Hu3DModelLayerSet(arg0->model[i], 1);
}
if (sp80[i].unk08 != -1) {
fn_1_119A0(arg0, i, i + 10, 1, sp80[i].unk04);
}
else {
fn_1_119A0(arg0, i, i, 1, sp80[i].unk04);
}
}
arg0->data = &lbl_1_bss_920;
arg0->func = fn_1_3194;
}
float fn_1_3694(void)
{
return lbl_1_bss_150 / lbl_1_bss_154;
}
float fn_1_36B4(void)
{
float temp_f31;
StructBss6BC *sp8;
temp_f31 = lbl_1_bss_150 / lbl_1_bss_154;
sp8 = &lbl_1_bss_6BC[1];
if (lbl_1_bss_8D4.unk08 == 0) {
if (temp_f31 > 0.875f) {
fn_1_4AF8(3);
fn_1_5304(3);
fn_1_5148(3, 5, 0, 0);
fn_1_5270(5, 10, 2, 1);
}
else if (temp_f31 > 0.75f) {
fn_1_4AF8(2);
fn_1_5304(2);
}
else if (temp_f31 > 0.5f) {
fn_1_4AF8(1);
fn_1_5304(1);
}
else {
fn_1_4AF8(0);
fn_1_5304(0);
}
}
return temp_f31;
}
void fn_1_37D4(s32 arg0)
{
lbl_1_bss_8FC.unk04 = 1;
}
void fn_1_37E8(omObjData *arg0)
{
Mtx sp8;
StructBss8FC *var_r30;
var_r30 = &lbl_1_bss_8FC;
switch (var_r30->unk04) {
case 1:
var_r30->unk04 = 2;
Hu3DModelAttrReset(arg0->model[0], HU3D_ATTR_DISPOFF);
Hu3DModelAttrReset(arg0->model[1], HU3D_ATTR_DISPOFF);
Hu3DModelAttrReset(arg0->model[2], HU3D_ATTR_DISPOFF);
fn_1_119A0(arg0, 0, 3, 1, 0);
fn_1_119A0(arg0, 2, 10, 1, 0);
break;
case 2:
if (Hu3DMotionTimeGet(arg0->model[0]) >= 20.0f) {
arg0->trans.y -= 20.0f;
if (arg0->trans.y <= 0.0f) {
arg0->trans.y = 0.0f;
var_r30->unk04 = 3;
}
}
break;
case 3:
if (Hu3DMotionEndCheck(arg0->model[0])) {
var_r30->unk04 = 4;
Hu3DModelHookReset(arg0->model[2]);
Hu3DModelObjMtxGet(arg0->model[0], "m437a01-balloon-point", sp8);
Hu3DModelPosSet(arg0->model[1], sp8[0][3], 0.0f, -250.0f);
}
break;
}
}
s32 fn_1_3990(void)
{
if (lbl_1_bss_15C <= lbl_1_bss_158) {
return 1;
}
else {
return 0;
}
}
void fn_1_39C4(float arg0)
{
lbl_1_bss_158 += arg0;
}
void fn_1_39E4(omObjData *arg0)
{
if (lbl_1_bss_15C > lbl_1_bss_158) {
lbl_1_bss_150 = lbl_1_bss_158 * (lbl_1_bss_154 / lbl_1_bss_15C);
lbl_1_bss_14C = fn_1_11370(lbl_1_bss_14C, lbl_1_bss_150, 5.0f);
Hu3DMotionTimeSet(arg0->model[1], lbl_1_bss_14C);
}
else {
lbl_1_bss_158 = lbl_1_bss_15C;
lbl_1_bss_150 = lbl_1_bss_158 * (lbl_1_bss_154 / lbl_1_bss_15C);
lbl_1_bss_14C = fn_1_11370(lbl_1_bss_14C, lbl_1_bss_150, 5.0f);
Hu3DMotionTimeSet(arg0->model[1], lbl_1_bss_14C);
}
}
void fn_1_3B50(void)
{
lbl_1_bss_8FC.unk08 = 1;
}
void fn_1_3B64(omObjData *arg0)
{
Mtx sp8;
StructBss8FC *var_r30;
var_r30 = &lbl_1_bss_8FC;
if (var_r30->unk08 == 1) {
var_r30->unk08 = 0;
Hu3DModelAttrReset(arg0->model[3], HU3D_ATTR_DISPOFF);
Hu3DModelAttrSet(arg0->model[1], HU3D_ATTR_DISPOFF);
Hu3DModelObjMtxGet(arg0->model[0], "m437a01-balloon-point", sp8);
Hu3DModelPosSet(arg0->model[3], sp8[0][3], 0.0f, -250.0f);
fn_1_119A0(arg0, 3, 6, 1, 0);
omVibrate(lbl_1_bss_1DC[0].unk2C, 12, 12, 0);
omVibrate(lbl_1_bss_1DC[1].unk2C, 12, 12, 0);
omVibrate(lbl_1_bss_1DC[2].unk2C, 12, 12, 0);
omVibrate(lbl_1_bss_1DC[3].unk2C, 12, 12, 0);
HuAudFXPlay(0x6F4);
HuAudSeqAllFadeOut(100);
}
}
void fn_1_3CB8(s32 arg0)
{
lbl_1_bss_14 += arg0;
if (lbl_1_bss_14 >= 3.0f) {
lbl_1_bss_14 = 3.0f;
}
}
void fn_1_3D40(omObjData *arg0)
{
float temp_f31;
StructBss8FC *sp8;
s32 temp_r31;
sp8 = &lbl_1_bss_8FC;
temp_r31 = 100.0f * fn_1_3694();
temp_f31 = fn_1_11478(0.0f, lbl_1_bss_14, lbl_1_bss_8FC.unk1C++, temp_r31);
if (lbl_1_bss_8FC.unk1C >= temp_r31) {
lbl_1_bss_8FC.unk1C = 0;
lbl_1_bss_14 -= 0.5f;
if (lbl_1_bss_14 <= 0.0f) {
lbl_1_bss_14 = 0.0f;
}
}
if (fn_1_3694() >= 0.2f) {
Hu3DModelRotSet(arg0->model[1], 0.0f, 0.0f, temp_f31);
}
}
void fn_1_3F44(omObjData *arg0)
{
fn_1_37E8(arg0);
fn_1_39E4(arg0);
fn_1_3D40(arg0);
fn_1_3B64(arg0);
}
void fn_1_4538(StructBss8FC *arg0)
{
omObjData *temp_r31;
temp_r31 = arg0->unk00;
omSetTra(temp_r31, 0.0f, 210.0f, -250.0f);
Hu3DModelAttrSet(temp_r31->model[0], HU3D_ATTR_DISPOFF);
Hu3DModelAttrSet(temp_r31->model[1], HU3D_ATTR_DISPOFF);
lbl_1_bss_150 = 0.0f;
lbl_1_bss_154 = Hu3DMotionMaxTimeGet(temp_r31->model[1]);
lbl_1_bss_14C = 0.0f;
lbl_1_bss_158 = 0.0f;
lbl_1_bss_15C = rand8() % 7 + 30;
Hu3DModelAttrSet(temp_r31->model[2], HU3D_ATTR_DISPOFF);
temp_r31->work[0] = temp_r31->work[1] = temp_r31->work[2] = temp_r31->work[3] = 0;
arg0->unk14 = arg0->unk18 = arg0->unk1C = arg0->unk20 = 0;
arg0->unk04 = arg0->unk08 = arg0->unk0C = arg0->unk10 = 0;
}
void fn_1_46C0(omObjData *arg0)
{
arg0->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M437, 24));
arg0->motion[0] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, 28));
arg0->motion[1] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, 29));
arg0->motion[2] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, 30));
arg0->motion[3] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, 31));
Hu3DModelShadowMapSet(arg0->model[0]);
arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M437, 26));
arg0->motion[5] = Hu3DMotionIDGet(arg0->model[1]);
Hu3DModelLayerSet(arg0->model[1], 2);
fn_1_119A0(arg0, 1, 5, 1, 2);
lbl_1_bss_15C = Hu3DMotionMaxTimeGet(arg0->model[1]);
arg0->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M437, 25));
arg0->motion[10] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, 32));
Hu3DModelShadowMapSet(arg0->model[0]);
Hu3DModelHookSet(arg0->model[0], "m437a01-balloon-point", arg0->model[2]);
Hu3DModelHookSet(arg0->model[2], "m437test04-b_point", arg0->model[1]);
arg0->model[3] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M437, 27));
arg0->motion[6] = Hu3DMotionIDGet(arg0->model[3]);
Hu3DModelLayerSet(arg0->model[3], 2);
Hu3DModelAttrSet(arg0->model[3], HU3D_ATTR_DISPOFF);
arg0->func = fn_1_3F44;
}
void fn_1_4928(s32 arg0)
{
lbl_1_bss_8D4.unk04 = arg0;
}
void fn_1_4938(omObjData *arg0)
{
float sp8;
StructBss8D4 *temp_r31;
sp8 = 0.0f;
temp_r31 = arg0->data;
switch (temp_r31->unk04) {
case 1:
temp_r31->unk04 = 2;
temp_r31->unk14 = temp_r31->unk18 = 0;
temp_r31->unk24 = 0.0f;
/* fallthrough */
case 2:
temp_r31->unk24 = fn_1_11478(0.0f, 10.0f, temp_r31->unk14, 30.0f);
if (temp_r31->unk14++ >= 30) {
temp_r31->unk14 = 0;
temp_r31->unk18++;
if (temp_r31->unk18 >= 2) {
temp_r31->unk04 = 3;
}
}
break;
case 3:
temp_r31->unk24 = fn_1_11370(temp_r31->unk24, 0.0f, 5.0f);
if (temp_r31->unk14++ >= 15) {
temp_r31->unk04 = 0;
temp_r31->unk14 = temp_r31->unk18 = 0;
temp_r31->unk24 = 0.0f;
Hu3DMotionNoMotReset(arg0->model[0], "g000m0-ns_ago", 0x200);
}
break;
}
if (temp_r31->unk04 != 0) {
Hu3DMotionForceSet(arg0->model[0], "g000m0-ns_ago", 0x200, temp_r31->unk24);
}
}
void fn_1_4AF8(s32 arg0)
{
s32 sp8[] = { 4, 5, 6, 7, 8 };
if (arg0 <= 3) {
fn_1_11B18(lbl_1_bss_8D4.unk00, 0, sp8[arg0], 120, 1);
}
else {
fn_1_11B18(lbl_1_bss_8D4.unk00, 0, sp8[arg0], 5, 0);
}
}
void fn_1_4BAC(s32 arg0, s32 arg1, s32 arg2, s32 arg3)
{
if (arg3 != 0) {
fn_1_119A0(lbl_1_bss_8D4.unk00, 0, arg0, arg1, arg2);
}
else {
fn_1_11B18(lbl_1_bss_8D4.unk00, 0, arg0, arg1, arg2);
}
}
void fn_1_4C40(omObjData *arg0)
{
fn_1_4938(arg0);
}
void fn_1_4E00(StructBss8D4 *arg0)
{
omObjData *temp_r30;
temp_r30 = arg0->unk00;
omSetTra(temp_r30, 0.0f, 37.0f, -565.0f);
omSetSca(temp_r30, 1.5f, 1.5f, 1.5f);
fn_1_119A0(temp_r30, 0, 0, 1, 1);
temp_r30->work[0] = temp_r30->work[1] = temp_r30->work[2] = temp_r30->work[3] = 0;
arg0->unk14 = arg0->unk18 = arg0->unk1C = arg0->unk20 = 0;
arg0->unk04 = arg0->unk08 = arg0->unk0C = arg0->unk10 = 0;
}
void fn_1_4EE0(omObjData *arg0)
{
arg0->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M437, 45));
arg0->motion[0] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, 46));
arg0->motion[1] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, 47));
arg0->motion[2] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, 48));
arg0->motion[3] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, 49));
arg0->motion[4] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, 50));
arg0->motion[5] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, 51));
arg0->motion[6] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, 52));
arg0->motion[7] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, 53));
arg0->motion[8] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, 54));
omSetTra(arg0, 0.0f, 37.0f, -565.0f);
omSetSca(arg0, 1.5f, 1.5f, 1.5f);
Hu3DModelShadowSet(arg0->model[0]);
fn_1_119A0(arg0, 0, 0, 1, 1);
arg0->data = &lbl_1_bss_8D4;
arg0->func = fn_1_4C40;
}
void fn_1_5148(s32 arg0, s32 arg1, s32 arg2, s32 arg3)
{
if (arg3 != 0) {
fn_1_119A0(lbl_1_bss_6BC[0].unk00, 0, arg0, arg1, arg2);
}
else {
fn_1_11B18(lbl_1_bss_6BC[0].unk00, 0, arg0, arg1, arg2);
}
}
void fn_1_51DC(s32 arg0, s32 arg1, s32 arg2, s32 arg3)
{
if (arg3 != 0) {
fn_1_119A0(lbl_1_bss_6BC[1].unk00, 0, arg0, arg1, arg2);
}
else {
fn_1_11B18(lbl_1_bss_6BC[1].unk00, 0, arg0, arg1, arg2);
}
}
void fn_1_5270(s32 arg0, s32 arg1, s32 arg2, s32 arg3)
{
if (arg3 != 0) {
fn_1_119A0(lbl_1_bss_6BC[0].unk00, 1, arg0, arg1, arg2);
}
else {
fn_1_11B18(lbl_1_bss_6BC[0].unk00, 1, arg0, arg1, arg2);
}
}
void fn_1_5304(s32 arg0)
{
StructBss6BC *var_r31;
var_r31 = &lbl_1_bss_6BC[1];
var_r31->unk04 = arg0 + 1;
}
void fn_1_532C(omObjData *arg0)
{
StructBss6BC *temp_r31 = arg0->data;
Vec sp38[] = { { 480.0f, 0.0f, -1250.0f }, { 400.0f, 37.0f, -850.0f }, { 400.0f, 37.0f, -600.0f }, { 400.0f, 37.0f, -425.0f } };
if (arg0->work[0] == 0) {
return;
}
if (temp_r31->unk04 == 7) {
temp_r31->unk08 = temp_r31->unk04;
}
if (temp_r31->unk04 != 4 || temp_r31->unk08 <= 4) {
temp_r31->unk08 = temp_r31->unk04;
}
switch (temp_r31->unk08) {
case 1:
case 2:
case 3:
fn_1_11CE0(arg0, sp38[4 - temp_r31->unk08], 0.0f, 6.0f, 10.0f, 10.0f, 1);
temp_r31->unk00->trans.x = 400.0f;
break;
case 4:
fn_1_11CE0(arg0, sp38[0], 0.0f, 6.0f, 10.0f, 10.0f, 1);
temp_r31->unk00->trans.x = 400.0f;
if (temp_r31->unk18++ >= 60) {
temp_r31->unk08 = 5;
temp_r31->unk18 = 0;
}
break;
case 5:
fn_1_11CE0(arg0, sp38[0], 0.0f, 6.0f, 10.0f, 10.0f, 1);
if (temp_r31->unk18++ >= 60) {
temp_r31->unk08 = 6;
temp_r31->unk18 = 0;
}
break;
case 6:
fn_1_11B18(arg0, 0, 6, 10, 0);
break;
case 7:
fn_1_11CE0(arg0, sp38[3], -15.0f, 6.0f, 10.0f, 10.0f, 1);
break;
}
}
void fn_1_5658(omObjData *arg0)
{
fn_1_532C(arg0);
}
void fn_1_5984(StructBss6BC *arg0)
{
s32 var_r29;
omObjData *temp_r30;
var_r29 = arg0->unk00->work[0];
temp_r30 = arg0->unk00;
if (var_r29 != 0) {
omSetTra(temp_r30, 400.0f, 37.0f, -425.0f);
omSetRot(temp_r30, 0.0f, -15.0f, 0.0f);
fn_1_119A0(temp_r30, 0, 0, 1, 1);
}
else {
omSetTra(temp_r30, -400.0f, 37.0f, -425.0f);
fn_1_119A0(temp_r30, 0, 0, 1, 1);
fn_1_119A0(temp_r30, 1, 5, 1, 1);
}
temp_r30->work[1] = temp_r30->work[2] = temp_r30->work[3] = 0;
arg0->unk14 = arg0->unk18 = arg0->unk1C = arg0->unk20 = 0;
arg0->unk04 = arg0->unk08 = arg0->unk0C = arg0->unk10 = 0;
}
void fn_1_5AD8(omObjData *arg0)
{
StructBss6BC *temp_r29;
s32 temp_r30;
temp_r30 = arg0->work[0];
temp_r29 = &lbl_1_bss_6BC[temp_r30];
arg0->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M437, 57));
if (temp_r30 != 0) {
arg0->motion[0] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, 58));
arg0->motion[1] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, 59));
arg0->motion[2] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, 63));
arg0->motion[3] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, 64));
arg0->motion[4] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, 65));
arg0->motion[5] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, 66));
arg0->motion[6] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, 67));
arg0->motion[7] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, 68));
arg0->motion[8] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, 69));
arg0->motion[9] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, 71));
omSetTra(arg0, 400.0f, 37.0f, -425.0f);
omSetRot(arg0, 0.0f, -15.0f, 0.0f);
fn_1_119A0(arg0, 0, 0, 1, 1);
fn_1_164B0(lbl_1_bss_0, &temp_r29->unk24, arg0->model[0], "g007m0-skl_at");
fn_1_15DC8(&temp_r29->unk24);
}
else {
arg0->motion[0] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, 60));
arg0->motion[1] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, 61));
arg0->motion[2] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, 62));
arg0->motion[3] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, 70));
arg0->motion[4] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, 72));
omSetTra(arg0, -400.0f, 37.0f, -425.0f);
fn_1_119A0(arg0, 0, 0, 1, 1);
arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M437, 73));
arg0->motion[5] = Hu3DJointMotionFile(arg0->model[1], DATA_MAKE_NUM(DATADIR_M437, 74));
arg0->motion[6] = Hu3DJointMotionFile(arg0->model[1], DATA_MAKE_NUM(DATADIR_M437, 75));
Hu3DModelHookSet(arg0->model[0], "g007m0-itemhook_r", arg0->model[1]);
Hu3DModelLayerSet(arg0->model[0], 2);
Hu3DModelLayerSet(arg0->model[1], 2);
fn_1_119A0(arg0, 1, 5, 1, 1);
}
Hu3DModelShadowSet(arg0->model[0]);
arg0->data = &lbl_1_bss_6BC[temp_r30];
arg0->func = fn_1_5658;
}
void fn_1_5FBC(void)
{
StructBss1DC *temp_r31;
s32 sp8[4];
s32 i;
sp8[0] = GWPlayerCurrGet();
for (i = 1; i < 4; i++) {
sp8[i] = sp8[i - 1] + 1;
if (sp8[i] >= 4) {
sp8[i] = 0;
}
}
for (i = 0; i < 4; i++) {
temp_r31 = &lbl_1_bss_1DC[i];
temp_r31->unk2C = sp8[i];
temp_r31->unk30 = GWPlayerCfg[temp_r31->unk2C].group;
temp_r31->unk34 = GWPlayerCfg[temp_r31->unk2C].iscom;
temp_r31->unk38 = GWPlayerCfg[temp_r31->unk2C].diff;
temp_r31->unk3C = GWPlayerCfg[temp_r31->unk2C].character;
temp_r31->unk40 = GWPlayerCfg[temp_r31->unk2C].pad_idx;
}
}
void fn_1_610C(s32 arg0, s32 arg1)
{
StructBss1DC *temp_r31;
temp_r31 = &lbl_1_bss_1DC[arg0];
temp_r31->unk04 = arg1;
}
void fn_1_6134(omObjData *arg0)
{
StructBss1DC *var_r30;
var_r30 = arg0->data;
if (var_r30->unk04 != 0) {
Hu3DModelAttrReset(arg0->model[0], HU3D_ATTR_DISPOFF);
}
else {
Hu3DModelAttrSet(arg0->model[0], HU3D_ATTR_DISPOFF);
}
}
void fn_1_6198(s32 arg0, s32 arg1)
{
StructBss1DC *temp_r31;
temp_r31 = &lbl_1_bss_1DC[arg0];
temp_r31->unk08 = arg1;
fn_1_15DC8(&temp_r31->unk50);
fn_1_11B18(temp_r31->unk00, 0, 2, 10, 0);
}
void fn_1_6200(omObjData *arg0)
{
StructBss1DC *temp_r30;
HsfMaterial *var_r31;
HsfData *temp_r28;
char **temp_r27;
s32 var_r23;
s32 i, j;
ModelData *temp_r25;
HsfAttribute *temp_r24;
temp_r30 = &lbl_1_bss_1DC[arg0->work[0]];
if (temp_r30->unk08 != 1) {
return;
}
var_r23 = 1;
temp_r25 = &Hu3DData[arg0->model[0]];
temp_r28 = temp_r25->hsfData;
var_r31 = temp_r28->material;
if (temp_r30->unk3C == 3) {
for (i = 0; i < temp_r25->hsfData->materialCnt; i++, var_r31++) {
if (i == 1 || i == 2) {
continue;
}
var_r31->color[0] *= temp_r30->unk44;
if (var_r31->color[0] == 0) {
var_r31->color[0] = 0;
}
var_r31->color[1] *= temp_r30->unk44;
if (var_r31->color[1] == 0) {
var_r31->color[1] = 0;
}
var_r31->color[2] *= temp_r30->unk44;
if (var_r31->color[2] == 0) {
var_r31->color[2] = 0;
}
}
}
else {
temp_r27 = CharModelTexNameGet(temp_r30->unk3C, 2);
for (i = 0; i < temp_r28->materialCnt; i++, var_r31++) {
var_r23 = 1;
for (j = 0; j < var_r31->numAttrs; j++) {
temp_r24 = &temp_r28->attribute[var_r31->attrs[j]];
if (strcmp(temp_r27[0], temp_r24->bitmap->name) == 0 || strcmp(temp_r27[1], temp_r24->bitmap->name) == 0) {
var_r23 = 0;
}
}
if (var_r23 == 0) {
continue;
}
var_r31->color[0] *= temp_r30->unk44;
if (var_r31->color[0] == 0) {
var_r31->color[0] = 0;
}
var_r31->color[1] *= temp_r30->unk44;
if (var_r31->color[1] == 0) {
var_r31->color[1] = 0;
}
var_r31->color[2] *= temp_r30->unk44;
if (var_r31->color[2] == 0) {
var_r31->color[2] = 0;
}
}
}
temp_r30->unk44 -= 0.01;
if (temp_r30->unk44 < 0.0f) {
temp_r30->unk08 = 99;
temp_r30->unk44 = 0.0f;
}
}
void fn_1_6580(s32 arg0, s32 arg1, s32 arg2)
{
StructBss1DC *temp_r31;
temp_r31 = &lbl_1_bss_1DC[arg0];
if (temp_r31->unk0C == 0) {
temp_r31->unk0C = arg1;
temp_r31->unk10 = arg2;
temp_r31->unk28 = 0;
}
else if (temp_r31->unk0C == 2) {
temp_r31->unk10 = 0;
temp_r31->unk28 = 1;
}
}
float lbl_1_data_188 = -1.0f;
void fn_1_65E0(omObjData *arg0)
{
Mtx sp60;
StructBss1DC *temp_r31;
StructBss1DC *var_r26;
StructBss1DC *temp_r27;
StructBss8FC *var_r28;
StructBss8FC *spC;
s32 var_r29;
temp_r31 = arg0->data;
switch (temp_r31->unk0C) {
case 1:
temp_r31->unk0C = 2;
temp_r31->unk48 = -1.5f;
lbl_1_data_188 = -1.0f;
fn_1_119A0(arg0, 0, 5, 15, 0);
break;
case 2:
if (temp_r31->unk48 >= 1.7f) {
temp_r31->unk48 = 1.7f;
}
arg0->trans.y += temp_r31->unk48 * temp_r31->unk48 * (temp_r31->unk48 >= 0.0f ? -25.0f : 25.0f);
if (temp_r31->unk28 != 0 && arg0->trans.y >= 25.0f + temp_r31->unk4C && temp_r31->unk10 == 0) {
temp_r31->unk0C = 5;
temp_r31->unk48 = 0.0f;
lbl_1_data_188 = arg0->trans.y - temp_r31->unk4C;
fn_1_11B18(arg0, 0, 7, 15, 0);
for (var_r29 = 0; var_r29 < 4; var_r29++) {
if (var_r29 != arg0->work[0]) {
var_r26 = &lbl_1_bss_1DC[var_r29];
var_r26->unk00->work[2] = rand8() % 10;
}
}
}
if (((!(HuPadBtn[temp_r31->unk40] & 0x100) && temp_r31->unk10 == 0) || temp_r31->unk10 == 2) && temp_r31->unk48 < -0.8f) {
temp_r31->unk48 = -0.8f;
}
if (arg0->trans.y <= temp_r31->unk4C && temp_r31->unk48 > 0.0f) {
arg0->trans.y = temp_r31->unk4C;
temp_r31->unk0C = 4;
temp_r31->unk48 = 0.0f;
fn_1_11B18(arg0, 0, 6, 5, 0);
}
temp_r31->unk48 += 0.09f;
break;
case 4:
if (temp_r31->unk48++ >= 15.0f) {
temp_r31->unk0C = 0;
temp_r31->unk28 = 0;
fn_1_11B18(arg0, 0, 0, 15, 1);
}
break;
case 5:
if (fn_1_36B4() > 0.75f) {
for (var_r29 = 0; var_r29 < 4; var_r29++) {
if (var_r29 != arg0->work[0]) {
temp_r27 = &lbl_1_bss_1DC[var_r29];
if (temp_r27->unk00->work[2]-- == 0) {
fn_1_11B18(temp_r27->unk00, 0, 11, 5, 0);
}
}
}
}
if (temp_r31->unk48++ >= 25.0f) {
temp_r31->unk0C = 6;
}
break;
case 6:
if (temp_r31->unk48 >= 1.7f) {
temp_r31->unk48 = 1.7f;
}
arg0->trans.y += temp_r31->unk48 * temp_r31->unk48 * (temp_r31->unk48 >= 0.0f ? -17.5f : 17.5f);
if (arg0->trans.y <= temp_r31->unk4C && temp_r31->unk48 > 0.0f) {
arg0->trans.y = temp_r31->unk4C;
temp_r31->unk0C = 7;
temp_r31->unk48 = 0.0f;
var_r28 = &lbl_1_bss_8FC;
if (lbl_1_data_188 <= 135.0f) {
fn_1_119A0(var_r28->unk00, 0, 2, 5, 0);
}
else if (lbl_1_data_188 <= 245.0f) {
fn_1_119A0(var_r28->unk00, 0, 1, 5, 0);
}
else {
fn_1_119A0(var_r28->unk00, 0, 0, 5, 0);
}
HuAudFXPlay(0x6F5);
omVibrate(temp_r31->unk2C, 12, 6, 6);
fn_1_11B18(arg0, 0, 8, 15, 0);
}
temp_r31->unk48 += 0.1f;
break;
case 7:
if (temp_r31->unk48++ >= 15.0f) {
spC = &lbl_1_bss_8FC;
if (lbl_1_data_188 <= 135.0f) {
fn_1_39C4(1.0f);
fn_1_3CB8(1.0f);
HuAudFXPlay(0x6F6);
}
else if (lbl_1_data_188 <= 245.0f) {
fn_1_39C4(2.0f);
fn_1_3CB8(2.0f);
HuAudFXPlay(0x6F7);
}
else {
fn_1_39C4(3.0f);
fn_1_3CB8(3.0f);
HuAudFXPlay(0x6F8);
}
fn_1_11B18(arg0, 0, 9, 15, 0);
temp_r31->unk48 = 0.0f;
temp_r31->unk0C = 4;
}
break;
}
if ((temp_r31->unk0C == 4 || temp_r31->unk0C == 7) && temp_r31->unk10 == 0) {
StructBss8FC *temp = &lbl_1_bss_8FC;
Hu3DModelObjMtxGet(temp->unk00->model[0], "m437a01-chara-point", sp60);
arg0->trans.y = sp60[1][3];
}
}
void fn_1_70F8(s32 arg0, s32 arg1)
{
StructBss1DC *temp_r31;
temp_r31 = &lbl_1_bss_1DC[arg0];
temp_r31->unk14 = arg1;
temp_r31->unk24 = 15 - arg1 * 5;
temp_r31->unk28 = 0;
}
void fn_1_7134(omObjData *arg0)
{
StructBss1DC *temp_r31 = &lbl_1_bss_1DC[arg0->work[0]];
Vec sp14[] = { { 0.0f, 0.0f, 0.0f }, { -1000.0f, 0.0f, 800.0f }, { -200.0f, 0.0f, 800.0f }, { 1000.0f, 0.0f, 800.0f } };
if (temp_r31->unk14 < 1) {
return;
}
if (temp_r31->unk24-- <= 0) {
fn_1_11B18(arg0, 0, 4, 15, 1);
temp_r31->unk28 = 1;
}
if (temp_r31->unk28 != 0) {
fn_1_11CE0(arg0, sp14[temp_r31->unk14], -1.0f, temp_r31->unk0C + 7.0f, 30.0f, 5.0f, 0);
}
}
void fn_1_72CC(omObjData *arg0)
{
fn_1_6134(arg0);
fn_1_6200(arg0);
fn_1_65E0(arg0);
fn_1_7134(arg0);
}
void fn_1_74B0(StructBss1DC *arg0)
{
s32 var_r29;
omObjData *temp_r30;
var_r29 = arg0->unk00->work[0];
temp_r30 = arg0->unk00;
omSetTra(temp_r30, var_r29 * -150 - (rand8() % 100) * 2, 0.0f, (rand8() % 100) * 2 + 250);
omSetRot(temp_r30, 0.0f, 180.0f, 0.0f);
fn_1_119A0(temp_r30, 0, 0, 1, 1);
fn_1_15DC8(&arg0->unk50);
fn_1_15CD0(&arg0->unk50, lbl_1_bss_8FC.unk00->model[0]);
arg0->unk44 = 1.0f;
temp_r30->work[1] = temp_r30->work[2] = temp_r30->work[3] = 0;
arg0->unk1C = arg0->unk20 = arg0->unk24 = arg0->unk28 = 0;
arg0->unk04 = arg0->unk08 = arg0->unk0C = arg0->unk10 = 0;
arg0->unk14 = 0;
}
void fn_1_7678(omObjData *arg0)
{
StructBss1DC *temp_r30;
s32 temp_r29;
temp_r29 = arg0->work[0];
temp_r30 = &lbl_1_bss_1DC[temp_r29];
arg0->model[0] = CharModelCreate(temp_r30->unk3C, 2);
arg0->motion[0] = CharModelMotionCreate(temp_r30->unk3C, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0));
arg0->motion[1] = CharModelMotionCreate(temp_r30->unk3C, DATA_MAKE_NUM(DATADIR_MARIOMOT, 3));
arg0->motion[2] = CharModelMotionCreate(temp_r30->unk3C, DATA_MAKE_NUM(DATADIR_MARIOMOT, 28));
arg0->motion[3] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, temp_r30->unk3C));
arg0->motion[4] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, 8 + temp_r30->unk3C));
arg0->motion[5] = CharModelMotionCreate(temp_r30->unk3C, DATA_MAKE_NUM(DATADIR_MARIOMOT, 5));
arg0->motion[6] = CharModelMotionCreate(temp_r30->unk3C, DATA_MAKE_NUM(DATADIR_MARIOMOT, 6));
arg0->motion[7] = CharModelMotionCreate(temp_r30->unk3C, DATA_MAKE_NUM(DATADIR_MARIOMOT, 8));
arg0->motion[8] = CharModelMotionCreate(temp_r30->unk3C, DATA_MAKE_NUM(DATADIR_MARIOMOT, 10));
arg0->motion[9] = CharModelMotionCreate(temp_r30->unk3C, DATA_MAKE_NUM(DATADIR_MARIOMOT, 9));
arg0->motion[10] = CharModelMotionCreate(temp_r30->unk3C, DATA_MAKE_NUM(DATADIR_MARIOMOT, 2));
arg0->motion[11] = CharModelMotionCreate(temp_r30->unk3C, DATA_MAKE_NUM(DATADIR_MARIOMOT, 78));
arg0->motion[12] = CharModelMotionCreate(temp_r30->unk3C, DATA_MAKE_NUM(DATADIR_MARIOMOT, 27));
omSetTra(arg0, temp_r29 * -150 + (rand8() % 100) * 5, 0.0f, (rand8() % 100) * 5 + 250);
omSetRot(arg0, 0.0f, 180.0f, 0.0f);
Hu3DModelShadowSet(arg0->model[0]);
fn_1_119A0(arg0, 0, 0, 1, 1);
CharModelMotionDataClose(temp_r30->unk3C);
fn_1_1660C(lbl_1_bss_0, &temp_r30->unk50, arg0->model[0], temp_r30->unk3C);
fn_1_15DC8(&temp_r30->unk50);
temp_r30->unk04 = 1;
arg0->data = &lbl_1_bss_1DC[temp_r29];
arg0->func = fn_1_72CC;
}
void fn_1_79E0(void)
{
lbl_1_bss_68.unk04 = 1;
lbl_1_bss_68.unk08 = 1;
lbl_1_bss_68.unk14 = 0;
}
void fn_1_7A14(omObjData *arg0)
{
Mtx sp8;
StructBss68 *temp_r31;
StructBss8D4 *var_r29;
StructBss6BC *var_r25;
s32 var_r24;
s32 i;
temp_r31 = arg0->data;
var_r29 = &lbl_1_bss_8D4;
switch (temp_r31->unk04) {
case 1:
temp_r31->unk04 = 2;
for (i = 1; i < 7; i++) {
Hu3DModelPosSet(arg0->model[i], 0.0f, 0.0f, 0.0f);
Hu3DModelRotSet(arg0->model[i], 0.0f, 0.0f, 0.0f);
Hu3DModelScaleSet(arg0->model[i], 0.0f, 0.0f, 0.0f);
temp_r31->unk24[i] = -1.0f + rand8() % 3;
temp_r31->unk44[i] = 0.0f;
temp_r31->unk64[i] = -(50.0f * (i - 1));
temp_r31->unk84[i] = 0.0f;
temp_r31->unkA4[i] = 0.5f;
temp_r31->unkC4[i] = 0.0f;
}
fn_1_119A0(var_r29->unk00, 0, 3, 10, 0);
var_r25 = &lbl_1_bss_6BC[0];
fn_1_119A0(var_r25->unk00, 0, 1, 60, 1);
fn_1_119A0(var_r25->unk00, 1, 6, 60, 1);
break;
case 2:
if (fn_1_11890(var_r29->unk00, 0, 3, 90, 1) != 0) {
temp_r31->unk04 = 3;
Hu3DMotionTimeSet(var_r29->unk00->model[0], 90.0f);
Hu3DMotionSpeedSet(var_r29->unk00->model[0], 0.0f);
HuAudCharVoicePlay(lbl_1_bss_1DC[lbl_1_bss_944.unk10].unk3C, 0x123);
HuAudFXPlay(0x6D5);
omVibrate(lbl_1_bss_1DC[lbl_1_bss_944.unk10].unk2C, 120, 12, 0);
}
break;
case 3:
Hu3DModelObjMtxGet(var_r29->unk00->model[0], "g000m0-itemhook_M", sp8);
var_r24 = lbl_1_bss_944.unk10;
fn_1_6198(var_r24, 1);
for (i = 1; i < 7; i++) {
if (temp_r31->unk08 == 1 || (temp_r31->unk08 == 0 && temp_r31->unk64[i] > 0.0f)) {
temp_r31->unk64[i] += 10.0f;
}
if (temp_r31->unk64[i] > 0.0f) {
temp_r31->unk84[i] += 0.1f;
temp_r31->unk24[i] += rand8() % 5 - 2;
temp_r31->unk44[i] -= rand8() % 5 - 2 + 2.5f;
if (temp_r31->unkC4[i] == 0.0f) {
fn_1_119A0(arg0, i, i, 1, 1);
}
if (temp_r31->unkC4[i] < 8.0f) {
temp_r31->unkA4[i] += 0.025f;
}
else if (temp_r31->unkC4[i] < 23.0f) {
temp_r31->unkA4[i] = 0.7f;
}
else if (temp_r31->unkC4[i] < 31.0f) {
temp_r31->unkA4[i] -= 0.1f;
if (temp_r31->unkA4[i] < 0.0f) {
temp_r31->unkA4[i] = 0.0f;
}
}
temp_r31->unkC4[i] += 1.0f;
}
Hu3DModelPosSet(arg0->model[i], sp8[0][3] + temp_r31->unk24[i], sp8[1][3] + temp_r31->unk44[i], sp8[2][3] + temp_r31->unk64[i]);
Hu3DModelScaleSet(arg0->model[i], 1.5f * temp_r31->unk84[i], 1.5f * temp_r31->unk84[i], 1.5f * temp_r31->unk84[i]);
Hu3DModelTPLvlSet(arg0->model[i], temp_r31->unkA4[i]);
if (temp_r31->unkC4[i] >= 31.0f) {
temp_r31->unk24[i] = 0.0f;
temp_r31->unk44[i] = 0.0f;
temp_r31->unk64[i] = 0.0f;
temp_r31->unk84[i] = 0.0f;
temp_r31->unkA4[i] = 0.5f;
temp_r31->unkC4[i] = 0.0f;
}
}
if (temp_r31->unk14++ == 120) {
temp_r31->unk08 = 0;
Hu3DMotionSpeedSet(var_r29->unk00->model[0], 1.0f);
}
else if (temp_r31->unk14 >= 180) {
temp_r31->unk04 = 4;
}
break;
case 4:
temp_r31->unk04 = 0;
fn_1_119A0(var_r29->unk00, 0, 0, 30, 1);
break;
}
if (temp_r31->unk14 >= 10 && temp_r31->unk14 <= 120) {
fn_1_298(6, 8.0f);
}
}
void fn_1_82E0(omObjData *arg0)
{
fn_1_7A14(arg0);
}
void fn_1_8308(StructBss68 *arg0)
{
omObjData *temp_r29;
s32 i;
temp_r29 = arg0->unk00;
for (i = 1; i < 7; i++) {
Hu3DModelPosSet(temp_r29->model[i], 0.0f, 0.0f, 0.0f);
Hu3DModelRotSet(temp_r29->model[i], 0.0f, 0.0f, 0.0f);
Hu3DModelScaleSet(temp_r29->model[i], 0.0f, 0.0f, 0.0f);
fn_1_119A0(temp_r29, i, i, 1, 2);
arg0->unk24[i] = 0.0f;
arg0->unk44[i] = 0.0f;
arg0->unk64[i] = 0.0f;
arg0->unk84[i] = 0.0f;
arg0->unkA4[i] = 0.0f;
arg0->unkC4[i] = 0.0f;
}
arg0->unk04 = arg0->unk08 = arg0->unk0C = arg0->unk10 = 0;
arg0->unk14 = arg0->unk18 = arg0->unk1C = arg0->unk20 = 0;
}
void fn_1_84C4(omObjData *arg0)
{
s32 i;
for (i = 1; i < 7; i++) {
if (i % 2 == 0) {
arg0->model[i] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M437, 55));
arg0->motion[i] = Hu3DMotionIDGet(arg0->model[i]);
}
else {
arg0->model[i] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M437, 56));
arg0->motion[i] = Hu3DMotionIDGet(arg0->model[i]);
}
Hu3DModelPosSet(arg0->model[i], 0.0f, 0.0f, 0.0f);
Hu3DModelRotSet(arg0->model[i], 0.0f, 0.0f, 0.0f);
Hu3DModelScaleSet(arg0->model[i], 0.0f, 0.0f, 0.0f);
fn_1_119A0(arg0, i, i, 1, 2);
Hu3DModelLayerSet(arg0->model[i], 2);
}
arg0->data = &lbl_1_bss_68;
arg0->func = fn_1_82E0;
}
void fn_1_8684(void)
{
StructBss160 *var_r31;
var_r31 = &lbl_1_bss_160;
var_r31->unk14 = 0.0f;
var_r31->unk18 = 300.0f;
var_r31->unk1C = 1740.0f;
var_r31->unk2C = -10.0f;
var_r31->unk30 = 0.0f;
var_r31->unk34 = 0.0f;
var_r31->unk3C = 300.0f;
fn_1_12E14(var_r31, 200.0f);
}
void fn_1_8734(void)
{
StructBss160 *var_r31;
StructBss160 sp8;
var_r31 = &lbl_1_bss_160;
sp8.unk08 = 0.0f;
sp8.unk0C = 200.0f;
sp8.unk10 = -50.0f;
sp8.unk20 = 5.0f;
sp8.unk24 = 0.0f;
sp8.unk28 = 0.0f;
sp8.unk38 = 200.0f;
fn_1_15544(var_r31, &sp8, var_r31->unk40++, 30.0f, 5.0f);
}
void fn_1_8824(void)
{
StructBss160 *var_r31;
var_r31 = &lbl_1_bss_160;
var_r31->unk14 = 0.0f;
var_r31->unk18 = 200.0f;
var_r31->unk1C = -50.0f;
var_r31->unk2C = 5.0f;
var_r31->unk30 = 0.0f;
var_r31->unk34 = 0.0f;
var_r31->unk3C = 200.0f;
fn_1_12E14(var_r31, 200.0f);
}
void fn_1_88D4(void)
{
StructBss160 *var_r31;
var_r31 = &lbl_1_bss_160;
var_r31->unk14 = 0.0f;
var_r31->unk18 = 300.0f;
var_r31->unk1C = -550.0f;
var_r31->unk2C = -15.0f;
var_r31->unk30 = 0.0f;
var_r31->unk34 = 0.0f;
var_r31->unk3C = 1200.0f;
fn_1_12E14(var_r31, 45.0f);
}
void fn_1_8984(void)
{
StructBss160 *var_r31;
var_r31 = &lbl_1_bss_160;
var_r31->unk14 = 0.0f;
var_r31->unk18 = 150.0f;
var_r31->unk1C = -550.0f;
var_r31->unk2C = -15.0f;
var_r31->unk30 = 0.0f;
var_r31->unk34 = 0.0f;
var_r31->unk3C = 1200.0f;
fn_1_12E14(var_r31, 30.0f);
}
void fn_1_8A34(void)
{
StructBss160 *var_r31;
StructBss160 sp8;
var_r31 = &lbl_1_bss_160;
sp8.unk08 = 0.0f;
sp8.unk0C = 300.0f;
sp8.unk10 = 0.0f;
sp8.unk20 = 0.0f;
sp8.unk24 = 0.0f;
sp8.unk28 = 0.0f;
sp8.unk38 = 1200.0f;
fn_1_13658(var_r31, &sp8, var_r31->unk40++, 30.0f, 10.0f);
}
void fn_1_8B24(void)
{
StructBss160 *var_r31;
var_r31 = &lbl_1_bss_160;
var_r31->unk14 = 0.0f;
var_r31->unk18 = 150.0f;
var_r31->unk1C = -550.0f;
var_r31->unk2C = -15.0f;
var_r31->unk30 = 0.0f;
var_r31->unk34 = 0.0f;
var_r31->unk3C = 1200.0f;
fn_1_12E14(var_r31, 20.0f);
}
void fn_1_8BD4(void)
{
StructBss160 *var_r31;
var_r31 = &lbl_1_bss_160;
var_r31->unk14 = 0.0f;
var_r31->unk18 = 300.0f;
var_r31->unk1C = -550.0f;
var_r31->unk2C = -15.0f;
var_r31->unk30 = 0.0f;
var_r31->unk34 = 0.0f;
var_r31->unk3C = 1200.0f;
fn_1_12E14(var_r31, 20.0f);
}
void fn_1_8C84(s32 arg0)
{
StructBss160 *var_r23;
var_r23 = &lbl_1_bss_160;
fn_1_12ABC(var_r23);
switch (arg0) {
case 0:
fn_1_8A4(fn_1_8684);
break;
case 1:
fn_1_8A4(fn_1_8734);
break;
case 2:
fn_1_8A4(fn_1_8824);
break;
case 3:
fn_1_8A4(fn_1_88D4);
break;
case 4:
fn_1_8A4(fn_1_8984);
break;
case 5:
fn_1_8A4(fn_1_8A34);
break;
case 10:
fn_1_8A4(fn_1_8B24);
break;
case 11:
fn_1_8A4(fn_1_8BD4);
break;
}
}
void fn_1_8DA4(void)
{
float sp18[] = { 0.0f, 0.0f };
s32 var_r31;
lbl_1_bss_C = 0;
fn_1_2A94(sp18, MAKE_MESSID(29, 0));
fn_1_2A94(sp18, MAKE_MESSID(29, 1));
var_r31 = fn_1_20F8((580.0f - sp18[0]) / 2, 80.0f, sp18[0], sp18[1], 2);
HuAudFXPlay(0x6D1);
fn_1_4BAC(1, 10, 0, 1);
fn_1_2A10(var_r31, MAKE_MESSID(29, 0));
fn_1_280C(var_r31, 0);
fn_1_4BAC(1, 10, 0, 1);
fn_1_2A10(var_r31, MAKE_MESSID(29, 1));
fn_1_280C(var_r31, 0);
fn_1_4BAC(0, 10, 1, 1);
fn_1_27A4(var_r31);
lbl_1_bss_C = 1;
HuPrcEnd();
}
void fn_1_9320(void)
{
float sp10[] = { 0.0f, 0.0f };
s32 var_r31;
lbl_1_bss_C = 0;
fn_1_2A94(sp10, MAKE_MESSID(29, 4));
var_r31 = fn_1_20F8((580.0f - sp10[0]) / 2, 100.0f, sp10[0], sp10[1], 2);
HuAudFXPlay(0x6D2);
fn_1_4BAC(2, 10, 0, 1);
fn_1_2A10(var_r31, MAKE_MESSID(29, 4));
fn_1_280C(var_r31, 60);
fn_1_2BAC(3);
fn_1_280C(var_r31, 60);
fn_1_4BAC(0, 30, 1, 1);
fn_1_27A4(var_r31);
lbl_1_bss_C = 1;
HuPrcEnd();
}
void fn_1_96D8(void)
{
float sp10[] = { 0.0f, 0.0f };
s32 var_r31;
lbl_1_bss_C = 0;
fn_1_2A94(sp10, MAKE_MESSID(29, 64));
var_r31 = fn_1_20F8(550.0f - sp10[0], 340.0f, sp10[0], sp10[1], 1);
HuAudFXPlayVolPan(0x65, 0x7F, 0x60);
fn_1_51DC(4, 10, 0, 1);
fn_1_2A10(var_r31, MAKE_MESSID(29, 64));
fn_1_28F4(var_r31);
fn_1_51DC(0, 10, 1, 1);
fn_1_27A4(var_r31);
lbl_1_bss_C = 1;
HuPrcEnd();
}
void fn_1_9B2C(s32 arg0)
{
float sp10[2] = { 0.0f, 0.0f };
s32 sp18[] = { MAKE_MESSID(29, 6), MAKE_MESSID(29, 66), MAKE_MESSID(29, 68), MAKE_MESSID(29, 70), MAKE_MESSID(29, 72), MAKE_MESSID(29, 74),
MAKE_MESSID(29, 76), -1 };
s32 var_r31;
if (sp18[arg0] == -1) {
return;
}
fn_1_2A94(sp10, sp18[arg0]);
var_r31 = fn_1_20F8(20.0f, 360.0f, sp10[0], sp10[1], 0);
HuAudFXPlayVolPan(0x3E, 0x7F, 0x20);
fn_1_5148(2, 10, 0, 1);
fn_1_5270(5, 10, 2, 1);
fn_1_2A10(var_r31, sp18[arg0]);
fn_1_280C(var_r31, 0);
fn_1_5148(0, 10, 1, 1);
fn_1_5270(5, 10, 1, 1);
fn_1_27A4(var_r31);
}
void fn_1_9FA0(void)
{
float sp10[2] = { 0.0f, 0.0f };
s32 sp18[] = { MAKE_MESSID(29, 5), MAKE_MESSID(29, 65), MAKE_MESSID(29, 67), MAKE_MESSID(29, 69), MAKE_MESSID(29, 71), MAKE_MESSID(29, 73),
MAKE_MESSID(29, 75), MAKE_MESSID(29, 77) };
s32 i;
s32 var_r30;
lbl_1_bss_C = 0;
for (i = 0; i < 8; i++) {
fn_1_2A94(sp10, sp18[i]);
}
var_r30 = fn_1_20F8(550.0f - sp10[0], 340.0f, sp10[0], sp10[1], 1);
HuAudFXPlayVolPan(0x65, 0x7F, 0x60);
for (i = 0; i < 8; i++) {
fn_1_51DC(4, 10, 0, 1);
fn_1_2A10(var_r30, sp18[i]);
fn_1_280C(var_r30, 0);
fn_1_51DC(0, 10, 1, 1);
fn_1_9B2C(i);
}
fn_1_27A4(var_r30);
lbl_1_bss_C = 1;
HuPrcEnd();
}
void fn_1_A440(void)
{
float sp10[] = { 0.0f, 0.0f };
s32 var_r31;
lbl_1_bss_C = 0;
fn_1_2A94(sp10, MAKE_MESSID(29, 78));
var_r31 = fn_1_20F8((580.0f - sp10[0]) / 2, 80.0f, sp10[0], sp10[1], 2);
HuAudFXPlay(0x6D2);
fn_1_4BAC(1, 10, 0, 1);
fn_1_2A10(var_r31, MAKE_MESSID(29, 78));
fn_1_280C(var_r31, 0);
fn_1_4BAC(0, 10, 1, 1);
fn_1_27A4(var_r31);
lbl_1_bss_C = 1;
HuPrcEnd();
}
void fn_1_A860(void) { }
s32 fn_1_A864(void)
{
if (fn_1_11854(&lbl_1_bss_50, 0) == 80) {
fn_1_8C84(1);
lbl_1_bss_968.unk00 = HuAudSeqPlay(6);
}
if (fn_1_11854(&lbl_1_bss_50, 0) == 115) {
fn_1_8C84(2);
}
if (fn_1_11854(&lbl_1_bss_50, 0) == 180) {
fn_1_8C84(3);
}
if (fn_1_11854(&lbl_1_bss_50, 0) == 0) {
fn_1_2BAC(2);
}
if (fn_1_11854(&lbl_1_bss_50, 0) == 150) {
fn_1_2BAC(1);
}
if (fn_1_11854(&lbl_1_bss_50, 1) != 0) {
return fn_1_116C4(&lbl_1_bss_50);
}
return 0;
}
void fn_1_A9E8(void)
{
HuPrcChildCreate(fn_1_8DA4, 100, 0x2000, 0, HuPrcCurrentGet());
}
s32 fn_1_AA24(void)
{
if (lbl_1_bss_C != 0 && fn_1_11854(&lbl_1_bss_50, 1) != 0) {
return fn_1_116C4(&lbl_1_bss_50);
}
return 0;
}
void fn_1_AA80(void)
{
HuPrcChildCreate(fn_1_9320, 100, 0x2000, 0, HuPrcCurrentGet());
}
s32 fn_1_AABC(void)
{
if (lbl_1_bss_C != 0 && fn_1_11854(&lbl_1_bss_50, 1) != 0) {
return fn_1_116C4(&lbl_1_bss_50);
}
return 0;
}
void fn_1_AB18(void)
{
fn_1_8C84(10);
}
s32 fn_1_AB68(void)
{
if (fn_1_11854(&lbl_1_bss_50, 1) != 0) {
return fn_1_116C4(&lbl_1_bss_50);
}
return 0;
}
void fn_1_ABB0(void)
{
HuPrcChildCreate(fn_1_96D8, 100, 0x2000, 0, HuPrcCurrentGet());
}
s32 fn_1_ABEC(void)
{
if (lbl_1_bss_C != 0 && fn_1_11854(&lbl_1_bss_50, 1) != 0) {
if (lbl_1_bss_10 != 0) {
return fn_1_116C4(&lbl_1_bss_50);
}
else {
return fn_1_117C0(&lbl_1_bss_50, 6);
}
}
return 0;
}
void fn_1_AC70(void)
{
fn_1_4BAC(4, 60, 1, 1);
HuPrcChildCreate(fn_1_9FA0, 100, 0x2000, 0, HuPrcCurrentGet());
}
s32 fn_1_ACCC(void)
{
if (lbl_1_bss_C != 0 && fn_1_11854(&lbl_1_bss_50, 1) != 0) {
return fn_1_116C4(&lbl_1_bss_50);
}
return 0;
}
void fn_1_AD28(void)
{
fn_1_8C84(11);
fn_1_4BAC(0, 60, 1, 0);
}
s32 fn_1_AD98(void)
{
if (fn_1_11854(&lbl_1_bss_50, 1) != 0) {
return fn_1_116C4(&lbl_1_bss_50);
}
return 0;
}
void fn_1_ADE0(void)
{
HuPrcChildCreate(fn_1_A440, 100, 0x2000, 0, HuPrcCurrentGet());
}
s32 fn_1_AE1C(void)
{
if (lbl_1_bss_C != 0 && fn_1_11854(&lbl_1_bss_50, 1) != 0) {
return fn_1_116C4(&lbl_1_bss_50);
}
return 0;
}
void fn_1_AE78(void)
{
StructBss6BC *var_r30;
StructBss1DC *sp8;
StructBss8FC *var_r29;
s32 i;
fn_1_8C84(5);
for (i = 0; i < 4; i++) {
fn_1_610C(i, 1);
}
var_r30 = &lbl_1_bss_6BC[1];
sp8 = &lbl_1_bss_1DC[i];
var_r29 = &lbl_1_bss_8FC;
fn_1_15DC8(&var_r30->unk24);
fn_1_15CD0(&var_r30->unk24, var_r29->unk00->model[2]);
HuAudSeqFadeOut(lbl_1_bss_968.unk00, 1000);
}
s32 fn_1_AF4C(void)
{
Vec sp20[] = { { -200.0f, 0.0f, -250.0f }, { -340.0f, 0.0f, -250.0f }, { -490.0f, 0.0f, -250.0f }, { -640.0f, 0.0f, -250.0f } };
s32 i;
for (i = 0; i < 4; i++) {
if (lbl_1_bss_1DC[i].unk3C == 7) {
fn_1_11CE0(lbl_1_bss_1DC[i].unk00, sp20[i], 90.0f, 9.0f, 30.0f, 15.0f, 3);
}
else {
fn_1_11CE0(lbl_1_bss_1DC[i].unk00, sp20[i], 90.0f, 9.0f, 30.0f, 15.0f, 1);
}
}
if (fn_1_11854(&lbl_1_bss_50, 1) != 0) {
fn_1_4BAC(4, 60, 1, 1);
for (i = 0; i < 4; i++) {
fn_1_11B18(lbl_1_bss_1DC[i].unk00, 0, 0, 10, 1);
}
return fn_1_116C4(&lbl_1_bss_50);
}
return 0;
}
StructData204 lbl_1_data_204[] = { { fn_1_A860, fn_1_A864, 300 }, { fn_1_A9E8, fn_1_AA24, 60 }, { fn_1_AA80, fn_1_AABC, 60 },
{ fn_1_AB18, fn_1_AB68, 45 }, { fn_1_ABB0, fn_1_ABEC, 60 }, { fn_1_AC70, fn_1_ACCC, 60 }, { fn_1_AD28, fn_1_AD98, 45 },
{ fn_1_ADE0, fn_1_AE1C, 60 }, { fn_1_AE78, fn_1_AF4C, 120 }, { NULL, NULL, -1 } };
void fn_1_B194(void)
{
fn_1_11668(&lbl_1_bss_50, lbl_1_data_204);
}
s32 fn_1_B1C4(void)
{
if (lbl_1_bss_50.unk08 != NULL) {
lbl_1_bss_50.unk08();
lbl_1_bss_50.unk08 = NULL;
}
if (lbl_1_bss_50.unk0C != NULL) {
return lbl_1_bss_50.unk0C();
}
return 0;
}
float fn_1_B250(void)
{
return lbl_1_bss_15C - lbl_1_bss_158;
}
void fn_1_B270(void)
{
StructBss944 *var_r30;
StructBss1DC *temp_r31;
var_r30 = &lbl_1_bss_944;
temp_r31 = &lbl_1_bss_1DC[var_r30->unk10];
if (fn_1_B250() <= 3.0f) {
temp_r31->unk00->work[1] = fn_1_B250() - 1.0f;
if (temp_r31->unk00->work[1] == 0) {
temp_r31->unk00->work[1] = rand8() % 3 + 1;
}
}
else {
temp_r31->unk00->work[1] = rand8() % 3 + 1;
}
temp_r31->unk00->work[2] = 0;
temp_r31->unk00->work[3] = rand8() % 60 + 60;
}
s32 fn_1_B3F0(s32 arg0)
{
StructBss944 *var_r30;
StructBss1DC *temp_r31;
float temp_f31;
var_r30 = &lbl_1_bss_944;
temp_r31 = &lbl_1_bss_1DC[var_r30->unk10];
temp_f31 = temp_r31->unk00->trans.y - temp_r31->unk4C;
switch (arg0) {
case 1:
if (temp_f31 > 80.0f && temp_f31 <= 135.0f) {
return 1;
}
break;
case 2:
if (temp_f31 > 190.0f && temp_f31 <= 245.0f) {
return 1;
}
break;
case 3:
if (temp_f31 > 300.0f) {
return 1;
}
break;
}
return 0;
}
float fn_1_B4F4(s32 arg0, s32 arg1)
{
StructBss1DC *temp_r31;
temp_r31 = &lbl_1_bss_1DC[arg0];
if (temp_r31->unk34 != 0) {
if (arg1 > temp_r31->unk00->work[3]) {
if (temp_r31->unk00->work[2] == 0) {
temp_r31->unk00->work[2] = 1;
fn_1_6580(arg0, 1, 1);
}
else if (fn_1_B3F0(temp_r31->unk00->work[1]) != 0) {
fn_1_6580(arg0, 1, 0);
}
}
}
else if ((HuPadBtnDown[temp_r31->unk40] & 0x100) || ((HuPadBtnDown[temp_r31->unk40] & 0x40) && temp_r31->unk0C == 2)) {
fn_1_6580(arg0, 1, 0);
}
return temp_r31->unk0C;
}
void fn_1_B7E0(void)
{
StructBss160 *var_r31;
StructBss160 sp8;
var_r31 = &lbl_1_bss_160;
sp8.unk08 = 0.0f;
sp8.unk0C = 300.0f;
sp8.unk10 = 0.0f;
sp8.unk20 = 0.0f;
sp8.unk24 = 0.0f;
sp8.unk28 = 0.0f;
sp8.unk38 = 1200.0f;
fn_1_13658(var_r31, &sp8, var_r31->unk40++, 30.0f, 10.0f);
}
void fn_1_B8D0(void)
{
StructBss160 *var_r31;
var_r31 = &lbl_1_bss_160;
var_r31->unk14 = 0.0f;
var_r31->unk18 = 300.0f;
var_r31->unk1C = -350.0f + 450.0f * fn_1_36B4();
var_r31->unk2C = 0.0f;
var_r31->unk30 = 0.0f;
var_r31->unk34 = 0.0f;
var_r31->unk3C = 1200.0f;
fn_1_12E14(var_r31, 10.0f);
}
void fn_1_BC18(void)
{
StructBss160 *var_r31;
var_r31 = &lbl_1_bss_160;
var_r31->unk14 = 0.0f;
var_r31->unk18 = 300.0f;
var_r31->unk1C = -50.0f;
var_r31->unk2C = -15.0f;
var_r31->unk30 = 0.0f;
var_r31->unk34 = 0.0f;
var_r31->unk3C = 1200.0f;
fn_1_12E14(var_r31, 5.0f);
}
void fn_1_BCC8(void)
{
StructBss160 *var_r31;
StructBss160 sp8;
var_r31 = &lbl_1_bss_160;
sp8.unk08 = 0.0f;
sp8.unk0C = 225.0f;
sp8.unk10 = -800.0f;
sp8.unk20 = 0.0f;
sp8.unk24 = 0.0f;
sp8.unk28 = 0.0f;
sp8.unk38 = 1200.0f;
fn_1_15544(var_r31, &sp8, var_r31->unk40++, 30.0f, 10.0f);
}
void fn_1_BDB8(s32 arg0)
{
StructBss160 *var_r27;
var_r27 = &lbl_1_bss_160;
fn_1_12ABC(var_r27);
switch (arg0) {
case 0:
fn_1_8A4(fn_1_B7E0);
break;
case 1:
fn_1_8A4(fn_1_B8D0);
break;
case 2:
fn_1_8A4(fn_1_BC18);
break;
case 3:
fn_1_8A4(fn_1_BCC8);
break;
}
}
void fn_1_BE80(void)
{
s32 sp1C[] = { MAKE_MESSID(29, 79), MAKE_MESSID(29, 80), MAKE_MESSID(29, 81), MAKE_MESSID(29, 82) };
float sp14[2] = { 0.0f, 0.0f };
s32 temp_r27;
s32 var_r30;
temp_r27 = rand8() % 4;
lbl_1_bss_C = 0;
fn_1_2A94(sp14, sp1C[temp_r27]);
var_r30 = fn_1_20F8((580.0f - sp14[0]) / 2, 100.0f, sp14[0], sp14[1], 2);
HuAudFXPlay(0x6D2);
fn_1_4928(1);
fn_1_2A10(var_r30, sp1C[temp_r27]);
fn_1_280C(var_r30, 60);
lbl_1_bss_C = 1;
fn_1_280C(var_r30, 60);
fn_1_27A4(var_r30);
HuPrcEnd();
}
void fn_1_C248(void)
{
s32 sp1C[] = { MAKE_MESSID(29, 83), MAKE_MESSID(29, 84), MAKE_MESSID(29, 85) };
float sp14[2] = { 0.0f, 0.0f };
s32 temp_r27;
s32 var_r31;
temp_r27 = rand8() % 3;
lbl_1_bss_C = 0;
fn_1_2A94(sp14, sp1C[temp_r27]);
var_r31 = fn_1_20F8((580.0f - sp14[0]) / 2, 100.0f, sp14[0], sp14[1], 2);
HuAudFXPlay(0x6D2);
fn_1_4928(1);
fn_1_2A10(var_r31, sp1C[temp_r27]);
fn_1_280C(var_r31, 60);
lbl_1_bss_C = 1;
fn_1_280C(var_r31, 60);
fn_1_27A4(var_r31);
HuPrcEnd();
}
void fn_1_C610(void)
{
float sp14[2] = { 0.0f, 0.0f };
s32 var_r31;
lbl_1_bss_C = 0;
fn_1_2A94(sp14, MAKE_MESSID(29, 86));
var_r31 = fn_1_20F8((580.0f - sp14[0]) / 2, 80.0f, sp14[0], sp14[1], 2);
HuAudFXPlay(0x6D2);
fn_1_4AF8(4);
lbl_1_bss_C = 1;
fn_1_2A10(var_r31, MAKE_MESSID(29, 86));
fn_1_280C(var_r31, 30);
fn_1_27A4(var_r31);
lbl_1_bss_C = 2;
HuPrcEnd();
}
void fn_1_C9C4(void)
{
float sp10[] = { 0.0f, 0.0f };
s32 var_r31;
fn_1_2A94(sp10, MAKE_MESSID(29, 87));
var_r31 = fn_1_20F8(580.0f - sp10[0] - 40.0f, 200.0f, sp10[0], sp10[1], 1);
HuAudFXPlayVolPan(0x65, 0x7F, 0x60);
fn_1_51DC(9, 10, 0, 0);
fn_1_2A10(var_r31, MAKE_MESSID(29, 87));
fn_1_280C(var_r31, 30);
fn_1_27A4(var_r31);
HuPrcEnd();
}
void fn_1_CD20(void)
{
float sp10[] = { 0.0f, 0.0f };
s32 var_r31;
fn_1_2A94(sp10, MAKE_MESSID(29, 88));
var_r31 = fn_1_20F8(40.0f, 200.0f, sp10[0], sp10[1], 0);
HuAudFXPlayVolPan(0x3E, 0x7F, 0x20);
fn_1_5148(4, 10, 0, 0);
fn_1_2A10(var_r31, MAKE_MESSID(29, 88));
fn_1_280C(var_r31, 30);
fn_1_27A4(var_r31);
HuPrcEnd();
}
void fn_1_D03C(void)
{
s32 sp18[] = { MAKE_MESSID(29, 89), MAKE_MESSID(29, 90), MAKE_MESSID(29, 91) };
float sp10[2] = { 0.0f, 0.0f };
s32 temp_r28;
s32 var_r31;
temp_r28 = rand8() % 3;
fn_1_2A94(sp10, sp18[temp_r28]);
var_r31 = fn_1_20F8((580.0f - sp10[0]) / 2, 100.0f, sp10[0], sp10[1], 2);
HuAudFXPlay(0x6D6);
fn_1_2A10(var_r31, sp18[temp_r28]);
fn_1_280C(var_r31, 120);
fn_1_27A4(var_r31);
HuPrcEnd();
}
void fn_1_D3C0(void)
{
float sp10[] = { 0.0f, 0.0f };
s32 var_r31;
lbl_1_bss_C = 0;
fn_1_2A94(sp10, MAKE_MESSID(29, 92));
var_r31 = fn_1_20F8((580.0f - sp10[0]) / 2, 80.0f, sp10[0], sp10[1], 2);
HuAudFXPlay(0x6D6);
fn_1_4BAC(1, 10, 0, 1);
fn_1_2A10(var_r31, MAKE_MESSID(29, 92));
fn_1_280C(var_r31, 120);
fn_1_4BAC(0, 30, 1, 1);
fn_1_27A4(var_r31);
lbl_1_bss_C = 1;
HuPrcEnd();
}
void fn_1_D754(void)
{
Mtx sp8;
s32 var_r26;
s32 i;
StructBss944 *var_r29;
StructBss8FC *var_r24;
StructBss1DC *temp_r27;
StructBss1DC *temp_r25;
StructBss1DC *var_r23;
var_r29 = &lbl_1_bss_944;
var_r24 = &lbl_1_bss_8FC;
temp_r27 = &lbl_1_bss_1DC[var_r29->unk10];
for (i = 0; i < 4; i++) {
if (i != var_r29->unk10) {
temp_r25 = &lbl_1_bss_1DC[i];
fn_1_15DC8(&temp_r25->unk50);
fn_1_15CD0(&temp_r25->unk50, temp_r27->unk00->model[0]);
temp_r25->unk50.unkE4->trans.z = 10.0f;
}
else {
fn_1_15DC8(&temp_r27->unk50);
}
}
if (var_r29->unk20 != 0) {
lbl_1_bss_38.unk14 = 180;
var_r26 = var_r29->unk10 - 1;
if (var_r26 < 0) {
var_r26 = 3;
}
var_r23 = &lbl_1_bss_1DC[var_r26];
var_r23->unk4C = 0.0f;
fn_1_6580(var_r26, 1, 2);
}
Hu3DModelObjMtxGet(var_r24->unk00->model[0], "m437a01-chara-point", sp8);
temp_r27->unk4C = sp8[1][3];
fn_1_6580(var_r29->unk10, 1, 1);
}
s32 fn_1_D930(void)
{
s32 var_r25 = 4;
StructBss944 *var_r31 = &lbl_1_bss_944;
Vec sp5C[] = { { 5.0f, 0.0f, -250.0f }, { -175.0f, 0.0f, -250.0f }, { -325.0f, 0.0f, -250.0f }, { -490.0f, 0.0f, -250.0f } };
StructBss1DC *temp_r27;
StructBss1DC *temp_r30;
s32 var_r28;
s32 var_r26;
s32 i;
var_r28 = var_r31->unk10;
if (var_r31->unk20 != 0) {
var_r25 = 3;
}
for (i = 0; i < var_r25; i++) {
temp_r27 = &lbl_1_bss_1DC[var_r28];
if (i == 0) {
fn_1_11CE0(temp_r27->unk00, sp5C[i], 0.0f, 4.5f, 10.0f, 5.0f, 0);
}
else if (fn_1_11854(&lbl_1_bss_38, 0) >= i * 5 + 10) {
fn_1_11CE0(temp_r27->unk00, sp5C[i], 90.0f, 9.0f, 30.0f, 15.0f, 2);
}
var_r28++;
if (var_r28 >= 4) {
var_r28 = 0;
}
}
if (var_r31->unk20 != 0) {
Vec sp44[] = { { 0.0f, 0.0f, -50.0f }, { -510.0f, 0.0f, -250.0f } };
var_r26 = var_r31->unk10 - 1;
if (var_r26 < 0) {
var_r26 = 3;
}
temp_r30 = &lbl_1_bss_1DC[var_r26];
if (fn_1_11854(&lbl_1_bss_38, 0) <= 60) {
fn_1_11CE0(temp_r30->unk00, sp44[0], -1.0f, 9.0f, 10.0f, 15.0f, 0);
}
else if (temp_r30->unk3C == 7) {
fn_1_11CE0(temp_r30->unk00, sp44[1], 90.0f, 9.0f, 30.0f, 15.0f, 3);
}
else {
fn_1_11CE0(temp_r30->unk00, sp44[1], 90.0f, 9.0f, 30.0f, 15.0f, 1);
}
}
if (fn_1_11854(&lbl_1_bss_38, 1) != 0) {
var_r31->unk20 = 1;
return fn_1_116C4(&lbl_1_bss_38);
}
}
void fn_1_DCEC(void)
{
fn_1_B270();
fn_1_BDB8(1);
fn_1_1184(5);
}
s32 fn_1_DEC4(void)
{
StructBss944 *var_r24;
var_r24 = &lbl_1_bss_944;
fn_1_11854(&lbl_1_bss_38, 1);
if (fn_1_11854(&lbl_1_bss_38, 0) <= 10) {
return 0;
}
if (fn_1_11BC() != 0) {
return fn_1_117C0(&lbl_1_bss_38, 8);
}
if (fn_1_B4F4(var_r24->unk10, fn_1_11854(&lbl_1_bss_38, 0)) == 5.0f) {
fn_1_11E0();
return fn_1_116C4(&lbl_1_bss_38);
}
return 0;
}
void fn_1_E2A8(void)
{
if (fn_1_36B4() < 0.75f) {
lbl_1_bss_38.unk14 = 60;
}
else {
lbl_1_bss_38.unk14 = 120;
}
}
s32 fn_1_E598(void)
{
if (fn_1_11854(&lbl_1_bss_38, 1) != 0) {
if (fn_1_3990()) {
return fn_1_117C0(&lbl_1_bss_38, 5);
}
else {
return fn_1_116C4(&lbl_1_bss_38);
}
}
return 0;
}
void fn_1_E634(void)
{
if (fn_1_36B4() < 0.75f) {
HuPrcChildCreate(fn_1_BE80, 100, 0x2000, 0, HuPrcCurrentGet());
}
else {
HuPrcChildCreate(fn_1_C248, 100, 0x2000, 0, HuPrcCurrentGet());
}
}
s32 fn_1_E944(void)
{
if (lbl_1_bss_C != 0 && fn_1_11854(&lbl_1_bss_38, 1) != 0) {
return fn_1_116C4(&lbl_1_bss_38);
}
return 0;
}
void fn_1_E9A0(void)
{
StructBss944 *var_r30;
StructBss1DC *temp_r29;
s32 i;
var_r30 = &lbl_1_bss_944;
temp_r29 = &lbl_1_bss_1DC[var_r30->unk10];
fn_1_BDB8(0);
for (i = 0; i < 4; i++) {
if (i != var_r30->unk10) {
StructBss1DC *var_r28 = &lbl_1_bss_1DC[i];
fn_1_15DC8(&temp_r29->unk50);
fn_1_15CD0(&temp_r29->unk50, var_r28->unk00->model[0]);
}
}
for (i = 0; i < 4; i++) {
if (i != temp_r29->unk00->work[0]) {
StructBss1DC *var_r27 = &lbl_1_bss_1DC[i];
fn_1_11B18(var_r27->unk00, 0, 0, 15, 0);
}
}
}
s32 fn_1_EAA4(void)
{
StructBss944 *var_r30;
StructBss1DC *sp8;
var_r30 = &lbl_1_bss_944;
sp8 = &lbl_1_bss_1DC[var_r30->unk10];
if (fn_1_11854(&lbl_1_bss_38, 1) != 0) {
var_r30->unk10++;
if (var_r30->unk10 >= 4) {
var_r30->unk10 = 0;
}
return fn_1_117C0(&lbl_1_bss_38, 0);
}
return 0;
}
void fn_1_EB38(void)
{
StructBss8D4 *sp8;
StructBss6BC *var_r31;
lbl_1_bss_8D4.unk08 = 1;
var_r31 = &lbl_1_bss_6BC[1];
var_r31->unk04 = 0;
var_r31->unk08 = 0;
var_r31->unk14 = 0;
lbl_1_bss_C = 0;
fn_1_3B50();
HuPrcChildCreate(fn_1_C610, 100, 0x2000, 0, HuPrcCurrentGet());
HuPrcChildCreate(fn_1_C9C4, 100, 0x2000, 0, HuPrcCurrentGet());
HuPrcChildCreate(fn_1_CD20, 100, 0x2000, 0, HuPrcCurrentGet());
}
s32 fn_1_EC10(void)
{
StructBss1DC *var_r29;
StructBss8D4 *var_r31;
s32 i;
if (lbl_1_bss_C == 1) {
lbl_1_bss_C = 0;
for (i = 0; i < 4; i++) {
var_r29 = &lbl_1_bss_1DC[i];
fn_1_119A0(var_r29->unk00, 0, 12, 1, 0);
}
}
var_r31 = &lbl_1_bss_8D4;
if (var_r31->unk00->motion[8] == Hu3DMotionIDGet(var_r31->unk00->model[0]) && Hu3DMotionTimeGet(var_r31->unk00->model[0]) >= 5.0f) {
Hu3DMotionTimeSet(var_r31->unk00->model[0], 5.0f);
Hu3DMotionSpeedSet(var_r31->unk00->model[0], 0.0f);
fn_1_5148(0, 30, 1, 0);
fn_1_51DC(0, 30, 1, 0);
fn_1_5270(5, 10, 1, 1);
}
if (lbl_1_bss_C == 2 && fn_1_11854(&lbl_1_bss_38, 1) != 0) {
return fn_1_116C4(&lbl_1_bss_38);
}
return 0;
}
void fn_1_EDD4(void)
{
StructBss944 *var_r30;
StructBss8D4 *var_r29;
StructBss1DC *temp_r31;
var_r30 = &lbl_1_bss_944;
var_r29 = &lbl_1_bss_8D4;
temp_r31 = &lbl_1_bss_1DC[var_r30->unk10];
fn_1_4BAC(0, 60, 1, 1);
Hu3DMotionSpeedSet(var_r29->unk00->model[0], 1.0f);
temp_r31->unk00->rot.y = 0.0f;
temp_r31->unk1C = 0;
fn_1_BDB8(3);
}
s32 fn_1_EEA0(void)
{
StructBss944 *var_r30;
StructBss1DC *temp_r31;
var_r30 = &lbl_1_bss_944;
temp_r31 = &lbl_1_bss_1DC[var_r30->unk10];
if (temp_r31->unk1C++ == 0) {
fn_1_11B18(temp_r31->unk00, 0, 10, 30, 1);
}
else if (temp_r31->unk1C > 0) {
temp_r31->unk00->rot.y = fn_1_11348(0.0f, 180.0f, temp_r31->unk1C, 30.0f);
if (temp_r31->unk1C >= 30) {
fn_1_11B18(temp_r31->unk00, 0, 0, 30, 1);
}
}
if (fn_1_11854(&lbl_1_bss_38, 1) != 0) {
return fn_1_116C4(&lbl_1_bss_38);
}
return 0;
}
void fn_1_EFCC(void)
{
StructBss944 *var_r28;
s32 var_r29;
s32 i;
fn_1_79E0();
var_r28 = &lbl_1_bss_944;
var_r29 = var_r28->unk10;
for (i = 0; i < 4; i++) {
if (i >= 1) {
fn_1_70F8(var_r29, i);
}
var_r29++;
if (var_r29 >= 4) {
var_r29 = 0;
}
}
HuPrcChildCreate(fn_1_D03C, 100, 0x2000, 0, HuPrcCurrentGet());
}
s32 fn_1_F0B8(void)
{
if (fn_1_11854(&lbl_1_bss_38, 1) != 0) {
return 1;
}
return 0;
}
void fn_1_F0F8(void)
{
lbl_1_bss_8D4.unk08 = 1;
fn_1_4BAC(0, 60, 1, 1);
}
s32 fn_1_F144(void)
{
if (fn_1_11854(&lbl_1_bss_38, 1) != 0) {
return fn_1_116C4(&lbl_1_bss_38);
}
return 0;
}
void fn_1_F18C(void)
{
StructBss944 *var_r30;
StructBss1DC *temp_r31;
var_r30 = &lbl_1_bss_944;
temp_r31 = &lbl_1_bss_1DC[var_r30->unk10];
HuPrcChildCreate(fn_1_D3C0, 100, 0x2000, 0, HuPrcCurrentGet());
temp_r31->unk00->rot.y = 0.0f;
temp_r31->unk1C = 0;
fn_1_5148(0, 10, 1, 0);
fn_1_51DC(0, 10, 1, 0);
fn_1_5270(5, 10, 1, 1);
fn_1_BDB8(3);
}
s32 fn_1_F294(void)
{
StructBss944 *var_r30;
StructBss1DC *temp_r31;
var_r30 = &lbl_1_bss_944;
temp_r31 = &lbl_1_bss_1DC[var_r30->unk10];
if (temp_r31->unk1C++ == 60) {
fn_1_11B18(temp_r31->unk00, 0, 10, 30, 1);
}
else if (temp_r31->unk1C > 60) {
temp_r31->unk00->rot.y = fn_1_11348(0.0f, 180.0f, temp_r31->unk1C - 60, 30.0f);
if (temp_r31->unk1C >= 90) {
fn_1_11B18(temp_r31->unk00, 0, 0, 30, 1);
}
}
if (lbl_1_bss_C != 0 && (fn_1_11854(&lbl_1_bss_38, 1) != 0)) {
return fn_1_116C4(&lbl_1_bss_38);
}
return 0;
}
void fn_1_F3D8(void)
{
StructBss944 *var_r28;
s32 var_r29;
s32 i;
fn_1_79E0();
var_r28 = &lbl_1_bss_944;
var_r29 = var_r28->unk10;
for (i = 0; i < 4; i++) {
if (i >= 1) {
fn_1_70F8(var_r29, i);
}
var_r29++;
if (var_r29 >= 4) {
var_r29 = 0;
}
}
}
s32 fn_1_F494(void)
{
if (fn_1_11854(&lbl_1_bss_38, 1) != 0) {
return 1;
}
return 0;
}
StructData204 lbl_1_data_27C[] = { { fn_1_D754, fn_1_D930, 60 }, { fn_1_DCEC, fn_1_DEC4, 60 }, { fn_1_E2A8, fn_1_E598, 60 },
{ fn_1_E634, fn_1_E944, 10 }, { fn_1_E9A0, fn_1_EAA4, 30 }, { fn_1_EB38, fn_1_EC10, 60 }, { fn_1_EDD4, fn_1_EEA0, 60 },
{ fn_1_EFCC, fn_1_F0B8, 90 }, { fn_1_F0F8, fn_1_F144, 60 }, { fn_1_F18C, fn_1_F294, 60 }, { fn_1_F3D8, fn_1_F494, 90 }, { NULL, NULL, -1 } };
void fn_1_F4D4(void)
{
fn_1_11668(&lbl_1_bss_38, lbl_1_data_27C);
}
s32 fn_1_F504(void)
{
if (lbl_1_bss_38.unk08 != NULL) {
lbl_1_bss_38.unk08();
lbl_1_bss_38.unk08 = NULL;
}
if (lbl_1_bss_38.unk0C != NULL) {
return lbl_1_bss_38.unk0C();
}
return 0;
}
void fn_1_F590(void)
{
StructBss944 *var_r30;
StructBss1DC *temp_r31;
var_r30 = &lbl_1_bss_944;
temp_r31 = &lbl_1_bss_1DC[var_r30->unk10];
var_r30->unk1C = 0;
lbl_1_data_A0 = temp_r31->unk00->model[0];
lbl_1_data_A4 = temp_r31->unk00->motion[3];
lbl_1_data_A8 = temp_r31->unk3C;
HuPrcChildCreate(fn_1_0, 100, 0x2000, 0, HuPrcCurrentGet());
}
s32 fn_1_F640(void)
{
StructBss944 *var_r31;
StructBss1DC *temp_r30;
var_r31 = &lbl_1_bss_944;
temp_r30 = &lbl_1_bss_1DC[var_r31->unk10];
if (fn_1_11854(&lbl_1_bss_20, 0) == 120) {
fn_1_119A0(temp_r30->unk00, 0, 3, 30, 0);
HuAudSStreamPlay(3);
}
if (fn_1_11854(&lbl_1_bss_20, 1) != 0) {
return fn_1_116C4(&lbl_1_bss_20);
}
return 0;
}
StructData204 lbl_1_data_30C[] = { { fn_1_F590, fn_1_F640, 360 }, { NULL, NULL, -1 } };
void fn_1_F6EC(void)
{
fn_1_11668(&lbl_1_bss_20, lbl_1_data_30C);
}
s32 fn_1_F71C(void)
{
if (lbl_1_bss_20.unk08 != NULL) {
lbl_1_bss_20.unk08();
lbl_1_bss_20.unk08 = NULL;
}
if (lbl_1_bss_20.unk0C != NULL) {
return lbl_1_bss_20.unk0C();
}
return 0;
}
void fn_1_F7A8(omObjData *arg0)
{
StructBss944 *var_r30;
StructBss1DC *temp_r29;
s32 i;
if (WipeStatGet() == 0) {
HuAudFadeOut(1);
CharModelKill(-1);
MGSeqKillAll();
var_r30 = &lbl_1_bss_944;
temp_r29 = &lbl_1_bss_1DC[var_r30->unk10];
for (i = 0; i < 4; i++) {
GWPlayerCoinWinSet(i, 0);
}
GWPlayerCoinWinSet(temp_r29->unk2C, 1);
omOvlReturnEx(1, 1);
arg0->func = NULL;
}
}
s32 fn_1_F89C(void)
{
return omSysExitReq;
}
void fn_1_F8AC(void)
{
StructBss944 *var_r29;
s32 i;
fn_1_3260(&lbl_1_bss_920);
fn_1_4538(&lbl_1_bss_8FC);
fn_1_4E00(&lbl_1_bss_8D4);
for (i = 0; i < 2; i++) {
fn_1_5984(&lbl_1_bss_6BC[i]);
}
for (i = 0; i < 4; i++) {
fn_1_74B0(&lbl_1_bss_1DC[i]);
}
fn_1_8308(&lbl_1_bss_68);
var_r29 = &lbl_1_bss_944;
var_r29->unk00 = var_r29->unk04 = var_r29->unk08 = var_r29->unk0C = 0;
var_r29->unk10 = var_r29->unk14 = var_r29->unk18 = var_r29->unk1C = 0;
fn_1_B194();
fn_1_F4D4();
fn_1_F6EC();
fn_1_8C84(0);
HuAudFXPlay(0x6D7);
}
void fn_1_1043C(omObjData *arg0)
{
StructBss920 *var_r30;
switch (lbl_1_bss_18) {
case 0:
fn_1_F8AC();
lbl_1_bss_18++;
break;
case 1:
if (WipeStatGet() == 0) {
lbl_1_bss_18++;
}
break;
case 2:
if (fn_1_B1C4() != 0) {
lbl_1_bss_18++;
}
break;
case 3:
lbl_1_bss_1C = MGSeqStartCreate();
lbl_1_bss_18++;
lbl_1_bss_968.unk04 = -1;
break;
case 4:
if ((MGSeqStatGet(lbl_1_bss_1C) & 0x10) && lbl_1_bss_968.unk04 == -1) {
lbl_1_bss_968.unk04 = HuAudSeqPlay(0x4D);
}
if (MGSeqStatGet(lbl_1_bss_1C) == 0) {
lbl_1_bss_18++;
}
break;
case 5:
if (fn_1_F504() != 0) {
lbl_1_bss_18++;
}
break;
case 6:
lbl_1_bss_1C = MGSeqFinishCreate();
lbl_1_bss_18++;
HuAudSeqPauseAll(0);
HuAudSeqAllFadeOut(0xFA);
break;
case 7:
if (MGSeqStatGet(lbl_1_bss_1C) == 0) {
lbl_1_bss_18++;
}
break;
case 8:
var_r30 = &lbl_1_bss_920;
var_r30->unk04 = 999;
if (fn_1_F71C() != 0) {
lbl_1_bss_18++;
}
break;
case 9:
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1);
arg0->func = fn_1_F7A8;
break;
case 10:
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1);
arg0->func = fn_1_F7A8;
break;
}
if (omSysExitReq != 0) {
HuAudSeqAllFadeOut(0xFA);
lbl_1_bss_18 = 10;
}
}
void fn_1_108A4(omObjData *arg0)
{
s32 i;
lbl_1_bss_920.unk00 = omAddObjEx(lbl_1_bss_0, 0x100, 16, 16, -1, fn_1_3410);
lbl_1_bss_8FC.unk00 = omAddObjEx(lbl_1_bss_0, 0x200, 16, 16, -1, fn_1_46C0);
lbl_1_bss_8D4.unk00 = omAddObjEx(lbl_1_bss_0, 0x300, 16, 16, -1, fn_1_4EE0);
for (i = 0; i < 2; i++) {
lbl_1_bss_6BC[i].unk00 = omAddObjEx(lbl_1_bss_0, 0x400, 16, 16, -1, fn_1_5AD8);
lbl_1_bss_6BC[i].unk00->work[0] = i;
}
for (i = 0; i < 4; i++) {
lbl_1_bss_1DC[i].unk00 = omAddObjEx(lbl_1_bss_0, 0x500, 16, 16, -1, fn_1_7678);
lbl_1_bss_1DC[i].unk00->work[0] = i;
}
lbl_1_bss_68.unk00 = omAddObjEx(lbl_1_bss_0, 0x600, 16, 16, -1, fn_1_84C4);
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1);
arg0->func = fn_1_1043C;
}
#include "src/REL/executor.c"
void fn_1_10B30(void)
{
lbl_1_bss_0 = omInitObjMan(62, 0x2000);
omGameSysInit(lbl_1_bss_0);
fn_1_1A8();
fn_1_F8C();
fn_1_10C0();
fn_1_13E8();
fn_1_1A90();
fn_1_5FBC();
omAddObjEx(lbl_1_bss_0, 0x1000, 0, 0, -1, fn_1_108A4);
}
void ObjectSetup(void)
{
fn_1_10B30();
}