Donkha's coding blog

DonQhud v1.1 custom Quake HUD for DP/FTE/QSS/VKQ

Table of Contents

  1. Description
  2. Features
  3. Screenshots
  4. Download & Installation
  5. Version History

Description

Custom HUD for Quake and both official Mission Packs, requires one of the following advanced source ports:

This only uses a csprogs.dat for the compatibility sake with other mods.
The mission packs have their own version because the items are partially redefined.
Credits: Spike for the base hud code from the QSS DevKit.


Features

  • HUD
    • Modernish lite layout compared to the default statusbar hud.
    • Displays all the 4 ammo types with the currently active one in big.
      Red numbers at 20% of the maximum ammo instead of the last 10 ammo.
      The alternate ammo for the Rogue's mission pack, are swapped like in the original game depending on the selected weapon. (it would need a progs.dat modification to know and display all the ammo at the same time here in csprogs.dat)
    • Weapons availability bottom-mid with the selected one in orange.
    • Artifacts timer at bottom-left corner.
      Because it's fully interpolated (this would need a progs.dat modification to know the real time here in csprogs.dat), if you save and reload your game, the timers' duration will reset but this is just a visual bug.
      A timer can refresh on item pickup by parsing the pickup message in english, so must have the messages enabled.
      Known issues with VKQ:
      • Up to v1.20.3 (will be fixed afterward) the basic text drawing ignore the size set and this will looks much smaller than intended.
      • The csqc entry point to parse message doesn't works.
    • Keys appear at the bottom-right corner.
    • New map info on the mid-left screen, doesn't hide main hud elements.
      In vanilla Quake, the runes/sigils collected in each episode are displayed here instead of the permanent hud.
      Shows the demo player name during single player demo playback, except for VKQ.
      You can set the cvar saved4 to 1 (or just non-zero) to show the secrets and kills count in percentage.
      This shows alternate info in deathmatch games, like the frag and time limit for FTE/QSS, but only the time for DP/VKQ.
  • CROSSHAIR
    • Optional simple scalable crosshair available by setting the cvar crosshair to -4 or below for bigger size, uses a negative value because some ports like DP or FTE already have multiple crosshairs available.
    • Changes color depending on current health: at/under 25: red; at/under 50: orange; under 100: yellow; at/above 100: green;
    • Independent from the custom hud code (except for VKQ): still works while using the default statusbar hud at viewsize 100.
      Known issue with VKQ: Will be drawn on top of the default crosshair because I've no control over the default crosshair that is always displayed if the cvar crosshair is non-zero.
  • INTERMISSION
    • The screen layout mimic the original one with the secrets and kills count increasing in an arcadish way, like in DOOM or Duke Nukem 3D.
      Secrets are counted 1 by 1 every half second with the secret's sound.
      A amount of kills under 30 is counted 1 by 1 with the nailgun's fire sound, then 2 by 2 with the super nailgun's fire sound. Both 10 times per second.
    • Displays map name and difficulty info above the (Level) Completed picture.
    • Displays relevant input information at the bottom of the screen, to skip the stats counting, or continue to the next level/return to the hub at the end of an episode.
      Known issue with QSS: The weapon is always drawn by the engine while using a custom csqc.
      Known issues with VKQ:
      • Cannot skip the stats counting because the csqc entry point for input doesn't works.
      • The sound may sound off due to the use of an alternate builtin because the main ones aren't implemented for csqc.
      • Cannot display the message "return to the hub" because the hud control is lost during the finale text.
  • SCOREBOARD
    • Re-uses the default hud to show the current engine's scoreboard in deathmatch, for various technical reasons.
      Displaying the custom hud on top with some background as an overlay for FTE/QSS, so the important player info aren't hidden.
      Known issue with DP: The default DP hud is always drawn after/on top of any custom csqc code, thus the map name and time are still visible. It's only trully annoying if the map has any secret/monster with the second info line above.
    • At the end of a deathmatch game with QSS, displays a minimal frags | name scoreboard. Due to the simplecsqc I cannot use the original hud/scoreboard in that specific case.
    • Always uses that minimal frags | name scoreboard in VKQ, cannot use the default one due to the minimal csqc implementation.

Screenshots

donqhud_1 donqhud_2


Download & Installation

  1. Get the archive from Dropbox: direct download (41kb) / archive preview.
  2. Extract \id1\csprogs.dat into your source port\id1\ or custom mod's folder.
    (optional) Extract \hipnotic\csprogs.dat into your source port\hipnotic\ folder.
    (optional) Extract \rogue\csprogs.dat into your source port\rogue\ folder.
  3. Launch Quake with your source port.
    (optional) For the mission packs, launch your source port using the command line: -hipnotic or -rogue
  4. The custom HUD is only active at viewsize 110 (aka the smallest statusbar hud mode), so you can still swap mid-game to the default HUD at or under viewsize 100 if you want to.
    You should be able to control the viewsize with your - and + keys, but those default keybinds may not works depending on your keyboard's layout.
    In any case, you can just type viewsize 110 in the console or rebind the 2 keys using the console commands: bind <your_key> sizedown and bind <another_key> sizeup.
    Known issue with VKQ: Due to the minimal csqc implementation, the custom HUD is always displayed no matter what.

Version History

  • v1.1 - 2022-09-11:
    • Added vkQuake support, slightly limited due to the lack of control from the minimal csqc implementation.
      Note: VKQ doesn't support pk3 and only generic indexed pak*.pak, so this mod is now provided as raw csprogs.dat.
    • Added simple scalable crosshair that changes color with current health.
    • Added basic teamplay info to deathmatch overlay for FTE/QSS.
    • Fixed deathmatch fraglimit display for QSS.
    • Fixed intermission colon and slash characters width and spacing from 24px to 16px.
    • Adjusted intermission numbers position from x144 to x152 (based on a virtual 320x200 area mid-screen).
    • Fixed intermission icon animation skipping the last frame while counting secrets.
    • Clarified the message to skip the stats counting during intermission.
  • v1.0 - 2022-09-04:
    • Initial release.
Thoughts? Leave a comment