UFO Alien Invasion Hacking
UFO Alien Invasion (UFO AI) is an XCOM tribute game. UFO AI
uses the Quake 2 code released by Id several years ago under the GNU General Public License. This
is a very good thing for at least two reasons. First, Olle Kallander wrote an excellent book describing the Quake2 API; and second,
Quake2 uses OpenGL which is easily
ported to non-MS systems.
UFOAI TD1 Revision 27 - Bug fixes and minor improvements
Windows and linux
binaries. Includes all the previous patches, plus the following:
- Fixed the particle system reset in client/cl_team.c so that it uses a
reset that clears the currently running particle systems, but not the
data loaded from the ufos file.
- Fixed a problem when uncrouching
- Some interim sniper functionality (try the sniper console command)
- Fixed bug where first person camera mode failed to follow change of actors.
- Added some comments to vid.h
- bugfix: fixed an unanticipated interaction between the "confirm actions"
mode and the greying-out of fire buttons, which meant that when you
were in confirm actions mode, the buttons got reset back to active
whenever you moved (and remained that way thereafter) even if they
shouldn't have been.
- Improvements to first person camera mode:
- look left and right (uses +turnleft and +turnright commands)
- look up and down (added +lookup and +lookdown commands)
- added bindings for lookup and lookdown to keys.cfg (j & m keys
UFOAI TD1 Revision 20 - More improvements by Rob Rendell
Windows and linux binaries
now available! Includes all the previous patches, plus the following:
- Made changes to streamline the building of UFO:AI under cygwin. Added a hard-to-find
header file (dsound.h) to the repository, and wrote a readme_cygwin.txt file to describe how
to build under cygwin
- Fixed the ogg vorbis problem as a result of the above changes.
- Add bindings for keys 1-8 to select that team member.
- Changed the red Tracer particle defn to longRangeTracer, and added inRangeTracer (green)
and moveTracer (cyan)
- Changed the buytype of Plasma Pistol to secondary
- Added the "confirm actions" option to the game menu
- Add bindings for keys 1-8 to select that team member.
- Change occurrances of "moral" to "morale" throughout the code.
- Collect alien's equipment when winning a mission, and lose equipment left
behind when losing one.
- Why doesn't the plasma pistol ammo show up in the market? Because it was
marked as secondary, but plasma pistols weren't
- Should allocate the equipment in hand before the backpacks, so earlier
soldiers don't take spare clips before later ones load their gun.
- Simplified CL_ActorReload to simply use a weapon's "link" value, rather than searching for
a clip by searching for an object with a "kurz" of the weapon's "kurz" plus an underscore.
- Accrete partial weapon clips at the end of missions. Extend equipDef_t to have left-over
bullets for each type.
- Saving/loading left-over bullets to the save file. Also added a version number to the save
file format to make it backwards compatable.
- When starting a mission, load left-over bullets into gun if no complete clip is available.
- Reloading a non-empty gun should add the bullets from the displaced partial clip directly
to the left-over bullets.
- "sv showall" server command to reveal everything to everyone (not very robust, seems to
confuse the server a bit)
- Fixed a bug in G_InventoryToFloor where it use the shape of whatever was in your right
hand when trying to find space for each item in your inventory.
- When targetting, have an optional additional confirmation step (e.g. hitting space) to
fire. Same system for movement: when you right click to move, your path (without
interruptions) is displayed, and then you hit space to actually send the command to the server.
Remembers your destination if your move is interrupted.
- Give a visual indication of when a shot goes past its range
- Fixed: particle systems persist between maps (e.g. fire on one map will appear on the next
in the same place).
UFOAI TD1 Subversion Server
Are you interested in hacking the UFOAI game? If you are, then please consider using the public
subversion server. Subversion is a version control
system. It is easy to use under windows or *nix. You can download a free manual: Version Control with Subversion
The URL for the server is svn://radagast.bglug.ca/ufoai_td1. For instance, if you are using
linux, you would checkout the code using this command:
bash$ svn checkout svn://radagast.bglug.ca/ufoai_td1
Patch 02: Lots of improvements, thanks to Rob Rendell!
- Recalculate the move cost of the current mouse position whenever the grid is
recalculated, even if the mouse doesn't move.
- Blank the move cost if the mouse goes out of the world.
- Grey out primary/secondary fire buttons for left and right hand as a move is planned,
based on the TUs that would remain if the unit moved to the current location.
- The camera will follow the currently selected unit up or down levels as long as it (the
camera) is currently on the level they're leaving.
- Fixed the targetting (mapping from the pointer's position to world coordinates) in first-person mode
- Made first-person mode sink (well, jump down, actually) when crouched
- Turning toward the direction you're already facing no longer costs TUs
- Changed the code that submits strings to appear in menus (menuText) so they all share a
common #defined maximum size.
Patch p02: revision 15 on the subversion server.
sorry no windows binaries yet. If a windows user compiles the patch 2 source, please send me a set
of the binaries.
Patch 01: Zoom out, First Person Camera, and Minimum Skill
Zoom. Zoom the camera out, see the whole battlefield.. The zoom patch was written
by dwitch and posted to the UFOAI Coding Forum. I copied into this unified patch.
First Person Camera. Change the camera location and angle to the currently
selected player. To do it, pull down the quake console and execute the "cameramode"
command (or bind this command to a key).
Minimum Skill. When Tech Demo #1 generates character attributes (strength, speed,
dexterity, etc) it assigns a uniformly random value between 0 and 190. Patch 01 changes this to a
uniformly random value between 50 and 190.
Patch p01: ufoai_td1_p01.diff.gz,