nightmare

This commit is contained in:
Sonic Dreamcaster
2025-05-17 19:07:19 -03:00
parent fc55c69dc5
commit 773480aa89
6 changed files with 89 additions and 89 deletions
+1 -1
View File
@@ -318,7 +318,7 @@ void func_800C19D0(u8 arg0, u8 arg1, u8 arg2) {
sp3C = (func_800C1480(arg0, arg1) * *temp_s0->unk14) * D_80192C48[arg0].current;
sp3B = func_800C15D0(arg0, arg1, arg2);
sp34 = func_800C1934(arg0, arg1) * *temp_s0->unk10;
sp33 = func_800C16E8(*temp_s0->unk00.x, *temp_s0->unk08, temp_s0->cameraId);
sp33 = func_800C16E8(*temp_s0->unk00->x, *temp_s0->unk08, temp_s0->cameraId);
break;
}
temp_s0_2 = &D_8018EF18[arg2];
+11 -11
View File
@@ -19,21 +19,21 @@ UNUSED void func_8003DC50(Player* player, Vec3f arg1) {
// Praise Fake Match!!
if (player) {};
if (player->unk_230 <= player->unk_23C) {
if (player->collision.unk48[1] >= 0.1736) {
arg1[0] = (player->unk_206 / 182) * 0x78;
arg1[2] = -(player->slopeAccel / 182) * 0x78;
if (player->collision.unk48.y >= 0.1736) {
arg1.x = (player->unk_206 / 182) * 0x78;
arg1.z = -(player->slopeAccel / 182) * 0x78;
} else {
arg1[0] = thing1;
arg1[2] = thing2;
arg1.x = thing1;
arg1.z = thing2;
}
} else if (player->collision.unk48[1] >= 0.1736) {
arg1[0] = (player->unk_206 / 182) * 0x78;
arg1[2] = -(player->slopeAccel / 182) * 0x78;
} else if (player->collision.unk48.y >= 0.1736) {
arg1.x = (player->unk_206 / 182) * 0x78;
arg1.z = -(player->slopeAccel / 182) * 0x78;
} else {
arg1[0] = thing1;
arg1[2] = thing2;
arg1.x = thing1;
arg1.z = thing2;
}
arg1[1] = 0.0f;
arg1.y = 0.0f;
mtxf_translate_vec3f_mat3(arg1, player->orientationMatrix);
}
+13 -13
View File
@@ -113,8 +113,8 @@ s32 func_800871AC(s32 objectIndex, s32 arg1) {
}
UNUSED void func_80087258(s32 objectIndex, UNUSED s32 arg1, f32 arg2) {
gObjectList[objectIndex].offset[1] += arg2;
gObjectList[objectIndex].offset[2] -= arg2;
gObjectList[objectIndex].offset.y += arg2;
gObjectList[objectIndex].offset.z -= arg2;
}
UNUSED s32 get_angle_between_player_object(s32 objectIndex, Player* player) {
@@ -187,33 +187,33 @@ void func_80087620(s32 objectIndex) {
}
void func_800876A0(s32 objectIndex) {
gObjectList[objectIndex].offset[0] +=
gObjectList[objectIndex].offset.x +=
gObjectList[objectIndex].unk_034 * sins(gObjectList[objectIndex].direction_angle[1]);
gObjectList[objectIndex].offset[2] +=
gObjectList[objectIndex].offset.z +=
gObjectList[objectIndex].unk_034 * coss(gObjectList[objectIndex].direction_angle[1]);
}
void object_add_velocity_offset_xyz(s32 objectIndex) {
gObjectList[objectIndex].offset[0] += gObjectList[objectIndex].velocity.x;
gObjectList[objectIndex].offset[1] += gObjectList[objectIndex].velocity.y;
gObjectList[objectIndex].offset[2] += gObjectList[objectIndex].velocity.z;
gObjectList[objectIndex].offset.x += gObjectList[objectIndex].velocity.x;
gObjectList[objectIndex].offset.y += gObjectList[objectIndex].velocity.y;
gObjectList[objectIndex].offset.z += gObjectList[objectIndex].velocity.z;
}
void object_add_velocity_offset_xz(s32 objectIndex) {
gObjectList[objectIndex].offset[0] += gObjectList[objectIndex].velocity.x;
gObjectList[objectIndex].offset[2] += gObjectList[objectIndex].velocity.z;
gObjectList[objectIndex].offset.x += gObjectList[objectIndex].velocity.x;
gObjectList[objectIndex].offset.z += gObjectList[objectIndex].velocity.z;
}
UNUSED void object_add_velocity_offset_x(s32 objectIndex) {
gObjectList[objectIndex].offset[0] += gObjectList[objectIndex].velocity.x;
gObjectList[objectIndex].offset.x += gObjectList[objectIndex].velocity.x;
}
void object_add_velocity_offset_y(s32 objectIndex) {
gObjectList[objectIndex].offset[1] += gObjectList[objectIndex].velocity.y;
gObjectList[objectIndex].offset.y += gObjectList[objectIndex].velocity.y;
}
UNUSED void object_add_velocity_offset_z(s32 objectIndex) {
gObjectList[objectIndex].offset[2] += gObjectList[objectIndex].velocity.z;
gObjectList[objectIndex].offset.z += gObjectList[objectIndex].velocity.z;
}
void func_8008781C(s32 arg0) {
@@ -280,7 +280,7 @@ bool func_80087A0C(s32 objectIndex, s16 arg1, s16 arg2, s16 arg3, s16 arg4) {
temp_v0 = arg2 - arg1;
temp_a0 = arg4 - arg3;
dist = sqrtf((temp_v0 * temp_v0) + (temp_a0 * temp_a0));
gObjectList[objectIndex].origin_pos[1] = 0.0f;
gObjectList[objectIndex].origin_pos.y = 0.0f;
gObjectList[objectIndex].direction_angle[1] = atan2s(temp_v0, temp_a0);
func_8008751C(objectIndex);
gObjectList[objectIndex].unk_0B0 = dist / gObjectList[objectIndex].unk_034;
+3 -3
View File
@@ -227,9 +227,9 @@ UNUSED void add_translate_mat4_vec3f_lite(Mat4 mat, Mat4 dest, Vec3f pos) {
void mtxf_translate(Mat4 dest, Vec3f b) {
FrameInterpolation_RecordMatrixTranslate(dest, b);
mtxf_identity(dest);
dest[3][0] = b[0];
dest[3][1] = b[1];
dest[3][2] = b[2];
dest[3][0] = b.x;
dest[3][1] = b.y;
dest[3][2] = b.z;
}
// Note the use of `2` which generates diff asm than just using floats (2.0f).
+6 -6
View File
@@ -1211,12 +1211,12 @@ void func_80022BC4(Player* player, UNUSED s8 arg1) {
void func_80022CA8(Player* player, s8 playerId, UNUSED s8 screenId, s8 arg3) {
s16 temp_v0 = player->unk_DA4;
D_800DDBB4[playerId][arg3 + 0x0].v.ob.y = 18 - (temp_v0 * 2.3);
D_800DDBB4[playerId][arg3 + 0x1].v.ob.y = 9 - temp_v0;
D_800DDBB4[playerId][arg3 + 0x2].v.ob.y = 9 - temp_v0;
D_800DDBB4[playerId][arg3 + 0x3].v.ob.y = 18 - (temp_v0 * 2.3);
D_800DDBB4[playerId][arg3 + 0x4].v.ob.y = 9 - temp_v0;
D_800DDBB4[playerId][arg3 + 0x7].v.ob.y = 9 - temp_v0;
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;
}
/**
+55 -55
View File
@@ -136,21 +136,21 @@ void spawn_player(Player* player, s8 playerIndex, f32 startingRow, f32 startingC
ret = spawn_actor_on_surface(startingRow, arg4 + 50.0f, startingColumn) + player->boundingBoxSize;
player->pos.z = startingColumn;
player->pos.y = ret;
player->oldPos[0] = startingRow;
player->oldPos[1] = ret;
player->oldPos.x = startingRow;
player->oldPos.y = ret;
D_80164510[playerIndex] = ret;
player->rotation[0] = 0;
player->oldPos[2] = startingColumn;
player->rotation.x = 0;
player->oldPos.z = startingColumn;
player->unk_05C = 1.0f;
player->unk_058 = 0.0f;
player->unk_060 = 0.0f;
player->velocity.x = 0.0f;
player->velocity.y = 0.0f;
player->velocity.z = 0.0f;
player->rotation[1] = arg5;
player->rotation[2] = 0;
player->rotation.y = arg5;
player->rotation.z = 0;
player->unk_0FA = 0;
player->unk_002 = 0;
@@ -227,9 +227,9 @@ void spawn_player(Player* player, s8 playerIndex, f32 startingRow, f32 startingC
player->size = 1.0f;
player->unk_DAC = 1.0f;
player->unk_064[0] = 0.0f;
player->unk_064[1] = 0.0f;
player->unk_064[2] = 0.0f;
player->unk_064.x = 0.0f;
player->unk_064.y = 0.0f;
player->unk_064.z = 0.0f;
player->boostPower = 0.0f;
player->unk_D9C = 0.0f;
player->unk_DA0 = 0.0f;
@@ -300,9 +300,9 @@ void spawn_player(Player* player, s8 playerIndex, f32 startingRow, f32 startingC
D_801652E0[playerIndex] = 0;
D_801652C0[playerIndex] = 0;
D_80165020[playerIndex] = 0;
D_80165070[playerIndex][0] = 0.0f;
D_80165070[playerIndex][1] = 0.0f;
D_80165070[playerIndex][2] = 0.0f;
D_80165070[playerIndex].x = 0.0f;
D_80165070[playerIndex].y = 0.0f;
D_80165070[playerIndex].z = 0.0f;
D_80165280[playerIndex] = 0.0f;
D_801652A0[playerIndex] = 0.0f;
gPlayerIsThrottleActive[playerIndex] = 0;
@@ -359,22 +359,22 @@ void spawn_player(Player* player, s8 playerIndex, f32 startingRow, f32 startingC
player->tyres[BACK_LEFT].baseHeight = 0.0f;
player->tyres[BACK_RIGHT].baseHeight = 0.0f;
player->collision.surfaceDistance[0] = 0.0f;
player->collision.surfaceDistance[1] = 0.0f;
player->collision.surfaceDistance[2] = 0.0f;
player->collision.unk48[0] = 0.0f;
player->collision.unk48[1] = 0.0f;
player->collision.unk48[2] = 0.0f;
player->collision.unk54[0] = 0.0f;
player->collision.unk54[1] = 0.0f;
player->collision.unk54[2] = 0.0f;
player->collision.orientationVector[0] = 0.0f;
player->collision.orientationVector[1] = 0.0f;
player->collision.orientationVector[2] = 0.0f;
player->collision.surfaceDistance.x = 0.0f;
player->collision.surfaceDistance.y = 0.0f;
player->collision.surfaceDistance.z = 0.0f;
player->collision.unk48.x = 0.0f;
player->collision.unk48.y = 0.0f;
player->collision.unk48.z = 0.0f;
player->collision.unk54.x = 0.0f;
player->collision.unk54.y = 0.0f;
player->collision.unk54.z = 0.0f;
player->collision.orientationVector.x = 0.0f;
player->collision.orientationVector.y = 0.0f;
player->collision.orientationVector.z = 0.0f;
D_80165300[playerIndex] = 0;
D_8018CE10[playerIndex].unk_04[0] = 0.0f;
D_8018CE10[playerIndex].unk_04[2] = 0.0f;
D_8018CE10[playerIndex].unk_04.x = 0.0f;
D_8018CE10[playerIndex].unk_04.z = 0.0f;
func_80295BF8(playerIndex);
func_8005D6C0(player);
func_8006B87C(player, playerIndex);
@@ -382,9 +382,9 @@ void spawn_player(Player* player, s8 playerIndex, f32 startingRow, f32 startingC
func_8006B7E4(player, playerIndex);
}
calculate_orientation_matrix(player->unk_150, player->unk_058, player->unk_05C, player->unk_060,
player->rotation[1]);
player->rotation.y);
calculate_orientation_matrix(player->orientationMatrix, player->unk_058, player->unk_05C, player->unk_060,
player->rotation[1]);
player->rotation.y);
}
void func_80039AE4(void) {
@@ -1200,19 +1200,19 @@ void func_8003D080(void) {
switch (gModeSelection) {
case GRAND_PRIX:
if (GetCourse() == GetToadsTurnpike()) {
camera_init(0.0f, player->pos.y, D_80165230[7], player->rotation[1], 8, 0);
camera_init(0.0f, player->pos.y, D_80165230[7], player->rotation.y, 8, 0);
} else {
camera_init((D_80165210[7] + D_80165210[6]) / 2, player->pos.y, D_80165230[7],
player->rotation[1], 8, 0);
player->rotation.y, 8, 0);
}
break;
case TIME_TRIALS:
camera_init(player->pos.x, player->pos.y, player->pos.z, player->rotation[1], 1, 0);
camera_init(player->pos.x, player->pos.y, player->pos.z, player->rotation.y, 1, 0);
break;
default:
camera_init(player->pos.x, player->pos.y, player->pos.z, player->rotation[1], 10, 0);
camera_init(player->pos.x, player->pos.y, player->pos.z, player->rotation.y, 10, 0);
break;
}
break;
@@ -1221,45 +1221,45 @@ void func_8003D080(void) {
case SCREEN_MODE_2P_SPLITSCREEN_VERTICAL:
switch (gModeSelection) {
case GRAND_PRIX:
camera_init(player->pos.x, player->pos.y, player->pos.z, player->rotation[1], 1, 0);
camera_init(player->pos.x, player->pos.y, player->pos.z, player->rotation.y, 1, 0);
player++;
camera_init(player->pos.x, player->pos.y, player->pos.z, player->rotation[1], 1, 1);
camera_init(player->pos.x, player->pos.y, player->pos.z, player->rotation.y, 1, 1);
break;
case BATTLE:
camera_init(player->pos.x, player->pos.y, player->pos.z, player->rotation[1], 9, 0);
camera_init(player->pos.x, player->pos.y, player->pos.z, player->rotation.y, 9, 0);
player++;
camera_init(player->pos.x, player->pos.y, player->pos.z, player->rotation[1], 9, 1);
camera_init(player->pos.x, player->pos.y, player->pos.z, player->rotation.y, 9, 1);
break;
default:
camera_init(player->pos.x, player->pos.y, player->pos.z, player->rotation[1], 1, 0);
camera_init(player->pos.x, player->pos.y, player->pos.z, player->rotation.y, 1, 0);
player++;
camera_init(player->pos.x, player->pos.y, player->pos.z, player->rotation[1], 1, 1);
camera_init(player->pos.x, player->pos.y, player->pos.z, player->rotation.y, 1, 1);
break;
}
break;
case SCREEN_MODE_3P_4P_SPLITSCREEN:
if (gModeSelection == BATTLE) {
camera_init(player->pos.x, player->pos.y, player->pos.z, player->rotation[1], 9, 0);
camera_init(player->pos.x, player->pos.y, player->pos.z, player->rotation.y, 9, 0);
player++;
camera_init(player->pos.x, player->pos.y, player->pos.z, player->rotation[1], 9, 1);
camera_init(player->pos.x, player->pos.y, player->pos.z, player->rotation.y, 9, 1);
player++;
camera_init(player->pos.x, player->pos.y, player->pos.z, player->rotation[1], 9, 2);
camera_init(player->pos.x, player->pos.y, player->pos.z, player->rotation.y, 9, 2);
if (gPlayerCountSelection1 == 4) {
player++;
camera_init(player->pos.x, player->pos.y, player->pos.z, player->rotation[1], 9, 3);
camera_init(player->pos.x, player->pos.y, player->pos.z, player->rotation.y, 9, 3);
}
} else {
camera_init(player->pos.x, player->pos.y, player->pos.z, player->rotation[1], 1, 0);
camera_init(player->pos.x, player->pos.y, player->pos.z, player->rotation.y, 1, 0);
player++;
camera_init(player->pos.x, player->pos.y, player->pos.z, player->rotation[1], 1, 1);
camera_init(player->pos.x, player->pos.y, player->pos.z, player->rotation.y, 1, 1);
player++;
camera_init(player->pos.x, player->pos.y, player->pos.z, player->rotation[1], 1, 2);
camera_init(player->pos.x, player->pos.y, player->pos.z, player->rotation.y, 1, 2);
if (gPlayerCountSelection1 == 4) {
player++;
camera_init(player->pos.x, player->pos.y, player->pos.z, player->rotation[1], 1, 3);
camera_init(player->pos.x, player->pos.y, player->pos.z, player->rotation.y, 1, 3);
}
}
break;
@@ -1267,24 +1267,24 @@ void func_8003D080(void) {
} else {
switch (gActiveScreenMode) {
case SCREEN_MODE_1P:
camera_init(player->pos.x, player->pos.y, player->pos.z, player->rotation[1], 3, 0);
camera_init(player->pos.x, player->pos.y, player->pos.z, player->rotation.y, 3, 0);
break;
case SCREEN_MODE_2P_SPLITSCREEN_HORIZONTAL:
case SCREEN_MODE_2P_SPLITSCREEN_VERTICAL:
camera_init(player->pos.x, player->pos.y, player->pos.z, player->rotation[1], 3, 0);
camera_init(player->pos.x, player->pos.y, player->pos.z, player->rotation.y, 3, 0);
player++;
camera_init(player->pos.x, player->pos.y, player->pos.z, player->rotation[1], 3, 1);
camera_init(player->pos.x, player->pos.y, player->pos.z, player->rotation.y, 3, 1);
break;
case SCREEN_MODE_3P_4P_SPLITSCREEN:
camera_init(player->pos.x, player->pos.y, player->pos.z, player->rotation[1], 3, 0);
camera_init(player->pos.x, player->pos.y, player->pos.z, player->rotation.y, 3, 0);
player++;
camera_init(player->pos.x, player->pos.y, player->pos.z, player->rotation[1], 3, 1);
camera_init(player->pos.x, player->pos.y, player->pos.z, player->rotation.y, 3, 1);
player++;
camera_init(player->pos.x, player->pos.y, player->pos.z, player->rotation[1], 3, 2);
camera_init(player->pos.x, player->pos.y, player->pos.z, player->rotation.y, 3, 2);
player++;
camera_init(player->pos.x, player->pos.y, player->pos.z, player->rotation[1], 3, 3);
camera_init(player->pos.x, player->pos.y, player->pos.z, player->rotation.y, 3, 3);
break;
}
}
@@ -1346,8 +1346,8 @@ void func_8003DB5C(void) {
Player* player = gPlayerOne;
s32 playerId;
camera_init(player->pos.x, player->pos.y, player->pos.z, player->rotation[1], 3, 0);
camera_init(player->pos.x, player->pos.y, player->pos.z, player->rotation[1], 3, 1);
camera_init(player->pos.x, player->pos.y, player->pos.z, player->rotation.y, 3, 0);
camera_init(player->pos.x, player->pos.y, player->pos.z, player->rotation.y, 3, 1);
for (playerId = 0; playerId < NUM_PLAYERS; playerId++, player++) {
load_kart_palette(player, playerId, 1, 0);