-Sun 26 Mar 2023 07:22:58 AM CEST
+Sun 02 Apr 2023 07:22:58 AM CEST
#: 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"
"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"
#: 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"
#: 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:"
"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 ""
#: 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"
#: 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"
#: 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"
#: 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
#: 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"
"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"
#: 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"
#: 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"
#: 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"
#: 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"
"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"
#: 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"
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%
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%
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
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
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
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
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
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
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
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
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
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
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
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
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');
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();
return;
}
- precache_model(this.model);
- precache_sound(this.item_pickupsound);
-
if (Item_IsLoot(this))
{
this.reset = RemoveItem;
}
else
{
+ // must be done after def.m_iteminit() as that may set ITEM_FLAG_MUTATORBLOCKED
if(!have_pickup_item(this))
{
startitem_failed = true;
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;
return;
}
+ // we should be sure this item will spawn before loading its assets
+ precache_model(this.model);
+ precache_sound(this.item_pickupsound);
+
setItemGroup(this);
}
_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
);
}
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