Matched m444dll/shadow.c
This commit is contained in:
parent
a0ebc7588d
commit
a05b5db43e
5 changed files with 199 additions and 131 deletions
|
|
@ -40,8 +40,10 @@ CameraViewParams lbl_1_data_0[] = {
|
|||
{ { -23, 0, 0 }, { 0, 65, -97 }, 1318 },
|
||||
};
|
||||
|
||||
DataListSprite lbl_1_data_118[]
|
||||
= { { DATA_MAKE_NUM(DATADIR_M443, 0x22), 0, 10, 288, -200, { 255, 255, 255, 255 } }, { 0, 0, 0, 0, 0, { 0, 0, 0, 0 } } };
|
||||
DataListSprite lbl_1_data_118[] = {
|
||||
{ DATA_MAKE_NUM(DATADIR_M444, 0x22), 0, 10, 288, -200, { 255, 255, 255, 255 } },
|
||||
{ 0, 0, 0, 0, 0, { 0, 0, 0, 0 } },
|
||||
};
|
||||
|
||||
float lbl_1_data_140[] = { 90, 250, 420 };
|
||||
|
||||
|
|
@ -55,9 +57,16 @@ Vec lbl_1_data_14C[] = {
|
|||
|
||||
s16 lbl_1_data_188[] = { 1, 1, 2, 2, 2 };
|
||||
|
||||
s32 lbl_1_data_194[] = { DATA_MAKE_NUM(DATADIR_M443, 0x24), DATA_MAKE_NUM(DATADIR_M443, 0x25), DATA_MAKE_NUM(DATADIR_M443, 0x26),
|
||||
DATA_MAKE_NUM(DATADIR_M443, 0x27), DATA_MAKE_NUM(DATADIR_M443, 0x28), DATA_MAKE_NUM(DATADIR_M443, 0x29), DATA_MAKE_NUM(DATADIR_M443, 0x2A),
|
||||
DATA_MAKE_NUM(DATADIR_M443, 0x2B) };
|
||||
s32 lbl_1_data_194[] = {
|
||||
DATA_MAKE_NUM(DATADIR_M444, 0x24),
|
||||
DATA_MAKE_NUM(DATADIR_M444, 0x25),
|
||||
DATA_MAKE_NUM(DATADIR_M444, 0x26),
|
||||
DATA_MAKE_NUM(DATADIR_M444, 0x27),
|
||||
DATA_MAKE_NUM(DATADIR_M444, 0x28),
|
||||
DATA_MAKE_NUM(DATADIR_M444, 0x29),
|
||||
DATA_MAKE_NUM(DATADIR_M444, 0x2A),
|
||||
DATA_MAKE_NUM(DATADIR_M444, 0x2B),
|
||||
};
|
||||
|
||||
omObjData *lbl_1_bss_30C;
|
||||
Process *lbl_1_bss_308;
|
||||
|
|
@ -1241,7 +1250,7 @@ void fn_1_655C(void)
|
|||
up.y = 1;
|
||||
up.z = 0;
|
||||
Hu3DShadowPosSet(&pos, &up, &target);
|
||||
Hu3DReflectMapSet(HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M443, 0x23), MEMORY_DEFAULT_NUM, HEAP_DATA));
|
||||
Hu3DReflectMapSet(HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M444, 0x23), MEMORY_DEFAULT_NUM, HEAP_DATA));
|
||||
for (i = 0; i < 4; i++) {
|
||||
lbl_1_data_470[i + 47].datanum = lbl_1_data_470[i + 51].datanum = lbl_1_data_194[GWPlayerCfg[i].character];
|
||||
}
|
||||
|
|
@ -1266,8 +1275,8 @@ void fn_1_655C(void)
|
|||
lbl_1_bss_2D0 = model;
|
||||
lbl_1_bss_2C0[0] = CharModelMotionCreate(lbl_1_bss_2DA, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00));
|
||||
lbl_1_bss_2C0[1] = CharModelMotionCreate(lbl_1_bss_2DA, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02));
|
||||
lbl_1_bss_2C0[2] = CharModelMotionCreate(lbl_1_bss_2DA, lbl_1_bss_2DA + DATA_MAKE_NUM(DATADIR_M443, 0x45));
|
||||
lbl_1_bss_2C0[3] = CharModelMotionCreate(lbl_1_bss_2DA, lbl_1_bss_2DA + DATA_MAKE_NUM(DATADIR_M443, 0x4D));
|
||||
lbl_1_bss_2C0[2] = CharModelMotionCreate(lbl_1_bss_2DA, lbl_1_bss_2DA + DATA_MAKE_NUM(DATADIR_M444, 0x45));
|
||||
lbl_1_bss_2C0[3] = CharModelMotionCreate(lbl_1_bss_2DA, lbl_1_bss_2DA + DATA_MAKE_NUM(DATADIR_M444, 0x4D));
|
||||
CharModelMotionSet(lbl_1_bss_2DA, lbl_1_bss_2C0[0]);
|
||||
Hu3DModelPosSet(model, 0, 0, 200);
|
||||
Hu3DModelAttrSet(model, 0x40000001);
|
||||
|
|
@ -1298,7 +1307,7 @@ void fn_1_655C(void)
|
|||
fn_1_8424();
|
||||
for (i = 0; i < 20; i++) {
|
||||
if (i == 0) {
|
||||
model = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M443, 0x13));
|
||||
model = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M444, 0x13));
|
||||
}
|
||||
else {
|
||||
model = Hu3DModelLink(lbl_1_bss_148[0][0]);
|
||||
|
|
@ -1311,7 +1320,7 @@ void fn_1_655C(void)
|
|||
}
|
||||
for (i = 0; i < 20; i++) {
|
||||
if (i == 0) {
|
||||
model = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M443, 0x12));
|
||||
model = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M444, 0x12));
|
||||
}
|
||||
else {
|
||||
model = Hu3DModelLink(lbl_1_bss_8[0][0]);
|
||||
|
|
|
|||
59
src/REL/m444dll/shadow.c
Normal file
59
src/REL/m444dll/shadow.c
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
#include "game/hsfman.h"
|
||||
#include "game/object.h"
|
||||
|
||||
#include "game/window.h"
|
||||
|
||||
#include "ext_math.h"
|
||||
|
||||
void fn_1_D9F4(s16);
|
||||
|
||||
void fn_1_D9C8(void)
|
||||
{
|
||||
Hu3DLayerHookSet(7, fn_1_D9F4);
|
||||
}
|
||||
|
||||
void fn_1_D9F4(s16 arg0)
|
||||
{
|
||||
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, 0x280, 0x1E0);
|
||||
GXClearVtxDesc();
|
||||
GXSetVtxDesc(GX_VA_POS, GX_DIRECT);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 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_ZERO);
|
||||
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);
|
||||
GXSetAlphaCompare(GX_GEQUAL, 0, GX_AOP_AND, GX_GEQUAL, 0);
|
||||
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, 0);
|
||||
sp28.x = 1.2000000476837158 * (10000.0 * -sin(var_r31->fov / 2));
|
||||
sp28.y = 0.8333333134651184 * (10000.0 * -sin(var_r31->fov / 2));
|
||||
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);
|
||||
}
|
||||
|
|
@ -1479,26 +1479,26 @@ void fn_1_7414(ModelData *model, Mtx matrix)
|
|||
GXClearVtxDesc();
|
||||
GXSetVtxDesc(GX_VA_POS, GX_DIRECT);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0);
|
||||
GXInitTexObj(&spC, Hu3DShadowData.unk_04, Hu3DShadowData.unk_02, Hu3DShadowData.unk_02, 1, GX_CLAMP, GX_CLAMP, 0);
|
||||
GXInitTexObjLOD(&spC, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, 0, 0, GX_ANISO_1);
|
||||
GXInitTexObj(&spC, Hu3DShadowData.unk_04, Hu3DShadowData.unk_02, Hu3DShadowData.unk_02, 1, GX_CLAMP, GX_CLAMP, GX_FALSE);
|
||||
GXInitTexObjLOD(&spC, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1);
|
||||
GXLoadTexObj(&spC, GX_TEXMAP0);
|
||||
PSMTXInverse(Hu3DCameraMtx, sp5C);
|
||||
PSMTXConcat(sp5C, matrix, sp8C);
|
||||
PSMTXConcat(Hu3DShadowData.unk_68, Hu3DShadowData.unk_38, sp2C);
|
||||
PSMTXConcat(sp2C, sp8C, sp8C);
|
||||
GXLoadTexMtxImm(sp8C, 0x39, GX_MTX3x4);
|
||||
GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, 0x39, 0, 0x7D);
|
||||
GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, 0x39, GX_FALSE, 0x7D);
|
||||
GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0);
|
||||
GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_TEXC, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO);
|
||||
GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV);
|
||||
GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
|
||||
GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_KONST, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO);
|
||||
GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 0, GX_TEVPREV);
|
||||
GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_FALSE, GX_TEVPREV);
|
||||
GXSetNumTexGens(1);
|
||||
GXSetNumTevStages(1);
|
||||
GXSetNumChans(1);
|
||||
GXSetChanCtrl(GX_COLOR0, 1, GX_SRC_REG, GX_SRC_VTX, 1, GX_DF_CLAMP, GX_AF_NONE);
|
||||
GXSetChanCtrl(GX_COLOR0, GX_TRUE, GX_SRC_REG, GX_SRC_VTX, 1, GX_DF_CLAMP, GX_AF_NONE);
|
||||
GXSetBlendMode(GX_BM_BLEND, GX_BL_ZERO, GX_BL_INVDSTCLR, GX_LO_NOOP);
|
||||
GXSetZMode(1, GX_LEQUAL, 0);
|
||||
GXSetZMode(1, GX_LEQUAL, GX_FALSE);
|
||||
GXLoadPosMtxImm(matrix, 0);
|
||||
GXBegin(GX_QUADS, GX_VTXFMT0, 4);
|
||||
GXPosition3f32(-500.0f, 0.0f, -500.0f);
|
||||
|
|
|
|||
|
|
@ -169,7 +169,7 @@ void fn_80040374(s16 arg0, s16 arg1, s16 arg2, s16 arg3) {
|
|||
unkCode_8003FF68* temp_r3;
|
||||
|
||||
process = HuPrcChildCreate(fn_8004040C, 1, 0x1000, 0, HuPrcCurrentGet());
|
||||
temp_r3 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(unkCode_8003FF68), 0x10000000);
|
||||
temp_r3 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(unkCode_8003FF68), MEMORY_DEFAULT_NUM);
|
||||
process->user_data = temp_r3;
|
||||
temp_r3->unk0 = arg0;
|
||||
temp_r3->unk2 = arg1;
|
||||
|
|
@ -203,4 +203,4 @@ void fn_8004040C(void) {
|
|||
}
|
||||
HuPrcVSleep();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue