mirror of
https://github.com/izzy2lost/Diddy-Kong-Racing.git
synced 2026-06-19 01:16:26 -07:00
match: update_camera_plane & func_8004CC20 (#622)
* match: update_camera_plane * refac: use 1/180.0 instead * match: func_8004CC20 * document: re-add function comment
This commit is contained in:
@@ -5,11 +5,11 @@ This repo contains a work-in-progress decompilation of Diddy Kong Racing for the
|
||||
All versions are supported, and the US 1.0 version (SHA1 = 0cb115d8716dbbc2922fda38e533b9fe63bb9670) of the game is the default if not specified.
|
||||
|
||||
<!-- README_SCORE_SUMMARY_BEGIN -->
|
||||
As of June 11, 2025, this is our current score:
|
||||
As of June 12, 2025, this is our current score:
|
||||
|
||||
    Decomp progress: 90.87%
|
||||
    Decomp progress: 91.17%
|
||||
|
||||
    Documentation progress: 59.40%
|
||||
    Documentation progress: 59.08%
|
||||
<!-- README_SCORE_SUMMARY_END -->
|
||||
|
||||
---
|
||||
@@ -117,30 +117,30 @@ s32 is_drumstick_unlocked(void) {
|
||||
```
|
||||
|
||||
<!-- README_SCORE_BEGIN -->
|
||||
As of June 11, 2025, this is our current score:
|
||||
As of June 12, 2025, this is our current score:
|
||||
```
|
||||
====================================================================
|
||||
=====================================================================
|
||||
ADVENTURE ONE (ASM -> C Decompilation)
|
||||
-------------- 90.87% Complete (91.65% NON_MATCHING) ---------------
|
||||
# Decompiled functions: 1913
|
||||
# GLOBAL_ASM remaining: 37
|
||||
# NON_MATCHING functions: 4
|
||||
# NON_EQUIVALENT WIP functions: 30
|
||||
--------------------------- Game Status ----------------------------
|
||||
Balloons: 42/47, Keys: 4/4, Trophies: 4/5
|
||||
--------------- 91.17% Complete (91.94% NON_MATCHING) ---------------
|
||||
# Decompiled functions: 1914
|
||||
# GLOBAL_ASM remaining: 30
|
||||
# NON_MATCHING functions: 4
|
||||
# NON_EQUIVALENT WIP functions: 26
|
||||
---------------------------- Game Status ----------------------------
|
||||
Balloons: 43/47, Keys: 4/4, Trophies: 4/5
|
||||
T.T. Amulets: 4/4, Wizpig Amulets: 4/4
|
||||
--------------------------------------------------------------------
|
||||
We are racing in Star City. (Lap 3/3)
|
||||
====================================================================
|
||||
ADVENTURE TWO (Cleanup & Documentation)
|
||||
------------------------- 59.40% Complete --------------------------
|
||||
# Documented functions: 1208
|
||||
# Undocumented remaining: 445
|
||||
--------------------------- Game Status ----------------------------
|
||||
Balloons: 29/47, Keys: 3/4, Trophies: 2/5
|
||||
---------------------------------------------------------------------
|
||||
We are collecting silver coins in Spacedust Alley. (1/8 silver coins)
|
||||
=====================================================================
|
||||
ADVENTURE TWO (Cleanup & Documentation)
|
||||
-------------------------- 59.08% Complete --------------------------
|
||||
# Documented functions: 1207
|
||||
# Undocumented remaining: 440
|
||||
---------------------------- Game Status ----------------------------
|
||||
Balloons: 28/47, Keys: 3/4, Trophies: 2/5
|
||||
T.T. Amulets: 3/4, Wizpig Amulets: 2/4
|
||||
--------------------------------------------------------------------
|
||||
We are collecting silver coins in Treasure Caves. (1/8 silver coins)
|
||||
====================================================================
|
||||
---------------------------------------------------------------------
|
||||
We are collecting silver coins in Pirate Lagoon. (8/8 silver coins)
|
||||
=====================================================================
|
||||
```
|
||||
<!-- README_SCORE_END -->
|
||||
|
||||
+95
-117
@@ -3476,35 +3476,32 @@ void racer_attack_handler_plane(Object *obj, Object_Racer *racer) {
|
||||
}
|
||||
}
|
||||
|
||||
// https://decomp.me/scratch/CQwF9
|
||||
#ifdef NON_EQUIVALENT
|
||||
void update_camera_plane(f32 updateRate, Object *obj, Object_Racer *racer) {
|
||||
s32 segmentIndex;
|
||||
f32 baseSpeed;
|
||||
f32 tempVel;
|
||||
s32 pad_sp44;
|
||||
f32 yOffset;
|
||||
f32 yVel;
|
||||
s32 angle;
|
||||
f32 temp_f16;
|
||||
f32 baseFloat1 = 120.0f;
|
||||
f32 pad_sp3C;
|
||||
s32 angleVel;
|
||||
f32 baseFloat2 = 120.0f;
|
||||
f32 baseFloat1 = 45.0f;
|
||||
s32 angle;
|
||||
f32 xOffset;
|
||||
f32 zOffset;
|
||||
f32 baseFloat2 = 45.0f;
|
||||
f32 phi_f14;
|
||||
f32 var_f16;
|
||||
f32 var_f14;
|
||||
f32 brakeVar = 0.0f;
|
||||
s32 numViewports;
|
||||
f32 baseFloat3;
|
||||
s32 delta;
|
||||
|
||||
delta = (s32) updateRate;
|
||||
temp_f16 = gCurrentCourseHeight;
|
||||
temp_f16 = 200.0f - (obj->segment.trans.y_position + (-temp_f16));
|
||||
if (temp_f16 < 0.0f) {
|
||||
temp_f16 = 0.0f;
|
||||
var_f16 = gCurrentCourseHeight - obj->segment.trans.y_position;
|
||||
var_f16 = 200.0f - (var_f16);
|
||||
if (var_f16 < 0.0f) {
|
||||
var_f16 = 0.0f;
|
||||
}
|
||||
if (temp_f16 > 200.0f) {
|
||||
temp_f16 = 200.0f;
|
||||
if (var_f16 > 200.0f) {
|
||||
var_f16 = 200.0f;
|
||||
}
|
||||
numViewports = cam_get_viewport_layout();
|
||||
if (numViewports == 1) {
|
||||
@@ -3523,7 +3520,7 @@ void update_camera_plane(f32 updateRate, Object *obj, Object_Racer *racer) {
|
||||
angle += 0xFFFF;
|
||||
}
|
||||
if (racer->camera_zoom < 0.4) {
|
||||
racer->camera_zoom += 0.005;
|
||||
racer->camera_zoom += 1 / 180.0;
|
||||
} else {
|
||||
racer->camera_zoom = 0.4f;
|
||||
}
|
||||
@@ -3559,18 +3556,18 @@ void update_camera_plane(f32 updateRate, Object *obj, Object_Racer *racer) {
|
||||
angle = -0x3000;
|
||||
}
|
||||
}
|
||||
angle = -(angle - ((s32) (temp_f16 * 10.0f)));
|
||||
angle = angle - ((u16) gCameraObject->trans.rotation.x_rotation);
|
||||
if (angle > 0x8000) {
|
||||
angle -= 0xFFFF;
|
||||
angle = -(angle - ((s32) (var_f16 * 10.0f)));
|
||||
angleVel = angle - ((u16) gCameraObject->trans.rotation.x_rotation);
|
||||
if (angleVel > 0x8000) {
|
||||
angleVel -= 0xFFFF;
|
||||
}
|
||||
if (angle < -0x8000) {
|
||||
angle += 0xFFFF;
|
||||
if (angleVel < -0x8000) {
|
||||
angleVel += 0xFFFF;
|
||||
}
|
||||
gCameraObject->trans.rotation.x_rotation += ((angle * delta) >> 4);
|
||||
gCameraObject->trans.rotation.x_rotation += ((angleVel * delta) >> 4);
|
||||
brakeVar = racer->brake;
|
||||
baseSpeed = racer->forwardVel;
|
||||
switch (gCameraObject->mode) {
|
||||
switch (gCameraObject->zoom) {
|
||||
case 1:
|
||||
baseFloat2 += 35.0f;
|
||||
break;
|
||||
@@ -3586,49 +3583,40 @@ void update_camera_plane(f32 updateRate, Object *obj, Object_Racer *racer) {
|
||||
break;
|
||||
}
|
||||
if (numViewports < 2) {
|
||||
phi_f14 = baseSpeed * 60.0f;
|
||||
phi_f14 = baseFloat2 + phi_f14;
|
||||
baseFloat2 += baseSpeed * 60.0f;
|
||||
} else {
|
||||
phi_f14 = baseSpeed * 30.0f;
|
||||
phi_f14 = baseFloat2 + phi_f14;
|
||||
baseFloat2 += baseSpeed * 30.0f;
|
||||
}
|
||||
if (racer->velocity < 0.0 && !racer->groundedWheels) {
|
||||
tempVel = -(racer->velocity * brakeVar);
|
||||
tempVel = tempVel * 6.0f;
|
||||
if (65.0 < tempVel) {
|
||||
tempVel = 65.0f;
|
||||
var_f16 = -(racer->velocity * brakeVar) * 6.0f;
|
||||
if (65.0 < var_f16) {
|
||||
var_f16 = 65.0f;
|
||||
}
|
||||
if (yOffset) {
|
||||
;
|
||||
}
|
||||
phi_f14 -= tempVel;
|
||||
baseFloat2 -= var_f16;
|
||||
}
|
||||
if (!gRaceStartTimer) {
|
||||
if (normalise_time(36) < racer->boostTimer) {
|
||||
phi_f14 = -30.0f;
|
||||
baseFloat2 = -30.0f;
|
||||
} else if (racer->boostTimer > 0) {
|
||||
phi_f14 = 180.0f;
|
||||
baseFloat2 = 180.0f;
|
||||
}
|
||||
}
|
||||
if (gRaceStartTimer > 80) {
|
||||
gCameraObject->boomLength = phi_f14;
|
||||
gCameraObject->boomLength = baseFloat2;
|
||||
gCameraObject->cam_unk_20 = baseFloat1;
|
||||
}
|
||||
gCameraObject->boomLength += (phi_f14 - gCameraObject->boomLength) * 0.125;
|
||||
gCameraObject->boomLength += (baseFloat2 - gCameraObject->boomLength) * 0.125;
|
||||
gCameraObject->cam_unk_20 += (baseFloat1 - gCameraObject->cam_unk_20) * 0.125;
|
||||
phi_f14 = sins_f(gCameraObject->trans.rotation.x_rotation - 0x400);
|
||||
var_f14 = sins_f(gCameraObject->trans.rotation.x_rotation - 0x400);
|
||||
xOffset = coss_f(gCameraObject->trans.rotation.x_rotation - 0x400);
|
||||
baseFloat3 = phi_f14;
|
||||
baseFloat2 = (gCameraObject->boomLength * baseFloat3) - (gCameraObject->cam_unk_20 * xOffset);
|
||||
baseFloat1 = ((gCameraObject->boomLength) * (gCameraObject->boomLength));
|
||||
baseFloat1 += (gCameraObject->cam_unk_20 * baseFloat3);
|
||||
xOffset = sins_f(0x8000 - racer->cameraYaw) * baseFloat2;
|
||||
zOffset = coss_f(0x8000 - racer->cameraYaw) * baseFloat2;
|
||||
yVel = sins_f(racer->cameraYaw + 0x4000) * 3.0f;
|
||||
yVel = yVel * racer->lateral_velocity;
|
||||
gCameraObject->trans.x_position = (obj->segment.trans.x_position + xOffset) + yVel;
|
||||
temp_f16 = obj->segment.trans.y_position;
|
||||
yOffset = gCameraObject->trans.y_position - (temp_f16 + baseFloat1);
|
||||
var_f16 = (gCameraObject->boomLength * xOffset) - (gCameraObject->cam_unk_20 * var_f14);
|
||||
baseFloat1 = ((gCameraObject->boomLength) * var_f14) + (gCameraObject->cam_unk_20 * xOffset);
|
||||
xOffset = sins_f(0x8000 - racer->cameraYaw) * var_f16;
|
||||
zOffset = coss_f(0x8000 - racer->cameraYaw) * var_f16;
|
||||
var_f16 = sins_f(racer->cameraYaw + 0x4000) * 3.0f * racer->lateral_velocity;
|
||||
gCameraObject->trans.x_position = (obj->segment.trans.x_position + xOffset) + var_f16;
|
||||
yOffset = gCameraObject->trans.y_position - (obj->segment.trans.y_position + baseFloat1);
|
||||
var_f16 = yOffset;
|
||||
if (racer->trickType == 1 || racer->trickType == -1) {
|
||||
racer->unk74 = 8.0;
|
||||
}
|
||||
@@ -3640,76 +3628,69 @@ void update_camera_plane(f32 updateRate, Object *obj, Object_Racer *racer) {
|
||||
} else {
|
||||
racer->unk74 = 2.0;
|
||||
}
|
||||
yVel = racer->unk74;
|
||||
yVel = (yOffset * updateRate) / yVel;
|
||||
if (yVel > 0.0f && yOffset < yVel) {
|
||||
yVel = yOffset;
|
||||
yOffset = (yOffset * updateRate) / racer->unk74;
|
||||
if (yOffset > 0.0f && var_f16 < yOffset) {
|
||||
yOffset = var_f16;
|
||||
}
|
||||
if (yVel < 0.0f && yVel < yOffset) {
|
||||
yVel = yOffset;
|
||||
if (yOffset < 0.0f && yOffset < var_f16) {
|
||||
yOffset = var_f16;
|
||||
}
|
||||
gCameraObject->trans.y_position -= yVel;
|
||||
gCameraObject->trans.z_position =
|
||||
zOffset + obj->segment.trans.z_position + (-coss_f(racer->cameraYaw + 0x4000) * 3.0f * racer->lateral_velocity);
|
||||
gCameraObject->trans.y_position -= yOffset;
|
||||
var_f16 = (-coss_f(racer->cameraYaw + 0x4000) * 3.0f * racer->lateral_velocity);
|
||||
gCameraObject->trans.z_position = zOffset + obj->segment.trans.z_position + var_f16;
|
||||
gCameraObject->trans.rotation.y_rotation = racer->cameraYaw;
|
||||
if (racer->trickType || gDialogueCameraAngle) {
|
||||
angle = -(u16) gCameraObject->trans.rotation.z_rotation;
|
||||
if (angle > 0x8000) {
|
||||
angle -= 0xFFFF;
|
||||
angleVel = -(u16) gCameraObject->trans.rotation.z_rotation;
|
||||
if (angleVel > 0x8000) {
|
||||
angleVel -= 0xFFFF;
|
||||
}
|
||||
if (angle < -0x8000) {
|
||||
angle += 0xFFFF;
|
||||
if (angleVel < -0x8000) {
|
||||
angleVel += 0xFFFF;
|
||||
}
|
||||
gCameraObject->trans.rotation.z_rotation += angle >> 2;
|
||||
gCameraObject->trans.rotation.z_rotation += angleVel >> 2;
|
||||
} else {
|
||||
angle = (u16) gCameraObject->trans.rotation.z_rotation;
|
||||
angle = angle + (-(racer->x_rotation_vel >> 4));
|
||||
if (angle > 0x8000) {
|
||||
angle -= 0xFFFF;
|
||||
angle = racer->x_rotation_vel;
|
||||
angleVel = (angle >> 4) - (u16) gCameraObject->trans.rotation.z_rotation;
|
||||
if (angleVel > 0x8000) {
|
||||
angleVel -= 0xFFFF;
|
||||
}
|
||||
if (angle < -0x8000) {
|
||||
angle += 0xFFFF;
|
||||
if (angleVel < -0x8000) {
|
||||
angleVel += 0xFFFF;
|
||||
}
|
||||
gCameraObject->trans.rotation.z_rotation += angle >> 3;
|
||||
gCameraObject->trans.rotation.z_rotation += angleVel >> 3;
|
||||
}
|
||||
tempVel = gCameraObject->trans.x_position;
|
||||
segmentIndex = get_level_segment_index_from_position(tempVel, gCameraObject->trans.y_position,
|
||||
gCameraObject->trans.z_position);
|
||||
segmentIndex = get_level_segment_index_from_position(
|
||||
gCameraObject->trans.x_position, gCameraObject->trans.y_position, gCameraObject->trans.z_position);
|
||||
if (segmentIndex != -1) {
|
||||
gCameraObject->cameraSegmentID = segmentIndex;
|
||||
}
|
||||
racer->cameraYaw = gCameraObject->trans.rotation.y_rotation;
|
||||
}
|
||||
#else
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/racer/update_camera_plane.s")
|
||||
#endif
|
||||
|
||||
// https://decomp.me/scratch/nVftv
|
||||
#ifdef NON_EQUIVALENT
|
||||
// Handles loop de loops
|
||||
void func_8004CC20(s32 updateRate, f32 updateRateF, Object *racerObj, Object_Racer *racer) {
|
||||
s32 animFrame;
|
||||
s32 moveObjResult;
|
||||
f32 curYPos;
|
||||
Object *new_var;
|
||||
Object *obj;
|
||||
s32 i;
|
||||
Object **nodes;
|
||||
s32 var_a2;
|
||||
s32 var_v0;
|
||||
f32 prevXPos;
|
||||
f32 prevYPos;
|
||||
f32 prevZPos;
|
||||
s32 steerAngle; // sp90
|
||||
f32 xDiff;
|
||||
f32 zDiff;
|
||||
f32 yDiff;
|
||||
s32 var_v0;
|
||||
s32 var_v1;
|
||||
f32 temp;
|
||||
f32 temp2;
|
||||
f32 temp3;
|
||||
s32 steerAngle;
|
||||
f32 temp4;
|
||||
MtxF mtx; // sp48
|
||||
f32 var_f0;
|
||||
f32 mtx[4][4];
|
||||
Object *obj;
|
||||
f32 var_f2;
|
||||
s8 objectMoved;
|
||||
|
||||
@@ -3775,7 +3756,8 @@ void func_8004CC20(s32 updateRate, f32 updateRateF, Object *racerObj, Object_Rac
|
||||
handle_car_velocity_control(racer);
|
||||
func_80053750(racerObj, racer, updateRateF);
|
||||
racerObj->segment.object.animationID = 0;
|
||||
animFrame = racer->steerAngle >> 1;
|
||||
animFrame = racer->steerAngle;
|
||||
animFrame = animFrame >> 1;
|
||||
animFrame = 40 - animFrame;
|
||||
if (animFrame < 0) {
|
||||
animFrame = 0;
|
||||
@@ -3795,34 +3777,33 @@ void func_8004CC20(s32 updateRate, f32 updateRateF, Object *racerObj, Object_Rac
|
||||
zDiff = obj->segment.trans.z_position - racerObj->segment.trans.z_position;
|
||||
if (sqrtf((xDiff * xDiff) + (yDiff * yDiff) + (zDiff * zDiff)) < 200.0) {
|
||||
nodes = obj->unk64->ai_node.nodeObj;
|
||||
for (var_v0 = 0; var_v0 < ARRAY_COUNT(obj->unk64->ai_node.nodeObj); var_v0++) {
|
||||
if (nodes[var_v0] != NULL && racer->challengeMarker != nodes[var_v0]) {
|
||||
for (i = 0; i < 4; i++) {
|
||||
if (nodes[i] != NULL && racer->challengeMarker != nodes[i]) {
|
||||
racer->challengeMarker = obj;
|
||||
racer->nodeCurrent = nodes[var_v0];
|
||||
var_v0 = ARRAY_COUNT(obj->unk64->ai_node.nodeObj);
|
||||
racer->nodeCurrent = nodes[i];
|
||||
i = 4;
|
||||
}
|
||||
}
|
||||
if (var_v0 != (ARRAY_COUNT(obj->unk64->ai_node.nodeObj) + 1)) {
|
||||
if (i != 5) {
|
||||
racer->nodeCurrent = NULL;
|
||||
}
|
||||
} else {
|
||||
temp = -((racer->ox3 * racerObj->segment.trans.x_position) +
|
||||
(racer->oz3 * racerObj->segment.trans.z_position));
|
||||
steerAngle =
|
||||
((racer->ox3 * obj->segment.trans.x_position) + (racer->oz3 * obj->segment.trans.z_position)) +
|
||||
temp;
|
||||
zDiff = racer->oz3;
|
||||
temp4 =
|
||||
-((racer->ox3 * racerObj->segment.trans.x_position) + (zDiff * racerObj->segment.trans.z_position));
|
||||
var_f0 = (obj->segment.trans.x_position * racer->ox3) + (obj->segment.trans.z_position * zDiff) + temp4;
|
||||
steerAngle = var_f0;
|
||||
steerAngle /= 5;
|
||||
}
|
||||
}
|
||||
}
|
||||
racer->attackType = ATTACK_NONE;
|
||||
racer->spinout_timer = 0;
|
||||
var_f0 = racer->velocity;
|
||||
var_f0 = (steerAngle * var_f0) / 360;
|
||||
racerObj->segment.x_velocity -= racer->ox3 * var_f0;
|
||||
racerObj->segment.y_velocity -= racer->oy3 * var_f0;
|
||||
racerObj->segment.z_velocity -= racer->oz3 * var_f0;
|
||||
var_f0 = (steerAngle * racer->velocity) / 360;
|
||||
var_f2 = 1.0f;
|
||||
racerObj->segment.x_velocity -= (racer->ox3 * var_f0);
|
||||
racerObj->segment.y_velocity -= (racer->oy3 * var_f0);
|
||||
racerObj->segment.z_velocity -= (racer->oz3 * var_f0);
|
||||
if (gCurrentPlayerIndex == PLAYER_COMPUTER) {
|
||||
var_f2 = 1.3f;
|
||||
}
|
||||
@@ -3832,7 +3813,7 @@ void func_8004CC20(s32 updateRate, f32 updateRateF, Object *racerObj, Object_Rac
|
||||
racerObj->segment.trans.rotation.x_rotation = 0;
|
||||
racer->trickType = 0;
|
||||
if (racer->playerIndex >= 0) {
|
||||
objectMoved = 1;
|
||||
objectMoved = TRUE;
|
||||
}
|
||||
}
|
||||
if (racer->groundedWheels == 0) {
|
||||
@@ -3853,7 +3834,7 @@ void func_8004CC20(s32 updateRate, f32 updateRateF, Object *racerObj, Object_Rac
|
||||
if (var_v0 < -0x8000) {
|
||||
var_v0 += 0xFFFF;
|
||||
}
|
||||
if (var_v0 > 0x1000 || var_v0 < -0x1000) {
|
||||
if ((var_v0 > 0x1000) || (var_v0 < -0x1000)) {
|
||||
var_f2 = 0.0f;
|
||||
}
|
||||
racer->steerVisualRotation += (var_v0 >> 3);
|
||||
@@ -3895,10 +3876,11 @@ void func_8004CC20(s32 updateRate, f32 updateRateF, Object *racerObj, Object_Rac
|
||||
racer->z_rotation_vel += ((D_8011D558 - racer->z_rotation_vel) >> 3);
|
||||
racerObj->segment.trans.rotation.z_rotation = racer->x_rotation_vel + racer->z_rotation_vel;
|
||||
temp2 = racerObj->segment.x_velocity;
|
||||
temp3 = racerObj->segment.z_velocity;
|
||||
racer->unk1D2 = 0;
|
||||
moveObjResult = move_object(racerObj, temp2 * updateRateF, racerObj->segment.y_velocity * updateRateF,
|
||||
racerObj->segment.z_velocity * updateRateF);
|
||||
if (moveObjResult && gCurrentPlayerIndex != PLAYER_COMPUTER) {
|
||||
moveObjResult =
|
||||
move_object(racerObj, temp2 * updateRateF, racerObj->segment.y_velocity * updateRateF, temp3 * updateRateF);
|
||||
if ((moveObjResult) && (gCurrentPlayerIndex != -1)) {
|
||||
objectMoved = TRUE;
|
||||
}
|
||||
if (gCurrentPlayerIndex == PLAYER_COMPUTER) {
|
||||
@@ -3906,16 +3888,15 @@ void func_8004CC20(s32 updateRate, f32 updateRateF, Object *racerObj, Object_Rac
|
||||
} else {
|
||||
func_80054FD0(racerObj, racer, updateRate);
|
||||
}
|
||||
// Not sure what to do here.
|
||||
var_f0 = (racerObj->segment.trans.x_position - prevXPos) * (1 / updateRateF);
|
||||
temp = (racerObj->segment.trans.y_position - prevYPos) * (1 / updateRateF);
|
||||
racerObj->segment.y_velocity = (racerObj->segment.trans.y_position - prevYPos) * (1 / updateRateF);
|
||||
temp3 = (racerObj->segment.trans.z_position - prevZPos) * (1 / updateRateF);
|
||||
racerObj->segment.z_velocity = temp3;
|
||||
racerObj->segment.x_velocity = var_f0;
|
||||
racerObj->segment.y_velocity = temp;
|
||||
var_f0 = (racerObj->segment.trans.z_position - prevZPos) * (1 / updateRateF);
|
||||
racerObj->segment.z_velocity = var_f0;
|
||||
gCurrentRacerTransform.rotation.y_rotation = -racerObj->segment.trans.rotation.y_rotation;
|
||||
gCurrentRacerTransform.rotation.x_rotation = -racerObj->segment.trans.rotation.x_rotation;
|
||||
gCurrentRacerTransform.rotation.z_rotation = 0;
|
||||
gCurrentRacerTransform.scale = 1.0f;
|
||||
gCurrentRacerTransform.x_position = 0.0f;
|
||||
gCurrentRacerTransform.y_position = 0.0f;
|
||||
gCurrentRacerTransform.z_position = 0.0f;
|
||||
@@ -3935,9 +3916,6 @@ void func_8004CC20(s32 updateRate, f32 updateRateF, Object *racerObj, Object_Rac
|
||||
func_800230D0(racerObj, racer);
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/racer/func_8004CC20.s")
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Handles the camera movement when the player is on a loop-the-loop.
|
||||
|
||||
@@ -148,16 +148,6 @@ class ScoreFile:
|
||||
for nonMatching in self.nonMatchings:
|
||||
self.nonMatchingsSizes += MAP_FILE.functionSizes[nonMatching]
|
||||
self.numNonMatchings = len(self.nonMatchings)
|
||||
<<<<<<< HEAD
|
||||
|
||||
self.nonEquivalents = re.findall(NON_EQUVIALENT_REGEX, self.text)
|
||||
self.nonEquivalentsSizes = 0
|
||||
for nonEquivalent in self.nonEquivalents:
|
||||
if (nonEquivalent not in NOT_FUNCTION_NAMES):
|
||||
self.nonEquivalentsSizes += MAP_FILE.functionSizes[nonEquivalent]
|
||||
self.numNonEquivalents = len(self.nonEquivalents)
|
||||
|
||||
=======
|
||||
all_nonEquivalents = re.findall(NON_EQUVIALENT_REGEX, self.text)
|
||||
# Filter out the ones that are in NOT_FUNCTION_NAMES
|
||||
self.nonEquivalents = [ne for ne in all_nonEquivalents if ne not in NOT_FUNCTION_NAMES]
|
||||
@@ -166,7 +156,6 @@ class ScoreFile:
|
||||
for nonEquivalent in self.nonEquivalents:
|
||||
self.nonEquivalentsSizes += MAP_FILE.functionSizes[nonEquivalent]
|
||||
self.numNonEquivalents = len(self.nonEquivalents)
|
||||
>>>>>>> master
|
||||
self.text = re.sub(WIP_REGEX, r"GLOBAL_ASM(\1)", self.text)
|
||||
|
||||
def get_matches(self):
|
||||
|
||||
Reference in New Issue
Block a user