Color keys and alpha blending is not working correctly yet.
MEDAL_SERVER_HOST = www.parallelrealities.co.uk
MEDAL_SERVER_PORT = 80
-CXXFLAGS += `sdl-config --cflags` -DVERSION=$(VERSION) -DRELEASE=$(RELEASE) -DUSEPAK=$(USEPAK)
+CXXFLAGS += `pkg-config --cflags sdl2 SDL2_mixer SDL2_image SDL2_ttf SDL2_net` -DVERSION=$(VERSION) -DRELEASE=$(RELEASE) -DUSEPAK=$(USEPAK)
CXXFLAGS += -DPAKNAME=\"$(PAKNAME)\" -DPAKLOCATION=\"$(DATADIR)\" -DUNIX -DGAMEPLAYMANUAL=\"$(DOCDIR)index.html\" -Wall
CXXFLAGS += -DLOCALEDIR=\"$(LOCALEDIR)\" -DMEDAL_SERVER_HOST=\"$(MEDAL_SERVER_HOST)\" -DMEDAL_SERVER_PORT=$(MEDAL_SERVER_PORT)
CXXFLAGS += $(CFLAGS) -Werror
-LIBS = `sdl-config --libs` -lSDL_mixer -lSDL_image -lSDL_ttf -lSDL_net -lz
+LIBS = `pkg-config --libs sdl2 SDL2_mixer SDL2_image SDL2_ttf SDL2_net` -lz
PAKLIBS = -lz
OBJS += CAudio.o
}
else
{
- if ((engine->keyState[keyboard.control[CONTROL::PAUSE]]) || (engine->keyState[SDLK_ESCAPE]))
+ if ((engine->keyState[keyboard.control[CONTROL::PAUSE]]) || (engine->keyState[SDL_SCANCODE_ESCAPE]))
{
engine->paused = false;
engine->keyState[keyboard.control[CONTROL::PAUSE]] = 0;
- engine->keyState[SDLK_ESCAPE] = 0;
+ engine->keyState[SDL_SCANCODE_ESCAPE] = 0;
}
}
}
#include "headers.h"
#include <errno.h>
+extern Graphics graphics;
Engine::Engine()
{
- for (int i = 0 ; i < 350 ; i++)
- {
- keyState[i] = 0;
- }
-
- for (int i = 0 ; i < 32 ; i++)
- {
- joystickState[i] = 0;
- }
+ memset(keyState, 0, sizeof keyState);
+
+ memset(joystickState, 0, sizeof joystickState);
joyX = joyY = 0;
if (waitForButton)
{
- if (event.key.keysym.sym == SDLK_ESCAPE)
+ if (event.key.keysym.scancode == SDL_SCANCODE_ESCAPE)
{
lastButtonPressed = -1;
*highlightedWidget->value = abs(*highlightedWidget->value) - 1000;
allowJoypad = false;
}
- if (event.key.keysym.sym == SDLK_BACKSPACE)
+ if (event.key.keysym.scancode == SDL_SCANCODE_BACKSPACE)
{
lastButtonPressed = -2;
*highlightedWidget->value = -2;
if (waitForKey)
{
- if (event.key.keysym.sym == SDLK_ESCAPE)
+ if (event.key.keysym.scancode == SDL_SCANCODE_ESCAPE)
{
*highlightedWidget->value = -*highlightedWidget->value;
}
else
{
- *highlightedWidget->value = event.key.keysym.sym;
+ *highlightedWidget->value = event.key.keysym.scancode;
}
lastButtonPressed = -1;
return;
}
- keyState[event.key.keysym.sym] = 1;
- strlcpy(lastKeyPressed, SDL_GetKeyName(event.key.keysym.sym), sizeof lastKeyPressed);
+ keyState[event.key.keysym.scancode] = 1;
+ strlcpy(lastKeyPressed, SDL_GetKeyName(event.key.keysym.scancode), sizeof lastKeyPressed);
addKeyEvent();
break;
case SDL_KEYUP:
- keyState[event.key.keysym.sym] = 0;
+ keyState[event.key.keysym.scancode] = 0;
break;
case SDL_JOYAXISMOTION:
joystickState[event.jbutton.button] = 0;
break;
+ case SDL_WINDOWEVENT:
+ if (event.window.event == SDL_WINDOWEVENT_FOCUS_LOST)
+ paused = true;
+ break;
+
default:
break;
}
void Engine::setMouse(int x, int y)
{
- SDL_WarpMouse(x, y);
+ SDL_WarpMouseInWindow(graphics.window, x, y);
}
bool Engine::userAccepts()
{
- if ((keyState[SDLK_SPACE]) || (keyState[SDLK_ESCAPE]) || (keyState[SDLK_LCTRL]) || (keyState[SDLK_RCTRL]) || (keyState[SDLK_RETURN]) || (keyState[SDLK_LCTRL]))
+ if ((keyState[SDL_SCANCODE_SPACE]) || (keyState[SDL_SCANCODE_ESCAPE]) || (keyState[SDL_SCANCODE_LCTRL]) || (keyState[SDL_SCANCODE_RCTRL]) || (keyState[SDL_SCANCODE_RETURN]) || (keyState[SDL_SCANCODE_LCTRL]))
{
return true;
}
void Engine::clearInput()
{
- for (int i = 0 ; i < 350 ; i++)
- keyState[i] = 0;
+ memset(keyState, 0, sizeof keyState);
mouseLeft = mouseRight = 0;
}
{
int update = 0;
- if (keyState[SDLK_UP])
+ if (keyState[SDL_SCANCODE_UP])
{
highlightWidget(-1);
update = 1;
clearInput();
}
- if (keyState[SDLK_DOWN])
+ if (keyState[SDL_SCANCODE_DOWN])
{
highlightWidget(1);
update = 1;
clearInput();
}
- if (keyState[SDLK_LEFT] && (highlightedWidget->type != WG_BUTTON && highlightedWidget->type != WG_JOYPAD))
+ if (keyState[SDL_SCANCODE_LEFT] && (highlightedWidget->type != WG_BUTTON && highlightedWidget->type != WG_JOYPAD))
{
SDL_Delay(1);
clearInput();
}
- if (keyState[SDLK_RIGHT] && (highlightedWidget->type != WG_BUTTON && highlightedWidget->type != WG_JOYPAD))
+ if (keyState[SDL_SCANCODE_RIGHT] && (highlightedWidget->type != WG_BUTTON && highlightedWidget->type != WG_JOYPAD))
{
SDL_Delay(1);
clearInput();
}
- if ((keyState[SDLK_RETURN]) || (keyState[SDLK_SPACE]) || (keyState[SDLK_LCTRL]))
+ if ((keyState[SDL_SCANCODE_RETURN]) || (keyState[SDL_SCANCODE_SPACE]) || (keyState[SDL_SCANCODE_LCTRL]))
{
if (highlightedWidget->value == NULL)
{
int extremeAvailable;
- char keyState[350];
+ char keyState[SDL_NUM_SCANCODES];
char mouseLeft, mouseRight;
int joyX, joyY;
fontForeground.r = fontForeground.g = fontForeground.b = 0xff;
fontBackground.r = fontBackground.g = fontBackground.b = 0x00;
- fontForeground.unused = fontBackground.unused = 0;
-
fadeBlack = alphaRect(640, 480, 0x00, 0x00, 0x00);
infoBar = alphaRect(640, 25, 0x00, 0x00, 0x00);
void Graphics::setTransparent(SDL_Surface *sprite)
{
- SDL_SetColorKey(sprite, (SDL_SRCCOLORKEY|SDL_RLEACCEL), SDL_MapRGB(sprite->format, 0, 0, 0));
+ SDL_SetColorKey(sprite, SDL_RLEACCEL, SDL_MapRGB(sprite->format, 0, 0, 0));
}
bool Graphics::canShowMedalMessage() const
}
}
- SDL_Flip(screen);
- SDL_Delay(1);
+ SDL_UpdateTexture(texture, NULL, screen->pixels, screen->w * 4);
+ SDL_RenderCopy(renderer, texture, NULL, NULL);
+ SDL_RenderPresent(renderer);
if (takeRandomScreenShots)
{
SDL_Delay(16);
}
- if (engine->keyState[SDLK_F12])
+ if (engine->keyState[SDL_SCANCODE_F12])
{
snprintf(screenshot, sizeof screenshot, "screenshots/screenshot%.3d.bmp", screenShotNumber);
SDL_SaveBMP(screen, screenshot);
screenShotNumber++;
- engine->keyState[SDLK_F12] = 0;
+ engine->keyState[SDL_SCANCODE_F12] = 0;
}
- if ((engine->keyState[SDLK_F10]) || ((engine->keyState[SDLK_RETURN]) && (engine->keyState[SDLK_LALT])))
+ if ((engine->keyState[SDL_SCANCODE_F10]) || ((engine->keyState[SDL_SCANCODE_RETURN]) && (engine->keyState[SDL_SCANCODE_LALT])))
{
- SDL_WM_ToggleFullScreen(screen);
engine->fullScreen = !engine->fullScreen;
+ SDL_SetWindowFullscreen(window, engine->fullScreen ? SDL_WINDOW_FULLSCREEN_DESKTOP : 0);
- engine->keyState[SDLK_F10] = engine->keyState[SDLK_LALT] = engine->keyState[SDLK_RETURN] = 0;
+ engine->keyState[SDL_SCANCODE_F10] = engine->keyState[SDL_SCANCODE_LALT] = engine->keyState[SDL_SCANCODE_RETURN] = 0;
}
}
{
unsigned long then = SDL_GetTicks();
- engine->keyState[SDLK_ESCAPE] = 0;
+ engine->keyState[SDL_SCANCODE_ESCAPE] = 0;
while (true)
{
engine->getInput();
/*
- if (engine->keyState[SDLK_ESCAPE])
+ if (engine->keyState[SDL_SCANCODE_ESCAPE])
{
break;
}
if (!image)
showErrorAndExit(ERR_FILE, filename);
- newImage = SDL_DisplayFormat(image);
+ newImage = SDL_ConvertSurface(image, screen->format, 0);
if (newImage)
{
}
if(srcalpha)
- SDL_SetAlpha(newImage, SDL_SRCALPHA, 255);
+ SDL_SetSurfaceAlphaMod(newImage, 255);
else
setTransparent(newImage);
}
}
- newImage = SDL_DisplayFormat(image);
+ newImage = SDL_ConvertSurface(image, screen->format, 0);
if (newImage)
{
void Graphics::fade(int amount)
{
- SDL_SetAlpha(fadeBlack, SDL_SRCALPHA|SDL_RLEACCEL, amount);
+ SDL_SetSurfaceAlphaMod(fadeBlack, amount);
blit(fadeBlack, 0, 0, screen, false);
}
while (start < 50)
{
- SDL_SetAlpha(fadeBlack, SDL_SRCALPHA|SDL_RLEACCEL, start);
+ SDL_SetSurfaceAlphaMod(fadeBlack, start);
blit(fadeBlack, 0, 0, screen, false);
delay(60);
start++;
{
if ((i < MAP_EXITSIGN) || (i >= MAP_WATERANIM))
{
- SDL_SetAlpha(tile[i], SDL_SRCALPHA|SDL_RLEACCEL, 130);
+ SDL_SetSurfaceAlphaMod(tile[i], 130);
}
}
else
fontBackground.r = red2;
fontBackground.g = green2;
fontBackground.b = blue2;
-
- fontForeground.unused = fontBackground.unused = 0;
}
void Graphics::setFontSize(int size)
if (surface == NULL)
showErrorAndExit("CreateRGBSurface failed: %s\n", SDL_GetError());
- newImage = SDL_DisplayFormat(surface);
+ newImage = SDL_ConvertSurface(surface, screen->format, 0);
SDL_FreeSurface(surface);
SDL_FillRect(surface, NULL, SDL_MapRGB(surface->format, red, green, blue));
- SDL_SetAlpha(surface, SDL_SRCALPHA|SDL_RLEACCEL, 130);
+ SDL_SetSurfaceAlphaMod(surface, 130);
return surface;
}
blit(alpha, 0, 0, image, false);
- SDL_SetColorKey(image, (SDL_SRCCOLORKEY|SDL_RLEACCEL), SDL_MapRGB(image->format, red / 2, green / 2, blue / 2));
+ SDL_SetColorKey(image, SDL_RLEACCEL, SDL_MapRGB(image->format, red / 2, green / 2, blue / 2));
}
void Graphics::lock(SDL_Surface *surface)
{
updateScreen();
engine->getInput();
- if (engine->keyState[SDLK_ESCAPE])
+ if (engine->keyState[SDL_SCANCODE_ESCAPE])
exit(1);
SDL_Delay(16);
}
{
updateScreen();
engine->getInput();
- if (engine->keyState[SDLK_ESCAPE])
+ if (engine->keyState[SDL_SCANCODE_ESCAPE])
{
exit(1);
}
updateScreen();
engine->getInput();
- if (engine->keyState[SDLK_ESCAPE])
+ if (engine->keyState[SDL_SCANCODE_ESCAPE])
{
return;
}
- else if (engine->keyState[SDLK_SPACE])
+ else if (engine->keyState[SDL_SCANCODE_SPACE])
{
exit(0);
}
bool takeRandomScreenShots;
+ SDL_Window *window;
+ SDL_Renderer *renderer;
+ SDL_Texture *texture;
SDL_Surface *screen, *background;
SDL_Surface *tile[MAX_TILES];
void Keyboard::setDefaultKeys()
{
- control[CONTROL::LEFT] = SDLK_LEFT;
- control[CONTROL::RIGHT] = SDLK_RIGHT;
- control[CONTROL::DOWN] = SDLK_DOWN;
- control[CONTROL::JUMP] = SDLK_UP;
+ control[CONTROL::LEFT] = SDL_SCANCODE_LEFT;
+ control[CONTROL::RIGHT] = SDL_SCANCODE_RIGHT;
+ control[CONTROL::DOWN] = SDL_SCANCODE_DOWN;
+ control[CONTROL::JUMP] = SDL_SCANCODE_UP;
control[CONTROL::UP] = 0;
- control[CONTROL::FIRE] = SDLK_LCTRL;
- control[CONTROL::JETPACK] = SDLK_SPACE;
- control[CONTROL::PAUSE] = SDLK_p;
- control[CONTROL::MAP] = SDLK_TAB;
+ control[CONTROL::FIRE] = SDL_SCANCODE_LCTRL;
+ control[CONTROL::JETPACK] = SDL_SCANCODE_SPACE;
+ control[CONTROL::PAUSE] = SDL_SCANCODE_P;
+ control[CONTROL::MAP] = SDL_SCANCODE_TAB;
}
const char *Keyboard::translateKey(int key)
return "...";
}
- strlcpy(keyName, _(SDL_GetKeyName((SDLKey)key)), sizeof keyName);
+ strlcpy(keyName, _(SDL_GetKeyName(key)), sizeof keyName);
/*
This is not really neccessary, but it just makes
while (*c != '\0')
{
- if ((*c >= SDLK_a) && (*c <= SDLK_z))
+ if ((*c >= SDL_SCANCODE_A) && (*c <= SDL_SCANCODE_Z))
{
if (uppercase)
{
uppercase = false;
}
}
- else if (*c == SDLK_SPACE)
+ else if (*c == SDL_SCANCODE_SPACE)
{
uppercase = true;
}
float panelAlpha = 0;
- SDL_SetAlpha(panel, SDL_SRCALPHA|SDL_RLEACCEL, 0);
+ SDL_SetSurfaceAlphaMod(panel, 0);
engine.clearInput();
engine.flushInput();
if (panelAlpha < 256)
{
panelAlpha += (1 * engine.getTimeDifference());
- SDL_SetAlpha(panel, SDL_SRCALPHA|SDL_RLEACCEL, (int)panelAlpha);
+ SDL_SetSurfaceAlphaMod(panel, panelAlpha);
if (image != NULL)
{
- SDL_SetAlpha(image, SDL_SRCALPHA|SDL_RLEACCEL, (int)panelAlpha);
+ SDL_SetSurfaceAlphaMod(image, panelAlpha);
graphics.blit(image, 0, 0, graphics.screen, false);
}
graphics.blit(panel, 0, 390, graphics.screen, false);
Math::addBit(&map.boss[0]->flags, ENT_AIMS);
- SDL_SetAlpha(graphics.getSprite("GaldovInvsLeft", true)->image[0], SDL_SRCALPHA|SDL_RLEACCEL, 100);
- SDL_SetAlpha(graphics.getSprite("GaldovInvsRight", true)->image[0], SDL_SRCALPHA|SDL_RLEACCEL, 100);
+ SDL_SetSurfaceAlphaMod(graphics.getSprite("GaldovInvsLeft", true)->image[0], 100);
+ SDL_SetSurfaceAlphaMod(graphics.getSprite("GaldovInvsRight", true)->image[0], 100);
for (int i = 1 ; i < 10 ; i++)
{
engine.getInput();
config.populate();
- if ((config.isControl(CONTROL::PAUSE)) || (engine.keyState[SDLK_ESCAPE]))
+ if ((config.isControl(CONTROL::PAUSE)) || (engine.keyState[SDL_SCANCODE_ESCAPE]))
{
- engine.keyState[SDLK_ESCAPE] = 0;
+ engine.keyState[SDL_SCANCODE_ESCAPE] = 0;
config.resetControl(CONTROL::PAUSE);
break;
}
doParticles();
- if ((SDL_GetAppState() & SDL_APPINPUTFOCUS) == 0)
- {
- engine.paused = true;
- }
-
replayData.set(config.command);
replayData.commit();
}
SDL_Surface *panel = graphics.createSurface(400, 300);
SDL_Surface *panelBack = graphics.alphaRect(400, 300, 0x00, 0x00, 0x00);
- SDL_SetColorKey(panel, (SDL_SRCCOLORKEY|SDL_RLEACCEL), SDL_MapRGB(panel->format, 0, 0, 0));
+ SDL_SetColorKey(panel, SDL_RLEACCEL, SDL_MapRGB(panel->format, 0, 0, 0));
graphics.drawRect(1, 1, 398, 298, graphics.black, graphics.white, panelBack);
doStatusBar();
doMusicInfo(cur - start);
- if ((engine.keyState[SDLK_ESCAPE]) && (game.missionOver == 0))
+ if ((engine.keyState[SDL_SCANCODE_ESCAPE]) && (game.missionOver == 0))
{
if (replayData.replayMode == REPLAY_MODE::NONE)
{
SDL_Delay(16);
}
- if ((engine.keyState[SDLK_F3]) && (engine.cheatSkipLevel))
+ if ((engine.keyState[SDL_SCANCODE_F3]) && (engine.cheatSkipLevel))
{
autoCompleteAllObjectives(true);
- engine.keyState[SDLK_F3] = 0;
+ engine.keyState[SDL_SCANCODE_F3] = 0;
engine.setInfoMessage("Skipping Mission...", 2, INFO_OBJECTIVE);
}
#if DEBUG
- if (engine.keyState[SDLK_F1])
+ if (engine.keyState[SDL_SCANCODE_F1])
{
autoCompleteAllObjectives(false);
}
engine.delay(frameLimit);
}
- if (engine.keyState[SDLK_F5])
+ if (engine.keyState[SDL_SCANCODE_F5])
{
replayData.fast = !replayData.fast;
- engine.keyState[SDLK_F5] = 0;
+ engine.keyState[SDL_SCANCODE_F5] = 0;
}
frameLimit = SDL_GetTicks() + 16;
extern DECLSPEC int SDLCALL SDL_GetGamma(float *red, float *green, float *blue);
#endif
#else
-#include "SDL/SDL.h"
-#include "SDL/SDL_image.h"
-#include "SDL/SDL_mixer.h"
-#include "SDL/SDL_ttf.h"
-#include "SDL/SDL_net.h"
+#include "SDL2/SDL.h"
+#include "SDL2/SDL_image.h"
+#include "SDL2/SDL_mixer.h"
+#include "SDL2/SDL_ttf.h"
+#include "SDL2/SDL_net.h"
#endif
#ifndef WIN32
// Collisions for Panel Buttons
if ((showMIAs) || (showStats))
{
- // SDLK_LCTRL is the "fire" button.
+ // SDL_SCANCODE_LCTRL is the "fire" button.
if (engine.mouseLeft || config.isControl(CONTROL::FIRE))
{
if (Collision::collision(engine.getMouseX(), engine.getMouseY(), 1, 1, 270, 310, 32, 32))
graphics.updateScreen();
engine.getInput();
config.populate();
- if (engine.keyState[SDLK_SPACE])
+ if (engine.keyState[SDL_SCANCODE_SPACE])
break;
SDL_Delay(16);
}
exit(1);
}
- if (!engine.fullScreen)
- {
- graphics.screen = SDL_SetVideoMode(640, 480, 0, SDL_DOUBLEBUF | SDL_HWPALETTE);
- }
- else
- {
- graphics.screen = SDL_SetVideoMode(640, 480, 0, SDL_DOUBLEBUF | SDL_HWPALETTE | SDL_FULLSCREEN);
- }
+ graphics.screen = SDL_CreateRGBSurface(0, 640, 480, 32, 0xff0000, 0xff00, 0xff, 0xff000000);
- if (graphics.screen == NULL)
+ graphics.window = SDL_CreateWindow("Blobwars: Metal Blob Solid", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, graphics.screen->w, graphics.screen->h, 0);
+ SDL_SetWindowFullscreen(graphics.window, engine.fullScreen ? SDL_WINDOW_FULLSCREEN_DESKTOP : 0);
+ graphics.renderer = SDL_CreateRenderer(graphics.window, -1, 0);
+ SDL_RenderSetLogicalSize(graphics.renderer, graphics.screen->w, graphics.screen->h);
+ graphics.texture = SDL_CreateTexture(graphics.renderer, SDL_PIXELFORMAT_ARGB8888, SDL_TEXTUREACCESS_STREAMING, graphics.screen->w, graphics.screen->h);
+
+ if (graphics.window == NULL)
{
printf("Couldn't set 640x480 video mode: %s\n", SDL_GetError());
exit(1);
// This (attempts to) set the gamma correction. We attempt to catch an error here
// in case someone has done something really stupid in the config file(!!)
- if (game.brightness != -1) {
- Math::limitInt(&game.brightness, 1, 20);
- float brightness = game.brightness;
- brightness /= 10;
- SDL_SetGamma(brightness, brightness, brightness);
- }
+ if (game.brightness != -1) {
+ Math::limitInt(&game.brightness, 1, 20);
+ float brightness = game.brightness;
+ brightness /= 10;
+ uint16_t ramp[256];
+ SDL_CalculateGammaRamp(brightness, ramp);
+ SDL_SetWindowGammaRamp(graphics.window, ramp, ramp, ramp);
+ }
if (TTF_Init() < 0)
{
SDL_Surface *device = graphics.loadImage("gfx/main/alienDevice.png");
-#ifndef FRAMEWORK_SDL
- SDL_WM_SetIcon(device, NULL);
-#endif
- SDL_WM_SetCaption("Blob Wars : Metal Blob Solid", "Blob Wars");
- SDL_EnableKeyRepeat(350, 80);
-
SDL_FreeSurface(device);
if (strstr(engine.userHomeDirectory, "/root"))
}
else
{
- SDL_Thread *thread = SDL_CreateThread(initMedalService, NULL);
+ SDL_Thread *thread = SDL_CreateThread(initMedalService, "MedalService", NULL);
if (thread == NULL)
{
SDL_JoystickEventState(SDL_DISABLE);
for (int i = 0 ; i < SDL_NumJoysticks() ; i++)
{
- debug(("Closing Joystick #%d - %s...\n", i, SDL_JoystickName(i)));
+ debug(("Closing Joystick #%d\n", i));
SDL_JoystickClose(config.sdlJoystick);
}
}
graphics.updateScreen();
engine.getInput();
config.populate();
- if (engine.keyState[SDLK_ESCAPE])
+ if (engine.keyState[SDL_SCANCODE_ESCAPE])
break;
SDL_Delay(16);
}
SDL_Surface *panel = graphics.createSurface(320, 240);
SDL_Surface *background = graphics.loadImage("gfx/main/mapBackground.png");
- SDL_SetAlpha(background, SDL_SRCALPHA|SDL_RLEACCEL, 130);
+ SDL_SetSurfaceAlphaMod(background, 130);
graphics.blit(background, 0, 0, panel, false);
graphics.drawRect(160, 120, 320, 240, graphics.black, graphics.white, graphics.screen);
graphics.blit(panel, 160, 120, graphics.screen, false);
- if ((config.isControl(CONTROL::MAP)) || (config.isControl(CONTROL::PAUSE)) || (engine.keyState[SDLK_ESCAPE]))
+ if ((config.isControl(CONTROL::MAP)) || (config.isControl(CONTROL::PAUSE)) || (engine.keyState[SDL_SCANCODE_ESCAPE]))
{
break;
}
debug(("Setting Alpha for Tile %d\n", param[0]));
- SDL_SetAlpha(graphics.tile[param[0]], SDL_SRCALPHA|SDL_RLEACCEL, 130);
+ SDL_SetSurfaceAlphaMod(graphics.tile[param[0]], 130);
while (true)
{
{
SDL_FillRect(graphics.screen, NULL, graphics.black);
- engine.keyState[SDLK_SPACE] = 0;
+ engine.keyState[SDL_SCANCODE_SPACE] = 0;
int moveTimer = 0;
while (true)
engine.getInput();
config.populate();
- if (engine.keyState[SDLK_SPACE])
+ if (engine.keyState[SDL_SCANCODE_SPACE])
break;
for (int x = 0 ; x < MAPWIDTH ; x++)
if (moveTimer == 0)
{
- if (engine.keyState[SDLK_LEFT])
+ if (engine.keyState[SDL_SCANCODE_LEFT])
*mapX -= 1;
- if (engine.keyState[SDLK_RIGHT])
+ if (engine.keyState[SDL_SCANCODE_RIGHT])
*mapX += 1;
- if (engine.keyState[SDLK_UP])
+ if (engine.keyState[SDL_SCANCODE_UP])
*mapY -= 1;
- if (engine.keyState[SDLK_DOWN])
+ if (engine.keyState[SDL_SCANCODE_DOWN])
*mapY += 1;
}
SDL_Delay(16);
}
- engine.keyState[SDLK_SPACE] = 0;
+ engine.keyState[SDL_SCANCODE_SPACE] = 0;
}
int nextBlock(int current, int dir)
}
}
- engine.keyState[SDLK_F1] = 0;
+ engine.keyState[SDL_SCANCODE_F1] = 0;
}
void fillHorizontal(int block, int x, int y)
if (allowMove == 0)
{
- if (engine.keyState[SDLK_UP]) {mapY--; allowMove = MOVESPEED;}
- if (engine.keyState[SDLK_DOWN]) {mapY++; allowMove = MOVESPEED;}
- if (engine.keyState[SDLK_LEFT]) {mapX--; allowMove = MOVESPEED;}
- if (engine.keyState[SDLK_RIGHT]) {mapX++; allowMove = MOVESPEED;}
+ if (engine.keyState[SDL_SCANCODE_UP]) {mapY--; allowMove = MOVESPEED;}
+ if (engine.keyState[SDL_SCANCODE_DOWN]) {mapY++; allowMove = MOVESPEED;}
+ if (engine.keyState[SDL_SCANCODE_LEFT]) {mapX--; allowMove = MOVESPEED;}
+ if (engine.keyState[SDL_SCANCODE_RIGHT]) {mapX++; allowMove = MOVESPEED;}
- if (engine.keyState[SDLK_PAGEDOWN]) {mapY += 10; allowMove = MOVESPEED;}
- if (engine.keyState[SDLK_PAGEUP]) {mapY -= 10; allowMove = MOVESPEED;}
+ if (engine.keyState[SDL_SCANCODE_PAGEDOWN]) {mapY += 10; allowMove = MOVESPEED;}
+ if (engine.keyState[SDL_SCANCODE_PAGEUP]) {mapY -= 10; allowMove = MOVESPEED;}
- if (engine.keyState[SDLK_1]) editing = 0;
- if (engine.keyState[SDLK_2]) editing = 1;
- if (engine.keyState[SDLK_3]) editing = 2;
+ if (engine.keyState[SDL_SCANCODE_1]) editing = 0;
+ if (engine.keyState[SDL_SCANCODE_2]) editing = 1;
+ if (engine.keyState[SDL_SCANCODE_3]) editing = 2;
- if (engine.keyState[SDLK_0]) fillHorizontal(currentBlock, mapX + x, mapY + y);
+ if (engine.keyState[SDL_SCANCODE_0]) fillHorizontal(currentBlock, mapX + x, mapY + y);
- if (engine.keyState[SDLK_F1]) addTileDecoration();
+ if (engine.keyState[SDL_SCANCODE_F1]) addTileDecoration();
- if (engine.keyState[SDLK_ESCAPE]) break;
+ if (engine.keyState[SDL_SCANCODE_ESCAPE]) break;
}
- if (engine.keyState[SDLK_PERIOD])
+ if (engine.keyState[SDL_SCANCODE_PERIOD])
{
switch (editing)
{
break;
}
- engine.keyState[SDLK_PERIOD] = 0;
+ engine.keyState[SDL_SCANCODE_PERIOD] = 0;
}
- if (engine.keyState[SDLK_COMMA])
+ if (engine.keyState[SDL_SCANCODE_COMMA])
{
switch (editing)
{
break;
}
- engine.keyState[SDLK_COMMA] = 0;
+ engine.keyState[SDL_SCANCODE_COMMA] = 0;
}
Math::limitInt(¤tMonster, 0, MAX_ENEMIES - 1);
if (defItem[currentItem].sprite[0] == NULL)
currentItem = 0;
- if (engine.keyState[SDLK_SPACE]) {showMap(&mapX, &mapY);}
+ if (engine.keyState[SDL_SCANCODE_SPACE]) {showMap(&mapX, &mapY);}
- if (engine.keyState[SDLK_s]) {saveMap(game.mapName); engine.keyState[SDLK_s] = 0;}
+ if (engine.keyState[SDL_SCANCODE_s]) {saveMap(game.mapName); engine.keyState[SDL_SCANCODE_s] = 0;}
if (mapX < 0) mapX = 0;
if (mapY < 0) mapY = 0;
graphics.loadBackground("gfx/main/areaClearBackGround.jpg");
SDL_Surface *panel = graphics.alphaRect(550, 420, 0x00, 0x00, 0x00);
- SDL_SetAlpha(panel, SDL_SRCALPHA|SDL_RLEACCEL, 180);
+ SDL_SetSurfaceAlphaMod(panel, 180);
graphics.drawRect(1, 1, panel->w - 2, panel->h - 2 , graphics.black, graphics.white, panel);
graphics.blit(panel, (640 - panel->w) / 2, (480 - panel->h) / 2, graphics.background, false);
drawWidgets();
}
- if (engine.keyState[SDLK_ESCAPE])
+ if (engine.keyState[SDL_SCANCODE_ESCAPE])
{
engine.clearInput();
engine.flushInput();
defaults = 0;
}
- if (engine.keyState[SDLK_ESCAPE])
+ if (engine.keyState[SDL_SCANCODE_ESCAPE])
{
engine.clearInput();
engine.flushInput();
graphics.blit(header, 320, 25, graphics.screen, true);
drawWidgets();
- if (engine.keyState[SDLK_ESCAPE])
+ if (engine.keyState[SDL_SCANCODE_ESCAPE])
{
engine.clearInput();
engine.flushInput();
audio.setMusicVolume(game.musicVol);
if (engine.widgetChanged("fullscreen"))
- SDL_WM_ToggleFullScreen(graphics.screen);
+ SDL_SetWindowFullscreen(graphics.window, engine.fullScreen ? SDL_WINDOW_FULLSCREEN_DESKTOP : 0);
if (engine.widgetChanged("gamma"))
{
brightness = game.brightness;
- if (brightness > 0) {
- brightness /= 10;
- SDL_SetGamma(brightness, brightness, brightness);
- }
+ if (brightness > 0) {
+ brightness /= 10;
+ uint16_t ramp[256];
+ SDL_CalculateGammaRamp(brightness, ramp);
+ SDL_SetWindowGammaRamp(graphics.window, ramp, ramp, ramp);
+ }
}
if ((joysticks) || (cheats) || (keys))
drawWidgets();
}
- if (engine.keyState[SDLK_ESCAPE])
+ if (engine.keyState[SDL_SCANCODE_ESCAPE])
{
engine.clearInput();
engine.flushInput();
char *data = new char[128];
strlcpy(data, tname, 128);
- SDL_Thread *thread = SDL_CreateThread(medalWorker, (void*)data);
+ SDL_Thread *thread = SDL_CreateThread(medalWorker, "MedalWorker", (void*)data);
if (thread == NULL)
{
}
#if DEBUG
- if (engine.keyState[SDLK_1])
+ if (engine.keyState[SDL_SCANCODE_1])
player.currentWeapon = &weapon[WP_PISTOL];
- else if (engine.keyState[SDLK_2])
+ else if (engine.keyState[SDL_SCANCODE_2])
player.currentWeapon = &weapon[WP_MACHINEGUN];
- else if (engine.keyState[SDLK_3])
+ else if (engine.keyState[SDL_SCANCODE_3])
player.currentWeapon = &weapon[WP_GRENADES];
- else if (engine.keyState[SDLK_4])
+ else if (engine.keyState[SDL_SCANCODE_4])
player.currentWeapon = &weapon[WP_LASER];
- else if (engine.keyState[SDLK_5])
+ else if (engine.keyState[SDL_SCANCODE_5])
player.currentWeapon = &weapon[WP_SPREAD];
#endif
snprintf(v, sizeof v, _("Version %s"), STRINGIFY_VALUE(VERSION));
SDL_Surface *version = graphics.quickSprite("Version", graphics.getString(v, true));
- SDL_SetAlpha(title, SDL_SRCALPHA|SDL_RLEACCEL, 0);
+ SDL_SetSurfaceAlphaMod(title, 0);
audio.loadMusic("music/title");
graphics.loadBackground("gfx/main/CircuitBoard.jpg");
- SDL_SetAlpha(graphics.background, SDL_SRCALPHA|SDL_RLEACCEL, 0);
+ SDL_SetSurfaceAlphaMod(graphics.background, 0);
int startNewGame, options, quit, help, easy, normal, hard, extreme, back, practice;
int load, cont, save[5], slot[6];
engine.clearInput();
backAlpha = 255;
titleAlpha = 255;
- SDL_SetAlpha(graphics.background, SDL_SRCALPHA|SDL_RLEACCEL, (int)backAlpha);
- SDL_SetAlpha(title, SDL_SRCALPHA|SDL_RLEACCEL, (int)titleAlpha);
+ SDL_SetSurfaceAlphaMod(graphics.background, backAlpha);
+ SDL_SetSurfaceAlphaMod(title, titleAlpha);
}
}
if (backAlpha < 255)
{
backAlpha++;
- SDL_SetAlpha(graphics.background, SDL_SRCALPHA|SDL_RLEACCEL, (int)backAlpha);
+ SDL_SetSurfaceAlphaMod(graphics.background, backAlpha);
}
}
if (titleAlpha < 255)
{
titleAlpha++;
- SDL_SetAlpha(title, SDL_SRCALPHA|SDL_RLEACCEL, (int)titleAlpha);
+ SDL_SetSurfaceAlphaMod(title, titleAlpha);
}
else
{
if (save[3]) {load = 4; break;}
if (save[4]) {load = 5; break;}
- if (engine.keyState[SDLK_ESCAPE])
+ if (engine.keyState[SDL_SCANCODE_ESCAPE])
{
audio.playMenuSound(2);
back = 1;