SW: Get PLAYER_TURN_SCALE to be just right.

- Original value was 12 and was far, far too high following the Q16.16 implementation.
- Value of 3 is too fast.
- Value of 2 is too slow.
- Value of 2.4 (12 / 5) feels just right.
This commit is contained in:
Mitchell Richters 2020-04-01 07:33:06 +11:00 committed by Christoph Oelckers
parent 2852536dbf
commit 4630c8a0b7

View file

@ -98,7 +98,7 @@ SWBOOL NightVision = FALSE;
extern SWBOOL FinishedLevel; extern SWBOOL FinishedLevel;
//#define PLAYER_TURN_SCALE (8) //#define PLAYER_TURN_SCALE (8)
#define PLAYER_TURN_SCALE (2) #define PLAYER_TURN_SCALE 2.4f
// the smaller the number the slower the going // the smaller the number the slower the going
#define PLAYER_RUN_FRICTION (50000L) #define PLAYER_RUN_FRICTION (50000L)
@ -1595,7 +1595,7 @@ DoPlayerTurn(PLAYERp pp)
return; return;
} }
angvel = fix16_smul(pp->input.q16avel, fix16_from_int(PLAYER_TURN_SCALE)); angvel = fix16_smul(pp->input.q16avel, fix16_from_float(PLAYER_TURN_SCALE));
if (angvel != 0) if (angvel != 0)
{ {
@ -1637,7 +1637,7 @@ DoPlayerTurnBoat(PLAYERp pp)
} }
else else
{ {
angvel = fix16_smul(pp->input.q16avel, fix16_from_int(PLAYER_TURN_SCALE)); angvel = fix16_smul(pp->input.q16avel, fix16_from_float(PLAYER_TURN_SCALE));
angvel = fix16_sadd(angvel, fix16_ssub(angvel, fix16_sdiv(angvel, fix16_from_int(4)))); angvel = fix16_sadd(angvel, fix16_ssub(angvel, fix16_sdiv(angvel, fix16_from_int(4))));
angvel = fix16_sdiv(fix16_smul(angvel, fix16_from_int(synctics)), fix16_from_int(32)); angvel = fix16_sdiv(fix16_smul(angvel, fix16_from_int(synctics)), fix16_from_int(32));
} }