Spin car when steering
This commit is contained in:
parent
def8fa3c27
commit
ff3830cb02
2 changed files with 7 additions and 10 deletions
2
TODO.txt
2
TODO.txt
|
@ -45,7 +45,7 @@
|
||||||
=========== BUGS =================
|
=========== BUGS =================
|
||||||
|
|
||||||
- the pinch collision test seems to sometimes stop the car e.g. after falling
|
- the pinch collision test seems to sometimes stop the car e.g. after falling
|
||||||
from bigger height or when running into ramp at high speed - FIX
|
from bigger height or when running into ramp at high speed (or not?) - FIX
|
||||||
|
|
||||||
=========== HANDLED ==============
|
=========== HANDLED ==============
|
||||||
|
|
||||||
|
|
15
racing.h
15
racing.h
|
@ -1344,18 +1344,15 @@ uint32_t LCR_racingStep(unsigned int input)
|
||||||
LCR_racing.carDrifting = 0;
|
LCR_racing.carDrifting = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* The following fixes "sticking to a wall" issue by adding a small spin
|
|
||||||
to the car when trying to steer at very small velocity. */
|
|
||||||
if (steering &&
|
if (steering &&
|
||||||
(input & (LCR_RACING_INPUT_FORW | LCR_RACING_INPUT_BACK)) &&
|
(input & (LCR_RACING_INPUT_FORW | LCR_RACING_INPUT_BACK)) &&
|
||||||
(LCR_racing.wheelCollisions & 0x0f) &&
|
(LCR_racing.wheelCollisions & 0x0f))
|
||||||
LCR_racingGetCarSpeedUnsigned() < (LCR_GAME_UNIT / 25))
|
|
||||||
{
|
{
|
||||||
LCR_LOG2("spinning car a bit");
|
/* When steering, also slightly spin the car. This helps fix the car
|
||||||
|
getting "stuck" by its side to a wall when too close, becoming unable
|
||||||
TPE_bodySpin(&LCR_racing.carBody,TPE_vec3(0,
|
to unstick itself. */
|
||||||
steering == ((input & LCR_RACING_INPUT_LEFT) != 0) ?
|
TPE_bodySpin(&LCR_racing.carBody,_LCR_TPE_vec3DividePlain(carUp,
|
||||||
TPE_F / 32 : -1 * TPE_F / 32,0));
|
steering == ((input & LCR_RACING_INPUT_LEFT) != 0) ? 128 : -128));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue