-Sun Oct 18 07:24:53 CEST 2020
+Fri Oct 30 07:23:43 CET 2020
"Project-Id-Version: Xonotic\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-10-18 07:23+0200\n"
-"PO-Revision-Date: 2020-08-09 05:23+0000\n"
+"PO-Revision-Date: 2020-10-18 05:23+0000\n"
"Last-Translator: divVerent <divVerent@xonotic.org>\n"
"Language-Team: Esperanto (http://www.transifex.com/team-xonotic/xonotic/"
"language/eo/)\n"
"Project-Id-Version: Xonotic\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-10-18 07:23+0200\n"
-"PO-Revision-Date: 2020-08-09 05:23+0000\n"
+"PO-Revision-Date: 2020-10-18 05:23+0000\n"
"Last-Translator: divVerent <divVerent@xonotic.org>\n"
"Language-Team: Spanish (Mexico) (http://www.transifex.com/team-xonotic/"
"xonotic/language/es_MX/)\n"
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
-# Aodren Le Gloanec <aodren.legloanec@gmail.com>, 2020
+# Gwlanbzh <aodren.legloanec@gmail.com>, 2020
# Calinou, 2013-2014
# Calinou <calinou9999@gmail.com>, 2012
# Hugo Locurcio, 2014
+# Gwlanbzh <aodren.legloanec@gmail.com>, 2020
# Hugo Locurcio, 2013-2014
# Maxime Paradis <taximus.micro@gmail.com>, 2011
# Mirio <opivy@hotmail.de>, 2017
"Project-Id-Version: Xonotic\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-10-18 07:23+0200\n"
-"PO-Revision-Date: 2020-10-18 05:23+0000\n"
-"Last-Translator: divVerent <divVerent@xonotic.org>\n"
+"PO-Revision-Date: 2020-10-29 16:58+0000\n"
+"Last-Translator: Yannick Le Guen <leguen.yannick@gmail.com>\n"
"Language-Team: French (http://www.transifex.com/team-xonotic/xonotic/"
"language/fr/)\n"
"Language: fr\n"
#: qcsrc/client/hud/panel/strafehud.qc:908
msgid "qu"
-msgstr ""
+msgstr "qu"
#: qcsrc/client/hud/panel/strafehud.qc:909
msgid "m"
-msgstr ""
+msgstr "m"
#: qcsrc/client/hud/panel/strafehud.qc:910
msgid "km"
-msgstr ""
+msgstr "km"
#: qcsrc/client/hud/panel/strafehud.qc:911
msgid "mi"
-msgstr ""
+msgstr "mi"
#: qcsrc/client/hud/panel/strafehud.qc:912
msgid "nmi"
-msgstr ""
+msgstr "M"
#: qcsrc/client/hud/panel/timer.qc:72
msgid "WARMUP"
#: qcsrc/menu/xonotic/dialog_firstrun.qc:78
msgid "Allow player statistics to use your nickname at stats.xonotic.org?"
msgstr ""
-"Autoriser les statistiques de joueurs à utiliser votre pseudonyme sur stats."
+"Autoriser les statistiques des joueurs à utiliser votre pseudonyme sur stats."
"xonotic.org ?"
#: qcsrc/menu/xonotic/dialog_firstrun.qc:84
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:57
msgid "no styling"
-msgstr ""
+msgstr "pas de style"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:58
msgid "progress bar"
-msgstr ""
+msgstr "barre de progression"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:59
msgid "gradient"
-msgstr ""
+msgstr "gradient"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:62
msgid "Demo mode"
-msgstr ""
+msgstr "Mode démo"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:66
msgid "Range:"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:75
msgid "Reset colors"
-msgstr ""
+msgstr "Réinitialiser les couleurs"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:79
msgid "Strafe bar:"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:83
msgid "Angle indicator:"
-msgstr ""
+msgstr "Indicateur d'angle :"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:85
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:93
msgid "Neutral:"
-msgstr ""
+msgstr "Neutre :"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:87
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:95
msgid "Good:"
-msgstr ""
+msgstr "Bon :"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:89
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:97
msgid "Overturn:"
-msgstr ""
+msgstr "Excessif :"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:124
msgid "Switch indicators:"
#: qcsrc/menu/xonotic/dialog_multiplayer_profile.qc:127
msgid "Allow player statistics to track your client"
-msgstr "Autoriser les statistiques à communiquer avec votre client"
+msgstr "Autoriser les statistiques à pister votre client"
#: qcsrc/menu/xonotic/dialog_multiplayer_profile.qc:131
msgid "Allow player statistics to use your nickname"
#: qcsrc/menu/xonotic/dialog_multiplayer_profile.qc:136
msgid "Allow player statistics to rank you in leaderboards"
-msgstr ""
-"Autoriser les statistiques de joueur à vous intégrer dans les classements"
+msgstr "Autoriser les statistiques à vous intégrer dans les classements"
#: qcsrc/menu/xonotic/dialog_multiplayer_profile.qc:152
msgid "Country"
#: qcsrc/menu/xonotic/dialog_uid2name.qc:10
msgid "Allow player statistics to use your nickname?"
-msgstr "Autoriser les statistiques de joueur à utiliser votre pseudonyme ?"
+msgstr "Autoriser les statistiques des joueurs à utiliser votre pseudonyme ?"
#: qcsrc/menu/xonotic/dialog_uid2name.qc:12
msgid "Answering \"No\" you will appear as \"Anonymous player\""
"Project-Id-Version: Xonotic\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-10-18 07:23+0200\n"
-"PO-Revision-Date: 2020-08-09 05:23+0000\n"
+"PO-Revision-Date: 2020-10-18 05:23+0000\n"
"Last-Translator: divVerent <divVerent@xonotic.org>\n"
"Language-Team: Gaelic, Scottish (http://www.transifex.com/team-xonotic/"
"xonotic/language/gd/)\n"
"Project-Id-Version: Xonotic\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-10-18 07:23+0200\n"
-"PO-Revision-Date: 2020-10-18 05:23+0000\n"
-"Last-Translator: divVerent <divVerent@xonotic.org>\n"
+"PO-Revision-Date: 2020-10-18 14:19+0000\n"
+"Last-Translator: Antonio <piuntn@gmail.com>\n"
"Language-Team: Italian (http://www.transifex.com/team-xonotic/xonotic/"
"language/it/)\n"
"Language: it\n"
#: qcsrc/client/hud/panel/strafehud.qc:908
msgid "qu"
-msgstr ""
+msgstr "qu"
#: qcsrc/client/hud/panel/strafehud.qc:909
msgid "m"
-msgstr ""
+msgstr "m"
#: qcsrc/client/hud/panel/strafehud.qc:910
msgid "km"
-msgstr ""
+msgstr "km"
#: qcsrc/client/hud/panel/strafehud.qc:911
msgid "mi"
-msgstr ""
+msgstr "mi"
#: qcsrc/client/hud/panel/strafehud.qc:912
msgid "nmi"
-msgstr ""
+msgstr "nmi"
#: qcsrc/client/hud/panel/timer.qc:72
msgid "WARMUP"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:47
msgid "StrafeHUD mode:"
-msgstr ""
+msgstr "Modo StrafeHUD:"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:50
msgid "View angle centered"
-msgstr ""
+msgstr "Basato su angolo visuale"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:51
msgid "Velocity angle centered"
-msgstr ""
+msgstr "Basato su angolo velocità"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:54
msgid "StrafeHUD style:"
-msgstr ""
+msgstr "Stile StrafeHUD:"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:57
msgid "no styling"
-msgstr ""
+msgstr "nessuno stile"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:58
msgid "progress bar"
-msgstr ""
+msgstr "barra di progresso"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:59
msgid "gradient"
-msgstr ""
+msgstr "gradiente"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:62
msgid "Demo mode"
-msgstr ""
+msgstr "Modo demo"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:66
msgid "Range:"
-msgstr ""
+msgstr "Raggio:"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:69
msgid "Center panel"
-msgstr ""
+msgstr "Centra pannello"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:75
msgid "Reset colors"
-msgstr ""
+msgstr "Reimposta colori"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:79
msgid "Strafe bar:"
-msgstr ""
+msgstr "Barra di strafe:"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:83
msgid "Angle indicator:"
-msgstr ""
+msgstr "Indicatore angolo:"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:85
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:93
msgid "Neutral:"
-msgstr ""
+msgstr "Neutrale:"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:87
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:95
msgid "Good:"
-msgstr ""
+msgstr "Buono:"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:89
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:97
msgid "Overturn:"
-msgstr ""
+msgstr "Eccessivo:"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:124
msgid "Switch indicators:"
-msgstr ""
+msgstr "Indicatori di cambio:"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:128
msgid "Direction caps:"
-msgstr ""
+msgstr "Limiti direzione:"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:130
msgid "Active:"
-msgstr ""
+msgstr "Attivo:"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:134
msgid "Inactive:"
-msgstr ""
+msgstr "Inattivo:"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qh:6
msgid "StrafeHUD Panel"
-msgstr ""
+msgstr "Pannello StrafeHUD"
#: qcsrc/menu/xonotic/dialog_hudpanel_timer.qc:16
msgid "Timer:"
#: qcsrc/menu/xonotic/dialog_settings_game_model.qc:58
msgid "Only in Duel"
-msgstr ""
+msgstr "Solo in Duello"
#: qcsrc/menu/xonotic/dialog_settings_game_model.qc:61
msgid "Body fading:"
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
+# Iso Lee, 2016
# Jisoo Lim <liminj0719@gmail.com>, 2017
-# Kyf Lee <coughingmouse@gmail.com>, 2016
-# Kyf Lee <coughingmouse@gmail.com>, 2016-2017
-# Kyf Lee <coughingmouse@gmail.com>, 2016-2017
-# Kyf Lee <coughingmouse@gmail.com>, 2016
+# Iso Lee, 2016
+# Iso Lee, 2016-2017
+# Iso Lee, 2016-2017
+# Iso Lee, 2016
msgid ""
msgstr ""
"Project-Id-Version: Xonotic\n"
"Project-Id-Version: Xonotic\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-10-18 07:23+0200\n"
-"PO-Revision-Date: 2020-10-18 05:23+0000\n"
-"Last-Translator: divVerent <divVerent@xonotic.org>\n"
+"PO-Revision-Date: 2020-10-18 11:42+0000\n"
+"Last-Translator: Jean Trindade Pereira <jean_trindade2@hotmail.com>\n"
"Language-Team: Portuguese (Brazil) (http://www.transifex.com/team-xonotic/"
"xonotic/language/pt_BR/)\n"
"Language: pt_BR\n"
#: qcsrc/client/hud/panel/strafehud.qc:908
msgid "qu"
-msgstr ""
+msgstr "qu"
#: qcsrc/client/hud/panel/strafehud.qc:909
msgid "m"
-msgstr ""
+msgstr "m"
#: qcsrc/client/hud/panel/strafehud.qc:910
msgid "km"
-msgstr ""
+msgstr "km"
#: qcsrc/client/hud/panel/strafehud.qc:911
msgid "mi"
-msgstr ""
+msgstr "mi"
#: qcsrc/client/hud/panel/strafehud.qc:912
msgid "nmi"
-msgstr ""
+msgstr "nmi"
#: qcsrc/client/hud/panel/timer.qc:72
msgid "WARMUP"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:47
msgid "StrafeHUD mode:"
-msgstr ""
+msgstr "Modo do StrafeHUD:"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:50
msgid "View angle centered"
-msgstr ""
+msgstr "Ângulo de visão centralizado"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:51
msgid "Velocity angle centered"
-msgstr ""
+msgstr "Ângulo de velocidade centralizado"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:54
msgid "StrafeHUD style:"
-msgstr ""
+msgstr "Estilo do StrafeHUD:"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:57
msgid "no styling"
-msgstr ""
+msgstr "nenhum estilo"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:58
msgid "progress bar"
-msgstr ""
+msgstr "barra de progresso"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:59
msgid "gradient"
-msgstr ""
+msgstr "gradiente"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:62
msgid "Demo mode"
-msgstr ""
+msgstr "Modo demo"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:66
msgid "Range:"
-msgstr ""
+msgstr "Alcance:"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:69
msgid "Center panel"
-msgstr ""
+msgstr "Painel central"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:75
msgid "Reset colors"
-msgstr ""
+msgstr "Redefinir cores"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:79
msgid "Strafe bar:"
-msgstr ""
+msgstr "Barra de strafe:"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:83
msgid "Angle indicator:"
-msgstr ""
+msgstr "Indicador de ângulo:"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:85
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:93
msgid "Neutral:"
-msgstr ""
+msgstr "Neutro:"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:87
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:95
msgid "Good:"
-msgstr ""
+msgstr "Bom:"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:89
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:97
msgid "Overturn:"
-msgstr ""
+msgstr "Inversão:"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:124
msgid "Switch indicators:"
-msgstr ""
+msgstr "Indicadores de troca:"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:128
msgid "Direction caps:"
-msgstr ""
+msgstr "Limites de direção:"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:130
msgid "Active:"
-msgstr ""
+msgstr "Ativo:"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:134
msgid "Inactive:"
-msgstr ""
+msgstr "Inativo:"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qh:6
msgid "StrafeHUD Panel"
-msgstr ""
+msgstr "Painel do StrafeHUD"
#: qcsrc/menu/xonotic/dialog_hudpanel_timer.qc:16
msgid "Timer:"
"Project-Id-Version: Xonotic\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-10-18 07:23+0200\n"
-"PO-Revision-Date: 2020-10-18 05:23+0000\n"
-"Last-Translator: divVerent <divVerent@xonotic.org>\n"
+"PO-Revision-Date: 2020-10-18 10:02+0000\n"
+"Last-Translator: Andrei Stepanov <adem4ik@gmail.com>\n"
"Language-Team: Russian (http://www.transifex.com/team-xonotic/xonotic/"
"language/ru/)\n"
"Language: ru\n"
#: qcsrc/client/hud/panel/strafehud.qc:908
msgid "qu"
-msgstr ""
+msgstr "юнит"
#: qcsrc/client/hud/panel/strafehud.qc:909
msgid "m"
-msgstr ""
+msgstr "м"
#: qcsrc/client/hud/panel/strafehud.qc:910
msgid "km"
-msgstr ""
+msgstr "км"
#: qcsrc/client/hud/panel/strafehud.qc:911
msgid "mi"
-msgstr ""
+msgstr "mi"
#: qcsrc/client/hud/panel/strafehud.qc:912
msgid "nmi"
-msgstr ""
+msgstr "nmi"
#: qcsrc/client/hud/panel/timer.qc:72
msgid "WARMUP"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:47
msgid "StrafeHUD mode:"
-msgstr ""
+msgstr "Режим HUD'a распрыжки:"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:50
msgid "View angle centered"
-msgstr ""
+msgstr "Угол обзора по центру"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:51
msgid "Velocity angle centered"
-msgstr ""
+msgstr "Угол скорости по центру"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:54
msgid "StrafeHUD style:"
-msgstr ""
+msgstr "Стиль HUD'a распрыжки:"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:57
msgid "no styling"
-msgstr ""
+msgstr "без стиля"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:58
msgid "progress bar"
-msgstr ""
+msgstr "полоса прогресса"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:59
msgid "gradient"
-msgstr ""
+msgstr "градиент"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:62
msgid "Demo mode"
-msgstr ""
+msgstr "Режим демо"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:66
msgid "Range:"
-msgstr ""
+msgstr "Диапазон:"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:69
msgid "Center panel"
-msgstr ""
+msgstr "Центральная панель"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:75
msgid "Reset colors"
-msgstr ""
+msgstr "Сбросить цвета"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:79
msgid "Strafe bar:"
-msgstr ""
+msgstr "Полоса стрейфа:"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:83
msgid "Angle indicator:"
-msgstr ""
+msgstr "Угловой индикатор:"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:85
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:93
msgid "Neutral:"
-msgstr ""
+msgstr "Нейтрально:"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:87
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:95
msgid "Good:"
-msgstr ""
+msgstr "Хорошо:"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:89
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:97
msgid "Overturn:"
-msgstr ""
+msgstr "Переповорот:"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:124
msgid "Switch indicators:"
-msgstr ""
+msgstr "Индикаторы переключения:"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:128
msgid "Direction caps:"
-msgstr ""
+msgstr "Колпачки направлений:"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:130
msgid "Active:"
-msgstr ""
+msgstr "Активный:"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:134
msgid "Inactive:"
-msgstr ""
+msgstr "Неактивный:"
#: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qh:6
msgid "StrafeHUD Panel"
-msgstr ""
+msgstr "Панель HUD'a распрыжки"
#: qcsrc/menu/xonotic/dialog_hudpanel_timer.qc:16
msgid "Timer:"
en "English" "English" 100%
en_AU "English (Australia)" "English (Australia)" 74%
es "Spanish" "Español" 98%
-fr "French" "Français" 98%
+fr "French" "Français" 99%
ga "Irish" "Irish" 31%
-it "Italian" "Italiano" 98%
+it "Italian" "Italiano" 100%
hu "Hungarian" "Magyar" 46%
nl "Dutch" "Nederlands" 61%
pl "Polish" "Polski" 71%
pt "Portuguese" "Português" 83%
-pt_BR "Portuguese (Brazil)" "Português (Brasil)" 98%
+pt_BR "Portuguese (Brazil)" "Português (Brasil)" 100%
ro "Romanian" "Romana" 73%
fi "Finnish" "Suomi" 98%
tr "Turkish" "Türkçe" 29%
el "Greek" "Ελληνική" 46%
be "Belarusian" "Беларуская" 53%
bg "Bulgarian" "Български" 62%
-ru "Russian" "Русский" 98%
+ru "Russian" "Русский" 100%
sr "Serbian" "Српски" 63%
uk "Ukrainian" "Українська" 49%
zh_CN "Chinese (China)" "中文" 57%
set g_buffs_medic_rot 0.2 "health rot rate multiplier"
set g_buffs_medic_max 1.5 "stable health medic limit multiplier"
set g_buffs_medic_regen 1.7 "health medic rate multiplier"
-set g_buffs_medic_heal_amount 15 "health given to nearby players on a delay"
-set g_buffs_medic_heal_range 400 "furthest away players can be from carrier to get healed by medic buff"
-set g_buffs_medic_heal_delay 1 "delay between team healing"
set g_buffs_vengeance 1 "vengeance buff: attackers also take damage"
set g_buffs_vengeance_time 60 "vengeance buff carry time"
set g_buffs_vengeance_damage_multiplier 0.4 "amount of damage dealt the attacker takes when hitting a target with vengeance"
#pragma once
+string autocvar_cl_announcer;
+float autocvar_cl_announcer_antispam = 2;
+float autocvar_cl_announcer_maptime = 3;
+
void Announcer();
string AnnouncerOption();
+++ /dev/null
-#pragma once
-
-bool autocvar__con_chat_maximized;
-bool autocvar__hud_configure;
-string autocvar__hud_panelorder;
-float autocvar__menu_alpha;
-string autocvar_accuracy_color_levels;
-float autocvar_bgmvolume;
-bool autocvar_camera_chase_smoothly;
-bool autocvar_camera_enable;
-bool autocvar_camera_forward_follows;
-bool autocvar_camera_free;
-float autocvar_camera_look_attenuation;
-float autocvar_camera_look_player;
-float autocvar_camera_mouse_threshold;
-bool autocvar_camera_reset;
-float autocvar_camera_speed_attenuation;
-float autocvar_camera_speed_chase;
-float autocvar_camera_speed_free;
-float autocvar_camera_speed_roll;
-int autocvar_chase_active;
-int autocvar_cl_allow_uid2name;
-string autocvar_cl_announcer;
-float autocvar_cl_announcer_antispam = 2;
-float autocvar_cl_announcer_maptime = 3;
-bool autocvar_cl_autodemo_delete;
-bool autocvar_cl_autodemo_delete_keeprecords;
-float autocvar_cl_casings_bronze_time;
-int autocvar_cl_casings_maxcount = 100;
-float autocvar_cl_casings_shell_time;
-bool autocvar_cl_casings_sloppy = 1;
-float autocvar_cl_casings_ticrate = 0.1;
-bool autocvar_cl_db_saveasdump;
-bool autocvar_cl_deathscoreboard;
-float autocvar_cl_effects_lightningarc_branchfactor_add;
-float autocvar_cl_effects_lightningarc_branchfactor_start;
-float autocvar_cl_effects_lightningarc_drift_end;
-float autocvar_cl_effects_lightningarc_drift_start;
-float autocvar_cl_effects_lightningarc_segmentlength;
-bool autocvar_cl_effects_lightningarc_simple;
-bool autocvar_cl_gentle;
-int autocvar_cl_gentle_damage;
-int autocvar_cl_gentle_gibs;
-int autocvar_cl_gentle_messages;
-float autocvar_cl_gibs_damageforcescale = 3.5;
-float autocvar_cl_gibs_lifetime = 14;
-int autocvar_cl_gibs_maxcount = 100;
-bool autocvar_cl_gibs_sloppy = 1;
-float autocvar_cl_gibs_ticrate = 0.1;
-float autocvar_cl_gibs_velocity_random = 1;
-float autocvar_cl_gibs_velocity_scale = 1;
-float autocvar_cl_gibs_avelocity_scale = 1;
-float autocvar_cl_gibs_velocity_up;
-bool autocvar_cl_hidewaypoints;
-bool autocvar_cl_lockview;
-bool autocvar_cl_nogibs;
-bool autocvar_cl_orthoview;
-bool autocvar_cl_orthoview_nofog;
-bool autocvar_cl_particlegibs;
-bool autocvar_cl_particles_oldvortexbeam;
-float autocvar_cl_particles_quality;
-bool autocvar_cl_projectiles_sloppy;
-bool autocvar_cl_readpicture_force;
-bool autocvar_cl_respawn_ghosts_keepcolors;
-bool autocvar_cl_reticle = 1;
-float autocvar_cl_reticle_normal_alpha = 1;
-bool autocvar_cl_reticle_weapon = 1;
-float autocvar_cl_reticle_weapon_alpha = 1;
-bool autocvar_cl_reticle_stretch;
-bool autocvar_cl_spawn_event_particles;
-bool autocvar_cl_spawn_event_sound = 1;
-// float autocvar_cl_spawn_point_model;
-bool autocvar_cl_spawn_point_particles;
-float autocvar_cl_spawn_point_dist_max = 1200;
-bool autocvar_cl_spawnzoom = 1;
-float autocvar_cl_spawnzoom_speed = 1;
-float autocvar_cl_spawnzoom_factor = 2;
-bool autocvar_cl_stripcolorcodes;
-bool autocvar_cl_vehicles_alarm = false;
-bool autocvar_cl_vehicles_hud_tactical = true;
-float autocvar_cl_vehicles_hudscale = 0.5;
-float autocvar_cl_vehicles_notify_time = 15;
-float autocvar_cl_vehicles_crosshair_size = 0.5;
-bool autocvar_cl_vehicles_crosshair_colorize = true;
-bool autocvar__vehicles_shownchasemessage;
-bool autocvar_cl_velocityzoom_enabled;
-float autocvar_cl_velocityzoom_factor;
-int autocvar_cl_velocityzoom_type = 3;
-float autocvar_cl_velocityzoom_speed;
-float autocvar_cl_velocityzoom_time;
-string autocvar_cl_weaponpriority;
-float autocvar_cl_zoomfactor;
-float autocvar_cl_zoomsensitivity;
-float autocvar_cl_zoomspeed;
-bool autocvar_cl_unpress_zoom_on_spawn = true;
-bool autocvar_cl_unpress_zoom_on_death = true;
-bool autocvar_cl_unpress_zoom_on_weapon_switch = true;
-bool autocvar_cl_unpress_attack_on_weapon_switch = false;
-bool autocvar_con_chat;
-bool autocvar_con_chatrect;
-float autocvar_con_chatsize;
-float autocvar_con_notify;
-float autocvar_con_notifysize;
-string autocvar_crosshair;
-string autocvar_crosshair_2d = "54";
-float autocvar_crosshair_alpha;
-string autocvar_crosshair_color;
-int autocvar_crosshair_color_special;
-float autocvar_crosshair_color_special_rainbow_brightness = 2;
-float autocvar_crosshair_color_special_rainbow_delay = 0.1;
-bool autocvar_crosshair_dot;
-float autocvar_crosshair_dot_alpha;
-string autocvar_crosshair_dot_color;
-bool autocvar_crosshair_dot_color_custom = 1;
-float autocvar_crosshair_dot_size;
-bool autocvar_crosshair_effect_scalefade;
-float autocvar_crosshair_effect_time = 0.2;
-bool autocvar_crosshair_enabled = 1;
-bool autocvar_crosshair_hitindication;
-string autocvar_crosshair_hitindication_color;
-string autocvar_crosshair_hitindication_per_weapon_color;
-float autocvar_crosshair_hitindication_speed;
-bool autocvar_crosshair_hittest;
-bool autocvar_crosshair_hittest_blur_teammate = 0;
-bool autocvar_crosshair_hittest_blur_wall = 1;
-//float autocvar_crosshair_hittest_scale = 1.25;
-bool autocvar_crosshair_hittest_showimpact;
-bool autocvar_crosshair_per_weapon;
-float autocvar_crosshair_pickup;
-float autocvar_crosshair_pickup_speed;
-bool autocvar_crosshair_ring;
-bool autocvar_crosshair_ring_inner;
-bool autocvar_crosshair_ring_minelayer;
-float autocvar_crosshair_ring_minelayer_alpha;
-bool autocvar_crosshair_ring_hagar;
-float autocvar_crosshair_ring_hagar_alpha;
-bool autocvar_crosshair_ring_vortex = 1;
-float autocvar_crosshair_ring_vortex_alpha = 0.15;
-float autocvar_crosshair_ring_vortex_currentcharge_movingavg_rate = 0.05;
-float autocvar_crosshair_ring_vortex_currentcharge_scale = 30;
-float autocvar_crosshair_ring_vortex_inner_alpha = 0.15;
-float autocvar_crosshair_ring_vortex_inner_color_blue = 0;
-float autocvar_crosshair_ring_vortex_inner_color_green = 0;
-float autocvar_crosshair_ring_vortex_inner_color_red = 0.8;
-bool autocvar_crosshair_ring_arc = 1;
-vector autocvar_crosshair_ring_arc_hot_color = '1 0 0';
-float autocvar_crosshair_ring_arc_cold_alpha = 0.2;
-float autocvar_crosshair_ring_arc_hot_alpha = 0.5;
-float autocvar_crosshair_ring_size;
-bool autocvar_crosshair_ring_reload;
-float autocvar_crosshair_ring_reload_alpha;
-float autocvar_crosshair_ring_reload_size;
-float autocvar_crosshair_size;
-bool autocvar_crosshair_chase = true;
-float autocvar_crosshair_chase_playeralpha = 0.25;
-int autocvar_ekg;
-float autocvar_fov;
-bool autocvar_hud_cursormode = true;
-float autocvar_hud_colorflash_alpha;
-bool autocvar_hud_configure_checkcollisions;
-bool autocvar_hud_configure_grid;
-float autocvar_hud_configure_grid_alpha;
-bool autocvar_hud_configure_teamcolorforced;
-bool autocvar_hud_contents;
-float autocvar_hud_contents_blur;
-float autocvar_hud_contents_blur_alpha;
-float autocvar_hud_contents_fadeintime;
-float autocvar_hud_contents_fadeouttime;
-float autocvar_hud_contents_lava_alpha;
-string autocvar_hud_contents_lava_color;
-float autocvar_hud_contents_slime_alpha;
-string autocvar_hud_contents_slime_color;
-float autocvar_hud_contents_water_alpha;
-string autocvar_hud_contents_water_color;
-bool autocvar_hud_damage;
-float autocvar_hud_damage_blur;
-float autocvar_hud_damage_blur_alpha;
-string autocvar_hud_damage_color;
-float autocvar_hud_damage_factor;
-float autocvar_hud_damage_fade_rate;
-float autocvar_hud_damage_gentle_alpha_multiplier;
-string autocvar_hud_damage_gentle_color;
-float autocvar_hud_damage_maxalpha;
-float autocvar_hud_damage_pain_threshold;
-float autocvar_hud_damage_pain_threshold_lower;
-float autocvar_hud_damage_pain_threshold_lower_health;
-float autocvar_hud_damage_pain_threshold_pulsating_min;
-float autocvar_hud_damage_pain_threshold_pulsating_period;
-bool autocvar_hud_powerup;
-bool autocvar_hud_postprocessing;
-float autocvar_hud_postprocessing_maxbluralpha;
-float autocvar_hud_postprocessing_maxblurradius;
-string autocvar_hud_dock;
-float autocvar_hud_dock_alpha;
-string autocvar_hud_dock_color;
-bool autocvar_hud_dock_color_team;
-bool autocvar_hud_panel_weapons_dynamichud = true;
-bool autocvar_hud_panel_ammo_dynamichud = true;
-bool autocvar_hud_panel_powerups_dynamichud = true;
-bool autocvar_hud_panel_healtharmor_dynamichud = true;
-bool autocvar_hud_panel_notify_dynamichud = true;
-bool autocvar_hud_panel_timer_dynamichud = true;
-bool autocvar_hud_panel_radar_dynamichud = true;
-bool autocvar_hud_panel_score_dynamichud = true;
-bool autocvar_hud_panel_racetimer_dynamichud = true;
-bool autocvar_hud_panel_vote_dynamichud = true;
-bool autocvar_hud_panel_modicons_dynamichud = true;
-bool autocvar_hud_panel_pressedkeys_dynamichud = true;
-bool autocvar_hud_panel_engineinfo_dynamichud = true;
-bool autocvar_hud_panel_infomessages_dynamichud = false;
-bool autocvar_hud_panel_physics_dynamichud = true;
-bool autocvar_hud_panel_centerprint_dynamichud = true;
-//bool autocvar_hud_panel_itemstime_dynamichud = true;
-bool autocvar_hud_panel_strafehud_dynamichud = true;
-bool autocvar_hud_panel_healtharmor_hide_ondeath = false;
-bool autocvar_hud_panel_ammo_hide_ondeath = false;
-bool autocvar_hud_panel_powerups_hide_ondeath = false;
-bool autocvar_hud_panel_weapons_hide_ondeath = false;
-bool autocvar_hud_panel_ammo;
-bool autocvar_hud_panel_ammo_iconalign;
-int autocvar_hud_panel_ammo_maxammo;
-bool autocvar_hud_panel_ammo_onlycurrent;
-float autocvar_hud_panel_ammo_noncurrent_alpha = 0.7;
-float autocvar_hud_panel_ammo_noncurrent_scale = 1;
-bool autocvar_hud_panel_ammo_progressbar;
-string autocvar_hud_panel_ammo_progressbar_name;
-float autocvar_hud_panel_ammo_progressbar_xoffset;
-bool autocvar_hud_panel_ammo_text;
-string autocvar_hud_panel_bg;
-float autocvar_hud_panel_bg_alpha;
-float autocvar_hud_panel_bg_border;
-vector autocvar_hud_panel_bg_color;
-float autocvar_hud_panel_bg_color_team;
-float autocvar_hud_panel_bg_padding;
-bool autocvar_hud_panel_centerprint;
-float autocvar_hud_panel_centerprint_align;
-float autocvar_hud_panel_centerprint_fade_in = 0.2;
-float autocvar_hud_panel_centerprint_fade_out = 0.5;
-float autocvar_hud_panel_centerprint_fade_subsequent = 1;
-float autocvar_hud_panel_centerprint_fade_subsequent_passone = 3;
-float autocvar_hud_panel_centerprint_fade_subsequent_passone_minalpha = 0.5;
-float autocvar_hud_panel_centerprint_fade_subsequent_passtwo = 10;
-float autocvar_hud_panel_centerprint_fade_subsequent_passtwo_minalpha = 0.5;
-float autocvar_hud_panel_centerprint_fade_subsequent_minfontsize = 0.75;
-float autocvar_hud_panel_centerprint_fade_minfontsize = 0;
-bool autocvar_hud_panel_centerprint_flip;
-float autocvar_hud_panel_centerprint_fontscale;
-float autocvar_hud_panel_centerprint_fontscale_bold = 1.4;
-float autocvar_hud_panel_centerprint_time;
-bool autocvar_hud_panel_chat;
-bool autocvar_hud_panel_engineinfo;
-float autocvar_hud_panel_engineinfo_framecounter_decimals;
-float autocvar_hud_panel_engineinfo_framecounter_time;
-float autocvar_hud_panel_fg_alpha;
-bool autocvar_hud_panel_healtharmor;
-int autocvar_hud_panel_healtharmor_baralign;
-bool autocvar_hud_panel_healtharmor_combined;
-bool autocvar_hud_panel_healtharmor_flip;
-int autocvar_hud_panel_healtharmor_iconalign;
-int autocvar_hud_panel_healtharmor_maxarmor;
-int autocvar_hud_panel_healtharmor_maxhealth;
-bool autocvar_hud_panel_healtharmor_progressbar;
-string autocvar_hud_panel_healtharmor_progressbar_armor;
-string autocvar_hud_panel_healtharmor_progressbar_health;
-bool autocvar_hud_panel_healtharmor_progressbar_gfx;
-float autocvar_hud_panel_healtharmor_progressbar_gfx_damage;
-float autocvar_hud_panel_healtharmor_progressbar_gfx_lowhealth;
-float autocvar_hud_panel_healtharmor_progressbar_gfx_smooth;
-int autocvar_hud_panel_healtharmor_text;
-bool autocvar_hud_panel_infomessages;
-bool autocvar_hud_panel_infomessages_flip;
-float autocvar_hud_panel_mapvote_highlight_border = 1;
-bool autocvar_hud_panel_modicons;
-int autocvar_hud_panel_modicons_ca_layout;
-int autocvar_hud_panel_modicons_freezetag_layout;
-bool autocvar_hud_panel_notify;
-float autocvar_hud_panel_notify_fadetime;
-float autocvar_hud_panel_notify_flip;
-float autocvar_hud_panel_notify_fontsize;
-float autocvar_hud_panel_notify_time;
-float autocvar_hud_panel_notify_icon_aspect;
-bool autocvar_hud_panel_physics;
-float autocvar_hud_panel_physics_acceleration_movingaverage = 1;
-float autocvar_hud_panel_physics_acceleration_progressbar_mode;
-float autocvar_hud_panel_physics_acceleration_progressbar_scale;
-float autocvar_hud_panel_physics_acceleration_progressbar_nonlinear;
-float autocvar_hud_panel_physics_acceleration_max;
-float autocvar_hud_panel_physics_update_interval;
-int autocvar_hud_panel_physics_progressbar;
-bool autocvar_hud_panel_physics_acceleration_vertical;
-int autocvar_hud_panel_physics_baralign;
-bool autocvar_hud_panel_physics_flip;
-float autocvar_hud_panel_physics_speed_max;
-int autocvar_hud_panel_physics_speed_unit;
-bool autocvar_hud_panel_physics_speed_unit_show;
-bool autocvar_hud_panel_physics_speed_vertical;
-int autocvar_hud_panel_physics_text;
-float autocvar_hud_panel_physics_text_scale;
-bool autocvar_hud_panel_physics_topspeed;
-float autocvar_hud_panel_physics_topspeed_time;
-bool autocvar_hud_panel_powerups;
-int autocvar_hud_panel_powerups_baralign;
-int autocvar_hud_panel_powerups_iconalign;
-bool autocvar_hud_panel_powerups_progressbar;
-bool autocvar_hud_panel_powerups_text;
-int autocvar_hud_panel_pressedkeys;
-float autocvar_hud_panel_pressedkeys_aspect;
-bool autocvar_hud_panel_pressedkeys_attack;
-float autocvar_hud_panel_quickmenu_translatecommands;
-string autocvar_hud_panel_quickmenu_file;
-float autocvar_hud_panel_quickmenu_time;
-bool autocvar_hud_panel_racetimer;
-int autocvar_hud_panel_radar;
-float autocvar_hud_panel_radar_foreground_alpha;
-float autocvar_hud_panel_radar_maximized_scale;
-vector autocvar_hud_panel_radar_maximized_size;
-float autocvar_hud_panel_radar_rotation;
-float autocvar_hud_panel_radar_scale;
-int autocvar_hud_panel_radar_zoommode;
-float autocvar_hud_panel_radar_maximized_rotation;
-int autocvar_hud_panel_radar_maximized_zoommode;
-bool autocvar_hud_panel_score;
-bool autocvar_hud_panel_score_rankings;
-int autocvar_hud_panel_strafehud = 3;
-bool autocvar__hud_panel_strafehud_demo = false;
-int autocvar_hud_panel_strafehud_mode = 0;
-float autocvar_hud_panel_strafehud_range = 0;
-int autocvar_hud_panel_strafehud_style = 1;
-int autocvar_hud_panel_strafehud_unit = 1;
-bool autocvar_hud_panel_strafehud_unit_show = true;
-vector autocvar_hud_panel_strafehud_bar_neutral_color = '1 1 1';
-float autocvar_hud_panel_strafehud_bar_neutral_alpha = 0.3;
-vector autocvar_hud_panel_strafehud_bar_accel_color = '0 1 0';
-float autocvar_hud_panel_strafehud_bar_accel_alpha = 0.3;
-vector autocvar_hud_panel_strafehud_bar_overturn_color = '1 0 1';
-float autocvar_hud_panel_strafehud_bar_overturn_alpha = 0.3;
-float autocvar_hud_panel_strafehud_angle_alpha = 0.8;
-float autocvar_hud_panel_strafehud_angle_height = 1.5;
-float autocvar_hud_panel_strafehud_angle_width = 0.005;
-vector autocvar_hud_panel_strafehud_angle_neutral_color = '1 1 0';
-vector autocvar_hud_panel_strafehud_angle_accel_color = '0 1 1';
-vector autocvar_hud_panel_strafehud_angle_overturn_color = '1 0 1';
-float autocvar_hud_panel_strafehud_switch_minspeed = -1;
-vector autocvar_hud_panel_strafehud_switch_active_color = '0 1 0';
-float autocvar_hud_panel_strafehud_switch_active_alpha = 1;
-vector autocvar_hud_panel_strafehud_switch_inactive_color = '1 1 0';
-float autocvar_hud_panel_strafehud_switch_inactive_alpha = 1;
-float autocvar_hud_panel_strafehud_switch_width = 0.0075;
-vector autocvar_hud_panel_strafehud_direction_color = '0 0.5 1';
-float autocvar_hud_panel_strafehud_direction_alpha = 1;
-float autocvar_hud_panel_strafehud_direction_width = 0.25;
-float autocvar_hud_panel_strafehud_direction_length = 0.02;
-float autocvar_hud_panel_strafehud_slickdetector_range = 0;
-int autocvar_hud_panel_strafehud_slickdetector_granularity = 2;
-vector autocvar_hud_panel_strafehud_slickdetector_color = '0 1 1';
-float autocvar_hud_panel_strafehud_slickdetector_alpha = 0.5;
-float autocvar_hud_panel_strafehud_slickdetector_height = 0.125;
-float autocvar_hud_panel_strafehud_startspeed_fade = 0;
-vector autocvar_hud_panel_strafehud_startspeed_color = '1 0.75 0';
-float autocvar_hud_panel_strafehud_startspeed_size = 1.5;
-float autocvar_hud_panel_strafehud_jumpheight_fade = 0;
-float autocvar_hud_panel_strafehud_jumpheight_min = 50;
-vector autocvar_hud_panel_strafehud_jumpheight_color = '0 1 0.75';
-float autocvar_hud_panel_strafehud_jumpheight_size = 1.5;
-float autocvar_hud_panel_strafehud_timeout_air = 0.1;
-float autocvar_hud_panel_strafehud_timeout_ground = 0.03333333;
-float autocvar_hud_panel_strafehud_timeout_turn = 0.1;
-float autocvar_hud_panel_strafehud_timeout_direction = 0.5;
-float autocvar_hud_panel_strafehud_antiflicker_angle = 0.01;
-float autocvar_hud_panel_strafehud_antiflicker_speed = 0.0001;
-bool autocvar_hud_panel_timer;
-bool autocvar_hud_panel_timer_increment;
-float autocvar_hud_panel_update_interval;
-bool autocvar_hud_panel_vote;
-float autocvar_hud_panel_vote_alreadyvoted_alpha;
-bool autocvar_hud_panel_weapons;
-bool autocvar_hud_panel_weapons_accuracy;
-bool autocvar_hud_panel_weapons_ammo;
-float autocvar_hud_panel_weapons_ammo_alpha;
-string autocvar_hud_panel_weapons_ammo_color;
-int autocvar_hud_panel_weapons_ammo_full_cells;
-int autocvar_hud_panel_weapons_ammo_full_plasma;
-int autocvar_hud_panel_weapons_ammo_full_fuel;
-int autocvar_hud_panel_weapons_ammo_full_nails;
-int autocvar_hud_panel_weapons_ammo_full_rockets;
-int autocvar_hud_panel_weapons_ammo_full_shells;
-float autocvar_hud_panel_weapons_aspect;
-bool autocvar_hud_panel_weapons_complainbubble;
-string autocvar_hud_panel_weapons_complainbubble_color_donthave;
-string autocvar_hud_panel_weapons_complainbubble_color_outofammo;
-string autocvar_hud_panel_weapons_complainbubble_color_unavailable;
-float autocvar_hud_panel_weapons_complainbubble_fadetime;
-float autocvar_hud_panel_weapons_complainbubble_padding;
-float autocvar_hud_panel_weapons_complainbubble_time;
-int autocvar_hud_panel_weapons_label;
-float autocvar_hud_panel_weapons_label_scale = 0.5;
-int autocvar_hud_panel_weapons_onlyowned;
-float autocvar_hud_panel_weapons_noncurrent_alpha = 1;
-float autocvar_hud_panel_weapons_noncurrent_scale = 1;
-float autocvar_hud_panel_weapons_selection_radius = 0;
-float autocvar_hud_panel_weapons_selection_speed = 10;
-float autocvar_hud_panel_weapons_timeout;
-int autocvar_hud_panel_weapons_timeout_effect;
-bool autocvar_hud_panel_weapons_orderbyimpulse = true;
-float autocvar_hud_panel_weapons_timeout_fadebgmin;
-float autocvar_hud_panel_weapons_timeout_fadefgmin;
-float autocvar_hud_panel_weapons_timeout_speed_in = 0.25;
-float autocvar_hud_panel_weapons_timeout_speed_out = 0.75;
-//float autocvar_hud_panel_quickmenu;
-float autocvar_hud_panel_quickmenu_align;
-vector autocvar_hud_progressbar_acceleration_color;
-vector autocvar_hud_progressbar_acceleration_neg_color;
-float autocvar_hud_progressbar_alpha;
-vector autocvar_hud_progressbar_armor_color;
-vector autocvar_hud_progressbar_fuel_color;
-vector autocvar_hud_progressbar_oxygen_color = '0.1 1 1';
-vector autocvar_hud_progressbar_health_color;
-vector autocvar_hud_progressbar_nexball_color;
-vector autocvar_hud_progressbar_shield_color;
-vector autocvar_hud_progressbar_speed_color;
-vector autocvar_hud_progressbar_strength_color;
-vector autocvar_hud_progressbar_superweapons_color;
-vector autocvar_hud_progressbar_vehicles_ammo1_color;
-vector autocvar_hud_progressbar_vehicles_ammo2_color;
-bool autocvar_hud_showbinds;
-bool autocvar_hud_showbinds_limit;
-bool autocvar__hud_showbinds_reload;
-bool autocvar_hud_shownames;
-bool autocvar_hud_shownames_enemies;
-float autocvar_hud_shownames_crosshairdistance;
-float autocvar_hud_shownames_crosshairdistance_time;
-float autocvar_hud_shownames_crosshairdistance_antioverlap;
-bool autocvar_hud_shownames_self;
-bool autocvar_hud_shownames_status;
-float autocvar_hud_shownames_statusbar_height;
-float autocvar_hud_shownames_statusbar_highlight = 1;
-float autocvar_hud_shownames_aspect;
-float autocvar_hud_shownames_fontsize;
-int autocvar_hud_shownames_decolorize;
-float autocvar_hud_shownames_alpha;
-bool autocvar_hud_shownames_resize;
-float autocvar_hud_shownames_mindistance;
-float autocvar_hud_shownames_maxdistance;
-bool autocvar_hud_shownames_antioverlap;
-float autocvar_hud_shownames_antioverlap_distance;
-float autocvar_hud_shownames_offset;
-string autocvar_hud_skin;
-float autocvar_menu_mouse_speed;
-string autocvar_menu_skin;
-int autocvar_r_fakelight;
-bool autocvar_r_fullbright;
-float autocvar_r_letterbox;
-string autocvar_scoreboard_columns;
-bool autocvar_v_flipped;
-int autocvar_vid_conheight;
-int autocvar_vid_conwidth;
-float autocvar_vid_pixelheight;
-float autocvar_viewsize;
-bool autocvar_cl_eventchase_vehicle = 1;
-vector autocvar_cl_eventchase_vehicle_viewoffset = '0 0 80';
-float autocvar_cl_eventchase_vehicle_distance = 250;
-int autocvar_cl_hitsound;
-float autocvar_cl_hitsound_min_pitch = 0.75;
-float autocvar_cl_hitsound_max_pitch = 1.5;
-float autocvar_cl_hitsound_nom_damage = 25;
-float autocvar_cl_hitsound_antispam_time;
-bool autocvar_cl_eventchase_spectated_change = false;
-float autocvar_cl_eventchase_spectated_change_time = 1;
-int autocvar_cl_eventchase_death = 2;
-float autocvar_cl_eventchase_distance = 140;
-bool autocvar_cl_eventchase_frozen = false;
-float autocvar_cl_eventchase_speed = 1.3;
-vector autocvar_cl_eventchase_maxs = '12 12 8';
-vector autocvar_cl_eventchase_mins = '-12 -12 -8';
-vector autocvar_cl_eventchase_viewoffset = '0 0 20';
-float autocvar_cl_lerpexcess; // TODO: int?
-string autocvar__togglezoom;
-int autocvar_cl_damageeffect;
-float autocvar_cl_damageeffect_ticrate;
-float autocvar_cl_damageeffect_bones;
-bool autocvar_cl_damageeffect_distribute;
-float autocvar_cl_damageeffect_lifetime;
-float autocvar_cl_damageeffect_lifetime_min;
-float autocvar_cl_damageeffect_lifetime_max;
-int autocvar_cl_playerdetailreduction;
-int autocvar_cl_modeldetailreduction;
-float autocvar_cl_loddistance1 = 768;
-float autocvar_cl_loddistance2 = 2048;
-bool autocvar_cl_forceplayermodels;
-bool autocvar_cl_forceplayercolors;
-string autocvar_cl_forcemyplayermodel;
-int autocvar_cl_forcemyplayerskin;
-int autocvar_cl_forcemyplayercolors;
-int autocvar__cl_color;
-int autocvar__cl_playerskin;
-string autocvar__cl_playermodel;
-float autocvar_cl_deathglow;
-float autocvar_cl_deathglow_min = 0.5;
-bool autocvar_developer_csqcentities;
-float autocvar_cl_jetpack_attenuation = 2;
-bool autocvar_cl_showspectators;
-int autocvar_cl_nade_timer;
-bool autocvar_r_drawviewmodel;
-bool autocvar_cl_race_cptimes_onlyself;
-bool autocvar_cl_race_cptimes_showself = false;
#include "bgmscript.qh"
-#include <client/autocvars.qh>
#include <client/main.qh>
#include <common/util.qh>
#include <common/mapobjects/bgmscript.qh>
+float autocvar_bgmvolume;
+
classfield(BGMScript) .float just_toggled;
float bgmtime;
// Last updated: December 28th, 2011
// ==============================================
-#include <client/autocvars.qh>
#include <client/draw.qh>
#include <client/hud/_mod.qh>
#include <client/hud/panel/quickmenu.qh>
#include "csqcmodel_hooks.qh"
-#include <client/autocvars.qh>
#include <client/mutators/_mod.qh>
#include <client/player_skeleton.qh>
#include <client/weapons/projectile.qh>
return;
this.csqcmodel_predraw_run = framecount;
- if(!this.modelindex || this.model == "null" || this.alpha < 0)
+ if(!this.modelindex || this.model == "null")
{
this.drawmask = 0;
if(this.snd_looping > 0)
tracebox(this.origin + '0 0 1', this.mins, this.maxs, this.origin - '0 0 4', MOVE_NORMAL, this);
if(trace_startsolid || trace_fraction < 1)
onground = 1;
+ // predicted clients handle smoothing in the prediction code
+ this.origin = CSQCModel_ApplyStairSmoothing(this, onground, this.origin);
}
animdecide_load_if_needed(this);
animdecide_setimplicitstate(this, onground);
#pragma once
+bool autocvar_cl_respawn_ghosts_keepcolors;
+int autocvar_cl_playerdetailreduction;
+int autocvar_cl_modeldetailreduction;
+float autocvar_cl_loddistance1 = 768;
+float autocvar_cl_loddistance2 = 2048;
+bool autocvar_cl_forceplayermodels;
+bool autocvar_cl_forceplayercolors;
+string autocvar_cl_forcemyplayermodel;
+int autocvar_cl_forcemyplayerskin;
+int autocvar_cl_forcemyplayercolors;
+int autocvar__cl_color;
+int autocvar__cl_playerskin;
+string autocvar__cl_playermodel;
+float autocvar_cl_deathglow;
+float autocvar_cl_deathglow_min = 0.5;
+float autocvar_cl_jetpack_attenuation = 2;
+
// FEATURE: EF_NODRAW workalike
const int EF_BRIGHTFIELD = BIT(0);
const int EF_BRIGHTLIGHT = BIT(2);
#include "crosshair.qh"
-#include <client/autocvars.qh>
#include <client/draw.qh>
#include <client/hud/panel/scoreboard.qh>
#include <client/view.qh>
#pragma once
+bool autocvar_cl_reticle = 1;
+float autocvar_cl_reticle_normal_alpha = 1;
+bool autocvar_cl_reticle_weapon = 1;
+float autocvar_cl_reticle_weapon_alpha = 1;
+bool autocvar_cl_reticle_stretch;
+string autocvar_crosshair;
+string autocvar_crosshair_2d = "54";
+float autocvar_crosshair_alpha;
+string autocvar_crosshair_color;
+int autocvar_crosshair_color_special;
+float autocvar_crosshair_color_special_rainbow_brightness = 2;
+float autocvar_crosshair_color_special_rainbow_delay = 0.1;
+bool autocvar_crosshair_dot;
+float autocvar_crosshair_dot_alpha;
+string autocvar_crosshair_dot_color;
+bool autocvar_crosshair_dot_color_custom = 1;
+float autocvar_crosshair_dot_size;
+bool autocvar_crosshair_effect_scalefade;
+float autocvar_crosshair_effect_time = 0.2;
+bool autocvar_crosshair_enabled = 1;
+bool autocvar_crosshair_hitindication;
+string autocvar_crosshair_hitindication_color;
+string autocvar_crosshair_hitindication_per_weapon_color;
+float autocvar_crosshair_hitindication_speed;
+bool autocvar_crosshair_hittest;
+bool autocvar_crosshair_hittest_blur_teammate = 0;
+bool autocvar_crosshair_hittest_blur_wall = 1;
+//float autocvar_crosshair_hittest_scale = 1.25;
+bool autocvar_crosshair_hittest_showimpact;
+bool autocvar_crosshair_per_weapon;
+float autocvar_crosshair_pickup;
+float autocvar_crosshair_pickup_speed;
+bool autocvar_crosshair_ring;
+bool autocvar_crosshair_ring_inner;
+bool autocvar_crosshair_ring_minelayer;
+float autocvar_crosshair_ring_minelayer_alpha;
+bool autocvar_crosshair_ring_hagar;
+float autocvar_crosshair_ring_hagar_alpha;
+bool autocvar_crosshair_ring_vortex = 1;
+float autocvar_crosshair_ring_vortex_alpha = 0.15;
+float autocvar_crosshair_ring_vortex_currentcharge_movingavg_rate = 0.05;
+float autocvar_crosshair_ring_vortex_currentcharge_scale = 30;
+float autocvar_crosshair_ring_vortex_inner_alpha = 0.15;
+float autocvar_crosshair_ring_vortex_inner_color_blue = 0;
+float autocvar_crosshair_ring_vortex_inner_color_green = 0;
+float autocvar_crosshair_ring_vortex_inner_color_red = 0.8;
+bool autocvar_crosshair_ring_arc = 1;
+vector autocvar_crosshair_ring_arc_hot_color = '1 0 0';
+float autocvar_crosshair_ring_arc_cold_alpha = 0.2;
+float autocvar_crosshair_ring_arc_hot_alpha = 0.5;
+float autocvar_crosshair_ring_size;
+bool autocvar_crosshair_ring_reload;
+float autocvar_crosshair_ring_reload_alpha;
+float autocvar_crosshair_ring_reload_size;
+float autocvar_crosshair_size;
+bool autocvar_crosshair_chase = true;
+float autocvar_crosshair_chase_playeralpha = 0.25;
+
float vortex_charge_movingavg; // WEAPONTODO
vector crosshair_getcolor(entity this, float health_stat);
#include <client/draw.qh>
#include <client/hud/hud_config.qh>
+#include <client/hud/panel/chat.qh>
#include <client/hud/panel/scoreboard.qh>
#include <client/items/items.qh>
#include <client/mapvoting.qh>
float current_player;
+float autocvar__menu_alpha; // updated by the menu VM, useful to tell when the menu is being drawn
+
+string autocvar__hud_panelorder;
+
+bool autocvar_hud_cursormode = true;
+string autocvar_hud_dock;
+float autocvar_hud_dock_alpha;
+string autocvar_hud_dock_color;
+bool autocvar_hud_dock_color_team;
+string autocvar_hud_panel_bg;
+float autocvar_hud_panel_bg_alpha;
+float autocvar_hud_panel_bg_border;
+vector autocvar_hud_panel_bg_color;
+float autocvar_hud_panel_bg_color_team;
+float autocvar_hud_panel_bg_padding;
+float autocvar_hud_panel_fg_alpha;
+string autocvar_hud_skin;
+float autocvar_hud_progressbar_alpha;
+float autocvar_hud_panel_update_interval;
+
float autocvar_hud_dynamic_follow;
float autocvar_hud_dynamic_follow_scale;
vector autocvar_hud_dynamic_follow_scale_xyz;
#include "hud_config.qh"
-#include <client/autocvars.qh>
#include <client/draw.qh>
#include <client/hud/hud.qh>
+#include <client/hud/panel/chat.qh>
#include <client/hud/panel/scoreboard.qh>
#include <client/view.qh>
#pragma once
+bool autocvar__hud_configure;
+bool autocvar_hud_configure_checkcollisions;
+bool autocvar_hud_configure_grid;
+float autocvar_hud_configure_grid_alpha;
+bool autocvar_hud_configure_teamcolorforced;
+
const int S_MOUSE1 = 1;
const int S_MOUSE2 = 2;
const int S_MOUSE3 = 4;
#include "ammo.qh"
-#include <client/autocvars.qh>
#include <client/draw.qh>
#include <client/items/items.qh>
#include <client/view.qh>
#pragma once
#include "../panel.qh"
+bool autocvar_hud_panel_ammo;
+bool autocvar_hud_panel_ammo_dynamichud = true;
+bool autocvar_hud_panel_ammo_hide_ondeath = false;
+bool autocvar_hud_panel_ammo_iconalign;
+int autocvar_hud_panel_ammo_maxammo;
+bool autocvar_hud_panel_ammo_onlycurrent;
+float autocvar_hud_panel_ammo_noncurrent_alpha = 0.7;
+float autocvar_hud_panel_ammo_noncurrent_scale = 1;
+bool autocvar_hud_panel_ammo_progressbar;
+string autocvar_hud_panel_ammo_progressbar_name;
+float autocvar_hud_panel_ammo_progressbar_xoffset;
+bool autocvar_hud_panel_ammo_text;
+
void DrawNadeProgressBar(vector myPos, vector mySize, float progress, vector color);
#pragma once
#include "../panel.qh"
+bool autocvar_hud_panel_centerprint;
+float autocvar_hud_panel_centerprint_align;
+float autocvar_hud_panel_centerprint_fade_in = 0.2;
+float autocvar_hud_panel_centerprint_fade_out = 0.5;
+float autocvar_hud_panel_centerprint_fade_subsequent = 1;
+float autocvar_hud_panel_centerprint_fade_subsequent_passone = 3;
+float autocvar_hud_panel_centerprint_fade_subsequent_passone_minalpha = 0.5;
+float autocvar_hud_panel_centerprint_fade_subsequent_passtwo = 10;
+float autocvar_hud_panel_centerprint_fade_subsequent_passtwo_minalpha = 0.5;
+float autocvar_hud_panel_centerprint_fade_subsequent_minfontsize = 0.75;
+float autocvar_hud_panel_centerprint_fade_minfontsize = 0;
+bool autocvar_hud_panel_centerprint_flip;
+float autocvar_hud_panel_centerprint_fontscale;
+float autocvar_hud_panel_centerprint_fontscale_bold = 1.4;
+bool autocvar_hud_panel_centerprint_dynamichud = true;
+float autocvar_hud_panel_centerprint_time;
+
void centerprint_Add(int new_id, string strMessage, float duration, int countdown_num);
void centerprint_AddStandard(string strMessage);
void centerprint_Kill(int id);
#include "chat.qh"
-#include <client/autocvars.qh>
#include <client/draw.qh>
// Chat (#12)
#pragma once
#include "../panel.qh"
+
+bool autocvar_hud_panel_chat;
+
+bool autocvar__con_chat_maximized;
+bool autocvar_con_chat;
+bool autocvar_con_chatrect;
+float autocvar_con_chatsize;
+float autocvar_con_notify;
+float autocvar_con_notifysize;
#include "engineinfo.qh"
-#include <client/autocvars.qh>
#include <client/draw.qh>
// Engine info (#13)
#pragma once
#include "../panel.qh"
+
+bool autocvar_hud_panel_engineinfo;
+bool autocvar_hud_panel_engineinfo_dynamichud = true;
+float autocvar_hud_panel_engineinfo_framecounter_decimals;
+float autocvar_hud_panel_engineinfo_framecounter_time;
#pragma once
#include "../panel.qh"
+
+bool autocvar_hud_panel_healtharmor;
+int autocvar_hud_panel_healtharmor_baralign;
+bool autocvar_hud_panel_healtharmor_combined;
+bool autocvar_hud_panel_healtharmor_dynamichud = true;
+bool autocvar_hud_panel_healtharmor_flip;
+bool autocvar_hud_panel_healtharmor_hide_ondeath = false;
+int autocvar_hud_panel_healtharmor_iconalign;
+int autocvar_hud_panel_healtharmor_maxarmor;
+int autocvar_hud_panel_healtharmor_maxhealth;
+bool autocvar_hud_panel_healtharmor_progressbar;
+string autocvar_hud_panel_healtharmor_progressbar_armor;
+string autocvar_hud_panel_healtharmor_progressbar_health;
+bool autocvar_hud_panel_healtharmor_progressbar_gfx;
+float autocvar_hud_panel_healtharmor_progressbar_gfx_damage;
+float autocvar_hud_panel_healtharmor_progressbar_gfx_lowhealth;
+float autocvar_hud_panel_healtharmor_progressbar_gfx_smooth;
+int autocvar_hud_panel_healtharmor_text;
+
+vector autocvar_hud_progressbar_armor_color;
+vector autocvar_hud_progressbar_fuel_color;
+vector autocvar_hud_progressbar_health_color;
+vector autocvar_hud_progressbar_oxygen_color = '0.1 1 1';
#include "infomessages.qh"
-#include <client/autocvars.qh>
#include <client/draw.qh>
#include <common/ent_cs.qh>
#pragma once
#include "../panel.qh"
+
+bool autocvar_hud_panel_infomessages;
+bool autocvar_hud_panel_infomessages_dynamichud = false;
+bool autocvar_hud_panel_infomessages_flip;
+
+bool autocvar_cl_showspectators;
#include "modicons.qh"
-#include <client/autocvars.qh>
#include <client/draw.qh>
#include <common/ent_cs.qh>
#include <common/gamemodes/_mod.qh>
#pragma once
#include "../panel.qh"
+bool autocvar_hud_panel_modicons;
+bool autocvar_hud_panel_modicons_dynamichud = true;
+
bool mod_active; // is there any active mod icon?
#include "notify.qh"
-#include <client/autocvars.qh>
#include <client/draw.qh>
// Notifications (#4)
#pragma once
#include "../panel.qh"
+
+bool autocvar_hud_panel_notify;
+bool autocvar_hud_panel_notify_dynamichud = true;
+float autocvar_hud_panel_notify_fadetime;
+float autocvar_hud_panel_notify_flip;
+float autocvar_hud_panel_notify_fontsize;
+float autocvar_hud_panel_notify_time;
+float autocvar_hud_panel_notify_icon_aspect;
+
#include "physics.qh"
-#include <client/autocvars.qh>
#include <client/draw.qh>
#include <lib/csqcmodel/cl_player.qh>
#pragma once
#include "../panel.qh"
+
+bool autocvar_hud_panel_physics;
+float autocvar_hud_panel_physics_acceleration_movingaverage = 1;
+float autocvar_hud_panel_physics_acceleration_progressbar_mode;
+float autocvar_hud_panel_physics_acceleration_progressbar_scale;
+float autocvar_hud_panel_physics_acceleration_progressbar_nonlinear;
+float autocvar_hud_panel_physics_acceleration_max;
+float autocvar_hud_panel_physics_update_interval;
+int autocvar_hud_panel_physics_progressbar;
+bool autocvar_hud_panel_physics_acceleration_vertical;
+int autocvar_hud_panel_physics_baralign;
+bool autocvar_hud_panel_physics_flip;
+bool autocvar_hud_panel_physics_dynamichud = true;
+float autocvar_hud_panel_physics_speed_max;
+int autocvar_hud_panel_physics_speed_unit;
+bool autocvar_hud_panel_physics_speed_unit_show;
+bool autocvar_hud_panel_physics_speed_vertical;
+int autocvar_hud_panel_physics_text;
+float autocvar_hud_panel_physics_text_scale;
+bool autocvar_hud_panel_physics_topspeed;
+float autocvar_hud_panel_physics_topspeed_time;
+
+vector autocvar_hud_progressbar_acceleration_color;
+vector autocvar_hud_progressbar_acceleration_neg_color;
+vector autocvar_hud_progressbar_speed_color;
#include "powerups.qh"
-#include <client/autocvars.qh>
#include <client/draw.qh>
#include <common/items/_mod.qh>
#include <common/util.qh>
#pragma once
#include "../panel.qh"
+bool autocvar_hud_panel_powerups;
+int autocvar_hud_panel_powerups_baralign;
+bool autocvar_hud_panel_powerups_dynamichud = true;
+bool autocvar_hud_panel_powerups_hide_ondeath = false;
+int autocvar_hud_panel_powerups_iconalign;
+bool autocvar_hud_panel_powerups_progressbar;
+bool autocvar_hud_panel_powerups_text;
+
+vector autocvar_hud_progressbar_shield_color;
+vector autocvar_hud_progressbar_strength_color;
+vector autocvar_hud_progressbar_superweapons_color;
+
void addPowerupItem(string name, string icon, vector color, float currentTime, float lifeTime);
#include "pressedkeys.qh"
-#include <client/autocvars.qh>
#include <client/draw.qh>
// Pressed keys (#11)
#pragma once
#include "../panel.qh"
+
+int autocvar_hud_panel_pressedkeys;
+float autocvar_hud_panel_pressedkeys_aspect;
+bool autocvar_hud_panel_pressedkeys_attack;
+bool autocvar_hud_panel_pressedkeys_dynamichud = true;
#include "quickmenu.qh"
-#include <client/autocvars.qh>
#include <client/draw.qh>
#include <client/hud/_mod.qh>
#include <client/mapvoting.qh>
#pragma once
#include "../panel.qh"
+//float autocvar_hud_panel_quickmenu;
+float autocvar_hud_panel_quickmenu_align;
+float autocvar_hud_panel_quickmenu_translatecommands;
+string autocvar_hud_panel_quickmenu_file;
+float autocvar_hud_panel_quickmenu_time;
+
bool QuickMenu_InputEvent(float bInputType, float nPrimary, float nSecondary);
bool QuickMenu_IsOpened();
void QuickMenu_Mouse();
#include "racetimer.qh"
-#include <client/autocvars.qh>
#include <client/draw.qh>
// Race timer (#8)
#pragma once
#include "../panel.qh"
+bool autocvar_hud_panel_racetimer;
+bool autocvar_hud_panel_racetimer_dynamichud = true;
+
// QUALIFYING
float race_checkpoint;
float race_time;
#include "radar.qh"
-#include <client/autocvars.qh>
#include <client/draw.qh>
#include <client/mapvoting.qh>
#include <client/resources.qh>
#pragma once
#include "../panel.qh"
+int autocvar_hud_panel_radar;
+bool autocvar_hud_panel_radar_dynamichud = true;
+float autocvar_hud_panel_radar_foreground_alpha;
+float autocvar_hud_panel_radar_maximized_scale;
+vector autocvar_hud_panel_radar_maximized_size;
+float autocvar_hud_panel_radar_rotation;
+float autocvar_hud_panel_radar_scale;
+int autocvar_hud_panel_radar_zoommode;
+float autocvar_hud_panel_radar_maximized_rotation;
+int autocvar_hud_panel_radar_maximized_zoommode;
+
void HUD_Radar_Show_Maximized(bool doshow, bool clickable);
#include "score.qh"
-#include <client/autocvars.qh>
#include <client/draw.qh>
#include <client/hud/panel/scoreboard.qh>
#include <common/ent_cs.qh>
#pragma once
#include "../panel.qh"
+
+bool autocvar_hud_panel_score;
+bool autocvar_hud_panel_score_dynamichud = true;
+bool autocvar_hud_panel_score_rankings;
#include "scoreboard.qh"
-#include <client/autocvars.qh>
#include <client/draw.qh>
+#include <client/hud/panel/chat.qh>
#include <client/hud/panel/quickmenu.qh>
#include <client/hud/panel/racetimer.qh>
#include <client/hud/panel/weapons.qh>
{
return true;
}
- else if (scoreboard_showscores_force)
+ else if (scoreboard_showscores_force || MUTATOR_CALLHOOK(DrawScoreboard_Force))
return true;
return false;
}
#pragma once
#include "../panel.qh"
+bool autocvar_cl_deathscoreboard;
+string autocvar_scoreboard_columns;
+
bool scoreboard_showscores;
bool scoreboard_active;
#include "strafehud.qh"
-#include <client/autocvars.qh>
#include <client/draw.qh>
#include <client/hud/panel/racetimer.qh>
#include <client/resources.qh>
+#include <client/view.qh>
#include <common/animdecide.qh>
#include <common/ent_cs.qh>
#include <common/mapinfo.qh>
#pragma once
#include "../panel.qh"
+int autocvar_hud_panel_strafehud = 3;
+bool autocvar__hud_panel_strafehud_demo = false;
+bool autocvar_hud_panel_strafehud_dynamichud = true;
+int autocvar_hud_panel_strafehud_mode = 0;
+float autocvar_hud_panel_strafehud_range = 0;
+int autocvar_hud_panel_strafehud_style = 1;
+int autocvar_hud_panel_strafehud_unit = 1;
+bool autocvar_hud_panel_strafehud_unit_show = true;
+vector autocvar_hud_panel_strafehud_bar_neutral_color = '1 1 1';
+float autocvar_hud_panel_strafehud_bar_neutral_alpha = 0.3;
+vector autocvar_hud_panel_strafehud_bar_accel_color = '0 1 0';
+float autocvar_hud_panel_strafehud_bar_accel_alpha = 0.3;
+vector autocvar_hud_panel_strafehud_bar_overturn_color = '1 0 1';
+float autocvar_hud_panel_strafehud_bar_overturn_alpha = 0.3;
+float autocvar_hud_panel_strafehud_angle_alpha = 0.8;
+float autocvar_hud_panel_strafehud_angle_height = 1.5;
+float autocvar_hud_panel_strafehud_angle_width = 0.005;
+vector autocvar_hud_panel_strafehud_angle_neutral_color = '1 1 0';
+vector autocvar_hud_panel_strafehud_angle_accel_color = '0 1 1';
+vector autocvar_hud_panel_strafehud_angle_overturn_color = '1 0 1';
+float autocvar_hud_panel_strafehud_switch_minspeed = -1;
+vector autocvar_hud_panel_strafehud_switch_active_color = '0 1 0';
+float autocvar_hud_panel_strafehud_switch_active_alpha = 1;
+vector autocvar_hud_panel_strafehud_switch_inactive_color = '1 1 0';
+float autocvar_hud_panel_strafehud_switch_inactive_alpha = 1;
+float autocvar_hud_panel_strafehud_switch_width = 0.0075;
+vector autocvar_hud_panel_strafehud_direction_color = '0 0.5 1';
+float autocvar_hud_panel_strafehud_direction_alpha = 1;
+float autocvar_hud_panel_strafehud_direction_width = 0.25;
+float autocvar_hud_panel_strafehud_direction_length = 0.02;
+float autocvar_hud_panel_strafehud_slickdetector_range = 0;
+int autocvar_hud_panel_strafehud_slickdetector_granularity = 2;
+vector autocvar_hud_panel_strafehud_slickdetector_color = '0 1 1';
+float autocvar_hud_panel_strafehud_slickdetector_alpha = 0.5;
+float autocvar_hud_panel_strafehud_slickdetector_height = 0.125;
+float autocvar_hud_panel_strafehud_startspeed_fade = 0;
+vector autocvar_hud_panel_strafehud_startspeed_color = '1 0.75 0';
+float autocvar_hud_panel_strafehud_startspeed_size = 1.5;
+float autocvar_hud_panel_strafehud_jumpheight_fade = 0;
+float autocvar_hud_panel_strafehud_jumpheight_min = 50;
+vector autocvar_hud_panel_strafehud_jumpheight_color = '0 1 0.75';
+float autocvar_hud_panel_strafehud_jumpheight_size = 1.5;
+float autocvar_hud_panel_strafehud_timeout_air = 0.1;
+float autocvar_hud_panel_strafehud_timeout_ground = 0.03333333;
+float autocvar_hud_panel_strafehud_timeout_turn = 0.1;
+float autocvar_hud_panel_strafehud_timeout_direction = 0.5;
+float autocvar_hud_panel_strafehud_antiflicker_angle = 0.01;
+float autocvar_hud_panel_strafehud_antiflicker_speed = 0.0001;
+
void HUD_Panel_DrawStrafeHUD(float, float, vector, float, int, int);
vector StrafeHUD_mixColors(vector, vector, float);
void StrafeHUD_drawGradient(vector, vector, vector, float, float, float, float, int);
#include "timer.qh"
-#include <client/autocvars.qh>
#include <client/draw.qh>
#include <client/view.qh>
#pragma once
#include "../panel.qh"
+
+bool autocvar_hud_panel_timer;
+bool autocvar_hud_panel_timer_dynamichud = true;
+bool autocvar_hud_panel_timer_increment;
#include "vote.qh"
-#include <client/autocvars.qh>
#include <client/draw.qh>
// Vote (#9)
#pragma once
#include "../panel.qh"
+bool autocvar_hud_panel_vote;
+float autocvar_hud_panel_vote_alreadyvoted_alpha;
+bool autocvar_hud_panel_vote_dynamichud = true;
+
+int autocvar_cl_allow_uid2name;
+
float uid2name_dialog;
#include "weapons.qh"
-#include <client/autocvars.qh>
#include <client/draw.qh>
#include <client/view.qh>
#include <common/wepent.qh>
#pragma once
#include "../panel.qh"
+bool autocvar_hud_panel_weapons;
+bool autocvar_hud_panel_weapons_accuracy;
+bool autocvar_hud_panel_weapons_ammo;
+float autocvar_hud_panel_weapons_ammo_alpha;
+string autocvar_hud_panel_weapons_ammo_color;
+int autocvar_hud_panel_weapons_ammo_full_cells;
+int autocvar_hud_panel_weapons_ammo_full_plasma;
+int autocvar_hud_panel_weapons_ammo_full_fuel;
+int autocvar_hud_panel_weapons_ammo_full_nails;
+int autocvar_hud_panel_weapons_ammo_full_rockets;
+int autocvar_hud_panel_weapons_ammo_full_shells;
+float autocvar_hud_panel_weapons_aspect;
+bool autocvar_hud_panel_weapons_complainbubble;
+string autocvar_hud_panel_weapons_complainbubble_color_donthave;
+string autocvar_hud_panel_weapons_complainbubble_color_outofammo;
+string autocvar_hud_panel_weapons_complainbubble_color_unavailable;
+float autocvar_hud_panel_weapons_complainbubble_fadetime;
+float autocvar_hud_panel_weapons_complainbubble_padding;
+float autocvar_hud_panel_weapons_complainbubble_time;
+bool autocvar_hud_panel_weapons_dynamichud = true;
+bool autocvar_hud_panel_weapons_hide_ondeath = false;
+int autocvar_hud_panel_weapons_label;
+float autocvar_hud_panel_weapons_label_scale = 0.5;
+int autocvar_hud_panel_weapons_onlyowned;
+float autocvar_hud_panel_weapons_noncurrent_alpha = 1;
+float autocvar_hud_panel_weapons_noncurrent_scale = 1;
+float autocvar_hud_panel_weapons_selection_radius = 0;
+float autocvar_hud_panel_weapons_selection_speed = 10;
+float autocvar_hud_panel_weapons_timeout;
+int autocvar_hud_panel_weapons_timeout_effect;
+bool autocvar_hud_panel_weapons_orderbyimpulse = true;
+float autocvar_hud_panel_weapons_timeout_fadebgmin;
+float autocvar_hud_panel_weapons_timeout_fadefgmin;
+float autocvar_hud_panel_weapons_timeout_speed_in = 0.25;
+float autocvar_hud_panel_weapons_timeout_speed_out = 0.75;
+
+string autocvar_accuracy_color_levels;
+string autocvar_cl_weaponpriority;
+
const int MAX_ACCURACY_LEVELS = 10;
float acc_lev[MAX_ACCURACY_LEVELS];
vector acc_col[MAX_ACCURACY_LEVELS];
#include <common/constants.qh>
#include <common/weapons/_all.qh>
+bool autocvar_cl_db_saveasdump;
+bool autocvar_cl_spawn_event_particles;
+bool autocvar_cl_spawn_event_sound = 1;
+// float autocvar_cl_spawn_point_model;
+bool autocvar_cl_spawn_point_particles;
+float autocvar_cl_spawn_point_dist_max = 1200;
+bool autocvar_cl_unpress_zoom_on_spawn = true;
+bool autocvar_cl_unpress_zoom_on_death = true;
+bool autocvar_cl_unpress_zoom_on_weapon_switch = true;
+bool autocvar_cl_unpress_attack_on_weapon_switch = false;
+bool autocvar_hud_showbinds;
+bool autocvar_hud_showbinds_limit;
+bool autocvar__hud_showbinds_reload;
+bool autocvar_developer_csqcentities;
+bool autocvar_cl_race_cptimes_onlyself; // TODO: move to race gamemode
+bool autocvar_cl_race_cptimes_showself = false;
+
// Map coordinate base calculations need these
vector mi_center;
vector mi_scale;
#include "mapvoting.qh"
-#include <client/autocvars.qh>
#include <client/draw.qh>
#include <client/hud/_mod.qh>
#include <client/hud/panel/scoreboard.qh>
#pragma once
#include <common/constants.qh>
+
+bool autocvar_cl_readpicture_force;
+float autocvar_hud_panel_mapvote_highlight_border = 1;
+string autocvar_menu_skin; // gamemode icons are controlled by the menu skin
+
void MapVote_Draw();
bool PreviewExists(string name);
/** Return true to not draw scoreboard */
MUTATOR_HOOKABLE(DrawScoreboard, EV_NO_ARGS);
+/** Return true to force showing of the scoreboard */
+MUTATOR_HOOKABLE(DrawScoreboard_Force, EV_NO_ARGS);
+
/** Return true to not draw scoreboard while dead */
MUTATOR_HOOKABLE(DrawDeathScoreboard, EV_NO_ARGS);
#include "shownames.qh"
-#include <client/autocvars.qh>
#include <client/draw.qh>
#include <client/hud/_mod.qh>
#include <client/resources.qh>
}
if (MUTATOR_CALLHOOK(ShowNames_Draw, this, a)) return;
a = M_ARGV(1, float);
- if (vdist(this.origin - view_origin, >=, max_shot_distance)) return;
- float dist = vlen(this.origin - view_origin);
+ float dist = -1; // dist will be calculated only when really needed to avoid wasting a vlen call
if (autocvar_hud_shownames_maxdistance)
{
- if (dist >= autocvar_hud_shownames_maxdistance) return;
- float f = autocvar_hud_shownames_maxdistance - autocvar_hud_shownames_mindistance;
- a *= (f - max(0, dist - autocvar_hud_shownames_mindistance)) / f;
+ float max_dist = min(autocvar_hud_shownames_maxdistance, max_shot_distance);
+ if (vdist(this.origin - view_origin, >=, max_dist))
+ return;
+ if (vdist(this.origin - view_origin, >=, autocvar_hud_shownames_mindistance))
+ {
+ float f = autocvar_hud_shownames_maxdistance - autocvar_hud_shownames_mindistance;
+ if (dist == -1)
+ dist = vlen(this.origin - view_origin);
+ a *= (f - max(0, dist - autocvar_hud_shownames_mindistance)) / f;
+ }
}
+ else if (vdist(this.origin - view_origin, >=, max_shot_distance))
+ return;
if (!a) return;
float resize = 1;
if (autocvar_hud_shownames_resize) // limit resize so its never smaller than 0.5... gets unreadable
{
- float f = autocvar_hud_shownames_maxdistance - autocvar_hud_shownames_mindistance;
- resize = 0.5 + 0.5 * (f - max(0, dist - autocvar_hud_shownames_mindistance)) / f;
+ if (vdist(this.origin - view_origin, >=, autocvar_hud_shownames_mindistance))
+ {
+ float f = autocvar_hud_shownames_maxdistance - autocvar_hud_shownames_mindistance;
+ if (dist == -1)
+ dist = vlen(this.origin - view_origin);
+ resize = 0.5 + 0.5 * (f - max(0, dist - autocvar_hud_shownames_mindistance)) / f;
+ }
}
// draw the sprite image
if (o.z >= 0)
#pragma once
+bool autocvar_hud_shownames;
+bool autocvar_hud_shownames_enemies;
+float autocvar_hud_shownames_crosshairdistance;
+float autocvar_hud_shownames_crosshairdistance_time;
+float autocvar_hud_shownames_crosshairdistance_antioverlap;
+bool autocvar_hud_shownames_self;
+bool autocvar_hud_shownames_status;
+float autocvar_hud_shownames_statusbar_height;
+float autocvar_hud_shownames_statusbar_highlight = 1;
+float autocvar_hud_shownames_aspect;
+float autocvar_hud_shownames_fontsize;
+int autocvar_hud_shownames_decolorize;
+float autocvar_hud_shownames_alpha;
+bool autocvar_hud_shownames_resize;
+float autocvar_hud_shownames_mindistance;
+float autocvar_hud_shownames_maxdistance;
+bool autocvar_hud_shownames_antioverlap;
+float autocvar_hud_shownames_antioverlap_distance;
+float autocvar_hud_shownames_offset;
+
entityclass(ShowNames);
classfield(ShowNames) .float healthvalue;
classfield(ShowNames) .float armorvalue;
#include "teamradar.qh"
-#include <client/autocvars.qh>
#include <client/hud/_mod.qh>
+#include <client/view.qh>
#include <common/mutators/mutator/waypoints/all.qh>
#include <lib/csqcmodel/interpolate.qh>
#include "view.qh"
#include <client/announcer.qh>
-#include <client/autocvars.qh>
#include <client/csqcmodel_hooks.qh>
#include <client/draw.qh>
#include <client/hud/_mod.qh>
#include <common/weapons/weapon.qh>
+bool autocvar_camera_chase_smoothly;
+bool autocvar_camera_enable;
+bool autocvar_camera_forward_follows;
+bool autocvar_camera_free;
+float autocvar_camera_look_attenuation;
+float autocvar_camera_look_player;
+float autocvar_camera_mouse_threshold;
+bool autocvar_camera_reset;
+float autocvar_camera_speed_attenuation;
+float autocvar_camera_speed_chase;
+float autocvar_camera_speed_free;
+float autocvar_camera_speed_roll;
+int autocvar_chase_active;
+int autocvar_cl_gentle_damage;
+bool autocvar_cl_lockview;
+bool autocvar_cl_orthoview;
+bool autocvar_cl_orthoview_nofog;
+bool autocvar_cl_spawnzoom = 1;
+float autocvar_cl_spawnzoom_speed = 1;
+float autocvar_cl_spawnzoom_factor = 2;
+bool autocvar_cl_stripcolorcodes;
+bool autocvar_cl_velocityzoom_enabled;
+float autocvar_cl_velocityzoom_factor;
+int autocvar_cl_velocityzoom_type = 3;
+float autocvar_cl_velocityzoom_speed;
+float autocvar_cl_velocityzoom_time;
+float autocvar_cl_zoomfactor;
+float autocvar_cl_zoomsensitivity;
+float autocvar_cl_zoomspeed;
+float autocvar_fov;
+float autocvar_hud_colorflash_alpha;
+bool autocvar_hud_contents;
+float autocvar_hud_contents_blur;
+float autocvar_hud_contents_blur_alpha;
+float autocvar_hud_contents_fadeintime;
+float autocvar_hud_contents_fadeouttime;
+float autocvar_hud_contents_lava_alpha;
+string autocvar_hud_contents_lava_color;
+float autocvar_hud_contents_slime_alpha;
+string autocvar_hud_contents_slime_color;
+float autocvar_hud_contents_water_alpha;
+string autocvar_hud_contents_water_color;
+bool autocvar_hud_damage;
+float autocvar_hud_damage_blur;
+float autocvar_hud_damage_blur_alpha;
+string autocvar_hud_damage_color;
+float autocvar_hud_damage_factor;
+float autocvar_hud_damage_fade_rate;
+float autocvar_hud_damage_gentle_alpha_multiplier;
+string autocvar_hud_damage_gentle_color;
+float autocvar_hud_damage_maxalpha;
+float autocvar_hud_damage_pain_threshold;
+float autocvar_hud_damage_pain_threshold_lower;
+float autocvar_hud_damage_pain_threshold_lower_health;
+float autocvar_hud_damage_pain_threshold_pulsating_min;
+float autocvar_hud_damage_pain_threshold_pulsating_period;
+bool autocvar_hud_powerup;
+bool autocvar_hud_postprocessing;
+float autocvar_hud_postprocessing_maxbluralpha;
+float autocvar_hud_postprocessing_maxblurradius;
+float autocvar_menu_mouse_speed;
+int autocvar_r_fakelight;
+bool autocvar_r_fullbright;
+float autocvar_r_letterbox;
+bool autocvar_v_flipped;
+int autocvar_vid_conheight;
+int autocvar_vid_conwidth;
+float autocvar_vid_pixelheight;
+float autocvar_viewsize;
+bool autocvar_cl_eventchase_vehicle = 1;
+vector autocvar_cl_eventchase_vehicle_viewoffset = '0 0 80';
+float autocvar_cl_eventchase_vehicle_distance = 250;
+int autocvar_cl_hitsound;
+float autocvar_cl_hitsound_min_pitch = 0.75;
+float autocvar_cl_hitsound_max_pitch = 1.5;
+float autocvar_cl_hitsound_nom_damage = 25;
+float autocvar_cl_hitsound_antispam_time;
+bool autocvar_cl_eventchase_spectated_change = false;
+float autocvar_cl_eventchase_spectated_change_time = 1;
+int autocvar_cl_eventchase_death = 2;
+float autocvar_cl_eventchase_distance = 140;
+bool autocvar_cl_eventchase_frozen = false;
+float autocvar_cl_eventchase_speed = 1.3;
+vector autocvar_cl_eventchase_maxs = '12 12 8';
+vector autocvar_cl_eventchase_mins = '-12 -12 -8';
+vector autocvar_cl_eventchase_viewoffset = '0 0 20';
+string autocvar__togglezoom;
+int autocvar_cl_nade_timer;
+bool autocvar_r_drawviewmodel;
+
void calc_followmodel_ofs(entity view);
vector project_3d_to_2d(vector vec);
#include "projectile.qh"
-#include <client/autocvars.qh>
#include <client/mutators/_mod.qh>
#include <common/constants.qh>
#include <common/effects/all.qh>
#include <common/sounds/sound.qh>
+bool autocvar_cl_projectiles_sloppy;
+
entityclass(Projectile);
classfield(Projectile).int traileffect;
#pragma once
+#ifdef CSQC
+float autocvar_cl_casings_bronze_time;
+int autocvar_cl_casings_maxcount = 100;
+float autocvar_cl_casings_shell_time;
+bool autocvar_cl_casings_sloppy = 1;
+float autocvar_cl_casings_ticrate = 0.1;
+#endif
+
#ifdef SVQC
+int autocvar_g_casings;
+
void SpawnCasing(vector vel, float randomvel, vector ang, vector avel, float randomavel, int casingtype, entity casingowner, .entity weaponentity);
#endif
#include <common/vehicles/all.qh>
#include <common/weapons/_all.qh>
+int autocvar_cl_damageeffect;
+float autocvar_cl_damageeffect_ticrate;
+float autocvar_cl_damageeffect_bones;
+bool autocvar_cl_damageeffect_distribute;
+float autocvar_cl_damageeffect_lifetime;
+float autocvar_cl_damageeffect_lifetime_min;
+float autocvar_cl_damageeffect_lifetime_max;
+
int w_deathtype;
float w_issilent, w_random;
vector w_org, w_backoff;
#pragma once
+#ifdef GAMEQC
+int autocvar_ekg;
+#endif
+
+#ifdef CSQC
+int autocvar_cl_gentle_gibs;
+float autocvar_cl_gibs_damageforcescale = 3.5;
+float autocvar_cl_gibs_lifetime = 14;
+int autocvar_cl_gibs_maxcount = 100;
+bool autocvar_cl_gibs_sloppy = 1;
+float autocvar_cl_gibs_ticrate = 0.1;
+float autocvar_cl_gibs_velocity_random = 1;
+float autocvar_cl_gibs_velocity_scale = 1;
+float autocvar_cl_gibs_avelocity_scale = 1;
+float autocvar_cl_gibs_velocity_up;
+bool autocvar_cl_nogibs;
+bool autocvar_cl_particlegibs;
+float autocvar_cl_particles_quality;
+#endif
+
#ifdef SVQC
void Violence_GibSplash_At(vector org, vector dir, float type, float amount, entity gibowner, entity attacker);
void Violence_GibSplash(entity source, float type, float amount, entity attacker);
#ifdef SVQC
/** Use new sound handling. TODO: use when sounds play correctly on clients */
bool autocvar_g_debug_globalsounds = false;
+ bool autocvar_sv_taunt;
+ bool autocvar_sv_autotaunt;
#endif
// player sounds, voice messages
#pragma once
+#ifdef CSQC
+float autocvar_cl_effects_lightningarc_branchfactor_add;
+float autocvar_cl_effects_lightningarc_branchfactor_start;
+float autocvar_cl_effects_lightningarc_drift_end;
+float autocvar_cl_effects_lightningarc_drift_start;
+float autocvar_cl_effects_lightningarc_segmentlength;
+bool autocvar_cl_effects_lightningarc_simple;
+#endif
+
#ifdef SVQC
void te_csqc_lightningarc(vector from, vector to);
#endif
#pragma once
+int autocvar_hud_panel_modicons_ca_layout;
+
void HUD_Mod_CA(vector myPos, vector mySize);
void HUD_Mod_CA_Draw(vector myPos, vector mySize, int layout);
void HUD_Mod_CA_Export(int fh);
#include <common/mutators/base.qh>
#include <client/draw.qh>
+#include <client/hud/_mod.qh>
#include <client/hud/panel/modicons.qh>
// CTF HUD modicon section
void ctf_Initialize();
+int autocvar_captureleadlimit_override;
+int autocvar_capturelimit_override;
+
REGISTER_MUTATOR(ctf, false)
{
MUTATOR_STATIC();
Score_NicePrint(NULL);
race_ClearRecords();
- PlayerScore_Sort(race_place, 0, 1, 0);
+ PlayerScore_Sort(race_place, 0, true, false);
FOREACH_CLIENT(true, {
if(it.race_place)
#pragma once
+int autocvar_hud_panel_modicons_freezetag_layout;
+
void HUD_Mod_FreezeTag_Export(int fh);
ka_RespawnBall(this);
return;
}
+ if(toucher.ballcarried) { return; }
if(IS_DEAD(toucher)) { return; }
if(STAT(FROZEN, toucher)) { return; }
if (!IS_PLAYER(toucher))
WaypointSprite_Kill(this.waypointsprite_attachedforcarrier);
}
-void ka_PlayerReset(entity plyr)
+void ka_PlayerReset(entity player)
{
- plyr.ballcarried = NULL;
- GameRules_scoring_vip(plyr, false);
- WaypointSprite_Kill(plyr.waypointsprite_attachedforcarrier);
+ player.ballcarried = NULL;
+ GameRules_scoring_vip(player, false);
+ WaypointSprite_Kill(player.waypointsprite_attachedforcarrier);
// reset the player effects
- plyr.glow_trail = false;
- plyr.effects &= ~autocvar_g_keepaway_ballcarrier_effects;
+ player.glow_trail = false;
+ player.effects &= ~autocvar_g_keepaway_ballcarrier_effects;
}
-void ka_DropEvent(entity plyr) // runs any time that a player is supposed to lose the ball
+void ka_DropEvent(entity player) // runs any time that a player is supposed to lose the ball
{
- entity ball;
- ball = plyr.ballcarried;
+ entity ball = player.ballcarried;
if(!ball) { return; }
ball.nextthink = time + autocvar_g_keepawayball_respawntime;
ball.takedamage = DAMAGE_YES;
ball.effects &= ~EF_NODRAW;
- setorigin(ball, plyr.origin + '0 0 10');
+ setorigin(ball, player.origin + '0 0 10');
ball.velocity = '0 0 200' + '0 100 0'*crandom() + '100 0 0'*crandom();
ball.owner = NULL;
- navigation_dynamicgoal_set(ball, plyr);
+ navigation_dynamicgoal_set(ball, player);
// messages and sounds
- ka_EventLog("dropped", plyr);
- Send_Notification(NOTIF_ALL, NULL, MSG_INFO, INFO_KEEPAWAY_DROPPED, plyr.netname);
- Send_Notification(NOTIF_ALL, NULL, MSG_CENTER, CENTER_KEEPAWAY_DROPPED, plyr.netname);
+ ka_EventLog("dropped", player);
+ Send_Notification(NOTIF_ALL, NULL, MSG_INFO, INFO_KEEPAWAY_DROPPED, player.netname);
+ Send_Notification(NOTIF_ALL, NULL, MSG_CENTER, CENTER_KEEPAWAY_DROPPED, player.netname);
sound(NULL, CH_TRIGGER, SND_KA_DROPPED, VOL_BASE, ATTEN_NONE); // ATTEN_NONE (it's a sound intended to be heard anywhere)
// waypoints
WaypointSprite_UpdateRule(ball.waypointsprite_attachedforcarrier, 0, SPRITERULE_DEFAULT);
WaypointSprite_Ping(ball.waypointsprite_attachedforcarrier);
- ka_PlayerReset(plyr);
+ ka_PlayerReset(player);
}
.bool pushable;
MODEL(KA_BALL, "models/orbs/orbblue.md3");
-void ka_RemoveBall()
+void ka_RemoveBall(entity ball)
{
- entity plyr = ka_ball.owner;
- if (plyr) // it was attached
- ka_PlayerReset(plyr);
+ entity player = ball.owner;
+ if (player) // it was attached
+ ka_PlayerReset(player);
else
- WaypointSprite_DetachCarrier(ka_ball);
- delete(ka_ball);
- ka_ball = NULL;
+ WaypointSprite_DetachCarrier(ball);
+ delete(ball);
+}
+
+void ka_RemoveBalls()
+{
+ IL_EACH(g_kaballs, true,
+ {
+ ka_RemoveBall(it);
+ });
}
void ka_SpawnBall()
e.pushable = true;
settouch(e, ka_TouchEvent);
e.owner = NULL;
- ka_ball = e;
- navigation_dynamicgoal_init(ka_ball, false);
+ IL_PUSH(g_kaballs, e);
+ navigation_dynamicgoal_init(e, false);
InitializeEntity(e, ka_RespawnBall, INITPRIO_SETLOCATION); // is this the right priority? Neh, I have no idea.. Well-- it works! So.
}
+void ka_SpawnBalls(int ballcount)
+{
+ int realballcount = max(1, ballcount); // never allow less than 1 ball to spawn
+ for(int j = 0; j < realballcount; ++j)
+ {
+ ka_SpawnBall();
+ }
+}
+
void ka_Handler_CheckBall(entity this)
{
if(time < game_starttime)
{
- if (ka_ball)
- ka_RemoveBall();
+ if (!IL_EMPTY(g_kaballs))
+ ka_RemoveBalls();
}
else
{
- if (!ka_ball)
- ka_SpawnBall();
+ if (IL_EMPTY(g_kaballs))
+ ka_SpawnBalls(KA_BALL_COUNT); // ;)
}
this.nextthink = time;
void havocbot_goalrating_ball(entity this, float ratingscale, vector org)
{
- entity ball_owner;
- ball_owner = ka_ball.owner;
-
- if (ball_owner == this)
- return;
+ entity ball = NULL, ball_carried = NULL;
- if (ball_owner)
- navigation_routerating(this, ball_owner, ratingscale, 2000);
- else
- navigation_routerating(this, ka_ball, ratingscale, 2000);
+ // stops at last ball, prefers ball without carrier
+ IL_EACH(g_kaballs, it.owner != this,
+ {
+ if(it.owner)
+ ball_carried = it.owner;
+ else
+ ball = it;
+ });
+
+ if(ball)
+ navigation_routerating(this, ball, ratingscale, 2000);
+ else if(ball_carried)
+ navigation_routerating(this, ball_carried, ratingscale, 2000);
}
void havocbot_role_ka_carrier(entity this)
entity targ = M_ARGV(1, entity);
// if neither player has ball then don't attack unless the ball is on the ground
- if(!targ.ballcarried && !bot.ballcarried && ka_ball.owner)
+ bool have_held_ball = false;
+ IL_EACH(g_kaballs, it.owner,
+ {
+ have_held_ball = true;
+ break;
+ });
+ if(!targ.ballcarried && !bot.ballcarried && have_held_ball)
return true;
}
return false;
}
+const int KA_BALL_COUNT = 1;
-entity ka_ball;
entity ka_Handler;
+IntrusiveList g_kaballs;
+STATIC_INIT(g_kaballs) { g_kaballs = IL_NEW(); }
+
void(entity this) havocbot_role_ka_carrier;
void(entity this) havocbot_role_ka_collector;
MUTATOR_HOOKFUNCTION(lms, OnEntityPreSpawn)
{
+ if (MUTATOR_RETURNVALUE) return false;
if (!autocvar_g_powerups) return false;
if (!autocvar_g_lms_extra_lives) return false;
MUTATOR_HOOKFUNCTION(lms, ItemTouch)
{
+ if(MUTATOR_RETURNVALUE) return false;
+
entity item = M_ARGV(0, entity);
entity toucher = M_ARGV(1, entity);
#pragma once
+vector autocvar_hud_progressbar_nexball_color;
+
void HUD_Mod_NexBall(vector pos, vector mySize);
float nb_pb_period;
CLASS(NexBall, Gametype)
INIT(NexBall)
{
- this.gametype_init(this, _("Nexball"),"nb","g_nexball",GAMETYPE_FLAG_TEAMPLAY | GAMETYPE_FLAG_USEPOINTS,"","timelimit=20 pointlimit=5 leadlimit=0",_("Shoot and kick the ball into the enemies goal, keep your goal clean"));
+ this.gametype_init(this, _("Nexball"),"nb","g_nexball",GAMETYPE_FLAG_TEAMPLAY | GAMETYPE_FLAG_USEPOINTS | GAMETYPE_FLAG_WEAPONARENA,"","timelimit=20 pointlimit=5 leadlimit=0",_("Shoot and kick the ball into the enemies goal, keep your goal clean"));
}
METHOD(NexBall, m_generate_mapinfo, void(Gametype this, string v))
{
.entity ballcarried;
int autocvar_g_nexball_goalleadlimit;
-#define autocvar_g_nexball_goallimit cvar("g_nexball_goallimit")
+float autocvar_g_nexball_goallimit;
bool autocvar_g_nexball_basketball_jumppad = true;
float autocvar_g_nexball_basketball_bouncefactor;
M_ARGV(2, int) &= ~0x80;
}
-REGISTER_MUTATOR(nb, false)
+void nb_Initialize()
{
- MUTATOR_STATIC();
- MUTATOR_ONADD
- {
- g_nexball_meter_period = autocvar_g_nexball_meter_period;
- if(g_nexball_meter_period <= 0)
- g_nexball_meter_period = 2; // avoid division by zero etc. due to silly users
- g_nexball_meter_period = rint(g_nexball_meter_period * 32) / 32; //Round to 1/32ths to send as a byte multiplied by 32
+ g_nexball_meter_period = autocvar_g_nexball_meter_period;
+ if(g_nexball_meter_period <= 0)
+ g_nexball_meter_period = 2; // avoid division by zero etc. due to silly users
+ g_nexball_meter_period = rint(g_nexball_meter_period * 32) / 32; //Round to 1/32ths to send as a byte multiplied by 32
- // General settings
- /*
- CVTOV(g_nexball_football_boost_forward); //100
- CVTOV(g_nexball_football_boost_up); //200
- CVTOV(g_nexball_delay_idle); //10
- CVTOV(g_nexball_football_physics); //0
- */
- radar_showenemies = autocvar_g_nexball_radar_showallplayers;
+ // General settings
+ /*
+ CVTOV(g_nexball_football_boost_forward); //100
+ CVTOV(g_nexball_football_boost_up); //200
+ CVTOV(g_nexball_delay_idle); //10
+ CVTOV(g_nexball_football_physics); //0
+ */
+ radar_showenemies = autocvar_g_nexball_radar_showallplayers;
- InitializeEntity(NULL, nb_delayedinit, INITPRIO_GAMETYPE);
- WEP_NEXBALL.spawnflags &= ~WEP_FLAG_MUTATORBLOCKED;
+ GameRules_teams(true);
+ GameRules_limit_score(autocvar_g_nexball_goallimit);
+ GameRules_limit_lead(autocvar_g_nexball_goalleadlimit);
- GameRules_teams(true);
- GameRules_limit_score(autocvar_g_nexball_goallimit);
- GameRules_limit_lead(autocvar_g_nexball_goalleadlimit);
- }
-
- MUTATOR_ONROLLBACK_OR_REMOVE
- {
- WEP_NEXBALL.spawnflags |= WEP_FLAG_MUTATORBLOCKED;
- }
- return 0;
+ InitializeEntity(NULL, nb_delayedinit, INITPRIO_GAMETYPE);
}
#pragma once
+#include "weapon.qh"
+
+void nb_Initialize();
+
+REGISTER_MUTATOR(nb, false)
+{
+ MUTATOR_STATIC();
+ MUTATOR_ONADD
+ {
+ nb_Initialize();
+ WEP_NEXBALL.spawnflags &= ~WEP_FLAG_MUTATORBLOCKED;
+ }
+
+ MUTATOR_ONROLLBACK_OR_REMOVE
+ {
+ WEP_NEXBALL.spawnflags |= WEP_FLAG_MUTATORBLOCKED;
+ }
+ return 0;
+}
+
//EF_BRIGHTFIELD|EF_BRIGHTLIGHT|EF_DIMLIGHT|EF_BLUE|EF_RED|EF_FLAME
const float BALL_EFFECTMASK = 1229;
const vector BALL_MINS = '-16 -16 -16'; // The model is 24*24*24
#include "sv_generator.qh"
#include <server/bot/api.qh>
+#include <server/campaign.qh>
#include <server/command/vote.qh>
#include <server/damage.qh>
#include <server/items/items.qh>
#pragma once
+bool autocvar_cl_autodemo_delete;
+bool autocvar_cl_autodemo_delete_keeprecords;
+
void HUD_Mod_Race(vector pos, vector mySize);
Score_NicePrint(NULL);
race_ClearRecords();
- PlayerScore_Sort(race_place, 0, 1, 0);
+ PlayerScore_Sort(race_place, 0, true, false);
FOREACH_CLIENT(true, {
if(it.race_place)
#pragma once
+//int autocvar_leadlimit;
+int autocvar_leadlimit_and_fraglimit;
+int autocvar_leadlimit_override;
+
// TODO: find a better location for these?
int total_players;
#include "pickup.qh"
#include <common/items/all.qh>
#ifdef SVQC
+ #include <common/stats.qh>
#include <server/items/items.qh>
#include <server/resources.qh>
#endif
#endif
#ifdef SVQC
+float autocvar_g_balance_powerup_strength_damage;
+float autocvar_g_balance_powerup_strength_force;
+float autocvar_g_balance_powerup_strength_selfdamage;
+float autocvar_g_balance_powerup_strength_selfforce;
float autocvar_g_balance_powerup_strength_time;
void powerup_strength_init(Pickup this, entity item)
{
#endif
#ifdef SVQC
+float autocvar_g_balance_powerup_invincible_takedamage;
+float autocvar_g_balance_powerup_invincible_takeforce = 0.33;
float autocvar_g_balance_powerup_invincible_time;
void powerup_shield_init(Pickup this, entity item)
{
{
int req = 0;
// TODO: find a better way to check if weapons are required on the map
- if(!(cvar("g_instagib") || cvar("g_overkill") || cvar("g_nix") || cvar("g_weaponarena") || !cvar("g_pickup_items")
+ if(!(cvar("g_instagib") || cvar("g_overkill") || cvar("g_nix") || cvar("g_weaponarena") || !cvar("g_pickup_items") || !cvar("g_melee_only")
|| cvar("g_race") || cvar("g_cts") || cvar("g_nexball") || cvar("g_ca") || cvar("g_freezetag") || cvar("g_lms")))
req |= MAPINFO_FEATURE_WEAPONS;
return req;
const int GAMETYPE_FLAG_PREFERRED = BIT(2); // preferred (when available) in random selections
const int GAMETYPE_FLAG_PRIORITY = BIT(3); // priority selection when preferred gametype isn't available in random selections
const int GAMETYPE_FLAG_HIDELIMITS = BIT(4); // don't display a score limit needed for winning the match in the scoreboard
+const int GAMETYPE_FLAG_WEAPONARENA = BIT(5); // gametype has a forced weapon arena, weapon arena mutators should disable themselves when this is set
int MAPINFO_TYPE_ALL;
.int m_flags;
ATTRIB(Gametype, frags, bool, true);
/** should this gametype display a score limit in the scoreboard? */
ATTRIB(Gametype, m_hidelimits, bool, false);
+ /** does this gametype enforce its own weapon arena? */
+ ATTRIB(Gametype, m_weaponarena, bool, false);
/** game type defaults */
ATTRIB(Gametype, model2, string);
/** game type description */
this.frags = (gflags & GAMETYPE_FLAG_USEPOINTS);
this.m_priority = ((gflags & GAMETYPE_FLAG_PREFERRED) ? 2 : ((gflags & GAMETYPE_FLAG_PRIORITY) ? 1 : 0));
this.m_hidelimits = (gflags & GAMETYPE_FLAG_HIDELIMITS);
+ this.m_weaponarena = (gflags & GAMETYPE_FLAG_WEAPONARENA);
// same as `1 << m_id`
MAPINFO_TYPE_ALL |= this.items = this.m_flags = (MAPINFO_TYPE_ALL + 1);
#pragma once
+#ifdef SVQC
+bool autocvar_sv_doors_always_open;
+#endif
const int DOOR_START_OPEN = BIT(0);
const int DOOR_DONT_LINK = BIT(2);
#include <lib/warpzone/server.qh>
#include <lib/warpzone/util_server.qh>
#include <server/anticheat.qh>
- #include <server/autocvars.qh>
#include <server/weapons/csqcprojectile.qh>
#endif
#pragma once
#include "defs.qh"
+#ifdef SVQC
+bool autocvar_g_telefrags;
+bool autocvar_g_telefrags_avoid;
+bool autocvar_g_telefrags_teamplay;
+#endif
+
IntrusiveList g_teleporters;
STATIC_INIT(g_teleporters) { g_teleporters = IL_NEW(); }
#pragma once
+#ifdef SVQC
+float autocvar_g_triggerimpulse_accel_multiplier;
+float autocvar_g_triggerimpulse_accel_power;
+float autocvar_g_triggerimpulse_directional_multiplier;
+float autocvar_g_triggerimpulse_radial_multiplier;
+#endif
+
// tZorks trigger impulse / gravity
.float radius;
.int falloff;
// reset tracking of oldvelocity for impact damage (sudden velocity changes)
targ.oldvelocity = targ.velocity;
- if(this.pushltime < time) // prevent "snorring" sound when a player hits the jumppad more than once
+ // prevent sound spam when a player hits the jumppad more than once
+ // or when a dead player gets stuck in the jumppad for some reason
+ if(this.pushltime < time && !(IS_DEAD(targ) && targ.velocity == '0 0 0'))
{
// flash when activated
Send_Effect(EFFECT_JUMPPAD, targ.origin, targ.velocity, 1);
#include "cl_minigames_hud.qh"
-#include <client/autocvars.qh>
#include <client/draw.qh>
+#include <client/hud/_mod.qh>
#include <client/hud/hud_config.qh>
#include <client/mapvoting.qh>
#include <common/ent_cs.qh>
#pragma once
+bool autocvar_sv_minigames;
+bool autocvar_sv_minigames_observer;
+
/// Create a new minigame session
/// \return minigame session entity
entity start_minigame(entity player, string minigame );
#include <common/mapobjects/teleporters.qh>
#include <common/mapobjects/triggers.qh>
#include <common/monsters/all.qh>
+#include <common/mutators/mutator/nades/nades.qh>
#include <common/physics/movelib.qh>
#include <common/stats.qh>
#include <common/teams.qh>
#include <common/weapons/_mod.qh>
#include <lib/csqcmodel/sv_model.qh>
#include <lib/warpzone/common.qh>
-#include <server/autocvars.qh>
#include <server/campaign.qh>
#include <server/cheats.qh>
+#include <server/client.qh>
#include <server/command/_mod.qh>
#include <server/damage.qh>
#include <server/items/items.qh>
#include "all.qh"
+float autocvar_g_monsters;
+bool autocvar_g_monsters_edit;
+bool autocvar_g_monsters_sounds;
+float autocvar_g_monsters_think_delay;
+int autocvar_g_monsters_max;
+int autocvar_g_monsters_max_perplayer;
+float autocvar_g_monsters_damageforcescale = 0.8;
+float autocvar_g_monsters_target_range;
+bool autocvar_g_monsters_target_infront;
+float autocvar_g_monsters_target_infront_range = 0.3;
+float autocvar_g_monsters_attack_range;
+int autocvar_g_monsters_score_kill;
+int autocvar_g_monsters_score_spawned;
+bool autocvar_g_monsters_typefrag;
+bool autocvar_g_monsters_owners;
+float autocvar_g_monsters_miniboss_chance;
+float autocvar_g_monsters_miniboss_healthboost;
+float autocvar_g_monsters_drop_time;
+float autocvar_g_monsters_spawnshieldtime;
+bool autocvar_g_monsters_quake_resize = true;
+bool autocvar_g_monsters_teams;
+float autocvar_g_monsters_respawn_delay;
+bool autocvar_g_monsters_respawn;
+float autocvar_g_monsters_armor_blockpercent;
+float autocvar_g_monsters_healthbars;
+bool autocvar_g_monsters_lineofsight = true;
+//bool autocvar_g_monsters_ignoretraces = true;
+
// stats networking
int monsters_total;
int monsters_killed;
#include <common/stats.qh>
#include <common/util.qh>
#include <common/weapons/_all.qh>
- #include <server/autocvars.qh>
#include <server/weapons/common.qh>
#endif
#include "sv_buffs.qh"
#include <common/mapobjects/target/music.qh>
+#include <common/mutators/mutator/instagib/_mod.qh>
#include <common/gamemodes/_mod.qh>
#include <server/items/items.qh>
-void buffs_DelayedInit(entity this);
-
-AUTOCVAR(g_buffs, int, -1, "Enable buffs, -1: enabled but no auto location or replacing powerups, 1: enabled and can replace them");
-
-REGISTER_MUTATOR(buffs, autocvar_g_buffs)
-{
- MUTATOR_ONADD
- {
- if(autocvar_g_buffs > 0)
- InitializeEntity(NULL, buffs_DelayedInit, INITPRIO_FINDTARGET);
- }
-}
-
bool buffs_BuffModel_Customize(entity this, entity client)
{
entity player = WaypointSprite_getviewentity(client);
return;
}
-// note: only really useful in teamplay
-void buff_Medic_Heal(entity this)
-{
- FOREACH_CLIENT(IS_PLAYER(it) && it != this && vdist(it.origin - this.origin, <=, autocvar_g_buffs_medic_heal_range),
- {
- if (DIFF_TEAM(it, this))
- {
- continue;
- }
- float hp = GetResource(it, RES_HEALTH);
- if(hp >= autocvar_g_balance_health_regenstable)
- {
- continue;
- }
- Send_Effect(EFFECT_HEALING, it.origin, '0 0 0', 1);
- SetResource(it, RES_HEALTH, bound(0, hp + autocvar_g_buffs_medic_heal_amount, autocvar_g_balance_health_regenstable));
- });
-}
-
float buff_Inferno_CalculateTime(float damg, float offset_x, float offset_y, float intersect_x, float intersect_y, float base)
{
return offset_y + (intersect_y - offset_y) * logn(((damg - offset_x) * ((base - 1) / intersect_x)) + 1, base);
Fire_AddDamage(frag_target, frag_attacker, (frag_damage * autocvar_g_buffs_inferno_damagemultiplier), btime, DEATH_BUFF.m_id);
}
- // this... is ridiculous (TODO: fix!)
- if(STAT(BUFFS, frag_attacker) & BUFF_VAMPIRE.m_itemid)
- if(!frag_target.vehicle)
- if(!ITEM_DAMAGE_NEEDKILL(frag_deathtype))
- if(!IS_DEAD(frag_target))
- if(IS_PLAYER(frag_target) || IS_MONSTER(frag_target))
- if(frag_attacker != frag_target)
- if(!STAT(FROZEN, frag_target))
- if(frag_target.takedamage)
- if(DIFF_TEAM(frag_attacker, frag_target))
- {
- float amount = bound(0, frag_damage * autocvar_g_buffs_vampire_damage_steal,
- GetResource(frag_target, RES_HEALTH));
- GiveResourceWithLimit(frag_attacker, RES_HEALTH, amount, g_pickup_healthsmall_max);
- if (GetResource(frag_target, RES_ARMOR))
- {
- amount = bound(0, frag_damage * autocvar_g_buffs_vampire_damage_steal,
- GetResource(frag_target, RES_ARMOR));
- GiveResourceWithLimit(frag_attacker, RES_ARMOR, amount, g_pickup_armorsmall_max);
- }
- }
-
M_ARGV(4, float) = frag_damage;
M_ARGV(6, vector) = frag_force;
}
+MUTATOR_HOOKFUNCTION(buffs, PlayerDamage_SplitHealthArmor)
+{
+ entity frag_attacker = M_ARGV(1, entity);
+ entity frag_target = M_ARGV(2, entity);
+ if(!(STAT(BUFFS, frag_attacker) & BUFF_VAMPIRE.m_itemid))
+ return;
+ float health_take = bound(0, M_ARGV(4, float), GetResource(frag_target, RES_HEALTH));
+
+ if(time >= frag_target.spawnshieldtime &&
+ frag_target != frag_attacker &&
+ IS_PLAYER(frag_attacker) &&
+ !IS_DEAD(frag_target) && !STAT(FROZEN, frag_target))
+ {
+ GiveResource(frag_attacker, RES_HEALTH,
+ autocvar_g_buffs_vampire_damage_steal * health_take);
+ }
+}
+
MUTATOR_HOOKFUNCTION(buffs, PlayerSpawn)
{
entity player = M_ARGV(0, entity);
if((STAT(BUFFS, player) & BUFF_INVISIBLE.m_itemid) && (player.oldbuffs & BUFF_INVISIBLE.m_itemid))
player.alpha = ((autocvar_g_buffs_invisible_alpha) ? autocvar_g_buffs_invisible_alpha : -1); // powerups reset alpha, so we must enforce this (TODO)
- if(STAT(BUFFS, player) & BUFF_MEDIC.m_itemid)
- if(time >= player.buff_medic_healtime)
- {
- buff_Medic_Heal(player);
- player.buff_medic_healtime = time + autocvar_g_buffs_medic_heal_delay;
- }
-
#define BUFF_ONADD(b) if ( (STAT(BUFFS, player) & (b).m_itemid) && !(player.oldbuffs & (b).m_itemid))
#define BUFF_ONREM(b) if (!(STAT(BUFFS, player) & (b).m_itemid) && (player.oldbuffs & (b).m_itemid))
}
}
}
+
+void buffs_Initialize()
+{
+ // if buffs are above 0, allow random spawning
+ if(autocvar_g_buffs > 0 && autocvar_g_buffs_spawn_count > 0)
+ InitializeEntity(NULL, buffs_DelayedInit, INITPRIO_FINDTARGET);
+}
#pragma once
+#include <common/mutators/base.qh>
+
#include "buffs.qh"
-#include "../instagib/_mod.qh"
+void buffs_Initialize();
+
+AUTOCVAR(g_buffs, int, -1, "Enable buffs, -1: enabled but no auto location or replacing powerups, 1: enabled and can replace them");
+
+REGISTER_MUTATOR(buffs, autocvar_g_buffs)
+{
+ MUTATOR_ONADD
+ {
+ buffs_Initialize();
+ }
+}
bool autocvar_g_buffs_effects;
float autocvar_g_buffs_waypoint_distance;
float autocvar_g_buffs_medic_rot;
float autocvar_g_buffs_medic_max;
float autocvar_g_buffs_medic_regen;
-float autocvar_g_buffs_medic_heal_amount = 15;
-float autocvar_g_buffs_medic_heal_delay = 1;
-float autocvar_g_buffs_medic_heal_range = 400;
float autocvar_g_buffs_vengeance_damage_multiplier;
float autocvar_g_buffs_bash_force;
float autocvar_g_buffs_bash_force_self;
.int buff_ammo_prev_clipload;
// invisible
.float buff_invisible_prev_alpha;
-// medic
-.float buff_medic_healtime;
// disability
.float buff_disability_time;
.float buff_disability_effect_time;
#pragma once
+
+#ifdef SVQC
+bool autocvar_sv_doublejump;
+#endif
MUTATOR_HOOKFUNCTION(mutator_instagib, ItemTouch)
{
+ if(MUTATOR_RETURNVALUE) return false;
+
entity item = M_ARGV(0, entity);
entity toucher = M_ARGV(1, entity);
MUTATOR_HOOKFUNCTION(mutator_instagib, OnEntityPreSpawn)
{
+ if (MUTATOR_RETURNVALUE) return false;
if (!autocvar_g_powerups) { return; }
entity ent = M_ARGV(0, entity);
// Can't use .itemdef here
#include "items.qh"
#include <common/gamemodes/_mod.qh>
+// TODO: make this its own mutator (somehow)!
+float autocvar_g_rm;
+float autocvar_g_rm_damage;
+float autocvar_g_rm_edgedamage;
+float autocvar_g_rm_force;
+float autocvar_g_rm_radius;
+float autocvar_g_rm_laser;
+float autocvar_g_rm_laser_count;
+float autocvar_g_rm_laser_speed;
+float autocvar_g_rm_laser_spread;
+float autocvar_g_rm_laser_spread_random;
+float autocvar_g_rm_laser_lifetime;
+float autocvar_g_rm_laser_damage;
+float autocvar_g_rm_laser_refire;
+float autocvar_g_rm_laser_rapid;
+float autocvar_g_rm_laser_rapid_refire;
+float autocvar_g_rm_laser_rapid_delay;
+float autocvar_g_rm_laser_radius;
+float autocvar_g_rm_laser_force;
+
+bool autocvar_g_instagib;
float autocvar_g_instagib_invis_alpha;
int autocvar_g_instagib_extralives;
void instagib_extralife(entity this);
void instagib_speed(entity this);
-REGISTER_MUTATOR(mutator_instagib, autocvar_g_instagib && !g_nexball)
+REGISTER_MUTATOR(mutator_instagib, autocvar_g_instagib && !MapInfo_LoadedGametype.m_weaponarena)
{
MUTATOR_ONADD
{
int autocvar_hud_panel_itemstime = 2;
float autocvar_hud_panel_itemstime_dynamicsize = 1;
float autocvar_hud_panel_itemstime_ratio = 2;
+//bool autocvar_hud_panel_itemstime_dynamichud = true;
int autocvar_hud_panel_itemstime_iconalign;
bool autocvar_hud_panel_itemstime_progressbar = 0;
float autocvar_hud_panel_itemstime_progressbar_maxtime = 30;
#pragma once
+
+#ifdef SVQC
+int autocvar_sv_itemstime;
+#endif
#include "../overkill/sv_overkill.qh"
string autocvar_g_melee_only;
-REGISTER_MUTATOR(melee_only, expr_evaluate(autocvar_g_melee_only) && !MUTATOR_IS_ENABLED(mutator_instagib) && !MUTATOR_IS_ENABLED(ok) && !g_nexball);
+REGISTER_MUTATOR(melee_only, expr_evaluate(autocvar_g_melee_only) && !MUTATOR_IS_ENABLED(mutator_instagib) && !MUTATOR_IS_ENABLED(ok) && !MapInfo_LoadedGametype.m_weaponarena);
MUTATOR_HOOKFUNCTION(melee_only, SetStartItems, CBC_ORDER_LAST)
{
#include <common/teams.qh>
+#ifdef SVQC
+bool autocvar_g_nades;
+bool autocvar_g_nades_override_dropweapon = true;
+vector autocvar_g_nades_throw_offset;
+bool autocvar_g_nades_spawn;
+int autocvar_g_nades_spawn_count;
+bool autocvar_g_nades_client_select;
+bool autocvar_g_nades_pickup = true;
+float autocvar_g_nades_pickup_time = 2;
+float autocvar_g_nades_nade_lifetime;
+float autocvar_g_nades_nade_minforce;
+float autocvar_g_nades_nade_maxforce;
+float autocvar_g_nades_nade_health;
+float autocvar_g_nades_nade_refire;
+float autocvar_g_nades_nade_damage;
+float autocvar_g_nades_nade_edgedamage;
+float autocvar_g_nades_nade_radius;
+float autocvar_g_nades_nade_force;
+int autocvar_g_nades_nade_newton_style;
+int autocvar_g_nades_napalm_ball_count;
+float autocvar_g_nades_napalm_ball_spread;
+float autocvar_g_nades_napalm_ball_damage;
+float autocvar_g_nades_napalm_ball_damageforcescale;
+float autocvar_g_nades_napalm_ball_lifetime;
+float autocvar_g_nades_napalm_ball_radius;
+bool autocvar_g_nades_napalm_blast;
+float autocvar_g_nades_napalm_fountain_lifetime;
+float autocvar_g_nades_napalm_fountain_delay;
+float autocvar_g_nades_napalm_fountain_radius;
+float autocvar_g_nades_napalm_fountain_damage;
+float autocvar_g_nades_napalm_fountain_edgedamage;
+float autocvar_g_nades_napalm_burntime;
+bool autocvar_g_nades_napalm_selfdamage;
+int autocvar_g_nades_nade_type;
+int autocvar_g_nades_bonus_type;
+bool autocvar_g_nades_bonus;
+bool autocvar_g_nades_bonus_onstrength;
+bool autocvar_g_nades_bonus_client_select;
+bool autocvar_g_nades_bonus_only;
+int autocvar_g_nades_bonus_max;
+int autocvar_g_nades_bonus_score_max;
+int autocvar_g_nades_bonus_score_time;
+int autocvar_g_nades_bonus_score_time_flagcarrier;
+int autocvar_g_nades_bonus_score_minor;
+int autocvar_g_nades_bonus_score_low;
+int autocvar_g_nades_bonus_score_high;
+int autocvar_g_nades_bonus_score_medium;
+int autocvar_g_nades_bonus_score_spree;
+float autocvar_g_nades_ice_freeze_time;
+float autocvar_g_nades_ice_health;
+bool autocvar_g_nades_ice_explode;
+bool autocvar_g_nades_ice_teamcheck;
+float autocvar_g_nades_heal_time;
+float autocvar_g_nades_heal_rate;
+float autocvar_g_nades_heal_friend;
+float autocvar_g_nades_heal_foe;
+float autocvar_g_nades_entrap_strength = 0.01;
+float autocvar_g_nades_entrap_speed = 0.5;
+float autocvar_g_nades_entrap_radius = 500;
+float autocvar_g_nades_entrap_time = 10;
+float autocvar_g_nades_veil_time = 8;
+float autocvar_g_nades_veil_radius = 300;
+string autocvar_g_nades_pokenade_monster_type;
+float autocvar_g_nades_pokenade_monster_lifetime;
+#endif
+
// use slots 70-100
const int PROJECTILE_NADE = 71;
const int PROJECTILE_NADE_BURN = 72;
bool NIX_CanChooseWeapon(int wpn);
-REGISTER_MUTATOR(nix, expr_evaluate(cvar_string("g_nix")) && !MUTATOR_IS_ENABLED(mutator_instagib) && !MUTATOR_IS_ENABLED(ok))
+REGISTER_MUTATOR(nix, expr_evaluate(cvar_string("g_nix")) && !MUTATOR_IS_ENABLED(mutator_instagib) && !MUTATOR_IS_ENABLED(ok) && !MapInfo_LoadedGametype.m_weaponarena)
{
MUTATOR_ONADD
{
.float ok_item;
-REGISTER_MUTATOR(ok, expr_evaluate(autocvar_g_overkill) && !MUTATOR_IS_ENABLED(mutator_instagib) && !g_nexball && cvar_string("g_mod_balance") == "Overkill")
+REGISTER_MUTATOR(ok, expr_evaluate(autocvar_g_overkill) && !MUTATOR_IS_ENABLED(mutator_instagib) && !MapInfo_LoadedGametype.m_weaponarena && cvar_string("g_mod_balance") == "Overkill")
{
MUTATOR_ONADD
{
if(time >= frag_target.spawnshieldtime &&
frag_target != frag_attacker &&
IS_PLAYER(frag_attacker) &&
- !IS_DEAD(frag_target))
+ !IS_DEAD(frag_target) && !STAT(FROZEN, frag_target))
{
GiveResource(frag_attacker, RES_HEALTH,
autocvar_g_vampire_factor * damage_take);
classfield(WaypointSprite) .float build_starthealth;
classfield(WaypointSprite) .float build_finished;
+bool autocvar_cl_hidewaypoints;
+
float autocvar_g_waypointsprite_alpha;
float autocvar_g_waypointsprite_crosshairfadealpha;
float autocvar_g_waypointsprite_crosshairfadedistance;
MSG_CENTER_NOTIF(FREEZETAG_REVIVE, N_ENABLE, 1, 0, "s1", CPID_Null, "0 0", _("^K3You revived ^BG%s"), "")
MSG_CENTER_NOTIF(FREEZETAG_REVIVE_SELF, N_ENABLE, 0, 0, "", CPID_Null, "0 0", _("^K3You revived yourself"), "")
MSG_CENTER_NOTIF(FREEZETAG_REVIVED, N_ENABLE, 1, 0, "s1", CPID_Null, "0 0", _("^K3You were revived by ^BG%s"), "")
- MSG_CENTER_NOTIF(FREEZETAG_AUTO_REVIVED, N_ENABLE, 0, 1, "f1", CPID_Null, "0 0", _("^K3You were automatically revived after %s seconds"), "")
+ MSG_CENTER_NOTIF(FREEZETAG_AUTO_REVIVED, N_ENABLE, 0, 1, "f1", CPID_Null, "0 0", _("^BGYou were automatically revived after %s seconds"), "")
MSG_CENTER_NOTIF(GENERATOR_UNDERATTACK, N_ENABLE, 0, 0, "", CPID_Null, "0 0", _("^BGThe generator is under attack!"), "")
#include <common/constants.qh>
#include <common/net_linked.qh>
#include <common/teams.qh>
- #include <server/autocvars.qh>
#include <server/command/getreplies.qh>
#include <server/mutators/_mod.qh>
#include <server/world.qh>
#include <common/sounds/sound.qh>
#include <common/weapons/all.qh>
-#ifdef CSQC
-#include <client/autocvars.qh>
-#endif
-
// Operator for bold notifications
#define BOLD_OPERATOR "^BOLD"
#pragma once
+#ifdef SVQC
+// undefined on client, engine cvar
+bool autocvar_physics_ode;
+#endif
+
// water levels
const int WATERLEVEL_NONE = 0;
const int WATERLEVEL_WETFEET = 1;
#ifdef SVQC
// TODO: get rid of this random dumb include!
#include <common/state.qh>
+
+float autocvar_sv_airaccel_qw;
+float autocvar_sv_airstrafeaccel_qw;
+float autocvar_sv_airspeedlimit_nonqw;
+float autocvar_sv_airaccel_qw_stretchfactor;
+float autocvar_sv_maxairstrafespeed;
+float autocvar_sv_airstrafeaccelerate;
+float autocvar_sv_warsowbunny_turnaccel;
+float autocvar_sv_airaccel_sideways_friction;
+float autocvar_sv_aircontrol;
+float autocvar_sv_aircontrol_power;
+float autocvar_sv_aircontrol_backwards;
+float autocvar_sv_aircontrol_sidewards;
+float autocvar_sv_aircontrol_penalty;
+float autocvar_sv_warsowbunny_airforwardaccel;
+float autocvar_sv_warsowbunny_topspeed;
+float autocvar_sv_warsowbunny_accel;
+float autocvar_sv_warsowbunny_backtosideratio;
+float autocvar_sv_friction;
+float autocvar_sv_accelerate;
+float autocvar_sv_stopspeed;
+float autocvar_sv_airaccelerate;
+float autocvar_sv_airstopaccelerate;
+float autocvar_sv_track_canjump;
+string autocvar_g_physics_clientselect_options;
+string autocvar_g_physics_clientselect_default;
+bool autocvar_g_jump_grunt;
+bool autocvar_g_physics_clientselect;
+float autocvar_g_maxspeed;
+float autocvar_g_movement_highspeed = 1;
+bool autocvar_g_movement_highspeed_q3_compat = 0;
+//float autocvar_g_nick_flood_penalty;
+int autocvar_g_nick_flood_penalty_red;
+int autocvar_g_nick_flood_penalty_yellow;
+//float autocvar_g_nick_flood_timeout;
+bool autocvar_speedmeter;
+string autocvar_sv_jumpspeedcap_max;
+float autocvar_sv_jumpspeedcap_max_disable_on_ramps;
+string autocvar_sv_jumpspeedcap_min;
+float autocvar_sv_jumpvelocity;
+float autocvar_sv_jumpvelocity_crouch;
+float autocvar_sv_maxairspeed;
+float autocvar_sv_maxspeed;
+bool autocvar_g_footsteps;
#endif
.entity conveyor;
{
if(PS_GR_OUT_DB < 0) { return; }
- PlayerScore_Sort(score_dummyfield, 0, 0, 0);
- PlayerScore_Sort(scoreboard_pos, 1, 1, 1);
+ PlayerScore_Sort(score_dummyfield, 0, false, false);
+ PlayerScore_Sort(scoreboard_pos, 1, true, true);
if(teamplay) { PlayerScore_TeamStats(); }
FOREACH_CLIENT(true, {
#pragma once
+// you're next
+
#ifdef SVQC
-#include <server/autocvars.qh>
#include <server/client.qh>
+#include <server/main.qh>
+#include <common/gamemodes/sv_rules.qh>
+#include <common/mapobjects/teleporters.qh>
#include <common/mapobjects/trigger/secret.qh>
+#include <common/mutators/mutator/doublejump/doublejump.qh>
+#include <common/mutators/mutator/itemstime/itemstime.qh>
+#include <common/physics/player.qh>
#endif
// Full list of all stat constants, included in a single location for easy reference
float round_starttime; //point in time when the countdown to round start is over
bool autocvar_g_allow_oldvortexbeam;
int autocvar_leadlimit;
+// TODO: world.qh can't be included here due to circular includes!
+#define autocvar_fraglimit cvar("fraglimit")
+#define autocvar_fraglimit_override cvar("fraglimit_override")
+#define autocvar_timelimit cvar("timelimit")
+#define autocvar_timelimit_override cvar("timelimit_override")
#endif
REGISTER_STAT(WEAPONRATEFACTOR, float, W_WeaponRateFactor(this))
REGISTER_STAT(GAME_STOPPED, int, game_stopped)
int autocvar_sv_gameplayfix_noairborncorpse = 1;
int autocvar_sv_gameplayfix_noairborncorpse_allowsuspendeditems = 1;
int autocvar_sv_gameplayfix_delayprojectiles = 0;
+bool autocvar_sv_gameplayfix_upwardvelocityclearsongroundflag = true;
#endif
REGISTER_STAT(GAMEPLAYFIX_DOWNTRACEONGROUND, int, autocvar_sv_gameplayfix_downtracesupportsongroundflag)
REGISTER_STAT(GAMEPLAYFIX_EASIERWATERJUMP, int, autocvar_sv_gameplayfix_easierwaterjump)
REGISTER_STAT(MOVEVARS_JUMPSTEP, int, cvar("sv_jumpstep"))
REGISTER_STAT(NOSTEP, int, cvar("sv_nostep"))
+#ifdef SVQC
+float autocvar_sv_friction_on_land;
+var float autocvar_sv_friction_slick = 0.5;
+#endif
REGISTER_STAT(MOVEVARS_FRICTION, float)
REGISTER_STAT(MOVEVARS_FRICTION_SLICK, float, autocvar_sv_friction_slick)
REGISTER_STAT(MOVEVARS_FRICTION_ONLAND, float, autocvar_sv_friction_on_land)
REGISTER_STAT(DODGING_FROZEN, int, autocvar_sv_dodging_frozen)
REGISTER_STAT(DODGING_TIMEOUT, float)
+#ifdef SVQC
+float autocvar_g_jetpack_acceleration_side;
+float autocvar_g_jetpack_acceleration_up;
+float autocvar_g_jetpack_antigravity;
+int autocvar_g_jetpack_fuel;
+float autocvar_g_jetpack_maxspeed_side;
+float autocvar_g_jetpack_maxspeed_up;
+float autocvar_g_jetpack_reverse_thrust;
+#endif
REGISTER_STAT(JETPACK_ACCEL_SIDE, float, autocvar_g_jetpack_acceleration_side)
REGISTER_STAT(JETPACK_ACCEL_UP, float, autocvar_g_jetpack_acceleration_up)
REGISTER_STAT(JETPACK_ANTIGRAVITY, float, autocvar_g_jetpack_antigravity)
REGISTER_STAT(DOM_PPS_YELLOW, float)
REGISTER_STAT(DOM_PPS_PINK, float)
+#ifdef SVQC
+float autocvar_g_teleport_maxspeed;
+#endif
REGISTER_STAT(TELEPORT_MAXSPEED, float, autocvar_g_teleport_maxspeed)
REGISTER_STAT(TELEPORT_TELEFRAG_AVOID, int, autocvar_g_telefrags_avoid)
REGISTER_STAT(MOVEVARS_AIRCONTROL_POWER, float)
REGISTER_STAT(MOVEVARS_AIRCONTROL_BACKWARDS, bool)
REGISTER_STAT(MOVEVARS_AIRCONTROL_SIDEWARDS, bool)
-noref bool autocvar_sv_gameplayfix_nogravityonground = true;
+#ifdef SVQC
+float autocvar_sv_gameplayfix_q2airaccelerate = 1;
+bool autocvar_sv_gameplayfix_nogravityonground = true;
+bool autocvar_sv_gameplayfix_gravityunaffectedbyticrate = true;
+#endif
REGISTER_STAT(MOVEFLAGS, int, MOVEFLAG_VALID
| (autocvar_sv_gameplayfix_q2airaccelerate ? MOVEFLAG_Q2AIRACCELERATE : 0)
| (autocvar_sv_gameplayfix_nogravityonground ? MOVEFLAG_NOGRAVITYONGROUND : 0)
REGISTER_STAT(WARMUP_TIMELIMIT, float, warmup_limit)
#ifdef SVQC
float autocvar_sv_wallfriction;
+#define autocvar_sv_gravity cvar("sv_gravity")
+float autocvar_sv_stepheight;
#endif
REGISTER_STAT(MOVEVARS_WALLFRICTION, int, autocvar_sv_wallfriction)
REGISTER_STAT(MOVEVARS_TICRATE, float, autocvar_sys_ticrate)
#ifdef SVQC
#include <common/mapobjects/defs.qh>
-#include <server/autocvars.qh>
#include <server/bot/api.qh>
#include <server/damage.qh>
#include <server/weapons/common.qh>
#include "all.qh"
+bool autocvar_g_turrets;
+float autocvar_g_turrets_aimidle_delay;
+bool autocvar_g_turrets_nofire;
+bool autocvar_g_turrets_reloadcvars;
+float autocvar_g_turrets_targetscan_maxdelay;
+float autocvar_g_turrets_targetscan_mindelay;
+
entity turret_projectile(entity actor, Sound _snd, float _size, float _health, float _death, float _proj_type, float _cull, float _cli_anim);
void turret_projectile_explode(entity this);
float turret_validate_target(entity e_turret, entity e_target, float validate_flags);
#pragma once
-#ifdef SVQC
- #include <server/autocvars.qh>
-#endif
-
#ifdef SVQC
float tracebox_inverted (vector v1, vector mi, vector ma, vector v2, float nomonsters, entity forent, float stopatentity, entity ignorestopatentity); // returns the number of traces done, for benchmarking
#ifdef GAMEQC
#ifdef CSQC
+ bool autocvar_cl_gentle;
+ int autocvar_cl_gentle_messages;
#define GENTLE (autocvar_cl_gentle || autocvar_cl_gentle_messages)
#else
+ int autocvar_sv_gentle;
#define GENTLE autocvar_sv_gentle
#endif
#define normal_or_gentle(normal, gentle) ((GENTLE && (gentle != "")) ? gentle : normal)
#include "cl_vehicles.qh"
-const string vCROSS_BURST = "gfx/vehicles/crosshair_burst.tga";
-const string vCROSS_DROP = "gfx/vehicles/crosshair_drop.tga";
-const string vCROSS_GUIDE = "gfx/vehicles/crosshair_guide.tga";
-const string vCROSS_HEAL = "gfx/vehicles/crosshair_heal.tga";
-const string vCROSS_HINT = "gfx/vehicles/crosshair_hint.tga";
-const string vCROSS_LOCK = "gfx/vehicles/crosshair_lock.tga";
-const string vCROSS_RAIN = "gfx/vehicles/crosshair_rain.tga";
-
-entity dropmark;
-
-const int MAX_AXH = 4;
-entity AuxiliaryXhair[MAX_AXH];
-
-.string axh_image;
-.float axh_fadetime;
-.int axh_drawflag;
-
-float alarm1time;
-float alarm2time;
-
void vehicle_alarm(entity e, int ch, Sound s0und)
{
TC(Sound, s0und);
#pragma once
+bool autocvar_cl_vehicles_alarm = false;
+bool autocvar_cl_vehicles_hud_tactical = true;
+float autocvar_cl_vehicles_hudscale = 0.5;
+float autocvar_cl_vehicles_notify_time = 15;
+float autocvar_cl_vehicles_crosshair_size = 0.5;
+bool autocvar_cl_vehicles_crosshair_colorize = true;
+bool autocvar__vehicles_shownchasemessage;
+vector autocvar_hud_progressbar_vehicles_ammo1_color;
+vector autocvar_hud_progressbar_vehicles_ammo2_color;
+
+const string vCROSS_BURST = "gfx/vehicles/crosshair_burst.tga";
+const string vCROSS_DROP = "gfx/vehicles/crosshair_drop.tga";
+const string vCROSS_GUIDE = "gfx/vehicles/crosshair_guide.tga";
+const string vCROSS_HEAL = "gfx/vehicles/crosshair_heal.tga";
+const string vCROSS_HINT = "gfx/vehicles/crosshair_hint.tga";
+const string vCROSS_LOCK = "gfx/vehicles/crosshair_lock.tga";
+const string vCROSS_RAIN = "gfx/vehicles/crosshair_rain.tga";
+
+entity dropmark;
+
+const int MAX_AXH = 4;
+entity AuxiliaryXhair[MAX_AXH];
+
+.string axh_image;
+.float axh_fadetime;
+.int axh_drawflag;
+
+float alarm1time;
+float alarm2time;
+
vector vehicleHud_Size;
vector vehicleHud_Pos;
#include <common/mapobjects/defs.qh>
#include <common/mapobjects/teleporters.qh>
#include <common/mapobjects/triggers.qh>
+#include <common/vehicles/vehicles.qh>
#include <server/bot/api.qh>
+#include <server/client.qh>
#include <server/damage.qh>
#include <server/items/items.qh>
#include <server/weapons/common.qh>
}
}
-float vehicle_altitude(entity this, float amax)
-{
- tracebox(this.origin, this.mins, this.maxs, this.origin - ('0 0 1' * amax), MOVE_WORLDONLY, this);
- return vlen(this.origin - trace_endpos);
-}
-
-vector vehicles_force_fromtag_hover(entity this, string tag_name, float spring_length, float max_power)
-{
- force_fromtag_origin = gettaginfo(this, gettagindex(this, tag_name));
- v_forward = normalize(v_forward) * -1;
- traceline(force_fromtag_origin, force_fromtag_origin - (v_forward * spring_length), MOVE_NORMAL, this);
-
- force_fromtag_power = (1 - trace_fraction) * max_power;
- force_fromtag_normpower = force_fromtag_power / max_power;
-
- return v_forward * force_fromtag_power;
-}
-
-vector vehicles_force_fromtag_maglev(entity this, string tag_name, float spring_length, float max_power)
-{
- force_fromtag_origin = gettaginfo(this, gettagindex(this, tag_name));
- v_forward = normalize(v_forward) * -1;
- traceline(force_fromtag_origin, force_fromtag_origin - (v_forward * spring_length), MOVE_NORMAL, this);
-
- // TODO - this may NOT be compatible with wall/celing movement, unhardcode 0.25 (engine count multiplier)
- if(trace_fraction == 1.0)
- {
- force_fromtag_normpower = -0.25;
- return '0 0 -200';
- }
-
- force_fromtag_power = ((1 - trace_fraction) - trace_fraction) * max_power;
- force_fromtag_normpower = force_fromtag_power / max_power;
-
- return v_forward * force_fromtag_power;
-}
-
// projectile handling
void vehicles_projectile_damage(entity this, entity inflictor, entity attacker, float damage, int deathtype, .entity weaponentity, vector hitloc, vector force)
{
const int VHEF_EJECT = 1; /// User pressed exit key 3 times fast (not implemented) or vehicle is dying
const int VHEF_RELEASE = 2; /// Release ownership, client possibly allready dissconnected / went spec / changed team / used "kill" (not implemented)
-float force_fromtag_power;
-float force_fromtag_normpower;
-vector force_fromtag_origin;
-
float vehicles_exit_running;
// macros
bool vehicle_initialize(entity this, Vehicle info, float nodrop);
bool vehicle_impulse(entity this, int imp);
bool vehicles_crushable(entity e);
-float vehicle_altitude(entity this, float amax);
void vehicles_enter(entity pl, entity veh);
IntrusiveList g_vehicle_returners;
/* maxs */ ATTRIB(Bumblebee, m_maxs, vector, '230 130 130');
/* view offset*/ ATTRIB(Bumblebee, view_ofs, vector, '0 0 300');
/* view dist */ ATTRIB(Bumblebee, height, float, 450);
+#ifdef GAMEQC
/* model */ ATTRIB(Bumblebee, mdl, string, "models/vehicles/bumblebee_body.dpm");
/* model */ ATTRIB(Bumblebee, model, string, "models/vehicles/bumblebee_body.dpm");
/* head_model */ ATTRIB(Bumblebee, head_model, string, "");
/* tags */ ATTRIB(Bumblebee, tag_head, string, "");
/* tags */ ATTRIB(Bumblebee, tag_hud, string, "");
/* tags */ ATTRIB(Bumblebee, tag_view, string, "tag_viewport");
+#endif
/* netname */ ATTRIB(Bumblebee, netname, string, "bumblebee");
/* fullname */ ATTRIB(Bumblebee, vehicle_name, string, _("Bumblebee"));
/* icon */ ATTRIB(Bumblebee, m_icon, string, "vehicle_bumble");
entity vehic = player.vehicle;
return = true;
+#ifdef SVQC
if(game_stopped)
{
vehic.solid = SOLID_NOT;
set_movetype(vehic, MOVETYPE_NONE);
return;
}
+#endif
vehicles_frame(vehic, player);
else if (!vehic.racer_air_finished)
vehic.racer_air_finished = time + autocvar_g_vehicle_racer_water_time;
+#ifdef SVQC
if(IS_DEAD(vehic))
{
PHYS_INPUT_BUTTON_ATCK(player) = PHYS_INPUT_BUTTON_ATCK2(player) = false;
return;
}
+#endif
racer_align4point(vehic, player, dt);
+#ifdef SVQC
PHYS_INPUT_BUTTON_ZOOM(player) = PHYS_INPUT_BUTTON_CROUCH(player) = false;
+#endif
vehic.angles_x *= -1;
vector df = vehic.velocity * -autocvar_g_vehicle_racer_friction;
//vehic.velocity_z = ftmp;
- if(CS(player).movement)
+ if(PHYS_CS(player).movement)
{
if(cont & DPCONTENTS_LIQUIDSMASK)
{
- if(CS(player).movement_x) { df += v_forward * ((CS(player).movement_x > 0) ? autocvar_g_vehicle_racer_water_speed_forward : -autocvar_g_vehicle_racer_water_speed_forward); }
- if(CS(player).movement_y) { df += v_right * ((CS(player).movement_y > 0) ? autocvar_g_vehicle_racer_water_speed_strafe : -autocvar_g_vehicle_racer_water_speed_strafe); }
+ if(PHYS_CS(player).movement_x) { df += v_forward * ((PHYS_CS(player).movement_x > 0) ? autocvar_g_vehicle_racer_water_speed_forward : -autocvar_g_vehicle_racer_water_speed_forward); }
+ if(PHYS_CS(player).movement_y) { df += v_right * ((PHYS_CS(player).movement_y > 0) ? autocvar_g_vehicle_racer_water_speed_strafe : -autocvar_g_vehicle_racer_water_speed_strafe); }
}
else
{
- if(CS(player).movement_x) { df += v_forward * ((CS(player).movement_x > 0) ? autocvar_g_vehicle_racer_speed_forward : -autocvar_g_vehicle_racer_speed_forward); }
- if(CS(player).movement_y) { df += v_right * ((CS(player).movement_y > 0) ? autocvar_g_vehicle_racer_speed_strafe : -autocvar_g_vehicle_racer_speed_strafe); }
+ if(PHYS_CS(player).movement_x) { df += v_forward * ((PHYS_CS(player).movement_x > 0) ? autocvar_g_vehicle_racer_speed_forward : -autocvar_g_vehicle_racer_speed_forward); }
+ if(PHYS_CS(player).movement_y) { df += v_right * ((PHYS_CS(player).movement_y > 0) ? autocvar_g_vehicle_racer_speed_strafe : -autocvar_g_vehicle_racer_speed_strafe); }
}
#ifdef SVQC
dforce = autocvar_g_vehicle_racer_water_downforce;
df -= v_up * (vlen(vehic.velocity) * dforce);
- CS(player).movement = vehic.velocity += df * dt;
+ PHYS_CS(player).movement = vehic.velocity += df * dt;
#ifdef SVQC
#endif
setorigin(player, vehic.origin + '0 0 32');
+#ifdef SVQC
player.oldorigin = player.origin; // negate fall damage
+#endif
player.velocity = vehic.velocity;
}
+#endif
+#ifdef SVQC
void racer_think(entity this)
{
float dt = autocvar_g_vehicle_racer_thinkrate;
/* maxs */ ATTRIB(Racer, m_maxs, vector, '120 120 40' * 0.5);
/* view offset*/ ATTRIB(Racer, view_ofs, vector, '0 0 50');
/* view dist */ ATTRIB(Racer, height, float, 200);
+#ifdef GAMEQC
/* model */ ATTRIB(Racer, mdl, string, "models/vehicles/wakizashi.dpm");
/* model */ ATTRIB(Racer, model, string, "models/vehicles/wakizashi.dpm");
/* head_model */ ATTRIB(Racer, head_model, string, "null");
/* tags */ ATTRIB(Racer, tag_head, string, "");
/* tags */ ATTRIB(Racer, tag_hud, string, "");
/* tags */ ATTRIB(Racer, tag_view, string, "tag_viewport");
+#endif
/* netname */ ATTRIB(Racer, netname, string, "racer");
/* fullname */ ATTRIB(Racer, vehicle_name, string, _("Racer"));
/* icon */ ATTRIB(Racer, m_icon, string, "vehicle_racer");
/* maxs */ ATTRIB(Raptor, m_maxs, vector, '80 80 70');
/* view offset*/ ATTRIB(Raptor, view_ofs, vector, '0 0 160');
/* view dist */ ATTRIB(Raptor, height, float, 200);
+#ifdef GAMEQC
/* model */ ATTRIB(Raptor, mdl, string, "models/vehicles/raptor.dpm");
/* model */ ATTRIB(Raptor, model, string, "models/vehicles/raptor.dpm");
/* head_model */ ATTRIB(Raptor, head_model, string, "");
/* tags */ ATTRIB(Raptor, tag_head, string, "");
/* tags */ ATTRIB(Raptor, tag_hud, string, "tag_hud");
/* tags */ ATTRIB(Raptor, tag_view, string, "tag_camera");
+#endif
/* netname */ ATTRIB(Raptor, netname, string, "raptor");
/* fullname */ ATTRIB(Raptor, vehicle_name, string, _("Raptor"));
/* icon */ ATTRIB(Raptor, m_icon, string, "vehicle_raptor");
/* maxs */ ATTRIB(Spiderbot, m_maxs, vector, '75 75 125');
/* view offset*/ ATTRIB(Spiderbot, view_ofs, vector, '0 0 70');
/* view dist */ ATTRIB(Spiderbot, height, float, 170);
+#ifdef GAMEQC
/* model */ ATTRIB(Spiderbot, mdl, string, "models/vehicles/spiderbot.dpm");
/* model */ ATTRIB(Spiderbot, model, string, "models/vehicles/spiderbot.dpm");
/* head_model */ ATTRIB(Spiderbot, head_model, string, "models/vehicles/spiderbot_top.dpm");
/* tags */ ATTRIB(Spiderbot, tag_head, string, "tag_head");
/* tags */ ATTRIB(Spiderbot, tag_hud, string, "tag_hud");
/* tags */ ATTRIB(Spiderbot, tag_view, string, "");
+#endif
/* netname */ ATTRIB(Spiderbot, netname, string, "spiderbot");
/* fullname */ ATTRIB(Spiderbot, vehicle_name, string, _("Spiderbot"));
/* icon */ ATTRIB(Spiderbot, m_icon, string, "vehicle_spider");
#include "vehicles.qh"
+
+#ifdef GAMEQC
+float vehicle_altitude(entity this, float amax)
+{
+ tracebox(this.origin, this.mins, this.maxs, this.origin - ('0 0 1' * amax), MOVE_WORLDONLY, this);
+ return vlen(this.origin - trace_endpos);
+}
+
+vector vehicles_force_fromtag_hover(entity this, string tag_name, float spring_length, float max_power)
+{
+ force_fromtag_origin = gettaginfo(this, gettagindex(this, tag_name));
+ v_forward = normalize(v_forward) * -1;
+ traceline(force_fromtag_origin, force_fromtag_origin - (v_forward * spring_length), MOVE_NORMAL, this);
+
+ force_fromtag_power = (1 - trace_fraction) * max_power;
+ force_fromtag_normpower = force_fromtag_power / max_power;
+
+ return v_forward * force_fromtag_power;
+}
+
+vector vehicles_force_fromtag_maglev(entity this, string tag_name, float spring_length, float max_power)
+{
+ force_fromtag_origin = gettaginfo(this, gettagindex(this, tag_name));
+ v_forward = normalize(v_forward) * -1;
+ traceline(force_fromtag_origin, force_fromtag_origin - (v_forward * spring_length), MOVE_NORMAL, this);
+
+ // TODO - this may NOT be compatible with wall/celing movement, unhardcode 0.25 (engine count multiplier)
+ if(trace_fraction == 1.0)
+ {
+ force_fromtag_normpower = -0.25;
+ return '0 0 -200';
+ }
+
+ force_fromtag_power = ((1 - trace_fraction) - trace_fraction) * max_power;
+ force_fromtag_normpower = force_fromtag_power / max_power;
+
+ return v_forward * force_fromtag_power;
+}
+#endif
#pragma once
+
+#ifdef GAMEQC
+float force_fromtag_power;
+float force_fromtag_normpower;
+vector force_fromtag_origin;
+
+float vehicle_altitude(entity this, float amax);
+
+vector vehicles_force_fromtag_hover(entity this, string tag_name, float spring_length, float max_power);
+
+vector vehicles_force_fromtag_maglev(entity this, string tag_name, float spring_length, float max_power);
+#endif
#define WEAPONS_ALL_C
#if defined(CSQC)
- #include <client/autocvars.qh>
#include <client/main.qh>
#include <common/constants.qh>
#include <common/deathtypes/all.qh>
#include <lib/warpzone/common.qh>
#include <lib/warpzone/server.qh>
#include <lib/warpzone/util_server.qh>
- #include <server/autocvars.qh>
#include <server/command/_mod.qh>
#include <server/hook.qh>
#include <server/items/spawning.qh>
.WFRAME wframe;
#ifdef SVQC
+ string autocvar_g_shootfromfixedorigin;
#define G_SHOOTFROMFIXEDORIGIN autocvar_g_shootfromfixedorigin
#elif defined(CSQC)
string autocvar_cl_shootfromfixedorigin;
}
void Arc_Smoke(Weapon thiswep, entity actor, .entity weaponentity, int fire)
{
- // TODO: spamming this without checking any refires is asking for trouble!
+ // calculate a rough shot origin to show the effect from TODO: move this to the client side!
makevectors(actor.v_angle);
- W_SetupShot_Range(actor,weaponentity,false,0,SND_Null,0,0,0,thiswep.m_id); // TODO: probably doesn't need deathtype, since this is just a prefire effect
+ w_shotdir = v_forward;
+ vector md = actor.(weaponentity).movedir;
+ vector vecs = ((md.x > 0) ? md : '0 0 0');
+ vector dv = v_forward * vecs.x + v_right * -vecs.y + v_up * vecs.z;
+ w_shotorg = actor.origin + actor.view_ofs + dv;
+ //W_SetupShot_Range(actor,weaponentity,false,0,SND_Null,0,0,0,thiswep.m_id);
vector smoke_origin = w_shotorg + actor.velocity*frametime;
if ( actor.arc_overheat > time )
#endif
#ifdef SVQC
+float autocvar_snd_soundradius;
+
bool W_Tuba_HasPlayed(entity pl, .entity weaponentity, string melody, int instrument, bool ignorepitch, float mintempo, float maxtempo);
#endif
SPAWNFUNC_WEAPON(weapon_vortex, WEP_VORTEX)
SPAWNFUNC_WEAPON(weapon_nex, WEP_VORTEX)
+#ifdef CSQC
+bool autocvar_cl_particles_oldvortexbeam;
+#endif
+
#ifdef SVQC
.float vortex_charge_rottime;
#include "physics.qh"
+float autocvar_sv_spectator_speed_multiplier;
+float autocvar_sv_spectator_speed_multiplier_min = 1;
+float autocvar_sv_spectator_speed_multiplier_max = 5;
+
void sys_phys_fix(entity this, float dt)
{
WarpZone_PlayerPhysics_FixVAngle(this);
return v;
}
+// simplified copy of CSQCPlayer_ApplySmoothing for use on player models
+.float stairsmooth_offset;
+.float stairsmooth_prevtime;
+.float stairsmooth_drawtime; // holds the previous draw time
+vector CSQCModel_ApplyStairSmoothing(entity this, bool isonground, vector v)
+{
+ float smoothtime = bound(0, time - this.stairsmooth_prevtime, 0.1);
+ this.stairsmooth_prevtime = max(this.stairsmooth_prevtime, this.stairsmooth_drawtime); // stairsmooth_drawtime is the previous frame's time at this point
+
+ if(this.csqcmodel_teleported || !isonground || autocvar_cl_stairsmoothspeed <= 0 || this.ground_networkentity)
+ this.stairsmooth_offset = v.z;
+ else
+ {
+ if(this.stairsmooth_offset < v.z)
+ v.z = this.stairsmooth_offset = bound(v.z - PHYS_STEPHEIGHT(this), this.stairsmooth_offset + smoothtime * autocvar_cl_stairsmoothspeed, v.z);
+ else if(this.stairsmooth_offset > v.z)
+ v.z = this.stairsmooth_offset = bound(v.z, this.stairsmooth_offset - smoothtime * autocvar_cl_stairsmoothspeed, v.z + PHYS_STEPHEIGHT(this));
+ }
+
+ this.stairsmooth_prevtime = time;
+ this.stairsmooth_drawtime = drawtime;
+
+ return v;
+}
+
bool autocvar_v_deathtilt;
float autocvar_v_deathtiltangle;
void CSQCPlayer_ApplyDeathTilt(entity this)
float bob2_smooth;
vector CSQCPlayer_ApplyBobbing(entity this, vector v)
{
- if(this.csqcmodel_isdead)
+ if(this.csqcmodel_isdead || PHYS_INVEHICLE(this))
return v;
// bounded XY speed, used by several effects below
}
// relink
+ e.stairsmooth_drawtime = drawtime; // since drawtime is a frame old at this point, copy it now to avoid using a drawtime 2 frames old!
+ e.origin = CSQCModel_ApplyStairSmoothing(e, (e.pmove_flags & PMF_ONGROUND), e.origin);
setorigin(e, e.origin);
}
float CSQCPlayer_PreUpdate(entity this);
float CSQCPlayer_PostUpdate(entity this);
float CSQCPlayer_IsLocalPlayer(entity this);
+vector CSQCModel_ApplyStairSmoothing(entity this, bool isonground, vector v);
*/
#pragma once
+float autocvar_cl_lerpexcess; // TODO: int?
+
.int iflags;
const int IFLAG_VELOCITY = BIT(0);
const int IFLAG_ANGLES = BIT(1);
#define LOG_INFOF(...) _LOG_INFO(sprintf(__VA_ARGS__))
#define _LOG_INFO(s) \
MACRO_BEGIN \
- if (autocvar_developer > 1) dprint(_LOG_HEADER("^5INFO")); \
+ if (autocvar_developer > 1) dprint(strcat1n(_LOG_HEADER("^5INFO"), "\n")); \
string __s = s; \
- print("\n^7", __s); \
+ print("^7", __s); \
/* TODO: unconditionally add a newline when possible */ \
if (str2chr(__s, strlen(__s) - 1) != '\n') { print("\n"); } \
MACRO_END
#include "common.qh"
#if defined(CSQC)
- #include <client/autocvars.qh>
#include <lib/csqcmodel/cl_model.qh>
#elif defined(MENUQC)
#elif defined(SVQC)
setproperty(VF_ORIGIN, org);
setproperty(VF_ANGLES, ang);
+ vector width = '1 0 0' * cvar("vid_conwidth");
+ vector height = '0 1 0' * cvar("vid_conheight");
nearclip = '0 0 1' * (cvar("r_nearclip") * 1.125);
corner0 = cs_unproject('0 0 0' + nearclip);
- corner1 = cs_unproject('1 0 0' * cvar("vid_conwidth") + nearclip);
- corner2 = cs_unproject('0 1 0' * cvar("vid_conheight") + nearclip);
- corner3 = cs_unproject('1 0 0' * cvar("vid_conwidth") + '0 1 0' * cvar("vid_conheight") + nearclip);
+ corner1 = cs_unproject(width + nearclip);
+ corner2 = cs_unproject(height + nearclip);
+ corner3 = cs_unproject(width + height + nearclip);
o = WarpZone_FixNearClip(org, corner0, corner1, corner2, corner3);
if(o != '0 0 0')
setproperty(VF_ORIGIN, org + o);
menuNotTheFirstFrame = true;
if (Menu_Active && !cvar("menu_video_played"))
{
- localcmd("cd loop $menu_cdtrack; play sound/announcer/default/welcome.wav\n");
+ localcmd("cd loop $menu_cdtrack\n");
+ // TODO: use this when we have a welcome sound
+ //localcmd("cd loop $menu_cdtrack; play sound/announcer/default/welcome.wav\n");
menuLogoAlpha = -0.8; // no idea why, but when I start this at zero, it jumps instead of fading FIXME
}
// ALWAYS set this cvar; if we start but menu is not active, this means we want no background music!
#include <common/stats.qh>
#include <common/weapons/_all.qh>
#include <server/antilag.qh>
-#include <server/autocvars.qh>
#include <server/client.qh>
#include <server/command/common.qh>
#include <server/gamelog.qh>
#pragma once
+int autocvar_g_antilag;
+float autocvar_g_antilag_nudge;
+
void antilag_record(entity e, entity store, float t);
vector antilag_takebackorigin(entity e, entity store, float t);
void antilag_takeback(entity e, entity store, float t);
+++ /dev/null
-#pragma once
-
-bool autocvar__notarget;
-bool autocvar__campaign_testrun;
-int autocvar__campaign_index;
-string autocvar__campaign_name;
-bool autocvar__sv_init;
-float autocvar_bot_ai_strategyinterval;
-float autocvar_bot_ai_strategyinterval_movingtarget;
-#define autocvar_bot_number cvar("bot_number")
-int autocvar_bot_vs_human;
-int autocvar_captureleadlimit_override;
-#define autocvar_capturelimit_override cvar("capturelimit_override")
-float autocvar_ekg;
-#define autocvar_fraglimit cvar("fraglimit")
-#define autocvar_fraglimit_override cvar("fraglimit_override")
-//bool autocvar_g_allow_oldvortexbeam;
-int autocvar_g_antilag;
-float autocvar_g_antilag_nudge;
-float autocvar_g_balance_armor_blockpercent;
-int autocvar_g_balance_armor_limit;
-float autocvar_g_balance_armor_regen;
-float autocvar_g_balance_armor_regenlinear;
-int autocvar_g_balance_armor_regenstable;
-float autocvar_g_balance_armor_rot;
-float autocvar_g_balance_armor_rotlinear;
-int autocvar_g_balance_armor_rotstable;
-int autocvar_g_balance_armor_start;
-float autocvar_g_balance_contents_damagerate;
-float autocvar_g_balance_contents_drowndelay;
-int autocvar_g_balance_contents_playerdamage_drowning;
-int autocvar_g_balance_contents_playerdamage_lava;
-int autocvar_g_balance_contents_playerdamage_lava_burn; // 10 is a nice value
-float autocvar_g_balance_contents_playerdamage_lava_burn_time = 2.5; // note: damage is total across this time (not by dps)
-int autocvar_g_balance_contents_playerdamage_slime;
-int autocvar_g_balance_contents_projectiledamage;
-float autocvar_g_balance_damagepush_speedfactor;
-float autocvar_g_balance_falldamage_deadminspeed;
-float autocvar_g_balance_falldamage_factor;
-int autocvar_g_balance_falldamage_maxdamage;
-float autocvar_g_balance_falldamage_minspeed;
-bool autocvar_g_balance_falldamage_onlyvertical;
-int autocvar_g_balance_firetransfer_damage;
-int autocvar_g_balance_firetransfer_time;
-float autocvar_g_balance_fuel_limit;
-float autocvar_g_balance_fuel_regen;
-float autocvar_g_balance_fuel_regenlinear;
-int autocvar_g_balance_fuel_regenstable;
-float autocvar_g_balance_fuel_rot;
-float autocvar_g_balance_fuel_rotlinear;
-int autocvar_g_balance_fuel_rotstable;
-float autocvar_g_balance_grapplehook_airfriction;
-float autocvar_g_balance_grapplehook_force_rubber;
-float autocvar_g_balance_grapplehook_force_rubber_overstretch;
-float autocvar_g_balance_grapplehook_health;
-float autocvar_g_balance_grapplehook_length_min;
-float autocvar_g_balance_grapplehook_speed_fly;
-float autocvar_g_balance_grapplehook_speed_pull;
-float autocvar_g_balance_grapplehook_stretch;
-float autocvar_g_balance_grapplehook_damagedbycontents;
-float autocvar_g_balance_grapplehook_refire;
-float autocvar_g_balance_health_limit;
-float autocvar_g_balance_health_regen;
-float autocvar_g_balance_health_regenlinear;
-float autocvar_g_balance_health_regenstable;
-float autocvar_g_balance_health_rot;
-float autocvar_g_balance_health_rotlinear;
-float autocvar_g_balance_health_rotstable;
-float autocvar_g_balance_kill_delay;
-float autocvar_g_balance_kill_antispam;
-float autocvar_g_balance_pause_armor_rot;
-float autocvar_g_balance_pause_armor_rot_spawn;
-float autocvar_g_balance_pause_fuel_regen;
-float autocvar_g_balance_pause_fuel_rot;
-float autocvar_g_balance_pause_fuel_rot_spawn;
-float autocvar_g_balance_pause_health_regen;
-float autocvar_g_balance_pause_health_regen_spawn;
-float autocvar_g_balance_pause_health_rot;
-float autocvar_g_balance_pause_health_rot_spawn;
-float autocvar_g_balance_portal_health;
-float autocvar_g_balance_portal_lifetime;
-float autocvar_g_balance_powerup_invincible_takedamage;
-float autocvar_g_balance_powerup_invincible_takeforce = 0.33;
-//float autocvar_g_balance_powerup_invincible_time;
-float autocvar_g_balance_powerup_strength_damage;
-float autocvar_g_balance_powerup_strength_force;
-float autocvar_g_balance_powerup_strength_selfdamage;
-float autocvar_g_balance_powerup_strength_selfforce;
-//float autocvar_g_balance_powerup_strength_time;
-float autocvar_g_balance_superweapons_time;
-float autocvar_g_balance_selfdamagepercent;
-float autocvar_g_ballistics_density_corpse;
-float autocvar_g_ballistics_density_player;
-float autocvar_g_ballistics_mindistance;
-bool autocvar_g_ballistics_penetrate_clips = true;
-float autocvar_g_ballistics_solidpenetration_exponent = 1;
-float autocvar_g_ban_default_bantime;
-float autocvar_g_ban_default_masksize;
-float autocvar_g_ban_sync_interval;
-float autocvar_g_ban_sync_timeout;
-string autocvar_g_ban_sync_trusted_servers;
-bool autocvar_g_ban_sync_trusted_servers_verify;
-string autocvar_g_ban_sync_uri;
-bool autocvar_g_ban_telluser = true;
-string autocvar_g_banned_list;
-bool autocvar_g_banned_list_idmode;
-bool autocvar_g_botclip_collisions;
-bool autocvar_g_campaign;
-#define autocvar_g_campaign_forceteam cvar("g_campaign_forceteam")
-int autocvar_g_campaign_skill;
-int autocvar_g_casings;
-float autocvar_g_chat_flood_burst;
-float autocvar_g_chat_flood_burst_team;
-float autocvar_g_chat_flood_burst_tell;
-float autocvar_g_chat_flood_lmax;
-float autocvar_g_chat_flood_lmax_team;
-float autocvar_g_chat_flood_lmax_tell;
-bool autocvar_g_chat_flood_notify_flooder;
-float autocvar_g_chat_flood_spl;
-float autocvar_g_chat_flood_spl_team;
-float autocvar_g_chat_flood_spl_tell;
-int autocvar_g_chat_nospectators;
-bool autocvar_g_chat_teamcolors;
-bool autocvar_g_chat_tellprivacy;
-bool autocvar_g_forced_respawn;
-string autocvar_g_forced_team_otherwise; // TODO: Move to teamplay.qc
-#define autocvar_g_friendlyfire cvar("g_friendlyfire")
-#define autocvar_g_friendlyfire_virtual cvar("g_friendlyfire_virtual")
-#define autocvar_g_friendlyfire_virtual_force cvar("g_friendlyfire_virtual_force")
-bool autocvar_g_full_getstatus_responses;
-bool autocvar_g_fullbrightitems;
-bool autocvar_g_fullbrightplayers;
-int autocvar_g_balance_grapplehook_pull_frozen;
-float autocvar_g_balance_grapplehook_nade_time;
-bool autocvar_g_balance_grapplehook_gravity;
-bool autocvar_g_balance_grapplehook_crouchslide;
-bool autocvar_g_hitplots;
-string autocvar_g_hitplots_individuals;
-float autocvar_g_jetpack_acceleration_side;
-float autocvar_g_jetpack_acceleration_up;
-float autocvar_g_jetpack_antigravity;
-int autocvar_g_jetpack_fuel;
-float autocvar_g_jetpack_maxspeed_side;
-float autocvar_g_jetpack_maxspeed_up;
-float autocvar_g_jetpack_reverse_thrust;
-#define autocvar_g_maplist cvar_string("g_maplist")
-bool autocvar_g_maplist_check_waypoints;
-int autocvar_g_maplist_index;
-string autocvar_g_maplist_mostrecent;
-int autocvar_g_maplist_mostrecent_count;
-bool autocvar_g_maplist_selectrandom;
-float autocvar_g_maplist_shuffle;
-#define autocvar_g_maplist_votable cvar("g_maplist_votable")
-bool autocvar_g_maplist_votable_abstain;
-float autocvar_g_maplist_votable_keeptwotime;
-bool autocvar_g_maplist_votable_nodetail;
-string autocvar_g_maplist_votable_screenshot_dir;
-bool autocvar_g_maplist_votable_suggestions;
-bool autocvar_g_maplist_votable_suggestions_override_mostrecent;
-float autocvar_g_maplist_votable_timeout;
-bool autocvar_g_maplist_ignore_sizes;
-bool autocvar_g_maplist_sizes_count_maxplayers = true;
-bool autocvar_g_maplist_sizes_count_bots = true;
-int autocvar_g_maxplayers;
-float autocvar_g_maxplayers_spectator_blocktime;
-float autocvar_g_maxpushtime;
-float autocvar_g_maxspeed;
-#define autocvar_g_instagib cvar("g_instagib")
-#define autocvar_g_mirrordamage cvar("g_mirrordamage")
-#define autocvar_g_mirrordamage_virtual cvar("g_mirrordamage_virtual")
-bool autocvar_g_mirrordamage_onlyweapons;
-
-float autocvar_g_movement_highspeed = 1;
-bool autocvar_g_movement_highspeed_q3_compat = 0;
-string autocvar_g_mutatormsg;
-//float autocvar_g_nick_flood_penalty;
-int autocvar_g_nick_flood_penalty_red;
-int autocvar_g_nick_flood_penalty_yellow;
-//float autocvar_g_nick_flood_timeout;
-bool autocvar_g_nodepthtestitems;
-bool autocvar_g_nodepthtestplayers;
-bool autocvar_g_norecoil;
-float autocvar_g_items_mindist;
-float autocvar_g_items_maxdist;
-int autocvar_g_pickup_items;
-float autocvar_g_player_alpha;
-float autocvar_g_player_brightness;
-float autocvar_g_player_damageforcescale = 2;
-bool autocvar_g_playerclip_collisions;
-int autocvar_g_powerups;
-int autocvar_g_projectiles_damage;
-bool autocvar_g_projectiles_keep_owner;
-int autocvar_g_projectiles_newton_style;
-float autocvar_g_projectiles_newton_style_2_maxfactor;
-float autocvar_g_projectiles_newton_style_2_minfactor;
-int autocvar_g_projectiles_spread_style;
-float autocvar_g_respawn_delay_small;
-int autocvar_g_respawn_delay_small_count;
-float autocvar_g_respawn_delay_large;
-int autocvar_g_respawn_delay_large_count;
-float autocvar_g_respawn_delay_max;
-bool autocvar_g_respawn_delay_forced;
-bool autocvar_g_respawn_ghosts;
-float autocvar_g_respawn_ghosts_alpha = 1;
-float autocvar_g_respawn_ghosts_fadetime = 1.5;
-float autocvar_g_respawn_ghosts_time = 4.5;
-float autocvar_g_respawn_ghosts_speed;
-int autocvar_g_respawn_waves;
-string autocvar_g_shootfromfixedorigin;
-int autocvar_g_showweaponspawns;
-bool autocvar_g_spawn_alloweffects;
-float autocvar_g_spawn_furthest;
-bool autocvar_g_spawn_useallspawns;
-bool autocvar_g_spawnpoints_auto_move_out_of_solid;
-float autocvar_g_spawnshieldtime;
-float autocvar_g_spawnshield_blockdamage;
-float autocvar_g_teamdamage_resetspeed;
-float autocvar_g_teamdamage_threshold;
-bool autocvar_g_telefrags;
-bool autocvar_g_telefrags_avoid;
-bool autocvar_g_telefrags_teamplay;
-float autocvar_g_teleport_maxspeed;
-bool autocvar_g_throughfloor_debug;
-float autocvar_g_throughfloor_damage;
-float autocvar_g_throughfloor_force;
-float autocvar_g_throughfloor_damage_max_stddev;
-float autocvar_g_throughfloor_force_max_stddev;
-float autocvar_g_throughfloor_min_steps_player;
-float autocvar_g_throughfloor_max_steps_player;
-float autocvar_g_throughfloor_min_steps_other;
-float autocvar_g_throughfloor_max_steps_other;
-float autocvar_g_triggerimpulse_accel_multiplier;
-float autocvar_g_triggerimpulse_accel_power;
-float autocvar_g_triggerimpulse_directional_multiplier;
-float autocvar_g_triggerimpulse_radial_multiplier;
-bool autocvar_g_turrets;
-float autocvar_g_turrets_aimidle_delay;
-bool autocvar_g_turrets_nofire;
-bool autocvar_g_turrets_reloadcvars;
-float autocvar_g_turrets_targetscan_maxdelay;
-float autocvar_g_turrets_targetscan_mindelay;
-bool autocvar_g_use_ammunition;
-bool autocvar_g_waypointeditor;
-bool autocvar_g_waypointeditor_symmetrical;
-bool autocvar_g_waypointeditor_symmetrical_allowload = true;
-vector autocvar_g_waypointeditor_symmetrical_origin;
-int autocvar_g_waypointeditor_symmetrical_order;
-vector autocvar_g_waypointeditor_symmetrical_axis;
-bool autocvar_g_waypoints_for_items;
-#define autocvar_g_weapon_stay cvar("g_weapon_stay")
-bool autocvar_g_weapon_throwable;
-#define autocvar_g_weaponarena cvar_string("g_weaponarena")
-string autocvar_g_xonoticversion;
-float autocvar_gameversion;
-float autocvar_gameversion_min;
-float autocvar_gameversion_max;
-string autocvar_hostname;
-bool autocvar_lastlevel;
-//int autocvar_leadlimit;
-int autocvar_leadlimit_and_fraglimit;
-int autocvar_leadlimit_override;
-int autocvar_minplayers;
-int autocvar_minplayers_per_team;
-string autocvar_nextmap;
-string autocvar_quit_and_redirect;
-float autocvar_quit_and_redirect_timer;
-bool autocvar_quit_when_empty;
-float autocvar_r_showbboxes;
-int autocvar_rescan_pending;
-bool autocvar_samelevel;
-string autocvar_sessionid;
-#define autocvar_skill cvar("skill")
-#define autocvar_slowmo cvar("slowmo")
-float autocvar_snd_soundradius;
-int autocvar_spawn_debug;
-bool autocvar_speedmeter;
-float autocvar_sv_accuracy_data_share = 1;
-string autocvar_sv_adminnick;
-bool autocvar_sv_autoscreenshot;
-int autocvar_sv_cheats;
-float autocvar_sv_clientcommand_antispam_time;
-int autocvar_sv_clientcommand_antispam_count;
-bool autocvar_sv_curl_serverpackages_auto;
-bool autocvar_sv_db_saveasdump;
-bool autocvar_sv_defaultcharacter;
-bool autocvar_sv_defaultcharacterskin;
-int autocvar_sv_defaultplayerskin_blue;
-int autocvar_sv_defaultplayerskin_pink;
-int autocvar_sv_defaultplayerskin_red;
-int autocvar_sv_defaultplayerskin_yellow;
-string autocvar_sv_defaultplayercolors;
-string autocvar_sv_defaultplayermodel;
-string autocvar_sv_defaultplayermodel_blue;
-string autocvar_sv_defaultplayermodel_pink;
-string autocvar_sv_defaultplayermodel_red;
-string autocvar_sv_defaultplayermodel_yellow;
-int autocvar_sv_defaultplayerskin;
-bool autocvar_sv_doors_always_open;
-bool autocvar_sv_doublejump;
-bool autocvar_sv_eventlog;
-bool autocvar_sv_eventlog_console;
-bool autocvar_sv_eventlog_files;
-int autocvar_sv_eventlog_files_counter;
-string autocvar_sv_eventlog_files_nameprefix;
-string autocvar_sv_eventlog_files_namesuffix;
-bool autocvar_sv_eventlog_files_timestamps;
-bool autocvar_sv_eventlog_ipv6_delimiter = false;
-float autocvar_sv_friction_on_land;
-var float autocvar_sv_friction_slick = 0.5;
-float autocvar_sv_gameplayfix_q2airaccelerate = 1;
-int autocvar_sv_gentle;
-#define autocvar_sv_gravity cvar("sv_gravity")
-string autocvar_sv_intermission_cdtrack;
-int autocvar_sv_itemstime;
-string autocvar_sv_jumpspeedcap_max;
-float autocvar_sv_jumpspeedcap_max_disable_on_ramps;
-string autocvar_sv_jumpspeedcap_min;
-float autocvar_sv_jumpvelocity;
-float autocvar_sv_jumpvelocity_crouch;
-bool autocvar_sv_logscores_bots;
-bool autocvar_sv_logscores_console;
-bool autocvar_sv_logscores_file;
-string autocvar_sv_logscores_filename;
-float autocvar_sv_mapchange_delay;
-float autocvar_sv_maxairspeed;
-float autocvar_sv_maxspeed;
-string autocvar_sv_motd;
-int autocvar_sv_name_maxlength = 64;
-bool autocvar_sv_precacheplayermodels;
-bool autocvar_sv_q3acompat_machineshotgunswap;
-bool autocvar_sv_servermodelsonly;
-int autocvar_sv_spectate;
-float autocvar_sv_spectator_speed_multiplier;
-float autocvar_sv_spectator_speed_multiplier_min = 1;
-float autocvar_sv_spectator_speed_multiplier_max = 5;
-bool autocvar_sv_status_privacy;
-float autocvar_sv_stepheight;
-float autocvar_sv_strengthsound_antispam_refire_threshold;
-float autocvar_sv_strengthsound_antispam_time;
-bool autocvar_sv_teamnagger;
-bool autocvar_sv_timeout;
-float autocvar_sv_timeout_leadtime;
-float autocvar_sv_timeout_length;
-int autocvar_sv_timeout_number;
-float autocvar_sv_timeout_resumetime;
-bool autocvar_sv_vote_call;
-bool autocvar_sv_vote_change;
-string autocvar_sv_vote_commands;
-bool autocvar_sv_vote_gametype;
-float autocvar_sv_vote_gametype_timeout;
-string autocvar_sv_vote_gametype_options;
-float autocvar_sv_vote_gametype_keeptwotime;
-bool autocvar_sv_vote_gametype_default_current;
-int autocvar_sv_vote_limit;
-float autocvar_sv_vote_majority_factor;
-float autocvar_sv_vote_majority_factor_of_voted;
-bool autocvar_sv_vote_master;
-bool autocvar_sv_vote_master_callable;
-string autocvar_sv_vote_master_commands;
-string autocvar_sv_vote_master_password;
-int autocvar_sv_vote_master_playerlimit;
-bool autocvar_sv_vote_no_stops_vote;
-int autocvar_sv_vote_nospectators;
-//string autocvar_sv_vote_only_commands;
-bool autocvar_sv_vote_override_mostrecent;
-bool autocvar_sv_vote_singlecount;
-float autocvar_sv_vote_stop;
-float autocvar_sv_vote_timeout;
-float autocvar_sv_vote_wait;
-bool autocvar_sv_vote_gamestart;
-string autocvar_sv_weaponstats_file;
-float autocvar_sv_gibhealth;
-float autocvar_sys_ticrate;
-#define autocvar_timelimit cvar("timelimit")
-#define autocvar_timelimit_override cvar("timelimit_override")
-float autocvar_timelimit_increment;
-float autocvar_timelimit_decrement;
-float autocvar_timelimit_min;
-float autocvar_timelimit_max;
-float autocvar_timelimit_overtime;
-int autocvar_timelimit_overtimes;
-float autocvar_timelimit_suddendeath;
-#define autocvar_utf8_enable cvar("utf8_enable")
-bool autocvar_sv_gameplayfix_gravityunaffectedbyticrate = true;
-bool autocvar_sv_gameplayfix_upwardvelocityclearsongroundflag = true;
-float autocvar_g_trueaim_minrange;
-float autocvar_g_grab_range;
-int autocvar_g_max_info_autoscreenshot;
-bool autocvar_physics_ode;
-float autocvar_g_monsters;
-bool autocvar_g_monsters_edit;
-bool autocvar_g_monsters_sounds;
-float autocvar_g_monsters_think_delay;
-int autocvar_g_monsters_max;
-int autocvar_g_monsters_max_perplayer;
-float autocvar_g_monsters_damageforcescale = 0.8;
-float autocvar_g_monsters_target_range;
-bool autocvar_g_monsters_target_infront;
-float autocvar_g_monsters_target_infront_range = 0.3;
-float autocvar_g_monsters_attack_range;
-int autocvar_g_monsters_score_kill;
-int autocvar_g_monsters_score_spawned;
-bool autocvar_g_monsters_typefrag;
-bool autocvar_g_monsters_owners;
-float autocvar_g_monsters_miniboss_chance;
-float autocvar_g_monsters_miniboss_healthboost;
-float autocvar_g_monsters_drop_time;
-float autocvar_g_monsters_spawnshieldtime;
-bool autocvar_g_monsters_quake_resize = true;
-bool autocvar_g_monsters_teams;
-float autocvar_g_monsters_respawn_delay;
-bool autocvar_g_monsters_respawn;
-float autocvar_g_monsters_armor_blockpercent;
-float autocvar_g_monsters_healthbars;
-bool autocvar_g_monsters_lineofsight = true;
-//bool autocvar_g_monsters_ignoretraces = true;
-bool autocvar_g_nades;
-bool autocvar_g_nades_override_dropweapon = true;
-vector autocvar_g_nades_throw_offset;
-bool autocvar_g_nades_spawn;
-int autocvar_g_nades_spawn_count;
-bool autocvar_g_nades_client_select;
-bool autocvar_g_nades_pickup = true;
-float autocvar_g_nades_pickup_time = 2;
-float autocvar_g_nades_nade_lifetime;
-float autocvar_g_nades_nade_minforce;
-float autocvar_g_nades_nade_maxforce;
-float autocvar_g_nades_nade_health;
-float autocvar_g_nades_nade_refire;
-float autocvar_g_nades_nade_damage;
-float autocvar_g_nades_nade_edgedamage;
-float autocvar_g_nades_nade_radius;
-float autocvar_g_nades_nade_force;
-int autocvar_g_nades_nade_newton_style;
-int autocvar_g_nades_napalm_ball_count;
-float autocvar_g_nades_napalm_ball_spread;
-float autocvar_g_nades_napalm_ball_damage;
-float autocvar_g_nades_napalm_ball_damageforcescale;
-float autocvar_g_nades_napalm_ball_lifetime;
-float autocvar_g_nades_napalm_ball_radius;
-bool autocvar_g_nades_napalm_blast;
-float autocvar_g_nades_napalm_fountain_lifetime;
-float autocvar_g_nades_napalm_fountain_delay;
-float autocvar_g_nades_napalm_fountain_radius;
-float autocvar_g_nades_napalm_fountain_damage;
-float autocvar_g_nades_napalm_fountain_edgedamage;
-float autocvar_g_nades_napalm_burntime;
-bool autocvar_g_nades_napalm_selfdamage;
-int autocvar_g_nades_nade_type;
-int autocvar_g_nades_bonus_type;
-bool autocvar_g_nades_bonus;
-bool autocvar_g_nades_bonus_onstrength;
-bool autocvar_g_nades_bonus_client_select;
-bool autocvar_g_nades_bonus_only;
-int autocvar_g_nades_bonus_max;
-int autocvar_g_nades_bonus_score_max;
-int autocvar_g_nades_bonus_score_time;
-int autocvar_g_nades_bonus_score_time_flagcarrier;
-int autocvar_g_nades_bonus_score_minor;
-int autocvar_g_nades_bonus_score_low;
-int autocvar_g_nades_bonus_score_high;
-int autocvar_g_nades_bonus_score_medium;
-int autocvar_g_nades_bonus_score_spree;
-float autocvar_g_nades_ice_freeze_time;
-float autocvar_g_nades_ice_health;
-bool autocvar_g_nades_ice_explode;
-bool autocvar_g_nades_ice_teamcheck;
-float autocvar_g_nades_heal_time;
-float autocvar_g_nades_heal_rate;
-float autocvar_g_nades_heal_friend;
-float autocvar_g_nades_heal_foe;
-float autocvar_g_nades_entrap_strength = 0.01;
-float autocvar_g_nades_entrap_speed = 0.5;
-float autocvar_g_nades_entrap_radius = 500;
-float autocvar_g_nades_entrap_time = 10;
-float autocvar_g_nades_veil_time = 8;
-float autocvar_g_nades_veil_radius = 300;
-string autocvar_g_nades_pokenade_monster_type;
-float autocvar_g_nades_pokenade_monster_lifetime;
-bool autocvar_g_jump_grunt;
-bool autocvar_g_physics_clientselect;
-string autocvar_g_physics_clientselect_options;
-string autocvar_g_physics_clientselect_default;
-bool autocvar_sv_minigames;
-bool autocvar_sv_minigames_observer;
-float autocvar_sv_player_scale;
-float autocvar_g_rm;
-float autocvar_g_rm_damage;
-float autocvar_g_rm_edgedamage;
-float autocvar_g_rm_force;
-float autocvar_g_rm_radius;
-float autocvar_g_rm_laser;
-float autocvar_g_rm_laser_count;
-float autocvar_g_rm_laser_speed;
-float autocvar_g_rm_laser_spread;
-float autocvar_g_rm_laser_spread_random;
-float autocvar_g_rm_laser_lifetime;
-float autocvar_g_rm_laser_damage;
-float autocvar_g_rm_laser_refire;
-float autocvar_g_rm_laser_rapid;
-float autocvar_g_rm_laser_rapid_refire;
-float autocvar_g_rm_laser_rapid_delay;
-float autocvar_g_rm_laser_radius;
-float autocvar_g_rm_laser_force;
-float autocvar_g_frozen_revive_falldamage;
-int autocvar_g_frozen_revive_falldamage_health;
-bool autocvar_g_frozen_damage_trigger;
-float autocvar_g_frozen_force;
-float autocvar_sv_airaccel_qw;
-float autocvar_sv_airstrafeaccel_qw;
-float autocvar_sv_airspeedlimit_nonqw;
-float autocvar_sv_airaccel_qw_stretchfactor;
-float autocvar_sv_maxairstrafespeed;
-float autocvar_sv_airstrafeaccelerate;
-float autocvar_sv_warsowbunny_turnaccel;
-float autocvar_sv_airaccel_sideways_friction;
-float autocvar_sv_aircontrol;
-float autocvar_sv_aircontrol_power;
-float autocvar_sv_aircontrol_backwards;
-float autocvar_sv_aircontrol_sidewards;
-float autocvar_sv_aircontrol_penalty;
-float autocvar_sv_warsowbunny_airforwardaccel;
-float autocvar_sv_warsowbunny_topspeed;
-float autocvar_sv_warsowbunny_accel;
-float autocvar_sv_warsowbunny_backtosideratio;
-float autocvar_sv_friction;
-float autocvar_sv_accelerate;
-float autocvar_sv_stopspeed;
-float autocvar_sv_airaccelerate;
-float autocvar_sv_airstopaccelerate;
-float autocvar_sv_track_canjump;
-bool autocvar_sv_showspectators;
-bool autocvar_g_weaponswitch_debug;
-bool autocvar_g_weaponswitch_debug_alternate;
-bool autocvar_g_allow_checkpoints;
-bool autocvar_sv_q3defragcompat_changehitbox = false;
-int autocvar_sv_clones;
-bool autocvar_g_footsteps;
-float autocvar_sv_maxidle;
-bool autocvar_sv_maxidle_spectatorsareidle;
-int autocvar_sv_maxidle_slots;
-bool autocvar_sv_maxidle_slots_countbots;
-bool autocvar_sv_autotaunt;
-bool autocvar_g_warmup_allguns;
-bool autocvar_g_warmup_allow_timeout;
-float autocvar_g_weaponspreadfactor;
-float autocvar_g_weaponforcefactor;
-float autocvar_g_weapondamagefactor;
-float autocvar_g_weaponratefactor;
-float autocvar_g_weaponspeedfactor;
-float autocvar_sv_foginterval;
-bool autocvar_sv_ready_restart_repeatable;
-bool autocvar_g_jetpack;
-bool autocvar_sv_taunt;
-bool autocvar_sv_ready_restart;
#include <common/weapons/_all.qh>
#include <common/physics/player.qh>
+bool autocvar_g_waypoints_for_items;
bool bot_waypoints_for_items;
const int WAYPOINTFLAG_GENERATED = BIT(23);
#include <lib/warpzone/common.qh>
#include <lib/warpzone/util_server.qh>
#include <server/antilag.qh>
-#include <server/autocvars.qh>
#include <server/bot/default/aim.qh>
#include <server/bot/default/cvars.qh>
#include <server/bot/default/havocbot/havocbot.qh>
bool autocvar_bot_typefrag;
bool autocvar_g_debug_bot_commands;
int autocvar_g_waypointeditor_auto;
+#define autocvar_skill cvar("skill")
float autocvar_skill_auto;
bool autocvar_waypoint_benchmark;
+int autocvar_bot_number;
+float autocvar_bot_ai_strategyinterval;
+float autocvar_bot_ai_strategyinterval_movingtarget;
+int autocvar_bot_vs_human;
+int autocvar_minplayers;
+int autocvar_minplayers_per_team;
#pragma once
-/*
- * Globals and Fields
- */
+
+bool autocvar_g_waypointeditor;
+bool autocvar_g_waypointeditor_symmetrical;
+bool autocvar_g_waypointeditor_symmetrical_allowload = true;
+vector autocvar_g_waypointeditor_symmetrical_origin;
+int autocvar_g_waypointeditor_symmetrical_order;
+vector autocvar_g_waypointeditor_symmetrical_axis;
// increase by 0.01 when changes require only waypoint relinking
// increase by 1 when changes require to manually edit waypoints
#pragma once
+bool autocvar__campaign_testrun;
+int autocvar__campaign_index;
+string autocvar__campaign_name;
+bool autocvar_g_campaign;
+float autocvar_g_campaign_forceteam;
+int autocvar_g_campaign_skill;
+
// this must be included BEFORE campaign_common.h to make this a memory saving
#define CAMPAIGN_MAX_ENTRIES 2
#pragma once
+float autocvar_g_chat_flood_burst;
+float autocvar_g_chat_flood_burst_team;
+float autocvar_g_chat_flood_burst_tell;
+float autocvar_g_chat_flood_lmax;
+float autocvar_g_chat_flood_lmax_team;
+float autocvar_g_chat_flood_lmax_tell;
+bool autocvar_g_chat_flood_notify_flooder;
+float autocvar_g_chat_flood_spl;
+float autocvar_g_chat_flood_spl_team;
+float autocvar_g_chat_flood_spl_tell;
+int autocvar_g_chat_nospectators;
+bool autocvar_g_chat_teamcolors;
+bool autocvar_g_chat_tellprivacy;
+
const float NUM_NEAREST_ENTITIES = 4;
entity nearest_entity[NUM_NEAREST_ENTITIES];
float nearest_length[NUM_NEAREST_ENTITIES];
#include <common/impulses/all.qh>
-//float autocvar_sv_cheats; // must... declare... global
+int autocvar_sv_cheats;
+float autocvar_g_grab_range;
+int autocvar_g_max_info_autoscreenshot;
+int autocvar_sv_clones;
float cheatcount_total;
.float cheatcount;
#include <common/minigames/sv_minigames.qh>
#include <common/monsters/sv_monsters.qh>
#include <common/mutators/mutator/instagib/sv_instagib.qh>
+#include <common/mutators/mutator/nades/nades.qh>
#include <common/mutators/mutator/overkill/oknex.qh>
#include <common/mutators/mutator/waypoints/all.qh>
#include <common/net_linked.qh>
#include <server/anticheat.qh>
#include <server/antilag.qh>
#include <server/bot/api.qh>
+#include <server/bot/default/cvars.qh>
#include <server/campaign.qh>
#include <server/chat.qh>
#include <server/cheats.qh>
#include <server/weapons/common.qh>
#include <server/weapons/hitplot.qh>
#include <server/weapons/selection.qh>
+#include <server/weapons/tracing.qh>
#include <server/weapons/weaponsystem.qh>
#include <server/world.qh>
#include <common/replicate.qh>
#include <common/sounds/all.qh>
+bool autocvar__notarget;
+int autocvar_g_balance_armor_start;
+float autocvar_g_balance_pause_armor_rot_spawn;
+float autocvar_g_balance_pause_fuel_rot_spawn;
+float autocvar_g_balance_pause_health_regen_spawn;
+float autocvar_g_balance_pause_health_rot_spawn;
+bool autocvar_g_botclip_collisions;
+bool autocvar_g_fullbrightplayers;
+bool autocvar_g_playerclip_collisions;
+float autocvar_g_player_alpha;
+float autocvar_g_player_brightness;
+float autocvar_g_player_damageforcescale = 2;
+float autocvar_g_respawn_delay_small;
+int autocvar_g_respawn_delay_small_count;
+float autocvar_g_respawn_delay_large;
+int autocvar_g_respawn_delay_large_count;
+float autocvar_g_respawn_delay_max;
+bool autocvar_g_respawn_delay_forced;
+bool autocvar_g_respawn_ghosts;
+float autocvar_g_respawn_ghosts_alpha = 1;
+float autocvar_g_respawn_ghosts_fadetime = 1.5;
+float autocvar_g_respawn_ghosts_time = 4.5;
+float autocvar_g_respawn_ghosts_speed;
+int autocvar_g_respawn_waves;
+bool autocvar_g_nodepthtestplayers;
+string autocvar_g_mutatormsg;
+float autocvar_sv_foginterval;
+float autocvar_sv_maxidle;
+bool autocvar_sv_maxidle_spectatorsareidle;
+int autocvar_sv_maxidle_slots;
+bool autocvar_sv_maxidle_slots_countbots;
+bool autocvar_g_forced_respawn;
+int autocvar_g_maxplayers;
+float autocvar_g_maxplayers_spectator_blocktime;
+string autocvar_g_xonoticversion;
+float autocvar_gameversion;
+float autocvar_gameversion_min;
+float autocvar_gameversion_max;
+string autocvar_hostname;
+int autocvar_spawn_debug;
+string autocvar_sv_motd;
+int autocvar_sv_name_maxlength = 64;
+bool autocvar_sv_servermodelsonly;
+int autocvar_sv_spectate;
+bool autocvar_sv_teamnagger;
+float autocvar_sv_player_scale;
+bool autocvar_sv_showspectators;
+
// WEAPONTODO
.string weaponorder_byimpulse;
+#pragma once
+
+float autocvar_g_balance_kill_delay;
+float autocvar_g_balance_kill_antispam;
// set when showing a kill countdown
.entity killindicator;
#pragma once
-// ====================================
-// Declarations for kick/ban commands
-// Last updated: December 29th, 2011
-// =====================================
+float autocvar_g_ban_default_bantime;
+float autocvar_g_ban_default_masksize;
+float autocvar_g_ban_sync_interval;
+float autocvar_g_ban_sync_timeout;
+string autocvar_g_ban_sync_trusted_servers;
+bool autocvar_g_ban_sync_trusted_servers_verify;
+string autocvar_g_ban_sync_uri;
+bool autocvar_g_ban_telluser = true;
+string autocvar_g_banned_list;
+bool autocvar_g_banned_list_idmode;
#define GET_BAN_ARG(v, d) if (argc > reason_arg) { if ((v = stof(argv(reason_arg))) != 0) ++reason_arg; else v = d; } else { v = d; }
#define GET_BAN_REASON(v, d) if (argc > reason_arg) v = substring(command, argv_start_index(reason_arg), strlen(command) - argv_start_index(reason_arg)); else v = d;
#include <common/vehicles/all.qh>
#include <lib/warpzone/common.qh>
#include <server/bot/api.qh>
+#include <server/bot/default/waypoints.qh>
#include <server/campaign.qh>
#include <server/chat.qh>
#include <server/cheats.qh>
#pragma once
+float autocvar_sv_clientcommand_antispam_time;
+int autocvar_sv_clientcommand_antispam_count;
+bool autocvar_sv_ready_restart;
+bool autocvar_sv_ready_restart_repeatable;
+
.float cmd_floodtime;
.float cmd_floodcount;
#include <common/vehicles/all.qh>
#include <common/weapons/_all.qh>
#include <lib/warpzone/common.qh>
+#include <server/campaign.qh>
#include <server/chat.qh>
#include <server/client.qh>
#include <server/command/common.qh>
#pragma once
+string autocvar_sv_adminnick;
+bool autocvar_sv_status_privacy;
+bool autocvar_sv_timeout;
+float autocvar_sv_timeout_leadtime;
+float autocvar_sv_timeout_length;
+int autocvar_sv_timeout_number;
+float autocvar_sv_timeout_resumetime;
+
#include <common/command/_mod.qh>
REGISTRY(COMMON_COMMANDS, BITS(7))
REGISTER_REGISTRY(COMMON_COMMANDS)
#include <server/command/getreplies.qh>
#include <server/intermission.qh>
#include <server/main.qh>
+#include <server/mapvoting.qh>
#include <server/mutators/_mod.qh>
#include <server/race.qh>
#include <server/weapons/selection.qh>
#include <common/util.qh>
#include <common/weapons/_all.qh>
#include <server/client.qh>
+#include <server/command/banning.qh>
#include <server/command/common.qh>
#include <server/command/vote.qh>
#include <server/damage.qh>
#pragma once
-// ================================================
-// Declarations for the vote system/vote commands
-// Last updated: December 14th, 2011
-// ================================================
+bool autocvar_sv_vote_call;
+bool autocvar_sv_vote_change;
+string autocvar_sv_vote_commands;
+int autocvar_sv_vote_limit;
+float autocvar_sv_vote_majority_factor;
+float autocvar_sv_vote_majority_factor_of_voted;
+bool autocvar_sv_vote_master;
+bool autocvar_sv_vote_master_callable;
+string autocvar_sv_vote_master_commands;
+string autocvar_sv_vote_master_password;
+int autocvar_sv_vote_master_playerlimit;
+bool autocvar_sv_vote_no_stops_vote;
+int autocvar_sv_vote_nospectators;
+//string autocvar_sv_vote_only_commands;
+bool autocvar_sv_vote_override_mostrecent;
+bool autocvar_sv_vote_singlecount;
+float autocvar_sv_vote_stop;
+float autocvar_sv_vote_timeout;
+float autocvar_sv_vote_wait;
+bool autocvar_sv_vote_gamestart;
// definitions for command selection between progs
const float VC_ASGNMNT_BOTH = 1;
#pragma once
+bool autocvar_sv_q3acompat_machineshotgunswap;
+bool autocvar_sv_q3defragcompat_changehitbox = false;
+
bool DoesQ3ARemoveThisEntity(entity this);
.int fragsfilter_cnt;
#include <server/weapons/accuracy.qh>
#include <server/weapons/csqcprojectile.qh>
#include <server/weapons/selection.qh>
+#include <server/weapons/weaponsystem.qh>
#include <server/world.qh>
void UpdateFrags(entity player, int f)
#include <common/weapons/_all.qh>
+bool autocvar_g_throughfloor_debug;
+float autocvar_g_throughfloor_damage;
+float autocvar_g_throughfloor_force;
+float autocvar_g_throughfloor_damage_max_stddev;
+float autocvar_g_throughfloor_force_max_stddev;
+float autocvar_g_throughfloor_min_steps_player;
+float autocvar_g_throughfloor_max_steps_player;
+float autocvar_g_throughfloor_min_steps_other;
+float autocvar_g_throughfloor_max_steps_other;
+float autocvar_g_mirrordamage;
+bool autocvar_g_mirrordamage_virtual;
+bool autocvar_g_mirrordamage_onlyweapons;
+float autocvar_g_maxpushtime;
+float autocvar_g_balance_damagepush_speedfactor;
+int autocvar_g_balance_firetransfer_damage;
+int autocvar_g_balance_firetransfer_time;
+float autocvar_g_balance_armor_blockpercent;
+float autocvar_g_teamdamage_resetspeed;
+float autocvar_g_teamdamage_threshold;
+float autocvar_g_balance_selfdamagepercent;
+float autocvar_g_friendlyfire;
+float autocvar_g_friendlyfire_virtual;
+float autocvar_g_friendlyfire_virtual_force;
+float autocvar_g_frozen_revive_falldamage;
+int autocvar_g_frozen_revive_falldamage_health;
+bool autocvar_g_frozen_damage_trigger;
+float autocvar_g_frozen_force;
+
.void(entity this, entity inflictor, entity attacker, float damage, int deathtype, .entity weaponentity, vector hitloc, vector force) event_damage;
.bool(entity targ, entity inflictor, float amount, float limit) event_heal;
#include "gamelog.qh"
-#include <server/autocvars.qh>
#include <server/main.qh>
string GameLog_ProcessIP(string s)
#pragma once
+bool autocvar_sv_eventlog;
+bool autocvar_sv_eventlog_console;
+bool autocvar_sv_eventlog_files;
+int autocvar_sv_eventlog_files_counter;
+string autocvar_sv_eventlog_files_nameprefix;
+string autocvar_sv_eventlog_files_namesuffix;
+bool autocvar_sv_eventlog_files_timestamps;
+bool autocvar_sv_eventlog_ipv6_delimiter = false;
+
bool logfile_open;
float logfile;
#pragma once
+float autocvar_g_balance_grapplehook_airfriction;
+float autocvar_g_balance_grapplehook_force_rubber;
+float autocvar_g_balance_grapplehook_force_rubber_overstretch;
+float autocvar_g_balance_grapplehook_health;
+float autocvar_g_balance_grapplehook_length_min;
+float autocvar_g_balance_grapplehook_speed_fly;
+float autocvar_g_balance_grapplehook_speed_pull;
+float autocvar_g_balance_grapplehook_stretch;
+float autocvar_g_balance_grapplehook_damagedbycontents;
+float autocvar_g_balance_grapplehook_refire;
+int autocvar_g_balance_grapplehook_pull_frozen;
+float autocvar_g_balance_grapplehook_nade_time;
+bool autocvar_g_balance_grapplehook_gravity;
+bool autocvar_g_balance_grapplehook_crouchslide;
+
// Wazat's grappling hook
.entity hook;
void GrapplingHookThink(entity this);
#include <common/mapinfo.qh>
#include <common/util.qh>
#include <server/bot/api.qh>
+#include <server/bot/default/cvars.qh>
#include <server/campaign.qh>
#include <server/client.qh>
#include <server/mapvoting.qh>
#pragma once
+bool autocvar_lastlevel;
+string autocvar_nextmap;
+bool autocvar_samelevel;
+bool autocvar_sv_autoscreenshot;
+string autocvar_sv_intermission_cdtrack;
+
float intermission_running;
float intermission_exittime;
float alreadychangedlevel;
#include <common/stats.qh>
#include <common/util.qh>
#include <common/weapons/_all.qh>
-#include <server/autocvars.qh>
#include <server/command/banning.qh>
#include <server/main.qh>
#include <common/constants.qh>
#include <common/deathtypes/all.qh>
+#include <common/gamemodes/gamemode/cts/cts.qh>
#include <common/items/_mod.qh>
#include <common/mapobjects/subs.qh>
#include <common/mapobjects/triggers.qh>
#include <common/sounds/sound.qh>
+float autocvar_g_balance_superweapons_time;
+bool autocvar_g_fullbrightitems;
+int autocvar_g_powerups;
+float autocvar_g_items_mindist;
+float autocvar_g_items_maxdist;
+int autocvar_g_pickup_items;
+bool autocvar_g_nodepthtestitems;
+#define autocvar_g_weapon_stay cvar("g_weapon_stay")
+
void StartItem(entity this, entity a);
.int item_group;
.int item_group_count;
#pragma once
+float autocvar_g_balance_contents_damagerate;
+float autocvar_g_balance_contents_drowndelay;
+int autocvar_g_balance_contents_playerdamage_drowning;
+int autocvar_g_balance_contents_playerdamage_lava;
+int autocvar_g_balance_contents_playerdamage_lava_burn; // 10 is a nice value
+float autocvar_g_balance_contents_playerdamage_lava_burn_time = 2.5; // note: damage is total across this time (not by dps)
+int autocvar_g_balance_contents_playerdamage_slime;
+int autocvar_g_balance_contents_projectiledamage;
+float autocvar_g_balance_falldamage_deadminspeed;
+float autocvar_g_balance_falldamage_factor;
+int autocvar_g_balance_falldamage_maxdamage;
+float autocvar_g_balance_falldamage_minspeed;
+bool autocvar_g_balance_falldamage_onlyvertical;
+#define autocvar_slowmo cvar("slowmo")
+float autocvar_sys_ticrate;
+
/** print(), but only print if the server is not local */
void dedicated_print(string input);
#pragma once
+#define autocvar_g_maplist cvar_string("g_maplist")
+bool autocvar_g_maplist_check_waypoints;
+int autocvar_g_maplist_index;
+string autocvar_g_maplist_mostrecent;
+int autocvar_g_maplist_mostrecent_count;
+bool autocvar_g_maplist_selectrandom;
+float autocvar_g_maplist_shuffle;
+#define autocvar_g_maplist_votable cvar("g_maplist_votable")
+bool autocvar_g_maplist_votable_abstain;
+float autocvar_g_maplist_votable_keeptwotime;
+bool autocvar_g_maplist_votable_nodetail;
+string autocvar_g_maplist_votable_screenshot_dir;
+bool autocvar_g_maplist_votable_suggestions;
+bool autocvar_g_maplist_votable_suggestions_override_mostrecent;
+float autocvar_g_maplist_votable_timeout;
+bool autocvar_g_maplist_ignore_sizes;
+bool autocvar_g_maplist_sizes_count_maxplayers = true;
+bool autocvar_g_maplist_sizes_count_bots = true;
+int autocvar_rescan_pending;
+bool autocvar_sv_vote_gametype;
+float autocvar_sv_vote_gametype_timeout;
+string autocvar_sv_vote_gametype_options;
+float autocvar_sv_vote_gametype_keeptwotime;
+bool autocvar_sv_vote_gametype_default_current;
+
// definitions for functions used outside mapvoting.qc
void MapVote_Start();
void MapVote_Spawn();
UNSET_ONGROUND(this);
// dying animation
this.deadflag = DEAD_DYING;
+ // don't play teleportation sounds
+ this.teleportable = TELEPORT_SIMPLE;
STAT(MOVEVARS_SPECIALCOMMAND, this) = false; // sweet release
#pragma once
+float autocvar_g_spawnshieldtime;
+float autocvar_g_spawnshield_blockdamage;
+bool autocvar_sv_precacheplayermodels;
+bool autocvar_sv_defaultcharacter;
+bool autocvar_sv_defaultcharacterskin;
+int autocvar_sv_defaultplayerskin_blue;
+int autocvar_sv_defaultplayerskin_pink;
+int autocvar_sv_defaultplayerskin_red;
+int autocvar_sv_defaultplayerskin_yellow;
+string autocvar_sv_defaultplayercolors;
+string autocvar_sv_defaultplayermodel;
+string autocvar_sv_defaultplayermodel_blue;
+string autocvar_sv_defaultplayermodel_pink;
+string autocvar_sv_defaultplayermodel_red;
+string autocvar_sv_defaultplayermodel_yellow;
+int autocvar_sv_defaultplayerskin;
+float autocvar_sv_gibhealth;
+
.entity pusher;
.float pushltime;
.bool istypefrag;
#pragma once
+float autocvar_g_balance_portal_health;
+float autocvar_g_balance_portal_lifetime;
+
.float portal_id;
.entity portal_in, portal_out;
#pragma once
+bool autocvar_g_allow_checkpoints;
+
.string stored_netname; // TODO: store this information independently of race-based gamemodes
float race_teams;
/// \author Lyberta
/// \copyright GNU GPLv2 or any later version.
-#include <server/autocvars.qh>
#include <server/mutators/_mod.qh>
#include <server/world.qh>
#include <common/resources.qh>
+// TODO: split resources into their own files, registry based
+float autocvar_g_balance_health_limit;
+int autocvar_g_balance_armor_limit;
+float autocvar_g_balance_fuel_limit;
+float autocvar_g_balance_armor_regen;
+float autocvar_g_balance_armor_regenlinear;
+int autocvar_g_balance_armor_regenstable;
+float autocvar_g_balance_armor_rot;
+float autocvar_g_balance_armor_rotlinear;
+int autocvar_g_balance_armor_rotstable;
+float autocvar_g_balance_fuel_regen;
+float autocvar_g_balance_fuel_regenlinear;
+int autocvar_g_balance_fuel_regenstable;
+float autocvar_g_balance_fuel_rot;
+float autocvar_g_balance_fuel_rotlinear;
+int autocvar_g_balance_fuel_rotstable;
+float autocvar_g_balance_health_regen;
+float autocvar_g_balance_health_regenlinear;
+float autocvar_g_balance_health_regenstable;
+float autocvar_g_balance_health_rot;
+float autocvar_g_balance_health_rotlinear;
+float autocvar_g_balance_health_rotstable;
+float autocvar_g_balance_pause_armor_rot;
+float autocvar_g_balance_pause_fuel_regen;
+float autocvar_g_balance_pause_fuel_rot;
+float autocvar_g_balance_pause_health_regen;
+float autocvar_g_balance_pause_health_rot;
+
// ============================ Public API ====================================
/// \brief Returns the maximum amount of the given resource.
float scores_flags_primary;
float teamscores_flags_primary;
-vector ScoreField_Compare(entity t1, entity t2, .float field, float fieldflags, vector previous, float strict) // returns: cmp value, best prio
+vector ScoreField_Compare(entity t1, entity t2, .float field, float fieldflags, vector previous, bool strict) // returns: cmp value, best prio
{
if(!strict && !(fieldflags & SFL_SORT_PRIO_MASK)) // column does not sort
return previous;
return TeamScore_AddToTeam(player.team, scorefield, score);
}
-float TeamScore_Compare(entity t1, entity t2, float strict)
+float TeamScore_Compare(entity t1, entity t2, bool strict)
{
if(!t1 || !t2) return (!t2) - !t1;
return r;
}
-float PlayerScore_Compare(entity t1, entity t2, float strict)
+float PlayerScore_Compare(entity t1, entity t2, bool strict)
{
if(!t1 || !t2) return (!t2) - !t1;
secondscorekeeper = NULL;
FOREACH_CLIENT(IS_PLAYER(it), {
sk = CS(it).scorekeeper;
- c = PlayerScore_Compare(winnerscorekeeper, sk, 1);
+ c = PlayerScore_Compare(winnerscorekeeper, sk, true);
if(c < 0)
{
WinningConditionHelper_second = WinningConditionHelper_winner;
}
else
{
- c = PlayerScore_Compare(secondscorekeeper, sk, 1);
+ c = PlayerScore_Compare(secondscorekeeper, sk, true);
if(c < 0)
{
WinningConditionHelper_second = it;
}
});
- WinningConditionHelper_equality = (PlayerScore_Compare(winnerscorekeeper, secondscorekeeper, 0) == 0);
+ WinningConditionHelper_equality = (PlayerScore_Compare(winnerscorekeeper, secondscorekeeper, false) == 0);
if(WinningConditionHelper_equality)
WinningConditionHelper_winner = WinningConditionHelper_second = NULL;
return out;
}
-float PlayerTeamScore_Compare(entity p1, entity p2, float teams, float strict)
+float PlayerTeamScore_Compare(entity p1, entity p2, float teams, bool strict)
{
if(teams && teamscores_entities_count)
{
return PlayerScore_Compare(CS(p1).scorekeeper, CS(p2).scorekeeper, strict);
}
-entity PlayerScore_Sort(.float field, float teams, float strict, float nospectators)
+entity PlayerScore_Sort(.float field, int teams, bool strict, bool nospectators)
{
entity p, plist, pprev, pbest, pbestprev, pfirst, plast;
float i, j;
pbest.chain = NULL;
++i;
- if(!plast || PlayerTeamScore_Compare(plast, pbest, teams, 0))
+ if(!plast || PlayerTeamScore_Compare(plast, pbest, teams, false))
j = i;
pbest.(field) = j;
});
w = bound(6, floor(SCORESWIDTH / t - 1), 9);
- p = PlayerScore_Sort(score_dummyfield, 1, 1, 0);
+ p = PlayerScore_Sort(score_dummyfield, 1, true, false);
t = -1;
if(!teamscores_entities_count)
#include <common/scores.qh>
+bool autocvar_g_full_getstatus_responses;
+
entity scores_initialized; // non-NULL when scores labels/rules have been set
.float scoreboard_pos;
* strict: return a strict ordering
* nospectators: exclude spectators
*/
-entity PlayerScore_Sort(.float field, float teams, float strict, float nospectators);
+entity PlayerScore_Sort(.float field, int teams, bool strict, bool nospectators);
#pragma once
+bool autocvar_g_spawn_alloweffects;
+float autocvar_g_spawn_furthest;
+bool autocvar_g_spawn_useallspawns;
+bool autocvar_g_spawnpoints_auto_move_out_of_solid;
+float autocvar_r_showbboxes; // engine cvar
+
// spawnpoint prios
const int SPAWN_PRIO_NEAR_TEAMMATE_FOUND = 200;
const int SPAWN_PRIO_NEAR_TEAMMATE_SAMETEAM = 100;
#include <common/gamemodes/_mod.qh>
#include <common/teams.qh>
#include <server/bot/api.qh>
+#include <server/bot/default/cvars.qh>
+#include <server/campaign.qh>
#include <server/client.qh>
#include <server/command/vote.qh>
#include <server/damage.qh>
bool autocvar_g_balance_teams;
bool autocvar_g_balance_teams_prevent_imbalance;
+string autocvar_g_forced_team_otherwise;
+
bool lockteams;
// ========================== Global teams API ================================
#include <common/physics/player.qh>
#include <common/vehicles/all.qh>
#include <common/weapons/_all.qh>
-#include <server/autocvars.qh>
#include <server/client.qh>
#include <server/command/_mod.qh>
+#include <server/player.qh>
#include <server/weapons/common.qh>
#include <server/weapons/selection.qh>
#include <common/weapons/_all.qh>
#include <common/stats.qh>
+float autocvar_sv_accuracy_data_share = 1;
+
.bool cvar_cl_accuracy_data_share;
REPLICATE(cvar_cl_accuracy_data_share, bool, "cl_accuracy_data_share");
.bool cvar_cl_accuracy_data_receive;
#pragma once
+int autocvar_g_projectiles_damage;
+bool autocvar_g_projectiles_keep_owner;
+float autocvar_sv_strengthsound_antispam_refire_threshold;
+float autocvar_sv_strengthsound_antispam_time;
+
bool W_DualWielding(entity player);
void W_GiveWeapon (entity e, float wep);
.float prevstrengthsound;
#pragma once
+bool autocvar_g_hitplots;
+string autocvar_g_hitplots_individuals;
+
.float hitplotfh;
void W_HitPlotAnalysis(entity player, entity wep, vector screenforward, vector screenright, vector screenup);
#include <common/weapons/_all.qh>
#include <common/stats.qh>
+int autocvar_g_showweaponspawns;
+bool autocvar_g_weaponswitch_debug;
+bool autocvar_g_weaponswitch_debug_alternate;
+
.int selectweapon; // last selected weapon of the player
.WepSet dual_weapons;
#include <common/weapons/_all.qh>
#include <common/stats.qh>
+bool autocvar_g_weapon_throwable;
+
.float savenextthink;
void thrown_wep_think(entity this);
#include <common/weapons/_all.qh>
#include <common/stats.qh>
+float autocvar_g_ballistics_density_corpse;
+float autocvar_g_ballistics_density_player;
+float autocvar_g_ballistics_mindistance;
+bool autocvar_g_ballistics_penetrate_clips = true;
+float autocvar_g_ballistics_solidpenetration_exponent = 1;
+int autocvar_g_projectiles_newton_style;
+float autocvar_g_projectiles_newton_style_2_maxfactor;
+float autocvar_g_projectiles_newton_style_2_minfactor;
+int autocvar_g_projectiles_spread_style;
+bool autocvar_g_norecoil;
+float autocvar_g_trueaim_minrange;
+
vector w_shotorg;
vector w_shotdir;
vector w_shotend;
#pragma once
+string autocvar_sv_weaponstats_file;
+
float weaponstats_buffer;
void WeaponStats_Init();
#include <common/weapons/all.qh>
+float autocvar_g_weaponspreadfactor;
+float autocvar_g_weaponforcefactor;
+float autocvar_g_weapondamagefactor;
+float autocvar_g_weaponratefactor;
+float autocvar_g_weaponspeedfactor;
+
#define INDEPENDENT_ATTACK_FINISHED 1
// there is 2 weapon tics that can run in one server frame
#include <server/hook.qh>
#include <server/intermission.qh>
#include <server/ipban.qh>
+#include <server/items/items.qh>
#include <server/main.qh>
#include <server/mapvoting.qh>
#include <server/mutators/_mod.qh>
#include <common/weapons/_all.qh>
+bool autocvar__sv_init;
+bool autocvar_g_use_ammunition;
+bool autocvar_g_jetpack;
+bool autocvar_g_warmup_allguns;
+bool autocvar_g_warmup_allow_timeout;
+#define autocvar_g_weaponarena cvar_string("g_weaponarena")
+string autocvar_quit_and_redirect;
+float autocvar_quit_and_redirect_timer;
+bool autocvar_quit_when_empty;
+string autocvar_sessionid;
+bool autocvar_sv_curl_serverpackages_auto;
+bool autocvar_sv_db_saveasdump;
+bool autocvar_sv_logscores_bots;
+bool autocvar_sv_logscores_console;
+bool autocvar_sv_logscores_file;
+string autocvar_sv_logscores_filename;
+float autocvar_sv_mapchange_delay;
+float autocvar_timelimit_increment;
+float autocvar_timelimit_decrement;
+float autocvar_timelimit_min;
+float autocvar_timelimit_max;
+float autocvar_timelimit_overtime;
+int autocvar_timelimit_overtimes;
+float autocvar_timelimit_suddendeath;
+
float checkrules_equality;
float checkrules_suddendeathwarning;
float checkrules_suddendeathend;