mirror of https://github.com/n64decomp/mk64.git
Merge branch 'master' into time_trials
This commit is contained in:
commit
158bf6ef48
|
@ -15,8 +15,8 @@ void render_actor_banana(Camera* camera, UNUSED Mat4 arg1, struct BananaActor* b
|
|||
Vec3s sp7C;
|
||||
Mat4 sp3C;
|
||||
|
||||
f32 temp = is_within_render_distance(camera->pos, banana->pos, camera->rot[1], 0, gCameraZoom[camera - camera1],
|
||||
490000.0f);
|
||||
f32 temp =
|
||||
distance_if_visible(camera->pos, banana->pos, camera->rot[1], 0, gCameraZoom[camera - camera1], 490000.0f);
|
||||
if (temp < 0.0f) {
|
||||
actor_not_rendered(camera, (struct Actor*) banana);
|
||||
return;
|
||||
|
@ -34,12 +34,12 @@ void render_actor_banana(Camera* camera, UNUSED Mat4 arg1, struct BananaActor* b
|
|||
actor_rendered(camera, (struct Actor*) banana);
|
||||
|
||||
if (banana->state == 5) {
|
||||
mtxf_pos_rotation_xyz(sp3C, banana->pos, banana->rot);
|
||||
mtxf_rotate_zxy_translate(sp3C, banana->pos, banana->rot);
|
||||
} else {
|
||||
sp7C[0] = 0;
|
||||
sp7C[1] = 0;
|
||||
sp7C[2] = 0;
|
||||
mtxf_pos_rotation_xyz(sp3C, banana->pos, sp7C);
|
||||
mtxf_rotate_zxy_translate(sp3C, banana->pos, sp7C);
|
||||
}
|
||||
|
||||
maxObjectsReached = render_set_position(sp3C, 0) == 0;
|
||||
|
|
|
@ -72,7 +72,7 @@ void update_actor_banana(struct BananaActor* banana) {
|
|||
temp_f0 = (player->speed * 0.75f) + 3.5f + pad3;
|
||||
}
|
||||
vec3f_set(someVelocity, 0, pad3, temp_f0);
|
||||
func_802B64C4(someVelocity, player->rotation[1] + player->unk_0C0);
|
||||
vec3f_rotate_y(someVelocity, player->rotation[1] + player->unk_0C0);
|
||||
banana->velocity[0] = someVelocity[0];
|
||||
banana->velocity[1] = someVelocity[1];
|
||||
banana->velocity[2] = someVelocity[2];
|
||||
|
@ -121,7 +121,7 @@ void update_actor_banana(struct BananaActor* banana) {
|
|||
someVelocity[0] = 0.0f;
|
||||
someVelocity[1] = 0.0f;
|
||||
someVelocity[2] = -5.0f;
|
||||
func_802B64C4(someVelocity, player->rotation[1] + player->unk_0C0);
|
||||
vec3f_rotate_y(someVelocity, player->rotation[1] + player->unk_0C0);
|
||||
unkX = player->pos[0] + someVelocity[0];
|
||||
unkY = player->pos[1] + someVelocity[1];
|
||||
unkZ = player->pos[2] + someVelocity[2];
|
||||
|
|
|
@ -172,9 +172,9 @@ s16 func_802B3FD0(Player* owner, struct ShellActor* shell) {
|
|||
if (gPlayerBalloonCount[playerIndex] < 0) {
|
||||
continue;
|
||||
}
|
||||
// func_802B51E8 is not quite a 3D distance function, it doubles (rather than squares) the Z difference of the
|
||||
// dist_squared_bugged is not quite a 3D distance function, it doubles (rather than squares) the Z difference of the
|
||||
// positions
|
||||
playerToShellDistance = func_802B51E8(player->pos, shell->pos);
|
||||
playerToShellDistance = dist_squared_bugged(player->pos, shell->pos);
|
||||
if (playerToShellDistance < smallestDistance) {
|
||||
smallestDistance = playerToShellDistance;
|
||||
playerId = player - gPlayerOne;
|
||||
|
@ -250,7 +250,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);
|
||||
mtxf_translate_vec3f_mat3(somePosVel, player->orientationMatrix);
|
||||
mtxf_transform_vec3f_mat3(somePosVel, player->orientationMatrix);
|
||||
shell->pos[0] = player->pos[0] + somePosVel[0];
|
||||
pad7 = player->pos[1] - somePosVel[1];
|
||||
shell->pos[2] = player->pos[2] + somePosVel[2];
|
||||
|
@ -323,7 +323,7 @@ void update_actor_red_blue_shell(struct ShellActor* shell) {
|
|||
somePosVel[0] = 0.0f;
|
||||
somePosVel[1] = 0.0f;
|
||||
somePosVel[2] = height;
|
||||
func_802B64C4(somePosVel, (s16) (player->rotation[1] + player->unk_0C0));
|
||||
vec3f_rotate_y(somePosVel, (s16) (player->rotation[1] + player->unk_0C0));
|
||||
shell->velocity[0] = somePosVel[0];
|
||||
shell->velocity[1] = somePosVel[1];
|
||||
shell->velocity[2] = somePosVel[2];
|
||||
|
@ -331,7 +331,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;
|
||||
mtxf_translate_vec3f_mat3(somePosVel, player->orientationMatrix);
|
||||
mtxf_transform_vec3f_mat3(somePosVel, player->orientationMatrix);
|
||||
shell->pos[0] = player->pos[0] + somePosVel[0];
|
||||
shell->pos[1] = player->pos[1] + somePosVel[1];
|
||||
shell->pos[2] = player->pos[2] + somePosVel[2];
|
||||
|
@ -437,7 +437,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;
|
||||
mtxf_translate_vec3f_mat3(somePosVel, player->orientationMatrix);
|
||||
mtxf_transform_vec3f_mat3(somePosVel, player->orientationMatrix);
|
||||
origPos[0] = shell->pos[0];
|
||||
origPos[1] = shell->pos[1];
|
||||
origPos[2] = shell->pos[2];
|
||||
|
|
|
@ -17,7 +17,7 @@ void render_actor_box_truck(Camera* arg0, struct Actor* arg1) {
|
|||
Mat4 spD8;
|
||||
UNUSED s32 pad2[32];
|
||||
f32 temp_f0 =
|
||||
is_within_render_distance(arg0->pos, arg1->pos, arg0->rot[1], 2500.0f, gCameraZoom[arg0 - camera1], 9000000.0f);
|
||||
distance_if_visible(arg0->pos, arg1->pos, arg0->rot[1], 2500.0f, gCameraZoom[arg0 - camera1], 9000000.0f);
|
||||
if (temp_f0 < 0.0f) {
|
||||
return;
|
||||
}
|
||||
|
@ -25,7 +25,7 @@ void render_actor_box_truck(Camera* arg0, struct Actor* arg1) {
|
|||
gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON);
|
||||
gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING);
|
||||
|
||||
mtxf_pos_rotation_xyz(spD8, arg1->pos, arg1->rot);
|
||||
mtxf_rotate_zxy_translate(spD8, arg1->pos, arg1->rot);
|
||||
if (render_set_position(spD8, 0) != 0) {
|
||||
|
||||
switch (arg1->state) {
|
||||
|
|
|
@ -15,14 +15,14 @@ void render_actor_car(Camera* arg0, struct Actor* arg1) {
|
|||
Mat4 spC8;
|
||||
UNUSED s32 pad2[32];
|
||||
f32 temp_f0 =
|
||||
is_within_render_distance(arg0->pos, arg1->pos, arg0->rot[1], 2500.0f, gCameraZoom[arg0 - camera1], 9000000.0f);
|
||||
distance_if_visible(arg0->pos, arg1->pos, arg0->rot[1], 2500.0f, gCameraZoom[arg0 - camera1], 9000000.0f);
|
||||
|
||||
if (!(temp_f0 < 0.0f)) {
|
||||
|
||||
gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON);
|
||||
gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING);
|
||||
|
||||
mtxf_pos_rotation_xyz(spC8, arg1->pos, arg1->rot);
|
||||
mtxf_rotate_zxy_translate(spC8, arg1->pos, arg1->rot);
|
||||
mtxf_scale(spC8, 0.1f);
|
||||
if (render_set_position(spC8, 0) != 0) {
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
* @param arg2
|
||||
*/
|
||||
void render_actor_cow(Camera* camera, Mat4 arg1, struct Actor* arg2) {
|
||||
if (is_within_render_distance(camera->pos, arg2->pos, camera->rot[1], 0, gCameraZoom[camera - camera1],
|
||||
if (distance_if_visible(camera->pos, arg2->pos, camera->rot[1], 0, gCameraZoom[camera - camera1],
|
||||
4000000.0f) < 0) {
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -24,8 +24,8 @@ void render_actor_fake_item_box(Camera* camera, struct FakeItemBox* fakeItemBox)
|
|||
f32 temp_f2_2;
|
||||
f32 someMultiplier;
|
||||
|
||||
if (is_within_render_distance(camera->pos, fakeItemBox->pos, camera->rot[1], 2500.0f, gCameraZoom[camera - camera1],
|
||||
1000000.0f) < 0) {
|
||||
if (distance_if_visible(camera->pos, fakeItemBox->pos, camera->rot[1], 2500.0f, gCameraZoom[camera - camera1],
|
||||
1000000.0f) < 0) {
|
||||
actor_not_rendered(camera, (struct Actor*) fakeItemBox);
|
||||
return;
|
||||
}
|
||||
|
@ -42,7 +42,7 @@ void render_actor_fake_item_box(Camera* camera, struct FakeItemBox* fakeItemBox)
|
|||
someRot[0] = 0;
|
||||
someRot[1] = fakeItemBox->rot[1];
|
||||
someRot[2] = 0;
|
||||
mtxf_pos_rotation_xyz(someMatrix2, fakeItemBox->pos, someRot);
|
||||
mtxf_rotate_zxy_translate(someMatrix2, fakeItemBox->pos, someRot);
|
||||
mtxf_scale(someMatrix2, fakeItemBox->sizeScaling);
|
||||
if (fakeItemBox->state != 2) {
|
||||
|
||||
|
@ -51,7 +51,7 @@ void render_actor_fake_item_box(Camera* camera, struct FakeItemBox* fakeItemBox)
|
|||
}
|
||||
|
||||
gSPDisplayList(gDisplayListHead++, common_model_fake_itembox);
|
||||
mtxf_pos_rotation_xyz(someMatrix2, fakeItemBox->pos, fakeItemBox->rot);
|
||||
mtxf_rotate_zxy_translate(someMatrix2, fakeItemBox->pos, fakeItemBox->rot);
|
||||
mtxf_scale(someMatrix2, fakeItemBox->sizeScaling);
|
||||
|
||||
if (!render_set_position(someMatrix2, 0)) {
|
||||
|
@ -78,7 +78,7 @@ void render_actor_fake_item_box(Camera* camera, struct FakeItemBox* fakeItemBox)
|
|||
gSPClearGeometryMode(gDisplayListHead++, G_CULL_BACK);
|
||||
gDPSetBlendMask(gDisplayListHead++, 0xFF);
|
||||
thing = fakeItemBox->someTimer;
|
||||
mtxf_pos_rotation_xyz(someMatrix2, fakeItemBox->pos, fakeItemBox->rot);
|
||||
mtxf_rotate_zxy_translate(someMatrix2, fakeItemBox->pos, fakeItemBox->rot);
|
||||
if (thing < 10.0f) {
|
||||
someMultiplier = 1.0f;
|
||||
} else {
|
||||
|
|
|
@ -20,8 +20,8 @@ void render_actor_falling_rock(Camera* camera, struct FallingRock* rock) {
|
|||
return;
|
||||
}
|
||||
|
||||
height = is_within_render_distance(camera->pos, rock->pos, camera->rot[1], 400.0f, gCameraZoom[camera - camera1],
|
||||
4000000.0f);
|
||||
height = distance_if_visible(camera->pos, rock->pos, camera->rot[1], 400.0f, gCameraZoom[camera - camera1],
|
||||
4000000.0f);
|
||||
|
||||
if (height < 0.0f) {
|
||||
return;
|
||||
|
@ -37,14 +37,14 @@ void render_actor_falling_rock(Camera* camera, struct FallingRock* rock) {
|
|||
sp98[1] = 0;
|
||||
sp98[2] = 0;
|
||||
sp8C[1] = height + 2.0f;
|
||||
mtxf_pos_rotation_xyz(sp4C, sp8C, sp98);
|
||||
mtxf_rotate_zxy_translate(sp4C, sp8C, sp98);
|
||||
if (render_set_position(sp4C, 0) == 0) {
|
||||
return;
|
||||
}
|
||||
gSPDisplayList(gDisplayListHead++, d_course_choco_mountain_dl_6F88);
|
||||
}
|
||||
}
|
||||
mtxf_pos_rotation_xyz(sp4C, rock->pos, rock->rot);
|
||||
mtxf_rotate_zxy_translate(sp4C, rock->pos, rock->rot);
|
||||
if (render_set_position(sp4C, 0) == 0) {
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -43,7 +43,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);
|
||||
mtxf_translate_vec3f_mat3(somePosVel, player->orientationMatrix);
|
||||
mtxf_transform_vec3f_mat3(somePosVel, player->orientationMatrix);
|
||||
shell->pos[0] = player->pos[0] + somePosVel[0];
|
||||
pad2 = player->pos[1] - somePosVel[1];
|
||||
shell->pos[2] = player->pos[2] + somePosVel[2];
|
||||
|
@ -66,7 +66,7 @@ void update_actor_green_shell(struct ShellActor* shell) {
|
|||
somePosVel[0] = 0.0f;
|
||||
somePosVel[1] = 0.0f;
|
||||
somePosVel[2] = -var_f2;
|
||||
func_802B64C4(somePosVel, player->rotation[1] + player->unk_0C0);
|
||||
vec3f_rotate_y(somePosVel, player->rotation[1] + player->unk_0C0);
|
||||
shell->velocity[0] = somePosVel[0];
|
||||
shell->velocity[1] = somePosVel[1];
|
||||
shell->velocity[2] = somePosVel[2];
|
||||
|
@ -118,7 +118,7 @@ void update_actor_green_shell(struct ShellActor* shell) {
|
|||
somePosVel[0] = 0.0f;
|
||||
somePosVel[1] = 0.0f;
|
||||
somePosVel[2] = var_f2;
|
||||
func_802B64C4(somePosVel, player->rotation[1] + player->unk_0C0);
|
||||
vec3f_rotate_y(somePosVel, player->rotation[1] + player->unk_0C0);
|
||||
shell->velocity[0] = somePosVel[0];
|
||||
shell->velocity[1] = somePosVel[1];
|
||||
shell->velocity[2] = somePosVel[2];
|
||||
|
@ -126,7 +126,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;
|
||||
mtxf_translate_vec3f_mat3(somePosVel, player->orientationMatrix);
|
||||
mtxf_transform_vec3f_mat3(somePosVel, player->orientationMatrix);
|
||||
shell->pos[0] = player->pos[0] + somePosVel[0];
|
||||
shell->pos[1] = player->pos[1] + somePosVel[1];
|
||||
shell->pos[2] = player->pos[2] + somePosVel[2];
|
||||
|
@ -168,7 +168,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;
|
||||
mtxf_translate_vec3f_mat3(somePosVel, player->orientationMatrix);
|
||||
mtxf_transform_vec3f_mat3(somePosVel, player->orientationMatrix);
|
||||
somePos2[0] = shell->pos[0];
|
||||
somePos2[1] = shell->pos[1];
|
||||
somePos2[2] = shell->pos[2];
|
||||
|
|
|
@ -26,8 +26,8 @@ void render_actor_item_box(Camera* camera, struct ItemBox* item_box) {
|
|||
f32 temp_f2_2;
|
||||
f32 someMultiplier;
|
||||
|
||||
temp_f0 = is_within_render_distance(camera->pos, item_box->pos, camera->rot[1], 0.0f, gCameraZoom[camera - camera1],
|
||||
4000000.0f);
|
||||
temp_f0 = distance_if_visible(camera->pos, item_box->pos, camera->rot[1], 0.0f, gCameraZoom[camera - camera1],
|
||||
4000000.0f);
|
||||
if (!(temp_f0 < 0.0f) && !(600000.0f < temp_f0)) {
|
||||
if ((item_box->state == 2) && (temp_f0 < 100000.0f)) {
|
||||
someRot[0] = 0;
|
||||
|
@ -36,7 +36,7 @@ void render_actor_item_box(Camera* camera, struct ItemBox* item_box) {
|
|||
someVec2[0] = item_box->pos[0];
|
||||
someVec2[1] = item_box->resetDistance + 2.0f;
|
||||
someVec2[2] = item_box->pos[2];
|
||||
mtxf_pos_rotation_xyz(someMatrix1, someVec2, someRot);
|
||||
mtxf_rotate_zxy_translate(someMatrix1, someVec2, someRot);
|
||||
|
||||
if (!render_set_position(someMatrix1, 0)) {
|
||||
return;
|
||||
|
@ -45,7 +45,7 @@ void render_actor_item_box(Camera* camera, struct ItemBox* item_box) {
|
|||
gSPDisplayList(gDisplayListHead++, D_0D002EE8);
|
||||
someRot[1] = item_box->rot[1] * 2;
|
||||
someVec2[1] = item_box->pos[1];
|
||||
mtxf_pos_rotation_xyz(someMatrix1, someVec2, someRot);
|
||||
mtxf_rotate_zxy_translate(someMatrix1, someVec2, someRot);
|
||||
|
||||
if (!render_set_position(someMatrix1, 0)) {
|
||||
return;
|
||||
|
@ -54,7 +54,7 @@ void render_actor_item_box(Camera* camera, struct ItemBox* item_box) {
|
|||
gSPDisplayList(gDisplayListHead++, itemBoxQuestionMarkModel);
|
||||
}
|
||||
if (item_box->state == 5) {
|
||||
mtxf_pos_rotation_xyz(someMatrix1, item_box->pos, item_box->rot);
|
||||
mtxf_rotate_zxy_translate(someMatrix1, item_box->pos, item_box->rot);
|
||||
|
||||
if (!render_set_position(someMatrix1, 0)) {
|
||||
return;
|
||||
|
@ -63,7 +63,7 @@ void render_actor_item_box(Camera* camera, struct ItemBox* item_box) {
|
|||
gSPDisplayList(gDisplayListHead++, itemBoxQuestionMarkModel);
|
||||
}
|
||||
if (item_box->state != 3) {
|
||||
mtxf_pos_rotation_xyz(someMatrix1, item_box->pos, item_box->rot);
|
||||
mtxf_rotate_zxy_translate(someMatrix1, item_box->pos, item_box->rot);
|
||||
|
||||
if (!render_set_position(someMatrix1, 0)) {
|
||||
return;
|
||||
|
@ -90,7 +90,7 @@ void render_actor_item_box(Camera* camera, struct ItemBox* item_box) {
|
|||
gSPClearGeometryMode(gDisplayListHead++, G_CULL_BACK);
|
||||
gDPSetBlendMask(gDisplayListHead++, 0xFF);
|
||||
thing = item_box->someTimer;
|
||||
mtxf_pos_rotation_xyz(someMatrix1, item_box->pos, item_box->rot);
|
||||
mtxf_rotate_zxy_translate(someMatrix1, item_box->pos, item_box->rot);
|
||||
if (thing < 10.0f) {
|
||||
someMultiplier = 1.0f;
|
||||
} else {
|
||||
|
|
|
@ -19,11 +19,11 @@ void render_actor_mario_sign(Camera* arg0, UNUSED Mat4 arg1, struct Actor* arg2)
|
|||
return;
|
||||
}
|
||||
|
||||
unk = is_within_render_distance(arg0->pos, arg2->pos, arg0->rot[1], 0, gCameraZoom[arg0 - camera1], 16000000.0f);
|
||||
unk = distance_if_visible(arg0->pos, arg2->pos, arg0->rot[1], 0, gCameraZoom[arg0 - camera1], 16000000.0f);
|
||||
if (!(unk < 0.0f)) {
|
||||
gSPSetGeometryMode(gDisplayListHead++, G_SHADING_SMOOTH);
|
||||
gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING);
|
||||
mtxf_pos_rotation_xyz(sp40, arg2->pos, arg2->rot);
|
||||
mtxf_rotate_zxy_translate(sp40, arg2->pos, arg2->rot);
|
||||
if (render_set_position(sp40, 0) != 0) {
|
||||
gSPDisplayList(gDisplayListHead++, d_course_mario_raceway_dl_sign);
|
||||
}
|
||||
|
|
|
@ -28,8 +28,8 @@ void render_actor_paddle_boat(Camera* arg0, struct PaddleWheelBoat* boat, UNUSED
|
|||
return;
|
||||
}
|
||||
|
||||
temp = is_within_render_distance(arg0->pos, boat->pos, arg0->rot[1], 90000.0f, gCameraZoom[arg0 - camera1],
|
||||
9000000.0f);
|
||||
temp =
|
||||
distance_if_visible(arg0->pos, boat->pos, arg0->rot[1], 90000.0f, gCameraZoom[arg0 - camera1], 9000000.0f);
|
||||
|
||||
if (temp < 0.0f) {
|
||||
return;
|
||||
|
@ -38,7 +38,7 @@ void render_actor_paddle_boat(Camera* arg0, struct PaddleWheelBoat* boat, UNUSED
|
|||
gSPSetLights1(gDisplayListHead++, D_800DC610[1]);
|
||||
gSPSetGeometryMode(gDisplayListHead++, G_SHADE | G_LIGHTING | G_SHADING_SMOOTH);
|
||||
|
||||
mtxf_pos_rotation_xyz(spE0, boat->pos, boat->boatRot);
|
||||
mtxf_rotate_zxy_translate(spE0, boat->pos, boat->boatRot);
|
||||
if (render_set_position(spE0, 1) != 0) {
|
||||
|
||||
// Render the boat
|
||||
|
|
|
@ -21,13 +21,13 @@ void render_actor_palm_tree(Camera* arg0, UNUSED Mat4 arg1, struct PalmTree* arg
|
|||
}
|
||||
|
||||
temp_f0 =
|
||||
is_within_render_distance(arg0->pos, arg2->pos, arg0->rot[1], 0.0f, gCameraZoom[arg0 - camera1], 4000000.0f);
|
||||
distance_if_visible(arg0->pos, arg2->pos, arg0->rot[1], 0.0f, gCameraZoom[arg0 - camera1], 4000000.0f);
|
||||
|
||||
if (!(temp_f0 < 0.0f)) {
|
||||
if (((temp_v0 & 0x400) == 0) && (temp_f0 < 250000.0f)) {
|
||||
func_8029794C(arg2->pos, arg2->rot, 2.0f);
|
||||
}
|
||||
mtxf_pos_rotation_xyz(sp68, arg2->pos, spA8);
|
||||
mtxf_rotate_zxy_translate(sp68, arg2->pos, spA8);
|
||||
if (render_set_position(sp68, 0) != 0) {
|
||||
|
||||
gDPSetTextureLUT(gDisplayListHead++, G_TT_NONE);
|
||||
|
|
|
@ -25,7 +25,7 @@ void render_actor_piranha_plant(Camera* arg0, Mat4 arg1, struct PiranhaPlant* ar
|
|||
return;
|
||||
}
|
||||
|
||||
temp_f0 = is_within_render_distance(arg0->pos, arg2->pos, arg0->rot[1], 0, gCameraZoom[arg0 - camera1], 1000000.0f);
|
||||
temp_f0 = distance_if_visible(arg0->pos, arg2->pos, arg0->rot[1], 0, gCameraZoom[arg0 - camera1], 1000000.0f);
|
||||
|
||||
if (temp_f0 < 0.0f) {
|
||||
|
||||
|
|
|
@ -13,11 +13,11 @@
|
|||
void render_actor_railroad_crossing(Camera* arg0, struct RailroadCrossing* rr_crossing) {
|
||||
UNUSED Vec3s sp80 = { 0, 0, 0 };
|
||||
Mat4 sp40;
|
||||
f32 unk = is_within_render_distance(arg0->pos, rr_crossing->pos, arg0->rot[1], 0.0f, gCameraZoom[arg0 - camera1],
|
||||
4000000.0f);
|
||||
f32 unk = distance_if_visible(arg0->pos, rr_crossing->pos, arg0->rot[1], 0.0f, gCameraZoom[arg0 - camera1],
|
||||
4000000.0f);
|
||||
|
||||
if (!(unk < 0.0f)) {
|
||||
mtxf_pos_rotation_xyz(sp40, rr_crossing->pos, rr_crossing->rot);
|
||||
mtxf_rotate_zxy_translate(sp40, rr_crossing->pos, rr_crossing->rot);
|
||||
|
||||
if (render_set_position(sp40, 0) != 0) {
|
||||
gSPSetGeometryMode(gDisplayListHead++, G_LIGHTING);
|
||||
|
|
|
@ -18,7 +18,7 @@ void render_actor_school_bus(Camera* arg0, struct Actor* arg1) {
|
|||
f32 temp_f0;
|
||||
|
||||
temp_f0 =
|
||||
is_within_render_distance(arg0->pos, arg1->pos, arg0->rot[1], 2500.0f, gCameraZoom[arg0 - camera1], 9000000.0f);
|
||||
distance_if_visible(arg0->pos, arg1->pos, arg0->rot[1], 2500.0f, gCameraZoom[arg0 - camera1], 9000000.0f);
|
||||
if (temp_f0 < 0.0f) {
|
||||
return;
|
||||
}
|
||||
|
@ -26,7 +26,7 @@ void render_actor_school_bus(Camera* arg0, struct Actor* arg1) {
|
|||
gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON);
|
||||
gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING);
|
||||
|
||||
mtxf_pos_rotation_xyz(spC8, arg1->pos, arg1->rot);
|
||||
mtxf_rotate_zxy_translate(spC8, arg1->pos, arg1->rot);
|
||||
if (render_set_position(spC8, 0) != 0) {
|
||||
|
||||
if (gActiveScreenMode == SCREEN_MODE_1P) {
|
||||
|
|
|
@ -14,15 +14,15 @@ void render_actor_tanker_truck(Camera* camera, struct Actor* arg1) {
|
|||
UNUSED s32 pad[6];
|
||||
Mat4 spC8;
|
||||
UNUSED s32 pad2[32];
|
||||
f32 temp_f0 = is_within_render_distance(camera->pos, arg1->pos, camera->rot[1], 2500.0f,
|
||||
gCameraZoom[camera - camera1], 9000000.0f);
|
||||
f32 temp_f0 = distance_if_visible(camera->pos, arg1->pos, camera->rot[1], 2500.0f,
|
||||
gCameraZoom[camera - camera1], 9000000.0f);
|
||||
|
||||
if (!(temp_f0 < 0.0f)) {
|
||||
|
||||
gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON);
|
||||
gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING);
|
||||
|
||||
mtxf_pos_rotation_xyz(spC8, arg1->pos, arg1->rot);
|
||||
mtxf_rotate_zxy_translate(spC8, arg1->pos, arg1->rot);
|
||||
if (render_set_position(spC8, 0) != 0) {
|
||||
|
||||
if (gActiveScreenMode == SCREEN_MODE_1P) {
|
||||
|
|
|
@ -19,8 +19,8 @@ void render_actor_train_engine(Camera* camera, struct TrainCar* actor) {
|
|||
Mat4 spE0;
|
||||
Mat4 spA0;
|
||||
|
||||
f32 distance = is_within_render_distance(camera->pos, actor->pos, camera->rot[1], 2500.0f,
|
||||
gCameraZoom[camera - camera1], 9000000.0f);
|
||||
f32 distance = distance_if_visible(camera->pos, actor->pos, camera->rot[1], 2500.0f,
|
||||
gCameraZoom[camera - camera1], 9000000.0f);
|
||||
|
||||
if (distance < 0.0f) {
|
||||
return;
|
||||
|
@ -28,7 +28,7 @@ void render_actor_train_engine(Camera* camera, struct TrainCar* actor) {
|
|||
|
||||
gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING);
|
||||
|
||||
mtxf_pos_rotation_xyz(sp120, actor->pos, actor->rot);
|
||||
mtxf_rotate_zxy_translate(sp120, actor->pos, actor->rot);
|
||||
maxObjectsReached = render_set_position(sp120, 0) == 0;
|
||||
if (maxObjectsReached) {
|
||||
return;
|
||||
|
@ -166,8 +166,8 @@ void render_actor_train_tender(Camera* camera, struct TrainCar* actor) {
|
|||
Mat4 spE0;
|
||||
Mat4 spA0;
|
||||
|
||||
f32 temp_f0 = is_within_render_distance(camera->pos, actor->pos, camera->rot[1], 625.0f,
|
||||
gCameraZoom[camera - camera1], 9000000.0f);
|
||||
f32 temp_f0 = distance_if_visible(camera->pos, actor->pos, camera->rot[1], 625.0f,
|
||||
gCameraZoom[camera - camera1], 9000000.0f);
|
||||
|
||||
if (temp_f0 < 0.0f) {
|
||||
return;
|
||||
|
@ -175,7 +175,7 @@ void render_actor_train_tender(Camera* camera, struct TrainCar* actor) {
|
|||
|
||||
gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING);
|
||||
|
||||
mtxf_pos_rotation_xyz(sp120, actor->pos, actor->rot);
|
||||
mtxf_rotate_zxy_translate(sp120, actor->pos, actor->rot);
|
||||
if (render_set_position(sp120, 0) == 0) {
|
||||
return;
|
||||
}
|
||||
|
@ -251,8 +251,8 @@ void render_actor_train_passenger_car(Camera* camera, struct TrainCar* actor) {
|
|||
Mat4 spE0;
|
||||
Mat4 spA0;
|
||||
|
||||
f32 temp_f0 = is_within_render_distance(camera->pos, actor->pos, camera->rot[1], 2025.0f,
|
||||
gCameraZoom[camera - camera1], 9000000.0f);
|
||||
f32 temp_f0 = distance_if_visible(camera->pos, actor->pos, camera->rot[1], 2025.0f,
|
||||
gCameraZoom[camera - camera1], 9000000.0f);
|
||||
|
||||
if (temp_f0 < 0.0f) {
|
||||
return;
|
||||
|
@ -260,7 +260,7 @@ void render_actor_train_passenger_car(Camera* camera, struct TrainCar* actor) {
|
|||
|
||||
gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING);
|
||||
|
||||
mtxf_pos_rotation_xyz(sp120, actor->pos, actor->rot);
|
||||
mtxf_rotate_zxy_translate(sp120, actor->pos, actor->rot);
|
||||
|
||||
if (render_set_position(sp120, 0) == 0) {
|
||||
return;
|
||||
|
|
|
@ -19,8 +19,8 @@ void render_actor_tree_mario_raceway(Camera* camera, Mat4 arg1, struct Actor* ar
|
|||
return;
|
||||
}
|
||||
|
||||
temp_f0 = is_within_render_distance(camera->pos, arg2->pos, camera->rot[1], 0, gCameraZoom[camera - camera1],
|
||||
16000000.0f);
|
||||
temp_f0 =
|
||||
distance_if_visible(camera->pos, arg2->pos, camera->rot[1], 0, gCameraZoom[camera - camera1], 16000000.0f);
|
||||
|
||||
if (temp_f0 < 0.0f) {
|
||||
return;
|
||||
|
@ -55,7 +55,7 @@ void render_actor_tree_yoshi_valley(Camera* camera, Mat4 arg1, struct Actor* arg
|
|||
}
|
||||
|
||||
temp_f0 =
|
||||
is_within_render_distance(camera->pos, arg2->pos, camera->rot[1], 0, gCameraZoom[camera - camera1], 4000000.0f);
|
||||
distance_if_visible(camera->pos, arg2->pos, camera->rot[1], 0, gCameraZoom[camera - camera1], 4000000.0f);
|
||||
|
||||
if (temp_f0 < 0.0f) {
|
||||
return;
|
||||
|
@ -90,7 +90,7 @@ void render_actor_tree_royal_raceway(Camera* camera, Mat4 arg1, struct Actor* ar
|
|||
}
|
||||
|
||||
temp_f0 =
|
||||
is_within_render_distance(camera->pos, arg2->pos, camera->rot[1], 0, gCameraZoom[camera - camera1], 4000000.0f);
|
||||
distance_if_visible(camera->pos, arg2->pos, camera->rot[1], 0, gCameraZoom[camera - camera1], 4000000.0f);
|
||||
|
||||
if (temp_f0 < 0.0f) {
|
||||
return;
|
||||
|
@ -125,7 +125,7 @@ void render_actor_tree_moo_moo_farm(Camera* camera, Mat4 arg1, struct Actor* arg
|
|||
}
|
||||
|
||||
temp_f0 =
|
||||
is_within_render_distance(camera->pos, arg2->pos, camera->rot[1], 0, gCameraZoom[camera - camera1], 6250000.0f);
|
||||
distance_if_visible(camera->pos, arg2->pos, camera->rot[1], 0, gCameraZoom[camera - camera1], 6250000.0f);
|
||||
|
||||
if (temp_f0 < 0.0f) {
|
||||
return;
|
||||
|
@ -154,7 +154,7 @@ void func_80299864(Camera* camera, Mat4 arg1, struct Actor* arg2) {
|
|||
}
|
||||
|
||||
temp_f0 =
|
||||
is_within_render_distance(camera->pos, arg2->pos, camera->rot[1], 0, gCameraZoom[camera - camera1], 4000000.0f);
|
||||
distance_if_visible(camera->pos, arg2->pos, camera->rot[1], 0, gCameraZoom[camera - camera1], 4000000.0f);
|
||||
|
||||
if (temp_f0 < 0.0f) {
|
||||
return;
|
||||
|
@ -193,7 +193,7 @@ void render_actor_tree_bowser_castle(Camera* camera, Mat4 arg1, struct Actor* ar
|
|||
}
|
||||
|
||||
temp_f0 =
|
||||
is_within_render_distance(camera->pos, arg2->pos, camera->rot[1], 0, gCameraZoom[camera - camera1], 4000000.0f);
|
||||
distance_if_visible(camera->pos, arg2->pos, camera->rot[1], 0, gCameraZoom[camera - camera1], 4000000.0f);
|
||||
|
||||
if (temp_f0 < 0.0f) {
|
||||
return;
|
||||
|
@ -228,7 +228,7 @@ void render_actor_bush_bowser_castle(Camera* camera, Mat4 arg1, struct Actor* ar
|
|||
}
|
||||
|
||||
temp_f0 =
|
||||
is_within_render_distance(camera->pos, arg2->pos, camera->rot[1], 0, gCameraZoom[camera - camera1], 640000.0f);
|
||||
distance_if_visible(camera->pos, arg2->pos, camera->rot[1], 0, gCameraZoom[camera - camera1], 640000.0f);
|
||||
|
||||
if (temp_f0 < 0.0f) {
|
||||
return;
|
||||
|
@ -263,7 +263,7 @@ void render_actor_tree_frappe_snowland(Camera* camera, Mat4 arg1, struct Actor*
|
|||
}
|
||||
|
||||
temp_f0 =
|
||||
is_within_render_distance(camera->pos, arg2->pos, camera->rot[1], 0, gCameraZoom[camera - camera1], 4000000.0f);
|
||||
distance_if_visible(camera->pos, arg2->pos, camera->rot[1], 0, gCameraZoom[camera - camera1], 4000000.0f);
|
||||
|
||||
if (temp_f0 < 0.0f) {
|
||||
return;
|
||||
|
@ -297,7 +297,7 @@ void render_actor_tree_cactus1_kalimari_desert(Camera* camera, Mat4 arg1, struct
|
|||
}
|
||||
|
||||
temp_f0 =
|
||||
is_within_render_distance(camera->pos, arg2->pos, camera->rot[1], 0, gCameraZoom[camera - camera1], 4000000.0f);
|
||||
distance_if_visible(camera->pos, arg2->pos, camera->rot[1], 0, gCameraZoom[camera - camera1], 4000000.0f);
|
||||
|
||||
if (temp_f0 < 0.0f) {
|
||||
return;
|
||||
|
@ -331,7 +331,7 @@ void render_actor_tree_cactus2_kalimari_desert(Camera* camera, Mat4 arg1, struct
|
|||
}
|
||||
|
||||
temp_f0 =
|
||||
is_within_render_distance(camera->pos, arg2->pos, camera->rot[1], 0, gCameraZoom[camera - camera1], 4000000.0f);
|
||||
distance_if_visible(camera->pos, arg2->pos, camera->rot[1], 0, gCameraZoom[camera - camera1], 4000000.0f);
|
||||
|
||||
if (temp_f0 < 0.0f) {
|
||||
return;
|
||||
|
@ -365,7 +365,7 @@ void render_actor_tree_cactus3_kalimari_desert(Camera* camera, Mat4 arg1, struct
|
|||
}
|
||||
|
||||
temp_f0 =
|
||||
is_within_render_distance(camera->pos, arg2->pos, camera->rot[1], 0, gCameraZoom[camera - camera1], 4000000.0f);
|
||||
distance_if_visible(camera->pos, arg2->pos, camera->rot[1], 0, gCameraZoom[camera - camera1], 4000000.0f);
|
||||
|
||||
if (temp_f0 < 0.0f) {
|
||||
return;
|
||||
|
|
|
@ -12,14 +12,13 @@
|
|||
*/
|
||||
void render_actor_wario_sign(Camera* arg0, struct Actor* arg1) {
|
||||
Mat4 sp38;
|
||||
f32 unk =
|
||||
is_within_render_distance(arg0->pos, arg1->pos, arg0->rot[1], 0, gCameraZoom[arg0 - camera1], 16000000.0f);
|
||||
f32 unk = distance_if_visible(arg0->pos, arg1->pos, arg0->rot[1], 0, gCameraZoom[arg0 - camera1], 16000000.0f);
|
||||
|
||||
if (!(unk < 0.0f)) {
|
||||
gSPSetGeometryMode(gDisplayListHead++, G_SHADING_SMOOTH);
|
||||
gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING);
|
||||
|
||||
mtxf_pos_rotation_xyz(sp38, arg1->pos, arg1->rot);
|
||||
mtxf_rotate_zxy_translate(sp38, arg1->pos, arg1->rot);
|
||||
if (render_set_position(sp38, 0) != 0) {
|
||||
|
||||
gSPDisplayList(gDisplayListHead++, d_course_wario_stadium_dl_sign);
|
||||
|
|
|
@ -20,8 +20,8 @@ void render_actor_yoshi_egg(Camera* arg0, Mat4 arg1, struct YoshiValleyEgg* egg,
|
|||
f32 temp_f0;
|
||||
|
||||
if (gGamestate != CREDITS_SEQUENCE) {
|
||||
temp_f0 = is_within_render_distance(arg0->pos, egg->pos, arg0->rot[1], 200.0f, gCameraZoom[arg0 - camera1],
|
||||
16000000.0f);
|
||||
temp_f0 = distance_if_visible(arg0->pos, egg->pos, arg0->rot[1], 200.0f, gCameraZoom[arg0 - camera1],
|
||||
16000000.0f);
|
||||
if (temp_f0 < 0.0f) {
|
||||
return;
|
||||
}
|
||||
|
@ -42,7 +42,7 @@ void render_actor_yoshi_egg(Camera* arg0, Mat4 arg1, struct YoshiValleyEgg* egg,
|
|||
sp5C[0] = 0;
|
||||
sp5C[1] = egg->eggRot;
|
||||
sp5C[2] = 0;
|
||||
mtxf_pos_rotation_xyz(sp60, egg->pos, sp5C);
|
||||
mtxf_rotate_zxy_translate(sp60, egg->pos, sp5C);
|
||||
if (render_set_position(sp60, 0) == 0) {
|
||||
return;
|
||||
}
|
||||
|
|
22
src/camera.c
22
src/camera.c
|
@ -185,7 +185,7 @@ void camera_init(f32 posX, f32 posY, f32 posZ, UNUSED s16 rot, u32 arg4, s32 cam
|
|||
}
|
||||
break;
|
||||
}
|
||||
func_802B7F7C(camera->pos, camera->lookAt, camera->rot);
|
||||
planar_angles(camera->pos, camera->lookAt, camera->rot);
|
||||
}
|
||||
|
||||
void func_8001CA10(Camera* camera) {
|
||||
|
@ -234,7 +234,7 @@ void func_8001CA78(UNUSED Player* player, Camera* camera, Vec3f arg2, f32* arg3,
|
|||
arg2[1] = camera->lookAt[1];
|
||||
arg2[2] = camera->lookAt[2];
|
||||
calculate_orientation_matrix(sp74, 0, 1, 0, -0x00008000);
|
||||
mtxf_translate_vec3f_mat3(sp5C, sp74);
|
||||
mtxf_transform_vec3f_mat3(sp5C, sp74);
|
||||
if (gCurrentCourseId == COURSE_TOADS_TURNPIKE) {
|
||||
var_f14 = sp5C[0];
|
||||
} else {
|
||||
|
@ -245,7 +245,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;
|
||||
mtxf_translate_vec3f_mat3(sp68, sp74);
|
||||
mtxf_transform_vec3f_mat3(sp68, sp74);
|
||||
if (gCurrentCourseId == COURSE_TOADS_TURNPIKE) {
|
||||
var_f14 = sp68[0];
|
||||
} else {
|
||||
|
@ -366,7 +366,7 @@ void func_8001CCEC(Player* player, Camera* camera, Vec3f arg2, f32* arg3, f32* a
|
|||
sp84[2] /= 3.0f;
|
||||
}
|
||||
calculate_orientation_matrix(sp9C, 0, 1, 0, arg7);
|
||||
mtxf_translate_vec3f_mat3(sp84, sp9C);
|
||||
mtxf_transform_vec3f_mat3(sp84, sp9C);
|
||||
|
||||
x = player->pos[0] + sp84[0];
|
||||
z = player->pos[2] + sp84[2];
|
||||
|
@ -380,7 +380,7 @@ void func_8001CCEC(Player* player, Camera* camera, Vec3f arg2, f32* arg3, f32* a
|
|||
} else {
|
||||
arg2[1] += ((y - camera->lookAt[1]) * 0.5);
|
||||
}
|
||||
mtxf_translate_vec3f_mat3(sp90, sp9C);
|
||||
mtxf_transform_vec3f_mat3(sp90, sp9C);
|
||||
x = player->pos[0] + sp90[0];
|
||||
z = player->pos[2] + sp90[2];
|
||||
if ((player->effects & UNKNOWN_EFFECT_0x1000000) != UNKNOWN_EFFECT_0x1000000) {
|
||||
|
@ -434,14 +434,14 @@ void func_8001D53C(Player* player, Camera* camera, Vec3f arg2, f32* arg3, f32* a
|
|||
arg2[1] = camera->lookAt[1];
|
||||
arg2[2] = camera->lookAt[2];
|
||||
calculate_orientation_matrix(sp74, 0.0f, 1.0f, 0.0f, arg6);
|
||||
mtxf_translate_vec3f_mat3(sp5C, sp74);
|
||||
mtxf_transform_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;
|
||||
mtxf_translate_vec3f_mat3(sp68, sp74);
|
||||
mtxf_transform_vec3f_mat3(sp68, sp74);
|
||||
stackPadding0 = player->pos[0] + sp68[0];
|
||||
stackPadding2 = player->pos[2] + sp68[2];
|
||||
stackPadding1 = sp68[1] + (player->unk_074 + 1.5);
|
||||
|
@ -477,7 +477,7 @@ void func_8001D794(Player* player, Camera* camera, Vec3f arg2, f32* arg3, f32* a
|
|||
arg2[2] = camera->lookAt[2];
|
||||
|
||||
calculate_orientation_matrix(sp6C, 0, 1, 0, arg6);
|
||||
mtxf_translate_vec3f_mat3(sp54, sp6C);
|
||||
mtxf_transform_vec3f_mat3(sp54, sp6C);
|
||||
|
||||
test1 = player->pos[0] + sp54[0];
|
||||
test3 = player->pos[2] + sp54[2];
|
||||
|
@ -486,7 +486,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;
|
||||
|
||||
mtxf_translate_vec3f_mat3(sp60, sp6C);
|
||||
mtxf_transform_vec3f_mat3(sp60, sp6C);
|
||||
|
||||
test1 = player->pos[0] + sp60[0];
|
||||
test3 = player->pos[2] + sp60[2];
|
||||
|
@ -586,7 +586,7 @@ void func_8001D944(Player* player, Camera* camera, Vec3f arg2, f32* arg3, f32* a
|
|||
sp84[2] /= 3.0f;
|
||||
}
|
||||
calculate_orientation_matrix(sp9C, 0, 1, 0, arg7);
|
||||
mtxf_translate_vec3f_mat3(sp84, sp9C);
|
||||
mtxf_transform_vec3f_mat3(sp84, sp9C);
|
||||
|
||||
x = player->pos[0] + sp84[0];
|
||||
z = player->pos[2] + sp84[2];
|
||||
|
@ -600,7 +600,7 @@ void func_8001D944(Player* player, Camera* camera, Vec3f arg2, f32* arg3, f32* a
|
|||
} else {
|
||||
arg2[1] += ((y - camera->lookAt[1]) * 0.5);
|
||||
}
|
||||
mtxf_translate_vec3f_mat3(sp90, sp9C);
|
||||
mtxf_transform_vec3f_mat3(sp90, sp9C);
|
||||
x = player->pos[0] + sp90[0];
|
||||
z = player->pos[2] + sp90[2];
|
||||
if ((player->effects & UNKNOWN_EFFECT_0x1000000) != UNKNOWN_EFFECT_0x1000000) {
|
||||
|
|
|
@ -35,7 +35,7 @@ UNUSED void func_8003DC50(Player* player, Vec3f arg1) {
|
|||
arg1[2] = thing2;
|
||||
}
|
||||
arg1[1] = 0.0f;
|
||||
mtxf_translate_vec3f_mat3(arg1, player->orientationMatrix);
|
||||
mtxf_transform_vec3f_mat3(arg1, player->orientationMatrix);
|
||||
}
|
||||
|
||||
UNUSED void func_8003DE4C(Player* player, Vec3f arg1) {
|
||||
|
@ -59,7 +59,7 @@ UNUSED void func_8003DE4C(Player* player, Vec3f arg1) {
|
|||
arg1[2] = thing2;
|
||||
}
|
||||
arg1[1] = 0.0f;
|
||||
mtxf_translate_vec3f_mat3(arg1, player->orientationMatrix);
|
||||
mtxf_transform_vec3f_mat3(arg1, player->orientationMatrix);
|
||||
}
|
||||
|
||||
// Stick to ground?
|
||||
|
@ -87,7 +87,7 @@ void func_8003E048(Player* player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32* arg4
|
|||
arg3[2] = (-(player->slopeAccel / 182) * 0x32);
|
||||
}
|
||||
arg3[1] = 0.0f;
|
||||
mtxf_translate_vec3f_mat3(arg3, player->orientationMatrix);
|
||||
mtxf_transform_vec3f_mat3(arg3, player->orientationMatrix);
|
||||
}
|
||||
|
||||
void func_8003E37C(Player* player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32* arg4, f32* arg5, f32* arg6, f32* arg7) {
|
||||
|
@ -116,7 +116,7 @@ void func_8003E37C(Player* player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32* arg4
|
|||
arg3[2] = (-(player->slopeAccel / 182) * 0x32);
|
||||
}
|
||||
arg3[1] = 0.0f;
|
||||
mtxf_translate_vec3f_mat3(arg3, player->orientationMatrix);
|
||||
mtxf_transform_vec3f_mat3(arg3, player->orientationMatrix);
|
||||
}
|
||||
|
||||
void func_8003E6EC(Player* player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32* arg4, f32* arg5, f32* arg6, f32* arg7) {
|
||||
|
@ -138,7 +138,7 @@ void func_8003E6EC(Player* player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32* arg4
|
|||
arg3[2] = (-(player->slopeAccel / 182) * 0x32);
|
||||
}
|
||||
arg3[1] = 0.0f;
|
||||
mtxf_translate_vec3f_mat3(arg3, player->orientationMatrix);
|
||||
mtxf_transform_vec3f_mat3(arg3, player->orientationMatrix);
|
||||
}
|
||||
|
||||
void func_8003E9EC(Player* player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32* arg4, f32* arg5, f32* arg6, f32* arg7) {
|
||||
|
@ -173,7 +173,7 @@ void func_8003E9EC(Player* player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32* arg4
|
|||
}
|
||||
}
|
||||
arg3[1] = 0.0f;
|
||||
mtxf_translate_vec3f_mat3(arg3, player->orientationMatrix);
|
||||
mtxf_transform_vec3f_mat3(arg3, player->orientationMatrix);
|
||||
}
|
||||
|
||||
void func_8003EE2C(Player* player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32* arg4, f32* arg5, f32* arg6, f32* arg7) {
|
||||
|
@ -195,7 +195,7 @@ void func_8003EE2C(Player* player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32* arg4
|
|||
arg3[2] = (-(player->slopeAccel / 182) * 0x32);
|
||||
}
|
||||
arg3[1] = 0.0f;
|
||||
mtxf_translate_vec3f_mat3(arg3, player->orientationMatrix);
|
||||
mtxf_transform_vec3f_mat3(arg3, player->orientationMatrix);
|
||||
}
|
||||
|
||||
void func_8003F138(Player* player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32* arg4, f32* arg5, f32* arg6, f32* arg7) {
|
||||
|
@ -223,7 +223,7 @@ void func_8003F138(Player* player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32* arg4
|
|||
}
|
||||
arg3[1] = 0.0f;
|
||||
arg3[2] = 0.0f;
|
||||
mtxf_translate_vec3f_mat3(arg3, player->orientationMatrix);
|
||||
mtxf_transform_vec3f_mat3(arg3, player->orientationMatrix);
|
||||
}
|
||||
|
||||
void func_8003F46C(Player* player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32* arg4, f32* arg5, f32* arg6, f32* arg7) {
|
||||
|
|
|
@ -556,7 +556,7 @@ s16 get_angle_between_path(Vec3f arg0, Vec3f arg1) {
|
|||
s16 temp_ret;
|
||||
s16 phi_v1;
|
||||
|
||||
temp_ret = get_angle_between_points(arg0, arg1);
|
||||
temp_ret = get_xz_angle_between_points(arg0, arg1);
|
||||
phi_v1 = temp_ret;
|
||||
if (gIsMirrorMode != 0) {
|
||||
phi_v1 = -temp_ret;
|
||||
|
@ -1553,7 +1553,7 @@ void update_player(s32 playerId) {
|
|||
set_track_offset_position(pathIndex, D_80163090[playerId], gPlayerPathIndex);
|
||||
}
|
||||
}
|
||||
player->rotation[1] = -get_angle_between_points(player->pos, gOffsetPosition);
|
||||
player->rotation[1] = -get_xz_angle_between_points(player->pos, gOffsetPosition);
|
||||
} else {
|
||||
player->rotation[1] =
|
||||
gPathExpectedRotation[gPlayerPathIndex]
|
||||
|
@ -1568,7 +1568,7 @@ void update_player(s32 playerId) {
|
|||
player->effects |= UNKNOWN_EFFECT_0x10;
|
||||
}
|
||||
if (D_801630E8[playerId] != 0) {
|
||||
sPlayerAngle[playerId] = -get_angle_between_points(player->oldPos, player->pos);
|
||||
sPlayerAngle[playerId] = -get_xz_angle_between_points(player->oldPos, player->pos);
|
||||
var_a0_2 =
|
||||
(gCurrentPathPointExpectedRotationPath[(sSomeNearestPathPoint + 2) % gSelectedPathCount] *
|
||||
0x168) /
|
||||
|
@ -1670,7 +1670,7 @@ void update_player(s32 playerId) {
|
|||
minAngle = onePointFive * 182.0f;
|
||||
maxAngle = -onePointFive * 182.0f;
|
||||
|
||||
angle = -get_angle_between_points(player->pos, gOffsetPosition);
|
||||
angle = -get_xz_angle_between_points(player->pos, gOffsetPosition);
|
||||
angle -= (newAngle = player->rotation[1]);
|
||||
if ((s16) minAngle < angle) {
|
||||
angle = minAngle;
|
||||
|
|
|
@ -183,7 +183,7 @@ void func_8000DF8C(s32 bombKartId) {
|
|||
D_80162FC0[0] = temp_v0_2->posX + sp118;
|
||||
D_80162FC0[1] = temp_v0_2->posY;
|
||||
D_80162FC0[2] = temp_v0_2->posZ + temp_f0_3;
|
||||
spC2 = (get_angle_between_points(D_80162FB0, D_80162FC0) * 0xFFFF) / 65520;
|
||||
spC2 = (get_xz_angle_between_points(D_80162FB0, D_80162FC0) * 0xFFFF) / 65520;
|
||||
break;
|
||||
case 2:
|
||||
var_s1 = (var_s1 + 4) % 360;
|
||||
|
@ -203,7 +203,7 @@ void func_8000DF8C(s32 bombKartId) {
|
|||
D_80162FC0[0] = temp_v0_2->posX + sp118;
|
||||
D_80162FC0[1] = temp_v0_2->posY;
|
||||
D_80162FC0[2] = temp_v0_2->posZ + temp_f0_3;
|
||||
spC2 = (get_angle_between_points(D_80162FB0, D_80162FC0) * 0xFFFF) / 65520;
|
||||
spC2 = (get_xz_angle_between_points(D_80162FB0, D_80162FC0) * 0xFFFF) / 65520;
|
||||
break;
|
||||
case 3:
|
||||
var_f20 = bombKart->yPos + 3.5f;
|
||||
|
@ -227,7 +227,7 @@ void func_8000DF8C(s32 bombKartId) {
|
|||
D_80162FC0[0] = temp_v0_4->posX;
|
||||
D_80162FC0[1] = temp_v0_4->posY;
|
||||
D_80162FC0[2] = temp_v0_4->posZ;
|
||||
spC2 = (get_angle_between_points(D_80162FB0, D_80162FC0) * 0xFFFF) / 65520;
|
||||
spC2 = (get_xz_angle_between_points(D_80162FB0, D_80162FC0) * 0xFFFF) / 65520;
|
||||
} else {
|
||||
D_80162FB0[0] = var_f22;
|
||||
D_80162FB0[1] = var_f20;
|
||||
|
@ -235,7 +235,7 @@ void func_8000DF8C(s32 bombKartId) {
|
|||
D_80162FC0[0] = -2409.197f;
|
||||
D_80162FC0[1] = 0.0f;
|
||||
D_80162FC0[2] = -355.254f;
|
||||
spC2 = (get_angle_between_points(D_80162FB0, D_80162FC0) * 0xFFFF) / 65520;
|
||||
spC2 = (get_xz_angle_between_points(D_80162FB0, D_80162FC0) * 0xFFFF) / 65520;
|
||||
}
|
||||
temp_f14 = ((D_80162FB0[0] + D_80162FC0[0]) * 0.5f) - var_f22;
|
||||
temp_f16 = ((D_80162FB0[2] + D_80162FC0[2]) * 0.5f) - var_f24;
|
||||
|
@ -265,7 +265,7 @@ void func_8000DF8C(s32 bombKartId) {
|
|||
D_80162FC0[1] = temp_v0_4->posY;
|
||||
D_80162FC0[2] = temp_v0_4->posZ;
|
||||
var_f20 += 3.0f - (var_s1 * 0.3f);
|
||||
spC2 = (get_angle_between_points(D_80162FB0, D_80162FC0) * 0xFFFF) / 65520;
|
||||
spC2 = (get_xz_angle_between_points(D_80162FB0, D_80162FC0) * 0xFFFF) / 65520;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
|
|
@ -243,7 +243,7 @@ s16 calculate_angle_path(s32 pathIndex, s32 pathPointIndex) {
|
|||
sp24[0] = temp_v0->posX;
|
||||
sp24[1] = temp_v0->posY;
|
||||
sp24[2] = temp_v0->posZ;
|
||||
ret = get_angle_between_points(sp30, sp24);
|
||||
ret = get_xz_angle_between_points(sp30, sp24);
|
||||
return -ret;
|
||||
}
|
||||
|
||||
|
|
|
@ -754,7 +754,7 @@ void update_vehicle_follow_path_point(VehicleStuff* vehicle) {
|
|||
sp34[0] = vehicle->position[1];
|
||||
sp34[1] = 0.0f;
|
||||
sp34[2] = sqrtf((temp_f0_3 * temp_f0_3) + (temp_f2_2 * temp_f2_2));
|
||||
thing = get_angle_between_points(sp40, sp34);
|
||||
thing = get_xz_angle_between_points(sp40, sp34);
|
||||
adjust_angle(&vehicle->rotation[0], -thing, 100);
|
||||
vehicle->velocity[0] = vehicle->position[0] - sp5C;
|
||||
vehicle->velocity[1] = vehicle->position[1] - sp58;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#include "some_data.h"
|
||||
|
||||
Vtx D_800E49C0[] = {
|
||||
Vtx gPlayerOneVtx[] = {
|
||||
{ { { 9, 18, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
|
||||
{ { { 9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
|
||||
{ { { -9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
|
||||
|
@ -19,7 +19,7 @@ Vtx D_800E49C0[] = {
|
|||
{ { { -9, 9, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
|
||||
};
|
||||
|
||||
Vtx D_800E4AC0[] = {
|
||||
Vtx gPlayerTwoVtx[] = {
|
||||
{ { { 9, 18, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
|
||||
{ { { 9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
|
||||
{ { { -9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
|
||||
|
@ -38,7 +38,7 @@ Vtx D_800E4AC0[] = {
|
|||
{ { { -9, 9, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
|
||||
};
|
||||
|
||||
Vtx D_800E4BC0[] = {
|
||||
Vtx gPlayerThreeVtx[] = {
|
||||
{ { { 9, 18, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
|
||||
{ { { 9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
|
||||
{ { { -9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
|
||||
|
@ -57,7 +57,7 @@ Vtx D_800E4BC0[] = {
|
|||
{ { { -9, 9, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
|
||||
};
|
||||
|
||||
Vtx D_800E4CC0[] = {
|
||||
Vtx gPlayerFourVtx[] = {
|
||||
{ { { 9, 18, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
|
||||
{ { { 9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
|
||||
{ { { -9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
|
||||
|
@ -76,7 +76,7 @@ Vtx D_800E4CC0[] = {
|
|||
{ { { -9, 9, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
|
||||
};
|
||||
|
||||
Vtx D_800E4DC0[] = {
|
||||
Vtx gPlayerFiveVtx[] = {
|
||||
{ { { 9, 18, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
|
||||
{ { { 9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
|
||||
{ { { -9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
|
||||
|
@ -95,7 +95,7 @@ Vtx D_800E4DC0[] = {
|
|||
{ { { -9, 9, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
|
||||
};
|
||||
|
||||
Vtx D_800E4EC0[] = {
|
||||
Vtx gPlayerSixVtx[] = {
|
||||
{ { { 9, 18, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
|
||||
{ { { 9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
|
||||
{ { { -9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
|
||||
|
@ -112,10 +112,10 @@ Vtx D_800E4EC0[] = {
|
|||
{ { { 9, 0, -6 }, 0, { 0, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
|
||||
{ { { -9, 0, -6 }, 0, { 4032, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
|
||||
{ { { -9, 9, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
|
||||
{ { { -9, 9, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0x60 } } },
|
||||
{ { { -9, 9, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0x60 } } }, // useless
|
||||
};
|
||||
|
||||
Vtx D_800E4FD0[] = {
|
||||
Vtx gPlayerSevenVtx[] = {
|
||||
{ { { 9, 18, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
|
||||
{ { { 9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
|
||||
{ { { -9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
|
||||
|
@ -134,7 +134,7 @@ Vtx D_800E4FD0[] = {
|
|||
{ { { -9, 9, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
|
||||
};
|
||||
|
||||
Vtx D_800E50D0[] = {
|
||||
Vtx gPlayerEightVtx[] = {
|
||||
{ { { 9, 18, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
|
||||
{ { { 9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
|
||||
{ { { -9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
|
||||
|
|
|
@ -6,14 +6,14 @@
|
|||
#include "data/other_textures.h"
|
||||
#include "objects.h"
|
||||
|
||||
extern Vtx D_800E49C0[];
|
||||
extern Vtx D_800E4AC0[];
|
||||
extern Vtx D_800E4BC0[];
|
||||
extern Vtx D_800E4CC0[];
|
||||
extern Vtx D_800E4DC0[];
|
||||
extern Vtx D_800E4EC0[];
|
||||
extern Vtx D_800E4FD0[];
|
||||
extern Vtx D_800E50D0[];
|
||||
extern Vtx gPlayerOneVtx[];
|
||||
extern Vtx gPlayerTwoVtx[];
|
||||
extern Vtx gPlayerThreeVtx[];
|
||||
extern Vtx gPlayerFourVtx[];
|
||||
extern Vtx gPlayerFiveVtx[];
|
||||
extern Vtx gPlayerSixVtx[];
|
||||
extern Vtx gPlayerSevenVtx[];
|
||||
extern Vtx gPlayerEightVtx[];
|
||||
extern Vtx D_800E51D0[];
|
||||
extern Vtx D_800E5210[];
|
||||
extern Vtx gBalloonVertexPlane1[];
|
||||
|
|
|
@ -1893,7 +1893,7 @@ void func_80090970(Player* player, s8 playerId, s8 arg2) {
|
|||
case 2:
|
||||
func_80090178(player, playerId, sp44, sp38);
|
||||
// Fakematch found by Verti, who knows what's going on here
|
||||
player->rotation[1] = (u16) -get_angle_between_points(sp44, sp38) & 0xFFFF;
|
||||
player->rotation[1] = (u16) -get_xz_angle_between_points(sp44, sp38) & 0xFFFF;
|
||||
player->pos[0] = sp44[0];
|
||||
player->pos[1] = sp44[1] + 40.0f;
|
||||
player->pos[2] = sp44[2];
|
||||
|
|
|
@ -728,9 +728,9 @@ void func_8002934C(Player* player, Camera* camera, s8 screenId, s8 playerId) {
|
|||
temp_f0 = player->unk_230 - player->unk_23C;
|
||||
if ((player->effects & 8) != 8) {
|
||||
if ((player->effects & LIGHTNING_EFFECT) == LIGHTNING_EFFECT) {
|
||||
player->unk_0CC[screenId] = (s16) ((s32) (((f64) func_802B7C40(temp_f0 / temp_f2)) * 1.6));
|
||||
player->unk_0CC[screenId] = (s16) ((s32) (((f64) atan1s(temp_f0 / temp_f2)) * 1.6));
|
||||
} else {
|
||||
player->unk_0CC[screenId] = func_802B7C40(temp_f0 / temp_f2) * 2;
|
||||
player->unk_0CC[screenId] = atan1s(temp_f0 / temp_f2) * 2;
|
||||
}
|
||||
}
|
||||
if ((player->effects & HIT_EFFECT) == HIT_EFFECT) {
|
||||
|
@ -738,14 +738,14 @@ void func_8002934C(Player* player, Camera* camera, s8 screenId, s8 playerId) {
|
|||
}
|
||||
if ((player->effects & 8) != 8) {
|
||||
temp_f0 = player->unk_1F8 - player->unk_1FC;
|
||||
player->unk_0D4[screenId] = (((func_802B7C40(temp_f0 / temp_f2)) * 0.9));
|
||||
player->unk_0D4[screenId] = (((atan1s(temp_f0 / temp_f2)) * 0.9));
|
||||
} else {
|
||||
if (((player->animFrameSelector[screenId]) >= 0) && ((player->animFrameSelector[screenId]) < 0x101)) {
|
||||
var_f0 = player->oldPos[1] - player->pos[1];
|
||||
} else {
|
||||
var_f0 = player->pos[1] - player->oldPos[1];
|
||||
}
|
||||
player->unk_0D4[screenId] = (s16) ((s32) (((f64) func_802B7C40(var_f0 / temp_f2)) * 0.5));
|
||||
player->unk_0D4[screenId] = (s16) ((s32) (((f64) atan1s(var_f0 / temp_f2)) * 0.5));
|
||||
}
|
||||
if ((player->effects & HIT_EFFECT) == HIT_EFFECT) {
|
||||
player->unk_0D4[screenId] = (s16) ((s32) player->unk_D9C);
|
||||
|
@ -874,7 +874,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;
|
||||
mtxf_translate_vec3f_mat3(sp8C, sp5C);
|
||||
mtxf_transform_vec3f_mat3(sp8C, sp5C);
|
||||
sp80[0] = player->tyres[FRONT_LEFT].pos[0];
|
||||
sp80[1] = player->tyres[FRONT_LEFT].pos[1];
|
||||
sp80[2] = player->tyres[FRONT_LEFT].pos[2];
|
||||
|
@ -885,7 +885,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;
|
||||
mtxf_translate_vec3f_mat3(sp8C, sp5C);
|
||||
mtxf_transform_vec3f_mat3(sp8C, sp5C);
|
||||
sp80[0] = player->tyres[FRONT_RIGHT].pos[0];
|
||||
sp80[1] = player->tyres[FRONT_RIGHT].pos[1];
|
||||
sp80[2] = player->tyres[FRONT_RIGHT].pos[2];
|
||||
|
@ -896,7 +896,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;
|
||||
mtxf_translate_vec3f_mat3(sp8C, sp5C);
|
||||
mtxf_transform_vec3f_mat3(sp8C, sp5C);
|
||||
sp80[0] = player->tyres[BACK_LEFT].pos[0];
|
||||
sp80[1] = player->tyres[BACK_LEFT].pos[1];
|
||||
sp80[2] = player->tyres[BACK_LEFT].pos[2];
|
||||
|
@ -907,7 +907,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;
|
||||
mtxf_translate_vec3f_mat3(sp8C, sp5C);
|
||||
mtxf_transform_vec3f_mat3(sp8C, sp5C);
|
||||
sp80[0] = player->tyres[BACK_RIGHT].pos[0];
|
||||
sp80[1] = player->tyres[BACK_RIGHT].pos[1];
|
||||
sp80[2] = player->tyres[BACK_RIGHT].pos[2];
|
||||
|
@ -930,16 +930,16 @@ void func_80029B4C(Player* player, UNUSED f32 arg1, f32 arg2, UNUSED f32 arg3) {
|
|||
}
|
||||
temp_f2_3 = ((gCharacterSize[player->characterId] * 18.0f) + 1.0f) * player->size;
|
||||
temp_f0_2 = player->unk_23C - player->unk_230;
|
||||
player->unk_206 = -func_802B7C40(temp_f0_2 / temp_f2_3);
|
||||
player->unk_206 = -atan1s(temp_f0_2 / temp_f2_3);
|
||||
if (((player->unk_0CA & 2) == 2) || (player->effects & 8)) {
|
||||
player->unk_206 = 0;
|
||||
}
|
||||
if ((player->effects & 8) != 8) {
|
||||
temp_f0_2 = player->unk_1F8 - player->unk_1FC;
|
||||
move_s16_towards(&player->slopeAccel, func_802B7C40(temp_f0_2 / temp_f2_3), 0.5f);
|
||||
move_s16_towards(&player->slopeAccel, atan1s(temp_f0_2 / temp_f2_3), 0.5f);
|
||||
} else {
|
||||
temp_f0_2 = player->oldPos[1] - arg2;
|
||||
temp_v0 = func_802B7C40(temp_f0_2 / temp_f2_3);
|
||||
temp_v0 = atan1s(temp_f0_2 / temp_f2_3);
|
||||
if (temp_f0_2 >= 0.0f) {
|
||||
temp_v0 /= 4;
|
||||
} else {
|
||||
|
@ -1017,13 +1017,13 @@ void func_8002A194(Player* player, f32 x, f32 y, f32 z) {
|
|||
player->tyres[FRONT_LEFT].surfaceType = player->surfaceType;
|
||||
var_f20 = (gCharacterSize[player->characterId] * 18) + 1;
|
||||
temp_f0 = (player->unk_23C - player->unk_230);
|
||||
player->unk_206 = -func_802B7C40(temp_f0 / var_f20);
|
||||
player->unk_206 = -atan1s(temp_f0 / var_f20);
|
||||
if ((player->effects & 8) != 8) {
|
||||
temp_f0 = (player->unk_1F8 - player->unk_1FC);
|
||||
move_s16_towards(&player->slopeAccel, func_802B7C40(temp_f0 / var_f20), 0.5f);
|
||||
move_s16_towards(&player->slopeAccel, atan1s(temp_f0 / var_f20), 0.5f);
|
||||
} else {
|
||||
temp_f0 = player->oldPos[1] - y;
|
||||
temp_v0 = func_802B7C40(temp_f0 / var_f20);
|
||||
temp_v0 = atan1s(temp_f0 / var_f20);
|
||||
if (temp_f0 >= 0.0f) {
|
||||
var_a1 = temp_v0 * 2;
|
||||
} else {
|
||||
|
@ -1548,7 +1548,7 @@ void func_8002B9CC(Player* player, s8 playerIndex, UNUSED s32 arg2) {
|
|||
func_8008C73C(player, playerIndex);
|
||||
}
|
||||
}
|
||||
temp = (-(s16) get_angle_between_points(player->pos, &player->oldPos[0]));
|
||||
temp = (-(s16) get_xz_angle_between_points(player->pos, &player->oldPos[0]));
|
||||
temp2 = (player->rotation[1] - player->unk_0C0);
|
||||
temp = temp - temp2;
|
||||
player->unk_234 = temp / 182;
|
||||
|
@ -1582,15 +1582,15 @@ void func_8002BB9C(Player* player, f32* arg1, f32* arg2, UNUSED s8 arg3, UNUSED
|
|||
sp58[1] = 0;
|
||||
sp58[2] = *arg2;
|
||||
|
||||
mtxf_translate_vec3f_mat3(sp58, sp64);
|
||||
mtxf_transform_vec3f_mat3(sp58, sp64);
|
||||
|
||||
sp4C[0] = player->oldPos[0];
|
||||
sp4C[1] = 0;
|
||||
sp4C[2] = player->oldPos[2];
|
||||
|
||||
mtxf_translate_vec3f_mat3(sp4C, sp64);
|
||||
mtxf_transform_vec3f_mat3(sp4C, sp64);
|
||||
|
||||
var_v0 = -(s16) get_angle_between_points(sp58, sp4C);
|
||||
var_v0 = -(s16) get_xz_angle_between_points(sp58, sp4C);
|
||||
t0 = player->rotation[1];
|
||||
var_v0 = 0x10000 + (t0 - var_v0);
|
||||
var_v0 /= 182;
|
||||
|
@ -2005,7 +2005,7 @@ void func_8002D028(Player* player, s8 playerIndex) {
|
|||
sp4C[1] = 0;
|
||||
sp4C[2] = D_80165230[D_80165270[playerIndex]];
|
||||
|
||||
temp = -(s16) get_angle_between_points(player->pos, sp4C);
|
||||
temp = -(s16) get_xz_angle_between_points(player->pos, sp4C);
|
||||
temp2 = player->rotation[1];
|
||||
temp = (temp - temp2);
|
||||
|
||||
|
@ -2136,12 +2136,12 @@ void func_8002D268(Player* player, UNUSED Camera* camera, s8 screenId, s8 player
|
|||
sp178[2] = 0.0f;
|
||||
}
|
||||
sp178[1] = 0.0f;
|
||||
mtxf_translate_vec3f_mat3(sp178, player->orientationMatrix);
|
||||
mtxf_transform_vec3f_mat3(sp178, player->orientationMatrix);
|
||||
gravityX += sp178[0];
|
||||
gravityZ += sp178[2];
|
||||
func_8002C7E4(player, playerId, screenId);
|
||||
sp184[2] = func_80030150(player, playerId);
|
||||
mtxf_translate_vec3f_mat3(sp184, player->orientationMatrix);
|
||||
mtxf_transform_vec3f_mat3(sp184, player->orientationMatrix);
|
||||
newVelocity[0] = player->velocity[0];
|
||||
newVelocity[1] = player->velocity[1];
|
||||
newVelocity[2] = player->velocity[2];
|
||||
|
@ -2436,9 +2436,9 @@ void func_8002E594(Player* player, UNUSED Camera* camera, s8 screenId, s8 player
|
|||
}
|
||||
spEC[2] = func_80030150(player, playerId);
|
||||
if (sp46 == 1) {
|
||||
mtxf_translate_vec3f_mat3(spEC, player->unk_150);
|
||||
mtxf_transform_vec3f_mat3(spEC, player->unk_150);
|
||||
} else {
|
||||
mtxf_translate_vec3f_mat3(spEC, player->orientationMatrix);
|
||||
mtxf_transform_vec3f_mat3(spEC, player->orientationMatrix);
|
||||
}
|
||||
newVelocity[0] = player->velocity[0];
|
||||
newVelocity[1] = player->velocity[1];
|
||||
|
@ -2657,7 +2657,7 @@ void control_cpu_movement(Player* player, UNUSED Camera* camera, s8 screenId, s8
|
|||
player->unk_256 = 0;
|
||||
player->effects &= ~0x8000;
|
||||
spF4[2] = func_80030150(player, playerId);
|
||||
mtxf_translate_vec3f_mat3(spF4, player->orientationMatrix);
|
||||
mtxf_transform_vec3f_mat3(spF4, player->orientationMatrix);
|
||||
newVelocity[0] = player->velocity[0];
|
||||
newVelocity[1] = 0;
|
||||
newVelocity[2] = player->velocity[2];
|
||||
|
@ -2731,7 +2731,7 @@ void func_8002F730(Player* player, UNUSED Camera* camera, UNUSED s8 screenId, s8
|
|||
sp7C = player->unk_064[2] * 0;
|
||||
spF4[2] = func_80030150(player, playerId);
|
||||
|
||||
mtxf_translate_vec3f_mat3(spF4, player->orientationMatrix);
|
||||
mtxf_transform_vec3f_mat3(spF4, player->orientationMatrix);
|
||||
|
||||
newVelocity[0] = player->velocity[0];
|
||||
newVelocity[1] = player->velocity[1];
|
||||
|
@ -4239,7 +4239,7 @@ void func_80036DB4(Player* player, Vec3f arg1, Vec3f arg2) {
|
|||
arg1[0] = 0.0f;
|
||||
arg1[1] = 0.0f;
|
||||
arg1[2] = 0.0f;
|
||||
mtxf_translate_vec3f_mat3(arg1, player->orientationMatrix);
|
||||
mtxf_transform_vec3f_mat3(arg1, player->orientationMatrix);
|
||||
} else {
|
||||
if (((player->effects & UNKNOWN_EFFECT_0x10) == UNKNOWN_EFFECT_0x10) && ((player->effects & 2) != 2)) {
|
||||
var_f18 = player->unk_208 + ((-(player->speed / 18.0f) * 216.0f) * 3.0f) + (-player->unk_20C * 10.0f);
|
||||
|
@ -4280,7 +4280,7 @@ void func_80036DB4(Player* player, Vec3f arg1, Vec3f arg2) {
|
|||
arg1[0] = (player->unk_090 + var_f18) * player->speed;
|
||||
arg1[1] = 0.0f;
|
||||
arg1[2] = player->speed * sp20;
|
||||
mtxf_translate_vec3f_mat3(arg1, player->orientationMatrix);
|
||||
mtxf_transform_vec3f_mat3(arg1, player->orientationMatrix);
|
||||
}
|
||||
arg2[0] = arg1[0];
|
||||
arg2[1] = arg1[1];
|
||||
|
@ -4297,7 +4297,7 @@ void func_800371F4(Player* player, Vec3f arg1, Vec3f arg2) {
|
|||
arg1[0] = 0.0f;
|
||||
arg1[1] = 0.0f;
|
||||
arg1[2] = 0.0f;
|
||||
mtxf_translate_vec3f_mat3(arg1, player->orientationMatrix);
|
||||
mtxf_transform_vec3f_mat3(arg1, player->orientationMatrix);
|
||||
} else {
|
||||
if (((player->effects & UNKNOWN_EFFECT_0x10) == UNKNOWN_EFFECT_0x10) && ((player->effects & 2) != 2)) {
|
||||
var_f18 = player->unk_208 + ((-(player->speed / 18.0f) * 216.0f) * 3.0f) + (-player->unk_20C * 50.0f);
|
||||
|
@ -4341,7 +4341,7 @@ void func_800371F4(Player* player, Vec3f arg1, Vec3f arg2) {
|
|||
arg1[0] = -(player->unk_090 + var_f18) * player->speed;
|
||||
arg1[1] = 0.0f;
|
||||
arg1[2] = player->speed * sp20;
|
||||
mtxf_translate_vec3f_mat3(arg1, player->orientationMatrix);
|
||||
mtxf_transform_vec3f_mat3(arg1, player->orientationMatrix);
|
||||
}
|
||||
arg2[0] = arg1[0];
|
||||
arg2[1] = arg1[1];
|
||||
|
@ -4356,7 +4356,7 @@ void func_80037614(Player* player, Vec3f arg1, Vec3f arg2) {
|
|||
arg1[0] = 0.0f;
|
||||
arg1[1] = 0.0f;
|
||||
arg1[2] = 0.0f;
|
||||
mtxf_translate_vec3f_mat3(arg1, player->orientationMatrix);
|
||||
mtxf_transform_vec3f_mat3(arg1, player->orientationMatrix);
|
||||
} else {
|
||||
if (((player->effects & UNKNOWN_EFFECT_0x10) == UNKNOWN_EFFECT_0x10) && ((player->effects & 2) != 2)) {
|
||||
var_f2 = ((-(player->speed / 18.0f) * 216.0f) * 2) + -80.0f;
|
||||
|
@ -4368,7 +4368,7 @@ void func_80037614(Player* player, Vec3f arg1, Vec3f arg2) {
|
|||
arg1[0] = (var_f2 + 28.0f) * player->speed;
|
||||
arg1[1] = 0.0f;
|
||||
arg1[2] = var_f12 * player->speed;
|
||||
mtxf_translate_vec3f_mat3(arg1, player->orientationMatrix);
|
||||
mtxf_transform_vec3f_mat3(arg1, player->orientationMatrix);
|
||||
}
|
||||
arg2[0] = arg1[0];
|
||||
arg2[1] = arg1[1];
|
||||
|
@ -4384,7 +4384,7 @@ void func_8003777C(Player* player, Vec3f arg1, Vec3f arg2) {
|
|||
arg1[0] = 0.0f;
|
||||
arg1[1] = 0.0f;
|
||||
arg1[2] = 0.0f;
|
||||
mtxf_translate_vec3f_mat3(arg1, player->orientationMatrix);
|
||||
mtxf_transform_vec3f_mat3(arg1, player->orientationMatrix);
|
||||
} else {
|
||||
if (((player->effects & UNKNOWN_EFFECT_0x10) == UNKNOWN_EFFECT_0x10) && ((player->effects & 2) != 2)) {
|
||||
var_f2 = ((-(player->speed / 18.0f) * 216.0f) * 2) + -80.0f;
|
||||
|
@ -4396,7 +4396,7 @@ void func_8003777C(Player* player, Vec3f arg1, Vec3f arg2) {
|
|||
arg1[0] = -(var_f2 + 28.0f) * player->speed;
|
||||
arg1[1] = 0.0f;
|
||||
arg1[2] = var_f12 * player->speed;
|
||||
mtxf_translate_vec3f_mat3(arg1, player->orientationMatrix);
|
||||
mtxf_transform_vec3f_mat3(arg1, player->orientationMatrix);
|
||||
}
|
||||
arg2[0] = arg1[0];
|
||||
arg2[1] = arg1[1];
|
||||
|
@ -4411,7 +4411,7 @@ void func_800378E8(Player* player, Vec3f arg1, Vec3f arg2) {
|
|||
arg1[0] = 0.0f;
|
||||
arg1[1] = 0.0f;
|
||||
arg1[2] = 0.0f;
|
||||
mtxf_translate_vec3f_mat3(arg1, player->orientationMatrix);
|
||||
mtxf_transform_vec3f_mat3(arg1, player->orientationMatrix);
|
||||
} else {
|
||||
if ((player->effects & UNKNOWN_EFFECT_0x10) == UNKNOWN_EFFECT_0x10) {
|
||||
var_f2 = player->unk_208 + (-(player->speed / 18.0f) * 216.0f * 5.0f) + (-player->unk_20C * 10.0f);
|
||||
|
@ -4423,7 +4423,7 @@ void func_800378E8(Player* player, Vec3f arg1, Vec3f arg2) {
|
|||
arg1[0] = (player->unk_090 + var_f2) * player->speed;
|
||||
arg1[1] = 0.0f;
|
||||
arg1[2] = player->speed * var_f12;
|
||||
mtxf_translate_vec3f_mat3(arg1, player->orientationMatrix);
|
||||
mtxf_transform_vec3f_mat3(arg1, player->orientationMatrix);
|
||||
}
|
||||
arg2[0] = arg1[0];
|
||||
arg2[1] = arg1[1];
|
||||
|
@ -4438,7 +4438,7 @@ void func_80037A4C(Player* player, Vec3f arg1, Vec3f arg2) {
|
|||
arg1[0] = 0.0f;
|
||||
arg1[1] = 0.0f;
|
||||
arg1[2] = 0.0f;
|
||||
mtxf_translate_vec3f_mat3(arg1, player->orientationMatrix);
|
||||
mtxf_transform_vec3f_mat3(arg1, player->orientationMatrix);
|
||||
} else {
|
||||
if ((player->effects & UNKNOWN_EFFECT_0x10) == UNKNOWN_EFFECT_0x10) {
|
||||
var_f2 = player->unk_208 + (-(player->speed / 18.0f) * 216.0f * 5.0f) + (-player->unk_20C * 50.0f);
|
||||
|
@ -4450,7 +4450,7 @@ void func_80037A4C(Player* player, Vec3f arg1, Vec3f arg2) {
|
|||
arg1[0] = -(player->unk_090 + var_f2) * player->speed;
|
||||
arg1[1] = 0.0f;
|
||||
arg1[2] = player->speed * var_f12;
|
||||
mtxf_translate_vec3f_mat3(arg1, player->orientationMatrix);
|
||||
mtxf_transform_vec3f_mat3(arg1, player->orientationMatrix);
|
||||
}
|
||||
arg2[0] = arg1[0];
|
||||
arg2[1] = arg1[1];
|
||||
|
@ -4840,11 +4840,11 @@ void func_80038C6C(Player* player, UNUSED Camera* camera, s8 screenId, s8 player
|
|||
sp108[2] = 0;
|
||||
sp108[1] = 0;
|
||||
sp108[0] = 0;
|
||||
mtxf_translate_vec3f_mat3(sp108, player->orientationMatrix);
|
||||
mtxf_transform_vec3f_mat3(sp108, player->orientationMatrix);
|
||||
spA4 += sp108[0];
|
||||
sp9C += sp108[2];
|
||||
sp114[2] = player->unk_08C;
|
||||
mtxf_translate_vec3f_mat3(sp114, player->orientationMatrix);
|
||||
mtxf_transform_vec3f_mat3(sp114, player->orientationMatrix);
|
||||
|
||||
newVelocity[0] = player->velocity[0];
|
||||
newVelocity[1] = player->velocity[1];
|
||||
|
|
|
@ -424,7 +424,7 @@ void func_8029794C(Vec3f pos, Vec3s rot, f32 scale) {
|
|||
Mat4 sp20;
|
||||
pos[1] += 2.0f;
|
||||
|
||||
mtxf_pos_rotation_xyz(sp20, pos, rot);
|
||||
mtxf_rotate_zxy_translate(sp20, pos, rot);
|
||||
mtxf_scale(sp20, scale);
|
||||
if (render_set_position(sp20, 0) != 0) {
|
||||
gSPDisplayList(gDisplayListHead++, D_0D007B20);
|
||||
|
@ -489,8 +489,8 @@ void render_cows(Camera* camera, Mat4 arg1, UNUSED struct Actor* actor) {
|
|||
sp88[0] = var_s1->pos[0] * gCourseDirection;
|
||||
sp88[1] = var_s1->pos[1];
|
||||
sp88[2] = var_s1->pos[2];
|
||||
temp_f0 = is_within_render_distance(camera->pos, sp88, camera->rot[1], 0.0f, gCameraZoom[camera - camera1],
|
||||
4000000.0f);
|
||||
temp_f0 =
|
||||
distance_if_visible(camera->pos, sp88, camera->rot[1], 0.0f, gCameraZoom[camera - camera1], 4000000.0f);
|
||||
if (temp_f0 > 0.0f) {
|
||||
if (temp_f0 < D_8015F704) {
|
||||
D_8015F704 = temp_f0;
|
||||
|
@ -631,7 +631,7 @@ void render_palm_trees(Camera* camera, Mat4 arg1, UNUSED struct Actor* actor) {
|
|||
spD4[1] = var_s1->pos[1];
|
||||
spD4[2] = var_s1->pos[2];
|
||||
|
||||
if (is_within_render_distance(camera->pos, spD4, camera->rot[1], 0.0f, gCameraZoom[camera - camera1], var_f22) <
|
||||
if (distance_if_visible(camera->pos, spD4, camera->rot[1], 0.0f, gCameraZoom[camera - camera1], var_f22) <
|
||||
0.0f) {
|
||||
var_s1++;
|
||||
continue;
|
||||
|
@ -640,7 +640,7 @@ void render_palm_trees(Camera* camera, Mat4 arg1, UNUSED struct Actor* actor) {
|
|||
test &= 0xF;
|
||||
test = (s16) test;
|
||||
if (test == 6) {
|
||||
mtxf_pos_rotation_xyz(sp90, spD4, sp88);
|
||||
mtxf_rotate_zxy_translate(sp90, spD4, sp88);
|
||||
if (!(gMatrixObjectCount < MTX_OBJECT_POOL_SIZE)) {
|
||||
break;
|
||||
}
|
||||
|
@ -692,7 +692,7 @@ void render_actor_shell(Camera* camera, Mat4 matrix, struct ShellActor* shell) {
|
|||
uintptr_t phi_t3;
|
||||
|
||||
f32 temp_f0 =
|
||||
is_within_render_distance(camera->pos, shell->pos, camera->rot[1], 0, gCameraZoom[camera - camera1], 490000.0f);
|
||||
distance_if_visible(camera->pos, shell->pos, camera->rot[1], 0, gCameraZoom[camera - camera1], 490000.0f);
|
||||
s32 maxObjectsReached;
|
||||
if (temp_f0 < 0.0f) {
|
||||
actor_not_rendered(camera, (struct Actor*) shell);
|
||||
|
@ -755,8 +755,8 @@ UNUSED void func_8029ABD4(f32* pos, s16 state) {
|
|||
}
|
||||
|
||||
void func_8029AC18(Camera* camera, Mat4 arg1, struct Actor* arg2) {
|
||||
if (is_within_render_distance(camera->pos, arg2->pos, camera->rot[1], 0, gCameraZoom[camera - camera1],
|
||||
4000000.0f) < 0) {
|
||||
if (distance_if_visible(camera->pos, arg2->pos, camera->rot[1], 0, gCameraZoom[camera - camera1], 4000000.0f) <
|
||||
0) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -193,7 +193,7 @@ void func_802B0788(s16 rawStickY, struct BananaBunchParent* banana_bunch, Player
|
|||
var_f12 = (player->speed * 0.75f) + 4.5f + var_f0;
|
||||
}
|
||||
vec3f_set(velocity, 0.0f, var_f0, var_f12);
|
||||
func_802B64C4(velocity, player->rotation[1] + player->unk_0C0);
|
||||
vec3f_rotate_y(velocity, player->rotation[1] + player->unk_0C0);
|
||||
banana->velocity[0] = velocity[0];
|
||||
banana->velocity[1] = velocity[1];
|
||||
banana->velocity[2] = velocity[2];
|
||||
|
@ -431,7 +431,7 @@ void update_actor_triple_shell(TripleShellParent* parent, s16 shellType) {
|
|||
someVelocity[0] = 0;
|
||||
someVelocity[1] = 0;
|
||||
someVelocity[2] = 8;
|
||||
func_802B64C4(someVelocity, player->rotation[1] + player->unk_0C0);
|
||||
vec3f_rotate_y(someVelocity, player->rotation[1] + player->unk_0C0);
|
||||
shell->velocity[0] = someVelocity[0];
|
||||
shell->velocity[1] = someVelocity[1];
|
||||
shell->velocity[2] = someVelocity[2];
|
||||
|
@ -457,7 +457,7 @@ void update_actor_triple_shell(TripleShellParent* parent, s16 shellType) {
|
|||
someVelocity[0] = 0;
|
||||
someVelocity[1] = 0;
|
||||
someVelocity[2] = 8;
|
||||
func_802B64C4(someVelocity, player->rotation[1] + player->unk_0C0);
|
||||
vec3f_rotate_y(someVelocity, player->rotation[1] + player->unk_0C0);
|
||||
shell->velocity[0] = someVelocity[0];
|
||||
shell->velocity[1] = someVelocity[1];
|
||||
shell->velocity[2] = someVelocity[2];
|
||||
|
@ -483,7 +483,7 @@ void update_actor_triple_shell(TripleShellParent* parent, s16 shellType) {
|
|||
someVelocity[0] = 0;
|
||||
someVelocity[1] = 0;
|
||||
someVelocity[2] = 8;
|
||||
func_802B64C4(someVelocity, player->rotation[1] + player->unk_0C0);
|
||||
vec3f_rotate_y(someVelocity, player->rotation[1] + player->unk_0C0);
|
||||
shell->velocity[0] = someVelocity[0];
|
||||
shell->velocity[1] = someVelocity[1];
|
||||
shell->velocity[2] = someVelocity[2];
|
||||
|
@ -561,7 +561,7 @@ s32 init_triple_shell(TripleShellParent* parent, Player* player, s16 shellType,
|
|||
startingPos[0] = 0.0f;
|
||||
startingPos[1] = -player->boundingBoxSize;
|
||||
startingPos[2] = player->boundingBoxSize - 4.0f;
|
||||
mtxf_translate_vec3f_mat3(startingPos, player->orientationMatrix);
|
||||
mtxf_transform_vec3f_mat3(startingPos, player->orientationMatrix);
|
||||
startingPos[0] += player->pos[0];
|
||||
startingPos[1] += player->pos[1];
|
||||
startingPos[2] += player->pos[2];
|
||||
|
@ -610,7 +610,7 @@ s32 use_green_shell_item(Player* player) {
|
|||
startingPos[2] = player->boundingBoxSize - 4.0f;
|
||||
|
||||
// rotate to match player orientation
|
||||
mtxf_translate_vec3f_mat3(startingPos, player->orientationMatrix);
|
||||
mtxf_transform_vec3f_mat3(startingPos, player->orientationMatrix);
|
||||
|
||||
// move to player position
|
||||
startingPos[0] += player->pos[0];
|
||||
|
@ -650,7 +650,7 @@ s32 use_red_shell_item(Player* player) {
|
|||
startingPos[2] = player->boundingBoxSize - 4.0f;
|
||||
|
||||
// rotate to match player orientation
|
||||
mtxf_translate_vec3f_mat3(startingPos, player->orientationMatrix);
|
||||
mtxf_transform_vec3f_mat3(startingPos, player->orientationMatrix);
|
||||
|
||||
// move to player position
|
||||
startingPos[0] += player->pos[0];
|
||||
|
@ -699,7 +699,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);
|
||||
mtxf_translate_vec3f_mat3(startingPos, player->orientationMatrix);
|
||||
mtxf_transform_vec3f_mat3(startingPos, player->orientationMatrix);
|
||||
startingPos[0] += player->pos[0];
|
||||
startingPos[1] += player->pos[1];
|
||||
startingPos[2] += player->pos[2];
|
||||
|
@ -779,7 +779,7 @@ s32 use_fake_itembox_item(Player* player) {
|
|||
startingPos[2] = -(player->boundingBoxSize + 4.0f);
|
||||
|
||||
// rotate to match player orientation
|
||||
mtxf_translate_vec3f_mat3(startingPos, player->orientationMatrix);
|
||||
mtxf_transform_vec3f_mat3(startingPos, player->orientationMatrix);
|
||||
|
||||
// move to player position
|
||||
startingPos[0] += player->pos[0];
|
||||
|
@ -827,7 +827,7 @@ s32 use_banana_item(Player* player) {
|
|||
startingPos[2] = -(player->boundingBoxSize + 4.0f);
|
||||
|
||||
// apply the player's orientation to the banana
|
||||
mtxf_translate_vec3f_mat3(startingPos, player->orientationMatrix);
|
||||
mtxf_transform_vec3f_mat3(startingPos, player->orientationMatrix);
|
||||
|
||||
// add the player's position to the banana's position
|
||||
startingPos[0] += player->pos[0];
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -14,13 +14,12 @@
|
|||
// Here to appease the pragma gods
|
||||
double fabs(double x);
|
||||
|
||||
void func_802B5794(Mat4, Vec3f, Vec3f);
|
||||
s32 func_802B4F60(s32, Vec3f, s32, f32, f32);
|
||||
void func_802B5794(Mat4, Vec3f, Vec3f); // Unused
|
||||
s32 func_802B4F60(s32, Vec3f, s32, f32, f32); // Unused
|
||||
s32 render_set_position(Mat4, s32);
|
||||
f32 func_802B51E8(Vec3f, Vec3f);
|
||||
s32 get_angle_between_points(Vec3f, Vec3f);
|
||||
u32 func_802B5258(Vec3f, Vec3s);
|
||||
void func_802B5794(Mat4, Vec3f, Vec3f);
|
||||
f32 dist_squared_bugged(Vec3f, Vec3f);
|
||||
s32 get_xz_angle_between_points(Vec3f, Vec3f);
|
||||
u32 func_802B5258(Vec3f, Vec3s); // Unused
|
||||
void vec3f_set(Vec3f, f32, f32, f32);
|
||||
void vec3s_set(Vec3s, s16, s16, s16);
|
||||
void* vec3f_copy_return(Vec3f, Vec3f);
|
||||
|
@ -32,42 +31,42 @@ void mtxf_identity(Mat4);
|
|||
void add_translate_mat4_vec3f(Mat4, Mat4, Vec3f);
|
||||
void add_translate_mat4_vec3f_lite(Mat4, Mat4, Vec3f);
|
||||
void mtxf_translate(Mat4, Vec3f);
|
||||
void get_projection_matrix(Mat4, u16*, f32, f32, f32, f32, f32);
|
||||
void func_802B5794(Mat4, Vec3f, Vec3f);
|
||||
void mtxf_projection(Mat4, u16*, f32, f32, f32, f32, f32);
|
||||
void mtxf_lookat(Mat4, Vec3f, Vec3f);
|
||||
void mtxf_rotate_x(Mat4, s16);
|
||||
void mtxf_rotate_y(Mat4, s16);
|
||||
void mtxf_s16_rotate_z(Mat4, s16);
|
||||
void func_802B5B14(Vec3f b, Vec3s rotate); // unused
|
||||
void func_802B5CAC(s16, s16, Vec3f);
|
||||
void func_802B5D30(s16, s16, s32);
|
||||
void func_802B5B14(Vec3f b, Vec3s rotate); // Unused
|
||||
void func_802B5CAC(s16, s16, Vec3f); // Unused
|
||||
void func_802B5D30(s16, s16, s32); // Unused
|
||||
void set_course_lighting(Lights1*, s16, s16, s32);
|
||||
void mtxf_scale(Mat4, f32);
|
||||
void mtxf_pos_rotation_xyz(Mat4, Vec3f, Vec3s);
|
||||
void mtxf_translate_vec3f_mat3(Vec3f, Mat3);
|
||||
void mtxf_translate_vec3f_mat4(Vec3f, Mat4);
|
||||
void func_802B64C4(Vec3f, s16);
|
||||
void mtxf_rotate_zxy_translate(Mat4, Vec3f, Vec3s);
|
||||
void mtxf_transform_vec3f_mat3(Vec3f, Mat3);
|
||||
void mtxf_transform_vec3f_mat4(Vec3f, Mat4);
|
||||
void vec3f_rotate_y(Vec3f, s16);
|
||||
void calculate_orientation_matrix(Mat3, f32, f32, f32, s16);
|
||||
void calculate_rotation_matrix(Mat3, s16, f32, f32, f32);
|
||||
void func_802B6BC0(Mat4, s16, f32, f32, f32);
|
||||
void func_802B6D58(Mat4, Vec3f, Vec3f);
|
||||
void func_802B6BC0(Mat4, s16, f32, f32, f32); // Unused
|
||||
void func_802B6D58(Mat4, Vec3f, Vec3f); // Unused
|
||||
void mtxf_multiplication(Mat4, Mat4, Mat4);
|
||||
void mtxf_to_mtx(Mtx*, Mat4);
|
||||
u16 atan2_lookup(f32, f32);
|
||||
u16 atan2s(f32, f32);
|
||||
f32 atan2f(f32, f32);
|
||||
s16 func_802B7C40(f32);
|
||||
s16 func_802B7CA8(f32);
|
||||
f32 calculate_vector_angle_xy(f32);
|
||||
s16 atan1s(f32);
|
||||
s16 asin1s(f32);
|
||||
f32 acos1f(f32);
|
||||
u16 random_u16(void);
|
||||
u16 random_int(u16);
|
||||
s16 func_802B7F34(f32, f32, f32, f32);
|
||||
void func_802B7F7C(Vec3f, Vec3f, Vec3s);
|
||||
s16 angle_from_coords(f32, f32, f32, f32);
|
||||
void planar_angles(Vec3f, Vec3f, Vec3s);
|
||||
f32 sins(u16);
|
||||
f32 coss(u16);
|
||||
s32 is_visible_between_angle(u16, u16, u16);
|
||||
f32 is_within_render_distance(Vec3f, Vec3f, u16, f32, f32, f32);
|
||||
s32 is_between_angle(u16, u16, u16);
|
||||
f32 distance_if_visible(Vec3f, Vec3f, u16, f32, f32, f32);
|
||||
|
||||
extern s32 D_802B91C0[];
|
||||
extern s32 D_802B91C0[]; // Unused
|
||||
extern Vec3f D_802B91C8;
|
||||
|
||||
#endif // MATH_UTIL_H
|
||||
|
|
|
@ -1509,7 +1509,8 @@ void course_generate_collision_mesh(void) {
|
|||
nullify_displaylist((uintptr_t) 0x070003C8);
|
||||
}
|
||||
parse_course_displaylists((uintptr_t) &d_course_choco_mountain_addr);
|
||||
func_802B5CAC(0x238E, 0x31C7, D_8015F590);
|
||||
// D_8015F590 is only used here, so this seems meaningless
|
||||
vec_unit_z_rotX_rotY(0x238E, 0x31C7, D_8015F590);
|
||||
func_80295C6C();
|
||||
D_8015F8E4 = -80.0f;
|
||||
break;
|
||||
|
|
|
@ -23,7 +23,7 @@ Vp D_802B8880[] = {
|
|||
{ { { 640, 480, 511, 0 }, { 640, 480, 511, 0 } } },
|
||||
};
|
||||
|
||||
Vtx D_802B8890[] = {
|
||||
static Vtx sSkyboxP1[] = {
|
||||
{ { { SCREEN_WIDTH, SCREEN_HEIGHT, -1 }, 0, { 0, 0 }, { 0xC8, 0xC8, 0xFF, 0xFF } } },
|
||||
{ { { SCREEN_WIDTH, 120, -1 }, 0, { 0, 0 }, { 0x1E, 0x1E, 0xFF, 0xFF } } },
|
||||
{ { { 0, 120, -1 }, 0, { 0, 0 }, { 0x1E, 0x1E, 0xFF, 0xFF } } },
|
||||
|
@ -34,7 +34,7 @@ Vtx D_802B8890[] = {
|
|||
{ { { 0, 120, -1 }, 0, { 0, 0 }, { 0x00, 0xDC, 0x00, 0xFF } } },
|
||||
};
|
||||
|
||||
Vtx D_802B8910[] = {
|
||||
static Vtx sSkyboxP2[] = {
|
||||
{ { { SCREEN_WIDTH, SCREEN_HEIGHT, -1 }, 0, { 0, 0 }, { 0xC8, 0xC8, 0xFF, 0xFF } } },
|
||||
{ { { SCREEN_WIDTH, 120, -1 }, 0, { 0, 0 }, { 0x1E, 0x1E, 0xFF, 0xFF } } },
|
||||
{ { { 0, 120, -1 }, 0, { 0, 0 }, { 0x1E, 0x1E, 0xFF, 0xFF } } },
|
||||
|
@ -45,7 +45,7 @@ Vtx D_802B8910[] = {
|
|||
{ { { 0, 120, -1 }, 0, { 0, 0 }, { 0x00, 0xDC, 0x00, 0xFF } } },
|
||||
};
|
||||
|
||||
Vtx D_802B8990[] = {
|
||||
static Vtx sSkyboxP3[] = {
|
||||
{ { { SCREEN_WIDTH, SCREEN_HEIGHT, -1 }, 0, { 0, 0 }, { 0xC8, 0xC8, 0xFF, 0xFF } } },
|
||||
{ { { SCREEN_WIDTH, 120, -1 }, 0, { 0, 0 }, { 0x1E, 0x1E, 0xFF, 0xFF } } },
|
||||
{ { { 0, 120, -1 }, 0, { 0, 0 }, { 0x1E, 0x1E, 0xFF, 0xFF } } },
|
||||
|
@ -56,7 +56,7 @@ Vtx D_802B8990[] = {
|
|||
{ { { 0, 120, -1 }, 0, { 0, 0 }, { 0x00, 0xDC, 0x00, 0xFF } } },
|
||||
};
|
||||
|
||||
Vtx D_802B8A10[] = {
|
||||
static Vtx sSkyboxP4[] = {
|
||||
{ { { SCREEN_WIDTH, SCREEN_HEIGHT, -1 }, 0, { 0, 0 }, { 0xC8, 0xC8, 0xFF, 0xFF } } },
|
||||
{ { { SCREEN_WIDTH, 120, -1 }, 0, { 0, 0 }, { 0x1E, 0x1E, 0xFF, 0xFF } } },
|
||||
{ { { 0, 120, -1 }, 0, { 0, 0 }, { 0x1E, 0x1E, 0xFF, 0xFF } } },
|
||||
|
@ -443,6 +443,7 @@ void course_set_skybox_colours(Vtx* skybox) {
|
|||
#endif
|
||||
}
|
||||
|
||||
// Almost identical to end of render_skybox
|
||||
void func_802A487C(Vtx* arg0, UNUSED struct UnkStruct_800DC5EC* arg1, UNUSED s32 arg2, UNUSED s32 arg3,
|
||||
UNUSED f32* arg4) {
|
||||
|
||||
|
@ -461,46 +462,62 @@ void func_802A487C(Vtx* arg0, UNUSED struct UnkStruct_800DC5EC* arg1, UNUSED s32
|
|||
}
|
||||
}
|
||||
|
||||
void func_802A4A0C(Vtx* vtx, struct UnkStruct_800DC5EC* arg1, UNUSED s32 arg2, UNUSED s32 arg3, UNUSED f32* arg4) {
|
||||
/**
|
||||
* @brief Sets skybox horizon. Some coordinate transformations which can affect game physics and display of player
|
||||
* sprite
|
||||
* @param skybox player skybox
|
||||
* @param arg1 something camera related
|
||||
* @param arg2 unused
|
||||
* @param arg3 unused
|
||||
* @parma arg4 unused
|
||||
*/
|
||||
void render_skybox(Vtx* skybox, struct UnkStruct_800DC5EC* arg1, UNUSED s32 arg2, UNUSED s32 arg3, UNUSED f32* arg4) {
|
||||
Camera* camera = arg1->camera;
|
||||
s16 temp_t5;
|
||||
f32 temp_f0;
|
||||
s16 horizonRow;
|
||||
f32 homogFactor;
|
||||
UNUSED s32 pad[2];
|
||||
UNUSED u16 pad2;
|
||||
u16 sp128;
|
||||
Mat4 matrix1;
|
||||
Mat4 matrix2;
|
||||
Mat4 matrix3;
|
||||
Vec3f sp5C;
|
||||
f32 sp58;
|
||||
Mat4 projMtx;
|
||||
Mat4 lookAtMtx;
|
||||
Mat4 lookAndProjMtx;
|
||||
Vec3f horizonPoint;
|
||||
f32 homogScale;
|
||||
|
||||
course_set_skybox_colours(vtx);
|
||||
sp5C[0] = 0.0f;
|
||||
sp5C[1] = 0.0f;
|
||||
sp5C[2] = 30000.0f;
|
||||
get_projection_matrix(matrix1, &sp128, camera->unk_B4, gScreenAspect, gCourseNearPersp, gCourseFarPersp, 1.0f);
|
||||
func_802B5794(matrix2, camera->pos, camera->lookAt);
|
||||
mtxf_multiplication(matrix3, matrix1, matrix2);
|
||||
course_set_skybox_colours(skybox);
|
||||
|
||||
sp58 = ((matrix3[0][3] * sp5C[0]) + (matrix3[1][3] * sp5C[1]) + (matrix3[2][3] * sp5C[2])) + matrix3[3][3];
|
||||
// horizonPoint is an apparently arbitrary point on the horizon (technically, where y = 0). Used for skybox horizon
|
||||
horizonPoint[0] = 0.0f;
|
||||
horizonPoint[1] = 0.0f;
|
||||
horizonPoint[2] = 30000.0f;
|
||||
mtxf_projection(projMtx, &sp128, camera->unk_B4, gScreenAspect, gCourseNearPersp, gCourseFarPersp, 1.0f);
|
||||
mtxf_lookat(lookAtMtx, camera->pos, camera->lookAt);
|
||||
mtxf_multiplication(lookAndProjMtx, projMtx, lookAtMtx);
|
||||
|
||||
mtxf_translate_vec3f_mat4(sp5C, matrix3);
|
||||
/* math would have been simpler if horizonPoint had an additional homogenous coordinate set to 1. Recreated here in
|
||||
extra steps */
|
||||
homogScale = ((lookAndProjMtx[0][3] * horizonPoint[0]) + (lookAndProjMtx[1][3] * horizonPoint[1]) +
|
||||
(lookAndProjMtx[2][3] * horizonPoint[2])) +
|
||||
lookAndProjMtx[3][3];
|
||||
mtxf_transform_vec3f_mat4(horizonPoint, lookAndProjMtx);
|
||||
|
||||
temp_f0 = (1.0 / sp58);
|
||||
homogFactor = (1.0 / homogScale);
|
||||
|
||||
sp5C[0] *= temp_f0;
|
||||
sp5C[1] *= temp_f0;
|
||||
horizonPoint[0] *= homogFactor;
|
||||
horizonPoint[1] *= homogFactor;
|
||||
|
||||
sp5C[0] *= 160.0f;
|
||||
sp5C[1] *= 120.0f;
|
||||
horizonPoint[0] *= 160.0f; // SCREEN_WIDTH / 2
|
||||
horizonPoint[1] *= 120.0f; // SCREEN_HEIGHT / 2
|
||||
|
||||
temp_t5 = 120 - (s16) sp5C[1];
|
||||
arg1->cameraHeight = temp_t5;
|
||||
vtx[1].v.ob[1] = temp_t5;
|
||||
vtx[2].v.ob[1] = temp_t5;
|
||||
vtx[4].v.ob[1] = temp_t5;
|
||||
vtx[7].v.ob[1] = temp_t5;
|
||||
horizonRow = 120 - (s16) horizonPoint[1];
|
||||
arg1->cameraHeight = horizonRow;
|
||||
|
||||
skybox[1].v.ob[1] = horizonRow;
|
||||
skybox[2].v.ob[1] = horizonRow;
|
||||
skybox[4].v.ob[1] = horizonRow;
|
||||
skybox[7].v.ob[1] = horizonRow;
|
||||
|
||||
// this section reders the skybox. Unclear if it does anything else
|
||||
init_rdp();
|
||||
gDPSetRenderMode(gDisplayListHead++, G_RM_OPA_SURF, G_RM_OPA_SURF2);
|
||||
gSPClearGeometryMode(gDisplayListHead++, G_ZBUFFER | G_LIGHTING);
|
||||
|
@ -509,10 +526,10 @@ void func_802A4A0C(Vtx* vtx, struct UnkStruct_800DC5EC* arg1, UNUSED s32 arg2, U
|
|||
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxScreen),
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
|
||||
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&D_0D008E98), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPVertex(gDisplayListHead++, &vtx[0], 4, 0);
|
||||
gSPVertex(gDisplayListHead++, &skybox[0], 4, 0);
|
||||
gSP2Triangles(gDisplayListHead++, 0, 3, 1, 0, 1, 3, 2, 0);
|
||||
if (gCurrentCourseId == COURSE_RAINBOW_ROAD) {
|
||||
gSPVertex(gDisplayListHead++, &vtx[4], 4, 0);
|
||||
gSPVertex(gDisplayListHead++, &skybox[4], 4, 0);
|
||||
gSP2Triangles(gDisplayListHead++, 0, 3, 1, 0, 1, 3, 2, 0);
|
||||
}
|
||||
}
|
||||
|
@ -604,7 +621,7 @@ void func_802A4EF4(void) {
|
|||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// player 2 vertical
|
||||
void func_802A5004(void) {
|
||||
|
||||
init_rdp();
|
||||
|
@ -616,13 +633,13 @@ void func_802A5004(void) {
|
|||
|
||||
func_802A39E0(D_800DC5F0);
|
||||
if (D_800DC5B4 != 0) {
|
||||
func_802A4A0C((Vtx*) D_802B8910, D_800DC5F0, SCREEN_WIDTH, SCREEN_HEIGHT, &gCameraZoom[1]);
|
||||
render_skybox((Vtx*) sSkyboxP2, D_800DC5F0, SCREEN_WIDTH, SCREEN_HEIGHT, &gCameraZoom[1]);
|
||||
func_80057FC4(2);
|
||||
func_802A487C((Vtx*) D_802B8910, D_800DC5F0, SCREEN_WIDTH, SCREEN_HEIGHT, &gCameraZoom[1]);
|
||||
func_802A487C((Vtx*) sSkyboxP2, D_800DC5F0, SCREEN_WIDTH, SCREEN_HEIGHT, &gCameraZoom[1]);
|
||||
func_80093A30(2);
|
||||
}
|
||||
}
|
||||
|
||||
// player 1 vertical
|
||||
void func_802A50EC(void) {
|
||||
|
||||
init_rdp();
|
||||
|
@ -633,13 +650,13 @@ void func_802A50EC(void) {
|
|||
|
||||
func_802A39E0(D_800DC5EC);
|
||||
if (D_800DC5B4 != 0) {
|
||||
func_802A4A0C((Vtx*) D_802B8890, D_800DC5EC, SCREEN_WIDTH, SCREEN_HEIGHT, &gCameraZoom[0]);
|
||||
render_skybox((Vtx*) sSkyboxP1, D_800DC5EC, SCREEN_WIDTH, SCREEN_HEIGHT, &gCameraZoom[0]);
|
||||
func_80057FC4(1);
|
||||
func_802A487C((Vtx*) D_802B8890, D_800DC5EC, SCREEN_WIDTH, SCREEN_HEIGHT, &gCameraZoom[0]);
|
||||
func_802A487C((Vtx*) sSkyboxP1, D_800DC5EC, SCREEN_WIDTH, SCREEN_HEIGHT, &gCameraZoom[0]);
|
||||
func_80093A30(1);
|
||||
}
|
||||
}
|
||||
|
||||
// player 1 horizontal
|
||||
void func_802A51D4(void) {
|
||||
|
||||
init_rdp();
|
||||
|
@ -650,13 +667,13 @@ void func_802A51D4(void) {
|
|||
gSPSetGeometryMode(gDisplayListHead++, G_SHADE | G_SHADING_SMOOTH | G_CLIPPING);
|
||||
|
||||
if (D_800DC5B4 != 0) {
|
||||
func_802A4A0C((Vtx*) D_802B8890, D_800DC5EC, SCREEN_WIDTH, SCREEN_HEIGHT, &gCameraZoom[0]);
|
||||
render_skybox((Vtx*) sSkyboxP1, D_800DC5EC, SCREEN_WIDTH, SCREEN_HEIGHT, &gCameraZoom[0]);
|
||||
func_80057FC4(3);
|
||||
func_802A487C((Vtx*) D_802B8890, D_800DC5EC, SCREEN_WIDTH, SCREEN_HEIGHT, &gCameraZoom[0]);
|
||||
func_802A487C((Vtx*) sSkyboxP1, D_800DC5EC, SCREEN_WIDTH, SCREEN_HEIGHT, &gCameraZoom[0]);
|
||||
func_80093A30(3);
|
||||
}
|
||||
}
|
||||
|
||||
// player 2 horizontal
|
||||
void func_802A52BC(void) {
|
||||
|
||||
init_rdp();
|
||||
|
@ -667,13 +684,13 @@ void func_802A52BC(void) {
|
|||
gSPSetGeometryMode(gDisplayListHead++, G_SHADE | G_SHADING_SMOOTH | G_CLIPPING);
|
||||
|
||||
if (D_800DC5B4 != 0) {
|
||||
func_802A4A0C((Vtx*) D_802B8910, D_800DC5F0, SCREEN_WIDTH, SCREEN_HEIGHT, &gCameraZoom[1]);
|
||||
render_skybox((Vtx*) sSkyboxP2, D_800DC5F0, SCREEN_WIDTH, SCREEN_HEIGHT, &gCameraZoom[1]);
|
||||
func_80057FC4(4);
|
||||
func_802A487C((Vtx*) D_802B8910, D_800DC5F0, SCREEN_WIDTH, SCREEN_HEIGHT, &gCameraZoom[1]);
|
||||
func_802A487C((Vtx*) sSkyboxP2, D_800DC5F0, SCREEN_WIDTH, SCREEN_HEIGHT, &gCameraZoom[1]);
|
||||
func_80093A30(4);
|
||||
}
|
||||
}
|
||||
|
||||
// player 1 solo
|
||||
void func_802A53A4(void) {
|
||||
|
||||
move_segment_table_to_dmem();
|
||||
|
@ -686,15 +703,15 @@ void func_802A53A4(void) {
|
|||
init_z_buffer();
|
||||
select_framebuffer();
|
||||
if (D_800DC5B4 != 0) {
|
||||
func_802A4A0C((Vtx*) D_802B8890, D_800DC5EC, 0x140, 0xF0, &gCameraZoom[0]);
|
||||
render_skybox((Vtx*) sSkyboxP1, D_800DC5EC, 0x140, 0xF0, &gCameraZoom[0]);
|
||||
if (gGamestate != CREDITS_SEQUENCE) {
|
||||
func_80057FC4(0);
|
||||
}
|
||||
func_802A487C((Vtx*) D_802B8890, D_800DC5EC, 0x140, 0xF0, &gCameraZoom[0]);
|
||||
func_802A487C((Vtx*) sSkyboxP1, D_800DC5EC, 0x140, 0xF0, &gCameraZoom[0]);
|
||||
func_80093A30(0);
|
||||
}
|
||||
}
|
||||
|
||||
// player 1 3p 4p
|
||||
void func_802A54A8(void) {
|
||||
|
||||
init_rdp();
|
||||
|
@ -705,13 +722,13 @@ void func_802A54A8(void) {
|
|||
gSPSetGeometryMode(gDisplayListHead++, G_SHADE | G_SHADING_SMOOTH | G_CLIPPING);
|
||||
|
||||
if (D_800DC5B4 != 0) {
|
||||
func_802A4A0C((Vtx*) D_802B8890, D_800DC5EC, 0x140, 0xF0, &gCameraZoom[0]);
|
||||
render_skybox((Vtx*) sSkyboxP1, D_800DC5EC, 0x140, 0xF0, &gCameraZoom[0]);
|
||||
func_80057FC4(8);
|
||||
func_802A487C((Vtx*) D_802B8890, D_800DC5EC, 0x140, 0xF0, &gCameraZoom[0]);
|
||||
func_802A487C((Vtx*) sSkyboxP1, D_800DC5EC, 0x140, 0xF0, &gCameraZoom[0]);
|
||||
func_80093A30(8);
|
||||
}
|
||||
}
|
||||
|
||||
// player 2 3p 4p
|
||||
void func_802A5590(void) {
|
||||
|
||||
init_rdp();
|
||||
|
@ -722,13 +739,13 @@ void func_802A5590(void) {
|
|||
gSPSetGeometryMode(gDisplayListHead++, G_SHADE | G_SHADING_SMOOTH | G_CLIPPING);
|
||||
|
||||
if (D_800DC5B4 != 0) {
|
||||
func_802A4A0C((Vtx*) D_802B8910, D_800DC5F0, SCREEN_WIDTH, SCREEN_HEIGHT, &gCameraZoom[1]);
|
||||
render_skybox((Vtx*) sSkyboxP2, D_800DC5F0, SCREEN_WIDTH, SCREEN_HEIGHT, &gCameraZoom[1]);
|
||||
func_80057FC4(9);
|
||||
func_802A487C((Vtx*) D_802B8910, D_800DC5F0, SCREEN_WIDTH, SCREEN_HEIGHT, &gCameraZoom[1]);
|
||||
func_802A487C((Vtx*) sSkyboxP2, D_800DC5F0, SCREEN_WIDTH, SCREEN_HEIGHT, &gCameraZoom[1]);
|
||||
func_80093A30(9);
|
||||
}
|
||||
}
|
||||
|
||||
// player 3 3p4p
|
||||
void func_802A5678(void) {
|
||||
|
||||
init_rdp();
|
||||
|
@ -739,13 +756,14 @@ void func_802A5678(void) {
|
|||
gSPSetGeometryMode(gDisplayListHead++, G_SHADE | G_SHADING_SMOOTH | G_CLIPPING);
|
||||
|
||||
if (D_800DC5B4 != 0) {
|
||||
func_802A4A0C((Vtx*) D_802B8990, D_800DC5F4, SCREEN_WIDTH, SCREEN_HEIGHT, &gCameraZoom[2]);
|
||||
render_skybox((Vtx*) sSkyboxP3, D_800DC5F4, SCREEN_WIDTH, SCREEN_HEIGHT, &gCameraZoom[2]);
|
||||
func_80057FC4(10);
|
||||
func_802A487C((Vtx*) D_802B8990, D_800DC5F4, SCREEN_WIDTH, SCREEN_HEIGHT, &gCameraZoom[2]);
|
||||
func_802A487C((Vtx*) sSkyboxP3, D_800DC5F4, SCREEN_WIDTH, SCREEN_HEIGHT, &gCameraZoom[2]);
|
||||
func_80093A30(10);
|
||||
}
|
||||
}
|
||||
|
||||
// player 4 3p 4p
|
||||
void func_802A5760(void) {
|
||||
|
||||
init_rdp();
|
||||
|
@ -774,9 +792,9 @@ void func_802A5760(void) {
|
|||
func_802A39E0(D_800DC5F8);
|
||||
|
||||
if (D_800DC5B4 != 0) {
|
||||
func_802A4A0C(D_802B8A10, D_800DC5F8, SCREEN_WIDTH, SCREEN_HEIGHT, &gCameraZoom[3]);
|
||||
render_skybox(sSkyboxP4, D_800DC5F8, SCREEN_WIDTH, SCREEN_HEIGHT, &gCameraZoom[3]);
|
||||
func_80057FC4(11);
|
||||
func_802A487C(D_802B8A10, D_800DC5F8, SCREEN_WIDTH, SCREEN_HEIGHT, &gCameraZoom[3]);
|
||||
func_802A487C(sSkyboxP4, D_800DC5F8, SCREEN_WIDTH, SCREEN_HEIGHT, &gCameraZoom[3]);
|
||||
func_80093A30(11);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
/* Function Prototypes */
|
||||
|
||||
void func_802A4A0C(Vtx*, struct UnkStruct_800DC5EC*, s32, s32, f32*);
|
||||
void render_skybox(Vtx*, struct UnkStruct_800DC5EC*, s32, s32, f32*);
|
||||
|
||||
void func_802A3730(struct UnkStruct_800DC5EC*);
|
||||
void func_802A38AC(void);
|
||||
|
|
|
@ -483,7 +483,7 @@ void render_players_on_screen_one(void) {
|
|||
|
||||
s32 junk[] = { 0, 0, 0 };
|
||||
|
||||
Vtx* D_800DDBB4[] = { D_800E49C0, D_800E4AC0, D_800E4BC0, D_800E4CC0, D_800E4DC0, D_800E4EC0, D_800E4FD0, D_800E50D0 };
|
||||
Vtx* gPlayerVtx[] = { gPlayerOneVtx, gPlayerTwoVtx, gPlayerThreeVtx, gPlayerFourVtx, gPlayerFiveVtx, gPlayerSixVtx, gPlayerSevenVtx, gPlayerEightVtx };
|
||||
|
||||
f32 gCharacterSize[] = { MARIO_SIZE, LUIGI_SIZE, YOSHI_SIZE, TOAD_SIZE, DK_SIZE, WARIO_SIZE, PEACH_SIZE, BOWSER_SIZE };
|
||||
|
||||
|
@ -1010,24 +1010,25 @@ void func_80022BC4(Player* player, UNUSED s8 playerIndex) {
|
|||
player->unk_DB4.unk2 = temp_v0;
|
||||
}
|
||||
|
||||
void func_80022CA8(Player* player, s8 playerId, UNUSED s8 screenId, s8 arg3) {
|
||||
// look like related to flatten animation
|
||||
void func_80022CA8(Player* player, s8 playerId, UNUSED s8 screenId, s8 flipOffset) {
|
||||
s16 temp_v0 = player->unk_DA4;
|
||||
|
||||
D_800DDBB4[playerId][arg3 + 0x0].v.ob[1] = 18 - (temp_v0 * 2.3);
|
||||
D_800DDBB4[playerId][arg3 + 0x1].v.ob[1] = 9 - temp_v0;
|
||||
D_800DDBB4[playerId][arg3 + 0x2].v.ob[1] = 9 - temp_v0;
|
||||
D_800DDBB4[playerId][arg3 + 0x3].v.ob[1] = 18 - (temp_v0 * 2.3);
|
||||
D_800DDBB4[playerId][arg3 + 0x4].v.ob[1] = 9 - temp_v0;
|
||||
D_800DDBB4[playerId][arg3 + 0x7].v.ob[1] = 9 - temp_v0;
|
||||
gPlayerVtx[playerId][flipOffset + 0x0].v.ob[1] = 18 - (temp_v0 * 2.3);
|
||||
gPlayerVtx[playerId][flipOffset + 0x1].v.ob[1] = 9 - temp_v0;
|
||||
gPlayerVtx[playerId][flipOffset + 0x2].v.ob[1] = 9 - temp_v0;
|
||||
gPlayerVtx[playerId][flipOffset + 0x3].v.ob[1] = 18 - (temp_v0 * 2.3);
|
||||
gPlayerVtx[playerId][flipOffset + 0x4].v.ob[1] = 9 - temp_v0;
|
||||
gPlayerVtx[playerId][flipOffset + 0x7].v.ob[1] = 9 - temp_v0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Seems to stretch/warp a specific players texture for a
|
||||
* short period of time. Perhaps does not do anything
|
||||
**/
|
||||
void func_80022D60(UNUSED Player* player, s8 playerId, UNUSED s8 screenId, s8 arg3) {
|
||||
D_800DDBB4[playerId][arg3].v.ob[1] = 21;
|
||||
D_800DDBB4[playerId][arg3 + 0x3].v.ob[1] = 21;
|
||||
void func_80022D60(UNUSED Player* player, s8 playerId, UNUSED s8 screenId, s8 flipOffset) {
|
||||
gPlayerVtx[playerId][flipOffset].v.ob[1] = 21;
|
||||
gPlayerVtx[playerId][flipOffset + 0x3].v.ob[1] = 21;
|
||||
}
|
||||
|
||||
void func_80022DB4(Player* player, UNUSED s8 playerIndex) {
|
||||
|
@ -1054,15 +1055,15 @@ void func_80022DB4(Player* player, UNUSED s8 playerIndex) {
|
|||
player->unk_DB4.unk18 = temp_v0;
|
||||
}
|
||||
|
||||
void func_80022E84(Player* player, s8 playerId, UNUSED s8 screenId, s8 arg3) {
|
||||
void func_80022E84(Player* player, s8 playerId, UNUSED s8 screenId, s8 flipOffset) {
|
||||
s16 temp_v0 = player->unk_DB4.unk1E;
|
||||
|
||||
D_800DDBB4[playerId][arg3 + 0x0].v.ob[1] = 18 - temp_v0;
|
||||
D_800DDBB4[playerId][arg3 + 0x1].v.ob[1] = 9 - temp_v0;
|
||||
D_800DDBB4[playerId][arg3 + 0x2].v.ob[1] = 9 - temp_v0;
|
||||
D_800DDBB4[playerId][arg3 + 0x3].v.ob[1] = 18 - temp_v0;
|
||||
D_800DDBB4[playerId][arg3 + 0x4].v.ob[1] = 9 - temp_v0;
|
||||
D_800DDBB4[playerId][arg3 + 0x7].v.ob[1] = 9 - temp_v0;
|
||||
gPlayerVtx[playerId][flipOffset + 0x0].v.ob[1] = 18 - temp_v0;
|
||||
gPlayerVtx[playerId][flipOffset + 0x1].v.ob[1] = 9 - temp_v0;
|
||||
gPlayerVtx[playerId][flipOffset + 0x2].v.ob[1] = 9 - temp_v0;
|
||||
gPlayerVtx[playerId][flipOffset + 0x3].v.ob[1] = 18 - temp_v0;
|
||||
gPlayerVtx[playerId][flipOffset + 0x4].v.ob[1] = 9 - temp_v0;
|
||||
gPlayerVtx[playerId][flipOffset + 0x7].v.ob[1] = 9 - temp_v0;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1411,7 +1412,7 @@ void render_player_shadow_credits(Player* player, s8 playerId, s8 arg2) {
|
|||
gSPTexture(gDisplayListHead++, 1, 1, 0, G_TX_RENDERTILE, G_OFF);
|
||||
}
|
||||
|
||||
void render_kart(Player* player, s8 playerId, s8 arg2, s8 arg3) {
|
||||
void render_kart(Player* player, s8 playerId, s8 arg2, s8 flipOffset) {
|
||||
UNUSED s32 pad;
|
||||
Mat4 sp1A4;
|
||||
UNUSED s32 pad2[17];
|
||||
|
@ -1528,19 +1529,19 @@ void render_kart(Player* player, s8 playerId, s8 arg2, s8 arg3) {
|
|||
gDPLoadTextureBlock(gDisplayListHead++, sKartUpperTexture, G_IM_FMT_CI, G_IM_SIZ_8b, 64, 32, 0,
|
||||
G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD,
|
||||
G_TX_NOLOD);
|
||||
gSPVertex(gDisplayListHead++, &D_800DDBB4[playerId][arg3], 4, 0);
|
||||
gSPVertex(gDisplayListHead++, &gPlayerVtx[playerId][flipOffset], 4, 0);
|
||||
gSPDisplayList(gDisplayListHead++, common_square_plain_render);
|
||||
|
||||
gDPLoadTextureBlock(gDisplayListHead++, sKartLowerTexture, G_IM_FMT_CI, G_IM_SIZ_8b, 64, 32, 0,
|
||||
G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD,
|
||||
G_TX_NOLOD);
|
||||
gSPVertex(gDisplayListHead++, &D_800DDBB4[playerId][arg3 + 4], 4, 0);
|
||||
gSPVertex(gDisplayListHead++, &gPlayerVtx[playerId][flipOffset + 4], 4, 0);
|
||||
gSPDisplayList(gDisplayListHead++, common_square_plain_render);
|
||||
gSPTexture(gDisplayListHead++, 1, 1, 0, G_TX_RENDERTILE, G_OFF);
|
||||
gDPSetAlphaCompare(gDisplayListHead++, G_AC_NONE);
|
||||
}
|
||||
|
||||
void render_ghost(Player* player, s8 playerId, s8 screenId, s8 arg3) {
|
||||
void render_ghost(Player* player, s8 playerId, s8 screenId, s8 flipOffset) {
|
||||
UNUSED s32 pad;
|
||||
Mat4 sp12C;
|
||||
UNUSED s32 pad2[17];
|
||||
|
@ -1605,19 +1606,19 @@ void render_ghost(Player* player, s8 playerId, s8 screenId, s8 arg3) {
|
|||
gDPLoadTextureBlock(gDisplayListHead++, sKartUpperTexture, G_IM_FMT_CI, G_IM_SIZ_8b, 64, 32, 0,
|
||||
G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD,
|
||||
G_TX_NOLOD);
|
||||
gSPVertex(gDisplayListHead++, &D_800DDBB4[playerId][arg3], 4, 0);
|
||||
gSPVertex(gDisplayListHead++, &gPlayerVtx[playerId][flipOffset], 4, 0);
|
||||
gSPDisplayList(gDisplayListHead++, common_square_plain_render);
|
||||
|
||||
gDPLoadTextureBlock(gDisplayListHead++, sKartLowerTexture, G_IM_FMT_CI, G_IM_SIZ_8b, 64, 32, 0,
|
||||
G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD,
|
||||
G_TX_NOLOD);
|
||||
gSPVertex(gDisplayListHead++, &D_800DDBB4[playerId][arg3 + 4], 4, 0);
|
||||
gSPVertex(gDisplayListHead++, &gPlayerVtx[playerId][flipOffset + 4], 4, 0);
|
||||
gSPDisplayList(gDisplayListHead++, common_square_plain_render);
|
||||
gSPTexture(gDisplayListHead++, 1, 1, 0, G_TX_RENDERTILE, G_OFF);
|
||||
gDPSetAlphaCompare(gDisplayListHead++, G_AC_NONE);
|
||||
}
|
||||
|
||||
void func_80025DE8(Player* player, s8 playerId, s8 screenId, s8 arg3) {
|
||||
void func_80025DE8(Player* player, s8 playerId, s8 screenId, s8 flipOffset) {
|
||||
Mat4 spA8;
|
||||
Vec3f sp9C;
|
||||
Vec3s sp94;
|
||||
|
@ -1649,19 +1650,19 @@ void func_80025DE8(Player* player, s8 playerId, s8 screenId, s8 arg3) {
|
|||
gDPLoadTextureBlock(gDisplayListHead++, sKartUpperTexture, G_IM_FMT_CI, G_IM_SIZ_8b, 64, 32, 0,
|
||||
G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD,
|
||||
G_TX_NOLOD);
|
||||
gSPVertex(gDisplayListHead++, &D_800DDBB4[playerId][arg3], 4, 0);
|
||||
gSPVertex(gDisplayListHead++, &gPlayerVtx[playerId][flipOffset], 4, 0);
|
||||
gSPDisplayList(gDisplayListHead++, common_square_plain_render);
|
||||
|
||||
gDPLoadTextureBlock(gDisplayListHead++, sKartLowerTexture, G_IM_FMT_CI, G_IM_SIZ_8b, 64, 32, 0,
|
||||
G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD,
|
||||
G_TX_NOLOD);
|
||||
gSPVertex(gDisplayListHead++, &D_800DDBB4[playerId][arg3 + 4], 4, 0);
|
||||
gSPVertex(gDisplayListHead++, &gPlayerVtx[playerId][flipOffset + 4], 4, 0);
|
||||
gSPDisplayList(gDisplayListHead++, common_square_plain_render);
|
||||
gSPTexture(gDisplayListHead++, 1, 1, 0, G_TX_RENDERTILE, G_OFF);
|
||||
gMatrixEffectCount += 1;
|
||||
}
|
||||
|
||||
void render_player_ice_reflection(Player* player, s8 playerId, s8 screenId, s8 arg3) {
|
||||
void render_player_ice_reflection(Player* player, s8 playerId, s8 screenId, s8 flipOffset) {
|
||||
Mat4 spA8;
|
||||
Vec3f sp9C;
|
||||
Vec3s sp94;
|
||||
|
@ -1673,9 +1674,9 @@ void render_player_ice_reflection(Player* player, s8 playerId, s8 screenId, s8 a
|
|||
sp9C[1] = player->unk_074 + (4.0f * player->size);
|
||||
sp9C[2] = player->pos[2];
|
||||
if (!(player->unk_002 & (4 << (screenId * 4)))) {
|
||||
arg3 = 8;
|
||||
flipOffset = 8;
|
||||
} else {
|
||||
arg3 = 0;
|
||||
flipOffset = 0;
|
||||
}
|
||||
|
||||
mtxf_translate_rotate(spA8, sp9C, sp94);
|
||||
|
@ -1693,12 +1694,12 @@ void render_player_ice_reflection(Player* player, s8 playerId, s8 screenId, s8 a
|
|||
gDPLoadTextureBlock(gDisplayListHead++, sKartUpperTexture, G_IM_FMT_CI, G_IM_SIZ_8b, 64, 32, 0,
|
||||
G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD,
|
||||
G_TX_NOLOD);
|
||||
gSPVertex(gDisplayListHead++, &D_800DDBB4[playerId][arg3], 4, 0);
|
||||
gSPVertex(gDisplayListHead++, &gPlayerVtx[playerId][flipOffset], 4, 0);
|
||||
gSPDisplayList(gDisplayListHead++, common_square_plain_render);
|
||||
gDPLoadTextureBlock(gDisplayListHead++, sKartLowerTexture, G_IM_FMT_CI, G_IM_SIZ_8b, 64, 32, 0,
|
||||
G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD,
|
||||
G_TX_NOLOD);
|
||||
gSPVertex(gDisplayListHead++, &D_800DDBB4[playerId][arg3 + 4], 4, 0);
|
||||
gSPVertex(gDisplayListHead++, &gPlayerVtx[playerId][flipOffset + 4], 4, 0);
|
||||
gSPDisplayList(gDisplayListHead++, common_square_plain_render);
|
||||
gSPTexture(gDisplayListHead++, 1, 1, 0, G_TX_RENDERTILE, G_OFF);
|
||||
gMatrixEffectCount += 1;
|
||||
|
@ -1707,16 +1708,16 @@ void render_player_ice_reflection(Player* player, s8 playerId, s8 screenId, s8 a
|
|||
void render_player(Player* player, s8 playerId, s8 screenId) {
|
||||
UNUSED s32 pad[2];
|
||||
s32 temp_t1;
|
||||
s32 var_v1;
|
||||
s32 flipOffset;
|
||||
OSMesg* sp34;
|
||||
|
||||
update_wheel_palette(player, playerId, screenId, D_801651D0[screenId][playerId]);
|
||||
if (!(player->unk_002 & (4 << (screenId * 4)))) {
|
||||
var_v1 = 0;
|
||||
flipOffset = 0;
|
||||
} else {
|
||||
var_v1 = 8;
|
||||
flipOffset = 8;
|
||||
}
|
||||
func_80023BF0(player, playerId, screenId, var_v1);
|
||||
func_80023BF0(player, playerId, screenId, flipOffset);
|
||||
temp_t1 = 8 << (screenId * 4);
|
||||
if ((temp_t1 == (player->unk_002 & temp_t1)) && (player->collision.surfaceDistance[2] <= 50.0f) &&
|
||||
(player->surfaceType != ICE)) {
|
||||
|
@ -1729,17 +1730,17 @@ void render_player(Player* player, s8 playerId, s8 screenId) {
|
|||
}
|
||||
}
|
||||
if ((player->type & PLAYER_INVISIBLE_OR_BOMB) != PLAYER_INVISIBLE_OR_BOMB) {
|
||||
render_kart(player, playerId, screenId, var_v1);
|
||||
render_kart(player, playerId, screenId, flipOffset);
|
||||
} else {
|
||||
render_ghost(player, playerId, screenId, var_v1);
|
||||
render_ghost(player, playerId, screenId, flipOffset);
|
||||
}
|
||||
osRecvMesg(&gDmaMesgQueue, (OSMesg*) &sp34, OS_MESG_BLOCK);
|
||||
if ((temp_t1 == (player->unk_002 & temp_t1)) && (player->surfaceType == ICE) && ((player->unk_0CA & 1) != 1) &&
|
||||
(player->collision.surfaceDistance[2] <= 30.0f)) {
|
||||
render_player_ice_reflection(player, playerId, screenId, var_v1);
|
||||
render_player_ice_reflection(player, playerId, screenId, flipOffset);
|
||||
}
|
||||
if (player->boostPower >= 2.0f) {
|
||||
func_80025DE8(player, playerId, screenId, var_v1);
|
||||
func_80025DE8(player, playerId, screenId, flipOffset);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -92,7 +92,7 @@ extern Gfx D_0D008D58[];
|
|||
|
||||
extern s32 gPlayersToRenderCount;
|
||||
extern void* D_800DDB5C[];
|
||||
extern Vtx* D_800DDBB4[];
|
||||
extern Vtx* gPlayerVtx[];
|
||||
extern f32 gCharacterSize[];
|
||||
extern s32 D_800DDE74[];
|
||||
extern Vtx D_800E51D0[];
|
||||
|
@ -102,14 +102,14 @@ extern f64 D_800ED688;
|
|||
extern f32 D_800ED6A8;
|
||||
|
||||
// There are actually found in data_0DD0A0_2_0.s
|
||||
extern Vtx D_800E49C0[];
|
||||
extern Vtx D_800E4AC0[];
|
||||
extern Vtx D_800E4BC0[];
|
||||
extern Vtx D_800E4CC0[];
|
||||
extern Vtx D_800E4DC0[];
|
||||
extern Vtx D_800E4EC0[];
|
||||
extern Vtx D_800E4FD0[];
|
||||
extern Vtx D_800E50D0[];
|
||||
extern Vtx gPlayerOneVtx[];
|
||||
extern Vtx gPlayerTwoVtx[];
|
||||
extern Vtx gPlayerThreeVtx[];
|
||||
extern Vtx gPlayerFourVtx[];
|
||||
extern Vtx gPlayerFiveVtx[];
|
||||
extern Vtx gPlayerSixVtx[];
|
||||
extern Vtx gPlayerSevenVtx[];
|
||||
extern Vtx gPlayerEightVtx[];
|
||||
|
||||
extern u8** gKartMarioWheels0[];
|
||||
extern u8** gKartMarioWheels1[];
|
||||
|
|
|
@ -6588,7 +6588,7 @@ void func_8008275C(s32 objectIndex) {
|
|||
gObjectList[objectIndex].offset[2] *= 2.0;
|
||||
object_calculate_new_pos_offset(objectIndex);
|
||||
gObjectList[objectIndex].direction_angle[1] =
|
||||
get_angle_between_points(gObjectList[objectIndex].unk_01C, gObjectList[objectIndex].pos);
|
||||
get_xz_angle_between_points(gObjectList[objectIndex].unk_01C, gObjectList[objectIndex].pos);
|
||||
break;
|
||||
}
|
||||
func_800873F4(objectIndex);
|
||||
|
@ -7691,7 +7691,7 @@ void update_chain_chomps(void) {
|
|||
func_800859C8(objectIndex, var_s4);
|
||||
vec3f_copy(object->unk_01C, object->offset);
|
||||
func_8000D940(object->offset, &object->unk_084[8], object->unk_034, object->surfaceHeight, 0);
|
||||
object->direction_angle[1] = get_angle_between_points(object->unk_01C, object->offset);
|
||||
object->direction_angle[1] = get_xz_angle_between_points(object->unk_01C, object->offset);
|
||||
object_calculate_new_pos_offset(objectIndex);
|
||||
func_80089CBC(objectIndex, 30.0f);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue