WFA 2.9 HUD Customization

(Display everything on one page)

Intro | | Full HUD | Mini HUD | 0700 HUD | Milli HUD | Peri HUD | | Downloads


Introduction To The HUD


Notice, 13 Aug 2001: WFA 3.0a has added a separate ownerdraw for nurse drugs. With imminent death of WFA development, though, I see little reason to attempt to add nurse drugs to my set of HUDs -- why bother with a condemned mod? My interests have turned to other things, such as python, Quake III Urban Terror, Weapons Factory Unreal Tournament, and business-environmen defenestration.

WFA 2.9 is the first release of Weapons Factory Arena that runs on the Quake III: Arena 1.27 point release. Prior releases (WFA 2.1 being the last) ran under v1.17 point release.

The new WFA adopted the Quake III: Team Arena (Q3TA) menu code, which uses text description files (".menu" files) as a way to script the menus. This allows a certain amount of user-made customization to the menus, without requiring such changes to be packaged in the pk3 files (this is significant with respect to sv_pure servers).

The HUD (Heads-Up Display) is a special case of the menu. As the menus can be altered by the player, so can the HUD. The default HUD for WFA is taken directly from Q3TA. Personally, for me, this is a rather busy HUD: along with a TGA file for HUD chrome, the background of the HUD has a staticy-looking animation that really drags down my framerate. Not to mention distracting.

Upon realizing (more like assuming...) the menus, and HUD, were customizable, I started on my venture to simplify the HUD into something more straightforward. Along the journey, I was forced to analyze the menu-parsing code; this resulted in a preliminary documentation of the .menu format, which is available here: http://www.linux.ucla.edu/~phaethon/q3tamenu/q3tamenu.html.

selectedPlayer

It came to my attention that I should explain how to use the selectedPlayer HUD element. The two basic bindable commands are "nextTeamMember" and "prevTeamMember". The command "nextTeamMember" rotates forward through your team members, in increasing order of ID numbers. The reverse is done with "prevTeamMember". Thus, bindings would look like:
/bind UPARROW "prevTeamMember"
/bind DOWNARROW "nextTeamMember"

Rotating past the final member of your team with "nextTeamMember", the panel will display TeamInfo, a summary of all your team members, health, locations, and powerups (including flags). You can rotate to the first team member using "nextTeamMember" from TeamInfo, but using "prevTeamMember" from TeamInfo does not rotate backwards as expected -- it doesn't rotate, and stays at TeamInfo. Sort of weird that way.

Another annoyance is that TeamInfo is actually the value (number of team members + 1). This means when a new player joins or leaves the team, the selectedPlayer HUD will shift to another player (or TeamInfo).

Setting the cvar 'cg_currentSelectedPlayer' will jump to a team member. The value to set is the player's sequence in the team members listing, not id number. The first player is 0. There is arguably a bug with this, as setting 0 directly will not work as expected, but using 1 does. I use this bind to jump directly to the TeamInfo display:
"cg_currentSelectedPlayer 1; cg_currentSelectedPlayer 0; wait 10; prevTeamMember"
And this bind to jump to the first player in the list:
"cg_currentSelectedPlayer 1; cg_currentSelectedPlayer 0; prevTeamMember; nextTeamMember"
Notice that 'cg_currentSelectedPlayer' is first set to 1, then 0, then the two basic binds are executed in sequence to settle down the cvar 'cg_selectedPlayer', which do not get updated as 'cg_currentSelectedPlayer' is altered. Even more weird.

(section last modified 2001.08.14 03:48 UTC)


Page maintained by PhaethonH <phaethon \@ linux ucla edu)>