seta hud_panel_weapons_timeout_speed_in "" "speed that fading/moving onto the screen occurs"
seta hud_panel_weapons_timeout_speed_out "" "speed that fading/moving off of the screen occurs"
seta hud_panel_weapons_label "" "1 = show number of weapon, 2 = show bound key of weapon, 3 = show name of weapon"
+seta hud_panel_weapons_label_scale "" "scale of the weapon text label"
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_ammo "" "show ammo as a status bar"
seta hud_panel_weapons_onlyowned "" "show only owned weapons"
// =========================
// ring around crosshair, used for various purposes (such as indicating bullets left in clip, vortex charge)
-seta crosshair_ring 1 "main cvar to enable or disable normal crosshair rings"
+seta crosshair_ring 1 "enable normal crosshair rings"
seta crosshair_ring_inner 0 "allow inner rings to be drawn too"
seta crosshair_ring_size 2 "ring size"
seta crosshair_ring_alpha 0.2 "ring alpha"
seta crosshair_ring_vortex_currentcharge_movingavg_rate 0.05
// minelayer ring
-seta crosshair_ring_minelayer 1
+seta crosshair_ring_minelayer 1 "draw a ring showing the current amount of layed mines"
seta crosshair_ring_minelayer_alpha 0.15
// hagar ring
-seta crosshair_ring_hagar 1
+seta crosshair_ring_hagar 1 "draw a ring showing the current charge of the hagar"
seta crosshair_ring_hagar_alpha 0.15
+// arc ring
+seta crosshair_ring_arc 1 "draw a ring showing arc's overheating"
+seta crosshair_ring_arc_hot_color "1 0 0"
+seta crosshair_ring_arc_cold_alpha 0.2
+seta crosshair_ring_arc_hot_alpha 0.5
+
// reload ring
-seta crosshair_ring_reload 1 "main cvar to enable or disable ammo crosshair rings"
+seta crosshair_ring_reload 1 "enable ammo crosshair rings"
seta crosshair_ring_reload_size 2.5 "reload ring size"
seta crosshair_ring_reload_alpha 0.2 "reload ring alpha"
_cl_playermodel models/player/erebus.iqm
_cl_playerskin 0
-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 (breaks image proportions)"
-seta cl_reticle_item_vortex 1 "draw aiming reticle for the vortex 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"
+seta cl_reticle 1 "enable zoom reticles"
+seta cl_reticle_stretch 0 "stretch reticles so they fit the screen (breaks image proportions)"
+seta cl_reticle_normal 1 "draw an aiminig reticle when zooming with the zoom button"
+seta cl_reticle_normal_alpha 1 "alpha of the normal reticle"
+seta cl_reticle_weapon 1 "draw custom aiming reticle when zooming with certain weapons"
+seta cl_reticle_weapon_alpha 1 "alpha of the custom reticle"
+
fov 100
seta cl_velocityzoom_enabled 0 "velocity based zooming of fov"
seta cl_velocityzoom_factor 0 "factor of fov zooming (negative values zoom out)"
--- /dev/null
+title Luma
+author sev
+
+// Image suffixes: c(licked), d(isabled), f(ocused), n(ormal), s(eektrack)
+// Background scaling: c(rop), h(eight), l(etterbox), s(tretch), w(idth)
+// Background positioning:
+// 7 8 9
+// 4 5 6
+// 1 2 3
+
+// background
+ALIGN_BACKGROUND c5h5
+ALIGN_BACKGROUND_INGAME c5h5
+ALPHA_BACKGROUND_INGAME 1
+ALPHA_DISABLED 0.2
+ALPHA_BEHIND 0.5
+
+// button
+COLOR_BUTTON_C '1 1 1'
+COLOR_BUTTON_D '1 1 1'
+COLOR_BUTTON_F '1 1 1'
+COLOR_BUTTON_N '1 1 1'
+
+// campaign
+ALPHA_CAMPAIGN_CURRENT 1
+COLOR_CAMPAIGN_CURRENT '0.96 0.99 1'
+ALPHA_CAMPAIGN_DESCRIPTION 0.8
+ALPHA_CAMPAIGN_FUTURE 0.2
+COLOR_CAMPAIGN_FUTURE '0.96 0.99 1'
+ALPHA_CAMPAIGN_SELECTABLE 0.6
+COLOR_CAMPAIGN_SELECTABLE '0.96 0.99 1'
+
+// charmap
+ALPHA_CHARMAP_CHAR 0.85
+COLOR_CHARMAP_CHAR '1 1 1'
+ALPHA_CHARMAP_FOCUS 0.85
+COLOR_CHARMAP_FOCUS '0.09 0.42 0.69'
+
+// checkbox
+COLOR_CHECKBOX_C '1 1 1'
+COLOR_CHECKBOX_D '1 1 1'
+COLOR_CHECKBOX_F '1 1 1'
+COLOR_CHECKBOX_N '1 1 1'
+
+// clearbutton
+COLOR_CLEARBUTTON_C '1 1 1'
+COLOR_CLEARBUTTON_F '1 1 1'
+COLOR_CLEARBUTTON_N '1 1 1'
+OFFSET_CLEARBUTTON 0
+
+// colorpicker
+MARGIN_COLORPICKER '0 0 0'
+
+// credits
+ALPHA_CREDITS_FUNCTION 1
+COLOR_CREDITS_FUNCTION '0.03 0.25 0.49'
+ALPHA_CREDITS_PERSON 0.8
+COLOR_CREDITS_PERSON '0.96 0.99 1'
+ALPHA_CREDITS_TITLE 1
+COLOR_CREDITS_TITLE '0.94 0.45 0.11'
+ROWS_CREDITS 20
+WIDTH_CREDITS 0.5
+
+// cursor
+SIZE_CURSOR '32 32 0'
+OFFSET_CURSOR '0.25 0.125 0'
+ALPHA_CURSOR_INTRO 0
+
+// cvarlist
+COLOR_CVARLIST_CHANGED '0.95 0.05 0.05'
+COLOR_CVARLIST_CONTROLS '1 0.2 0.15'
+COLOR_CVARLIST_UNCHANGED '1 1 1'
+ALPHA_CVARLIST_SAVED 0.85
+ALPHA_CVARLIST_TEMPORARY 0.55
+
+// dialog color
+COLOR_DIALOG_MULTIPLAYER '1 1 1'
+COLOR_DIALOG_SETTINGS '1 1 1'
+COLOR_DIALOG_TEAMSELECT '1 1 1'
+COLOR_DIALOG_SANDBOXTOOLS '1 1 1'
+COLOR_DIALOG_QUIT '1 1 1'
+COLOR_DIALOG_ADVANCED '1 1 1'
+COLOR_DIALOG_MUTATORS '1 1 1'
+COLOR_DIALOG_MAPINFO '1 1 1'
+COLOR_DIALOG_USERBIND '1 1 1'
+COLOR_DIALOG_SINGLEPLAYER '1 1 1'
+COLOR_DIALOG_CREDITS '1 1 1'
+COLOR_DIALOG_WEAPONS '1 1 1'
+COLOR_DIALOG_VIEW '1 1 1'
+COLOR_DIALOG_MODEL '1 1 1'
+COLOR_DIALOG_CROSSHAIR '1 1 1'
+COLOR_DIALOG_HUD '1 1 1'
+COLOR_DIALOG_SCREENSHOTVIEWER '1 1 1'
+COLOR_DIALOG_SERVERINFO '1 1 1'
+COLOR_DIALOG_FIRSTRUN '1 1 1'
+COLOR_DIALOG_CVARS '1 0.2 0.15'
+COLOR_DIALOG_HUDCONFIRM '1 0.2 0.15'
+
+// dialog margins
+HEIGHT_DIALOGBORDER 1
+MARGIN_TOP 8
+MARGIN_BOTTOM 12
+MARGIN_LEFT 16
+MARGIN_RIGHT 16
+MARGIN_COLUMNS 4
+MARGIN_ROWS 4
+
+// dialog scale transformation centers (NOT the actual positions)
+POSITION_DIALOG_MULTIPLAYER '0.9 0.4 0'
+POSITION_DIALOG_SINGLEPLAYER '0.15 0.4 0'
+POSITION_DIALOG_SETTINGS '0.5 1 0'
+POSITION_DIALOG_CREDITS '-0.05 1.2 0'
+POSITION_DIALOG_QUIT '1.05 1.2 0'
+
+// font
+ALPHA_TEXT 0.8
+COLOR_TEXT '0.96 0.99 1'
+ALPHA_HEADER 0.5
+COLOR_HEADER '0.96 0.99 1'
+FONTSIZE_NORMAL 12
+FONTSIZE_TITLE 16
+FONTSIZE_TOOLTIP 12
+HEIGHT_NORMAL 1.5
+HEIGHT_TITLE 1.5
+HEIGHT_ZOOMEDTITLE -1
+
+// inputbox
+COLOR_INPUTBOX_F '1 1 1'
+COLOR_INPUTBOX_N '1 1 1'
+MARGIN_INPUTBOX_CHARS 1
+
+// keygrabber
+ALPHA_KEYGRABBER_KEYS 0.8
+COLOR_KEYGRABBER_KEYS '0.96 0.99 1'
+ALPHA_KEYGRABBER_TITLES 1
+COLOR_KEYGRABBER_TITLES '0.03 0.25 0.49'
+
+// listbox
+ALPHA_LISTBOX_BACKGROUND 0.5
+COLOR_LISTBOX_BACKGROUND '0 0 0'
+ALPHA_LISTBOX_SELECTED 1
+COLOR_LISTBOX_SELECTED '0.97 0.56 0.27'
+ALPHA_LISTBOX_WAITING 0.8
+COLOR_LISTBOX_WAITING '0.73 0.82 0.9'
+
+// mainmenu
+ALPHAS_MAINMENU '0.8 0.9 1'
+
+// maplist
+COLOR_MAPLIST_AUTHOR '0.56 0.72 0.86'
+ALPHA_MAPLIST_INCLUDEDBG 0.3
+COLOR_MAPLIST_INCLUDEDBG '0.03 0.25 0.49'
+ALPHA_MAPLIST_INCLUDEDFG 1
+ALPHA_MAPLIST_NOTINCLUDEDFG 0.25
+COLOR_MAPLIST_TITLE '0.96 0.99 1'
+
+// modeltitle
+ALPHA_MODELTITLE 0.8
+COLOR_MODELTITLE '0.96 0.99 1'
+
+// radiobutton
+COLOR_RADIOBUTTON_C '1 1 1'
+COLOR_RADIOBUTTON_D '1 1 1'
+COLOR_RADIOBUTTON_F '1 1 1'
+COLOR_RADIOBUTTON_N '1 1 1'
+
+// serverinfo
+COLOR_SERVERINFO_IP '0.96 0.99 1'
+COLOR_SERVERINFO_NAME '0.94 0.45 0.11'
+
+// serverlist
+ALPHA_SERVERLIST_CATEGORY 1
+COLOR_SERVERLIST_CATEGORY '0.03 0.25 0.49'
+ALPHA_SERVERLIST_EMPTY 0.65
+ALPHA_SERVERLIST_FAVORITE 0.8
+COLOR_SERVERLIST_FAVORITE '1 1 1'
+ALPHA_SERVERLIST_FULL 0.4
+ALPHA_SERVERLIST_HIGHPING 0.4
+COLOR_SERVERLIST_HIGHPING '0.98 0.08 0.08'
+COLOR_SERVERLIST_LOWPING '0.08 0.98 0.08'
+COLOR_SERVERLIST_MEDPING '0.98 0.76 0.08'
+
+// skinlist
+COLOR_SKINLIST_AUTHOR '0.56 0.72 0.86'
+COLOR_SKINLIST_TITLE '0.96 0.99 1'
+
+// scrollbar
+COLOR_SCROLLBAR_C '1 1 1'
+COLOR_SCROLLBAR_F '1 1 1'
+COLOR_SCROLLBAR_N '1 1 1'
+COLOR_SCROLLBAR_S '1 1 1'
+WIDTH_SCROLLBAR 16
+
+// slider
+COLOR_SLIDER_C '1 1 1'
+COLOR_SLIDER_D '1 1 1'
+COLOR_SLIDER_F '1 1 1'
+COLOR_SLIDER_N '1 1 1'
+COLOR_SLIDER_S '1 1 1'
+TOLERANCE_SLIDER '0.2 2 0'
+WIDTH_SLIDERTEXT 0.333333333333
+
+// tooltip
+ALPHA_TOOLTIP 0.8
+COLOR_TOOLTIP '1 0.97 0.94'
+AVOID_TOOLTIP '8 8 0'
+BORDER_TOOLTIP '16 16 0'
+MARGIN_TOOLTIP '10 8 0'
+WIDTH_TOOLTIP 0.3
--- /dev/null
+seta hud_skin "luma"
+seta hud_panel_bg "0"
+seta hud_panel_bg_color "0 0.14 0.25"
+seta hud_panel_bg_color_team "1"
+seta hud_panel_bg_alpha "1"
+seta hud_panel_bg_border "2"
+seta hud_panel_bg_padding "3"
+seta hud_panel_fg_alpha "1"
+
+seta hud_dock "0"
+seta hud_dock_color "0 0 0"
+seta hud_dock_color_team "1"
+seta hud_dock_alpha "1"
+
+seta hud_progressbar_alpha "0.600000"
+seta hud_progressbar_health_color "0.83 0.12 0"
+seta hud_progressbar_armor_color "0.28 0.8 0"
+seta hud_progressbar_fuel_color "0.77 0.67 0"
+seta hud_progressbar_strength_color "0.86 0.35 0"
+seta hud_progressbar_shield_color "0.28 0.8 0"
+seta hud_progressbar_superweapons_color "0.77 0.67 0"
+seta hud_progressbar_nexball_color "0.2 0.65 0.93"
+seta hud_progressbar_speed_color "0.77 0.67 0"
+seta hud_progressbar_acceleration_color "0.2 0.65 0.93"
+seta hud_progressbar_acceleration_neg_color "0.86 0.35 0"
+
+seta _hud_panelorder "15 12 9 5 10 6 14 0 7 4 11 2 1 3 8 13 16 "
+
+seta hud_configure_grid "1"
+seta hud_configure_grid_xsize "0.005000"
+seta hud_configure_grid_ysize "0.005000"
+
+seta hud_panel_weapons 1
+seta hud_panel_weapons_pos "0.965000 0.120000"
+seta hud_panel_weapons_size "0.035000 0.770000"
+seta hud_panel_weapons_bg "border_default_east"
+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 "0"
+seta hud_panel_weapons_accuracy "0"
+seta hud_panel_weapons_label "1"
+seta hud_panel_weapons_label_scale "0.3"
+seta hud_panel_weapons_complainbubble "1"
+seta hud_panel_weapons_complainbubble_padding "0"
+seta hud_panel_weapons_complainbubble_time "0"
+seta hud_panel_weapons_complainbubble_fadetime "1"
+seta hud_panel_weapons_complainbubble_color_outofammo "0.8 0.11 0"
+seta hud_panel_weapons_complainbubble_color_donthave "0.88 0.75 0"
+seta hud_panel_weapons_complainbubble_color_unavailable "0 0.71 1"
+seta hud_panel_weapons_ammo "0"
+seta hud_panel_weapons_ammo_color "0.58 1 0.04"
+seta hud_panel_weapons_ammo_alpha "1"
+seta hud_panel_weapons_aspect "1"
+seta hud_panel_weapons_timeout "1"
+seta hud_panel_weapons_timeout_effect "1"
+seta hud_panel_weapons_timeout_fadebgmin "0.4"
+seta hud_panel_weapons_timeout_fadefgmin "0.4"
+seta hud_panel_weapons_timeout_speed_in "0.25"
+seta hud_panel_weapons_timeout_speed_out "0.75"
+seta hud_panel_weapons_onlyowned "1"
+
+seta hud_panel_ammo 1
+seta hud_panel_ammo_pos "0.330000 0.865000"
+seta hud_panel_ammo_size "0.340000 0.060000"
+seta hud_panel_ammo_bg "border_tab_south"
+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 "4"
+seta hud_panel_ammo_onlycurrent "0"
+seta hud_panel_ammo_noncurrent_alpha "0.6"
+seta hud_panel_ammo_noncurrent_scale "0.4"
+seta hud_panel_ammo_iconalign "0"
+seta hud_panel_ammo_progressbar "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_powerups_pos "0 0.270000"
+seta hud_panel_powerups_size "0.040000 0.415000"
+seta hud_panel_powerups_bg "border_default_west"
+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 "2"
+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_progressbar_superweapons "progressbar"
+seta hud_panel_powerups_text "1"
+
+seta hud_panel_healtharmor 1
+seta hud_panel_healtharmor_pos "0.300000 0.925000"
+seta hud_panel_healtharmor_size "0.400000 0.070000"
+seta hud_panel_healtharmor_bg "border_default_south"
+seta hud_panel_healtharmor_bg_color ""
+seta hud_panel_healtharmor_bg_color_team ""
+seta hud_panel_healtharmor_bg_alpha ""
+seta hud_panel_healtharmor_bg_border "4"
+seta hud_panel_healtharmor_bg_padding ""
+seta hud_panel_healtharmor_flip "0"
+seta hud_panel_healtharmor_iconalign "3"
+seta hud_panel_healtharmor_baralign "3"
+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_pos "0.730000 0.800000"
+seta hud_panel_notify_size "0.265000 0.200000"
+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 "0"
+seta hud_panel_notify_fontsize "0.8"
+seta hud_panel_notify_time "10"
+seta hud_panel_notify_fadetime "3"
+seta hud_panel_notify_icon_aspect "1"
+
+seta hud_panel_timer 1
+seta hud_panel_timer_pos "0.456000 0"
+seta hud_panel_timer_size "0.088000 0.030000"
+seta hud_panel_timer_bg "border_plain_north"
+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 1
+seta hud_panel_radar_pos "0 0"
+seta hud_panel_radar_size "0.200000 0.250000"
+seta hud_panel_radar_bg "border_corner_northwest"
+seta hud_panel_radar_bg_color ""
+seta hud_panel_radar_bg_color_team ""
+seta hud_panel_radar_bg_alpha ""
+seta hud_panel_radar_bg_border ""
+seta hud_panel_radar_bg_padding "1"
+seta hud_panel_radar_foreground_alpha "1"
+seta hud_panel_radar_rotation "0"
+seta hud_panel_radar_zoommode "0"
+seta hud_panel_radar_scale "8192"
+seta hud_panel_radar_maximized_scale "5120"
+seta hud_panel_radar_maximized_size "0.5 0.5"
+seta hud_panel_radar_maximized_rotation "1"
+seta hud_panel_radar_maximized_zoommode "3"
+
+seta hud_panel_score 1
+seta hud_panel_score_pos "0.880000 0"
+seta hud_panel_score_size "0.120000 0.080000"
+seta hud_panel_score_bg "border_corner_northeast"
+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 "1"
+seta hud_panel_score_rankings "1"
+
+seta hud_panel_racetimer 1
+seta hud_panel_racetimer_pos "0.360000 0.110000"
+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.740000 0.690000"
+seta hud_panel_vote_size "0.190000 0.090000"
+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.700000"
+
+seta hud_panel_modicons 1
+seta hud_panel_modicons_pos "0.370000 0.030000"
+seta hud_panel_modicons_size "0.260000 0.07000"
+seta hud_panel_modicons_bg "border_fading_north"
+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 "4"
+seta hud_panel_modicons_bg_padding "0"
+seta hud_panel_modicons_ca_layout "1"
+seta hud_panel_modicons_dom_layout "1"
+seta hud_panel_modicons_freezetag_layout "1"
+
+seta hud_panel_pressedkeys 1
+seta hud_panel_pressedkeys_pos "0.445000 0.730000"
+seta hud_panel_pressedkeys_size "0.110000 0.090000"
+seta hud_panel_pressedkeys_bg " "
+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 "1"
+seta hud_panel_pressedkeys_aspect "1.600000"
+seta hud_panel_pressedkeys_attack "0"
+
+seta hud_panel_chat 1
+seta hud_panel_chat_pos "0.010000 0.700000"
+seta hud_panel_chat_size "0.460000 0.190000"
+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.930000 0.970000"
+seta hud_panel_engineinfo_size "0.070000 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.720000 0.100000"
+seta hud_panel_infomessages_size "0.280000 0.080000"
+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.410000 0.630000"
+seta hud_panel_physics_size "0.180000 0.080000"
+seta hud_panel_physics_bg "0"
+seta hud_panel_physics_bg_color ""
+seta hud_panel_physics_bg_color_team ""
+seta hud_panel_physics_bg_alpha "0.700000"
+seta hud_panel_physics_bg_border ""
+seta hud_panel_physics_bg_padding ""
+seta hud_panel_physics_speed_unit "1"
+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 "1"
+seta hud_panel_physics_acceleration_progressbar_mode "0"
+seta hud_panel_physics_acceleration_progressbar_scale "1"
+seta hud_panel_physics_acceleration_progressbar_nonlinear "0"
+seta hud_panel_physics_text "1"
+seta hud_panel_physics_text_scale "0.7"
+
+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"
+
+seta hud_panel_buffs 1
+seta hud_panel_buffs_pos "0.435000 0.840000"
+seta hud_panel_buffs_size "0.125000 0.035000"
+seta hud_panel_buffs_bg "0"
+seta hud_panel_buffs_bg_color ""
+seta hud_panel_buffs_bg_color_team ""
+seta hud_panel_buffs_bg_alpha ""
+seta hud_panel_buffs_bg_border ""
+seta hud_panel_buffs_bg_padding ""
+
+menu_sync
seta hud_panel_weapons_bg_padding "4"
seta hud_panel_weapons_accuracy "1"
seta hud_panel_weapons_label "1"
+seta hud_panel_weapons_label_scale "0.5"
seta hud_panel_weapons_complainbubble "1"
seta hud_panel_weapons_complainbubble_padding "-1"
seta hud_panel_weapons_complainbubble_time "0"
seta hud_panel_weapons_bg_padding ""
seta hud_panel_weapons_accuracy "1"
seta hud_panel_weapons_label "1"
+seta hud_panel_weapons_label_scale "0.5"
seta hud_panel_weapons_complainbubble "1"
seta hud_panel_weapons_complainbubble_padding "-1"
seta hud_panel_weapons_complainbubble_time "0"
seta hud_panel_weapons_bg_padding ""
seta hud_panel_weapons_accuracy "1"
seta hud_panel_weapons_label "1"
+seta hud_panel_weapons_label_scale "0.5"
seta hud_panel_weapons_complainbubble "1"
seta hud_panel_weapons_complainbubble_padding "-1"
seta hud_panel_weapons_complainbubble_time "0"
seta hud_panel_weapons_bg_padding ""
seta hud_panel_weapons_accuracy "1"
seta hud_panel_weapons_label "1"
+seta hud_panel_weapons_label_scale "0.5"
seta hud_panel_weapons_complainbubble "1"
seta hud_panel_weapons_complainbubble_padding "-1"
seta hud_panel_weapons_complainbubble_time "0"
seta hud_panel_weapons_bg_padding "-5"
seta hud_panel_weapons_accuracy "1"
seta hud_panel_weapons_label "1"
+seta hud_panel_weapons_label_scale "0.5"
seta hud_panel_weapons_complainbubble "1"
seta hud_panel_weapons_complainbubble_padding "-1"
seta hud_panel_weapons_complainbubble_time "0"
--- /dev/null
+Plane,a_bullets_luma
--- /dev/null
+Plane,a_cells_luma
--- /dev/null
+Plane,a_cells_luma
--- /dev/null
+Plane,a_rockets_luma
--- /dev/null
+Plane,a_shells_luma
--- /dev/null
+Plane,g_fuel_luma
--- /dev/null
+Plane,g_fuelregen_luma
--- /dev/null
+Plane,g_h100_luma
--- /dev/null
+Plane,g_h1_luma
--- /dev/null
+Plane,g_h25_luma
--- /dev/null
+Plane,g_h50_luma
--- /dev/null
+Plane,g_invincible_luma
--- /dev/null
+Plane,g_jetpack_luma
--- /dev/null
+Plane,g_strength_luma
--- /dev/null
+Plane,item_armor_big_luma
--- /dev/null
+Plane,item_armor_large_luma
--- /dev/null
+Plane,item_armor_medium_luma
--- /dev/null
+Plane,item_armor_small_luma
--- /dev/null
+Plane,g_arc_luma
--- /dev/null
+Plane,g_campingrifle_luma
--- /dev/null
+Plane,g_crylink_luma
--- /dev/null
+Plane,g_electro_luma
--- /dev/null
+Plane,g_fireball_luma
--- /dev/null
+Plane,g_gl_luma
--- /dev/null
+Plane,g_hagar_luma
--- /dev/null
+Plane,g_hlac_luma
--- /dev/null
+Plane,g_hookgun_luma
--- /dev/null
+Plane,g_laser_luma
--- /dev/null
+Plane,g_minelayer_luma
--- /dev/null
+Plane,g_minstanex_luma
--- /dev/null
+Plane,g_nex_luma
--- /dev/null
+Plane,g_porto_luma
--- /dev/null
+Plane,g_rl_luma
--- /dev/null
+Plane,g_seeker_luma
--- /dev/null
+Plane,g_shockwave_luma
--- /dev/null
+Plane,g_shotgun_luma
--- /dev/null
+Plane,g_tuba_luma
--- /dev/null
+Plane,g_uzi_luma
seta notification_ANNCE_VOTE_CALL "2" "0 = disabled, 1 = enabled if gentle mode is off, 2 = always enabled"
seta notification_ANNCE_VOTE_FAIL "2" "0 = disabled, 1 = enabled if gentle mode is off, 2 = always enabled"
-// MSG_INFO notifications (count = 244):
+// MSG_INFO notifications (count = 259):
seta notification_INFO_CHAT_NOSPECTATORS "2" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
+seta notification_INFO_COINTOSS "2" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
+seta notification_INFO_JETPACK_NOFUEL "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
+seta notification_INFO_SUPERSPEC_MISSING_UID "2" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
+seta notification_INFO_CA_JOIN_LATE "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
+seta notification_INFO_CA_LEAVE "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
seta notification_INFO_CTF_CAPTURE_RED "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
seta notification_INFO_CTF_CAPTURE_BLUE "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
seta notification_INFO_CTF_CAPTURE_BROKEN_RED "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
seta notification_INFO_WATERMARK "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
seta notification_INFO_WEAPON_ACCORDEON_MURDER "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
seta notification_INFO_WEAPON_ACCORDEON_SUICIDE "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
+seta notification_INFO_WEAPON_ARC_MURDER "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
+seta notification_INFO_WEAPON_BLASTER_MURDER "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
+seta notification_INFO_WEAPON_BLASTER_SUICIDE "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
seta notification_INFO_WEAPON_CRYLINK_MURDER "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
seta notification_INFO_WEAPON_CRYLINK_SUICIDE "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
+seta notification_INFO_WEAPON_DEVASTATOR_MURDER_DIRECT "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
+seta notification_INFO_WEAPON_DEVASTATOR_MURDER_SPLASH "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
+seta notification_INFO_WEAPON_DEVASTATOR_SUICIDE "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
seta notification_INFO_WEAPON_ELECTRO_MURDER_BOLT "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
seta notification_INFO_WEAPON_ELECTRO_MURDER_COMBO "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
seta notification_INFO_WEAPON_ELECTRO_MURDER_ORBS "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
seta notification_INFO_WEAPON_HAGAR_SUICIDE "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
seta notification_INFO_WEAPON_HLAC_MURDER "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
seta notification_INFO_WEAPON_HLAC_SUICIDE "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
+seta notification_INFO_WEAPON_HMG_MURDER_SNIPE "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
+seta notification_INFO_WEAPON_HMG_MURDER_SPRAY "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
seta notification_INFO_WEAPON_HOOK_MURDER "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
seta notification_INFO_WEAPON_KLEINBOTTLE_MURDER "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
seta notification_INFO_WEAPON_KLEINBOTTLE_SUICIDE "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
-seta notification_INFO_WEAPON_LASER_MURDER "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
-seta notification_INFO_WEAPON_LASER_SUICIDE "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
+seta notification_INFO_WEAPON_MACHINEGUN_MURDER_SNIPE "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
+seta notification_INFO_WEAPON_MACHINEGUN_MURDER_SPRAY "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
+seta notification_INFO_WEAPON_MINELAYER_LIMIT "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
seta notification_INFO_WEAPON_MINELAYER_MURDER "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
seta notification_INFO_WEAPON_MINELAYER_SUICIDE "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
-seta notification_INFO_WEAPON_MINSTANEX_MURDER "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
seta notification_INFO_WEAPON_MORTAR_MURDER_BOUNCE "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
seta notification_INFO_WEAPON_MORTAR_MURDER_EXPLODE "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
seta notification_INFO_WEAPON_MORTAR_SUICIDE_BOUNCE "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
seta notification_INFO_WEAPON_MORTAR_SUICIDE_EXPLODE "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
-seta notification_INFO_WEAPON_NEX_MURDER "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
seta notification_INFO_WEAPON_RIFLE_MURDER "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
seta notification_INFO_WEAPON_RIFLE_MURDER_HAIL "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
seta notification_INFO_WEAPON_RIFLE_MURDER_HAIL_PIERCING "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
seta notification_INFO_WEAPON_RIFLE_MURDER_PIERCING "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
-seta notification_INFO_WEAPON_ROCKETLAUNCHER_MURDER_DIRECT "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
-seta notification_INFO_WEAPON_ROCKETLAUNCHER_MURDER_SPLASH "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
-seta notification_INFO_WEAPON_ROCKETLAUNCHER_SUICIDE "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
+seta notification_INFO_WEAPON_RPC_MURDER_DIRECT "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
+seta notification_INFO_WEAPON_RPC_MURDER_SPLASH "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
+seta notification_INFO_WEAPON_RPC_SUICIDE_DIRECT "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
+seta notification_INFO_WEAPON_RPC_SUICIDE_SPLASH "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
seta notification_INFO_WEAPON_SEEKER_MURDER_SPRAY "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
seta notification_INFO_WEAPON_SEEKER_MURDER_TAG "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
seta notification_INFO_WEAPON_SEEKER_SUICIDE "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
+seta notification_INFO_WEAPON_SHOCKWAVE_MURDER "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
+seta notification_INFO_WEAPON_SHOCKWAVE_MURDER_SLAP "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
seta notification_INFO_WEAPON_SHOTGUN_MURDER "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
seta notification_INFO_WEAPON_SHOTGUN_MURDER_SLAP "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
seta notification_INFO_WEAPON_THINKING_WITH_PORTALS "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
seta notification_INFO_WEAPON_TUBA_MURDER "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
seta notification_INFO_WEAPON_TUBA_SUICIDE "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
-seta notification_INFO_WEAPON_UZI_MURDER_SNIPE "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
-seta notification_INFO_WEAPON_UZI_MURDER_SPRAY "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
+seta notification_INFO_WEAPON_VAPORIZER_MURDER "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
+seta notification_INFO_WEAPON_VORTEX_MURDER "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
-// MSG_CENTER notifications (count = 161):
+// MSG_CENTER notifications (count = 170):
+seta notification_CENTER_ALONE "1" "0 = off, 1 = centerprint"
seta notification_CENTER_ASSAULT_ATTACKING "1" "0 = off, 1 = centerprint"
seta notification_CENTER_ASSAULT_DEFENDING "1" "0 = off, 1 = centerprint"
seta notification_CENTER_COUNTDOWN_BEGIN "1" "0 = off, 1 = centerprint"
seta notification_CENTER_ROUND_TIED "1" "0 = off, 1 = centerprint"
seta notification_CENTER_ROUND_OVER "1" "0 = off, 1 = centerprint"
seta notification_CENTER_CAMPCHECK "1" "0 = off, 1 = centerprint"
+seta notification_CENTER_COINTOSS "1" "0 = off, 1 = centerprint"
seta notification_CENTER_CTF_CAPTURESHIELD_FREE "1" "0 = off, 1 = centerprint"
seta notification_CENTER_CTF_CAPTURESHIELD_SHIELDED "1" "0 = off, 1 = centerprint"
seta notification_CENTER_CTF_CAPTURE_RED "1" "0 = off, 1 = centerprint"
seta notification_CENTER_KEYHUNT_START_YELLOW "1" "0 = off, 1 = centerprint"
seta notification_CENTER_KEYHUNT_START_PINK "1" "0 = off, 1 = centerprint"
seta notification_CENTER_KEYHUNT_WAIT "1" "0 = off, 1 = centerprint"
+seta notification_CENTER_LMS_NOLIVES "1" "0 = off, 1 = centerprint"
seta notification_CENTER_MISSING_TEAMS "1" "0 = off, 1 = centerprint"
seta notification_CENTER_MISSING_PLAYERS "1" "0 = off, 1 = centerprint"
seta notification_CENTER_INSTAGIB_FINDAMMO "1" "0 = off, 1 = centerprint"
seta notification_CENTER_INSTAGIB_FINDAMMO_FIRST "1" "0 = off, 1 = centerprint"
seta notification_CENTER_INSTAGIB_LIVES_REMAINING "1" "0 = off, 1 = centerprint"
-seta notification_CENTER_INSTAGIB_SECONDARY "1" "0 = off, 1 = centerprint"
seta notification_CENTER_MOTD "1" "0 = off, 1 = centerprint"
seta notification_CENTER_NIX_COUNTDOWN "1" "0 = off, 1 = centerprint"
seta notification_CENTER_NIX_NEWWEAPON "1" "0 = off, 1 = centerprint"
seta notification_CENTER_NADE "1" "0 = off, 1 = centerprint"
+seta notification_CENTER_ONS_NOTSHIELDED "1" "0 = off, 1 = centerprint"
seta notification_CENTER_OVERTIME_FRAG "1" "0 = off, 1 = centerprint"
+seta notification_CENTER_OVERTIME_CONTROLPOINT "1" "0 = off, 1 = centerprint"
seta notification_CENTER_OVERTIME_TIME "1" "0 = off, 1 = centerprint"
+seta notification_CENTER_PORTO_CREATED_IN "1" "0 = off, 1 = centerprint"
+seta notification_CENTER_PORTO_CREATED_OUT "1" "0 = off, 1 = centerprint"
+seta notification_CENTER_PORTO_FAILED "1" "0 = off, 1 = centerprint"
seta notification_CENTER_POWERDOWN_INVISIBILITY "1" "0 = off, 1 = centerprint"
seta notification_CENTER_POWERDOWN_SHIELD "1" "0 = off, 1 = centerprint"
seta notification_CENTER_POWERDOWN_SPEED "1" "0 = off, 1 = centerprint"
seta notification_CENTER_POWERUP_SPEED "1" "0 = off, 1 = centerprint"
seta notification_CENTER_POWERUP_STRENGTH "1" "0 = off, 1 = centerprint"
seta notification_CENTER_RACE_FINISHLAP "1" "0 = off, 1 = centerprint"
+seta notification_CENTER_SECONDARY_NODAMAGE "1" "0 = off, 1 = centerprint"
seta notification_CENTER_SEQUENCE_COMPLETED "1" "0 = off, 1 = centerprint"
seta notification_CENTER_SEQUENCE_COUNTER "1" "0 = off, 1 = centerprint"
seta notification_CENTER_SEQUENCE_COUNTER_FEWMORE "1" "0 = off, 1 = centerprint"
seta notification_CENTER_TEAMCHANGE_SUICIDE "1" "0 = off, 1 = centerprint"
seta notification_CENTER_TIMEOUT_BEGINNING "1" "0 = off, 1 = centerprint"
seta notification_CENTER_TIMEOUT_ENDING "1" "0 = off, 1 = centerprint"
+seta notification_CENTER_WEAPON_MINELAYER_LIMIT "1" "0 = off, 1 = centerprint"
-// MSG_MULTI notifications (count = 141):
+// MSG_MULTI notifications (count = 152):
seta notification_DEATH_MURDER_CHEAT "1" "Enable this multiple notification"
seta notification_DEATH_MURDER_DROWN "1" "Enable this multiple notification"
seta notification_DEATH_MURDER_FALL "1" "Enable this multiple notification"
seta notification_ITEM_WEAPON_NOAMMO "1" "Enable this multiple notification"
seta notification_ITEM_WEAPON_PRIMORSEC "1" "Enable this multiple notification"
seta notification_ITEM_WEAPON_UNAVAILABLE "1" "Enable this multiple notification"
+seta notification_MULTI_COINTOSS "1" "Enable this multiple notification"
seta notification_MULTI_COUNTDOWN_BEGIN "1" "Enable this multiple notification"
seta notification_MULTI_INSTAGIB_FINDAMMO "1" "Enable this multiple notification"
seta notification_WEAPON_ACCORDEON_MURDER "1" "Enable this multiple notification"
seta notification_WEAPON_ACCORDEON_SUICIDE "1" "Enable this multiple notification"
+seta notification_WEAPON_ARC_MURDER "1" "Enable this multiple notification"
+seta notification_WEAPON_BLASTER_MURDER "1" "Enable this multiple notification"
+seta notification_WEAPON_BLASTER_SUICIDE "1" "Enable this multiple notification"
seta notification_WEAPON_CRYLINK_MURDER "1" "Enable this multiple notification"
seta notification_WEAPON_CRYLINK_SUICIDE "1" "Enable this multiple notification"
+seta notification_WEAPON_DEVASTATOR_MURDER_DIRECT "1" "Enable this multiple notification"
+seta notification_WEAPON_DEVASTATOR_MURDER_SPLASH "1" "Enable this multiple notification"
+seta notification_WEAPON_DEVASTATOR_SUICIDE "1" "Enable this multiple notification"
seta notification_WEAPON_ELECTRO_MURDER_BOLT "1" "Enable this multiple notification"
seta notification_WEAPON_ELECTRO_MURDER_COMBO "1" "Enable this multiple notification"
seta notification_WEAPON_ELECTRO_MURDER_ORBS "1" "Enable this multiple notification"
seta notification_WEAPON_HAGAR_SUICIDE "1" "Enable this multiple notification"
seta notification_WEAPON_HLAC_MURDER "1" "Enable this multiple notification"
seta notification_WEAPON_HLAC_SUICIDE "1" "Enable this multiple notification"
+seta notification_WEAPON_HMG_MURDER_SNIPE "1" "Enable this multiple notification"
+seta notification_WEAPON_HMG_MURDER_SPRAY "1" "Enable this multiple notification"
seta notification_WEAPON_HOOK_MURDER "1" "Enable this multiple notification"
seta notification_WEAPON_KLEINBOTTLE_MURDER "1" "Enable this multiple notification"
seta notification_WEAPON_KLEINBOTTLE_SUICIDE "1" "Enable this multiple notification"
-seta notification_WEAPON_LASER_MURDER "1" "Enable this multiple notification"
-seta notification_WEAPON_LASER_SUICIDE "1" "Enable this multiple notification"
+seta notification_WEAPON_MACHINEGUN_MURDER_SNIPE "1" "Enable this multiple notification"
+seta notification_WEAPON_MACHINEGUN_MURDER_SPRAY "1" "Enable this multiple notification"
+seta notification_WEAPON_MINELAYER_LIMIT "1" "Enable this multiple notification"
seta notification_WEAPON_MINELAYER_MURDER "1" "Enable this multiple notification"
seta notification_WEAPON_MINELAYER_SUICIDE "1" "Enable this multiple notification"
-seta notification_WEAPON_MINSTANEX_MURDER "1" "Enable this multiple notification"
seta notification_WEAPON_MORTAR_MURDER_BOUNCE "1" "Enable this multiple notification"
seta notification_WEAPON_MORTAR_MURDER_EXPLODE "1" "Enable this multiple notification"
seta notification_WEAPON_MORTAR_SUICIDE_BOUNCE "1" "Enable this multiple notification"
seta notification_WEAPON_MORTAR_SUICIDE_EXPLODE "1" "Enable this multiple notification"
-seta notification_WEAPON_NEX_MURDER "1" "Enable this multiple notification"
seta notification_WEAPON_RIFLE_MURDER "1" "Enable this multiple notification"
seta notification_WEAPON_RIFLE_MURDER_HAIL "1" "Enable this multiple notification"
seta notification_WEAPON_RIFLE_MURDER_HAIL_PIERCING "1" "Enable this multiple notification"
seta notification_WEAPON_RIFLE_MURDER_PIERCING "1" "Enable this multiple notification"
-seta notification_WEAPON_ROCKETLAUNCHER_MURDER_DIRECT "1" "Enable this multiple notification"
-seta notification_WEAPON_ROCKETLAUNCHER_MURDER_SPLASH "1" "Enable this multiple notification"
-seta notification_WEAPON_ROCKETLAUNCHER_SUICIDE "1" "Enable this multiple notification"
+seta notification_WEAPON_RPC_MURDER_DIRECT "1" "Enable this multiple notification"
+seta notification_WEAPON_RPC_MURDER_SPLASH "1" "Enable this multiple notification"
+seta notification_WEAPON_RPC_SUICIDE_DIRECT "1" "Enable this multiple notification"
+seta notification_WEAPON_RPC_SUICIDE_SPLASH "1" "Enable this multiple notification"
seta notification_WEAPON_SEEKER_MURDER_SPRAY "1" "Enable this multiple notification"
seta notification_WEAPON_SEEKER_MURDER_TAG "1" "Enable this multiple notification"
seta notification_WEAPON_SEEKER_SUICIDE "1" "Enable this multiple notification"
+seta notification_WEAPON_SHOCKWAVE_MURDER "1" "Enable this multiple notification"
+seta notification_WEAPON_SHOCKWAVE_MURDER_SLAP "1" "Enable this multiple notification"
seta notification_WEAPON_SHOTGUN_MURDER "1" "Enable this multiple notification"
seta notification_WEAPON_SHOTGUN_MURDER_SLAP "1" "Enable this multiple notification"
seta notification_WEAPON_THINKING_WITH_PORTALS "1" "Enable this multiple notification"
seta notification_WEAPON_TUBA_MURDER "1" "Enable this multiple notification"
seta notification_WEAPON_TUBA_SUICIDE "1" "Enable this multiple notification"
-seta notification_WEAPON_UZI_MURDER_SNIPE "1" "Enable this multiple notification"
-seta notification_WEAPON_UZI_MURDER_SPRAY "1" "Enable this multiple notification"
+seta notification_WEAPON_VAPORIZER_MURDER "1" "Enable this multiple notification"
+seta notification_WEAPON_VORTEX_MURDER "1" "Enable this multiple notification"
// MSG_CHOICE notifications (count = 12):
seta notification_CHOICE_CTF_CAPTURE_BROKEN_RED "1" "Choice for this notification 0 = off, 1 = default message, 2 = verbose message"
seta notification_show_sprees_info_newline "1" "Show attacker spree information for MSG_INFO messages on a separate line than the death notification itself"
seta notification_show_sprees_info_specialonly "1" "Don't show attacker spree information in MSG_INFO messages if it isn't an achievement"
-// Notification counts (total = 647): MSG_ANNCE = 89, MSG_INFO = 244, MSG_CENTER = 161, MSG_MULTI = 141, MSG_CHOICE = 12
+// Notification counts (total = 682): MSG_ANNCE = 89, MSG_INFO = 259, MSG_CENTER = 170, MSG_MULTI = 152, MSG_CHOICE = 12
}
else // countdown is still going
{
+ // if concomitant countdown to round start overrides countdown to game start
if(roundstarttime == starttime)
{
Local_Notification(MSG_CENTER, CENTER_COUNTDOWN_ROUNDSTART, countdown_rounded);
if(previous_game_starttime != startTime)
{
- if((time + 5.0) < startTime) // if connecting to server while restart was active don't always play prepareforbattle
- Local_Notification(MSG_ANNCE, ANNCE_PREPARE);
-
if(time < startTime)
{
entity e = find(world, classname, "announcer_countdown");
e.classname = "announcer_countdown";
e.think = Announcer_Countdown;
}
+
+ if(time + 5.0 < startTime) // if connecting to server while restart was active don't always play prepareforbattle
+ if(time > e.nextthink) // don't play it again if countdown was already going
+ Local_Notification(MSG_ANNCE, ANNCE_PREPARE);
+
e.nextthink = startTime - floor(startTime - time); //synchronize nextthink to startTime
}
}
float autocvar_hud_panel_weapons_complainbubble_padding;
float autocvar_hud_panel_weapons_complainbubble_time;
float autocvar_hud_panel_weapons_label;
+float autocvar_hud_panel_weapons_label_scale = 0.5;
float autocvar_hud_panel_weapons_onlyowned;
float autocvar_hud_panel_weapons_timeout;
float autocvar_hud_panel_weapons_timeout_effect;
float i, f, a;
float screen_ar, center_x = 0, center_y;
float weapon_count, weapon_id;
- float row, column, rows = 0, columns;
+ float row, column, rows = 0, columns = 0;
float aspect = autocvar_hud_panel_weapons_aspect;
float panel_weapon_accuracy;
float fadetime = max(0, autocvar_hud_panel_weapons_complainbubble_fadetime);
vector weapon_pos, weapon_size = '0 0 0';
- local noref vector old_panel_size; // fteqcc sucks
+ local noref vector max_panel_size; // fteqcc sucks
vector color;
// check to see if we want to continue
return;
}
- old_panel_size = panel_size;
- if(panel_bg_padding)
- old_panel_size -= '2 2 0' * panel_bg_padding;
+ max_panel_size = panel_size - '2 2 0' * panel_bg_padding;
- // first find values for the standard table (with all the weapons)
- rows = old_panel_size_y/old_panel_size_x;
- rows = bound(1, floor((sqrt(4 * aspect * rows * WEP_COUNT + rows * rows) + rows + 0.5) / 2), WEP_COUNT);
- columns = ceil(WEP_COUNT/rows);
- weapon_size_x = old_panel_size_x / columns;
- weapon_size_y = old_panel_size_y / rows;
-
- // change table values to include only the owned weapons
- float columns_save = columns;
- if(weapon_count <= rows)
+ // calculate distribution and size of table cells
+ if(max_panel_size_x > max_panel_size_y)
{
- rows = weapon_count;
- columns = 1;
+ while(weapon_count > columns * rows)
+ {
+ ++rows;
+ columns = ceil(max_panel_size_x / (max_panel_size_y / rows * aspect));
+ }
+
+ weapon_size_x = max_panel_size_x / columns;
+ weapon_size_y = max_panel_size_y / rows;
+ columns = ceil(weapon_count / rows);
}
else
- columns = ceil(weapon_count / rows);
+ {
+ while(weapon_count > columns * rows)
+ {
+ ++columns;
+ rows = ceil(max_panel_size_y / (max_panel_size_x / columns / aspect));
+ }
- // enlarge weapon_size to match desired aspect ratio in order to capitalize on panel space
- if(columns < columns_save)
- weapon_size_x = min(old_panel_size_x / columns, aspect * weapon_size_y);
+ weapon_size_x = max_panel_size_x / columns;
+ weapon_size_y = max_panel_size_y / rows;
+ rows = ceil(weapon_count / columns);
+ }
// reduce size of the panel
panel_size_x = columns * weapon_size_x;
panel_size_y = rows * weapon_size_y;
- panel_pos_x += (old_panel_size_x - panel_size_x) / 2;
- panel_pos_y += (old_panel_size_y - panel_size_y) / 2;
- if(panel_bg_padding)
- panel_size += '2 2 0' * panel_bg_padding;
+ panel_pos_x += (max_panel_size_x - panel_size_x) / 2;
+ panel_pos_y += (max_panel_size_y - panel_size_y) / 2;
+
+ panel_size += '2 2 0' * panel_bg_padding;
}
else
weapon_count = WEP_COUNT;
if(autocvar_hud_panel_weapons_accuracy)
Accuracy_LoadColors();
+ // draw items
row = column = 0;
+ vector label_size = '1 1 0' * min(weapon_size_x, weapon_size_y) * bound(0, autocvar_hud_panel_weapons_label_scale, 1);
for(i = 0; i <= WEP_LAST-WEP_FIRST; ++i)
{
// retrieve information about the current weapon to be drawn
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);
+ drawstring(weapon_pos, ftos(weapon_id), label_size, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
break;
case 2: // bind
- drawstring(weapon_pos, getcommandkey(ftos(weapon_id), strcat("weapon_group_", ftos(weapon_id))), '1 1 0' * 0.5 * weapon_size_y, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
+ drawstring(weapon_pos, getcommandkey(ftos(weapon_id), strcat("weapon_group_", ftos(weapon_id))), label_size, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
break;
case 3: // weapon name
- drawstring(weapon_pos, strtolower(self.message), '1 1 0' * 0.5 * weapon_size_y, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
+ drawstring(weapon_pos, strtolower(self.message), label_size, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
break;
default: // nothing
}
// Keyhunt HUD modicon section
-float kh_runheretime;
-
-void HUD_Mod_KH_Reset(void)
-{
- kh_runheretime = 0;
-}
+vector KH_SLOTS[4];
void HUD_Mod_KH(vector pos, vector mySize)
{
mod_active = 1; // keyhunt should never hide the mod icons panel
- float kh_keys;
- float keyteam;
- float a, aa;
- vector p = '0 0 0', pa, kh_size = '0 0 0', kh_asize = '0 0 0';
- kh_keys = getstati(STAT_KH_KEYS);
+ // Read current state
- p_x = pos_x;
- if(mySize_x > mySize_y)
- {
- p_y = pos_y + 0.25 * mySize_y;
- pa = p - eY * 0.25 * mySize_y;
+ float state = getstati(STAT_KH_KEYS);
+ float i, key_state;
+ float all_keys, team1_keys, team2_keys, team3_keys, team4_keys, dropped_keys, carrying_keys;
+ all_keys = team1_keys = team2_keys = team3_keys = team4_keys = dropped_keys = carrying_keys = 0;
- kh_size_x = mySize_x * 0.25;
- kh_size_y = 0.75 * mySize_y;
- kh_asize_x = mySize_x * 0.25;
- kh_asize_y = mySize_y * 0.25;
- }
- else
+ for(i = 0; i < 4; ++i)
{
- p_y = pos_y + 0.125 * mySize_y;
- pa = p - eY * 0.125 * mySize_y;
+ key_state = (bitshift(state, i * -5) & 31) - 1;
- kh_size_x = mySize_x * 0.5;
- kh_size_y = 0.375 * mySize_y;
- kh_asize_x = mySize_x * 0.5;
- kh_asize_y = mySize_y * 0.125;
- }
+ if(key_state == -1)
+ continue;
- float i, key;
+ if(key_state == 30)
+ {
+ ++carrying_keys;
+ key_state = myteam;
+ }
- float keycount;
- keycount = 0;
- for(i = 0; i < 4; ++i)
- {
- key = floor(kh_keys / pow(32, i)) & 31;
- keyteam = key - 1;
- if(keyteam == 30 && keycount <= 4)
- keycount += 4;
- if(keyteam == myteam || keyteam == -1 || keyteam == 30)
- keycount += 1;
+ switch(key_state)
+ {
+ case NUM_TEAM_1: ++team1_keys; break;
+ case NUM_TEAM_2: ++team2_keys; break;
+ case NUM_TEAM_3: ++team3_keys; break;
+ case NUM_TEAM_4: ++team4_keys; break;
+ case 29: ++dropped_keys; break;
+ }
+
+ ++all_keys;
}
- // this yields 8 exactly if "RUN HERE" shows
+ // Calculate slot measurements
- if(keycount == 8)
+ vector slot_size;
+
+ if(all_keys == 4 && mySize_x * 0.5 < mySize_y && mySize_y * 0.5 < mySize_x)
{
- if(!kh_runheretime)
- kh_runheretime = time;
- pa_y -= fabs(sin((time - kh_runheretime) * 3.5)) * 6; // make the arrows jump in case of RUN HERE
+ // Quadratic arrangement
+ slot_size = eX * mySize_x * 0.5 + eY * mySize_y * 0.5;
+ KH_SLOTS[0] = pos;
+ KH_SLOTS[1] = pos + eX * slot_size_x;
+ KH_SLOTS[2] = pos + eY * slot_size_y;
+ KH_SLOTS[3] = pos + eX * slot_size_x + eY * slot_size_y;
}
else
- kh_runheretime = 0;
-
- for(i = 0; i < 4; ++i)
{
- key = floor(kh_keys / pow(32, i)) & 31;
- keyteam = key - 1;
- switch(keyteam)
+ if(mySize_x > mySize_y)
{
- case 30: // my key
- keyteam = myteam;
- a = 1;
- aa = 1;
- break;
- case -1: // no key
- a = 0;
- aa = 0;
- break;
- default: // owned or dropped
- a = 0.2;
- aa = 0.5;
- break;
+ // Horizontal arrangement
+ slot_size = eX * mySize_x / all_keys + eY * mySize_y;
+ for(i = 0; i < all_keys; ++i)
+ KH_SLOTS[i] = pos + eX * slot_size_x * i;
}
- a = a * panel_fg_alpha;
- aa = aa * panel_fg_alpha;
- if(a > 0)
+ else
{
- switch(keyteam)
- {
- case NUM_TEAM_1:
- drawpic_aspect_skin(pa, "kh_redarrow", kh_asize, '1 1 1', aa, DRAWFLAG_NORMAL); // show 30% theAlpha key
- break;
- case NUM_TEAM_2:
- drawpic_aspect_skin(pa, "kh_bluearrow", kh_asize, '1 1 1', aa, DRAWFLAG_NORMAL); // show 30% theAlpha key
- break;
- case NUM_TEAM_3:
- drawpic_aspect_skin(pa, "kh_yellowarrow", kh_asize, '1 1 1', aa, DRAWFLAG_NORMAL); // show 30% theAlpha key
- break;
- case NUM_TEAM_4:
- drawpic_aspect_skin(pa, "kh_pinkarrow", kh_asize, '1 1 1', aa, DRAWFLAG_NORMAL); // show 30% theAlpha key
- break;
- default:
- break;
- }
- switch(i) // YAY! switch(i) inside a for loop for i. DailyWTF, here we come!
- {
- case 0:
- drawpic_aspect_skin(p, "kh_red", kh_size, '1 1 1', a, DRAWFLAG_NORMAL); // show 30% theAlpha key
- break;
- case 1:
- drawpic_aspect_skin(p, "kh_blue", kh_size, '1 1 1', a, DRAWFLAG_NORMAL); // show 30% theAlpha key
- break;
- case 2:
- drawpic_aspect_skin(p, "kh_yellow", kh_size, '1 1 1', a, DRAWFLAG_NORMAL); // show 30% theAlpha key
- break;
- case 3:
- drawpic_aspect_skin(p, "kh_pink", kh_size, '1 1 1', a, DRAWFLAG_NORMAL); // show 30% theAlpha key
- break;
- }
+ // Vertical arrangement
+ slot_size = eX * mySize_x + eY * mySize_y / all_keys;
+ for(i = 0; i < all_keys; ++i)
+ KH_SLOTS[i] = pos + eY * slot_size_y * i;
}
- if(mySize_x > mySize_y)
+ }
+
+ // Make icons blink in case of RUN HERE
+
+ float blink = 0.6 + sin(2*M_PI*time) / 2.5; // Oscillate between 0.2 and 1
+ float alpha;
+ alpha = 1;
+
+ if(carrying_keys)
+ switch(myteam)
+ {
+ case NUM_TEAM_1: if(team1_keys == all_keys) alpha = blink; break;
+ case NUM_TEAM_2: if(team2_keys == all_keys) alpha = blink; break;
+ case NUM_TEAM_3: if(team3_keys == all_keys) alpha = blink; break;
+ case NUM_TEAM_4: if(team4_keys == all_keys) alpha = blink; break;
+ }
+
+ // Draw icons
+
+ i = 0;
+
+ while(team1_keys--)
+ if(myteam == NUM_TEAM_1 && carrying_keys)
{
- p_x += 0.25 * mySize_x;
- pa_x += 0.25 * mySize_x;
+ drawpic_aspect_skin(KH_SLOTS[i++], "kh_red_carrying", slot_size, '1 1 1', alpha, DRAWFLAG_NORMAL);
+ --carrying_keys;
}
else
+ drawpic_aspect_skin(KH_SLOTS[i++], "kh_red_taken", slot_size, '1 1 1', alpha, DRAWFLAG_NORMAL);
+
+ while(team2_keys--)
+ if(myteam == NUM_TEAM_2 && carrying_keys)
{
- if(i == 1)
- {
- p_y = pos_y + 0.625 * mySize_y;
- pa_y = pos_y + 0.5 * mySize_y;
- p_x = pos_x;
- pa_x = pos_x;
- }
- else
- {
- p_x += 0.5 * mySize_x;
- pa_x += 0.5 * mySize_x;
- }
+ drawpic_aspect_skin(KH_SLOTS[i++], "kh_blue_carrying", slot_size, '1 1 1', alpha, DRAWFLAG_NORMAL);
+ --carrying_keys;
}
- }
+ else
+ drawpic_aspect_skin(KH_SLOTS[i++], "kh_blue_taken", slot_size, '1 1 1', alpha, DRAWFLAG_NORMAL);
+
+ while(team3_keys--)
+ if(myteam == NUM_TEAM_3 && carrying_keys)
+ {
+ drawpic_aspect_skin(KH_SLOTS[i++], "kh_yellow_carrying", slot_size, '1 1 1', alpha, DRAWFLAG_NORMAL);
+ --carrying_keys;
+ }
+ else
+ drawpic_aspect_skin(KH_SLOTS[i++], "kh_yellow_taken", slot_size, '1 1 1', alpha, DRAWFLAG_NORMAL);
+
+ while(team4_keys--)
+ if(myteam == NUM_TEAM_4 && carrying_keys)
+ {
+ drawpic_aspect_skin(KH_SLOTS[i++], "kh_pink_carrying", slot_size, '1 1 1', alpha, DRAWFLAG_NORMAL);
+ --carrying_keys;
+ }
+ else
+ drawpic_aspect_skin(KH_SLOTS[i++], "kh_pink_taken", slot_size, '1 1 1', alpha, DRAWFLAG_NORMAL);
+
+ while(dropped_keys--)
+ drawpic_aspect_skin(KH_SLOTS[i++], "kh_dropped", slot_size, '1 1 1', alpha, DRAWFLAG_NORMAL);
}
// Keepaway HUD mod icon
void HUD_Reset (void)
{
// reset gametype specific icons
- if(gametype == MAPINFO_TYPE_KEYHUNT)
- HUD_Mod_KH_Reset();
- else if(gametype == MAPINFO_TYPE_CTF)
+ if(gametype == MAPINFO_TYPE_CTF)
HUD_Mod_CTF_Reset();
}
case HUD_PANEL_WEAPONS:
HUD_Write_PanelCvar_q("_accuracy");
HUD_Write_PanelCvar_q("_label");
+ HUD_Write_PanelCvar_q("_label_scale");
HUD_Write_PanelCvar_q("_complainbubble");
HUD_Write_PanelCvar_q("_complainbubble_padding");
HUD_Write_PanelCvar_q("_complainbubble_time");
}
}
-const float hlBorderSize = 4;
+const float hlBorderSize = 2;
const string hlBorder = "gfx/hud/default/border_highlighted";
const string hlBorder2 = "gfx/hud/default/border_highlighted2";
void HUD_Panel_HlBorder(float myBorder, vector color, float theAlpha)
{
panel = highlightedPanel;
HUD_Panel_UpdatePosSize()
- HUD_Panel_HlBorder(panel_bg_border + 1.5 * hlBorderSize, '0 0.5 1', 0.25 * (1 - autocvar__menu_alpha));
+ HUD_Panel_HlBorder(panel_bg_border * hlBorderSize, '0 0.5 1', 0.4 * (1 - autocvar__menu_alpha));
}
}
}
e.netname = refname;
e.message = wepname;
- #ifndef MENUQC
+ #ifdef CSQC
func(WR_INIT);
#endif
}
#include "item/modalcontroller.c"
#include "item/image.c"
#include "item/label.c"
+#include "item/dialog.c"
#include "item/button.c"
#include "item/checkbox.c"
#include "item/radiobutton.c"
#include "item/borderimage.c"
#include "item/slider.c"
-#include "item/dialog.c"
#include "item/tab.c"
#include "item/textslider.c"
#include "item/listbox.c"
}
}
else if(argc == 2 && !isdemo()) // don't allow this command in demos
+ {
+ m_play_click_sound(MENU_SOUND_OPEN);
m_goto(strcat(filter, argv(1))); // switch to a menu item
+ }
if(filter)
strunzone(filter);
return;
METHOD(Item, destroy, void(entity))
ATTRIB(Item, focused, float, 0)
ATTRIB(Item, focusable, float, 0)
+ ATTRIB(Item, allowFocusSound, float, 0)
ATTRIB(Item, parent, entity, NULL)
ATTRIB(Item, preferredFocusPriority, float, 0)
ATTRIB(Item, origin, vector, '0 0 0')
void Item_focusEnter(entity me)
{
+ if(me.allowFocusSound)
+ m_play_focus_sound();
}
void Item_focusLeave(entity me)
METHOD(Button, mousePress, float(entity, vector))
METHOD(Button, mouseDrag, float(entity, vector))
METHOD(Button, mouseRelease, float(entity, vector))
- METHOD(Button, focusEnter, void(entity))
+ METHOD(Button, playClickSound, void(entity))
ATTRIB(Button, onClick, void(entity, entity), func_null)
ATTRIB(Button, onClickEntity, entity, NULL)
ATTRIB(Button, src, string, string_null)
ATTRIB(Button, srcMulti, float, 1) // 0: button square left, text right; 1: button stretched, text over it
ATTRIB(Button, buttonLeftOfText, float, 0)
ATTRIB(Button, focusable, float, 1)
+ ATTRIB(Button, allowFocusSound, float, 1)
ATTRIB(Button, pressed, float, 0)
ATTRIB(Button, clickTime, float, 0)
ATTRIB(Button, disabled, float, 0)
{
if(key == K_ENTER || key == K_SPACE || key == K_KP_ENTER)
{
+ me.playClickSound(me);
me.clickTime = 0.1; // delayed for effect
return 1;
}
{
if (!me.disabled)
{
- if(cvar("menu_sounds"))
- localsound("sound/misc/menu2.wav");
+ me.playClickSound(me);
if(me.onClick)
me.onClick(me, me.onClickEntity);
}
{
me.focusable = !me.disabled;
}
-void Button_focusEnter(entity me)
-{
- if(cvar("menu_sounds") > 1)
- localsound("sound/misc/menu1.wav");
- SUPER(Button).focusEnter(me);
-}
void Button_draw(entity me)
{
vector bOrigin, bSize;
SUPER(Button).draw(me);
}
+void Button_playClickSound(entity me)
+{
+ if(me.onClick == DialogOpenButton_Click)
+ m_play_click_sound(MENU_SOUND_OPEN);
+ else if(me.onClick == Dialog_Close)
+ m_play_click_sound(MENU_SOUND_CLOSE);
+ else
+ m_play_click_sound(MENU_SOUND_EXECUTE);
+}
#endif
CLASS(CheckBox) EXTENDS(Button)
METHOD(CheckBox, configureCheckBox, void(entity, string, float, string))
METHOD(CheckBox, draw, void(entity))
+ METHOD(CheckBox, playClickSound, void(entity))
METHOD(CheckBox, toString, string(entity))
METHOD(CheckBox, setChecked, void(entity, float))
ATTRIB(CheckBox, useDownAsChecked, float, 0)
me.pressed = s;
SUPER(CheckBox).draw(me);
}
+void CheckBox_playClickSound(entity me)
+{
+ m_play_click_sound(MENU_SOUND_SELECT);
+}
#endif
{
if(key == K_ESCAPE)
{
+ m_play_click_sound(MENU_SOUND_CLOSE);
me.close(me);
return 1;
}
ATTRIB(InputBox, scrollPos, float, 0) // widths
ATTRIB(InputBox, focusable, float, 1)
+ ATTRIB(InputBox, allowFocusSound, float, 1)
ATTRIB(InputBox, disabled, float, 0)
ATTRIB(InputBox, lastChangeTime, float, 0)
ATTRIB(InputBox, dragScrollTimer, float, 0)
ATTRIB(InputBox, cb_colorF, vector, '1 1 1')
ATTRIB(InputBox, cb_colorC, vector, '1 1 1')
ENDCLASS(InputBox)
-void InputBox_Clear_Click(entity btn, entity me);
#endif
#ifdef IMPLEMENTATION
SUPER(InputBox).setText(me, strzone(txt));
}
-void InputBox_Clear_Click(entity btn, entity me)
-{
- me.setText(me, "");
-}
-
float over_ClearButton(entity me, vector pos)
{
if (pos_x >= 1 + me.cb_offset - me.cb_width)
if(me.cb_pressed)
if (over_ClearButton(me, pos))
{
+ m_play_click_sound(MENU_SOUND_CLEAR);
+ me.setText(me, "");
me.cb_pressed = 0;
- InputBox_Clear_Click(world, me);
return 1;
}
float r = InputBox_mouseDrag(me, pos);
case K_KP_DEL:
case K_DEL:
if(shift & S_CTRL)
+ {
+ m_play_click_sound(MENU_SOUND_CLEAR);
me.setText(me, "");
+ }
else
me.setText(me, strcat(substring(me.text, 0, me.cursorPos), substring(me.text, me.cursorPos + 1, strlen(me.text) - me.cursorPos - 1)));
return 1;
METHOD(ListBox, mouseRelease, float(entity, vector))
METHOD(ListBox, focusLeave, void(entity))
ATTRIB(ListBox, focusable, float, 1)
+ ATTRIB(ListBox, allowFocusSound, float, 1)
ATTRIB(ListBox, selectedItem, float, 0)
ATTRIB(ListBox, size, vector, '0 0 0')
ATTRIB(ListBox, origin, vector, '0 0 0')
ATTRIB(ListBox, itemHeight, float, 0)
ATTRIB(ListBox, colorBG, vector, '0 0 0')
ATTRIB(ListBox, alphaBG, float, 0)
+
+ ATTRIB(ListBox, lastClickedItem, float, -1)
+ ATTRIB(ListBox, lastClickedTime, float, 0)
+
METHOD(ListBox, drawListBoxItem, void(entity, float, vector, float)) // item number, width/height, selected
METHOD(ListBox, clickListBoxItem, void(entity, float, vector)) // item number, relative clickpos
+ METHOD(ListBox, doubleClickListBoxItem, void(entity, float, vector)) // item number, relative clickpos
METHOD(ListBox, setSelected, void(entity, float))
METHOD(ListBox, getLastFullyVisibleItemAtScrollPos, float(entity, float))
// and give it a nice click event
if(me.nItems > 0)
{
- me.clickListBoxItem(me, me.selectedItem, globalToBox(pos, eY * (me.getItemStart(me, me.selectedItem) - me.scrollPos), eX * (1 - me.controlWidth) + eY * me.getItemHeight(me, me.selectedItem)));
+ vector where = globalToBox(pos, eY * (me.getItemStart(me, me.selectedItem) - me.scrollPos), eX * (1 - me.controlWidth) + eY * me.getItemHeight(me, me.selectedItem));
+
+ if((me.selectedItem == me.lastClickedItem) && (time < me.lastClickedTime + 0.3))
+ me.doubleClickListBoxItem(me, me.selectedItem, where);
+ else
+ me.clickListBoxItem(me, me.selectedItem, where);
+
+ me.lastClickedItem = me.selectedItem;
+ me.lastClickedTime = time;
}
}
me.pressed = 0;
void ListBox_clickListBoxItem(entity me, float i, vector where)
{
- // itemclick, itemclick, does whatever itemclick does
+ // template method
+}
+
+void ListBox_doubleClickListBoxItem(entity me, float i, vector where)
+{
+ // template method
}
void ListBox_drawListBoxItem(entity me, float i, vector absSize, float selected)
Nexposee_mouseMove(me, pos);
if(me.mouseFocusedChild)
{
+ m_play_click_sound(MENU_SOUND_OPEN);
me.animationState = 1;
SUPER(Nexposee).setFocus(me, NULL);
}
{
if (!(SUPER(Nexposee).mousePress(me, pos)))
{
+ m_play_click_sound(MENU_SOUND_CLOSE);
me.animationState = 3;
SUPER(Nexposee).setFocus(me, NULL);
}
default:
case 0:
case 3:
+ m_play_click_sound(MENU_SOUND_OPEN);
me.animationState = 1;
break;
case 1:
case 2:
+ m_play_click_sound(MENU_SOUND_CLOSE);
me.animationState = 3;
break;
}
METHOD(Slider, configureSliderValues, void(entity, float, float, float, float, float, float))
METHOD(Slider, draw, void(entity))
METHOD(Slider, keyDown, float(entity, float, float, float))
+ METHOD(Slider, keyUp, float(entity, float, float, float))
METHOD(Slider, mousePress, float(entity, vector))
METHOD(Slider, mouseDrag, float(entity, vector))
METHOD(Slider, mouseRelease, float(entity, vector))
- METHOD(Slider, focusEnter, void(entity))
METHOD(Slider, valueToText, string(entity, float))
METHOD(Slider, toString, string(entity))
METHOD(Slider, setValue, void(entity, float))
METHOD(Slider, showNotify, void(entity))
ATTRIB(Slider, src, string, string_null)
ATTRIB(Slider, focusable, float, 1)
+ ATTRIB(Slider, allowFocusSound, float, 1)
ATTRIB(Slider, value, float, 0)
ATTRIB(Slider, animated, float, 1)
ATTRIB(Slider, sliderValue, float, 0)
me.setValue(me, me.valueMax);
return 1;
}
- // TODO more keys
+ // TODO more keys (NOTE also add them to Slider_keyUp)
+ return 0;
+}
+float Slider_keyUp(entity me, float key, float ascii, float shift)
+{
+ if(me.disabled)
+ return 0;
+ switch(key)
+ {
+ case K_LEFTARROW:
+ case K_KP_LEFTARROW:
+ case K_RIGHTARROW:
+ case K_KP_RIGHTARROW:
+ case K_PGUP:
+ case K_KP_PGUP:
+ case K_PGDN:
+ case K_KP_PGDN:
+ case K_HOME:
+ case K_KP_HOME:
+ case K_END:
+ case K_KP_END:
+ m_play_click_sound(MENU_SOUND_SLIDE);
+ }
return 0;
}
float Slider_mouseDrag(entity me, vector pos)
me.pressed = 0;
if(me.disabled)
return 0;
- if(cvar("menu_sounds"))
- localsound("sound/misc/menu2.wav");
+ m_play_click_sound(MENU_SOUND_SLIDE);
return 1;
}
void Slider_showNotify(entity me)
{
me.focusable = !me.disabled;
}
-void Slider_focusEnter(entity me)
-{
- if(cvar("menu_sounds") > 1)
- localsound("sound/misc/menu1.wav");
- SUPER(Slider).focusEnter(me);
-}
void Slider_draw(entity me)
{
float controlLeft;
}
}
}
+
+float menuLastFocusSoundTime;
+void m_play_focus_sound()
+{
+ if(cvar("menu_sounds") > 1)
+ if(time - menuLastFocusSoundTime > 0.25)
+ {
+ localsound(MENU_SOUND_FOCUS);
+ menuLastFocusSoundTime = time;
+ }
+}
+
+void m_play_click_sound(string soundfile)
+{
+ if(cvar("menu_sounds"))
+ localsound(soundfile);
+}
void postMenuDraw(); // this is run just after the menu is drawn (or not). Useful to draw something over everything else.
void m_sync();
+
+// sounds
+
+const string MENU_SOUND_CLEAR = "sound/menu/clear.wav";
+const string MENU_SOUND_CLOSE = "sound/menu/close.wav";
+const string MENU_SOUND_EXECUTE = "sound/menu/execute.wav";
+const string MENU_SOUND_FOCUS = "sound/menu/focus.wav";
+const string MENU_SOUND_OPEN = "sound/menu/open.wav";
+const string MENU_SOUND_SELECT = "sound/menu/select.wav";
+const string MENU_SOUND_SLIDE = "sound/menu/slide.wav";
+const string MENU_SOUND_WINNER = "sound/menu/winner.wav";
+
+void m_play_focus_sound();
+void m_play_click_sound(string soundfile);
ATTRIB(XonoticCampaignList, rowsPerItem, float, 10)
METHOD(XonoticCampaignList, draw, void(entity))
METHOD(XonoticCampaignList, drawListBoxItem, void(entity, float, vector, float))
- METHOD(XonoticCampaignList, clickListBoxItem, void(entity, float, vector))
+ METHOD(XonoticCampaignList, doubleClickListBoxItem, void(entity, float, vector))
METHOD(XonoticCampaignList, resizeNotify, void(entity, vector, vector, vector, vector))
METHOD(XonoticCampaignList, setSelected, void(entity, float))
METHOD(XonoticCampaignList, keyDown, float(entity, float, float, float))
ATTRIB(XonoticCampaignList, realUpperMargin1, float, 0)
ATTRIB(XonoticCampaignList, realUpperMargin2, float, 0)
- ATTRIB(XonoticCampaignList, lastClickedMap, float, -1)
- ATTRIB(XonoticCampaignList, lastClickedTime, float, 0)
-
ATTRIB(XonoticCampaignList, origin, vector, '0 0 0')
ATTRIB(XonoticCampaignList, itemAbsSize, vector, '0 0 0')
ATTRIB(XonoticCampaignList, emptyLineHeight, float, 0.5)
rewrapCampaign(me.columnNameSize, me.rowsPerItem - 3, me.emptyLineHeight, me.realFontSize);
}
-void XonoticCampaignList_clickListBoxItem(entity me, float i, vector where)
+void XonoticCampaignList_doubleClickListBoxItem(entity me, float i, vector where)
{
- if(i == me.lastClickedMap)
- if(time < me.lastClickedTime + 0.3)
- {
- // DOUBLE CLICK!
- // start game
- CampaignList_LoadMap(me, me);
- return;
- }
- me.lastClickedMap = i;
- me.lastClickedTime = time;
+ CampaignList_LoadMap(me, me);
}
void XonoticCampaignList_drawListBoxItem(entity me, float i, vector absSize, float isSelected)
{
float XonoticColorpicker_mouseRelease(entity me, vector coords)
{
+ m_play_click_sound(MENU_SOUND_SLIDE);
me.mouseDrag(me, coords);
return 1;
}
float XonoticColorpickerString_mouseRelease(entity me, vector coords)
{
+ m_play_click_sound(MENU_SOUND_SLIDE);
me.mouseDrag(me, coords);
return 1;
}
METHOD(XonoticDemoList, startDemo, void(entity))
METHOD(XonoticDemoList, timeDemo, void(entity))
METHOD(XonoticDemoList, demoName, string(entity, float))
- METHOD(XonoticDemoList, clickListBoxItem, void(entity, float, vector))
+ METHOD(XonoticDemoList, doubleClickListBoxItem, void(entity, float, vector))
METHOD(XonoticDemoList, keyDown, float(entity, float, float, float))
METHOD(XonoticDemoList, destroy, void(entity))
METHOD(XonoticDemoList, showNotify, void(entity))
ATTRIB(XonoticDemoList, origin, vector, '0 0 0')
ATTRIB(XonoticDemoList, itemAbsSize, vector, '0 0 0')
- ATTRIB(XonoticDemoList, lastClickedDemo, float, -1)
- ATTRIB(XonoticDemoList, lastClickedTime, float, 0)
ATTRIB(XonoticDemoList, filterString, string, string_null)
ENDCLASS(XonoticDemoList)
}
}
-void XonoticDemoList_clickListBoxItem(entity me, float i, vector where)
+void XonoticDemoList_doubleClickListBoxItem(entity me, float i, vector where)
{
- if(i == me.lastClickedDemo)
- if(time < me.lastClickedTime + 0.3)
- {
- // DOUBLE CLICK!
- me.setSelected(me, i);
- DemoConfirm_ListClick_Check_Gamestatus(me);
- }
- me.lastClickedDemo = i;
- me.lastClickedTime = time;
+ DemoConfirm_ListClick_Check_Gamestatus(me);
}
float XonoticDemoList_keyDown(entity me, float scan, float ascii, float shift)
ATTRIB(XonoticHUDWeaponsDialog, title, string, _("Weapons Panel"))
ATTRIB(XonoticHUDWeaponsDialog, color, vector, SKINCOLOR_DIALOG_TEAMSELECT)
ATTRIB(XonoticHUDWeaponsDialog, intendedWidth, float, 0.4)
- ATTRIB(XonoticHUDWeaponsDialog, rows, float, 18)
+ ATTRIB(XonoticHUDWeaponsDialog, rows, float, 19)
ATTRIB(XonoticHUDWeaponsDialog, columns, float, 4)
ATTRIB(XonoticHUDWeaponsDialog, name, string, "HUDweapons")
ATTRIB(XonoticHUDWeaponsDialog, requiresConnection, float, TRUE)
me.TD(me, 1, 0.8, e = makeXonoticRadioButton(2, "hud_panel_weapons_label", "0", ZCTX(_("SHOWAS^None"))));
me.TD(me, 1, 0.8, e = makeXonoticRadioButton(2, "hud_panel_weapons_label", "1", _("Number")));
me.TD(me, 1, 0.8, e = makeXonoticRadioButton(2, "hud_panel_weapons_label", "2", _("Bind")));
+ me.TR(me);
+ me.TDempty(me, 0.2);
+ me.TD(me, 1, 1.4, e = makeXonoticTextLabel(0, _("Weapon ID scale:")));
+ me.TD(me, 1, 2.4, e = makeXonoticSlider(0.1, 1, 0.05, "hud_panel_weapons_label_scale"));
+ setDependent(e, "hud_panel_weapons_label", 1, 2);
me.TR(me);
me.TDempty(me, 0.2);
me.TD(me, 1, 3.8/2, e = makeXonoticCheckBox(0, "hud_panel_weapons_accuracy", _("Show Accuracy")));
me.TD(me, 1, 3.8/2, e = makeXonoticCheckBox(0, "hud_panel_weapons_ammo", _("Show Ammo")));
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, _("Ammo bar color:")));
- me.TD(me, 2, 2.4, e = makeXonoticColorpickerString("hud_panel_weapons_ammo_color", "hud_panel_weapons_ammo_color"));
+ me.TD(me, 1, 1.4, e = makeXonoticTextLabel(0, _("Ammo bar alpha:")));
+ me.TD(me, 1, 2.4, e = makeXonoticSlider(0.1, 1, 0.1, "hud_panel_weapons_ammo_alpha"));
setDependent(e, "hud_panel_weapons_ammo", 1, 1);
- me.TR(me);
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 1.4, e = makeXonoticTextLabel(0, _("Ammo bar alpha:")));
- me.TD(me, 1, 2.4, e = makeXonoticSlider(0.1, 1, 0.1, "hud_panel_weapons_ammo_alpha"));
+ me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, _("Ammo bar color:")));
+ me.TD(me, 2, 2.4, e = makeXonoticColorpickerString("hud_panel_weapons_ammo_color", "hud_panel_weapons_ammo_color"));
setDependent(e, "hud_panel_weapons_ammo", 1, 1);
+ me.TR(me);
}
#endif
ATTRIB(XonoticAudioSettingsTab, intendedWidth, float, 0.9)
ATTRIB(XonoticAudioSettingsTab, rows, float, 15.5)
ATTRIB(XonoticAudioSettingsTab, columns, float, 6.2) // added extra .2 for center space
+ ATTRIB(XonoticAudioSettingsTab, hiddenMenuSoundsSlider, entity, NULL)
ENDCLASS(XonoticAudioSettingsTab)
entity makeXonoticAudioSettingsTab();
#endif
me.TR(me);
me.TD(me, 1, 3, makeXonoticCheckBox(0, "con_chatsound", _("Chat message sound")));
me.TR(me);
- me.TD(me, 1, 3, makeXonoticCheckBoxEx(2, 0, "menu_sounds", _("Menu sounds")));
+ me.hiddenMenuSoundsSlider = makeXonoticSlider(1, 1, 1, "menu_sounds");
+ me.TD(me, 1, 1.2, makeXonoticSliderCheckBox(0, 1, me.hiddenMenuSoundsSlider, _("Menu sounds")));
+ me.TD(me, 1, 1.8, e = makeXonoticSliderCheckBox(2, 0, me.hiddenMenuSoundsSlider, _("Focus sounds")));
+ setDependent(e, "menu_sounds", 1, 2);
me.TR(me);
me.TR(me);
me.TD(me, 1, 1, makeXonoticTextLabel(0, _("Time announcer:")));
setDependentAND(e, "crosshair_per_weapon", 0, 0, "crosshair_enabled", 1, 2);
}
me.TR(me);
+ me.TDempty(me, 0.1);
+ for(i = 29; i <= 42; ++i) {
+ me.TDNoMargin(me, 1, 2 / 14, e = makeXonoticCrosshairButton(4, i), '1 1 0');
+ setDependentAND(e, "crosshair_per_weapon", 0, 0, "crosshair_enabled", 1, 2);
+ }
me.TR(me);
me.TDempty(me, 0.1);
me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Crosshair size:")));
#ifdef INTERFACE
CLASS(XonoticWinnerDialog) EXTENDS(XonoticDialog)
METHOD(XonoticWinnerDialog, fill, void(entity))
+ METHOD(XonoticWinnerDialog, focusEnter, void(entity))
ATTRIB(XonoticWinnerDialog, title, string, _("Winner"))
ATTRIB(XonoticWinnerDialog, color, vector, SKINCOLOR_DIALOG_SINGLEPLAYER)
ATTRIB(XonoticWinnerDialog, intendedWidth, float, 0.32)
e.onClick = Dialog_Close;
e.onClickEntity = me;
}
+void XonoticWinnerDialog_focusEnter(entity me)
+{
+ m_play_click_sound(MENU_SOUND_WINNER);
+}
#endif
METHOD(XonoticGametypeList, loadCvars, void(entity))
METHOD(XonoticGametypeList, saveCvars, void(entity))
METHOD(XonoticGametypeList, keyDown, float(entity, float, float, float))
+ METHOD(XonoticGametypeList, clickListBoxItem, void(entity, float, vector))
ATTRIB(XonoticGametypeList, realFontSize, vector, '0 0 0')
ATTRIB(XonoticGametypeList, realUpperMargin, float, 0)
SUPER(XonoticGametypeList).setSelected(me, i);
me.saveCvars(me);
}
-
void XonoticGametypeList_loadCvars(entity me)
{
float t;
me.columnNameOrigin = me.columnIconOrigin + me.columnIconSize + (0.5 * me.realFontSize_x);
me.columnNameSize = 1 - me.columnIconSize - (1.5 * me.realFontSize_x);
}
-
float XonoticGametypeList_keyDown(entity me, float scan, float ascii, float shift)
{
if(scan == K_ENTER || scan == K_KP_ENTER)
{
+ m_play_click_sound(MENU_SOUND_EXECUTE);
me.parent.gameTypeSelectNotify(me.parent);
return 1;
}
return SUPER(XonoticGametypeList).keyDown(me, scan, ascii, shift);
}
+void XonoticGametypeList_clickListBoxItem(entity me, float i, vector where)
+{
+ m_play_click_sound(MENU_SOUND_SELECT);
+}
#endif
METHOD(XonoticKeyBinder, configureXonoticKeyBinder, void(entity))
ATTRIB(XonoticKeyBinder, rowsPerItem, float, 1)
METHOD(XonoticKeyBinder, drawListBoxItem, void(entity, float, vector, float))
- METHOD(XonoticKeyBinder, clickListBoxItem, void(entity, float, vector))
+ METHOD(XonoticKeyBinder, doubleClickListBoxItem, void(entity, float, vector))
METHOD(XonoticKeyBinder, resizeNotify, void(entity, vector, vector, vector, vector))
METHOD(XonoticKeyBinder, setSelected, void(entity, float))
METHOD(XonoticKeyBinder, keyDown, float(entity, float, float, float))
ATTRIB(XonoticKeyBinder, columnKeysOrigin, float, 0)
ATTRIB(XonoticKeyBinder, columnKeysSize, float, 0)
- ATTRIB(XonoticKeyBinder, lastClickedKey, float, -1)
- ATTRIB(XonoticKeyBinder, lastClickedTime, float, 0)
ATTRIB(XonoticKeyBinder, previouslySelected, float, -1)
ATTRIB(XonoticKeyBinder, inMouseHandler, float, 0)
ATTRIB(XonoticKeyBinder, userbindEditButton, entity, NULL)
localcmd("\nbind \"", keynumtostring(k), "\" \"", KEY_NOT_BOUND_CMD, "\"\n");
}
}
+ m_play_click_sound(MENU_SOUND_SELECT);
localcmd("\nbind \"", keynumtostring(key), "\" \"", func, "\"\n");
localcmd("-zoom\n"); // to make sure we aren't in togglezoom'd state
cvar_set("_hud_showbinds_reload", "1");
//localcmd("\nunbind \"", keynumtostring(k), "\"\n");
localcmd("\nbind \"", keynumtostring(k), "\" \"", KEY_NOT_BOUND_CMD, "\"\n");
}
+ m_play_click_sound(MENU_SOUND_CLEAR);
localcmd("-zoom\n"); // to make sure we aren't in togglezoom'd state
cvar_set("_hud_showbinds_reload", "1");
}
localcmd("-zoom\n"); // to make sure we aren't in togglezoom'd state
cvar_set("_hud_showbinds_reload", "1");
}
-void XonoticKeyBinder_clickListBoxItem(entity me, float i, vector where)
+void XonoticKeyBinder_doubleClickListBoxItem(entity me, float i, vector where)
{
- if(i == me.lastClickedKey)
- if(time < me.lastClickedTime + 0.3)
- {
- // DOUBLE CLICK!
- KeyBinder_Bind_Change(NULL, me);
- }
- me.lastClickedKey = i;
- me.lastClickedTime = time;
+ KeyBinder_Bind_Change(NULL, me);
}
void XonoticKeyBinder_setSelected(entity me, float i)
{
ATTRIB(XonoticLanguageList, columnPercentageOrigin, float, 0)
ATTRIB(XonoticLanguageList, columnPercentageSize, float, 0)
- METHOD(XonoticLanguageList, clickListBoxItem, void(entity, float, vector)) // double click handling
+ METHOD(XonoticLanguageList, doubleClickListBoxItem, void(entity, float, vector))
METHOD(XonoticLanguageList, keyDown, float(entity, float, float, float)) // enter handling
- ATTRIB(XonoticLanguageList, lastClickedLanguage, float, -1)
- ATTRIB(XonoticLanguageList, lastClickedTime, float, 0)
METHOD(XonoticLanguageList, destroy, void(entity))
cvar_set("_menu_prvm_language", me.languageParameter(me, me.selectedItem, LANGPARM_ID));
}
-void XonoticLanguageList_clickListBoxItem(entity me, float i, vector where)
+void XonoticLanguageList_doubleClickListBoxItem(entity me, float i, vector where)
{
- if(i == me.lastClickedLanguage)
- if(time < me.lastClickedTime + 0.3)
- {
- // DOUBLE CLICK!
- me.setSelected(me, i);
- me.setLanguage(me);
- }
- me.lastClickedLanguage = i;
- me.lastClickedTime = time;
+ m_play_click_sound(MENU_SOUND_EXECUTE);
+ me.setLanguage(me);
}
float XonoticLanguageList_keyDown(entity me, float scan, float ascii, float shift)
{
- if(scan == K_ENTER || scan == K_KP_ENTER) {
+ if(scan == K_ENTER || scan == K_KP_ENTER)
+ {
+ m_play_click_sound(MENU_SOUND_EXECUTE);
me.setLanguage(me);
return 1;
}
METHOD(XonoticMapList, draw, void(entity))
METHOD(XonoticMapList, drawListBoxItem, void(entity, float, vector, float))
METHOD(XonoticMapList, clickListBoxItem, void(entity, float, vector))
+ METHOD(XonoticMapList, doubleClickListBoxItem, void(entity, float, vector))
METHOD(XonoticMapList, resizeNotify, void(entity, vector, vector, vector, vector))
METHOD(XonoticMapList, refilter, void(entity))
METHOD(XonoticMapList, refilterCallback, void(entity, entity))
ATTRIB(XonoticMapList, realUpperMargin1, float, 0)
ATTRIB(XonoticMapList, realUpperMargin2, float, 0)
- ATTRIB(XonoticMapList, lastClickedMap, float, -1)
- ATTRIB(XonoticMapList, lastClickedTime, float, 0)
-
ATTRIB(XonoticMapList, lastGametype, float, 0)
ATTRIB(XonoticMapList, lastFeatures, float, 0)
{
if(where_x <= me.columnPreviewOrigin + me.columnPreviewSize)
if(where_x >= 0)
+ {
+ m_play_click_sound(MENU_SOUND_SELECT);
me.g_maplistCacheToggle(me, i);
+ }
+}
+void XonoticMapList_doubleClickListBoxItem(entity me, float i, vector where)
+{
if(where_x >= me.columnNameOrigin)
if(where_x <= 1)
{
- if(i == me.lastClickedMap)
- if(time < me.lastClickedTime + 0.3)
- {
- // DOUBLE CLICK!
- // pop up map info screen
- main.mapInfoDialog.loadMapInfo(main.mapInfoDialog, i, me);
- DialogOpenButton_Click_withCoords(NULL, main.mapInfoDialog, me.origin + eX * (me.columnNameOrigin * me.size_x) + eY * ((me.itemHeight * i - me.scrollPos) * me.size_y), eY * me.itemAbsSize_y + eX * (me.itemAbsSize_x * me.columnNameSize));
- return;
- }
- me.lastClickedMap = i;
- me.lastClickedTime = time;
+ // pop up map info screen
+ m_play_click_sound(MENU_SOUND_OPEN);
+ main.mapInfoDialog.loadMapInfo(main.mapInfoDialog, i, me);
+ DialogOpenButton_Click_withCoords(NULL, main.mapInfoDialog, me.origin + eX * (me.columnNameOrigin * me.size_x) + eY * ((me.itemHeight * i - me.scrollPos) * me.size_y), eY * me.itemAbsSize_y + eX * (me.itemAbsSize_x * me.columnNameSize));
}
}
if(scan == K_MOUSE2 || scan == K_SPACE || scan == K_ENTER || scan == K_KP_ENTER)
{
// pop up map info screen
+ m_play_click_sound(MENU_SOUND_OPEN);
main.mapInfoDialog.loadMapInfo(main.mapInfoDialog, me.selectedItem, me);
DialogOpenButton_Click_withCoords(NULL, main.mapInfoDialog, me.origin + eX * (me.columnNameOrigin * me.size_x) + eY * ((me.itemHeight * me.selectedItem - me.scrollPos) * me.size_y), eY * me.itemAbsSize_y + eX * (me.itemAbsSize_x * me.columnNameSize));
}
else if(scan == K_MOUSE3 || scan == K_INS || scan == K_KP_INS)
{
+ m_play_click_sound(MENU_SOUND_SELECT);
me.g_maplistCacheToggle(me, me.selectedItem);
}
else if(ascii == 43) // +
{
if (!me.g_maplistCacheQuery(me, me.selectedItem))
+ {
+ m_play_click_sound(MENU_SOUND_SELECT);
me.g_maplistCacheToggle(me, me.selectedItem);
+ }
}
else if(ascii == 45) // -
{
if(me.g_maplistCacheQuery(me, me.selectedItem))
+ {
+ m_play_click_sound(MENU_SOUND_SELECT);
me.g_maplistCacheToggle(me, me.selectedItem);
+ }
}
else if(scan == K_BACKSPACE)
{
ATTRIB(XonoticPlayerList, rowsPerItem, float, 1)
METHOD(XonoticPlayerList, resizeNotify, void(entity, vector, vector, vector, vector))
METHOD(XonoticPlayerList, drawListBoxItem, void(entity, float, vector, float))
+ ATTRIB(XonoticPlayerList, allowFocusSound, float, 0)
ATTRIB(XonoticPlayerList, realFontSize, vector, '0 0 0')
ATTRIB(XonoticPlayerList, columnNameOrigin, float, 0)
ATTRIB(XonoticPlayerList, columnNameSize, float, 0)
METHOD(XonoticPlayList, startSound, void(entity, float))
METHOD(XonoticPlayList, resumeSound, void(entity))
METHOD(XonoticPlayList, pauseSound, void(entity))
- METHOD(XonoticPlayList, clickListBoxItem, void(entity, float, vector))
+ METHOD(XonoticPlayList, doubleClickListBoxItem, void(entity, float, vector))
METHOD(XonoticPlayList, keyDown, float(entity, float, float, float))
METHOD(XonoticPlayList, mouseDrag, float(entity, vector))
ATTRIB(XonoticPlayList, realUpperMargin, float, 0)
ATTRIB(XonoticPlayList, origin, vector, '0 0 0')
ATTRIB(XonoticPlayList, itemAbsSize, vector, '0 0 0')
-
- ATTRIB(XonoticPlayList, lastClickedSound, float, -1)
- ATTRIB(XonoticPlayList, lastClickedTime, float, 0)
ENDCLASS(XonoticPlayList)
entity makeXonoticPlayList();
{
float f = cvar("music_playlist_sampleposition0");
if(f <= 0 || (((time * 2) & 1) && f > 0))
- draw_Text(me.realUpperMargin * eY + (me.columnNumberOrigin + me.columnNumberSize) * eX, chr(0xE000 + 141), me.realFontSize, '1 1 1', SKINALPHA_TEXT, 0);
+ draw_Text(me.realUpperMargin * eY + (me.columnNumberOrigin + me.columnNumberSize) * eX, "\xE2\x96\xB6", me.realFontSize, '1 1 1', SKINALPHA_TEXT, 0);
}
s = ftos(i+1);
me.pauseSound(me);
}
-void XonoticPlayList_clickListBoxItem(entity me, float i, vector where)
+void XonoticPlayList_doubleClickListBoxItem(entity me, float i, vector where)
{
- if(i == me.lastClickedSound)
- if(time < me.lastClickedTime + 0.3)
- {
- // DOUBLE CLICK!
- me.setSelected(me, i);
- me.startSound(me, 0);
- }
- me.lastClickedSound = i;
- me.lastClickedTime = time;
+ me.startSound(me, 0);
}
float XonoticPlayList_keyDown(entity me, float scan, float ascii, float shift)
METHOD(XonoticScreenshotList, previewScreenshot, void(entity))
METHOD(XonoticScreenshotList, startScreenshot, void(entity))
METHOD(XonoticScreenshotList, screenshotName, string(entity, float))
- METHOD(XonoticScreenshotList, clickListBoxItem, void(entity, float, vector))
+ METHOD(XonoticScreenshotList, doubleClickListBoxItem, void(entity, float, vector))
METHOD(XonoticScreenshotList, keyDown, float(entity, float, float, float))
METHOD(XonoticScreenshotList, destroy, void(entity))
METHOD(XonoticScreenshotList, showNotify, void(entity))
ATTRIB(XonoticScreenshotList, realUpperMargin, float, 0)
ATTRIB(XonoticScreenshotList, origin, vector, '0 0 0')
ATTRIB(XonoticScreenshotList, itemAbsSize, vector, '0 0 0')
- ATTRIB(XonoticScreenshotList, lastClickedScreenshot, float, -1)
- ATTRIB(XonoticScreenshotList, lastClickedTime, float, 0)
ATTRIB(XonoticScreenshotList, filterString, string, string_null)
ATTRIB(XonoticScreenshotList, filterBox, entity, NULL)
ATTRIB(XonoticScreenshotList, filterTime, float, 0)
me.startScreenshot(me);
}
-void XonoticScreenshotList_clickListBoxItem(entity me, float i, vector where)
+void XonoticScreenshotList_doubleClickListBoxItem(entity me, float i, vector where)
{
- if(i == me.lastClickedScreenshot)
- if(time < me.lastClickedTime + 0.3)
- {
- // DOUBLE CLICK!
- // pop up screenshot
- me.setSelected(me, i);
- me.startScreenshot(me);
- }
- me.lastClickedScreenshot = i;
- me.lastClickedTime = time;
+ me.startScreenshot(me);
}
float XonoticScreenshotList_keyDown(entity me, float scan, float ascii, float shift)
ATTRIB(XonoticServerList, rowsPerItem, float, 1)
METHOD(XonoticServerList, draw, void(entity))
METHOD(XonoticServerList, drawListBoxItem, void(entity, float, vector, float))
- METHOD(XonoticServerList, clickListBoxItem, void(entity, float, vector))
+ METHOD(XonoticServerList, doubleClickListBoxItem, void(entity, float, vector))
METHOD(XonoticServerList, resizeNotify, void(entity, vector, vector, vector, vector))
METHOD(XonoticServerList, keyDown, float(entity, float, float, float))
METHOD(XonoticServerList, toggleFavorite, void(entity, string))
ATTRIB(XonoticServerList, infoButton, entity, NULL)
ATTRIB(XonoticServerList, currentSortOrder, float, 0)
ATTRIB(XonoticServerList, currentSortField, float, -1)
- ATTRIB(XonoticServerList, lastClickedServer, float, -1)
- ATTRIB(XonoticServerList, lastClickedTime, float, 0)
ATTRIB(XonoticServerList, ipAddressBoxFocused, float, -1)
}
void XonoticServerList_focusEnter(entity me)
{
+ SUPER(XonoticServerList).focusEnter(me);
if(time < me.nextRefreshTime)
{
//print("sorry, no refresh yet\n");
{
if(gethostcachestring(SLIST_FIELD_CNAME, i) == me.selectedServer)
{
- if(i != me.selectedItem)
- {
- me.lastClickedServer = -1;
- me.selectedItem = i;
- }
+ me.selectedItem = i;
found = 1;
break;
}
ipstr = netaddress_resolve(me.ipAddressBox.text, 26000);
if(ipstr != "")
{
+ m_play_click_sound(MENU_SOUND_SELECT);
me.toggleFavorite(me, me.ipAddressBox.text);
me.ipAddressBoxFocused = -1;
}
vector sz = boxToGlobalSize(eY * me.itemHeight + eX * (1 - me.controlWidth), me.size);
DialogOpenButton_Click_withCoords(me, main.serverInfoDialog, org, sz);
}
-void XonoticServerList_clickListBoxItem(entity me, float i, vector where)
+void XonoticServerList_doubleClickListBoxItem(entity me, float i, vector where)
{
- if(i == me.lastClickedServer)
- if(time < me.lastClickedTime + 0.3)
- {
- // DOUBLE CLICK!
- ServerList_Connect_Click(NULL, me);
- }
- me.lastClickedServer = i;
- me.lastClickedTime = time;
+ ServerList_Connect_Click(NULL, me);
}
void XonoticServerList_drawListBoxItem(entity me, float i, vector absSize, float isSelected)
{
{
if(me.nItems != 0)
{
+ m_play_click_sound(MENU_SOUND_OPEN);
main.serverInfoDialog.loadServerInfo(main.serverInfoDialog, me.selectedItem);
DialogOpenButton_Click_withCoords(me, main.serverInfoDialog, org, sz);
return 1;
METHOD(XonoticSkinList, loadCvars, void(entity))
METHOD(XonoticSkinList, saveCvars, void(entity))
METHOD(XonoticSkinList, skinParameter, string(entity, float, float))
- METHOD(XonoticSkinList, clickListBoxItem, void(entity, float, vector))
+ METHOD(XonoticSkinList, doubleClickListBoxItem, void(entity, float, vector))
METHOD(XonoticSkinList, keyDown, float(entity, float, float, float))
METHOD(XonoticSkinList, destroy, void(entity))
ATTRIB(XonoticSkinList, origin, vector, '0 0 0')
ATTRIB(XonoticSkinList, itemAbsSize, vector, '0 0 0')
- ATTRIB(XonoticSkinList, lastClickedSkin, float, -1)
- ATTRIB(XonoticSkinList, lastClickedTime, float, 0)
-
ATTRIB(XonoticSkinList, name, string, "skinselector")
ENDCLASS(XonoticSkinList)
me.setSkin(me);
}
-void XonoticSkinList_clickListBoxItem(entity me, float i, vector where)
+void XonoticSkinList_doubleClickListBoxItem(entity me, float i, vector where)
{
- if(i == me.lastClickedSkin)
- if(time < me.lastClickedTime + 0.3)
- {
- // DOUBLE CLICK!
- me.setSelected(me, i);
- me.setSkin(me);
- }
- me.lastClickedSkin = i;
- me.lastClickedTime = time;
+ m_play_click_sound(MENU_SOUND_EXECUTE);
+ me.setSkin(me);
}
float XonoticSkinList_keyDown(entity me, float scan, float ascii, float shift)
{
- if(scan == K_ENTER || scan == K_KP_ENTER) {
+ if(scan == K_ENTER || scan == K_KP_ENTER)
+ {
+ m_play_click_sound(MENU_SOUND_EXECUTE);
me.setSkin(me);
return 1;
}
METHOD(XonoticSoundList, drawListBoxItem, void(entity, float, vector, float))
METHOD(XonoticSoundList, getSounds, void(entity))
METHOD(XonoticSoundList, soundName, string(entity, float))
- METHOD(XonoticSoundList, clickListBoxItem, void(entity, float, vector))
+ METHOD(XonoticSoundList, doubleClickListBoxItem, void(entity, float, vector))
METHOD(XonoticSoundList, keyDown, float(entity, float, float, float))
METHOD(XonoticSoundList, destroy, void(entity))
METHOD(XonoticSoundList, showNotify, void(entity))
ATTRIB(XonoticSoundList, origin, vector, '0 0 0')
ATTRIB(XonoticSoundList, itemAbsSize, vector, '0 0 0')
- ATTRIB(XonoticSoundList, lastClickedSound, float, -1)
- ATTRIB(XonoticSoundList, lastClickedTime, float, 0)
ATTRIB(XonoticSoundList, filterString, string, string_null)
ATTRIB(XonoticSoundList, playlist, entity, world)
ENDCLASS(XonoticSoundList)
me.playlist.addToPlayList(me.playlist, me.soundName(me, i));
}
-void XonoticSoundList_clickListBoxItem(entity me, float i, vector where)
+void XonoticSoundList_doubleClickListBoxItem(entity me, float i, vector where)
{
- if(i == me.lastClickedSound)
- if(time < me.lastClickedTime + 0.3)
- {
- // DOUBLE CLICK!
- me.setSelected(me, i);
- me.playlist.addToPlayList(me.playlist, me.soundName(me, i));
- }
- me.lastClickedSound = i;
- me.lastClickedTime = time;
+ me.playlist.addToPlayList(me.playlist, me.soundName(me, i));
}
float XonoticSoundList_keyDown(entity me, float scan, float ascii, float shift)
METHOD(XonoticStatsList, resizeNotify, void(entity, vector, vector, vector, vector))
METHOD(XonoticStatsList, drawListBoxItem, void(entity, float, vector, float))
METHOD(XonoticStatsList, getStats, void(entity))
- METHOD(XonoticStatsList, clickListBoxItem, void(entity, float, vector))
+ METHOD(XonoticStatsList, doubleClickListBoxItem, void(entity, float, vector))
METHOD(XonoticStatsList, keyDown, float(entity, float, float, float))
METHOD(XonoticStatsList, destroy, void(entity))
METHOD(XonoticStatsList, showNotify, void(entity))
ATTRIB(XonoticStatsList, realUpperMargin, float, 0)
ATTRIB(XonoticStatsList, columnNameOrigin, float, 0)
ATTRIB(XonoticStatsList, columnNameSize, float, 0)
-
- ATTRIB(XonoticStatsList, lastClickedDemo, float, -1)
- ATTRIB(XonoticStatsList, lastClickedTime, float, 0)
ENDCLASS(XonoticStatsList)
entity statslist; // for reference elsewhere
PlayerStats_PlayerDetail_CheckUpdate();
}
-void XonoticStatsList_clickListBoxItem(entity me, float i, vector where)
+void XonoticStatsList_doubleClickListBoxItem(entity me, float i, vector where)
{
- if(i == me.lastClickedDemo)
- if(time < me.lastClickedTime + 0.3)
- {
- // DOUBLE CLICK!
- me.setSelected(me, i);
- //DemoConfirm_ListClick_Check_Gamestatus(me);
- }
- me.lastClickedDemo = i;
- me.lastClickedTime = time;
+ //DemoConfirm_ListClick_Check_Gamestatus(me);
}
float XonoticStatsList_keyDown(entity me, float scan, float ascii, float shift)
WeaponsList_MoveUp_Click(NULL, me);
return 1;
}
- else if(scan == 45) // -
+ else if(ascii == 45) // -
{
WeaponsList_MoveDown_Click(NULL, me);
return 1;
not_allowed_to_move = 0;
if(self.race_penalty)
not_allowed_to_move = 1;
- if(!autocvar_sv_ready_restart_after_countdown)
if(time < game_starttime)
not_allowed_to_move = 1;
if (!warmup_stage)
game_starttime = time + cvar("g_start_delay");
+ float i;
+ for(i = WEP_FIRST; i <= WEP_LAST; ++i)
+ WEP_ACTION(i, WR_INIT);
+
readplayerstartcvars();
}
--- /dev/null
+// models/items
+
+a_bullets_luma
+{
+ deformVertexes autosprite
+ cull none
+ nopicmip
+ {
+ map models/items/a_bullets_luma
+ blendfunc blend
+ }
+}
+
+a_cells_luma
+{
+ deformVertexes autosprite
+ cull none
+ nopicmip
+ {
+ map models/items/a_cells_luma
+ blendfunc blend
+ }
+}
+
+a_plasma_luma
+{
+ deformVertexes autosprite
+ cull none
+ nopicmip
+ {
+ map models/items/a_plasma_luma
+ blendfunc blend
+ }
+}
+
+a_rockets_luma
+{
+ deformVertexes autosprite
+ cull none
+ nopicmip
+ {
+ map models/items/a_rockets_luma
+ blendfunc blend
+ }
+}
+
+a_shells_luma
+{
+ deformVertexes autosprite
+ cull none
+ nopicmip
+ {
+ map models/items/a_shells_luma
+ blendfunc blend
+ }
+}
+
+g_fuel_luma
+{
+ deformVertexes autosprite
+ cull none
+ nopicmip
+ {
+ map models/items/g_fuel_luma
+ blendfunc blend
+ }
+}
+
+g_fuelregen_luma
+{
+ deformVertexes autosprite
+ cull none
+ nopicmip
+ {
+ map models/items/g_fuelregen_luma
+ blendfunc blend
+ }
+}
+
+g_h1_luma
+{
+ deformVertexes autosprite
+ cull none
+ nopicmip
+ {
+ map models/items/g_h1_luma
+ blendfunc blend
+ }
+}
+
+g_h25_luma
+{
+ deformVertexes autosprite
+ cull none
+ nopicmip
+ {
+ map models/items/g_h25_luma
+ blendfunc blend
+ }
+}
+
+g_h50_luma
+{
+ deformVertexes autosprite
+ cull none
+ nopicmip
+ {
+ map models/items/g_h50_luma
+ blendfunc blend
+ }
+}
+
+g_h100_luma
+{
+ deformVertexes autosprite
+ cull none
+ nopicmip
+ {
+ map models/items/g_h100_luma
+ blendfunc blend
+ }
+}
+
+g_invincible_luma
+{
+ deformVertexes autosprite
+ cull none
+ nopicmip
+ {
+ map models/items/g_invincible_luma
+ blendfunc blend
+ }
+}
+
+g_jetpack_luma
+{
+ deformVertexes autosprite
+ cull none
+ nopicmip
+ {
+ map models/items/g_jetpack_luma
+ blendfunc blend
+ }
+}
+
+g_strength_luma
+{
+ deformVertexes autosprite
+ cull none
+ nopicmip
+ {
+ map models/items/g_strength_luma
+ blendfunc blend
+ }
+}
+
+item_armor_big_luma
+{
+ deformVertexes autosprite
+ cull none
+ nopicmip
+ {
+ map models/items/item_armor_big_luma
+ blendfunc blend
+ }
+}
+
+item_armor_large_luma
+{
+ deformVertexes autosprite
+ cull none
+ nopicmip
+ {
+ map models/items/item_armor_large_luma
+ blendfunc blend
+ }
+}
+
+item_armor_medium_luma
+{
+ deformVertexes autosprite
+ cull none
+ nopicmip
+ {
+ map models/items/item_armor_medium_luma
+ blendfunc blend
+ }
+}
+
+item_armor_small_luma
+{
+ deformVertexes autosprite
+ cull none
+ nopicmip
+ {
+ map models/items/item_armor_small_luma
+ blendfunc blend
+ }
+}
+
+
+
+
+
+// models/weapons
+
+g_arc_luma
+{
+ deformVertexes autosprite
+ cull none
+ nopicmip
+ {
+ map models/weapons/g_arc_luma
+ blendfunc blend
+ }
+}
+
+g_campingrifle_luma
+{
+ deformVertexes autosprite
+ cull none
+ nopicmip
+ {
+ map models/weapons/g_campingrifle_luma
+ blendfunc blend
+ }
+}
+
+g_crylink_luma
+{
+ deformVertexes autosprite
+ cull none
+ nopicmip
+ {
+ map models/weapons/g_crylink_luma
+ blendfunc blend
+ }
+}
+
+g_electro_luma
+{
+ deformVertexes autosprite
+ cull none
+ nopicmip
+ {
+ map models/weapons/g_electro_luma
+ blendfunc blend
+ }
+}
+
+g_fireball_luma
+{
+ deformVertexes autosprite
+ cull none
+ nopicmip
+ {
+ map models/weapons/g_fireball_luma
+ blendfunc blend
+ }
+}
+
+g_gl_luma
+{
+ deformVertexes autosprite
+ cull none
+ nopicmip
+ {
+ map models/weapons/g_gl_luma
+ blendfunc blend
+ }
+}
+
+g_hagar_luma
+{
+ deformVertexes autosprite
+ cull none
+ nopicmip
+ {
+ map models/weapons/g_hagar_luma
+ blendfunc blend
+ }
+}
+
+g_hlac_luma
+{
+ deformVertexes autosprite
+ cull none
+ nopicmip
+ {
+ map models/weapons/g_hlac_luma
+ blendfunc blend
+ }
+}
+
+g_hookgun_luma
+{
+ deformVertexes autosprite
+ cull none
+ nopicmip
+ {
+ map models/weapons/g_hookgun_luma
+ blendfunc blend
+ }
+}
+
+g_laser_luma
+{
+ deformVertexes autosprite
+ cull none
+ nopicmip
+ {
+ map models/weapons/g_laser_luma
+ blendfunc blend
+ }
+}
+
+g_minelayer_luma
+{
+ deformVertexes autosprite
+ cull none
+ nopicmip
+ {
+ map models/weapons/g_minelayer_luma
+ blendfunc blend
+ }
+}
+
+g_minstanex_luma
+{
+ deformVertexes autosprite
+ cull none
+ nopicmip
+ {
+ map models/weapons/g_minstanex_luma
+ blendfunc blend
+ }
+}
+
+g_nex_luma
+{
+ deformVertexes autosprite
+ cull none
+ nopicmip
+ {
+ map models/weapons/g_nex_luma
+ blendfunc blend
+ }
+}
+
+g_porto_luma
+{
+ deformVertexes autosprite
+ cull none
+ nopicmip
+ {
+ map models/weapons/g_porto_luma
+ blendfunc blend
+ }
+}
+
+g_rl_luma
+{
+ deformVertexes autosprite
+ cull none
+ nopicmip
+ {
+ map models/weapons/g_rl_luma
+ blendfunc blend
+ }
+}
+
+g_seeker_luma
+{
+ deformVertexes autosprite
+ cull none
+ nopicmip
+ {
+ map models/weapons/g_seeker_luma
+ blendfunc blend
+ }
+}
+
+g_shockwave_luma
+{
+ deformVertexes autosprite
+ cull none
+ nopicmip
+ {
+ map models/weapons/g_shockwave_luma
+ blendfunc blend
+ }
+}
+
+g_shotgun_luma
+{
+ deformVertexes autosprite
+ cull none
+ nopicmip
+ {
+ map models/weapons/g_shotgun_luma
+ blendfunc blend
+ }
+}
+
+g_tuba_luma
+{
+ deformVertexes autosprite
+ cull none
+ nopicmip
+ {
+ map models/weapons/g_tuba_luma
+ blendfunc blend
+ }
+}
+
+g_uzi_luma
+{
+ deformVertexes autosprite
+ cull none
+ nopicmip
+ {
+ map models/weapons/g_uzi_luma
+ blendfunc blend
+ }
+}
--- /dev/null
+SOUND PLAYED WHEN
+
+open opening dialog
+close closing dialog
+focus moving focus to new item
+execute pressing button, enter key, or double click
+select using checkbox, radiobutton, or similar
+slide using slider or colorpicker
+clear clearing inputbox or keybind
+winner winning single player campaign