summaryrefslogtreecommitdiffstats
path: root/src/control/Transmission.cpp
diff options
context:
space:
mode:
authoraap <aap@papnet.eu>2019-06-19 23:41:43 +0200
committeraap <aap@papnet.eu>2019-06-20 00:12:12 +0200
commit2fcdf6fa21a173dcc033fd03b6d08b46b916c2e7 (patch)
tree1402bf32292b0ec260777d32f1f1069e41a37b67 /src/control/Transmission.cpp
parentimplemented CObjectData (diff)
downloadre3-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.cpp37
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;
+}