From d67f04e6c6fa6b84fc8a6e0f4c0a0b386d165161 Mon Sep 17 00:00:00 2001 From: Dethrace Engineering Department <78985374+dethrace-labs@users.noreply.github.com> Date: Wed, 17 Jan 2024 07:20:16 +1300 Subject: [PATCH] Fixes #357 (#358) * fixes #357 --- src/DETHRACE/common/crush.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/DETHRACE/common/crush.c b/src/DETHRACE/common/crush.c index 0af465bf..56e0710a 100644 --- a/src/DETHRACE/common/crush.c +++ b/src/DETHRACE/common/crush.c @@ -29,7 +29,9 @@ float gWobble_spam_y[8] = { 0.0f, -0.15f, 0.4f, 0.15f, -0.4f, 0.25f, 0.0f, -0.25 float gWobble_spam_z[8] = { 0.4f, -0.25f, 0.0f, 0.25f, 0.0f, 0.15f, -0.4f, -0.15f }; br_scalar gWheel_circ_to_width = 0.16f; tU8 gSmoke_damage_step[12] = { 20u, 20u, 0u, 10u, 10u, 10u, 10u, 10u, 10u, 10u, 10u, 10u }; -int gSteal_ranks[5] = { 0, 89, 72, 55, 38 }; +int gSteal_ranks[5] = { 89, 72, 55, 38, 21 }; + +#define BIGAPC_OPPONENT_INDEX 4 // IDA: int __usercall ReadCrushData@(FILE *pF@, tCrush_data *pCrush_data@) int ReadCrushData(FILE* pF, tCrush_data* pCrush_data) { @@ -484,7 +486,7 @@ void TotallyRepairACar(tCar_spec* pCar) { the_car_actor->undamaged_vertices, the_car_actor->actor->model->nvertices * sizeof(br_vertex)); // FIXME: BrModelUpdate(..., BR_MODU_VERTEX_COLOURS | BR_MODU_VERTEX_POSITIONS) fails on TELL_ME_IF_WE_PASS_THIS_WAY -// BrModelUpdate(the_car_actor->actor->model, BR_MODU_VERTEX_COLOURS | BR_MODU_VERTEX_POSITIONS); + // BrModelUpdate(the_car_actor->actor->model, BR_MODU_VERTEX_COLOURS | BR_MODU_VERTEX_POSITIONS); BrModelUpdate(the_car_actor->actor->model, BR_MODU_ALL); if (pipe_vertex_count != 0 && IsActionReplayAvailable()) { PipeSingleModelGeometry(pCar->car_ID, j, pipe_vertex_count, pipe_array); @@ -1158,7 +1160,9 @@ int DoCrashEarnings(tCar_spec* pCar1, tCar_spec* pCar2) { credits = 100 * (int)(credits_squared / 100.0); AwardTime(gWasted_time[gProgram_state.skill_level]); EarnCredits(credits); - if (victim->can_be_stolen && !gOpponents[victim->index].dead && ((PercentageChance(50) && gSteal_ranks[gOpponents[victim->index].strength_rating] >= gProgram_state.rank) || victim->index == 4)) { + if (victim->can_be_stolen && !gOpponents[victim->index].dead + // strength_rating is between 1 and 5 + && ((PercentageChance(50) && gProgram_state.rank <= gSteal_ranks[gOpponents[victim->index].strength_rating - 1]) || victim->index == BIGAPC_OPPONENT_INDEX)) { StealCar(victim); } }