503 lines
19 KiB
Plaintext
503 lines
19 KiB
Plaintext
|
Challenge ProMode Arena: Client Settings
|
||
|
-----------------------------------------
|
||
|
|
||
|
Date: 22-Apr-2009
|
||
|
|
||
|
This document explains some of the clientside support for CPMA. It will
|
||
|
never be as current as the changelog, so you should always check that
|
||
|
with each new release.
|
||
|
http://www.promode.org/wiki/index.php/Client_Settings will almost
|
||
|
certainly be more up to date.
|
||
|
|
||
|
|
||
|
Network Settings
|
||
|
----------------
|
||
|
|
||
|
cg_lagHax <-1|0> (default = -1)
|
||
|
A combination of adaptive prediction and an updated version of the
|
||
|
famous "50ms hack" we introduced way back in 99v6 that also does small
|
||
|
amounts of lag compensation. Capped at 100ms no matter what: this is
|
||
|
intended solely to make European / EastUS v WestUS / etc games a bit
|
||
|
less of a hassle, not to hack dialup players into aimgods at the expense
|
||
|
of everyone else. 0 disables it, -1 means "as much as I'm allowed": it's
|
||
|
naturally adaptive. You'll lose some of your "feel" for lag, which
|
||
|
messes up your RL aim, etc. This doesn't suffer from the CS/etc problems
|
||
|
of "total BS" shots that piss everyone off; it's not trying to be some
|
||
|
panacea for modemers; and I'm honest enough to call it the hack that it
|
||
|
is instead of pretending that it magically makes lag suddenly not exist,
|
||
|
but all in all it's a pretty nice end result. If you use this, any form
|
||
|
of nudging will generally make you LESS accurate if your ping's under
|
||
|
100ms, because it'll screw up the adaptive calculations.
|
||
|
|
||
|
cg_nudge <value> (default = 0)
|
||
|
An updated and much improved version of
|
||
|
id's crippled cl_timenudge. Allows you to use nudges beyond -25, and
|
||
|
automatically adjusts them to your ping: if you use -50 with a 20 ping,
|
||
|
you get -20. If you spike to 40ms for a few seconds, you get -40 during
|
||
|
the spike. This give you a "consistent worldview" that cl_timenudge
|
||
|
can't, and generally helps regardless of your connection.
|
||
|
|
||
|
cg_optimiseBW <bitmask> (default = 0)
|
||
|
1 - Significantly reduces the amount of non-critical data sent to you.
|
||
|
Regrettably, this also makes you unable to see players through portals,
|
||
|
thanks to a bug in the Q3 engine. Small price to pay though for the HUGE
|
||
|
difference it makes to team games. Servers can, and by default do, force
|
||
|
this on for all clients. It's probably worth setting it to 1 anyway
|
||
|
though, just in case you end up on a server that's changed it to 0.
|
||
|
2 - Use this if your connection is UTTERLY starved for upstream bandwidth
|
||
|
(i.e. from you TO the server). Essentially, if you're on dialup or one
|
||
|
of those Belgian Warp connections. Understand that if you're warpy and
|
||
|
you choose to NOT set this because you like the advantage you get from
|
||
|
warping, you're screwing YOURSELF. Your shots will end up with
|
||
|
potentially huge random delays on them, so even if you're LPB the server
|
||
|
may not see that you fired until up to 100ms after the fact, effectively
|
||
|
making your weapons act like you have an unstable and much laggier
|
||
|
connection, and without cg_nudge's ability to smooth it out.
|
||
|
|
||
|
cg_predict <0|1|2> (default = 1)
|
||
|
Replaces cg_nopredict.
|
||
|
0 - off
|
||
|
1 - normal
|
||
|
2 - optimised
|
||
|
The normal prediction path is extremely slow at times (notably around
|
||
|
curves) and can cost you 100fps on a GHz machine. This new scheme is
|
||
|
MUCH faster, but slightly more prone to errors. Oddly enough, it's still
|
||
|
more accurate than the original id prediction code (i.e. before the CPMA
|
||
|
fixes). If you have a slow machine, it's definitely worth trying. Note
|
||
|
that cg_predict 2 was introduced 9 Sep 2002, the definition of a "slow
|
||
|
machine" has changed since then. Today's computers will not notice any
|
||
|
difference at all.
|
||
|
Note: Do not use cg_predictItems 1 with cg_predict 2.
|
||
|
|
||
|
cg_predictItems <0|1> (default = 1)
|
||
|
Toggle client-side item prediction. 0 option to not do local prediction
|
||
|
of item pickup. If you get many false pickups (due to lag, packetloss or
|
||
|
high ping) you should definitely use 0. It's annoying when the client
|
||
|
predicts that you picked up RL, only to notice a bit later that you did
|
||
|
not pick up anything.
|
||
|
Note: Do not use cg_predictItems 1 with cg_predict 2.
|
||
|
|
||
|
cg_smoothClients
|
||
|
Does not exist in CPMA - see cg_xerpClients instead.
|
||
|
|
||
|
cg_xerpClients <-1|0|1> (default = 0)
|
||
|
A replacement for id's cg_smoothclients that does something useful. :)
|
||
|
1 - Hacked extrapolation: intended for HPBs
|
||
|
This smooths players out when you use high timenudges, at the cost of
|
||
|
some accuracy. It's typically easier to hit a smooth target that's a few
|
||
|
pixels misplaced than it is to hit one that looks like it's teleporting
|
||
|
all over the map, so this combined with cg_nudge is the best option for
|
||
|
HPBs.
|
||
|
0 - No extrapolation. Fine you're LPB.
|
||
|
1 - id's smoothclients: fine if you have cg_nudge 0, worthless otherwise.
|
||
|
Note that prediction errors, such as players in walls, are likely to
|
||
|
occur. Tends to increase how much other players warp to you.
|
||
|
Use at your own risk.
|
||
|
|
||
|
cl_maxpackets <30-125> (default = 63)
|
||
|
The higher value, the more correct info you send to the server and the
|
||
|
more you will hit and the less you will warp - set as high as your
|
||
|
connection allows.
|
||
|
|
||
|
cl_packetdup <value> (default = 1)
|
||
|
Set to 0 if your connection is fine.
|
||
|
Set higher if you experience much packet loss.
|
||
|
|
||
|
cl_timenudge <value> (default = 0)
|
||
|
This still exists in CPMA, but should always be 0 unless you're so used
|
||
|
to "normal" Q3 netcode that you've become dependent on it. All it really
|
||
|
does now is mess up the automatic adaptive nudges.
|
||
|
|
||
|
snaps
|
||
|
snaps should NOT be set in your config. CPMA adjusts snaps value
|
||
|
according to the server's sv_fps value. If you join a sv_fps 20 server
|
||
|
your snaps get set to 20, if you join a sv_fps 30 server your snaps get
|
||
|
set to 30 etc...
|
||
|
|
||
|
cl_allowDownload <0|1> (default = 0)
|
||
|
Toggle downloading of pk3 files from servers. Should be left at 0 as you
|
||
|
rarely reach high download speeds.
|
||
|
|
||
|
|
||
|
|
||
|
CPMA Colors
|
||
|
-----------
|
||
|
|
||
|
CPMA uses a-y to display colors, with a-x being an HSV table and y being
|
||
|
white. Colors can be used in \name, \nick, \ch_crosshairText, \say_team,
|
||
|
\say_teamnl \ch_crosshairColor and several others.
|
||
|
Note these colors do NOT apply to the SuperHud which uses rgba
|
||
|
|
||
|
|
||
|
|
||
|
Chat Tokens
|
||
|
-----------
|
||
|
|
||
|
You can use any number of chat tokens in binds. Would recommend adding
|
||
|
[#H/#A] #U to all binds where team mates need to know your current
|
||
|
condition - for instance "say_team ^3Need Weapon! ^5[#H/#A] #U".
|
||
|
|
||
|
But do NOT overdo it as excessive use of tokens can easily cause
|
||
|
information overload. For instance, CTF high/low binds should be as
|
||
|
simple as possible. The location of EFC is of must importance and your
|
||
|
own health/armor/weapon/pu/etc nearly irrelevant.
|
||
|
|
||
|
#A - Armor Current Armor level.
|
||
|
#a (lower case) does not change color according to Armor level.
|
||
|
say_team "Hurting bad - #H/#A"
|
||
|
|
||
|
#C - Corpse The location where you last died.
|
||
|
say_team "Overrun at #C"
|
||
|
|
||
|
#D - Damaged by The last player to score a hit on you.
|
||
|
say_team "#D is heavily armed! RUN AWAY! RUN AWAY!"
|
||
|
|
||
|
#E - Enemy presence Detailed information on all enemies in your FOV.
|
||
|
"2 enemies", "EFC", "Enemy QUAD plus 1", etc
|
||
|
|
||
|
#F - nearest Friendly player's \name
|
||
|
Not the same as #N which uses \nicks when available.
|
||
|
It's recommended to use #N instead of #F.
|
||
|
bind ? "say_team drop; Dropped weapon for #F"
|
||
|
|
||
|
#H - Health Current Health level.
|
||
|
#h (lower case) does not change color according to Health level.
|
||
|
say_team "Hurting bad - #H/#A"
|
||
|
|
||
|
#I - nearest Item
|
||
|
Shows the nearest "significant" (weapon, armor, powerup, or MH)
|
||
|
available item, including dropped items.
|
||
|
say_team "#I available"
|
||
|
|
||
|
#L - Location
|
||
|
Many maps have terrible target_location entities e.g. PG on PRO-Q3DM6
|
||
|
shows as YA. This shows the nearest "significant" item spawn (weapon,
|
||
|
armor, powerup, flag or MH), whether the item is there or not.
|
||
|
say_team "Took/waiting for #L"
|
||
|
|
||
|
#M - aMMo wanted
|
||
|
Lists all types of ammo for weapons you have that are empty or nearly so.
|
||
|
say_team "Need #M"
|
||
|
|
||
|
#N - nearest team mate's \nick
|
||
|
Uses your nearest team mate's \name should he not have set his \nick.
|
||
|
It's recommended to use #N instead of #F.
|
||
|
bind ? "say_team drop; Dropped weapon for #N"
|
||
|
|
||
|
#P - last Pickup
|
||
|
say_team "Took #P"
|
||
|
|
||
|
#S - item in Sights
|
||
|
Item that you are aiming at directly. Distance to the item is irrelevant.
|
||
|
|
||
|
#T - Target The last player you hit.
|
||
|
say_team "#T is weak - finish him!"
|
||
|
|
||
|
#U - powerUps Powerups you carry - Includes flags.
|
||
|
|
||
|
#W - Weapon
|
||
|
#w (lower case) does not change color according to Ammo level.
|
||
|
Lists the current weapon and ammo you have.
|
||
|
say_team "Need weapon! I only have #W"
|
||
|
|
||
|
|
||
|
|
||
|
Player Model & Color Cvars
|
||
|
--------------------------
|
||
|
|
||
|
color <string> (default = nnyny)
|
||
|
Colour string characters 0-9 and a-z.
|
||
|
First # is your Railcore color.
|
||
|
Second # is your Helmet/Visor color.
|
||
|
Third # is your Shirt Color.
|
||
|
Fourth # is your Legs Color.
|
||
|
Fifth # is your Rail Spiral Color.
|
||
|
This also affects your team mates' color if you use cg_forceColors 1.
|
||
|
|
||
|
cg_deadBodyDarken <0|1> (default = 1)
|
||
|
Darkens players as soon as they become corpses.
|
||
|
|
||
|
cg_enemyColors <string> (default = "iiiiii")
|
||
|
Formatted as RHBLX, same as \color.
|
||
|
Requires a PM cg_enemymodel - eg cg_enemyModel sarge/pm.
|
||
|
|
||
|
cg_enemyModel <modelname> (default = "sarge/pm" )
|
||
|
Setting this will force all players on the enemy team to appear to
|
||
|
have this model.
|
||
|
PM model highly recommended.
|
||
|
|
||
|
cg_forceColors <0|1> (default = 0)
|
||
|
Force your team to use the same color as you.
|
||
|
PM model and cg_forceModel 1 recommended.
|
||
|
|
||
|
cg_forceModel <0|1> (default = 0)
|
||
|
Force your team to use the same model as you.
|
||
|
PM model and cg_forceColors 1 recommended.
|
||
|
|
||
|
cg_showPlayerLean <0|1> (default = 1)
|
||
|
Allows the disabling of viewed model leaning that was introduced in
|
||
|
the 1.27x patches. 0 is more accurate in regards to hitboxes.
|
||
|
|
||
|
model <modelname> (default = "mynx/pm" )
|
||
|
Your model. It is highly recommended that you choose a pm model.
|
||
|
This also affects your team mates' models if you use cg_forceModel 1.
|
||
|
|
||
|
|
||
|
|
||
|
Audio Cvars
|
||
|
-----------
|
||
|
|
||
|
cg_ammoWarning <0|1> (default = 1)
|
||
|
Toggles the "click" sound.
|
||
|
The visual effect can be changed in your HUD config. (see HUD.txt)
|
||
|
|
||
|
cg_nochatbeep <0|1> (default = 0)
|
||
|
Allows client to suppress "beeps" heard during normal chat messages.
|
||
|
Especially convenient when connected to spam-riddled GTV servers.
|
||
|
|
||
|
cg_nohitbeep <0|1> (default = 0)
|
||
|
Disable hit beep. Some like it for LG.
|
||
|
|
||
|
cg_noTaunt <0|1> (default = 1)
|
||
|
Disable all taunts, not just voicechat ones.
|
||
|
|
||
|
cg_noteamchatbeep <0|1> (default = 0)
|
||
|
Allows client to suppress "beeps" heard during team chat messages.
|
||
|
|
||
|
cg_oldCTFSounds <0|1|2> (default = 2)
|
||
|
0 - TA sounds, with voiceovers on captures, flag pickups, ete
|
||
|
1 - Near-worthless Q3 1.17 sounds, same for both teams
|
||
|
2 - Team-specific sounds, no voiceovers
|
||
|
Also controls non-leadchange FTDM end-of-round announcements.
|
||
|
|
||
|
s_ambient <0|1> (default = 1)
|
||
|
Disable ambient sounds like the gongs on q3wcp2 and the void/wind/water
|
||
|
background noise on a ton of maps.
|
||
|
|
||
|
s_announcer <string> (default = feedback)
|
||
|
Set to hellchick for alternative game feedback sounds - requires
|
||
|
\snd_restart. If using Challenge Q3 executable you can set s_announcer 0
|
||
|
to remove all announcer sounds. Not recommended for original quake3.exe
|
||
|
which plays sound/feedback/hit.wav.
|
||
|
|
||
|
|
||
|
|
||
|
General Cvars
|
||
|
-------------
|
||
|
|
||
|
cg_altLightning <string> (default = 0)
|
||
|
0 - Original (pre-TA) id LG beam
|
||
|
1 - CPMA lightning
|
||
|
2 - Thin lightning
|
||
|
3 - Lightning using 1.44 render
|
||
|
Switch between various LG shaft visuals. Example: cg_altLightning 032.
|
||
|
First character is player lightning.
|
||
|
Second character is enemy lightning.
|
||
|
Third character is team lightning.
|
||
|
First character is default for enemy and team mate lightning if not
|
||
|
specified.
|
||
|
|
||
|
cg_altPlasma <0|1|> (default = 0)
|
||
|
0 - Original id plasma
|
||
|
1 - CPMA plasma
|
||
|
|
||
|
cg_autoAction <bitmask> (default = 0)
|
||
|
Perform game actions such as demo recording and screenshots.
|
||
|
1 - save stats to a local text file at the end of a match.
|
||
|
logs are stored in: <cpma_root>/stats/<date>/<logname>.txt.
|
||
|
2 - take an end-of-game screenshot.
|
||
|
4 - record a demo of the game. Requires warmup to be on, i.e. \ready.
|
||
|
It will NOT trigger if you join a game that has already started
|
||
|
(or you got disconnected). In those cases you should use \autorecord.
|
||
|
8 - multiview the game. This also works for GTV even if left unattended!
|
||
|
PLEASE use it GTV admins. If put in gtv.cfg the gtv just has to be
|
||
|
connected to the q3server, there is NO need for a camera guy as the
|
||
|
MV will start once players ready up!
|
||
|
16 - only do these things if you're actually playing in the game.
|
||
|
32 - follow power up.
|
||
|
64 - follow killer.
|
||
|
|
||
|
cg_brasstime <value> (default = 2500)
|
||
|
Controls the time shell casings being discharged from MG+SG are visible.
|
||
|
|
||
|
cg_damageDraw <0|1> (default = 1)
|
||
|
Obscure player's vision with blood effect when they are hit.
|
||
|
|
||
|
cg_drawGun <0|1|2> (default = 2)
|
||
|
Toggles the gun being drawn.
|
||
|
0 - gun off
|
||
|
1 - gun on
|
||
|
2 - gun on, no sway
|
||
|
|
||
|
cg_fallKick <0|1> (default = 1)
|
||
|
Toggles the screen bouncing when player falls.
|
||
|
|
||
|
cg_fov <0-130> (default = 102)
|
||
|
Field of view. Higher values give better peripheral vision while lower
|
||
|
values give better frontal vision.
|
||
|
|
||
|
cg_gibs <0|1> (default = 1)
|
||
|
Gibs and blood splatter effect.
|
||
|
|
||
|
cg_gunOffset [x,y,z] (default = "")
|
||
|
Moves gun along x,y,z axis. Valid x,y,z values are -9 to 9, for instance
|
||
|
cg_gunOffset 5,-9,9.
|
||
|
|
||
|
cg_itemFX <bitmask> (default = 7)
|
||
|
Control the cutesy gimmicks on cg_simpleitems 0 items.
|
||
|
With cg_simpleitems 1 the only difference is flags as they have no
|
||
|
simple model.
|
||
|
1 - bob up and down
|
||
|
2 - rotate (asymmetric items will always rotate)
|
||
|
4 - scale up on respawn
|
||
|
|
||
|
cg_lightningImpact <0|1> (default = 0)
|
||
|
Draw the "glowing ball" at the end of the shaft.
|
||
|
|
||
|
cg_marks <value> (default = 2500)
|
||
|
Milliseconds marks after explosions are visible.
|
||
|
|
||
|
cg_muzzleFlash <0|1> (default = 1)
|
||
|
Specifies if there is a muzzle flash when gun is fired.
|
||
|
|
||
|
cg_noAmmoChange <0|1> (default = 1)
|
||
|
Disables the ability to switch to a weapon that doesn't have any ammo.
|
||
|
Useful for multiple-weapon binds.
|
||
|
|
||
|
cg_nomip <#bitmask> (default = 1023 - all r_picmip 0)
|
||
|
Allows changing graphics to picmip 0 setting, regardless of current
|
||
|
r_picmip setting. Changes require vid_restart.
|
||
|
1 - Lightning
|
||
|
2 - Plasma
|
||
|
4 - Rocket and Grenade explosions
|
||
|
8 - Grenades (the grenade ITSELF, not the same as 4)
|
||
|
16 - Bullets (machinegun and shotgun)
|
||
|
32 - Railgun
|
||
|
64 - BFG
|
||
|
128 - Blood
|
||
|
256 - Smoke
|
||
|
512 - Rockets (the projectile, not the same as 4)
|
||
|
|
||
|
cg_noProjectileTrail <0|1> (default = 0)
|
||
|
Removes underwater bubble trails from weapon fire.
|
||
|
|
||
|
cg_railstyle <0 to 7> (default = 5)
|
||
|
Changes the style of the rail trail.
|
||
|
0 - no trail
|
||
|
1 - straight core (line) only
|
||
|
2 - spiral only, no core
|
||
|
3 - spiral with straight core
|
||
|
4 - dotted core only
|
||
|
5 - original id style
|
||
|
6 - spiral with dotted core
|
||
|
7 - everything
|
||
|
|
||
|
cg_railCoreWidth (default = 2)
|
||
|
Width of the Core. BaseQ3 r_rail* cvars are now obsoleted.
|
||
|
|
||
|
cg_railRingWidth (default = 8)
|
||
|
Width of the Rings. BaseQ3 r_rail* cvars are now obsoleted.
|
||
|
|
||
|
cg_railRingStep (default = 32)
|
||
|
Distance between Rings. BaseQ3 r_rail* cvars are now obsoleted.
|
||
|
|
||
|
cg_railTrailTime (default = 400)
|
||
|
Rail time in milliseconds. BaseQ3 r_rail* cvars are now obsoleted.
|
||
|
|
||
|
cg_shadows <0|1> (default = 1)
|
||
|
Player shadows.
|
||
|
|
||
|
cg_simpleitems <0|1> (default = 0)
|
||
|
Simple 2d items.
|
||
|
|
||
|
cg_smoke_SG <0|1> (default = 1)
|
||
|
Controls the smoke on the shotgun blast.
|
||
|
|
||
|
cg_smokeRadius_GL <value> (default = 4)
|
||
|
Controls the size of the smoke trail for grenades.
|
||
|
|
||
|
cg_smokeRadius_RL <value> (default = 6)
|
||
|
Controls the size of the smoke trail for rockets.
|
||
|
|
||
|
cg_trueLightning <0.0 to 1.0 and negative> (default = 0.75)
|
||
|
0 - Default LG feedback as seen in baseq3.
|
||
|
1 - Pure client side rendering of LG graphic.
|
||
|
Fractional values - Mix between server and client rendering of LG.
|
||
|
Negative values - No LG graphic.
|
||
|
|
||
|
cg_useScreenShotJPEG <0|1> (default = 1)
|
||
|
Whether cg_autoaction 2 uses tga or jpg format.
|
||
|
|
||
|
cg_viewAdjustments <0|1> (default = 0)
|
||
|
Replaces and unifies cg_run* and cg_bob* which are all deleted.
|
||
|
|
||
|
ch_playerNames <0|1> (default = 0)
|
||
|
Display player names above model heads. Only works during demo playback.
|
||
|
|
||
|
com_blood <0|1> (default = 1)
|
||
|
Show blood when players are hit.
|
||
|
|
||
|
com_hunkmegs <value> (default = 64)
|
||
|
Amount of RAM allocated to q3. Generally set to 2/3 of your available
|
||
|
memory but anything above 256 is plenty.
|
||
|
|
||
|
com_maxfps <value> (default = 85)
|
||
|
Fps cap. Unlike BaseQ3, movement in CPMA is not dependant on FPS. You
|
||
|
will jump just as high/far with 30fps as with a million fps. Set to 125
|
||
|
or your monitor's maximum display refresh.
|
||
|
|
||
|
r_mode <value> (default = 4, 800x600)
|
||
|
Controls game resolution.
|
||
|
Type \modelist in console to see exactly what mode each number means.
|
||
|
r_mode -1 enables custom resolution.
|
||
|
|
||
|
r_customHeight <value>
|
||
|
Game resolution Height when r_mode -1 is used.
|
||
|
For instance r_customWidth 1680, r_customHeight 1050.
|
||
|
|
||
|
r_customWidth <value>
|
||
|
Game resolution Width when r_mode -1 is used.
|
||
|
For instance r_customWidth 1680, r_customHeight 1050.
|
||
|
|
||
|
r_displayRefresh <value> (default = 0)
|
||
|
Display refresh rate. Set as high as your monitor supports.
|
||
|
|
||
|
r_ext_max_anisotropy <value> (default = 16)
|
||
|
Anisotropic filtering - Challenge Q3 executable only
|
||
|
|
||
|
r_ext_multisample <value 2^n> (default = 4)
|
||
|
Anti-aliasing - Challenge Q3 executable only
|
||
|
|
||
|
r_fastsky <0|1> (default = 0)
|
||
|
Toggle fast sky.
|
||
|
|
||
|
r_gamma <0.5 to 3> (default = 1)
|
||
|
Brightness.
|
||
|
|
||
|
r_intensity <1.0 to infinity> (default = 1.0)
|
||
|
Intensity of texture colors.
|
||
|
|
||
|
r_mapoverbrightbits <value> (default = 2)
|
||
|
Brightens or darkens the map. Players use values from 1 to 5 depending
|
||
|
on the look they want.
|
||
|
|
||
|
r_picmip <0-16> (default = 1)
|
||
|
Texture detail. Lower value equals higher detail.
|
||
|
|
||
|
r_swapInterval <0|1>
|
||
|
Vertical Synchronisation.
|
||
|
|
||
|
r_textureMode <value> (default = GL_LINEAR_MIPMAP_NEAREST)
|
||
|
Texture Filter.
|
||
|
GL_LINEAR_MIPMAP_LINEAR - Trilinear
|
||
|
GL_LINEAR_MIPMAP_NEAREST - Bilinear
|
||
|
GL_NEAREST - None
|
||
|
|
||
|
r_vertexlight <0|1|2> (default = 0)
|
||
|
0 - Don't use vertexlight
|
||
|
1 - Use vertexlight
|
||
|
2 - Use vertexlight and enable dlights on various objects
|
||
|
like flag carriers (in vq3, has no effect in cpm)
|
||
|
requires r_dynamiclight 1.
|
||
|
|