mirror of https://github.com/n64decomp/mk64.git
Function renaming for math_utils and math_utils_2 (#440)
* Renaming functions in math_utils
This commit is contained in:
parent
26923a31e9
commit
ab2be40711
|
|
@ -4,7 +4,7 @@ glabel func_802B4F60
|
|||
/* 11E578 802B4F68 AFA40070 */ sw $a0, 0x70($sp)
|
||||
/* 11E57C 802B4F6C AFA60078 */ sw $a2, 0x78($sp)
|
||||
/* 11E580 802B4F70 AFA7007C */ sw $a3, 0x7c($sp)
|
||||
/* 11E584 802B4F74 0C0AD4B6 */ jal vec3f_copy
|
||||
/* 11E584 802B4F74 0C0AD4B6 */ jal vec3f_copy_return
|
||||
/* 11E588 802B4F78 27A4001C */ addiu $a0, $sp, 0x1c
|
||||
/* 11E58C 802B4F7C C7AC001C */ lwc1 $f12, 0x1c($sp)
|
||||
/* 11E590 802B4F80 C7A4003C */ lwc1 $f4, 0x3c($sp)
|
||||
|
|
@ -21,7 +21,7 @@ glabel func_802B4F60
|
|||
/* 11E5BC 802B4FAC C7AA006C */ lwc1 $f10, 0x6c($sp)
|
||||
/* 11E5C0 802B4FB0 46088180 */ add.s $f6, $f16, $f8
|
||||
/* 11E5C4 802B4FB4 46065080 */ add.s $f2, $f10, $f6
|
||||
/* 11E5C8 802B4FB8 0C0AD90D */ jal func_802B6434
|
||||
/* 11E5C8 802B4FB8 0C0AD90D */ jal mtxf_translate_vec3f_mat4
|
||||
/* 11E5CC 802B4FBC E7A2002C */ swc1 $f2, 0x2c($sp)
|
||||
/* 11E5D0 802B4FC0 C7A2002C */ lwc1 $f2, 0x2c($sp)
|
||||
/* 11E5D4 802B4FC4 44809000 */ mtc1 $zero, $f18
|
||||
|
|
|
|||
20
src/camera.c
20
src/camera.c
|
|
@ -227,7 +227,7 @@ void func_8001CA78(UNUSED Player *player, Camera *camera, Vec3f arg2, f32 *arg3,
|
|||
arg2[1] = camera->lookAt[1];
|
||||
arg2[2] = camera->lookAt[2];
|
||||
func_802B6540(sp74, 0, 1, 0, -0x00008000);
|
||||
func_802B63B8(sp5C, sp74);
|
||||
mtxf_translate_vec3f_mat3(sp5C, sp74);
|
||||
if (gCurrentCourseId == COURSE_TOADS_TURNPIKE) {
|
||||
var_f14 = sp5C[0];
|
||||
} else {
|
||||
|
|
@ -238,7 +238,7 @@ void func_8001CA78(UNUSED Player *player, Camera *camera, Vec3f arg2, f32 *arg3,
|
|||
arg2[0] += (var_f14 - camera->lookAt[0]) * 1;
|
||||
arg2[1] += (temp_f18 - camera->lookAt[1]) * 1;
|
||||
arg2[2] += (temp_f16 - camera->lookAt[2]) * 1;
|
||||
func_802B63B8(sp68, sp74);
|
||||
mtxf_translate_vec3f_mat3(sp68, sp74);
|
||||
if (gCurrentCourseId == COURSE_TOADS_TURNPIKE) {
|
||||
var_f14 = sp68[0];
|
||||
} else {
|
||||
|
|
@ -356,7 +356,7 @@ void func_8001CCEC(Player *player, Camera *camera, Vec3f arg2, f32 *arg3, f32 *a
|
|||
sp84[2] /= 3.0f;
|
||||
}
|
||||
func_802B6540(sp9C, 0, 1, 0, arg7);
|
||||
func_802B63B8(sp84, sp9C);
|
||||
mtxf_translate_vec3f_mat3(sp84, sp9C);
|
||||
|
||||
x = player->pos[0] + sp84[0];
|
||||
z = player->pos[2] + sp84[2];
|
||||
|
|
@ -370,7 +370,7 @@ void func_8001CCEC(Player *player, Camera *camera, Vec3f arg2, f32 *arg3, f32 *a
|
|||
} else {
|
||||
arg2[1] += ((y - camera->lookAt[1]) * 0.5);
|
||||
}
|
||||
func_802B63B8(sp90, sp9C);
|
||||
mtxf_translate_vec3f_mat3(sp90, sp9C);
|
||||
x = player->pos[0] + sp90[0];
|
||||
z = player->pos[2] + sp90[2];
|
||||
if ((player->unk_0BC & 0x01000000) != 0x01000000) {
|
||||
|
|
@ -424,14 +424,14 @@ void func_8001D53C(Player *player, Camera *camera, Vec3f arg2, f32 *arg3, f32 *a
|
|||
arg2[1] = camera->lookAt[1];
|
||||
arg2[2] = camera->lookAt[2];
|
||||
func_802B6540(sp74, 0.0f, 1.0f, 0.0f, arg6);
|
||||
func_802B63B8(sp5C, sp74);
|
||||
mtxf_translate_vec3f_mat3(sp5C, sp74);
|
||||
stackPadding0 = player->pos[0] + sp5C[0];
|
||||
stackPadding2 = player->pos[2] + sp5C[2];
|
||||
stackPadding1 = player->pos[1] + sp5C[1];
|
||||
arg2[0] += (stackPadding0 - camera->lookAt[0]) * 1;
|
||||
arg2[2] += (stackPadding2 - camera->lookAt[2]) * 1;
|
||||
arg2[1] += (stackPadding1 - camera->lookAt[1]) * 1;
|
||||
func_802B63B8(sp68, sp74);
|
||||
mtxf_translate_vec3f_mat3(sp68, sp74);
|
||||
stackPadding0 = player->pos[0] + sp68[0];
|
||||
stackPadding2 = player->pos[2] + sp68[2];
|
||||
stackPadding1 = sp68[1] + (player->unk_074 + 1.5);
|
||||
|
|
@ -467,7 +467,7 @@ void func_8001D794(Player *player, Camera *camera, Vec3f arg2, f32 *arg3, f32 *a
|
|||
arg2[2] = camera->lookAt[2];
|
||||
|
||||
func_802B6540(sp6C, 0, 1, 0, arg6);
|
||||
func_802B63B8(sp54, sp6C);
|
||||
mtxf_translate_vec3f_mat3(sp54, sp6C);
|
||||
|
||||
test1 = player->pos[0] + sp54[0];
|
||||
test3 = player->pos[2] + sp54[2];
|
||||
|
|
@ -476,7 +476,7 @@ void func_8001D794(Player *player, Camera *camera, Vec3f arg2, f32 *arg3, f32 *a
|
|||
arg2[1] += (test2 - camera->lookAt[1]) * 1;
|
||||
arg2[2] += (test3 - camera->lookAt[2]) * 1;
|
||||
|
||||
func_802B63B8(sp60, sp6C);
|
||||
mtxf_translate_vec3f_mat3(sp60, sp6C);
|
||||
|
||||
test1 = player->pos[0] + sp60[0];
|
||||
test3 = player->pos[2] + sp60[2];
|
||||
|
|
@ -573,7 +573,7 @@ void func_8001D944(Player *player, Camera *camera, Vec3f arg2, f32 *arg3, f32 *a
|
|||
sp84[2] /= 3.0f;
|
||||
}
|
||||
func_802B6540(sp9C, 0, 1, 0, arg7);
|
||||
func_802B63B8(sp84, sp9C);
|
||||
mtxf_translate_vec3f_mat3(sp84, sp9C);
|
||||
|
||||
x = player->pos[0] + sp84[0];
|
||||
z = player->pos[2] + sp84[2];
|
||||
|
|
@ -587,7 +587,7 @@ void func_8001D944(Player *player, Camera *camera, Vec3f arg2, f32 *arg3, f32 *a
|
|||
} else {
|
||||
arg2[1] += ((y - camera->lookAt[1]) * 0.5);
|
||||
}
|
||||
func_802B63B8(sp90, sp9C);
|
||||
mtxf_translate_vec3f_mat3(sp90, sp9C);
|
||||
x = player->pos[0] + sp90[0];
|
||||
z = player->pos[2] + sp90[2];
|
||||
if ((player->unk_0BC & 0x01000000) != 0x01000000) {
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ UNUSED void func_8003DC50(Player *player, Vec3f arg1) {
|
|||
arg1[2] = thing2;
|
||||
}
|
||||
arg1[1] = 0.0f;
|
||||
func_802B63B8(arg1, player->unk_174);
|
||||
mtxf_translate_vec3f_mat3(arg1, player->unk_174);
|
||||
}
|
||||
|
||||
UNUSED void func_8003DE4C(Player *player, Vec3f arg1) {
|
||||
|
|
@ -55,7 +55,7 @@ UNUSED void func_8003DE4C(Player *player, Vec3f arg1) {
|
|||
arg1[2] = thing2;
|
||||
}
|
||||
arg1[1] = 0.0f;
|
||||
func_802B63B8(arg1, player->unk_174);
|
||||
mtxf_translate_vec3f_mat3(arg1, player->unk_174);
|
||||
}
|
||||
// Stick to ground?
|
||||
void func_8003E048(Player *player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32 *arg4, f32 *arg5, f32 *arg6, f32 *arg7) {
|
||||
|
|
@ -81,7 +81,7 @@ void func_8003E048(Player *player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32 *arg4
|
|||
arg3[2] = (-(player->unk_0C4 / 182) * 0x32);
|
||||
}
|
||||
arg3[1] = 0.0f;
|
||||
func_802B63B8(arg3, player->unk_174);
|
||||
mtxf_translate_vec3f_mat3(arg3, player->unk_174);
|
||||
}
|
||||
|
||||
void func_8003E37C(Player *player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32 *arg4, f32 *arg5, f32 *arg6, f32 *arg7) {
|
||||
|
|
@ -109,7 +109,7 @@ void func_8003E37C(Player *player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32 *arg4
|
|||
arg3[2] = (-(player->unk_0C4 / 182) * 0x32);
|
||||
}
|
||||
arg3[1] = 0.0f;
|
||||
func_802B63B8(arg3, player->unk_174);
|
||||
mtxf_translate_vec3f_mat3(arg3, player->unk_174);
|
||||
}
|
||||
|
||||
void func_8003E6EC(Player *player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32 *arg4, f32 *arg5, f32 *arg6, f32 *arg7) {
|
||||
|
|
@ -130,7 +130,7 @@ void func_8003E6EC(Player *player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32 *arg4
|
|||
arg3[2] = (-(player->unk_0C4 / 182) * 0x32);
|
||||
}
|
||||
arg3[1] = 0.0f;
|
||||
func_802B63B8(arg3, player->unk_174);
|
||||
mtxf_translate_vec3f_mat3(arg3, player->unk_174);
|
||||
}
|
||||
|
||||
void func_8003E9EC(Player *player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32 *arg4, f32 *arg5, f32 *arg6, f32 *arg7) {
|
||||
|
|
@ -161,7 +161,7 @@ void func_8003E9EC(Player *player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32 *arg4
|
|||
}
|
||||
}
|
||||
arg3[1] = 0.0f;
|
||||
func_802B63B8(arg3, player->unk_174);
|
||||
mtxf_translate_vec3f_mat3(arg3, player->unk_174);
|
||||
}
|
||||
|
||||
void func_8003EE2C(Player *player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32 *arg4, f32 *arg5, f32 *arg6, f32 *arg7) {
|
||||
|
|
@ -182,7 +182,7 @@ void func_8003EE2C(Player *player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32 *arg4
|
|||
arg3[2] = (-(player->unk_0C4 / 182) * 0x32);
|
||||
}
|
||||
arg3[1] = 0.0f;
|
||||
func_802B63B8(arg3, player->unk_174);
|
||||
mtxf_translate_vec3f_mat3(arg3, player->unk_174);
|
||||
}
|
||||
|
||||
void func_8003F138(Player *player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32 *arg4, f32 *arg5, f32 *arg6, f32 *arg7) {
|
||||
|
|
@ -209,7 +209,7 @@ void func_8003F138(Player *player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32 *arg4
|
|||
}
|
||||
arg3[1] = 0.0f;
|
||||
arg3[2] = 0.0f;
|
||||
func_802B63B8(arg3, player->unk_174);
|
||||
mtxf_translate_vec3f_mat3(arg3, player->unk_174);
|
||||
}
|
||||
|
||||
void func_8003F46C(Player *player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32 *arg4, f32 *arg5, f32 *arg6, f32 *arg7) {
|
||||
|
|
|
|||
|
|
@ -7039,7 +7039,7 @@ void func_8008275C(s32 objectIndex) {
|
|||
break;
|
||||
case 2:
|
||||
func_8008B78C(objectIndex);
|
||||
func_80040EC4(D_80165C18[objectIndex].unk_01C, D_80165C18[objectIndex].pos);
|
||||
vec3f_copy(D_80165C18[objectIndex].unk_01C, D_80165C18[objectIndex].pos);
|
||||
func_8000D940(D_80165C18[objectIndex].unk_010, &D_80165C18[objectIndex].unk_0C6, D_80165C18[objectIndex].unk_034, 0.0f, 0);
|
||||
D_80165C18[objectIndex].unk_028[0] *= 2.0;
|
||||
D_80165C18[objectIndex].unk_028[1] *= 2.5;
|
||||
|
|
@ -8146,7 +8146,7 @@ void func_80085AA8(void) {
|
|||
temp_s0 = &D_80165C18[temp_s2];
|
||||
if (temp_s0->unk_0A6 != 0) {
|
||||
func_800859C8(temp_s2, var_s4);
|
||||
func_80040EC4(temp_s0->unk_01C, temp_s0->unk_028);
|
||||
vec3f_copy(temp_s0->unk_01C, temp_s0->unk_028);
|
||||
func_8000D940(temp_s0->unk_028, &temp_s0->unk_084[8], temp_s0->unk_034, temp_s0->unk_044, 0);
|
||||
temp_s0->unk_0BE[1] = get_angle_between_points(temp_s0->unk_01C, temp_s0->unk_028);
|
||||
func_8008BF18(temp_s2);
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@ void vec3s_clear(Vec3s arg0) {
|
|||
arg0[0] = arg0[1] = arg0[2] = 0;
|
||||
}
|
||||
|
||||
void vec3f_copy_dupe(Vec3f dest, Vec3f src) {
|
||||
void vec3f_copy_return_dupe(Vec3f dest, Vec3f src) {
|
||||
dest[0] = src[0];
|
||||
dest[1] = src[1];
|
||||
dest[2] = src[2];
|
||||
|
|
@ -87,7 +87,7 @@ void func_80282048(void) {
|
|||
UNUSED void func_80282050(Vec3f dest, Vec3f src, s16 angle) {
|
||||
Vec3f sp2C;
|
||||
|
||||
vec3f_copy_dupe(sp2C, src);
|
||||
vec3f_copy_return_dupe(sp2C, src);
|
||||
dest[0] = (sp2C[2] * sins(angle)) + (sp2C[0] * coss(angle));
|
||||
dest[1] = sp2C[1];
|
||||
dest[2] = (sp2C[2] * coss(angle)) - (sp2C[0] * sins(angle));
|
||||
|
|
@ -96,7 +96,7 @@ UNUSED void func_80282050(Vec3f dest, Vec3f src, s16 angle) {
|
|||
UNUSED void func_802820F8(f32 *dest, f32 *src, s16 angle) {
|
||||
Vec3f sp2C;
|
||||
|
||||
vec3f_copy_dupe(sp2C, src);
|
||||
vec3f_copy_return_dupe(sp2C, src);
|
||||
dest[2] = (sp2C[2] * coss(angle)) - (sp2C[1] * sins(angle));
|
||||
dest[1] = (sp2C[2] * sins(angle)) + (sp2C[1] * coss(angle));
|
||||
dest[0] = sp2C[0];
|
||||
|
|
@ -231,7 +231,7 @@ UNUSED void func_802825C8(Vec3f arg0, Vec3f arg1, Vec3f arg2, Vec3s arg3) {
|
|||
Vec3f sp30;
|
||||
|
||||
// What's up with this? Why do we copy arg1 to an unused local variable?
|
||||
vec3f_copy_dupe(sp3C, arg1);
|
||||
vec3f_copy_return_dupe(sp3C, arg1);
|
||||
sp30[2] = -((arg2[2] * coss(arg3[0])) - (arg2[1] * sins(arg3[0])));
|
||||
sp30[1] = (arg2[2] * sins(arg3[0])) + (arg2[1] * coss(arg3[0]));
|
||||
sp30[0] = arg2[0];
|
||||
|
|
@ -581,13 +581,13 @@ s32 func_80283648(Camera *camera) {
|
|||
struct CinematicCamera *new_var = &D_802876E0;
|
||||
|
||||
func_80283428();
|
||||
vec3f_copy_dupe(sp58, camera->pos);
|
||||
vec3f_copy_dupe(sp4C, camera->lookAt);
|
||||
vec3f_copy_dupe(sp40, camera->up);
|
||||
vec3f_copy_return_dupe(sp58, camera->pos);
|
||||
vec3f_copy_return_dupe(sp4C, camera->lookAt);
|
||||
vec3f_copy_return_dupe(sp40, camera->up);
|
||||
new_var->cutscene = func_8028336C(new_var, camera);
|
||||
if (new_var->cutscene != 0) {
|
||||
vec3f_copy_dupe(new_var->lookAt, camera->pos);
|
||||
vec3f_copy_dupe(new_var->pos, camera->lookAt);
|
||||
vec3f_copy_return_dupe(new_var->lookAt, camera->pos);
|
||||
vec3f_copy_return_dupe(new_var->pos, camera->lookAt);
|
||||
play_cutscene(new_var);
|
||||
func_80282454(new_var->lookAt, new_var->pos, &sp64, &sp6E, &sp6C);
|
||||
if (sp6E >= 0x3800) {
|
||||
|
|
@ -615,8 +615,8 @@ s32 func_80283648(Camera *camera) {
|
|||
camera->up[0] = sins(var_f2) * coss(sp6C);
|
||||
camera->up[1] = coss(var_f2);
|
||||
camera->up[2] = -sins(var_f2) * sins(sp6C);
|
||||
vec3f_copy_dupe(camera->pos, new_var->lookAt);
|
||||
vec3f_copy_dupe(camera->lookAt, new_var->pos);
|
||||
vec3f_copy_return_dupe(camera->pos, new_var->lookAt);
|
||||
vec3f_copy_return_dupe(camera->lookAt, new_var->pos);
|
||||
if ((gGamestate == CREDITS_SEQUENCE) && (gIsMirrorMode != 0)) {
|
||||
camera->pos[0] = -camera->pos[0];
|
||||
camera->lookAt[0] = -camera->lookAt[0];
|
||||
|
|
@ -625,9 +625,9 @@ s32 func_80283648(Camera *camera) {
|
|||
func_80282F44(0, new_var, camera);
|
||||
func_80282F44(1, new_var, camera);
|
||||
func_80283100(new_var, gCameraZoom);
|
||||
vec3f_copy_dupe(new_var->unk30, camera->pos);
|
||||
vec3f_copy_dupe(new_var->unk24, camera->lookAt);
|
||||
vec3f_copy_dupe(new_var->unk3C, camera->up);
|
||||
vec3f_copy_return_dupe(new_var->unk30, camera->pos);
|
||||
vec3f_copy_return_dupe(new_var->unk24, camera->lookAt);
|
||||
vec3f_copy_return_dupe(new_var->unk3C, camera->up);
|
||||
return D_802876D8;
|
||||
}
|
||||
|
||||
|
|
@ -892,7 +892,7 @@ void func_80283EA0(struct CinematicCamera *camera) {
|
|||
}
|
||||
|
||||
void func_80283ED0(struct CinematicCamera *camera) {
|
||||
vec3f_copy_dupe(camera->pos, gPlayerTwo->pos);
|
||||
vec3f_copy_return_dupe(camera->pos, gPlayerTwo->pos);
|
||||
}
|
||||
|
||||
void func_80283EF8(struct CinematicCamera *camera) {
|
||||
|
|
@ -908,7 +908,7 @@ void func_80283F6C(struct CinematicCamera *camera) {
|
|||
}
|
||||
|
||||
void func_80283FCC(struct CinematicCamera *camera) {
|
||||
vec3f_copy_dupe(camera->pos, gPlayerThree->pos);
|
||||
vec3f_copy_return_dupe(camera->pos, gPlayerThree->pos);
|
||||
}
|
||||
|
||||
void func_80283FF4(struct CinematicCamera *camera) {
|
||||
|
|
|
|||
|
|
@ -114,7 +114,7 @@ void vec3f_set_dupe(Vec3f, f32, f32, f32);
|
|||
void vec3s_set_dupe(Vec3s, s16, s16, s16);
|
||||
void vec3f_clear(Vec3f);
|
||||
void vec3s_clear(Vec3s);
|
||||
void vec3f_copy_dupe(Vec3f, Vec3f);
|
||||
void vec3f_copy_return_dupe(Vec3f, Vec3f);
|
||||
void vec3s_copy_dupe(Vec3s, Vec3s);
|
||||
void func_80282040(void);
|
||||
void func_80282048(void);
|
||||
|
|
|
|||
|
|
@ -45,10 +45,10 @@ UNUSED s32 func_80040EA4(s32 *arg0, s32 arg1) {
|
|||
return phi_v1;
|
||||
}
|
||||
|
||||
void func_80040EC4(Vec3f arg0, Vec3f arg1) {
|
||||
arg0[0] = arg1[0];
|
||||
arg0[1] = arg1[1];
|
||||
arg0[2] = arg1[2];
|
||||
void vec3f_copy(Vec3f dest, Vec3f arg1) {
|
||||
dest[0] = arg1[0];
|
||||
dest[1] = arg1[1];
|
||||
dest[2] = arg1[2];
|
||||
}
|
||||
|
||||
s32 f32_step_up_towards(f32 *value, f32 target, f32 step) {
|
||||
|
|
@ -342,6 +342,7 @@ Vec3f *vec3f_set_dupe_2_electric_boogaloo(Vec3f arg0, f32 arg1, f32 arg2, f32 ar
|
|||
return (Vec3f *) &arg0;
|
||||
}
|
||||
|
||||
// look like normalise vector
|
||||
Vec3f *func_80041530(Vec3f dest) {
|
||||
f32 invsqrt = 1.0f / sqrtf(dest[0] * dest[0] + dest[1] * dest[1] + dest[2] * dest[2]);
|
||||
|
||||
|
|
@ -351,23 +352,23 @@ Vec3f *func_80041530(Vec3f dest) {
|
|||
return (Vec3f *) &dest;
|
||||
}
|
||||
|
||||
Vec3f *func_80041594(Vec3f arg0, Vec3f arg1, Vec3f arg2) {
|
||||
Vec3f *func_80041594(Vec3f dest, Vec3f arg1, Vec3f arg2) {
|
||||
|
||||
arg0[0] = (arg1[1] * arg2[2]) - (arg2[1] * arg1[2]);
|
||||
arg0[1] = (arg1[2] * arg2[0]) - (arg2[2] * arg1[0]);
|
||||
arg0[2] = (arg1[0] * arg2[1]) - (arg2[0] * arg1[1]);
|
||||
dest[0] = (arg1[1] * arg2[2]) - (arg2[1] * arg1[2]);
|
||||
dest[1] = (arg1[2] * arg2[0]) - (arg2[2] * arg1[0]);
|
||||
dest[2] = (arg1[0] * arg2[1]) - (arg2[0] * arg1[1]);
|
||||
|
||||
return (Vec3f *) &arg0;
|
||||
return (Vec3f *) &dest;
|
||||
}
|
||||
|
||||
UNUSED s32 func_80041608(f32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4) {
|
||||
f32 temp_f0;
|
||||
f32 temp_f2;
|
||||
UNUSED s32 func_80041608(f32 x1, f32 y1, f32 x2, f32 y2, f32 distance) {
|
||||
f32 x;
|
||||
f32 y;
|
||||
s32 ret = 0;
|
||||
|
||||
temp_f0 = arg2 - arg0;
|
||||
temp_f2 = arg3 - arg1;
|
||||
if (((temp_f0 * temp_f0) + (temp_f2 * temp_f2)) <= (arg4 * arg4)) {
|
||||
x = x2 - x1;
|
||||
y = y2 - y1;
|
||||
if (((x * x) + (y * y)) <= (distance * distance)) {
|
||||
ret = 1;
|
||||
}
|
||||
return ret;
|
||||
|
|
@ -478,117 +479,124 @@ UNUSED void func_80041A70(void) {
|
|||
|
||||
}
|
||||
|
||||
void func_80041A78(Mat4 arg0, s32 arg1, s32 arg2) {
|
||||
void mtfx_translation_x_y(Mat4 arg0, s32 x, s32 y) {
|
||||
arg0[0][0] = 1.0f;
|
||||
arg0[1][1] = 1.0f;
|
||||
arg0[2][2] = 1.0f;
|
||||
arg0[1][0] = 0.0f;
|
||||
arg0[2][0] = 0.0f;
|
||||
arg0[0][1] = 0.0f;
|
||||
arg0[3][0] = arg1;
|
||||
arg0[3][0] = x;
|
||||
arg0[2][1] = 0.0f;
|
||||
arg0[0][2] = 0.0f;
|
||||
arg0[1][2] = 0.0f;
|
||||
arg0[3][2] = 0.0f;
|
||||
arg0[3][1] = arg2;
|
||||
arg0[3][1] = y;
|
||||
arg0[0][3] = 0.0f;
|
||||
arg0[1][3] = 0.0f;
|
||||
arg0[2][3] = 0.0f;
|
||||
arg0[3][3] = 1.0f;
|
||||
|
||||
/*
|
||||
* 1 0 0 x
|
||||
* 0 1 0 y
|
||||
* 0 0 1 0
|
||||
* 0 0 0 1
|
||||
*/
|
||||
}
|
||||
|
||||
void func_80041AD8(Mat4 arg0, u16 arg1) {
|
||||
f32 sp1C = sins(arg1);
|
||||
f32 temp_f0 = coss(arg1);
|
||||
|
||||
arg0[0][0] = temp_f0;
|
||||
arg0[1][0] = -sp1C;
|
||||
arg0[1][1] = temp_f0;
|
||||
arg0[0][1] = sp1C;
|
||||
arg0[2][0] = 0.0f;
|
||||
arg0[3][0] = 0.0f;
|
||||
arg0[2][1] = 0.0f;
|
||||
arg0[3][1] = 0.0f;
|
||||
arg0[0][2] = 0.0f;
|
||||
arg0[1][2] = 0.0f;
|
||||
arg0[3][2] = 0.0f;
|
||||
arg0[0][3] = 0.0f;
|
||||
arg0[1][3] = 0.0f;
|
||||
arg0[2][3] = 0.0f;
|
||||
arg0[2][2] = 1.0f;
|
||||
arg0[3][3] = 1.0f;
|
||||
void mtxf_u16_rotate_z(Mat4 dest, u16 angle) {
|
||||
f32 sin_theta = sins(angle);
|
||||
f32 cos_theta = coss(angle);
|
||||
|
||||
dest[0][0] = cos_theta;
|
||||
dest[1][0] = -sin_theta;
|
||||
dest[1][1] = cos_theta;
|
||||
dest[0][1] = sin_theta;
|
||||
dest[2][0] = 0.0f;
|
||||
dest[3][0] = 0.0f;
|
||||
dest[2][1] = 0.0f;
|
||||
dest[3][1] = 0.0f;
|
||||
dest[0][2] = 0.0f;
|
||||
dest[1][2] = 0.0f;
|
||||
dest[3][2] = 0.0f;
|
||||
dest[0][3] = 0.0f;
|
||||
dest[1][3] = 0.0f;
|
||||
dest[2][3] = 0.0f;
|
||||
dest[2][2] = 1.0f;
|
||||
dest[3][3] = 1.0f;
|
||||
}
|
||||
|
||||
void func_80041B68(Mat4 arg0, f32 arg1) {
|
||||
arg0[1][0] = 0.0f;
|
||||
arg0[2][0] = 0.0f;
|
||||
arg0[3][0] = 0.0f;
|
||||
arg0[0][1] = 0.0f;
|
||||
arg0[2][1] = 0.0f;
|
||||
arg0[3][1] = 0.0f;
|
||||
arg0[0][2] = 0.0f;
|
||||
arg0[1][2] = 0.0f;
|
||||
arg0[3][2] = 0.0f;
|
||||
arg0[0][3] = 0.0f;
|
||||
arg0[1][3] = 0.0f;
|
||||
arg0[2][3] = 0.0f;
|
||||
arg0[2][2] = 1.0f;
|
||||
arg0[3][3] = 1.0f;
|
||||
arg0[0][0] = arg1;
|
||||
arg0[1][1] = arg1;
|
||||
void mtxf_scale_x_y(Mat4 dest, f32 scale) {
|
||||
dest[1][0] = 0.0f;
|
||||
dest[2][0] = 0.0f;
|
||||
dest[3][0] = 0.0f;
|
||||
dest[0][1] = 0.0f;
|
||||
dest[2][1] = 0.0f;
|
||||
dest[3][1] = 0.0f;
|
||||
dest[0][2] = 0.0f;
|
||||
dest[1][2] = 0.0f;
|
||||
dest[3][2] = 0.0f;
|
||||
dest[0][3] = 0.0f;
|
||||
dest[1][3] = 0.0f;
|
||||
dest[2][3] = 0.0f;
|
||||
dest[2][2] = 1.0f;
|
||||
dest[3][3] = 1.0f;
|
||||
dest[0][0] = scale;
|
||||
dest[1][1] = scale;
|
||||
}
|
||||
|
||||
void func_80041BBC(Mat4 arg0, u16 arg1, f32 arg2) {
|
||||
f32 sp1C = sins(arg1);
|
||||
f32 temp_f12 = coss(arg1) * arg2;
|
||||
UNUSED void mtxf_rotate_z_scale_x_y(Mat4 dest, u16 angle, f32 scale) {
|
||||
f32 sin_theta = sins(angle);
|
||||
f32 cos_theta = coss(angle) * scale;
|
||||
|
||||
arg0[2][0] = 0.0f;
|
||||
arg0[0][0] = temp_f12;
|
||||
arg0[1][1] = temp_f12;
|
||||
arg0[2][1] = 0.0f;
|
||||
arg0[1][0] = -sp1C * arg2;
|
||||
arg0[0][2] = 0.0f;
|
||||
arg0[1][2] = 0.0f;
|
||||
arg0[0][1] = sp1C * arg2;
|
||||
arg0[3][2] = 0.0f;
|
||||
arg0[0][3] = 0.0f;
|
||||
arg0[1][3] = 0.0f;
|
||||
arg0[2][3] = 0.0f;
|
||||
arg0[3][0] = 1.0f;
|
||||
arg0[3][1] = 1.0f;
|
||||
arg0[2][2] = 1.0f;
|
||||
arg0[3][3] = 1.0f;
|
||||
dest[2][0] = 0.0f;
|
||||
dest[0][0] = cos_theta;
|
||||
dest[1][1] = cos_theta;
|
||||
dest[2][1] = 0.0f;
|
||||
dest[1][0] = -sin_theta * scale;
|
||||
dest[0][2] = 0.0f;
|
||||
dest[1][2] = 0.0f;
|
||||
dest[0][1] = sin_theta * scale;
|
||||
dest[3][2] = 0.0f;
|
||||
dest[0][3] = 0.0f;
|
||||
dest[1][3] = 0.0f;
|
||||
dest[2][3] = 0.0f;
|
||||
dest[3][0] = 1.0f;
|
||||
dest[3][1] = 1.0f;
|
||||
dest[2][2] = 1.0f;
|
||||
dest[3][3] = 1.0f;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief arg1 and arg2 are s32's into floats?!?
|
||||
*
|
||||
* @param arg0
|
||||
* @param arg1
|
||||
* @param arg2
|
||||
* @param arg3
|
||||
* @param arg4
|
||||
*
|
||||
* @param dest
|
||||
* @param x
|
||||
* @param y
|
||||
* @param angle
|
||||
* @param scale
|
||||
*/
|
||||
void func_80041C64(Mat4 arg0, s32 arg1, s32 arg2, u16 arg3, f32 arg4) {
|
||||
f32 sp24 = sins(arg3);
|
||||
f32 temp_f12 = coss(arg3) * arg4;
|
||||
void mtxf_translation_x_y_rotate_z_scale_x_y(Mat4 dest, s32 x, s32 y, u16 angle, f32 scale) {
|
||||
f32 sin_theta = sins(angle);
|
||||
f32 cos_theta = coss(angle) * scale;
|
||||
|
||||
arg0[2][0] = 0.0f;
|
||||
arg0[0][0] = temp_f12;
|
||||
arg0[1][0] = (-sp24) * arg4;
|
||||
arg0[3][0] = (f32) arg1;
|
||||
arg0[1][1] = temp_f12;
|
||||
arg0[0][1] = sp24 * arg4;
|
||||
arg0[2][1] = 0.0f;
|
||||
arg0[3][1] = (f32) arg2;
|
||||
arg0[0][2] = 0.0f;
|
||||
arg0[1][2] = 0.0f;
|
||||
arg0[2][2] = 1.0f;
|
||||
arg0[3][3] = 1.0f;
|
||||
arg0[3][2] = 0.0f;
|
||||
arg0[0][3] = 0.0f;
|
||||
arg0[1][3] = 0.0f;
|
||||
arg0[2][3] = 0.0f;
|
||||
dest[2][0] = 0.0f;
|
||||
dest[0][0] = cos_theta;
|
||||
dest[1][0] = (-sin_theta) * scale;
|
||||
dest[3][0] = (f32) x;
|
||||
dest[1][1] = cos_theta;
|
||||
dest[0][1] = sin_theta * scale;
|
||||
dest[2][1] = 0.0f;
|
||||
dest[3][1] = (f32) y;
|
||||
dest[0][2] = 0.0f;
|
||||
dest[1][2] = 0.0f;
|
||||
dest[2][2] = 1.0f;
|
||||
dest[3][3] = 1.0f;
|
||||
dest[3][2] = 0.0f;
|
||||
dest[0][3] = 0.0f;
|
||||
dest[1][3] = 0.0f;
|
||||
dest[2][3] = 0.0f;
|
||||
}
|
||||
|
||||
// Likely D_801658**[index] = 1; * denotes wildcard
|
||||
|
|
@ -631,59 +639,59 @@ void func_80041EF4(void) {
|
|||
extern s32 gMatrixHudCount;
|
||||
//void func_80022180(Mtx*, Mat4);
|
||||
|
||||
UNUSED void func_80041F54(s32 arg0, s32 arg1) {
|
||||
UNUSED void func_80041F54(s32 x, s32 y) {
|
||||
Mat4 matrix;
|
||||
|
||||
func_80041A78(matrix, arg0, arg1);
|
||||
mtfx_translation_x_y(matrix, x, y);
|
||||
func_80022180(&gGfxPool->mtxHud[gMatrixHudCount], matrix);
|
||||
|
||||
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxHud[gMatrixHudCount++]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
}
|
||||
|
||||
UNUSED void func_80042000(u16 arg0) {
|
||||
UNUSED void func_80042000(u16 angle_z) {
|
||||
Mat4 matrix;
|
||||
|
||||
func_80041AD8(matrix, arg0);
|
||||
mtxf_u16_rotate_z(matrix, angle_z);
|
||||
func_80022180(&gGfxPool->mtxHud[gMatrixHudCount], matrix);
|
||||
|
||||
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxHud[gMatrixHudCount++]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
}
|
||||
|
||||
UNUSED void func_800420A8(f32 arg0) {
|
||||
UNUSED void func_800420A8(f32 scale) {
|
||||
Mat4 matrix;
|
||||
|
||||
func_80041B68(matrix, arg0);
|
||||
mtxf_scale_x_y(matrix, scale);
|
||||
func_80022180(&gGfxPool->mtxHud[gMatrixHudCount], matrix);
|
||||
|
||||
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxHud[gMatrixHudCount++]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
|
||||
}
|
||||
|
||||
UNUSED void func_8004214C(u16 arg1, f32 arg2) {
|
||||
UNUSED void func_8004214C(u16 angle, f32 scale) {
|
||||
Mat4 matrix;
|
||||
|
||||
func_80041BBC(matrix, arg1, arg2);
|
||||
mtxf_rotate_z_scale_x_y(matrix, angle, scale);
|
||||
func_80022180(&gGfxPool->mtxHud[gMatrixHudCount], matrix);
|
||||
|
||||
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxHud[gMatrixHudCount++]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
}
|
||||
|
||||
UNUSED void func_800421FC(s32 arg0, s32 arg1, f32 arg2) {
|
||||
UNUSED void func_800421FC(s32 x, s32 y, f32 scale) {
|
||||
Mat4 matrix;
|
||||
|
||||
func_80041A78(matrix, arg0, arg1);
|
||||
mtfx_translation_x_y(matrix, x, y);
|
||||
func_80022180(&gGfxPool->mtxHud[gMatrixHudCount], matrix);
|
||||
|
||||
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxHud[gMatrixHudCount++]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
|
||||
func_80041B68(matrix, arg2);
|
||||
mtxf_scale_x_y(matrix, scale);
|
||||
func_80022180(&gGfxPool->mtxHud[gMatrixHudCount], matrix);
|
||||
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxHud[gMatrixHudCount++]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW);
|
||||
}
|
||||
|
||||
void func_80042330(s32 arg0, s32 arg1, u16 arg2, f32 arg3) {
|
||||
void func_80042330(s32 x, s32 y, u16 angle, f32 scale) {
|
||||
Mat4 matrix;
|
||||
func_80041C64(matrix, arg0, arg1, arg2, arg3);
|
||||
mtxf_translation_x_y_rotate_z_scale_x_y(matrix, x, y, angle, scale);
|
||||
func_80022180(&gGfxPool->mtxHud[gMatrixHudCount], matrix);
|
||||
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxHud[gMatrixHudCount++]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
}
|
||||
|
|
@ -726,18 +734,18 @@ UNUSED void func_800423F0(Mat4 arg0, u16 arg1, u16 arg2, u16 arg3) {
|
|||
UNUSED void func_8004252C(Mat4 arg0, u16 arg1, u16 arg2) {
|
||||
f32 sp2C = sins(arg1);
|
||||
f32 sp28 = coss(arg1);
|
||||
f32 sp24 = sins(arg2);
|
||||
f32 temp_f0 = coss(arg2);
|
||||
f32 sin_theta_y = sins(arg2);
|
||||
f32 cos_theta_y = coss(arg2);
|
||||
|
||||
arg0[1][0] = sp2C * sp24;
|
||||
arg0[2][0] = sp28 * sp24;
|
||||
arg0[1][0] = sp2C * sin_theta_y;
|
||||
arg0[2][0] = sp28 * sin_theta_y;
|
||||
arg0[0][1] = 0.0f;
|
||||
arg0[0][0] = temp_f0;
|
||||
arg0[0][0] = cos_theta_y;
|
||||
arg0[2][1] = -sp2C;
|
||||
arg0[0][2] = -sp24;
|
||||
arg0[0][2] = -sin_theta_y;
|
||||
arg0[1][1] = sp28;
|
||||
arg0[1][2] = sp2C * temp_f0;
|
||||
arg0[2][2] = sp28 * temp_f0;
|
||||
arg0[1][2] = sp2C * cos_theta_y;
|
||||
arg0[2][2] = sp28 * cos_theta_y;
|
||||
}
|
||||
|
||||
void func_800425D0(Mat4 arg0, Vec3f arg1, Vec3su arg2, f32 arg3) {
|
||||
|
|
@ -766,29 +774,29 @@ void func_800425D0(Mat4 arg0, Vec3f arg1, Vec3su arg2, f32 arg3) {
|
|||
arg0[3][3] = 1.0f;
|
||||
}
|
||||
|
||||
void func_80042760(Mat4 arg0, Vec3f arg1, Vec3f arg2, f32 arg3) {
|
||||
arg0[0][0] = arg3;
|
||||
arg0[1][0] = 0.0f;
|
||||
arg0[2][0] = 0.0f;
|
||||
arg0[3][0] = arg1[0] - arg2[0];
|
||||
arg0[0][1] = 0.0f;
|
||||
arg0[1][1] = -arg3;
|
||||
arg0[2][1] = 0.0f;
|
||||
arg0[3][1] = arg1[1] - arg2[1];
|
||||
arg0[0][2] = 0.0f;
|
||||
arg0[1][2] = 0.0f;
|
||||
arg0[2][2] = -arg3;
|
||||
arg0[3][2] = arg1[2] - arg2[2];
|
||||
arg0[0][3] = 0.0f;
|
||||
arg0[1][3] = 0.0f;
|
||||
arg0[2][3] = 0.0f;
|
||||
arg0[3][3] = 1.0f;
|
||||
void func_80042760(Mat4 dest, Vec3f arg1, Vec3f arg2, f32 scale) {
|
||||
dest[0][0] = scale;
|
||||
dest[1][0] = 0.0f;
|
||||
dest[2][0] = 0.0f;
|
||||
dest[3][0] = arg1[0] - arg2[0];
|
||||
dest[0][1] = 0.0f;
|
||||
dest[1][1] = -scale;
|
||||
dest[2][1] = 0.0f;
|
||||
dest[3][1] = arg1[1] - arg2[1];
|
||||
dest[0][2] = 0.0f;
|
||||
dest[1][2] = 0.0f;
|
||||
dest[2][2] = -scale;
|
||||
dest[3][2] = arg1[2] - arg2[2];
|
||||
dest[0][3] = 0.0f;
|
||||
dest[1][3] = 0.0f;
|
||||
dest[2][3] = 0.0f;
|
||||
dest[3][3] = 1.0f;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Tried to put the definitions in the declares. However, sp3C wants to be at the top.
|
||||
* Something may be possible with some padding. Couldn't find a way though. So we get big mess.
|
||||
*
|
||||
*
|
||||
* @param arg0
|
||||
* @param arg1
|
||||
**/
|
||||
|
|
@ -827,25 +835,25 @@ void func_800427DC(s32 arg0, Mat4 arg1) {
|
|||
arg1[3][3] = 1.0f;
|
||||
}
|
||||
|
||||
UNUSED void func_80042984(Mat4 arg0, f32 arg1) {
|
||||
UNUSED void mtxf_mult_first_column(Mat4 arg0, f32 arg1) {
|
||||
arg0[0][0] *= arg1;
|
||||
arg0[1][0] *= arg1;
|
||||
arg0[2][0] *= arg1;
|
||||
}
|
||||
|
||||
UNUSED void func_800429B8(Mat4 arg0, f32 arg1) {
|
||||
UNUSED void mtxf_mult_second_column(Mat4 arg0, f32 arg1) {
|
||||
arg0[0][1] *= arg1;
|
||||
arg0[1][1] *= arg1;
|
||||
arg0[2][1] *= arg1;
|
||||
}
|
||||
|
||||
UNUSED void func_800429EC(Mat4 arg0, f32 arg1) {
|
||||
UNUSED void mtxf_mult_third_column(Mat4 arg0, f32 arg1) {
|
||||
arg0[0][2] *= arg1;
|
||||
arg0[1][2] *= arg1;
|
||||
arg0[2][2] *= arg1;
|
||||
}
|
||||
|
||||
void func_80042A20(Mat4 arg0, Vec3f arg1, Vec3f arg2, u16 arg3, f32 arg4) {
|
||||
void func_80042A20(Mat4 dest, Vec3f arg1, Vec3f arg2, u16 arg3, f32 arg4) {
|
||||
Vec3f sp44;
|
||||
Vec3f sp38;
|
||||
Vec3f sp2C;
|
||||
|
|
@ -856,22 +864,22 @@ void func_80042A20(Mat4 arg0, Vec3f arg1, Vec3f arg2, u16 arg3, f32 arg4) {
|
|||
func_80041530(sp38);
|
||||
func_80041594(sp2C, sp38, arg1);
|
||||
func_80041530(sp2C);
|
||||
arg0[0][0] = sp38[0] * arg4;
|
||||
arg0[0][1] = sp38[1] * arg4;
|
||||
arg0[0][2] = sp38[2] * arg4;
|
||||
arg0[3][0] = arg2[0];
|
||||
arg0[1][0] = arg1[0] * arg4;
|
||||
arg0[1][1] = arg1[1] * arg4;
|
||||
arg0[1][2] = arg1[2] * arg4;
|
||||
arg0[3][1] = arg2[1];
|
||||
arg0[2][0] = sp2C[0] * arg4;
|
||||
arg0[2][1] = sp2C[1] * arg4;
|
||||
arg0[2][2] = sp2C[2] * arg4;
|
||||
arg0[3][2] = arg2[2];
|
||||
arg0[0][3] = 0.0f;
|
||||
arg0[1][3] = 0.0f;
|
||||
arg0[2][3] = 0.0f;
|
||||
arg0[3][3] = 1.0f;
|
||||
dest[0][0] = sp38[0] * arg4;
|
||||
dest[0][1] = sp38[1] * arg4;
|
||||
dest[0][2] = sp38[2] * arg4;
|
||||
dest[3][0] = arg2[0];
|
||||
dest[1][0] = arg1[0] * arg4;
|
||||
dest[1][1] = arg1[1] * arg4;
|
||||
dest[1][2] = arg1[2] * arg4;
|
||||
dest[3][1] = arg2[1];
|
||||
dest[2][0] = sp2C[0] * arg4;
|
||||
dest[2][1] = sp2C[1] * arg4;
|
||||
dest[2][2] = sp2C[2] * arg4;
|
||||
dest[3][2] = arg2[2];
|
||||
dest[0][3] = 0.0f;
|
||||
dest[1][3] = 0.0f;
|
||||
dest[2][3] = 0.0f;
|
||||
dest[3][3] = 1.0f;
|
||||
}
|
||||
|
||||
UNUSED void func_80042B5C(Vec3f arg0, Vec3f arg1, Vec3s arg2) {
|
||||
|
|
|
|||
|
|
@ -29,14 +29,14 @@ void func_8004214C(u16, f32);
|
|||
void func_800421FC(s32, s32, f32);
|
||||
void func_800423F0(Mat4, u16, u16, u16);
|
||||
void func_8004252C(Mat4, u16, u16);
|
||||
void func_80042984(Mat4, f32);
|
||||
void func_800429B8(Mat4, f32);
|
||||
void func_800429EC(Mat4, f32);
|
||||
void mtxf_mult_first_column(Mat4, f32);
|
||||
void mtxf_mult_second_column(Mat4, f32);
|
||||
void mtxf_mult_third_column(Mat4, f32);
|
||||
void func_80042B5C(Vec3f, Vec3f, Vec3s);
|
||||
void func_80042EB8(Vec3f, Vec3f, f32);
|
||||
|
||||
|
||||
void func_80040EC4(Vec3f, Vec3f);
|
||||
void vec3f_copy(Vec3f, Vec3f);
|
||||
s32 f32_step_up_towards(f32*, f32, f32);
|
||||
s32 f32_step_down_towards(f32*, f32, f32);
|
||||
s32 s32_step_up_towards(s32*, s32, s32);
|
||||
|
|
@ -61,11 +61,11 @@ s32 func_800418E8(f32, f32, Vec3f);
|
|||
s32 func_80041924(Collision*, Vec3f);
|
||||
s32 func_80041980(Vec3f, Camera*, u16);
|
||||
void func_800419F8(void);
|
||||
void func_80041A78(Mat4, s32, s32);
|
||||
void func_80041AD8(Mat4, u16);
|
||||
void func_80041B68(Mat4, f32);
|
||||
void func_80041BBC(Mat4, u16, f32);
|
||||
void func_80041C64(Mat4, s32, s32, u16, f32);
|
||||
void mtfx_translation_x_y(Mat4, s32, s32);
|
||||
void mtxf_u16_rotate_z(Mat4, u16);
|
||||
void mtxf_scale_x_y(Mat4, f32);
|
||||
void mtxf_rotate_z_scale_x_y(Mat4, u16, f32);
|
||||
void mtxf_translation_x_y_rotate_z_scale_x_y(Mat4, s32, s32, u16, f32);
|
||||
void func_80041D24(void);
|
||||
void func_80041D34(void);
|
||||
void func_80041EF4(void);
|
||||
|
|
|
|||
|
|
@ -1018,7 +1018,7 @@ void func_80029B4C(Player *player, UNUSED f32 arg1, f32 arg2, UNUSED f32 arg3) {
|
|||
sp8C[0] = var_f12 - 3.6;
|
||||
sp8C[1] = -player->boundingBoxSize;
|
||||
sp8C[2] = var_f12 - 2.0f;
|
||||
func_802B63B8(sp8C, sp5C);
|
||||
mtxf_translate_vec3f_mat3(sp8C, sp5C);
|
||||
sp80[0] = player->boundingBoxCorners[0].cornerPos[0];
|
||||
sp80[1] = player->boundingBoxCorners[0].cornerPos[1];
|
||||
sp80[2] = player->boundingBoxCorners[0].cornerPos[2];
|
||||
|
|
@ -1030,7 +1030,7 @@ void func_80029B4C(Player *player, UNUSED f32 arg1, f32 arg2, UNUSED f32 arg3) {
|
|||
sp8C[0] = (-var_f12) + 3.6;
|
||||
sp8C[1] = -player->boundingBoxSize;
|
||||
sp8C[2] = var_f12 - 2.0f;
|
||||
func_802B63B8(sp8C, sp5C);
|
||||
mtxf_translate_vec3f_mat3(sp8C, sp5C);
|
||||
sp80[0] = player->boundingBoxCorners[1].cornerPos[0];
|
||||
sp80[1] = player->boundingBoxCorners[1].cornerPos[1];
|
||||
sp80[2] = player->boundingBoxCorners[1].cornerPos[2];
|
||||
|
|
@ -1042,7 +1042,7 @@ void func_80029B4C(Player *player, UNUSED f32 arg1, f32 arg2, UNUSED f32 arg3) {
|
|||
sp8C[0] = var_f12 - 2.6;
|
||||
sp8C[1] = -player->boundingBoxSize;
|
||||
sp8C[2] = (-var_f12) + 4.0f;
|
||||
func_802B63B8(sp8C, sp5C);
|
||||
mtxf_translate_vec3f_mat3(sp8C, sp5C);
|
||||
sp80[0] = player->boundingBoxCorners[2].cornerPos[0];
|
||||
sp80[1] = player->boundingBoxCorners[2].cornerPos[1];
|
||||
sp80[2] = player->boundingBoxCorners[2].cornerPos[2];
|
||||
|
|
@ -1054,7 +1054,7 @@ void func_80029B4C(Player *player, UNUSED f32 arg1, f32 arg2, UNUSED f32 arg3) {
|
|||
sp8C[0] = (-var_f12) + 2.6;
|
||||
sp8C[1] = -player->boundingBoxSize;
|
||||
sp8C[2] = (-var_f12) + 4.0f;
|
||||
func_802B63B8(sp8C, sp5C);
|
||||
mtxf_translate_vec3f_mat3(sp8C, sp5C);
|
||||
sp80[0] = player->boundingBoxCorners[3].cornerPos[0];
|
||||
sp80[1] = player->boundingBoxCorners[3].cornerPos[1];
|
||||
sp80[2] = player->boundingBoxCorners[3].cornerPos[2];
|
||||
|
|
@ -1728,13 +1728,13 @@ void func_8002BB9C(Player *player, f32 *arg1, f32 *arg2, UNUSED s8 arg3, UNUSED
|
|||
sp58[1] = 0;
|
||||
sp58[2] = *arg2;
|
||||
|
||||
func_802B63B8(sp58, sp64);
|
||||
mtxf_translate_vec3f_mat3(sp58, sp64);
|
||||
|
||||
sp4C[0] = player->rotX;
|
||||
sp4C[1] = 0;
|
||||
sp4C[2] = player->rotZ;
|
||||
|
||||
func_802B63B8(sp4C, sp64);
|
||||
mtxf_translate_vec3f_mat3(sp4C, sp64);
|
||||
|
||||
var_v0 = -(s16)get_angle_between_points(sp58, sp4C);
|
||||
t0 = player->unk_02C[1];
|
||||
|
|
@ -2282,12 +2282,12 @@ void func_8002D268(Player *player, UNUSED Camera *camera, s8 arg2, s8 arg3)
|
|||
sp178[2] = 0.0f;
|
||||
}
|
||||
sp178[1] = 0.0f;
|
||||
func_802B63B8(sp178, player->unk_174);
|
||||
mtxf_translate_vec3f_mat3(sp178, player->unk_174);
|
||||
spB4 += sp178[0];
|
||||
spAC += sp178[2];
|
||||
func_8002C7E4(player, arg3, arg2);
|
||||
sp184[2] = func_80030150(player, arg3);
|
||||
func_802B63B8(sp184, player->unk_174);
|
||||
mtxf_translate_vec3f_mat3(sp184, player->unk_174);
|
||||
sp98[0] = player->unk_034[0];
|
||||
sp98[1] = player->unk_034[1];
|
||||
sp98[2] = player->unk_034[2];
|
||||
|
|
@ -2563,9 +2563,9 @@ void func_8002E594(Player *player, UNUSED Camera *camera, s8 arg2, s8 arg3) {
|
|||
}
|
||||
spEC[2] = func_80030150(player, arg3);
|
||||
if (sp46 == 1) {
|
||||
func_802B63B8(spEC, player->unk_150);
|
||||
mtxf_translate_vec3f_mat3(spEC, player->unk_150);
|
||||
} else {
|
||||
func_802B63B8(spEC, player->unk_174);
|
||||
mtxf_translate_vec3f_mat3(spEC, player->unk_174);
|
||||
}
|
||||
sp54[0] = player->unk_034[0];
|
||||
sp54[1] = player->unk_034[1];
|
||||
|
|
@ -2780,7 +2780,7 @@ void control_cpu_movement(Player *player, UNUSED Camera *camera, s8 arg2, s8 arg
|
|||
player->unk_256 = 0;
|
||||
player->unk_0BC &= ~0x8000;
|
||||
spF4[2] = func_80030150(player, arg3);
|
||||
func_802B63B8(spF4, player->unk_174);
|
||||
mtxf_translate_vec3f_mat3(spF4, player->unk_174);
|
||||
sp68[0] = player->unk_034[0];
|
||||
sp68[1] = 0;
|
||||
sp68[2] = player->unk_034[2];
|
||||
|
|
@ -2852,7 +2852,7 @@ void func_8002F730(Player *player, UNUSED Camera *camera, UNUSED s8 arg2, s8 arg
|
|||
sp7C = player->unk_064[2] * 0;
|
||||
spF4[2] = func_80030150(player, arg3);
|
||||
|
||||
func_802B63B8(spF4, player->unk_174);
|
||||
mtxf_translate_vec3f_mat3(spF4, player->unk_174);
|
||||
|
||||
sp68[0] = player->unk_034[0];
|
||||
sp68[1] = player->unk_034[1];
|
||||
|
|
@ -4395,7 +4395,7 @@ void func_80036DB4(Player *player, Vec3f arg1, Vec3f arg2) {
|
|||
arg1[0] = 0.0f;
|
||||
arg1[1] = 0.0f;
|
||||
arg1[2] = 0.0f;
|
||||
func_802B63B8(arg1, player->unk_174);
|
||||
mtxf_translate_vec3f_mat3(arg1, player->unk_174);
|
||||
} else {
|
||||
if (((player->unk_0BC & 0x10) == 0x10) && ((player->unk_0BC & 2) != 2)) {
|
||||
var_f18 = player->unk_208 + ((-(player->unk_094 / 18.0f) * 216.0f) * 3.0f) + (-player->unk_20C * 10.0f);
|
||||
|
|
@ -4432,7 +4432,7 @@ void func_80036DB4(Player *player, Vec3f arg1, Vec3f arg2) {
|
|||
arg1[0] = (player->unk_090 + var_f18) * player->unk_094;
|
||||
arg1[1] = 0.0f;
|
||||
arg1[2] = player->unk_094 * sp20;
|
||||
func_802B63B8(arg1, player->unk_174);
|
||||
mtxf_translate_vec3f_mat3(arg1, player->unk_174);
|
||||
}
|
||||
arg2[0] = arg1[0];
|
||||
arg2[1] = arg1[1];
|
||||
|
|
@ -4449,7 +4449,7 @@ void func_800371F4(Player *player, Vec3f arg1, Vec3f arg2) {
|
|||
arg1[0] = 0.0f;
|
||||
arg1[1] = 0.0f;
|
||||
arg1[2] = 0.0f;
|
||||
func_802B63B8(arg1, player->unk_174);
|
||||
mtxf_translate_vec3f_mat3(arg1, player->unk_174);
|
||||
} else {
|
||||
if (((player->unk_0BC & 0x10) == 0x10) && ((player->unk_0BC & 2) != 2)) {
|
||||
var_f18 = player->unk_208 + ((-(player->unk_094 / 18.0f) * 216.0f) * 3.0f) + (-player->unk_20C * 50.0f);
|
||||
|
|
@ -4486,7 +4486,7 @@ void func_800371F4(Player *player, Vec3f arg1, Vec3f arg2) {
|
|||
arg1[0] = -(player->unk_090 + var_f18) * player->unk_094;
|
||||
arg1[1] = 0.0f;
|
||||
arg1[2] = player->unk_094 * sp20;
|
||||
func_802B63B8(arg1, player->unk_174);
|
||||
mtxf_translate_vec3f_mat3(arg1, player->unk_174);
|
||||
}
|
||||
arg2[0] = arg1[0];
|
||||
arg2[1] = arg1[1];
|
||||
|
|
@ -4501,7 +4501,7 @@ void func_80037614(Player *player, Vec3f arg1, Vec3f arg2) {
|
|||
arg1[0] = 0.0f;
|
||||
arg1[1] = 0.0f;
|
||||
arg1[2] = 0.0f;
|
||||
func_802B63B8(arg1, player->unk_174);
|
||||
mtxf_translate_vec3f_mat3(arg1, player->unk_174);
|
||||
} else {
|
||||
if (((player->unk_0BC & 0x10) == 0x10) && ((player->unk_0BC & 2) != 2)) {
|
||||
var_f2 = ((-(player->unk_094 / 18.0f) * 216.0f) * 2) + -80.0f;
|
||||
|
|
@ -4513,7 +4513,7 @@ void func_80037614(Player *player, Vec3f arg1, Vec3f arg2) {
|
|||
arg1[0] = (var_f2 + 28.0f) * player->unk_094;
|
||||
arg1[1] = 0.0f;
|
||||
arg1[2] = var_f12 * player->unk_094;
|
||||
func_802B63B8(arg1, player->unk_174);
|
||||
mtxf_translate_vec3f_mat3(arg1, player->unk_174);
|
||||
}
|
||||
arg2[0] = arg1[0];
|
||||
arg2[1] = arg1[1];
|
||||
|
|
@ -4528,7 +4528,7 @@ void func_8003777C(Player *player, Vec3f arg1, Vec3f arg2) {
|
|||
arg1[0] = 0.0f;
|
||||
arg1[1] = 0.0f;
|
||||
arg1[2] = 0.0f;
|
||||
func_802B63B8(arg1, player->unk_174);
|
||||
mtxf_translate_vec3f_mat3(arg1, player->unk_174);
|
||||
} else {
|
||||
if (((player->unk_0BC & 0x10) == 0x10) && ((player->unk_0BC & 2) != 2)) {
|
||||
var_f2 = ((-(player->unk_094 / 18.0f) * 216.0f) * 2) + -80.0f;
|
||||
|
|
@ -4540,7 +4540,7 @@ void func_8003777C(Player *player, Vec3f arg1, Vec3f arg2) {
|
|||
arg1[0] = -(var_f2 + 28.0f) * player->unk_094;
|
||||
arg1[1] = 0.0f;
|
||||
arg1[2] = var_f12 * player->unk_094;
|
||||
func_802B63B8(arg1, player->unk_174);
|
||||
mtxf_translate_vec3f_mat3(arg1, player->unk_174);
|
||||
}
|
||||
arg2[0] = arg1[0];
|
||||
arg2[1] = arg1[1];
|
||||
|
|
@ -4555,7 +4555,7 @@ void func_800378E8(Player *player, Vec3f arg1, Vec3f arg2) {
|
|||
arg1[0] = 0.0f;
|
||||
arg1[1] = 0.0f;
|
||||
arg1[2] = 0.0f;
|
||||
func_802B63B8(arg1, player->unk_174);
|
||||
mtxf_translate_vec3f_mat3(arg1, player->unk_174);
|
||||
} else {
|
||||
if ((player->unk_0BC & 0x10) == 0x10) {
|
||||
var_f2 = player->unk_208 + (-(player->unk_094 / 18.0f) * 216.0f * 5.0f) + (-player->unk_20C * 10.0f);
|
||||
|
|
@ -4567,7 +4567,7 @@ void func_800378E8(Player *player, Vec3f arg1, Vec3f arg2) {
|
|||
arg1[0] = (player->unk_090 + var_f2) * player->unk_094;
|
||||
arg1[1] = 0.0f;
|
||||
arg1[2] = player->unk_094 * var_f12;
|
||||
func_802B63B8(arg1, player->unk_174);
|
||||
mtxf_translate_vec3f_mat3(arg1, player->unk_174);
|
||||
}
|
||||
arg2[0] = arg1[0];
|
||||
arg2[1] = arg1[1];
|
||||
|
|
@ -4582,7 +4582,7 @@ void func_80037A4C(Player *player, Vec3f arg1, Vec3f arg2) {
|
|||
arg1[0] = 0.0f;
|
||||
arg1[1] = 0.0f;
|
||||
arg1[2] = 0.0f;
|
||||
func_802B63B8(arg1, player->unk_174);
|
||||
mtxf_translate_vec3f_mat3(arg1, player->unk_174);
|
||||
} else {
|
||||
if ((player->unk_0BC & 0x10) == 0x10) {
|
||||
var_f2 = player->unk_208 + (-(player->unk_094 / 18.0f) * 216.0f * 5.0f) + (-player->unk_20C * 50.0f);
|
||||
|
|
@ -4594,7 +4594,7 @@ void func_80037A4C(Player *player, Vec3f arg1, Vec3f arg2) {
|
|||
arg1[0] = -(player->unk_090 + var_f2) * player->unk_094;
|
||||
arg1[1] = 0.0f;
|
||||
arg1[2] = player->unk_094 * var_f12;
|
||||
func_802B63B8(arg1, player->unk_174);
|
||||
mtxf_translate_vec3f_mat3(arg1, player->unk_174);
|
||||
}
|
||||
arg2[0] = arg1[0];
|
||||
arg2[1] = arg1[1];
|
||||
|
|
@ -4994,11 +4994,11 @@ void func_80038C6C(Player *player, UNUSED Camera *camera, s8 arg2, s8 arg3) {
|
|||
sp108[2] = 0;
|
||||
sp108[1] = 0;
|
||||
sp108[0] = 0;
|
||||
func_802B63B8(sp108, player->unk_174);
|
||||
mtxf_translate_vec3f_mat3(sp108, player->unk_174);
|
||||
spA4 += sp108[0];
|
||||
sp9C += sp108[2];
|
||||
sp114[2] = player->unk_08C;
|
||||
func_802B63B8(sp114, player->unk_174);
|
||||
mtxf_translate_vec3f_mat3(sp114, player->unk_174);
|
||||
|
||||
sp88[0] = player->unk_034[0];
|
||||
sp88[1] = player->unk_034[1];
|
||||
|
|
|
|||
|
|
@ -113,9 +113,9 @@ void cleanup_red_and_green_shells(struct ShellActor *shell) {
|
|||
|
||||
// Sets introductory values for a new actor (ex. Banana).
|
||||
void actor_init(struct Actor *actor, Vec3f startingPos, Vec3s startingRot, Vec3f startingVelocity, s16 actorType) {
|
||||
vec3f_copy(actor->pos, startingPos);
|
||||
vec3f_copy_return(actor->pos, startingPos);
|
||||
vec3s_copy(actor->rot, startingRot);
|
||||
vec3f_copy(actor->velocity, startingVelocity);
|
||||
vec3f_copy_return(actor->velocity, startingVelocity);
|
||||
actor->type = actorType;
|
||||
actor->flags = -0x8000;
|
||||
actor->unk_04 = 0;
|
||||
|
|
@ -414,7 +414,7 @@ void func_8029794C(Vec3f arg0, Vec3s arg1, f32 arg2) {
|
|||
arg0[1] += 2.0f;
|
||||
|
||||
func_802B5F74(sp20, arg0, arg1);
|
||||
func_802B5F00(sp20, arg2);
|
||||
mtxf_scale(sp20, arg2);
|
||||
if (render_set_position(sp20, 0) != 0) {
|
||||
|
||||
gSPDisplayList(gDisplayListHead++, D_0D007B20);
|
||||
|
|
@ -1427,10 +1427,10 @@ void func_8029AE1C(Camera *arg0, struct PaddleWheelBoat *boat, UNUSED Mat4 arg2,
|
|||
gSPDisplayList(gDisplayListHead++, &d_course_dks_jungle_parkway_dl_E730);
|
||||
gSPDisplayList(gDisplayListHead++, &d_course_dks_jungle_parkway_dl_E058);
|
||||
|
||||
func_802B59DC(spE0, boat->wheelRot);
|
||||
mtxf_rotate_x(spE0, boat->wheelRot);
|
||||
vec3f_set(sp120, 0, 16.0f, -255.0f);
|
||||
mtxf_translate(spA0, sp120);
|
||||
func_802B71CC(sp60, spE0, spA0);
|
||||
mtxf_multiplication(sp60, spE0, spA0);
|
||||
if (render_set_position(sp60, 3) != 0) {
|
||||
gSPClearGeometryMode(gDisplayListHead++, G_CULL_BACK);
|
||||
gSPDisplayList(gDisplayListHead++, &d_course_dks_jungle_parkway_dl_FC28);
|
||||
|
|
@ -1526,7 +1526,7 @@ void func_8029B4E0(Camera *arg0, struct Actor *arg1) {
|
|||
|
||||
|
||||
func_802B5F74(spC8, arg1->pos, arg1->rot);
|
||||
func_802B5F00(spC8, 0.1f);
|
||||
mtxf_scale(spC8, 0.1f);
|
||||
if (render_set_position(spC8, 0) != 0) {
|
||||
|
||||
if (gActiveScreenMode == SCREEN_MODE_1P) {
|
||||
|
|
@ -1615,10 +1615,10 @@ void func_8029B8E8(Camera *camera, struct TrainCar *actor) {
|
|||
gSPClearGeometryMode(gDisplayListHead++, G_CULL_BACK);
|
||||
gSPDisplayList(gDisplayListHead++, d_course_kalimari_desert_dl_22D28);
|
||||
|
||||
func_802B59DC(sp120, actor->wheelRot);
|
||||
mtxf_rotate_x(sp120, actor->wheelRot);
|
||||
vec3f_set(sp160, 17.0f, 6.0f, 32.0f);
|
||||
mtxf_translate(spE0, sp160);
|
||||
func_802B71CC(spA0, sp120, spE0);
|
||||
mtxf_multiplication(spA0, sp120, spE0);
|
||||
|
||||
maxObjectsReached = render_set_position(spA0, 3) == 0;
|
||||
if (maxObjectsReached) { return; }
|
||||
|
|
@ -1626,10 +1626,10 @@ void func_8029B8E8(Camera *camera, struct TrainCar *actor) {
|
|||
gSPDisplayList(gDisplayListHead++, d_course_kalimari_desert_dl_22DB8);
|
||||
gSPPopMatrix(gDisplayListHead++, G_MTX_MODELVIEW);
|
||||
|
||||
func_802B59DC(sp120, actor->wheelRot);
|
||||
mtxf_rotate_x(sp120, actor->wheelRot);
|
||||
vec3f_set(sp160, -17.0, 6.0f, 32.0f);
|
||||
mtxf_translate(spE0, sp160);
|
||||
func_802B71CC(spA0, sp120, spE0);
|
||||
mtxf_multiplication(spA0, sp120, spE0);
|
||||
|
||||
maxObjectsReached = render_set_position(spA0, 3) == 0;
|
||||
if (maxObjectsReached) { return; }
|
||||
|
|
@ -1637,10 +1637,10 @@ void func_8029B8E8(Camera *camera, struct TrainCar *actor) {
|
|||
gSPDisplayList(gDisplayListHead++, d_course_kalimari_desert_dl_22DB8);
|
||||
gSPPopMatrix(gDisplayListHead++, G_MTX_MODELVIEW);
|
||||
|
||||
func_802B59DC(sp120, (s16) (actor->wheelRot + 0x16C));
|
||||
mtxf_rotate_x(sp120, (s16) (actor->wheelRot + 0x16C));
|
||||
vec3f_set(sp160, 17.0f, 6.0f, 16.0f);
|
||||
mtxf_translate(spE0, sp160);
|
||||
func_802B71CC(spA0, sp120, spE0);
|
||||
mtxf_multiplication(spA0, sp120, spE0);
|
||||
|
||||
maxObjectsReached = render_set_position(spA0, 3) == 0;
|
||||
if (maxObjectsReached) { return; }
|
||||
|
|
@ -1648,10 +1648,10 @@ void func_8029B8E8(Camera *camera, struct TrainCar *actor) {
|
|||
gSPDisplayList(gDisplayListHead++, d_course_kalimari_desert_dl_22DB8);
|
||||
gSPPopMatrix(gDisplayListHead++, G_MTX_MODELVIEW);
|
||||
|
||||
func_802B59DC(sp120, (s16) (actor->wheelRot + 0x16C));
|
||||
mtxf_rotate_x(sp120, (s16) (actor->wheelRot + 0x16C));
|
||||
vec3f_set(sp160, -17.0f, 6.0f, 16.0f);
|
||||
mtxf_translate(spE0, sp160);
|
||||
func_802B71CC(spA0, sp120, spE0);
|
||||
mtxf_multiplication(spA0, sp120, spE0);
|
||||
|
||||
maxObjectsReached = render_set_position(spA0, 3) == 0;
|
||||
if (maxObjectsReached) { return; }
|
||||
|
|
@ -1659,10 +1659,10 @@ void func_8029B8E8(Camera *camera, struct TrainCar *actor) {
|
|||
gSPDisplayList(gDisplayListHead++, d_course_kalimari_desert_dl_22DB8);
|
||||
gSPPopMatrix(gDisplayListHead++, G_MTX_MODELVIEW);
|
||||
|
||||
func_802B59DC(sp120, (s16) (actor->wheelRot + 0x444));
|
||||
mtxf_rotate_x(sp120, (s16) (actor->wheelRot + 0x444));
|
||||
vec3f_set(sp160, 17.0f, 12.0f, -12.0f);
|
||||
mtxf_translate(spE0, sp160);
|
||||
func_802B71CC(spA0, sp120, spE0);
|
||||
mtxf_multiplication(spA0, sp120, spE0);
|
||||
|
||||
maxObjectsReached = render_set_position(spA0, 3) == 0;
|
||||
if (maxObjectsReached) { return; }
|
||||
|
|
@ -1670,10 +1670,10 @@ void func_8029B8E8(Camera *camera, struct TrainCar *actor) {
|
|||
gSPDisplayList(gDisplayListHead++, d_course_kalimari_desert_dl_22D70);
|
||||
gSPPopMatrix(gDisplayListHead++, G_MTX_MODELVIEW);
|
||||
|
||||
func_802B59DC(sp120, (s16) (actor->wheelRot + 0x444));
|
||||
mtxf_rotate_x(sp120, (s16) (actor->wheelRot + 0x444));
|
||||
vec3f_set(sp160, -17.0f, 12.0f, -12.0f);
|
||||
mtxf_translate(spE0, sp160);
|
||||
func_802B71CC(spA0, sp120, spE0);
|
||||
mtxf_multiplication(spA0, sp120, spE0);
|
||||
|
||||
maxObjectsReached = render_set_position(spA0, 3) == 0;
|
||||
if (maxObjectsReached) { return; }
|
||||
|
|
@ -1681,10 +1681,10 @@ void func_8029B8E8(Camera *camera, struct TrainCar *actor) {
|
|||
gSPDisplayList(gDisplayListHead++, d_course_kalimari_desert_dl_22D70);
|
||||
gSPPopMatrix(gDisplayListHead++, G_MTX_MODELVIEW);
|
||||
|
||||
func_802B59DC(sp120, (s16) (actor->wheelRot + 0x2D8));
|
||||
mtxf_rotate_x(sp120, (s16) (actor->wheelRot + 0x2D8));
|
||||
vec3f_set(sp160, 17.0f, 12.0f, -34.0f);
|
||||
mtxf_translate(spE0, sp160);
|
||||
func_802B71CC(spA0, sp120, spE0);
|
||||
mtxf_multiplication(spA0, sp120, spE0);
|
||||
|
||||
maxObjectsReached = render_set_position(spA0, 3) == 0;
|
||||
if (maxObjectsReached) { return; }
|
||||
|
|
@ -1692,10 +1692,10 @@ void func_8029B8E8(Camera *camera, struct TrainCar *actor) {
|
|||
gSPDisplayList(gDisplayListHead++, d_course_kalimari_desert_dl_22D70);
|
||||
gSPPopMatrix(gDisplayListHead++, G_MTX_MODELVIEW);
|
||||
|
||||
func_802B59DC(sp120, (s16) (actor->wheelRot + 0x2D8));
|
||||
mtxf_rotate_x(sp120, (s16) (actor->wheelRot + 0x2D8));
|
||||
vec3f_set(sp160, -17.0f, 12.0f, -34.0f);
|
||||
mtxf_translate(spE0, sp160);
|
||||
func_802B71CC(spA0, sp120, spE0);
|
||||
mtxf_multiplication(spA0, sp120, spE0);
|
||||
|
||||
maxObjectsReached = render_set_position(spA0, 3) == 0;
|
||||
if (maxObjectsReached) { return; }
|
||||
|
|
@ -1734,40 +1734,40 @@ void func_8029BFB0(Camera *camera, struct TrainCar *actor) {
|
|||
gSPClearGeometryMode(gDisplayListHead++, G_CULL_BACK);
|
||||
gSPDisplayList(gDisplayListHead++, d_course_kalimari_desert_dl_22D28);
|
||||
|
||||
func_802B59DC(sp120, actor->wheelRot);
|
||||
mtxf_rotate_x(sp120, actor->wheelRot);
|
||||
vec3f_set(sp160, 17.0f, 6.0f, 8.0f);
|
||||
mtxf_translate(spE0, sp160);
|
||||
func_802B71CC(spA0, sp120, spE0);
|
||||
mtxf_multiplication(spA0, sp120, spE0);
|
||||
|
||||
if (render_set_position(spA0, 3) == 0) { return; }
|
||||
|
||||
gSPDisplayList(gDisplayListHead++, d_course_kalimari_desert_dl_22DB8);
|
||||
gSPPopMatrix(gDisplayListHead++, G_MTX_MODELVIEW);
|
||||
|
||||
func_802B59DC(sp120, actor->wheelRot);
|
||||
mtxf_rotate_x(sp120, actor->wheelRot);
|
||||
vec3f_set(sp160, -17.0, 6.0f, 8.0f);
|
||||
mtxf_translate(spE0, sp160);
|
||||
func_802B71CC(spA0, sp120, spE0);
|
||||
mtxf_multiplication(spA0, sp120, spE0);
|
||||
|
||||
if (render_set_position(spA0, 3) == 0) { return; }
|
||||
|
||||
gSPDisplayList(gDisplayListHead++, d_course_kalimari_desert_dl_22DB8);
|
||||
gSPPopMatrix(gDisplayListHead++, G_MTX_MODELVIEW);
|
||||
|
||||
func_802B59DC(sp120, (s16) (actor->wheelRot + 0x444));
|
||||
mtxf_rotate_x(sp120, (s16) (actor->wheelRot + 0x444));
|
||||
vec3f_set(sp160, 17.0f, 6.0f, -8.0f);
|
||||
mtxf_translate(spE0, sp160);
|
||||
func_802B71CC(spA0, sp120, spE0);
|
||||
mtxf_multiplication(spA0, sp120, spE0);
|
||||
|
||||
if (render_set_position(spA0, 3) == 0) { return; }
|
||||
|
||||
gSPDisplayList(gDisplayListHead++, d_course_kalimari_desert_dl_22DB8);
|
||||
gSPPopMatrix(gDisplayListHead++, G_MTX_MODELVIEW);
|
||||
|
||||
func_802B59DC(sp120, (s16) (actor->wheelRot + 0x444));
|
||||
mtxf_rotate_x(sp120, (s16) (actor->wheelRot + 0x444));
|
||||
vec3f_set(sp160, -17.0f, 6.0f, -8.0f);
|
||||
mtxf_translate(spE0, sp160);
|
||||
func_802B71CC(spA0, sp120, spE0);
|
||||
mtxf_multiplication(spA0, sp120, spE0);
|
||||
|
||||
if (render_set_position(spA0, 3) == 0) { return; }
|
||||
gSPDisplayList(gDisplayListHead++, d_course_kalimari_desert_dl_22DB8);
|
||||
|
|
@ -1809,80 +1809,80 @@ void func_8029C3CC(Camera *camera, struct TrainCar *actor) {
|
|||
gSPClearGeometryMode(gDisplayListHead++, G_CULL_BACK);
|
||||
gSPDisplayList(gDisplayListHead++, d_course_kalimari_desert_dl_22D28);
|
||||
|
||||
func_802B59DC(sp120, actor->wheelRot);
|
||||
mtxf_rotate_x(sp120, actor->wheelRot);
|
||||
vec3f_set(sp160, 17.0f, 6.0f, 28.0f);
|
||||
mtxf_translate(spE0, sp160);
|
||||
func_802B71CC(spA0, sp120, spE0);
|
||||
mtxf_multiplication(spA0, sp120, spE0);
|
||||
|
||||
if (render_set_position(spA0, 3) == 0) { return; }
|
||||
|
||||
gSPDisplayList(gDisplayListHead++, d_course_kalimari_desert_dl_22DB8);
|
||||
gSPPopMatrix(gDisplayListHead++, G_MTX_MODELVIEW);
|
||||
|
||||
func_802B59DC(sp120, actor->wheelRot);
|
||||
mtxf_rotate_x(sp120, actor->wheelRot);
|
||||
vec3f_set(sp160, -17.0, 6.0f, 28.0f);
|
||||
mtxf_translate(spE0, sp160);
|
||||
func_802B71CC(spA0, sp120, spE0);
|
||||
mtxf_multiplication(spA0, sp120, spE0);
|
||||
|
||||
if (render_set_position(spA0, 3) == 0) { return; }
|
||||
|
||||
gSPDisplayList(gDisplayListHead++, d_course_kalimari_desert_dl_22DB8);
|
||||
gSPPopMatrix(gDisplayListHead++, G_MTX_MODELVIEW);
|
||||
|
||||
func_802B59DC(sp120, (s16) (actor->wheelRot + 0x222));
|
||||
mtxf_rotate_x(sp120, (s16) (actor->wheelRot + 0x222));
|
||||
vec3f_set(sp160, 17.0f, 6.0f, 12.0f);
|
||||
mtxf_translate(spE0, sp160);
|
||||
func_802B71CC(spA0, sp120, spE0);
|
||||
mtxf_multiplication(spA0, sp120, spE0);
|
||||
|
||||
if (render_set_position(spA0, 3) == 0) { return; }
|
||||
|
||||
gSPDisplayList(gDisplayListHead++, d_course_kalimari_desert_dl_22DB8);
|
||||
gSPPopMatrix(gDisplayListHead++, G_MTX_MODELVIEW);
|
||||
|
||||
func_802B59DC(sp120, (s16) (actor->wheelRot + 0x222));
|
||||
mtxf_rotate_x(sp120, (s16) (actor->wheelRot + 0x222));
|
||||
vec3f_set(sp160, -17.0f, 6.0f, 12.0f);
|
||||
mtxf_translate(spE0, sp160);
|
||||
func_802B71CC(spA0, sp120, spE0);
|
||||
mtxf_multiplication(spA0, sp120, spE0);
|
||||
|
||||
if (render_set_position(spA0, 3) == 0) { return; }
|
||||
|
||||
gSPDisplayList(gDisplayListHead++, d_course_kalimari_desert_dl_22DB8);
|
||||
gSPPopMatrix(gDisplayListHead++, G_MTX_MODELVIEW);
|
||||
|
||||
func_802B59DC(sp120, (s16) (actor->wheelRot + 0x5B0));
|
||||
mtxf_rotate_x(sp120, (s16) (actor->wheelRot + 0x5B0));
|
||||
vec3f_set(sp160, 17.0f, 6.0f, -8.0f);
|
||||
mtxf_translate(spE0, sp160);
|
||||
func_802B71CC(spA0, sp120, spE0);
|
||||
mtxf_multiplication(spA0, sp120, spE0);
|
||||
|
||||
if (render_set_position(spA0, 3) == 0) { return; }
|
||||
|
||||
gSPDisplayList(gDisplayListHead++, d_course_kalimari_desert_dl_22DB8);
|
||||
gSPPopMatrix(gDisplayListHead++, G_MTX_MODELVIEW);
|
||||
|
||||
func_802B59DC(sp120, (s16) (actor->wheelRot + 0x5B0));
|
||||
mtxf_rotate_x(sp120, (s16) (actor->wheelRot + 0x5B0));
|
||||
vec3f_set(sp160, -17.0f, 6.0f, -8.0f);
|
||||
mtxf_translate(spE0, sp160);
|
||||
func_802B71CC(spA0, sp120, spE0);
|
||||
mtxf_multiplication(spA0, sp120, spE0);
|
||||
|
||||
if (render_set_position(spA0, 3) == 0) { return; }
|
||||
|
||||
gSPDisplayList(gDisplayListHead++, d_course_kalimari_desert_dl_22DB8);
|
||||
gSPPopMatrix(gDisplayListHead++, G_MTX_MODELVIEW);
|
||||
|
||||
func_802B59DC(sp120, (s16) (actor->wheelRot + 0x16C));
|
||||
mtxf_rotate_x(sp120, (s16) (actor->wheelRot + 0x16C));
|
||||
vec3f_set(sp160, 17.0f, 6.0f, -24.0f);
|
||||
mtxf_translate(spE0, sp160);
|
||||
func_802B71CC(spA0, sp120, spE0);
|
||||
mtxf_multiplication(spA0, sp120, spE0);
|
||||
|
||||
if (render_set_position(spA0, 3) == 0) { return; }
|
||||
|
||||
gSPDisplayList(gDisplayListHead++, d_course_kalimari_desert_dl_22DB8);
|
||||
gSPPopMatrix(gDisplayListHead++, G_MTX_MODELVIEW);
|
||||
|
||||
func_802B59DC(sp120, (s16) (actor->wheelRot + 0x16C));
|
||||
mtxf_rotate_x(sp120, (s16) (actor->wheelRot + 0x16C));
|
||||
vec3f_set(sp160, -17.0f, 6.0f, -24.0f);
|
||||
mtxf_translate(spE0, sp160);
|
||||
func_802B71CC(spA0, sp120, spE0);
|
||||
mtxf_multiplication(spA0, sp120, spE0);
|
||||
|
||||
if (render_set_position(spA0, 3) == 0) { return; }
|
||||
|
||||
|
|
@ -3601,14 +3601,14 @@ void func_802A171C(Camera *camera, struct FakeItemBox *fakeItemBox) {
|
|||
someRot[1] = fakeItemBox->rot[1];
|
||||
someRot[2] = 0;
|
||||
func_802B5F74(someMatrix2, fakeItemBox->pos, someRot);
|
||||
func_802B5F00(someMatrix2, fakeItemBox->sizeScaling);
|
||||
mtxf_scale(someMatrix2, fakeItemBox->sizeScaling);
|
||||
if (fakeItemBox->state != 2) {
|
||||
|
||||
if (!render_set_position(someMatrix2, 0)) { return; }
|
||||
|
||||
gSPDisplayList(gDisplayListHead++, common_model_fake_itembox);
|
||||
func_802B5F74(someMatrix2, fakeItemBox->pos, fakeItemBox->rot);
|
||||
func_802B5F00(someMatrix2, fakeItemBox->sizeScaling);
|
||||
mtxf_scale(someMatrix2, fakeItemBox->sizeScaling);
|
||||
|
||||
if (!render_set_position(someMatrix2, 0)) { return; }
|
||||
|
||||
|
|
@ -3638,7 +3638,7 @@ void func_802A171C(Camera *camera, struct FakeItemBox *fakeItemBox) {
|
|||
} else {
|
||||
someMultiplier = 1.0f - ((thing - 10.0f) * 0.1f);
|
||||
}
|
||||
func_802B5F00(someMatrix2, someMultiplier);
|
||||
mtxf_scale(someMatrix2, someMultiplier);
|
||||
if (fakeItemBox->someTimer & 1) {
|
||||
gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2);
|
||||
} else {
|
||||
|
|
@ -3648,7 +3648,7 @@ void func_802A171C(Camera *camera, struct FakeItemBox *fakeItemBox) {
|
|||
someVec[0] = 0.0f;
|
||||
someVec[1] = temp_f2;
|
||||
someVec[2] = thing;
|
||||
func_802B5450(someMatrix2, someMatrix3, someVec);
|
||||
add_translate_mat4_vec3f(someMatrix2, someMatrix3, someVec);
|
||||
|
||||
if (!render_set_position(someMatrix3, 0)) { return; }
|
||||
|
||||
|
|
@ -3658,7 +3658,7 @@ void func_802A171C(Camera *camera, struct FakeItemBox *fakeItemBox) {
|
|||
someVec[0] = temp_f2_2;
|
||||
someVec[1] = 2.3f * thing;
|
||||
someVec[2] = temp_f12;
|
||||
func_802B5450(someMatrix2, someMatrix3, someVec);
|
||||
add_translate_mat4_vec3f(someMatrix2, someMatrix3, someVec);
|
||||
|
||||
if (!render_set_position(someMatrix3, 0)) { return; }
|
||||
|
||||
|
|
@ -3667,7 +3667,7 @@ void func_802A171C(Camera *camera, struct FakeItemBox *fakeItemBox) {
|
|||
someVec[0] = temp_f2_2;
|
||||
someVec[1] = 1.2f * thing;
|
||||
someVec[2] = temp_f0_2;
|
||||
func_802B5450(someMatrix2, someMatrix3, someVec);
|
||||
add_translate_mat4_vec3f(someMatrix2, someMatrix3, someVec);
|
||||
|
||||
if (!render_set_position(someMatrix3, 0)) { return; }
|
||||
|
||||
|
|
@ -3680,7 +3680,7 @@ void func_802A171C(Camera *camera, struct FakeItemBox *fakeItemBox) {
|
|||
someVec[0] = 0.0f;
|
||||
someVec[1] = 1.8f * thing;
|
||||
someVec[2] = -1.0f * thing;
|
||||
func_802B5450(someMatrix2, someMatrix3, someVec);
|
||||
add_translate_mat4_vec3f(someMatrix2, someMatrix3, someVec);
|
||||
|
||||
if (!render_set_position(someMatrix3, 0)) { return; }
|
||||
|
||||
|
|
@ -3689,7 +3689,7 @@ void func_802A171C(Camera *camera, struct FakeItemBox *fakeItemBox) {
|
|||
someVec[0] = temp_f0_3;
|
||||
someVec[1] = 0.6f * thing;
|
||||
someVec[2] = temp_f0_2;
|
||||
func_802B5450(someMatrix2, someMatrix3, someVec);
|
||||
add_translate_mat4_vec3f(someMatrix2, someMatrix3, someVec);
|
||||
|
||||
if (!render_set_position(someMatrix3, 0)) { return; }
|
||||
|
||||
|
|
@ -3697,7 +3697,7 @@ void func_802A171C(Camera *camera, struct FakeItemBox *fakeItemBox) {
|
|||
someVec[0] = temp_f0_3;
|
||||
someVec[1] = temp_f2;
|
||||
someVec[2] = temp_f12;
|
||||
func_802B5450(someMatrix2, someMatrix3, someVec);
|
||||
add_translate_mat4_vec3f(someMatrix2, someMatrix3, someVec);
|
||||
|
||||
if (!render_set_position(someMatrix3, 0)) { return; }
|
||||
|
||||
|
|
@ -3786,7 +3786,7 @@ void func_802A1EA0(Camera *camera, struct ItemBox *item_box) {
|
|||
} else {
|
||||
someMultiplier = 1.0f - ((thing - 10.0f) * 0.1f);
|
||||
}
|
||||
func_802B5F00(someMatrix1, someMultiplier);
|
||||
mtxf_scale(someMatrix1, someMultiplier);
|
||||
if (item_box->someTimer & 1) {
|
||||
gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2);
|
||||
} else {
|
||||
|
|
@ -3796,7 +3796,7 @@ void func_802A1EA0(Camera *camera, struct ItemBox *item_box) {
|
|||
someVec1[0] = 0.0f;
|
||||
someVec1[1] = temp_f2;
|
||||
someVec1[2] = thing;
|
||||
func_802B5450(someMatrix1, someMatrix2, someVec1);
|
||||
add_translate_mat4_vec3f(someMatrix1, someMatrix2, someVec1);
|
||||
|
||||
if (!render_set_position(someMatrix2, 0)) { return; }
|
||||
|
||||
|
|
@ -3806,7 +3806,7 @@ void func_802A1EA0(Camera *camera, struct ItemBox *item_box) {
|
|||
someVec1[0] = temp_f2_2;
|
||||
someVec1[1] = 2.3f * thing;
|
||||
someVec1[2] = temp_f12;
|
||||
func_802B5450(someMatrix1, someMatrix2, someVec1);
|
||||
add_translate_mat4_vec3f(someMatrix1, someMatrix2, someVec1);
|
||||
|
||||
if (!render_set_position(someMatrix2, 0)) { return; }
|
||||
|
||||
|
|
@ -3815,7 +3815,7 @@ void func_802A1EA0(Camera *camera, struct ItemBox *item_box) {
|
|||
someVec1[0] = temp_f2_2;
|
||||
someVec1[1] = 1.2f * thing;
|
||||
someVec1[2] = temp_f0_2;
|
||||
func_802B5450(someMatrix1, someMatrix2, someVec1);
|
||||
add_translate_mat4_vec3f(someMatrix1, someMatrix2, someVec1);
|
||||
|
||||
if (!render_set_position(someMatrix2, 0)) { return; }
|
||||
|
||||
|
|
@ -3828,7 +3828,7 @@ void func_802A1EA0(Camera *camera, struct ItemBox *item_box) {
|
|||
someVec1[0] = 0.0f;
|
||||
someVec1[1] = 1.8f * thing;
|
||||
someVec1[2] = -1.0f * thing;
|
||||
func_802B5450(someMatrix1, someMatrix2, someVec1);
|
||||
add_translate_mat4_vec3f(someMatrix1, someMatrix2, someVec1);
|
||||
|
||||
if (!render_set_position(someMatrix2, 0)) { return; }
|
||||
|
||||
|
|
@ -3837,7 +3837,7 @@ void func_802A1EA0(Camera *camera, struct ItemBox *item_box) {
|
|||
someVec1[0] = temp_f0_3;
|
||||
someVec1[1] = 0.6f * thing;
|
||||
someVec1[2] = temp_f0_2;
|
||||
func_802B5450(someMatrix1, someMatrix2, someVec1);
|
||||
add_translate_mat4_vec3f(someMatrix1, someMatrix2, someVec1);
|
||||
|
||||
if (!render_set_position(someMatrix2, 0)) { return; }
|
||||
|
||||
|
|
@ -3845,7 +3845,7 @@ void func_802A1EA0(Camera *camera, struct ItemBox *item_box) {
|
|||
someVec1[0] = temp_f0_3;
|
||||
someVec1[1] = temp_f2;
|
||||
someVec1[2] = temp_f12;
|
||||
func_802B5450(someMatrix1, someMatrix2, someVec1);
|
||||
add_translate_mat4_vec3f(someMatrix1, someMatrix2, someVec1);
|
||||
|
||||
if (!render_set_position(someMatrix2, 0)) { return; }
|
||||
|
||||
|
|
|
|||
|
|
@ -26,9 +26,9 @@ void func_802B0210(Collision *arg0, Collision *arg1) {
|
|||
arg1->unk3C[1] = arg0->unk3C[1];
|
||||
arg1->unk3C[2] = arg0->unk3C[2];
|
||||
|
||||
vec3f_copy(arg1->unk48, arg0->unk48);
|
||||
vec3f_copy(arg1->unk54, arg0->unk54);
|
||||
vec3f_copy(arg1->unk60, arg0->unk60);
|
||||
vec3f_copy_return(arg1->unk48, arg0->unk48);
|
||||
vec3f_copy_return(arg1->unk54, arg0->unk54);
|
||||
vec3f_copy_return(arg1->unk60, arg0->unk60);
|
||||
}
|
||||
|
||||
void func_802B02B4(struct ShellActor *shell, s32 shellType) {
|
||||
|
|
@ -557,7 +557,7 @@ s32 func_802B19EC(TripleShellParent *parent, Player *player, s16 shellType, u16
|
|||
startingPos[0] = 0.0f;
|
||||
startingPos[1] = -player->boundingBoxSize;
|
||||
startingPos[2] = player->boundingBoxSize - 4.0f;
|
||||
func_802B63B8(startingPos, player->unk_174);
|
||||
mtxf_translate_vec3f_mat3(startingPos, player->unk_174);
|
||||
startingPos[0] += player->pos[0];
|
||||
startingPos[1] += player->pos[1];
|
||||
startingPos[2] += player->pos[2];
|
||||
|
|
@ -603,7 +603,7 @@ s32 func_802B1C9C(Player *player) {
|
|||
startingPos[0] = 0.0f;
|
||||
startingPos[1] = -player->boundingBoxSize;
|
||||
startingPos[2] = player->boundingBoxSize - 4.0f;
|
||||
func_802B63B8(startingPos, player->unk_174);
|
||||
mtxf_translate_vec3f_mat3(startingPos, player->unk_174);
|
||||
startingPos[0] += player->pos[0];
|
||||
startingPos[1] += player->pos[1];
|
||||
startingPos[2] += player->pos[2];
|
||||
|
|
@ -636,7 +636,7 @@ s32 func_802B1E48(Player *player) {
|
|||
startingPos[0] = 0.0f;
|
||||
startingPos[1] = -player->boundingBoxSize;
|
||||
startingPos[2] = player->boundingBoxSize - 4.0f;
|
||||
func_802B63B8(startingPos, player->unk_174);
|
||||
mtxf_translate_vec3f_mat3(startingPos, player->unk_174);
|
||||
startingPos[0] += player->pos[0];
|
||||
startingPos[1] += player->pos[1];
|
||||
startingPos[2] += player->pos[2];
|
||||
|
|
@ -856,7 +856,7 @@ void func_802B2914(struct BananaBunchParent *banana_bunch, Player *player, s16 b
|
|||
startingPos[0] = 0.0f;
|
||||
startingPos[1] = -player->boundingBoxSize;
|
||||
startingPos[2] = -(player->boundingBoxSize + 4.0f);
|
||||
func_802B63B8(startingPos, player->unk_174);
|
||||
mtxf_translate_vec3f_mat3(startingPos, player->unk_174);
|
||||
startingPos[0] += player->pos[0];
|
||||
startingPos[1] += player->pos[1];
|
||||
startingPos[2] += player->pos[2];
|
||||
|
|
@ -933,7 +933,7 @@ s32 func_802B2C40(Player *player) {
|
|||
startingPos[0] = 0.0f;
|
||||
startingPos[1] = -player->boundingBoxSize;
|
||||
startingPos[2] = -(player->boundingBoxSize + 4.0f);
|
||||
func_802B63B8(startingPos, player->unk_174);
|
||||
mtxf_translate_vec3f_mat3(startingPos, player->unk_174);
|
||||
startingPos[0] += player->pos[0];
|
||||
startingPos[1] += player->pos[1];
|
||||
startingPos[2] += player->pos[2];
|
||||
|
|
@ -972,7 +972,7 @@ s32 func_802B2D70(Player *player) {
|
|||
startingPos[0, 0] = 0.0f;
|
||||
startingPos[1] = -player->boundingBoxSize;
|
||||
startingPos[2] = -(player->boundingBoxSize + 4.0f);
|
||||
func_802B63B8(startingPos, player->unk_174);
|
||||
mtxf_translate_vec3f_mat3(startingPos, player->unk_174);
|
||||
startingPos[0] += player->pos[0];
|
||||
startingPos[1] += player->pos[1];
|
||||
startingPos[2] += player->pos[2];
|
||||
|
|
@ -1136,7 +1136,7 @@ void update_actor_green_shell(struct ShellActor *shell) {
|
|||
somePosVel[0] = 0.0f;
|
||||
somePosVel[1] = player->boundingBoxSize;
|
||||
somePosVel[2] = -(player->boundingBoxSize + shell->boundingBoxSize + 2.0f);
|
||||
func_802B63B8(somePosVel, player->unk_174);
|
||||
mtxf_translate_vec3f_mat3(somePosVel, player->unk_174);
|
||||
shell->pos[0] = player->pos[0] + somePosVel[0];
|
||||
pad2 = player->pos[1] - somePosVel[1];
|
||||
shell->pos[2] = player->pos[2] + somePosVel[2];
|
||||
|
|
@ -1216,7 +1216,7 @@ void update_actor_green_shell(struct ShellActor *shell) {
|
|||
somePosVel[0] = sins(shell->rotAngle) * 6.0f;
|
||||
somePosVel[1] = shell->boundingBoxSize - player->boundingBoxSize;
|
||||
somePosVel[2] = coss(shell->rotAngle) * 6.0f;
|
||||
func_802B63B8(somePosVel, player->unk_174);
|
||||
mtxf_translate_vec3f_mat3(somePosVel, player->unk_174);
|
||||
shell->pos[0] = player->pos[0] + somePosVel[0];
|
||||
shell->pos[1] = player->pos[1] + somePosVel[1];
|
||||
shell->pos[2] = player->pos[2] + somePosVel[2];
|
||||
|
|
@ -1257,7 +1257,7 @@ void update_actor_green_shell(struct ShellActor *shell) {
|
|||
somePosVel[0] = sins(shell->rotAngle) * 8.0f;
|
||||
somePosVel[1] = shell->boundingBoxSize - player->boundingBoxSize;
|
||||
somePosVel[2] = coss(shell->rotAngle) * 8.0f;
|
||||
func_802B63B8(somePosVel, player->unk_174);
|
||||
mtxf_translate_vec3f_mat3(somePosVel, player->unk_174);
|
||||
somePos2[0] = shell->pos[0];
|
||||
somePos2[1] = shell->pos[1];
|
||||
somePos2[2] = shell->pos[2];
|
||||
|
|
@ -1515,7 +1515,7 @@ void update_actor_red_blue_shell(struct ShellActor *shell) {
|
|||
somePosVel[0] = 0.0f;
|
||||
somePosVel[1] = player->boundingBoxSize;
|
||||
somePosVel[2] = -(player->boundingBoxSize + shell->boundingBoxSize + 2.0f);
|
||||
func_802B63B8(somePosVel, player->unk_174);
|
||||
mtxf_translate_vec3f_mat3(somePosVel, player->unk_174);
|
||||
shell->pos[0] = player->pos[0] + somePosVel[0];
|
||||
pad7 = player->pos[1] - somePosVel[1];
|
||||
shell->pos[2] = player->pos[2] + somePosVel[2];
|
||||
|
|
@ -1594,7 +1594,7 @@ void update_actor_red_blue_shell(struct ShellActor *shell) {
|
|||
somePosVel[0] = sins(shell->rotAngle) * 8.0f;
|
||||
somePosVel[1] = shell->boundingBoxSize - player->boundingBoxSize;
|
||||
somePosVel[2] = coss(shell->rotAngle) * 8.0f;
|
||||
func_802B63B8(somePosVel, player->unk_174);
|
||||
mtxf_translate_vec3f_mat3(somePosVel, player->unk_174);
|
||||
shell->pos[0] = player->pos[0] + somePosVel[0];
|
||||
shell->pos[1] = player->pos[1] + somePosVel[1];
|
||||
shell->pos[2] = player->pos[2] + somePosVel[2];
|
||||
|
|
@ -1699,7 +1699,7 @@ void update_actor_red_blue_shell(struct ShellActor *shell) {
|
|||
somePosVel[0] = sins(shell->rotAngle) * 8.0f;
|
||||
somePosVel[1] = shell->boundingBoxSize - player->boundingBoxSize;
|
||||
somePosVel[2] = coss(shell->rotAngle) * 8.0f;
|
||||
func_802B63B8(somePosVel, player->unk_174);
|
||||
mtxf_translate_vec3f_mat3(somePosVel, player->unk_174);
|
||||
origPos[0] = shell->pos[0];
|
||||
origPos[1] = shell->pos[1];
|
||||
origPos[2] = shell->pos[2];
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@
|
|||
#include "framebuffers.h"
|
||||
#include <PR/rcp.h>
|
||||
#include <trig_tables.h>
|
||||
#include "math.h"
|
||||
|
||||
#pragma intrinsic (sqrtf,fabs)
|
||||
|
||||
|
|
@ -22,9 +23,9 @@ UNUSED s32 func_802B4F60(UNUSED s32 arg0, Vec3f arg1, UNUSED s32 arg2, UNUSED f3
|
|||
f32 sp2C;
|
||||
UNUSED f32 a;
|
||||
Vec3f sp1C;
|
||||
vec3f_copy(sp1C, arg1);
|
||||
vec3f_copy_return(sp1C, arg1);
|
||||
sp2C = sp30[3][3] + (((sp1C[0] * sp30[0][3]) + (sp1C[1] * sp30[1][3])) + (sp30[2][3] * sp1C[2]));
|
||||
func_802B6434(sp1C, sp30);
|
||||
mtxf_translate_vec3f_mat4(sp1C, sp30);
|
||||
if (sp2C >= 0.0f)
|
||||
{
|
||||
return 0;
|
||||
|
|
@ -63,14 +64,14 @@ s32 render_set_position(Mat4 arg0, s32 arg1) {
|
|||
}
|
||||
|
||||
f32 func_802B51E8(Vec3f arg0, Vec3f arg1) {
|
||||
f32 temp_f12;
|
||||
f32 temp_f14;
|
||||
f32 temp_f2;
|
||||
f32 sub_y;
|
||||
f32 sub_z;
|
||||
f32 sub_x;
|
||||
|
||||
temp_f2 = arg1[0] - arg0[0];
|
||||
temp_f12 = arg1[1] - arg0[1];
|
||||
temp_f14 = arg1[2] - arg0[2];
|
||||
return (temp_f2 * temp_f2) + (temp_f12 * temp_f12) + temp_f14 + temp_f14;
|
||||
sub_x = arg1[0] - arg0[0];
|
||||
sub_y = arg1[1] - arg0[1];
|
||||
sub_z = arg1[2] - arg0[2];
|
||||
return (sub_x * sub_x) + (sub_y * sub_y) + sub_z + sub_z;
|
||||
}
|
||||
|
||||
u32 get_angle_between_points(Vec3f arg0, Vec3f arg1) {
|
||||
|
|
@ -82,6 +83,7 @@ u32 get_angle_between_points(Vec3f arg0, Vec3f arg1) {
|
|||
return atan2s(temp_v1, temp_v2);
|
||||
}
|
||||
|
||||
// get_angle_between_points
|
||||
u32 func_802B5258(Vec3f arg0, Vec3s arg1) {
|
||||
f32 temp_v1;
|
||||
f32 temp_v2;
|
||||
|
|
@ -115,7 +117,7 @@ void vec3s_set(Vec3s arg0, s16 arg1, s16 arg2, s16 arg3) {
|
|||
#endif
|
||||
#endif
|
||||
|
||||
void *vec3f_copy(Vec3f dest, Vec3f src) {
|
||||
void *vec3f_copy_return(Vec3f dest, Vec3f src) {
|
||||
dest[0] = src[0];
|
||||
dest[1] = src[1];
|
||||
dest[2] = src[2];
|
||||
|
|
@ -128,31 +130,33 @@ void vec3s_copy(Vec3s dest, Vec3s src) {
|
|||
dest[2] = src[2];
|
||||
}
|
||||
|
||||
UNUSED void *sm64_vec3f_set(Vec3f dest, f32 x, f32 y, f32 z) {
|
||||
UNUSED void *vec3f_set_return(Vec3f dest, f32 x, f32 y, f32 z) {
|
||||
dest[0] = x;
|
||||
dest[1] = y;
|
||||
dest[2] = z;
|
||||
return &dest;
|
||||
}
|
||||
|
||||
void func_802B5350(Mat4 arg0, Mat4 arg1) {
|
||||
// Copy mat1 to mat2
|
||||
void mtxf_copy(Mat4 mat1, Mat4 mat2) {
|
||||
s32 row;
|
||||
s32 column;
|
||||
|
||||
for (row = 0; row < 4; row++) {
|
||||
for (column = 0; column < 4; column++) {
|
||||
arg1[row][column] = arg0[row][column];
|
||||
mat2[row][column] = mat1[row][column];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// mtxf_copy
|
||||
void func_802B5398(s32 *dest, s32 *src, s32 arg2) {
|
||||
while (arg2-- > 0) {
|
||||
void mtxf_copy_n_element(s32 *dest, s32 *src, s32 n) {
|
||||
while (n-- > 0) {
|
||||
*dest++ = *src++;
|
||||
}
|
||||
}
|
||||
|
||||
// Transform a matrix to a matrix identity
|
||||
void mtxf_identity(Mat4 mtx) {
|
||||
register s32 i;
|
||||
register s32 k;
|
||||
|
|
@ -164,31 +168,41 @@ void mtxf_identity(Mat4 mtx) {
|
|||
}
|
||||
}
|
||||
|
||||
void func_802B5450(Mat4 arg0, Mat4 arg1, Vec3f arg2) {
|
||||
arg1[3][0] = arg0[3][0] + arg2[0];
|
||||
arg1[3][1] = arg0[3][1] + arg2[1];
|
||||
arg1[3][2] = arg0[3][2] + arg2[2];
|
||||
arg1[3][3] = arg0[3][3];
|
||||
arg1[0][0] = arg0[0][0];
|
||||
arg1[0][1] = arg0[0][1];
|
||||
arg1[0][2] = arg0[0][2];
|
||||
arg1[0][3] = arg0[0][3];
|
||||
arg1[1][0] = arg0[1][0];
|
||||
arg1[1][1] = arg0[1][1];
|
||||
arg1[1][2] = arg0[1][2];
|
||||
arg1[1][3] = arg0[1][3];
|
||||
arg1[2][0] = arg0[2][0];
|
||||
arg1[2][1] = arg0[2][1];
|
||||
arg1[2][2] = arg0[2][2];
|
||||
arg1[2][3] = arg0[2][3];
|
||||
// Add a translation vector to a matrix, mat is the matrix to add, dest is the destination matrix, pos is the translation vector
|
||||
void add_translate_mat4_vec3f(Mat4 mat, Mat4 dest, Vec3f pos) {
|
||||
dest[3][0] = mat[3][0] + pos[0];
|
||||
dest[3][1] = mat[3][1] + pos[1];
|
||||
dest[3][2] = mat[3][2] + pos[2];
|
||||
dest[3][3] = mat[3][3];
|
||||
dest[0][0] = mat[0][0];
|
||||
dest[0][1] = mat[0][1];
|
||||
dest[0][2] = mat[0][2];
|
||||
dest[0][3] = mat[0][3];
|
||||
dest[1][0] = mat[1][0];
|
||||
dest[1][1] = mat[1][1];
|
||||
dest[1][2] = mat[1][2];
|
||||
dest[1][3] = mat[1][3];
|
||||
dest[2][0] = mat[2][0];
|
||||
dest[2][1] = mat[2][1];
|
||||
dest[2][2] = mat[2][2];
|
||||
dest[2][3] = mat[2][3];
|
||||
|
||||
/*
|
||||
* mat(0,0) mat(0,1) mat(0,2) mat(0,3)
|
||||
* mat(1,0) mat(1,1) mat(1,2) mat(1,3)
|
||||
* mat(2,0) mat(2,1) mat(2,2) mat(2,3)
|
||||
* mat(3,0)+pos(0) mat(3,1)+pos(1) mat(3,2)+pos(2) mat(3,3)
|
||||
*/
|
||||
}
|
||||
|
||||
UNUSED void func_802B54EC(Mat4 arg0, Mat4 arg1, Vec3f arg2) {
|
||||
arg1[3][0] = arg0[3][0] + arg2[0];
|
||||
arg1[3][1] = arg0[3][1] + arg2[1];
|
||||
arg1[3][2] = arg0[3][2] + arg2[2];
|
||||
// Light version of add_translate_mat4_vec3f
|
||||
UNUSED void add_translate_mat4_vec3f_lite(Mat4 mat, Mat4 dest, Vec3f pos) {
|
||||
dest[3][0] = mat[3][0] + pos[0];
|
||||
dest[3][1] = mat[3][1] + pos[1];
|
||||
dest[3][2] = mat[3][2] + pos[2];
|
||||
}
|
||||
|
||||
// create a translation matrix
|
||||
void mtxf_translate(Mat4 dest, Vec3f b) {
|
||||
mtxf_identity(dest);
|
||||
dest[3][0] = b[0];
|
||||
|
|
@ -296,37 +310,61 @@ void func_802B5794(Mat4 mtx, Vec3f from, Vec3f to) {
|
|||
mtx[3][3] = 1.0f;
|
||||
}
|
||||
|
||||
void func_802B59DC(Mat4 arg0, s16 arg1) {
|
||||
f32 sp28 = sins(arg1);
|
||||
f32 temp_f0 = coss(arg1);
|
||||
// create a rotation matrix around the x axis
|
||||
void mtxf_rotate_x(Mat4 mat, s16 angle) {
|
||||
f32 sin_theta = sins(angle);
|
||||
f32 cos_theta = coss(angle);
|
||||
|
||||
mtxf_identity(arg0);
|
||||
arg0[1][1] = temp_f0;
|
||||
arg0[1][2] = sp28;
|
||||
arg0[2][1] = -sp28;
|
||||
arg0[2][2] = temp_f0;
|
||||
mtxf_identity(mat);
|
||||
mat[1][1] = cos_theta;
|
||||
mat[1][2] = sin_theta;
|
||||
mat[2][1] = -sin_theta;
|
||||
mat[2][2] = cos_theta;
|
||||
|
||||
/*
|
||||
* 1, 0, 0, 0,
|
||||
* 0, cos_theta, sin_theta, 0,
|
||||
* 0, -sin_theta, cos_theta, 0,
|
||||
* 0, 0, 0, 1
|
||||
*/
|
||||
}
|
||||
|
||||
void func_802B5A44(Mat4 arg0, s16 arg1) {
|
||||
f32 temp_f0 = sins(arg1);
|
||||
f32 sp28 = coss(arg1);
|
||||
// create a rotation matrix around the y axis
|
||||
void mtxf_rotate_y(Mat4 mat, s16 angle) {
|
||||
f32 sin_theta = sins(angle);
|
||||
f32 cos_theta = coss(angle);
|
||||
|
||||
mtxf_identity(arg0);
|
||||
arg0[0][0] = sp28;
|
||||
arg0[0][2] = -temp_f0;
|
||||
arg0[2][0] = temp_f0;
|
||||
arg0[2][2] = sp28;
|
||||
mtxf_identity(mat);
|
||||
mat[0][0] = cos_theta;
|
||||
mat[0][2] = -sin_theta;
|
||||
mat[2][0] = sin_theta;
|
||||
mat[2][2] = cos_theta;
|
||||
|
||||
/*
|
||||
* cos_theta, 0, -sin_theta, 0,
|
||||
* 0, 1, 0, 0,
|
||||
* sin_theta, 0, cos_theta, 0,
|
||||
* 0, 0, 0, 1
|
||||
*/
|
||||
}
|
||||
|
||||
void func_802B5AAC(Mat4 arg0, s16 arg1) {
|
||||
f32 temp_f0 = sins(arg1);
|
||||
f32 sp28 = coss(arg1);
|
||||
// create a rotation matrix around the z axis
|
||||
void mtxf_s16_rotate_z(Mat4 mat, s16 angle) {
|
||||
f32 sin_theta = sins(angle);
|
||||
f32 cos_theta = coss(angle);
|
||||
|
||||
mtxf_identity(arg0);
|
||||
arg0[0][0] = sp28;
|
||||
arg0[0][1] = temp_f0;
|
||||
arg0[1][0] = -temp_f0;
|
||||
arg0[1][1] = sp28;
|
||||
mtxf_identity(mat);
|
||||
mat[0][0] = cos_theta;
|
||||
mat[0][1] = sin_theta;
|
||||
mat[1][0] = -sin_theta;
|
||||
mat[1][1] = cos_theta;
|
||||
|
||||
/*
|
||||
* cos_theta, sin_theta, 0, 0,
|
||||
* -sin_theta, cos_theta, 0, 0,
|
||||
* 0, 0, 1, 0,
|
||||
* 0, 0, 0, 1
|
||||
*/
|
||||
}
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
|
|
@ -426,18 +464,20 @@ void func_802B5D64(uintptr_t arg0, s16 arg1, s16 arg2, s32 arg3) {
|
|||
}
|
||||
}
|
||||
|
||||
void func_802B5F00(Mat4 arg0, f32 arg1) {
|
||||
arg0[0][0] *= arg1;
|
||||
arg0[1][0] *= arg1;
|
||||
arg0[2][0] *= arg1;
|
||||
arg0[0][1] *= arg1;
|
||||
arg0[1][1] *= arg1;
|
||||
arg0[2][1] *= arg1;
|
||||
arg0[0][2] *= arg1;
|
||||
arg0[1][2] *= arg1;
|
||||
arg0[2][2] *= arg1;
|
||||
// multiply a matrix with a number
|
||||
void mtxf_scale(Mat4 mat, f32 coef) {
|
||||
mat[0][0] *= coef;
|
||||
mat[1][0] *= coef;
|
||||
mat[2][0] *= coef;
|
||||
mat[0][1] *= coef;
|
||||
mat[1][1] *= coef;
|
||||
mat[2][1] *= coef;
|
||||
mat[0][2] *= coef;
|
||||
mat[1][2] *= coef;
|
||||
mat[2][2] *= coef;
|
||||
}
|
||||
|
||||
// look like create a translation and rotation matrix with arg1 position and arg2 rotation
|
||||
void func_802B5F74(Mat4 arg0, Vec3f arg1, Vec3s arg2) {
|
||||
f32 sine1;
|
||||
f32 cosine1;
|
||||
|
|
@ -534,6 +574,7 @@ UNUSED void func_802B6214(Mat4 arg0, Vec3s arg1, Vec3s arg2) {
|
|||
arg0[3][3] = 1.0f;
|
||||
}
|
||||
|
||||
// look like to normalise vector
|
||||
UNUSED void func_802B6374(Vec3f arg0) {
|
||||
f32 temp_f0;
|
||||
temp_f0 = sqrtf((arg0[0] * arg0[0]) + (arg0[1] * arg0[1]) + (arg0[2] * arg0[2]));
|
||||
|
|
@ -542,34 +583,35 @@ UNUSED void func_802B6374(Vec3f arg0) {
|
|||
arg0[2] /= temp_f0;
|
||||
}
|
||||
|
||||
void func_802B63B8(Vec3f arg0, Mat3 arg1) {
|
||||
f32 temp_f12;
|
||||
f32 temp_f16;
|
||||
f32 temp_f14;
|
||||
// translate the vector with a matrix
|
||||
void mtxf_translate_vec3f_mat3(Vec3f pos, Mat3 mat) {
|
||||
f32 new_x;
|
||||
f32 new_y;
|
||||
f32 new_z;
|
||||
|
||||
temp_f12 = (arg1[0][0] * arg0[0]) + (arg1[0][1] * arg0[1]) + (arg1[0][2] * arg0[2]);
|
||||
temp_f16 = (arg1[1][0] * arg0[0]) + (arg1[1][1] * arg0[1]) + (arg1[1][2] * arg0[2]);
|
||||
temp_f14 = (arg1[2][0] * arg0[0]) + (arg1[2][1] * arg0[1]) + (arg1[2][2] * arg0[2]);
|
||||
new_x = (mat[0][0] * pos[0]) + (mat[0][1] * pos[1]) + (mat[0][2] * pos[2]);
|
||||
new_y = (mat[1][0] * pos[0]) + (mat[1][1] * pos[1]) + (mat[1][2] * pos[2]);
|
||||
new_z = (mat[2][0] * pos[0]) + (mat[2][1] * pos[1]) + (mat[2][2] * pos[2]);
|
||||
|
||||
arg0[0] = temp_f12;
|
||||
arg0[1] = temp_f16;
|
||||
arg0[2] = temp_f14;
|
||||
pos[0] = new_x;
|
||||
pos[1] = new_y;
|
||||
pos[2] = new_z;
|
||||
}
|
||||
|
||||
void func_802B6434(Vec3f arg0, Mat4 arg1) {
|
||||
// translate the vector with a matrix (with a matrix 4x4)
|
||||
void mtxf_translate_vec3f_mat4(Vec3f pos, Mat4 mat) {
|
||||
f32 new_x;
|
||||
f32 new_y;
|
||||
f32 new_z;
|
||||
|
||||
f32 temp_f2;
|
||||
f32 temp_f16;
|
||||
f32 temp_f6;
|
||||
|
||||
temp_f2 = ((arg1[0][0] * arg0[0]) + (arg1[0][1] * arg0[1]) + (arg1[0][2] * arg0[2]));
|
||||
temp_f16 = ((arg1[1][0] * arg0[0]) + (arg1[1][1] * arg0[1]) + (arg1[1][2] * arg0[2]));
|
||||
temp_f6 = (arg1[2][0] * arg0[0]) + (arg1[2][1] * arg0[1]) + (arg1[2][2] * arg0[2]);
|
||||
new_x = (mat[0][0] * pos[0]) + (mat[0][1] * pos[1]) + (mat[0][2] * pos[2]);
|
||||
new_y = (mat[1][0] * pos[0]) + (mat[1][1] * pos[1]) + (mat[1][2] * pos[2]);
|
||||
new_z = (mat[2][0] * pos[0]) + (mat[2][1] * pos[1]) + (mat[2][2] * pos[2]);
|
||||
|
||||
|
||||
arg0[0] = temp_f2;
|
||||
arg0[1] = temp_f16;
|
||||
arg0[2] = temp_f6;
|
||||
pos[0] = new_x;
|
||||
pos[1] = new_y;
|
||||
pos[2] = new_z;
|
||||
}
|
||||
|
||||
UNUSED void func_802B64B0(UNUSED s32 arg0, UNUSED s32 arg1, UNUSED s32 arg2, UNUSED s32 arg3) {
|
||||
|
|
@ -589,8 +631,8 @@ void func_802B64C4(Vec3f arg0, s16 arg1) {
|
|||
arg0[2] = sp2C * temp1 + (temp_f0 * temp3);
|
||||
}
|
||||
|
||||
void func_802B6540(Mat3 arg0, f32 arg1, f32 arg2, f32 arg3, s16 arg4) {
|
||||
Mat3 mtx2;
|
||||
void func_802B6540(Mat3 dest, f32 arg1, f32 arg2, f32 arg3, s16 arg4) {
|
||||
Mat3 mtx_rot_y;
|
||||
Mat3 matrix;
|
||||
s32 i, j;
|
||||
f32 a;
|
||||
|
|
@ -603,19 +645,19 @@ void func_802B6540(Mat3 arg0, f32 arg1, f32 arg2, f32 arg3, s16 arg4) {
|
|||
|
||||
sinValue = sins(arg4);
|
||||
cossValue = coss(arg4);
|
||||
mtx2[0][0] = cossValue;
|
||||
mtx2[2][1] = 0;
|
||||
mtx2[1][2] = 0;
|
||||
mtx_rot_y[0][0] = cossValue;
|
||||
mtx_rot_y[2][1] = 0;
|
||||
mtx_rot_y[1][2] = 0;
|
||||
|
||||
mtx2[1][1] = 1;
|
||||
mtx2[2][0] = sinValue;
|
||||
mtx2[0][2] = -sinValue;
|
||||
mtx_rot_y[1][1] = 1;
|
||||
mtx_rot_y[2][0] = sinValue;
|
||||
mtx_rot_y[0][2] = -sinValue;
|
||||
|
||||
mtx2[2][2] = cossValue;
|
||||
mtx2[1][0] = 0;
|
||||
mtx2[0][1] = 0;
|
||||
mtx_rot_y[2][2] = cossValue;
|
||||
mtx_rot_y[1][0] = 0;
|
||||
mtx_rot_y[0][1] = 0;
|
||||
|
||||
if (arg2 == 1) {
|
||||
if (arg2 == 1) { // set matrix to identity
|
||||
|
||||
for (i = 0; i < 3; i++) {
|
||||
for (j = 0; j < 3; j++) {
|
||||
|
|
@ -623,7 +665,7 @@ void func_802B6540(Mat3 arg0, f32 arg1, f32 arg2, f32 arg3, s16 arg4) {
|
|||
}
|
||||
}
|
||||
|
||||
} else if (arg2 == -1) {
|
||||
} else if (arg2 == -1) { // set matrix to identity with the second column negative
|
||||
|
||||
for (i = 0; i < 3; i++) {
|
||||
for (j = 0; j < 3; j++) {
|
||||
|
|
@ -634,27 +676,28 @@ void func_802B6540(Mat3 arg0, f32 arg1, f32 arg2, f32 arg3, s16 arg4) {
|
|||
matrix[1][1] = -1;
|
||||
|
||||
} else {
|
||||
a = (f32) -(360.0 - ((f64) (func_802B7CE8(arg2) * 180.0f) / 3.141592653589793));
|
||||
a = (f32) -(360.0 - ((f64) (func_802B7CE8(arg2) * 180.0f) / M_PI));
|
||||
b = -arg3 / sqrtf((arg1 * arg1) + (arg3 * arg3));
|
||||
c = 0;
|
||||
d = arg1 / sqrtf((arg1 * arg1) + (arg3 * arg3));
|
||||
func_802B6A84(matrix, a, b, c, d);
|
||||
|
||||
}
|
||||
arg0[0][0] = (mtx2[0][0] * matrix[0][0]) + (mtx2[0][1] * matrix[1][0]) + (mtx2[0][2] * matrix[2][0]);
|
||||
arg0[1][0] = (mtx2[1][0] * matrix[0][0]) + (mtx2[1][1] * matrix[1][0]) + (mtx2[1][2] * matrix[2][0]);
|
||||
arg0[2][0] = (mtx2[2][0] * matrix[0][0]) + (mtx2[2][1] * matrix[1][0]) + (mtx2[2][2] * matrix[2][0]);
|
||||
dest[0][0] = (mtx_rot_y[0][0] * matrix[0][0]) + (mtx_rot_y[0][1] * matrix[1][0]) + (mtx_rot_y[0][2] * matrix[2][0]);
|
||||
dest[1][0] = (mtx_rot_y[1][0] * matrix[0][0]) + (mtx_rot_y[1][1] * matrix[1][0]) + (mtx_rot_y[1][2] * matrix[2][0]);
|
||||
dest[2][0] = (mtx_rot_y[2][0] * matrix[0][0]) + (mtx_rot_y[2][1] * matrix[1][0]) + (mtx_rot_y[2][2] * matrix[2][0]);
|
||||
|
||||
arg0[0][1] = (mtx2[0][0] * matrix[0][1]) + (mtx2[0][1] * matrix[1][1]) + (mtx2[0][2] * matrix[2][1]);
|
||||
arg0[1][1] = (mtx2[1][0] * matrix[0][1]) + (mtx2[1][1] * matrix[1][1]) + (mtx2[1][2] * matrix[2][1]);
|
||||
arg0[2][1] = (mtx2[2][0] * matrix[0][1]) + (mtx2[2][1] * matrix[1][1]) + (mtx2[2][2] * matrix[2][1]);
|
||||
dest[0][1] = (mtx_rot_y[0][0] * matrix[0][1]) + (mtx_rot_y[0][1] * matrix[1][1]) + (mtx_rot_y[0][2] * matrix[2][1]);
|
||||
dest[1][1] = (mtx_rot_y[1][0] * matrix[0][1]) + (mtx_rot_y[1][1] * matrix[1][1]) + (mtx_rot_y[1][2] * matrix[2][1]);
|
||||
dest[2][1] = (mtx_rot_y[2][0] * matrix[0][1]) + (mtx_rot_y[2][1] * matrix[1][1]) + (mtx_rot_y[2][2] * matrix[2][1]);
|
||||
|
||||
arg0[0][2] = (mtx2[0][0] * matrix[0][2]) + (mtx2[0][1] * matrix[1][2]) + (mtx2[0][2] * matrix[2][2]);
|
||||
arg0[1][2] = (mtx2[1][0] * matrix[0][2]) + (mtx2[1][1] * matrix[1][2]) + (mtx2[1][2] * matrix[2][2]);
|
||||
arg0[2][2] = (mtx2[2][0] * matrix[0][2]) + (mtx2[2][1] * matrix[1][2]) + (mtx2[2][2] * matrix[2][2]);
|
||||
dest[0][2] = (mtx_rot_y[0][0] * matrix[0][2]) + (mtx_rot_y[0][1] * matrix[1][2]) + (mtx_rot_y[0][2] * matrix[2][2]);
|
||||
dest[1][2] = (mtx_rot_y[1][0] * matrix[0][2]) + (mtx_rot_y[1][1] * matrix[1][2]) + (mtx_rot_y[1][2] * matrix[2][2]);
|
||||
dest[2][2] = (mtx_rot_y[2][0] * matrix[0][2]) + (mtx_rot_y[2][1] * matrix[1][2]) + (mtx_rot_y[2][2] * matrix[2][2]);
|
||||
|
||||
}
|
||||
|
||||
// include in func_802B6540
|
||||
UNUSED void func_802B68F8(Mat3 matrix, f32 arg1, f32 arg2, f32 arg3) {
|
||||
s32 i, j;
|
||||
f32 a;
|
||||
|
|
@ -677,7 +720,7 @@ UNUSED void func_802B68F8(Mat3 matrix, f32 arg1, f32 arg2, f32 arg3) {
|
|||
}
|
||||
matrix[1][1] = -1.0f;
|
||||
} else {
|
||||
a = (f32) -(360.0 - ((f64) (func_802B7CE8(arg2) * 180.0f) / 3.141592653589793));
|
||||
a = (f32) -(360.0 - ((f64) (func_802B7CE8(arg2) * 180.0f) / M_PI));
|
||||
b = -arg3 / sqrtf((arg1 * arg1) + (arg3 * arg3));
|
||||
c = 0;
|
||||
d = arg1 / sqrtf((arg1 * arg1) + (arg3 * arg3));
|
||||
|
|
@ -756,6 +799,7 @@ void func_802B6BC0(Mat4 arg0, s16 arg1, f32 arg2, f32 arg3, f32 arg4) {
|
|||
}
|
||||
}
|
||||
|
||||
// look like create a translation and rotation matrix with arg1 position and arg2 rotation
|
||||
void func_802B6D58(Mat4 arg0, Vec3f arg1, Vec3f arg2) {
|
||||
f32 sine1;
|
||||
f32 cosine1;
|
||||
|
|
@ -788,25 +832,25 @@ void func_802B6D58(Mat4 arg0, Vec3f arg1, Vec3f arg2) {
|
|||
arg0[3][3] = 1.0f;
|
||||
}
|
||||
|
||||
void func_802B71CC(Mat4 arg0, Mat4 arg1, Mat4 arg2) {
|
||||
void mtxf_multiplication(Mat4 dest, Mat4 mat1, Mat4 mat2) {
|
||||
Mat4 product;
|
||||
product[0][0] = (arg1[0][0] * arg2[0][0]) + (arg1[0][1] * arg2[1][0]) + (arg1[0][2] * arg2[2][0]) + (arg1[0][3] * arg2[3][0]);
|
||||
product[0][1] = (arg1[0][0] * arg2[0][1]) + (arg1[0][1] * arg2[1][1]) + (arg1[0][2] * arg2[2][1]) + (arg1[0][3] * arg2[3][1]);
|
||||
product[0][2] = (arg1[0][0] * arg2[0][2]) + (arg1[0][1] * arg2[1][2]) + (arg1[0][2] * arg2[2][2]) + (arg1[0][3] * arg2[3][2]);
|
||||
product[0][3] = (arg1[0][0] * arg2[0][3]) + (arg1[0][1] * arg2[1][3]) + (arg1[0][2] * arg2[2][3]) + (arg1[0][3] * arg2[3][3]);
|
||||
product[1][0] = (arg1[1][0] * arg2[0][0]) + (arg1[1][1] * arg2[1][0]) + (arg1[1][2] * arg2[2][0]) + (arg1[1][3] * arg2[3][0]);
|
||||
product[1][1] = (arg1[1][0] * arg2[0][1]) + (arg1[1][1] * arg2[1][1]) + (arg1[1][2] * arg2[2][1]) + (arg1[1][3] * arg2[3][1]);
|
||||
product[1][2] = (arg1[1][0] * arg2[0][2]) + (arg1[1][1] * arg2[1][2]) + (arg1[1][2] * arg2[2][2]) + (arg1[1][3] * arg2[3][2]);
|
||||
product[1][3] = (arg1[1][0] * arg2[0][3]) + (arg1[1][1] * arg2[1][3]) + (arg1[1][2] * arg2[2][3]) + (arg1[1][3] * arg2[3][3]);
|
||||
product[2][0] = (arg1[2][0] * arg2[0][0]) + (arg1[2][1] * arg2[1][0]) + (arg1[2][2] * arg2[2][0]) + (arg1[2][3] * arg2[3][0]);
|
||||
product[2][1] = (arg1[2][0] * arg2[0][1]) + (arg1[2][1] * arg2[1][1]) + (arg1[2][2] * arg2[2][1]) + (arg1[2][3] * arg2[3][1]);
|
||||
product[2][2] = (arg1[2][0] * arg2[0][2]) + (arg1[2][1] * arg2[1][2]) + (arg1[2][2] * arg2[2][2]) + (arg1[2][3] * arg2[3][2]);
|
||||
product[2][3] = (arg1[2][0] * arg2[0][3]) + (arg1[2][1] * arg2[1][3]) + (arg1[2][2] * arg2[2][3]) + (arg1[2][3] * arg2[3][3]);
|
||||
product[3][0] = (arg1[3][0] * arg2[0][0]) + (arg1[3][1] * arg2[1][0]) + (arg1[3][2] * arg2[2][0]) + (arg1[3][3] * arg2[3][0]);
|
||||
product[3][1] = (arg1[3][0] * arg2[0][1]) + (arg1[3][1] * arg2[1][1]) + (arg1[3][2] * arg2[2][1]) + (arg1[3][3] * arg2[3][1]);
|
||||
product[3][2] = (arg1[3][0] * arg2[0][2]) + (arg1[3][1] * arg2[1][2]) + (arg1[3][2] * arg2[2][2]) + (arg1[3][3] * arg2[3][2]);
|
||||
product[3][3] = (arg1[3][0] * arg2[0][3]) + (arg1[3][1] * arg2[1][3]) + (arg1[3][2] * arg2[2][3]) + (arg1[3][3] * arg2[3][3]);
|
||||
func_802B5398((s32 *)arg0, (s32 *)product, 0x10);
|
||||
product[0][0] = (mat1[0][0] * mat2[0][0]) + (mat1[0][1] * mat2[1][0]) + (mat1[0][2] * mat2[2][0]) + (mat1[0][3] * mat2[3][0]);
|
||||
product[0][1] = (mat1[0][0] * mat2[0][1]) + (mat1[0][1] * mat2[1][1]) + (mat1[0][2] * mat2[2][1]) + (mat1[0][3] * mat2[3][1]);
|
||||
product[0][2] = (mat1[0][0] * mat2[0][2]) + (mat1[0][1] * mat2[1][2]) + (mat1[0][2] * mat2[2][2]) + (mat1[0][3] * mat2[3][2]);
|
||||
product[0][3] = (mat1[0][0] * mat2[0][3]) + (mat1[0][1] * mat2[1][3]) + (mat1[0][2] * mat2[2][3]) + (mat1[0][3] * mat2[3][3]);
|
||||
product[1][0] = (mat1[1][0] * mat2[0][0]) + (mat1[1][1] * mat2[1][0]) + (mat1[1][2] * mat2[2][0]) + (mat1[1][3] * mat2[3][0]);
|
||||
product[1][1] = (mat1[1][0] * mat2[0][1]) + (mat1[1][1] * mat2[1][1]) + (mat1[1][2] * mat2[2][1]) + (mat1[1][3] * mat2[3][1]);
|
||||
product[1][2] = (mat1[1][0] * mat2[0][2]) + (mat1[1][1] * mat2[1][2]) + (mat1[1][2] * mat2[2][2]) + (mat1[1][3] * mat2[3][2]);
|
||||
product[1][3] = (mat1[1][0] * mat2[0][3]) + (mat1[1][1] * mat2[1][3]) + (mat1[1][2] * mat2[2][3]) + (mat1[1][3] * mat2[3][3]);
|
||||
product[2][0] = (mat1[2][0] * mat2[0][0]) + (mat1[2][1] * mat2[1][0]) + (mat1[2][2] * mat2[2][0]) + (mat1[2][3] * mat2[3][0]);
|
||||
product[2][1] = (mat1[2][0] * mat2[0][1]) + (mat1[2][1] * mat2[1][1]) + (mat1[2][2] * mat2[2][1]) + (mat1[2][3] * mat2[3][1]);
|
||||
product[2][2] = (mat1[2][0] * mat2[0][2]) + (mat1[2][1] * mat2[1][2]) + (mat1[2][2] * mat2[2][2]) + (mat1[2][3] * mat2[3][2]);
|
||||
product[2][3] = (mat1[2][0] * mat2[0][3]) + (mat1[2][1] * mat2[1][3]) + (mat1[2][2] * mat2[2][3]) + (mat1[2][3] * mat2[3][3]);
|
||||
product[3][0] = (mat1[3][0] * mat2[0][0]) + (mat1[3][1] * mat2[1][0]) + (mat1[3][2] * mat2[2][0]) + (mat1[3][3] * mat2[3][0]);
|
||||
product[3][1] = (mat1[3][0] * mat2[0][1]) + (mat1[3][1] * mat2[1][1]) + (mat1[3][2] * mat2[2][1]) + (mat1[3][3] * mat2[3][1]);
|
||||
product[3][2] = (mat1[3][0] * mat2[0][2]) + (mat1[3][1] * mat2[1][2]) + (mat1[3][2] * mat2[2][2]) + (mat1[3][3] * mat2[3][2]);
|
||||
product[3][3] = (mat1[3][0] * mat2[0][3]) + (mat1[3][1] * mat2[1][3]) + (mat1[3][2] * mat2[2][3]) + (mat1[3][3] * mat2[3][3]);
|
||||
mtxf_copy_n_element((s32 *)dest, (s32 *)product, 16);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -946,7 +990,7 @@ UNUSED f32 func_802B79F0(f32 arg0, f32 arg1) {
|
|||
}
|
||||
|
||||
UNUSED u16 func_802B7B50(f32 arg0, f32 arg1) {
|
||||
return ((func_802B79B8(arg0, arg1) * 32768.0f) / 3.141592653589793);
|
||||
return ((func_802B79B8(arg0, arg1) * 32768.0f) / M_PI);
|
||||
}
|
||||
|
||||
UNUSED void func_802B7C18(f32 arg0) {
|
||||
|
|
@ -970,7 +1014,7 @@ f32 func_802B7CE8(f32 arg0) {
|
|||
}
|
||||
|
||||
UNUSED s16 func_802B7D28(f32 arg0) {
|
||||
return func_802B79B8(sqrtf(1.0 - (f64)(arg0 * arg0)), arg0) * 32768.0f / 3.141592653589793;
|
||||
return func_802B79B8(sqrtf(1.0 - (f64)(arg0 * arg0)), arg0) * 32768.0f / M_PI;
|
||||
}
|
||||
|
||||
u16 random_u16(void) {
|
||||
|
|
@ -1009,18 +1053,18 @@ s16 func_802B7F34(f32 arg0, f32 arg1, f32 arg2, f32 arg3) {
|
|||
return atan2s(arg2 - arg0, arg3 - arg1);
|
||||
}
|
||||
|
||||
void func_802B7F7C(Vec3f arg0, Vec3f arg1, Vec3s arg2) {
|
||||
f32 temp_f14 = arg0[0];
|
||||
f32 sp28 = arg0[1];
|
||||
f32 temp_f12 = arg0[2];
|
||||
void func_802B7F7C(Vec3f arg0, Vec3f arg1, Vec3s dest) {
|
||||
f32 x1 = arg0[0];
|
||||
f32 y1 = arg0[1];
|
||||
f32 z1 = arg0[2];
|
||||
|
||||
f32 temp_f2 = arg1[0];
|
||||
f32 sp1C = arg1[1];
|
||||
f32 temp_f0 = arg1[2];
|
||||
f32 x2 = arg1[0];
|
||||
f32 y2 = arg1[1];
|
||||
f32 z2 = arg1[2];
|
||||
|
||||
arg2[1] = func_802B7F34(temp_f12, temp_f14, temp_f0, temp_f2);
|
||||
arg2[0] = func_802B7F34(sp28, temp_f12, sp1C, temp_f0);
|
||||
arg2[2] = func_802B7F34(temp_f14, sp28, temp_f2, sp1C);
|
||||
dest[1] = func_802B7F34(z1, x1, z2, x2);
|
||||
dest[0] = func_802B7F34(y1, z1, y2, z2);
|
||||
dest[2] = func_802B7F34(x1, y1, x2, y2);
|
||||
}
|
||||
|
||||
f32 sins(u16 arg0) {
|
||||
|
|
@ -1113,7 +1157,7 @@ f32 is_within_render_distance(Vec3f cameraPos, Vec3f objectPos, u16 orientationY
|
|||
}
|
||||
|
||||
// No idea if arg1 is actually a Mat4 or not, but since this function is unused
|
||||
// its impossible to know with certainty either way
|
||||
// its impossible to know with certainty either way, very close of func_802B5D64
|
||||
UNUSED void func_802B8414(uintptr_t arg0, Mat4 arg1, s16 arg2, s16 arg3, s32 arg4) {
|
||||
UNUSED s32 pad[3];
|
||||
Vec3f sp40;
|
||||
|
|
|
|||
|
|
@ -22,31 +22,32 @@ u32 get_angle_between_points(Vec3f, Vec3f);
|
|||
u32 func_802B5258(Vec3f, Vec3s);
|
||||
void vec3f_set(Vec3f, f32, f32, f32);
|
||||
void vec3s_set(Vec3s, s16, s16, s16);
|
||||
void *vec3f_copy(Vec3f, Vec3f);
|
||||
void *vec3f_copy_return(Vec3f, Vec3f);
|
||||
void vec3s_copy(Vec3s, Vec3s);
|
||||
void func_802B5350(Mat4, Mat4);
|
||||
void func_802B5398(s32*, s32*, s32);
|
||||
void *vec3f_set_return(Vec3f, f32, f32, f32);
|
||||
void mtxf_copy(Mat4, Mat4);
|
||||
void mtxf_copy_n_element(s32*, s32*, s32);
|
||||
void mtxf_identity(Mat4);
|
||||
void func_802B5450(Mat4, Mat4, Vec3f);
|
||||
void add_translate_mat4_vec3f(Mat4, Mat4, Vec3f);
|
||||
void add_translate_mat4_vec3f_lite(Mat4, Mat4, Vec3f);
|
||||
void mtxf_translate(Mat4, Vec3f);
|
||||
void func_802B5564(Mat4, u16*, f32, f32, f32, f32, f32);
|
||||
void func_802B5794(Mat4, Vec3f, Vec3f);
|
||||
void func_802B59DC(Mat4, s16);
|
||||
void func_802B5A44(Mat4, s16);
|
||||
void func_802B5AAC(Mat4, s16);
|
||||
void mtxf_rotate_x(Mat4, s16);
|
||||
void mtxf_rotate_y(Mat4, s16);
|
||||
void mtxf_s16_rotate_z(Mat4, s16);
|
||||
void func_802B5CAC(s16, s16, Vec3f);
|
||||
void func_802B5D30(s16, s16, s32);
|
||||
void func_802B5D64(uintptr_t, s16, s16, s32);
|
||||
void func_802B5F00(Mat4, f32);
|
||||
void mtxf_scale(Mat4, f32);
|
||||
void func_802B5F74(Mat4, Vec3f, Vec3s);
|
||||
void func_802B63B8(Vec3f, Mat3);
|
||||
void func_802B6434(Vec3f, Mat4);
|
||||
void mtxf_translate_vec3f_mat3(Vec3f, Mat3);
|
||||
void mtxf_translate_vec3f_mat4(Vec3f, Mat4);
|
||||
void func_802B64C4(Vec3f, s16);
|
||||
void func_802B6540(Mat3, f32, f32, f32, s16);
|
||||
void func_802B6A84(Mat3, s16, f32, f32, f32);
|
||||
void func_802B6BC0(Mat4, s16, f32, f32, f32);
|
||||
void func_802B6D58(Mat4, Vec3f, Vec3f);
|
||||
void func_802B71CC(Mat4, Mat4, Mat4);
|
||||
void mtxf_multiplication(Mat4, Mat4, Mat4);
|
||||
void mtxf_to_mtx(Mtx*, Mat4);
|
||||
u16 atan2_lookup(f32, f32);
|
||||
u16 atan2s(f32, f32);
|
||||
|
|
|
|||
|
|
@ -465,11 +465,11 @@ void func_802A4A0C(Vtx *vtx, struct UnkStruct_800DC5EC *arg1, UNUSED s32 arg2, U
|
|||
sp5C[2] = 30000.0f;
|
||||
func_802B5564(matrix1, &sp128, camera->unk_B4, D_80150148, D_80150150, D_8015014C, 1.0f);
|
||||
func_802B5794(matrix2, camera->pos, camera->lookAt);
|
||||
func_802B71CC(matrix3, matrix1, matrix2);
|
||||
mtxf_multiplication(matrix3, matrix1, matrix2);
|
||||
|
||||
sp58 = ((matrix3[0][3] * sp5C[0]) + (matrix3[1][3] * sp5C[1]) + (matrix3[2][3] * sp5C[2])) + matrix3[3][3];
|
||||
|
||||
func_802B6434(sp5C, matrix3);
|
||||
mtxf_translate_vec3f_mat4(sp5C, matrix3);
|
||||
|
||||
temp_f0 = (1.0 / sp58);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue