151 lines
5 KiB
C
Executable file
151 lines
5 KiB
C
Executable file
#include "REL/m447dll.h"
|
|
#include "game/hsfman.h"
|
|
#include "game/pad.h"
|
|
#include "game/printfunc.h"
|
|
#include "game/process.h"
|
|
|
|
#include "ext_math.h"
|
|
|
|
typedef struct {
|
|
/* 0x00 */ Vec unk00;
|
|
/* 0x0C */ Vec unk0C;
|
|
/* 0x18 */ float unk18;
|
|
} UnkM447Struct_05; // Size 0x1C
|
|
|
|
void fn_1_3564(void);
|
|
void fn_1_3C7C(void);
|
|
void fn_1_3EA8(void);
|
|
|
|
Process* lbl_1_bss_90;
|
|
UnkM447Struct_05 lbl_1_bss_74;
|
|
UnkM447Struct_05 lbl_1_bss_58;
|
|
UnkM447Struct_05 lbl_1_bss_3C;
|
|
s32 lbl_1_bss_38;
|
|
s32 lbl_1_bss_34;
|
|
s32 lbl_1_bss_30;
|
|
float lbl_1_bss_2C;
|
|
float lbl_1_bss_28;
|
|
float lbl_1_bss_24;
|
|
float lbl_1_bss_20;
|
|
float lbl_1_bss_1C;
|
|
float lbl_1_bss_18;
|
|
|
|
s32 fn_1_3130(void) {
|
|
Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f);
|
|
Hu3DCameraPerspectiveSet(1, 55.0f, 10.0f, 8000.0f, 1.2f);
|
|
lbl_1_bss_74.unk00.x = 0.0f;
|
|
lbl_1_bss_74.unk00.y = 400.0f;
|
|
lbl_1_bss_74.unk00.z = 0.0f;
|
|
lbl_1_bss_74.unk0C.x = 0.0f;
|
|
lbl_1_bss_74.unk0C.y = 0.0f;
|
|
lbl_1_bss_74.unk0C.z = 0.0f;
|
|
lbl_1_bss_74.unk18 = 200.0f;
|
|
lbl_1_bss_38 = 0;
|
|
lbl_1_bss_34 = 0;
|
|
lbl_1_bss_30 = 0;
|
|
lbl_1_bss_90 = HuPrcChildCreate(fn_1_3564, 100, 0x2000, 0, lbl_1_bss_4);
|
|
return 1;
|
|
}
|
|
|
|
void fn_1_32E0(void) {
|
|
HuPrcKill(lbl_1_bss_90);
|
|
}
|
|
|
|
void fn_1_330C(const Vec* arg0, s32 arg1) {
|
|
lbl_1_bss_3C.unk00 = *arg0;
|
|
lbl_1_bss_58.unk00 = lbl_1_bss_74.unk00;
|
|
lbl_1_bss_2C = 0.0f;
|
|
lbl_1_bss_20 = 1.0f / arg1;
|
|
lbl_1_bss_38 = 1;
|
|
}
|
|
|
|
void fn_1_33C8(const Vec* arg0, s32 arg1) {
|
|
lbl_1_bss_3C.unk0C = *arg0;
|
|
lbl_1_bss_58.unk0C = lbl_1_bss_74.unk0C;
|
|
lbl_1_bss_28 = 0.0f;
|
|
lbl_1_bss_1C = 1.0f / arg1;
|
|
lbl_1_bss_34 = 1;
|
|
}
|
|
|
|
void fn_1_3484(float arg0, s32 arg1) {
|
|
lbl_1_bss_3C.unk18 = arg0;
|
|
lbl_1_bss_58.unk18 = lbl_1_bss_74.unk18;
|
|
lbl_1_bss_24 = 0.0f;
|
|
lbl_1_bss_18 = 1.0f / arg1;
|
|
lbl_1_bss_30 = 1;
|
|
}
|
|
|
|
void fn_1_351C(Vec* arg0) {
|
|
*arg0 = lbl_1_bss_74.unk00;
|
|
}
|
|
|
|
void fn_1_3540(Vec* arg0) {
|
|
lbl_1_bss_74.unk00 = *arg0;
|
|
}
|
|
|
|
void fn_1_3564(void) {
|
|
Vec sp28;
|
|
Vec sp1C;
|
|
Vec sp10;
|
|
float temp_f31;
|
|
|
|
while (TRUE) {
|
|
if (lbl_1_bss_38 != 0) {
|
|
temp_f31 = sind(90.0f * lbl_1_bss_2C);
|
|
temp_f31 *= temp_f31;
|
|
lbl_1_bss_74.unk00.x = lbl_1_bss_58.unk00.x + temp_f31 * (lbl_1_bss_3C.unk00.x - lbl_1_bss_58.unk00.x);
|
|
lbl_1_bss_74.unk00.y = lbl_1_bss_58.unk00.y + temp_f31 * (lbl_1_bss_3C.unk00.y - lbl_1_bss_58.unk00.y);
|
|
lbl_1_bss_74.unk00.z = lbl_1_bss_58.unk00.z + temp_f31 * (lbl_1_bss_3C.unk00.z - lbl_1_bss_58.unk00.z);
|
|
if ((lbl_1_bss_2C += lbl_1_bss_20) >= 1.0f) {
|
|
lbl_1_bss_74.unk00 = lbl_1_bss_3C.unk00;
|
|
lbl_1_bss_38 = 0;
|
|
}
|
|
}
|
|
if (lbl_1_bss_34 != 0) {
|
|
temp_f31 = sind(90.0f * lbl_1_bss_28);
|
|
temp_f31 *= temp_f31;
|
|
lbl_1_bss_74.unk0C.x = lbl_1_bss_58.unk0C.x + temp_f31 * (lbl_1_bss_3C.unk0C.x - lbl_1_bss_58.unk0C.x);
|
|
lbl_1_bss_74.unk0C.y = lbl_1_bss_58.unk0C.y + temp_f31 * (lbl_1_bss_3C.unk0C.y - lbl_1_bss_58.unk0C.y);
|
|
lbl_1_bss_74.unk0C.z = lbl_1_bss_58.unk0C.z + temp_f31 * (lbl_1_bss_3C.unk0C.z - lbl_1_bss_58.unk0C.z);
|
|
if ((lbl_1_bss_28 += lbl_1_bss_1C) >= 1.0f) {
|
|
lbl_1_bss_74.unk0C = lbl_1_bss_3C.unk0C;
|
|
lbl_1_bss_34 = 0;
|
|
}
|
|
}
|
|
if (lbl_1_bss_30 != 0) {
|
|
temp_f31 = sind(90.0f * lbl_1_bss_24);
|
|
temp_f31 *= temp_f31;
|
|
lbl_1_bss_74.unk18 = lbl_1_bss_58.unk18 + temp_f31 * (lbl_1_bss_3C.unk18 - lbl_1_bss_58.unk18);
|
|
if ((lbl_1_bss_24 += lbl_1_bss_18) >= 1.0f) {
|
|
lbl_1_bss_74.unk18 = lbl_1_bss_3C.unk18;
|
|
lbl_1_bss_30 = 0;
|
|
}
|
|
}
|
|
sp28.x = lbl_1_bss_74.unk00.x + sind(lbl_1_bss_74.unk0C.y) * cosd(lbl_1_bss_74.unk0C.x) * lbl_1_bss_74.unk18;
|
|
sp28.y = lbl_1_bss_74.unk00.y + -sind(lbl_1_bss_74.unk0C.x) * lbl_1_bss_74.unk18;
|
|
sp28.z = lbl_1_bss_74.unk00.z + cosd(lbl_1_bss_74.unk0C.y) * cosd(lbl_1_bss_74.unk0C.x) * lbl_1_bss_74.unk18;
|
|
sp10.x = sind(lbl_1_bss_74.unk0C.y) * sind(lbl_1_bss_74.unk0C.x);
|
|
sp10.y = cosd(lbl_1_bss_74.unk0C.x);
|
|
sp10.z = cosd(lbl_1_bss_74.unk0C.y) * sind(lbl_1_bss_74.unk0C.x);
|
|
sp1C = lbl_1_bss_74.unk00;
|
|
Hu3DCameraPosSet(1, sp28.x, sp28.y, sp28.z, sp10.x, sp10.y, sp10.z, sp1C.x, sp1C.y, sp1C.z);
|
|
HuPrcVSleep();
|
|
}
|
|
}
|
|
|
|
void fn_1_3C7C(void) {
|
|
if (HuPadBtn[0] & 4) {
|
|
lbl_1_bss_74.unk00.x += 0.02f * HuPadStkX[0];
|
|
lbl_1_bss_74.unk00.y += 0.02f * HuPadStkY[0];
|
|
lbl_1_bss_74.unk0C.y -= 0.02f * HuPadSubStkX[0];
|
|
lbl_1_bss_74.unk0C.x += 0.02f * HuPadSubStkY[0];
|
|
lbl_1_bss_74.unk18 += 0.02f * HuPadTrigL[0];
|
|
lbl_1_bss_74.unk18 -= 0.02f * HuPadTrigR[0];
|
|
}
|
|
}
|
|
|
|
void fn_1_3EA8(void) {
|
|
print8(32, 132, 1.5f, "LOOKAT : x=%.2f y=%.2f z=%.2f", lbl_1_bss_74.unk00.x, lbl_1_bss_74.unk00.y, lbl_1_bss_74.unk00.z);
|
|
print8(32, 148, 1.5f, "ANGLE : x=%.2f y=%.2f z=%.2f", lbl_1_bss_74.unk0C.x, lbl_1_bss_74.unk0C.y, lbl_1_bss_74.unk0C.z);
|
|
print8(32, 164, 1.5f, "ZOOM : x=%.2f", lbl_1_bss_74.unk18);
|
|
}
|