blob: 2be25cbb7ad2bddf7f77b35af8b10b79e23f0ce5 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
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;
}
|