Browse Source

Clean up SDL error logging

pull/124/head
Anders Jenbo 7 years ago
parent
commit
0f8545d3c4
  1. 7
      SourceX/DiabloUI/credits.cpp
  2. 35
      SourceX/DiabloUI/diabloui.cpp
  3. 13
      SourceX/DiabloUI/progress.cpp
  4. 44
      SourceX/miniwin/ddraw.cpp
  5. 12
      SourceX/miniwin/dsound.cpp
  6. 42
      SourceX/miniwin/misc.cpp
  7. 7
      SourceX/miniwin/misc_dx.cpp
  8. 60
      SourceX/miniwin/thread.cpp
  9. 12
      SourceX/sound.cpp
  10. 85
      SourceX/storm/storm.cpp
  11. 4
      SourceX/storm/storm_dx.cpp

7
SourceX/DiabloUI/credits.cpp

@ -1,7 +1,8 @@
#include "devilution.h"
#include "DiabloUI/diabloui.h"
#include "miniwin/ddraw.h"
#include "DiabloUI/diabloui.h"
#define CREDIT_LINES 13
namespace dvl {
@ -523,7 +524,9 @@ void credts_Render()
if (text_surface) {
SDL_Rect src_rect = { 0, -y, SCREEN_WIDTH, 251 };
SDL_Rect dsc_rect = { 64 + x, 160 + 114, SCREEN_WIDTH, SCREEN_HEIGHT };
SDL_BlitSurface(text_surface, &src_rect, pal_surface, &dsc_rect);
if (SDL_BlitSurface(text_surface, &src_rect, pal_surface, &dsc_rect) <= -1) {
SDL_Log(SDL_GetError());
}
SDL_FreeSurface(text_surface);
}
}

35
SourceX/DiabloUI/diabloui.cpp

@ -1,10 +1,10 @@
#include <string>
#include "devilution.h"
#include "DiabloUI/diabloui.h"
#include "miniwin/ddraw.h"
#include "utf8.h"
#include "stubs.h"
#include "utf8.h"
#include <string>
#include "DiabloUI/diabloui.h"
namespace dvl {
@ -19,10 +19,10 @@ Art ArtBackground;
Art ArtCursor;
Art ArtHero;
void(*gfnSoundFunction)(char *file);
void(*gfnListFocus)(int value);
void(*gfnListSelect)(int value);
void(*gfnListEsc)();
void (*gfnSoundFunction)(char *file);
void (*gfnListFocus)(int value);
void (*gfnListSelect)(int value);
void (*gfnListEsc)();
UI_Item *gUiItems;
int gUiItemCnt;
bool UiItemsWraps;
@ -103,7 +103,12 @@ int DialogBoxParam(HINSTANCE hInstance, LPCSTR msgId, HWND hWndParent, DLGPROC l
char text[1024];
snprintf(text, 1024, errorMessages[(intptr_t)msgId], dwInitParam);
return SDL_ShowSimpleMessageBox(SDL_MESSAGEBOX_ERROR, errorTitle[(intptr_t)msgId], text, window) < 0 ? -1 : 0;
if (SDL_ShowSimpleMessageBox(SDL_MESSAGEBOX_ERROR, errorTitle[(intptr_t)msgId], text, window) <= -1) {
SDL_Log(SDL_GetError());
return -1;
}
return 0;
}
BOOL SetDlgItemText(HWND hDlg, int nIDDlgItem, LPCSTR lpString)
@ -133,7 +138,7 @@ void UiDestroy()
font = NULL;
}
void UiInitList(int min, int max, void(*fnFocus)(int value), void(*fnSelect)(int value), void(*fnEsc)(), UI_Item *items, int itemCnt, bool itemsWraps)
void UiInitList(int min, int max, void (*fnFocus)(int value), void (*fnSelect)(int value), void (*fnEsc)(), UI_Item *items, int itemCnt, bool itemsWraps)
{
SelectedItem = min;
SelectedItemMin = min;
@ -242,7 +247,11 @@ bool UiFocusNavigation(SDL_Event *event)
switch (event->key.keysym.sym) {
case SDLK_v:
if (SDL_GetModState() & KMOD_CTRL) {
selhero_CatToName(SDL_GetClipboardText(), UiTextInput, UiTextInputLen);
char *clipboard = SDL_GetClipboardText();
if (clipboard == NULL) {
SDL_Log(SDL_GetError());
}
selhero_CatToName(clipboard, UiTextInput, UiTextInputLen);
}
return true;
case SDLK_BACKSPACE:
@ -688,7 +697,9 @@ void UiRenderItemDebug(UI_Item item)
{
item.rect.x += 64; // pal_surface is shifted?
item.rect.y += 160;
SDL_FillRect(pal_surface, &item.rect, random(0, 255));
if (SDL_FillRect(pal_surface, &item.rect, random(0, 255)) <= -1) {
SDL_Log(SDL_GetError());
}
}
void DrawSelector(UI_Item *item = 0)

13
SourceX/DiabloUI/progress.cpp

@ -1,7 +1,8 @@
#include "devilution.h"
#include "DiabloUI/diabloui.h"
#include "miniwin/ddraw.h"
#include "DiabloUI/diabloui.h"
namespace dvl {
Art ArtPopupSm;
@ -63,14 +64,18 @@ void progress_Render(BYTE progress)
if (msgSurface) {
SDL_Rect dsc_rect = { 64 + x + 50, 160 + y + 8, SCREEN_WIDTH, SCREEN_HEIGHT };
SDL_BlitSurface(msgSurface, NULL, pal_surface, &dsc_rect);
if (SDL_BlitSurface(msgSurface, NULL, pal_surface, &dsc_rect) <= -1) {
SDL_Log(SDL_GetError());
}
dsc_rect.x = 64 + GetCenterOffset(textWidth) - 1;
dsc_rect.y = 160 + y + 99 + 4;
SDL_BlitSurface(cancleSurface, NULL, pal_surface, &dsc_rect);
if (SDL_BlitSurface(cancleSurface, NULL, pal_surface, &dsc_rect) <= -1) {
SDL_Log(SDL_GetError());
}
}
}
BOOL UiProgressDialog(HWND window, char *msg, int enable, int(*fnfunc)(), int rate)
BOOL UiProgressDialog(HWND window, char *msg, int enable, int (*fnfunc)(), int rate)
{
progress_Load(msg);

44
SourceX/miniwin/ddraw.cpp

@ -1,10 +1,9 @@
#include "devilution.h"
#include "miniwin/ddraw.h"
#include "stubs.h"
#include <SDL.h>
#include "DiabloUI/diabloui.h"
#include "devilution.h"
#include "stubs.h"
namespace dvl {
@ -44,7 +43,7 @@ HRESULT StubDraw::CreatePalette(DWORD dwFlags, LPPALETTEENTRY lpColorTable, LPDI
palette = SDL_AllocPalette(256);
if (palette == NULL) {
SDL_Log("SDL_AllocPalette: %s\n", SDL_GetError());
SDL_Log(SDL_GetError());
return (HRESULT)0x80000002L; //DDERR_OUTOFMEMORY
}
@ -62,14 +61,16 @@ HRESULT StubDraw::CreateSurface(LPDDSURFACEDESC lpDDSurfaceDesc, LPDIRECTDRAWSUR
lpDDSurfaceDesc->ddpfPixelFormat.dwRGBBitCount = 32;
if (renderer) {
SDL_GetRendererOutputSize(renderer, (int *)&lpDDSurfaceDesc->dwWidth, (int *)&lpDDSurfaceDesc->dwHeight);
if (SDL_GetRendererOutputSize(renderer, (int *)&lpDDSurfaceDesc->dwWidth, (int *)&lpDDSurfaceDesc->dwHeight) <= -1) {
SDL_Log(SDL_GetError());
}
surface = SDL_CreateRGBSurfaceWithFormat(0, lpDDSurfaceDesc->dwWidth, lpDDSurfaceDesc->dwHeight, lpDDSurfaceDesc->ddpfPixelFormat.dwRGBBitCount, lpDDSurfaceDesc->ddpfPixelFormat.dwFlags);
} else {
SDL_GetWindowSize(window, (int *)&lpDDSurfaceDesc->dwWidth, (int *)&lpDDSurfaceDesc->dwHeight);
surface = SDL_GetWindowSurface(window);
}
if (surface == NULL) {
SDL_Log("SDL_CreateRGBSurface: %s\n", SDL_GetError());
SDL_Log(SDL_GetError());
return (HRESULT)0x80000002L; //DDERR_OUTOFMEMORY
}
lpDDSurfaceDesc->lpSurface = (BYTE *)surface->pixels;
@ -79,7 +80,7 @@ HRESULT StubDraw::CreateSurface(LPDDSURFACEDESC lpDDSurfaceDesc, LPDIRECTDRAWSUR
pal_surface = SDL_CreateRGBSurfaceWithFormat(0, lpDDSurfaceDesc->dwWidth, lpDDSurfaceDesc->dwHeight, lpDDSurfaceDesc->ddpfPixelFormat.dwRGBBitCount, lpDDSurfaceDesc->ddpfPixelFormat.dwFlags);
if (pal_surface == NULL) {
SDL_Log("SDL_CreateRGBSurface: %s\n", SDL_GetError());
SDL_Log(SDL_GetError());
return (HRESULT)0x80000002L; //DDERR_OUTOFMEMORY
}
lpDDSurfaceDesc->lpSurface = (BYTE *)surface->pixels;
@ -87,8 +88,8 @@ HRESULT StubDraw::CreateSurface(LPDDSURFACEDESC lpDDSurfaceDesc, LPDIRECTDRAWSUR
gpBuffer = (BYTE *)pal_surface->pixels; // Hack should happen in dx.cpp, but gives error
if (SDL_SetSurfacePalette(pal_surface, palette) != 0) {
SDL_Log("SDL_SetSurfacePalette: %s\n", SDL_GetError());
if (SDL_SetSurfacePalette(pal_surface, palette) <= -1) {
SDL_Log(SDL_GetError());
return 1; //MAKE_HRESULT(130);//DVL_MAKE_HRESULT(130);
}
@ -144,8 +145,8 @@ HRESULT StubSurface::BltFast(DWORD dwX, DWORD dwY, LPDIRECTDRAWSURFACE lpDDSrcSu
SDL_Rect dst_rect = { (int)dwX, (int)dwY, w, h };
// Convert from 8-bit to 32-bit
if (SDL_BlitSurface(pal_surface, &src_rect, surface, &dst_rect) != 0) {
SDL_Log("SDL_BlitSurface: %s\n", SDL_GetError());
if (SDL_BlitSurface(pal_surface, &src_rect, surface, &dst_rect) <= -1) {
SDL_Log(SDL_GetError());
return DVL_E_FAIL;
}
@ -214,20 +215,27 @@ HRESULT StubSurface::Unlock(LPVOID lpSurfaceData)
}
if (renderer) {
if (SDL_UpdateTexture(texture, NULL, surface->pixels, surface->pitch) != 0) { //pitch is 2560
SDL_Log("SDL_UpdateTexture: %s\n", SDL_GetError());
if (SDL_UpdateTexture(texture, NULL, surface->pixels, surface->pitch) <= -1) { //pitch is 2560
SDL_Log(SDL_GetError());
}
// Clear buffer to avoid artifacts in case the window was resized
SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255); // TODO only do this if window was resized
SDL_RenderClear(renderer);
if (SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255) <= -1) { // TODO only do this if window was resized
SDL_Log(SDL_GetError());
}
if (SDL_RenderClear(renderer) <= -1) {
SDL_Log(SDL_GetError());
}
if (SDL_RenderCopy(renderer, texture, NULL, NULL) != 0) {
SDL_Log("SDL_RenderCopy: %s\n", SDL_GetError());
if (SDL_RenderCopy(renderer, texture, NULL, NULL) <= -1) {
SDL_Log(SDL_GetError());
}
SDL_RenderPresent(renderer);
} else {
SDL_UpdateWindowSurface(window);
if (SDL_UpdateWindowSurface(window) <= -1) {
SDL_Log(SDL_GetError());
}
}
bufferUpdated = false;

12
SourceX/miniwin/dsound.cpp

@ -1,9 +1,7 @@
#include "miniwin/dsound.h"
#include <SDL.h>
#include "devilution.h"
#include "miniwin/dsound.h"
#include "stubs.h"
#include <SDL.h>
namespace dvl {
@ -116,6 +114,10 @@ HRESULT DirectSoundBuffer::Stop()
HRESULT DirectSoundBuffer::Unlock(LPVOID pvAudioPtr1, DWORD dwAudioBytes1, LPVOID pvAudioPtr2, DWORD dwAudioBytes2)
{
SDL_RWops *rw = SDL_RWFromConstMem(pvAudioPtr1, dwAudioBytes1);
if (rw == NULL) {
SDL_Log(SDL_GetError());
}
chunk = Mix_LoadWAV_RW(rw, 1);
free(pvAudioPtr1);
@ -127,4 +129,4 @@ HRESULT DirectSoundBuffer::Restore()
return DVL_DS_OK;
};
} // namespace dvl
} // namespace dvl

42
SourceX/miniwin/misc.cpp

@ -1,10 +1,11 @@
#include <SDL.h>
#include "devilution.h"
#include "DiabloUI/diabloui.h"
#include "stubs.h"
#include "miniwin/ddraw.h"
#include "stubs.h"
#include <SDL.h>
#include <string>
#include "DiabloUI/diabloui.h"
#ifdef _MSC_VER
#define strcasecmp _stricmp
#define strncasecmp _strnicmp
@ -198,7 +199,8 @@ BOOL VerQueryValueA(LPCVOID pBlock, LPCSTR lpSubBlock, LPVOID *lplpBuffer, PUINT
DWORD GetCurrentDirectory(DWORD nBufferLength, LPTSTR lpBuffer)
{
char *base_path = SDL_GetBasePath();
if (!base_path) {
if (base_path == NULL) {
SDL_Log(SDL_GetError());
base_path = SDL_strdup("./");
}
eprintf("BasePath: %s\n", base_path);
@ -288,7 +290,9 @@ WINBOOL SetForegroundWindow(HWND hWnd)
*/
HWND SetFocus(HWND hWnd)
{
SDL_SetWindowInputFocus(window);
if (SDL_SetWindowInputFocus(window) <= -1) {
SDL_Log(SDL_GetError());
}
MainWndProc(NULL, DVL_WM_ACTIVATEAPP, true, 0); // SDL_WINDOWEVENT_FOCUS_GAINED
return NULL;
}
@ -318,8 +322,8 @@ HWND CreateWindowExA(
HINSTANCE hInstance,
LPVOID lpParam)
{
if (SDL_Init(SDL_INIT_EVERYTHING) != 0) {
SDL_Log("SDL_Init: %s\n", SDL_GetError());
if (SDL_Init(SDL_INIT_EVERYTHING) <= -1) {
SDL_Log(SDL_GetError());
return NULL;
}
atexit(SDL_Quit);
@ -347,21 +351,24 @@ HWND CreateWindowExA(
}
window = SDL_CreateWindow(lpWindowName, SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, nWidth, nHeight, flags);
if (window == NULL) {
SDL_Log(SDL_GetError());
}
atexit(FakeWMDestroy);
if (upscale) {
renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_PRESENTVSYNC | SDL_RENDERER_ACCELERATED);
if (renderer == NULL) {
SDL_Log("SDL_CreateRenderer: %s\n", SDL_GetError());
SDL_Log(SDL_GetError());
}
texture = SDL_CreateTexture(renderer, SDL_PIXELFORMAT_RGBA8888, SDL_TEXTUREACCESS_STREAMING, nWidth, nHeight);
if (texture == NULL) {
SDL_Log("SDL_CreateTexture: %s\n", SDL_GetError());
SDL_Log(SDL_GetError());
}
if (SDL_RenderSetLogicalSize(renderer, nWidth, nHeight) != 0) {
SDL_Log("SDL_RenderSetLogicalSize: %s\n", SDL_GetError());
if (SDL_RenderSetLogicalSize(renderer, nWidth, nHeight) <= -1) {
SDL_Log(SDL_GetError());
}
}
@ -591,8 +598,8 @@ int GetDeviceCaps(HDC hdc, int index)
{
SDL_DisplayMode current;
if (SDL_GetCurrentDisplayMode(0, &current) != 0) {
SDL_Log("SDL_GetCurrentDisplayMode: %s", SDL_GetError());
if (SDL_GetCurrentDisplayMode(0, &current) <= -1) {
SDL_Log(SDL_GetError());
return 0;
}
@ -716,7 +723,12 @@ int MessageBoxA(HWND hWnd, const char *Text, const char *Title, UINT Flags)
SDLFlags |= SDL_MESSAGEBOX_WARNING;
}
return SDL_ShowSimpleMessageBox(SDLFlags, Title, Text, window) < 0 ? -1 : 0;
if (SDL_ShowSimpleMessageBox(SDLFlags, Title, Text, window) <= -1) {
SDL_Log(SDL_GetError());
return -1;
}
return 0;
}
LSTATUS RegOpenKeyExA(HKEY hKey, LPCSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)

7
SourceX/miniwin/misc_dx.cpp

@ -1,8 +1,7 @@
#include <SDL.h>
#include "devilution.h"
#include "miniwin/ddraw.h"
#include "stubs.h"
#include <SDL.h>
namespace dvl {
@ -28,7 +27,9 @@ WINBOOL SetCursorPos(int X, int Y)
int ShowCursor(WINBOOL bShow)
{
SDL_ShowCursor(bShow ? SDL_ENABLE : SDL_DISABLE);
if (SDL_ShowCursor(bShow ? SDL_ENABLE : SDL_DISABLE) <= -1) {
SDL_Log(SDL_GetError());
}
return bShow;
}

60
SourceX/miniwin/thread.cpp

@ -1,8 +1,7 @@
#include <set>
#include <SDL.h>
#include "devilution.h"
#include "stubs.h"
#include <SDL.h>
#include <set>
namespace dvl {
@ -15,19 +14,19 @@ struct event_emul {
};
struct func_translate {
unsigned int (*func)(void*);
void* arg;
unsigned int (*func)(void *);
void *arg;
};
static int SDLCALL thread_translate(void* ptr)
static int SDLCALL thread_translate(void *ptr)
{
func_translate* ftptr = static_cast<func_translate*>(ptr);
func_translate *ftptr = static_cast<func_translate *>(ptr);
auto ret = ftptr->func(ftptr->arg);
delete ftptr;
return ret;
}
uintptr_t DVL_beginthreadex(void *_Security, unsigned _StackSize, unsigned(*_StartAddress)(void *),
uintptr_t DVL_beginthreadex(void *_Security, unsigned _StackSize, unsigned (*_StartAddress)(void *),
void *_ArgList, unsigned _InitFlag, unsigned *_ThrdAddr)
{
if (_Security != NULL)
@ -36,10 +35,13 @@ uintptr_t DVL_beginthreadex(void *_Security, unsigned _StackSize, unsigned(*_Sta
UNIMPLEMENTED();
if (_InitFlag != 0)
UNIMPLEMENTED();
func_translate* ft = new func_translate;
func_translate *ft = new func_translate;
ft->func = _StartAddress;
ft->arg = _ArgList;
SDL_Thread *ret = SDL_CreateThread(thread_translate, NULL, ft);
if (ret == NULL) {
SDL_Log(SDL_GetError());
}
*_ThrdAddr = SDL_GetThreadID(ret);
threads.insert((uintptr_t)ret);
return (uintptr_t)ret;
@ -67,17 +69,24 @@ WINBOOL SetThreadPriority(HANDLE hThread, int nPriority)
void InitializeCriticalSection(LPCRITICAL_SECTION lpCriticalSection)
{
SDL_mutex *m = SDL_CreateMutex();
if (m == NULL) {
SDL_Log(SDL_GetError());
}
*lpCriticalSection = m;
}
void EnterCriticalSection(LPCRITICAL_SECTION lpCriticalSection)
{
SDL_LockMutex(*((SDL_mutex **)lpCriticalSection));
if (SDL_LockMutex(*((SDL_mutex **)lpCriticalSection)) <= -1) {
SDL_Log(SDL_GetError());
}
}
void LeaveCriticalSection(LPCRITICAL_SECTION lpCriticalSection)
{
SDL_UnlockMutex(*((SDL_mutex **)lpCriticalSection));
if (SDL_UnlockMutex(*((SDL_mutex **)lpCriticalSection)) <= -1) {
SDL_Log(SDL_GetError());
}
}
void DeleteCriticalSection(LPCRITICAL_SECTION lpCriticalSection)
@ -105,7 +114,13 @@ HANDLE CreateEventA(LPSECURITY_ATTRIBUTES lpEventAttributes, WINBOOL bManualRese
struct event_emul *ret;
ret = (struct event_emul *)malloc(sizeof(struct event_emul));
ret->mutex = SDL_CreateMutex();
if (ret->mutex == NULL) {
SDL_Log(SDL_GetError());
}
ret->cond = SDL_CreateCond();
if (ret->cond == NULL) {
SDL_Log(SDL_GetError());
}
events.insert((uintptr_t)ret);
return ret;
}
@ -113,32 +128,37 @@ HANDLE CreateEventA(LPSECURITY_ATTRIBUTES lpEventAttributes, WINBOOL bManualRese
BOOL SetEvent(HANDLE hEvent)
{
struct event_emul *e = (struct event_emul *)hEvent;
SDL_LockMutex(e->mutex);
SDL_CondSignal(e->cond);
SDL_UnlockMutex(e->mutex);
if (SDL_LockMutex(e->mutex) <= -1 || SDL_CondSignal(e->cond) <= -1 || SDL_UnlockMutex(e->mutex) <= -1) {
SDL_Log(SDL_GetError());
return 0;
}
return 1;
}
BOOL ResetEvent(HANDLE hEvent)
{
struct event_emul *e = (struct event_emul *)hEvent;
SDL_LockMutex(e->mutex);
SDL_CondWaitTimeout(e->cond, e->mutex, 0);
SDL_UnlockMutex(e->mutex);
if (SDL_LockMutex(e->mutex) <= -1 || SDL_CondWaitTimeout(e->cond, e->mutex, 0) <= -1 || SDL_UnlockMutex(e->mutex) <= -1) {
SDL_Log(SDL_GetError());
return 0;
}
return 1;
}
static DWORD wait_for_sdl_cond(HANDLE hHandle, DWORD dwMilliseconds)
{
struct event_emul *e = (struct event_emul *)hHandle;
SDL_LockMutex(e->mutex);
if (SDL_LockMutex(e->mutex) <= -1) {
SDL_Log(SDL_GetError());
}
DWORD ret;
if (dwMilliseconds == DVL_INFINITE)
ret = SDL_CondWait(e->cond, e->mutex);
else
ret = SDL_CondWaitTimeout(e->cond, e->mutex, dwMilliseconds);
SDL_CondSignal(e->cond);
SDL_UnlockMutex(e->mutex);
if (ret <= -1 || SDL_CondSignal(e->cond) <= -1 || SDL_UnlockMutex(e->mutex) <= -1) {
SDL_Log(SDL_GetError());
}
return ret;
}

12
SourceX/sound.cpp

@ -1,8 +1,7 @@
#include "devilution.h"
#include <SDL_mixer.h>
#include "stubs.h"
#include <SDL.h>
#include <SDL_mixer.h>
namespace dvl {
@ -414,7 +413,7 @@ HRESULT sound_DirectSoundCreate(LPGUID lpGuid, LPDIRECTSOUND *ppDS, LPUNKNOWN pU
if (hDsound_dll == NULL) {
}
}
DirectSoundCreate = NULL;
if (DirectSoundCreate == NULL) {
}
@ -490,6 +489,9 @@ void music_start(int nTrack)
SFileReadFile(sgpMusicTrack, musicBuffer, bytestoread, NULL, 0);
musicRw = SDL_RWFromConstMem(musicBuffer, bytestoread);
if (musicRw == NULL) {
SDL_Log(SDL_GetError());
}
music = Mix_LoadMUS_RW(musicRw, 1);
Mix_VolumeMusic(MIX_MAX_VOLUME - MIX_MAX_VOLUME * sglMusicVolume / VOLUME_MIN);
Mix_PlayMusic(music, -1);
@ -531,4 +533,4 @@ int sound_get_or_set_sound_volume(int volume)
return sglSoundVolume;
}
} // namespace dvl
} // namespace dvl

85
SourceX/storm/storm.cpp

@ -1,13 +1,13 @@
#include "devilution.h"
#include "miniwin/ddraw.h"
#include "stubs.h"
#include <Radon.hpp>
#include <SDL.h>
#include <SDL_endian.h>
#include <SDL_mixer.h>
#include <Radon.hpp>
#include <smacker.h>
#include "devilution.h"
#include "stubs.h"
#include "DiabloUI/diabloui.h"
#include "miniwin/ddraw.h"
namespace dvl {
@ -56,6 +56,9 @@ BOOL SFileDdaBeginEx(HANDLE hFile, DWORD flags, DWORD mask, unsigned __int32 lDi
SFileReadFile(hFile, SFXbuffer, bytestoread, NULL, 0);
SDL_RWops *rw = SDL_RWFromConstMem(SFXbuffer, bytestoread);
if (rw == NULL) {
SDL_Log(SDL_GetError());
}
SFileChunk = Mix_LoadWAV_RW(rw, 1);
free(SFXbuffer);
@ -125,30 +128,30 @@ BOOL SFileGetFileArchive(HANDLE hFile, HANDLE *archive)
// Converts ASCII characters to lowercase
// Converts slash (0x2F) / backslash (0x5C) to system file-separator
unsigned char AsciiToLowerTable_Path[256] = {
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F,
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F,
#ifdef _WIN32
0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x5C,
0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x5C,
#else
0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F,
0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F,
#endif
0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F,
0x40, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F,
0x40, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
#ifdef _WIN32
0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F,
0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F,
#else
0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0x5B, 0x2F, 0x5D, 0x5E, 0x5F,
0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0x5B, 0x2F, 0x5D, 0x5E, 0x5F,
#endif
0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F,
0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F,
0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F,
0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF,
0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF,
0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF,
0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF,
0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF
0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F,
0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F,
0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F,
0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF,
0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF,
0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF,
0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF,
0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF
};
BOOL SFileOpenFile(const char *filename, HANDLE *phFile)
@ -481,7 +484,7 @@ BOOL SVidPlayBegin(char *filename, int a2, int a3, int a4, int a5, int flags, HA
deviceId = SDL_OpenAudioDevice(NULL, 0, &audioFormat, NULL, 0);
if (deviceId == 0) {
SDL_Log("SDL_OpenAudioDevice: %s\n", SDL_GetError());
SDL_Log(SDL_GetError());
return false;
} else {
SDL_PauseAudioDevice(deviceId, 0); /* start audio playing. */
@ -498,7 +501,12 @@ BOOL SVidPlayBegin(char *filename, int a2, int a3, int a4, int a5, int flags, HA
smk_info_video(SVidSMK, &width, &height, NULL);
SDL_DestroyTexture(texture);
texture = SDL_CreateTexture(renderer, SDL_PIXELFORMAT_RGBA8888, SDL_TEXTUREACCESS_STREAMING, width, height);
SDL_RenderSetLogicalSize(renderer, width, height);
if (texture == NULL) {
SDL_Log(SDL_GetError());
}
if (SDL_RenderSetLogicalSize(renderer, width, height) <= -1) {
SDL_Log(SDL_GetError());
}
memcpy(SVidPreviousPalette, orig_palette, 1024);
// Copy frame to buffer
@ -509,10 +517,16 @@ BOOL SVidPlayBegin(char *filename, int a2, int a3, int a4, int a5, int flags, HA
8,
width,
SDL_PIXELFORMAT_INDEX8);
if (SVidSurface == NULL) {
SDL_Log(SDL_GetError());
}
SVidPalette = SDL_AllocPalette(256);
if (SDL_SetSurfacePalette(SVidSurface, SVidPalette) != 0) {
SDL_Log("SDL_SetSurfacePalette: %s\n", SDL_GetError());
if (SVidSurface == NULL) {
SDL_Log(SDL_GetError());
}
if (SDL_SetSurfacePalette(SVidSurface, SVidPalette) <= -1) {
SDL_Log(SDL_GetError());
return false;
}
@ -555,8 +569,8 @@ BOOL SVidPlayContinue(void)
}
memcpy(logical_palette, orig_palette, 1024);
if (SDL_SetPaletteColors(SVidPalette, colors, 0, 256) != 0) {
SDL_Log("SDL_SetPaletteColors: %s\n", SDL_GetError());
if (SDL_SetPaletteColors(SVidPalette, colors, 0, 256) <= -1) {
SDL_Log(SDL_GetError());
return false;
}
}
@ -565,8 +579,8 @@ BOOL SVidPlayContinue(void)
return SVidLoadNextFrame(); // Skip video and audio if the system is to slow
}
if (deviceId && SDL_QueueAudio(deviceId, smk_get_audio(SVidSMK, 0), smk_get_audio_size(SVidSMK, 0)) == -1) {
SDL_Log("SDL_QueueAudio: %s\n", SDL_GetError());
if (deviceId && SDL_QueueAudio(deviceId, smk_get_audio(SVidSMK, 0), smk_get_audio_size(SVidSMK, 0)) <= -1) {
SDL_Log(SDL_GetError());
return false;
}
@ -575,8 +589,8 @@ BOOL SVidPlayContinue(void)
}
SDL_Rect pal_surface_offset = { 64, 160, 0, 0 };
if (SDL_BlitSurface(SVidSurface, NULL, pal_surface, &pal_surface_offset) != 0) {
SDL_Log("SDL_BlitSurface: %s\n", SDL_GetError());
if (SDL_BlitSurface(SVidSurface, NULL, pal_surface, &pal_surface_offset) <= -1) {
SDL_Log(SDL_GetError());
return false;
}
@ -615,7 +629,12 @@ BOOL SVidPlayEnd(HANDLE video)
memcpy(orig_palette, SVidPreviousPalette, 1024);
SDL_DestroyTexture(texture);
texture = SDL_CreateTexture(renderer, SDL_PIXELFORMAT_RGBA8888, SDL_TEXTUREACCESS_STREAMING, SCREEN_WIDTH, SCREEN_HEIGHT);
SDL_RenderSetLogicalSize(renderer, SCREEN_WIDTH, SCREEN_HEIGHT);
if (texture == NULL) {
SDL_Log(SDL_GetError());
}
if (SDL_RenderSetLogicalSize(renderer, SCREEN_WIDTH, SCREEN_HEIGHT) <= -1) {
SDL_Log(SDL_GetError());
}
return true;
}

4
SourceX/storm/storm_dx.cpp

@ -36,8 +36,8 @@ BOOL SDrawUpdatePalette(unsigned int firstentry, unsigned int numentries, PALETT
}
assert(palette);
if (SDL_SetPaletteColors(palette, colors, firstentry, numentries) != 0) {
SDL_Log("SDL_SetPaletteColors: %s\n", SDL_GetError());
if (SDL_SetPaletteColors(palette, colors, firstentry, numentries) <= -1) {
SDL_Log(SDL_GetError());
return false;
}

Loading…
Cancel
Save