shithub: qk2

Download patch

ref: fe87c990e0e84be637a8a743f2dd9d48ae6f5895
parent: b10d6e123329a38a29030744bf232ac03387cee5
author: Konstantinn Bonnet <qu7uux@gmail.com>
date: Fri Mar 13 08:04:45 EDT 2015

remove more unused stuff

- purge useless text files, unused asm, etc.
- move mkfile to root folder
- anorms.h and q_shared.h were duplicated

--- a/3.15_Changes.txt
+++ /dev/null
@@ -1,107 +1,0 @@
-
-Quake2 3.15 Upgrade
--------------------
-
-This upgrade addresses several features, including security, playability, and
-enhancements.
-
-A new map is also included (in baseq2\pak3.pak) called match1, Reckless
-Abandon.  This map is designed for one on one deathmatch play.  It was built
-by American McGee and Dave "Zoid" Kirsch.
-
-This patch replaces the following files:
-
-	quake2.exe
-	3dfxgl.dll
-	pvrgl.dll
-	ref_gl.dll
-	ref_soft.dll
-	baseq2\gamex86.dll
-
-Changes
--------
-
-- Added visible weapons support.  This is precached with a special symbol, i.e.
-  gi.modelindex("#w_shotgun.md2") which causes the client to autobind it to
-  the players current weapon model.  Plug in player models can optionally 
-  support the visible weapons.  Any that do not support it will use their
-  default weapon.md2 files automatically.
-  Visible weapons files for plug in player models are not downloaded
-  automatically--only the default weapon.md2 (and skin) is.
-  The Visible weapon models themselves are not included.  They can be
-  downloaded from http://www.telefragged.com/vwep/
-- Rewrote the some of the net code to use optimized network packets for 
-  projectiles.  This is transparent to the game code, but improves netplay
-  substancially.  The hyperblaster doesn't flood modem players anymore.
-- Rewrote the packet checksum code to be more portable and defeat proxy bots
-  yet again.
-- Autodownload support is in.  The following items will be automatcally
-  downloaded as needed:
-    - world map (and textures)
-    - models
-    - sounds (precached ones)
-    - plug in player model, skin, skin_i and weapon.md2
-  downloads go to a temp file (maps/blah.tmp for example) and get renamed
-  when done.  autoresume is supported (if you lose connect during the
-  download, just reconnect and resume).  Server has fine control over
-  the downloads with the following new cvars:
-    allow_download - global download on/off
-    allow_download_players - players download on/off
-    allow_download_models - models download on/off
-    allow_download_sounds - sounds download on/off
-    allow_download_maps - maps download on/off
-  maps that are in pak files will _not_ autodownload from the server, this
-  is for copyright considerations.
-  The QuakeWorld bug of the server map changing while download a map has
-  been fixed.
-- New option in the Multiplayer/Player Setup menu for setting your connection
-  speed.  This sets a default rate for the player and can improve net
-  performance for modem connections.
-- Rewrote some of the save game code to make it more portable.  I wanted to
-  completely rewrite the entire save game system and make it portable across
-  versions and operating systems, but this would require an enormous amount
-  of work.
-- Added another 512 configure strings for general usage for mod makers.
-  This gives lots of room for general string displays on the HUD and in other
-  data.
-- Player movement code re-written to be similiar to that of NetQuake and
-  later versions of QuakeWorld.  Player has more control in the air and
-  gets a boost in vertical speed when jumping off the top of ramps.
-- Fixed up serverrecord so that it works correctly with the later versions.
-  serverrecord lets the server do a recording of the current game that
-  demo editors can use to make demos from any PVS in the level.  Server
-  recorded demos are BIG.  Will look at using delta compression in them
-  to cut down the size.
-- Copy protection CD check has been removed.
-- Quake2 3.15 has changed the protocol (so old servers will not run) but
-  all existing game dlls can run on the new version (albiet without the
-  new features such as visible weapons).
-- Added flood protection.  Controlled from the following cvars:
-   flood_msgs - maximum number of messages allowed in the time period
-                specified by flood_persecond
-   flood_persecond - time period that a maximum of flood_msgs messages are
-                     permitted
-   flood_waitdelay - amount of time a client gets muzzled for flooding
-- fixed it so blaster/hyperblaster shots aren't treated as solid when
-  predicting--you aren't clipped against them now.
-- gender support is now in.  The userinfo cvar "gender" can be set to
-  male/female/none (none for neutral messages).  This doesn't affect sounds
-  but does affect death messages in the game.  The models male and cyborg
-  default to gender male, and female and crackhor default to female.
-  Everything else defaults to none, but you can set it by typing
-  "gender male" or "gender female" as appropriate.
-- IP banning support ala QW.  It's built into the game dll as 'sv' console
-  commands.  This list is:
-    sv addip <ip-mask>  - adds an ip to the ban list
-	sv listip <ip-mask> - removes an ip from the ban list
-	sv writeip - writes the ban list to <gamedir>/listip.cfg.  You can
-	  exec this on a server load to load the list on subsequent server runs.
-	  like so:  quake2 +set dedicated 1 +exec listip.cfg
-	sv removeip <ip-mask> - remove an ip from the list
-  the ip list is a simple mask system.  Adding 192.168 to the list
-  would block out everyone in the 192.168.*.* net block.  You get 1024 bans,
-  if you need more, recompile the game dll. :)
-  A new cvar is also supported called 'filterban'.  It defaults to one which
-  means "allow everyone to connect _except_ those matching in the ban list."
-  If you set it to zero, the meaning reverses like so, "don't allow anyone
-  to connect unless they are in the list."
--- a/3.16_Changes.txt
+++ /dev/null
@@ -1,127 +1,0 @@
-
-Quake2 3.16 Upgrade
--------------------
-
-This upgrade addresses several features, including security, playability, and
-enhancements.
-
-A new map is also included (in baseq2\pak3.pak) called match1, Reckless
-Abandon.  This map is designed for one on one deathmatch play.  It was built
-by American McGee and Dave "Zoid" Kirsch.
-
-Changes for 3.16
-----------------
-
-- Fixed infinite grenade bug
-- Fixed autodownloading to actually download sounds and console pics
-- Fixed autodownload to not create empty directories for files not on
-  the server.
-- Added customized client downloading.  cvars are the same as the server side:
-    allow_download - global download on/off
-    allow_download_players - players download on/off
-    allow_download_models - models download on/off
-    allow_download_sounds - sounds download on/off
-    allow_download_maps - maps download on/off
-  They can also be (more easily) set with a new Download Options menu 
-  accessible in Multiplayer/Player Setup/Download Options
-- Changed checksumming code to be more portable and faster.
-  The checksum in 3.15 was seriously broken.
-  This change makes 3.16 incompatible with previous servers.
-- Fixed it so sounds played for PPMs that default to male are only checked
-  on disk once.
-- Fixed player 'warping' present in 3.15 (this was an artifact of the
-  hyperblaster optimizations).
-- Fixed the autodownload in 3.15 so that stuff like skins for models are
-  downloaded as well as pics.
-
-Changes for 3.15
-----------------
-
-- Added visible weapons support.  This is precached with a special symbol, i.e.
-  gi.modelindex("#w_shotgun.md2") which causes the client to autobind it to
-  the players current weapon model.  Plug in player models can optionally 
-  support the visible weapons.  Any that do not support it will use their
-  default weapon.md2 files automatically.
-  Visible weapons files for plug in player models are not downloaded
-  automatically--only the default weapon.md2 (and skin) is.
-  The Visible weapon models themselves are not included.  They can be
-  downloaded from http://www.telefragged.com/vwep/
-- Rewrote the some of the net code to use optimized network packets for 
-  projectiles.  This is transparent to the game code, but improves netplay
-  substancially.  The hyperblaster doesn't flood modem players anymore.
-- Rewrote the packet checksum code to be more portable and defeat proxy bots
-  yet again.
-- Autodownload support is in.  The following items will be automatcally
-  downloaded as needed:
-    - world map (and textures)
-    - models
-    - sounds (precached ones)
-    - plug in player model, skin, skin_i and weapon.md2
-  downloads go to a temp file (maps/blah.tmp for example) and get renamed
-  when done.  autoresume is supported (if you lose connect during the
-  download, just reconnect and resume).  Server has fine control over
-  the downloads with the following new cvars:
-    allow_download - global download on/off
-    allow_download_players - players download on/off
-    allow_download_models - models download on/off
-    allow_download_sounds - sounds download on/off
-    allow_download_maps - maps download on/off
-  maps that are in pak files will _not_ autodownload from the server, this
-  is for copyright considerations.
-  The QuakeWorld bug of the server map changing while download a map has
-  been fixed.
-- New option in the Multiplayer/Player Setup menu for setting your connection
-  speed.  This sets a default rate for the player and can improve net
-  performance for modem connections.
-- Rewrote some of the save game code to make it more portable.  I wanted to
-  completely rewrite the entire save game system and make it portable across
-  versions and operating systems, but this would require an enormous amount
-  of work.
-- Added another 512 configure strings for general usage for mod makers.
-  This gives lots of room for general string displays on the HUD and in other
-  data.
-- Player movement code re-written to be similiar to that of NetQuake and
-  later versions of QuakeWorld.  Player has more control in the air and
-  gets a boost in vertical speed when jumping off the top of ramps.
-- Fixed up serverrecord so that it works correctly with the later versions.
-  serverrecord lets the server do a recording of the current game that
-  demo editors can use to make demos from any PVS in the level.  Server
-  recorded demos are BIG.  Will look at using delta compression in them
-  to cut down the size.
-- Copy protection CD check has been removed.
-- Quake2 3.15 has changed the protocol (so old servers will not run) but
-  all existing game dlls can run on the new version (albiet without the
-  new features such as visible weapons).
-- Added flood protection.  Controlled from the following cvars:
-   flood_msgs - maximum number of messages allowed in the time period
-                specified by flood_persecond
-   flood_persecond - time period that a maximum of flood_msgs messages are
-                     permitted
-   flood_waitdelay - amount of time a client gets muzzled for flooding
-  (gamex86 DLL specific)
-- fixed it so blaster/hyperblaster shots aren't treated as solid when
-  predicting--you aren't clipped against them now.
-  (gamex86 DLL specific, the SVF_DEADMONSTER flag is set on projectiles)
-- gender support is now in.  The userinfo cvar "gender" can be set to
-  male/female/none (none for neutral messages).  This doesn't affect sounds
-  but does affect death messages in the game.  The models male and cyborg
-  default to gender male, and female and crackhor default to female.
-  Everything else defaults to none, but you can set it by typing
-  "gender male" or "gender female" as appropriate.
-- IP banning support ala QW.  It's built into the game dll as 'sv' console
-  commands.  This list is:
-    sv addip <ip-mask>  - adds an ip to the ban list
-	sv listip <ip-mask> - removes an ip from the ban list
-	sv writeip - writes the ban list to <gamedir>/listip.cfg.  You can
-	  exec this on a server load to load the list on subsequent server runs.
-	  like so:  quake2 +set dedicated 1 +exec listip.cfg
-	sv removeip <ip-mask> - remove an ip from the list
-  the ip list is a simple mask system.  Adding 192.168 to the list
-  would block out everyone in the 192.168.*.* net block.  You get 1024 bans,
-  if you need more, recompile the game dll. :)
-  A new cvar is also supported called 'filterban'.  It defaults to one which
-  means "allow everyone to connect _except_ those matching in the ban list."
-  If you set it to zero, the meaning reverses like so, "don't allow anyone
-  to connect unless they are in the list."
-  (gamex86 DLL specific)
-
--- a/3.17_Changes.txt
+++ /dev/null
@@ -1,158 +1,0 @@
-
-Quake2 3.17 Upgrade
--------------------
-
-This upgrade addresses several features, including security, playability, and
-enhancements.
-
-Changes for 3.17
-----------------
-
-- Fixed possible NAN resulting from handing zero to second arg of atan2
-- Autodownloading is now DISABLED by DEFAULT.  It must be enabled by typing
-  'allow_download 1' at the console, or using the download options menu
-  in Multiplayer/PlayerSetup/Download Options
-- Server demos now include a svc_serverdata block at the beginning with the
-  attractloop byte set to '2' to indicate server demo (byte before gamedir
-  in the svc_serverdata block).  This allows easy identification of
-  serverrecorded demos (serverrecord demos are only for demo editors, they
-  can not be played back in Quake2 without being first edited).
-- New options for setting texture formats in ref_gl:
-  gl_texturealphamode:  default, GL_RGBA, GL_RGBA8, GL_RGB5_A1, GL_RGBA4, 
-    GL_RGBA2
-  gl_texturesolidmode:  default, GL_RGB, GL_RGB8, GL_RGB5, GL_RGB4,
-    GL_R3_G3_B2, GL_RGB2 (SGI only)
-- Player movement during Air acceleration changed to reflect more real-world 
-  physics while airborne.
-- Fixed a bug when riding trains that caused drift in a southwest direction
-  (Thanks to Jim Dose at Ritual for pointing this one out).
-- Linux:  Now correctly reports out of memory rather than segfaulting (mmap
-  returns (void *)-1 and not NULL on error).
-- Fixed autodownloading to not create paths for files that can't be downloaded
-  (this was creating many empty directories in baseq2/players).
-- When downloading a file from a server that doesn't have it, the message is
-  now "Server does not have this file" rather than "File not found."
-- Fixed some coop keys in 3.15 weren't being handled correctly (pyramid key).
-- Highbits are now stripped from console when using condump
-- Restored support for gl_modulate in multiplayer play
-- Fixed it so that players with a model/skin you don't have aren't checked for 
-  on disk more than once.
-- Fixed it so sounds played for PPMs that default to male are only checked
-  on disk once.
-- Byte ordering/portability fixes in cinematics, PCX and other file handling.
-- Client state during static image cinematic (PCX image) so that client can 
-  continue to next unit.
-- Fixed it so that dedicated coop servers no longer get stuck at victory.pcx,
-  if a server is in coop mode, hitting a button at the victory.pcx screen
-  while cause the server to restart at base1
-- Fixed infinite grenade bug
-- Fixed autodownloading to actually download sounds and console pics
-- Fixed autodownload to not create empty directories for files not on
-  the server.
-- Added customized client downloading.  cvars are the same as the server side:
-    allow_download - global download on/off
-    allow_download_players - players download on/off
-    allow_download_models - models download on/off
-    allow_download_sounds - sounds download on/off
-    allow_download_maps - maps download on/off
-  They can also be (more easily) set with a new Download Options menu 
-  accessible in Multiplayer/Player Setup/Download Options
-- Changed checksumming code to be more portable and faster.
-  The checksum in 3.15 was seriously broken.
-  This change makes 3.17 incompatible with previous servers.
-- Fixed player 'warping' present in 3.15 (this was an artifact of the
-  hyperblaster optimizations).
-- Fixed the autodownload in 3.15 so that stuff like skins for models are
-  downloaded as well as pics.
-
-Changes for 3.15
-----------------
-
-- Added visible weapons support.  This is precached with a special symbol, i.e.
-  gi.modelindex("#w_shotgun.md2") which causes the client to autobind it to
-  the players current weapon model.  Plug in player models can optionally 
-  support the visible weapons.  Any that do not support it will use their
-  default weapon.md2 files automatically.
-  Visible weapons files for plug in player models are not downloaded
-  automatically--only the default weapon.md2 (and skin) is.
-  The Visible weapon models themselves are not included.  They can be
-  downloaded from http://www.telefragged.com/vwep/
-- Rewrote the some of the net code to use optimized network packets for 
-  projectiles.  This is transparent to the game code, but improves netplay
-  substancially.  The hyperblaster doesn't flood modem players anymore.
-- Rewrote the packet checksum code to be more portable and defeat proxy bots
-  yet again.
-- Autodownload support is in.  The following items will be automatcally
-  downloaded as needed:
-    - world map (and textures)
-    - models
-    - sounds (precached ones)
-    - plug in player model, skin, skin_i and weapon.md2
-  downloads go to a temp file (maps/blah.tmp for example) and get renamed
-  when done.  autoresume is supported (if you lose connect during the
-  download, just reconnect and resume).  Server has fine control over
-  the downloads with the following new cvars:
-    allow_download - global download on/off
-    allow_download_players - players download on/off
-    allow_download_models - models download on/off
-    allow_download_sounds - sounds download on/off
-    allow_download_maps - maps download on/off
-  maps that are in pak files will _not_ autodownload from the server, this
-  is for copyright considerations.
-  The QuakeWorld bug of the server map changing while download a map has
-  been fixed.
-- New option in the Multiplayer/Player Setup menu for setting your connection
-  speed.  This sets a default rate for the player and can improve net
-  performance for modem connections.
-- Rewrote some of the save game code to make it more portable.  I wanted to
-  completely rewrite the entire save game system and make it portable across
-  versions and operating systems, but this would require an enormous amount
-  of work.
-- Added another 512 configure strings for general usage for mod makers.
-  This gives lots of room for general string displays on the HUD and in other
-  data.
-- Player movement code re-written to be similiar to that of NetQuake and
-  later versions of QuakeWorld.  Player has more control in the air and
-  gets a boost in vertical speed when jumping off the top of ramps.
-- Fixed up serverrecord so that it works correctly with the later versions.
-  serverrecord lets the server do a recording of the current game that
-  demo editors can use to make demos from any PVS in the level.  Server
-  recorded demos are BIG.  Will look at using delta compression in them
-  to cut down the size.
-- Copy protection CD check has been removed.
-- Quake2 3.15 has changed the protocol (so old servers will not run) but
-  all existing game dlls can run on the new version (albiet without the
-  new features such as visible weapons).
-- Added flood protection.  Controlled from the following cvars:
-   flood_msgs - maximum number of messages allowed in the time period
-                specified by flood_persecond
-   flood_persecond - time period that a maximum of flood_msgs messages are
-                     permitted
-   flood_waitdelay - amount of time a client gets muzzled for flooding
-  (gamex86 DLL specific)
-- fixed it so blaster/hyperblaster shots aren't treated as solid when
-  predicting--you aren't clipped against them now.
-  (gamex86 DLL specific, the SVF_DEADMONSTER flag is set on projectiles)
-- gender support is now in.  The userinfo cvar "gender" can be set to
-  male/female/none (none for neutral messages).  This doesn't affect sounds
-  but does affect death messages in the game.  The models male and cyborg
-  default to gender male, and female and crackhor default to female.
-  Everything else defaults to none, but you can set it by typing
-  "gender male" or "gender female" as appropriate.
-- IP banning support ala QW.  It's built into the game dll as 'sv' console
-  commands.  This list is:
-    sv addip <ip-mask>  - adds an ip to the ban list
-	sv listip <ip-mask> - removes an ip from the ban list
-	sv writeip - writes the ban list to <gamedir>/listip.cfg.  You can
-	  exec this on a server load to load the list on subsequent server runs.
-	  like so:  quake2 +set dedicated 1 +exec listip.cfg
-	sv removeip <ip-mask> - remove an ip from the list
-  the ip list is a simple mask system.  Adding 192.168 to the list
-  would block out everyone in the 192.168.*.* net block.  You get 1024 bans,
-  if you need more, recompile the game dll. :)
-  A new cvar is also supported called 'filterban'.  It defaults to one which
-  means "allow everyone to connect _except_ those matching in the ban list."
-  If you set it to zero, the meaning reverses like so, "don't allow anyone
-  to connect unless they are in the list."
-  (gamex86 DLL specific)
-
--- a/3.18_changes.txt
+++ /dev/null
@@ -1,53 +1,0 @@
-3.18 Changes
-
-- "Water surfing" that was present in 3.17 has been fixed (holding jump while
-  on the surface of water let you swim at full speed).
-- Environment maps (env) are now autodownloaded (if allow_download_maps is set).
-- Spectator support added.  A new cvar is built into the client, "spectator"
-  Setting it to value other than "0" will allow you join a game as a spectator.
-  While in spectator mode, you can press the attack button to enter a chasecam
-  mode and follow other players.  Using the inventory keys (by default the
-  left and right square brackets) you can switch between players in the game
-  while using the chasecam.
-  You may enter and leave spectator mode while connected.  Doing so resets
-  your score to zero.
-  ***The new spectator support requires a new game.dll and may not work for
-  user mods until they update their code.  The default game.dll that comes
-  with 3.18 supports chasecam as well as the new included Xatrix game.dll.
-- Fixed it so that when a model defaults to male/grunt (don't have the
-  necessary model or skin for the player), VWep support is still enabled.
-- New console command for players, "playerlist".  This will cause the server
-  to give you a text list of the players on the server, including their
-  connect time, score, ping and spectator status.  This is handy if not
-  everyone fits on the scoreboard on busy servers.
-- New cvar for the game.dll:  spectator_password.  If set to a value (other
-  than "none"), users must set their spectator variable to this value in order
-  to join the server as a spectator.  This password is independant of the
-  normal user password.
-- New cvar for the game.dll:  maxspectators (defaults to 4).  This value is
-  not seperate from maxclients (a spectator is still a client).
-- New cvar for the game.dll:  sv_maplist.  This can be set to a list of map
-  names that the server should autorotate through, rather than using the
-  nextmap set in the actual map files themselves.
-  For example:  set sv_maplist "base1 q2dm1 q2dm3 fact3" will cause the server
-  to rotate through those maps.
-  ***This requires a game.dll update and will not work with user mods until
-  they update their code.
-- A new facility has been added to ClientConnect() in the game.dll to allow
-  the game.dll to pass a message back to the user for the reason of disallowing
-  a connection.  It is done by setting a key of "rejmsg" in the passed userinfo.
-  For example:
-  Info_SetValueforKey(userinfo, "rejmsg", "Password required or incorrect.");
-- The server cvar, password, may be set to "none" to clear the password.  This
-  is needed because rcon can not set a blank password.
-- New server cvar:  sv_airaccelerate.  This controls the optional air
-  acceleration facility.  The default value is 0, which disables air control.
-  The usual value to replicate the air control seen in the original Quake and
-  later versions of Quakeworld is 10.  10 allows for much more
-  air control (as was seen in 3.15).  This value is ignored in single player
-  and coop.
-- Fixed NoSuchFrame/BAD_MODELTYPE errors when doing a vid_restart while
-  connected.
-- NoSuchFrame errors now include model name to assist in debugging user mods.
-- Fixed the remote status query response (ServerInfo) to not include error 
-  messages and be more consistent.
--- /dev/null
+++ b/README
@@ -1,0 +1,8 @@
+qk2 - (9) quake 2
+=================
+
+
+legal
+-----
+Quake 2, hence qk2, is licensed under the GPLv2. See COPYING for details.
+All of the Q2 data files remain copyrighted and licensed under the original terms.
--- /dev/null
+++ b/anorms.h
@@ -1,0 +1,181 @@
+/*
+Copyright (C) 1997-2001 Id Software, Inc.
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
+
+See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+
+*/
+{-0.525731, 0.000000, 0.850651}, 
+{-0.442863, 0.238856, 0.864188}, 
+{-0.295242, 0.000000, 0.955423}, 
+{-0.309017, 0.500000, 0.809017}, 
+{-0.162460, 0.262866, 0.951056}, 
+{0.000000, 0.000000, 1.000000}, 
+{0.000000, 0.850651, 0.525731}, 
+{-0.147621, 0.716567, 0.681718}, 
+{0.147621, 0.716567, 0.681718}, 
+{0.000000, 0.525731, 0.850651}, 
+{0.309017, 0.500000, 0.809017}, 
+{0.525731, 0.000000, 0.850651}, 
+{0.295242, 0.000000, 0.955423}, 
+{0.442863, 0.238856, 0.864188}, 
+{0.162460, 0.262866, 0.951056}, 
+{-0.681718, 0.147621, 0.716567}, 
+{-0.809017, 0.309017, 0.500000}, 
+{-0.587785, 0.425325, 0.688191}, 
+{-0.850651, 0.525731, 0.000000}, 
+{-0.864188, 0.442863, 0.238856}, 
+{-0.716567, 0.681718, 0.147621}, 
+{-0.688191, 0.587785, 0.425325}, 
+{-0.500000, 0.809017, 0.309017}, 
+{-0.238856, 0.864188, 0.442863}, 
+{-0.425325, 0.688191, 0.587785}, 
+{-0.716567, 0.681718, -0.147621}, 
+{-0.500000, 0.809017, -0.309017}, 
+{-0.525731, 0.850651, 0.000000}, 
+{0.000000, 0.850651, -0.525731}, 
+{-0.238856, 0.864188, -0.442863}, 
+{0.000000, 0.955423, -0.295242}, 
+{-0.262866, 0.951056, -0.162460}, 
+{0.000000, 1.000000, 0.000000}, 
+{0.000000, 0.955423, 0.295242}, 
+{-0.262866, 0.951056, 0.162460}, 
+{0.238856, 0.864188, 0.442863}, 
+{0.262866, 0.951056, 0.162460}, 
+{0.500000, 0.809017, 0.309017}, 
+{0.238856, 0.864188, -0.442863}, 
+{0.262866, 0.951056, -0.162460}, 
+{0.500000, 0.809017, -0.309017}, 
+{0.850651, 0.525731, 0.000000}, 
+{0.716567, 0.681718, 0.147621}, 
+{0.716567, 0.681718, -0.147621}, 
+{0.525731, 0.850651, 0.000000}, 
+{0.425325, 0.688191, 0.587785}, 
+{0.864188, 0.442863, 0.238856}, 
+{0.688191, 0.587785, 0.425325}, 
+{0.809017, 0.309017, 0.500000}, 
+{0.681718, 0.147621, 0.716567}, 
+{0.587785, 0.425325, 0.688191}, 
+{0.955423, 0.295242, 0.000000}, 
+{1.000000, 0.000000, 0.000000}, 
+{0.951056, 0.162460, 0.262866}, 
+{0.850651, -0.525731, 0.000000}, 
+{0.955423, -0.295242, 0.000000}, 
+{0.864188, -0.442863, 0.238856}, 
+{0.951056, -0.162460, 0.262866}, 
+{0.809017, -0.309017, 0.500000}, 
+{0.681718, -0.147621, 0.716567}, 
+{0.850651, 0.000000, 0.525731}, 
+{0.864188, 0.442863, -0.238856}, 
+{0.809017, 0.309017, -0.500000}, 
+{0.951056, 0.162460, -0.262866}, 
+{0.525731, 0.000000, -0.850651}, 
+{0.681718, 0.147621, -0.716567}, 
+{0.681718, -0.147621, -0.716567}, 
+{0.850651, 0.000000, -0.525731}, 
+{0.809017, -0.309017, -0.500000}, 
+{0.864188, -0.442863, -0.238856}, 
+{0.951056, -0.162460, -0.262866}, 
+{0.147621, 0.716567, -0.681718}, 
+{0.309017, 0.500000, -0.809017}, 
+{0.425325, 0.688191, -0.587785}, 
+{0.442863, 0.238856, -0.864188}, 
+{0.587785, 0.425325, -0.688191}, 
+{0.688191, 0.587785, -0.425325}, 
+{-0.147621, 0.716567, -0.681718}, 
+{-0.309017, 0.500000, -0.809017}, 
+{0.000000, 0.525731, -0.850651}, 
+{-0.525731, 0.000000, -0.850651}, 
+{-0.442863, 0.238856, -0.864188}, 
+{-0.295242, 0.000000, -0.955423}, 
+{-0.162460, 0.262866, -0.951056}, 
+{0.000000, 0.000000, -1.000000}, 
+{0.295242, 0.000000, -0.955423}, 
+{0.162460, 0.262866, -0.951056}, 
+{-0.442863, -0.238856, -0.864188}, 
+{-0.309017, -0.500000, -0.809017}, 
+{-0.162460, -0.262866, -0.951056}, 
+{0.000000, -0.850651, -0.525731}, 
+{-0.147621, -0.716567, -0.681718}, 
+{0.147621, -0.716567, -0.681718}, 
+{0.000000, -0.525731, -0.850651}, 
+{0.309017, -0.500000, -0.809017}, 
+{0.442863, -0.238856, -0.864188}, 
+{0.162460, -0.262866, -0.951056}, 
+{0.238856, -0.864188, -0.442863}, 
+{0.500000, -0.809017, -0.309017}, 
+{0.425325, -0.688191, -0.587785}, 
+{0.716567, -0.681718, -0.147621}, 
+{0.688191, -0.587785, -0.425325}, 
+{0.587785, -0.425325, -0.688191}, 
+{0.000000, -0.955423, -0.295242}, 
+{0.000000, -1.000000, 0.000000}, 
+{0.262866, -0.951056, -0.162460}, 
+{0.000000, -0.850651, 0.525731}, 
+{0.000000, -0.955423, 0.295242}, 
+{0.238856, -0.864188, 0.442863}, 
+{0.262866, -0.951056, 0.162460}, 
+{0.500000, -0.809017, 0.309017}, 
+{0.716567, -0.681718, 0.147621}, 
+{0.525731, -0.850651, 0.000000}, 
+{-0.238856, -0.864188, -0.442863}, 
+{-0.500000, -0.809017, -0.309017}, 
+{-0.262866, -0.951056, -0.162460}, 
+{-0.850651, -0.525731, 0.000000}, 
+{-0.716567, -0.681718, -0.147621}, 
+{-0.716567, -0.681718, 0.147621}, 
+{-0.525731, -0.850651, 0.000000}, 
+{-0.500000, -0.809017, 0.309017}, 
+{-0.238856, -0.864188, 0.442863}, 
+{-0.262866, -0.951056, 0.162460}, 
+{-0.864188, -0.442863, 0.238856}, 
+{-0.809017, -0.309017, 0.500000}, 
+{-0.688191, -0.587785, 0.425325}, 
+{-0.681718, -0.147621, 0.716567}, 
+{-0.442863, -0.238856, 0.864188}, 
+{-0.587785, -0.425325, 0.688191}, 
+{-0.309017, -0.500000, 0.809017}, 
+{-0.147621, -0.716567, 0.681718}, 
+{-0.425325, -0.688191, 0.587785}, 
+{-0.162460, -0.262866, 0.951056}, 
+{0.442863, -0.238856, 0.864188}, 
+{0.162460, -0.262866, 0.951056}, 
+{0.309017, -0.500000, 0.809017}, 
+{0.147621, -0.716567, 0.681718}, 
+{0.000000, -0.525731, 0.850651}, 
+{0.425325, -0.688191, 0.587785}, 
+{0.587785, -0.425325, 0.688191}, 
+{0.688191, -0.587785, 0.425325}, 
+{-0.955423, 0.295242, 0.000000}, 
+{-0.951056, 0.162460, 0.262866}, 
+{-1.000000, 0.000000, 0.000000}, 
+{-0.850651, 0.000000, 0.525731}, 
+{-0.955423, -0.295242, 0.000000}, 
+{-0.951056, -0.162460, 0.262866}, 
+{-0.864188, 0.442863, -0.238856}, 
+{-0.951056, 0.162460, -0.262866}, 
+{-0.809017, 0.309017, -0.500000}, 
+{-0.864188, -0.442863, -0.238856}, 
+{-0.951056, -0.162460, -0.262866}, 
+{-0.809017, -0.309017, -0.500000}, 
+{-0.681718, 0.147621, -0.716567}, 
+{-0.681718, -0.147621, -0.716567}, 
+{-0.850651, 0.000000, -0.525731}, 
+{-0.688191, 0.587785, -0.425325}, 
+{-0.587785, 0.425325, -0.688191}, 
+{-0.425325, 0.688191, -0.587785}, 
+{-0.425325, -0.688191, -0.587785}, 
+{-0.587785, -0.425325, -0.688191}, 
+{-0.688191, -0.587785, -0.425325}, 
--- a/changes.txt
+++ /dev/null
@@ -1,166 +1,0 @@
-
-Quake2 3.16 changes:
-
-- Fixed infinite grenade bug
-- Fixed autodownloading to actually download sounds and console pics
-- Fixed autodownload to not create empty directories for files not on
-  the server.
-- Added customized client downloading.  cvars are the same as the server side:
-    allow_download - global download on/off
-    allow_download_players - players download on/off
-    allow_download_models - models download on/off
-    allow_download_sounds - sounds download on/off
-    allow_download_maps - maps download on/off
-  They can also be (more easily) set with a new Download Options menu 
-  accessible in Multiplayer/Player Setup/Download Options
-- Changed checksumming code to be more portable and faster.
-
-
-Quake2 3.15 changes:
-
-- Added visible weapons support.  This is precached with a special symbol, i.e.
-  gi.modelindex("#w_shotgun.md2") which causes the client to autobind it to
-  the players current weapon model.  Plug in player models can optionally 
-  support the visible weapons.  Any that do not support it will use their
-  default weapon.md2 files automatically.
-  Visible weapons files for plug in player models are not downloaded
-  automatically--only the default weapon.md2 (and skin) is.
-- New cvar cl_vwep controls whether visible weapons is enabled on the client.
-  If you turn it off, the visible weapons models are not loaded.  This can offer
-  a speed up on slow or memory starved machines.
-- Rewrote the some of the net code to use optimized network packets for 
-  projectiles.  This is transparent to the game code, but improves netplay
-  substancially.  The hyperblaster doesn't flood modem players anymore.
-- Rewrote the packet checksum code to be more portable and defeat proxy bots
-  yet again.
-- Autodownload support is in.  The following items will be automatcally
-  downloaded as needed:
-    - world map (and textures)
-    - models
-    - sounds (precached ones)
-    - plug in player model, skin, skin_i and weapon.md2
-  downloads go to a temp file (maps/blah.tmp for example) and get renamed
-  when done.  autoresume is supported (if you lose connect during the
-  download, just reconnect and resume).  Server has fine control over
-  the downloads with the following new cvars:
-    allow_download - global download on/off
-    allow_download_players - players download on/off
-    allow_download_models - models download on/off
-    allow_download_sounds - sounds download on/off
-    allow_download_maps - maps download on/off
-  maps that are in pak files will _not_ autodownload from the server, this
-  is for copyright considerations.
-  The QuakeWorld bug of the server map changing while download a map has
-  been fixed.
-- New option in the Multiplayer/Player Setup menu for setting your connection
-  speed.  This sets a default rate for the player and can improve net
-  performance for modem connections.
-- Rewrote some of the save game code to make it more portable.  I wanted to
-  completely rewrite the entire save game system and make it portable across
-  versions and operating systems, but this would require an enormous amount
-  of work.
-- Added another 512 configure strings for general usage for mod makers.
-  This gives lots of room for general string displays on the HUD and in other
-  data.
-- Player movement code re-written to be similiar to that of NetQuake and
-  later versions of QuakeWorld.  Player has more control in the air and
-  gets a boost in vertical speed when jumping off the top of ramps.
-- Fixed up serverrecord so that it works correctly with the later versions.
-  serverrecord lets the server do a recording of the current game that
-  demo editors can use to make demos from any PVS in the level.  Server
-  recorded demos are BIG.  Will look at using delta compression in them
-  to cut down the size.
-- Copy protection CD check has been removed.
-- Quake2 3.15 has changed the protocol (so old servers will not run) but
-  all existing game dlls can run on the new version (albiet without the
-  new features such as visible weapons).
-- Added flood protection.  Controlled from the following cvars:
-   flood_msgs - maximum number of messages allowed in the time period
-                specified by flood_persecond
-   flood_persecond - time period that a maximum of flood_msgs messages are
-                     permitted
-   flood_waitdelay - amount of time a client gets muzzled for flooding
-- fixed it so blaster/hyperblaster shots aren't treated as solid when
-  predicting--you aren't clipped against them now.
-- gender support is now in.  The userinfo cvar "gender" can be set to
-  male/female/none (none for neutral messages).  This doesn't affect sounds
-  but does affect death messages in the game.  The models male and cyborg
-  default to gender male, and female and crackhor default to female.
-  Everything else defaults to none, but you can set it by typing
-  "gender male" or "gender female" as appropriate.
-- IP banning support ala QW.  It's built into the game dll as 'sv' console
-  commands.  This list is:
-    sv addip <ip-mask>  - adds an ip to the ban list
-	sv listip <ip-mask> - removes an ip from the ban list
-	sv writeip - writes the ban list to <gamedir>/listip.cfg.  You can
-	  exec this on a server load to load the list on subsequent server runs.
-	  like so:  quake2 +set dedicated 1 +exec listip.cfg
-	sv removeip <ip-mask> - remove an ip from the list
-  the ip list is a simple mask system.  Adding 192.168 to the list
-  would block out everyone in the 192.168.*.* net block.  You get 1024 bans,
-  if you need more, recompile the game dll. :)
-  A new cvar is also supported called 'filterban'.  It defaults to one which
-  means "allow everyone to connect _except_ those matching in the ban list."
-  If you set it to zero, the meaning reverses like so, "don't allow anyone
-  to connect unless they are in the list."
-
-Quake2 CTF 1.09a Changes:
-
-- Q2CTF 1.09 requires 3.15 now.
-- Competition Match mode added.  Server can be reset into a timed match mode.
-  Includes a pregame setup time, countdown until game start, timed match,
-  statistics on players, admin functions and a post game time.
-- The server command 'gamemap' now works correctly.  On a server, you can
-  change maps with two commands:  map and gamemap.  Map will cause all teams
-  to reset, gamemap will change maps with the teams intact.
-- New console commands:
-    yes - vote yes on an election
-    no - vote no on an election
-    ready - ready oneself for a match
-    notready - remove oneself from the ready list (stop the clock)
-    ghost - ghost back into a match if connection was lost
-    admin - become an admin or access the admin menu
-    stats - show statistics on players in a match
-    warp - warp to a new level
-    boot - kick a player of the server (you must be an admin)
-    playerlist - show player list and connect times
-- New cvars:
-    competition - set to 1 to allow the server to be voted by players into
-      competition mode.  Set to 3 for a dedicated competition server.
-      The default, 0, disables competition features.
-    matchlock - controls whether players are allowed into a match in progress
-      in competition mode.  Defaults to on (1).
-    electpercentage - the precentage of yes votes needed to win an election.
-      Defaults to 66%.
-    matchtime - length of a match, defaulting to 20 minutes.  Can be changed
-      by admins.
-    matchsetuptime - length of time allowed to setup a match (after which
-      the server will reset itself back into normal pickup play).  Defaults
-      to 10 mins.
-    matchstarttime - The countdown after match setup has been completed
-      until the match begins.  Defaults to 20 seconds.
-    admin_password - Password for admin access (allowing access to the admin
-      menu without needing to be elected).
-- Minor bug fixes in team selection to help balance the teams better (the
-  default option on the menu is now the team with the fewer players).
-- Don't get base defenses for telefragging your teammates in base.
-- Telefrags at start of game no longer count (to help with game spawning).
-- Instant weapon changing is now a server option (and can be changed by
-  admin menu).
-- New admin menu that allows remote changes of the following items:
-    Match length (time)
-    Match setup length (time)
-    Match start length (time)
-    Weapons Stay
-    Instant Items
-    Quad Drop
-    Instant Weapons
-- As part of the match code, a new 'ghost' option is included.  When a match
-  begins, all players are printed a randomly generated five digit ghost code
-  in their consoles.  If the player loses connection for some reason during
-  the match, they can reconnect and reenter the game keeping their score
-  intact at the time of disconnection.
-- Visible weapon support (as with the 3.15 release).
-- Some minor changes to the pmenu code to allow more flexability
-
-    
--- a/client/adivtab.h
+++ /dev/null
@@ -1,1058 +1,0 @@
-// table of quotients and remainders for [-15...16] / [-15...16]
-
-// numerator = -15
-{1, 0},
-{1, -1},
-{1, -2},
-{1, -3},
-{1, -4},
-{1, -5},
-{1, -6},
-{1, -7},
-{2, -1},
-{2, -3},
-{3, 0},
-{3, -3},
-{5, 0},
-{7, -1},
-{15, 0},
-{0, 0},
-{-15, 0},
-{-8, 1},
-{-5, 0},
-{-4, 1},
-{-3, 0},
-{-3, 3},
-{-3, 6},
-{-2, 1},
-{-2, 3},
-{-2, 5},
-{-2, 7},
-{-2, 9},
-{-2, 11},
-{-2, 13},
-{-1, 0},
-{-1, 1},
-// numerator = -14
-{0, -14},
-{1, 0},
-{1, -1},
-{1, -2},
-{1, -3},
-{1, -4},
-{1, -5},
-{1, -6},
-{2, 0},
-{2, -2},
-{2, -4},
-{3, -2},
-{4, -2},
-{7, 0},
-{14, 0},
-{0, 0},
-{-14, 0},
-{-7, 0},
-{-5, 1},
-{-4, 2},
-{-3, 1},
-{-3, 4},
-{-2, 0},
-{-2, 2},
-{-2, 4},
-{-2, 6},
-{-2, 8},
-{-2, 10},
-{-2, 12},
-{-1, 0},
-{-1, 1},
-{-1, 2},
-// numerator = -13
-{0, -13},
-{0, -13},
-{1, 0},
-{1, -1},
-{1, -2},
-{1, -3},
-{1, -4},
-{1, -5},
-{1, -6},
-{2, -1},
-{2, -3},
-{3, -1},
-{4, -1},
-{6, -1},
-{13, 0},
-{0, 0},
-{-13, 0},
-{-7, 1},
-{-5, 2},
-{-4, 3},
-{-3, 2},
-{-3, 5},
-{-2, 1},
-{-2, 3},
-{-2, 5},
-{-2, 7},
-{-2, 9},
-{-2, 11},
-{-1, 0},
-{-1, 1},
-{-1, 2},
-{-1, 3},
-// numerator = -12
-{0, -12},
-{0, -12},
-{0, -12},
-{1, 0},
-{1, -1},
-{1, -2},
-{1, -3},
-{1, -4},
-{1, -5},
-{2, 0},
-{2, -2},
-{3, 0},
-{4, 0},
-{6, 0},
-{12, 0},
-{0, 0},
-{-12, 0},
-{-6, 0},
-{-4, 0},
-{-3, 0},
-{-3, 3},
-{-2, 0},
-{-2, 2},
-{-2, 4},
-{-2, 6},
-{-2, 8},
-{-2, 10},
-{-1, 0},
-{-1, 1},
-{-1, 2},
-{-1, 3},
-{-1, 4},
-// numerator = -11
-{0, -11},
-{0, -11},
-{0, -11},
-{0, -11},
-{1, 0},
-{1, -1},
-{1, -2},
-{1, -3},
-{1, -4},
-{1, -5},
-{2, -1},
-{2, -3},
-{3, -2},
-{5, -1},
-{11, 0},
-{0, 0},
-{-11, 0},
-{-6, 1},
-{-4, 1},
-{-3, 1},
-{-3, 4},
-{-2, 1},
-{-2, 3},
-{-2, 5},
-{-2, 7},
-{-2, 9},
-{-1, 0},
-{-1, 1},
-{-1, 2},
-{-1, 3},
-{-1, 4},
-{-1, 5},
-// numerator = -10
-{0, -10},
-{0, -10},
-{0, -10},
-{0, -10},
-{0, -10},
-{1, 0},
-{1, -1},
-{1, -2},
-{1, -3},
-{1, -4},
-{2, 0},
-{2, -2},
-{3, -1},
-{5, 0},
-{10, 0},
-{0, 0},
-{-10, 0},
-{-5, 0},
-{-4, 2},
-{-3, 2},
-{-2, 0},
-{-2, 2},
-{-2, 4},
-{-2, 6},
-{-2, 8},
-{-1, 0},
-{-1, 1},
-{-1, 2},
-{-1, 3},
-{-1, 4},
-{-1, 5},
-{-1, 6},
-// numerator = -9
-{0, -9},
-{0, -9},
-{0, -9},
-{0, -9},
-{0, -9},
-{0, -9},
-{1, 0},
-{1, -1},
-{1, -2},
-{1, -3},
-{1, -4},
-{2, -1},
-{3, 0},
-{4, -1},
-{9, 0},
-{0, 0},
-{-9, 0},
-{-5, 1},
-{-3, 0},
-{-3, 3},
-{-2, 1},
-{-2, 3},
-{-2, 5},
-{-2, 7},
-{-1, 0},
-{-1, 1},
-{-1, 2},
-{-1, 3},
-{-1, 4},
-{-1, 5},
-{-1, 6},
-{-1, 7},
-// numerator = -8
-{0, -8},
-{0, -8},
-{0, -8},
-{0, -8},
-{0, -8},
-{0, -8},
-{0, -8},
-{1, 0},
-{1, -1},
-{1, -2},
-{1, -3},
-{2, 0},
-{2, -2},
-{4, 0},
-{8, 0},
-{0, 0},
-{-8, 0},
-{-4, 0},
-{-3, 1},
-{-2, 0},
-{-2, 2},
-{-2, 4},
-{-2, 6},
-{-1, 0},
-{-1, 1},
-{-1, 2},
-{-1, 3},
-{-1, 4},
-{-1, 5},
-{-1, 6},
-{-1, 7},
-{-1, 8},
-// numerator = -7
-{0, -7},
-{0, -7},
-{0, -7},
-{0, -7},
-{0, -7},
-{0, -7},
-{0, -7},
-{0, -7},
-{1, 0},
-{1, -1},
-{1, -2},
-{1, -3},
-{2, -1},
-{3, -1},
-{7, 0},
-{0, 0},
-{-7, 0},
-{-4, 1},
-{-3, 2},
-{-2, 1},
-{-2, 3},
-{-2, 5},
-{-1, 0},
-{-1, 1},
-{-1, 2},
-{-1, 3},
-{-1, 4},
-{-1, 5},
-{-1, 6},
-{-1, 7},
-{-1, 8},
-{-1, 9},
-// numerator = -6
-{0, -6},
-{0, -6},
-{0, -6},
-{0, -6},
-{0, -6},
-{0, -6},
-{0, -6},
-{0, -6},
-{0, -6},
-{1, 0},
-{1, -1},
-{1, -2},
-{2, 0},
-{3, 0},
-{6, 0},
-{0, 0},
-{-6, 0},
-{-3, 0},
-{-2, 0},
-{-2, 2},
-{-2, 4},
-{-1, 0},
-{-1, 1},
-{-1, 2},
-{-1, 3},
-{-1, 4},
-{-1, 5},
-{-1, 6},
-{-1, 7},
-{-1, 8},
-{-1, 9},
-{-1, 10},
-// numerator = -5
-{0, -5},
-{0, -5},
-{0, -5},
-{0, -5},
-{0, -5},
-{0, -5},
-{0, -5},
-{0, -5},
-{0, -5},
-{0, -5},
-{1, 0},
-{1, -1},
-{1, -2},
-{2, -1},
-{5, 0},
-{0, 0},
-{-5, 0},
-{-3, 1},
-{-2, 1},
-{-2, 3},
-{-1, 0},
-{-1, 1},
-{-1, 2},
-{-1, 3},
-{-1, 4},
-{-1, 5},
-{-1, 6},
-{-1, 7},
-{-1, 8},
-{-1, 9},
-{-1, 10},
-{-1, 11},
-// numerator = -4
-{0, -4},
-{0, -4},
-{0, -4},
-{0, -4},
-{0, -4},
-{0, -4},
-{0, -4},
-{0, -4},
-{0, -4},
-{0, -4},
-{0, -4},
-{1, 0},
-{1, -1},
-{2, 0},
-{4, 0},
-{0, 0},
-{-4, 0},
-{-2, 0},
-{-2, 2},
-{-1, 0},
-{-1, 1},
-{-1, 2},
-{-1, 3},
-{-1, 4},
-{-1, 5},
-{-1, 6},
-{-1, 7},
-{-1, 8},
-{-1, 9},
-{-1, 10},
-{-1, 11},
-{-1, 12},
-// numerator = -3
-{0, -3},
-{0, -3},
-{0, -3},
-{0, -3},
-{0, -3},
-{0, -3},
-{0, -3},
-{0, -3},
-{0, -3},
-{0, -3},
-{0, -3},
-{0, -3},
-{1, 0},
-{1, -1},
-{3, 0},
-{0, 0},
-{-3, 0},
-{-2, 1},
-{-1, 0},
-{-1, 1},
-{-1, 2},
-{-1, 3},
-{-1, 4},
-{-1, 5},
-{-1, 6},
-{-1, 7},
-{-1, 8},
-{-1, 9},
-{-1, 10},
-{-1, 11},
-{-1, 12},
-{-1, 13},
-// numerator = -2
-{0, -2},
-{0, -2},
-{0, -2},
-{0, -2},
-{0, -2},
-{0, -2},
-{0, -2},
-{0, -2},
-{0, -2},
-{0, -2},
-{0, -2},
-{0, -2},
-{0, -2},
-{1, 0},
-{2, 0},
-{0, 0},
-{-2, 0},
-{-1, 0},
-{-1, 1},
-{-1, 2},
-{-1, 3},
-{-1, 4},
-{-1, 5},
-{-1, 6},
-{-1, 7},
-{-1, 8},
-{-1, 9},
-{-1, 10},
-{-1, 11},
-{-1, 12},
-{-1, 13},
-{-1, 14},
-// numerator = -1
-{0, -1},
-{0, -1},
-{0, -1},
-{0, -1},
-{0, -1},
-{0, -1},
-{0, -1},
-{0, -1},
-{0, -1},
-{0, -1},
-{0, -1},
-{0, -1},
-{0, -1},
-{0, -1},
-{1, 0},
-{0, 0},
-{-1, 0},
-{-1, 1},
-{-1, 2},
-{-1, 3},
-{-1, 4},
-{-1, 5},
-{-1, 6},
-{-1, 7},
-{-1, 8},
-{-1, 9},
-{-1, 10},
-{-1, 11},
-{-1, 12},
-{-1, 13},
-{-1, 14},
-{-1, 15},
-// numerator = 0
-{0, 0},
-{0, 0},
-{0, 0},
-{0, 0},
-{0, 0},
-{0, 0},
-{0, 0},
-{0, 0},
-{0, 0},
-{0, 0},
-{0, 0},
-{0, 0},
-{0, 0},
-{0, 0},
-{0, 0},
-{0, 0},
-{0, 0},
-{0, 0},
-{0, 0},
-{0, 0},
-{0, 0},
-{0, 0},
-{0, 0},
-{0, 0},
-{0, 0},
-{0, 0},
-{0, 0},
-{0, 0},
-{0, 0},
-{0, 0},
-{0, 0},
-{0, 0},
-// numerator = 1
-{-1, -14},
-{-1, -13},
-{-1, -12},
-{-1, -11},
-{-1, -10},
-{-1, -9},
-{-1, -8},
-{-1, -7},
-{-1, -6},
-{-1, -5},
-{-1, -4},
-{-1, -3},
-{-1, -2},
-{-1, -1},
-{-1, 0},
-{0, 0},
-{1, 0},
-{0, 1},
-{0, 1},
-{0, 1},
-{0, 1},
-{0, 1},
-{0, 1},
-{0, 1},
-{0, 1},
-{0, 1},
-{0, 1},
-{0, 1},
-{0, 1},
-{0, 1},
-{0, 1},
-{0, 1},
-// numerator = 2
-{-1, -13},
-{-1, -12},
-{-1, -11},
-{-1, -10},
-{-1, -9},
-{-1, -8},
-{-1, -7},
-{-1, -6},
-{-1, -5},
-{-1, -4},
-{-1, -3},
-{-1, -2},
-{-1, -1},
-{-1, 0},
-{-2, 0},
-{0, 0},
-{2, 0},
-{1, 0},
-{0, 2},
-{0, 2},
-{0, 2},
-{0, 2},
-{0, 2},
-{0, 2},
-{0, 2},
-{0, 2},
-{0, 2},
-{0, 2},
-{0, 2},
-{0, 2},
-{0, 2},
-{0, 2},
-// numerator = 3
-{-1, -12},
-{-1, -11},
-{-1, -10},
-{-1, -9},
-{-1, -8},
-{-1, -7},
-{-1, -6},
-{-1, -5},
-{-1, -4},
-{-1, -3},
-{-1, -2},
-{-1, -1},
-{-1, 0},
-{-2, -1},
-{-3, 0},
-{0, 0},
-{3, 0},
-{1, 1},
-{1, 0},
-{0, 3},
-{0, 3},
-{0, 3},
-{0, 3},
-{0, 3},
-{0, 3},
-{0, 3},
-{0, 3},
-{0, 3},
-{0, 3},
-{0, 3},
-{0, 3},
-{0, 3},
-// numerator = 4
-{-1, -11},
-{-1, -10},
-{-1, -9},
-{-1, -8},
-{-1, -7},
-{-1, -6},
-{-1, -5},
-{-1, -4},
-{-1, -3},
-{-1, -2},
-{-1, -1},
-{-1, 0},
-{-2, -2},
-{-2, 0},
-{-4, 0},
-{0, 0},
-{4, 0},
-{2, 0},
-{1, 1},
-{1, 0},
-{0, 4},
-{0, 4},
-{0, 4},
-{0, 4},
-{0, 4},
-{0, 4},
-{0, 4},
-{0, 4},
-{0, 4},
-{0, 4},
-{0, 4},
-{0, 4},
-// numerator = 5
-{-1, -10},
-{-1, -9},
-{-1, -8},
-{-1, -7},
-{-1, -6},
-{-1, -5},
-{-1, -4},
-{-1, -3},
-{-1, -2},
-{-1, -1},
-{-1, 0},
-{-2, -3},
-{-2, -1},
-{-3, -1},
-{-5, 0},
-{0, 0},
-{5, 0},
-{2, 1},
-{1, 2},
-{1, 1},
-{1, 0},
-{0, 5},
-{0, 5},
-{0, 5},
-{0, 5},
-{0, 5},
-{0, 5},
-{0, 5},
-{0, 5},
-{0, 5},
-{0, 5},
-{0, 5},
-// numerator = 6
-{-1, -9},
-{-1, -8},
-{-1, -7},
-{-1, -6},
-{-1, -5},
-{-1, -4},
-{-1, -3},
-{-1, -2},
-{-1, -1},
-{-1, 0},
-{-2, -4},
-{-2, -2},
-{-2, 0},
-{-3, 0},
-{-6, 0},
-{0, 0},
-{6, 0},
-{3, 0},
-{2, 0},
-{1, 2},
-{1, 1},
-{1, 0},
-{0, 6},
-{0, 6},
-{0, 6},
-{0, 6},
-{0, 6},
-{0, 6},
-{0, 6},
-{0, 6},
-{0, 6},
-{0, 6},
-// numerator = 7
-{-1, -8},
-{-1, -7},
-{-1, -6},
-{-1, -5},
-{-1, -4},
-{-1, -3},
-{-1, -2},
-{-1, -1},
-{-1, 0},
-{-2, -5},
-{-2, -3},
-{-2, -1},
-{-3, -2},
-{-4, -1},
-{-7, 0},
-{0, 0},
-{7, 0},
-{3, 1},
-{2, 1},
-{1, 3},
-{1, 2},
-{1, 1},
-{1, 0},
-{0, 7},
-{0, 7},
-{0, 7},
-{0, 7},
-{0, 7},
-{0, 7},
-{0, 7},
-{0, 7},
-{0, 7},
-// numerator = 8
-{-1, -7},
-{-1, -6},
-{-1, -5},
-{-1, -4},
-{-1, -3},
-{-1, -2},
-{-1, -1},
-{-1, 0},
-{-2, -6},
-{-2, -4},
-{-2, -2},
-{-2, 0},
-{-3, -1},
-{-4, 0},
-{-8, 0},
-{0, 0},
-{8, 0},
-{4, 0},
-{2, 2},
-{2, 0},
-{1, 3},
-{1, 2},
-{1, 1},
-{1, 0},
-{0, 8},
-{0, 8},
-{0, 8},
-{0, 8},
-{0, 8},
-{0, 8},
-{0, 8},
-{0, 8},
-// numerator = 9
-{-1, -6},
-{-1, -5},
-{-1, -4},
-{-1, -3},
-{-1, -2},
-{-1, -1},
-{-1, 0},
-{-2, -7},
-{-2, -5},
-{-2, -3},
-{-2, -1},
-{-3, -3},
-{-3, 0},
-{-5, -1},
-{-9, 0},
-{0, 0},
-{9, 0},
-{4, 1},
-{3, 0},
-{2, 1},
-{1, 4},
-{1, 3},
-{1, 2},
-{1, 1},
-{1, 0},
-{0, 9},
-{0, 9},
-{0, 9},
-{0, 9},
-{0, 9},
-{0, 9},
-{0, 9},
-// numerator = 10
-{-1, -5},
-{-1, -4},
-{-1, -3},
-{-1, -2},
-{-1, -1},
-{-1, 0},
-{-2, -8},
-{-2, -6},
-{-2, -4},
-{-2, -2},
-{-2, 0},
-{-3, -2},
-{-4, -2},
-{-5, 0},
-{-10, 0},
-{0, 0},
-{10, 0},
-{5, 0},
-{3, 1},
-{2, 2},
-{2, 0},
-{1, 4},
-{1, 3},
-{1, 2},
-{1, 1},
-{1, 0},
-{0, 10},
-{0, 10},
-{0, 10},
-{0, 10},
-{0, 10},
-{0, 10},
-// numerator = 11
-{-1, -4},
-{-1, -3},
-{-1, -2},
-{-1, -1},
-{-1, 0},
-{-2, -9},
-{-2, -7},
-{-2, -5},
-{-2, -3},
-{-2, -1},
-{-3, -4},
-{-3, -1},
-{-4, -1},
-{-6, -1},
-{-11, 0},
-{0, 0},
-{11, 0},
-{5, 1},
-{3, 2},
-{2, 3},
-{2, 1},
-{1, 5},
-{1, 4},
-{1, 3},
-{1, 2},
-{1, 1},
-{1, 0},
-{0, 11},
-{0, 11},
-{0, 11},
-{0, 11},
-{0, 11},
-// numerator = 12
-{-1, -3},
-{-1, -2},
-{-1, -1},
-{-1, 0},
-{-2, -10},
-{-2, -8},
-{-2, -6},
-{-2, -4},
-{-2, -2},
-{-2, 0},
-{-3, -3},
-{-3, 0},
-{-4, 0},
-{-6, 0},
-{-12, 0},
-{0, 0},
-{12, 0},
-{6, 0},
-{4, 0},
-{3, 0},
-{2, 2},
-{2, 0},
-{1, 5},
-{1, 4},
-{1, 3},
-{1, 2},
-{1, 1},
-{1, 0},
-{0, 12},
-{0, 12},
-{0, 12},
-{0, 12},
-// numerator = 13
-{-1, -2},
-{-1, -1},
-{-1, 0},
-{-2, -11},
-{-2, -9},
-{-2, -7},
-{-2, -5},
-{-2, -3},
-{-2, -1},
-{-3, -5},
-{-3, -2},
-{-4, -3},
-{-5, -2},
-{-7, -1},
-{-13, 0},
-{0, 0},
-{13, 0},
-{6, 1},
-{4, 1},
-{3, 1},
-{2, 3},
-{2, 1},
-{1, 6},
-{1, 5},
-{1, 4},
-{1, 3},
-{1, 2},
-{1, 1},
-{1, 0},
-{0, 13},
-{0, 13},
-{0, 13},
-// numerator = 14
-{-1, -1},
-{-1, 0},
-{-2, -12},
-{-2, -10},
-{-2, -8},
-{-2, -6},
-{-2, -4},
-{-2, -2},
-{-2, 0},
-{-3, -4},
-{-3, -1},
-{-4, -2},
-{-5, -1},
-{-7, 0},
-{-14, 0},
-{0, 0},
-{14, 0},
-{7, 0},
-{4, 2},
-{3, 2},
-{2, 4},
-{2, 2},
-{2, 0},
-{1, 6},
-{1, 5},
-{1, 4},
-{1, 3},
-{1, 2},
-{1, 1},
-{1, 0},
-{0, 14},
-{0, 14},
-// numerator = 15
-{-1, 0},
-{-2, -13},
-{-2, -11},
-{-2, -9},
-{-2, -7},
-{-2, -5},
-{-2, -3},
-{-2, -1},
-{-3, -6},
-{-3, -3},
-{-3, 0},
-{-4, -1},
-{-5, 0},
-{-8, -1},
-{-15, 0},
-{0, 0},
-{15, 0},
-{7, 1},
-{5, 0},
-{3, 3},
-{3, 0},
-{2, 3},
-{2, 1},
-{1, 7},
-{1, 6},
-{1, 5},
-{1, 4},
-{1, 3},
-{1, 2},
-{1, 1},
-{1, 0},
-{0, 15},
-// numerator = 16
-{-2, -14},
-{-2, -12},
-{-2, -10},
-{-2, -8},
-{-2, -6},
-{-2, -4},
-{-2, -2},
-{-2, 0},
-{-3, -5},
-{-3, -2},
-{-4, -4},
-{-4, 0},
-{-6, -2},
-{-8, 0},
-{-16, 0},
-{0, 0},
-{16, 0},
-{8, 0},
-{5, 1},
-{4, 0},
-{3, 1},
-{2, 4},
-{2, 2},
-{2, 0},
-{1, 7},
-{1, 6},
-{1, 5},
-{1, 4},
-{1, 3},
-{1, 2},
-{1, 1},
-{1, 0},
--- a/client/anorms.h
+++ /dev/null
@@ -1,181 +1,0 @@
-/*
-Copyright (C) 1997-2001 Id Software, Inc.
-
-This program is free software; you can redistribute it and/or
-modify it under the terms of the GNU General Public License
-as published by the Free Software Foundation; either version 2
-of the License, or (at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
-
-See the GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
-
-*/
-{-0.525731, 0.000000, 0.850651}, 
-{-0.442863, 0.238856, 0.864188}, 
-{-0.295242, 0.000000, 0.955423}, 
-{-0.309017, 0.500000, 0.809017}, 
-{-0.162460, 0.262866, 0.951056}, 
-{0.000000, 0.000000, 1.000000}, 
-{0.000000, 0.850651, 0.525731}, 
-{-0.147621, 0.716567, 0.681718}, 
-{0.147621, 0.716567, 0.681718}, 
-{0.000000, 0.525731, 0.850651}, 
-{0.309017, 0.500000, 0.809017}, 
-{0.525731, 0.000000, 0.850651}, 
-{0.295242, 0.000000, 0.955423}, 
-{0.442863, 0.238856, 0.864188}, 
-{0.162460, 0.262866, 0.951056}, 
-{-0.681718, 0.147621, 0.716567}, 
-{-0.809017, 0.309017, 0.500000}, 
-{-0.587785, 0.425325, 0.688191}, 
-{-0.850651, 0.525731, 0.000000}, 
-{-0.864188, 0.442863, 0.238856}, 
-{-0.716567, 0.681718, 0.147621}, 
-{-0.688191, 0.587785, 0.425325}, 
-{-0.500000, 0.809017, 0.309017}, 
-{-0.238856, 0.864188, 0.442863}, 
-{-0.425325, 0.688191, 0.587785}, 
-{-0.716567, 0.681718, -0.147621}, 
-{-0.500000, 0.809017, -0.309017}, 
-{-0.525731, 0.850651, 0.000000}, 
-{0.000000, 0.850651, -0.525731}, 
-{-0.238856, 0.864188, -0.442863}, 
-{0.000000, 0.955423, -0.295242}, 
-{-0.262866, 0.951056, -0.162460}, 
-{0.000000, 1.000000, 0.000000}, 
-{0.000000, 0.955423, 0.295242}, 
-{-0.262866, 0.951056, 0.162460}, 
-{0.238856, 0.864188, 0.442863}, 
-{0.262866, 0.951056, 0.162460}, 
-{0.500000, 0.809017, 0.309017}, 
-{0.238856, 0.864188, -0.442863}, 
-{0.262866, 0.951056, -0.162460}, 
-{0.500000, 0.809017, -0.309017}, 
-{0.850651, 0.525731, 0.000000}, 
-{0.716567, 0.681718, 0.147621}, 
-{0.716567, 0.681718, -0.147621}, 
-{0.525731, 0.850651, 0.000000}, 
-{0.425325, 0.688191, 0.587785}, 
-{0.864188, 0.442863, 0.238856}, 
-{0.688191, 0.587785, 0.425325}, 
-{0.809017, 0.309017, 0.500000}, 
-{0.681718, 0.147621, 0.716567}, 
-{0.587785, 0.425325, 0.688191}, 
-{0.955423, 0.295242, 0.000000}, 
-{1.000000, 0.000000, 0.000000}, 
-{0.951056, 0.162460, 0.262866}, 
-{0.850651, -0.525731, 0.000000}, 
-{0.955423, -0.295242, 0.000000}, 
-{0.864188, -0.442863, 0.238856}, 
-{0.951056, -0.162460, 0.262866}, 
-{0.809017, -0.309017, 0.500000}, 
-{0.681718, -0.147621, 0.716567}, 
-{0.850651, 0.000000, 0.525731}, 
-{0.864188, 0.442863, -0.238856}, 
-{0.809017, 0.309017, -0.500000}, 
-{0.951056, 0.162460, -0.262866}, 
-{0.525731, 0.000000, -0.850651}, 
-{0.681718, 0.147621, -0.716567}, 
-{0.681718, -0.147621, -0.716567}, 
-{0.850651, 0.000000, -0.525731}, 
-{0.809017, -0.309017, -0.500000}, 
-{0.864188, -0.442863, -0.238856}, 
-{0.951056, -0.162460, -0.262866}, 
-{0.147621, 0.716567, -0.681718}, 
-{0.309017, 0.500000, -0.809017}, 
-{0.425325, 0.688191, -0.587785}, 
-{0.442863, 0.238856, -0.864188}, 
-{0.587785, 0.425325, -0.688191}, 
-{0.688191, 0.587785, -0.425325}, 
-{-0.147621, 0.716567, -0.681718}, 
-{-0.309017, 0.500000, -0.809017}, 
-{0.000000, 0.525731, -0.850651}, 
-{-0.525731, 0.000000, -0.850651}, 
-{-0.442863, 0.238856, -0.864188}, 
-{-0.295242, 0.000000, -0.955423}, 
-{-0.162460, 0.262866, -0.951056}, 
-{0.000000, 0.000000, -1.000000}, 
-{0.295242, 0.000000, -0.955423}, 
-{0.162460, 0.262866, -0.951056}, 
-{-0.442863, -0.238856, -0.864188}, 
-{-0.309017, -0.500000, -0.809017}, 
-{-0.162460, -0.262866, -0.951056}, 
-{0.000000, -0.850651, -0.525731}, 
-{-0.147621, -0.716567, -0.681718}, 
-{0.147621, -0.716567, -0.681718}, 
-{0.000000, -0.525731, -0.850651}, 
-{0.309017, -0.500000, -0.809017}, 
-{0.442863, -0.238856, -0.864188}, 
-{0.162460, -0.262866, -0.951056}, 
-{0.238856, -0.864188, -0.442863}, 
-{0.500000, -0.809017, -0.309017}, 
-{0.425325, -0.688191, -0.587785}, 
-{0.716567, -0.681718, -0.147621}, 
-{0.688191, -0.587785, -0.425325}, 
-{0.587785, -0.425325, -0.688191}, 
-{0.000000, -0.955423, -0.295242}, 
-{0.000000, -1.000000, 0.000000}, 
-{0.262866, -0.951056, -0.162460}, 
-{0.000000, -0.850651, 0.525731}, 
-{0.000000, -0.955423, 0.295242}, 
-{0.238856, -0.864188, 0.442863}, 
-{0.262866, -0.951056, 0.162460}, 
-{0.500000, -0.809017, 0.309017}, 
-{0.716567, -0.681718, 0.147621}, 
-{0.525731, -0.850651, 0.000000}, 
-{-0.238856, -0.864188, -0.442863}, 
-{-0.500000, -0.809017, -0.309017}, 
-{-0.262866, -0.951056, -0.162460}, 
-{-0.850651, -0.525731, 0.000000}, 
-{-0.716567, -0.681718, -0.147621}, 
-{-0.716567, -0.681718, 0.147621}, 
-{-0.525731, -0.850651, 0.000000}, 
-{-0.500000, -0.809017, 0.309017}, 
-{-0.238856, -0.864188, 0.442863}, 
-{-0.262866, -0.951056, 0.162460}, 
-{-0.864188, -0.442863, 0.238856}, 
-{-0.809017, -0.309017, 0.500000}, 
-{-0.688191, -0.587785, 0.425325}, 
-{-0.681718, -0.147621, 0.716567}, 
-{-0.442863, -0.238856, 0.864188}, 
-{-0.587785, -0.425325, 0.688191}, 
-{-0.309017, -0.500000, 0.809017}, 
-{-0.147621, -0.716567, 0.681718}, 
-{-0.425325, -0.688191, 0.587785}, 
-{-0.162460, -0.262866, 0.951056}, 
-{0.442863, -0.238856, 0.864188}, 
-{0.162460, -0.262866, 0.951056}, 
-{0.309017, -0.500000, 0.809017}, 
-{0.147621, -0.716567, 0.681718}, 
-{0.000000, -0.525731, 0.850651}, 
-{0.425325, -0.688191, 0.587785}, 
-{0.587785, -0.425325, 0.688191}, 
-{0.688191, -0.587785, 0.425325}, 
-{-0.955423, 0.295242, 0.000000}, 
-{-0.951056, 0.162460, 0.262866}, 
-{-1.000000, 0.000000, 0.000000}, 
-{-0.850651, 0.000000, 0.525731}, 
-{-0.955423, -0.295242, 0.000000}, 
-{-0.951056, -0.162460, 0.262866}, 
-{-0.864188, 0.442863, -0.238856}, 
-{-0.951056, 0.162460, -0.262866}, 
-{-0.809017, 0.309017, -0.500000}, 
-{-0.864188, -0.442863, -0.238856}, 
-{-0.951056, -0.162460, -0.262866}, 
-{-0.809017, -0.309017, -0.500000}, 
-{-0.681718, 0.147621, -0.716567}, 
-{-0.681718, -0.147621, -0.716567}, 
-{-0.850651, 0.000000, -0.525731}, 
-{-0.688191, 0.587785, -0.425325}, 
-{-0.587785, 0.425325, -0.688191}, 
-{-0.425325, 0.688191, -0.587785}, 
-{-0.425325, -0.688191, -0.587785}, 
-{-0.587785, -0.425325, -0.688191}, 
-{-0.688191, -0.587785, -0.425325}, 
--- a/client/asm_i386.h
+++ /dev/null
@@ -1,81 +1,0 @@
-
-#ifndef __ASM_I386__
-#define __ASM_I386__
-
-#ifdef ELF
-#define C(label) label
-#else
-#define C(label) _##label
-#endif
-
-//
-// !!! note that this file must match the corresponding C structures at all
-// times !!!
-//
-
-// plane_t structure
-// !!! if this is changed, it must be changed in model.h too !!!
-// !!! if the size of this is changed, the array lookup in SV_HullPointContents
-//     must be changed too !!!
-#define pl_normal	0
-#define pl_dist		12
-#define pl_type		16
-#define pl_signbits	17
-#define pl_pad		18
-#define pl_size		20
-
-// hull_t structure
-// !!! if this is changed, it must be changed in model.h too !!!
-#define	hu_clipnodes		0
-#define	hu_planes			4
-#define	hu_firstclipnode	8
-#define	hu_lastclipnode		12
-#define	hu_clip_mins		16
-#define	hu_clip_maxs		28
-#define hu_size  			40
-
-// dnode_t structure
-// !!! if this is changed, it must be changed in bspfile.h too !!!
-#define	nd_planenum		0
-#define	nd_children		4
-#define	nd_mins			8
-#define	nd_maxs			20
-#define	nd_firstface	32
-#define	nd_numfaces		36
-#define nd_size			40
-
-// sfxcache_t structure
-// !!! if this is changed, it much be changed in sound.h too !!!
-#define sfxc_length		0
-#define sfxc_loopstart	4
-#define sfxc_speed		8
-#define sfxc_width		12
-#define sfxc_stereo		16
-#define sfxc_data		20
-
-// channel_t structure
-// !!! if this is changed, it much be changed in sound.h too !!!
-#define ch_sfx			0
-#define ch_leftvol		4
-#define ch_rightvol		8
-#define ch_end			12
-#define ch_pos			16
-#define ch_looping		20
-#define ch_entnum		24
-#define ch_entchannel	28
-#define ch_origin		32
-#define ch_dist_mult	44
-#define ch_master_vol	48
-#define ch_size			52
-
-// portable_samplepair_t structure
-// !!! if this is changed, it much be changed in sound.h too !!!
-#define psp_left		0
-#define psp_right		4
-#define psp_size		8
-
-// !!! must be kept the same as in d_iface.h !!!
-#define TRANSPARENT_COLOR	255
-
-#endif
-
--- a/client/block16.h
+++ /dev/null
@@ -1,123 +1,0 @@
-LEnter16_16:
-	movb	(%esi),%al
-	movb	(%esi,%ebx,),%cl
-	movb	%dh,%ah
-	addl	%ebp,%edx
-	movb	%dh,%ch
-	leal	(%esi,%ebx,2),%esi
-	movw	0x12345678(,%eax,2),%ax
-LBPatch0:
-	addl	%ebp,%edx
-	movw	%ax,(%edi)
-	movw	0x12345678(,%ecx,2),%cx
-LBPatch1:
-	movw	%cx,2(%edi)
-	addl	$0x4,%edi
-
-	movb	(%esi),%al
-	movb	(%esi,%ebx,),%cl
-	movb	%dh,%ah
-	addl	%ebp,%edx
-	movb	%dh,%ch
-	leal	(%esi,%ebx,2),%esi
-	movw	0x12345678(,%eax,2),%ax
-LBPatch2:
-	addl	%ebp,%edx
-	movw	%ax,(%edi)
-	movw	0x12345678(,%ecx,2),%cx
-LBPatch3:
-	movw	%cx,2(%edi)
-	addl	$0x4,%edi
-
-	movb	(%esi),%al
-	movb	(%esi,%ebx,),%cl
-	movb	%dh,%ah
-	addl	%ebp,%edx
-	movb	%dh,%ch
-	leal	(%esi,%ebx,2),%esi
-	movw	0x12345678(,%eax,2),%ax
-LBPatch4:
-	addl	%ebp,%edx
-	movw	%ax,(%edi)
-	movw	0x12345678(,%ecx,2),%cx
-LBPatch5:
-	movw	%cx,2(%edi)
-	addl	$0x4,%edi
-
-	movb	(%esi),%al
-	movb	(%esi,%ebx,),%cl
-	movb	%dh,%ah
-	addl	%ebp,%edx
-	movb	%dh,%ch
-	leal	(%esi,%ebx,2),%esi
-	movw	0x12345678(,%eax,2),%ax
-LBPatch6:
-	addl	%ebp,%edx
-	movw	%ax,(%edi)
-	movw	0x12345678(,%ecx,2),%cx
-LBPatch7:
-	movw	%cx,2(%edi)
-	addl	$0x4,%edi
-
-LEnter8_16:
-	movb	(%esi),%al
-	movb	(%esi,%ebx,),%cl
-	movb	%dh,%ah
-	addl	%ebp,%edx
-	movb	%dh,%ch
-	leal	(%esi,%ebx,2),%esi
-	movw	0x12345678(,%eax,2),%ax
-LBPatch8:
-	addl	%ebp,%edx
-	movw	%ax,(%edi)
-	movw	0x12345678(,%ecx,2),%cx
-LBPatch9:
-	movw	%cx,2(%edi)
-	addl	$0x4,%edi
-
-	movb	(%esi),%al
-	movb	(%esi,%ebx,),%cl
-	movb	%dh,%ah
-	addl	%ebp,%edx
-	movb	%dh,%ch
-	leal	(%esi,%ebx,2),%esi
-	movw	0x12345678(,%eax,2),%ax
-LBPatch10:
-	addl	%ebp,%edx
-	movw	%ax,(%edi)
-	movw	0x12345678(,%ecx,2),%cx
-LBPatch11:
-	movw	%cx,2(%edi)
-	addl	$0x4,%edi
-
-LEnter4_16:
-	movb	(%esi),%al
-	movb	(%esi,%ebx,),%cl
-	movb	%dh,%ah
-	addl	%ebp,%edx
-	movb	%dh,%ch
-	leal	(%esi,%ebx,2),%esi
-	movw	0x12345678(,%eax,2),%ax
-LBPatch12:
-	addl	%ebp,%edx
-	movw	%ax,(%edi)
-	movw	0x12345678(,%ecx,2),%cx
-LBPatch13:
-	movw	%cx,2(%edi)
-	addl	$0x4,%edi
-
-LEnter2_16:
-	movb	(%esi),%al
-	movb	(%esi,%ebx,),%cl
-	movb	%dh,%ah
-	addl	%ebp,%edx
-	movb	%dh,%ch
-	leal	(%esi,%ebx,2),%esi
-	movw	0x12345678(,%eax,2),%ax
-LBPatch14:
-	addl	%ebp,%edx
-	movw	%ax,(%edi)
-	movw	0x12345678(,%ecx,2),%cx
-LBPatch15:
-	movw	%cx,2(%edi)
-	addl	$0x4,%edi
--- a/client/block8.h
+++ /dev/null
@@ -1,124 +1,0 @@
-LEnter16_8:
-	movb	(%esi),%al
-	movb	(%esi,%ebx,),%cl
-	movb	%dh,%ah
-	addl	%ebp,%edx
-	movb	%dh,%ch
-	leal	(%esi,%ebx,2),%esi
-	movb	0x12345678(%eax),%al
-LBPatch0:
-	addl	%ebp,%edx
-	movb	%al,(%edi)
-	movb	0x12345678(%ecx),%cl
-LBPatch1:
-	movb	%cl,1(%edi)
-	addl	$0x2,%edi
-
-	movb	(%esi),%al
-	movb	(%esi,%ebx,),%cl
-	movb	%dh,%ah
-	addl	%ebp,%edx
-	movb	%dh,%ch
-	leal	(%esi,%ebx,2),%esi
-	movb	0x12345678(%eax),%al
-LBPatch2:
-	addl	%ebp,%edx
-	movb	%al,(%edi)
-	movb	0x12345678(%ecx),%cl
-LBPatch3:
-	movb	%cl,1(%edi)
-	addl	$0x2,%edi
-
-	movb	(%esi),%al
-	movb	(%esi,%ebx,),%cl
-	movb	%dh,%ah
-	addl	%ebp,%edx
-	movb	%dh,%ch
-	leal	(%esi,%ebx,2),%esi
-	movb	0x12345678(%eax),%al
-LBPatch4:
-	addl	%ebp,%edx
-	movb	%al,(%edi)
-	movb	0x12345678(%ecx),%cl
-LBPatch5:
-	movb	%cl,1(%edi)
-	addl	$0x2,%edi
-
-	movb	(%esi),%al
-	movb	(%esi,%ebx,),%cl
-	movb	%dh,%ah
-	addl	%ebp,%edx
-	movb	%dh,%ch
-	leal	(%esi,%ebx,2),%esi
-	movb	0x12345678(%eax),%al
-LBPatch6:
-	addl	%ebp,%edx
-	movb	%al,(%edi)
-	movb	0x12345678(%ecx),%cl
-LBPatch7:
-	movb	%cl,1(%edi)
-	addl	$0x2,%edi
-
-LEnter8_8:
-	movb	(%esi),%al
-	movb	(%esi,%ebx,),%cl
-	movb	%dh,%ah
-	addl	%ebp,%edx
-	movb	%dh,%ch
-	leal	(%esi,%ebx,2),%esi
-	movb	0x12345678(%eax),%al
-LBPatch8:
-	addl	%ebp,%edx
-	movb	%al,(%edi)
-	movb	0x12345678(%ecx),%cl
-LBPatch9:
-	movb	%cl,1(%edi)
-	addl	$0x2,%edi
-
-	movb	(%esi),%al
-	movb	(%esi,%ebx,),%cl
-	movb	%dh,%ah
-	addl	%ebp,%edx
-	movb	%dh,%ch
-	leal	(%esi,%ebx,2),%esi
-	movb	0x12345678(%eax),%al
-LBPatch10:
-	addl	%ebp,%edx
-	movb	%al,(%edi)
-	movb	0x12345678(%ecx),%cl
-LBPatch11:
-	movb	%cl,1(%edi)
-	addl	$0x2,%edi
-
-LEnter4_8:
-	movb	(%esi),%al
-	movb	(%esi,%ebx,),%cl
-	movb	%dh,%ah
-	addl	%ebp,%edx
-	movb	%dh,%ch
-	leal	(%esi,%ebx,2),%esi
-	movb	0x12345678(%eax),%al
-LBPatch12:
-	addl	%ebp,%edx
-	movb	%al,(%edi)
-	movb	0x12345678(%ecx),%cl
-LBPatch13:
-	movb	%cl,1(%edi)
-	addl	$0x2,%edi
-
-LEnter2_8:
-	movb	(%esi),%al
-	movb	(%esi,%ebx,),%cl
-	movb	%dh,%ah
-	addl	%ebp,%edx
-	movb	%dh,%ch
-	leal	(%esi,%ebx,2),%esi
-	movb	0x12345678(%eax),%al
-LBPatch14:
-	addl	%ebp,%edx
-	movb	%al,(%edi)
-	movb	0x12345678(%ecx),%cl
-LBPatch15:
-	movb	%cl,1(%edi)
-	addl	$0x2,%edi
-
--- a/client/x86.c
+++ /dev/null
@@ -1,95 +1,0 @@
-/*
-Copyright (C) 1997-2001 Id Software, Inc.
-
-This program is free software; you can redistribute it and/or
-modify it under the terms of the GNU General Public License
-as published by the Free Software Foundation; either version 2
-of the License, or (at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
-
-See the GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
-
-*/
-#include <stdlib.h>
-#include "client.h"
-
-#if id386
-
-static unsigned long bias;
-static unsigned long *histogram;
-static unsigned long start, range;
-static unsigned long bias;
-
-__declspec( naked ) void x86_TimerStart( void )
-{
-	__asm _emit 0fh
-	__asm _emit 31h
-	__asm mov  start, eax
-	__asm ret
-}
-
-__declspec( naked ) void x86_TimerStop( void )
-{
-	__asm push edi
-	__asm mov edi, histogram
-	__asm _emit 0fh
-	__asm _emit 31h
-	__asm sub eax, start
-	__asm sub eax, bias
-	__asm js discard
-	__asm cmp eax, range
-	__asm jge  discard
-	__asm lea edi, [edi + eax*4]
-	__asm inc dword ptr [edi]
-discard:
-	__asm pop edi
-	__asm ret
-}
-
-#pragma warning( disable: 4035 )
-static __declspec( naked ) unsigned long x86_TimerStopBias( void )
-{
-	__asm push edi
-	__asm mov edi, histogram
-	__asm _emit 0fh
-	__asm _emit 31h
-	__asm sub eax, start
-	__asm pop edi
-	__asm ret
-}
-#pragma warning( default:4035 )
-
-void x86_TimerInit( unsigned long smallest, unsigned length )
-{
-	int i;
-	unsigned long biastable[100];
-
-	range = length;
-	bias = 10000;
-
-	for ( i = 0; i < 100; i++ )
-	{
-		x86_TimerStart();
-		biastable[i] = x86_TimerStopBias();
-
-		if ( bias > biastable[i] )
-			bias = biastable[i];
-	}
-
-	bias += smallest;
-	histogram = Z_Malloc( range * sizeof( unsigned long ) );
-}
-
-unsigned long *x86_TimerGetHistogram( void )
-{
-	return histogram;
-}
-
-#endif
--- a/ctf/ctf.001
+++ /dev/null
@@ -1,1009 +1,0 @@
-# Microsoft Developer Studio Project File - Name="ctf" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 5.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-# TARGTYPE "Win32 (ALPHA) Dynamic-Link Library" 0x0602
-
-CFG=ctf - Win32 Debug Alpha
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE 
-!MESSAGE NMAKE /f "ctf.mak".
-!MESSAGE 
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE 
-!MESSAGE NMAKE /f "ctf.mak" CFG="ctf - Win32 Debug Alpha"
-!MESSAGE 
-!MESSAGE Possible choices for configuration are:
-!MESSAGE 
-!MESSAGE "ctf - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "ctf - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "ctf - Win32 Debug Alpha" (based on\
- "Win32 (ALPHA) Dynamic-Link Library")
-!MESSAGE "ctf - Win32 Release Alpha" (based on\
- "Win32 (ALPHA) Dynamic-Link Library")
-!MESSAGE 
-
-# Begin Project
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-# PROP WCE_Configuration "H/PC Ver. 2.00"
-
-!IF  "$(CFG)" == "ctf - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir ".\release"
-# PROP Intermediate_Dir ".\release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-CPP=cl.exe
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /MT /W4 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
-MTL=midl.exe
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o NUL /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o NUL /win32
-RSC=rc.exe
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386
-# ADD LINK32 kernel32.lib user32.lib winmm.lib /nologo /subsystem:windows /dll /machine:I386 /out:".\release\gamex86.dll"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir ".\debug"
-# PROP Intermediate_Dir ".\debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-CPP=cl.exe
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FR /YX /FD /c
-MTL=midl.exe
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32
-RSC=rc.exe
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib winmm.lib /nologo /subsystem:windows /dll /incremental:no /map /debug /machine:I386 /out:".\debug\gamex86.dll" /pdbtype:sept
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug Alpha"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "ctf___Wi"
-# PROP BASE Intermediate_Dir "ctf___Wi"
-# PROP BASE Ignore_Export_Lib 0
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "..\DebugAXP"
-# PROP Intermediate_Dir ".\DebugAXP"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-MTL=midl.exe
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32
-CPP=cl.exe
-# ADD BASE CPP /nologo /Gt0 /W3 /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FR /YX /FD /MTd /c
-# ADD CPP /nologo /Gt0 /W3 /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FR /YX /FD /MTd /c
-RSC=rc.exe
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 winmm.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:windows /dll /map /debug /machine:ALPHA /out:".\debug\gamex86.dll" /pdbtype:sept
-# ADD LINK32 winmm.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:windows /dll /map /debug /machine:ALPHA /out:".\debugAXP\gameaxp.dll" /pdbtype:sept
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Release Alpha"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "ctf___W0"
-# PROP BASE Intermediate_Dir "ctf___W0"
-# PROP BASE Ignore_Export_Lib 0
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "..\ReleaseAXP"
-# PROP Intermediate_Dir ".\ReleaseAXP"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-MTL=midl.exe
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o NUL /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o NUL /win32
-CPP=cl.exe
-# ADD BASE CPP /nologo /MT /Gt0 /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /MT /Gt0 /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
-RSC=rc.exe
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 winmm.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:windows /dll /machine:ALPHA /out:".\release\gamex86.dll"
-# ADD LINK32 winmm.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:windows /dll /machine:ALPHA /out:".\ReleaseAXP\gameaxp.dll"
-
-!ENDIF 
-
-# Begin Target
-
-# Name "ctf - Win32 Release"
-# Name "ctf - Win32 Debug"
-# Name "ctf - Win32 Debug Alpha"
-# Name "ctf - Win32 Release Alpha"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "*.c"
-# Begin Source File
-
-SOURCE=.\g_ai.c
-
-!IF  "$(CFG)" == "ctf - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug Alpha"
-
-DEP_CPP_G_AI_=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Release Alpha"
-
-DEP_CPP_G_AI_=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_chase.c
-
-!IF  "$(CFG)" == "ctf - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug Alpha"
-
-DEP_CPP_G_CHA=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Release Alpha"
-
-DEP_CPP_G_CHA=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_cmds.c
-
-!IF  "$(CFG)" == "ctf - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug Alpha"
-
-DEP_CPP_G_CMD=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_player.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Release Alpha"
-
-DEP_CPP_G_CMD=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_player.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_combat.c
-
-!IF  "$(CFG)" == "ctf - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug Alpha"
-
-DEP_CPP_G_COM=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Release Alpha"
-
-DEP_CPP_G_COM=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_ctf.c
-
-!IF  "$(CFG)" == "ctf - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug Alpha"
-
-DEP_CPP_G_CTF=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_player.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Release Alpha"
-
-DEP_CPP_G_CTF=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_player.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_func.c
-
-!IF  "$(CFG)" == "ctf - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug Alpha"
-
-DEP_CPP_G_FUN=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Release Alpha"
-
-DEP_CPP_G_FUN=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_items.c
-
-!IF  "$(CFG)" == "ctf - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug Alpha"
-
-DEP_CPP_G_ITE=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Release Alpha"
-
-DEP_CPP_G_ITE=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_main.c
-
-!IF  "$(CFG)" == "ctf - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug Alpha"
-
-DEP_CPP_G_MAI=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Release Alpha"
-
-DEP_CPP_G_MAI=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_misc.c
-
-!IF  "$(CFG)" == "ctf - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug Alpha"
-
-DEP_CPP_G_MIS=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Release Alpha"
-
-DEP_CPP_G_MIS=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_monster.c
-
-!IF  "$(CFG)" == "ctf - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug Alpha"
-
-DEP_CPP_G_MON=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Release Alpha"
-
-DEP_CPP_G_MON=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_phys.c
-
-!IF  "$(CFG)" == "ctf - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug Alpha"
-
-DEP_CPP_G_PHY=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Release Alpha"
-
-DEP_CPP_G_PHY=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_save.c
-
-!IF  "$(CFG)" == "ctf - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug Alpha"
-
-DEP_CPP_G_SAV=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Release Alpha"
-
-DEP_CPP_G_SAV=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_spawn.c
-
-!IF  "$(CFG)" == "ctf - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug Alpha"
-
-DEP_CPP_G_SPA=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Release Alpha"
-
-DEP_CPP_G_SPA=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_svcmds.c
-
-!IF  "$(CFG)" == "ctf - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug Alpha"
-
-DEP_CPP_G_SVC=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Release Alpha"
-
-DEP_CPP_G_SVC=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_target.c
-
-!IF  "$(CFG)" == "ctf - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug Alpha"
-
-DEP_CPP_G_TAR=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Release Alpha"
-
-DEP_CPP_G_TAR=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_trigger.c
-
-!IF  "$(CFG)" == "ctf - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug Alpha"
-
-DEP_CPP_G_TRI=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Release Alpha"
-
-DEP_CPP_G_TRI=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_utils.c
-
-!IF  "$(CFG)" == "ctf - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug Alpha"
-
-DEP_CPP_G_UTI=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Release Alpha"
-
-DEP_CPP_G_UTI=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_weapon.c
-
-!IF  "$(CFG)" == "ctf - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug Alpha"
-
-DEP_CPP_G_WEA=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Release Alpha"
-
-DEP_CPP_G_WEA=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_move.c
-
-!IF  "$(CFG)" == "ctf - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug Alpha"
-
-DEP_CPP_M_MOV=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Release Alpha"
-
-DEP_CPP_M_MOV=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\p_client.c
-
-!IF  "$(CFG)" == "ctf - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug Alpha"
-
-DEP_CPP_P_CLI=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_player.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Release Alpha"
-
-DEP_CPP_P_CLI=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_player.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\p_hud.c
-
-!IF  "$(CFG)" == "ctf - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug Alpha"
-
-DEP_CPP_P_HUD=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Release Alpha"
-
-DEP_CPP_P_HUD=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\p_menu.c
-
-!IF  "$(CFG)" == "ctf - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug Alpha"
-
-DEP_CPP_P_MEN=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Release Alpha"
-
-DEP_CPP_P_MEN=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\p_trail.c
-
-!IF  "$(CFG)" == "ctf - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug Alpha"
-
-DEP_CPP_P_TRA=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Release Alpha"
-
-DEP_CPP_P_TRA=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\p_view.c
-
-!IF  "$(CFG)" == "ctf - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug Alpha"
-
-DEP_CPP_P_VIE=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_player.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Release Alpha"
-
-DEP_CPP_P_VIE=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_player.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\p_weapon.c
-
-!IF  "$(CFG)" == "ctf - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug Alpha"
-
-DEP_CPP_P_WEA=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_player.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Release Alpha"
-
-DEP_CPP_P_WEA=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_player.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\q_shared.c
-
-!IF  "$(CFG)" == "ctf - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug Alpha"
-
-DEP_CPP_Q_SHA=\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Release Alpha"
-
-DEP_CPP_Q_SHA=\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "*.h"
-# Begin Source File
-
-SOURCE=.\g_ctf.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_local.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\game.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_player.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\p_menu.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\q_shared.h
-# End Source File
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "*.def,*.res"
-# Begin Source File
-
-SOURCE=.\ctf.def
-# End Source File
-# End Group
-# End Target
-# End Project
--- a/ctf/ctf.def
+++ /dev/null
@@ -1,2 +1,0 @@
-EXPORTS
-	GetGameAPI
--- a/ctf/ctf.dsp
+++ /dev/null
@@ -1,1007 +1,0 @@
-# Microsoft Developer Studio Project File - Name="ctf" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-# TARGTYPE "Win32 (ALPHA) Dynamic-Link Library" 0x0602
-
-CFG=ctf - Win32 Debug Alpha
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE 
-!MESSAGE NMAKE /f "ctf.mak".
-!MESSAGE 
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE 
-!MESSAGE NMAKE /f "ctf.mak" CFG="ctf - Win32 Debug Alpha"
-!MESSAGE 
-!MESSAGE Possible choices for configuration are:
-!MESSAGE 
-!MESSAGE "ctf - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "ctf - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "ctf - Win32 Debug Alpha" (based on "Win32 (ALPHA) Dynamic-Link Library")
-!MESSAGE "ctf - Win32 Release Alpha" (based on "Win32 (ALPHA) Dynamic-Link Library")
-!MESSAGE 
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-
-!IF  "$(CFG)" == "ctf - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir ".\release"
-# PROP Intermediate_Dir ".\release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-CPP=cl.exe
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /MT /W4 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
-MTL=midl.exe
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
-RSC=rc.exe
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386
-# ADD LINK32 kernel32.lib user32.lib winmm.lib /nologo /subsystem:windows /dll /machine:I386 /out:".\release\gamex86.dll"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir ".\debug"
-# PROP Intermediate_Dir ".\debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-CPP=cl.exe
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FR /YX /FD /c
-MTL=midl.exe
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
-RSC=rc.exe
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib winmm.lib /nologo /subsystem:windows /dll /incremental:no /map /debug /machine:I386 /out:".\debug\gamex86.dll" /pdbtype:sept
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug Alpha"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "ctf___Wi"
-# PROP BASE Intermediate_Dir "ctf___Wi"
-# PROP BASE Ignore_Export_Lib 0
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "..\DebugAXP"
-# PROP Intermediate_Dir ".\DebugAXP"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-CPP=cl.exe
-# ADD BASE CPP /nologo /Gt0 /W3 /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FR /YX /FD /MTd /c
-# ADD CPP /nologo /Gt0 /W3 /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FR /YX /FD /MTd /c
-MTL=midl.exe
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
-RSC=rc.exe
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 winmm.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:windows /dll /map /debug /machine:ALPHA /out:".\debug\gamex86.dll" /pdbtype:sept
-# ADD LINK32 winmm.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:windows /dll /map /debug /machine:ALPHA /out:".\debugAXP\gameaxp.dll" /pdbtype:sept
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Release Alpha"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "ctf___W0"
-# PROP BASE Intermediate_Dir "ctf___W0"
-# PROP BASE Ignore_Export_Lib 0
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "..\ReleaseAXP"
-# PROP Intermediate_Dir ".\ReleaseAXP"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-CPP=cl.exe
-# ADD BASE CPP /nologo /MT /Gt0 /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /MT /Gt0 /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
-MTL=midl.exe
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
-RSC=rc.exe
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 winmm.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:windows /dll /machine:ALPHA /out:".\release\gamex86.dll"
-# ADD LINK32 winmm.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:windows /dll /machine:ALPHA /out:".\ReleaseAXP\gameaxp.dll"
-
-!ENDIF 
-
-# Begin Target
-
-# Name "ctf - Win32 Release"
-# Name "ctf - Win32 Debug"
-# Name "ctf - Win32 Debug Alpha"
-# Name "ctf - Win32 Release Alpha"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "*.c"
-# Begin Source File
-
-SOURCE=.\g_ai.c
-
-!IF  "$(CFG)" == "ctf - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug Alpha"
-
-DEP_CPP_G_AI_=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Release Alpha"
-
-DEP_CPP_G_AI_=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_chase.c
-
-!IF  "$(CFG)" == "ctf - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug Alpha"
-
-DEP_CPP_G_CHA=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Release Alpha"
-
-DEP_CPP_G_CHA=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_cmds.c
-
-!IF  "$(CFG)" == "ctf - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug Alpha"
-
-DEP_CPP_G_CMD=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_player.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Release Alpha"
-
-DEP_CPP_G_CMD=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_player.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_combat.c
-
-!IF  "$(CFG)" == "ctf - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug Alpha"
-
-DEP_CPP_G_COM=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Release Alpha"
-
-DEP_CPP_G_COM=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_ctf.c
-
-!IF  "$(CFG)" == "ctf - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug Alpha"
-
-DEP_CPP_G_CTF=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_player.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Release Alpha"
-
-DEP_CPP_G_CTF=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_player.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_func.c
-
-!IF  "$(CFG)" == "ctf - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug Alpha"
-
-DEP_CPP_G_FUN=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Release Alpha"
-
-DEP_CPP_G_FUN=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_items.c
-
-!IF  "$(CFG)" == "ctf - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug Alpha"
-
-DEP_CPP_G_ITE=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Release Alpha"
-
-DEP_CPP_G_ITE=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_main.c
-
-!IF  "$(CFG)" == "ctf - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug Alpha"
-
-DEP_CPP_G_MAI=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Release Alpha"
-
-DEP_CPP_G_MAI=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_misc.c
-
-!IF  "$(CFG)" == "ctf - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug Alpha"
-
-DEP_CPP_G_MIS=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Release Alpha"
-
-DEP_CPP_G_MIS=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_monster.c
-
-!IF  "$(CFG)" == "ctf - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug Alpha"
-
-DEP_CPP_G_MON=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Release Alpha"
-
-DEP_CPP_G_MON=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_phys.c
-
-!IF  "$(CFG)" == "ctf - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug Alpha"
-
-DEP_CPP_G_PHY=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Release Alpha"
-
-DEP_CPP_G_PHY=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_save.c
-
-!IF  "$(CFG)" == "ctf - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug Alpha"
-
-DEP_CPP_G_SAV=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Release Alpha"
-
-DEP_CPP_G_SAV=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_spawn.c
-
-!IF  "$(CFG)" == "ctf - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug Alpha"
-
-DEP_CPP_G_SPA=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Release Alpha"
-
-DEP_CPP_G_SPA=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_svcmds.c
-
-!IF  "$(CFG)" == "ctf - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug Alpha"
-
-DEP_CPP_G_SVC=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Release Alpha"
-
-DEP_CPP_G_SVC=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_target.c
-
-!IF  "$(CFG)" == "ctf - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug Alpha"
-
-DEP_CPP_G_TAR=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Release Alpha"
-
-DEP_CPP_G_TAR=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_trigger.c
-
-!IF  "$(CFG)" == "ctf - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug Alpha"
-
-DEP_CPP_G_TRI=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Release Alpha"
-
-DEP_CPP_G_TRI=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_utils.c
-
-!IF  "$(CFG)" == "ctf - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug Alpha"
-
-DEP_CPP_G_UTI=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Release Alpha"
-
-DEP_CPP_G_UTI=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_weapon.c
-
-!IF  "$(CFG)" == "ctf - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug Alpha"
-
-DEP_CPP_G_WEA=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Release Alpha"
-
-DEP_CPP_G_WEA=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_move.c
-
-!IF  "$(CFG)" == "ctf - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug Alpha"
-
-DEP_CPP_M_MOV=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Release Alpha"
-
-DEP_CPP_M_MOV=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\p_client.c
-
-!IF  "$(CFG)" == "ctf - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug Alpha"
-
-DEP_CPP_P_CLI=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_player.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Release Alpha"
-
-DEP_CPP_P_CLI=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_player.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\p_hud.c
-
-!IF  "$(CFG)" == "ctf - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug Alpha"
-
-DEP_CPP_P_HUD=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Release Alpha"
-
-DEP_CPP_P_HUD=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\p_menu.c
-
-!IF  "$(CFG)" == "ctf - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug Alpha"
-
-DEP_CPP_P_MEN=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Release Alpha"
-
-DEP_CPP_P_MEN=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\p_trail.c
-
-!IF  "$(CFG)" == "ctf - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug Alpha"
-
-DEP_CPP_P_TRA=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Release Alpha"
-
-DEP_CPP_P_TRA=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\p_view.c
-
-!IF  "$(CFG)" == "ctf - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug Alpha"
-
-DEP_CPP_P_VIE=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_player.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Release Alpha"
-
-DEP_CPP_P_VIE=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_player.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\p_weapon.c
-
-!IF  "$(CFG)" == "ctf - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug Alpha"
-
-DEP_CPP_P_WEA=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_player.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Release Alpha"
-
-DEP_CPP_P_WEA=\
-	".\g_ctf.h"\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_player.h"\
-	".\p_menu.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\q_shared.c
-
-!IF  "$(CFG)" == "ctf - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Debug Alpha"
-
-DEP_CPP_Q_SHA=\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ctf - Win32 Release Alpha"
-
-DEP_CPP_Q_SHA=\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "*.h"
-# Begin Source File
-
-SOURCE=.\g_ctf.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_local.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\game.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_player.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\p_menu.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\q_shared.h
-# End Source File
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "*.def,*.res"
-# Begin Source File
-
-SOURCE=.\ctf.def
-# End Source File
-# End Group
-# End Target
-# End Project
--- a/ctf/ctf.plg
+++ /dev/null
@@ -1,17 +1,0 @@
---------------------Configuration: ctf - Win32 Debug Alpha--------------------
-Begining build with project "G:\quake2\code\ctf\ctf.dsp", at root.
-Active configuration is Win32 (ALPHA) Dynamic-Link Library (based on Win32 (ALPHA) Dynamic-Link Library)
-
-Project's tools are:
-			"OLE Type Library Maker" with flags "/nologo /D "_DEBUG" /mktyplib203 /o NUL /win32 "
-			"C/C++ Compiler for Alpha" with flags "/nologo /MTd /Gt0 /W3 /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FR".\DebugAXP/" /Fp".\DebugAXP/ctf.pch" /YX /Fo".\DebugAXP/" /Fd".\DebugAXP/" /FD /c "
-			"Win32 Resource Compiler" with flags "/l 0x409 /d "_DEBUG" "
-			"Browser Database Maker" with flags "/nologo /o"..\DebugAXP/ctf.bsc" "
-			"COFF Linker for Alpha" with flags "winmm.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"..\DebugAXP/gameaxp.pdb" /map:".\DebugAXP/gameaxp.map" /debug /machine:ALPHA /def:".\ctf.def" /out:".\debugAXP\gameaxp.dll" /implib:"..\DebugAXP/gameaxp.lib" /pdbtype:sept "
-			"Custom Build" with flags ""
-			"<Component 0xa>" with flags ""
-
-
-
-
-gameaxp.dll - 0 error(s), 0 warning(s)
--- a/ctf/g_local.h
+++ b/ctf/g_local.h
@@ -19,7 +19,7 @@
 */
 // g_local.h -- local definitions for game module
 
-#include "q_shared.h"
+#include "../q_shared.h"
 
 // define GAME_INCLUDE so that game.h does not define the
 // short, server-visible gclient_t and edict_t structures,
--- a/ctf/q_shared.c
+++ b/ctf/q_shared.c
@@ -17,7 +17,7 @@
 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 
 */
-#include "q_shared.h"
+#include "../q_shared.h"
 
 #define DEG2RAD( a ) ( a * M_PI ) / 180.0F
 
--- a/ctf/q_shared.h
+++ /dev/null
@@ -1,1200 +1,0 @@
-/*
-Copyright (C) 1997-2001 Id Software, Inc.
-
-This program is free software; you can redistribute it and/or
-modify it under the terms of the GNU General Public License
-as published by the Free Software Foundation; either version 2
-of the License, or (at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
-
-See the GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
-
-*/
-	
-// q_shared.h -- included first by ALL program modules
-
-#ifdef _WIN32
-// unknown pragmas are SUPPOSED to be ignored, but....
-#pragma warning(disable : 4244)     // MIPS
-#pragma warning(disable : 4136)     // X86
-#pragma warning(disable : 4051)     // ALPHA
-
-#pragma warning(disable : 4018)     // signed/unsigned mismatch
-#pragma warning(disable : 4305)		// truncation from const double to float
-
-#endif
-
-#include <assert.h>
-#include <math.h>
-#include <stdio.h>
-#include <stdarg.h>
-#include <string.h>
-#include <stdlib.h>
-#include <time.h>
-
-#if (defined _M_IX86 || defined __i386__) && !defined C_ONLY && !defined __sun__
-#define id386	1
-#else
-#define id386	0
-#endif
-
-#if defined _M_ALPHA && !defined C_ONLY
-#define idaxp	1
-#else
-#define idaxp	0
-#endif
-
-typedef unsigned char 		byte;
-typedef enum {false, true}	qboolean;
-
-
-#ifndef NULL
-#define NULL ((void *)0)
-#endif
-
-
-// angle indexes
-#define	PITCH				0		// up / down
-#define	YAW					1		// left / right
-#define	ROLL				2		// fall over
-
-#define	MAX_STRING_CHARS	1024	// max length of a string passed to Cmd_TokenizeString
-#define	MAX_STRING_TOKENS	80		// max tokens resulting from Cmd_TokenizeString
-#define	MAX_TOKEN_CHARS		128		// max length of an individual token
-
-#define	MAX_QPATH			64		// max length of a quake game pathname
-#define	MAX_OSPATH			128		// max length of a filesystem pathname
-
-//
-// per-level limits
-//
-#define	MAX_CLIENTS			256		// absolute limit
-#define	MAX_EDICTS			1024	// must change protocol to increase more
-#define	MAX_LIGHTSTYLES		256
-#define	MAX_MODELS			256		// these are sent over the net as bytes
-#define	MAX_SOUNDS			256		// so they cannot be blindly increased
-#define	MAX_IMAGES			256
-#define	MAX_ITEMS			256
-#define MAX_GENERAL			(MAX_CLIENTS*2)	// general config strings
-
-
-// game print flags
-#define	PRINT_LOW			0		// pickup messages
-#define	PRINT_MEDIUM		1		// death messages
-#define	PRINT_HIGH			2		// critical messages
-#define	PRINT_CHAT			3		// chat messages
-
-
-
-#define	ERR_FATAL			0		// exit the entire game with a popup window
-#define	ERR_DROP			1		// print to console and disconnect from game
-#define	ERR_DISCONNECT		2		// don't kill server
-
-#define	PRINT_ALL			0
-#define PRINT_DEVELOPER		1		// only print when "developer 1"
-#define PRINT_ALERT			2		
-
-
-// destination class for gi.multicast()
-typedef enum
-{
-MULTICAST_ALL,
-MULTICAST_PHS,
-MULTICAST_PVS,
-MULTICAST_ALL_R,
-MULTICAST_PHS_R,
-MULTICAST_PVS_R
-} multicast_t;
-
-
-/*
-==============================================================
-
-MATHLIB
-
-==============================================================
-*/
-
-typedef float vec_t;
-typedef vec_t vec3_t[3];
-typedef vec_t vec5_t[5];
-
-typedef	int	fixed4_t;
-typedef	int	fixed8_t;
-typedef	int	fixed16_t;
-
-#ifndef M_PI
-#define M_PI		3.14159265358979323846	// matches value in gcc v2 math.h
-#endif
-
-struct cplane_s;
-
-extern vec3_t vec3_origin;
-
-#define	nanmask (255<<23)
-
-#define	IS_NAN(x) (((*(int *)&x)&nanmask)==nanmask)
-
-// microsoft's fabs seems to be ungodly slow...
-//float Q_fabs (float f);
-//#define	fabs(f) Q_fabs(f)
-#if !defined C_ONLY && !defined __linux__ && !defined __sgi
-extern long Q_ftol( float f );
-#else
-#define Q_ftol( f ) ( long ) (f)
-#endif
-
-#define DotProduct(x,y)			(x[0]*y[0]+x[1]*y[1]+x[2]*y[2])
-#define VectorSubtract(a,b,c)	(c[0]=a[0]-b[0],c[1]=a[1]-b[1],c[2]=a[2]-b[2])
-#define VectorAdd(a,b,c)		(c[0]=a[0]+b[0],c[1]=a[1]+b[1],c[2]=a[2]+b[2])
-#define VectorCopy(a,b)			(b[0]=a[0],b[1]=a[1],b[2]=a[2])
-#define VectorClear(a)			(a[0]=a[1]=a[2]=0)
-#define VectorNegate(a,b)		(b[0]=-a[0],b[1]=-a[1],b[2]=-a[2])
-#define VectorSet(v, x, y, z)	(v[0]=(x), v[1]=(y), v[2]=(z))
-
-void VectorMA (vec3_t veca, float scale, vec3_t vecb, vec3_t vecc);
-
-// just in case you do't want to use the macros
-vec_t _DotProduct (vec3_t v1, vec3_t v2);
-void _VectorSubtract (vec3_t veca, vec3_t vecb, vec3_t out);
-void _VectorAdd (vec3_t veca, vec3_t vecb, vec3_t out);
-void _VectorCopy (vec3_t in, vec3_t out);
-
-void ClearBounds (vec3_t mins, vec3_t maxs);
-void AddPointToBounds (vec3_t v, vec3_t mins, vec3_t maxs);
-int VectorCompare (vec3_t v1, vec3_t v2);
-vec_t VectorLength (vec3_t v);
-void CrossProduct (vec3_t v1, vec3_t v2, vec3_t cross);
-vec_t VectorNormalize (vec3_t v);		// returns vector length
-vec_t VectorNormalize2 (vec3_t v, vec3_t out);
-void VectorInverse (vec3_t v);
-void VectorScale (vec3_t in, vec_t scale, vec3_t out);
-int Q_log2(int val);
-
-void R_ConcatRotations (float in1[3][3], float in2[3][3], float out[3][3]);
-void R_ConcatTransforms (float in1[3][4], float in2[3][4], float out[3][4]);
-
-void AngleVectors (vec3_t angles, vec3_t forward, vec3_t right, vec3_t up);
-int BoxOnPlaneSide (vec3_t emins, vec3_t emaxs, struct cplane_s *plane);
-float	anglemod(float a);
-float LerpAngle (float a1, float a2, float frac);
-
-#define BOX_ON_PLANE_SIDE(emins, emaxs, p)	\
-	(((p)->type < 3)?						\
-	(										\
-		((p)->dist <= (emins)[(p)->type])?	\
-			1								\
-		:									\
-		(									\
-			((p)->dist >= (emaxs)[(p)->type])?\
-				2							\
-			:								\
-				3							\
-		)									\
-	)										\
-	:										\
-		BoxOnPlaneSide( (emins), (emaxs), (p)))
-
-void ProjectPointOnPlane( vec3_t dst, const vec3_t p, const vec3_t normal );
-void PerpendicularVector( vec3_t dst, const vec3_t src );
-void RotatePointAroundVector( vec3_t dst, const vec3_t dir, const vec3_t point, float degrees );
-
-
-//=============================================
-
-char *COM_SkipPath (char *pathname);
-void COM_StripExtension (char *in, char *out);
-void COM_FileBase (char *in, char *out);
-void COM_FilePath (char *in, char *out);
-void COM_DefaultExtension (char *path, char *extension);
-
-char *COM_Parse (char **data_p);
-// data is an in/out parm, returns a parsed out token
-
-void Com_sprintf (char *dest, int size, char *fmt, ...);
-
-void Com_PageInMemory (byte *buffer, int size);
-
-//=============================================
-
-// portable case insensitive compare
-int Q_stricmp (char *s1, char *s2);
-int Q_strcasecmp (char *s1, char *s2);
-int Q_strncasecmp (char *s1, char *s2, int n);
-
-//=============================================
-
-short	BigShort(short l);
-short	LittleShort(short l);
-int		BigLong (int l);
-int		LittleLong (int l);
-float	BigFloat (float l);
-float	LittleFloat (float l);
-
-void	Swap_Init (void);
-char	*va(char *format, ...);
-
-//=============================================
-
-//
-// key / value info strings
-//
-#define	MAX_INFO_KEY		64
-#define	MAX_INFO_VALUE		64
-#define	MAX_INFO_STRING		512
-
-char *Info_ValueForKey (char *s, char *key);
-void Info_RemoveKey (char *s, char *key);
-void Info_SetValueForKey (char *s, char *key, char *value);
-qboolean Info_Validate (char *s);
-
-/*
-==============================================================
-
-SYSTEM SPECIFIC
-
-==============================================================
-*/
-
-extern	int	curtime;		// time returned by last Sys_Milliseconds
-
-int		Sys_Milliseconds (void);
-void	Sys_Mkdir (char *path);
-
-// large block stack allocation routines
-void	*Hunk_Begin (int maxsize);
-void	*Hunk_Alloc (int size);
-void	Hunk_Free (void *buf);
-int		Hunk_End (void);
-
-// directory searching
-#define SFF_ARCH    0x01
-#define SFF_HIDDEN  0x02
-#define SFF_RDONLY  0x04
-#define SFF_SUBDIR  0x08
-#define SFF_SYSTEM  0x10
-
-/*
-** pass in an attribute mask of things you wish to REJECT
-*/
-char	*Sys_FindFirst (char *path, unsigned musthave, unsigned canthave );
-char	*Sys_FindNext ( unsigned musthave, unsigned canthave );
-void	Sys_FindClose (void);
-
-
-// this is only here so the functions in q_shared.c and q_shwin.c can link
-void Sys_Error (char *error, ...);
-void Com_Printf (char *msg, ...);
-
-
-/*
-==========================================================
-
-CVARS (console variables)
-
-==========================================================
-*/
-
-#ifndef CVAR
-#define	CVAR
-
-#define	CVAR_ARCHIVE	1	// set to cause it to be saved to vars.rc
-#define	CVAR_USERINFO	2	// added to userinfo  when changed
-#define	CVAR_SERVERINFO	4	// added to serverinfo when changed
-#define	CVAR_NOSET		8	// don't allow change from console at all,
-							// but can be set from the command line
-#define	CVAR_LATCH		16	// save changes until server restart
-
-// nothing outside the Cvar_*() functions should modify these fields!
-typedef struct cvar_s
-{
-	char		*name;
-	char		*string;
-	char		*latched_string;	// for CVAR_LATCH vars
-	int			flags;
-	qboolean	modified;	// set each time the cvar is changed
-	float		value;
-	struct cvar_s *next;
-} cvar_t;
-
-#endif		// CVAR
-
-/*
-==============================================================
-
-COLLISION DETECTION
-
-==============================================================
-*/
-
-// lower bits are stronger, and will eat weaker brushes completely
-#define	CONTENTS_SOLID			1		// an eye is never valid in a solid
-#define	CONTENTS_WINDOW			2		// translucent, but not watery
-#define	CONTENTS_AUX			4
-#define	CONTENTS_LAVA			8
-#define	CONTENTS_SLIME			16
-#define	CONTENTS_WATER			32
-#define	CONTENTS_MIST			64
-#define	LAST_VISIBLE_CONTENTS	64
-
-// remaining contents are non-visible, and don't eat brushes
-
-#define	CONTENTS_AREAPORTAL		0x8000
-
-#define	CONTENTS_PLAYERCLIP		0x10000
-#define	CONTENTS_MONSTERCLIP	0x20000
-
-// currents can be added to any other contents, and may be mixed
-#define	CONTENTS_CURRENT_0		0x40000
-#define	CONTENTS_CURRENT_90		0x80000
-#define	CONTENTS_CURRENT_180	0x100000
-#define	CONTENTS_CURRENT_270	0x200000
-#define	CONTENTS_CURRENT_UP		0x400000
-#define	CONTENTS_CURRENT_DOWN	0x800000
-
-#define	CONTENTS_ORIGIN			0x1000000	// removed before bsping an entity
-
-#define	CONTENTS_MONSTER		0x2000000	// should never be on a brush, only in game
-#define	CONTENTS_DEADMONSTER	0x4000000
-#define	CONTENTS_DETAIL			0x8000000	// brushes to be added after vis leafs
-#define	CONTENTS_TRANSLUCENT	0x10000000	// auto set if any surface has trans
-#define	CONTENTS_LADDER			0x20000000
-
-
-
-#define	SURF_LIGHT		0x1		// value will hold the light strength
-
-#define	SURF_SLICK		0x2		// effects game physics
-
-#define	SURF_SKY		0x4		// don't draw, but add to skybox
-#define	SURF_WARP		0x8		// turbulent water warp
-#define	SURF_TRANS33	0x10
-#define	SURF_TRANS66	0x20
-#define	SURF_FLOWING	0x40	// scroll towards angle
-#define	SURF_NODRAW		0x80	// don't bother referencing the texture
-
-
-
-// content masks
-#define	MASK_ALL				(-1)
-#define	MASK_SOLID				(CONTENTS_SOLID|CONTENTS_WINDOW)
-#define	MASK_PLAYERSOLID		(CONTENTS_SOLID|CONTENTS_PLAYERCLIP|CONTENTS_WINDOW|CONTENTS_MONSTER)
-#define	MASK_DEADSOLID			(CONTENTS_SOLID|CONTENTS_PLAYERCLIP|CONTENTS_WINDOW)
-#define	MASK_MONSTERSOLID		(CONTENTS_SOLID|CONTENTS_MONSTERCLIP|CONTENTS_WINDOW|CONTENTS_MONSTER)
-#define	MASK_WATER				(CONTENTS_WATER|CONTENTS_LAVA|CONTENTS_SLIME)
-#define	MASK_OPAQUE				(CONTENTS_SOLID|CONTENTS_SLIME|CONTENTS_LAVA)
-#define	MASK_SHOT				(CONTENTS_SOLID|CONTENTS_MONSTER|CONTENTS_WINDOW|CONTENTS_DEADMONSTER)
-#define MASK_CURRENT			(CONTENTS_CURRENT_0|CONTENTS_CURRENT_90|CONTENTS_CURRENT_180|CONTENTS_CURRENT_270|CONTENTS_CURRENT_UP|CONTENTS_CURRENT_DOWN)
-
-
-// gi.BoxEdicts() can return a list of either solid or trigger entities
-// FIXME: eliminate AREA_ distinction?
-#define	AREA_SOLID		1
-#define	AREA_TRIGGERS	2
-
-
-// plane_t structure
-// !!! if this is changed, it must be changed in asm code too !!!
-typedef struct cplane_s
-{
-	vec3_t	normal;
-	float	dist;
-	byte	type;			// for fast side tests
-	byte	signbits;		// signx + (signy<<1) + (signz<<1)
-	byte	pad[2];
-} cplane_t;
-
-// structure offset for asm code
-#define CPLANE_NORMAL_X			0
-#define CPLANE_NORMAL_Y			4
-#define CPLANE_NORMAL_Z			8
-#define CPLANE_DIST				12
-#define CPLANE_TYPE				16
-#define CPLANE_SIGNBITS			17
-#define CPLANE_PAD0				18
-#define CPLANE_PAD1				19
-
-typedef struct cmodel_s
-{
-	vec3_t		mins, maxs;
-	vec3_t		origin;		// for sounds or lights
-	int			headnode;
-} cmodel_t;
-
-typedef struct csurface_s
-{
-	char		name[16];
-	int			flags;
-	int			value;
-} csurface_t;
-
-typedef struct mapsurface_s  // used internally due to name len probs //ZOID
-{
-	csurface_t	c;
-	char		rname[32];
-} mapsurface_t;
-
-// a trace is returned when a box is swept through the world
-typedef struct
-{
-	qboolean	allsolid;	// if true, plane is not valid
-	qboolean	startsolid;	// if true, the initial point was in a solid area
-	float		fraction;	// time completed, 1.0 = didn't hit anything
-	vec3_t		endpos;		// final position
-	cplane_t	plane;		// surface normal at impact
-	csurface_t	*surface;	// surface hit
-	int			contents;	// contents on other side of surface hit
-	struct edict_s	*ent;		// not set by CM_*() functions
-} trace_t;
-
-
-
-// pmove_state_t is the information necessary for client side movement
-// prediction
-typedef enum 
-{
-	// can accelerate and turn
-	PM_NORMAL,
-	PM_SPECTATOR,
-	// no acceleration or turning
-	PM_DEAD,
-	PM_GIB,		// different bounding box
-	PM_FREEZE
-} pmtype_t;
-
-// pmove->pm_flags
-#define	PMF_DUCKED			1
-#define	PMF_JUMP_HELD		2
-#define	PMF_ON_GROUND		4
-#define	PMF_TIME_WATERJUMP	8	// pm_time is waterjump
-#define	PMF_TIME_LAND		16	// pm_time is time before rejump
-#define	PMF_TIME_TELEPORT	32	// pm_time is non-moving time
-#define PMF_NO_PREDICTION	64	// temporarily disables prediction (used for grappling hook)
-
-// this structure needs to be communicated bit-accurate
-// from the server to the client to guarantee that
-// prediction stays in sync, so no floats are used.
-// if any part of the game code modifies this struct, it
-// will result in a prediction error of some degree.
-typedef struct
-{
-	pmtype_t	pm_type;
-
-	short		origin[3];		// 12.3
-	short		velocity[3];	// 12.3
-	byte		pm_flags;		// ducked, jump_held, etc
-	byte		pm_time;		// each unit = 8 ms
-	short		gravity;
-	short		delta_angles[3];	// add to command angles to get view direction
-									// changed by spawns, rotating objects, and teleporters
-} pmove_state_t;
-
-
-//
-// button bits
-//
-#define	BUTTON_ATTACK		1
-#define	BUTTON_USE			2
-#define	BUTTON_ANY			128			// any key whatsoever
-
-
-// usercmd_t is sent to the server each client frame
-typedef struct usercmd_s
-{
-	byte	msec;
-	byte	buttons;
-	short	angles[3];
-	short	forwardmove, sidemove, upmove;
-	byte	impulse;		// remove?
-	byte	lightlevel;		// light level the player is standing on
-} usercmd_t;
-
-
-#define	MAXTOUCH	32
-typedef struct
-{
-	// state (in / out)
-	pmove_state_t	s;
-
-	// command (in)
-	usercmd_t		cmd;
-	qboolean		snapinitial;	// if s has been changed outside pmove
-
-	// results (out)
-	int			numtouch;
-	struct edict_s	*touchents[MAXTOUCH];
-
-	vec3_t		viewangles;			// clamped
-	float		viewheight;
-
-	vec3_t		mins, maxs;			// bounding box size
-
-	struct edict_s	*groundentity;
-	int			watertype;
-	int			waterlevel;
-
-	// callbacks to test the world
-	trace_t		(*trace) (vec3_t start, vec3_t mins, vec3_t maxs, vec3_t end);
-	int			(*pointcontents) (vec3_t point);
-} pmove_t;
-
-
-// entity_state_t->effects
-// Effects are things handled on the client side (lights, particles, frame animations)
-// that happen constantly on the given entity.
-// An entity that has effects will be sent to the client
-// even if it has a zero index model.
-#define	EF_ROTATE			0x00000001		// rotate (bonus items)
-#define	EF_GIB				0x00000002		// leave a trail
-#define	EF_BLASTER			0x00000008		// redlight + trail
-#define	EF_ROCKET			0x00000010		// redlight + trail
-#define	EF_GRENADE			0x00000020
-#define	EF_HYPERBLASTER		0x00000040
-#define	EF_BFG				0x00000080
-#define EF_COLOR_SHELL		0x00000100
-#define EF_POWERSCREEN		0x00000200
-#define	EF_ANIM01			0x00000400		// automatically cycle between frames 0 and 1 at 2 hz
-#define	EF_ANIM23			0x00000800		// automatically cycle between frames 2 and 3 at 2 hz
-#define EF_ANIM_ALL			0x00001000		// automatically cycle through all frames at 2hz
-#define EF_ANIM_ALLFAST		0x00002000		// automatically cycle through all frames at 10hz
-#define	EF_FLIES			0x00004000
-#define	EF_QUAD				0x00008000
-#define	EF_PENT				0x00010000
-#define	EF_TELEPORTER		0x00020000		// particle fountain
-#define EF_FLAG1			0x00040000
-#define EF_FLAG2			0x00080000
-// RAFAEL
-#define EF_IONRIPPER		0x00100000
-#define EF_GREENGIB			0x00200000
-#define	EF_BLUEHYPERBLASTER 0x00400000
-#define EF_SPINNINGLIGHTS	0x00800000
-#define EF_PLASMA			0x01000000
-#define EF_TRAP				0x02000000
-
-//ROGUE
-#define EF_TRACKER			0x04000000
-#define	EF_DOUBLE			0x08000000
-#define	EF_SPHERETRANS		0x10000000
-#define EF_TAGTRAIL			0x20000000
-#define EF_HALF_DAMAGE		0x40000000
-#define EF_TRACKERTRAIL		0x80000000
-//ROGUE
-
-// entity_state_t->renderfx flags
-#define	RF_MINLIGHT			1		// allways have some light (viewmodel)
-#define	RF_VIEWERMODEL		2		// don't draw through eyes, only mirrors
-#define	RF_WEAPONMODEL		4		// only draw through eyes
-#define	RF_FULLBRIGHT		8		// allways draw full intensity
-#define	RF_DEPTHHACK		16		// for view weapon Z crunching
-#define	RF_TRANSLUCENT		32
-#define	RF_FRAMELERP		64
-#define RF_BEAM				128
-#define	RF_CUSTOMSKIN		256		// skin is an index in image_precache
-#define	RF_GLOW				512		// pulse lighting for bonus items
-#define RF_SHELL_RED		1024
-#define	RF_SHELL_GREEN		2048
-#define RF_SHELL_BLUE		4096
-
-//ROGUE
-#define RF_IR_VISIBLE		0x00008000		// 32768
-#define	RF_SHELL_DOUBLE		0x00010000		// 65536
-#define	RF_SHELL_HALF_DAM	0x00020000
-#define RF_USE_DISGUISE		0x00040000
-//ROGUE
-
-// player_state_t->refdef flags
-#define	RDF_UNDERWATER		1		// warp the screen as apropriate
-#define RDF_NOWORLDMODEL	2		// used for player configuration screen
-
-//ROGUE
-#define	RDF_IRGOGGLES		4
-#define RDF_UVGOGGLES		8
-//ROGUE
-
-//
-// muzzle flashes / player effects
-//
-#define	MZ_BLASTER			0
-#define MZ_MACHINEGUN		1
-#define	MZ_SHOTGUN			2
-#define	MZ_CHAINGUN1		3
-#define	MZ_CHAINGUN2		4
-#define	MZ_CHAINGUN3		5
-#define	MZ_RAILGUN			6
-#define	MZ_ROCKET			7
-#define	MZ_GRENADE			8
-#define	MZ_LOGIN			9
-#define	MZ_LOGOUT			10
-#define	MZ_RESPAWN			11
-#define	MZ_BFG				12
-#define	MZ_SSHOTGUN			13
-#define	MZ_HYPERBLASTER		14
-#define	MZ_ITEMRESPAWN		15
-// RAFAEL
-#define MZ_IONRIPPER		16
-#define MZ_BLUEHYPERBLASTER 17
-#define MZ_PHALANX			18
-#define MZ_SILENCED			128		// bit flag ORed with one of the above numbers
-
-//ROGUE
-#define MZ_ETF_RIFLE		30
-#define MZ_UNUSED			31
-#define MZ_SHOTGUN2			32
-#define MZ_HEATBEAM			33
-#define MZ_BLASTER2			34
-#define	MZ_TRACKER			35
-#define	MZ_NUKE1			36
-#define	MZ_NUKE2			37
-#define	MZ_NUKE4			38
-#define	MZ_NUKE8			39
-//ROGUE
-
-//
-// monster muzzle flashes
-//
-#define MZ2_TANK_BLASTER_1				1
-#define MZ2_TANK_BLASTER_2				2
-#define MZ2_TANK_BLASTER_3				3
-#define MZ2_TANK_MACHINEGUN_1			4
-#define MZ2_TANK_MACHINEGUN_2			5
-#define MZ2_TANK_MACHINEGUN_3			6
-#define MZ2_TANK_MACHINEGUN_4			7
-#define MZ2_TANK_MACHINEGUN_5			8
-#define MZ2_TANK_MACHINEGUN_6			9
-#define MZ2_TANK_MACHINEGUN_7			10
-#define MZ2_TANK_MACHINEGUN_8			11
-#define MZ2_TANK_MACHINEGUN_9			12
-#define MZ2_TANK_MACHINEGUN_10			13
-#define MZ2_TANK_MACHINEGUN_11			14
-#define MZ2_TANK_MACHINEGUN_12			15
-#define MZ2_TANK_MACHINEGUN_13			16
-#define MZ2_TANK_MACHINEGUN_14			17
-#define MZ2_TANK_MACHINEGUN_15			18
-#define MZ2_TANK_MACHINEGUN_16			19
-#define MZ2_TANK_MACHINEGUN_17			20
-#define MZ2_TANK_MACHINEGUN_18			21
-#define MZ2_TANK_MACHINEGUN_19			22
-#define MZ2_TANK_ROCKET_1				23
-#define MZ2_TANK_ROCKET_2				24
-#define MZ2_TANK_ROCKET_3				25
-
-#define MZ2_INFANTRY_MACHINEGUN_1		26
-#define MZ2_INFANTRY_MACHINEGUN_2		27
-#define MZ2_INFANTRY_MACHINEGUN_3		28
-#define MZ2_INFANTRY_MACHINEGUN_4		29
-#define MZ2_INFANTRY_MACHINEGUN_5		30
-#define MZ2_INFANTRY_MACHINEGUN_6		31
-#define MZ2_INFANTRY_MACHINEGUN_7		32
-#define MZ2_INFANTRY_MACHINEGUN_8		33
-#define MZ2_INFANTRY_MACHINEGUN_9		34
-#define MZ2_INFANTRY_MACHINEGUN_10		35
-#define MZ2_INFANTRY_MACHINEGUN_11		36
-#define MZ2_INFANTRY_MACHINEGUN_12		37
-#define MZ2_INFANTRY_MACHINEGUN_13		38
-
-#define MZ2_SOLDIER_BLASTER_1			39
-#define MZ2_SOLDIER_BLASTER_2			40
-#define MZ2_SOLDIER_SHOTGUN_1			41
-#define MZ2_SOLDIER_SHOTGUN_2			42
-#define MZ2_SOLDIER_MACHINEGUN_1		43
-#define MZ2_SOLDIER_MACHINEGUN_2		44
-
-#define MZ2_GUNNER_MACHINEGUN_1			45
-#define MZ2_GUNNER_MACHINEGUN_2			46
-#define MZ2_GUNNER_MACHINEGUN_3			47
-#define MZ2_GUNNER_MACHINEGUN_4			48
-#define MZ2_GUNNER_MACHINEGUN_5			49
-#define MZ2_GUNNER_MACHINEGUN_6			50
-#define MZ2_GUNNER_MACHINEGUN_7			51
-#define MZ2_GUNNER_MACHINEGUN_8			52
-#define MZ2_GUNNER_GRENADE_1			53
-#define MZ2_GUNNER_GRENADE_2			54
-#define MZ2_GUNNER_GRENADE_3			55
-#define MZ2_GUNNER_GRENADE_4			56
-
-#define MZ2_CHICK_ROCKET_1				57
-
-#define MZ2_FLYER_BLASTER_1				58
-#define MZ2_FLYER_BLASTER_2				59
-
-#define MZ2_MEDIC_BLASTER_1				60
-
-#define MZ2_GLADIATOR_RAILGUN_1			61
-
-#define MZ2_HOVER_BLASTER_1				62
-
-#define MZ2_ACTOR_MACHINEGUN_1			63
-
-#define MZ2_SUPERTANK_MACHINEGUN_1		64
-#define MZ2_SUPERTANK_MACHINEGUN_2		65
-#define MZ2_SUPERTANK_MACHINEGUN_3		66
-#define MZ2_SUPERTANK_MACHINEGUN_4		67
-#define MZ2_SUPERTANK_MACHINEGUN_5		68
-#define MZ2_SUPERTANK_MACHINEGUN_6		69
-#define MZ2_SUPERTANK_ROCKET_1			70
-#define MZ2_SUPERTANK_ROCKET_2			71
-#define MZ2_SUPERTANK_ROCKET_3			72
-
-#define MZ2_BOSS2_MACHINEGUN_L1			73
-#define MZ2_BOSS2_MACHINEGUN_L2			74
-#define MZ2_BOSS2_MACHINEGUN_L3			75
-#define MZ2_BOSS2_MACHINEGUN_L4			76
-#define MZ2_BOSS2_MACHINEGUN_L5			77
-#define MZ2_BOSS2_ROCKET_1				78
-#define MZ2_BOSS2_ROCKET_2				79
-#define MZ2_BOSS2_ROCKET_3				80
-#define MZ2_BOSS2_ROCKET_4				81
-
-#define MZ2_FLOAT_BLASTER_1				82
-
-#define MZ2_SOLDIER_BLASTER_3			83
-#define MZ2_SOLDIER_SHOTGUN_3			84
-#define MZ2_SOLDIER_MACHINEGUN_3		85
-#define MZ2_SOLDIER_BLASTER_4			86
-#define MZ2_SOLDIER_SHOTGUN_4			87
-#define MZ2_SOLDIER_MACHINEGUN_4		88
-#define MZ2_SOLDIER_BLASTER_5			89
-#define MZ2_SOLDIER_SHOTGUN_5			90
-#define MZ2_SOLDIER_MACHINEGUN_5		91
-#define MZ2_SOLDIER_BLASTER_6			92
-#define MZ2_SOLDIER_SHOTGUN_6			93
-#define MZ2_SOLDIER_MACHINEGUN_6		94
-#define MZ2_SOLDIER_BLASTER_7			95
-#define MZ2_SOLDIER_SHOTGUN_7			96
-#define MZ2_SOLDIER_MACHINEGUN_7		97
-#define MZ2_SOLDIER_BLASTER_8			98
-#define MZ2_SOLDIER_SHOTGUN_8			99
-#define MZ2_SOLDIER_MACHINEGUN_8		100
-
-// --- Xian shit below ---
-#define	MZ2_MAKRON_BFG					101
-#define MZ2_MAKRON_BLASTER_1			102
-#define MZ2_MAKRON_BLASTER_2			103
-#define MZ2_MAKRON_BLASTER_3			104
-#define MZ2_MAKRON_BLASTER_4			105
-#define MZ2_MAKRON_BLASTER_5			106
-#define MZ2_MAKRON_BLASTER_6			107
-#define MZ2_MAKRON_BLASTER_7			108
-#define MZ2_MAKRON_BLASTER_8			109
-#define MZ2_MAKRON_BLASTER_9			110
-#define MZ2_MAKRON_BLASTER_10			111
-#define MZ2_MAKRON_BLASTER_11			112
-#define MZ2_MAKRON_BLASTER_12			113
-#define MZ2_MAKRON_BLASTER_13			114
-#define MZ2_MAKRON_BLASTER_14			115
-#define MZ2_MAKRON_BLASTER_15			116
-#define MZ2_MAKRON_BLASTER_16			117
-#define MZ2_MAKRON_BLASTER_17			118
-#define MZ2_MAKRON_RAILGUN_1			119
-#define	MZ2_JORG_MACHINEGUN_L1			120
-#define	MZ2_JORG_MACHINEGUN_L2			121
-#define	MZ2_JORG_MACHINEGUN_L3			122
-#define	MZ2_JORG_MACHINEGUN_L4			123
-#define	MZ2_JORG_MACHINEGUN_L5			124
-#define	MZ2_JORG_MACHINEGUN_L6			125
-#define	MZ2_JORG_MACHINEGUN_R1			126
-#define	MZ2_JORG_MACHINEGUN_R2			127
-#define	MZ2_JORG_MACHINEGUN_R3			128
-#define	MZ2_JORG_MACHINEGUN_R4			129
-#define MZ2_JORG_MACHINEGUN_R5			130
-#define	MZ2_JORG_MACHINEGUN_R6			131
-#define MZ2_JORG_BFG_1					132
-#define MZ2_BOSS2_MACHINEGUN_R1			133
-#define MZ2_BOSS2_MACHINEGUN_R2			134
-#define MZ2_BOSS2_MACHINEGUN_R3			135
-#define MZ2_BOSS2_MACHINEGUN_R4			136
-#define MZ2_BOSS2_MACHINEGUN_R5			137
-
-//ROGUE
-#define	MZ2_CARRIER_MACHINEGUN_L1		138
-#define	MZ2_CARRIER_MACHINEGUN_R1		139
-#define	MZ2_CARRIER_GRENADE				140
-#define MZ2_TURRET_MACHINEGUN			141
-#define MZ2_TURRET_ROCKET				142
-#define MZ2_TURRET_BLASTER				143
-#define MZ2_STALKER_BLASTER				144
-#define MZ2_DAEDALUS_BLASTER			145
-#define MZ2_MEDIC_BLASTER_2				146
-#define	MZ2_CARRIER_RAILGUN				147
-#define	MZ2_WIDOW_DISRUPTOR				148
-#define	MZ2_WIDOW_BLASTER				149
-#define	MZ2_WIDOW_RAIL					150
-#define	MZ2_WIDOW_PLASMABEAM			151		// PMM - not used
-#define	MZ2_CARRIER_MACHINEGUN_L2		152
-#define	MZ2_CARRIER_MACHINEGUN_R2		153
-#define	MZ2_WIDOW_RAIL_LEFT				154
-#define	MZ2_WIDOW_RAIL_RIGHT			155
-#define	MZ2_WIDOW_BLASTER_SWEEP1		156
-#define	MZ2_WIDOW_BLASTER_SWEEP2		157
-#define	MZ2_WIDOW_BLASTER_SWEEP3		158
-#define	MZ2_WIDOW_BLASTER_SWEEP4		159
-#define	MZ2_WIDOW_BLASTER_SWEEP5		160
-#define	MZ2_WIDOW_BLASTER_SWEEP6		161
-#define	MZ2_WIDOW_BLASTER_SWEEP7		162
-#define	MZ2_WIDOW_BLASTER_SWEEP8		163
-#define	MZ2_WIDOW_BLASTER_SWEEP9		164
-#define	MZ2_WIDOW_BLASTER_100			165
-#define	MZ2_WIDOW_BLASTER_90			166
-#define	MZ2_WIDOW_BLASTER_80			167
-#define	MZ2_WIDOW_BLASTER_70			168
-#define	MZ2_WIDOW_BLASTER_60			169
-#define	MZ2_WIDOW_BLASTER_50			170
-#define	MZ2_WIDOW_BLASTER_40			171
-#define	MZ2_WIDOW_BLASTER_30			172
-#define	MZ2_WIDOW_BLASTER_20			173
-#define	MZ2_WIDOW_BLASTER_10			174
-#define	MZ2_WIDOW_BLASTER_0				175
-#define	MZ2_WIDOW_BLASTER_10L			176
-#define	MZ2_WIDOW_BLASTER_20L			177
-#define	MZ2_WIDOW_BLASTER_30L			178
-#define	MZ2_WIDOW_BLASTER_40L			179
-#define	MZ2_WIDOW_BLASTER_50L			180
-#define	MZ2_WIDOW_BLASTER_60L			181
-#define	MZ2_WIDOW_BLASTER_70L			182
-#define	MZ2_WIDOW_RUN_1					183
-#define	MZ2_WIDOW_RUN_2					184
-#define	MZ2_WIDOW_RUN_3					185
-#define	MZ2_WIDOW_RUN_4					186
-#define	MZ2_WIDOW_RUN_5					187
-#define	MZ2_WIDOW_RUN_6					188
-#define	MZ2_WIDOW_RUN_7					189
-#define	MZ2_WIDOW_RUN_8					190
-#define	MZ2_CARRIER_ROCKET_1			191
-#define	MZ2_CARRIER_ROCKET_2			192
-#define	MZ2_CARRIER_ROCKET_3			193
-#define	MZ2_CARRIER_ROCKET_4			194
-#define	MZ2_WIDOW2_BEAMER_1				195
-#define	MZ2_WIDOW2_BEAMER_2				196
-#define	MZ2_WIDOW2_BEAMER_3				197
-#define	MZ2_WIDOW2_BEAMER_4				198
-#define	MZ2_WIDOW2_BEAMER_5				199
-#define	MZ2_WIDOW2_BEAM_SWEEP_1			200
-#define	MZ2_WIDOW2_BEAM_SWEEP_2			201
-#define	MZ2_WIDOW2_BEAM_SWEEP_3			202
-#define	MZ2_WIDOW2_BEAM_SWEEP_4			203
-#define	MZ2_WIDOW2_BEAM_SWEEP_5			204
-#define	MZ2_WIDOW2_BEAM_SWEEP_6			205
-#define	MZ2_WIDOW2_BEAM_SWEEP_7			206
-#define	MZ2_WIDOW2_BEAM_SWEEP_8			207
-#define	MZ2_WIDOW2_BEAM_SWEEP_9			208
-#define	MZ2_WIDOW2_BEAM_SWEEP_10		209
-#define	MZ2_WIDOW2_BEAM_SWEEP_11		210
-
-// ROGUE
-
-extern	vec3_t monster_flash_offset [];
-
-
-// temp entity events
-//
-// Temp entity events are for things that happen
-// at a location seperate from any existing entity.
-// Temporary entity messages are explicitly constructed
-// and broadcast.
-typedef enum
-{
-	TE_GUNSHOT,
-	TE_BLOOD,
-	TE_BLASTER,
-	TE_RAILTRAIL,
-	TE_SHOTGUN,
-	TE_EXPLOSION1,
-	TE_EXPLOSION2,
-	TE_ROCKET_EXPLOSION,
-	TE_GRENADE_EXPLOSION,
-	TE_SPARKS,
-	TE_SPLASH,
-	TE_BUBBLETRAIL,
-	TE_SCREEN_SPARKS,
-	TE_SHIELD_SPARKS,
-	TE_BULLET_SPARKS,
-	TE_LASER_SPARKS,
-	TE_PARASITE_ATTACK,
-	TE_ROCKET_EXPLOSION_WATER,
-	TE_GRENADE_EXPLOSION_WATER,
-	TE_MEDIC_CABLE_ATTACK,
-	TE_BFG_EXPLOSION,
-	TE_BFG_BIGEXPLOSION,
-	TE_BOSSTPORT,			// used as '22' in a map, so DON'T RENUMBER!!!
-	TE_BFG_LASER,
-	TE_GRAPPLE_CABLE,
-	TE_WELDING_SPARKS,
-	TE_GREENBLOOD,
-	TE_BLUEHYPERBLASTER,
-	TE_PLASMA_EXPLOSION,
-	TE_TUNNEL_SPARKS,
-//ROGUE
-	TE_BLASTER2,
-	TE_RAILTRAIL2,
-	TE_FLAME,
-	TE_LIGHTNING,
-	TE_DEBUGTRAIL,
-	TE_PLAIN_EXPLOSION,
-	TE_FLASHLIGHT,
-	TE_FORCEWALL,
-	TE_HEATBEAM,
-	TE_MONSTER_HEATBEAM,
-	TE_STEAM,
-	TE_BUBBLETRAIL2,
-	TE_MOREBLOOD,
-	TE_HEATBEAM_SPARKS,
-	TE_HEATBEAM_STEAM,
-	TE_CHAINFIST_SMOKE,
-	TE_ELECTRIC_SPARKS,
-	TE_TRACKER_EXPLOSION,
-	TE_TELEPORT_EFFECT,
-	TE_DBALL_GOAL,
-	TE_WIDOWBEAMOUT,
-	TE_NUKEBLAST,
-	TE_WIDOWSPLASH,
-	TE_EXPLOSION1_BIG,
-	TE_EXPLOSION1_NP,
-	TE_FLECHETTE
-//ROGUE
-} temp_event_t;
-
-#define SPLASH_UNKNOWN		0
-#define SPLASH_SPARKS		1
-#define SPLASH_BLUE_WATER	2
-#define SPLASH_BROWN_WATER	3
-#define SPLASH_SLIME		4
-#define	SPLASH_LAVA			5
-#define SPLASH_BLOOD		6
-
-
-// sound channels
-// channel 0 never willingly overrides
-// other channels (1-7) allways override a playing sound on that channel
-#define	CHAN_AUTO               0
-#define	CHAN_WEAPON             1
-#define	CHAN_VOICE              2
-#define	CHAN_ITEM               3
-#define	CHAN_BODY               4
-// modifier flags
-#define	CHAN_NO_PHS_ADD			8	// send to all clients, not just ones in PHS (ATTN 0 will also do this)
-#define	CHAN_RELIABLE			16	// send by reliable message, not datagram
-
-
-// sound attenuation values
-#define	ATTN_NONE               0	// full volume the entire level
-#define	ATTN_NORM               1
-#define	ATTN_IDLE               2
-#define	ATTN_STATIC             3	// diminish very rapidly with distance
-
-
-// player_state->stats[] indexes
-#define STAT_HEALTH_ICON		0
-#define	STAT_HEALTH				1
-#define	STAT_AMMO_ICON			2
-#define	STAT_AMMO				3
-#define	STAT_ARMOR_ICON			4
-#define	STAT_ARMOR				5
-#define	STAT_SELECTED_ICON		6
-#define	STAT_PICKUP_ICON		7
-#define	STAT_PICKUP_STRING		8
-#define	STAT_TIMER_ICON			9
-#define	STAT_TIMER				10
-#define	STAT_HELPICON			11
-#define	STAT_SELECTED_ITEM		12
-#define	STAT_LAYOUTS			13
-#define	STAT_FRAGS				14
-#define	STAT_FLASHES			15		// cleared each frame, 1 = health, 2 = armor
-#define STAT_CHASE				16
-#define STAT_SPECTATOR			17
-
-#define	MAX_STATS				32
-
-
-// dmflags->value flags
-#define	DF_NO_HEALTH		0x00000001	// 1
-#define	DF_NO_ITEMS			0x00000002	// 2
-#define	DF_WEAPONS_STAY		0x00000004	// 4
-#define	DF_NO_FALLING		0x00000008	// 8
-#define	DF_INSTANT_ITEMS	0x00000010	// 16
-#define	DF_SAME_LEVEL		0x00000020	// 32
-#define DF_SKINTEAMS		0x00000040	// 64
-#define DF_MODELTEAMS		0x00000080	// 128
-#define DF_NO_FRIENDLY_FIRE	0x00000100	// 256
-#define	DF_SPAWN_FARTHEST	0x00000200	// 512
-#define DF_FORCE_RESPAWN	0x00000400	// 1024
-#define DF_NO_ARMOR			0x00000800	// 2048
-#define DF_ALLOW_EXIT		0x00001000	// 4096
-#define DF_INFINITE_AMMO	0x00002000	// 8192
-#define DF_QUAD_DROP		0x00004000	// 16384
-#define DF_FIXED_FOV		0x00008000	// 32768
-
-// RAFAEL
-#define	DF_QUADFIRE_DROP	0x00010000	// 65536
-
-//ROGUE
-#define DF_NO_MINES			0x00020000
-#define DF_NO_STACK_DOUBLE	0x00040000
-#define DF_NO_NUKES			0x00080000
-#define DF_NO_SPHERES		0x00100000
-//ROGUE
-
-/*
-ROGUE - VERSIONS
-1234	08/13/1998		Activision
-1235	08/14/1998		Id Software
-1236	08/15/1998		Steve Tietze
-1237	08/15/1998		Phil Dobranski
-1238	08/15/1998		John Sheley
-1239	08/17/1998		Barrett Alexander
-1230	08/17/1998		Brandon Fish
-1245	08/17/1998		Don MacAskill
-1246	08/17/1998		David "Zoid" Kirsch
-1247	08/17/1998		Manu Smith
-1248	08/17/1998		Geoff Scully
-1249	08/17/1998		Andy Van Fossen
-1240	08/20/1998		Activision Build 2
-1256	08/20/1998		Ranger Clan
-1257	08/20/1998		Ensemble Studios
-1258	08/21/1998		Robert Duffy
-1259	08/21/1998		Stephen Seachord
-1250	08/21/1998		Stephen Heaslip
-1267	08/21/1998		Samir Sandesara
-1268	08/21/1998		Oliver Wyman
-1269	08/21/1998		Steven Marchegiano
-1260	08/21/1998		Build #2 for Nihilistic
-1278	08/21/1998		Build #2 for Ensemble
-
-9999	08/20/1998		Internal Use
-*/
-#define ROGUE_VERSION_ID		1278
-
-#define ROGUE_VERSION_STRING	"08/21/1998 Beta 2 for Ensemble"
-
-// ROGUE
-/*
-==========================================================
-
-  ELEMENTS COMMUNICATED ACROSS THE NET
-
-==========================================================
-*/
-
-#define	ANGLE2SHORT(x)	((int)((x)*65536/360) & 65535)
-#define	SHORT2ANGLE(x)	((x)*(360.0/65536))
-
-
-//
-// config strings are a general means of communication from
-// the server to all connected clients.
-// Each config string can be at most MAX_QPATH characters.
-//
-#define	CS_NAME				0
-#define	CS_CDTRACK			1
-#define	CS_SKY				2
-#define	CS_SKYAXIS			3		// %f %f %f format
-#define	CS_SKYROTATE		4
-#define	CS_STATUSBAR		5		// display program string
-
-#define CS_AIRACCEL			29		// air acceleration control
-#define	CS_MAXCLIENTS		30
-#define	CS_MAPCHECKSUM		31		// for catching cheater maps
-
-#define	CS_MODELS			32
-#define	CS_SOUNDS			(CS_MODELS+MAX_MODELS)
-#define	CS_IMAGES			(CS_SOUNDS+MAX_SOUNDS)
-#define	CS_LIGHTS			(CS_IMAGES+MAX_IMAGES)
-#define	CS_ITEMS			(CS_LIGHTS+MAX_LIGHTSTYLES)
-#define	CS_PLAYERSKINS		(CS_ITEMS+MAX_ITEMS)
-#define CS_GENERAL			(CS_PLAYERSKINS+MAX_CLIENTS)
-#define	MAX_CONFIGSTRINGS	(CS_GENERAL+MAX_GENERAL)
-
-
-//==============================================
-
-
-// entity_state_t->event values
-// ertity events are for effects that take place reletive
-// to an existing entities origin.  Very network efficient.
-// All muzzle flashes really should be converted to events...
-typedef enum
-{
-	EV_NONE,
-	EV_ITEM_RESPAWN,
-	EV_FOOTSTEP,
-	EV_FALLSHORT,
-	EV_FALL,
-	EV_FALLFAR,
-	EV_PLAYER_TELEPORT,
-	EV_OTHER_TELEPORT
-} entity_event_t;
-
-
-// entity_state_t is the information conveyed from the server
-// in an update message about entities that the client will
-// need to render in some way
-typedef struct entity_state_s
-{
-	int		number;			// edict index
-
-	vec3_t	origin;
-	vec3_t	angles;
-	vec3_t	old_origin;		// for lerping
-	int		modelindex;
-	int		modelindex2, modelindex3, modelindex4;	// weapons, CTF flags, etc
-	int		frame;
-	int		skinnum;
-	unsigned int		effects;		// PGM - we're filling it, so it needs to be unsigned
-	int		renderfx;
-	int		solid;			// for client side prediction, 8*(bits 0-4) is x/y radius
-							// 8*(bits 5-9) is z down distance, 8(bits10-15) is z up
-							// gi.linkentity sets this properly
-	int		sound;			// for looping sounds, to guarantee shutoff
-	int		event;			// impulse events -- muzzle flashes, footsteps, etc
-							// events only go out for a single frame, they
-							// are automatically cleared each frame
-} entity_state_t;
-
-//==============================================
-
-
-// player_state_t is the information needed in addition to pmove_state_t
-// to rendered a view.  There will only be 10 player_state_t sent each second,
-// but the number of pmove_state_t changes will be reletive to client
-// frame rates
-typedef struct
-{
-	pmove_state_t	pmove;		// for prediction
-
-	// these fields do not need to be communicated bit-precise
-
-	vec3_t		viewangles;		// for fixed views
-	vec3_t		viewoffset;		// add to pmovestate->origin
-	vec3_t		kick_angles;	// add to view direction to get render angles
-								// set by weapon kicks, pain effects, etc
-
-	vec3_t		gunangles;
-	vec3_t		gunoffset;
-	int			gunindex;
-	int			gunframe;
-
-	float		blend[4];		// rgba full screen effect
-	
-	float		fov;			// horizontal field of view
-
-	int			rdflags;		// refdef flags
-
-	short		stats[MAX_STATS];		// fast status bar updates
-} player_state_t;
-
-
-// ==================
-// PGM 
-#define VIDREF_GL		1
-#define VIDREF_SOFT		2
-#define VIDREF_OTHER	3
-
-extern int vidref_val;
-// PGM
-// ==================
--- a/game/g_local.h
+++ b/game/g_local.h
@@ -19,7 +19,7 @@
 */
 // g_local.h -- local definitions for game module
 
-#include "q_shared.h"
+#include "../q_shared.h"
 
 // define GAME_INCLUDE so that game.h does not define the
 // short, server-visible gclient_t and edict_t structures,
--- a/game/game.001
+++ /dev/null
@@ -1,1619 +1,0 @@
-# Microsoft Developer Studio Project File - Name="game" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 5.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-# TARGTYPE "Win32 (ALPHA) Dynamic-Link Library" 0x0602
-
-CFG=game - Win32 Debug Alpha
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE 
-!MESSAGE NMAKE /f "game.mak".
-!MESSAGE 
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE 
-!MESSAGE NMAKE /f "game.mak" CFG="game - Win32 Debug Alpha"
-!MESSAGE 
-!MESSAGE Possible choices for configuration are:
-!MESSAGE 
-!MESSAGE "game - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "game - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "game - Win32 Debug Alpha" (based on\
- "Win32 (ALPHA) Dynamic-Link Library")
-!MESSAGE "game - Win32 Release Alpha" (based on\
- "Win32 (ALPHA) Dynamic-Link Library")
-!MESSAGE 
-
-# Begin Project
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir ".\Release"
-# PROP BASE Intermediate_Dir ".\Release"
-# PROP BASE Target_Dir "."
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "..\release"
-# PROP Intermediate_Dir ".\release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir "."
-CPP=cl.exe
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /c
-# ADD CPP /nologo /G5 /MT /W4 /GX /Zd /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
-MTL=midl.exe
-# ADD BASE MTL /nologo /D "NDEBUG" /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-RSC=rc.exe
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386
-# ADD LINK32 kernel32.lib user32.lib winmm.lib /nologo /base:"0x20000000" /subsystem:windows /dll /machine:I386 /out:"..\release\gamex86.dll"
-# SUBTRACT LINK32 /incremental:yes /debug
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir ".\Debug"
-# PROP BASE Intermediate_Dir ".\Debug"
-# PROP BASE Target_Dir "."
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "..\debug"
-# PROP Intermediate_Dir ".\debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir "."
-CPP=cl.exe
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c
-# ADD CPP /nologo /G5 /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "BUILDING_REF_GL" /FR /YX /FD /c
-MTL=midl.exe
-# ADD BASE MTL /nologo /D "_DEBUG" /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-RSC=rc.exe
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386
-# ADD LINK32 kernel32.lib user32.lib winmm.lib /nologo /base:"0x20000000" /subsystem:windows /dll /incremental:no /map /debug /machine:I386 /out:"..\debug\gamex86.dll"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug Alpha"
-# PROP BASE Intermediate_Dir "Debug Alpha"
-# PROP BASE Ignore_Export_Lib 0
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "..\DebugAxp"
-# PROP Intermediate_Dir ".\DebugAxp"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-MTL=midl.exe
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32
-CPP=cl.exe
-# ADD BASE CPP /nologo /MTd /Gt0 /W3 /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /QA21164 /MTd /Gt0 /W3 /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "C_ONLY" /YX /FD /c
-RSC=rc.exe
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /base:"0x20000000" /subsystem:windows /dll /debug /machine:ALPHA
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /base:"0x20000000" /subsystem:windows /dll /debug /machine:ALPHA /out:"..\DebugAxp/gameaxp.dll"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "game___W"
-# PROP BASE Intermediate_Dir "game___W"
-# PROP BASE Ignore_Export_Lib 0
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "..\ReleaseAXP"
-# PROP Intermediate_Dir ".\ReleaseAXP"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-MTL=midl.exe
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o NUL /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o NUL /win32
-CPP=cl.exe
-# ADD BASE CPP /nologo /MT /Gt0 /W3 /GX /Zd /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /QA21164 /MT /Gt0 /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "C_ONLY" /YX /FD /c
-# SUBTRACT CPP /Z<none> /Fr
-RSC=rc.exe
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /base:"0x20000000" /subsystem:windows /dll /machine:ALPHA /out:"..\Release/gamex86.dll"
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib /nologo /base:"0x20000000" /subsystem:windows /dll /machine:ALPHA /out:"..\ReleaseAXP/gameaxp.dll"
-# SUBTRACT LINK32 /debug
-
-!ENDIF 
-
-# Begin Target
-
-# Name "game - Win32 Release"
-# Name "game - Win32 Debug"
-# Name "game - Win32 Debug Alpha"
-# Name "game - Win32 Release Alpha"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90"
-# Begin Source File
-
-SOURCE=.\g_ai.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_G_AI_=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_G_AI_=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_chase.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_G_CHA=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_G_CHA=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_cmds.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_G_CMD=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_player.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_G_CMD=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_player.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_combat.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_G_COM=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_G_COM=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_func.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_G_FUN=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_G_FUN=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_items.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_G_ITE=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_G_ITE=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_main.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_G_MAI=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_G_MAI=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_misc.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_G_MIS=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_G_MIS=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_monster.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_G_MON=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_G_MON=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_phys.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_G_PHY=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_G_PHY=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_save.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_G_SAV=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_G_SAV=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_spawn.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_G_SPA=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_G_SPA=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_svcmds.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_G_SVC=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_G_SVC=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_target.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_G_TAR=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_G_TAR=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_trigger.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_G_TRI=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_G_TRI=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_turret.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_G_TUR=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_G_TUR=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_utils.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_G_UTI=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_G_UTI=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_weapon.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_G_WEA=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_G_WEA=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_actor.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_M_ACT=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_actor.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_M_ACT=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_actor.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_berserk.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_M_BER=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_berserk.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_M_BER=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_berserk.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_boss2.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_M_BOS=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_boss2.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_M_BOS=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_boss2.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_boss3.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_M_BOSS=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_boss32.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_M_BOSS=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_boss32.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_boss31.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_M_BOSS3=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_boss31.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_M_BOSS3=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_boss31.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_boss32.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_M_BOSS32=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_boss32.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_M_BOSS32=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_boss32.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_brain.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_M_BRA=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_brain.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_M_BRA=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_brain.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_chick.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_M_CHI=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_chick.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_M_CHI=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_chick.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_flash.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_M_FLA=\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_M_FLA=\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_flipper.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_M_FLI=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_flipper.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_M_FLI=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_flipper.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_float.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_M_FLO=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_float.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_M_FLO=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_float.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_flyer.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_M_FLY=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_flyer.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_M_FLY=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_flyer.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_gladiator.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_M_GLA=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_gladiator.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_M_GLA=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_gladiator.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_gunner.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_M_GUN=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_gunner.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_M_GUN=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_gunner.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_hover.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_M_HOV=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_hover.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_M_HOV=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_hover.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_infantry.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_M_INF=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_infantry.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_M_INF=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_infantry.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_insane.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_M_INS=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_insane.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_M_INS=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_insane.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_medic.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_M_MED=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_medic.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_M_MED=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_medic.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_move.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_M_MOV=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_M_MOV=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_mutant.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_M_MUT=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_mutant.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_M_MUT=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_mutant.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_parasite.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_M_PAR=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_parasite.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_M_PAR=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_parasite.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_soldier.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_M_SOL=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_soldier.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_M_SOL=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_soldier.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_supertank.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_M_SUP=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_supertank.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_M_SUP=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_supertank.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_tank.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_M_TAN=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_tank.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_M_TAN=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_tank.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\p_client.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_P_CLI=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_player.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_P_CLI=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_player.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\p_hud.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_P_HUD=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_P_HUD=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\p_trail.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_P_TRA=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_P_TRA=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\p_view.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_P_VIE=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_player.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_P_VIE=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_player.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\p_weapon.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_P_WEA=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_player.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_P_WEA=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_player.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\q_shared.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_Q_SHA=\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_Q_SHA=\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl;fi;fd"
-# Begin Source File
-
-SOURCE=.\g_local.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\game.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_actor.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_berserk.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_boss2.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_boss31.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_boss32.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_brain.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_chick.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_flipper.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_float.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_flyer.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_gladiator.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_gunner.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_hover.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_infantry.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_insane.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_medic.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_mutant.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_parasite.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_player.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_soldier.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_supertank.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_tank.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\q_shared.h
-# End Source File
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe"
-# Begin Source File
-
-SOURCE=.\game.def
-# End Source File
-# End Group
-# End Target
-# End Project
--- a/game/game.def
+++ /dev/null
@@ -1,2 +1,0 @@
-EXPORTS
-	GetGameAPI
--- a/game/game.dsp
+++ /dev/null
@@ -1,1618 +1,0 @@
-# Microsoft Developer Studio Project File - Name="game" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-# TARGTYPE "Win32 (ALPHA) Dynamic-Link Library" 0x0602
-
-CFG=game - Win32 Debug Alpha
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE 
-!MESSAGE NMAKE /f "game.mak".
-!MESSAGE 
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE 
-!MESSAGE NMAKE /f "game.mak" CFG="game - Win32 Debug Alpha"
-!MESSAGE 
-!MESSAGE Possible choices for configuration are:
-!MESSAGE 
-!MESSAGE "game - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "game - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "game - Win32 Debug Alpha" (based on "Win32 (ALPHA) Dynamic-Link Library")
-!MESSAGE "game - Win32 Release Alpha" (based on "Win32 (ALPHA) Dynamic-Link Library")
-!MESSAGE 
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir ".\Release"
-# PROP BASE Intermediate_Dir ".\Release"
-# PROP BASE Target_Dir "."
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "..\release"
-# PROP Intermediate_Dir ".\release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir "."
-CPP=cl.exe
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /c
-# ADD CPP /nologo /G5 /MT /W4 /GX /Zd /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
-MTL=midl.exe
-# ADD BASE MTL /nologo /D "NDEBUG" /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-RSC=rc.exe
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386
-# ADD LINK32 kernel32.lib user32.lib winmm.lib /nologo /base:"0x20000000" /subsystem:windows /dll /machine:I386 /out:"..\release\gamex86.dll"
-# SUBTRACT LINK32 /incremental:yes /debug
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir ".\Debug"
-# PROP BASE Intermediate_Dir ".\Debug"
-# PROP BASE Target_Dir "."
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "..\debug"
-# PROP Intermediate_Dir ".\debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir "."
-CPP=cl.exe
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c
-# ADD CPP /nologo /G5 /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "BUILDING_REF_GL" /FR /YX /FD /c
-MTL=midl.exe
-# ADD BASE MTL /nologo /D "_DEBUG" /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-RSC=rc.exe
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386
-# ADD LINK32 kernel32.lib user32.lib winmm.lib /nologo /base:"0x20000000" /subsystem:windows /dll /incremental:no /map /debug /machine:I386 /out:"..\debug\gamex86.dll"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug Alpha"
-# PROP BASE Intermediate_Dir "Debug Alpha"
-# PROP BASE Ignore_Export_Lib 0
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "..\DebugAxp"
-# PROP Intermediate_Dir ".\DebugAxp"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-CPP=cl.exe
-# ADD BASE CPP /nologo /MTd /Gt0 /W3 /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /QA21164 /MTd /Gt0 /W3 /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "C_ONLY" /YX /FD /c
-MTL=midl.exe
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
-RSC=rc.exe
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /base:"0x20000000" /subsystem:windows /dll /debug /machine:ALPHA
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /base:"0x20000000" /subsystem:windows /dll /debug /machine:ALPHA /out:"..\DebugAxp/gameaxp.dll"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "game___W"
-# PROP BASE Intermediate_Dir "game___W"
-# PROP BASE Ignore_Export_Lib 0
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "..\ReleaseAXP"
-# PROP Intermediate_Dir ".\ReleaseAXP"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-CPP=cl.exe
-# ADD BASE CPP /nologo /MT /Gt0 /W3 /GX /Zd /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /QA21164 /MT /Gt0 /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "C_ONLY" /YX /FD /c
-# SUBTRACT CPP /Z<none> /Fr
-MTL=midl.exe
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
-RSC=rc.exe
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /base:"0x20000000" /subsystem:windows /dll /machine:ALPHA /out:"..\Release/gamex86.dll"
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib /nologo /base:"0x20000000" /subsystem:windows /dll /machine:ALPHA /out:"..\ReleaseAXP/gameaxp.dll"
-# SUBTRACT LINK32 /debug
-
-!ENDIF 
-
-# Begin Target
-
-# Name "game - Win32 Release"
-# Name "game - Win32 Debug"
-# Name "game - Win32 Debug Alpha"
-# Name "game - Win32 Release Alpha"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90"
-# Begin Source File
-
-SOURCE=.\g_ai.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_G_AI_=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_G_AI_=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_chase.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_G_CHA=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_G_CHA=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_cmds.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_G_CMD=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_player.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_G_CMD=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_player.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_combat.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_G_COM=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_G_COM=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_func.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_G_FUN=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_G_FUN=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_items.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_G_ITE=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_G_ITE=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_main.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_G_MAI=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_G_MAI=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_misc.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_G_MIS=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_G_MIS=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_monster.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_G_MON=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_G_MON=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_phys.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_G_PHY=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_G_PHY=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_save.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_G_SAV=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_G_SAV=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_spawn.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_G_SPA=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_G_SPA=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_svcmds.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_G_SVC=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_G_SVC=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_target.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_G_TAR=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_G_TAR=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_trigger.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_G_TRI=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_G_TRI=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_turret.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_G_TUR=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_G_TUR=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_utils.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_G_UTI=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_G_UTI=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\g_weapon.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_G_WEA=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_G_WEA=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_actor.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_M_ACT=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_actor.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_M_ACT=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_actor.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_berserk.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_M_BER=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_berserk.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_M_BER=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_berserk.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_boss2.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_M_BOS=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_boss2.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_M_BOS=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_boss2.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_boss3.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_M_BOSS=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_boss32.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_M_BOSS=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_boss32.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_boss31.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_M_BOSS3=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_boss31.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_M_BOSS3=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_boss31.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_boss32.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_M_BOSS32=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_boss32.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_M_BOSS32=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_boss32.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_brain.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_M_BRA=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_brain.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_M_BRA=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_brain.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_chick.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_M_CHI=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_chick.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_M_CHI=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_chick.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_flash.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_M_FLA=\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_M_FLA=\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_flipper.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_M_FLI=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_flipper.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_M_FLI=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_flipper.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_float.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_M_FLO=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_float.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_M_FLO=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_float.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_flyer.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_M_FLY=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_flyer.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_M_FLY=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_flyer.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_gladiator.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_M_GLA=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_gladiator.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_M_GLA=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_gladiator.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_gunner.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_M_GUN=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_gunner.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_M_GUN=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_gunner.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_hover.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_M_HOV=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_hover.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_M_HOV=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_hover.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_infantry.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_M_INF=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_infantry.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_M_INF=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_infantry.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_insane.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_M_INS=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_insane.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_M_INS=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_insane.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_medic.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_M_MED=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_medic.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_M_MED=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_medic.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_move.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_M_MOV=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_M_MOV=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_mutant.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_M_MUT=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_mutant.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_M_MUT=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_mutant.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_parasite.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_M_PAR=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_parasite.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_M_PAR=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_parasite.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_soldier.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_M_SOL=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_soldier.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_M_SOL=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_soldier.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_supertank.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_M_SUP=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_supertank.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_M_SUP=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_supertank.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_tank.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_M_TAN=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_tank.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_M_TAN=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_tank.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\p_client.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_P_CLI=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_player.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_P_CLI=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_player.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\p_hud.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_P_HUD=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_P_HUD=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\p_trail.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_P_TRA=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_P_TRA=\
-	".\g_local.h"\
-	".\game.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\p_view.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_P_VIE=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_player.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_P_VIE=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_player.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\p_weapon.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_P_WEA=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_player.h"\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_P_WEA=\
-	".\g_local.h"\
-	".\game.h"\
-	".\m_player.h"\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\q_shared.c
-
-!IF  "$(CFG)" == "game - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "game - Win32 Debug Alpha"
-
-DEP_CPP_Q_SHA=\
-	".\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "game - Win32 Release Alpha"
-
-DEP_CPP_Q_SHA=\
-	".\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl;fi;fd"
-# Begin Source File
-
-SOURCE=.\g_local.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\game.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_actor.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_berserk.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_boss2.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_boss31.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_boss32.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_brain.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_chick.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_flipper.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_float.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_flyer.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_gladiator.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_gunner.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_hover.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_infantry.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_insane.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_medic.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_mutant.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_parasite.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_player.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_soldier.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_supertank.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_tank.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\q_shared.h
-# End Source File
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe"
-# Begin Source File
-
-SOURCE=.\game.def
-# End Source File
-# End Group
-# End Target
-# End Project
--- a/game/game.plg
+++ /dev/null
@@ -1,75 +1,0 @@
---------------------Configuration: game - Win32 Release Alpha--------------------
-Begining build with project "G:\quake2\code\game\game.dsp", at root.
-Active configuration is Win32 (ALPHA) Dynamic-Link Library (based on Win32 (ALPHA) Dynamic-Link Library)
-
-Project's tools are:
-			"OLE Type Library Maker" with flags "/nologo /D "NDEBUG" /mktyplib203 /o NUL /win32 "
-			"C/C++ Compiler for Alpha" with flags "/nologo /QA21164 /MT /Gt0 /W3 /GX /Zi /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "C_ONLY" /Fp".\ReleaseAXP/game.pch" /YX /Fo".\ReleaseAXP/" /Fd".\ReleaseAXP/" /FD /c "
-			"Win32 Resource Compiler" with flags "/l 0x409 /d "NDEBUG" "
-			"Browser Database Maker" with flags "/nologo /o"..\ReleaseAXP/game.bsc" "
-			"COFF Linker for Alpha" with flags "kernel32.lib user32.lib gdi32.lib /nologo /base:"0x20000000" /subsystem:windows /dll /incremental:no /pdb:"..\ReleaseAXP/gameaxp.pdb" /debug /machine:ALPHA /def:".\game.def" /out:"..\ReleaseAXP/gameaxp.dll" /implib:"..\ReleaseAXP/gameaxp.lib" "
-			"Custom Build" with flags ""
-			"<Component 0xa>" with flags ""
-
-Creating temp file "C:\TEMP\RSPA6.tmp" with contents </nologo /QA21164 /MT /Gt0 /W3 /GX /Zi /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "C_ONLY" /Fp".\ReleaseAXP/game.pch" /YX /Fo".\ReleaseAXP/" /Fd".\ReleaseAXP/"  /c 
-"G:\quake2\code\game\p_weapon.c"
->
-Creating command line "cl.exe @C:\TEMP\RSPA6.tmp" 
-Creating temp file "C:\TEMP\RSPA7.tmp" with contents <kernel32.lib user32.lib gdi32.lib /nologo /base:"0x20000000" /subsystem:windows /dll /incremental:no /pdb:"..\ReleaseAXP/gameaxp.pdb" /debug /machine:ALPHA /def:".\game.def" /out:"..\ReleaseAXP/gameaxp.dll" /implib:"..\ReleaseAXP/gameaxp.lib" 
-.\ReleaseAXP\g_ai.obj
-.\ReleaseAXP\g_chase.obj
-.\ReleaseAXP\g_cmds.obj
-.\ReleaseAXP\g_combat.obj
-.\ReleaseAXP\g_func.obj
-.\ReleaseAXP\g_items.obj
-.\ReleaseAXP\g_main.obj
-.\ReleaseAXP\g_misc.obj
-.\ReleaseAXP\g_monster.obj
-.\ReleaseAXP\g_phys.obj
-.\ReleaseAXP\g_save.obj
-.\ReleaseAXP\g_spawn.obj
-.\ReleaseAXP\g_svcmds.obj
-.\ReleaseAXP\g_target.obj
-.\ReleaseAXP\g_trigger.obj
-.\ReleaseAXP\g_turret.obj
-.\ReleaseAXP\g_utils.obj
-.\ReleaseAXP\g_weapon.obj
-.\ReleaseAXP\m_actor.obj
-.\ReleaseAXP\m_berserk.obj
-.\ReleaseAXP\m_boss2.obj
-.\ReleaseAXP\m_boss3.obj
-.\ReleaseAXP\m_boss31.obj
-.\ReleaseAXP\m_boss32.obj
-.\ReleaseAXP\m_brain.obj
-.\ReleaseAXP\m_chick.obj
-.\ReleaseAXP\m_flash.obj
-.\ReleaseAXP\m_flipper.obj
-.\ReleaseAXP\m_float.obj
-.\ReleaseAXP\m_flyer.obj
-.\ReleaseAXP\m_gladiator.obj
-.\ReleaseAXP\m_gunner.obj
-.\ReleaseAXP\m_hover.obj
-.\ReleaseAXP\m_infantry.obj
-.\ReleaseAXP\m_insane.obj
-.\ReleaseAXP\m_medic.obj
-.\ReleaseAXP\m_move.obj
-.\ReleaseAXP\m_mutant.obj
-.\ReleaseAXP\m_parasite.obj
-.\ReleaseAXP\m_soldier.obj
-.\ReleaseAXP\m_supertank.obj
-.\ReleaseAXP\m_tank.obj
-.\ReleaseAXP\p_client.obj
-.\ReleaseAXP\p_hud.obj
-.\ReleaseAXP\p_trail.obj
-.\ReleaseAXP\p_view.obj
-.\ReleaseAXP\p_weapon.obj
-.\ReleaseAXP\q_shared.obj>
-Creating command line "link.exe @C:\TEMP\RSPA7.tmp" 
-Compiling...
-p_weapon.c
-Linking...
-   Creating library ..\ReleaseAXP/gameaxp.lib and object ..\ReleaseAXP/gameaxp.exp
-
-
-
-gameaxp.dll - 0 error(s), 0 warning(s)
--- a/game/m_flash.c
+++ b/game/m_flash.c
@@ -19,7 +19,7 @@
 */
 // m_flash.c
 
-#include "q_shared.h"
+#include "../q_shared.h"
 
 // this file is included in both the game dll and quake2,
 // the game needs it to source shot locations, the client
--- a/game/q_shared.c
+++ b/game/q_shared.c
@@ -17,7 +17,7 @@
 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 
 */
-#include "q_shared.h"
+#include "../q_shared.h"
 
 #define DEG2RAD( a ) ( a * M_PI ) / 180.0F
 
--- a/game/q_shared.h
+++ /dev/null
@@ -1,1200 +1,0 @@
-/*
-Copyright (C) 1997-2001 Id Software, Inc.
-
-This program is free software; you can redistribute it and/or
-modify it under the terms of the GNU General Public License
-as published by the Free Software Foundation; either version 2
-of the License, or (at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
-
-See the GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
-
-*/
-	
-// q_shared.h -- included first by ALL program modules
-
-#ifdef _WIN32
-// unknown pragmas are SUPPOSED to be ignored, but....
-#pragma warning(disable : 4244)     // MIPS
-#pragma warning(disable : 4136)     // X86
-#pragma warning(disable : 4051)     // ALPHA
-
-#pragma warning(disable : 4018)     // signed/unsigned mismatch
-#pragma warning(disable : 4305)		// truncation from const double to float
-
-#endif
-
-#include <assert.h>
-#include <math.h>
-#include <stdio.h>
-#include <stdarg.h>
-#include <string.h>
-#include <stdlib.h>
-#include <time.h>
-
-#if (defined _M_IX86 || defined __i386__) && !defined C_ONLY && !defined __sun__
-#define id386	1
-#else
-#define id386	0
-#endif
-
-#if defined _M_ALPHA && !defined C_ONLY
-#define idaxp	1
-#else
-#define idaxp	0
-#endif
-
-typedef unsigned char 		byte;
-typedef enum {false, true}	qboolean;
-
-
-#ifndef NULL
-#define NULL ((void *)0)
-#endif
-
-
-// angle indexes
-#define	PITCH				0		// up / down
-#define	YAW					1		// left / right
-#define	ROLL				2		// fall over
-
-#define	MAX_STRING_CHARS	1024	// max length of a string passed to Cmd_TokenizeString
-#define	MAX_STRING_TOKENS	80		// max tokens resulting from Cmd_TokenizeString
-#define	MAX_TOKEN_CHARS		128		// max length of an individual token
-
-#define	MAX_QPATH			64		// max length of a quake game pathname
-#define	MAX_OSPATH			128		// max length of a filesystem pathname
-
-//
-// per-level limits
-//
-#define	MAX_CLIENTS			256		// absolute limit
-#define	MAX_EDICTS			1024	// must change protocol to increase more
-#define	MAX_LIGHTSTYLES		256
-#define	MAX_MODELS			256		// these are sent over the net as bytes
-#define	MAX_SOUNDS			256		// so they cannot be blindly increased
-#define	MAX_IMAGES			256
-#define	MAX_ITEMS			256
-#define MAX_GENERAL			(MAX_CLIENTS*2)	// general config strings
-
-
-// game print flags
-#define	PRINT_LOW			0		// pickup messages
-#define	PRINT_MEDIUM		1		// death messages
-#define	PRINT_HIGH			2		// critical messages
-#define	PRINT_CHAT			3		// chat messages
-
-
-
-#define	ERR_FATAL			0		// exit the entire game with a popup window
-#define	ERR_DROP			1		// print to console and disconnect from game
-#define	ERR_DISCONNECT		2		// don't kill server
-
-#define	PRINT_ALL			0
-#define PRINT_DEVELOPER		1		// only print when "developer 1"
-#define PRINT_ALERT			2		
-
-
-// destination class for gi.multicast()
-typedef enum
-{
-MULTICAST_ALL,
-MULTICAST_PHS,
-MULTICAST_PVS,
-MULTICAST_ALL_R,
-MULTICAST_PHS_R,
-MULTICAST_PVS_R
-} multicast_t;
-
-
-/*
-==============================================================
-
-MATHLIB
-
-==============================================================
-*/
-
-typedef float vec_t;
-typedef vec_t vec3_t[3];
-typedef vec_t vec5_t[5];
-
-typedef	int	fixed4_t;
-typedef	int	fixed8_t;
-typedef	int	fixed16_t;
-
-#ifndef M_PI
-#define M_PI		3.14159265358979323846	// matches value in gcc v2 math.h
-#endif
-
-struct cplane_s;
-
-extern vec3_t vec3_origin;
-
-#define	nanmask (255<<23)
-
-#define	IS_NAN(x) (((*(int *)&x)&nanmask)==nanmask)
-
-// microsoft's fabs seems to be ungodly slow...
-//float Q_fabs (float f);
-//#define	fabs(f) Q_fabs(f)
-#if !defined C_ONLY && !defined __linux__ && !defined __sgi
-extern long Q_ftol( float f );
-#else
-#define Q_ftol( f ) ( long ) (f)
-#endif
-
-#define DotProduct(x,y)			(x[0]*y[0]+x[1]*y[1]+x[2]*y[2])
-#define VectorSubtract(a,b,c)	(c[0]=a[0]-b[0],c[1]=a[1]-b[1],c[2]=a[2]-b[2])
-#define VectorAdd(a,b,c)		(c[0]=a[0]+b[0],c[1]=a[1]+b[1],c[2]=a[2]+b[2])
-#define VectorCopy(a,b)			(b[0]=a[0],b[1]=a[1],b[2]=a[2])
-#define VectorClear(a)			(a[0]=a[1]=a[2]=0)
-#define VectorNegate(a,b)		(b[0]=-a[0],b[1]=-a[1],b[2]=-a[2])
-#define VectorSet(v, x, y, z)	(v[0]=(x), v[1]=(y), v[2]=(z))
-
-void VectorMA (vec3_t veca, float scale, vec3_t vecb, vec3_t vecc);
-
-// just in case you do't want to use the macros
-vec_t _DotProduct (vec3_t v1, vec3_t v2);
-void _VectorSubtract (vec3_t veca, vec3_t vecb, vec3_t out);
-void _VectorAdd (vec3_t veca, vec3_t vecb, vec3_t out);
-void _VectorCopy (vec3_t in, vec3_t out);
-
-void ClearBounds (vec3_t mins, vec3_t maxs);
-void AddPointToBounds (vec3_t v, vec3_t mins, vec3_t maxs);
-int VectorCompare (vec3_t v1, vec3_t v2);
-vec_t VectorLength (vec3_t v);
-void CrossProduct (vec3_t v1, vec3_t v2, vec3_t cross);
-vec_t VectorNormalize (vec3_t v);		// returns vector length
-vec_t VectorNormalize2 (vec3_t v, vec3_t out);
-void VectorInverse (vec3_t v);
-void VectorScale (vec3_t in, vec_t scale, vec3_t out);
-int Q_log2(int val);
-
-void R_ConcatRotations (float in1[3][3], float in2[3][3], float out[3][3]);
-void R_ConcatTransforms (float in1[3][4], float in2[3][4], float out[3][4]);
-
-void AngleVectors (vec3_t angles, vec3_t forward, vec3_t right, vec3_t up);
-int BoxOnPlaneSide (vec3_t emins, vec3_t emaxs, struct cplane_s *plane);
-float	anglemod(float a);
-float LerpAngle (float a1, float a2, float frac);
-
-#define BOX_ON_PLANE_SIDE(emins, emaxs, p)	\
-	(((p)->type < 3)?						\
-	(										\
-		((p)->dist <= (emins)[(p)->type])?	\
-			1								\
-		:									\
-		(									\
-			((p)->dist >= (emaxs)[(p)->type])?\
-				2							\
-			:								\
-				3							\
-		)									\
-	)										\
-	:										\
-		BoxOnPlaneSide( (emins), (emaxs), (p)))
-
-void ProjectPointOnPlane( vec3_t dst, const vec3_t p, const vec3_t normal );
-void PerpendicularVector( vec3_t dst, const vec3_t src );
-void RotatePointAroundVector( vec3_t dst, const vec3_t dir, const vec3_t point, float degrees );
-
-
-//=============================================
-
-char *COM_SkipPath (char *pathname);
-void COM_StripExtension (char *in, char *out);
-void COM_FileBase (char *in, char *out);
-void COM_FilePath (char *in, char *out);
-void COM_DefaultExtension (char *path, char *extension);
-
-char *COM_Parse (char **data_p);
-// data is an in/out parm, returns a parsed out token
-
-void Com_sprintf (char *dest, int size, char *fmt, ...);
-
-void Com_PageInMemory (byte *buffer, int size);
-
-//=============================================
-
-// portable case insensitive compare
-int Q_stricmp (char *s1, char *s2);
-int Q_strcasecmp (char *s1, char *s2);
-int Q_strncasecmp (char *s1, char *s2, int n);
-
-//=============================================
-
-short	BigShort(short l);
-short	LittleShort(short l);
-int		BigLong (int l);
-int		LittleLong (int l);
-float	BigFloat (float l);
-float	LittleFloat (float l);
-
-void	Swap_Init (void);
-char	*va(char *format, ...);
-
-//=============================================
-
-//
-// key / value info strings
-//
-#define	MAX_INFO_KEY		64
-#define	MAX_INFO_VALUE		64
-#define	MAX_INFO_STRING		512
-
-char *Info_ValueForKey (char *s, char *key);
-void Info_RemoveKey (char *s, char *key);
-void Info_SetValueForKey (char *s, char *key, char *value);
-qboolean Info_Validate (char *s);
-
-/*
-==============================================================
-
-SYSTEM SPECIFIC
-
-==============================================================
-*/
-
-extern	int	curtime;		// time returned by last Sys_Milliseconds
-
-int		Sys_Milliseconds (void);
-void	Sys_Mkdir (char *path);
-
-// large block stack allocation routines
-void	*Hunk_Begin (int maxsize);
-void	*Hunk_Alloc (int size);
-void	Hunk_Free (void *buf);
-int		Hunk_End (void);
-
-// directory searching
-#define SFF_ARCH    0x01
-#define SFF_HIDDEN  0x02
-#define SFF_RDONLY  0x04
-#define SFF_SUBDIR  0x08
-#define SFF_SYSTEM  0x10
-
-/*
-** pass in an attribute mask of things you wish to REJECT
-*/
-char	*Sys_FindFirst (char *path, unsigned musthave, unsigned canthave );
-char	*Sys_FindNext ( unsigned musthave, unsigned canthave );
-void	Sys_FindClose (void);
-
-
-// this is only here so the functions in q_shared.c and q_shwin.c can link
-void Sys_Error (char *error, ...);
-void Com_Printf (char *msg, ...);
-
-
-/*
-==========================================================
-
-CVARS (console variables)
-
-==========================================================
-*/
-
-#ifndef CVAR
-#define	CVAR
-
-#define	CVAR_ARCHIVE	1	// set to cause it to be saved to vars.rc
-#define	CVAR_USERINFO	2	// added to userinfo  when changed
-#define	CVAR_SERVERINFO	4	// added to serverinfo when changed
-#define	CVAR_NOSET		8	// don't allow change from console at all,
-							// but can be set from the command line
-#define	CVAR_LATCH		16	// save changes until server restart
-
-// nothing outside the Cvar_*() functions should modify these fields!
-typedef struct cvar_s
-{
-	char		*name;
-	char		*string;
-	char		*latched_string;	// for CVAR_LATCH vars
-	int			flags;
-	qboolean	modified;	// set each time the cvar is changed
-	float		value;
-	struct cvar_s *next;
-} cvar_t;
-
-#endif		// CVAR
-
-/*
-==============================================================
-
-COLLISION DETECTION
-
-==============================================================
-*/
-
-// lower bits are stronger, and will eat weaker brushes completely
-#define	CONTENTS_SOLID			1		// an eye is never valid in a solid
-#define	CONTENTS_WINDOW			2		// translucent, but not watery
-#define	CONTENTS_AUX			4
-#define	CONTENTS_LAVA			8
-#define	CONTENTS_SLIME			16
-#define	CONTENTS_WATER			32
-#define	CONTENTS_MIST			64
-#define	LAST_VISIBLE_CONTENTS	64
-
-// remaining contents are non-visible, and don't eat brushes
-
-#define	CONTENTS_AREAPORTAL		0x8000
-
-#define	CONTENTS_PLAYERCLIP		0x10000
-#define	CONTENTS_MONSTERCLIP	0x20000
-
-// currents can be added to any other contents, and may be mixed
-#define	CONTENTS_CURRENT_0		0x40000
-#define	CONTENTS_CURRENT_90		0x80000
-#define	CONTENTS_CURRENT_180	0x100000
-#define	CONTENTS_CURRENT_270	0x200000
-#define	CONTENTS_CURRENT_UP		0x400000
-#define	CONTENTS_CURRENT_DOWN	0x800000
-
-#define	CONTENTS_ORIGIN			0x1000000	// removed before bsping an entity
-
-#define	CONTENTS_MONSTER		0x2000000	// should never be on a brush, only in game
-#define	CONTENTS_DEADMONSTER	0x4000000
-#define	CONTENTS_DETAIL			0x8000000	// brushes to be added after vis leafs
-#define	CONTENTS_TRANSLUCENT	0x10000000	// auto set if any surface has trans
-#define	CONTENTS_LADDER			0x20000000
-
-
-
-#define	SURF_LIGHT		0x1		// value will hold the light strength
-
-#define	SURF_SLICK		0x2		// effects game physics
-
-#define	SURF_SKY		0x4		// don't draw, but add to skybox
-#define	SURF_WARP		0x8		// turbulent water warp
-#define	SURF_TRANS33	0x10
-#define	SURF_TRANS66	0x20
-#define	SURF_FLOWING	0x40	// scroll towards angle
-#define	SURF_NODRAW		0x80	// don't bother referencing the texture
-
-
-
-// content masks
-#define	MASK_ALL				(-1)
-#define	MASK_SOLID				(CONTENTS_SOLID|CONTENTS_WINDOW)
-#define	MASK_PLAYERSOLID		(CONTENTS_SOLID|CONTENTS_PLAYERCLIP|CONTENTS_WINDOW|CONTENTS_MONSTER)
-#define	MASK_DEADSOLID			(CONTENTS_SOLID|CONTENTS_PLAYERCLIP|CONTENTS_WINDOW)
-#define	MASK_MONSTERSOLID		(CONTENTS_SOLID|CONTENTS_MONSTERCLIP|CONTENTS_WINDOW|CONTENTS_MONSTER)
-#define	MASK_WATER				(CONTENTS_WATER|CONTENTS_LAVA|CONTENTS_SLIME)
-#define	MASK_OPAQUE				(CONTENTS_SOLID|CONTENTS_SLIME|CONTENTS_LAVA)
-#define	MASK_SHOT				(CONTENTS_SOLID|CONTENTS_MONSTER|CONTENTS_WINDOW|CONTENTS_DEADMONSTER)
-#define MASK_CURRENT			(CONTENTS_CURRENT_0|CONTENTS_CURRENT_90|CONTENTS_CURRENT_180|CONTENTS_CURRENT_270|CONTENTS_CURRENT_UP|CONTENTS_CURRENT_DOWN)
-
-
-// gi.BoxEdicts() can return a list of either solid or trigger entities
-// FIXME: eliminate AREA_ distinction?
-#define	AREA_SOLID		1
-#define	AREA_TRIGGERS	2
-
-
-// plane_t structure
-// !!! if this is changed, it must be changed in asm code too !!!
-typedef struct cplane_s
-{
-	vec3_t	normal;
-	float	dist;
-	byte	type;			// for fast side tests
-	byte	signbits;		// signx + (signy<<1) + (signz<<1)
-	byte	pad[2];
-} cplane_t;
-
-// structure offset for asm code
-#define CPLANE_NORMAL_X			0
-#define CPLANE_NORMAL_Y			4
-#define CPLANE_NORMAL_Z			8
-#define CPLANE_DIST				12
-#define CPLANE_TYPE				16
-#define CPLANE_SIGNBITS			17
-#define CPLANE_PAD0				18
-#define CPLANE_PAD1				19
-
-typedef struct cmodel_s
-{
-	vec3_t		mins, maxs;
-	vec3_t		origin;		// for sounds or lights
-	int			headnode;
-} cmodel_t;
-
-typedef struct csurface_s
-{
-	char		name[16];
-	int			flags;
-	int			value;
-} csurface_t;
-
-typedef struct mapsurface_s  // used internally due to name len probs //ZOID
-{
-	csurface_t	c;
-	char		rname[32];
-} mapsurface_t;
-
-// a trace is returned when a box is swept through the world
-typedef struct
-{
-	qboolean	allsolid;	// if true, plane is not valid
-	qboolean	startsolid;	// if true, the initial point was in a solid area
-	float		fraction;	// time completed, 1.0 = didn't hit anything
-	vec3_t		endpos;		// final position
-	cplane_t	plane;		// surface normal at impact
-	csurface_t	*surface;	// surface hit
-	int			contents;	// contents on other side of surface hit
-	struct edict_s	*ent;		// not set by CM_*() functions
-} trace_t;
-
-
-
-// pmove_state_t is the information necessary for client side movement
-// prediction
-typedef enum 
-{
-	// can accelerate and turn
-	PM_NORMAL,
-	PM_SPECTATOR,
-	// no acceleration or turning
-	PM_DEAD,
-	PM_GIB,		// different bounding box
-	PM_FREEZE
-} pmtype_t;
-
-// pmove->pm_flags
-#define	PMF_DUCKED			1
-#define	PMF_JUMP_HELD		2
-#define	PMF_ON_GROUND		4
-#define	PMF_TIME_WATERJUMP	8	// pm_time is waterjump
-#define	PMF_TIME_LAND		16	// pm_time is time before rejump
-#define	PMF_TIME_TELEPORT	32	// pm_time is non-moving time
-#define PMF_NO_PREDICTION	64	// temporarily disables prediction (used for grappling hook)
-
-// this structure needs to be communicated bit-accurate
-// from the server to the client to guarantee that
-// prediction stays in sync, so no floats are used.
-// if any part of the game code modifies this struct, it
-// will result in a prediction error of some degree.
-typedef struct
-{
-	pmtype_t	pm_type;
-
-	short		origin[3];		// 12.3
-	short		velocity[3];	// 12.3
-	byte		pm_flags;		// ducked, jump_held, etc
-	byte		pm_time;		// each unit = 8 ms
-	short		gravity;
-	short		delta_angles[3];	// add to command angles to get view direction
-									// changed by spawns, rotating objects, and teleporters
-} pmove_state_t;
-
-
-//
-// button bits
-//
-#define	BUTTON_ATTACK		1
-#define	BUTTON_USE			2
-#define	BUTTON_ANY			128			// any key whatsoever
-
-
-// usercmd_t is sent to the server each client frame
-typedef struct usercmd_s
-{
-	byte	msec;
-	byte	buttons;
-	short	angles[3];
-	short	forwardmove, sidemove, upmove;
-	byte	impulse;		// remove?
-	byte	lightlevel;		// light level the player is standing on
-} usercmd_t;
-
-
-#define	MAXTOUCH	32
-typedef struct
-{
-	// state (in / out)
-	pmove_state_t	s;
-
-	// command (in)
-	usercmd_t		cmd;
-	qboolean		snapinitial;	// if s has been changed outside pmove
-
-	// results (out)
-	int			numtouch;
-	struct edict_s	*touchents[MAXTOUCH];
-
-	vec3_t		viewangles;			// clamped
-	float		viewheight;
-
-	vec3_t		mins, maxs;			// bounding box size
-
-	struct edict_s	*groundentity;
-	int			watertype;
-	int			waterlevel;
-
-	// callbacks to test the world
-	trace_t		(*trace) (vec3_t start, vec3_t mins, vec3_t maxs, vec3_t end);
-	int			(*pointcontents) (vec3_t point);
-} pmove_t;
-
-
-// entity_state_t->effects
-// Effects are things handled on the client side (lights, particles, frame animations)
-// that happen constantly on the given entity.
-// An entity that has effects will be sent to the client
-// even if it has a zero index model.
-#define	EF_ROTATE			0x00000001		// rotate (bonus items)
-#define	EF_GIB				0x00000002		// leave a trail
-#define	EF_BLASTER			0x00000008		// redlight + trail
-#define	EF_ROCKET			0x00000010		// redlight + trail
-#define	EF_GRENADE			0x00000020
-#define	EF_HYPERBLASTER		0x00000040
-#define	EF_BFG				0x00000080
-#define EF_COLOR_SHELL		0x00000100
-#define EF_POWERSCREEN		0x00000200
-#define	EF_ANIM01			0x00000400		// automatically cycle between frames 0 and 1 at 2 hz
-#define	EF_ANIM23			0x00000800		// automatically cycle between frames 2 and 3 at 2 hz
-#define EF_ANIM_ALL			0x00001000		// automatically cycle through all frames at 2hz
-#define EF_ANIM_ALLFAST		0x00002000		// automatically cycle through all frames at 10hz
-#define	EF_FLIES			0x00004000
-#define	EF_QUAD				0x00008000
-#define	EF_PENT				0x00010000
-#define	EF_TELEPORTER		0x00020000		// particle fountain
-#define EF_FLAG1			0x00040000
-#define EF_FLAG2			0x00080000
-// RAFAEL
-#define EF_IONRIPPER		0x00100000
-#define EF_GREENGIB			0x00200000
-#define	EF_BLUEHYPERBLASTER 0x00400000
-#define EF_SPINNINGLIGHTS	0x00800000
-#define EF_PLASMA			0x01000000
-#define EF_TRAP				0x02000000
-
-//ROGUE
-#define EF_TRACKER			0x04000000
-#define	EF_DOUBLE			0x08000000
-#define	EF_SPHERETRANS		0x10000000
-#define EF_TAGTRAIL			0x20000000
-#define EF_HALF_DAMAGE		0x40000000
-#define EF_TRACKERTRAIL		0x80000000
-//ROGUE
-
-// entity_state_t->renderfx flags
-#define	RF_MINLIGHT			1		// allways have some light (viewmodel)
-#define	RF_VIEWERMODEL		2		// don't draw through eyes, only mirrors
-#define	RF_WEAPONMODEL		4		// only draw through eyes
-#define	RF_FULLBRIGHT		8		// allways draw full intensity
-#define	RF_DEPTHHACK		16		// for view weapon Z crunching
-#define	RF_TRANSLUCENT		32
-#define	RF_FRAMELERP		64
-#define RF_BEAM				128
-#define	RF_CUSTOMSKIN		256		// skin is an index in image_precache
-#define	RF_GLOW				512		// pulse lighting for bonus items
-#define RF_SHELL_RED		1024
-#define	RF_SHELL_GREEN		2048
-#define RF_SHELL_BLUE		4096
-
-//ROGUE
-#define RF_IR_VISIBLE		0x00008000		// 32768
-#define	RF_SHELL_DOUBLE		0x00010000		// 65536
-#define	RF_SHELL_HALF_DAM	0x00020000
-#define RF_USE_DISGUISE		0x00040000
-//ROGUE
-
-// player_state_t->refdef flags
-#define	RDF_UNDERWATER		1		// warp the screen as apropriate
-#define RDF_NOWORLDMODEL	2		// used for player configuration screen
-
-//ROGUE
-#define	RDF_IRGOGGLES		4
-#define RDF_UVGOGGLES		8
-//ROGUE
-
-//
-// muzzle flashes / player effects
-//
-#define	MZ_BLASTER			0
-#define MZ_MACHINEGUN		1
-#define	MZ_SHOTGUN			2
-#define	MZ_CHAINGUN1		3
-#define	MZ_CHAINGUN2		4
-#define	MZ_CHAINGUN3		5
-#define	MZ_RAILGUN			6
-#define	MZ_ROCKET			7
-#define	MZ_GRENADE			8
-#define	MZ_LOGIN			9
-#define	MZ_LOGOUT			10
-#define	MZ_RESPAWN			11
-#define	MZ_BFG				12
-#define	MZ_SSHOTGUN			13
-#define	MZ_HYPERBLASTER		14
-#define	MZ_ITEMRESPAWN		15
-// RAFAEL
-#define MZ_IONRIPPER		16
-#define MZ_BLUEHYPERBLASTER 17
-#define MZ_PHALANX			18
-#define MZ_SILENCED			128		// bit flag ORed with one of the above numbers
-
-//ROGUE
-#define MZ_ETF_RIFLE		30
-#define MZ_UNUSED			31
-#define MZ_SHOTGUN2			32
-#define MZ_HEATBEAM			33
-#define MZ_BLASTER2			34
-#define	MZ_TRACKER			35
-#define	MZ_NUKE1			36
-#define	MZ_NUKE2			37
-#define	MZ_NUKE4			38
-#define	MZ_NUKE8			39
-//ROGUE
-
-//
-// monster muzzle flashes
-//
-#define MZ2_TANK_BLASTER_1				1
-#define MZ2_TANK_BLASTER_2				2
-#define MZ2_TANK_BLASTER_3				3
-#define MZ2_TANK_MACHINEGUN_1			4
-#define MZ2_TANK_MACHINEGUN_2			5
-#define MZ2_TANK_MACHINEGUN_3			6
-#define MZ2_TANK_MACHINEGUN_4			7
-#define MZ2_TANK_MACHINEGUN_5			8
-#define MZ2_TANK_MACHINEGUN_6			9
-#define MZ2_TANK_MACHINEGUN_7			10
-#define MZ2_TANK_MACHINEGUN_8			11
-#define MZ2_TANK_MACHINEGUN_9			12
-#define MZ2_TANK_MACHINEGUN_10			13
-#define MZ2_TANK_MACHINEGUN_11			14
-#define MZ2_TANK_MACHINEGUN_12			15
-#define MZ2_TANK_MACHINEGUN_13			16
-#define MZ2_TANK_MACHINEGUN_14			17
-#define MZ2_TANK_MACHINEGUN_15			18
-#define MZ2_TANK_MACHINEGUN_16			19
-#define MZ2_TANK_MACHINEGUN_17			20
-#define MZ2_TANK_MACHINEGUN_18			21
-#define MZ2_TANK_MACHINEGUN_19			22
-#define MZ2_TANK_ROCKET_1				23
-#define MZ2_TANK_ROCKET_2				24
-#define MZ2_TANK_ROCKET_3				25
-
-#define MZ2_INFANTRY_MACHINEGUN_1		26
-#define MZ2_INFANTRY_MACHINEGUN_2		27
-#define MZ2_INFANTRY_MACHINEGUN_3		28
-#define MZ2_INFANTRY_MACHINEGUN_4		29
-#define MZ2_INFANTRY_MACHINEGUN_5		30
-#define MZ2_INFANTRY_MACHINEGUN_6		31
-#define MZ2_INFANTRY_MACHINEGUN_7		32
-#define MZ2_INFANTRY_MACHINEGUN_8		33
-#define MZ2_INFANTRY_MACHINEGUN_9		34
-#define MZ2_INFANTRY_MACHINEGUN_10		35
-#define MZ2_INFANTRY_MACHINEGUN_11		36
-#define MZ2_INFANTRY_MACHINEGUN_12		37
-#define MZ2_INFANTRY_MACHINEGUN_13		38
-
-#define MZ2_SOLDIER_BLASTER_1			39
-#define MZ2_SOLDIER_BLASTER_2			40
-#define MZ2_SOLDIER_SHOTGUN_1			41
-#define MZ2_SOLDIER_SHOTGUN_2			42
-#define MZ2_SOLDIER_MACHINEGUN_1		43
-#define MZ2_SOLDIER_MACHINEGUN_2		44
-
-#define MZ2_GUNNER_MACHINEGUN_1			45
-#define MZ2_GUNNER_MACHINEGUN_2			46
-#define MZ2_GUNNER_MACHINEGUN_3			47
-#define MZ2_GUNNER_MACHINEGUN_4			48
-#define MZ2_GUNNER_MACHINEGUN_5			49
-#define MZ2_GUNNER_MACHINEGUN_6			50
-#define MZ2_GUNNER_MACHINEGUN_7			51
-#define MZ2_GUNNER_MACHINEGUN_8			52
-#define MZ2_GUNNER_GRENADE_1			53
-#define MZ2_GUNNER_GRENADE_2			54
-#define MZ2_GUNNER_GRENADE_3			55
-#define MZ2_GUNNER_GRENADE_4			56
-
-#define MZ2_CHICK_ROCKET_1				57
-
-#define MZ2_FLYER_BLASTER_1				58
-#define MZ2_FLYER_BLASTER_2				59
-
-#define MZ2_MEDIC_BLASTER_1				60
-
-#define MZ2_GLADIATOR_RAILGUN_1			61
-
-#define MZ2_HOVER_BLASTER_1				62
-
-#define MZ2_ACTOR_MACHINEGUN_1			63
-
-#define MZ2_SUPERTANK_MACHINEGUN_1		64
-#define MZ2_SUPERTANK_MACHINEGUN_2		65
-#define MZ2_SUPERTANK_MACHINEGUN_3		66
-#define MZ2_SUPERTANK_MACHINEGUN_4		67
-#define MZ2_SUPERTANK_MACHINEGUN_5		68
-#define MZ2_SUPERTANK_MACHINEGUN_6		69
-#define MZ2_SUPERTANK_ROCKET_1			70
-#define MZ2_SUPERTANK_ROCKET_2			71
-#define MZ2_SUPERTANK_ROCKET_3			72
-
-#define MZ2_BOSS2_MACHINEGUN_L1			73
-#define MZ2_BOSS2_MACHINEGUN_L2			74
-#define MZ2_BOSS2_MACHINEGUN_L3			75
-#define MZ2_BOSS2_MACHINEGUN_L4			76
-#define MZ2_BOSS2_MACHINEGUN_L5			77
-#define MZ2_BOSS2_ROCKET_1				78
-#define MZ2_BOSS2_ROCKET_2				79
-#define MZ2_BOSS2_ROCKET_3				80
-#define MZ2_BOSS2_ROCKET_4				81
-
-#define MZ2_FLOAT_BLASTER_1				82
-
-#define MZ2_SOLDIER_BLASTER_3			83
-#define MZ2_SOLDIER_SHOTGUN_3			84
-#define MZ2_SOLDIER_MACHINEGUN_3		85
-#define MZ2_SOLDIER_BLASTER_4			86
-#define MZ2_SOLDIER_SHOTGUN_4			87
-#define MZ2_SOLDIER_MACHINEGUN_4		88
-#define MZ2_SOLDIER_BLASTER_5			89
-#define MZ2_SOLDIER_SHOTGUN_5			90
-#define MZ2_SOLDIER_MACHINEGUN_5		91
-#define MZ2_SOLDIER_BLASTER_6			92
-#define MZ2_SOLDIER_SHOTGUN_6			93
-#define MZ2_SOLDIER_MACHINEGUN_6		94
-#define MZ2_SOLDIER_BLASTER_7			95
-#define MZ2_SOLDIER_SHOTGUN_7			96
-#define MZ2_SOLDIER_MACHINEGUN_7		97
-#define MZ2_SOLDIER_BLASTER_8			98
-#define MZ2_SOLDIER_SHOTGUN_8			99
-#define MZ2_SOLDIER_MACHINEGUN_8		100
-
-// --- Xian shit below ---
-#define	MZ2_MAKRON_BFG					101
-#define MZ2_MAKRON_BLASTER_1			102
-#define MZ2_MAKRON_BLASTER_2			103
-#define MZ2_MAKRON_BLASTER_3			104
-#define MZ2_MAKRON_BLASTER_4			105
-#define MZ2_MAKRON_BLASTER_5			106
-#define MZ2_MAKRON_BLASTER_6			107
-#define MZ2_MAKRON_BLASTER_7			108
-#define MZ2_MAKRON_BLASTER_8			109
-#define MZ2_MAKRON_BLASTER_9			110
-#define MZ2_MAKRON_BLASTER_10			111
-#define MZ2_MAKRON_BLASTER_11			112
-#define MZ2_MAKRON_BLASTER_12			113
-#define MZ2_MAKRON_BLASTER_13			114
-#define MZ2_MAKRON_BLASTER_14			115
-#define MZ2_MAKRON_BLASTER_15			116
-#define MZ2_MAKRON_BLASTER_16			117
-#define MZ2_MAKRON_BLASTER_17			118
-#define MZ2_MAKRON_RAILGUN_1			119
-#define	MZ2_JORG_MACHINEGUN_L1			120
-#define	MZ2_JORG_MACHINEGUN_L2			121
-#define	MZ2_JORG_MACHINEGUN_L3			122
-#define	MZ2_JORG_MACHINEGUN_L4			123
-#define	MZ2_JORG_MACHINEGUN_L5			124
-#define	MZ2_JORG_MACHINEGUN_L6			125
-#define	MZ2_JORG_MACHINEGUN_R1			126
-#define	MZ2_JORG_MACHINEGUN_R2			127
-#define	MZ2_JORG_MACHINEGUN_R3			128
-#define	MZ2_JORG_MACHINEGUN_R4			129
-#define MZ2_JORG_MACHINEGUN_R5			130
-#define	MZ2_JORG_MACHINEGUN_R6			131
-#define MZ2_JORG_BFG_1					132
-#define MZ2_BOSS2_MACHINEGUN_R1			133
-#define MZ2_BOSS2_MACHINEGUN_R2			134
-#define MZ2_BOSS2_MACHINEGUN_R3			135
-#define MZ2_BOSS2_MACHINEGUN_R4			136
-#define MZ2_BOSS2_MACHINEGUN_R5			137
-
-//ROGUE
-#define	MZ2_CARRIER_MACHINEGUN_L1		138
-#define	MZ2_CARRIER_MACHINEGUN_R1		139
-#define	MZ2_CARRIER_GRENADE				140
-#define MZ2_TURRET_MACHINEGUN			141
-#define MZ2_TURRET_ROCKET				142
-#define MZ2_TURRET_BLASTER				143
-#define MZ2_STALKER_BLASTER				144
-#define MZ2_DAEDALUS_BLASTER			145
-#define MZ2_MEDIC_BLASTER_2				146
-#define	MZ2_CARRIER_RAILGUN				147
-#define	MZ2_WIDOW_DISRUPTOR				148
-#define	MZ2_WIDOW_BLASTER				149
-#define	MZ2_WIDOW_RAIL					150
-#define	MZ2_WIDOW_PLASMABEAM			151		// PMM - not used
-#define	MZ2_CARRIER_MACHINEGUN_L2		152
-#define	MZ2_CARRIER_MACHINEGUN_R2		153
-#define	MZ2_WIDOW_RAIL_LEFT				154
-#define	MZ2_WIDOW_RAIL_RIGHT			155
-#define	MZ2_WIDOW_BLASTER_SWEEP1		156
-#define	MZ2_WIDOW_BLASTER_SWEEP2		157
-#define	MZ2_WIDOW_BLASTER_SWEEP3		158
-#define	MZ2_WIDOW_BLASTER_SWEEP4		159
-#define	MZ2_WIDOW_BLASTER_SWEEP5		160
-#define	MZ2_WIDOW_BLASTER_SWEEP6		161
-#define	MZ2_WIDOW_BLASTER_SWEEP7		162
-#define	MZ2_WIDOW_BLASTER_SWEEP8		163
-#define	MZ2_WIDOW_BLASTER_SWEEP9		164
-#define	MZ2_WIDOW_BLASTER_100			165
-#define	MZ2_WIDOW_BLASTER_90			166
-#define	MZ2_WIDOW_BLASTER_80			167
-#define	MZ2_WIDOW_BLASTER_70			168
-#define	MZ2_WIDOW_BLASTER_60			169
-#define	MZ2_WIDOW_BLASTER_50			170
-#define	MZ2_WIDOW_BLASTER_40			171
-#define	MZ2_WIDOW_BLASTER_30			172
-#define	MZ2_WIDOW_BLASTER_20			173
-#define	MZ2_WIDOW_BLASTER_10			174
-#define	MZ2_WIDOW_BLASTER_0				175
-#define	MZ2_WIDOW_BLASTER_10L			176
-#define	MZ2_WIDOW_BLASTER_20L			177
-#define	MZ2_WIDOW_BLASTER_30L			178
-#define	MZ2_WIDOW_BLASTER_40L			179
-#define	MZ2_WIDOW_BLASTER_50L			180
-#define	MZ2_WIDOW_BLASTER_60L			181
-#define	MZ2_WIDOW_BLASTER_70L			182
-#define	MZ2_WIDOW_RUN_1					183
-#define	MZ2_WIDOW_RUN_2					184
-#define	MZ2_WIDOW_RUN_3					185
-#define	MZ2_WIDOW_RUN_4					186
-#define	MZ2_WIDOW_RUN_5					187
-#define	MZ2_WIDOW_RUN_6					188
-#define	MZ2_WIDOW_RUN_7					189
-#define	MZ2_WIDOW_RUN_8					190
-#define	MZ2_CARRIER_ROCKET_1			191
-#define	MZ2_CARRIER_ROCKET_2			192
-#define	MZ2_CARRIER_ROCKET_3			193
-#define	MZ2_CARRIER_ROCKET_4			194
-#define	MZ2_WIDOW2_BEAMER_1				195
-#define	MZ2_WIDOW2_BEAMER_2				196
-#define	MZ2_WIDOW2_BEAMER_3				197
-#define	MZ2_WIDOW2_BEAMER_4				198
-#define	MZ2_WIDOW2_BEAMER_5				199
-#define	MZ2_WIDOW2_BEAM_SWEEP_1			200
-#define	MZ2_WIDOW2_BEAM_SWEEP_2			201
-#define	MZ2_WIDOW2_BEAM_SWEEP_3			202
-#define	MZ2_WIDOW2_BEAM_SWEEP_4			203
-#define	MZ2_WIDOW2_BEAM_SWEEP_5			204
-#define	MZ2_WIDOW2_BEAM_SWEEP_6			205
-#define	MZ2_WIDOW2_BEAM_SWEEP_7			206
-#define	MZ2_WIDOW2_BEAM_SWEEP_8			207
-#define	MZ2_WIDOW2_BEAM_SWEEP_9			208
-#define	MZ2_WIDOW2_BEAM_SWEEP_10		209
-#define	MZ2_WIDOW2_BEAM_SWEEP_11		210
-
-// ROGUE
-
-extern	vec3_t monster_flash_offset [];
-
-
-// temp entity events
-//
-// Temp entity events are for things that happen
-// at a location seperate from any existing entity.
-// Temporary entity messages are explicitly constructed
-// and broadcast.
-typedef enum
-{
-	TE_GUNSHOT,
-	TE_BLOOD,
-	TE_BLASTER,
-	TE_RAILTRAIL,
-	TE_SHOTGUN,
-	TE_EXPLOSION1,
-	TE_EXPLOSION2,
-	TE_ROCKET_EXPLOSION,
-	TE_GRENADE_EXPLOSION,
-	TE_SPARKS,
-	TE_SPLASH,
-	TE_BUBBLETRAIL,
-	TE_SCREEN_SPARKS,
-	TE_SHIELD_SPARKS,
-	TE_BULLET_SPARKS,
-	TE_LASER_SPARKS,
-	TE_PARASITE_ATTACK,
-	TE_ROCKET_EXPLOSION_WATER,
-	TE_GRENADE_EXPLOSION_WATER,
-	TE_MEDIC_CABLE_ATTACK,
-	TE_BFG_EXPLOSION,
-	TE_BFG_BIGEXPLOSION,
-	TE_BOSSTPORT,			// used as '22' in a map, so DON'T RENUMBER!!!
-	TE_BFG_LASER,
-	TE_GRAPPLE_CABLE,
-	TE_WELDING_SPARKS,
-	TE_GREENBLOOD,
-	TE_BLUEHYPERBLASTER,
-	TE_PLASMA_EXPLOSION,
-	TE_TUNNEL_SPARKS,
-//ROGUE
-	TE_BLASTER2,
-	TE_RAILTRAIL2,
-	TE_FLAME,
-	TE_LIGHTNING,
-	TE_DEBUGTRAIL,
-	TE_PLAIN_EXPLOSION,
-	TE_FLASHLIGHT,
-	TE_FORCEWALL,
-	TE_HEATBEAM,
-	TE_MONSTER_HEATBEAM,
-	TE_STEAM,
-	TE_BUBBLETRAIL2,
-	TE_MOREBLOOD,
-	TE_HEATBEAM_SPARKS,
-	TE_HEATBEAM_STEAM,
-	TE_CHAINFIST_SMOKE,
-	TE_ELECTRIC_SPARKS,
-	TE_TRACKER_EXPLOSION,
-	TE_TELEPORT_EFFECT,
-	TE_DBALL_GOAL,
-	TE_WIDOWBEAMOUT,
-	TE_NUKEBLAST,
-	TE_WIDOWSPLASH,
-	TE_EXPLOSION1_BIG,
-	TE_EXPLOSION1_NP,
-	TE_FLECHETTE
-//ROGUE
-} temp_event_t;
-
-#define SPLASH_UNKNOWN		0
-#define SPLASH_SPARKS		1
-#define SPLASH_BLUE_WATER	2
-#define SPLASH_BROWN_WATER	3
-#define SPLASH_SLIME		4
-#define	SPLASH_LAVA			5
-#define SPLASH_BLOOD		6
-
-
-// sound channels
-// channel 0 never willingly overrides
-// other channels (1-7) allways override a playing sound on that channel
-#define	CHAN_AUTO               0
-#define	CHAN_WEAPON             1
-#define	CHAN_VOICE              2
-#define	CHAN_ITEM               3
-#define	CHAN_BODY               4
-// modifier flags
-#define	CHAN_NO_PHS_ADD			8	// send to all clients, not just ones in PHS (ATTN 0 will also do this)
-#define	CHAN_RELIABLE			16	// send by reliable message, not datagram
-
-
-// sound attenuation values
-#define	ATTN_NONE               0	// full volume the entire level
-#define	ATTN_NORM               1
-#define	ATTN_IDLE               2
-#define	ATTN_STATIC             3	// diminish very rapidly with distance
-
-
-// player_state->stats[] indexes
-#define STAT_HEALTH_ICON		0
-#define	STAT_HEALTH				1
-#define	STAT_AMMO_ICON			2
-#define	STAT_AMMO				3
-#define	STAT_ARMOR_ICON			4
-#define	STAT_ARMOR				5
-#define	STAT_SELECTED_ICON		6
-#define	STAT_PICKUP_ICON		7
-#define	STAT_PICKUP_STRING		8
-#define	STAT_TIMER_ICON			9
-#define	STAT_TIMER				10
-#define	STAT_HELPICON			11
-#define	STAT_SELECTED_ITEM		12
-#define	STAT_LAYOUTS			13
-#define	STAT_FRAGS				14
-#define	STAT_FLASHES			15		// cleared each frame, 1 = health, 2 = armor
-#define STAT_CHASE				16
-#define STAT_SPECTATOR			17
-
-#define	MAX_STATS				32
-
-
-// dmflags->value flags
-#define	DF_NO_HEALTH		0x00000001	// 1
-#define	DF_NO_ITEMS			0x00000002	// 2
-#define	DF_WEAPONS_STAY		0x00000004	// 4
-#define	DF_NO_FALLING		0x00000008	// 8
-#define	DF_INSTANT_ITEMS	0x00000010	// 16
-#define	DF_SAME_LEVEL		0x00000020	// 32
-#define DF_SKINTEAMS		0x00000040	// 64
-#define DF_MODELTEAMS		0x00000080	// 128
-#define DF_NO_FRIENDLY_FIRE	0x00000100	// 256
-#define	DF_SPAWN_FARTHEST	0x00000200	// 512
-#define DF_FORCE_RESPAWN	0x00000400	// 1024
-#define DF_NO_ARMOR			0x00000800	// 2048
-#define DF_ALLOW_EXIT		0x00001000	// 4096
-#define DF_INFINITE_AMMO	0x00002000	// 8192
-#define DF_QUAD_DROP		0x00004000	// 16384
-#define DF_FIXED_FOV		0x00008000	// 32768
-
-// RAFAEL
-#define	DF_QUADFIRE_DROP	0x00010000	// 65536
-
-//ROGUE
-#define DF_NO_MINES			0x00020000
-#define DF_NO_STACK_DOUBLE	0x00040000
-#define DF_NO_NUKES			0x00080000
-#define DF_NO_SPHERES		0x00100000
-//ROGUE
-
-/*
-ROGUE - VERSIONS
-1234	08/13/1998		Activision
-1235	08/14/1998		Id Software
-1236	08/15/1998		Steve Tietze
-1237	08/15/1998		Phil Dobranski
-1238	08/15/1998		John Sheley
-1239	08/17/1998		Barrett Alexander
-1230	08/17/1998		Brandon Fish
-1245	08/17/1998		Don MacAskill
-1246	08/17/1998		David "Zoid" Kirsch
-1247	08/17/1998		Manu Smith
-1248	08/17/1998		Geoff Scully
-1249	08/17/1998		Andy Van Fossen
-1240	08/20/1998		Activision Build 2
-1256	08/20/1998		Ranger Clan
-1257	08/20/1998		Ensemble Studios
-1258	08/21/1998		Robert Duffy
-1259	08/21/1998		Stephen Seachord
-1250	08/21/1998		Stephen Heaslip
-1267	08/21/1998		Samir Sandesara
-1268	08/21/1998		Oliver Wyman
-1269	08/21/1998		Steven Marchegiano
-1260	08/21/1998		Build #2 for Nihilistic
-1278	08/21/1998		Build #2 for Ensemble
-
-9999	08/20/1998		Internal Use
-*/
-#define ROGUE_VERSION_ID		1278
-
-#define ROGUE_VERSION_STRING	"08/21/1998 Beta 2 for Ensemble"
-
-// ROGUE
-/*
-==========================================================
-
-  ELEMENTS COMMUNICATED ACROSS THE NET
-
-==========================================================
-*/
-
-#define	ANGLE2SHORT(x)	((int)((x)*65536/360) & 65535)
-#define	SHORT2ANGLE(x)	((x)*(360.0/65536))
-
-
-//
-// config strings are a general means of communication from
-// the server to all connected clients.
-// Each config string can be at most MAX_QPATH characters.
-//
-#define	CS_NAME				0
-#define	CS_CDTRACK			1
-#define	CS_SKY				2
-#define	CS_SKYAXIS			3		// %f %f %f format
-#define	CS_SKYROTATE		4
-#define	CS_STATUSBAR		5		// display program string
-
-#define CS_AIRACCEL			29		// air acceleration control
-#define	CS_MAXCLIENTS		30
-#define	CS_MAPCHECKSUM		31		// for catching cheater maps
-
-#define	CS_MODELS			32
-#define	CS_SOUNDS			(CS_MODELS+MAX_MODELS)
-#define	CS_IMAGES			(CS_SOUNDS+MAX_SOUNDS)
-#define	CS_LIGHTS			(CS_IMAGES+MAX_IMAGES)
-#define	CS_ITEMS			(CS_LIGHTS+MAX_LIGHTSTYLES)
-#define	CS_PLAYERSKINS		(CS_ITEMS+MAX_ITEMS)
-#define CS_GENERAL			(CS_PLAYERSKINS+MAX_CLIENTS)
-#define	MAX_CONFIGSTRINGS	(CS_GENERAL+MAX_GENERAL)
-
-
-//==============================================
-
-
-// entity_state_t->event values
-// ertity events are for effects that take place reletive
-// to an existing entities origin.  Very network efficient.
-// All muzzle flashes really should be converted to events...
-typedef enum
-{
-	EV_NONE,
-	EV_ITEM_RESPAWN,
-	EV_FOOTSTEP,
-	EV_FALLSHORT,
-	EV_FALL,
-	EV_FALLFAR,
-	EV_PLAYER_TELEPORT,
-	EV_OTHER_TELEPORT
-} entity_event_t;
-
-
-// entity_state_t is the information conveyed from the server
-// in an update message about entities that the client will
-// need to render in some way
-typedef struct entity_state_s
-{
-	int		number;			// edict index
-
-	vec3_t	origin;
-	vec3_t	angles;
-	vec3_t	old_origin;		// for lerping
-	int		modelindex;
-	int		modelindex2, modelindex3, modelindex4;	// weapons, CTF flags, etc
-	int		frame;
-	int		skinnum;
-	unsigned int		effects;		// PGM - we're filling it, so it needs to be unsigned
-	int		renderfx;
-	int		solid;			// for client side prediction, 8*(bits 0-4) is x/y radius
-							// 8*(bits 5-9) is z down distance, 8(bits10-15) is z up
-							// gi.linkentity sets this properly
-	int		sound;			// for looping sounds, to guarantee shutoff
-	int		event;			// impulse events -- muzzle flashes, footsteps, etc
-							// events only go out for a single frame, they
-							// are automatically cleared each frame
-} entity_state_t;
-
-//==============================================
-
-
-// player_state_t is the information needed in addition to pmove_state_t
-// to rendered a view.  There will only be 10 player_state_t sent each second,
-// but the number of pmove_state_t changes will be reletive to client
-// frame rates
-typedef struct
-{
-	pmove_state_t	pmove;		// for prediction
-
-	// these fields do not need to be communicated bit-precise
-
-	vec3_t		viewangles;		// for fixed views
-	vec3_t		viewoffset;		// add to pmovestate->origin
-	vec3_t		kick_angles;	// add to view direction to get render angles
-								// set by weapon kicks, pain effects, etc
-
-	vec3_t		gunangles;
-	vec3_t		gunoffset;
-	int			gunindex;
-	int			gunframe;
-
-	float		blend[4];		// rgba full screen effect
-	
-	float		fov;			// horizontal field of view
-
-	int			rdflags;		// refdef flags
-
-	short		stats[MAX_STATS];		// fast status bar updates
-} player_state_t;
-
-
-// ==================
-// PGM 
-#define VIDREF_GL		1
-#define VIDREF_SOFT		2
-#define VIDREF_OTHER	3
-
-extern int vidref_val;
-// PGM
-// ==================
--- a/joystick.txt
+++ /dev/null
@@ -1,226 +1,0 @@
-Title: Description of Windows 95 Quake 2 support for DirectInput devices such as:
-	standard joysticks
-	FPgaming Assassin 3D		www.fpgaming.com
-	Logitech WingMan Warrior	www.logitech.com
-        Mad Catz Panther                www.madcatz.com
-	Mad Catz Panther XL		www.madcatz.com
-	SpaceTec IMC SpaceOrb 360	www.spacetec.com
-File: JOYSTICK.TXT
-Revision History:
-	02/21/97  JCB  Quake 1:  Created by FPgaming, Inc. (www.fpgaming.com) -- Creators of the Assassin 3D.
-        03/12/97  id   Quake 1:  Joysticks are disabled by default now.
-        10/28/97  JCB  Quake 2:  Added up/down axis control for SpaceOrb 360 users, changed names to joy_* and changed 'joystick to 'in_joystick'.
-Overview:
-The input device support in Quake 2 is designed to take full advantage of your DirectInput device.  Standard joysticks, digital joysticks and new advanced controllers are all supported.
-
-
-Standard Joystick Directions:
-1.  Verify your joystick or game controller is selected in the Joystick (or Game Controllers) control panel applet.
-2.  Verify your device has been calibrated and tested.
-3.  Launch Quake 2 (quake2.exe).
-4.  Type 'in_joystick 1' at the console to enable your joystick (only needs to by typed in one time).
-From then on, just launch Quake 2.
-
-
-Advanced Controller Directions:
-1.  Verify your joystick or game controller is selected in the Joystick (or Game Controllers) control panel applet.
-2.  Verify your device has been calibrated and tested.
-3.  Get the configuration file for your controller from your manufacturer's website or copy from the selections below.
-4.  Place the configuration file in your quake2\baseq2 directory.
-6.  Launch Quake 2 (quake2.exe).
-7.  Type 'exec <configuration file name here>' at the console to enable your advanced controller each time you launch Quake 2.
-Optionally you can:
-Create or modify quake2\baseq2\autoexec.cfg to include an exec to your configuration file (i.e. 'exec adva3d.cfg').  This will automatically load your configuration file each time you launch Quake 2.
-From then on, just launch Quake 2.
-  
-
-Details:
-(This may be more information than you ever wanted to know.)
-Standard Joystick Support
-The standard joystick support has been enhanced to provide the following:
-1. proportional movement (the farther you move the stick, the faster you move) 
-2. support for up to 32 buttons (JOY1-JOY4 and AUX5-AUX32)
-3. sensitivity setting for each control (allows tuning and inverting the control direction)
-4. dead-zone setting for each control
-
-The default joystick setting is for joystick left/right movement to control turning and for joystick forward/backward movement to control moving forward/backward.  For optional strafing, add the 'sidestep' feature to one of your buttons (via the Customize menu).  For optional looking, add the 'mouse look' feature to one of your buttons (also via the Customize menu).  
-
-Additionally, there are several features that you can set from the Options menu.  'Always Run' allows you change your maximum speed from walking to running.  'Invert Mouse' allows you to change the direction the joystick has to move to when looking up and down.  'Lookspring' enables automatic look-forward-when-moving.  And, 'Lookstrafe' automatically enables strafing when the 'mouse look' button is pressed.
-
-The following variables control your sensititivity settings:
-	joy_forwardsensitivity - controls the ramp-up speed for moving forward and backward
-	joy_sidesensitivity - controls the ramp-up speed for moving side to side
-	joy_upsensitivity - controls the ramp-up speed for moving up and down
-	joy_pitchsensitivity - controls the speed that you look up and down
-	joy_yawsensitivity - controls the speed that you look left to right
-You can set the sensitivity settings to negative numbers.  This inverts the direction of movement for the control.  The default sensitivity settings are 1 (or -1).  There is no limit on the range; whatever feels good.
-
-The following variables control your threshold settings:
-	joy_forwardthreshold - controls the dead-zone for moving forward and backward
-	joy_sidethreshold - controls the dead-zone for moving side to side
-	joy_upthreshold - controls the dead-zone for moving up and down
-	joy_pitchthreshold - controls the dead-zone for looking up and down
-	joy_yawthreshold - controls the dead-zone for looking left and right
-The threshold settings allow you to control your dead-zone (or no-movement zone).  The default threshold settings are .15 (meaning 15% of the full-range).  The range of the threshold settings is from 0 to 1.  Troublesome analog joysticks may need a larger number (like .2).  Premium joysticks can use a smaller number (like .1).
-
-The joystick sensitivity settings and the threshold settings are not saved after you quit your game as inadvertent settings can really hose your control.  If you want to keep any changes, add them into your autoexec.cfg file or add an 'exec' call to your configuration file.
-
-If your joystick has a POV hat, the buttons are mapped to AUX29-AUX32.  So, you get 8 buttons with the Logitech WingMan Extreme and 12 buttons with the Microsoft SideWinder 3D Pro, etc.
-
-
-Advanced Controller Support
-The following features have been added:
-1. support for all 6 axes (X, Y, Z, R, U, V)
-2. mapping of any axis to any control (Forward, Look, Side, Turn, Up)
-3. proportional movement for all controls
-4. sensitivity setting for any control (allows tuning and inverting the control direction)
-5. threshold setting for any control (allows dead-zone setting)
-6. support for absolute controls (like joysticks) and relative controls (like trackballs)
-7. support for up to 32 buttons (JOY1-JOY4 and AUX5-AUX32)
-
-******************************************************************************
-NOTE:  The information below is for game controller companies to integrate their device and for anyone wanting to create a custom setup.
-
-In addition to the above new variables, there are six more for axis mapping.  These are:
-	joy_advaxisx - controls mapping of DirectInput axis X (typically joystick left and right)
-	joy_advaxisy - controls mapping of DirectInput axis Y (typically joystick forward and backward)
-	joy_advaxisz - controls mapping of DirectInput axis Z (typically joystick throttle)
-	joy_advaxisr - controls mapping of DirectInput axis R (typically joystick rudder)
-        joy_advaxisu - controls mapping of DirectInput axis U (custom axis - Assassin 3D trackball left and right and SpaceOrb roll)
-	joy_advaxisv - controls mapping of DirectInput axis V (custom axis - Assassin 3D trackball forward and backward and SpaceOrb yaw)
-Each joy_advaxis variable can be set to the following controls:
-	0 = Axis not used
-	1 = Axis is for forward and backward movement
-	2 = Axis is for looking up and down (pitch)
-	3 = Axis is for side to side movement
-	4 = Axis is for turning left and right (yaw)
-	5 = Axis is for up and down movement
-Additionally, each axis can be designated as an absolute axis (like a joystick) or a relative axis (like the FPgaming trackball).  Absolute axes are defined as having a stopping position whereas relative axes don't have a stopping position and just go around and around.  To designate an axis as a relative axis, add 16 to the above control number.  For example, to set the Assassin 3D's axis U to be looking left and right, type 'joyadvaxisu 20'.  As another example, to make your rudder pedals contol turning left and right, type 'joyadvaxisr 4'.  It's a bit complicated, but only needs to be done once.
-
-The advanced axes variables will not have any effect until joyadvanced is set to 1.  Additionally, any changes to the to the axes will not take effect until the joyadvancedupdate command is executed.  So, the procedure for creating an advanced mapping is:
-1.  set 'joy_advanced 1'
-2.  make any desired mapping changes
-3.  make any desired sensitivity changes
-4.  make any desired threshold changes
-3.  call 'joy_advancedupdate'
-
-Here is the config file for the FPgaming Assassin 3D:
-// ADVA3D.CFG
-// Revision 2.0 -- refer to www.fpgaming.com for updates
-joy_name "FPgaming Assassin 3D"
-+mlook
-in_joystick 1
-joy_advanced 1
-joy_advaxisx 3
-joy_advaxisy 1
-joy_advaxisz 0
-joy_advaxisr 0
-joy_advaxisu 20
-joy_advaxisv 18
-joy_forwardsensitivity -1.0
-joy_sidesensitivity 1.0
-joy_upsensitivity 1.0
-joy_pitchsensitivity -0.25
-joy_yawsensitivity -0.5
-joy_forwardthreshold 0.15
-joy_sidethreshold 0.15
-joy_upthreshold 0.15
-joy_yawthreshold 0.0
-joy_pitchthreshold 0.0
-joy_advancedupdate
-
-Here is a config file for the Mad Catz Panther and Mad Catz Panther XL:
-// ADVPNTHR.CFG
-// Revision 2.0 -- refer to www.madcatz.com for updates
-joy_name "Mad Catz Panther/Panther XL"
-+mlook
-in_joystick 1
-joy_advanced 1
-joy_advaxisx 3
-joy_advaxisy 1
-joy_advaxisz 0
-joy_advaxisr 0
-joy_advaxisu 20
-joy_advaxisv 18
-joy_forwardsensitivity -1.0
-joy_sidesensitivity 1.0
-joy_upsensitivity 1.0
-joy_pitchsensitivity -0.25
-joy_yawsensitivity -0.5
-joy_forwardthreshold 0.15
-joy_sidethreshold 0.15
-joy_upthreshold 0.15
-joy_yawthreshold 0.0
-joy_pitchthreshold 0.0
-joy_advancedupdate
-
-Here is a config file for the Logitech WingMan Warrior:
-// ADVWW.CFG
-// Revision 0.2 -- refer to www.logitech.com for updates
-joy_name "Logitech WingMan Warrior"
-in_joystick 1
-joy_advanced 1
-joy_advaxisx 3
-joy_advaxisy 1
-joy_advaxisz 0
-joy_advaxisr 4
-joy_advaxisu 0
-joy_advaxisv 0
-joy_forwardsensitivity -1.0
-joy_sidesensitivity 1.0
-joy_upsensitivity 1.0
-joy_pitchsensitivity 0.0
-joy_yawsensitivity -3.0
-joy_forwardthreshold 0.15
-joy_sidethreshold 0.15
-joy_upthreshold 0.15
-joy_pitchthreshold 0.0
-joy_yawthreshold 0.0
-joy_advancedupdate
-
-Here is a config file for the SpaceTec IMC SpaceOrb 360:
-// ADVSPORB.CFG
-// Revision 0.2 -- refer to www.spacetec.com for updates
-joy_name "SpaceTec IMC SpaceOrb 360"
-+mlook
-in_joystick 1
-joy_advanced 1
-joy_advaxisx 3
-joy_advaxisy 0
-joy_advaxisz 1
-joy_advaxisr 2
-joy_advaxisu 4
-joy_advaxisv 5
-joy_forwardsensitivity 2.5
-joy_sidesensitivity 2.0
-joy_upsensitivity -2.0
-joy_pitchsensitivity 2.0
-joy_yawsensitivity 5.0
-joy_forwardthreshold 0.0
-joy_sidethreshold 0.0
-joy_upthreshold 0.15
-joy_pitchthreshold 0.1
-joy_yawthreshold 0.0
-joy_advancedupdate
-
-Here is a config file for making your joystick operate looking around and strafing, your rudder pedals control turning left and right and throttle control moving forward and backward:
-joy_name "Joystick, Rudder & Throttle"
-in_joystick 1
-joy_advanced 1
-joy_advaxisx 3
-joy_advaxisy 2
-joy_advaxisz 1
-joy_advaxisr 4
-joy_advaxisu 0
-joy_advaxisv 0
-joy_forwardsensitivity -1.0
-joy_sidesensitivity -1.0
-joy_upsensitivity 1.0
-joy_pitchsensitivity 1.0
-joy_yawsensitivity -1.0
-joy_forwardthreshold 0.15
-joy_sidethreshold 0.15
-joy_upthreshold 0.15
-joy_pitchthreshold 0.15
-joy_yawthreshold 0.15
-joy_advancedupdate
--- /dev/null
+++ b/mkfile
@@ -1,0 +1,289 @@
+</$objtype/mkfile
+
+BIN=.
+TARG=qk2
+
+CLDIR=client
+SVDIR=server
+SRDIR=ref_soft
+CMDIR=qcommon
+P9DIR=plan9
+GMDIR=game
+CTFDIR=ctf
+XADIR=xatrix
+
+CLOFILES=\
+	$CLDIR/cl_cin.$O\
+	$CLDIR/cl_ents.$O\
+	$CLDIR/cl_fx.$O\
+	$CLDIR/cl_newfx.$O\
+	$CLDIR/cl_input.$O\
+	$CLDIR/cl_inv.$O\
+	$CLDIR/cl_main.$O\
+	$CLDIR/cl_parse.$O\
+	$CLDIR/cl_pred.$O\
+	$CLDIR/cl_tent.$O\
+	$CLDIR/cl_scrn.$O\
+	$CLDIR/cl_view.$O\
+	$CLDIR/console.$O\
+	$CLDIR/keys.$O\
+	$CLDIR/menu.$O\
+	$CLDIR/snd_dma.$O\
+	$CLDIR/snd_mem.$O\
+	$CLDIR/snd_mix.$O\
+	$CLDIR/qmenu.$O\
+	$GMDIR/m_flash.$O\
+	$CMDIR/cmd.$O\
+	$CMDIR/cmodel.$O\
+	$CMDIR/common.$O\
+	$CMDIR/crc.$O\
+	$CMDIR/cvar.$O\
+	$CMDIR/files.$O\
+	$CMDIR/md4.$O\
+	$CMDIR/net_chan.$O\
+	$GMDIR/q_shared.$O\
+	$CMDIR/pmove.$O\
+	$SVDIR/sv_ccmds.$O\
+	$SVDIR/sv_ents.$O\
+	$SVDIR/sv_game.$O\
+	$SVDIR/sv_init.$O\
+	$SVDIR/sv_main.$O\
+	$SVDIR/sv_send.$O\
+	$SVDIR/sv_user.$O\
+	$SVDIR/sv_world.$O\
+	$P9DIR/cd_linux.$O\
+	$P9DIR/q_shlinux.$O\
+	$P9DIR/vid_menu.$O\
+	$P9DIR/vid_so.$O\
+	$P9DIR/snd_linux.$O\
+	$P9DIR/sys_linux.$O\
+	$P9DIR/glob.$O\
+	$P9DIR/net_udp.$O\
+
+CLHFILES=\
+	$CLDIR/cdaudio.h\
+	$CLDIR/client.h\
+	$CLDIR/console.h\
+	$CLDIR/input.h\
+	$CLDIR/keys.h\
+	$CLDIR/qmenu.h\
+	$CLDIR/ref.h\
+	$CLDIR/screen.h\
+	$CLDIR/snd_loc.h\
+	$CLDIR/sound.h\
+	$CLDIR/vid.h\
+
+GMOFILES=\
+	$GMDIR/g_ai.$O\
+	$GMDIR/p_client.$O\
+	$GMDIR/g_chase.$O\
+	$GMDIR/g_cmds.$O\
+	$GMDIR/g_svcmds.$O\
+	$GMDIR/g_combat.$O\
+	$GMDIR/g_func.$O\
+	$GMDIR/g_items.$O\
+	$GMDIR/g_main.$O\
+	$GMDIR/g_misc.$O\
+	$GMDIR/g_monster.$O\
+	$GMDIR/g_phys.$O\
+	$GMDIR/g_save.$O\
+	$GMDIR/g_spawn.$O\
+	$GMDIR/g_target.$O\
+	$GMDIR/g_trigger.$O\
+	$GMDIR/g_turret.$O\
+	$GMDIR/g_utils.$O\
+	$GMDIR/g_weapon.$O\
+	$GMDIR/m_actor.$O\
+	$GMDIR/m_berserk.$O\
+	$GMDIR/m_boss2.$O\
+	$GMDIR/m_boss3.$O\
+	$GMDIR/m_boss31.$O\
+	$GMDIR/m_boss32.$O\
+	$GMDIR/m_brain.$O\
+	$GMDIR/m_chick.$O\
+	$GMDIR/m_flipper.$O\
+	$GMDIR/m_float.$O\
+	$GMDIR/m_flyer.$O\
+	$GMDIR/m_gladiator.$O\
+	$GMDIR/m_gunner.$O\
+	$GMDIR/m_hover.$O\
+	$GMDIR/m_infantry.$O\
+	$GMDIR/m_insane.$O\
+	$GMDIR/m_medic.$O\
+	$GMDIR/m_move.$O\
+	$GMDIR/m_mutant.$O\
+	$GMDIR/m_parasite.$O\
+	$GMDIR/m_soldier.$O\
+	$GMDIR/m_supertank.$O\
+	$GMDIR/m_tank.$O\
+	$GMDIR/p_hud.$O\
+	$GMDIR/p_trail.$O\
+	$GMDIR/p_view.$O\
+	$GMDIR/p_weapon.$O\
+	$GMDIR/q_shared.$O\
+	$GMDIR/m_flash.$O\
+
+GMHFILES=\
+	$GMDIR/g_local.h\
+	$GMDIR/game.h\
+	$GMDIR/m_actor.h\
+	$GMDIR/m_berserk.h\
+	$GMDIR/m_boss2.h\
+	$GMDIR/m_boss31.h\
+	$GMDIR/m_boss32.h\
+	$GMDIR/m_brain.h\
+	$GMDIR/m_chick.h\
+	$GMDIR/m_flipper.h\
+	$GMDIR/m_float.h\
+	$GMDIR/m_flyer.h\
+	$GMDIR/m_gladiator.h\
+	$GMDIR/m_gunner.h\
+	$GMDIR/m_hover.h\
+	$GMDIR/m_infantry.h\
+	$GMDIR/m_insane.h\
+	$GMDIR/m_medic.h\
+	$GMDIR/m_mutant.h\
+	$GMDIR/m_parasite.h\
+	$GMDIR/m_player.h\
+	$GMDIR/m_rider.h\
+	$GMDIR/m_soldier.h\
+	$GMDIR/m_supertank.h\
+	$GMDIR/m_tank.h\
+
+CTFOFILES=\
+	$CTFDIR/g_ai.$O\
+	$CTFDIR/g_chase.$O\
+	$CTFDIR/g_cmds.$O\
+	$CTFDIR/g_combat.$O\
+	$CTFDIR/g_ctf.$O\
+	$CTFDIR/g_func.$O\
+	$CTFDIR/g_items.$O\
+	$CTFDIR/g_main.$O\
+	$CTFDIR/g_misc.$O\
+	$CTFDIR/g_monster.$O\
+	$CTFDIR/g_phys.$O\
+	$CTFDIR/g_save.$O\
+	$CTFDIR/g_spawn.$O\
+	$CTFDIR/g_svcmds.$O\
+	$CTFDIR/g_target.$O\
+	$CTFDIR/g_trigger.$O\
+	$CTFDIR/g_utils.$O\
+	$CTFDIR/g_weapon.$O\
+	$CTFDIR/m_move.$O\
+	$CTFDIR/p_client.$O\
+	$CTFDIR/p_hud.$O\
+	$CTFDIR/p_menu.$O\
+	$CTFDIR/p_trail.$O\
+	$CTFDIR/p_view.$O\
+	$CTFDIR/p_weapon.$O\
+	$CTFDIR/q_shared.$O\
+
+CTFHFILES=\
+	$CTFDIR/g_ctf.h\
+	$CTFDIR/g_local.h\
+	$CTFDIR/game.h\
+	$CTFDIR/m_player.h\
+	$CTFDIR/p_menu.h\
+
+XAOFILES=\
+	$XADIR/g_ai.$O\
+	$XADIR/g_cmds.$O\
+	$XADIR/g_combat.$O\
+	$XADIR/g_func.$O\
+	$XADIR/g_items.$O\
+	$XADIR/g_main.$O\
+	$XADIR/g_misc.$O\
+	$XADIR/g_monster.$O\
+	$XADIR/g_phys.$O\
+	$XADIR/g_save.$O\
+	$XADIR/g_spawn.$O\
+	$XADIR/g_svcmds.$O\
+	$XADIR/g_target.$O\
+	$XADIR/g_trigger.$O\
+	$XADIR/g_turret.$O\
+	$XADIR/g_utils.$O\
+	$XADIR/g_weapon.$O\
+	$XADIR/m_actor.$O\
+	$XADIR/m_berserk.$O\
+	$XADIR/m_boss2.$O\
+	$XADIR/m_boss3.$O\
+	$XADIR/m_boss31.$O\
+	$XADIR/m_boss32.$O\
+	$XADIR/m_boss5.$O\
+	$XADIR/m_brain.$O\
+	$XADIR/m_chick.$O\
+	$XADIR/m_fixbot.$O\
+	$XADIR/m_flash.$O\
+	$XADIR/m_flipper.$O\
+	$XADIR/m_float.$O\
+	$XADIR/m_flyer.$O\
+	$XADIR/m_gekk.$O\
+	$XADIR/m_gladb.$O\
+	$XADIR/m_gladiator.$O\
+	$XADIR/m_gunner.$O\
+	$XADIR/m_hover.$O\
+	$XADIR/m_infantry.$O\
+	$XADIR/m_insane.$O\
+	$XADIR/m_medic.$O\
+	$XADIR/m_move.$O\
+	$XADIR/m_mutant.$O\
+	$XADIR/m_parasite.$O\
+	$XADIR/m_soldier.$O\
+	$XADIR/m_supertank.$O\
+	$XADIR/m_tank.$O\
+	$XADIR/p_client.$O\
+	$XADIR/p_hud.$O\
+	$XADIR/p_trail.$O\
+	$XADIR/p_view.$O\
+	$XADIR/p_weapon.$O\
+	$XADIR/q_shared.$O\
+
+# FIXME
+XAHFILES=
+
+SROFILES=\
+	$SRDIR/r_aclip.$O\
+	$SRDIR/r_alias.$O\
+	$SRDIR/r_bsp.$O\
+	$SRDIR/r_draw.$O\
+	$SRDIR/r_edge.$O\
+	$SRDIR/r_image.$O\
+	$SRDIR/r_light.$O\
+	$SRDIR/r_main.$O\
+	$SRDIR/r_misc.$O\
+	$SRDIR/r_model.$O\
+	$SRDIR/r_part.$O\
+	$SRDIR/r_poly.$O\
+	$SRDIR/r_polyse.$O\
+	$SRDIR/r_rast.$O\
+	$SRDIR/r_scan.$O\
+	$SRDIR/r_sprite.$O\
+	$SRDIR/r_surf.$O\
+	$GMDIR/q_shared.$O\
+	$P9DIR/q_shlinux.$O\
+	$P9DIR/glob.$O\
+	$P9DIR/rw_x11.$O\
+
+SRHFILES=\
+	$SRDIR/adivtab.h\
+	$SRDIR/r_local.h\
+	$SRDIR/r_model.h\
+	$SRDIR/rand1k.h\
+
+CMHFILES=\
+	$CMDIR/crc.h\
+	$CMDIR/qcommon.h\
+	$CMDIR/qfiles.h\
+
+# only build and link needed modules for main game
+# *ofiles: ofiles needed for each module
+# *hfiles: hfiles in each module directory...
+OFILES= $CLOFILES $GMOFILES $SROFILES
+HFILES= $CLHFILES $GMHFILES $SRHFILES $CMHFILES \
+	anorms.h\
+	q_shared.h\
+
+</sys/src/cmd/mkone
+
+# FIXME
+CFLAGS=-FVw
--- a/plan9/mkfile
+++ /dev/null
@@ -1,299 +1,0 @@
-</$objtype/mkfile
-
-BIN=.
-TARG=qk2
-
-CLDIR=../client
-SVDIR=../server
-SRDIR=../ref_soft
-CMDIR=../qcommon
-P9DIR=.
-GMDIR=../game
-CTFDIR=../ctf
-XADIR=../xatrix
-
-CLOFILES=\
-	$CLDIR/cl_cin.$O\
-	$CLDIR/cl_ents.$O\
-	$CLDIR/cl_fx.$O\
-	$CLDIR/cl_newfx.$O\
-	$CLDIR/cl_input.$O\
-	$CLDIR/cl_inv.$O\
-	$CLDIR/cl_main.$O\
-	$CLDIR/cl_parse.$O\
-	$CLDIR/cl_pred.$O\
-	$CLDIR/cl_tent.$O\
-	$CLDIR/cl_scrn.$O\
-	$CLDIR/cl_view.$O\
-	$CLDIR/console.$O\
-	$CLDIR/keys.$O\
-	$CLDIR/menu.$O\
-	$CLDIR/snd_dma.$O\
-	$CLDIR/snd_mem.$O\
-	$CLDIR/snd_mix.$O\
-	$CLDIR/qmenu.$O\
-	$GMDIR/m_flash.$O\
-	$CMDIR/cmd.$O\
-	$CMDIR/cmodel.$O\
-	$CMDIR/common.$O\
-	$CMDIR/crc.$O\
-	$CMDIR/cvar.$O\
-	$CMDIR/files.$O\
-	$CMDIR/md4.$O\
-	$CMDIR/net_chan.$O\
-	$GMDIR/q_shared.$O\
-	$CMDIR/pmove.$O\
-	$SVDIR/sv_ccmds.$O\
-	$SVDIR/sv_ents.$O\
-	$SVDIR/sv_game.$O\
-	$SVDIR/sv_init.$O\
-	$SVDIR/sv_main.$O\
-	$SVDIR/sv_send.$O\
-	$SVDIR/sv_user.$O\
-	$SVDIR/sv_world.$O\
-	$P9DIR/cd_linux.$O\
-	$P9DIR/q_shlinux.$O\
-	$P9DIR/vid_menu.$O\
-	$P9DIR/vid_so.$O\
-	$P9DIR/snd_linux.$O\
-	$P9DIR/sys_linux.$O\
-	$P9DIR/glob.$O\
-	$P9DIR/net_udp.$O\
-
-CLHFILES=\
-	$CLDIR/adivtab.h\
-	$CLDIR/anorms.h\
-	$CLDIR/asm_i386.h\
-	$CLDIR/block16.h\
-	$CLDIR/block8.h\
-	$CLDIR/cdaudio.h\
-	$CLDIR/client.h\
-	$CLDIR/console.h\
-	$CLDIR/input.h\
-	$CLDIR/keys.h\
-	$CLDIR/qmenu.h\
-	$CLDIR/ref.h\
-	$CLDIR/screen.h\
-	$CLDIR/snd_loc.h\
-	$CLDIR/sound.h\
-	$CLDIR/vid.h\
-
-# g_chase.c -> ChasePrev, ChaseNext, .. undefined symbols -> dlopen fails
-	#$GMDIR/g_chase.$O\
-GMOFILES=\
-	$GMDIR/g_ai.$O\
-	$GMDIR/p_client.$O\
-	$GMDIR/g_cmds.$O\
-	$GMDIR/g_svcmds.$O\
-	$GMDIR/g_combat.$O\
-	$GMDIR/g_func.$O\
-	$GMDIR/g_items.$O\
-	$GMDIR/g_main.$O\
-	$GMDIR/g_misc.$O\
-	$GMDIR/g_monster.$O\
-	$GMDIR/g_phys.$O\
-	$GMDIR/g_save.$O\
-	$GMDIR/g_spawn.$O\
-	$GMDIR/g_target.$O\
-	$GMDIR/g_trigger.$O\
-	$GMDIR/g_turret.$O\
-	$GMDIR/g_utils.$O\
-	$GMDIR/g_weapon.$O\
-	$GMDIR/m_actor.$O\
-	$GMDIR/m_berserk.$O\
-	$GMDIR/m_boss2.$O\
-	$GMDIR/m_boss3.$O\
-	$GMDIR/m_boss31.$O\
-	$GMDIR/m_boss32.$O\
-	$GMDIR/m_brain.$O\
-	$GMDIR/m_chick.$O\
-	$GMDIR/m_flipper.$O\
-	$GMDIR/m_float.$O\
-	$GMDIR/m_flyer.$O\
-	$GMDIR/m_gladiator.$O\
-	$GMDIR/m_gunner.$O\
-	$GMDIR/m_hover.$O\
-	$GMDIR/m_infantry.$O\
-	$GMDIR/m_insane.$O\
-	$GMDIR/m_medic.$O\
-	$GMDIR/m_move.$O\
-	$GMDIR/m_mutant.$O\
-	$GMDIR/m_parasite.$O\
-	$GMDIR/m_soldier.$O\
-	$GMDIR/m_supertank.$O\
-	$GMDIR/m_tank.$O\
-	$GMDIR/p_hud.$O\
-	$GMDIR/p_trail.$O\
-	$GMDIR/p_view.$O\
-	$GMDIR/p_weapon.$O\
-	$GMDIR/q_shared.$O\
-	$GMDIR/m_flash.$O\
-
-GMHFILES=\
-	$GMDIR/g_local.h\
-	$GMDIR/game.h\
-	$GMDIR/m_actor.h\
-	$GMDIR/m_berserk.h\
-	$GMDIR/m_boss2.h\
-	$GMDIR/m_boss31.h\
-	$GMDIR/m_boss32.h\
-	$GMDIR/m_brain.h\
-	$GMDIR/m_chick.h\
-	$GMDIR/m_flipper.h\
-	$GMDIR/m_float.h\
-	$GMDIR/m_flyer.h\
-	$GMDIR/m_gladiator.h\
-	$GMDIR/m_gunner.h\
-	$GMDIR/m_hover.h\
-	$GMDIR/m_infantry.h\
-	$GMDIR/m_insane.h\
-	$GMDIR/m_medic.h\
-	$GMDIR/m_mutant.h\
-	$GMDIR/m_parasite.h\
-	$GMDIR/m_player.h\
-	$GMDIR/m_rider.h\
-	$GMDIR/m_soldier.h\
-	$GMDIR/m_supertank.h\
-	$GMDIR/m_tank.h\
-	$GMDIR/q_shared.h\
-
-CTFOFILES=\
-	$CTFDIR/g_ai.$O\
-	$CTFDIR/g_chase.$O\
-	$CTFDIR/g_cmds.$O\
-	$CTFDIR/g_combat.$O\
-	$CTFDIR/g_ctf.$O\
-	$CTFDIR/g_func.$O\
-	$CTFDIR/g_items.$O\
-	$CTFDIR/g_main.$O\
-	$CTFDIR/g_misc.$O\
-	$CTFDIR/g_monster.$O\
-	$CTFDIR/g_phys.$O\
-	$CTFDIR/g_save.$O\
-	$CTFDIR/g_spawn.$O\
-	$CTFDIR/g_svcmds.$O\
-	$CTFDIR/g_target.$O\
-	$CTFDIR/g_trigger.$O\
-	$CTFDIR/g_utils.$O\
-	$CTFDIR/g_weapon.$O\
-	$CTFDIR/m_move.$O\
-	$CTFDIR/p_client.$O\
-	$CTFDIR/p_hud.$O\
-	$CTFDIR/p_menu.$O\
-	$CTFDIR/p_trail.$O\
-	$CTFDIR/p_view.$O\
-	$CTFDIR/p_weapon.$O\
-	$CTFDIR/q_shared.$O\
-
-CTFHFILES=\
-	$CTFDIR/g_ctf.h\
-	$CTFDIR/g_local.h\
-	$CTFDIR/game.h\
-	$CTFDIR/m_player.h\
-	$CTFDIR/p_menu.h\
-	$CTFDIR/q_shared.h\
-
-XAOFILES=\
-	$XADIR/g_ai.$O\
-	$XADIR/g_cmds.$O\
-	$XADIR/g_combat.$O\
-	$XADIR/g_func.$O\
-	$XADIR/g_items.$O\
-	$XADIR/g_main.$O\
-	$XADIR/g_misc.$O\
-	$XADIR/g_monster.$O\
-	$XADIR/g_phys.$O\
-	$XADIR/g_save.$O\
-	$XADIR/g_spawn.$O\
-	$XADIR/g_svcmds.$O\
-	$XADIR/g_target.$O\
-	$XADIR/g_trigger.$O\
-	$XADIR/g_turret.$O\
-	$XADIR/g_utils.$O\
-	$XADIR/g_weapon.$O\
-	$XADIR/m_actor.$O\
-	$XADIR/m_berserk.$O\
-	$XADIR/m_boss2.$O\
-	$XADIR/m_boss3.$O\
-	$XADIR/m_boss31.$O\
-	$XADIR/m_boss32.$O\
-	$XADIR/m_boss5.$O\
-	$XADIR/m_brain.$O\
-	$XADIR/m_chick.$O\
-	$XADIR/m_fixbot.$O\
-	$XADIR/m_flash.$O\
-	$XADIR/m_flipper.$O\
-	$XADIR/m_float.$O\
-	$XADIR/m_flyer.$O\
-	$XADIR/m_gekk.$O\
-	$XADIR/m_gladb.$O\
-	$XADIR/m_gladiator.$O\
-	$XADIR/m_gunner.$O\
-	$XADIR/m_hover.$O\
-	$XADIR/m_infantry.$O\
-	$XADIR/m_insane.$O\
-	$XADIR/m_medic.$O\
-	$XADIR/m_move.$O\
-	$XADIR/m_mutant.$O\
-	$XADIR/m_parasite.$O\
-	$XADIR/m_soldier.$O\
-	$XADIR/m_supertank.$O\
-	$XADIR/m_tank.$O\
-	$XADIR/p_client.$O\
-	$XADIR/p_hud.$O\
-	$XADIR/p_trail.$O\
-	$XADIR/p_view.$O\
-	$XADIR/p_weapon.$O\
-	$XADIR/q_shared.$O\
-
-# FIXME
-XAHFILES=
-
-SROFILES=\
-	$SRDIR/r_aclip.$O\
-	$SRDIR/r_alias.$O\
-	$SRDIR/r_bsp.$O\
-	$SRDIR/r_draw.$O\
-	$SRDIR/r_edge.$O\
-	$SRDIR/r_image.$O\
-	$SRDIR/r_light.$O\
-	$SRDIR/r_main.$O\
-	$SRDIR/r_misc.$O\
-	$SRDIR/r_model.$O\
-	$SRDIR/r_part.$O\
-	$SRDIR/r_poly.$O\
-	$SRDIR/r_polyse.$O\
-	$SRDIR/r_rast.$O\
-	$SRDIR/r_scan.$O\
-	$SRDIR/r_sprite.$O\
-	$SRDIR/r_surf.$O\
-	$GMDIR/q_shared.$O\
-	$P9DIR/q_shlinux.$O\
-	$P9DIR/glob.$O\
-	$P9DIR/rw_x11.$O\
-
-SRHFILES=\
-	$SRDIR/adivtab.h\
-	$SRDIR/anorms.h\
-	$SRDIR/asm_draw.h\
-	$SRDIR/d_ifacea.h\
-	$SRDIR/r_local.h\
-	$SRDIR/r_model.h\
-	$SRDIR/rand1k.h\
-
-CMHFILES=\
-	$CMDIR/crc.h\
-	$CMDIR/qcommon.h\
-	$CMDIR/qfiles.h\
-
-# only build and link needed modules for main game
-# *ofiles: ofiles needed for each module
-# *hfiles: hfiles in each module directory...
-OFILES= $CLOFILES $GMOFILES $SROFILES
-HFILES= $CLHFILES $GMHFILES $SRHFILES $CMHFILES
-
-</sys/src/cmd/mkone
-
-# FIXME
-clean:
-	rm -f $CLOFILES $GMOFILES $SROFILES $CTFOFILES $XAOFILES
--- /dev/null
+++ b/q_shared.h
@@ -1,0 +1,1200 @@
+/*
+Copyright (C) 1997-2001 Id Software, Inc.
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
+
+See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+
+*/
+	
+// q_shared.h -- included first by ALL program modules
+
+#ifdef _WIN32
+// unknown pragmas are SUPPOSED to be ignored, but....
+#pragma warning(disable : 4244)     // MIPS
+#pragma warning(disable : 4136)     // X86
+#pragma warning(disable : 4051)     // ALPHA
+
+#pragma warning(disable : 4018)     // signed/unsigned mismatch
+#pragma warning(disable : 4305)		// truncation from const double to float
+
+#endif
+
+#include <assert.h>
+#include <math.h>
+#include <stdio.h>
+#include <stdarg.h>
+#include <string.h>
+#include <stdlib.h>
+#include <time.h>
+
+#if (defined _M_IX86 || defined __i386__) && !defined C_ONLY && !defined __sun__
+#define id386	1
+#else
+#define id386	0
+#endif
+
+#if defined _M_ALPHA && !defined C_ONLY
+#define idaxp	1
+#else
+#define idaxp	0
+#endif
+
+typedef unsigned char 		byte;
+typedef enum {false, true}	qboolean;
+
+
+#ifndef NULL
+#define NULL ((void *)0)
+#endif
+
+
+// angle indexes
+#define	PITCH				0		// up / down
+#define	YAW					1		// left / right
+#define	ROLL				2		// fall over
+
+#define	MAX_STRING_CHARS	1024	// max length of a string passed to Cmd_TokenizeString
+#define	MAX_STRING_TOKENS	80		// max tokens resulting from Cmd_TokenizeString
+#define	MAX_TOKEN_CHARS		128		// max length of an individual token
+
+#define	MAX_QPATH			64		// max length of a quake game pathname
+#define	MAX_OSPATH			128		// max length of a filesystem pathname
+
+//
+// per-level limits
+//
+#define	MAX_CLIENTS			256		// absolute limit
+#define	MAX_EDICTS			1024	// must change protocol to increase more
+#define	MAX_LIGHTSTYLES		256
+#define	MAX_MODELS			256		// these are sent over the net as bytes
+#define	MAX_SOUNDS			256		// so they cannot be blindly increased
+#define	MAX_IMAGES			256
+#define	MAX_ITEMS			256
+#define MAX_GENERAL			(MAX_CLIENTS*2)	// general config strings
+
+
+// game print flags
+#define	PRINT_LOW			0		// pickup messages
+#define	PRINT_MEDIUM		1		// death messages
+#define	PRINT_HIGH			2		// critical messages
+#define	PRINT_CHAT			3		// chat messages
+
+
+
+#define	ERR_FATAL			0		// exit the entire game with a popup window
+#define	ERR_DROP			1		// print to console and disconnect from game
+#define	ERR_DISCONNECT		2		// don't kill server
+
+#define	PRINT_ALL			0
+#define PRINT_DEVELOPER		1		// only print when "developer 1"
+#define PRINT_ALERT			2		
+
+
+// destination class for gi.multicast()
+typedef enum
+{
+MULTICAST_ALL,
+MULTICAST_PHS,
+MULTICAST_PVS,
+MULTICAST_ALL_R,
+MULTICAST_PHS_R,
+MULTICAST_PVS_R
+} multicast_t;
+
+
+/*
+==============================================================
+
+MATHLIB
+
+==============================================================
+*/
+
+typedef float vec_t;
+typedef vec_t vec3_t[3];
+typedef vec_t vec5_t[5];
+
+typedef	int	fixed4_t;
+typedef	int	fixed8_t;
+typedef	int	fixed16_t;
+
+#ifndef M_PI
+#define M_PI		3.14159265358979323846	// matches value in gcc v2 math.h
+#endif
+
+struct cplane_s;
+
+extern vec3_t vec3_origin;
+
+#define	nanmask (255<<23)
+
+#define	IS_NAN(x) (((*(int *)&x)&nanmask)==nanmask)
+
+// microsoft's fabs seems to be ungodly slow...
+//float Q_fabs (float f);
+//#define	fabs(f) Q_fabs(f)
+#if !defined C_ONLY && !defined __linux__ && !defined __sgi
+extern long Q_ftol( float f );
+#else
+#define Q_ftol( f ) ( long ) (f)
+#endif
+
+#define DotProduct(x,y)			(x[0]*y[0]+x[1]*y[1]+x[2]*y[2])
+#define VectorSubtract(a,b,c)	(c[0]=a[0]-b[0],c[1]=a[1]-b[1],c[2]=a[2]-b[2])
+#define VectorAdd(a,b,c)		(c[0]=a[0]+b[0],c[1]=a[1]+b[1],c[2]=a[2]+b[2])
+#define VectorCopy(a,b)			(b[0]=a[0],b[1]=a[1],b[2]=a[2])
+#define VectorClear(a)			(a[0]=a[1]=a[2]=0)
+#define VectorNegate(a,b)		(b[0]=-a[0],b[1]=-a[1],b[2]=-a[2])
+#define VectorSet(v, x, y, z)	(v[0]=(x), v[1]=(y), v[2]=(z))
+
+void VectorMA (vec3_t veca, float scale, vec3_t vecb, vec3_t vecc);
+
+// just in case you do't want to use the macros
+vec_t _DotProduct (vec3_t v1, vec3_t v2);
+void _VectorSubtract (vec3_t veca, vec3_t vecb, vec3_t out);
+void _VectorAdd (vec3_t veca, vec3_t vecb, vec3_t out);
+void _VectorCopy (vec3_t in, vec3_t out);
+
+void ClearBounds (vec3_t mins, vec3_t maxs);
+void AddPointToBounds (vec3_t v, vec3_t mins, vec3_t maxs);
+int VectorCompare (vec3_t v1, vec3_t v2);
+vec_t VectorLength (vec3_t v);
+void CrossProduct (vec3_t v1, vec3_t v2, vec3_t cross);
+vec_t VectorNormalize (vec3_t v);		// returns vector length
+vec_t VectorNormalize2 (vec3_t v, vec3_t out);
+void VectorInverse (vec3_t v);
+void VectorScale (vec3_t in, vec_t scale, vec3_t out);
+int Q_log2(int val);
+
+void R_ConcatRotations (float in1[3][3], float in2[3][3], float out[3][3]);
+void R_ConcatTransforms (float in1[3][4], float in2[3][4], float out[3][4]);
+
+void AngleVectors (vec3_t angles, vec3_t forward, vec3_t right, vec3_t up);
+int BoxOnPlaneSide (vec3_t emins, vec3_t emaxs, struct cplane_s *plane);
+float	anglemod(float a);
+float LerpAngle (float a1, float a2, float frac);
+
+#define BOX_ON_PLANE_SIDE(emins, emaxs, p)	\
+	(((p)->type < 3)?						\
+	(										\
+		((p)->dist <= (emins)[(p)->type])?	\
+			1								\
+		:									\
+		(									\
+			((p)->dist >= (emaxs)[(p)->type])?\
+				2							\
+			:								\
+				3							\
+		)									\
+	)										\
+	:										\
+		BoxOnPlaneSide( (emins), (emaxs), (p)))
+
+void ProjectPointOnPlane( vec3_t dst, const vec3_t p, const vec3_t normal );
+void PerpendicularVector( vec3_t dst, const vec3_t src );
+void RotatePointAroundVector( vec3_t dst, const vec3_t dir, const vec3_t point, float degrees );
+
+
+//=============================================
+
+char *COM_SkipPath (char *pathname);
+void COM_StripExtension (char *in, char *out);
+void COM_FileBase (char *in, char *out);
+void COM_FilePath (char *in, char *out);
+void COM_DefaultExtension (char *path, char *extension);
+
+char *COM_Parse (char **data_p);
+// data is an in/out parm, returns a parsed out token
+
+void Com_sprintf (char *dest, int size, char *fmt, ...);
+
+void Com_PageInMemory (byte *buffer, int size);
+
+//=============================================
+
+// portable case insensitive compare
+int Q_stricmp (char *s1, char *s2);
+int Q_strcasecmp (char *s1, char *s2);
+int Q_strncasecmp (char *s1, char *s2, int n);
+
+//=============================================
+
+short	BigShort(short l);
+short	LittleShort(short l);
+int		BigLong (int l);
+int		LittleLong (int l);
+float	BigFloat (float l);
+float	LittleFloat (float l);
+
+void	Swap_Init (void);
+char	*va(char *format, ...);
+
+//=============================================
+
+//
+// key / value info strings
+//
+#define	MAX_INFO_KEY		64
+#define	MAX_INFO_VALUE		64
+#define	MAX_INFO_STRING		512
+
+char *Info_ValueForKey (char *s, char *key);
+void Info_RemoveKey (char *s, char *key);
+void Info_SetValueForKey (char *s, char *key, char *value);
+qboolean Info_Validate (char *s);
+
+/*
+==============================================================
+
+SYSTEM SPECIFIC
+
+==============================================================
+*/
+
+extern	int	curtime;		// time returned by last Sys_Milliseconds
+
+int		Sys_Milliseconds (void);
+void	Sys_Mkdir (char *path);
+
+// large block stack allocation routines
+void	*Hunk_Begin (int maxsize);
+void	*Hunk_Alloc (int size);
+void	Hunk_Free (void *buf);
+int		Hunk_End (void);
+
+// directory searching
+#define SFF_ARCH    0x01
+#define SFF_HIDDEN  0x02
+#define SFF_RDONLY  0x04
+#define SFF_SUBDIR  0x08
+#define SFF_SYSTEM  0x10
+
+/*
+** pass in an attribute mask of things you wish to REJECT
+*/
+char	*Sys_FindFirst (char *path, unsigned musthave, unsigned canthave );
+char	*Sys_FindNext ( unsigned musthave, unsigned canthave );
+void	Sys_FindClose (void);
+
+
+// this is only here so the functions in q_shared.c and q_shwin.c can link
+void Sys_Error (char *error, ...);
+void Com_Printf (char *msg, ...);
+
+
+/*
+==========================================================
+
+CVARS (console variables)
+
+==========================================================
+*/
+
+#ifndef CVAR
+#define	CVAR
+
+#define	CVAR_ARCHIVE	1	// set to cause it to be saved to vars.rc
+#define	CVAR_USERINFO	2	// added to userinfo  when changed
+#define	CVAR_SERVERINFO	4	// added to serverinfo when changed
+#define	CVAR_NOSET		8	// don't allow change from console at all,
+							// but can be set from the command line
+#define	CVAR_LATCH		16	// save changes until server restart
+
+// nothing outside the Cvar_*() functions should modify these fields!
+typedef struct cvar_s
+{
+	char		*name;
+	char		*string;
+	char		*latched_string;	// for CVAR_LATCH vars
+	int			flags;
+	qboolean	modified;	// set each time the cvar is changed
+	float		value;
+	struct cvar_s *next;
+} cvar_t;
+
+#endif		// CVAR
+
+/*
+==============================================================
+
+COLLISION DETECTION
+
+==============================================================
+*/
+
+// lower bits are stronger, and will eat weaker brushes completely
+#define	CONTENTS_SOLID			1		// an eye is never valid in a solid
+#define	CONTENTS_WINDOW			2		// translucent, but not watery
+#define	CONTENTS_AUX			4
+#define	CONTENTS_LAVA			8
+#define	CONTENTS_SLIME			16
+#define	CONTENTS_WATER			32
+#define	CONTENTS_MIST			64
+#define	LAST_VISIBLE_CONTENTS	64
+
+// remaining contents are non-visible, and don't eat brushes
+
+#define	CONTENTS_AREAPORTAL		0x8000
+
+#define	CONTENTS_PLAYERCLIP		0x10000
+#define	CONTENTS_MONSTERCLIP	0x20000
+
+// currents can be added to any other contents, and may be mixed
+#define	CONTENTS_CURRENT_0		0x40000
+#define	CONTENTS_CURRENT_90		0x80000
+#define	CONTENTS_CURRENT_180	0x100000
+#define	CONTENTS_CURRENT_270	0x200000
+#define	CONTENTS_CURRENT_UP		0x400000
+#define	CONTENTS_CURRENT_DOWN	0x800000
+
+#define	CONTENTS_ORIGIN			0x1000000	// removed before bsping an entity
+
+#define	CONTENTS_MONSTER		0x2000000	// should never be on a brush, only in game
+#define	CONTENTS_DEADMONSTER	0x4000000
+#define	CONTENTS_DETAIL			0x8000000	// brushes to be added after vis leafs
+#define	CONTENTS_TRANSLUCENT	0x10000000	// auto set if any surface has trans
+#define	CONTENTS_LADDER			0x20000000
+
+
+
+#define	SURF_LIGHT		0x1		// value will hold the light strength
+
+#define	SURF_SLICK		0x2		// effects game physics
+
+#define	SURF_SKY		0x4		// don't draw, but add to skybox
+#define	SURF_WARP		0x8		// turbulent water warp
+#define	SURF_TRANS33	0x10
+#define	SURF_TRANS66	0x20
+#define	SURF_FLOWING	0x40	// scroll towards angle
+#define	SURF_NODRAW		0x80	// don't bother referencing the texture
+
+
+
+// content masks
+#define	MASK_ALL				(-1)
+#define	MASK_SOLID				(CONTENTS_SOLID|CONTENTS_WINDOW)
+#define	MASK_PLAYERSOLID		(CONTENTS_SOLID|CONTENTS_PLAYERCLIP|CONTENTS_WINDOW|CONTENTS_MONSTER)
+#define	MASK_DEADSOLID			(CONTENTS_SOLID|CONTENTS_PLAYERCLIP|CONTENTS_WINDOW)
+#define	MASK_MONSTERSOLID		(CONTENTS_SOLID|CONTENTS_MONSTERCLIP|CONTENTS_WINDOW|CONTENTS_MONSTER)
+#define	MASK_WATER				(CONTENTS_WATER|CONTENTS_LAVA|CONTENTS_SLIME)
+#define	MASK_OPAQUE				(CONTENTS_SOLID|CONTENTS_SLIME|CONTENTS_LAVA)
+#define	MASK_SHOT				(CONTENTS_SOLID|CONTENTS_MONSTER|CONTENTS_WINDOW|CONTENTS_DEADMONSTER)
+#define MASK_CURRENT			(CONTENTS_CURRENT_0|CONTENTS_CURRENT_90|CONTENTS_CURRENT_180|CONTENTS_CURRENT_270|CONTENTS_CURRENT_UP|CONTENTS_CURRENT_DOWN)
+
+
+// gi.BoxEdicts() can return a list of either solid or trigger entities
+// FIXME: eliminate AREA_ distinction?
+#define	AREA_SOLID		1
+#define	AREA_TRIGGERS	2
+
+
+// plane_t structure
+// !!! if this is changed, it must be changed in asm code too !!!
+typedef struct cplane_s
+{
+	vec3_t	normal;
+	float	dist;
+	byte	type;			// for fast side tests
+	byte	signbits;		// signx + (signy<<1) + (signz<<1)
+	byte	pad[2];
+} cplane_t;
+
+// structure offset for asm code
+#define CPLANE_NORMAL_X			0
+#define CPLANE_NORMAL_Y			4
+#define CPLANE_NORMAL_Z			8
+#define CPLANE_DIST				12
+#define CPLANE_TYPE				16
+#define CPLANE_SIGNBITS			17
+#define CPLANE_PAD0				18
+#define CPLANE_PAD1				19
+
+typedef struct cmodel_s
+{
+	vec3_t		mins, maxs;
+	vec3_t		origin;		// for sounds or lights
+	int			headnode;
+} cmodel_t;
+
+typedef struct csurface_s
+{
+	char		name[16];
+	int			flags;
+	int			value;
+} csurface_t;
+
+typedef struct mapsurface_s  // used internally due to name len probs //ZOID
+{
+	csurface_t	c;
+	char		rname[32];
+} mapsurface_t;
+
+// a trace is returned when a box is swept through the world
+typedef struct
+{
+	qboolean	allsolid;	// if true, plane is not valid
+	qboolean	startsolid;	// if true, the initial point was in a solid area
+	float		fraction;	// time completed, 1.0 = didn't hit anything
+	vec3_t		endpos;		// final position
+	cplane_t	plane;		// surface normal at impact
+	csurface_t	*surface;	// surface hit
+	int			contents;	// contents on other side of surface hit
+	struct edict_s	*ent;		// not set by CM_*() functions
+} trace_t;
+
+
+
+// pmove_state_t is the information necessary for client side movement
+// prediction
+typedef enum 
+{
+	// can accelerate and turn
+	PM_NORMAL,
+	PM_SPECTATOR,
+	// no acceleration or turning
+	PM_DEAD,
+	PM_GIB,		// different bounding box
+	PM_FREEZE
+} pmtype_t;
+
+// pmove->pm_flags
+#define	PMF_DUCKED			1
+#define	PMF_JUMP_HELD		2
+#define	PMF_ON_GROUND		4
+#define	PMF_TIME_WATERJUMP	8	// pm_time is waterjump
+#define	PMF_TIME_LAND		16	// pm_time is time before rejump
+#define	PMF_TIME_TELEPORT	32	// pm_time is non-moving time
+#define PMF_NO_PREDICTION	64	// temporarily disables prediction (used for grappling hook)
+
+// this structure needs to be communicated bit-accurate
+// from the server to the client to guarantee that
+// prediction stays in sync, so no floats are used.
+// if any part of the game code modifies this struct, it
+// will result in a prediction error of some degree.
+typedef struct
+{
+	pmtype_t	pm_type;
+
+	short		origin[3];		// 12.3
+	short		velocity[3];	// 12.3
+	byte		pm_flags;		// ducked, jump_held, etc
+	byte		pm_time;		// each unit = 8 ms
+	short		gravity;
+	short		delta_angles[3];	// add to command angles to get view direction
+									// changed by spawns, rotating objects, and teleporters
+} pmove_state_t;
+
+
+//
+// button bits
+//
+#define	BUTTON_ATTACK		1
+#define	BUTTON_USE			2
+#define	BUTTON_ANY			128			// any key whatsoever
+
+
+// usercmd_t is sent to the server each client frame
+typedef struct usercmd_s
+{
+	byte	msec;
+	byte	buttons;
+	short	angles[3];
+	short	forwardmove, sidemove, upmove;
+	byte	impulse;		// remove?
+	byte	lightlevel;		// light level the player is standing on
+} usercmd_t;
+
+
+#define	MAXTOUCH	32
+typedef struct
+{
+	// state (in / out)
+	pmove_state_t	s;
+
+	// command (in)
+	usercmd_t		cmd;
+	qboolean		snapinitial;	// if s has been changed outside pmove
+
+	// results (out)
+	int			numtouch;
+	struct edict_s	*touchents[MAXTOUCH];
+
+	vec3_t		viewangles;			// clamped
+	float		viewheight;
+
+	vec3_t		mins, maxs;			// bounding box size
+
+	struct edict_s	*groundentity;
+	int			watertype;
+	int			waterlevel;
+
+	// callbacks to test the world
+	trace_t		(*trace) (vec3_t start, vec3_t mins, vec3_t maxs, vec3_t end);
+	int			(*pointcontents) (vec3_t point);
+} pmove_t;
+
+
+// entity_state_t->effects
+// Effects are things handled on the client side (lights, particles, frame animations)
+// that happen constantly on the given entity.
+// An entity that has effects will be sent to the client
+// even if it has a zero index model.
+#define	EF_ROTATE			0x00000001		// rotate (bonus items)
+#define	EF_GIB				0x00000002		// leave a trail
+#define	EF_BLASTER			0x00000008		// redlight + trail
+#define	EF_ROCKET			0x00000010		// redlight + trail
+#define	EF_GRENADE			0x00000020
+#define	EF_HYPERBLASTER		0x00000040
+#define	EF_BFG				0x00000080
+#define EF_COLOR_SHELL		0x00000100
+#define EF_POWERSCREEN		0x00000200
+#define	EF_ANIM01			0x00000400		// automatically cycle between frames 0 and 1 at 2 hz
+#define	EF_ANIM23			0x00000800		// automatically cycle between frames 2 and 3 at 2 hz
+#define EF_ANIM_ALL			0x00001000		// automatically cycle through all frames at 2hz
+#define EF_ANIM_ALLFAST		0x00002000		// automatically cycle through all frames at 10hz
+#define	EF_FLIES			0x00004000
+#define	EF_QUAD				0x00008000
+#define	EF_PENT				0x00010000
+#define	EF_TELEPORTER		0x00020000		// particle fountain
+#define EF_FLAG1			0x00040000
+#define EF_FLAG2			0x00080000
+// RAFAEL
+#define EF_IONRIPPER		0x00100000
+#define EF_GREENGIB			0x00200000
+#define	EF_BLUEHYPERBLASTER 0x00400000
+#define EF_SPINNINGLIGHTS	0x00800000
+#define EF_PLASMA			0x01000000
+#define EF_TRAP				0x02000000
+
+//ROGUE
+#define EF_TRACKER			0x04000000
+#define	EF_DOUBLE			0x08000000
+#define	EF_SPHERETRANS		0x10000000
+#define EF_TAGTRAIL			0x20000000
+#define EF_HALF_DAMAGE		0x40000000
+#define EF_TRACKERTRAIL		0x80000000
+//ROGUE
+
+// entity_state_t->renderfx flags
+#define	RF_MINLIGHT			1		// allways have some light (viewmodel)
+#define	RF_VIEWERMODEL		2		// don't draw through eyes, only mirrors
+#define	RF_WEAPONMODEL		4		// only draw through eyes
+#define	RF_FULLBRIGHT		8		// allways draw full intensity
+#define	RF_DEPTHHACK		16		// for view weapon Z crunching
+#define	RF_TRANSLUCENT		32
+#define	RF_FRAMELERP		64
+#define RF_BEAM				128
+#define	RF_CUSTOMSKIN		256		// skin is an index in image_precache
+#define	RF_GLOW				512		// pulse lighting for bonus items
+#define RF_SHELL_RED		1024
+#define	RF_SHELL_GREEN		2048
+#define RF_SHELL_BLUE		4096
+
+//ROGUE
+#define RF_IR_VISIBLE		0x00008000		// 32768
+#define	RF_SHELL_DOUBLE		0x00010000		// 65536
+#define	RF_SHELL_HALF_DAM	0x00020000
+#define RF_USE_DISGUISE		0x00040000
+//ROGUE
+
+// player_state_t->refdef flags
+#define	RDF_UNDERWATER		1		// warp the screen as apropriate
+#define RDF_NOWORLDMODEL	2		// used for player configuration screen
+
+//ROGUE
+#define	RDF_IRGOGGLES		4
+#define RDF_UVGOGGLES		8
+//ROGUE
+
+//
+// muzzle flashes / player effects
+//
+#define	MZ_BLASTER			0
+#define MZ_MACHINEGUN		1
+#define	MZ_SHOTGUN			2
+#define	MZ_CHAINGUN1		3
+#define	MZ_CHAINGUN2		4
+#define	MZ_CHAINGUN3		5
+#define	MZ_RAILGUN			6
+#define	MZ_ROCKET			7
+#define	MZ_GRENADE			8
+#define	MZ_LOGIN			9
+#define	MZ_LOGOUT			10
+#define	MZ_RESPAWN			11
+#define	MZ_BFG				12
+#define	MZ_SSHOTGUN			13
+#define	MZ_HYPERBLASTER		14
+#define	MZ_ITEMRESPAWN		15
+// RAFAEL
+#define MZ_IONRIPPER		16
+#define MZ_BLUEHYPERBLASTER 17
+#define MZ_PHALANX			18
+#define MZ_SILENCED			128		// bit flag ORed with one of the above numbers
+
+//ROGUE
+#define MZ_ETF_RIFLE		30
+#define MZ_UNUSED			31
+#define MZ_SHOTGUN2			32
+#define MZ_HEATBEAM			33
+#define MZ_BLASTER2			34
+#define	MZ_TRACKER			35
+#define	MZ_NUKE1			36
+#define	MZ_NUKE2			37
+#define	MZ_NUKE4			38
+#define	MZ_NUKE8			39
+//ROGUE
+
+//
+// monster muzzle flashes
+//
+#define MZ2_TANK_BLASTER_1				1
+#define MZ2_TANK_BLASTER_2				2
+#define MZ2_TANK_BLASTER_3				3
+#define MZ2_TANK_MACHINEGUN_1			4
+#define MZ2_TANK_MACHINEGUN_2			5
+#define MZ2_TANK_MACHINEGUN_3			6
+#define MZ2_TANK_MACHINEGUN_4			7
+#define MZ2_TANK_MACHINEGUN_5			8
+#define MZ2_TANK_MACHINEGUN_6			9
+#define MZ2_TANK_MACHINEGUN_7			10
+#define MZ2_TANK_MACHINEGUN_8			11
+#define MZ2_TANK_MACHINEGUN_9			12
+#define MZ2_TANK_MACHINEGUN_10			13
+#define MZ2_TANK_MACHINEGUN_11			14
+#define MZ2_TANK_MACHINEGUN_12			15
+#define MZ2_TANK_MACHINEGUN_13			16
+#define MZ2_TANK_MACHINEGUN_14			17
+#define MZ2_TANK_MACHINEGUN_15			18
+#define MZ2_TANK_MACHINEGUN_16			19
+#define MZ2_TANK_MACHINEGUN_17			20
+#define MZ2_TANK_MACHINEGUN_18			21
+#define MZ2_TANK_MACHINEGUN_19			22
+#define MZ2_TANK_ROCKET_1				23
+#define MZ2_TANK_ROCKET_2				24
+#define MZ2_TANK_ROCKET_3				25
+
+#define MZ2_INFANTRY_MACHINEGUN_1		26
+#define MZ2_INFANTRY_MACHINEGUN_2		27
+#define MZ2_INFANTRY_MACHINEGUN_3		28
+#define MZ2_INFANTRY_MACHINEGUN_4		29
+#define MZ2_INFANTRY_MACHINEGUN_5		30
+#define MZ2_INFANTRY_MACHINEGUN_6		31
+#define MZ2_INFANTRY_MACHINEGUN_7		32
+#define MZ2_INFANTRY_MACHINEGUN_8		33
+#define MZ2_INFANTRY_MACHINEGUN_9		34
+#define MZ2_INFANTRY_MACHINEGUN_10		35
+#define MZ2_INFANTRY_MACHINEGUN_11		36
+#define MZ2_INFANTRY_MACHINEGUN_12		37
+#define MZ2_INFANTRY_MACHINEGUN_13		38
+
+#define MZ2_SOLDIER_BLASTER_1			39
+#define MZ2_SOLDIER_BLASTER_2			40
+#define MZ2_SOLDIER_SHOTGUN_1			41
+#define MZ2_SOLDIER_SHOTGUN_2			42
+#define MZ2_SOLDIER_MACHINEGUN_1		43
+#define MZ2_SOLDIER_MACHINEGUN_2		44
+
+#define MZ2_GUNNER_MACHINEGUN_1			45
+#define MZ2_GUNNER_MACHINEGUN_2			46
+#define MZ2_GUNNER_MACHINEGUN_3			47
+#define MZ2_GUNNER_MACHINEGUN_4			48
+#define MZ2_GUNNER_MACHINEGUN_5			49
+#define MZ2_GUNNER_MACHINEGUN_6			50
+#define MZ2_GUNNER_MACHINEGUN_7			51
+#define MZ2_GUNNER_MACHINEGUN_8			52
+#define MZ2_GUNNER_GRENADE_1			53
+#define MZ2_GUNNER_GRENADE_2			54
+#define MZ2_GUNNER_GRENADE_3			55
+#define MZ2_GUNNER_GRENADE_4			56
+
+#define MZ2_CHICK_ROCKET_1				57
+
+#define MZ2_FLYER_BLASTER_1				58
+#define MZ2_FLYER_BLASTER_2				59
+
+#define MZ2_MEDIC_BLASTER_1				60
+
+#define MZ2_GLADIATOR_RAILGUN_1			61
+
+#define MZ2_HOVER_BLASTER_1				62
+
+#define MZ2_ACTOR_MACHINEGUN_1			63
+
+#define MZ2_SUPERTANK_MACHINEGUN_1		64
+#define MZ2_SUPERTANK_MACHINEGUN_2		65
+#define MZ2_SUPERTANK_MACHINEGUN_3		66
+#define MZ2_SUPERTANK_MACHINEGUN_4		67
+#define MZ2_SUPERTANK_MACHINEGUN_5		68
+#define MZ2_SUPERTANK_MACHINEGUN_6		69
+#define MZ2_SUPERTANK_ROCKET_1			70
+#define MZ2_SUPERTANK_ROCKET_2			71
+#define MZ2_SUPERTANK_ROCKET_3			72
+
+#define MZ2_BOSS2_MACHINEGUN_L1			73
+#define MZ2_BOSS2_MACHINEGUN_L2			74
+#define MZ2_BOSS2_MACHINEGUN_L3			75
+#define MZ2_BOSS2_MACHINEGUN_L4			76
+#define MZ2_BOSS2_MACHINEGUN_L5			77
+#define MZ2_BOSS2_ROCKET_1				78
+#define MZ2_BOSS2_ROCKET_2				79
+#define MZ2_BOSS2_ROCKET_3				80
+#define MZ2_BOSS2_ROCKET_4				81
+
+#define MZ2_FLOAT_BLASTER_1				82
+
+#define MZ2_SOLDIER_BLASTER_3			83
+#define MZ2_SOLDIER_SHOTGUN_3			84
+#define MZ2_SOLDIER_MACHINEGUN_3		85
+#define MZ2_SOLDIER_BLASTER_4			86
+#define MZ2_SOLDIER_SHOTGUN_4			87
+#define MZ2_SOLDIER_MACHINEGUN_4		88
+#define MZ2_SOLDIER_BLASTER_5			89
+#define MZ2_SOLDIER_SHOTGUN_5			90
+#define MZ2_SOLDIER_MACHINEGUN_5		91
+#define MZ2_SOLDIER_BLASTER_6			92
+#define MZ2_SOLDIER_SHOTGUN_6			93
+#define MZ2_SOLDIER_MACHINEGUN_6		94
+#define MZ2_SOLDIER_BLASTER_7			95
+#define MZ2_SOLDIER_SHOTGUN_7			96
+#define MZ2_SOLDIER_MACHINEGUN_7		97
+#define MZ2_SOLDIER_BLASTER_8			98
+#define MZ2_SOLDIER_SHOTGUN_8			99
+#define MZ2_SOLDIER_MACHINEGUN_8		100
+
+// --- Xian shit below ---
+#define	MZ2_MAKRON_BFG					101
+#define MZ2_MAKRON_BLASTER_1			102
+#define MZ2_MAKRON_BLASTER_2			103
+#define MZ2_MAKRON_BLASTER_3			104
+#define MZ2_MAKRON_BLASTER_4			105
+#define MZ2_MAKRON_BLASTER_5			106
+#define MZ2_MAKRON_BLASTER_6			107
+#define MZ2_MAKRON_BLASTER_7			108
+#define MZ2_MAKRON_BLASTER_8			109
+#define MZ2_MAKRON_BLASTER_9			110
+#define MZ2_MAKRON_BLASTER_10			111
+#define MZ2_MAKRON_BLASTER_11			112
+#define MZ2_MAKRON_BLASTER_12			113
+#define MZ2_MAKRON_BLASTER_13			114
+#define MZ2_MAKRON_BLASTER_14			115
+#define MZ2_MAKRON_BLASTER_15			116
+#define MZ2_MAKRON_BLASTER_16			117
+#define MZ2_MAKRON_BLASTER_17			118
+#define MZ2_MAKRON_RAILGUN_1			119
+#define	MZ2_JORG_MACHINEGUN_L1			120
+#define	MZ2_JORG_MACHINEGUN_L2			121
+#define	MZ2_JORG_MACHINEGUN_L3			122
+#define	MZ2_JORG_MACHINEGUN_L4			123
+#define	MZ2_JORG_MACHINEGUN_L5			124
+#define	MZ2_JORG_MACHINEGUN_L6			125
+#define	MZ2_JORG_MACHINEGUN_R1			126
+#define	MZ2_JORG_MACHINEGUN_R2			127
+#define	MZ2_JORG_MACHINEGUN_R3			128
+#define	MZ2_JORG_MACHINEGUN_R4			129
+#define MZ2_JORG_MACHINEGUN_R5			130
+#define	MZ2_JORG_MACHINEGUN_R6			131
+#define MZ2_JORG_BFG_1					132
+#define MZ2_BOSS2_MACHINEGUN_R1			133
+#define MZ2_BOSS2_MACHINEGUN_R2			134
+#define MZ2_BOSS2_MACHINEGUN_R3			135
+#define MZ2_BOSS2_MACHINEGUN_R4			136
+#define MZ2_BOSS2_MACHINEGUN_R5			137
+
+//ROGUE
+#define	MZ2_CARRIER_MACHINEGUN_L1		138
+#define	MZ2_CARRIER_MACHINEGUN_R1		139
+#define	MZ2_CARRIER_GRENADE				140
+#define MZ2_TURRET_MACHINEGUN			141
+#define MZ2_TURRET_ROCKET				142
+#define MZ2_TURRET_BLASTER				143
+#define MZ2_STALKER_BLASTER				144
+#define MZ2_DAEDALUS_BLASTER			145
+#define MZ2_MEDIC_BLASTER_2				146
+#define	MZ2_CARRIER_RAILGUN				147
+#define	MZ2_WIDOW_DISRUPTOR				148
+#define	MZ2_WIDOW_BLASTER				149
+#define	MZ2_WIDOW_RAIL					150
+#define	MZ2_WIDOW_PLASMABEAM			151		// PMM - not used
+#define	MZ2_CARRIER_MACHINEGUN_L2		152
+#define	MZ2_CARRIER_MACHINEGUN_R2		153
+#define	MZ2_WIDOW_RAIL_LEFT				154
+#define	MZ2_WIDOW_RAIL_RIGHT			155
+#define	MZ2_WIDOW_BLASTER_SWEEP1		156
+#define	MZ2_WIDOW_BLASTER_SWEEP2		157
+#define	MZ2_WIDOW_BLASTER_SWEEP3		158
+#define	MZ2_WIDOW_BLASTER_SWEEP4		159
+#define	MZ2_WIDOW_BLASTER_SWEEP5		160
+#define	MZ2_WIDOW_BLASTER_SWEEP6		161
+#define	MZ2_WIDOW_BLASTER_SWEEP7		162
+#define	MZ2_WIDOW_BLASTER_SWEEP8		163
+#define	MZ2_WIDOW_BLASTER_SWEEP9		164
+#define	MZ2_WIDOW_BLASTER_100			165
+#define	MZ2_WIDOW_BLASTER_90			166
+#define	MZ2_WIDOW_BLASTER_80			167
+#define	MZ2_WIDOW_BLASTER_70			168
+#define	MZ2_WIDOW_BLASTER_60			169
+#define	MZ2_WIDOW_BLASTER_50			170
+#define	MZ2_WIDOW_BLASTER_40			171
+#define	MZ2_WIDOW_BLASTER_30			172
+#define	MZ2_WIDOW_BLASTER_20			173
+#define	MZ2_WIDOW_BLASTER_10			174
+#define	MZ2_WIDOW_BLASTER_0				175
+#define	MZ2_WIDOW_BLASTER_10L			176
+#define	MZ2_WIDOW_BLASTER_20L			177
+#define	MZ2_WIDOW_BLASTER_30L			178
+#define	MZ2_WIDOW_BLASTER_40L			179
+#define	MZ2_WIDOW_BLASTER_50L			180
+#define	MZ2_WIDOW_BLASTER_60L			181
+#define	MZ2_WIDOW_BLASTER_70L			182
+#define	MZ2_WIDOW_RUN_1					183
+#define	MZ2_WIDOW_RUN_2					184
+#define	MZ2_WIDOW_RUN_3					185
+#define	MZ2_WIDOW_RUN_4					186
+#define	MZ2_WIDOW_RUN_5					187
+#define	MZ2_WIDOW_RUN_6					188
+#define	MZ2_WIDOW_RUN_7					189
+#define	MZ2_WIDOW_RUN_8					190
+#define	MZ2_CARRIER_ROCKET_1			191
+#define	MZ2_CARRIER_ROCKET_2			192
+#define	MZ2_CARRIER_ROCKET_3			193
+#define	MZ2_CARRIER_ROCKET_4			194
+#define	MZ2_WIDOW2_BEAMER_1				195
+#define	MZ2_WIDOW2_BEAMER_2				196
+#define	MZ2_WIDOW2_BEAMER_3				197
+#define	MZ2_WIDOW2_BEAMER_4				198
+#define	MZ2_WIDOW2_BEAMER_5				199
+#define	MZ2_WIDOW2_BEAM_SWEEP_1			200
+#define	MZ2_WIDOW2_BEAM_SWEEP_2			201
+#define	MZ2_WIDOW2_BEAM_SWEEP_3			202
+#define	MZ2_WIDOW2_BEAM_SWEEP_4			203
+#define	MZ2_WIDOW2_BEAM_SWEEP_5			204
+#define	MZ2_WIDOW2_BEAM_SWEEP_6			205
+#define	MZ2_WIDOW2_BEAM_SWEEP_7			206
+#define	MZ2_WIDOW2_BEAM_SWEEP_8			207
+#define	MZ2_WIDOW2_BEAM_SWEEP_9			208
+#define	MZ2_WIDOW2_BEAM_SWEEP_10		209
+#define	MZ2_WIDOW2_BEAM_SWEEP_11		210
+
+// ROGUE
+
+extern	vec3_t monster_flash_offset [];
+
+
+// temp entity events
+//
+// Temp entity events are for things that happen
+// at a location seperate from any existing entity.
+// Temporary entity messages are explicitly constructed
+// and broadcast.
+typedef enum
+{
+	TE_GUNSHOT,
+	TE_BLOOD,
+	TE_BLASTER,
+	TE_RAILTRAIL,
+	TE_SHOTGUN,
+	TE_EXPLOSION1,
+	TE_EXPLOSION2,
+	TE_ROCKET_EXPLOSION,
+	TE_GRENADE_EXPLOSION,
+	TE_SPARKS,
+	TE_SPLASH,
+	TE_BUBBLETRAIL,
+	TE_SCREEN_SPARKS,
+	TE_SHIELD_SPARKS,
+	TE_BULLET_SPARKS,
+	TE_LASER_SPARKS,
+	TE_PARASITE_ATTACK,
+	TE_ROCKET_EXPLOSION_WATER,
+	TE_GRENADE_EXPLOSION_WATER,
+	TE_MEDIC_CABLE_ATTACK,
+	TE_BFG_EXPLOSION,
+	TE_BFG_BIGEXPLOSION,
+	TE_BOSSTPORT,			// used as '22' in a map, so DON'T RENUMBER!!!
+	TE_BFG_LASER,
+	TE_GRAPPLE_CABLE,
+	TE_WELDING_SPARKS,
+	TE_GREENBLOOD,
+	TE_BLUEHYPERBLASTER,
+	TE_PLASMA_EXPLOSION,
+	TE_TUNNEL_SPARKS,
+//ROGUE
+	TE_BLASTER2,
+	TE_RAILTRAIL2,
+	TE_FLAME,
+	TE_LIGHTNING,
+	TE_DEBUGTRAIL,
+	TE_PLAIN_EXPLOSION,
+	TE_FLASHLIGHT,
+	TE_FORCEWALL,
+	TE_HEATBEAM,
+	TE_MONSTER_HEATBEAM,
+	TE_STEAM,
+	TE_BUBBLETRAIL2,
+	TE_MOREBLOOD,
+	TE_HEATBEAM_SPARKS,
+	TE_HEATBEAM_STEAM,
+	TE_CHAINFIST_SMOKE,
+	TE_ELECTRIC_SPARKS,
+	TE_TRACKER_EXPLOSION,
+	TE_TELEPORT_EFFECT,
+	TE_DBALL_GOAL,
+	TE_WIDOWBEAMOUT,
+	TE_NUKEBLAST,
+	TE_WIDOWSPLASH,
+	TE_EXPLOSION1_BIG,
+	TE_EXPLOSION1_NP,
+	TE_FLECHETTE
+//ROGUE
+} temp_event_t;
+
+#define SPLASH_UNKNOWN		0
+#define SPLASH_SPARKS		1
+#define SPLASH_BLUE_WATER	2
+#define SPLASH_BROWN_WATER	3
+#define SPLASH_SLIME		4
+#define	SPLASH_LAVA			5
+#define SPLASH_BLOOD		6
+
+
+// sound channels
+// channel 0 never willingly overrides
+// other channels (1-7) allways override a playing sound on that channel
+#define	CHAN_AUTO               0
+#define	CHAN_WEAPON             1
+#define	CHAN_VOICE              2
+#define	CHAN_ITEM               3
+#define	CHAN_BODY               4
+// modifier flags
+#define	CHAN_NO_PHS_ADD			8	// send to all clients, not just ones in PHS (ATTN 0 will also do this)
+#define	CHAN_RELIABLE			16	// send by reliable message, not datagram
+
+
+// sound attenuation values
+#define	ATTN_NONE               0	// full volume the entire level
+#define	ATTN_NORM               1
+#define	ATTN_IDLE               2
+#define	ATTN_STATIC             3	// diminish very rapidly with distance
+
+
+// player_state->stats[] indexes
+#define STAT_HEALTH_ICON		0
+#define	STAT_HEALTH				1
+#define	STAT_AMMO_ICON			2
+#define	STAT_AMMO				3
+#define	STAT_ARMOR_ICON			4
+#define	STAT_ARMOR				5
+#define	STAT_SELECTED_ICON		6
+#define	STAT_PICKUP_ICON		7
+#define	STAT_PICKUP_STRING		8
+#define	STAT_TIMER_ICON			9
+#define	STAT_TIMER				10
+#define	STAT_HELPICON			11
+#define	STAT_SELECTED_ITEM		12
+#define	STAT_LAYOUTS			13
+#define	STAT_FRAGS				14
+#define	STAT_FLASHES			15		// cleared each frame, 1 = health, 2 = armor
+#define STAT_CHASE				16
+#define STAT_SPECTATOR			17
+
+#define	MAX_STATS				32
+
+
+// dmflags->value flags
+#define	DF_NO_HEALTH		0x00000001	// 1
+#define	DF_NO_ITEMS			0x00000002	// 2
+#define	DF_WEAPONS_STAY		0x00000004	// 4
+#define	DF_NO_FALLING		0x00000008	// 8
+#define	DF_INSTANT_ITEMS	0x00000010	// 16
+#define	DF_SAME_LEVEL		0x00000020	// 32
+#define DF_SKINTEAMS		0x00000040	// 64
+#define DF_MODELTEAMS		0x00000080	// 128
+#define DF_NO_FRIENDLY_FIRE	0x00000100	// 256
+#define	DF_SPAWN_FARTHEST	0x00000200	// 512
+#define DF_FORCE_RESPAWN	0x00000400	// 1024
+#define DF_NO_ARMOR			0x00000800	// 2048
+#define DF_ALLOW_EXIT		0x00001000	// 4096
+#define DF_INFINITE_AMMO	0x00002000	// 8192
+#define DF_QUAD_DROP		0x00004000	// 16384
+#define DF_FIXED_FOV		0x00008000	// 32768
+
+// RAFAEL
+#define	DF_QUADFIRE_DROP	0x00010000	// 65536
+
+//ROGUE
+#define DF_NO_MINES			0x00020000
+#define DF_NO_STACK_DOUBLE	0x00040000
+#define DF_NO_NUKES			0x00080000
+#define DF_NO_SPHERES		0x00100000
+//ROGUE
+
+/*
+ROGUE - VERSIONS
+1234	08/13/1998		Activision
+1235	08/14/1998		Id Software
+1236	08/15/1998		Steve Tietze
+1237	08/15/1998		Phil Dobranski
+1238	08/15/1998		John Sheley
+1239	08/17/1998		Barrett Alexander
+1230	08/17/1998		Brandon Fish
+1245	08/17/1998		Don MacAskill
+1246	08/17/1998		David "Zoid" Kirsch
+1247	08/17/1998		Manu Smith
+1248	08/17/1998		Geoff Scully
+1249	08/17/1998		Andy Van Fossen
+1240	08/20/1998		Activision Build 2
+1256	08/20/1998		Ranger Clan
+1257	08/20/1998		Ensemble Studios
+1258	08/21/1998		Robert Duffy
+1259	08/21/1998		Stephen Seachord
+1250	08/21/1998		Stephen Heaslip
+1267	08/21/1998		Samir Sandesara
+1268	08/21/1998		Oliver Wyman
+1269	08/21/1998		Steven Marchegiano
+1260	08/21/1998		Build #2 for Nihilistic
+1278	08/21/1998		Build #2 for Ensemble
+
+9999	08/20/1998		Internal Use
+*/
+#define ROGUE_VERSION_ID		1278
+
+#define ROGUE_VERSION_STRING	"08/21/1998 Beta 2 for Ensemble"
+
+// ROGUE
+/*
+==========================================================
+
+  ELEMENTS COMMUNICATED ACROSS THE NET
+
+==========================================================
+*/
+
+#define	ANGLE2SHORT(x)	((int)((x)*65536/360) & 65535)
+#define	SHORT2ANGLE(x)	((x)*(360.0/65536))
+
+
+//
+// config strings are a general means of communication from
+// the server to all connected clients.
+// Each config string can be at most MAX_QPATH characters.
+//
+#define	CS_NAME				0
+#define	CS_CDTRACK			1
+#define	CS_SKY				2
+#define	CS_SKYAXIS			3		// %f %f %f format
+#define	CS_SKYROTATE		4
+#define	CS_STATUSBAR		5		// display program string
+
+#define CS_AIRACCEL			29		// air acceleration control
+#define	CS_MAXCLIENTS		30
+#define	CS_MAPCHECKSUM		31		// for catching cheater maps
+
+#define	CS_MODELS			32
+#define	CS_SOUNDS			(CS_MODELS+MAX_MODELS)
+#define	CS_IMAGES			(CS_SOUNDS+MAX_SOUNDS)
+#define	CS_LIGHTS			(CS_IMAGES+MAX_IMAGES)
+#define	CS_ITEMS			(CS_LIGHTS+MAX_LIGHTSTYLES)
+#define	CS_PLAYERSKINS		(CS_ITEMS+MAX_ITEMS)
+#define CS_GENERAL			(CS_PLAYERSKINS+MAX_CLIENTS)
+#define	MAX_CONFIGSTRINGS	(CS_GENERAL+MAX_GENERAL)
+
+
+//==============================================
+
+
+// entity_state_t->event values
+// ertity events are for effects that take place reletive
+// to an existing entities origin.  Very network efficient.
+// All muzzle flashes really should be converted to events...
+typedef enum
+{
+	EV_NONE,
+	EV_ITEM_RESPAWN,
+	EV_FOOTSTEP,
+	EV_FALLSHORT,
+	EV_FALL,
+	EV_FALLFAR,
+	EV_PLAYER_TELEPORT,
+	EV_OTHER_TELEPORT
+} entity_event_t;
+
+
+// entity_state_t is the information conveyed from the server
+// in an update message about entities that the client will
+// need to render in some way
+typedef struct entity_state_s
+{
+	int		number;			// edict index
+
+	vec3_t	origin;
+	vec3_t	angles;
+	vec3_t	old_origin;		// for lerping
+	int		modelindex;
+	int		modelindex2, modelindex3, modelindex4;	// weapons, CTF flags, etc
+	int		frame;
+	int		skinnum;
+	unsigned int		effects;		// PGM - we're filling it, so it needs to be unsigned
+	int		renderfx;
+	int		solid;			// for client side prediction, 8*(bits 0-4) is x/y radius
+							// 8*(bits 5-9) is z down distance, 8(bits10-15) is z up
+							// gi.linkentity sets this properly
+	int		sound;			// for looping sounds, to guarantee shutoff
+	int		event;			// impulse events -- muzzle flashes, footsteps, etc
+							// events only go out for a single frame, they
+							// are automatically cleared each frame
+} entity_state_t;
+
+//==============================================
+
+
+// player_state_t is the information needed in addition to pmove_state_t
+// to rendered a view.  There will only be 10 player_state_t sent each second,
+// but the number of pmove_state_t changes will be reletive to client
+// frame rates
+typedef struct
+{
+	pmove_state_t	pmove;		// for prediction
+
+	// these fields do not need to be communicated bit-precise
+
+	vec3_t		viewangles;		// for fixed views
+	vec3_t		viewoffset;		// add to pmovestate->origin
+	vec3_t		kick_angles;	// add to view direction to get render angles
+								// set by weapon kicks, pain effects, etc
+
+	vec3_t		gunangles;
+	vec3_t		gunoffset;
+	int			gunindex;
+	int			gunframe;
+
+	float		blend[4];		// rgba full screen effect
+	
+	float		fov;			// horizontal field of view
+
+	int			rdflags;		// refdef flags
+
+	short		stats[MAX_STATS];		// fast status bar updates
+} player_state_t;
+
+
+// ==================
+// PGM 
+#define VIDREF_GL		1
+#define VIDREF_SOFT		2
+#define VIDREF_OTHER	3
+
+extern int vidref_val;
+// PGM
+// ==================
--- a/qcommon/common.c
+++ b/qcommon/common.c
@@ -271,7 +271,7 @@
 
 vec3_t	bytedirs[NUMVERTEXNORMALS] =
 {
-#include "../client/anorms.h"
+#include "../anorms.h"
 };
 
 //
--- a/qcommon/qcommon.h
+++ b/qcommon/qcommon.h
@@ -20,7 +20,7 @@
 
 // qcommon.h -- definitions common between client and server, but not game.dll
 
-#include "../game/q_shared.h"
+#include "../q_shared.h"
 
 
 #define	VERSION		3.19
--- a/readme.txt
+++ /dev/null
@@ -1,29 +1,0 @@
-
-This is the complete source code for Quake 2, version 3.19, buildable with
-visual C++ 6.0.  The linux version should be buildable, but we haven't
-tested it for the release.
-
-The code is all licensed under the terms of the GPL (gnu public license).  
-You should read the entire license, but the gist of it is that you can do 
-anything you want with the code, including sell your new version.  The catch 
-is that if you distribute new binary versions, you are required to make the 
-entire source code available for free to everyone.
-
-The primary intent of this release is for entertainment and educational 
-purposes, but the GPL does allow commercial exploitation if you obey the 
-full license.  If you want to do something commercial and you just can't bear 
-to have your source changes released, we could still negotiate a separate 
-license agreement (for $$$), but I would encourage you to just live with the 
-GPL.
-
-All of the Q2 data files remain copyrighted and licensed under the 
-original terms, so you cannot redistribute data from the original game, but if 
-you do a true total conversion, you can create a standalone game based on 
-this code.
-
-Thanks to Robert Duffy for doing the grunt work of building this release.
-
-John Carmack
-Id Software
-
-
--- a/ref_soft/anorms.h
+++ /dev/null
@@ -1,181 +1,0 @@
-/*
-Copyright (C) 1997-2001 Id Software, Inc.
-
-This program is free software; you can redistribute it and/or
-modify it under the terms of the GNU General Public License
-as published by the Free Software Foundation; either version 2
-of the License, or (at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
-
-See the GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
-
-*/
-{-0.525731, 0.000000, 0.850651}, 
-{-0.442863, 0.238856, 0.864188}, 
-{-0.295242, 0.000000, 0.955423}, 
-{-0.309017, 0.500000, 0.809017}, 
-{-0.162460, 0.262866, 0.951056}, 
-{0.000000, 0.000000, 1.000000}, 
-{0.000000, 0.850651, 0.525731}, 
-{-0.147621, 0.716567, 0.681718}, 
-{0.147621, 0.716567, 0.681718}, 
-{0.000000, 0.525731, 0.850651}, 
-{0.309017, 0.500000, 0.809017}, 
-{0.525731, 0.000000, 0.850651}, 
-{0.295242, 0.000000, 0.955423}, 
-{0.442863, 0.238856, 0.864188}, 
-{0.162460, 0.262866, 0.951056}, 
-{-0.681718, 0.147621, 0.716567}, 
-{-0.809017, 0.309017, 0.500000}, 
-{-0.587785, 0.425325, 0.688191}, 
-{-0.850651, 0.525731, 0.000000}, 
-{-0.864188, 0.442863, 0.238856}, 
-{-0.716567, 0.681718, 0.147621}, 
-{-0.688191, 0.587785, 0.425325}, 
-{-0.500000, 0.809017, 0.309017}, 
-{-0.238856, 0.864188, 0.442863}, 
-{-0.425325, 0.688191, 0.587785}, 
-{-0.716567, 0.681718, -0.147621}, 
-{-0.500000, 0.809017, -0.309017}, 
-{-0.525731, 0.850651, 0.000000}, 
-{0.000000, 0.850651, -0.525731}, 
-{-0.238856, 0.864188, -0.442863}, 
-{0.000000, 0.955423, -0.295242}, 
-{-0.262866, 0.951056, -0.162460}, 
-{0.000000, 1.000000, 0.000000}, 
-{0.000000, 0.955423, 0.295242}, 
-{-0.262866, 0.951056, 0.162460}, 
-{0.238856, 0.864188, 0.442863}, 
-{0.262866, 0.951056, 0.162460}, 
-{0.500000, 0.809017, 0.309017}, 
-{0.238856, 0.864188, -0.442863}, 
-{0.262866, 0.951056, -0.162460}, 
-{0.500000, 0.809017, -0.309017}, 
-{0.850651, 0.525731, 0.000000}, 
-{0.716567, 0.681718, 0.147621}, 
-{0.716567, 0.681718, -0.147621}, 
-{0.525731, 0.850651, 0.000000}, 
-{0.425325, 0.688191, 0.587785}, 
-{0.864188, 0.442863, 0.238856}, 
-{0.688191, 0.587785, 0.425325}, 
-{0.809017, 0.309017, 0.500000}, 
-{0.681718, 0.147621, 0.716567}, 
-{0.587785, 0.425325, 0.688191}, 
-{0.955423, 0.295242, 0.000000}, 
-{1.000000, 0.000000, 0.000000}, 
-{0.951056, 0.162460, 0.262866}, 
-{0.850651, -0.525731, 0.000000}, 
-{0.955423, -0.295242, 0.000000}, 
-{0.864188, -0.442863, 0.238856}, 
-{0.951056, -0.162460, 0.262866}, 
-{0.809017, -0.309017, 0.500000}, 
-{0.681718, -0.147621, 0.716567}, 
-{0.850651, 0.000000, 0.525731}, 
-{0.864188, 0.442863, -0.238856}, 
-{0.809017, 0.309017, -0.500000}, 
-{0.951056, 0.162460, -0.262866}, 
-{0.525731, 0.000000, -0.850651}, 
-{0.681718, 0.147621, -0.716567}, 
-{0.681718, -0.147621, -0.716567}, 
-{0.850651, 0.000000, -0.525731}, 
-{0.809017, -0.309017, -0.500000}, 
-{0.864188, -0.442863, -0.238856}, 
-{0.951056, -0.162460, -0.262866}, 
-{0.147621, 0.716567, -0.681718}, 
-{0.309017, 0.500000, -0.809017}, 
-{0.425325, 0.688191, -0.587785}, 
-{0.442863, 0.238856, -0.864188}, 
-{0.587785, 0.425325, -0.688191}, 
-{0.688191, 0.587785, -0.425325}, 
-{-0.147621, 0.716567, -0.681718}, 
-{-0.309017, 0.500000, -0.809017}, 
-{0.000000, 0.525731, -0.850651}, 
-{-0.525731, 0.000000, -0.850651}, 
-{-0.442863, 0.238856, -0.864188}, 
-{-0.295242, 0.000000, -0.955423}, 
-{-0.162460, 0.262866, -0.951056}, 
-{0.000000, 0.000000, -1.000000}, 
-{0.295242, 0.000000, -0.955423}, 
-{0.162460, 0.262866, -0.951056}, 
-{-0.442863, -0.238856, -0.864188}, 
-{-0.309017, -0.500000, -0.809017}, 
-{-0.162460, -0.262866, -0.951056}, 
-{0.000000, -0.850651, -0.525731}, 
-{-0.147621, -0.716567, -0.681718}, 
-{0.147621, -0.716567, -0.681718}, 
-{0.000000, -0.525731, -0.850651}, 
-{0.309017, -0.500000, -0.809017}, 
-{0.442863, -0.238856, -0.864188}, 
-{0.162460, -0.262866, -0.951056}, 
-{0.238856, -0.864188, -0.442863}, 
-{0.500000, -0.809017, -0.309017}, 
-{0.425325, -0.688191, -0.587785}, 
-{0.716567, -0.681718, -0.147621}, 
-{0.688191, -0.587785, -0.425325}, 
-{0.587785, -0.425325, -0.688191}, 
-{0.000000, -0.955423, -0.295242}, 
-{0.000000, -1.000000, 0.000000}, 
-{0.262866, -0.951056, -0.162460}, 
-{0.000000, -0.850651, 0.525731}, 
-{0.000000, -0.955423, 0.295242}, 
-{0.238856, -0.864188, 0.442863}, 
-{0.262866, -0.951056, 0.162460}, 
-{0.500000, -0.809017, 0.309017}, 
-{0.716567, -0.681718, 0.147621}, 
-{0.525731, -0.850651, 0.000000}, 
-{-0.238856, -0.864188, -0.442863}, 
-{-0.500000, -0.809017, -0.309017}, 
-{-0.262866, -0.951056, -0.162460}, 
-{-0.850651, -0.525731, 0.000000}, 
-{-0.716567, -0.681718, -0.147621}, 
-{-0.716567, -0.681718, 0.147621}, 
-{-0.525731, -0.850651, 0.000000}, 
-{-0.500000, -0.809017, 0.309017}, 
-{-0.238856, -0.864188, 0.442863}, 
-{-0.262866, -0.951056, 0.162460}, 
-{-0.864188, -0.442863, 0.238856}, 
-{-0.809017, -0.309017, 0.500000}, 
-{-0.688191, -0.587785, 0.425325}, 
-{-0.681718, -0.147621, 0.716567}, 
-{-0.442863, -0.238856, 0.864188}, 
-{-0.587785, -0.425325, 0.688191}, 
-{-0.309017, -0.500000, 0.809017}, 
-{-0.147621, -0.716567, 0.681718}, 
-{-0.425325, -0.688191, 0.587785}, 
-{-0.162460, -0.262866, 0.951056}, 
-{0.442863, -0.238856, 0.864188}, 
-{0.162460, -0.262866, 0.951056}, 
-{0.309017, -0.500000, 0.809017}, 
-{0.147621, -0.716567, 0.681718}, 
-{0.000000, -0.525731, 0.850651}, 
-{0.425325, -0.688191, 0.587785}, 
-{0.587785, -0.425325, 0.688191}, 
-{0.688191, -0.587785, 0.425325}, 
-{-0.955423, 0.295242, 0.000000}, 
-{-0.951056, 0.162460, 0.262866}, 
-{-1.000000, 0.000000, 0.000000}, 
-{-0.850651, 0.000000, 0.525731}, 
-{-0.955423, -0.295242, 0.000000}, 
-{-0.951056, -0.162460, 0.262866}, 
-{-0.864188, 0.442863, -0.238856}, 
-{-0.951056, 0.162460, -0.262866}, 
-{-0.809017, 0.309017, -0.500000}, 
-{-0.864188, -0.442863, -0.238856}, 
-{-0.951056, -0.162460, -0.262866}, 
-{-0.809017, -0.309017, -0.500000}, 
-{-0.681718, 0.147621, -0.716567}, 
-{-0.681718, -0.147621, -0.716567}, 
-{-0.850651, 0.000000, -0.525731}, 
-{-0.688191, 0.587785, -0.425325}, 
-{-0.587785, 0.425325, -0.688191}, 
-{-0.425325, 0.688191, -0.587785}, 
-{-0.425325, -0.688191, -0.587785}, 
-{-0.587785, -0.425325, -0.688191}, 
-{-0.688191, -0.587785, -0.425325}, 
--- a/ref_soft/asm_draw.h
+++ /dev/null
@@ -1,121 +1,0 @@
-//
-// asm_draw.h
-//
-// Include file for asm drawing routines.
-//
-
-//
-// !!! note that this file must match the corresponding C structures at all
-// times !!!
-//
-
-// !!! if this is changed, it must be changed in r_local.h too !!!
-#define	NEAR_CLIP	0.01
-
-// !!! if this is changed, it must be changed in r_local.h too !!!
-#define	CYCLE	128
-
-// espan_t structure
-// !!! if this is changed, it must be changed in r_shared.h too !!!
-#define espan_t_u    	0
-#define espan_t_v	    4
-#define espan_t_count   8
-#define espan_t_pnext	12
-#define espan_t_size    16
-
-// sspan_t structure
-// !!! if this is changed, it must be changed in d_local.h too !!!
-#define sspan_t_u    	0
-#define sspan_t_v	    4
-#define sspan_t_count   8
-#define sspan_t_pnext	12
-#define sspan_t_size    16
-
-// edge_t structure
-// !!! if this is changed, it must be changed in r_shared.h too !!!
-#define et_u			0
-#define et_u_step		4
-#define et_prev			8
-#define et_next			12
-#define et_surfs		16
-#define et_nextremove	20
-#define et_nearzi		24
-#define et_owner		28
-#define et_size			32
-
-// surf_t structure
-// !!! if this is changed, it must be changed in r_shared.h too !!!
-#define SURF_T_SHIFT	6
-#define st_next			0
-#define st_prev			4
-#define st_spans		8
-#define st_key			12
-#define st_last_u		16
-#define st_spanstate	20
-#define st_flags		24
-#define st_data			28
-#define st_entity		32
-#define st_nearzi		36
-#define st_insubmodel	40
-#define st_d_ziorigin	44
-#define st_d_zistepu	48
-#define st_d_zistepv	52
-#define st_pad			56
-#define st_size			64
-
-// clipplane_t structure
-// !!! if this is changed, it must be changed in r_local.h too !!!
-#define cp_normal		0
-#define cp_dist			12
-#define cp_next			16
-#define cp_leftedge		20
-#define cp_rightedge	21
-#define cp_reserved		22
-#define cp_size			24
-
-// medge_t structure
-// !!! if this is changed, it must be changed in model.h too !!!
-#define me_v				0
-#define me_cachededgeoffset	4
-#define me_size				8
-
-// mvertex_t structure
-// !!! if this is changed, it must be changed in model.h too !!!
-#define mv_position		0
-#define mv_size			12
-
-// refdef_t structure
-// !!! if this is changed, it must be changed in render.h too !!!
-#define rd_vrect					0
-#define rd_aliasvrect				20
-#define rd_vrectright				40
-#define rd_vrectbottom				44
-#define rd_aliasvrectright			48
-#define rd_aliasvrectbottom			52
-#define rd_vrectrightedge			56
-#define rd_fvrectx					60
-#define rd_fvrecty					64
-#define rd_fvrectx_adj				68
-#define rd_fvrecty_adj				72
-#define rd_vrect_x_adj_shift20		76
-#define rd_vrectright_adj_shift20	80
-#define rd_fvrectright_adj			84
-#define rd_fvrectbottom_adj			88
-#define rd_fvrectright				92
-#define rd_fvrectbottom				96
-#define rd_horizontalFieldOfView	100
-#define rd_xOrigin					104
-#define rd_yOrigin					108
-#define rd_vieworg					112
-#define rd_viewangles				124
-#define rd_ambientlight				136
-#define rd_size						140
-
-// mtriangle_t structure
-// !!! if this is changed, it must be changed in model.h too !!!
-#define mtri_facesfront		0
-#define mtri_vertindex		4
-#define mtri_size			16	// !!! if this changes, array indexing in !!!
-								// !!! d_polysa.s must be changed to match !!!
-#define mtri_shift			4
-
--- a/ref_soft/block16.inc
+++ /dev/null
@@ -1,116 +1,0 @@
-LEnter16_16:
- mov al,ds:byte ptr[esi]
- mov cl,ds:byte ptr[esi+ebx]
- mov ah,dh
- add edx,ebp
- mov ch,dh
- lea esi,ds:dword ptr[esi+ebx*2]
- mov ax,ds:word ptr[12345678h+eax*2]
-LBPatch0:
- add edx,ebp
- mov ds:word ptr[edi],ax
- mov cx,ds:word ptr[12345678h+ecx*2]
-LBPatch1:
- mov ds:word ptr[2+edi],cx
- add edi,04h
- mov al,ds:byte ptr[esi]
- mov cl,ds:byte ptr[esi+ebx]
- mov ah,dh
- add edx,ebp
- mov ch,dh
- lea esi,ds:dword ptr[esi+ebx*2]
- mov ax,ds:word ptr[12345678h+eax*2]
-LBPatch2:
- add edx,ebp
- mov ds:word ptr[edi],ax
- mov cx,ds:word ptr[12345678h+ecx*2]
-LBPatch3:
- mov ds:word ptr[2+edi],cx
- add edi,04h
- mov al,ds:byte ptr[esi]
- mov cl,ds:byte ptr[esi+ebx]
- mov ah,dh
- add edx,ebp
- mov ch,dh
- lea esi,ds:dword ptr[esi+ebx*2]
- mov ax,ds:word ptr[12345678h+eax*2]
-LBPatch4:
- add edx,ebp
- mov ds:word ptr[edi],ax
- mov cx,ds:word ptr[12345678h+ecx*2]
-LBPatch5:
- mov ds:word ptr[2+edi],cx
- add edi,04h
- mov al,ds:byte ptr[esi]
- mov cl,ds:byte ptr[esi+ebx]
- mov ah,dh
- add edx,ebp
- mov ch,dh
- lea esi,ds:dword ptr[esi+ebx*2]
- mov ax,ds:word ptr[12345678h+eax*2]
-LBPatch6:
- add edx,ebp
- mov ds:word ptr[edi],ax
- mov cx,ds:word ptr[12345678h+ecx*2]
-LBPatch7:
- mov ds:word ptr[2+edi],cx
- add edi,04h
-LEnter8_16:
- mov al,ds:byte ptr[esi]
- mov cl,ds:byte ptr[esi+ebx]
- mov ah,dh
- add edx,ebp
- mov ch,dh
- lea esi,ds:dword ptr[esi+ebx*2]
- mov ax,ds:word ptr[12345678h+eax*2]
-LBPatch8:
- add edx,ebp
- mov ds:word ptr[edi],ax
- mov cx,ds:word ptr[12345678h+ecx*2]
-LBPatch9:
- mov ds:word ptr[2+edi],cx
- add edi,04h
- mov al,ds:byte ptr[esi]
- mov cl,ds:byte ptr[esi+ebx]
- mov ah,dh
- add edx,ebp
- mov ch,dh
- lea esi,ds:dword ptr[esi+ebx*2]
- mov ax,ds:word ptr[12345678h+eax*2]
-LBPatch10:
- add edx,ebp
- mov ds:word ptr[edi],ax
- mov cx,ds:word ptr[12345678h+ecx*2]
-LBPatch11:
- mov ds:word ptr[2+edi],cx
- add edi,04h
-LEnter4_16:
- mov al,ds:byte ptr[esi]
- mov cl,ds:byte ptr[esi+ebx]
- mov ah,dh
- add edx,ebp
- mov ch,dh
- lea esi,ds:dword ptr[esi+ebx*2]
- mov ax,ds:word ptr[12345678h+eax*2]
-LBPatch12:
- add edx,ebp
- mov ds:word ptr[edi],ax
- mov cx,ds:word ptr[12345678h+ecx*2]
-LBPatch13:
- mov ds:word ptr[2+edi],cx
- add edi,04h
-LEnter2_16:
- mov al,ds:byte ptr[esi]
- mov cl,ds:byte ptr[esi+ebx]
- mov ah,dh
- add edx,ebp
- mov ch,dh
- lea esi,ds:dword ptr[esi+ebx*2]
- mov ax,ds:word ptr[12345678h+eax*2]
-LBPatch14:
- add edx,ebp
- mov ds:word ptr[edi],ax
- mov cx,ds:word ptr[12345678h+ecx*2]
-LBPatch15:
- mov ds:word ptr[2+edi],cx
- add edi,04h
--- a/ref_soft/block8.inc
+++ /dev/null
@@ -1,116 +1,0 @@
-LEnter16_16:
- mov al,ds:byte ptr[esi]
- mov cl,ds:byte ptr[esi+ebx]
- mov ah,dh
- add edx,ebp
- mov ch,dh
- lea esi,ds:dword ptr[esi+ebx*2]
- mov ax,ds:word ptr[12345678h+eax*2]
-LBPatch0:
- add edx,ebp
- mov ds:word ptr[edi],ax
- mov cx,ds:word ptr[12345678h+ecx*2]
-LBPatch1:
- mov ds:word ptr[2+edi],cx
- add edi,04h
- mov al,ds:byte ptr[esi]
- mov cl,ds:byte ptr[esi+ebx]
- mov ah,dh
- add edx,ebp
- mov ch,dh
- lea esi,ds:dword ptr[esi+ebx*2]
- mov ax,ds:word ptr[12345678h+eax*2]
-LBPatch2:
- add edx,ebp
- mov ds:word ptr[edi],ax
- mov cx,ds:word ptr[12345678h+ecx*2]
-LBPatch3:
- mov ds:word ptr[2+edi],cx
- add edi,04h
- mov al,ds:byte ptr[esi]
- mov cl,ds:byte ptr[esi+ebx]
- mov ah,dh
- add edx,ebp
- mov ch,dh
- lea esi,ds:dword ptr[esi+ebx*2]
- mov ax,ds:word ptr[12345678h+eax*2]
-LBPatch4:
- add edx,ebp
- mov ds:word ptr[edi],ax
- mov cx,ds:word ptr[12345678h+ecx*2]
-LBPatch5:
- mov ds:word ptr[2+edi],cx
- add edi,04h
- mov al,ds:byte ptr[esi]
- mov cl,ds:byte ptr[esi+ebx]
- mov ah,dh
- add edx,ebp
- mov ch,dh
- lea esi,ds:dword ptr[esi+ebx*2]
- mov ax,ds:word ptr[12345678h+eax*2]
-LBPatch6:
- add edx,ebp
- mov ds:word ptr[edi],ax
- mov cx,ds:word ptr[12345678h+ecx*2]
-LBPatch7:
- mov ds:word ptr[2+edi],cx
- add edi,04h
-LEnter8_16:
- mov al,ds:byte ptr[esi]
- mov cl,ds:byte ptr[esi+ebx]
- mov ah,dh
- add edx,ebp
- mov ch,dh
- lea esi,ds:dword ptr[esi+ebx*2]
- mov ax,ds:word ptr[12345678h+eax*2]
-LBPatch8:
- add edx,ebp
- mov ds:word ptr[edi],ax
- mov cx,ds:word ptr[12345678h+ecx*2]
-LBPatch9:
- mov ds:word ptr[2+edi],cx
- add edi,04h
- mov al,ds:byte ptr[esi]
- mov cl,ds:byte ptr[esi+ebx]
- mov ah,dh
- add edx,ebp
- mov ch,dh
- lea esi,ds:dword ptr[esi+ebx*2]
- mov ax,ds:word ptr[12345678h+eax*2]
-LBPatch10:
- add edx,ebp
- mov ds:word ptr[edi],ax
- mov cx,ds:word ptr[12345678h+ecx*2]
-LBPatch11:
- mov ds:word ptr[2+edi],cx
- add edi,04h
-LEnter4_16:
- mov al,ds:byte ptr[esi]
- mov cl,ds:byte ptr[esi+ebx]
- mov ah,dh
- add edx,ebp
- mov ch,dh
- lea esi,ds:dword ptr[esi+ebx*2]
- mov ax,ds:word ptr[12345678h+eax*2]
-LBPatch12:
- add edx,ebp
- mov ds:word ptr[edi],ax
- mov cx,ds:word ptr[12345678h+ecx*2]
-LBPatch13:
- mov ds:word ptr[2+edi],cx
- add edi,04h
-LEnter2_16:
- mov al,ds:byte ptr[esi]
- mov cl,ds:byte ptr[esi+ebx]
- mov ah,dh
- add edx,ebp
- mov ch,dh
- lea esi,ds:dword ptr[esi+ebx*2]
- mov ax,ds:word ptr[12345678h+eax*2]
-LBPatch14:
- add edx,ebp
- mov ds:word ptr[edi],ax
- mov cx,ds:word ptr[12345678h+ecx*2]
-LBPatch15:
- mov ds:word ptr[2+edi],cx
- add edi,04h
--- a/ref_soft/d_if.inc
+++ /dev/null
@@ -1,81 +1,0 @@
-;
-; d_ifacea.h
-;
-; Include file for asm driver interface.
-;
-
-;
-; !!! note that this file must match the corresponding C structures in
-; d_iface.h at all times !!!
-;
-
-; !!! if this is changed, it must be changed in r_shared.h too !!!
-ALIAS_ONSEAM				equ		00020h
-
-; !!! if this is changed, it must be changed in d_iface.h too !!!
-TURB_TEX_SIZE	equ		64
-
-; !!! if this is changed, it must be changed in d_iface.h too !!!
-CYCLE	equ		128
-
-; !!! if this is changed, it must be changed in r_shared.h too !!!
-MAXHEIGHT	equ		1024
-
-; !!! if this is changed, it must be changed in quakedef.h too !!!
-CACHE_SIZE	equ		32
-
-; particle_t structure
-; !!! if this is changed, it must be changed in d_iface.h too !!!
-; driver-usable fields
-pt_org				equ		0
-pt_color			equ		12
-; drivers never touch the following fields
-pt_next				equ		16
-pt_vel				equ		20
-pt_ramp				equ		32
-pt_die				equ		36
-pt_type				equ		40
-pt_size				equ		44
-
-PARTICLE_Z_CLIP	equ		8.0
-
-; finalvert_t structure
-; !!! if this is changed, it must be changed in d_iface.h too !!!
-fv_v				equ		0	; !!! if this is moved, cases where the !!!
-								; !!! address of this field is pushed in !!!
-								; !!! d_polysa.s must be changed !!!
-fv_flags			equ		24
-fv_reserved			equ		28
-fv_size				equ		32
-fv_shift			equ		5
-
-
-; stvert_t structure
-; !!! if this is changed, it must be changed in modelgen.h too !!!
-stv_onseam	equ		0
-stv_s		equ		4
-stv_t		equ		8
-stv_size	equ		12
-
-
-; trivertx_t structure
-; !!! if this is changed, it must be changed in modelgen.h too !!!
-tv_v				equ		0
-tv_lightnormalindex	equ		3
-tv_size				equ		4
-
-; affinetridesc_t structure
-; !!! if this is changed, it must be changed in d_iface.h too !!!
-atd_pskin			equ		0
-atd_pskindesc		equ		4
-atd_skinwidth		equ		8
-atd_skinheight		equ		12
-atd_ptriangles		equ		16
-atd_pfinalverts		equ		20
-atd_numtriangles	equ		24
-atd_drawtype		equ		28
-atd_seamfixupX16	equ		32
-atd_do_vis_thresh	equ		36
-atd_vis_thresh		equ		40
-atd_size			equ		44
-
--- a/ref_soft/d_ifacea.h
+++ /dev/null
@@ -1,76 +1,0 @@
-//
-// d_ifacea.h
-//
-// Include file for asm driver interface.
-//
-
-//
-// !!! note that this file must match the corresponding C structures in
-// d_iface.h at all times !!!
-//
-
-// !!! if this is changed, it must be changed in d_iface.h too !!!
-#define TURB_TEX_SIZE	64		// base turbulent texture size
-
-// !!! if this is changed, it must be changed in d_iface.h too !!!
-#define	CYCLE	128
-
-// !!! if this is changed, it must be changed in r_shared.h too !!!
-#define	MAXHEIGHT	1200
-
-// !!! if this is changed, it must be changed in qcommon.h too !!!
-#define CACHE_SIZE	32		// used to align key data structures
-
-// particle_t structure
-// !!! if this is changed, it must be changed in d_iface.h too !!!
-// driver-usable fields
-#define pt_org				0
-#define pt_color			12
-// drivers never touch the following fields
-#define pt_next				16
-#define pt_vel				20
-#define pt_ramp				32
-#define pt_die				36
-#define pt_type				40
-#define pt_size				44
-
-#define PARTICLE_Z_CLIP	8.0
-
-// finalvert_t structure
-// !!! if this is changed, it must be changed in d_iface.h too !!!
-#define fv_v				0	// !!! if this is moved, cases where the !!!
-								// !!! address of this field is pushed in !!!
-								// !!! d_polysa.s must be changed !!!
-#define fv_flags			24
-#define fv_reserved			28
-#define fv_size				32
-#define fv_shift			5
-
-
-// stvert_t structure
-// !!! if this is changed, it must be changed in modelgen.h too !!!
-#define stv_onseam	0
-#define stv_s		4
-#define stv_t		8
-#define stv_size	12
-
-
-// trivertx_t structure
-// !!! if this is changed, it must be changed in modelgen.h too !!!
-#define tv_v				0
-#define tv_lightnormalindex	3
-#define tv_size				4
-
-// affinetridesc_t structure
-// !!! if this is changed, it must be changed in d_iface.h too !!!
-#define atd_pskin			0
-#define atd_pskindesc		4
-#define atd_skinwidth		8
-#define atd_skinheight		12
-#define atd_ptriangles		16
-#define atd_pfinalverts		20
-#define atd_numtriangles	24
-#define atd_drawtype		28
-#define atd_seamfixupX16	32
-#define atd_size			36
-
--- a/ref_soft/qasm.inc
+++ /dev/null
@@ -1,435 +1,0 @@
-;
-; qasm.inc
-;
-; Include file for asm routines.
-;
-
-;
-; !!! note that this file must match the corresponding C structures at all
-; times !!!
-;
-
-; set to 0 to skip all asm code
-id386	equ		1
-
-; !!! must be kept the same as in d_iface.h !!!
-TRANSPARENT_COLOR	equ		255
-
-ifndef GLQUAKE
-	externdef _d_zistepu:dword
-	externdef _d_pzbuffer:dword
-	externdef _d_zistepv:dword
-	externdef _d_zrowbytes:dword
-	externdef _d_ziorigin:dword
-	externdef _r_turb_s:dword
-	externdef _r_turb_t:dword
-	externdef _r_turb_pdest:dword
-	externdef _r_turb_spancount:dword
-	externdef _r_turb_turb:dword
-	externdef _r_turb_pbase:dword
-	externdef _r_turb_sstep:dword
-	externdef _r_turb_tstep:dword
-	externdef	_r_bmodelactive:dword
-	externdef	_d_sdivzstepu:dword
-	externdef	_d_tdivzstepu:dword
-	externdef	_d_sdivzstepv:dword
-	externdef	_d_tdivzstepv:dword
-	externdef	_d_sdivzorigin:dword
-	externdef	_d_tdivzorigin:dword
-	externdef	_sadjust:dword
-	externdef	_tadjust:dword
-	externdef	_bbextents:dword
-	externdef	_bbextentt:dword
-	externdef	_cacheblock:dword
-	externdef	_d_viewbuffer:dword
-	externdef	_cachewidth:dword
-	externdef	_d_pzbuffer:dword
-	externdef	_d_zrowbytes:dword
-	externdef	_d_zwidth:dword
-	externdef _d_scantable:dword
-	externdef _r_lightptr:dword
-	externdef _r_numvblocks:dword
-	externdef _prowdestbase:dword
-	externdef _pbasesource:dword
-	externdef _r_lightwidth:dword
-	externdef _lightright:dword
-	externdef _lightrightstep:dword
-	externdef _lightdeltastep:dword
-	externdef _lightdelta:dword
-	externdef _lightright:dword
-	externdef _lightdelta:dword
-	externdef _sourcetstep:dword
-	externdef _surfrowbytes:dword
-	externdef _lightrightstep:dword
-	externdef _lightdeltastep:dword
-	externdef _r_sourcemax:dword
-	externdef _r_stepback:dword
-	externdef _colormap:dword
-	externdef _blocksize:dword
-	externdef _sourcesstep:dword
-	externdef _lightleft:dword
-	externdef _blockdivshift:dword
-	externdef _blockdivmask:dword
-	externdef _lightleftstep:dword
-	externdef _r_origin:dword
-	externdef _r_ppn:dword
-	externdef _r_pup:dword
-	externdef _r_pright:dword
-	externdef _ycenter:dword
-	externdef _xcenter:dword
-	externdef _d_vrectbottom_particle:dword
-	externdef _d_vrectright_particle:dword
-	externdef _d_vrecty:dword
-	externdef _d_vrectx:dword
-	externdef _d_pix_shift:dword
-	externdef _d_pix_min:dword
-	externdef _d_pix_max:dword
-	externdef _d_y_aspect_shift:dword
-	externdef _screenwidth:dword
-	externdef _r_leftclipped:dword
-	externdef _r_leftenter:dword
-	externdef _r_rightclipped:dword
-	externdef _r_rightenter:dword
-	externdef _modelorg:dword
-	externdef _xscale:dword
-	externdef _r_refdef:dword
-	externdef _yscale:dword
-	externdef _r_leftexit:dword
-	externdef _r_rightexit:dword
-	externdef _r_lastvertvalid:dword
-	externdef _cacheoffset:dword
-	externdef _newedges:dword
-	externdef _removeedges:dword
-	externdef _r_pedge:dword
-	externdef _r_framecount:dword
-	externdef _r_u1:dword
-	externdef _r_emitted:dword
-	externdef _edge_p:dword
-	externdef _surface_p:dword
-	externdef _surfaces:dword
-	externdef _r_lzi1:dword
-	externdef _r_v1:dword
-	externdef _r_ceilv1:dword
-	externdef _r_nearzi:dword
-	externdef _r_nearzionly:dword
-	externdef _edge_aftertail:dword
-	externdef _edge_tail:dword
-	externdef _current_iv:dword
-	externdef _edge_head_u_shift20:dword
-	externdef _span_p:dword
-	externdef _edge_head:dword
-	externdef _fv:dword
-	externdef _edge_tail_u_shift20:dword
-	externdef _r_apverts:dword
-	externdef _r_anumverts:dword
-	externdef _aliastransform:dword
-	externdef _r_avertexnormals:dword
-	externdef _r_plightvec:dword
-	externdef _r_ambientlight:dword
-	externdef _r_shadelight:dword
-	externdef _aliasxcenter:dword
-	externdef _aliasycenter:dword
-	externdef _a_sstepxfrac:dword
-	externdef _r_affinetridesc:dword
-	externdef _acolormap:dword
-	externdef _d_pcolormap:dword
-	externdef _r_affinetridesc:dword
-	externdef _d_sfrac:dword
-	externdef _d_ptex:dword
-	externdef _d_pedgespanpackage:dword
-	externdef _d_tfrac:dword
-	externdef _d_light:dword
-	externdef _d_zi:dword
-	externdef _d_pdest:dword
-	externdef _d_pz:dword
-	externdef _d_aspancount:dword
-	externdef _erroradjustup:dword
-	externdef _errorterm:dword
-	externdef _d_xdenom:dword
-	externdef _r_p0:dword
-	externdef _r_p1:dword
-	externdef _r_p2:dword
-	externdef _a_tstepxfrac:dword
-	externdef _r_sstepx:dword
-	externdef _r_tstepx:dword
-	externdef _a_ststepxwhole:dword
-	externdef _zspantable:dword
-	externdef _skintable:dword
-	externdef _r_zistepx:dword
-	externdef _erroradjustdown:dword
-	externdef _d_countextrastep:dword
-	externdef _ubasestep:dword
-	externdef _a_ststepxwhole:dword
-	externdef _a_tstepxfrac:dword
-	externdef _r_lstepx:dword
-	externdef _a_spans:dword
-	externdef _erroradjustdown:dword
-	externdef _d_pdestextrastep:dword
-	externdef _d_pzextrastep:dword
-	externdef _d_sfracextrastep:dword
-	externdef _d_ptexextrastep:dword
-	externdef _d_countextrastep:dword
-	externdef _d_tfracextrastep:dword
-	externdef _d_lightextrastep:dword
-	externdef _d_ziextrastep:dword
-	externdef _d_pdestbasestep:dword
-	externdef _d_pzbasestep:dword
-	externdef _d_sfracbasestep:dword
-	externdef _d_ptexbasestep:dword
-	externdef _ubasestep:dword
-	externdef _d_tfracbasestep:dword
-	externdef _d_lightbasestep:dword
-	externdef _d_zibasestep:dword
-	externdef _zspantable:dword
-	externdef _r_lstepy:dword
-	externdef _r_sstepy:dword
-	externdef _r_tstepy:dword
-	externdef _r_zistepy:dword
-	externdef _D_PolysetSetEdgeTable:dword
-	externdef _D_RasterizeAliasPolySmooth:dword
-
-	externdef float_point5:dword
-	externdef Float2ToThe31nd:dword
-	externdef izistep:dword
-	externdef izi:dword
-	externdef FloatMinus2ToThe31nd:dword
-	externdef float_1:dword
-	externdef float_particle_z_clip:dword
-	externdef float_minus_1:dword
-	externdef float_0:dword
-	externdef fp_16:dword
-	externdef fp_64k:dword
-	externdef fp_1m:dword
-	externdef fp_1m_minus_1:dword
-	externdef fp_8 :dword
-	externdef entryvec_table:dword
-	externdef advancetable:dword
-	externdef sstep:dword
-	externdef tstep:dword
-	externdef pspantemp:dword
-	externdef counttemp:dword
-	externdef jumptemp:dword
-	externdef reciprocal_table:dword
-	externdef DP_Count:dword
-	externdef DP_u:dword
-	externdef DP_v:dword
-	externdef DP_32768:dword
-	externdef DP_Color:dword
-	externdef DP_Pix:dword
-	externdef DP_EntryTable:dword
-	externdef	pbase:dword
-	externdef s:dword
-	externdef t:dword
-	externdef sfracf:dword
-	externdef tfracf:dword
-	externdef snext:dword
-	externdef tnext:dword
-	externdef	spancountminus1:dword
-	externdef zi16stepu:dword
-	externdef sdivz16stepu:dword
-	externdef tdivz16stepu:dword
-	externdef	zi8stepu:dword
-	externdef sdivz8stepu:dword
-	externdef tdivz8stepu:dword
-	externdef reciprocal_table_16:dword
-	externdef entryvec_table_16:dword
-	externdef fp_64kx64k:dword
-	externdef pz:dword
-	externdef spr8entryvec_table:dword
-endif
-
-	externdef _fpu_ceil_cw:dword
-	externdef _fpu_chop_cw:dword
-	externdef _snd_scaletable:dword
-	externdef _paintbuffer:dword
-	externdef _snd_linear_count:dword
-	externdef _snd_p:dword
-	externdef _snd_vol:dword
-	externdef _snd_out:dword
-	externdef _vright:dword
-	externdef _vup:dword
-	externdef _vpn:dword
-	externdef _BOPS_Error:dword
-
-; plane_t structure
-; !!! if this is changed, it must be changed in model.h too !!!
-; !!! if the size of this is changed, the array lookup in SV_HullPointContents
-;     must be changed too !!!
-pl_normal	equ		0
-pl_dist		equ		12
-pl_type		equ		16
-pl_signbits	equ		17
-pl_pad		equ		18
-pl_size		equ		20
-
-; hull_t structure
-; !!! if this is changed, it must be changed in model.h too !!!
-hu_clipnodes		equ		0
-hu_planes			equ		4
-hu_firstclipnode	equ		8
-hu_lastclipnode		equ		12
-hu_clip_mins		equ		16
-hu_clip_maxs		equ		28
-hu_size  			equ		40
-
-; dnode_t structure
-; !!! if this is changed, it must be changed in bspfile.h too !!!
-nd_planenum		equ		0
-nd_children		equ		4
-nd_mins			equ		8
-nd_maxs			equ		20
-nd_firstface	equ		32
-nd_numfaces		equ		36
-nd_size			equ		40
-
-; sfxcache_t structure
-; !!! if this is changed, it much be changed in sound.h too !!!
-sfxc_length		equ		0
-sfxc_loopstart	equ		4
-sfxc_speed		equ		8
-sfxc_width		equ		12
-sfxc_stereo		equ		16
-sfxc_data		equ		20
-
-; channel_t structure
-; !!! if this is changed, it much be changed in sound.h too !!!
-ch_sfx			equ		0
-ch_leftvol		equ		4
-ch_rightvol		equ		8
-ch_end			equ		12
-ch_pos			equ		16
-ch_looping		equ		20
-ch_entnum		equ		24
-ch_entchannel	equ		28
-ch_origin		equ		32
-ch_dist_mult	equ		44
-ch_master_vol	equ		48
-ch_size			equ		52
-
-; portable_samplepair_t structure
-; !!! if this is changed, it much be changed in sound.h too !!!
-psp_left		equ		0
-psp_right		equ		4
-psp_size		equ		8
-
-; !!! if this is changed, it must be changed in r_local.h too !!!
-NEAR_CLIP	equ		0.01
-
-; !!! if this is changed, it must be changed in r_local.h too !!!
-CYCLE	equ		128
-
-; espan_t structure
-; !!! if this is changed, it must be changed in r_shared.h too !!!
-espan_t_u    	equ		0
-espan_t_v	    equ		4
-espan_t_count   equ		8
-espan_t_pnext	equ		12
-espan_t_size    equ		16
-
-; sspan_t structure
-; !!! if this is changed, it must be changed in d_local.h too !!!
-sspan_t_u    	equ		0
-sspan_t_v	    equ		4
-sspan_t_count   equ		8
-sspan_t_size    equ		12
-
-; spanpackage_t structure
-; !!! if this is changed, it must be changed in d_polyset.c too !!!
-spanpackage_t_pdest				equ		0
-spanpackage_t_pz				equ		4
-spanpackage_t_count				equ		8
-spanpackage_t_ptex				equ		12
-spanpackage_t_sfrac				equ		16
-spanpackage_t_tfrac				equ		20
-spanpackage_t_light				equ		24
-spanpackage_t_zi				equ		28
-spanpackage_t_size				equ		32 
-
-; edge_t structure
-; !!! if this is changed, it must be changed in r_shared.h too !!!
-et_u			equ		0
-et_u_step		equ		4
-et_prev			equ		8
-et_next			equ		12
-et_surfs		equ		16
-et_nextremove	equ		20
-et_nearzi		equ		24
-et_owner		equ		28
-et_size			equ		32
-
-; surf_t structure
-; !!! if this is changed, it must be changed in r_shared.h too !!!
-SURF_T_SHIFT	equ		6
-st_next			equ		0
-st_prev			equ		4
-st_spans		equ		8
-st_key			equ		12
-st_last_u		equ		16
-st_spanstate	equ		20
-st_flags		equ		24
-st_data			equ		28
-st_entity		equ		32
-st_nearzi		equ		36
-st_insubmodel	equ		40
-st_d_ziorigin	equ		44
-st_d_zistepu	equ		48
-st_d_zistepv	equ		52
-st_pad			equ		56
-st_size			equ		64
-
-; clipplane_t structure
-; !!! if this is changed, it must be changed in r_local.h too !!!
-cp_normal		equ		0
-cp_dist			equ		12
-cp_next			equ		16
-cp_leftedge		equ		20
-cp_rightedge	equ		21
-cp_reserved		equ		22
-cp_size			equ		24
-
-; medge_t structure
-; !!! if this is changed, it must be changed in model.h too !!!
-me_v				equ		0
-me_cachededgeoffset	equ		4
-me_size				equ		8
-
-; mvertex_t structure
-; !!! if this is changed, it must be changed in model.h too !!!
-mv_position		equ		0
-mv_size			equ		12
-
-; refdef_t structure
-; !!! if this is changed, it must be changed in render.h too !!!
-rd_vrect					equ		0
-rd_aliasvrect				equ		20
-rd_vrectright				equ		40
-rd_vrectbottom				equ		44
-rd_aliasvrectright			equ		48
-rd_aliasvrectbottom			equ		52
-rd_vrectrightedge			equ		56
-rd_fvrectx					equ		60
-rd_fvrecty					equ		64
-rd_fvrectx_adj				equ		68
-rd_fvrecty_adj				equ		72
-rd_vrect_x_adj_shift20		equ		76
-rd_vrectright_adj_shift20	equ		80
-rd_fvrectright_adj			equ		84
-rd_fvrectbottom_adj			equ		88
-rd_fvrectright				equ		92
-rd_fvrectbottom				equ		96
-rd_horizontalFieldOfView	equ		100
-rd_xOrigin					equ		104
-rd_yOrigin					equ		108
-rd_vieworg					equ		112
-rd_viewangles				equ		124
-rd_ambientlight				equ		136
-rd_size						equ		140
-
-; mtriangle_t structure
-; !!! if this is changed, it must be changed in model.h too !!!
-mtri_facesfront		equ		0
-mtri_vertindex		equ		4
-mtri_size			equ		16	; !!! if this changes, array indexing in !!!
-								; !!! d_polysa.s must be changed to match !!!
-mtri_shift			equ		4
-
--- a/ref_soft/r_aclipa.asm
+++ /dev/null
@@ -1,200 +1,0 @@
- .386P
- .model FLAT
-;
-; r_aliasa.s
-; x86 assembly-language Alias model transform and project code.
-;
-
-include qasm.inc
-include d_if.inc
-
-if id386
-
-_DATA SEGMENT	
-Ltemp0 dd 0	
-Ltemp1 dd 0	
-
-_DATA ENDS
-_TEXT SEGMENT	
-
-pfv0		equ		8+4
-pfv1		equ		8+8
-outparm			equ		8+12
-
- public _R_Alias_clip_bottom	
-_R_Alias_clip_bottom:	
- push esi	
- push edi	
-
- mov esi,ds:dword ptr[pfv0+esp]	
- mov edi,ds:dword ptr[pfv1+esp]	
-
- mov eax,ds:dword ptr[_r_refdef+rd_aliasvrectbottom]	
-
-LDoForwardOrBackward:	
-
- mov edx,ds:dword ptr[fv_v+4+esi]	
- mov ecx,ds:dword ptr[fv_v+4+edi]	
-
- cmp edx,ecx	
- jl LDoForward	
-
- mov ecx,ds:dword ptr[fv_v+4+esi]	
- mov edx,ds:dword ptr[fv_v+4+edi]	
- mov edi,ds:dword ptr[pfv0+esp]	
- mov esi,ds:dword ptr[pfv1+esp]	
-
-LDoForward:	
-
- sub ecx,edx	
- sub eax,edx	
- mov ds:dword ptr[Ltemp1],ecx	
- mov ds:dword ptr[Ltemp0],eax	
- fild ds:dword ptr[Ltemp1]	
- fild ds:dword ptr[Ltemp0]	
- mov edx,ds:dword ptr[outparm+esp]	
- mov eax,2	
-
- fdivrp st(1),st(0)	; scale
-
-LDo3Forward:	
- fild ds:dword ptr[fv_v+0+esi]	; fv0v0 | scale
- fild ds:dword ptr[fv_v+0+edi]	; fv1v0 | fv0v0 | scale
- fild ds:dword ptr[fv_v+4+esi]	; fv0v1 | fv1v0 | fv0v0 | scale
- fild ds:dword ptr[fv_v+4+edi]	; fv1v1 | fv0v1 | fv1v0 | fv0v0 | scale
- fild ds:dword ptr[fv_v+8+esi]	; fv0v2 | fv1v1 | fv0v1 | fv1v0 | fv0v0 | scale
- fild ds:dword ptr[fv_v+8+edi]	; fv1v2 | fv0v2 | fv1v1 | fv0v1 | fv1v0 | fv0v0 |
-;  scale
- fxch st(5)	; fv0v0 | fv0v2 | fv1v1 | fv0v1 | fv1v0 | fv1v2 |
-;  scale
- fsub st(4),st(0)	; fv0v0 | fv0v2 | fv1v1 | fv0v1 | fv1v0-fv0v0 |
-;  fv1v2 | scale
- fxch st(3)	; fv0v1 | fv0v2 | fv1v1 | fv0v0 | fv1v0-fv0v0 |
-;  fv1v2 | scale
- fsub st(2),st(0)	; fv0v1 | fv0v2 | fv1v1-fv0v1 | fv0v0 |
-;  fv1v0-fv0v0 | fv1v2 | scale
- fxch st(1)	; fv0v2 | fv0v1 | fv1v1-fv0v1 | fv0v0 |
-;  fv1v0-fv0v0 | fv1v2 | scale
- fsub st(5),st(0)	; fv0v2 | fv0v1 | fv1v1-fv0v1 | fv0v0 |
-;  fv1v0-fv0v0 | fv1v2-fv0v2 | scale
- fxch st(6)	; scale | fv0v1 | fv1v1-fv0v1 | fv0v0 |
-;  fv1v0-fv0v0 | fv1v2-fv0v2 | fv0v2
- fmul st(4),st(0)	; scale | fv0v1 | fv1v1-fv0v1 | fv0v0 |
-;  (fv1v0-fv0v0)*scale | fv1v2-fv0v2 | fv0v2
- add edi,12	
- fmul st(2),st(0)	; scale | fv0v1 | (fv1v1-fv0v1)*scale | fv0v0 |
-;  (fv1v0-fv0v0)*scale | fv1v2-fv0v2 | fv0v2
- add esi,12	
- add edx,12	
- fmul st(5),st(0)	; scale | fv0v1 | (fv1v1-fv0v1)*scale | fv0v0 |
-;  (fv1v0-fv0v0)*scale | (fv1v2-fv0v2)*scale |
-;  fv0v2
- fxch st(3)	; fv0v0 | fv0v1 | (fv1v1-fv0v1)*scale | scale |
-;  (fv1v0-fv0v0)*scale | (fv1v2-fv0v2)*scale |
-;  fv0v2
- faddp st(4),st(0)	; fv0v1 | (fv1v1-fv0v1)*scale | scale |
-;  fv0v0+(fv1v0-fv0v0)*scale |
-;  (fv1v2-fv0v2)*scale | fv0v2
- faddp st(1),st(0)	; fv0v1+(fv1v1-fv0v1)*scale | scale |
-;  fv0v0+(fv1v0-fv0v0)*scale |
-;  (fv1v2-fv0v2)*scale | fv0v2
- fxch st(4)	; fv0v2 | scale | fv0v0+(fv1v0-fv0v0)*scale |
-;  (fv1v2-fv0v2)*scale | fv0v1+(fv1v1-fv0v1)*scale
- faddp st(3),st(0)	; scale | fv0v0+(fv1v0-fv0v0)*scale |
-;  fv0v2+(fv1v2-fv0v2)*scale |
-;  fv0v1+(fv1v1-fv0v1)*scale
- fxch st(1)	; fv0v0+(fv1v0-fv0v0)*scale | scale | 
-;  fv0v2+(fv1v2-fv0v2)*scale |
-;  fv0v1+(fv1v1-fv0v1)*scale
- fadd ds:dword ptr[float_point5]	
- fxch st(3)	; fv0v1+(fv1v1-fv0v1)*scale | scale | 
-;  fv0v2+(fv1v2-fv0v2)*scale |
-;  fv0v0+(fv1v0-fv0v0)*scale
- fadd ds:dword ptr[float_point5]	
- fxch st(2)	; fv0v2+(fv1v2-fv0v2)*scale | scale | 
-;  fv0v1+(fv1v1-fv0v1)*scale |
-;  fv0v0+(fv1v0-fv0v0)*scale
- fadd ds:dword ptr[float_point5]	
- fxch st(3)	; fv0v0+(fv1v0-fv0v0)*scale | scale | 
-;  fv0v1+(fv1v1-fv0v1)*scale |
-;  fv0v2+(fv1v2-fv0v2)*scale
- fistp ds:dword ptr[fv_v+0-12+edx]	; scale | fv0v1+(fv1v1-fv0v1)*scale |
-;  fv0v2+(fv1v2-fv0v2)*scale
- fxch st(1)	; fv0v1+(fv1v1-fv0v1)*scale | scale |
-;  fv0v2+(fv1v2-fv0v2)*scale | scale
- fistp ds:dword ptr[fv_v+4-12+edx]	; scale | fv0v2+(fv1v2-fv0v2)*scale
- fxch st(1)	; fv0v2+(fv1v2-fv0v2)*sc | scale
- fistp ds:dword ptr[fv_v+8-12+edx]	; scale
-
- dec eax	
- jnz LDo3Forward	
-
- fstp st(0)	
-
- pop edi	
- pop esi	
-
- ret	
-
-
- public _R_Alias_clip_top	
-_R_Alias_clip_top:	
- push esi	
- push edi	
-
- mov esi,ds:dword ptr[pfv0+esp]	
- mov edi,ds:dword ptr[pfv1+esp]	
-
- mov eax,ds:dword ptr[_r_refdef+rd_aliasvrect+4]	
- jmp LDoForwardOrBackward	
-
-
-
- public _R_Alias_clip_right	
-_R_Alias_clip_right:	
- push esi	
- push edi	
-
- mov esi,ds:dword ptr[pfv0+esp]	
- mov edi,ds:dword ptr[pfv1+esp]	
-
- mov eax,ds:dword ptr[_r_refdef+rd_aliasvrectright]	
-
-LRightLeftEntry:	
-
-
- mov edx,ds:dword ptr[fv_v+4+esi]	
- mov ecx,ds:dword ptr[fv_v+4+edi]	
-
- cmp edx,ecx	
- mov edx,ds:dword ptr[fv_v+0+esi]	
-
- mov ecx,ds:dword ptr[fv_v+0+edi]	
- jl LDoForward2	
-
- mov ecx,ds:dword ptr[fv_v+0+esi]	
- mov edx,ds:dword ptr[fv_v+0+edi]	
- mov edi,ds:dword ptr[pfv0+esp]	
- mov esi,ds:dword ptr[pfv1+esp]	
-
-LDoForward2:	
-
- jmp LDoForward	
-
-
- public _R_Alias_clip_left	
-_R_Alias_clip_left:	
- push esi	
- push edi	
-
- mov esi,ds:dword ptr[pfv0+esp]	
- mov edi,ds:dword ptr[pfv1+esp]	
-
- mov eax,ds:dword ptr[_r_refdef+rd_aliasvrect+0]	
- jmp LRightLeftEntry	
-
-
-
-_TEXT ENDS
-endif	;id386
- END
--- a/ref_soft/r_alias.c
+++ b/ref_soft/r_alias.c
@@ -58,7 +58,7 @@
 #define NUMVERTEXNORMALS	162
 
 float	r_avertexnormals[NUMVERTEXNORMALS][3] = {
-#include "anorms.h"
+#include "../anorms.h"
 };
 
 
--- a/ref_soft/r_draw16.asm
+++ /dev/null
@@ -1,1234 +1,0 @@
- .386P
- .model FLAT
-;
-; d_draw16.s
-; x86 assembly-language horizontal 8-bpp span-drawing code, with 16-pixel
-; subdivision.
-;
-
-include qasm.inc
-include d_if.inc
-
-if	id386
-
-;----------------------------------------------------------------------
-; 8-bpp horizontal span drawing code for polygons, with no transparency and
-; 16-pixel subdivision.
-;
-; Assumes there is at least one span in pspans, and that every span
-; contains at least one pixel
-;----------------------------------------------------------------------
-
-_DATA SEGMENT	
-
-_DATA ENDS
-_TEXT SEGMENT	
-
-; out-of-line, rarely-needed clamping code
-
-LClampHigh0:	
- mov esi,ds:dword ptr[_bbextents]	
- jmp LClampReentry0	
-LClampHighOrLow0:	
- jg LClampHigh0	
- xor esi,esi	
- jmp LClampReentry0	
-
-LClampHigh1:	
- mov edx,ds:dword ptr[_bbextentt]	
- jmp LClampReentry1	
-LClampHighOrLow1:	
- jg LClampHigh1	
- xor edx,edx	
- jmp LClampReentry1	
-
-LClampLow2:	
- mov ebp,4096	
- jmp LClampReentry2	
-LClampHigh2:	
- mov ebp,ds:dword ptr[_bbextents]	
- jmp LClampReentry2	
-
-LClampLow3:	
- mov ecx,4096	
- jmp LClampReentry3	
-LClampHigh3:	
- mov ecx,ds:dword ptr[_bbextentt]	
- jmp LClampReentry3	
-
-LClampLow4:	
- mov eax,4096	
- jmp LClampReentry4	
-LClampHigh4:	
- mov eax,ds:dword ptr[_bbextents]	
- jmp LClampReentry4	
-
-LClampLow5:	
- mov ebx,4096	
- jmp LClampReentry5	
-LClampHigh5:	
- mov ebx,ds:dword ptr[_bbextentt]	
- jmp LClampReentry5	
-
-
-pspans	equ		4+16
-
- align 4	
- public _D_DrawSpans16	
-_D_DrawSpans16:	
- push ebp	; preserve caller's stack frame
- push edi	
- push esi	; preserve register variables
- push ebx	
-
-;
-; set up scaled-by-16 steps, for 16-long segments; also set up cacheblock
-; and span list pointers
-;
-; TODO: any overlap from rearranging?
- fld ds:dword ptr[_d_sdivzstepu]	
- fmul ds:dword ptr[fp_16]	
- mov edx,ds:dword ptr[_cacheblock]	
- fld ds:dword ptr[_d_tdivzstepu]	
- fmul ds:dword ptr[fp_16]	
- mov ebx,ds:dword ptr[pspans+esp]	; point to the first span descriptor
- fld ds:dword ptr[_d_zistepu]	
- fmul ds:dword ptr[fp_16]	
- mov ds:dword ptr[pbase],edx	; pbase = cacheblock
- fstp ds:dword ptr[zi16stepu]	
- fstp ds:dword ptr[tdivz16stepu]	
- fstp ds:dword ptr[sdivz16stepu]	
-
-LSpanLoop:	
-;
-; set up the initial s/z, t/z, and 1/z on the FP stack, and generate the
-; initial s and t values
-;
-; FIXME: pipeline FILD?
- fild ds:dword ptr[espan_t_v+ebx]	
- fild ds:dword ptr[espan_t_u+ebx]	
-
- fld st(1)	; dv | du | dv
- fmul ds:dword ptr[_d_sdivzstepv]	; dv*d_sdivzstepv | du | dv
- fld st(1)	; du | dv*d_sdivzstepv | du | dv
- fmul ds:dword ptr[_d_sdivzstepu]	; du*d_sdivzstepu | dv*d_sdivzstepv | du | dv
- fld st(2)	; du | du*d_sdivzstepu | dv*d_sdivzstepv | du | dv
- fmul ds:dword ptr[_d_tdivzstepu]	; du*d_tdivzstepu | du*d_sdivzstepu |
-;  dv*d_sdivzstepv | du | dv
- fxch st(1)	; du*d_sdivzstepu | du*d_tdivzstepu |
-;  dv*d_sdivzstepv | du | dv
- faddp st(2),st(0)	; du*d_tdivzstepu |
-;  du*d_sdivzstepu + dv*d_sdivzstepv | du | dv
- fxch st(1)	; du*d_sdivzstepu + dv*d_sdivzstepv |
-;  du*d_tdivzstepu | du | dv
- fld st(3)	; dv | du*d_sdivzstepu + dv*d_sdivzstepv |
-;  du*d_tdivzstepu | du | dv
- fmul ds:dword ptr[_d_tdivzstepv]	; dv*d_tdivzstepv |
-;  du*d_sdivzstepu + dv*d_sdivzstepv |
-;  du*d_tdivzstepu | du | dv
- fxch st(1)	; du*d_sdivzstepu + dv*d_sdivzstepv |
-;  dv*d_tdivzstepv | du*d_tdivzstepu | du | dv
- fadd ds:dword ptr[_d_sdivzorigin]	; sdivz = d_sdivzorigin + dv*d_sdivzstepv +
-;  du*d_sdivzstepu; stays in %st(2) at end
- fxch st(4)	; dv | dv*d_tdivzstepv | du*d_tdivzstepu | du |
-;  s/z
- fmul ds:dword ptr[_d_zistepv]	; dv*d_zistepv | dv*d_tdivzstepv |
-;  du*d_tdivzstepu | du | s/z
- fxch st(1)	; dv*d_tdivzstepv |  dv*d_zistepv |
-;  du*d_tdivzstepu | du | s/z
- faddp st(2),st(0)	; dv*d_zistepv |
-;  dv*d_tdivzstepv + du*d_tdivzstepu | du | s/z
- fxch st(2)	; du | dv*d_tdivzstepv + du*d_tdivzstepu |
-;  dv*d_zistepv | s/z
- fmul ds:dword ptr[_d_zistepu]	; du*d_zistepu |
-;  dv*d_tdivzstepv + du*d_tdivzstepu |
-;  dv*d_zistepv | s/z
- fxch st(1)	; dv*d_tdivzstepv + du*d_tdivzstepu |
-;  du*d_zistepu | dv*d_zistepv | s/z
- fadd ds:dword ptr[_d_tdivzorigin]	; tdivz = d_tdivzorigin + dv*d_tdivzstepv +
-;  du*d_tdivzstepu; stays in %st(1) at end
- fxch st(2)	; dv*d_zistepv | du*d_zistepu | t/z | s/z
- faddp st(1),st(0)	; dv*d_zistepv + du*d_zistepu | t/z | s/z
-
- fld ds:dword ptr[fp_64k]	; fp_64k | dv*d_zistepv + du*d_zistepu | t/z | s/z
- fxch st(1)	; dv*d_zistepv + du*d_zistepu | fp_64k | t/z | s/z
- fadd ds:dword ptr[_d_ziorigin]	; zi = d_ziorigin + dv*d_zistepv +
-;  du*d_zistepu; stays in %st(0) at end
-; 1/z | fp_64k | t/z | s/z
-;
-; calculate and clamp s & t
-;
- fdiv st(1),st(0)	; 1/z | z*64k | t/z | s/z
-
-;
-; point %edi to the first pixel in the span
-;
- mov ecx,ds:dword ptr[_d_viewbuffer]	
- mov eax,ds:dword ptr[espan_t_v+ebx]	
- mov ds:dword ptr[pspantemp],ebx	; preserve spans pointer
-
- mov edx,ds:dword ptr[_tadjust]	
- mov esi,ds:dword ptr[_sadjust]	
- mov edi,ds:dword ptr[_d_scantable+eax*4]	; v * screenwidth
- add edi,ecx	
- mov ecx,ds:dword ptr[espan_t_u+ebx]	
- add edi,ecx	; pdest = &pdestspan[scans->u];
- mov ecx,ds:dword ptr[espan_t_count+ebx]	
-
-;
-; now start the FDIV for the end of the span
-;
- cmp ecx,16	
- ja LSetupNotLast1	
-
- dec ecx	
- jz LCleanup1	; if only one pixel, no need to start an FDIV
- mov ds:dword ptr[spancountminus1],ecx	
-
-; finish up the s and t calcs
- fxch st(1)	; z*64k | 1/z | t/z | s/z
-
- fld st(0)	; z*64k | z*64k | 1/z | t/z | s/z
- fmul st(0),st(4)	; s | z*64k | 1/z | t/z | s/z
- fxch st(1)	; z*64k | s | 1/z | t/z | s/z
- fmul st(0),st(3)	; t | s | 1/z | t/z | s/z
- fxch st(1)	; s | t | 1/z | t/z | s/z
- fistp ds:dword ptr[s]	; 1/z | t | t/z | s/z
- fistp ds:dword ptr[t]	; 1/z | t/z | s/z
-
- fild ds:dword ptr[spancountminus1]	
-
- fld ds:dword ptr[_d_tdivzstepu]	; C(d_tdivzstepu) | spancountminus1
- fld ds:dword ptr[_d_zistepu]	; C(d_zistepu) | C(d_tdivzstepu) | spancountminus1
- fmul st(0),st(2)	; C(d_zistepu)*scm1 | C(d_tdivzstepu) | scm1
- fxch st(1)	; C(d_tdivzstepu) | C(d_zistepu)*scm1 | scm1
- fmul st(0),st(2)	; C(d_tdivzstepu)*scm1 | C(d_zistepu)*scm1 | scm1
- fxch st(2)	; scm1 | C(d_zistepu)*scm1 | C(d_tdivzstepu)*scm1
- fmul ds:dword ptr[_d_sdivzstepu]	; C(d_sdivzstepu)*scm1 | C(d_zistepu)*scm1 |
-;  C(d_tdivzstepu)*scm1
- fxch st(1)	; C(d_zistepu)*scm1 | C(d_sdivzstepu)*scm1 |
-;  C(d_tdivzstepu)*scm1
- faddp st(3),st(0)	; C(d_sdivzstepu)*scm1 | C(d_tdivzstepu)*scm1
- fxch st(1)	; C(d_tdivzstepu)*scm1 | C(d_sdivzstepu)*scm1
- faddp st(3),st(0)	; C(d_sdivzstepu)*scm1
- faddp st(3),st(0)	
-
- fld ds:dword ptr[fp_64k]	
- fdiv st(0),st(1)	; this is what we've gone to all this trouble to
-;  overlap
- jmp LFDIVInFlight1	
-
-LCleanup1:	
-; finish up the s and t calcs
- fxch st(1)	; z*64k | 1/z | t/z | s/z
-
- fld st(0)	; z*64k | z*64k | 1/z | t/z | s/z
- fmul st(0),st(4)	; s | z*64k | 1/z | t/z | s/z
- fxch st(1)	; z*64k | s | 1/z | t/z | s/z
- fmul st(0),st(3)	; t | s | 1/z | t/z | s/z
- fxch st(1)	; s | t | 1/z | t/z | s/z
- fistp ds:dword ptr[s]	; 1/z | t | t/z | s/z
- fistp ds:dword ptr[t]	; 1/z | t/z | s/z
- jmp LFDIVInFlight1	
-
- align 4	
-LSetupNotLast1:	
-; finish up the s and t calcs
- fxch st(1)	; z*64k | 1/z | t/z | s/z
-
- fld st(0)	; z*64k | z*64k | 1/z | t/z | s/z
- fmul st(0),st(4)	; s | z*64k | 1/z | t/z | s/z
- fxch st(1)	; z*64k | s | 1/z | t/z | s/z
- fmul st(0),st(3)	; t | s | 1/z | t/z | s/z
- fxch st(1)	; s | t | 1/z | t/z | s/z
- fistp ds:dword ptr[s]	; 1/z | t | t/z | s/z
- fistp ds:dword ptr[t]	; 1/z | t/z | s/z
-
- fadd ds:dword ptr[zi16stepu]	
- fxch st(2)	
- fadd ds:dword ptr[sdivz16stepu]	
- fxch st(2)	
- fld ds:dword ptr[tdivz16stepu]	
- faddp st(2),st(0)	
- fld ds:dword ptr[fp_64k]	
- fdiv st(0),st(1)	; z = 1/1/z
-; this is what we've gone to all this trouble to
-;  overlap
-LFDIVInFlight1:	
-
- add esi,ds:dword ptr[s]	
- add edx,ds:dword ptr[t]	
- mov ebx,ds:dword ptr[_bbextents]	
- mov ebp,ds:dword ptr[_bbextentt]	
- cmp esi,ebx	
- ja LClampHighOrLow0	
-LClampReentry0:	
- mov ds:dword ptr[s],esi	
- mov ebx,ds:dword ptr[pbase]	
- shl esi,16	
- cmp edx,ebp	
- mov ds:dword ptr[sfracf],esi	
- ja LClampHighOrLow1	
-LClampReentry1:	
- mov ds:dword ptr[t],edx	
- mov esi,ds:dword ptr[s]	; sfrac = scans->sfrac;
- shl edx,16	
- mov eax,ds:dword ptr[t]	; tfrac = scans->tfrac;
- sar esi,16	
- mov ds:dword ptr[tfracf],edx	
-
-;
-; calculate the texture starting address
-;
- sar eax,16	
- mov edx,ds:dword ptr[_cachewidth]	
- imul eax,edx	; (tfrac >> 16) * cachewidth
- add esi,ebx	
- add esi,eax	; psource = pbase + (sfrac >> 16) +
-;           ((tfrac >> 16) * cachewidth);
-;
-; determine whether last span or not
-;
- cmp ecx,16	
- jna LLastSegment	
-
-;
-; not the last segment; do full 16-wide segment
-;
-LNotLastSegment:	
-
-;
-; advance s/z, t/z, and 1/z, and calculate s & t at end of span and steps to
-; get there
-;
-
-; pick up after the FDIV that was left in flight previously
-
- fld st(0)	; duplicate it
- fmul st(0),st(4)	; s = s/z * z
- fxch st(1)	
- fmul st(0),st(3)	; t = t/z * z
- fxch st(1)	
- fistp ds:dword ptr[snext]	
- fistp ds:dword ptr[tnext]	
- mov eax,ds:dword ptr[snext]	
- mov edx,ds:dword ptr[tnext]	
-
- mov bl,ds:byte ptr[esi]	; get first source texel
- sub ecx,16	; count off this segments' pixels
- mov ebp,ds:dword ptr[_sadjust]	
- mov ds:dword ptr[counttemp],ecx	; remember count of remaining pixels
-
- mov ecx,ds:dword ptr[_tadjust]	
- mov ds:byte ptr[edi],bl	; store first dest pixel
-
- add ebp,eax	
- add ecx,edx	
-
- mov eax,ds:dword ptr[_bbextents]	
- mov edx,ds:dword ptr[_bbextentt]	
-
- cmp ebp,4096	
- jl LClampLow2	
- cmp ebp,eax	
- ja LClampHigh2	
-LClampReentry2:	
-
- cmp ecx,4096	
- jl LClampLow3	
- cmp ecx,edx	
- ja LClampHigh3	
-LClampReentry3:	
-
- mov ds:dword ptr[snext],ebp	
- mov ds:dword ptr[tnext],ecx	
-
- sub ebp,ds:dword ptr[s]	
- sub ecx,ds:dword ptr[t]	
-
-;
-; set up advancetable
-;
- mov eax,ecx	
- mov edx,ebp	
- sar eax,20	; tstep >>= 16;
- jz LZero	
- sar edx,20	; sstep >>= 16;
- mov ebx,ds:dword ptr[_cachewidth]	
- imul eax,ebx	
- jmp LSetUp1	
-
-LZero:	
- sar edx,20	; sstep >>= 16;
- mov ebx,ds:dword ptr[_cachewidth]	
-
-LSetUp1:	
-
- add eax,edx	; add in sstep
-; (tstep >> 16) * cachewidth + (sstep >> 16);
- mov edx,ds:dword ptr[tfracf]	
- mov ds:dword ptr[advancetable+4],eax	; advance base in t
- add eax,ebx	; ((tstep >> 16) + 1) * cachewidth +
-;  (sstep >> 16);
- shl ebp,12	; left-justify sstep fractional part
- mov ebx,ds:dword ptr[sfracf]	
- shl ecx,12	; left-justify tstep fractional part
- mov ds:dword ptr[advancetable],eax	; advance extra in t
-
- mov ds:dword ptr[tstep],ecx	
- add edx,ecx	; advance tfrac fractional part by tstep frac
-
- sbb ecx,ecx	; turn tstep carry into -1 (0 if none)
- add ebx,ebp	; advance sfrac fractional part by sstep frac
- adc esi,ds:dword ptr[advancetable+4+ecx*4]	; point to next source texel
-
- add edx,ds:dword ptr[tstep]	
- sbb ecx,ecx	
- mov al,ds:byte ptr[esi]	
- add ebx,ebp	
- mov ds:byte ptr[1+edi],al	
- adc esi,ds:dword ptr[advancetable+4+ecx*4]	
-
- add edx,ds:dword ptr[tstep]	
- sbb ecx,ecx	
- add ebx,ebp	
- mov al,ds:byte ptr[esi]	
- adc esi,ds:dword ptr[advancetable+4+ecx*4]	
-
- add edx,ds:dword ptr[tstep]	
- sbb ecx,ecx	
- mov ds:byte ptr[2+edi],al	
- add ebx,ebp	
- mov al,ds:byte ptr[esi]	
- adc esi,ds:dword ptr[advancetable+4+ecx*4]	
-
- add edx,ds:dword ptr[tstep]	
- sbb ecx,ecx	
- mov ds:byte ptr[3+edi],al	
- add ebx,ebp	
- mov al,ds:byte ptr[esi]	
- adc esi,ds:dword ptr[advancetable+4+ecx*4]	
-
- add edx,ds:dword ptr[tstep]	
- sbb ecx,ecx	
- mov ds:byte ptr[4+edi],al	
- add ebx,ebp	
- mov al,ds:byte ptr[esi]	
- adc esi,ds:dword ptr[advancetable+4+ecx*4]	
-
- add edx,ds:dword ptr[tstep]	
- sbb ecx,ecx	
- mov ds:byte ptr[5+edi],al	
- add ebx,ebp	
- mov al,ds:byte ptr[esi]	
- adc esi,ds:dword ptr[advancetable+4+ecx*4]	
-
- add edx,ds:dword ptr[tstep]	
- sbb ecx,ecx	
- mov ds:byte ptr[6+edi],al	
- add ebx,ebp	
- mov al,ds:byte ptr[esi]	
- adc esi,ds:dword ptr[advancetable+4+ecx*4]	
-
- add edx,ds:dword ptr[tstep]	
- sbb ecx,ecx	
- mov ds:byte ptr[7+edi],al	
- add ebx,ebp	
- mov al,ds:byte ptr[esi]	
- adc esi,ds:dword ptr[advancetable+4+ecx*4]	
-
-
-;
-; start FDIV for end of next segment in flight, so it can overlap
-;
- mov ecx,ds:dword ptr[counttemp]	
- cmp ecx,16	; more than one segment after this?
- ja LSetupNotLast2	; yes
-
- dec ecx	
- jz LFDIVInFlight2	; if only one pixel, no need to start an FDIV
- mov ds:dword ptr[spancountminus1],ecx	
- fild ds:dword ptr[spancountminus1]	
-
- fld ds:dword ptr[_d_zistepu]	; C(d_zistepu) | spancountminus1
- fmul st(0),st(1)	; C(d_zistepu)*scm1 | scm1
- fld ds:dword ptr[_d_tdivzstepu]	; C(d_tdivzstepu) | C(d_zistepu)*scm1 | scm1
- fmul st(0),st(2)	; C(d_tdivzstepu)*scm1 | C(d_zistepu)*scm1 | scm1
- fxch st(1)	; C(d_zistepu)*scm1 | C(d_tdivzstepu)*scm1 | scm1
- faddp st(3),st(0)	; C(d_tdivzstepu)*scm1 | scm1
- fxch st(1)	; scm1 | C(d_tdivzstepu)*scm1
- fmul ds:dword ptr[_d_sdivzstepu]	; C(d_sdivzstepu)*scm1 | C(d_tdivzstepu)*scm1
- fxch st(1)	; C(d_tdivzstepu)*scm1 | C(d_sdivzstepu)*scm1
- faddp st(3),st(0)	; C(d_sdivzstepu)*scm1
- fld ds:dword ptr[fp_64k]	; 64k | C(d_sdivzstepu)*scm1
- fxch st(1)	; C(d_sdivzstepu)*scm1 | 64k
- faddp st(4),st(0)	; 64k
-
- fdiv st(0),st(1)	; this is what we've gone to all this trouble to
-;  overlap
- jmp LFDIVInFlight2	
-
- align 4	
-LSetupNotLast2:	
- fadd ds:dword ptr[zi16stepu]	
- fxch st(2)	
- fadd ds:dword ptr[sdivz16stepu]	
- fxch st(2)	
- fld ds:dword ptr[tdivz16stepu]	
- faddp st(2),st(0)	
- fld ds:dword ptr[fp_64k]	
- fdiv st(0),st(1)	; z = 1/1/z
-; this is what we've gone to all this trouble to
-;  overlap
-LFDIVInFlight2:	
- mov ds:dword ptr[counttemp],ecx	
-
- add edx,ds:dword ptr[tstep]	
- sbb ecx,ecx	
- mov ds:byte ptr[8+edi],al	
- add ebx,ebp	
- mov al,ds:byte ptr[esi]	
- adc esi,ds:dword ptr[advancetable+4+ecx*4]	
-
- add edx,ds:dword ptr[tstep]	
- sbb ecx,ecx	
- mov ds:byte ptr[9+edi],al	
- add ebx,ebp	
- mov al,ds:byte ptr[esi]	
- adc esi,ds:dword ptr[advancetable+4+ecx*4]	
-
- add edx,ds:dword ptr[tstep]	
- sbb ecx,ecx	
- mov ds:byte ptr[10+edi],al	
- add ebx,ebp	
- mov al,ds:byte ptr[esi]	
- adc esi,ds:dword ptr[advancetable+4+ecx*4]	
-
- add edx,ds:dword ptr[tstep]	
- sbb ecx,ecx	
- mov ds:byte ptr[11+edi],al	
- add ebx,ebp	
- mov al,ds:byte ptr[esi]	
- adc esi,ds:dword ptr[advancetable+4+ecx*4]	
-
- add edx,ds:dword ptr[tstep]	
- sbb ecx,ecx	
- mov ds:byte ptr[12+edi],al	
- add ebx,ebp	
- mov al,ds:byte ptr[esi]	
- adc esi,ds:dword ptr[advancetable+4+ecx*4]	
-
- add edx,ds:dword ptr[tstep]	
- sbb ecx,ecx	
- mov ds:byte ptr[13+edi],al	
- add ebx,ebp	
- mov al,ds:byte ptr[esi]	
- adc esi,ds:dword ptr[advancetable+4+ecx*4]	
-
- add edx,ds:dword ptr[tstep]	
- sbb ecx,ecx	
- mov ds:byte ptr[14+edi],al	
- add ebx,ebp	
- mov al,ds:byte ptr[esi]	
- adc esi,ds:dword ptr[advancetable+4+ecx*4]	
-
- add edi,16	
- mov ds:dword ptr[tfracf],edx	
- mov edx,ds:dword ptr[snext]	
- mov ds:dword ptr[sfracf],ebx	
- mov ebx,ds:dword ptr[tnext]	
- mov ds:dword ptr[s],edx	
- mov ds:dword ptr[t],ebx	
-
- mov ecx,ds:dword ptr[counttemp]	; retrieve count
-
-;
-; determine whether last span or not
-;
- cmp ecx,16	; are there multiple segments remaining?
- mov ds:byte ptr[-1+edi],al	
- ja LNotLastSegment	; yes
-
-;
-; last segment of scan
-;
-LLastSegment:	
-
-;
-; advance s/z, t/z, and 1/z, and calculate s & t at end of span and steps to
-; get there. The number of pixels left is variable, and we want to land on the
-; last pixel, not step one past it, so we can't run into arithmetic problems
-;
- test ecx,ecx	
- jz LNoSteps	; just draw the last pixel and we're done
-
-; pick up after the FDIV that was left in flight previously
-
-
- fld st(0)	; duplicate it
- fmul st(0),st(4)	; s = s/z * z
- fxch st(1)	
- fmul st(0),st(3)	; t = t/z * z
- fxch st(1)	
- fistp ds:dword ptr[snext]	
- fistp ds:dword ptr[tnext]	
-
- mov al,ds:byte ptr[esi]	; load first texel in segment
- mov ebx,ds:dword ptr[_tadjust]	
- mov ds:byte ptr[edi],al	; store first pixel in segment
- mov eax,ds:dword ptr[_sadjust]	
-
- add eax,ds:dword ptr[snext]	
- add ebx,ds:dword ptr[tnext]	
-
- mov ebp,ds:dword ptr[_bbextents]	
- mov edx,ds:dword ptr[_bbextentt]	
-
- cmp eax,4096	
- jl LClampLow4	
- cmp eax,ebp	
- ja LClampHigh4	
-LClampReentry4:	
- mov ds:dword ptr[snext],eax	
-
- cmp ebx,4096	
- jl LClampLow5	
- cmp ebx,edx	
- ja LClampHigh5	
-LClampReentry5:	
-
- cmp ecx,1	; don't bother 
- je LOnlyOneStep	; if two pixels in segment, there's only one step,
-;  of the segment length
- sub eax,ds:dword ptr[s]	
- sub ebx,ds:dword ptr[t]	
-
- add eax,eax	; convert to 15.17 format so multiply by 1.31
- add ebx,ebx	;  reciprocal yields 16.48
-
- imul ds:dword ptr[reciprocal_table_16-8+ecx*4]	; sstep = (snext - s) /
-;  (spancount-1)
- mov ebp,edx	
-
- mov eax,ebx	
- imul ds:dword ptr[reciprocal_table_16-8+ecx*4]	; tstep = (tnext - t) /
-;  (spancount-1)
-LSetEntryvec:	
-;
-; set up advancetable
-;
- mov ebx,ds:dword ptr[entryvec_table_16+ecx*4]	
- mov eax,edx	
- mov ds:dword ptr[jumptemp],ebx	; entry point into code for RET later
- mov ecx,ebp	
- sar edx,16	; tstep >>= 16;
- mov ebx,ds:dword ptr[_cachewidth]	
- sar ecx,16	; sstep >>= 16;
- imul edx,ebx	
-
- add edx,ecx	; add in sstep
-; (tstep >> 16) * cachewidth + (sstep >> 16);
- mov ecx,ds:dword ptr[tfracf]	
- mov ds:dword ptr[advancetable+4],edx	; advance base in t
- add edx,ebx	; ((tstep >> 16) + 1) * cachewidth +
-;  (sstep >> 16);
- shl ebp,16	; left-justify sstep fractional part
- mov ebx,ds:dword ptr[sfracf]	
- shl eax,16	; left-justify tstep fractional part
- mov ds:dword ptr[advancetable],edx	; advance extra in t
-
- mov ds:dword ptr[tstep],eax	
- mov edx,ecx	
- add edx,eax	
- sbb ecx,ecx	
- add ebx,ebp	
- adc esi,ds:dword ptr[advancetable+4+ecx*4]	
-
- jmp dword ptr[jumptemp]	; jump to the number-of-pixels handler
-
-;----------------------------------------
-
-LNoSteps:	
- mov al,ds:byte ptr[esi]	; load first texel in segment
- sub edi,15	; adjust for hardwired offset
- jmp LEndSpan	
-
-
-LOnlyOneStep:	
- sub eax,ds:dword ptr[s]	
- sub ebx,ds:dword ptr[t]	
- mov ebp,eax	
- mov edx,ebx	
- jmp LSetEntryvec	
-
-;----------------------------------------
-
- public Entry2_16, Entry3_16, Entry4_16, Entry5_16	
- public Entry6_16, Entry7_16, Entry8_16, Entry9_16	
- public Entry10_16, Entry11_16, Entry12_16, Entry13_16	
- public Entry14_16, Entry15_16, Entry16_16	
-
-Entry2_16:	
- sub edi,14	; adjust for hardwired offsets
- mov al,ds:byte ptr[esi]	
- jmp LEntry2_16	
-
-;----------------------------------------
-
-Entry3_16:	
- sub edi,13	; adjust for hardwired offsets
- add edx,eax	
- mov al,ds:byte ptr[esi]	
- sbb ecx,ecx	
- add ebx,ebp	
- adc esi,ds:dword ptr[advancetable+4+ecx*4]	
- jmp LEntry3_16	
-
-;----------------------------------------
-
-Entry4_16:	
- sub edi,12	; adjust for hardwired offsets
- add edx,eax	
- mov al,ds:byte ptr[esi]	
- sbb ecx,ecx	
- add ebx,ebp	
- adc esi,ds:dword ptr[advancetable+4+ecx*4]	
- add edx,ds:dword ptr[tstep]	
- jmp LEntry4_16	
-
-;----------------------------------------
-
-Entry5_16:	
- sub edi,11	; adjust for hardwired offsets
- add edx,eax	
- mov al,ds:byte ptr[esi]	
- sbb ecx,ecx	
- add ebx,ebp	
- adc esi,ds:dword ptr[advancetable+4+ecx*4]	
- add edx,ds:dword ptr[tstep]	
- jmp LEntry5_16	
-
-;----------------------------------------
-
-Entry6_16:	
- sub edi,10	; adjust for hardwired offsets
- add edx,eax	
- mov al,ds:byte ptr[esi]	
- sbb ecx,ecx	
- add ebx,ebp	
- adc esi,ds:dword ptr[advancetable+4+ecx*4]	
- add edx,ds:dword ptr[tstep]	
- jmp LEntry6_16	
-
-;----------------------------------------
-
-Entry7_16:	
- sub edi,9	; adjust for hardwired offsets
- add edx,eax	
- mov al,ds:byte ptr[esi]	
- sbb ecx,ecx	
- add ebx,ebp	
- adc esi,ds:dword ptr[advancetable+4+ecx*4]	
- add edx,ds:dword ptr[tstep]	
- jmp LEntry7_16	
-
-;----------------------------------------
-
-Entry8_16:	
- sub edi,8	; adjust for hardwired offsets
- add edx,eax	
- mov al,ds:byte ptr[esi]	
- sbb ecx,ecx	
- add ebx,ebp	
- adc esi,ds:dword ptr[advancetable+4+ecx*4]	
- add edx,ds:dword ptr[tstep]	
- jmp LEntry8_16	
-
-;----------------------------------------
-
-Entry9_16:	
- sub edi,7	; adjust for hardwired offsets
- add edx,eax	
- mov al,ds:byte ptr[esi]	
- sbb ecx,ecx	
- add ebx,ebp	
- adc esi,ds:dword ptr[advancetable+4+ecx*4]	
- add edx,ds:dword ptr[tstep]	
- jmp LEntry9_16	
-
-;----------------------------------------
-
-Entry10_16:	
- sub edi,6	; adjust for hardwired offsets
- add edx,eax	
- mov al,ds:byte ptr[esi]	
- sbb ecx,ecx	
- add ebx,ebp	
- adc esi,ds:dword ptr[advancetable+4+ecx*4]	
- add edx,ds:dword ptr[tstep]	
- jmp LEntry10_16	
-
-;----------------------------------------
-
-Entry11_16:	
- sub edi,5	; adjust for hardwired offsets
- add edx,eax	
- mov al,ds:byte ptr[esi]	
- sbb ecx,ecx	
- add ebx,ebp	
- adc esi,ds:dword ptr[advancetable+4+ecx*4]	
- add edx,ds:dword ptr[tstep]	
- jmp LEntry11_16	
-
-;----------------------------------------
-
-Entry12_16:	
- sub edi,4	; adjust for hardwired offsets
- add edx,eax	
- mov al,ds:byte ptr[esi]	
- sbb ecx,ecx	
- add ebx,ebp	
- adc esi,ds:dword ptr[advancetable+4+ecx*4]	
- add edx,ds:dword ptr[tstep]	
- jmp LEntry12_16	
-
-;----------------------------------------
-
-Entry13_16:	
- sub edi,3	; adjust for hardwired offsets
- add edx,eax	
- mov al,ds:byte ptr[esi]	
- sbb ecx,ecx	
- add ebx,ebp	
- adc esi,ds:dword ptr[advancetable+4+ecx*4]	
- add edx,ds:dword ptr[tstep]	
- jmp LEntry13_16	
-
-;----------------------------------------
-
-Entry14_16:	
- sub edi,2	; adjust for hardwired offsets
- add edx,eax	
- mov al,ds:byte ptr[esi]	
- sbb ecx,ecx	
- add ebx,ebp	
- adc esi,ds:dword ptr[advancetable+4+ecx*4]	
- add edx,ds:dword ptr[tstep]	
- jmp LEntry14_16	
-
-;----------------------------------------
-
-Entry15_16:	
- dec edi	; adjust for hardwired offsets
- add edx,eax	
- mov al,ds:byte ptr[esi]	
- sbb ecx,ecx	
- add ebx,ebp	
- adc esi,ds:dword ptr[advancetable+4+ecx*4]	
- add edx,ds:dword ptr[tstep]	
- jmp LEntry15_16	
-
-;----------------------------------------
-
-Entry16_16:	
- add edx,eax	
- mov al,ds:byte ptr[esi]	
- sbb ecx,ecx	
- add ebx,ebp	
- adc esi,ds:dword ptr[advancetable+4+ecx*4]	
-
- add edx,ds:dword ptr[tstep]	
- sbb ecx,ecx	
- mov ds:byte ptr[1+edi],al	
- add ebx,ebp	
- mov al,ds:byte ptr[esi]	
- adc esi,ds:dword ptr[advancetable+4+ecx*4]	
- add edx,ds:dword ptr[tstep]	
-LEntry15_16:	
- sbb ecx,ecx	
- mov ds:byte ptr[2+edi],al	
- add ebx,ebp	
- mov al,ds:byte ptr[esi]	
- adc esi,ds:dword ptr[advancetable+4+ecx*4]	
- add edx,ds:dword ptr[tstep]	
-LEntry14_16:	
- sbb ecx,ecx	
- mov ds:byte ptr[3+edi],al	
- add ebx,ebp	
- mov al,ds:byte ptr[esi]	
- adc esi,ds:dword ptr[advancetable+4+ecx*4]	
- add edx,ds:dword ptr[tstep]	
-LEntry13_16:	
- sbb ecx,ecx	
- mov ds:byte ptr[4+edi],al	
- add ebx,ebp	
- mov al,ds:byte ptr[esi]	
- adc esi,ds:dword ptr[advancetable+4+ecx*4]	
- add edx,ds:dword ptr[tstep]	
-LEntry12_16:	
- sbb ecx,ecx	
- mov ds:byte ptr[5+edi],al	
- add ebx,ebp	
- mov al,ds:byte ptr[esi]	
- adc esi,ds:dword ptr[advancetable+4+ecx*4]	
- add edx,ds:dword ptr[tstep]	
-LEntry11_16:	
- sbb ecx,ecx	
- mov ds:byte ptr[6+edi],al	
- add ebx,ebp	
- mov al,ds:byte ptr[esi]	
- adc esi,ds:dword ptr[advancetable+4+ecx*4]	
- add edx,ds:dword ptr[tstep]	
-LEntry10_16:	
- sbb ecx,ecx	
- mov ds:byte ptr[7+edi],al	
- add ebx,ebp	
- mov al,ds:byte ptr[esi]	
- adc esi,ds:dword ptr[advancetable+4+ecx*4]	
- add edx,ds:dword ptr[tstep]	
-LEntry9_16:	
- sbb ecx,ecx	
- mov ds:byte ptr[8+edi],al	
- add ebx,ebp	
- mov al,ds:byte ptr[esi]	
- adc esi,ds:dword ptr[advancetable+4+ecx*4]	
- add edx,ds:dword ptr[tstep]	
-LEntry8_16:	
- sbb ecx,ecx	
- mov ds:byte ptr[9+edi],al	
- add ebx,ebp	
- mov al,ds:byte ptr[esi]	
- adc esi,ds:dword ptr[advancetable+4+ecx*4]	
- add edx,ds:dword ptr[tstep]	
-LEntry7_16:	
- sbb ecx,ecx	
- mov ds:byte ptr[10+edi],al	
- add ebx,ebp	
- mov al,ds:byte ptr[esi]	
- adc esi,ds:dword ptr[advancetable+4+ecx*4]	
- add edx,ds:dword ptr[tstep]	
-LEntry6_16:	
- sbb ecx,ecx	
- mov ds:byte ptr[11+edi],al	
- add ebx,ebp	
- mov al,ds:byte ptr[esi]	
- adc esi,ds:dword ptr[advancetable+4+ecx*4]	
- add edx,ds:dword ptr[tstep]	
-LEntry5_16:	
- sbb ecx,ecx	
- mov ds:byte ptr[12+edi],al	
- add ebx,ebp	
- mov al,ds:byte ptr[esi]	
- adc esi,ds:dword ptr[advancetable+4+ecx*4]	
- add edx,ds:dword ptr[tstep]	
-LEntry4_16:	
- sbb ecx,ecx	
- mov ds:byte ptr[13+edi],al	
- add ebx,ebp	
- mov al,ds:byte ptr[esi]	
- adc esi,ds:dword ptr[advancetable+4+ecx*4]	
-LEntry3_16:	
- mov ds:byte ptr[14+edi],al	
- mov al,ds:byte ptr[esi]	
-LEntry2_16:	
-
-LEndSpan:	
-
-;
-; clear s/z, t/z, 1/z from FP stack
-;
- fstp st(0)	
- fstp st(0)	
- fstp st(0)	
-
- mov ebx,ds:dword ptr[pspantemp]	; restore spans pointer
- mov ebx,ds:dword ptr[espan_t_pnext+ebx]	; point to next span
- test ebx,ebx	; any more spans?
- mov ds:byte ptr[15+edi],al	
- jnz LSpanLoop	; more spans
-
- pop ebx	; restore register variables
- pop esi	
- pop edi	
- pop ebp	; restore the caller's stack frame
- ret	
-
-
-;----------------------------------------------------------------------
-; 8-bpp horizontal span z drawing codefor polygons, with no transparency.
-;
-; Assumes there is at least one span in pzspans, and that every span
-; contains at least one pixel
-;----------------------------------------------------------------------
-
-	
-
-; z-clamp on a non-negative gradient span
-LClamp:	
- mov edx,040000000h	
- xor ebx,ebx	
- fstp st(0)	
- jmp LZDraw	
-
-; z-clamp on a negative gradient span
-LClampNeg:	
- mov edx,040000000h	
- xor ebx,ebx	
- fstp st(0)	
- jmp LZDrawNeg	
-
-
-pzspans	equ		4+16
-
- public _D_DrawZSpans	
-_D_DrawZSpans:	
- push ebp	; preserve caller's stack frame
- push edi	
- push esi	; preserve register variables
- push ebx	
-
- fld ds:dword ptr[_d_zistepu]	
- mov eax,ds:dword ptr[_d_zistepu]	
- mov esi,ds:dword ptr[pzspans+esp]	
- test eax,eax	
- jz LFNegSpan	
-
- fmul ds:dword ptr[Float2ToThe31nd]	
- fistp ds:dword ptr[izistep]	; note: we are relying on FP exceptions being turned
-; off here to avoid range problems
- mov ebx,ds:dword ptr[izistep]	; remains loaded for all spans
-
-LFSpanLoop:	
-; set up the initial 1/z value
- fild ds:dword ptr[espan_t_v+esi]	
- fild ds:dword ptr[espan_t_u+esi]	
- mov ecx,ds:dword ptr[espan_t_v+esi]	
- mov edi,ds:dword ptr[_d_pzbuffer]	
- fmul ds:dword ptr[_d_zistepu]	
- fxch st(1)	
- fmul ds:dword ptr[_d_zistepv]	
- fxch st(1)	
- fadd ds:dword ptr[_d_ziorigin]	
- imul ecx,ds:dword ptr[_d_zrowbytes]	
- faddp st(1),st(0)	
-
-; clamp if z is nearer than 2 (1/z > 0.5)
- fcom ds:dword ptr[float_point5]	
- add edi,ecx	
- mov edx,ds:dword ptr[espan_t_u+esi]	
- add edx,edx	; word count
- mov ecx,ds:dword ptr[espan_t_count+esi]	
- add edi,edx	; pdest = &pdestspan[scans->u];
- push esi	; preserve spans pointer
- fnstsw ax	
- test ah,045h	
- jz LClamp	
-
- fmul ds:dword ptr[Float2ToThe31nd]	
- fistp ds:dword ptr[izi]	; note: we are relying on FP exceptions being turned
-; off here to avoid problems when the span is closer
-; than 1/(2**31)
- mov edx,ds:dword ptr[izi]	
-
-; at this point:
-; %ebx = izistep
-; %ecx = count
-; %edx = izi
-; %edi = pdest
-
-LZDraw:	
-
-; do a single pixel up front, if necessary to dword align the destination
- test edi,2	
- jz LFMiddle	
- mov eax,edx	
- add edx,ebx	
- shr eax,16	
- dec ecx	
- mov ds:word ptr[edi],ax	
- add edi,2	
-
-; do middle a pair of aligned dwords at a time
-LFMiddle:	
- push ecx	
- shr ecx,1	; count / 2
- jz LFLast	; no aligned dwords to do
- shr ecx,1	; (count / 2) / 2
- jnc LFMiddleLoop	; even number of aligned dwords to do
-
- mov eax,edx	
- add edx,ebx	
- shr eax,16	
- mov esi,edx	
- add edx,ebx	
- and esi,0FFFF0000h	
- or eax,esi	
- mov ds:dword ptr[edi],eax	
- add edi,4	
- and ecx,ecx	
- jz LFLast	
-
-LFMiddleLoop:	
- mov eax,edx	
- add edx,ebx	
- shr eax,16	
- mov esi,edx	
- add edx,ebx	
- and esi,0FFFF0000h	
- or eax,esi	
- mov ebp,edx	
- mov ds:dword ptr[edi],eax	
- add edx,ebx	
- shr ebp,16	
- mov esi,edx	
- add edx,ebx	
- and esi,0FFFF0000h	
- or ebp,esi	
- mov ds:dword ptr[4+edi],ebp	; FIXME: eliminate register contention
- add edi,8	
-
- dec ecx	
- jnz LFMiddleLoop	
-
-LFLast:	
- pop ecx	; retrieve count
- pop esi	; retrieve span pointer
-
-; do the last, unaligned pixel, if there is one
- and ecx,1	; is there an odd pixel left to do?
- jz LFSpanDone	; no
- shr edx,16	
- mov ds:word ptr[edi],dx	; do the final pixel's z
-
-LFSpanDone:	
- mov esi,ds:dword ptr[espan_t_pnext+esi]	
- test esi,esi	
- jnz LFSpanLoop	
-
- jmp LFDone	
-
-LFNegSpan:	
- fmul ds:dword ptr[FloatMinus2ToThe31nd]	
- fistp ds:dword ptr[izistep]	; note: we are relying on FP exceptions being turned
-; off here to avoid range problems
- mov ebx,ds:dword ptr[izistep]	; remains loaded for all spans
-
-LFNegSpanLoop:	
-; set up the initial 1/z value
- fild ds:dword ptr[espan_t_v+esi]	
- fild ds:dword ptr[espan_t_u+esi]	
- mov ecx,ds:dword ptr[espan_t_v+esi]	
- mov edi,ds:dword ptr[_d_pzbuffer]	
- fmul ds:dword ptr[_d_zistepu]	
- fxch st(1)	
- fmul ds:dword ptr[_d_zistepv]	
- fxch st(1)	
- fadd ds:dword ptr[_d_ziorigin]	
- imul ecx,ds:dword ptr[_d_zrowbytes]	
- faddp st(1),st(0)	
-
-; clamp if z is nearer than 2 (1/z > 0.5)
- fcom ds:dword ptr[float_point5]	
- add edi,ecx	
- mov edx,ds:dword ptr[espan_t_u+esi]	
- add edx,edx	; word count
- mov ecx,ds:dword ptr[espan_t_count+esi]	
- add edi,edx	; pdest = &pdestspan[scans->u];
- push esi	; preserve spans pointer
- fnstsw ax	
- test ah,045h	
- jz LClampNeg	
-
- fmul ds:dword ptr[Float2ToThe31nd]	
- fistp ds:dword ptr[izi]	; note: we are relying on FP exceptions being turned
-; off here to avoid problems when the span is closer
-; than 1/(2**31)
- mov edx,ds:dword ptr[izi]	
-
-; at this point:
-; %ebx = izistep
-; %ecx = count
-; %edx = izi
-; %edi = pdest
-
-LZDrawNeg:	
-
-; do a single pixel up front, if necessary to dword align the destination
- test edi,2	
- jz LFNegMiddle	
- mov eax,edx	
- sub edx,ebx	
- shr eax,16	
- dec ecx	
- mov ds:word ptr[edi],ax	
- add edi,2	
-
-; do middle a pair of aligned dwords at a time
-LFNegMiddle:	
- push ecx	
- shr ecx,1	; count / 2
- jz LFNegLast	; no aligned dwords to do
- shr ecx,1	; (count / 2) / 2
- jnc LFNegMiddleLoop	; even number of aligned dwords to do
-
- mov eax,edx	
- sub edx,ebx	
- shr eax,16	
- mov esi,edx	
- sub edx,ebx	
- and esi,0FFFF0000h	
- or eax,esi	
- mov ds:dword ptr[edi],eax	
- add edi,4	
- and ecx,ecx	
- jz LFNegLast	
-
-LFNegMiddleLoop:	
- mov eax,edx	
- sub edx,ebx	
- shr eax,16	
- mov esi,edx	
- sub edx,ebx	
- and esi,0FFFF0000h	
- or eax,esi	
- mov ebp,edx	
- mov ds:dword ptr[edi],eax	
- sub edx,ebx	
- shr ebp,16	
- mov esi,edx	
- sub edx,ebx	
- and esi,0FFFF0000h	
- or ebp,esi	
- mov ds:dword ptr[4+edi],ebp	; FIXME: eliminate register contention
- add edi,8	
-
- dec ecx	
- jnz LFNegMiddleLoop	
-
-LFNegLast:	
- pop ecx	; retrieve count
- pop esi	; retrieve span pointer
-
-; do the last, unaligned pixel, if there is one
- and ecx,1	; is there an odd pixel left to do?
- jz LFNegSpanDone	; no
- shr edx,16	
- mov ds:word ptr[edi],dx	; do the final pixel's z
-
-LFNegSpanDone:	
- mov esi,ds:dword ptr[espan_t_pnext+esi]	
- test esi,esi	
- jnz LFNegSpanLoop	
-
-LFDone:	
- pop ebx	; restore register variables
- pop esi	
- pop edi	
- pop ebp	; restore the caller's stack frame
- ret	
-
-
-
-_TEXT ENDS
-endif	;id386
- END
--- a/ref_soft/r_drawa.asm
+++ /dev/null
@@ -1,822 +1,0 @@
- .386P
- .model FLAT
-;
-; r_drawa.s
-; x86 assembly-language edge clipping and emission code
-;
-
-include qasm.inc
-include d_if.inc
-
-if	id386
-
-; !!! if these are changed, they must be changed in r_draw.c too !!!
-FULLY_CLIPPED_CACHED	equ		080000000h
-FRAMECOUNT_MASK			equ		07FFFFFFFh
-
-_DATA SEGMENT	
-
-Ld0 dd 0.0	
-Ld1 dd 0.0	
-Lstack dd 0	
-Lfp_near_clip dd NEAR_CLIP	
-Lceilv0 dd 0	
-Lv dd 0	
-Lu0 dd 0	
-Lv0 dd 0	
-Lzi0 dd 0	
-
-_DATA ENDS
-_TEXT SEGMENT	
-
-;----------------------------------------------------------------------
-; edge clipping code
-;----------------------------------------------------------------------
-
-pv0		equ		4+12
-pv1		equ		8+12
-clip	equ		12+12
-
- align 4	
- public _R_ClipEdge	
-_R_ClipEdge:	
- push esi	; preserve register variables
- push edi	
- push ebx	
- mov ds:dword ptr[Lstack],esp	; for clearing the stack later
-
-;	float		d0, d1, f;
-;	mvertex_t	clipvert;
-
- mov ebx,ds:dword ptr[clip+esp]	
- mov esi,ds:dword ptr[pv0+esp]	
- mov edx,ds:dword ptr[pv1+esp]	
-
-;	if (clip)
-;	{
- test ebx,ebx	
- jz Lemit	
-
-;		do
-;		{
-
-Lcliploop:	
-
-;			d0 = DotProduct (pv0->position, clip->normal) - clip->dist;
-;			d1 = DotProduct (pv1->position, clip->normal) - clip->dist;
- fld ds:dword ptr[mv_position+0+esi]	
- fmul ds:dword ptr[cp_normal+0+ebx]	
- fld ds:dword ptr[mv_position+4+esi]	
- fmul ds:dword ptr[cp_normal+4+ebx]	
- fld ds:dword ptr[mv_position+8+esi]	
- fmul ds:dword ptr[cp_normal+8+ebx]	
- fxch st(1)	
- faddp st(2),st(0)	; d0mul2 | d0add0
-
- fld ds:dword ptr[mv_position+0+edx]	
- fmul ds:dword ptr[cp_normal+0+ebx]	
- fld ds:dword ptr[mv_position+4+edx]	
- fmul ds:dword ptr[cp_normal+4+ebx]	
- fld ds:dword ptr[mv_position+8+edx]	
- fmul ds:dword ptr[cp_normal+8+ebx]	
- fxch st(1)	
- faddp st(2),st(0)	; d1mul2 | d1add0 | d0mul2 | d0add0
- fxch st(3)	; d0add0 | d1add0 | d0mul2 | d1mul2
-
- faddp st(2),st(0)	; d1add0 | dot0 | d1mul2 
- faddp st(2),st(0)	; dot0 | dot1
-
- fsub ds:dword ptr[cp_dist+ebx]	; d0 | dot1
- fxch st(1)	; dot1 | d0
- fsub ds:dword ptr[cp_dist+ebx]	; d1 | d0
- fxch st(1)	
- fstp ds:dword ptr[Ld0]	
- fstp ds:dword ptr[Ld1]	
-
-;			if (d0 >= 0)
-;			{
- mov eax,ds:dword ptr[Ld0]	
- mov ecx,ds:dword ptr[Ld1]	
- or ecx,eax	
- js Lp2	
-
-; both points are unclipped
-
-Lcontinue:	
-
-;
-;				R_ClipEdge (&clipvert, pv1, clip->next);
-;				return;
-;			}
-;		} while ((clip = clip->next) != NULL);
- mov ebx,ds:dword ptr[cp_next+ebx]	
- test ebx,ebx	
- jnz Lcliploop	
-
-;	}
-
-;// add the edge
-;	R_EmitEdge (pv0, pv1);
-Lemit:	
-
-;
-; set integer rounding to ceil mode, set to single precision
-;
-; FIXME: do away with by manually extracting integers from floats?
-; FIXME: set less often
- fldcw ds:word ptr[_fpu_ceil_cw]	
-
-;	edge_t	*edge, *pcheck;
-;	int		u_check;
-;	float	u, u_step;
-;	vec3_t	local, transformed;
-;	float	*world;
-;	int		v, v2, ceilv0;
-;	float	scale, lzi0, u0, v0;
-;	int		side;
-
-;	if (r_lastvertvalid)
-;	{
- cmp ds:dword ptr[_r_lastvertvalid],0	
- jz LCalcFirst	
-
-;		u0 = r_u1;
-;		v0 = r_v1;
-;		lzi0 = r_lzi1;
-;		ceilv0 = r_ceilv1;
- mov eax,ds:dword ptr[_r_lzi1]	
- mov ecx,ds:dword ptr[_r_u1]	
- mov ds:dword ptr[Lzi0],eax	
- mov ds:dword ptr[Lu0],ecx	
- mov ecx,ds:dword ptr[_r_v1]	
- mov eax,ds:dword ptr[_r_ceilv1]	
- mov ds:dword ptr[Lv0],ecx	
- mov ds:dword ptr[Lceilv0],eax	
- jmp LCalcSecond	
-
-;	}
-
-LCalcFirst:	
-
-;	else
-;	{
-;		world = &pv0->position[0];
-
- call near ptr LTransformAndProject	; v0 | lzi0 | u0
-
- fst ds:dword ptr[Lv0]	
- fxch st(2)	; u0 | lzi0 | v0
- fstp ds:dword ptr[Lu0]	; lzi0 | v0
- fstp ds:dword ptr[Lzi0]	; v0
-
-;		ceilv0 = (int)(v0 - 2000) + 2000; // ceil(v0);
- fistp ds:dword ptr[Lceilv0]	
-
-;	}
-
-LCalcSecond:	
-
-;	world = &pv1->position[0];
- mov esi,edx	
-
- call near ptr LTransformAndProject	; v1 | lzi1 | u1
-
- fld ds:dword ptr[Lu0]	; u0 | v1 | lzi1 | u1
- fxch st(3)	; u1 | v1 | lzi1 | u0
- fld ds:dword ptr[Lzi0]	; lzi0 | u1 | v1 | lzi1 | u0
- fxch st(3)	; lzi1 | u1 | v1 | lzi0 | u0
- fld ds:dword ptr[Lv0]	; v0 | lzi1 | u1 | v1 | lzi0 | u0
- fxch st(3)	; v1 | lzi1 | u1 | v0 | lzi0 | u0
-
-;	r_ceilv1 = (int)(r_v1 - 2000) + 2000; // ceil(r_v1);
- fist ds:dword ptr[_r_ceilv1]	
-
- fldcw ds:word ptr[_fpu_chop_cw]	; put back normal floating-point state
-
- fst ds:dword ptr[_r_v1]	
- fxch st(4)	; lzi0 | lzi1 | u1 | v0 | v1 | u0
-
-;	if (r_lzi1 > lzi0)
-;		lzi0 = r_lzi1;
- fcom st(1)	
- fnstsw ax	
- test ah,1	
- jz LP0	
- fstp st(0)	
- fld st(0)	
-LP0:	
-
- fxch st(1)	; lzi1 | lzi0 | u1 | v0 | v1 | u0
- fstp ds:dword ptr[_r_lzi1]	; lzi0 | u1 | v0 | v1 | u0
- fxch st(1)	
- fst ds:dword ptr[_r_u1]	
- fxch st(1)	
-
-;	if (lzi0 > r_nearzi)	// for mipmap finding
-;		r_nearzi = lzi0;
- fcom ds:dword ptr[_r_nearzi]	
- fnstsw ax	
- test ah,045h	
- jnz LP1	
- fst ds:dword ptr[_r_nearzi]	
-LP1:	
-
-; // for right edges, all we want is the effect on 1/z
-;	if (r_nearzionly)
-;		return;
- mov eax,ds:dword ptr[_r_nearzionly]	
- test eax,eax	
- jz LP2	
-LPop5AndDone:	
- mov eax,ds:dword ptr[_cacheoffset]	
- mov edx,ds:dword ptr[_r_framecount]	
- cmp eax,07FFFFFFFh	
- jz LDoPop	
- and edx,offset FRAMECOUNT_MASK	
- or edx,offset FULLY_CLIPPED_CACHED	
- mov ds:dword ptr[_cacheoffset],edx	
-
-LDoPop:	
- fstp st(0)	; u1 | v0 | v1 | u0
- fstp st(0)	; v0 | v1 | u0
- fstp st(0)	; v1 | u0
- fstp st(0)	; u0
- fstp st(0)	
- jmp Ldone	
-
-LP2:	
-
-; // create the edge
-;	if (ceilv0 == r_ceilv1)
-;		return;		// horizontal edge
- mov ebx,ds:dword ptr[Lceilv0]	
- mov edi,ds:dword ptr[_edge_p]	
- mov ecx,ds:dword ptr[_r_ceilv1]	
- mov edx,edi	
- mov esi,ds:dword ptr[_r_pedge]	
- add edx,offset et_size	
- cmp ebx,ecx	
- jz LPop5AndDone	
-
- mov eax,ds:dword ptr[_r_pedge]	
- mov ds:dword ptr[et_owner+edi],eax	
-
-;	side = ceilv0 > r_ceilv1;
-;
-;	edge->nearzi = lzi0;
- fstp ds:dword ptr[et_nearzi+edi]	; u1 | v0 | v1 | u0
-
-;	if (side == 1)
-;	{
- jc LSide0	
-
-LSide1:	
-
-;	// leading edge (go from p2 to p1)
-
-;		u_step = ((u0 - r_u1) / (v0 - r_v1));
- fsubp st(3),st(0)	; v0 | v1 | u0-u1
- fsub st(0),st(1)	; v0-v1 | v1 | u0-u1
- fdivp st(2),st(0)	; v1 | ustep
-
-;	r_emitted = 1;
- mov ds:dword ptr[_r_emitted],1	
-
-;	edge = edge_p++;
- mov ds:dword ptr[_edge_p],edx	
-
-; pretouch next edge
- mov eax,ds:dword ptr[edx]	
-
-;		v2 = ceilv0 - 1;
-;		v = r_ceilv1;
- mov eax,ecx	
- lea ecx,ds:dword ptr[-1+ebx]	
- mov ebx,eax	
-
-;		edge->surfs[0] = 0;
-;		edge->surfs[1] = surface_p - surfaces;
- mov eax,ds:dword ptr[_surface_p]	
- mov esi,ds:dword ptr[_surfaces]	
- sub edx,edx	
- sub eax,esi	
- shr eax,offset SURF_T_SHIFT	
- mov ds:dword ptr[et_surfs+edi],edx	
- mov ds:dword ptr[et_surfs+2+edi],eax	
-
- sub esi,esi	
-
-;		u = r_u1 + ((float)v - r_v1) * u_step;
- mov ds:dword ptr[Lv],ebx	
- fild ds:dword ptr[Lv]	; v | v1 | ustep
- fsubrp st(1),st(0)	; v-v1 | ustep
- fmul st(0),st(1)	; (v-v1)*ustep | ustep
- fadd ds:dword ptr[_r_u1]	; u | ustep
-
- jmp LSideDone	
-
-;	}
-
-LSide0:	
-
-;	else
-;	{
-;	// trailing edge (go from p1 to p2)
-
-;		u_step = ((r_u1 - u0) / (r_v1 - v0));
- fsub st(0),st(3)	; u1-u0 | v0 | v1 | u0
- fxch st(2)	; v1 | v0 | u1-u0 | u0
- fsub st(0),st(1)	; v1-v0 | v0 | u1-u0 | u0
- fdivp st(2),st(0)	; v0 | ustep | u0
-
-;	r_emitted = 1;
- mov ds:dword ptr[_r_emitted],1	
-
-;	edge = edge_p++;
- mov ds:dword ptr[_edge_p],edx	
-
-; pretouch next edge
- mov eax,ds:dword ptr[edx]	
-
-;		v = ceilv0;
-;		v2 = r_ceilv1 - 1;
- dec ecx	
-
-;		edge->surfs[0] = surface_p - surfaces;
-;		edge->surfs[1] = 0;
- mov eax,ds:dword ptr[_surface_p]	
- mov esi,ds:dword ptr[_surfaces]	
- sub edx,edx	
- sub eax,esi	
- shr eax,offset SURF_T_SHIFT	
- mov ds:dword ptr[et_surfs+2+edi],edx	
- mov ds:dword ptr[et_surfs+edi],eax	
-
- mov esi,1	
-
-;		u = u0 + ((float)v - v0) * u_step;
- mov ds:dword ptr[Lv],ebx	
- fild ds:dword ptr[Lv]	; v | v0 | ustep | u0
- fsubrp st(1),st(0)	; v-v0 | ustep | u0
- fmul st(0),st(1)	; (v-v0)*ustep | ustep | u0
- faddp st(2),st(0)	; ustep | u
- fxch st(1)	; u | ustep
-
-;	}
-
-LSideDone:	
-
-;	edge->u_step = u_step*0x100000;
-;	edge->u = u*0x100000 + 0xFFFFF;
-
- fmul ds:dword ptr[fp_1m]	; u*0x100000 | ustep
- fxch st(1)	; ustep | u*0x100000
- fmul ds:dword ptr[fp_1m]	; ustep*0x100000 | u*0x100000
- fxch st(1)	; u*0x100000 | ustep*0x100000
- fadd ds:dword ptr[fp_1m_minus_1]	; u*0x100000 + 0xFFFFF | ustep*0x100000
- fxch st(1)	; ustep*0x100000 | u*0x100000 + 0xFFFFF
- fistp ds:dword ptr[et_u_step+edi]	; u*0x100000 + 0xFFFFF
- fistp ds:dword ptr[et_u+edi]	
-
-; // we need to do this to avoid stepping off the edges if a very nearly
-; // horizontal edge is less than epsilon above a scan, and numeric error
-; // causes it to incorrectly extend to the scan, and the extension of the
-; // line goes off the edge of the screen
-; // FIXME: is this actually needed?
-;	if (edge->u < r_refdef.vrect_x_adj_shift20)
-;		edge->u = r_refdef.vrect_x_adj_shift20;
-;	if (edge->u > r_refdef.vrectright_adj_shift20)
-;		edge->u = r_refdef.vrectright_adj_shift20;
- mov eax,ds:dword ptr[et_u+edi]	
- mov edx,ds:dword ptr[_r_refdef+rd_vrect_x_adj_shift20]	
- cmp eax,edx	
- jl LP4	
- mov edx,ds:dword ptr[_r_refdef+rd_vrectright_adj_shift20]	
- cmp eax,edx	
- jng LP5	
-LP4:	
- mov ds:dword ptr[et_u+edi],edx	
- mov eax,edx	
-LP5:	
-
-; // sort the edge in normally
-;	u_check = edge->u;
-;
-;	if (edge->surfs[0])
-;		u_check++;	// sort trailers after leaders
- add eax,esi	
-
-;	if (!newedges[v] || newedges[v]->u >= u_check)
-;	{
- mov esi,ds:dword ptr[_newedges+ebx*4]	
- test esi,esi	
- jz LDoFirst	
- cmp ds:dword ptr[et_u+esi],eax	
- jl LNotFirst	
-LDoFirst:	
-
-;		edge->next = newedges[v];
-;		newedges[v] = edge;
- mov ds:dword ptr[et_next+edi],esi	
- mov ds:dword ptr[_newedges+ebx*4],edi	
-
- jmp LSetRemove	
-
-;	}
-
-LNotFirst:	
-
-;	else
-;	{
-;		pcheck = newedges[v];
-;
-;		while (pcheck->next && pcheck->next->u < u_check)
-;			pcheck = pcheck->next;
-LFindInsertLoop:	
- mov edx,esi	
- mov esi,ds:dword ptr[et_next+esi]	
- test esi,esi	
- jz LInsertFound	
- cmp ds:dword ptr[et_u+esi],eax	
- jl LFindInsertLoop	
-
-LInsertFound:	
-
-;		edge->next = pcheck->next;
-;		pcheck->next = edge;
- mov ds:dword ptr[et_next+edi],esi	
- mov ds:dword ptr[et_next+edx],edi	
-
-;	}
-
-LSetRemove:	
-
-;	edge->nextremove = removeedges[v2];
-;	removeedges[v2] = edge;
- mov eax,ds:dword ptr[_removeedges+ecx*4]	
- mov ds:dword ptr[_removeedges+ecx*4],edi	
- mov ds:dword ptr[et_nextremove+edi],eax	
-
-Ldone:	
- mov esp,ds:dword ptr[Lstack]	; clear temporary variables from stack
-
- pop ebx	; restore register variables
- pop edi	
- pop esi	
- ret	
-
-; at least one point is clipped
-
-Lp2:	
- test eax,eax	
- jns Lp1	
-
-;			else
-;			{
-;			// point 0 is clipped
-
-;				if (d1 < 0)
-;				{
- mov eax,ds:dword ptr[Ld1]	
- test eax,eax	
- jns Lp3	
-
-;				// both points are clipped
-;				// we do cache fully clipped edges
-;					if (!leftclipped)
- mov eax,ds:dword ptr[_r_leftclipped]	
- mov ecx,ds:dword ptr[_r_pedge]	
- test eax,eax	
- jnz Ldone	
-
-;						r_pedge->framecount = r_framecount;
- mov eax,ds:dword ptr[_r_framecount]	
- and eax,offset FRAMECOUNT_MASK	
- or eax,offset FULLY_CLIPPED_CACHED	
- mov ds:dword ptr[_cacheoffset],eax	
-
-;					return;
- jmp Ldone	
-
-;				}
-
-Lp1:	
-
-;			// point 0 is unclipped
-;				if (d1 >= 0)
-;				{
-;				// both points are unclipped
-;					continue;
-
-;			// only point 1 is clipped
-
-;				f = d0 / (d0 - d1);
- fld ds:dword ptr[Ld0]	
- fld ds:dword ptr[Ld1]	
- fsubr st(0),st(1)	
-
-;			// we don't cache partially clipped edges
- mov ds:dword ptr[_cacheoffset],07FFFFFFFh	
-
- fdivp st(1),st(0)	
-
- sub esp,offset mv_size	; allocate space for clipvert
-
-;				clipvert.position[0] = pv0->position[0] +
-;						f * (pv1->position[0] - pv0->position[0]);
-;				clipvert.position[1] = pv0->position[1] +
-;						f * (pv1->position[1] - pv0->position[1]);
-;				clipvert.position[2] = pv0->position[2] +
-;						f * (pv1->position[2] - pv0->position[2]);
- fld ds:dword ptr[mv_position+8+edx]	
- fsub ds:dword ptr[mv_position+8+esi]	
- fld ds:dword ptr[mv_position+4+edx]	
- fsub ds:dword ptr[mv_position+4+esi]	
- fld ds:dword ptr[mv_position+0+edx]	
- fsub ds:dword ptr[mv_position+0+esi]	; 0 | 1 | 2
-
-; replace pv1 with the clip point
- mov edx,esp	
- mov eax,ds:dword ptr[cp_leftedge+ebx]	
- test al,al	
-
- fmul st(0),st(3)	
- fxch st(1)	; 1 | 0 | 2
- fmul st(0),st(3)	
- fxch st(2)	; 2 | 0 | 1
- fmulp st(3),st(0)	; 0 | 1 | 2
- fadd ds:dword ptr[mv_position+0+esi]	
- fxch st(1)	; 1 | 0 | 2
- fadd ds:dword ptr[mv_position+4+esi]	
- fxch st(2)	; 2 | 0 | 1
- fadd ds:dword ptr[mv_position+8+esi]	
- fxch st(1)	; 0 | 2 | 1
- fstp ds:dword ptr[mv_position+0+esp]	; 2 | 1
- fstp ds:dword ptr[mv_position+8+esp]	; 1
- fstp ds:dword ptr[mv_position+4+esp]	
-
-;				if (clip->leftedge)
-;				{
- jz Ltestright	
-
-;					r_leftclipped = true;
-;					r_leftexit = clipvert;
- mov ds:dword ptr[_r_leftclipped],1	
- mov eax,ds:dword ptr[mv_position+0+esp]	
- mov ds:dword ptr[_r_leftexit+mv_position+0],eax	
- mov eax,ds:dword ptr[mv_position+4+esp]	
- mov ds:dword ptr[_r_leftexit+mv_position+4],eax	
- mov eax,ds:dword ptr[mv_position+8+esp]	
- mov ds:dword ptr[_r_leftexit+mv_position+8],eax	
-
- jmp Lcontinue	
-
-;				}
-
-Ltestright:	
-;				else if (clip->rightedge)
-;				{
- test ah,ah	
- jz Lcontinue	
-
-;					r_rightclipped = true;
-;					r_rightexit = clipvert;
- mov ds:dword ptr[_r_rightclipped],1	
- mov eax,ds:dword ptr[mv_position+0+esp]	
- mov ds:dword ptr[_r_rightexit+mv_position+0],eax	
- mov eax,ds:dword ptr[mv_position+4+esp]	
- mov ds:dword ptr[_r_rightexit+mv_position+4],eax	
- mov eax,ds:dword ptr[mv_position+8+esp]	
- mov ds:dword ptr[_r_rightexit+mv_position+8],eax	
-
-;				}
-;
-;				R_ClipEdge (pv0, &clipvert, clip->next);
-;				return;
-;			}
- jmp Lcontinue	
-
-;			}
-
-Lp3:	
-
-;			// only point 0 is clipped
-;				r_lastvertvalid = false;
-
- mov ds:dword ptr[_r_lastvertvalid],0	
-
-;				f = d0 / (d0 - d1);
- fld ds:dword ptr[Ld0]	
- fld ds:dword ptr[Ld1]	
- fsubr st(0),st(1)	
-
-;			// we don't cache partially clipped edges
- mov ds:dword ptr[_cacheoffset],07FFFFFFFh	
-
- fdivp st(1),st(0)	
-
- sub esp,offset mv_size	; allocate space for clipvert
-
-;				clipvert.position[0] = pv0->position[0] +
-;						f * (pv1->position[0] - pv0->position[0]);
-;				clipvert.position[1] = pv0->position[1] +
-;						f * (pv1->position[1] - pv0->position[1]);
-;				clipvert.position[2] = pv0->position[2] +
-;						f * (pv1->position[2] - pv0->position[2]);
- fld ds:dword ptr[mv_position+8+edx]	
- fsub ds:dword ptr[mv_position+8+esi]	
- fld ds:dword ptr[mv_position+4+edx]	
- fsub ds:dword ptr[mv_position+4+esi]	
- fld ds:dword ptr[mv_position+0+edx]	
- fsub ds:dword ptr[mv_position+0+esi]	; 0 | 1 | 2
-
- mov eax,ds:dword ptr[cp_leftedge+ebx]	
- test al,al	
-
- fmul st(0),st(3)	
- fxch st(1)	; 1 | 0 | 2
- fmul st(0),st(3)	
- fxch st(2)	; 2 | 0 | 1
- fmulp st(3),st(0)	; 0 | 1 | 2
- fadd ds:dword ptr[mv_position+0+esi]	
- fxch st(1)	; 1 | 0 | 2
- fadd ds:dword ptr[mv_position+4+esi]	
- fxch st(2)	; 2 | 0 | 1
- fadd ds:dword ptr[mv_position+8+esi]	
- fxch st(1)	; 0 | 2 | 1
- fstp ds:dword ptr[mv_position+0+esp]	; 2 | 1
- fstp ds:dword ptr[mv_position+8+esp]	; 1
- fstp ds:dword ptr[mv_position+4+esp]	
-
-; replace pv0 with the clip point
- mov esi,esp	
-
-;				if (clip->leftedge)
-;				{
- jz Ltestright2	
-
-;					r_leftclipped = true;
-;					r_leftenter = clipvert;
- mov ds:dword ptr[_r_leftclipped],1	
- mov eax,ds:dword ptr[mv_position+0+esp]	
- mov ds:dword ptr[_r_leftenter+mv_position+0],eax	
- mov eax,ds:dword ptr[mv_position+4+esp]	
- mov ds:dword ptr[_r_leftenter+mv_position+4],eax	
- mov eax,ds:dword ptr[mv_position+8+esp]	
- mov ds:dword ptr[_r_leftenter+mv_position+8],eax	
-
- jmp Lcontinue	
-
-;				}
-
-Ltestright2:	
-;				else if (clip->rightedge)
-;				{
- test ah,ah	
- jz Lcontinue	
-
-;					r_rightclipped = true;
-;					r_rightenter = clipvert;
- mov ds:dword ptr[_r_rightclipped],1	
- mov eax,ds:dword ptr[mv_position+0+esp]	
- mov ds:dword ptr[_r_rightenter+mv_position+0],eax	
- mov eax,ds:dword ptr[mv_position+4+esp]	
- mov ds:dword ptr[_r_rightenter+mv_position+4],eax	
- mov eax,ds:dword ptr[mv_position+8+esp]	
- mov ds:dword ptr[_r_rightenter+mv_position+8],eax	
-
-;				}
- jmp Lcontinue	
-
-; %esi = vec3_t point to transform and project
-; %edx preserved
-LTransformAndProject:	
-
-;	// transform and project
-;		VectorSubtract (world, modelorg, local);
- fld ds:dword ptr[mv_position+0+esi]	
- fsub ds:dword ptr[_modelorg+0]	
- fld ds:dword ptr[mv_position+4+esi]	
- fsub ds:dword ptr[_modelorg+4]	
- fld ds:dword ptr[mv_position+8+esi]	
- fsub ds:dword ptr[_modelorg+8]	
- fxch st(2)	; local[0] | local[1] | local[2]
-
-;		TransformVector (local, transformed);
-;	
-;		if (transformed[2] < NEAR_CLIP)
-;			transformed[2] = NEAR_CLIP;
-;	
-;		lzi0 = 1.0 / transformed[2];
- fld st(0)	; local[0] | local[0] | local[1] | local[2]
- fmul ds:dword ptr[_vpn+0]	; zm0 | local[0] | local[1] | local[2]
- fld st(1)	; local[0] | zm0 | local[0] | local[1] |
-;  local[2]
- fmul ds:dword ptr[_vright+0]	; xm0 | zm0 | local[0] | local[1] | local[2]
- fxch st(2)	; local[0] | zm0 | xm0 | local[1] | local[2]
- fmul ds:dword ptr[_vup+0]	; ym0 |  zm0 | xm0 | local[1] | local[2]
- fld st(3)	; local[1] | ym0 |  zm0 | xm0 | local[1] |
-;  local[2]
- fmul ds:dword ptr[_vpn+4]	; zm1 | ym0 | zm0 | xm0 | local[1] |
-;  local[2]
- fld st(4)	; local[1] | zm1 | ym0 | zm0 | xm0 |
-;  local[1] | local[2]
- fmul ds:dword ptr[_vright+4]	; xm1 | zm1 | ym0 |  zm0 | xm0 |
-;  local[1] | local[2]
- fxch st(5)	; local[1] | zm1 | ym0 | zm0 | xm0 |
-;  xm1 | local[2]
- fmul ds:dword ptr[_vup+4]	; ym1 | zm1 | ym0 | zm0 | xm0 |
-;  xm1 | local[2]
- fxch st(1)	; zm1 | ym1 | ym0 | zm0 | xm0 |
-;  xm1 | local[2]
- faddp st(3),st(0)	; ym1 | ym0 | zm2 | xm0 | xm1 | local[2]
- fxch st(3)	; xm0 | ym0 | zm2 | ym1 | xm1 | local[2]
- faddp st(4),st(0)	; ym0 | zm2 | ym1 | xm2 | local[2]
- faddp st(2),st(0)	; zm2 | ym2 | xm2 | local[2]
- fld st(3)	; local[2] | zm2 | ym2 | xm2 | local[2]
- fmul ds:dword ptr[_vpn+8]	; zm3 | zm2 | ym2 | xm2 | local[2]
- fld st(4)	; local[2] | zm3 | zm2 | ym2 | xm2 | local[2]
- fmul ds:dword ptr[_vright+8]	; xm3 | zm3 | zm2 | ym2 | xm2 | local[2]
- fxch st(5)	; local[2] | zm3 | zm2 | ym2 | xm2 | xm3
- fmul ds:dword ptr[_vup+8]	; ym3 | zm3 | zm2 | ym2 | xm2 | xm3
- fxch st(1)	; zm3 | ym3 | zm2 | ym2 | xm2 | xm3
- faddp st(2),st(0)	; ym3 | zm4 | ym2 | xm2 | xm3
- fxch st(4)	; xm3 | zm4 | ym2 | xm2 | ym3
- faddp st(3),st(0)	; zm4 | ym2 | xm4 | ym3
- fxch st(1)	; ym2 | zm4 | xm4 | ym3
- faddp st(3),st(0)	; zm4 | xm4 | ym4
-
- fcom ds:dword ptr[Lfp_near_clip]	
- fnstsw ax	
- test ah,1	
- jz LNoClip	
- fstp st(0)	
- fld ds:dword ptr[Lfp_near_clip]	
-
-LNoClip:	
-
- fdivr ds:dword ptr[float_1]	; lzi0 | x | y
- fxch st(1)	; x | lzi0 | y
-
-;	// FIXME: build x/yscale into transform?
-;		scale = xscale * lzi0;
-;		u0 = (xcenter + scale*transformed[0]);
- fld ds:dword ptr[_xscale]	; xscale | x | lzi0 | y
- fmul st(0),st(2)	; scale | x | lzi0 | y
- fmulp st(1),st(0)	; scale*x | lzi0 | y
- fadd ds:dword ptr[_xcenter]	; u0 | lzi0 | y
-
-;		if (u0 < r_refdef.fvrectx_adj)
-;			u0 = r_refdef.fvrectx_adj;
-;		if (u0 > r_refdef.fvrectright_adj)
-;			u0 = r_refdef.fvrectright_adj;
-; FIXME: use integer compares of floats?
- fcom ds:dword ptr[_r_refdef+rd_fvrectx_adj]	
- fnstsw ax	
- test ah,1	
- jz LClampP0	
- fstp st(0)	
- fld ds:dword ptr[_r_refdef+rd_fvrectx_adj]	
-LClampP0:	
- fcom ds:dword ptr[_r_refdef+rd_fvrectright_adj]	
- fnstsw ax	
- test ah,045h	
- jnz LClampP1	
- fstp st(0)	
- fld ds:dword ptr[_r_refdef+rd_fvrectright_adj]	
-LClampP1:	
-
- fld st(1)	; lzi0 | u0 | lzi0 | y
-
-;		scale = yscale * lzi0;
-;		v0 = (ycenter - scale*transformed[1]);
- fmul ds:dword ptr[_yscale]	; scale | u0 | lzi0 | y
- fmulp st(3),st(0)	; u0 | lzi0 | scale*y
- fxch st(2)	; scale*y | lzi0 | u0
- fsubr ds:dword ptr[_ycenter]	; v0 | lzi0 | u0
-
-;		if (v0 < r_refdef.fvrecty_adj)
-;			v0 = r_refdef.fvrecty_adj;
-;		if (v0 > r_refdef.fvrectbottom_adj)
-;			v0 = r_refdef.fvrectbottom_adj;
-; FIXME: use integer compares of floats?
- fcom ds:dword ptr[_r_refdef+rd_fvrecty_adj]	
- fnstsw ax	
- test ah,1	
- jz LClampP2	
- fstp st(0)	
- fld ds:dword ptr[_r_refdef+rd_fvrecty_adj]	
-LClampP2:	
- fcom ds:dword ptr[_r_refdef+rd_fvrectbottom_adj]	
- fnstsw ax	
- test ah,045h	
- jnz LClampP3	
- fstp st(0)	
- fld ds:dword ptr[_r_refdef+rd_fvrectbottom_adj]	
-LClampP3:	
- ret	
-
-
-_TEXT ENDS
-endif	;id386
- END
--- a/ref_soft/r_edgea.asm
+++ /dev/null
@@ -1,733 +1,0 @@
- .386P
- .model FLAT
-;
-; r_edgea.s
-; x86 assembly-language edge-processing code.
-;
-
-include qasm.inc
-
-if	id386
-
-_DATA SEGMENT	
-Ltemp dd 0	
-float_1_div_0100000h dd 035800000h	; 1.0/(float)0x100000
-float_point_999 dd 0.999	
-float_1_point_001 dd 1.001	
-
-_DATA ENDS
-_TEXT SEGMENT	
-
-;--------------------------------------------------------------------
-
-edgestoadd	equ		4+8		; note odd stack offsets because of interleaving
-edgelist	equ		8+12	; with pushes
-
- public _R_EdgeCodeStart	
-_R_EdgeCodeStart:	
-
- public _R_InsertNewEdges	
-_R_InsertNewEdges:	
- push edi	
- push esi	; preserve register variables
- mov edx,ds:dword ptr[edgestoadd+esp]	
- push ebx	
- mov ecx,ds:dword ptr[edgelist+esp]	
-
-LDoNextEdge:	
- mov eax,ds:dword ptr[et_u+edx]	
- mov edi,edx	
-
-LContinueSearch:	
- mov ebx,ds:dword ptr[et_u+ecx]	
- mov esi,ds:dword ptr[et_next+ecx]	
- cmp eax,ebx	
- jle LAddedge	
- mov ebx,ds:dword ptr[et_u+esi]	
- mov ecx,ds:dword ptr[et_next+esi]	
- cmp eax,ebx	
- jle LAddedge2	
- mov ebx,ds:dword ptr[et_u+ecx]	
- mov esi,ds:dword ptr[et_next+ecx]	
- cmp eax,ebx	
- jle LAddedge	
- mov ebx,ds:dword ptr[et_u+esi]	
- mov ecx,ds:dword ptr[et_next+esi]	
- cmp eax,ebx	
- jg LContinueSearch	
-
-LAddedge2:	
- mov edx,ds:dword ptr[et_next+edx]	
- mov ebx,ds:dword ptr[et_prev+esi]	
- mov ds:dword ptr[et_next+edi],esi	
- mov ds:dword ptr[et_prev+edi],ebx	
- mov ds:dword ptr[et_next+ebx],edi	
- mov ds:dword ptr[et_prev+esi],edi	
- mov ecx,esi	
-
- cmp edx,0	
- jnz LDoNextEdge	
- jmp LDone	
-
- align 4	
-LAddedge:	
- mov edx,ds:dword ptr[et_next+edx]	
- mov ebx,ds:dword ptr[et_prev+ecx]	
- mov ds:dword ptr[et_next+edi],ecx	
- mov ds:dword ptr[et_prev+edi],ebx	
- mov ds:dword ptr[et_next+ebx],edi	
- mov ds:dword ptr[et_prev+ecx],edi	
-
- cmp edx,0	
- jnz LDoNextEdge	
-
-LDone:	
- pop ebx	; restore register variables
- pop esi	
- pop edi	
-
- ret	
-
-;--------------------------------------------------------------------
-
-predge	equ		4+4
-
- public _R_RemoveEdges	
-_R_RemoveEdges:	
- push ebx	
- mov eax,ds:dword ptr[predge+esp]	
-
-Lre_loop:	
- mov ecx,ds:dword ptr[et_next+eax]	
- mov ebx,ds:dword ptr[et_nextremove+eax]	
- mov edx,ds:dword ptr[et_prev+eax]	
- test ebx,ebx	
- mov ds:dword ptr[et_prev+ecx],edx	
- jz Lre_done	
- mov ds:dword ptr[et_next+edx],ecx	
-
- mov ecx,ds:dword ptr[et_next+ebx]	
- mov edx,ds:dword ptr[et_prev+ebx]	
- mov eax,ds:dword ptr[et_nextremove+ebx]	
- mov ds:dword ptr[et_prev+ecx],edx	
- test eax,eax	
- mov ds:dword ptr[et_next+edx],ecx	
- jnz Lre_loop	
-
- pop ebx	
- ret	
-
-Lre_done:	
- mov ds:dword ptr[et_next+edx],ecx	
- pop ebx	
-
- ret	
-
-;--------------------------------------------------------------------
-
-pedgelist	equ		4+4		; note odd stack offset because of interleaving
-							; with pushes
-
- public _R_StepActiveU	
-_R_StepActiveU:	
- push edi	
- mov edx,ds:dword ptr[pedgelist+esp]	
- push esi	; preserve register variables
- push ebx	
-
- mov esi,ds:dword ptr[et_prev+edx]	
-
-LNewEdge:	
- mov edi,ds:dword ptr[et_u+esi]	
-
-LNextEdge:	
- mov eax,ds:dword ptr[et_u+edx]	
- mov ebx,ds:dword ptr[et_u_step+edx]	
- add eax,ebx	
- mov esi,ds:dword ptr[et_next+edx]	
- mov ds:dword ptr[et_u+edx],eax	
- cmp eax,edi	
- jl LPushBack	
-
- mov edi,ds:dword ptr[et_u+esi]	
- mov ebx,ds:dword ptr[et_u_step+esi]	
- add edi,ebx	
- mov edx,ds:dword ptr[et_next+esi]	
- mov ds:dword ptr[et_u+esi],edi	
- cmp edi,eax	
- jl LPushBack2	
-
- mov eax,ds:dword ptr[et_u+edx]	
- mov ebx,ds:dword ptr[et_u_step+edx]	
- add eax,ebx	
- mov esi,ds:dword ptr[et_next+edx]	
- mov ds:dword ptr[et_u+edx],eax	
- cmp eax,edi	
- jl LPushBack	
-
- mov edi,ds:dword ptr[et_u+esi]	
- mov ebx,ds:dword ptr[et_u_step+esi]	
- add edi,ebx	
- mov edx,ds:dword ptr[et_next+esi]	
- mov ds:dword ptr[et_u+esi],edi	
- cmp edi,eax	
- jnl LNextEdge	
-
-LPushBack2:	
- mov ebx,edx	
- mov eax,edi	
- mov edx,esi	
- mov esi,ebx	
-
-LPushBack:	
-; push it back to keep it sorted
- mov ecx,ds:dword ptr[et_prev+edx]	
- mov ebx,ds:dword ptr[et_next+edx]	
-
-; done if the -1 in edge_aftertail triggered this
- cmp edx,offset _edge_aftertail
- jz LUDone	
-
-; pull the edge out of the edge list
- mov edi,ds:dword ptr[et_prev+ecx]	
- mov ds:dword ptr[et_prev+esi],ecx	
- mov ds:dword ptr[et_next+ecx],ebx	
-
-; find out where the edge goes in the edge list
-LPushBackLoop:	
- mov ecx,ds:dword ptr[et_prev+edi]	
- mov ebx,ds:dword ptr[et_u+edi]	
- cmp eax,ebx	
- jnl LPushBackFound	
-
- mov edi,ds:dword ptr[et_prev+ecx]	
- mov ebx,ds:dword ptr[et_u+ecx]	
- cmp eax,ebx	
- jl LPushBackLoop	
-
- mov edi,ecx	
-
-; put the edge back into the edge list
-LPushBackFound:	
- mov ebx,ds:dword ptr[et_next+edi]	
- mov ds:dword ptr[et_prev+edx],edi	
- mov ds:dword ptr[et_next+edx],ebx	
- mov ds:dword ptr[et_next+edi],edx	
- mov ds:dword ptr[et_prev+ebx],edx	
-
- mov edx,esi	
- mov esi,ds:dword ptr[et_prev+esi]	
-
- cmp edx,offset _edge_tail
- jnz LNewEdge	
-
-LUDone:	
- pop ebx	; restore register variables
- pop esi	
- pop edi	
-
- ret	
-
-;--------------------------------------------------------------------
-
-surf	equ		4		; note this is loaded before any pushes
-
- align 4	
-TrailingEdge:	
- mov eax,ds:dword ptr[st_spanstate+esi]	; check for edge inversion
- dec eax	
- jnz LInverted	
-
- mov ds:dword ptr[st_spanstate+esi],eax	
- mov ecx,ds:dword ptr[st_insubmodel+esi]	
- mov edx,ds:dword ptr[12345678h]	; surfaces[1].st_next
-LPatch0:	
- mov eax,ds:dword ptr[_r_bmodelactive]	
- sub eax,ecx	
- cmp edx,esi	
- mov ds:dword ptr[_r_bmodelactive],eax	
- jnz LNoEmit	; surface isn't on top, just remove
-
-; emit a span (current top going away)
- mov eax,ds:dword ptr[et_u+ebx]	
- shr eax,20	; iu = integral pixel u
- mov edx,ds:dword ptr[st_last_u+esi]	
- mov ecx,ds:dword ptr[st_next+esi]	
- cmp eax,edx	
- jle LNoEmit2	; iu <= surf->last_u, so nothing to emit
-
- mov ds:dword ptr[st_last_u+ecx],eax	; surf->next->last_u = iu;
- sub eax,edx	
- mov ds:dword ptr[espan_t_u+ebp],edx	; span->u = surf->last_u;
-
- mov ds:dword ptr[espan_t_count+ebp],eax	; span->count = iu - span->u;
- mov eax,ds:dword ptr[_current_iv]	
- mov ds:dword ptr[espan_t_v+ebp],eax	; span->v = current_iv;
- mov eax,ds:dword ptr[st_spans+esi]	
- mov ds:dword ptr[espan_t_pnext+ebp],eax	; span->pnext = surf->spans;
- mov ds:dword ptr[st_spans+esi],ebp	; surf->spans = span;
- add ebp,offset espan_t_size	
-
- mov edx,ds:dword ptr[st_next+esi]	; remove the surface from the surface
- mov esi,ds:dword ptr[st_prev+esi]	; stack
-
- mov ds:dword ptr[st_next+esi],edx	
- mov ds:dword ptr[st_prev+edx],esi	
- ret	
-
-LNoEmit2:	
- mov ds:dword ptr[st_last_u+ecx],eax	; surf->next->last_u = iu;
- mov edx,ds:dword ptr[st_next+esi]	; remove the surface from the surface
- mov esi,ds:dword ptr[st_prev+esi]	; stack
-
- mov ds:dword ptr[st_next+esi],edx	
- mov ds:dword ptr[st_prev+edx],esi	
- ret	
-
-LNoEmit:	
- mov edx,ds:dword ptr[st_next+esi]	; remove the surface from the surface
- mov esi,ds:dword ptr[st_prev+esi]	; stack
-
- mov ds:dword ptr[st_next+esi],edx	
- mov ds:dword ptr[st_prev+edx],esi	
- ret	
-
-LInverted:	
- mov ds:dword ptr[st_spanstate+esi],eax	
- ret	
-
-;--------------------------------------------------------------------
-
-; trailing edge only
-Lgs_trailing:	
- push offset Lgs_nextedge	
- jmp TrailingEdge	
-
-
- public _R_GenerateSpans	
-_R_GenerateSpans:	
- push ebp	; preserve caller's stack frame
- push edi	
- push esi	; preserve register variables
- push ebx	
-
-; clear active surfaces to just the background surface
- mov eax,ds:dword ptr[_surfaces]	
- mov edx,ds:dword ptr[_edge_head_u_shift20]	
- add eax,offset st_size	
-; %ebp = span_p throughout
- mov ebp,ds:dword ptr[_span_p]	
-
- mov ds:dword ptr[_r_bmodelactive],0	
-
- mov ds:dword ptr[st_next+eax],eax	
- mov ds:dword ptr[st_prev+eax],eax	
- mov ds:dword ptr[st_last_u+eax],edx	
- mov ebx,ds:dword ptr[_edge_head+et_next]	; edge=edge_head.next
-
-; generate spans
- cmp ebx,offset _edge_tail	; done if empty list
- jz Lgs_lastspan	
-
-Lgs_edgeloop:	
-
- mov edi,ds:dword ptr[et_surfs+ebx]	
- mov eax,ds:dword ptr[_surfaces]	
- mov esi,edi	
- and edi,0FFFF0000h	
- and esi,0FFFFh	
- jz Lgs_leading	; not a trailing edge
-
-; it has a left surface, so a surface is going away for this span
- shl esi,offset SURF_T_SHIFT	
- add esi,eax	
- test edi,edi	
- jz Lgs_trailing	
-
-; both leading and trailing
- call near ptr TrailingEdge	
- mov eax,ds:dword ptr[_surfaces]	
-
-; ---------------------------------------------------------------
-; handle a leading edge
-; ---------------------------------------------------------------
-
-Lgs_leading:	
- shr edi,16-SURF_T_SHIFT	
- mov eax,ds:dword ptr[_surfaces]	
- add edi,eax	
- mov esi,ds:dword ptr[12345678h]	; surf2 = surfaces[1].next;
-LPatch2:	
- mov edx,ds:dword ptr[st_spanstate+edi]	
- mov eax,ds:dword ptr[st_insubmodel+edi]	
- test eax,eax	
- jnz Lbmodel_leading	
-
-; handle a leading non-bmodel edge
-
-; don't start a span if this is an inverted span, with the end edge preceding
-; the start edge (that is, we've already seen the end edge)
- test edx,edx	
- jnz Lxl_done	
-
-
-; if (surf->key < surf2->key)
-;		goto newtop;
- inc edx	
- mov eax,ds:dword ptr[st_key+edi]	
- mov ds:dword ptr[st_spanstate+edi],edx	
- mov ecx,ds:dword ptr[st_key+esi]	
- cmp eax,ecx	
- jl Lnewtop	
-
-; main sorting loop to search through surface stack until insertion point
-; found. Always terminates because background surface is sentinel
-; do
-; {
-; 		surf2 = surf2->next;
-; } while (surf->key >= surf2->key);
-Lsortloopnb:	
- mov esi,ds:dword ptr[st_next+esi]	
- mov ecx,ds:dword ptr[st_key+esi]	
- cmp eax,ecx	
- jge Lsortloopnb	
-
- jmp LInsertAndExit	
-
-
-; handle a leading bmodel edge
- align 4	
-Lbmodel_leading:	
-
-; don't start a span if this is an inverted span, with the end edge preceding
-; the start edge (that is, we've already seen the end edge)
- test edx,edx	
- jnz Lxl_done	
-
- mov ecx,ds:dword ptr[_r_bmodelactive]	
- inc edx	
- inc ecx	
- mov ds:dword ptr[st_spanstate+edi],edx	
- mov ds:dword ptr[_r_bmodelactive],ecx	
-
-; if (surf->key < surf2->key)
-;		goto newtop;
- mov eax,ds:dword ptr[st_key+edi]	
- mov ecx,ds:dword ptr[st_key+esi]	
- cmp eax,ecx	
- jl Lnewtop	
-
-; if ((surf->key == surf2->key) && surf->insubmodel)
-; {
- jz Lzcheck_for_newtop	
-
-; main sorting loop to search through surface stack until insertion point
-; found. Always terminates because background surface is sentinel
-; do
-; {
-; 		surf2 = surf2->next;
-; } while (surf->key > surf2->key);
-Lsortloop:	
- mov esi,ds:dword ptr[st_next+esi]	
- mov ecx,ds:dword ptr[st_key+esi]	
- cmp eax,ecx	
- jg Lsortloop	
-
- jne LInsertAndExit	
-
-; Do 1/z sorting to see if we've arrived in the right position
- mov eax,ds:dword ptr[et_u+ebx]	
- sub eax,0FFFFFh	
- mov ds:dword ptr[Ltemp],eax	
- fild ds:dword ptr[Ltemp]	
-
- fmul ds:dword ptr[float_1_div_0100000h]	; fu = (float)(edge->u - 0xFFFFF) *
-;      (1.0 / 0x100000);
-
- fld st(0)	; fu | fu
- fmul ds:dword ptr[st_d_zistepu+edi]	; fu*surf->d_zistepu | fu
- fld ds:dword ptr[_fv]	; fv | fu*surf->d_zistepu | fu
- fmul ds:dword ptr[st_d_zistepv+edi]	; fv*surf->d_zistepv | fu*surf->d_zistepu | fu
- fxch st(1)	; fu*surf->d_zistepu | fv*surf->d_zistepv | fu
- fadd ds:dword ptr[st_d_ziorigin+edi]	; fu*surf->d_zistepu + surf->d_ziorigin |
-;  fv*surf->d_zistepv | fu
-
- fld ds:dword ptr[st_d_zistepu+esi]	; surf2->d_zistepu |
-;  fu*surf->d_zistepu + surf->d_ziorigin |
-;  fv*surf->d_zistepv | fu
- fmul st(0),st(3)	; fu*surf2->d_zistepu |
-;  fu*surf->d_zistepu + surf->d_ziorigin |
-;  fv*surf->d_zistepv | fu
- fxch st(1)	; fu*surf->d_zistepu + surf->d_ziorigin |
-;  fu*surf2->d_zistepu |
-;  fv*surf->d_zistepv | fu
- faddp st(2),st(0)	; fu*surf2->d_zistepu | newzi | fu
-
- fld ds:dword ptr[_fv]	; fv | fu*surf2->d_zistepu | newzi | fu
- fmul ds:dword ptr[st_d_zistepv+esi]	; fv*surf2->d_zistepv |
-;  fu*surf2->d_zistepu | newzi | fu
- fld st(2)	; newzi | fv*surf2->d_zistepv |
-;  fu*surf2->d_zistepu | newzi | fu
- fmul ds:dword ptr[float_point_999]	; newzibottom | fv*surf2->d_zistepv |
-;  fu*surf2->d_zistepu | newzi | fu
-
- fxch st(2)	; fu*surf2->d_zistepu | fv*surf2->d_zistepv |
-;  newzibottom | newzi | fu
- fadd ds:dword ptr[st_d_ziorigin+esi]	; fu*surf2->d_zistepu + surf2->d_ziorigin |
-;  fv*surf2->d_zistepv | newzibottom | newzi |
-;  fu
- faddp st(1),st(0)	; testzi | newzibottom | newzi | fu
- fxch st(1)	; newzibottom | testzi | newzi | fu
-
-; if (newzibottom >= testzi)
-;     goto Lgotposition;
-
- fcomp st(1)	; testzi | newzi | fu
-
- fxch st(1)	; newzi | testzi | fu
- fmul ds:dword ptr[float_1_point_001]	; newzitop | testzi | fu
- fxch st(1)	; testzi | newzitop | fu
-
- fnstsw ax	
- test ah,001h	
- jz Lgotposition_fpop3	
-
-; if (newzitop >= testzi)
-; {
-
- fcomp st(1)	; newzitop | fu
- fnstsw ax	
- test ah,045h	
- jz Lsortloop_fpop2	
-
-; if (surf->d_zistepu >= surf2->d_zistepu)
-;     goto newtop;
-
- fld ds:dword ptr[st_d_zistepu+edi]	; surf->d_zistepu | newzitop| fu
- fcomp ds:dword ptr[st_d_zistepu+esi]	; newzitop | fu
- fnstsw ax	
- test ah,001h	
- jz Lgotposition_fpop2	
-
- fstp st(0)	; clear the FPstack
- fstp st(0)	
- mov eax,ds:dword ptr[st_key+edi]	
- jmp Lsortloop	
-
-
-Lgotposition_fpop3:	
- fstp st(0)	
-Lgotposition_fpop2:	
- fstp st(0)	
- fstp st(0)	
- jmp LInsertAndExit	
-
-
-; emit a span (obscures current top)
-
-Lnewtop_fpop3:	
- fstp st(0)	
-Lnewtop_fpop2:	
- fstp st(0)	
- fstp st(0)	
- mov eax,ds:dword ptr[st_key+edi]	; reload the sorting key
-
-Lnewtop:	
- mov eax,ds:dword ptr[et_u+ebx]	
- mov edx,ds:dword ptr[st_last_u+esi]	
- shr eax,20	; iu = integral pixel u
- mov ds:dword ptr[st_last_u+edi],eax	; surf->last_u = iu;
- cmp eax,edx	
- jle LInsertAndExit	; iu <= surf->last_u, so nothing to emit
-
- sub eax,edx	
- mov ds:dword ptr[espan_t_u+ebp],edx	; span->u = surf->last_u;
-
- mov ds:dword ptr[espan_t_count+ebp],eax	; span->count = iu - span->u;
- mov eax,ds:dword ptr[_current_iv]	
- mov ds:dword ptr[espan_t_v+ebp],eax	; span->v = current_iv;
- mov eax,ds:dword ptr[st_spans+esi]	
- mov ds:dword ptr[espan_t_pnext+ebp],eax	; span->pnext = surf->spans;
- mov ds:dword ptr[st_spans+esi],ebp	; surf->spans = span;
- add ebp,offset espan_t_size	
-
-LInsertAndExit:	
-; insert before surf2
- mov ds:dword ptr[st_next+edi],esi	; surf->next = surf2;
- mov eax,ds:dword ptr[st_prev+esi]	
- mov ds:dword ptr[st_prev+edi],eax	; surf->prev = surf2->prev;
- mov ds:dword ptr[st_prev+esi],edi	; surf2->prev = surf;
- mov ds:dword ptr[st_next+eax],edi	; surf2->prev->next = surf;
-
-; ---------------------------------------------------------------
-; leading edge done
-; ---------------------------------------------------------------
-
-; ---------------------------------------------------------------
-; see if there are any more edges
-; ---------------------------------------------------------------
-
-Lgs_nextedge:	
- mov ebx,ds:dword ptr[et_next+ebx]	
- cmp ebx,offset _edge_tail
- jnz Lgs_edgeloop	
-
-; clean up at the right edge
-Lgs_lastspan:	
-
-; now that we've reached the right edge of the screen, we're done with any
-; unfinished surfaces, so emit a span for whatever's on top
- mov esi,ds:dword ptr[12345678h]	; surfaces[1].st_next
-LPatch3:	
- mov eax,ds:dword ptr[_edge_tail_u_shift20]	
- xor ecx,ecx	
- mov edx,ds:dword ptr[st_last_u+esi]	
- sub eax,edx	
- jle Lgs_resetspanstate	
-
- mov ds:dword ptr[espan_t_u+ebp],edx	
- mov ds:dword ptr[espan_t_count+ebp],eax	
- mov eax,ds:dword ptr[_current_iv]	
- mov ds:dword ptr[espan_t_v+ebp],eax	
- mov eax,ds:dword ptr[st_spans+esi]	
- mov ds:dword ptr[espan_t_pnext+ebp],eax	
- mov ds:dword ptr[st_spans+esi],ebp	
- add ebp,offset espan_t_size	
-
-; reset spanstate for all surfaces in the surface stack
-Lgs_resetspanstate:	
- mov ds:dword ptr[st_spanstate+esi],ecx	
- mov esi,ds:dword ptr[st_next+esi]	
- cmp esi,012345678h	; &surfaces[1]
-LPatch4:	
- jnz Lgs_resetspanstate	
-
-; store the final span_p
- mov ds:dword ptr[_span_p],ebp	
-
- pop ebx	; restore register variables
- pop esi	
- pop edi	
- pop ebp	; restore the caller's stack frame
- ret	
-
-
-; ---------------------------------------------------------------
-; 1/z sorting for bmodels in the same leaf
-; ---------------------------------------------------------------
- align 4	
-Lxl_done:	
- inc edx	
- mov ds:dword ptr[st_spanstate+edi],edx	
-
- jmp Lgs_nextedge	
-
-
- align 4	
-Lzcheck_for_newtop:	
- mov eax,ds:dword ptr[et_u+ebx]	
- sub eax,0FFFFFh	
- mov ds:dword ptr[Ltemp],eax	
- fild ds:dword ptr[Ltemp]	
-
- fmul ds:dword ptr[float_1_div_0100000h]	; fu = (float)(edge->u - 0xFFFFF) *
-;      (1.0 / 0x100000);
-
- fld st(0)	; fu | fu
- fmul ds:dword ptr[st_d_zistepu+edi]	; fu*surf->d_zistepu | fu
- fld ds:dword ptr[_fv]	; fv | fu*surf->d_zistepu | fu
- fmul ds:dword ptr[st_d_zistepv+edi]	; fv*surf->d_zistepv | fu*surf->d_zistepu | fu
- fxch st(1)	; fu*surf->d_zistepu | fv*surf->d_zistepv | fu
- fadd ds:dword ptr[st_d_ziorigin+edi]	; fu*surf->d_zistepu + surf->d_ziorigin |
-;  fv*surf->d_zistepv | fu
-
- fld ds:dword ptr[st_d_zistepu+esi]	; surf2->d_zistepu |
-;  fu*surf->d_zistepu + surf->d_ziorigin |
-;  fv*surf->d_zistepv | fu
- fmul st(0),st(3)	; fu*surf2->d_zistepu |
-;  fu*surf->d_zistepu + surf->d_ziorigin |
-;  fv*surf->d_zistepv | fu
- fxch st(1)	; fu*surf->d_zistepu + surf->d_ziorigin |
-;  fu*surf2->d_zistepu |
-;  fv*surf->d_zistepv | fu
- faddp st(2),st(0)	; fu*surf2->d_zistepu | newzi | fu
-
- fld ds:dword ptr[_fv]	; fv | fu*surf2->d_zistepu | newzi | fu
- fmul ds:dword ptr[st_d_zistepv+esi]	; fv*surf2->d_zistepv |
-;  fu*surf2->d_zistepu | newzi | fu
- fld st(2)	; newzi | fv*surf2->d_zistepv |
-;  fu*surf2->d_zistepu | newzi | fu
- fmul ds:dword ptr[float_point_999]	; newzibottom | fv*surf2->d_zistepv |
-;  fu*surf2->d_zistepu | newzi | fu
-
- fxch st(2)	; fu*surf2->d_zistepu | fv*surf2->d_zistepv |
-;  newzibottom | newzi | fu
- fadd ds:dword ptr[st_d_ziorigin+esi]	; fu*surf2->d_zistepu + surf2->d_ziorigin |
-;  fv*surf2->d_zistepv | newzibottom | newzi |
-;  fu
- faddp st(1),st(0)	; testzi | newzibottom | newzi | fu
- fxch st(1)	; newzibottom | testzi | newzi | fu
-
-; if (newzibottom >= testzi)
-;     goto newtop;
-
- fcomp st(1)	; testzi | newzi | fu
-
- fxch st(1)	; newzi | testzi | fu
- fmul ds:dword ptr[float_1_point_001]	; newzitop | testzi | fu
- fxch st(1)	; testzi | newzitop | fu
-
- fnstsw ax	
- test ah,001h	
- jz Lnewtop_fpop3	
-
-; if (newzitop >= testzi)
-; {
-
- fcomp st(1)	; newzitop | fu
- fnstsw ax	
- test ah,045h	
- jz Lsortloop_fpop2	
-
-; if (surf->d_zistepu >= surf2->d_zistepu)
-;     goto newtop;
-
- fld ds:dword ptr[st_d_zistepu+edi]	; surf->d_zistepu | newzitop | fu
- fcomp ds:dword ptr[st_d_zistepu+esi]	; newzitop | fu
- fnstsw ax	
- test ah,001h	
- jz Lnewtop_fpop2	
-
-Lsortloop_fpop2:	
- fstp st(0)	; clear the FP stack
- fstp st(0)	
- mov eax,ds:dword ptr[st_key+edi]	
- jmp Lsortloop	
-
-
- public _R_EdgeCodeEnd	
-_R_EdgeCodeEnd:	
-
-
-;----------------------------------------------------------------------
-; Surface array address code patching routine
-;----------------------------------------------------------------------
-
- align 4	
- public _R_SurfacePatch	
-_R_SurfacePatch:	
-
- mov eax,ds:dword ptr[_surfaces]	
- add eax,offset st_size	
- mov ds:dword ptr[LPatch4-4],eax	
-
- add eax,offset st_next	
- mov ds:dword ptr[LPatch0-4],eax	
- mov ds:dword ptr[LPatch2-4],eax	
- mov ds:dword ptr[LPatch3-4],eax	
-
- ret	
-
-_TEXT ENDS
-endif	;id386
- END
--- a/ref_soft/r_polysa.asm
+++ /dev/null
@@ -1,812 +1,0 @@
- .386P
- .model FLAT
-;
-; d_polysa.s
-; x86 assembly-language polygon model drawing code
-;
-
-include qasm.inc
-include d_if.inc
-
-if	id386
-
-; !!! if this is changed, it must be changed in d_polyse.c too !!!
-;DPS_MAXSPANS			equ		(MAXHEIGHT+1)
-; 1 extra for spanpackage that marks end
-
-;SPAN_SIZE	equ		(((DPS_MAXSPANS + 1 + ((CACHE_SIZE - 1) / spanpackage_t_size)) + 1) * spanpackage_t_size)
-
-MASK_1K	equ		03FFh
-
-_DATA SEGMENT	
-
- align 4	
-;p10_minus_p20 dd 0
-;p01_minus_p21 dd 0
-;temp0 dd 0
-;temp1 dd 0
-;Ltemp dd 0
-
-aff8entryvec_table dd LDraw8, LDraw7, LDraw6, LDraw5
- dd LDraw4, LDraw3, LDraw2, LDraw1, LDraw8IR, LDraw7IR, LDraw6IR, LDraw5IR, LDraw4IR, LDraw3IR, LDraw2IR, LDraw1IR
-
-lzistepx dd 0	
-
- externdef _rand1k:dword	
- externdef _rand1k_index:dword	
- externdef _alias_colormap:dword
-
-;PGM
- externdef _irtable:dword
- externdef _iractive:byte
-;PGM
-
-_DATA ENDS
-_TEXT SEGMENT	
-
-
-;----------------------------------------------------------------------
-; 8-bpp horizontal span drawing code for affine polygons, with smooth
-; shading and no transparency
-;----------------------------------------------------------------------
-
-;===================================
-;===================================
-
-pspans	equ		4+8
-
- public _D_PolysetAff8Start	
-_D_PolysetAff8Start:	
-
- public _R_PolysetDrawSpans8_Opaque 
-_R_PolysetDrawSpans8_Opaque:
-
- push esi	; preserve register variables
- push ebx	
-
- mov esi,ds:dword ptr[pspans+esp]	; point to the first span descriptor
- mov ecx,ds:dword ptr[_r_zistepx]	
-
- push ebp	; preserve caller's stack frame
- push edi	
-
- ror ecx,16	; put high 16 bits of 1/z step in low word
- mov edx,ds:dword ptr[spanpackage_t_count+esi]	
-
- mov ds:dword ptr[lzistepx],ecx	
-
-LSpanLoop:	
-
-;		lcount = d_aspancount - pspanpackage->count;
-;
-;		errorterm += erroradjustup;
-;		if (errorterm >= 0)
-;		{
-;			d_aspancount += d_countextrastep;
-;			errorterm -= erroradjustdown;
-;		}
-;		else
-;		{
-;			d_aspancount += ubasestep;
-;		}
-
- mov eax,ds:dword ptr[_d_aspancount]
- sub eax,edx
-
- mov edx,ds:dword ptr[_erroradjustup]	
- mov ebx,ds:dword ptr[_errorterm]	
- add ebx,edx	
- js LNoTurnover	
-
- mov edx,ds:dword ptr[_erroradjustdown]	
- mov edi,ds:dword ptr[_d_countextrastep]	
- sub ebx,edx	
- mov ebp,ds:dword ptr[_d_aspancount]	
- mov ds:dword ptr[_errorterm],ebx	
- add ebp,edi	
- mov ds:dword ptr[_d_aspancount],ebp	
- jmp LRightEdgeStepped	
-
-LNoTurnover:	
- mov edi,ds:dword ptr[_d_aspancount]	
- mov edx,ds:dword ptr[_ubasestep]	
- mov ds:dword ptr[_errorterm],ebx	
- add edi,edx	
- mov ds:dword ptr[_d_aspancount],edi	
-
-LRightEdgeStepped:	
- cmp eax,1	
-
- jl LNextSpan	
- jz LExactlyOneLong	
-
-;
-; set up advancetable
-;
- mov ecx,ds:dword ptr[_a_ststepxwhole]	
- mov edx,ds:dword ptr[_r_affinetridesc+atd_skinwidth]	
-
- mov ds:dword ptr[advancetable+4],ecx	; advance base in t
- add ecx,edx	
-
- mov ds:dword ptr[advancetable],ecx	; advance extra in t
- mov ecx,ds:dword ptr[_a_tstepxfrac]	
-
- mov cx,ds:word ptr[_r_lstepx]	
- mov edx,eax	; count
-
- mov ds:dword ptr[tstep],ecx
- add edx,7	
-
- shr edx,3	; count of full and partial loops
- mov ebx,ds:dword ptr[spanpackage_t_sfrac+esi]	
-
- mov bx,dx	
- mov ecx,ds:dword ptr[spanpackage_t_pz+esi]	
-
- neg eax	
-
- mov edi,ds:dword ptr[spanpackage_t_pdest+esi]	
- and eax,7	; 0->0, 1->7, 2->6, ... , 7->1
-
- sub edi,eax	; compensate for hardwired offsets
- sub ecx,eax	
-
- sub ecx,eax	
- mov edx,ds:dword ptr[spanpackage_t_tfrac+esi]	
-
- mov dx,ds:word ptr[spanpackage_t_light+esi]	
- mov ebp,ds:dword ptr[spanpackage_t_zi+esi]	
-
- ror ebp,16	; put high 16 bits of 1/z in low word
- push esi	
-
- push eax
- mov al, [_iractive]
- cmp al, 0
- pop eax
- jne IRInsert
- 
- mov esi,ds:dword ptr[spanpackage_t_ptex+esi]	
- jmp dword ptr[aff8entryvec_table+eax*4]	
-
-IRInsert:
- mov esi,ds:dword ptr[spanpackage_t_ptex+esi]
- add eax, 8
- jmp dword ptr[aff8entryvec_table+eax*4]	
-
-; %bx = count of full and partial loops
-; %ebx high word = sfrac
-; %ecx = pz
-; %dx = light
-; %edx high word = tfrac
-; %esi = ptex
-; %edi = pdest
-; %ebp = 1/z
-; tstep low word = C(r_lstepx)
-; tstep high word = C(a_tstepxfrac)
-; C(a_sstepxfrac) low word = 0
-; C(a_sstepxfrac) high word = C(a_sstepxfrac)
-
-;===
-;Standard Draw Loop
-;===
-LDrawLoop:	
-
- mov al,[_iractive]
- cmp al,0
- jne LDrawLoopIR
-
-; FIXME: do we need to clamp light? We may need at least a buffer bit to
-; keep it from poking into tfrac and causing problems
-
-LDraw8:	
- cmp bp,ds:word ptr[ecx]	
- jl Lp1	
- xor eax,eax	
- mov ah,dh	
- mov al,ds:byte ptr[esi]	
- mov ds:word ptr[ecx],bp	
- mov al,ds:byte ptr[12345678h+eax]	
-LPatch8:	
- mov ds:byte ptr[edi],al	
-Lp1:	
- add edx,ds:dword ptr[tstep]	
- sbb eax,eax	
- add ebp,ds:dword ptr[lzistepx]	
- adc ebp,0	
- add ebx,ds:dword ptr[_a_sstepxfrac]	
- adc esi,ds:dword ptr[advancetable+4+eax*4]	
-
-LDraw7:	
- cmp bp,ds:word ptr[2+ecx]	
- jl Lp2	
- xor eax,eax	
- mov ah,dh	
- mov al,ds:byte ptr[esi]	
- mov ds:word ptr[2+ecx],bp	
- mov al,ds:byte ptr[12345678h+eax]	
-LPatch7:	
- mov ds:byte ptr[1+edi],al	
-Lp2:	
- add edx,ds:dword ptr[tstep]	
- sbb eax,eax	
- add ebp,ds:dword ptr[lzistepx]	
- adc ebp,0	
- add ebx,ds:dword ptr[_a_sstepxfrac]	
- adc esi,ds:dword ptr[advancetable+4+eax*4]	
-
-LDraw6:	
- cmp bp,ds:word ptr[4+ecx]	
- jl Lp3	
- xor eax,eax	
- mov ah,dh	
- mov al,ds:byte ptr[esi]	
- mov ds:word ptr[4+ecx],bp	
- mov al,ds:byte ptr[12345678h+eax]	
-LPatch6:	
- mov ds:byte ptr[2+edi],al	
-Lp3:	
- add edx,ds:dword ptr[tstep]	
- sbb eax,eax	
- add ebp,ds:dword ptr[lzistepx]	
- adc ebp,0	
- add ebx,ds:dword ptr[_a_sstepxfrac]	
- adc esi,ds:dword ptr[advancetable+4+eax*4]	
-
-LDraw5:	
- cmp bp,ds:word ptr[6+ecx]	
- jl Lp4	
- xor eax,eax	
- mov ah,dh	
- mov al,ds:byte ptr[esi]	
- mov ds:word ptr[6+ecx],bp	
- mov al,ds:byte ptr[12345678h+eax]	
-LPatch5:	
- mov ds:byte ptr[3+edi],al	
-Lp4:	
- add edx,ds:dword ptr[tstep]	
- sbb eax,eax	
- add ebp,ds:dword ptr[lzistepx]	
- adc ebp,0	
- add ebx,ds:dword ptr[_a_sstepxfrac]	
- adc esi,ds:dword ptr[advancetable+4+eax*4]	
-
-LDraw4:	
- cmp bp,ds:word ptr[8+ecx]	
- jl Lp5	
- xor eax,eax	
- mov ah,dh	
- mov al,ds:byte ptr[esi]	
- mov ds:word ptr[8+ecx],bp	
- mov al,ds:byte ptr[12345678h+eax]	
-LPatch4:	
- mov ds:byte ptr[4+edi],al	
-Lp5:	
- add edx,ds:dword ptr[tstep]	
- sbb eax,eax	
- add ebp,ds:dword ptr[lzistepx]	
- adc ebp,0	
- add ebx,ds:dword ptr[_a_sstepxfrac]	
- adc esi,ds:dword ptr[advancetable+4+eax*4]	
-
-LDraw3:	
- cmp bp,ds:word ptr[10+ecx]	
- jl Lp6	
- xor eax,eax	
- mov ah,dh	
- mov al,ds:byte ptr[esi]	
- mov ds:word ptr[10+ecx],bp	
- mov al,ds:byte ptr[12345678h+eax]	
-LPatch3:	
- mov ds:byte ptr[5+edi],al	
-Lp6:	
- add edx,ds:dword ptr[tstep]	
- sbb eax,eax	
- add ebp,ds:dword ptr[lzistepx]	
- adc ebp,0	
- add ebx,ds:dword ptr[_a_sstepxfrac]	
- adc esi,ds:dword ptr[advancetable+4+eax*4]	
-
-LDraw2:	
- cmp bp,ds:word ptr[12+ecx]	
- jl Lp7	
- xor eax,eax	
- mov ah,dh	
- mov al,ds:byte ptr[esi]	
- mov ds:word ptr[12+ecx],bp	
- mov al,ds:byte ptr[12345678h+eax]	
-LPatch2:	
- mov ds:byte ptr[6+edi],al	
-Lp7:	
- add edx,ds:dword ptr[tstep]	
- sbb eax,eax	
- add ebp,ds:dword ptr[lzistepx]	
- adc ebp,0	
- add ebx,ds:dword ptr[_a_sstepxfrac]	
- adc esi,ds:dword ptr[advancetable+4+eax*4]	
-
-LDraw1:	
- cmp bp,ds:word ptr[14+ecx]	
- jl Lp8	
- xor eax,eax	
- mov ah,dh	
- mov al,ds:byte ptr[esi]	
- mov ds:word ptr[14+ecx],bp	
- mov al,ds:byte ptr[12345678h+eax]	
-LPatch1:	
- mov ds:byte ptr[7+edi],al	
-Lp8:	
- add edx,ds:dword ptr[tstep]	
- sbb eax,eax	
- add ebp,ds:dword ptr[lzistepx]	
- adc ebp,0	
- add ebx,ds:dword ptr[_a_sstepxfrac]	
- adc esi,ds:dword ptr[advancetable+4+eax*4]	
-
- add edi,8	
- add ecx,16	
-
- dec bx	
- jnz LDrawLoop	
-
- pop esi	; restore spans pointer
-LNextSpan:	
- add esi,offset spanpackage_t_size	; point to next span
-LNextSpanESISet:	
- mov edx,ds:dword ptr[spanpackage_t_count+esi]	
- cmp edx,offset -999999	; any more spans?
- jnz LSpanLoop	; yes
-
- pop edi	
- pop ebp	; restore the caller's stack frame
- pop ebx	; restore register variables
- pop esi	
- ret	
-
-;=======
-; IR active draw loop
-;=======
-LDrawLoopIR:	
-
-; FIXME: do we need to clamp light? We may need at least a buffer bit to
-; keep it from poking into tfrac and causing problems
-
-LDraw8IR:	
- cmp bp,ds:word ptr[ecx]	
- jl Lp1IR
- xor eax,eax	
- mov al,ds:byte ptr[esi]	
- mov al,ds:byte ptr[_irtable+eax]
- mov ds:word ptr[ecx],bp	
- mov al,ds:byte ptr[12345678h+eax]	
-LPatch8IR:	
- mov ds:byte ptr[edi],al	
-Lp1IR:	
- add edx,ds:dword ptr[tstep]	
- sbb eax,eax	
- add ebp,ds:dword ptr[lzistepx]	
- adc ebp,0	
- add ebx,ds:dword ptr[_a_sstepxfrac]	
- adc esi,ds:dword ptr[advancetable+4+eax*4]	
-
-LDraw7IR:	
- cmp bp,ds:word ptr[2+ecx]	
- jl Lp2IR	
- xor eax,eax	
- mov al,ds:byte ptr[esi]	
- mov al,ds:byte ptr[_irtable+eax]
- mov ds:word ptr[2+ecx],bp	
- mov al,ds:byte ptr[12345678h+eax]	
-LPatch7IR:	
- mov ds:byte ptr[1+edi],al	
-Lp2IR:	
- add edx,ds:dword ptr[tstep]	
- sbb eax,eax	
- add ebp,ds:dword ptr[lzistepx]	
- adc ebp,0	
- add ebx,ds:dword ptr[_a_sstepxfrac]	
- adc esi,ds:dword ptr[advancetable+4+eax*4]	
-
-LDraw6IR:	
- cmp bp,ds:word ptr[4+ecx]	
- jl Lp3IR	
- xor eax,eax	
- mov al,ds:byte ptr[esi]	
- mov al,ds:byte ptr[_irtable+eax]
- mov ds:word ptr[4+ecx],bp	
- mov al,ds:byte ptr[12345678h+eax]	
-LPatch6IR:	
- mov ds:byte ptr[2+edi],al	
-Lp3IR:	
- add edx,ds:dword ptr[tstep]	
- sbb eax,eax	
- add ebp,ds:dword ptr[lzistepx]	
- adc ebp,0	
- add ebx,ds:dword ptr[_a_sstepxfrac]	
- adc esi,ds:dword ptr[advancetable+4+eax*4]	
-
-LDraw5IR:	
- cmp bp,ds:word ptr[6+ecx]	
- jl Lp4IR
- xor eax,eax	
- mov al,ds:byte ptr[esi]	
- mov al,ds:byte ptr[_irtable+eax]
- mov ds:word ptr[6+ecx],bp	
- mov al,ds:byte ptr[12345678h+eax]	
-LPatch5IR:	
- mov ds:byte ptr[3+edi],al	
-Lp4IR:	
- add edx,ds:dword ptr[tstep]	
- sbb eax,eax	
- add ebp,ds:dword ptr[lzistepx]	
- adc ebp,0	
- add ebx,ds:dword ptr[_a_sstepxfrac]	
- adc esi,ds:dword ptr[advancetable+4+eax*4]	
-
-LDraw4IR:	
- cmp bp,ds:word ptr[8+ecx]	
- jl Lp5IR
- xor eax,eax	
- mov al,ds:byte ptr[esi]	
- mov al,ds:byte ptr[_irtable+eax]
- mov ds:word ptr[8+ecx],bp	
- mov al,ds:byte ptr[12345678h+eax]	
-LPatch4IR:	
- mov ds:byte ptr[4+edi],al	
-Lp5IR:	
- add edx,ds:dword ptr[tstep]	
- sbb eax,eax	
- add ebp,ds:dword ptr[lzistepx]	
- adc ebp,0	
- add ebx,ds:dword ptr[_a_sstepxfrac]	
- adc esi,ds:dword ptr[advancetable+4+eax*4]	
-
-LDraw3IR:	
- cmp bp,ds:word ptr[10+ecx]	
- jl Lp6IR	
- xor eax,eax	
- mov al,ds:byte ptr[esi]	
- mov al,ds:byte ptr[_irtable+eax]
- mov ds:word ptr[10+ecx],bp	
- mov al,ds:byte ptr[12345678h+eax]	
-LPatch3IR:	
- mov ds:byte ptr[5+edi],al	
-Lp6IR:	
- add edx,ds:dword ptr[tstep]	
- sbb eax,eax	
- add ebp,ds:dword ptr[lzistepx]	
- adc ebp,0	
- add ebx,ds:dword ptr[_a_sstepxfrac]	
- adc esi,ds:dword ptr[advancetable+4+eax*4]	
-
-LDraw2IR:	
- cmp bp,ds:word ptr[12+ecx]	
- jl Lp7IR
- xor eax,eax	
- mov al,ds:byte ptr[esi]	
- mov al,ds:byte ptr[_irtable+eax]
- mov ds:word ptr[12+ecx],bp	
- mov al,ds:byte ptr[12345678h+eax]	
-LPatch2IR:	
- mov ds:byte ptr[6+edi],al	
-Lp7IR:	
- add edx,ds:dword ptr[tstep]	
- sbb eax,eax	
- add ebp,ds:dword ptr[lzistepx]	
- adc ebp,0	
- add ebx,ds:dword ptr[_a_sstepxfrac]	
- adc esi,ds:dword ptr[advancetable+4+eax*4]	
-
-LDraw1IR:	
- cmp bp,ds:word ptr[14+ecx]	
- jl Lp8IR
- xor eax,eax
- mov al,ds:byte ptr[esi]	
- mov al,ds:byte ptr[_irtable+eax]
- mov ds:word ptr[14+ecx],bp	
- mov al,ds:byte ptr[12345678h+eax]	
-LPatch1IR:	
- mov ds:byte ptr[7+edi],al	
-Lp8IR:	
- add edx,ds:dword ptr[tstep]	
- sbb eax,eax	
- add ebp,ds:dword ptr[lzistepx]	
- adc ebp,0	
- add ebx,ds:dword ptr[_a_sstepxfrac]	
- adc esi,ds:dword ptr[advancetable+4+eax*4]	
-
- add edi,8	
- add ecx,16	
-
- dec bx	
- jnz LDrawLoopIR	
-
- pop esi	; restore spans pointer
-LNextSpanIR:	
- add esi,offset spanpackage_t_size	; point to next span
-LNextSpanESISetIR:	
- mov edx,ds:dword ptr[spanpackage_t_count+esi]	
- cmp edx,offset -999999	; any more spans?
- jnz LSpanLoop	; yes
-
- pop edi	
- pop ebp	; restore the caller's stack frame
- pop ebx	; restore register variables
- pop esi	
- ret	
-
-;=======
-; Standard One-Long Draw
-;=======
-; draw a one-long span
-
-LExactlyOneLong:	
- mov al,[_iractive]
- cmp al,0
- jne LExactlyOneLongIR
-
- mov ecx,ds:dword ptr[spanpackage_t_pz+esi]	
- mov ebp,ds:dword ptr[spanpackage_t_zi+esi]	
-
- ror ebp,16	; put high 16 bits of 1/z in low word
- mov ebx,ds:dword ptr[spanpackage_t_ptex+esi]	
-
- cmp bp,ds:word ptr[ecx]	
- jl LNextSpan	
- xor eax,eax	
- mov edi,ds:dword ptr[spanpackage_t_pdest+esi]	
- mov ah,ds:byte ptr[spanpackage_t_light+1+esi]	
- add esi,offset spanpackage_t_size	; point to next span
- mov al,ds:byte ptr[ebx]	
- mov ds:word ptr[ecx],bp	
- mov al,ds:byte ptr[12345678h+eax]	
-LPatch9:	
- mov ds:byte ptr[edi],al	
-
- jmp LNextSpanESISet	
-
-
-;========
-;========
-; draw a one-long span
-
-LExactlyOneLongIR:	
-
- mov ecx,ds:dword ptr[spanpackage_t_pz+esi]	
- mov ebp,ds:dword ptr[spanpackage_t_zi+esi]	
-
- ror ebp,16	; put high 16 bits of 1/z in low word
- mov ebx,ds:dword ptr[spanpackage_t_ptex+esi]	
-
- cmp bp,ds:word ptr[ecx]	
- jl LNextSpanIR
- xor eax,eax	
- mov edi,ds:dword ptr[spanpackage_t_pdest+esi]	
- add esi,offset spanpackage_t_size	; point to next span
- mov al,ds:byte ptr[ebx]	
- mov al,ds:byte ptr[_irtable+eax]
- mov ds:word ptr[ecx],bp	
- mov al,ds:byte ptr[12345678h+eax]	
-LPatch9IR:	
- mov ds:byte ptr[edi],al	
-
- jmp LNextSpanESISetIR
-
-;===================================
-;===================================
- public _D_Aff8Patch	
-_D_Aff8Patch:	
- mov eax,[_alias_colormap]
- mov ds:dword ptr[LPatch1-4],eax	
- mov ds:dword ptr[LPatch2-4],eax	
- mov ds:dword ptr[LPatch3-4],eax	
- mov ds:dword ptr[LPatch4-4],eax	
- mov ds:dword ptr[LPatch5-4],eax	
- mov ds:dword ptr[LPatch6-4],eax	
- mov ds:dword ptr[LPatch7-4],eax	
- mov ds:dword ptr[LPatch8-4],eax	
- mov ds:dword ptr[LPatch9-4],eax	
- mov ds:dword ptr[LPatch1IR-4],eax	
- mov ds:dword ptr[LPatch2IR-4],eax	
- mov ds:dword ptr[LPatch3IR-4],eax	
- mov ds:dword ptr[LPatch4IR-4],eax	
- mov ds:dword ptr[LPatch5IR-4],eax	
- mov ds:dword ptr[LPatch6IR-4],eax	
- mov ds:dword ptr[LPatch7IR-4],eax	
- mov ds:dword ptr[LPatch8IR-4],eax	
- mov ds:dword ptr[LPatch9IR-4],eax	
-
- ret	
-
-
-
-;===================================
-;===================================
-
-height	equ		4+16
-
- public _R_PolysetScanLeftEdge	
-_R_PolysetScanLeftEdge:	
- push ebp	; preserve caller stack frame pointer
- push esi	; preserve register variables
- push edi	
- push ebx	
-
- mov eax,ds:dword ptr[height+esp]	
- mov ecx,ds:dword ptr[_d_sfrac]
-
- and eax,0FFFFh	
- mov ebx,ds:dword ptr[_d_ptex]	
- or ecx,eax	
- mov esi,ds:dword ptr[_d_pedgespanpackage]	
- mov edx,ds:dword ptr[_d_tfrac]	
- mov edi,ds:dword ptr[_d_light]	
- mov ebp,ds:dword ptr[_d_zi]	
-
-; %eax: scratch
-; %ebx: d_ptex
-; %ecx: d_sfrac in high word, count in low word
-; %edx: d_tfrac
-; %esi: d_pedgespanpackage, errorterm, scratch alternately
-; %edi: d_light
-; %ebp: d_zi
-
-;	do
-;	{
-
-LScanLoop:	
-
-;		d_pedgespanpackage->ptex = ptex;
-;		d_pedgespanpackage->pdest = d_pdest;
-;		d_pedgespanpackage->pz = d_pz;
-;		d_pedgespanpackage->count = d_aspancount;
-;		d_pedgespanpackage->light = d_light;
-;		d_pedgespanpackage->zi = d_zi;
-;		d_pedgespanpackage->sfrac = d_sfrac << 16;
-;		d_pedgespanpackage->tfrac = d_tfrac << 16;
- mov ds:dword ptr[spanpackage_t_ptex+esi],ebx	
- mov eax,ds:dword ptr[_d_pdest]	
- mov ds:dword ptr[spanpackage_t_pdest+esi],eax	
- mov eax,ds:dword ptr[_d_pz]	
- mov ds:dword ptr[spanpackage_t_pz+esi],eax	
- mov eax,ds:dword ptr[_d_aspancount]	
- mov ds:dword ptr[spanpackage_t_count+esi],eax	
- mov ds:dword ptr[spanpackage_t_light+esi],edi	
- mov ds:dword ptr[spanpackage_t_zi+esi],ebp	
- mov ds:dword ptr[spanpackage_t_sfrac+esi],ecx	
- mov ds:dword ptr[spanpackage_t_tfrac+esi],edx	
-
-; pretouch the next cache line
- mov al,ds:byte ptr[spanpackage_t_size+esi]	
-
-;		d_pedgespanpackage++;
- add esi,offset spanpackage_t_size	
- mov eax,ds:dword ptr[_erroradjustup]	
- mov ds:dword ptr[_d_pedgespanpackage],esi	
-
-;		errorterm += erroradjustup;
- mov esi,ds:dword ptr[_errorterm]	
- add esi,eax	
- mov eax,ds:dword ptr[_d_pdest]	
-
-;		if (errorterm >= 0)
-;		{
- js LNoLeftEdgeTurnover	
-
-;			errorterm -= erroradjustdown;
-;			d_pdest += d_pdestextrastep;
- sub esi,ds:dword ptr[_erroradjustdown]	
- add eax,ds:dword ptr[_d_pdestextrastep]	
- mov ds:dword ptr[_errorterm],esi	
- mov ds:dword ptr[_d_pdest],eax	
-
-;			d_pz += d_pzextrastep;
-;			d_aspancount += d_countextrastep;
-;			d_ptex += d_ptexextrastep;
-;			d_sfrac += d_sfracextrastep;
-;			d_ptex += d_sfrac >> 16;
-;			d_sfrac &= 0xFFFF;
-;			d_tfrac += d_tfracextrastep;
- mov eax,ds:dword ptr[_d_pz]	
- mov esi,ds:dword ptr[_d_aspancount]	
- add eax,ds:dword ptr[_d_pzextrastep]	
- add ecx,ds:dword ptr[_d_sfracextrastep]	
- adc ebx,ds:dword ptr[_d_ptexextrastep]	
- add esi,ds:dword ptr[_d_countextrastep]	
- mov ds:dword ptr[_d_pz],eax	
- mov eax,ds:dword ptr[_d_tfracextrastep]	
- mov ds:dword ptr[_d_aspancount],esi	
- add edx,eax	
-
-;			if (d_tfrac & 0x10000)
-;			{
- jnc LSkip1	
-
-;				d_ptex += r_affinetridesc.skinwidth;
-;				d_tfrac &= 0xFFFF;
- add ebx,ds:dword ptr[_r_affinetridesc+atd_skinwidth]	
-
-;			}
-
-LSkip1:	
-
-;			d_light += d_lightextrastep;
-;			d_zi += d_ziextrastep;
- add edi,ds:dword ptr[_d_lightextrastep]	
- add ebp,ds:dword ptr[_d_ziextrastep]	
-
-;		}
- mov esi,ds:dword ptr[_d_pedgespanpackage]	
- dec ecx	
- test ecx,0FFFFh	
- jnz LScanLoop	
-
- pop ebx	
- pop edi	
- pop esi	
- pop ebp	
- ret	
-
-;		else
-;		{
-
-LNoLeftEdgeTurnover:	
- mov ds:dword ptr[_errorterm],esi	
-
-;			d_pdest += d_pdestbasestep;
- add eax,ds:dword ptr[_d_pdestbasestep]	
- mov ds:dword ptr[_d_pdest],eax	
-
-;			d_pz += d_pzbasestep;
-;			d_aspancount += ubasestep;
-;			d_ptex += d_ptexbasestep;
-;			d_sfrac += d_sfracbasestep;
-;			d_ptex += d_sfrac >> 16;
-;			d_sfrac &= 0xFFFF;
- mov eax,ds:dword ptr[_d_pz]	
- mov esi,ds:dword ptr[_d_aspancount]	
- add eax,ds:dword ptr[_d_pzbasestep]	
- add ecx,ds:dword ptr[_d_sfracbasestep]	
- adc ebx,ds:dword ptr[_d_ptexbasestep]	
- add esi,ds:dword ptr[_ubasestep]	
- mov ds:dword ptr[_d_pz],eax	
- mov ds:dword ptr[_d_aspancount],esi	
-
-;			d_tfrac += d_tfracbasestep;
- mov esi,ds:dword ptr[_d_tfracbasestep]	
- add edx,esi	
-
-;			if (d_tfrac & 0x10000)
-;			{
- jnc LSkip2	
-
-;				d_ptex += r_affinetridesc.skinwidth;
-;				d_tfrac &= 0xFFFF;
- add ebx,ds:dword ptr[_r_affinetridesc+atd_skinwidth]	
-
-;			}
-
-LSkip2:	
-
-;			d_light += d_lightbasestep;
-;			d_zi += d_zibasestep;
- add edi,ds:dword ptr[_d_lightbasestep]	
- add ebp,ds:dword ptr[_d_zibasestep]	
-
-;		}
-;	} while (--height);
- mov esi,ds:dword ptr[_d_pedgespanpackage]	
- dec ecx	
- test ecx,0FFFFh	
- jnz LScanLoop	
-
- pop ebx	
- pop edi	
- pop esi	
- pop ebp	
- ret	
-
-_TEXT ENDS
-endif	;id386
- END
--- a/ref_soft/r_scana.asm
+++ /dev/null
@@ -1,73 +1,0 @@
- .386P
- .model FLAT
-;
-; d_scana.s
-; x86 assembly-language turbulent texture mapping code
-;
-
-include qasm.inc
-include d_if.inc
-
-if id386
-
-_DATA SEGMENT	
-
-_DATA ENDS
-_TEXT SEGMENT	
-
-;----------------------------------------------------------------------
-; turbulent texture mapping code
-;----------------------------------------------------------------------
-
- align 4	
- public _D_DrawTurbulent8Span	
-_D_DrawTurbulent8Span:	
- push ebp	; preserve caller's stack frame pointer
- push esi	; preserve register variables
- push edi	
- push ebx	
-
- mov esi,ds:dword ptr[_r_turb_s]	
- mov ecx,ds:dword ptr[_r_turb_t]	
- mov edi,ds:dword ptr[_r_turb_pdest]	
- mov ebx,ds:dword ptr[_r_turb_spancount]	
-
-Llp:	
- mov eax,ecx	
- mov edx,esi	
- sar eax,16	
- mov ebp,ds:dword ptr[_r_turb_turb]	
- sar edx,16	
- and eax,offset CYCLE-1	
- and edx,offset CYCLE-1	
- mov eax,ds:dword ptr[ebp+eax*4]	
- mov edx,ds:dword ptr[ebp+edx*4]	
- add eax,esi	
- sar eax,16	
- add edx,ecx	
- sar edx,16	
- and eax,offset TURB_TEX_SIZE-1	
- and edx,offset TURB_TEX_SIZE-1	
- shl edx,6	
- mov ebp,ds:dword ptr[_r_turb_pbase]	
- add edx,eax	
- inc edi	
- add esi,ds:dword ptr[_r_turb_sstep]	
- add ecx,ds:dword ptr[_r_turb_tstep]	
- mov dl,ds:byte ptr[ebp+edx*1]	
- dec ebx	
- mov ds:byte ptr[-1+edi],dl	
- jnz Llp	
-
- mov ds:dword ptr[_r_turb_pdest],edi	
-
- pop ebx	; restore register variables
- pop edi	
- pop esi	
- pop ebp	; restore caller's stack frame pointer
- ret	
-
-
-_TEXT ENDS
-endif	;id386
- END
--- a/ref_soft/r_spr8.asm
+++ /dev/null
@@ -1,884 +1,0 @@
- .386P
- .model FLAT
-;
-; d_spr8.s
-; x86 assembly-language horizontal 8-bpp transparent span-drawing code.
-;
-
-include qasm.inc
-include d_if.inc
-
-if id386
-
-;----------------------------------------------------------------------
-; 8-bpp horizontal span drawing code for polygons, with transparency.
-;----------------------------------------------------------------------
-
-_TEXT SEGMENT	
-
-; out-of-line, rarely-needed clamping code
-
-LClampHigh0:	
- mov esi,ds:dword ptr[_bbextents]	
- jmp LClampReentry0	
-LClampHighOrLow0:	
- jg LClampHigh0	
- xor esi,esi	
- jmp LClampReentry0	
-
-LClampHigh1:	
- mov edx,ds:dword ptr[_bbextentt]	
- jmp LClampReentry1	
-LClampHighOrLow1:	
- jg LClampHigh1	
- xor edx,edx	
- jmp LClampReentry1	
-
-LClampLow2:	
- mov ebp,2048	
- jmp LClampReentry2	
-LClampHigh2:	
- mov ebp,ds:dword ptr[_bbextents]	
- jmp LClampReentry2	
-
-LClampLow3:	
- mov ecx,2048	
- jmp LClampReentry3	
-LClampHigh3:	
- mov ecx,ds:dword ptr[_bbextentt]	
- jmp LClampReentry3	
-
-LClampLow4:	
- mov eax,2048	
- jmp LClampReentry4	
-LClampHigh4:	
- mov eax,ds:dword ptr[_bbextents]	
- jmp LClampReentry4	
-
-LClampLow5:	
- mov ebx,2048	
- jmp LClampReentry5	
-LClampHigh5:	
- mov ebx,ds:dword ptr[_bbextentt]	
- jmp LClampReentry5	
-
-
-pspans	equ		4+16
-
- align 4	
- public _D_SpriteDrawSpansXXX
-_D_SpriteDrawSpansXXX:	
- push ebp	; preserve caller's stack frame
- push edi	
- push esi	; preserve register variables
- push ebx	
-
-;
-; set up scaled-by-8 steps, for 8-long segments; also set up cacheblock
-; and span list pointers, and 1/z step in 0.32 fixed-point
-;
-; FIXME: any overlap from rearranging?
- fld ds:dword ptr[_d_sdivzstepu]	
- fmul ds:dword ptr[fp_8]	
- mov edx,ds:dword ptr[_cacheblock]	
- fld ds:dword ptr[_d_tdivzstepu]	
- fmul ds:dword ptr[fp_8]	
- mov ebx,ds:dword ptr[pspans+esp]	; point to the first span descriptor
- fld ds:dword ptr[_d_zistepu]	
- fmul ds:dword ptr[fp_8]	
- mov ds:dword ptr[pbase],edx	; pbase = cacheblock
- fld ds:dword ptr[_d_zistepu]	
- fmul ds:dword ptr[fp_64kx64k]	
- fxch st(3)	
- fstp ds:dword ptr[sdivz8stepu]	
- fstp ds:dword ptr[zi8stepu]	
- fstp ds:dword ptr[tdivz8stepu]	
- fistp ds:dword ptr[izistep]	
- mov eax,ds:dword ptr[izistep]	
- ror eax,16	; put upper 16 bits in low word
- mov ecx,ds:dword ptr[sspan_t_count+ebx]	
- mov ds:dword ptr[izistep],eax	
-
- cmp ecx,0	
- jle LNextSpan	
-
-LSpanLoop:	
-
-;
-; set up the initial s/z, t/z, and 1/z on the FP stack, and generate the
-; initial s and t values
-;
-; FIXME: pipeline FILD?
- fild ds:dword ptr[sspan_t_v+ebx]	
- fild ds:dword ptr[sspan_t_u+ebx]	
-
- fld st(1)	; dv | du | dv
- fmul ds:dword ptr[_d_sdivzstepv]	; dv*d_sdivzstepv | du | dv
- fld st(1)	; du | dv*d_sdivzstepv | du | dv
- fmul ds:dword ptr[_d_sdivzstepu]	; du*d_sdivzstepu | dv*d_sdivzstepv | du | dv
- fld st(2)	; du | du*d_sdivzstepu | dv*d_sdivzstepv | du | dv
- fmul ds:dword ptr[_d_tdivzstepu]	; du*d_tdivzstepu | du*d_sdivzstepu |
-;  dv*d_sdivzstepv | du | dv
- fxch st(1)	; du*d_sdivzstepu | du*d_tdivzstepu |
-;  dv*d_sdivzstepv | du | dv
- faddp st(2),st(0)	; du*d_tdivzstepu |
-;  du*d_sdivzstepu + dv*d_sdivzstepv | du | dv
- fxch st(1)	; du*d_sdivzstepu + dv*d_sdivzstepv |
-;  du*d_tdivzstepu | du | dv
- fld st(3)	; dv | du*d_sdivzstepu + dv*d_sdivzstepv |
-;  du*d_tdivzstepu | du | dv
- fmul ds:dword ptr[_d_tdivzstepv]	; dv*d_tdivzstepv |
-;  du*d_sdivzstepu + dv*d_sdivzstepv |
-;  du*d_tdivzstepu | du | dv
- fxch st(1)	; du*d_sdivzstepu + dv*d_sdivzstepv |
-;  dv*d_tdivzstepv | du*d_tdivzstepu | du | dv
- fadd ds:dword ptr[_d_sdivzorigin]	; sdivz = d_sdivzorigin + dv*d_sdivzstepv +
-;  du*d_sdivzstepu; stays in %st(2) at end
- fxch st(4)	; dv | dv*d_tdivzstepv | du*d_tdivzstepu | du |
-;  s/z
- fmul ds:dword ptr[_d_zistepv]	; dv*d_zistepv | dv*d_tdivzstepv |
-;  du*d_tdivzstepu | du | s/z
- fxch st(1)	; dv*d_tdivzstepv |  dv*d_zistepv |
-;  du*d_tdivzstepu | du | s/z
- faddp st(2),st(0)	; dv*d_zistepv |
-;  dv*d_tdivzstepv + du*d_tdivzstepu | du | s/z
- fxch st(2)	; du | dv*d_tdivzstepv + du*d_tdivzstepu |
-;  dv*d_zistepv | s/z
- fmul ds:dword ptr[_d_zistepu]	; du*d_zistepu |
-;  dv*d_tdivzstepv + du*d_tdivzstepu |
-;  dv*d_zistepv | s/z
- fxch st(1)	; dv*d_tdivzstepv + du*d_tdivzstepu |
-;  du*d_zistepu | dv*d_zistepv | s/z
- fadd ds:dword ptr[_d_tdivzorigin]	; tdivz = d_tdivzorigin + dv*d_tdivzstepv +
-;  du*d_tdivzstepu; stays in %st(1) at end
- fxch st(2)	; dv*d_zistepv | du*d_zistepu | t/z | s/z
- faddp st(1),st(0)	; dv*d_zistepv + du*d_zistepu | t/z | s/z
-
- fld ds:dword ptr[fp_64k]	; fp_64k | dv*d_zistepv + du*d_zistepu | t/z | s/z
- fxch st(1)	; dv*d_zistepv + du*d_zistepu | fp_64k | t/z | s/z
- fadd ds:dword ptr[_d_ziorigin]	; zi = d_ziorigin + dv*d_zistepv +
-;  du*d_zistepu; stays in %st(0) at end
-; 1/z | fp_64k | t/z | s/z
-
- fld st(0)	; FIXME: get rid of stall on FMUL?
- fmul ds:dword ptr[fp_64kx64k]	
- fxch st(1)	
-
-;
-; calculate and clamp s & t
-;
- fdiv st(2),st(0)	; 1/z | z*64k | t/z | s/z
- fxch st(1)	
-
- fistp ds:dword ptr[izi]	; 0.32 fixed-point 1/z
- mov ebp,ds:dword ptr[izi]	
-
-;
-; set pz to point to the first z-buffer pixel in the span
-;
- ror ebp,16	; put upper 16 bits in low word
- mov eax,ds:dword ptr[sspan_t_v+ebx]	
- mov ds:dword ptr[izi],ebp	
- mov ebp,ds:dword ptr[sspan_t_u+ebx]	
- imul ds:dword ptr[_d_zrowbytes]	
- shl ebp,1	; a word per pixel
- add eax,ds:dword ptr[_d_pzbuffer]	
- add eax,ebp	
- mov ds:dword ptr[pz],eax	
-
-;
-; point %edi to the first pixel in the span
-;
- mov ebp,ds:dword ptr[_d_viewbuffer]	
- mov eax,ds:dword ptr[sspan_t_v+ebx]	
- push ebx	; preserve spans pointer
- mov edx,ds:dword ptr[_tadjust]	
- mov esi,ds:dword ptr[_sadjust]	
- mov edi,ds:dword ptr[_d_scantable+eax*4]	; v * screenwidth
- add edi,ebp	
- mov ebp,ds:dword ptr[sspan_t_u+ebx]	
- add edi,ebp	; pdest = &pdestspan[scans->u];
-
-;
-; now start the FDIV for the end of the span
-;
- cmp ecx,8	
- ja LSetupNotLast1	
-
- dec ecx	
- jz LCleanup1	; if only one pixel, no need to start an FDIV
- mov ds:dword ptr[spancountminus1],ecx	
-
-; finish up the s and t calcs
- fxch st(1)	; z*64k | 1/z | t/z | s/z
-
- fld st(0)	; z*64k | z*64k | 1/z | t/z | s/z
- fmul st(0),st(4)	; s | z*64k | 1/z | t/z | s/z
- fxch st(1)	; z*64k | s | 1/z | t/z | s/z
- fmul st(0),st(3)	; t | s | 1/z | t/z | s/z
- fxch st(1)	; s | t | 1/z | t/z | s/z
- fistp ds:dword ptr[s]	; 1/z | t | t/z | s/z
- fistp ds:dword ptr[t]	; 1/z | t/z | s/z
-
- fild ds:dword ptr[spancountminus1]	
-
- fld ds:dword ptr[_d_tdivzstepu]	; _d_tdivzstepu | spancountminus1
- fld ds:dword ptr[_d_zistepu]	; _d_zistepu | _d_tdivzstepu | spancountminus1
- fmul st(0),st(2)	; _d_zistepu*scm1 | _d_tdivzstepu | scm1
- fxch st(1)	; _d_tdivzstepu | _d_zistepu*scm1 | scm1
- fmul st(0),st(2)	; _d_tdivzstepu*scm1 | _d_zistepu*scm1 | scm1
- fxch st(2)	; scm1 | _d_zistepu*scm1 | _d_tdivzstepu*scm1
- fmul ds:dword ptr[_d_sdivzstepu]	; _d_sdivzstepu*scm1 | _d_zistepu*scm1 |
-;  _d_tdivzstepu*scm1
- fxch st(1)	; _d_zistepu*scm1 | _d_sdivzstepu*scm1 |
-;  _d_tdivzstepu*scm1
- faddp st(3),st(0)	; _d_sdivzstepu*scm1 | _d_tdivzstepu*scm1
- fxch st(1)	; _d_tdivzstepu*scm1 | _d_sdivzstepu*scm1
- faddp st(3),st(0)	; _d_sdivzstepu*scm1
- faddp st(3),st(0)	
-
- fld ds:dword ptr[fp_64k]	
- fdiv st(0),st(1)	; this is what we've gone to all this trouble to
-;  overlap
- jmp LFDIVInFlight1	
-
-LCleanup1:	
-; finish up the s and t calcs
- fxch st(1)	; z*64k | 1/z | t/z | s/z
-
- fld st(0)	; z*64k | z*64k | 1/z | t/z | s/z
- fmul st(0),st(4)	; s | z*64k | 1/z | t/z | s/z
- fxch st(1)	; z*64k | s | 1/z | t/z | s/z
- fmul st(0),st(3)	; t | s | 1/z | t/z | s/z
- fxch st(1)	; s | t | 1/z | t/z | s/z
- fistp ds:dword ptr[s]	; 1/z | t | t/z | s/z
- fistp ds:dword ptr[t]	; 1/z | t/z | s/z
- jmp LFDIVInFlight1	
-
- align 4	
-LSetupNotLast1:	
-; finish up the s and t calcs
- fxch st(1)	; z*64k | 1/z | t/z | s/z
-
- fld st(0)	; z*64k | z*64k | 1/z | t/z | s/z
- fmul st(0),st(4)	; s | z*64k | 1/z | t/z | s/z
- fxch st(1)	; z*64k | s | 1/z | t/z | s/z
- fmul st(0),st(3)	; t | s | 1/z | t/z | s/z
- fxch st(1)	; s | t | 1/z | t/z | s/z
- fistp ds:dword ptr[s]	; 1/z | t | t/z | s/z
- fistp ds:dword ptr[t]	; 1/z | t/z | s/z
-
- fadd ds:dword ptr[zi8stepu]	
- fxch st(2)	
- fadd ds:dword ptr[sdivz8stepu]	
- fxch st(2)	
- fld ds:dword ptr[tdivz8stepu]	
- faddp st(2),st(0)	
- fld ds:dword ptr[fp_64k]	
- fdiv st(0),st(1)	; z = 1/1/z
-; this is what we've gone to all this trouble to
-;  overlap
-LFDIVInFlight1:	
-
- add esi,ds:dword ptr[s]	
- add edx,ds:dword ptr[t]	
- mov ebx,ds:dword ptr[_bbextents]	
- mov ebp,ds:dword ptr[_bbextentt]	
- cmp esi,ebx	
- ja LClampHighOrLow0	
-LClampReentry0:	
- mov ds:dword ptr[s],esi	
- mov ebx,ds:dword ptr[pbase]	
- shl esi,16	
- cmp edx,ebp	
- mov ds:dword ptr[sfracf],esi	
- ja LClampHighOrLow1	
-LClampReentry1:	
- mov ds:dword ptr[t],edx	
- mov esi,ds:dword ptr[s]	; sfrac = scans->sfrac;
- shl edx,16	
- mov eax,ds:dword ptr[t]	; tfrac = scans->tfrac;
- sar esi,16	
- mov ds:dword ptr[tfracf],edx	
-
-;
-; calculate the texture starting address
-;
- sar eax,16	
- add esi,ebx	
- imul eax,ds:dword ptr[_cachewidth]	; (tfrac >> 16) * cachewidth
- add esi,eax	; psource = pbase + (sfrac >> 16) +
-;           ((tfrac >> 16) * cachewidth);
-
-;
-; determine whether last span or not
-;
- cmp ecx,8	
- jna LLastSegment	
-
-;
-; not the last segment; do full 8-wide segment
-;
-LNotLastSegment:	
-
-;
-; advance s/z, t/z, and 1/z, and calculate s & t at end of span and steps to
-; get there
-;
-
-; pick up after the FDIV that was left in flight previously
-
- fld st(0)	; duplicate it
- fmul st(0),st(4)	; s = s/z * z
- fxch st(1)	
- fmul st(0),st(3)	; t = t/z * z
- fxch st(1)	
- fistp ds:dword ptr[snext]	
- fistp ds:dword ptr[tnext]	
- mov eax,ds:dword ptr[snext]	
- mov edx,ds:dword ptr[tnext]	
-
- sub ecx,8	; count off this segments' pixels
- mov ebp,ds:dword ptr[_sadjust]	
- push ecx	; remember count of remaining pixels
- mov ecx,ds:dword ptr[_tadjust]	
-
- add ebp,eax	
- add ecx,edx	
-
- mov eax,ds:dword ptr[_bbextents]	
- mov edx,ds:dword ptr[_bbextentt]	
-
- cmp ebp,2048	
- jl LClampLow2	
- cmp ebp,eax	
- ja LClampHigh2	
-LClampReentry2:	
-
- cmp ecx,2048	
- jl LClampLow3	
- cmp ecx,edx	
- ja LClampHigh3	
-LClampReentry3:	
-
- mov ds:dword ptr[snext],ebp	
- mov ds:dword ptr[tnext],ecx	
-
- sub ebp,ds:dword ptr[s]	
- sub ecx,ds:dword ptr[t]	
-
-;
-; set up advancetable
-;
- mov eax,ecx	
- mov edx,ebp	
- sar edx,19	; sstep >>= 16;
- mov ebx,ds:dword ptr[_cachewidth]	
- sar eax,19	; tstep >>= 16;
- jz LIsZero	
- imul eax,ebx	; (tstep >> 16) * cachewidth;
-LIsZero:	
- add eax,edx	; add in sstep
-; (tstep >> 16) * cachewidth + (sstep >> 16);
- mov edx,ds:dword ptr[tfracf]	
- mov ds:dword ptr[advancetable+4],eax	; advance base in t
- add eax,ebx	; ((tstep >> 16) + 1) * cachewidth +
-;  (sstep >> 16);
- shl ebp,13	; left-justify sstep fractional part
- mov ds:dword ptr[sstep],ebp	
- mov ebx,ds:dword ptr[sfracf]	
- shl ecx,13	; left-justify tstep fractional part
- mov ds:dword ptr[advancetable],eax	; advance extra in t
- mov ds:dword ptr[tstep],ecx	
-
- mov ecx,ds:dword ptr[pz]	
- mov ebp,ds:dword ptr[izi]	
-
- cmp bp,ds:word ptr[ecx]	
- jl Lp1	
- mov al,ds:byte ptr[esi]	; get first source texel
- cmp al,offset TRANSPARENT_COLOR	
- jz Lp1	
- mov ds:word ptr[ecx],bp	
- mov ds:byte ptr[edi],al	; store first dest pixel
-Lp1:	
- add ebp,ds:dword ptr[izistep]	
- adc ebp,0	
- add edx,ds:dword ptr[tstep]	; advance tfrac fractional part by tstep frac
-
- sbb eax,eax	; turn tstep carry into -1 (0 if none)
- add ebx,ds:dword ptr[sstep]	; advance sfrac fractional part by sstep frac
- adc esi,ds:dword ptr[advancetable+4+eax*4]	; point to next source texel
-
- cmp bp,ds:word ptr[2+ecx]	
- jl Lp2	
- mov al,ds:byte ptr[esi]	
- cmp al,offset TRANSPARENT_COLOR	
- jz Lp2	
- mov ds:word ptr[2+ecx],bp	
- mov ds:byte ptr[1+edi],al	
-Lp2:	
- add ebp,ds:dword ptr[izistep]	
- adc ebp,0	
- add edx,ds:dword ptr[tstep]	
- sbb eax,eax	
- add ebx,ds:dword ptr[sstep]	
- adc esi,ds:dword ptr[advancetable+4+eax*4]	
-
- cmp bp,ds:word ptr[4+ecx]	
- jl Lp3	
- mov al,ds:byte ptr[esi]	
- cmp al,offset TRANSPARENT_COLOR	
- jz Lp3	
- mov ds:word ptr[4+ecx],bp	
- mov ds:byte ptr[2+edi],al	
-Lp3:	
- add ebp,ds:dword ptr[izistep]	
- adc ebp,0	
- add edx,ds:dword ptr[tstep]	
- sbb eax,eax	
- add ebx,ds:dword ptr[sstep]	
- adc esi,ds:dword ptr[advancetable+4+eax*4]	
-
- cmp bp,ds:word ptr[6+ecx]	
- jl Lp4	
- mov al,ds:byte ptr[esi]	
- cmp al,offset TRANSPARENT_COLOR	
- jz Lp4	
- mov ds:word ptr[6+ecx],bp	
- mov ds:byte ptr[3+edi],al	
-Lp4:	
- add ebp,ds:dword ptr[izistep]	
- adc ebp,0	
- add edx,ds:dword ptr[tstep]	
- sbb eax,eax	
- add ebx,ds:dword ptr[sstep]	
- adc esi,ds:dword ptr[advancetable+4+eax*4]	
-
- cmp bp,ds:word ptr[8+ecx]	
- jl Lp5	
- mov al,ds:byte ptr[esi]	
- cmp al,offset TRANSPARENT_COLOR	
- jz Lp5	
- mov ds:word ptr[8+ecx],bp	
- mov ds:byte ptr[4+edi],al	
-Lp5:	
- add ebp,ds:dword ptr[izistep]	
- adc ebp,0	
- add edx,ds:dword ptr[tstep]	
- sbb eax,eax	
- add ebx,ds:dword ptr[sstep]	
- adc esi,ds:dword ptr[advancetable+4+eax*4]	
-
-;
-; start FDIV for end of next segment in flight, so it can overlap
-;
- pop eax	
- cmp eax,8	; more than one segment after this?
- ja LSetupNotLast2	; yes
-
- dec eax	
- jz LFDIVInFlight2	; if only one pixel, no need to start an FDIV
- mov ds:dword ptr[spancountminus1],eax	
- fild ds:dword ptr[spancountminus1]	
-
- fld ds:dword ptr[_d_zistepu]	; _d_zistepu | spancountminus1
- fmul st(0),st(1)	; _d_zistepu*scm1 | scm1
- fld ds:dword ptr[_d_tdivzstepu]	; _d_tdivzstepu | _d_zistepu*scm1 | scm1
- fmul st(0),st(2)	; _d_tdivzstepu*scm1 | _d_zistepu*scm1 | scm1
- fxch st(1)	; _d_zistepu*scm1 | _d_tdivzstepu*scm1 | scm1
- faddp st(3),st(0)	; _d_tdivzstepu*scm1 | scm1
- fxch st(1)	; scm1 | _d_tdivzstepu*scm1
- fmul ds:dword ptr[_d_sdivzstepu]	; _d_sdivzstepu*scm1 | _d_tdivzstepu*scm1
- fxch st(1)	; _d_tdivzstepu*scm1 | _d_sdivzstepu*scm1
- faddp st(3),st(0)	; _d_sdivzstepu*scm1
- fld ds:dword ptr[fp_64k]	; 64k | _d_sdivzstepu*scm1
- fxch st(1)	; _d_sdivzstepu*scm1 | 64k
- faddp st(4),st(0)	; 64k
-
- fdiv st(0),st(1)	; this is what we've gone to all this trouble to
-;  overlap
- jmp LFDIVInFlight2	
-
- align 4	
-LSetupNotLast2:	
- fadd ds:dword ptr[zi8stepu]	
- fxch st(2)	
- fadd ds:dword ptr[sdivz8stepu]	
- fxch st(2)	
- fld ds:dword ptr[tdivz8stepu]	
- faddp st(2),st(0)	
- fld ds:dword ptr[fp_64k]	
- fdiv st(0),st(1)	; z = 1/1/z
-; this is what we've gone to all this trouble to
-;  overlap
-LFDIVInFlight2:	
- push eax	
-
- cmp bp,ds:word ptr[10+ecx]	
- jl Lp6	
- mov al,ds:byte ptr[esi]	
- cmp al,offset TRANSPARENT_COLOR	
- jz Lp6	
- mov ds:word ptr[10+ecx],bp	
- mov ds:byte ptr[5+edi],al	
-Lp6:	
- add ebp,ds:dword ptr[izistep]	
- adc ebp,0	
- add edx,ds:dword ptr[tstep]	
- sbb eax,eax	
- add ebx,ds:dword ptr[sstep]	
- adc esi,ds:dword ptr[advancetable+4+eax*4]	
-
- cmp bp,ds:word ptr[12+ecx]	
- jl Lp7	
- mov al,ds:byte ptr[esi]	
- cmp al,offset TRANSPARENT_COLOR	
- jz Lp7	
- mov ds:word ptr[12+ecx],bp	
- mov ds:byte ptr[6+edi],al	
-Lp7:	
- add ebp,ds:dword ptr[izistep]	
- adc ebp,0	
- add edx,ds:dword ptr[tstep]	
- sbb eax,eax	
- add ebx,ds:dword ptr[sstep]	
- adc esi,ds:dword ptr[advancetable+4+eax*4]	
-
- cmp bp,ds:word ptr[14+ecx]	
- jl Lp8	
- mov al,ds:byte ptr[esi]	
- cmp al,offset TRANSPARENT_COLOR	
- jz Lp8	
- mov ds:word ptr[14+ecx],bp	
- mov ds:byte ptr[7+edi],al	
-Lp8:	
- add ebp,ds:dword ptr[izistep]	
- adc ebp,0	
- add edx,ds:dword ptr[tstep]	
- sbb eax,eax	
- add ebx,ds:dword ptr[sstep]	
- adc esi,ds:dword ptr[advancetable+4+eax*4]	
-
- add edi,8	
- add ecx,16	
- mov ds:dword ptr[tfracf],edx	
- mov edx,ds:dword ptr[snext]	
- mov ds:dword ptr[sfracf],ebx	
- mov ebx,ds:dword ptr[tnext]	
- mov ds:dword ptr[s],edx	
- mov ds:dword ptr[t],ebx	
-
- mov ds:dword ptr[pz],ecx	
- mov ds:dword ptr[izi],ebp	
-
- pop ecx	; retrieve count
-
-;
-; determine whether last span or not
-;
- cmp ecx,8	; are there multiple segments remaining?
- ja LNotLastSegment	; yes
-
-;
-; last segment of scan
-;
-LLastSegment:	
-
-;
-; advance s/z, t/z, and 1/z, and calculate s & t at end of span and steps to
-; get there. The number of pixels left is variable, and we want to land on the
-; last pixel, not step one past it, so we can't run into arithmetic problems
-;
- test ecx,ecx	
- jz LNoSteps	; just draw the last pixel and we're done
-
-; pick up after the FDIV that was left in flight previously
-
-
- fld st(0)	; duplicate it
- fmul st(0),st(4)	; s = s/z * z
- fxch st(1)	
- fmul st(0),st(3)	; t = t/z * z
- fxch st(1)	
- fistp ds:dword ptr[snext]	
- fistp ds:dword ptr[tnext]	
-
- mov ebx,ds:dword ptr[_tadjust]	
- mov eax,ds:dword ptr[_sadjust]	
-
- add eax,ds:dword ptr[snext]	
- add ebx,ds:dword ptr[tnext]	
-
- mov ebp,ds:dword ptr[_bbextents]	
- mov edx,ds:dword ptr[_bbextentt]	
-
- cmp eax,2048	
- jl LClampLow4	
- cmp eax,ebp	
- ja LClampHigh4	
-LClampReentry4:	
- mov ds:dword ptr[snext],eax	
-
- cmp ebx,2048	
- jl LClampLow5	
- cmp ebx,edx	
- ja LClampHigh5	
-LClampReentry5:	
-
- cmp ecx,1	; don't bother 
- je LOnlyOneStep	; if two pixels in segment, there's only one step,
-;  of the segment length
- sub eax,ds:dword ptr[s]	
- sub ebx,ds:dword ptr[t]	
-
- add eax,eax	; convert to 15.17 format so multiply by 1.31
- add ebx,ebx	;  reciprocal yields 16.48
- imul ds:dword ptr[reciprocal_table-8+ecx*4]	; sstep = (snext - s) / (spancount-1)
- mov ebp,edx	
-
- mov eax,ebx	
- imul ds:dword ptr[reciprocal_table-8+ecx*4]	; tstep = (tnext - t) / (spancount-1)
-
-LSetEntryvec:	
-;
-; set up advancetable
-;
- mov ebx,ds:dword ptr[spr8entryvec_table+ecx*4]	
- mov eax,edx	
- push ebx	; entry point into code for RET later
- mov ecx,ebp	
- sar ecx,16	; sstep >>= 16;
- mov ebx,ds:dword ptr[_cachewidth]	
- sar edx,16	; tstep >>= 16;
- jz LIsZeroLast	
- imul edx,ebx	; (tstep >> 16) * cachewidth;
-LIsZeroLast:	
- add edx,ecx	; add in sstep
-; (tstep >> 16) * cachewidth + (sstep >> 16);
- mov ecx,ds:dword ptr[tfracf]	
- mov ds:dword ptr[advancetable+4],edx	; advance base in t
- add edx,ebx	; ((tstep >> 16) + 1) * cachewidth +
-;  (sstep >> 16);
- shl ebp,16	; left-justify sstep fractional part
- mov ebx,ds:dword ptr[sfracf]	
- shl eax,16	; left-justify tstep fractional part
- mov ds:dword ptr[advancetable],edx	; advance extra in t
-
- mov ds:dword ptr[tstep],eax	
- mov ds:dword ptr[sstep],ebp	
- mov edx,ecx	
-
- mov ecx,ds:dword ptr[pz]	
- mov ebp,ds:dword ptr[izi]	
-
- ret	; jump to the number-of-pixels handler
-
-;----------------------------------------
-
-LNoSteps:	
- mov ecx,ds:dword ptr[pz]	
- sub edi,7	; adjust for hardwired offset
- sub ecx,14	
- jmp LEndSpan	
-
-
-LOnlyOneStep:	
- sub eax,ds:dword ptr[s]	
- sub ebx,ds:dword ptr[t]	
- mov ebp,eax	
- mov edx,ebx	
- jmp LSetEntryvec	
-
-;----------------------------------------
-
- public Spr8Entry2_8	
-Spr8Entry2_8:	
- sub edi,6	; adjust for hardwired offsets
- sub ecx,12	
- mov al,ds:byte ptr[esi]	
- jmp LLEntry2_8	
-
-;----------------------------------------
-
- public Spr8Entry3_8	
-Spr8Entry3_8:	
- sub edi,5	; adjust for hardwired offsets
- sub ecx,10	
- jmp LLEntry3_8	
-
-;----------------------------------------
-
- public Spr8Entry4_8	
-Spr8Entry4_8:	
- sub edi,4	; adjust for hardwired offsets
- sub ecx,8	
- jmp LLEntry4_8	
-
-;----------------------------------------
-
- public Spr8Entry5_8	
-Spr8Entry5_8:	
- sub edi,3	; adjust for hardwired offsets
- sub ecx,6	
- jmp LLEntry5_8	
-
-;----------------------------------------
-
- public Spr8Entry6_8	
-Spr8Entry6_8:	
- sub edi,2	; adjust for hardwired offsets
- sub ecx,4	
- jmp LLEntry6_8	
-
-;----------------------------------------
-
- public Spr8Entry7_8	
-Spr8Entry7_8:	
- dec edi	; adjust for hardwired offsets
- sub ecx,2	
- jmp LLEntry7_8	
-
-;----------------------------------------
-
- public Spr8Entry8_8	
-Spr8Entry8_8:	
- cmp bp,ds:word ptr[ecx]	
- jl Lp9	
- mov al,ds:byte ptr[esi]	
- cmp al,offset TRANSPARENT_COLOR	
- jz Lp9	
- mov ds:word ptr[ecx],bp	
- mov ds:byte ptr[edi],al	
-Lp9:	
- add ebp,ds:dword ptr[izistep]	
- adc ebp,0	
- add edx,ds:dword ptr[tstep]	
- sbb eax,eax	
- add ebx,ds:dword ptr[sstep]	
- adc esi,ds:dword ptr[advancetable+4+eax*4]	
-LLEntry7_8:	
- cmp bp,ds:word ptr[2+ecx]	
- jl Lp10	
- mov al,ds:byte ptr[esi]	
- cmp al,offset TRANSPARENT_COLOR	
- jz Lp10	
- mov ds:word ptr[2+ecx],bp	
- mov ds:byte ptr[1+edi],al	
-Lp10:	
- add ebp,ds:dword ptr[izistep]	
- adc ebp,0	
- add edx,ds:dword ptr[tstep]	
- sbb eax,eax	
- add ebx,ds:dword ptr[sstep]	
- adc esi,ds:dword ptr[advancetable+4+eax*4]	
-LLEntry6_8:	
- cmp bp,ds:word ptr[4+ecx]	
- jl Lp11	
- mov al,ds:byte ptr[esi]	
- cmp al,offset TRANSPARENT_COLOR	
- jz Lp11	
- mov ds:word ptr[4+ecx],bp	
- mov ds:byte ptr[2+edi],al	
-Lp11:	
- add ebp,ds:dword ptr[izistep]	
- adc ebp,0	
- add edx,ds:dword ptr[tstep]	
- sbb eax,eax	
- add ebx,ds:dword ptr[sstep]	
- adc esi,ds:dword ptr[advancetable+4+eax*4]	
-LLEntry5_8:	
- cmp bp,ds:word ptr[6+ecx]	
- jl Lp12	
- mov al,ds:byte ptr[esi]	
- cmp al,offset TRANSPARENT_COLOR	
- jz Lp12	
- mov ds:word ptr[6+ecx],bp	
- mov ds:byte ptr[3+edi],al	
-Lp12:	
- add ebp,ds:dword ptr[izistep]	
- adc ebp,0	
- add edx,ds:dword ptr[tstep]	
- sbb eax,eax	
- add ebx,ds:dword ptr[sstep]	
- adc esi,ds:dword ptr[advancetable+4+eax*4]	
-LLEntry4_8:	
- cmp bp,ds:word ptr[8+ecx]	
- jl Lp13	
- mov al,ds:byte ptr[esi]	
- cmp al,offset TRANSPARENT_COLOR	
- jz Lp13	
- mov ds:word ptr[8+ecx],bp	
- mov ds:byte ptr[4+edi],al	
-Lp13:	
- add ebp,ds:dword ptr[izistep]	
- adc ebp,0	
- add edx,ds:dword ptr[tstep]	
- sbb eax,eax	
- add ebx,ds:dword ptr[sstep]	
- adc esi,ds:dword ptr[advancetable+4+eax*4]	
-LLEntry3_8:	
- cmp bp,ds:word ptr[10+ecx]	
- jl Lp14	
- mov al,ds:byte ptr[esi]	
- cmp al,offset TRANSPARENT_COLOR	
- jz Lp14	
- mov ds:word ptr[10+ecx],bp	
- mov ds:byte ptr[5+edi],al	
-Lp14:	
- add ebp,ds:dword ptr[izistep]	
- adc ebp,0	
- add edx,ds:dword ptr[tstep]	
- sbb eax,eax	
- add ebx,ds:dword ptr[sstep]	
- adc esi,ds:dword ptr[advancetable+4+eax*4]	
-LLEntry2_8:	
- cmp bp,ds:word ptr[12+ecx]	
- jl Lp15	
- mov al,ds:byte ptr[esi]	
- cmp al,offset TRANSPARENT_COLOR	
- jz Lp15	
- mov ds:word ptr[12+ecx],bp	
- mov ds:byte ptr[6+edi],al	
-Lp15:	
- add ebp,ds:dword ptr[izistep]	
- adc ebp,0	
- add edx,ds:dword ptr[tstep]	
- sbb eax,eax	
- add ebx,ds:dword ptr[sstep]	
- adc esi,ds:dword ptr[advancetable+4+eax*4]	
-
-LEndSpan:	
- cmp bp,ds:word ptr[14+ecx]	
- jl Lp16	
- mov al,ds:byte ptr[esi]	; load first texel in segment
- cmp al,offset TRANSPARENT_COLOR	
- jz Lp16	
- mov ds:word ptr[14+ecx],bp	
- mov ds:byte ptr[7+edi],al	
-Lp16:	
-
-;
-; clear s/z, t/z, 1/z from FP stack
-;
- fstp st(0)	
- fstp st(0)	
- fstp st(0)	
-
- pop ebx	; restore spans pointer
-LNextSpan:	
- add ebx,offset sspan_t_size	; point to next span
- mov ecx,ds:dword ptr[sspan_t_count+ebx]	
- cmp ecx,0	; any more spans?
- jg LSpanLoop	; yes
- jz LNextSpan	; yes, but this one's empty
-
- pop ebx	; restore register variables
- pop esi	
- pop edi	
- pop ebp	; restore the caller's stack frame
- ret	
-
-_TEXT ENDS
-endif	; id386
- END
--- a/ref_soft/r_surf8.asm
+++ /dev/null
@@ -1,771 +1,0 @@
- .386P
- .model FLAT
-;
-; surf8.s
-; x86 assembly-language 8 bpp surface block drawing code.
-;
-
-include qasm.inc
-
-if	id386
-
-_DATA SEGMENT	
-
-sb_v dd 0	
-
-_DATA ENDS
-_TEXT SEGMENT	
-
- align 4	
- public _R_Surf8Start	
-_R_Surf8Start:	
-
-;----------------------------------------------------------------------
-; Surface block drawer for mip level 0
-;----------------------------------------------------------------------
-
- align 4	
- public _R_DrawSurfaceBlock8_mip0	
-_R_DrawSurfaceBlock8_mip0:	
- push ebp	; preserve caller's stack frame
- push edi	
- push esi	; preserve register variables
- push ebx	
-
-;		for (v=0 ; v<numvblocks ; v++)
-;		{
- mov ebx,ds:dword ptr[_r_lightptr]	
- mov eax,ds:dword ptr[_r_numvblocks]	
-
- mov ds:dword ptr[sb_v],eax	
- mov edi,ds:dword ptr[_prowdestbase]	
-
- mov esi,ds:dword ptr[_pbasesource]	
-
-Lv_loop_mip0:	
-
-;			lightleft = lightptr[0];
-;			lightright = lightptr[1];
-;			lightdelta = (lightleft - lightright) & 0xFFFFF;
- mov eax,ds:dword ptr[ebx]	; lightleft
- mov edx,ds:dword ptr[4+ebx]	; lightright
-
- mov ebp,eax	
- mov ecx,ds:dword ptr[_r_lightwidth]	
-
- mov ds:dword ptr[_lightright],edx	
- sub ebp,edx	
-
- and ebp,0FFFFFh	
- lea ebx,ds:dword ptr[ebx+ecx*4]	
-
-;			lightptr += lightwidth;
- mov ds:dword ptr[_r_lightptr],ebx	
-
-;			lightleftstep = (lightptr[0] - lightleft) >> blockdivshift;
-;			lightrightstep = (lightptr[1] - lightright) >> blockdivshift;
-;			lightdeltastep = ((lightleftstep - lightrightstep) & 0xFFFFF) |
-;					0xF0000000;
- mov ecx,ds:dword ptr[4+ebx]	; lightptr[1]
- mov ebx,ds:dword ptr[ebx]	; lightptr[0]
-
- sub ebx,eax	
- sub ecx,edx	
-
- sar ecx,4	
- or ebp,0F0000000h	
-
- sar ebx,4	
- mov ds:dword ptr[_lightrightstep],ecx	
-
- sub ebx,ecx	
- and ebx,0FFFFFh	
-
- or ebx,0F0000000h	
- sub ecx,ecx	; high word must be 0 in loop for addressing
-
- mov ds:dword ptr[_lightdeltastep],ebx	
- sub ebx,ebx	; high word must be 0 in loop for addressing
-
-Lblockloop8_mip0:	
- mov ds:dword ptr[_lightdelta],ebp	
- mov cl,ds:byte ptr[14+esi]	
-
- sar ebp,4	
- mov bh,dh	
-
- mov bl,ds:byte ptr[15+esi]	
- add edx,ebp	
-
- mov ch,dh	
- add edx,ebp	
-
- mov ah,ds:byte ptr[12345678h+ebx]	
-LBPatch0:	
- mov bl,ds:byte ptr[13+esi]	
-
- mov al,ds:byte ptr[12345678h+ecx]	
-LBPatch1:	
- mov cl,ds:byte ptr[12+esi]	
-
- mov bh,dh	
- add edx,ebp	
-
- ror eax,16	
- mov ch,dh	
-
- add edx,ebp	
- mov ah,ds:byte ptr[12345678h+ebx]	
-LBPatch2:	
-
- mov bl,ds:byte ptr[11+esi]	
- mov al,ds:byte ptr[12345678h+ecx]	
-LBPatch3:	
-
- mov cl,ds:byte ptr[10+esi]	
- mov ds:dword ptr[12+edi],eax	
-
- mov bh,dh	
- add edx,ebp	
-
- mov ch,dh	
- add edx,ebp	
-
- mov ah,ds:byte ptr[12345678h+ebx]	
-LBPatch4:	
- mov bl,ds:byte ptr[9+esi]	
-
- mov al,ds:byte ptr[12345678h+ecx]	
-LBPatch5:	
- mov cl,ds:byte ptr[8+esi]	
-
- mov bh,dh	
- add edx,ebp	
-
- ror eax,16	
- mov ch,dh	
-
- add edx,ebp	
- mov ah,ds:byte ptr[12345678h+ebx]	
-LBPatch6:	
-
- mov bl,ds:byte ptr[7+esi]	
- mov al,ds:byte ptr[12345678h+ecx]	
-LBPatch7:	
-
- mov cl,ds:byte ptr[6+esi]	
- mov ds:dword ptr[8+edi],eax	
-
- mov bh,dh	
- add edx,ebp	
-
- mov ch,dh	
- add edx,ebp	
-
- mov ah,ds:byte ptr[12345678h+ebx]	
-LBPatch8:	
- mov bl,ds:byte ptr[5+esi]	
-
- mov al,ds:byte ptr[12345678h+ecx]	
-LBPatch9:	
- mov cl,ds:byte ptr[4+esi]	
-
- mov bh,dh	
- add edx,ebp	
-
- ror eax,16	
- mov ch,dh	
-
- add edx,ebp	
- mov ah,ds:byte ptr[12345678h+ebx]	
-LBPatch10:	
-
- mov bl,ds:byte ptr[3+esi]	
- mov al,ds:byte ptr[12345678h+ecx]	
-LBPatch11:	
-
- mov cl,ds:byte ptr[2+esi]	
- mov ds:dword ptr[4+edi],eax	
-
- mov bh,dh	
- add edx,ebp	
-
- mov ch,dh	
- add edx,ebp	
-
- mov ah,ds:byte ptr[12345678h+ebx]	
-LBPatch12:	
- mov bl,ds:byte ptr[1+esi]	
-
- mov al,ds:byte ptr[12345678h+ecx]	
-LBPatch13:	
- mov cl,ds:byte ptr[esi]	
-
- mov bh,dh	
- add edx,ebp	
-
- ror eax,16	
- mov ch,dh	
-
- mov ah,ds:byte ptr[12345678h+ebx]	
-LBPatch14:	
- mov edx,ds:dword ptr[_lightright]	
-
- mov al,ds:byte ptr[12345678h+ecx]	
-LBPatch15:	
- mov ebp,ds:dword ptr[_lightdelta]	
-
- mov ds:dword ptr[edi],eax	
-
- add esi,ds:dword ptr[_sourcetstep]	
- add edi,ds:dword ptr[_surfrowbytes]	
-
- add edx,ds:dword ptr[_lightrightstep]	
- add ebp,ds:dword ptr[_lightdeltastep]	
-
- mov ds:dword ptr[_lightright],edx	
- jc Lblockloop8_mip0	
-
-;			if (pbasesource >= r_sourcemax)
-;				pbasesource -= stepback;
-
- cmp esi,ds:dword ptr[_r_sourcemax]	
- jb LSkip_mip0	
- sub esi,ds:dword ptr[_r_stepback]	
-LSkip_mip0:	
-
- mov ebx,ds:dword ptr[_r_lightptr]	
- dec ds:dword ptr[sb_v]	
-
- jnz Lv_loop_mip0	
-
- pop ebx	; restore register variables
- pop esi	
- pop edi	
- pop ebp	; restore the caller's stack frame
- ret	
-
-
-;----------------------------------------------------------------------
-; Surface block drawer for mip level 1
-;----------------------------------------------------------------------
-
- align 4	
- public _R_DrawSurfaceBlock8_mip1	
-_R_DrawSurfaceBlock8_mip1:	
- push ebp	; preserve caller's stack frame
- push edi	
- push esi	; preserve register variables
- push ebx	
-
-;		for (v=0 ; v<numvblocks ; v++)
-;		{
- mov ebx,ds:dword ptr[_r_lightptr]	
- mov eax,ds:dword ptr[_r_numvblocks]	
-
- mov ds:dword ptr[sb_v],eax	
- mov edi,ds:dword ptr[_prowdestbase]	
-
- mov esi,ds:dword ptr[_pbasesource]	
-
-Lv_loop_mip1:	
-
-;			lightleft = lightptr[0];
-;			lightright = lightptr[1];
-;			lightdelta = (lightleft - lightright) & 0xFFFFF;
- mov eax,ds:dword ptr[ebx]	; lightleft
- mov edx,ds:dword ptr[4+ebx]	; lightright
-
- mov ebp,eax	
- mov ecx,ds:dword ptr[_r_lightwidth]	
-
- mov ds:dword ptr[_lightright],edx	
- sub ebp,edx	
-
- and ebp,0FFFFFh	
- lea ebx,ds:dword ptr[ebx+ecx*4]	
-
-;			lightptr += lightwidth;
- mov ds:dword ptr[_r_lightptr],ebx	
-
-;			lightleftstep = (lightptr[0] - lightleft) >> blockdivshift;
-;			lightrightstep = (lightptr[1] - lightright) >> blockdivshift;
-;			lightdeltastep = ((lightleftstep - lightrightstep) & 0xFFFFF) |
-;					0xF0000000;
- mov ecx,ds:dword ptr[4+ebx]	; lightptr[1]
- mov ebx,ds:dword ptr[ebx]	; lightptr[0]
-
- sub ebx,eax	
- sub ecx,edx	
-
- sar ecx,3	
- or ebp,070000000h	
-
- sar ebx,3	
- mov ds:dword ptr[_lightrightstep],ecx	
-
- sub ebx,ecx	
- and ebx,0FFFFFh	
-
- or ebx,0F0000000h	
- sub ecx,ecx	; high word must be 0 in loop for addressing
-
- mov ds:dword ptr[_lightdeltastep],ebx	
- sub ebx,ebx	; high word must be 0 in loop for addressing
-
-Lblockloop8_mip1:	
- mov ds:dword ptr[_lightdelta],ebp	
- mov cl,ds:byte ptr[6+esi]	
-
- sar ebp,3	
- mov bh,dh	
-
- mov bl,ds:byte ptr[7+esi]	
- add edx,ebp	
-
- mov ch,dh	
- add edx,ebp	
-
- mov ah,ds:byte ptr[12345678h+ebx]	
-LBPatch22:	
- mov bl,ds:byte ptr[5+esi]	
-
- mov al,ds:byte ptr[12345678h+ecx]	
-LBPatch23:	
- mov cl,ds:byte ptr[4+esi]	
-
- mov bh,dh	
- add edx,ebp	
-
- ror eax,16	
- mov ch,dh	
-
- add edx,ebp	
- mov ah,ds:byte ptr[12345678h+ebx]	
-LBPatch24:	
-
- mov bl,ds:byte ptr[3+esi]	
- mov al,ds:byte ptr[12345678h+ecx]	
-LBPatch25:	
-
- mov cl,ds:byte ptr[2+esi]	
- mov ds:dword ptr[4+edi],eax	
-
- mov bh,dh	
- add edx,ebp	
-
- mov ch,dh	
- add edx,ebp	
-
- mov ah,ds:byte ptr[12345678h+ebx]	
-LBPatch26:	
- mov bl,ds:byte ptr[1+esi]	
-
- mov al,ds:byte ptr[12345678h+ecx]	
-LBPatch27:	
- mov cl,ds:byte ptr[esi]	
-
- mov bh,dh	
- add edx,ebp	
-
- ror eax,16	
- mov ch,dh	
-
- mov ah,ds:byte ptr[12345678h+ebx]	
-LBPatch28:	
- mov edx,ds:dword ptr[_lightright]	
-
- mov al,ds:byte ptr[12345678h+ecx]	
-LBPatch29:	
- mov ebp,ds:dword ptr[_lightdelta]	
-
- mov ds:dword ptr[edi],eax	
- mov eax,ds:dword ptr[_sourcetstep]	
-
- add esi,eax	
- mov eax,ds:dword ptr[_surfrowbytes]	
-
- add edi,eax	
- mov eax,ds:dword ptr[_lightrightstep]	
-
- add edx,eax	
- mov eax,ds:dword ptr[_lightdeltastep]	
-
- add ebp,eax	
- mov ds:dword ptr[_lightright],edx	
-
- jc Lblockloop8_mip1	
-
-;			if (pbasesource >= r_sourcemax)
-;				pbasesource -= stepback;
-
- cmp esi,ds:dword ptr[_r_sourcemax]	
- jb LSkip_mip1	
- sub esi,ds:dword ptr[_r_stepback]	
-LSkip_mip1:	
-
- mov ebx,ds:dword ptr[_r_lightptr]	
- dec ds:dword ptr[sb_v]	
-
- jnz Lv_loop_mip1	
-
- pop ebx	; restore register variables
- pop esi	
- pop edi	
- pop ebp	; restore the caller's stack frame
- ret	
-
-
-;----------------------------------------------------------------------
-; Surface block drawer for mip level 2
-;----------------------------------------------------------------------
-
- align 4	
- public _R_DrawSurfaceBlock8_mip2	
-_R_DrawSurfaceBlock8_mip2:	
- push ebp	; preserve caller's stack frame
- push edi	
- push esi	; preserve register variables
- push ebx	
-
-;		for (v=0 ; v<numvblocks ; v++)
-;		{
- mov ebx,ds:dword ptr[_r_lightptr]	
- mov eax,ds:dword ptr[_r_numvblocks]	
-
- mov ds:dword ptr[sb_v],eax	
- mov edi,ds:dword ptr[_prowdestbase]	
-
- mov esi,ds:dword ptr[_pbasesource]	
-
-Lv_loop_mip2:	
-
-;			lightleft = lightptr[0];
-;			lightright = lightptr[1];
-;			lightdelta = (lightleft - lightright) & 0xFFFFF;
- mov eax,ds:dword ptr[ebx]	; lightleft
- mov edx,ds:dword ptr[4+ebx]	; lightright
-
- mov ebp,eax	
- mov ecx,ds:dword ptr[_r_lightwidth]	
-
- mov ds:dword ptr[_lightright],edx	
- sub ebp,edx	
-
- and ebp,0FFFFFh	
- lea ebx,ds:dword ptr[ebx+ecx*4]	
-
-;			lightptr += lightwidth;
- mov ds:dword ptr[_r_lightptr],ebx	
-
-;			lightleftstep = (lightptr[0] - lightleft) >> blockdivshift;
-;			lightrightstep = (lightptr[1] - lightright) >> blockdivshift;
-;			lightdeltastep = ((lightleftstep - lightrightstep) & 0xFFFFF) |
-;					0xF0000000;
- mov ecx,ds:dword ptr[4+ebx]	; lightptr[1]
- mov ebx,ds:dword ptr[ebx]	; lightptr[0]
-
- sub ebx,eax	
- sub ecx,edx	
-
- sar ecx,2	
- or ebp,030000000h	
-
- sar ebx,2	
- mov ds:dword ptr[_lightrightstep],ecx	
-
- sub ebx,ecx	
-
- and ebx,0FFFFFh	
-
- or ebx,0F0000000h	
- sub ecx,ecx	; high word must be 0 in loop for addressing
-
- mov ds:dword ptr[_lightdeltastep],ebx	
- sub ebx,ebx	; high word must be 0 in loop for addressing
-
-Lblockloop8_mip2:	
- mov ds:dword ptr[_lightdelta],ebp	
- mov cl,ds:byte ptr[2+esi]	
-
- sar ebp,2	
- mov bh,dh	
-
- mov bl,ds:byte ptr[3+esi]	
- add edx,ebp	
-
- mov ch,dh	
- add edx,ebp	
-
- mov ah,ds:byte ptr[12345678h+ebx]	
-LBPatch18:	
- mov bl,ds:byte ptr[1+esi]	
-
- mov al,ds:byte ptr[12345678h+ecx]	
-LBPatch19:	
- mov cl,ds:byte ptr[esi]	
-
- mov bh,dh	
- add edx,ebp	
-
- ror eax,16	
- mov ch,dh	
-
- mov ah,ds:byte ptr[12345678h+ebx]	
-LBPatch20:	
- mov edx,ds:dword ptr[_lightright]	
-
- mov al,ds:byte ptr[12345678h+ecx]	
-LBPatch21:	
- mov ebp,ds:dword ptr[_lightdelta]	
-
- mov ds:dword ptr[edi],eax	
- mov eax,ds:dword ptr[_sourcetstep]	
-
- add esi,eax	
- mov eax,ds:dword ptr[_surfrowbytes]	
-
- add edi,eax	
- mov eax,ds:dword ptr[_lightrightstep]	
-
- add edx,eax	
- mov eax,ds:dword ptr[_lightdeltastep]	
-
- add ebp,eax	
- mov ds:dword ptr[_lightright],edx	
-
- jc Lblockloop8_mip2	
-
-;			if (pbasesource >= r_sourcemax)
-;				pbasesource -= stepback;
-
- cmp esi,ds:dword ptr[_r_sourcemax]	
- jb LSkip_mip2	
- sub esi,ds:dword ptr[_r_stepback]	
-LSkip_mip2:	
-
- mov ebx,ds:dword ptr[_r_lightptr]	
- dec ds:dword ptr[sb_v]	
-
- jnz Lv_loop_mip2	
-
- pop ebx	; restore register variables
- pop esi	
- pop edi	
- pop ebp	; restore the caller's stack frame
- ret	
-
-
-;----------------------------------------------------------------------
-; Surface block drawer for mip level 3
-;----------------------------------------------------------------------
-
- align 4	
- public _R_DrawSurfaceBlock8_mip3	
-_R_DrawSurfaceBlock8_mip3:	
- push ebp	; preserve caller's stack frame
- push edi	
- push esi	; preserve register variables
- push ebx	
-
-;		for (v=0 ; v<numvblocks ; v++)
-;		{
- mov ebx,ds:dword ptr[_r_lightptr]	
- mov eax,ds:dword ptr[_r_numvblocks]	
-
- mov ds:dword ptr[sb_v],eax	
- mov edi,ds:dword ptr[_prowdestbase]	
-
- mov esi,ds:dword ptr[_pbasesource]	
-
-Lv_loop_mip3:	
-
-;			lightleft = lightptr[0];
-;			lightright = lightptr[1];
-;			lightdelta = (lightleft - lightright) & 0xFFFFF;
- mov eax,ds:dword ptr[ebx]	; lightleft
- mov edx,ds:dword ptr[4+ebx]	; lightright
-
- mov ebp,eax	
- mov ecx,ds:dword ptr[_r_lightwidth]	
-
- mov ds:dword ptr[_lightright],edx	
- sub ebp,edx	
-
- and ebp,0FFFFFh	
- lea ebx,ds:dword ptr[ebx+ecx*4]	
-
- mov ds:dword ptr[_lightdelta],ebp	
-;			lightptr += lightwidth;
- mov ds:dword ptr[_r_lightptr],ebx	
-
-;			lightleftstep = (lightptr[0] - lightleft) >> blockdivshift;
-;			lightrightstep = (lightptr[1] - lightright) >> blockdivshift;
-;			lightdeltastep = ((lightleftstep - lightrightstep) & 0xFFFFF) |
-;					0xF0000000;
- mov ecx,ds:dword ptr[4+ebx]	; lightptr[1]
- mov ebx,ds:dword ptr[ebx]	; lightptr[0]
-
- sub ebx,eax	
- sub ecx,edx	
-
- sar ecx,1	
-
- sar ebx,1	
- mov ds:dword ptr[_lightrightstep],ecx	
-
- sub ebx,ecx	
- and ebx,0FFFFFh	
-
- sar ebp,1	
- or ebx,0F0000000h	
-
- mov ds:dword ptr[_lightdeltastep],ebx	
- sub ebx,ebx	; high word must be 0 in loop for addressing
-
- mov bl,ds:byte ptr[1+esi]	
- sub ecx,ecx	; high word must be 0 in loop for addressing
-
- mov bh,dh	
- mov cl,ds:byte ptr[esi]	
-
- add edx,ebp	
- mov ch,dh	
-
- mov al,ds:byte ptr[12345678h+ebx]	
-LBPatch16:	
- mov edx,ds:dword ptr[_lightright]	
-
- mov ds:byte ptr[1+edi],al	
- mov al,ds:byte ptr[12345678h+ecx]	
-LBPatch17:	
-
- mov ds:byte ptr[edi],al	
- mov eax,ds:dword ptr[_sourcetstep]	
-
- add esi,eax	
- mov eax,ds:dword ptr[_surfrowbytes]	
-
- add edi,eax	
- mov eax,ds:dword ptr[_lightdeltastep]	
-
- mov ebp,ds:dword ptr[_lightdelta]	
- mov cl,ds:byte ptr[esi]	
-
- add ebp,eax	
- mov eax,ds:dword ptr[_lightrightstep]	
-
- sar ebp,1	
- add edx,eax	
-
- mov bh,dh	
- mov bl,ds:byte ptr[1+esi]	
-
- add edx,ebp	
- mov ch,dh	
-
- mov al,ds:byte ptr[12345678h+ebx]	
-LBPatch30:	
- mov edx,ds:dword ptr[_sourcetstep]	
-
- mov ds:byte ptr[1+edi],al	
- mov al,ds:byte ptr[12345678h+ecx]	
-LBPatch31:	
-
- mov ds:byte ptr[edi],al	
- mov ebp,ds:dword ptr[_surfrowbytes]	
-
- add esi,edx	
- add edi,ebp	
-
-;			if (pbasesource >= r_sourcemax)
-;				pbasesource -= stepback;
-
- cmp esi,ds:dword ptr[_r_sourcemax]	
- jb LSkip_mip3	
- sub esi,ds:dword ptr[_r_stepback]	
-LSkip_mip3:	
-
- mov ebx,ds:dword ptr[_r_lightptr]	
- dec ds:dword ptr[sb_v]	
-
- jnz Lv_loop_mip3	
-
- pop ebx	; restore register variables
- pop esi	
- pop edi	
- pop ebp	; restore the caller's stack frame
- ret	
-
-
- public _R_Surf8End	
-_R_Surf8End:	
-
-;----------------------------------------------------------------------
-; Code patching routines
-;----------------------------------------------------------------------
-_TEXT ENDS
-_DATA SEGMENT	
-
- align 4	
-LPatchTable8:	
- dd LBPatch0-4	
- dd LBPatch1-4	
- dd LBPatch2-4	
- dd LBPatch3-4	
- dd LBPatch4-4	
- dd LBPatch5-4	
- dd LBPatch6-4	
- dd LBPatch7-4	
- dd LBPatch8-4	
- dd LBPatch9-4	
- dd LBPatch10-4	
- dd LBPatch11-4	
- dd LBPatch12-4	
- dd LBPatch13-4	
- dd LBPatch14-4	
- dd LBPatch15-4	
- dd LBPatch16-4	
- dd LBPatch17-4	
- dd LBPatch18-4	
- dd LBPatch19-4	
- dd LBPatch20-4	
- dd LBPatch21-4	
- dd LBPatch22-4	
- dd LBPatch23-4	
- dd LBPatch24-4	
- dd LBPatch25-4	
- dd LBPatch26-4	
- dd LBPatch27-4	
- dd LBPatch28-4	
- dd LBPatch29-4	
- dd LBPatch30-4	
- dd LBPatch31-4	
-
-_DATA ENDS
-_TEXT SEGMENT	
-
- align 4	
- public _R_Surf8Patch	
-_R_Surf8Patch:	
- push ebx	
-
- mov eax,ds:dword ptr[_colormap]	
- mov ebx,offset LPatchTable8
- mov ecx,32	
-LPatchLoop8:	
- mov edx,ds:dword ptr[ebx]	
- add ebx,4	
- mov ds:dword ptr[edx],eax	
- dec ecx	
- jnz LPatchLoop8	
-
- pop ebx	
-
- ret	
-
-_TEXT ENDS
-endif	;id386
-
- END
-
--- a/ref_soft/r_varsa.asm
+++ /dev/null
@@ -1,220 +1,0 @@
- .386P
- .model FLAT
-;
-; d_varsa.s
-;
-
-include qasm.inc
-include d_if.inc
-
-if	id386
-
-_DATA SEGMENT	
-
-;-------------------------------------------------------
-; ASM-only variables
-;-------------------------------------------------------
- public float_1, float_particle_z_clip, float_point5	
- public float_minus_1, float_0	
-float_0 dd 0.0	
-float_1 dd 1.0	
-float_minus_1 dd -1.0	
-float_particle_z_clip dd PARTICLE_Z_CLIP	
-float_point5 dd 0.5	
-
- public fp_16, fp_64k, fp_1m, fp_64kx64k	
- public fp_1m_minus_1	
- public fp_8	
-fp_1m dd 1048576.0	
-fp_1m_minus_1 dd 1048575.0	
-fp_64k dd 65536.0	
-fp_8 dd 8.0	
-fp_16 dd 16.0	
-fp_64kx64k dd 04f000000h	; (float)0x8000*0x10000
-
-
- public FloatZero, Float2ToThe31nd, FloatMinus2ToThe31nd	
-FloatZero dd 0	
-Float2ToThe31nd dd 04f000000h	
-FloatMinus2ToThe31nd dd 0cf000000h	
-
- public _r_bmodelactive	
-_r_bmodelactive dd 0	
-
-
-;-------------------------------------------------------
-; global refresh variables
-;-------------------------------------------------------
-
-; FIXME: put all refresh variables into one contiguous block. Make into one
-; big structure, like cl or sv?
-
- align 4	
- public _d_sdivzstepu	
- public _d_tdivzstepu	
- public _d_zistepu	
- public _d_sdivzstepv	
- public _d_tdivzstepv	
- public _d_zistepv	
- public _d_sdivzorigin	
- public _d_tdivzorigin	
- public _d_ziorigin	
-_d_sdivzstepu dd 0	
-_d_tdivzstepu dd 0	
-_d_zistepu dd 0	
-_d_sdivzstepv dd 0	
-_d_tdivzstepv dd 0	
-_d_zistepv dd 0	
-_d_sdivzorigin dd 0	
-_d_tdivzorigin dd 0	
-_d_ziorigin dd 0	
-
- public _sadjust	
- public _tadjust	
- public _bbextents	
- public _bbextentt	
-_sadjust dd 0	
-_tadjust dd 0	
-_bbextents dd 0	
-_bbextentt dd 0	
-
- public _cacheblock	
- public _d_viewbuffer	
- public _cachewidth	
- public _d_pzbuffer	
- public _d_zrowbytes	
- public _d_zwidth	
-_cacheblock dd 0	
-_cachewidth dd 0	
-_d_viewbuffer dd 0	
-_d_pzbuffer dd 0	
-_d_zrowbytes dd 0	
-_d_zwidth dd 0	
-
-
-;-------------------------------------------------------
-; ASM-only variables
-;-------------------------------------------------------
- public izi	
-izi dd 0	
-
- public pbase, s, t, sfracf, tfracf, snext, tnext	
- public spancountminus1, zi16stepu, sdivz16stepu, tdivz16stepu	
- public zi8stepu, sdivz8stepu, tdivz8stepu, pz	
-s dd 0	
-t dd 0	
-snext dd 0	
-tnext dd 0	
-sfracf dd 0	
-tfracf dd 0	
-pbase dd 0	
-zi8stepu dd 0	
-sdivz8stepu dd 0	
-tdivz8stepu dd 0	
-zi16stepu dd 0	
-sdivz16stepu dd 0	
-tdivz16stepu dd 0	
-spancountminus1 dd 0	
-pz dd 0	
-
- public izistep	
-izistep dd 0	
-
-;-------------------------------------------------------
-; local variables for d_draw16.s
-;-------------------------------------------------------
-
- public reciprocal_table_16, entryvec_table_16	
-; 1/2, 1/3, 1/4, 1/5, 1/6, 1/7, 1/8, 1/9, 1/10, 1/11, 1/12, 1/13,
-; 1/14, and 1/15 in 0.32 form
-reciprocal_table_16 dd 040000000h, 02aaaaaaah, 020000000h	
- dd 019999999h, 015555555h, 012492492h	
- dd 010000000h, 0e38e38eh, 0ccccccch, 0ba2e8bah	
- dd 0aaaaaaah, 09d89d89h, 09249249h, 08888888h	
-
- externdef Entry2_16:dword	
- externdef Entry3_16:dword	
- externdef Entry4_16:dword	
- externdef Entry5_16:dword	
- externdef Entry6_16:dword	
- externdef Entry7_16:dword	
- externdef Entry8_16:dword	
- externdef Entry9_16:dword	
- externdef Entry10_16:dword	
- externdef Entry11_16:dword	
- externdef Entry12_16:dword	
- externdef Entry13_16:dword	
- externdef Entry14_16:dword	
- externdef Entry15_16:dword	
- externdef Entry16_16:dword	
-
-entryvec_table_16 dd 0, Entry2_16, Entry3_16, Entry4_16	
- dd Entry5_16, Entry6_16, Entry7_16, Entry8_16	
- dd Entry9_16, Entry10_16, Entry11_16, Entry12_16	
- dd Entry13_16, Entry14_16, Entry15_16, Entry16_16	
-
-;-------------------------------------------------------
-; local variables for d_parta.s
-;-------------------------------------------------------
- public DP_Count, DP_u, DP_v, DP_32768, DP_Color, DP_Pix
-DP_Count dd 0	
-DP_u dd 0	
-DP_v dd 0	
-DP_32768 dd 32768.0	
-DP_Color dd 0	
-DP_Pix dd 0	
-
-
-;externdef DP_1x1:dword	
-;externdef DP_2x2:dword	
-;externdef DP_3x3:dword	
-;externdef DP_4x4:dword	
-
-;DP_EntryTable dd DP_1x1, DP_2x2, DP_3x3, DP_4x4	
-
-;
-; advancetable is 8 bytes, but points to the middle of that range so negative
-; offsets will work
-;
- public advancetable, sstep, tstep, pspantemp, counttemp, jumptemp	
-advancetable dd 0, 0	
-sstep dd 0	
-tstep dd 0	
-
-pspantemp dd 0	
-counttemp dd 0	
-jumptemp dd 0	
-
-; 1/2, 1/3, 1/4, 1/5, 1/6, and 1/7 in 0.32 form
-; public reciprocal_table, entryvec_table	
-reciprocal_table dd 040000000h, 02aaaaaaah, 020000000h	
- dd 019999999h, 015555555h, 012492492h	
-
-
-; externdef Entry2_8:dword	
-; externdef Entry3_8:dword	
-; externdef Entry4_8:dword	
-; externdef Entry5_8:dword	
-; externdef Entry6_8:dword	
-; externdef Entry7_8:dword	
-; externdef Entry8_8:dword	
-
-;entryvec_table dd 0, Entry2_8, Entry3_8, Entry4_8	
-; dd Entry5_8, Entry6_8, Entry7_8, Entry8_8	
-
- externdef Spr8Entry2_8:dword	
- externdef Spr8Entry3_8:dword	
- externdef Spr8Entry4_8:dword	
- externdef Spr8Entry5_8:dword	
- externdef Spr8Entry6_8:dword	
- externdef Spr8Entry7_8:dword	
- externdef Spr8Entry8_8:dword	
-
- public spr8entryvec_table	
-spr8entryvec_table dd 0, Spr8Entry2_8, Spr8Entry3_8, Spr8Entry4_8	
- dd Spr8Entry5_8, Spr8Entry6_8, Spr8Entry7_8, Spr8Entry8_8	
-
-
-_DATA ENDS
-endif	; id386
- END
--- a/ref_soft/ref_soft.001
+++ /dev/null
@@ -1,1498 +1,0 @@
-# Microsoft Developer Studio Project File - Name="ref_soft" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 5.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-# TARGTYPE "Win32 (ALPHA) Dynamic-Link Library" 0x0602
-
-CFG=ref_soft - Win32 Debug Alpha
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE 
-!MESSAGE NMAKE /f "ref_soft.mak".
-!MESSAGE 
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE 
-!MESSAGE NMAKE /f "ref_soft.mak" CFG="ref_soft - Win32 Debug Alpha"
-!MESSAGE 
-!MESSAGE Possible choices for configuration are:
-!MESSAGE 
-!MESSAGE "ref_soft - Win32 Release" (based on\
- "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "ref_soft - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "ref_soft - Win32 Debug Alpha" (based on\
- "Win32 (ALPHA) Dynamic-Link Library")
-!MESSAGE "ref_soft - Win32 Release Alpha" (based on\
- "Win32 (ALPHA) Dynamic-Link Library")
-!MESSAGE 
-
-# Begin Project
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-
-!IF  "$(CFG)" == "ref_soft - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir ".\ref_soft"
-# PROP BASE Intermediate_Dir ".\ref_soft"
-# PROP BASE Target_Dir "."
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "..\release"
-# PROP Intermediate_Dir ".\release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir "."
-CPP=cl.exe
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /c
-# ADD CPP /nologo /G5 /MT /W4 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /c
-MTL=midl.exe
-# ADD BASE MTL /nologo /D "NDEBUG" /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-RSC=rc.exe
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winmm.lib /nologo /subsystem:windows /dll /machine:I386
-# SUBTRACT LINK32 /debug
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir ".\ref_soft"
-# PROP BASE Intermediate_Dir ".\ref_soft"
-# PROP BASE Target_Dir "."
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "..\debug"
-# PROP Intermediate_Dir ".\debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir "."
-CPP=cl.exe
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c
-# ADD CPP /nologo /G5 /MTd /W3 /Gm /GX /Zi /Od /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /FR /YX /FD /c
-MTL=midl.exe
-# ADD BASE MTL /nologo /D "_DEBUG" /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-RSC=rc.exe
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winmm.lib /nologo /subsystem:windows /dll /incremental:no /map /debug /machine:I386 /nodefaultlib:"libc"
-# SUBTRACT LINK32 /profile /nodefaultlib
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug Alpha"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug Alpha"
-# PROP BASE Intermediate_Dir "Debug Alpha"
-# PROP BASE Ignore_Export_Lib 0
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "..\DebugAxp"
-# PROP Intermediate_Dir ".\DebugAxp"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-MTL=midl.exe
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32
-CPP=cl.exe
-# ADD BASE CPP /nologo /MTd /Gt0 /W3 /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /QA21164 /MTd /Gt0 /W3 /GX /Zi /Od /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "C_ONLY" /YX /FD /QAieee1 /c
-RSC=rc.exe
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 winmm.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:windows /dll /debug /machine:ALPHA /nodefaultlib:"libc"
-# SUBTRACT BASE LINK32 /nodefaultlib
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winmm.lib /nologo /subsystem:windows /dll /debug /machine:ALPHA /nodefaultlib:"libc"
-# SUBTRACT LINK32 /nodefaultlib
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Release Alpha"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "ref_soft"
-# PROP BASE Intermediate_Dir "ref_soft"
-# PROP BASE Ignore_Export_Lib 0
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "..\ReleaseAXP"
-# PROP Intermediate_Dir ".\ReleaseAXP"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-MTL=midl.exe
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o NUL /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o NUL /win32
-CPP=cl.exe
-# ADD BASE CPP /nologo /MT /Gt0 /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /QA21164 /MT /Gt0 /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "C_ONLY" /YX /FD /QAieee1 /c
-# SUBTRACT CPP /Z<none> /Fr
-RSC=rc.exe
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:windows /dll /machine:ALPHA
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winmm.lib /nologo /subsystem:windows /dll /machine:ALPHA
-# SUBTRACT LINK32 /debug
-
-!ENDIF 
-
-# Begin Target
-
-# Name "ref_soft - Win32 Release"
-# Name "ref_soft - Win32 Debug"
-# Name "ref_soft - Win32 Debug Alpha"
-# Name "ref_soft - Win32 Release Alpha"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90"
-# Begin Source File
-
-SOURCE=..\game\q_shared.c
-
-!IF  "$(CFG)" == "ref_soft - Win32 Release"
-
-DEP_CPP_Q_SHA=\
-	"..\game\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug Alpha"
-
-DEP_CPP_Q_SHA=\
-	"..\game\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Release Alpha"
-
-DEP_CPP_Q_SHA=\
-	"..\game\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=..\win32\q_shwin.c
-
-!IF  "$(CFG)" == "ref_soft - Win32 Release"
-
-DEP_CPP_Q_SHW=\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	"..\win32\winquake.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug Alpha"
-
-DEP_CPP_Q_SHW=\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	"..\win32\winquake.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Release Alpha"
-
-DEP_CPP_Q_SHW=\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	"..\win32\winquake.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\r_aclip.c
-
-!IF  "$(CFG)" == "ref_soft - Win32 Release"
-
-DEP_CPP_R_ACL=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug Alpha"
-
-DEP_CPP_R_ACL=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Release Alpha"
-
-DEP_CPP_R_ACL=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\r_aclipa.asm
-
-!IF  "$(CFG)" == "ref_soft - Win32 Release"
-
-# Begin Custom Build
-OutDir=.\..\release
-InputPath=.\r_aclipa.asm
-InputName=r_aclipa
-
-"$(OUTDIR)\$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
-	ml /c /Cp /coff /Fo$(OUTDIR)\$(InputName).obj /Zm /Zi $(InputPath)
-
-# End Custom Build
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug"
-
-# Begin Custom Build
-OutDir=.\..\debug
-InputPath=.\r_aclipa.asm
-InputName=r_aclipa
-
-"$(OUTDIR)\$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
-	ml /c /Cp /coff /Fo$(OUTDIR)\$(InputName).obj /Zm /Zi $(InputPath)
-
-# End Custom Build
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug Alpha"
-
-# PROP Exclude_From_Build 1
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Release Alpha"
-
-# PROP Exclude_From_Build 1
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\r_alias.c
-
-!IF  "$(CFG)" == "ref_soft - Win32 Release"
-
-DEP_CPP_R_ALI=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\anorms.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug Alpha"
-
-DEP_CPP_R_ALI=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\anorms.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Release Alpha"
-
-DEP_CPP_R_ALI=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\anorms.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\r_bsp.c
-
-!IF  "$(CFG)" == "ref_soft - Win32 Release"
-
-DEP_CPP_R_BSP=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug Alpha"
-
-DEP_CPP_R_BSP=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Release Alpha"
-
-DEP_CPP_R_BSP=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\r_draw.c
-
-!IF  "$(CFG)" == "ref_soft - Win32 Release"
-
-DEP_CPP_R_DRA=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug Alpha"
-
-DEP_CPP_R_DRA=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Release Alpha"
-
-DEP_CPP_R_DRA=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\r_draw16.asm
-
-!IF  "$(CFG)" == "ref_soft - Win32 Release"
-
-# Begin Custom Build
-OutDir=.\..\release
-InputPath=.\r_draw16.asm
-InputName=r_draw16
-
-"$(OUTDIR)\$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
-	ml /c /Cp /coff /Fo$(OUTDIR)\$(InputName).obj /Zm /Zi $(InputPath)
-
-# End Custom Build
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug"
-
-# Begin Custom Build
-OutDir=.\..\debug
-InputPath=.\r_draw16.asm
-InputName=r_draw16
-
-"$(OUTDIR)\$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
-	ml /c /Cp /coff /Fo$(OUTDIR)\$(InputName).obj /Zm /Zi $(InputPath)
-
-# End Custom Build
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug Alpha"
-
-# PROP Exclude_From_Build 1
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Release Alpha"
-
-# PROP Exclude_From_Build 1
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\r_drawa.asm
-
-!IF  "$(CFG)" == "ref_soft - Win32 Release"
-
-# Begin Custom Build
-OutDir=.\..\release
-InputPath=.\r_drawa.asm
-InputName=r_drawa
-
-"$(OUTDIR)\$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
-	ml /c /Cp /coff /Fo$(OUTDIR)\$(InputName).obj /Zm /Zi $(InputPath)
-
-# End Custom Build
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug"
-
-# Begin Custom Build
-OutDir=.\..\debug
-InputPath=.\r_drawa.asm
-InputName=r_drawa
-
-"$(OUTDIR)\$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
-	ml /c /Cp /coff /Fo$(OUTDIR)\$(InputName).obj /Zm /Zi $(InputPath)
-
-# End Custom Build
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug Alpha"
-
-# PROP Exclude_From_Build 1
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Release Alpha"
-
-# PROP Exclude_From_Build 1
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\r_edge.c
-
-!IF  "$(CFG)" == "ref_soft - Win32 Release"
-
-DEP_CPP_R_EDG=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug Alpha"
-
-DEP_CPP_R_EDG=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Release Alpha"
-
-DEP_CPP_R_EDG=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\r_edgea.asm
-
-!IF  "$(CFG)" == "ref_soft - Win32 Release"
-
-# Begin Custom Build
-OutDir=.\..\release
-InputPath=.\r_edgea.asm
-InputName=r_edgea
-
-"$(OUTDIR)\$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
-	ml /c /Cp /coff /Fo$(OUTDIR)\$(InputName).obj /Zm /Zi $(InputPath)
-
-# End Custom Build
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug"
-
-# Begin Custom Build
-OutDir=.\..\debug
-InputPath=.\r_edgea.asm
-InputName=r_edgea
-
-"$(OUTDIR)\$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
-	ml /c /Cp /coff /Fo$(OUTDIR)\$(InputName).obj /Zm /Zi $(InputPath)
-
-# End Custom Build
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug Alpha"
-
-# PROP Exclude_From_Build 1
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Release Alpha"
-
-# PROP Exclude_From_Build 1
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\r_image.c
-
-!IF  "$(CFG)" == "ref_soft - Win32 Release"
-
-DEP_CPP_R_IMA=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug Alpha"
-
-DEP_CPP_R_IMA=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Release Alpha"
-
-DEP_CPP_R_IMA=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\r_light.c
-
-!IF  "$(CFG)" == "ref_soft - Win32 Release"
-
-DEP_CPP_R_LIG=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug Alpha"
-
-DEP_CPP_R_LIG=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Release Alpha"
-
-DEP_CPP_R_LIG=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\r_main.c
-
-!IF  "$(CFG)" == "ref_soft - Win32 Release"
-
-DEP_CPP_R_MAI=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug Alpha"
-
-DEP_CPP_R_MAI=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Release Alpha"
-
-DEP_CPP_R_MAI=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\r_misc.c
-
-!IF  "$(CFG)" == "ref_soft - Win32 Release"
-
-DEP_CPP_R_MIS=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug Alpha"
-
-DEP_CPP_R_MIS=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Release Alpha"
-
-DEP_CPP_R_MIS=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\r_model.c
-
-!IF  "$(CFG)" == "ref_soft - Win32 Release"
-
-DEP_CPP_R_MOD=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug Alpha"
-
-DEP_CPP_R_MOD=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Release Alpha"
-
-DEP_CPP_R_MOD=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\r_part.c
-
-!IF  "$(CFG)" == "ref_soft - Win32 Release"
-
-DEP_CPP_R_PAR=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug Alpha"
-
-DEP_CPP_R_PAR=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Release Alpha"
-
-DEP_CPP_R_PAR=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\r_poly.c
-
-!IF  "$(CFG)" == "ref_soft - Win32 Release"
-
-DEP_CPP_R_POL=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug Alpha"
-
-DEP_CPP_R_POL=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Release Alpha"
-
-DEP_CPP_R_POL=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\r_polysa.asm
-
-!IF  "$(CFG)" == "ref_soft - Win32 Release"
-
-# Begin Custom Build
-OutDir=.\..\release
-InputPath=.\r_polysa.asm
-InputName=r_polysa
-
-"$(OUTDIR)\$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
-	ml /c /Cp /coff /Fo$(OUTDIR)\$(InputName).obj /Zm /Zi $(InputPath)
-
-# End Custom Build
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug"
-
-# Begin Custom Build
-OutDir=.\..\debug
-InputPath=.\r_polysa.asm
-InputName=r_polysa
-
-"$(OUTDIR)\$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
-	ml /c /Cp /coff /Fo$(OUTDIR)\$(InputName).obj /Zm /Zi $(InputPath)
-
-# End Custom Build
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug Alpha"
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Release Alpha"
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\r_polyse.c
-
-!IF  "$(CFG)" == "ref_soft - Win32 Release"
-
-DEP_CPP_R_POLY=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\adivtab.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	".\rand1k.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug Alpha"
-
-DEP_CPP_R_POLY=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\adivtab.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	".\rand1k.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Release Alpha"
-
-DEP_CPP_R_POLY=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\adivtab.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	".\rand1k.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\r_rast.c
-
-!IF  "$(CFG)" == "ref_soft - Win32 Release"
-
-DEP_CPP_R_RAS=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug Alpha"
-
-DEP_CPP_R_RAS=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Release Alpha"
-
-DEP_CPP_R_RAS=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\r_scan.c
-
-!IF  "$(CFG)" == "ref_soft - Win32 Release"
-
-DEP_CPP_R_SCA=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug Alpha"
-
-DEP_CPP_R_SCA=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Release Alpha"
-
-DEP_CPP_R_SCA=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\r_scana.asm
-
-!IF  "$(CFG)" == "ref_soft - Win32 Release"
-
-# Begin Custom Build
-OutDir=.\..\release
-InputPath=.\r_scana.asm
-InputName=r_scana
-
-"$(OUTDIR)\$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
-	ml /c /Cp /coff /Fo$(OUTDIR)\$(InputName).obj /Zm /Zi $(InputPath)
-
-# End Custom Build
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug"
-
-# Begin Custom Build
-OutDir=.\..\debug
-InputPath=.\r_scana.asm
-InputName=r_scana
-
-"$(OUTDIR)\$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
-	ml /c /Cp /coff /Fo$(OUTDIR)\$(InputName).obj /Zm /Zi $(InputPath)
-
-# End Custom Build
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug Alpha"
-
-# PROP Exclude_From_Build 1
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Release Alpha"
-
-# PROP Exclude_From_Build 1
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\r_spr8.asm
-
-!IF  "$(CFG)" == "ref_soft - Win32 Release"
-
-# Begin Custom Build
-OutDir=.\..\release
-InputPath=.\r_spr8.asm
-InputName=r_spr8
-
-"$(OUTDIR)\$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
-	ml /c /Cp /coff /Fo$(OUTDIR)\$(InputName).obj /Zm /Zi $(InputPath)
-
-# End Custom Build
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug"
-
-# Begin Custom Build
-OutDir=.\..\debug
-InputPath=.\r_spr8.asm
-InputName=r_spr8
-
-"$(OUTDIR)\$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
-	ml /c /Cp /coff /Fo$(OUTDIR)\$(InputName).obj /Zm /Zi $(InputPath)
-
-# End Custom Build
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug Alpha"
-
-# PROP Exclude_From_Build 1
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Release Alpha"
-
-# PROP Exclude_From_Build 1
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\r_sprite.c
-
-!IF  "$(CFG)" == "ref_soft - Win32 Release"
-
-DEP_CPP_R_SPR=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug Alpha"
-
-DEP_CPP_R_SPR=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Release Alpha"
-
-DEP_CPP_R_SPR=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\r_surf.c
-
-!IF  "$(CFG)" == "ref_soft - Win32 Release"
-
-DEP_CPP_R_SUR=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug Alpha"
-
-DEP_CPP_R_SUR=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Release Alpha"
-
-DEP_CPP_R_SUR=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\r_surf8.asm
-
-!IF  "$(CFG)" == "ref_soft - Win32 Release"
-
-# Begin Custom Build
-OutDir=.\..\release
-InputPath=.\r_surf8.asm
-InputName=r_surf8
-
-"$(OUTDIR)\$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
-	ml /c /Cp /coff /Fo$(OUTDIR)\$(InputName).obj /Zm /Zi $(InputPath)
-
-# End Custom Build
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug"
-
-# Begin Custom Build
-OutDir=.\..\debug
-InputPath=.\r_surf8.asm
-InputName=r_surf8
-
-"$(OUTDIR)\$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
-	ml /c /Cp /coff /Fo$(OUTDIR)\$(InputName).obj /Zm /Zi $(InputPath)
-
-# End Custom Build
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug Alpha"
-
-# PROP Exclude_From_Build 1
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Release Alpha"
-
-# PROP Exclude_From_Build 1
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\r_varsa.asm
-
-!IF  "$(CFG)" == "ref_soft - Win32 Release"
-
-# Begin Custom Build
-OutDir=.\..\release
-InputPath=.\r_varsa.asm
-InputName=r_varsa
-
-"$(OUTDIR)\$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
-	ml /c /Cp /coff /Fo$(OUTDIR)\$(InputName).obj /Zm /Zi $(InputPath)
-
-# End Custom Build
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug"
-
-# Begin Custom Build
-OutDir=.\..\debug
-InputPath=.\r_varsa.asm
-InputName=r_varsa
-
-"$(OUTDIR)\$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
-	ml /c /Cp /coff /Fo$(OUTDIR)\$(InputName).obj /Zm /Zi $(InputPath)
-
-# End Custom Build
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug Alpha"
-
-# PROP Exclude_From_Build 1
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Release Alpha"
-
-# PROP Exclude_From_Build 1
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=..\win32\rw_ddraw.c
-
-!IF  "$(CFG)" == "ref_soft - Win32 Release"
-
-DEP_CPP_RW_DD=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	"..\win32\rw_win.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug Alpha"
-
-DEP_CPP_RW_DD=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	"..\win32\rw_win.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Release Alpha"
-
-DEP_CPP_RW_DD=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	"..\win32\rw_win.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=..\win32\rw_dib.c
-
-!IF  "$(CFG)" == "ref_soft - Win32 Release"
-
-DEP_CPP_RW_DI=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	"..\win32\rw_win.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug Alpha"
-
-DEP_CPP_RW_DI=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	"..\win32\rw_win.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Release Alpha"
-
-DEP_CPP_RW_DI=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	"..\win32\rw_win.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=..\win32\rw_imp.c
-
-!IF  "$(CFG)" == "ref_soft - Win32 Release"
-
-DEP_CPP_RW_IM=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	"..\win32\rw_win.h"\
-	"..\win32\winquake.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug Alpha"
-
-DEP_CPP_RW_IM=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	"..\win32\rw_win.h"\
-	"..\win32\winquake.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Release Alpha"
-
-DEP_CPP_RW_IM=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	"..\win32\rw_win.h"\
-	"..\win32\winquake.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl;fi;fd"
-# Begin Source File
-
-SOURCE=.\adivtab.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\anorms.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\game\q_shared.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\qcommon\qcommon.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\qcommon\qfiles.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\r_local.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\r_model.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\rand1k.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\client\ref.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\win32\rw_win.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\win32\winquake.h
-# End Source File
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe"
-# Begin Source File
-
-SOURCE=.\ref_soft.def
-# End Source File
-# End Group
-# End Target
-# End Project
--- a/ref_soft/ref_soft.def
+++ /dev/null
@@ -1,2 +1,0 @@
-EXPORTS
-	GetRefAPI
--- a/ref_soft/ref_soft.dsp
+++ /dev/null
@@ -1,1496 +1,0 @@
-# Microsoft Developer Studio Project File - Name="ref_soft" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-# TARGTYPE "Win32 (ALPHA) Dynamic-Link Library" 0x0602
-
-CFG=ref_soft - Win32 Debug Alpha
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE 
-!MESSAGE NMAKE /f "ref_soft.mak".
-!MESSAGE 
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE 
-!MESSAGE NMAKE /f "ref_soft.mak" CFG="ref_soft - Win32 Debug Alpha"
-!MESSAGE 
-!MESSAGE Possible choices for configuration are:
-!MESSAGE 
-!MESSAGE "ref_soft - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "ref_soft - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "ref_soft - Win32 Debug Alpha" (based on "Win32 (ALPHA) Dynamic-Link Library")
-!MESSAGE "ref_soft - Win32 Release Alpha" (based on "Win32 (ALPHA) Dynamic-Link Library")
-!MESSAGE 
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-
-!IF  "$(CFG)" == "ref_soft - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir ".\ref_soft"
-# PROP BASE Intermediate_Dir ".\ref_soft"
-# PROP BASE Target_Dir "."
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "..\release"
-# PROP Intermediate_Dir ".\release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir "."
-CPP=cl.exe
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /c
-# ADD CPP /nologo /G5 /MT /W4 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /c
-MTL=midl.exe
-# ADD BASE MTL /nologo /D "NDEBUG" /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-RSC=rc.exe
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winmm.lib /nologo /subsystem:windows /dll /machine:I386
-# SUBTRACT LINK32 /debug
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir ".\ref_soft"
-# PROP BASE Intermediate_Dir ".\ref_soft"
-# PROP BASE Target_Dir "."
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "..\debug"
-# PROP Intermediate_Dir ".\debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir "."
-CPP=cl.exe
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c
-# ADD CPP /nologo /G5 /MTd /W3 /Gm /GX /ZI /Od /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /FR /YX /FD /c
-MTL=midl.exe
-# ADD BASE MTL /nologo /D "_DEBUG" /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-RSC=rc.exe
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winmm.lib /nologo /subsystem:windows /dll /incremental:no /map /debug /machine:I386 /nodefaultlib:"libc"
-# SUBTRACT LINK32 /profile /nodefaultlib
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug Alpha"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug Alpha"
-# PROP BASE Intermediate_Dir "Debug Alpha"
-# PROP BASE Ignore_Export_Lib 0
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "..\DebugAxp"
-# PROP Intermediate_Dir ".\DebugAxp"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-CPP=cl.exe
-# ADD BASE CPP /nologo /MTd /Gt0 /W3 /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /QA21164 /MTd /Gt0 /W3 /GX /Zi /Od /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "C_ONLY" /YX /FD /QAieee1 /c
-MTL=midl.exe
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
-RSC=rc.exe
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 winmm.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:windows /dll /debug /machine:ALPHA /nodefaultlib:"libc"
-# SUBTRACT BASE LINK32 /nodefaultlib
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winmm.lib /nologo /subsystem:windows /dll /debug /machine:ALPHA /nodefaultlib:"libc"
-# SUBTRACT LINK32 /nodefaultlib
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Release Alpha"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "ref_soft"
-# PROP BASE Intermediate_Dir "ref_soft"
-# PROP BASE Ignore_Export_Lib 0
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "..\ReleaseAXP"
-# PROP Intermediate_Dir ".\ReleaseAXP"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-CPP=cl.exe
-# ADD BASE CPP /nologo /MT /Gt0 /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /QA21164 /MT /Gt0 /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "C_ONLY" /YX /FD /QAieee1 /c
-# SUBTRACT CPP /Z<none> /Fr
-MTL=midl.exe
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
-RSC=rc.exe
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:windows /dll /machine:ALPHA
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winmm.lib /nologo /subsystem:windows /dll /machine:ALPHA
-# SUBTRACT LINK32 /debug
-
-!ENDIF 
-
-# Begin Target
-
-# Name "ref_soft - Win32 Release"
-# Name "ref_soft - Win32 Debug"
-# Name "ref_soft - Win32 Debug Alpha"
-# Name "ref_soft - Win32 Release Alpha"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90"
-# Begin Source File
-
-SOURCE=..\game\q_shared.c
-
-!IF  "$(CFG)" == "ref_soft - Win32 Release"
-
-DEP_CPP_Q_SHA=\
-	"..\game\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug Alpha"
-
-DEP_CPP_Q_SHA=\
-	"..\game\q_shared.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Release Alpha"
-
-DEP_CPP_Q_SHA=\
-	"..\game\q_shared.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=..\win32\q_shwin.c
-
-!IF  "$(CFG)" == "ref_soft - Win32 Release"
-
-DEP_CPP_Q_SHW=\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	"..\win32\winquake.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug Alpha"
-
-DEP_CPP_Q_SHW=\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	"..\win32\winquake.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Release Alpha"
-
-DEP_CPP_Q_SHW=\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	"..\win32\winquake.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\r_aclip.c
-
-!IF  "$(CFG)" == "ref_soft - Win32 Release"
-
-DEP_CPP_R_ACL=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug Alpha"
-
-DEP_CPP_R_ACL=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Release Alpha"
-
-DEP_CPP_R_ACL=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\r_aclipa.asm
-
-!IF  "$(CFG)" == "ref_soft - Win32 Release"
-
-# Begin Custom Build
-OutDir=.\..\release
-InputPath=.\r_aclipa.asm
-InputName=r_aclipa
-
-"$(OUTDIR)\$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
-	ml /c /Cp /coff /Fo$(OUTDIR)\$(InputName).obj /Zm /Zi $(InputPath)
-
-# End Custom Build
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug"
-
-# Begin Custom Build
-OutDir=.\..\debug
-InputPath=.\r_aclipa.asm
-InputName=r_aclipa
-
-"$(OUTDIR)\$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
-	ml /c /Cp /coff /Fo$(OUTDIR)\$(InputName).obj /Zm /Zi $(InputPath)
-
-# End Custom Build
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug Alpha"
-
-# PROP Exclude_From_Build 1
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Release Alpha"
-
-# PROP Exclude_From_Build 1
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\r_alias.c
-
-!IF  "$(CFG)" == "ref_soft - Win32 Release"
-
-DEP_CPP_R_ALI=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\anorms.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug Alpha"
-
-DEP_CPP_R_ALI=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\anorms.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Release Alpha"
-
-DEP_CPP_R_ALI=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\anorms.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\r_bsp.c
-
-!IF  "$(CFG)" == "ref_soft - Win32 Release"
-
-DEP_CPP_R_BSP=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug Alpha"
-
-DEP_CPP_R_BSP=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Release Alpha"
-
-DEP_CPP_R_BSP=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\r_draw.c
-
-!IF  "$(CFG)" == "ref_soft - Win32 Release"
-
-DEP_CPP_R_DRA=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug Alpha"
-
-DEP_CPP_R_DRA=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Release Alpha"
-
-DEP_CPP_R_DRA=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\r_draw16.asm
-
-!IF  "$(CFG)" == "ref_soft - Win32 Release"
-
-# Begin Custom Build
-OutDir=.\..\release
-InputPath=.\r_draw16.asm
-InputName=r_draw16
-
-"$(OUTDIR)\$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
-	ml /c /Cp /coff /Fo$(OUTDIR)\$(InputName).obj /Zm /Zi $(InputPath)
-
-# End Custom Build
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug"
-
-# Begin Custom Build
-OutDir=.\..\debug
-InputPath=.\r_draw16.asm
-InputName=r_draw16
-
-"$(OUTDIR)\$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
-	ml /c /Cp /coff /Fo$(OUTDIR)\$(InputName).obj /Zm /Zi $(InputPath)
-
-# End Custom Build
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug Alpha"
-
-# PROP Exclude_From_Build 1
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Release Alpha"
-
-# PROP Exclude_From_Build 1
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\r_drawa.asm
-
-!IF  "$(CFG)" == "ref_soft - Win32 Release"
-
-# Begin Custom Build
-OutDir=.\..\release
-InputPath=.\r_drawa.asm
-InputName=r_drawa
-
-"$(OUTDIR)\$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
-	ml /c /Cp /coff /Fo$(OUTDIR)\$(InputName).obj /Zm /Zi $(InputPath)
-
-# End Custom Build
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug"
-
-# Begin Custom Build
-OutDir=.\..\debug
-InputPath=.\r_drawa.asm
-InputName=r_drawa
-
-"$(OUTDIR)\$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
-	ml /c /Cp /coff /Fo$(OUTDIR)\$(InputName).obj /Zm /Zi $(InputPath)
-
-# End Custom Build
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug Alpha"
-
-# PROP Exclude_From_Build 1
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Release Alpha"
-
-# PROP Exclude_From_Build 1
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\r_edge.c
-
-!IF  "$(CFG)" == "ref_soft - Win32 Release"
-
-DEP_CPP_R_EDG=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug Alpha"
-
-DEP_CPP_R_EDG=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Release Alpha"
-
-DEP_CPP_R_EDG=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\r_edgea.asm
-
-!IF  "$(CFG)" == "ref_soft - Win32 Release"
-
-# Begin Custom Build
-OutDir=.\..\release
-InputPath=.\r_edgea.asm
-InputName=r_edgea
-
-"$(OUTDIR)\$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
-	ml /c /Cp /coff /Fo$(OUTDIR)\$(InputName).obj /Zm /Zi $(InputPath)
-
-# End Custom Build
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug"
-
-# Begin Custom Build
-OutDir=.\..\debug
-InputPath=.\r_edgea.asm
-InputName=r_edgea
-
-"$(OUTDIR)\$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
-	ml /c /Cp /coff /Fo$(OUTDIR)\$(InputName).obj /Zm /Zi $(InputPath)
-
-# End Custom Build
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug Alpha"
-
-# PROP Exclude_From_Build 1
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Release Alpha"
-
-# PROP Exclude_From_Build 1
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\r_image.c
-
-!IF  "$(CFG)" == "ref_soft - Win32 Release"
-
-DEP_CPP_R_IMA=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug Alpha"
-
-DEP_CPP_R_IMA=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Release Alpha"
-
-DEP_CPP_R_IMA=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\r_light.c
-
-!IF  "$(CFG)" == "ref_soft - Win32 Release"
-
-DEP_CPP_R_LIG=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug Alpha"
-
-DEP_CPP_R_LIG=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Release Alpha"
-
-DEP_CPP_R_LIG=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\r_main.c
-
-!IF  "$(CFG)" == "ref_soft - Win32 Release"
-
-DEP_CPP_R_MAI=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug Alpha"
-
-DEP_CPP_R_MAI=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Release Alpha"
-
-DEP_CPP_R_MAI=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\r_misc.c
-
-!IF  "$(CFG)" == "ref_soft - Win32 Release"
-
-DEP_CPP_R_MIS=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug Alpha"
-
-DEP_CPP_R_MIS=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Release Alpha"
-
-DEP_CPP_R_MIS=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\r_model.c
-
-!IF  "$(CFG)" == "ref_soft - Win32 Release"
-
-DEP_CPP_R_MOD=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug Alpha"
-
-DEP_CPP_R_MOD=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Release Alpha"
-
-DEP_CPP_R_MOD=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\r_part.c
-
-!IF  "$(CFG)" == "ref_soft - Win32 Release"
-
-DEP_CPP_R_PAR=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug Alpha"
-
-DEP_CPP_R_PAR=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Release Alpha"
-
-DEP_CPP_R_PAR=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\r_poly.c
-
-!IF  "$(CFG)" == "ref_soft - Win32 Release"
-
-DEP_CPP_R_POL=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug Alpha"
-
-DEP_CPP_R_POL=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Release Alpha"
-
-DEP_CPP_R_POL=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\r_polysa.asm
-
-!IF  "$(CFG)" == "ref_soft - Win32 Release"
-
-# Begin Custom Build
-OutDir=.\..\release
-InputPath=.\r_polysa.asm
-InputName=r_polysa
-
-"$(OUTDIR)\$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
-	ml /c /Cp /coff /Fo$(OUTDIR)\$(InputName).obj /Zm /Zi $(InputPath)
-
-# End Custom Build
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug"
-
-# Begin Custom Build
-OutDir=.\..\debug
-InputPath=.\r_polysa.asm
-InputName=r_polysa
-
-"$(OUTDIR)\$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
-	ml /c /Cp /coff /Fo$(OUTDIR)\$(InputName).obj /Zm /Zi $(InputPath)
-
-# End Custom Build
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug Alpha"
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Release Alpha"
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\r_polyse.c
-
-!IF  "$(CFG)" == "ref_soft - Win32 Release"
-
-DEP_CPP_R_POLY=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\adivtab.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	".\rand1k.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug Alpha"
-
-DEP_CPP_R_POLY=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\adivtab.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	".\rand1k.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Release Alpha"
-
-DEP_CPP_R_POLY=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\adivtab.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	".\rand1k.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\r_rast.c
-
-!IF  "$(CFG)" == "ref_soft - Win32 Release"
-
-DEP_CPP_R_RAS=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug Alpha"
-
-DEP_CPP_R_RAS=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Release Alpha"
-
-DEP_CPP_R_RAS=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\r_scan.c
-
-!IF  "$(CFG)" == "ref_soft - Win32 Release"
-
-DEP_CPP_R_SCA=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug Alpha"
-
-DEP_CPP_R_SCA=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Release Alpha"
-
-DEP_CPP_R_SCA=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\r_scana.asm
-
-!IF  "$(CFG)" == "ref_soft - Win32 Release"
-
-# Begin Custom Build
-OutDir=.\..\release
-InputPath=.\r_scana.asm
-InputName=r_scana
-
-"$(OUTDIR)\$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
-	ml /c /Cp /coff /Fo$(OUTDIR)\$(InputName).obj /Zm /Zi $(InputPath)
-
-# End Custom Build
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug"
-
-# Begin Custom Build
-OutDir=.\..\debug
-InputPath=.\r_scana.asm
-InputName=r_scana
-
-"$(OUTDIR)\$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
-	ml /c /Cp /coff /Fo$(OUTDIR)\$(InputName).obj /Zm /Zi $(InputPath)
-
-# End Custom Build
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug Alpha"
-
-# PROP Exclude_From_Build 1
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Release Alpha"
-
-# PROP Exclude_From_Build 1
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\r_spr8.asm
-
-!IF  "$(CFG)" == "ref_soft - Win32 Release"
-
-# Begin Custom Build
-OutDir=.\..\release
-InputPath=.\r_spr8.asm
-InputName=r_spr8
-
-"$(OUTDIR)\$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
-	ml /c /Cp /coff /Fo$(OUTDIR)\$(InputName).obj /Zm /Zi $(InputPath)
-
-# End Custom Build
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug"
-
-# Begin Custom Build
-OutDir=.\..\debug
-InputPath=.\r_spr8.asm
-InputName=r_spr8
-
-"$(OUTDIR)\$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
-	ml /c /Cp /coff /Fo$(OUTDIR)\$(InputName).obj /Zm /Zi $(InputPath)
-
-# End Custom Build
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug Alpha"
-
-# PROP Exclude_From_Build 1
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Release Alpha"
-
-# PROP Exclude_From_Build 1
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\r_sprite.c
-
-!IF  "$(CFG)" == "ref_soft - Win32 Release"
-
-DEP_CPP_R_SPR=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug Alpha"
-
-DEP_CPP_R_SPR=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Release Alpha"
-
-DEP_CPP_R_SPR=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\r_surf.c
-
-!IF  "$(CFG)" == "ref_soft - Win32 Release"
-
-DEP_CPP_R_SUR=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug Alpha"
-
-DEP_CPP_R_SUR=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Release Alpha"
-
-DEP_CPP_R_SUR=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\r_surf8.asm
-
-!IF  "$(CFG)" == "ref_soft - Win32 Release"
-
-# Begin Custom Build
-OutDir=.\..\release
-InputPath=.\r_surf8.asm
-InputName=r_surf8
-
-"$(OUTDIR)\$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
-	ml /c /Cp /coff /Fo$(OUTDIR)\$(InputName).obj /Zm /Zi $(InputPath)
-
-# End Custom Build
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug"
-
-# Begin Custom Build
-OutDir=.\..\debug
-InputPath=.\r_surf8.asm
-InputName=r_surf8
-
-"$(OUTDIR)\$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
-	ml /c /Cp /coff /Fo$(OUTDIR)\$(InputName).obj /Zm /Zi $(InputPath)
-
-# End Custom Build
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug Alpha"
-
-# PROP Exclude_From_Build 1
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Release Alpha"
-
-# PROP Exclude_From_Build 1
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\r_varsa.asm
-
-!IF  "$(CFG)" == "ref_soft - Win32 Release"
-
-# Begin Custom Build
-OutDir=.\..\release
-InputPath=.\r_varsa.asm
-InputName=r_varsa
-
-"$(OUTDIR)\$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
-	ml /c /Cp /coff /Fo$(OUTDIR)\$(InputName).obj /Zm /Zi $(InputPath)
-
-# End Custom Build
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug"
-
-# Begin Custom Build
-OutDir=.\..\debug
-InputPath=.\r_varsa.asm
-InputName=r_varsa
-
-"$(OUTDIR)\$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
-	ml /c /Cp /coff /Fo$(OUTDIR)\$(InputName).obj /Zm /Zi $(InputPath)
-
-# End Custom Build
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug Alpha"
-
-# PROP Exclude_From_Build 1
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Release Alpha"
-
-# PROP Exclude_From_Build 1
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=..\win32\rw_ddraw.c
-
-!IF  "$(CFG)" == "ref_soft - Win32 Release"
-
-DEP_CPP_RW_DD=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	"..\win32\rw_win.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug Alpha"
-
-DEP_CPP_RW_DD=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	"..\win32\rw_win.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Release Alpha"
-
-DEP_CPP_RW_DD=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	"..\win32\rw_win.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=..\win32\rw_dib.c
-
-!IF  "$(CFG)" == "ref_soft - Win32 Release"
-
-DEP_CPP_RW_DI=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	"..\win32\rw_win.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug Alpha"
-
-DEP_CPP_RW_DI=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	"..\win32\rw_win.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Release Alpha"
-
-DEP_CPP_RW_DI=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	"..\win32\rw_win.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=..\win32\rw_imp.c
-
-!IF  "$(CFG)" == "ref_soft - Win32 Release"
-
-DEP_CPP_RW_IM=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	"..\win32\rw_win.h"\
-	"..\win32\winquake.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Debug Alpha"
-
-DEP_CPP_RW_IM=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	"..\win32\rw_win.h"\
-	"..\win32\winquake.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ELSEIF  "$(CFG)" == "ref_soft - Win32 Release Alpha"
-
-DEP_CPP_RW_IM=\
-	"..\client\ref.h"\
-	"..\game\q_shared.h"\
-	"..\qcommon\qcommon.h"\
-	"..\qcommon\qfiles.h"\
-	"..\win32\rw_win.h"\
-	"..\win32\winquake.h"\
-	".\r_local.h"\
-	".\r_model.h"\
-	
-
-!ENDIF 
-
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl;fi;fd"
-# Begin Source File
-
-SOURCE=.\adivtab.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\anorms.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\game\q_shared.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\qcommon\qcommon.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\qcommon\qfiles.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\r_local.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\r_model.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\rand1k.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\client\ref.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\win32\rw_win.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\win32\winquake.h
-# End Source File
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe"
-# Begin Source File
-
-SOURCE=.\ref_soft.def
-# End Source File
-# End Group
-# End Target
-# End Project
--- a/ref_soft/ref_soft.plg
+++ /dev/null
@@ -1,17 +1,0 @@
---------------------Configuration: ref_soft - Win32 Release Alpha--------------------
-Begining build with project "G:\quake2\code\ref_soft\ref_soft.dsp", at root.
-Active configuration is Win32 (ALPHA) Dynamic-Link Library (based on Win32 (ALPHA) Dynamic-Link Library)
-
-Project's tools are:
-			"OLE Type Library Maker" with flags "/nologo /D "NDEBUG" /mktyplib203 /o NUL /win32 "
-			"C/C++ Compiler for Alpha" with flags "/nologo /QA21164 /MT /Gt0 /W3 /GX /Zi /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "C_ONLY" /Fp".\ReleaseAXP/ref_soft.pch" /YX /Fo".\ReleaseAXP/" /Fd".\ReleaseAXP/" /FD /QAieee1 /c "
-			"Win32 Resource Compiler" with flags "/l 0x409 /d "NDEBUG" "
-			"Browser Database Maker" with flags "/nologo /o"..\ReleaseAXP/ref_soft.bsc" "
-			"COFF Linker for Alpha" with flags "kernel32.lib user32.lib gdi32.lib winmm.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"..\ReleaseAXP/ref_soft.pdb" /debug /machine:ALPHA /def:".\ref_soft.def" /out:"..\ReleaseAXP/ref_soft.dll" /implib:"..\ReleaseAXP/ref_soft.lib" "
-			"Custom Build" with flags ""
-			"<Component 0xa>" with flags ""
-
-
-
-
-ref_soft.dll - 0 error(s), 0 warning(s)
--- a/server/sv_null.c
+++ /dev/null
@@ -1,15 +1,0 @@
-// sv_null.c -- this file can stub out the entire server system
-// for pure net-only clients
-
-void SV_Init (void)
-{
-}
-
-void SV_Shutdown (char *finalmsg, qboolean reconnect)
-{
-}
-
-void SV_Frame (float time)
-{
-}
-