Did m443Dll/main.c and map.c

Did the includes for m443Dll/player.c
This commit is contained in:
dbalatoni13 2024-10-28 15:01:14 +01:00
parent 58fc9a2993
commit 4aa1710243
7 changed files with 1621 additions and 205 deletions

1164
src/REL/m443Dll/main.c Normal file

File diff suppressed because it is too large Load diff

183
src/REL/m443Dll/map.c Normal file
View file

@ -0,0 +1,183 @@
#include "datadir_enum.h"
#include "ext_math.h"
#include "game/audio.h"
#include "game/hsfdraw.h"
#include "game/hsfman.h"
#include "game/hsfmotion.h"
#include "REL/m443Dll.h"
void fn_1_4AB4(omObjData *object);
void fn_1_4D14(omObjData *object);
s32 lbl_1_data_240[5] = { 1, 2, 4, 8, 0x10 };
void fn_1_4A5C(Process *process)
{
omObjData *var_r31 = omAddObjEx(process, 0x1E, 0xD, 0, -1, fn_1_4AB4);
var_r31->work[0] = 0;
}
void fn_1_4AB0(void) { }
void fn_1_4AB4(omObjData *object)
{
s32 var_r30;
omSetTra(object, 0.0f, 0.0f, 0.0f);
object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M443, 0));
Hu3DModelLayerSet(object->model[0], 2);
object->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M443, 2));
Hu3DModelLayerSet(object->model[2], 2);
Hu3DModelAttrSet(object->model[2], 1);
object->model[3] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M443, 4));
Hu3DModelLayerSet(object->model[3], 2);
Hu3DMotionSpeedSet(object->model[3], 0.0f);
object->model[4] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M443, 3));
Hu3DModelLayerSet(object->model[4], 2);
for (var_r30 = 0; var_r30 < 4; var_r30++) {
object->model[var_r30 + 5] = Hu3DModelLink(object->model[4]);
Hu3DModelLayerSet(object->model[var_r30 + 5], 2);
Hu3DModelScaleSet(object->model[var_r30 + 5], 0.93f, 0.93f, 0.93f);
}
for (var_r30 = 0; var_r30 < 4; var_r30++) {
object->model[var_r30 + 9] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M443, 1));
Hu3DModelLayerSet(object->model[var_r30 + 9], 2);
Hu3DMotionSpeedSet(object->model[var_r30 + 9], 0.0f);
}
object->work[0] = 0;
object->work[1] = 0;
object->work[2] = 0;
object->work[3] = 0;
object->func = fn_1_4D14;
}
typedef struct M443DllMapUnkStruct {
Vec unk_00[4];
float unk_30;
} M443DllMapUnkStruct; /* size = 0x34 */
void fn_1_4D14(omObjData *object)
{
float var_f31;
float var_f30;
M443DllCameraStruct *var_r30;
s32 var_r29;
s32 var_r28;
var_r28 = 1;
{
Mtx sp5C;
Vec sp20;
Vec sp14;
Vec sp8 = { 0.0f, 0.0f, 0.0f };
Vec sp2C[4] = {
{ -50.0f, 0.0f, -150.0f },
{ 50.0f, 0.0f, -150.0f },
{ -50.0f, 0.0f, -150.0f },
{ 50.0f, 0.0f, -150.0f },
};
for (var_r29 = 0; var_r29 < 5; var_r29++) {
var_r30 = fn_1_40AC(lbl_1_data_240[var_r29]);
sp20.x = var_r30->unk_1C.x + (var_r30->unk_34 * (sind(var_r30->unk_28.y) * cosd(var_r30->unk_28.x)));
sp20.y = var_r30->unk_1C.y + (var_r30->unk_34 * -sind(var_r30->unk_28.x));
sp20.z = var_r30->unk_1C.z + (var_r30->unk_34 * (cosd(var_r30->unk_28.y) * cosd(var_r30->unk_28.x)));
Hu3DModelPosSetV(object->model[var_r29 + 4], &sp20);
fn_1_421C(object->model[var_r29 + 4], lbl_1_data_240[var_r29]);
}
object->work[1] += 1;
var_f31 = 150.0f;
switch (object->work[0]) {
case 0:
if (fn_1_3FFC() == 4) {
object->work[0] += 1;
object->work[1] = 0;
}
break;
case 1:
var_f30 = 1.0f - (0.016666668f * object->work[1]);
if (var_f30 <= 0.0f) {
object->work[0] += 1;
object->work[1] = 0;
var_f30 = 0.0f;
}
var_f31 = var_f31 * var_f30;
break;
case 2:
var_f31 = 0.0f;
if (fn_1_42E4() < 2) {
object->work[1] = 0;
}
if (object->work[1] >= 60.0f) {
object->work[0] += 1;
object->work[1] = 0;
}
break;
case 3:
var_f30 = 0.016666668f * object->work[1];
if (var_f30 > 1.0f) {
object->work[0] += 1;
object->work[1] = 0;
var_r28 = 0;
}
var_f31 = var_f31 * var_f30;
break;
default:
var_r28 = 0;
break;
}
for (var_r29 = 0; var_r29 < 4; var_r29++) {
var_r30 = fn_1_40AC(lbl_1_data_240[var_r29 + 1]);
mtxRot(sp5C, var_r30->unk_28.x, var_r30->unk_28.y, 0.0f);
sp8.z = var_r30->unk_34;
PSMTXMultVec(sp5C, &sp8, &sp14);
PSVECAdd(&var_r30->unk_1C, &sp14, &sp20);
sp2C[var_r29].y += var_f31;
PSMTXMultVec(sp5C, &sp2C[var_r29], &sp14);
PSVECAdd(&sp20, &sp14, &sp20);
Hu3DModelPosSetV(object->model[var_r29 + 9], &sp20);
Hu3DModelRotSet(object->model[var_r29 + 9], var_r30->unk_28.x, var_r30->unk_28.y, 0.0f);
Hu3DModelScaleSet(object->model[var_r29 + 9], 0.15f, 0.15f, 0.15f);
fn_1_421C(object->model[var_r29 + 9], lbl_1_data_240[var_r29 + 1]);
if (fn_1_42E4() >= 1) {
if (object->work[2] == 0) {
object->work[2] = 1;
object->work[3] = 0;
}
Hu3DMotionSpeedSet(object->model[var_r29 + 9], 0.95f);
if (var_r28 == 0) {
Hu3DModelAttrSet(object->model[var_r29 + 9], 1);
}
}
}
if (object->work[2] != 0) {
object->work[3] += 1;
if (object->work[3] >= 60.0f) {
switch (object->work[2]) {
case 1:
case 2:
HuAudFXPlay(0x725);
break;
case 3:
HuAudFXPlay(0x726);
break;
}
object->work[2] += 1;
object->work[3] = 0;
}
}
if (fn_1_42E4() == 2) {
Hu3DMotionSpeedSet(object->model[3], 1.0f);
}
else if (fn_1_42E4() == 5) {
Hu3DModelAttrSet(object->model[3], 1);
}
if (fn_1_42E4() == 5) {
Hu3DModelAttrReset(object->model[2], 1);
Hu3DModelShadowMapSet(object->model[0]);
Hu3DModelShadowMapSet(object->model[2]);
}
}
}

16
src/REL/m443Dll/player.c Normal file
View file

@ -0,0 +1,16 @@
#include "ext_math.h"
#include "game/audio.h"
#include "game/chrman.h"
#include "game/hsfman.h"
#include "game/hsfmotion.h"
#include "game/objsub.h"
#include "game/pad.h"
#include "game/sprite.h"
#include "string.h"
#ifndef __MWERKS__
#include "game/esprite.h"
#include "game/frand.h"
#endif
#include "REL/m443Dll.h"