2344 lines
78 KiB
C
2344 lines
78 KiB
C
#include "ext_math.h"
|
|
#include "game/audio.h"
|
|
#include "game/chrman.h"
|
|
#include "game/frand.h"
|
|
#include "game/hsfman.h"
|
|
#include "game/hsfmotion.h"
|
|
#include "game/minigame_seq.h"
|
|
#include "game/objsub.h"
|
|
#include "game/pad.h"
|
|
#include "game/sprite.h"
|
|
#include "game/wipe.h"
|
|
#include "rel_sqrt_consts.h"
|
|
|
|
typedef struct UnkM414Struct {
|
|
s32 unk00;
|
|
s32 unk04;
|
|
float unk08;
|
|
char unk0C[0x38];
|
|
s32 unk_44;
|
|
char unk48[0x0C];
|
|
s32 unk_54;
|
|
char unk58[0x24];
|
|
float unk_7C;
|
|
float unk_80;
|
|
float unk_84;
|
|
char unk88[0xB0];
|
|
Vec unk_138[16];
|
|
s32 unk_1F8;
|
|
} UnkM414Struct; // size unknown
|
|
|
|
typedef struct UnkM414BssF0Struct {
|
|
s16 unk_00[9];
|
|
s16 unk_12;
|
|
s16 unk_14[6];
|
|
s16 unk_20;
|
|
s16 unk_22[5];
|
|
s16 unk_2C;
|
|
s16 unk_2E;
|
|
s16 unk_30[9];
|
|
s16 unk_42;
|
|
s32 unk_44;
|
|
s32 unk_48;
|
|
s32 unk_4C;
|
|
s32 unk_50;
|
|
s32 unk_54;
|
|
s32 unk_58;
|
|
s32 unk_5C;
|
|
float unk_60;
|
|
float unk_64;
|
|
float unk_68;
|
|
float unk_6C;
|
|
float unk_70;
|
|
float unk_74;
|
|
char unk78[4];
|
|
float unk_7C;
|
|
float unk_80;
|
|
float unk_84;
|
|
float unk_88;
|
|
char unk8C[4];
|
|
float unk_90;
|
|
s16 unk_94[16];
|
|
s16 unk_B4[16];
|
|
s16 unk_D4[16];
|
|
s32 unk_F4[16];
|
|
Vec unk_134[16];
|
|
s32 unk_1F4;
|
|
s32 unk_1F8;
|
|
s8 unk_1FC;
|
|
s8 unk_1FD;
|
|
s8 unk_1FE;
|
|
s8 unk_1FF;
|
|
u16 unk_200;
|
|
char unk202[2];
|
|
s32 unk_204;
|
|
} UnkM414BssF0Struct; // size 0x208
|
|
|
|
typedef struct UnkM414Struct2 {
|
|
UnkM414BssF0Struct *unk_00;
|
|
s32 unk_04;
|
|
union {
|
|
s32 unk_08;
|
|
s32 *unk_08_ptr;
|
|
};
|
|
s32 unk_0C;
|
|
} UnkM414Struct2; // size unknown
|
|
|
|
typedef struct UnkM414Struct3 {
|
|
s32 unk_00;
|
|
s32 unk_04;
|
|
float unk_08;
|
|
} UnkM414Struct3; // size unknown
|
|
|
|
typedef struct UnkM414Struct4 {
|
|
UnkM414BssF0Struct *unk_00;
|
|
s32 unk_04;
|
|
union {
|
|
s32 unk_08;
|
|
s32 *unk_08_ptr;
|
|
};
|
|
} UnkM414Struct4; // size unknown
|
|
|
|
s16 lbl_1_bss_A12;
|
|
s16 lbl_1_bss_A10;
|
|
s16 lbl_1_bss_990[16][4];
|
|
s32 lbl_1_bss_98C;
|
|
s32 lbl_1_bss_97C[4];
|
|
s32 lbl_1_bss_978;
|
|
s32 lbl_1_bss_938[16];
|
|
s32 lbl_1_bss_930[2];
|
|
float lbl_1_bss_920[4];
|
|
float lbl_1_bss_910[4];
|
|
UnkM414BssF0Struct lbl_1_bss_F0[4];
|
|
Process *lbl_1_bss_E0[4];
|
|
Process *lbl_1_bss_DC;
|
|
Vec lbl_1_bss_A0[5];
|
|
Vec lbl_1_bss_64[5];
|
|
Vec lbl_1_bss_28[5];
|
|
omObjData *lbl_1_bss_24;
|
|
Vec lbl_1_bss_18;
|
|
Vec lbl_1_bss_C;
|
|
Vec lbl_1_bss_0;
|
|
|
|
void fn_1_91C(omObjData *object);
|
|
void fn_1_1388(ModelData *arg0, ParticleData *arg1, Mtx arg2);
|
|
void fn_1_13C4(ModelData *arg0, ParticleData *arg1, Mtx arg2);
|
|
void fn_1_1400(ModelData *arg0, ParticleData *arg1, Mtx arg2);
|
|
void fn_1_143C(ModelData *arg0, ParticleData *arg1, Mtx arg2);
|
|
void fn_1_168C(ModelData *arg0, ParticleData *arg1, Mtx arg2);
|
|
void fn_1_16C8(ModelData *arg0, ParticleData *arg1, Mtx arg2);
|
|
void fn_1_1704(ModelData *arg0, ParticleData *arg1, Mtx arg2);
|
|
void fn_1_1740(ModelData *arg0, ParticleData *arg1, Mtx arg2);
|
|
void fn_1_1B58(ModelData *arg0, ParticleData *arg1, Mtx arg2);
|
|
void fn_1_1B94(ModelData *arg0, ParticleData *arg1, Mtx arg2);
|
|
void fn_1_1BD0(ModelData *arg0, ParticleData *arg1, Mtx arg2);
|
|
void fn_1_1C0C(ModelData *arg0, ParticleData *arg1, Mtx arg2);
|
|
void fn_1_1E04();
|
|
void fn_1_3ECC();
|
|
void fn_1_5780(UnkM414BssF0Struct *arg0, float arg8);
|
|
s32 fn_1_654C(s32 arg0, s32 arg1);
|
|
void fn_1_6644();
|
|
void fn_1_8A10();
|
|
void fn_1_8A70();
|
|
|
|
ParticleHook lbl_1_data_0[] = { fn_1_1388, fn_1_13C4, fn_1_1400, fn_1_143C };
|
|
|
|
ParticleHook lbl_1_data_10[] = { fn_1_168C, fn_1_16C8, fn_1_1704, fn_1_1740 };
|
|
|
|
ParticleHook lbl_1_data_20[] = { fn_1_1B58, fn_1_1B94, fn_1_1BD0, fn_1_1C0C };
|
|
|
|
s32 lbl_1_data_30[] = { 0, 1, 2, 3, 4, 5, 6, 7 };
|
|
|
|
s32 lbl_1_data_50[] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0), DATA_MAKE_NUM(DATADIR_MARIOMOT, 79), DATA_MAKE_NUM(DATADIR_MARIOMOT, 72),
|
|
DATA_MAKE_NUM(DATADIR_MARIOMOT, 23), DATA_MAKE_NUM(DATADIR_MARIOMOT, 24), DATA_MAKE_NUM(DATADIR_MARIOMOT, 54) };
|
|
|
|
float lbl_1_data_68[] = { 0.0f, 2.0f, 3.0f, 1.0f, 2.0f, 3.0f, 1.0f, 2.0f, 3.0f };
|
|
|
|
s32 lbl_1_data_8C[] = { 75, 64, 67, 79, 73, 80 };
|
|
|
|
s32 lbl_1_data_A4[] = { 230, 510, 230, 510 };
|
|
|
|
s32 lbl_1_data_B4[] = { 205, 205, 420, 420 };
|
|
|
|
s32 lbl_1_data_C4[][3] = {
|
|
// rgb color
|
|
{ 254, 0, 0 },
|
|
{ 1, 0, 254 },
|
|
{ 255, 123, 222 },
|
|
{ 0, 255, 1 },
|
|
{ 175, 50, 240 },
|
|
{ 225, 127, 80 },
|
|
{ 255, 255, 1 },
|
|
{ 0, 0, 0 },
|
|
};
|
|
|
|
void ObjectSetup(void)
|
|
{
|
|
s32 var_r31;
|
|
s32 var_r30;
|
|
Process *var_r29;
|
|
s32 var_r28;
|
|
s32 var_r27;
|
|
s32 var_r26;
|
|
|
|
var_r29 = omInitObjMan(50, 8192);
|
|
omGameSysInit(var_r29);
|
|
Hu3DCameraCreate(31);
|
|
Hu3DCameraPerspectiveSet(31, 30.0f, 20.0f, 25000.0f, 1.2f);
|
|
Hu3DCameraViewportSet(1, 10.0f, 20.0f, 309.0f, 219.0f, 0.0f, 1.0f);
|
|
Hu3DCameraViewportSet(2, 322.0f, 20.0f, 309.0f, 219.0f, 0.0f, 1.0f);
|
|
Hu3DCameraViewportSet(4, 10.0f, 242.0f, 309.0f, 219.0f, 0.0f, 1.0f);
|
|
Hu3DCameraViewportSet(8, 322.0f, 242.0f, 309.0f, 219.0f, 0.0f, 1.0f);
|
|
Hu3DCameraViewportSet(16, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f);
|
|
Hu3DCameraScissorSet(1, 10, 20, 309, 219);
|
|
Hu3DCameraScissorSet(2, 322, 20, 309, 219);
|
|
Hu3DCameraScissorSet(4, 10, 242, 309, 219);
|
|
Hu3DCameraScissorSet(8, 322, 242, 309, 219);
|
|
Hu3DCameraScissorSet(16, 0, 0, 640, 480);
|
|
lbl_1_bss_24 = omAddObjEx(var_r29, 32730, 0, 0, -1, fn_1_91C);
|
|
lbl_1_bss_24->work[0] = 4;
|
|
|
|
for (var_r31 = 0; var_r31 < lbl_1_bss_24->work[0]; var_r31++) {
|
|
lbl_1_bss_920[var_r31] = 0.0f;
|
|
lbl_1_bss_910[var_r31] = 1900.0f;
|
|
lbl_1_bss_A0[var_r31].y = 455.0f;
|
|
lbl_1_bss_64[var_r31].x = var_r31 % 2 * 2000.0f;
|
|
lbl_1_bss_64[var_r31].z = var_r31 / 2 * 2000.0f;
|
|
lbl_1_bss_64[var_r31].y = 610.0f;
|
|
lbl_1_bss_28[var_r31].x = 0.0f;
|
|
lbl_1_bss_28[var_r31].y = 1.0f;
|
|
lbl_1_bss_28[var_r31].z = 0.0f;
|
|
}
|
|
Hu3DCameraPosSet(16, 0.0f, 265.0f, 180.0f, 0.0f, 1.0f, 0.0f, 0.0f, 265.0f, 0.0f);
|
|
Hu3DLighInit();
|
|
lbl_1_bss_A12 = Hu3DGLightCreate(10000.0f, 0.0f, 10000.0f, -1.0f, 0.0f, -1.0f, 255, 255, 255);
|
|
Hu3DGLightPosAimSet(lbl_1_bss_A12, 0.0f, 4330.13f, 2500.0f, 0.0f, 0.0f, 0.0f);
|
|
Hu3DGLightInfinitytSet(lbl_1_bss_A12);
|
|
lbl_1_bss_18.x = 1000.0f;
|
|
lbl_1_bss_18.y = 7000.0f;
|
|
lbl_1_bss_18.z = 0.0f;
|
|
lbl_1_bss_C.x = lbl_1_bss_C.z = 0.0f;
|
|
lbl_1_bss_C.y = 1.0f;
|
|
lbl_1_bss_0.x = 1000.0f;
|
|
lbl_1_bss_0.y = 0.0f;
|
|
lbl_1_bss_0.z = 1000.0f;
|
|
Hu3DShadowCreate(30.0f, 20.0f, 50000.0f);
|
|
Hu3DShadowTPLvlSet(0.8f);
|
|
Hu3DShadowPosSet(&lbl_1_bss_18, &lbl_1_bss_C, &lbl_1_bss_0);
|
|
Hu3DBGColorSet(0, 0, 0);
|
|
lbl_1_bss_978 = frandmod(6);
|
|
|
|
for (var_r31 = 0; var_r31 < 3; var_r31++) {
|
|
lbl_1_bss_938[var_r31] = lbl_1_bss_978;
|
|
}
|
|
var_r30 = frandmod(6);
|
|
|
|
for (; var_r31 < 16; var_r31++, var_r30++) {
|
|
if (var_r30 == lbl_1_bss_978) {
|
|
var_r30++;
|
|
}
|
|
if (var_r30 >= 6) {
|
|
if (lbl_1_bss_978 == 0) {
|
|
var_r30 = 1;
|
|
}
|
|
else {
|
|
var_r30 = 0;
|
|
}
|
|
}
|
|
lbl_1_bss_938[var_r31] = var_r30;
|
|
}
|
|
for (var_r31 = 0; var_r31 < 50; var_r31++) {
|
|
var_r28 = frandmod(16);
|
|
var_r27 = frandmod(16);
|
|
var_r26 = lbl_1_bss_938[var_r28];
|
|
lbl_1_bss_938[var_r28] = lbl_1_bss_938[var_r27];
|
|
lbl_1_bss_938[var_r27] = var_r26;
|
|
}
|
|
fn_1_1E04();
|
|
lbl_1_bss_DC = HuPrcChildCreate(fn_1_8A70, 4096, 8192, 0, HuPrcCurrentGet());
|
|
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60);
|
|
}
|
|
|
|
void fn_1_91C(omObjData *object)
|
|
{
|
|
s32 var_r31;
|
|
|
|
for (var_r31 = 0; var_r31 < object->work[0]; var_r31++) {
|
|
lbl_1_bss_A0[var_r31].x = (var_r31 % 2 * 2000.0f) + (lbl_1_bss_910[var_r31] * sind(lbl_1_bss_920[var_r31]));
|
|
lbl_1_bss_A0[var_r31].z = (var_r31 / 2 * 2000.0f) + (lbl_1_bss_910[var_r31] * cosd(lbl_1_bss_920[var_r31]));
|
|
|
|
Hu3DCameraPosSet(1 << var_r31, lbl_1_bss_A0[var_r31].x, lbl_1_bss_A0[var_r31].y, lbl_1_bss_A0[var_r31].z, lbl_1_bss_28[var_r31].x,
|
|
lbl_1_bss_28[var_r31].y, lbl_1_bss_28[var_r31].z, lbl_1_bss_64[var_r31].x, lbl_1_bss_64[var_r31].y, lbl_1_bss_64[var_r31].z);
|
|
}
|
|
}
|
|
|
|
void fn_1_B84(void)
|
|
{
|
|
float var_f31;
|
|
float var_f30;
|
|
float var_f29;
|
|
float var_f28;
|
|
|
|
UnkM414Struct3 *var_r31;
|
|
s32 var_r30;
|
|
|
|
var_r31 = HuPrcCurrentGet()->user_data;
|
|
if (!var_r31->unk_00) {
|
|
var_f29 = lbl_1_bss_A0[var_r31->unk_04].y;
|
|
var_f28 = lbl_1_bss_64[var_r31->unk_04].y;
|
|
|
|
for (var_r30 = 0, var_f31 = 0.0f; var_r30 < 10; var_r30++, var_f31 += 36.0f) {
|
|
var_f30 = var_r31->unk_08 * sind(var_f31);
|
|
lbl_1_bss_A0[var_r31->unk_04].y = var_f29 + var_f30;
|
|
lbl_1_bss_64[var_r31->unk_04].y = var_f28 + var_f30;
|
|
HuPrcVSleep();
|
|
}
|
|
lbl_1_bss_A0[var_r31->unk_04].y = var_f29;
|
|
lbl_1_bss_64[var_r31->unk_04].y = var_f28;
|
|
}
|
|
HuPrcKill(HuPrcCurrentGet());
|
|
while (TRUE) {
|
|
HuPrcVSleep();
|
|
}
|
|
}
|
|
|
|
void fn_1_CD8(s32 arg0, s32 arg1, float arg8)
|
|
{
|
|
UnkM414Struct3 sp14;
|
|
UnkM414Struct3 *var_r31;
|
|
Process *var_r30;
|
|
|
|
var_r31 = &sp14;
|
|
var_r30 = HuPrcChildCreate(fn_1_B84, 8192, 8192, 0, HuPrcCurrentGet());
|
|
var_r30->user_data = var_r31;
|
|
var_r31->unk_00 = arg0;
|
|
var_r31->unk_04 = arg1;
|
|
var_r31->unk_08 = arg8;
|
|
}
|
|
|
|
void fn_1_D54(ModelData *arg0, ParticleData *arg1, Mtx arg2, s32 arg3)
|
|
{
|
|
float var_f31;
|
|
float var_f30;
|
|
float var_f29;
|
|
float var_f28;
|
|
double var_f27;
|
|
|
|
HsfanimStruct01 *var_r31;
|
|
UnkM414BssF0Struct *var_r30;
|
|
s16 var_r28;
|
|
s16 var_r27;
|
|
s16 var_r26;
|
|
s32 var_r25;
|
|
|
|
if (arg1->unk_34 == 0) {
|
|
var_r31 = arg1->unk_48;
|
|
|
|
for (var_r28 = 0; var_r28 < arg1->unk_30; var_r28++, var_r31++) {
|
|
var_r31->unk14.x = var_r31->unk2C = 0.0f;
|
|
}
|
|
}
|
|
var_r31 = arg1->unk_48;
|
|
var_r30 = &lbl_1_bss_F0[arg3];
|
|
if (var_r30->unk_54 == 1) {
|
|
for (var_r27 = 0; var_r27 < 2; var_r27++) {
|
|
var_f28 = 2.4f;
|
|
for (var_r26 = 0, var_f29 = 0.0f; var_r26 < 4; var_r26++, var_f29 += 90.0f) {
|
|
for (var_r28 = 0; var_r28 < arg1->unk_30; var_r28++, var_r31++) {
|
|
if (0.0f == var_r31->unk14.x) {
|
|
break;
|
|
}
|
|
}
|
|
if (var_r28 == arg1->unk_30) {
|
|
break;
|
|
}
|
|
var_f31 = var_f29 + frandmod(70);
|
|
var_f30 = var_f28 + (3.6f * frandf());
|
|
var_r31->unk34.x = var_r30->unk_7C + ((20.0f * var_r27) * (sind(var_f31) * cosd(lbl_1_bss_920[var_r30->unk_44])));
|
|
var_r31->unk34.y = var_r30->unk_80 + ((20.0f * var_r27) * cosd(var_f31));
|
|
var_r31->unk34.z = var_r30->unk_84 + (-(20.0f * var_r27) * (sind(lbl_1_bss_920[var_r30->unk_44]) * sind(var_f31)));
|
|
var_r31->unk08.x = var_f30 * (sind(var_f31) * cosd(lbl_1_bss_920[var_r30->unk_44]));
|
|
var_r31->unk08.y = var_f30 * cosd(var_f31);
|
|
var_r31->unk08.z = -var_f30 * (sind(lbl_1_bss_920[var_r30->unk_44]) * sind(var_f31));
|
|
var_r31->unk14.x = 30.0f;
|
|
var_r31->unk2C = 40.0f + (20.0f * frandf());
|
|
var_r31->unk40.r = frandmod(20) + 235;
|
|
var_r31->unk40.g = frandmod(50) + 205;
|
|
var_r31->unk40.b = frandmod(50);
|
|
var_r31->unk40.a = 255;
|
|
}
|
|
}
|
|
var_r30->unk_54++;
|
|
}
|
|
var_r31 = arg1->unk_48;
|
|
for (var_r28 = 0; var_r28 < arg1->unk_30; var_r28++, var_r31++) {
|
|
if (0.0f != var_r31->unk14.x) {
|
|
VECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34);
|
|
if (var_r31->unk14.x > 10.0f) {
|
|
var_r31->unk14.x = var_r31->unk14.x - 1.0f;
|
|
}
|
|
if (10.0f == var_r31->unk14.x) {
|
|
var_r25 = var_r31->unk40.a - 25;
|
|
if (var_r25 < 0) {
|
|
var_r25 = 0;
|
|
var_r31->unk14.x = 0.0f;
|
|
}
|
|
var_r31->unk40.a = var_r25;
|
|
}
|
|
if (0.0f == var_r31->unk14.x) {
|
|
var_r31->unk2C = 0.0f;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
void fn_1_1388(ModelData *arg0, ParticleData *arg1, Mtx arg2)
|
|
{
|
|
fn_1_D54(arg0, arg1, arg2, 0);
|
|
}
|
|
|
|
void fn_1_13C4(ModelData *arg0, ParticleData *arg1, Mtx arg2)
|
|
{
|
|
fn_1_D54(arg0, arg1, arg2, 1);
|
|
}
|
|
|
|
void fn_1_1400(ModelData *arg0, ParticleData *arg1, Mtx arg2)
|
|
{
|
|
fn_1_D54(arg0, arg1, arg2, 2);
|
|
}
|
|
|
|
void fn_1_143C(ModelData *arg0, ParticleData *arg1, Mtx arg2)
|
|
{
|
|
fn_1_D54(arg0, arg1, arg2, 3);
|
|
}
|
|
|
|
void fn_1_1478(ModelData *arg0, ParticleData *arg1, Mtx arg2, s32 arg3)
|
|
{
|
|
HsfanimStruct01 *var_r31;
|
|
s16 var_r30;
|
|
UnkM414BssF0Struct *var_r29;
|
|
s32 var_r28;
|
|
|
|
if (arg1->unk_34 == 0) {
|
|
var_r31 = arg1->unk_48;
|
|
for (var_r30 = 0; var_r30 < arg1->unk_30; var_r30++, var_r31++) {
|
|
var_r31->unk14.x = var_r31->unk2C = 0.0f;
|
|
}
|
|
}
|
|
var_r31 = arg1->unk_48;
|
|
var_r29 = &lbl_1_bss_F0[arg3];
|
|
if (var_r29->unk_54 == 2) {
|
|
for (var_r30 = 0; var_r30 < arg1->unk_30; var_r30++, var_r31++) {
|
|
if (0.0f == var_r31->unk14.x) {
|
|
break;
|
|
}
|
|
}
|
|
if (var_r30 != arg1->unk_30) {
|
|
var_r31->unk34.x = var_r29->unk_7C;
|
|
var_r31->unk34.y = var_r29->unk_80;
|
|
var_r31->unk34.z = var_r29->unk_84;
|
|
var_r31->unk14.x = 30.0f;
|
|
var_r31->unk2C = 300.0f;
|
|
var_r31->unk40.r = 255;
|
|
var_r31->unk40.g = 255;
|
|
var_r31->unk40.b = 255;
|
|
var_r31->unk40.a = 255;
|
|
}
|
|
var_r29->unk_54++;
|
|
}
|
|
var_r31 = arg1->unk_48;
|
|
for (var_r30 = 0; var_r30 < arg1->unk_30; var_r30++, var_r31++) {
|
|
if (0.0f != var_r31->unk14.x) {
|
|
if (var_r31->unk14.x > 25.0f) {
|
|
var_r31->unk14.x -= 1.0f;
|
|
}
|
|
if (25.0f == var_r31->unk14.x) {
|
|
var_r28 = var_r31->unk40.a - 25;
|
|
if (var_r28 < 0) {
|
|
var_r28 = 0;
|
|
var_r31->unk14.x = 0.0f;
|
|
}
|
|
var_r31->unk40.a = var_r28;
|
|
}
|
|
if (0.0f == var_r31->unk14.x) {
|
|
var_r31->unk2C = 0.0f;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
void fn_1_168C(ModelData *arg0, ParticleData *arg1, Mtx arg2)
|
|
{
|
|
fn_1_1478(arg0, arg1, arg2, 0);
|
|
}
|
|
|
|
void fn_1_16C8(ModelData *arg0, ParticleData *arg1, Mtx arg2)
|
|
{
|
|
fn_1_1478(arg0, arg1, arg2, 1);
|
|
}
|
|
|
|
void fn_1_1704(ModelData *arg0, ParticleData *arg1, Mtx arg2)
|
|
{
|
|
fn_1_1478(arg0, arg1, arg2, 2);
|
|
}
|
|
|
|
void fn_1_1740(ModelData *arg0, ParticleData *arg1, Mtx arg2)
|
|
{
|
|
fn_1_1478(arg0, arg1, arg2, 3);
|
|
}
|
|
|
|
void fn_1_177C(ModelData *arg1, ParticleData *arg2, Mtx arg3, s32 arg4)
|
|
{
|
|
float var_f31;
|
|
float var_f30;
|
|
|
|
HsfanimStruct01 *var_r31;
|
|
UnkM414BssF0Struct *var_r29;
|
|
s16 var_r28;
|
|
s16 var_r27;
|
|
s32 var_r26;
|
|
|
|
if (arg2->unk_34 == 0) {
|
|
var_r31 = arg2->unk_48;
|
|
for (var_r28 = 0; var_r28 < arg2->unk_30; var_r28++, var_r31++) {
|
|
var_r31->unk14.x = var_r31->unk2C = 0.0f;
|
|
}
|
|
}
|
|
var_r31 = arg2->unk_48;
|
|
var_r29 = &lbl_1_bss_F0[arg4];
|
|
if (var_r29->unk_54 == 3) {
|
|
for (var_r27 = 0, var_f30 = 0.0f; var_r27 < 8; var_r27++, var_f30 += 45.0f) {
|
|
for (var_r28 = 0; var_r28 < arg2->unk_30; var_r28++, var_r31++) {
|
|
if (0.0f == var_r31->unk14.x) {
|
|
break;
|
|
}
|
|
}
|
|
if (var_r28 == arg2->unk_30) {
|
|
break;
|
|
}
|
|
var_f31 = var_f30 + frandmod(30);
|
|
var_r31->unk34.x = var_r29->unk_7C + (120.0 * (sind(var_f31) * cosd(lbl_1_bss_920[var_r29->unk_44])));
|
|
var_r31->unk34.y = var_r29->unk_80 + (120.0 * cosd(var_f31));
|
|
var_r31->unk34.z = var_r29->unk_84 + (-120.0 * (sind(lbl_1_bss_920[var_r29->unk_44]) * sind(var_f31)));
|
|
var_r31->unk30 = (M_PI * (360.0f - var_f31)) / 180.0;
|
|
var_r31->unk14.x = 30.0f;
|
|
var_r31->unk2C = 50.0f;
|
|
var_r31->unk40.r = 255;
|
|
var_r31->unk40.g = 255;
|
|
var_r31->unk40.b = 0;
|
|
var_r31->unk40.a = 255;
|
|
}
|
|
var_r29->unk_54++;
|
|
}
|
|
var_r31 = arg2->unk_48;
|
|
for (var_r28 = 0; var_r28 < arg2->unk_30; var_r28++, var_r31++) {
|
|
if (0.0f != var_r31->unk14.x) {
|
|
var_r26 = var_r31->unk40.a - 8;
|
|
if (var_r26 < 0) {
|
|
var_r26 = 0;
|
|
var_r31->unk14.x = 0.0f;
|
|
}
|
|
var_r31->unk40.a = var_r26;
|
|
if (0.0f == var_r31->unk14.x) {
|
|
var_r31->unk2C = 0.0f;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
void fn_1_1B58(ModelData *arg0, ParticleData *arg1, Mtx arg2)
|
|
{
|
|
fn_1_177C(arg0, arg1, arg2, 0);
|
|
}
|
|
|
|
void fn_1_1B94(ModelData *arg0, ParticleData *arg1, Mtx arg2)
|
|
{
|
|
fn_1_177C(arg0, arg1, arg2, 1);
|
|
}
|
|
|
|
void fn_1_1BD0(ModelData *arg0, ParticleData *arg1, Mtx arg2)
|
|
{
|
|
fn_1_177C(arg0, arg1, arg2, 2);
|
|
}
|
|
|
|
void fn_1_1C0C(ModelData *arg0, ParticleData *arg1, Mtx arg2)
|
|
{
|
|
fn_1_177C(arg0, arg1, arg2, 3);
|
|
}
|
|
|
|
void fn_1_1C48(void)
|
|
{
|
|
UnkM414Struct *var_r31;
|
|
|
|
var_r31 = HuPrcCurrentGet()->user_data;
|
|
if (var_r31->unk_44 & 1) {
|
|
HuAudFXPlay(1446);
|
|
}
|
|
else {
|
|
HuAudFXPlay(1445);
|
|
}
|
|
var_r31->unk_54 = 1;
|
|
var_r31->unk_7C = -800.0 * sind(lbl_1_bss_920[var_r31->unk_44]);
|
|
var_r31->unk_80 = var_r31->unk_138[var_r31->unk_1F8].x;
|
|
var_r31->unk_84 = -800.0 * cosd(lbl_1_bss_920[var_r31->unk_44]);
|
|
var_r31->unk_7C += 2000.0f * (var_r31->unk_44 % 2);
|
|
var_r31->unk_84 += 2000.0f * (var_r31->unk_44 / 2);
|
|
HuPrcSleep(30);
|
|
HuPrcKill(HuPrcCurrentGet());
|
|
while (TRUE) {
|
|
HuPrcVSleep();
|
|
}
|
|
}
|
|
|
|
void fn_1_1E04(void)
|
|
{
|
|
s32 sp18[6];
|
|
AnimData *sp8[4];
|
|
|
|
float var_f31;
|
|
float var_f30;
|
|
float var_f29;
|
|
float var_f28;
|
|
|
|
UnkM414BssF0Struct *var_r31;
|
|
s16 var_r30;
|
|
s32 var_r29;
|
|
s32 var_r28;
|
|
void *var_r27;
|
|
Process *var_r26;
|
|
AnimData *var_r25;
|
|
s16 var_r24;
|
|
s16 var_r23;
|
|
s16 var_r22;
|
|
AnimData *var_r21;
|
|
|
|
HuAudSndGrpSet(39);
|
|
for (var_r28 = 0; var_r28 < 4; var_r28++) {
|
|
var_r31 = &lbl_1_bss_F0[var_r28];
|
|
var_r31->unk_44 = var_r28;
|
|
var_r31->unk_48 = var_r28;
|
|
var_r31->unk_4C = GWPlayerCfg[var_r28].pad_idx;
|
|
if (!var_r28) {
|
|
var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M414, 8), MEMORY_DEFAULT_NUM, HEAP_DATA);
|
|
var_r30 = Hu3DModelCreate(var_r27);
|
|
var_r22 = var_r30;
|
|
}
|
|
else {
|
|
var_r30 = Hu3DModelLink(var_r22);
|
|
}
|
|
Hu3DModelCameraSet(var_r30, 15);
|
|
Hu3DModelPosSet(var_r30, 2000.0f * (var_r28 % 2), 0.0f, 2000.0f * (var_r28 / 2));
|
|
for (var_r29 = 0; var_r29 < 9; var_r29++) {
|
|
if (!var_r28 && !var_r29) {
|
|
var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M414, 0), MEMORY_DEFAULT_NUM, HEAP_DATA);
|
|
var_r30 = Hu3DModelCreate(var_r27);
|
|
var_r24 = var_r30;
|
|
}
|
|
else {
|
|
var_r30 = Hu3DModelLink(var_r24);
|
|
}
|
|
var_r31->unk_30[var_r29] = var_r30;
|
|
Hu3DModelCameraSet(var_r30, 1 << var_r31->unk_48);
|
|
Hu3DModelShadowMapSet(var_r30);
|
|
Hu3DModelAttrSet(var_r30, HU3D_ATTR_NOCULL);
|
|
Hu3DModelRotSet(var_r30, 0.0f, 40.0f * var_r29, 0.0f);
|
|
Hu3DModelPosSet(var_r30, 2000.0f * (var_r28 % 2), 0.0f, 2000.0f * (var_r28 / 2));
|
|
}
|
|
if (!var_r28) {
|
|
var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M414, 5), MEMORY_DEFAULT_NUM, HEAP_DATA);
|
|
var_r30 = Hu3DModelCreate(var_r27);
|
|
}
|
|
else {
|
|
var_r30 = Hu3DModelLink(lbl_1_bss_F0[0].unk_42);
|
|
}
|
|
var_r31->unk_42 = var_r30;
|
|
Hu3DModelCameraSet(var_r30, 1 << var_r31->unk_48);
|
|
Hu3DModelShadowMapSet(var_r30);
|
|
Hu3DModelAttrSet(var_r30, HU3D_ATTR_DISPOFF);
|
|
Hu3DModelPosSet(var_r30, 2000.0f * (var_r28 % 2), 0.0f, 2000.0f * (var_r28 / 2));
|
|
for (var_r29 = 0; var_r29 < 9; var_r29++) {
|
|
if (!var_r28) {
|
|
var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M414, 1) + lbl_1_data_68[var_r29], MEMORY_DEFAULT_NUM, HEAP_DATA);
|
|
var_r30 = Hu3DModelCreate(var_r27);
|
|
}
|
|
else {
|
|
var_r30 = Hu3DModelLink(lbl_1_bss_F0->unk_00[var_r29]);
|
|
}
|
|
var_r31->unk_00[var_r29] = var_r30;
|
|
Hu3DModelRotSet(var_r30, 0.0f, 40.0f * var_r29, 0.0f);
|
|
Hu3DModelCameraSet(var_r30, 1 << var_r31->unk_48);
|
|
Hu3DModelAttrSet(var_r30, HU3D_ATTR_NOCULL);
|
|
Hu3DModelPosSet(var_r30, 2000.0f * (var_r28 % 2), 0.0f, 2000.0f * (var_r28 / 2));
|
|
Hu3DModelAttrSet(var_r30, HU3D_MOTATTR_PAUSE);
|
|
}
|
|
for (var_r29 = 0; var_r29 < 16; var_r29++) {
|
|
if (!var_r28 && !var_r29) {
|
|
var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M414, 6), MEMORY_DEFAULT_NUM, HEAP_DATA);
|
|
var_r30 = Hu3DModelCreate(var_r27);
|
|
var_r23 = var_r30;
|
|
}
|
|
else {
|
|
var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M414, 6), MEMORY_DEFAULT_NUM, HEAP_DATA);
|
|
var_r30 = Hu3DModelCreate(var_r27);
|
|
var_r23 = var_r30;
|
|
}
|
|
Hu3DModelCameraSet(var_r30, 1 << var_r31->unk_48);
|
|
var_r31->unk_D4[var_r29] = var_r30;
|
|
Hu3DModelPosSet(var_r30, 2000.0f * (var_r28 % 2), 330.0f - (330.0f * (var_r29 & 1)), 2000.0f * (var_r28 / 2));
|
|
Hu3DModelRotSet(var_r30, 0.0f, 40.0f * ((var_r29 + 2) / 2), 0.0f);
|
|
Hu3DModelAttrSet(var_r30, HU3D_ATTR_NOCULL);
|
|
Hu3DModelAttrSet(var_r30, HU3D_MOTATTR_PAUSE | HU3D_MOTATTR_SHAPE_PAUSE);
|
|
Hu3DMotionSpeedSet(var_r30, 3.0f);
|
|
Hu3DMotionShapeSpeedSet(var_r30, 3.0f);
|
|
}
|
|
if (!var_r28) {
|
|
var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M414, 9), MEMORY_DEFAULT_NUM, HEAP_DATA);
|
|
var_r30 = Hu3DModelCreate(var_r27);
|
|
}
|
|
else {
|
|
var_r30 = Hu3DModelLink(lbl_1_bss_F0[0].unk_20);
|
|
}
|
|
var_r31->unk_20 = var_r30;
|
|
Hu3DModelPosSet(var_r30, 2000.0f * (var_r28 % 2), 0.0f, 2000.0f * (var_r28 / 2));
|
|
Hu3DModelCameraSet(var_r30, 1 << var_r31->unk_48);
|
|
Hu3DModelShadowMapObjSet(var_r30, "m414_11_R-dai_1");
|
|
for (var_r29 = 0; var_r29 < 5; var_r29++) {
|
|
var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M414, 10) + var_r29, MEMORY_DEFAULT_NUM, HEAP_DATA);
|
|
var_r31->unk_22[var_r29] = Hu3DJointMotion(var_r30, var_r27);
|
|
}
|
|
Hu3DMotionSet(var_r30, var_r31->unk_22[0]);
|
|
Hu3DMotionTimeSet(var_r30, 0.0f);
|
|
Hu3DModelAttrSet(var_r30, HU3D_MOTATTR_PAUSE);
|
|
Hu3DMotionSpeedSet(var_r30, 2.0f);
|
|
|
|
var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M414, 15), MEMORY_DEFAULT_NUM, HEAP_DATA);
|
|
var_r21 = HuSprAnimRead(var_r27);
|
|
var_r30 = HuSprCreate(var_r21, 0x4000, 0);
|
|
var_r31->unk_2C = HuSprGrpCreate(1);
|
|
HuSprGrpMemberSet(var_r31->unk_2C, 0, var_r30);
|
|
HuSprAttrSet(var_r31->unk_2C, 0, 4);
|
|
HuSprColorSet(var_r31->unk_2C, 0, lbl_1_data_C4[GWPlayerCfg[var_r28].character][0], lbl_1_data_C4[GWPlayerCfg[var_r28].character][1],
|
|
lbl_1_data_C4[GWPlayerCfg[var_r28].character][2]);
|
|
HuSprTPLvlSet(var_r31->unk_2C, 0, 0.9f);
|
|
HuSprGrpPosSet(var_r31->unk_2C, 320.0f, 240.0f);
|
|
if (!var_r28) {
|
|
for (var_r29 = 0; var_r29 < 4; var_r29++) {
|
|
var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M414, 16) + var_r29, MEMORY_DEFAULT_NUM, HEAP_DATA);
|
|
sp8[var_r29] = HuSprAnimRead(var_r27);
|
|
}
|
|
}
|
|
var_r31->unk_2E = HuSprGrpCreate(8);
|
|
var_r30 = HuSprCreate(sp8[2], 0x4000, 0);
|
|
HuSprGrpMemberSet(var_r31->unk_2E, 0, var_r30);
|
|
HuSprPosSet(var_r31->unk_2E, 0, 0.0f, 0.0f);
|
|
var_r30 = HuSprCreate(sp8[3], 0x4000, 0);
|
|
HuSprGrpMemberSet(var_r31->unk_2E, 1, var_r30);
|
|
HuSprPosSet(var_r31->unk_2E, 1, 0.0f, 0.0f);
|
|
HuSprTPLvlSet(var_r31->unk_2E, 1, 0.5f);
|
|
|
|
for (var_r29 = 2; var_r29 < 8; var_r29++) {
|
|
var_r30 = HuSprCreate(sp8[var_r29 & 1], 0x4000, 0);
|
|
HuSprGrpMemberSet(var_r31->unk_2E, var_r29, var_r30);
|
|
if (var_r29 & 1) {
|
|
HuSprAttrSet(var_r31->unk_2E, var_r29, 4);
|
|
}
|
|
HuSprPosSet(var_r31->unk_2E, var_r29, -62.0f + (30.0f * (var_r29 / 2)), -2.0f);
|
|
}
|
|
HuSprGrpPosSet(var_r31->unk_2E, lbl_1_data_A4[var_r31->unk_44], lbl_1_data_B4[var_r31->unk_44]);
|
|
HuSprGrpScaleSet(var_r31->unk_2E, 0.0f, 0.0f);
|
|
var_f31 = 0.0f;
|
|
if (!var_r28) {
|
|
for (var_r29 = 0; var_r29 < 6; var_r29++) {
|
|
sp18[var_r29] = -1;
|
|
}
|
|
}
|
|
var_f31 += 40.0f;
|
|
for (var_r29 = 0; var_r29 < 16; var_r29++) {
|
|
if (!var_r28) {
|
|
if (sp18[lbl_1_bss_938[var_r29]] == -1) {
|
|
var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M414, 22) + lbl_1_bss_938[var_r29], MEMORY_DEFAULT_NUM, HEAP_DATA);
|
|
var_r30 = Hu3DModelCreate(var_r27);
|
|
sp18[lbl_1_bss_938[var_r29]] = var_r30;
|
|
}
|
|
else {
|
|
var_r30 = Hu3DModelLink(sp18[lbl_1_bss_938[var_r29]]);
|
|
}
|
|
}
|
|
else {
|
|
var_r30 = Hu3DModelLink(sp18[lbl_1_bss_938[var_r29]]);
|
|
}
|
|
var_r31->unk_94[var_r29] = var_r30;
|
|
var_r31->unk_F4[var_r29] = 0;
|
|
Hu3DModelCameraSet(var_r30, 1 << var_r31->unk_48);
|
|
Hu3DModelAttrSet(var_r30, HU3D_MOTATTR_LOOP);
|
|
var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M414, 34) + lbl_1_bss_938[var_r29], MEMORY_DEFAULT_NUM, HEAP_DATA);
|
|
var_r31->unk_B4[var_r29] = Hu3DJointMotion(var_r30, var_r27);
|
|
var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M414, 28) + lbl_1_bss_938[var_r29], MEMORY_DEFAULT_NUM, HEAP_DATA);
|
|
Hu3DMotionSet(var_r30, Hu3DJointMotion(var_r30, var_r27));
|
|
Hu3DModelAttrSet(var_r30, HU3D_MOTATTR_LOOP);
|
|
Hu3DModelAttrSet(var_r30, HU3D_ATTR_NOCULL);
|
|
var_f29 = -950.0 * sind(var_f31);
|
|
var_f29 = var_f29;
|
|
var_f28 = -950.0 * cosd(var_f31);
|
|
var_f28 = var_f28;
|
|
if (var_r29 & 1) {
|
|
var_f30 = 220.0f;
|
|
var_f31 += 40.0f;
|
|
}
|
|
else {
|
|
var_f30 = 570.0f;
|
|
}
|
|
if (!lbl_1_bss_938[var_r29]) {
|
|
var_f30 += 70.0f;
|
|
}
|
|
HuSetVecF(&var_r31->unk_134[var_r29], var_f29, var_f30, var_f28);
|
|
if (lbl_1_bss_938[var_r29]) {
|
|
(void)var_r29;
|
|
}
|
|
else {
|
|
(void)var_r29;
|
|
}
|
|
Hu3DModelPosSet(var_r30, var_f29 + (2000.0f * (var_r28 % 2)), var_f30, var_f28 + (2000.0f * (var_r28 / 2)));
|
|
Hu3DModelRotSet(var_r30, 0.0f, atan2d(-var_f29, -var_f28), 0.0f);
|
|
if (lbl_1_bss_938[var_r29] == 4 || lbl_1_bss_938[var_r29] == 5) {
|
|
Hu3DModelScaleSet(var_r30, 0.6f, 0.6f, 0.6f);
|
|
}
|
|
if (lbl_1_bss_938[var_r29] == 2) {
|
|
Hu3DModelScaleSet(var_r30, 1.2f, 1.2f, 1.2f);
|
|
}
|
|
}
|
|
fn_1_5780(var_r31, lbl_1_bss_920[var_r31->unk_44]);
|
|
var_r31->unk_12 = CharModelCreate(lbl_1_data_30[GWPlayerCfg[var_r28].character], 8);
|
|
Hu3DModelCameraSet(var_r31->unk_12, 1 << var_r31->unk_48);
|
|
var_r31->unk_6C = var_r31->unk_74 = var_r31->unk_70 = 0.0f;
|
|
var_r31->unk_90 = 0.0f;
|
|
var_r31->unk_60 = 37.0 * sind(var_r31->unk_70);
|
|
var_r31->unk_64 = 70.0f;
|
|
var_r31->unk_68 = 37.0 * cosd(var_r31->unk_70);
|
|
Hu3DModelPosSet(var_r31->unk_12, var_r31->unk_60 + (2000.0f * (var_r28 % 2)), var_r31->unk_64, var_r31->unk_68 + (2000.0f * (var_r28 / 2)));
|
|
Hu3DModelRotSet(var_r31->unk_12, var_r31->unk_6C, var_r31->unk_70, var_r31->unk_74);
|
|
Hu3DModelShadowSet(var_r31->unk_12);
|
|
for (var_r29 = 0; var_r29 < 6; var_r29++) {
|
|
var_r31->unk_14[var_r29] = CharModelMotionCreate(lbl_1_data_30[GWPlayerCfg[var_r28].character], lbl_1_data_50[var_r29]);
|
|
}
|
|
CharModelMotionSet(lbl_1_data_30[GWPlayerCfg[var_r28].character], var_r31->unk_14[0]);
|
|
Hu3DModelAttrSet(var_r31->unk_12, HU3D_MOTATTR_LOOP);
|
|
CharModelMotionDataClose(lbl_1_data_30[GWPlayerCfg[var_r28].character]);
|
|
|
|
var_r25 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_EFFECT, 0), MEMORY_DEFAULT_NUM));
|
|
HuDataDirClose(DATA_MAKE_NUM(DATADIR_EFFECT, 0));
|
|
var_r30 = Hu3DParticleCreate(var_r25, 100);
|
|
Hu3DModelPosSet(var_r30, 0.0f, 0.0f, 0.0f);
|
|
Hu3DModelScaleSet(var_r30, 1.0f, 1.0f, 1.0f);
|
|
Hu3DModelLayerSet(var_r30, 1);
|
|
Hu3DParticleColSet(var_r30, 255, 255, 0);
|
|
Hu3DParticleScaleSet(var_r30, 0.0f);
|
|
Hu3DParticleHookSet(var_r30, lbl_1_data_0[var_r31->unk_44]);
|
|
Hu3DModelCameraSet(var_r30, 1 << var_r31->unk_48);
|
|
|
|
var_r25 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M414, 20), MEMORY_DEFAULT_NUM));
|
|
var_r30 = Hu3DParticleCreate(var_r25, 1);
|
|
Hu3DModelPosSet(var_r30, 0.0f, 0.0f, 0.0f);
|
|
Hu3DModelScaleSet(var_r30, 1.0f, 1.0f, 1.0f);
|
|
Hu3DModelLayerSet(var_r30, 1);
|
|
Hu3DParticleColSet(var_r30, 255, 255, 255);
|
|
Hu3DParticleScaleSet(var_r30, 0.0f);
|
|
Hu3DParticleHookSet(var_r30, lbl_1_data_10[var_r31->unk_44]);
|
|
Hu3DModelCameraSet(var_r30, 1 << var_r31->unk_48);
|
|
|
|
var_r25 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M414, 21), MEMORY_DEFAULT_NUM));
|
|
var_r30 = Hu3DParticleCreate(var_r25, 8);
|
|
Hu3DModelPosSet(var_r30, 0.0f, 0.0f, 0.0f);
|
|
Hu3DModelScaleSet(var_r30, 1.0f, 1.0f, 1.0f);
|
|
Hu3DModelLayerSet(var_r30, 1);
|
|
Hu3DParticleColSet(var_r30, 255, 255, 0);
|
|
Hu3DParticleScaleSet(var_r30, 0.0f);
|
|
Hu3DParticleHookSet(var_r30, lbl_1_data_20[var_r31->unk_44]);
|
|
Hu3DModelCameraSet(var_r30, 1 << var_r31->unk_48);
|
|
var_r26 = HuPrcChildCreate(fn_1_6644, 8192, 12288, 0, HuPrcCurrentGet());
|
|
var_r26->user_data = var_r31;
|
|
lbl_1_bss_E0[var_r28] = var_r26;
|
|
}
|
|
for (var_r28 = 0; var_r28 < 4; var_r28++) {
|
|
var_r31 = &lbl_1_bss_F0[var_r28];
|
|
var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M414, 40), MEMORY_DEFAULT_NUM, HEAP_DATA);
|
|
var_r30 = Hu3DModelCreate(var_r27);
|
|
var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M414, 41) + lbl_1_bss_978, MEMORY_DEFAULT_NUM, HEAP_DATA);
|
|
Hu3DAnimCreate(var_r27, var_r30, "gsp000");
|
|
Hu3DModelPosSet(var_r30, 2000.0f * (var_r28 % 2), 520.0f, -820.0f + (2000.0f * (var_r28 / 2)));
|
|
Hu3DModelCameraSet(var_r30, 1 << var_r31->unk_48);
|
|
}
|
|
for (var_r28 = 0; var_r28 < 16; var_r28++) {
|
|
for (var_r29 = 0; var_r29 < 4; var_r29++) {
|
|
lbl_1_bss_990[var_r28][var_r29] = frandmod(120) + 60;
|
|
}
|
|
}
|
|
for (var_r28 = 0; var_r28 < 4; var_r28++) {
|
|
for (var_r29 = 0; var_r29 < 16; var_r29++) {
|
|
var_r26 = HuPrcChildCreate(fn_1_3ECC, 8192, 4096, 0, HuPrcCurrentGet());
|
|
var_r26->user_data = (void *)(var_r29 + (var_r28 << 16));
|
|
}
|
|
}
|
|
|
|
var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M414, 7), MEMORY_DEFAULT_NUM, HEAP_DATA);
|
|
var_r30 = Hu3DModelCreate(var_r27);
|
|
lbl_1_bss_A10 = var_r30;
|
|
Hu3DModelScaleSet(var_r30, 0.5f, 0.5f, 0.5f);
|
|
Hu3DModelCameraSet(var_r30, 16);
|
|
Hu3DModelAttrSet(var_r30, HU3D_MOTATTR_PAUSE);
|
|
|
|
var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M414, 40), MEMORY_DEFAULT_NUM, HEAP_DATA);
|
|
var_r30 = Hu3DModelCreate(var_r27);
|
|
|
|
var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M414, 41) + lbl_1_bss_978, MEMORY_DEFAULT_NUM, HEAP_DATA);
|
|
Hu3DAnimCreate(var_r27, var_r30, "gsp000");
|
|
Hu3DModelPosSet(var_r30, 0.0f, 260.0f, -410.0f);
|
|
Hu3DModelScaleSet(var_r30, 0.5f, 0.5f, 0.5f);
|
|
Hu3DModelCameraSet(var_r30, 16);
|
|
HuPrcChildCreate(fn_1_8A10, 4096, 4096, 0, HuPrcCurrentGet());
|
|
}
|
|
|
|
void fn_1_397C(void)
|
|
{
|
|
float var_f31;
|
|
|
|
s32 var_r31;
|
|
UnkM414BssF0Struct *var_r30;
|
|
s32 var_r29;
|
|
|
|
for (var_r29 = 0, var_f31 = 0.0f; var_r29 < 15; var_r29++) {
|
|
var_f31 += 0.06666667f;
|
|
for (var_r31 = 0; var_r31 < 4; var_r31++) {
|
|
var_r30 = &lbl_1_bss_F0[var_r31];
|
|
HuSprGrpScaleSet(var_r30->unk_2E, var_f31, var_f31);
|
|
}
|
|
HuPrcVSleep();
|
|
}
|
|
for (var_r31 = 0; var_r31 < 4; var_r31++) {
|
|
var_r30 = &lbl_1_bss_F0[var_r31];
|
|
HuSprGrpScaleSet(var_r30->unk_2E, 1.0f, 1.0f);
|
|
}
|
|
HuPrcKill(HuPrcCurrentGet());
|
|
while (TRUE) {
|
|
HuPrcVSleep();
|
|
}
|
|
}
|
|
|
|
void fn_1_3A58(void)
|
|
{
|
|
float var_f31;
|
|
s32 var_r29;
|
|
s32 var_r31;
|
|
UnkM414BssF0Struct *var_r30;
|
|
|
|
for (var_r29 = 0, var_f31 = 1.0f; var_r29 < 15; var_r29++) {
|
|
var_f31 -= 0.06666667f;
|
|
for (var_r31 = 0; var_r31 < 4; var_r31++) {
|
|
var_r30 = &lbl_1_bss_F0[var_r31];
|
|
HuSprGrpScaleSet(var_r30->unk_2E, var_f31, var_f31);
|
|
}
|
|
HuPrcVSleep();
|
|
}
|
|
for (var_r31 = 0; var_r31 < 4; var_r31++) {
|
|
var_r30 = &lbl_1_bss_F0[var_r31];
|
|
HuSprGrpScaleSet(var_r30->unk_2E, 0.0f, 0.0f);
|
|
}
|
|
HuPrcKill(HuPrcCurrentGet());
|
|
while (TRUE) {
|
|
HuPrcVSleep();
|
|
}
|
|
}
|
|
|
|
void fn_1_3B34(void)
|
|
{
|
|
float var_f31;
|
|
float var_f30;
|
|
double var_f29;
|
|
|
|
UnkM414BssF0Struct *var_r31;
|
|
s32 var_r30;
|
|
s32 var_r29;
|
|
|
|
var_r31 = HuPrcCurrentGet()->user_data;
|
|
HuAudFXPlay(9);
|
|
for (var_r30 = 30; var_r30 != 0; var_r30--) {
|
|
var_f31 = 1.0f - ((var_r30 - 1) / 30.0f);
|
|
var_f31 = (0.5 * var_f31) + (0.5 * (1.0f - ((1.0f - var_f31) * (1.0f - var_f31))));
|
|
if (var_f31 < 0.75) {
|
|
var_f29 = var_f31 / 0.75;
|
|
}
|
|
else {
|
|
var_f29 = 1.0;
|
|
}
|
|
var_f30 = var_f29;
|
|
var_f31 = 1.0f - ((1.0f - var_f31) * (1.0f - var_f31));
|
|
var_f30 = 1.0f - ((1.0f - var_f30) * (1.0f - var_f30));
|
|
var_r29 = (var_r31->unk_5C * 2) + 3;
|
|
HuSprTPLvlSet(var_r31->unk_2E, var_r29, var_f30);
|
|
HuSprScaleSet(var_r31->unk_2E, var_r29, 4.0f - (3.0f * var_f31), 4.0f - (3.0f * var_f31));
|
|
HuPrcVSleep();
|
|
}
|
|
HuPrcKill(HuPrcCurrentGet());
|
|
while (TRUE) {
|
|
HuPrcVSleep();
|
|
}
|
|
}
|
|
|
|
void fn_1_3D48(s32 arg0, s32 arg1)
|
|
{
|
|
UnkM414BssF0Struct *var_r31;
|
|
s32 var_r30;
|
|
Process *var_r29;
|
|
s32 var_r28;
|
|
|
|
var_r31 = &lbl_1_bss_F0[arg0];
|
|
var_r28 = lbl_1_bss_97C[var_r31->unk_44];
|
|
if (arg1 == 0) {
|
|
lbl_1_bss_97C[var_r31->unk_44]++;
|
|
}
|
|
else {
|
|
lbl_1_bss_97C[var_r31->unk_44]--;
|
|
}
|
|
for (var_r30 = 0; var_r30 < 3; var_r30++) {
|
|
if (var_r30 < lbl_1_bss_97C[var_r31->unk_44]) {
|
|
if (arg1 == 0 && var_r28 == var_r30) {
|
|
var_r29 = HuPrcChildCreate(fn_1_3B34, 8192, 8192, 0, lbl_1_bss_DC);
|
|
var_r29->user_data = var_r31;
|
|
var_r31->unk_5C = var_r30;
|
|
}
|
|
HuSprAttrSet(var_r31->unk_2E, (var_r30 * 2) + 2, 4);
|
|
HuSprAttrReset(var_r31->unk_2E, (var_r30 * 2) + 3, 4);
|
|
}
|
|
else {
|
|
HuSprAttrReset(var_r31->unk_2E, (var_r30 * 2) + 2, 4);
|
|
HuSprAttrSet(var_r31->unk_2E, (var_r30 * 2) + 3, 4);
|
|
}
|
|
}
|
|
}
|
|
|
|
void fn_1_3ECC(void)
|
|
{
|
|
float var_f31;
|
|
float var_f30;
|
|
float var_f29;
|
|
float var_f28;
|
|
|
|
UnkM414BssF0Struct *var_r31;
|
|
s32 var_r30;
|
|
s32 var_r29;
|
|
s32 var_r28;
|
|
s32 var_r27;
|
|
|
|
var_r30 = (s32)HuPrcCurrentGet()->user_data;
|
|
var_r27 = (var_r30 >> 16);
|
|
var_r30 = (u16)var_r30;
|
|
|
|
while (lbl_1_bss_98C == 0) {
|
|
HuPrcVSleep();
|
|
}
|
|
var_r31 = &lbl_1_bss_F0[var_r27];
|
|
var_r29 = 0;
|
|
while (TRUE) {
|
|
HuPrcSleep(lbl_1_bss_990[var_r30][var_r29++]);
|
|
if (var_r29 >= 4) {
|
|
var_r29 = 0;
|
|
}
|
|
if (var_r31->unk_1F8 == var_r30) {
|
|
continue;
|
|
}
|
|
if (lbl_1_bss_98C == 5) {
|
|
break;
|
|
}
|
|
|
|
var_f31 = 40.0f * ((var_r30 + 2) / 2);
|
|
if (var_r31->unk_70 - var_f31 >= 0.0f) {
|
|
var_f29 = var_r31->unk_70 - var_f31;
|
|
}
|
|
else {
|
|
var_f29 = -(var_r31->unk_70 - var_f31);
|
|
}
|
|
if (var_f29 < 45.0f || (0.0f == var_r31->unk_70 && var_r30 >= 14)) {
|
|
if (var_r30 == fn_1_654C(var_r31->unk_44, 0) || var_r30 == fn_1_654C(var_r31->unk_44, 1)) {
|
|
if (var_r31->unk_44 & 1) {
|
|
HuAudFXPlay(1434);
|
|
}
|
|
else {
|
|
HuAudFXPlay(1433);
|
|
}
|
|
}
|
|
else {
|
|
HuAudFXPlay(1450);
|
|
}
|
|
}
|
|
Hu3DModelAttrReset(var_r31->unk_D4[var_r30], HU3D_MOTATTR_PAUSE | HU3D_MOTATTR_REV | HU3D_MOTATTR_SHAPE_PAUSE | HU3D_MOTATTR_SHAPE_REV);
|
|
do {
|
|
var_r28 = lbl_1_bss_990[var_r30][var_r29++];
|
|
if (var_r29 >= 4) {
|
|
var_r29 = 0;
|
|
}
|
|
while (var_r28) {
|
|
if (lbl_1_bss_98C == 5) {
|
|
break;
|
|
}
|
|
HuPrcVSleep();
|
|
var_r28--;
|
|
}
|
|
} while (lbl_1_bss_98C != 5 && var_r31->unk_1F8 != -1 && lbl_1_bss_978 == lbl_1_bss_938[var_r31->unk_1F8]);
|
|
|
|
Hu3DModelAttrReset(var_r31->unk_D4[var_r30], HU3D_MOTATTR_PAUSE | HU3D_MOTATTR_SHAPE_PAUSE);
|
|
Hu3DModelAttrSet(var_r31->unk_D4[var_r30], HU3D_MOTATTR_REV | HU3D_MOTATTR_SHAPE_REV);
|
|
HuPrcSleep(10);
|
|
var_f30 = 40.0f * ((var_r30 + 2) / 2);
|
|
if (var_r31->unk_70 - var_f30 >= 0.0f) {
|
|
var_f28 = var_r31->unk_70 - var_f30;
|
|
}
|
|
else {
|
|
var_f28 = -(var_r31->unk_70 - var_f30);
|
|
}
|
|
if (var_f28 < 45.0f || (0.0f == var_r31->unk_70 && var_r30 >= 14)) {
|
|
if (var_r30 == fn_1_654C(var_r31->unk_44, 0) || var_r30 == fn_1_654C(var_r31->unk_44, 1)) {
|
|
if (var_r31->unk_44 & 1) {
|
|
HuAudFXPlay(1436);
|
|
}
|
|
else {
|
|
HuAudFXPlay(1435);
|
|
}
|
|
}
|
|
else {
|
|
HuAudFXPlay(1452);
|
|
}
|
|
}
|
|
}
|
|
HuPrcKill(HuPrcCurrentGet());
|
|
while (TRUE) {
|
|
HuPrcVSleep();
|
|
}
|
|
}
|
|
|
|
void fn_1_42AC(void)
|
|
{
|
|
s32 sp8[1];
|
|
|
|
float var_f31;
|
|
float var_f30;
|
|
float var_f29;
|
|
float var_f28;
|
|
float var_f27;
|
|
float var_f26;
|
|
float var_f25;
|
|
float var_f24;
|
|
float var_f23;
|
|
float var_f22;
|
|
|
|
UnkM414BssF0Struct *var_r31;
|
|
UnkM414Struct2 *var_r30;
|
|
s32 var_r28;
|
|
s32 var_r27;
|
|
|
|
var_r30 = HuPrcCurrentGet()->user_data;
|
|
var_r31 = var_r30->unk_00;
|
|
var_r27 = var_r30->unk_00->unk_44;
|
|
HuPrcSleep(30);
|
|
if (var_r31->unk_44 & 1) {
|
|
HuAudFXPlay(1444);
|
|
}
|
|
else {
|
|
HuAudFXPlay(1443);
|
|
}
|
|
if (var_r31->unk_44 & 1) {
|
|
HuAudFXPlay(1448);
|
|
}
|
|
else {
|
|
HuAudFXPlay(1447);
|
|
}
|
|
if (var_r30->unk_08) {
|
|
var_f24 = -200.0 * (sind(lbl_1_bss_920[var_r27]) * cos(0.0));
|
|
var_f26 = 150.0 + (-200.0 * sin(0.0));
|
|
var_f23 = -200.0 * (cos(0.0) * cosd(lbl_1_bss_920[var_r27]));
|
|
}
|
|
else {
|
|
var_f24 = -200.0 * (sind(lbl_1_bss_920[var_r27]) * cos(0.3490658503988659));
|
|
var_f26 = 150.0 + (-200.0 * sin(-0.3490658503988659));
|
|
var_f23 = -200.0 * (cos(-0.3490658503988659) * cosd(lbl_1_bss_920[var_r27]));
|
|
}
|
|
if (!lbl_1_bss_938[var_r30->unk_04]) {
|
|
var_f26 += 70.0f;
|
|
}
|
|
var_f31 = var_r31->unk_134[var_r30->unk_04].x;
|
|
var_f30 = var_r31->unk_134[var_r30->unk_04].y;
|
|
var_f29 = var_r31->unk_134[var_r30->unk_04].z;
|
|
|
|
var_f28 = (var_f24 - var_f31) / 30.0f;
|
|
var_f22 = (var_f26 - var_f30) / 30.0f;
|
|
var_f27 = (var_f23 - var_f29) / 30.0f;
|
|
|
|
for (var_r28 = 0; var_r28 < 30; var_r28++) {
|
|
var_f31 += var_f28;
|
|
var_f30 += var_f22;
|
|
var_f29 += var_f27;
|
|
Hu3DModelPosSet(var_r31->unk_94[var_r30->unk_04], var_f31 + (2000.0f * (var_r27 % 2)), var_f30, var_f29 + (2000.0f * (var_r27 / 2)));
|
|
HuPrcVSleep();
|
|
}
|
|
HuPrcSleep(10);
|
|
HuAudFXPlay(lbl_1_data_8C[lbl_1_bss_978]);
|
|
var_f28 = 500.0 * sind(lbl_1_bss_920[var_r27] - 20.0f);
|
|
var_f28 = var_f28;
|
|
var_f27 = 500.0 * cosd(lbl_1_bss_920[var_r27] - 20.0f);
|
|
var_f27 = var_f27;
|
|
var_f28 /= 30.0f;
|
|
var_f27 /= 30.0f;
|
|
|
|
for (var_r28 = 0, var_f25 = -20.0f; var_r28 < 30.0f; var_r28++) {
|
|
var_f31 += var_f28;
|
|
var_f30 -= var_f25;
|
|
var_f29 += var_f27;
|
|
var_f25 += 2.0f;
|
|
Hu3DModelPosSet(var_r31->unk_94[var_r30->unk_04], var_f31 + (2000.0f * (var_r27 % 2)), var_f30, var_f29 + (2000.0f * (var_r27 / 2)));
|
|
HuPrcVSleep();
|
|
}
|
|
var_r31->unk_F4[var_r30->unk_04] = 1;
|
|
Hu3DModelAttrSet(var_r31->unk_94[var_r30->unk_04], HU3D_ATTR_DISPOFF);
|
|
for (var_r28 = 0, sp8[0] = 0; var_r28 < 4; var_r28++) {
|
|
if (lbl_1_bss_97C[var_r28] >= 3) {
|
|
break;
|
|
}
|
|
}
|
|
if (var_r28 >= 4) {
|
|
fn_1_3D48(var_r31->unk_44, 0);
|
|
}
|
|
CharModelMotionSpeedSet(lbl_1_data_30[GWPlayerCfg[var_r31->unk_44].character], 1.0f);
|
|
if (var_r30->unk_08) {
|
|
CharModelMotionShiftSet(lbl_1_data_30[GWPlayerCfg[var_r31->unk_44].character], var_r31->unk_14[1], 60.0f, 5.0f, HU3D_MOTATTR_NONE);
|
|
}
|
|
else {
|
|
CharModelMotionShiftSet(lbl_1_data_30[GWPlayerCfg[var_r31->unk_44].character], var_r31->unk_14[1], 0.0f, 5.0f, HU3D_MOTATTR_NONE);
|
|
}
|
|
HuPrcSleep(5);
|
|
Hu3DModelAttrSet(var_r31->unk_12, HU3D_MOTATTR_PAUSE);
|
|
CharModelMotionSpeedSet(lbl_1_data_30[GWPlayerCfg[var_r31->unk_44].character], 2.0f);
|
|
var_r30->unk_0C = 0;
|
|
HuPrcSleep(5);
|
|
HuPrcKill(HuPrcCurrentGet());
|
|
while (TRUE) {
|
|
HuPrcVSleep();
|
|
}
|
|
}
|
|
|
|
u32 fn_1_4C04(s32 arg0, s32 arg1, s32 arg2)
|
|
{
|
|
switch (GWPlayerCfg[arg0].diff) {
|
|
case 0:
|
|
arg1 *= 12;
|
|
break;
|
|
case 1:
|
|
arg1 *= 10;
|
|
break;
|
|
case 2:
|
|
arg1 *= 10;
|
|
break;
|
|
default:
|
|
arg1 *= 8;
|
|
break;
|
|
}
|
|
if (arg2) {
|
|
arg1 / 2;
|
|
}
|
|
return arg1;
|
|
}
|
|
|
|
s32 fn_1_4C74(UnkM414BssF0Struct *arg0)
|
|
{
|
|
s32 sp8[4];
|
|
|
|
s32 var_r31;
|
|
s32 var_r30;
|
|
s32 var_r29;
|
|
s32 var_r27;
|
|
s32 var_r26;
|
|
s32 var_r25;
|
|
|
|
for (var_r31 = 0; var_r31 < 3; var_r31++) {
|
|
sp8[var_r31] = -1;
|
|
}
|
|
|
|
for (var_r31 = var_r30 = 0; var_r31 < 16; var_r31++) {
|
|
if (lbl_1_bss_978 == lbl_1_bss_938[var_r31] && !arg0->unk_F4[var_r31]) {
|
|
sp8[var_r30++] = var_r31 / 2;
|
|
}
|
|
}
|
|
var_r29 = fn_1_654C(arg0->unk_44, 0) / 2;
|
|
if (fn_1_654C(arg0->unk_44, 0) == -1) {
|
|
var_r29 = 8;
|
|
}
|
|
for (var_r31 = 0, var_r30 = 100, var_r26 = -1; var_r31 < 3; var_r31++) {
|
|
if (sp8[var_r31] == -1) {
|
|
break;
|
|
}
|
|
if (var_r29 - sp8[var_r31] >= 0) {
|
|
var_r25 = var_r29 - sp8[var_r31];
|
|
}
|
|
else {
|
|
var_r25 = -(var_r29 - sp8[var_r31]);
|
|
}
|
|
var_r27 = var_r25;
|
|
if (var_r30 > var_r27) {
|
|
var_r30 = var_r27;
|
|
var_r26 = var_r31;
|
|
}
|
|
}
|
|
if (!var_r31) {
|
|
return 0;
|
|
}
|
|
return var_r29 - sp8[var_r26];
|
|
}
|
|
|
|
inline s32 fn_1_4C74_inline(UnkM414BssF0Struct *arg0)
|
|
{
|
|
s32 sp8[4];
|
|
|
|
s32 var_r31;
|
|
s32 var_r30;
|
|
s32 var_r29;
|
|
s32 var_r27;
|
|
s32 var_r26;
|
|
|
|
for (var_r31 = 0; var_r31 < 3; var_r31++) {
|
|
sp8[var_r31] = -1;
|
|
}
|
|
|
|
for (var_r31 = var_r30 = 0; var_r31 < 16; var_r31++) {
|
|
if (lbl_1_bss_978 == lbl_1_bss_938[var_r31] && !arg0->unk_F4[var_r31]) {
|
|
sp8[var_r30++] = var_r31 / 2;
|
|
}
|
|
}
|
|
var_r29 = fn_1_654C(arg0->unk_44, 0) / 2;
|
|
if (fn_1_654C(arg0->unk_44, 0) == -1) {
|
|
var_r29 = 8;
|
|
}
|
|
for (var_r31 = 0, var_r30 = 100, var_r26 = -1; var_r31 < 3; var_r31++) {
|
|
if (sp8[var_r31] == -1) {
|
|
break;
|
|
}
|
|
var_r27 = ABS_INV(var_r29 - sp8[var_r31]);
|
|
if (var_r30 > var_r27) {
|
|
var_r30 = var_r27;
|
|
var_r26 = var_r31;
|
|
}
|
|
}
|
|
|
|
if (!var_r31) {
|
|
return 0;
|
|
}
|
|
|
|
return var_r29 - sp8[var_r26];
|
|
}
|
|
|
|
void fn_1_4E10(UnkM414BssF0Struct *arg0)
|
|
{
|
|
float var_f31;
|
|
|
|
u32 var_r21;
|
|
|
|
arg0->unk_1FC = arg0->unk_1FD = 0;
|
|
arg0->unk_1FF = arg0->unk_1FE = 0;
|
|
arg0->unk_200 = 0;
|
|
|
|
switch (GWPlayerCfg[arg0->unk_44].diff) {
|
|
case 0:
|
|
var_r21 = 45;
|
|
break;
|
|
case 1:
|
|
var_r21 = 55;
|
|
break;
|
|
case 2:
|
|
var_r21 = 70;
|
|
break;
|
|
default:
|
|
var_r21 = 80;
|
|
break;
|
|
}
|
|
if (arg0->unk_204) {
|
|
arg0->unk_204--;
|
|
return;
|
|
}
|
|
var_f31 = fn_1_4C74_inline(arg0);
|
|
if (var_f31 > 0.0f) {
|
|
arg0->unk_1FE = 50;
|
|
arg0->unk_204 = fn_1_4C04(arg0->unk_44, 5, 1) + 20 + fn_1_4C04(arg0->unk_44, frandmod(10), 0);
|
|
}
|
|
if (var_f31 < 0.0f) {
|
|
arg0->unk_1FF = 50;
|
|
arg0->unk_204 = fn_1_4C04(arg0->unk_44, 5, 1) + 20 + fn_1_4C04(arg0->unk_44, frandmod(10), 0);
|
|
}
|
|
if (0.0f == var_f31) {
|
|
arg0->unk_204 = fn_1_4C04(arg0->unk_44, 1, 1) + 10 + fn_1_4C04(arg0->unk_44, frandmod(5), 0);
|
|
|
|
if (arg0->unk_1F4 == 1) {
|
|
if (lbl_1_bss_978 == lbl_1_bss_938[fn_1_654C(arg0->unk_44, 0)] && !arg0->unk_F4[fn_1_654C(arg0->unk_44, 0)]) {
|
|
if (!(Hu3DModelMotionAttrGet(arg0->unk_D4[fn_1_654C(arg0->unk_44, 0)]) & 0x40000004)) {
|
|
arg0->unk_200 = 256;
|
|
}
|
|
}
|
|
else {
|
|
arg0->unk_1FD = -50;
|
|
}
|
|
}
|
|
else if (lbl_1_bss_978 == lbl_1_bss_938[fn_1_654C(arg0->unk_44, 1)] && !arg0->unk_F4[fn_1_654C(arg0->unk_44, 1)]) {
|
|
if (!(Hu3DModelMotionAttrGet(arg0->unk_D4[fn_1_654C(arg0->unk_44, 1)]) & 0x40000004)) {
|
|
arg0->unk_200 = 256;
|
|
}
|
|
}
|
|
else {
|
|
arg0->unk_1FD = 50;
|
|
}
|
|
}
|
|
if (frandmod(100) > var_r21) {
|
|
switch (frandmod(5)) {
|
|
case 0:
|
|
arg0->unk_1FE = 50;
|
|
break;
|
|
case 1:
|
|
arg0->unk_1FF = 50;
|
|
break;
|
|
case 2:
|
|
break;
|
|
case 3:
|
|
arg0->unk_1FD = -50;
|
|
break;
|
|
default:
|
|
arg0->unk_1FD = -50;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
s8 fn_1_5554(s32 arg0, s32 arg1) // similar to m411Dll/main.c::fn_1_5D58
|
|
{
|
|
UnkM414BssF0Struct *var_r31;
|
|
s8 var_r30;
|
|
|
|
var_r31 = &lbl_1_bss_F0[arg0];
|
|
var_r30 = 0;
|
|
if (lbl_1_bss_98C < 4) {
|
|
if (!GWPlayerCfg[arg0].iscom) {
|
|
(arg1) ? (var_r30 = HuPadStkY[var_r31->unk_4C]) : (var_r30 = HuPadStkX[var_r31->unk_4C]);
|
|
}
|
|
else {
|
|
(arg1) ? (var_r30 = var_r31->unk_1FD) : (var_r30 = var_r31->unk_1FC);
|
|
}
|
|
}
|
|
return var_r30;
|
|
}
|
|
|
|
u8 fn_1_5624(s32 arg0, s32 arg1)
|
|
{
|
|
UnkM414BssF0Struct *var_r31;
|
|
s8 var_r30;
|
|
|
|
var_r31 = &lbl_1_bss_F0[arg0];
|
|
var_r30 = 0;
|
|
if (lbl_1_bss_98C < 4) {
|
|
if (!GWPlayerCfg[arg0].iscom) {
|
|
(arg1) ? (var_r30 = HuPadTrigR[var_r31->unk_4C]) : (var_r30 = HuPadTrigL[var_r31->unk_4C]);
|
|
}
|
|
else {
|
|
(arg1) ? (var_r30 = var_r31->unk_1FE) : (var_r30 = var_r31->unk_1FF);
|
|
}
|
|
}
|
|
return var_r30;
|
|
}
|
|
|
|
u16 fn_1_56FC(s32 arg0)
|
|
{
|
|
UnkM414BssF0Struct *var_r31;
|
|
u16 var_r30;
|
|
|
|
var_r31 = &lbl_1_bss_F0[arg0];
|
|
var_r30 = 0;
|
|
if (lbl_1_bss_98C < 4) {
|
|
if (!GWPlayerCfg[arg0].iscom) {
|
|
var_r30 = HuPadBtnDown[var_r31->unk_4C];
|
|
}
|
|
else {
|
|
var_r30 = var_r31->unk_200;
|
|
}
|
|
}
|
|
return var_r30;
|
|
}
|
|
|
|
void fn_1_5780(UnkM414BssF0Struct *arg0, float arg8)
|
|
{
|
|
float var_f31;
|
|
float var_f30;
|
|
float var_f29;
|
|
float var_f28;
|
|
float var_f27;
|
|
float var_f26;
|
|
|
|
s32 var_r31;
|
|
|
|
var_f29 = 60.0f;
|
|
var_f31 = 180.0f + arg8;
|
|
if (var_f31 > 360.0f) {
|
|
var_f31 -= 360.0f;
|
|
}
|
|
for (var_r31 = 0, var_f30 = 40.0f; var_r31 < 16; var_r31++) {
|
|
if (var_f30 < var_f29 || var_f31 < var_f29) {
|
|
var_f30 += var_f29;
|
|
var_f31 += var_f29;
|
|
}
|
|
if (var_f30 - var_f31 >= 0.0f) {
|
|
var_f27 = var_f30 - var_f31;
|
|
}
|
|
else {
|
|
var_f27 = -(var_f30 - var_f31);
|
|
}
|
|
var_f28 = var_f27;
|
|
if (var_f28 < var_f29 || arg0->unk_F4[var_r31] == 1) {
|
|
Hu3DModelAttrSet(arg0->unk_94[var_r31], HU3D_ATTR_DISPOFF);
|
|
}
|
|
else {
|
|
Hu3DModelAttrReset(arg0->unk_94[var_r31], HU3D_ATTR_DISPOFF);
|
|
}
|
|
if (var_f28 < var_f29) {
|
|
Hu3DModelAttrSet(arg0->unk_D4[var_r31], HU3D_ATTR_DISPOFF);
|
|
}
|
|
else {
|
|
Hu3DModelAttrReset(arg0->unk_D4[var_r31], HU3D_ATTR_DISPOFF);
|
|
}
|
|
if (var_r31 & 1) {
|
|
var_f30 += 40.0f;
|
|
}
|
|
}
|
|
var_f31 = 180.0f + arg8;
|
|
if (var_f31 > 360.0f) {
|
|
var_f31 -= 360.0f;
|
|
}
|
|
for (var_r31 = 0, var_f30 = 0.0f; var_r31 < 9; var_f30 += 40.0f, var_r31++) {
|
|
if (var_f30 < var_f29 || var_f31 < var_f29) {
|
|
var_f30 += var_f29;
|
|
var_f31 += var_f29;
|
|
}
|
|
if (var_f30 - var_f31 >= 0.0f) {
|
|
var_f26 = var_f30 - var_f31;
|
|
}
|
|
else {
|
|
var_f26 = -(var_f30 - var_f31);
|
|
}
|
|
var_f28 = var_f26;
|
|
if (var_f28 < var_f29) {
|
|
Hu3DModelAttrSet(arg0->unk_00[var_r31], HU3D_ATTR_DISPOFF);
|
|
}
|
|
else {
|
|
Hu3DModelAttrReset(arg0->unk_00[var_r31], HU3D_ATTR_DISPOFF);
|
|
}
|
|
}
|
|
}
|
|
|
|
void fn_1_5A3C(void)
|
|
{
|
|
float var_f31;
|
|
float var_f30;
|
|
float var_f29;
|
|
float var_f28;
|
|
float var_f27;
|
|
float var_f26;
|
|
|
|
UnkM414Struct4 *var_r31;
|
|
s32 var_r30;
|
|
s32 var_r29;
|
|
s32 var_r28;
|
|
|
|
var_r31 = HuPrcCurrentGet()->user_data;
|
|
HuPrcSleep(10);
|
|
var_r28 = var_r31->unk_00->unk_44;
|
|
var_f26 = lbl_1_bss_920[var_r28];
|
|
fn_1_5780(var_r31->unk_00, lbl_1_bss_920[var_r28]);
|
|
|
|
if (var_r31->unk_04) {
|
|
var_f30 = 40.0f + lbl_1_bss_920[var_r28];
|
|
var_f29 = 40.0f;
|
|
}
|
|
else {
|
|
var_f30 = lbl_1_bss_920[var_r28] - 40.0f;
|
|
var_f29 = -40.0f;
|
|
}
|
|
if (var_f30 >= 360.0f) {
|
|
var_f30 -= 360.0f;
|
|
}
|
|
if (var_f30 < 0.0f) {
|
|
var_f30 += 360.0f;
|
|
}
|
|
for (var_r30 = 0; var_r30 < 9; var_r30++) {
|
|
Hu3DModelAttrSet(var_r31->unk_00->unk_00[var_r30], HU3D_MOTATTR_PAUSE);
|
|
}
|
|
for (var_r30 = 0, var_f28 = 0.0f; var_r30 < 10; var_r30++, var_f28 += 9.0f) {
|
|
var_f27 = (var_f29 / 2) * (1.0 - cosd(var_f28));
|
|
lbl_1_bss_920[var_r28] = var_f26 + var_f27;
|
|
for (var_r29 = 0; var_r29 < 9; var_r29++) {
|
|
if (!var_r31->unk_04) {
|
|
var_f31 = (var_f27 / var_f29) * Hu3DMotionMaxTimeGet(var_r31->unk_00->unk_00[var_r29]);
|
|
}
|
|
else {
|
|
var_f31 = Hu3DMotionMaxTimeGet(var_r31->unk_00->unk_00[var_r29])
|
|
- (var_f27 / var_f29) * Hu3DMotionMaxTimeGet(var_r31->unk_00->unk_00[var_r29]);
|
|
}
|
|
Hu3DMotionTimeSet(var_r31->unk_00->unk_00[var_r29], var_f31 >= 0.0f ? var_f31 : -var_f31);
|
|
}
|
|
HuPrcVSleep();
|
|
}
|
|
for (var_r30 = 0, var_f28 = 0.0f; var_r30 < 10; var_r30++, var_f28 += 9.0f) {
|
|
var_f27 = (var_f29 / 2) + ((var_f29 / 2) * sind(var_f28));
|
|
lbl_1_bss_920[var_r28] = var_f26 + var_f27;
|
|
for (var_r29 = 0; var_r29 < 9; var_r29++) {
|
|
if (!var_r31->unk_04) {
|
|
var_f31 = (var_f27 / var_f29) * Hu3DMotionMaxTimeGet(var_r31->unk_00->unk_00[var_r29]);
|
|
}
|
|
else {
|
|
var_f31 = Hu3DMotionMaxTimeGet(var_r31->unk_00->unk_00[var_r29])
|
|
- (var_f27 / var_f29) * Hu3DMotionMaxTimeGet(var_r31->unk_00->unk_00[var_r29]);
|
|
}
|
|
Hu3DMotionTimeSet(var_r31->unk_00->unk_00[var_r29], var_f31 >= 0.0f ? var_f31 : -var_f31);
|
|
}
|
|
HuPrcVSleep();
|
|
}
|
|
if (!var_r31->unk_04) {
|
|
for (var_r30 = 0; var_r30 < 9; var_r30++) {
|
|
Hu3DMotionTimeSet(var_r31->unk_00->unk_00[var_r30], Hu3DMotionMaxTimeGet(var_r31->unk_00->unk_00[var_r30]));
|
|
}
|
|
}
|
|
else {
|
|
for (var_r30 = 0; var_r30 < 9; var_r30++) {
|
|
Hu3DMotionTimeSet(var_r31->unk_00->unk_00[var_r30], 0.0f);
|
|
}
|
|
}
|
|
lbl_1_bss_920[var_r28] = var_f30;
|
|
*var_r31->unk_08_ptr = 0;
|
|
HuPrcKill(HuPrcCurrentGet());
|
|
while (TRUE) {
|
|
HuPrcVSleep();
|
|
}
|
|
}
|
|
|
|
void fn_1_5EE8(void)
|
|
{
|
|
float var_f31;
|
|
float var_f30;
|
|
float var_f29;
|
|
float var_f28;
|
|
|
|
UnkM414Struct4 *var_r31;
|
|
s32 var_r30;
|
|
s32 var_r29;
|
|
|
|
var_r31 = HuPrcCurrentGet()->user_data;
|
|
var_r29 = var_r31->unk_00->unk_44;
|
|
var_f28 = lbl_1_bss_920[var_r29];
|
|
if (var_r31->unk_04) {
|
|
var_f31 = 40.0f + lbl_1_bss_920[var_r29];
|
|
var_f29 = 40.0f;
|
|
}
|
|
else {
|
|
var_f31 = lbl_1_bss_920[var_r29] - 40.0f;
|
|
var_f29 = -40.0f;
|
|
}
|
|
if (var_f31 >= 360.0f) {
|
|
var_f31 -= 360.0f;
|
|
}
|
|
if (var_f31 < 0.0f) {
|
|
var_f31 += 360.0f;
|
|
}
|
|
for (var_r30 = 0, var_f30 = 0.0f; var_r30 < 15; var_r30++, var_f30 += 6.0f) {
|
|
var_r31->unk_00->unk_70 = var_f28 + ((var_f29 / 2) * (1.0 - cosd(var_f30)));
|
|
HuPrcVSleep();
|
|
}
|
|
for (var_r30 = 0, var_f30 = 0.0f; var_r30 < 15; var_r30++, var_f30 += 6.0f) {
|
|
var_r31->unk_00->unk_70 = (var_f29 / 2) + (var_f28 + ((var_f29 / 2) * sind(var_f30)));
|
|
HuPrcVSleep();
|
|
}
|
|
var_r31->unk_00->unk_70 = var_f31;
|
|
HuPrcKill(HuPrcCurrentGet());
|
|
while (TRUE) {
|
|
HuPrcVSleep();
|
|
}
|
|
}
|
|
|
|
void fn_1_6134(void)
|
|
{
|
|
float var_f31;
|
|
float var_f30;
|
|
float var_f29;
|
|
|
|
UnkM414BssF0Struct *var_r31;
|
|
s32 var_r30;
|
|
|
|
var_r31 = HuPrcCurrentGet()->user_data;
|
|
for (var_r30 = 0, var_f31 = 0.0f; var_r30 < 10; var_r30++, var_f31 += 18.0f) {
|
|
var_f30 = 50.0 * sind(lbl_1_bss_920[var_r31->unk_44]) * sind(var_f31);
|
|
var_f29 = 50.0 * cosd(lbl_1_bss_920[var_r31->unk_44]) * sind(var_f31);
|
|
Hu3DModelPosSet(var_r31->unk_12, (2000.0f * (var_r31->unk_44 % 2)) + (var_r31->unk_60 + var_f30), var_r31->unk_64,
|
|
(2000.0f * (var_r31->unk_44 / 2)) + (var_r31->unk_68 + var_f29));
|
|
Hu3DModelPosSet(var_r31->unk_20, var_f30 + (2000.0f * (var_r31->unk_44 % 2)), 0.0f, var_f29 + (2000.0f * (var_r31->unk_44 / 2)));
|
|
HuPrcVSleep();
|
|
}
|
|
Hu3DModelPosSet(
|
|
var_r31->unk_12, var_r31->unk_60 + (2000.0f * (var_r31->unk_44 % 2)), var_r31->unk_64, var_r31->unk_68 + (2000.0f * (var_r31->unk_44 / 2)));
|
|
Hu3DModelPosSet(var_r31->unk_20, 2000.0f * (var_r31->unk_44 % 2), 0.0f, 2000.0f * (var_r31->unk_44 / 2));
|
|
HuPrcKill(HuPrcCurrentGet());
|
|
while (TRUE) {
|
|
HuPrcVSleep();
|
|
}
|
|
}
|
|
|
|
s32 fn_1_654C(s32 arg0, s32 arg1)
|
|
{
|
|
float var_f31;
|
|
s32 var_r31;
|
|
|
|
for (var_r31 = 0, var_f31 = 40.0f; var_r31 < 16; var_f31 += 40.0f, var_r31 += 2) {
|
|
if (var_f31 == lbl_1_bss_920[arg0]) {
|
|
if (arg1) {
|
|
var_r31++;
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
if (var_r31 >= 16) {
|
|
var_r31 = -1;
|
|
}
|
|
return var_r31;
|
|
}
|
|
|
|
s32 fn_1_65DC(UnkM414BssF0Struct *arg0, s32 arg1)
|
|
{
|
|
s32 var_r31;
|
|
|
|
var_r31 = 1;
|
|
if (Hu3DModelMotionAttrGet(arg0->unk_D4[arg1]) & 0x40000004) {
|
|
var_r31 = 0;
|
|
}
|
|
return var_r31;
|
|
}
|
|
|
|
void fn_1_6644(void)
|
|
{
|
|
UnkM414Struct4 sp9C;
|
|
UnkM414Struct2 sp8C;
|
|
|
|
UnkM414BssF0Struct *var_r31;
|
|
Process *var_r30;
|
|
s32 var_r29;
|
|
s32 var_r28;
|
|
|
|
var_r31 = HuPrcCurrentGet()->user_data;
|
|
var_r31->unk_50 = 0;
|
|
var_r31->unk_1F4 = 1;
|
|
var_r31->unk_1F8 = -1;
|
|
var_r31->unk_204 = 0;
|
|
|
|
while (!lbl_1_bss_98C) {
|
|
HuPrcVSleep();
|
|
}
|
|
lbl_1_bss_98C = 2;
|
|
|
|
while (lbl_1_bss_98C == 2) {
|
|
HuPrcVSleep();
|
|
}
|
|
var_r31->unk_58 = 0;
|
|
lbl_1_bss_97C[var_r31->unk_44] = 0;
|
|
|
|
while (TRUE) {
|
|
lbl_1_bss_930[0] = lbl_1_bss_930[1] = 0;
|
|
if (GWPlayerCfg[var_r31->unk_44].iscom == 1) {
|
|
fn_1_4E10(var_r31);
|
|
}
|
|
if (var_r31->unk_1F4 == 3 && Hu3DMotionEndCheck(var_r31->unk_20)) {
|
|
if (0.0f == Hu3DMotionTimeGet(var_r31->unk_20)) {
|
|
Hu3DMotionSet(var_r31->unk_20, var_r31->unk_22[0]);
|
|
var_r31->unk_1F4 = 1;
|
|
}
|
|
else {
|
|
var_r31->unk_1F4 = 2;
|
|
Hu3DMotionSet(var_r31->unk_20, var_r31->unk_22[0]);
|
|
Hu3DMotionTimeSet(var_r31->unk_20, Hu3DMotionMaxTimeGet(var_r31->unk_20));
|
|
}
|
|
}
|
|
if (var_r31->unk_1F4 == 4 && Hu3DMotionEndCheck(var_r31->unk_20)) {
|
|
var_r31->unk_1F4 = 1;
|
|
var_r31->unk_1F8 = -1;
|
|
Hu3DMotionSet(var_r31->unk_20, var_r31->unk_22[0]);
|
|
Hu3DModelAttrSet(var_r31->unk_20, HU3D_MOTATTR_PAUSE);
|
|
Hu3DModelAttrReset(var_r31->unk_20, HU3D_MOTATTR_REV);
|
|
Hu3DMotionSpeedSet(var_r31->unk_20, 2.0f);
|
|
}
|
|
if (var_r31->unk_1F4 == 5 && Hu3DMotionEndCheck(var_r31->unk_20)) {
|
|
var_r31->unk_1F4 = 2;
|
|
var_r31->unk_1F8 = -1;
|
|
Hu3DMotionSet(var_r31->unk_20, var_r31->unk_22[0]);
|
|
Hu3DModelAttrReset(var_r31->unk_20, HU3D_MOTATTR_REV);
|
|
Hu3DMotionTimeSet(var_r31->unk_20, Hu3DMotionMaxTimeGet(var_r31->unk_20));
|
|
Hu3DMotionSpeedSet(var_r31->unk_20, 2.0f);
|
|
}
|
|
if ((fn_1_56FC(var_r31->unk_44) & PAD_BUTTON_A) && !var_r31->unk_58) {
|
|
if (fn_1_654C(var_r31->unk_44, 0) != -1) {
|
|
if (var_r31->unk_1F4 == 1) {
|
|
var_r29 = fn_1_654C(var_r31->unk_44, 0);
|
|
if (!var_r31->unk_F4[var_r29]) {
|
|
if (var_r31->unk_44 & 1) {
|
|
HuAudFXPlay(1442);
|
|
}
|
|
else {
|
|
HuAudFXPlay(1441);
|
|
}
|
|
omVibrate(var_r31->unk_44, 12, 6, 6);
|
|
var_r31->unk_1F4 = 4;
|
|
var_r31->unk_1F8 = var_r29;
|
|
Hu3DMotionSet(var_r31->unk_20, var_r31->unk_22[1]);
|
|
Hu3DModelAttrReset(var_r31->unk_20, HU3D_MOTATTR_PAUSE | HU3D_MOTATTR_REV);
|
|
Hu3DMotionSpeedSet(var_r31->unk_20, 1.0f);
|
|
var_r30 = HuPrcChildCreate(fn_1_6134, 8192, 8192, 0, HuPrcCurrentGet());
|
|
var_r30->user_data = var_r31;
|
|
if (lbl_1_bss_978 == lbl_1_bss_938[var_r29] && fn_1_65DC(var_r31, var_r29)) {
|
|
Hu3DModelAttrReset(var_r31->unk_D4[var_r29], HU3D_MOTATTR_PAUSE | HU3D_MOTATTR_REV | HU3D_MOTATTR_SHAPE_PAUSE | HU3D_MOTATTR_SHAPE_REV);
|
|
var_r30 = HuPrcChildCreate(fn_1_42AC, 8192, 8192, 0, HuPrcCurrentGet());
|
|
var_r30->user_data = &sp8C;
|
|
sp8C.unk_00 = var_r31;
|
|
sp8C.unk_08 = 0;
|
|
sp8C.unk_0C = 1;
|
|
sp8C.unk_04 = fn_1_654C(var_r31->unk_44, sp8C.unk_08);
|
|
while (sp8C.unk_0C) {
|
|
HuPrcVSleep();
|
|
}
|
|
}
|
|
else {
|
|
HuPrcSleep(10);
|
|
Hu3DModelAttrReset(var_r31->unk_D4[var_r29], HU3D_MOTATTR_PAUSE | HU3D_MOTATTR_SHAPE_PAUSE);
|
|
Hu3DModelAttrSet(var_r31->unk_D4[var_r29], HU3D_MOTATTR_REV | HU3D_MOTATTR_SHAPE_REV);
|
|
HuPrcSleep(10);
|
|
omVibrate(var_r31->unk_44, 12, 4, 2);
|
|
var_r30 = HuPrcChildCreate(fn_1_1C48, 8192, 8192, 0, HuPrcCurrentGet());
|
|
var_r30->user_data = var_r31;
|
|
|
|
fn_1_CD8(0, var_r31->unk_44, 5.0f);
|
|
Hu3DModelAttrSet(var_r31->unk_20, HU3D_MOTATTR_REV);
|
|
HuPrcSleep(10);
|
|
if (var_r31->unk_44 & 1) {
|
|
HuAudFXPlay(1444);
|
|
}
|
|
else {
|
|
HuAudFXPlay(1443);
|
|
}
|
|
Hu3DModelAttrReset(var_r31->unk_D4[var_r29], HU3D_MOTATTR_REV);
|
|
HuPrcSleep(10);
|
|
}
|
|
}
|
|
}
|
|
else if (var_r31->unk_1F4 == 2) {
|
|
var_r29 = fn_1_654C(var_r31->unk_44, 1);
|
|
if (!var_r31->unk_F4[var_r29]) {
|
|
if (var_r31->unk_44 & 1) {
|
|
HuAudFXPlay(1442);
|
|
}
|
|
else {
|
|
HuAudFXPlay(1441);
|
|
}
|
|
omVibrate(var_r31->unk_44, 12, 6, 6);
|
|
var_r31->unk_1F4 = 5;
|
|
var_r31->unk_1F8 = var_r29;
|
|
Hu3DMotionSet(var_r31->unk_20, var_r31->unk_22[2]);
|
|
Hu3DMotionSpeedSet(var_r31->unk_20, 1.0f);
|
|
var_r30 = HuPrcChildCreate(fn_1_6134, 8192, 8192, 0, HuPrcCurrentGet());
|
|
var_r30->user_data = var_r31;
|
|
if (lbl_1_bss_978 == lbl_1_bss_938[var_r29] && fn_1_65DC(var_r31, var_r29)) {
|
|
Hu3DModelAttrReset(var_r31->unk_D4[var_r29], HU3D_MOTATTR_PAUSE | HU3D_MOTATTR_REV | HU3D_MOTATTR_SHAPE_PAUSE | HU3D_MOTATTR_SHAPE_REV);
|
|
var_r30 = HuPrcChildCreate(fn_1_42AC, 8192, 8192, 0, HuPrcCurrentGet());
|
|
var_r30->user_data = &sp8C;
|
|
sp8C.unk_00 = var_r31;
|
|
sp8C.unk_08 = 1;
|
|
sp8C.unk_0C = 1;
|
|
sp8C.unk_04 = fn_1_654C(var_r31->unk_44, sp8C.unk_08);
|
|
while (sp8C.unk_0C) {
|
|
HuPrcVSleep();
|
|
}
|
|
}
|
|
else {
|
|
HuPrcSleep(10);
|
|
Hu3DModelAttrReset(var_r31->unk_D4[var_r29], HU3D_MOTATTR_PAUSE | HU3D_MOTATTR_SHAPE_PAUSE);
|
|
Hu3DModelAttrSet(var_r31->unk_D4[var_r29], HU3D_MOTATTR_REV | HU3D_MOTATTR_SHAPE_REV);
|
|
HuPrcSleep(10);
|
|
omVibrate(var_r31->unk_44, 12, 4, 2);
|
|
var_r30 = HuPrcChildCreate(fn_1_1C48, 8192, 8192, 0, HuPrcCurrentGet());
|
|
var_r30->user_data = var_r31;
|
|
fn_1_CD8(0, var_r31->unk_44, 5.0f);
|
|
Hu3DModelAttrSet(var_r31->unk_20, HU3D_MOTATTR_REV);
|
|
HuPrcSleep(15);
|
|
if (var_r31->unk_44 & 1) {
|
|
HuAudFXPlay(1444);
|
|
}
|
|
else {
|
|
HuAudFXPlay(1443);
|
|
}
|
|
Hu3DModelAttrReset(var_r31->unk_D4[var_r29], HU3D_MOTATTR_REV);
|
|
HuPrcSleep(15);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (fn_1_5554(var_r31->unk_44, 1) > 20 && (var_r31->unk_1F4 == 2 || var_r31->unk_1F4 == 0)) {
|
|
Hu3DModelAttrReset(var_r31->unk_20, HU3D_MOTATTR_PAUSE);
|
|
Hu3DModelAttrSet(var_r31->unk_20, HU3D_MOTATTR_REV);
|
|
var_r31->unk_1F4 = 3;
|
|
Hu3DModelAttrReset(var_r31->unk_12, HU3D_MOTATTR_PAUSE);
|
|
Hu3DModelAttrSet(var_r31->unk_12, HU3D_MOTATTR_REV);
|
|
Hu3DMotionSpeedSet(var_r31->unk_12, 2.0f);
|
|
}
|
|
if (fn_1_5554(var_r31->unk_44, 1) < -20 && (var_r31->unk_1F4 == 1 || var_r31->unk_1F4 == 0)) {
|
|
Hu3DModelAttrReset(var_r31->unk_20, HU3D_MOTATTR_PAUSE | HU3D_MOTATTR_REV);
|
|
var_r31->unk_1F4 = 3;
|
|
Hu3DModelAttrReset(var_r31->unk_12, HU3D_MOTATTR_PAUSE | HU3D_MOTATTR_REV);
|
|
Hu3DMotionSpeedSet(var_r31->unk_12, 2.0f);
|
|
}
|
|
if (!var_r31->unk_58) {
|
|
var_r28 = -1;
|
|
if (fn_1_5624(var_r31->unk_44, 0) > 20 && var_r28 == -1) {
|
|
var_r28 = 1;
|
|
}
|
|
if (fn_1_5624(var_r31->unk_44, 1) > 20 && var_r28 == -1) {
|
|
var_r28 = 0;
|
|
}
|
|
if (var_r28 != -1) {
|
|
if (var_r28) {
|
|
if (var_r31->unk_44 & 1) {
|
|
HuAudFXPlay(1440);
|
|
}
|
|
else {
|
|
HuAudFXPlay(1439);
|
|
}
|
|
}
|
|
else if (var_r31->unk_44 & 1) {
|
|
HuAudFXPlay(1438);
|
|
}
|
|
else {
|
|
HuAudFXPlay(1437);
|
|
}
|
|
var_r31->unk_58 = 1;
|
|
var_r30 = HuPrcChildCreate(fn_1_5A3C, 8192, 8192, 0, HuPrcCurrentGet());
|
|
var_r30->user_data = &sp9C;
|
|
sp9C.unk_00 = var_r31;
|
|
sp9C.unk_04 = var_r28;
|
|
sp9C.unk_08_ptr = &var_r31->unk_58;
|
|
var_r30 = HuPrcChildCreate(fn_1_5EE8, 8192, 8192, 0, HuPrcCurrentGet());
|
|
var_r30->user_data = &sp9C;
|
|
sp9C.unk_00 = var_r31;
|
|
sp9C.unk_04 = var_r28;
|
|
}
|
|
}
|
|
var_r31->unk_60 = 37.0 * sind(var_r31->unk_70);
|
|
var_r31->unk_68 = 37.0 * cosd(var_r31->unk_70);
|
|
|
|
Hu3DModelPosSet(var_r31->unk_12, var_r31->unk_60 + (2000.0f * (var_r31->unk_44 % 2)), var_r31->unk_64,
|
|
var_r31->unk_68 + (2000.0f * (var_r31->unk_44 / 2)));
|
|
Hu3DModelRotSet(var_r31->unk_12, var_r31->unk_6C, var_r31->unk_70 + var_r31->unk_90, var_r31->unk_74);
|
|
Hu3DModelRotSet(var_r31->unk_20, var_r31->unk_6C, var_r31->unk_70, var_r31->unk_74);
|
|
HuPrcVSleep();
|
|
}
|
|
}
|
|
|
|
void fn_1_76F4(void)
|
|
{
|
|
Vec sp14;
|
|
Vec sp8;
|
|
|
|
float var_f31;
|
|
float var_f30;
|
|
float var_f29;
|
|
|
|
UnkM414BssF0Struct *var_r31;
|
|
|
|
var_r31 = HuPrcCurrentGet()->user_data;
|
|
|
|
while (TRUE) {
|
|
if (var_r31->unk_1F4 != 4 && var_r31->unk_1F4 != 5) {
|
|
sp14.x = (2000.0f * (var_r31->unk_44 % 2)) + (-950.0 * sind(var_r31->unk_70));
|
|
sp14.z = (2000.0f * (var_r31->unk_44 / 2)) + (-950.0 * cosd(var_r31->unk_70));
|
|
var_f29 = Hu3DMotionMaxTimeGet(var_r31->unk_20);
|
|
sp14.y = 220.0f + (350.0f * (1.0f - (Hu3DMotionTimeGet(var_r31->unk_20) / var_f29)));
|
|
Hu3D3Dto2D(&sp14, 1 << var_r31->unk_48, &sp8);
|
|
var_f31 = (282.0f * (var_r31->unk_44 % 2)) + (sp8.x / 2);
|
|
var_f30 = (225.0f * (var_r31->unk_44 / 2)) + (sp8.y / 2);
|
|
var_f31 += 3.0f;
|
|
var_f30 -= 15.0f;
|
|
HuSprGrpPosSet(var_r31->unk_2C, var_f31, var_f30);
|
|
}
|
|
HuPrcVSleep();
|
|
}
|
|
}
|
|
void fn_1_79A8(void)
|
|
{
|
|
float var_f31;
|
|
float var_f30;
|
|
float var_f29;
|
|
float var_f28;
|
|
float var_f27;
|
|
|
|
UnkM414BssF0Struct *var_r31;
|
|
s32 var_r30;
|
|
s32 var_r29;
|
|
UnkM414BssF0Struct *var_r28;
|
|
Process *var_r27;
|
|
|
|
HuAudFXPlay(lbl_1_data_8C[lbl_1_bss_978]);
|
|
HuPrcSleep(60);
|
|
HuAudFXPlay(1449);
|
|
var_f31 = var_f30 = 0.0f;
|
|
var_f29 = 640.0f;
|
|
var_f28 = 480.0f;
|
|
for (var_r29 = 0; var_r29 < 30; var_r29++) {
|
|
Hu3DCameraViewportSet(16, var_f31, var_f30, var_f29, var_f28, 0.0f, 1.0f);
|
|
Hu3DCameraScissorSet(16, var_f31, var_f30, var_f29, var_f28);
|
|
var_f31 += 10.666667f;
|
|
var_f30 += 8.0f;
|
|
var_f29 -= 21.333334f;
|
|
var_f28 -= 16.0f;
|
|
HuPrcVSleep();
|
|
}
|
|
Hu3DCameraViewportSet(16, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f);
|
|
Hu3DCameraScissorSet(16, 0, 0, 0, 0);
|
|
Hu3DModelAttrSet(lbl_1_bss_A10, HU3D_ATTR_DISPOFF);
|
|
HuPrcSleep(30);
|
|
for (var_r29 = 0; var_r29 < 45; var_r29++) {
|
|
for (var_r30 = 0; var_r30 < 4; var_r30++) {
|
|
lbl_1_bss_910[var_r30] -= 23.777779f;
|
|
lbl_1_bss_A0[var_r30].y -= 3.5555556f;
|
|
lbl_1_bss_64[var_r30].y -= 6.2222223f;
|
|
}
|
|
HuPrcVSleep();
|
|
}
|
|
for (var_r30 = 0; var_r30 < 4; var_r30++) {
|
|
var_r31 = &lbl_1_bss_F0[var_r30];
|
|
CharModelMotionSet(lbl_1_data_30[GWPlayerCfg[var_r31->unk_44].character], var_r31->unk_14[5]);
|
|
CharModelMotionTimeSet(lbl_1_data_30[GWPlayerCfg[var_r31->unk_44].character], 61.0f);
|
|
CharModelMotionSpeedSet(lbl_1_data_30[GWPlayerCfg[var_r31->unk_44].character], 2.0f);
|
|
}
|
|
for (var_r29 = 0; var_r29 < 30; var_r29++) {
|
|
for (var_r30 = 0; var_r30 < 4; var_r30++) {
|
|
var_r31 = &lbl_1_bss_F0[var_r30];
|
|
var_r31->unk_90 += 6.0f;
|
|
Hu3DModelRotSet(var_r31->unk_12, var_r31->unk_6C, var_r31->unk_70 + var_r31->unk_90, var_r31->unk_74);
|
|
}
|
|
HuPrcVSleep();
|
|
}
|
|
var_r31->unk_90 = 180.0f;
|
|
Hu3DModelRotSet(var_r31->unk_12, var_r31->unk_6C, var_r31->unk_70 + var_r31->unk_90, var_r31->unk_74);
|
|
CharModelMotionSpeedSet(lbl_1_data_30[GWPlayerCfg[var_r31->unk_44].character], 1.0f);
|
|
for (var_r30 = 0; var_r30 < 4; var_r30++) {
|
|
var_r31 = &lbl_1_bss_F0[var_r30];
|
|
CharModelMotionShiftSet(lbl_1_data_30[GWPlayerCfg[var_r31->unk_44].character], var_r31->unk_14[1], 0.0f, 5.0f, HU3D_MOTATTR_NONE);
|
|
}
|
|
HuPrcSleep(5);
|
|
for (var_r30 = 0; var_r30 < 4; var_r30++) {
|
|
var_r31 = &lbl_1_bss_F0[var_r30];
|
|
Hu3DModelAttrSet(var_r31->unk_12, HU3D_MOTATTR_PAUSE);
|
|
}
|
|
HuPrcChildCreate(fn_1_397C, 4096, 8192, 0, HuPrcCurrentGet());
|
|
for (var_r30 = 0; var_r30 < 4; var_r30++) {
|
|
var_r28 = &lbl_1_bss_F0[var_r30];
|
|
var_r27 = HuPrcChildCreate(fn_1_76F4, 8192, 8192, 0, HuPrcCurrentGet());
|
|
var_r27->user_data = var_r28;
|
|
HuSprAttrReset(var_r28->unk_2C, 0, 4);
|
|
}
|
|
for (var_r29 = 0, var_f27 = 0.0f; var_r29 < 15; var_r29++) {
|
|
var_f27 += 0.06666667f;
|
|
for (var_r30 = 0; var_r30 < 4; var_r30++) {
|
|
var_r28 = &lbl_1_bss_F0[var_r30];
|
|
HuSprScaleSet(var_r28->unk_2C, 0, var_f27, var_f27);
|
|
}
|
|
HuPrcVSleep();
|
|
}
|
|
}
|
|
|
|
void fn_1_7FC8(s32 arg0)
|
|
{
|
|
float var_f31;
|
|
float var_f30;
|
|
float var_f29;
|
|
float var_f28;
|
|
|
|
UnkM414BssF0Struct *var_r31;
|
|
UnkM414BssF0Struct *var_r30;
|
|
s32 var_r29;
|
|
s32 var_r28;
|
|
s32 var_r27;
|
|
|
|
if (arg0 != -1) {
|
|
for (var_r28 = 0, var_r29 = 0; var_r28 < 16; var_r28++) {
|
|
if (lbl_1_bss_978 == lbl_1_bss_938[var_r28]) {
|
|
var_r30 = &lbl_1_bss_F0[arg0];
|
|
switch (var_r29) {
|
|
case 0:
|
|
var_f30 = 35.0f + var_r30->unk_70;
|
|
var_f28 = 240.0f;
|
|
break;
|
|
case 1:
|
|
var_f30 = var_r30->unk_70 - 35.0f;
|
|
var_f28 = 240.0f;
|
|
break;
|
|
default:
|
|
var_f30 = var_r30->unk_70;
|
|
var_f28 = 240.0f;
|
|
break;
|
|
}
|
|
Hu3DMotionSet(var_r30->unk_94[var_r28], var_r30->unk_B4[var_r28]);
|
|
var_f31 = 0.0f;
|
|
if (!lbl_1_bss_938[var_r28]) {
|
|
var_f31 += 70.0f;
|
|
}
|
|
Hu3DModelPosSet(var_r30->unk_94[var_r28], (2000.0f * (arg0 % 2) + (250.0 * sind(var_f30))), var_f31,
|
|
(2000.0f * (arg0 / 2)) + (250.0 * cosd(var_f30)));
|
|
Hu3DModelRotSet(var_r30->unk_94[var_r28], var_r30->unk_6C, var_r30->unk_70, var_r30->unk_74);
|
|
if (lbl_1_bss_978 == 2) {
|
|
Hu3DModelScaleSet(var_r30->unk_94[var_r28], 1.0f, 1.0f, 1.0f);
|
|
}
|
|
Hu3DModelAttrReset(var_r30->unk_94[var_r28], HU3D_ATTR_DISPOFF);
|
|
Hu3DModelShadowSet(var_r30->unk_94[var_r28]);
|
|
if (var_r29++ >= 2) {
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
for (var_r27 = 0; var_r27 < 4; var_r27++) {
|
|
var_r30 = &lbl_1_bss_F0[var_r27];
|
|
var_f31 = 40.0f + lbl_1_bss_920[var_r30->unk_44];
|
|
if (var_f31 >= 360.0f) {
|
|
var_f31 -= 360.0f;
|
|
}
|
|
var_r29 = 2.0f + (lbl_1_bss_920[var_r30->unk_44] / 40.0f);
|
|
if (var_r29 >= 9) {
|
|
var_r29 -= 9;
|
|
}
|
|
for (var_r28 = 0; var_r28 < 6; var_r28++) {
|
|
Hu3DModelAttrSet(var_r30->unk_30[var_r29], HU3D_ATTR_DISPOFF);
|
|
var_r29++;
|
|
if (var_r29 >= 9) {
|
|
var_r29 = 0;
|
|
}
|
|
}
|
|
Hu3DModelAttrReset(var_r30->unk_42, HU3D_ATTR_DISPOFF);
|
|
Hu3DModelRotSet(var_r30->unk_42, 0.0f, lbl_1_bss_920[var_r30->unk_44], 0.0f);
|
|
}
|
|
for (var_r28 = 0; var_r28 < 30; var_r28++) {
|
|
for (var_r29 = 0; var_r29 < 4; var_r29++) {
|
|
lbl_1_bss_64[var_r29].y -= 7.6666665f;
|
|
}
|
|
HuPrcVSleep();
|
|
}
|
|
HuAudFXPlay(lbl_1_data_8C[lbl_1_bss_978]);
|
|
for (var_r29 = 0; var_r29 < 4; var_r29++) {
|
|
var_r31 = &lbl_1_bss_F0[var_r29];
|
|
CharModelMotionShiftSet(lbl_1_data_30[GWPlayerCfg[var_r31->unk_44].character], var_r31->unk_14[0], 0.0f, 5.0f, HU3D_MOTATTR_LOOP);
|
|
}
|
|
HuPrcSleep(5);
|
|
for (var_r29 = 0; var_r29 < 4; var_r29++) {
|
|
var_r31 = &lbl_1_bss_F0[var_r29];
|
|
CharModelMotionSet(lbl_1_data_30[GWPlayerCfg[var_r31->unk_44].character], var_r31->unk_14[5]);
|
|
Hu3DModelAttrReset(var_r31->unk_12, HU3D_MOTATTR_LOOP);
|
|
CharModelMotionTimeSet(lbl_1_data_30[GWPlayerCfg[var_r31->unk_44].character], 61.0f);
|
|
CharModelMotionSpeedSet(lbl_1_data_30[GWPlayerCfg[var_r31->unk_44].character], 2.0f);
|
|
}
|
|
for (var_f29 = 37.0f, var_r28 = 0; var_r28 < 30; var_r28++, var_f29 += 1.6666666f) {
|
|
for (var_r29 = 0; var_r29 < 4; var_r29++) {
|
|
var_r31 = &lbl_1_bss_F0[var_r29];
|
|
var_r31->unk_90 += 6.0f;
|
|
Hu3DModelRotSet(var_r31->unk_12, var_r31->unk_6C, var_r31->unk_70 + var_r31->unk_90, var_r31->unk_74);
|
|
var_r31->unk_60 = var_f29 * sind(var_r31->unk_70);
|
|
var_r31->unk_68 = var_f29 * cosd(var_r31->unk_70);
|
|
Hu3DModelPosSet(var_r31->unk_12, var_r31->unk_60 + (2000.0f * (var_r31->unk_44 % 2)), var_r31->unk_64,
|
|
var_r31->unk_68 + (2000.0f * (var_r31->unk_44 / 2)));
|
|
}
|
|
HuPrcVSleep();
|
|
}
|
|
var_r31->unk_90 = 0.0f;
|
|
Hu3DModelRotSet(var_r31->unk_12, var_r31->unk_6C, var_r31->unk_70 + var_r31->unk_90, var_r31->unk_74);
|
|
CharModelMotionSpeedSet(lbl_1_data_30[GWPlayerCfg[var_r31->unk_44].character], 1.0f);
|
|
for (var_r29 = 0; var_r29 < 4; var_r29++) {
|
|
var_r31 = &lbl_1_bss_F0[var_r29];
|
|
CharModelMotionShiftSet(
|
|
lbl_1_data_30[GWPlayerCfg[var_r31->unk_44].character], var_r31->unk_14[var_r31->unk_44 == arg0 ? 3 : 4], 0.0f, 5.0f, 0);
|
|
}
|
|
}
|
|
|
|
void fn_1_88D4(void)
|
|
{
|
|
UnkM414BssF0Struct *var_r31;
|
|
|
|
var_r31 = HuPrcCurrentGet()->user_data;
|
|
while (TRUE) {
|
|
if (var_r31->unk_1F4 == 4 || var_r31->unk_1F4 == 5 || var_r31->unk_58) {
|
|
HuPrcVSleep();
|
|
}
|
|
else {
|
|
break;
|
|
}
|
|
}
|
|
HuPrcCurrentGet()->user_data = NULL;
|
|
HuPrcKill(lbl_1_bss_E0[var_r31->unk_44]);
|
|
while (TRUE) {
|
|
HuPrcVSleep();
|
|
}
|
|
}
|
|
|
|
void fn_1_894C(void)
|
|
{
|
|
Process *sp8[4];
|
|
|
|
s32 var_r31;
|
|
s32 var_r30;
|
|
|
|
for (var_r31 = 0; var_r31 < 4; var_r31++) {
|
|
sp8[var_r31] = HuPrcChildCreate(fn_1_88D4, 8192, 8192, 0, HuPrcCurrentGet());
|
|
sp8[var_r31]->user_data = &lbl_1_bss_F0[var_r31];
|
|
}
|
|
while (TRUE) {
|
|
for (var_r31 = 0; var_r31 < 4; var_r31++) {
|
|
if (sp8[var_r31]->user_data) {
|
|
break;
|
|
}
|
|
}
|
|
if (var_r31 < 4) {
|
|
HuPrcVSleep();
|
|
}
|
|
else {
|
|
break;
|
|
}
|
|
}
|
|
HuPrcCurrentGet()->user_data = NULL;
|
|
while (TRUE) {
|
|
HuPrcVSleep();
|
|
}
|
|
}
|
|
|
|
void fn_1_8A10(void)
|
|
{
|
|
while (TRUE) {
|
|
if (omSysExitReq == 1) {
|
|
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60);
|
|
HuAudFadeOut(1000);
|
|
HuPrcSleep(60);
|
|
MGSeqKillAll();
|
|
omOvlReturnEx(1, 1);
|
|
while (TRUE) {
|
|
HuPrcVSleep();
|
|
}
|
|
}
|
|
HuPrcVSleep();
|
|
}
|
|
}
|
|
|
|
void fn_1_8A70(void)
|
|
{
|
|
float var_f31;
|
|
|
|
s32 var_r31;
|
|
s32 var_r30;
|
|
s32 var_r29;
|
|
s16 var_r28;
|
|
s16 var_r27;
|
|
s32 var_r26;
|
|
Process *var_r25;
|
|
s16 var_r24;
|
|
UnkM414BssF0Struct *var_r23;
|
|
s32 var_r22;
|
|
UnkM414BssF0Struct *var_r21;
|
|
|
|
lbl_1_bss_98C = 0;
|
|
HuPrcSleep(1.0f + wipeData.duration);
|
|
fn_1_79A8();
|
|
HuPrcSleep(30);
|
|
lbl_1_bss_98C = 1;
|
|
|
|
while (lbl_1_bss_98C == 1) {
|
|
HuPrcVSleep();
|
|
}
|
|
|
|
var_r22 = HuAudSeqPlay(72);
|
|
var_r28 = MGSeqCreate(3, 0);
|
|
while (MGSeqStatGet(var_r28)) {
|
|
HuPrcVSleep();
|
|
}
|
|
var_r27 = 3659;
|
|
var_r24 = MGSeqCreate(1, var_r27 / 60, -1, -1);
|
|
lbl_1_bss_98C = 3;
|
|
while (TRUE) {
|
|
for (var_r31 = 0, var_r30 = 0; var_r31 < 4; var_r31++) {
|
|
var_r21 = &lbl_1_bss_F0[var_r31];
|
|
if (lbl_1_bss_97C[var_r31] >= 3) {
|
|
var_r30++;
|
|
var_r29 = var_r31;
|
|
}
|
|
}
|
|
if (var_r30 > 0) {
|
|
break;
|
|
}
|
|
if (var_r27 < 59) {
|
|
var_r29 = -1;
|
|
break;
|
|
}
|
|
MGSeqParamSet(var_r24, 1, var_r27-- / 60);
|
|
HuPrcVSleep();
|
|
}
|
|
lbl_1_bss_98C = 4;
|
|
HuAudSeqFadeOut(var_r22, 100);
|
|
MGSeqParamSet(var_r24, 2, -1);
|
|
var_r28 = MGSeqCreate(3, 1);
|
|
var_r25 = HuPrcChildCreate(fn_1_894C, 8192, 8192, 0, HuPrcCurrentGet());
|
|
var_r25->user_data = (void *)1;
|
|
|
|
while (var_r25->user_data) {
|
|
HuPrcVSleep();
|
|
}
|
|
for (var_r31 = 0, var_r30 = 0; var_r31 < 4; var_r31++) {
|
|
var_r21 = &lbl_1_bss_F0[var_r31];
|
|
if (lbl_1_bss_97C[var_r31] >= 3) {
|
|
var_r30++;
|
|
var_r29 = var_r31;
|
|
}
|
|
}
|
|
|
|
while (MGSeqStatGet(var_r28)) {
|
|
HuPrcVSleep();
|
|
}
|
|
lbl_1_bss_98C = 5;
|
|
HuPrcChildCreate(fn_1_3A58, 4096, 8192, 0, HuPrcCurrentGet());
|
|
for (var_r31 = 0, var_f31 = 1.0f; var_r31 < 15; var_r31++) {
|
|
for (var_f31 -= 0.06666667f, var_r26 = 0; var_r26 < 4; var_r26++) {
|
|
var_r23 = &lbl_1_bss_F0[var_r26];
|
|
HuSprScaleSet(var_r23->unk_2C, 0, var_f31, var_f31);
|
|
}
|
|
HuPrcVSleep();
|
|
}
|
|
for (var_r31 = 0; var_r31 < 4; var_r31++) {
|
|
HuSprAttrSet(lbl_1_bss_F0[var_r31].unk_2C, 0, 4);
|
|
}
|
|
HuPrcSleep(15);
|
|
fn_1_7FC8(var_r29);
|
|
if (var_r29 != -1) {
|
|
HuAudSStreamPlay(1);
|
|
GWPlayerCoinWinSet(var_r29, 10);
|
|
var_r28 = MGSeqCreate(5, 3, GWPlayerCfg[var_r29].character, -1, -1, -1);
|
|
}
|
|
else {
|
|
HuAudSStreamPlay(4);
|
|
var_r28 = MGSeqCreate(3, 2);
|
|
}
|
|
HuPrcSleep(210);
|
|
WipeCreate(2, 0, 60);
|
|
HuPrcSleep(60);
|
|
HuAudFadeOut(1);
|
|
MGSeqKillAll();
|
|
omOvlReturnEx(1, 1);
|
|
while (TRUE) {
|
|
HuPrcVSleep();
|
|
}
|
|
}
|