marioparty4/src/REL/m446Dll/camera.c
2024-07-27 12:48:18 -04:00

141 lines
No EOL
3.8 KiB
C

#include "REL/m446Dll.h"
#include "math.h"
#include "ext_math.h"
#include "game/hsfman.h"
#include "game/printfunc.h"
#include "game/pad.h"
// bss
Vec lbl_1_bss_8C;
Vec lbl_1_bss_80;
f32 lbl_1_bss_7C;
Vec lbl_1_bss_70;
Vec lbl_1_bss_64;
f32 lbl_1_bss_60;
Vec lbl_1_bss_54;
Vec lbl_1_bss_48;
f32 lbl_1_bss_44;
f32 lbl_1_bss_40;
f32 lbl_1_bss_3C;
s32 lbl_1_bss_38;
// data
Vec lbl_1_data_370 = {0, 1, 0};
s32 fn_1_6778(void) {
Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f);
Hu3DCameraPerspectiveSet(1, 30.0f, 10.0f, 8000.0f, 1.2f);
lbl_1_bss_8C.x = 0.0f;
lbl_1_bss_8C.y = 0.0f;
lbl_1_bss_8C.z = 0.0f;
lbl_1_bss_80.x = 0.0f;
lbl_1_bss_80.y = 0.0f;
lbl_1_bss_80.z = 0.0f;
lbl_1_bss_7C = 2000.0f;
lbl_1_bss_38 = 0;
return 1;
}
void fn_1_68D8(void) {
return;
}
void fn_1_68DC(void) {
Vec sp2C;
Vec sp20;
Vec sp14;
f32 sp10;
f32 temp_f29;
f32 temp_f30;
f32 temp_f31;
if (lbl_1_bss_38 != 0) {
temp_f31 = sin((M_PI * (90.0f * lbl_1_bss_40)) / 180.0);
temp_f31 *= temp_f31;
lbl_1_bss_8C.x = lbl_1_bss_54.x + (temp_f31 * (lbl_1_bss_70.x - lbl_1_bss_54.x));
lbl_1_bss_8C.y = lbl_1_bss_54.y + (temp_f31 * (lbl_1_bss_70.y - lbl_1_bss_54.y));
lbl_1_bss_8C.z = lbl_1_bss_54.z + (temp_f31 * (lbl_1_bss_70.z - lbl_1_bss_54.z));
lbl_1_bss_80.x = lbl_1_bss_48.x + (temp_f31 * (lbl_1_bss_64.x - lbl_1_bss_48.x));
lbl_1_bss_80.y = lbl_1_bss_48.y + (temp_f31 * (lbl_1_bss_64.y - lbl_1_bss_48.y));
lbl_1_bss_80.z = lbl_1_bss_48.z + (temp_f31 * (lbl_1_bss_64.z - lbl_1_bss_48.z));
lbl_1_bss_7C = lbl_1_bss_44 + (temp_f31 * (lbl_1_bss_60 - lbl_1_bss_44));
lbl_1_bss_40 += lbl_1_bss_3C;
if (lbl_1_bss_40 >= 1.0f) {
lbl_1_bss_8C = lbl_1_bss_70;
lbl_1_bss_80 = lbl_1_bss_64;
lbl_1_bss_7C = lbl_1_bss_60;
lbl_1_bss_38 = 0;
}
}
temp_f30 = lbl_1_bss_80.x;
temp_f29 = lbl_1_bss_80.y;
sp10 = lbl_1_bss_80.z;
sp2C.x = (lbl_1_bss_8C.x + (lbl_1_bss_7C * (sind(temp_f29) * cosd(temp_f30))));
sp2C.y = (lbl_1_bss_8C.y + (lbl_1_bss_7C * -sind(temp_f30)));
sp2C.z = (lbl_1_bss_8C.z + (lbl_1_bss_7C * (cosd(temp_f29) * cosd(temp_f30))));
sp20.x = lbl_1_bss_8C.x;
sp20.y = lbl_1_bss_8C.y;
sp20.z = lbl_1_bss_8C.z;
sp14.x = (sind(temp_f29) * sind(temp_f30));
sp14.y = cosd(temp_f30);
sp14.z = (cosd(temp_f29) * sind(temp_f30));
Hu3DCameraPosSet(1, sp2C.x, sp2C.y, sp2C.z, sp14.x, sp14.y, sp14.z, sp20.x, sp20.y, sp20.z);
}
void fn_1_6EA0(Vec* arg0) {
lbl_1_bss_8C = *arg0;
}
void fn_1_6EC4(Vec* arg0) {
lbl_1_bss_80 = *arg0;
}
void fn_1_6EE8(f32 arg0) {
lbl_1_bss_7C = arg0;
}
void fn_1_6EF8(Vec* arg0, Vec* arg1, f32* arg2, s32 arg3) {
Vec* var_r31;
Vec* var_r30;
f32 var_f31;
if (arg0) {
var_r31 = arg0;
} else {
var_r31 = &lbl_1_bss_8C;
}
lbl_1_bss_70 = *var_r31;
if (arg1) {
var_r30 = arg1;
} else {
var_r30 = &lbl_1_bss_80;
}
lbl_1_bss_64 = *var_r30;
if (arg2) {
var_f31 = *arg2;
} else {
var_f31 = lbl_1_bss_7C;
}
lbl_1_bss_60 = var_f31;
lbl_1_bss_54 = lbl_1_bss_8C;
lbl_1_bss_48 = lbl_1_bss_80;
lbl_1_bss_44 = lbl_1_bss_7C;
lbl_1_bss_40 = 0.0f;
lbl_1_bss_3C = 1.0f / arg3;
lbl_1_bss_38 = 1;
}
s32 fn_1_708C(void) {
return lbl_1_bss_38;
}
void fn_1_709C(void) {
lbl_1_bss_80.x += 0.01f * *HuPadSubStkX;
lbl_1_bss_80.z += 0.01f * *HuPadSubStkY;
lbl_1_bss_7C += 0.05f * *HuPadTrigL;
lbl_1_bss_7C -= 0.05f * *HuPadTrigR;
print8(0x20, 0x84, 1.5f, "LOOKAT : x=%.2f y=%.2f z=%.2f", lbl_1_bss_8C.x, lbl_1_bss_8C.y, lbl_1_bss_8C.z);
print8(0x20, 0x94, 1.5f, "ANGLE : x=%.2f y=%.2f z=%.2f", lbl_1_bss_80.x, lbl_1_bss_80.y, lbl_1_bss_80.z);
print8(0x20, 0xA4, 1.5f, "ZOOM : %.2f", lbl_1_bss_7C);
}