The-Simpsons-Hit-and-Run/game/code/input/virtualinputs.cpp

179 lines
5.0 KiB
C++

//===========================================================================
// Copyright (C) 2003 Radical Entertainment Ltd. All rights reserved.
//
// Component: VirtualInputs
//
// Description: Implementation of the virtual input class.
//
// History: 03/28/2003 + Created -- Ziemek
//
//===========================================================================
#include <input/virtualinputs.hpp>
#include <input/inputmanager.h>
static const char* szVirtualInputs[] =
{
"MoveUp",
"MoveDown",
"MoveLeft",
"MoveRight",
"Attack",
"Jump",
"Sprint",
"DoAction",
"Accelerate",
"Reverse",
"SteerLeft",
"SteerRight",
"GetOutCar",
"HandBrake",
"Horn",
"ResetCar",
"CameraLeft",
"CameraRight",
"CameraMoveIn",
"CameraMoveOut",
"CameraZoom",
"CameraLookUp",
"CameraCarLeft",
"CameraCarRight",
"CameraCarLookUp",
"CameraCarLookBack",
"CameraToggle",
"feBack", // Do not allow the user to configure any fe buttons!
"feMoveUp", // These are standard, unconfigurable
"feMoveDown",
"feMoveLeft",
"feMoveRight",
"feSelect",
"feFunction1",
"feFunction2",
"feMouseLeft",
"feMouseRight",
"feMouseUp",
"feMouseDown",
"P1_KBD_Start",
"P1_KBD_Gas",
"P1_KBD_Brake",
"P1_KBD_EBrake",
"P1_KBD_Nitro",
"P1_KBD_Left",
"P1_KBD_Right"
};
//==============================================================================
// VirtualInputs::GetName
//==============================================================================
//
// Description: Returns the name of the given input
//
// Parameters: virtualinput - input to look up
//
// Return: name of input
//
//==============================================================================
const char* VirtualInputs::GetName( int VirtualInput )
{
rAssert( VirtualInput >= 0 && VirtualInput < GetNumber() );
return szVirtualInputs[ VirtualInput ];
}
//==============================================================================
// VirtualInputs::GetType
//==============================================================================
//
// Description: Returns the type of a virtual input
//
// Parameters: virtualinput - input to look up
//
// Return: type of input
//
//==============================================================================
eMapType VirtualInputs::GetType( int VirtualInput )
{
rAssert( VirtualInput >= 0 && VirtualInput < GetNumber() );
switch( VirtualInput )
{
case InputManager::MoveUp:
case InputManager::MoveDown:
case InputManager::MoveLeft:
case InputManager::MoveRight:
case InputManager::Attack:
case InputManager::Jump:
case InputManager::Sprint:
case InputManager::DoAction:
case InputManager::CameraLeft:
case InputManager::CameraRight:
case InputManager::CameraMoveIn:
case InputManager::CameraMoveOut:
case InputManager::CameraZoom:
case InputManager::CameraLookUp:
return MAP_CHARACTER;
case InputManager::Accelerate:
case InputManager::Reverse:
case InputManager::SteerLeft:
case InputManager::SteerRight:
case InputManager::GetOutCar:
case InputManager::HandBrake:
case InputManager::Horn:
case InputManager::ResetCar:
case InputManager::CameraCarLeft:
case InputManager::CameraCarRight:
case InputManager::CameraCarLookUp:
case InputManager::CameraCarLookBack:
case InputManager::CameraToggle:
return MAP_VEHICLE;
case InputManager::feBack:
case InputManager::feMoveUp:
case InputManager::feMoveDown:
case InputManager::feMoveLeft:
case InputManager::feMoveRight:
case InputManager::feSelect:
case InputManager::feFunction1:
case InputManager::feFunction2:
case InputManager::feMouseLeft:
case InputManager::feMouseRight:
case InputManager::feMouseUp:
case InputManager::feMouseDown:
return MAP_FRONTEND;
default:
{
if ( VirtualInput >= InputManager::P1_KBD_Start && VirtualInput <= InputManager::P1_KBD_Right )
{
return MAP_FRONTEND;
}
else
{
return MAP_CHARACTER;
}
}
}
}
//==============================================================================
// VirtualInputs::GetNumber
//==============================================================================
//
// Description: Returns the number of virtual inputs
//
// Parameters: n/a
//
// Return: number of virtual inputs
//
//==============================================================================
int VirtualInputs::GetNumber()
{
static int NumVirtualInputs = sizeof( szVirtualInputs ) / sizeof( szVirtualInputs[0] );
return NumVirtualInputs;
}