Here is the current trunk ChangeLog:

Changes in SG 1.2
***** CHANGES ****
- engine source synchronized with ioQuake3 SDK
- merged many enhancements by TheDoctor (To be detailed)
- Replaced cg_musicVolume with s_musicFading new engine cvar handling, so the
  game doesn't force the config to be write each time music volume is fading-in
  or fading-out. This avoid to hurt a little the system performance when player
  is listening Smokin'Guns in-game music as the config was written as often as
  FPS times by seconds. Also fading volume is now only set 10 times by seconds max.
Changes in SG 1.1
***** CHANGES ****
- engine source synchronized with ioQuake3 SDK rev1774
- Added support to new autorecord demo mode where demo filename is not output to
  the screen: set cl_autoRecordDemo to 2 to use it
- Fixed a bug related to gatling, thanks to Barto for the reporting
- Enhanced SDK portability
- Added getenv trap for future use
- Added support for chat messages area with 6 new cvars:
  - cg_chatTime: time to keep a line in the area in seconds (default 3s)
  - cg_chatHeight: Area height in lines (default is 3, max is 8)
  - cg_chatWidth: Area width in chars (default is 50, max is 79)
  - cg_chatBigText: When set area chars are just doubled in size (default to 0)
  - cg_chatMode: integer to set the chat area mod
    - when set to 0, the default: Chat area is disabled and chat message are
      just displayed like in SG 1.0
    - when set to 1: Chat area is enabled for every chat messages
    - when set to 2: Only team chat are displayed in chat area, normal chat
      messages are not displayed. This is like cg_teamChatsOnly in vanilla Q3.
  - cg_chatPosition:
    - when set to 0, the default: Chat area is put at the bottom left, just above
      the 6th pistol ammo when player is fighting in akimbo mode
    - when set to 1: Chat area is put at the top left, just below the normal
      console notification area
    - when set to 2: Chat area is put at the bottom center, just above the main
      hud. In that case, player may need to lower cg_chatWidth if cg_BigText is
      also set.
- Added 'tell' server side command to authorize admins to tell privately to player
  This command is based on the UrbanTerror 4.1 implementation, thanks guys.
- Added ui_farclip cvar to be used as farclip management facility for UI part
- Fixed another bad prediction case when cg_boostfps is set
- Fixed old minor OpenGL error which prevented to debug easily FBO enhancement
- Added rotating feature to func_train
- Added sine "pendulum style" rotation to func_rotating
- Number of curve's subdivisions has been raised to improve visual quality
- Added to system/graphics menu an entry for far-clipping, map Level Of Detail, and curves details
- Now falling damage are progressive
- Allow to customize shaders instruction "tcgen environment", now:
        - "tcgen environment_X" use X-axis (the default, same as "tcgen environment")
        - "tcgen environment_Y" use Y-axis
        - "tcgen environment_Z" use Z-axis (this one could be really usefull for reflecting water)
        - "tcgen customEnvironment ( vector ) ( normal_weight_vector )" use a custom projection vector,
                and set custom weight for normals
                tcgen environment == tcgen customEnvironment ( 1 0 0 ) ( 2 2 2 )
                Interesting value for normal_weight_vector are
                        * ( 0 0 0 ) for a skybox-like environment map
                        * ( 2 2 2 ) for the default Q3 environment map
                        * ( 4 4 4 ) for an environment map with more deformation
- Limit raised for shaders:
        - up to 5 deformVertex (was 3)
        - up to 5 tcMod (was 4)
        - up to 24 animMap image (was 8)
- Added new command for admins and admin-bot:
        - "clientid" display a table with ID, IP, GUID and name for all player
        - "clientstatus" the same but more verbose (ping, rate, ...), client related info
        - "playerstatus" list all players with various game related info (ID, name, Score,
                Kill, Death, TeamKill, SelfKill, RoB, HitPoint, $money$, TeaM, Time, Muted)
- The console now log "teamkilled" in red letter rather than "killed" when this event occurs
- New Minilog feature, for admin-bots usage. This is a small FIFO stack (128 entries). Older entries
        will be overwritten if not pop'ed in time. The new commands:
                - "poponelog" pop an entry out of the minilog
                - "poplog" pop all entries out of the minilog
        ATM the game engine write into it the current events: MAP, CONNECT, DISCONNECT, JOIN, HIT,
- New client command "secret" (no rcon needed) that add silently an entry "SECRET" to the minilog,
        can be usefull for registering to a third party admin-bot, ...
- New command: "mute <client ID>", that change anything that this client try to say into "(muted)",
        mute it twice and everything he says would be silently drop. Use "unmute <client ID>"
        to restore his voice.
- New command "kicknum <client ID> [reason]", a replacement for clientkick.
        The reason is sent to the client.
- New command "givemoney <client ID> <amount>" that give someone some gold, can be usefull for
        third party RCON script.
- New command "giveitem <client ID> <item classname>" that give someone some item, can be usefull for
        third party RCON script.
- New command "forceteamnum <client ID> <team>", same than "forceteam" except it accept a client ID
        rather than a name, it's more reliable and more usefull for RCON script, also, it doesn't
        allow you to do silly things, like "forceteam" does. Team can be red/lawmen (the 1st team),
        blue/outlaws (the 2nd team), spec/spectator, or join/auto (to force auto-team).
- Fixed bug of auto-team (dead spectators now count as part of the team)
- New cvar g_voteMinLevelTime: you can't call a vote before this time (in seconds) has passed.
- New cvar g_voteDelay: you have to wait this time after you called a vote to call another one.
- New cvar g_maxVote: maximum number of vote someone could call.
- New cvar g_maxMoney: customize the maximum money (default value: 200)
- "/callvote kick" should not be bugged anymore, since it is converted to /kicknum internally.
- "/callvote clientkick <client ID>" is deprecated, use "/callvote kicknum <client ID> [reason]" instead.
- You can now use "/callvote mute <player name>" and "/callvote unmute <player name>", note that
        unlike /mute and /unmute, it use the player's name, not the client's ID (but it is converted
        in ID internally, so renaming wont allow one to escape).
- Muted player cannot call a vote
Changes in SG 1.1b4-20100116
***** CHANGES ****
- engine source synchronized with ioQuake3 SDK rev1771
- Enhanced SDK portability
- Player will be kicked if he is trying to rename when he was proposed to be kicked
- Enhanced callvote command security
- Player names are now colorized in lists like "callvote kick" list to avoid name confusion
- Fixed a bad prediction case when cg_boostfps is set
- Fixed simultaneous reloading bug in akimbo mode
- Added new command 'addentity', it can be used to test misc_externalentity or any map entity
- Added support for misc_externalmodel map entity, thanks to World Of Padman project
- Fixed bug where having a scoped Sharps in your inventory caused double spread for the other rifles, and the gatling.
- Added close clipping feature for mappers
- Update & authorize servers are now served by domain, thanks to L3th4l
- Added support to in-game lagometer setting cg_lagometer to 2
- Enhanced Smokin'Guns motd support
- Added SDK tool for modders
- Fixed cvar type for cg_bob* cvars
- Fix GLSL program loading for custom FBO effects when more than one program is loaded from files
Changes in SG 1.1b3-20091210
***** CHANGES ****
- engine source synchronized with ioQuake3 SDK rev1754
- Added a custom resolution
 - Mode 19: 1280x720 (16:9 HD), suitable to provide youtube HD format video
- support UI item to select OpenAL device from available OpenAL devices
- support new console aspects, thanks to Conq idea. Added 5 cvars to control it:
  - cl_consoleType: "0" classic wooden wall texture, "1" color
  - cl_consoleRed: from 0.0 to 1.0, the red component for the color console
  - cl_consoleGreen: from 0.0 to 1.0, the green conponent for the color console
  - cl_consoleBlue: from 0.0 to 1.0, the blue component for the color console
  - cl_consoleTransparency: from 0.0 to 1.0, the alpha component or transparency for any kind of console
- support new server cvars:
  - g_startingWeapon to set which weapon player will own at startup (default "2" for remington pistol)
  - g_startingMoney to set how much money player will get during startup (default "20")
  - g_bulletDamageMode to change between bullet damage mode, support values:
    - 0: same formula than Smokin'Guns 1.0, the default
    - 1: new advanced linear formula proposed by tequila tuable with following cvars:
         - g_bulletDamageALDRmidrangefactor: must be between 1 and 10, default 2
         - g_bulletDamageALDRmidpointfactor: must be between 0 and 1, default 0.66
         - g_bulletDamageALDRminifactor: must be between 0 and 1, default 0.5
  - g_bulletDamageAlert: the percentage from which clients will receive warning
    because their damage was reduced. Default is "25" %. Useful with g_bulletDamageMode set to 1
- support new values with client game cg_hitmsg cvar:
  - cg_hitmsg can be set to the minimum percentage you want to see when being alerted
    by server with reduced damage due to high range hit. Default is still 1, but
    you won't receive alert lower than the server limit (see g_bulletDamageAlert)
    And you may want to set it to 100 to disable damage reduction alerts.
- Added FBO support with rotoscope and bloom effects, thanks to initial Gord Allott work
  See for some details
  Then enhanced GLSL program loading support for frambuffer (FBO) effects
- Added support for cl_voipDefaultGain cvar, thanks to Tremfusion team
- Fixed SDL window icon to Smokin'Guns one
Changes in SG 1.1b2-20091103
***** CHANGES ****
- renaming can be discarded to players trying to rename themselves too often
  if g_splitChat is activated and g_delayedRenaming is set to a delay in seconds (default=20)
- support for showing who is the VoIP speaker and default voip gain, thanks to tremfusion team:
  - Thanks Mercury and Amanieu
  - Added cl_voipShowSender and cl_voipSenderPos cvar:
    - cl_voipShowSender must be set
    - cl_voipSenderPos can be set from 0 to 5 to choose where the sender will be shown on the screen
  - Added cl_voipDefaultGain to help tuning voip
- support for shooter_dynamite and shooter_molotov map entities
- Doors won't try to move players now
- Fix rotating door comportement when blocked
Changes in SG 1.1b1-20091019
******* NEW ******
- Added more custom resolution, to be set using +set r_mode mode_number
 - Mode 12: 1280x800 (wide)
 - Mode 13: 1366x768 (wide)
 - Mode 14: 1440x900 (wide)
 - Mode 15: 1680x1050 (wide)
 - Mode 16: 1920x1080 (wide)
 - Mode 17: 1920x1200 (wide)
 - Mode 18: 2560x1600 (wide)
- Add DEFAULT_BASEDIR support for packagers:
 - you have to export DEFAULT_BASEDIR from the shell before to do a make
- new shotgun pattern (needs "g_exp_shotgunpattern 1") more uniform, and with homogenous radial density
- new money system (needs "g_moneyrespawn 1")
- customize teamrole in BR by setting cvar br_teamrole to 0 (default, winner defend next round), 1 (winner are robbers next round),
        2 (outlaws are always robbers), 3 (lawmen are always robbers) or 4 (robbers and defenders swap at every new round)
- the player who rob the bank now get one point, this is customizable by admin through the cvar: g_robber_reward (value between 0 and 5)
- far-clipping (with a bunch of clipping-form) support for func_static entity, come with additionnal cvar:
        cg_farclip to turn on/off this feature (default: on), cg_farclip_value to scale it up (default: 1, value lesser than 1
        are ignored - for cheat protection), and cg_farclip_zoomvalue for the sharp's zoom mode (default: 3, again: value
        lesser than 1 are ignored)
- new g_roundNoMoveTime cvar, in seconds, to force players to not move at round beginning, only buying is possible during that time
- new TK handling cvars g_maxteamkills,g_teamkillsforgettime and g_teamkillschecktime when g_friendlyFire is set:
 - g_maxteamkills, set to 0 disable max TK checks, otherwise defines the maximum number of supported TK by a player
 - g_teamkillsforgettime, in seconds, defines the time after which TK count will be reset to 0 for the player
 - g_teamkillschecktime, in seconds, defines the time during which TK will be checked at only round beginning
- new renderer cvar to activate OpenGL texture MultiSampling: r_ext_multisample. You really need a good video card to use it.
 - Thanks to ioQuake3 team for r_ext_multisample cvar
- new server console commands "bigtext" and "cp" to authorize server admins to display big message. A client number can be used
  as first argument to only display the messsage to a given client.
- show colorized players name in players list
- new "sendaway" command as replacement of "kick" command, it is now used for "callvote kick"
- renaming to empty name, to 'all' or to 'allbots' is not allowed
- renaming is now allowed only one time by minute
- New cvars from ioQ3 updates:
  - s_muteWhenUnfocused to mute sound when unfocused (default=0)
  - r_allowResize to allow window resizing in windowed rendering mode (default=0), only with SDL support
- Thanks to ioQ3, passed rcon commands are logged
- callvote string is logged in server log
- new "cancelvote" server side command, can only be used by admins
- support for more crosshair
*** CHANGES ***
- Reloading bug fixed
- Fix game crash during game load when using cgame binary library
- Fix server not hitting time limit when only bots are playing (thanks to ioQ3 code engine)
- Fix cinematic rendering with wide screens (thanks to ioQ3 code engine), intro is now visible in wide screen mode
- Fix little freeze/lag in dm_train
- Fix invisible "entity 0" bug near movers entities we can trigger
- Many fixes from ioQuake3 sources
- g_allowVote can be set to the number of seconds before a player can call again a vote
- players name can be tagged to make sure they are unique in game
- settings are now stored in a per-user location, instead of in the game's installation directory
Changes in SG 1.0-20081231
***** CHANGES ****
- Updated Unix building process to support more processor kind
- Updated Makefile to produce binary libraries for unix
- Updated Makefile to produce sse, sse2 and smp binaries for unix
- Updated Unix building process to keep install & build folder in the source base
- Fix "OP_BLOCK_COPY not dword aligned" in the same way then an old ioQuake3 fix...
Changes since sg 0.9
*** CHANGES ***
- Added .mak, .bat, .lnt, .vprj, .Conscript, .Makefile files from Tequila archive (Excluded a few)
- Fixed buildvm.bat and cleanvm.bat which weren't working due to reorganization
- Organized VC build solutions
- Removed old VC build solutions
- Created SSE and SSE2 build profiles for each solution
- Added lcc compiler toolchain back
- Added AL and unix files
Changes since sg 0.9
*** CHANGES ***
- Copyright updated.
- Source license header audit completed.
- Removed .mak, .bat, .lnt, .vprj, Construct, Makefile files (Waiting for "working" sets to be comitted)
- Removed code/macosx (Old project was for pre-XCode and the current state of code excludes Intel)
- Removed code/unix (Waiting for "working" sets to be comitted)
- Updated Win32 project files for Visual Studio / C++ 2008 (VC9)
Changes since wq3 b2.2
*** NEW ***
- Gamename is now "smokinguns"
- guid & pickup item and damages are now logged (Thanks, Tequila)
- g_allowVoteKick : New server side cvar to allow or not vote kick
*** CHANGES ***
- When opening the buy menu, the buy ($$) balloon tooltip is displayed instead
of the chat (:>...) balloon tooltip.
- Added "cg_boostfps" cvar to slightly improve FPS, concerning flares and particles.
- Added a menu option to disable glowing flare effects.
It might improve FPS for low CPU machine.
- Added "g_spritelag" to disable "red lag icon" above each laggy player.
This icon can be particularly annoying because it shows player position to others.
- The InGame ServerInfo menu now shows values of the server you are connected to.
- Added "g_breakspawndelay" to change breakable respawn delay.
By default, 45 seconds (at least) are needed.
- Added "g_forcebreakrespawn". A breakable will respawn no matter what, even if it
is in one player's field of vision.
*** FIXED ***
- Max OSX users should no longer have the "OP_BLOCK_COPY not dword aligned" message.
- You can no longer pick up more knives and dynamites, when you wear a belt and when
you already have the max ammo (10 knives or dynamites).
- Correct colors displayed in buy menu for throwing weapons when you've got a belt (Thanks, Aerasol).
- By killing yourself and then quitting the game, all your items were dropped twice.
- When you died and had two same pistols, the correct ammo will be kept for the second one.
- No possible trick to reload Peacemaker, Colt Lightning and Winchester 1866 in a faster way.
- No weapon drop from the sky, when spectating.
- Fix 100% CPU usage on wq_train and wq_lake, when many bots played.
- Pistols on holster are drawn correctly.
- If a player hold two different pistols, draw and put them in the correct hands, when third person spectating.
- Don't "extreme speed knife stab".
- Prevent a Q3 engine bug in rendering special player shadows, allowing anybody
to easily locate other players, and then cheat !
If r_stencilbits >= 4 and cg_shadows == 2, then cg_shadows will be changed to 1.
- Possibly fix some 3D font rendering on "say:" and kill message on top right screen.
Changes since b2.1
In addition to these changes, all of the textures and sounds from vanilla quake 3 that WQ3 was dependant on, have been replaced.  So some things in the game will look or sound different.  This is in preparation for a standalone release, to be announced at a later date.
*** NEW ***
- The delagging code is upgraded to Unlagged 2.01, giving several benefits.
        - more reliable hitscan delagging
        - better player movement smoothing
        - new client cvars: cg_delag, cg_projectileNudge, cg_optimizePrediction, cg_cmdTimeNudge, cl_timeNudge
        - new server cvars: g_delagHitscan, g_truePing, g_unlaggedVersion
        - should lessen the client cpu load (set cg_optimizePrediction 1)
- Ammo counts displayed in weapons choose menu.
- Ability to select either one of two pistols of the same kind.
- You can now go into spectator mode and then rejoin, without losing your score.
- Refresh rate can now be set in the System menu.
- Added a menu option for disabling or changing the talk sound.
*** CHANGES ***
- Deathcam now turns to follow your killer, and is hopefully less buggy.
- Try to find spawnpoints at least 700 units away from enemy players.
- Players don't drop the ammo belt when they die, because people don't like to pick up an empty belt.
- The ammo belt will no longer enable the player to carry more of knives, molotovs, or dynamite.
- Capped movement speed at 75% while reloading, to allow players to knife you more easily.
- Made altfire for pistols about 12% faster, but increase spread multiplier from 1.6 to 3.
- When doing a refresh, the ingame browser now checks only wq3 servers, should be a lot faster.
- If dropping a pistol in akimbo mode, switch to the remaining pistol instead of highest ranked weapon.
- FFA is now default gametype for wq_- maps in the 'Join' menu.
- Made the server info popup in the Join menu larger.
- Made it possible to disengage scoped mode while reloading the Sharps.
- Drop knives, molotovs, and dynamite with the correct amount of ammo, instead of always just one.
- Easier to move silently down stairs.
- Tweaked weapon pricing.  Dynamite, molotov, and knives 50% cheaper.  Winchester '97 two dollars cheaper.
- Can now replace both pistols with lesser ones without dropping the old ones.  If you have two Peacemakers, buying two Schofields to replace them will work without having to drop the last Peacemaker.
- If you have two pistols of the same kind and press the dropweapon key, the one with the least ammo left will be dropped, instead of always the one in your left hand.
- Bot behavior for the various skill levels have been tweaked.
*** FIXED ***
- Esc key shouldn't get stuck anymore.
- Firebutton dead bug should show up less frequently.
- Weapons won't be picked up if you don't have room to carry them.
- Gatling falls down if standing on something that breaks.
- Can now buy ammo for deployed gatling even if you are carrying a rifle or shotgun.
- Won't get stuck with gatling under water, because you can't deploy it under water any longer.
- Molotow now stops burning if you submerge while carrying it.
- Make dynamite explode under water.
- Can no longer light a dynamite or molotov while under water.
- Fixed players with two guns of the same kind dropping only one of them when they die.
- Fixed bots not being able to join when the server requires a password.
- Don't try to load custom bots that are made for vanilla q3.
- Directional smoke now works, thanks to Spoon.
- Dynamite and molotovs will no longer disappear if you throw them when backed up to a wall.
- No cocking sound when switching to an empty Remington shotgun.
- The "team" command exploit that let you respawn in BR and RTP.
- Bots can't see through doors anymore.
- The individual score sometimes got reset in BR and RTP.
- Don't play "no ammo" sound when you are out of dynamites.
- Fixed a bug with weapon changing that would cause an infinite sound loop.
- Weapon switching sound was wrong for other players than yourself.
Older ioQuake3 and Quake3 Changelog:
2008-04-04 Various contributors
        + Solaris fixes
        + Replace vsprintf function in bg_lib.c with vsnprintf implementation started by Patrick Powell
        + Compile bg_* files separately for each game module, as originally intended
        + Write q3config_server.cfg for the server, to avoid reseting client variables
                after running a dedicated server
        + Split image decoders into their own files
        + OS X build updates for most compatibility
        + Slackbuild
        + Detect available resolutions and offer them in the in game menus
        + A few botlib fixes
        + Fix poppy captured audio when recording videos
        + Extend console logging on crash errors
        + Merge *BSD platform definitions in q_platform.h
        + IRIX support
        + Remove all the old bat/sh QVM building scripts
        + Make master server used client configurable (cl_master)
        + Fix to QVM compilation on big endian architectures
        + OpenBSD support
        + Autocomplete key names
        + Don't build client command completion on the dedicated server
        + Don't apply colour escape chars on input fields
        + Rewrite of the win32 dedicated console
        + Improved Makefile startup time
        + Build dedicated server binary on Windows
        + Bump Q3_VERSION to 1.35
        + Replacement of platform specific backends with a generic SDL one
        + Merge win_net.c and unix_net.c to net_ip.c
        + Demote input related console information to developer only so that it doesn't
                spam the console every time input settings are changed
        + PNG texture support
        + Cleanup of tabulation in R_LoadImage
        + Fixes to console scrolling
        + New x86_64 vm that doesn't use gas
        + Early out AABB collision optimisation
        + Generate QVM dependicies in a better way
        + Build process is quieter
        + Replace horrendously long list of Makefile build rules with set of inference rules
        + Allow CC to be overridden externally to the Makefile
        + Move storage of console history from a cvar to a file in order to alleviate
                security concerns
        + Fix bug where transparent surfaces wouldn't draw over skyboxes
        + Add input sanitising to various sound playing functions called from mods
        + Explicitly set OpenAL distance attenuation model
        + Increased the number of registers used for the opStack in the PPC vm from
                12 to 16
        + Fix endian issue in MDR loading
        + Add cURL support for HTTP/FTP downloading
        + Disable video command when not playing back a demo
        + Print the SVN version string in Com_Init()
        + OpenAL device enumeration support
        + Fix 100% CPU usage on idle dedicated servers
        + Windows home directory support
        + Improve correctness of AVI files created by video command
        + Better SDL joystick support
        + sv_minRate
        + [cl|sv]_packetdelay
        + Various security fixes
        + Fix JIT compiler code execution on NX-protected win32 OS
        + Fix r_overBrightBits variable getting ignored on Linux
        + cl_guid for semi-reliable server authentication
        + Anisotropic texture filtering
        + Video export doesn't crap out with sv_pure 1 anymore
        + Video export doesn't crap out when writing > 2Gb files anymore
        + Fix to a bug where servers with long uptimes (~27 days) would consume 100%
                CPU if the running game did not set the nextmap cvar
        + Some OSes no longer requires a vid_restart when changing r_fullscreen
2006-01-24 Various contributors
        + Persistent console history
        + Added code to sleep a bit when q3 has no focus and sleep a lot when it's
                minimised (SDL only)
        + Cull excess speaker entities when using OpenAL
        + Fix the operation of the delete key in *nix
        + Only check the checksum on baseq3 pak0.pk3
        + Overhaul of console autocompletion
                - No longer does weird stuff like move the cursor inappropriately
                - Autocomplete works with compound commands
                - Special autocomplete on some commands e.g. \map, \demo
                - Removed various hacks used to counter the original autocomplete code
        + Fixed the ability to disable Ogg Vorbis
        + s/i686/i586/ - see bug #2578
        + Some sloppily coded mods call the Q3 sound API with NaNs -- sanitise this
        + Removed advertising clause from BSD license as per mailing list discussion
        + "make distclean" now does what you'd expect
        + "make clean toolsclean" now does what "make distclean" did before
        + GPL MD4 implementation
2006-01-16 Various contributors
        + Move code/unix/Makefile to ./Makefile
        + x86 OS X support
        + "quake3" shell script as shipped with 1.32 (on linux) no longer needed
        + Ogg codec support from Joerg Dietrich
        + Fix to the gcc4/-O0 x86 JIT compiler bug
        + Up the defaults for zone and hunk memory since some mods (UT) have large
                memory requirements that will have increased versus 1.32b due to some of the
                alignment fixes
        + Dependency generation for the .asm files
        + Remove FS_SetRestrictions
        + Add FS_CheckPak0 for better error messages where dumb users are involved
        + Added cl_autoRecordDemo, which when enabled automatically records a new demo
                on each map change
        + Only display the g_synchronousClients warning when it's appropriate
        + Remove custom memcpy/memset code
        + AVI video output
                - Uses motion jpeg codec by default
                - Use cl_aviFrameRate to set a framerate
                - \video [filename] to start capture
                - \stopvideo to stop capture
                - Audio capture is a bit ropey
        + General Makefile improvements
        + Support for MinGW cross compilation
        + NetBSD support from optical
        + x86_64 JIT bytecode compiler no longer disabled by default
        + msvc project files updated and moved to win32/msvc
        + Various alignment fixes
        + Solaris (x86 and sparc) support from Vincent S. Cojot
        + Fixed Altivec-based mesh rendering
        + Ditch Mac OS 9 support
        + Added a Makefile option USE_LOCAL_HEADERS which can be disabled to use system
                headers if desired
        + Detection of Altivec on Mac OS X
        + SMP support with sdl_glimp.c on Mac OS X.
        + Add "very high quality" option (patch from Pascal de Bruijn)
        + Support for RIFF files with zero length data chunks (yes they exist, and yes,
                they're legal)
        + Support for ccache. If you want it, add USE_CCACHE=1 to Makefile.local
        + Mac OS X now uses SDL backend, all Objective C removed
        + Partial implementation of FS_Seek for files in pk3s
        + Implementation of r_dlightBacks from Shane Isley
        + OpenAL support, from BlackAura aka Stuart Dalton
        + An abstract codec system, simplifying support for new formats
        + Ignore in_dgamouse setting if dga isn't available
        + Removed hard coded mouse acceleration in *nix input code
        + Basically rewrote the lcc Makefile to be more sane
        + Removed various bits of lcc that weren't built/needed
        + General portability improvements
        + Various variables added that aid packaging, from vapier
        + Centralise architecture defines in q_platform.h
        + Replaced a bunch of inline and __inline with ID_INLINE
        + Replaced a bunch of __i386__ with id386
        + General tidy up of asm preprocessor decisions
        + Removed C_ONLY from the dedicated server build
        + Removed rule to build C++ (for splines) from the Makefile
        + General decrufting
        + Split USE_SDL into USE_SDL_VIDEO and USE_SDL_AUDIO
        + Various assorted bug fixes
2005-10-29 Various contributors
        + nasm syntax asm ported to gas
        + Disabled-by-default MD4 support
        + cons build system removed
        + Better FreeBSD support
        + Makefile generates dependencies
        + Some SDL sound tweaks
        + qvm build tools and qvms are now built with the rest of the binaries
        + q3asm-turbo from Phaethon
        + Moved various displaced c and h files into more appropriate places
        + A shitload (can I say shit?) of bug fixes -- see the svn log for details
2005-09-22 Tim Angus <>
        + MinGW port
        + SDL Stuff (icculus)
        + x86_64 (ludwig von angstenheimer)
        + patches from a cast of thousands
2004-05-22 Timothee Besset <>
        + updated the xcode project from Apple's version
                now with the latest vm_ppc code
2004-05-21 Timothee Besset <>
        + fixed the Linux build to compile again on sid (glext.h and gcc3 warnings)
        + 2 weeks ago, hacked up the source to compile on panther / xcode 1.1
                several cleanups were needed, and VM support seems broke (hangs or crashes)
        + got altivec optimisations from Apple (Kenneth Dyke)
                merged back in
        + looks like with the new code merge the VM support is back in and working
2003-09-15 Timothee Besset <>
        + import Q3 java master code, cleanups on monster
2003-08-31 Timothee Besset <>
        + loki_setup hell
                text mode installer in loki_setup image built on Mandrake 7.2 crashes on
                some glibc 2.3 systems such as RH9 etc.  need to move to a different
                version of the installer, and update old installers to keep them still
                'installing' moving to build the setup binaries on Debian Woody systems
                (glibc 2.2, text mode installer will no longer work on 2.1 systems) hacked
                together a new setup, using setup tree from RTCW. would need a complete
                revamp if a new full setup with new binaries is needed
2003-07-17 Timothee Besset <>
        + new cvsreport, testing per-module config
2003-01-19 Timothee Besset <>
        + building on both gcc 2.x and 3.x
                added conf modules to check gcc version
                ccache support
2003-01-13 Timothee Besset <>
        + tweaking around for gcc 3.x build
                edit Conscript to change the compiler
2002-12-16 Timothee Besset <>
        + added pbEmit class to auth code, emit CD keys to local PB master
2002-11-14 Timothee Besset <>
  + up to latest
        + add both quake3.x86 and quake3-smp.x86 to setup
          console setup crash / glibc 2.3 (Debian Sid)
                investigated, put together a workaround
2002-11-5 Timothee Besset <>
        + Linux building both smp and non-smp again. Will have to put both in setup
        + added in_subframe to toggle X subframe event handling
        + reworked the timing code to be more reliable
        + cleaned up dgamouse/in_mouse code, removed unnecessary dgamouse var
        + made the mouse grabbing an in_nograb cvar, no longer a compile time option
          in_nograb 1 force in_dgamouse 0 and r_fullscreen 0 (any of those two will b0rk)
          mouse issues on Suze 8.1 - related to subframe event timing
                added code chunk to detect broken X timing and disable subframe
        + tweaked the subframe/X bug workaround to be less paranoid
2002-10-28 Timothee Besset <>
        + no longer blocking demo recording if g_synchronous clients != 0
                only sending out a warning (everyone does g_sync 1 ; record ; g_sync 0)
2002-10-21 Timothee Besset <>
        + building final mod sdk setups (added lcc bins, added link to q3asm-turbo in readme)
2002-10-8 Timothee Besset <>
        + quickfix cl_maxpackets > 125 brings back to 100
1.32 release ---
2002-10-7 Timothee Besset <>
        + made the 'demo' command case-insensitive on extension match (it was confused by demo FOUR.DM_68)
        + mouse wheel scrolling with in_mouse 1 + window mode was not working, fixed (DI didn't catch)
        + removing on-the-fly pk3 build from Linux setup, using the finalized ones now
                added 'pk3' option to cons for toggle of pk3 building
2002-10-5 Timothee Besset <>
  + updated win32 mod sdk (in win32/mod-sdk-setup)
    added q3asm and lcc source
    updated the .bat to build VMs
2002-10-3 Timothee Besset <>
        + linux mod sdk, wrote the bulk of the scripts
2002-9-30 Timothee Besset <>
        + ATVI Quake 3 1.32 Patch #9
                rolling back to the way it was before, leaving 1v1 force vote exploit, the fix was worse than the bug
                from comment on bug #9 in tracker:
                actually the fix is worse than the original bug
     after the fix, voting when you are alone on the server was no longer working
     it was kinda intended in the fix, that you would have to be at least two to pass a vote .. but
     it is an oversight.
     calling a vote in a 1v1 game against a bot fails immediately
     (calling a vote in any situation where there's only 1 live player fails)
     Say a server's running some lame custom map that you have but a friend doesn't. You can't go
     on the server and change it to the map you want to play, so he ends up having to auto-dl it at
     8K a second just so you can switch from it.
     This particular 2 clients, vote / quit exploit would involve too many changes to fix properly.
     I am reverting back to the old version, and leaving as WNF
2002-9-29 Timothee Besset <>
                added Wheel support to the DirectInput code IN_DIMouse (in_mouse 1)
                tweaked the Wheel mouse reading for in_mouse -1 (old win32 input code)
                        handle correctly when zDelta is > 120
                        provide an in_logitechbug cvar to handle buggy Logitech MouseWare driver sending wheel events twice
2002-9-26 Timothee Besset <>
        + ATVI Quake 3 1.32 Patch #38
                adding trap_SetPbClStatus, reliably checks for PB presence before enabling PB in UI
2002-9-25 Timothee Besset <>
                SVF_CLIENTMASK, fixed a typo
                pushed cl_maxpackets upper limit to 125 (from 100) per CPMA Arqon's request
2002-9-24 Timothee Besset <>
        + ATVI Quake 3 1.32 Patch #33
                PB reporting sv_paused cvar hacked, fixed SV_CheckPaused to use a Cvar_Set
        + ATVI Quake 3 1.32 Patch #24
                added [skipnotify] from RTCW, use to display in the console only, but not on client screen
                (also fixes pb_msgprefix and pb_sv_msgprefix)
                using correct error message if listen server starting as cl_punkbuster 0 sv_punkbuster 1
        + ATVI Quake 3 1.32 Patch #35
                text auto wrap in UI code was eating the last word if it was wrapping
                fixed in Q3 and TA UI (this bug could have affected the server print message also)
        + some updates to the win32 cons post-build process
2002-9-21 Timothee Besset <>
        + adding bspc cons build script
2002-9-19 Timothee Besset <>
                disconnect reason is transmitted in the disconnect command and processed into com_errorMessage
                (similar to RTCW behaviour)
                added UI for com_errorMessage cvar in baseq3/, if client is kicked/dropped/disconnected for whatever reason
                (this is already functional in TA)
        + ATVI Quake 3 1.32 Patch #9
                failing vote if there's only one voting client (fixes exploit on 2-player server where one player votes then disconnects, forcing vote to pass)
        + ATVI Quake 3 1.32 Patch #5
                removed the userInfoChanged message (was a debugging leftover)
        + ATVI Quake 3 1.32 Patch #18
                rcon was not properly fixed yet, this only showed up for PB commands
                changed the rcon parsing again to be more reliable
2002-9-18 Timothee Besset <>
                the demo command has a list of compatible protocols, it will loop through 66 67 68
                you can do '/demo four' and it will try four.dm_66 four.dm_67 four.dm_68
                or you can explicitely give a '/demo demoname.dm_??'
                added SVF_CLIENTMASK (0x00000002), works only with <= 32 players
                set bitmask of players to which send entity
2002-9-17 Timothee Besset <>
                rcon bug fix
        + some scons updates for win32 (post build)
        + 1.32rc2
2002-9-06 Timothee Besset <>
        + updated completely the setup system:
                fixed cons stuff to build setup with cons -- release setup
                working from new setup codebase with some custom patches:
                        checked that BSD support was still in (brandelfing and symlinks) .. will have to get tester feedback
                bumped version to 1.32rc1
                TODO: update the windows .VCT (standalone setup and auto-update)
2002-9-04 Timothee Besset <>
                backport from RTCW 1.4 code
                rcon commands where sent after being tokenized and rebuilt
                that was breaking any quoting, for instance 'rcon g_motd "hooka pooka"'
                added Cmd_Cmd() to retrieve the un-tokenized command and transmit as is on both ends
                b0rked text wrapping in connect screen
                was a missing sizeScale in q3_ui/, and a bad param in ui/
                backport fix to pk3 reordering, happens when clearing the references, bad order from connection may break stuff
                TA ui/, quickfix to netSource (mod stuff, doesn't affect TA)
        + cleaned up broken old DO_WIN32 stuff in cons scripts
                typo in models2.shader
                Linux client: sub-frame timing of key/mouse events
                added mousewheel support: wheel to scroll, ctrl+wheel to scroll faster, shift+wheel to scroll history
                bumped server count to 4096
        + keep around: __asm__ __volatile__ ("int $0x03");
                moved screenshots to backend with a new RC_SCREENSHOT render command
                fixes the r_smp 1 garbled screenshots
2002-8-29 Timothee Besset <>
                new VM code from Raven's Sof2
        + cons / qvmtools build system fixes
        + had to get a new qe3.ico again (resource compiler error)
        + updated, basic testing on win32, merging back in trunk
        + merged bug-539 branch back into trunk, officialize the new VM code
2002-8-26 Timothee Besset <>
                linux client: handle ctrl+space situations (could leave space locked on + space not working with ctrl on)
        + update the build system, build q3lcc and q3asm etc. on demand
                fixed invisible players/entities
2002-8-23 Timothee Besset <>
                fixing donedl being ignored after autodl if map_restart'ed (propagate from RTCW)
                ignoring multiple map_restart (propagated from RTCW)
        + reworked the server 'client text ignored' message to only trigger     when there's actually a message that doesn't get to the game VM
2002-8-18 Timothee Besset <>
                ydnar: reorg bits in the drawsurf sort index, push MAX_SHADERS to 2^12
        + commented out some debug stuff in java auth server
        + added FAQ item with Linux & BSD patch to handle broadcast on multiple interfaces
2002-8-15 Timothee Besset <>
                fixing rcon being broken on NT/XP with > 23 days uptime (or so)
                changed the rcon buffer size to avoid overflows and dropping part of the message
2002-8-14 Timothee Besset <>
        + hacked in some experimental win32 stuff to the cons files
                (win32 recognition and pk3 installs .. very very experimental but I needed it for win32 dev)
                ui/ and q3_ui/ : added text auto wrapping in the connection screen drawing (server message)
                removed the MPlayer stuff from the server browsers
                enabled back the ignore if protocol is != (fixes Wolf servers showing in browser)
2002-8-10 Timothee Besset <>
    propagated IP banning fix from RTCW
2002-8-08 Timothee Besset <>
        + propagate additional sv_lanForceRate fix from RTCW
2002-8-07 Timothee Besset <>
        + added trap_FS_Seek
2002-8-05 Timothee Besset <>
    fixed the DI mouse init procedure
2002-8-05 Timothee Besset <>
        + removed sv_allowanonymous, was dummy and polluting the serverinfo
                (sv_allowanonymous was designed to flag wether server was public or not, but that's replaced by g_needpass)
                sv_strictAuth (default 1): server variable to control wether strict CDKEY auth should be performed
                        this is required if you want reliable cl_guid on the server
                extended the getIpAuthorize (server->auth message) syntax
                sending the fs_game at all times (default 'baseq3'), dummy sv_allowAnonymous 0, strict auth flag
                NOTE: 1.31 server on baseq3 sends a getIpAuthorize packet like:
                        processing packet: getIpAuthorize -1230824753  0
                        the auth server will mistakenly read fs_game as '0'
        + TAGGED the master / auth source as pre-1_32
                will need to go back to this to comment out all my debugging crap
2002-8-04 Timothee Besset <>
        + cleaned master server stuff, client was prompting,
                server was sending heartbeats to
                both point to, unified to
                the MPlayer master, doesn't exist anymore, switched it to
2002-8-02 Timothee Besset <>
        + added auth server source, reorganized
        + auth server name / master key optionally set on command line for master and auth servers
        + auth and master config in build system
                changed default GL driver from to
                see LSB 1.2 spec:
                applying the 'no cp command' experimental fix for beta phase
                backported from RTCW, fix to packet fragmenting emission
                FIXME: there is some verbose code that we have to take out in the final version (grep for #462)
                backported from RTCW, don't get dropped if the server changes map while connecting (ignore outdated cp)
2002-8-01 Timothee Besset <>
        + Linux: dedicated build was not setting up signal handler like the full client does
                SplashDamage bugfix, now clearing client gentity before GAME_INIT call (instead of after)
                fixed NET_AdrToString to print the port as unsigned int (for ports > 1^^15, was showing negative)
                maintain IP in userinfo sent to game
        + checking in master server source
2002-7-31 Timothee Besset <>
                porting fix from RTCW codebase. client re-orders its pk3s to scan in the same order than the server
                this eliminates several 'Invalid .PK3 file referenced' situations (caused by client not referencing the same thing as server)
        + fixed border remnants in ta ui
                ERR_DROP if PB client off / server on conflict when starting local server
        + quickfix to q3 ui / punkbuster detect in server browser
                code fix, no more taunt spam
        + cons install of PB .so files
        + correct MOD_KAMIKAZE and MOD_JUICED in TA games.log
2002-7-29 Timothee Besset <>
        + q3 ui: completed confirmation prompts and messages (added UI_ConfirmMenu_Style & UI_Message)
        + ta ui: backported 'conditionalopen' from RTCW (conditionalopen <cvar> <menu1> <menu2>)
        + ta ui: confirmation prompt for punkbuster enable/disable etc.
        + added the win32 DLLs to pb/win32/
2002-7-28 Timothee Besset <>
        + ta ui: sv_punkbuster in StartServer menu
        + ta ui: added cl_punkbuster in server browser
        + view filters are in a modal dialog
        + new files: menus.txt (pak3.pk3 updated)
        + fix broken link in Linux FAQ
2002-7-27 Timothee Besset <>
        + ta ui: PB display in the browser, in its additional tab, with sorting
2002-7-26 Timothee Besset <>
        + PB UI: for baseq3/ AND missionpack/
                q3_ui: Punkbuster: Enable/Disable in server broswer (cl_punkbuster)
                q3_ui: PB logo, PB Yes/No in browser (TODO: validate this to be working)
                q3_ui: added sv_punkbuster toggle in start server menu
        + automated building of the new PK3s, unix/Conscript-pk3
2002-7-25 Timothee Besset <>
        + added PB build scripts on Linux, fixed the Linux build
2002-7-12 Timothee Besset <>
    fixing re.SetColor crash for widescreen displays (q3dm11)
    was calling to the renderer while not registered
2002-6-19 Timothee Besset <>
  + r_roundImagesDown 0 + map q3dm16 -> tr_image.c ResampleTexture crash
          buffer overflow because of resample to 2048x..
                xian_q3dm12_leftwall4fin.jpg 1152x384
                bumped one buffer byte p1[1024] -> byte p1[2048], added a safe check
2002-6-14 Timothee Besset <>
          propagate a renderer fix from RTCW. fixes a one-frame visual glitch when mod code
                registers a shader after drawsurfaces are generated but before the frame is rendered
2002-6-12 Timothee Besset <>
  + added cons and pcons to unix/, updated the build script
2002-5-24 Timothee Besset <>
        towards a new Q3 release?
                some bug fixes require protocol change, or mod code/mod interface change to be fixed properly
                this is a biz decision, dunno yet if we are going to want a new protocol (probably not)
        -> have to create a branch for the 1.31b, i.e. backwards compatible with 1.31 'Stable-1_31'
          and put the 1.32 specific / protocol changes on trunk
        no telling what will go in SOS in the end .. probably 1.32
2002-5-5 Timothee Besset <>
          adding a sv_lanForceRate (defaults to 1) to turn on/off server forcing rate of LAN clients
                (only affects LAN dedicated clients - dedicated 1, default behaviour forces LAN clients to 99999 rate)
          fixing potential overflows with cl_cdkey (propagated from RTCW)
        + cons-based build system (imported from Wolf, was partly written for mod tools release already)
          building with SMP on by default
        + better #ifdef SMP handling ('disabled at compile time' message)
                Q_vsnprintf for vsprintf calls in the core
                not putting this in game code as we'd need a vsnprintf implementation in bg_lib.c
2002-4-5 Timothee Besset <>
    taking out the fix which was found broken and incomplete
2002-8-4  Timothee Besset <>
  + adding NO_MOUSEGRAB define (select in the Makefile)
2002-2-4  Timothee Besset <>
  + applying Gareth's SMP patch
  + count number of CPUs (Sys_ProcessorCount in unix_shared.c), default r_smp appropriately
  + bumping version to 1.32
  + if XInitThreads fails, set r_smp to zero
2002-28-2  Timothee Besset <>
    send potential remaining fragmented packets before sending a gamestate
2002-26-2  Timothee Besset <>
  removed old loading code
  Voodoo cards should use XF4/DRI, that load code was outdated and confusing people with broken OpenGL
2002-16-1  Timothee Besset <>
  adding brandelf calls to the setup building process so that our binaries run on BSD
2002-1-1  Timothee Besset <>
  + updated FAQ with BSD info (bug #441)
  + FAQ update for proper strace usage
2001-12-12  Timothee Besset <>
  + Q3 1.31 point release
    updating to new pk3 files
    (baseq3/pak7.pk3 missionpack/pak2.pk3)
    adding quake3.xpm icon, and modified the setup accordingly to put symlinks
    ignoring SIGTTIN SIGTTOU
2001-06-12  Timothee Besset <>
    bug with full scene
2001-04-12  Timothee Besset <>
    cg_bobup cheat protect
    fixed Setup > System > Driver info crash
  + checked in code/ script, perform checksuming
2001-18-09  Timothee Besset <>
    propagating sound code fixes from Wolf to Q3
2001-11-08  Timothee Besset <>
  + setup script was still broken, damn shell expansion
    the exit code for Q3 was always zero instead of $?
    propagating the fix to Wolf
2001-11-04  Timothee Besset <>
    modified challenge code for motd to be truly random
2001-10-31  Timothee Besset <>
  Moved updated q3asm and lcc source at the toplevel, MissionPack/q3asm
  and MissionPack/lcc
2001-10-29  Timothee Besset <>
    build system is now functional
2001-10-21  Timothee Besset <>
  + updated Sys_LoadDll code on linux to search in the following order:
    #1 current directory
    #2 fs_homepath
    #3 fs_basepath
    this was needed to make mod developement easier
2001-10-09  Timothee Besset <>
    the code to buffer the redirection was in there but disabled? (Com_Printf)
    enabled it back
    connection issues / userinfo
    client side fix, instead of sending 'connect <userinfo>' packet
    we now send 'connect "<userinfo>"'
2001-10-08  Timothee Besset <>
    added a PROT_READ to the mmap call
    this was needed to go around a bug in glibc i586 i686, memset doing read access
    since the audio_fd is opened O_RDWD this is harmless to Q3
2001-10-07  Timothee Besset <>
  + updating from SOS
    S_WriteLinearBlastStereo16 C/asm is back in snd_mix.c (Graeme)
    r_showtris r_shownormal cheat protections
  + Sys_LoadDll changes:
    removing -debug search when loading native dlls
    changing the fatal aborts when not finding native from release only to debug only (was a misfeature)
    used to search in cd_path which is bogus, now searching in pwd if basepath fails
    fixed r_fullbright not being cheat protected / was a CVAR_LATCHED|CVAR_CHEAT issue
2001-09-06  Timothee Besset <>
  + updated from SOS, some changes to qcommon/unzip.c (statics)
2001-08-27  Timothee Besset <>
  Added some code in CL_InitDownloads to use FS_ComparePaks and print out information about server-referenced paks that are missing on the client. It is a first step, allows to get precise information about what can cause a connection to fail (typically when the user is sent back to the main screen).
2001-08-22  Timothee Besset <>
  fixed sound bug (with Graeme hints)
2001-08-20  Timothee Besset <>
  + made sure Sys_Printf doesn't get into an endless loop if logfile is on
    fixed qconsole.log issues, +set logfile 1 +set fs_debug 1 was crashing (any OS)
    fixed logfile 1 / ttycon 1 issue, didn't exit properly (same endless looping)
    also fixes an issue reported by q3f team
  + changed rcon commands from Com_DPrintf to Com_Printf so that they show up in the console
  (with IP information)
2001-08-19  Timothee Besset <>
  + fixed
  (autodownload toggle in q3 ui)
  + fixed
  g_password issue
  + fixed
  cheat protecting r_lodCurveError
  + wontfix
2001-08-18  Timothee Besset <>
  + more fixes to the 7-button mouse code (linux only)
  + updated faq about gamma slider
  + added "servers don't show up in ingame browser" to faq
  + added Alt+Enter toggle for fullscreen/windowed (linux)
2001-08-16  Timothee Besset <>
  reconfiguring CVS repository to give access to Gareth
  + testin gareth's access
2001-08-03  Timothee Besset <>
  fixes in the setup code for older bash versions
2001-08-02  Timothee Besset <>
  * commented out assembly implementation of S_WriteLinearBlastStereo16, using modified C implementation from Zaphod
    need to check performance:
  * finished const declarations in CG_Trace calls, was needed in pmove_t declaration and some other functions
    cgame/cg_local.h : CG_trace trap_CM_BoxTrace
    game/bg_public.h : using const in pmove_t trace functions prototypes
    (fixes gcc warnings: assignment from incompatible pointer type)
2001-07-26  Timothee Besset <>
  mapped K_MOUSE4 K_MOUSE5
2001-07-23  Timothee Besset <>
  more fixes, handling meta characters and various kinds of backspace
2001-07-22  Timothee Besset <>
  after testing feedback, fixed more stuff:
    better backspace, works with putty and potentially more terminals
  band aid fix to rcon status, incresed MAX_PUSHED_EVENTS from 256 to 1024
  (adds 28kb of mem requirements)
2001-07-21  Timothee Besset <>
  using XF86 Gamma extension to set the gamma in game from the menus
  (previous behaviour was to set /r_gamma and restart, renderer relying on s_gammatable)
  restoring initial gamma on GLimp_ShutDown
2001-07-19  Timothee Besset <>
  first usable version of dedicated console
  added history and completion functionality
  ready for some testing
  still some TODOs and FIXMEs:
    keep the currently edited line when going back from history exploration
    edit the current line with cursor, insert mode etc.
2001-07-18  Timothee Besset <>
  * starting TAB completion and history for the dedicated server (tty console)
  removed Sys_ConsoleOutput (unused)
  removing bogus nostdout variable
  cleanup of a big chunk of code that Bernd commented out and scheduled for deletion
  moved completion code from client/cl_keys.c stuff into qcommon/common.c, Field_CompleteCommand(field_t*)
2001-07-13  Timothee Besset <>
  * fixed
  screenshots overwrites
  * fixed
2001-07-11  Timothee Besset <>
  * fix for french keybards / console toggle / bound to XK_twosuperior
2001-07-10  Timothee Besset <>
  cleanup of the keyboard code, adding com_developer message in case XLookupString would fail
2001-07-10  Timothee Besset <>
  using our custom handlers for X errors, should make things more robust
  (X docs say some X errors are not fatal, but the default X handler exits the app anyway)
2001-07-08  Timothee Besset <>
        keyboard state issues, fixed the sticking with ctrl key (thks relnev)
2001-07-07  Timothee Besset <>
        * closing
        the fixes to bug #9 solved this one too
        * checking in to SOS
2001-07-05  Timothee Besset <>
        * work on
        filesystem code changes:
        updated the documentation in files.c to the current system
        added correct fs_homepath fs_basepath fs_cdpath scanning to FS_SV_FOpenFileRead
          (fixes description.txt not found, and probably a few other linux issues)
2001-06-29  Timothee Besset <>
        * fixed setup issues (graphical/console)
2001-06-26  Timothee Besset <>
        * bug tracker is online at
          authentication, use login: bugs password: b00gies
          for now, using it as the linux bug tracker, possible use for more OSes and programs if anyone is interested.
        * tweaked the graphical setup to send to on errors instead of
2001-06-19  Timothee Besset <>
        * fixed generated launch script /usr/local/bin/quake3, exit $* should be exit
2001-06-18  Timothee Besset <>
        * rebuilt 1.29f setups, released as 1.29f-beta1 'Q3 1.29f linux-i386 Jun 19 2001'
2001-06-10  Timothee Besset <>
        * rebuilt against PR source, packaged 1.29b setups
2001-05-25  Timothee Besset <>
        * graphical setup, based on Loki's setup tool (GPL)
2001-05-22  Timothee Besset <>
        * changed fs_basepath to fs_homepath, according to Graeme's changes (probably missed this change?)
          this fixes the q3key prompting at each game startup
2001-05-20  Timothee Besset <>
        * rebuilding 1.28b, various fixes on linux build:
          - SetProgramPath was renamed to Sys_SetDefaultCDPath in unix_shared.c
            updated unix_main.c accordingly
          - some prototypes in qgl.h are guarded by #ifndef GL_VERSION_1_2 (ARB extentions)
            those prototypes are needed by linux_glimp for importing functions and casting, added a #ifdef __linux__
            (not a clean solution)
          - game/q_shared.h
            little endian / big endian functions have been added
            gcc generates warnings about functions being unused .. inlined them
           - cgame/cg_marks.c
             // TTimo
             // gcc warning: might be used uninitialized
             float sInc = 0.0;
             float s = 0.0;
2001-05-15  Timothee Besset <>
        * fixes to linux Makefile for bspc 2.1h
        * various updates to 1.28b on linux
2001-05-09  Timothee Besset <>
        * R. Duffy reverted game/bg_pmove.c PM_CheckDuck, was a merging screup on my side
        * updated setup to 1.27z, removed the .so from the setup distribution (they were in 1.27g because of issues)
          FIXME: gotta get pk3's first
2001-05-04  Timothee Besset <>
        * fixes to gcc, building RC for 1.27s
2001-05-01  Timothee Besset <>
        * added qcommon/huffman.c to the Makefile
        * gcc -Wall:
        commenting out
          CL_Netchan_Encode CL_Netchan_Decode (cl_net_chan.c)
          Netchan_ScramblePacket Netchan_UnScramblePacket (net_chan.c)
          SV_Netchan_Encode SV_Netchan_Decode (sv_net_chan.c)
2001-04-26  Timothee Besset <>
        * fixed dedicated server crash when entering the VM_COMPILED qagame on a mod (some statics lacked initialization)
2001-04-25  Timothee Besset <>
        * added $(Q3POBJ) to clean target (cleanup of platform-dependent objects)
        * more make clean improvements
2001-04-23  Timothee Besset <>
        * cleanup the mod selection code, remove duplicates
        * some issues with release builds, my main developement box doesn't build stable binaries with release settings
          removing -fomit-frame-pointer seems to fix (there's probably a performance hit)
          see OMIT-FRAME-POINTER.txt
2001-04-13  Timothee Besset <>
        * checked in a first set of merged files
2001-04-06  Timothee Besset <>
        * merged back the core linux parts to make 1.27g linux build from the Source Safe tree again
2001-02-27  Bernd Kreimeier  <>
        * CVS: tag with changes as of today
          cvs tag id1-27j-loki01027
        * code/qcommon/msg.c: numFields loop (SOS).
        * code/qcommon/files.c: ue Q_stricmp (SOS uses stricmp, was strcmp).
        * code/game/q_shared.h (Q3_VERSION): 1.27j. Also
        MAX_STRING_TOKENS upped from 256 to 1024 (SOS).
        * code/server/sv_snapshot.c (SV_AddEntitiesVisibleFromPoint): see below.
        * code/game/g_public.h (SVF_NOTSINGLECLIENT): added (SOS).
        * code/server/sv_ccmds.c: see below.
        * code/game/g_main.c: g_gametype cvar now userinfo (SOS).
        * code/game/g_active.c (SendPendingPredictableEvents): new (SOS).
        * code/game/bg_misc.c: new SOS (sos010227)
        * SOS: new update sos010227.
2001-02-22  Bernd Kreimeier  <>
        * CVS: now in sync with last SOS and cleanup up
          cvs tag id1-27i-loki01022
        * code/ui/ui_shared.c: below.
        * code/ui/ui_main.c: leftover code!
        * code/server/sv_world.c: below.
        * code/server/sv_snapshot.c: below.
        * code/server/sv_init.c: below.
        * code/server/sv_game.c: below.
        * code/server/sv_client.c: below.
        * code/server/sv_ccmds.c: below.
        * code/server/sv_bot.c: below.
        * code/server/server.h: below.
        * code/renderer/tr_surface.c: below.
        * code/renderer/tr_shader.c: changed assert to early return.
        * code/renderer/tr_shade_calc.c: below.
        * code/renderer/tr_shade.c: below.
        * code/renderer/tr_scene.c: below.
        * code/renderer/tr_mesh.c: below.
        * code/renderer/tr_local.h: below.
        * code/qcommon/vm_x86.c: cleanup.
        * code/qcommon/vm.c: below.
        * code/qcommon/unzip.c: below.
        * code/qcommon/qcommon.h: below.
        * code/qcommon/files.c: below.
        * code/qcommon/cvar.c: cleanup.
2001-02-21  Bernd Kreimeier  <>
        * code/qcommon/common.c: cleanup.
        * code/qcommon/cm_trace.c: cleanup.
        * code/qcommon/cm_patch.c: cleanup.
        * code/qcommon/cm_public.h: cleanup.
        * code/game/q_shared.h: cleanup.
        * code/game/q_shared.c: cleanup.
        * code/game/q_math.c: cleanup.
        * code/game/g_syscalls.asm: changed (once more) floor,ceil etc.
        * code/game/g_spawn.c: cleanup.
        * code/game/g_session.c: cleanup.
        * code/game/g_cmds.c: cleanup.
        * code/game/g_client.c: cleanup.
        * code/game/g_arenas.c: cleanup.
        * code/game/bg_slidemove.c: cleanup.
        * code/game/bg_pmove.c (PM_CheckDuck): old call to trace?
        * code/game/bg_misc.c: cleanup.
        * code/game/be_aas.h: dead code.
        * code/game/ai_dmq3.c: cleanup. One clear/copy switched?
        * code/game/ai_dmnet.c: more //*/. Why oh why not DEBUG....
        * code/client/snd_mix.c: below.
        * code/client/snd_dma.c: below.
        * code/client/keys.h: cleanup.
        TODO: #error in q3_ui/keycodes.h ?
        * code/client/client.h: cleanup.
        * code/client/cl_main.c: misplaced bracket. Cleanup.
        * code/client/cl_keys.c: below.
        * code/client/cl_cin.c: below.
        * code/client/cl_cgame.c: cleanup.
        TODO: define assert for Win32 or guard my assertions.
        * code/cgame/cg_syscalls.c: below.
        * code/cgame/cg_servercmds.c: below.
        * code/cgame/cg_players.c: cleanup.
        * code/cgame/cg_newdraw.c: remember to diff against cg_newDraw.c
        in SOS (mixed case).
        TODO: get id to use cg_newdraw.c, and to remove cg_newDraw.c/cpp.
        * code/cgame/cg_main.c: below.
        * code/cgame/cg_local.h: below.
        * code/cgame/cg_event.c: below.
        * code/cgame/cg_drawtools.c: below.
        * code/cgame/cg_draw.c: cleanup.
        * code/cgame/cg_consolecmds.c: dead code.
        * code/bspc/qbsp.h: below.
        * code/bspc/l_poly.c: below.
        * code/bspc/l_math.c: cleanup.
        * code/bspc/bspc.c: cleanup.
        * code/bspc/be_aas_bspc.c: cleanup.
        * code/bspc/aas_map.c: kept comments - merge loss at their end?
        * code/bspc/aas_file.c: cleanup.
        * code/botlib/be_interface.c: this file is plain impossible. There
        are layers of code made dead with /* */ and the resurrected by
        //* or // /* or variations of this. I reverted to exact mirror
        image of SOS to be sure - short of removing it's too easy to mistake
        live code for dead one.
        Later: have to change 5 occurences to avoid gcc complaints about
        nested comment tokens.
        TODO: somebody please get rid of the cruft in here.
        * code/botlib/be_ai_move.c: redundant typedef.
        * code/botlib/be_ai_chat.c: assertions on signed string index.
        Note: this is not in my ChangeLog - ouch.
        TODO: use  gcc -fsigned-char on all platsforms to enforce Win32
        TODO  behavior (PPC has a default unsigned char, Intel has not).
        * code/botlib/be_aas_sample.c (AAS_TraceClientBBox): one code block
        was placed in different location, and one FPE hack not used. I would
        expect that divide by zero will still occur here.
        * code/botlib/be_aas_reach.c: below.
        * code/botlib/be_aas_cluster.c: cleanup.
        * CVS: the last tag (below) marks the version with a lot of history
        and additional comments. I am now bringing the codebase in sync with
        SOS as of yesterday, cleaning out comments, dead code and other
        differences to minimize a diff - in a valiant if futile attempt to
        roll back changes into the id codebase.
        Note: I ignore the $SOS$ - these are unfortunate but will change
        in the same awkward way at their end.
        Note: I stick to #if 0 instead of C comments around dead code id
        kept (nested comments issue). The commentary is changed to sosYYMMDD
        and includes the token DEAD.
2001-02-20  Bernd Kreimeier  <>
        * CVS: update, then tag current version as
         cvs tag id1-27i-loki010219
        * SOS: patched up to sos010219.
        * code/qcommon/cm_trace.c (CM_Trace): fabs on sphere offsets (SOS).
        * code/game/bg_slidemove.c (PM_StepSlideMove): stepSize vs. STEPSIZE (SOS).
        * code/game/bg_pmove.c (PM_CheckDuck): fix in stand up check (SOS).
        * code/bspc/bspc.c (main): -capsule (SOS).
        * code/bspc/qbsp.h: below (SOS).
        * code/bspc/be_aas_bspc.c (capsule_collision): added (SOS).
        * code/bspc/aas_map.c (CapsuleOriginDistanceFromPlane): added and used (SOS).
        * code/bspc/aas_file.c (AAS_WriteAASFile): removed diagnostics recently
        added. No matter how long you wait, they'll always get you ;-).
        * code/botlib/be_aas_cluster.c: enabled LogWrites, different flood (SOS).
        * SOS: patching up to snapshot sos010219.
        Note: For brevity, I use as marker sosYYMMDD now instead of bkYYMMDD, to
        distinguish from changes not in SOS.
        *  CVS: tagged current version before patching up with SOS.
         cvs tag id1-27i-loki010216-bsd
2001-02-16  Bernd Kreimeier  <>
        * code/server/sv_init.c: DLL_ONLY sets sv_pure to 0 and ROM.
        TODO: determine good sv_pure policy for DLL-only servers.
        * code/renderer/tr_shade_calc.c: my_ftol implementation (BSD).
        * code/unix/Makefile: FreeBSD sections.
        TODO: include target-specific Make-freebsd etc.,
        include a Make-local not in CVS for build preferences,
        and generally clean up this mess.
        * code/unix/unix_glw.h: guard #error
        * code/unix/linux_snd.c: soundcard.h location (BSD).
        * code/unix/linux_glimp.c: guard system headers.
        Later: added Joystick stubs.
        Note: linux_ etc. prefixes start to loose meaning as we
        re-use most of this on UNIXes anyway. I didn't use Raf's
        freebsd_joystick.c but instead put generic stubs here.
        TODO: introduce generic -DNO_JOYSTICK flag.
        * code/renderer/tr_local.h: my_ftol guard.
        * code/renderer/qgl.h: FreeBSD guards.
        * code/qcommon/vm_x86.c: sys/types include on FreeBSD.
        * code/qcommon/md4.c: Win32 pragma guard.
        * code/qcommon/common.c: Com_Memcpy/Memset external.
        * code/game/q_shared.h: added FreeBSD defines.
        * code/game/q_math.c (BoxOnPlaneSide): FreeBSD conditional.
        TODO: check whether we have/need the assembly version anyway.
        * code/client/snd_mix.c: use C fallback on FreeBSD.
        Note: all of the above changes from the original port by Rafael Barrero.
        * CVS: tagged current version before merging FreeBSD related changes.
         cvs tag id1-27i-loki010215-ppc
2001-02-15  Bernd Kreimeier  <>
        * code/unix/Makefile: BSD related changes.
        * code/cgame/cg_draw.c: hacked phone jack rendering check for Debug.
        TODO: finish Debug, fix CG_DrawDisconnect !!!
        * code/unix/vm_x86.c: error on compile attempts. Fight redundancy!
        * code/qcommon/vm_x86.c (VM_CallCompiled): dummy for linkage on PPC.
        Note: DLL_ONLY is the global Makefile option for DLL-only builts.
        Currently only executed on Linux.
        * code/unix/unix_main.c: *ppc postfix for DLLs. Ignored the changes
        to redundant code (have to remove the unused Un/LoadDll/API calls).
        * code/server/sv_game.c (VMA): changed macro (see below). PPC.
        * code/qcommon/vm.c (VM_DllSyscall): see lengthy commentary by Ryan.
        The existing VM code makes certain assumptions about the layout of
        varargs on the stack, which fall apart with call conventions that
        don't even put all parameters on the stack (gcc on PPC, register-rich).
        Using a dedicated memory area as our own stack. This should actually
        be the default behavior.
        Later: make vm_* cvars INIT/ROM for DLL_ONLY target.
        * code/qcommon/common.c: PPC change (from Ryan Gordon).
2001-02-07  Bernd Kreimeier  <>
        * code/unix/unix_main.c: disabled FPE for debug for the time
        being (that is, until I can figure out
          Program received signal SIGFPE, Arithmetic exception.
          RB_BeginSurface (shader=0x449572e0, fogNum=0) at ..//renderer/tr_shade.c:307
          307 tess.shaderTime = backEnd.refdef.floatTime - tess.shader->timeOffset;
        without any NaN's involved.
        TODO: unmask other FPE's selectively (see Mike's Tribes2, no getenv though).
2001-02-06  Bernd Kreimeier  <>
        * SOS: up to date with todays snapshot.
        Note: got the date wrong, comment used was bk010205. Duh.
        * code/server/sv_snapshot.c (SV_UpdateServerCommandsToClient): below.
        * code/server/sv_main.c (SV_ReplacePendingServerCommands): new (SOS).
        * code/server/server.h: reliableSent (SOS).
        * code/renderer/tr_shade.c (ProjectDlightTexture): see below.
        * code/renderer/tr_scene.c: see below.
        * code/renderer/tr_public.h: see below (SOS).
        * code/renderer/tr_local.h: additive light support (SOS).
        * code/qcommon/cm_trace.c (CM_Trace): new tw.sphere.use branch (SOS).
        * code/game/g_spawn.c: notta, notq3a entities (SOS).
        * code/game/ai_dmq3.c: MAX_ACTIVATEAREAS search (SOS).
        * code/client/cl_cgame.c: see below.
        * code/cgame/cg_syscalls.c (trap_R_AddAdditiveLightToScene): below.
        * code/cgame/cg_syscalls.asm: see below (trap_R_AddAdditiveLightToScene).
        * code/cgame/cg_public.h: CG_R_ADDADDITIVELIGHTTOSCENE (SOS).
        * code/bspc/l_math.c: new VectorLengthSquared, removed rotate/matrix (SOS).
        * code/bspc/bspc.c (BSPC_VERSION): was 2.1e, now?
        * code/bspc/be_aas_bspc.c (BotImport_Trace): CM_BoxTrace sig. (SOS).
        * code/bspc/aas_file.c (AAS_WriteAASFile): SOS.
        * code/botlib/be_aas_sample.c (AAS_DeAllocAASLink): SOS.
        * code/unix/unix_main.c (Sys_LoadDll): do not load from installdir
        in NDEBUG (confusing relic from old Makefile). Postfix
        for debug binaries to let both builds coexist.
        * code/unix/Makefile: updated install targets and VERSION.
        * Win32: build from SOS snapshot.
        Note: Unix CR/LF in *.dsw/*.dsp fucks up MSVC++.
2001-02-02  Bernd Kreimeier  <>
        * SOS: all changes up to today.
        * code/server/sv_init.c (SV_TouchCGame): added. Also memset
        on reallocated client data (SOS).
        * code/qcommon/qcommon.h: see below.
        * code/qcommon/cvar.c (Cvar_SetLatched): new (SOS).
        * code/qcommon/cm_trace.c: more sphere test fixes (SOS).
        Note: SOS encryption key expired and updated by MrElusive.
        * code/qcommon/cm_patch.c (CM_TraceThroughPatchCollide):
        fix from MrElusive, fall through curved corner floors (q3dm17).
        Later: also in SOS (so is shadow FPE fix).
        * Win32: can't get an unadulterated SOS snapshot to build.
        First, fix CR/LF back again (Linux client converts all).
         find . -name '*.ds*' -print
         alias dos2unix='recode ibmpc..lat1'
         alias unix2dos='recode lat1..ibmpc'
        Next, find a *.dws that works? Nope, no cigar.
2001-02-01  Bernd Kreimeier  <>
        * Win32: have to update dsp/dsw/etc. files in CVS, too.
        * CVS: tag previous version before update
         cvs tag id1-27h-loki010131-beta3
        * code/game/q_math.c (Q_rsqrt): guard, #ifndef __linux__
        for assert (for Win32 build).
        TODO: assert replacement for Win32?
        * code/q3_ui/ui_qmenu.c: see below.
        * code/q3_ui/ui_players.c: see below.
        * code/q3_ui/ui_controls2.c: float const with f postfix
        Note: Win32 C4305 warning. Somebody at id has been doing
        a lot of these recently as well...
        * code/cgame/cg_players.c (CG_PlayerShadow): applied fix by
        MrElusive, removed FPE hack (player shadows on zero mormals).
        Prolly in this evenings' CVS.
        * code/server/sv_game.c: new signatures (capsule again).
        * code/server/server.h: new signatures (SV_Trace,ClipToEntity).
        * code/server/sv_bot.c: new signatures (above).
        * code/qcommon/cm_trace.c: a truckload of changes. Math
        code added before moved upwards. Capsule traces added all
        over the place, old box traces moved in conditional
        branches, functions renamed and wrapped. Eliminated some
        of the previous' versions deadcode to keep diffs smaller.
        TODO: once a point release is out and reasonably bug
        TODO  free, remove // bkYYMMDD annotations where SOS related.
        * code/qcommon/cm_public.h: new signatures in prototypes.
        * code/qcommon/cm_patch.c: dead code re-enabled, new
        sections (conditional branches for spheres) added to
        several trace functions.
        * code/qcommon/cm_local.h (CAPSULE_MODEL_HANDLE): added.
        * code/qcommon/cm_load.c (CM_TempBoxModel): capsules.
        * code/game/q_shared.h (Q3_VERSION): 1.27i now (new QVM traps).
        * code/game/g_syscalls.asm: see below.
        * code/game/g_public.h (SVF_CAPSULE): added (SOS). Also
        G_ entry poiints for capsule traces.
        * code/client/cl_cgame.c: see below.
        * code/cgame/cg_syscalls.c: see below.
        * code/cgame/cg_syscalls.asm: see below.
        * code/cgame/cg_public.h: new capsule trace code (SOS).
2001-01-31  Bernd Kreimeier  <>
        * Win32: test compile (WinCVS, MSVC++). Have to guard isnan.
        Note: too much shit going on....
2001-01-30  Bernd Kreimeier  <>
        * CVS: update for patching up (pre-1.27i).
        * SOS: new changes (new collision detection primitives).
        Now Version 1.27i.
        TODO: start testing using DLL's (QVM code is out of sync).
2001-01-25  Bernd Kreimeier  <>
        * SOS: caught up till today (below).
        * code/qcommon/cm_trace.c: new functions added: RotatePoint,
        TransposeMatrix, CreateRotationMatrix (SOS).
        (CM_TransformedBoxTrace): new rotation code used here.
        * code/q3_ui/ui_demo2.c: sizeof(extension). SOS.
        * code/game/g_cmds.c (G_SayTo): CON_CONNECTED.
        * code/game/ai_main.c: HOOK added (SOS).
        * code/botlib/be_aas_move.c (AAS_HorizontalVelocityForJump):
        correct fix for FPE occuring (SOS).
        * code/game/ai_dmq3.c: initmove.viewoffset (SOS).
        * code/game/q_math.c: guard asser/isnan with Q3_VM (q3asm).
        TODO: define Com_Error based assert macro? NDEBUG?
2001-01-24  Bernd Kreimeier  <>
        * code/server/sv_ccmds.c (SV_MapRestart_f): some debug.
        TODO: map_restart 0 disconnects external client in 1.27h?
        * code/renderer/tr_image.c (LoadTGA): added some commentary
        and dead code based on fixes from GtkRadiant (Leonardo found
        flipped TGA's).
2001-01-23  Bernd Kreimeier  <>
        * BETA3: finished testing, ready to upload to id FTP.
        Later: neither the FreeBSD beta not the Linux Beta3
        uloaded. Beta2 not yet released, and clients get
        disconnected with Beta2 and Beta3 on SV_MapRestart_f.
2001-01-22  Bernd Kreimeier  <>
        * code/client/cl_main.c (CL_InitDownloads): undid yesterday (SOS).
        * code/botlib/be_aas_sample.c (AAS_DeAllocAASLink): guard print (SOS).
        * code/server/sv_client.c (SV_DirectConnect): VM_Call disconnect (SOS).
        * code/qcommon/files.c (FS_ListFilteredFiles): trailing slashes (SOS).
        * code/game/g_cmds.c (SetTeam): print change (SOS).
        Note: the above plus VectorClear(v1) (below) are todays SOS changes.
        * code/cgame/cg_players.c (CG_PlayerShadow): ignore bogus
        (all zero) planes. This caused FPE in ProjectPointOnPlane.
        TODO: why does trace return zero normal planes?
        Note: gdb seems totally at loss with vec3_t arrays....
        * code/botlib/be_aas_sample.c (AAS_TraceAreas): FPE.
        NaN in uninitialized v1 that wasn't supposed to be referred
        to in this branch.
        * code/botlib/be_aas_move.c (AAS_HorizontalVelocityForJump):
        FPE divide by zero (zero zvel, zero t) for jump estimates.
        * code/client/cl_main.c (CL_Frame):1856. uivm==NULL on
        client after server crashed.
        TODO: check that uivm always non-NULL for client.
        TODO: do setenv(FX_NO_SIGNALS) to avoid exit errors...
        * code/unix/linux_glimp.c (GLW_SetMode): added "Indirect"
        Mesa token to software rendering detection. Reworded error
        output and added drivername.
        TODO: measure framerate instead?
2001-01-21  Bernd Kreimeier  <>
        * SOS: caught up with changes up until today.
        * code/server/sv_init.c (SV_SetConfigstring): gentity != NULL
        * code/server/sv_client.c: connect to "{all bots" server.
        * code/renderer/tr_init.c: JPEG extension on  screenshots
        * code/qcommon/files.c: modes based on mods, fs_basegame
        * code/q3_ui/ui_demo2.c: dm3 extension (demo names, protocol).
        * code/game/g_client.c: savedEvents[] removed.
        * code/game/bg_misc.c: event sequence fixes.
        * code/client/snd_dma.c (S_StopBackgroundTrack): different use.
        * code/client/cl_main.c: demo file handling changed (names).
        Also CL_InitDownloads: always next download.
        * code/cgame/cg_servercmds.c: cg_thirdPerson.
        * code/cgame/cg_weapons.c: see below.
        Also CG_ShotgunPattern: different call (seed parameter).
        * code/cgame/cg_main.c: see below.
        * code/cgame/cg_local.h: new cg_noProjectileTrail Cvar.
        * code/cgame/cg_effects.c (CG_BubbleTrail): early out (above).
        * code/bspc/l_poly.c (BOGUS_RANGE): increased.
        * code/bspc/bspc.c: applied patch up to "2.1e"
2001-01-18  Bernd Kreimeier  <>
        * code/ui/ui_main.c: below.
        * code/q3_ui/ui_main.c: UI_HASUNIQUECDKEY comment.
        Note: mods have to return qfalse. See Bug #2890 in Fenris.
2001-01-17  Bernd Kreimeier  <>
        * BETA2: finished testing, uploaded to id's FTP for release.
2001-01-16  Bernd Kreimeier  <>
        * CVS: checking in preparation for Beta2.
         cvs tag id1-27h-loki010116-beta2
        * SOS: new bspc "2.1e". No change on 1.27h.
        * TEST: patch-up seems to work fine. No new files have been added
        to the linkage (i.e. the ft2/ files now added), so we might not be
        feature complete.
        * code/game/g_active.c (ClientThink_real): id MISSIONPACK
        conditional in addition to the ones I added earlier.
        * code/qcommon/files.c: REJECT. Linux hack for userdir threw it off.
        * code/qcommon/unzip.c: REJECT. CRC-32 section removed.
        Later: unused tempB
        * code/q3_ui/ui_syscalls.asm: REJECT. Start/StopBackgroundTrack.
        * code/ui/ui_syscalls.asm: REJECT. syscalls ids from 1.27h
        as of SOS (floor/ceil - will this ever get straightened out)
        * code/win32/win_input.c: REJECT. g_pMouse edit.
        * ui/menus.txt: REJECT. Replaced with 1.27h version.
        Note: some more due to $SOS$.
        * ui/: new scripts.,, ingame.txt,
        * code/ft2/ttconfig.h: below.
        * code/ft2/sfconfig.h: below.
        * code/ft2/pstables.h: below.
        * code/ft2/psnames.c: below.
        * code/ft2/psdriver.h/c: below.
        * code/ft2/keys.h: below.
        * code/ft2/ftbbox.c: new in 1.27h
        * code/cgame/cg_newdraw.c: beware: cg_newDraw.c gets lost in diff easily.
        * code/cgame/cg_rankings.c: file removed from SOS.
2001-01-15  Bernd Kreimeier  <>
        * Patch-up: patching up from RC4 to 1.27h current.
        No changes since 010112 snapshot.
        ln -s sos010112/ work
        diff -urbB sos001204-rc4/ work > work.diff
        ln -s cvs-1.27g/ work
        patch -p0 < work.diff  > work.patch
        find cvs1.27g/ -name '*.rej' -print
        * SOS: adding the remaining SOS snapshots to CVS.
         cvs import Quake3_sos sos001211 pr1-27g-win32-001211
        Note: at this point id warned about repository corruption.
        Watch out for the syscall stuff in particular.
         cvs import Quake3_sos sos010104 pr1-27g-win32-010104
         cvs import Quake3_sos sos010108 pr1-27h-win32-010108
         cvs import Quake3_sos sos010110 pr1-27h-win32-010110
         cvs import Quake3_sos sos010112 pr1-27h-win32-010112
        Note: the first 1.27h might be the public (server only)
        beta released, the second one was post release. Beware
        of source files added and removed (botlib headers, FT2).
        Note: why so late? Don't ask...
2001-01-08  Bernd Kreimeier  <>
        * SOS: id's working up to 1.27h (server side fix for
        Guard exploit seems to force earlier release). Updating
        CVS (most of the changes are debug code put in and
        then disabled, plus some fixes as below). Next patching
        up to current SOS.
2001-01-07  Bernd Kreimeier  <>
        * Makefile: need to rework this for multiple platforms.
        We also need null/null_vm.c for platforms where we don't
        have JIT (assembly emit).
2001-01-04  Bernd Kreimeier  <>
        * code/q3_ui/ui_connect.c (UI_DisplayDownloadInfo): time
        information for current (vs. start of download) is wrong,
        thus negative 1 "estimated time", as well as transfer
        rate just negative downloadSize. Not fixed.
        * code/unix/unix_main.c (Sys_ParseArgs): added.
        Note: for support/us, to identify builts. This is only
        a skeleton right now - if I ever feel the need to support
        more than "-v" and "--version" I'll have to flesh this out.
        * code/unix/linux_glimp.c (signal_handler): see below.
        * code/unix/unix_main.c (Sys_Exit): added an abstraction
        layer for exit/_exit/assert/raise issues.
        Note: need both a better debug/backtrace handling, and
        have to find a way to determine why/where the alleged
        startup/exit errors happen...
2001-01-03  Bernd Kreimeier  <>
        * code/game/g_mem.c (G_Alloc): ERR_DROP initiated by
        addbot commands for large sv_maxclients, allegedly
        caused segfaults in 1.17. Not reproducible.
        TODO: recover more gracefully from failure to add bot?
        * code/renderer/tr_light.c (R_LightForPoint): Tim Angus
        reports a crashbug with nolight maps. Also assertion in
        R_SetupEntityLightingGrid, might want conditional there.
        DONE: fixed crash on LightForPoint for nolight maps.
        * code/qcommon/qcommon.h: NUM_SERVER_PORTS. A feature
        request to increase this, or make it more flexible
        otherwise (Fenris).
        TODO: id decision on more flexible NUM_SERVER_PORTS.
2001-01-02  Bernd Kreimeier  <>
        * code/unix/snapvector.nasm: fixed FPU bit (the current
        one had reserved bits off, behavior should not change).
        * code/qcommon/vm_x86.c: fixed symbols (below).
        * code/unix/ftol.nasm: FPU bits weren't correct (duh).
        DONE: shoot-though floor (q3dm5)
        DONE: cursor-in-rect off  (TA/Player model selection)
        Note: in gdb, "disassemble <funcname>" is your friend.
        * code/cgame/cg_public.h:  CG_MEMSET is set to 100. In
        cg_syscalls.asm it's 101. If I change it I get Bad trap 100
        from the cgame VM code, so the 1.27g "official" VM code
        uses it.
        * code/unix/linux_common.c: have to fall back to C, the
        current assembly is buggy...
        * code/unix/Makefile (linux_common.o): added.
        Later: also for dedicated. Less portable this way.
        TODO: C_ONLY for dedicated on non-i386 only?
        * code/qcommon/common.c: do not use memcpy/memset under Linux.
        * code/unix/linux_common.c: added Andrew's assembly port.
        TODO: C_ONLY for Com_Memset/Memcpy? Conditionals are fubared.
        * code/qcommon/vm.c (VM_Init): use Win32 defaults (do not
        use DLL's by default). This exposes DLL rounding errors
        (damage through floors), and we don't want DLL's used by
        default anyway.
        TODO: why vm_ui default of 1?
        * code/botlib/l_precomp.c (SourceWarning): removed assert.
        * code/game/bg_lib.c (acos): defined, but we don't actually
        use it except where the cg_syscalls.asm trap is used.
        * code/game/g_public.h: missing lots of trap tokens.
        * code/game/g_syscalls.c: missing lots of traps.
        * code/game/g_syscalls.asm: more inconsistent hooks, were:
         equ floor                                      -111
         equ ceil                                       -112
         equ testPrintInt                               -113
         equ testPrintFloat                             -114
        now changed to match cg_syscalls.
        Note: fixed this in UI earlier, how did this slip through
        the diffs against SOS?
        * code/game/g_syscalls.c: no acos hook.
        * code/cgame/cg_syscalls.c: no acos hook.
        * code/cgame/cg_syscalls.asm: has acos hook as -112
        Note: report from Tim Angus. The acos function is in bg_lib.c
        which is linked only into ui (not q3_ui). That means we are
        using libc acos right now?
        Note: QVM traps are negative?
        * BSD/Irix: tagged current CVS (not all of the below) as
         cvs tag id1-27g-loki010102-bsd1
        for BSD work (Rafael Barrero). Also be used for Irix update.
2001-01-01  Bernd Kreimeier  <>
        * SOS: adding the remaining SOS snapshots to CVS.
         cvs import Quake3_sos sos001201-rc3 pr1-27f-win32-001201-rc3
         cvs import Quake3_sos sos001202 pr1-27f-win32-001202
         cvs import Quake3_sos sos001204 pr1-27g-win32-001204-rc4
        This is the codebase to which the Linux branch has been patched
        up. I can't verify whether this is identical to the RC4 codebase
        as the tag doesn't work (but can check against the ZIP file..)
         cvs import Quake3_sos sos001211 pr1-27g-win32-001211
        The above snapshot contains a (post-release?) fix to ui_syscalls
        in ui/ and q3_ui/. This change has been used in Linux (Beta1 and
        above). At this point, id discouraged further use of SOS due to
        repository corruption on their end. No further snapshots were
        taken since.
        * Fenris: since the release of the Beta1 bugs have been
        maintained at I am going to
        list issues here as they get fixed.
2000-12-21  Bernd Kreimeier  <>
        * code/renderer/tr_font.c: graceful silence with old mods?
        * code/botlib/l_precomp.c (SourceWarning): graceful exit if old mod?
2000-12-20  Bernd Kreimeier  <>
        * code/server/sv_ccmds.c (SV_MapRestart_f): see below.
        * code/qcommon/vm.c: currentVM is 0x0 in VM_ArgPtr.
        In VM_Call, oldVM was NULL - made conditional the
        reset of currentVM to oldVM.
2000-12-18  Bernd Kreimeier  <>
        * BETA1: closed Linux beta release. Stripped debug
        and release binaries, DLL's, and pak4.pk3. CVS checkin,
        will be tagged as
            cvs tag id1-27g-loki001218-beta1
        Later: id added a pak5.pk3 to the Win32 point release,
        added this to the BETA1 best.
        * code/qcommon/vm_x86.c: C37F.
        * code/unix/snapvector.nasm: C37F.
        Note: short of any real evidence, I gamble and use max.
        precision (as well as default Linux precision, but NOT
        Win32 precision). It seems that precision change is not
        really an issue (despite Graeme's claim that the cursor
        in the menu was/is off). I also pick the roundiung behavior
        that is seemingly used by ANSI and gcc (but possibly not
        Win32 _ftol depending on build).
2000-12-15  Bernd Kreimeier  <>
        * code/unix/Makefile: added snapvector.o
        * code/unix/unix_shared.c: #if 0'ed the old snapvector code.
        * code/unix/snapvector.nasm (Sys_SnapVectorCW): two new
        assembly functions from AndrewH that explicitely set the
        FPU control word to convert vec3_t, to ensure cross-platform
        behavior for both DLL and QVM.
        * code/unix/ftol.nasm (Q_ftolC37F): for globals.
        * code/unix/unix_main.c: took out global FPU manipulation.
        For clarity this should be VM only.
        * code/qcommon/vm_x86.c: added prototypes for the ftol
        library. To select a specific behavior for the entire VM,
        set ftolPtr accordingly.
        Later: the GCC ftol function of course affect the stack
        (there is no "declspec naked"). The problem seems to be
        that the VM never handles the stack in a way compatible
        to regular gcc C functions. For some odd reason _ftol seems
        to do the right thing under Win32. All 4 control words
        implemented at the moment work just fine with the menus.
        * code/unix/ftol.nasm: added a small library of "safe" qftol
        variations that explicitely set the control word to the
        relevant (4) possibilities.
2000-12-13  Bernd Kreimeier  <>
        * code/qcommon/vm_x86.c: an entire day spent trying to nail
        the ftol issues. It breaks down like this: id used to use
        an unsafe (no setting FPU control word) fistp. That seemingly
        caused subtle physics bugs which nobody cared about in 1.17.
        They then changed the UI code, and ran into the UI bugs:
        menu entries shifted to the right, fonts vanishing. Then
        they switched to using _ftol. Then they had to reproduce
        the old behavior for the physics code due to public outrage.
        My original port used a simple (long)float cast, which gcc
        seemingly compiles to code that does OR 0C00 on whatever
        current control word (precision unchanged). This breaks the
        menus. If I use the unprotected fistp instead, which should
        (Linux 037F default) use "nearest/even", then my menus are
        correct. That would mean Win32 _ftol in id's compile does
        the same, only that would require /qifist or some equivalent
        compile flag, which I can't find. Two disassemblies of _ftol
        I got from others showed OR 0C00 as part of the default (ANSI)
2000-12-13  Bernd Kreimeier  <>
        * code/game/bg_pmove.c (PmoveSingle): trap_SnapVector.
        The one true and single call to snap velocity.
        Note: bspc/map.c:void SnapVector(vec3_t normal)
        qcommon/cm_patch.c:void CM_SnapVector(vec3_t normal)
        game/q_shared.h: #define SnapVector(v) {v[0]=((int)(v[0]));...
        * code/client/cl_cgame.c: CG_SNAPVECTOR.
        * code/server/sv_game.c:  G_SNAPVECTOR.
        Note: these go through trap_SnapVector in syscalls.
        * code/unix/unix_shared.c (Sys_SnapVector): sticking to
        old Linux version for now...
        * code/win32/win_shared.c (Sys_SnapVector): changed.
        Note: Graeme points out this was changed to fix ftol
        TODO: calculate errors for various ftol variants...
        * code/qcommon/vm_x86.c: both the old fistp code (1.17)
        and the new qftol function apparatently work. Using the
        ftol.nasm code for now.
        * code/unix/Makefile: DO_NASM and ftol.o.
        * code/unix/ftol.nasm (qftol): created from Mike's SoF
        replacements, with Andrew's help to satify the VM
        stack/call requirements.
        TODO: use Q_ftol herein to replace myftol elsewhere.
        * code/unix/unix_main.c (Sys_ConfigureFPU): SIGFPE.
        TODO: divide by zero in botlib. Disable this for now.
        Note: we can't introduce calculation differences between
        versions, so fixing these will have to wait.
        * code/qcommon/vm_x86.c: two new lines in Win32 branch
        missing from Linux assembly in AsmCall:
         mov eax, dword ptr [edi]
         and eax, [callMask]
        Added, doesn't seem to affect UI etc. bugs.
        Later: no FTOL_PTR, use fistp non-IEEE assembly as in old
        version. This seems to work for Q3 and TA, while qftol
        (simple cast) does not - for Win32 Graeme says the reverse
        is true.
        * code/qcommon/vm_x86_old.c: used the old cvs-1.17 version.
        Two fixes (Hunk_Alloc, Com_Memcpy), and it works:
          +set vm_game 2 +set vm_ui 2 +set vm_cgame 2
        UI, cgame and game w/o apparent problems.
2000-12-12  Bernd Kreimeier  <>
        * code/unix/Makefile: cleanup of redundant flags.
        Removed bogus MALLOC_CHECK (note to self: export MALLOC_CHECK_=2).
        Also DO_SHLIB_CC on all UI DLL's.
        Added and removed DEBUG_VM flag.
        TODO: figure out whether Zoid did UI this way intentionally.
        Note: this seemingly fixed the botimport problem, although
        most of the changes were just redundant CFLAGS removed. Given
        our wanker toolchain, should have been more paranoid. All
        DLL's can now be used w/o apparent problems.
        * code/server/sv_main.c: gvm init.
        * code/server/sv_game.c: gvm assertions.
        * code/unix/unix_main.c (Sys_LoadDll): print vmMain
        Note: top no avail. There is some odd ld/gdb problem here
        that prevents examining globals and obfuscates part of
        the stack between VM_Call and lower level code, through
        G_InitGame. This is not just DLL's being loaded and unloaded.
        Wromg flags during build? The vmCvar for "bot_developer"
        ends up overlapping global botimport in memory, which
        thus zero-fills part of the function pointer table.
        * code/server/sv_bot.c (SV_BotInitBotLib): this (by way of
        GetBotLibAPI) is responsible for setting botimport, which,
        if using the game DLL, is not properly set up. Called in
        * code/game/q_shared.c: Q_strncpyz does zero padding (duh).
        Note: calls strncpy, which does a zero fill up to destsize.
        If destsize exceeds memory size, zero padding will overwrite
        adjacent memory. Suspicion was this happend to botimport.
        * code/qcommon/cvar.c: possible problem in Q_strncpyz call.
        * code/botlib/be_ai_weap.c (weaponinfo_fields): made this static.
        Note: it seems that the "number" string got replaced by
         p def.fields[0]
         {name = 0x40000000 "\177ELF\001\001\001", offset = 2, type = 50, ..
        Memory corruption?
        * code/game/inv.h (WEAPONINDEX_GAUNTLET): defined here.
        * botfiles/weapons.c (Gauntlet): the baseq3/ parser
        breaks here:
         number                         WEAPONINDEX_GAUNTLET
        * code/botlib/l_precomp.c (SourceWarning): added assertion to
        trap botlib parsing problem..
        * RC1: for beta test. Using my own vm/ui.qvm files in this case.
        TODO: Setup with nouninstall.
        TODO: fix game DLL/ botlib setup problem (so all DLL's work)
        TODO: SIGFPE
        TODO: profile?
        * code/unix/Makefile (ai_vcmd.o): added to game DLL linkage.
        How the fuck did this happen?
        DONE: " undefined symbol: BotVoiceChat_Defend"
        * TEST:  +set vm_ui 2 (vm_x86, not interpreter). Breaks!
        Further: qagame had undefined, but seemingly gets reloaded
        second try (I hate the Linux linker).
        * TODO: never reload fail DLL, abort engine
2000-12-11  Bernd Kreimeier  <>
        * TEST: recompile QVM/DLL and executable to test new UI code.
        The UI QVMs from the paks still do not work.
        * SOS: changes in UI code!
        * code/q3_ui/ui_public.h: this file is deprecated
        Note: e.g. it does not contain the background track calls.
        * code/ui/ui_public.h: the uiImport_t enum here determines
        the values.
        * code/ui/ui_syscalls.asm: same as q3_ui now, were:
         equ floor                                      -111
         equ ceil                                       -112
        * code/q3_ui/ui_syscalls.asm: these are now switched, were:
         equ trap_S_StartBackgroundTrack                        -63
         equ trap_S_StopBackgroundTrack                         -64
        The new values match the ui/ equivalent. Also, floor (-108)
        and ceil (-109) are different in ui/.
        * CVS: going to check in this snapshot and tag it as
            cvs tag id1-27g-loki001209-rc4
        Presumed equivalent to SOS tag "1.27g RC4" (master). As I can't
        obtain the tagged code using SOS (neither Win32 nor Linux client)
        I can only guess.
        * TEST: use my own VM code, ion baseq3/vm/*.qvm and missionpack/vm/.
        This works - in other words, the menu bug seems in the UI code, and
        is fixed in my codebase.
        * TEST: make release.
        Note: I can postpone DLL specific problems. Bad performance is not
        as important as outright bugs. Thus the UI QVM issue is the only
        one that stops me from creating an RC.
        TODO: Q3 UI QVM code from pak file does not work (neither does TA).
        TODO: sound with video playback still awful. Threaded sound, I guess.
        TODO: ERROR: couldn't open demos/DEMO002.dm3.dm_48 (same demo001.dm3.dm_48)
        TODO: do not show Q3 demos in TA menu?
        TODO: new demos for Q3? Or at least error message?
        * code/game/bg_lib.c: itrinsics excluded by Q3_VM (another -O
        compile). Uninitialized variable.
        * code/unix/Makefile: -O for uninit on patched code. Also shortcuts.
        TODO: DC_ONLY seems an obsolete flag, used in Makefiles, not source.
        * TEST: +set sv_pure 0 +set vm_game 1 +set vm_cgame 1 +set vm_ui 0
        Turns out that the pak0.pk3 UI QVM code is seemingly broken in TA
        and Q3, but my UI DLL is not. In reverse, the QVM game/cgame for
        Q3 seems to work quite well (including bots). The TA game/cgame
        also works, including botlib init.
        TODO: BotLib Init using game DLL gives:
        TODO:  Error: file weapons.c, line 38: unknown structure field number
        TODO:  Fatal: couldn't load the weapon config
        TODO:  Error: BotLoadMap: bot library used before being setup
        * TEST: checked the CD tree against
        my test install. baseq3/pak4.pl3 and missionpack/pak0.pk3
        are identical, but I finally recognized that there was
        a missionpack/pak1.pk3 not in the final install - left over
        from an earlier update from id. Doesn't seem to affect the
        DLL based runs at all.
        Note: I still do not have the final CD snapshot Robert
        promised me mid last week, they haven't even fixed the
        FTP account they took down. Communication with id is as
        abyssmal as ever.
2000-12-08  Bernd Kreimeier  <>
        * TEST: running with RC4 data files.
        TODO: "bot library used before setup" (Q3+TA)
        TODO: Q3 old mods wreak havoc (graceful bounce)
        TODO: supress "FreeType code not available" in renderer
        TODO: can't move in Q3
        TODO: items flicker in Q3
        TODO: no decals in Q3
        TODO: VM UI code still broken (Q3+TA)
        TODO: sound code is awful
        TODO: video playback inferior to earlier builds
        * code/q3_ui/ui_local.h: prototype trap_VerifyCDKey(..)
        * code/game/g_active.c ( StuckInOtherClient): TA only.
        * code/cgame/cg_draw.c: 4x unbalanced `#endif' - from patch?
        * code/null/null_client.c (CL_CDKeyValidate): dummy added.
        * code/qcommon/common.c: Q_acos missing, changed conditionals
        * code/qcommon/vm_x86.c: unreacheable _asm instruction that
        gcc doesn't quite like... #if 0'ed for now
        TODO: understand _asm { mov eax,[ebx] }, fix it for gcc
        * TEST: compile...
        * code/ui/ui_main.c: full REJECT. Manual merge.
        Note: preserved debug_protocol lines, who knows what it's good for.
        * code/qcommon/files.c: REJECT. SafeMode, demo server FS_Restart.
        * code/client/snd_mem.c: REJECT: $SOS$.
        * code/client/snd_dma.c: REJECT: $SOS$.
        * code/client/cl_cin.c: REJECT. com_timescale, $SOS$.
        * code/cgame/cg_draw.c: REJECT. Lots, but virtually all either
        float postfix (on some, not all places), or #ifndef MISSIONPACK
        that I had already put in during -Werror (conditional unused).
        * code/cgame/cg_consolecmds.c: REJECT. id commented unused code
        that I had #if 0'ed earlier.
        * code/game/: three REJECT for $SOS$.
        * code/botlib/: lots REJECT for $SOS$.
        * Patch: patching up from demo source.
        ln -s sos001204-rc4 work
        diff -urbB sos001122-demo/ work > work.diff
        ln -s cvs-1.27b/ work
        patch -p0 < work.diff  > work.patch
        find cvs1.27b/ -name '*.rej' -print
        * CVS: going to check in this snapshot and tag it as
            cvs tag id1-27b-loki001208-demo
        Then patching up to RC4, as of sos001204-rc4 (no changes since,
        should be equivalent to SOS tag "1.27g RC4" (raduffy), i.e. master.
        * TEST: installed demota/ from Win32 distribution. Binary
        fails claiming "Corrupted pak0.pk3". Abandoned.
        Note: a Linux demo for Q3TA has no priority. Most important is
        the Q3A point release in time for Q3TA hitting shelves, followed
        by testing for Q3TA. The source is in CVS and tagged (see above)
        in case a demo matching the released files has to be provided
2000-12-07  Bernd Kreimeier  <>
        * TEST: compile and link - succeeds.
        * code/ui/ui_main.c: UI_StopServerRefresh now uaws.
        New unused variables.
        * code/unix/unix_main.c: added  Sys_LowPhysicalMemory() stub.
        TODO: write Linux equivalent to GlobalMemoryStatus.
        * code/qcommon/common.c: Com_Memset/Com_Memcpy. Neither assembly
        nor C versions included if not on Win32 i386.
        TODO: using/porting assembly?
        * code/qcommon/files.c: unused variable.
        TODO: fs_scrambledProductId unused if 0 for now.
        Note: -DFS_MISSING for id's pak cleanup, not used.
        * TEST: compile and link - fails.
        * code/macosx/Client/Makefile.postamble: empty ORIG.
        * code/macosx/Client/Makefile.preamble: ORIG. $(BOTLIB_OBJS) added.
        * code/server/sv_client.c: ORIG. Com_Memset.
        * code/renderer/tr_shader.c: ORIG. Com_Memset, CIN_Shader.
        * code/qcommon/vm_x86.c:  ORIG. Com_Memcpy.
        * code/qcommon/unzip.c: REJECT. Com_Memcpy, $SOS$.
        * code/qcommon/qcommon.h: ORIG. PROTOCOL 47, plus Sys_LowPhysicalMemory.
        * code/qcommon/md4.c: Com_Memset,Com_Memcpy (ORIG).
        * code/qcommon/files.c (Sys_ConcatenateFileList): REJECT.
        Our additons threw it off, plus $SOS$.
        * code/qcommon/common.c: they fixed same unused variables (REJECT).
        * code/ui/ui_shared.c: additions (ORIG).
        * code/ui/ui_gameinfo.c: COM_Compress added (ORIG).
        * code/ui/ui_atoms.c: print statements removed (ORIG).
        * code/ui/ui_main.c (UI_DoServerRefresh): REJECT on comment edit...
        * code/game/g_cmds.c (Cmd_VoiceTaunt_f): logic changed heavily. ORIG.
        * code/game/q_shared.h: Q3_VERSION "Q3 Team Arena Demo 1.27b"
        plus Com_Memset, Com_Memcpy, CIN_shader, COM_Compress.
        * code/game/g_main.c: Cvar change only
        * code/game/ai_dmq3.c: $SOS$.
        * code/client/snd_mix.c: Com_Memset
        * code/client/client.h: additions (ORIG).
        * code/client/snd_mem.c: see below.
        * code/client/snd_dma.c: $SOS$ (CVS keyword).
        * code/client/cl_cin.c: they removed unused (REJECT).
        * code/cgame/cg_servercmds.c: ORIG. compress, noTaunt etc.
        * code/cgame/cg_main.c: ORIG. Conditonal branch, COM_Compress.
        * code/cgame/cg_consolecmds.c: ORIG. Cvar values changed.
        * code/cgame/cg_draw.c (CG_DrawTeamBackground): ORIG.
        no reject but *.orig file created. I just mark spots were
        code changed after verifying the patch succeeded.
        * code/cgame/cg_event.c: fixed reject (REJECT).
        * code/botlib/: all *.rej here due to SOS/CVS $Keyword$.
        TODO: preserve SOS comments/rev history somehow.
        * Patch: patching up to demo source.
        ln -s sos001122-demo work
        diff -urbB sos001119/ work > work.diff
        ln -s cvs-1.26/ work
        patch -p0 < work.diff  > work.patch
        find cvs1.26/ -name '*.rej' -print
        * CVS: going to check in this snapshot and tag it as
          cvs tag id1-26w-loki001207
        to prepare for upgrading to RC4. I have already made
        many more changes than I wanted to w/o getting any
        closer to pinpointing the problem, I might as well
        patch up to id's more current sources.
        * code/botlib/be_interface.c: initialize by memset. Turns
        out that this fails in Export_BotLibSetup on BotSetupWeaponAI
        loading "weapons.c" (from the pak, presumably) with an unknown
        structure field number. Mismatch of datafiles vs. source again.
        TODO: id replaced memsets in later source.
        TODO: have memsets on all exports and imports.
        * SOS: RC4 source should be tagged "1.27g RC4" (raduffy).
        Unfortunately the Linux client doesn't care a bit. Show
        History does work if from/to date differ by at least a
        day, and it shows the tag on code/ (only that subtree),
        but recursive get aborts halfway.
2000-12-06  Bernd Kreimeier  <>
        * TEST: accepting missing shaders now. No bots, but I can
        actually enter the game and play (more than can be said for
        classic Q3 right now).
        TODO: Error: BotStartFrame: bot library used before being setup
        * code/renderer/tr_shader.c: took out assertion for now...
        * TEST: now missiopack/cgame loads
        TODO: tr_shader.c:2275: R_FindShaderByName: failed
        TODO: searches ui/assets/3_cursor2.TGA, has ui/assets/3_cursor3.tga
        * code/unix/Makefile (MPCGOBJ): ui_shared.o (duh).
        DONE: / undefined symbol: PC_Float_Parse
        * code/botlib/be_ai_goal.c: initialize campspots etc. This
        might or might not fix this one (didn't get back to gdb due
        to mouse-only navigation).
        DONE: 0x80d1d5b in BotFreeInfoEntities () at be_ai_goal.c:447
        * TEST: this time with missionpack/cgame loading... noy
        TODO: TA menu blocked after end of intro movie
        TODO: console in_mouse 1 doesn't grap pointer even on vid_start?
        * code/cgame/cg_newdraw.c: -Werror.
        * code/unix/Makefile (MPCGOBJ): cg_newdraw.o was missing (duh).
        DONE: missionpack/ undefined symbol: CG_OwnerDrawVisible"
        * code/ui/ui_shared.c:1309 assign after bail on NULL.
        DONE: segfault in Item_SetFocus (item=0x0, x=0, y=0)
        * TEST: new set of DLL's (this time hopefully correct).
        All baseq3/ DLL's load, as does the missionpack/ UI DLL.
        The menus now work in both (TA seems mouse-only on everything
        but "Quit"). Segfault on delayed TA "Quit" (stack fubared):
        #5  0x809fc28 in VM_Call (vm=0x88408a0, callnum=3) at ..//qcommon/vm.c:617
        #6  0x805aafc in CL_KeyEvent (key=9, down=qtrue, time=128644) cl_keys.c:1194
        TODO: TA menu's w/o mouse?
        TODO: Win32 goes submenus but does not unfold
        TODO: Linux does not go submenus
        * code/ui/ui_main.c: see below.
        TODO: LCC gets fits -  operands of = have illegal types
        TODO: 'pointer to const unsigned char' and 'pointer to const char'
        * code/ui/ui_shared.c: see below.
        * code/ui/ui_gameinfo.c: see below.
        * code/ui/ui_atoms.c: see below.
        * code/game/g_bot.c: more cruft.
        * code/cgame/cg_draw.c: loads of functions modified for
        MISSIONPACK that aren't used at all for MISSIONPACK anymore.
        Development relics.
        * code/cgame/cg_consolecmds.c: -Werror.
        Note: due to Makefile error never ever compiled...
        * code/unix/Makefile: fixed various dependency errors
        for game and ui library.
        TODO: create a new Makefile with patsubst and rules.
        TODO: why C_ONLY in the i386 dedicated server?
        * code/unix/unix_main.c: use dlerror() excessively.
        Littered more unused DLL related functions with assert(0).
        TODO: clean up Sys_Load/UnloadDll (a real mess)
        TODO: remove Zoid code cruft (unused per-DLL functions)
        * code/game/bg_misc.c: changed G_Printf for Com_Printf.
        This was undefined in baseq3/ preventing loading.
        * TEST: +set sv_pure 0 +set vm_game 0 +set vm_cgame 0 +set vm_ui 0
        Note: so far I used only the game DLL..  duh.
        UI DLL fails to load: missing G_Printf.
        * code/unix/Makefile:  -DMALLOC_CHECK in addition to
        the -DZONE_DEBUG I have used since switching to calloc.
        Using MALLOC_CHECK=1 for now, might use 2 if something
        comes up.
        * code/renderer/tr_init.c (GL_SetDefaultState): it does get
        called, but does not show up in the log.
        * TEST: tried executing a script - get bounced.
        TODO: is there any way to jump into a map?
        TODO: cl_cinematics 0 (supress all fullscreen RoQ)
        Next: used r_logfile 200 in Win32 (RC4) and Linux.
        There is a buckload of setup code seemingly not done
        at all in Linux? Either that, or logging is enabled
        with a delay in Linux.
        * code/unix/linux_glimp.c: fixed autorepeat (H2/Fakk2 way).
2000-12-05  Bernd Kreimeier  <>
        * code/renderer/tr_mesh.c: added assert there.
        * TEST: menus and in-game drawing are just as they were with
        the initial SOS001119 port. In addition:
          R_AddMD3Surfaces: no such frame 0 to -2147483477
             for 'models/players/xaero/upper.md3'
          R_AddMD3Surfaces: no such frame -2147483477 to 171
          R_AddMD3Surfaces: no such frame 171 to -2147483498
        ad nauseam (used as my player model).
        Triggered: haveing a trRefEntity_t *) 0x41dbbd00 with
        frame = -2147483477. Might be a red herring (PRINT_DEVELOPER),
        ignore for now.
        * code/ui/ui_main.c: missing return.
        * code/ui/ui_shared.c: excess byte in initializer (which gcc
        did not caught, but LCC did). Also LCC complains about
        missing returns, but gcc doesn't (neither says unreacheable
        code though). If necessary (MsVC?) guard with Q3_VM.
        * code/q3_ui/ui_ingame.c: see below.
        * code/q3_ui/ui_atoms.c: voidfunc_f. LCC warns about conversion
        from `pointer to void' to `pointer to void function(void)'
        being compiler dependent. Casting NULL. Guess what, doesn't fix
        it either.
        TODO: do not use these cursed scripts to generate VM code,
        we do not have proper rules for LCC/q3asm, thus the files never
        get updated.
        * code/unix/Makefile: for paranoia's sake recreated the 1.17
        compile for the UI DLL (where only q_shared/math were actually
        compiled as DO_SHLIB_CC.
        Later: switched to different gcc.
        * STATIC: remaining problems are vmMain (same entry point for all
        DLL's), could use cgMain, uiMain and gMain here for HARD_LINKED.
        Note: I don't think id has used this in ages.
        Plus all the collisions in *_syscalls.c, which simply can't be
        fixed cheaply. None is the superset of 2 others, neither seems
        w/o overlap to others. Full stop.
        * code/botlib/be_aas_move.c: see below.
        * code/game/ai_dmq3.c: VEC_UP/DOWN, MOVEDIR_UP/DOWN now static.
        See also game/g_utils.c for existing static duplicates.
        * code/game/q_shared.h: #define stricmp strcasecmp
        * code/unix/Makefile:  no mo'  -Dstricmp=strcasecmp, see q_shared.h
        Also: no mo'  -I/usr/include/glide, no FX
        TODO: are we building against system GL headers? ../Mesa/?
        * code/q3_ui/ui_atoms.c: comment on duplication
        * code/cgame/cg_drawtools.c: use UI/CGAME_HARD_LINKED on UI duplicates
        TODO: does this UI_ code in cg_drawtools/ui_atoms belong into ui_shared?
        * code/unix/Makefile: use -DQ3_STATIC
        * code/game/q_shared.h (*_HARD_LINKED): trigger on Q3_STATIC
        Later: collision between UI and CGAME is still there. This fixed
        the Com_Error, Com_Printf issues though
        * code/unix/Makefile ($(B)/q3static/ai_vcmd.o): this file was
        missing, hence undefined symbol.
        ($(B)/baseq3/game/ai_vcmd.o): same here.
        ($(B)/missionpack/game/ai_vcmd.o): same here.
        * STATIC: cg_syscalls.c, g_syscalls.c and ui_syscalls.c alias.
        Multiply defined symbols:
         Com_Error, Com_Printf
         VEC_UP, VEC_DOWN
         trap_SnapVector  // used in game/bg_*.c, needs conditional
        More aliasing between ui_atoms.c and cg_drawtools.c:
        Undefined symbol: ai_team.o: In function `FindHumanTeamLeader':
         ai_team.c:1899: undefined reference to `BotVoiceChat_Defend'
        * code/game/g_main.c: unused.
        * code/game/g_arenas.c: unused.
        * code/game/ai_team.c: init.
        * code/game/ai_dmnet.c: /* in comment (odd).
        Note: why do these come up now but not earlier?
        TODO: the make dependencies might target wrong files.
        * code/unix/Makefile (TARGETS): added q3static.
        Note: this is baseq3/
        * TEST: +set r_logfile 100. It seems that the addition of
        code (add an assertion etc.) changes the behavio of the binary.
        The intro cinematics code seems to suffer first - didn't play,
        then played, then (another assert added) doesn't play. Watch
        out for (missionpack):
          SCR_PlayCinematic( mpintro.roq )
          trFMV::play(), playing mpintro.roq
        Also fails to exit cleanly: break gives
         #0  0x401919ee in __select ()
         #1  0x400bbcb8 in __DTOR_END__ ()
         #2  0x4004baa1 in _XSend ()
         #3  0x452b009f in GLXRenderFlush ()
         #4  0x804ce0c in _XRead ()
         #5  0x40680813 in ?? ()
        Stack is corrupted.
        Note: ~/.q3a/gl.log
        TODO: write per-frame files (see Heretic2)
        TODO: add Heretic2 QGL (more detail)
        * code/unix/linux_qgl.c (QGL_EnableLogging): fixed countdown
        (i.e. propagated changes from win32/, see Fakk2).
        * code/unix/linux_glimp.c: fixed QGL_EnableLogging argument
        to avoid cast error (always qfalse).
        * code/unix/Makefile (DEBUG_CFLAGS): use ZONE_DEBUG.
        * code/qcommon/common.c: replaced malloc with calloc calls.
        * code/q3_ui/ui_local.h: have to use ui/ui_public.h
        * code/cgame/cg_servercmds.c: requires ../ui/menudef.h
        * code/cgame/cg_consolecmds.c: ui/ui_shared.h is unique.
        * code/q3_ui/ui_public.h: make sure this won't be compiled.
        * code/client/client.h: we have to include ui/ui_public.h.
        Note: id is obviously maintaing only the ui/ headers, so the
        headers in q3_ui/ are deprecated.
        * code/renderer/tr_shader.c: added assertions (see Ryan's Fakk2
        problems with missing shaders).
        * code/game/g_cmds.c: below.
        * code/game/ai_vcmd.c: below.
        * code/game/ai_team.c: below.
        * code/game/ai_dmnet.c: below.
        * code/game/ai_dmq3.c: below.
        * code/game/ai_chat.c: below.
        * code/game/ai_cmd.c: ../../ui/menudef.h (new Q3TA script directory).
        * code/cgame/cg_newdraw.c: make sure it won't compile w/o MISSIONPACK.
        * code/cgame/cg_servercmds.c: below.
        * code/cgame/cg_event.c: below.
        * code/cgame/cg_consolecmds.c: below.
        * code/client/keys.h: below.
        * code/client/client.h: below.
        * code/q3_ui/ui_local.h: include from ../q3_ui/ not ../ui/.
        Note: id seems to intentionally use the header from the new ui/.
        * Makefile: checked -I$(UIDIR), there is no such. That means all
        files include directly, which means all (including Q3) are using
        the new ui/ headers.
2000-12-04  Bernd Kreimeier  <>
        * RC4: released as 362101115 Dec  4 11:40
        * TEST: the corrupted menu problem is back :-(. Looks like I am in
        for a static link next.
        * code/unix/Makefile (clean2): fixed (not all new OBJ covered).
        * code/q3_ui/ui_teamorders.c: -Werror.
        * code/q3_ui/ui_team.c: -Werror.
        * code/q3_ui/ui_qmenu.c (Bitmap_Draw): -Werror.
        * code/q3_ui/ui_mods.c (UI_Mods_LoadModsFromFile): unused. -Werror.
        * code/q3_ui/ui_controls2.c: -Werror.
        * code/q3_ui/ui_atoms.c: -Werror
        * code/null/null_client.c: -Werror.
        * code/unix/linux_joystick.c: -Werror.
        * code/unix/linux_glimp.c: -Werror.
        * code/unix/linux_qgl.c: -Werror.
        * code/unix/unix_shared.c: -Werror.
        * code/unix/unix_net.c: -Werror.
        * code/unix/linux_local.h: added missing prototypes.
        * code/unix/unix_main.c: -Werror. Includes linux_local.h
        * code/jpeg-6/jdmainct.c: see below.
        * code/jpeg-6/jcmainct.c: variables called "main" (*moan*)
        * code/jpeg-6/jcdctmgr.c (forward_DCT): -Werror.
        * code/botlib/l_script.c (PS_ReadLiteral): -Werror
        * code/botlib/l_precomp.c (PC_AddBuiltinDefines): -Werror.
        * code/botlib/be_interface.c: -Werror.
        * code/botlib/be_aas_reach.c: -Werror
        * code/botlib/be_aas_cluster.c: -Werror
        * code/game/be_aas.h: -Werror.
        Note: MrElusive accumulates a lot of code history in nested comments,
        which gcc doesn't like at all. #if 0'ed to avoid.
        * code/qcommon/vm_interpreted.c: -Werror.
        * code/qcommon/unzip.c: -Werror.
        * code/cgame/cg_servercmds.c: -Werror.
        * code/cgame/cg_main.c: -Werror.
        * code/cgame/cg_drawtools.c: -Werror.
        * code/game/bg_misc.c: -Werror.
        * code/game/be_ai_move.h (bot_avoidspot_s): added.
        * code/botlib/be_ai_move.c: removed typedef struct bot_avoidspot_s
        * code/client/snd_mix.c: -Werror.
        * code/qcommon/md4.c: -Werror.
        * code/qcommon/common.c: -Werror.
        * code/client/cl_keys.c: -Werror.
        * code/client/cl_cin.c: -Werror, init local variables.
        * code/unix/Makefile: -Werror. need -O for -Wall for uninitialized
        Note: the above is the list of files that got touched during a pass
        with -g -O -Werror -Wall flags (in the hope of finding uninitialized
        memory and ambiguous statements). Most of the above are simply
        unused variables (or even code).
        TEST: RC3 data files, but DLL's.
        TODO: TA gets stuck in initial sound, doesn't play cinematics (sometimes)
        TODO: Q3 intro movie looses sound after Sarge gets teleported
        TODO: Q3 ingame renders world, weapon, muzzleflash, hud, can shoot,
        TODO:  but no movement, hud background is fubared.
        * code/cgame/cg_main.c: cg_singlePlayerActive
        * code/q3_ui/ui_login.c: doesn't seem to be used?
        * code/game/g_rankings.c (G_RankRunFrame): doesn't seem to be used.
        * code/q3_ui/ disabled this.
        * code/q3_ui/ changed include path to ../q3_ui/ (duh).
        * code/game/ changed include path to ../q3_ui/ which
        is not in the Win32 batch file.
        * code/cgame/cg_rankings.c: this does not seem to be included.
        * code/cgame/ added -DCGAME. Also added cg_syscalls.c
        to build (also missing in Win32).
        * code/cgame/ added -DCGAME (see cgame.bat). Also
        changed include path to ../q3_ui/ which is not in the Win32
        batch file.  Also added cg_syscalls.c to build (missing in
2000-12-01  Bernd Kreimeier  <>
        * RC3: released as of sos001201 / Q3 1.27f
        * code/unix/Makefile: more fixes with clean build. The
        changes made fix the menu rendering for Q3 but not TA.
        Ingame graphics still broken.
        * code/game/ created. Use game_ta.q3asm here.
        * code/game/ no -DMISSIONPACK
        * code/game/game_ta.q3asm: CR/LF, /.
        * code/cgame/ created. Use cgame_ta.q3asm here.
        * code/cgame/  no -DMISSIONPACK. No cg_newdraw, ui_shared.
        * code/cgame/cgame.q3asm:  No cg_newdraw, ui_shared.
        CR/LF, /, cg_newDraw, and the output path/name.
        * code/q3_ui/q3_ui.q3asm: output to ui not q3_ui...
        * code/cgame/cg_event.c: cg_singlePlayerActive used here.
        TODO: guard by MISSIONPACK
        * code/cgame/cg_local.h: named q3print_t enum. Cvar
        cg_singlePlayerActive for both Q3 and TA.
        * code/unix/Makefile: cleanly separate B/baseq3/ and
        B/missionpack/ subtrees during build. While new and old
        UI are in separate directories, the cgame/ and game/
        are shared, with conditional -DMISSIONPACK compile
        and different files includeds (cd_draw, cg_newdraw).
        That means twice the number of targets (3 DLL's, 3 QVM's,
        times two), and different build rules.
        TODO: carefully check Win32 build for (other) conditionals
        TODO: carefully check Win32 build for link lists
        * CVS:  ui/, code/ui, botfiles/ and subdirectories are added.
        The code/macosx/ directory turned out to be a real pain that
        had to be edited manually, throwing out CVS/ directories in
        the tree that had been created by SOS as they are in id's
        Now tagged
          cvs tag id1-26y-loki001119
        TODO: there are several new files not yet linked?
        * ChangeLog: merged the Changelog from the bk00119 working
        branch (initial Q3TA port) based on sos001119 snapshot. Also
        merged the source tree with cvs-1.17.
        In the ChangeLog below  *** MISSIONPACK *** indicates work
        that was done on the branch (code-sos/ prefix in files).
        The cvs update of this will be tagged with
         cvs tag id1-26y-loki001119
        Use this tag to hunt for possible Linux fixes that got lost
        (i.e. got dropped by id since id000516 and were thus not in
        sos001119, but did not show in diff id000516 cvs1-17).
        New directories in CVS: botfiles/, ui/.
        Missing from SOS/Missionpack: SDK directories.
         common, lcc, libs, q3asm, q3data, q3map, q3radiant.
        * ssreport.txt: below.
        Note: watch for files called "ssreport.txt", that's id ChangeLog.
        * ui/ui_syscalls.asm: below.
        * q3_ui/ui_syscalls.asm: below.
        * game/g_syscalls.asm: below.
        * cgame/cg_syscalls.asm: below.
        * bspc/linux-i386.mak: below.
        * bspc/lcc.mak: below.
        * botlib/linux-i386.mak: below.
        * botlib/lcc.mak: below.
        * A3D/a3d_console_variables.txt: CR/LF issue (minimize diffs).
        * CVS: the checked bk001119 work copy of the sos001119 initial
        checkout (completed with everything in the SOS "Missionpack"
        tree, i.e. botfiles/ and botfiles.* added), copied over the
        cvs-1.17 checkout.
        Note: in these cases, BEWARE ui -> q3_ui/ links, and different
        ChangeLogs. Also "make clean" helps.
        * unix/unix_net.c: below.
        * unix/unix_main.c: below.
        * unix/matha.s: below.
        * unix/linux_qgl.c: below.
        * unix/linux_glimp.c: see also linux_joystick.c.
        * server/sv_client.c: below.
        * renderer/tr_surface.c: below.
        * renderer/qgl.h: below.
        * qcommon/qcommon.h: below.
        * qcommon/files.c: below.
        * qcommon/common.c: below.
        * q3_ui/ui_demo2.c: below.
        * mac/mac_net.c: below.
        * mac/mac_glimp2.c: below.
        * game/surfaceflags.h: below.
        * game/bg_lib.c: checked against id00516/cvs-1.17a diff.
        * bspc/bspc.c: TH_AASToTetrahedrons call removed since id000516.
        Note: our final compare of id000516 against cvs-1.17a, making sure
        that all these differences are in bk001119 (initial Q3TA port).
        If id branched the Q3TA base off before id000516 we might be screwed.
        Note: I do not diff against bk000520, which had some minor changes
        against id000516 (check VectorArrayNormalize, OTConfiguration), which
        seem consistent with me taking a pre-id000516 source snapshot for that
        working branch.
2000-11-30  Bernd Kreimeier  <>
        * TEST: compiled using the symbolic link ui/ -> q3_ui/.
        Had to undo one CVS change, regarding
        These files are neither generated by Win32 cgame.bat
        nor (etc.), thus seemingly maintained by hand.
         cvs tag pr1-17-loki001130b
        should be used if somebody needs this 1.17 snapshot
        (which, remember, is post-release, with additional fixes).
         cvs tag pr1-17-loki001130c
        includes the full ChangeLog (duh).
        * CVS: up until cvs-1.17-001130, code/ui/ contained the
        Q3 code for the UI QVM/DLL. In Q3TA, this code has been
        moved to code/q3_ui/, while at the same time the new
        (scripting driven) UI code for Q3TA was maintained in
        code/ui/. To preserve the history of code/ui/, it has been
        renamed to q3/ui/ in the CVSROOT.
        Note: this will BREAK all cvs-1.17 and before checkouts.
        To compile earlier versions, move or link q3_ui/ to ui/.
        The code has been tagged
          cvs tag pr1-17-loki001130
        after the change.
        DONE: remove code/*/vm/*.asm from CVSROOT
        Note: this includes code/*/*.asm files (from *_syscalls.c).
        These were originally tracked in CVS, but if we need
        comparison of q3asm output or QVM files we can rely
        on the Win32 and Linux SDK now. These files have been
        physically removed from CVS now, followed by
          cvs tag pr1-17-loki001130a
2000-11-30  Bernd Kreimeier  <>      *** MISSIONPACK ***
        * RC2: new ZIP file (another 360M for convenience).
        * SOS: new CVS module, Quake3_sos. This will be used to track
        the unchanged SOS checkouts from id. As their repository
        is read-only, and there is no estimate on when changes might
        be backpropagated there, I will track their changes in a
        separate module, and update our local Quake3 module
        accordingly. This is effectively "tracking 3rd party"
        w/o import and half-automated, forced mergers - in other
        words, we now branch starting with our post-1.17 changes,
        for the benefit of moving at all.
        Baseline is a slightly changed PR-1.17 id000516 source dump
        (essentially ui/ moved to q3_ui for continuity, and CR/LF etc.).
         cvs import Quake3_sos id000516 pr1-17-win32
         cvs import Quake3_sos sos001119 pr1-26-win32
         cvs import Quake3_sos sos001120 pr1-26-win32-001120
         cvs import Quake3_sos sos001121 pr1-26-win32-001121
         cvs import Quake3_sos sos001122 pr1-26-win32-001122
         cvs import Quake3_sos sos001122-demo pr1-26-win32-demo
        This is about the 1.26w Team Arena Win32 demo release, give or
        take a couple of lines. Has Q3_VERSION "Q3 Team Arena Demo 1.27b".
         cvs import Quake3_sos sos001123 pr1-26-win32-001123
         cvs import Quake3_sos sos001126 pr1-26-win32-001126
        Now track id versions (see code/game/q_shared.h:Q3_VERSION)
         cvs import Quake3_sos sos001128 pr1-27c-win32-001128
        With 1.27d they switched from Demo to full version (RC1).
         cvs import Quake3_sos sos001129 pr1-27d-win32-001129
         cvs import Quake3_sos sos001130a pr1-27d-win32-001130a
        Now switched to 1.27e. This import is done from the SOS
        working directory.
         cvs import Quake3_sos sos001130b pr1-27e-win32-001130b
        Note: SoS created rwx attributes which are luckily fixed
        automagically during import. It is also seemingly incapable
        to compare files, and leave files that have not changed the
        hell alone. I can't do cvs update due to the $..$ tags in
        the original files (which CVS can't be told to ignore),
        so I have to do import (creating a load of vendor tagged
        branches), but at least cvsweb and cvs get the revisions
        * code-sos/unix/Makefile: added linux_joystick
        * code-sos/unix/linux_local.h: match mac/ and win32/, for prototypes.
        * code-sos/unix/linux_joystick.c: new file, code from linux_glimp.c
        Note: decided to separate this, as (a) we might edit/extend
        a lot, (b), it's not in the id tree, (c) it's not GL, (d)
        there might be even more oddball devices. Anything that
        cuts down on diffs.
        * code-sos/unix/linux_glimp.c (Q_stristr): const return (cvs1.17).
        Also (XLateKey): added more keyboard mappings (ASCII on
        upper row digits) (cvs1.17). Added in the minimal joystick
        hooks (cvars, function calls). Fixed joystick cvar naming
        to match win32 (kept joystick_threshold).
        TODO: joystick stubs for dedicated?
        * CVS: I have to move up to 1.27d (data, Win32 networking).
        With exception of linux_glimp.c (mostly joystick code),
        all cvs1.17 changes should now be in the work snapshot
        based on the first sos001119 we got from id. There are
        also some additional changes in there already, thus I'll
        move the (buggy) 1.26 snapshot into CVS before adding even
        more differences.
2000-11-29  Bernd Kreimeier  <>     *** MISSIONPACK ***
        * RC1: Source has moved from
        Q3VERSION "Q3 Team Arena Demo 1.27c" to "Q3 1.27d" now.
        * code-sos/qcommon/common.c: added Com_InitPushEvent(). Also
        increased MAX_PUSHED_EVENTS to 256.
        Note: this is another case of buffer memory not zero'ed.
        Com_EventLoop, fixed evTime to evType in debug print.
        * TEST: baseq3/
         +set sv_pure 0 +set vm_game 0 +set in_mouse 0 +set developer 2
        TODO: Team Arena in menu leads to RE_Shutdown(1) and locks
        TODO: can't play game
        TODO: shaders can't load *.tga, *.jpg files are there
        TODO: DO_CC linking for DLL's, DO_SHLIB_CC only for export?
        TODO: ERROR: Bad player movement angle
        TODO: Warning: cvar "..." given initial values: "..." and "..."
        TODO: TA demo ERROR: CL_ParseServerMessage: Illegible server message
        TODO: WARNING: Com_PushEvent overflow
        * code-sos/qcommon/files.c: add NULL filter for our Sys_ListFiles calls.
        * unix/unix_shared.c (Sys_ListFiles): signature has changed,
        additional Sys_ListFiles argument now.
        * code-sos/unix/unix_net.c (Sys_GetPacket): see below (readcount=0).
        * code-sos/unix/unix_main.c: see below (Mike's and my changes to DLL
        loading, my event buffer clear fixes).
        * code-sos/unix/linux_qgl.c (QGL_Init): see below (__FX__ guards).
        TODO: abstract WGL/GLX and end unfortunate QGL duplication.
        TODO: spice up QGL with Linux H2 full version.
        * code-sos/q3_ui/ui_demo2.c: fix on demo names  - no Q_strupr(demoname).
        Note: in CVS this fix is in ui/ui_demo2.c. CVS is screwed by
        id choosing the old name for new directory...
        TODO: manual intervention on "ui goes q3_ui"  in CVSROOT?
        * renderer/qgl.h: see below (__FX__ guards).
        * qcommon/files.c: migrated in the 1.17cvs changes against the
        id000516 code dump, i.e. the (not marked - boo hiss) mkv changes.
        Note: all the above is based on a diff of the last id code dump
        pre-1.17 against our CVS, with those fixes now migrated into the
        sos1.26 snapshot.
        TODO: move in joystick code.
        TODO: replace XAutoRepeatOn/Off with filter (focus).
        TODO: DGA 2.0 and such.
        * code-sos/game/q_shared.c: valid compare for NULL strings
        * code-sos/unix/unix_main.c: QRTLD, and now using RTLD_NOW.
        Note: it is a bad idea to load game DLL's that are missing symbols.
        * code-sos/ui/ui_main.c: see below.
        * code-sos/game/g_main.c: see below.
        * code-sos/q3_ui/ui_main.c: see below.
        * code-sos/cgame/cg_main.c: made cvarTable and cvarTableSize static. This resolved
        a segfault related to traversing the UI table during Init.
        Note: there is a segfault related to this variable being out of bounds.
        Different struct size in global variables possible aliasing between the
        * code-sos/unix/unix_main.c (Sys_Error): assert(0), no exit in debug.
        * code-sos/game/q_shared.c: now aborts on NULL destination. Also DPrintf's
        on bogus excess copies.
        TODO: make all those string functions safe, at least assert.
        * code-sos/server/sv_init.c: comment in SV_Init
        // init the botlib here because we need the pre-compiler in the UI
        Called in qcommon/common.c:Com_Init, were CL_Init is called afterwards...
        * code-sos/server/sv_bot.c: the botlib_import is filled here.
        * code-sos/unix/unix_main.c (Sys_GetBotLibAPI): RTLD_NOW. Which is for naught,
        as this code is not used and has never been used. assert(0)
        * code-sos/botlib/be_interface.c: botimport supposed to be set here.
        * code-sos/botlib/l_memory.c: segfault with q3_ui/ DLL.
        #1  0x80e23ec in GetMemory (size=35) at ..//botlib/l_memory.c:331
        331             ptr = botimport.GetMemory(size + sizeof(unsigned long int));
        as botimport is completely NULL'ed.
        * code-sos/q3_ui/ created from ui/ 1.17
        * code-sos/q3_ui/q3_ui.q3asm: unfubared (CR/LF, / path).
        * code-sos/unix/Makefile: added q3_ui/ make targets (basically
        ui/ targets from CVS 1.17 Makefile for starters).
        * code-sos/q3_ui/: this is the old UI code, which does not use
        ../ui/menus.txt (see ui/ui_main.c). In other words,
        the code in ui/ now has to be compiled or qvm'ed
        for missionpack/, but to create the necessary DLL or
        QVM modules for baseq3/ we need to use q3_ui/.
2000-11-27  Bernd Kreimeier  <>     *** MISSIONPACK ***
        * code-sos/game/bg_lib.c: ld problem with a custom "tan(..)"
        TODO: loooking forward to SIGFPE on this code base.
        * code-sos/ui/ui_util.c: this file is empty.
        * code-sos/ui/ new files:
        Replaced by the /ui/*.menu files:
         q3lcc: can't find `../ui_cdkey.c'
         q3lcc: can't find `../ui_ingame.c'
        * code-sos/cgame/cgame.q3asm: added cg_newdraw entry.
        Also added ui_shared entry.
        * cgame/ added cg_newdraw.c entry.
        Also added ../ui/ui_shared.c entry.
        * code-sos/cgame/cg_newdraw.c: renamed (was cg_newDraw.c mixed case).
        Note: the infidels have taken over.
        * cgame/ added  -DMISSIONPACK.
        Note: w/o, q3lcc complains
        ../cg_event.c:204: undeclared identifier `cg_singlePlayerActive'
        ../cg_event.c:204: left operand of . has incompatible type `int'
        which indicates that this source does not compile w/o MISSIONPACK
        anymore. The baseq3/pak4.pk3 file in the Q3TA snapshot archives
        are dated
             284464  11-10-00 14:02   vm/cgame.qvm
             463940  11-14-00 14:47   vm/qagame.qvm
             271596  11-14-00 14:48   vm/ui.qvm
        the code dump is from 11-19.
        Note: Make does not abort on q3lcc complains
        * code-sos/game/ also added ai_vcmd.c entry.
        * code-sos/ui/ui.q3asm: fubared (below). In addition, this is
        the only one to have a
         -o "/tmp/quake3/missionpack/vm/ui"
        line in it. Given that the other 2 QVM modules are
        also dependend on -DMISSIONPACK, this seems a real mess.
        For now using the same path as the other 3.
        * code-sos/cgame/cgame.q3asm: below.
        * code-sos/game/game.q3asm: fubared. Fixed CR/LF and \ in paths
        again (read by q3asm called by called by make).
        * unix/Makefile: updated fpor DLL/QVM.
        Note: also shell scripts to use q3lcc not lcc.
2000-11-27  Bernd Kreimeier  <>
        * code/unix/Makefile: now expects a run/ directory
        relative (between this, the Loki standards, and the
        utility code in the same repository, it's ever so
        slightly less dorky).
        TODO: fix broken copyfiles target etc.pp.
        * code/game/bg_lib.c: turns out the changes I
        undid 001120 were affecting original Zoid
        Linux port related defines, which break VM
        compile. Mike fixed those (which I unfixed
        when referring to the latest id code that does
        not contain these patches). However, they
        duplicate ANSI libc symbols, so the guards might
        be wrong. The symbols are missing when compiling
        for VM, so I now use the existing lcc -DQ3_VM
          //#if !defined ( _MSC_VER ) && ! defined ( __linux__ )
          #if defined ( Q3_VM )
        This will break DLL compile on non-ANSI platforms,
        which will have to be added to the conditional then.
        * code/ui/ below.
        * code/game/ below.
        * code/cgame/ Linux SDK installs q3lcc to
        avoid collisions with regular lcc pre-installs. The
        scripts fail with "lcc not found", but do not abort
        the Makefile.
        Note: now that VM code gets actually built, there
        are errors:
        g_main:648 ERROR: symbol vsprintf undefined
        bg_pmove:1221 ERROR: symbol abs undefined
        q_math:4309 ERROR: symbol fabs undefined
        q_shared:2801 ERROR: symbol tolower undefined
        q_shared:2862 ERROR: symbol toupper undefined
        ai_dmq3:208 ERROR: symbol atoi undefined
        ai_cmd:4951 ERROR: symbol sscanf undefined
2000-11-20  Bernd Kreimeier  <>
        * TEST: test compile of pr-1.17+cvs fixes segfaults due
        to new baseq3/pak4.pk3
        Note: to self ... 1.17 is not compatible with new files.
        Checking into CVS next.
        * code/: changes applied by us that are not in id's code base
        affect q_shared.c (NULL in Q_stricmp), files.c (FIXME fs_cdpath,
        Sys_ConcatenateFileList, ui_demo2.c (demo no tolower on linux).
        In unix/ linux_glimp.c (joystick code), qgl.h, linux_qgl.c (__FX__),
        unix_main.c (dlopen bug and event buffers), unix_net.c (readcount),
        matha.s (assembly warning).
        * code/server/sv_client.c (SV_WriteDownloadToClient):
        No effective change  on FS_SV_FOpenFileRead call, they reworked
        autodownload some more seemingly.
        * code/renderer/tr_surface.c: VectorArrayNormalize
        * code/qcommon/qcommon.h: see below.
        * code/qcommon/files.c: Com_ReadConfigs removed.
        * code/qcommon/common.c: removed Com_ReadConfigs,
        textual replacement of body in Com_Init.
        * code/mac/mac_net.c: not applied (undone by id)
        OTConfiguration *config <> OTConfigurationRef  config
        * code/mac/mac_glimp2.c: r_colorbits->integer > 16
        * code/game/surfaceflags.h (CONTENTS_BOTCLIP): added.
        * code/game/q_shared.h: not applied (undone by id)
        #if defined(ppc) || defined(__ppc) || defined(__ppc__)
        #define idppc 1
        #define idppc 0
        * code/game/q_math.c: added another CPP line to guard
        BoxOnPlaneSide, removed WIN32 guard.
        TODO: this could be broken code guarded in all current
        * code/game/bg_lib.c: left Q#_VM guard for typedef cmp_t
        Added !defined( __linux__ ) for tolower and atoi.
        Note: the changes above relate to the very last code update
        from id prior to the 6 month blackout, which were not in
        CVS when Michael made his updates. Needed to establish the
        baseline for the new patch. Source dump 1.17.00520, against
        SOS 1.26w-001119 version.
2000-11-20  Bernd Kreimeier  <>       *** MISSIONPACK ***
        * TEST: running against the data up to
        Hunk_Clear: reset the hunk ok
        Program received signal SIGBUS, Bus error.
        "q3dm2", killBots==qtrue
        #0  CM_ClearMap () at ..//qcommon/cm_load.c:644
        #1  0x80884a7 in SV_Map_f () at ..//server/sv_ccmds.c:159
        #2  0x8072579 in Cmd_ExecuteString (text=0xbffff4b0 "spmap q3dm2") at ..//qcommon/cmd.c:591
        #3  0x8071dfe in Cbuf_Execute () at ..//qcommon/cmd.c:190
        #4  0x80763f7 in Com_Frame () at ..//qcommon/common.c:2547
        #5  0x8130d6b in main (argc=13, argv=0xbffff984) at ..//unix/unix_main.c:953
        #6  0x40100cb3 in __libc_start_main (main=0x8130bc4 <main>
        Not reproducible (screen stayed black).
        * TEST: +set developer 1, same for Win32 and Linux:
        Can't find gfx/misc/flare.tga
        Can't find gfx/misc/sun.tga
        Can't find gfx/misc/console02.tga
        Can't find vm/
        Can't find textures/sfx/logo512.tga
        Can't find gfx/colors/black.tga
        Can't find models/mapobjects/banner/banner5_2.md3
        Can't find models/mapobjects/banner/banner5_1.md3
        Can't find textures/sfx/firegorre2.tga
        Can't find textures/sfx/bolts.tga
        Can't find menu/art/unknownmap.tga
        * Q3TA: after nearly 6 months, a code update from id. SOS access
        even. Got it to compile, link and start, but it's currently broken
        (menu doesn't render in full, can't get into game etc.). Need
        a baseline 1.17 to diff against. Last code dump was May 16, with
        bspc code updated May 19. Checking working directory of bk000520
        against CVS next (Mike's fixes never made it into id's codebase
        or a post 1.17 release, neither did my fixes as released in the
        point release version 1.17).
2000-11-19  Bernd Kreimeier  <>       *** MISSIONPACK ***
        * TEST: Win32 install as tested with 1.26w. quake3.x86 (Q3A game)
        Warning: cvar "r_uifullscreen" given initial values: "1" and "0"
        Warning: cvar "r_inGameVideo" given initial values: "1" and "0"
        ^3WARNING: sound/feedback/hit.wav is a 8 bit wav file
        (on windows, sound/weapons/weapon_hover.wav is missing...)
        Menu only partially displayed in TA and baseq3 play, menu itself
        seems to work. Freetype?
        WARNING: Com_PushEvent overflow
        * code-sos/game/ not in SOS, moved in from CVS snapshot.
        * code-sos/qcommon/common.c: conditional DEDICATED to get rid off
        Same for UI_usesUniqueCDKey: dedicated server does not
        write CD key file.
        TODO: check whether there is an unneeded "read CD key"
        for dedicated server.
        * code-sos/null/null_client.c (CL_ShutdownAll): added dummy.
        * code-sos/unix/Makefile:  server/sv_net_chan.o for dedicated server.
        * code-sos/null/null_snddma.c: fixed  S_RegisterSound signature.
        * code-sos/client/snd_mix.c: snd_p, snd_linear_count, snd_out
        can't be static, as used by unix/snd_mixa.s.
        * code-sos/unix/Makefile: added to the executable target:
        Also added a lot of jc*.c files to build, to fix unresolved
        symbol errors.
        TODO: is there unused jpeg-6/jd*.o code linked in now?
        * code-sos/ft2/smooth.c: includes ftgrays.c, ftsmooth.c
        * code-sos/ft2/truetype.c: ttdriver.c, ttpload.c, ttgload.c, ttobjs.c.
        Also (see ftoption.h) TT_CONFIG_OPTION_BYTECODE_INTERPRETER ttinterp.c
        * code-sos/ft2/sfnt.c: includes ttload.c, ttcmap.c, sfobjs.c,
        sfdriver.c. lso (see ftoption.h)
        * code-sos/ft2/ftbase.c: includes ftcalc.c, ftobjs.c, ftstream.c,
        ftlist.c, ftoutln.c, ftextend.c, ftnames.c.
        * code-sos/ft2/autohint.c: includes ahangles.c, ahglyph.c, ahglobal.c,
        ahhint.c, ahmodule.c.
        * code-sos/unix/Makefile: added ft2/ to client objects, took out
        ftraster.c/ftrend1.c (see below), added -DFT_FLAT_COMPILE.
        * ft2/ftsmooth.c: -DFT_FLAT_COMPILE required.
        * ft2/raster1.c: -DFT_FLAT_COMPILE required.
        Note: this includes ftraster.c/ftrend1.c.
        * code-sos/qcommon/vm_x86.c: _ftol is missing, ftolPtr only defined
        for Win32, but used in generic code. Workaround for now.
        TODO: find good Linux ftol, or use old solution.
        * SoS checkout. chown -R a+w *  recode ibmpc:lat1 */*.h */*.c
2000-06-30  Michael Vance <>
        * misc: Spoke with Leonardo about qvm mess.
        * ui/ Created to build much like the ui.bat script.
        * ui/ui.q3asm: Use linux style paths.
        * game/ Created to build much like the game.bat script.
        * game/game.q3asm: Use linux style paths.
        * cgame/ Created to build much like the cgame.bat script.
        * cgame/cgame.q3asm: Use linux systel paths.
        * unix/Makefile: Use the new .sh scripts to build the QVM files.
        * lcc/etc/linux.c: Build .asm files instead of .s files.
        * misc: QVMs now load properly, with minor glitches that should
        hopefully be solvable. The new build scripts conflict with the
        .asm files already in CVS, as the generated byte code is slightly
        different in some cases.
2000-06-29  Michael Vance <>
        * lcc/makefile: Tweaked to automatically include the system
        compiler's header location. Added an install directory.
        * lcc/ Added a build directory.
        * lcc/etc/linux.c: Numerous small tweaks to make compiling the VM
        code a much simpler task.
        * q3asm/Makefile: Created.
        * q3asm/q3asm.c: Fixed uninitialized variable in
        HashString(). Fixed off by one in argument parsing.
        * misc: Had Brian remove the Xmd.h include from glx.h so that we can
        build Quake3 on XFree86 4.0 systems.
        * wine: Attempted to build with lcc.exe and q3asm.exe using wine,
        also did not work. This is in contrast to MikeP's .qvms, which
        seem to work.
2000-06-28  Michael Vance <>
        * common/files.c: Fixed Mods menu behaviour.
        * unix/linux_qgl.c: Guarded references to fxMesa.
        * renderer/qgl.h: Guarded references to fxMesa.
        * ui/ui_demo2.c: Don't convert filename to uppercase.
2000-05-07  Bernd Kreimeier  <>
        * common/cmdlib.c: windowism, not guarded. Added WIN32 around "ATOM a".
        * q3map/Makefile: Linux Makefile.
        * q3map/Makefile.irix: "makefile" in original code, Irix-only Makefile.
        Just fixed some redundant TAB that GNU make despises about as much as I
        despise GNU Make, and changed to a relative path.
2000-05-01  Bernd Kreimeier  <>
        * q3radiant/: updated with
        Tagged (globally) as q3radiant-198b3.
        Kept the old files
        New files
          misc/      (contributed special TGA resources, don't relly belong)
        Changed filenames to previous case:
         UNNAMED.MAP           ->
         RES/BMP0002.BMP       -> RES/bmp00002.bmp
         changelog.txt         -> ChangeLog
2000-04-28  Bernd Kreimeier  <>
        * CVS: bk000425 modified sources. This replaces the unix/ directory
        which is not yet in id's SourceSafe. Two check-ins, due to minor
        changes in an attempt to nail the Voodoo3 related crashes (driver
        problems, not a Q3 issue). Undid some of the QFL changes for PI
        and the log bug fix - put back in (TODO). Also includes:
        * Quake3/code/botlib/be_aas_sample.c: single file update from Robert.
        * CVS: id000423 code dumps (two of them). Applying Loki patches.
        Tagged for the final version (all patches).
        * CVS: id000422 code dump. This did not include the 1.16n fixes
        used for Linux, and was the first dump for the 1.17 security fix
        Note: forgot to check in the ft2/ headers themselves, but they
        are not used in the current codebase anyway. Are added in next
        dump. Also there is use of CVS/CVS-like $Keyword$ patterns in
        some files, and between their revisions and ours we fuck this up.
        Also, id ZIP files create write protected sources, have to do
        chmod -R a+w Quake3/ to work and overwrite files.
        * CVS: bk000315 modified source. This version was the 1.16n release.
        Note: the changes applied here are not in the subsequent code dumps
        of id. If you want to compile the Linux version as released you
        have to use bk-tagged versions until the patches are merged in by
        Robert Duffy.
        * CVS: id000314 engine code dump, same procedure as below, tag.
        Note: this version added vm/ sudirectories with assembly files
        for cgame, game, ui. CVS tag id000314.
        * CVS: id000304 engine code dump. Now there is a problem, as CVS
        was used in the Mac sources. Do
          find . -name 'CVS' -exec rm -r {} \;
        before cvs update, then tagged:
         cvs -d /loki/cvsroot/ tag id000304 Quake3/
        * CVS: checked in a source snapshot of the id00303 engine code
        and the id0003029 tools code. The tool sources are not fully in
        sync, and we have only partial source from earlier engine revisions.
        The engine source marks where Loki took over from Dave Kirsch.
        This snapshot (with all temporary and bogus files) is imported
        and tagged using:
          cvs -d /loki/cvsroot import Quake3 id000303 initial
          code:      the Q3 engine code, including a jpeg-6/ copy
          common:    code shared by tools
          libs:      code shared by tools, inlcuding a jpeg6/ copy
          q3asm:     VM bytecode assembly
          q3data:    misc. Q3 data conversions
          q3map:     BSP builder
          q3radiant: Win32 editor, as is
          lcc:       C compiler for q3asm
        The sources have not been cleaned up, and binary files have not been
        removed. The Q3Radiant code base might exhibit mixed case asmbiguities
        in the future, and future source dumps might come from SourceForge
2000-04-25  Bernd Kreimeier  <>
        * q3code.id000425/unix/Makefile: relative path, relocatable.
        Note: first code merge with id, finally :-).
2000-04-24  Bernd Kreimeier  <>
        * q3code.bk000422/unix/matha.s: in C(BoxOnPlaneSide)
        the following line triggers assembler warning:
        "missing prefix `*' in absolute indirect address, maybe misassembled!"
          jmp Ljmptab(,%eax,4)
        * q3code.bk000422/unix/Makefile (MOUNT_DIR): rember to change.
        TODO: fix this bloody Makefile to be relocatable, damnit.
        * q3code.bk000422/cgame/cg_event.c: applied JCash fix again
        (see EV_EVENT_BITS below). Send e-mail to verify.
        * q3code.bk000422/renderer/tr_image.c: "../jpeg-6/jpeglib.h" again.
        * q3code.bk000422/: created from the id dump of today, lacking
        all but one of my changes (sigh). Swapped unix/ competely, takes
        care of 90%. Submitted all changes again to Robert...
2000-04-19  Bernd Kreimeier  <>
        * q3code.bk000315/unix/linux_glimp.c (GLimp_EndFrame):
        QGL_EnableLogging( r_logFile->value ) doesn't work?
        * q3code.bk000315/unix/linux_qgl.c:  GLimp_LogNewFrame() is
        obsolete. QGL_EnableLogging was out of sync with Win32 and
        did not support the new framecounter decrement logic.
2000-04-03  Bernd Kreimeier  <>
        * q3code.bk000315/server/sv_snapshot.c: svs.nextSnapshotEntities
        is a signed integer unconditionally incremented, which gets
        negative and causes a segfaulting indexing an array. Added reset
        to counter. Might fail if snapshot numbers are supposed to
        monotonically increase.
2000-04-02  Bernd Kreimeier  <>
        * q3code.bk000315/client/cl_parse.c (CL_ParseServerMessage):
        assert(0) on Illegible message (remember to +set in_mouse 0).
        TODO: have to add a dump message function, it's unreadable.
        * botlib/be_ai_goal.c (InitLevelItemHeap): loop counter -2
        left -2 with uninitialized next, and -1 disconnected. Removed
        redundant memset. There is an item alloc leak I suspect, as
        max_levelitems 1024 merely delayed the overflow error.
2000-04-01  Bernd Kreimeier  <>
        * botlib/be_ai_goal.c (InitLevelItemHeap): still segfaults.
        Not memsetting the entire item heap. As items are cleared
        on return, that leaves only memory corruption?
        Later: upped max_levelitems from 256 to 1024
        Later: client dies on connect:
          Error: CL_ParseServerMessage: Illegible server message 255
2000-03-31  Bernd Kreimeier  <>
        * botlib/be_ai_goal.c: initializing global vars.
        Segfault in AllocLevelItem ()
          at /home/bk/Games/Quake3/q3code/botlib/be_ai_goal.c:364
        I suspect that the initial freelevelitems setting is at
        the end of the list and eventually exposed.
        * cgame/cg_event.c: according to Johmn Cash:
         itemNum = (es->event & ~EV_EVENT_BITS) - EV_USE_ITEM0
        Quote: "This causes itemNum to be invalid about half the time,
        preventing any client side effect tied to the item from occurring."
2000-03-06  Bernd Kreimeier  <>
        * qcommon/common.c: set pushEvent buffer and indices
        to zero in Com_Init().
        * q3code/qcommon/qcommon.h: made SE_NONE (and for paranoia
        also NA_BOT) explicitely set to zero.
2000-02-27  Bernd Kreimeier  <>
        * unix/Makefile: added dmalloc in an attempt to get on
        the Z_Free bug. Futile. Despite stripping dmalloc debug
        token down to essentials, I get a (seemingly bogus or
          debug-malloc library: dumping program, fatal error
          Error: possibly bad .c filename pointer (err 24)
2000-02-26  Bernd Kreimeier  <>
        * qcommon/common.c: various debug builts to isolate the
        Z_Free bug. It reproducibly happens on some machines
        with SE_PACKET, but the packets themselves look
        thoroughly corrupted.
2000-02-21  Bernd Kreimeier  <>
        * qcommon/common.c (Com_EventLoop): possible problem
        here, pointer does not get cleared.
        * unix/linux_glimp.c (InitSig): no signal handler.
        * common/common.c: dump in Com_Error for debug.
2000-02-17  Bernd Kreimeier  <>
        * q3code: new dump from Zoid. Repeat tr_image.c fix.
        * unix/Makefile: added client/snd_adpcm.c (linkage errors).
        Later: added entire JPDIR and rules, for tr_image.c.
        Later: had to fix fules for game/ai_*.c files.
        Later: removed ui/ui_quit.o (n/a)
        Later: took out -mpentiumpro -march=pentiumpro
        * renderer/tr_image.c: windowism in #include path (see below).
         #include "..\jpeg-6\jpeglib.h"
1999-12-27  Bernd Kreimeier  <>
        * Alpha: tried a dedicated server compile. Segfaults in
        ../qcommon/files.c:1682, a paksort function doing pointer
        * Makefile.alpha: created.
        Note: want to take the SDL/Setup autoconf ASAP.
        * unix/unix_main.c: fixed __axp__ to __alpha__, guarded
        * qcommon/vm_alpha.c: dummy, created.
        * qcommon/vm_null.c: dummy, created.
1999-12-04  Bernd Kreimeier  <>
        * renderer/tr_image.c: windowism in #include path.
         #include "..\jpeg-6\jpeglib.h"
        * Revision 1.11: from Zoid by e-mail.
        Note: threw away my playground copy, starting with the
        ZIP file. Zoid's using CVS now, but we can't remote
        access it. Thus did the
         "find . -name 'CVS' -exec rm -rf {} \;"
        and then track it as 3rd party source by
        * ChangeLog: created. Now starting to track Q3A source.
--------- q3code log ---------------------------------------------
>>>>>>> f3e7012... REFACTOR [a vs an]

Last modified 7 years ago Last modified on Dec 25, 2017, 3:06:35 PM