summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortron <tron@openttd.org>2005-07-24 06:09:54 +0000
committertron <tron@openttd.org>2005-07-24 06:09:54 +0000
commit475d7fc0aec274a1d16893ecc248e40b61ea609f (patch)
tree8bd9a5f411d6d3d03e950189c43d88519f89e9d1
parent23c20173b1724867cd0b2d4065efcce051db5dbf (diff)
downloadopenttd-475d7fc0aec274a1d16893ecc248e40b61ea609f.tar.xz
(svn r2697) Make compiling with SDL on Windows work again (missing #includes) and fix some warnings
-rw-r--r--sdl.c4
-rw-r--r--win32.c36
-rw-r--r--win32.h7
3 files changed, 27 insertions, 20 deletions
diff --git a/sdl.c b/sdl.c
index dcc1d3cc6..67d7d17db 100644
--- a/sdl.c
+++ b/sdl.c
@@ -17,7 +17,7 @@ static int _sdl_usage;
#ifdef DYNAMICALLY_LOADED_SDL
-bool LoadLibraryList(void **proc, const char *dll);
+#include "win32.h"
#define M(x) x "\0"
static const char sdl_files[] =
@@ -59,7 +59,7 @@ static const char *LoadSdlDLL(void)
{
if (sdl_proc.SDL_Init != NULL)
return NULL;
- if (!LoadLibraryList((void**)&sdl_proc, sdl_files))
+ if (!LoadLibraryList((Function*)&sdl_proc, sdl_files))
return "Unable to load sdl.dll";
return NULL;
}
diff --git a/win32.c b/win32.c
index 0cd609637..25310a405 100644
--- a/win32.c
+++ b/win32.c
@@ -14,6 +14,7 @@
#include <io.h>
#include <fcntl.h>
#include "variables.h"
+#include "win32.h"
#include "driver.h"
@@ -22,10 +23,12 @@
#include "music/win32_m.h"
#include "sound/null_s.h"
+#include "sound/sdl_s.h"
#include "sound/win32_s.h"
#include "video/dedicated_v.h"
#include "video/null_v.h"
+#include "video/sdl_v.h"
#include "video/win32_v.h"
static bool _has_console;
@@ -36,23 +39,20 @@ static bool _has_console;
// Helper function needed by dynamically loading SDL
-bool LoadLibraryList(void **proc, const char *dll)
+bool LoadLibraryList(Function proc[], const char* dll)
{
- HMODULE lib;
- void *p;
-
while (*dll != '\0') {
- lib = LoadLibrary(dll);
- if (lib == NULL)
- return false;
+ HMODULE lib = LoadLibrary(dll);
+
+ if (lib == NULL) return false;
while (true) {
- while(*dll++ != '\0');
- if (*dll == '\0')
- break;
+ FARPROC p;
+
+ while (*dll++ != '\0');
+ if (*dll == '\0') break;
p = GetProcAddress(lib, dll);
- if (p == NULL)
- return false;
- *proc++ = p;
+ if (p == NULL) return false;
+ *proc++ = (Function)p;
}
dll++;
}
@@ -181,7 +181,7 @@ static char *PrintModuleList(char *output)
BOOL res;
int count,i;
- if (LoadLibraryList((void*)&EnumProcessModules, "psapi.dll\0EnumProcessModules\0")) {
+ if (LoadLibraryList((Function*)&EnumProcessModules, "psapi.dll\0EnumProcessModules\0")) {
proc = OpenProcess(PROCESS_ALL_ACCESS, FALSE, GetCurrentProcessId());
if (proc) {
res = EnumProcessModules(proc, modules, sizeof(modules), &needed);
@@ -241,15 +241,15 @@ static const char wininet_files[] =
static WinInetProcs _wininet;
-static char *SubmitCrashReport(HWND wnd, void *msg, size_t msglen, const char *arg)
+static const char *SubmitCrashReport(HWND wnd, void *msg, size_t msglen, const char *arg)
{
HINTERNET inet, conn, http;
- char *err = NULL;
+ const char *err = NULL;
DWORD code, len;
static char buf[100];
char buff[100];
- if (_wininet.InternetOpen == NULL && !LoadLibraryList((void**)&_wininet, wininet_files)) return "can't load wininet.dll";
+ if (_wininet.InternetOpen == NULL && !LoadLibraryList((Function*)&_wininet, wininet_files)) return "can't load wininet.dll";
inet = _wininet.InternetOpen("OTTD", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0 );
if (inet == NULL) { err = "internetopen failed"; goto error1; }
@@ -368,7 +368,7 @@ static BOOL CALLBACK CrashDialogFunc(HWND wnd,UINT msg,WPARAM wParam,LPARAM lPar
break;
}
case 14: { // Submit crash report
- char *s;
+ const char *s;
SetCursor(LoadCursor(NULL, IDC_WAIT));
diff --git a/win32.h b/win32.h
new file mode 100644
index 000000000..f96807798
--- /dev/null
+++ b/win32.h
@@ -0,0 +1,7 @@
+#ifndef WIN32_H
+#define WIN32_H
+
+typedef void (*Function)(int);
+bool LoadLibraryList(Function proc[], const char* dll);
+
+#endif