2817 lines
97 KiB
C
Executable file
2817 lines
97 KiB
C
Executable file
#include "REL/executor.h"
|
|
#include "game/audio.h"
|
|
#include "game/chrman.h"
|
|
#include "game/data.h"
|
|
#include "game/frand.h"
|
|
#include "game/gamework_data.h"
|
|
#include "game/hsfanim.h"
|
|
#include "game/hsfman.h"
|
|
#include "game/hsfmotion.h"
|
|
#include "game/memory.h"
|
|
#include "game/minigame_seq.h"
|
|
#include "game/object.h"
|
|
#include "game/objsub.h"
|
|
#include "game/pad.h"
|
|
#include "game/process.h"
|
|
#include "game/sprite.h"
|
|
#include "game/wipe.h"
|
|
|
|
#include "dolphin.h"
|
|
#include "ext_math.h"
|
|
#include "rel_sqrt_consts.h"
|
|
|
|
typedef struct {
|
|
/* 0x00 */ s16 unk00;
|
|
/* 0x02 */ s16 unk02[5];
|
|
/* 0x0C */ s16 unk0C;
|
|
/* 0x0E */ s16 unk0E;
|
|
/* 0x10 */ Vec unk10;
|
|
/* 0x1C */ Vec unk1C;
|
|
} UnkBss138InnerStruct00; // Size 0x28
|
|
|
|
typedef struct {
|
|
/* 0x000 */ s16 unk00;
|
|
/* 0x002 */ char unk02[2];
|
|
/* 0x004 */ Vec unk04;
|
|
/* 0x010 */ Vec unk10;
|
|
/* 0x01C */ UnkBss138InnerStruct00 unk1C[5];
|
|
/* 0x0E4 */ UnkBss138InnerStruct00 unkE4[5];
|
|
/* 0x1AC */ UnkBss138InnerStruct00 unk1AC[4];
|
|
/* 0x24C */ char unk24C[0x28];
|
|
/* 0x274 */ UnkBss138InnerStruct00 unk274[5];
|
|
} UnkBss138Struct; // Size 0x33C
|
|
|
|
typedef struct {
|
|
/* 0x00 */ float unk00;
|
|
/* 0x04 */ float unk04;
|
|
/* 0x08 */ float unk08;
|
|
/* 0x0C */ float unk0C;
|
|
/* 0x10 */ float unk10;
|
|
/* 0x14 */ float unk14;
|
|
/* 0x18 */ float unk18;
|
|
/* 0x1C */ float unk1C;
|
|
/* 0x20 */ float unk20;
|
|
} UnkBss474DoublyInnerStruct6C; // Size unknown
|
|
|
|
// Maybe HsfObject, but unk1C doesn't seem to match.
|
|
typedef struct {
|
|
/* 0x00 */ char unk00[0x1C];
|
|
/* 0x1C */ UnkBss474DoublyInnerStruct6C unk1C;
|
|
} UnkBss474InnerStruct6C; // Size unknown
|
|
|
|
typedef struct {
|
|
/* 0x00 */ float unk00;
|
|
/* 0x04 */ float unk04;
|
|
/* 0x08 */ float unk08;
|
|
/* 0x0C */ float unk0C;
|
|
/* 0x10 */ float unk10;
|
|
/* 0x14 */ float unk14;
|
|
/* 0x18 */ float unk18;
|
|
/* 0x1C */ float unk1C;
|
|
/* 0x20 */ float unk20;
|
|
} UnkBss474InnerStructE4; // Size 0x24
|
|
|
|
typedef struct {
|
|
/* 0x000 */ s16 unk00;
|
|
/* 0x002 */ s16 unk02;
|
|
/* 0x004 */ s16 unk04;
|
|
/* 0x006 */ s16 unk06;
|
|
/* 0x008 */ s16 unk08;
|
|
/* 0x00A */ s16 unk0A;
|
|
/* 0x00C */ s16 unk0C;
|
|
/* 0x00E */ s16 unk0E[9];
|
|
/* 0x020 */ s16 unk20;
|
|
/* 0x022 */ s16 unk22[9];
|
|
/* 0x034 */ s32 unk34;
|
|
/* 0x038 */ s32 unk38;
|
|
/* 0x03C */ s32 unk3C;
|
|
/* 0x040 */ s32 unk40;
|
|
/* 0x044 */ s32 unk44;
|
|
/* 0x048 */ float unk48;
|
|
/* 0x04C */ float unk4C;
|
|
/* 0x050 */ float unk50;
|
|
/* 0x054 */ float unk54;
|
|
/* 0x058 */ float unk58;
|
|
/* 0x05C */ float unk5C;
|
|
/* 0x060 */ float unk60;
|
|
/* 0x064 */ float unk64;
|
|
/* 0x068 */ float unk68;
|
|
/* 0x06C */ UnkBss474InnerStruct6C* unk6C[10];
|
|
/* 0x094 */ UnkBss474InnerStruct6C* unk94[10];
|
|
/* 0x0BC */ UnkBss474InnerStruct6C* unkBC[10];
|
|
/* 0x0E4 */ UnkBss474InnerStructE4 unkE4[10];
|
|
/* 0x24C */ AnimData* unk24C;
|
|
/* 0x250 */ AnimData* unk250;
|
|
/* 0x254 */ s8 unk254;
|
|
/* 0x255 */ s8 unk255;
|
|
/* 0x256 */ s8 unk256;
|
|
/* 0x257 */ s8 unk257;
|
|
/* 0x258 */ u16 unk258;
|
|
/* 0x25A */ char unk25A[0xA];
|
|
/* 0x264 */ s32 unk264;
|
|
/* 0x268 */ s32 unk268;
|
|
} UnkBss474Struct; // Size 0x26C
|
|
|
|
typedef struct {
|
|
/* 0x00 */ UnkBss474Struct* unk00;
|
|
/* 0x04 */ s32 unk04;
|
|
/* 0x08 */ s32 unk08;
|
|
/* 0x0C */ s32* unk0C;
|
|
} UnkFn64A3Struct; // Size unknown
|
|
|
|
void fn_1_E80(omObjData* arg0);
|
|
void fn_1_F8C(float arg0);
|
|
void fn_1_1074(void);
|
|
void fn_1_1498(s16 layer);
|
|
s32 fn_1_1520(void);
|
|
s32 fn_1_1C4C(void);
|
|
s32 fn_1_20C8(void);
|
|
void fn_1_25D0(void);
|
|
void fn_1_34B0(ModelData* model, ParticleData* particle, Mtx matrix, s32 arg3);
|
|
void fn_1_3A60(ModelData* model, ParticleData* particle, Mtx matrix);
|
|
void fn_1_3A9C(ModelData* model, ParticleData* particle, Mtx matrix);
|
|
void fn_1_3AD8(ModelData* model, ParticleData* particle, Mtx matrix);
|
|
void fn_1_3B14(ModelData* model, ParticleData* particle, Mtx matrix);
|
|
void fn_1_3B50(void);
|
|
void fn_1_3F34(void);
|
|
void fn_1_4218(void);
|
|
void fn_1_4454(void);
|
|
void fn_1_4968(void);
|
|
void fn_1_4BB0(void);
|
|
void fn_1_4E8C(void);
|
|
void fn_1_507C(void);
|
|
void fn_1_5384(void);
|
|
void fn_1_544C(void);
|
|
void fn_1_5554(void);
|
|
void fn_1_58BC(void);
|
|
void fn_1_5910(void);
|
|
s8 fn_1_5D58(s32 arg0, s32 arg1);
|
|
u8 fn_1_5E10(s32 arg0, s32 arg1);
|
|
u16 fn_1_5ED0(s32 arg0);
|
|
void fn_1_5F3C(UnkBss474Struct* arg0, s32 arg1);
|
|
void fn_1_6428(UnkBss474Struct* arg0, s32 arg1);
|
|
void fn_1_6820(UnkBss474Struct* arg0, s32 arg1, s32 arg2);
|
|
void fn_1_6A3C(void);
|
|
void fn_1_6CF4(void);
|
|
void fn_1_6DD8(UnkBss474Struct* arg0, s32 arg1);
|
|
void fn_1_6E9C(s32 arg0, s32 arg1);
|
|
void fn_1_6F48(UnkBss474Struct* arg0, s32 arg1, s32 arg2);
|
|
void fn_1_75C8(void);
|
|
void fn_1_7680(void);
|
|
void fn_1_7738(void);
|
|
void fn_1_8A80(float arg0, float arg1);
|
|
void fn_1_8DBC(void);
|
|
void fn_1_9490(void);
|
|
void fn_1_9BC0(s32 arg0);
|
|
void fn_1_A004(void);
|
|
void fn_1_A07C(void);
|
|
void fn_1_A120(s32 arg0);
|
|
void fn_1_A4B4(s32 arg0);
|
|
void fn_1_A788(s32 arg0);
|
|
void fn_1_ACB0(void);
|
|
void fn_1_AD58(void);
|
|
|
|
s16 lbl_1_bss_EA0;
|
|
s16 lbl_1_bss_E9E;
|
|
s16 lbl_1_bss_E9C;
|
|
s32 lbl_1_bss_E98;
|
|
s32 lbl_1_bss_E94;
|
|
s32 lbl_1_bss_E6C[10];
|
|
s32 lbl_1_bss_E44[10];
|
|
s32 lbl_1_bss_E40;
|
|
s32 lbl_1_bss_E3C;
|
|
s32 lbl_1_bss_E38;
|
|
s32 lbl_1_bss_E2C[3];
|
|
s32 lbl_1_bss_E28;
|
|
float lbl_1_bss_E24;
|
|
UnkBss474Struct lbl_1_bss_474[4];
|
|
UnkBss138Struct lbl_1_bss_138;
|
|
omObjData* lbl_1_bss_134;
|
|
Process* lbl_1_bss_124[4];
|
|
Vec lbl_1_bss_C4[8];
|
|
Vec lbl_1_bss_64[8];
|
|
Vec lbl_1_bss_4[8];
|
|
void* lbl_1_bss_0;
|
|
|
|
float lbl_1_data_0[][7] = {
|
|
{ -10.0f, 0.0f, 0.0f, 0.0f, 0.0f, -3375.0f, 7460.0f },
|
|
{ -9.5f, 0.0f, 0.0f, 0.0f, 0.0f, -510.0f, 1860.0f },
|
|
{ -5.0f, 0.0f, 0.0f, 0.0f, 0.0f, -2870.0f, 5060.0f }
|
|
};
|
|
|
|
s32 lbl_1_data_54[] = {
|
|
DATA_MAKE_NUM(DATADIR_M411, 9),
|
|
DATA_MAKE_NUM(DATADIR_M411, 11),
|
|
DATA_MAKE_NUM(DATADIR_M411, 10)
|
|
};
|
|
|
|
char* lbl_1_data_6C[] = {
|
|
"puzzle00", "puzzle00", "puzzle00"
|
|
};
|
|
|
|
char* lbl_1_data_1C8[][10] = {
|
|
{
|
|
"puzzle_B1-p01", "puzzle_B1-p02", "puzzle_B1-p03", "puzzle_B1-p04",
|
|
"puzzle_B1-p05", "puzzle_B1-p06", "puzzle_B1-p07", "puzzle_B1-p08"
|
|
},
|
|
{
|
|
"puzzle_B2-p01", "puzzle_B2-p02", "puzzle_B2-p03", "puzzle_B2-p04",
|
|
"puzzle_B2-p05", "puzzle_B2-p06", "puzzle_B2-p07", "puzzle_B2-p08"
|
|
},
|
|
{
|
|
"puzzle_B3-p01", "puzzle_B3-p02", "puzzle_B3-p03", "puzzle_B3-p04",
|
|
"puzzle_B3-p05", "puzzle_B3-p06", "puzzle_B3-p07", "puzzle_B3-p08"
|
|
}
|
|
};
|
|
|
|
s32 lbl_1_data_240[8] = { 0, 1, 2, 3, 4, 5, 6, 7 };
|
|
|
|
s32 lbl_1_data_260[8] = {
|
|
DATA_MAKE_NUM(DATADIR_MARIOMDL1, 0),
|
|
DATA_MAKE_NUM(DATADIR_LUIGIMDL1, 0),
|
|
DATA_MAKE_NUM(DATADIR_PEACHMDL1, 0),
|
|
DATA_MAKE_NUM(DATADIR_YOSHIMDL1, 0),
|
|
DATA_MAKE_NUM(DATADIR_WARIOMDL1, 0),
|
|
DATA_MAKE_NUM(DATADIR_DONKEYMDL1, 0),
|
|
DATA_MAKE_NUM(DATADIR_DAISYMDL1, 0),
|
|
DATA_MAKE_NUM(DATADIR_WALUIGIMDL1, 0)
|
|
};
|
|
|
|
s32 lbl_1_data_280[] = {
|
|
DATA_MAKE_NUM(DATADIR_MARIOMOT, 0),
|
|
DATA_MAKE_NUM(DATADIR_MARIOMOT, 1),
|
|
DATA_MAKE_NUM(DATADIR_MARIOMOT, 2),
|
|
DATA_MAKE_NUM(DATADIR_MARIOMOT, 5),
|
|
DATA_MAKE_NUM(DATADIR_MARIOMOT, 6),
|
|
DATA_MAKE_NUM(DATADIR_MARIOMOT, 27),
|
|
DATA_MAKE_NUM(DATADIR_MARIOMOT, 32),
|
|
DATA_MAKE_NUM(DATADIR_MARIOMOT, 33),
|
|
DATA_MAKE_NUM(DATADIR_MARIOMOT, 23)
|
|
};
|
|
|
|
s32 lbl_1_data_2A4[8] = {
|
|
DATA_MAKE_NUM(DATADIR_MARIOMOT, 0),
|
|
DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0),
|
|
DATA_MAKE_NUM(DATADIR_PEACHMOT, 0),
|
|
DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0),
|
|
DATA_MAKE_NUM(DATADIR_WARIOMOT, 0),
|
|
DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0),
|
|
DATA_MAKE_NUM(DATADIR_DAISYMOT, 0),
|
|
DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0)
|
|
};
|
|
|
|
s32 lbl_1_data_2C4[] = {
|
|
DATA_MAKE_NUM(DATADIR_M411, 27),
|
|
DATA_MAKE_NUM(DATADIR_M411, 28),
|
|
DATA_MAKE_NUM(DATADIR_M411, 23)
|
|
};
|
|
|
|
s32 lbl_1_data_2D0[] = {
|
|
DATA_MAKE_NUM(DATADIR_M411, 30),
|
|
DATA_MAKE_NUM(DATADIR_M411, 31),
|
|
DATA_MAKE_NUM(DATADIR_M411, 32),
|
|
DATA_MAKE_NUM(DATADIR_M411, 33),
|
|
DATA_MAKE_NUM(DATADIR_M411, 34)
|
|
};
|
|
|
|
void ObjectSetup(void) {
|
|
Vec sp24;
|
|
Vec sp18;
|
|
Vec spC;
|
|
float temp_f31;
|
|
float temp_f30;
|
|
float sp8;
|
|
Process* temp_r3;
|
|
s32 var_r29;
|
|
s32 i;
|
|
|
|
var_r29 = GWSystem.mg_type;
|
|
lbl_1_bss_E40 = var_r29;
|
|
if (var_r29 == -1) {
|
|
lbl_1_bss_E40 = frandmod(3);
|
|
}
|
|
lbl_1_bss_E3C = frandmod(3);
|
|
switch (lbl_1_bss_E3C) {
|
|
case 0:
|
|
lbl_1_bss_E38 = 8;
|
|
break;
|
|
case 1:
|
|
lbl_1_bss_E38 = 8;
|
|
break;
|
|
default:
|
|
lbl_1_bss_E38 = 8;
|
|
break;
|
|
}
|
|
temp_r3 = omInitObjMan(50, 0x2000);
|
|
omGameSysInit(temp_r3);
|
|
Hu3DCameraCreate(0x1F);
|
|
Hu3DCameraPerspectiveSet(1, 15.0f, 20.0f, 25000.0f, 1.2f);
|
|
Hu3DCameraPerspectiveSet(0x1E, 15.0f, 20.0f, 25000.0f, 1.2f);
|
|
Hu3DCameraViewportSet(1, 0.0f, 0.0f, 320.0f, 240.0f, 0.0f, 1.0f);
|
|
Hu3DCameraViewportSet(2, 0.0f, 0.0f, 318.0f, 238.0f, 0.0f, 1.0f);
|
|
Hu3DCameraViewportSet(4, 322.0f, 0.0f, 318.0f, 238.0f, 0.0f, 1.0f);
|
|
Hu3DCameraViewportSet(8, 0.0f, 242.0f, 318.0f, 238.0f, 0.0f, 1.0f);
|
|
Hu3DCameraViewportSet(0x10, 322.0f, 242.0f, 318.0f, 238.0f, 0.0f, 1.0f);
|
|
Hu3DCameraScissorSet(1, 0, 0, 0x140, 0xF0);
|
|
Hu3DCameraScissorSet(2, 0, 0, 0x13E, 0xEE);
|
|
Hu3DCameraScissorSet(4, 0x142, 0, 0x13E, 0xEE);
|
|
Hu3DCameraScissorSet(8, 0, 0xF2, 0x13E, 0xEE);
|
|
Hu3DCameraScissorSet(0x10, 0x142, 0xF2, 0x13E, 0xEE);
|
|
if (lbl_1_bss_E40 == 0) {
|
|
lbl_1_bss_134 = omAddObjEx(temp_r3, 0x7FDA, 0, 0, -1, fn_1_E80);
|
|
} else {
|
|
lbl_1_bss_134 = omAddObjEx(temp_r3, 0x7FDA, 0, 0, -1, omOutViewMulti);
|
|
}
|
|
lbl_1_bss_134->work[0] = 5;
|
|
for (i = 0; i < 1; i++) {
|
|
CRotM[i].x = lbl_1_data_0[lbl_1_bss_E40][0];
|
|
CRotM[i].y = lbl_1_data_0[lbl_1_bss_E40][1];
|
|
CRotM[i].z = lbl_1_data_0[lbl_1_bss_E40][2];
|
|
CenterM[i].x = lbl_1_data_0[lbl_1_bss_E40][3];
|
|
CenterM[i].y = lbl_1_data_0[lbl_1_bss_E40][4];
|
|
CenterM[i].z = lbl_1_data_0[lbl_1_bss_E40][5];
|
|
CZoomM[i] = lbl_1_data_0[lbl_1_bss_E40][6];
|
|
}
|
|
for (i = 1; i < lbl_1_bss_134->work[0]; i++) {
|
|
CRotM[i].x = 0.0f;
|
|
CRotM[i].y = 0.0f;
|
|
CRotM[i].z = 0.0f;
|
|
CenterM[i].x = 0.0f;
|
|
CenterM[i].y = 0.0f;
|
|
CenterM[i].z = 0.0f;
|
|
CZoomM[i] = 1900.0f;
|
|
}
|
|
temp_f31 = CRotM[1].x;
|
|
temp_f30 = CRotM[1].y;
|
|
sp8 = CRotM[1].z;
|
|
lbl_1_bss_C4[1].x = CenterM[1].x + sind(temp_f30) * cosd(temp_f31) * CZoomM[1];
|
|
lbl_1_bss_C4[1].y = CenterM[1].y + -sind(temp_f31) * CZoomM[1];
|
|
lbl_1_bss_C4[1].z = CenterM[1].z + cosd(temp_f30) * cosd(temp_f31) * CZoomM[1];
|
|
lbl_1_bss_64[1].x = CenterM[1].x;
|
|
lbl_1_bss_64[1].y = CenterM[1].y;
|
|
lbl_1_bss_64[1].z = CenterM[1].z;
|
|
lbl_1_bss_4[1].x = sind(temp_f30) * sind(temp_f31);
|
|
lbl_1_bss_4[1].y = cosd(temp_f31);
|
|
lbl_1_bss_4[1].z = cosd(temp_f30) * sind(temp_f31);
|
|
for (i = 0; i < 1; i++) {
|
|
lbl_1_bss_C4[i].x = 0.0f;
|
|
lbl_1_bss_C4[i].y = 1295.0f;
|
|
lbl_1_bss_C4[i].z = 3971.0f;
|
|
lbl_1_bss_4[i].x = 0.0f;
|
|
lbl_1_bss_4[i].y = 1.0f;
|
|
lbl_1_bss_4[i].z = 0.0f;
|
|
lbl_1_bss_64[i].x = 0.0f;
|
|
lbl_1_bss_64[i].y = 0.0f;
|
|
lbl_1_bss_64[i].z = -3375.0f;
|
|
}
|
|
for (i = 1; i < lbl_1_bss_134->work[0]; i++) {
|
|
lbl_1_bss_C4[i].x = 0.0f;
|
|
lbl_1_bss_C4[i].y = 0.0f;
|
|
lbl_1_bss_C4[i].z = 1900.0f;
|
|
lbl_1_bss_4[i].x = 0.0f;
|
|
lbl_1_bss_4[i].y = 1.0f;
|
|
lbl_1_bss_4[i].z = 0.0f;
|
|
lbl_1_bss_64[i].x = 0.0f;
|
|
lbl_1_bss_64[i].y = 0.0f;
|
|
lbl_1_bss_64[i].z = 0.0f;
|
|
}
|
|
Hu3DLighInit();
|
|
lbl_1_bss_EA0 = Hu3DGLightCreate(10000.0f, 0.0f, 10000.0f, -1.0f, 0.0f, -1.0f, 0xFF, 0xFF, 0xFF);
|
|
Hu3DGLightPosAimSet(lbl_1_bss_EA0, 0.0f, 6796.88f, 9706.95f, 0.0f, 0.0f, 0.0f);
|
|
Hu3DGLightInfinitytSet(lbl_1_bss_EA0);
|
|
sp24.x = -1800.0f;
|
|
sp24.y = 3600.0f;
|
|
sp24.z = 0.0f;
|
|
sp18.x = sp18.z = 0.0f;
|
|
sp18.y = 1.0f;
|
|
spC.x = -100.0f;
|
|
spC.y = 0.0f;
|
|
spC.z = 0.0f;
|
|
Hu3DShadowCreate(30.0f, 20.0f, 10000.0f);
|
|
Hu3DShadowTPLvlSet(0.4f);
|
|
Hu3DShadowPosSet(&sp24, &sp18, &spC);
|
|
Hu3DBGColorSet(0, 0, 0);
|
|
fn_1_25D0();
|
|
fn_1_8A80(640.0f, 480.0f);
|
|
HuPrcChildCreate(fn_1_AD58, 0x1000, 0x2000, 0, HuPrcCurrentGet());
|
|
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60);
|
|
}
|
|
|
|
void fn_1_E80(omObjData* arg0) {
|
|
s32 i;
|
|
|
|
for (i = 0; i < arg0->work[0]; i++) {
|
|
Hu3DCameraPosSet(1 << i, lbl_1_bss_C4[i].x, lbl_1_bss_C4[i].y, lbl_1_bss_C4[i].z, lbl_1_bss_4[i].x, lbl_1_bss_4[i].y, lbl_1_bss_4[i].z, lbl_1_bss_64[i].x, lbl_1_bss_64[i].y, lbl_1_bss_64[i].z);
|
|
}
|
|
}
|
|
|
|
void fn_1_F8C(float arg0) {
|
|
lbl_1_bss_E24 = arg0;
|
|
Hu3DTexScrollPosMoveSet(lbl_1_bss_E9E, -0.01f * arg0, 0.0f, 0.0f);
|
|
Hu3DTexScrollPosMoveSet(lbl_1_bss_E9C, -0.017f * arg0, 0.0f, 0.0f);
|
|
HuAudFXPitchSet(lbl_1_bss_E2C[0], -8191.0f * (1.0f - arg0));
|
|
}
|
|
|
|
void fn_1_1074(void) {
|
|
Mtx44 sp64;
|
|
Mtx sp34;
|
|
Vec sp28;
|
|
Vec sp1C;
|
|
Vec sp10;
|
|
GXColor spC;
|
|
CameraData* var_r31;
|
|
|
|
var_r31 = &Hu3DCamera[0];
|
|
C_MTXPerspective(sp64, var_r31->fov, var_r31->aspect, var_r31->near, var_r31->far);
|
|
GXSetProjection(sp64, GX_PERSPECTIVE);
|
|
GXSetViewport(0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f);
|
|
GXSetScissor(0, 0, 640, 480);
|
|
GXClearVtxDesc();
|
|
GXSetVtxDesc(GX_VA_POS, GX_DIRECT);
|
|
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_RGBA6, 0);
|
|
spC.r = spC.g = spC.b = 0;
|
|
spC.a = 0xFF;
|
|
GXSetTevColor(GX_TEVREG0, spC);
|
|
GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0A0);
|
|
GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_C0);
|
|
GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
|
|
GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_A0);
|
|
GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
|
|
GXSetNumTexGens(0);
|
|
GXSetNumTevStages(1);
|
|
GXSetCullMode(GX_CULL_NONE);
|
|
GXSetZMode(GX_TRUE, GX_ALWAYS, GX_TRUE);
|
|
sp28.x = sp28.y = sp28.z = 0.0f;
|
|
sp1C.x = sp1C.y = 0.0f;
|
|
sp1C.z = -100.0f;
|
|
sp10.x = sp10.z = 0.0f;
|
|
sp10.y = 1.0f;
|
|
C_MTXLookAt(sp34, &sp28, &sp10, &sp1C);
|
|
GXLoadPosMtxImm(sp34, GX_PNMTX0);
|
|
sp28.x = 10000.0f * -sin(var_r31->fov / 2) * 1.2f;
|
|
sp28.y = 10000.0f * -sin(var_r31->fov / 2) * 0.8333333f;
|
|
GXBegin(GX_QUADS, GX_VTXFMT0, 4);
|
|
GXPosition3f32(-sp28.x, -sp28.y, -10000.0f);
|
|
GXPosition3f32(sp28.x, -sp28.y, -10000.0f);
|
|
GXPosition3f32(sp28.x, sp28.y, -10000.0f);
|
|
GXPosition3f32(-sp28.x, sp28.y, -10000.0f);
|
|
GXEnd();
|
|
}
|
|
|
|
void fn_1_1498(s16 layer) {
|
|
if (Hu3DCameraNo == 1) {
|
|
GXSetTexCopySrc(0, 0, 320, 240);
|
|
GXSetTexCopyDst(320, 240, GX_TF_RGB5A3, GX_FALSE);
|
|
GXCopyTex(lbl_1_bss_0, GX_TRUE);
|
|
DCFlushRange(lbl_1_bss_0, 0x25800); // TODO: sizeof?
|
|
fn_1_1074();
|
|
}
|
|
}
|
|
|
|
s32 fn_1_1520(void) {
|
|
UnkBss138Struct* var_r30;
|
|
UnkBss138InnerStruct00* var_r31;
|
|
UnkBss138InnerStruct00* temp_r28;
|
|
Process* var_r23;
|
|
void* var_r26;
|
|
s16 var_r27;
|
|
s16 var_r24;
|
|
s16 var_r22;
|
|
s16 var_r21;
|
|
s32 i;
|
|
s32 j;
|
|
|
|
var_r30 = &lbl_1_bss_138;
|
|
var_r26 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M411, 15), MEMORY_DEFAULT_NUM, HEAP_DATA);
|
|
var_r30->unk00 = var_r27 = Hu3DModelCreate(var_r26);
|
|
Hu3DModelCameraSet(var_r27, 1);
|
|
var_r30->unk04.x = var_r30->unk04.y = var_r30->unk04.z = 0.0f;
|
|
var_r30->unk10.x = var_r30->unk10.y = var_r30->unk10.z = 0.0f;
|
|
Hu3DModelPosSet(var_r27, var_r30->unk04.x, var_r30->unk04.y, var_r30->unk04.z);
|
|
Hu3DModelRotSet(var_r27, var_r30->unk10.x, var_r30->unk10.y, var_r30->unk10.z);
|
|
Hu3DModelShadowMapSet(var_r27);
|
|
var_r26 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M411, 16), MEMORY_DEFAULT_NUM, HEAP_DATA);
|
|
var_r30->unk1C[0].unk00 = var_r27 = Hu3DModelCreate(var_r26);
|
|
Hu3DModelCameraSet(var_r27, 1);
|
|
Hu3DModelPosSet(var_r27, var_r30->unk04.x, var_r30->unk04.y, var_r30->unk04.z);
|
|
Hu3DModelRotSet(var_r27, var_r30->unk10.x, var_r30->unk10.y, var_r30->unk10.z);
|
|
var_r31 = &var_r30->unkE4[0];
|
|
var_r26 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M411, 17), MEMORY_DEFAULT_NUM, HEAP_DATA);
|
|
var_r31->unk00 = var_r27 = Hu3DModelCreate(var_r26);
|
|
Hu3DModelAttrSet(var_r27, 1);
|
|
Hu3DModelCameraSet(var_r27, 1);
|
|
var_r26 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M411, 18), MEMORY_DEFAULT_NUM, HEAP_DATA);
|
|
var_r31->unk0C = var_r24 = Hu3DModelCreate(var_r26);
|
|
Hu3DModelAttrSet(var_r24, 1);
|
|
Hu3DModelCameraSet(var_r24, 1);
|
|
for (i = 1; i < 5; i++) {
|
|
var_r31 = &var_r30->unkE4[i];
|
|
var_r31->unk00 = Hu3DModelLink(var_r27);
|
|
Hu3DModelAttrSet(var_r31->unk00, 1);
|
|
Hu3DModelCameraSet(var_r31->unk00, 1);
|
|
if (i == 1) {
|
|
var_r26 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M411, 19), MEMORY_DEFAULT_NUM, HEAP_DATA);
|
|
var_r31->unk0C = var_r22 = Hu3DModelCreate(var_r26);
|
|
} else if (i & 1) {
|
|
var_r31->unk0C = Hu3DModelLink(var_r22);
|
|
} else {
|
|
var_r31->unk0C = Hu3DModelLink(var_r24);
|
|
}
|
|
Hu3DModelAttrSet(var_r31->unk0C, 1);
|
|
Hu3DModelCameraSet(var_r31->unk0C, 1);
|
|
}
|
|
var_r26 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M411, 17), MEMORY_DEFAULT_NUM, HEAP_DATA);
|
|
var_r30->unk274[0].unk00 = var_r27 = Hu3DModelCreate(var_r26);
|
|
Hu3DModelAttrSet(var_r27, 1);
|
|
Hu3DModelCameraSet(var_r27, 1);
|
|
for (i = 1; i < 5; i++) {
|
|
var_r30->unk274[i].unk00 = Hu3DModelLink(var_r27);
|
|
Hu3DModelAttrSet(var_r30->unk274[i].unk00, 1);
|
|
Hu3DModelCameraSet(var_r30->unk274[i].unk00, 1);
|
|
}
|
|
var_r31 = &var_r30->unk1C[1];
|
|
var_r26 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M411, 20), MEMORY_DEFAULT_NUM, HEAP_DATA);
|
|
var_r31->unk00 = var_r27 = Hu3DModelCreate(var_r26);
|
|
Hu3DModelCameraSet(var_r27, 1);
|
|
var_r31->unk10.x = -470.0f;
|
|
var_r31->unk10.y = 0.0f;
|
|
var_r31->unk10.z = -930.0f;
|
|
var_r31->unk1C.x = 0.0f;
|
|
var_r31->unk1C.y = 90.0f;
|
|
var_r31->unk1C.z = 0.0f;
|
|
Hu3DModelPosSet(var_r27, var_r31->unk10.x, var_r31->unk10.y, var_r31->unk10.z);
|
|
Hu3DModelRotSet(var_r27, var_r31->unk1C.x, var_r31->unk1C.y, var_r31->unk1C.z);
|
|
for (i = 0; i < 3; i++) {
|
|
var_r26 = HuDataSelHeapReadNum(lbl_1_data_2C4[i], MEMORY_DEFAULT_NUM, HEAP_DATA);
|
|
var_r31->unk02[i] = Hu3DJointMotion(var_r27, var_r26);
|
|
}
|
|
Hu3DMotionSet(var_r27, var_r31->unk02[0]);
|
|
Hu3DModelAttrSet(var_r27, 0x40000001);
|
|
Hu3DModelShadowSet(var_r27);
|
|
temp_r28 = &var_r30->unk1C[2];
|
|
temp_r28->unk00 = Hu3DModelLink(var_r27);
|
|
Hu3DModelCameraSet(temp_r28->unk00, 1);
|
|
Hu3DModelPosSet(temp_r28->unk00, var_r31->unk10.x, var_r31->unk10.y, var_r31->unk10.z);
|
|
Hu3DModelRotSet(temp_r28->unk00, var_r31->unk1C.x, var_r31->unk1C.y, var_r31->unk1C.z);
|
|
for (i = 0; i < 3; i++) {
|
|
var_r26 = HuDataSelHeapReadNum(lbl_1_data_2C4[i], MEMORY_DEFAULT_NUM, HEAP_DATA);
|
|
temp_r28->unk02[i] = Hu3DJointMotion(var_r27, var_r26);
|
|
}
|
|
Hu3DModelAttrSet(temp_r28->unk00, 0x800000);
|
|
Hu3DModelAttrSet(temp_r28->unk00, 0x40000001);
|
|
Hu3DModelScaleSet(temp_r28->unk00, 1.0f, -1.0f, 1.0f);
|
|
for (i = 0; i < 2; i++) {
|
|
var_r31 = &var_r30->unk1AC[i];
|
|
var_r26 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M411, 29), MEMORY_DEFAULT_NUM, HEAP_DATA);
|
|
var_r31->unk00 = var_r21 = Hu3DModelCreate(var_r26);
|
|
var_r27 = var_r31->unk00;
|
|
var_r31->unk0E = i;
|
|
Hu3DModelCameraSet(var_r27, 1);
|
|
for (j = 0; j < 5; j++) {
|
|
var_r26 = HuDataSelHeapReadNum(lbl_1_data_2D0[j], MEMORY_DEFAULT_NUM, HEAP_DATA);
|
|
var_r31->unk02[j] = Hu3DJointMotion(var_r27, var_r26);
|
|
}
|
|
Hu3DMotionSet(var_r27, var_r31->unk02[0]);
|
|
Hu3DModelAttrSet(var_r27, 0x40000001);
|
|
var_r31->unk10.x = 200.0f;
|
|
var_r31->unk10.y = 0.0f;
|
|
var_r31->unk10.z = -930.0f;
|
|
Hu3DModelPosSet(var_r27, var_r31->unk10.x, var_r31->unk10.y, var_r31->unk10.z);
|
|
Hu3DModelShadowSet(var_r27);
|
|
}
|
|
for (i = 2; i < 4; i++) {
|
|
temp_r28 = &var_r30->unk1AC[i];
|
|
temp_r28->unk00 = Hu3DModelLink(var_r21);
|
|
temp_r28->unk0E = i;
|
|
for (j = 0; j < 5; j++) {
|
|
var_r26 = HuDataSelHeapReadNum(lbl_1_data_2D0[j], MEMORY_DEFAULT_NUM, HEAP_DATA);
|
|
temp_r28->unk02[j] = Hu3DJointMotion(temp_r28->unk00, var_r26);
|
|
}
|
|
Hu3DModelCameraSet(temp_r28->unk00, 1);
|
|
Hu3DModelAttrSet(temp_r28->unk00, 0x800000);
|
|
Hu3DModelAttrSet(temp_r28->unk00, 0x40000001);
|
|
Hu3DModelPosSet(temp_r28->unk00, var_r31->unk10.x, var_r31->unk10.y, var_r31->unk10.z);
|
|
Hu3DModelScaleSet(temp_r28->unk00, 1.0f, -1.0f, 1.0f);
|
|
}
|
|
var_r23 = HuPrcChildCreate(fn_1_4BB0, 0x2000, 0x2000, 0, HuPrcCurrentGet());
|
|
var_r23->user_data = var_r30;
|
|
}
|
|
|
|
s32 fn_1_1C4C(void) {
|
|
UnkBss138Struct* var_r30;
|
|
UnkBss138InnerStruct00* var_r29;
|
|
s16 var_r31;
|
|
s16 sp8;
|
|
s16 temp_r27;
|
|
Process* var_r26;
|
|
void* var_r28;
|
|
|
|
var_r30 = &lbl_1_bss_138;
|
|
var_r28 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M411, 35), MEMORY_DEFAULT_NUM, HEAP_DATA);
|
|
var_r30->unk00 = var_r31 = Hu3DModelCreate(var_r28);
|
|
Hu3DModelCameraSet(var_r31, 1);
|
|
var_r30->unk04.x = var_r30->unk04.y = var_r30->unk04.z = 0.0f;
|
|
var_r30->unk10.x = var_r30->unk10.y = var_r30->unk10.z = 0.0f;
|
|
Hu3DModelPosSet(var_r31, var_r30->unk04.x, var_r30->unk04.y, var_r30->unk04.z);
|
|
Hu3DModelRotSet(var_r31, var_r30->unk10.x, var_r30->unk10.y, var_r30->unk10.z);
|
|
Hu3DModelShadowMapSet(var_r31);
|
|
var_r29 = &var_r30->unk1C[0];
|
|
var_r28 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M411, 36), MEMORY_DEFAULT_NUM, HEAP_DATA);
|
|
var_r29->unk00 = var_r31 = Hu3DModelCreate(var_r28);
|
|
Hu3DModelCameraSet(var_r31, 1);
|
|
Hu3DModelAttrSet(var_r31, 0x40000001);
|
|
Hu3DModelShadowSet(var_r31);
|
|
var_r29 = &var_r30->unk1C[1];
|
|
var_r28 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M411, 38), MEMORY_DEFAULT_NUM, HEAP_DATA);
|
|
var_r31 = sp8 = Hu3DModelCreate(var_r28);
|
|
var_r29->unk00 = var_r31;
|
|
Hu3DModelCameraSet(var_r31, 1);
|
|
var_r28 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M411, 39), MEMORY_DEFAULT_NUM, HEAP_DATA);
|
|
Hu3DMotionSet(var_r31, Hu3DJointMotion(var_r31, var_r28));
|
|
Hu3DModelAttrSet(var_r31, 0x40000001);
|
|
Hu3DModelShadowSet(var_r31);
|
|
var_r29 = &var_r30->unk1C[2];
|
|
var_r28 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M411, 38), MEMORY_DEFAULT_NUM, HEAP_DATA);
|
|
var_r29->unk00 = var_r31 = Hu3DModelCreate(var_r28);
|
|
Hu3DModelCameraSet(var_r31, 1);
|
|
var_r28 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M411, 40), MEMORY_DEFAULT_NUM, HEAP_DATA);
|
|
Hu3DMotionSet(var_r31, Hu3DJointMotion(var_r31, var_r28));
|
|
Hu3DModelAttrSet(var_r31, 0x40000001);
|
|
Hu3DModelPosSet(var_r31, 0.0f, 60.0f, -70.0f);
|
|
Hu3DModelShadowSet(var_r31);
|
|
var_r28 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M411, 37), MEMORY_DEFAULT_NUM, HEAP_DATA);
|
|
temp_r27 = Hu3DModelCreate(var_r28);
|
|
var_r29 = &var_r30->unkE4[0];
|
|
var_r28 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M411, 38), MEMORY_DEFAULT_NUM, HEAP_DATA);
|
|
var_r29->unk00 = var_r31 = Hu3DModelCreate(var_r28);
|
|
Hu3DModelCameraSet(var_r31, 1);
|
|
var_r28 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M411, 41), MEMORY_DEFAULT_NUM, HEAP_DATA);
|
|
var_r29->unk02[0] = Hu3DJointMotion(var_r31, var_r28);
|
|
var_r28 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M411, 42), MEMORY_DEFAULT_NUM, HEAP_DATA);
|
|
var_r29->unk02[1] = Hu3DJointMotion(var_r31, var_r28);
|
|
var_r28 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M411, 45), MEMORY_DEFAULT_NUM, HEAP_DATA);
|
|
var_r29->unk02[2] = Hu3DJointMotion(var_r31, var_r28);
|
|
Hu3DMotionSet(var_r31, var_r29->unk02[0]);
|
|
Hu3DModelAttrSet(var_r31, 1);
|
|
Hu3DModelAttrSet(var_r31, 0x40000001);
|
|
Hu3DModelHookSet(var_r31, "itemhook_r", temp_r27);
|
|
Hu3DModelShadowSet(var_r31);
|
|
var_r29 = &var_r30->unkE4[1];
|
|
var_r28 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M411, 38), MEMORY_DEFAULT_NUM, HEAP_DATA);
|
|
var_r29->unk00 = var_r31 = Hu3DModelCreate(var_r28);
|
|
Hu3DModelCameraSet(var_r31, 1);
|
|
var_r28 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M411, 43), MEMORY_DEFAULT_NUM, HEAP_DATA);
|
|
var_r29->unk02[0] = Hu3DJointMotion(var_r31, var_r28);
|
|
var_r28 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M411, 44), MEMORY_DEFAULT_NUM, HEAP_DATA);
|
|
var_r29->unk02[1] = Hu3DJointMotion(var_r31, var_r28);
|
|
var_r28 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M411, 46), MEMORY_DEFAULT_NUM, HEAP_DATA);
|
|
var_r29->unk02[2] = Hu3DJointMotion(var_r31, var_r28);
|
|
Hu3DMotionSet(var_r31, var_r29->unk02[0]);
|
|
Hu3DModelAttrSet(var_r31, 1);
|
|
Hu3DModelAttrSet(var_r31, 0x40000001);
|
|
Hu3DModelHookSet(var_r31, "itemhook_l", temp_r27);
|
|
Hu3DModelShadowSet(var_r31);
|
|
var_r26 = HuPrcChildCreate(fn_1_5384, 0x2000, 0x2000, 0, HuPrcCurrentGet());
|
|
var_r26->user_data = var_r30;
|
|
}
|
|
|
|
s32 fn_1_20C8(void) {
|
|
UnkBss138Struct* var_r31;
|
|
UnkBss138InnerStruct00* temp_r29;
|
|
Process* var_r26;
|
|
void* var_r28;
|
|
s16 var_r30;
|
|
s16 var_r25;
|
|
s32 i;
|
|
|
|
var_r31 = &lbl_1_bss_138;
|
|
var_r28 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M411, 47), MEMORY_DEFAULT_NUM, HEAP_DATA);
|
|
var_r30 = Hu3DModelCreate(var_r28);
|
|
var_r31->unk00 = var_r30;
|
|
Hu3DModelCameraSet(var_r30, 1);
|
|
var_r31->unk04.x = var_r31->unk04.y = var_r31->unk04.z = 0.0f;
|
|
var_r31->unk10.x = var_r31->unk10.y = var_r31->unk10.z = 0.0f;
|
|
Hu3DModelPosSet(var_r30, var_r31->unk04.x, var_r31->unk04.y, var_r31->unk04.z);
|
|
Hu3DModelRotSet(var_r30, var_r31->unk10.x, var_r31->unk10.y, var_r31->unk10.z);
|
|
Hu3DModelShadowMapSet(var_r30);
|
|
lbl_1_bss_E9E = Hu3DTexScrollCreate(var_r30, "jimen01");
|
|
Hu3DTexScrollPosMoveSet(lbl_1_bss_E9E, -0.01f, 0.0f, 0.0f);
|
|
lbl_1_bss_E9C = Hu3DTexScrollCreate(var_r30, "kusa01");
|
|
Hu3DTexScrollPosMoveSet(lbl_1_bss_E9C, -0.017f, 0.0f, 0.0f);
|
|
lbl_1_bss_E24 = 1.0f;
|
|
Hu3DTexScrollPosMoveSet(lbl_1_bss_E9E, -0.01f, 0.0f, 0.0f);
|
|
Hu3DTexScrollPosMoveSet(lbl_1_bss_E9C, -0.017f, 0.0f, 0.0f);
|
|
HuAudFXPitchSet(lbl_1_bss_E2C[0], 0);
|
|
temp_r29 = &var_r31->unk1C[0];
|
|
var_r28 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M411, 48), MEMORY_DEFAULT_NUM, HEAP_DATA);
|
|
var_r30 = Hu3DModelCreate(var_r28);
|
|
temp_r29->unk00 = var_r30;
|
|
Hu3DModelCameraSet(var_r30, 1);
|
|
Hu3DModelPosSet(var_r30, var_r31->unk04.x, var_r31->unk04.y, var_r31->unk04.z);
|
|
Hu3DModelRotSet(var_r30, var_r31->unk10.x, var_r31->unk10.y, var_r31->unk10.z);
|
|
Hu3DModelAttrSet(var_r30, 0x40000001);
|
|
Hu3DMotionTimeSet(var_r30, Hu3DMotionMaxTimeGet(var_r30) / 4);
|
|
temp_r29 = &var_r31->unk1C[1];
|
|
var_r28 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M411, 49), MEMORY_DEFAULT_NUM, HEAP_DATA);
|
|
var_r30 = Hu3DModelCreate(var_r28);
|
|
temp_r29->unk00 = var_r30;
|
|
Hu3DModelCameraSet(var_r30, 1);
|
|
Hu3DModelPosSet(var_r30, var_r31->unk04.x, var_r31->unk04.y, var_r31->unk04.z);
|
|
Hu3DModelRotSet(var_r30, var_r31->unk10.x, var_r31->unk10.y, var_r31->unk10.z);
|
|
Hu3DModelAttrSet(var_r30, 0x40000001);
|
|
Hu3DMotionTimeSet(var_r30, Hu3DMotionMaxTimeGet(var_r30) / 4);
|
|
for (i = 0; i < 3; i++) {
|
|
temp_r29 = &var_r31->unk1C[i + 2];
|
|
if (i == 0) {
|
|
var_r28 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M411, 50), MEMORY_DEFAULT_NUM, HEAP_DATA);
|
|
temp_r29->unk00 = var_r30 = var_r25 = Hu3DModelCreate(var_r28);
|
|
} else {
|
|
temp_r29->unk00 = Hu3DModelLink(var_r25);
|
|
}
|
|
var_r30 = temp_r29->unk00;
|
|
Hu3DModelCameraSet(var_r30, 1);
|
|
Hu3DModelAttrSet(var_r30, 0x40000040);
|
|
}
|
|
temp_r29 = &var_r31->unkE4[0];
|
|
var_r28 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M411, 51), MEMORY_DEFAULT_NUM, HEAP_DATA);
|
|
var_r30 = Hu3DModelCreate(var_r28);
|
|
temp_r29->unk00 = var_r30;
|
|
Hu3DModelCameraSet(var_r30, 1);
|
|
for (i = 0; i < 5; i++) {
|
|
var_r28 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M411, 52 + i), MEMORY_DEFAULT_NUM, HEAP_DATA);
|
|
temp_r29->unk02[i] = Hu3DJointMotion(var_r30, var_r28);
|
|
}
|
|
temp_r29->unk10.x = temp_r29->unk10.y = temp_r29->unk10.z = 0.0f;
|
|
Hu3DModelPosSet(var_r30, temp_r29->unk10.x, temp_r29->unk10.y, temp_r29->unk10.z);
|
|
Hu3DModelRotSet(var_r30, 0.0f, -90.0f, 0.0f);
|
|
Hu3DModelAttrSet(var_r30, 0x40000001);
|
|
Hu3DModelShadowSet(var_r30);
|
|
Hu3DMotionSet(var_r30, temp_r29->unk02[0]);
|
|
temp_r29 = &var_r31->unk1AC[0];
|
|
var_r28 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M411, 57), MEMORY_DEFAULT_NUM, HEAP_DATA);
|
|
var_r30 = Hu3DModelCreate(var_r28);
|
|
temp_r29->unk00 = var_r30;
|
|
Hu3DModelCameraSet(var_r30, 1);
|
|
Hu3DModelAttrSet(var_r30, 1);
|
|
var_r26 = HuPrcChildCreate(fn_1_5910, 0x2000, 0x2000, 0, HuPrcCurrentGet());
|
|
var_r26->user_data = var_r31;
|
|
}
|
|
|
|
ParticleHook lbl_1_data_30C[] = {
|
|
fn_1_3A60,
|
|
fn_1_3A9C,
|
|
fn_1_3AD8,
|
|
fn_1_3B14
|
|
};
|
|
|
|
void fn_1_25D0(void) {
|
|
u32 temp_r24;
|
|
UnkBss474Struct* temp_r31;
|
|
void* var_r28;
|
|
UnkBss474InnerStructE4* temp_r27;
|
|
UnkBss474DoublyInnerStruct6C* temp_r26;
|
|
AnimData* var_r21;
|
|
AnimData* var_r20;
|
|
Process* var_r23;
|
|
s16 temp_r25;
|
|
s32 var_r22;
|
|
s32 i;
|
|
s32 j;
|
|
|
|
HuAudSndGrpSet(0x24);
|
|
temp_r24 = GXGetTexBufferSize(320, 240, GX_TF_RGB5A3, GX_FALSE, 0);
|
|
if (!lbl_1_bss_0) {
|
|
lbl_1_bss_0 = HuMemDirectMallocNum(HEAP_DATA, temp_r24, MEMORY_DEFAULT_NUM);
|
|
}
|
|
Hu3DLayerHookSet(0, fn_1_1498);
|
|
switch (lbl_1_bss_E40) {
|
|
case 0:
|
|
fn_1_1520();
|
|
break;
|
|
case 1:
|
|
fn_1_1C4C();
|
|
break;
|
|
default:
|
|
fn_1_20C8();
|
|
break;
|
|
}
|
|
for (i = 0; i < 4; i++) {
|
|
temp_r31 = &lbl_1_bss_474[i];
|
|
temp_r31->unk34 = i;
|
|
temp_r31->unk3C = GWPlayerCfg[i].pad_idx;
|
|
temp_r31->unk38 = i + 1;
|
|
temp_r31->unk44 = 0;
|
|
temp_r31->unk264 = -1;
|
|
var_r28 = HuDataSelHeapReadNum(lbl_1_data_54[lbl_1_bss_E3C], MEMORY_DEFAULT_NUM, HEAP_DATA);
|
|
temp_r31->unk00 = Hu3DModelCreate(var_r28);
|
|
temp_r31->unk24C = HuSprAnimMake(320, 240, 2);
|
|
temp_r31->unk24C->bmp->data = lbl_1_bss_0;
|
|
Hu3DAnimCreate(temp_r31->unk24C, temp_r31->unk00, lbl_1_data_6C[lbl_1_bss_E3C]);
|
|
Hu3DModelCameraSet(temp_r31->unk00, 1 << temp_r31->unk38);
|
|
Hu3DModelPosSet(temp_r31->unk00, 0.0f, 0.0f, 0.0f);
|
|
Hu3DModelRotSet(temp_r31->unk00, 0.0f, 0.0f, 0.0f);
|
|
Hu3DModelAttrSet(temp_r31->unk00, 0x4001);
|
|
var_r28 = HuDataSelHeapReadNum(lbl_1_data_54[lbl_1_bss_E3C], MEMORY_DEFAULT_NUM, HEAP_DATA);
|
|
temp_r31->unk04 = Hu3DModelCreate(var_r28);
|
|
var_r28 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M411, 14), MEMORY_DEFAULT_NUM, HEAP_DATA);
|
|
Hu3DAnimCreate(var_r28, temp_r31->unk04, lbl_1_data_6C[lbl_1_bss_E3C]);
|
|
Hu3DModelCameraSet(temp_r31->unk04, 1 << temp_r31->unk38);
|
|
Hu3DModelPosSet(temp_r31->unk04, 0.0f, 0.0f, 0.0f);
|
|
Hu3DModelRotSet(temp_r31->unk04, 0.0f, 0.0f, 0.0f);
|
|
var_r28 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M411, 12), MEMORY_DEFAULT_NUM, HEAP_DATA);
|
|
temp_r31->unk02 = Hu3DModelCreate(var_r28);
|
|
temp_r31->unk250 = HuSprAnimMake(320, 240, 2);
|
|
temp_r31->unk250->bmp->data = lbl_1_bss_0;
|
|
Hu3DAnimCreate(temp_r31->unk250, temp_r31->unk02, lbl_1_data_6C[lbl_1_bss_E3C]);
|
|
Hu3DModelCameraSet(temp_r31->unk02, 1 << temp_r31->unk38);
|
|
Hu3DModelPosSet(temp_r31->unk02, 0.0f, 0.0f, 0.0f);
|
|
Hu3DModelRotSet(temp_r31->unk02, 0.0f, 0.0f, 0.0f);
|
|
var_r28 = HuDataSelHeapReadNum(lbl_1_data_54[lbl_1_bss_E3C], MEMORY_DEFAULT_NUM, HEAP_DATA);
|
|
temp_r31->unk06 = Hu3DModelCreate(var_r28);
|
|
Hu3DModelCameraSet(temp_r31->unk06, 1 << temp_r31->unk38);
|
|
Hu3DModelPosSet(temp_r31->unk06, 0.0f, 0.0f, 0.0f);
|
|
Hu3DModelRotSet(temp_r31->unk06, 0.0f, 0.0f, 0.0f);
|
|
Hu3DModelTPLvlSet(temp_r31->unk06, 128.0f);
|
|
Hu3DModelAttrSet(temp_r31->unk06, 0x4000);
|
|
for (j = 0; j < lbl_1_bss_E38; j++) {
|
|
temp_r31->unk6C[j] = (void*) Hu3DModelObjPtrGet(temp_r31->unk00, lbl_1_data_1C8[lbl_1_bss_E3C][j]);
|
|
if (!temp_r31->unk6C[j]) {
|
|
OSReport("objname %s\n", lbl_1_data_1C8[lbl_1_bss_E3C][j]);
|
|
OSPanic("m411.c", 908, "ObjPtr");
|
|
}
|
|
temp_r27 = &temp_r31->unkE4[j];
|
|
temp_r26 = &temp_r31->unk6C[j]->unk1C;
|
|
temp_r27->unk00 = temp_r26->unk00;
|
|
temp_r27->unk04 = temp_r26->unk04;
|
|
temp_r27->unk08 = temp_r26->unk08;
|
|
temp_r27->unk0C = temp_r26->unk0C;
|
|
temp_r27->unk10 = temp_r26->unk10;
|
|
temp_r27->unk14 = temp_r26->unk14;
|
|
temp_r27->unk18 = temp_r26->unk18;
|
|
temp_r27->unk1C = temp_r26->unk1C;
|
|
temp_r27->unk20 = temp_r26->unk20;
|
|
temp_r31->unk94[j] = (void*) Hu3DModelObjPtrGet(temp_r31->unk06, lbl_1_data_1C8[lbl_1_bss_E3C][j]);
|
|
if (!temp_r31->unk94[j]) {
|
|
OSReport("objname %s\n", lbl_1_data_1C8[lbl_1_bss_E3C][j]);
|
|
OSPanic("m411.c", 919, "ObjPtr");
|
|
}
|
|
temp_r31->unkBC[j] = (void*) Hu3DModelObjPtrGet(temp_r31->unk04, lbl_1_data_1C8[lbl_1_bss_E3C][j]);
|
|
if (!temp_r31->unkBC[j]) {
|
|
OSReport("objname %s\n", lbl_1_data_1C8[lbl_1_bss_E3C][j]);
|
|
OSPanic("m411.c", 925, "ObjPtr");
|
|
}
|
|
}
|
|
var_r28 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M411, 0), MEMORY_DEFAULT_NUM, HEAP_DATA);
|
|
temp_r31->unk0A = Hu3DModelCreate(var_r28);
|
|
Hu3DModelCameraSet(temp_r31->unk0A, 1 << temp_r31->unk38);
|
|
Hu3DModelPosSet(temp_r31->unk0A, 0.0f, 0.0f, 0.0f);
|
|
Hu3DModelRotSet(temp_r31->unk0A, 0.0f, 0.0f, 0.0f);
|
|
var_r28 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M411, 1 + GWPlayerCfg[i].character), MEMORY_DEFAULT_NUM, HEAP_DATA);
|
|
temp_r25 = Hu3DModelCreate(var_r28);
|
|
Hu3DModelCameraSet(temp_r25, 1 << temp_r31->unk38);
|
|
var_r28 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_MGCONST, 56 + GWPlayerCfg[i].character), MEMORY_DEFAULT_NUM, HEAP_DATA);
|
|
var_r21 = HuSprAnimRead(var_r28);
|
|
temp_r25 = HuSprCreate(var_r21, 0x4000, 0);
|
|
temp_r31->unk0C = HuSprGrpCreate(1);
|
|
HuSprGrpMemberSet(temp_r31->unk0C, 0, temp_r25);
|
|
HuSprAttrSet(temp_r31->unk0C, 0, 7);
|
|
temp_r31->unk08 = CharModelCreate(lbl_1_data_240[GWPlayerCfg[i].character], 2);
|
|
Hu3DModelCameraSet(temp_r31->unk08, 1 << temp_r31->unk38);
|
|
CharModelStepTypeSet(lbl_1_data_240[GWPlayerCfg[i].character], 1);
|
|
CharModelLayerSetAll(2);
|
|
temp_r31->unk48 = 0.0f;
|
|
switch (lbl_1_data_240[GWPlayerCfg[i].character]) {
|
|
case 7:
|
|
temp_r31->unk4C = -400.0f;
|
|
break;
|
|
case 5:
|
|
temp_r31->unk4C = -330.0f;
|
|
break;
|
|
case 2:
|
|
case 6:
|
|
temp_r31->unk4C = -375.0f;
|
|
break;
|
|
default:
|
|
temp_r31->unk4C = -350.0f;
|
|
break;
|
|
}
|
|
temp_r31->unk50 = 500.0f;
|
|
temp_r31->unk54 = temp_r31->unk5C = 0.0f;
|
|
temp_r31->unk58 = 180.0f;
|
|
Hu3DModelPosSet(temp_r31->unk08, temp_r31->unk48, temp_r31->unk4C, temp_r31->unk50);
|
|
Hu3DModelRotSet(temp_r31->unk08, temp_r31->unk54, temp_r31->unk58, temp_r31->unk5C);
|
|
Hu3DModelAttrSet(temp_r31->unk08, 1);
|
|
for (j = 0; j < 9; j++) {
|
|
temp_r31->unk0E[j] = CharModelMotionCreate(lbl_1_data_240[GWPlayerCfg[i].character], lbl_1_data_280[j]);
|
|
}
|
|
CharModelMotionSet(lbl_1_data_240[GWPlayerCfg[i].character], temp_r31->unk0E[0]);
|
|
Hu3DModelAttrSet(temp_r31->unk08, 0x40000001);
|
|
if (lbl_1_bss_E40 == 0) {
|
|
var_r28 = HuDataSelHeapReadNum(lbl_1_data_260[GWPlayerCfg[i].character], MEMORY_DEFAULT_NUM, HEAP_DATA);
|
|
temp_r31->unk20 = Hu3DModelCreate(var_r28);
|
|
Hu3DModelAttrSet(temp_r31->unk20, 0x800001);
|
|
Hu3DModelCameraSet(temp_r31->unk20, 1);
|
|
for (j = 0; j < 9; j++) {
|
|
var_r28 = HuDataSelHeapReadNum((u8) lbl_1_data_280[j] + lbl_1_data_2A4[GWPlayerCfg[i].character], MEMORY_DEFAULT_NUM, HEAP_DATA);
|
|
temp_r31->unk22[j] = Hu3DJointMotion(temp_r31->unk20, var_r28);
|
|
}
|
|
Hu3DMotionSet(temp_r31->unk20, temp_r31->unk22[3]);
|
|
Hu3DModelPosSet(temp_r31->unk20, temp_r31->unk48, 0.0f, temp_r31->unk50);
|
|
Hu3DModelRotSet(temp_r31->unk20, temp_r31->unk54, temp_r31->unk58, temp_r31->unk5C);
|
|
Hu3DModelScaleSet(temp_r31->unk20, 1.0f, -1.0f, 1.0f);
|
|
}
|
|
CharModelMotionDataClose(lbl_1_data_240[GWPlayerCfg[i].character]);
|
|
var_r20 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M411, 13), MEMORY_DEFAULT_NUM));
|
|
temp_r25 = Hu3DParticleCreate(var_r20, 300);
|
|
Hu3DModelPosSet(temp_r25, 0.0f, 0.0f, 0.0f);
|
|
Hu3DModelScaleSet(temp_r25, 1.0f, 1.0f, 1.0f);
|
|
Hu3DModelLayerSet(temp_r25, 1);
|
|
Hu3DParticleColSet(temp_r25, 0xFF, 0xFF, 0);
|
|
Hu3DParticleScaleSet(temp_r25, 0.0f);
|
|
Hu3DParticleHookSet(temp_r25, lbl_1_data_30C[temp_r31->unk34]);
|
|
Hu3DModelCameraSet(temp_r25, 1 << temp_r31->unk38);
|
|
var_r23 = HuPrcChildCreate(fn_1_7738, 0x2000, 0x3000, 0, HuPrcCurrentGet());
|
|
var_r23->user_data = temp_r31;
|
|
lbl_1_bss_124[i] = var_r23;
|
|
}
|
|
for (i = 0; i < lbl_1_bss_E38; i++) {
|
|
lbl_1_bss_E6C[i] = i;
|
|
lbl_1_bss_E44[i] = frandmod(4);
|
|
}
|
|
for (i = 0; i < 50; i++) {
|
|
j = frandmod(lbl_1_bss_E38);
|
|
var_r22 = frandmod(lbl_1_bss_E38);
|
|
temp_r24 = lbl_1_bss_E6C[j];
|
|
lbl_1_bss_E6C[j] = lbl_1_bss_E6C[var_r22];
|
|
lbl_1_bss_E6C[var_r22] = temp_r24;
|
|
}
|
|
HuPrcChildCreate(fn_1_ACB0, 0x1000, 0x1000, 0, HuPrcCurrentGet());
|
|
}
|
|
|
|
void fn_1_34B0(ModelData* model, ParticleData* particle, Mtx matrix, s32 arg3) {
|
|
float var_f30;
|
|
float temp_f28;
|
|
float var_f31;
|
|
float temp_f29;
|
|
HsfanimStruct01* var_r31;
|
|
UnkBss474Struct* temp_r28;
|
|
s16 i;
|
|
s16 j;
|
|
s16 k;
|
|
s32 var_r25;
|
|
|
|
if (particle->unk_34 == 0) {
|
|
var_r31 = particle->unk_48;
|
|
for (k = 0; k < particle->unk_30; k++, var_r31++) {
|
|
var_r31->unk14.x = var_r31->unk2C = 0.0f;
|
|
}
|
|
}
|
|
var_r31 = particle->unk_48;
|
|
temp_r28 = &lbl_1_bss_474[arg3];
|
|
if (temp_r28->unk44 == 1) {
|
|
for (i = 0; i < 4; i++) {
|
|
temp_f28 = 1.0f;
|
|
for (j = 0, var_f30 = 0.0f; j < 24; j++, var_f30 += 15.0f) {
|
|
for (k = 0; k < particle->unk_30; k++, var_r31++) {
|
|
if (var_r31->unk14.x == 0.0f) {
|
|
break;
|
|
}
|
|
}
|
|
if (k == particle->unk_30) {
|
|
break;
|
|
}
|
|
var_f31 = var_f30;
|
|
temp_f29 = temp_f28 + 5.0f * frandf();
|
|
var_r31->unk34.x = temp_r28->unk64 + 10.0f * i * sind(var_f31);
|
|
var_r31->unk34.y = temp_r28->unk68 + 10.0f * i * cosd(var_f31);
|
|
var_r31->unk34.z = 50.0f;
|
|
var_r31->unk08.x = temp_f29 * sind(var_f31);
|
|
var_r31->unk08.y = temp_f29 * cosd(var_f31);
|
|
var_r31->unk08.z = 0.0f;
|
|
var_r31->unk14.x = 30.0f;
|
|
var_r31->unk14.y = 360.0f * frandf();
|
|
var_r31->unk14.z = 225.0f;
|
|
var_r31->unk2C = 40.0f + 10.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 = 0xFF;
|
|
}
|
|
}
|
|
temp_r28->unk44++;
|
|
DCStoreRangeNoSync(particle->unk_48, particle->unk_30 * sizeof(*particle->unk_48));
|
|
}
|
|
var_r31 = particle->unk_48;
|
|
for (k = 0; k < particle->unk_30; k++, var_r31++) {
|
|
if (var_r31->unk14.x == 0.0f) {
|
|
continue;
|
|
}
|
|
VECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34);
|
|
var_r31->unk08.x *= 0.95f;
|
|
var_r31->unk08.y *= 0.95f;
|
|
var_r31->unk14.y += 20.0f;
|
|
if (var_r31->unk14.y >= 180.0f && var_r31->unk14.y < 200.0f) {
|
|
var_r31->unk14.z *= 0.6f;
|
|
}
|
|
if (var_r31->unk14.y >= 360.0f && var_r31->unk14.y < 380.0f) {
|
|
var_r31->unk14.z *= 0.6f;
|
|
}
|
|
if (var_r31->unk14.y >= 360.0f) {
|
|
var_r31->unk14.y -= 360.0f;
|
|
}
|
|
var_r25 = var_r31->unk14.z + 30.0 * sind(var_r31->unk14.y);
|
|
if (var_r25 < 0) {
|
|
var_r25 = 0;
|
|
var_r31->unk14.x = 0.0f;
|
|
}
|
|
var_r31->unk40.a = var_r25;
|
|
if (var_r31->unk14.x == 0.0f) {
|
|
var_r31->unk2C = 0.0f;
|
|
}
|
|
}
|
|
PPCSync();
|
|
}
|
|
|
|
void fn_1_3A60(ModelData* model, ParticleData* particle, Mtx matrix) {
|
|
fn_1_34B0(model, particle, matrix, 0);
|
|
}
|
|
|
|
void fn_1_3A9C(ModelData* model, ParticleData* particle, Mtx matrix) {
|
|
fn_1_34B0(model, particle, matrix, 1);
|
|
}
|
|
|
|
void fn_1_3AD8(ModelData* model, ParticleData* particle, Mtx matrix) {
|
|
fn_1_34B0(model, particle, matrix, 2);
|
|
}
|
|
|
|
void fn_1_3B14(ModelData* model, ParticleData* particle, Mtx matrix) {
|
|
fn_1_34B0(model, particle, matrix, 3);
|
|
}
|
|
|
|
void fn_1_3B50(void) {
|
|
float temp_f31;
|
|
float temp_f30;
|
|
UnkBss138InnerStruct00* temp_r31;
|
|
s16 temp_r30;
|
|
|
|
temp_r31 = HuPrcCurrentGet()->user_data;
|
|
temp_r30 = temp_r31->unk0C;
|
|
Hu3DModelRotSet(temp_r30, 0.0f, 0.0f, 0.0f);
|
|
Hu3DModelAttrReset(temp_r30, 1);
|
|
temp_f31 = -15.0f;
|
|
temp_f30 = -15.0f;
|
|
Hu3DModelPosSet(temp_r30,
|
|
temp_r31->unk10.x + 2.0 * sind(temp_r31->unk1C.y) + temp_f31,
|
|
temp_r31->unk10.y + temp_f30,
|
|
temp_r31->unk10.z + 2.0 * cosd(temp_r31->unk1C.y));
|
|
HuPrcVSleep();
|
|
Hu3DModelAttrSet(temp_r30, 1);
|
|
HuPrcSleep(4);
|
|
Hu3DModelAttrReset(temp_r30, 1);
|
|
temp_f31 = 15.0f;
|
|
temp_f30 = -15.0f;
|
|
Hu3DModelPosSet(temp_r30,
|
|
temp_r31->unk10.x + 2.0 * sind(temp_r31->unk1C.y) + temp_f31,
|
|
temp_r31->unk10.y + temp_f30,
|
|
temp_r31->unk10.z + 2.0 * cosd(temp_r31->unk1C.y));
|
|
HuPrcVSleep();
|
|
Hu3DModelAttrSet(temp_r30, 1);
|
|
HuPrcSleep(4);
|
|
Hu3DModelAttrReset(temp_r30, 1);
|
|
temp_f31 = -15.0f;
|
|
temp_f30 = 15.0f;
|
|
Hu3DModelPosSet(temp_r30,
|
|
temp_r31->unk10.x + 2.0 * sind(temp_r31->unk1C.y) + temp_f31,
|
|
temp_r31->unk10.y + temp_f30,
|
|
temp_r31->unk10.z + 2.0 * cosd(temp_r31->unk1C.y));
|
|
HuPrcVSleep();
|
|
Hu3DModelAttrSet(temp_r30, 1);
|
|
HuPrcSleep(4);
|
|
Hu3DModelAttrReset(temp_r30, 1);
|
|
temp_f31 = 15.0f;
|
|
temp_f30 = 15.0f;
|
|
Hu3DModelPosSet(temp_r30,
|
|
temp_r31->unk10.x + 2.0 * sind(temp_r31->unk1C.y) + temp_f31,
|
|
temp_r31->unk10.y + temp_f30,
|
|
temp_r31->unk10.z + 2.0 * cosd(temp_r31->unk1C.y));
|
|
HuPrcVSleep();
|
|
Hu3DModelAttrSet(temp_r30, 1);
|
|
HuPrcSleep(4);
|
|
HuPrcKill(HuPrcCurrentGet());
|
|
while (TRUE) {
|
|
HuPrcVSleep();
|
|
}
|
|
}
|
|
|
|
void fn_1_3F34(void) {
|
|
float temp_f28;
|
|
float var_f31;
|
|
float temp_f30;
|
|
float var_f29;
|
|
UnkBss138InnerStruct00* temp_r31;
|
|
Process* var_r30;
|
|
|
|
temp_r31 = HuPrcCurrentGet()->user_data;
|
|
temp_r31->unk10.x = -500.0f + 1000.0f * frandf();
|
|
temp_r31->unk10.y = 1200.0f;
|
|
temp_r31->unk10.z = 0.0f;
|
|
temp_r31->unk1C.x = temp_r31->unk1C.y = temp_r31->unk1C.z = 0.0f;
|
|
Hu3DModelAttrReset(temp_r31->unk00, 1);
|
|
temp_f28 = temp_r31->unk10.x;
|
|
var_f31 = 0.0f;
|
|
temp_f30 = 1.0f + 2.0f * frandf();
|
|
Hu3DModelScaleSet(temp_r31->unk00, temp_f30, temp_f30, temp_f30);
|
|
Hu3DModelScaleSet(temp_r31->unk0C, temp_f30, temp_f30, temp_f30);
|
|
var_f29 = 10.0f + 20.0f * frandf();
|
|
while (TRUE) {
|
|
temp_r31->unk10.x = temp_f28 + var_f29 * sind(var_f31);
|
|
var_f31 += 10.0f;
|
|
if (var_f31 == 180.0f || var_f31 == 360.0f) {
|
|
var_f29 = 10.0f + 20.0f * frandf();
|
|
}
|
|
if (var_f31 > 360.0f) {
|
|
var_f31 -= 360.0f;
|
|
}
|
|
temp_r31->unk10.y -= 3.0f;
|
|
if (temp_r31->unk10.y < 0.0f) {
|
|
break;
|
|
}
|
|
temp_r31->unk1C.y += 10.0f;
|
|
if (temp_r31->unk1C.y > 360.0f) {
|
|
temp_r31->unk1C.y -= 360.0f;
|
|
}
|
|
Hu3DModelPosSet(temp_r31->unk00, temp_r31->unk10.x, temp_r31->unk10.y, temp_r31->unk10.z);
|
|
Hu3DModelRotSet(temp_r31->unk00, temp_r31->unk1C.x, temp_r31->unk1C.y, temp_r31->unk1C.z);
|
|
if (temp_r31->unk1C.y == 350.0f) {
|
|
var_r30 = HuPrcChildCreate(fn_1_3B50, 0x2000, 0x2000, 0, HuPrcCurrentGet());
|
|
var_r30->user_data = temp_r31;
|
|
}
|
|
HuPrcVSleep();
|
|
}
|
|
HuPrcCurrentGet()->user_data = (void*) 10000;
|
|
HuPrcKill(HuPrcCurrentGet());
|
|
while (TRUE) {
|
|
HuPrcVSleep();
|
|
}
|
|
}
|
|
|
|
void fn_1_4218(void) {
|
|
float temp_f28;
|
|
float var_f29;
|
|
float temp_f26;
|
|
float temp_f25;
|
|
float var_f31;
|
|
float temp_f24;
|
|
float var_f30;
|
|
float temp_f23;
|
|
float temp_f27;
|
|
float temp_f22;
|
|
UnkBss138InnerStruct00* temp_r31;
|
|
|
|
temp_r31 = HuPrcCurrentGet()->user_data;
|
|
temp_f28 = -600.0f + 1200.0f * frandf();
|
|
var_f29 = 1200.0f;
|
|
temp_f26 = -2900.0f;
|
|
temp_f25 = var_f31 = temp_f24 = 0.0f;
|
|
Hu3DModelAttrReset(temp_r31->unk00, 1);
|
|
temp_f23 = temp_f28;
|
|
var_f30 = 0.0f;
|
|
temp_f27 = 1.0f + 2.0f * frandf();
|
|
Hu3DModelScaleSet(temp_r31->unk00, temp_f27, temp_f27, temp_f27);
|
|
temp_f22 = 10.0f + 20.0f * frandf();
|
|
while (TRUE) {
|
|
temp_f28 = temp_f23 + temp_f22 * sind(var_f30);
|
|
var_f30 += 10.0f;
|
|
if (var_f30 > 360.0f) {
|
|
var_f30 -= 360.0f;
|
|
}
|
|
var_f29 -= 3.0f;
|
|
if (var_f29 < 0.0f) {
|
|
break;
|
|
}
|
|
var_f31 += 10.0f;
|
|
if (var_f31 > 360.0f) {
|
|
var_f31 -= 360.0f;
|
|
}
|
|
Hu3DModelPosSet(temp_r31->unk00, temp_f28, var_f29, temp_f26);
|
|
Hu3DModelRotSet(temp_r31->unk00, temp_f25, var_f31, temp_f24);
|
|
HuPrcVSleep();
|
|
}
|
|
HuPrcCurrentGet()->user_data = (void*) 10000;
|
|
HuPrcKill(HuPrcCurrentGet());
|
|
while (TRUE) {
|
|
HuPrcVSleep();
|
|
}
|
|
}
|
|
|
|
void fn_1_4454(void) {
|
|
float temp_f30;
|
|
float sp8;
|
|
float temp_f29;
|
|
float var_f31;
|
|
UnkBss138InnerStruct00* temp_r31;
|
|
UnkBss138InnerStruct00* var_r30;
|
|
s32 i;
|
|
|
|
temp_r31 = HuPrcCurrentGet()->user_data;
|
|
if (temp_r31->unk0E == 0) {
|
|
var_f31 = 0.0f;
|
|
var_r30 = &lbl_1_bss_138.unk1AC[2];
|
|
} else {
|
|
var_f31 = 180.0f;
|
|
var_r30 = &lbl_1_bss_138.unk1AC[3];
|
|
}
|
|
temp_f30 = temp_r31->unk10.x;
|
|
sp8 = temp_r31->unk10.y;
|
|
temp_f29 = temp_r31->unk10.z;
|
|
while (TRUE) {
|
|
temp_r31->unk10.x = temp_f30 + 200.0 * sind(var_f31);
|
|
temp_r31->unk10.z = temp_f29 + 200.0 * cosd(var_f31);
|
|
var_f31 += 1.5f;
|
|
if (!HuPrcCurrentGet()->user_data && ((var_f31 > 90.0f && var_f31 < 100.0f) || (var_f31 > 270.0f && var_f31 < 280.0f))) {
|
|
break;
|
|
}
|
|
if (var_f31 > 360.0f) {
|
|
var_f31 -= 360.0f;
|
|
}
|
|
temp_r31->unk1C.y = var_f31 + 90.0f;
|
|
Hu3DModelPosSet(temp_r31->unk00, temp_r31->unk10.x, temp_r31->unk10.y, temp_r31->unk10.z);
|
|
Hu3DModelRotSet(temp_r31->unk00, temp_r31->unk1C.x, temp_r31->unk1C.y, temp_r31->unk1C.z);
|
|
Hu3DModelPosSet(var_r30->unk00, temp_r31->unk10.x, temp_r31->unk10.y, temp_r31->unk10.z);
|
|
Hu3DModelRotSet(var_r30->unk00, temp_r31->unk1C.x, temp_r31->unk1C.y, temp_r31->unk1C.z);
|
|
HuPrcVSleep();
|
|
}
|
|
while (TRUE) {
|
|
if (temp_r31->unk1C.y > 180.0f) {
|
|
temp_r31->unk1C.y += 10.0f;
|
|
if (temp_r31->unk1C.y >= 360.0f) {
|
|
break;
|
|
}
|
|
}
|
|
if (temp_r31->unk1C.y <= 180.0f) {
|
|
temp_r31->unk1C.y -= 10.0f;
|
|
if (temp_r31->unk1C.y <= 0.0f) {
|
|
break;
|
|
}
|
|
}
|
|
Hu3DModelRotSet(temp_r31->unk00, temp_r31->unk1C.x, temp_r31->unk1C.y, temp_r31->unk1C.z);
|
|
Hu3DModelRotSet(var_r30->unk00, temp_r31->unk1C.x, temp_r31->unk1C.y, temp_r31->unk1C.z);
|
|
HuPrcVSleep();
|
|
}
|
|
Hu3DModelRotSet(temp_r31->unk00, temp_r31->unk1C.x, 0.0f, temp_r31->unk1C.z);
|
|
Hu3DModelRotSet(var_r30->unk00, temp_r31->unk1C.x, 0.0f, temp_r31->unk1C.z);
|
|
Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk02[1], 0.0f, 5.0f, 0);
|
|
Hu3DMotionShiftSet(var_r30->unk00, var_r30->unk02[1], 0.0f, 5.0f, 0);
|
|
for (i = 0; i < 120; i++) {
|
|
if (var_f31 > 180.0f) {
|
|
temp_r31->unk10.x += 1.6666666f;
|
|
temp_r31->unk10.z += 0.8333333f;
|
|
} else {
|
|
temp_r31->unk10.z += 0.8333333f;
|
|
}
|
|
Hu3DModelPosSet(temp_r31->unk00, temp_r31->unk10.x, temp_r31->unk10.y, temp_r31->unk10.z);
|
|
Hu3DModelPosSet(var_r30->unk00, temp_r31->unk10.x, temp_r31->unk10.y, temp_r31->unk10.z);
|
|
HuPrcVSleep();
|
|
}
|
|
Hu3DMotionSet(temp_r31->unk00, temp_r31->unk02[2]);
|
|
Hu3DModelAttrReset(temp_r31->unk00, 0x40000001);
|
|
Hu3DMotionSet(var_r30->unk00, var_r30->unk02[2]);
|
|
Hu3DModelAttrReset(var_r30->unk00, 0x40000001);
|
|
while (Hu3DMotionEndCheck(temp_r31->unk00) == 0) {
|
|
HuPrcVSleep();
|
|
}
|
|
if (temp_r31->unk0E == 0) {
|
|
Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk02[3], 0.0f, 5.0f, 0x40000001);
|
|
Hu3DMotionShiftSet(var_r30->unk00, var_r30->unk02[3], 0.0f, 5.0f, 0x40000001);
|
|
} else {
|
|
Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk02[4], 0.0f, 5.0f, 0x40000001);
|
|
Hu3DMotionShiftSet(var_r30->unk00, var_r30->unk02[4], 0.0f, 5.0f, 0x40000001);
|
|
}
|
|
while (TRUE) {
|
|
HuPrcVSleep();
|
|
}
|
|
}
|
|
|
|
void fn_1_4968(void) {
|
|
UnkBss138InnerStruct00* var_r31;
|
|
UnkBss138InnerStruct00* var_r30;
|
|
s32 i;
|
|
|
|
var_r31 = &lbl_1_bss_138.unk1C[1];
|
|
var_r30 = &lbl_1_bss_138.unk1C[2];
|
|
for (i = 0; i < 30; i++) {
|
|
var_r31->unk1C.y -= 2.6666667f;
|
|
Hu3DModelRotSet(var_r31->unk00, var_r31->unk1C.x, var_r31->unk1C.y, var_r31->unk1C.z);
|
|
Hu3DModelRotSet(var_r30->unk00, var_r31->unk1C.x, var_r31->unk1C.y, var_r31->unk1C.z);
|
|
HuPrcVSleep();
|
|
}
|
|
Hu3DMotionShiftSet(var_r31->unk00, var_r31->unk02[2], 0.0f, 5.0f, 0x40000001);
|
|
Hu3DMotionShiftSet(var_r30->unk00, var_r30->unk02[2], 0.0f, 5.0f, 0x40000001);
|
|
for (i = 0; i < 60; i++) {
|
|
var_r31->unk10.x += 2.5f;
|
|
var_r31->unk10.z += 3.3333333f;
|
|
Hu3DModelPosSet(var_r31->unk00, var_r31->unk10.x, var_r31->unk10.y, var_r31->unk10.z);
|
|
Hu3DModelPosSet(var_r30->unk00, var_r31->unk10.x, var_r31->unk10.y, var_r31->unk10.z);
|
|
HuPrcVSleep();
|
|
}
|
|
for (i = 0; i < 5; i++) {
|
|
var_r31->unk1C.y -= 2.0f;
|
|
Hu3DModelRotSet(var_r31->unk00, var_r31->unk1C.x, var_r31->unk1C.y, var_r31->unk1C.z);
|
|
Hu3DModelRotSet(var_r30->unk00, var_r31->unk1C.x, var_r31->unk1C.y, var_r31->unk1C.z);
|
|
HuPrcVSleep();
|
|
}
|
|
Hu3DMotionShiftSet(var_r31->unk00, var_r31->unk02[1], 0.0f, 10.0f, 0x40000001);
|
|
Hu3DMotionShiftSet(var_r30->unk00, var_r30->unk02[1], 0.0f, 10.0f, 0x40000001);
|
|
while (TRUE) {
|
|
if (lbl_1_bss_E98 >= 5) {
|
|
break;
|
|
}
|
|
if (Hu3DMotionTimeGet(var_r31->unk00) == 0.0f) {
|
|
HuAudFXPlay(0x576);
|
|
}
|
|
HuPrcVSleep();
|
|
}
|
|
while (TRUE) {
|
|
HuPrcVSleep();
|
|
}
|
|
}
|
|
|
|
void fn_1_4BB0(void) {
|
|
UnkBss138Struct* temp_r28;
|
|
Process* sp24[5];
|
|
Process* sp10[5];
|
|
Process* sp8[2];
|
|
s32 var_r30;
|
|
s32 var_r29;
|
|
s32 var_r27;
|
|
s32 i;
|
|
|
|
temp_r28 = HuPrcCurrentGet()->user_data;
|
|
for (i = 0; i < 5; i++) {
|
|
sp24[i] = NULL;
|
|
sp10[i] = NULL;
|
|
}
|
|
for (i = 0; i < 2; i++) {
|
|
sp8[i] = HuPrcChildCreate(fn_1_4454, 0x2000, 0x2000, 0, HuPrcCurrentGet());
|
|
sp8[i]->user_data = &temp_r28->unk1AC[i];
|
|
}
|
|
var_r30 = var_r29 = 0;
|
|
var_r27 = 0;
|
|
while (TRUE) {
|
|
if (var_r30 == 0) {
|
|
for (i = 0; i < 5; i++) {
|
|
if (!sp24[i]) {
|
|
sp24[i] = HuPrcChildCreate(fn_1_3F34, 0x2000, 0x2000, 0, HuPrcCurrentGet());
|
|
sp24[i]->user_data = &temp_r28->unkE4[i];
|
|
var_r30 = frandmod(20) + 20;
|
|
break;
|
|
}
|
|
}
|
|
} else {
|
|
var_r30--;
|
|
}
|
|
if (var_r29 == 0) {
|
|
for (i = 0; i < 5; i++) {
|
|
if (!sp10[i]) {
|
|
sp10[i] = HuPrcChildCreate(fn_1_4218, 0x2000, 0x2000, 0, HuPrcCurrentGet());
|
|
sp10[i]->user_data = &temp_r28->unk274[i];
|
|
var_r29 = frandmod(20) + 20;
|
|
break;
|
|
}
|
|
}
|
|
} else {
|
|
var_r29--;
|
|
}
|
|
if (lbl_1_bss_E98 == 4 && var_r27 == 0) {
|
|
var_r27 = 1;
|
|
HuPrcChildCreate(fn_1_4968, 0x2000, 0x2000, 0, HuPrcCurrentGet());
|
|
for (i = 0; i < 2; i++) {
|
|
sp8[i]->user_data = NULL;
|
|
}
|
|
}
|
|
HuPrcVSleep();
|
|
for (i = 0; i < 5; i++) {
|
|
if (sp24[i] && sp24[i]->user_data == (void*) 10000) {
|
|
sp24[i] = NULL;
|
|
}
|
|
if (sp10[i] && sp10[i]->user_data == (void*) 10000) {
|
|
sp10[i] = NULL;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
void fn_1_4E8C(void) {
|
|
float var_f31;
|
|
UnkBss138InnerStruct00* temp_r31;
|
|
s32 temp_r29;
|
|
s32 i;
|
|
|
|
temp_r29 = (s32) HuPrcCurrentGet()->user_data;
|
|
temp_r31 = &lbl_1_bss_138.unkE4[temp_r29 - 1];
|
|
temp_r31->unk10.y = 0.0f;
|
|
temp_r31->unk10.z = 200.0f;
|
|
if (temp_r29 < 2) {
|
|
temp_r31->unk10.x = 500.0f;
|
|
temp_r31->unk1C.x = temp_r31->unk1C.z = 0.0f;
|
|
temp_r31->unk1C.y = -90.0f;
|
|
var_f31 = (120.0f - temp_r31->unk10.x) / 60.0f;
|
|
} else {
|
|
temp_r31->unk10.x = -500.0f;
|
|
temp_r31->unk1C.x = temp_r31->unk1C.z = 0.0f;
|
|
temp_r31->unk1C.y = 90.0f;
|
|
var_f31 = (-120.0f - temp_r31->unk10.x) / 60.0f;
|
|
}
|
|
Hu3DModelAttrReset(temp_r31->unk00, 1);
|
|
Hu3DModelRotSet(temp_r31->unk00, temp_r31->unk1C.x, temp_r31->unk1C.y, temp_r31->unk1C.z);
|
|
for (i = 0; i < 60; i++) {
|
|
temp_r31->unk10.x += var_f31;
|
|
Hu3DModelPosSet(temp_r31->unk00, temp_r31->unk10.x, temp_r31->unk10.y, temp_r31->unk10.z);
|
|
HuPrcVSleep();
|
|
}
|
|
Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk02[1], 0.0f, 5.0f, 0);
|
|
while (!Hu3DMotionEndCheck(temp_r31->unk00)) {
|
|
HuPrcVSleep();
|
|
}
|
|
Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk02[2], 0.0f, 2.0f, 0x40000001);
|
|
HuAudFXPlay(0x36);
|
|
while (TRUE) {
|
|
HuPrcVSleep();
|
|
}
|
|
}
|
|
|
|
void fn_1_507C(void) {
|
|
float temp_f31;
|
|
s32 var_r28;
|
|
s32 var_r29;
|
|
UnkBss138Struct* temp_r27;
|
|
UnkBss138InnerStruct00* temp_r31;
|
|
UnkBss138InnerStruct00* temp_r30;
|
|
|
|
temp_r27 = HuPrcCurrentGet()->user_data;
|
|
temp_r31 = &temp_r27->unk1C[0];
|
|
temp_r30 = &temp_r27->unk1C[1];
|
|
temp_f31 = 2.0f;
|
|
var_r28 = 0;
|
|
lbl_1_bss_E2C[0] = -1;
|
|
while (TRUE) {
|
|
if (lbl_1_bss_E98 == 4) {
|
|
break;
|
|
}
|
|
temp_r31->unk10.x = 500.0f;
|
|
temp_r31->unk10.y = 0.0f;
|
|
temp_r31->unk10.z = 100.0f;
|
|
temp_r31->unk1C.x = temp_r31->unk1C.z = 0.0f;
|
|
temp_r31->unk1C.y = -90.0f;
|
|
Hu3DModelRotSet(temp_r31->unk00, temp_r31->unk1C.x, temp_r31->unk1C.y, temp_r31->unk1C.z);
|
|
Hu3DModelRotSet(temp_r30->unk00, temp_r31->unk1C.x, temp_r31->unk1C.y, temp_r31->unk1C.z);
|
|
var_r29 = 0;
|
|
while (TRUE) {
|
|
temp_r31->unk10.x -= temp_f31;
|
|
if (var_r29 == 0 && temp_r31->unk10.x < 400.0f) {
|
|
var_r29 = 1;
|
|
if (lbl_1_bss_E2C[0] != -1) {
|
|
HuAudFXStop(lbl_1_bss_E2C[0]);
|
|
}
|
|
lbl_1_bss_E2C[0] = HuAudFXPlayVol(0x56E, 0);
|
|
if (var_r28 == 0) {
|
|
var_r28 = 1;
|
|
HuAudFXVolSet(lbl_1_bss_E2C[0], 0x7F);
|
|
}
|
|
}
|
|
if (temp_r31->unk10.x < -300.0f) {
|
|
break;
|
|
}
|
|
Hu3DModelPosSet(temp_r31->unk00, temp_r31->unk10.x, temp_r31->unk10.y, temp_r31->unk10.z);
|
|
Hu3DModelPosSet(temp_r30->unk00, temp_r31->unk10.x + 35.0f, temp_r31->unk10.y, temp_r31->unk10.z);
|
|
HuPrcVSleep();
|
|
}
|
|
if (lbl_1_bss_E98 == 4) {
|
|
break;
|
|
}
|
|
temp_r31->unk10.x = -500.0f;
|
|
temp_r31->unk1C.y = 90.0f;
|
|
Hu3DModelRotSet(temp_r31->unk00, temp_r31->unk1C.x, temp_r31->unk1C.y, temp_r31->unk1C.z);
|
|
Hu3DModelRotSet(temp_r30->unk00, temp_r31->unk1C.x, temp_r31->unk1C.y, temp_r31->unk1C.z);
|
|
var_r29 = 0;
|
|
while (TRUE) {
|
|
temp_r31->unk10.x += temp_f31;
|
|
if (var_r29 == 0 && temp_r31->unk10.x > -400.0f) {
|
|
var_r29 = 1;
|
|
if (lbl_1_bss_E2C[0] != -1) {
|
|
HuAudFXStop(lbl_1_bss_E2C[0]);
|
|
}
|
|
lbl_1_bss_E2C[0] = HuAudFXPlayVol(0x56E, 0);
|
|
}
|
|
if (temp_r31->unk10.x > 300.0f) {
|
|
break;
|
|
}
|
|
Hu3DModelPosSet(temp_r31->unk00, temp_r31->unk10.x, temp_r31->unk10.y, temp_r31->unk10.z);
|
|
Hu3DModelPosSet(temp_r30->unk00, temp_r31->unk10.x - 35.0f, temp_r31->unk10.y, temp_r31->unk10.z);
|
|
HuPrcVSleep();
|
|
}
|
|
}
|
|
Hu3DModelAttrSet(temp_r31->unk00, 1);
|
|
Hu3DModelAttrSet(temp_r30->unk00, 1);
|
|
while (TRUE) {
|
|
HuPrcVSleep();
|
|
}
|
|
}
|
|
|
|
void fn_1_5384(void) {
|
|
UnkBss138Struct* temp_r30;
|
|
Process* var_r31;
|
|
|
|
temp_r30 = HuPrcCurrentGet()->user_data;
|
|
var_r31 = HuPrcChildCreate(fn_1_507C, 0x2000, 0x2000, 0, HuPrcCurrentGet());
|
|
var_r31->user_data = temp_r30;
|
|
while (lbl_1_bss_E98 != 4) {
|
|
HuPrcVSleep();
|
|
}
|
|
HuPrcSleep(0x122);
|
|
var_r31 = HuPrcChildCreate(fn_1_4E8C, 0x2000, 0x2000, 0, HuPrcCurrentGet());
|
|
var_r31->user_data = (void*) 1;
|
|
var_r31 = HuPrcChildCreate(fn_1_4E8C, 0x2000, 0x2000, 0, HuPrcCurrentGet());
|
|
var_r31->user_data = (void*) 2;
|
|
while (TRUE) {
|
|
HuPrcVSleep();
|
|
}
|
|
}
|
|
|
|
void fn_1_544C(void) {
|
|
UnkBss138InnerStruct00* temp_r31;
|
|
s32 temp_r30;
|
|
|
|
temp_r30 = (s32) HuPrcCurrentGet()->user_data;
|
|
temp_r31 = &lbl_1_bss_138.unk1C[temp_r30 + 2];
|
|
switch (temp_r30) {
|
|
case 0:
|
|
temp_r31->unk10.x = 433.0f;
|
|
break;
|
|
case 1:
|
|
temp_r31->unk10.x = 0.0f;
|
|
break;
|
|
default:
|
|
temp_r31->unk10.x = -433.0f;
|
|
break;
|
|
}
|
|
while (TRUE) {
|
|
Hu3DModelAttrSet(temp_r31->unk00, 0x40000001);
|
|
temp_r31->unk10.x += 2.0f * lbl_1_bss_E24;
|
|
if (temp_r31->unk10.x > 650.0f) {
|
|
temp_r31->unk10.x -= 1300.0f;
|
|
}
|
|
Hu3DModelPosSet(temp_r31->unk00, temp_r31->unk10.x, temp_r31->unk10.y, temp_r31->unk10.z);
|
|
HuPrcVSleep();
|
|
}
|
|
}
|
|
|
|
void fn_1_5554(void) {
|
|
float var_f28;
|
|
float temp_f25;
|
|
float temp_f27;
|
|
float var_f26;
|
|
float var_f31;
|
|
float var_f30;
|
|
float var_f29; // ! - uninitialized
|
|
float sp8;
|
|
float temp_f24;
|
|
UnkBss138InnerStruct00 spC;
|
|
UnkBss138InnerStruct00* var_r31;
|
|
UnkBss138InnerStruct00* var_r30;
|
|
|
|
var_r31 = &spC;
|
|
var_r30 = &lbl_1_bss_138.unk1AC[0];
|
|
var_r31->unk00 = Hu3DModelLink(var_r30->unk00);
|
|
Hu3DModelCameraSet(var_r31->unk00, 1);
|
|
Hu3DModelAttrReset(var_r31->unk00, 1);
|
|
var_r31->unk10.x = -500.0f + 100.0f * frandf();
|
|
var_r31->unk10.y = var_f26 = 200.0f + 500.0f * frandf();
|
|
var_r31->unk10.z = 400.0f;
|
|
var_r31->unk1C.x = -80.0f;
|
|
var_r31->unk1C.y = 190.0f;
|
|
var_r31->unk1C.z = 45.0f;
|
|
var_f28 = 5.5f + frandf();
|
|
temp_f25 = 2.0f;
|
|
temp_f27 = 0.4f + 0.2f * frandf();
|
|
Hu3DModelScaleSet(var_r31->unk00, temp_f27, temp_f27, temp_f27);
|
|
var_f31 = 0.0f;
|
|
var_f30 = 0.0f;
|
|
while (TRUE) {
|
|
var_r31->unk10.x += var_f28;
|
|
var_f29 += 10.0f;
|
|
if (var_f29 > 360.0f) {
|
|
var_f29 -= 360.0f;
|
|
}
|
|
var_r31->unk10.y = var_f26 + 20.0 * sind(var_f29);
|
|
var_f26 -= temp_f25;
|
|
var_f28 += 0.1f;
|
|
Hu3DModelPosSet(var_r31->unk00, var_r31->unk10.x, var_r31->unk10.y, var_r31->unk10.z);
|
|
var_f31 += 20.0f;
|
|
var_f30 += 20.0f;
|
|
if (var_f31 > 360.0f) {
|
|
var_f31 -= 360.0f;
|
|
}
|
|
if (var_f30 > 360.0f) {
|
|
var_f30 -= 360.0f;
|
|
}
|
|
temp_f24 = var_r31->unk1C.y + 40.0 * sind(var_f31);
|
|
sp8 = var_r31->unk1C.x + 30.0 * sind(var_f31);
|
|
Hu3DModelRotSet(var_r31->unk00, var_r31->unk1C.x, temp_f24, var_r31->unk1C.z);
|
|
if (var_r31->unk10.x > 400.0f) {
|
|
break;
|
|
}
|
|
HuPrcVSleep();
|
|
}
|
|
Hu3DModelKill(var_r31->unk00);
|
|
HuPrcKill(HuPrcCurrentGet());
|
|
while (TRUE) {
|
|
HuPrcVSleep();
|
|
}
|
|
}
|
|
|
|
void fn_1_58BC(void) {
|
|
while (TRUE) {
|
|
if (lbl_1_bss_E98 == 4) {
|
|
break;
|
|
}
|
|
HuPrcChildCreate(fn_1_5554, 0x2000, 0x2000, 0, HuPrcCurrentGet());
|
|
HuPrcSleep(20);
|
|
}
|
|
while (TRUE) {
|
|
HuPrcVSleep();
|
|
}
|
|
}
|
|
|
|
void fn_1_5910(void) {
|
|
float var_f31;
|
|
UnkBss138Struct* spC;
|
|
Process* var_r29;
|
|
UnkBss138InnerStruct00* var_r31;
|
|
UnkBss474Struct* sp8;
|
|
s32 i;
|
|
|
|
spC = HuPrcCurrentGet()->user_data;
|
|
HuPrcChildCreate(fn_1_58BC, 0x2000, 0x2000, 0, HuPrcCurrentGet());
|
|
for (i = 0; i < 3; i++) {
|
|
var_r29 = HuPrcChildCreate(fn_1_544C, 0x2000, 0x2000, 0, HuPrcCurrentGet());
|
|
var_r29->user_data = (void*) i;
|
|
}
|
|
while (lbl_1_bss_E98 != 4) {
|
|
HuPrcVSleep();
|
|
}
|
|
var_r31 = &lbl_1_bss_138.unkE4[0];
|
|
Hu3DMotionShiftSet(var_r31->unk00, var_r31->unk02[1], 0.0f, 5.0f, 0);
|
|
for (var_f31 = 1.0f; var_f31 > 0.0f; var_f31 -= 0.033333335f) {
|
|
lbl_1_bss_E24 = var_f31;
|
|
Hu3DTexScrollPosMoveSet(lbl_1_bss_E9E, -0.01f * var_f31, 0.0f, 0.0f);
|
|
Hu3DTexScrollPosMoveSet(lbl_1_bss_E9C, -0.017f * var_f31, 0.0f, 0.0f);
|
|
HuAudFXPitchSet(lbl_1_bss_E2C[0], -8191.0f * (1.0f - var_f31));
|
|
HuPrcVSleep();
|
|
}
|
|
lbl_1_bss_E24 = 0.0f;
|
|
Hu3DTexScrollPosMoveSet(lbl_1_bss_E9E, -0.0f, 0.0f, 0.0f);
|
|
Hu3DTexScrollPosMoveSet(lbl_1_bss_E9C, -0.0f, 0.0f, 0.0f);
|
|
HuAudFXPitchSet(lbl_1_bss_E2C[0], -0x1FFF);
|
|
HuPrcSleep(270);
|
|
sp8 = &lbl_1_bss_474[lbl_1_bss_E94];
|
|
Hu3DMotionSet(var_r31->unk00, var_r31->unk02[2]);
|
|
for (var_f31 = 0.0f; var_f31 < 1.0f; var_f31 += 0.033333335f) {
|
|
lbl_1_bss_E24 = var_f31;
|
|
Hu3DTexScrollPosMoveSet(lbl_1_bss_E9E, -0.01f * var_f31, 0.0f, 0.0f);
|
|
Hu3DTexScrollPosMoveSet(lbl_1_bss_E9C, -0.017f * var_f31, 0.0f, 0.0f);
|
|
HuAudFXPitchSet(lbl_1_bss_E2C[0], -8191.0f * (1.0f - var_f31));
|
|
HuPrcVSleep();
|
|
}
|
|
lbl_1_bss_E24 = 1.0f;
|
|
Hu3DTexScrollPosMoveSet(lbl_1_bss_E9E, -0.01f, 0.0f, 0.0f);
|
|
Hu3DTexScrollPosMoveSet(lbl_1_bss_E9C, -0.017f, 0.0f, 0.0f);
|
|
HuAudFXPitchSet(lbl_1_bss_E2C[0], 0);
|
|
Hu3DMotionShiftSet(var_r31->unk00, var_r31->unk02[0], 0.0f, 5.0f, 0x40000001);
|
|
while (TRUE) {
|
|
HuPrcVSleep();
|
|
}
|
|
}
|
|
|
|
s8 fn_1_5D58(s32 arg0, s32 arg1) {
|
|
UnkBss474Struct* temp_r31;
|
|
s8 var_r30;
|
|
|
|
temp_r31 = &lbl_1_bss_474[arg0];
|
|
if (!GWPlayerCfg[arg0].iscom) {
|
|
(arg1 != 0) ? (var_r30 = HuPadStkY[temp_r31->unk3C]) : (var_r30 = HuPadStkX[temp_r31->unk3C]);
|
|
} else {
|
|
(arg1 != 0) ? (var_r30 = temp_r31->unk255) : (var_r30 = temp_r31->unk254);
|
|
}
|
|
return var_r30;
|
|
}
|
|
|
|
u8 fn_1_5E10(s32 arg0, s32 arg1) {
|
|
UnkBss474Struct* temp_r31;
|
|
s8 var_r30;
|
|
|
|
temp_r31 = &lbl_1_bss_474[arg0];
|
|
if (!GWPlayerCfg[arg0].iscom) {
|
|
(arg1 != 0) ? (var_r30 = HuPadTrigR[temp_r31->unk3C]) : (var_r30 = HuPadTrigL[temp_r31->unk3C]);
|
|
} else {
|
|
(arg1 != 0) ? (var_r30 = temp_r31->unk256) : (var_r30 = temp_r31->unk257);
|
|
}
|
|
return var_r30;
|
|
}
|
|
|
|
u16 fn_1_5ED0(s32 arg0) {
|
|
UnkBss474Struct* temp_r31;
|
|
u16 var_r30;
|
|
|
|
temp_r31 = &lbl_1_bss_474[arg0];
|
|
if (!GWPlayerCfg[arg0].iscom) {
|
|
var_r30 = HuPadBtnDown[temp_r31->unk3C];
|
|
} else {
|
|
var_r30 = temp_r31->unk258;
|
|
}
|
|
return var_r30;
|
|
}
|
|
|
|
void fn_1_5F3C(UnkBss474Struct* arg0, s32 arg1) {
|
|
Vec sp2C;
|
|
Vec sp20;
|
|
Vec sp14;
|
|
Vec sp8;
|
|
float temp_f31;
|
|
float temp_f30;
|
|
float temp_f29;
|
|
float var_f28;
|
|
float var_f27;
|
|
float var_f26;
|
|
float var_f25;
|
|
UnkBss474DoublyInnerStruct6C* temp_r31;
|
|
UnkBss474DoublyInnerStruct6C* temp_r29;
|
|
UnkBss474DoublyInnerStruct6C* temp_r27;
|
|
UnkBss474InnerStructE4* temp_r28;
|
|
s32 var_r25;
|
|
s32 i;
|
|
|
|
temp_r31 = &arg0->unk6C[arg1]->unk1C;
|
|
temp_r29 = &arg0->unk94[arg1]->unk1C;
|
|
temp_r27 = &arg0->unkBC[arg1]->unk1C;
|
|
temp_r28 = &arg0->unkE4[arg1];
|
|
temp_f31 = (temp_r28->unk00 - temp_r31->unk00) / 15.0f;
|
|
temp_f29 = (temp_r28->unk08 - temp_r31->unk08) / 30.0f;
|
|
temp_f30 = (temp_r28->unk04 - temp_r31->unk04) / 15.0f;
|
|
HuSprAttrSet(arg0->unk0C, 0, HUSPR_ATTR_REVERSE);
|
|
omVibrate(arg0->unk34, 12, 6, 6);
|
|
var_r25 = 0;
|
|
for (i = 0; i < 30; i++) {
|
|
temp_r31->unk08 += temp_f29;
|
|
temp_r27->unk08 = temp_r29->unk08 = temp_r31->unk08 - 5.0f;
|
|
if (i < 15) {
|
|
temp_r31->unk00 += temp_f31;
|
|
temp_r31->unk04 += temp_f30;
|
|
temp_r27->unk00 = temp_r29->unk00 = temp_r31->unk00;
|
|
temp_r27->unk04 = temp_r29->unk04 = temp_r31->unk04;
|
|
temp_r29->unk18 *= 0.95f;
|
|
temp_r29->unk1C *= 0.95f;
|
|
sp2C.x = temp_r31->unk00 + 60.0f;
|
|
sp2C.z = 100.0f;
|
|
sp2C.y = temp_r31->unk04 - 30.0f;
|
|
Hu3D3Dto2D(&sp2C, 1 << arg0->unk38, &sp20);
|
|
var_f28 = 290.0f * (arg0->unk34 % 2) + sp20.x / 2;
|
|
var_f27 = 245.0f * (arg0->unk34 / 2) + sp20.y / 2;
|
|
HuSprGrpPosSet(arg0->unk0C, var_f28, var_f27);
|
|
}
|
|
temp_r27->unk08 += 10.0f;
|
|
if (i < 14) {
|
|
var_r25 += 17;
|
|
} else if (i < 28) {
|
|
var_r25 -= 17;
|
|
}
|
|
Hu3DModelTPLvlSet(arg0->unk04, 255 - var_r25);
|
|
HuPrcVSleep();
|
|
}
|
|
temp_r31->unk00 = temp_r28->unk00;
|
|
temp_r31->unk04 = temp_r28->unk04;
|
|
temp_r31->unk08 = temp_r28->unk08;
|
|
sp14.x = temp_r31->unk00 + 60.0f;
|
|
sp14.z = 100.0f;
|
|
sp14.y = temp_r31->unk04 - 30.0f;
|
|
Hu3D3Dto2D(&sp14, 1 << arg0->unk38, &sp8);
|
|
var_f26 = 290.0f * (arg0->unk34 % 2) + sp8.x / 2;
|
|
var_f25 = 245.0f * (arg0->unk34 / 2) + sp8.y / 2;
|
|
HuSprGrpPosSet(arg0->unk0C, var_f26, var_f25);
|
|
temp_r29->unk00 = 5000.0f;
|
|
temp_r27->unk00 = 5000.0f;
|
|
}
|
|
|
|
void fn_1_6428(UnkBss474Struct* arg0, s32 arg1) {
|
|
float var_f31;
|
|
UnkBss474DoublyInnerStruct6C* temp_r31;
|
|
UnkBss474DoublyInnerStruct6C* temp_r29;
|
|
UnkBss474InnerStructE4* temp_r30;
|
|
|
|
temp_r31 = &arg0->unk6C[arg1]->unk1C;
|
|
temp_r29 = &arg0->unk94[arg1]->unk1C;
|
|
temp_r30 = &arg0->unkE4[arg1];
|
|
for (var_f31 = 0.0f; var_f31 < 180.0f; var_f31 += 10.0f) {
|
|
temp_r31->unk18 = 0.8f * temp_r30->unk18 + temp_r30->unk18 * (1.0 - sind(var_f31)) * 0.2f;
|
|
temp_r31->unk1C = 0.8f * temp_r30->unk1C + temp_r30->unk1C * (1.0 - sind(var_f31)) * 0.2f;
|
|
temp_r31->unk20 = 0.8f * temp_r30->unk20 + temp_r30->unk20 * (1.0 - sind(var_f31)) * 0.2f;
|
|
temp_r29->unk18 = temp_r31->unk18;
|
|
temp_r29->unk1C = temp_r31->unk1C;
|
|
temp_r29->unk20 = 0.8f * temp_r31->unk20;
|
|
HuPrcVSleep();
|
|
}
|
|
for (var_f31 = 180.0f; var_f31 < 360.0f; var_f31 += 20.0f) {
|
|
temp_r31->unk18 = 0.9f * temp_r30->unk18 + temp_r30->unk18 * (1.0 - sind(var_f31)) * 0.1f;
|
|
temp_r31->unk1C = 0.9f * temp_r30->unk1C + temp_r30->unk1C * (1.0 - sind(var_f31)) * 0.1f;
|
|
temp_r31->unk20 = 0.9f * temp_r30->unk20 + temp_r30->unk20 * (1.0 - sind(var_f31)) * 0.1f;
|
|
temp_r29->unk18 = temp_r31->unk18;
|
|
temp_r29->unk1C = temp_r31->unk1C;
|
|
temp_r29->unk20 = 0.8f * temp_r31->unk20;
|
|
HuPrcVSleep();
|
|
}
|
|
temp_r31->unk18 = temp_r30->unk18;
|
|
temp_r31->unk1C = temp_r30->unk1C;
|
|
temp_r31->unk20 = temp_r30->unk20;
|
|
temp_r29->unk18 = temp_r31->unk18;
|
|
temp_r29->unk1C = temp_r31->unk1C;
|
|
temp_r29->unk20 = 0.8f * temp_r31->unk20;
|
|
}
|
|
|
|
void fn_1_6820(UnkBss474Struct* arg0, s32 arg1, s32 arg2) {
|
|
UnkBss474DoublyInnerStruct6C* temp_r30;
|
|
UnkBss474DoublyInnerStruct6C* temp_r31;
|
|
float temp_f30;
|
|
float temp_f29;
|
|
float temp_f28;
|
|
float var_f31;
|
|
s32 i;
|
|
|
|
temp_r31 = &arg0->unk6C[arg1]->unk1C;
|
|
temp_r30 = &arg0->unk94[arg1]->unk1C;
|
|
temp_f30 = temp_r31->unk18;
|
|
temp_f29 = temp_r31->unk1C;
|
|
temp_f28 = temp_r31->unk20;
|
|
temp_r31->unk18 = temp_r31->unk1C = temp_r31->unk20 = 0.0f;
|
|
temp_r30->unk18 = temp_r30->unk1C = temp_r30->unk20 = 0.0f;
|
|
for (i = 0, var_f31 = 0.0f; i < 30; i++, var_f31 += 0.033333335f) {
|
|
temp_r31->unk18 += temp_f30 / 30.0f;
|
|
temp_r31->unk1C += temp_f29 / 30.0f;
|
|
temp_r31->unk20 += temp_f28 / 30.0f;
|
|
temp_r30->unk18 = temp_r31->unk18;
|
|
temp_r30->unk1C = temp_r31->unk1C;
|
|
temp_r30->unk20 = 0.8f * temp_r31->unk20;
|
|
if (arg2 == 0) {
|
|
HuSprGrpScaleSet(arg0->unk0C, var_f31, var_f31);
|
|
}
|
|
HuPrcVSleep();
|
|
}
|
|
temp_r31->unk18 = temp_f30;
|
|
temp_r31->unk1C = temp_f29;
|
|
temp_r31->unk20 = temp_f28;
|
|
temp_r30->unk18 = temp_r31->unk18;
|
|
temp_r30->unk1C = temp_r31->unk1C;
|
|
temp_r30->unk20 = 0.8f * temp_r31->unk20;
|
|
if (arg2 == 0) {
|
|
HuSprAttrReset(arg0->unk0C, 0, HUSPR_ATTR_NOANIM);
|
|
HuSprGrpScaleSet(arg0->unk0C, 1.0f, 1.0f);
|
|
return;
|
|
}
|
|
HuSprAttrReset(arg0->unk0C, 0, HUSPR_ATTR_REVERSE);
|
|
}
|
|
|
|
void fn_1_6A3C(void) {
|
|
float var_f31;
|
|
float var_f30;
|
|
float temp_f29;
|
|
UnkFn64A3Struct* temp_r30;
|
|
UnkBss474DoublyInnerStruct6C* temp_r31;
|
|
UnkBss474DoublyInnerStruct6C* temp_r28;
|
|
s32 var_r27;
|
|
s32 i;
|
|
|
|
temp_r30 = HuPrcCurrentGet()->user_data;
|
|
temp_r31 = &temp_r30->unk00->unk6C[temp_r30->unk04]->unk1C;
|
|
temp_r28 = &temp_r30->unk00->unk94[temp_r30->unk04]->unk1C;
|
|
HuAudFXPlay(0x56C);
|
|
if (temp_r30->unk08 != 0) {
|
|
var_f30 = temp_r31->unk14 + 90.0f;
|
|
} else {
|
|
var_f30 = temp_r31->unk14 - 90.0f;
|
|
}
|
|
if (var_f30 >= 360.0f) {
|
|
var_f30 -= 360.0f;
|
|
}
|
|
if (var_f30 < 0.0f) {
|
|
var_f30 += 360.0f;
|
|
}
|
|
temp_f29 = temp_r31->unk14;
|
|
var_f31 = 0.0f;
|
|
for (i = 0, var_r27 = 15; i < var_r27; i++) {
|
|
if (temp_r30->unk08 != 0) {
|
|
temp_r31->unk14 = temp_f29 + 100.0 * sind(var_f31);
|
|
} else {
|
|
temp_r31->unk14 = temp_f29 - 100.0 * sind(var_f31);
|
|
}
|
|
temp_r28->unk14 = temp_r31->unk14;
|
|
var_f31 += 6.0f;
|
|
HuPrcVSleep();
|
|
}
|
|
var_f31 = 90.0f;
|
|
for (i = 0, var_r27 = 3; i < var_r27; i++) {
|
|
var_f31 -= 8.333333f;
|
|
if (temp_r30->unk08 != 0) {
|
|
temp_r31->unk14 = temp_f29 + 100.0 * sind(var_f31);
|
|
} else {
|
|
temp_r31->unk14 = temp_f29 - 100.0 * sind(var_f31);
|
|
}
|
|
temp_r28->unk14 = temp_r31->unk14;
|
|
HuPrcVSleep();
|
|
}
|
|
temp_r28->unk14 = var_f30;
|
|
temp_r31->unk14 = var_f30;
|
|
*temp_r30->unk0C = 0;
|
|
HuPrcKill(HuPrcCurrentGet());
|
|
while (TRUE) {
|
|
HuPrcVSleep();
|
|
}
|
|
}
|
|
|
|
void fn_1_6CF4(void) {
|
|
float temp_f30;
|
|
float var_f31;
|
|
UnkBss474DoublyInnerStruct6C* temp_r31;
|
|
|
|
temp_r31 = HuPrcCurrentGet()->user_data;
|
|
HuPrcSleep(frandmod(30));
|
|
temp_f30 = temp_r31->unk00 / 100.0f;
|
|
var_f31 = -7.0f;
|
|
while (TRUE) {
|
|
temp_r31->unk04 -= var_f31;
|
|
if (temp_r31->unk04 < -500.0f) {
|
|
break;
|
|
}
|
|
var_f31 += 0.5f;
|
|
if (var_f31 > 20.0f) {
|
|
var_f31 = 20.0f;
|
|
}
|
|
temp_r31->unk00 += temp_f30;
|
|
temp_r31->unk08 += 10.0f;
|
|
HuPrcVSleep();
|
|
}
|
|
HuPrcKill(HuPrcCurrentGet());
|
|
while (TRUE) {
|
|
HuPrcVSleep();
|
|
}
|
|
}
|
|
|
|
void fn_1_6DD8(UnkBss474Struct* arg0, s32 arg1) {
|
|
UnkBss474DoublyInnerStruct6C* temp_r31;
|
|
|
|
temp_r31 = &arg0->unk6C[arg1]->unk1C;
|
|
if (temp_r31->unk00 > 220.0f) {
|
|
temp_r31->unk00 = 220.0f;
|
|
}
|
|
if (temp_r31->unk00 < -220.0f) {
|
|
temp_r31->unk00 = -220.0f;
|
|
}
|
|
if (temp_r31->unk04 > 140.0f) {
|
|
temp_r31->unk04 = 140.0f;
|
|
}
|
|
if (temp_r31->unk04 < -140.0f) {
|
|
temp_r31->unk04 = -140.0f;
|
|
}
|
|
}
|
|
|
|
void fn_1_6E9C(s32 arg0, s32 arg1) {
|
|
switch (GWPlayerCfg[arg0].diff) {
|
|
case 0:
|
|
arg1 *= 8;
|
|
break;
|
|
case 1:
|
|
arg1 *= 4;
|
|
break;
|
|
case 2:
|
|
arg1 *= 3;
|
|
break;
|
|
default:
|
|
arg1 *= 2;
|
|
break;
|
|
}
|
|
if (arg1 <= 1) {
|
|
HuPrcVSleep();
|
|
} else {
|
|
HuPrcSleep(arg1 + frandmod(arg1 / 2));
|
|
}
|
|
}
|
|
|
|
void fn_1_6F48(UnkBss474Struct* arg0, s32 arg1, s32 arg2) {
|
|
Vec sp24;
|
|
Vec sp18;
|
|
Vec spC;
|
|
float temp_f29;
|
|
UnkBss474DoublyInnerStruct6C* temp_r30;
|
|
UnkBss474InnerStructE4* temp_r25;
|
|
s32 var_r27;
|
|
s32 var_r23;
|
|
|
|
arg1 = lbl_1_bss_E6C[arg2];
|
|
temp_r30 = &arg0->unk6C[arg1]->unk1C;
|
|
arg0->unk254 = arg0->unk255 = 0;
|
|
arg0->unk257 = arg0->unk256 = 0;
|
|
arg0->unk258 = 0;
|
|
switch (GWPlayerCfg[arg0->unk34].diff) {
|
|
case 0:
|
|
var_r27 = arg2 * 2 + 60;
|
|
break;
|
|
case 1:
|
|
var_r27 = arg2 + 80;
|
|
break;
|
|
case 2:
|
|
var_r27 = arg2 + 85;
|
|
break;
|
|
default:
|
|
var_r27 = arg2 + 90;
|
|
break;
|
|
}
|
|
if (var_r27 > 100) {
|
|
var_r27 = 100;
|
|
}
|
|
if (arg0->unk264 == -1) {
|
|
if (frandmod(100) < var_r27 || lbl_1_bss_E38 == arg2 + 1) {
|
|
arg0->unk264 = arg1;
|
|
} else {
|
|
var_r23 = frandmod(lbl_1_bss_E38 - arg2);
|
|
arg0->unk264 = lbl_1_bss_E6C[arg2 + var_r23];
|
|
}
|
|
arg0->unk268 = -1;
|
|
if ((GWPlayerCfg[arg0->unk34].diff == 2 || GWPlayerCfg[arg0->unk34].diff == 3) && (frandmod(100) < var_r27 || lbl_1_bss_E38 == arg2 + 1)) {
|
|
arg0->unk268 = 10;
|
|
}
|
|
fn_1_6E9C(arg0->unk34, 10);
|
|
}
|
|
temp_r25 = &arg0->unkE4[arg0->unk264];
|
|
HuSetVecF(&sp24, temp_r25->unk00, temp_r25->unk04, 0.0);
|
|
HuSetVecF(&sp18, temp_r30->unk00, temp_r30->unk04, 0.0);
|
|
HuSubVecF(&spC, &sp24, &sp18);
|
|
if (sqrtf(spC.x * spC.x + spC.y * spC.y) >= 40.0f) {
|
|
temp_f29 = atan2d(spC.x, spC.y);
|
|
arg0->unk254 = 50.0 * sind(temp_f29);
|
|
arg0->unk255 = 50.0 * cosd(temp_f29);
|
|
if (arg0->unk268 >= 0) {
|
|
if (arg0->unk268-- == 0 && temp_r30->unk14 != 0.0f) {
|
|
arg0->unk268 = 10;
|
|
if (temp_r30->unk14 - 90.0f == 0.0f) {
|
|
arg0->unk256 = 50;
|
|
} else {
|
|
arg0->unk257 = 50;
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
fn_1_6E9C(arg0->unk34, 1);
|
|
if (frandmod(100) < var_r27 || lbl_1_bss_E38 == arg2 + 1) {
|
|
if (temp_r30->unk14 != 0.0f) {
|
|
if (temp_r30->unk14 - 90.0f == 0.0f) {
|
|
arg0->unk256 = 50;
|
|
} else {
|
|
arg0->unk257 = 50;
|
|
}
|
|
} else {
|
|
arg0->unk258 = 0x100;
|
|
arg0->unk264 = -1;
|
|
}
|
|
} else {
|
|
switch (frandmod(3)) {
|
|
case 0:
|
|
arg0->unk256 = 50;
|
|
break;
|
|
case 1:
|
|
arg0->unk256 = 50;
|
|
break;
|
|
default:
|
|
arg0->unk258 = 0x100;
|
|
arg0->unk264 = -1;
|
|
break;
|
|
}
|
|
if (frandmod(100) < var_r27) {
|
|
arg0->unk264 = -1;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
void fn_1_75C8(void) {
|
|
s16 var_r30;
|
|
s32 var_r31;
|
|
|
|
for (var_r30 = 127; var_r30 > 0; var_r30 -= 4) {
|
|
for (var_r31 = 0; var_r31 < lbl_1_bss_E28; var_r31++) {
|
|
HuAudFXVolSet(lbl_1_bss_E2C[var_r31], var_r30);
|
|
}
|
|
HuPrcVSleep();
|
|
}
|
|
for (var_r31 = 0; var_r31 < lbl_1_bss_E28; var_r31++) {
|
|
HuAudFXVolSet(lbl_1_bss_E2C[var_r31], 0);
|
|
}
|
|
HuPrcKill(HuPrcCurrentGet());
|
|
while (TRUE) {
|
|
HuPrcVSleep();
|
|
}
|
|
}
|
|
|
|
void fn_1_7680(void) {
|
|
s16 var_r30;
|
|
s32 var_r31;
|
|
|
|
for (var_r30 = 0; var_r30 < 127; var_r30 += 4) {
|
|
for (var_r31 = 0; var_r31 < lbl_1_bss_E28; var_r31++) {
|
|
HuAudFXVolSet(lbl_1_bss_E2C[var_r31], var_r30);
|
|
}
|
|
HuPrcVSleep();
|
|
}
|
|
for (var_r31 = 0; var_r31 < lbl_1_bss_E28; var_r31++) {
|
|
HuAudFXVolSet(lbl_1_bss_E2C[var_r31], 0x7F);
|
|
}
|
|
HuPrcKill(HuPrcCurrentGet());
|
|
while (TRUE) {
|
|
HuPrcVSleep();
|
|
}
|
|
}
|
|
|
|
|
|
static inline void m411InlineFunc(UnkBss474Struct* temp_r31, UnkBss474DoublyInnerStruct6C* temp_r30) {
|
|
Vec sp74;
|
|
Vec sp80;
|
|
|
|
float var_f22;
|
|
float var_f23;
|
|
|
|
sp80.x = 60.0f + temp_r30->unk00;
|
|
sp80.z = 100.0f;
|
|
sp80.y = temp_r30->unk04 - 30.0f;
|
|
Hu3D3Dto2D(&sp80, 1 << temp_r31->unk38, &sp74);
|
|
var_f23 = 290.0f * (temp_r31->unk34 % 2) + sp74.x / 2.0f;
|
|
var_f22 = 245.0f * (temp_r31->unk34 / 2) + sp74.y / 2.0f;
|
|
HuSprGrpPosSet(temp_r31->unk0C, var_f23, var_f22);
|
|
}
|
|
|
|
#define SOME_MACRO(x) ((x) >= 0 ? (x) : (-(x) > 20))
|
|
|
|
void fn_1_7738(void) {
|
|
f32 temp_f26;
|
|
f32 temp_f27;
|
|
Process* var_r24;
|
|
UnkBss474Struct* temp_r31;
|
|
UnkBss474DoublyInnerStruct6C* temp_r30;
|
|
s32 var_r29;
|
|
UnkBss474DoublyInnerStruct6C* temp_r28;
|
|
s32 temp_r26;
|
|
UnkBss474InnerStructE4* temp_r25;
|
|
s32 var_r23;
|
|
Vec spCC;
|
|
Vec spC0;
|
|
Vec spB4;
|
|
UnkFn64A3Struct spA4;
|
|
s32 sp70;
|
|
|
|
temp_r31 = HuPrcCurrentGet()->user_data;
|
|
temp_r31->unk40 = 0;
|
|
for (var_r29 = 0; var_r29 < lbl_1_bss_E38; var_r29++) {
|
|
temp_r30 = &temp_r31->unk94[var_r29]->unk1C;
|
|
temp_r30->unk00 = 5000.0f;
|
|
temp_r30 = &temp_r31->unkBC[var_r29]->unk1C;
|
|
temp_r30->unk00 = 5000.0f;
|
|
}
|
|
while (lbl_1_bss_E98 == 0) {
|
|
HuPrcVSleep();
|
|
}
|
|
Hu3DModelAttrReset(temp_r31->unk08, 1);
|
|
for (var_r29 = 0; var_r29 < 30; var_r29++) {
|
|
if (lbl_1_bss_E40 == 0) {
|
|
lbl_1_bss_C4[temp_r31->unk38].z += 10.0f;
|
|
} else {
|
|
CZoomM[temp_r31->unk38] += 10.0f;
|
|
}
|
|
HuPrcVSleep();
|
|
}
|
|
Hu3DModelAttrReset(temp_r31->unk00, 1);
|
|
Hu3DModelAttrSet(temp_r31->unk02, 1);
|
|
if (temp_r31->unk34 == 0) {
|
|
HuAudFXPlay(0x56F);
|
|
}
|
|
for (var_r29 = 0; var_r29 < lbl_1_bss_E38; var_r29++) {
|
|
temp_r30 = &temp_r31->unk6C[var_r29]->unk1C;
|
|
temp_f26 = atan2d(temp_r30->unk00, temp_r30->unk04);
|
|
temp_f27 = sqrtf(temp_r30->unk00 * temp_r30->unk00 + temp_r30->unk04 * temp_r30->unk04);
|
|
temp_f27 *= 1.05f;
|
|
temp_r30->unk00 = temp_f27 * sind(temp_f26);
|
|
temp_r30->unk04 = temp_f27 * cosd(temp_f26);
|
|
}
|
|
omVibrate(temp_r31->unk34, 12, 6, 6);
|
|
HuPrcSleep(30);
|
|
CharModelMotionShiftSet(lbl_1_data_240[GWPlayerCfg[temp_r31->unk34].character], temp_r31->unk0E[5], 0.0f, 5.0f, 0);
|
|
HuPrcChildCreate(fn_1_75C8, 0x2000, 0x1000, 0, HuPrcCurrentGet());
|
|
if (temp_r31->unk34 == 0) {
|
|
HuAudFXPlay(0x56B);
|
|
}
|
|
for (var_r29 = 0; var_r29 < lbl_1_bss_E38; var_r29++) {
|
|
var_r24 = HuPrcChildCreate(fn_1_6CF4, 0x2000, 0x1000, 0, HuPrcCurrentGet());
|
|
temp_r30 = &temp_r31->unk6C[var_r29]->unk1C;
|
|
var_r24->user_data = temp_r30;
|
|
}
|
|
HuPrcSleep(40);
|
|
HuPrcSleep(40);
|
|
for (var_r29 = 0; var_r29 < 30; var_r29++) {
|
|
if (lbl_1_bss_E40 == 0) {
|
|
lbl_1_bss_C4[temp_r31->unk38].z -= 10.0f;
|
|
} else {
|
|
CZoomM[temp_r31->unk38] -= 10.0f;
|
|
}
|
|
HuPrcVSleep();
|
|
}
|
|
Hu3DModelAttrSet(temp_r31->unk08, 1);
|
|
HuPrcSleep(60);
|
|
lbl_1_bss_E98 = 2;
|
|
for (var_r29 = 0; var_r29 < lbl_1_bss_E38; var_r29++) {
|
|
sp70 = 0;
|
|
temp_r31->unk44 = 0;
|
|
temp_r31->unk264 = -1;
|
|
temp_r26 = lbl_1_bss_E6C[var_r29];
|
|
temp_r30 = &temp_r31->unk6C[temp_r26]->unk1C;
|
|
temp_r28 = &temp_r31->unk94[temp_r26]->unk1C;
|
|
if (var_r29 != 0) {
|
|
temp_r25 = &temp_r31->unkE4[lbl_1_bss_E6C[var_r29 - 1]];
|
|
temp_r30->unk00 = temp_r25->unk00;
|
|
temp_r30->unk04 = temp_r25->unk04;
|
|
temp_r28->unk00 = 20.0f + temp_r30->unk00;
|
|
temp_r28->unk04 = -20.0f + temp_r30->unk04;
|
|
} else {
|
|
temp_r30->unk00 = temp_r30->unk04 = 0.0f;
|
|
temp_r28->unk00 = 20.0f + temp_r30->unk00;
|
|
temp_r28->unk04 = -20.0f + temp_r30->unk04;
|
|
m411InlineFunc(temp_r31, temp_r30);
|
|
HuSprAttrReset(temp_r31->unk0C, 0, 4);
|
|
}
|
|
temp_r30->unk08 = 50.0f;
|
|
temp_r28->unk08 = temp_r30->unk08 - 5.0f;
|
|
temp_r30->unk14 = temp_r28->unk14 = 90.0f * lbl_1_bss_E44[var_r29];
|
|
fn_1_6820(temp_r31, temp_r26, var_r29);
|
|
if (var_r29 == 0) {
|
|
while (lbl_1_bss_E98 != 3) {
|
|
HuPrcVSleep();
|
|
}
|
|
}
|
|
while (TRUE) {
|
|
if (GWPlayerCfg[temp_r31->unk34].iscom == 1) {
|
|
fn_1_6F48(temp_r31, temp_r26, var_r29);
|
|
}
|
|
if (sp70 == 0) {
|
|
var_r23 = -1;
|
|
if (fn_1_5E10(temp_r31->unk34, 0) > 20) {
|
|
var_r23 = 1;
|
|
}
|
|
if (fn_1_5E10(temp_r31->unk34, 1) > 20) {
|
|
var_r23 = 0;
|
|
}
|
|
if (var_r23 != -1) {
|
|
sp70 = 1;
|
|
var_r24 = HuPrcChildCreate(fn_1_6A3C, 0x2000, 0x2000, 0, HuPrcCurrentGet());
|
|
var_r24->user_data = &spA4;
|
|
spA4.unk00 = temp_r31;
|
|
spA4.unk04 = temp_r26;
|
|
spA4.unk08 = var_r23;
|
|
spA4.unk0C = &sp70;
|
|
}
|
|
}
|
|
if ((fn_1_5ED0(temp_r31->unk34) & 0x100) && sp70 == 0) {
|
|
if (0.0f == temp_r30->unk14) {
|
|
temp_r25 = &temp_r31->unkE4[temp_r26];
|
|
HuSetVecF(&spCC, temp_r25->unk00, temp_r25->unk04, 0.0);
|
|
HuSetVecF(&spC0, temp_r30->unk00, temp_r30->unk04, 0.0);
|
|
HuSubVecF(&spB4, &spCC, &spC0);
|
|
if (sqrtf(spB4.x * spB4.x + spB4.y * spB4.y) < 40.0f) {
|
|
HuAudFXPlay(0x56D);
|
|
temp_r31->unk44 = 1;
|
|
temp_r31->unk64 = temp_r30->unk00;
|
|
temp_r31->unk68 = temp_r30->unk04;
|
|
fn_1_5F3C(temp_r31, temp_r26);
|
|
break;
|
|
}
|
|
}
|
|
fn_1_6428(temp_r31, temp_r26);
|
|
}
|
|
temp_r31->unk60 = -1.0f;
|
|
if (SOME_MACRO(fn_1_5D58(temp_r31->unk34, 0)) != 0
|
|
|| SOME_MACRO(fn_1_5D58(temp_r31->unk34, 1)) != 0)
|
|
{
|
|
temp_r31->unk60 = atan2d(fn_1_5D58(temp_r31->unk34, 0), fn_1_5D58(temp_r31->unk34, 1));
|
|
}
|
|
if (-1.0f != temp_r31->unk60) {
|
|
temp_r30->unk00 += 5 * sind(temp_r31->unk60);
|
|
temp_r30->unk04 += 5 * cosd(temp_r31->unk60);
|
|
fn_1_6DD8(temp_r31, temp_r26);
|
|
temp_r28->unk00 = 20.0f + temp_r30->unk00;
|
|
temp_r28->unk04 = -20.0f + temp_r30->unk04;
|
|
m411InlineFunc(temp_r31, temp_r30);
|
|
}
|
|
HuPrcVSleep();
|
|
}
|
|
}
|
|
temp_r31->unk40 = 4;
|
|
while (TRUE) {
|
|
HuPrcVSleep();
|
|
}
|
|
}
|
|
|
|
void fn_1_8A80(float arg0, float arg1) {
|
|
Hu3DCameraViewportSet(2, 10.0f, 10.0f, arg0 - 11.0f, arg1 - 11.0f, 0.0f, 1.0f);
|
|
Hu3DCameraScissorSet(2, 10, 10, arg0 - 11.0f, arg1 - 11.0f);
|
|
Hu3DCameraViewportSet(4, arg0 + 2.0f, 10.0f, 630.0f - arg0, arg1 - 11.0f, 0.0f, 1.0f);
|
|
Hu3DCameraScissorSet(4, arg0 + 2.0f, 10, 630.0f - arg0, arg1 - 11.0f);
|
|
Hu3DCameraViewportSet(8, 10.0f, arg1 + 2.0f, arg0 - 11.0f, 470.0f - arg1, 0.0f, 1.0f);
|
|
Hu3DCameraScissorSet(8, 10, arg1 + 2.0f, arg0 - 11.0f, 470.0f - arg1);
|
|
Hu3DCameraViewportSet(16, arg0 + 2.0f, arg1 + 2.0f, 630.0f - arg0, 470.0f - arg1, 0.0f, 1.0f);
|
|
Hu3DCameraScissorSet(16, arg0 + 2.0f, arg1 + 2.0f, 630.0f - arg0, 470.0f - arg1);
|
|
}
|
|
|
|
void fn_1_8DBC(void) {
|
|
float var_f31;
|
|
float var_f30;
|
|
s32 i;
|
|
|
|
Hu3DCameraViewportSet(2, 10.0f, 10.0f, 629.0f, 469.0f, 0.0f, 1.0f);
|
|
Hu3DCameraScissorSet(2, 10, 10, 629, 469);
|
|
Hu3DCameraViewportSet(4, 642.0f, 10.0f, -10.0f, 469.0f, 0.0f, 1.0f);
|
|
Hu3DCameraScissorSet(4, 642, 10, -10, 469);
|
|
Hu3DCameraViewportSet(8, 10.0f, 482.0f, 629.0f, -10.0f, 0.0f, 1.0f);
|
|
Hu3DCameraScissorSet(8, 10, 482, 629, -10);
|
|
Hu3DCameraViewportSet(16, 642.0f, 482.0f, -10.0f, -10.0f, 0.0f, 1.0f);
|
|
Hu3DCameraScissorSet(16, 642, 482, -10, -10);
|
|
HuPrcSleep(60);
|
|
for (i = 0, var_f31 = 645.0f, var_f30 = 485.0f; i < 30; i++) {
|
|
var_f31 -= 10.833333f;
|
|
var_f30 -= 8.166667f;
|
|
fn_1_8A80(var_f31, var_f30);
|
|
HuPrcVSleep();
|
|
}
|
|
Hu3DCameraViewportSet(2, 10.0f, 10.0f, 309.0f, 229.0f, 0.0f, 1.0f);
|
|
Hu3DCameraScissorSet(2, 10, 10, 309, 229);
|
|
Hu3DCameraViewportSet(4, 322.0f, 10.0f, 310.0f, 229.0f, 0.0f, 1.0f);
|
|
Hu3DCameraScissorSet(4, 322, 10, 310, 229);
|
|
Hu3DCameraViewportSet(8, 10.0f, 242.0f, 309.0f, 230.0f, 0.0f, 1.0f);
|
|
Hu3DCameraScissorSet(8, 10, 242, 309, 230);
|
|
Hu3DCameraViewportSet(16, 322.0f, 242.0f, 310.0f, 230.0f, 0.0f, 1.0f);
|
|
Hu3DCameraScissorSet(16, 322, 242, 310, 230);
|
|
}
|
|
|
|
void fn_1_9490(void) {
|
|
float var_f31;
|
|
float var_f30;
|
|
float var_f29;
|
|
float var_f28;
|
|
float temp_f27;
|
|
float temp_f26;
|
|
s32 temp_r30;
|
|
s32 i;
|
|
|
|
temp_r30 = (s32) HuPrcCurrentGet()->user_data;
|
|
switch (temp_r30) {
|
|
case 0:
|
|
var_f31 = 645.0f;
|
|
var_f30 = 485.0f;
|
|
break;
|
|
case 1:
|
|
var_f31 = -5.0f;
|
|
var_f30 = 485.0f;
|
|
break;
|
|
case 2:
|
|
var_f31 = 645.0f;
|
|
var_f30 = -5.0f;
|
|
break;
|
|
default:
|
|
var_f31 = -5.0f;
|
|
var_f30 = -5.0f;
|
|
break;
|
|
}
|
|
var_f29 = 320.0f;
|
|
var_f28 = 240.0f;
|
|
temp_f27 = (var_f31 - var_f29) / 30.0f;
|
|
temp_f26 = (var_f30 - var_f28) / 30.0f;
|
|
for (i = 0; i < 30; i++) {
|
|
var_f29 += temp_f27;
|
|
var_f28 += temp_f26;
|
|
fn_1_8A80(var_f29, var_f28);
|
|
HuPrcVSleep();
|
|
}
|
|
fn_1_8A80(var_f31, var_f30);
|
|
HuPrcChildCreate(fn_1_7680, 0x2000, 0x1000, 0, HuPrcCurrentGet());
|
|
HuPrcCurrentGet()->user_data = NULL;
|
|
while (TRUE) {
|
|
HuPrcVSleep();
|
|
}
|
|
}
|
|
|
|
void fn_1_9BC0(s32 arg0) {
|
|
float var_f30;
|
|
float var_f31;
|
|
s32 var_r29;
|
|
UnkBss474Struct* temp_r31;
|
|
UnkBss474Struct* var_r26;
|
|
Process* var_r28;
|
|
UnkBss138InnerStruct00* var_r27;
|
|
s32 i;
|
|
|
|
temp_r31 = &lbl_1_bss_474[arg0];
|
|
for (i = 0, var_f30 = 1.0f; i < 15; i++) {
|
|
var_f30 -= 0.06666667f;
|
|
for (var_r29 = 0; var_r29 < 4; var_r29++) {
|
|
var_r26 = &lbl_1_bss_474[var_r29];
|
|
HuSprGrpScaleSet(var_r26->unk0C, var_f30, var_f30);
|
|
}
|
|
HuPrcVSleep();
|
|
}
|
|
for (i = 0; i < 4; i++) {
|
|
HuSprAttrSet(lbl_1_bss_474[i].unk0C, 0, HUSPR_ATTR_DISPOFF);
|
|
}
|
|
Hu3DModelAttrReset(temp_r31->unk02, 1);
|
|
Hu3DModelAttrSet(temp_r31->unk00, 1);
|
|
var_r28 = HuPrcChildCreate(fn_1_9490, 0x2000, 0x1000, 0, HuPrcCurrentGet());
|
|
var_r28->user_data = (void*) arg0;
|
|
while (var_r28->user_data) {
|
|
HuPrcVSleep();
|
|
}
|
|
temp_r31->unk48 = 500.0f;
|
|
temp_r31->unk4C = -280.0f;
|
|
temp_r31->unk50 = 200.0f;
|
|
temp_r31->unk58 = -90.0f;
|
|
Hu3DModelAttrReset(temp_r31->unk08, 1);
|
|
Hu3DModelRotSet(temp_r31->unk08, temp_r31->unk54, temp_r31->unk58, temp_r31->unk5C);
|
|
CharModelMotionSet(lbl_1_data_240[GWPlayerCfg[temp_r31->unk34].character], temp_r31->unk0E[2]);
|
|
Hu3DModelAttrSet(temp_r31->unk08, 0x40000001);
|
|
Hu3DModelCameraSet(temp_r31->unk08, 1 << temp_r31->unk38);
|
|
i = 0;
|
|
while (TRUE) {
|
|
temp_r31->unk48 -= 5.0f;
|
|
if (temp_r31->unk48 <= 0.0f) {
|
|
break;
|
|
}
|
|
if (i == 70 && lbl_1_bss_E40 == 2) {
|
|
var_r27 = &lbl_1_bss_138.unkE4[0];
|
|
Hu3DMotionSet(var_r27->unk00, var_r27->unk02[4]);
|
|
HuAudFXPlay(0x41);
|
|
}
|
|
Hu3DModelPosSet(temp_r31->unk08, temp_r31->unk48, temp_r31->unk4C, temp_r31->unk50);
|
|
HuPrcVSleep();
|
|
i++;
|
|
}
|
|
Hu3DModelPosSet(temp_r31->unk08, 0.0f, temp_r31->unk4C, temp_r31->unk50);
|
|
CharModelMotionShiftSet(lbl_1_data_240[GWPlayerCfg[temp_r31->unk34].character], temp_r31->unk0E[0], 0.0f, 5.0f, 0x40000001);
|
|
HuPrcSleep(10);
|
|
for (i = 0; i < 9; i++) {
|
|
temp_r31->unk58 -= 10.0f;
|
|
Hu3DModelRotSet(temp_r31->unk08, temp_r31->unk54, temp_r31->unk58, temp_r31->unk5C);
|
|
HuPrcVSleep();
|
|
}
|
|
HuPrcSleep(20);
|
|
CharModelMotionShiftSet(lbl_1_data_240[GWPlayerCfg[temp_r31->unk34].character], temp_r31->unk0E[3], 0.0f, 5.0f, 0);
|
|
if (lbl_1_bss_E40 == 1) {
|
|
var_f31 = -20.0f;
|
|
} else {
|
|
var_f31 = -20.0f;
|
|
}
|
|
for (; var_f31 < 0.0f; var_f31 += 1.765f) {
|
|
temp_r31->unk4C -= var_f31;
|
|
Hu3DModelPosSet(temp_r31->unk08, temp_r31->unk48, temp_r31->unk4C, temp_r31->unk50);
|
|
HuPrcVSleep();
|
|
}
|
|
Hu3DModelShadowSet(temp_r31->unk08);
|
|
}
|
|
|
|
void fn_1_A004(void) {
|
|
s32 i;
|
|
|
|
for (i = 0; i < 67; i++) {
|
|
lbl_1_bss_C4->y += -10.0f;
|
|
lbl_1_bss_C4->z += -26.656717f;
|
|
HuPrcVSleep();
|
|
}
|
|
HuPrcKill(HuPrcCurrentGet());
|
|
while (TRUE) {
|
|
HuPrcVSleep();
|
|
}
|
|
}
|
|
|
|
void fn_1_A07C(void) {
|
|
UnkBss474Struct* temp_r31;
|
|
|
|
temp_r31 = &lbl_1_bss_474[lbl_1_bss_E94];
|
|
while (TRUE) {
|
|
temp_r31->unk58 += 10.0f;
|
|
if (temp_r31->unk58 > 360.0f) {
|
|
temp_r31->unk58 -= 360.0f;
|
|
}
|
|
Hu3DModelRotSet(temp_r31->unk08, temp_r31->unk54, temp_r31->unk58, temp_r31->unk5C);
|
|
Hu3DModelRotSet(temp_r31->unk20, temp_r31->unk54, temp_r31->unk58, temp_r31->unk5C);
|
|
HuPrcVSleep();
|
|
}
|
|
}
|
|
|
|
void fn_1_A120(s32 arg0) {
|
|
float temp_f30;
|
|
float var_f31;
|
|
UnkBss474Struct* temp_r31;
|
|
s32 var_r29;
|
|
s32 i;
|
|
|
|
temp_r31 = &lbl_1_bss_474[arg0];
|
|
temp_r31->unk48 = 0.0f;
|
|
temp_r31->unk4C = 930.0f;
|
|
temp_r31->unk50 = 2790.0f;
|
|
Hu3DModelAttrReset(temp_r31->unk20, 1);
|
|
Hu3DModelCameraSet(temp_r31->unk08, 1);
|
|
HuPrcChildCreate(fn_1_A004, 0x2000, 0x1000, 0, HuPrcCurrentGet());
|
|
temp_f30 = (-730.0f - temp_r31->unk50) / 80.0f;
|
|
var_f31 = 0.0f;
|
|
for (i = 0, var_r29 = 0; i < 80; i++) {
|
|
if (var_r29 == 0) {
|
|
temp_r31->unk4C -= var_f31;
|
|
if (temp_r31->unk4C < 0.0f) {
|
|
var_r29 = 1;
|
|
CharModelMotionShiftSet(lbl_1_data_240[GWPlayerCfg[temp_r31->unk34].character], temp_r31->unk0E[4], 0.0f, 5.0f, 0);
|
|
Hu3DMotionShiftSet(temp_r31->unk20, temp_r31->unk22[4], 0.0f, 5.0f, 0);
|
|
temp_r31->unk4C = 0.0f;
|
|
break;
|
|
}
|
|
}
|
|
var_f31 += 1.2f;
|
|
if (var_f31 > 14.0f) {
|
|
var_f31 = 14.0f;
|
|
}
|
|
if (-530.0f < temp_r31->unk50) {
|
|
temp_r31->unk50 += temp_f30;
|
|
}
|
|
Hu3DModelPosSet(temp_r31->unk08, temp_r31->unk48, temp_r31->unk4C, temp_r31->unk50);
|
|
Hu3DModelPosSet(temp_r31->unk20, temp_r31->unk48, -temp_r31->unk4C, temp_r31->unk50);
|
|
HuPrcVSleep();
|
|
}
|
|
HuPrcSleep(5);
|
|
while (!Hu3DMotionEndCheck(temp_r31->unk08)) {
|
|
HuPrcVSleep();
|
|
}
|
|
CharModelMotionShiftSet(lbl_1_data_240[GWPlayerCfg[temp_r31->unk34].character], temp_r31->unk0E[0], 0.0f, 5.0f, 0x40000001);
|
|
HuPrcSleep(30);
|
|
HuAudSStreamPlay(1);
|
|
HuAudPlayerVoicePlay(temp_r31->unk34, 0x124);
|
|
CharModelMotionShiftSet(lbl_1_data_240[GWPlayerCfg[temp_r31->unk34].character], temp_r31->unk0E[7], 0.0f, 5.0f, 0);
|
|
Hu3DMotionShiftSet(temp_r31->unk20, temp_r31->unk22[7], 0.0f, 5.0f, 0);
|
|
HuPrcChildCreate(fn_1_A07C, 0x2000, 0x1000, 0, HuPrcCurrentGet());
|
|
}
|
|
|
|
void fn_1_A4B4(s32 arg0) {
|
|
float temp_f30;
|
|
float var_f31;
|
|
UnkBss474Struct* temp_r31;
|
|
s32 var_r29;
|
|
s32 i;
|
|
|
|
temp_r31 = &lbl_1_bss_474[arg0];
|
|
temp_r31->unk48 = 0.0f;
|
|
temp_r31->unk4C = -40.0f;
|
|
temp_r31->unk50 = 180.0f;
|
|
Hu3DModelCameraSet(temp_r31->unk08, 1);
|
|
temp_f30 = (200.0f - temp_r31->unk50) / 30.0f;
|
|
var_f31 = 0.0f;
|
|
for (i = 0, var_r29 = 0; i < 30; i++) {
|
|
if (var_r29 == 0) {
|
|
temp_r31->unk4C -= var_f31;
|
|
if (temp_r31->unk4C < 0.0f) {
|
|
var_r29 = 1;
|
|
CharModelMotionShiftSet(lbl_1_data_240[GWPlayerCfg[temp_r31->unk34].character], temp_r31->unk0E[2], 0.0f, 20.0f, 0x40000001);
|
|
temp_r31->unk4C = 0.0f;
|
|
}
|
|
}
|
|
var_f31 += 1.0f;
|
|
if (var_f31 > 10.0f) {
|
|
var_f31 = 10.0f;
|
|
}
|
|
temp_r31->unk50 += temp_f30;
|
|
Hu3DModelPosSet(temp_r31->unk08, temp_r31->unk48, temp_r31->unk4C, temp_r31->unk50);
|
|
HuPrcVSleep();
|
|
}
|
|
CharModelMotionShiftSet(lbl_1_data_240[GWPlayerCfg[temp_r31->unk34].character], temp_r31->unk0E[0], 0.0f, 5.0f, 0x40000001);
|
|
for (i = 0; i < 30; i++) {
|
|
temp_r31->unk58 += 6.0f;
|
|
Hu3DModelRotSet(temp_r31->unk08, temp_r31->unk54, temp_r31->unk58, temp_r31->unk5C);
|
|
HuPrcVSleep();
|
|
}
|
|
HuAudSStreamPlay(1);
|
|
CharModelMotionShiftSet(lbl_1_data_240[GWPlayerCfg[temp_r31->unk34].character], temp_r31->unk0E[8], 0.0f, 5.0f, 0);
|
|
}
|
|
|
|
void fn_1_A788(s32 arg0) {
|
|
float temp_f30;
|
|
float temp_f29;
|
|
float var_f31;
|
|
UnkBss474Struct* temp_r31;
|
|
UnkBss138InnerStruct00* var_r29;
|
|
s32 var_r28;
|
|
s32 i;
|
|
|
|
temp_r31 = &lbl_1_bss_474[arg0];
|
|
var_r29 = &lbl_1_bss_138.unkE4[0];
|
|
temp_r31->unk48 = 0.0f;
|
|
temp_r31->unk4C = 170.0f;
|
|
temp_r31->unk50 = 900.0f;
|
|
Hu3DModelCameraSet(temp_r31->unk08, 1);
|
|
temp_f29 = (150.0f - temp_r31->unk50) / 30.0f;
|
|
temp_f30 = -temp_r31->unk48 / 30.0f;
|
|
var_f31 = 0.0f;
|
|
for (i = 0, var_r28 = 0; i < 30; i++) {
|
|
if (var_r28 == 0) {
|
|
temp_r31->unk4C -= var_f31;
|
|
if (temp_r31->unk4C < 0.0f) {
|
|
var_r28 = 1;
|
|
CharModelMotionShiftSet(lbl_1_data_240[GWPlayerCfg[temp_r31->unk34].character], temp_r31->unk0E[2], 0.0f, 5.0f, 0x40000001U);
|
|
temp_r31->unk4C = 0.0f;
|
|
}
|
|
}
|
|
var_f31 += 1.0f;
|
|
if (var_f31 > 10.0f) {
|
|
var_f31 = 10.0f;
|
|
}
|
|
temp_r31->unk48 += temp_f30;
|
|
temp_r31->unk50 += temp_f29;
|
|
Hu3DModelPosSet(temp_r31->unk08, temp_r31->unk48, temp_r31->unk4C, temp_r31->unk50);
|
|
HuPrcVSleep();
|
|
}
|
|
CharModelMotionShiftSet(lbl_1_data_240[GWPlayerCfg[temp_r31->unk34].character], temp_r31->unk0E[0], 0.0f, 5.0f, 0x40000001);
|
|
HuPrcSleep(30);
|
|
temp_f30 = (100.0f - temp_r31->unk48) / 30.0f;
|
|
temp_f29 = -temp_r31->unk50 / 30.0f;
|
|
var_f31 = 20.0f;
|
|
Hu3DMotionShiftSet(var_r29->unk00, var_r29->unk02[3], 0.0f, 5.0f, 0);
|
|
HuPrcSleep(10);
|
|
CharModelMotionShiftSet(lbl_1_data_240[GWPlayerCfg[temp_r31->unk34].character], temp_r31->unk0E[6], 0.0f, 5.0f, 0);
|
|
for (i = 0; i < 30; i++) {
|
|
temp_r31->unk4C += var_f31;
|
|
var_f31 -= 1.2f;
|
|
temp_r31->unk48 += temp_f30;
|
|
temp_r31->unk50 += temp_f29;
|
|
Hu3DModelPosSet(temp_r31->unk08, temp_r31->unk48, temp_r31->unk4C, temp_r31->unk50);
|
|
temp_r31->unk58 += 3.0f;
|
|
Hu3DModelRotSet(temp_r31->unk08, temp_r31->unk54, temp_r31->unk58, temp_r31->unk5C);
|
|
HuPrcVSleep();
|
|
}
|
|
HuAudPlayerVoicePlay(temp_r31->unk34, 0x124);
|
|
Hu3DModelPosSet(temp_r31->unk08, 0.0f, 0.0f, 0.0f);
|
|
Hu3DModelRotSet(temp_r31->unk08, 0.0f, 0.0f, 0.0f);
|
|
switch (GWPlayerCfg[temp_r31->unk34].character) {
|
|
case 1:
|
|
Hu3DModelPosSet(temp_r31->unk08, 0.0f, -80.0f, 0.0f);
|
|
break;
|
|
case 3:
|
|
Hu3DModelPosSet(temp_r31->unk08, 0.0f, -90.0f, 0.0f);
|
|
break;
|
|
case 2:
|
|
Hu3DModelPosSet(temp_r31->unk08, 0.0f, 20.0f, 0.0f);
|
|
break;
|
|
}
|
|
Hu3DModelHookSet(var_r29->unk00, "zaseki", temp_r31->unk08);
|
|
HuAudSStreamPlay(1);
|
|
}
|
|
|
|
void fn_1_ACB0(void) {
|
|
s32 i;
|
|
|
|
while (TRUE) {
|
|
if (omSysExitReq == 1) {
|
|
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60);
|
|
HuAudFadeOut(1000);
|
|
HuPrcSleep(60);
|
|
for (i = 0; i < 4; i++) {
|
|
HuSprAnimKill(lbl_1_bss_474[i].unk24C);
|
|
HuSprAnimKill(lbl_1_bss_474[i].unk250);
|
|
}
|
|
MGSeqKillAll();
|
|
omOvlReturnEx(1, 1);
|
|
while (TRUE) {
|
|
HuPrcVSleep();
|
|
}
|
|
}
|
|
HuPrcVSleep();
|
|
}
|
|
}
|
|
|
|
void fn_1_AD58(void) {
|
|
s16 temp_r28;
|
|
s16 var_r27;
|
|
s16 temp_r25;
|
|
s32 var_r24;
|
|
s32 var_r29;
|
|
s32 var_r30;
|
|
s32 i;
|
|
|
|
lbl_1_bss_E98 = 0;
|
|
HuPrcSleep(1.0f + wipeData.duration);
|
|
switch (lbl_1_bss_E40) {
|
|
case 0:
|
|
lbl_1_bss_E28 = 1;
|
|
lbl_1_bss_E2C[0] = HuAudFXPlay(0x573);
|
|
break;
|
|
case 1:
|
|
lbl_1_bss_E28 = 2;
|
|
lbl_1_bss_E2C[1] = HuAudFXPlay(0x577);
|
|
break;
|
|
default:
|
|
lbl_1_bss_E28 = 1;
|
|
lbl_1_bss_E2C[0] = HuAudFXPlay(0x571);
|
|
break;
|
|
}
|
|
fn_1_8DBC();
|
|
HuPrcSleep(60);
|
|
lbl_1_bss_E98 = 1;
|
|
while (lbl_1_bss_E98 == 1) {
|
|
HuPrcVSleep();
|
|
}
|
|
var_r24 = HuAudSeqPlay(0x45);
|
|
temp_r28 = MGSeqCreate(3, 0);
|
|
while (MGSeqStatGet(temp_r28) != 0) {
|
|
HuPrcVSleep();
|
|
}
|
|
var_r27 = 3659;
|
|
temp_r25 = MGSeqCreate(1, var_r27 / 60, -1, -1);
|
|
lbl_1_bss_E98 = 3;
|
|
while (TRUE) {
|
|
for (i = 0, var_r29 = 0; i < 4; i++) {
|
|
if (lbl_1_bss_474[i].unk40 == 4) {
|
|
var_r29++;
|
|
var_r30 = i;
|
|
}
|
|
}
|
|
if (var_r29 > 0) {
|
|
if (var_r29 > 1) {
|
|
var_r29 = frandmod(var_r29);
|
|
for (i = 0; i < 4; i++) {
|
|
if (lbl_1_bss_474[i].unk40 == 4 && var_r29-- == 0) {
|
|
var_r30 = i;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
} else if (var_r27 < 59) {
|
|
var_r30 = -1;
|
|
break;
|
|
}
|
|
MGSeqParamSet(temp_r25, 1, var_r27-- / 60);
|
|
HuPrcVSleep();
|
|
}
|
|
HuAudSeqFadeOut(var_r24, 100);
|
|
for (i = 0; i < 4; i++) {
|
|
HuPrcKill(lbl_1_bss_124[i]);
|
|
}
|
|
MGSeqParamSet(temp_r25, 2, -1);
|
|
temp_r28 = MGSeqCreate(3, 1);
|
|
while (MGSeqStatGet(temp_r28) != 0) {
|
|
HuPrcVSleep();
|
|
}
|
|
if (var_r30 != -1) {
|
|
lbl_1_bss_E98 = 4;
|
|
lbl_1_bss_E94 = var_r30;
|
|
fn_1_9BC0(var_r30);
|
|
switch (lbl_1_bss_E40) {
|
|
case 0:
|
|
fn_1_A120(var_r30);
|
|
break;
|
|
case 1:
|
|
fn_1_A4B4(var_r30);
|
|
break;
|
|
default:
|
|
fn_1_A788(var_r30);
|
|
break;
|
|
}
|
|
}
|
|
if (var_r30 != -1) {
|
|
if (!_CheckFlag(FLAG_ID_MAKE(1, 12))) {
|
|
GWPlayer[var_r30].coin_win = 10;
|
|
}
|
|
temp_r28 = MGSeqCreate(5, 3, GWPlayerCfg[var_r30].character, -1, -1, -1);
|
|
} else {
|
|
HuAudSStreamPlay(4);
|
|
temp_r28 = MGSeqCreate(3, 2);
|
|
}
|
|
HuPrcSleep(210);
|
|
lbl_1_bss_E98 = 5;
|
|
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60);
|
|
HuPrcSleep(60);
|
|
HuAudFadeOut(1);
|
|
for (i = 0; i < 4; i++) {
|
|
HuSprAnimKill(lbl_1_bss_474[i].unk24C);
|
|
HuSprAnimKill(lbl_1_bss_474[i].unk250);
|
|
}
|
|
MGSeqKillAll();
|
|
omOvlReturnEx(1, 1);
|
|
while (TRUE) {
|
|
HuPrcVSleep();
|
|
}
|
|
}
|