--- /dev/null
+// hud variables
+set _hud_configure 0 "1 = configure the HUD"
+seta hud_configure_teamcolorforced 0 "1 = force display of team colors in configure mode"
+seta hud_configure_checkcollisions 1 "check for collisions against other panels when in hud configure mode"
+seta hud_configure_bg_minalpha 0.25 "minimum panel background alpha when in hud configure mode"
+seta hud_configure_grid_alpha 0.15 "alpha for visible grid when in configure mode"
+
+seta hud_fontsize 11 "text fontsize for the hud"
+seta hud_width 560 "2D virtual width for the hud"
+
+// general hud panel cvars (i.e. shouldn't be adjusted by a skin config)
+seta hud_panel_weapons_ammo_full_shells 60 "show 100% of the status bar at this ammo count"
+seta hud_panel_weapons_ammo_full_nails 320 "show 100% of the status bar at this ammo count"
+seta hud_panel_weapons_ammo_full_cells 180 "show 100% of the status bar at this ammo count"
+seta hud_panel_weapons_ammo_full_rockets 160 "show 100% of the status bar at this ammo count"
+seta hud_panel_weapons_ammo_full_fuel 100 "show 100% of the status bar at this ammo count"
+
+seta hud_panel_ammo_maxammo "40" "when you have this much ammo, the ammo status bar is full"
+
+seta hud_panel_healtharmor_maxhealth "200" "when you have this much health, the health status bar is full"
+seta hud_panel_healtharmor_maxarmor "200" "when you have this much armor, the armor status bar is full"
+seta hud_panel_healtharmor_progressbar_gfx_damage 5 "show damage effect when damaged at least by this amount; 0 disables the effect"
+seta hud_panel_healtharmor_progressbar_gfx_lowhealth 40 "health progressbar blinks when health is lower than this amount"
+
+seta hud_panel_engineinfo_framecounter_exponentialmovingaverage 1 "use an averaging method for calculating fps instead of counting frametime like engine does"
+seta hud_panel_engineinfo_framecounter_exponentialmovingaverage_new_weight 0.1 "weight of latest data point"
+seta hud_panel_engineinfo_framecounter_exponentialmovingaverage_instantupdate_change_threshold 0.5 "threshold for fps change when to update instantly, to make big fps changes update faster"
+
+// hud panel aliases
+alias hud_panel_radar_rotate "toggle hud_panel_radar_rotation 0 1 2 3 4"
+alias +hud_panel_radar_maximized "cl_cmd hud_panel_radar_maximized 1"
+alias -hud_panel_radar_maximized "cl_cmd hud_panel_radar_maximized 0"
+alias hud_panel_radar_maximized "cl_cmd hud_panel_radar_maximized"
+
+// other hud cvars
+seta hud_showbinds 1 "what to show in the HUD to indicate certain keys to press: 0 display commands, 1 bound keys, 2 both"
+seta hud_showbinds_limit 2 "maximum number of bound keys to show for a command. 0 for unlimited"
+
+seta hud_colorflash_alpha 0.5 "starting alpha of the color flash"
+
+seta hud_damage 0.55 "an improved version of gl_polyblend for damage, draw an image instead when hurt"
+seta hud_damage_blur 10 "Use postprocessing to blur the screen when you have taken damage. This can be paired with current hud damage or just used alone. Higher values = more blur"
+seta hud_damage_blur_alpha 0.5 "Amount of alpha to use when merging the blurred layers back into the render. Turning this up higher will remove bloom, so it's best to find a balance"
+seta hud_damage_gentle_alpha_multiplier 0.10 "how much to multiply alpha of flash when using the cl_gentle version, it's much more opaque than the non-gentle version"
+seta hud_damage_gentle_color "1 0.7 1" "color of flash for cl_gentle version"
+seta hud_damage_color "1 0 0" "color of flash"
+seta hud_damage_factor 0.025 "(damage * factor) = how much to add to the alpha value"
+seta hud_damage_fade_rate 0.75 "how much to subtract from the alpha value each second"
+seta hud_damage_maxalpha 1.5 "how much to limit the alpha value to"
+seta hud_damage_pain_threshold 0.1 "how much alpha to ignore (must be bigger than the hud_damage_factor so that e.g. rot is ignored)"
+seta hud_damage_pain_threshold_lower 1.25 "how much we lower pain_threshold with when nearing 0 health (if pain_threshold gets negative then we always draw a flash at alpha = fabs(pain_threshold)"
+seta hud_damage_pain_threshold_lower_health 50 "at which health we start lowering pain_threshold"
+seta hud_damage_pain_threshold_pulsating_min 0.6 "minimum value when calculating the pulse: max(pulsating_min, fabs(sin(PI * time / period))"
+seta hud_damage_pain_threshold_pulsating_period 0.8 "one pulse every X seconds"
+
+seta hud_powerup 0 "power of the sharpen effect when owning the shield or strength powerups, default is 0.5"
+
+seta hud_postprocessing 1 "enables the ability for effects such as hud_damage_blur and hud_contents to apply a postprocessing method upon the screen - enabling this disables manual editing of the postprocess cvars"
+seta hud_postprocessing_maxbluralpha 0 "maximum alpha which the blur postprocess can be, default is 0.5"
+seta hud_postprocessing_maxblurradius 8 "maximum radius which the blur postprocess can be, default is 8"
+
+seta hud_contents 1 "an improved version of gl_polyblend for liquids such as water/lava/slime, draw a filler when inside the liquid"
+seta hud_contents_blur 10 "Use postprocessing to blur the screen when you are inside a liquid. Higher values = more blur"
+seta hud_contents_blur_alpha 0.5 "Amount of alpha to use when merging the blurred layers back into the render. Turning this up higher will remove bloom, so it's best to find a balance"
+seta hud_contents_factor 1 "factor at which to multiply the current faded value."
+seta hud_contents_fadeintime 0.02 "factor of time it takes for the alpha level to reach normal value when entering the liquid"
+seta hud_contents_fadeouttime 0.1 "factor of time it takes for the alpha level to reach normal value when leaving the liquid"
+seta hud_contents_lava_alpha 0.7 "alpha of the lava"
+seta hud_contents_lava_color "0.8 0.1 0" "color blend when inside lava"
+seta hud_contents_slime_alpha 0.7 "alpha of the slime"
+seta hud_contents_slime_color "0 0.4 0.1" "color blend when inside slime"
+seta hud_contents_water_alpha 0.5 "alpha of the water"
+seta hud_contents_water_color "0.4 0.3 0.3" "color blend when inside water"
+
+seta hud_shownames 1 "draw names and health/armor of nearby players"
+seta hud_shownames_enemies 1 "show tags for enemies as well"
+seta hud_shownames_crosshairdistance 0 "if set, only draw tags which came within this distance of your crosshair (25 recommended)"
+seta hud_shownames_crosshairdistance_time 5 "how many seconds the tag is still visible after pointing at them"
+seta hud_shownames_crosshairdistance_antioverlap 0 "allow antioverlap to work as normal even with crosshairdistance on"
+seta hud_shownames_self 0 "also include your own name to be shown when third person camera mode is on (chase_active/cl_eventchase)"
+seta hud_shownames_status 1 "1 = draw health/armor status of teammates"
+seta hud_shownames_statusbar_height 4 "height of status bar"
+seta hud_shownames_aspect 8 "aspect ratio of total drawing area per name"
+seta hud_shownames_fontsize 12 "font size"
+seta hud_shownames_decolorize 1 "1 = decolorize name in team games, 2 = decolorize always"
+seta hud_shownames_alpha 0.7 "alpha"
+seta hud_shownames_resize 1 "enable resizing of the names, then the size cvars will correspond to the maximum size"
+seta hud_shownames_mindistance 1000 "start fading alpha/size at this distance"
+seta hud_shownames_maxdistance 5000 "alpha/size is 0 at this distance"
+seta hud_shownames_antioverlap 1 "if two tags get too close to each other, fade out the one further away from you"
+seta hud_shownames_antioverlap_distance 50 "2d distance to other tag after which to fade out"
+seta hud_shownames_offset 52 "offset (along z-axis) tag from player origin by this many units"
\ No newline at end of file
seta hud_panel_weapons_bg_padding "" "if set to something else than \"\" = override default padding of contents from border"
seta hud_panel_weapons_aspect "" "use this aspect on the items"
seta hud_panel_weapons_complainbubble "" "complain bubble (out of ammo, weapon not available etc)"
+seta hud_panel_weapons_complainbubble_time "" "time that a new entry stays until it fades out"
+seta hud_panel_weapons_complainbubble_fadetime "" "fade out time"
seta hud_panel_weapons_complainbubble_padding "" "padding for the complainbubble"
seta hud_panel_weapons_complainbubble_color_outofammo "" "color of the complainbubble when showing out of ammo message"
seta hud_panel_weapons_complainbubble_color_donthave "" "color of the complainbubble when showing don't have weapon message"
seta hud_panel_weapons_ammo_alpha "" "alpha of status bar"
seta hud_panel_weapons_timeout "" "panel disappears if you don't switch weapon for this amount of seconds"
seta hud_panel_weapons_timeout_effect "" "disappearance effect: 0) no effect; 1) panel moves out of screen; 2) panel fades out"
+seta hud_panel_weapons_label "" "1 = show number of weapon, 2 = show bound key of weapon"
+seta hud_panel_weapons_accuracy "" "show accuracy color as the weapon icon background; colors can be configured with accuracy_color* cvars"
+seta hud_panel_weapons_accuracy_color "" "low accuracy color"
+seta hud_panel_weapons_accuracy_color "" "medium accuracy color"
+seta hud_panel_weapons_accuracy_color "" "high accuracy color"
+seta hud_panel_weapons_accuracy_color_levels "" "levels of accuracy (normally 3)"
+seta hud_panel_weapons_ammo "" "show ammo as a status bar"
+seta hud_panel_weapons_onlyowned "" "show only owned weapons"
seta hud_panel_ammo "" "enable/disable this panel"
seta hud_panel_ammo_pos "" "position of this panel"
seta hud_panel_healtharmor_bg_alpha "" "if set to something else than \"\" = override default panel background alpha"
seta hud_panel_healtharmor_bg_border "" "if set to something else than \"\" = override default size of border around the background"
seta hud_panel_healtharmor_bg_padding "" "if set to something else than \"\" = override default padding of contents from border"
+seta hud_panel_healtharmor_text "" "show text/icons in the healtharmor panel"
seta hud_panel_healtharmor_progressbar "" "enable progressbar in panel"
seta hud_panel_healtharmor_progressbar_health "" "progressbar image for health"
seta hud_panel_healtharmor_progressbar_armor "" "progressbar image for armor"
-seta hud_panel_healtharmor_text "" "show text/icons in the healtharmor panel"
+seta hud_panel_healtharmor_progressbar_gfx "" "enable graphic effects on the progressbars"
+seta hud_panel_healtharmor_progressbar_gfx_smooth "" "smooth changes of the progressbar when health/armor change at least by this amount; 0 disables the effect"
seta hud_panel_notify "" "enable/disable this panel"
seta hud_panel_notify_pos "" "position of this base of the panel"
seta hud_panel_notify_flip "" "order the list top to bottom instead of bottom to top"
seta hud_panel_notify_fontsize "" "multiplier for the font size used for player names in the panel"
seta hud_panel_notify_print "" "also con_notify print the messages that are shown on the notify panel"
+seta hud_panel_notify_fadetime "" "fade out time"
+seta hud_panel_notify_time "" "time that a new entry stays until it fades out"
seta hud_panel_timer "" "enable/disable this panel"
seta hud_panel_timer_pos "" "position of this base of the panel"
seta hud_panel_timer_bg_alpha "" "if set to something else than \"\" = override default panel background alpha"
seta hud_panel_timer_bg_border "" "if set to something else than \"\" = override default size of border around the background"
seta hud_panel_timer_bg_padding "" "if set to something else than \"\" = override default padding of contents from border"
+seta hud_panel_timer_increment "" "show elapsed time instead of remaining time"
seta hud_panel_radar "" "enable/disable this panel, 2 = also enable in non-teambased gamemodes"
seta hud_panel_radar_pos "" "position of this base of the panel"
seta hud_panel_radar_bg_border "" "if set to something else than \"\" = override default size of border around the background"
seta hud_panel_radar_bg_padding "" "if set to something else than \"\" = override default padding of contents from border"
seta hud_panel_radar_foreground_alpha "" "alpha of the map"
+seta hud_panel_radar_rotation "" "rotation mode: you set what points up. 0 = player, 1 = west, 2 = south, 3 = east, 4 = north"
+seta hud_panel_radar_zoommode "" "zoom mode: 0 = zoomed by default, 1 = zoomed when +zoom, 2 = always zoomed, 3 = always zoomed out"
+seta hud_panel_radar_scale "" "distance you can see on the team radar"
+seta hud_panel_radar_maximized_scale "" "distance you can see on the radar when maximized"
+seta hud_panel_radar_maximized_size "" "size of the radar when maximized"
seta hud_panel_score "" "enable/disable this panel"
seta hud_panel_score_pos "" "position of this base of the panel"
seta hud_panel_score_bg_alpha "" "if set to something else than \"\" = override default panel background alpha"
seta hud_panel_score_bg_border "" "if set to something else than \"\" = override default size of border around the background"
seta hud_panel_score_bg_padding "" "if set to something else than \"\" = override default padding of contents from border"
+seta hud_panel_score_rankings "" "show rankings: 1 always show my own score; 2 pure rankings"
seta hud_panel_racetimer "" "enable/disable this panel"
seta hud_panel_racetimer_pos "" "position of this base of the panel"
seta hud_panel_modicons_bg_alpha "" "if set to something else than \"\" = override default panel background alpha"
seta hud_panel_modicons_bg_border "" "if set to something else than \"\" = override default size of border around the background"
seta hud_panel_modicons_bg_padding "" "if set to something else than \"\" = override default padding of contents from border"
+seta hud_panel_modicons_dom_layout "" "3 possible layouts: 0) only icons; 1) icons and percentage of average pps (points per second); 2) icons and average pps"
seta hud_panel_pressedkeys "" "enable/disable this panel, 1 = show only when spectating other players, 2 = show always"
seta hud_panel_pressedkeys_pos "" "position of this base of the panel"
seta hud_panel_engineinfo_bg_alpha "" "if set to something else than \"\" = override default panel background alpha"
seta hud_panel_engineinfo_bg_border "" "if set to something else than \"\" = override default size of border around the background"
seta hud_panel_engineinfo_bg_padding "" "if set to something else than \"\" = override default padding of contents from border"
+seta hud_panel_engineinfo_framecounter_decimals "" "amount of decimals to show"
+seta hud_panel_engineinfo_framecounter_time "" "time between framerate display updates"
seta hud_panel_infomessages "" "enable/disable this panel"
seta hud_panel_infomessages_pos "" "position of this base of the panel"
seta hud_panel_physics_baralign "" "0 = align bars to the left, 1 = align bars to the right, 2 = align only left bar to the right, 3 = align only right bar to the right, 4 = align bars to the center"
seta hud_panel_physics_flip "" "flip speed/acceleration positions"
seta hud_panel_physics_progressbar "" "enable progressbar in panel (2 = only for speed; 3 = only for acceleration)"
-seta hud_panel_physics_acceleration_progressbar_mode "" "0 = progressbar increases from the center to the right if the acceleration is positive, to the left if it's negative; 1 = progressbar increases from the border in the same direction for both positive and negative accelerations"
+seta hud_panel_physics_acceleration_max "" "acceleration progressbar gets completely filled up by this value (in g)"
+seta hud_panel_physics_acceleration_mode "" "0 = progressbar increases from the center to the right if the acceleration is positive, to the left if it's negative; 1 = progressbar increases from the border in the same direction for both positive and negative accelerations"
+seta hud_panel_physics_acceleration_vertical "" "include the acceleration on the Z-axis"
seta hud_panel_physics_text "" "show text in panel (2 = only for speed; 3 = only for acceleration)"
+seta hud_panel_physics_speed_unit "" "speed unit (1 = qu/s, 2 = m/s, 3 = km/h, 4 = mph, 5 = knots)"
+seta hud_panel_physics_speed_unit_show "" "also show speed unit"
+seta hud_panel_physics_speed_max "" "speed progressbar gets filled up completely by this value (in qu/s)"
+seta hud_panel_physics_speed_vertical "" "include the speed on the Z-axis"
+seta hud_panel_physics_topspeed "" "also show top speed"
+seta hud_panel_physics_topspeed_time "" "how many seconds the top speed takes to fade out"
seta hud_panel_centerprint "" "enable/disable this panel"
seta hud_panel_centerprint_pos "" "position of this base of the panel"
seta hud_panel_centerprint_flip "" "invert messages order"
seta hud_panel_centerprint_fontscale "" "scale the text font by this amount"
seta hud_panel_centerprint_time "" "message duration (NOTE: certain messages have a fixed duration)"
-seta hud_panel_centerprint_fadetime "" "how long a message takes to fade out (this time is included in the message duration and can't be > 1)"
+seta hud_panel_centerprint_fade_in "" "how long a message takes to fade in"
+seta hud_panel_centerprint_fade_out "" "how long a message takes to fade out (this time is included in the message duration and can't be > 5)"
+seta hud_panel_centerprint_fade_subsequent "" "enable extra fading effects for each additional message, so that the more messages you have the more they become faded out"
+seta hud_panel_centerprint_fade_subsequent_passone "" "division factor for the first pass for alpha fading, with 2 all messages after the first have half alpha"
+seta hud_panel_centerprint_fade_subsequent_passone_minalpha "" "minimum factor that the first pass can fade to"
+seta hud_panel_centerprint_fade_subsequent_passtwo "" "division factor for the second pass for alpha fading, it applies another fade on top of the first pass to make it more transitioned"
+seta hud_panel_centerprint_fade_subsequent_passtwo_minalpha "" "minimum factor that the second pass can fade to"
+seta hud_panel_centerprint_fade_subsequent_minfontsize "" "minimum factor for the font size from the subsequent fading effects"
+seta hud_panel_centerprint_fade_minfontsize "" "minimum factor for the font size from the fading in/out effects"
set g_forced_respawn 1 // no delaying/cheating a match by not spawning
// info
-set sv_fragmessage_information_stats 0 // don't reveal how much health/armor the attacker had
+set sv_fraginfo_stats 0 // don't reveal how much health/armor the attacker had
seta crosshair_ring_reload_size 2.5 "reload ring size"
seta crosshair_ring_reload_alpha 0.2 "reload ring alpha"
+seta cl_reticle 1 "control for toggling whether ANY zoom reticles are shown"
seta cl_reticle_stretch 0 "whether to stretch reticles so they fit the screen (brakes image proportions)"
seta cl_reticle_item_nex 1 "draw aiming reticle for the nex weapon's zoom, 0 disables and values between 0 and 1 change alpha"
seta cl_reticle_item_normal 1 "draw reticle when zooming with the zoom button, 0 disables and values between 0 and 1 change alpha"
fov 90
seta cl_velocityzoom 0 "velocity based zooming of fov, negative values zoom out"
-seta cl_velocityzoomtime 0.3 "time value for averaging speed values"
+seta cl_velocityzoom_type 3 "how to factor in speed, 1 = all velocity in all directions, 2 = velocity only in forward direction (can be negative), 3 = velocity only in forward direction (limited to forward only)"
+seta cl_velocityzoom_speed 1000 "target speed for fov factoring"
+seta cl_velocityzoom_time 0.2 "time value for averaging speed values"
seta cl_zoomfactor 5 "how much +zoom will zoom (1-16)"
seta cl_zoomspeed 8 "how fast it will zoom (0.5-16), negative values mean instant zoom"
seta cl_zoomsensitivity 0 "how zoom changes sensitivity (0 = weakest, 1 = strongest)"
set sv_gibhealth 100 "Minus health a dead body must have in order to get gibbed"
// fragmessage: This allows extra information to be displayed with the frag centerprints.
-set sv_fragmessage_information_ping 1 "Enable ping display information, 0 = Never display; 1 = Always display (If the player is a bot, it will say bot instead of the ping.)"
-set sv_fragmessage_information_handicap 1 "Enable handicap display information, 0 = Never display; 1 = Only when the player has handicap on; 2 = Always display (Displays Off if off)"
-set sv_fragmessage_information_stats 1 "Enable statistics (health/armor) display information, 0 = Never display; 1 = Always display (Only available for the person who was killed)"
-set sv_fragmessage_information_typefrag 1 "Enable typefrag display information, 0 = Never display; 1 = Always display"
+set sv_fraginfo_ping 1 "Enable ping display information, 0 = Never display; 1 = Always display (If the player is a bot, it will say bot instead of the ping.)"
+set sv_fraginfo_handicap 1 "Enable handicap display information, 0 = Never display; 1 = Only when the player has handicap on; 2 = Always display (Displays Off if off)"
+set sv_fraginfo_stats 1 "Enable statistics (health/armor) display information, 0 = Never display; 1 = Always display (Only available for the person who was killed)"
+set sv_fraginfo_typefrag 1 "Enable typefrag display information, 0 = Never display; 1 = Always display"
// use default physics
set sv_friction_on_land 0
con_notifysize 10
con_notifyalign 0
-// hud variables
-set _hud_configure 0 "1 = configure the HUD"
-seta hud_configure_teamcolorforced 0 "1 = force display of team colors in configure mode"
-seta hud_configure_checkcollisions 1 "check for collisions against other panels when in hud configure mode"
-seta hud_configure_bg_minalpha 0.25 "minimum panel background alpha when in hud configure mode"
-seta hud_configure_grid_alpha 0.15 "alpha for visible grid when in configure mode"
-
seta sbar_info_pos 0 "Y-axis distance from lower right corner for engine info prints"
-// user preference cvars (i.e. shouldn't be adjusted by a skin config)
-seta hud_panel_weapons_label 1 "1 = show number of weapon, 2 = show bound key of weapon"
-seta hud_panel_weapons_complainbubble_time 1 "time that a new entry stays until it fades out"
-seta hud_panel_weapons_complainbubble_fadetime 0.25 "fade out time"
-seta hud_panel_weapons_accuracy 1 "show accuracy color as the weapon icon background; colors can be configured with accuracy_color* cvars"
-seta hud_panel_weapons_ammo 1 "show ammo as a status bar"
-seta hud_panel_weapons_ammo_full_shells 50 "show 100% of the status bar at this ammo count"
-seta hud_panel_weapons_ammo_full_nails 200 "show 100% of the status bar at this ammo count"
-seta hud_panel_weapons_ammo_full_cells 80 "show 100% of the status bar at this ammo count"
-seta hud_panel_weapons_ammo_full_rockets 80 "show 100% of the status bar at this ammo count"
-seta hud_panel_weapons_ammo_full_fuel 100 "show 100% of the status bar at this ammo count"
-seta hud_panel_weapons_onlyowned 1 "show only owned weapons"
-
-seta hud_panel_ammo_maxammo "40" "when you have this much ammo, the ammo status bar is full"
-
-seta hud_panel_healtharmor_maxhealth "200" "when you have this much health, the health status bar is full"
-seta hud_panel_healtharmor_maxarmor "200" "when you have this much armor, the armor status bar is full"
-seta hud_panel_healtharmor_progressbar_gfx 1 "enable graphic effects on the progressbars"
-seta hud_panel_healtharmor_progressbar_gfx_damage 5 "show damage effect when damaged at least by this amount; 0 disables the effect"
-seta hud_panel_healtharmor_progressbar_gfx_lowhealth 40 "health progressbar blinks when health is lower than this amount"
-seta hud_panel_healtharmor_progressbar_gfx_smooth 2 "smooth changes of the progressbar when health/armor change at least by this amount; 0 disables the effect"
-
-seta hud_panel_notify_time 10 "time that a new entry stays until it fades out"
-seta hud_panel_notify_fadetime 3 "fade out time"
-
-seta hud_panel_modicons_dom_layout 1 "3 possible layouts: 0) only icons; 1) icons and percentage of average pps (points per second); 2) icons and average pps"
-
-seta hud_panel_timer_increment 0 "show elapsed time instead of remaining time"
-
-seta hud_panel_radar_scale 4096 "distance you can see on the team radar"
-seta hud_panel_radar_rotation 0 "rotation mode: you set what points up. 0 = player, 1 = west, 2 = south, 3 = east, 4 = north"
-seta hud_panel_radar_zoommode 0 "zoom mode: 0 = zoomed by default, 1 = zoomed when +zoom, 2 = always zoomed, 3 = always zoomed out"
-alias hud_panel_radar_rotate "toggle hud_panel_radar_rotation 0 1 2 3 4"
-seta hud_panel_radar_maximized_scale 8192 "distance you can see on the radar when maximized"
-seta hud_panel_radar_maximized_size "0.5 0.5" "size of the radar when maximized"
-alias +hud_panel_radar_maximized "cl_cmd hud_panel_radar_maximized 1"
-alias -hud_panel_radar_maximized "cl_cmd hud_panel_radar_maximized 0"
-alias hud_panel_radar_maximized "cl_cmd hud_panel_radar_maximized"
-
-seta hud_panel_score_rankings 0 "show rankings: 1 always show my own score; 2 pure rankings"
-
-seta hud_panel_engineinfo_framecounter_time 0.1 "time between framerate display updates"
-seta hud_panel_engineinfo_framecounter_decimals 0 "amount of decimals to show"
-seta hud_panel_engineinfo_framecounter_exponentialmovingaverage 1 "use an averaging method for calculating fps instead of counting frametime like engine does"
-seta hud_panel_engineinfo_framecounter_exponentialmovingaverage_new_weight 0.1 "weight of latest data point"
-seta hud_panel_engineinfo_framecounter_exponentialmovingaverage_instantupdate_change_threshold 0.5 "threshold for fps change when to update instantly, to make big fps changes update faster"
-
-seta hud_panel_physics_speed_unit 3 "speed unit (1 = qu/s, 2 = m/s, 3 = km/h, 4 = mph, 5 = knots)"
-seta hud_panel_physics_speed_unit_show 1 "also show speed unit"
-seta hud_panel_physics_speed_max 1800 "speed progressbar gets filled up completely by this value (in qu/s)"
-seta hud_panel_physics_speed_vertical 0 "include the speed on the Z-axis"
-seta hud_panel_physics_topspeed 1 "also show top speed"
-seta hud_panel_physics_topspeed_time 4 "how many seconds the top speed takes to fade out"
-seta hud_panel_physics_acceleration_max 1.5 "acceleration progressbar gets completely filled up by this value (in g)"
-seta hud_panel_physics_acceleration_vertical 0 "include the acceleration on the Z-axis"
-
-seta hud_showbinds 1 "what to show in the HUD to indicate certain keys to press: 0 display commands, 1 bound keys, 2 both"
-seta hud_showbinds_limit 2 "maximum number of bound keys to show for a command. 0 for unlimited"
-
-seta hud_colorflash_alpha 0.5 "starting alpha of the color flash"
-
-seta hud_damage 0.55 "an improved version of gl_polyblend for damage, draw an image instead when hurt"
-seta hud_damage_blur 10 "Use postprocessing to blur the screen when you have taken damage. This can be paired with current hud damage or just used alone. Higher values = more blur"
-seta hud_damage_blur_alpha 0.5 "Amount of alpha to use when merging the blurred layers back into the render. Turning this up higher will remove bloom, so it's best to find a balance"
-seta hud_damage_gentle_alpha_multiplier 0.10 "how much to multiply alpha of flash when using the cl_gentle version, it's much more opaque than the non-gentle version"
-seta hud_damage_gentle_color "1 0.7 1" "color of flash for cl_gentle version"
-seta hud_damage_color "1 0 0" "color of flash"
-seta hud_damage_factor 0.025 "(damage * factor) = how much to add to the alpha value"
-seta hud_damage_fade_rate 0.75 "how much to subtract from the alpha value each second"
-seta hud_damage_maxalpha 1.5 "how much to limit the alpha value to"
-seta hud_damage_pain_threshold 0.1 "how much alpha to ignore (must be bigger than the hud_damage_factor so that e.g. rot is ignored)"
-seta hud_damage_pain_threshold_lower 1.25 "how much we lower pain_threshold with when nearing 0 health (if pain_threshold gets negative then we always draw a flash at alpha = fabs(pain_threshold)"
-seta hud_damage_pain_threshold_lower_health 50 "at which health we start lowering pain_threshold"
-seta hud_damage_pain_threshold_pulsating_min 0.6 "minimum value when calculating the pulse: max(pulsating_min, fabs(sin(PI * time / period))"
-seta hud_damage_pain_threshold_pulsating_period 0.8 "one pulse every X seconds"
-
-seta hud_powerup 0 "power of the sharpen effect when owning the shield or strength powerups, default is 0.5"
-
-seta hud_postprocessing 1 "enables the ability for effects such as hud_damage_blur and hud_contents to apply a postprocessing method upon the screen - enabling this disables manual editing of the postprocess cvars"
-seta hud_postprocessing_maxbluralpha 0 "maximum alpha which the blur postprocess can be, default is 0.5"
-seta hud_postprocessing_maxblurradius 8 "maximum radius which the blur postprocess can be, default is 8"
-
-seta hud_contents 1 "an improved version of gl_polyblend for liquids such as water/lava/slime, draw a filler when inside the liquid"
-seta hud_contents_blur 10 "Use postprocessing to blur the screen when you are inside a liquid. Higher values = more blur"
-seta hud_contents_blur_alpha 0.5 "Amount of alpha to use when merging the blurred layers back into the render. Turning this up higher will remove bloom, so it's best to find a balance"
-seta hud_contents_factor 1 "factor at which to multiply the current faded value."
-seta hud_contents_fadeintime 0.02 "factor of time it takes for the alpha level to reach normal value when entering the liquid"
-seta hud_contents_fadeouttime 0.1 "factor of time it takes for the alpha level to reach normal value when leaving the liquid"
-seta hud_contents_lava_alpha 0.7 "alpha of the lava color blend when inside it"
-seta hud_contents_lava_color "0.8 0.1 0"
-seta hud_contents_slime_alpha 0.7 "alpha of the slime color blend when inside it"
-seta hud_contents_slime_color "0 0.4 0.1"
-seta hud_contents_water_alpha 0.5 "alpha of the water color blend when inside it"
-seta hud_contents_water_color "0.4 0.3 0.3"
-
-seta hud_shownames 1 "draw names and health/armor of nearby players"
-seta hud_shownames_enemies 2 "1 = draw names of enemies you point at (TODO), 2 = draw names of all enemies in view"
-seta hud_shownames_self 0 "also include your own name to be shown when third person camera mode is on (chase_active/cl_eventchase)"
-seta hud_shownames_status 1 "1 = draw health/armor status of teammates"
-seta hud_shownames_statusbar_height 4 "height of status bar"
-seta hud_shownames_aspect 8 "aspect ratio of total drawing area per name"
-seta hud_shownames_fontsize 12 "font size"
-seta hud_shownames_decolorize 1 "1 = decolorize name in team games, 2 = decolorize always"
-seta hud_shownames_alpha 0.7 "alpha"
-seta hud_shownames_resize 1 "enable resizing of the names, then the size cvars will correspond to the maximum size"
-seta hud_shownames_mindistance 1000 "start fading alpha/size at this distance"
-seta hud_shownames_maxdistance 2500 "alpha/size is 0 at this distance"
-seta hud_shownames_antioverlap 1 "if two tags get too close to each other, fade out the one further away from you"
-seta hud_shownames_antioverlap_distance 125 "2d distance to other tag after which to fade out"
-seta hud_shownames_offset 52 "offset (along z-axis) tag from player origin by this many units"
-
// scoreboard
seta scoreboard_columns default
seta scoreboard_border_thickness 1 "scoreboard border thickness"
seta scoreboard_highlight 1 "enable highlighting for rows and columns in the scoreboard"
seta scoreboard_highlight_alpha 0.10 "highlight alpha value (depends on hud_scoreboard_highlight 1)"
seta scoreboard_highlight_alpha_self 0.25 "self highlight alpha value"
-seta scoreboard_offset_left 0.15 "how many pixels the scoreboard is offset from the left screen edge"
-seta scoreboard_offset_right 0.15 "how many pixels the scoreboard is offset from the right screen edge"
+seta scoreboard_offset_left 0.15 "how far (by percent) the scoreboard is offset from the left screen edge"
+seta scoreboard_offset_right 0.15 "how far (by percent) the scoreboard is offset from the right screen edge"
+seta scoreboard_offset_vertical 0.05 "how far (by percent) the scoreboard is offset from the top and bottom of the screen"
seta scoreboard_bg_scale 0.25 "scale for the tiled scoreboard background"
seta accuracy_color_levels "0 20 100" "accuracy values at which a specified color (accuracy_color<X>) will be used. If your accuracy is between 2 of these values then a mix of the Xth and X+1th colors will be used. You can specify up to 10 values, in increasing order"
// CTF capture limit placeholder cvar
set capturelimit 0
-// hud: font size
-seta hud_fontsize 11
-seta hud_width 560
-
// these entities are not referenced by anything directly, they just represent
// teams and are found by find() when needed
prvm_leaktest_ignore_classnames "ctf_team dom_team tdm_team"
if_client set g_start_delay 0 "delay before the game starts, so everyone can join; recommended to set this to like 15 on a public server"
if_dedicated set g_start_delay 15 "delay before the game starts, so everyone can join; recommended to set this to like 15 on a public server"
-alias ons_map "cl_cmd radar" // legacy alias
-alias radar "cl_cmd radar"
+alias radar "cl_cmd hud_panel_radar_maximized"
alias scoreboard_columns_set "" // aliased later
alias scoreboard_columns_help "cl_cmd scoreboard_columns_help $*"
exec turrets.cfg
exec vehicles.cfg
-// hud cvar descriptions
+// hud cvar descriptions and common settings
+exec _hud_common.cfg
exec _hud_descriptions.cfg
// exec the default skin config
-// please add any new cvars into the hud_save script in qcsrc/client/hud.qc for consistency
+// please add any new cvars into the hud_save script in qcsrc/client/hud_config.qc for consistency
exec hud_luminos.cfg
// enable menu syncing
seta hud_progressbar_armor_color "0 0.6 0"
seta hud_progressbar_fuel_color "0.6 0.6 0"
seta hud_progressbar_nexball_color "0.7 0.1 0"
-seta hud_progressbar_speed_color "1 0.75 0"
-seta hud_progressbar_acceleration_color "0.5 0.75 1"
-seta hud_progressbar_acceleration_neg_color "0.125 0.25 0.5"
+seta hud_progressbar_speed_color "1 0.75 0"
+seta hud_progressbar_acceleration_color "0.5 0.75 1"
+seta hud_progressbar_acceleration_neg_color "0.125 0.25 0.5"
seta _hud_panelorder "15 12 9 10 5 6 14 0 7 4 11 2 1 3 8 13 16 "
seta hud_configure_grid_ysize "0.010000"
seta hud_panel_weapons 1
-seta hud_panel_weapons_pos "0.940000 0.180000"
-seta hud_panel_weapons_size "0.060000 0.610000"
+seta hud_panel_weapons_pos "0.930000 0.170000"
+seta hud_panel_weapons_size "0.070000 0.650000"
seta hud_panel_weapons_bg "border_small_weapons"
seta hud_panel_weapons_bg_color ""
seta hud_panel_weapons_bg_color_team ""
seta hud_panel_weapons_bg_alpha ""
seta hud_panel_weapons_bg_border ""
-seta hud_panel_weapons_bg_padding ""
+seta hud_panel_weapons_bg_padding "4"
+seta hud_panel_weapons_accuracy "1"
+seta hud_panel_weapons_label "1"
seta hud_panel_weapons_complainbubble "1"
-seta hud_panel_weapons_complainbubble_padding "-10"
+seta hud_panel_weapons_complainbubble_padding "2"
+seta hud_panel_weapons_complainbubble_time "4"
+seta hud_panel_weapons_complainbubble_fadetime "2"
seta hud_panel_weapons_complainbubble_color_outofammo "0.8 0 0"
seta hud_panel_weapons_complainbubble_color_donthave "0.8 0.5 0"
seta hud_panel_weapons_complainbubble_color_unavailable "0 0.3 0.8"
+seta hud_panel_weapons_ammo "1"
seta hud_panel_weapons_ammo_color "0 1 0"
seta hud_panel_weapons_ammo_alpha "1"
seta hud_panel_weapons_aspect "2"
-seta hud_panel_weapons_timeout "3"
-seta hud_panel_weapons_timeout_effect "2"
+seta hud_panel_weapons_timeout "5"
+seta hud_panel_weapons_timeout_effect "3"
+seta hud_panel_weapons_onlyowned "1"
seta hud_panel_ammo 1
seta hud_panel_ammo_pos "0.330000 0.960000"
seta hud_panel_healtharmor_progressbar "1"
seta hud_panel_healtharmor_progressbar_health "progressbar"
seta hud_panel_healtharmor_progressbar_armor "progressbar"
+seta hud_panel_healtharmor_progressbar_gfx "1"
+seta hud_panel_healtharmor_progressbar_gfx_smooth "2"
seta hud_panel_healtharmor_text "1"
seta hud_panel_notify 1
seta hud_panel_notify_flip "0"
seta hud_panel_notify_fontsize "0.8"
seta hud_panel_notify_print "1"
+seta hud_panel_notify_time "10"
+seta hud_panel_notify_fadetime "3"
seta hud_panel_timer 1
seta hud_panel_timer_pos "0.800000 0.040000"
seta hud_panel_timer_bg_alpha ""
seta hud_panel_timer_bg_border ""
seta hud_panel_timer_bg_padding "0"
+seta hud_panel_timer_increment "0"
seta hud_panel_radar 2
seta hud_panel_radar_pos "0 0"
seta hud_panel_radar_bg_border ""
seta hud_panel_radar_bg_padding "-1"
seta hud_panel_radar_foreground_alpha "0.800000"
+seta hud_panel_radar_rotation "0"
+seta hud_panel_radar_zoommode "0"
+seta hud_panel_radar_scale "4096"
+seta hud_panel_radar_maximized_scale "8192"
+seta hud_panel_radar_maximized_size "0.5 0.5"
seta hud_panel_score 1
seta hud_panel_score_pos "0.890000 0.030000"
seta hud_panel_score_bg_alpha ""
seta hud_panel_score_bg_border ""
seta hud_panel_score_bg_padding "0"
+seta hud_panel_score_rankings "1"
seta hud_panel_racetimer 1
seta hud_panel_racetimer_pos "0.360000 0.110000"
seta hud_panel_vote 1
seta hud_panel_vote_pos "0.710000 0.660000"
seta hud_panel_vote_size "0.210000 0.100000"
-seta hud_panel_vote_bg "border_vote"
+seta hud_panel_vote_bg ""
seta hud_panel_vote_bg_color ""
seta hud_panel_vote_bg_color_team ""
seta hud_panel_vote_bg_alpha ""
seta hud_panel_modicons_bg_alpha ""
seta hud_panel_modicons_bg_border ""
seta hud_panel_modicons_bg_padding "0"
+seta hud_panel_modicons_dom_layout "1"
seta hud_panel_pressedkeys 1
seta hud_panel_pressedkeys_pos "0.450000 0.720000"
seta hud_panel_engineinfo_bg_alpha ""
seta hud_panel_engineinfo_bg_border ""
seta hud_panel_engineinfo_bg_padding ""
+seta hud_panel_engineinfo_framecounter_time "0.1"
+seta hud_panel_engineinfo_framecounter_decimals "0"
seta hud_panel_infomessages 1
seta hud_panel_infomessages_pos "0.720000 0.100000"
seta hud_panel_physics_bg_alpha ""
seta hud_panel_physics_bg_border ""
seta hud_panel_physics_bg_padding ""
+seta hud_panel_physics_speed_unit "3"
+seta hud_panel_physics_speed_unit_show "1"
+seta hud_panel_physics_speed_max "1800"
+seta hud_panel_physics_speed_vertical "0"
+seta hud_panel_physics_topspeed "1"
+seta hud_panel_physics_topspeed_time "4"
+seta hud_panel_physics_acceleration_max "1.5"
+seta hud_panel_physics_acceleration_vertical "0"
seta hud_panel_physics_flip "0"
seta hud_panel_physics_baralign "0"
-seta hud_panel_physics_acceleration_progressbar_mode "0"
seta hud_panel_physics_progressbar "1"
+seta hud_panel_physics_acceleration_mode "0"
seta hud_panel_physics_text "1"
seta hud_panel_centerprint 1
-seta hud_panel_centerprint_pos "0.175000 0.260000"
-seta hud_panel_centerprint_size "0.650000 0.210000"
+seta hud_panel_centerprint_pos "0.175000 0.220000"
+seta hud_panel_centerprint_size "0.650000 0.220000"
seta hud_panel_centerprint_bg "0"
seta hud_panel_centerprint_bg_color ""
seta hud_panel_centerprint_bg_color_team ""
seta hud_panel_centerprint_bg_border ""
seta hud_panel_centerprint_bg_padding ""
seta hud_panel_centerprint_align "0.5"
-seta hud_panel_centerprint_flip "1"
+seta hud_panel_centerprint_flip "0"
seta hud_panel_centerprint_fontscale "1"
seta hud_panel_centerprint_time "3"
-seta hud_panel_centerprint_fadetime "0.25"
+seta hud_panel_centerprint_fade_in "0.2"
+seta hud_panel_centerprint_fade_out "0.5"
+seta hud_panel_centerprint_fade_subsequent "1"
+seta hud_panel_centerprint_fade_subsequent_passone "3"
+seta hud_panel_centerprint_fade_subsequent_passone_minalpha "0.5"
+seta hud_panel_centerprint_fade_subsequent_passtwo "10"
+seta hud_panel_centerprint_fade_subsequent_passtwo_minalpha "0.5"
+seta hud_panel_centerprint_fade_subsequent_minfontsize "0.75"
+seta hud_panel_centerprint_fade_minfontsize "0"
menu_sync
seta hud_progressbar_armor_color "0 0.6 0"
seta hud_progressbar_fuel_color "0.6 0.6 0"
seta hud_progressbar_nexball_color "0.7 0.1 0"
-seta hud_progressbar_speed_color "1 0.75 0"
-seta hud_progressbar_acceleration_color "0.5 0.75 1"
-seta hud_progressbar_acceleration_neg_color "0.125 0.25 0.5"
+seta hud_progressbar_speed_color "1 0.75 0"
+seta hud_progressbar_acceleration_color "0.5 0.75 1"
+seta hud_progressbar_acceleration_neg_color "0.125 0.25 0.5"
seta _hud_panelorder "10 3 0 14 6 9 13 4 1 2 11 12 7 5 8 15 16 "
seta hud_panel_weapons_bg_alpha ""
seta hud_panel_weapons_bg_border ""
seta hud_panel_weapons_bg_padding ""
+seta hud_panel_weapons_accuracy "1"
+seta hud_panel_weapons_label "1"
seta hud_panel_weapons_complainbubble "1"
seta hud_panel_weapons_complainbubble_padding "-10"
+seta hud_panel_weapons_complainbubble_time "1"
+seta hud_panel_weapons_complainbubble_fadetime "0.25"
seta hud_panel_weapons_complainbubble_color_outofammo "0.8 0 0"
seta hud_panel_weapons_complainbubble_color_donthave "0.8 0.5 0"
seta hud_panel_weapons_complainbubble_color_unavailable "0 0.3 0.8"
+seta hud_panel_weapons_ammo "1"
seta hud_panel_weapons_ammo_color "0 1 0"
seta hud_panel_weapons_ammo_alpha "1"
seta hud_panel_weapons_aspect "2"
seta hud_panel_weapons_timeout "0"
seta hud_panel_weapons_timeout_effect "0"
+seta hud_panel_weapons_onlyowned "1"
seta hud_panel_ammo 1
seta hud_panel_ammo_pos "0.650000 0.890000"
seta hud_panel_ammo_onlycurrent "0"
seta hud_panel_ammo_iconalign "0"
seta hud_panel_ammo_progressbar "0"
-seta hud_panel_ammo_progressbar_xoffset "0"
seta hud_panel_ammo_progressbar_name "progressbar"
+seta hud_panel_ammo_progressbar_xoffset "0"
seta hud_panel_ammo_text "1"
seta hud_panel_powerups 1
seta hud_panel_healtharmor_progressbar "1"
seta hud_panel_healtharmor_progressbar_health "progressbar"
seta hud_panel_healtharmor_progressbar_armor "progressbar"
+seta hud_panel_healtharmor_progressbar_gfx "1"
+seta hud_panel_healtharmor_progressbar_gfx_smooth "2"
seta hud_panel_healtharmor_text "1"
seta hud_panel_notify 1
seta hud_panel_notify_flip "1"
seta hud_panel_notify_fontsize "0.8"
seta hud_panel_notify_print "0"
+seta hud_panel_notify_time "10"
+seta hud_panel_notify_fadetime "3"
seta hud_panel_timer 1
seta hud_panel_timer_pos "0.435000 0"
seta hud_panel_timer_bg_alpha ""
seta hud_panel_timer_bg_border ""
seta hud_panel_timer_bg_padding "0"
+seta hud_panel_timer_increment "0"
seta hud_panel_radar 2
seta hud_panel_radar_pos "0.810000 0"
seta hud_panel_radar_bg_border "0"
seta hud_panel_radar_bg_padding "0"
seta hud_panel_radar_foreground_alpha "0.500000"
+seta hud_panel_radar_rotation "0"
+seta hud_panel_radar_zoommode "0"
+seta hud_panel_radar_scale "4096"
+seta hud_panel_radar_maximized_scale "8192"
+seta hud_panel_radar_maximized_size "0.5 0.5"
seta hud_panel_score 1
seta hud_panel_score_pos "0.465000 0.045000"
seta hud_panel_score_bg_alpha ""
seta hud_panel_score_bg_border ""
seta hud_panel_score_bg_padding ""
+seta hud_panel_score_rankings "1"
seta hud_panel_racetimer 1
seta hud_panel_racetimer_pos "0.360000 0.090000"
seta hud_panel_modicons_bg_alpha ""
seta hud_panel_modicons_bg_border ""
seta hud_panel_modicons_bg_padding ""
+seta hud_panel_modicons_dom_layout "1"
seta hud_panel_pressedkeys 1
seta hud_panel_pressedkeys_pos "0.450000 0.650000"
seta hud_panel_engineinfo_bg_alpha ""
seta hud_panel_engineinfo_bg_border ""
seta hud_panel_engineinfo_bg_padding ""
+seta hud_panel_engineinfo_framecounter_time "0.1"
+seta hud_panel_engineinfo_framecounter_decimals "0"
seta hud_panel_infomessages 1
seta hud_panel_infomessages_pos "0.710000 0"
seta hud_panel_physics_bg_alpha ""
seta hud_panel_physics_bg_border ""
seta hud_panel_physics_bg_padding ""
+seta hud_panel_physics_speed_unit "3"
+seta hud_panel_physics_speed_unit_show "1"
+seta hud_panel_physics_speed_max "1800"
+seta hud_panel_physics_speed_vertical "0"
+seta hud_panel_physics_topspeed "1"
+seta hud_panel_physics_topspeed_time "4"
+seta hud_panel_physics_acceleration_max "1.5"
+seta hud_panel_physics_acceleration_vertical "0"
seta hud_panel_physics_flip "0"
seta hud_panel_physics_baralign "0"
-seta hud_panel_physics_acceleration_progressbar_mode "0"
seta hud_panel_physics_progressbar "3"
-seta hud_panel_physics_text "2"
+seta hud_panel_physics_acceleration_mode "0"
+seta hud_panel_physics_text "1"
seta hud_panel_centerprint 1
-seta hud_panel_centerprint_pos "0.175000 0.260000"
-seta hud_panel_centerprint_size "0.650000 0.210000"
+seta hud_panel_centerprint_pos "0.175000 0.220000"
+seta hud_panel_centerprint_size "0.650000 0.220000"
seta hud_panel_centerprint_bg "0"
seta hud_panel_centerprint_bg_color ""
seta hud_panel_centerprint_bg_color_team ""
seta hud_panel_centerprint_bg_border ""
seta hud_panel_centerprint_bg_padding ""
seta hud_panel_centerprint_align "0.5"
-seta hud_panel_centerprint_flip "1"
+seta hud_panel_centerprint_flip "0"
seta hud_panel_centerprint_fontscale "1"
seta hud_panel_centerprint_time "3"
-seta hud_panel_centerprint_fadetime "0.25"
+seta hud_panel_centerprint_fade_in "0.2"
+seta hud_panel_centerprint_fade_out "0.5"
+seta hud_panel_centerprint_fade_subsequent "1"
+seta hud_panel_centerprint_fade_subsequent_passone "3"
+seta hud_panel_centerprint_fade_subsequent_passone_minalpha "0.5"
+seta hud_panel_centerprint_fade_subsequent_passtwo "10"
+seta hud_panel_centerprint_fade_subsequent_passtwo_minalpha "0.5"
+seta hud_panel_centerprint_fade_subsequent_minfontsize "0.75"
+seta hud_panel_centerprint_fade_minfontsize "0"
menu_sync
--- /dev/null
+seta hud_skin "luminos_xhair"
+seta hud_panel_bg "0"
+seta hud_panel_bg_color "1 0.4375 0"
+seta hud_panel_bg_color_team "0"
+seta hud_panel_bg_alpha "1"
+seta hud_panel_bg_border "8"
+seta hud_panel_bg_padding "2"
+seta hud_panel_fg_alpha "1"
+
+seta hud_dock "0"
+seta hud_dock_color "0 0.449576 0.860796"
+seta hud_dock_color_team "0.700000"
+seta hud_dock_alpha "1"
+
+seta hud_progressbar_alpha "0.3"
+seta hud_progressbar_strength_color "0 0 0.6"
+seta hud_progressbar_shield_color "0.6 0 0.6"
+seta hud_progressbar_health_color "0.6 0 0"
+seta hud_progressbar_armor_color "0 0.6 0"
+seta hud_progressbar_fuel_color "0.6 0.6 0"
+seta hud_progressbar_nexball_color "0.7 0.1 0"
+seta hud_progressbar_speed_color "1 0.75 0"
+seta hud_progressbar_acceleration_color "0.5 0.75 1"
+seta hud_progressbar_acceleration_neg_color "0.125 0.25 0.5"
+
+seta _hud_panelorder "15 3 1 2 11 10 0 14 6 9 13 4 12 7 5 8 16 "
+
+seta hud_configure_grid "1"
+seta hud_configure_grid_xsize "0.010000"
+seta hud_configure_grid_ysize "0.010000"
+
+seta hud_panel_weapons 1
+seta hud_panel_weapons_pos "0.350000 0.940000"
+seta hud_panel_weapons_size "0.300000 0.060000"
+seta hud_panel_weapons_bg ""
+seta hud_panel_weapons_bg_color ""
+seta hud_panel_weapons_bg_color_team ""
+seta hud_panel_weapons_bg_alpha ""
+seta hud_panel_weapons_bg_border ""
+seta hud_panel_weapons_bg_padding ""
+seta hud_panel_weapons_accuracy "1"
+seta hud_panel_weapons_label "1"
+seta hud_panel_weapons_complainbubble "1"
+seta hud_panel_weapons_complainbubble_padding "-10"
+seta hud_panel_weapons_complainbubble_time "1"
+seta hud_panel_weapons_complainbubble_fadetime "0.25"
+seta hud_panel_weapons_complainbubble_color_outofammo "0.8 0 0"
+seta hud_panel_weapons_complainbubble_color_donthave "0.8 0.5 0"
+seta hud_panel_weapons_complainbubble_color_unavailable "0 0.3 0.8"
+seta hud_panel_weapons_ammo "1"
+seta hud_panel_weapons_ammo_color "0 1 0"
+seta hud_panel_weapons_ammo_alpha "1"
+seta hud_panel_weapons_aspect "2"
+seta hud_panel_weapons_timeout "0"
+seta hud_panel_weapons_timeout_effect "0"
+seta hud_panel_weapons_onlyowned "1"
+
+seta hud_panel_ammo 1
+seta hud_panel_ammo_pos "0.450000 0.630000"
+seta hud_panel_ammo_size "0.080000 0.040000"
+seta hud_panel_ammo_bg ""
+seta hud_panel_ammo_bg_color ""
+seta hud_panel_ammo_bg_color_team ""
+seta hud_panel_ammo_bg_alpha ""
+seta hud_panel_ammo_bg_border ""
+seta hud_panel_ammo_bg_padding ""
+seta hud_panel_ammo_onlycurrent "1"
+seta hud_panel_ammo_iconalign "0"
+seta hud_panel_ammo_progressbar "1"
+seta hud_panel_ammo_progressbar_name "progressbar_ammo"
+seta hud_panel_ammo_progressbar_xoffset "0.32"
+seta hud_panel_ammo_text "1"
+
+seta hud_panel_powerups 1
+seta hud_panel_powerups_pos "0.270000 0.940000"
+seta hud_panel_powerups_size "0.080000 0.060000"
+seta hud_panel_powerups_bg "0"
+seta hud_panel_powerups_bg_color ""
+seta hud_panel_powerups_bg_color_team ""
+seta hud_panel_powerups_bg_alpha ""
+seta hud_panel_powerups_bg_border ""
+seta hud_panel_powerups_bg_padding "-3"
+seta hud_panel_powerups_flip "1"
+seta hud_panel_powerups_iconalign "1"
+seta hud_panel_powerups_baralign "1"
+seta hud_panel_powerups_progressbar "1"
+seta hud_panel_powerups_progressbar_strength "progressbar"
+seta hud_panel_powerups_progressbar_shield "progressbar"
+seta hud_panel_powerups_text "1"
+
+seta hud_panel_healtharmor 1
+seta hud_panel_healtharmor_pos "0.350000 0.380000"
+seta hud_panel_healtharmor_size "0.070000 0.240000"
+seta hud_panel_healtharmor_bg "border_healtharmor"
+seta hud_panel_healtharmor_bg_color "0.464391 0.464391 0.464391"
+seta hud_panel_healtharmor_bg_color_team ""
+seta hud_panel_healtharmor_bg_alpha "0.600000"
+seta hud_panel_healtharmor_bg_border "-1"
+seta hud_panel_healtharmor_bg_padding "0"
+seta hud_panel_healtharmor_flip "0"
+seta hud_panel_healtharmor_iconalign "1"
+seta hud_panel_healtharmor_baralign "1"
+seta hud_panel_healtharmor_progressbar "1"
+seta hud_panel_healtharmor_progressbar_health "progressbar_health"
+seta hud_panel_healtharmor_progressbar_armor "progressbar_armor"
+seta hud_panel_healtharmor_progressbar_gfx "1"
+seta hud_panel_healtharmor_progressbar_gfx_smooth "2"
+seta hud_panel_healtharmor_text "0"
+
+seta hud_panel_notify 1
+seta hud_panel_notify_pos "0 0"
+seta hud_panel_notify_size "0.210000 0.260000"
+seta hud_panel_notify_bg "0"
+seta hud_panel_notify_bg_color ""
+seta hud_panel_notify_bg_color_team ""
+seta hud_panel_notify_bg_alpha ""
+seta hud_panel_notify_bg_border ""
+seta hud_panel_notify_bg_padding ""
+seta hud_panel_notify_flip "1"
+seta hud_panel_notify_fontsize "0.8"
+seta hud_panel_notify_print "0"
+seta hud_panel_notify_time "10"
+seta hud_panel_notify_fadetime "3"
+
+seta hud_panel_timer 1
+seta hud_panel_timer_pos "0.435000 0"
+seta hud_panel_timer_size "0.135000 0.060000"
+seta hud_panel_timer_bg "0"
+seta hud_panel_timer_bg_color ""
+seta hud_panel_timer_bg_color_team ""
+seta hud_panel_timer_bg_alpha ""
+seta hud_panel_timer_bg_border ""
+seta hud_panel_timer_bg_padding "0"
+seta hud_panel_timer_increment "0"
+
+seta hud_panel_radar 2
+seta hud_panel_radar_pos "0.810000 0"
+seta hud_panel_radar_size "0.190000 0.250000"
+seta hud_panel_radar_bg "border_radar"
+seta hud_panel_radar_bg_color ""
+seta hud_panel_radar_bg_color_team ""
+seta hud_panel_radar_bg_alpha "0.500000"
+seta hud_panel_radar_bg_border "0"
+seta hud_panel_radar_bg_padding "0"
+seta hud_panel_radar_foreground_alpha "0.500000"
+seta hud_panel_radar_rotation "0"
+seta hud_panel_radar_zoommode "0"
+seta hud_panel_radar_scale "4096"
+seta hud_panel_radar_maximized_scale "8192"
+seta hud_panel_radar_maximized_size "0.5 0.5"
+
+seta hud_panel_score 1
+seta hud_panel_score_pos "0.465000 0.045000"
+seta hud_panel_score_size "0.090000 0.060000"
+seta hud_panel_score_bg ""
+seta hud_panel_score_bg_color ""
+seta hud_panel_score_bg_color_team ""
+seta hud_panel_score_bg_alpha ""
+seta hud_panel_score_bg_border ""
+seta hud_panel_score_bg_padding ""
+seta hud_panel_score_rankings "1"
+
+seta hud_panel_racetimer 1
+seta hud_panel_racetimer_pos "0.360000 0.090000"
+seta hud_panel_racetimer_size "0.280000 0.090000"
+seta hud_panel_racetimer_bg "0"
+seta hud_panel_racetimer_bg_color ""
+seta hud_panel_racetimer_bg_color_team ""
+seta hud_panel_racetimer_bg_alpha ""
+seta hud_panel_racetimer_bg_border ""
+seta hud_panel_racetimer_bg_padding ""
+
+seta hud_panel_vote 1
+seta hud_panel_vote_pos "0 0.890000"
+seta hud_panel_vote_size "0.170000 0.110000"
+seta hud_panel_vote_bg ""
+seta hud_panel_vote_bg_color ""
+seta hud_panel_vote_bg_color_team ""
+seta hud_panel_vote_bg_alpha ""
+seta hud_panel_vote_bg_border ""
+seta hud_panel_vote_bg_padding ""
+seta hud_panel_vote_alreadyvoted_alpha "0.800000"
+
+seta hud_panel_modicons 1
+seta hud_panel_modicons_pos "0.560000 0"
+seta hud_panel_modicons_size "0.050000 0.100000"
+seta hud_panel_modicons_bg ""
+seta hud_panel_modicons_bg_color ""
+seta hud_panel_modicons_bg_color_team ""
+seta hud_panel_modicons_bg_alpha ""
+seta hud_panel_modicons_bg_border ""
+seta hud_panel_modicons_bg_padding ""
+seta hud_panel_modicons_dom_layout "1"
+
+seta hud_panel_pressedkeys 1
+seta hud_panel_pressedkeys_pos "0.450000 0.690000"
+seta hud_panel_pressedkeys_size "0.100000 0.110000"
+seta hud_panel_pressedkeys_bg "0"
+seta hud_panel_pressedkeys_bg_color ""
+seta hud_panel_pressedkeys_bg_color_team ""
+seta hud_panel_pressedkeys_bg_alpha ""
+seta hud_panel_pressedkeys_bg_border ""
+seta hud_panel_pressedkeys_bg_padding ""
+seta hud_panel_pressedkeys_aspect "1.600000"
+
+seta hud_panel_chat 1
+seta hud_panel_chat_pos "0 0.775000"
+seta hud_panel_chat_size "0.460000 0.110000"
+seta hud_panel_chat_bg "0"
+seta hud_panel_chat_bg_color ""
+seta hud_panel_chat_bg_color_team ""
+seta hud_panel_chat_bg_alpha ""
+seta hud_panel_chat_bg_border ""
+seta hud_panel_chat_bg_padding ""
+
+seta hud_panel_engineinfo 0
+seta hud_panel_engineinfo_pos "0.910000 0.970000"
+seta hud_panel_engineinfo_size "0.090000 0.030000"
+seta hud_panel_engineinfo_bg "0"
+seta hud_panel_engineinfo_bg_color ""
+seta hud_panel_engineinfo_bg_color_team ""
+seta hud_panel_engineinfo_bg_alpha ""
+seta hud_panel_engineinfo_bg_border ""
+seta hud_panel_engineinfo_bg_padding ""
+seta hud_panel_engineinfo_framecounter_time "0.1"
+seta hud_panel_engineinfo_framecounter_decimals "0"
+
+seta hud_panel_infomessages 1
+seta hud_panel_infomessages_pos "0.710000 0"
+seta hud_panel_infomessages_size "0.290000 0.100000"
+seta hud_panel_infomessages_bg "0"
+seta hud_panel_infomessages_bg_color ""
+seta hud_panel_infomessages_bg_color_team ""
+seta hud_panel_infomessages_bg_alpha ""
+seta hud_panel_infomessages_bg_border ""
+seta hud_panel_infomessages_bg_padding "0"
+seta hud_panel_infomessages_flip "1"
+
+seta hud_panel_physics 3
+seta hud_panel_physics_pos "0.270000 0.730000"
+seta hud_panel_physics_size "0.170000 0.030000"
+seta hud_panel_physics_bg ""
+seta hud_panel_physics_bg_color ""
+seta hud_panel_physics_bg_color_team ""
+seta hud_panel_physics_bg_alpha ""
+seta hud_panel_physics_bg_border ""
+seta hud_panel_physics_bg_padding ""
+seta hud_panel_physics_speed_unit "3"
+seta hud_panel_physics_speed_unit_show "1"
+seta hud_panel_physics_speed_max "1800"
+seta hud_panel_physics_speed_vertical "0"
+seta hud_panel_physics_topspeed "1"
+seta hud_panel_physics_topspeed_time "4"
+seta hud_panel_physics_acceleration_max "1.5"
+seta hud_panel_physics_acceleration_vertical "0"
+seta hud_panel_physics_flip "0"
+seta hud_panel_physics_baralign "0"
+seta hud_panel_physics_progressbar "3"
+seta hud_panel_physics_acceleration_mode "0"
+seta hud_panel_physics_text "1"
+
+seta hud_panel_centerprint 1
+seta hud_panel_centerprint_pos "0.175000 0.220000"
+seta hud_panel_centerprint_size "0.650000 0.220000"
+seta hud_panel_centerprint_bg "0"
+seta hud_panel_centerprint_bg_color ""
+seta hud_panel_centerprint_bg_color_team ""
+seta hud_panel_centerprint_bg_alpha ""
+seta hud_panel_centerprint_bg_border ""
+seta hud_panel_centerprint_bg_padding ""
+seta hud_panel_centerprint_align "0.5"
+seta hud_panel_centerprint_flip "0"
+seta hud_panel_centerprint_fontscale "1"
+seta hud_panel_centerprint_time "3"
+seta hud_panel_centerprint_fade_in "0.2"
+seta hud_panel_centerprint_fade_out "0.5"
+seta hud_panel_centerprint_fade_subsequent "1"
+seta hud_panel_centerprint_fade_subsequent_passone "3"
+seta hud_panel_centerprint_fade_subsequent_passone_minalpha "0.5"
+seta hud_panel_centerprint_fade_subsequent_passtwo "10"
+seta hud_panel_centerprint_fade_subsequent_passtwo_minalpha "0.5"
+seta hud_panel_centerprint_fade_subsequent_minfontsize "0.75"
+seta hud_panel_centerprint_fade_minfontsize "0"
+
+menu_sync
seta hud_progressbar_armor_color "0 0.6 0"
seta hud_progressbar_fuel_color "0.6 0.6 0"
seta hud_progressbar_nexball_color "0.7 0.1 0"
-seta hud_progressbar_speed_color "1 0.75 0"
-seta hud_progressbar_acceleration_color "0.5 0.75 1"
-seta hud_progressbar_acceleration_neg_color "0.125 0.25 0.5"
+seta hud_progressbar_speed_color "1 0.75 0"
+seta hud_progressbar_acceleration_color "0.5 0.75 1"
+seta hud_progressbar_acceleration_neg_color "0.125 0.25 0.5"
seta _hud_panelorder "15 10 9 6 8 14 5 0 4 13 2 7 1 3 11 12 16 "
seta hud_panel_weapons_bg_alpha ""
seta hud_panel_weapons_bg_border ""
seta hud_panel_weapons_bg_padding ""
+seta hud_panel_weapons_accuracy "1"
+seta hud_panel_weapons_label "1"
seta hud_panel_weapons_complainbubble "1"
seta hud_panel_weapons_complainbubble_padding "-10"
+seta hud_panel_weapons_complainbubble_time "1"
+seta hud_panel_weapons_complainbubble_fadetime "0.25"
seta hud_panel_weapons_complainbubble_color_outofammo "0.8 0 0"
seta hud_panel_weapons_complainbubble_color_donthave "0.8 0.5 0"
seta hud_panel_weapons_complainbubble_color_unavailable "0 0.3 0.8"
+seta hud_panel_weapons_ammo "1"
seta hud_panel_weapons_ammo_color "0 1 0"
seta hud_panel_weapons_ammo_alpha "1"
seta hud_panel_weapons_aspect "2"
seta hud_panel_weapons_timeout "3"
seta hud_panel_weapons_timeout_effect "1"
+seta hud_panel_weapons_onlyowned "1"
seta hud_panel_ammo 1
seta hud_panel_ammo_pos "0.190000 0.920000"
seta hud_panel_ammo_onlycurrent "0"
seta hud_panel_ammo_iconalign "0"
seta hud_panel_ammo_progressbar "0"
-seta hud_panel_ammo_progressbar_xoffset "0"
seta hud_panel_ammo_progressbar_name "progressbar"
+seta hud_panel_ammo_progressbar_xoffset "0"
seta hud_panel_ammo_text "1"
seta hud_panel_powerups 1
seta hud_panel_healtharmor_progressbar "1"
seta hud_panel_healtharmor_progressbar_health "progressbar"
seta hud_panel_healtharmor_progressbar_armor "progressbar"
+seta hud_panel_healtharmor_progressbar_gfx "1"
+seta hud_panel_healtharmor_progressbar_gfx_smooth "2"
seta hud_panel_healtharmor_text "1"
seta hud_panel_notify 1
seta hud_panel_notify_flip "0"
seta hud_panel_notify_fontsize "0.8"
seta hud_panel_notify_print "1"
+seta hud_panel_notify_time "10"
+seta hud_panel_notify_fadetime "3"
seta hud_panel_timer 1
seta hud_panel_timer_pos "0.870000 0"
seta hud_panel_timer_bg_alpha ""
seta hud_panel_timer_bg_border ""
seta hud_panel_timer_bg_padding "0"
+seta hud_panel_timer_increment "0"
-seta hud_panel_radar 2 // enabled for keepaway and to make the HUD consistent throughout game modes
+seta hud_panel_radar 2
seta hud_panel_radar_pos "0.030000 0.020000"
seta hud_panel_radar_size "0.170000 0.220000"
seta hud_panel_radar_bg ""
seta hud_panel_radar_bg_border ""
seta hud_panel_radar_bg_padding "-3"
seta hud_panel_radar_foreground_alpha "0.800000"
+seta hud_panel_radar_rotation "0"
+seta hud_panel_radar_zoommode "0"
+seta hud_panel_radar_scale "4096"
+seta hud_panel_radar_maximized_scale "8192"
+seta hud_panel_radar_maximized_size "0.5 0.5"
seta hud_panel_score 1
seta hud_panel_score_pos "0.020000 0.920000"
seta hud_panel_score_bg_alpha ""
seta hud_panel_score_bg_border ""
seta hud_panel_score_bg_padding ""
+seta hud_panel_score_rankings "1"
seta hud_panel_racetimer 1
seta hud_panel_racetimer_pos "0.360000 0.090000"
seta hud_panel_modicons_bg_alpha ""
seta hud_panel_modicons_bg_border ""
seta hud_panel_modicons_bg_padding ""
+seta hud_panel_modicons_dom_layout "1"
seta hud_panel_pressedkeys 1
seta hud_panel_pressedkeys_pos "0.410000 0.710000"
seta hud_panel_engineinfo_bg_alpha ""
seta hud_panel_engineinfo_bg_border ""
seta hud_panel_engineinfo_bg_padding ""
+seta hud_panel_engineinfo_framecounter_time "0.1"
+seta hud_panel_engineinfo_framecounter_decimals "0"
seta hud_panel_infomessages 1
seta hud_panel_infomessages_pos "0.510000 0"
seta hud_panel_physics_bg_alpha ""
seta hud_panel_physics_bg_border ""
seta hud_panel_physics_bg_padding ""
+seta hud_panel_physics_speed_unit "3"
+seta hud_panel_physics_speed_unit_show "1"
+seta hud_panel_physics_speed_max "1800"
+seta hud_panel_physics_speed_vertical "0"
+seta hud_panel_physics_topspeed "1"
+seta hud_panel_physics_topspeed_time "4"
+seta hud_panel_physics_acceleration_max "1.5"
+seta hud_panel_physics_acceleration_vertical "0"
seta hud_panel_physics_flip "0"
seta hud_panel_physics_baralign "0"
-seta hud_panel_physics_acceleration_progressbar_mode "0"
seta hud_panel_physics_progressbar "1"
+seta hud_panel_physics_acceleration_mode "0"
seta hud_panel_physics_text "1"
seta hud_panel_centerprint 1
-seta hud_panel_centerprint_pos "0.175000 0.260000"
-seta hud_panel_centerprint_size "0.650000 0.210000"
+seta hud_panel_centerprint_pos "0.175000 0.220000"
+seta hud_panel_centerprint_size "0.650000 0.220000"
seta hud_panel_centerprint_bg "0"
seta hud_panel_centerprint_bg_color ""
seta hud_panel_centerprint_bg_color_team ""
seta hud_panel_centerprint_bg_border ""
seta hud_panel_centerprint_bg_padding ""
seta hud_panel_centerprint_align "0.5"
-seta hud_panel_centerprint_flip "1"
+seta hud_panel_centerprint_flip "0"
seta hud_panel_centerprint_fontscale "1"
seta hud_panel_centerprint_time "3"
-seta hud_panel_centerprint_fadetime "0.25"
+seta hud_panel_centerprint_fade_in "0.2"
+seta hud_panel_centerprint_fade_out "0.5"
+seta hud_panel_centerprint_fade_subsequent "1"
+seta hud_panel_centerprint_fade_subsequent_passone "3"
+seta hud_panel_centerprint_fade_subsequent_passone_minalpha "0.5"
+seta hud_panel_centerprint_fade_subsequent_passtwo "10"
+seta hud_panel_centerprint_fade_subsequent_passtwo_minalpha "0.5"
+seta hud_panel_centerprint_fade_subsequent_minfontsize "0.75"
+seta hud_panel_centerprint_fade_minfontsize "0"
menu_sync
+++ /dev/null
-seta hud_skin "luminos_xhair"
-seta hud_panel_bg "0"
-seta hud_panel_bg_color "1 0.4375 0"
-seta hud_panel_bg_color_team "0"
-seta hud_panel_bg_alpha "1"
-seta hud_panel_bg_border "8"
-seta hud_panel_bg_padding "2"
-seta hud_panel_fg_alpha "1"
-
-seta hud_dock "0"
-seta hud_dock_color "0 0.449576 0.860796"
-seta hud_dock_color_team "0.700000"
-seta hud_dock_alpha "1"
-
-seta hud_progressbar_alpha "0.3"
-seta hud_progressbar_strength_color "0 0 0.6"
-seta hud_progressbar_shield_color "0.6 0 0.6"
-seta hud_progressbar_health_color "0.6 0 0"
-seta hud_progressbar_armor_color "0 0.6 0"
-seta hud_progressbar_fuel_color "0.6 0.6 0"
-seta hud_progressbar_nexball_color "0.7 0.1 0"
-seta hud_progressbar_speed_color "1 0.75 0"
-seta hud_progressbar_acceleration_color "0.5 0.75 1"
-seta hud_progressbar_acceleration_neg_color "0.125 0.25 0.5"
-
-seta _hud_panelorder "15 3 1 2 11 10 0 14 6 9 13 4 12 7 5 8 16 "
-
-seta hud_configure_grid "1"
-seta hud_configure_grid_xsize "0.010000"
-seta hud_configure_grid_ysize "0.010000"
-
-seta hud_panel_weapons 1
-seta hud_panel_weapons_pos "0.350000 0.940000"
-seta hud_panel_weapons_size "0.300000 0.060000"
-seta hud_panel_weapons_bg ""
-seta hud_panel_weapons_bg_color ""
-seta hud_panel_weapons_bg_color_team ""
-seta hud_panel_weapons_bg_alpha ""
-seta hud_panel_weapons_bg_border ""
-seta hud_panel_weapons_bg_padding ""
-seta hud_panel_weapons_complainbubble "1"
-seta hud_panel_weapons_complainbubble_padding "-10"
-seta hud_panel_weapons_complainbubble_color_outofammo "0.8 0 0"
-seta hud_panel_weapons_complainbubble_color_donthave "0.8 0.5 0"
-seta hud_panel_weapons_complainbubble_color_unavailable "0 0.3 0.8"
-seta hud_panel_weapons_ammo_color "0 1 0"
-seta hud_panel_weapons_ammo_alpha "1"
-seta hud_panel_weapons_aspect "2"
-seta hud_panel_weapons_timeout "0"
-seta hud_panel_weapons_timeout_effect "0"
-
-seta hud_panel_ammo 1
-seta hud_panel_ammo_pos "0.450000 0.630000"
-seta hud_panel_ammo_size "0.080000 0.040000"
-seta hud_panel_ammo_bg ""
-seta hud_panel_ammo_bg_color ""
-seta hud_panel_ammo_bg_color_team ""
-seta hud_panel_ammo_bg_alpha ""
-seta hud_panel_ammo_bg_border ""
-seta hud_panel_ammo_bg_padding ""
-seta hud_panel_ammo_onlycurrent "1"
-seta hud_panel_ammo_iconalign "0"
-seta hud_panel_ammo_progressbar "1"
-seta hud_panel_ammo_progressbar_name "progressbar_ammo"
-seta hud_panel_ammo_progressbar_xoffset "0.32"
-seta hud_panel_ammo_text "1"
-
-seta hud_panel_powerups 1
-seta hud_panel_powerups_pos "0.270000 0.940000"
-seta hud_panel_powerups_size "0.080000 0.060000"
-seta hud_panel_powerups_bg "0"
-seta hud_panel_powerups_bg_color ""
-seta hud_panel_powerups_bg_color_team ""
-seta hud_panel_powerups_bg_alpha ""
-seta hud_panel_powerups_bg_border ""
-seta hud_panel_powerups_bg_padding "-3"
-seta hud_panel_powerups_flip "1"
-seta hud_panel_powerups_iconalign "1"
-seta hud_panel_powerups_baralign "1"
-seta hud_panel_powerups_progressbar "1"
-seta hud_panel_powerups_progressbar_strength "progressbar"
-seta hud_panel_powerups_progressbar_shield "progressbar"
-seta hud_panel_powerups_text "0"
-
-seta hud_panel_healtharmor 1
-seta hud_panel_healtharmor_pos "0.350000 0.380000"
-seta hud_panel_healtharmor_size "0.070000 0.240000"
-seta hud_panel_healtharmor_bg "border_healtharmor"
-seta hud_panel_healtharmor_bg_color "0.464391 0.464391 0.464391"
-seta hud_panel_healtharmor_bg_color_team ""
-seta hud_panel_healtharmor_bg_alpha "0.600000"
-seta hud_panel_healtharmor_bg_border "-1"
-seta hud_panel_healtharmor_bg_padding "0"
-seta hud_panel_healtharmor_flip "0"
-seta hud_panel_healtharmor_iconalign "1"
-seta hud_panel_healtharmor_baralign "1"
-seta hud_panel_healtharmor_progressbar "1"
-seta hud_panel_healtharmor_progressbar_health "progressbar_health"
-seta hud_panel_healtharmor_progressbar_armor "progressbar_armor"
-seta hud_panel_healtharmor_text "0"
-
-seta hud_panel_notify 1
-seta hud_panel_notify_pos "0 0"
-seta hud_panel_notify_size "0.210000 0.260000"
-seta hud_panel_notify_bg "0"
-seta hud_panel_notify_bg_color ""
-seta hud_panel_notify_bg_color_team ""
-seta hud_panel_notify_bg_alpha ""
-seta hud_panel_notify_bg_border ""
-seta hud_panel_notify_bg_padding ""
-seta hud_panel_notify_flip "1"
-seta hud_panel_notify_fontsize "0.8"
-seta hud_panel_notify_print "0"
-
-seta hud_panel_timer 1
-seta hud_panel_timer_pos "0.435000 0"
-seta hud_panel_timer_size "0.135000 0.060000"
-seta hud_panel_timer_bg "0"
-seta hud_panel_timer_bg_color ""
-seta hud_panel_timer_bg_color_team ""
-seta hud_panel_timer_bg_alpha ""
-seta hud_panel_timer_bg_border ""
-seta hud_panel_timer_bg_padding "0"
-
-seta hud_panel_radar 2
-seta hud_panel_radar_pos "0.810000 0"
-seta hud_panel_radar_size "0.190000 0.250000"
-seta hud_panel_radar_bg "border_radar"
-seta hud_panel_radar_bg_color ""
-seta hud_panel_radar_bg_color_team ""
-seta hud_panel_radar_bg_alpha "0.500000"
-seta hud_panel_radar_bg_border "0"
-seta hud_panel_radar_bg_padding "0"
-seta hud_panel_radar_foreground_alpha "0.500000"
-
-seta hud_panel_score 1
-seta hud_panel_score_pos "0.465000 0.045000"
-seta hud_panel_score_size "0.090000 0.060000"
-seta hud_panel_score_bg ""
-seta hud_panel_score_bg_color ""
-seta hud_panel_score_bg_color_team ""
-seta hud_panel_score_bg_alpha ""
-seta hud_panel_score_bg_border ""
-seta hud_panel_score_bg_padding ""
-
-seta hud_panel_racetimer 1
-seta hud_panel_racetimer_pos "0.360000 0.090000"
-seta hud_panel_racetimer_size "0.280000 0.090000"
-seta hud_panel_racetimer_bg "0"
-seta hud_panel_racetimer_bg_color ""
-seta hud_panel_racetimer_bg_color_team ""
-seta hud_panel_racetimer_bg_alpha ""
-seta hud_panel_racetimer_bg_border ""
-seta hud_panel_racetimer_bg_padding ""
-
-seta hud_panel_vote 1
-seta hud_panel_vote_pos "0 0.890000"
-seta hud_panel_vote_size "0.170000 0.110000"
-seta hud_panel_vote_bg ""
-seta hud_panel_vote_bg_color ""
-seta hud_panel_vote_bg_color_team ""
-seta hud_panel_vote_bg_alpha ""
-seta hud_panel_vote_bg_border ""
-seta hud_panel_vote_bg_padding ""
-seta hud_panel_vote_alreadyvoted_alpha "0.800000"
-
-seta hud_panel_modicons 1
-seta hud_panel_modicons_pos "0.560000 0"
-seta hud_panel_modicons_size "0.050000 0.100000"
-seta hud_panel_modicons_bg ""
-seta hud_panel_modicons_bg_color ""
-seta hud_panel_modicons_bg_color_team ""
-seta hud_panel_modicons_bg_alpha ""
-seta hud_panel_modicons_bg_border ""
-seta hud_panel_modicons_bg_padding ""
-
-seta hud_panel_pressedkeys 1
-seta hud_panel_pressedkeys_pos "0.450000 0.690000"
-seta hud_panel_pressedkeys_size "0.100000 0.110000"
-seta hud_panel_pressedkeys_bg "0"
-seta hud_panel_pressedkeys_bg_color ""
-seta hud_panel_pressedkeys_bg_color_team ""
-seta hud_panel_pressedkeys_bg_alpha ""
-seta hud_panel_pressedkeys_bg_border ""
-seta hud_panel_pressedkeys_bg_padding ""
-seta hud_panel_pressedkeys_aspect "1.600000"
-
-seta hud_panel_chat 1
-seta hud_panel_chat_pos "0 0.775000"
-seta hud_panel_chat_size "0.460000 0.110000"
-seta hud_panel_chat_bg "0"
-seta hud_panel_chat_bg_color ""
-seta hud_panel_chat_bg_color_team ""
-seta hud_panel_chat_bg_alpha ""
-seta hud_panel_chat_bg_border ""
-seta hud_panel_chat_bg_padding ""
-
-seta hud_panel_engineinfo 0
-seta hud_panel_engineinfo_pos "0.910000 0.970000"
-seta hud_panel_engineinfo_size "0.090000 0.030000"
-seta hud_panel_engineinfo_bg "0"
-seta hud_panel_engineinfo_bg_color ""
-seta hud_panel_engineinfo_bg_color_team ""
-seta hud_panel_engineinfo_bg_alpha ""
-seta hud_panel_engineinfo_bg_border ""
-seta hud_panel_engineinfo_bg_padding ""
-
-seta hud_panel_infomessages 1
-seta hud_panel_infomessages_pos "0.710000 0"
-seta hud_panel_infomessages_size "0.290000 0.100000"
-seta hud_panel_infomessages_bg "0"
-seta hud_panel_infomessages_bg_color ""
-seta hud_panel_infomessages_bg_color_team ""
-seta hud_panel_infomessages_bg_alpha ""
-seta hud_panel_infomessages_bg_border ""
-seta hud_panel_infomessages_bg_padding "0"
-seta hud_panel_infomessages_flip "1"
-
-seta hud_panel_physics 3
-seta hud_panel_physics_pos "0.270000 0.730000"
-seta hud_panel_physics_size "0.170000 0.030000"
-seta hud_panel_physics_bg ""
-seta hud_panel_physics_bg_color ""
-seta hud_panel_physics_bg_color_team ""
-seta hud_panel_physics_bg_alpha ""
-seta hud_panel_physics_bg_border ""
-seta hud_panel_physics_bg_padding ""
-seta hud_panel_physics_flip "0"
-seta hud_panel_physics_baralign "0"
-seta hud_panel_physics_acceleration_progressbar_mode "0"
-seta hud_panel_physics_progressbar "3"
-seta hud_panel_physics_text "2"
-
-seta hud_panel_centerprint 1
-seta hud_panel_centerprint_pos "0.175000 0.260000"
-seta hud_panel_centerprint_size "0.650000 0.210000"
-seta hud_panel_centerprint_bg "0"
-seta hud_panel_centerprint_bg_color ""
-seta hud_panel_centerprint_bg_color_team ""
-seta hud_panel_centerprint_bg_alpha ""
-seta hud_panel_centerprint_bg_border ""
-seta hud_panel_centerprint_bg_padding ""
-seta hud_panel_centerprint_align "0.5"
-seta hud_panel_centerprint_flip "1"
-seta hud_panel_centerprint_fontscale "1"
-seta hud_panel_centerprint_time "3"
-seta hud_panel_centerprint_fadetime "0.25"
-
-menu_sync
seta hud_progressbar_armor_color "0 0.6 0"
seta hud_progressbar_fuel_color "0.6 0.6 0"
seta hud_progressbar_nexball_color "0.7 0.1 0"
-seta hud_progressbar_speed_color "0.25 0.25 1"
-seta hud_progressbar_acceleration_color "0.25 1 0.25"
-seta hud_progressbar_acceleration_neg_color "1 0.25 0.25"
+seta hud_progressbar_speed_color "1 0.75 0"
+seta hud_progressbar_acceleration_color "0.5 0.75 1"
+seta hud_progressbar_acceleration_neg_color "0.125 0.25 0.5"
seta _hud_panelorder "15 0 11 8 5 6 14 9 13 7 2 3 1 10 12 4 16 "
seta hud_configure_grid_ysize "0.01"
seta hud_panel_weapons 1
-seta hud_panel_weapons_pos "0.370000 0.870000"
-seta hud_panel_weapons_size "0.340000 0.060000"
+seta hud_panel_weapons_pos "0.375000 0.870000"
+seta hud_panel_weapons_size "0.300000 0.060000"
seta hud_panel_weapons_bg "0"
seta hud_panel_weapons_bg_color ""
seta hud_panel_weapons_bg_color_team ""
seta hud_panel_weapons_bg_alpha ""
seta hud_panel_weapons_bg_border ""
seta hud_panel_weapons_bg_padding "-5"
+seta hud_panel_weapons_accuracy "1"
+seta hud_panel_weapons_label "1"
seta hud_panel_weapons_complainbubble "1"
seta hud_panel_weapons_complainbubble_padding "-10"
+seta hud_panel_weapons_complainbubble_time "1"
+seta hud_panel_weapons_complainbubble_fadetime "0.25"
seta hud_panel_weapons_complainbubble_color_outofammo "0.8 0 0"
seta hud_panel_weapons_complainbubble_color_donthave "0.8 0.5 0"
seta hud_panel_weapons_complainbubble_color_unavailable "0 0.3 0.8"
+seta hud_panel_weapons_ammo "1"
seta hud_panel_weapons_ammo_color "0 1 0"
seta hud_panel_weapons_ammo_alpha "1"
seta hud_panel_weapons_aspect "2"
seta hud_panel_weapons_timeout "0"
seta hud_panel_weapons_timeout_effect "0"
+seta hud_panel_weapons_onlyowned "0"
seta hud_panel_ammo 1
seta hud_panel_ammo_pos "0.160000 0.910000"
seta hud_panel_ammo_onlycurrent "0"
seta hud_panel_ammo_iconalign "0"
seta hud_panel_ammo_progressbar "0"
-seta hud_panel_ammo_progressbar_xoffset "0"
seta hud_panel_ammo_progressbar_name "progressbar"
+seta hud_panel_ammo_progressbar_xoffset "0"
seta hud_panel_ammo_text "1"
seta hud_panel_powerups 1
seta hud_panel_healtharmor_progressbar "0"
seta hud_panel_healtharmor_progressbar_health "progressbar"
seta hud_panel_healtharmor_progressbar_armor "progressbar"
+seta hud_panel_healtharmor_progressbar_gfx "1"
+seta hud_panel_healtharmor_progressbar_gfx_smooth "2"
seta hud_panel_healtharmor_text "1"
seta hud_panel_notify 0
seta hud_panel_notify_flip "0"
seta hud_panel_notify_fontsize "1"
seta hud_panel_notify_print "1"
+seta hud_panel_notify_time "10"
+seta hud_panel_notify_fadetime "3"
seta hud_panel_timer 1
seta hud_panel_timer_pos "0.850000 0"
seta hud_panel_timer_bg_alpha ""
seta hud_panel_timer_bg_border ""
seta hud_panel_timer_bg_padding "0"
+seta hud_panel_timer_increment "0"
seta hud_panel_radar 2
-seta hud_panel_radar_pos "0.800000 0"
+seta hud_panel_radar_pos "0 0"
seta hud_panel_radar_size "0.200000 0.260000"
seta hud_panel_radar_bg "border_radar"
seta hud_panel_radar_bg_color ""
seta hud_panel_radar_bg_border "0"
seta hud_panel_radar_bg_padding "0"
seta hud_panel_radar_foreground_alpha "1"
+seta hud_panel_radar_rotation "0"
+seta hud_panel_radar_zoommode "0"
+seta hud_panel_radar_scale "4096"
+seta hud_panel_radar_maximized_scale "8192"
+seta hud_panel_radar_maximized_size "0.5 0.5"
seta hud_panel_score 1
seta hud_panel_score_pos "0.760000 0.910000"
-seta hud_panel_score_size "0.240000 0.090000"
+seta hud_panel_score_size "0.200000 0.080000"
seta hud_panel_score_bg "0"
seta hud_panel_score_bg_color ""
seta hud_panel_score_bg_color_team ""
seta hud_panel_score_bg_alpha ""
seta hud_panel_score_bg_border ""
seta hud_panel_score_bg_padding ""
+seta hud_panel_score_rankings "0"
seta hud_panel_racetimer 1
seta hud_panel_racetimer_pos "0.360000 0.140000"
seta hud_panel_modicons_bg_alpha ""
seta hud_panel_modicons_bg_border ""
seta hud_panel_modicons_bg_padding ""
+seta hud_panel_modicons_dom_layout "1"
seta hud_panel_pressedkeys 1
seta hud_panel_pressedkeys_pos "0.440000 0.760000"
seta hud_panel_engineinfo_bg_alpha ""
seta hud_panel_engineinfo_bg_border ""
seta hud_panel_engineinfo_bg_padding ""
+seta hud_panel_engineinfo_framecounter_time "0.1"
+seta hud_panel_engineinfo_framecounter_decimals "0"
seta hud_panel_infomessages 1
seta hud_panel_infomessages_pos "0.700000 0.620000"
seta hud_panel_physics_bg_alpha ""
seta hud_panel_physics_bg_border ""
seta hud_panel_physics_bg_padding ""
+seta hud_panel_physics_speed_unit "3"
+seta hud_panel_physics_speed_unit_show "1"
+seta hud_panel_physics_speed_max "1800"
+seta hud_panel_physics_speed_vertical "0"
+seta hud_panel_physics_topspeed "1"
+seta hud_panel_physics_topspeed_time "4"
+seta hud_panel_physics_acceleration_max "1.5"
+seta hud_panel_physics_acceleration_vertical "0"
seta hud_panel_physics_flip "0"
seta hud_panel_physics_baralign "0"
-seta hud_panel_physics_acceleration_progressbar_mode "0"
seta hud_panel_physics_progressbar "3"
-seta hud_panel_physics_text "2"
+seta hud_panel_physics_acceleration_mode "0"
+seta hud_panel_physics_text "1"
seta hud_panel_centerprint 1
seta hud_panel_centerprint_pos "0.175000 0.260000"
-seta hud_panel_centerprint_size "0.650000 0.210000"
+seta hud_panel_centerprint_size "0.650000 0.200000"
seta hud_panel_centerprint_bg "0"
seta hud_panel_centerprint_bg_color ""
seta hud_panel_centerprint_bg_color_team ""
seta hud_panel_centerprint_bg_border ""
seta hud_panel_centerprint_bg_padding ""
seta hud_panel_centerprint_align "0.5"
-seta hud_panel_centerprint_flip "1"
+seta hud_panel_centerprint_flip "0"
seta hud_panel_centerprint_fontscale "1"
seta hud_panel_centerprint_time "3"
-seta hud_panel_centerprint_fadetime "0.25"
+seta hud_panel_centerprint_fade_in "0.2"
+seta hud_panel_centerprint_fade_out "0.5"
+seta hud_panel_centerprint_fade_subsequent "1"
+seta hud_panel_centerprint_fade_subsequent_passone "3"
+seta hud_panel_centerprint_fade_subsequent_passone_minalpha "0.5"
+seta hud_panel_centerprint_fade_subsequent_passtwo "10"
+seta hud_panel_centerprint_fade_subsequent_passtwo_minalpha "0.5"
+seta hud_panel_centerprint_fade_subsequent_minfontsize "0.75"
+seta hud_panel_centerprint_fade_minfontsize "0"
menu_sync
break;
maxclients = i;
- //ctf_temp_1 = "";
- // localcmd("alias order \"cmd order $*\""); enable if ctf-command thingy is used
- //registercmd("ctf_menu");
- registercmd("ons_map");
registercmd("hud_configure");
registercmd("hud_save");
//registercmd("menu_action");
cl_announcer_prev = strzone(autocvar_cl_announcer);
}
Tuba_Precache();
-
- if(autocvar_cl_reticle_item_normal) precache_pic("gfx/reticle_normal");
- if(autocvar_cl_reticle_item_nex) precache_pic("gfx/reticle_nex");
-
+
+ if(autocvar_cl_reticle)
+ {
+ if(autocvar_cl_reticle_item_normal) { precache_pic("gfx/reticle_normal"); }
+ if(autocvar_cl_reticle_item_nex) { precache_pic("gfx/reticle_nex"); }
+ }
+
get_mi_min_max_texcoords(1); // try the CLEVER way first
minimapname = strcat("gfx/", mi_shortname, "_radar.tga");
shortmapname = mi_shortname;
{
float argc;
// Tokenize String
- //argc = tokenize(strMessage);
argc = tokenize_console(strMessage);
// Acquire Command
#ifdef DP_CSQC_ENTITY_REMOVE_IS_B0RKED
if(self.enttype)
- if(t != self.enttype)
+ {
+ if(t != self.enttype || bIsNewEntity)
{
//print(_("A CSQC entity changed its type!\n"));
- print(sprintf(_("A CSQC entity changed its type! (edict: %d, classname: %s)\n"), num_for_edict(self), self.classname));
+ print(sprintf(_("A CSQC entity changed its type! (edict: %d, type: %d -> %d)\n"), num_for_edict(self), self.enttype, t));
Ent_Remove();
bIsNewEntity = 1;
}
+ }
+ else
+ {
+ if(!bIsNewEntity)
+ {
+ print(sprintf(_("A CSQC entity appeared out of nowhere! (edict: %d, type: %d)\n"), num_for_edict(self), t));
+ bIsNewEntity = 1;
+ }
+ }
#endif
self.enttype = t;
switch(t)
float avgspeed;
vector GetCurrentFov(float fov)
{
- float zoomsensitivity, zoomspeed, zoomfactor, zoomdir, velocityzoom;
+ float zoomsensitivity, zoomspeed, zoomfactor, zoomdir;
+ float velocityzoom, curspeed;
zoomsensitivity = autocvar_cl_zoomsensitivity;
zoomfactor = autocvar_cl_zoomfactor;
setsensitivityscale(pow(current_viewzoom, 1 - zoomsensitivity));
else
setsensitivityscale(1);
+
+ makevectors(view_angles);
- if (autocvar_cl_velocityzoom)
+ if(autocvar_cl_velocityzoom)
{
- velocityzoom = bound(0, drawframetime / max(0.000000001, autocvar_cl_velocityzoomtime), 1);
- avgspeed = avgspeed * (1 - velocityzoom) + (vlen(pmove_vel) / 1000) * velocityzoom;
+ switch(autocvar_cl_velocityzoom_type)
+ {
+ case 3: curspeed = max(0, v_forward * pmove_vel); break;
+ case 2: curspeed = (v_forward * pmove_vel); break;
+ case 1: default: curspeed = vlen(pmove_vel); break;
+ }
+
+ velocityzoom = bound(0, drawframetime / max(0.000000001, autocvar_cl_velocityzoom_time), 1); // speed at which the zoom adapts to player velocity
+ avgspeed = avgspeed * (1 - velocityzoom) + (curspeed / autocvar_cl_velocityzoom_speed) * velocityzoom;
velocityzoom = exp(float2range11(avgspeed * -autocvar_cl_velocityzoom / 1) * 1);
- //print(ftos(avgspeed), " avgspeed, ", ftos(autocvar_cl_velocityzoom), " cvar, ", ftos(velocityzoom), " return\n"); // for debugging
+
+ //print(ftos(avgspeed), " avgspeed, ", ftos(curspeed), " curspeed, ", ftos(velocityzoom), " return\n"); // for debugging
}
else
velocityzoom = 1;
else if(activeweapon == WEP_NEX && button_attack2 || activeweapon == WEP_RIFLE && button_attack2)
reticle_type = 2; // nex zoom
- if (reticle_type)
+ if(reticle_type && autocvar_cl_reticle)
{
if(autocvar_cl_reticle_stretch)
{
if(acc_color_levels)
strunzone(acc_color_levels);
acc_color_levels = strzone(autocvar_accuracy_color_levels);
- acc_levels = tokenize(acc_color_levels);
+ acc_levels = tokenize_console(acc_color_levels);
if (acc_levels > MAX_ACCURACY_LEVELS)
acc_levels = MAX_ACCURACY_LEVELS;
float autocvar_cl_particles_quality;
float autocvar_cl_projectiles_sloppy;
float autocvar_cl_readpicture_force;
+var float autocvar_cl_reticle = 1;
float autocvar_cl_reticle_item_nex;
float autocvar_cl_reticle_item_normal;
float autocvar_cl_reticle_stretch;
var float autocvar_cl_vehicle_spiderbot_cross_alpha = 0.6;
var float autocvar_cl_vehicle_spiderbot_cross_size = 1;
float autocvar_cl_velocityzoom;
-var float autocvar_cl_velocityzoomtime = 0.3;
+float autocvar_cl_velocityzoom_type;
+float autocvar_cl_velocityzoom_speed;
+float autocvar_cl_velocityzoom_time;
string autocvar_cl_weaponpriority;
float autocvar_cl_zoomfactor;
float autocvar_cl_zoomsensitivity;
float autocvar_g_balance_tuba_volume;
float autocvar_g_balance_tuba_pitchstep;
float autocvar_g_warmup_limit;
-var float autocvar_g_waypointsprite_uppercase = 1;
-var float autocvar_g_waypointsprite_alpha = 1;
-var float autocvar_g_waypointsprite_crosshairfadealpha = 1;
+float autocvar_g_waypointsprite_uppercase;
+float autocvar_g_waypointsprite_alpha;
+float autocvar_g_waypointsprite_crosshairfadealpha;
float autocvar_g_waypointsprite_crosshairfadedistance;
-var float autocvar_g_waypointsprite_crosshairfadescale = 1;
+float autocvar_g_waypointsprite_crosshairfadescale;
float autocvar_g_waypointsprite_distancealphaexponent;
-var float autocvar_g_waypointsprite_distancefadealpha = 1;
-var float autocvar_g_waypointsprite_distancefadedistancemultiplier = 1;
-var float autocvar_g_waypointsprite_distancefadescale = 1;
-var float autocvar_g_waypointsprite_edgefadealpha = 1;
+float autocvar_g_waypointsprite_distancefadealpha;
+float autocvar_g_waypointsprite_distancefadedistancemultiplier;
+float autocvar_g_waypointsprite_distancefadescale;
+float autocvar_g_waypointsprite_edgefadealpha;
float autocvar_g_waypointsprite_edgefadedistance;
-var float autocvar_g_waypointsprite_edgefadescale = 1;
-var float autocvar_g_waypointsprite_edgeoffset_bottom = 0;
-var float autocvar_g_waypointsprite_edgeoffset_left = 0;
-var float autocvar_g_waypointsprite_edgeoffset_right = 0;
-var float autocvar_g_waypointsprite_edgeoffset_top = 0;
-var float autocvar_g_waypointsprite_fontsize = 12;
+float autocvar_g_waypointsprite_edgefadescale;
+float autocvar_g_waypointsprite_edgeoffset_bottom;
+float autocvar_g_waypointsprite_edgeoffset_left;
+float autocvar_g_waypointsprite_edgeoffset_right;
+float autocvar_g_waypointsprite_edgeoffset_top;
+float autocvar_g_waypointsprite_fontsize;
float autocvar_g_waypointsprite_minalpha;
float autocvar_g_waypointsprite_minscale;
float autocvar_g_waypointsprite_normdistance;
-var float autocvar_g_waypointsprite_scale = 1;
+float autocvar_g_waypointsprite_scale;
float autocvar_g_waypointsprite_spam;
float autocvar_g_waypointsprite_timealphaexponent;
-var float autocvar_hud_colorflash_alpha = 0.5;
+float autocvar_hud_colorflash_alpha;
float autocvar_hud_configure_bg_minalpha;
float autocvar_hud_configure_checkcollisions;
float autocvar_hud_configure_grid;
vector autocvar_hud_panel_bg_color;
float autocvar_hud_panel_bg_color_team;
float autocvar_hud_panel_bg_padding;
+float autocvar_hud_panel_centerprint;
+string autocvar_hud_panel_centerprint_pos;
+string autocvar_hud_panel_centerprint_size;
+string autocvar_hud_panel_centerprint_bg;
+string autocvar_hud_panel_centerprint_bg_color;
+string autocvar_hud_panel_centerprint_bg_color_team;
+string autocvar_hud_panel_centerprint_bg_alpha;
+string autocvar_hud_panel_centerprint_bg_border = "";
+string autocvar_hud_panel_centerprint_bg_padding = "";
+float autocvar_hud_panel_centerprint_align;
+var float autocvar_hud_panel_centerprint_fade_in = 0.2;
+var float autocvar_hud_panel_centerprint_fade_out = 0.5;
+var float autocvar_hud_panel_centerprint_fade_subsequent = 1;
+var float autocvar_hud_panel_centerprint_fade_subsequent_passone = 3;
+var float autocvar_hud_panel_centerprint_fade_subsequent_passone_minalpha = 0.5;
+var float autocvar_hud_panel_centerprint_fade_subsequent_passtwo = 10;
+var float autocvar_hud_panel_centerprint_fade_subsequent_passtwo_minalpha = 0.5;
+var float autocvar_hud_panel_centerprint_fade_subsequent_minfontsize = 0.75;
+var float autocvar_hud_panel_centerprint_fade_minfontsize = 0;
+float autocvar_hud_panel_centerprint_flip;
+float autocvar_hud_panel_centerprint_fontscale;
+float autocvar_hud_panel_centerprint_time;
float autocvar_hud_panel_chat;
float autocvar_hud_panel_engineinfo;
float autocvar_hud_panel_engineinfo_framecounter_decimals;
float autocvar_hud_panel_healtharmor_progressbar_gfx_damage;
float autocvar_hud_panel_healtharmor_progressbar_gfx_lowhealth;
float autocvar_hud_panel_healtharmor_progressbar_gfx_smooth;
-
-// TEMPORARY hard coded default for compatibility - remove after 0.2 release
-var float autocvar_hud_panel_centerprint = 1;
-noref var string autocvar_hud_panel_centerprint_pos = "0.180000 0.260000";
-noref var string autocvar_hud_panel_centerprint_size = "0.650000 0.210000";
-noref var string autocvar_hud_panel_centerprint_bg = "";
-noref var string autocvar_hud_panel_centerprint_bg_color = "";
-noref var string autocvar_hud_panel_centerprint_bg_color_team = "";
-noref var string autocvar_hud_panel_centerprint_bg_alpha = "";
-noref var string autocvar_hud_panel_centerprint_bg_border = "";
-noref var string autocvar_hud_panel_centerprint_bg_padding = "";
-var float autocvar_hud_panel_centerprint_align = 0.5;
-var float autocvar_hud_panel_centerprint_fadetime = 0.25;
-var float autocvar_hud_panel_centerprint_flip = 1;
-var float autocvar_hud_panel_centerprint_fontscale = 1;
-var float autocvar_hud_panel_centerprint_time = 3;
float autocvar_hud_panel_healtharmor_text;
float autocvar_hud_panel_infomessages;
float autocvar_hud_panel_infomessages_flip;
float autocvar_hud_panel_notify_print;
float autocvar_hud_panel_notify_time;
float autocvar_hud_panel_physics;
-float autocvar_hud_panel_physics_acceleration_progressbar_mode;
+float autocvar_hud_panel_physics_acceleration_mode;
float autocvar_hud_panel_physics_acceleration_max;
float autocvar_hud_panel_physics_progressbar;
float autocvar_hud_panel_physics_acceleration_vertical;
float autocvar_hud_showbinds_limit;
float autocvar_hud_shownames;
float autocvar_hud_shownames_enemies;
+float autocvar_hud_shownames_crosshairdistance;
+float autocvar_hud_shownames_crosshairdistance_time;
+float autocvar_hud_shownames_crosshairdistance_antioverlap;
float autocvar_hud_shownames_self;
float autocvar_hud_shownames_status;
float autocvar_hud_shownames_statusbar_height;
var float autocvar_scoreboard_highlight_alpha_self = 0.25;
float autocvar_scoreboard_offset_left;
float autocvar_scoreboard_offset_right;
+float autocvar_scoreboard_offset_vertical;
float autocvar_v_flipped;
float autocvar_vid_conheight;
float autocvar_vid_conwidth;
void HUD_Weapons(void)
{
- float i, f, screen_ar;
- float center_x, center_y;
- if(hud != HUD_NORMAL) return;
+ // declarations
+ float weapons_stat = getstati(STAT_WEAPONS);
+ float i, f, a, j, factor;
+ float screen_ar, center_x, center_y;
+ float weapon_count, weapon_id, weapon_alpha;
+ float row, column, rows, columns;
+ float aspect = autocvar_hud_panel_weapons_aspect;
+
+ float show_accuracy, panel_weapon_accuracy;
+
+ float timeout = autocvar_hud_panel_weapons_timeout;
+ float timein_effect_length = (autocvar_hud_panel_weapons_timeout_effect ? 0.375 : 0);
+ float timeout_effect_length = (autocvar_hud_panel_weapons_timeout_effect ? 0.75 : 0);
+
+ float ammo_type, ammo_full, ammo_alpha;
+ float barsize_x, barsize_y, baroffset_x, baroffset_y;
+
+ float when = autocvar_hud_panel_weapons_complainbubble_time;
+ float fadetime = autocvar_hud_panel_weapons_complainbubble_fadetime;
+
+ vector weapon_pos, weapon_size;
+ vector old_panel_size;
+ vector color, ammo_color;
+
+ // check to see if we want to continue
+ if(hud != HUD_NORMAL) { return; }
+
if(!autocvar__hud_configure)
- {
- if(!autocvar_hud_panel_weapons) return;
- if(spectatee_status == -1) return;
- }
+ if((!autocvar_hud_panel_weapons) || (spectatee_status == -1))
+ return;
+ else if(timeout && time >= weapontime + timeout + timeout_effect_length)
+ {
+ weaponprevtime = time;
+ return;
+ }
else
hud_configure_active_panel = HUD_PANEL_WEAPONS;
- float timeout = autocvar_hud_panel_weapons_timeout;
- float timeout_effect_length, timein_effect_length;
- if (autocvar_hud_panel_weapons_timeout_effect == 0)
+ // update generic hud functions
+ HUD_Panel_UpdateCvars(weapons);
+ HUD_Panel_ApplyFadeAlpha();
+
+ // calculate fading effect to weapon images for when the panel is idle
+ if(autocvar_hud_panel_weapons_fade)
{
- timeout_effect_length = 0;
- timein_effect_length = 0;
+ weapon_alpha = 3.2 - 2 * (time - weapontime);
+ weapon_alpha = bound(0.7, weapon_alpha, 1) * panel_fg_alpha;
}
else
- {
- timeout_effect_length = 0.75;
- timein_effect_length = 0.375;
- }
-
- if (timeout && time >= weapontime + timeout + timeout_effect_length && !autocvar__hud_configure)
- {
- weaponprevtime = time;
- return;
- }
-
- HUD_Panel_UpdateCvars(weapons);
- HUD_Panel_ApplyFadeAlpha();
+ weapon_alpha = panel_fg_alpha;
- // TODO make this configurable
+ // figure out weapon order (how the weapons are sorted) // TODO make this configurable
if(weaponorder_bypriority != autocvar_cl_weaponpriority || !weaponorder[0])
{
float weapon_cnt;
weaponorder_cmp_str = string_null;
}
-
- float when, fadetime;
- when = autocvar_hud_panel_weapons_complainbubble_time;
- fadetime = autocvar_hud_panel_weapons_complainbubble_fadetime;
- float weapons_st = getstati(STAT_WEAPONS);
- float weapon_count;
+
+ // determine which weapons are going to be shown
if (autocvar_hud_panel_weapons_onlyowned)
{
if(autocvar__hud_configure)
{
- if (weapons_st == 0)
+ if (weapons_stat == 0) // create some fake weapons anyway
for(i = 0; i <= WEP_LAST-WEP_FIRST; i += floor((WEP_LAST-WEP_FIRST)/5))
- weapons_st |= power2of(i);
+ weapons_stat |= power2of(i);
+
if(menu_enabled != 2)
HUD_Panel_DrawBg(1); // also draw the bg of the entire panel
}
-
- vector old_panel_size;
+
+ // do we own this weapon?
for(i = 0; i <= WEP_LAST-WEP_FIRST; ++i)
- {
- if(weapons_st & weaponorder[i].weapons)
+ if(weapons_stat & weaponorder[i].weapons)
++weapon_count;
- }
- if(!autocvar__hud_configure && (autocvar_hud_panel_weapons_complainbubble && time - complain_weapon_time < when + fadetime))// && complain_weapon >= 0
- ++weapon_count;
- if (weapon_count == 0)
- return;
+
+ // add it anyway if weaponcomplain is shown
+ if((!autocvar__hud_configure)
+ && (autocvar_hud_panel_weapons_complainbubble
+ && time - complain_weapon_time < when + fadetime))
+ ++weapon_count;
+
+ // might as well commit suicide now, no reason to live ;)
+ if (weapon_count == 0) { return; }
+
// reduce size of the panel
if (panel_size_y > panel_size_x)
{
else
weapon_count = WEP_COUNT;
- if (timeout && time >= weapontime + timeout && !autocvar__hud_configure)
+ // animation for fading in/out the panel respectively when not in use
+ if(!autocvar__hud_configure)
{
- f = (time - (weapontime + timeout)) / timeout_effect_length;
- if (autocvar_hud_panel_weapons_timeout_effect == 1 || autocvar_hud_panel_weapons_timeout_effect == 3)
- {
- panel_bg_alpha *= (1 - f);
- panel_fg_alpha *= (1 - f);
- }
- if (autocvar_hud_panel_weapons_timeout_effect == 2 || autocvar_hud_panel_weapons_timeout_effect == 3)
+ if (timeout && time >= weapontime + timeout) // apply timeout effect if needed
{
- f *= f; // for a cooler movement
- center_x = panel_pos_x + panel_size_x/2;
- center_y = panel_pos_y + panel_size_y/2;
- screen_ar = vid_conwidth/vid_conheight;
- if (center_x/center_y < screen_ar) //bottom left
+ f = (time - (weapontime + timeout)) / timeout_effect_length;
+ if (autocvar_hud_panel_weapons_timeout_effect == 1 || autocvar_hud_panel_weapons_timeout_effect == 3)
{
- if ((vid_conwidth - center_x)/center_y < screen_ar) //bottom
- panel_pos_y += f * (vid_conheight - panel_pos_y);
- else //left
- panel_pos_x -= f * (panel_pos_x + panel_size_x);
+ panel_bg_alpha *= (1 - f);
+ panel_fg_alpha *= (1 - f);
}
- else //top right
+ if (autocvar_hud_panel_weapons_timeout_effect == 2 || autocvar_hud_panel_weapons_timeout_effect == 3)
{
- if ((vid_conwidth - center_x)/center_y < screen_ar) //right
- panel_pos_x += f * (vid_conwidth - panel_pos_x);
- else //top
- panel_pos_y -= f * (panel_pos_y + panel_size_y);
+ f *= f; // for a cooler movement
+ center_x = panel_pos_x + panel_size_x/2;
+ center_y = panel_pos_y + panel_size_y/2;
+ screen_ar = vid_conwidth/vid_conheight;
+ if (center_x/center_y < screen_ar) //bottom left
+ {
+ if ((vid_conwidth - center_x)/center_y < screen_ar) //bottom
+ panel_pos_y += f * (vid_conheight - panel_pos_y);
+ else //left
+ panel_pos_x -= f * (panel_pos_x + panel_size_x);
+ }
+ else //top right
+ {
+ if ((vid_conwidth - center_x)/center_y < screen_ar) //right
+ panel_pos_x += f * (vid_conwidth - panel_pos_x);
+ else //top
+ panel_pos_y -= f * (panel_pos_y + panel_size_y);
+ }
}
+ weaponprevtime = time - (1 - f) * timein_effect_length;
}
- weaponprevtime = time - (1 - f) * timein_effect_length;
- }
- else if (timeout && time < weaponprevtime + timein_effect_length && !autocvar__hud_configure)
- {
- f = (time - weaponprevtime) / timein_effect_length;
- if (autocvar_hud_panel_weapons_timeout_effect == 1 || autocvar_hud_panel_weapons_timeout_effect == 3)
- {
- panel_bg_alpha *= (f);
- panel_fg_alpha *= (f);
- }
- if (autocvar_hud_panel_weapons_timeout_effect == 2 || autocvar_hud_panel_weapons_timeout_effect == 3)
+ else if (timeout && time < weaponprevtime + timein_effect_length) // apply timein effect if needed
{
- f *= f; // for a cooler movement
- f = 1 - f;
- center_x = panel_pos_x + panel_size_x/2;
- center_y = panel_pos_y + panel_size_y/2;
- screen_ar = vid_conwidth/vid_conheight;
- if (center_x/center_y < screen_ar) //bottom left
+ f = (time - weaponprevtime) / timein_effect_length;
+ if (autocvar_hud_panel_weapons_timeout_effect == 1 || autocvar_hud_panel_weapons_timeout_effect == 3)
{
- if ((vid_conwidth - center_x)/center_y < screen_ar) //bottom
- panel_pos_y += f * (vid_conheight - panel_pos_y);
- else //left
- panel_pos_x -= f * (panel_pos_x + panel_size_x);
+ panel_bg_alpha *= (f);
+ panel_fg_alpha *= (f);
}
- else //top right
+ if (autocvar_hud_panel_weapons_timeout_effect == 2 || autocvar_hud_panel_weapons_timeout_effect == 3)
{
- if ((vid_conwidth - center_x)/center_y < screen_ar) //right
- panel_pos_x += f * (vid_conwidth - panel_pos_x);
- else //top
- panel_pos_y -= f * (panel_pos_y + panel_size_y);
+ f *= f; // for a cooler movement
+ f = 1 - f;
+ center_x = panel_pos_x + panel_size_x/2;
+ center_y = panel_pos_y + panel_size_y/2;
+ screen_ar = vid_conwidth/vid_conheight;
+ if (center_x/center_y < screen_ar) //bottom left
+ {
+ if ((vid_conwidth - center_x)/center_y < screen_ar) //bottom
+ panel_pos_y += f * (vid_conheight - panel_pos_y);
+ else //left
+ panel_pos_x -= f * (panel_pos_x + panel_size_x);
+ }
+ else //top right
+ {
+ if ((vid_conwidth - center_x)/center_y < screen_ar) //right
+ panel_pos_x += f * (vid_conwidth - panel_pos_x);
+ else //top
+ panel_pos_y -= f * (panel_pos_y + panel_size_y);
+ }
}
}
}
+ // draw the background, then change the virtual size of it to better fit other items inside
HUD_Panel_DrawBg(1);
if(panel_bg_padding)
{
panel_pos += '1 1 0' * panel_bg_padding;
- panel_size -= '2 2 0' * panel_bg_padding;
+ panel_size -= '1 1 0' * panel_bg_padding;
}
- float weapid, wpnalpha;
-
- if(autocvar_hud_panel_weapons_fade)
- {
- wpnalpha = 3.2 - 2 * (time - weapontime);
- wpnalpha = bound(0.7, wpnalpha, 1) * panel_fg_alpha;
- }
- else
- wpnalpha = panel_fg_alpha;
-
- float rows, columns;
- float aspect = autocvar_hud_panel_weapons_aspect;
+ // after the sizing and animations are done, update the other values
rows = panel_size_y/panel_size_x;
rows = bound(1, floor((sqrt(4 * aspect * rows * weapon_count + rows * rows) + rows + 0.5) / 2), weapon_count);
-
columns = ceil(weapon_count/rows);
- float row, column;
-
- float a, type, fullammo;
-
- vector color;
- vector wpnpos;
- vector wpnsize;
-
- vector ammo_color;
- float ammo_alpha;
- wpnsize = eX * panel_size_x*(1/columns) + eY * panel_size_y*(1/rows);
- float barsize_x, barsize_y, baroffset_x, baroffset_y;
+ weapon_size = eX * panel_size_x*(1/columns) + eY * panel_size_y*(1/rows);
+
+ // calculate position/size for visual bar displaying ammount of ammo status
if (autocvar_hud_panel_weapons_ammo)
{
ammo_color = stov(autocvar_hud_panel_weapons_ammo_color);
ammo_alpha = panel_fg_alpha * autocvar_hud_panel_weapons_ammo_alpha;
-
- if(wpnsize_x/wpnsize_y > aspect)
+ if(weapon_size_x/weapon_size_y > aspect)
{
- barsize_x = aspect * wpnsize_y;
- barsize_y = wpnsize_y;
- baroffset_x = (wpnsize_x - barsize_x) / 2;
+ barsize_x = aspect * weapon_size_y;
+ barsize_y = weapon_size_y;
+ baroffset_x = (weapon_size_x - barsize_x) / 2;
}
else
{
- barsize_y = 1/aspect * wpnsize_x;
- barsize_x = wpnsize_x;
- baroffset_y = (wpnsize_y - barsize_y) / 2;
+ barsize_y = 1/aspect * weapon_size_x;
+ barsize_x = weapon_size_x;
+ baroffset_y = (weapon_size_y - barsize_y) / 2;
}
}
- float show_accuracy;
- float weapon_stats;
if(autocvar_hud_panel_weapons_accuracy && acc_levels)
{
show_accuracy = true;
for(i = 0; i <= WEP_LAST-WEP_FIRST; ++i)
{
+ // retrieve information about the current weapon to be drawn
self = weaponorder[i];
- if (!self || self.impulse < 0)
- continue;
- if (autocvar_hud_panel_weapons_onlyowned)
- if (!((weapons_st & self.weapons) || (self.weapon == complain_weapon && time - complain_weapon_time < when + fadetime && autocvar_hud_panel_weapons_complainbubble)))
- continue;
- wpnpos = panel_pos + eX * column * wpnsize_x + eY * row * wpnsize_y;
-
- weapid = self.impulse;
+ weapon_id = self.impulse;
+
+ // skip if this weapon doesn't exist
+ if (!self || self.impulse < 0) { continue; }
+
+ // skip this weapon if we don't own it (and onlyowned is enabled)-- or if weapons_complainbubble is showing for this weapon
+ if (autocvar_hud_panel_weapons_onlyowned
+ && !((weapons_stat & self.weapons)
+ || (self.weapon == complain_weapon
+ && time - complain_weapon_time < when + fadetime
+ && autocvar_hud_panel_weapons_complainbubble)))
+ continue;
+
+ // figure out the drawing position of weapon
+ weapon_pos = (panel_pos
+ + eX * column * weapon_size_x
+ + eY * row * weapon_size_y);
// draw background behind currently selected weapon
if(self.weapon == switchweapon)
- drawpic_aspect_skin(wpnpos, "weapon_current_bg", wpnsize, '1 1 1', wpnalpha, DRAWFLAG_NORMAL);
+ drawpic_aspect_skin(weapon_pos, "weapon_current_bg", weapon_size, '1 1 1', weapon_alpha, DRAWFLAG_NORMAL);
// draw the weapon accuracy
if(show_accuracy)
{
- weapon_stats = weapon_accuracy[self.weapon-WEP_FIRST];
- if(weapon_stats >= 0)
+ panel_weapon_accuracy = weapon_accuracy[self.weapon-WEP_FIRST];
+ if(panel_weapon_accuracy >= 0)
{
- // find the max level lower than weapon_stats
- float j;
+ // find the max level lower than weapon_accuracy
j = acc_levels-1;
- while ( j && weapon_stats < acc_lev[j] )
+ while ( j && panel_weapon_accuracy < acc_lev[j] )
--j;
- // inject color j+1 in color j, how much depending on how much weapon_stats is higher than level j
- float factor;
- factor = (weapon_stats - acc_lev[j]) / (acc_lev[j+1] - acc_lev[j]);
+ // inject color j+1 in color j, how much depending on how much weapon_accuracy is higher than level j
+ factor = (panel_weapon_accuracy - acc_lev[j]) / (acc_lev[j+1] - acc_lev[j]);
color = acc_col[j];
color = color + factor * (acc_col[j+1] - color);
- drawpic_aspect_skin(wpnpos, "weapon_accuracy", wpnsize, color, panel_fg_alpha, DRAWFLAG_NORMAL);
+ drawpic_aspect_skin(weapon_pos, "weapon_accuracy", weapon_size, color, panel_fg_alpha, DRAWFLAG_NORMAL);
}
}
- // draw the weapon icon
- if(weapons_st & self.weapons)
+ // drawing all the weapon items
+ if(weapons_stat & self.weapons)
{
- drawpic_aspect_skin(wpnpos, strcat("weapon", self.netname), wpnsize, '1 1 1', wpnalpha, DRAWFLAG_NORMAL);
-
- if(autocvar_hud_panel_weapons_label == 1) // weapon number
- drawstring(wpnpos, ftos(weapid), '1 1 0' * 0.5 * wpnsize_y, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
- else if(autocvar_hud_panel_weapons_label == 2) // bind
- drawstring(wpnpos, getcommandkey(ftos(weapid), strcat("impulse ", ftos(weapid))), '1 1 0' * 0.5 * wpnsize_y, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
+ // draw the weapon image
+ drawpic_aspect_skin(weapon_pos, strcat("weapon", self.netname), weapon_size, '1 1 1', weapon_alpha, DRAWFLAG_NORMAL);
+ // draw weapon label string
+ switch(autocvar_hud_panel_weapons_label)
+ {
+ case 1: // weapon number
+ drawstring(weapon_pos, ftos(weapon_id), '1 1 0' * 0.5 * weapon_size_y, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
+ break;
+
+ case 2: // bind
+ drawstring(weapon_pos, getcommandkey(ftos(weapon_id), strcat("impulse ", ftos(weapon_id))), '1 1 0' * 0.5 * weapon_size_y, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
+ break;
+
+ case 3: // weapon name
+ drawstring(weapon_pos, self.netname, '1 1 0' * 0.5 * weapon_size_y, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
+ break;
+
+ default: // nothing
+ break;
+ }
+
// draw ammo status bar
if(autocvar_hud_panel_weapons_ammo && self.weapon != WEP_TUBA && self.weapon != WEP_LASER && self.weapon != WEP_PORTO)
{
a = 0;
- type = GetAmmoTypeForWep(self.weapon);
- if(type != -1)
- a = getstati(GetAmmoStat(type)); // how much ammo do we have?
+ ammo_type = GetAmmoTypeForWep(self.weapon);
+ if(ammo_type != -1)
+ a = getstati(GetAmmoStat(ammo_type)); // how much ammo do we have?
if(a > 0)
{
- switch(type) {
- case 0: fullammo = autocvar_hud_panel_weapons_ammo_full_shells; break;
- case 1: fullammo = autocvar_hud_panel_weapons_ammo_full_nails; break;
- case 2: fullammo = autocvar_hud_panel_weapons_ammo_full_rockets; break;
- case 3: fullammo = autocvar_hud_panel_weapons_ammo_full_cells; break;
- case 4: fullammo = autocvar_hud_panel_weapons_ammo_full_fuel; break;
- default: fullammo = 60;
+ switch(ammo_type) {
+ case 0: ammo_full = autocvar_hud_panel_weapons_ammo_full_shells; break;
+ case 1: ammo_full = autocvar_hud_panel_weapons_ammo_full_nails; break;
+ case 2: ammo_full = autocvar_hud_panel_weapons_ammo_full_rockets; break;
+ case 3: ammo_full = autocvar_hud_panel_weapons_ammo_full_cells; break;
+ case 4: ammo_full = autocvar_hud_panel_weapons_ammo_full_fuel; break;
+ default: ammo_full = 60;
}
drawsetcliparea(
- wpnpos_x + baroffset_x,
- wpnpos_y + baroffset_y,
- barsize_x * bound(0, a/fullammo, 1),
+ weapon_pos_x + baroffset_x,
+ weapon_pos_y + baroffset_y,
+ barsize_x * bound(0, a/ammo_full, 1),
barsize_y);
- drawpic_aspect_skin(wpnpos, "weapon_ammo", wpnsize, ammo_color, ammo_alpha, DRAWFLAG_NORMAL);
+ drawpic_aspect_skin(weapon_pos, "weapon_ammo", weapon_size, ammo_color, ammo_alpha, DRAWFLAG_NORMAL);
drawresetcliparea();
}
}
}
-
- // draw a "ghost weapon icon" if you don't have the weapon
- else
+ else // draw a "ghost weapon icon" if you don't have the weapon
{
- drawpic_aspect_skin(wpnpos, strcat("weapon", self.netname), wpnsize, '0 0 0', panel_fg_alpha * 0.5, DRAWFLAG_NORMAL);
+ drawpic_aspect_skin(weapon_pos, strcat("weapon", self.netname), weapon_size, '0 0 0', panel_fg_alpha * 0.5, DRAWFLAG_NORMAL);
}
-
+
// draw the complain message
if(time - complain_weapon_time < when + fadetime && self.weapon == complain_weapon && autocvar_hud_panel_weapons_complainbubble)
{
if(fadetime)
- {
- if(complain_weapon_time + when > time)
- a = 1;
- else
- a = bound(0, (complain_weapon_time + when + fadetime - time) / fadetime, 1);
- }
+ a = ((complain_weapon_time + when > time) ? 1 : bound(0, (complain_weapon_time + when + fadetime - time) / fadetime, 1));
else
- {
- if(complain_weapon_time + when > time)
- a = 1;
- else
- a = 0;
- }
+ a = ((complain_weapon_time + when > time) ? 1 : 0);
+
string s;
if(complain_weapon_type == 0) {
color = stov(autocvar_hud_panel_weapons_complainbubble_color_unavailable);
}
float padding = autocvar_hud_panel_weapons_complainbubble_padding;
- drawpic_aspect_skin(wpnpos + '1 1 0' * padding, "weapon_complainbubble", wpnsize - '2 2 0' * padding, color, a * panel_fg_alpha, DRAWFLAG_NORMAL);
- drawstring_aspect(wpnpos + '1 1 0' * padding, s, wpnsize - '2 2 0' * padding, '1 1 1', panel_fg_alpha * a, DRAWFLAG_NORMAL);
+ drawpic_aspect_skin(weapon_pos + '1 1 0' * padding, "weapon_complainbubble", weapon_size - '2 2 0' * padding, color, a * panel_fg_alpha, DRAWFLAG_NORMAL);
+ drawstring_aspect(weapon_pos + '1 1 0' * padding, s, weapon_size - '2 2 0' * padding, '1 1 1', panel_fg_alpha * a, DRAWFLAG_NORMAL);
}
+ // continue with new position for the next weapon
++row;
if(row >= rows)
{
++column;
}
}
-
}
// Ammo (#1)
HUD_KillNotify_Push(s1, "", 0, DEATH_GENERIC);
if(alsoprint)
{
- if(gentle)
- print (sprintf(_("^1%s^1 ran into a turret\n"), s1));
- else
- {
- switch(type)
- {
- case DEATH_TURRET_EWHEEL:
- print (sprintf(_("^1%s^1 was laserd down by a eWheel turret \n"), s1));
- break;
- case DEATH_TURRET_FLAC:
- print (sprintf(_("^1%s^1 got caught in the flac \n"), s1));
- break;
- case DEATH_TURRET_MACHINEGUN:
- print (sprintf(_("^1%s^1 was riddeld full of riddled by a machinegun turret \n"), s1));
- break;
- case DEATH_TURRET_WALKER_GUN:
- print (sprintf(_("^1%s^1 got served a led enrichment by a walker turret \n"), s1));
- break;
- case DEATH_TURRET_WALKER_MEELE:
- print (sprintf(_("^1%s^1 was impaled by a walker turret \n"), s1));
- break;
- case DEATH_TURRET_WALKER_ROCKET:
- print (sprintf(_("^1%s^1 was rocketed to hell by a walker turret \n"), s1));
- break;
- case DEATH_TURRET_HELLION:
- print (sprintf(_("^1%s^1 was blasted away hellion turret \n"), s1));
- break;
- case DEATH_TURRET_HK:
- print (sprintf(_("^1%s^1 could not hide from the hunter turret \n"), s1));
- break;
- case DEATH_TURRET_MLRS:
- print (sprintf(_("^1%s^1 got turned into smoldering gibs by a mlrs turret \n"), s1));
- break;
- case DEATH_TURRET_PLASMA:
- print (sprintf(_("^1%s^1 got served some superheated plasma from a plasma turret \n"), s1));
- break;
- case DEATH_TURRET_PHASER:
- print (sprintf(_("^1%s^1 was phased out \n"), s1));
- break;
- case DEATH_TURRET_TESLA:
- print (sprintf(_("^1%s^1 was electrocuted by a tesla turret \n"), s1));
- break;
- }
- }
+ if(gentle)
+ print (sprintf(_("^1%s^1 ran into a turret\n"), s1));
+ else
+ {
+ switch(type)
+ {
+ case DEATH_TURRET_EWHEEL:
+ print (sprintf(_("^1%s^1 was laserd down by a eWheel turret \n"), s1));
+ break;
+ case DEATH_TURRET_FLAC:
+ print (sprintf(_("^1%s^1 got caught in the flac \n"), s1));
+ break;
+ case DEATH_TURRET_MACHINEGUN:
+ print (sprintf(_("^1%s^1 was riddeld full of riddled by a machinegun turret \n"), s1));
+ break;
+ case DEATH_TURRET_WALKER_GUN:
+ print (sprintf(_("^1%s^1 got served a led enrichment by a walker turret \n"), s1));
+ break;
+ case DEATH_TURRET_WALKER_MEELE:
+ print (sprintf(_("^1%s^1 was impaled by a walker turret \n"), s1));
+ break;
+ case DEATH_TURRET_WALKER_ROCKET:
+ print (sprintf(_("^1%s^1 was rocketed to hell by a walker turret \n"), s1));
+ break;
+ case DEATH_TURRET_HELLION:
+ print (sprintf(_("^1%s^1 was blasted away hellion turret \n"), s1));
+ break;
+ case DEATH_TURRET_HK:
+ print (sprintf(_("^1%s^1 could not hide from the hunter turret \n"), s1));
+ break;
+ case DEATH_TURRET_MLRS:
+ print (sprintf(_("^1%s^1 got turned into smoldering gibs by a mlrs turret \n"), s1));
+ break;
+ case DEATH_TURRET_PLASMA:
+ print (sprintf(_("^1%s^1 got served some superheated plasma from a plasma turret \n"), s1));
+ break;
+ case DEATH_TURRET_PHASER:
+ print (sprintf(_("^1%s^1 was phased out \n"), s1));
+ break;
+ case DEATH_TURRET_TESLA:
+ print (sprintf(_("^1%s^1 was electrocuted by a tesla turret \n"), s1));
+ break;
+ }
+ }
}
-
} else if (type == DEATH_CUSTOM) {
HUD_KillNotify_Push(s1, "", 0, DEATH_CUSTOM);
if(alsoprint)
speed_baralign = (autocvar_hud_panel_physics_baralign == 2);
acceleration_baralign = (autocvar_hud_panel_physics_baralign == 3);
}
- if (autocvar_hud_panel_physics_acceleration_progressbar_mode == 0)
+ if (autocvar_hud_panel_physics_acceleration_mode == 0)
acceleration_baralign = 3; //override hud_panel_physics_baralign value for acceleration
//draw speed
float centerprint_time[CENTERPRINT_MAX_MSGS];
float centerprint_expire_time[CENTERPRINT_MAX_MSGS];
float centerprint_countdown_num[CENTERPRINT_MAX_MSGS];
-float centerprint_fadetime;
float centerprint_showing;
void centerprint_generic(float new_id, string strMessage, float duration, float countdown_num)
if (!centerprint_showing)
centerprint_showing = TRUE;
- centerprint_fadetime = bound(0, autocvar_hud_panel_centerprint_fadetime, 1);
-
for (i=0, j=cpm_index; i<CENTERPRINT_MAX_MSGS; ++i, ++j)
{
if (j == CENTERPRINT_MAX_MSGS)
if (strMessage == "" && centerprint_messages[j] != "" && centerprint_countdown_num[j] == 0)
{
// fade out the current msg (duration and countdown_num are ignored)
- centerprint_time[j] = centerprint_fadetime;
- if (centerprint_expire_time[j] > time + centerprint_fadetime || centerprint_expire_time[j] < time)
- centerprint_expire_time[j] = time + centerprint_fadetime;
+ centerprint_time[j] = min(5, autocvar_hud_panel_centerprint_fade_out);
+ if (centerprint_expire_time[j] > time + min(5, autocvar_hud_panel_centerprint_fade_out) || centerprint_expire_time[j] < time)
+ centerprint_expire_time[j] = time + min(5, autocvar_hud_panel_centerprint_fade_out);
return;
}
break; // found a msg with the same id, at position j
if (scoreboard_bottom >= 0.96 * vid_conheight)
return;
vector target_pos;
+
target_pos = eY * scoreboard_bottom + eX * 0.5 * (vid_conwidth - panel_size_x);
- panel_pos = panel_pos + (target_pos - panel_pos) * sqrt(scoreboard_fade_alpha);
- panel_size_y = min(panel_size_y, vid_conheight - scoreboard_bottom);
+
+ if(target_pos_y > panel_pos_y)
+ {
+ panel_pos = panel_pos + (target_pos - panel_pos) * sqrt(scoreboard_fade_alpha);
+ panel_size_y = min(panel_size_y, vid_conheight - scoreboard_bottom);
+ }
}
HUD_Panel_DrawBg(1);
else
continue;
}
- if (centerprint_time[j] < 0 || centerprint_expire_time[j] - centerprint_fadetime > time)
- {
- a = bound(0, (time - (centerprint_expire_time[j] - centerprint_time[j])) / centerprint_fadetime, 1);
- sz = 0.8 + a * (1 - 0.8);
- }
+
+ // fade the centerprint in/out
+ if (centerprint_time[j] < 0 || centerprint_expire_time[j] - autocvar_hud_panel_centerprint_fade_out > time)
+ a = bound(0, (time - (centerprint_expire_time[j] - centerprint_time[j])) / max(0.0001, autocvar_hud_panel_centerprint_fade_in), 1);
else if (centerprint_expire_time[j] > time)
+ a = (centerprint_expire_time[j] - time) / max(0.0001, autocvar_hud_panel_centerprint_fade_out);
+
+ // set the size from fading in/out before subsequent fading
+ sz = autocvar_hud_panel_centerprint_fade_minfontsize + a * (1 - autocvar_hud_panel_centerprint_fade_minfontsize);
+
+ // also fade it based on positioning
+ if(autocvar_hud_panel_centerprint_fade_subsequent)
{
- a = (centerprint_expire_time[j] - time) / centerprint_fadetime;
- sz = 0.8 + a * (1 - 0.8);
+ a = a * bound(autocvar_hud_panel_centerprint_fade_subsequent_passone_minalpha, (1 - (i / max(1, autocvar_hud_panel_centerprint_fade_subsequent_passone))), 1); // pass one: all messages after the first have half alpha
+ a = a * bound(autocvar_hud_panel_centerprint_fade_subsequent_passtwo_minalpha, (1 - (i / max(1, autocvar_hud_panel_centerprint_fade_subsequent_passtwo))), 1); // pass two: after that, gradually lower alpha even more for each message
}
-
+
+ // finally set the size based on the new alpha from subsequent fading
+ sz = sz * (autocvar_hud_panel_centerprint_fade_subsequent_minfontsize + a * (1 - autocvar_hud_panel_centerprint_fade_subsequent_minfontsize));
drawfontscale = sz * '1 1 0';
+
if (centerprint_countdown_num[j])
n = tokenizebyseparator(sprintf(centerprint_messages[j], centerprint_countdown_num[j]), "\n");
else
n = tokenizebyseparator(centerprint_messages[j], "\n");
+
if (autocvar_hud_panel_centerprint_flip)
{
// check if the message can be entirely shown
pos_y -= fontsize_y;
else
pos_y -= fontsize_y * CENTERPRINT_SPACING/2;
- // NOTE: uncommented so as to not reject messages whenever they are "too large" -- This just continues drawing it anyway.
- //if (pos_y < panel_pos_y) // check if the next line can be shown
- //{
- // drawfontscale = '1 1 0';
- // return;
- //}
}
}
current_msg_pos_y = pos_y; // save starting pos (first line) of the current message
}
else
pos_y += fontsize_y * CENTERPRINT_SPACING/2;
- // NOTE: uncommented so as to not reject messages whenever they are "too large" -- This just continues drawing it anyway.
- //if (!autocvar_hud_panel_centerprint_flip && pos_y > panel_pos_y + panel_size_y - fontsize_y) // check if the next line can be shown
- //{
- // drawfontscale = '1 1 0';
- // return;
- //}
}
}
msg_size = pos_y - msg_size;
{
pos_y = current_msg_pos_y - CENTERPRINT_SPACING * fontsize_y;
if (a < 1 && centerprint_msgID[j] == 0) // messages with id can be replaced just after they are faded out, so never move over them the next messages
- pos_y += (msg_size + CENTERPRINT_SPACING * fontsize_y) * (1 - sqrt(a));
+ pos_y += (msg_size + CENTERPRINT_SPACING * fontsize_y) * (1 - sqrt(sz));
+
+ if (pos_y < panel_pos_y) // check if the next message can be shown
+ {
+ drawfontscale = '1 1 0';
+ return;
+ }
}
else
{
pos_y += CENTERPRINT_SPACING * fontsize_y;
if (a < 1 && centerprint_msgID[j] == 0) // messages with id can be replaced just after they are faded out, so never move over them the next messages
- pos_y -= (msg_size + CENTERPRINT_SPACING * fontsize_y) * (1 - sqrt(a));
+ pos_y -= (msg_size + CENTERPRINT_SPACING * fontsize_y) * (1 - sqrt(sz));
+
+ if(pos_y > panel_pos_y + panel_size_y - fontsize_y) // check if the next message can be shown
+ {
+ drawfontscale = '1 1 0';
+ return;
+ }
}
}
drawfontscale = '1 1 0';
HUD_Write_Cvar_q("hud_progressbar_armor_color");
HUD_Write_Cvar_q("hud_progressbar_fuel_color");
HUD_Write_Cvar_q("hud_progressbar_nexball_color");
+ HUD_Write_Cvar_q("hud_progressbar_speed_color");
+ HUD_Write_Cvar_q("hud_progressbar_acceleration_color");
+ HUD_Write_Cvar_q("hud_progressbar_acceleration_neg_color");
HUD_Write("\n");
HUD_Write_Cvar_q("_hud_panelorder");
HUD_Write_PanelCvar_q("_bg_border");
HUD_Write_PanelCvar_q("_bg_padding");
switch(i) {
- case HUD_PANEL_WEAPONS:
+ case HUD_PANEL_WEAPONS:
+ HUD_Write_PanelCvar_q("_accuracy");
+ HUD_Write_PanelCvar_q("_label");
HUD_Write_PanelCvar_q("_complainbubble");
HUD_Write_PanelCvar_q("_complainbubble_padding");
+ HUD_Write_PanelCvar_q("_complainbubble_time");
+ HUD_Write_PanelCvar_q("_complainbubble_fadetime");
HUD_Write_PanelCvar_q("_complainbubble_color_outofammo");
HUD_Write_PanelCvar_q("_complainbubble_color_donthave");
HUD_Write_PanelCvar_q("_complainbubble_color_unavailable");
+ HUD_Write_PanelCvar_q("_ammo");
HUD_Write_PanelCvar_q("_ammo_color");
HUD_Write_PanelCvar_q("_ammo_alpha");
HUD_Write_PanelCvar_q("_aspect");
HUD_Write_PanelCvar_q("_timeout");
HUD_Write_PanelCvar_q("_timeout_effect");
+ HUD_Write_PanelCvar_q("_onlyowned");
break;
case HUD_PANEL_AMMO:
HUD_Write_PanelCvar_q("_onlycurrent");
HUD_Write_PanelCvar_q("_progressbar");
HUD_Write_PanelCvar_q("_progressbar_strength");
HUD_Write_PanelCvar_q("_progressbar_shield");
+ HUD_Write_PanelCvar_q("_text");
break;
case HUD_PANEL_HEALTHARMOR:
HUD_Write_PanelCvar_q("_flip");
HUD_Write_PanelCvar_q("_progressbar");
HUD_Write_PanelCvar_q("_progressbar_health");
HUD_Write_PanelCvar_q("_progressbar_armor");
+ HUD_Write_PanelCvar_q("_progressbar_gfx");
+ HUD_Write_PanelCvar_q("_progressbar_gfx_smooth");
HUD_Write_PanelCvar_q("_text");
break;
case HUD_PANEL_NOTIFY:
HUD_Write_PanelCvar_q("_flip");
HUD_Write_PanelCvar_q("_fontsize");
HUD_Write_PanelCvar_q("_print");
+ HUD_Write_PanelCvar_q("_time");
+ HUD_Write_PanelCvar_q("_fadetime");
+ break;
+ case HUD_PANEL_TIMER:
+ HUD_Write_PanelCvar_q("_increment");
break;
case HUD_PANEL_RADAR:
HUD_Write_PanelCvar_q("_foreground_alpha");
+ HUD_Write_PanelCvar_q("_rotation");
+ HUD_Write_PanelCvar_q("_zoommode");
+ HUD_Write_PanelCvar_q("_scale");
+ HUD_Write_PanelCvar_q("_maximized_scale");
+ HUD_Write_PanelCvar_q("_maximized_size");
+ break;
+ case HUD_PANEL_SCORE:
+ HUD_Write_PanelCvar_q("_rankings");
break;
case HUD_PANEL_VOTE:
HUD_Write_PanelCvar_q("_alreadyvoted_alpha");
break;
+ case HUD_PANEL_MODICONS:
+ HUD_Write_PanelCvar_q("_dom_layout");
+ break;
case HUD_PANEL_PRESSEDKEYS:
HUD_Write_PanelCvar_q("_aspect");
break;
+ case HUD_PANEL_ENGINEINFO:
+ HUD_Write_PanelCvar_q("_framecounter_time");
+ HUD_Write_PanelCvar_q("_framecounter_decimals");
+ break;
case HUD_PANEL_INFOMESSAGES:
HUD_Write_PanelCvar_q("_flip");
break;
case HUD_PANEL_PHYSICS:
+ HUD_Write_PanelCvar_q("_speed_unit");
+ HUD_Write_PanelCvar_q("_speed_unit_show");
+ HUD_Write_PanelCvar_q("_speed_max");
+ HUD_Write_PanelCvar_q("_speed_vertical");
+ HUD_Write_PanelCvar_q("_topspeed");
+ HUD_Write_PanelCvar_q("_topspeed_time");
+ HUD_Write_PanelCvar_q("_acceleration_max");
+ HUD_Write_PanelCvar_q("_acceleration_vertical");
HUD_Write_PanelCvar_q("_flip");
HUD_Write_PanelCvar_q("_baralign");
HUD_Write_PanelCvar_q("_progressbar");
HUD_Write_PanelCvar_q("_acceleration_mode");
+ HUD_Write_PanelCvar_q("_text");
break;
case HUD_PANEL_CENTERPRINT:
HUD_Write_PanelCvar_q("_align");
HUD_Write_PanelCvar_q("_flip");
HUD_Write_PanelCvar_q("_fontscale");
HUD_Write_PanelCvar_q("_time");
- HUD_Write_PanelCvar_q("_fadetime");
+ HUD_Write_PanelCvar_q("_fade_in");
+ HUD_Write_PanelCvar_q("_fade_out");
+ HUD_Write_PanelCvar_q("_fade_subsequent");
+ HUD_Write_PanelCvar_q("_fade_subsequent_passone");
+ HUD_Write_PanelCvar_q("_fade_subsequent_passone_minalpha");
+ HUD_Write_PanelCvar_q("_fade_subsequent_passtwo");
+ HUD_Write_PanelCvar_q("_fade_subsequent_passtwo_minalpha");
+ HUD_Write_PanelCvar_q("_fade_subsequent_minfontsize");
+ HUD_Write_PanelCvar_q("_fade_minfontsize");
break;
}
HUD_Write("\n");
string con_keys;
float keys;
con_keys = findkeysforcommand("toggleconsole");
- keys = tokenize(con_keys);
+ keys = tokenize(con_keys); // findkeysforcommand returns data for this
float hit_con_bind, i;
for (i = 0; i < keys; ++i)
return pos;
}
+vector HUD_DrawKeyValue(vector pos, string key, string value) {
+ float px = pos_x;
+ pos_x += hud_fontsize_x * 0.25;
+ drawstring(pos, key, hud_fontsize, '1 1 1', scoreboard_alpha_fg, DRAWFLAG_NORMAL);
+ pos_x = xmax - stringwidth(value, FALSE, hud_fontsize) - hud_fontsize_x * 0.25;
+ drawstring(pos, value, hud_fontsize, '1 1 1', scoreboard_alpha_fg, DRAWFLAG_NORMAL);
+ pos_x = px;
+ pos_y+= hud_fontsize_y;
+
+ return pos;
+}
+
+vector HUD_DrawMapStats(vector pos, vector rgb, vector bg_size) {
+ float stat_secrets_found, stat_secrets_total;
+ float rows;
+ string val;
+
+ // get secrets stats
+ stat_secrets_found = getstatf(STAT_SECRETS_FOUND);
+ stat_secrets_total = getstatf(STAT_SECRETS_TOTAL);
+
+ // get number of rows
+ rows = (stat_secrets_total ? 1 : 0);
+
+ // if no rows, return
+ if not(rows)
+ return pos;
+
+ // draw table header
+ drawstring(pos, _("Map stats:"), hud_fontsize, '1 1 1', scoreboard_alpha_fg, DRAWFLAG_NORMAL);
+ pos_y += 1.25 * hud_fontsize_y + autocvar_scoreboard_border_thickness;
+
+ // draw table
+ vector tmp;
+ tmp_x = sbwidth;
+ tmp_y = hud_fontsize_y * rows;
+
+ if (teamplay)
+ drawpic_tiled(pos, "gfx/scoreboard/scoreboard_bg", bg_size, tmp, rgb * autocvar_scoreboard_color_bg_team, scoreboard_alpha_bg, DRAWFLAG_NORMAL);
+ else
+ drawpic_tiled(pos, "gfx/scoreboard/scoreboard_bg", bg_size, tmp, rgb, scoreboard_alpha_bg, DRAWFLAG_NORMAL);
+ drawborderlines(autocvar_scoreboard_border_thickness, pos, tmp, '0 0 0', scoreboard_alpha_bg * 0.75, DRAWFLAG_NORMAL);
+
+ // draw secrets
+ val = sprintf("%d/%d", stat_secrets_found, stat_secrets_total);
+ pos = HUD_DrawKeyValue(pos, _("Secrets found:"), val);
+
+ // update position
+ pos_y += 1.25 * hud_fontsize_y;
+ return pos;
+}
+
+
vector HUD_DrawScoreboardRankings(vector pos, entity pl, vector rgb, vector bg_size)
{
float i;
entity pl, tm;
string str;
- xmin = autocvar_scoreboard_offset_left * vid_conwidth;
- ymin = autocvar_con_notify * autocvar_con_notifysize;
+ xmin = (autocvar_scoreboard_offset_left * vid_conwidth);
+ ymin = max((autocvar_con_notify * autocvar_con_notifysize), (autocvar_scoreboard_offset_vertical * vid_conwidth));
- xmax = (1 - autocvar_scoreboard_offset_right) * vid_conwidth;
- ymax = vid_conheight - ymin;
+ xmax = ((1 - autocvar_scoreboard_offset_right) * vid_conwidth);
+ ymax = (vid_conheight - ymin);
sbwidth = xmax - xmin;
pos = HUD_DrawScoreboardAccuracyStats(pos, rgb, bg_size);
}
+
+ if(teamplay)
+ pos = HUD_DrawMapStats(pos, GetTeamRGB(myteam), bg_size);
+ else
+ pos = HUD_DrawMapStats(pos, rgb, bg_size);
+
// List spectators
float specs;
specs = 0;
// self.armorvalue
// self.sameteam = player is on same team as local client
// self.fadedelay = time to wait before name tag starts fading in for enemies
+// self.pointtime = last time you pointed at this player
//
const float SHOWNAMES_FADESPEED = 4;
-const float SHOWNAMES_FADEDELAY = 0.5;
+const float SHOWNAMES_FADEDELAY = 0.4;
void Draw_ShowNames(entity ent)
{
if(!autocvar_hud_shownames)
if(ent.sameteam || (!ent.sameteam && autocvar_hud_shownames_enemies))
{
ent.origin_z += autocvar_hud_shownames_offset;
-
+
float hit;
- if(ent.sameteam)
+ if(ent.sameteam && !autocvar_hud_shownames_crosshairdistance)
{
hit = 1;
}
hit = 1;
}
+ // handle tag fading
+ float overlap, onscreen, crosshairdistance;
vector o, eo;
+
o = project_3d_to_2d(ent.origin);
- float overlap, onscreen;
-
+
if(autocvar_hud_shownames_antioverlap)
{
// fade tag out if another tag that is closer to you overlaps
}
onscreen = (o_z >= 0 && o_x >= 0 && o_y >= 0 && o_x <= vid_conwidth && o_y <= vid_conheight);
+ crosshairdistance = sqrt( pow(o_x - vid_conwidth/2, 2) + pow(o_y - vid_conheight/2, 2) );
+
+ if(autocvar_hud_shownames_crosshairdistance)
+ {
+ if(autocvar_hud_shownames_crosshairdistance > crosshairdistance)
+ ent.pointtime = time;
+
+ if not(ent.pointtime + autocvar_hud_shownames_crosshairdistance_time > time)
+ overlap = TRUE;
+ else
+ overlap = (autocvar_hud_shownames_crosshairdistance_antioverlap ? overlap : FALSE); // override what antioverlap says unless allowed by cvar.
+ }
if(!ent.fadedelay)
ent.fadedelay = time + SHOWNAMES_FADEDELAY;
.float armorvalue;
.float sameteam;
.float fadedelay;
-
+.float pointtime;
const float STAT_VEHICLESTAT_AMMO2 = 65;
const float STAT_VEHICLESTAT_RELOAD2 = 66;
+const float STAT_SECRETS_TOTAL = 70;
+const float STAT_SECRETS_FOUND = 71;
+
// mod stats (1xx)
const float STAT_REDALIVE = 100;
const float STAT_BLUEALIVE = 101;
string s;
s = getWrappedLine_remaining;
+
+ if(w <= 0)
+ {
+ getWrappedLine_remaining = string_null;
+ return s; // the line has no size ANYWAY, nothing would be displayed.
+ }
cantake = textLengthUpToWidth(s, w, theFontSize, tw);
if(cantake > 0 && cantake < strlen(s))
string s;
s = getWrappedLine_remaining;
+
+ if(w <= 0)
+ {
+ getWrappedLine_remaining = string_null;
+ return s; // the line has no size ANYWAY, nothing would be displayed.
+ }
cantake = textLengthUpToLength(s, w, tw);
if(cantake > 0 && cantake < strlen(s))
float GameCommand_Generic(string cmd);
// returns TRUE if handled, FALSE otherwise
-// uses tokenize on its argument!
+// tokenizes its input!
// iterative depth-first search, with fields that go "up", "down left" and "right" in a tree
// for each element, funcPre is called first, then funcPre and funcPost for all its children, and funcPost last
if(status != 0)
{
print(sprintf(_("error: status is %d\n"), status));
+ if(do_cvar)
+ strunzone(do_cvar);
return;
}
if(do_exec)
localcmd(data);
if(do_cvar)
+ {
cvar_set(do_cvar, data);
+ strunzone(do_cvar);
+ }
if(!do_exec && !do_cvar)
print(data);
}
if(argv(i) == "--cvar" && i+2 < argc)
{
++i;
- do_cvar = argv(i);
+ do_cvar = strzone(argv(i));
continue;
}
if(argv(i) == "--exec")
return;
}
-#if 0
- if(argv(0) == "tokentest")
- {
- string s;
- float i, n;
-
- print("SANE tokenizer:\n");
- s = cvar_string("tokentest");
- n = tokenize_console_force_builtin(s);
- for(i = -n; i < n; ++i)
- {
- print("token ", ftos(i), ": '", argv(i), "' = ");
- print(ftos(argv_start_index(i)), " to ", ftos(argv_end_index(i)), "\n");
- }
- print(".\n");
-
- print("INSANE tokenizer:\n");
- s = cvar_string("tokentest");
- n = tokenize(s);
- for(i = -n; i < n; ++i)
- {
- print("token ", ftos(i), ": '", argv(i), "' = ");
- print(ftos(argv_start_index(i)), " to ", ftos(argv_end_index(i)), "\n");
- }
- print(".\n");
-
- print("EMULATED tokenizer:\n");
- s = cvar_string("tokentest");
- n = tokenize_console_force_emulation(s);
- for(i = -n; i < n; ++i)
- {
- print("token ", ftos(i), ": '", argv(i), "' = ");
- print(ftos(argv_start_index(i)), " to ", ftos(argv_end_index(i)), "\n");
- }
- print(".\n");
- return;
- }
-#endif
-
print(_("Invalid command. For a list of supported commands, try menu_cmd help.\n"));
}
me.TD(me, 1, 2, e = makeXonoticSlider(0, 1, 0.05, "hud_damage"));
me.gotoRC(me, me.rows - 1, 0);
- me.TD(me, 1, me.columns, makeXonoticCommandButton(_("Apply immediately"), '0 0 0', "color -1 -1;name \"$_cl_name\";cl_cmd sendcvar cl_weaponpriority;sendcvar cl_zoomfactor;sendcvar cl_zoomspeed;sendcvar cl_autoswitch;sendcvar cl_shownames;sendcvar cl_forceplayermodelsfromxonotic;sendcvar cl_forceplayermodels;playermodel $_cl_playermodel;playerskin $_cl_playerskin", COMMANDBUTTON_APPLY));
+ me.TD(me, 1, me.columns, makeXonoticCommandButton(_("Apply immediately"), '0 0 0', "color -1 -1;name \"$_cl_name\";cl_cmd sendcvar cl_weaponpriority;sendcvar cl_zoomfactor;sendcvar cl_zoomspeed;sendcvar cl_autoswitch;sendcvar cl_forceplayermodelsfromxonotic;sendcvar cl_forceplayermodels;playermodel $_cl_playermodel;playerskin $_cl_playerskin", COMMANDBUTTON_APPLY));
}
void HUDSetup_Join_Click(entity me, entity btn)
{
ATTRIB(XonoticWaypointDialog, title, string, _("Waypoints"))
ATTRIB(XonoticWaypointDialog, color, vector, SKINCOLOR_DIALOG_WAYPOINTS)
ATTRIB(XonoticWaypointDialog, intendedWidth, float, 0.5)
- ATTRIB(XonoticWaypointDialog, rows, float, 6)
+ ATTRIB(XonoticWaypointDialog, rows, float, 5)
ATTRIB(XonoticWaypointDialog, columns, float, 3)
ENDCLASS(XonoticWaypointDialog)
#endif
me.TD(me, 1, 2, e = makeXonoticSlider(0.1, 1, 0.05, "g_waypointsprite_alpha"));
setDependent(e, "cl_hidewaypoints", 0, 0);
me.TR(me);
- me.TR(me);
- me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Show names:")));
- me.TD(me, 1, 2, e = makeXonoticTextSlider("cl_shownames"));
- e.addValue(e, _("Never"), "0");
- e.addValue(e, _("Teammates"), "1");
- e.addValue(e, _("All players"), "2");
- e.configureXonoticTextSliderValues(e);
+ me.TD(me, 1, 3, e = makeXonoticCheckBox(1, "hud_shownames", _("Show names above players")));
me.gotoRC(me, me.rows - 1, 0);
me.TD(me, 1, me.columns, e = makeXonoticButton(_("OK"), '0 0 0'));
e.onClick = Dialog_Close;
.float antilag_times[ANTILAG_MAX_ORIGINS];
.float antilag_index;
.vector antilag_saved_origin;
+.float antilag_takenback;
.float antilag_debug;
void antilag_record(entity e, float t)
{
+ if(e.vehicle)
+ antilag_record(e.vehicle, t);
+
if(time < e.(antilag_times[e.antilag_index]))
return;
e.antilag_index = e.antilag_index + 1;
if(e.antilag_debug)
te_spark(antilag_takebackorigin(e, t - e.antilag_debug), '0 0 0', 32);
+
}
// finds the index BEFORE t
vector antilag_takebackavgvelocity(entity e, float t0, float t1)
{
vector o0, o1;
+
if(t0 >= t1)
return '0 0 0';
o0 = antilag_takebackorigin(e, t0);
void antilag_takeback(entity e, float t)
{
- e.antilag_saved_origin = e.origin;
+ if(e.vehicle)
+ antilag_takeback(e.vehicle, t);
+
+ if(!e.antilag_takenback)
+ e.antilag_saved_origin = e.origin;
+
setorigin(e, antilag_takebackorigin(e, t));
+ e.antilag_takenback = TRUE;
}
void antilag_restore(entity e)
{
+ if(e.vehicle)
+ antilag_restore(e.vehicle);
+
+ if(!e.antilag_takenback)
+ return;
+
setorigin(e, e.antilag_saved_origin);
+ e.antilag_takenback = FALSE;
}
void antilag_record(entity e, float t);
-float antilag_find(entity e, float t);
vector antilag_takebackorigin(entity e, float t);
vector antilag_takebackavgvelocity(entity e, float t0, float t1);
void antilag_takeback(entity e, float t);
string autocvar_sv_eventlog_files_nameprefix;
string autocvar_sv_eventlog_files_namesuffix;
float autocvar_sv_eventlog_files_timestamps;
-float autocvar_sv_fragmessage_information_handicap;
-float autocvar_sv_fragmessage_information_ping;
-float autocvar_sv_fragmessage_information_stats;
-float autocvar_sv_fragmessage_information_typefrag;
+float autocvar_sv_fraginfo_handicap;
+float autocvar_sv_fraginfo_ping;
+float autocvar_sv_fraginfo_stats;
+float autocvar_sv_fraginfo_typefrag;
float autocvar_sv_friction;
float autocvar_sv_friction_on_land;
float autocvar_sv_gameplayfix_q2airaccelerate;
self.prevorigin = self.origin;
self.lastrocket = world; // stop rocket guiding, no revenge from the grave!
self.lastteleporttime = time; // prevent insane speeds due to changing origin
-
+ self.hud = HUD_NORMAL;
+
if(g_arena)
{
Spawnqueue_Remove(self);
self.avelocity = randomvec() * autocvar_g_respawn_ghosts_speed * 3 - randomvec() * autocvar_g_respawn_ghosts_speed * 3;
self.effects |= EF_ADDITIVE;
self.oldcolormap = self.colormap;
- self.colormap = 512;
+ self.colormap = 0; // this originally was 512, but raises a warning in the engine, so get rid of it
pointparticles(particleeffectnum("respawn_ghost"), self.origin, '0 0 0', 1);
if(autocvar_g_respawn_ghosts_maxtime)
SUB_SetFade (self, time + autocvar_g_respawn_ghosts_maxtime / 2 + random () * (autocvar_g_respawn_ghosts_maxtime - autocvar_g_respawn_ghosts_maxtime / 2), 1.5);
if(g_nexball)
nexball_setstatus();
-
+
+ // secret status
+ secrets_setstatus();
+
self.dmg_team = max(0, self.dmg_team - autocvar_g_teamdamage_resetspeed * frametime);
//self.angles_y=self.v_angle_y + 90; // temp
Drag_MoveDrag(oldself, self);
+ if(self.colormap <= maxclients && self.colormap > 0)
+ self.colormap = 1024 + self.clientcolors;
+
self = oldself;
}
UpdateFrags(attacker, f);
}
+string Obituary_ExtraFragInfo(entity player) // Extra fragmessage information
+{
+ string health_output;
+ string ping_output;
+ string handicap_output;
+ string output;
+
+ // health/armor of attacker (person who killed you)
+ if(autocvar_sv_fraginfo_stats && (player.health >= 1))
+ if((autocvar_sv_fraginfo_stats == 2) || !inWarmupStage)
+ health_output = strcat("^7(Health ^1", ftos(rint(player.health)), "^7 / Armor ^2", ftos(rint(player.armorvalue)), "^7)");
+
+ // ping display
+ if(autocvar_sv_fraginfo_ping)
+ ping_output = ((clienttype(player) == CLIENTTYPE_BOT) ? "^2Bot" : strcat("Ping ", ((player.ping >= 150) ? "^1" : "^2"), ftos(player.ping), "ms"));
+
+ // handicap display
+ if(autocvar_sv_fraginfo_handicap)
+ {
+ if(autocvar_sv_fraginfo_handicap == 2)
+ handicap_output = strcat(output, strcat("Handicap ^2", ((player.cvar_cl_handicap <= 1) ? "Off" : ftos(player.cvar_cl_handicap))));
+ else if(player.cvar_cl_handicap) // with _handicap 1, only show this if there actually is a handicap enabled.
+ handicap_output = strcat("Handicap ^2", ftos(player.cvar_cl_handicap));
+ }
+
+ // format the string
+ output = strcat(health_output, (health_output ? " ^7(" : ((ping_output || handicap_output) ? "^7(" : "")),
+ ping_output, ((ping_output && handicap_output) ? "^7 / " : ""),
+ handicap_output, ((ping_output || handicap_output) ? "^7)" : ""));
+
+ // add new line to the beginning if there is a message
+ if(output) { output = strcat("\n", output); }
+
+ return output;
+}
+
string AppendItemcodes(string s, entity player)
{
float w;
PlayerStats_Event(targ, PLAYERSTATS_ACHIEVEMENT_FIRSTVICTIM, 1);
}
- if((autocvar_sv_fragmessage_information_typefrag) && (targ.BUTTON_CHAT)) {
- Send_CSQC_KillCenterprint(attacker, s, GetAdvancedDeathReports(targ), KILL_TYPEFRAG, MSG_KILL);
- Send_CSQC_KillCenterprint(targ, a, GetAdvancedDeathReports(attacker), KILL_TYPEFRAGGED, MSG_KILL);
+ if((autocvar_sv_fraginfo_typefrag) && (targ.BUTTON_CHAT)) {
+ Send_CSQC_KillCenterprint(attacker, s, Obituary_ExtraFragInfo(targ), KILL_TYPEFRAG, MSG_KILL);
+ Send_CSQC_KillCenterprint(targ, a, Obituary_ExtraFragInfo(attacker), KILL_TYPEFRAGGED, MSG_KILL);
} else {
- Send_CSQC_KillCenterprint(attacker, s, GetAdvancedDeathReports(targ), KILL_FRAG, MSG_KILL);
- Send_CSQC_KillCenterprint(targ, a, GetAdvancedDeathReports(attacker), KILL_FRAGGED, MSG_KILL);
+ Send_CSQC_KillCenterprint(attacker, s, Obituary_ExtraFragInfo(targ), KILL_FRAG, MSG_KILL);
+ Send_CSQC_KillCenterprint(targ, a, Obituary_ExtraFragInfo(attacker), KILL_FRAGGED, MSG_KILL);
}
attacker.taunt_soundtime = time + 1;
// take players back into the past
FOR_EACH_PLAYER(player)
if(player != forent)
- {
- antilag_takeback(player, time - lag);
- if(player.vehicle)
- antilag_takeback(player.vehicle, time - lag);
- }
-
+ antilag_takeback(player, time - lag);
}
// do the trace
{
FOR_EACH_PLAYER(player)
if(player != forent)
- {
- antilag_restore(player);
- if(player.vehicle)
- antilag_restore(player.vehicle);
- }
-
+ antilag_restore(player);
}
// restore shooter solid type
BADPREFIX("net_");
BADPREFIX("prvm_");
BADPREFIX("skill_");
- BADPREFIX("sv_fragmessage_");
+ BADPREFIX("sv_fraginfo_");
BADPREFIX("sv_maxidle_");
BADPREFIX("sv_vote_");
BADPREFIX("timelimit_");
addstat(STAT_MOVEVARS_MAXSPEED, AS_FLOAT, stat_sv_maxspeed);
addstat(STAT_MOVEVARS_AIRACCEL_QW, AS_FLOAT, stat_sv_airaccel_qw);
addstat(STAT_MOVEVARS_AIRSTRAFEACCEL_QW, AS_FLOAT, stat_sv_airstrafeaccel_qw);
-
+
+ // secrets
+ addstat(STAT_SECRETS_TOTAL, AS_FLOAT, stat_secrets_total);
+ addstat(STAT_SECRETS_FOUND, AS_FLOAT, stat_secrets_found);
+
next_pingtime = time + 5;
detect_maptype();
float Map_Count, Map_Current;
string Map_Current_Name;
-// NOTE: this now expects the map list to be already tokenize()d and the count in Map_Count
+// NOTE: this now expects the map list to be already tokenized and the count in Map_Count
float GetMaplistPosition()
{
float pos, idx;
self.hitsound = FALSE;
self.typehitsound = FALSE;
antilag_record(self, altime);
- if(self.vehicle)
- antilag_record(self.vehicle, altime);
}
}
fh = fopen("effectinfo.txt", FILE_READ);
while((s = fgets(fh)))
{
- tokenize(s); // tokenize_console would hit the loop counter :(
+ tokenize_console(s);
if(argv(0) == "effect")
{
if(db_get(d, argv(1)) != "1")
float logfile_open;
float logfile;
-string GetAdvancedDeathReports(entity enPlayer) // Extra fragmessage information
-{
- float nPlayerHealth = rint(enPlayer.health);
- float nPlayerArmor = rint(enPlayer.armorvalue);
- float nPlayerHandicap = enPlayer.cvar_cl_handicap;
- float nPlayerPing = rint(enPlayer.ping);
- string strPlayerPingColor;
- string strMessage;
-
- if(nPlayerPing >= 150)
- strPlayerPingColor = "^1";
- else
- strPlayerPingColor = "^2";
-
- if((autocvar_sv_fragmessage_information_stats) && (enPlayer.health >= 1))
- strMessage = strcat(strMessage, "^7(Health ^1", ftos(nPlayerHealth), "^7 / Armor ^2", ftos(nPlayerArmor), "^7)");
-
- if(autocvar_sv_fragmessage_information_ping) {
- if(clienttype(enPlayer) == CLIENTTYPE_BOT) // Bots have no ping
- strMessage = strcat(strMessage, " ^7(^2Bot");
- else
- strMessage = strcat(strMessage, " ^7(Ping ", strPlayerPingColor, ftos(nPlayerPing), "ms");
- if(autocvar_sv_fragmessage_information_handicap)
- if(autocvar_sv_fragmessage_information_handicap == 2)
- if(nPlayerHandicap <= 1)
- strMessage = strcat(strMessage, "^7 / Handicap ^2Off^7)");
- else
- strMessage = strcat(strMessage, "^7 / Handicap ^2", ftos(nPlayerHandicap), "^7)");
- else if not(nPlayerHandicap <= 1)
- strMessage = strcat(strMessage, "^7 / Handicap ^2", ftos(nPlayerHandicap), "^7)");
- else
- strMessage = strcat(strMessage, "^7)");
- } else if(autocvar_sv_fragmessage_information_handicap) {
- if(autocvar_sv_fragmessage_information_handicap == 2)
- if(nPlayerHandicap <= 1)
- strMessage = strcat(strMessage, "^7(Handicap ^2Off^7)");
- else
- strMessage = strcat(strMessage, "^7(Handicap ^2", ftos(nPlayerHandicap), "^7)");
- else if(nPlayerHandicap > 1)
- strMessage = strcat(strMessage, "^7(Handicap ^2", ftos(nPlayerHandicap), "^7)");
- }
-
- if(strMessage) // add new line to the beginning if there is a message
- strMessage = strcat("\n", strMessage);
-
- return strMessage;
-}
void bcenterprint(string s)
{
// TODO replace by MSG_ALL (would show it to spectators too, though)?
playerdemo.qh
+// singleplayer stuff
item_key.qh
+secret.qh
scores_rules.qc
g_triggers.qc
g_models.qc
+// singleplayer stuff
+item_key.qc
+secret.qc
+
cl_weaponsystem.qc
w_common.qc
t_items.qc
cl_weapons.qc
cl_impulse.qc
-item_key.qc
ent_cs.qc
--- /dev/null
+
+
+void secrets_setstatus() {
+ self.stat_secrets_total = secrets_total;
+ self.stat_secrets_found = secrets_found;
+}
+
+/**
+ * A secret has been found (maybe :P)
+ */
+void trigger_secret_touch() {
+ // only a player can trigger this
+ if (other.classname != "player")
+ return;
+
+ // update secrets found counter
+ secrets_found += 1;
+ //print("Secret found: ", ftos(secret_counter.cnt), "/");
+ //print(ftos(secret_counter.count), "\n");
+
+ // centerprint message (multi_touch() doesn't always call centerprint())
+ centerprint(other, self.message);
+ self.message = "";
+
+ // handle normal trigger features
+ multi_touch();
+ remove(self);
+}
+
+/*QUAKED trigger_secret (.5 .5 .5) ?
+Variable sized secret trigger. Can be targeted at one or more entities.
+Basically, it's a trigger_once (with restrictions, see notes) that additionally updates the number of secrets found.
+-------- KEYS --------
+sounds: 1 to play misc/secret.wav, 2 to play misc/talk.wav, 3 to play misc/trigger1.wav (default: 1)
+noise: path to sound file, if you want to play something else
+target: trigger all entities with this targetname when triggered
+message: print this message to the player who activated the trigger instead of the standard 'You found a secret!'
+killtarget: remove all entities with this targetname when triggered
+-------- NOTES --------
+You should create a common/trigger textured brush covering the entrance to a secret room/area.
+Trigger secret can only be trigger by a player's touch and can not be a target itself.
+*/
+void spawnfunc_trigger_secret() {
+ // FIXME: should it be disabled in most modes?
+
+ // update secrets count
+ secrets_total += 1;
+
+ // add default message
+ if (self.message == "")
+ self.message = "You found a secret!";
+
+ // set default sound
+ if (self.noise == "")
+ if not(self.sounds)
+ self.sounds = 1; // misc/secret.wav
+
+ // this entity can't be a target itself!!!!
+ self.targetname = "";
+
+ // you can't just shoot a room to find it, can you?
+ self.health = 0;
+
+ // a secret can not be delayed
+ self.delay = 0;
+
+ // convert this trigger to trigger_once
+ self.classname = "trigger_once";
+ spawnfunc_trigger_once();
+
+ // take over the touch() function, so we can mark secret as found
+ self.touch = trigger_secret_touch;
+ // ignore triggering;
+ self.use = SUB_Null;
+}
+
--- /dev/null
+/**
+ * Total number of secrets on the map.
+ */
+float secrets_total;
+
+/**
+ * Total numbe of secrets found on the map.
+ */
+float secrets_found;
+
+
+.float stat_secrets_total;
+.float stat_secrets_found;
+
+/**
+ * update secrets status.
+ */
+void secrets_setstatus();
+
s = substring(s, 1, -1);
}
- n = tokenize(s);
+ n = tokenize_console(s);
for(i = 0; i < n; ++i)
{
s = argv(i);
float autocvar_g_vehicle_racer_blowup_edgedamage;
float autocvar_g_vehicle_racer_blowup_forceintensity;
+float autocvar_g_vehicle_racer_bouncefactor;
+float autocvar_g_vehicle_racer_bouncestop;
+vector autocvar_g_vehicle_racer_bouncepain;
+
var vector racer_force_from_tag(string tag_name, float spring_length, float max_power);
void racer_align4point()
return 1;
}
-
racer_align4point();
- vh_crosshair_trace(player);
+
+ crosshair_trace(player);
+
racer.angles_x *= -1;
// Yaw
self.owner = world;
}
+void racer_worldimpact()
+{
+ if(self.play_time < time)
+ if(autocvar_g_vehicle_racer_bouncepain_x)
+ vehilces_worldimpact(autocvar_g_vehicle_racer_bouncepain_x, autocvar_g_vehicle_racer_bouncepain_y, autocvar_g_vehicle_racer_bouncepain_z);
+
+}
void racer_spawn()
{
self.scale = 0.5;
setsize(self, RACER_MIN * 0.5, RACER_MAX * 0.5);
+ self.bouncefactor = autocvar_g_vehicle_racer_bouncefactor;
+ self.bouncestop = autocvar_g_vehicle_racer_bouncestop;
+ self.vehicle_worldimpact = racer_worldimpact;
+ //self.destvec = autocvar_g_vehicle_racer_bouncepain;
}
float autocvar_g_vehicle_raptor_shield_regen;
float autocvar_g_vehicle_raptor_shield_regen_pause;
+float autocvar_g_vehicle_raptor_bouncefactor;
+float autocvar_g_vehicle_raptor_bouncestop;
+vector autocvar_g_vehicle_raptor_bouncepain;
+
void raptor_spawn();
float raptor_frame();
float raptor_takeoff();
float raptor_altitude(float amax)
{
- tracebox(self.origin, self.mins, self.maxs, self.origin - ('0 0 1' * amax), TRUE, self);
+ tracebox(self.origin, self.mins, self.maxs, self.origin - ('0 0 1' * amax), MOVE_WORLDONLY, self);
return vlen(self.origin - trace_endpos);
}
}
void raptor_land()
-{
-
+{
float hgt;
-
- hgt = raptor_altitude(512);
+
+ hgt = raptor_altitude(512);
self.velocity = (self.velocity * 0.9) + ('0 0 -1800' * (hgt / 256) * sys_frametime);
self.angles_x *= 0.95;
self.angles_z *= 0.95;
if(hgt < 128)
- if(self.frame != 0)
- self.frame = max(self.frame - 0.25, 0);
+ if(hgt > 0)
+ self.frame = (hgt / 128) * 25;
self.bomb1.gun1.avelocity_y = 90 + ((self.frame / 25) * 2000);
self.bomb1.gun2.avelocity_y = -self.bomb1.gun1.avelocity_y;
if(hgt < 16)
{
- self.movetype = MOVETYPE_TOSS;
- self.think = raptor_think;
+ self.movetype = MOVETYPE_TOSS;
+ self.think = raptor_think;
+ self.frame = 0;
}
self.nextthink = time;
player.BUTTON_ATCK = player.BUTTON_ATCK2 = 0;
return 1;
}
- vh_crosshair_trace(player);
+ crosshair_trace(player);
vector vang;
vang = raptor.angles;
self.touch = raptor_blowup;
}
+void raptor_worldimpact()
+{
+ if(self.play_time < time)
+ if(autocvar_g_vehicle_raptor_bouncepain_x)
+ vehilces_worldimpact(autocvar_g_vehicle_raptor_bouncepain_x, autocvar_g_vehicle_raptor_bouncepain_y, autocvar_g_vehicle_raptor_bouncepain_z);
+}
+
void raptor_spawn()
{
self.frame = 0;
setsize(self, RAPTOR_MIN, RAPTOR_MAX );
self.delay = time;
+
+ self.bouncefactor = autocvar_g_vehicle_raptor_bouncefactor;
+ self.bouncestop = autocvar_g_vehicle_raptor_bouncestop;
+ self.vehicle_worldimpact = raptor_worldimpact;
}
// If we dont do this ever now and then, the raptors rotors
float autocvar_g_vehicle_spiderbot_rocket_turnrate;
float autocvar_g_vehicle_spiderbot_rocket_lifetime;
+float autocvar_g_vehicle_spiderbot_bouncefactor;
+float autocvar_g_vehicle_spiderbot_bouncestop;
+vector autocvar_g_vehicle_spiderbot_bouncepain;
+
+
void spiderbot_exit(float eject);
void spiderbot_enter();
void spiderbot_spawn();
if not (self.owner.BUTTON_ATCK2)
return;
- vh_crosshair_trace(self.owner);
+ crosshair_trace(self.owner);
v = gettaginfo(self.tur_head,gettagindex(self.tur_head,"tag_fire"));
rocket = vehicles_projectile("spiderbot_rocket_launch", "weapons/rocket_fire.wav",
self.owner = world;
}
-
+void spider_worldimpact()
+{
+ if(self.play_time < time)
+ if(autocvar_g_vehicle_spiderbot_bouncepain_x)
+ vehilces_worldimpact(autocvar_g_vehicle_spiderbot_bouncepain_x, autocvar_g_vehicle_spiderbot_bouncepain_y, autocvar_g_vehicle_spiderbot_bouncepain_z);
+}
void spiderbot_spawn()
{
self.frame = 5;
setorigin(self, self.pos1 + '0 0 128');
self.angles = self.pos2;
+ self.vehicle_worldimpact = spider_worldimpact;
}
void spiderbot_headfade()
dont before calling.
**/
-void vh_crosshair_trace(entity player)
-{
- float lag;
- entity pl;
-
- lag = ANTILAG_LATENCY(self);
- if(lag < 0.001)
- lag = 0;
- if(clienttype(self) != CLIENTTYPE_REAL)
- lag = 0;
- if(autocvar_g_antilag == 0 || self.cvar_cl_noantilag)
- lag = 0; // only do hitscan, but no antilag
-
- if(lag)
- FOR_EACH_PLAYER(pl)
- if(pl != self)
- {
- antilag_takeback(pl, time - lag);
- if(pl.vehicle)
- antilag_takeback(pl.vehicle, time - lag);
-
- }
-
- crosshair_trace(player);
-
- if(lag)
- FOR_EACH_PLAYER(pl)
- if(pl != self)
- {
- antilag_restore(pl);
- if(pl.vehicle)
- antilag_restore(pl.vehicle);
- }
-}
.entity lock_target;
.float lock_strength;
.float lock_time;
if(trace_ent.deadflag != DEAD_NO)
trace_ent = world;
- if not (trace_ent.vehicle_flags & VHF_ISVEHICLE || trace_ent.turrcaps_flags & TFL_TURRCAPS_ISTURRET || trace_ent.classname == "player")
+ if not (trace_ent.vehicle_flags & VHF_ISVEHICLE || trace_ent.turrcaps_flags & TFL_TURRCAPS_ISTURRET)
trace_ent = world;
}
return FALSE;
}
+void vehilces_worldimpact(float _minspeed, float _speedfac, float _maxpain)
+{
+ if(self.play_time < time)
+ {
+ float wc, take;
+ wc = vlen(self.velocity - self.oldvelocity);
+ if(_minspeed < wc)
+ {
+ take = min(_speedfac * wc, _maxpain);
+ Damage (self, world, world, take, DEATH_FALL, self.origin, '0 0 0');
+ self.play_time = time + 0.25;
+
+ dprint("oldvel: ", vtos(self.oldvelocity), "\n");
+ dprint("vel: ", vtos(self.velocity), "\n");
+ dprint("wc: ", ftos(wc), "\n");
+ dprint("take: ", ftos(take), "\n");
+
+ }
+ }
+}
+
+.void() vehicle_worldimpact;
void vehicles_touch()
{
// Vehicle currently in use
// Colided with world?
if(other == world)
{
+ if(self.vehicle_worldimpact)
+ self.vehicle_worldimpact();
}
else
{
if(lag)
FOR_EACH_PLAYER(pl)
if(pl != self)
- {
- antilag_takeback(pl, time - lag);
- if(pl.vehicle)
- antilag_takeback(pl.vehicle, time - lag);
-
- }
-
+ antilag_takeback(pl, time - lag);
oldself = self;
self = proj;
if(lag)
FOR_EACH_PLAYER(pl)
if(pl != self)
- {
- antilag_restore(pl);
- if(pl.vehicle)
- antilag_restore(pl.vehicle);
- }
-
+ antilag_restore(pl);
remove(proj);
else if (req == WR_SUICIDEMESSAGE)
{
if(w_deathtype & HITTYPE_SECONDARY)
- w_deathtypestring = _("%s could not remember where they put plasma");
+ w_deathtypestring = _("%s could not remember where they put their electro plasma");
else
- w_deathtypestring = _("%s played with plasma");
+ w_deathtypestring = _("%s played with electro plasma");
}
else if (req == WR_KILLMESSAGE)
{
if(w_deathtype & HITTYPE_SECONDARY)
{
if(w_deathtype & HITTYPE_SPLASH) // unchecked: BOUNCE
- w_deathtypestring = _("%s just noticed %s's blue ball");
+ w_deathtypestring = _("%s just noticed %s's electro plasma");
else // unchecked: BOUNCE
- w_deathtypestring = _("%s got in touch with %s's blue ball");
+ w_deathtypestring = _("%s got in touch with %s's electro plasma");
}
else
{
if(w_deathtype & HITTYPE_BOUNCE) // combo
- w_deathtypestring = _("%s felt the electrifying air of %s's combo");
+ w_deathtypestring = _("%s felt the electrifying air of %s's electro combo");
else if(w_deathtype & HITTYPE_SPLASH)
- w_deathtypestring = _("%s got too close to %s's blue beam");
+ w_deathtypestring = _("%s got too close to %s's blue electro bolt");
else
- w_deathtypestring = _("%s was blasted by %s's blue beam");
+ w_deathtypestring = _("%s was blasted by %s's blue electro bolt");
}
}
return TRUE;
else if (req == WR_SUICIDEMESSAGE)
{
if(w_deathtype & HITTYPE_SECONDARY)
- w_deathtypestring = _("%s tried out his own grenade");
+ w_deathtypestring = _("%s didn't see their own grenade");
else
- w_deathtypestring = _("%s detonated");
+ w_deathtypestring = _("%s blew themself up with their grenadelauncher");
}
else if (req == WR_KILLMESSAGE)
{
precache_sound("weapons/hagexp3.wav");
}
else if (req == WR_SUICIDEMESSAGE)
- w_deathtypestring = _("%s played with tiny rockets");
+ w_deathtypestring = _("%s played with tiny hagar rockets");
else if (req == WR_KILLMESSAGE)
{
if(w_deathtype & HITTYPE_BOUNCE) // must be secondary; unchecked: SPLASH
- w_deathtypestring = _("%s hoped %s's missiles wouldn't bounce");
+ w_deathtypestring = _("%s was pummeled with a burst of hagar rockets by %s");
else // unchecked: SPLASH, SECONDARY
- w_deathtypestring = _("%s was pummeled by %s");
+ w_deathtypestring = _("%s was pummeled with hagar rockets by %s");
}
return TRUE;
}
else if (req == WR_SUICIDEMESSAGE)
w_deathtypestring = _("%s should have used a smaller gun");
else if (req == WR_KILLMESSAGE)
- w_deathtypestring = _("%s was cut down by %s");
+ w_deathtypestring = _("%s was cut down with a HLAC by %s");
return TRUE;
}
#endif
else if (req == WR_SUICIDEMESSAGE)
w_deathtypestring = _("%s did the impossible");
else if (req == WR_KILLMESSAGE)
- w_deathtypestring = _("%s has run into %s's gravity bomb");
+ w_deathtypestring = _("%s was caught in %s's hook gravity bomb");
return TRUE;
}
#endif
precache_sound("weapons/mine_exp.wav");
}
else if (req == WR_SUICIDEMESSAGE)
- w_deathtypestring = _("%s exploded");
+ if(w_deathtype & HITTYPE_BOUNCE) // (remote detonation)
+ w_deathtypestring = _("%s blew themself up with their minelayer");
+ else
+ w_deathtypestring = _("%s forgot about their mine");
else if (req == WR_KILLMESSAGE)
{
if(w_deathtype & HITTYPE_BOUNCE) // (remote detonation)
else if (req == WR_SUICIDEMESSAGE)
w_deathtypestring = _("%s is now thinking with portals");
else if (req == WR_KILLMESSAGE)
- w_deathtypestring = _("%s has been vaporized by %s");
+ w_deathtypestring = _("%s has been vaporized by %s's minstanex");
return TRUE;
}
#endif
else if (req == WR_SUICIDEMESSAGE)
w_deathtypestring = _("%s is now thinking with portals");
else if (req == WR_KILLMESSAGE)
- w_deathtypestring = _("%s has been vaporized by %s");
+ w_deathtypestring = _("%s has been vaporized by %s's nex");
return TRUE;
}
#endif
}
else if (req == WR_SUICIDEMESSAGE)
{
- if(w_deathtype & HITTYPE_SECONDARY)
- w_deathtypestring = _("%s shot themself automatically");
- else
- w_deathtypestring = _("%s sniped themself somehow");
+ w_deathtypestring = _("%s is now thinking with portals");
}
else if (req == WR_KILLMESSAGE)
{
if(w_deathtype & HITTYPE_SECONDARY)
{
if(w_deathtype & HITTYPE_BOUNCE)
- w_deathtypestring = _("%s failed to hide from %s's bullet hail");
+ w_deathtypestring = _("%s failed to hide from %s's rifle bullet hail");
else
- w_deathtypestring = _("%s died in %s's bullet hail");
+ w_deathtypestring = _("%s died in %s's rifle bullet hail");
}
else
{
else
{
if(w_deathtype & HITTYPE_HEADSHOT)
- w_deathtypestring = _("%s got hit in the head by %s");
+ w_deathtypestring = _("%s got shot in the head with a rifle by %s");
else
- w_deathtypestring = _("%s was sniped by %s");
+ w_deathtypestring = _("%s was sniped with a rifle by %s");
}
}
}
precache_sound("weapons/rocket_impact.wav");
}
else if (req == WR_SUICIDEMESSAGE)
- w_deathtypestring = _("%s exploded");
+ w_deathtypestring = _("%s blew themself up with their rocketlauncher");
else if (req == WR_KILLMESSAGE)
{
if(w_deathtype & HITTYPE_BOUNCE) // (remote detonation)
precache_sound("weapons/tag_impact.wav");
}
else if (req == WR_SUICIDEMESSAGE)
- w_deathtypestring = _("%s played with tiny rockets");
+ w_deathtypestring = _("%s played with tiny seeker rockets");
else if (req == WR_KILLMESSAGE)
{
if(w_deathtype & HITTYPE_SECONDARY)
- w_deathtypestring = _("%s was tagged by %s");
+ w_deathtypestring = _("%s was tagged with a seeker by %s");
else
- w_deathtypestring = _("%s was pummeled by %s");
+ w_deathtypestring = _("%s was pummeled with seeker rockets by %s");
}
return TRUE;
}
else if (req == WR_KILLMESSAGE)
{
if(w_deathtype & HITTYPE_SECONDARY)
- w_deathtypestring = _("%2$s ^7slapped %1$s ^7around a bit with a large ^2shotgun");
+ w_deathtypestring = _("%2$s slapped %1$s around a bit with a large shotgun");
else
- w_deathtypestring = _("%s was gunned by %s");
+ w_deathtypestring = _("%s was gunned down with a shotgun by %s");
}
return TRUE;
}
precache_model ("models/weapons/g_tuba.md3");
precache_model ("models/weapons/v_tuba.md3");
precache_model ("models/weapons/h_tuba.iqm");
+ precache_model ("models/weapons/g_akordeon.md3");
+ precache_model ("models/weapons/v_akordeon.md3");
+ precache_model ("models/weapons/h_akordeon.iqm");
//float i;
//for(i = -18; i <= +27; ++i)
else if (req == WR_KILLMESSAGE)
{
if(w_deathtype & HITTYPE_SECONDARY)
- w_deathtypestring = _("%s was sniped by %s");
+ w_deathtypestring = _("%s was sniped by %s's machine gun");
else
- w_deathtypestring = _("%s was riddled full of holes by %s");
+ w_deathtypestring = _("%s was riddled full of holes by %s's machine gun");
}
return TRUE;
}
set g_vehicle_racer_blowup_edgedamage 15
set g_vehicle_racer_blowup_forceintensity 250
+set g_vehicle_racer_bouncefactor 0.25 // Factor of old velocity to keep after colission
+set g_vehicle_racer_bouncestop 0 // if != 0, New veloctiy after bounce = 0 if new velocity < this
+set g_vehicle_racer_bouncepain "35 2 250" // "minspeed_for_pain speedchange_to_pain_factor max_damage"
+
set g_vehicle_racer_mass 900
set g_vehicle_raptor_shield_regen 25
set g_vehicle_raptor_shield_regen_pause 1.5
+set g_vehicle_raptor_bouncefactor 0.2
+set g_vehicle_raptor_bouncestop 0
+set g_vehicle_raptor_bouncepain "1 1.5 500"
+
set g_vehicle_raptor_mass 2200
set g_vehicle_spiderbot_mass 5000
+set g_vehicle_spiderbot_bouncefactor 0 // Factor of old velocity to keep after colission
+set g_vehicle_spiderbot_bouncestop 0 // if != 0, New veloctiy after bounce = 0 if new velocity < this
+set g_vehicle_spiderbot_bouncepain "0 0 0" // "minspeed_for_pain speedchange_to_pain_factor max_damage"
set cl_vehicle_spiderbot_cross_alpha 0.4
set cl_vehicle_spiderbot_cross_size 1