The Promode Team are happy to announce the latest version of CPMA (the mod) and CNQ3 (the engine) are now available for download. The mod now comes with a whole host of new features, fixes, and changes, the biggest of which being the customizable item timers, which will be available to all spectators only.
You can download CPMA 1.52 and CNQ3 1.51 from here.
As always, if you would like to play CPMA, please download the game from playmorepromode.com, and join the CPMA Discord.
AdditionsChanges
- add: SuperHUD element RecordingDemo will only be visible when recording a demo. This will only be supported by compatible engines (latest CNQ3 and Quake3e).
- add: item timers for 1.52+ demos and live view (non-coaching spectators only).
- ItemTimers* HUD elements for placement, appearance, team filters.
- ch_timers* CVars for type filtering, ordering, time sync.
- add: SuperHUD elements for groups of item timers:
- ItemTimers1_Icons to ItemTimers4_Icons display the icons.
- ItemTimers1_Times to ItemTimers4_Times display the time remaining until spawn.
- add: ch_timersList
(default: "quad bs regen invis haste flight medkit mh ra ya").
- It's a space-separated list of item types to display in all modes. When not in CTF/NTF, the list's order is the display order to print the list of tracked items and their short names, use /itemtimerlist.
- add: ch_timersSync <0|1> (default: 0) synchronizes all item timer text updates.
- add: ch_timersOrderOR <0 to 3> (default: 0) is the order within own/red item timers.
- add: ch_timersOrderEB <0 to 3> (default: 1) is the order within enemy/blue item timers.
- CTF/NTF only:
- 0 - Flag -> Mid
- 1 - Mid -> Flag
- 2 - Custom list (ch_timersList)
- 3 - Custom list inverted (ch_timersList inverted)
- add: ch_timersOrderTeams <0 to 3> (default: 0) is the order of item timer teams.
- CTF/NTF only:
- 0 - Own -> Enemy
- 1 - Enemy -> Own
- 2 - Red -> Blue
- 3 - Blue -> Red
- add: new SuperHUD commands and command arguments:
- fadedelay
: wait time in milliseconds (max. 5000) before the "fade" animation starts. - alignh
: horizontal alignment (Left, Center, Right). - alignv
: vertical alignment (Top, Center, Bottom). - direction
: direction (Left-to-right, Top-to-bottom, Right-to-left, Bottom-to-top). - textoffset
: offset to apply to the text position after all other computations. - imagetc
: texture coordinates for the shader specified by "image". - margins
: offsets (positive means inward) to apply to "rect" when drawing "image" or "text" with a non-"fill"ed background. - itteam
: item timer team filter (Red, Blue, Neutral, Own, Enemy). - color I: changes the background color to match the item timer's team.
- L T R B C: stand for Left Top Right Bottom Center respectively when used in StatusBar_*Bar, "direction" overrides "textalign" and gives access to top-to-bottom mode. When used with ItemTimers*, "direction" only specifies the axis, the orientation is handled by CVars.
- add: only users with compatible engines will get a full item timers refresh right after /record. For the others, the timer data will be invalid until either an arena restart or arena change happens. Note that /autorecord will always work on all engines.
- add: server_timersNeutralZone <0 to 256> (default: 16). Allows some wiggle room in the definition of center map for item timers in CTF/NTF some maps have their mid power-ups slightly off-center (e.g. quad, haste and mega on cpmctf2).
- add: cfg-maps/itemtimers.txt can be used to tweak some entity positions for item timers. Some maps have ba
se items at exactly mid-distance between both flags (e.g. bottom YAs on q3wcp14). - add: new SuperHUD elements Name_OWN and Name_NME. They won't be visible in pre-1.52 demos when in FFA or a 1v1 mode in free-float view.
- add: /con_echo can now output a cvar's value using the $(cvar) syntax (e.g. "con_echo $(s_volume)").
- add: the pla
yers' ready status is now drawn in the 1v1/hm scoreboard during warm-up. - add: the #V team chat token is the last enemy pla
yer you killed. - parts of the vote system were stuck on version 1.47. In addition to the 1.48 changes, non-speconly'd spectators can now vote on:
- referee and unreferee items in all game modes (1.48: all modes except 1v1 and HM).
- any item in Duel Arena.
Fixes
- chg: the #T team chat token is now the last enemy pla
yer you damaged. - chg: the #D team chat token is now the last enemy pla
yer who damaged you the AttackerIcon and AttackerName HUD elements now refer to the last enemy pla yer who damaged you /messagemode4 will send a private message to the last enemy pla yer who damaged you. - chg: ch_drawWarmup 1 no longer draws anything in coach view.
- chg: improved the default HUD and added item timers, pla
yer names and a demo recording indicator. - chg: removed the "draw3d" SuperHUD command (to load a skin, use "image" after "model").
- chg: com_blood 0 no longer turns off gibs (despite cg_gibs 1) in all modes other than FTAG.
- chg: "Add Bots" and "Remove Bots" menu tweaks:
- fixed all unregistered keys scrolling the list up by 1 line.
- added list scrolling support with home/end/page up/page down.
- chg: in free-float view, Score_OWN/Name_OWN is red/1st place and Score_NME/Name_NME is blue/2nd place.
- chg: the accepted value range for the fadedelay and time SuperHUD commands is now [0, 5000].
- chg: removed ch_drawWeaponSe
lect and added 2 new SuperHUD elements as replacement:
- WeaponSe
lection: the weapon wheel. - WeaponSe
lectionName: the name of the selected weapon unlike ch_drawWeaponSe lect, the new elements are also active in live and demo follow views to learn how to replicate the look of ch_drawWeaponSe lect, please refer to the website's guide. - chg: disabled WeaponList and WeaponSe
lection* in team modes when multi-view is active because the weapon list would only consist of the current weapon (it's a MV limitation). - chg: tweaked demo playback a bit:
- HOME: sets speed to 1, no longer resumes playback.
- END : toggles play/pause.
- PGUP: multiplies speed by 2 (max.: 32), no longer resumes playback.
- PGDN: divides speed by 2 (min.: 0.125), no longer resumes/pauses playback.
- the demo playback messages are now drawn in coach (multi-)view as well.
- chg: spectators can always vote when no human pla
yer is in the arena.
- fix: fixes for the power-up list in the HUD when multi-viewing games:
- the list could sometimes be broken or empty.
- the order now matches the currently loaded SuperHUD config.
- 2v2/TDM: time remaining was ticking down during server pauses.
- 2v2/TDM: the icons were not displayed when the pick-up time wasn't known.
- 2v2/TDM: the countdown was starting at 29 instead of 30.
- fix: team chat token data for #C #D #P #T #V now gets cleared during team changes.
- fix: first-person gun offsets were wrong when cg_fov was too high or had a fractional value.
- fix: disconnecting pla
yers could cancel team pauses. - fix: the FollowMessage SuperHUD element was visible for pla
yers in the arena during server pauses. - fix: vid_restart could revert the following to former values: scores, warm-up, # of red/blue pla
yers alive. - fix: you could get awarded the defense medal by vicinity for protecting a dead or invalid pla
yer. - fix: server crash (division by 0) at the end of a CTFS/CA match when printing the stats.
- fix: team mode matches could start with an empty team.
- fix: callvotes now get validated more strictly to prevent redundancy, mistakes and abuse:
- on/off items only accept "0" and "1".
- numeric items only accept numbers in range with no extra characters.
- numeric items only accept numbers different than the current ones.
- the "mode" and "match" items only accept names of modes that exist and are enabled.
- the "item"/"items" item only accepts proper item names with a "+"/"-" prefix.
- the "item"/"items" item only accepts callvotes that would change the current item list.
- the "nextmap" item now gets validated like the "map" item.
- fix: in the error menu, pressing any key when the cursor was on the button would transition to the main menu
- fix: in team modes, referee spectators could /coachinvite pla
yers to coach the spectator team. - fix: Score_NME was visible even when the score wasn't valid (no (other) pla
yer in the arena). - fix: a very old bug prevented some state changes from being sent to the clients through config strings affected: score blue/1st/red/2nd (sb/sr), # blue/red pla
yers alive (pb/pr), warm-up time (tw). - fix: team and pla
yer names now get validated the same way the maximum display length is 16 and leading/trailing whitespace is no longer accepted. - fix: the SuperHUD element StatusBar_AmmoBar never drew the ammo bar with infinite ammo (<= -1).
- fix: the SuperHUD element AmmoMessage could be visible with infinite ammo (< -1) (e.g. mg on wtf24).
- fix: ch_recordMessage 0 wasn't respected when starting demo recording through /record.
- fix: incorrect behavior with cg_predictItems 0 (always) and cg_predictItems 1 (sometimes):
- backpack pickups in NTF would show weapon/ammo names/icons in the SuperHUD and emit weapon/ammo sounds.
- with cg_autoswitch 1 in NTF, pickups of backbacks dropped by pla
yers who had. - a weapon with ammo selected would make you switch to said weapon when you had it.
- cg_predictItems 0 only: power-up pickups didn't show up on the HUD (ItemPickup and ItemPickupIcon).
- pre-1.52 demos will exhibit the same behavior no matter what cg_predictItems setting was used.
- fix: the following UI bits were still drawn when cg_draw2D was 0:
- Multi-View coach: scoreboard, center print, all SuperHUD elements.
- Multi-View zoom: scoreboard, center print, SuperHUD element WarmupInfo.
- fix: connecting pla
yers were not always moved to the spectator team after game type changes. - fix: SuperHUD vertical double bars now work correctly in the StatusBar_*Bar elements.
- fix: the WeaponList and Console SuperHUD elements can now fade properly.
- fix: no longer writing stats and clearing the console when spectating with cg_autoAction flags 1 and 16 set.
- fix: ch_pla
yerNames now draws at correct locations regardless of FOV. - fix: when the score limit is greater than 1 in DA, we now display the correct scores they are hidden during playback of pre-1.52 demos since they were incorrect.
- fix: map scr
ipt callvotes were always rejected (e.g. "cv map !cpm17tp"). - fix: pla
yer win/loss stats were updated incorrectly after forfeits. - fix: pla
yer models were distorted or invisible in the UI when the resolution was too high. - fix: spawn telefrags were still possible due to an incorrect distance test.
- fix: the follow specbug (toggling follow/free-float mode with +attack).
AdditionsChanges
- add: now showing the cvar's current and latched values in the help panel.
- add: new console and chat keyboard shortcuts:
- Ctrl-left/right arrow: move caret to previous/next word.
- Shift-left/right arrow: move caret to previous/next argument.
- add: new console keyboard shortcuts:
- Ctrl-I: insert cvar's current value.
- Ctrl-D: insert cvar's default value.
- add: demo recording status query extension for CPMA 1.52+.
- add: /cvar_add
to add a number to a cvar. - add: /cvar_mul
to multiply a cvar by a number. - add: /unset
to remove a user-created cvar. - add: /setempty
to set a string cvar to an empty string. - add: /toggle can now accept a value sequence (2 or more entries) to loop through syntax: /toggle
[ [value3]..]. if the cvar's current value is in the sequence and not in the last spot, the next one is used otherwise, the first value in the sequence is used. Fixes
- chg: r_lodCurveError <250.0 to 10000.0> (default: 2000) is now archived and no longer cheat-protected
- chg: multi-monitor support improvements:
- add: /monitorlist will print all detected monitors and the indices to use with r_monitor.
- chg: the monitor list now gets updated during video restarts and calls to /monitorlist.
- chg: Linux: r_monitor is a 0-ba
sed index and monitors are sorted top-to-bottom, left-to-right. - fix: Windows: the Windows + shift + left/right arrow key shortcuts should be usable now.
- chg: bundling lightmap tiles into texture atlases for improved rendering performance.
- chg: faster map loads by limiting the rendering back-end's fr
ame-rate. - chg: on Windows, the upper limit of open stdio file handles was raised from 512 to 2048.
- fix: the presence of .shader files outside of PK3s no longer triggers a drop error.
- fix: shader stage collapsing was happening in cases where it would yield incorrect results.
- fix: map download improvements:
- add: using numeric addresses as fallbacks in case DNS resolves fail.
- chg: made connections non-blocking so the engine won't freeze for long when starting a download.
- chg: writing to $(fs_homepath)/ba
seq3 instead of $(fs_ba sepath)/ba seq3. - fix: only using valid (TCP/stream) addresses from getaddrinfo.
- fix: setting send time-outs so the engine can't freeze indefinitely.
- fix: creating the destination directory when it doesn't already exist.
- fix: the file name suffixes generated by /dlmapf would often repeat due to a constant seed.
- fix: the last byte of a maximum length bitstream string wasn't parsed ("q3msgboom").
- fix: aborting demo playback would crash when the "nextdemo" cvar was set to play a demo.
- fix: no longer feeding cs commands that came from a previous gamestate to cgame example in CPMA: "/map cpm22" -> "/cv map cpm25" -> elevator sound was broken.
- fix: on Windows, could sometimes click outside the engine's window in raw mouse input mode.
- fix: when r_msaa was in the range [2, 16], the requested sample count was always 4.
- fix: /video and /stopvideo fixes:
- chg: /video can only be used during demo playback
- fix: broken audio in the output files
- fix: properly named file sequences
- fix: using a better supported video codec (FourCC 0x00000000) for raw BGR output
- fix: broken raw video output when r_width wasn't a multiple of 4
- fix: /stopvideo no longer leaves sound output broken for a while after stopping
- fix: /cv and /callvote map auto-completion was disabled after cgame was shut down at least once
Li