summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPhilipp Sehmisch <tmw@crushnet.org>2006-04-30 14:10:27 +0000
committerPhilipp Sehmisch <tmw@crushnet.org>2006-04-30 14:10:27 +0000
commit5dba20c49e27d3e3a6aecd35789dc8a90e26fc23 (patch)
tree1f01b5ddcd5ea79191afd944a17eee5ba2e461c3 /src
parent46cf9258d20113a48f7d5811ea112df6504dc30e (diff)
downloadmanaserv-5dba20c49e27d3e3a6aecd35789dc8a90e26fc23.tar.gz
manaserv-5dba20c49e27d3e3a6aecd35789dc8a90e26fc23.tar.bz2
manaserv-5dba20c49e27d3e3a6aecd35789dc8a90e26fc23.tar.xz
manaserv-5dba20c49e27d3e3a6aecd35789dc8a90e26fc23.zip
removed the last remains of SDL
Diffstat (limited to 'src')
-rw-r--r--src/SDL_win32_main.c364
-rw-r--r--src/connectionhandler.cpp129
-rw-r--r--src/main.cpp16
-rw-r--r--src/netsession.cpp7
4 files changed, 0 insertions, 516 deletions
diff --git a/src/SDL_win32_main.c b/src/SDL_win32_main.c
deleted file mode 100644
index 4bfce9cf..00000000
--- a/src/SDL_win32_main.c
+++ /dev/null
@@ -1,364 +0,0 @@
-/*
- SDL_main.c, placed in the public domain by Sam Lantinga 4/13/98
-
- The WinMain function -- calls your program's main() function
-*/
-
-#define NO_STDIO_REDIRECT
-
-#include <stdio.h>
-#include <string.h>
-#include <ctype.h>
-#include <stdlib.h>
-
-#include <windows.h>
-#include <malloc.h> /* For _alloca() */
-
-#ifdef _WIN32_WCE
-# define DIR_SEPERATOR TEXT("\\")
-# undef _getcwd
-# define _getcwd(str,len) wcscpy(str,TEXT(""))
-# define setbuf(f,b)
-# define setvbuf(w,x,y,z)
-# define fopen _wfopen
-# define freopen _wfreopen
-# define remove(x) DeleteFile(x)
-# define strcat wcscat
-#else
-# define DIR_SEPERATOR TEXT("/")
-# include <direct.h>
-#endif
-
-/* Include the SDL main definition header */
-#include "SDL.h"
-#include "SDL_main.h"
-
-#ifdef main
-# ifndef _WIN32_WCE_EMULATION
-# undef main
-# endif /* _WIN32_WCE_EMULATION */
-#endif /* main */
-
-/* The standard output files */
-#define STDOUT_FILE TEXT("stdout.txt")
-#define STDERR_FILE TEXT("stderr.txt")
-
-#ifndef NO_STDIO_REDIRECT
-# ifdef _WIN32_WCE
- static wchar_t stdoutPath[MAX_PATH];
- static wchar_t stderrPath[MAX_PATH];
-# else
- static char stdoutPath[MAX_PATH];
- static char stderrPath[MAX_PATH];
-# endif
-#endif
-
-#if defined(_WIN32_WCE) && _WIN32_WCE < 300
-/* seems to be undefined in Win CE although in online help */
-#define isspace(a) (((CHAR)a == ' ') || ((CHAR)a == '\t'))
-
-/* seems to be undefined in Win CE although in online help */
-char *strrchr(char *str, int c)
-{
- char *p;
-
- /* Skip to the end of the string */
- p=str;
- while (*p)
- p++;
-
- /* Look for the given character */
- while ( (p >= str) && (*p != (CHAR)c) )
- p--;
-
- /* Return NULL if character not found */
- if ( p < str ) {
- p = NULL;
- }
- return p;
-}
-#endif /* _WIN32_WCE < 300 */
-
-/* Parse a command line buffer into arguments */
-static int ParseCommandLine(char *cmdline, char **argv)
-{
- char *bufp;
- int argc;
-
- argc = 0;
- for ( bufp = cmdline; *bufp; ) {
- /* Skip leading whitespace */
- while ( isspace(*bufp) ) {
- ++bufp;
- }
- /* Skip over argument */
- if ( *bufp == '"' ) {
- ++bufp;
- if ( *bufp ) {
- if ( argv ) {
- argv[argc] = bufp;
- }
- ++argc;
- }
- /* Skip over word */
- while ( *bufp && (*bufp != '"') ) {
- ++bufp;
- }
- } else {
- if ( *bufp ) {
- if ( argv ) {
- argv[argc] = bufp;
- }
- ++argc;
- }
- /* Skip over word */
- while ( *bufp && ! isspace(*bufp) ) {
- ++bufp;
- }
- }
- if ( *bufp ) {
- if ( argv ) {
- *bufp = '\0';
- }
- ++bufp;
- }
- }
- if ( argv ) {
- argv[argc] = NULL;
- }
- return(argc);
-}
-
-/* Show an error message */
-static void ShowError(const char *title, const char *message)
-{
-/* If USE_MESSAGEBOX is defined, you need to link with user32.lib */
-#ifdef USE_MESSAGEBOX
- MessageBox(NULL, message, title, MB_ICONEXCLAMATION|MB_OK);
-#else
- fprintf(stderr, "%s: %s\n", title, message);
-#endif
-}
-
-/* Pop up an out of memory message, returns to Windows */
-static BOOL OutOfMemory(void)
-{
- ShowError("Fatal Error", "Out of memory - aborting");
- return FALSE;
-}
-
-/* Remove the output files if there was no output written */
-static void __cdecl cleanup_output(void)
-{
-#ifndef NO_STDIO_REDIRECT
- FILE *file;
- int empty;
-#endif
-
- /* Flush the output in case anything is queued */
- fclose(stdout);
- fclose(stderr);
-
-#ifndef NO_STDIO_REDIRECT
- /* See if the files have any output in them */
- if ( stdoutPath[0] ) {
- file = fopen(stdoutPath, TEXT("rb"));
- if ( file ) {
- empty = (fgetc(file) == EOF) ? 1 : 0;
- fclose(file);
- if ( empty ) {
- remove(stdoutPath);
- }
- }
- }
- if ( stderrPath[0] ) {
- file = fopen(stderrPath, TEXT("rb"));
- if ( file ) {
- empty = (fgetc(file) == EOF) ? 1 : 0;
- fclose(file);
- if ( empty ) {
- remove(stderrPath);
- }
- }
- }
-#endif
-}
-
-#if defined(_MSC_VER) && !defined(_WIN32_WCE)
-/* The VC++ compiler needs main defined */
-#define console_main main
-#endif
-
-/* This is where execution begins [console apps] */
-int console_main(int argc, char *argv[])
-{
- int n;
- char *bufp, *appname;
-
- /* Get the class name from argv[0] */
- appname = argv[0];
- if ( (bufp=strrchr(argv[0], '\\')) != NULL ) {
- appname = bufp+1;
- } else
- if ( (bufp=strrchr(argv[0], '/')) != NULL ) {
- appname = bufp+1;
- }
-
- if ( (bufp=strrchr(appname, '.')) == NULL )
- n = strlen(appname);
- else
- n = (bufp-appname);
-
- bufp = (char *)alloca(n+1);
- if ( bufp == NULL ) {
- return OutOfMemory();
- }
- strncpy(bufp, appname, n);
- bufp[n] = '\0';
- appname = bufp;
-
- /* Load SDL dynamic link library */
- if ( SDL_Init(SDL_INIT_NOPARACHUTE) < 0 ) {
- ShowError("WinMain() error", SDL_GetError());
- return(FALSE);
- }
- atexit(cleanup_output);
- atexit(SDL_Quit);
-
-#ifndef DISABLE_VIDEO
-#if 0
- /* Create and register our class *
- DJM: If we do this here, the user nevers gets a chance to
- putenv(SDL_WINDOWID). This is already called later by
- the (DIB|DX5)_CreateWindow function, so it should be
- safe to comment it out here.
- if ( SDL_RegisterApp(appname, CS_BYTEALIGNCLIENT,
- GetModuleHandle(NULL)) < 0 ) {
- ShowError("WinMain() error", SDL_GetError());
- exit(1);
- }*/
-#else
- /* Sam:
- We still need to pass in the application handle so that
- DirectInput will initialize properly when SDL_RegisterApp()
- is called later in the video initialization.
- */
- SDL_SetModuleHandle(GetModuleHandle(NULL));
-#endif /* 0 */
-#endif /* !DISABLE_VIDEO */
-
- /* Run the application main() code */
- SDL_main(argc, argv);
-
- /* Exit cleanly, calling atexit() functions */
- exit(0);
-
- /* Hush little compiler, don't you cry... */
- return(0);
-}
-
-/* This is where execution begins [windowed apps] */
-#ifdef _WIN32_WCE
-int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPWSTR szCmdLine, int sw)
-#else
-int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR szCmdLine, int sw)
-#endif
-{
- HINSTANCE handle;
- char **argv;
- int argc;
- char *cmdline;
-#ifdef _WIN32_WCE
- wchar_t *bufp;
- int nLen;
-#else
- char *bufp;
-#endif
-#ifndef NO_STDIO_REDIRECT
- FILE *newfp;
-#endif
-
- /* Start up DDHELP.EXE before opening any files, so DDHELP doesn't
- keep them open. This is a hack.. hopefully it will be fixed
- someday. DDHELP.EXE starts up the first time DDRAW.DLL is loaded.
- */
- handle = LoadLibrary(TEXT("DDRAW.DLL"));
- if ( handle != NULL ) {
- FreeLibrary(handle);
- }
-
-#ifndef NO_STDIO_REDIRECT
- _getcwd( stdoutPath, sizeof( stdoutPath ) );
- strcat( stdoutPath, DIR_SEPERATOR STDOUT_FILE );
-
- /* Redirect standard input and standard output */
- newfp = freopen(stdoutPath, TEXT("w"), stdout);
-
-#ifndef _WIN32_WCE
- if ( newfp == NULL ) { /* This happens on NT */
-#if !defined(stdout)
- stdout = fopen(stdoutPath, TEXT("w"));
-#else
- newfp = fopen(stdoutPath, TEXT("w"));
- if ( newfp ) {
- *stdout = *newfp;
- }
-#endif
- }
-#endif /* _WIN32_WCE */
-
- _getcwd( stderrPath, sizeof( stderrPath ) );
- strcat( stderrPath, DIR_SEPERATOR STDERR_FILE );
-
- newfp = freopen(stderrPath, TEXT("w"), stderr);
-#ifndef _WIN32_WCE
- if ( newfp == NULL ) { /* This happens on NT */
-#if !defined(stderr)
- stderr = fopen(stderrPath, TEXT("w"));
-#else
- newfp = fopen(stderrPath, TEXT("w"));
- if ( newfp ) {
- *stderr = *newfp;
- }
-#endif
- }
-#endif /* _WIN32_WCE */
-
- setvbuf(stdout, NULL, _IOLBF, BUFSIZ); /* Line buffered */
- setbuf(stderr, NULL); /* No buffering */
-#endif /* !NO_STDIO_REDIRECT */
-
-#ifdef _WIN32_WCE
- nLen = wcslen(szCmdLine)+128+1;
- bufp = (wchar_t *)alloca(nLen*2);
- wcscpy (bufp, TEXT("\""));
- GetModuleFileName(NULL, bufp+1, 128-3);
- wcscpy (bufp+wcslen(bufp), TEXT("\" "));
- wcsncpy(bufp+wcslen(bufp), szCmdLine,nLen-wcslen(bufp));
- nLen = wcslen(bufp)+1;
- cmdline = (char *)alloca(nLen);
- if ( cmdline == NULL ) {
- return OutOfMemory();
- }
- WideCharToMultiByte(CP_ACP, 0, bufp, -1, cmdline, nLen, NULL, NULL);
-#else
- /* Grab the command line (use alloca() on Windows) */
- bufp = GetCommandLine();
- cmdline = (char *)alloca(strlen(bufp)+1);
- if ( cmdline == NULL ) {
- return OutOfMemory();
- }
- strcpy(cmdline, bufp);
-#endif
-
- /* Parse it into argv and argc */
- argc = ParseCommandLine(cmdline, NULL);
- argv = (char **)alloca((argc+1)*(sizeof *argv));
- if ( argv == NULL ) {
- return OutOfMemory();
- }
- ParseCommandLine(cmdline, argv);
-
- /* Run the main program (after a little SDL initialization) */
- return(console_main(argc, argv));
-}
diff --git a/src/connectionhandler.cpp b/src/connectionhandler.cpp
index c70f34e4..b0a85f71 100644
--- a/src/connectionhandler.cpp
+++ b/src/connectionhandler.cpp
@@ -100,135 +100,6 @@ ConnectionHandler::ConnectionHandler()
void
ConnectionHandler::startListen(ListenThreadData *ltd)
{
- /*
- // Allocate a socket set
- SDLNet_SocketSet set = SDLNet_AllocSocketSet(MAX_CLIENTS);
- if (!set) {
- LOG_FATAL("SDLNet_AllocSocketSet: " << SDLNet_GetError(), 0)
- exit(1);
- }
-
- // Add the server socket to the socket set
- if (SDLNet_TCP_AddSocket(set, ltd->socket) < 0) {
- LOG_FATAL("SDLNet_AddSocket: " << SDLNet_GetError(), 0)
- exit(1);
- }
-
- // Keep checking for socket activity while running
- while (ltd->running) {
- int numready = SDLNet_CheckSockets(set, 100);
-
- if (numready == -1) {
- LOG_ERROR("SDLNet_CheckSockets: " << SDLNet_GetError(), 0)
- // When this is a system error, perror may help us
- perror("SDLNet_CheckSockets");
- }
- else if (numready > 0) {
- LOG_INFO(numready << " socket(s) with activity!", 0)
-
- // Check server socket
- if (SDLNet_SocketReady(ltd->socket)) {
- TCPsocket client = SDLNet_TCP_Accept(ltd->socket);
-
- if (client) {
- // Add the client socket to the socket set
- if (SDLNet_TCP_AddSocket(set, client) < 0) {
- LOG_ERROR("SDLNet_AddSocket: " << SDLNet_GetError(), 0)
- }
- else {
- NetComputer *comp = new NetComputer(this, client);
- clients.push_back(comp);
- computerConnected(comp);
- LOG_INFO(clients.size() << " client(s) connected", 0)
- }
- }
- }
-
- // Check client sockets
- NetComputers::iterator i;
-
- for (i = clients.begin(); i != clients.end(); )
- {
- NetComputer *comp = *i;
- TCPsocket s = (*i)->getSocket();
-
- if (SDLNet_SocketReady(s))
- {
- char buffer[1024];
- int result = SDLNet_TCP_Recv(s, buffer, 1024);
- if (result <= 0) {
- SDLNet_TCP_DelSocket(set, s);
- SDLNet_TCP_Close(s);
- computerDisconnected(comp);
- delete comp;
- comp = NULL;
- }
- else {
- // Copy the incoming data to the in buffer of this
- // client
- //buffer[result] = 0;
- //LOG_INFO("Received: " << buffer << ", Length: "
- // << result);
- LOG_INFO("Received length: " << result, 2);
-
-#ifdef SCRIPT_SUPPORT
- // This could be good if you wanted to extend the
- // server protocol using a scripting language. This
- // could be attained by using allowing scripts to
- // "hook" certain messages.
-
- //script->message(buffer);
-#endif
-
- // If the scripting subsystem didn't hook the message
- // it will be handled by the default message handler.
-
- // Convert the client IP address to string
- // representation
- std::string ipaddr = ip4ToString(
- SDLNet_TCP_GetPeerAddress(s)->host);
-
- // Make sure that the packet is big enough (> short)
- if (result >= 2)
- {
- Packet *packet = new Packet(buffer, result);
- MessageIn msg(packet); // (MessageIn frees packet)
-
- short messageId = msg.getId();
-
- if (handlers.find(messageId) != handlers.end())
- {
- // send message to appropriate handler
- handlers[messageId]->receiveMessage(
- *comp, msg);
- }
- else {
- // bad message (no registered handler)
- LOG_ERROR("Unhandled message (" << messageId
- << ") received from " << ipaddr, 0);
- }
- }
- else {
- LOG_ERROR("Message too short from " << ipaddr, 0);
- }
- }
- }
-
- // Traverse to next client, possibly deleting current
- if (comp == NULL) {
- i = clients.erase(i);
- }
- else {
- i++;
- }
- }
- }
- }
-
- // - Disconnect all clients (close sockets)
-
- SDLNet_FreeSocketSet(set);*/
-
while (ltd->running)
{
ENetEvent event;
diff --git a/src/main.cpp b/src/main.cpp
index a0922202..fb0497be 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -25,7 +25,6 @@
#include <signal.h>
#include <iostream>
#include <physfs.h>
-#include <SDL.h>
#include <enet/enet.h>
#if (defined __USE_UNIX98 || defined __FreeBSD__)
@@ -167,21 +166,9 @@ void initialize()
accountHandler = new AccountHandler();
gameHandler = new GameHandler();
connectionHandler = new ConnectionHandler();
-
- // Make SDL use a dummy videodriver so that it doesn't require an X server
- //putenv("SDL_VIDEODRIVER=dummy");
-
- // Initialize SDL
- if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_TIMER) == -1) {
- LOG_FATAL("SDL_Init: " << SDL_GetError(), 0)
- exit(1);
- }
// Reset to default segmentation fault handling for debugging purposes
signal(SIGSEGV, SIG_DFL);
-
- // set SDL to quit on exit.
- atexit(SDL_Quit);
// set enet to quit on exit.
atexit(enet_deinitialize);
@@ -242,9 +229,6 @@ void deinitialize()
// Stop world timer
worldTimer.stop();
-
- // Quit SDL
- SDL_Quit();
// Quit ENet
enet_deinitialize();
diff --git a/src/netsession.cpp b/src/netsession.cpp
index 260a649f..8ce5c8ad 100644
--- a/src/netsession.cpp
+++ b/src/netsession.cpp
@@ -85,12 +85,6 @@ void NetSession::startListen(ConnectionHandler *handler, enet_uint16 port)
LOG_ERROR("pthread_create: " << rc, 0);
exit(4);
}
- /*data->thread = SDL_CreateThread(startListenThread, data);
-
- if (data->thread == NULL) {
- LOG_ERROR("SDL_CreateThread: " << SDL_GetError(), 0);
- exit(4);
- }*/
listeners[port] = data;
}
@@ -110,7 +104,6 @@ void NetSession::stopListen(enet_uint16 port)
// Wait for listen thread to stop and close socket
// Note: Somewhere in this process the ConnectionHandler should receive
// disconnect notifications about all the connected clients.
- //SDL_WaitThread(data->thread, NULL);
enet_host_destroy(data->host);
delete data;
listeners.erase(threadDataI);