working on draw stuff (doesn't compile)
This commit is contained in:
parent
0498f7ce25
commit
c6e3fa8685
7 changed files with 302 additions and 131 deletions
1
Makefile
1
Makefile
|
@ -21,6 +21,7 @@ LIBS += `sdl2-config --static-libs`
|
||||||
# For an accurate result to the original's code, compile in alphabetical order
|
# For an accurate result to the original's code, compile in alphabetical order
|
||||||
SOURCES = \
|
SOURCES = \
|
||||||
Config \
|
Config \
|
||||||
|
Draw \
|
||||||
Input \
|
Input \
|
||||||
KeyControl \
|
KeyControl \
|
||||||
Main \
|
Main \
|
||||||
|
|
2
src/Bug Fixes.txt
Normal file
2
src/Bug Fixes.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
Main.cpp : main(int, char**)
|
||||||
|
Pixel intended for the second alternate up key to be the plus key, Japanese keyboards have the plus key where the semi-colon key is, causing errors on other keyboard layouts)
|
4
src/Draw.cpp
Normal file
4
src/Draw.cpp
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
bool StartDirectDraw()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
|
@ -1,13 +1,10 @@
|
||||||
#include "Types.h"
|
#include "Types.h"
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <SDL_gamepad.h>
|
#include <SDL_gamecontroller.h>
|
||||||
#include "Input.h"
|
#include "Input.h"
|
||||||
|
|
||||||
#define JOYSTICK_DEADZONE 0x2000
|
#define JOYSTICK_DEADZONE 0x2000
|
||||||
|
|
||||||
bool gbUseJoystick;
|
|
||||||
int gJoystickButtonTable[8];
|
|
||||||
|
|
||||||
SDL_GameController *joystick; //This may be a name that was given by Simon, but it fits the rest of Pixel's names so it's fine.
|
SDL_GameController *joystick; //This may be a name that was given by Simon, but it fits the rest of Pixel's names so it's fine.
|
||||||
|
|
||||||
void ReleaseDirectInput()
|
void ReleaseDirectInput()
|
||||||
|
@ -38,7 +35,7 @@ bool InitDirectInput()
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
signed int GetJoystickStatus(JOYSTICK_STATUS *pStatus)
|
bool GetJoystickStatus(JOYSTICK_STATUS *pStatus)
|
||||||
{
|
{
|
||||||
//Clear status
|
//Clear status
|
||||||
memset(pStatus, 0, sizeof(JOYSTICK_STATUS));
|
memset(pStatus, 0, sizeof(JOYSTICK_STATUS));
|
||||||
|
@ -49,20 +46,21 @@ signed int GetJoystickStatus(JOYSTICK_STATUS *pStatus)
|
||||||
int32_t y = SDL_GameControllerGetAxis(joystick, SDL_CONTROLLER_AXIS_LEFTY);
|
int32_t y = SDL_GameControllerGetAxis(joystick, SDL_CONTROLLER_AXIS_LEFTY);
|
||||||
pStatus->bLeft = x <= -JOYSTICK_DEADZONE;
|
pStatus->bLeft = x <= -JOYSTICK_DEADZONE;
|
||||||
pStatus->bRight = x >= JOYSTICK_DEADZONE;
|
pStatus->bRight = x >= JOYSTICK_DEADZONE;
|
||||||
pStatus->bUp = v2 <= -JOYSTICK_DEADZONE;
|
pStatus->bUp = y <= -JOYSTICK_DEADZONE;
|
||||||
pStatus->bDown = v2 >= JOYSTICK_DEADZONE;
|
pStatus->bDown = y >= JOYSTICK_DEADZONE;
|
||||||
|
|
||||||
int numButtons = SDL_GameControllerNumButtons(joystick);
|
int numButtons = SDL_JoystickNumButtons(SDL_GameControllerGetJoystick(joystick));
|
||||||
if (numButtons > 32)
|
if (numButtons > 32)
|
||||||
numButtons = 32;
|
numButtons = 32;
|
||||||
|
|
||||||
for (int button = 0; button < numButtons; button++)
|
for (int button = 0; button < numButtons; button++)
|
||||||
pStatus->bButton[button] = SDL_GameControllerGetButton(joystick, button) != 0;
|
pStatus->bButton[button] = SDL_GameControllerGetButton(joystick, (SDL_GameControllerButton)button) != 0;
|
||||||
}
|
}
|
||||||
return 1;
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
signed int ResetJoystickStatus()
|
bool ResetJoystickStatus()
|
||||||
{
|
{
|
||||||
return 1;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,3 +10,8 @@ struct JOYSTICK_STATUS
|
||||||
bool bDown;
|
bool bDown;
|
||||||
bool bButton[32];
|
bool bButton[32];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
void ReleaseDirectInput();
|
||||||
|
bool InitDirectInput();
|
||||||
|
bool GetJoystickStatus(JOYSTICK_STATUS *pStatus);
|
||||||
|
bool ResetJoystickStatus();
|
||||||
|
|
394
src/Main.cpp
394
src/Main.cpp
|
@ -4,11 +4,8 @@
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
#include <SDL_main.h>
|
#include <SDL.h>
|
||||||
#include <SDL_render.h>
|
#include "WindowsWrapper.h"
|
||||||
#include <SDL_keyboard.h>
|
|
||||||
#include <SDL_filesystem.h>
|
|
||||||
#include <SDL_events.h>
|
|
||||||
|
|
||||||
#include "Input.h"
|
#include "Input.h"
|
||||||
#include "Config.h"
|
#include "Config.h"
|
||||||
|
@ -17,6 +14,19 @@
|
||||||
char gModulePath[PATH_LENGTH];
|
char gModulePath[PATH_LENGTH];
|
||||||
char gDataPath[PATH_LENGTH];
|
char gDataPath[PATH_LENGTH];
|
||||||
|
|
||||||
|
int gJoystickButtonTable[8];
|
||||||
|
|
||||||
|
int gWindowWidth;
|
||||||
|
int gWindowHeight;
|
||||||
|
SDL_Window *gWindow;
|
||||||
|
SDL_Renderer *gRenderer;
|
||||||
|
|
||||||
|
bool gbUseJoystick;
|
||||||
|
bool bFullscreen;
|
||||||
|
bool bFps;
|
||||||
|
|
||||||
|
bool bActive;
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
//Get executable's path
|
//Get executable's path
|
||||||
|
@ -28,104 +38,226 @@ int main(int argc, char *argv[])
|
||||||
strcpy(gDataPath, gModulePath);
|
strcpy(gDataPath, gModulePath);
|
||||||
memcpy(&gDataPath[strlen(gDataPath)], "/data", 6); //Pixel didn't use a strcat
|
memcpy(&gDataPath[strlen(gDataPath)], "/data", 6); //Pixel didn't use a strcat
|
||||||
|
|
||||||
//Load configuration
|
//Initialize SDL
|
||||||
CONFIG config;
|
if (SDL_Init(SDL_INIT_VIDEO) >= 0)
|
||||||
|
|
||||||
if (!LoadConfigData(&config))
|
|
||||||
DefaultConfigData(&config);
|
|
||||||
|
|
||||||
//Apply keybinds
|
|
||||||
//Swap X and Z buttons
|
|
||||||
if (config.attack_button_mode)
|
|
||||||
{
|
{
|
||||||
if (config.attack_button_mode == 1)
|
//Load configuration
|
||||||
|
CONFIG config;
|
||||||
|
|
||||||
|
if (!LoadConfigData(&config))
|
||||||
|
DefaultConfigData(&config);
|
||||||
|
|
||||||
|
//Apply keybinds
|
||||||
|
//Swap X and Z buttons
|
||||||
|
if (config.attack_button_mode)
|
||||||
{
|
{
|
||||||
gKeyJump = KEY_X;
|
if (config.attack_button_mode == 1)
|
||||||
gKeyShot = KEY_Z;
|
{
|
||||||
|
gKeyJump = KEY_X;
|
||||||
|
gKeyShot = KEY_Z;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
else
|
||||||
else
|
|
||||||
{
|
|
||||||
gKeyJump = KEY_Z;
|
|
||||||
gKeyShot = KEY_X;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Swap Okay and Cancel buttons
|
|
||||||
if (config.ok_button_mode)
|
|
||||||
{
|
|
||||||
if (config.ok_button_mode == 1)
|
|
||||||
{
|
{
|
||||||
gKeyOk = gKeyShot;
|
gKeyJump = KEY_Z;
|
||||||
gKeyCancel = gKeyJump;
|
gKeyShot = KEY_X;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
gKeyOk = gKeyJump;
|
|
||||||
gKeyCancel = gKeyShot;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Alternate movement keys
|
//Swap Okay and Cancel buttons
|
||||||
if (config.move_button_mode)
|
if (config.ok_button_mode)
|
||||||
{
|
|
||||||
if (config.move_button_mode == 1)
|
|
||||||
{
|
{
|
||||||
gKeyLeft = KEY_ALT_LEFT;
|
if (config.ok_button_mode == 1)
|
||||||
gKeyUp = KEY_ALT_UP;
|
{
|
||||||
gKeyRight = KEY_ALT_RIGHT;
|
gKeyOk = gKeyShot;
|
||||||
gKeyDown = KEY_ALT_DOWN;
|
gKeyCancel = gKeyJump;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
gKeyOk = gKeyJump;
|
||||||
|
gKeyCancel = gKeyShot;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
gKeyLeft = KEY_LEFT;
|
|
||||||
gKeyUp = KEY_UP;
|
|
||||||
gKeyRight = KEY_RIGHT;
|
|
||||||
gKeyDown = KEY_DOWN;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Set gamepad inputs
|
//Alternate movement keys
|
||||||
for (int i = 0; i < 8; i++)
|
if (config.move_button_mode)
|
||||||
{
|
{
|
||||||
switch (config.joystick_button[i])
|
if (config.move_button_mode == 1)
|
||||||
|
{
|
||||||
|
gKeyLeft = KEY_ALT_LEFT;
|
||||||
|
gKeyUp = KEY_ALT_UP;
|
||||||
|
gKeyRight = KEY_ALT_RIGHT;
|
||||||
|
gKeyDown = KEY_ALT_DOWN;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
gKeyLeft = KEY_LEFT;
|
||||||
|
gKeyUp = KEY_UP;
|
||||||
|
gKeyRight = KEY_RIGHT;
|
||||||
|
gKeyDown = KEY_DOWN;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Set gamepad inputs
|
||||||
|
for (int i = 0; i < 8; i++)
|
||||||
|
{
|
||||||
|
switch (config.joystick_button[i])
|
||||||
|
{
|
||||||
|
case 1:
|
||||||
|
gJoystickButtonTable[i] = gKeyJump;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 2:
|
||||||
|
gJoystickButtonTable[i] = gKeyShot;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 3:
|
||||||
|
gJoystickButtonTable[i] = gKeyArms;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 6:
|
||||||
|
gJoystickButtonTable[i] = gKeyArmsRev;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 4:
|
||||||
|
gJoystickButtonTable[i] = gKeyItem;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 5:
|
||||||
|
gJoystickButtonTable[i] = gKeyMap;
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
RECT unused_rect = {0, 0, 320, 240};
|
||||||
|
|
||||||
|
//Get window dimensions and colour depth
|
||||||
|
int windowScale;
|
||||||
|
int colourDepth = 16;
|
||||||
|
|
||||||
|
switch (config.display_mode)
|
||||||
{
|
{
|
||||||
case 1:
|
case 1:
|
||||||
gJoystickButtonTable[i] = gKeyJump;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 2:
|
case 2:
|
||||||
gJoystickButtonTable[i] = gKeyShot;
|
//Set window dimensions
|
||||||
|
if (config.display_mode == 1)
|
||||||
|
{
|
||||||
|
gWindowWidth = 320;
|
||||||
|
gWindowHeight = 240;
|
||||||
|
windowScale = 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
gWindowWidth = 640;
|
||||||
|
gWindowHeight = 480;
|
||||||
|
windowScale = 2;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 0:
|
||||||
case 3:
|
case 3:
|
||||||
gJoystickButtonTable[i] = gKeyArms;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 6:
|
|
||||||
gJoystickButtonTable[i] = gKeyArmsRev;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 4:
|
case 4:
|
||||||
gJoystickButtonTable[i] = gKeyItem;
|
//Set window dimensions
|
||||||
break;
|
gWindowWidth = 640;
|
||||||
|
gWindowHeight = 480;
|
||||||
|
windowScale = 2;
|
||||||
|
|
||||||
case 5:
|
//Set colour depth
|
||||||
gJoystickButtonTable[i] = gKeyMap;
|
if (config.display_mode)
|
||||||
break;
|
{
|
||||||
|
if (config.display_mode == 3)
|
||||||
|
colourDepth = 24;
|
||||||
|
else if (config.display_mode == 4)
|
||||||
|
colourDepth = 32;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
colourDepth = 16;
|
||||||
|
|
||||||
default:
|
bFullscreen = true;
|
||||||
continue;
|
SDL_ShowCursor(0);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef JAPANESE
|
||||||
|
const char *windowTitle = "洞窟物語エンジン";
|
||||||
|
#else
|
||||||
|
const char *windowTitle = "Cave Story Engine ~ Doukutsu Monogatari Enjin";
|
||||||
|
#endif
|
||||||
|
|
||||||
|
gWindow = SDL_CreateWindow(windowTitle, SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, gWindowWidth, gWindowHeight, bFullscreen ? SDL_WINDOW_FULLSCREEN : 0);
|
||||||
|
|
||||||
|
if (gWindow)
|
||||||
|
{
|
||||||
|
StartDirectDraw(window, windowScale);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void InactiveWindow()
|
||||||
|
{
|
||||||
|
if (bActive)
|
||||||
|
{
|
||||||
|
bActive = false;
|
||||||
|
//StopOrganyaMusic();
|
||||||
|
//SleepNoise();
|
||||||
|
}
|
||||||
|
|
||||||
|
//PlaySoundObject(7, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
void ActiveWindow()
|
||||||
|
{
|
||||||
|
if (!bActive)
|
||||||
|
{
|
||||||
|
bActive = true;
|
||||||
|
//StopOrganyaMusic();
|
||||||
|
//PlayOrganyaMusic();
|
||||||
|
//ResetNoise();
|
||||||
|
}
|
||||||
|
|
||||||
|
//PlaySoundObject(7, -1);
|
||||||
|
}
|
||||||
|
|
||||||
|
void JoystickProc()
|
||||||
|
{
|
||||||
|
JOYSTICK_STATUS status;
|
||||||
|
|
||||||
|
if (GetJoystickStatus(&status))
|
||||||
|
{
|
||||||
|
//Set movement buttons
|
||||||
|
if (status.bLeft)
|
||||||
|
gKey |= gKeyLeft;
|
||||||
|
if (status.bRight)
|
||||||
|
gKey |= gKeyRight;
|
||||||
|
if (status.bUp)
|
||||||
|
gKey |= gKeyUp;
|
||||||
|
if (status.bDown)
|
||||||
|
gKey |= gKeyDown;
|
||||||
|
|
||||||
|
//Clear previously held buttons
|
||||||
|
for (int i = 0; i < 8; i++)
|
||||||
|
gKey &= ~gJoystickButtonTable[i];
|
||||||
|
|
||||||
|
//Set held buttons
|
||||||
|
for (int i = 0; i < 8; i++)
|
||||||
|
{
|
||||||
|
if (status.bButton[i])
|
||||||
|
gKey |= gJoystickButtonTable[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
bool SystemTask()
|
bool SystemTask()
|
||||||
{
|
{
|
||||||
|
//Handle window events
|
||||||
SDL_Event event;
|
SDL_Event event;
|
||||||
while (SDL_PollEvent(&event))
|
while (SDL_PollEvent(&event))
|
||||||
{
|
{
|
||||||
|
@ -135,87 +267,107 @@ bool SystemTask()
|
||||||
return false;
|
return false;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SDL_KEYDOWN:
|
case SDL_WINDOWEVENT:
|
||||||
switch (event.key.keysym.scancode)
|
switch (event.window.event)
|
||||||
{
|
{
|
||||||
case SDL_SCANCODE_ESCAPE:
|
case SDL_WINDOWEVENT_FOCUS_GAINED:
|
||||||
|
ActiveWindow();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SDL_WINDOWEVENT_FOCUS_LOST:
|
||||||
|
InactiveWindow();
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SDL_KEYDOWN:
|
||||||
|
switch (event.key.keysym.sym)
|
||||||
|
{
|
||||||
|
case SDLK_ESCAPE:
|
||||||
gKey |= KEY_ESCAPE;
|
gKey |= KEY_ESCAPE;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SDL_SCANCODE_W:
|
case SDLK_w:
|
||||||
gKey |= KEY_MAP;
|
gKey |= KEY_MAP;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SDL_SCANCODE_LEFT:
|
case SDLK_LEFT:
|
||||||
gKey |= KEY_LEFT;
|
gKey |= KEY_LEFT;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SDL_SCANCODE_RIGHT:
|
case SDLK_RIGHT:
|
||||||
gKey |= KEY_RIGHT;
|
gKey |= KEY_RIGHT;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SDL_SCANCODE_UP:
|
case SDLK_UP:
|
||||||
gKey |= KEY_UP;
|
gKey |= KEY_UP;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SDL_SCANCODE_DOWN:
|
case SDLK_DOWN:
|
||||||
gKey |= KEY_DOWN;
|
gKey |= KEY_DOWN;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SDL_SCANCODE_X:
|
case SDLK_x:
|
||||||
gKey |= KEY_X;
|
gKey |= KEY_X;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SDL_SCANCODE_Z:
|
case SDLK_z:
|
||||||
gKey |= KEY_Z;
|
gKey |= KEY_Z;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SDL_SCANCODE_S:
|
case SDLK_s:
|
||||||
gKey |= KEY_ARMS;
|
gKey |= KEY_ARMS;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SDL_SCANCODE_A:
|
case SDLK_a:
|
||||||
gKey |= KEY_ARMSREV;
|
gKey |= KEY_ARMSREV;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SDL_SCANCODE_RSHIFT:
|
case SDLK_RSHIFT:
|
||||||
case SDL_SCANCODE_LSHIFT:
|
case SDLK_LSHIFT:
|
||||||
gKey |= KEY_SHIFT;
|
gKey |= KEY_SHIFT;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SDL_SCANCODE_F1:
|
case SDLK_F1:
|
||||||
gKey |= KEY_F1;
|
gKey |= KEY_F1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SDL_SCANCODE_F2:
|
case SDLK_F2:
|
||||||
gKey |= KEY_F2;
|
gKey |= KEY_F2;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SDL_SCANCODE_Q:
|
case SDLK_q:
|
||||||
gKey |= KEY_ITEM;
|
gKey |= KEY_ITEM;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SDL_SCANCODE_COMMA:
|
case SDLK_COMMA:
|
||||||
gKey |= KEY_ALT_LEFT;
|
gKey |= KEY_ALT_LEFT;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SDL_SCANCODE_PERIOD:
|
case SDLK_PERIOD:
|
||||||
gKey |= KEY_ALT_DOWN;
|
gKey |= KEY_ALT_DOWN;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SDL_SCANCODE_SLASH:
|
case SDLK_SLASH:
|
||||||
gKey |= KEY_ALT_RIGHT;
|
gKey |= KEY_ALT_RIGHT;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SDL_SCANCODE_L:
|
case SDLK_l:
|
||||||
gKey |= KEY_ALT_UP;
|
gKey |= KEY_ALT_UP;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SDL_SCANCODE_EQUALS:
|
#ifdef FIX_BUGS //BUG FIX: Pixel intended for the second alternate up key to be the plus key, Japanese keyboards have the plus key where the semi-colon key is, causing errors on other keyboard layouts)
|
||||||
|
case SDLK_PLUS:
|
||||||
|
#else
|
||||||
|
case SDLK_SEMICOLON:
|
||||||
|
#endif
|
||||||
gKey |= KEY_PLUS;
|
gKey |= KEY_PLUS;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SDL_SCANCODE_F5:
|
case SDLK_F5:
|
||||||
gbUseJoystick = false;
|
gbUseJoystick = false;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -227,80 +379,84 @@ bool SystemTask()
|
||||||
case SDL_KEYUP:
|
case SDL_KEYUP:
|
||||||
switch (event.key.keysym.scancode)
|
switch (event.key.keysym.scancode)
|
||||||
{
|
{
|
||||||
case SDL_SCANCODE_ESCAPE:
|
case SDLK_ESCAPE:
|
||||||
gKey &= ~KEY_ESCAPE;
|
gKey &= ~KEY_ESCAPE;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SDL_SCANCODE_W:
|
case SDLK_w:
|
||||||
gKey &= ~KEY_MAP;
|
gKey &= ~KEY_MAP;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SDL_SCANCODE_LEFT:
|
case SDLK_LEFT:
|
||||||
gKey &= ~KEY_LEFT;
|
gKey &= ~KEY_LEFT;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SDL_SCANCODE_RIGHT:
|
case SDLK_RIGHT:
|
||||||
gKey &= ~KEY_RIGHT;
|
gKey &= ~KEY_RIGHT;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SDL_SCANCODE_UP:
|
case SDLK_UP:
|
||||||
gKey &= ~KEY_UP;
|
gKey &= ~KEY_UP;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SDL_SCANCODE_DOWN:
|
case SDLK_DOWN:
|
||||||
gKey &= ~KEY_DOWN;
|
gKey &= ~KEY_DOWN;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SDL_SCANCODE_X:
|
case SDLK_x:
|
||||||
gKey &= ~KEY_X;
|
gKey &= ~KEY_X;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SDL_SCANCODE_Z:
|
case SDLK_z:
|
||||||
gKey &= ~KEY_Z;
|
gKey &= ~KEY_Z;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SDL_SCANCODE_S:
|
case SDLK_s:
|
||||||
gKey &= ~KEY_ARMS;
|
gKey &= ~KEY_ARMS;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SDL_SCANCODE_A:
|
case SDLK_a:
|
||||||
gKey &= ~KEY_ARMSREV;
|
gKey &= ~KEY_ARMSREV;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SDL_SCANCODE_RSHIFT:
|
case SDLK_RSHIFT:
|
||||||
case SDL_SCANCODE_LSHIFT:
|
case SDLK_LSHIFT:
|
||||||
gKey &= ~KEY_SHIFT;
|
gKey &= ~KEY_SHIFT;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SDL_SCANCODE_F1:
|
case SDLK_F1:
|
||||||
gKey &= ~KEY_F1;
|
gKey &= ~KEY_F1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SDL_SCANCODE_F2:
|
case SDLK_F2:
|
||||||
gKey &= ~KEY_F2;
|
gKey &= ~KEY_F2;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SDL_SCANCODE_Q:
|
case SDLK_q:
|
||||||
gKey &= ~KEY_ITEM;
|
gKey &= ~KEY_ITEM;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SDL_SCANCODE_COMMA:
|
case SDLK_COMMA:
|
||||||
gKey &= ~KEY_ALT_LEFT;
|
gKey &= ~KEY_ALT_LEFT;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SDL_SCANCODE_PERIOD:
|
case SDLK_PERIOD:
|
||||||
gKey &= ~KEY_ALT_DOWN;
|
gKey &= ~KEY_ALT_DOWN;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SDL_SCANCODE_SLASH:
|
case SDLK_SLASH:
|
||||||
gKey &= ~KEY_ALT_RIGHT;
|
gKey &= ~KEY_ALT_RIGHT;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SDL_SCANCODE_L:
|
case SDLK_l:
|
||||||
gKey &= ~KEY_ALT_UP;
|
gKey &= ~KEY_ALT_UP;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SDL_SCANCODE_EQUALS:
|
#ifdef FIX_BUGS //BUG FIX: Pixel intended for the second alternate up key to be the plus key, Japanese keyboards have the plus key where the semi-colon key is, causing errors on other keyboard layouts)
|
||||||
|
case SDLK_PLUS:
|
||||||
|
#else
|
||||||
|
case SDLK_SEMICOLON:
|
||||||
|
#endif
|
||||||
gKey &= ~KEY_PLUS;
|
gKey &= ~KEY_PLUS;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -311,5 +467,9 @@ bool SystemTask()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Run joystick code
|
||||||
|
if (gbUseJoystick)
|
||||||
|
JoystickProc();
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
#include "CommonDefines.h"
|
#include "CommonDefines.h"
|
||||||
|
#include "Draw.h"
|
||||||
|
|
||||||
extern char gModulePath[PATH_LENGTH];
|
extern char gModulePath[PATH_LENGTH];
|
||||||
extern char gDataPath[PATH_LENGTH];
|
extern char gDataPath[PATH_LENGTH];
|
||||||
|
|
Loading…
Add table
Reference in a new issue