127 lines
3.7 KiB
C
127 lines
3.7 KiB
C
#include "game/gamework_data.h"
|
|
#include "game/hsfman.h"
|
|
#include "game/object.h"
|
|
#include "game/process.h"
|
|
|
|
#define ARRAY_COUNT(arr) (s32)(sizeof(arr) / sizeof(arr[0]))
|
|
|
|
// function signatures
|
|
void fn_1_162C(omObjData *);
|
|
void fn_1_1A8C(omObjData *);
|
|
|
|
// bss
|
|
Process *lbl_1_bss_2C;
|
|
omObjData *lbl_1_bss_28;
|
|
s16 lbl_1_bss_24;
|
|
s32 lbl_1_bss_20;
|
|
|
|
// data
|
|
s32 lbl_1_data_198[] = {
|
|
DATA_MAKE_NUM(DATADIR_M407, 0x00),
|
|
DATA_MAKE_NUM(DATADIR_M407, 0x02),
|
|
DATA_MAKE_NUM(DATADIR_M407, 0x03),
|
|
DATA_MAKE_NUM(DATADIR_M407, 0x01),
|
|
DATA_MAKE_NUM(DATADIR_M407, 0x05),
|
|
DATA_MAKE_NUM(DATADIR_M407, 0x06),
|
|
DATA_MAKE_NUM(DATADIR_M407, 0x07),
|
|
DATA_MAKE_NUM(DATADIR_M407, 0x08),
|
|
DATA_MAKE_NUM(DATADIR_M407, 0x09),
|
|
DATA_MAKE_NUM(DATADIR_M407, 0x0A),
|
|
DATA_MAKE_NUM(DATADIR_M407, 0x0B),
|
|
DATA_MAKE_NUM(DATADIR_M407, 0x0C),
|
|
DATA_MAKE_NUM(DATADIR_M407, 0x04),
|
|
};
|
|
|
|
Vec lbl_1_data_1CC[] = { { 600.0f, 3.0f, -300.0f }, { 200.0f, 3.0f, -300.0f }, { -200.0f, 3.0f, -300.0f }, { -600.0f, 3.0f, -300.0f } };
|
|
|
|
Point3d lbl_1_data_1FC = { 2000.0f, 3000.0f, 2000.0f };
|
|
Point3d lbl_1_data_208 = { -0.5f, -0.5f, -0.5f };
|
|
GXColor lbl_1_data_214 = { 255, 255, 255, 255 };
|
|
Point3d lbl_1_data_218 = { 0.0f, 1.0f, 0.0f };
|
|
|
|
void fn_1_14F0(Process *arg0, s32 arg1)
|
|
{
|
|
LightData *sp10;
|
|
|
|
lbl_1_bss_2C = arg0;
|
|
lbl_1_bss_20 = arg1;
|
|
lbl_1_bss_28 = omAddObjEx(lbl_1_bss_2C, 0x100, 0xD, 0, 1, fn_1_162C);
|
|
omSetStatBit(lbl_1_bss_28, 0x100);
|
|
Hu3DLighInit();
|
|
lbl_1_bss_24 = Hu3DGLightCreateV(&lbl_1_data_1FC, &lbl_1_data_208, &lbl_1_data_214);
|
|
Hu3DGLightInfinitytSet(lbl_1_bss_24);
|
|
sp10 = &Hu3DGlobalLight[lbl_1_bss_24];
|
|
}
|
|
|
|
void fn_1_15D8(void)
|
|
{
|
|
s32 i;
|
|
|
|
for (i = 0; i < 13; i++) {
|
|
Hu3DModelKill(lbl_1_bss_28->model[i]);
|
|
}
|
|
}
|
|
|
|
void fn_1_162C(omObjData *arg0)
|
|
{
|
|
s32 var_r30;
|
|
s32 var_r30_2;
|
|
s32 var_r30_3;
|
|
s32 var_r30_4;
|
|
s32 i;
|
|
|
|
arg0->func = fn_1_1A8C;
|
|
arg0->model[0] = Hu3DModelCreateFile(lbl_1_data_198[2]);
|
|
Hu3DModelShadowMapSet(arg0->model[0]);
|
|
Hu3DModelAmbSet(arg0->model[0], 1.0f, 1.0f, 1.0f);
|
|
arg0->model[1] = Hu3DModelCreateFile(lbl_1_data_198[3]);
|
|
Hu3DModelAmbSet(arg0->model[1], 1.0f, 1.0f, 1.0f);
|
|
Hu3DModelAttrSet(arg0->model[1], 1);
|
|
for (i = 0; i < ARRAY_COUNT(GWPlayerCfg); i++) {
|
|
arg0->model[i + 2] = Hu3DModelCreateFile(lbl_1_data_198[GWPlayerCfg[i].character + 4]);
|
|
Hu3DModelAmbSet(arg0->model[i + 2], 1.0f, 1.0f, 1.0f);
|
|
Hu3DModelShadowMapSet(arg0->model[i + 2]);
|
|
}
|
|
|
|
for (i = 0; i < 5; i++) {
|
|
if (i == 0) {
|
|
arg0->model[i + 6] = Hu3DModelCreateFile(lbl_1_data_198[0]);
|
|
}
|
|
else {
|
|
arg0->model[i + 6] = Hu3DModelLink(arg0->model[6]);
|
|
}
|
|
Hu3DModelAmbSet(arg0->model[i + 6], 1.0f, 1.0f, 1.0f);
|
|
Hu3DModelShadowMapSet(arg0->model[i + 6]);
|
|
}
|
|
|
|
arg0->model[11] = Hu3DModelCreateFile(lbl_1_data_198[12]);
|
|
arg0->model[12] = Hu3DModelCreateFile(lbl_1_data_198[1]);
|
|
|
|
for (i = 0; i < 4; i++) {
|
|
Hu3DModelPosSetV(arg0->model[i + 2], &lbl_1_data_1CC[i]);
|
|
}
|
|
|
|
for (i = 0; i < 5; i++) {
|
|
Hu3DModelPosSet(arg0->model[i + 6], 0.0f, 0.0f, -2000.0f + (8000.0f * (f32)i));
|
|
}
|
|
|
|
Hu3DModelPosSet(arg0->model[11], 0.0f, 0.0f, -3900.0f);
|
|
Hu3DModelPosSet(arg0->model[12], 0.0f, 0.0f, 0.0f);
|
|
Hu3DModelAttrSet(arg0->model[12], 0x40000001);
|
|
|
|
if (lbl_1_bss_20 > 0) {
|
|
Hu3DModelPosSet(arg0->model[1], 0.0f, 0.0f, 200.0f * (f32)lbl_1_bss_20);
|
|
Hu3DModelAttrReset(arg0->model[1], 1);
|
|
}
|
|
}
|
|
|
|
void fn_1_1A8C(omObjData *arg0)
|
|
{
|
|
Point3d sp8;
|
|
|
|
sp8.x = lbl_1_data_1FC.x;
|
|
sp8.y = lbl_1_data_1FC.y;
|
|
sp8.z = lbl_1_data_1FC.z + Center.z;
|
|
Hu3DGLightPosSetV(lbl_1_bss_24, &sp8, &lbl_1_data_208);
|
|
Hu3DShadowPosSet(&sp8, &lbl_1_data_218, &Center);
|
|
}
|