]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Merge branch 'master' into Mario/arc_bolt_bounce
authorMario <mario.mario@y7mail.com>
Fri, 6 Nov 2020 14:09:22 +0000 (00:09 +1000)
committerMario <mario.mario@y7mail.com>
Fri, 6 Nov 2020 14:09:22 +0000 (00:09 +1000)
37 files changed:
.tx/merge-base
common.de.po
common.de_CH.po
common.he.po
languages.txt
mutators.cfg
qcsrc/client/csqcmodel_hooks.qc
qcsrc/client/shownames.qc
qcsrc/common/gamemodes/gamemode/nexball/nexball.qh
qcsrc/common/mapinfo.qc
qcsrc/common/mapinfo.qh
qcsrc/common/mutators/mutator/buffs/sv_buffs.qc
qcsrc/common/mutators/mutator/buffs/sv_buffs.qh
qcsrc/common/mutators/mutator/instagib/sv_instagib.qh
qcsrc/common/mutators/mutator/melee_only/sv_melee_only.qc
qcsrc/common/mutators/mutator/nix/sv_nix.qc
qcsrc/common/mutators/mutator/overkill/sv_overkill.qh
qcsrc/common/mutators/mutator/vampire/sv_vampire.qc
qcsrc/common/notifications/all.inc
qcsrc/common/vehicles/cl_vehicles.qc
qcsrc/common/vehicles/cl_vehicles.qh
qcsrc/common/vehicles/sv_vehicles.qc
qcsrc/common/vehicles/sv_vehicles.qh
qcsrc/common/vehicles/vehicle/bumblebee.qh
qcsrc/common/vehicles/vehicle/racer.qc
qcsrc/common/vehicles/vehicle/racer.qh
qcsrc/common/vehicles/vehicle/raptor.qh
qcsrc/common/vehicles/vehicle/spiderbot.qh
qcsrc/common/vehicles/vehicles.qc
qcsrc/common/vehicles/vehicles.qh
qcsrc/common/weapons/weapon/arc.qc
qcsrc/lib/csqcmodel/cl_player.qc
qcsrc/lib/warpzone/client.qc
qcsrc/menu/menu.qc
qcsrc/server/items/items.qc
qcsrc/server/player.qc
qcsrc/server/weapons/csqcprojectile.qc

index 479ea2adf24efb8894b7b75b6f862a57d51e43ff..af8d9b326c2b2c24b059e98469b673b463ac84b6 100644 (file)
@@ -1 +1 @@
-Fri Oct 30 07:23:43 CET 2020
+Thu Nov  5 07:23:37 CET 2020
index 711181e31bb628035e15cb5fc746810c94a01afa..fbdfa2208c18d78acabcd52653d0fcd99924009e 100644 (file)
@@ -28,8 +28,8 @@ msgstr ""
 "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-11-04 13:31+0000\n"
+"Last-Translator: Mirio <opivy@hotmail.de>\n"
 "Language-Team: German (http://www.transifex.com/team-xonotic/xonotic/"
 "language/de/)\n"
 "Language: de\n"
@@ -1063,23 +1063,23 @@ msgstr "Du bist tot, drücke ^2%s^7, um neu zu spawnen"
 
 #: 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"
@@ -6338,90 +6338,90 @@ msgstr "Punkte-Panel"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:47
 msgid "StrafeHUD mode:"
-msgstr ""
+msgstr "StrafeHUD Modus:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:50
 msgid "View angle centered"
-msgstr ""
+msgstr "Blickwinkel zentriert"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:51
 msgid "Velocity angle centered"
-msgstr ""
+msgstr "Geschwindigkeitswinkel zentriert"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:54
 msgid "StrafeHUD style:"
-msgstr ""
+msgstr "StrafeHUD Stil:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:57
 msgid "no styling"
-msgstr ""
+msgstr "kein Styling"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:58
 msgid "progress bar"
-msgstr ""
+msgstr "Fortschrittsanzeige"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:59
 msgid "gradient"
-msgstr ""
+msgstr "Verlauf"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:62
 msgid "Demo mode"
-msgstr ""
+msgstr "Wiederholung-Modus"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:66
 msgid "Range:"
-msgstr ""
+msgstr "Reichweite:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:69
 msgid "Center panel"
-msgstr ""
+msgstr "Mittelteil"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:75
 msgid "Reset colors"
-msgstr ""
+msgstr "Farben zurücksetzen"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:79
 msgid "Strafe bar:"
-msgstr ""
+msgstr "Strafeleiste:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:83
 msgid "Angle indicator:"
-msgstr ""
+msgstr "Winkelanzeige:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:85
 #: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:93
 msgid "Neutral:"
-msgstr ""
+msgstr "Neutral:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:87
 #: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:95
 msgid "Good:"
-msgstr ""
+msgstr "Gut:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:89
 #: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:97
 msgid "Overturn:"
-msgstr ""
+msgstr "Sturz:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:124
 msgid "Switch indicators:"
-msgstr ""
+msgstr "Anzeige umschalten:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:128
 msgid "Direction caps:"
-msgstr ""
+msgstr "Ausrichtungsmaximum:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:130
 msgid "Active:"
-msgstr ""
+msgstr "Aktiv:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:134
 msgid "Inactive:"
-msgstr ""
+msgstr "Inaktiv:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qh:6
 msgid "StrafeHUD Panel"
-msgstr ""
+msgstr "StrafeHUD-Panel"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_timer.qc:16
 msgid "Timer:"
index bb87964c8866ac57b2327b191cd11f4b1a54eadc..ff75d63d52a745f91a2d272d5a77cb420f28fdc7 100644 (file)
@@ -28,8 +28,8 @@ msgstr ""
 "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-11-04 13:31+0000\n"
+"Last-Translator: Mirio <opivy@hotmail.de>\n"
 "Language-Team: German (http://www.transifex.com/team-xonotic/xonotic/"
 "language/de/)\n"
 "Language: de\n"
@@ -1063,23 +1063,23 @@ msgstr "Du bist tot, drücke ^2%s^7, um neu zu spawnen"
 
 #: 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"
@@ -6339,90 +6339,90 @@ msgstr "Punkte-Panel"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:47
 msgid "StrafeHUD mode:"
-msgstr ""
+msgstr "StrafeHUD Modus:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:50
 msgid "View angle centered"
-msgstr ""
+msgstr "Blickwinkel zentriert"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:51
 msgid "Velocity angle centered"
-msgstr ""
+msgstr "Geschwindigkeitswinkel zentriert"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:54
 msgid "StrafeHUD style:"
-msgstr ""
+msgstr "StrafeHUD Stil:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:57
 msgid "no styling"
-msgstr ""
+msgstr "kein Styling"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:58
 msgid "progress bar"
-msgstr ""
+msgstr "Fortschrittsanzeige"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:59
 msgid "gradient"
-msgstr ""
+msgstr "Verlauf"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:62
 msgid "Demo mode"
-msgstr ""
+msgstr "Wiederholung-Modus"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:66
 msgid "Range:"
-msgstr ""
+msgstr "Reichweite:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:69
 msgid "Center panel"
-msgstr ""
+msgstr "Mittelteil"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:75
 msgid "Reset colors"
-msgstr ""
+msgstr "Farben zurücksetzen"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:79
 msgid "Strafe bar:"
-msgstr ""
+msgstr "Strafeleiste:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:83
 msgid "Angle indicator:"
-msgstr ""
+msgstr "Winkelanzeige:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:85
 #: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:93
 msgid "Neutral:"
-msgstr ""
+msgstr "Neutral:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:87
 #: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:95
 msgid "Good:"
-msgstr ""
+msgstr "Gut:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:89
 #: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:97
 msgid "Overturn:"
-msgstr ""
+msgstr "Sturz:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:124
 msgid "Switch indicators:"
-msgstr ""
+msgstr "Anzeige umschalten:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:128
 msgid "Direction caps:"
-msgstr ""
+msgstr "Ausrichtungsmaximum:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:130
 msgid "Active:"
-msgstr ""
+msgstr "Aktiv:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qc:134
 msgid "Inactive:"
-msgstr ""
+msgstr "Inaktiv:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_strafehud.qh:6
 msgid "StrafeHUD Panel"
-msgstr ""
+msgstr "StrafeHUD-Panel"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_timer.qc:16
 msgid "Timer:"
index 03fc4b64d68bf439a8a334bfae5d9f08f0b865d8..0c24d199db8c38f00a3b99a5969cad9c78bf2401 100644 (file)
@@ -4,6 +4,8 @@
 #
 # Translators:
 # nad le <nadavlevi726@gmail.com>, 2018
+# Omer I.S., 2020
+# Omer I.S., 2020
 # Roi Asher Gerszkoviez <gerszkoviez@gmail.com>, 2020
 # Tal Leibman <leibman2@gmail.com>, 2019
 msgid ""
@@ -11,8 +13,8 @@ msgstr ""
 "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-11-03 20:32+0000\n"
+"Last-Translator: Omer I.S.\n"
 "Language-Team: Hebrew (http://www.transifex.com/team-xonotic/xonotic/"
 "language/he/)\n"
 "Language: he\n"
@@ -47,7 +49,7 @@ msgstr ""
 #: qcsrc/client/hud/panel/centerprint.qc:177
 #, c-format
 msgid "Message at time %s"
-msgstr "×\94×\95×\93×¢×\94 ×\91×\96×\9e×\9f %s"
+msgstr "×\94×\95×\93×¢×\94 ×\91שע×\94 %s"
 
 #: qcsrc/client/hud/panel/centerprint.qc:182
 msgid "Generic message"
@@ -74,7 +76,7 @@ msgstr ""
 #: qcsrc/client/hud/panel/infomessages.qc:106
 #, c-format
 msgid "^1Press ^3%s^1 to spectate"
-msgstr "^1×\9c×\97×¥ ^3%s^1 כדי להשקיף"
+msgstr "^1×\9c×\97צ×\95 ×¢×\9c ^3%s^1 כדי להשקיף"
 
 #: qcsrc/client/hud/panel/infomessages.qc:106
 #: qcsrc/menu/xonotic/keybinder.qc:47
@@ -89,12 +91,12 @@ msgstr ""
 #: qcsrc/client/hud/panel/infomessages.qc:108
 #: qcsrc/client/hud/panel/infomessages.qc:112
 msgid "next weapon"
-msgstr "הנשק הבא"
+msgstr "×\9b×\9c×\99 ×\94נשק ×\94×\91×\90"
 
 #: qcsrc/client/hud/panel/infomessages.qc:108
 #: qcsrc/client/hud/panel/infomessages.qc:112
 msgid "previous weapon"
-msgstr "הנשק הקודם"
+msgstr "×\9b×\9c×\99 ×\94נשק ×\94ק×\95×\93×\9d"
 
 #: qcsrc/client/hud/panel/infomessages.qc:112
 #, c-format
@@ -109,7 +111,7 @@ msgstr ""
 #: qcsrc/client/hud/panel/infomessages.qc:114
 #: qcsrc/common/vehicles/cl_vehicles.qc:191
 msgid "drop weapon"
-msgstr "×\96ר×\95ק נשק"
+msgstr "×\96ר×\99קת ×\9b×\9c×\99 ×\94נשק"
 
 #: qcsrc/client/hud/panel/infomessages.qc:114
 #: qcsrc/menu/xonotic/keybinder.qc:48
@@ -139,7 +141,7 @@ msgstr ""
 #: qcsrc/client/hud/panel/infomessages.qc:138
 #, c-format
 msgid "^1Game starts in ^3%d^1 seconds"
-msgstr ""
+msgstr "^1המשחק יתחיל בעוד ^3%d^1 שניות"
 
 #: qcsrc/client/hud/panel/infomessages.qc:144
 msgid "^2Currently in ^1warmup^2 stage!"
@@ -241,7 +243,7 @@ msgstr "צ'אט"
 
 #: qcsrc/client/hud/panel/quickmenu.qc:787
 msgid "QMCMD^Send public message to"
-msgstr "QMCMD^ש×\9c×\97 הודעה פומבית אל"
+msgstr "QMCMD^ש×\9c×\99×\97ת הודעה פומבית אל"
 
 #: qcsrc/client/hud/panel/quickmenu.qc:788
 msgid "QMCMD^:-) / nice one"
@@ -253,7 +255,7 @@ msgstr ""
 
 #: qcsrc/client/hud/panel/quickmenu.qc:789
 msgid "QMCMD^good game"
-msgstr ""
+msgstr "QMCMD^משחק טוב"
 
 #: qcsrc/client/hud/panel/quickmenu.qc:790
 msgid "QMCMD^hi / good luck"
@@ -1095,7 +1097,7 @@ msgstr ""
 
 #: qcsrc/client/hud/panel/weapons.qc:639
 msgid "Unavailable"
-msgstr "לא זמין"
+msgstr "לא זמין"
 
 #: qcsrc/client/main.qc:286
 msgid "Trying to remove a team which is not in the teamlist!"
@@ -1107,15 +1109,15 @@ msgstr ""
 
 #: qcsrc/client/main.qc:1073 qcsrc/menu/xonotic/dialog_hudpanel_physics.qc:52
 msgid "m/s"
-msgstr "מ\"ש"
+msgstr "מ״ש"
 
 #: qcsrc/client/main.qc:1074 qcsrc/menu/xonotic/dialog_hudpanel_physics.qc:53
 msgid "km/h"
-msgstr "קמ\"ש"
+msgstr "קמ״ש"
 
 #: qcsrc/client/main.qc:1075 qcsrc/menu/xonotic/dialog_hudpanel_physics.qc:54
 msgid "mph"
-msgstr "מייל לשעה"
+msgstr "מַייל לשעה"
 
 #: qcsrc/client/main.qc:1076 qcsrc/menu/xonotic/dialog_hudpanel_physics.qc:55
 msgid "knots"
@@ -1145,7 +1147,7 @@ msgstr ""
 
 #: qcsrc/client/mapvoting.qc:394
 msgid "Vote for a map"
-msgstr "הצבע למפה"
+msgstr "הצבעה למפה"
 
 #: qcsrc/client/mapvoting.qc:411
 #, c-format
@@ -1231,7 +1233,7 @@ msgstr ""
 
 #: qcsrc/common/gamemodes/gamemode/ctf/ctf.qh:12
 msgid "Capture the Flag"
-msgstr "תפוס את הדגל"
+msgstr "×\9cתפ×\95ס ×\90ת ×\94×\93×\92×\9c"
 
 #: qcsrc/common/gamemodes/gamemode/ctf/ctf.qh:12
 msgid ""
@@ -1386,7 +1388,7 @@ msgstr "מרוץ"
 
 #: qcsrc/common/gamemodes/gamemode/race/race.qh:11
 msgid "Race against other players to the finish line"
-msgstr "×\94ת×\97ר×\94 נגד שחקנים אחרים לקו הסיום"
+msgstr "×\9c×\94ת×\97ר×\95ת נגד שחקנים אחרים לקו הסיום"
 
 #: qcsrc/common/gamemodes/gamemode/race/race.qh:38
 msgid "Laps:"
@@ -1502,7 +1504,7 @@ msgstr ""
 
 #: qcsrc/common/minigames/cl_minigames_hud.qc:432
 msgid "Exit Menu"
-msgstr "צ×\90 מהתפריט"
+msgstr "×\99צ×\99×\90×\94 מהתפריט"
 
 #: qcsrc/common/minigames/cl_minigames_hud.qc:443
 #: qcsrc/menu/xonotic/dialog_multiplayer.qc:16
@@ -1511,7 +1513,7 @@ msgstr ""
 
 #: qcsrc/common/minigames/cl_minigames_hud.qc:446
 msgid "Join"
-msgstr "×\94צ×\98רף"
+msgstr "×\94צ×\98רפ×\95ת"
 
 #: qcsrc/common/minigames/cl_minigames_hud.qc:522
 msgid "Minigames"
@@ -1557,7 +1559,7 @@ msgstr ""
 
 #: qcsrc/common/minigames/minigame/bd.qc:1403
 msgid "Next Level"
-msgstr "שלב הבא"
+msgstr "×\94ש×\9c×\91 ×\94×\91×\90"
 
 #: qcsrc/common/minigames/minigame/bd.qc:1404
 msgid "Restart"
@@ -1570,7 +1572,7 @@ msgstr ""
 #: qcsrc/common/minigames/minigame/bd.qc:1406
 #: qcsrc/menu/xonotic/dialog_settings_input_userbind.qc:37
 msgid "Save"
-msgstr "ש×\9e×\95ר"
+msgstr "ש×\9e×\99ר×\94"
 
 #: qcsrc/common/minigames/minigame/c4.qc:2
 msgid "Connect Four"
@@ -1652,15 +1654,15 @@ msgstr ""
 
 #: qcsrc/common/minigames/minigame/pong.qc:679
 msgid "Start Match"
-msgstr "התחל משחק"
+msgstr "התחלת סיבוב"
 
 #: qcsrc/common/minigames/minigame/pong.qc:680
 msgid "Add AI player"
-msgstr "×\94×\95סף שחקן מחשב"
+msgstr "×\94×\95ספת שחקן מחשב"
 
 #: qcsrc/common/minigames/minigame/pong.qc:681
 msgid "Remove AI player"
-msgstr "הסר שחקן מחשב"
+msgstr "הסרת שחקן מחשב"
 
 #: qcsrc/common/minigames/minigame/pp.qc:2
 msgid "Push-Pull"
@@ -1686,7 +1688,7 @@ msgstr ""
 #: qcsrc/common/minigames/minigame/pp.qc:587
 #: qcsrc/common/minigames/minigame/ttt.qc:671
 msgid "Next Match"
-msgstr "×\9eש×\97ק הבא"
+msgstr "×\94ס×\99×\91×\95×\91 הבא"
 
 #: qcsrc/common/minigames/minigame/ps.qc:2
 msgid "Peg Solitaire"
@@ -2041,7 +2043,7 @@ msgstr ""
 
 #: qcsrc/common/mutators/mutator/waypoints/all.inc:39
 msgid "Run here"
-msgstr "ר×\95×¥ לכאן"
+msgstr "ר×\95צ×\95 לכאן"
 
 #: qcsrc/common/mutators/mutator/waypoints/all.inc:45
 #: qcsrc/common/mutators/mutator/waypoints/all.inc:48
@@ -2063,7 +2065,7 @@ msgstr ""
 
 #: qcsrc/common/mutators/mutator/waypoints/all.inc:57
 msgid "Weapon"
-msgstr "נשק"
+msgstr "×\9b×\9c×\99 × ×©×§"
 
 #: qcsrc/common/mutators/mutator/waypoints/all.inc:59
 msgid "Monster"
@@ -5144,7 +5146,7 @@ msgstr ""
 
 #: qcsrc/common/weapons/weapon/shotgun.qh:20
 msgid "Shotgun"
-msgstr "ש×\95×\98×\92×\9f"
+msgstr "ר×\95×\91×\94 ×¦×\99×\93"
 
 #: qcsrc/common/weapons/weapon/tuba.qh:18
 #, no-c-format
@@ -5418,15 +5420,15 @@ msgstr ""
 
 #: qcsrc/menu/xonotic/credits.qc:4
 msgid "Core Team"
-msgstr ""
+msgstr "הצוות העיקרי"
 
 #: qcsrc/menu/xonotic/credits.qc:15
 msgid "Extended Team"
-msgstr ""
+msgstr "הצוות המורחב"
 
 #: qcsrc/menu/xonotic/credits.qc:46
 msgid "Website"
-msgstr "אתר"
+msgstr "×\94×\90תר"
 
 #: qcsrc/menu/xonotic/credits.qc:51
 msgid "Stats"
@@ -5442,7 +5444,7 @@ msgstr ""
 
 #: qcsrc/menu/xonotic/credits.qc:67
 msgid "Level Design"
-msgstr ""
+msgstr "עיצוב השלבים"
 
 #: qcsrc/menu/xonotic/credits.qc:90
 msgid "Music / Sound FX"
@@ -5462,7 +5464,7 @@ msgstr ""
 
 #: qcsrc/menu/xonotic/credits.qc:125
 msgid "Game Engine"
-msgstr ""
+msgstr "מנוע המשחק"
 
 #: qcsrc/menu/xonotic/credits.qc:129
 msgid "Engine Additions"
@@ -5478,7 +5480,7 @@ msgstr ""
 
 #: qcsrc/menu/xonotic/credits.qc:148
 msgid "Translators"
-msgstr ""
+msgstr "תרגום"
 
 #: qcsrc/menu/xonotic/credits.qc:150
 msgid "Asturian"
@@ -5490,15 +5492,15 @@ msgstr ""
 
 #: qcsrc/menu/xonotic/credits.qc:158
 msgid "Bulgarian"
-msgstr ""
+msgstr "בולגרית"
 
 #: qcsrc/menu/xonotic/credits.qc:165
 msgid "Chinese (China)"
-msgstr ""
+msgstr "סינית (סין)"
 
 #: qcsrc/menu/xonotic/credits.qc:171
 msgid "Chinese (Taiwan)"
-msgstr ""
+msgstr "סינית (טאיוואן)"
 
 #: qcsrc/menu/xonotic/credits.qc:176
 msgid "Cornish"
@@ -5506,7 +5508,7 @@ msgstr ""
 
 #: qcsrc/menu/xonotic/credits.qc:179
 msgid "Czech"
-msgstr ""
+msgstr "צ׳כית"
 
 #: qcsrc/menu/xonotic/credits.qc:184
 msgid "Dutch"
@@ -5514,7 +5516,7 @@ msgstr ""
 
 #: qcsrc/menu/xonotic/credits.qc:191
 msgid "English (Australia)"
-msgstr ""
+msgstr "אנגלית (אוסטרליה)"
 
 #: qcsrc/menu/xonotic/credits.qc:196
 msgid "Finnish"
@@ -5522,27 +5524,27 @@ msgstr ""
 
 #: qcsrc/menu/xonotic/credits.qc:201
 msgid "French"
-msgstr ""
+msgstr "צרפתית"
 
 #: qcsrc/menu/xonotic/credits.qc:209
 msgid "German"
-msgstr ""
+msgstr "גרמנית"
 
 #: qcsrc/menu/xonotic/credits.qc:220
 msgid "Greek"
-msgstr ""
+msgstr "יוונית"
 
 #: qcsrc/menu/xonotic/credits.qc:226
 msgid "Hungarian"
-msgstr ""
+msgstr "הונגרית"
 
 #: qcsrc/menu/xonotic/credits.qc:230
 msgid "Irish"
-msgstr ""
+msgstr "אירית"
 
 #: qcsrc/menu/xonotic/credits.qc:233
 msgid "Italian"
-msgstr ""
+msgstr "איטלקית"
 
 #: qcsrc/menu/xonotic/credits.qc:239
 msgid "Kazakh"
@@ -5550,39 +5552,39 @@ msgstr ""
 
 #: qcsrc/menu/xonotic/credits.qc:242
 msgid "Korean"
-msgstr ""
+msgstr "קוריאנית"
 
 #: qcsrc/menu/xonotic/credits.qc:246
 msgid "Polish"
-msgstr ""
+msgstr "פולנית"
 
 #: qcsrc/menu/xonotic/credits.qc:254
 msgid "Portuguese"
-msgstr ""
+msgstr "פורטוגזית"
 
 #: qcsrc/menu/xonotic/credits.qc:260
 msgid "Romanian"
-msgstr ""
+msgstr "רומנית"
 
 #: qcsrc/menu/xonotic/credits.qc:267
 msgid "Russian"
-msgstr ""
+msgstr "רוסית"
 
 #: qcsrc/menu/xonotic/credits.qc:278
 msgid "Scottish Gaelic"
-msgstr ""
+msgstr "גֵאלית סקוטית"
 
 #: qcsrc/menu/xonotic/credits.qc:281
 msgid "Serbian"
-msgstr ""
+msgstr "סברית"
 
 #: qcsrc/menu/xonotic/credits.qc:287
 msgid "Spanish"
-msgstr ""
+msgstr "ספרדית"
 
 #: qcsrc/menu/xonotic/credits.qc:298
 msgid "Swedish"
-msgstr ""
+msgstr "שוודית"
 
 #: qcsrc/menu/xonotic/credits.qc:302
 msgid "Ukrainian"
@@ -5627,7 +5629,7 @@ msgstr ""
 
 #: qcsrc/menu/xonotic/dialog_credits.qh:7
 msgid "Credits"
-msgstr "קר×\93×\99×\98ים"
+msgstr "ש×\91×\97ים"
 
 #: qcsrc/menu/xonotic/dialog_credits.qh:8
 msgid "The Xonotic credits"
@@ -5649,7 +5651,7 @@ msgstr ""
 #: qcsrc/menu/xonotic/dialog_multiplayer_media_demo_startconfirm.qh:6
 #: qcsrc/menu/xonotic/dialog_multiplayer_media_demo_timeconfirm.qh:6
 msgid "Disconnect"
-msgstr "התנתק"
+msgstr "התנתקות"
 
 #: qcsrc/menu/xonotic/dialog_disconnect.qh:7
 msgid "Disconnect from the server you are connected to"
@@ -5686,11 +5688,11 @@ msgstr ""
 
 #: qcsrc/menu/xonotic/dialog_firstrun.qc:88
 msgid "Save settings"
-msgstr "ש×\9e×\95ר הגדרות"
+msgstr "ש×\9e×\99רת הגדרות"
 
 #: qcsrc/menu/xonotic/dialog_firstrun.qh:6
 msgid "Welcome"
-msgstr "×\91ר×\95×\9a ×\94×\91×\90"
+msgstr "×\91ר×\95×\9b×\99×\9d ×\94×\91×\90×\99×\9d"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_ammo.qc:18
 msgid "Ammunition display:"
@@ -5780,7 +5782,7 @@ msgstr ""
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_chat.qc:20
 msgid "Chat size:"
-msgstr "גודל צ'אט:"
+msgstr "גודל צ׳אט:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_chat.qc:24
 msgid "Chat lifetime:"
@@ -5991,7 +5993,7 @@ msgstr "יחידת מידה למהירות:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.qc:57
 msgid "Show"
-msgstr "הצג"
+msgstr "הצגה"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.qc:60
 msgid "Top speed"
@@ -6089,11 +6091,11 @@ msgstr "מצב זום:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_radar.qc:46
 msgid "Zoomed in"
-msgstr "×\96×\95×\9d ×\90×\99×\9f"
+msgstr "×\94תקר×\91×\95ת"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_radar.qc:47
 msgid "Zoomed out"
-msgstr "×\96×\95×\9d ×\90×\90×\95×\98"
+msgstr "×\94תר×\97ק×\95ת"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_radar.qc:48
 msgid "Always zoomed"
@@ -6248,7 +6250,7 @@ msgstr ""
 #: qcsrc/menu/xonotic/dialog_settings_game_hud.qc:145
 #: qcsrc/menu/xonotic/dialog_settings_game_model.qc:55
 msgid "Never"
-msgstr "×\9c×¢×\95×\9c×\9d ×\9c×\90"
+msgstr "×\90×£ ×¤×¢×\9d"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_weapons.qc:26
 #, c-format
@@ -6305,11 +6307,11 @@ msgstr ""
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_weapons.qc:66
 msgid "Show Accuracy"
-msgstr "הצג דיוק"
+msgstr "הצגת דיוק"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_weapons.qc:67
 msgid "Show Ammo"
-msgstr "הצג תחמושת"
+msgstr "הצגת תחמושת"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_weapons.qc:70
 msgid "Ammo bar alpha:"
@@ -6321,7 +6323,7 @@ msgstr "צבע סרגל התחמושת:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_weapons.qh:6
 msgid "Weapons Panel"
-msgstr "פ×\90× ×\9c ×\94נשק×\99×\9d"
+msgstr "פ×\90× ×\9c ×\9b×\9c×\99 ×\94נשק"
 
 #: qcsrc/menu/xonotic/dialog_hudsetup_exit.qc:19
 msgid "HUD skins"
@@ -6440,7 +6442,7 @@ msgstr ""
 
 #: qcsrc/menu/xonotic/dialog_monstertools.qc:23
 msgid "Remove"
-msgstr "הסר"
+msgstr "הסרה"
 
 #: qcsrc/menu/xonotic/dialog_monstertools.qc:25
 msgid "Move target:"
@@ -6516,7 +6518,7 @@ msgstr "ברירת מחדל"
 #: qcsrc/menu/xonotic/dialog_multiplayer_create.qc:40
 #: qcsrc/menu/xonotic/dialog_settings_misc.qc:57
 msgid "Unlimited"
-msgstr "×\91×\9cת×\99 ×\9e×\95×\92×\91×\9c"
+msgstr "×\9c×\9c×\90 ×\94×\92×\91×\9c×\94"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create.qc:74
 msgid "Gametype"
@@ -6542,7 +6544,7 @@ msgstr ""
 #: qcsrc/menu/xonotic/dialog_multiplayer_create.qc:84
 #: qcsrc/menu/xonotic/dialog_settings_audio.qc:159
 msgid "1 minute"
-msgstr "דקה אחת"
+msgstr "דקה 1"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create.qc:101
 msgid "TIMLIM^Infinite"
@@ -6600,11 +6602,11 @@ msgstr "מתחיל"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create.qc:131
 msgid "You will win"
-msgstr "×\90ת×\94 ×ª× ×¦×\97"
+msgstr "×\94× ×\99צ×\97×\95×\9f ×¢×\95×\93 ×\99×\94×\99×\94 ×©×\9c×\9a"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create.qc:132
 msgid "You can win"
-msgstr "×\90ת×\94 ×\99×\9b×\95×\9c לנצח"
+msgstr "×\90פשר לנצח"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create.qc:133
 msgid "You might win"
@@ -6670,7 +6672,7 @@ msgstr ""
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create.qc:194
 msgid "Add all"
-msgstr "×\94×\95סף ×\94×\9bל"
+msgstr "×\9c×\94×\95ס×\99×£ ×\94×\9b×\95ל"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create.qc:195
 msgid "Add every available map to your selection"
@@ -6678,7 +6680,7 @@ msgstr ""
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create.qc:198
 msgid "Remove all"
-msgstr "×\94סר ×\94×\9bל"
+msgstr "×\9c×\94ס×\99ר ×\94×\9b×\95ל"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create.qc:199
 msgid "Remove all the maps from your selection"
@@ -6703,7 +6705,7 @@ msgstr "סוגי משחק:"
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.qc:85
 #: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.qc:257
 msgid "Close"
-msgstr "ס×\92×\95ר"
+msgstr "ס×\92×\99ר×\94"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.qc:88
 msgid "MAP^Play"
@@ -6759,7 +6761,7 @@ msgstr ""
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.qc:71
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.qc:298
 msgid "No start weapons"
-msgstr "×\9c×\9c×\90 × ×©×§×\99 התחלה"
+msgstr "×\9c×\9c×\90 ×\9b×\9c×\99 × ×©×§ ×\91התחלה"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.qc:73
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.qc:202
@@ -6792,7 +6794,7 @@ msgstr ""
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.qc:87
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.qc:239
 msgid "Weapons stay"
-msgstr "נשק×\99×\9d נשארים"
+msgstr "×\9b×\9c×\99 × ×©×§ נשארים"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.qc:89
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.qc:191
@@ -6932,11 +6934,11 @@ msgstr ""
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.qc:273
 msgid "Most weapons"
-msgstr "ר×\95×\91 ×\94נשק×\99×\9d"
+msgstr "ר×\95×\91 ×\9b×\9c×\99 ×\94נשק"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.qc:277
 msgid "All weapons"
-msgstr "×\9b×\9c ×\94נשק×\99×\9d"
+msgstr "×\9b×\9c ×\9b×\9c×\99 ×\94נשק"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.qc:280
 msgid "Special arenas:"
@@ -7018,7 +7020,7 @@ msgstr ""
 #: qcsrc/menu/xonotic/dialog_multiplayer_join.qc:92
 #: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.qc:264
 msgid "Join!"
-msgstr "×\94צ×\98רף!"
+msgstr "×\94צ×\98רפ×\95!"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.qc:114
 #: qcsrc/menu/xonotic/serverlist.qc:1020
@@ -7044,7 +7046,7 @@ msgstr ""
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.qc:137
 msgid "Not supported (can't connect)"
-msgstr "לא נתמך(לא יכול להתחבר)"
+msgstr "לא נתמך (לא ניתן להתחבר)"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.qc:139
 msgid "Not supported (won't encrypt)"
@@ -7166,7 +7168,7 @@ msgstr ""
 #: qcsrc/menu/xonotic/dialog_multiplayer_media_demo_startconfirm.qc:15
 #: qcsrc/menu/xonotic/dialog_multiplayer_media_demo_timeconfirm.qc:15
 msgid "Do you really wish to disconnect now?"
-msgstr "×\90ת×\94 ×\91×\90×\9eת ×¨×\95צ×\94 להתנתק עכשיו?"
+msgstr "×\94×\90×\9d ×\90×\9b×\9f ×\91רצ×\95× ×\9a להתנתק עכשיו?"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_media_demo_timeconfirm.qc:13
 msgid "Timing a demo will disconnect you from the current match."
@@ -7234,7 +7236,7 @@ msgstr ""
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_media_screenshot_viewer.qc:137
 msgid "Reset"
-msgstr "×\90פס"
+msgstr "×\90×\99פ×\95ס"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_media_screenshot_viewer.qc:142
 msgid "Previous"
@@ -7298,15 +7300,15 @@ msgstr ""
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_profile.qc:172
 msgid "Gender:"
-msgstr "×\9e×\99×\9f:"
+msgstr "×\9e×\92×\93ר:"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_profile.qc:179
 msgid "Gender"
-msgstr "×\9e×\99×\9f"
+msgstr "×\9e×\92×\93ר"
 
 #: qcsrc/menu/xonotic/dialog_quit.qc:11
 msgid "Are you sure you want to quit?"
-msgstr "×\90ת×\94 ×\91×\98×\95×\97 ×©ברצונך לצאת?"
+msgstr "×\94×\90×\9d ×\90×\9b×\9f ברצונך לצאת?"
 
 #: qcsrc/menu/xonotic/dialog_quit.qc:15
 msgid "Back to work..."
@@ -7318,7 +7320,7 @@ msgstr ""
 
 #: qcsrc/menu/xonotic/dialog_quit.qh:7
 msgid "Quit the game"
-msgstr "צ×\90 מהמשחק"
+msgstr "×\99צ×\99×\90×\94 מהמשחק"
 
 #: qcsrc/menu/xonotic/dialog_sandboxtools.qc:15
 msgid "Model:"
@@ -7334,7 +7336,7 @@ msgstr "העתק *"
 
 #: qcsrc/menu/xonotic/dialog_sandboxtools.qc:24
 msgid "Paste"
-msgstr "הדבק"
+msgstr "הדבקה"
 
 #: qcsrc/menu/xonotic/dialog_sandboxtools.qc:26
 msgid "Bone:"
@@ -7434,7 +7436,7 @@ msgstr ""
 
 #: qcsrc/menu/xonotic/dialog_sandboxtools.qc:81
 msgid "Show help"
-msgstr "הצג עזרה"
+msgstr "הצגת עזרה"
 
 #: qcsrc/menu/xonotic/dialog_sandboxtools.qc:82
 msgid "* is the object you are facing"
@@ -7479,7 +7481,7 @@ msgstr "הגדרות"
 
 #: qcsrc/menu/xonotic/dialog_settings.qh:7
 msgid "Change the game settings"
-msgstr "שנ×\94 ×\90ת הגדרות המשחק"
+msgstr "ש×\99× ×\95×\99 הגדרות המשחק"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.qc:29
 msgid "Master:"
@@ -7519,7 +7521,7 @@ msgstr "קול:"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.qc:93
 msgid "Weapons:"
-msgstr "נשק×\99×\9d:"
+msgstr "×\9b×\9c×\99 × ×©×§:"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.qc:99
 msgid "New style sound attenuation"
@@ -8016,7 +8018,7 @@ msgstr ""
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.qc:213
 msgid "Use normal maps"
-msgstr "×\94שת×\9eש במפות רגילות"
+msgstr "ש×\99×\9e×\95ש במפות רגילות"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.qc:214
 msgid "Enable use of directional shading on textures"
@@ -8364,7 +8366,7 @@ msgstr ""
 
 #: qcsrc/menu/xonotic/dialog_settings_game_messages.qc:65
 msgid "Gamemode Settings"
-msgstr "×\90פשר×\95×\99ות מצב משחק"
+msgstr "×\94×\92×\93רות מצב משחק"
 
 #: qcsrc/menu/xonotic/dialog_settings_game_messages.qc:67
 msgid "Display capture times in Capture The Flag"
@@ -8688,7 +8690,7 @@ msgstr ""
 #: qcsrc/menu/xonotic/dialog_settings_game_weapons.qh:7
 #: qcsrc/menu/xonotic/keybinder.qc:51
 msgid "Weapons"
-msgstr "נשק×\99×\9d"
+msgstr "×\9b×\9c×\99 × ×©×§"
 
 #: qcsrc/menu/xonotic/dialog_settings_input.qc:34
 msgid "Key Bindings"
@@ -8700,7 +8702,7 @@ msgstr ""
 
 #: qcsrc/menu/xonotic/dialog_settings_input.qc:42
 msgid "Edit..."
-msgstr "ער×\95×\9a..."
+msgstr "ער×\99×\9b×\94..."
 
 #: qcsrc/menu/xonotic/dialog_settings_input.qc:48
 msgid "Clear"
@@ -8708,7 +8710,7 @@ msgstr "נקה"
 
 #: qcsrc/menu/xonotic/dialog_settings_input.qc:53
 msgid "Reset all"
-msgstr "×\90פס ×\94×\9bל"
+msgstr "×\9c×\90פס ×\94×\9b×\95ל"
 
 #: qcsrc/menu/xonotic/dialog_settings_input.qc:58
 msgid "Mouse"
@@ -8788,7 +8790,7 @@ msgstr "JPJUMP^הכל"
 #: qcsrc/menu/xonotic/dialog_settings_input.qc:115
 #: qcsrc/menu/xonotic/dialog_settings_input.qc:120
 msgid "Use joystick input"
-msgstr "×\94תשת×\9eש בקלט מג'ויסטיק"
+msgstr "ש×\99×\9e×\95ש בקלט מג'ויסטיק"
 
 #: qcsrc/menu/xonotic/dialog_settings_input_userbind.qc:31
 msgid "Command when pressed:"
@@ -8800,7 +8802,7 @@ msgstr ""
 
 #: qcsrc/menu/xonotic/dialog_settings_input_userbind.qc:40
 msgid "Cancel"
-msgstr "×\91×\98ל"
+msgstr "×\91×\99×\98×\95ל"
 
 #: qcsrc/menu/xonotic/dialog_settings_input_userbind.qh:7
 msgid "User defined key bind"
@@ -9010,11 +9012,11 @@ msgstr "תיאור:"
 
 #: qcsrc/menu/xonotic/dialog_settings_misc_cvars.qh:7
 msgid "Advanced settings"
-msgstr "×\90פשר×\95×\99ות מתקדמות"
+msgstr "×\94×\92×\93רות מתקדמות"
 
 #: qcsrc/menu/xonotic/dialog_settings_misc_reset.qc:11
 msgid "Are you sure you want to reset all settings?"
-msgstr "×\94×\90×\9d ×\90ת×\94 ×\91×\98×\95×\97 ×©ברצונך לאפס את כל ההגדרות?"
+msgstr "×\94×\90×\9d ×\90×\9b×\9f ברצונך לאפס את כל ההגדרות?"
 
 #: qcsrc/menu/xonotic/dialog_settings_misc_reset.qc:13
 msgid "This will create a backup config in your data directory"
@@ -9030,7 +9032,7 @@ msgstr "שפת טקסט"
 
 #: qcsrc/menu/xonotic/dialog_settings_user.qc:67
 msgid "Set language"
-msgstr "ק×\91×¢ שפה"
+msgstr "ק×\91×\99עת ×\94שפה"
 
 #: qcsrc/menu/xonotic/dialog_settings_user.qc:72
 msgid "Disable gore effects and harsh language"
@@ -9050,11 +9052,11 @@ msgstr ""
 
 #: qcsrc/menu/xonotic/dialog_settings_user_languagewarning.qc:16
 msgid "Disconnect now"
-msgstr "התנתק עכשיו"
+msgstr "×\9c×\94תנתק ×¢×\9bש×\99×\95"
 
 #: qcsrc/menu/xonotic/dialog_settings_user_languagewarning.qc:17
 msgid "Switch language"
-msgstr "×\94×\97×\9c×£ שפה"
+msgstr "×\94×\97×\9cפת שפה"
 
 #: qcsrc/menu/xonotic/dialog_settings_user_languagewarning.qh:6
 msgid "Warning"
@@ -9304,15 +9306,15 @@ msgstr ""
 
 #: qcsrc/menu/xonotic/dialog_settings_video.qc:158
 msgid "Wait for GPU to finish each frame"
-msgstr "×\97×\9b×\94 ×¢×\93 ×©×\94×\9e×¢×\91×\93 ×\94×\92רפ×\99 ×\99ס×\99×\99×\9d ×\9b×\9c ×¤×¨×\99×\99×\9d"
+msgstr "×\9c×\94×\9eת×\99×\9f ×\9cס×\99×\95×\9d ×\9b×\9c ×¤×¨×\99×\99×\9d ×\91Ö¾GPU"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.qc:159
 msgid ""
 "Make the CPU wait for the GPU to finish each frame, can help with some "
 "strange input or video lag on some machines"
 msgstr ""
-"×\92ר×\95×\9d ×\9c×\9e×¢×\91×\93 ×\9c×\94×\9eת×\99×\9f ×©×\94×\9e×¢×\91×\93 ×\94×\92רפ×\99 ×\99ס×\99×\99×\9d ×\9b×\9c ×¤×¨×\99×\99×\9d. ×\96×\94 ×\99×\9b×\95×\9c ×\9c×¢×\96×\95ר ×\91×\9eקר×\99×\9d ×©×\9c ×\9c×\90×\92×\99×\9d "
-"×\9e×\95×\96ר×\99×\9d ×\91ק×\9c×\98 ×\90×\95 ×\91וידאו במחשבים מסויימים."
+"×\9c×\92ר×\95×\9d ×\9c×\9e×¢×\91×\93 ×\9c×\94×\9eת×\99×\9f ×©×\94×\9e×¢×\91×\93 ×\94×\92רפ×\99 ×\99ס×\99×\99×\9d ×\9b×\9c ×¤×¨×\99×\99×\9d, ×\96×\94 ×\99×\9b×\95×\9c ×\9c×¢×\96×\95ר ×\91×\9eקר×\99×\9d ×©×\9c "
+"×\9c×\90×\92×\99×\9d ×\9e×\95×\96ר×\99×\9d ×\91ק×\9c×\98 ×\90×\95 ×\91×\95וידאו במחשבים מסויימים."
 
 #: qcsrc/menu/xonotic/dialog_settings_video.qc:163
 msgid "Use OpenGL 2.0 shaders (GLSL)"
@@ -9635,7 +9637,7 @@ msgstr "פינג"
 
 #: qcsrc/menu/xonotic/serverlist.qc:734
 msgid "Hostname"
-msgstr "ש×\9d ×\94שרת"
+msgstr "ש×\9d ×\94×\9e×\90ר×\97"
 
 #: qcsrc/menu/xonotic/serverlist.qc:735
 msgid "Map"
@@ -9850,7 +9852,7 @@ msgstr "הצטרף:"
 
 #: qcsrc/menu/xonotic/statslist.qc:104
 msgid "Last match:"
-msgstr "×\9eש×\97ק אחרון:"
+msgstr "×\94ס×\99×\91×\95×\91 ×\94אחרון:"
 
 #: qcsrc/menu/xonotic/statslist.qc:111
 msgid "Time played:"
@@ -9864,7 +9866,7 @@ msgstr "מפה מועדפת:"
 #: qcsrc/menu/xonotic/statslist.qc:245
 #, c-format
 msgid "Matches:"
-msgstr "×\9eש×\97קים:"
+msgstr "ס×\99×\91×\95×\91ים:"
 
 #: qcsrc/menu/xonotic/statslist.qc:155
 #, c-format
@@ -9905,7 +9907,7 @@ msgstr ""
 
 #: qcsrc/menu/xonotic/util.qc:420
 msgid "Update can be downloaded at:"
-msgstr "× ×\99ת×\9f ×\9c×\94×\95ר×\99×\93 ×¢×\93×\9b×\95×\9f ×\91:"
+msgstr "×\94×¢×\93×\9b×\95×\9f × ×\99ת×\9f ×\9c×\94×\95ר×\93×\94 ×\91×\90תר:"
 
 #: qcsrc/menu/xonotic/util.qc:528
 msgid "Autogenerating mapinfo for newly added maps..."
@@ -9914,7 +9916,7 @@ msgstr ""
 #: qcsrc/menu/xonotic/util.qc:566
 #, c-format
 msgid "Update to %s now!"
-msgstr "×¢×\93×\9b×\9f לגרסה %s עכשיו!"
+msgstr "×¢×\93×\9b× ×\95 לגרסה %s עכשיו!"
 
 #: qcsrc/menu/xonotic/util.qc:650
 msgid ""
@@ -9924,7 +9926,7 @@ msgstr ""
 
 #: qcsrc/menu/xonotic/util.qc:780
 msgid "Use default"
-msgstr "×\94שת×\9eש בברירת מחדל"
+msgstr "ש×\99×\9e×\95ש בברירת מחדל"
 
 #: qcsrc/menu/xonotic/util.qc:800
 msgid "Team Color:"
index b8051bdc0aa08a17b863153931a086fe1a908741..f4b17b40b78667d7fcb4471eab3c7949da520c00 100644 (file)
@@ -1,6 +1,6 @@
 ast   "Asturian" "Asturianu" 63%
-de    "German" "Deutsch" 98%
-de_CH "German (Switzerland)" "Deutsch (Schweiz)" 98%
+de    "German" "Deutsch" 100%
+de_CH "German (Switzerland)" "Deutsch (Schweiz)" 100%
 en    "English" "English" 100%
 en_AU "English (Australia)" "English (Australia)" 74%
 es    "Spanish" "Español" 98%
index 22797f5c05cb1d49585a11eb9dad5fce282dd569..c437868e384f12fca13414d8f874ba82097276db 100644 (file)
@@ -334,9 +334,6 @@ set g_buffs_medic_survive_health 5 "amount of health player survives with after
 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"
index e5f00f9460af6bc5edccb584b429f683c83e0521..f53ea725c7d537403a7d785b7e21caf66cc82599 100644 (file)
@@ -618,7 +618,7 @@ void CSQCModel_Hook_PreDraw(entity this, bool isplayer)
                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)
index e81dd5b87943dffe5e8e53dafa164cc0f3bbba46..af4d766ec0ef225b9fe859ad9ddac678b9b6757b 100644 (file)
@@ -125,20 +125,33 @@ void Draw_ShowNames(entity this)
        }
        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)
index 9a8fca3ab9c874d6745217ce71e8add77791d6b3..a8fdaa4ef5d9ebd2502b5bd3f3fd266dba0a502b 100644 (file)
@@ -8,7 +8,7 @@ void HUD_Mod_NexBall(vector pos, vector mySize);
 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))
     {
index 3ef0b74b7eee71f936a4fbaed611eae65c0aceef..facfe02b75c8b145180b8553947e0b77fbeea33d 100644 (file)
@@ -1137,7 +1137,7 @@ int MapInfo_CurrentFeatures()
 {
        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;
index 2d350b2fed3c1b26c46cab2e3c58bcb598ce1436..be1a4ef7c686dd8bb7861b8edb764ff4cbac3c3f 100644 (file)
@@ -21,6 +21,7 @@ const int GAMETYPE_FLAG_USEPOINTS       = BIT(1); // gametype has point-based sc
 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;
@@ -41,6 +42,8 @@ CLASS(Gametype, Object)
     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 */
@@ -107,6 +110,7 @@ CLASS(Gametype, Object)
         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);
index 50b5d91b50dba9d844b301ea1586319e6e13f662..66cd9007216fc9febac289c4bf115434b57afa52 100644 (file)
@@ -1,22 +1,10 @@
 #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);
@@ -443,25 +431,6 @@ void buff_Vengeance_DelayedDamage(entity this)
        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);
@@ -557,32 +526,28 @@ MUTATOR_HOOKFUNCTION(buffs, Damage_Calculate)
                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);
@@ -903,13 +868,6 @@ MUTATOR_HOOKFUNCTION(buffs, PlayerPreThink)
        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))
 
@@ -1069,3 +1027,10 @@ void buffs_DelayedInit(entity this)
                }
        }
 }
+
+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);
+}
index b585811873758a94aee4a68592364f36ca749005..0a39b35eb42a0a486d1fb7b2cf4e0a8372c5dd76 100644 (file)
@@ -1,8 +1,20 @@
 #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;
@@ -24,9 +36,6 @@ float autocvar_g_buffs_medic_survive_health;
 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;
@@ -58,8 +67,6 @@ float autocvar_g_buffs_luck_damagemultiplier = 3;
 .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;
index b3216cdcc4951acd349e6b252d7b8b6625977010..f50f0f947c521f7a436c27758bae5d66624b3ddf 100644 (file)
@@ -31,7 +31,7 @@ void instagib_invisibility(entity this);
 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
        {
index a56efaf83cffbf086b2cbca93f5798cfce6b7d20..2596770daa57be0c2b595873d79f18ecb40ee66f 100644 (file)
@@ -3,7 +3,7 @@
 #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)
 {
index 0ec051a8cbfc7e7acbb4c54ff64798f3b3d7a2c6..e23d533edffde69b72bf4ec98a8267c23770e558 100644 (file)
@@ -39,7 +39,7 @@ float nix_nextweapon;
 
 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
        {
index 63e3c19ef531ccae456e9bfb8c0986cb72c7bc72..4712ec2fadf1016e574e24628eeaf921ec588f5c 100644 (file)
@@ -8,7 +8,7 @@ bool autocvar_g_overkill_filter_armormega;
 
 .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
        {
index 12e4bdea43531a6fb1c8cbfc5154257f25fa9687..f4562a99ecadba751a10dfbc73a6c6a731723026 100644 (file)
@@ -17,7 +17,7 @@ MUTATOR_HOOKFUNCTION(vampire, PlayerDamage_SplitHealthArmor)
         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);
index 275d25b0ff5a5d2894b83420050cd4daadb0b108..d692d73c8df82aa1f5463f31e03e50b20aeb8901 100644 (file)
@@ -667,7 +667,7 @@ string multiteam_info_sprintf(string input, string teamname) { return ((input !=
     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!"), "")
 
index 971a5ebad6911bc28abd53b1f26958c614b0f4d1..a9f44a2c2473b090967b8daa3e7fa15625704133 100644 (file)
@@ -1,25 +1,5 @@
 #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);
index f455e86c68327646456ac32552286e60b229c385..ff9448fdd856f2e26e2477723f470db8b687e836 100644 (file)
@@ -10,6 +10,26 @@ 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;
 
index 8adfb4f0c98f46206215fafbc52f258cae5c775b..bbecb83da6efe8b9cb65641dc66e6f38977e3cab 100644 (file)
@@ -4,6 +4,7 @@
 #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>
@@ -172,43 +173,6 @@ void vehicles_locktarget(entity this, float incr, float decr, float _lock_time)
        }
 }
 
-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)
 {
index a92da29fb03b237f34ba4a4d8be5b0fbc8e90a84..95ab1cfa28777bf1479a9966e7cfa06cf0dd4c06 100644 (file)
@@ -92,10 +92,6 @@ const int VHEF_NORMAL = 0;  /// User pressed exit key
 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
@@ -111,7 +107,6 @@ void vehicles_exit(entity vehic, int eject);
 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;
index 4c226f97a86c97fa7adb9a272552d506f6697305..d71dcd6c3f7d18a75fc1a0fe114f30a5c0e0385b 100644 (file)
@@ -8,6 +8,7 @@ CLASS(Bumblebee, Vehicle)
 /* 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, "");
@@ -15,6 +16,7 @@ CLASS(Bumblebee, Vehicle)
 /* 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");
index 606d11505a74da5d05e2f19e185a12ad342bcb9d..59c4c9333d25beebc2ee48bcfb31b62ea1862cda 100644 (file)
@@ -155,6 +155,7 @@ bool racer_frame(entity this, float dt)
        entity vehic = player.vehicle;
        return = true;
 
+#ifdef SVQC
        if(game_stopped)
        {
                vehic.solid = SOLID_NOT;
@@ -162,6 +163,7 @@ bool racer_frame(entity this, float dt)
                set_movetype(vehic, MOVETYPE_NONE);
                return;
        }
+#endif
 
        vehicles_frame(vehic, player);
 
@@ -171,15 +173,19 @@ bool racer_frame(entity this, float dt)
        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;
 
@@ -203,17 +209,17 @@ bool racer_frame(entity this, float dt)
        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
@@ -291,7 +297,7 @@ bool racer_frame(entity this, float dt)
                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
 
@@ -375,10 +381,14 @@ bool racer_frame(entity this, float dt)
 #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;
index 3c348ae1c2bec1086f65976aa238209778ebd15b..e87d1714bf34d7050d89a586162aaeafa9a9ea57 100644 (file)
@@ -8,6 +8,7 @@ CLASS(Racer, Vehicle)
 /* 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");
@@ -15,6 +16,7 @@ CLASS(Racer, Vehicle)
 /* 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");
index 954d54aea1e0fbf8f68276a1492952fb64a238ad..2532a9cbe969984dc6dd4ebcbdb32ed49af2d250 100644 (file)
@@ -8,6 +8,7 @@ CLASS(Raptor, Vehicle)
 /* 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, "");
@@ -15,6 +16,7 @@ CLASS(Raptor, Vehicle)
 /* 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");
index 414e0f805fad1dfa23c92116c797cc37e26ca711..8301cd60754a8fa55e2b105b5e6832be0577617d 100644 (file)
@@ -8,6 +8,7 @@ CLASS(Spiderbot, Vehicle)
 /* 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");
@@ -15,6 +16,7 @@ CLASS(Spiderbot, Vehicle)
 /* 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");
index 5e7736501b28e6c2ae3a8e6ed19ee0a521cd4b24..c96fff633999f006ed506adf785bc3c6c8fd3aac 100644 (file)
@@ -1 +1,40 @@
 #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
index 6f70f09beec2219624baeca92e2cd7deaa104fb4..6e1bcd1a1320bb7a2ca772f298e5dd39f657ec92 100644 (file)
@@ -1 +1,13 @@
 #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
index 4b159019e62acdcad320c8b84262dd6130bd0b34..c74f6079aa00c8fbbd779f13ae459d4a05948d52 100644 (file)
@@ -578,9 +578,14 @@ void W_Arc_Attack(Weapon thiswep, entity actor, .entity weaponentity, int fire)
 }
 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 )
index 247f941002ede58abcf97f1998e5f6ee33b99b1c..664e67e8b7c98ddf2b595428cfb746796da9c8eb 100644 (file)
@@ -306,7 +306,7 @@ float bobfall_speed;
 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
index 26304b4f39a53e6e937829da65084adb0f648781..95c78e3898a8fa7f86ed416a2a3bb14ea004464d 100644 (file)
@@ -275,11 +275,13 @@ void WarpZone_FixView()
        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);
index 84caecb75bbf33ca0b16cd51ad6f4c626fda3341..cb61d3943cd0c428e557bec04c1b1fde29fd58a1 100644 (file)
@@ -708,7 +708,9 @@ void m_draw(float width, float height)
                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!
index 22cb54abc1d3effee04dd6f993d08e6a614e4504..36932f0cef3f490a3bbff2f85e09033e49e25e8e 100644 (file)
@@ -2,6 +2,7 @@
 
 #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>
index b5fee52d5324277a9130edea8571fc79d0fdad08..fa0818283aa55273a42b60e7bbd215e75d856b99 100644 (file)
@@ -551,6 +551,8 @@ void PlayerDamage(entity this, entity inflictor, entity attacker, float damage,
                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
 
index 2cd09d7fea905f65a65e60a228fed427cf20f9ee..07f6f5c6651bd1615b35761921119294ee0d8bcd 100644 (file)
@@ -117,6 +117,10 @@ void UpdateCSQCProjectileAfterTeleport(entity e)
        {
                // send new origin data
                e.SendFlags |= 0x01;
+               // send full data as the projectile may need resetting
+               // this is a workaround for client-side projectiles erroneously calling their SUB_Stop touch function occasionally
+               // when passing through a warpzone
+               e.SendFlags |= 2;
                // mark as teleported
                e.SendFlags |= 0x08;
        }