Skip to content

Commit

Permalink
Changed Control Scheme. Using the 4 Arrows and Space for Boost
Browse files Browse the repository at this point in the history
  • Loading branch information
ptitSeb committed Jan 8, 2017
1 parent 3f77717 commit f1dbe7d
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 73 deletions.
33 changes: 8 additions & 25 deletions Car_Behaviour.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -759,37 +759,20 @@ void LimitViewpointY (long *y)
static void CarControl (DWORD input)
{
// Keys that control car are :-
// S = left, D = right
// RETURN = accelerate + boost
// SPACE = brake/reverse + boost
// HASH = brake/reverse
// Left = left, Right = right
// Up = Accelerate, Down = Brake
// (X) = Accelerate, (B) = Brake on Pandora
// SPACE = boost
// (R) = boost on Pandora
//
// Note: Can't accelerate without boost when using keyboard,
// because HASH key is changed to be brake - see below

long left = (input & KEY_P1_LEFT),
right = (input & KEY_P1_RIGHT),
boost = (input & KEY_P1_ACCEL_BOOST);

// 20/05/2007 - accelerate and brake variables are needed for UpdateEngineRevs
accelerate = (input & KEY_P1_HASH);
brake = (input & KEY_P1_BRAKE_BOOST);

if (input & KEY_P1_ACCEL_BOOST)
{
accelerate = TRUE; // boost also selects accelerate
}

if (input & KEY_P1_BRAKE_BOOST)
{
boost = TRUE; // brake also selects boost
}

if (input & KEY_P1_HASH) // see note above
{
brake = TRUE; // select brake
accelerate = FALSE;
}
accelerate = (input & KEY_P1_ACCEL),
brake = (input & KEY_P1_BRAKE),
boost = (input & KEY_P1_BOOST);

// if none of the resulting keys are pressed then read joystick
#ifdef linux
Expand Down
8 changes: 4 additions & 4 deletions Car_Behaviour.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,13 @@
#define CAR_WIDTH 64
#define CAR_LENGTH 128

// new controls for Car Behaviour, Player 1
// new new controls for Car Behaviour, Player 1
// must not clash with other KEY definitions
#define KEY_P1_LEFT 0x00000001l
#define KEY_P1_RIGHT 0x00000002l
#define KEY_P1_HASH 0x00000004l
#define KEY_P1_BRAKE_BOOST 0x00000008l
#define KEY_P1_ACCEL_BOOST 0x00000010l
#define KEY_P1_ACCEL 0x00000004l
#define KEY_P1_BRAKE 0x00000008l
#define KEY_P1_BOOST 0x00000010l

#define AMIGA_PAL_HZ (3546895)

Expand Down
72 changes: 28 additions & 44 deletions StuntCarRacer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1586,24 +1586,24 @@ void CALLBACK KeyboardProc( UINT nChar, bool bKeyDown, bool bAltDown, void *pUse
break;

// controls for Car Behaviour, Player 1
case 'S':
case VK_LEFT:
lastInput |= KEY_P1_LEFT;
break;

case 'D':
case VK_RIGHT:
lastInput |= KEY_P1_RIGHT;
break;

case 0xDE: // couldn't find VK_ definition for HASH key
lastInput |= KEY_P1_HASH;
case VK_SPACE:
lastInput |= KEY_P1_BOOST;
break;

case VK_SPACE:
lastInput |= KEY_P1_BRAKE_BOOST;
case VK_DOWN:
lastInput |= KEY_P1_BRAKE;
break;

case VK_RETURN:
lastInput |= KEY_P1_ACCEL_BOOST;
case VK_UP:
lastInput |= KEY_P1_ACCEL;
break;
}

Expand All @@ -1625,24 +1625,24 @@ void CALLBACK KeyboardProc( UINT nChar, bool bKeyDown, bool bAltDown, void *pUse
switch( nChar )
{
// controls for Car Behaviour, Player 1
case 'S':
case VK_LEFT:
lastInput &= ~KEY_P1_LEFT;
break;

case 'D':
case VK_RIGHT:
lastInput &= ~KEY_P1_RIGHT;
break;

case 0xDE: // couldn't find VK_ definition for HASH key
lastInput &= ~KEY_P1_HASH;
case VK_SPACE: // couldn't find VK_ definition for HASH key
lastInput &= ~KEY_P1_BOOST;
break;

case VK_SPACE:
lastInput &= ~KEY_P1_BRAKE_BOOST;
case VK_DOWN:
lastInput &= ~KEY_P1_BRAKE;
break;

case VK_RETURN:
lastInput &= ~KEY_P1_ACCEL_BOOST;
case VK_UP:
lastInput &= ~KEY_P1_ACCEL;
break;
}
}
Expand Down Expand Up @@ -1830,44 +1830,36 @@ bool process_events()
break;

// controls for Car Behaviour, Player 1
#ifdef PANDORA
case SDLK_LEFT:
#else
case SDLK_s:
#endif
lastInput |= KEY_P1_LEFT;
break;

#ifdef PANDORA
case SDLK_RIGHT:
#else
case SDLK_d:
#endif
lastInput |= KEY_P1_RIGHT;
break;

#ifdef PANDORA
case SDLK_HOME:
#else
case SDLK_HASH: // couldn't find VK_ definition for HASH key
case SDLK_SPACE:
#endif
lastInput |= KEY_P1_HASH;
lastInput |= KEY_P1_BOOST;
break;

#ifdef PANDORA
case SDLK_END:
#else
case SDLK_SPACE:
case SDLK_DOWN:
#endif
lastInput |= KEY_P1_BRAKE_BOOST;
lastInput |= KEY_P1_BRAKE;
break;

#ifdef PANDORA
case SDLK_PAGEDOWN:
#else
case SDLK_RETURN:
case SDLK_UP:
#endif
lastInput |= KEY_P1_ACCEL_BOOST;
lastInput |= KEY_P1_ACCEL;
break;

case SDLK_ESCAPE:
Expand All @@ -1878,44 +1870,36 @@ bool process_events()
keyPress = 0;
switch( event.key.keysym.sym ) {
// controls for Car Behaviour, Player 1
#ifdef PANDORA
case SDLK_LEFT:
#else
case SDLK_s:
#endif
lastInput &= ~KEY_P1_LEFT;
break;

#ifdef PANDORA
case SDLK_RIGHT:
#else
case SDLK_d:
#endif
lastInput &= ~KEY_P1_RIGHT;
break;

#ifdef PANDORA
case SDLK_HOME:
#else
case SDLK_HASH: // couldn't find VK_ definition for HASH key
case SDLK_SPACE:
#endif
lastInput &= ~KEY_P1_HASH;
lastInput &= ~KEY_P1_BOOST;
break;

#ifdef PANDORA
case SDLK_END:
#else
case SDLK_SPACE:
case SDLK_DOWN:
#endif
lastInput &= ~KEY_P1_BRAKE_BOOST;
lastInput &= ~KEY_P1_BRAKE;
break;

#ifdef PANDORA
case SDLK_PAGEDOWN:
#else
case SDLK_RETURN:
case SDLK_UP:
#endif
lastInput &= ~KEY_P1_ACCEL_BOOST;
lastInput &= ~KEY_P1_ACCEL;
break;
}
break;
Expand Down

0 comments on commit f1dbe7d

Please sign in to comment.