Quake 3 – Clover.moe https://clover.moe Fri, 15 Nov 2024 01:40:14 +0000 en-US hourly 1 https://wordpress.org/?v=6.6.2 https://clover.moe/wp-content/uploads/2016/04/20151213_Clover_favicon-150x150.png Quake 3 – Clover.moe https://clover.moe 32 32 Open Source Status https://clover.moe/2024/10/01/open-source-status/ Tue, 01 Oct 2024 07:26:41 +0000 https://clover.moe/?p=1855 I’m going to do my own things in my own time rather than acting as an open source software maintainer.

I’ve completed most of the things I want to do in my open source projects (Spearmint, Maverick, etc). There was of course a lot of other ideas and many are now redirected at Clover’s Toy Box. At this point I mainly work on Maverick and Quake 3 related open source projects for the sake of other people. While I like assisting, it’s not satisfying and can be stressful.

I’m withdrawing from providing user support and fulfilling requests for open source projects. I’m not interested in continuing to discuss these projects. I’ve made the Clover.moe Community Discord server be read-only after giving a month notice. I’ve thought about this for some time; I decided to do this in March.

I will continue to contribute to Quake 3 open source projects if it’s something I personally want. There is still a few loose ends I want to deal with and I may find other things in the future. So it’s not entirely the end of me working on these projects.

]]>
Flexible HUD release 8 https://clover.moe/2024/03/31/flexible-hud-release-8/ Sun, 31 Mar 2024 22:07:27 +0000 https://clover.moe/?p=1644 ZTM’s Flexible HUD mod for ioquake3 release 8 has a new Git repository, updates to newer ioquake3, and adds a config file for very high quality graphics settings.

New Git Repo

The source code has moved from a flexible_hud branch and tags in zturtleman/ioq3 repository to a new zturtleman/flexible-hud-for-ioq3 repository.

Flexible HUD was treated as a one-off throw away project in 2013. The source code for first two releases was previously missing from the Git repo. They had “git diff” patches in the Flexible HUD pk3 downloads. Now the code is committed and tagged in the Git repo.

ioquake3

I merged in the latest changes from ioquake3 (2019 to 2024). It includes these changes I made in 2019 to 2021 that affect the mod code:

  • Restore bots crushing unseen player on q3tourney6 in non-CTF (restores the original harder difficulty of the final boss)
  • Fix team orders menu not listing clients with lower clientnums (it wasn’t possible to order bots that joined before you on a server using the Q3 menu)
  • Fix duplicate team join center print for bots and g_teamAutoJoin (too many messages could cause an error and kick players off the server)
  • Fix lightning gun handling for corpses and single player podiums (this shouldn’t affect anything)

Config

I added my 2018 config file for applying Spearmint’s “Very High Quality” graphics settings to ioquake3. The Flexible HUD web page says how to apply it.

This was previously a standalone download. I don’t remember where if anywhere it’s linked. It seems relevant to users of Flexible HUD so I included it.

Rounding it out

The Flexible HUD downloads and ztm-ioq3-veryhighquality.cfg are now hosted on GitHub instead of clover.moe/downloads. This was actually the main motivation for all of this. I think about moving to a static website and I don’t want to add a bunch of zip files to the website Git repository.

]]>
Open Source in 2023 https://clover.moe/2024/01/02/open-source-in-2023/ Wed, 03 Jan 2024 02:59:06 +0000 https://clover.moe/?p=1582 My open source software contributions in 2023 to SDL, Quake 3 based games, and Maverick Model 3D.

SDL

Simple DirectMedia Layer is a cross-platform abstraction layer for window creation, graphics initialize, audio, input, etc that is used by most games on Linux. (SDL source code)

I mentioned custom window decoration “hit testing” resizing issues at the end of my Toy Box on Wayland post. Someone fixed Linux (X11 and Wayland) to display cursors when hovering over resizable areas. It assumed the cursors were double arrows like on Windows and KDE. Resize left and right both had a single arrow pointing right on GNOME. I fixed it to have the correct cursors on GNOME using 8 cursors with each resize direction.

I helped explain an issue with Nintendo GameCube Adapter controller mapping so it could be fixed on Windows and Android.

I try to read most of the SDL 3 commits by following an RSS feed. I pointed out a few minor issues as commit comments.

ioquake3

ioquake3 is a project to maintain and extend the source code for the 1999 first-person shooter Quake III Arena. (ioq3 source code)

I made 25 posts to help solve issues on the ioquake3 forum.

Platform

I updated SDL libraries for Windows and macOS from SDL 2.0.14 to SDL 2.24.0. I cross-compiled mingw-w64 and macOS libraries on Linux. I did have to use Windows to build the MSVC libraries.

I made it so macOS can be built separate for “legacy” Universal Bundle (x86/x86_64/powerpc) and “modern” Universal Bundle 2 (x86_64/Apple Sillicon). Legacy macOS App Bundle was updated to SDL 2.0.22 as newer versions (jumping to SDL 2.24.0) dropped support for macOS 10.6. (Building for Apple Sillicon was added by Tom Kidd in 2022.)

I fixed ioquake3 failing to start from macOS terminal due to how the URI scheme handler support was added.

I updated the Windows “NSIS installer” script. ioquake3 and games based on it tend to just use a .zip file instead of an installer. It would be useful to use the installer as it adds integration for the “quake3://connect/127.0.0.1” URI scheme handler to Windows.

QVM

QVM (Quake Virtual Machine) is a cross-platform bytecode format used by Quake 3 that allows game modifications to be compiled on one platform and run on all platforms. (A similar recent technology being WebAssembly.)

I fixed compiling QVMs on Linux if the source code has Windows line endings. MS-DOS used CR+LF to end lines in text files (Carriage return, line feed; commands for a text printer). However Unix-like platforms used only LF. The Windows file API in text mode automatically reads CR+LF as LF but other platforms did not and caused the QVM tools to fail with strange syntax errors.

I made it so QVMs are compiled on all platforms by default even if they do not have a run-time QVM just-in-time compiler. The QVM interpreter works on all platforms. This made QVMs be built on Linux/macOS ARM64 by default.

OpenGL2 renderer

Compared to the opengl1 renderer—which closely resembles the original Quake 3 renderer—the ioquake3 OpenGL2 render has a lot of issues and (in my opinion) poor design decisions. I think it’s too much work to fix it. However when prompted about issues, it’s not that I can’t fix them…

I fixed the edge border for smaller view size (cg_viewsize) being drawn to an framebuffer object and not blit to the screen when using HDR or framebuffer multisample anti-alias with post-process. This was fixed to draw to the screen directly like other 2D drawing.

I fixed updating the loading screen with r_cubeMapping 1. The changes for the previous issue caused Quake 3’s drawing all images to the screen—to ensure the driver loads them—to be visible. However it shouldn’t be visible because the loading screen draws over it. It turns out generating cube maps for the level left the culling state set to hiding the front of polygons and the loading screen was culled until the level is loaded to reset the culling state. This was broken for years but it seemed like it was just really fast after loading the level.

I fixed the developer option to clear the screen to magenta (r_clear 1) before rendering when using HDR or framebuffer multisample anti-alias. This makes it obvious when some part of the screen isn’t drawn or is transparent and the previous frame is visible (hall of mirrors effect or random flashing between two different frames; it’s just bad).

I fixed framebuffer multisample anti-alias on AMD Windows driver. The driver incorrectly requires GL_EXT_direct_state_access extension to bind a renderbuffer for it to be valid. This should only be required for OpenGL Core context direct state access or GL_ARB_direct_state_access extension. Though yes, ioquake3 should probably stop using the EXT extension in an OpenGL Core context.

I fixed q3map2 lightstyles effects for dynamic pulsing lightmaps with r_mergeLightmaps 1 and r_sunlightMode 1.

r_mergeLightmaps 1 combines internal 128×128 pixel lightmaps into a larger atlas and modifies the geometry texture concordances. This broke materials using both internal and external lightmap and materials using texture concordance offset with internal lightmaps (two obscure things I didn’t know q3map2 did). I corrected external lightmap to apply a transform to convert the texture concordances back to the original and made offset for internal lightmaps use the scale of the texture atlas.

r_sunlightMode 1 changed lightmap stages in materials to support cascading sun shadows by using white image modulated by the lightmap texture. However it didn’t work with some blend mode that use the alpha of the lightmap texture. I fixed it to only apply to normal lightmap stage blend modes.

I fixed parsing q3gl2_sun without two additional “optional” tokens. Quake 3’s text parser has an option to not allow line breaks but it still sets the text pointer to after the line break. So effectively it can only check for an optional token once. And then must not check for any more because it will be on the next line. I fixed parsing q3gl_sun to only check for additional optional tokens if the previous optional tokens existed. (I previously fixed the parser in Spearmint to stop at end of line so it doesn’t have this problem but I’m more concerned about compatibility with weird content in ioquake3.)

World of Padman

World of Padman is a freeware first-person shooter based on the ioquake3 engine. (WoP source code)

My widescreen HUD support from “ZTM’s Flexible HUD for ioq3” was merged into World of Padman for version 1.7. I helped fix two widescreen issues with health station icons (distance independent 2D sprites on the HUD) and lens flares.

Some of the OpenGL2 renderer changes in ioquake3 were for World of Padman or at request of one of the World of Padman developers. q3map2 lightstyles effects are used by the wop_trashmap level.

Q3Rally

Q3Rally is a freeware racing and third-person car shooter based on the ioquake3 engine. (Q3Rally source code)

Some changes I made include:

  • Bots can drive around more race maps now (“Fix bots going in reverse for no reason in races”)
  • Fixed spectator observer camera to rotate smoothly
  • Fixed intermission view angles
  • Fixed players in race have an invisible chainsaw
  • Fixed client error dropping to menu when player dies if sv_maxclients is too high (“Fix out of range death events”)
  • Updated to latest ioquake3
  • Various other bug fixes

I fixed game network compatibility and enabled ARM64 support for the new Q3Rally Flatpak package for Linux.

Spearmint

Spearmint is my enhanced engine and game-logic based on ioquake3. (engine source code, game-logic source code)

opengl1 renderer

I fixed two issues in the opengl1 renderer due to adding changes from Wolfenstein: Enemy Territory.

Wolfenstein: Enemy Territory added far plane culling. The level BSP node bounds doesn’t include surfaces for q3map2 skybox portal hack (_skybox entity) so the far plane wasn’t set far enough and the skybox scene was cut off. Instead the bounds of surfaces in the BSP node should be used, which Wolfenstein: Enemy Territory also added.

Wolfenstein: Enemy Territory fixed surface culling for two sided level surfaces but this broke snow flakes in rgoer_seasons user created level for Quake 3 using “deformVertexes move” material feature to change the surface position. I changed back to Quake 3 behavior of not using exact view culling for two sided surfaces.

OpenGL2 renderer

I fixed bullet/explosion marks on doors and moving platforms in splitscreen player views. (It was pointed out to me that I fixed this in opengl1 years ago but I forgot to apply it to the OpenGL2 renderer.)

Game-Logic

I added an option to disable view kick when receiving damage.

I added setting the frame rate in the graphics options menu.

Maverick Model 3D

Maverick Model 3D is a 3D model editor and animator that I maintain that supports some game specific formats. It’s based on Misfit Model 3D that ceased development. (Maverick source code)

I developed/released Maverick Model 3D 1.3.14 in April.

In addition to that:

I fixed a couple issues for macOS and made GitHub Actions build and upload macOS build. If you’re logged into to GitHub, the macOS build can be downloaded from the bottom of the “Actions summary” page for each commit. I haven’t tested it as it requires newer macOS than I have access to.

I fixed a couple issues that I found through the Debian package tracker several years ago. CXXFLAGS are now respected by configure and it compiles for GNU Hurd. Though OpenGL—required for displaying the model—didn’t work in the Debian 2023 GNU Hurd virtual machine image.

I added support for exporting a Quake 3 player model with three separate models (head, upper, lower) to IQE format which can be converted to IQM for use with ioquake3 and derivative projects.

IQM uses skeletal animation which allows for less memory usage and better animation quality compared to Quake 3’s MD3 format that stores lower precision vertex positions for each frame and interpolates vertexes in a straight line between frames which may cause meshes to deform. Though IQM may be slower to draw.

I got IQE Quake 3 player model export working in 2018 (as reference in this ioquake3 forum thread where I was working on improving performance and fixing issues with ioquake3’s IQM support). I wanted to move Quake 3 player model export out on the individual format exporters but that never happened. So now it’s in IQE exporter.

P.S.

Most of these changes are a result of interacting with people rather than my own ideas or done for the sake of hypothetical other people.

If you found this useful, consider donating on Ko-fi (no account required).

]]>
ioEF preservation update https://clover.moe/2021/05/02/ioef-preservation-update/ Sun, 02 May 2021 22:07:16 +0000 https://clover.moe/?p=1307 In 2019 I posted that ioEF’s—a reimplementation of the Star Trek Voyager: Elite Force multiplayer engine—older source code was unavailable and I set up a code repository for the source code patches backed up by archive.org.

Thilo Schulz, the developer of ioEF, contacted me and pointed out that only the kickchat.com domain name expired and the ioEF files that were at http://thilo.kickchat.com/efport-progress/ (link to archive.org) are still available at http://thilo.tjps.eu/efport-progress/.

The six engine patches that were incomplete on archive.org are now found and integrated into my ioef-archive repository with easy to checkout git branches. I’ve also updated various links on this website and my code repositories to link to thilo.tjps.eu.

Things have turned out well with nothing lost. Thanks Thilo Schulz for getting in touch.

]]>
Quake 3 1.16n https://clover.moe/2021/01/30/quake-3-1-16n/ https://clover.moe/2021/01/30/quake-3-1-16n/#comments Sun, 31 Jan 2021 00:30:03 +0000 https://clover.moe/?p=1300

We did not receive the source code for versions prior to 1.32c and there is no way for us to go back to 1.16n or other old versions. For the very few mods that require 1.16n, there is no way to make them work on ioquake3.

https://wiki.ioquake3.org/Sys_Admin_Guide (via archive.org)

I read this in 2008 when I was looking at using ioquake3 for creating a game. From time to time people ask about Quake 3 1.16n for running the mod NoGhost or it comes up for playing with Quake 3 for the Sega Dreamcast using DreamPi.

At the end of 2019 I wondered how similar Star Trek Voyager — Elite Force Holomatch and Quake 3 1.16n were. Elite Force Holomatch is from before Quake 3: Team Arena changes were made in Q3 1.2# versions so it shouldn’t be that far off.

On a whim I decided to take Lilium Voyager (my updated version of ioEF, a re-implementation of Elite Force Holomatch on ioquake3, by Thilo Schulz) and run it with the data files used by Q3 1.16n. There was some Elite Force Holomatch specific changes to revert and then the game logic (in QVM files, Quake Virtual Machine) more or less worked.

I got the Q3 1.16n network protocol working in three days (with a 3 month gap in the middle) after a lot of messing with the network code . The last issue was reading player states which use an index into a pre-calculated table that specifies which player state fields changed with bit flags. (Q3 1.32 sorted the fields and just has number of modified fields.) After a 3 month break, in desperation I searched the Quake 3 executable for fragments of the table and found a slightly different table. Putting it into the source code fixed the remaining player state issues. (This is how reverse engineering works, right?)

Credit for reverse engineering Quake 3 protocol 43 goes to Thilo Schulz (for ioEF) and Zack Middleton.

After a minor change of allowing older UI version, it’s possible to run the original Quake 3 Retail/Demo version 1.11 and the 1.09 Demo Test (the first version with QVMs).

So 13 years after reading Q3 1.16n support was more or less impossible; I present my Q3 1.09 to Q3 1.16n compatible ioquake3 engine: Lilium Arena Classic.

No pre-compiled downloads are available yet. This has stalled since March 2020 due to my lack of desire to work on it but at least it’s rebranded and the source code is released now.

There is also now Lilium Arena as a Q3 1.32 compatible companion/parent project. Lilium Voyager may eventually be rebased on Lilium Arena Classic as most changes can be shared. So the process to update a common bug in all projects is to fix it in ioquake3 and then merge down the chain of ioquake3 -> Lilium Arena -> Lilium Arena Classic -> Lilium Voyager. This is kind of ridiculous. The git history is a mess and will continue to get worse. Ah, so is life.

Does new Quake 3 1.16n clients or servers interest you? Donations are accepted on ko-fi.

]]>
https://clover.moe/2021/01/30/quake-3-1-16n/feed/ 1
Lilium Voyager 1.40 released https://clover.moe/2019/11/02/lilium-voyager-1-40-released/ https://clover.moe/2019/11/02/lilium-voyager-1-40-released/#comments Sun, 03 Nov 2019 00:07:15 +0000 https://clover.moe/?p=1225 Lilium Voyager 1.40 has various rendering improvements and fixes SDL surround sound output. Download it at https://clover.moe/lilium-voyager.

The website for the ioEF binaries and source code went offline since the last Lilium Voyager release. I’ve made a repo for the ioEF engine source code. More details in the article below.

Changes

Summary of Lilium Voyager 1.40 changes that were merged from ioquake3. The changes were made by myself and seven other contributers. For the full list of changes see here (though many of the commits for the game logic do not apply to Lilium Voyager).

  • Minor improvements to the OpenGL renderers.
  • Bug fixes and performance improvements for IQM models (not used by Star Trek Voyager: Elite Force).
  • Fix SDL audio playback with surround sound (correctly output stereo to surround sound front left/right).
  • OpenGL2: r_cubemapping 2 for box cubemap parallax (by SmileTheory).
  • OpenGL2: Add r_parallaxMapShadows (by SmileTheory).
  • OpenGL2: Disable r_cubeMapping if not OpenGL 3.0+.
  • Restore OpenGL 1.1 support (GL_CLAMP).
  • Fix game resolution when compiled against macOS 10.15 SDK (by Ryan C. Gordon and patch by Tom Kidd).

The ioquake3 internal mixer only supports mono/stereo so SDL surround sound output only has front left/right audio. You can use OpenAL output (s_useOpenAL 1) for surround sound mixing support.

]]>
https://clover.moe/2019/11/02/lilium-voyager-1-40-released/feed/ 4
ioEF preservation https://clover.moe/2019/11/02/ioef-preservation/ Sat, 02 Nov 2019 23:47:32 +0000 https://clover.moe/?p=1239 ioEF (also known as iostvoyHM) is a project created by Thilo Schulz based on ioquake3 for running Star Trek Voyager: Elite Force Holomatch (multiplayer). My Lilium Voyager project is based on it.

The website for ioEF binaries and source code patches (thilo.kickchat.com on archive.org) went offline around July 2018. I sent Thilo Schulz an email about it in April but I haven’t heard back.

I downloaded the ioEF engine source code patches that were available from archive.org and ioquake3.org/patchez, applied them to the appropriate ioquake3 git revisions, and fixed compiling for Windows using mingw-w64. There are 13 ioEF engine branches on Github at zturtleman/ioef-archive.

If anyone has the ioEF engine patches for ioEF 1.35 or earlier (which were not fully backed up by archive.org) please post them on an issue at ioef-archive or send them to me.

I haven’t set up an archive for the ioEF game logic (QVMs in pak9{,0,1,2}.pk3) under EF SDK license yet though. There was a subversion repository but I forget where it was located.

ioEF 1.37 binaries (with pak92.pk3) are available at ioEF on moddb.

Update: The ioEF engine patches are not lost; no need to send them to me. The files are available at thilo.tjps.eu/efport-progress. For more details see the follow up post ioEF preservation update.

]]>
Flexible HUD release 7 https://clover.moe/2019/10/07/flexible-hud-release-7/ https://clover.moe/2019/10/07/flexible-hud-release-7/#comments Tue, 08 Oct 2019 00:37:34 +0000 https://clover.moe/?p=1212 ZTM’s Flexible HUD mod for ioquake3 release 7 is a minor update to improve video mode selection in Quake 3 and Team Arena menus.

Changes

These changes were merged from ioquake3. Two changes from myself and two contributed by others.

  • Add custom video mode (if in use) to Quake 3 and Team Arena menus. This fixes the custom resolution being changed to a built in mode if one uses the Quake 3 system menu and unable to change video mode using mouse in Team Arena.
  • Use video modes supported by your display (such as 1920×1080) in Team Arena system menu as already done in Quake 3 menu.
  • Prevent Q_IsColorString from asserting on negative ascii chars (by kungfooman).
  • Allow overriding build date in q3rcc for reproducible builds (by bmwiedemann).
]]>
https://clover.moe/2019/10/07/flexible-hud-release-7/feed/ 3
Flexible HUD release 6 https://clover.moe/2018/11/16/flexible-hud-release-6/ Sat, 17 Nov 2018 02:27:19 +0000 https://clover.moe/?p=1137 ZTM’s Flexible HUD mod for ioquake3 release 6 is a minor update to fix two Team Arena issues. These changes were also in Spearmint Quake 3 1.0.1.

  • Fix changing Team Arena statusbar (normal or small) in menu while in-game not applying widescreen adjustments for power ups area and voice chat head.
  • Make Team Arena prevTeamMember command loop around player list.
]]>
Flexible HUD release 5 https://clover.moe/2018/10/11/flexible-hud-release-5/ Fri, 12 Oct 2018 04:51:10 +0000 https://clover.moe/?p=1124 ZTM’s Flexible HUD mod for ioquake3 release 5 is a minor update to enable aspect correct HUD by default (cg_stretch 0) and display 8 maps instead of 4 in the Quake 3 start server menu.

I also merged my changes from ioquake3’s mod code:

  • Make testgun command without argument disable test gun model.
  • Fix loading favorites as initial source in server browser (reported by cdev).
  • Improve finding obelisk entitynum for bot AI (reported by Thomas Köppe).
  • Fix predicting entity origin on rotating mover (reported by kungfooman).
]]>
10 Years of Quake 3 https://clover.moe/2018/09/19/10-years-of-quake-3/ https://clover.moe/2018/09/19/10-years-of-quake-3/#comments Wed, 19 Sep 2018 05:00:21 +0000 https://clover.moe/?p=1060
Lycoris radiata
Red spider lily, licensed as CC-BY-SA 4.0 by Kakidai.

October 10th 2018 is the 10 year anniversary of when I started modding ioquake3. It was my third attempt at creating a Ninja Turtle fangame within a three year time period. I intend to release Spearmint 1.0 as the end result of 10 years of working on the Quake 3 engine.

On October 10th I’m planning to cease development on my projects based on the Quake 3 engine (Spearmint, Turtle Arena, Lilium Voyager, flexible HUD mod for ioq3, …) and resign from being a ioquake3 maintainer (since 2011). I’ll no longer be following ioquake3 development or providing support on the ioquake3 forum.

I don’t have a special interest in playing any of the games based on the Quake 3 engine and as of 2016 I’m no longer planning to use Spearmint for future game development. There is no actual reason for me to continue working on Spearmint and ioquake3. The main draw to continue is simply that someone should do it and I’m knowledgeable on the subject.

I’m pretty satisfied with the state of features and improvements that I’ve completed over the last 10 years. Of course there is still many things left that could be done; I just don’t care to continue working on the Quake 3 engine and I’m tired of the pressure I apply to myself to work on it.

I haven’t decided what I’m going to be doing with game/software development in the future. I may continue working at a slow pace on my new game/engine project Clover’s Toy Box which I’ve moved to private development. I may work on other art or projects instead.

If you appreciate my work on ioquake3 or Spearmint you could donate to me using PayPal via Ko-fi.com (no account required).

spearmint.pw domain name expires in a few hours. RIP 2013 – 2018.

]]>
https://clover.moe/2018/09/19/10-years-of-quake-3/feed/ 7
Q3Rally v0.0.1.2 released https://clover.moe/2018/08/21/q3rally-v0012-released/ Tue, 21 Aug 2018 07:29:26 +0000 https://clover.moe/?p=1054 Q3Rally v0.0.1.2 has been released after two years. New cars and maps, macOS build, ship SDL with GNU/Linux builds, and lots of bug fixes.

The changes were made by me unless otherwise noted.

Code changes:

  • Perle fixed the default bot names to be bots that exist in the game.
  • Perle changed the master server from master.q3rally.com to master.ioquake3.org.
  • Update engine from ioquake3 Dec 2012 to July 2018.
  • Restore compatibility with running Q3Rally on unmodified ioquake3.
  • Include SDL2 library with GNU/Linux builds so player doesn’t have to install it.
  • Reviewed the Game and CGame modules (59,000 lines of code) and merged fixes from ioquake3 (and later Q3 point releases) and fixed some other issues I found.
  • Add/fix scroll arrows in demos menu.
  • Fix “Only humans” option in server browser always being disabled and not aligned with other options.
  • Make specify server menu use back/next text in the same position as the previous menu.

Data changes:

  • Perle added several new cars and two new map objects.
  • Perle added new Capture the Flag and Deathmatch maps.
  • Perle added working mapping tools for NetRadiant/GTKRadiant 1.5.0.
  • Perle added shaders for flame thrower ammo icon and model.
  • Add support for Q3Rally custom surfaceParms to NetRradiant config.
  • Fix names not being added to some license plates (incompatible image format).
  • Add Q3Rally items to botfiles.
  • Fix names of powerup items weights in botfiles.
  • Add missing rocket model image from OpenArena.
]]>