Merge branch 'Rainchus:main' into main
This commit is contained in:
commit
054f1c8641
11 changed files with 3821 additions and 484 deletions
|
|
@ -76,20 +76,21 @@ typedef struct UnkM404Struct3 {
|
|||
s32 unk78[91];
|
||||
} UnkM404Struct3; // size 0x1E4
|
||||
|
||||
s32 lbl_1_bss_0;
|
||||
float lbl_1_bss_4;
|
||||
s16 lbl_1_bss_C;
|
||||
Vec lbl_1_bss_10;
|
||||
s32 lbl_1_bss_1C;
|
||||
s32 lbl_1_bss_20;
|
||||
s32 lbl_1_bss_24;
|
||||
s32 lbl_1_bss_28[4];
|
||||
s32 lbl_1_bss_38[4];
|
||||
s32 lbl_1_bss_48;
|
||||
omObjData *lbl_1_bss_4C;
|
||||
omObjData *lbl_1_bss_50;
|
||||
omObjData *lbl_1_bss_54;
|
||||
omObjData *lbl_1_bss_58;
|
||||
omObjData *lbl_1_bss_54;
|
||||
omObjData *lbl_1_bss_50;
|
||||
omObjData *lbl_1_bss_4C;
|
||||
s32 lbl_1_bss_48;
|
||||
s32 lbl_1_bss_38[4];
|
||||
s32 lbl_1_bss_28[4];
|
||||
s32 lbl_1_bss_24;
|
||||
s32 lbl_1_bss_20;
|
||||
s32 lbl_1_bss_1C;
|
||||
Vec lbl_1_bss_10;
|
||||
s16 lbl_1_bss_C;
|
||||
s32 lbl_1_bss_8;
|
||||
float lbl_1_bss_4;
|
||||
s32 lbl_1_bss_0;
|
||||
|
||||
float lbl_1_data_0[][2] = {
|
||||
{ -0.00026f, 0.51953f },
|
||||
|
|
@ -859,7 +860,7 @@ float fn_1_2EBC(float arg0[], float arg8)
|
|||
var_f22 = var_f27 * (fn_1_1DF8(arg0, var_f31) + fn_1_1DF8(arg0, arg8)) / 2;
|
||||
|
||||
for (var_r30 = 1; var_r30 <= var_r29; var_r30 *= 2) {
|
||||
for (var_f23 = 0.0f, var_r31 = 1; var_r31 <= var_r30; var_r31 += 1) {
|
||||
for (var_f23 = 0.0f, var_r31 = 1; var_r31 <= var_r30; var_r31++) {
|
||||
var_f23 += fn_1_1DF8(arg0, var_f31 + var_f27 * (var_r31 - 0.5f));
|
||||
}
|
||||
var_f23 *= var_f27;
|
||||
|
|
|
|||
1323
src/REL/m410Dll/game.c
Normal file
1323
src/REL/m410Dll/game.c
Normal file
File diff suppressed because it is too large
Load diff
561
src/REL/m410Dll/main.c
Normal file
561
src/REL/m410Dll/main.c
Normal file
|
|
@ -0,0 +1,561 @@
|
|||
#include "ext_math.h"
|
||||
#include "game/gamework_data.h"
|
||||
#include "game/hsfdraw.h"
|
||||
#include "game/hsfman.h"
|
||||
#include "game/minigame_seq.h"
|
||||
#include "game/object.h"
|
||||
#include "game/wipe.h"
|
||||
#include "rel_sqrt_consts.h"
|
||||
|
||||
#include "REL/m410Dll.h"
|
||||
|
||||
Process *lbl_1_bss_28;
|
||||
omObjData *lbl_1_bss_24;
|
||||
omObjData *lbl_1_bss_20;
|
||||
s16 lbl_1_bss_1C;
|
||||
s32 lbl_1_bss_18;
|
||||
s16 lbl_1_bss_16;
|
||||
s16 lbl_1_bss_14;
|
||||
s16 lbl_1_bss_12;
|
||||
s16 lbl_1_bss_10;
|
||||
s32 lbl_1_bss_C;
|
||||
s32 lbl_1_bss_8;
|
||||
s32 lbl_1_bss_4;
|
||||
s32 lbl_1_bss_0;
|
||||
|
||||
Vec lbl_1_data_0 = { 100.0f, 800.0f, -100.0f };
|
||||
Vec lbl_1_data_C = { 0.3f, -0.8f, 0.3f };
|
||||
Vec lbl_1_data_18 = { 10.0f, 45.0f, 3500.0f };
|
||||
GXColor lbl_1_data_24 = { 255, 255, 255, 255 };
|
||||
Vec lbl_1_data_28 = { 50.0f, 150000.0f, 50.0f };
|
||||
Vec lbl_1_data_34 = { 0.0f, 1.0f, 0.0f };
|
||||
Vec lbl_1_data_40 = { 0.0f, 0.0f, 0.0f };
|
||||
Vec lbl_1_data_4C[] = {
|
||||
{ -350.0f, 120.00001f, 0.0f },
|
||||
{ -350.0f, 120.00001f, 0.0f },
|
||||
{ 0.0f, 350.0f, -300.0f },
|
||||
{ 0.0f, 350.0f, -300.0f },
|
||||
{ 0.0f, 367.0f, 252.0f },
|
||||
};
|
||||
Vec lbl_1_data_88[] = {
|
||||
{ 20.0f, -25.0f, 300.0f },
|
||||
{ 20.0f, -25.0f, 300.0f },
|
||||
{ 15.0f, 15.0f, 1100.0f },
|
||||
{ 15.0f, 15.0f, 1100.0f },
|
||||
{ -11.2f, 0.0f, 592.0f },
|
||||
};
|
||||
s32 lbl_1_data_C4[] = { 60, 90, 108, 30, 0 };
|
||||
|
||||
void fn_1_4E4(omObjData *object);
|
||||
void fn_1_63C(omObjData *object);
|
||||
void fn_1_7A8(omObjData *object);
|
||||
void fn_1_ABC(omObjData *object);
|
||||
void fn_1_DEC(omObjData *object);
|
||||
void fn_1_FF0(omObjData *object);
|
||||
void fn_1_139C(omObjData *object);
|
||||
void fn_1_1648(omObjData *object);
|
||||
omObjFunc fn_1_19C8(Process *objman, omObjData *object);
|
||||
void fn_1_1A7C(omObjData *object);
|
||||
omObjFunc fn_1_216C(Process *objman, omObjData *object);
|
||||
void fn_1_2188(omObjData *object);
|
||||
|
||||
void ModuleProlog(void)
|
||||
{
|
||||
Mtx sp20;
|
||||
Vec sp14;
|
||||
Vec sp8;
|
||||
Process *var_r31;
|
||||
LightData *var_r30;
|
||||
|
||||
HuAudSndGrpSet(35);
|
||||
lbl_1_bss_4 = lbl_1_bss_0 = -1;
|
||||
lbl_1_bss_C = lbl_1_bss_8 = -1;
|
||||
lbl_1_bss_1C = -1;
|
||||
lbl_1_data_28.x = 200.0f;
|
||||
lbl_1_data_28.y = 1200.0f;
|
||||
lbl_1_data_28.z = 160.0f;
|
||||
lbl_1_data_34.x = 0.0f;
|
||||
lbl_1_data_34.y = 1.0f;
|
||||
lbl_1_data_34.z = 0.0f;
|
||||
lbl_1_data_40.x = 0.0f;
|
||||
lbl_1_data_40.y = 0.0f;
|
||||
lbl_1_data_40.z = 0.0f;
|
||||
Hu3DShadowCreate(45.0f, 20.0f, 25000.0f);
|
||||
Hu3DShadowTPLvlSet(0.625f);
|
||||
Hu3DShadowPosSet(&lbl_1_data_28, &lbl_1_data_34, &lbl_1_data_40);
|
||||
lbl_1_bss_16 = Hu3DGLightCreateV(&lbl_1_data_0, &lbl_1_data_C, &lbl_1_data_24);
|
||||
Hu3DGLightInfinitytSet(lbl_1_bss_16);
|
||||
var_r30 = &Hu3DGlobalLight[lbl_1_bss_16];
|
||||
var_r30->unk_00 = var_r30->unk_00 | 0x8000;
|
||||
lbl_1_data_18.x = 34.75f;
|
||||
lbl_1_data_18.y = -24.75f;
|
||||
lbl_1_data_18.z = 3500.0f;
|
||||
sp14.x = sp14.y = sp14.z = 0.0f;
|
||||
sp8.x = sp8.z = 0.0f;
|
||||
sp8.y = lbl_1_data_18.z;
|
||||
mtxRot(sp20, lbl_1_data_18.x, lbl_1_data_18.y, 0.0f);
|
||||
PSMTXMultVec(sp20, &sp8, &sp8);
|
||||
Hu3DGLightPosAimSetV(lbl_1_bss_16, &sp8, &sp14);
|
||||
Hu3DShadowPosSet(&sp8, &lbl_1_data_34, &sp14);
|
||||
lbl_1_bss_14 = lbl_1_bss_12 = lbl_1_bss_10 = -1;
|
||||
var_r31 = omInitObjMan(50, 8192);
|
||||
lbl_1_bss_28 = var_r31;
|
||||
omGameSysInit(var_r31);
|
||||
Hu3DCameraCreate(1);
|
||||
Hu3DCameraPerspectiveSet(1, -1.0f, 5.0f, 5000.0f, 1.2f);
|
||||
Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f);
|
||||
lbl_1_bss_20 = omAddObjEx(var_r31, 32730, 0, 0, -1, omOutView);
|
||||
lbl_1_bss_24 = omAddObjEx(var_r31, 10, 0, 0, -1, fn_1_4E4);
|
||||
fn_1_31A4(var_r31);
|
||||
fn_1_33A8(var_r31);
|
||||
fn_1_7E30(var_r31);
|
||||
}
|
||||
|
||||
void fn_1_4E4(omObjData *object)
|
||||
{
|
||||
UnkM410Struct *var_r31;
|
||||
|
||||
object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(UnkM410Struct), MEMORY_DEFAULT_NUM);
|
||||
var_r31 = object->data;
|
||||
memset(var_r31, 0, sizeof(UnkM410Struct));
|
||||
var_r31->unk_00 = 0;
|
||||
var_r31->unk_04 = 0;
|
||||
var_r31->unk_0C = 0;
|
||||
var_r31->unk_10 = 0;
|
||||
var_r31->unk_14 = 0;
|
||||
var_r31->unk_18 = 0;
|
||||
var_r31->unk_24 = 0;
|
||||
var_r31->unk_28 = 0;
|
||||
var_r31->unk_08 = 0;
|
||||
var_r31->unk_2C = 0;
|
||||
var_r31->unk_30 = 0;
|
||||
var_r31->unk_34 = 0;
|
||||
object->func = fn_1_7A8;
|
||||
}
|
||||
|
||||
void fn_1_5A8(omObjData *object)
|
||||
{
|
||||
UnkM410Struct *var_r31;
|
||||
|
||||
var_r31 = object->data;
|
||||
var_r31->unk_04++;
|
||||
var_r31->unk_10++;
|
||||
var_r31->unk_18++;
|
||||
var_r31->unk_28++;
|
||||
if (omSysExitReq && var_r31->unk_00 != 5) {
|
||||
var_r31->unk_00 = 4;
|
||||
fn_1_63C(object);
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_63C(omObjData *object)
|
||||
{
|
||||
UnkM410Struct *var_r31;
|
||||
|
||||
var_r31 = object->data;
|
||||
|
||||
if (var_r31->unk_08) {
|
||||
return;
|
||||
}
|
||||
switch (var_r31->unk_00) {
|
||||
case 0:
|
||||
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60);
|
||||
Hu3DCameraPerspectiveSet(1, 41.5f, 5.0f, 5000.0f, 1.2f);
|
||||
var_r31->unk_00 = 1;
|
||||
var_r31->unk_10 = 0;
|
||||
object->func = fn_1_19C8(lbl_1_bss_28, object);
|
||||
break;
|
||||
case 1:
|
||||
var_r31->unk_00 = 2;
|
||||
var_r31->unk_18 = 0;
|
||||
object->func = fn_1_FF0;
|
||||
break;
|
||||
case 2:
|
||||
var_r31->unk_00 = 3;
|
||||
var_r31->unk_28 = 0;
|
||||
object->func = fn_1_216C(lbl_1_bss_28, object);
|
||||
break;
|
||||
case 3:
|
||||
case 4:
|
||||
var_r31->unk_08 = 1;
|
||||
var_r31->unk_00 = 5;
|
||||
object->func = fn_1_ABC;
|
||||
break;
|
||||
case 5:
|
||||
default:
|
||||
var_r31->unk_00 = 5;
|
||||
object->func = fn_1_DEC;
|
||||
break;
|
||||
}
|
||||
var_r31->unk_04 = 0;
|
||||
|
||||
}
|
||||
|
||||
void fn_1_7A8(omObjData *object)
|
||||
{
|
||||
fn_1_5A8(object);
|
||||
fn_1_63C(object);
|
||||
}
|
||||
|
||||
void fn_1_ABC(omObjData *object)
|
||||
{
|
||||
UnkM410Struct *var_r27;
|
||||
|
||||
var_r27 = object->data;
|
||||
fn_1_5A8(object);
|
||||
if (!WipeStatGet()) {
|
||||
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60);
|
||||
var_r27->unk_08 = 0;
|
||||
fn_1_63C(object);
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_DEC(omObjData *object)
|
||||
{
|
||||
fn_1_5A8(object);
|
||||
if (!WipeStatGet()) {
|
||||
fn_1_806C();
|
||||
fn_1_3484();
|
||||
fn_1_31F8();
|
||||
MGSeqKillAll();
|
||||
HuAudFadeOut(1);
|
||||
omOvlReturnEx(1, 1);
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_FF0(omObjData *object)
|
||||
{
|
||||
void *var_r31;
|
||||
UnkM410Struct *var_r29;
|
||||
void *var_r28;
|
||||
|
||||
var_r29 = object->data;
|
||||
|
||||
fn_1_5A8(object);
|
||||
switch (var_r29->unk_14) {
|
||||
case 0:
|
||||
var_r29->unk_1C = 30;
|
||||
var_r29->unk_20 = 60;
|
||||
lbl_1_bss_14 = MGSeqCreate(3, 0);
|
||||
MGSeqPosSet(lbl_1_bss_14, 320.0f, 240.0f);
|
||||
CRot.x = -11.2f;
|
||||
CRot.y = CRot.z = 0.0f;
|
||||
Center.x = 0.0f;
|
||||
Center.y = 367.0f;
|
||||
Center.z = 252.0f;
|
||||
CZoom = 592.0f;
|
||||
var_r29->unk_14 = 1;
|
||||
var_r29->unk_18 = 0;
|
||||
break;
|
||||
|
||||
case 1:
|
||||
if (lbl_1_bss_4 < 0 && MGSeqStatGet(lbl_1_bss_14) & 16) {
|
||||
lbl_1_bss_4 = HuAudSeqPlay(71);
|
||||
}
|
||||
if (!MGSeqStatGet(lbl_1_bss_14) && !var_r29->unk_08) {
|
||||
lbl_1_bss_1C = MGSeqCreate(1, var_r29->unk_1C, -1, -1);
|
||||
var_r29->unk_14 = 2;
|
||||
var_r29->unk_18 = 0;
|
||||
object->func = fn_1_139C;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
void fn_1_139C(omObjData *object)
|
||||
{
|
||||
UnkM410Struct *var_r29;
|
||||
s32 var_r27;
|
||||
|
||||
var_r29 = object->data;
|
||||
var_r27 = 0;
|
||||
fn_1_5A8(object);
|
||||
|
||||
if (!--var_r29->unk_20) {
|
||||
var_r29->unk_20 = 60;
|
||||
var_r29->unk_1C--;
|
||||
if (!var_r29->unk_1C) {
|
||||
var_r27 = 1;
|
||||
}
|
||||
}
|
||||
if (var_r27) {
|
||||
lbl_1_bss_12 = MGSeqCreate(3, 1);
|
||||
MGSeqPosSet(lbl_1_bss_12, 320.0f, 240.0f);
|
||||
HuAudSeqFadeOut(lbl_1_bss_4, 100);
|
||||
var_r29->unk_14 = 3;
|
||||
var_r29->unk_18 = 0;
|
||||
if (var_r29->unk_08 == 0) {
|
||||
object->func = fn_1_1648;
|
||||
}
|
||||
}
|
||||
MGSeqParamSet(lbl_1_bss_1C, 1, var_r29->unk_1C);
|
||||
}
|
||||
|
||||
void fn_1_1648(omObjData *object)
|
||||
{
|
||||
UnkM410Struct *var_r27;
|
||||
|
||||
var_r27 = object->data;
|
||||
if (lbl_1_bss_1C >= 0) {
|
||||
MGSeqParamSet(lbl_1_bss_1C, 2, -1);
|
||||
lbl_1_bss_1C = -1;
|
||||
}
|
||||
fn_1_5A8(object);
|
||||
|
||||
if (!MGSeqStatGet(lbl_1_bss_12) && (var_r27->unk_30 + 0xFFFF0000 == 0x1111)) { // -4294897391
|
||||
var_r27->unk_14 = 4;
|
||||
var_r27->unk_18 = 0;
|
||||
fn_1_63C(object);
|
||||
}
|
||||
}
|
||||
|
||||
omObjFunc fn_1_19C8(Process *objman, omObjData *object)
|
||||
{
|
||||
CRot.x = -80.5f;
|
||||
CRot.y = CRot.z = 0.0f;
|
||||
Center.x = 0.0f;
|
||||
Center.y = 0.0f;
|
||||
Center.z = 0.0f;
|
||||
CZoom = 1000.0f;
|
||||
object->work[0] = object->work[1] = 0;
|
||||
return fn_1_1A7C;
|
||||
}
|
||||
|
||||
void fn_1_1A7C(omObjData *object)
|
||||
{
|
||||
Vec sp8;
|
||||
float var_f31;
|
||||
UnkM410Struct *var_r27;
|
||||
|
||||
var_r27 = object->data;
|
||||
fn_1_5A8(object);
|
||||
var_r27->unk_0C = 1;
|
||||
object->work[0]++;
|
||||
|
||||
if (!object->work[1] && object->work[0] > 12.0f) {
|
||||
if (lbl_1_bss_C < 0) {
|
||||
lbl_1_bss_C = HuAudFXPlay(1382);
|
||||
}
|
||||
if (lbl_1_bss_8 < 0) {
|
||||
lbl_1_bss_8 = HuAudFXPlay(1383);
|
||||
}
|
||||
}
|
||||
var_f31 = (float)object->work[0] / lbl_1_data_C4[object->work[1]];
|
||||
|
||||
PSVECSubtract(&lbl_1_data_4C[object->work[1] + 1], &lbl_1_data_4C[object->work[1]], &sp8);
|
||||
PSVECScale(&sp8, &sp8, var_f31);
|
||||
PSVECAdd(&lbl_1_data_4C[object->work[1]], &sp8, &sp8);
|
||||
|
||||
Center.x = sp8.x;
|
||||
Center.y = sp8.y;
|
||||
Center.z = sp8.z;
|
||||
|
||||
PSVECSubtract(&lbl_1_data_88[object->work[1] + 1], &lbl_1_data_88[object->work[1]], &sp8);
|
||||
PSVECScale(&sp8, &sp8, var_f31);
|
||||
PSVECAdd(&lbl_1_data_88[object->work[1]], &sp8, &sp8);
|
||||
|
||||
CRot.x = sp8.x;
|
||||
CRot.y = sp8.y;
|
||||
CRot.z = 0.0f;
|
||||
CZoom = sp8.z;
|
||||
|
||||
if (var_f31 >= 1.0f) {
|
||||
object->work[0] = 0;
|
||||
object->work[1] += 1;
|
||||
if (!lbl_1_data_C4[object->work[1]]) {
|
||||
var_r27->unk_0C = 2;
|
||||
fn_1_63C(object);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
omObjFunc fn_1_216C(Process *objman, omObjData *object)
|
||||
{
|
||||
u32 sp8 = object->work[4];
|
||||
return fn_1_2188;
|
||||
}
|
||||
|
||||
void fn_1_2188(omObjData *object)
|
||||
{
|
||||
s32 sp10[5];
|
||||
UnkM410Struct *var_r27;
|
||||
s32 var_r26;
|
||||
u32 var_r25;
|
||||
s32 var_r24;
|
||||
|
||||
var_r27 = object->data;
|
||||
fn_1_5A8(object);
|
||||
|
||||
var_r27->unk_24 = 1;
|
||||
if (var_r27->unk_28 < 60.0f) {
|
||||
Center.y -= 1.6666667f;
|
||||
}
|
||||
if (lbl_1_bss_10 < 0) {
|
||||
for (var_r24 = 0, var_r25 = 1, var_r26 = 0; var_r26 < 4; var_r25 *= 2, var_r26++) {
|
||||
sp10[var_r26] = -1;
|
||||
if (var_r27->unk_2C & var_r25) {
|
||||
sp10[var_r24++] = GWPlayerCfg[var_r26].character;
|
||||
GWPlayerCoinWinAdd(var_r26, 10);
|
||||
}
|
||||
}
|
||||
if (sp10[0] == -1) {
|
||||
lbl_1_bss_10 = MGSeqCreate(3, 2);
|
||||
if (lbl_1_bss_0 >= 0) {
|
||||
return;
|
||||
}
|
||||
lbl_1_bss_0 = HuAudSStreamPlay(4);
|
||||
return;
|
||||
}
|
||||
lbl_1_bss_10 = MGSeqCreate(5, 3, sp10[0], sp10[1], sp10[2], sp10[3]);
|
||||
if (lbl_1_bss_0 >= 0) {
|
||||
return;
|
||||
}
|
||||
lbl_1_bss_0 = HuAudSStreamPlay(1);
|
||||
return;
|
||||
}
|
||||
if (!MGSeqStatGet(lbl_1_bss_10)) {
|
||||
if (var_r27->unk_28 >= 210.0f) {
|
||||
var_r27->unk_24 = 2;
|
||||
fn_1_63C(object);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
s32 fn_1_27EC(void)
|
||||
{
|
||||
return ((UnkM410Struct *)lbl_1_bss_24->data)->unk_00;
|
||||
}
|
||||
|
||||
u32 fn_1_2804(void)
|
||||
{
|
||||
return ((UnkM410Struct *)lbl_1_bss_24->data)->unk_0C;
|
||||
}
|
||||
|
||||
u32 fn_1_281C(void)
|
||||
{
|
||||
return ((UnkM410Struct *)lbl_1_bss_24->data)->unk_14;
|
||||
}
|
||||
|
||||
u32 fn_1_2834(void)
|
||||
{
|
||||
return ((UnkM410Struct *)lbl_1_bss_24->data)->unk_24;
|
||||
}
|
||||
|
||||
void fn_1_284C(s32 arg0)
|
||||
{
|
||||
((UnkM410Struct *)lbl_1_bss_24->data)->unk_2C = arg0;
|
||||
}
|
||||
|
||||
u32 fn_1_2864(void)
|
||||
{
|
||||
return ((UnkM410Struct *)lbl_1_bss_24->data)->unk_2C;
|
||||
}
|
||||
|
||||
void fn_1_287C(s32 arg0)
|
||||
{
|
||||
((UnkM410Struct *)lbl_1_bss_24->data)->unk_30 |= (1 << ((arg0 & 7) * 4));
|
||||
}
|
||||
|
||||
void fn_1_28AC(s32 arg0)
|
||||
{
|
||||
((UnkM410Struct *)lbl_1_bss_24->data)->unk_34 |= (1 << ((arg0 & 3) * 4));
|
||||
}
|
||||
|
||||
s32 fn_1_28DC(void)
|
||||
{
|
||||
return MGSeqStatGet(lbl_1_bss_12) == 0;
|
||||
}
|
||||
|
||||
void fn_1_2914(Vec *arg0, Vec *arg1)
|
||||
{
|
||||
Vec sp10;
|
||||
float var_f29;
|
||||
float var_f28;
|
||||
float var_f27;
|
||||
|
||||
sp10.x = arg1->x - arg0->x;
|
||||
sp10.y = arg1->y - arg0->y;
|
||||
sp10.z = arg1->z - arg0->z;
|
||||
|
||||
Center.x = arg1->x;
|
||||
Center.y = arg1->y;
|
||||
Center.z = arg1->z;
|
||||
|
||||
CRot.x = atan2d(sp10.y, VECMagXZ(&sp10));
|
||||
CRot.y = atan2d(-sp10.x, -sp10.z);
|
||||
CRot.z = 0.0f;
|
||||
|
||||
CZoom = VECMagPoint(sp10.x, sp10.y, sp10.z);
|
||||
}
|
||||
|
||||
void fn_1_2C5C(float arg8, float arg9, float argA, float argB, float argC, float argD)
|
||||
{
|
||||
Vec sp28;
|
||||
Vec sp14;
|
||||
Vec sp8;
|
||||
|
||||
sp28.x = arg8;
|
||||
sp28.y = arg9;
|
||||
sp28.z = argA;
|
||||
|
||||
sp14.x = argB;
|
||||
sp14.y = argC;
|
||||
sp14.z = argD;
|
||||
|
||||
sp8.x = sp14.x - sp28.x;
|
||||
sp8.y = sp14.y - sp28.y;
|
||||
sp8.z = sp14.z - sp28.z;
|
||||
|
||||
Center.x = sp14.x;
|
||||
Center.y = sp14.y;
|
||||
Center.z = sp14.z;
|
||||
|
||||
CRot.x = atan2d(sp8.y, VECMagXZ(&sp8));
|
||||
CRot.y = atan2d(-sp8.x, -sp8.z);
|
||||
CRot.z = 0.0f;
|
||||
|
||||
CZoom = VECMagPoint(sp8.x, sp8.y, sp8.z);
|
||||
}
|
||||
|
||||
float fn_1_2FD4(float arg8, float arg9, float argA)
|
||||
{
|
||||
float var_f31;
|
||||
float var_f30;
|
||||
float var_f29;
|
||||
|
||||
var_f30 = fmod(arg9 - arg8, 360.0);
|
||||
var_f31 = var_f30;
|
||||
if (var_f31 < 0.0f) {
|
||||
var_f31 += 360.0f;
|
||||
}
|
||||
if (var_f31 > 180.0f) {
|
||||
var_f31 -= 360.0f;
|
||||
}
|
||||
var_f29 = fmod(arg8 + (argA * var_f31), 360.0);
|
||||
var_f31 = var_f29;
|
||||
if (var_f31 < 0.0f) {
|
||||
var_f31 += 360.0f;
|
||||
}
|
||||
return var_f31;
|
||||
}
|
||||
|
||||
float fn_1_30F0(float arg8, float arg9)
|
||||
{
|
||||
float var_f31;
|
||||
float var_f30;
|
||||
|
||||
var_f30 = fmod(arg9 - arg8, 360.0);
|
||||
var_f31 = var_f30;
|
||||
if (var_f31 < 0.0f) {
|
||||
var_f31 += 360.0f;
|
||||
}
|
||||
if (var_f31 > 180.0f) {
|
||||
var_f31 -= 360.0f;
|
||||
}
|
||||
return var_f31;
|
||||
}
|
||||
1101
src/REL/m410Dll/player.c
Normal file
1101
src/REL/m410Dll/player.c
Normal file
File diff suppressed because it is too large
Load diff
35
src/REL/m410Dll/stage.c
Normal file
35
src/REL/m410Dll/stage.c
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
#include "game/hsfman.h"
|
||||
#include "game/object.h"
|
||||
|
||||
void fn_1_31FC(omObjData *object);
|
||||
void fn_1_3350(omObjData *object);
|
||||
|
||||
void fn_1_31A4(Process *process)
|
||||
{
|
||||
omObjData *var_r31;
|
||||
|
||||
var_r31 = omAddObjEx(process, 30, 6, 0, -1, fn_1_31FC);
|
||||
var_r31->work[0] = 0;
|
||||
}
|
||||
|
||||
void fn_1_31F8(void) { }
|
||||
|
||||
void fn_1_31FC(omObjData *object)
|
||||
{
|
||||
omSetTra(object, 0.0f, 0.0f, 0.0f);
|
||||
object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M410, 13));
|
||||
Hu3DModelShadowMapSet(object->model[0]);
|
||||
object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M410, 14));
|
||||
object->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M410, 15));
|
||||
object->model[3] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M410, 16));
|
||||
Hu3DModelAttrSet(object->model[3], 0x40000001);
|
||||
object->model[4] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M410, 17));
|
||||
Hu3DModelAttrSet(object->model[4], 0x40000001);
|
||||
object->model[5] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M410, 18));
|
||||
object->func = fn_1_3350;
|
||||
}
|
||||
|
||||
void fn_1_3350(omObjData *object)
|
||||
{
|
||||
Hu3DModelPosSet(object->model[5], Center.x, Center.y, Center.z);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue