Merge branch 'master' into terencehill/vec2_optimizations
authorterencehill <piuntn@gmail.com>
Sat, 17 Jun 2017 18:18:53 +0000 (20:18 +0200)
committerterencehill <piuntn@gmail.com>
Sat, 17 Jun 2017 18:18:53 +0000 (20:18 +0200)
35 files changed:
.tx/merge-base
bal-wep-mario.cfg
bal-wep-nexuiz25.cfg
bal-wep-samual.cfg
bal-wep-xdf.cfg
bal-wep-xonotic.cfg
bal-wep-xpm.cfg
common.gd.po
common.it.po
common.pl.po
common.pt.po
qcsrc/common/constants.qh
qcsrc/common/gamemodes/gamemode/onslaught/sv_onslaught.qc
qcsrc/common/gamemodes/gamemode/onslaught/sv_onslaught.qh
qcsrc/common/notifications/all.qh
qcsrc/common/triggers/target/_mod.inc
qcsrc/common/triggers/target/include.qc
qcsrc/common/triggers/target/kill.qc [new file with mode: 0644]
qcsrc/common/turrets/config.qc
qcsrc/common/turrets/config.qh
qcsrc/common/turrets/sv_turrets.qc
qcsrc/common/turrets/turret/ewheel.qc
qcsrc/common/turrets/turret/walker.qc
qcsrc/common/vehicles/cl_vehicles.qc
qcsrc/common/vehicles/vehicle/raptor.qc
qcsrc/common/weapons/config.qc
qcsrc/common/weapons/config.qh
qcsrc/server/command/radarmap.qc
qcsrc/server/command/radarmap.qh
qcsrc/server/defs.qh
qcsrc/server/player.qc
qcsrc/server/race.qc
qcsrc/server/scores.qc
qcsrc/server/scores.qh
qcsrc/server/spawnpoints.qc

index a7a8f8175b3b5abfc747eed09b3a9f9610e742f3..7a383ef8f83bccc40d5a29a88316b5973443b285 100644 (file)
@@ -1 +1 @@
-Fri May 26 07:23:54 CEST 2017
+Sat Jun 17 07:24:20 CEST 2017
index d3b106640d4514fe19e94e87fb687a0e09baf3c7..57d5d745df29da9d5b3dfc3cd8f0a7611bbeeeb5 100644 (file)
@@ -779,15 +779,15 @@ set g_balance_arc_weaponthrowable 1
 // }}}
 // {{{ #21: Heavy Machine Gun
 set g_balance_hmg_ammo 1
-set g_balance_hmg_damage 10
-set g_balance_hmg_force 5
+set g_balance_hmg_damage 30
+set g_balance_hmg_force 10
 set g_balance_hmg_refire 0.05
 set g_balance_hmg_reload_ammo 120
 set g_balance_hmg_reload_time 1
 set g_balance_hmg_solidpenetration 32
-set g_balance_hmg_spread_add 0.01
-set g_balance_hmg_spread_max 0.05
-set g_balance_hmg_spread_min 0.02
+set g_balance_hmg_spread_add 0.005
+set g_balance_hmg_spread_max 0.06
+set g_balance_hmg_spread_min 0.01
 set g_balance_hmg_switchdelay_drop 0.2
 set g_balance_hmg_switchdelay_raise 0.2
 set g_balance_hmg_weaponreplace ""
@@ -809,7 +809,7 @@ set g_balance_rpc_radius 300
 set g_balance_rpc_refire 1
 set g_balance_rpc_reload_ammo 10
 set g_balance_rpc_reload_time 1
-set g_balance_rpc_speed 1250
+set g_balance_rpc_speed 2500
 set g_balance_rpc_speedaccel 5000
 set g_balance_rpc_switchdelay_drop 0.2
 set g_balance_rpc_switchdelay_raise 0.2
index 41c9081b92d80a0df3b7252dbf1a65fa7c385e83..f7d912ca773649743831610ab52209ee3704dee3 100644 (file)
@@ -779,15 +779,15 @@ set g_balance_arc_weaponthrowable 1
 // }}}
 // {{{ #21: Heavy Machine Gun
 set g_balance_hmg_ammo 1
-set g_balance_hmg_damage 10
-set g_balance_hmg_force 5
+set g_balance_hmg_damage 30
+set g_balance_hmg_force 10
 set g_balance_hmg_refire 0.05
 set g_balance_hmg_reload_ammo 120
 set g_balance_hmg_reload_time 1
 set g_balance_hmg_solidpenetration 32
-set g_balance_hmg_spread_add 0.01
-set g_balance_hmg_spread_max 0.05
-set g_balance_hmg_spread_min 0.02
+set g_balance_hmg_spread_add 0.005
+set g_balance_hmg_spread_max 0.06
+set g_balance_hmg_spread_min 0.01
 set g_balance_hmg_switchdelay_drop 0.2
 set g_balance_hmg_switchdelay_raise 0.2
 set g_balance_hmg_weaponreplace ""
@@ -809,7 +809,7 @@ set g_balance_rpc_radius 300
 set g_balance_rpc_refire 1
 set g_balance_rpc_reload_ammo 10
 set g_balance_rpc_reload_time 1
-set g_balance_rpc_speed 1250
+set g_balance_rpc_speed 2500
 set g_balance_rpc_speedaccel 5000
 set g_balance_rpc_switchdelay_drop 0.2
 set g_balance_rpc_switchdelay_raise 0.2
index 99edec78b8da1c543470adffdd3a155e967f6a5a..b3ec457a8af5ae1f8b4a62c3656d146d3af33fda 100644 (file)
@@ -777,15 +777,15 @@ set g_balance_shotgun_weaponthrowable 1
 // }}}
 // {{{ #21: Heavy Machine Gun
 set g_balance_hmg_ammo 1
-set g_balance_hmg_damage 10
-set g_balance_hmg_force 5
+set g_balance_hmg_damage 30
+set g_balance_hmg_force 10
 set g_balance_hmg_refire 0.05
 set g_balance_hmg_reload_ammo 120
 set g_balance_hmg_reload_time 1
 set g_balance_hmg_solidpenetration 32
-set g_balance_hmg_spread_add 0.01
-set g_balance_hmg_spread_max 0.05
-set g_balance_hmg_spread_min 0.02
+set g_balance_hmg_spread_add 0.005
+set g_balance_hmg_spread_max 0.06
+set g_balance_hmg_spread_min 0.01
 set g_balance_hmg_switchdelay_drop 0.2
 set g_balance_hmg_switchdelay_raise 0.2
 set g_balance_hmg_weaponreplace ""
@@ -807,7 +807,7 @@ set g_balance_rpc_radius 300
 set g_balance_rpc_refire 1
 set g_balance_rpc_reload_ammo 10
 set g_balance_rpc_reload_time 1
-set g_balance_rpc_speed 1250
+set g_balance_rpc_speed 2500
 set g_balance_rpc_speedaccel 5000
 set g_balance_rpc_switchdelay_drop 0.2
 set g_balance_rpc_switchdelay_raise 0.2
index a7b90c7d6f73c1d901680635563a6b6e3fa530fb..cc8936c3381c9a3a0f1c1eb055071a558525227c 100644 (file)
@@ -779,15 +779,15 @@ set g_balance_arc_weaponthrowable 1
 // }}}
 // {{{ #21: Heavy Machine Gun
 set g_balance_hmg_ammo 1
-set g_balance_hmg_damage 10
-set g_balance_hmg_force 5
+set g_balance_hmg_damage 30
+set g_balance_hmg_force 10
 set g_balance_hmg_refire 0.05
 set g_balance_hmg_reload_ammo 120
 set g_balance_hmg_reload_time 1
 set g_balance_hmg_solidpenetration 32
-set g_balance_hmg_spread_add 0.01
-set g_balance_hmg_spread_max 0.05
-set g_balance_hmg_spread_min 0.02
+set g_balance_hmg_spread_add 0.005
+set g_balance_hmg_spread_max 0.06
+set g_balance_hmg_spread_min 0.01
 set g_balance_hmg_switchdelay_drop 0.2
 set g_balance_hmg_switchdelay_raise 0.2
 set g_balance_hmg_weaponreplace ""
@@ -809,7 +809,7 @@ set g_balance_rpc_radius 300
 set g_balance_rpc_refire 1
 set g_balance_rpc_reload_ammo 10
 set g_balance_rpc_reload_time 1
-set g_balance_rpc_speed 1250
+set g_balance_rpc_speed 2500
 set g_balance_rpc_speedaccel 5000
 set g_balance_rpc_switchdelay_drop 0.2
 set g_balance_rpc_switchdelay_raise 0.2
index 7d94daada4af71f79c84d616fbaaec9959e55d59..ac5be34f3783b822759d7b26922629c1adedd52b 100644 (file)
@@ -779,15 +779,15 @@ set g_balance_arc_weaponthrowable 1
 // }}}
 // {{{ #21: Heavy Machine Gun
 set g_balance_hmg_ammo 1
-set g_balance_hmg_damage 10
-set g_balance_hmg_force 5
+set g_balance_hmg_damage 30
+set g_balance_hmg_force 10
 set g_balance_hmg_refire 0.05
 set g_balance_hmg_reload_ammo 120
 set g_balance_hmg_reload_time 1
 set g_balance_hmg_solidpenetration 32
-set g_balance_hmg_spread_add 0.01
-set g_balance_hmg_spread_max 0.05
-set g_balance_hmg_spread_min 0.02
+set g_balance_hmg_spread_add 0.005
+set g_balance_hmg_spread_max 0.06
+set g_balance_hmg_spread_min 0.01
 set g_balance_hmg_switchdelay_drop 0.2
 set g_balance_hmg_switchdelay_raise 0.2
 set g_balance_hmg_weaponreplace ""
@@ -809,7 +809,7 @@ set g_balance_rpc_radius 300
 set g_balance_rpc_refire 1
 set g_balance_rpc_reload_ammo 10
 set g_balance_rpc_reload_time 1
-set g_balance_rpc_speed 1250
+set g_balance_rpc_speed 2500
 set g_balance_rpc_speedaccel 5000
 set g_balance_rpc_switchdelay_drop 0.2
 set g_balance_rpc_switchdelay_raise 0.2
index 7d94daada4af71f79c84d616fbaaec9959e55d59..ac5be34f3783b822759d7b26922629c1adedd52b 100644 (file)
@@ -779,15 +779,15 @@ set g_balance_arc_weaponthrowable 1
 // }}}
 // {{{ #21: Heavy Machine Gun
 set g_balance_hmg_ammo 1
-set g_balance_hmg_damage 10
-set g_balance_hmg_force 5
+set g_balance_hmg_damage 30
+set g_balance_hmg_force 10
 set g_balance_hmg_refire 0.05
 set g_balance_hmg_reload_ammo 120
 set g_balance_hmg_reload_time 1
 set g_balance_hmg_solidpenetration 32
-set g_balance_hmg_spread_add 0.01
-set g_balance_hmg_spread_max 0.05
-set g_balance_hmg_spread_min 0.02
+set g_balance_hmg_spread_add 0.005
+set g_balance_hmg_spread_max 0.06
+set g_balance_hmg_spread_min 0.01
 set g_balance_hmg_switchdelay_drop 0.2
 set g_balance_hmg_switchdelay_raise 0.2
 set g_balance_hmg_weaponreplace ""
@@ -809,7 +809,7 @@ set g_balance_rpc_radius 300
 set g_balance_rpc_refire 1
 set g_balance_rpc_reload_ammo 10
 set g_balance_rpc_reload_time 1
-set g_balance_rpc_speed 1250
+set g_balance_rpc_speed 2500
 set g_balance_rpc_speedaccel 5000
 set g_balance_rpc_switchdelay_drop 0.2
 set g_balance_rpc_switchdelay_raise 0.2
index 2c1c25bea166e445332e9369f5b745a855d24903..83f0313e49a89f421276f4980fb18e346c94fcb2 100644 (file)
@@ -11,7 +11,7 @@ msgstr ""
 "Project-Id-Version: Xonotic\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2017-03-30 07:23+0200\n"
-"PO-Revision-Date: 2017-05-16 11:11+0000\n"
+"PO-Revision-Date: 2017-06-01 21:16+0000\n"
 "Last-Translator: GunChleoc\n"
 "Language-Team: Gaelic, Scottish (http://www.transifex.com/team-xonotic/"
 "xonotic/language/gd/)\n"
@@ -933,36 +933,36 @@ msgstr ""
 #: qcsrc/client/hud/panel/scoreboard.qc:1600
 #, c-format
 msgid "Spectators"
-msgstr ""
+msgstr "Amhairc"
 
 #: qcsrc/client/hud/panel/scoreboard.qc:1615
 #, c-format
 msgid "playing ^3%s^7 on ^2%s^7"
-msgstr ""
+msgstr "a' cluich ^3%s^7 air ^2%s^7"
 
 #: qcsrc/client/hud/panel/scoreboard.qc:1622
 #: qcsrc/client/hud/panel/scoreboard.qc:1627
 #, c-format
 msgid " for up to ^1%1.0f minutes^7"
-msgstr ""
+msgstr " fad suas ri ^1%1.0f mionaid(ean)^7"
 
 #: qcsrc/client/hud/panel/scoreboard.qc:1631
 #: qcsrc/client/hud/panel/scoreboard.qc:1650
 msgid " or"
-msgstr ""
+msgstr "no"
 
 #: qcsrc/client/hud/panel/scoreboard.qc:1634
 #: qcsrc/client/hud/panel/scoreboard.qc:1641
 #, c-format
 msgid " until ^3%s %s^7"
-msgstr ""
+msgstr " gu ruige ^3%s %s^7"
 
 #: qcsrc/client/hud/panel/scoreboard.qc:1635
 #: qcsrc/client/hud/panel/scoreboard.qc:1642
 #: qcsrc/client/hud/panel/scoreboard.qc:1654
 #: qcsrc/client/hud/panel/scoreboard.qc:1661
 msgid "SCO^points"
-msgstr ""
+msgstr "puingean"
 
 #: qcsrc/client/hud/panel/scoreboard.qc:1636
 #: qcsrc/client/hud/panel/scoreboard.qc:1643
@@ -1034,7 +1034,7 @@ msgstr "Chan eil"
 
 #: qcsrc/client/hud/panel/weapons.qc:530
 msgid "Out of ammo"
-msgstr ""
+msgstr "Dh'fhalbh an connadh ort"
 
 #: qcsrc/client/hud/panel/weapons.qc:534
 msgid "Don't have"
@@ -1071,12 +1071,12 @@ msgstr ""
 
 #: qcsrc/client/mapvoting.qc:49
 msgid " (1 vote)"
-msgstr ""
+msgstr " (Bhòtaichean: 1)"
 
 #: qcsrc/client/mapvoting.qc:51
 #, c-format
 msgid " (%d votes)"
-msgstr ""
+msgstr " (Bhòtaichean: %d)"
 
 #: qcsrc/client/mapvoting.qc:271
 msgid "Don't care"
@@ -1306,15 +1306,15 @@ msgstr ""
 #: qcsrc/common/minigames/cl_minigames_hud.qc:331
 #: qcsrc/menu/xonotic/dialog_quit.qh:6
 msgid "Quit"
-msgstr ""
+msgstr "Fàg an-seo"
 
 #: qcsrc/common/minigames/cl_minigames_hud.qc:336
 msgid "Invite"
-msgstr ""
+msgstr "Thoir cuireadh"
 
 #: qcsrc/common/minigames/cl_minigames_hud.qc:378
 msgid "Current Game"
-msgstr ""
+msgstr "An geama làithreach"
 
 #: qcsrc/common/minigames/cl_minigames_hud.qc:403
 msgid "Exit Menu"
@@ -1323,19 +1323,19 @@ msgstr ""
 #: qcsrc/common/minigames/cl_minigames_hud.qc:415
 #: qcsrc/menu/xonotic/dialog_multiplayer.qc:16
 msgid "Create"
-msgstr ""
+msgstr "Cruthaich"
 
 #: qcsrc/common/minigames/cl_minigames_hud.qc:418
 msgid "Join"
-msgstr ""
+msgstr "Gabh pàirt ann"
 
 #: qcsrc/common/minigames/cl_minigames_hud.qc:489
 msgid "Minigames"
-msgstr ""
+msgstr "Meanbh-gheamannan"
 
 #: qcsrc/common/minigames/minigame/bd.qc:1168
 msgid "Better luck next time!"
-msgstr ""
+msgstr "Gun rachadh nas fhearr leat an t-ath-thuras!"
 
 #: qcsrc/common/minigames/minigame/bd.qc:1172
 msgid "Tubular! Press \"Next Level\" to continue!"
@@ -1355,84 +1355,88 @@ msgstr ""
 
 #: qcsrc/common/minigames/minigame/bd.qc:1404
 msgid "Next Level"
-msgstr ""
+msgstr "An t-ath-leibheil"
 
 #: qcsrc/common/minigames/minigame/bd.qc:1405
 msgid "Restart"
-msgstr ""
+msgstr "Ath-thòisich"
 
 #: qcsrc/common/minigames/minigame/bd.qc:1406
 msgid "Editor"
-msgstr ""
+msgstr "Deasaiche"
 
 #: qcsrc/common/minigames/minigame/bd.qc:1407
 #: qcsrc/menu/xonotic/dialog_settings_input_userbind.qc:37
 msgid "Save"
-msgstr ""
+msgstr "Sàbhail"
 
 #: qcsrc/common/minigames/minigame/c4.qc:373
 #: qcsrc/common/minigames/minigame/pp.qc:438
 #: qcsrc/common/minigames/minigame/ttt.qc:319
 msgid "Draw"
-msgstr ""
+msgstr "Co-ionnann"
 
 #: qcsrc/common/minigames/minigame/c4.qc:378
 #: qcsrc/common/minigames/minigame/nmm.qc:601
 msgid "You lost the game!"
-msgstr ""
+msgstr "Chaill thu an geama!"
 
 #: qcsrc/common/minigames/minigame/c4.qc:379
 #: qcsrc/common/minigames/minigame/nmm.qc:602
 msgid "You win!"
-msgstr ""
+msgstr "Bhuannaich thu!"
 
 #: qcsrc/common/minigames/minigame/c4.qc:383
 #: qcsrc/common/minigames/minigame/nmm.qc:606
 #: qcsrc/common/minigames/minigame/pp.qc:455
 #: qcsrc/common/minigames/minigame/ttt.qc:336
 msgid "Wait for your opponent to make their move"
-msgstr ""
+msgstr "Fuirich gus an gluais an nàmhaid"
 
 #: qcsrc/common/minigames/minigame/c4.qc:386
 #: qcsrc/common/minigames/minigame/nmm.qc:608
 #: qcsrc/common/minigames/minigame/pp.qc:458
 #: qcsrc/common/minigames/minigame/ttt.qc:339
 msgid "Click on the game board to place your piece"
-msgstr ""
+msgstr "Briog air bòrd a' gheama gus am fear agad a chur ann"
 
 #: qcsrc/common/minigames/minigame/nmm.qc:610
 msgid ""
 "You can select one of your pieces to move it in one of the surrounding places"
 msgstr ""
+"'S urrainn dhut fear a thaghadh gus a ghluasad sna h-ionadan timcheall air"
 
 #: qcsrc/common/minigames/minigame/nmm.qc:612
 msgid "You can select one of your pieces to move it anywhere on the board"
 msgstr ""
+"'S urrainn dhut fear a thaghadh gus a ghluasad àite sam bith air a' bhòrd"
 
 #: qcsrc/common/minigames/minigame/nmm.qc:614
 msgid "You can take one of the opponent's pieces"
-msgstr ""
+msgstr "'S urrainn dhut fear an nàmhad a ghabhail"
 
 #: qcsrc/common/minigames/minigame/pong.qc:570
 #: qcsrc/common/minigames/minigame/ttt.qc:299
 msgid "AI"
-msgstr ""
+msgstr "IF"
 
 #: qcsrc/common/minigames/minigame/pong.qc:587
 msgid "Press ^1Start Match^7 to start the match with the current players"
 msgstr ""
+"Brùth air ^1Tòisich maidse^7 gus a' mhaidse a thòiseachadh leis na "
+"cluicheadairean làithreach"
 
 #: qcsrc/common/minigames/minigame/pong.qc:651
 msgid "Start Match"
-msgstr ""
+msgstr "Tòisich maidse"
 
 #: qcsrc/common/minigames/minigame/pong.qc:652
 msgid "Add AI player"
-msgstr ""
+msgstr "Cuir cluicheadair IF ris"
 
 #: qcsrc/common/minigames/minigame/pong.qc:653
 msgid "Remove AI player"
-msgstr ""
+msgstr "Thoir cluicheadair IF air falbh"
 
 #: qcsrc/common/minigames/minigame/pp.qc:443
 #: qcsrc/common/minigames/minigame/ttt.qc:324
@@ -1466,23 +1470,23 @@ msgstr ""
 #: qcsrc/common/minigames/minigame/ps.qc:478
 #, c-format
 msgid "Pieces left: %s"
-msgstr ""
+msgstr "Fir air am fàgail: %s"
 
 #: qcsrc/common/minigames/minigame/ps.qc:488
 msgid "No more valid moves"
-msgstr ""
+msgstr "Chan eil gluasad dligheach ann tuilleadh"
 
 #: qcsrc/common/minigames/minigame/ps.qc:491
 msgid "Well done, you win!"
-msgstr ""
+msgstr "Sin thu fhèin, bhuannaich thu!"
 
 #: qcsrc/common/minigames/minigame/ps.qc:494
 msgid "Jump a piece over another to capture it"
-msgstr ""
+msgstr "Gearr leum le fear thar fir eile gus a ghabhail"
 
 #: qcsrc/common/minigames/minigame/ttt.qc:666
 msgid "Single Player"
-msgstr ""
+msgstr "Aon-chluicheadair"
 
 #: qcsrc/common/monsters/monster/mage.qh:17
 #: qcsrc/menu/xonotic/dialog_monstertools.qc:18
@@ -1523,7 +1527,7 @@ msgstr ""
 
 #: qcsrc/common/mutators/mutator/buffs/all.inc:15
 msgid "Ammo"
-msgstr ""
+msgstr "Connadh"
 
 #: qcsrc/common/mutators/mutator/buffs/all.inc:24
 msgid "Resistance"
@@ -1688,15 +1692,15 @@ msgstr ""
 
 #: qcsrc/common/mutators/mutator/waypoints/all.inc:6
 msgid "DANGER"
-msgstr ""
+msgstr "CUNNART"
 
 #: qcsrc/common/mutators/mutator/waypoints/all.inc:8
 msgid "Frozen!"
-msgstr ""
+msgstr "Reòite!"
 
 #: qcsrc/common/mutators/mutator/waypoints/all.inc:10
 msgid "Item"
-msgstr ""
+msgstr ""
 
 #: qcsrc/common/mutators/mutator/waypoints/all.inc:12
 msgid "Checkpoint"
index 30e558629665a140f4cc836067878ca68ab58c77..cc153f5aafc7d8d67f2ccb9007985e0cbe8c83da 100644 (file)
@@ -14,7 +14,7 @@ msgstr ""
 "Project-Id-Version: Xonotic\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2017-03-30 07:23+0200\n"
-"PO-Revision-Date: 2017-03-31 17:53+0000\n"
+"PO-Revision-Date: 2017-06-04 00:29+0000\n"
 "Last-Translator: Antonio <piuntn@gmail.com>\n"
 "Language-Team: Italian (http://www.transifex.com/team-xonotic/xonotic/"
 "language/it/)\n"
@@ -344,7 +344,7 @@ msgstr "ucciso bandiera, icona"
 
 #: qcsrc/client/hud/panel/quickmenu.qc:804
 msgid "QMCMD^killed flagcarrier (l:%y^7)"
-msgstr "ucciso portatore bandiera (l:%y^7)"
+msgstr "ucciso portabandiera (l:%y^7)"
 
 #: qcsrc/client/hud/panel/quickmenu.qc:805
 #, c-format
@@ -778,8 +778,7 @@ msgstr "^3captime^7                  Tempo della cattura più veloce (CTF)\n"
 
 #: qcsrc/client/hud/panel/scoreboard.qc:319
 msgid "^3fckills^7                  Number of flag carrier kills\n"
-msgstr ""
-"^3fckills^7                  Numero di uccisioni dei portatori di bandiera\n"
+msgstr "^3fckills^7                  Numero di uccisioni dei portabandiera\n"
 
 #: qcsrc/client/hud/panel/scoreboard.qc:320
 msgid "^3returns^7                  Number of flag returns\n"
@@ -811,8 +810,7 @@ msgstr ""
 
 #: qcsrc/client/hud/panel/scoreboard.qc:326
 msgid "^3kckills^7                  Number of keys carrier kills\n"
-msgstr ""
-"^3kckills^7                  Numero di uccisioni di portatori di chiavi\n"
+msgstr "^3kckills^7                  Numero di uccisioni di portachiavi\n"
 
 #: qcsrc/client/hud/panel/scoreboard.qc:327
 msgid "^3losses^7                   Number of times a key was lost\n"
@@ -841,8 +839,7 @@ msgstr "^3takes^7                    Numero di punti di dominio presi (DOM)\n"
 
 #: qcsrc/client/hud/panel/scoreboard.qc:333
 msgid "^3bckills^7                  Number of ball carrier kills\n"
-msgstr ""
-"^3bckills^7                  Numbero di uccisioni di portatori di palla\n"
+msgstr "^3bckills^7                  Numbero di uccisioni di portapalla\n"
 
 #: qcsrc/client/hud/panel/scoreboard.qc:334
 msgid ""
@@ -1770,7 +1767,7 @@ msgstr "Spingi"
 
 #: qcsrc/common/mutators/mutator/waypoints/all.inc:21
 msgid "Flag carrier"
-msgstr "Portatore bandiera"
+msgstr "Portabandiera"
 
 #: qcsrc/common/mutators/mutator/waypoints/all.inc:22
 msgid "Enemy carrier"
@@ -1778,7 +1775,7 @@ msgstr "Portatore nemico"
 
 #: qcsrc/common/mutators/mutator/waypoints/all.inc:23
 msgid "Dropped flag"
-msgstr "Bandiera persa"
+msgstr "Bandiera lasciata"
 
 #: qcsrc/common/mutators/mutator/waypoints/all.inc:24
 msgid "White base"
@@ -1825,7 +1822,7 @@ msgstr "Chiave lasciata"
 #: qcsrc/common/mutators/mutator/waypoints/all.inc:42
 #: qcsrc/common/mutators/mutator/waypoints/all.inc:43
 msgid "Key carrier"
-msgstr "Portatore chiave"
+msgstr "Portchiave"
 
 #: qcsrc/common/mutators/mutator/waypoints/all.inc:39
 msgid "Run here"
@@ -1838,7 +1835,7 @@ msgstr "Palla"
 
 #: qcsrc/common/mutators/mutator/waypoints/all.inc:46
 msgid "Ball carrier"
-msgstr "Portatore palla"
+msgstr "Portapalla"
 
 #: qcsrc/common/mutators/mutator/waypoints/all.inc:49
 msgid "Goal"
@@ -2604,7 +2601,7 @@ msgstr "^BG%s^BG ha perso il colpetto %s^BG!"
 #: qcsrc/common/notifications/all.inc:692
 #, c-format
 msgid "^BGYou dropped the %s^BG buff!"
-msgstr "^BGHai abbandonato il colpetto %s^BG!"
+msgstr "^BGHai lasciato il colpetto %s^BG!"
 
 #: qcsrc/common/notifications/all.inc:380
 #: qcsrc/common/notifications/all.inc:693
@@ -3446,8 +3443,7 @@ msgstr "^BGStallo! I nemici ora possono vederti nel radar!"
 #: qcsrc/common/notifications/all.inc:586
 msgid "^BGStalemate! Flag carriers can now be seen by enemies on radar!"
 msgstr ""
-"^BGStallo! I portatori di bandiera ora possono essere visti dai nemici nel "
-"radar!"
+"^BGStallo! I portabandiera ora possono essere visti dai nemici nel radar!"
 
 #: qcsrc/common/notifications/all.inc:590
 #, c-format
@@ -3845,7 +3841,7 @@ msgid ""
 "Help the key carriers to meet!"
 msgstr ""
 "^BGTutte le chiavi sono in mano alla tua squadra!\n"
-"Aiuta i portatori di chiavi a incontrarsi!"
+"Aiuta i portachiavi a incontrarsi!"
 
 #: qcsrc/common/notifications/all.inc:712
 msgid ""
@@ -3861,7 +3857,7 @@ msgid ""
 "Meet the other key carriers ^F4NOW^BG!"
 msgstr ""
 "^BGTutte le chiavi sono in mano alla tua squadra!\n"
-"Incxontra gli altri portatori di chiavi ^F4ORA^BG!"
+"Incxontra gli altri portachiavi ^F4ORA^BG!"
 
 #: qcsrc/common/notifications/all.inc:714
 msgid "^F4Round will start in ^COUNT"
index dbb977da2dd8ed83f4e67227d57d55a0ba5f7e91..bee24ccf8ce97887993878c880e637ed827fc2da 100644 (file)
@@ -7,7 +7,8 @@
 # alex progger <tiprogrammierer.alex@gmail.com>, 2015
 # Amadeusz Sławiński <amade@asmblr.net>, 2015-2017
 # Artur Motyka <slashcraftpl@gmail.com>, 2016
-# Jakub Pędziszewski <pedziszewski@gmail.com>, 2015
+# Jakub P. <pedziszewski@gmail.com>, 2015
+# Jakub P. <pedziszewski@gmail.com>, 2015
 # John Smith <myrangd@gmail.com>, 2016
 # Kriss Chr <kriss7475@gmail.com>, 2017
 # Piotr Kozica <koza91@gmail.com>, 2016
@@ -27,7 +28,7 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n"
-"%100<12 || n%100>=14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n"
+"%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n"
 "%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
 
 #: qcsrc/client/hud/hud_config.qc:233
index 30bf593019415aab302f969198a3ffd645dc9e30..82cee75fe6985fa56531f601fbef6dc728725f8b 100644 (file)
@@ -13,7 +13,7 @@ msgstr ""
 "Project-Id-Version: Xonotic\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2017-03-30 07:23+0200\n"
-"PO-Revision-Date: 2017-04-04 15:40+0000\n"
+"PO-Revision-Date: 2017-05-31 03:15+0000\n"
 "Last-Translator: Jean Trindade Pereira <jean_trindade2@hotmail.com>\n"
 "Language-Team: Portuguese (http://www.transifex.com/team-xonotic/xonotic/"
 "language/pt/)\n"
@@ -6732,7 +6732,7 @@ msgstr "Permitir que as estatísticas de jogadores usem o seu apelido"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_profile.qc:145
 msgid "Country"
-msgstr "País"
+msgstr "Idioma"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_profile.qc:159
 msgid "Gender:"
@@ -8875,7 +8875,7 @@ msgstr "Difícil"
 
 #: qcsrc/menu/xonotic/dialog_singleplayer.qc:135
 msgid "Start Singleplayer!"
-msgstr "Iniciar Um Jogador!"
+msgstr "Iniciar Campanha!"
 
 #: qcsrc/menu/xonotic/dialog_singleplayer.qh:6
 msgid "Singleplayer"
index e7c0f946bd5dc75692c4a849a5b1ac7a956934ba..98710d25b8d6f0e5ad9ff1141e9692f9ecd19a40 100644 (file)
@@ -256,6 +256,11 @@ vector autocvar_sv_player_crouch_maxs = '16 16 25';
 vector autocvar_sv_player_crouch_mins = '-16 -16 -24';
 vector autocvar_sv_player_crouch_viewoffset = '0 0 20';
 //vector autocvar_sv_player_headsize = '24 24 12';
+
+// temporary array used to dump weapon and turret settings
+const int MAX_CONFIG_SETTINGS = 256;
+string config_queue[MAX_CONFIG_SETTINGS];
+
 #endif
 
 
index 0e8262249517fb2ce6149f99eef6209d1cee7c4f..223a81f7c4d4dfb6039a3ea6b2189b0df864dfd0 100644 (file)
@@ -143,8 +143,8 @@ void onslaught_updatelinks()
        {
                l.islinked = false;
                l.isshielded = true;
-               int i;
-               for(i = 0; i < 17; ++i) { l.isgenneighbor[i] = false; l.iscpneighbor[i] = false; }
+               l.aregensneighbor = 0;
+               l.arecpsneighbor = 0;
                LOG_DEBUG(etos(l), " (point) belongs to team ", ftos(l.team));
                l.sprite.SendFlags |= 16;
        }
@@ -188,9 +188,9 @@ void onslaught_updatelinks()
                                l.enemy.isshielded = false;
                        }
                        if(l.goalentity.classname == "onslaught_generator")
-                               l.enemy.isgenneighbor[l.goalentity.team] = true;
+                               l.enemy.aregensneighbor |= BIT(l.goalentity.team);
                        else
-                               l.enemy.iscpneighbor[l.goalentity.team] = true;
+                               l.enemy.arecpsneighbor |= BIT(l.goalentity.team);
                }
                if (l.enemy.islinked)
                {
@@ -200,9 +200,9 @@ void onslaught_updatelinks()
                                l.goalentity.isshielded = false;
                        }
                        if(l.enemy.classname == "onslaught_generator")
-                               l.goalentity.isgenneighbor[l.enemy.team] = true;
+                               l.goalentity.aregensneighbor |= BIT(l.enemy.team);
                        else
-                               l.goalentity.iscpneighbor[l.enemy.team] = true;
+                               l.goalentity.arecpsneighbor |= BIT(l.enemy.team);
                }
        }
        // now update the generators
@@ -328,8 +328,8 @@ void ons_DelayedLinkSetup(entity this)
 
 int ons_ControlPoint_CanBeLinked(entity cp, int teamnumber)
 {
-       if(cp.isgenneighbor[teamnumber]) { return 2; }
-       if(cp.iscpneighbor[teamnumber]) { return 1; }
+       if(cp.aregensneighbor & BIT(teamnumber)) return 2;
+       if(cp.arecpsneighbor & BIT(teamnumber)) return 1;
 
        return 0;
 }
@@ -1308,7 +1308,7 @@ void havocbot_goalrating_ons_controlpoints_attack(entity this, float ratingscale
                        continue;
 
                // Ignore owned controlpoints
-               if(!(cp2.isgenneighbor[this.team] || cp2.iscpneighbor[this.team]))
+               if(!((cp2.aregensneighbor & BIT(this.team)) || (cp2.arecpsneighbor & BIT(this.team))))
                        continue;
 
                // Count team mates interested in this control point
index 5f05f7658bbb14b101b596ab10e6a74551da96dd..0757d7bc6014645c37260a1620563ea066aca9bf 100644 (file)
@@ -70,8 +70,8 @@ bool ons_stalemate;
 
 .float teleport_antispam;
 
-.bool isgenneighbor[17];
-.bool iscpneighbor[17];
+.int aregensneighbor;
+.int arecpsneighbor;
 float ons_notification_time[17];
 
 .float ons_overtime_damagedelay;
index 31119e25945cb89d925f1bff5ef0f8dedc4108d1..4bd827a6e8fe8f80f8ff6d2ef8142af8ba1964e4 100644 (file)
@@ -409,7 +409,7 @@ string BUFF_NAME(int i);
        ARG_CASE(ARG_CS,        "f1secs",        count_seconds(f1)) \
        ARG_CASE(ARG_CS,        "f1points",      (f1 == 1 ? _("point") : _("points"))) \
        ARG_CASE(ARG_CS_SV,     "f1ord",         count_ordinal(f1)) \
-       ARG_CASE(ARG_CS,        "f1time",        process_time(2, f1)) \
+       ARG_CASE(ARG_CS_SV,     "f1time",        process_time(2, f1)) \
        ARG_CASE(ARG_CS_SV_HA,  "f1race_time",   mmssss(f1)) \
        ARG_CASE(ARG_CS_SV_HA,  "f2race_time",   mmssss(f2)) \
        ARG_CASE(ARG_CS_SV_HA,  "f3race_time",   mmssss(f3)) \
index 71bd8c11e9c4865fb3f27b6142a697dca5b0c8aa..34c02ba79418fbd2ee5f9d6d3d980c13ea0fcb2b 100644 (file)
@@ -1,6 +1,7 @@
 // generated file; do not modify
 #include <common/triggers/target/changelevel.qc>
 #include <common/triggers/target/include.qc>
+#include <common/triggers/target/kill.qc>
 #include <common/triggers/target/levelwarp.qc>
 #include <common/triggers/target/location.qc>
 #include <common/triggers/target/music.qc>
index c643e47857374ea95411805f301221e4383ab229..4558b71bfcdfc519b97588b9a4f75bc114dad50f 100644 (file)
@@ -1,6 +1,7 @@
 #include "include.qh"
 
 #include "changelevel.qc"
+#include "kill.qc"
 #include "levelwarp.qc"
 #include "location.qc"
 #include "music.qc"
diff --git a/qcsrc/common/triggers/target/kill.qc b/qcsrc/common/triggers/target/kill.qc
new file mode 100644 (file)
index 0000000..a086bb3
--- /dev/null
@@ -0,0 +1,25 @@
+#include "location.qh"
+#ifdef SVQC
+
+void target_kill_use(entity this, entity actor, entity trigger)
+{
+       if(actor.takedamage == DAMAGE_NO)
+               return;
+
+       if(!actor.iscreature && !actor.damagedbytriggers)
+               return;
+
+       Damage(actor, this, trigger, 1000, DEATH_HURTTRIGGER.m_id, actor.origin, '0 0 0');
+}
+
+spawnfunc(target_kill)
+{
+    this.classname = "target_kill";
+
+    if (this.message == "")
+               this.message = "was in the wrong place";
+
+    this.use = target_kill_use;
+}
+
+#endif
index 68cac084649dba3baa49ae258a438d25313d5444..7d1a81d490b1be213ad7d12faa20ca3d6e2d6355 100644 (file)
@@ -5,9 +5,9 @@
 
 void T_Config_Queue_Swap(float root, float child, entity pass)
 {
-       string oldroot = tur_config_queue[root];
-       tur_config_queue[root] = tur_config_queue[child];
-       tur_config_queue[child] = oldroot;
+       string oldroot = config_queue[root];
+       config_queue[root] = config_queue[child];
+       config_queue[child] = oldroot;
 }
 
 float T_Config_Queue_Compare(float root, float child, entity pass)
@@ -16,8 +16,8 @@ float T_Config_Queue_Compare(float root, float child, entity pass)
 
        for(i = 1; i <= 100; ++i)
        {
-               r = str2chr(tur_config_queue[root], i);
-               c = str2chr(tur_config_queue[child], i);
+               r = str2chr(config_queue[root], i);
+               c = str2chr(config_queue[child], i);
                if(r == c) { continue; }
                else if(c > r) { return -1; }
                else { return 1; }
@@ -32,8 +32,8 @@ void Dump_Turret_Settings()
        FOREACH(Turrets, it != TUR_Null, {
                // step 1: clear the queue
                TUR_CONFIG_COUNT = 0;
-               for(int j = 0; j <= MAX_TUR_CONFIG; ++j)
-                       { tur_config_queue[j] = string_null; }
+               for(int j = 0; j <= MAX_CONFIG_SETTINGS; ++j)
+                       config_queue[j] = string_null;
 
                // step 2: build new queue
                it.tr_config(it);
@@ -44,7 +44,7 @@ void Dump_Turret_Settings()
                // step 4: write queue
                TUR_CONFIG_WRITETOFILE(sprintf("// {{{ #%d: %s\n", i, it.turret_name))
                for(int j = 0; j <= TUR_CONFIG_COUNT; ++j)
-                       { TUR_CONFIG_WRITETOFILE(tur_config_queue[j]) }
+                       TUR_CONFIG_WRITETOFILE(config_queue[j])
                TUR_CONFIG_WRITETOFILE("// }}}\n")
 
                // step 5: debug info
@@ -54,8 +54,8 @@ void Dump_Turret_Settings()
 
        // clear queue now that we're finished
        TUR_CONFIG_COUNT = 0;
-       for(int j = 0; j <= MAX_TUR_CONFIG; ++j)
-               { tur_config_queue[j] = string_null; }
+       for(int j = 0; j <= MAX_CONFIG_SETTINGS; ++j)
+               config_queue[j] = string_null;
 
        // extra information
        LOG_INFO(sprintf("Totals: %d turrets, %d settings\n", (Turrets_COUNT - 1), totalsettings));
index caa68a86487dcd3780eb9c277f93aab8eacaa635..ac09e9e37248f3f5320a1df3267f758820140126 100644 (file)
@@ -6,10 +6,7 @@ void Dump_Turret_Settings();
 float tur_config_file;
 float tur_config_alsoprint;
 
-const int MAX_TUR_CONFIG = 256;
 float TUR_CONFIG_COUNT;
-string tur_config_queue[MAX_TUR_CONFIG];
-
 #define TUR_CONFIG_WRITETOFILE(a) { \
        fputs(tur_config_file, a); \
        if(tur_config_alsoprint) { LOG_INFO(a); } }
index 4d598db543a1ba0f006702b26f1f31119590eb80..ae8cd5323b49dfcd6a3789089e1396bf601a0b56 100644 (file)
@@ -1245,6 +1245,30 @@ void turret_initparams(entity tur)
        #undef TRY
 }
 
+void turret_findtarget(entity this)
+{
+       entity e = find(NULL, classname, "turret_manager");
+       if(!e)
+       {
+               e = new(turret_manager);
+               setthink(e, turrets_manager_think);
+               e.nextthink = time + 2;
+       }
+       
+       entity targ = find(NULL, targetname, this.target);
+       if(targ.classname == "turret_checkpoint")
+               return; // turrets don't defend checkpoints?
+
+       if (!targ)
+       {
+               this.target = "";
+               LOG_TRACE("Turret has invalid defendpoint!");
+       }
+
+       this.tur_defend = targ;
+       this.idle_aim = this.tur_head.angles + angleofs(this.tur_head, targ);
+}
+
 bool turret_initialize(entity this, Turret tur)
 {
        if(!autocvar_g_turrets)
@@ -1260,14 +1284,6 @@ bool turret_initialize(entity this, Turret tur)
                IL_PUSH(g_bot_targets, this);
        }
 
-       entity e = find(NULL, classname, "turret_manager");
-       if(!e)
-       {
-               e = new(turret_manager);
-               setthink(e, turrets_manager_think);
-               e.nextthink = time + 2;
-       }
-
        if(!(this.spawnflags & TSF_SUSPENDED))
                droptofloor(this);
 
@@ -1341,6 +1357,7 @@ bool turret_initialize(entity this, Turret tur)
        this.takedamage                         = DAMAGE_AIM;
        set_movetype(this, MOVETYPE_NOCLIP);
        this.view_ofs                           = '0 0 0';
+       this.idle_aim                           = '0 0 0';
        this.turret_firecheckfunc       = turret_firecheck;
        this.event_damage                       = turret_damage;
        this.use                                        = turret_use;
@@ -1363,21 +1380,8 @@ bool turret_initialize(entity this, Turret tur)
 
        this.weaponentities[0] = this; // lol
 
-       if(!this.tur_defend)
-       if(this.target != "")
-       {
-               this.tur_defend = find(NULL, targetname, this.target);
-               if (this.tur_defend == NULL)
-               {
-                       this.target = "";
-                       LOG_TRACE("Turret has invalid defendpoint!");
-               }
-       }
-
-       if (this.tur_defend)
-               this.idle_aim = this.tur_head.angles + angleofs(this.tur_head, this.tur_defend);
-       else
-               this.idle_aim = '0 0 0';
+       if(!this.tur_defend && this.target != "")
+               InitializeEntity(this, turret_findtarget, INITPRIO_FINDTARGET);
 
 #ifdef TURRET_DEBUG
        this.tur_debug_start = this.nextthink;
index d2feb0823c44933e89fe013cf66daf41864c2af0..cf53508b6f63adca3314782182b8739c9bba5b17 100644 (file)
@@ -113,6 +113,29 @@ void ewheel_move_idle(entity this)
         movelib_brake_simple(this, (autocvar_g_turrets_unit_ewheel_speed_stop));
 }
 
+void ewheel_findtarget(entity this)
+{
+    entity e = find(NULL, targetname, this.target);
+    if (!e)
+    {
+        LOG_TRACE("Initital waypoint for ewheel does NOT exist, fix your map!");
+        this.target = "";
+    }
+
+    if (e.classname != "turret_checkpoint")
+        LOG_TRACE("Warning: not a turret path");
+    else
+    {
+
+#ifdef EWHEEL_FANCYPATH
+        this.pathcurrent = pathlib_astar(this, this.origin, e.origin);
+        this.pathgoal = e;
+#else
+        this.pathcurrent  = e;
+#endif
+    }
+}
+
 spawnfunc(turret_ewheel) { if(!turret_initialize(this, TUR_EWHEEL)) delete(this); }
 
 METHOD(EWheel, tr_think, void(EWheel thistur, entity it))
@@ -162,8 +185,6 @@ METHOD(EWheel, tr_death, void(EWheel this, entity it))
 
 METHOD(EWheel, tr_setup, void(EWheel this, entity it))
 {
-    entity e;
-
     if(it.move_movetype == MOVETYPE_WALK)
     {
         it.velocity = '0 0 0';
@@ -172,27 +193,7 @@ METHOD(EWheel, tr_setup, void(EWheel this, entity it))
         setorigin(it, it.pos1);
 
         if (it.target != "")
-        {
-            e = find(NULL, targetname, it.target);
-            if (!e)
-            {
-                LOG_TRACE("Initital waypoint for ewheel does NOT exist, fix your map!");
-                it.target = "";
-            }
-
-            if (e.classname != "turret_checkpoint")
-                LOG_TRACE("Warning: not a turret path");
-            else
-            {
-
-#ifdef EWHEEL_FANCYPATH
-                it.pathcurrent = pathlib_astar(it, it.origin, e.origin);
-                it.pathgoal = e;
-#else
-                it.pathcurrent  = e;
-#endif
-            }
-        }
+            InitializeEntity(it, ewheel_findtarget, INITPRIO_FINDTARGET);
     }
 
     it.iscreature                              = true;
index 0a82a4a7bcef08cd1db7c03cdbcc925ca6c0474f..d8c0a675d5c0b1175be5a3f6d79c6e086df88f3d 100644 (file)
@@ -43,8 +43,6 @@ const int ANIM_ROAM       = 11;
 .float animflag;
 .float idletime;
 
-#define WALKER_PATH(this, s, e) pathlib_astar(this, s, e)
-
 bool walker_firecheck(entity this)
 {
     if (this.animflag == ANIM_MELEE)
@@ -299,7 +297,7 @@ void walker_move_path(entity this)
 
                 if (this.pathgoal.enemy)
                 {
-                    this.pathcurrent = WALKER_PATH(this, this.pathgoal.origin, this.pathgoal.enemy.origin);
+                    this.pathcurrent = pathlib_astar(this, this.pathgoal.origin, this.pathgoal.enemy.origin);
                     this.pathgoal = this.pathgoal.enemy;
                 }
             }
@@ -326,6 +324,30 @@ void walker_move_path(entity this)
 #endif
 }
 
+void walker_findtarget(entity this)
+{
+    entity e = find(NULL, targetname, this.target);
+    if (!e)
+    {
+        LOG_TRACE("Initital waypoint for walker does NOT exist, fix your map!");
+        this.target = "";
+    }
+
+    if (e.classname != "turret_checkpoint")
+        LOG_TRACE("Warning: not a turrret path");
+    else
+    {
+#ifdef WALKER_FANCYPATHING
+        this.pathcurrent = pathlib_astar(this, this.origin, e.origin);
+        this.pathgoal = e;
+#else
+        this.pathcurrent = e;
+#endif
+    }
+
+    // TODO: this doesn't reset target, so tur_defend will be the checkpoint too!
+}
+
 spawnfunc(turret_walker) { if(!turret_initialize(this, TUR_WALKER)) delete(this); }
 
 METHOD(WalkerTurret, tr_think, void(WalkerTurret thistur, entity it))
@@ -550,8 +572,6 @@ METHOD(WalkerTurret, tr_setup, void(WalkerTurret this, entity it))
 {
     it.ticrate = 0.05;
 
-    entity e;
-
     // Respawn is called & first spawn to, to set team. need to make sure we do not move the initial spawn.
     if(it.move_movetype == MOVETYPE_WALK)
     {
@@ -587,26 +607,7 @@ METHOD(WalkerTurret, tr_setup, void(WalkerTurret this, entity it))
     it.turret_firecheckfunc = walker_firecheck;
 
     if (it.target != "")
-    {
-        e = find(NULL, targetname, it.target);
-        if (!e)
-        {
-            LOG_TRACE("Initital waypoint for walker does NOT exsist, fix your map!");
-            it.target = "";
-        }
-
-        if (e.classname != "turret_checkpoint")
-            LOG_TRACE("Warning: not a turrret path");
-        else
-        {
-#ifdef WALKER_FANCYPATHING
-            it.pathcurrent = WALKER_PATH(it, it.origin, e.origin);
-            it.pathgoal = e;
-#else
-            it.pathcurrent = e;
-#endif
-        }
-    }
+        InitializeEntity(it, walker_findtarget, INITPRIO_FINDTARGET);
 }
 
 #endif // SVQC
index afb48c918b89f74e353d3c2f624ecfafdb69e65d..b2f87821eea414ca4b6eb764663571d4d1826c4c 100644 (file)
@@ -33,13 +33,14 @@ void AuxiliaryXhair_Draw2D(entity this)
        if (scoreboard_active)
                return;
 
-       vector size = draw_getimagesize(this.axh_image) * autocvar_cl_vehicles_crosshair_size;
-       vector pos = project_3d_to_2d(this.origin) - 0.5 * size;
+       vector pos = project_3d_to_2d(this.origin);
 
        if (!(pos.z < 0 || pos.x < 0 || pos.y < 0 || pos.x > vid_conwidth || pos.y > vid_conheight))
        {
+               vector size = draw_getimagesize(this.axh_image) * autocvar_cl_vehicles_crosshair_size;
+               pos.x -= 0.5 * size.x;
+               pos.y -= 0.5 * size.y;
                pos.z = 0;
-               size.z = 0;
                drawpic(pos, this.axh_image, size, this.colormod, autocvar_crosshair_alpha * this.alpha, this.axh_drawflag);
        }
 
index 5424d1cdf5cd132479d44fdcf407efb2c8f0bfef..d2839faa874dc25158fe521f7edb246fb2ac8955 100644 (file)
@@ -794,10 +794,10 @@ METHOD(Raptor, vr_crosshair, void(Raptor thisveh, entity player))
             where = project_3d_to_2d(trace_endpos);
 
             setorigin(dropmark, trace_endpos);
-            tmpSize = draw_getimagesize(vCROSS_DROP) * autocvar_cl_vehicles_crosshair_size;
 
             if (!(where.z < 0 || where.x < 0 || where.y < 0 || where.x > vid_conwidth || where.y > vid_conheight))
             {
+                tmpSize = draw_getimagesize(vCROSS_DROP) * autocvar_cl_vehicles_crosshair_size;
                 where.x -= tmpSize.x * 0.5;
                 where.y -= tmpSize.y * 0.5;
                 where.z = 0;
@@ -811,10 +811,10 @@ METHOD(Raptor, vr_crosshair, void(Raptor thisveh, entity player))
             if(dropmark.cnt > time)
             {
                 where = project_3d_to_2d(dropmark.origin);
-                tmpSize = draw_getimagesize(vCROSS_DROP) * autocvar_cl_vehicles_crosshair_size * 1.25;
 
                 if (!(where.z < 0 || where.x < 0 || where.y < 0 || where.x > vid_conwidth || where.y > vid_conheight))
                 {
+                    tmpSize = draw_getimagesize(vCROSS_DROP) * autocvar_cl_vehicles_crosshair_size * 1.25;
                     where.x -= tmpSize.x * 0.5;
                     where.y -= tmpSize.y * 0.5;
                     where.z = 0;
index 4f6177b478f17bc870366358618c21d44133f3a7..7f87388db13b3b1964a360597b45ea013b28373b 100644 (file)
 
 void W_Config_Queue_Swap(int root, int child, entity pass)
 {
-       string oldroot = wep_config_queue[root];
-       wep_config_queue[root] = wep_config_queue[child];
-       wep_config_queue[child] = oldroot;
+       string oldroot = config_queue[root];
+       config_queue[root] = config_queue[child];
+       config_queue[child] = oldroot;
 }
 
 float W_Config_Queue_Compare(int root, int child, entity pass)
 {
-       return strcmp(wep_config_queue[root], wep_config_queue[child]);
+       return strcmp(config_queue[root], config_queue[child]);
 }
 
 void Dump_Weapon_Settings()
@@ -28,8 +28,8 @@ void Dump_Weapon_Settings()
        FOREACH(Weapons, it != WEP_Null, {
                // step 1: clear the queue
                WEP_CONFIG_COUNT = 0;
-               for (int x = 0; x <= MAX_WEP_CONFIG; ++x)
-                       { wep_config_queue[x] = string_null; }
+               for (int x = 0; x <= MAX_CONFIG_SETTINGS; ++x)
+                       config_queue[x] = string_null;
 
                // step 2: build new queue
                it.wr_config(it);
@@ -44,7 +44,7 @@ void Dump_Weapon_Settings()
                        it.m_name,
                        ((it.spawnflags & WEP_FLAG_MUTATORBLOCKED) ? " (MUTATOR WEAPON)" : "")
                ));
-               for (int x = 0; x <= WEP_CONFIG_COUNT; ++x) { WEP_CONFIG_WRITETOFILE(wep_config_queue[x]); }
+               for (int x = 0; x <= WEP_CONFIG_COUNT; ++x) { WEP_CONFIG_WRITETOFILE(config_queue[x]); }
                WEP_CONFIG_WRITETOFILE("// }}}\n");
 
                // step 5: debug info
@@ -55,8 +55,8 @@ void Dump_Weapon_Settings()
 
        // clear queue now that we're finished
        WEP_CONFIG_COUNT = 0;
-       for(int x = 0; x <= MAX_WEP_CONFIG; ++x)
-               { wep_config_queue[x] = string_null; }
+       for(int x = 0; x <= MAX_CONFIG_SETTINGS; ++x)
+               config_queue[x] = string_null;
 
        // extra information
        LOG_INFO(sprintf("Totals: %d weapons, %d settings\n", totalweapons, totalsettings));
index 753147307b3a253e9fb86b5b056bcbdab222c096..9489843654f89db445a844973a14b6cd270f8e65 100644 (file)
@@ -9,12 +9,9 @@ void Dump_Weapon_Settings();
 int wep_config_file;
 bool wep_config_alsoprint;
 
-const int MAX_WEP_CONFIG = 256;
 int WEP_CONFIG_COUNT;
-string wep_config_queue[MAX_WEP_CONFIG];
-
 #define WEP_CONFIG_QUEUE(a) { \
-       wep_config_queue[WEP_CONFIG_COUNT] = a; \
+       config_queue[WEP_CONFIG_COUNT] = a; \
        ++WEP_CONFIG_COUNT; }
 
 #define WEP_CONFIG_WRITETOFILE(a) MACRO_BEGIN { \
index ad86afb23ce84d280d1e41316814e5a3ac9e0017..d8b1797166fa2108290003ea258bdb81a264bf4e 100644 (file)
@@ -1,3 +1,5 @@
+#ifdef RADARMAP
+
 #include "radarmap.qh"
 #include <common/command/_mod.qh>
 #include "radarmap.qh"
@@ -366,7 +368,7 @@ void RadarMap_Think(entity this)
        }
 }
 
-float RadarMap_Make(float argc)
+bool RadarMap_Make(float argc)
 {
        float i;
 
@@ -454,3 +456,4 @@ float RadarMap_Make(float argc)
 
        return false;
 }
+#endif
index 4332003f8f4cd15aa885cc14afd7698ca46fcca7..520884b32b5239e703b6121b4b79c312077f0b66 100644 (file)
@@ -1,4 +1,7 @@
 #pragma once
+#ifndef RADARMAP
+bool RadarMap_Make(float argc) { LOG_INFO("radarmap is disabled, compile with -DRADARMAP to enable it.\n"); return true; }
+#else
 
 // ===========================================
 //     Declarations for radarmap generation code
@@ -14,4 +17,6 @@ string doublehex = "000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D
 // FF is contained twice, to map 256 to FF too
 // removes the need to bound()
 
-float RadarMap_Make(float argc);
+bool RadarMap_Make(float argc);
+
+#endif
index 11b915027c8b2deb3029a2370013a86d00ac05fe..ca7430de31eaaa17cfecdec04e6eef1c9ae2907e 100644 (file)
@@ -220,9 +220,9 @@ float TemporaryDB;
 
 .float team_saved;
 
-float some_spawn_has_been_used;
-float have_team_spawns; // 0 = no team spawns requested, -1 = team spawns requested but none found, 1 = team spawns requested and found
-float have_team_spawns_forteam[17]; // 0 = this team has no spawns, 1 = this team has spawns; team 0 is the "no-team"
+bool some_spawn_has_been_used;
+int have_team_spawns; // 0 = no team spawns requested, -1 = team spawns requested but none found, 1 = team spawns requested and found
+int have_team_spawns_forteams; // if Xth bit is 1 then team X has spawns else it has no spawns; team 0 is the "no-team"
 
 // set when showing a kill countdown
 .entity killindicator;
index faa3c810137a4628ae82b585d43cdcbd1def147c..5aae35599964402a4f63b5ddddf50484f8ae845d 100644 (file)
@@ -506,10 +506,8 @@ void PlayerDamage(entity this, entity inflictor, entity attacker, float damage,
        {
                WeaponStats_LogDamage(awep.m_id, abot, this.(weaponentity).m_weapon.m_id, vbot, dh + da);
        }
-       if (damage)
-       {
-               MUTATOR_CALLHOOK(PlayerDamaged, attacker, this, dh, da, hitloc, deathtype, damage);
-       }
+
+       MUTATOR_CALLHOOK(PlayerDamaged, attacker, this, dh, da, hitloc, deathtype, damage);
 
        if (this.health < 1)
        {
index 31edbc3f0d817c517cd3bd5b6b1d876eca375b19..ef82cc3d603c6751f6811bcdab5a75353ade2268 100644 (file)
@@ -548,30 +548,6 @@ void race_ClearTime(entity e)
        });
 }
 
-void dumpsurface(entity e)
-{
-       float n, si, ni;
-       vector norm, vec;
-       LOG_INFO("Surfaces of ", etos(e), ":\n");
-
-       LOG_INFO("TEST = ", ftos(getsurfacenearpoint(e, '0 0 0')), "\n");
-
-       for(si = 0; ; ++si)
-       {
-               n = getsurfacenumpoints(e, si);
-               if(n <= 0)
-                       break;
-               LOG_INFO("  Surface ", ftos(si), ":\n");
-               norm = getsurfacenormal(e, si);
-               LOG_INFO("    Normal = ", vtos(norm), "\n");
-               for(ni = 0; ni < n; ++ni)
-               {
-                       vec = getsurfacepoint(e, si, ni);
-                       LOG_INFO("    Point ", ftos(ni), " = ", vtos(vec), " (", ftos(norm * vec), ")\n");
-               }
-       }
-}
-
 void checkpoint_passed(entity this, entity player)
 {
        if(player.personal && autocvar_g_allow_checkpoints)
index 09f230dd6bf4bcfa29a50a44171d0a7688f75e06..7854b875e040ad08560926b2e4c67ef2d094cb9c 100644 (file)
@@ -339,9 +339,12 @@ float PlayerScore_Add(entity player, PlayerScoreField scorefield, float score)
                LOG_WARN("Adding score to unknown player!");
                return 0;
        }
-       if(score)
-               if(scores_label(scorefield) != "")
-                       s.SendFlags |= (2 ** (scorefield.m_id % 16));
+       if(!score)
+       {
+               return s.(scores(scorefield));
+       }
+       if(scores_label(scorefield) != "")
+               s.SendFlags |= (2 ** (scorefield.m_id % 16));
        if(!warmup_stage)
                PS_GR_P_ADDVAL(s.owner, strcat(PLAYERSTATS_TOTAL, scores_label(scorefield)), score);
        return (s.(scores(scorefield)) += score);
index cf767659056d5f9cef2a39ae063d18a5923c8c5e..2f9c0787239dbff7d6b7452e840b3de17b2e3860 100644 (file)
@@ -24,6 +24,14 @@ void PlayerScore_Detach(entity player);
  */
 float PlayerScore_Add(entity player, PlayerScoreField scorefield, float score);
 
+/**
+ * \brief Returns the player's score.
+ * \param[in] player Player to inspect.
+ * \param[in] scorefield Field of the score.
+ * \return Player's score.
+ */
+#define PlayerScore_Get(player, scorefield) PlayerScore_Add(player, scorefield, 0)
+
 /**
  * Initialize the score of this player if needed.
  * Does nothing in teamplay.
index 3d62c149cf9996c74454ea0c0e27c04c9ad6648a..bdb9cdab787a8c4f19f26ff222930b5368bbbdc8 100644 (file)
@@ -64,7 +64,7 @@ void spawnpoint_use(entity this, entity actor, entity trigger)
        if(have_team_spawns > 0)
        {
                this.team = actor.team;
-               some_spawn_has_been_used = 1;
+               some_spawn_has_been_used = true;
        }
        //LOG_INFO("spawnpoint was used!\n");
 }
@@ -113,7 +113,7 @@ void relocate_spawnpoint(entity this)
     if (have_team_spawns != 0)
         if (this.team)
             have_team_spawns = 1;
-    have_team_spawns_forteam[this.team] = 1;
+    have_team_spawns_forteams |= BIT(this.team);
 
     if (autocvar_r_showbboxes)
     {
@@ -344,11 +344,11 @@ entity SelectSpawnPoint(entity this, bool anypoint)
                teamcheck = -1;
        else if(have_team_spawns > 0)
        {
-               if(have_team_spawns_forteam[this.team] == 0)
+               if(!(have_team_spawns_forteams & BIT(this.team)))
                {
                        // we request a spawn for a team, and we have team
                        // spawns, but that team has no spawns?
-                       if(have_team_spawns_forteam[0])
+                       if(have_team_spawns_forteams & BIT(0))
                                // try noteam spawns
                                teamcheck = 0;
                        else
@@ -358,7 +358,7 @@ entity SelectSpawnPoint(entity this, bool anypoint)
                else
                        teamcheck = this.team; // MUST be team
        }
-       else if(have_team_spawns == 0 && have_team_spawns_forteam[0])
+       else if(have_team_spawns == 0 && (have_team_spawns_forteams & BIT(0)))
                teamcheck = 0; // MUST be noteam
        else
                teamcheck = -1;