diff options
author | aap <aap@papnet.eu> | 2019-06-19 23:41:43 +0200 |
---|---|---|
committer | aap <aap@papnet.eu> | 2019-06-20 00:12:12 +0200 |
commit | 2fcdf6fa21a173dcc033fd03b6d08b46b916c2e7 (patch) | |
tree | 1402bf32292b0ec260777d32f1f1069e41a37b67 /src/control/Transmission.cpp | |
parent | implemented CObjectData (diff) | |
download | re3-2fcdf6fa21a173dcc033fd03b6d08b46b916c2e7.tar re3-2fcdf6fa21a173dcc033fd03b6d08b46b916c2e7.tar.gz re3-2fcdf6fa21a173dcc033fd03b6d08b46b916c2e7.tar.bz2 re3-2fcdf6fa21a173dcc033fd03b6d08b46b916c2e7.tar.lz re3-2fcdf6fa21a173dcc033fd03b6d08b46b916c2e7.tar.xz re3-2fcdf6fa21a173dcc033fd03b6d08b46b916c2e7.tar.zst re3-2fcdf6fa21a173dcc033fd03b6d08b46b916c2e7.zip |
Diffstat (limited to 'src/control/Transmission.cpp')
-rw-r--r-- | src/control/Transmission.cpp | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/control/Transmission.cpp b/src/control/Transmission.cpp new file mode 100644 index 00000000..2be25cbb --- /dev/null +++ b/src/control/Transmission.cpp @@ -0,0 +1,37 @@ +#include "common.h" +#include "patcher.h" +#include "Transmission.h" + +void +cTransmission::InitGearRatios(void) +{ + static tGear *pGearRatio0 = nil; + static tGear *pGearRatio1 = nil; + int i; + float velocityDiff; + + memset(Gears, 0, sizeof(Gears)); + + for(i = 1; i <= nNumberOfGears; i++){ + pGearRatio0 = &Gears[i-1]; + pGearRatio1 = &Gears[i]; + + pGearRatio1->fMaxVelocity = (float)i / nNumberOfGears * fMaxVelocity; + + velocityDiff = pGearRatio1->fMaxVelocity - pGearRatio0->fMaxVelocity; + + if(i >= nNumberOfGears){ + pGearRatio1->fShiftUpVelocity = fMaxVelocity; + }else{ + Gears[i+1].fShiftDownVelocity = velocityDiff*0.42f + pGearRatio0->fMaxVelocity; + pGearRatio1->fShiftUpVelocity = velocityDiff*0.6667f + pGearRatio0->fMaxVelocity; + } + } + + // Reverse gear + Gears[0].fMaxVelocity = fMaxReverseVelocity; + Gears[0].fShiftUpVelocity = -0.01f; + Gears[0].fShiftDownVelocity = fMaxReverseVelocity; + + Gears[1].fShiftDownVelocity = -0.01f; +} |