]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Merge branch 'Juhu/strafehud-fixes' into 'master'
authorterencehill <piuntn@gmail.com>
Tue, 4 Apr 2023 12:24:41 +0000 (12:24 +0000)
committerterencehill <piuntn@gmail.com>
Tue, 4 Apr 2023 12:24:41 +0000 (12:24 +0000)
Improved StrafeHUD

See merge request xonotic/xonotic-data.pk3dir!1066

20 files changed:
.tx/merge-base
common.fr.po
common.la.po
common.pt_BR.po
common.ru.po
common.zh_CN.po
common.zh_HK.po
common.zh_TW.po
languages.txt
physicsCPMA.cfg
physicsOverkill.cfg
physicsQ3.cfg
physicsX.cfg
physicsX010.cfg
physicsX07.cfg
physicsXDF.cfg
physicsXDFLight.cfg
qcsrc/common/mapobjects/trigger/jumppads.qc
qcsrc/server/items/items.qc
qcsrc/server/items/items.qh

index 224f3a5230ed7736e4315995330e129fd71f87fc..4445fc56eada44c2a1f9cd40d459bac56e28ab3f 100644 (file)
@@ -1 +1 @@
-Sun 26 Mar 2023 07:22:58 AM CEST
+Sun 02 Apr 2023 07:22:58 AM CEST
index ec31813bef7c1f41539e5d72a4f3b5cd9d3b457d..f8363bed64535dd57b3240a08328c414b2410493 100644 (file)
@@ -6645,7 +6645,7 @@ msgstr "Inclure la vitesse verticale"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.qc:49
 msgid "Show speed unit"
-msgstr ""
+msgstr "Afficher l'unité de vitesse"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.qc:52
 msgid "Top speed"
index 8496a356a1018f122b14dbe2714e733a9fab78e2..4635536987cdb340170e0c3aa1dc299311777cbe 100644 (file)
@@ -11,7 +11,7 @@ msgstr ""
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2023-03-26 07:22+0200\n"
 "PO-Revision-Date: 2013-09-12 16:53+0000\n"
-"Last-Translator: oblector o, 2022\n"
+"Last-Translator: oblector o, 2022-2023\n"
 "Language-Team: Latin (http://www.transifex.com/team-xonotic/xonotic/language/"
 "la/)\n"
 "Language: la\n"
@@ -7073,7 +7073,7 @@ msgstr ""
 #: qcsrc/menu/xonotic/dialog_multiplayer_create.qc:86
 #: qcsrc/menu/xonotic/dialog_settings_audio.qc:171
 msgid "1 minute"
-msgstr ""
+msgstr "1 minutum"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create.qc:103
 msgid "TIMLIM^Infinite"
@@ -7294,7 +7294,7 @@ msgstr ""
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.qc:157
 msgid "Make things fall to the ground slower (percentage of normal gravity)"
-msgstr "Res tardius in solo cadunt (gravitatis communis fractio)"
+msgstr "Res tardius in solum cadunt (gravitatis communis fractio)"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.qc:166
 msgid "Weapon & item mutators:"
@@ -7310,6 +7310,8 @@ msgid ""
 "Players spawn with the jetpack. Double-tap 'jump' or press the 'jetpack' key "
 "to use it"
 msgstr ""
+"Ludentes cum sarcina volatili nascuntur. Clavem 'salire' bis preme vel "
+"clavem 'sarcinam volatilem' preme ut ea utaris"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.qc:178
 msgid ""
@@ -7933,139 +7935,139 @@ msgstr ""
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.qc:30
 msgid "Master:"
-msgstr ""
+msgstr "Generalis:"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.qc:36
 msgid "Music:"
-msgstr ""
+msgstr "Cantus:"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.qc:44
 msgid "VOL^Ambient:"
-msgstr ""
+msgstr "Sola parietesque:"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.qc:51
 msgid "Info:"
-msgstr ""
+msgstr "Notae:"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.qc:58
 msgid "Items:"
-msgstr ""
+msgstr "Utilia:"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.qc:65
 msgid "Pain:"
-msgstr ""
+msgstr "Dolor:"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.qc:72
 msgid "Player:"
-msgstr ""
+msgstr "Ludens:"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.qc:79
 msgid "Shots:"
-msgstr ""
+msgstr "Emissiones:"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.qc:86
 msgid "Voice:"
-msgstr ""
+msgstr "Vox:"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.qc:94
 msgid "Weapons:"
-msgstr ""
+msgstr "Arma:"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.qc:100
 msgid "New style sound attenuation"
-msgstr ""
+msgstr "Novo modo sonos attenuare"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.qc:103
 msgid "Mute sounds when not active"
-msgstr ""
+msgstr "Non sonatur si otiosus es"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.qc:106
 msgid "Frequency:"
-msgstr ""
+msgstr "Frequentia:"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.qc:108
 msgid "Sound output frequency"
-msgstr ""
+msgstr "Sonorum frequentia"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.qc:109
 msgid "8 kHz"
-msgstr ""
+msgstr "8 kHz"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.qc:110
 msgid "11.025 kHz"
-msgstr ""
+msgstr "11.025 kHz"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.qc:111
 msgid "16 kHz"
-msgstr ""
+msgstr "16 kHz"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.qc:112
 msgid "22.05 kHz"
-msgstr ""
+msgstr "22.05 kHz"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.qc:113
 msgid "24 kHz"
-msgstr ""
+msgstr "24 kHz"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.qc:114
 msgid "32 kHz"
-msgstr ""
+msgstr "32 kHz"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.qc:115
 msgid "44.1 kHz"
-msgstr ""
+msgstr "44.1 kHz"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.qc:116
 msgid "48 kHz"
-msgstr ""
+msgstr "48 kHz"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.qc:120
 msgid "Channels:"
-msgstr ""
+msgstr "Canales:"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.qc:122
 msgid "Number of channels for the sound output"
-msgstr ""
+msgstr "Quot sunt sonorum canales"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.qc:123
 msgid "Mono"
-msgstr ""
+msgstr "Monophonicus"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.qc:124
 msgid "Stereo"
-msgstr ""
+msgstr "Stereophonicus"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.qc:125
 msgid "2.1"
-msgstr ""
+msgstr "2.1"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.qc:126
 msgid "4"
-msgstr ""
+msgstr "4"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.qc:127
 msgid "5"
-msgstr ""
+msgstr "5"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.qc:128
 msgid "5.1"
-msgstr ""
+msgstr "5.1"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.qc:129
 msgid "6.1"
-msgstr ""
+msgstr "6.1"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.qc:130
 msgid "7.1"
-msgstr ""
+msgstr "7.1"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.qc:135
 msgid "Swap stereo output channels"
-msgstr ""
+msgstr "Stereophonicus inversus"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.qc:136
 msgid "Swap left/right channels"
-msgstr ""
+msgstr "Canalem sinistrum et dextrum commutare"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.qc:139
 msgid "Headphone friendly mode"
@@ -8079,43 +8081,43 @@ msgstr ""
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.qc:144
 msgid "Hit indication sound"
-msgstr ""
+msgstr "Vulnerum soni"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.qc:145
 msgid "Play a hit indicator sound when your shot hits an enemy"
-msgstr ""
+msgstr "Quidam sonus fit cum inimicum vulneras"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.qc:149
 msgid "SND^Fixed"
-msgstr ""
+msgstr "Constare"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.qc:152
 msgid "Decrease pitch with more damage"
-msgstr ""
+msgstr "Sonus gravior est si vulnus maior est"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.qc:152
 msgid "Decreasing"
-msgstr ""
+msgstr "Deprimere"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.qc:155
 msgid "Increase pitch with more damage"
-msgstr ""
+msgstr "Sonus acutior est si vulnus maior est"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.qc:155
 msgid "Increasing"
-msgstr ""
+msgstr "Acuere"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.qc:159
 msgid "Chat message sound"
-msgstr ""
+msgstr "Locutorii soni"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.qc:161
 msgid "Menu sounds"
-msgstr ""
+msgstr "Indicis soni"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.qc:162
 msgid "Play sounds when clicking menu items"
-msgstr ""
+msgstr "Quidam sonus fit cum indicem cliccas"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.qc:163
 msgid "Focus sounds"
@@ -8127,35 +8129,35 @@ msgstr ""
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.qc:168
 msgid "Time announcer:"
-msgstr ""
+msgstr "Tempus nuntiare:"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.qc:170
 msgid "WRN^Disabled"
-msgstr ""
+msgstr "Non nuntiare"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.qc:172
 msgid "5 minutes"
-msgstr ""
+msgstr "5 minuta"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.qc:173
 msgid "WRN^Both"
-msgstr ""
+msgstr "Ambo nuntiare"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.qc:176
 msgid "Automatic taunts:"
-msgstr ""
+msgstr "Maledicta:"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.qc:178
 msgid "Automatically taunt enemies after fragging them"
-msgstr ""
+msgstr "Inimico maledicis cum eum occidis"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.qc:180
 msgid "Sometimes"
-msgstr ""
+msgstr "Nonnunquam"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.qc:181
 msgid "Often"
-msgstr ""
+msgstr "Saepe"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.qc:188
 msgid "Debug info about sounds"
@@ -8171,123 +8173,123 @@ msgstr ""
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.qc:41
 msgid "Quality preset:"
-msgstr ""
+msgstr "Pulchritudinum exempla:"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.qc:45
 msgid "PRE^OMG!"
-msgstr ""
+msgstr "EDEPOL"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.qc:48
 msgid "PRE^Low"
-msgstr ""
+msgstr "Parva"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.qc:50
 msgid "PRE^Medium"
-msgstr ""
+msgstr "Media"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.qc:52
 msgid "PRE^Normal"
-msgstr ""
+msgstr "Ordinaria"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.qc:54
 msgid "PRE^High"
-msgstr ""
+msgstr "Magna"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.qc:56
 msgid "PRE^Ultra"
-msgstr ""
+msgstr "Ulter"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.qc:60
 msgid "PRE^Ultimate"
-msgstr ""
+msgstr "Ultima"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.qc:65
 msgid "Geometry detail:"
-msgstr ""
+msgstr "Subtilitas geometrica:"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.qc:67
 msgid "Change the smoothness of the curves on the map"
-msgstr ""
+msgstr "Harenae flexuum lenitatem eligere"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.qc:68
 msgid "DET^Lowest"
-msgstr ""
+msgstr "Minima"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.qc:69
 msgid "DET^Low"
-msgstr ""
+msgstr "Parva"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.qc:70
 msgid "DET^Normal"
-msgstr ""
+msgstr "Ordinaria"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.qc:71
 msgid "DET^Good"
-msgstr ""
+msgstr "Bona"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.qc:72
 msgid "DET^Best"
-msgstr ""
+msgstr "Optima"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.qc:73
 msgid "DET^Insane"
-msgstr ""
+msgstr "Immoderata"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.qc:77
 msgid "Player detail:"
-msgstr ""
+msgstr "Ludentis formae subtilitas:"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.qc:79
 msgid "PDET^Low"
-msgstr ""
+msgstr "Parva"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.qc:80
 msgid "PDET^Medium"
-msgstr ""
+msgstr "Media"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.qc:81
 msgid "PDET^Normal"
-msgstr ""
+msgstr "Ordinaria"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.qc:82
 msgid "PDET^Good"
-msgstr ""
+msgstr "Bona"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.qc:83
 msgid "PDET^Best"
-msgstr ""
+msgstr "Optima"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.qc:87
 msgid "Texture resolution:"
-msgstr ""
+msgstr "Texturae claritudo:"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.qc:91
 msgid "RES^Leet"
-msgstr ""
+msgstr "Periti"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.qc:92
 msgid "RES^Lowest"
-msgstr ""
+msgstr "Minima"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.qc:93
 msgid "RES^Very low"
-msgstr ""
+msgstr "Minor"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.qc:94
 msgid "RES^Low"
-msgstr ""
+msgstr "Parva"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.qc:95
 msgid "RES^Normal"
-msgstr ""
+msgstr "Ordinaria"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.qc:96
 msgid "RES^Good"
-msgstr ""
+msgstr "Bona"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.qc:97
 msgid "RES^Best"
-msgstr ""
+msgstr "Optima"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.qc:110
 #: qcsrc/menu/xonotic/dialog_settings_effects.qc:115
@@ -8298,20 +8300,23 @@ msgstr ""
 #: qcsrc/menu/xonotic/dialog_settings_effects.qc:129
 msgid "Disable sky for performance and visibility"
 msgstr ""
+"Caelum neglegere ut computatrum celerius sit et imagines evidentes sint"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.qc:129
 msgid "Show sky"
-msgstr ""
+msgstr "Caelum videre"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.qc:132
 msgid "Show surfaces"
-msgstr ""
+msgstr "Superficies videre"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.qc:133
 msgid ""
 "Disable textures completely for very slow hardware. This gives a huge "
 "performance boost, but looks very ugly."
 msgstr ""
+"Texturae omnino neglegentur, pro computatro lento. Itaque imagines multum "
+"celerius pingentur, foedissimae erunt tamen."
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.qc:136
 msgid "Use lightmaps"
index 50b9a0e16779be6520433f8fc72b838edf084753..74ad76c05162b5ebf19b7bda260f3a0ef09bbe63 100644 (file)
@@ -18,7 +18,7 @@ msgstr ""
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2023-03-26 07:22+0200\n"
 "PO-Revision-Date: 2013-09-12 16:53+0000\n"
-"Last-Translator: zerowhy . <anymailz@tutanota.com>, 2021\n"
+"Last-Translator: yy0zz, 2021-2023\n"
 "Language-Team: Portuguese (Brazil) (http://www.transifex.com/team-xonotic/"
 "xonotic/language/pt_BR/)\n"
 "Language: pt_BR\n"
@@ -6608,7 +6608,7 @@ msgstr "Incluir velocidade vertical"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.qc:49
 msgid "Show speed unit"
-msgstr ""
+msgstr "Exibir unidade de velocidade"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.qc:52
 msgid "Top speed"
index 58b28f4386e8cc58d3ff087b93563c4d0352498d..66b37932da945d905cecfe7c68c0b06f3b9ecbc3 100644 (file)
@@ -6587,7 +6587,7 @@ msgstr "С вертикальной скоростью"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.qc:49
 msgid "Show speed unit"
-msgstr ""
+msgstr "Показать единицу измерения скорости"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.qc:52
 msgid "Top speed"
index 188b910619c7c7480a2a1062ebc9268442f42669..2b30ccce7a779d51a9b6a4477ad4fda9d9b6aa7e 100644 (file)
@@ -6516,7 +6516,7 @@ msgstr "包括垂直速度"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.qc:49
 msgid "Show speed unit"
-msgstr ""
+msgstr "显示速度单位"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.qc:52
 msgid "Top speed"
index 7fa904d649737d1c24ba67dbf414651407893725..2ae7db1cad6cdd8dd43f9e863b5ea072d286e674 100644 (file)
@@ -6510,7 +6510,7 @@ msgstr "包括垂直速度"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.qc:49
 msgid "Show speed unit"
-msgstr ""
+msgstr "顯示速度單位"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.qc:52
 msgid "Top speed"
index 54d816bd7df7b07a26d63750a2cc60efa4841309..425e49863ae3912cf45436459d64cbb0011cfa76 100644 (file)
@@ -30,7 +30,7 @@ msgstr ""
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2023-03-26 07:22+0200\n"
 "PO-Revision-Date: 2013-09-12 16:53+0000\n"
-"Last-Translator: é»\83æ\9f\8f諺 <s8321414@gmail.com>, 2015\n"
+"Last-Translator: é\9f¬ å\88\98 <jiegushijia@gmail.com>, 2019\n"
 "Language-Team: Chinese (Taiwan) (http://www.transifex.com/team-xonotic/"
 "xonotic/language/zh_TW/)\n"
 "Language: zh_TW\n"
@@ -6519,7 +6519,7 @@ msgstr "包括垂直速度"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.qc:49
 msgid "Show speed unit"
-msgstr ""
+msgstr "顯示速度單位"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.qc:52
 msgid "Top speed"
index dd0255eff408aa75eb71d04d7cd46077e1764b36..17d6b0fac0b6245a16ccb17bee8f2aed833cb755 100644 (file)
@@ -5,15 +5,15 @@ de_CH "German (Switzerland)" "Deutsch (Schweiz)" 98%
 en    "English" "English" 100%
 en_AU "English (Australia)" "English (Australia)" 69%
 es    "Spanish" "Español" 99%
-fr    "French" "Français" 99%
+fr    "French" "Français" 100%
 ga    "Irish" "Irish" 29%
 it    "Italian" "Italiano" 99%
-la    "Latin" "Lingua Latina" 52%
+la    "Latin" "Lingua Latina" 55%
 hu    "Hungarian" "Magyar" 43%
 nl    "Dutch" "Nederlands" 62%
 pl    "Polish" "Polski" 80%
 pt    "Portuguese" "Português" 78%
-pt_BR "Portuguese (Brazil)" "Português (Brasil)" 99%
+pt_BR "Portuguese (Brazil)" "Português (Brasil)" 100%
 ro    "Romanian" "Romana" 68%
 fi    "Finnish" "Suomi" 99%
 sv    "Swedish" "Svenska" 99%
@@ -22,11 +22,11 @@ cs    "Czech" "Čeština" 31%
 el    "Greek" "Ελληνική" 44%
 be    "Belarusian" "Беларуская" 49%
 bg    "Bulgarian" "Български" 65%
-ru    "Russian" "Русский" 99%
+ru    "Russian" "Русский" 100%
 sr    "Serbian" "Српски" 58%
 uk    "Ukrainian" "Українська" 49%
-zh_TW "Chinese (Taiwan)" "中文(正體字)" 99%
-zh_CN "Chinese (China)" "中文(简体字)" 99%
-zh_HK "Chinese (Hong Kong)" "中文(香港字)" 99%
+zh_TW "Chinese (Taiwan)" "中文(正體字)" 100%
+zh_CN "Chinese (China)" "中文(简体字)" 100%
+zh_HK "Chinese (Hong Kong)" "中文(香港字)" 100%
 ja_JP "Japanese" "日本語" 98%
 ko    "Korean" "한국의" 35%
index 30a18cab993a223fbb779e3a3febefdc3043d58e..559ce3a37c78464f241c7f476e19595047b08c82 100644 (file)
@@ -1,13 +1,37 @@
 g_mod_physics CPMA
 // these values match CPMA
 
-sv_gravity 800
+// CPMA uses gravity 800 but the strength of Q3 gravity is frametime-dependent.
+// It also differs slightly between ascending and descending, which we don't attempt to replicate.
+// Modern CPMA has frametime-independent physics that ~match 125fps frametime-dependent.
+// DeFRaG still has frametime-dependent physics and DFWC rules mandate 125fps.
+// 125 * round(800/125) = 750 simulates 125fps Q3 gravity in Xonotic,
+// tested mathematically by k9 and ingame with printf by bones_was_here.
+
+// Jump height:
+// Taking into account the effect of velocity snapping, a general formula for origin.z k frames after jumping can be derived:
+// kT(270 + (round(gT) - GT)/2) - 1/2 k^2 T round(gT)
+// Inputting g=750, T=1/125 and solving on the 45th frame, we find that the jump height in Quake 3 is 48.528 units.
+// Q3 test results: 48.527999872 in every test (at end of frame).
+// Xonotic test results: 48.6 as expected by (270^2)/(2*750) (see: physicsX.cfg)
+
+// Jump distance/duration:
+// The above formula can also be used to calculate that landing in Q3 occurs after 89.93333... 8ms frames,
+// for a duration of 720ms at end of frame, as predicted by (2*270)/750 (see: physicsX.cfg),
+// so the expected distance is 230.4 units at 320ups.
+// Q3 test results: 230.405274 230.405274 230.404723 230.404969 (at end of frame when ONGROUND is set).
+// Xonotic test results: 230.39637 in every test (Xonotic can set ONGROUND earlier in the frame, when the collision occurs).
+
+sv_gravity 750
+
 sv_maxspeed 320
 sv_maxairspeed 320
 sv_stopspeed 100
-sv_accelerate 15
+sv_accelerate 15 // from cpm1_dev_docs
 sv_airaccelerate 1
-sv_friction 8
+// The cpm1_dev_docs.zip (only CPMA source code release) used friction 8,
+// but friction is 6 in all ~modern CPMA releases, and in DeFRaG CPM.
+sv_friction 6
 edgefriction 1
 sv_stepheight 18
 sv_jumpvelocity 270
@@ -17,11 +41,11 @@ sv_waterfriction 1
 sv_airaccel_sideways_friction 0
 sv_airaccel_qw 1
 sv_airaccel_qw_stretchfactor 0
-sv_airstopaccelerate 2.5
-sv_airstrafeaccelerate 70
-sv_maxairstrafespeed 30
+sv_airstopaccelerate 2.5   // from cpm1_dev_docs
+sv_airstrafeaccelerate 70  // from cpm1_dev_docs strafeaccelerate
+sv_maxairstrafespeed 30    // from cpm1_dev_docs wishspeed
 sv_airstrafeaccel_qw 0
-sv_aircontrol 150
+sv_aircontrol 150          // from cpm1_dev_docs
 sv_aircontrol_penalty 0
 sv_aircontrol_power 2
 sv_aircontrol_backwards 0
@@ -34,10 +58,13 @@ sv_warsowbunny_backtosideratio 0.8
 sv_friction_on_land 0
 sv_friction_slick 0
 sv_doublejump 0
-sv_jumpspeedcap_min ""
+// match the downhill ramp jumping behaviour of CPMA
+sv_jumpspeedcap_min 0
 sv_jumpspeedcap_max ""
-sv_jumpspeedcap_max_disable_on_ramps 0
+// CPMA has ramp jumping
+sv_jumpspeedcap_max_disable_on_ramps 1
+// FIXME: Q3 teleporters _set_ speed to 400, not cap it
 g_teleport_maxspeed 400
-sv_track_canjump 0
+sv_track_canjump 1
 sv_gameplayfix_stepdown_maxspeed 0
 g_movement_highspeed_q3_compat 1
index be6ea49633831011627d7976ff60ca5d00a1c27e..aa97fb15b4882198f22757aea2be809eca3e5a08 100644 (file)
@@ -52,5 +52,6 @@ sv_jumpspeedcap_min ""
 sv_jumpspeedcap_max ""
 sv_jumpspeedcap_max_disable_on_ramps 1
 g_teleport_maxspeed 0
+sv_track_canjump 0
 sv_gameplayfix_stepdown_maxspeed 400
 g_movement_highspeed_q3_compat 0
index 76ee484ec6261c15864e660e499ee7806e6583df..08fdde547eda7a7f2f9b193f52f2ef3851992875 100644 (file)
@@ -1,7 +1,8 @@
 g_mod_physics Q3
 // these values match Quake3
 
-sv_gravity 800
+// See physicsCPMA.cfg for the source of this sv_gravity setting
+sv_gravity 750
 sv_maxspeed 320
 sv_maxairspeed 320
 sv_stopspeed 100
@@ -17,8 +18,10 @@ sv_waterfriction 1
 sv_airaccel_sideways_friction 0
 sv_airaccel_qw 1
 sv_airaccel_qw_stretchfactor 0
-sv_airstopaccelerate 0
-sv_airstrafeaccelerate 0
+// Q3A doesn't have airstopaccelerate and strafeaccelerate
+// but they're added in cpm1_dev_docs.zip with values 1 and 1 in VQ3 mode
+sv_airstopaccelerate 1
+sv_airstrafeaccelerate 1
 sv_maxairstrafespeed 0
 sv_airstrafeaccel_qw 0
 sv_aircontrol 0
@@ -35,9 +38,11 @@ sv_friction_on_land 0
 sv_friction_slick 0
 sv_doublejump 0
 sv_jumpspeedcap_min ""
-sv_jumpspeedcap_max ""
+// VQ3 has no ramp jumping
+sv_jumpspeedcap_max 270
 sv_jumpspeedcap_max_disable_on_ramps 0
-g_teleport_maxspeed 320
-sv_track_canjump 0
+// FIXME: Q3 teleporters _set_ speed to 400, not cap it
+g_teleport_maxspeed 400
+sv_track_canjump 1
 sv_gameplayfix_stepdown_maxspeed 0
-g_movement_highspeed_q3_compat 0
+g_movement_highspeed_q3_compat 1
index 252c2e7e9bc044d6806ea7e7ae596afac22eab26..21ded2a8c859376b438e9b49d7db39e7393bd3b3 100644 (file)
@@ -53,5 +53,6 @@ sv_jumpspeedcap_min ""
 sv_jumpspeedcap_max ""
 sv_jumpspeedcap_max_disable_on_ramps 1
 g_teleport_maxspeed 0
+sv_track_canjump 0
 sv_gameplayfix_stepdown_maxspeed 400
 g_movement_highspeed_q3_compat 0
index 8b81ca0421b71b4c5f9225313ed8a4559571cb0d..e350037e60e2da0591270e83014e2c1fcfc6595e 100644 (file)
@@ -46,5 +46,6 @@ sv_jumpspeedcap_min ""
 sv_jumpspeedcap_max ""
 sv_jumpspeedcap_max_disable_on_ramps 1
 g_teleport_maxspeed 0
+sv_track_canjump 0
 sv_gameplayfix_stepdown_maxspeed 400
 g_movement_highspeed_q3_compat 0
index aa582bd991ddad8e5dac2cae8ef7ba86aaeaa6f3..c7c2250e7c91a74f47cc64a8f6600f2a2f39464c 100644 (file)
@@ -52,5 +52,6 @@ sv_jumpspeedcap_min ""
 sv_jumpspeedcap_max ""
 sv_jumpspeedcap_max_disable_on_ramps 1
 g_teleport_maxspeed 0
+sv_track_canjump 0
 sv_gameplayfix_stepdown_maxspeed 400
 g_movement_highspeed_q3_compat 0
index 8bbe28eaa41d1807e79c4e6dcd4f7ac3c38e00cc..1436bbdcb85bd00952a04855674d21957a779820 100644 (file)
@@ -44,6 +44,7 @@ sv_jumpspeedcap_min 0
 sv_jumpspeedcap_max 0.5
 sv_jumpspeedcap_max_disable_on_ramps 1
 g_teleport_maxspeed 600
+sv_track_canjump 0
 sv_gameplayfix_stepdown_maxspeed 400
 // needed for correct q3 haste simulation
 g_movement_highspeed_q3_compat 1
index dd657afaf71a97178c029cb38b957a4874dbd31b..1c86e786d1051d79643a7d0199ff4669421f7674 100644 (file)
@@ -44,5 +44,6 @@ sv_jumpspeedcap_min ""
 sv_jumpspeedcap_max ""
 sv_jumpspeedcap_max_disable_on_ramps 1
 g_teleport_maxspeed 0
+sv_track_canjump 0
 sv_gameplayfix_stepdown_maxspeed 400
 g_movement_highspeed_q3_compat 0
index ecc80f4ad668e1f695542196bc8b0b3760c3a5a3..4754213bf3dd6e37efd961219ed9e44cb66c91a2 100644 (file)
@@ -39,6 +39,14 @@ vector trigger_push_calculatevelocity(vector org, entity tgt, float ht, entity p
        if(pushed_entity && pushed_entity.gravity)
                grav *= pushed_entity.gravity;
 
+       // Q3 has frametime-dependent gravity, but its trigger_push velocity calculation doesn't account for that.
+       // This discrepancy can be simulated accurately which ensures that all entities will arrive
+       // where they would in Q3 with gravity 800 at 125fps, even if entity-specific gravity is applied.
+       // This can be hard-coded because we don't support the Q3 world.gravity field at this time.
+       // See physicsCPMA.cfg for maths and test results.
+       if (Q3COMPAT_COMMON)
+               grav /= 750/800; // exact float, unlike 800/750
+
        zdist = torg.z - org.z;
        sdist = vlen(torg - org - zdist * '0 0 1');
        sdir = normalize(torg - org - zdist * '0 0 1');
index 6562e57533ee57e928c27af5907aa128a6060137..504ba6e6380e75981958ddc55eb95411d7f2effa 100644 (file)
@@ -949,12 +949,6 @@ void _StartItem(entity this, entity def, float defaultrespawntime, float default
        if(def.m_iteminit)
                def.m_iteminit(def, this);
 
-       if(!this.respawntime) // both need to be set
-       {
-               this.respawntime = defaultrespawntime;
-               this.respawntimejitter = defaultrespawntimejitter;
-       }
-
        if(!this.pickup_anyway && def.m_pickupanyway)
                this.pickup_anyway = def.m_pickupanyway();
 
@@ -982,9 +976,6 @@ void _StartItem(entity this, entity def, float defaultrespawntime, float default
                return;
        }
 
-       precache_model(this.model);
-       precache_sound(this.item_pickupsound);
-
        if (Item_IsLoot(this))
        {
                this.reset = RemoveItem;
@@ -1017,6 +1008,7 @@ void _StartItem(entity this, entity def, float defaultrespawntime, float default
        }
        else
        {
+               // must be done after def.m_iteminit() as that may set ITEM_FLAG_MUTATORBLOCKED
                if(!have_pickup_item(this))
                {
                        startitem_failed = true;
@@ -1024,6 +1016,13 @@ void _StartItem(entity this, entity def, float defaultrespawntime, float default
                        return;
                }
 
+               // must be done before Item_Reset() and after MUTATORBLOCKED check (blocked items may have null func ptrs)
+               if(!this.respawntime) // both need to be set
+               {
+                       this.respawntime = defaultrespawntime ? defaultrespawntime : def.m_respawntime();
+                       this.respawntimejitter = defaultrespawntimejitter ? defaultrespawntimejitter : def.m_respawntimejitter();
+               }
+
                if(this.angles != '0 0 0')
                        this.SendFlags |= ISF_ANGLES;
 
@@ -1161,6 +1160,10 @@ void _StartItem(entity this, entity def, float defaultrespawntime, float default
                return;
        }
 
+       // we should be sure this item will spawn before loading its assets
+       precache_model(this.model);
+       precache_sound(this.item_pickupsound);
+
        setItemGroup(this);
 }
 
@@ -1173,8 +1176,8 @@ void StartItem(entity this, GameItem def)
        _StartItem(
                this,
                this.itemdef = def,
-               def.m_respawntime(), // defaultrespawntime
-               def.m_respawntimejitter() // defaultrespawntimejitter
+               0, // call def.m_respawntime() to get defaultrespawntime
+               0  // call def.m_respawntimejitter() to get defaultrespawntimejitter
        );
 }
 
index 95e27f8361efc99171941b86ba837baabb9bfce8..8af67c8deea9a203ff6b759abb19ed24b3921f32 100644 (file)
@@ -19,8 +19,6 @@ void StartItem(entity this, entity a);
 float autocvar_sv_simple_items;
 bool ItemSend(entity this, entity to, int sf);
 
-bool have_pickup_item(entity this);
-
 const float ITEM_RESPAWN_TICKS = 10;
 
 // string overrides entity