From de154693c9b8a9b5f4ccbcc177144888b289ff5f Mon Sep 17 00:00:00 2001 From: Dethrace Engineering Department <78985374+dethrace-labs@users.noreply.github.com> Date: Sun, 11 Sep 2022 16:12:41 +1200 Subject: [PATCH] implements processfrozen (#154) --- src/DETHRACE/common/opponent.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/DETHRACE/common/opponent.c b/src/DETHRACE/common/opponent.c index e7681065..1f69520e 100644 --- a/src/DETHRACE/common/opponent.c +++ b/src/DETHRACE/common/opponent.c @@ -1256,7 +1256,22 @@ void ProcessGetNearPlayer(tOpponent_spec* pOpponent_spec, tProcess_objective_com // IDA: void __usercall ProcessFrozen(tOpponent_spec *pOpponent_spec@, tProcess_objective_command pCommand@) void ProcessFrozen(tOpponent_spec* pOpponent_spec, tProcess_objective_command pCommand) { LOG_TRACE("(%p, %d)", pOpponent_spec, pCommand); - NOT_IMPLEMENTED(); + + switch (pCommand) { + case ePOC_start: + dr_dprintf("%d ProcessFrozen() - new task started", pOpponent_spec->index); + dr_dprintf("%s: Rematerialising from ePOC_start in ProcessFrozen()...", pOpponent_spec->car_spec->driver_name); + RematerialiseOpponentOnNearestSection(pOpponent_spec, 0.f); + pOpponent_spec->car_spec->acc_force = 0.f; + pOpponent_spec->car_spec->brake_force = 15.f * pOpponent_spec->car_spec->M; + break; + case ePOC_run: + pOpponent_spec->car_spec->brake_force = 15.f * pOpponent_spec->car_spec->M; + break; + case ePOC_die: + pOpponent_spec->car_spec->brake_force = 0.f; + break; + } } // IDA: int __usercall HeadOnWithPlayerPossible@(tOpponent_spec *pOpponent_spec@) @@ -2316,6 +2331,7 @@ void SetInitialCopPositions() { LOG_TRACE("()"); for (i = 0; i < GetCarCount(eVehicle_rozzer); i++) { + PossibleService(); BrVector3Copy(&gProgram_state.AI_vehicles.cops[i].car_spec->car_master_actor->t.t.translate.t, &gProgram_state.AI_vehicles.cop_start_points[i]); PointActorAlongThisBloodyVector(gProgram_state.AI_vehicles.cops[i].car_spec->car_master_actor, &gProgram_state.AI_vehicles.cop_start_vectors[i]); gProgram_state.AI_vehicles.cops[i].physics_me = 0;