git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@2142 30fe4595-0a0c-4342-8851-515496e4dcbd Former-commit-id: c25a10652cf1c06c6e8de7d758e81102c9c1d7fd Former-commit-id: 8f8df279a6fd1ae83251f526bbabd4a14cf1529f
This commit is contained in:
parent
c78af87bc2
commit
a5120109ff
1 changed files with 19 additions and 2 deletions
|
@ -987,6 +987,8 @@ getAutoClutch(int idx, int gear, int newgear, tCarElt *car)
|
||||||
static void
|
static void
|
||||||
drive_mt(const int index, tCarElt* car, tSituation *s)
|
drive_mt(const int index, tCarElt* car, tSituation *s)
|
||||||
{
|
{
|
||||||
|
int i;
|
||||||
|
|
||||||
const int idx = index - 1;
|
const int idx = index - 1;
|
||||||
const tControlCmd *cmd = HCtx[idx]->CmdControl;
|
const tControlCmd *cmd = HCtx[idx]->CmdControl;
|
||||||
|
|
||||||
|
@ -996,14 +998,17 @@ drive_mt(const int index, tCarElt* car, tSituation *s)
|
||||||
/* manual shift sequential */
|
/* manual shift sequential */
|
||||||
if (HCtx[idx]->Transmission == eTransSeq)
|
if (HCtx[idx]->Transmission == eTransSeq)
|
||||||
{
|
{
|
||||||
|
/* Up shifting command */
|
||||||
if ((cmd[CMD_UP_SHFT].type == GFCTRL_TYPE_JOY_BUT && joyInfo->edgeup[cmd[CMD_UP_SHFT].val])
|
if ((cmd[CMD_UP_SHFT].type == GFCTRL_TYPE_JOY_BUT && joyInfo->edgeup[cmd[CMD_UP_SHFT].val])
|
||||||
|| (cmd[CMD_UP_SHFT].type == GFCTRL_TYPE_MOUSE_BUT && mouseInfo->edgeup[cmd[CMD_UP_SHFT].val])
|
|| (cmd[CMD_UP_SHFT].type == GFCTRL_TYPE_MOUSE_BUT && mouseInfo->edgeup[cmd[CMD_UP_SHFT].val])
|
||||||
|| (cmd[CMD_UP_SHFT].type == GFCTRL_TYPE_KEYBOARD && keyInfo[cmd[CMD_UP_SHFT].val].edgeUp)
|
|| (cmd[CMD_UP_SHFT].type == GFCTRL_TYPE_KEYBOARD && keyInfo[cmd[CMD_UP_SHFT].val].edgeUp)
|
||||||
|| (cmd[CMD_UP_SHFT].type == GFCTRL_TYPE_SKEYBOARD && skeyInfo[cmd[CMD_UP_SHFT].val].edgeUp))
|
|| (cmd[CMD_UP_SHFT].type == GFCTRL_TYPE_SKEYBOARD && skeyInfo[cmd[CMD_UP_SHFT].val].edgeUp))
|
||||||
{
|
{
|
||||||
car->_gearCmd++;
|
if (HCtx[idx]->SeqShftAllowNeutral || car->_gearCmd > -1)
|
||||||
|
car->_gearCmd++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Down shifting command */
|
||||||
if ((cmd[CMD_DN_SHFT].type == GFCTRL_TYPE_JOY_BUT && joyInfo->edgeup[cmd[CMD_DN_SHFT].val])
|
if ((cmd[CMD_DN_SHFT].type == GFCTRL_TYPE_JOY_BUT && joyInfo->edgeup[cmd[CMD_DN_SHFT].val])
|
||||||
|| (cmd[CMD_DN_SHFT].type == GFCTRL_TYPE_MOUSE_BUT && mouseInfo->edgeup[cmd[CMD_DN_SHFT].val])
|
|| (cmd[CMD_DN_SHFT].type == GFCTRL_TYPE_MOUSE_BUT && mouseInfo->edgeup[cmd[CMD_DN_SHFT].val])
|
||||||
|| (cmd[CMD_DN_SHFT].type == GFCTRL_TYPE_KEYBOARD && keyInfo[cmd[CMD_DN_SHFT].val].edgeUp)
|
|| (cmd[CMD_DN_SHFT].type == GFCTRL_TYPE_KEYBOARD && keyInfo[cmd[CMD_DN_SHFT].val].edgeUp)
|
||||||
|
@ -1012,12 +1017,23 @@ drive_mt(const int index, tCarElt* car, tSituation *s)
|
||||||
if (HCtx[idx]->SeqShftAllowNeutral || car->_gearCmd > 1)
|
if (HCtx[idx]->SeqShftAllowNeutral || car->_gearCmd > 1)
|
||||||
car->_gearCmd--;
|
car->_gearCmd--;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Reverse gear and Neutral gear commands */
|
||||||
|
for (i = CMD_GEAR_R; i <= CMD_GEAR_N; i++) {
|
||||||
|
if ((cmd[i].type == GFCTRL_TYPE_JOY_BUT && joyInfo->edgeup[cmd[i].val])
|
||||||
|
|| (cmd[i].type == GFCTRL_TYPE_MOUSE_BUT && mouseInfo->edgeup[cmd[i].val])
|
||||||
|
|| (cmd[i].type == GFCTRL_TYPE_KEYBOARD && keyInfo[cmd[i].val].edgeUp)
|
||||||
|
|| (cmd[i].type == GFCTRL_TYPE_SKEYBOARD && skeyInfo[cmd[i].val].edgeUp))
|
||||||
|
{
|
||||||
|
car->_gearCmd = i - CMD_GEAR_N;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* manual shift direct */
|
/* manual shift direct */
|
||||||
else if (HCtx[idx]->Transmission == eTransGrid)
|
else if (HCtx[idx]->Transmission == eTransGrid)
|
||||||
{
|
{
|
||||||
int i;
|
/* Go to neutral gear if any gear command released (edge down) */
|
||||||
if (HCtx[idx]->RelButNeutral) {
|
if (HCtx[idx]->RelButNeutral) {
|
||||||
for (i = CMD_GEAR_R; i <= CMD_GEAR_6; i++) {
|
for (i = CMD_GEAR_R; i <= CMD_GEAR_6; i++) {
|
||||||
if ((cmd[i].type == GFCTRL_TYPE_JOY_BUT && joyInfo->edgedn[cmd[i].val])
|
if ((cmd[i].type == GFCTRL_TYPE_JOY_BUT && joyInfo->edgedn[cmd[i].val])
|
||||||
|
@ -1030,6 +1046,7 @@ drive_mt(const int index, tCarElt* car, tSituation *s)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Select the right gear if any gear command activated (edge up) */
|
||||||
for (i = CMD_GEAR_R; i <= CMD_GEAR_6; i++) {
|
for (i = CMD_GEAR_R; i <= CMD_GEAR_6; i++) {
|
||||||
if ((cmd[i].type == GFCTRL_TYPE_JOY_BUT && joyInfo->edgeup[cmd[i].val])
|
if ((cmd[i].type == GFCTRL_TYPE_JOY_BUT && joyInfo->edgeup[cmd[i].val])
|
||||||
|| (cmd[i].type == GFCTRL_TYPE_MOUSE_BUT && mouseInfo->edgeup[cmd[i].val])
|
|| (cmd[i].type == GFCTRL_TYPE_MOUSE_BUT && mouseInfo->edgeup[cmd[i].val])
|
||||||
|
|
Loading…
Reference in a new issue