about summary refs log tree commit diff
path: root/src/engine/shared
diff options
context:
space:
mode:
authoroy <Tom_Adams@web.de>2011-04-13 20:37:12 +0200
committeroy <Tom_Adams@web.de>2011-04-13 20:37:12 +0200
commit06115dd49dca2f8eb5f14606437e8fd20037cc4d (patch)
tree5ec4bca6158319b3f5285d7689c5f94ae8da8c93 /src/engine/shared
parent63e059b8fff6498e42b765a1dca000e53005ea77 (diff)
downloadzcatch-06115dd49dca2f8eb5f14606437e8fd20037cc4d.tar.gz
zcatch-06115dd49dca2f8eb5f14606437e8fd20037cc4d.zip
added "Whitespace and line Endings cleanup" by GreYFoX
Diffstat (limited to 'src/engine/shared')
-rw-r--r--src/engine/shared/compression.cpp24
-rw-r--r--src/engine/shared/config.cpp40
-rw-r--r--src/engine/shared/config.h12
-rw-r--r--src/engine/shared/config_variables.h2
-rw-r--r--src/engine/shared/console.cpp102
-rw-r--r--src/engine/shared/console.h22
-rw-r--r--src/engine/shared/datafile.cpp114
-rw-r--r--src/engine/shared/datafile.h14
-rw-r--r--src/engine/shared/demo.cpp156
-rw-r--r--src/engine/shared/demo.h30
-rw-r--r--src/engine/shared/engine.cpp6
-rw-r--r--src/engine/shared/huffman.cpp14
-rw-r--r--src/engine/shared/huffman.h8
-rw-r--r--src/engine/shared/jobs.cpp14
-rw-r--r--src/engine/shared/jobs.h16
-rw-r--r--src/engine/shared/kernel.cpp20
-rw-r--r--src/engine/shared/map.cpp8
-rw-r--r--src/engine/shared/mapchecker.cpp2
-rw-r--r--src/engine/shared/mapchecker.h2
-rw-r--r--src/engine/shared/masterserver.cpp30
-rw-r--r--src/engine/shared/memheap.cpp14
-rw-r--r--src/engine/shared/memheap.h10
-rw-r--r--src/engine/shared/network.cpp26
-rw-r--r--src/engine/shared/network.h78
-rw-r--r--src/engine/shared/network_client.cpp8
-rw-r--r--src/engine/shared/network_conn.cpp50
-rw-r--r--src/engine/shared/network_server.cpp82
-rw-r--r--src/engine/shared/packer.cpp20
-rw-r--r--src/engine/shared/packer.h2
-rw-r--r--src/engine/shared/protocol.h18
-rw-r--r--src/engine/shared/ringbuffer.cpp44
-rw-r--r--src/engine/shared/ringbuffer.h16
-rw-r--r--src/engine/shared/snapshot.cpp124
-rw-r--r--src/engine/shared/snapshot.h14
-rw-r--r--src/engine/shared/storage.cpp34
35 files changed, 588 insertions, 588 deletions
diff --git a/src/engine/shared/compression.cpp b/src/engine/shared/compression.cpp
index f14e1cc4..40fe28c4 100644
--- a/src/engine/shared/compression.cpp
+++ b/src/engine/shared/compression.cpp
@@ -4,9 +4,9 @@
 
 #include "compression.h"
 
-// Format: ESDDDDDD EDDDDDDD EDD...  Extended, Data, Sign
-unsigned char *CVariableInt::Pack(unsigned char *pDst, int i) 
-{ 
+// Format: ESDDDDDD EDDDDDDD EDD... Extended, Data, Sign
+unsigned char *CVariableInt::Pack(unsigned char *pDst, int i)
+{
 	*pDst = (i>>25)&0x40; // set sign bit if i<0
 	i = i^(i>>31); // if(i<0) i = ~i
 
@@ -27,16 +27,16 @@ unsigned char *CVariableInt::Pack(unsigned char *pDst, int i)
 	}
 
 	pDst++;
-	return pDst; 
-} 
- 
+	return pDst;
+}
+
 const unsigned char *CVariableInt::Unpack(const unsigned char *pSrc, int *pInOut)
-{ 
-	int Sign = (*pSrc>>6)&1; 
-	*pInOut = *pSrc&0x3F; 
+{
+	int Sign = (*pSrc>>6)&1;
+	*pInOut = *pSrc&0x3F;
 
 	do
-	{ 
+	{
 		if(!(*pSrc&0x80)) break;
 		pSrc++;
 		*pInOut |= (*pSrc&(0x7F))<<(6);
@@ -56,8 +56,8 @@ const unsigned char *CVariableInt::Unpack(const unsigned char *pSrc, int *pInOut
 
 	pSrc++;
 	*pInOut ^= -Sign; // if(sign) *i = ~(*i)
-	return pSrc; 
-} 
+	return pSrc;
+}
 
 
 long CVariableInt::Decompress(const void *pSrc_, int Size, void *pDst_)
diff --git a/src/engine/shared/config.cpp b/src/engine/shared/config.cpp
index f531fa5a..b9aa1320 100644
--- a/src/engine/shared/config.cpp
+++ b/src/engine/shared/config.cpp
@@ -10,21 +10,21 @@ class CConfig : public IConfig
 {
 	IStorage *m_pStorage;
 	IOHANDLE m_ConfigFile;
-	
+
 	struct CCallback
 	{
 		SAVECALLBACKFUNC m_pfnFunc;
 		void *m_pUserData;
 	};
-	
+
 	enum
 	{
 		MAX_CALLBACKS = 16
 	};
-	
+
 	CCallback m_aCallbacks[MAX_CALLBACKS];
 	int m_NumCallbacks;
-	
+
 	void EscapeParam(char *pDst, const char *pSrc, int size)
 	{
 		for(int i = 0; *pSrc && i < size - 1; ++i)
@@ -43,22 +43,22 @@ public:
 		m_ConfigFile = 0;
 		m_NumCallbacks = 0;
 	}
-	
+
 	virtual void Init()
 	{
 		m_pStorage = Kernel()->RequestInterface<IStorage>();
 		Reset();
 	}
-	
+
 	virtual void Reset()
 	{
 		#define MACRO_CONFIG_INT(Name,ScriptName,def,min,max,flags,desc) g_Config.m_##Name = def;
 		#define MACRO_CONFIG_STR(Name,ScriptName,len,def,flags,desc) str_copy(g_Config.m_##Name, def, len);
 
-		#include "config_variables.h" 
+		#include "config_variables.h"
 
-		#undef MACRO_CONFIG_INT 
-		#undef MACRO_CONFIG_STR 		
+		#undef MACRO_CONFIG_INT
+		#undef MACRO_CONFIG_STR
 	}
 
 	virtual void RestoreStrings()
@@ -71,34 +71,34 @@ public:
 		#undef MACRO_CONFIG_INT
 		#undef MACRO_CONFIG_STR
 	}
-	
+
 	virtual void Save()
 	{
 		if(!m_pStorage)
 			return;
 		m_ConfigFile = m_pStorage->OpenFile("settings.cfg", IOFLAG_WRITE, IStorage::TYPE_SAVE);
-		
+
 		if(!m_ConfigFile)
 			return;
-		
+
 		char aLineBuf[1024*2];
 		char aEscapeBuf[1024*2];
 
 		#define MACRO_CONFIG_INT(Name,ScriptName,def,min,max,flags,desc) if((flags)&CFGFLAG_SAVE){ str_format(aLineBuf, sizeof(aLineBuf), "%s %i", #ScriptName, g_Config.m_##Name); WriteLine(aLineBuf); }
 		#define MACRO_CONFIG_STR(Name,ScriptName,len,def,flags,desc) if((flags)&CFGFLAG_SAVE){ EscapeParam(aEscapeBuf, g_Config.m_##Name, sizeof(aEscapeBuf)); str_format(aLineBuf, sizeof(aLineBuf), "%s \"%s\"", #ScriptName, aEscapeBuf); WriteLine(aLineBuf); }
 
-		#include "config_variables.h" 
+		#include "config_variables.h"
+
+		#undef MACRO_CONFIG_INT
+		#undef MACRO_CONFIG_STR
 
-		#undef MACRO_CONFIG_INT 
-		#undef MACRO_CONFIG_STR 				
-		
 		for(int i = 0; i < m_NumCallbacks; i++)
 			m_aCallbacks[i].m_pfnFunc(this, m_aCallbacks[i].m_pUserData);
-		
+
 		io_close(m_ConfigFile);
 		m_ConfigFile = 0;
 	}
-	
+
 	virtual void RegisterCallback(SAVECALLBACKFUNC pfnFunc, void *pUserData)
 	{
 		dbg_assert(m_NumCallbacks < MAX_CALLBACKS, "too many config callbacks");
@@ -106,7 +106,7 @@ public:
 		m_aCallbacks[m_NumCallbacks].m_pUserData = pUserData;
 		m_NumCallbacks++;
 	}
-	
+
 	virtual void WriteLine(const char *pLine)
 	{
 		if(!m_ConfigFile)
@@ -117,7 +117,7 @@ public:
 		static const char Newline[] = "\n";
 #endif
 		io_write(m_ConfigFile, pLine, str_length(pLine));
-		io_write(m_ConfigFile, Newline, sizeof(Newline)-1);			
+		io_write(m_ConfigFile, Newline, sizeof(Newline)-1);
 	}
 };
 
diff --git a/src/engine/shared/config.h b/src/engine/shared/config.h
index 9a524d22..ed89daa2 100644
--- a/src/engine/shared/config.h
+++ b/src/engine/shared/config.h
@@ -4,12 +4,12 @@
 #define ENGINE_SHARED_CONFIG_H
 
 struct CConfiguration
-{ 
-    #define MACRO_CONFIG_INT(Name,ScriptName,Def,Min,Max,Save,Desc) int m_##Name;
-    #define MACRO_CONFIG_STR(Name,ScriptName,Len,Def,Save,Desc) char m_##Name[Len]; // Flawfinder: ignore
-    #include "config_variables.h" 
-    #undef MACRO_CONFIG_INT 
-    #undef MACRO_CONFIG_STR 
+{
+	#define MACRO_CONFIG_INT(Name,ScriptName,Def,Min,Max,Save,Desc) int m_##Name;
+	#define MACRO_CONFIG_STR(Name,ScriptName,Len,Def,Save,Desc) char m_##Name[Len]; // Flawfinder: ignore
+	#include "config_variables.h"
+	#undef MACRO_CONFIG_INT
+	#undef MACRO_CONFIG_STR
 };
 
 extern CConfiguration g_Config;
diff --git a/src/engine/shared/config_variables.h b/src/engine/shared/config_variables.h
index 8dec2102..eb7f9ca7 100644
--- a/src/engine/shared/config_variables.h
+++ b/src/engine/shared/config_variables.h
@@ -56,7 +56,7 @@ MACRO_CONFIG_INT(SndNonactiveMute, snd_nonactive_mute, 0, 0, 1, CFGFLAG_SAVE|CFG
 MACRO_CONFIG_INT(GfxScreenWidth, gfx_screen_width, 800, 0, 0, CFGFLAG_SAVE|CFGFLAG_CLIENT, "Screen resolution width")
 MACRO_CONFIG_INT(GfxScreenHeight, gfx_screen_height, 600, 0, 0, CFGFLAG_SAVE|CFGFLAG_CLIENT, "Screen resolution height")
 MACRO_CONFIG_INT(GfxFullscreen, gfx_fullscreen, 1, 0, 1, CFGFLAG_SAVE|CFGFLAG_CLIENT, "Fullscreen")
-MACRO_CONFIG_INT(GfxAlphabits, gfx_alphabits, 0, 0, 0, CFGFLAG_SAVE|CFGFLAG_CLIENT, "Alpha bits for framebuffer  (fullscreen only)")
+MACRO_CONFIG_INT(GfxAlphabits, gfx_alphabits, 0, 0, 0, CFGFLAG_SAVE|CFGFLAG_CLIENT, "Alpha bits for framebuffer (fullscreen only)")
 MACRO_CONFIG_INT(GfxColorDepth, gfx_color_depth, 24, 16, 24, CFGFLAG_SAVE|CFGFLAG_CLIENT, "Colors bits for framebuffer (fullscreen only)")
 MACRO_CONFIG_INT(GfxClear, gfx_clear, 0, 0, 1, CFGFLAG_SAVE|CFGFLAG_CLIENT, "Clear screen before rendering")
 MACRO_CONFIG_INT(GfxVsync, gfx_vsync, 1, 0, 1, CFGFLAG_SAVE|CFGFLAG_CLIENT, "Vertical sync")
diff --git a/src/engine/shared/console.cpp b/src/engine/shared/console.cpp
index 3241d05d..032ff2ae 100644
--- a/src/engine/shared/console.cpp
+++ b/src/engine/shared/console.cpp
@@ -38,21 +38,21 @@ int CConsole::ParseStart(CResult *pResult, const char *pString, int Length)
 	int Len = sizeof(pResult->m_aStringStorage);
 	if(Length < Len)
 		Len = Length;
-		
+
 	str_copy(pResult->m_aStringStorage, pString, Length);
 	pStr = pResult->m_aStringStorage;
-	
+
 	// get command
 	pStr = str_skip_whitespaces(pStr);
 	pResult->m_pCommand = pStr;
 	pStr = str_skip_to_whitespace(pStr);
-	
+
 	if(*pStr)
 	{
 		pStr[0] = 0;
 		pStr++;
 	}
-	
+
 	pResult->m_pArgsStart = pStr;
 	return 0;
 }
@@ -63,38 +63,38 @@ int CConsole::ParseArgs(CResult *pResult, const char *pFormat)
 	char *pStr;
 	int Optional = 0;
 	int Error = 0;
-	
+
 	pStr = pResult->m_pArgsStart;
 
-	while(1)	
+	while(1)
 	{
 		// fetch command
 		Command = *pFormat;
 		pFormat++;
-		
+
 		if(!Command)
 			break;
-		
+
 		if(Command == '?')
 			Optional = 1;
 		else
 		{
 			pStr = str_skip_whitespaces(pStr);
-		
+
 			if(!(*pStr)) // error, non optional command needs value
 			{
 				if(!Optional)
 					Error = 1;
 				break;
 			}
-			
+
 			// add token
 			if(*pStr == '"')
 			{
 				char *pDst;
 				pStr++;
 				pResult->AddArgument(pStr);
-				
+
 				pDst = pStr; // we might have to process escape data
 				while(1)
 				{
@@ -109,22 +109,22 @@ int CConsole::ParseArgs(CResult *pResult, const char *pFormat)
 					}
 					else if(pStr[0] == 0)
 						return 1; // return error
-						
+
 					*pDst = *pStr;
 					pDst++;
 					pStr++;
 				}
-				
+
 				// write null termination
 				*pDst = 0;
 
-				
+
 				pStr++;
 			}
 			else
 			{
 				pResult->AddArgument(pStr);
-				
+
 				if(Command == 'r') // rest of the string
 					break;
 				else if(Command == 'i') // validate int
@@ -167,14 +167,14 @@ bool CConsole::LineIsValid(const char *pStr)
 {
 	if(!pStr || *pStr == 0)
 		return false;
-	
+
 	do
 	{
 		CResult Result;
 		const char *pEnd = pStr;
 		const char *pNextPart = 0;
 		int InString = 0;
-		
+
 		while(*pEnd)
 		{
 			if(*pEnd == '"')
@@ -186,25 +186,25 @@ bool CConsole::LineIsValid(const char *pStr)
 			}
 			else if(!InString)
 			{
-				if(*pEnd == ';')  // command separator
+				if(*pEnd == ';') // command separator
 				{
 					pNextPart = pEnd+1;
 					break;
 				}
-				else if(*pEnd == '#')  // comment, no need to do anything more
+				else if(*pEnd == '#') // comment, no need to do anything more
 					break;
 			}
-			
+
 			pEnd++;
 		}
-		
+
 		if(ParseStart(&Result, pStr, (pEnd-pStr) + 1) != 0)
 			return false;
 
 		CCommand *pCommand = FindCommand(Result.m_pCommand, m_FlagMask);
 		if(!pCommand || ParseArgs(&Result, pCommand->m_pParams))
 			return false;
-		
+
 		pStr = pNextPart;
 	}
 	while(pStr && *pStr);
@@ -213,14 +213,14 @@ bool CConsole::LineIsValid(const char *pStr)
 }
 
 void CConsole::ExecuteLineStroked(int Stroke, const char *pStr)
-{	
+{
 	while(pStr && *pStr)
 	{
 		CResult Result;
 		const char *pEnd = pStr;
 		const char *pNextPart = 0;
 		int InString = 0;
-		
+
 		while(*pEnd)
 		{
 			if(*pEnd == '"')
@@ -232,18 +232,18 @@ void CConsole::ExecuteLineStroked(int Stroke, const char *pStr)
 			}
 			else if(!InString)
 			{
-				if(*pEnd == ';')  // command separator
+				if(*pEnd == ';') // command separator
 				{
 					pNextPart = pEnd+1;
 					break;
 				}
-				else if(*pEnd == '#')  // comment, no need to do anything more
+				else if(*pEnd == '#') // comment, no need to do anything more
 					break;
 			}
-			
+
 			pEnd++;
 		}
-		
+
 		if(ParseStart(&Result, pStr, (pEnd-pStr) + 1) != 0)
 			return;
 
@@ -258,7 +258,7 @@ void CConsole::ExecuteLineStroked(int Stroke, const char *pStr)
 				Result.AddArgument(m_paStrokeStr[Stroke]);
 				IsStrokeCommand = 1;
 			}
-			
+
 			if(Stroke || IsStrokeCommand)
 			{
 				if(ParseArgs(&Result, pCommand->m_pParams))
@@ -284,7 +284,7 @@ void CConsole::ExecuteLineStroked(int Stroke, const char *pStr)
 			str_format(aBuf, sizeof(aBuf), "No such command: %s.", Result.m_pCommand);
 			Print(OUTPUT_LEVEL_STANDARD, "Console", aBuf);
 		}
-		
+
 		pStr = pNextPart;
 	}
 }
@@ -299,7 +299,7 @@ void CConsole::PossibleCommands(const char *pStr, int FlagMask, FPossibleCallbac
 			if(str_find_nocase(pCommand->m_pName, pStr))
 				pfnCallback(pCommand->m_pName, pUser);
 		}
-	}	
+	}
 }
 
 CConsole::CCommand *CConsole::FindCommand(const char *pName, int FlagMask)
@@ -312,8 +312,8 @@ CConsole::CCommand *CConsole::FindCommand(const char *pName, int FlagMask)
 			if(str_comp_nocase(pCommand->m_pName, pName) == 0)
 				return pCommand;
 		}
-	}	
-	
+	}
+
 	return 0x0;
 }
 
@@ -335,7 +335,7 @@ void CConsole::ExecuteFile(const char *pFilename)
 		m_pStorage = Kernel()->RequestInterface<IStorage>();
 	if(!m_pStorage)
 		return;
-		
+
 	// push this one to the stack
 	CExecFile ThisFile;
 	CExecFile *pPrev = m_pFirstExec;
@@ -345,13 +345,13 @@ void CConsole::ExecuteFile(const char *pFilename)
 
 	// exec the file
 	IOHANDLE File = m_pStorage->OpenFile(pFilename, IOFLAG_READ, IStorage::TYPE_ALL);
-	
+
 	char aBuf[256];
 	if(File)
 	{
 		char *pLine;
 		CLineReader lr;
-		
+
 		str_format(aBuf, sizeof(aBuf), "executing '%s'", pFilename);
 		Print(IConsole::OUTPUT_LEVEL_STANDARD, "console", aBuf);
 		lr.Init(File);
@@ -366,7 +366,7 @@ void CConsole::ExecuteFile(const char *pFilename)
 		str_format(aBuf, sizeof(aBuf), "failed to open '%s'", pFilename);
 		Print(IConsole::OUTPUT_LEVEL_STANDARD, "console", aBuf);
 	}
-	
+
 	m_pFirstExec = pPrev;
 }
 
@@ -402,7 +402,7 @@ static void IntVariableCommand(IConsole::IResult *pResult, void *pUserData)
 	if(pResult->NumArguments())
 	{
 		int Val = pResult->GetInteger(0);
-		
+
 		// do clamping
 		if(pData->m_Min != pData->m_Max)
 		{
@@ -468,30 +468,30 @@ CConsole::CConsole(int FlagMask)
 	m_pFirstExec = 0;
 	m_pPrintCallbackUserdata = 0;
 	m_pfnPrintCallback = 0;
-	
+
 	m_pStorage = 0;
-	
+
 	// register some basic commands
 	Register("echo", "r", CFGFLAG_SERVER|CFGFLAG_CLIENT, Con_Echo, this, "Echo the text");
 	Register("exec", "r", CFGFLAG_SERVER|CFGFLAG_CLIENT, Con_Exec, this, "Execute the specified file");
-	
+
 	// TODO: this should disappear
 	#define MACRO_CONFIG_INT(Name,ScriptName,Def,Min,Max,Flags,Desc) \
 	{ \
 		static CIntVariableData Data = { this, &g_Config.m_##Name, Min, Max }; \
 		Register(#ScriptName, "?i", Flags, IntVariableCommand, &Data, Desc); \
 	}
-	
+
 	#define MACRO_CONFIG_STR(Name,ScriptName,Len,Def,Flags,Desc) \
 	{ \
 		static CStrVariableData Data = { this, g_Config.m_##Name, Len }; \
 		Register(#ScriptName, "?r", Flags, StrVariableCommand, &Data, Desc); \
 	}
 
-	#include "config_variables.h" 
+	#include "config_variables.h"
 
-	#undef MACRO_CONFIG_INT 
-	#undef MACRO_CONFIG_STR 	
+	#undef MACRO_CONFIG_INT
+	#undef MACRO_CONFIG_STR
 }
 
 void CConsole::ParseArguments(int NumArgs, const char **ppArguments)
@@ -518,7 +518,7 @@ void CConsole::ParseArguments(int NumArgs, const char **ppArguments)
 	}
 }
 
-void CConsole::Register(const char *pName, const char *pParams, 
+void CConsole::Register(const char *pName, const char *pParams,
 	int Flags, FCommandCallback pfnFunc, void *pUser, const char *pHelp)
 {
 	CCommand *pCommand = (CCommand *)mem_alloc(sizeof(CCommand), sizeof(void*));
@@ -528,8 +528,8 @@ void CConsole::Register(const char *pName, const char *pParams,
 	pCommand->m_pName = pName;
 	pCommand->m_pParams = pParams;
 	pCommand->m_Flags = Flags;
-	
-	
+
+
 	pCommand->m_pNext = m_pFirstCommand;
 	m_pFirstCommand = pCommand;
 }
@@ -543,7 +543,7 @@ void CConsole::Con_Chain(IResult *pResult, void *pUserData)
 void CConsole::Chain(const char *pName, FChainCommandCallback pfnChainFunc, void *pUser)
 {
 	CCommand *pCommand = FindCommand(pName, m_FlagMask);
-	
+
 	if(!pCommand)
 	{
 		char aBuf[256];
@@ -551,7 +551,7 @@ void CConsole::Chain(const char *pName, FChainCommandCallback pfnChainFunc, void
 		Print(IConsole::OUTPUT_LEVEL_DEBUG, "console", aBuf);
 		return;
 	}
-	
+
 	CChain *pChainInfo = (CChain *)mem_alloc(sizeof(CChain), sizeof(void*));
 
 	// store info
@@ -559,7 +559,7 @@ void CConsole::Chain(const char *pName, FChainCommandCallback pfnChainFunc, void
 	pChainInfo->m_pUserData = pUser;
 	pChainInfo->m_pfnCallback = pCommand->m_pfnCallback;
 	pChainInfo->m_pCallbackUserData = pCommand->m_pUserData;
-	
+
 	// chain
 	pCommand->m_pfnCallback = Con_Chain;
 	pCommand->m_pUserData = pChainInfo;
diff --git a/src/engine/shared/console.h b/src/engine/shared/console.h
index a276751a..77c46fb0 100644
--- a/src/engine/shared/console.h
+++ b/src/engine/shared/console.h
@@ -16,7 +16,7 @@ class CConsole : public IConsole
 		FCommandCallback m_pfnCallback;
 		void *m_pUserData;
 	};
-		
+
 
 	class CChain
 	{
@@ -25,8 +25,8 @@ class CConsole : public IConsole
 		FCommandCallback m_pfnCallback;
 		void *m_pCallbackUserData;
 		void *m_pUserData;
-	};	
-	
+	};
+
 	int m_FlagMask;
 	bool m_StoreCommands;
 	const char *m_paStrokeStr[2];
@@ -38,7 +38,7 @@ class CConsole : public IConsole
 		const char *m_pFilename;
 		struct CExecFile *m_pPrev;
 	};
-	
+
 	CExecFile *m_pFirstExec;
 	class IStorage *m_pStorage;
 
@@ -48,22 +48,22 @@ class CConsole : public IConsole
 
 	void ExecuteFileRecurse(const char *pFilename);
 	void ExecuteLineStroked(int Stroke, const char *pStr);
-	
+
 	FPrintCallback m_pfnPrintCallback;
 	void *m_pPrintCallbackUserdata;
 
 	enum
 	{
-		CONSOLE_MAX_STR_LENGTH  = 1024,
+		CONSOLE_MAX_STR_LENGTH = 1024,
 		MAX_PARTS = (CONSOLE_MAX_STR_LENGTH+1)/2
 	};
-	
+
 	class CResult : public IResult
 	{
 	public:
 		char m_aStringStorage[CONSOLE_MAX_STR_LENGTH+1];
 		char *m_pArgsStart;
-		
+
 		const char *m_pCommand;
 		const char *m_apArgs[MAX_PARTS];
 
@@ -89,7 +89,7 @@ class CConsole : public IConsole
 			}
 			return *this;
 		}
-		
+
 		void AddArgument(const char *pArg)
 		{
 			m_apArgs[m_NumArgs++] = pArg;
@@ -99,7 +99,7 @@ class CConsole : public IConsole
 		virtual int GetInteger(unsigned Index);
 		virtual float GetFloat(unsigned Index);
 	};
-	
+
 	int ParseStart(CResult *pResult, const char *pString, int Length);
 	int ParseArgs(CResult *pResult, const char *pFormat);
 
@@ -146,7 +146,7 @@ public:
 	virtual void Register(const char *pName, const char *pParams, int Flags, FCommandCallback pfnFunc, void *pUser, const char *pHelp);
 	virtual void Chain(const char *pName, FChainCommandCallback pfnChainFunc, void *pUser);
 	virtual void StoreCommands(bool Store);
-	
+
 	virtual bool LineIsValid(const char *pStr);
 	virtual void ExecuteLine(const char *pStr);
 	virtual void ExecuteFile(const char *pFilename);
diff --git a/src/engine/shared/datafile.cpp b/src/engine/shared/datafile.cpp
index 74936ea0..3a5a4b1d 100644
--- a/src/engine/shared/datafile.cpp
+++ b/src/engine/shared/datafile.cpp
@@ -75,9 +75,9 @@ bool CDataFileReader::Open(class IStorage *pStorage, const char *pFilename, int
 	{
 		dbg_msg("datafile", "could not open '%s'", pFilename);
 		return false;
-	}	
-	
-	
+	}
+
+
 	// take the CRC of the file and store it
 	unsigned Crc = 0;
 	{
@@ -85,9 +85,9 @@ bool CDataFileReader::Open(class IStorage *pStorage, const char *pFilename, int
 		{
 			BUFFER_SIZE = 64*1024
 		};
-		
+
 		unsigned char aBuffer[BUFFER_SIZE];
-		
+
 		while(1)
 		{
 			unsigned Bytes = io_read(File, aBuffer, BUFFER_SIZE);
@@ -95,11 +95,11 @@ bool CDataFileReader::Open(class IStorage *pStorage, const char *pFilename, int
 				break;
 			Crc = crc32(Crc, aBuffer, Bytes); // ignore_convention
 		}
-		
+
 		io_seek(File, 0, IOSEEK_START);
 	}
-	
-	
+
+
 	// TODO: change this header
 	CDatafileHeader Header;
 	io_read(File, &Header, sizeof(Header));
@@ -113,14 +113,14 @@ bool CDataFileReader::Open(class IStorage *pStorage, const char *pFilename, int
 	}
 
 #if defined(CONF_ARCH_ENDIAN_BIG)
-	swap_endian(&Header, sizeof(int), sizeof(Header)/sizeof(int));	
+	swap_endian(&Header, sizeof(int), sizeof(Header)/sizeof(int));
 #endif
 	if(Header.m_Version != 3 && Header.m_Version != 4)
 	{
 		dbg_msg("datafile", "wrong version. version=%x", Header.m_Version);
 		return 0;
 	}
-	
+
 	// read in the rest except the data
 	unsigned Size = 0;
 	Size += Header.m_NumItemTypes*sizeof(CDatafileItemType);
@@ -128,7 +128,7 @@ bool CDataFileReader::Open(class IStorage *pStorage, const char *pFilename, int
 	if(Header.m_Version == 4)
 		Size += Header.m_NumRawData*sizeof(int); // v4 has uncompressed data sizes aswell
 	Size += Header.m_ItemSize;
-	
+
 	unsigned AllocSize = Size;
 	AllocSize += sizeof(CDatafile); // add space for info structure
 	AllocSize += Header.m_NumRawData*sizeof(void*); // add space for data pointers
@@ -140,10 +140,10 @@ bool CDataFileReader::Open(class IStorage *pStorage, const char *pFilename, int
 	pTmpDataFile->m_pData = (char *)(pTmpDataFile+1)+Header.m_NumRawData*sizeof(char *);
 	pTmpDataFile->m_File = File;
 	pTmpDataFile->m_Crc = Crc;
-	
+
 	// clear the data pointers
 	mem_zero(pTmpDataFile->m_ppDataPtrs, Header.m_NumRawData*sizeof(void*));
-	
+
 	// read types, offsets, sizes and item data
 	unsigned ReadSize = io_read(File, pTmpDataFile->m_pData, Size);
 	if(ReadSize != Size)
@@ -169,12 +169,12 @@ bool CDataFileReader::Open(class IStorage *pStorage, const char *pFilename, int
 		dbg_msg("datafile", "swaplen=%d", Header.m_Swaplen);
 		dbg_msg("datafile", "item_size=%d", m_pDataFile->m_Header.m_ItemSize);
 	}
-	
+
 	m_pDataFile->m_Info.m_pItemTypes = (CDatafileItemType *)m_pDataFile->m_pData;
 	m_pDataFile->m_Info.m_pItemOffsets = (int *)&m_pDataFile->m_Info.m_pItemTypes[m_pDataFile->m_Header.m_NumItemTypes];
 	m_pDataFile->m_Info.m_pDataOffsets = (int *)&m_pDataFile->m_Info.m_pItemOffsets[m_pDataFile->m_Header.m_NumItems];
 	m_pDataFile->m_Info.m_pDataSizes = (int *)&m_pDataFile->m_Info.m_pDataOffsets[m_pDataFile->m_Header.m_NumRawData];
-	
+
 	if(Header.m_Version == 4)
 		m_pDataFile->m_Info.m_pItemStart = (char *)&m_pDataFile->m_Info.m_pDataSizes[m_pDataFile->m_Header.m_NumRawData];
 	else
@@ -191,7 +191,7 @@ bool CDataFileReader::Open(class IStorage *pStorage, const char *pFilename, int
 			void *p = datafile_get_data(df, i);
 			dbg_msg("datafile", "%d %d", (int)((char*)p - (char*)(&m_pDataFile->data)), size);
 		}
-			
+
 		for(int i = 0; i < datafile_num_items(df); i++)
 		{
 			int type, id;
@@ -218,7 +218,7 @@ bool CDataFileReader::Open(class IStorage *pStorage, const char *pFilename, int
 		}
 		*/
 	}
-		
+
 	return true;
 }
 
@@ -227,7 +227,7 @@ bool CDataFileReader::GetCrcSize(class IStorage *pStorage, const char *pFilename
 	IOHANDLE File = pStorage->OpenFile(pFilename, IOFLAG_READ, StorageType);
 	if(!File)
 		return false;
-	
+
 	// get crc and size
 	unsigned Crc = 0;
 	unsigned Size = 0;
@@ -240,7 +240,7 @@ bool CDataFileReader::GetCrcSize(class IStorage *pStorage, const char *pFilename
 		Crc = crc32(Crc, aBuffer, Bytes); // ignore_convention
 		Size += Bytes;
 	}
-	
+
 	io_close(File);
 
 	*pCrc = Crc;
@@ -258,23 +258,23 @@ int CDataFileReader::NumData()
 int CDataFileReader::GetDataSize(int Index)
 {
 	if(!m_pDataFile) { return 0; }
-	
+
 	if(Index == m_pDataFile->m_Header.m_NumRawData-1)
 		return m_pDataFile->m_Header.m_DataSize-m_pDataFile->m_Info.m_pDataOffsets[Index];
-	return  m_pDataFile->m_Info.m_pDataOffsets[Index+1]-m_pDataFile->m_Info.m_pDataOffsets[Index];
+	return m_pDataFile->m_Info.m_pDataOffsets[Index+1]-m_pDataFile->m_Info.m_pDataOffsets[Index];
 }
 
 void *CDataFileReader::GetDataImpl(int Index, int Swap)
 {
 	if(!m_pDataFile) { return 0; }
-	
+
 	// load it if needed
 	if(!m_pDataFile->m_ppDataPtrs[Index])
 	{
 		// fetch the data size
 		int DataSize = GetDataSize(Index);
 		int SwapSize = DataSize;
-		
+
 		if(m_pDataFile->m_Header.m_Version == 4)
 		{
 			// v4 has compressed data
@@ -284,7 +284,7 @@ void *CDataFileReader::GetDataImpl(int Index, int Swap)
 
 			dbg_msg("datafile", "loading data index=%d size=%d uncompressed=%d", Index, DataSize, UncompressedSize);
 			m_pDataFile->m_ppDataPtrs[Index] = (char *)mem_alloc(UncompressedSize, 1);
-			
+
 			// read the compressed data
 			io_seek(m_pDataFile->m_File, m_pDataFile->m_DataStartOffset+m_pDataFile->m_Info.m_pDataOffsets[Index], IOSEEK_START);
 			io_read(m_pDataFile->m_File, pTemp, DataSize);
@@ -311,7 +311,7 @@ void *CDataFileReader::GetDataImpl(int Index, int Swap)
 			swap_endian(m_pDataFile->m_ppDataPtrs[Index], sizeof(int), SwapSize/sizeof(int));
 #endif
 	}
-	
+
 	return m_pDataFile->m_ppDataPtrs[Index];
 }
 
@@ -329,7 +329,7 @@ void CDataFileReader::UnloadData(int Index)
 {
 	if(Index < 0)
 		return;
-		
+
 	//
 	mem_free(m_pDataFile->m_ppDataPtrs[Index]);
 	m_pDataFile->m_ppDataPtrs[Index] = 0x0;
@@ -340,13 +340,13 @@ int CDataFileReader::GetItemSize(int Index)
 	if(!m_pDataFile) { return 0; }
 	if(Index == m_pDataFile->m_Header.m_NumItems-1)
 		return m_pDataFile->m_Header.m_ItemSize-m_pDataFile->m_Info.m_pItemOffsets[Index];
-	return  m_pDataFile->m_Info.m_pItemOffsets[Index+1]-m_pDataFile->m_Info.m_pItemOffsets[Index];
+	return m_pDataFile->m_Info.m_pItemOffsets[Index+1]-m_pDataFile->m_Info.m_pItemOffsets[Index];
 }
 
 void *CDataFileReader::GetItem(int Index, int *pType, int *pID)
 {
 	if(!m_pDataFile) { if(pType) *pType = 0; if(pID) *pID = 0; return 0; }
-	
+
 	CDatafileItem *i = (CDatafileItem *)(m_pDataFile->m_Info.m_pItemStart+m_pDataFile->m_Info.m_pItemOffsets[Index]);
 	if(pType)
 		*pType = (i->m_TypeAndID>>16)&0xffff; // remove sign extention
@@ -362,7 +362,7 @@ void CDataFileReader::GetType(int Type, int *pStart, int *pNum)
 
 	if(!m_pDataFile)
 		return;
-	
+
 	for(int i = 0; i < m_pDataFile->m_Header.m_NumItemTypes; i++)
 	{
 		if(m_pDataFile->m_Info.m_pItemTypes[i].m_Type == Type)
@@ -377,7 +377,7 @@ void CDataFileReader::GetType(int Type, int *pStart, int *pNum)
 void *CDataFileReader::FindItem(int Type, int ID)
 {
 	if(!m_pDataFile) return 0;
-	
+
 	int Start, Num;
 	GetType(Type, &Start, &Num);
 	for(int i = 0; i < Num; i++)
@@ -400,12 +400,12 @@ bool CDataFileReader::Close()
 {
 	if(!m_pDataFile)
 		return true;
-	
+
 	// free the data that is loaded
 	int i;
 	for(i = 0; i < m_pDataFile->m_Header.m_NumRawData; i++)
 		mem_free(m_pDataFile->m_ppDataPtrs[i]);
-	
+
 	io_close(m_pDataFile->m_File);
 	mem_free(m_pDataFile);
 	m_pDataFile = 0;
@@ -424,7 +424,7 @@ bool CDataFileWriter::Open(class IStorage *pStorage, const char *pFilename)
 	m_File = pStorage->OpenFile(pFilename, IOFLAG_WRITE, IStorage::TYPE_SAVE);
 	if(!m_File)
 		return false;
-	
+
 	m_NumItems = 0;
 	m_NumDatas = 0;
 	m_NumItemTypes = 0;
@@ -435,7 +435,7 @@ bool CDataFileWriter::Open(class IStorage *pStorage, const char *pFilename)
 		m_aItemTypes[i].m_First = -1;
 		m_aItemTypes[i].m_Last = -1;
 	}
-	
+
 	return true;
 }
 
@@ -450,7 +450,7 @@ int CDataFileWriter::AddItem(int Type, int ID, int Size, void *pData)
 	m_aItems[m_NumItems].m_Type = Type;
 	m_aItems[m_NumItems].m_ID = ID;
 	m_aItems[m_NumItems].m_Size = Size;
-	
+
 	// copy data
 	m_aItems[m_NumItems].m_pData = mem_alloc(Size, 1);
 	mem_copy(m_aItems[m_NumItems].m_pData, pData, Size);
@@ -461,16 +461,16 @@ int CDataFileWriter::AddItem(int Type, int ID, int Size, void *pData)
 	// link
 	m_aItems[m_NumItems].m_Prev = m_aItemTypes[Type].m_Last;
 	m_aItems[m_NumItems].m_Next = -1;
-	
+
 	if(m_aItemTypes[Type].m_Last != -1)
 		m_aItems[m_aItemTypes[Type].m_Last].m_Next = m_NumItems;
 	m_aItemTypes[Type].m_Last = m_NumItems;
-	
+
 	if(m_aItemTypes[Type].m_First == -1)
 		m_aItemTypes[Type].m_First = m_NumItems;
-	
+
 	m_aItemTypes[Type].m_Num++;
-		
+
 	m_NumItems++;
 	return m_NumItems-1;
 }
@@ -491,7 +491,7 @@ int CDataFileWriter::AddData(int Size, void *pData)
 		dbg_msg("datafile", "compression error %d", Result);
 		dbg_assert(0, "zlib error");
 	}
-		
+
 	pInfo->m_UncompressedSize = Size;
 	pInfo->m_CompressedSize = (int)s;
 	pInfo->m_pCompressedData = mem_alloc(pInfo->m_CompressedSize, 1);
@@ -539,23 +539,23 @@ int CDataFileWriter::Finish()
 			dbg_msg("datafile", "item=%d size=%d (%d)", i, m_aItems[i].m_Size, m_aItems[i].m_Size+sizeof(CDatafileItem));
 		ItemSize += m_aItems[i].m_Size + sizeof(CDatafileItem);
 	}
-	
-	
+
+
 	for(int i = 0; i < m_NumDatas; i++)
 		DataSize += m_aDatas[i].m_CompressedSize;
-	
+
 	// calculate the complete size
 	TypesSize = m_NumItemTypes*sizeof(CDatafileItemType);
 	HeaderSize = sizeof(CDatafileHeader);
 	OffsetSize = (m_NumItems + m_NumDatas + m_NumDatas) * sizeof(int); // ItemOffsets, DataOffsets, DataUncompressedSizes
 	FileSize = HeaderSize + TypesSize + OffsetSize + ItemSize + DataSize;
 	SwapSize = FileSize - DataSize;
-	
+
 	(void)SwapSize;
-	
+
 	if(DEBUG)
 		dbg_msg("datafile", "num_m_aItemTypes=%d TypesSize=%d m_aItemsize=%d DataSize=%d", m_NumItemTypes, TypesSize, ItemSize, DataSize);
-	
+
 	// construct Header
 	{
 		Header.m_aID[0] = 'D';
@@ -570,7 +570,7 @@ int CDataFileWriter::Finish()
 		Header.m_NumRawData = m_NumDatas;
 		Header.m_ItemSize = ItemSize;
 		Header.m_DataSize = DataSize;
-		
+
 		// write Header
 		if(DEBUG)
 			dbg_msg("datafile", "HeaderSize=%d", sizeof(Header));
@@ -579,7 +579,7 @@ int CDataFileWriter::Finish()
 #endif
 		io_write(m_File, &Header, sizeof(Header));
 	}
-	
+
 	// write types
 	for(int i = 0, Count = 0; i < 0xffff; i++)
 	{
@@ -599,7 +599,7 @@ int CDataFileWriter::Finish()
 			Count += m_aItemTypes[i].m_Num;
 		}
 	}
-	
+
 	// write item offsets
 	for(int i = 0, Offset = 0; i < 0xffff; i++)
 	{
@@ -617,13 +617,13 @@ int CDataFileWriter::Finish()
 #endif
 				io_write(m_File, &Temp, sizeof(Temp));
 				Offset += m_aItems[k].m_Size + sizeof(CDatafileItem);
-				
+
 				// next
 				k = m_aItems[k].m_Next;
 			}
 		}
 	}
-	
+
 	// write data offsets
 	for(int i = 0, Offset = 0; i < m_NumDatas; i++)
 	{
@@ -648,7 +648,7 @@ int CDataFileWriter::Finish()
 #endif
 		io_write(m_File, &UncompressedSize, sizeof(UncompressedSize));
 	}
-	
+
 	// write m_aItems
 	for(int i = 0; i < 0xffff; i++)
 	{
@@ -663,20 +663,20 @@ int CDataFileWriter::Finish()
 				Item.m_Size = m_aItems[k].m_Size;
 				if(DEBUG)
 					dbg_msg("datafile", "writing item type=%x idx=%d id=%d size=%d", i, k, m_aItems[k].m_ID, m_aItems[k].m_Size);
-				
+
 #if defined(CONF_ARCH_ENDIAN_BIG)
 				swap_endian(&Item, sizeof(int), sizeof(Item)/sizeof(int));
 				swap_endian(m_aItems[k].m_pData, sizeof(int), m_aItems[k].m_Size/sizeof(int));
 #endif
 				io_write(m_File, &Item, sizeof(Item));
 				io_write(m_File, m_aItems[k].m_pData, m_aItems[k].m_Size);
-				
+
 				// next
 				k = m_aItems[k].m_Next;
 			}
 		}
 	}
-	
+
 	// write data
 	for(int i = 0; i < m_NumDatas; i++)
 	{
@@ -690,10 +690,10 @@ int CDataFileWriter::Finish()
 		mem_free(m_aItems[i].m_pData);
 	for(int i = 0; i < m_NumDatas; ++i)
 		mem_free(m_aDatas[i].m_pCompressedData);
-	
+
 	io_close(m_File);
 	m_File = 0;
-	
+
 	if(DEBUG)
 		dbg_msg("datafile", "done");
 	return 0;
diff --git a/src/engine/shared/datafile.h b/src/engine/shared/datafile.h
index 15bed033..46e8ada8 100644
--- a/src/engine/shared/datafile.h
+++ b/src/engine/shared/datafile.h
@@ -11,14 +11,14 @@ class CDataFileReader
 public:
 	CDataFileReader() : m_pDataFile(0) {}
 	~CDataFileReader() { Close(); }
-	
+
 	bool IsOpen() const { return m_pDataFile != 0; }
-	
+
 	bool Open(class IStorage *pStorage, const char *pFilename, int StorageType);
 	bool Close();
 
 	static bool GetCrcSize(class IStorage *pStorage, const char *pFilename, int StorageType, unsigned *pCrc, unsigned *pSize);
-	
+
 	void *GetData(int Index);
 	void *GetDataSwapped(int Index); // makes sure that the data is 32bit LE ints when saved
 	int GetDataSize(int Index);
@@ -30,7 +30,7 @@ public:
 	int NumItems();
 	int NumData();
 	void Unload();
-	
+
 	unsigned Crc();
 };
 
@@ -60,15 +60,15 @@ class CDataFileWriter
 		int m_First;
 		int m_Last;
 	};
-	
+
 	IOHANDLE m_File;
 	int m_NumItems;
 	int m_NumDatas;
 	int m_NumItemTypes;
 	CItemTypeInfo m_aItemTypes[0xffff];
 	CItemInfo m_aItems[1024];
-	CDataInfo m_aDatas[1024];	
-	
+	CDataInfo m_aDatas[1024];
+
 public:
 	CDataFileWriter() : m_File(0) {}
 	bool Open(class IStorage *pStorage, const char *Filename);
diff --git a/src/engine/shared/demo.cpp b/src/engine/shared/demo.cpp
index ac78f22f..e48c2f1e 100644
--- a/src/engine/shared/demo.cpp
+++ b/src/engine/shared/demo.cpp
@@ -47,7 +47,7 @@ int CDemoRecorder::Start(class IStorage *pStorage, class IConsole *pConsole, con
 		char aBuf[512];
 		str_format(aMapFilename, sizeof(aMapFilename), "%s.map", pMap);
 		if(pStorage->FindFile(aMapFilename, "maps", IStorage::TYPE_ALL, aBuf, sizeof(aBuf)))
-			MapFile =  pStorage->OpenFile(aBuf, IOFLAG_READ, IStorage::TYPE_ALL);
+			MapFile = pStorage->OpenFile(aBuf, IOFLAG_READ, IStorage::TYPE_ALL);
 	}
 	if(!MapFile)
 	{
@@ -67,7 +67,7 @@ int CDemoRecorder::Start(class IStorage *pStorage, class IConsole *pConsole, con
 		m_pConsole->Print(IConsole::OUTPUT_LEVEL_STANDARD, "demo_recorder", aBuf);
 		return -1;
 	}
-	
+
 	// write header
 	mem_zero(&Header, sizeof(Header));
 	mem_copy(Header.m_aMarker, gs_aHeaderMarker, sizeof(Header.m_aMarker));
@@ -87,7 +87,7 @@ int CDemoRecorder::Start(class IStorage *pStorage, class IConsole *pConsole, con
 	// Header.m_Length - add this on stop
 	str_timestamp(Header.m_aTimestamp, sizeof(Header.m_aTimestamp));
 	io_write(DemoFile, &Header, sizeof(Header));
-	
+
 	// write map data
 	while(1)
 	{
@@ -98,11 +98,11 @@ int CDemoRecorder::Start(class IStorage *pStorage, class IConsole *pConsole, con
 		io_write(DemoFile, &aChunk, Bytes);
 	}
 	io_close(MapFile);
-	
+
 	m_LastKeyFrame = -1;
 	m_LastTickMarker = -1;
 	m_FirstTick = -1;
-	
+
 	char aBuf[256];
 	str_format(aBuf, sizeof(aBuf), "Recording to '%s'", pFilename);
 	m_pConsole->Print(IConsole::OUTPUT_LEVEL_STANDARD, "demo_recorder", aBuf);
@@ -113,25 +113,25 @@ int CDemoRecorder::Start(class IStorage *pStorage, class IConsole *pConsole, con
 
 /*
 	Tickmarker
-		7   = Always set
-		6   = Keyframe flag
-		0-5 = Delta tick
-	
+		7	= Always set
+		6	= Keyframe flag
+		0-5	= Delta tick
+
 	Normal
-		7   = Not set
-		5-6 = Type
-		0-4 = Size
+		7 = Not set
+		5-6	= Type
+		0-4	= Size
 */
 
 enum
 {
 	CHUNKTYPEFLAG_TICKMARKER = 0x80,
 	CHUNKTICKFLAG_KEYFRAME = 0x40, // only when tickmarker is set
-	
+
 	CHUNKMASK_TICK = 0x3f,
 	CHUNKMASK_TYPE = 0x60,
 	CHUNKMASK_SIZE = 0x1f,
-	
+
 	CHUNKTYPE_SNAPSHOT = 1,
 	CHUNKTYPE_MESSAGE = 2,
 	CHUNKTYPE_DELTA = 3,
@@ -152,7 +152,7 @@ void CDemoRecorder::WriteTickMarker(int Tick, int Keyframe)
 
 		if(Keyframe)
 			aChunk[0] |= CHUNKTICKFLAG_KEYFRAME;
-		
+
 		io_write(m_File, aChunk, sizeof(aChunk));
 	}
 	else
@@ -160,7 +160,7 @@ void CDemoRecorder::WriteTickMarker(int Tick, int Keyframe)
 		unsigned char aChunk[1];
 		aChunk[0] = CHUNKTYPEFLAG_TICKMARKER | (Tick-m_LastTickMarker);
 		io_write(m_File, aChunk, sizeof(aChunk));
-	}	
+	}
 
 	m_LastTickMarker = Tick;
 	if(m_FirstTick < 0)
@@ -172,7 +172,7 @@ void CDemoRecorder::Write(int Type, const void *pData, int Size)
 	char aBuffer[64*1024];
 	char aBuffer2[64*1024];
 	unsigned char aChunk[3];
-	
+
 	if(!m_File)
 		return;
 
@@ -183,8 +183,8 @@ void CDemoRecorder::Write(int Type, const void *pData, int Size)
 		aBuffer2[Size++] = 0;
 	Size = CVariableInt::Compress(aBuffer2, Size, aBuffer); // buffer2 -> buffer
 	Size = CNetBase::Compress(aBuffer, Size, aBuffer2, sizeof(aBuffer2)); // buffer -> buffer2
-	
-	
+
+
 	aChunk[0] = ((Type&0x3)<<5);
 	if(Size < 30)
 	{
@@ -207,7 +207,7 @@ void CDemoRecorder::Write(int Type, const void *pData, int Size)
 			io_write(m_File, aChunk, 3);
 		}
 	}
-	
+
 	io_write(m_File, aBuffer2, Size);
 }
 
@@ -217,10 +217,10 @@ void CDemoRecorder::RecordSnapshot(int Tick, const void *pData, int Size)
 	{
 		// write full tickmarker
 		WriteTickMarker(Tick, 1);
-		
+
 		// write snapshot
 		Write(CHUNKTYPE_SNAPSHOT, pData, Size);
-			
+
 		m_LastKeyFrame = Tick;
 		mem_copy(m_aLastSnapshotData, pData, Size);
 	}
@@ -232,7 +232,7 @@ void CDemoRecorder::RecordSnapshot(int Tick, const void *pData, int Size)
 
 		// write tickmarker
 		WriteTickMarker(Tick, 0);
-		
+
 		DeltaSize = m_pSnapshotDelta->CreateDelta((CSnapshot*)m_aLastSnapshotData, (CSnapshot*)pData, &aDeltaData);
 		if(DeltaSize)
 		{
@@ -262,7 +262,7 @@ int CDemoRecorder::Stop()
 	aLength[2] = (DemoLength>>8)&0xff;
 	aLength[3] = (DemoLength)&0xff;
 	io_write(m_File, aLength, sizeof(aLength));
-		
+
 	io_close(m_File);
 	m_File = 0;
 	m_pConsole->Print(IConsole::OUTPUT_LEVEL_STANDARD, "demo_recorder", "Stopped recording");
@@ -290,19 +290,19 @@ void CDemoPlayer::SetListner(IListner *pListner)
 int CDemoPlayer::ReadChunkHeader(int *pType, int *pSize, int *pTick)
 {
 	unsigned char Chunk = 0;
-	
+
 	*pSize = 0;
 	*pType = 0;
-	
+
 	if(io_read(m_File, &Chunk, sizeof(Chunk)) != sizeof(Chunk))
 		return -1;
-		
+
 	if(Chunk&CHUNKTYPEFLAG_TICKMARKER)
 	{
 		// decode tick marker
 		int Tickdelta = Chunk&(CHUNKMASK_TICK);
 		*pType = Chunk&(CHUNKTYPEFLAG_TICKMARKER|CHUNKTICKFLAG_KEYFRAME);
-		
+
 		if(Tickdelta == 0)
 		{
 			unsigned char aTickdata[4];
@@ -314,21 +314,21 @@ int CDemoPlayer::ReadChunkHeader(int *pType, int *pSize, int *pTick)
 		{
 			*pTick += Tickdelta;
 		}
-		
+
 	}
 	else
 	{
 		// decode normal chunk
 		*pType = (Chunk&CHUNKMASK_TYPE)>>5;
 		*pSize = Chunk&CHUNKMASK_SIZE;
-		
+
 		if(*pSize == 30)
 		{
 			unsigned char aSizedata[1];
 			if(io_read(m_File, aSizedata, sizeof(aSizedata)) != sizeof(aSizedata))
 				return -1;
 			*pSize = aSizedata[0];
-			
+
 		}
 		else if(*pSize == 31)
 		{
@@ -338,7 +338,7 @@ int CDemoPlayer::ReadChunkHeader(int *pType, int *pSize, int *pTick)
 			*pSize = (aSizedata[1]<<8) | aSizedata[0];
 		}
 	}
-	
+
 	return 0;
 }
 
@@ -358,17 +358,17 @@ void CDemoPlayer::ScanFile()
 	while(1)
 	{
 		long CurrentPos = io_tell(m_File);
-		
+
 		if(ReadChunkHeader(&ChunkType, &ChunkSize, &ChunkTick))
 			break;
-			
+
 		// read the chunk
 		if(ChunkType&CHUNKTYPEFLAG_TICKMARKER)
 		{
 			if(ChunkType&CHUNKTICKFLAG_KEYFRAME)
 			{
 				CKeyFrameSearch *pKey;
-				
+
 				// save the position
 				pKey = (CKeyFrameSearch *)Heap.Allocate(sizeof(CKeyFrameSearch));
 				pKey->m_Frame.m_Filepos = CurrentPos;
@@ -381,21 +381,21 @@ void CDemoPlayer::ScanFile()
 				pCurrentKey = pKey;
 				m_Info.m_SeekablePoints++;
 			}
-			
+
 			if(m_Info.m_Info.m_FirstTick == -1)
 				m_Info.m_Info.m_FirstTick = ChunkTick;
 			m_Info.m_Info.m_LastTick = ChunkTick;
 		}
 		else if(ChunkSize)
 			io_skip(m_File, ChunkSize);
-			
+
 	}
 
 	// copy all the frames to an array instead for fast access
 	m_pKeyFrames = (CKeyFrame*)mem_alloc(m_Info.m_SeekablePoints*sizeof(CKeyFrame), 1);
 	for(pCurrentKey = pFirstKey, i = 0; pCurrentKey; pCurrentKey = pCurrentKey->m_pNext, i++)
 		m_pKeyFrames[i] = pCurrentKey->m_Frame;
-		
+
 	// destroy the temporary heap and seek back to the start
 	io_seek(m_File, StartPos, IOSEEK_START);
 }
@@ -429,7 +429,7 @@ void CDemoPlayer::DoTick()
 				Pause();
 			break;
 		}
-		
+
 		// read the chunk
 		if(ChunkSize)
 		{
@@ -440,7 +440,7 @@ void CDemoPlayer::DoTick()
 				Stop();
 				break;
 			}
-			
+
 			DataSize = CNetBase::Decompress(aCompresseddata, ChunkSize, aDecompressed, sizeof(aDecompressed));
 			if(DataSize < 0)
 			{
@@ -449,7 +449,7 @@ void CDemoPlayer::DoTick()
 				Stop();
 				break;
 			}
-			
+
 			DataSize = CVariableInt::Decompress(aDecompressed, DataSize, aData);
 
 			if(DataSize < 0)
@@ -459,16 +459,16 @@ void CDemoPlayer::DoTick()
 				break;
 			}
 		}
-			
+
 		if(ChunkType == CHUNKTYPE_DELTA)
 		{
 			// process delta snapshot
 			static char aNewsnap[CSnapshot::MAX_SIZE];
-			
+
 			GotSnapshot = 1;
-			
+
 			DataSize = m_pSnapshotDelta->UnpackDelta((CSnapshot*)m_aLastSnapshotData, (CSnapshot*)aNewsnap, aData, DataSize);
-			
+
 			if(DataSize >= 0)
 			{
 				if(m_pListner)
@@ -488,7 +488,7 @@ void CDemoPlayer::DoTick()
 		{
 			// process full snapshot
 			GotSnapshot = 1;
-			
+
 			m_LastSnapshotDataSize = DataSize;
 			mem_copy(m_aLastSnapshotData, aData, DataSize);
 			if(m_pListner)
@@ -502,7 +502,7 @@ void CDemoPlayer::DoTick()
 				GotSnapshot = 1;
 				m_pListner->OnDemoPlayerSnapshot(m_aLastSnapshotData, m_LastSnapshotDataSize);
 			}
-			
+
 			// check the remaining types
 			if(ChunkType&CHUNKTYPEFLAG_TICKMARKER)
 			{
@@ -544,7 +544,7 @@ int CDemoPlayer::Load(class IStorage *pStorage, class IConsole *pConsole, const
 		m_pConsole->Print(IConsole::OUTPUT_LEVEL_STANDARD, "demo_player", aBuf);
 		return -1;
 	}
-	
+
 	// store the filename
 	str_copy(m_aFilename, pFilename, sizeof(m_aFilename));
 
@@ -556,7 +556,7 @@ int CDemoPlayer::Load(class IStorage *pStorage, class IConsole *pConsole, const
 	m_Info.m_Info.m_CurrentTick = -1;
 	m_Info.m_PreviousTick = -1;
 	m_Info.m_Info.m_Speed = 1;
-	
+
 	m_LastSnapshotDataSize = -1;
 
 	// read the header
@@ -580,7 +580,7 @@ int CDemoPlayer::Load(class IStorage *pStorage, class IConsole *pConsole, const
 		m_File = 0;
 		return -1;
 	}
-	
+
 	// get demo type
 	if(!str_comp(m_Info.m_Header.m_aType, "client"))
 		m_DemoType = DEMOTYPE_CLIENT;
@@ -588,17 +588,17 @@ int CDemoPlayer::Load(class IStorage *pStorage, class IConsole *pConsole, const
 		m_DemoType = DEMOTYPE_SERVER;
 	else
 		m_DemoType = DEMOTYPE_INVALID;
-	
+
 	// read map
 	unsigned MapSize = (m_Info.m_Header.m_aMapSize[0]<<24) | (m_Info.m_Header.m_aMapSize[1]<<16) | (m_Info.m_Header.m_aMapSize[2]<<8) | (m_Info.m_Header.m_aMapSize[3]);
-	
+
 	// check if we already have the map
 	// TODO: improve map checking (maps folder, check crc)
 	unsigned Crc = (m_Info.m_Header.m_aMapCrc[0]<<24) | (m_Info.m_Header.m_aMapCrc[1]<<16) | (m_Info.m_Header.m_aMapCrc[2]<<8) | (m_Info.m_Header.m_aMapCrc[3]);
 	char aMapFilename[128];
 	str_format(aMapFilename, sizeof(aMapFilename), "downloadedmaps/%s_%08x.map", m_Info.m_Header.m_aMapName, Crc);
 	IOHANDLE MapFile = pStorage->OpenFile(aMapFilename, IOFLAG_READ, IStorage::TYPE_ALL);
-		
+
 	if(MapFile)
 	{
 		io_skip(m_File, MapSize);
@@ -609,20 +609,20 @@ int CDemoPlayer::Load(class IStorage *pStorage, class IConsole *pConsole, const
 		// get map data
 		unsigned char *pMapData = (unsigned char *)mem_alloc(MapSize, 1);
 		io_read(m_File, pMapData, MapSize);
-			
+
 		// save map
 		MapFile = pStorage->OpenFile(aMapFilename, IOFLAG_WRITE, IStorage::TYPE_SAVE);
 		io_write(MapFile, pMapData, MapSize);
 		io_close(MapFile);
-			
+
 		// free data
 		mem_free(pMapData);
 	}
-	
-	
+
+
 	// scan the file for interessting points
 	ScanFile();
-	
+
 	// ready for playback
 	return 0;
 }
@@ -638,7 +638,7 @@ int CDemoPlayer::Play()
 	// fill in previous and next tick
 	while(m_Info.m_PreviousTick == -1 && IsPlaying())
 		DoTick();
-		
+
 	// set start info
 	/*m_Info.start_tick = m_Info.previous_tick;
 	m_Info.start_time = time_get();*/
@@ -653,15 +653,15 @@ int CDemoPlayer::SetPos(float Percent)
 	int WantedTick;
 	if(!m_File)
 		return -1;
-	
+
 	// -5 because we have to have a current tick and previous tick when we do the playback
 	WantedTick = m_Info.m_Info.m_FirstTick + (int)((m_Info.m_Info.m_LastTick-m_Info.m_Info.m_FirstTick)*Percent) - 5;
-	
+
 	Keyframe = (int)(m_Info.m_SeekablePoints*Percent);
 
 	if(Keyframe < 0 || Keyframe >= m_Info.m_SeekablePoints)
 		return -1;
-	
+
 	// get correct key frame
 	if(m_pKeyFrames[Keyframe].m_Tick < WantedTick)
 		while(Keyframe < m_Info.m_SeekablePoints-1 && m_pKeyFrames[Keyframe].m_Tick < WantedTick)
@@ -669,7 +669,7 @@ int CDemoPlayer::SetPos(float Percent)
 
 	while(Keyframe && m_pKeyFrames[Keyframe].m_Tick > WantedTick)
 		Keyframe--;
-	
+
 	// seek to the correct keyframe
 	io_seek(m_File, m_pKeyFrames[Keyframe].m_Filepos, IOSEEK_START);
 
@@ -681,9 +681,9 @@ int CDemoPlayer::SetPos(float Percent)
 	// playback everything until we hit our tick
 	while(m_Info.m_PreviousTick < WantedTick)
 		DoTick();
-	
+
 	Play();
-	
+
 	return 0;
 }
 
@@ -697,19 +697,19 @@ int CDemoPlayer::Update()
 	int64 Now = time_get();
 	int64 Deltatime = Now-m_Info.m_LastUpdate;
 	m_Info.m_LastUpdate = Now;
-	
+
 	if(!IsPlaying())
 		return 0;
-	
+
 	if(m_Info.m_Info.m_Paused)
 	{
-		
+
 	}
 	else
 	{
 		int64 Freq = time_freq();
 		m_Info.m_CurrentTime += (int64)(Deltatime*(double)m_Info.m_Info.m_Speed);
-		
+
 		while(1)
 		{
 			int64 CurtickStart = (m_Info.m_Info.m_CurrentTick)*Freq/SERVER_TICK_SPEED;
@@ -717,22 +717,22 @@ int CDemoPlayer::Update()
 			// break if we are ready
 			if(CurtickStart > m_Info.m_CurrentTime)
 				break;
-			
+
 			// do one more tick
 			DoTick();
-			
+
 			if(m_Info.m_Info.m_Paused)
 				return 0;
 		}
 
 		// update intratick
-		{	
+		{
 			int64 CurtickStart = (m_Info.m_Info.m_CurrentTick)*Freq/SERVER_TICK_SPEED;
 			int64 PrevtickStart = (m_Info.m_PreviousTick)*Freq/SERVER_TICK_SPEED;
 			m_Info.m_IntraTick = (m_Info.m_CurrentTime - PrevtickStart) / (float)(CurtickStart-PrevtickStart);
 			m_Info.m_TickTime = (m_Info.m_CurrentTime - PrevtickStart) / (float)Freq;
 		}
-		
+
 		if(m_Info.m_Info.m_CurrentTick == m_Info.m_PreviousTick ||
 			m_Info.m_Info.m_CurrentTick == m_Info.m_NextTick)
 		{
@@ -742,7 +742,7 @@ int CDemoPlayer::Update()
 			m_pConsole->Print(IConsole::OUTPUT_LEVEL_ADDINFO, "demo_player", aBuf);
 		}
 	}
-	
+
 	return 0;
 }
 
@@ -750,7 +750,7 @@ int CDemoPlayer::Stop()
 {
 	if(!m_File)
 		return -1;
-		
+
 	m_pConsole->Print(IConsole::OUTPUT_LEVEL_STANDARD, "demo_player", "Stopped playback");
 	io_close(m_File);
 	m_File = 0;
@@ -776,20 +776,20 @@ bool CDemoPlayer::GetDemoInfo(class IStorage *pStorage, const char *pFilename, i
 {
 	if(!pDemoHeader)
 		return false;
-	
+
 	mem_zero(pDemoHeader, sizeof(CDemoHeader));
 
 	IOHANDLE File = pStorage->OpenFile(pFilename, IOFLAG_READ, StorageType);
 	if(!File)
 		return false;
-	
+
 	io_read(File, pDemoHeader, sizeof(CDemoHeader));
 	if(mem_comp(pDemoHeader->m_aMarker, gs_aHeaderMarker, sizeof(gs_aHeaderMarker)) || pDemoHeader->m_Version < gs_ActVersion)
 	{
 		io_close(File);
 		return false;
 	}
-	
+
 	io_close(File);
 	return true;
 }
diff --git a/src/engine/shared/demo.h b/src/engine/shared/demo.h
index c877536d..f1897f21 100644
--- a/src/engine/shared/demo.h
+++ b/src/engine/shared/demo.h
@@ -17,12 +17,12 @@ class CDemoRecorder : public IDemoRecorder
 	int m_FirstTick;
 	unsigned char m_aLastSnapshotData[CSnapshot::MAX_SIZE];
 	class CSnapshotDelta *m_pSnapshotDelta;
-	
+
 	void WriteTickMarker(int Tick, int Keyframe);
 	void Write(int Type, const void *pData, int Size);
 public:
 	CDemoRecorder(class CSnapshotDelta *pSnapshotDelta);
-	
+
 	int Start(class IStorage *pStorage, class IConsole *pConsole, const char *pFilename, const char *pNetversion, const char *pMap, unsigned MapCrc, const char *pType);
 	int Stop();
 
@@ -44,21 +44,21 @@ public:
 		virtual void OnDemoPlayerSnapshot(void *pData, int Size) = 0;
 		virtual void OnDemoPlayerMessage(void *pData, int Size) = 0;
 	};
-	
+
 	struct CPlaybackInfo
 	{
 		CDemoHeader m_Header;
-		
+
 		IDemoPlayer::CInfo m_Info;
 
 		int64 m_LastUpdate;
 		int64 m_CurrentTime;
-		
+
 		int m_SeekablePoints;
-		
+
 		int m_NextTick;
 		int m_PreviousTick;
-		
+
 		float m_IntraTick;
 		float m_TickTime;
 	};
@@ -73,12 +73,12 @@ private:
 		long m_Filepos;
 		int m_Tick;
 	};
-		
+
 	struct CKeyFrameSearch
 	{
 		CKeyFrame m_Frame;
 		CKeyFrameSearch *m_pNext;
-	};	
+	};
 
 	class IConsole *m_pConsole;
 	IOHANDLE m_File;
@@ -97,25 +97,25 @@ private:
 	int NextFrame();
 
 public:
-	
+
 	CDemoPlayer(class CSnapshotDelta *m_pSnapshotDelta);
-	
+
 	void SetListner(IListner *pListner);
-		
+
 	int Load(class IStorage *pStorage, class IConsole *pConsole, const char *pFilename, int StorageType);
 	int Play();
 	void Pause();
 	void Unpause();
-	int Stop();	
+	int Stop();
 	void SetSpeed(float Speed);
 	int SetPos(float Precent);
 	const CInfo *BaseInfo() const { return &m_Info.m_Info; }
 	char *GetDemoName();
 	bool GetDemoInfo(class IStorage *pStorage, const char *pFilename, int StorageType, CDemoHeader *pDemoHeader) const;
 	int GetDemoType() const;
-	
+
 	int Update();
-	
+
 	const CPlaybackInfo *Info() const { return &m_Info; }
 	int IsPlaying() const { return m_File != 0; }
 };
diff --git a/src/engine/shared/engine.cpp b/src/engine/shared/engine.cpp
index b4b4f2a5..5cc19c00 100644
--- a/src/engine/shared/engine.cpp
+++ b/src/engine/shared/engine.cpp
@@ -43,7 +43,7 @@ public:
 			pEngine->m_Logging = false;
 		}
 		else
-		{			
+		{
 			char aBuf[32];
 			str_timestamp(aBuf, sizeof(aBuf));
 			char aFilenameSent[128], aFilenameRecv[128];
@@ -59,7 +59,7 @@ public:
 	{
 		dbg_logger_stdout();
 		dbg_logger_debugger();
-	
+
 		//
 		dbg_msg("engine", "running on %s-%s-%s", CONF_FAMILY_STRING, CONF_PLATFORM_STRING, CONF_ARCH_STRING);
 	#ifdef CONF_ARCH_ENDIAN_LITTLE
@@ -73,7 +73,7 @@ public:
 		// init the network
 		net_init();
 		CNetBase::Init();
-	
+
 		m_JobPool.Init(1);
 
 		m_Logging = false;
diff --git a/src/engine/shared/huffman.cpp b/src/engine/shared/huffman.cpp
index feb35b96..c88502b5 100644
--- a/src/engine/shared/huffman.cpp
+++ b/src/engine/shared/huffman.cpp
@@ -15,7 +15,7 @@ void CHuffman::Setbits_r(CNode *pNode, int Bits, unsigned Depth)
 		Setbits_r(&m_aNodes[pNode->m_aLeafs[1]], Bits|(1<<Depth), Depth+1);
 	if(pNode->m_aLeafs[0] != 0xffff)
 		Setbits_r(&m_aNodes[pNode->m_aLeafs[0]], Bits, Depth+1);
-		
+
 	if(pNode->m_NumBits)
 	{
 		pNode->m_Bits = Bits;
@@ -28,7 +28,7 @@ static void BubbleSort(CHuffmanConstructNode **ppList, int Size)
 {
 	int Changed = 1;
 	CHuffmanConstructNode *pTemp;
-	
+
 	while(Changed)
 	{
 		Changed = 0;
@@ -68,15 +68,15 @@ void CHuffman::ConstructTree(const unsigned *pFrequencies)
 		apNodesLeft[i] = &aNodesLeftStorage[i];
 
 	}
-	
+
 	m_NumNodes = HUFFMAN_MAX_SYMBOLS;
-	
+
 	// construct the table
 	while(NumNodesLeft > 1)
 	{
 		// we can't rely on stdlib's qsort for this, it can generate different results on different implementations
 		BubbleSort(apNodesLeft, NumNodesLeft);
-		
+
 		m_aNodes[m_NumNodes].m_NumBits = 0;
 		m_aNodes[m_NumNodes].m_aLeafs[0] = apNodesLeft[NumNodesLeft-1]->m_NodeId;
 		m_aNodes[m_NumNodes].m_aLeafs[1] = apNodesLeft[NumNodesLeft-2]->m_NodeId;
@@ -89,7 +89,7 @@ void CHuffman::ConstructTree(const unsigned *pFrequencies)
 
 	// set start node
 	m_pStartNode = &m_aNodes[m_NumNodes-1];
-	
+
 	// build symbol bits
 	Setbits_r(m_pStartNode, 0, 0);
 }
@@ -230,7 +230,7 @@ int CHuffman::Decompress(const void *pInput, int InputSize, void *pOutput, int O
 		// {C} load symbol now if we didn't that earlier at location {A}
 		if(!pNode)
 			pNode = m_apDecodeLut[Bits&HUFFMAN_LUTMASK];
-		
+
 		if(!pNode)
 			return -1;
 
diff --git a/src/engine/shared/huffman.h b/src/engine/shared/huffman.h
index 0edc36c6..0d15ed99 100644
--- a/src/engine/shared/huffman.h
+++ b/src/engine/shared/huffman.h
@@ -13,7 +13,7 @@ class CHuffman
 
 		HUFFMAN_MAX_SYMBOLS=HUFFMAN_EOF_SYMBOL+1,
 		HUFFMAN_MAX_NODES=HUFFMAN_MAX_SYMBOLS*2-1,
-		
+
 		HUFFMAN_LUTBITS = 10,
 		HUFFMAN_LUTSIZE = (1<<HUFFMAN_LUTBITS),
 		HUFFMAN_LUTMASK = (HUFFMAN_LUTSIZE-1)
@@ -36,10 +36,10 @@ class CHuffman
 	CNode *m_apDecodeLut[HUFFMAN_LUTSIZE];
 	CNode *m_pStartNode;
 	int m_NumNodes;
-	
+
 	void Setbits_r(CNode *pNode, int Bits, unsigned Depth);
 	void ConstructTree(const unsigned *pFrequencies);
-	
+
 public:
 	/*
 		Function: huffman_init
@@ -86,6 +86,6 @@ public:
 			Returns the size of the uncompressed data. Negative value on failure.
 	*/
 	int Decompress(const void *pInput, int InputSize, void *pOutput, int OutputSize);
-	
+
 };
 #endif // __HUFFMAN_HEADER__
diff --git a/src/engine/shared/jobs.cpp b/src/engine/shared/jobs.cpp
index 4bc09325..02db4634 100644
--- a/src/engine/shared/jobs.cpp
+++ b/src/engine/shared/jobs.cpp
@@ -14,11 +14,11 @@ CJobPool::CJobPool()
 void CJobPool::WorkerThread(void *pUser)
 {
 	CJobPool *pPool = (CJobPool *)pUser;
-	
+
 	while(1)
 	{
 		CJob *pJob = 0;
-		
+
 		// fetch job from queue
 		lock_wait(pPool->m_Lock);
 		if(pPool->m_pFirstJob)
@@ -31,7 +31,7 @@ void CJobPool::WorkerThread(void *pUser)
 				pPool->m_pLastJob = 0;
 		}
 		lock_release(pPool->m_Lock);
-		
+
 		// do the job if we have one
 		if(pJob)
 		{
@@ -42,7 +42,7 @@ void CJobPool::WorkerThread(void *pUser)
 		else
 			thread_sleep(10);
 	}
-	
+
 }
 
 int CJobPool::Init(int NumThreads)
@@ -58,9 +58,9 @@ int CJobPool::Add(CJob *pJob, JOBFUNC pfnFunc, void *pData)
 	mem_zero(pJob, sizeof(CJob));
 	pJob->m_pfnFunc = pfnFunc;
 	pJob->m_pFuncData = pData;
-	
+
 	lock_wait(m_Lock);
-	
+
 	// add job to queue
 	pJob->m_pPrev = m_pLastJob;
 	if(m_pLastJob)
@@ -68,7 +68,7 @@ int CJobPool::Add(CJob *pJob, JOBFUNC pfnFunc, void *pData)
 	m_pLastJob = pJob;
 	if(!m_pFirstJob)
 		m_pFirstJob = pJob;
-	
+
 	lock_release(m_Lock);
 	return 0;
 }
diff --git a/src/engine/shared/jobs.h b/src/engine/shared/jobs.h
index 2b0d7d15..9e15228a 100644
--- a/src/engine/shared/jobs.h
+++ b/src/engine/shared/jobs.h
@@ -9,14 +9,14 @@ class CJobPool;
 class CJob
 {
 	friend class CJobPool;
-	
+
 	CJobPool *m_pPool;
 	CJob *m_pPrev;
 	CJob *m_pNext;
-	
+
 	volatile int m_Status;
 	volatile int m_Result;
-	
+
 	JOBFUNC m_pfnFunc;
 	void *m_pFuncData;
 public:
@@ -25,14 +25,14 @@ public:
 		m_Status = STATE_DONE;
 		m_pFuncData = 0;
 	}
-	
+
 	enum
 	{
 		STATE_PENDING=0,
 		STATE_RUNNING,
 		STATE_DONE
 	};
-	
+
 	int Status() const { return m_Status; }
 	int Result() const {return m_Result; }
 };
@@ -42,12 +42,12 @@ class CJobPool
 	LOCK m_Lock;
 	CJob *m_pFirstJob;
 	CJob *m_pLastJob;
-	
+
 	static void WorkerThread(void *pUser);
-	
+
 public:
 	CJobPool();
-	
+
 	int Init(int NumThreads);
 	int Add(CJob *pJob, JOBFUNC pfnFunc, void *pData);
 };
diff --git a/src/engine/shared/kernel.cpp b/src/engine/shared/kernel.cpp
index f59af8c7..b422b591 100644
--- a/src/engine/shared/kernel.cpp
+++ b/src/engine/shared/kernel.cpp
@@ -9,7 +9,7 @@ class CKernel : public IKernel
 	{
 		MAX_INTERFACES=32,
 	};
-	
+
 	class CInterfaceInfo
 	{
 	public:
@@ -18,14 +18,14 @@ class CKernel : public IKernel
 			m_aName[0] = 0;
 			m_pInterface = 0x0;
 		}
-		
+
 		char m_aName[64];
 		IInterface *m_pInterface;
 	};
 
 	CInterfaceInfo m_aInterfaces[MAX_INTERFACES];
 	int m_NumInterfaces;
-	
+
 	CInterfaceInfo *FindInterfaceInfo(const char *pName)
 	{
 		for(int i = 0; i < m_NumInterfaces; i++)
@@ -35,7 +35,7 @@ class CKernel : public IKernel
 		}
 		return 0x0;
 	}
-	
+
 public:
 
 	CKernel()
@@ -58,18 +58,18 @@ public:
 			dbg_msg("kernel", "ERROR: couldn't register interface '%s'. maximum of interfaces reached", pName);
 			return false;
 		}
-			
+
 		if(FindInterfaceInfo(pName) != 0)
 		{
 			dbg_msg("kernel", "ERROR: couldn't register interface '%s'. interface already exists", pName);
 			return false;
 		}
-		
+
 		pInterface->m_pKernel = this;
 		m_aInterfaces[m_NumInterfaces].m_pInterface = pInterface;
 		str_copy(m_aInterfaces[m_NumInterfaces].m_aName, pName, sizeof(m_aInterfaces[m_NumInterfaces].m_aName));
 		m_NumInterfaces++;
-		
+
 		return true;
 	}
 
@@ -80,12 +80,12 @@ public:
 			dbg_msg("kernel", "ERROR: couldn't reregister interface '%s'. interface doesn't exist");
 			return false;
 		}
-		
+
 		pInterface->m_pKernel = this;
-		
+
 		return true;
 	}
-	
+
 	virtual IInterface *RequestInterfaceImpl(const char *pName)
 	{
 		CInterfaceInfo *pInfo = FindInterfaceInfo(pName);
diff --git a/src/engine/shared/map.cpp b/src/engine/shared/map.cpp
index c57dd708..36c89cdc 100644
--- a/src/engine/shared/map.cpp
+++ b/src/engine/shared/map.cpp
@@ -10,7 +10,7 @@ class CMap : public IEngineMap
 	CDataFileReader m_DataFile;
 public:
 	CMap() {}
-	
+
 	virtual void *GetData(int Index) { return m_DataFile.GetData(Index); }
 	virtual void *GetDataSwapped(int Index) { return m_DataFile.GetDataSwapped(Index); }
 	virtual void UnloadData(int Index) { m_DataFile.UnloadData(Index); }
@@ -18,7 +18,7 @@ public:
 	virtual void GetType(int Type, int *pStart, int *pNum) { m_DataFile.GetType(Type, pStart, pNum); }
 	virtual void *FindItem(int Type, int ID) { return m_DataFile.FindItem(Type, ID); }
 	virtual int NumItems() { return m_DataFile.NumItems(); }
-	
+
 	virtual void Unload()
 	{
 		m_DataFile.Close();
@@ -31,12 +31,12 @@ public:
 			return false;
 		return m_DataFile.Open(pStorage, pMapName, IStorage::TYPE_ALL);
 	}
-	
+
 	virtual bool IsLoaded()
 	{
 		return m_DataFile.IsOpen();
 	}
-	
+
 	virtual unsigned Crc()
 	{
 		return m_DataFile.Crc();
diff --git a/src/engine/shared/mapchecker.cpp b/src/engine/shared/mapchecker.cpp
index dec4271d..f8ba30ae 100644
--- a/src/engine/shared/mapchecker.cpp
+++ b/src/engine/shared/mapchecker.cpp
@@ -42,7 +42,7 @@ void CMapChecker::AddMaplist(CMapVersion *pMaplist, int Num)
 		m_pFirst = pEntry;
 
 		str_copy(pEntry->m_aMapName, pMaplist[i].m_aName, sizeof(pEntry->m_aMapName));
-		pEntry->m_MapCrc = (pMaplist[i].m_aCrc[0]<<24) | (pMaplist[i].m_aCrc[1]<<16) | (pMaplist[i].m_aCrc[2]<<8) | pMaplist[i].m_aCrc[3]; 
+		pEntry->m_MapCrc = (pMaplist[i].m_aCrc[0]<<24) | (pMaplist[i].m_aCrc[1]<<16) | (pMaplist[i].m_aCrc[2]<<8) | pMaplist[i].m_aCrc[3];
 		pEntry->m_MapSize = (pMaplist[i].m_aSize[0]<<24) | (pMaplist[i].m_aSize[1]<<16) | (pMaplist[i].m_aSize[2]<<8) | pMaplist[i].m_aSize[3];
 	}
 }
diff --git a/src/engine/shared/mapchecker.h b/src/engine/shared/mapchecker.h
index 0d4332d9..6d9568d0 100644
--- a/src/engine/shared/mapchecker.h
+++ b/src/engine/shared/mapchecker.h
@@ -19,7 +19,7 @@ class CMapChecker
 		unsigned m_MapSize;
 		CWhitelistEntry *m_pNext;
 	};
-	
+
 	class CHeap m_Whitelist;
 	CWhitelistEntry *m_pFirst;
 
diff --git a/src/engine/shared/masterserver.cpp b/src/engine/shared/masterserver.cpp
index 0e8cb394..1bf402ca 100644
--- a/src/engine/shared/masterserver.cpp
+++ b/src/engine/shared/masterserver.cpp
@@ -19,7 +19,7 @@ public:
 		char m_aHostname[128];
 		NETADDR m_Addr;
 		bool m_Valid;
-		
+
 		CHostLookup m_Lookup;
 	} ;
 
@@ -27,7 +27,7 @@ public:
 	int m_NeedsUpdate;
 	IEngine *m_pEngine;
 	IStorage *m_pStorage;
-	
+
 	CMasterServer()
 	{
 		SetDefault();
@@ -38,10 +38,10 @@ public:
 	virtual int RefreshAddresses(int Nettype)
 	{
 		int i;
-		
+
 		if(m_NeedsUpdate != -1)
 			return 0;
-		
+
 		dbg_msg("engine/mastersrv", "refreshing master server addresses");
 
 		// add lookup jobs
@@ -50,7 +50,7 @@ public:
 			m_pEngine->HostLookup(&m_aMasterServers[i].m_Lookup, m_aMasterServers[i].m_aHostname, Nettype);
 			m_aMasterServers[i].m_Valid = false;
 		}
-		
+
 		m_NeedsUpdate = 1;
 		return 0;
 	}
@@ -61,7 +61,7 @@ public:
 		if(m_NeedsUpdate != 1)
 			return;
 		m_NeedsUpdate = 0;
-		
+
 		for(int i = 0; i < MAX_MASTERSERVERS; i++)
 		{
 			if(m_aMasterServers[i].m_Lookup.m_Job.Status() != CJob::STATE_DONE)
@@ -78,7 +78,7 @@ public:
 					m_aMasterServers[i].m_Valid = false;
 			}
 		}
-		
+
 		if(!m_NeedsUpdate)
 		{
 			dbg_msg("engine/mastersrv", "saving addresses");
@@ -91,12 +91,12 @@ public:
 		return m_NeedsUpdate;
 	}
 
-	virtual NETADDR GetAddr(int Index) 
+	virtual NETADDR GetAddr(int Index)
 	{
 		return m_aMasterServers[Index].m_Addr;
 	}
 
-	virtual const char *GetName(int Index) 
+	virtual const char *GetName(int Index)
 	{
 		return m_aMasterServers[Index].m_aHostname;
 	}
@@ -136,12 +136,12 @@ public:
 		int Count = 0;
 		if(!m_pStorage)
 			return -1;
-		
+
 		// try to open file
 		File = m_pStorage->OpenFile("masters.cfg", IOFLAG_READ, IStorage::TYPE_SAVE);
 		if(!File)
 			return -1;
-		
+
 		LineReader.Init(File);
 		while(1)
 		{
@@ -166,7 +166,7 @@ public:
 			//else
 			//	dbg_msg("engine/mastersrv", "warning: couldn't parse master server '%s'", pLine);
 		}
-		
+
 		io_close(File);
 		return 0;
 	}
@@ -177,7 +177,7 @@ public:
 
 		if(!m_pStorage)
 			return -1;
-			
+
 		// try to open file
 		File = m_pStorage->OpenFile("masters.cfg", IOFLAG_WRITE, IStorage::TYPE_SAVE);
 		if(!File)
@@ -189,10 +189,10 @@ public:
 			net_addr_str(&m_aMasterServers[i].m_Addr, aAddrStr, sizeof(aAddrStr));
 			char aBuf[1024];
 			str_format(aBuf, sizeof(aBuf), "%s %s\n", m_aMasterServers[i].m_aHostname, aAddrStr);
-				
+
 			io_write(File, aBuf, str_length(aBuf));
 		}
-		
+
 		io_close(File);
 		return 0;
 	}
diff --git a/src/engine/shared/memheap.cpp b/src/engine/shared/memheap.cpp
index 850577dd..c1c09eaf 100644
--- a/src/engine/shared/memheap.cpp
+++ b/src/engine/shared/memheap.cpp
@@ -10,7 +10,7 @@ void CHeap::NewChunk()
 {
 	CChunk *pChunk;
 	char *pMem;
-	
+
 	// allocate memory
 	pMem = (char*)mem_alloc(sizeof(CChunk)+CHUNK_SIZE, 1);
 	if(!pMem)
@@ -25,14 +25,14 @@ void CHeap::NewChunk()
 	pChunk->m_pNext = (CChunk *)0x0;
 
 	pChunk->m_pNext = m_pCurrent;
-	m_pCurrent = pChunk;	
+	m_pCurrent = pChunk;
 }
 
 //****************
 void *CHeap::AllocateFromChunk(unsigned int Size)
 {
 	char *pMem;
-	
+
 	// check if we need can fit the allocation
 	if(m_pCurrent->m_pCurrent + Size > m_pCurrent->m_pEnd)
 		return (void*)0x0;
@@ -66,14 +66,14 @@ void CHeap::Clear()
 {
 	CChunk *pChunk = m_pCurrent;
 	CChunk *pNext;
-	
+
 	while(pChunk)
 	{
 		pNext = pChunk->m_pNext;
 		mem_free(pChunk);
 		pChunk = pNext;
 	}
-	
+
 	m_pCurrent = 0x0;
 }
 
@@ -88,10 +88,10 @@ void *CHeap::Allocate(unsigned Size)
 	{
 		// allocate new chunk and add it to the heap
 		NewChunk();
-		
+
 		// try to allocate again
 		pMem = (char *)AllocateFromChunk(Size);
 	}
-	
+
 	return pMem;
 }
diff --git a/src/engine/shared/memheap.h b/src/engine/shared/memheap.h
index 7228212a..39adf2b1 100644
--- a/src/engine/shared/memheap.h
+++ b/src/engine/shared/memheap.h
@@ -11,20 +11,20 @@ class CHeap
 		char *m_pEnd;
 		CChunk *m_pNext;
 	};
-	
+
 	enum
 	{
 		// how large each chunk should be
 		CHUNK_SIZE = 1025*64,
 	};
-	
+
 	CChunk *m_pCurrent;
-	
-	
+
+
 	void Clear();
 	void NewChunk();
 	void *AllocateFromChunk(unsigned int Size);
-	
+
 public:
 	CHeap();
 	~CHeap();
diff --git a/src/engine/shared/network.cpp b/src/engine/shared/network.cpp
index 89ffae6d..ada4b18a 100644
--- a/src/engine/shared/network.cpp
+++ b/src/engine/shared/network.cpp
@@ -26,35 +26,35 @@ int CNetRecvUnpacker::FetchChunk(CNetChunk *pChunk)
 {
 	CNetChunkHeader Header;
 	unsigned char *pEnd = m_Data.m_aChunkData + m_Data.m_DataSize;
-	
+
 	while(1)
 	{
 		unsigned char *pData = m_Data.m_aChunkData;
-		
+
 		// check for old data to unpack
 		if(!m_Valid || m_CurrentChunk >= m_Data.m_NumChunks)
 		{
 			Clear();
 			return 0;
 		}
-		
+
 		// TODO: add checking here so we don't read too far
 		for(int i = 0; i < m_CurrentChunk; i++)
 		{
 			pData = Header.Unpack(pData);
 			pData += Header.m_Size;
 		}
-		
+
 		// unpack the header
 		pData = Header.Unpack(pData);
 		m_CurrentChunk++;
-		
+
 		if(pData+Header.m_Size > pEnd)
 		{
 			Clear();
 			return 0;
 		}
-		
+
 		// handle sequence stuff
 		if(m_pConnection && (Header.m_Flags&NET_CHUNKFLAG_VITAL))
 		{
@@ -76,7 +76,7 @@ int CNetRecvUnpacker::FetchChunk(CNetChunk *pChunk)
 				continue; // take the next chunk in the packet
 			}
 		}
-		
+
 		// fill in the info
 		pChunk->m_ClientID = m_ClientID;
 		pChunk->m_Address = m_Addr;
@@ -116,7 +116,7 @@ void CNetBase::SendPacket(NETSOCKET Socket, NETADDR *pAddr, CNetPacketConstruct
 		io_write(ms_DataLogSent, &pPacket->m_aChunkData, pPacket->m_DataSize);
 		io_flush(ms_DataLogSent);
 	}
-	
+
 	// compress
 	CompressedSize = ms_Huffman.Compress(pPacket->m_aChunkData, pPacket->m_DataSize, &aBuffer[3], NET_MAX_PACKETSIZE-4);
 
@@ -174,7 +174,7 @@ int CNetBase::UnpackPacket(unsigned char *pBuffer, int Size, CNetPacketConstruct
 		io_write(ms_DataLogRecv, pBuffer, Size);
 		io_flush(ms_DataLogRecv);
 	}
-	
+
 	// read the packet
 	pPacket->m_Flags = pBuffer[0]>>4;
 	pPacket->m_Ack = ((pBuffer[0]&0xf)<<8) | pBuffer[1];
@@ -188,7 +188,7 @@ int CNetBase::UnpackPacket(unsigned char *pBuffer, int Size, CNetPacketConstruct
 			dbg_msg("", "connection less packet too small, %d", Size);
 			return -1;
 		}
-			
+
 		pPacket->m_Flags = NET_PACKETFLAG_CONNLESS;
 		pPacket->m_Ack = 0;
 		pPacket->m_NumChunks = 0;
@@ -220,7 +220,7 @@ int CNetBase::UnpackPacket(unsigned char *pBuffer, int Size, CNetPacketConstruct
 		io_write(ms_DataLogRecv, pPacket->m_aChunkData, pPacket->m_DataSize);
 		io_flush(ms_DataLogRecv);
 	}
-		
+
 	// return success
 	return 0;
 }
@@ -235,7 +235,7 @@ void CNetBase::SendControlMsg(NETSOCKET Socket, NETADDR *pAddr, int Ack, int Con
 	Construct.m_DataSize = 1+ExtraSize;
 	Construct.m_aChunkData[0] = ControlMsg;
 	mem_copy(&Construct.m_aChunkData[1], pExtra, ExtraSize);
-	
+
 	// send the control message
 	CNetBase::SendPacket(Socket, pAddr, &Construct);
 }
@@ -284,7 +284,7 @@ int CNetBase::IsSeqInBackroom(int Seq, int Ack)
 		if(Seq <= Ack && Seq >= Bottom)
 			return 1;
 	}
-	
+
 	return 0;
 }
 
diff --git a/src/engine/shared/network.h b/src/engine/shared/network.h
index cb1ec33a..f344049e 100644
--- a/src/engine/shared/network.h
+++ b/src/engine/shared/network.h
@@ -13,7 +13,7 @@ CURRENT:
 		unsigned char flags_ack; // 4bit flags, 4bit ack
 		unsigned char ack; // 8 bit ack
 		unsigned char num_chunks; // 8 bit chunks
-		
+
 		(unsigned char padding[3])	// 24 bit extra incase it's a connection less packet
 									// this is to make sure that it's compatible with the
 									// old protocol
@@ -30,11 +30,11 @@ enum
 	NETSENDFLAG_VITAL=1,
 	NETSENDFLAG_CONNLESS=2,
 	NETSENDFLAG_FLUSH=4,
-	
+
 	NETSTATE_OFFLINE=0,
 	NETSTATE_CONNECTING,
 	NETSTATE_ONLINE,
-	
+
 	NETBANTYPE_SOFT=1,
 	NETBANTYPE_DROP=2
 };
@@ -65,17 +65,17 @@ enum
 
 	NET_CHUNKFLAG_VITAL=1,
 	NET_CHUNKFLAG_RESEND=2,
-	
+
 	NET_CTRLMSG_KEEPALIVE=0,
 	NET_CTRLMSG_CONNECT=1,
 	NET_CTRLMSG_CONNECTACCEPT=2,
 	NET_CTRLMSG_ACCEPT=3,
 	NET_CTRLMSG_CLOSE=4,
-	
+
 	NET_SERVER_MAXBANS=1024,
-	
+
 	NET_CONN_BUFFERSIZE=1024*32,
-	
+
 	NET_ENUM_TERMINATOR
 };
 
@@ -100,7 +100,7 @@ public:
 	int m_Flags;
 	int m_Size;
 	int m_Sequence;
-	
+
 	unsigned char *Pack(unsigned char *pData);
 	unsigned char *Unpack(unsigned char *pData);
 };
@@ -138,30 +138,30 @@ private:
 	unsigned short m_Sequence;
 	unsigned short m_Ack;
 	unsigned m_State;
-	
+
 	int m_Token;
 	int m_RemoteClosed;
-	
+
 	TStaticRingBuffer<CNetChunkResend, NET_CONN_BUFFERSIZE> m_Buffer;
-	
+
 	int64 m_LastUpdateTime;
 	int64 m_LastRecvTime;
 	int64 m_LastSendTime;
-	
+
 	char m_ErrorString[256];
-	
+
 	CNetPacketConstruct m_Construct;
-	
+
 	NETADDR m_PeerAddr;
 	NETSOCKET m_Socket;
 	NETSTATS m_Stats;
-	
+
 	//
 	void Reset();
 	void ResetStats();
 	void SetError(const char *pString);
 	void AckChunks(int Ack);
-	
+
 	int QueueChunkEx(int Flags, int DataSize, const void *pData, int Sequence);
 	void SendControl(int ControlMsg, const void *pExtra, int ExtraSize);
 	void ResendChunk(CNetChunkResend *pResend);
@@ -173,7 +173,7 @@ public:
 	void Disconnect(const char *pReason);
 
 	int Update();
-	int Flush();	
+	int Flush();
 
 	int Feed(CNetPacketConstruct *pPacket, NETADDR *pAddr);
 	int QueueChunk(int Flags, int DataSize, const void *pData);
@@ -182,13 +182,13 @@ public:
 	void SignalResend();
 	int State() const { return m_State; }
 	NETADDR PeerAddress() const { return m_PeerAddr; }
-	
+
 	void ResetErrorString() { m_ErrorString[0] = 0; }
 	const char *ErrorString() const { return m_ErrorString; }
-	
+
 	// Needed for GotProblems in NetClient
 	int64 LastRecvTime() const { return m_LastRecvTime; }
-	
+
 	int AckSequence() const { return m_Ack; }
 };
 
@@ -196,7 +196,7 @@ struct CNetRecvUnpacker
 {
 public:
 	bool m_Valid;
-	
+
 	NETADDR m_Addr;
 	CNetConnection *m_pConnection;
 	int m_CurrentChunk;
@@ -207,7 +207,7 @@ public:
 	CNetRecvUnpacker() { Clear(); }
 	void Clear();
 	void Start(const NETADDR *pAddr, CNetConnection *pConnection, int ClientID);
-	int FetchChunk(CNetChunk *pChunk);	
+	int FetchChunk(CNetChunk *pChunk);
 };
 
 // server side
@@ -220,29 +220,29 @@ public:
 		int m_Expires;
 		char m_Reason[128];
 	};
-	
+
 private:
 	class CSlot
 	{
 	public:
 		CNetConnection m_Connection;
 	};
-	
+
 	class CBan
 	{
 	public:
 		CBanInfo m_Info;
-		
+
 		// hash list
 		CBan *m_pHashNext;
 		CBan *m_pHashPrev;
-		
+
 		// used or free list
 		CBan *m_pNext;
 		CBan *m_pPrev;
 	};
-	
-	
+
+
 	NETSOCKET m_Socket;
 	CSlot m_aSlots[NET_MAX_CLIENTS];
 	int m_MaxClients;
@@ -256,23 +256,23 @@ private:
 	NETFUNC_NEWCLIENT m_pfnNewClient;
 	NETFUNC_DELCLIENT m_pfnDelClient;
 	void *m_UserPtr;
-	
+
 	CNetRecvUnpacker m_RecvUnpacker;
-	
+
 	void BanRemoveByObject(CBan *pBan);
-	
+
 public:
 	int SetCallbacks(NETFUNC_NEWCLIENT pfnNewClient, NETFUNC_DELCLIENT pfnDelClient, void *pUser);
 
 	//
 	bool Open(NETADDR BindAddr, int MaxClients, int MaxClientsPerIP, int Flags);
 	int Close();
-	
+
 	//
 	int Recv(CNetChunk *pChunk);
 	int Send(CNetChunk *pChunk);
 	int Update();
-	
+
 	//
 	int Drop(int ClientID, const char *pReason);
 
@@ -304,21 +304,21 @@ public:
 	// openness
 	bool Open(NETADDR BindAddr, int Flags);
 	int Close();
-	
+
 	// connection state
 	int Disconnect(const char *Reason);
 	int Connect(NETADDR *Addr);
-	
+
 	// communication
 	int Recv(CNetChunk *Chunk);
 	int Send(CNetChunk *Chunk);
-	
+
 	// pumping
 	int Update();
 	int Flush();
 
 	int ResetErrorString();
-	
+
 	// error and state
 	int State();
 	int GotProblems();
@@ -339,14 +339,14 @@ public:
 	static void Init();
 	static int Compress(const void *pData, int DataSize, void *pOutput, int OutputSize);
 	static int Decompress(const void *pData, int DataSize, void *pOutput, int OutputSize);
-	
+
 	static void SendControlMsg(NETSOCKET Socket, NETADDR *pAddr, int Ack, int ControlMsg, const void *pExtra, int ExtraSize);
 	static void SendPacketConnless(NETSOCKET Socket, NETADDR *pAddr, const void *pData, int DataSize);
 	static void SendPacket(NETSOCKET Socket, NETADDR *pAddr, CNetPacketConstruct *pPacket);
 	static int UnpackPacket(unsigned char *pBuffer, int Size, CNetPacketConstruct *pPacket);
 
 	// The backroom is ack-NET_MAX_SEQUENCE/2. Used for knowing if we acked a packet or not
-	static int IsSeqInBackroom(int Seq, int Ack);	
+	static int IsSeqInBackroom(int Seq, int Ack);
 };
 
 
diff --git a/src/engine/shared/network_client.cpp b/src/engine/shared/network_client.cpp
index 82a09474..2c035606 100644
--- a/src/engine/shared/network_client.cpp
+++ b/src/engine/shared/network_client.cpp
@@ -61,7 +61,7 @@ int CNetClient::Recv(CNetChunk *pChunk)
 		// check for a chunk
 		if(m_RecvUnpacker.FetchChunk(pChunk))
 			return 1;
-		
+
 		// TODO: empty the recvinfo
 		NETADDR Addr;
 		int Bytes = net_udp_recv(m_Socket, &Addr, m_RecvUnpacker.m_aBuffer, NET_MAX_PACKETSIZE);
@@ -98,7 +98,7 @@ int CNetClient::Send(CNetChunk *pChunk)
 		dbg_msg("netclient", "chunk payload too big. %d. dropping chunk", pChunk->m_DataSize);
 		return -1;
 	}
-	
+
 	if(pChunk->m_Flags&NETSENDFLAG_CONNLESS)
 	{
 		// send connectionless packet
@@ -108,10 +108,10 @@ int CNetClient::Send(CNetChunk *pChunk)
 	{
 		int Flags = 0;
 		dbg_assert(pChunk->m_ClientID == 0, "errornous client id");
-		
+
 		if(pChunk->m_Flags&NETSENDFLAG_VITAL)
 			Flags = NET_CHUNKFLAG_VITAL;
-		
+
 		m_Connection.QueueChunk(Flags, pChunk->m_DataSize, pChunk->m_pData);
 
 		if(pChunk->m_Flags&NETSENDFLAG_FLUSH)
diff --git a/src/engine/shared/network_conn.cpp b/src/engine/shared/network_conn.cpp
index dd61de86..6531f5aa 100644
--- a/src/engine/shared/network_conn.cpp
+++ b/src/engine/shared/network_conn.cpp
@@ -14,16 +14,16 @@ void CNetConnection::Reset()
 	m_Sequence = 0;
 	m_Ack = 0;
 	m_RemoteClosed = 0;
-	
+
 	m_State = NET_CONNSTATE_OFFLINE;
 	m_LastSendTime = 0;
 	m_LastRecvTime = 0;
 	m_LastUpdateTime = 0;
 	m_Token = -1;
 	mem_zero(&m_PeerAddr, sizeof(m_PeerAddr));
-	
+
 	m_Buffer.Init();
-	
+
 	mem_zero(&m_Construct, sizeof(m_Construct));
 }
 
@@ -41,7 +41,7 @@ void CNetConnection::Init(NETSOCKET Socket)
 {
 	Reset();
 	ResetStats();
-	
+
 	m_Socket = Socket;
 	mem_zero(m_ErrorString, sizeof(m_ErrorString));
 }
@@ -53,7 +53,7 @@ void CNetConnection::AckChunks(int Ack)
 		CNetChunkResend *pResend = m_Buffer.First();
 		if(!pResend)
 			break;
-		
+
 		if(CNetBase::IsSeqInBackroom(pResend->m_Sequence, Ack))
 			m_Buffer.PopFirst();
 		else
@@ -75,10 +75,10 @@ int CNetConnection::Flush()
 	// send of the packets
 	m_Construct.m_Ack = m_Ack;
 	CNetBase::SendPacket(m_Socket, &m_PeerAddr, &m_Construct);
-	
+
 	// update send times
 	m_LastSendTime = time_get();
-	
+
 	// clear construct so we can start building a new package
 	mem_zero(&m_Construct, sizeof(m_Construct));
 	return NumChunks;
@@ -87,7 +87,7 @@ int CNetConnection::Flush()
 int CNetConnection::QueueChunkEx(int Flags, int DataSize, const void *pData, int Sequence)
 {
 	unsigned char *pChunkData;
-	
+
 	// check if we have space for it, if not, flush the connection
 	if(m_Construct.m_DataSize + DataSize + NET_MAX_CHUNKHEADERSIZE > (int)sizeof(m_Construct.m_aChunkData))
 		Flush();
@@ -105,9 +105,9 @@ int CNetConnection::QueueChunkEx(int Flags, int DataSize, const void *pData, int
 	//
 	m_Construct.m_NumChunks++;
 	m_Construct.m_DataSize = (int)(pChunkData-m_Construct.m_aChunkData);
-	
+
 	// set packet flags aswell
-	
+
 	if(Flags&NET_CHUNKFLAG_VITAL && !(Flags&NET_CHUNKFLAG_RESEND))
 	{
 		// save packet if we need to resend
@@ -163,7 +163,7 @@ int CNetConnection::Connect(NETADDR *pAddr)
 {
 	if(State() != NET_CONNSTATE_OFFLINE)
 		return -1;
-	
+
 	// init connection
 	Reset();
 	m_PeerAddr = *pAddr;
@@ -189,14 +189,14 @@ void CNetConnection::Disconnect(const char *pReason)
 		if(pReason)
 			str_copy(m_ErrorString, pReason, sizeof(m_ErrorString));
 	}
-	
+
 	Reset();
 }
 
 int CNetConnection::Feed(CNetPacketConstruct *pPacket, NETADDR *pAddr)
 {
 	int64 Now = time_get();
-	
+
 	// check if resend is requested
 	if(pPacket->m_Flags&NET_PACKETFLAG_RESEND)
 		Resend();
@@ -205,14 +205,14 @@ int CNetConnection::Feed(CNetPacketConstruct *pPacket, NETADDR *pAddr)
 	if(pPacket->m_Flags&NET_PACKETFLAG_CONTROL)
 	{
 		int CtrlMsg = pPacket->m_aChunkData[0];
-		
+
 		if(CtrlMsg == NET_CTRLMSG_CLOSE)
 		{
 			if(net_addr_comp(&m_PeerAddr, pAddr) == 0)
 			{
 				m_State = NET_CONNSTATE_ERROR;
 				m_RemoteClosed = 1;
-				
+
 				if(pPacket->m_DataSize)
 				{
 					// make sure to sanitize the error string form the other party
@@ -222,17 +222,17 @@ int CNetConnection::Feed(CNetPacketConstruct *pPacket, NETADDR *pAddr)
 					else
 						str_copy(Str, (char *)pPacket->m_aChunkData, sizeof(Str));
 					str_sanitize_strong(Str);
-					
+
 					// set the error string
 					SetError(Str);
 				}
 				else
 					SetError("No reason given");
-					
+
 				if(g_Config.m_Debug)
 					dbg_msg("conn", "closed reason='%s'", ErrorString());
 			}
-			return 0;			
+			return 0;
 		}
 		else
 		{
@@ -249,7 +249,7 @@ int CNetConnection::Feed(CNetPacketConstruct *pPacket, NETADDR *pAddr)
 					m_LastUpdateTime = Now;
 					SendControl(NET_CTRLMSG_CONNECTACCEPT, 0, 0);
 					if(g_Config.m_Debug)
-						dbg_msg("connection", "got connection, sending connect+accept");			
+						dbg_msg("connection", "got connection, sending connect+accept");
 				}
 			}
 			else if(State() == NET_CONNSTATE_CONNECT)
@@ -276,13 +276,13 @@ int CNetConnection::Feed(CNetPacketConstruct *pPacket, NETADDR *pAddr)
 				dbg_msg("connection", "connecting online");
 		}
 	}
-	
+
 	if(State() == NET_CONNSTATE_ONLINE)
 	{
 		m_LastRecvTime = Now;
 		AckChunks(pPacket->m_Ack);
 	}
-	
+
 	return 1;
 }
 
@@ -292,7 +292,7 @@ int CNetConnection::Update()
 
 	if(State() == NET_CONNSTATE_OFFLINE || State() == NET_CONNSTATE_ERROR)
 		return 0;
-	
+
 	// check for timeout
 	if(State() != NET_CONNSTATE_OFFLINE &&
 		State() != NET_CONNSTATE_CONNECT &&
@@ -320,7 +320,7 @@ int CNetConnection::Update()
 				ResendChunk(pResend);
 		}
 	}
-	
+
 	// send keep alives if nothing has happend for 250ms
 	if(State() == NET_CONNSTATE_ONLINE)
 	{
@@ -330,7 +330,7 @@ int CNetConnection::Update()
 			if(NumFlushedChunks && g_Config.m_Debug)
 				dbg_msg("connection", "flushed connection due to timeout. %d chunks.", NumFlushedChunks);
 		}
-			
+
 		if(time_get()-m_LastSendTime > time_freq())
 			SendControl(NET_CTRLMSG_KEEPALIVE, 0, 0);
 	}
@@ -344,6 +344,6 @@ int CNetConnection::Update()
 		if(time_get()-m_LastSendTime > time_freq()/2) // send a new connect/accept every 500ms
 			SendControl(NET_CTRLMSG_CONNECTACCEPT, 0, 0);
 	}
-	
+
 	return 0;
 }
diff --git a/src/engine/shared/network_server.cpp b/src/engine/shared/network_server.cpp
index 76d5f695..3078ab9f 100644
--- a/src/engine/shared/network_server.cpp
+++ b/src/engine/shared/network_server.cpp
@@ -8,7 +8,7 @@
 	Object->Prev = (struct CBan *)0; \
 	Object->Next = First; \
 	First = Object; }
-	
+
 #define MACRO_LIST_LINK_AFTER(Object, After, Prev, Next) \
 	{ Object->Prev = After; \
 	Object->Next = After->Next; \
@@ -22,7 +22,7 @@
 	if(Object->Prev) Object->Prev->Next = Object->Next; \
 	else First = Object->Next; \
 	Object->Next = 0; Object->Prev = 0; }
-	
+
 #define MACRO_LIST_FIND(Start, Next, Expression) \
 	{ while(Start && !(Expression)) Start = Start->Next; }
 
@@ -30,12 +30,12 @@ bool CNetServer::Open(NETADDR BindAddr, int MaxClients, int MaxClientsPerIP, int
 {
 	// zero out the whole structure
 	mem_zero(this, sizeof(*this));
-	
+
 	// open socket
 	m_Socket = net_udp_create(BindAddr);
 	if(!m_Socket.type)
 		return false;
-	
+
 	// clamp clients
 	m_MaxClients = MaxClients;
 	if(m_MaxClients > NET_MAX_CLIENTS)
@@ -44,17 +44,17 @@ bool CNetServer::Open(NETADDR BindAddr, int MaxClients, int MaxClientsPerIP, int
 		m_MaxClients = 1;
 
 	m_MaxClientsPerIP = MaxClientsPerIP;
-	
+
 	for(int i = 0; i < NET_MAX_CLIENTS; i++)
 		m_aSlots[i].m_Connection.Init(m_Socket);
-	
+
 	// setup all pointers for bans
 	for(int i = 1; i < NET_SERVER_MAXBANS-1; i++)
 	{
 		m_BanPool[i].m_pNext = &m_BanPool[i+1];
 		m_BanPool[i].m_pPrev = &m_BanPool[i-1];
 	}
-	
+
 	m_BanPool[0].m_pNext = &m_BanPool[1];
 	m_BanPool[NET_SERVER_MAXBANS-1].m_pPrev = &m_BanPool[NET_SERVER_MAXBANS-2];
 	m_BanPool_FirstFree = &m_BanPool[0];
@@ -88,9 +88,9 @@ int CNetServer::Drop(int ClientID, const char *pReason)
 		);*/
 	if(m_pfnDelClient)
 		m_pfnDelClient(ClientID, pReason, m_UserPtr);
-		
+
 	m_aSlots[ClientID].m_Connection.Disconnect(pReason);
-		
+
 	return 0;
 }
 
@@ -99,7 +99,7 @@ int CNetServer::BanGet(int Index, CBanInfo *pInfo)
 	CBan *pBan;
 	for(pBan = m_BanPool_FirstUsed; pBan && Index; pBan = pBan->m_pNext, Index--)
 		{}
-		
+
 	if(!pBan)
 		return 0;
 	*pInfo = pBan->m_Info;
@@ -134,15 +134,15 @@ int CNetServer::BanRemove(NETADDR Addr)
 	int IpHash = (Addr.ip[0]+Addr.ip[1]+Addr.ip[2]+Addr.ip[3]+Addr.ip[4]+Addr.ip[5]+Addr.ip[6]+Addr.ip[7]+
 					Addr.ip[8]+Addr.ip[9]+Addr.ip[10]+Addr.ip[11]+Addr.ip[12]+Addr.ip[13]+Addr.ip[14]+Addr.ip[15])&0xff;
 	CBan *pBan = m_aBans[IpHash];
-	
+
 	MACRO_LIST_FIND(pBan, m_pHashNext, net_addr_comp(&pBan->m_Info.m_Addr, &Addr) == 0);
-	
+
 	if(pBan)
 	{
 		BanRemoveByObject(pBan);
 		return 0;
 	}
-	
+
 	return -1;
 }
 
@@ -152,13 +152,13 @@ int CNetServer::BanAdd(NETADDR Addr, int Seconds, const char *pReason)
 					Addr.ip[8]+Addr.ip[9]+Addr.ip[10]+Addr.ip[11]+Addr.ip[12]+Addr.ip[13]+Addr.ip[14]+Addr.ip[15])&0xff;
 	int Stamp = -1;
 	CBan *pBan;
-	
+
 	// remove the port
 	Addr.port = 0;
-	
+
 	if(Seconds)
 		Stamp = time_timestamp() + Seconds;
-		
+
 	// search to see if it already exists
 	pBan = m_aBans[IpHash];
 	MACRO_LIST_FIND(pBan, m_pHashNext, net_addr_comp(&pBan->m_Info.m_Addr, &Addr) == 0);
@@ -168,29 +168,29 @@ int CNetServer::BanAdd(NETADDR Addr, int Seconds, const char *pReason)
 		pBan->m_Info.m_Expires = Stamp;
 		return 0;
 	}
-	
+
 	if(!m_BanPool_FirstFree)
 		return -1;
 
 	// fetch and clear the new ban
 	pBan = m_BanPool_FirstFree;
 	MACRO_LIST_UNLINK(pBan, m_BanPool_FirstFree, m_pPrev, m_pNext);
-	
+
 	// setup the ban info
 	pBan->m_Info.m_Expires = Stamp;
 	pBan->m_Info.m_Addr = Addr;
 	str_copy(pBan->m_Info.m_Reason, pReason, sizeof(pBan->m_Info.m_Reason));
-	
+
 	// add it to the ban hash
 	MACRO_LIST_LINK_FIRST(pBan, m_aBans[IpHash], m_pHashPrev, m_pHashNext);
-	
+
 	// insert it into the used list
 	{
 		if(m_BanPool_FirstUsed)
 		{
 			CBan *pInsertAfter = m_BanPool_FirstUsed;
 			MACRO_LIST_FIND(pInsertAfter, m_pNext, Stamp < pInsertAfter->m_Info.m_Expires);
-			
+
 			if(pInsertAfter)
 				pInsertAfter = pInsertAfter->m_pPrev;
 			else
@@ -200,7 +200,7 @@ int CNetServer::BanAdd(NETADDR Addr, int Seconds, const char *pReason)
 				while(pInsertAfter->m_pNext)
 					pInsertAfter = pInsertAfter->m_pNext;
 			}
-			
+
 			if(pInsertAfter)
 			{
 				MACRO_LIST_LINK_AFTER(pBan, pInsertAfter, m_pPrev, m_pNext);
@@ -220,7 +220,7 @@ int CNetServer::BanAdd(NETADDR Addr, int Seconds, const char *pReason)
 	{
 		char Buf[128];
 		NETADDR BanAddr;
-		
+
 		int Mins = (Seconds + 59) / 60;
 		if(Mins)
 		{
@@ -231,12 +231,12 @@ int CNetServer::BanAdd(NETADDR Addr, int Seconds, const char *pReason)
 		}
 		else
 			str_format(Buf, sizeof(Buf), "You have been banned for life (%s)", pReason);
-		
+
 		for(int i = 0; i < MaxClients(); i++)
 		{
 			BanAddr = m_aSlots[i].m_Connection.PeerAddress();
 			BanAddr.port = 0;
-			
+
 			if(net_addr_comp(&Addr, &BanAddr) == 0)
 				Drop(i, Buf);
 		}
@@ -253,14 +253,14 @@ int CNetServer::Update()
 		if(m_aSlots[i].m_Connection.State() == NET_CONNSTATE_ERROR)
 			Drop(i, m_aSlots[i].m_Connection.ErrorString());
 	}
-	
+
 	// remove expired bans
 	while(m_BanPool_FirstUsed && m_BanPool_FirstUsed->m_Info.m_Expires < Now)
 	{
 		CBan *pBan = m_BanPool_FirstUsed;
 		BanRemoveByObject(pBan);
 	}
-	
+
 	return 0;
 }
 
@@ -270,22 +270,22 @@ int CNetServer::Update()
 int CNetServer::Recv(CNetChunk *pChunk)
 {
 	unsigned Now = time_timestamp();
-	
+
 	while(1)
 	{
 		NETADDR Addr;
-			
+
 		// check for a chunk
 		if(m_RecvUnpacker.FetchChunk(pChunk))
 			return 1;
-		
+
 		// TODO: empty the recvinfo
 		int Bytes = net_udp_recv(m_Socket, &Addr, m_RecvUnpacker.m_aBuffer, NET_MAX_PACKETSIZE);
 
 		// no more packets for now
 		if(Bytes <= 0)
 			break;
-		
+
 		if(CNetBase::UnpackPacket(m_RecvUnpacker.m_aBuffer, Bytes, &m_RecvUnpacker.m_Data) == 0)
 		{
 			CBan *pBan = 0;
@@ -294,14 +294,14 @@ int CNetServer::Recv(CNetChunk *pChunk)
 							BanAddr.ip[8]+BanAddr.ip[9]+BanAddr.ip[10]+BanAddr.ip[11]+BanAddr.ip[12]+BanAddr.ip[13]+BanAddr.ip[14]+BanAddr.ip[15])&0xff;
 			int Found = 0;
 			BanAddr.port = 0;
-			
+
 			// search a ban
 			for(pBan = m_aBans[IpHash]; pBan; pBan = pBan->m_pHashNext)
 			{
 				if(net_addr_comp(&pBan->m_Info.m_Addr, &BanAddr) == 0)
 					break;
 			}
-			
+
 			// check if we just should drop the packet
 			if(pBan)
 			{
@@ -320,7 +320,7 @@ int CNetServer::Recv(CNetChunk *pChunk)
 				CNetBase::SendControlMsg(m_Socket, &Addr, 0, NET_CTRLMSG_CLOSE, BanStr, str_length(BanStr)+1);
 				continue;
 			}
-			
+
 			if(m_RecvUnpacker.m_Data.m_Flags&NET_PACKETFLAG_CONNLESS)
 			{
 				pChunk->m_Flags = NETSENDFLAG_CONNLESS;
@@ -331,12 +331,12 @@ int CNetServer::Recv(CNetChunk *pChunk)
 				return 1;
 			}
 			else
-			{			
+			{
 				// TODO: check size here
 				if(m_RecvUnpacker.m_Data.m_Flags&NET_PACKETFLAG_CONTROL && m_RecvUnpacker.m_Data.m_aChunkData[0] == NET_CTRLMSG_CONNECT)
 				{
 					Found = 0;
-				
+
 					// check if we already got this client
 					for(int i = 0; i < MaxClients(); i++)
 					{
@@ -348,7 +348,7 @@ int CNetServer::Recv(CNetChunk *pChunk)
 							break;
 						}
 					}
-					
+
 					// client that wants to connect
 					if(!Found)
 					{
@@ -386,7 +386,7 @@ int CNetServer::Recv(CNetChunk *pChunk)
 								break;
 							}
 						}
-						
+
 						if(!Found)
 						{
 							const char FullMsg[] = "This server is full";
@@ -423,7 +423,7 @@ int CNetServer::Send(CNetChunk *pChunk)
 		dbg_msg("netserver", "packet payload too big. %d. dropping packet", pChunk->m_DataSize);
 		return -1;
 	}
-	
+
 	if(pChunk->m_Flags&NETSENDFLAG_CONNLESS)
 	{
 		// send connectionless packet
@@ -434,10 +434,10 @@ int CNetServer::Send(CNetChunk *pChunk)
 		int Flags = 0;
 		dbg_assert(pChunk->m_ClientID >= 0, "errornous client id");
 		dbg_assert(pChunk->m_ClientID < MaxClients(), "errornous client id");
-		
+
 		if(pChunk->m_Flags&NETSENDFLAG_VITAL)
 			Flags = NET_CHUNKFLAG_VITAL;
-		
+
 		if(m_aSlots[pChunk->m_ClientID].m_Connection.QueueChunk(Flags, pChunk->m_DataSize, pChunk->m_pData) == 0)
 		{
 			if(pChunk->m_Flags&NETSENDFLAG_FLUSH)
diff --git a/src/engine/shared/packer.cpp b/src/engine/shared/packer.cpp
index cd211468..cc218825 100644
--- a/src/engine/shared/packer.cpp
+++ b/src/engine/shared/packer.cpp
@@ -17,7 +17,7 @@ void CPacker::AddInt(int i)
 {
 	if(m_Error)
 		return;
-		
+
 	// make sure that we have space enough
 	if(m_pEnd - m_pCurrent < 6)
 	{
@@ -32,7 +32,7 @@ void CPacker::AddString(const char *pStr, int Limit)
 {
 	if(m_Error)
 		return;
-	
+
 	//
 	if(Limit > 0)
 	{
@@ -40,7 +40,7 @@ void CPacker::AddString(const char *pStr, int Limit)
 		{
 			*m_pCurrent++ = *pStr++;
 			Limit--;
-			
+
 			if(m_pCurrent >= m_pEnd)
 			{
 				m_Error = 1;
@@ -69,13 +69,13 @@ void CPacker::AddRaw(const void *pData, int Size)
 {
 	if(m_Error)
 		return;
-		
+
 	if(m_pCurrent+Size >= m_pEnd)
 	{
 		m_Error = 1;
 		return;
 	}
-	
+
 	const unsigned char *pSrc = (const unsigned char *)pData;
 	while(Size)
 	{
@@ -97,13 +97,13 @@ int CUnpacker::GetInt()
 {
 	if(m_Error)
 		return 0;
-		
+
 	if(m_pCurrent >= m_pEnd)
 	{
 		m_Error = 1;
 		return 0;
 	}
-	
+
 	int i;
 	m_pCurrent = CVariableInt::Unpack(m_pCurrent, &i);
 	if(m_pCurrent > m_pEnd)
@@ -118,7 +118,7 @@ const char *CUnpacker::GetString(int SanitizeType)
 {
 	if(m_Error || m_pCurrent >= m_pEnd)
 		return "";
-		
+
 	char *pPtr = (char *)m_pCurrent;
 	while(*m_pCurrent) // skip the string
 	{
@@ -130,7 +130,7 @@ const char *CUnpacker::GetString(int SanitizeType)
 		}
 	}
 	m_pCurrent++;
-	
+
 	// sanitize all strings
 	if(SanitizeType&SANITIZE)
 		str_sanitize(pPtr);
@@ -144,7 +144,7 @@ const unsigned char *CUnpacker::GetRaw(int Size)
 	const unsigned char *pPtr = m_pCurrent;
 	if(m_Error)
 		return 0;
-	
+
 	// check for nasty sizes
 	if(Size < 0 || m_pCurrent+Size > m_pEnd)
 	{
diff --git a/src/engine/shared/packer.h b/src/engine/shared/packer.h
index 9091370a..bd04e36e 100644
--- a/src/engine/shared/packer.h
+++ b/src/engine/shared/packer.h
@@ -21,7 +21,7 @@ public:
 	void AddInt(int i);
 	void AddString(const char *pStr, int Limit);
 	void AddRaw(const void *pData, int Size);
-	
+
 	int Size() const { return (int)(m_pCurrent-m_aBuffer); }
 	const unsigned char *Data() const { return m_aBuffer; }
 	bool Error() const { return m_Error; }
diff --git a/src/engine/shared/protocol.h b/src/engine/shared/protocol.h
index 859f4941..4a4895ad 100644
--- a/src/engine/shared/protocol.h
+++ b/src/engine/shared/protocol.h
@@ -7,13 +7,13 @@
 
 /*
 	Connection diagram - How the initilization works.
-	
+
 	Client -> INFO -> Server
 		Contains version info, name, and some other info.
-		
+
 	Client <- MAP <- Server
 		Contains current map.
-	
+
 	Client -> READY -> Server
 		The client has loaded the map and is ready to go,
 		but the mod needs to send it's information aswell.
@@ -21,7 +21,7 @@
 		mods_connected is called on the server.
 		The client should call client_entergame when the
 		mod has done it's initilization.
-		
+
 	Client -> ENTERGAME -> Server
 		Tells the server to start sending snapshots.
 		client_entergame and server_client_enter is called.
@@ -31,11 +31,11 @@
 enum
 {
 	NETMSG_NULL=0,
-	
+
 	// the first thing sent by the client
 	// contains the version info for the client
 	NETMSG_INFO=1,
-	
+
 	// sent by server
 	NETMSG_MAP_CHANGE,		// sent when client should switch map
 	NETMSG_MAP_DATA,		// map transfer, contains a chunk of the map file
@@ -50,18 +50,18 @@ enum
 
 	NETMSG_AUTH_CHALLANGE,	//
 	NETMSG_AUTH_RESULT,		//
-	
+
 	// sent by client
 	NETMSG_READY,			//
 	NETMSG_ENTERGAME,
 	NETMSG_INPUT,			// contains the inputdata from the client
-	NETMSG_RCON_CMD,		// 
+	NETMSG_RCON_CMD,		//
 	NETMSG_RCON_AUTH,		//
 	NETMSG_REQUEST_MAP_DATA,//
 
 	NETMSG_AUTH_START,		//
 	NETMSG_AUTH_RESPONSE,	//
-	
+
 	// sent by both
 	NETMSG_PING,
 	NETMSG_PING_REPLY,
diff --git a/src/engine/shared/ringbuffer.cpp b/src/engine/shared/ringbuffer.cpp
index 172508d7..b9f55d73 100644
--- a/src/engine/shared/ringbuffer.cpp
+++ b/src/engine/shared/ringbuffer.cpp
@@ -3,7 +3,7 @@
 #include <base/system.h>
 
 #include "ringbuffer.h"
-	
+
 CRingBufferBase::CItem *CRingBufferBase::NextBlock(CItem *pItem)
 {
 	if(pItem->m_pNext)
@@ -27,19 +27,19 @@ CRingBufferBase::CItem *CRingBufferBase::MergeBack(CItem *pItem)
 	// merge the blocks
 	pItem->m_pPrev->m_Size += pItem->m_Size;
 	pItem->m_pPrev->m_pNext = pItem->m_pNext;
-	
+
 	// fixup pointers
 	if(pItem->m_pNext)
 		pItem->m_pNext->m_pPrev = pItem->m_pPrev;
 	else
 		m_pLast = pItem->m_pPrev;
-		
+
 	if(pItem == m_pProduce)
 		m_pProduce = pItem->m_pPrev;
-	
+
 	if(pItem == m_pConsume)
 		m_pConsume = pItem->m_pPrev;
-	
+
 	// return the current block
 	return pItem->m_pPrev;
 }
@@ -54,8 +54,8 @@ void CRingBufferBase::Init(void *pMemory, int Size, int Flags)
 	m_pLast = m_pFirst;
 	m_pProduce = m_pFirst;
 	m_pConsume = m_pFirst;
-	m_Flags = Flags;		
-	
+	m_Flags = Flags;
+
 }
 
 void *CRingBufferBase::Allocate(int Size)
@@ -67,7 +67,7 @@ void *CRingBufferBase::Allocate(int Size)
 	if(WantedSize > m_Size)
 		return 0;
 
-	while(1)	
+	while(1)
 	{
 		// check for space
 		if(m_pProduce->m_Free)
@@ -81,7 +81,7 @@ void *CRingBufferBase::Allocate(int Size)
 					pBlock = m_pFirst;
 			}
 		}
-		
+
 		if(pBlock)
 			break;
 		else
@@ -96,9 +96,9 @@ void *CRingBufferBase::Allocate(int Size)
 				return 0;
 		}
 	}
-	
+
 	// okey, we have our block
-	
+
 	// split the block if needed
 	if(pBlock->m_Size > WantedSize+(int)sizeof(CItem))
 	{
@@ -108,19 +108,19 @@ void *CRingBufferBase::Allocate(int Size)
 		if(pNewItem->m_pNext)
 			pNewItem->m_pNext->m_pPrev = pNewItem;
 		pBlock->m_pNext = pNewItem;
-		
+
 		pNewItem->m_Free = 1;
 		pNewItem->m_Size = pBlock->m_Size - WantedSize;
 		pBlock->m_Size = WantedSize;
-		
+
 		if(!pNewItem->m_pNext)
 			m_pLast = pNewItem;
 	}
-	
-	
+
+
 	// set next block
 	m_pProduce = NextBlock(pBlock);
-	
+
 	// set as used and return the item pointer
 	pBlock->m_Free = 0;
 	return (void *)(pBlock+1);
@@ -130,13 +130,13 @@ int CRingBufferBase::PopFirst()
 {
 	if(m_pConsume->m_Free)
 		return 0;
-	
+
 	// set the free flag
 	m_pConsume->m_Free = 1;
-	
+
 	// previous block is also free, merge them
 	m_pConsume = MergeBack(m_pConsume);
-	
+
 	// advance the consume pointer
 	m_pConsume = NextBlock(m_pConsume);
 	while(m_pConsume->m_Free && m_pConsume != m_pProduce)
@@ -144,7 +144,7 @@ int CRingBufferBase::PopFirst()
 		m_pConsume = MergeBack(m_pConsume);
 		m_pConsume = NextBlock(m_pConsume);
 	}
-		
+
 	// in the case that we have catched up with the produce pointer
 	// we might stand on a free block so merge em
 	MergeBack(m_pConsume);
@@ -155,7 +155,7 @@ int CRingBufferBase::PopFirst()
 void *CRingBufferBase::Prev(void *pCurrent)
 {
 	CItem *pItem = ((CItem *)pCurrent) - 1;
-	
+
 	while(1)
 	{
 		pItem = PrevBlock(pItem);
@@ -169,7 +169,7 @@ void *CRingBufferBase::Prev(void *pCurrent)
 void *CRingBufferBase::Next(void *pCurrent)
 {
 	CItem *pItem = ((CItem *)pCurrent) - 1;
-	
+
 	while(1)
 	{
 		pItem = NextBlock(pItem);
diff --git a/src/engine/shared/ringbuffer.h b/src/engine/shared/ringbuffer.h
index 9f0c5a1d..c4774528 100644
--- a/src/engine/shared/ringbuffer.h
+++ b/src/engine/shared/ringbuffer.h
@@ -15,28 +15,28 @@ class CRingBufferBase
 		int m_Free;
 		int m_Size;
 	};
-	
+
 	CItem *m_pProduce;
 	CItem *m_pConsume;
-	
+
 	CItem *m_pFirst;
 	CItem *m_pLast;
-	
+
 	void *m_pMemory;
 	int m_Size;
 	int m_Flags;
-	
+
 	CItem *NextBlock(CItem *pItem);
 	CItem *PrevBlock(CItem *pItem);
 	CItem *MergeBack(CItem *pItem);
 protected:
 	void *Allocate(int Size);
-	
+
 	void *Prev(void *pCurrent);
 	void *Next(void *pCurrent);
 	void *First();
 	void *Last();
-	
+
 	void Init(void *pMemory, int Size, int Flags);
 	int PopFirst();
 public:
@@ -53,9 +53,9 @@ class TStaticRingBuffer : public CRingBufferBase
 	unsigned char m_aBuffer[TSIZE];
 public:
 	TStaticRingBuffer() { Init(); }
-	
+
 	void Init() { CRingBufferBase::Init(m_aBuffer, TSIZE, TFLAGS); }
-	
+
 	T *Allocate(int Size) { return (T*)CRingBufferBase::Allocate(Size); }
 	int PopFirst() { return CRingBufferBase::PopFirst(); }
 
diff --git a/src/engine/shared/snapshot.cpp b/src/engine/shared/snapshot.cpp
index fee6afa2..9ef8fdc3 100644
--- a/src/engine/shared/snapshot.cpp
+++ b/src/engine/shared/snapshot.cpp
@@ -12,31 +12,31 @@ CSnapshotItem *CSnapshot::GetItem(int Index)
 
 int CSnapshot::GetItemSize(int Index)
 {
-    if(Index == m_NumItems-1)
-        return (m_DataSize - Offsets()[Index]) - sizeof(CSnapshotItem);
-    return (Offsets()[Index+1] - Offsets()[Index]) - sizeof(CSnapshotItem);
+	if(Index == m_NumItems-1)
+		return (m_DataSize - Offsets()[Index]) - sizeof(CSnapshotItem);
+	return (Offsets()[Index+1] - Offsets()[Index]) - sizeof(CSnapshotItem);
 }
 
 int CSnapshot::GetItemIndex(int Key)
 {
-    // TODO: OPT: this should not be a linear search. very bad
-    for(int i = 0; i < m_NumItems; i++)
-    {
-        if(GetItem(i)->Key() == Key)
-            return i;
-    }
-    return -1;
+	// TODO: OPT: this should not be a linear search. very bad
+	for(int i = 0; i < m_NumItems; i++)
+	{
+		if(GetItem(i)->Key() == Key)
+			return i;
+	}
+	return -1;
 }
 
 int CSnapshot::Crc()
 {
 	int Crc = 0;
-	
+
 	for(int i = 0; i < m_NumItems; i++)
 	{
 		CSnapshotItem *pItem = GetItem(i);
 		int Size = GetItemSize(i);
-		
+
 		for(int b = 0; b < Size/4; b++)
 			Crc += pItem->Data()[b];
 	}
@@ -75,7 +75,7 @@ static void GenerateHash(CItemList *pHashlist, CSnapshot *pSnapshot)
 {
 	for(int i = 0; i < HASHLIST_SIZE; i++)
 		pHashlist[i].m_Num = 0;
-		
+
 	for(int i = 0; i < pSnapshot->NumItems(); i++)
 	{
 		int Key = pSnapshot->GetItem(i)->Key();
@@ -97,7 +97,7 @@ static int GetItemIndexHashed(int Key, const CItemList *pHashlist)
 			if(pHashlist[HashID].m_aKeys[i] == Key)
 				return pHashlist[HashID].m_aIndex[i];
 	}
-	
+
 	return -1;
 }
 
@@ -113,7 +113,7 @@ static int DiffItem(int *pPast, int *pCurrent, int *pOut, int Size)
 		pCurrent++;
 		Size--;
 	}
-	
+
 	return Needed;
 }
 
@@ -122,16 +122,16 @@ void CSnapshotDelta::UndiffItem(int *pPast, int *pDiff, int *pOut, int Size)
 	while(Size)
 	{
 		*pOut = *pPast+*pDiff;
-		
+
 		if(*pDiff == 0)
 			m_aSnapshotDataRate[m_SnapshotCurrent] += 1;
 		else
 		{
 			unsigned char aBuf[16];
-			unsigned char *pEnd = CVariableInt::Pack(aBuf,  *pDiff);
+			unsigned char *pEnd = CVariableInt::Pack(aBuf, *pDiff);
 			m_aSnapshotDataRate[m_SnapshotCurrent] += (int)(pEnd - (unsigned char*)aBuf) * 8;
 		}
-		
+
 		pOut++;
 		pPast++;
 		pDiff++;
@@ -169,11 +169,11 @@ int CSnapshotDelta::CreateDelta(CSnapshot *pFrom, CSnapshot *pTo, void *pDstData
 	CSnapshotItem *pPastItem;
 	int Count = 0;
 	int SizeCount = 0;
-	
+
 	pDelta->m_NumDeletedItems = 0;
 	pDelta->m_NumUpdateItems = 0;
 	pDelta->m_NumTempItems = 0;
-	
+
 	CItemList Hashlist[HASHLIST_SIZE];
 	GenerateHash(Hashlist, pTo);
 
@@ -189,7 +189,7 @@ int CSnapshotDelta::CreateDelta(CSnapshot *pFrom, CSnapshot *pTo, void *pDstData
 			pData++;
 		}
 	}
-	
+
 	GenerateHash(Hashlist, pFrom);
 	int aPastIndecies[1024];
 
@@ -197,29 +197,29 @@ int CSnapshotDelta::CreateDelta(CSnapshot *pFrom, CSnapshot *pTo, void *pDstData
 	// we do this as a separate pass because it helps the cache
 	for(i = 0; i < pTo->NumItems(); i++)
 	{
-		pCurItem = pTo->GetItem(i);  // O(1) .. O(n)
+		pCurItem = pTo->GetItem(i); // O(1) .. O(n)
 		aPastIndecies[i] = GetItemIndexHashed(pCurItem->Key(), Hashlist); // O(n) .. O(n^n)
 	}
-		
+
 	for(i = 0; i < pTo->NumItems(); i++)
 	{
 		// do delta
 		ItemSize = pTo->GetItemSize(i); // O(1) .. O(n)
-		pCurItem = pTo->GetItem(i);  // O(1) .. O(n)
+		pCurItem = pTo->GetItem(i); // O(1) .. O(n)
 		PastIndex = aPastIndecies[i];
-		
+
 		if(PastIndex != -1)
 		{
 			int *pItemDataDst = pData+3;
-	
+
 			pPastItem = pFrom->GetItem(PastIndex);
-			
+
 			if(m_aItemSizes[pCurItem->Type()])
 				pItemDataDst = pData+2;
-			
+
 			if(DiffItem((int*)pPastItem->Data(), (int*)pCurItem->Data(), pItemDataDst, ItemSize/4))
 			{
-				
+
 				*pData++ = pCurItem->Type();
 				*pData++ = pCurItem->ID();
 				if(!m_aItemSizes[pCurItem->Type()])
@@ -234,7 +234,7 @@ int CSnapshotDelta::CreateDelta(CSnapshot *pFrom, CSnapshot *pTo, void *pDstData
 			*pData++ = pCurItem->ID();
 			if(!m_aItemSizes[pCurItem->Type()])
 				*pData++ = ItemSize/4;
-			
+
 			mem_copy(pData, pCurItem->Data(), ItemSize);
 			SizeCount += ItemSize;
 			pData += ItemSize/4;
@@ -242,7 +242,7 @@ int CSnapshotDelta::CreateDelta(CSnapshot *pFrom, CSnapshot *pTo, void *pDstData
 			Count++;
 		}
 	}
-	
+
 	if(0)
 	{
 		dbg_msg("snapshot", "%d %d %d",
@@ -253,7 +253,7 @@ int CSnapshotDelta::CreateDelta(CSnapshot *pFrom, CSnapshot *pTo, void *pDstData
 
 	/*
 	// TODO: pack temp stuff
-	
+
 	// finish
 	//mem_copy(pDelta->offsets, deleted, pDelta->num_deleted_items*sizeof(int));
 	//mem_copy(&(pDelta->offsets[pDelta->num_deleted_items]), update, pDelta->num_update_items*sizeof(int));
@@ -261,10 +261,10 @@ int CSnapshotDelta::CreateDelta(CSnapshot *pFrom, CSnapshot *pTo, void *pDstData
 	//mem_copy(pDelta->data_start(), data, data_size);
 	//pDelta->data_size = data_size;
 	* */
-	
+
 	if(!pDelta->m_NumDeletedItems && !pDelta->m_NumUpdateItems && !pDelta->m_NumTempItems)
 		return 0;
-	
+
 	return (int)((char*)pData-(char*)pDstData);
 }
 
@@ -281,16 +281,16 @@ int CSnapshotDelta::UnpackDelta(CSnapshot *pFrom, CSnapshot *pTo, void *pSrcData
 	CData *pDelta = (CData *)pSrcData;
 	int *pData = (int *)pDelta->m_pData;
 	int *pEnd = (int *)(((char *)pSrcData + DataSize));
-	
+
 	CSnapshotItem *pFromItem;
 	int Keep, ItemSize;
 	int *pDeleted;
 	int ID, Type, Key;
 	int FromIndex;
 	int *pNewData;
-			
+
 	Builder.Init();
-	
+
 	// unpack deleted stuff
 	pDeleted = pData;
 	pData += pDelta->m_NumDeletedItems;
@@ -302,7 +302,7 @@ int CSnapshotDelta::UnpackDelta(CSnapshot *pFrom, CSnapshot *pTo, void *pSrcData
 	{
 		// dbg_assert(0, "fail!");
 		pFromItem = pFrom->GetItem(i);
-		ItemSize = pFrom->GetItemSize(i); 
+		ItemSize = pFrom->GetItemSize(i);
 		Keep = 1;
 		for(int d = 0; d < pDelta->m_NumDeletedItems; d++)
 		{
@@ -312,7 +312,7 @@ int CSnapshotDelta::UnpackDelta(CSnapshot *pFrom, CSnapshot *pTo, void *pSrcData
 				break;
 			}
 		}
-		
+
 		if(Keep)
 		{
 			// keep it
@@ -321,13 +321,13 @@ int CSnapshotDelta::UnpackDelta(CSnapshot *pFrom, CSnapshot *pTo, void *pSrcData
 				pFromItem->Data(), ItemSize);
 		}
 	}
-		
+
 	// unpack updated stuff
 	for(int i = 0; i < pDelta->m_NumUpdateItems; i++)
 	{
 		if(pData+2 > pEnd)
 			return -1;
-		
+
 		Type = *pData++;
 		ID = *pData++;
 		if(m_aItemSizes[Type])
@@ -339,18 +339,18 @@ int CSnapshotDelta::UnpackDelta(CSnapshot *pFrom, CSnapshot *pTo, void *pSrcData
 			ItemSize = (*pData++) * 4;
 		}
 		m_SnapshotCurrent = Type;
-		
+
 		if(RangeCheck(pEnd, pData, ItemSize) || ItemSize < 0) return -3;
-		
+
 		Key = (Type<<16)|ID;
-		
+
 		// create the item if needed
 		pNewData = Builder.GetItemData(Key);
 		if(!pNewData)
 			pNewData = (int *)Builder.NewItem(Key>>16, Key&0xffff, ItemSize);
 
 		//if(range_check(pEnd, pNewData, ItemSize)) return -4;
-			
+
 		FromIndex = pFrom->GetItemIndex(Key);
 		if(FromIndex != -1)
 		{
@@ -364,10 +364,10 @@ int CSnapshotDelta::UnpackDelta(CSnapshot *pFrom, CSnapshot *pTo, void *pSrcData
 			m_aSnapshotDataRate[m_SnapshotCurrent] += ItemSize*8;
 			m_aSnapshotDataUpdates[m_SnapshotCurrent]++;
 		}
-			
+
 		pData += ItemSize/4;
 	}
-	
+
 	// finish up
 	return Builder.Finish(pTo);
 }
@@ -402,24 +402,24 @@ void CSnapshotStorage::PurgeUntil(int Tick)
 {
 	CHolder *pHolder = m_pFirst;
 	CHolder *pNext;
-	
+
 	while(pHolder)
 	{
 		pNext = pHolder->m_pNext;
 		if(pHolder->m_Tick >= Tick)
 			return; // no more to remove
 		mem_free(pHolder);
-		
+
 		// did we come to the end of the list?
-        if (!pNext)
-            break;
+		if (!pNext)
+			break;
 
 		m_pFirst = pNext;
 		pNext->m_pPrev = 0x0;
-		
+
 		pHolder = pNext;
 	}
-	
+
 	// no more snapshots in storage
 	m_pFirst = 0;
 	m_pLast = 0;
@@ -429,12 +429,12 @@ void CSnapshotStorage::Add(int Tick, int64 Tagtime, int DataSize, void *pData, i
 {
 	// allocate memory for holder + snapshot_data
 	int TotalSize = sizeof(CHolder)+DataSize;
-	
+
 	if(CreateAlt)
 		TotalSize += DataSize;
-	
+
 	CHolder *pHolder = (CHolder *)mem_alloc(TotalSize, 1);
-	
+
 	// set data
 	pHolder->m_Tick = Tick;
 	pHolder->m_Tagtime = Tagtime;
@@ -449,8 +449,8 @@ void CSnapshotStorage::Add(int Tick, int64 Tagtime, int DataSize, void *pData, i
 	}
 	else
 		pHolder->m_pAltSnap = 0;
-		
-	
+
+
 	// link
 	pHolder->m_pNext = 0;
 	pHolder->m_pPrev = m_pLast;
@@ -464,7 +464,7 @@ void CSnapshotStorage::Add(int Tick, int64 Tagtime, int DataSize, void *pData, i
 int CSnapshotStorage::Get(int Tick, int64 *pTagtime, CSnapshot **ppData, CSnapshot **ppAltData)
 {
 	CHolder *pHolder = m_pFirst;
-	
+
 	while(pHolder)
 	{
 		if(pHolder->m_Tick == Tick)
@@ -477,10 +477,10 @@ int CSnapshotStorage::Get(int Tick, int64 *pTagtime, CSnapshot **ppData, CSnapsh
 				*ppData = pHolder->m_pAltSnap;
 			return pHolder->m_SnapSize;
 		}
-		
+
 		pHolder = pHolder->m_pNext;
 	}
-	
+
 	return -1;
 }
 
@@ -492,7 +492,7 @@ void CSnapshotBuilder::Init()
 	m_NumItems = 0;
 }
 
-CSnapshotItem *CSnapshotBuilder::GetItem(int Index) 
+CSnapshotItem *CSnapshotBuilder::GetItem(int Index)
 {
 	return (CSnapshotItem *)&(m_aData[m_aOffsets[Index]]);
 }
diff --git a/src/engine/shared/snapshot.h b/src/engine/shared/snapshot.h
index 34c3a548..ebd13f20 100644
--- a/src/engine/shared/snapshot.h
+++ b/src/engine/shared/snapshot.h
@@ -11,7 +11,7 @@ class CSnapshotItem
 {
 public:
 	int m_TypeAndID;
-	
+
 	int *Data() { return (int *)(this+1); }
 	int Type() { return m_TypeAndID>>16; }
 	int ID() { return m_TypeAndID&0xffff; }
@@ -90,15 +90,15 @@ public:
 	public:
 		CHolder *m_pPrev;
 		CHolder *m_pNext;
-		
+
 		int64 m_Tagtime;
 		int m_Tick;
-		
+
 		int m_SnapSize;
 		CSnapshot *m_pSnap;
 		CSnapshot *m_pAltSnap;
 	};
-	 
+
 
 	CHolder *m_pFirst;
 	CHolder *m_pLast;
@@ -125,12 +125,12 @@ class CSnapshotBuilder
 
 public:
 	void Init();
-	
+
 	void *NewItem(int Type, int ID, int Size);
-	
+
 	CSnapshotItem *GetItem(int Index);
 	int *GetItemData(int Key);
-	
+
 	int Finish(void *Snapdata);
 };
 
diff --git a/src/engine/shared/storage.cpp b/src/engine/shared/storage.cpp
index db19fcdc..d6f83dc8 100644
--- a/src/engine/shared/storage.cpp
+++ b/src/engine/shared/storage.cpp
@@ -21,7 +21,7 @@ public:
 	char m_aDatadir[MAX_PATH_LENGTH];
 	char m_aUserdir[MAX_PATH_LENGTH];
 	char m_aCurrentdir[MAX_PATH_LENGTH];
-	
+
 	CStorage()
 	{
 		mem_zero(m_aaStoragePaths, sizeof(m_aaStoragePaths));
@@ -29,7 +29,7 @@ public:
 		m_aDatadir[0] = 0;
 		m_aUserdir[0] = 0;
 	}
-	
+
 	int Init(const char *pApplicationName, int NumArgs, const char **ppArguments)
 	{
 		// get userdir
@@ -85,7 +85,7 @@ public:
 				str_append(aBuffer, "/storage.cfg", sizeof(aBuffer));
 				File = io_open(aBuffer, IOFLAG_READ);
 			}
-			
+
 			if(Pos >= MAX_PATH_LENGTH || !File)
 			{
 				dbg_msg("storage", "couldn't open storage.cfg");
@@ -151,7 +151,7 @@ public:
 			}
 		}
 	}
-		
+
 	void FindDatadir(const char *pArgv0)
 	{
 		// 1) use data-dir in PWD if present
@@ -160,35 +160,35 @@ public:
 			str_copy(m_aDatadir, "data", sizeof(m_aDatadir));
 			return;
 		}
-		
+
 		// 2) use compiled-in data-dir if present
 		if(fs_is_dir(DATA_DIR "/mapres"))
 		{
 			str_copy(m_aDatadir, DATA_DIR, sizeof(m_aDatadir));
 			return;
 		}
-		
+
 		// 3) check for usable path in argv[0]
 		{
 			unsigned int Pos = ~0U;
 			for(unsigned i = 0; pArgv0[i]; i++)
 				if(pArgv0[i] == '/' || pArgv0[i] == '\\')
 					Pos = i;
-			
+
 			if(Pos < MAX_PATH_LENGTH)
 			{
 				char aBaseDir[MAX_PATH_LENGTH];
 				str_copy(aBaseDir, pArgv0, Pos+1);
 				str_format(m_aDatadir, sizeof(m_aDatadir), "%s/data", aBaseDir);
 				str_append(aBaseDir, "/data/mapres", sizeof(aBaseDir));
-				
+
 				if(fs_is_dir(aBaseDir))
 					return;
 				else
 					m_aDatadir[0] = 0;
 			}
 		}
-		
+
 	#if defined(CONF_FAMILY_UNIX)
 		// 4) check for all default locations
 		{
@@ -200,7 +200,7 @@ public:
 				"/opt/teeworlds/data"
 			};
 			const int DirsCount = sizeof(aDirs) / sizeof(aDirs[0]);
-			
+
 			int i;
 			for (i = 0; i < DirsCount; i++)
 			{
@@ -214,7 +214,7 @@ public:
 			}
 		}
 	#endif
-		
+
 		// no data-dir found
 		dbg_msg("storage", "warning no data directory found");
 	}
@@ -240,7 +240,7 @@ public:
 		str_format(pBuffer, BufferSize, "%s%s%s", m_aaStoragePaths[Type], !m_aaStoragePaths[Type][0] ? "" : "/", pDir);
 		return pBuffer;
 	}
-	
+
 	virtual IOHANDLE OpenFile(const char *pFilename, int Flags, int Type, char *pBuffer = 0, int BufferSize = 0)
 	{
 		char aBuffer[MAX_PATH_LENGTH];
@@ -249,7 +249,7 @@ public:
 			pBuffer = aBuffer;
 			BufferSize = sizeof(aBuffer);
 		}
-		
+
 		if(Flags&IOFLAG_WRITE)
 		{
 			return io_open(GetPath(TYPE_SAVE, pFilename, pBuffer, BufferSize), Flags);
@@ -276,11 +276,11 @@ public:
 					return Handle;
 			}
 		}
-		
+
 		pBuffer[0] = 0;
-		return 0;		
+		return 0;
 	}
- 	
+
 	struct CFindCBData
 	{
 		CStorage *pStorage;
@@ -321,7 +321,7 @@ public:
 	{
 		if(BufferSize < 1)
 			return false;
-		
+
 		pBuffer[0] = 0;
 		char aBuf[MAX_PATH_LENGTH];
 		CFindCBData Data;