shithub: duke3d

Download patch

ref: 546ee154fde02e76583a36fd09bd92de93d8872f
parent: 1cfa1909aa1f5a5ab159301044ca499673bc2283
author: Tanguy Fautre <[email protected]>
date: Sun Feb 9 14:49:14 EST 2020

Use vcpkg 2020.01 for all dependencies.
Fixed compilation on VS2019 x86.
Commented out SDL mixer call until code is moved to SDL2.

--- a/Engine/Engine.vcxproj
+++ b/Engine/Engine.vcxproj
@@ -16,7 +16,7 @@
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
     <ConfigurationType>StaticLibrary</ConfigurationType>
-    <PlatformToolset>v110</PlatformToolset>
+    <PlatformToolset>v142</PlatformToolset>
     <UseOfMfc>false</UseOfMfc>
     <CharacterSet>MultiByte</CharacterSet>
     <WholeProgramOptimization>false</WholeProgramOptimization>
@@ -23,7 +23,7 @@
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
     <ConfigurationType>StaticLibrary</ConfigurationType>
-    <PlatformToolset>v110</PlatformToolset>
+    <PlatformToolset>v142</PlatformToolset>
     <UseOfMfc>false</UseOfMfc>
     <CharacterSet>MultiByte</CharacterSet>
   </PropertyGroup>
@@ -53,7 +53,7 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>..\SDL-1.2.9\include;src\enet\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>$(SolutionDir)build\vcpkg.windows\installed\x86-windows-static\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>nDBGRECORD; nDEBUG; PLATFORM_WIN32; UDP_NETWORKING; WIN32; _LIB; _CRT_SECURE_NO_DEPRECATE; _CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
       <AdditionalOptions> /J</AdditionalOptions>
@@ -78,7 +78,7 @@
       <IntrinsicFunctions>true</IntrinsicFunctions>
       <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
       <OmitFramePointers>true</OmitFramePointers>
-      <AdditionalIncludeDirectories>..\SDL-1.2.9\include;src\enet\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>$(SolutionDir)build\vcpkg.windows\installed\x86-windows-static\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>nDBGRECORD; nDEBUG; PLATFORM_WIN32; UDP_NETWORKING; WIN32; _LIB; _CRT_SECURE_NO_DEPRECATE; _CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
       <BufferSecurityCheck>false</BufferSecurityCheck>
@@ -103,14 +103,6 @@
     <ClCompile Include="src\fixedPoint_math.c" />
     <ClCompile Include="src\mmulti.c" />
     <ClCompile Include="src\mmulti_stable.cpp" />
-    <ClCompile Include="src\enet\host.c" />
-    <ClCompile Include="src\enet\list.c" />
-    <ClCompile Include="src\enet\memory.c" />
-    <ClCompile Include="src\enet\packet.c" />
-    <ClCompile Include="src\enet\peer.c" />
-    <ClCompile Include="src\enet\protocol.c" />
-    <ClCompile Include="src\enet\unix.c" />
-    <ClCompile Include="src\enet\win32.c" />
     <ClCompile Include="src\network.c" />
     <ClCompile Include="src\tiles.c" />
   </ItemGroup>
--- a/Engine/Engine.vcxproj.filters
+++ b/Engine/Engine.vcxproj.filters
@@ -9,9 +9,6 @@
       <UniqueIdentifier>{0b84d784-d2f4-407e-a4d7-b4a8f30fafc1}</UniqueIdentifier>
       <Extensions>h;hpp;hxx;hm;inl</Extensions>
     </Filter>
-    <Filter Include="enet">
-      <UniqueIdentifier>{2a81a5d5-612c-4a3f-8486-b84aa46552e4}</UniqueIdentifier>
-    </Filter>
   </ItemGroup>
   <ItemGroup>
     <ClCompile Include="src\Engine.c">
@@ -22,30 +19,6 @@
     </ClCompile>
     <ClCompile Include="src\mmulti_stable.cpp">
       <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="src\enet\host.c">
-      <Filter>enet</Filter>
-    </ClCompile>
-    <ClCompile Include="src\enet\list.c">
-      <Filter>enet</Filter>
-    </ClCompile>
-    <ClCompile Include="src\enet\memory.c">
-      <Filter>enet</Filter>
-    </ClCompile>
-    <ClCompile Include="src\enet\packet.c">
-      <Filter>enet</Filter>
-    </ClCompile>
-    <ClCompile Include="src\enet\peer.c">
-      <Filter>enet</Filter>
-    </ClCompile>
-    <ClCompile Include="src\enet\protocol.c">
-      <Filter>enet</Filter>
-    </ClCompile>
-    <ClCompile Include="src\enet\unix.c">
-      <Filter>enet</Filter>
-    </ClCompile>
-    <ClCompile Include="src\enet\win32.c">
-      <Filter>enet</Filter>
     </ClCompile>
     <ClCompile Include="src\cache.c">
       <Filter>Source Files</Filter>
--- a/Engine/src/display.c
+++ b/Engine/src/display.c
@@ -36,7 +36,7 @@
 #define BUILD_GLDUMP         "BUILD_GLDUMP"
 #define BUILD_SDLJOYSTICK    "BUILD_SDLJOYSTICK"
 
-#include "SDL.h"
+#include "SDL/SDL.h"
 #include "build.h"
 #include "display.h"
 #include "fixedPoint_math.h"
--- a/Engine/src/enet/ChangeLog
+++ /dev/null
@@ -1,177 +1,0 @@
-ENet 1.3.13 (April 30, 2015):
-
-* miscellaneous bug fixes
-* added premake and cmake support
-* miscellaneous documentation cleanups
-
-ENet 1.3.12 (April 24, 2014):
-
-* added maximumPacketSize and maximumWaitingData fields to ENetHost to limit the amount of 
-data waiting to be delivered on a peer (beware that the default maximumPacketSize is
-32MB and should be set higher if desired as should maximumWaitingData)
-
-ENet 1.3.11 (December 26, 2013):
-
-* allow an ENetHost to connect to itself
-* fixed possible bug with disconnect notifications during connect attempts
-* fixed some preprocessor definition bugs
-
-ENet 1.3.10 (October 23, 2013);
-
-* doubled maximum reliable window size
-* fixed RCVTIMEO/SNDTIMEO socket options and also added NODELAY
-
-ENet 1.3.9 (August 19, 2013):
-
-* added duplicatePeers option to ENetHost which can limit the number of peers from duplicate IPs
-* added enet_socket_get_option() and ENET_SOCKOPT_ERROR
-* added enet_host_random_seed() platform stub
-
-ENet 1.3.8 (June 2, 2013):
-
-* added enet_linked_version() for checking the linked version 
-* added enet_socket_get_address() for querying the local address of a socket
-* silenced some debugging prints unless ENET_DEBUG is defined during compilation
-* handle EINTR in enet_socket_wait() so that enet_host_service() doesn't propagate errors from signals
-* optimized enet_host_bandwidth_throttle() to be less expensive for large numbers of peers
-
-ENet 1.3.7 (March 6, 2013):
-
-* added ENET_PACKET_FLAG_SENT to indicate that a packet is being freed because it has been sent
-* added userData field to ENetPacket
-* changed how random seed is generated on Windows to avoid import warnings
-* fixed case where disconnects could be generated with no preceding connect event
-
-ENet 1.3.6 (December 11, 2012):
-
-* added support for intercept callback in ENetHost that can be used to process raw packets before ENet
-* added enet_socket_shutdown() for issuing shutdown on a socket
-* fixed enet_socket_connect() to not error on non-blocking connects
-* fixed bug in MTU negotiation during connections
- 
-ENet 1.3.5 (July 31, 2012):
-
-* fixed bug in unreliable packet fragment queuing
-
-ENet 1.3.4 (May 29, 2012):
-
-* added enet_peer_ping_interval() for configuring per-peer ping intervals
-* added enet_peer_timeout() for configuring per-peer timeouts
-* added protocol packet size limits
-
-ENet 1.3.3 (June 28, 2011):
-
-* fixed bug with simultaneous disconnects not dispatching events
-
-ENet 1.3.2 (May 31, 2011):
-
-* added support for unreliable packet fragmenting via the packet flag
-ENET_PACKET_FLAG_UNRELIABLE_FRAGMENT
-* fixed regression in unreliable packet queuing
-* added check against received port to limit some forms of IP-spoofing
-
-ENet 1.3.1 (February 10, 2011):
-
-* fixed bug in tracking of reliable data in transit
-* reliable data window size now scales with the throttle
-* fixed bug in fragment length calculation when checksums are used
-
-ENet 1.3.0 (June 5, 2010):
-
-* enet_host_create() now requires the channel limit to be specified as
-a parameter
-* enet_host_connect() now accepts a data parameter which is supplied 
-to the receiving receiving host in the event data field for a connect event
-* added an adaptive order-2 PPM range coder as a built-in compressor option
-which can be set with enet_host_compress_with_range_coder()
-* added support for packet compression configurable with a callback
-* improved session number handling to not rely on the packet checksum
-field, saving 4 bytes per packet unless the checksum option is used
-* removed the dependence on the rand callback for session number handling
-
-Caveats: This version is not protocol compatible with the 1.2 series or 
-earlier. The enet_host_connect and enet_host_create API functions require
-supplying additional parameters.
-
-ENet 1.2.5 (June 28, 2011):
-
-* fixed bug with simultaneous disconnects not dispatching events
-
-ENet 1.2.4 (May 31, 2011):
-
-* fixed regression in unreliable packet queuing
-* added check against received port to limit some forms of IP-spoofing
-
-ENet 1.2.3 (February 10, 2011):
-
-* fixed bug in tracking reliable data in transit
-
-ENet 1.2.2 (June 5, 2010):
-
-* checksum functionality is now enabled by setting a checksum callback
-inside ENetHost instead of being a configure script option
-* added totalSentData, totalSentPackets, totalReceivedData, and
-totalReceivedPackets counters inside ENetHost for getting usage
-statistics
-* added enet_host_channel_limit() for limiting the maximum number of
-channels allowed by connected peers
-* now uses dispatch queues for event dispatch rather than potentially
-unscalable array walking
-* added no_memory callback that is called when a malloc attempt fails,
-such that if no_memory returns rather than aborts (the default behavior),
-then the error is propagated to the return value of the API calls
-* now uses packed attribute for protocol structures on platforms with 
-strange alignment rules
-* improved autoconf build system contributed by Nathan Brink allowing 
-for easier building as a shared library
-
-Caveats: If you were using the compile-time option that enabled checksums,
-make sure to set the checksum callback inside ENetHost to enet_crc32 to
-regain the old behavior. The ENetCallbacks structure has added new fields,
-so make sure to clear the structure to zero before use if 
-using enet_initialize_with_callbacks().
-
-ENet 1.2.1 (November 12, 2009):
-
-* fixed bug that could cause disconnect events to be dropped
-* added thin wrapper around select() for portable usage
-* added ENET_SOCKOPT_REUSEADDR socket option
-* factored enet_socket_bind()/enet_socket_listen() out of enet_socket_create()
-* added contributed Code::Blocks build file
-
-ENet 1.2 (February 12, 2008):
-
-* fixed bug in VERIFY_CONNECT acknowledgement that could cause connect
-attempts to occasionally timeout
-* fixed acknowledgements to check both the outgoing and sent queues
-when removing acknowledged packets
-* fixed accidental bit rot in the MSVC project file
-* revised sequence number overflow handling to address some possible
-disconnect bugs
-* added enet_host_check_events() for getting only local queued events
-* factored out socket option setting into enet_socket_set_option() so
-that socket options are now set separately from enet_socket_create()
-
-Caveats: While this release is superficially protocol compatible with 1.1,
-differences in the sequence number overflow handling can potentially cause
-random disconnects.
-
-ENet 1.1 (June 6, 2007):
-
-* optional CRC32 just in case someone needs a stronger checksum than UDP 
-provides (--enable-crc32 configure option)
-* the size of packet headers are half the size they used to be (so less 
-overhead when sending small packets)
-* enet_peer_disconnect_later() that waits till all queued outgoing 
-packets get sent before issuing an actual disconnect
-* freeCallback field in individual packets for notification of when a 
-packet is about to be freed
-* ENET_PACKET_FLAG_NO_ALLOCATE for supplying pre-allocated data to a 
-packet (can be used in concert with freeCallback to support some custom 
-allocation schemes that the normal memory allocation callbacks would 
-normally not allow)
-* enet_address_get_host_ip() for printing address numbers
-* promoted the enet_socket_*() functions to be part of the API now
-* a few stability/crash fixes
-
-
--- a/Engine/src/enet/LICENSE
+++ /dev/null
@@ -1,7 +1,0 @@
-Copyright (c) 2002-2015 Lee Salzman
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--- a/Engine/src/enet/README
+++ /dev/null
@@ -1,15 +1,0 @@
-Please visit the ENet homepage at http://enet.bespin.org for installation
-and usage instructions.
-
-If you obtained this package from github, the quick description on how to build
-is:
-
-# Generate the build system.
-
-autoreconf -vfi
-
-# Compile and install the library.
-
-./configure && make && make install
-
-
--- a/Engine/src/enet/include/callbacks.h
+++ /dev/null
@@ -1,27 +1,0 @@
-/** 
- @file  callbacks.h
- @brief ENet callbacks
-*/
-#ifndef __ENET_CALLBACKS_H__
-#define __ENET_CALLBACKS_H__
-
-#include <stdlib.h>
-
-typedef struct _ENetCallbacks
-{
-    void * (ENET_CALLBACK * malloc) (size_t size);
-    void (ENET_CALLBACK * free) (void * memory);
-    void (ENET_CALLBACK * no_memory) (void);
-} ENetCallbacks;
-
-/** @defgroup callbacks ENet internal callbacks
-    @{
-    @ingroup private
-*/
-extern void * enet_malloc (size_t);
-extern void   enet_free (void *);
-
-/** @} */
-
-#endif /* __ENET_CALLBACKS_H__ */
-
--- a/Engine/src/enet/include/enet.h
+++ /dev/null
@@ -1,592 +1,0 @@
-/** 
- @file  enet.h
- @brief ENet public header file
-*/
-#ifndef __ENET_ENET_H__
-#define __ENET_ENET_H__
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-#include <stdlib.h>
-
-#ifdef _WIN32
-#include "enet/include/win32.h"
-#else
-#include "enet/include/unix.h"
-#endif
-
-#include "enet/include/types.h"
-#include "enet/include/protocol.h"
-#include "enet/include/list.h"
-#include "enet/include/callbacks.h"
-
-#define ENET_VERSION_MAJOR 1
-#define ENET_VERSION_MINOR 3
-#define ENET_VERSION_PATCH 13
-#define ENET_VERSION_CREATE(major, minor, patch) (((major)<<16) | ((minor)<<8) | (patch))
-#define ENET_VERSION_GET_MAJOR(version) (((version)>>16)&0xFF)
-#define ENET_VERSION_GET_MINOR(version) (((version)>>8)&0xFF)
-#define ENET_VERSION_GET_PATCH(version) ((version)&0xFF)
-#define ENET_VERSION ENET_VERSION_CREATE(ENET_VERSION_MAJOR, ENET_VERSION_MINOR, ENET_VERSION_PATCH)
-
-typedef enet_uint32 ENetVersion;
-
-struct _ENetHost;
-struct _ENetEvent;
-struct _ENetPacket;
-
-typedef enum _ENetSocketType
-{
-   ENET_SOCKET_TYPE_STREAM   = 1,
-   ENET_SOCKET_TYPE_DATAGRAM = 2
-} ENetSocketType;
-
-typedef enum _ENetSocketWait
-{
-   ENET_SOCKET_WAIT_NONE      = 0,
-   ENET_SOCKET_WAIT_SEND      = (1 << 0),
-   ENET_SOCKET_WAIT_RECEIVE   = (1 << 1),
-   ENET_SOCKET_WAIT_INTERRUPT = (1 << 2)
-} ENetSocketWait;
-
-typedef enum _ENetSocketOption
-{
-   ENET_SOCKOPT_NONBLOCK  = 1,
-   ENET_SOCKOPT_BROADCAST = 2,
-   ENET_SOCKOPT_RCVBUF    = 3,
-   ENET_SOCKOPT_SNDBUF    = 4,
-   ENET_SOCKOPT_REUSEADDR = 5,
-   ENET_SOCKOPT_RCVTIMEO  = 6,
-   ENET_SOCKOPT_SNDTIMEO  = 7,
-   ENET_SOCKOPT_ERROR     = 8,
-   ENET_SOCKOPT_NODELAY   = 9
-} ENetSocketOption;
-
-typedef enum _ENetSocketShutdown
-{
-    ENET_SOCKET_SHUTDOWN_READ       = 0,
-    ENET_SOCKET_SHUTDOWN_WRITE      = 1,
-    ENET_SOCKET_SHUTDOWN_READ_WRITE = 2
-} ENetSocketShutdown;
-
-#define ENET_HOST_ANY       0
-#define ENET_HOST_BROADCAST 0xFFFFFFFFU
-#define ENET_PORT_ANY       0
-
-/**
- * Portable internet address structure. 
- *
- * The host must be specified in network byte-order, and the port must be in host 
- * byte-order. The constant ENET_HOST_ANY may be used to specify the default 
- * server host. The constant ENET_HOST_BROADCAST may be used to specify the
- * broadcast address (255.255.255.255).  This makes sense for enet_host_connect,
- * but not for enet_host_create.  Once a server responds to a broadcast, the
- * address is updated from ENET_HOST_BROADCAST to the server's actual IP address.
- */
-typedef struct _ENetAddress
-{
-   enet_uint32 host;
-   enet_uint16 port;
-} ENetAddress;
-
-/**
- * Packet flag bit constants.
- *
- * The host must be specified in network byte-order, and the port must be in
- * host byte-order. The constant ENET_HOST_ANY may be used to specify the
- * default server host.
- 
-   @sa ENetPacket
-*/
-typedef enum _ENetPacketFlag
-{
-   /** packet must be received by the target peer and resend attempts should be
-     * made until the packet is delivered */
-   ENET_PACKET_FLAG_RELIABLE    = (1 << 0),
-   /** packet will not be sequenced with other packets
-     * not supported for reliable packets
-     */
-   ENET_PACKET_FLAG_UNSEQUENCED = (1 << 1),
-   /** packet will not allocate data, and user must supply it instead */
-   ENET_PACKET_FLAG_NO_ALLOCATE = (1 << 2),
-   /** packet will be fragmented using unreliable (instead of reliable) sends
-     * if it exceeds the MTU */
-   ENET_PACKET_FLAG_UNRELIABLE_FRAGMENT = (1 << 3),
-
-   /** whether the packet has been sent from all queues it has been entered into */
-   ENET_PACKET_FLAG_SENT = (1<<8)
-} ENetPacketFlag;
-
-typedef void (ENET_CALLBACK * ENetPacketFreeCallback) (struct _ENetPacket *);
-
-/**
- * ENet packet structure.
- *
- * An ENet data packet that may be sent to or received from a peer. The shown 
- * fields should only be read and never modified. The data field contains the 
- * allocated data for the packet. The dataLength fields specifies the length 
- * of the allocated data.  The flags field is either 0 (specifying no flags), 
- * or a bitwise-or of any combination of the following flags:
- *
- *    ENET_PACKET_FLAG_RELIABLE - packet must be received by the target peer
- *    and resend attempts should be made until the packet is delivered
- *
- *    ENET_PACKET_FLAG_UNSEQUENCED - packet will not be sequenced with other packets 
- *    (not supported for reliable packets)
- *
- *    ENET_PACKET_FLAG_NO_ALLOCATE - packet will not allocate data, and user must supply it instead
- 
-   @sa ENetPacketFlag
- */
-typedef struct _ENetPacket
-{
-   size_t                   referenceCount;  /**< internal use only */
-   enet_uint32              flags;           /**< bitwise-or of ENetPacketFlag constants */
-   enet_uint8 *             data;            /**< allocated data for packet */
-   size_t                   dataLength;      /**< length of data */
-   ENetPacketFreeCallback   freeCallback;    /**< function to be called when the packet is no longer in use */
-   void *                   userData;        /**< application private data, may be freely modified */
-} ENetPacket;
-
-typedef struct _ENetAcknowledgement
-{
-   ENetListNode acknowledgementList;
-   enet_uint32  sentTime;
-   ENetProtocol command;
-} ENetAcknowledgement;
-
-typedef struct _ENetOutgoingCommand
-{
-   ENetListNode outgoingCommandList;
-   enet_uint16  reliableSequenceNumber;
-   enet_uint16  unreliableSequenceNumber;
-   enet_uint32  sentTime;
-   enet_uint32  roundTripTimeout;
-   enet_uint32  roundTripTimeoutLimit;
-   enet_uint32  fragmentOffset;
-   enet_uint16  fragmentLength;
-   enet_uint16  sendAttempts;
-   ENetProtocol command;
-   ENetPacket * packet;
-} ENetOutgoingCommand;
-
-typedef struct _ENetIncomingCommand
-{  
-   ENetListNode     incomingCommandList;
-   enet_uint16      reliableSequenceNumber;
-   enet_uint16      unreliableSequenceNumber;
-   ENetProtocol     command;
-   enet_uint32      fragmentCount;
-   enet_uint32      fragmentsRemaining;
-   enet_uint32 *    fragments;
-   ENetPacket *     packet;
-} ENetIncomingCommand;
-
-typedef enum _ENetPeerState
-{
-   ENET_PEER_STATE_DISCONNECTED                = 0,
-   ENET_PEER_STATE_CONNECTING                  = 1,
-   ENET_PEER_STATE_ACKNOWLEDGING_CONNECT       = 2,
-   ENET_PEER_STATE_CONNECTION_PENDING          = 3,
-   ENET_PEER_STATE_CONNECTION_SUCCEEDED        = 4,
-   ENET_PEER_STATE_CONNECTED                   = 5,
-   ENET_PEER_STATE_DISCONNECT_LATER            = 6,
-   ENET_PEER_STATE_DISCONNECTING               = 7,
-   ENET_PEER_STATE_ACKNOWLEDGING_DISCONNECT    = 8,
-   ENET_PEER_STATE_ZOMBIE                      = 9 
-} ENetPeerState;
-
-#ifndef ENET_BUFFER_MAXIMUM
-#define ENET_BUFFER_MAXIMUM (1 + 2 * ENET_PROTOCOL_MAXIMUM_PACKET_COMMANDS)
-#endif
-
-enum
-{
-   ENET_HOST_RECEIVE_BUFFER_SIZE          = 256 * 1024,
-   ENET_HOST_SEND_BUFFER_SIZE             = 256 * 1024,
-   ENET_HOST_BANDWIDTH_THROTTLE_INTERVAL  = 1000,
-   ENET_HOST_DEFAULT_MTU                  = 1400,
-   ENET_HOST_DEFAULT_MAXIMUM_PACKET_SIZE  = 32 * 1024 * 1024,
-   ENET_HOST_DEFAULT_MAXIMUM_WAITING_DATA = 32 * 1024 * 1024,
-
-   ENET_PEER_DEFAULT_ROUND_TRIP_TIME      = 500,
-   ENET_PEER_DEFAULT_PACKET_THROTTLE      = 32,
-   ENET_PEER_PACKET_THROTTLE_SCALE        = 32,
-   ENET_PEER_PACKET_THROTTLE_COUNTER      = 7, 
-   ENET_PEER_PACKET_THROTTLE_ACCELERATION = 2,
-   ENET_PEER_PACKET_THROTTLE_DECELERATION = 2,
-   ENET_PEER_PACKET_THROTTLE_INTERVAL     = 5000,
-   ENET_PEER_PACKET_LOSS_SCALE            = (1 << 16),
-   ENET_PEER_PACKET_LOSS_INTERVAL         = 10000,
-   ENET_PEER_WINDOW_SIZE_SCALE            = 64 * 1024,
-   ENET_PEER_TIMEOUT_LIMIT                = 32,
-   ENET_PEER_TIMEOUT_MINIMUM              = 5000,
-   ENET_PEER_TIMEOUT_MAXIMUM              = 30000,
-   ENET_PEER_PING_INTERVAL                = 500,
-   ENET_PEER_UNSEQUENCED_WINDOWS          = 64,
-   ENET_PEER_UNSEQUENCED_WINDOW_SIZE      = 1024,
-   ENET_PEER_FREE_UNSEQUENCED_WINDOWS     = 32,
-   ENET_PEER_RELIABLE_WINDOWS             = 16,
-   ENET_PEER_RELIABLE_WINDOW_SIZE         = 0x1000,
-   ENET_PEER_FREE_RELIABLE_WINDOWS        = 8
-};
-
-typedef struct _ENetChannel
-{
-   enet_uint16  outgoingReliableSequenceNumber;
-   enet_uint16  outgoingUnreliableSequenceNumber;
-   enet_uint16  usedReliableWindows;
-   enet_uint16  reliableWindows [ENET_PEER_RELIABLE_WINDOWS];
-   enet_uint16  incomingReliableSequenceNumber;
-   enet_uint16  incomingUnreliableSequenceNumber;
-   ENetList     incomingReliableCommands;
-   ENetList     incomingUnreliableCommands;
-} ENetChannel;
-
-/**
- * An ENet peer which data packets may be sent or received from. 
- *
- * No fields should be modified unless otherwise specified. 
- */
-typedef struct _ENetPeer
-{ 
-   ENetListNode  dispatchList;
-   struct _ENetHost * host;
-   enet_uint16   outgoingPeerID;
-   enet_uint16   incomingPeerID;
-   enet_uint32   connectID;
-   enet_uint8    outgoingSessionID;
-   enet_uint8    incomingSessionID;
-   ENetAddress   address;            /**< Internet address of the peer */
-   void *        data;               /**< Application private data, may be freely modified */
-   ENetPeerState state;
-   ENetChannel * channels;
-   size_t        channelCount;       /**< Number of channels allocated for communication with peer */
-   enet_uint32   incomingBandwidth;  /**< Downstream bandwidth of the client in bytes/second */
-   enet_uint32   outgoingBandwidth;  /**< Upstream bandwidth of the client in bytes/second */
-   enet_uint32   incomingBandwidthThrottleEpoch;
-   enet_uint32   outgoingBandwidthThrottleEpoch;
-   enet_uint32   incomingDataTotal;
-   enet_uint32   outgoingDataTotal;
-   enet_uint32   lastSendTime;
-   enet_uint32   lastReceiveTime;
-   enet_uint32   nextTimeout;
-   enet_uint32   earliestTimeout;
-   enet_uint32   packetLossEpoch;
-   enet_uint32   packetsSent;
-   enet_uint32   packetsLost;
-   enet_uint32   packetLoss;          /**< mean packet loss of reliable packets as a ratio with respect to the constant ENET_PEER_PACKET_LOSS_SCALE */
-   enet_uint32   packetLossVariance;
-   enet_uint32   packetThrottle;
-   enet_uint32   packetThrottleLimit;
-   enet_uint32   packetThrottleCounter;
-   enet_uint32   packetThrottleEpoch;
-   enet_uint32   packetThrottleAcceleration;
-   enet_uint32   packetThrottleDeceleration;
-   enet_uint32   packetThrottleInterval;
-   enet_uint32   pingInterval;
-   enet_uint32   timeoutLimit;
-   enet_uint32   timeoutMinimum;
-   enet_uint32   timeoutMaximum;
-   enet_uint32   lastRoundTripTime;
-   enet_uint32   lowestRoundTripTime;
-   enet_uint32   lastRoundTripTimeVariance;
-   enet_uint32   highestRoundTripTimeVariance;
-   enet_uint32   roundTripTime;            /**< mean round trip time (RTT), in milliseconds, between sending a reliable packet and receiving its acknowledgement */
-   enet_uint32   roundTripTimeVariance;
-   enet_uint32   mtu;
-   enet_uint32   windowSize;
-   enet_uint32   reliableDataInTransit;
-   enet_uint16   outgoingReliableSequenceNumber;
-   ENetList      acknowledgements;
-   ENetList      sentReliableCommands;
-   ENetList      sentUnreliableCommands;
-   ENetList      outgoingReliableCommands;
-   ENetList      outgoingUnreliableCommands;
-   ENetList      dispatchedCommands;
-   int           needsDispatch;
-   enet_uint16   incomingUnsequencedGroup;
-   enet_uint16   outgoingUnsequencedGroup;
-   enet_uint32   unsequencedWindow [ENET_PEER_UNSEQUENCED_WINDOW_SIZE / 32]; 
-   enet_uint32   eventData;
-   size_t        totalWaitingData;
-} ENetPeer;
-
-/** An ENet packet compressor for compressing UDP packets before socket sends or receives.
- */
-typedef struct _ENetCompressor
-{
-   /** Context data for the compressor. Must be non-NULL. */
-   void * context;
-   /** Compresses from inBuffers[0:inBufferCount-1], containing inLimit bytes, to outData, outputting at most outLimit bytes. Should return 0 on failure. */
-   size_t (ENET_CALLBACK * compress) (void * context, const ENetBuffer * inBuffers, size_t inBufferCount, size_t inLimit, enet_uint8 * outData, size_t outLimit);
-   /** Decompresses from inData, containing inLimit bytes, to outData, outputting at most outLimit bytes. Should return 0 on failure. */
-   size_t (ENET_CALLBACK * decompress) (void * context, const enet_uint8 * inData, size_t inLimit, enet_uint8 * outData, size_t outLimit);
-   /** Destroys the context when compression is disabled or the host is destroyed. May be NULL. */
-   void (ENET_CALLBACK * destroy) (void * context);
-} ENetCompressor;
-
-/** Callback that computes the checksum of the data held in buffers[0:bufferCount-1] */
-typedef enet_uint32 (ENET_CALLBACK * ENetChecksumCallback) (const ENetBuffer * buffers, size_t bufferCount);
-
-/** Callback for intercepting received raw UDP packets. Should return 1 to intercept, 0 to ignore, or -1 to propagate an error. */
-typedef int (ENET_CALLBACK * ENetInterceptCallback) (struct _ENetHost * host, struct _ENetEvent * event);
- 
-/** An ENet host for communicating with peers.
-  *
-  * No fields should be modified unless otherwise stated.
-
-    @sa enet_host_create()
-    @sa enet_host_destroy()
-    @sa enet_host_connect()
-    @sa enet_host_service()
-    @sa enet_host_flush()
-    @sa enet_host_broadcast()
-    @sa enet_host_compress()
-    @sa enet_host_compress_with_range_coder()
-    @sa enet_host_channel_limit()
-    @sa enet_host_bandwidth_limit()
-    @sa enet_host_bandwidth_throttle()
-  */
-typedef struct _ENetHost
-{
-   ENetSocket           socket;
-   ENetAddress          address;                     /**< Internet address of the host */
-   enet_uint32          incomingBandwidth;           /**< downstream bandwidth of the host */
-   enet_uint32          outgoingBandwidth;           /**< upstream bandwidth of the host */
-   enet_uint32          bandwidthThrottleEpoch;
-   enet_uint32          mtu;
-   enet_uint32          randomSeed;
-   int                  recalculateBandwidthLimits;
-   ENetPeer *           peers;                       /**< array of peers allocated for this host */
-   size_t               peerCount;                   /**< number of peers allocated for this host */
-   size_t               channelLimit;                /**< maximum number of channels allowed for connected peers */
-   enet_uint32          serviceTime;
-   ENetList             dispatchQueue;
-   int                  continueSending;
-   size_t               packetSize;
-   enet_uint16          headerFlags;
-   ENetProtocol         commands [ENET_PROTOCOL_MAXIMUM_PACKET_COMMANDS];
-   size_t               commandCount;
-   ENetBuffer           buffers [ENET_BUFFER_MAXIMUM];
-   size_t               bufferCount;
-   ENetChecksumCallback checksum;                    /**< callback the user can set to enable packet checksums for this host */
-   ENetCompressor       compressor;
-   enet_uint8           packetData [2][ENET_PROTOCOL_MAXIMUM_MTU];
-   ENetAddress          receivedAddress;
-   enet_uint8 *         receivedData;
-   size_t               receivedDataLength;
-   enet_uint32          totalSentData;               /**< total data sent, user should reset to 0 as needed to prevent overflow */
-   enet_uint32          totalSentPackets;            /**< total UDP packets sent, user should reset to 0 as needed to prevent overflow */
-   enet_uint32          totalReceivedData;           /**< total data received, user should reset to 0 as needed to prevent overflow */
-   enet_uint32          totalReceivedPackets;        /**< total UDP packets received, user should reset to 0 as needed to prevent overflow */
-   ENetInterceptCallback intercept;                  /**< callback the user can set to intercept received raw UDP packets */
-   size_t               connectedPeers;
-   size_t               bandwidthLimitedPeers;
-   size_t               duplicatePeers;              /**< optional number of allowed peers from duplicate IPs, defaults to ENET_PROTOCOL_MAXIMUM_PEER_ID */
-   size_t               maximumPacketSize;           /**< the maximum allowable packet size that may be sent or received on a peer */
-   size_t               maximumWaitingData;          /**< the maximum aggregate amount of buffer space a peer may use waiting for packets to be delivered */
-} ENetHost;
-
-/**
- * An ENet event type, as specified in @ref ENetEvent.
- */
-typedef enum _ENetEventType
-{
-   /** no event occurred within the specified time limit */
-   ENET_EVENT_TYPE_NONE       = 0,  
-
-   /** a connection request initiated by enet_host_connect has completed.  
-     * The peer field contains the peer which successfully connected. 
-     */
-   ENET_EVENT_TYPE_CONNECT    = 1,  
-
-   /** a peer has disconnected.  This event is generated on a successful 
-     * completion of a disconnect initiated by enet_pper_disconnect, if 
-     * a peer has timed out, or if a connection request intialized by 
-     * enet_host_connect has timed out.  The peer field contains the peer 
-     * which disconnected. The data field contains user supplied data 
-     * describing the disconnection, or 0, if none is available.
-     */
-   ENET_EVENT_TYPE_DISCONNECT = 2,  
-
-   /** a packet has been received from a peer.  The peer field specifies the
-     * peer which sent the packet.  The channelID field specifies the channel
-     * number upon which the packet was received.  The packet field contains
-     * the packet that was received; this packet must be destroyed with
-     * enet_packet_destroy after use.
-     */
-   ENET_EVENT_TYPE_RECEIVE    = 3
-} ENetEventType;
-
-/**
- * An ENet event as returned by enet_host_service().
-   
-   @sa enet_host_service
- */
-typedef struct _ENetEvent 
-{
-   ENetEventType        type;      /**< type of the event */
-   ENetPeer *           peer;      /**< peer that generated a connect, disconnect or receive event */
-   enet_uint8           channelID; /**< channel on the peer that generated the event, if appropriate */
-   enet_uint32          data;      /**< data associated with the event, if appropriate */
-   ENetPacket *         packet;    /**< packet associated with the event, if appropriate */
-} ENetEvent;
-
-/** @defgroup global ENet global functions
-    @{ 
-*/
-
-/** 
-  Initializes ENet globally.  Must be called prior to using any functions in
-  ENet.
-  @returns 0 on success, < 0 on failure
-*/
-ENET_API int enet_initialize (void);
-
-/** 
-  Initializes ENet globally and supplies user-overridden callbacks. Must be called prior to using any functions in ENet. Do not use enet_initialize() if you use this variant. Make sure the ENetCallbacks structure is zeroed out so that any additional callbacks added in future versions will be properly ignored.
-
-  @param version the constant ENET_VERSION should be supplied so ENet knows which version of ENetCallbacks struct to use
-  @param inits user-overridden callbacks where any NULL callbacks will use ENet's defaults
-  @returns 0 on success, < 0 on failure
-*/
-ENET_API int enet_initialize_with_callbacks (ENetVersion version, const ENetCallbacks * inits);
-
-/** 
-  Shuts down ENet globally.  Should be called when a program that has
-  initialized ENet exits.
-*/
-ENET_API void enet_deinitialize (void);
-
-/**
-  Gives the linked version of the ENet library.
-  @returns the version number 
-*/
-ENET_API ENetVersion enet_linked_version (void);
-
-/** @} */
-
-/** @defgroup private ENet private implementation functions */
-
-/**
-  Returns the wall-time in milliseconds.  Its initial value is unspecified
-  unless otherwise set.
-  */
-ENET_API enet_uint32 enet_time_get (void);
-/**
-  Sets the current wall-time in milliseconds.
-  */
-ENET_API void enet_time_set (enet_uint32);
-
-/** @defgroup socket ENet socket functions
-    @{
-*/
-ENET_API ENetSocket enet_socket_create (ENetSocketType);
-ENET_API int        enet_socket_bind (ENetSocket, const ENetAddress *);
-ENET_API int        enet_socket_get_address (ENetSocket, ENetAddress *);
-ENET_API int        enet_socket_listen (ENetSocket, int);
-ENET_API ENetSocket enet_socket_accept (ENetSocket, ENetAddress *);
-ENET_API int        enet_socket_connect (ENetSocket, const ENetAddress *);
-ENET_API int        enet_socket_send (ENetSocket, const ENetAddress *, const ENetBuffer *, size_t);
-ENET_API int        enet_socket_receive (ENetSocket, ENetAddress *, ENetBuffer *, size_t);
-ENET_API int        enet_socket_wait (ENetSocket, enet_uint32 *, enet_uint32);
-ENET_API int        enet_socket_set_option (ENetSocket, ENetSocketOption, int);
-ENET_API int        enet_socket_get_option (ENetSocket, ENetSocketOption, int *);
-ENET_API int        enet_socket_shutdown (ENetSocket, ENetSocketShutdown);
-ENET_API void       enet_socket_destroy (ENetSocket);
-ENET_API int        enet_socketset_select (ENetSocket, ENetSocketSet *, ENetSocketSet *, enet_uint32);
-
-/** @} */
-
-/** @defgroup Address ENet address functions
-    @{
-*/
-/** Attempts to resolve the host named by the parameter hostName and sets
-    the host field in the address parameter if successful.
-    @param address destination to store resolved address
-    @param hostName host name to lookup
-    @retval 0 on success
-    @retval < 0 on failure
-    @returns the address of the given hostName in address on success
-*/
-ENET_API int enet_address_set_host (ENetAddress * address, const char * hostName);
-
-/** Gives the printable form of the IP address specified in the address parameter.
-    @param address    address printed
-    @param hostName   destination for name, must not be NULL
-    @param nameLength maximum length of hostName.
-    @returns the null-terminated name of the host in hostName on success
-    @retval 0 on success
-    @retval < 0 on failure
-*/
-ENET_API int enet_address_get_host_ip (const ENetAddress * address, char * hostName, size_t nameLength);
-
-/** Attempts to do a reverse lookup of the host field in the address parameter.
-    @param address    address used for reverse lookup
-    @param hostName   destination for name, must not be NULL
-    @param nameLength maximum length of hostName.
-    @returns the null-terminated name of the host in hostName on success
-    @retval 0 on success
-    @retval < 0 on failure
-*/
-ENET_API int enet_address_get_host (const ENetAddress * address, char * hostName, size_t nameLength);
-
-/** @} */
-
-ENET_API ENetPacket * enet_packet_create (const void *, size_t, enet_uint32);
-ENET_API void         enet_packet_destroy (ENetPacket *);
-ENET_API int          enet_packet_resize  (ENetPacket *, size_t);
-ENET_API enet_uint32  enet_crc32 (const ENetBuffer *, size_t);
-                
-ENET_API ENetHost * enet_host_create (const ENetAddress *, size_t, size_t, enet_uint32, enet_uint32);
-ENET_API void       enet_host_destroy (ENetHost *);
-ENET_API ENetPeer * enet_host_connect (ENetHost *, const ENetAddress *, size_t, enet_uint32);
-ENET_API int        enet_host_check_events (ENetHost *, ENetEvent *);
-ENET_API int        enet_host_service (ENetHost *, ENetEvent *, enet_uint32);
-ENET_API void       enet_host_flush (ENetHost *);
-ENET_API void       enet_host_broadcast (ENetHost *, enet_uint8, ENetPacket *);
-ENET_API void       enet_host_compress (ENetHost *, const ENetCompressor *);
-ENET_API int        enet_host_compress_with_range_coder (ENetHost * host);
-ENET_API void       enet_host_channel_limit (ENetHost *, size_t);
-ENET_API void       enet_host_bandwidth_limit (ENetHost *, enet_uint32, enet_uint32);
-extern   void       enet_host_bandwidth_throttle (ENetHost *);
-extern  enet_uint32 enet_host_random_seed (void);
-
-ENET_API int                 enet_peer_send (ENetPeer *, enet_uint8, ENetPacket *);
-ENET_API ENetPacket *        enet_peer_receive (ENetPeer *, enet_uint8 * channelID);
-ENET_API void                enet_peer_ping (ENetPeer *);
-ENET_API void                enet_peer_ping_interval (ENetPeer *, enet_uint32);
-ENET_API void                enet_peer_timeout (ENetPeer *, enet_uint32, enet_uint32, enet_uint32);
-ENET_API void                enet_peer_reset (ENetPeer *);
-ENET_API void                enet_peer_disconnect (ENetPeer *, enet_uint32);
-ENET_API void                enet_peer_disconnect_now (ENetPeer *, enet_uint32);
-ENET_API void                enet_peer_disconnect_later (ENetPeer *, enet_uint32);
-ENET_API void                enet_peer_throttle_configure (ENetPeer *, enet_uint32, enet_uint32, enet_uint32);
-extern int                   enet_peer_throttle (ENetPeer *, enet_uint32);
-extern void                  enet_peer_reset_queues (ENetPeer *);
-extern void                  enet_peer_setup_outgoing_command (ENetPeer *, ENetOutgoingCommand *);
-extern ENetOutgoingCommand * enet_peer_queue_outgoing_command (ENetPeer *, const ENetProtocol *, ENetPacket *, enet_uint32, enet_uint16);
-extern ENetIncomingCommand * enet_peer_queue_incoming_command (ENetPeer *, const ENetProtocol *, const void *, size_t, enet_uint32, enet_uint32);
-extern ENetAcknowledgement * enet_peer_queue_acknowledgement (ENetPeer *, const ENetProtocol *, enet_uint16);
-extern void                  enet_peer_dispatch_incoming_unreliable_commands (ENetPeer *, ENetChannel *);
-extern void                  enet_peer_dispatch_incoming_reliable_commands (ENetPeer *, ENetChannel *);
-extern void                  enet_peer_on_connect (ENetPeer *);
-extern void                  enet_peer_on_disconnect (ENetPeer *);
-
-ENET_API void * enet_range_coder_create (void);
-ENET_API void   enet_range_coder_destroy (void *);
-ENET_API size_t enet_range_coder_compress (void *, const ENetBuffer *, size_t, size_t, enet_uint8 *, size_t);
-ENET_API size_t enet_range_coder_decompress (void *, const enet_uint8 *, size_t, enet_uint8 *, size_t);
-   
-extern size_t enet_protocol_command_size (enet_uint8);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __ENET_ENET_H__ */
-
--- a/Engine/src/enet/include/list.h
+++ /dev/null
@@ -1,43 +1,0 @@
-/** 
- @file  list.h
- @brief ENet list management 
-*/
-#ifndef __ENET_LIST_H__
-#define __ENET_LIST_H__
-
-#include <stdlib.h>
-
-typedef struct _ENetListNode
-{
-   struct _ENetListNode * next;
-   struct _ENetListNode * previous;
-} ENetListNode;
-
-typedef ENetListNode * ENetListIterator;
-
-typedef struct _ENetList
-{
-   ENetListNode sentinel;
-} ENetList;
-
-extern void enet_list_clear (ENetList *);
-
-extern ENetListIterator enet_list_insert (ENetListIterator, void *);
-extern void * enet_list_remove (ENetListIterator);
-extern ENetListIterator enet_list_move (ENetListIterator, void *, void *);
-
-extern size_t enet_list_size (ENetList *);
-
-#define enet_list_begin(list) ((list) -> sentinel.next)
-#define enet_list_end(list) (& (list) -> sentinel)
-
-#define enet_list_empty(list) (enet_list_begin (list) == enet_list_end (list))
-
-#define enet_list_next(iterator) ((iterator) -> next)
-#define enet_list_previous(iterator) ((iterator) -> previous)
-
-#define enet_list_front(list) ((void *) (list) -> sentinel.next)
-#define enet_list_back(list) ((void *) (list) -> sentinel.previous)
-
-#endif /* __ENET_LIST_H__ */
-
--- a/Engine/src/enet/include/protocol.h
+++ /dev/null
@@ -1,198 +1,0 @@
-/** 
- @file  protocol.h
- @brief ENet protocol
-*/
-#ifndef __ENET_PROTOCOL_H__
-#define __ENET_PROTOCOL_H__
-
-#include "enet/include/types.h"
-
-enum
-{
-   ENET_PROTOCOL_MINIMUM_MTU             = 576,
-   ENET_PROTOCOL_MAXIMUM_MTU             = 4096,
-   ENET_PROTOCOL_MAXIMUM_PACKET_COMMANDS = 32,
-   ENET_PROTOCOL_MINIMUM_WINDOW_SIZE     = 4096,
-   ENET_PROTOCOL_MAXIMUM_WINDOW_SIZE     = 65536,
-   ENET_PROTOCOL_MINIMUM_CHANNEL_COUNT   = 1,
-   ENET_PROTOCOL_MAXIMUM_CHANNEL_COUNT   = 255,
-   ENET_PROTOCOL_MAXIMUM_PEER_ID         = 0xFFF,
-   ENET_PROTOCOL_MAXIMUM_FRAGMENT_COUNT  = 1024 * 1024
-};
-
-typedef enum _ENetProtocolCommand
-{
-   ENET_PROTOCOL_COMMAND_NONE               = 0,
-   ENET_PROTOCOL_COMMAND_ACKNOWLEDGE        = 1,
-   ENET_PROTOCOL_COMMAND_CONNECT            = 2,
-   ENET_PROTOCOL_COMMAND_VERIFY_CONNECT     = 3,
-   ENET_PROTOCOL_COMMAND_DISCONNECT         = 4,
-   ENET_PROTOCOL_COMMAND_PING               = 5,
-   ENET_PROTOCOL_COMMAND_SEND_RELIABLE      = 6,
-   ENET_PROTOCOL_COMMAND_SEND_UNRELIABLE    = 7,
-   ENET_PROTOCOL_COMMAND_SEND_FRAGMENT      = 8,
-   ENET_PROTOCOL_COMMAND_SEND_UNSEQUENCED   = 9,
-   ENET_PROTOCOL_COMMAND_BANDWIDTH_LIMIT    = 10,
-   ENET_PROTOCOL_COMMAND_THROTTLE_CONFIGURE = 11,
-   ENET_PROTOCOL_COMMAND_SEND_UNRELIABLE_FRAGMENT = 12,
-   ENET_PROTOCOL_COMMAND_COUNT              = 13,
-
-   ENET_PROTOCOL_COMMAND_MASK               = 0x0F
-} ENetProtocolCommand;
-
-typedef enum _ENetProtocolFlag
-{
-   ENET_PROTOCOL_COMMAND_FLAG_ACKNOWLEDGE = (1 << 7),
-   ENET_PROTOCOL_COMMAND_FLAG_UNSEQUENCED = (1 << 6),
-
-   ENET_PROTOCOL_HEADER_FLAG_COMPRESSED = (1 << 14),
-   ENET_PROTOCOL_HEADER_FLAG_SENT_TIME  = (1 << 15),
-   ENET_PROTOCOL_HEADER_FLAG_MASK       = ENET_PROTOCOL_HEADER_FLAG_COMPRESSED | ENET_PROTOCOL_HEADER_FLAG_SENT_TIME,
-
-   ENET_PROTOCOL_HEADER_SESSION_MASK    = (3 << 12),
-   ENET_PROTOCOL_HEADER_SESSION_SHIFT   = 12
-} ENetProtocolFlag;
-
-#ifdef _MSC_VER
-#pragma pack(push, 1)
-#define ENET_PACKED
-#elif defined(__GNUC__) || defined(__clang__)
-#define ENET_PACKED __attribute__ ((packed))
-#else
-#define ENET_PACKED
-#endif
-
-typedef struct _ENetProtocolHeader
-{
-   enet_uint16 peerID;
-   enet_uint16 sentTime;
-} ENET_PACKED ENetProtocolHeader;
-
-typedef struct _ENetProtocolCommandHeader
-{
-   enet_uint8 command;
-   enet_uint8 channelID;
-   enet_uint16 reliableSequenceNumber;
-} ENET_PACKED ENetProtocolCommandHeader;
-
-typedef struct _ENetProtocolAcknowledge
-{
-   ENetProtocolCommandHeader header;
-   enet_uint16 receivedReliableSequenceNumber;
-   enet_uint16 receivedSentTime;
-} ENET_PACKED ENetProtocolAcknowledge;
-
-typedef struct _ENetProtocolConnect
-{
-   ENetProtocolCommandHeader header;
-   enet_uint16 outgoingPeerID;
-   enet_uint8  incomingSessionID;
-   enet_uint8  outgoingSessionID;
-   enet_uint32 mtu;
-   enet_uint32 windowSize;
-   enet_uint32 channelCount;
-   enet_uint32 incomingBandwidth;
-   enet_uint32 outgoingBandwidth;
-   enet_uint32 packetThrottleInterval;
-   enet_uint32 packetThrottleAcceleration;
-   enet_uint32 packetThrottleDeceleration;
-   enet_uint32 connectID;
-   enet_uint32 data;
-} ENET_PACKED ENetProtocolConnect;
-
-typedef struct _ENetProtocolVerifyConnect
-{
-   ENetProtocolCommandHeader header;
-   enet_uint16 outgoingPeerID;
-   enet_uint8  incomingSessionID;
-   enet_uint8  outgoingSessionID;
-   enet_uint32 mtu;
-   enet_uint32 windowSize;
-   enet_uint32 channelCount;
-   enet_uint32 incomingBandwidth;
-   enet_uint32 outgoingBandwidth;
-   enet_uint32 packetThrottleInterval;
-   enet_uint32 packetThrottleAcceleration;
-   enet_uint32 packetThrottleDeceleration;
-   enet_uint32 connectID;
-} ENET_PACKED ENetProtocolVerifyConnect;
-
-typedef struct _ENetProtocolBandwidthLimit
-{
-   ENetProtocolCommandHeader header;
-   enet_uint32 incomingBandwidth;
-   enet_uint32 outgoingBandwidth;
-} ENET_PACKED ENetProtocolBandwidthLimit;
-
-typedef struct _ENetProtocolThrottleConfigure
-{
-   ENetProtocolCommandHeader header;
-   enet_uint32 packetThrottleInterval;
-   enet_uint32 packetThrottleAcceleration;
-   enet_uint32 packetThrottleDeceleration;
-} ENET_PACKED ENetProtocolThrottleConfigure;
-
-typedef struct _ENetProtocolDisconnect
-{
-   ENetProtocolCommandHeader header;
-   enet_uint32 data;
-} ENET_PACKED ENetProtocolDisconnect;
-
-typedef struct _ENetProtocolPing
-{
-   ENetProtocolCommandHeader header;
-} ENET_PACKED ENetProtocolPing;
-
-typedef struct _ENetProtocolSendReliable
-{
-   ENetProtocolCommandHeader header;
-   enet_uint16 dataLength;
-} ENET_PACKED ENetProtocolSendReliable;
-
-typedef struct _ENetProtocolSendUnreliable
-{
-   ENetProtocolCommandHeader header;
-   enet_uint16 unreliableSequenceNumber;
-   enet_uint16 dataLength;
-} ENET_PACKED ENetProtocolSendUnreliable;
-
-typedef struct _ENetProtocolSendUnsequenced
-{
-   ENetProtocolCommandHeader header;
-   enet_uint16 unsequencedGroup;
-   enet_uint16 dataLength;
-} ENET_PACKED ENetProtocolSendUnsequenced;
-
-typedef struct _ENetProtocolSendFragment
-{
-   ENetProtocolCommandHeader header;
-   enet_uint16 startSequenceNumber;
-   enet_uint16 dataLength;
-   enet_uint32 fragmentCount;
-   enet_uint32 fragmentNumber;
-   enet_uint32 totalLength;
-   enet_uint32 fragmentOffset;
-} ENET_PACKED ENetProtocolSendFragment;
-
-typedef union _ENetProtocol
-{
-   ENetProtocolCommandHeader header;
-   ENetProtocolAcknowledge acknowledge;
-   ENetProtocolConnect connect;
-   ENetProtocolVerifyConnect verifyConnect;
-   ENetProtocolDisconnect disconnect;
-   ENetProtocolPing ping;
-   ENetProtocolSendReliable sendReliable;
-   ENetProtocolSendUnreliable sendUnreliable;
-   ENetProtocolSendUnsequenced sendUnsequenced;
-   ENetProtocolSendFragment sendFragment;
-   ENetProtocolBandwidthLimit bandwidthLimit;
-   ENetProtocolThrottleConfigure throttleConfigure;
-} ENET_PACKED ENetProtocol;
-
-#ifdef _MSC_VER
-#pragma pack(pop)
-#endif
-
-#endif /* __ENET_PROTOCOL_H__ */
-
--- a/Engine/src/enet/include/time.h
+++ /dev/null
@@ -1,18 +1,0 @@
-/** 
- @file  time.h
- @brief ENet time constants and macros
-*/
-#ifndef __ENET_TIME_H__
-#define __ENET_TIME_H__
-
-#define ENET_TIME_OVERFLOW 86400000
-
-#define ENET_TIME_LESS(a, b) ((a) - (b) >= ENET_TIME_OVERFLOW)
-#define ENET_TIME_GREATER(a, b) ((b) - (a) >= ENET_TIME_OVERFLOW)
-#define ENET_TIME_LESS_EQUAL(a, b) (! ENET_TIME_GREATER (a, b))
-#define ENET_TIME_GREATER_EQUAL(a, b) (! ENET_TIME_LESS (a, b))
-
-#define ENET_TIME_DIFFERENCE(a, b) ((a) - (b) >= ENET_TIME_OVERFLOW ? (b) - (a) : (a) - (b))
-
-#endif /* __ENET_TIME_H__ */
-
--- a/Engine/src/enet/include/types.h
+++ /dev/null
@@ -1,13 +1,0 @@
-/** 
- @file  types.h
- @brief type definitions for ENet
-*/
-#ifndef __ENET_TYPES_H__
-#define __ENET_TYPES_H__
-
-typedef unsigned char enet_uint8;       /**< unsigned 8-bit type  */
-typedef unsigned short enet_uint16;     /**< unsigned 16-bit type */
-typedef unsigned int enet_uint32;      /**< unsigned 32-bit type */
-
-#endif /* __ENET_TYPES_H__ */
-
--- a/Engine/src/enet/include/unix.h
+++ /dev/null
@@ -1,47 +1,0 @@
-/** 
- @file  unix.h
- @brief ENet Unix header
-*/
-#ifndef __ENET_UNIX_H__
-#define __ENET_UNIX_H__
-
-#include <stdlib.h>
-#include <sys/time.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <unistd.h>
-
-#ifdef MSG_MAXIOVLEN
-#define ENET_BUFFER_MAXIMUM MSG_MAXIOVLEN
-#endif
-
-typedef int ENetSocket;
-
-#define ENET_SOCKET_NULL -1
-
-#define ENET_HOST_TO_NET_16(value) (htons (value)) /**< macro that converts host to net byte-order of a 16-bit value */
-#define ENET_HOST_TO_NET_32(value) (htonl (value)) /**< macro that converts host to net byte-order of a 32-bit value */
-
-#define ENET_NET_TO_HOST_16(value) (ntohs (value)) /**< macro that converts net to host byte-order of a 16-bit value */
-#define ENET_NET_TO_HOST_32(value) (ntohl (value)) /**< macro that converts net to host byte-order of a 32-bit value */
-
-typedef struct
-{
-    void * data;
-    size_t dataLength;
-} ENetBuffer;
-
-#define ENET_CALLBACK
-
-#define ENET_API extern
-
-typedef fd_set ENetSocketSet;
-
-#define ENET_SOCKETSET_EMPTY(sockset)          FD_ZERO (& (sockset))
-#define ENET_SOCKETSET_ADD(sockset, socket)    FD_SET (socket, & (sockset))
-#define ENET_SOCKETSET_REMOVE(sockset, socket) FD_CLR (socket, & (sockset))
-#define ENET_SOCKETSET_CHECK(sockset, socket)  FD_ISSET (socket, & (sockset))
-    
-#endif /* __ENET_UNIX_H__ */
-
--- a/Engine/src/enet/include/utility.h
+++ /dev/null
@@ -1,12 +1,0 @@
-/** 
- @file  utility.h
- @brief ENet utility header
-*/
-#ifndef __ENET_UTILITY_H__
-#define __ENET_UTILITY_H__
-
-#define ENET_MAX(x, y) ((x) > (y) ? (x) : (y))
-#define ENET_MIN(x, y) ((x) < (y) ? (x) : (y))
-
-#endif /* __ENET_UTILITY_H__ */
-
--- a/Engine/src/enet/include/win32.h
+++ /dev/null
@@ -1,57 +1,0 @@
-/** 
- @file  win32.h
- @brief ENet Win32 header
-*/
-#ifndef __ENET_WIN32_H__
-#define __ENET_WIN32_H__
-
-#ifdef _MSC_VER
-#ifdef ENET_BUILDING_LIB
-#pragma warning (disable: 4267) // size_t to int conversion
-#pragma warning (disable: 4244) // 64bit to 32bit int
-#pragma warning (disable: 4018) // signed/unsigned mismatch
-#pragma warning (disable: 4146) // unary minus operator applied to unsigned type
-#endif
-#endif
-
-#include <stdlib.h>
-#include <winsock2.h>
-
-typedef SOCKET ENetSocket;
-
-#define ENET_SOCKET_NULL INVALID_SOCKET
-
-#define ENET_HOST_TO_NET_16(value) (htons (value))
-#define ENET_HOST_TO_NET_32(value) (htonl (value))
-
-#define ENET_NET_TO_HOST_16(value) (ntohs (value))
-#define ENET_NET_TO_HOST_32(value) (ntohl (value))
-
-typedef struct
-{
-    size_t dataLength;
-    void * data;
-} ENetBuffer;
-
-#define ENET_CALLBACK __cdecl
-
-#ifdef ENET_DLL
-#ifdef ENET_BUILDING_LIB
-#define ENET_API __declspec( dllexport )
-#else
-#define ENET_API __declspec( dllimport )
-#endif /* ENET_BUILDING_LIB */
-#else /* !ENET_DLL */
-#define ENET_API extern
-#endif /* ENET_DLL */
-
-typedef fd_set ENetSocketSet;
-
-#define ENET_SOCKETSET_EMPTY(sockset)          FD_ZERO (& (sockset))
-#define ENET_SOCKETSET_ADD(sockset, socket)    FD_SET (socket, & (sockset))
-#define ENET_SOCKETSET_REMOVE(sockset, socket) FD_CLR (socket, & (sockset))
-#define ENET_SOCKETSET_CHECK(sockset, socket)  FD_ISSET (socket, & (sockset))
-
-#endif /* __ENET_WIN32_H__ */
-
-
--- a/Engine/src/filesystem.c
+++ b/Engine/src/filesystem.c
@@ -12,7 +12,6 @@
 #include "cache.h"
 #include "fixedPoint_math.h"
 #include "../../Game/src/global.h"
-#include <strings.h>
 
 char game_dir[512];
 
--- a/Engine/src/mmulti.c
+++ b/Engine/src/mmulti.c
@@ -8,7 +8,6 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#include <strings.h>
 #include <stdarg.h>
 #include <ctype.h>
 #include <time.h>
@@ -18,7 +17,7 @@
 #if (HAVE_ENET_ENET_H == 1)
 	#include <enet/enet.h>
 #else
-	#include "enet/include/enet.h"
+	#include "enet/enet.h"
 #endif
 
 //STL
--- a/Engine/src/mmulti_stable.cpp
+++ b/Engine/src/mmulti_stable.cpp
@@ -4,7 +4,7 @@
 #include <string.h>
 #include <stdarg.h>
 
-#include "enet.h"
+#include "enet/enet.h"
 
 //#include "buildqueue.h"
 
@@ -496,7 +496,7 @@
 				enet_address_get_host(&address, szHostName, 64);
 				printf("Creating peer: %s:%d\n", szHostName, address.port);
 	
-				g_Peers[i] = enet_host_connect (g_Server, & address, 2); 
+				g_Peers[i] = enet_host_connect (g_Server, & address, 2, 0); 
 	
 				if(g_Peers[i] == NULL)
 				{
@@ -533,7 +533,7 @@
 
     while (my_id == 0)  /* player number is based on id, low to high. */
 	{
-		my_id = (unsigned short)enet_time_get_raw();//(unsigned short) rand();
+		my_id = (unsigned short) enet_time_get();//(unsigned short) rand();
 	}
 
 	printf("My client id is %d\n", my_id);
@@ -957,10 +957,12 @@
     /* Bind the server to port 1234. */
     address.port = nPort;
 
-    g_Server = enet_host_create (& address /* the address to bind the server host to */, 
-                nMaxPlayers /* allow up to 32 clients and/or outgoing connections */,
-                0 /* assume any amount of incoming bandwidth */,
-                0 /* assume any amount of outgoing bandwidth */);
+    g_Server = enet_host_create(
+		& address /* the address to bind the server host to */, 
+        nMaxPlayers /* allow up to 32 clients and/or outgoing connections */,
+		2, /* allow up to 2 channels */
+        0 /* assume any amount of incoming bandwidth */,
+        0 /* assume any amount of outgoing bandwidth */);
    
 	if (g_Server == NULL)
     {
--- a/Engine/src/windows/stdint.h
+++ /dev/null
@@ -1,247 +1,0 @@
-// ISO C9x  compliant stdint.h for Microsoft Visual Studio
-// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124 
-// 
-//  Copyright (c) 2006-2008 Alexander Chemeris
-// 
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-// 
-//   1. Redistributions of source code must retain the above copyright notice,
-//      this list of conditions and the following disclaimer.
-// 
-//   2. Redistributions in binary form must reproduce the above copyright
-//      notice, this list of conditions and the following disclaimer in the
-//      documentation and/or other materials provided with the distribution.
-// 
-//   3. The name of the author may be used to endorse or promote products
-//      derived from this software without specific prior written permission.
-// 
-// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
-// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
-// EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
-// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-// 
-///////////////////////////////////////////////////////////////////////////////
-
-#ifndef _MSC_VER // [
-#error "Use this header only with Microsoft Visual C++ compilers!"
-#endif // _MSC_VER ]
-
-#ifndef _MSC_STDINT_H_ // [
-#define _MSC_STDINT_H_
-
-#if _MSC_VER > 1000
-#pragma once
-#endif
-
-#include <limits.h>
-
-// For Visual Studio 6 in C++ mode and for many Visual Studio versions when
-// compiling for ARM we should wrap <wchar.h> include with 'extern "C++" {}'
-// or compiler give many errors like this:
-//   error C2733: second C linkage of overloaded function 'wmemchr' not allowed
-#ifdef __cplusplus
-extern "C" {
-#endif
-#  include <wchar.h>
-#ifdef __cplusplus
-}
-#endif
-
-// Define _W64 macros to mark types changing their size, like intptr_t.
-#ifndef _W64
-#  if !defined(__midl) && (defined(_X86_) || defined(_M_IX86)) && _MSC_VER >= 1300
-#     define _W64 __w64
-#  else
-#     define _W64
-#  endif
-#endif
-
-
-// 7.18.1 Integer types
-
-// 7.18.1.1 Exact-width integer types
-
-// Visual Studio 6 and Embedded Visual C++ 4 doesn't
-// realize that, e.g. char has the same size as __int8
-// so we give up on __intX for them.
-#if (_MSC_VER < 1300)
-   typedef signed char       int8_t;
-   typedef signed short      int16_t;
-   typedef signed int        int32_t;
-   typedef unsigned char     uint8_t;
-   typedef unsigned short    uint16_t;
-   typedef unsigned int      uint32_t;
-#else
-   typedef signed __int8     int8_t;
-   typedef signed __int16    int16_t;
-   typedef signed __int32    int32_t;
-   typedef unsigned __int8   uint8_t;
-   typedef unsigned __int16  uint16_t;
-   typedef unsigned __int32  uint32_t;
-#endif
-typedef signed __int64       int64_t;
-typedef unsigned __int64     uint64_t;
-
-
-// 7.18.1.2 Minimum-width integer types
-typedef int8_t    int_least8_t;
-typedef int16_t   int_least16_t;
-typedef int32_t   int_least32_t;
-typedef int64_t   int_least64_t;
-typedef uint8_t   uint_least8_t;
-typedef uint16_t  uint_least16_t;
-typedef uint32_t  uint_least32_t;
-typedef uint64_t  uint_least64_t;
-
-// 7.18.1.3 Fastest minimum-width integer types
-typedef int8_t    int_fast8_t;
-typedef int16_t   int_fast16_t;
-typedef int32_t   int_fast32_t;
-typedef int64_t   int_fast64_t;
-typedef uint8_t   uint_fast8_t;
-typedef uint16_t  uint_fast16_t;
-typedef uint32_t  uint_fast32_t;
-typedef uint64_t  uint_fast64_t;
-
-// 7.18.1.4 Integer types capable of holding object pointers
-#ifdef _WIN64 // [
-   typedef signed __int64    intptr_t;
-   typedef unsigned __int64  uintptr_t;
-#else // _WIN64 ][
-   typedef _W64 signed int   intptr_t;
-   typedef _W64 unsigned int uintptr_t;
-#endif // _WIN64 ]
-
-// 7.18.1.5 Greatest-width integer types
-typedef int64_t   intmax_t;
-typedef uint64_t  uintmax_t;
-
-
-// 7.18.2 Limits of specified-width integer types
-
-#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS) // [   See footnote 220 at page 257 and footnote 221 at page 259
-
-// 7.18.2.1 Limits of exact-width integer types
-#define INT8_MIN     ((int8_t)_I8_MIN)
-#define INT8_MAX     _I8_MAX
-#define INT16_MIN    ((int16_t)_I16_MIN)
-#define INT16_MAX    _I16_MAX
-#define INT32_MIN    ((int32_t)_I32_MIN)
-#define INT32_MAX    _I32_MAX
-#define INT64_MIN    ((int64_t)_I64_MIN)
-#define INT64_MAX    _I64_MAX
-#define UINT8_MAX    _UI8_MAX
-#define UINT16_MAX   _UI16_MAX
-#define UINT32_MAX   _UI32_MAX
-#define UINT64_MAX   _UI64_MAX
-
-// 7.18.2.2 Limits of minimum-width integer types
-#define INT_LEAST8_MIN    INT8_MIN
-#define INT_LEAST8_MAX    INT8_MAX
-#define INT_LEAST16_MIN   INT16_MIN
-#define INT_LEAST16_MAX   INT16_MAX
-#define INT_LEAST32_MIN   INT32_MIN
-#define INT_LEAST32_MAX   INT32_MAX
-#define INT_LEAST64_MIN   INT64_MIN
-#define INT_LEAST64_MAX   INT64_MAX
-#define UINT_LEAST8_MAX   UINT8_MAX
-#define UINT_LEAST16_MAX  UINT16_MAX
-#define UINT_LEAST32_MAX  UINT32_MAX
-#define UINT_LEAST64_MAX  UINT64_MAX
-
-// 7.18.2.3 Limits of fastest minimum-width integer types
-#define INT_FAST8_MIN    INT8_MIN
-#define INT_FAST8_MAX    INT8_MAX
-#define INT_FAST16_MIN   INT16_MIN
-#define INT_FAST16_MAX   INT16_MAX
-#define INT_FAST32_MIN   INT32_MIN
-#define INT_FAST32_MAX   INT32_MAX
-#define INT_FAST64_MIN   INT64_MIN
-#define INT_FAST64_MAX   INT64_MAX
-#define UINT_FAST8_MAX   UINT8_MAX
-#define UINT_FAST16_MAX  UINT16_MAX
-#define UINT_FAST32_MAX  UINT32_MAX
-#define UINT_FAST64_MAX  UINT64_MAX
-
-// 7.18.2.4 Limits of integer types capable of holding object pointers
-#ifdef _WIN64 // [
-#  define INTPTR_MIN   INT64_MIN
-#  define INTPTR_MAX   INT64_MAX
-#  define UINTPTR_MAX  UINT64_MAX
-#else // _WIN64 ][
-#  define INTPTR_MIN   INT32_MIN
-#  define INTPTR_MAX   INT32_MAX
-#  define UINTPTR_MAX  UINT32_MAX
-#endif // _WIN64 ]
-
-// 7.18.2.5 Limits of greatest-width integer types
-#define INTMAX_MIN   INT64_MIN
-#define INTMAX_MAX   INT64_MAX
-#define UINTMAX_MAX  UINT64_MAX
-
-// 7.18.3 Limits of other integer types
-
-#ifdef _WIN64 // [
-#  define PTRDIFF_MIN  _I64_MIN
-#  define PTRDIFF_MAX  _I64_MAX
-#else  // _WIN64 ][
-#  define PTRDIFF_MIN  _I32_MIN
-#  define PTRDIFF_MAX  _I32_MAX
-#endif  // _WIN64 ]
-
-#define SIG_ATOMIC_MIN  INT_MIN
-#define SIG_ATOMIC_MAX  INT_MAX
-
-#ifndef SIZE_MAX // [
-#  ifdef _WIN64 // [
-#     define SIZE_MAX  _UI64_MAX
-#  else // _WIN64 ][
-#     define SIZE_MAX  _UI32_MAX
-#  endif // _WIN64 ]
-#endif // SIZE_MAX ]
-
-// WCHAR_MIN and WCHAR_MAX are also defined in <wchar.h>
-#ifndef WCHAR_MIN // [
-#  define WCHAR_MIN  0
-#endif  // WCHAR_MIN ]
-#ifndef WCHAR_MAX // [
-#  define WCHAR_MAX  _UI16_MAX
-#endif  // WCHAR_MAX ]
-
-#define WINT_MIN  0
-#define WINT_MAX  _UI16_MAX
-
-#endif // __STDC_LIMIT_MACROS ]
-
-
-// 7.18.4 Limits of other integer types
-
-#if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS) // [   See footnote 224 at page 260
-
-// 7.18.4.1 Macros for minimum-width integer constants
-
-#define INT8_C(val)  val##i8
-#define INT16_C(val) val##i16
-#define INT32_C(val) val##i32
-#define INT64_C(val) val##i64
-
-#define UINT8_C(val)  val##ui8
-#define UINT16_C(val) val##ui16
-#define UINT32_C(val) val##ui32
-#define UINT64_C(val) val##ui64
-
-// 7.18.4.2 Macros for greatest-width integer constants
-#define INTMAX_C   INT64_C
-#define UINTMAX_C  UINT64_C
-
-#endif // __STDC_CONSTANT_MACROS ]
-
-
-#endif // _MSC_STDINT_H_ ]
--- a/Game/Game.vcxproj
+++ b/Game/Game.vcxproj
@@ -16,13 +16,13 @@
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
-    <PlatformToolset>v110</PlatformToolset>
+    <PlatformToolset>v142</PlatformToolset>
     <UseOfMfc>false</UseOfMfc>
     <CharacterSet>MultiByte</CharacterSet>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
-    <PlatformToolset>v110</PlatformToolset>
+    <PlatformToolset>v142</PlatformToolset>
     <UseOfMfc>false</UseOfMfc>
     <CharacterSet>MultiByte</CharacterSet>
     <WholeProgramOptimization>false</WholeProgramOptimization>
@@ -61,7 +61,7 @@
       <IntrinsicFunctions>true</IntrinsicFunctions>
       <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
       <OmitFramePointers>true</OmitFramePointers>
-      <AdditionalIncludeDirectories>..\SDL-1.2.9\include;..\SDL_mixer-1.2.6;..\Engine\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>$(SolutionDir)build\vcpkg.windows\installed\x86-windows-static\include;..\Engine\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>nDBGRECORD; CHECK_XDUKE_REV; nDEBUG; WIN32; _CONSOLE; PLATFORM_WIN32; _CRT_SECURE_NO_DEPRECATE; _CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
       <BufferSecurityCheck>false</BufferSecurityCheck>
@@ -77,11 +77,10 @@
     </ResourceCompile>
     <Link>
       <AdditionalOptions>/MACHINE:I386 %(AdditionalOptions)</AdditionalOptions>
-      <AdditionalDependencies>dxguid.lib;sdl.lib;sdl_mixer.lib;winmm.lib;WS2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalDependencies>dxguid.lib;sdl.lib;winmm.lib;WS2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <OutputFile>$(OutDir)ChocolateDuke3D.exe</OutputFile>
-      <Version>19.4</Version>
       <SuppressStartupBanner>true</SuppressStartupBanner>
-      <AdditionalLibraryDirectories>..\Directx_dec_2005\;..\SDL-1.2.9\lib\x86;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <AdditionalLibraryDirectories>$(SolutionDir)build\vcpkg.windows\installed\x86-windows-static\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <SubSystem>Console</SubSystem>
       <OptimizeReferences>true</OptimizeReferences>
     </Link>
@@ -92,7 +91,7 @@
     </Midl>
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>..\SDL-1.2.9\include;..\SDL_mixer-1.2.6;..\Engine\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>$(SolutionDir)build\vcpkg.windows\installed\x86-windows-static\include;..\Engine\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>nDBGRECORD; CHECK_XDUKE_REV; nDEBUG; WIN32; _CONSOLE; PLATFORM_WIN32; _CRT_SECURE_NO_DEPRECATE; _CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
@@ -109,10 +108,10 @@
     </ResourceCompile>
     <Link>
       <AdditionalOptions>/MACHINE:I386 %(AdditionalOptions)</AdditionalOptions>
-      <AdditionalDependencies>dxguid.lib;sdl.lib;sdl_mixer.lib;winmm.lib;WS2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <OutputFile>$(OutDir)Game.exe</OutputFile>
+      <AdditionalDependencies>dxguid.lib;enet.lib;sdl.lib;winmm.lib;WS2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)ChocolateDuke3Dd.exe</OutputFile>
       <SuppressStartupBanner>true</SuppressStartupBanner>
-      <AdditionalLibraryDirectories>..\Directx_dec_2005\;..\SDL-1.2.9\lib\x86;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <AdditionalLibraryDirectories>$(SolutionDir)build\vcpkg.windows\installed\x86-windows-static\debug\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <SubSystem>Console</SubSystem>
     </Link>
--- a/Game/src/audiolib/dsl.c
+++ b/Game/src/audiolib/dsl.c
@@ -4,8 +4,8 @@
 #include "dsl.h"
 #include "util.h"
 
-#include "SDL.h"
-#include "SDL_mixer.h"
+#include "SDL/SDL.h"
+//#include "SDL_mixer.h"
 
 extern volatile int MV_MixPage;
 
@@ -20,7 +20,8 @@
 static int _SampleRate;
 static int _remainder;
 
-static Mix_Chunk *blank;
+// TODO SDL2
+//static Mix_Chunk *blank;
 static unsigned char *blank_buf;
 
 /*
@@ -166,25 +167,25 @@
 
 	if (chunksize % blah) chunksize += blah - (chunksize % blah);
 
-	if (Mix_OpenAudio(SampleRate, format, channels, chunksize) < 0) {
-		DSL_SetErrorCode(DSL_MixerInitFailure);
-		
-		return DSL_Error;
-	}
+	//if (Mix_OpenAudio(SampleRate, format, channels, chunksize) < 0) {
+	//	DSL_SetErrorCode(DSL_MixerInitFailure);
+	//	
+	//	return DSL_Error;
+	//}
 
 /*
 	Mix_SetPostMix(mixer_callback, NULL);
 */
 	/* have to use a channel because postmix will overwrite the music... */
-	Mix_RegisterEffect(0, mixer_callback, NULL, NULL);
+	//Mix_RegisterEffect(0, mixer_callback, NULL, NULL);
 	
 	/* create a dummy sample just to allocate that channel */
 	blank_buf = (Uint8 *)malloc(4096);
 	memset(blank_buf, 0, 4096);
 	
-	blank = Mix_QuickLoad_RAW(blank_buf, 4096);
-		
-	Mix_PlayChannel(0, blank, -1);
+	//blank = Mix_QuickLoad_RAW(blank_buf, 4096);
+	//	
+	//Mix_PlayChannel(0, blank, -1);
 	
 	mixer_initialized = 1;
 	
@@ -193,16 +194,16 @@
 
 void DSL_StopPlayback( void )
 {
-	if (mixer_initialized) {
-		Mix_HaltChannel(0);
-	}
+	//if (mixer_initialized) {
+	//	Mix_HaltChannel(0);
+	//}
+	//
+	//if (blank != NULL) {
+	//	Mix_FreeChunk(blank);
+	//}
+	//
+	//blank = NULL;
 	
-	if (blank != NULL) {
-		Mix_FreeChunk(blank);
-	}
-	
-	blank = NULL;
-	
 	if (blank_buf  != NULL) {
 		free(blank_buf);
 	}
@@ -209,9 +210,9 @@
 	
 	blank_buf = NULL;
 	
-	if (mixer_initialized) {
-		Mix_CloseAudio();
-	}
+	//if (mixer_initialized) {
+	//	Mix_CloseAudio();
+	//}
 	
 	mixer_initialized = 0;
 }
--- a/Game/src/audiolib/multivoc.c
+++ b/Game/src/audiolib/multivoc.c
@@ -64,7 +64,7 @@
 #include "../sounddebugdefs.h"
 
 // for the Mutex
-#include <SDL.h>
+#include <SDL/SDL.h>
 
 #define RoundFixed( fixedval, bits )            \
         (                                       \
--- a/Game/src/audiolib/multivoc.h
+++ b/Game/src/audiolib/multivoc.h
@@ -32,7 +32,7 @@
 #define __MULTIVOC_H
 
 //#include <windows.h>
-#include <SDL.h>
+#include "SDL/SDL.h"
 
 // forward declare
 //struct SDL_mutex;
--- a/Game/src/global.c
+++ b/Game/src/global.c
@@ -498,7 +498,7 @@
 
    return (ix - (ix>>4) + (t>>2) + (t>>3));
 }
-#include "SDL.h"
+#include "SDL/SDL.h"
 void Error (int errorType, char  *error, ...)
 {
    va_list argptr;
--- a/Game/src/global.h
+++ b/Game/src/global.h
@@ -58,8 +58,8 @@
 #define Swapint32_t IntelLong
 #endif
 
-int32_t MotoLong (int32_t l);
-int32_t IntelLong (int32_t l);
+//int32_t MotoLong (int32_t l);
+//int32_t IntelLong (int32_t l);
 
 void Error (int errorType, char  *error, ...);
 
--- a/Game/src/menues.c
+++ b/Game/src/menues.c
@@ -30,7 +30,7 @@
 #include "control.h"
 
 #include "filesystem.h"
-#include "SDL.h"
+#include "SDL/SDL.h"
 #include "premap.h"
 #include "display.h"
 
--- a/Game/src/midi/sdl_midi.c
+++ b/Game/src/midi/sdl_midi.c
@@ -8,8 +8,8 @@
 
 #include <stdio.h>
 #include "../audiolib/music.h"
-#include "SDL.h"
-#include "SDL_mixer.h"
+#include "SDL/SDL.h"
+//#include "SDL_mixer.h"
 #include "build.h"
 
 /*
@@ -27,9 +27,10 @@
 
 int MUSIC_Init(int SoundCard, int Address)
 {
-	if(Mix_OpenAudio(44100, MIX_DEFAULT_FORMAT, 2, 1024)==-1) {
-	    printf("Mix_OpenAudio: %s\n", Mix_GetError());
-    }
+	// TODO SDL2
+	//if(Mix_OpenAudio(44100, MIX_DEFAULT_FORMAT, 2, 1024)==-1) {
+	//    printf("Mix_OpenAudio: %s\n", Mix_GetError());
+ //   }
     
     return MUSIC_Ok;
 }
@@ -46,7 +47,7 @@
 
 void MUSIC_SetVolume(int volume)
 {
-    Mix_VolumeMusic((int)(volume / 2));
+    //Mix_VolumeMusic((int)(volume / 2));
 }
 
 void MUSIC_SetMidiChannelVolume(int channel, int volume)
@@ -68,24 +69,24 @@
 
 int MUSIC_SongPlaying(void)
 {
-	return Mix_PlayingMusic();
+	//return Mix_PlayingMusic();
 }
 
 void MUSIC_Continue(void)
 {
-    if (Mix_PausedMusic())
-        Mix_ResumeMusic();
+    //if (Mix_PausedMusic())
+    //    Mix_ResumeMusic();
 }
 
 void MUSIC_Pause(void)
 {
-    Mix_PauseMusic();
+    //Mix_PauseMusic();
 }
 
 int MUSIC_StopSong(void)
 {
-	if ( (Mix_PlayingMusic()) || (Mix_PausedMusic()) )
-        Mix_HaltMusic();
+	//if ( (Mix_PlayingMusic()) || (Mix_PausedMusic()) )
+ //       Mix_HaltMusic();
     
     return(MUSIC_Ok);
 }
@@ -97,7 +98,7 @@
     int32_t fd =  0;
     int fileSize;
     SDL_RWops *rw;
-    Mix_Music* sdlMusic;
+    //Mix_Music* sdlMusic;
     
     fd = kopen4load(songFilename,0);
     
@@ -122,9 +123,9 @@
     //Ok, the file is in memory
     rw = SDL_RWFromMem((void *) musicDataBuffer, fileSize); 
     
-    sdlMusic = Mix_LoadMUS_RW(rw);
-    
-    Mix_PlayMusic(sdlMusic, (loopflag == MUSIC_PlayOnce) ? 0 : -1);
+    //sdlMusic = Mix_LoadMUS_RW(rw);
+    //
+    //Mix_PlayMusic(sdlMusic, (loopflag == MUSIC_PlayOnce) ? 0 : -1);
     
     return 1;
 }
--- /dev/null
+++ b/vcpkg_windows.bat
@@ -1,0 +1,22 @@
+mkdir build
+cd build || goto :error
+git clone https://github.com/Microsoft/vcpkg.git vcpkg.windows || goto :error
+cd vcpkg.windows || goto :error
+git checkout 2020.01 || goto :error
+call bootstrap-vcpkg.bat || goto :error
+
+vcpkg.exe install ^
+	enet:x86-windows-static ^
+	sdl1:x86-windows-static ^
+	sdl2-mixer:x86-windows-static ^
+	|| goto :error
+
+cd ..
+cd ..
+
+exit /b
+
+
+:error
+echo Failed with error #%errorlevel%.
+exit /b %errorlevel%
--- a/vs2005/duke3d_vs2005.sln
+++ /dev/null
@@ -1,28 +1,0 @@
-Microsoft Visual Studio Solution File, Format Version 9.00
-# Visual Studio 2005
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Game", "Game\Game.vcproj", "{6D80B050-1DC6-406A-98E3-60C65C3304F3}"
-	ProjectSection(ProjectDependencies) = postProject
-		{05511B4A-FB13-49E5-AE53-EE1F063C055D} = {05511B4A-FB13-49E5-AE53-EE1F063C055D}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Engine", "Engine\Engine.vcproj", "{05511B4A-FB13-49E5-AE53-EE1F063C055D}"
-EndProject
-Global
-	GlobalSection(SolutionConfigurationPlatforms) = preSolution
-		Debug|Win32 = Debug|Win32
-		Release|Win32 = Release|Win32
-	EndGlobalSection
-	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{6D80B050-1DC6-406A-98E3-60C65C3304F3}.Debug|Win32.ActiveCfg = Debug|Win32
-		{6D80B050-1DC6-406A-98E3-60C65C3304F3}.Debug|Win32.Build.0 = Debug|Win32
-		{6D80B050-1DC6-406A-98E3-60C65C3304F3}.Release|Win32.ActiveCfg = Release|Win32
-		{6D80B050-1DC6-406A-98E3-60C65C3304F3}.Release|Win32.Build.0 = Release|Win32
-		{05511B4A-FB13-49E5-AE53-EE1F063C055D}.Debug|Win32.ActiveCfg = Debug|Win32
-		{05511B4A-FB13-49E5-AE53-EE1F063C055D}.Debug|Win32.Build.0 = Debug|Win32
-		{05511B4A-FB13-49E5-AE53-EE1F063C055D}.Release|Win32.ActiveCfg = Release|Win32
-		{05511B4A-FB13-49E5-AE53-EE1F063C055D}.Release|Win32.Build.0 = Release|Win32
-	EndGlobalSection
-	GlobalSection(SolutionProperties) = preSolution
-		HideSolutionNode = FALSE
-	EndGlobalSection
-EndGlobal
--- a/xcode/Duke3D.xcodeproj/project.pbxproj
+++ /dev/null
@@ -1,900 +1,0 @@
-// !$*UTF8*$!
-{
-	archiveVersion = 1;
-	classes = {
-	};
-	objectVersion = 46;
-	objects = {
-
-/* Begin PBXBuildFile section */
-		2D058BD01686520B00E283DC /* tiles.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D058BCF1686520B00E283DC /* tiles.c */; };
-		2D058BE4168689B200E283DC /* network.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D058BE3168689B200E283DC /* network.c */; };
-		2D2A07CA168286D500064107 /* filesystem.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D2A07C9168286D400064107 /* filesystem.c */; };
-		2D47FAFF16C6BA0D00DB3597 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2D7B623416788AB200E35E54 /* Cocoa.framework */; };
-		2D47FB0616C6BA0D00DB3597 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 2D47FB0416C6BA0D00DB3597 /* InfoPlist.strings */; };
-		2D47FB0C16C6BA0D00DB3597 /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = 2D47FB0A16C6BA0D00DB3597 /* Credits.rtf */; };
-		2D47FB1616C6BA2E00DB3597 /* actors.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7B623C16788F9B00E35E54 /* actors.c */; };
-		2D47FB1716C6BA2E00DB3597 /* animlib.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7B623D16788F9B00E35E54 /* animlib.c */; };
-		2D47FB1816C6BA2E00DB3597 /* config.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7B623F16788F9B00E35E54 /* config.c */; };
-		2D47FB1916C6BA2E00DB3597 /* console.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7B624116788F9B00E35E54 /* console.c */; };
-		2D47FB1A16C6BA2E00DB3597 /* control.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7B624316788F9B00E35E54 /* control.c */; };
-		2D47FB1B16C6BA2E00DB3597 /* cvar_defs.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7B624516788F9B00E35E54 /* cvar_defs.c */; };
-		2D47FB1C16C6BA2E00DB3597 /* cvars.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7B624716788F9B00E35E54 /* cvars.c */; };
-		2D47FB1D16C6BA2E00DB3597 /* game.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7B625016788F9B00E35E54 /* game.c */; };
-		2D47FB1E16C6BA2E00DB3597 /* gamedef.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7B625216788F9B00E35E54 /* gamedef.c */; };
-		2D47FB1F16C6BA2E00DB3597 /* global.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7B625416788F9B00E35E54 /* global.c */; };
-		2D47FB2016C6BA2E00DB3597 /* keyboard.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7B625616788F9B00E35E54 /* keyboard.c */; };
-		2D47FB2116C6BA2E00DB3597 /* menues.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7B625816788F9B00E35E54 /* menues.c */; };
-		2D47FB2216C6BA2E00DB3597 /* player.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7B626116788F9B00E35E54 /* player.c */; };
-		2D47FB2316C6BA2E00DB3597 /* premap.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7B626216788F9B00E35E54 /* premap.c */; };
-		2D47FB2416C6BA2E00DB3597 /* rts.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7B626316788F9B00E35E54 /* rts.c */; };
-		2D47FB2516C6BA2E00DB3597 /* scriplib.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7B626516788F9B00E35E54 /* scriplib.c */; };
-		2D47FB2616C6BA2E00DB3597 /* sector.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7B626716788F9B00E35E54 /* sector.c */; };
-		2D47FB2716C6BA2E00DB3597 /* sounds.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7B626A16788F9B00E35E54 /* sounds.c */; };
-		2D47FB2816C6BA2E00DB3597 /* dummy_audiolib.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7B62FE16790E8000E35E54 /* dummy_audiolib.c */; };
-		2D47FB2916C6BA6F00DB3597 /* pitch.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7C17DF167ADE1F00E1BBA1 /* pitch.c */; };
-		2D47FB2A16C6BA6F00DB3597 /* dsl.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7C17CE167AD6A500E1BBA1 /* dsl.c */; };
-		2D47FB2B16C6BA6F00DB3597 /* fx_man.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7C17CF167AD6A500E1BBA1 /* fx_man.c */; };
-		2D47FB2C16C6BA6F00DB3597 /* ll_man.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7C17D0167AD6A500E1BBA1 /* ll_man.c */; };
-		2D47FB2D16C6BA6F00DB3597 /* multivoc.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7C17D1167AD6A500E1BBA1 /* multivoc.c */; };
-		2D47FB2E16C6BA6F00DB3597 /* mv_mix.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7C17D2167AD6A500E1BBA1 /* mv_mix.c */; };
-		2D47FB2F16C6BA6F00DB3597 /* mvreverb.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7C17D3167AD6A500E1BBA1 /* mvreverb.c */; };
-		2D47FB3016C6BA6F00DB3597 /* nodpmi.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7C17D4167AD6A500E1BBA1 /* nodpmi.c */; };
-		2D47FB3116C6BA6F00DB3597 /* user.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7C17D6167AD6A500E1BBA1 /* user.c */; };
-		2D47FB3216C6BA6F00DB3597 /* sdl_midi.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D4FB6FE167D430F00915887 /* sdl_midi.c */; };
-		2D47FB3316C6BA8200DB3597 /* cache.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7B61F41678885A00E35E54 /* cache.c */; };
-		2D47FB3416C6BA8200DB3597 /* display.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7B621C1678885A00E35E54 /* display.c */; };
-		2D47FB3516C6BA8200DB3597 /* draw.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7B61F11678885A00E35E54 /* draw.c */; };
-		2D47FB3616C6BA8200DB3597 /* dummy_multi.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7B630016791C0200E35E54 /* dummy_multi.c */; };
-		2D47FB3716C6BA8200DB3597 /* host.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7B61FA1678885A00E35E54 /* host.c */; };
-		2D47FB3816C6BA8200DB3597 /* list.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7B62061678885A00E35E54 /* list.c */; };
-		2D47FB3916C6BA8200DB3597 /* memory.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7B62071678885A00E35E54 /* memory.c */; };
-		2D47FB3A16C6BA8200DB3597 /* packet.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7B62081678885A00E35E54 /* packet.c */; };
-		2D47FB3B16C6BA8200DB3597 /* peer.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7B62091678885A00E35E54 /* peer.c */; };
-		2D47FB3C16C6BA8200DB3597 /* protocol.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7B620A1678885A00E35E54 /* protocol.c */; };
-		2D47FB3D16C6BA8200DB3597 /* unix.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7B620D1678885A00E35E54 /* unix.c */; };
-		2D47FB3E16C6BA8200DB3597 /* engine.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7B62101678885A00E35E54 /* engine.c */; };
-		2D47FB3F16C6BA8200DB3597 /* filesystem.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D2A07C9168286D400064107 /* filesystem.c */; };
-		2D47FB4016C6BA8200DB3597 /* fixedPoint_math.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7B621A1678885A00E35E54 /* fixedPoint_math.c */; };
-		2D47FB4116C6BA8200DB3597 /* tiles.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D058BCF1686520B00E283DC /* tiles.c */; };
-		2D47FB4216C6BA8200DB3597 /* network.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D058BE3168689B200E283DC /* network.c */; };
-		2D47FB4316C6BA8200DB3597 /* SDLMain.m in Sources */ = {isa = PBXBuildFile; fileRef = 2D7B7AED16792D6700DB503A /* SDLMain.m */; };
-		2D47FB4916C6BC2200DB3597 /* SDL_mixer.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 2D7B623216788AAB00E35E54 /* SDL_mixer.framework */; };
-		2D47FB4A16C6BC2200DB3597 /* SDL.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 2D7B623016788A9B00E35E54 /* SDL.framework */; };
-		2D47FB4E16C6BF1C00DB3597 /* duke_3d_icon.icns in Resources */ = {isa = PBXBuildFile; fileRef = 2D47FB4D16C6BF1C00DB3597 /* duke_3d_icon.icns */; };
-		2D4FB6FF167D430F00915887 /* sdl_midi.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D4FB6FE167D430F00915887 /* sdl_midi.c */; };
-		2D7B621D1678885A00E35E54 /* draw.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7B61F11678885A00E35E54 /* draw.c */; };
-		2D7B621E1678885A00E35E54 /* cache.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7B61F41678885A00E35E54 /* cache.c */; };
-		2D7B621F1678885A00E35E54 /* host.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7B61FA1678885A00E35E54 /* host.c */; };
-		2D7B62201678885A00E35E54 /* list.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7B62061678885A00E35E54 /* list.c */; };
-		2D7B62211678885A00E35E54 /* memory.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7B62071678885A00E35E54 /* memory.c */; };
-		2D7B62221678885A00E35E54 /* packet.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7B62081678885A00E35E54 /* packet.c */; };
-		2D7B62231678885A00E35E54 /* peer.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7B62091678885A00E35E54 /* peer.c */; };
-		2D7B62241678885A00E35E54 /* protocol.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7B620A1678885A00E35E54 /* protocol.c */; };
-		2D7B62251678885A00E35E54 /* unix.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7B620D1678885A00E35E54 /* unix.c */; };
-		2D7B62261678885A00E35E54 /* win32.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7B620E1678885A00E35E54 /* win32.c */; };
-		2D7B62271678885A00E35E54 /* engine.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7B62101678885A00E35E54 /* engine.c */; };
-		2D7B622C1678885A00E35E54 /* fixedPoint_math.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7B621A1678885A00E35E54 /* fixedPoint_math.c */; };
-		2D7B622D1678885A00E35E54 /* display.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7B621C1678885A00E35E54 /* display.c */; };
-		2D7B623616788ACE00E35E54 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2D7B623416788AB200E35E54 /* Cocoa.framework */; };
-		2D7B623716788AE200E35E54 /* SDL_mixer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2D7B623216788AAB00E35E54 /* SDL_mixer.framework */; };
-		2D7B623816788AF800E35E54 /* SDL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2D7B623016788A9B00E35E54 /* SDL.framework */; };
-		2D7B626E16788F9B00E35E54 /* actors.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7B623C16788F9B00E35E54 /* actors.c */; };
-		2D7B626F16788F9B00E35E54 /* animlib.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7B623D16788F9B00E35E54 /* animlib.c */; };
-		2D7B627016788F9B00E35E54 /* config.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7B623F16788F9B00E35E54 /* config.c */; };
-		2D7B627116788F9B00E35E54 /* console.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7B624116788F9B00E35E54 /* console.c */; };
-		2D7B627216788F9B00E35E54 /* control.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7B624316788F9B00E35E54 /* control.c */; };
-		2D7B627316788F9B00E35E54 /* cvar_defs.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7B624516788F9B00E35E54 /* cvar_defs.c */; };
-		2D7B627416788F9B00E35E54 /* cvars.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7B624716788F9B00E35E54 /* cvars.c */; };
-		2D7B627516788F9B00E35E54 /* game.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7B625016788F9B00E35E54 /* game.c */; };
-		2D7B627616788F9B00E35E54 /* gamedef.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7B625216788F9B00E35E54 /* gamedef.c */; };
-		2D7B627716788F9B00E35E54 /* global.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7B625416788F9B00E35E54 /* global.c */; };
-		2D7B627816788F9B00E35E54 /* keyboard.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7B625616788F9B00E35E54 /* keyboard.c */; };
-		2D7B627916788F9B00E35E54 /* menues.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7B625816788F9B00E35E54 /* menues.c */; };
-		2D7B627C16788F9B00E35E54 /* player.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7B626116788F9B00E35E54 /* player.c */; };
-		2D7B627D16788F9B00E35E54 /* premap.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7B626216788F9B00E35E54 /* premap.c */; };
-		2D7B627E16788F9B00E35E54 /* rts.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7B626316788F9B00E35E54 /* rts.c */; };
-		2D7B627F16788F9B00E35E54 /* scriplib.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7B626516788F9B00E35E54 /* scriplib.c */; };
-		2D7B628016788F9B00E35E54 /* sector.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7B626716788F9B00E35E54 /* sector.c */; };
-		2D7B628116788F9B00E35E54 /* sounds.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7B626A16788F9B00E35E54 /* sounds.c */; };
-		2D7B62FF16790E8100E35E54 /* dummy_audiolib.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7B62FE16790E8000E35E54 /* dummy_audiolib.c */; };
-		2D7B630116791C0300E35E54 /* dummy_multi.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7B630016791C0200E35E54 /* dummy_multi.c */; };
-		2D7B7AEE16792D6700DB503A /* SDLMain.m in Sources */ = {isa = PBXBuildFile; fileRef = 2D7B7AED16792D6700DB503A /* SDLMain.m */; };
-		2D7B7B121679325D00DB503A /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2D7B7B111679325D00DB503A /* CoreFoundation.framework */; };
-		2D7C17D7167AD6A500E1BBA1 /* dsl.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7C17CE167AD6A500E1BBA1 /* dsl.c */; };
-		2D7C17D8167AD6A500E1BBA1 /* fx_man.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7C17CF167AD6A500E1BBA1 /* fx_man.c */; };
-		2D7C17D9167AD6A500E1BBA1 /* ll_man.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7C17D0167AD6A500E1BBA1 /* ll_man.c */; };
-		2D7C17DA167AD6A500E1BBA1 /* multivoc.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7C17D1167AD6A500E1BBA1 /* multivoc.c */; };
-		2D7C17DB167AD6A500E1BBA1 /* mv_mix.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7C17D2167AD6A500E1BBA1 /* mv_mix.c */; };
-		2D7C17DC167AD6A500E1BBA1 /* mvreverb.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7C17D3167AD6A500E1BBA1 /* mvreverb.c */; };
-		2D7C17DD167AD6A500E1BBA1 /* nodpmi.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7C17D4167AD6A500E1BBA1 /* nodpmi.c */; };
-		2D7C17DE167AD6A500E1BBA1 /* user.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7C17D6167AD6A500E1BBA1 /* user.c */; };
-		2D7C17E0167ADE2000E1BBA1 /* pitch.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D7C17DF167ADE1F00E1BBA1 /* pitch.c */; };
-		51516E1816E3BBED00A480FC /* SDL_mixer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2D7B623216788AAB00E35E54 /* SDL_mixer.framework */; };
-		51516E1916E3BBED00A480FC /* SDL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2D7B623016788A9B00E35E54 /* SDL.framework */; };
-/* End PBXBuildFile section */
-
-/* Begin PBXCopyFilesBuildPhase section */
-		2D47FB4816C6BC0F00DB3597 /* CopyFiles */ = {
-			isa = PBXCopyFilesBuildPhase;
-			buildActionMask = 12;
-			dstPath = "";
-			dstSubfolderSpec = 10;
-			files = (
-				2D47FB4916C6BC2200DB3597 /* SDL_mixer.framework in CopyFiles */,
-				2D47FB4A16C6BC2200DB3597 /* SDL.framework in CopyFiles */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		2D7B61DC167886FB00E35E54 /* CopyFiles */ = {
-			isa = PBXCopyFilesBuildPhase;
-			buildActionMask = 8;
-			dstPath = "";
-			dstSubfolderSpec = 10;
-			files = (
-			);
-			runOnlyForDeploymentPostprocessing = 1;
-		};
-/* End PBXCopyFilesBuildPhase section */
-
-/* Begin PBXFileReference section */
-		2D058BCD168651F700E283DC /* tiles.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = tiles.h; path = ../../Engine/src/tiles.h; sourceTree = "<group>"; };
-		2D058BCF1686520B00E283DC /* tiles.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = tiles.c; path = ../../Engine/src/tiles.c; sourceTree = "<group>"; };
-		2D058BE2168689A500E283DC /* network.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = network.h; path = ../../Engine/src/network.h; sourceTree = "<group>"; };
-		2D058BE3168689B200E283DC /* network.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = network.c; path = ../../Engine/src/network.c; sourceTree = "<group>"; };
-		2D2A07B8167EFA4900064107 /* music.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = music.h; path = ../../Game/src/audiolib/music.h; sourceTree = "<group>"; };
-		2D2A07BA167EFB5500064107 /* premap.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = premap.h; path = ../../Game/src/premap.h; sourceTree = "<group>"; };
-		2D2A07BB167F1ABA00064107 /* global.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = global.h; path = ../../Game/src/global.h; sourceTree = "<group>"; };
-		2D2A07C9168286D400064107 /* filesystem.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = filesystem.c; path = ../../Engine/src/filesystem.c; sourceTree = "<group>"; };
-		2D2A07CB168286F200064107 /* filesystem.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = filesystem.h; path = ../../Engine/src/filesystem.h; sourceTree = "<group>"; };
-		2D47FADE16C6B94600DB3597 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; };
-		2D47FAE116C6B94600DB3597 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; };
-		2D47FAE316C6B94600DB3597 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
-		2D47FAFD16C6BA0D00DB3597 /* Chocolate Duke3D.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Chocolate Duke3D.app"; sourceTree = BUILT_PRODUCTS_DIR; };
-		2D47FB0016C6BA0D00DB3597 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = System/Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; };
-		2D47FB0316C6BA0D00DB3597 /* Duke3DBundle-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Duke3DBundle-Info.plist"; sourceTree = "<group>"; };
-		2D47FB0516C6BA0D00DB3597 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
-		2D47FB0916C6BA0D00DB3597 /* Duke3DBundle-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Duke3DBundle-Prefix.pch"; sourceTree = "<group>"; };
-		2D47FB0B16C6BA0D00DB3597 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = en; path = en.lproj/Credits.rtf; sourceTree = "<group>"; };
-		2D47FB4D16C6BF1C00DB3597 /* duke_3d_icon.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = duke_3d_icon.icns; sourceTree = "<group>"; };
-		2D4FB6FE167D430F00915887 /* sdl_midi.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = sdl_midi.c; sourceTree = "<group>"; };
-		2D7B61DE167886FB00E35E54 /* Duke3D */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = Duke3D; sourceTree = BUILT_PRODUCTS_DIR; };
-		2D7B61F11678885A00E35E54 /* draw.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = draw.c; path = ../../Engine/src/draw.c; sourceTree = "<group>"; };
-		2D7B61F21678885A00E35E54 /* draw.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = draw.h; path = ../../Engine/src/draw.h; sourceTree = "<group>"; };
-		2D7B61F31678885A00E35E54 /* build.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = build.h; path = ../../Engine/src/build.h; sourceTree = "<group>"; };
-		2D7B61F41678885A00E35E54 /* cache.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = cache.c; path = ../../Engine/src/cache.c; sourceTree = "<group>"; };
-		2D7B61F51678885A00E35E54 /* cache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = cache.h; path = ../../Engine/src/cache.h; sourceTree = "<group>"; };
-		2D7B61F61678885A00E35E54 /* display.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = display.h; path = ../../Engine/src/display.h; sourceTree = "<group>"; };
-		2D7B61FA1678885A00E35E54 /* host.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = host.c; sourceTree = "<group>"; };
-		2D7B61FC1678885A00E35E54 /* enet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = enet.h; sourceTree = "<group>"; };
-		2D7B61FD1678885A00E35E54 /* list.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = list.h; sourceTree = "<group>"; };
-		2D7B61FE1678885A00E35E54 /* memory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = memory.h; sourceTree = "<group>"; };
-		2D7B61FF1678885A00E35E54 /* protocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = protocol.h; sourceTree = "<group>"; };
-		2D7B62001678885A00E35E54 /* time.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = time.h; sourceTree = "<group>"; };
-		2D7B62011678885A00E35E54 /* types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = types.h; sourceTree = "<group>"; };
-		2D7B62021678885A00E35E54 /* unix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = unix.h; sourceTree = "<group>"; };
-		2D7B62031678885A00E35E54 /* utility.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = utility.h; sourceTree = "<group>"; };
-		2D7B62041678885A00E35E54 /* win32.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = win32.h; sourceTree = "<group>"; };
-		2D7B62061678885A00E35E54 /* list.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = list.c; sourceTree = "<group>"; };
-		2D7B62071678885A00E35E54 /* memory.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = memory.c; sourceTree = "<group>"; };
-		2D7B62081678885A00E35E54 /* packet.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = packet.c; sourceTree = "<group>"; };
-		2D7B62091678885A00E35E54 /* peer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = peer.c; sourceTree = "<group>"; };
-		2D7B620A1678885A00E35E54 /* protocol.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = protocol.c; sourceTree = "<group>"; };
-		2D7B620D1678885A00E35E54 /* unix.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = unix.c; sourceTree = "<group>"; };
-		2D7B620E1678885A00E35E54 /* win32.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = win32.c; sourceTree = "<group>"; };
-		2D7B62101678885A00E35E54 /* engine.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = engine.c; path = ../../Engine/src/engine.c; sourceTree = "<group>"; };
-		2D7B62111678885A00E35E54 /* engine.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = engine.h; path = ../../Engine/src/engine.h; sourceTree = "<group>"; };
-		2D7B62121678885A00E35E54 /* icon.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = icon.h; path = ../../Engine/src/icon.h; sourceTree = "<group>"; };
-		2D7B62191678885A00E35E54 /* platform.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = platform.h; path = ../../Engine/src/platform.h; sourceTree = "<group>"; };
-		2D7B621A1678885A00E35E54 /* fixedPoint_math.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = fixedPoint_math.c; path = ../../Engine/src/fixedPoint_math.c; sourceTree = "<group>"; };
-		2D7B621B1678885A00E35E54 /* fixedPoint_math.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = fixedPoint_math.h; path = ../../Engine/src/fixedPoint_math.h; sourceTree = "<group>"; };
-		2D7B621C1678885A00E35E54 /* display.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = display.c; path = ../../Engine/src/display.c; sourceTree = "<group>"; };
-		2D7B622F1678895A00E35E54 /* macos_compat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = macos_compat.h; path = ../../Engine/src/macos_compat.h; sourceTree = "<group>"; };
-		2D7B623016788A9B00E35E54 /* SDL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SDL.framework; path = /Library/Frameworks/SDL.framework; sourceTree = "<absolute>"; };
-		2D7B623216788AAB00E35E54 /* SDL_mixer.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SDL_mixer.framework; path = /Library/Frameworks/SDL_mixer.framework; sourceTree = "<absolute>"; };
-		2D7B623416788AB200E35E54 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; };
-		2D7B623A16788F9B00E35E54 /* _functio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = _functio.h; path = ../../Game/src/_functio.h; sourceTree = "<group>"; };
-		2D7B623B16788F9B00E35E54 /* _rts.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = _rts.h; path = ../../Game/src/_rts.h; sourceTree = "<group>"; };
-		2D7B623C16788F9B00E35E54 /* actors.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = actors.c; path = ../../Game/src/actors.c; sourceTree = "<group>"; };
-		2D7B623D16788F9B00E35E54 /* animlib.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = animlib.c; path = ../../Game/src/animlib.c; sourceTree = "<group>"; };
-		2D7B623E16788F9B00E35E54 /* animlib.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = animlib.h; path = ../../Game/src/animlib.h; sourceTree = "<group>"; };
-		2D7B623F16788F9B00E35E54 /* config.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = config.c; path = ../../Game/src/config.c; sourceTree = "<group>"; };
-		2D7B624016788F9B00E35E54 /* config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = config.h; path = ../../Game/src/config.h; sourceTree = "<group>"; };
-		2D7B624116788F9B00E35E54 /* console.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = console.c; path = ../../Game/src/console.c; sourceTree = "<group>"; };
-		2D7B624216788F9B00E35E54 /* console.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = console.h; path = ../../Game/src/console.h; sourceTree = "<group>"; };
-		2D7B624316788F9B00E35E54 /* control.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = control.c; path = ../../Game/src/control.c; sourceTree = "<group>"; };
-		2D7B624416788F9B00E35E54 /* control.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = control.h; path = ../../Game/src/control.h; sourceTree = "<group>"; };
-		2D7B624516788F9B00E35E54 /* cvar_defs.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = cvar_defs.c; path = ../../Game/src/cvar_defs.c; sourceTree = "<group>"; };
-		2D7B624616788F9B00E35E54 /* cvar_defs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = cvar_defs.h; path = ../../Game/src/cvar_defs.h; sourceTree = "<group>"; };
-		2D7B624716788F9B00E35E54 /* cvars.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = cvars.c; path = ../../Game/src/cvars.c; sourceTree = "<group>"; };
-		2D7B624816788F9B00E35E54 /* cvars.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = cvars.h; path = ../../Game/src/cvars.h; sourceTree = "<group>"; };
-		2D7B624916788F9B00E35E54 /* DbgHelp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DbgHelp.h; path = ../../Game/src/DbgHelp.h; sourceTree = "<group>"; };
-		2D7B624A16788F9B00E35E54 /* develop.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = develop.h; path = ../../Game/src/develop.h; sourceTree = "<group>"; };
-		2D7B624B16788F9B00E35E54 /* duke3d.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = duke3d.h; path = ../../Game/src/duke3d.h; sourceTree = "<group>"; };
-		2D7B624C16788F9B00E35E54 /* dukewin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = dukewin.h; path = ../../Game/src/dukewin.h; sourceTree = "<group>"; };
-		2D7B624D16788F9B00E35E54 /* file_lib.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = file_lib.h; path = ../../Game/src/file_lib.h; sourceTree = "<group>"; };
-		2D7B624E16788F9B00E35E54 /* funct.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = funct.h; path = ../../Game/src/funct.h; sourceTree = "<group>"; };
-		2D7B624F16788F9B00E35E54 /* function.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = function.h; path = ../../Game/src/function.h; sourceTree = "<group>"; };
-		2D7B625016788F9B00E35E54 /* game.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = game.c; path = ../../Game/src/game.c; sourceTree = "<group>"; };
-		2D7B625116788F9B00E35E54 /* game.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = game.h; path = ../../Game/src/game.h; sourceTree = "<group>"; };
-		2D7B625216788F9B00E35E54 /* gamedef.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = gamedef.c; path = ../../Game/src/gamedef.c; sourceTree = "<group>"; };
-		2D7B625316788F9B00E35E54 /* gamedefs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = gamedefs.h; path = ../../Game/src/gamedefs.h; sourceTree = "<group>"; };
-		2D7B625416788F9B00E35E54 /* global.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = global.c; path = ../../Game/src/global.c; sourceTree = "<group>"; };
-		2D7B625516788F9B00E35E54 /* joystick.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = joystick.h; path = ../../Game/src/joystick.h; sourceTree = "<group>"; };
-		2D7B625616788F9B00E35E54 /* keyboard.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = keyboard.c; path = ../../Game/src/keyboard.c; sourceTree = "<group>"; };
-		2D7B625716788F9B00E35E54 /* keyboard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = keyboard.h; path = ../../Game/src/keyboard.h; sourceTree = "<group>"; };
-		2D7B625816788F9B00E35E54 /* menues.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = menues.c; path = ../../Game/src/menues.c; sourceTree = "<group>"; };
-		2D7B625F16788F9B00E35E54 /* mouse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = mouse.h; path = ../../Game/src/mouse.h; sourceTree = "<group>"; };
-		2D7B626016788F9B00E35E54 /* names.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = names.h; path = ../../Game/src/names.h; sourceTree = "<group>"; };
-		2D7B626116788F9B00E35E54 /* player.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = player.c; path = ../../Game/src/player.c; sourceTree = "<group>"; };
-		2D7B626216788F9B00E35E54 /* premap.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = premap.c; path = ../../Game/src/premap.c; sourceTree = "<group>"; };
-		2D7B626316788F9B00E35E54 /* rts.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = rts.c; path = ../../Game/src/rts.c; sourceTree = "<group>"; };
-		2D7B626416788F9B00E35E54 /* rts.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = rts.h; path = ../../Game/src/rts.h; sourceTree = "<group>"; };
-		2D7B626516788F9B00E35E54 /* scriplib.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = scriplib.c; path = ../../Game/src/scriplib.c; sourceTree = "<group>"; };
-		2D7B626616788F9B00E35E54 /* scriplib.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = scriplib.h; path = ../../Game/src/scriplib.h; sourceTree = "<group>"; };
-		2D7B626716788F9B00E35E54 /* sector.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = sector.c; path = ../../Game/src/sector.c; sourceTree = "<group>"; };
-		2D7B626816788F9B00E35E54 /* sounddebugdefs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = sounddebugdefs.h; path = ../../Game/src/sounddebugdefs.h; sourceTree = "<group>"; };
-		2D7B626916788F9B00E35E54 /* soundefs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = soundefs.h; path = ../../Game/src/soundefs.h; sourceTree = "<group>"; };
-		2D7B626A16788F9B00E35E54 /* sounds.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = sounds.c; path = ../../Game/src/sounds.c; sourceTree = "<group>"; };
-		2D7B626B16788F9B00E35E54 /* sounds.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = sounds.h; path = ../../Game/src/sounds.h; sourceTree = "<group>"; };
-		2D7B626C16788F9B00E35E54 /* types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = types.h; path = ../../Game/src/types.h; sourceTree = "<group>"; };
-		2D7B626D16788F9B00E35E54 /* util_lib.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = util_lib.h; path = ../../Game/src/util_lib.h; sourceTree = "<group>"; };
-		2D7B62FD167905C400E35E54 /* dukeunix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = dukeunix.h; path = ../../Game/src/dukeunix.h; sourceTree = "<group>"; };
-		2D7B62FE16790E8000E35E54 /* dummy_audiolib.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = dummy_audiolib.c; path = ../../Game/src/dummy_audiolib.c; sourceTree = "<group>"; };
-		2D7B630016791C0200E35E54 /* dummy_multi.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = dummy_multi.c; path = ../../Engine/src/dummy_multi.c; sourceTree = "<group>"; };
-		2D7B7AED16792D6700DB503A /* SDLMain.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLMain.m; sourceTree = "<group>"; };
-		2D7B7AEF16792D8900DB503A /* SDLMain.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLMain.h; sourceTree = "<group>"; };
-		2D7B7B111679325D00DB503A /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = System/Library/Frameworks/CoreFoundation.framework; sourceTree = SDKROOT; };
-		2D7C17CD167AD6A500E1BBA1 /* assert.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = assert.h; path = ../../Game/src/audiolib/assert.h; sourceTree = "<group>"; };
-		2D7C17CE167AD6A500E1BBA1 /* dsl.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = dsl.c; path = ../../Game/src/audiolib/dsl.c; sourceTree = "<group>"; };
-		2D7C17CF167AD6A500E1BBA1 /* fx_man.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = fx_man.c; path = ../../Game/src/audiolib/fx_man.c; sourceTree = "<group>"; };
-		2D7C17D0167AD6A500E1BBA1 /* ll_man.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ll_man.c; path = ../../Game/src/audiolib/ll_man.c; sourceTree = "<group>"; };
-		2D7C17D1167AD6A500E1BBA1 /* multivoc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = multivoc.c; path = ../../Game/src/audiolib/multivoc.c; sourceTree = "<group>"; };
-		2D7C17D2167AD6A500E1BBA1 /* mv_mix.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = mv_mix.c; path = ../../Game/src/audiolib/mv_mix.c; sourceTree = "<group>"; };
-		2D7C17D3167AD6A500E1BBA1 /* mvreverb.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = mvreverb.c; path = ../../Game/src/audiolib/mvreverb.c; sourceTree = "<group>"; };
-		2D7C17D4167AD6A500E1BBA1 /* nodpmi.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = nodpmi.c; path = ../../Game/src/audiolib/nodpmi.c; sourceTree = "<group>"; };
-		2D7C17D5167AD6A500E1BBA1 /* pitch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = pitch.h; path = ../../Game/src/audiolib/pitch.h; sourceTree = "<group>"; };
-		2D7C17D6167AD6A500E1BBA1 /* user.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = user.c; path = ../../Game/src/audiolib/user.c; sourceTree = "<group>"; };
-		2D7C17DF167ADE1F00E1BBA1 /* pitch.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pitch.c; path = ../../Game/src/audiolib/pitch.c; sourceTree = "<group>"; };
-/* End PBXFileReference section */
-
-/* Begin PBXFrameworksBuildPhase section */
-		2D47FAFA16C6BA0D00DB3597 /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				51516E1816E3BBED00A480FC /* SDL_mixer.framework in Frameworks */,
-				51516E1916E3BBED00A480FC /* SDL.framework in Frameworks */,
-				2D47FAFF16C6BA0D00DB3597 /* Cocoa.framework in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		2D7B61DB167886FB00E35E54 /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				2D7B7B121679325D00DB503A /* CoreFoundation.framework in Frameworks */,
-				2D7B623816788AF800E35E54 /* SDL.framework in Frameworks */,
-				2D7B623716788AE200E35E54 /* SDL_mixer.framework in Frameworks */,
-				2D7B623616788ACE00E35E54 /* Cocoa.framework in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-/* End PBXFrameworksBuildPhase section */
-
-/* Begin PBXGroup section */
-		2D2A07CC1682870D00064107 /* headers */ = {
-			isa = PBXGroup;
-			children = (
-				2D7B61F31678885A00E35E54 /* build.h */,
-				2D7B61F51678885A00E35E54 /* cache.h */,
-				2D7B61F61678885A00E35E54 /* display.h */,
-				2D7B61F21678885A00E35E54 /* draw.h */,
-				2D2A07CE1682875B00064107 /* enet */,
-				2D7B62111678885A00E35E54 /* engine.h */,
-				2D2A07CB168286F200064107 /* filesystem.h */,
-				2D7B62121678885A00E35E54 /* icon.h */,
-				2D7B622F1678895A00E35E54 /* macos_compat.h */,
-				2D7B62191678885A00E35E54 /* platform.h */,
-				2D7B621B1678885A00E35E54 /* fixedPoint_math.h */,
-				2D058BCD168651F700E283DC /* tiles.h */,
-				2D058BE2168689A500E283DC /* network.h */,
-			);
-			name = headers;
-			sourceTree = "<group>";
-		};
-		2D2A07CD1682871200064107 /* implementations */ = {
-			isa = PBXGroup;
-			children = (
-				2D7B61F41678885A00E35E54 /* cache.c */,
-				2D7B621C1678885A00E35E54 /* display.c */,
-				2D7B61F11678885A00E35E54 /* draw.c */,
-				2D7B630016791C0200E35E54 /* dummy_multi.c */,
-				2D7B61F71678885A00E35E54 /* enet */,
-				2D7B62101678885A00E35E54 /* engine.c */,
-				2D2A07C9168286D400064107 /* filesystem.c */,
-				2D7B621A1678885A00E35E54 /* fixedPoint_math.c */,
-				2D058BCF1686520B00E283DC /* tiles.c */,
-				2D058BE3168689B200E283DC /* network.c */,
-			);
-			name = implementations;
-			sourceTree = "<group>";
-		};
-		2D2A07CE1682875B00064107 /* enet */ = {
-			isa = PBXGroup;
-			children = (
-				2D7B61FB1678885A00E35E54 /* include */,
-			);
-			name = enet;
-			sourceTree = "<group>";
-		};
-		2D2A07CF16828B7600064107 /* headers */ = {
-			isa = PBXGroup;
-			children = (
-				2D7B623A16788F9B00E35E54 /* _functio.h */,
-				2D7B623B16788F9B00E35E54 /* _rts.h */,
-				2D7B623E16788F9B00E35E54 /* animlib.h */,
-				2D7B624016788F9B00E35E54 /* config.h */,
-				2D7B624216788F9B00E35E54 /* console.h */,
-				2D7B624416788F9B00E35E54 /* control.h */,
-				2D7B624616788F9B00E35E54 /* cvar_defs.h */,
-				2D7B624816788F9B00E35E54 /* cvars.h */,
-				2D7B624916788F9B00E35E54 /* DbgHelp.h */,
-				2D7B624A16788F9B00E35E54 /* develop.h */,
-				2D7B624B16788F9B00E35E54 /* duke3d.h */,
-				2D7B62FD167905C400E35E54 /* dukeunix.h */,
-				2D7B624C16788F9B00E35E54 /* dukewin.h */,
-				2D7B624D16788F9B00E35E54 /* file_lib.h */,
-				2D7B624E16788F9B00E35E54 /* funct.h */,
-				2D7B624F16788F9B00E35E54 /* function.h */,
-				2D7B625116788F9B00E35E54 /* game.h */,
-				2D7B625316788F9B00E35E54 /* gamedefs.h */,
-				2D2A07BB167F1ABA00064107 /* global.h */,
-				2D7B625516788F9B00E35E54 /* joystick.h */,
-				2D7B625716788F9B00E35E54 /* keyboard.h */,
-				2D7B625F16788F9B00E35E54 /* mouse.h */,
-				2D7B626016788F9B00E35E54 /* names.h */,
-				2D2A07BA167EFB5500064107 /* premap.h */,
-				2D7B626416788F9B00E35E54 /* rts.h */,
-				2D7B626616788F9B00E35E54 /* scriplib.h */,
-				2D7B626816788F9B00E35E54 /* sounddebugdefs.h */,
-				2D7B626916788F9B00E35E54 /* soundefs.h */,
-				2D7B626B16788F9B00E35E54 /* sounds.h */,
-				2D7B626C16788F9B00E35E54 /* types.h */,
-				2D7B626D16788F9B00E35E54 /* util_lib.h */,
-			);
-			name = headers;
-			sourceTree = "<group>";
-		};
-		2D2A07D016828B7C00064107 /* implementations */ = {
-			isa = PBXGroup;
-			children = (
-				2D7B623C16788F9B00E35E54 /* actors.c */,
-				2D7B623D16788F9B00E35E54 /* animlib.c */,
-				2D7B623F16788F9B00E35E54 /* config.c */,
-				2D7B624116788F9B00E35E54 /* console.c */,
-				2D7B624316788F9B00E35E54 /* control.c */,
-				2D7B624516788F9B00E35E54 /* cvar_defs.c */,
-				2D7B624716788F9B00E35E54 /* cvars.c */,
-				2D7B625016788F9B00E35E54 /* game.c */,
-				2D7B625216788F9B00E35E54 /* gamedef.c */,
-				2D7B625416788F9B00E35E54 /* global.c */,
-				2D7B625616788F9B00E35E54 /* keyboard.c */,
-				2D7B625816788F9B00E35E54 /* menues.c */,
-				2D7B626116788F9B00E35E54 /* player.c */,
-				2D7B626216788F9B00E35E54 /* premap.c */,
-				2D7B626316788F9B00E35E54 /* rts.c */,
-				2D7B626516788F9B00E35E54 /* scriplib.c */,
-				2D7B626716788F9B00E35E54 /* sector.c */,
-				2D7B626A16788F9B00E35E54 /* sounds.c */,
-				2D7B62FE16790E8000E35E54 /* dummy_audiolib.c */,
-			);
-			name = implementations;
-			sourceTree = "<group>";
-		};
-		2D47FADD16C6B94600DB3597 /* Frameworks */ = {
-			isa = PBXGroup;
-			children = (
-				2D7B623416788AB200E35E54 /* Cocoa.framework */,
-				2D7B623216788AAB00E35E54 /* SDL_mixer.framework */,
-				2D7B623016788A9B00E35E54 /* SDL.framework */,
-				2D7B7B111679325D00DB503A /* CoreFoundation.framework */,
-				2D47FADE16C6B94600DB3597 /* Cocoa.framework */,
-				2D47FAE016C6B94600DB3597 /* Other Frameworks */,
-			);
-			name = Frameworks;
-			sourceTree = "<group>";
-		};
-		2D47FAE016C6B94600DB3597 /* Other Frameworks */ = {
-			isa = PBXGroup;
-			children = (
-				2D47FAE116C6B94600DB3597 /* AppKit.framework */,
-				2D47FAE316C6B94600DB3597 /* Foundation.framework */,
-				2D47FB0016C6BA0D00DB3597 /* CoreData.framework */,
-			);
-			name = "Other Frameworks";
-			sourceTree = "<group>";
-		};
-		2D47FB0116C6BA0D00DB3597 /* Duke3DBundle */ = {
-			isa = PBXGroup;
-			children = (
-				2D47FB0216C6BA0D00DB3597 /* Supporting Files */,
-			);
-			path = Duke3DBundle;
-			sourceTree = "<group>";
-		};
-		2D47FB0216C6BA0D00DB3597 /* Supporting Files */ = {
-			isa = PBXGroup;
-			children = (
-				2D47FB4D16C6BF1C00DB3597 /* duke_3d_icon.icns */,
-				2D47FB0316C6BA0D00DB3597 /* Duke3DBundle-Info.plist */,
-				2D47FB0416C6BA0D00DB3597 /* InfoPlist.strings */,
-				2D47FB0916C6BA0D00DB3597 /* Duke3DBundle-Prefix.pch */,
-				2D47FB0A16C6BA0D00DB3597 /* Credits.rtf */,
-			);
-			name = "Supporting Files";
-			sourceTree = "<group>";
-		};
-		2D7B61D3167886FB00E35E54 = {
-			isa = PBXGroup;
-			children = (
-				2D7B61E1167886FB00E35E54 /* Duke3D */,
-				2D47FB0116C6BA0D00DB3597 /* Duke3DBundle */,
-				2D47FADD16C6B94600DB3597 /* Frameworks */,
-				2D7B61DF167886FB00E35E54 /* Products */,
-			);
-			sourceTree = "<group>";
-		};
-		2D7B61DF167886FB00E35E54 /* Products */ = {
-			isa = PBXGroup;
-			children = (
-				2D7B61DE167886FB00E35E54 /* Duke3D */,
-				2D47FAFD16C6BA0D00DB3597 /* Chocolate Duke3D.app */,
-			);
-			name = Products;
-			sourceTree = "<group>";
-		};
-		2D7B61E1167886FB00E35E54 /* Duke3D */ = {
-			isa = PBXGroup;
-			children = (
-				2D7B623916788F7900E35E54 /* Game */,
-				2D7B61F01678884400E35E54 /* Engine */,
-				2D7B7AED16792D6700DB503A /* SDLMain.m */,
-				2D7B7AEF16792D8900DB503A /* SDLMain.h */,
-			);
-			path = Duke3D;
-			sourceTree = "<group>";
-		};
-		2D7B61F01678884400E35E54 /* Engine */ = {
-			isa = PBXGroup;
-			children = (
-				2D2A07CC1682870D00064107 /* headers */,
-				2D2A07CD1682871200064107 /* implementations */,
-			);
-			name = Engine;
-			sourceTree = "<group>";
-		};
-		2D7B61F71678885A00E35E54 /* enet */ = {
-			isa = PBXGroup;
-			children = (
-				2D7B61FA1678885A00E35E54 /* host.c */,
-				2D7B62061678885A00E35E54 /* list.c */,
-				2D7B62071678885A00E35E54 /* memory.c */,
-				2D7B62081678885A00E35E54 /* packet.c */,
-				2D7B62091678885A00E35E54 /* peer.c */,
-				2D7B620A1678885A00E35E54 /* protocol.c */,
-				2D7B620D1678885A00E35E54 /* unix.c */,
-				2D7B620E1678885A00E35E54 /* win32.c */,
-			);
-			name = enet;
-			path = ../../Engine/src/enet;
-			sourceTree = "<group>";
-		};
-		2D7B61FB1678885A00E35E54 /* include */ = {
-			isa = PBXGroup;
-			children = (
-				2D7B61FC1678885A00E35E54 /* enet.h */,
-				2D7B61FD1678885A00E35E54 /* list.h */,
-				2D7B61FE1678885A00E35E54 /* memory.h */,
-				2D7B61FF1678885A00E35E54 /* protocol.h */,
-				2D7B62001678885A00E35E54 /* time.h */,
-				2D7B62011678885A00E35E54 /* types.h */,
-				2D7B62021678885A00E35E54 /* unix.h */,
-				2D7B62031678885A00E35E54 /* utility.h */,
-				2D7B62041678885A00E35E54 /* win32.h */,
-			);
-			name = include;
-			path = ../../Engine/src/enet/include;
-			sourceTree = "<group>";
-		};
-		2D7B623916788F7900E35E54 /* Game */ = {
-			isa = PBXGroup;
-			children = (
-				2D2A07CF16828B7600064107 /* headers */,
-				2D2A07D016828B7C00064107 /* implementations */,
-				2D7C17CC167AD65800E1BBA1 /* Audiolib */,
-				2D7B625916788F9B00E35E54 /* midi */,
-			);
-			name = Game;
-			sourceTree = "<group>";
-		};
-		2D7B625916788F9B00E35E54 /* midi */ = {
-			isa = PBXGroup;
-			children = (
-				2D4FB6FE167D430F00915887 /* sdl_midi.c */,
-			);
-			name = midi;
-			path = ../../Game/src/midi;
-			sourceTree = "<group>";
-		};
-		2D7C17CC167AD65800E1BBA1 /* Audiolib */ = {
-			isa = PBXGroup;
-			children = (
-				2D2A07B8167EFA4900064107 /* music.h */,
-				2D7C17DF167ADE1F00E1BBA1 /* pitch.c */,
-				2D7C17CD167AD6A500E1BBA1 /* assert.h */,
-				2D7C17CE167AD6A500E1BBA1 /* dsl.c */,
-				2D7C17CF167AD6A500E1BBA1 /* fx_man.c */,
-				2D7C17D0167AD6A500E1BBA1 /* ll_man.c */,
-				2D7C17D1167AD6A500E1BBA1 /* multivoc.c */,
-				2D7C17D2167AD6A500E1BBA1 /* mv_mix.c */,
-				2D7C17D3167AD6A500E1BBA1 /* mvreverb.c */,
-				2D7C17D4167AD6A500E1BBA1 /* nodpmi.c */,
-				2D7C17D5167AD6A500E1BBA1 /* pitch.h */,
-				2D7C17D6167AD6A500E1BBA1 /* user.c */,
-			);
-			name = Audiolib;
-			sourceTree = "<group>";
-		};
-/* End PBXGroup section */
-
-/* Begin PBXNativeTarget section */
-		2D47FAFC16C6BA0D00DB3597 /* Duke3DBundle */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = 2D47FB1316C6BA0D00DB3597 /* Build configuration list for PBXNativeTarget "Duke3DBundle" */;
-			buildPhases = (
-				2D47FAF916C6BA0D00DB3597 /* Sources */,
-				2D47FAFA16C6BA0D00DB3597 /* Frameworks */,
-				2D47FAFB16C6BA0D00DB3597 /* Resources */,
-				2D47FB4816C6BC0F00DB3597 /* CopyFiles */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-			);
-			name = Duke3DBundle;
-			productName = Duke3DBundle;
-			productReference = 2D47FAFD16C6BA0D00DB3597 /* Chocolate Duke3D.app */;
-			productType = "com.apple.product-type.application";
-		};
-		2D7B61DD167886FB00E35E54 /* Duke3D */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = 2D7B61E8167886FB00E35E54 /* Build configuration list for PBXNativeTarget "Duke3D" */;
-			buildPhases = (
-				2D7B61DA167886FB00E35E54 /* Sources */,
-				2D7B61DB167886FB00E35E54 /* Frameworks */,
-				2D7B61DC167886FB00E35E54 /* CopyFiles */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-			);
-			name = Duke3D;
-			productName = Duke3D;
-			productReference = 2D7B61DE167886FB00E35E54 /* Duke3D */;
-			productType = "com.apple.product-type.tool";
-		};
-/* End PBXNativeTarget section */
-
-/* Begin PBXProject section */
-		2D7B61D5167886FB00E35E54 /* Project object */ = {
-			isa = PBXProject;
-			attributes = {
-				LastUpgradeCheck = 0440;
-				ORGANIZATIONNAME = "fabien sanglard";
-			};
-			buildConfigurationList = 2D7B61D8167886FB00E35E54 /* Build configuration list for PBXProject "Duke3D" */;
-			compatibilityVersion = "Xcode 3.2";
-			developmentRegion = English;
-			hasScannedForEncodings = 0;
-			knownRegions = (
-				en,
-			);
-			mainGroup = 2D7B61D3167886FB00E35E54;
-			productRefGroup = 2D7B61DF167886FB00E35E54 /* Products */;
-			projectDirPath = "";
-			projectRoot = "";
-			targets = (
-				2D7B61DD167886FB00E35E54 /* Duke3D */,
-				2D47FAFC16C6BA0D00DB3597 /* Duke3DBundle */,
-			);
-		};
-/* End PBXProject section */
-
-/* Begin PBXResourcesBuildPhase section */
-		2D47FAFB16C6BA0D00DB3597 /* Resources */ = {
-			isa = PBXResourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				2D47FB0616C6BA0D00DB3597 /* InfoPlist.strings in Resources */,
-				2D47FB0C16C6BA0D00DB3597 /* Credits.rtf in Resources */,
-				2D47FB4E16C6BF1C00DB3597 /* duke_3d_icon.icns in Resources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-/* End PBXResourcesBuildPhase section */
-
-/* Begin PBXSourcesBuildPhase section */
-		2D47FAF916C6BA0D00DB3597 /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				2D47FB3316C6BA8200DB3597 /* cache.c in Sources */,
-				2D47FB3416C6BA8200DB3597 /* display.c in Sources */,
-				2D47FB3516C6BA8200DB3597 /* draw.c in Sources */,
-				2D47FB3616C6BA8200DB3597 /* dummy_multi.c in Sources */,
-				2D47FB3716C6BA8200DB3597 /* host.c in Sources */,
-				2D47FB3816C6BA8200DB3597 /* list.c in Sources */,
-				2D47FB3916C6BA8200DB3597 /* memory.c in Sources */,
-				2D47FB3A16C6BA8200DB3597 /* packet.c in Sources */,
-				2D47FB3B16C6BA8200DB3597 /* peer.c in Sources */,
-				2D47FB3C16C6BA8200DB3597 /* protocol.c in Sources */,
-				2D47FB3D16C6BA8200DB3597 /* unix.c in Sources */,
-				2D47FB3E16C6BA8200DB3597 /* engine.c in Sources */,
-				2D47FB3F16C6BA8200DB3597 /* filesystem.c in Sources */,
-				2D47FB4016C6BA8200DB3597 /* fixedPoint_math.c in Sources */,
-				2D47FB4116C6BA8200DB3597 /* tiles.c in Sources */,
-				2D47FB4216C6BA8200DB3597 /* network.c in Sources */,
-				2D47FB4316C6BA8200DB3597 /* SDLMain.m in Sources */,
-				2D47FB2916C6BA6F00DB3597 /* pitch.c in Sources */,
-				2D47FB2A16C6BA6F00DB3597 /* dsl.c in Sources */,
-				2D47FB2B16C6BA6F00DB3597 /* fx_man.c in Sources */,
-				2D47FB2C16C6BA6F00DB3597 /* ll_man.c in Sources */,
-				2D47FB2D16C6BA6F00DB3597 /* multivoc.c in Sources */,
-				2D47FB2E16C6BA6F00DB3597 /* mv_mix.c in Sources */,
-				2D47FB2F16C6BA6F00DB3597 /* mvreverb.c in Sources */,
-				2D47FB3016C6BA6F00DB3597 /* nodpmi.c in Sources */,
-				2D47FB3116C6BA6F00DB3597 /* user.c in Sources */,
-				2D47FB3216C6BA6F00DB3597 /* sdl_midi.c in Sources */,
-				2D47FB1616C6BA2E00DB3597 /* actors.c in Sources */,
-				2D47FB1716C6BA2E00DB3597 /* animlib.c in Sources */,
-				2D47FB1816C6BA2E00DB3597 /* config.c in Sources */,
-				2D47FB1916C6BA2E00DB3597 /* console.c in Sources */,
-				2D47FB1A16C6BA2E00DB3597 /* control.c in Sources */,
-				2D47FB1B16C6BA2E00DB3597 /* cvar_defs.c in Sources */,
-				2D47FB1C16C6BA2E00DB3597 /* cvars.c in Sources */,
-				2D47FB1D16C6BA2E00DB3597 /* game.c in Sources */,
-				2D47FB1E16C6BA2E00DB3597 /* gamedef.c in Sources */,
-				2D47FB1F16C6BA2E00DB3597 /* global.c in Sources */,
-				2D47FB2016C6BA2E00DB3597 /* keyboard.c in Sources */,
-				2D47FB2116C6BA2E00DB3597 /* menues.c in Sources */,
-				2D47FB2216C6BA2E00DB3597 /* player.c in Sources */,
-				2D47FB2316C6BA2E00DB3597 /* premap.c in Sources */,
-				2D47FB2416C6BA2E00DB3597 /* rts.c in Sources */,
-				2D47FB2516C6BA2E00DB3597 /* scriplib.c in Sources */,
-				2D47FB2616C6BA2E00DB3597 /* sector.c in Sources */,
-				2D47FB2716C6BA2E00DB3597 /* sounds.c in Sources */,
-				2D47FB2816C6BA2E00DB3597 /* dummy_audiolib.c in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		2D7B61DA167886FB00E35E54 /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				2D7B621D1678885A00E35E54 /* draw.c in Sources */,
-				2D7B621E1678885A00E35E54 /* cache.c in Sources */,
-				2D7B621F1678885A00E35E54 /* host.c in Sources */,
-				2D7B62201678885A00E35E54 /* list.c in Sources */,
-				2D7B62211678885A00E35E54 /* memory.c in Sources */,
-				2D7B62221678885A00E35E54 /* packet.c in Sources */,
-				2D7B62231678885A00E35E54 /* peer.c in Sources */,
-				2D7B62241678885A00E35E54 /* protocol.c in Sources */,
-				2D7B62251678885A00E35E54 /* unix.c in Sources */,
-				2D7B62261678885A00E35E54 /* win32.c in Sources */,
-				2D7B62271678885A00E35E54 /* engine.c in Sources */,
-				2D7B622C1678885A00E35E54 /* fixedPoint_math.c in Sources */,
-				2D7B622D1678885A00E35E54 /* display.c in Sources */,
-				2D7B626E16788F9B00E35E54 /* actors.c in Sources */,
-				2D7B626F16788F9B00E35E54 /* animlib.c in Sources */,
-				2D7B627016788F9B00E35E54 /* config.c in Sources */,
-				2D7B627116788F9B00E35E54 /* console.c in Sources */,
-				2D7B627216788F9B00E35E54 /* control.c in Sources */,
-				2D7B627316788F9B00E35E54 /* cvar_defs.c in Sources */,
-				2D7B627416788F9B00E35E54 /* cvars.c in Sources */,
-				2D7B627516788F9B00E35E54 /* game.c in Sources */,
-				2D7B627616788F9B00E35E54 /* gamedef.c in Sources */,
-				2D7B627716788F9B00E35E54 /* global.c in Sources */,
-				2D7B627816788F9B00E35E54 /* keyboard.c in Sources */,
-				2D7B627916788F9B00E35E54 /* menues.c in Sources */,
-				2D7B627C16788F9B00E35E54 /* player.c in Sources */,
-				2D7B627D16788F9B00E35E54 /* premap.c in Sources */,
-				2D7B627E16788F9B00E35E54 /* rts.c in Sources */,
-				2D7B627F16788F9B00E35E54 /* scriplib.c in Sources */,
-				2D7B628016788F9B00E35E54 /* sector.c in Sources */,
-				2D7B628116788F9B00E35E54 /* sounds.c in Sources */,
-				2D7B62FF16790E8100E35E54 /* dummy_audiolib.c in Sources */,
-				2D7B630116791C0300E35E54 /* dummy_multi.c in Sources */,
-				2D7B7AEE16792D6700DB503A /* SDLMain.m in Sources */,
-				2D7C17D7167AD6A500E1BBA1 /* dsl.c in Sources */,
-				2D7C17D8167AD6A500E1BBA1 /* fx_man.c in Sources */,
-				2D7C17D9167AD6A500E1BBA1 /* ll_man.c in Sources */,
-				2D7C17DA167AD6A500E1BBA1 /* multivoc.c in Sources */,
-				2D7C17DB167AD6A500E1BBA1 /* mv_mix.c in Sources */,
-				2D7C17DC167AD6A500E1BBA1 /* mvreverb.c in Sources */,
-				2D7C17DD167AD6A500E1BBA1 /* nodpmi.c in Sources */,
-				2D7C17DE167AD6A500E1BBA1 /* user.c in Sources */,
-				2D7C17E0167ADE2000E1BBA1 /* pitch.c in Sources */,
-				2D4FB6FF167D430F00915887 /* sdl_midi.c in Sources */,
-				2D2A07CA168286D500064107 /* filesystem.c in Sources */,
-				2D058BD01686520B00E283DC /* tiles.c in Sources */,
-				2D058BE4168689B200E283DC /* network.c in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-/* End PBXSourcesBuildPhase section */
-
-/* Begin PBXVariantGroup section */
-		2D47FB0416C6BA0D00DB3597 /* InfoPlist.strings */ = {
-			isa = PBXVariantGroup;
-			children = (
-				2D47FB0516C6BA0D00DB3597 /* en */,
-			);
-			name = InfoPlist.strings;
-			sourceTree = "<group>";
-		};
-		2D47FB0A16C6BA0D00DB3597 /* Credits.rtf */ = {
-			isa = PBXVariantGroup;
-			children = (
-				2D47FB0B16C6BA0D00DB3597 /* en */,
-			);
-			name = Credits.rtf;
-			sourceTree = "<group>";
-		};
-/* End PBXVariantGroup section */
-
-/* Begin XCBuildConfiguration section */
-		2D47FB1416C6BA0D00DB3597 /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				ALWAYS_SEARCH_USER_PATHS = NO;
-				ARCHS = "$(ARCHS_STANDARD_32_BIT)";
-				GCC_PRECOMPILE_PREFIX_HEADER = YES;
-				GCC_PREFIX_HEADER = "Duke3DBundle/Duke3DBundle-Prefix.pch";
-				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
-				INFOPLIST_FILE = "Duke3DBundle/Duke3DBundle-Info.plist";
-				PRODUCT_NAME = "Chocolate Duke3D";
-				WRAPPER_EXTENSION = app;
-			};
-			name = Debug;
-		};
-		2D47FB1516C6BA0D00DB3597 /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				ALWAYS_SEARCH_USER_PATHS = NO;
-				ARCHS = "$(ARCHS_STANDARD_32_BIT)";
-				GCC_PRECOMPILE_PREFIX_HEADER = YES;
-				GCC_PREFIX_HEADER = "Duke3DBundle/Duke3DBundle-Prefix.pch";
-				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
-				INFOPLIST_FILE = "Duke3DBundle/Duke3DBundle-Info.plist";
-				ONLY_ACTIVE_ARCH = YES;
-				PRODUCT_NAME = "Chocolate Duke3D";
-				WRAPPER_EXTENSION = app;
-			};
-			name = Release;
-		};
-		2D7B61E6167886FB00E35E54 /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				ALWAYS_SEARCH_USER_PATHS = NO;
-				ARCHS = "$(ARCHS_STANDARD_32_BIT)";
-				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
-				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
-				COPY_PHASE_STRIP = NO;
-				FRAMEWORK_SEARCH_PATHS = "/Library/Frameworks/**";
-				GCC_C_LANGUAGE_STANDARD = gnu99;
-				GCC_DYNAMIC_NO_PIC = NO;
-				GCC_ENABLE_OBJC_EXCEPTIONS = YES;
-				GCC_OPTIMIZATION_LEVEL = 0;
-				GCC_PREPROCESSOR_DEFINITIONS = (
-					"DEBUG=1",
-					"$(inherited)",
-				);
-				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
-				GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = NO;
-				GCC_TREAT_INCOMPATIBLE_POINTER_TYPE_WARNINGS_AS_ERRORS = NO;
-				GCC_TREAT_WARNINGS_AS_ERRORS = NO;
-				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
-				GCC_WARN_ABOUT_RETURN_TYPE = YES;
-				GCC_WARN_UNINITIALIZED_AUTOS = YES;
-				GCC_WARN_UNUSED_VARIABLE = YES;
-				HEADER_SEARCH_PATHS = (
-					"/Library/Frameworks/SDL.framework/Headers/**",
-					"/Library/Frameworks/SDL_Mixer.framework/Headers/**",
-				);
-				INSTALL_PATH = "@rpath";
-				LD_RUNPATH_SEARCH_PATHS = "@loader_path/../Frameworks";
-				MACOSX_DEPLOYMENT_TARGET = 10.8;
-				ONLY_ACTIVE_ARCH = YES;
-				SDKROOT = macosx;
-			};
-			name = Debug;
-		};
-		2D7B61E7167886FB00E35E54 /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				ALWAYS_SEARCH_USER_PATHS = NO;
-				ARCHS = "$(ARCHS_STANDARD_32_BIT)";
-				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
-				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
-				COPY_PHASE_STRIP = YES;
-				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
-				FRAMEWORK_SEARCH_PATHS = "/Library/Frameworks/**";
-				GCC_C_LANGUAGE_STANDARD = gnu99;
-				GCC_ENABLE_OBJC_EXCEPTIONS = YES;
-				GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = NO;
-				GCC_TREAT_INCOMPATIBLE_POINTER_TYPE_WARNINGS_AS_ERRORS = NO;
-				GCC_TREAT_WARNINGS_AS_ERRORS = NO;
-				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
-				GCC_WARN_ABOUT_RETURN_TYPE = YES;
-				GCC_WARN_UNINITIALIZED_AUTOS = YES;
-				GCC_WARN_UNUSED_VARIABLE = YES;
-				HEADER_SEARCH_PATHS = (
-					"/Library/Frameworks/SDL.framework/Headers/**",
-					"/Library/Frameworks/SDL_Mixer.framework/Headers/**",
-				);
-				INSTALL_PATH = "@rpath";
-				LD_RUNPATH_SEARCH_PATHS = "@loader_path/../Frameworks";
-				MACOSX_DEPLOYMENT_TARGET = 10.8;
-				SDKROOT = macosx;
-			};
-			name = Release;
-		};
-		2D7B61E9167886FB00E35E54 /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				PRODUCT_NAME = "$(TARGET_NAME)";
-			};
-			name = Debug;
-		};
-		2D7B61EA167886FB00E35E54 /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				PRODUCT_NAME = "$(TARGET_NAME)";
-			};
-			name = Release;
-		};
-/* End XCBuildConfiguration section */
-
-/* Begin XCConfigurationList section */
-		2D47FB1316C6BA0D00DB3597 /* Build configuration list for PBXNativeTarget "Duke3DBundle" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				2D47FB1416C6BA0D00DB3597 /* Debug */,
-				2D47FB1516C6BA0D00DB3597 /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		2D7B61D8167886FB00E35E54 /* Build configuration list for PBXProject "Duke3D" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				2D7B61E6167886FB00E35E54 /* Debug */,
-				2D7B61E7167886FB00E35E54 /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		2D7B61E8167886FB00E35E54 /* Build configuration list for PBXNativeTarget "Duke3D" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				2D7B61E9167886FB00E35E54 /* Debug */,
-				2D7B61EA167886FB00E35E54 /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-/* End XCConfigurationList section */
-	};
-	rootObject = 2D7B61D5167886FB00E35E54 /* Project object */;
-}
--- a/xcode/Duke3D.xcodeproj/project.xcworkspace/contents.xcworkspacedata
+++ /dev/null
@@ -1,7 +1,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Workspace
-   version = "1.0">
-   <FileRef
-      location = "self:Duke3D.xcodeproj">
-   </FileRef>
-</Workspace>
--- a/xcode/Duke3D/SDLMain.h
+++ /dev/null
@@ -1,16 +1,0 @@
-/*   SDLMain.m - main entry point for our Cocoa-ized SDL app
-       Initial Version: Darrell Walisser <[email protected]>
-       Non-NIB-Code & other changes: Max Horn <[email protected]>
-
-    Feel free to customize this file to suit your needs
-*/
-
-#ifndef _SDLMain_h_
-#define _SDLMain_h_
-
-#import <Cocoa/Cocoa.h>
-
-@interface SDLMain : NSObject
-@end
-
-#endif /* _SDLMain_h_ */
--- a/xcode/Duke3D/SDLMain.m
+++ /dev/null
@@ -1,411 +1,0 @@
-/*   SDLMain.m - main entry point for our Cocoa-ized SDL app
-       Initial Version: Darrell Walisser <[email protected]>
-       Non-NIB-Code & other changes: Max Horn <[email protected]>
-
-    Feel free to customize this file to suit your needs
-*/
-
-#include "SDL.h"
-#include "SDLMain.h"
-#include <sys/param.h> /* for MAXPATHLEN */
-#include <unistd.h>
-
-/* For some reaon, Apple removed setAppleMenu from the headers in 10.4,
- but the method still is there and works. To avoid warnings, we declare
- it ourselves here. */
-@interface NSApplication(SDL_Missing_Methods)
-- (void)setAppleMenu:(NSMenu *)menu;
-@end
-
-/* Use this flag to determine whether we use SDLMain.nib or not */
-#define		SDL_USE_NIB_FILE	0
-
-/* Use this flag to determine whether we use CPS (docking) or not */
-#define		SDL_USE_CPS		1
-#ifdef SDL_USE_CPS
-/* Portions of CPS.h */
-typedef struct CPSProcessSerNum
-{
-	UInt32		lo;
-	UInt32		hi;
-} CPSProcessSerNum;
-
-extern OSErr	CPSGetCurrentProcess( CPSProcessSerNum *psn);
-extern OSErr 	CPSEnableForegroundOperation( CPSProcessSerNum *psn, UInt32 _arg2, UInt32 _arg3, UInt32 _arg4, UInt32 _arg5);
-extern OSErr	CPSSetFrontProcess( CPSProcessSerNum *psn);
-
-#endif /* SDL_USE_CPS */
-
-static int    gArgc;
-static char  **gArgv;
-static BOOL   gFinderLaunch;
-static BOOL   gCalledAppMainline = FALSE;
-
-static NSString *getApplicationName(void)
-{
-    const NSDictionary *dict;
-    NSString *appName = 0;
-
-    /* Determine the application name */
-    dict = (const NSDictionary *)CFBundleGetInfoDictionary(CFBundleGetMainBundle());
-    if (dict)
-        appName = [dict objectForKey: @"CFBundleName"];
-    
-    if (![appName length])
-        appName = [[NSProcessInfo processInfo] processName];
-
-    return appName;
-}
-
-#if SDL_USE_NIB_FILE
-/* A helper category for NSString */
-@interface NSString (ReplaceSubString)
-- (NSString *)stringByReplacingRange:(NSRange)aRange with:(NSString *)aString;
-@end
-#endif
-
-@interface NSApplication (SDLApplication)
-@end
-
-@implementation NSApplication (SDLApplication)
-/* Invoked from the Quit menu item */
-- (void)terminate:(id)sender
-{
-    /* Post a SDL_QUIT event */
-    SDL_Event event;
-    event.type = SDL_QUIT;
-    SDL_PushEvent(&event);
-}
-@end
-
-/* The main class of the application, the application's delegate */
-@implementation SDLMain
-
-/* Set the working directory to the .app's parent directory */
-- (void) setupWorkingDirectory:(BOOL)shouldChdir
-{
-    if (shouldChdir)
-    {
-        char parentdir[MAXPATHLEN];
-        CFURLRef url = CFBundleCopyBundleURL(CFBundleGetMainBundle());
-        CFURLRef url2 = CFURLCreateCopyDeletingLastPathComponent(0, url);
-        if (CFURLGetFileSystemRepresentation(url2, 1, (UInt8 *)parentdir, MAXPATHLEN)) {
-            chdir(parentdir);   /* chdir to the binary app's parent */
-        }
-        CFRelease(url);
-        CFRelease(url2);
-    }
-}
-
-#if SDL_USE_NIB_FILE
-
-/* Fix menu to contain the real app name instead of "SDL App" */
-- (void)fixMenu:(NSMenu *)aMenu withAppName:(NSString *)appName
-{
-    NSRange aRange;
-    NSEnumerator *enumerator;
-    NSMenuItem *menuItem;
-
-    aRange = [[aMenu title] rangeOfString:@"SDL App"];
-    if (aRange.length != 0)
-        [aMenu setTitle: [[aMenu title] stringByReplacingRange:aRange with:appName]];
-
-    enumerator = [[aMenu itemArray] objectEnumerator];
-    while ((menuItem = [enumerator nextObject]))
-    {
-        aRange = [[menuItem title] rangeOfString:@"SDL App"];
-        if (aRange.length != 0)
-            [menuItem setTitle: [[menuItem title] stringByReplacingRange:aRange with:appName]];
-        if ([menuItem hasSubmenu])
-            [self fixMenu:[menuItem submenu] withAppName:appName];
-    }
-}
-
-#else
-
-static void setApplicationMenu(void)
-{
-    /* warning: this code is very odd */
-    NSMenu *appleMenu;
-    NSMenuItem *menuItem;
-    NSString *title;
-    NSString *appName;
-    
-    appName = getApplicationName();
-    appleMenu = [[NSMenu alloc] initWithTitle:@""];
-    
-    /* Add menu items */
-    title = [@"About " stringByAppendingString:appName];
-    [appleMenu addItemWithTitle:title action:@selector(orderFrontStandardAboutPanel:) keyEquivalent:@""];
-
-    [appleMenu addItem:[NSMenuItem separatorItem]];
-
-    title = [@"Hide " stringByAppendingString:appName];
-    [appleMenu addItemWithTitle:title action:@selector(hide:) keyEquivalent:@"h"];
-
-    menuItem = (NSMenuItem *)[appleMenu addItemWithTitle:@"Hide Others" action:@selector(hideOtherApplications:) keyEquivalent:@"h"];
-    [menuItem setKeyEquivalentModifierMask:(NSAlternateKeyMask|NSCommandKeyMask)];
-
-    [appleMenu addItemWithTitle:@"Show All" action:@selector(unhideAllApplications:) keyEquivalent:@""];
-
-    [appleMenu addItem:[NSMenuItem separatorItem]];
-
-    title = [@"Quit " stringByAppendingString:appName];
-    [appleMenu addItemWithTitle:title action:@selector(terminate:) keyEquivalent:@"q"];
-
-    
-    /* Put menu into the menubar */
-    menuItem = [[NSMenuItem alloc] initWithTitle:@"" action:nil keyEquivalent:@""];
-    [menuItem setSubmenu:appleMenu];
-    [[NSApp mainMenu] addItem:menuItem];
-
-    /* Tell the application object that this is now the application menu */
-    [NSApp setAppleMenu:appleMenu];
-
-    /* Finally give up our references to the objects */
-    [appleMenu release];
-    [menuItem release];
-}
-
-/* Create a window menu */
-static void setupWindowMenu(void)
-{
-    NSMenu      *windowMenu;
-    NSMenuItem  *windowMenuItem;
-    NSMenuItem  *menuItem;
-
-    windowMenu = [[NSMenu alloc] initWithTitle:@"Window"];
-    
-    /* "Minimize" item */
-    menuItem = [[NSMenuItem alloc] initWithTitle:@"Minimize" action:@selector(performMiniaturize:) keyEquivalent:@"m"];
-    [windowMenu addItem:menuItem];
-    [menuItem release];
-    
-    /* Put menu into the menubar */
-    windowMenuItem = [[NSMenuItem alloc] initWithTitle:@"Window" action:nil keyEquivalent:@""];
-    [windowMenuItem setSubmenu:windowMenu];
-    [[NSApp mainMenu] addItem:windowMenuItem];
-    
-    /* Tell the application object that this is now the window menu */
-    [NSApp setWindowsMenu:windowMenu];
-
-    /* Finally give up our references to the objects */
-    [windowMenu release];
-    [windowMenuItem release];
-}
-
-/* Replacement for NSApplicationMain */
-static void CustomApplicationMain (int argc, char **argv)
-{
-    NSAutoreleasePool	*pool = [[NSAutoreleasePool alloc] init];
-    SDLMain				*sdlMain;
-
-    /* Ensure the application object is initialised */
-    [NSApplication sharedApplication];
-    
-#ifdef SDL_USE_CPS
-    {
-        CPSProcessSerNum PSN;
-        /* Tell the dock about us */
-        if (!CPSGetCurrentProcess(&PSN))
-            if (!CPSEnableForegroundOperation(&PSN,0x03,0x3C,0x2C,0x1103))
-                if (!CPSSetFrontProcess(&PSN))
-                    [NSApplication sharedApplication];
-    }
-#endif /* SDL_USE_CPS */
-
-    /* Set up the menubar */
-    [NSApp setMainMenu:[[NSMenu alloc] init]];
-    setApplicationMenu();
-    setupWindowMenu();
-
-    /* Create SDLMain and make it the app delegate */
-    sdlMain = [[SDLMain alloc] init];
-    [NSApp setDelegate:sdlMain];
-    
-    /* Start the main event loop */
-    [NSApp run];
-    
-    [sdlMain release];
-    [pool release];
-}
-
-#endif
-
-
-/*
- * Catch document open requests...this lets us notice files when the app
- *  was launched by double-clicking a document, or when a document was
- *  dragged/dropped on the app's icon. You need to have a
- *  CFBundleDocumentsType section in your Info.plist to get this message,
- *  apparently.
- *
- * Files are added to gArgv, so to the app, they'll look like command line
- *  arguments. Previously, apps launched from the finder had nothing but
- *  an argv[0].
- *
- * This message may be received multiple times to open several docs on launch.
- *
- * This message is ignored once the app's mainline has been called.
- */
-- (BOOL)application:(NSApplication *)theApplication openFile:(NSString *)filename
-{
-    const char *temparg;
-    size_t arglen;
-    char *arg;
-    char **newargv;
-
-    if (!gFinderLaunch)  /* MacOS is passing command line args. */
-        return FALSE;
-
-    if (gCalledAppMainline)  /* app has started, ignore this document. */
-        return FALSE;
-
-    temparg = [filename UTF8String];
-    arglen = SDL_strlen(temparg) + 1;
-    arg = (char *) SDL_malloc(arglen);
-    if (arg == NULL)
-        return FALSE;
-
-    newargv = (char **) realloc(gArgv, sizeof (char *) * (gArgc + 2));
-    if (newargv == NULL)
-    {
-        SDL_free(arg);
-        return FALSE;
-    }
-    gArgv = newargv;
-
-    SDL_strlcpy(arg, temparg, arglen);
-    gArgv[gArgc++] = arg;
-    gArgv[gArgc] = NULL;
-    return TRUE;
-}
-
-
-/* Called when the internal event loop has just started running */
-- (void) applicationDidFinishLaunching: (NSNotification *) note
-{
-    int status;
-
-    /* Set the working directory to the .app's parent directory */
-    [self setupWorkingDirectory:gFinderLaunch];
-
-#if SDL_USE_NIB_FILE
-    /* Set the main menu to contain the real app name instead of "SDL App" */
-    [self fixMenu:[NSApp mainMenu] withAppName:getApplicationName()];
-#endif
-
-    /* Hand off to main application code */
-    gCalledAppMainline = TRUE;
-    status = SDL_main (gArgc, gArgv);
-
-    /* We're done, thank you for playing */
-    exit(status);
-}
-@end
-
-
-@implementation NSString (ReplaceSubString)
-
-- (NSString *)stringByReplacingRange:(NSRange)aRange with:(NSString *)aString
-{
-    unsigned int bufferSize;
-    unsigned int selfLen = [self length];
-    unsigned int aStringLen = [aString length];
-    unichar *buffer;
-    NSRange localRange;
-    NSString *result;
-
-    bufferSize = selfLen + aStringLen - aRange.length;
-    buffer = (unichar *)NSAllocateMemoryPages(bufferSize*sizeof(unichar));
-    
-    /* Get first part into buffer */
-    localRange.location = 0;
-    localRange.length = aRange.location;
-    [self getCharacters:buffer range:localRange];
-    
-    /* Get middle part into buffer */
-    localRange.location = 0;
-    localRange.length = aStringLen;
-    [aString getCharacters:(buffer+aRange.location) range:localRange];
-     
-    /* Get last part into buffer */
-    localRange.location = aRange.location + aRange.length;
-    localRange.length = selfLen - localRange.location;
-    [self getCharacters:(buffer+aRange.location+aStringLen) range:localRange];
-    
-    /* Build output string */
-    result = [NSString stringWithCharacters:buffer length:bufferSize];
-    
-    NSDeallocateMemoryPages(buffer, bufferSize);
-    
-    return result;
-}
-
-@end
-
-
-
-#ifdef main
-#  undef main
-#endif
-
-
-static int IsRootCwd()
-{
-    char buf[MAXPATHLEN];
-    char *cwd = getcwd(buf, sizeof (buf));
-    return (cwd && (strcmp(cwd, "/") == 0));
-}
-
-static int IsTenPointNineOrLater()
-{
-    /* Gestalt() is deprecated in 10.8, but I don't care. Stop using SDL 1.2. */
-    SInt32 major, minor;
-    Gestalt(gestaltSystemVersionMajor, &major);
-    Gestalt(gestaltSystemVersionMinor, &minor);
-    return ( ((major << 16) | minor) >= ((10 << 16) | 9) );
-}
-
-static int IsFinderLaunch(const int argc, char **argv)
-{
-    const int bIsNewerOS = IsTenPointNineOrLater();
-    /* -psn_XXX is passed if we are launched from Finder in 10.8 and earlier */
-    if ( (!bIsNewerOS) && (argc >= 2) && (strncmp(argv[1], "-psn", 4) == 0) ) {
-        return 1;
-    } else if ((bIsNewerOS) && (argc == 1) && IsRootCwd()) {
-        /* we might still be launched from the Finder; on 10.9+, you might not
-        get the -psn command line anymore. Check version, if there's no
-        command line, and if our current working directory is "/". */
-        return 1;
-    }
-    return 0;  /* not a Finder launch. */
-}
-
-/* Main entry point to executable - should *not* be SDL_main! */
-int main (int argc, char **argv)
-{
-    /* Copy the arguments into a global variable */
-    if (IsFinderLaunch(argc, argv)) {
-        gArgv = (char **) SDL_malloc(sizeof (char *) * 2);
-        gArgv[0] = argv[0];
-        gArgv[1] = NULL;
-        gArgc = 1;
-        gFinderLaunch = YES;
-    } else {
-        int i;
-        gArgc = argc;
-        gArgv = (char **) SDL_malloc(sizeof (char *) * (argc+1));
-        for (i = 0; i <= argc; i++)
-            gArgv[i] = argv[i];
-        gFinderLaunch = NO;
-    }
-
-#if SDL_USE_NIB_FILE
-    NSApplicationMain (argc, argv);
-#else
-    CustomApplicationMain (argc, argv);
-#endif
-    return 0;
-}
-
--- a/xcode/Duke3DBundle/Duke3DBundle-Info.plist
+++ /dev/null
@@ -1,34 +1,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-	<key>CFBundleDevelopmentRegion</key>
-	<string>en</string>
-	<key>CFBundleExecutable</key>
-	<string>${EXECUTABLE_NAME}</string>
-	<key>CFBundleIconFile</key>
-	<string>duke_3d_icon.icns</string>
-	<key>CFBundleIdentifier</key>
-	<string>fabiensanglard.${PRODUCT_NAME:rfc1034identifier}</string>
-	<key>CFBundleInfoDictionaryVersion</key>
-	<string>6.0</string>
-	<key>CFBundleName</key>
-	<string>${PRODUCT_NAME}</string>
-	<key>CFBundlePackageType</key>
-	<string>APPL</string>
-	<key>CFBundleShortVersionString</key>
-	<string>1.0</string>
-	<key>CFBundleSignature</key>
-	<string>????</string>
-	<key>CFBundleVersion</key>
-	<string>1</string>
-	<key>LSMinimumSystemVersion</key>
-	<string>${MACOSX_DEPLOYMENT_TARGET}</string>
-	<key>NSHumanReadableCopyright</key>
-	<string>Copyright © 2013 Memset software. All rights reserved.</string>
-	<key>NSMainNibFile</key>
-	<string>MainMenu</string>
-	<key>NSPrincipalClass</key>
-	<string>NSApplication</string>
-</dict>
-</plist>
--- a/xcode/Duke3DBundle/Duke3DBundle-Prefix.pch
+++ /dev/null
@@ -1,7 +1,0 @@
-//
-// Prefix header for all source files of the 'Duke3DBundle' target in the 'Duke3DBundle' project
-//
-
-#ifdef __OBJC__
-    #import <Cocoa/Cocoa.h>
-#endif
binary files a/xcode/Duke3DBundle/duke_3d_icon.icns /dev/null differ
--- a/xcode/Duke3DBundle/en.lproj/Credits.rtf
+++ /dev/null
@@ -1,15 +1,0 @@
-{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340
-{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\paperw11900\paperh16840\vieww9600\viewh8400\viewkind0
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720
-
-\f0\b\fs24 \cf0 Engineering:
-\b0 \
-	Fabien Sanglard\
-\
-
-\b Homepage:\
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural
-\cf0 	{\field{\*\fldinst{HYPERLINK "https://github.com/fabiensanglard/chocolate_duke3D"}}{\fldrslt 
-\b0 https://github.com/fabiensanglard/chocolate_duke3D}}}
\ No newline at end of file
--- a/xcode/Duke3DBundle/en.lproj/InfoPlist.strings
+++ /dev/null
@@ -1,2 +1,0 @@
-/* Localized versions of Info.plist keys */
-