Files
Cyd 2b8ca921cb Initial full mirror of c:\VWE (source + assets + toolchain + outputs) via Git LFS
Complete disaster-recovery snapshot: engine/game source, game data assets,
VC6 toolchain + DX SDKs, build outputs, deployed game, and _UNUSED archive.
Large binaries in Git LFS; text preserved byte-for-byte (core.autocrlf=false,
no eol attributes). See RECOVERY.md for the one-clone rebuild procedure.
2026-06-24 21:28:16 -05:00

252 lines
6.4 KiB
C++

//===========================================================================//
// File: GOSvideo.cpp //
// Project: MUNGA Brick: Video Renderer Manager //
// Contents: Interface specification Video Renderer Manager //
//---------------------------------------------------------------------------//
// Date Who Modification //
// -------- --- ---------------------------------------------------------- //
// 01/11/95 GAC Initial coding. //
// 07/11/95 KEO Modify video resource format. //
//---------------------------------------------------------------------------//
// Copyright (C) 1995, Virtual World Entertainment, Inc. //
// All Rights reserved worldwide. //
// This unpublished sourcecode is PROPRIETARY and CONFIDENTIAL. //
//===========================================================================//
#include "AdeptHeaders.hpp"
#include "Controls.hpp"
#include "Joystick.hpp"
#include "Tool.hpp"
#define BUTTON(entry) {#entry, ControlsManager::VirtualButtonGroupID, entry}
struct {
const char* mappingName;
int mappingGroup;
int mappingIndex;
}
Control_Mappings[]=
{
{"JoystickX", ControlsManager::JoystickAxisGroupID, Joystick::XAxis},
{"JoystickY", ControlsManager::JoystickAxisGroupID, Joystick::YAxis},
{"Throttle", ControlsManager::JoystickAxisGroupID, Joystick::ThrottleAxis},
{"Rudder", ControlsManager::JoystickAxisGroupID, Joystick::RudderAxis},
{"JoystickHat", ControlsManager::JoystickAxisGroupID, Joystick::HatAxis},
{"JoystickHatL", ControlsManager::JoystickHatID, 0},
{"JoystickHatR", ControlsManager::JoystickHatID, 1},
{"JoystickHatU", ControlsManager::JoystickHatID, 2},
{"JoystickHatD", ControlsManager::JoystickHatID, 3},
{"MousePosX", ControlsManager::MousePosXID, 0},
{"MousePosY", ControlsManager::MousePosYID, 0},
{"MouseDeltaX", ControlsManager::MouseDeltaXID, 0},
{"MouseDeltaY", ControlsManager::MouseDeltaYID, 0},
{"MouseWheelDelta",ControlsManager::MouseWheelDeltaID, 0},
{"MouseLeftButton", ControlsManager::MouseButtonGroupID, 0},
{"MouseRightButton", ControlsManager::MouseButtonGroupID, 1},
{"MouseMiddleButton", ControlsManager::MouseButtonGroupID, 2},
{"MouseX1Button", ControlsManager::MouseButtonGroupID, 3},
{"MouseX2Button", ControlsManager::MouseButtonGroupID, 4},
{"Keyboard", ControlsManager::SystemKeyboardID, 0},
BUTTON(KEY_ESCAPE),
BUTTON(KEY_1),
BUTTON(KEY_2),
BUTTON(KEY_3),
BUTTON(KEY_4),
BUTTON(KEY_5),
BUTTON(KEY_6),
BUTTON(KEY_7),
BUTTON(KEY_8),
BUTTON(KEY_9),
BUTTON(KEY_0),
BUTTON(KEY_MINUS),
BUTTON(KEY_EQUALS),
BUTTON(KEY_BACK),
BUTTON(KEY_TAB),
BUTTON(KEY_Q),
BUTTON(KEY_W),
BUTTON(KEY_E),
BUTTON(KEY_R),
BUTTON(KEY_T),
BUTTON(KEY_Y),
BUTTON(KEY_U),
BUTTON(KEY_I),
BUTTON(KEY_O),
BUTTON(KEY_P),
BUTTON(KEY_LBRACKET),
BUTTON(KEY_RBRACKET),
BUTTON(KEY_RETURN),
BUTTON(KEY_A),
BUTTON(KEY_S),
BUTTON(KEY_D),
BUTTON(KEY_F),
BUTTON(KEY_G),
BUTTON(KEY_H),
BUTTON(KEY_J),
BUTTON(KEY_K),
BUTTON(KEY_L),
BUTTON(KEY_SEMICOLON),
BUTTON(KEY_APOSTROPHE),
BUTTON(KEY_GRAVE),
BUTTON(KEY_BACKSLASH),
BUTTON(KEY_Z),
BUTTON(KEY_X),
BUTTON(KEY_C),
BUTTON(KEY_V),
BUTTON(KEY_B),
BUTTON(KEY_N),
BUTTON(KEY_M),
BUTTON(KEY_COMMA),
BUTTON(KEY_PERIOD),
BUTTON(KEY_SLASH),
BUTTON(KEY_MULTIPLY),
BUTTON(KEY_SPACE),
BUTTON(KEY_CAPITAL),
BUTTON(KEY_F1),
BUTTON(KEY_F2),
BUTTON(KEY_F3),
BUTTON(KEY_F4),
BUTTON(KEY_F5),
BUTTON(KEY_F6),
BUTTON(KEY_F7),
BUTTON(KEY_F8),
BUTTON(KEY_F9),
BUTTON(KEY_F10),
BUTTON(KEY_NUMLOCK),
BUTTON(KEY_PAUSE),
BUTTON(KEY_NUMPAD7),
BUTTON(KEY_NUMPAD8),
BUTTON(KEY_NUMPAD9),
BUTTON(KEY_SUBTRACT),
BUTTON(KEY_NUMPAD4),
BUTTON(KEY_NUMPAD5),
BUTTON(KEY_NUMPAD6),
BUTTON(KEY_ADD),
BUTTON(KEY_NUMPAD1),
BUTTON(KEY_NUMPAD2),
BUTTON(KEY_NUMPAD3),
BUTTON(KEY_NUMPAD0),
BUTTON(KEY_DECIMAL),
BUTTON(KEY_F11),
BUTTON(KEY_F12),
BUTTON(KEY_F13),
BUTTON(KEY_F14),
BUTTON(KEY_F15),
BUTTON(KEY_KANA),
BUTTON(KEY_CONVERT),
BUTTON(KEY_NOCONVERT),
BUTTON(KEY_YEN),
BUTTON(KEY_NUMPADEQUALS),
BUTTON(KEY_CIRCUMFLEX),
BUTTON(KEY_AT),
BUTTON(KEY_COLON),
BUTTON(KEY_UNDERLINE),
BUTTON(KEY_KANJI),
BUTTON(KEY_STOP),
BUTTON(KEY_AX),
BUTTON(KEY_UNLABELED),
BUTTON(KEY_NUMPADENTER),
BUTTON(KEY_NUMPADCOMMA),
BUTTON(KEY_DIVIDE),
BUTTON(KEY_SYSRQ),
BUTTON(KEY_HOME),
BUTTON(KEY_UP),
BUTTON(KEY_PRIOR),
BUTTON(KEY_LEFT),
BUTTON(KEY_RIGHT),
BUTTON(KEY_END),
BUTTON(KEY_DOWN),
BUTTON(KEY_NEXT),
BUTTON(KEY_INSERT),
BUTTON(KEY_DELETE),
BUTTON(KEY_LWIN),
BUTTON(KEY_RWIN),
BUTTON(KEY_APPS)
};
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
bool
Tool::FindControlGroupAndElement(
int *group,
int *element,
const char *control_name
)
{
Check_Pointer(group);
Check_Pointer(element);
Check_Pointer(control_name);
//
//---------------------------------------
// Check against the named elements first
//---------------------------------------
//
for (int i=0; i<ELEMENTS(Control_Mappings); ++i)
{
if (!_stricmp(control_name, Control_Mappings[i].mappingName))
{
*group = Control_Mappings[i].mappingGroup;
*element = Control_Mappings[i].mappingIndex;
return true;
}
}
//
//----------------------------------
// See if this is a joystick element
//----------------------------------
//
if (!_strnicmp(control_name, "Joystick", 8))
{
//
//---------------
// Check for axis
//---------------
//
if (!_strnicmp(control_name+8, "Axis", 4))
{
*group = ControlsManager::JoystickAxisGroupID;
*element = atoi(control_name+12) - 1;
}
//
//-----------------
// Check for button
//-----------------
//
else if (!_strnicmp(control_name+8, "Button", 6))
{
*group = ControlsManager::JoystickButtonGroupID;
*element = atoi(control_name+14) - 1;
}
//
//----------------------------------------
// This is a bad mappings, so return false
//----------------------------------------
//
else
{
return false;
}
}
//
//--------------
// Its a bad one
//--------------
//
else
{
return false;
}
return true;
}