]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Merge remote branch 'origin/master' into terencehill/screenshot_viewer
authorSamual <samual@xonotic.org>
Sat, 14 May 2011 18:17:58 +0000 (14:17 -0400)
committerSamual <samual@xonotic.org>
Sat, 14 May 2011 18:17:58 +0000 (14:17 -0400)
Conflicts:
qcsrc/menu/xonotic/mainwindow.c

352 files changed:
Makefile
_hud_descriptions.cfg
balance25.cfg
balanceLeeStricklin.cfg
balanceSamual.cfg
balanceXonotic.cfg
balancetZork.cfg
check-translations.sh
csprogs.dat.de.po [new file with mode: 0644]
csprogs.dat.de.po.disabled [deleted file]
csprogs.dat.pot [new file with mode: 0644]
defaultSamual.cfg [deleted file]
defaultXonotic.cfg
gfx/hud/default/progressbar.tga [new file with mode: 0644]
gfx/hud/default/progressbar_vertical.tga [new file with mode: 0644]
gfx/hud/default/statusbar.tga [deleted file]
gfx/hud/default/statusbar_vertical.tga [deleted file]
gfx/hud/luminos/dom_icon_blue-highlighted.tga [new file with mode: 0644]
gfx/hud/luminos/dom_icon_blue.tga [new file with mode: 0644]
gfx/hud/luminos/dom_icon_pink-highlighted.tga [new file with mode: 0644]
gfx/hud/luminos/dom_icon_pink.tga [new file with mode: 0644]
gfx/hud/luminos/dom_icon_red-highlighted.tga [new file with mode: 0644]
gfx/hud/luminos/dom_icon_red.tga [new file with mode: 0644]
gfx/hud/luminos/dom_icon_yellow-highlighted.tga [new file with mode: 0644]
gfx/hud/luminos/dom_icon_yellow.tga [new file with mode: 0644]
gfx/hud/luminos/progressbar.tga [new file with mode: 0644]
gfx/hud/luminos/progressbar_vertical.tga [new file with mode: 0644]
gfx/hud/luminos/shield.tga [new file with mode: 0644]
gfx/hud/luminos/statusbar.tga [deleted file]
gfx/hud/luminos/statusbar_vertical.tga [deleted file]
gfx/hud/luminos/strength.tga [new file with mode: 0644]
gfx/hud/old/dom_icon_blue-highlighted.tga [new file with mode: 0644]
gfx/hud/old/dom_icon_blue.tga [new file with mode: 0644]
gfx/hud/old/dom_icon_pink-highlighted.tga [new file with mode: 0644]
gfx/hud/old/dom_icon_pink.tga [new file with mode: 0644]
gfx/hud/old/dom_icon_red-highlighted.tga [new file with mode: 0644]
gfx/hud/old/dom_icon_red.tga [new file with mode: 0644]
gfx/hud/old/dom_icon_yellow-highlighted.tga [new file with mode: 0644]
gfx/hud/old/dom_icon_yellow.tga [new file with mode: 0644]
gfx/hud/old/progressbar.tga [new file with mode: 0644]
gfx/hud/old/progressbar_vertical.tga [new file with mode: 0644]
gfx/hud/old/statusbar.tga [deleted file]
gfx/hud/old/statusbar_vertical.tga [deleted file]
gfx/loading.tga
gfx/loading10.tga [new file with mode: 0644]
gfx/loading11.tga [new file with mode: 0644]
gfx/loading12.tga [new file with mode: 0644]
gfx/loading2.tga [new file with mode: 0644]
gfx/loading3.tga [new file with mode: 0644]
gfx/loading4.tga [new file with mode: 0644]
gfx/loading5.tga [new file with mode: 0644]
gfx/loading6.tga [new file with mode: 0644]
gfx/loading7.tga [new file with mode: 0644]
gfx/loading8.tga [new file with mode: 0644]
gfx/loading9.tga [new file with mode: 0644]
gfx/ons-frame-team.tga [deleted file]
gfx/ons-frame.tga [deleted file]
hud_luminos.cfg
hud_luminos_minimal.cfg
hud_luminos_old.cfg
hud_luminos_xhair_minimal.cfg
hud_nexuiz.cfg
menu.dat.de.po
menu.dat.es.po
menu.dat.fi.po
menu.dat.fr.po
menu.dat.hu.po
menu.dat.it.po
menu.dat.nl.po
menu.dat.pot [new file with mode: 0644]
menu.dat.pt.po
menu.dat.ro.po
menu.dat.ru.po
menu.dat.se.po
models/player/erebus.iqm
models/player/erebus.iqm.framegroups
models/player/erebus_lod1.iqm
models/player/erebus_lod1.iqm.framegroups
models/player/erebus_lod2.iqm
models/player/erebus_lod2.iqm.framegroups
models/player/gak.iqm
models/player/gak.iqm.framegroups
models/player/gak_lod1.iqm [new file with mode: 0644]
models/player/gak_lod1.iqm.framegroups [new file with mode: 0644]
models/player/gak_lod2.iqm [new file with mode: 0644]
models/player/gak_lod2.iqm.framegroups [new file with mode: 0644]
models/player/gakarmored.iqm
models/player/gakarmored.iqm.framegroups
models/player/gakarmored_lod1.iqm [new file with mode: 0644]
models/player/gakarmored_lod1.iqm.framegroups [new file with mode: 0644]
models/player/gakarmored_lod2.iqm [new file with mode: 0644]
models/player/gakarmored_lod2.iqm.framegroups [new file with mode: 0644]
models/player/gakmasked.iqm
models/player/gakmasked.iqm.framegroups
models/player/gakmasked_lod1.iqm [new file with mode: 0644]
models/player/gakmasked_lod1.iqm.framegroups [new file with mode: 0644]
models/player/gakmasked_lod2.iqm [new file with mode: 0644]
models/player/gakmasked_lod2.iqm.framegroups [new file with mode: 0644]
models/player/ignis.iqm
models/player/ignis.iqm.framegroups
models/player/ignis_lod1.iqm
models/player/ignis_lod1.iqm.framegroups
models/player/ignis_lod2.iqm
models/player/ignis_lod2.iqm.framegroups
models/player/ignishalfmasked.iqm
models/player/ignishalfmasked.iqm.framegroups
models/player/ignishalfmasked_lod1.iqm
models/player/ignishalfmasked_lod1.iqm.framegroups
models/player/ignishalfmasked_lod2.iqm
models/player/ignishalfmasked_lod2.iqm.framegroups
models/player/ignismasked.iqm
models/player/ignismasked.iqm.framegroups
models/player/ignismasked_lod1.iqm
models/player/ignismasked_lod1.iqm.framegroups
models/player/ignismasked_lod2.iqm
models/player/ignismasked_lod2.iqm.framegroups
models/player/nyx.iqm
models/player/nyx.iqm.framegroups
models/player/nyx_lod1.iqm [new file with mode: 0644]
models/player/nyx_lod1.iqm.framegroups [new file with mode: 0644]
models/player/nyx_lod2.iqm [new file with mode: 0644]
models/player/nyx_lod2.iqm.framegroups [new file with mode: 0644]
models/player/pyria.iqm
models/player/pyria.iqm.framegroups
models/player/pyria_lod1.iqm [new file with mode: 0644]
models/player/pyria_lod1.iqm.framegroups [new file with mode: 0644]
models/player/pyria_lod2.iqm [new file with mode: 0644]
models/player/pyria_lod2.iqm.framegroups [new file with mode: 0644]
models/player/seraphina.iqm
models/player/seraphina.iqm.framegroups
models/player/seraphina_lod1.iqm
models/player/seraphina_lod1.iqm.framegroups
models/player/seraphina_lod2.iqm
models/player/seraphina_lod2.iqm.framegroups
models/player/seraphinamasked.iqm
models/player/seraphinamasked.iqm.framegroups
models/player/seraphinamasked_lod1.iqm
models/player/seraphinamasked_lod1.iqm.framegroups
models/player/seraphinamasked_lod2.iqm
models/player/seraphinamasked_lod2.iqm.framegroups
models/player/umbra.iqm
models/player/umbra.iqm.framegroups
models/player/umbra_lod1.iqm [new file with mode: 0644]
models/player/umbra_lod1.iqm.framegroups [new file with mode: 0644]
models/player/umbra_lod2.iqm [new file with mode: 0644]
models/player/umbra_lod2.iqm.framegroups [new file with mode: 0644]
models/relics/relic.md3 [new file with mode: 0644]
models/relics/relic.md3.framegroups [new file with mode: 0644]
models/relics/relic.md3_0.skin [new file with mode: 0644]
models/relics/relic.md3_1.skin [new file with mode: 0644]
models/relics/relic.md3_10.skin [new file with mode: 0644]
models/relics/relic.md3_11.skin [new file with mode: 0644]
models/relics/relic.md3_12.skin [new file with mode: 0644]
models/relics/relic.md3_13.skin [new file with mode: 0644]
models/relics/relic.md3_14.skin [new file with mode: 0644]
models/relics/relic.md3_15.skin [new file with mode: 0644]
models/relics/relic.md3_2.skin [new file with mode: 0644]
models/relics/relic.md3_3.skin [new file with mode: 0644]
models/relics/relic.md3_4.skin [new file with mode: 0644]
models/relics/relic.md3_5.skin [new file with mode: 0644]
models/relics/relic.md3_6.skin [new file with mode: 0644]
models/relics/relic.md3_7.skin [new file with mode: 0644]
models/relics/relic.md3_8.skin [new file with mode: 0644]
models/relics/relic.md3_9.skin [new file with mode: 0644]
models/relics/relic.tga [new file with mode: 0644]
models/relics/relic_gloss.tga [new file with mode: 0644]
models/relics/relic_glow.tga [new file with mode: 0644]
models/relics/relic_norm.tga [new file with mode: 0644]
models/relics/relic_reflect.tga [new file with mode: 0644]
models/relics/relic_ring.tga [new file with mode: 0644]
models/relics/relic_ring_glow.tga [new file with mode: 0644]
models/relics/sign_ammo.tga [new file with mode: 0644]
models/relics/sign_ammo_glow.tga [new file with mode: 0644]
models/relics/sign_damage.tga [new file with mode: 0644]
models/relics/sign_damage_glow.tga [new file with mode: 0644]
models/relics/sign_disability.tga [new file with mode: 0644]
models/relics/sign_disability_glow.tga [new file with mode: 0644]
models/relics/sign_firingspeed.tga [new file with mode: 0644]
models/relics/sign_firingspeed_glow.tga [new file with mode: 0644]
models/relics/sign_flight.tga [new file with mode: 0644]
models/relics/sign_flight_glow.tga [new file with mode: 0644]
models/relics/sign_invisible.tga [new file with mode: 0644]
models/relics/sign_invisible_glow.tga [new file with mode: 0644]
models/relics/sign_jump.tga [new file with mode: 0644]
models/relics/sign_jump_glow.tga [new file with mode: 0644]
models/relics/sign_radioactive.tga [new file with mode: 0644]
models/relics/sign_radioactive_glow.tga [new file with mode: 0644]
models/relics/sign_regeneration.tga [new file with mode: 0644]
models/relics/sign_regeneration_glow.tga [new file with mode: 0644]
models/relics/sign_resistance.tga [new file with mode: 0644]
models/relics/sign_resistance_glow.tga [new file with mode: 0644]
models/relics/sign_resurrection.tga [new file with mode: 0644]
models/relics/sign_resurrection_glow.tga [new file with mode: 0644]
models/relics/sign_speed.tga [new file with mode: 0644]
models/relics/sign_speed_glow.tga [new file with mode: 0644]
models/relics/sign_splashdamage.tga [new file with mode: 0644]
models/relics/sign_splashdamage_glow.tga [new file with mode: 0644]
models/relics/sign_teamboost.tga [new file with mode: 0644]
models/relics/sign_teamboost_glow.tga [new file with mode: 0644]
models/relics/sign_vampire.tga [new file with mode: 0644]
models/relics/sign_vampire_glow.tga [new file with mode: 0644]
models/relics/sign_vengeance.tga [new file with mode: 0644]
models/relics/sign_vengeance_glow.tga [new file with mode: 0644]
qcsrc/client/Defs.qc
qcsrc/client/Main.qc
qcsrc/client/View.qc
qcsrc/client/autocvars.qh
qcsrc/client/csqc_builtins.qc
qcsrc/client/hud.qc
qcsrc/client/hud.qh
qcsrc/client/hud_config.qc [new file with mode: 0644]
qcsrc/client/main.qh
qcsrc/client/miscfunctions.qc
qcsrc/client/movetypes.qc
qcsrc/client/progs.src
qcsrc/client/scoreboard.qc
qcsrc/client/shownames.qc [new file with mode: 0644]
qcsrc/client/shownames.qh [new file with mode: 0644]
qcsrc/client/teamplay.qc
qcsrc/client/teamplay.qh [new file with mode: 0644]
qcsrc/client/teamradar.qc
qcsrc/common/constants.qh
qcsrc/common/gamecommand.qc
qcsrc/common/mapinfo.qc
qcsrc/common/util.qc
qcsrc/common/util.qh
qcsrc/menu/classes.c
qcsrc/menu/item/dialog.c
qcsrc/menu/menu.qc
qcsrc/menu/oo/base.h
qcsrc/menu/xonotic/dialog_hudpanel_ammo.c
qcsrc/menu/xonotic/dialog_hudpanel_chat.c
qcsrc/menu/xonotic/dialog_hudpanel_engineinfo.c
qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c
qcsrc/menu/xonotic/dialog_hudpanel_infomessages.c
qcsrc/menu/xonotic/dialog_hudpanel_notification.c
qcsrc/menu/xonotic/dialog_hudpanel_physics.c [new file with mode: 0644]
qcsrc/menu/xonotic/dialog_hudpanel_powerups.c
qcsrc/menu/xonotic/dialog_hudpanel_radar.c
qcsrc/menu/xonotic/dialog_hudpanel_score.c
qcsrc/menu/xonotic/dialog_hudpanel_timer.c
qcsrc/menu/xonotic/dialog_hudpanel_vote.c
qcsrc/menu/xonotic/dialog_hudpanel_weapons.c
qcsrc/menu/xonotic/dialog_hudsetup_exit.c
qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c
qcsrc/menu/xonotic/dialog_settings_input.c
qcsrc/menu/xonotic/dialog_settings_misc.c
qcsrc/menu/xonotic/dialog_settings_video.c
qcsrc/menu/xonotic/mainwindow.c
qcsrc/menu/xonotic/util.qc
qcsrc/menu/xonotic/util.qh
qcsrc/server/arena.qc
qcsrc/server/autocvars.qh
qcsrc/server/bot/bot.qc
qcsrc/server/bot/bot.qh
qcsrc/server/bot/havocbot/havocbot.qc
qcsrc/server/bot/navigation.qc
qcsrc/server/bot/navigation.qh
qcsrc/server/cl_client.qc
qcsrc/server/cl_physics.qc
qcsrc/server/cl_player.qc
qcsrc/server/cl_weapons.qc
qcsrc/server/cl_weaponsystem.qc
qcsrc/server/clientcommands.qc
qcsrc/server/ctf.qc
qcsrc/server/defs.qh
qcsrc/server/domination.qc
qcsrc/server/extensions.qh
qcsrc/server/frags.txt [deleted file]
qcsrc/server/func_breakable.qc
qcsrc/server/g_swamp.qc [deleted file]
qcsrc/server/g_world.qc
qcsrc/server/miscfunctions.qc
qcsrc/server/mutators/gamemode_freezetag.qc
qcsrc/server/progs.src
qcsrc/server/sv_stats.qc [deleted file]
qcsrc/server/sys.qh
qcsrc/server/t_teleporters.qc
qcsrc/server/todo.txt
qcsrc/server/w_common.qc
qcsrc/server/w_hagar.qc
qcsrc/server/w_hlac.qc
qcsrc/server/w_minelayer.qc
qcsrc/server/w_nex.qc
qcsrc/server/w_seeker.qc
qcsrc/server/w_shotgun.qc
qcsrc/server/w_sniperrifle.qc
qcsrc/warpzonelib/client.qc
qcsrc/warpzonelib/client.qh
qcsrc/warpzonelib/server.qc
qcsrc/warpzonelib/server.qh
scripts/relics.shader [new file with mode: 0644]
sound/relics/relic_effect.wav [new file with mode: 0644]
sound/weapons/hagar_beep.ogg [new file with mode: 0644]
sound/weapons/hagar_load.ogg [new file with mode: 0644]
textures/campingrifle.tga
textures/campingrifle_glow.tga
textures/campingrifle_pants.tga [deleted file]
textures/campingrifle_shirt.tga [deleted file]
textures/crylink.tga
textures/crylink_gloss.tga
textures/crylink_glow.jpg
textures/crylink_pants.tga [deleted file]
textures/crylink_reflect.tga
textures/electro.tga
textures/electro_glow.tga
textures/electro_pants.tga [deleted file]
textures/electro_plasma.tga
textures/electro_plasma_glow.tga
textures/glauncher_glow.tga [new file with mode: 0644]
textures/glauncher_pants.tga [deleted file]
textures/glscope.tga
textures/glscope_glow.tga
textures/hagar2.tga
textures/hagar2_glow.tga
textures/hagar2_pants.tga [deleted file]
textures/hlac_accessory.tga
textures/hlac_accessory_glow.tga [new file with mode: 0644]
textures/hlac_accessory_pants.tga [deleted file]
textures/hlac_body.tga
textures/hlac_body_glow.tga
textures/hlac_body_pants.tga [deleted file]
textures/hlac_body_shirt.tga
textures/hlac_metal.tga
textures/hlac_metal_glow.tga
textures/hlac_plasma.tga
textures/hookgun_pants.tga [deleted file]
textures/hookgun_shirt.tga [new file with mode: 0644]
textures/laser.tga
textures/laser_glow.tga
textures/laser_pants.tga [deleted file]
textures/minelayer.tga
textures/minelayer_glow.tga
textures/nex.tga
textures/nex_glow.tga
textures/nex_pants.tga [deleted file]
textures/portalgun.tga
textures/portalgun_glow.tga
textures/rl_glow.tga [new file with mode: 0644]
textures/rl_pants.tga [deleted file]
textures/seeker.tga
textures/seeker_glow.tga
textures/seeker_pants.tga [deleted file]
textures/seeker_shirt.tga [new file with mode: 0644]
textures/shotgun2_glow.tga
textures/shotgun2_shirt.tga
textures/shotgun_sight.tga
textures/shotgun_sight_glow.tga [new file with mode: 0644]
textures/uzi_glow.tga
textures/uzi_pants.tga [deleted file]
tooltips.db
xonotic-credits.txt

index caab47a809b19cdc078626da15943e619515b5a8..53c5cf5b70d42fb993cfb065d6ba26de28d6c301 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -5,7 +5,7 @@ ZIP ?= 7za a -tzip -mx=9
 ZIPEXCLUDE ?= -x\!*.pk3 -xr\!\.svn -x\!qcsrc
 DIFF ?= diff
 
-FTEQCCFLAGS_WATERMARK ?= -DWATERMARK='"^1$(shell git describe) TEST BUILD"' -DCVAR_POPCON
+FTEQCCFLAGS_WATERMARK ?= -DWATERMARK='"$(shell git describe)"' -DCVAR_POPCON
 FTEQCCFLAGS ?= -Werror -Wno-Q302 -O3 -Ono-c -Ono-cs $(FTEQCCFLAGS_EXTRA) $(FTEQCCFLAGS_WATERMARK)
 FTEQCCFLAGS_PROGS ?=
 FTEQCCFLAGS_MENU ?=
index 269b07c526ce3dc2293a7cf67e38bb2c81066359..e4c669663324bca895414a5e8e954451199aaa02 100644 (file)
@@ -21,6 +21,9 @@ seta hud_progressbar_health_color "" "R G B vector of the progress bar backgroun
 seta hud_progressbar_armor_color "" "R G B vector of the progress bar background color"
 seta hud_progressbar_fuel_color "" "R G B vector of the progress bar background color"
 seta hud_progressbar_nexball_color "" "R G B vector of the progress bar background color"
+seta hud_progressbar_speed_color "" "R G B vector of the progress bar background color"
+seta hud_progressbar_acceleration_color "" "R G B vector of the progress bar background color"
+seta hud_progressbar_acceleration_neg_color "" "R G B vector of the progress bar background color"
 
 seta _hud_panelorder "" "contains order in which panels are to be drawn"
 
@@ -70,8 +73,8 @@ seta hud_panel_powerups "" "enable/disable this panel"
 seta hud_panel_powerups_pos "" "position of this panel"
 seta hud_panel_powerups_size "" "size of this panel"
 seta hud_panel_powerups_flip "" "flip strength/shield positions"
-seta hud_panel_powerups_baralign "" "0 = align bars to the left, 1 = align bars to the right, 2 = align right bar to the right, 3 = align left bar to the right"
-seta hud_panel_powerups_iconalign "" "0 = align icons to the left, 1 = align icons to the right, 2 = align right icon to the right, 3 = align left icon to the right"
+seta hud_panel_powerups_baralign "" "0 = align bars to the left, 1 = align bars to the right, 2 = align only left bar to the right, 3 = align only right bar to the right"
+seta hud_panel_powerups_iconalign "" "0 = align icons to the left, 1 = align icons to the right, 2 = align only left icon to the right, 3 = align only right icon to the right"
 seta hud_panel_powerups_bg "" "if set to something else than \"\" = override default background"
 seta hud_panel_powerups_bg_color "" "if set to something else than \"\" = override default panel background color"
 seta hud_panel_powerups_bg_color_team "" "override panel color with team color in team based games"
@@ -87,8 +90,8 @@ seta hud_panel_healtharmor "" "enable/disable this panel, 2 = combined health/ar
 seta hud_panel_healtharmor_pos "" "position of this panel"
 seta hud_panel_healtharmor_size "" "size of this panel"
 seta hud_panel_healtharmor_flip "" "flip health/armor positions"
-seta hud_panel_healtharmor_baralign "" "0 = align bars to the left, 1 = align bars to the right, 2 = align right bar to the right, 3 = align left bar to the right"
-seta hud_panel_healtharmor_iconalign "" "0 = align icons to the left, 1 = align icons to the right, 2 = align right icon to the right, 3 = align left icon to the right"
+seta hud_panel_healtharmor_baralign "" "0 = align bars to the left, 1 = align bars to the right, 2 = align only left bar to the right, 3 = align only right bar to the right"
+seta hud_panel_healtharmor_iconalign "" "0 = align icons to the left, 1 = align icons to the right, 2 = align only left icon to the right, 3 = align only right icon to the right"
 seta hud_panel_healtharmor_bg "" "if set to something else than \"\" = override default background"
 seta hud_panel_healtharmor_bg_color "" "if set to something else than \"\" = override default panel background color"
 seta hud_panel_healtharmor_bg_color_team "" "override panel color with team color in team based games"
@@ -110,6 +113,7 @@ seta hud_panel_notify_bg_alpha "" "if set to something else than \"\" = override
 seta hud_panel_notify_bg_border "" "if set to something else than \"\" = override default size of border around the background"
 seta hud_panel_notify_bg_padding "" "if set to something else than \"\" = override default padding of contents from border"
 seta hud_panel_notify_flip "" "order the list top to bottom instead of bottom to top"
+seta hud_panel_notify_fontsize "" "multiplier for the font size used for player names in the panel"
 seta hud_panel_notify_print "" "also con_notify print the messages that are shown on the notify panel"
 
 seta hud_panel_timer "" "enable/disable this panel"
@@ -195,7 +199,7 @@ seta hud_panel_chat_bg_alpha "" "if set to something else than \"\" = override d
 seta hud_panel_chat_bg_border "" "if set to something else than \"\" = override default size of border around the background"
 seta hud_panel_chat_bg_padding "" "if set to something else than \"\" = override default padding of contents from border"
 
-seta hud_panel_engineinfo "" "enable/disable this panel
+seta hud_panel_engineinfo "" "enable/disable this panel"
 seta hud_panel_engineinfo_pos "" "position of this base of the panel"
 seta hud_panel_engineinfo_size "" "size of this panel"
 seta hud_panel_engineinfo_bg "" "if set to something else than \"\" = override default background"
@@ -205,7 +209,7 @@ seta hud_panel_engineinfo_bg_alpha "" "if set to something else than \"\" = over
 seta hud_panel_engineinfo_bg_border "" "if set to something else than \"\" = override default size of border around the background"
 seta hud_panel_engineinfo_bg_padding "" "if set to something else than \"\" = override default padding of contents from border"
 
-seta hud_panel_infomessages "" "enable/disable this panel
+seta hud_panel_infomessages "" "enable/disable this panel"
 seta hud_panel_infomessages_pos "" "position of this base of the panel"
 seta hud_panel_infomessages_size "" "size of this panel"
 seta hud_panel_infomessages_bg "" "if set to something else than \"\" = override default background"
@@ -215,3 +219,18 @@ seta hud_panel_infomessages_bg_alpha "" "if set to something else than \"\" = ov
 seta hud_panel_infomessages_bg_border "" "if set to something else than \"\" = override default size of border around the background"
 seta hud_panel_infomessages_bg_padding "" "if set to something else than \"\" = override default padding of contents from border"
 seta hud_panel_infomessages_flip "" "1 = align the items to the right"
+
+seta hud_panel_physics "" "enable/disable this panel, 1 = show if not observing, 2 = show always"
+seta hud_panel_physics_pos "" "position of this base of the panel"
+seta hud_panel_physics_size "" "size of this panel"
+seta hud_panel_physics_bg "" "if set to something else than \"\" = override default background"
+seta hud_panel_physics_bg_color "" "if set to something else than \"\" = override default panel background color"
+seta hud_panel_physics_bg_color_team "" "override panel color with team color in team based games"
+seta hud_panel_physics_bg_alpha "" "if set to something else than \"\" = override default panel background alpha"
+seta hud_panel_physics_bg_border "" "if set to something else than \"\" = override default size of border around the background"
+seta hud_panel_physics_bg_padding "" "if set to something else than \"\" = override default padding of contents from border"
+seta hud_panel_physics_baralign "" "0 = align bars to the left, 1 = align bars to the right, 2 = align only left bar to the right, 3 = align only right bar to the right, 4 = align bars to the center"
+seta hud_panel_physics_flip "" "flip speed/acceleration positions"
+seta hud_panel_physics_progressbar "" "enable progressbar in panel (2 = only for speed; 3 = only for acceleration)"
+seta hud_panel_physics_acceleration_progressbar_mode "" "0 = progressbar increases from the center to the right if the acceleration is positive, to the left if it's negative; 1 = progressbar increases from the border in the same direction for both positive and negative accelerations"
+seta hud_panel_physics_text "" "show text in panel (2 = only for speed; 3 = only for acceleration)"
index 482edc1426a19159d5719dd8262a7b859721bf48..ea66cd177f6f04e0e947e3e5e5415f0bfd1a0291 100644 (file)
@@ -262,6 +262,7 @@ set g_balance_shotgun_secondary_melee_delay 0.35 // match the anim
 set g_balance_shotgun_secondary_melee_range 60
 set g_balance_shotgun_secondary_melee_swing 50
 set g_balance_shotgun_secondary_melee_time 0.1
+set g_balance_shotgun_secondary_melee_no_doubleslap 1
 set g_balance_shotgun_secondary_damage 115
 set g_balance_shotgun_secondary_force 150
 set g_balance_shotgun_secondary_refire 1.1
@@ -538,6 +539,12 @@ set g_balance_hagar_primary_lifetime 30
 set g_balance_hagar_primary_refire 0.15
 set g_balance_hagar_primary_ammo 1
 set g_balance_hagar_secondary 1
+set g_balance_hagar_secondary_load 0
+set g_balance_hagar_secondary_load_speed 0.6
+set g_balance_hagar_secondary_load_max 4
+set g_balance_hagar_secondary_load_hold 0
+set g_balance_hagar_secondary_load_releasedeath 1
+set g_balance_hagar_secondary_load_abort 1
 set g_balance_hagar_secondary_damage 37
 set g_balance_hagar_secondary_edgedamage 15
 set g_balance_hagar_secondary_force 100
@@ -645,6 +652,7 @@ set g_balance_hlac_reload_time 2
 // {{{ sniperrifle
 set g_balance_sniperrifle_bursttime 0
 set g_balance_sniperrifle_primary_tracer 0
+set g_balance_sniperrifle_primary_shots 1
 set g_balance_sniperrifle_primary_damage 60
 set g_balance_sniperrifle_primary_headshotaddeddamage 100
 set g_balance_sniperrifle_primary_spread 0
@@ -660,6 +668,7 @@ set g_balance_sniperrifle_primary_bullethail 0 // empty magazine on shot
 set g_balance_sniperrifle_secondary 1
 set g_balance_sniperrifle_secondary_reload 0
 set g_balance_sniperrifle_secondary_tracer 0
+set g_balance_sniperrifle_secondary_shots 1
 set g_balance_sniperrifle_secondary_damage 35
 set g_balance_sniperrifle_secondary_headshotaddeddamage 15 // 50 damage only on head
 set g_balance_sniperrifle_secondary_spread 0.008
index 7232f876ce61ee24989c7449ad54f2cb02df6dd4..bd72a707171645065832e2d1ed644c5a80353ef2 100644 (file)
@@ -262,6 +262,7 @@ set g_balance_shotgun_secondary_melee_delay 0.35 // match the anim
 set g_balance_shotgun_secondary_melee_range 85
 set g_balance_shotgun_secondary_melee_swing 50
 set g_balance_shotgun_secondary_melee_time 0.1
+set g_balance_shotgun_secondary_melee_no_doubleslap 1
 set g_balance_shotgun_secondary_damage 84
 set g_balance_shotgun_secondary_force 147
 set g_balance_shotgun_secondary_refire 1.1
@@ -538,6 +539,12 @@ set g_balance_hagar_primary_lifetime 30
 set g_balance_hagar_primary_refire 0.15
 set g_balance_hagar_primary_ammo 2
 set g_balance_hagar_secondary 1
+set g_balance_hagar_secondary_load 0
+set g_balance_hagar_secondary_load_speed 0.6
+set g_balance_hagar_secondary_load_max 4
+set g_balance_hagar_secondary_load_hold 0
+set g_balance_hagar_secondary_load_releasedeath 1
+set g_balance_hagar_secondary_load_abort 1
 set g_balance_hagar_secondary_damage 43
 set g_balance_hagar_secondary_edgedamage 15
 set g_balance_hagar_secondary_force 100
@@ -645,6 +652,7 @@ set g_balance_hlac_reload_time 2
 // {{{ sniperrifle
 set g_balance_sniperrifle_bursttime 0.85 // 0.35 - 0.1 + 0.35 - 0.1 + 0.35 = three secondaries
 set g_balance_sniperrifle_primary_tracer 0
+set g_balance_sniperrifle_primary_shots 1
 set g_balance_sniperrifle_primary_damage 75
 set g_balance_sniperrifle_primary_headshotaddeddamage 90
 set g_balance_sniperrifle_primary_spread 0
@@ -660,6 +668,7 @@ set g_balance_sniperrifle_primary_bullethail 0 // empty magazine on shot
 set g_balance_sniperrifle_secondary 1
 set g_balance_sniperrifle_secondary_reload 0
 set g_balance_sniperrifle_secondary_tracer 0
+set g_balance_sniperrifle_secondary_shots 1
 set g_balance_sniperrifle_secondary_damage 40
 set g_balance_sniperrifle_secondary_headshotaddeddamage 20
 set g_balance_sniperrifle_secondary_spread 0.008
index 187362d70f59a13239fda7c178b0e85cb8be0ed1..441b604020d6636fb1d90ea0ffcf1c25889d8765 100644 (file)
@@ -7,13 +7,13 @@ set g_start_weapon_minelayer -1 "0 = never provide the weapon, 1 = always provid
 set g_start_weapon_electro -1 "0 = never provide the weapon, 1 = always provide the weapon, -1 = game mode default, -2 = provide the weapon in ca and lms"
 set g_start_weapon_crylink -1 "0 = never provide the weapon, 1 = always provide the weapon, -1 = game mode default, -2 = provide the weapon in ca and lms"
 set g_start_weapon_nex -1 "0 = never provide the weapon, 1 = always provide the weapon, -1 = game mode default, -2 = provide the weapon in ca and lms"
-set g_start_weapon_hagar 0 "0 = never provide the weapon, 1 = always provide the weapon, -1 = game mode default, -2 = provide the weapon in ca and lms" // UNTIL IT CAN BE REMOVED FROM CODE
+set g_start_weapon_hagar -1 "0 = never provide the weapon, 1 = always provide the weapon, -1 = game mode default, -2 = provide the weapon in ca and lms" // UNTIL IT CAN BE REMOVED FROM CODE
 set g_start_weapon_rocketlauncher -1 "0 = never provide the weapon, 1 = always provide the weapon, -1 = game mode default, -2 = provide the weapon in ca and lms"
 set g_start_weapon_minstanex -1 "0 = never provide the weapon, 1 = always provide the weapon, -1 = game mode default, -2 = provide the weapon in ca and lms"
 set g_start_weapon_porto -1 "0 = never provide the weapon, 1 = always provide the weapon, -1 = game mode default, -2 = provide the weapon in ca and lms"
 set g_start_weapon_hook -1 "0 = never provide the weapon, 1 = always provide the weapon, -1 = game mode default, -2 = provide the weapon in ca and lms"
-set g_start_weapon_hlac 0 "0 = never provide the weapon, 1 = always provide the weapon, -1 = game mode default, -2 = provide the weapon in ca and lms" // UNTIL IT CAN BE REMOVED FROM CODE
-set g_start_weapon_sniperrifle 0 "0 = never provide the weapon, 1 = always provide the weapon, -1 = game mode default, -2 = provide the weapon in ca and lms" // UNTIL IT CAN BE REMOVED FROM CODE
+set g_start_weapon_hlac -1 "0 = never provide the weapon, 1 = always provide the weapon, -1 = game mode default, -2 = provide the weapon in ca and lms" // UNTIL IT CAN BE REMOVED FROM CODE
+set g_start_weapon_sniperrifle -1 "0 = never provide the weapon, 1 = always provide the weapon, -1 = game mode default, -2 = provide the weapon in ca and lms" // UNTIL IT CAN BE REMOVED FROM CODE
 set g_start_weapon_tuba -1 "0 = never provide the weapon, 1 = always provide the weapon, -1 = game mode default, -2 = provide the weapon in ca and lms"
 set g_start_weapon_fireball -1 "0 = never provide the weapon, 1 = always provide the weapon, -1 = game mode default, -2 = provide the weapon in ca and lms"
 set g_start_weapon_seeker -1 "0 = never provide the weapon, 1 = always provide the weapon, -1 = game mode default, -2 = provide the weapon in ca and lms"
@@ -115,7 +115,7 @@ set g_balance_health_regenlinear 5
 set g_balance_pause_health_regen 5
 set g_balance_pause_health_regen_spawn 0
 set g_balance_health_rot 0.04
-set g_balance_health_rotlinear 2
+set g_balance_health_rotlinear 1
 set g_balance_pause_health_rot 0.5
 set g_balance_pause_health_rot_spawn 5
 set g_balance_health_regenstable 100
@@ -124,7 +124,7 @@ set g_balance_health_limit 999
 set g_balance_armor_regen 0
 set g_balance_armor_regenlinear 0
 set g_balance_armor_rot 0.04
-set g_balance_armor_rotlinear 2
+set g_balance_armor_rotlinear 1
 set g_balance_pause_armor_rot 1
 set g_balance_pause_armor_rot_spawn 5
 set g_balance_armor_regenstable 100
@@ -262,6 +262,7 @@ set g_balance_shotgun_secondary_melee_delay 0.35 // match the anim
 set g_balance_shotgun_secondary_melee_range 85
 set g_balance_shotgun_secondary_melee_swing 50
 set g_balance_shotgun_secondary_melee_time 0.1
+set g_balance_shotgun_secondary_melee_no_doubleslap 1
 set g_balance_shotgun_secondary_damage 115
 set g_balance_shotgun_secondary_force 150
 set g_balance_shotgun_secondary_refire 1.1
@@ -538,6 +539,12 @@ set g_balance_hagar_primary_lifetime 5
 set g_balance_hagar_primary_refire 0.15
 set g_balance_hagar_primary_ammo 1
 set g_balance_hagar_secondary 1
+set g_balance_hagar_secondary_load 0
+set g_balance_hagar_secondary_load_speed 0.6
+set g_balance_hagar_secondary_load_max 4
+set g_balance_hagar_secondary_load_hold 0
+set g_balance_hagar_secondary_load_releasedeath 1
+set g_balance_hagar_secondary_load_abort 1
 set g_balance_hagar_secondary_damage 35
 set g_balance_hagar_secondary_edgedamage 17.5
 set g_balance_hagar_secondary_force 100
@@ -645,6 +652,7 @@ set g_balance_hlac_reload_time 2
 // {{{ sniperrifle
 set g_balance_sniperrifle_bursttime 0
 set g_balance_sniperrifle_primary_tracer 1
+set g_balance_sniperrifle_primary_shots 1
 set g_balance_sniperrifle_primary_damage 60
 set g_balance_sniperrifle_primary_headshotaddeddamage 50
 set g_balance_sniperrifle_primary_spread 0
@@ -660,6 +668,7 @@ set g_balance_sniperrifle_primary_bullethail 0 // empty magazine on shot
 set g_balance_sniperrifle_secondary 0 // Nex and sniper rifle should never be on the same map, so this (zoom on secondary) is okay 
 set g_balance_sniperrifle_secondary_reload 0
 set g_balance_sniperrifle_secondary_tracer 0
+set g_balance_sniperrifle_secondary_shots 1
 set g_balance_sniperrifle_secondary_damage 25
 set g_balance_sniperrifle_secondary_headshotaddeddamage 35
 set g_balance_sniperrifle_secondary_spread 0.01
index 55dde194b70e3fbf88d8ff2ea3621570dceb0ddc..5bffd7df9a9067f4fd498e468628d334fdf55b2f 100644 (file)
@@ -262,6 +262,7 @@ set g_balance_shotgun_secondary_melee_delay 0.35 // match the anim
 set g_balance_shotgun_secondary_melee_range 85
 set g_balance_shotgun_secondary_melee_swing 50
 set g_balance_shotgun_secondary_melee_time 0.1
+set g_balance_shotgun_secondary_melee_no_doubleslap 0
 set g_balance_shotgun_secondary_damage 110
 set g_balance_shotgun_secondary_force 150
 set g_balance_shotgun_secondary_refire 1.1
@@ -538,15 +539,21 @@ set g_balance_hagar_primary_lifetime 5
 set g_balance_hagar_primary_refire 0.12
 set g_balance_hagar_primary_ammo 1
 set g_balance_hagar_secondary 1
-set g_balance_hagar_secondary_damage 14
-set g_balance_hagar_secondary_edgedamage 6
-set g_balance_hagar_secondary_force 70
+set g_balance_hagar_secondary_load 0
+set g_balance_hagar_secondary_load_speed 0.6
+set g_balance_hagar_secondary_load_max 4
+set g_balance_hagar_secondary_load_hold 0
+set g_balance_hagar_secondary_load_releasedeath 1
+set g_balance_hagar_secondary_load_abort 1
+set g_balance_hagar_secondary_damage 14 // default for _load: 32
+set g_balance_hagar_secondary_edgedamage 6 // default for _load: 10
+set g_balance_hagar_secondary_force 70 // default for _load: 160
 set g_balance_hagar_secondary_radius 125
-set g_balance_hagar_secondary_spread 0.15
+set g_balance_hagar_secondary_spread 0.15 // default for _load: 0.08
 set g_balance_hagar_secondary_speed 1800
 set g_balance_hagar_secondary_lifetime_min 5
 set g_balance_hagar_secondary_lifetime_rand 0
-set g_balance_hagar_secondary_refire 0.12
+set g_balance_hagar_secondary_refire 0.12 // default for _load: 0.8
 set g_balance_hagar_secondary_ammo 1
 set g_balance_hagar_reload_ammo 0 //default: 25
 set g_balance_hagar_reload_time 2
@@ -645,6 +652,7 @@ set g_balance_hlac_reload_time 2
 // {{{ sniperrifle
 set g_balance_sniperrifle_bursttime 0
 set g_balance_sniperrifle_primary_tracer 1
+set g_balance_sniperrifle_primary_shots 1
 set g_balance_sniperrifle_primary_damage 60
 set g_balance_sniperrifle_primary_headshotaddeddamage 60
 set g_balance_sniperrifle_primary_spread 0
@@ -660,6 +668,7 @@ set g_balance_sniperrifle_primary_bullethail 0 // empty magazine on shot
 set g_balance_sniperrifle_secondary 1
 set g_balance_sniperrifle_secondary_reload 1
 set g_balance_sniperrifle_secondary_tracer 0
+set g_balance_sniperrifle_secondary_shots 1
 set g_balance_sniperrifle_secondary_damage 42
 set g_balance_sniperrifle_secondary_headshotaddeddamage 42
 set g_balance_sniperrifle_secondary_spread 0
index 72f938ba523498858ec55520caa9169f314d6c6d..8a09f03e514a7a3299c23a7e71e26f928b7e6b61 100644 (file)
@@ -262,6 +262,7 @@ set g_balance_shotgun_secondary_melee_delay 0.35 // match the anim
 set g_balance_shotgun_secondary_melee_range 85
 set g_balance_shotgun_secondary_melee_swing 50
 set g_balance_shotgun_secondary_melee_time 0.1
+set g_balance_shotgun_secondary_melee_no_doubleslap 1
 set g_balance_shotgun_secondary_damage 110
 set g_balance_shotgun_secondary_force 150
 set g_balance_shotgun_secondary_refire 1.1
@@ -537,6 +538,12 @@ set g_balance_hagar_primary_lifetime 30
 set g_balance_hagar_primary_refire 0.2
 set g_balance_hagar_primary_ammo 1
 set g_balance_hagar_secondary 1
+set g_balance_hagar_secondary_load 0
+set g_balance_hagar_secondary_load_speed 0.6
+set g_balance_hagar_secondary_load_max 4
+set g_balance_hagar_secondary_load_hold 0
+set g_balance_hagar_secondary_load_releasedeath 1
+set g_balance_hagar_secondary_load_abort 1
 set g_balance_hagar_secondary_damage 30
 set g_balance_hagar_secondary_edgedamage 15
 set g_balance_hagar_secondary_force 50
@@ -644,6 +651,7 @@ set g_balance_hlac_reload_time 2
 // {{{ sniperrifle
 set g_balance_sniperrifle_bursttime 0
 set g_balance_sniperrifle_primary_tracer 1
+set g_balance_sniperrifle_primary_shots 1
 set g_balance_sniperrifle_primary_damage 40
 set g_balance_sniperrifle_primary_headshotaddeddamage 100
 set g_balance_sniperrifle_primary_spread 0
@@ -659,6 +667,7 @@ set g_balance_sniperrifle_primary_bullethail 0 // empty magazine on shot
 set g_balance_sniperrifle_secondary 1
 set g_balance_sniperrifle_secondary_reload 0
 set g_balance_sniperrifle_secondary_tracer 0
+set g_balance_sniperrifle_secondary_shots 1
 set g_balance_sniperrifle_secondary_damage 50
 set g_balance_sniperrifle_secondary_headshotaddeddamage 50 // 50 damage only on head
 set g_balance_sniperrifle_secondary_spread 0
index 6cfd13dbbdaa120ae6ab63ab9793cad9491aedec..fb1f68f32a64fecb6dd70b1334372defff54510c 100755 (executable)
@@ -16,15 +16,113 @@ for VM in menu csprogs; do
        } | xgettext -LC -k_ -f- --from-code utf-8 -o "$VM".dat.pot >&2
        for X in "$VM".dat.*.po; do
                [ -f "$X" ] || continue
+               for Y in ~/check-translations/"$X".*; do
+                       [ -f "$Y" ] || continue
+                       msgcat -F --use-first "$Y" "$X" > "$X".new
+                       mv "$X".new "$X"
+               done
                msgmerge -F -U "$X" "$VM".dat.pot >&2
-               todo=$(
-                       msgattrib --untranslated "$X" | grep -A 2147483647 "^#:"
-                       msgattrib --fuzzy "$X"        | grep -A 2147483647 "^#:"
-               )
-               if [ -n "$todo" ]; then
+               msgattrib --untranslated "$X" | grep . > "$X".untranslated || rm -f "$X".untranslated
+               msgattrib --fuzzy "$X"        | grep . > "$X".fuzzy        || rm -f "$X".fuzzy
+               nu=$((`grep -c ^#: "$X".untranslated` + 0))
+               nf=$((`grep -c ^#: "$X".fuzzy`        + 0))
+               n=$(($nu + $nf))
+               if [ $n -gt 0 ]; then
                        echo "TODO for translation $X:"
-                       echo "$todo"
-                       echo
+                       echo "Untranslated: $nu"
+                       echo "Fuzzy:        $nf"
+                       ltr=`grep '^"Last-Translator: ' "$X" | cut -d ' ' -f 2- | cut -d '\\' -f 1 | egrep -v '<LL@li.org>|<EMAIL@ADDRESS>'`
+                       ltm=`grep '^"Language-Team: ' "$X" | cut -d ' ' -f 2- | cut -d '\\' -f 1 | egrep -v '<LL@li.org>|<EMAIL@ADDRESS>'`
+                       echo "Translators:  $ltr, $ltm"
+                       case "$ltr" in
+                               '')
+                                       to=$ltm
+                                       cc=
+                                       ;;
+                               *)
+                                       to=$ltr
+                                       if [ x"$ltr" = x"$ltm" ]; then
+                                               cc=
+                                       else
+                                               cc=$ltm
+                                       fi
+                                       ;;
+                       esac
+                       if [ -n "$to" ]; then
+                               echo "To:           $to"
+                       fi
+                       if [ -n "$cc" ]; then
+                               echo "Cc:           $cc"
+                       fi
+                       if [ -n "$to" ]; then
+                               while :; do
+                                       echo "Send mail? [y/n]"
+                                       read -r yesno
+                                       case "$yesno" in
+                                               y)
+                                                       attach=
+                                                       if [ $nu -gt 0 ]; then
+                                                               attach="$attach $X.untranslated"
+                                                       fi
+                                                       if [ $nf -gt 0 ]; then
+                                                               attach="$attach $X.fuzzy"
+                                                       fi
+                                                       {
+                                                               cat <<EOF
+Hi,
+
+as you provided us with translations in the past, we kindly ask you
+to update the translation to match changes in the Xonotic source. Can
+you please work on them and provide updates to us?
+
+If you do not wish to be contacted for translation updates any more,
+please tell us in a reply to this message.
+
+EOF
+                                                               if [ $nu -gt 0 ]; then
+                                                                       cat <<EOF
+Attached to this message is a file
+$X.untranslated
+with $nu yet to be translated messages. Please translate them and reply
+with the file containing the translations in the "msgstr" fields.
+
+EOF
+                                                               fi
+                                                               if [ $nf -gt 0 ]; then
+                                                                       cat <<EOF
+Attached to this message is a file
+$X.fuzzy
+with $nf automatically generated translations. Please verify and/or fix
+them and reply with the file having been verified by you.
+
+EOF
+                                                               fi
+                                                               cat <<EOF
+Thanks in advance,
+
+Team Xonotic
+EOF
+                                                       } | mutt \
+                                                               -e "set from=\"divVerent@xonotic.org\"" \
+                                                               -e "set use_from=yes" \
+                                                               -e "set use_envelope_from=yes" \
+                                                               -s "Need update for translations: $X" \
+                                                               -c "$cc" \
+                                                               -b "divVerent@xonotic.org" \
+                                                               -a $attach -- \
+                                                               "$to"
+                                                       break
+                                                       ;;
+                                               n)
+                                                       break
+                                                       ;;
+                                       esac
+                               done
+                       fi
                fi
        done
+       for X in "$VM".dat.*.po.disabled; do
+               [ -f "$X" ] || continue
+               msgmerge -F -U "$X" "$VM".dat.pot >/dev/null 2>&1
+       done
 done
diff --git a/csprogs.dat.de.po b/csprogs.dat.de.po
new file mode 100644 (file)
index 0000000..e0e4449
--- /dev/null
@@ -0,0 +1,1775 @@
+# Xonotic CSQC
+# Copyright (C) 2011 Team Xonotic
+# This file is distributed under the same license as the Xonotic package.
+# Rudolf Polzer <divVerent@xonotic.org>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 0.1preview\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-04-30 10:06+0200\n"
+"PO-Revision-Date: 2011-04-20 10:46+0200\n"
+"Last-Translator: Rudolf Polzer <divVerent@xonotic.org>\n"
+"Language-Team: Rudolf Polzer <divVerent@xonotic.org>\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: qcsrc/client/Main.qc:30
+msgid "ERROR - MENU IS VISIBLE BUT NO MENU WAS DEFINED!"
+msgstr "FEHLER - MENÜ IST SICHTBAR ABER KEIN MENÜ WURDE DEFINIERT!"
+
+#: qcsrc/client/Main.qc:56
+msgid ""
+"^3Your engine build is outdated\n"
+"^3This Server uses a newer QC VM. Please update!\n"
+msgstr ""
+"^3Diese Engine ist veraltet.\n"
+"^3Dieser Server verwendet eine neuere QC VM. Bitte updaten!\n"
+
+#: qcsrc/client/Main.qc:66
+#, c-format
+msgid "^4CSQC Build information: ^1%s\n"
+msgstr "^4CSQC Build-Information: ^1%s (deutsch)\n"
+
+#: qcsrc/client/Main.qc:232 qcsrc/client/Main.qc:248
+#, c-format
+msgid "trying to switch to unsupported team %d\n"
+msgstr "es wurde versucht, in das nicht unterstützte Team %d zu wechseln"
+
+#: qcsrc/client/Main.qc:364 qcsrc/client/scoreboard.qc:241
+msgid "Usage:\n"
+msgstr "Syntax:\n"
+
+#: qcsrc/client/Main.qc:365
+msgid "hud_save configname   (saves to hud_skinname_configname.cfg)\n"
+msgstr "hud_save configname   (speichert als hud_skinname_configname.cfg)\n"
+
+#: qcsrc/client/Main.qc:512
+msgid "Usage: cl_cmd COMMAND..., where possible commands are:\n"
+msgstr "Syntax: cl_cmd BEFEHL..., wobei mögliche Befehle sind:\n"
+
+#: qcsrc/client/Main.qc:513
+msgid "  settemp cvar value\n"
+msgstr "  settemp Cvar Wert\n"
+
+#: qcsrc/client/Main.qc:514
+msgid "  scoreboard_columns_set ...\n"
+msgstr "  scoreboard_columns_set ...\n"
+
+#: qcsrc/client/Main.qc:515
+msgid "  scoreboard_columns_help\n"
+msgstr "  scoreboard_columns_help\n"
+
+#: qcsrc/client/Main.qc:720
+msgid "A CSQC entity changed its owner!\n"
+msgstr "Ein CSQC-Entity hat seinen Besitzer gewechselt!\n"
+
+#: qcsrc/client/Main.qc:934
+msgid "A CSQC entity changed its type!\n"
+msgstr "Ein CSQC-Entity hat seinen Typ gewechselt!\n"
+
+#: qcsrc/client/Main.qc:972
+#, c-format
+msgid "unknown entity type in CSQC_Ent_Update: %d\n"
+msgstr "unbekannter Entity-Typ in CSQC_Ent_Update: %d\n"
+
+#: qcsrc/client/Main.qc:1444
+#, c-format
+msgid "%s (not bound)"
+msgstr "%s (nicht zugewiesen)"
+
+#: qcsrc/client/Main.qc:1449 qcsrc/client/hud.qc:407
+#, c-format
+msgid "%s (%s)"
+msgstr "%s (%s)"
+
+#: qcsrc/client/ctf.qc:35
+msgid "----- Order Menu -----"
+msgstr "----- Auftragsmenü -----"
+
+#: qcsrc/client/ctf.qc:36
+#, c-format
+msgid "Order: %s"
+msgstr "Auftrag: %s"
+
+#: qcsrc/client/ctf.qc:37
+msgid "1) ^3previous page"
+msgstr "1) ^3vorherige Seite"
+
+#: qcsrc/client/ctf.qc:38
+msgid "2) ^3next page"
+msgstr "2) ^3nächste Seite"
+
+#: qcsrc/client/ctf.qc:55 qcsrc/client/ctf.qc:161
+msgid "ESC) Exit Menu"
+msgstr "ESC) Menü verlassen"
+
+#: qcsrc/client/ctf.qc:126
+#, c-format
+msgid "Couldn't find player %d\n"
+msgstr "Kann Spieler %d nicht finden\n"
+
+#: qcsrc/client/ctf.qc:154
+msgid "----- Command Menu -----"
+msgstr "---- Befehlsmenü -----"
+
+#: qcsrc/client/ctf.qc:155
+msgid "Issue orders:"
+msgstr "Auftrag geben:"
+
+#: qcsrc/client/ctf.qc:156
+msgid " 1) Attack"
+msgstr " 1) Angreifen"
+
+#: qcsrc/client/ctf.qc:158
+msgid " 2) Defend"
+msgstr " 2) Verteidigen"
+
+#: qcsrc/client/ctf.qc:160
+msgid "3) Resign from command."
+msgstr "3) Befehlsgewalt abgeben."
+
+#: qcsrc/client/ctf.qc:212
+msgid "You're commander!"
+msgstr "Sie sind Befehlshaber!"
+
+#: qcsrc/client/ctf.qc:215
+msgid "Awaiting orders..."
+msgstr "Warten auf Auftrag..."
+
+#: qcsrc/client/hud.qc:337
+msgid "1st"
+msgstr "1."
+
+#: qcsrc/client/hud.qc:339
+msgid "2nd"
+msgstr "2."
+
+#: qcsrc/client/hud.qc:341
+msgid "3rd"
+msgstr "3."
+
+#: qcsrc/client/hud.qc:343
+#, c-format
+msgid "%dth"
+msgstr "%d."
+
+#: qcsrc/client/hud.qc:375
+#, c-format
+msgid " (-%dL)"
+msgstr " (-%dR)"
+
+#: qcsrc/client/hud.qc:380
+#, c-format
+msgid " (+%dL)"
+msgstr " (+%dR)"
+
+#: qcsrc/client/hud.qc:396
+msgid "Start line"
+msgstr "Start"
+
+#: qcsrc/client/hud.qc:398 qcsrc/client/hud.qc:402
+msgid "Finish line"
+msgstr "Ziel"
+
+#: qcsrc/client/hud.qc:400
+#, c-format
+msgid "Intermediate %d"
+msgstr "Zwischenzeit %d"
+
+#: qcsrc/client/hud.qc:409
+#, c-format
+msgid "%s (%s %s)"
+msgstr "%s (%s %s)"
+
+#: qcsrc/client/hud.qc:553
+#, c-format
+msgid "^2Successfully exported to %s! (Note: It's saved in data/data/)\n"
+msgstr ""
+"^2Erfolgreich als %s exportiert! (Hinweis: die Datei wurde in data/data/ "
+"abgelegt)\n"
+
+#: qcsrc/client/hud.qc:557
+#, c-format
+msgid "^1Couldn't write to %s\n"
+msgstr "^1Konnte nicht nach %s schreiben\n"
+
+#: qcsrc/client/hud.qc:1837
+msgid "Out of ammo"
+msgstr "Keine Munition mehr."
+
+#: qcsrc/client/hud.qc:1841
+msgid "Don't have"
+msgstr "nicht vorhanden"
+
+#: qcsrc/client/hud.qc:1845
+msgid "Unavailable"
+msgstr "nicht verfügbar"
+
+#: qcsrc/client/hud.qc:2696
+#, c-format
+msgid "^1%s^1 couldn't take it anymore\n"
+msgstr "^1%s^1 konnte es nicht mehr ertragen\n"
+
+#: qcsrc/client/hud.qc:2700 qcsrc/client/hud.qc:2992
+#, c-format
+msgid "^1%s^1 died\n"
+msgstr "^1%s^1 ist gestorben\n"
+
+#: qcsrc/client/hud.qc:2704
+#, c-format
+msgid "^7%s^7 committed suicide. What's the point of living without ammo?\n"
+msgstr "^7%s^7 hat sich erhängt. Was ist schon ein Leben ohne Munition?\n"
+
+#: qcsrc/client/hud.qc:2708
+#, c-format
+msgid "^1%s^1 thought they found a nice camping ground\n"
+msgstr "^1%s^1 dachte, einen tollen Campingplatz gefunden zu haben\n"
+
+#: qcsrc/client/hud.qc:2712
+#, c-format
+msgid "^1%s^1 didn't become friends with the Lord of Teamplay\n"
+msgstr "^1%s^1 bekam Probleme mit dem Lord of Teamplay\n"
+
+#: qcsrc/client/hud.qc:2716
+#, c-format
+msgid "^1%s^1 unfairly eliminated themself\n"
+msgstr "^1%s^1 hat sich selbst auf unfaire Weise erledigt\n"
+
+#: qcsrc/client/hud.qc:2720
+#, c-format
+msgid "^1%s^1 burned to death\n"
+msgstr "^1%s^1 brannte zu Tode\n"
+
+#: qcsrc/client/hud.qc:2724
+#, c-format
+msgid "^1%s^1 couldn't resist the urge to self-destruct\n"
+msgstr ""
+"^1%s^1 konnte dem Drang zur Selbstzerstörung einfach nicht widerstehen\n"
+
+#: qcsrc/client/hud.qc:2728
+#, c-format
+msgid "^1%s^1 ended it all after a %d kill spree\n"
+msgstr "^1%s^1 machte seinem %d-Amoklauf ein Ende\n"
+
+#: qcsrc/client/hud.qc:2745
+#, c-format
+msgid "^1%s^1 took action against a team mate\n"
+msgstr "^1%s^1 ergriff Maßnahmen gegen einen Mitspieler\n"
+
+#: qcsrc/client/hud.qc:2747
+#, c-format
+msgid "^1%s^1 mows down a team mate\n"
+msgstr "^1%s^1 mähte einen Mitspieler nieder\n"
+
+#: qcsrc/client/hud.qc:2752
+#, c-format
+msgid "^1%s^1 ended a %d scoring spree by going against a team mate\n"
+msgstr ""
+"^1%s^1 dachte, %d Punkte hintereinander reichen, und trug dies an einem "
+"Mitspieler aus\n"
+
+#: qcsrc/client/hud.qc:2754
+#, c-format
+msgid "^1%s^1 ended a %d kill spree by killing a team mate\n"
+msgstr "^1%s^1 beendete seinen %d-Amoklauf, indem er einen Mitspieler tötete\n"
+
+#: qcsrc/client/hud.qc:2758
+#, c-format
+msgid "^1%s^1's %s scoring spree was ended by a team mate!\n"
+msgstr ""
+"^1%s^1s %s Punkte hintereinander wurden von einem Mitspieler gestört!\n"
+
+#: qcsrc/client/hud.qc:2760
+#, c-format
+msgid "^1%s^1's %s kill spree was ended by a team mate!\n"
+msgstr "^1%s^1s %s-Amoklauf wurde von einem Mitspieler beendet!\n"
+
+#: qcsrc/client/hud.qc:2764
+#, c-format
+msgid "^1%s^1 drew first blood\n"
+msgstr "^1%s^1 war der Erste\n"
+
+#: qcsrc/client/hud.qc:2768
+#, c-format
+msgid "^1%s^1 tried to occupy %s^1's teleport destination space\n"
+msgstr "^1%s^1 dachte, %s^1 am Teleportieren hindern zu können\n"
+
+#: qcsrc/client/hud.qc:2770
+#, c-format
+msgid "^1%s^1 was telefragged by %s\n"
+msgstr "^1%s^1 wurde von %s^1 telefragged\n"
+
+#: qcsrc/client/hud.qc:2775
+#, c-format
+msgid "^1%s^1 was drowned by %s\n"
+msgstr "^1%s^1 wurde von %s^1 etränkt\n"
+
+#: qcsrc/client/hud.qc:2780
+#, c-format
+msgid "^1%s^1 was slimed by %s\n"
+msgstr "^1%s^1 wurde von %s^1 im Schleim versenkt\n"
+
+#: qcsrc/client/hud.qc:2785
+#, c-format
+msgid "^1%s^1 was cooked by %s\n"
+msgstr "^1%s^1 wurde von %s^1 gebraten\n"
+
+#: qcsrc/client/hud.qc:2790
+#, c-format
+msgid "^1%s^1 was grounded by %s\n"
+msgstr "^1%s^1 wurde von %s^1 geerdet\n"
+
+#: qcsrc/client/hud.qc:2795
+#, c-format
+msgid "^1%s^1 was shot into space by %s\n"
+msgstr "^1%s^1 wurde von %s^1 ins All geschossen\n"
+
+#: qcsrc/client/hud.qc:2800
+#, c-format
+msgid "^1%s^1 was conserved by %s\n"
+msgstr "^1%s^1 wurde von %s^1 konserviert\n"
+
+#: qcsrc/client/hud.qc:2806
+#, c-format
+msgid "^1%s^1 was thrown into a world of hurt by %s\n"
+msgstr "^1%s^1 wurde von %s^1 in eine Welt des Schmerzes geworfen\n"
+
+#: qcsrc/client/hud.qc:2810
+#, c-format
+msgid "^1%s^1 was crushed by %s\n"
+msgstr "^1%s^1 wurde von %s^1 zerquetscht\n"
+
+#: qcsrc/client/hud.qc:2814
+#, c-format
+msgid "^1%s^1 got shredded by %s\n"
+msgstr "^1%s^1 wurde von %s^1 zerstückelt\n"
+
+#: qcsrc/client/hud.qc:2818
+#, c-format
+msgid "^1%s^1 was blasted to bits by %s\n"
+msgstr "^1%s^1 wurde von %s^1 in die Luft gejagt\n"
+
+#: qcsrc/client/hud.qc:2822
+#, c-format
+msgid "^1%s^1 got caught in the destruction of %s^1's vehicle\n"
+msgstr "^1%s^1 wurde von der Explosion von %s^1s Fahrzeug erwischt\n"
+
+#: qcsrc/client/hud.qc:2826
+#, c-format
+msgid "^1%s^1 was bolted down by %s\n"
+msgstr "^1%s^1 wurde von %s^1 niedergeschmettert\n"
+
+#: qcsrc/client/hud.qc:2830
+#, c-format
+msgid "^1%s^1 could find no shelter from %s^1's rockets\n"
+msgstr "^1%s^1 fand keine Deckung vor %s^1s Raketen\n"
+
+#: qcsrc/client/hud.qc:2834
+#, c-format
+msgid "^1%s^1 dies when %s^1's wakizashi dies.\n"
+msgstr "^1%s^1 starb zusammen mit %s^1's Wakizashi.\n"
+
+#: qcsrc/client/hud.qc:2838
+#, c-format
+msgid "^1%s^1 was pushed into the line of fire by %s\n"
+msgstr "^1%s^1 wurde von %s^1 ins offene Feuer geschubst\n"
+
+#: qcsrc/client/hud.qc:2842
+#, c-format
+msgid "^1%s^1 was pushed into an accident by %s\n"
+msgstr "^1%s^1 wurde von %s^1 in einen unglücklichen Unfall geschubst\n"
+
+#: qcsrc/client/hud.qc:2846
+#, c-format
+msgid "^1%s^1 was unfairly eliminated by %s\n"
+msgstr "^1%s^1 wurde von %s auf unfaire Weise erledigt\n"
+
+#: qcsrc/client/hud.qc:2850
+#, c-format
+msgid "^1%s^1 was burnt to death by %s\n"
+msgstr "^1%s^1 wurde von %s verbrannt\n"
+
+#: qcsrc/client/hud.qc:2862
+#, c-format
+msgid "^1%s^1 was fragged by %s\n"
+msgstr "^1%s^1 wurde von %s^1 gefraggt\n"
+
+#: qcsrc/client/hud.qc:2867
+#, c-format
+msgid "^1%s^1's %s scoring spree was ended by %s\n"
+msgstr "^1%s^1's Punkte-Folge wurde von %s^1 beendet\n"
+
+#: qcsrc/client/hud.qc:2869
+#, c-format
+msgid "^1%s^1's %s kill spree was ended by %s\n"
+msgstr "^1%s^1's Kill-Spree wurde von %s^1 beendet\n"
+
+#: qcsrc/client/hud.qc:2872
+#, c-format
+msgid "^1%s^1 made %s scores in a row\n"
+msgstr "^1%s^1 machte %s Punkte hintereinander\n"
+
+#: qcsrc/client/hud.qc:2874
+#, c-format
+msgid "^1%s^1 has %s frags in a row\n"
+msgstr "^1%s^1 hat %s Frags hintereinander\n"
+
+#: qcsrc/client/hud.qc:2877
+#, c-format
+msgid "%s^7 made a ^1TRIPLE SCORE\n"
+msgstr "%s^7 hat einen ^1TRIPLE SCORE\n"
+
+#: qcsrc/client/hud.qc:2879
+#, c-format
+msgid "%s^7 made a ^1TRIPLE FRAG\n"
+msgstr "%s^7 hat einen ^1TRIPLE FRAG\n"
+
+#: qcsrc/client/hud.qc:2882
+#, c-format
+msgid "%s^7 unleashes ^1SCORING RAGE\n"
+msgstr "%s^7 hat ^1PUNKTE-RASEN\n"
+
+#: qcsrc/client/hud.qc:2884
+#, c-format
+msgid "%s^7 unleashes ^1RAGE\n"
+msgstr "%s^7 ^1RAST VOR ZORN\n"
+
+#: qcsrc/client/hud.qc:2887
+#, c-format
+msgid "%s^7 made ^1TEN SCORES IN A ROW!\n"
+msgstr "%s^7 hat ^1ZEHN PUNKTE HINTEREINANDER!\n"
+
+#: qcsrc/client/hud.qc:2889
+#, c-format
+msgid "%s^7 starts the ^1MASSACRE!\n"
+msgstr "%s^7 beginnt das ^1MASSAKER!\n"
+
+#: qcsrc/client/hud.qc:2892
+#, c-format
+msgid "%s^7 made ^1FIFTEEN SCORES IN A ROW!\n"
+msgstr "%s^7 hat ^1FÜNFZEHN PUNKTE HINTEREINANDER\n"
+
+#: qcsrc/client/hud.qc:2894
+#, c-format
+msgid "%s^7 executes ^1MAYHEM!\n"
+msgstr "%s^7 erzeugt das ^1CHAOS!\n"
+
+#: qcsrc/client/hud.qc:2897
+#, c-format
+msgid "%s^7 made ^1TWENTY SCORES IN A ROW!\n"
+msgstr "%s^7 hat ^1ZWANZIG PUNKTE HINTEREINANDER\n"
+
+#: qcsrc/client/hud.qc:2899
+#, c-format
+msgid "%s^7 is a ^1BERSERKER!\n"
+msgstr "%s^7 ist ein ^1BERSERKER!\n"
+
+#: qcsrc/client/hud.qc:2902
+#, c-format
+msgid "%s^7 made ^1TWENTY FIVE SCORES IN A ROW!\n"
+msgstr "%s^7 hat ^1FÜNFUNDZWANZIG PUNKTE HINTEREINANDER!\n"
+
+#: qcsrc/client/hud.qc:2904
+#, c-format
+msgid "%s^7 inflicts ^1CARNAGE!\n"
+msgstr "%s^7 hält ein ^1BLUTBAD!\n"
+
+#: qcsrc/client/hud.qc:2907
+#, c-format
+msgid "%s^7 made ^1THIRTY SCORES IN A ROW!\n"
+msgstr "%s^7 hat ^1DREISSIG PUNKTE HINTEREINANDER\n"
+
+#: qcsrc/client/hud.qc:2909
+#, c-format
+msgid "%s^7 unleashes ^1ARMAGEDDON!\n"
+msgstr "%s^7 lässt die ^1APOKALYPSE^7 los!\n"
+
+#: qcsrc/client/hud.qc:2917
+#, c-format
+msgid "^1%s^1 was in the water for too long\n"
+msgstr "^1%s^1 war zu lange im Wasser\n"
+
+#: qcsrc/client/hud.qc:2919
+#, c-format
+msgid "^1%s^1 drowned\n"
+msgstr "^1%s^1 ertrank\n"
+
+#: qcsrc/client/hud.qc:2924
+#, c-format
+msgid "^1%s^1 was slimed\n"
+msgstr "^1%s^1 wurde im Schleim versenkt\n"
+
+#: qcsrc/client/hud.qc:2930
+#, c-format
+msgid "^1%s^1 found a hot place\n"
+msgstr "^1%s^1 fand einen heißen Ort\n"
+
+#: qcsrc/client/hud.qc:2932
+#, c-format
+msgid "^1%s^1 turned into hot slag\n"
+msgstr "^1%s^1 verwandelte sich in heiße Schlacke\n"
+
+#: qcsrc/client/hud.qc:2939
+#, c-format
+msgid "^1%s^1 tested gravity (and it worked)\n"
+msgstr "^1%s^1 probierte die Gravitation aus (und sie funktionierte)\n"
+
+#: qcsrc/client/hud.qc:2941
+#, c-format
+msgid "^1%s^1 hit the ground with a crunch\n"
+msgstr "^1%s^1 landete mit einem Knall auf dem Boden\n"
+
+#: qcsrc/client/hud.qc:2946
+#, c-format
+msgid "^1%s^1 became a shooting star\n"
+msgstr "^1%s^1 wurde zu einer Sternschnuppe\n"
+
+#: qcsrc/client/hud.qc:2952
+#, c-format
+msgid "^1%s^1 discovered a swamp\n"
+msgstr "^1%s^1 entdeckte einen Sumpf\n"
+
+#: qcsrc/client/hud.qc:2954
+#, c-format
+msgid "^1%s^1 is now conserved for centuries to come\n"
+msgstr "^1%s^1 ist jetzt für Jahrhunderte konserviert\n"
+
+#: qcsrc/client/hud.qc:2959
+#, c-format
+msgid "^1%s^1 was mowed down by a turret \n"
+msgstr "^1%s^1 wurde von einem Turret niedergemäht\n"
+
+#: qcsrc/client/hud.qc:2971
+#, c-format
+msgid "^1%s^1 died in an accident\n"
+msgstr "^1%s^1 starb an einem Unfall\n"
+
+#: qcsrc/client/hud.qc:2975
+#, c-format
+msgid "^1%s^1 was unfairly eliminated\n"
+msgstr "^1%s^1 wurde auf unfaire Weise eliminiert\n"
+
+#: qcsrc/client/hud.qc:2981
+#, c-format
+msgid "^1%s^1 felt a little hot\n"
+msgstr "^1%s^1 fand es ein wenig zu warm\n"
+
+#: qcsrc/client/hud.qc:2983
+#, c-format
+msgid "^1%s^1 burnt to death\n"
+msgstr "^1%s^1 verbrannte\n"
+
+#: qcsrc/client/hud.qc:2990
+#, c-format
+msgid "^1%s^1 needs a restart\n"
+msgstr "^1%s^1 braucht einen Neustart\n"
+
+#: qcsrc/client/hud.qc:2997
+#, c-format
+msgid "^1%s^1 needs a restart after a %d scoring spree\n"
+msgstr "^1%s^1 braucht einen Neustart nach %d Punkten in Folge\n"
+
+#: qcsrc/client/hud.qc:2999
+#, c-format
+msgid "^1%s^1 died with a %d kill spree\n"
+msgstr "^1%s^1 starb mit einer %d-Kill-Spree\n"
+
+#: qcsrc/client/hud.qc:3003
+#, c-format
+msgid "%s^7 got the %s\n"
+msgstr "%s^7 bekam die %s\n"
+
+#: qcsrc/client/hud.qc:3006
+#, c-format
+msgid "%s^7 lost the %s\n"
+msgstr "%s^7 verlor die %s\n"
+
+#: qcsrc/client/hud.qc:3009
+#, c-format
+msgid "%s^7 picked up the %s\n"
+msgstr "%s^7 nahm sich die %s\n"
+
+#: qcsrc/client/hud.qc:3012
+#, c-format
+msgid "%s^7 returned the %s\n"
+msgstr "%s^7 brachte die %s^7 zurück\n"
+
+#: qcsrc/client/hud.qc:3015
+#, c-format
+msgid "%s^7 captured the %s%s\n"
+msgstr "%s^7 eroberte die %s%s\n"
+
+#: qcsrc/client/hud.qc:3034
+#, c-format
+msgid "%s^7 has picked up the ball!\n"
+msgstr "%s^7 hat den Ball genommen!\n"
+
+#: qcsrc/client/hud.qc:3039
+#, c-format
+msgid "%s^7 has dropped the ball!\n"
+msgstr "%s^7 hat den Ball verloren!\n"
+
+#: qcsrc/client/hud.qc:3052
+#, c-format
+msgid "You are now on: %s"
+msgstr "Du bist jetzt im: %s"
+
+#: qcsrc/client/hud.qc:3054
+#, c-format
+msgid ""
+"You have been moved into a different team to improve team balance\n"
+"You are now on: %s"
+msgstr ""
+"Du wurdest in ein anderes Team verschoben, um Team-Balance zu verbessern.\n"
+"Du bist jetzt im: %s"
+
+#: qcsrc/client/hud.qc:3057
+msgid "^1Reconsider your tactics, camper!"
+msgstr "^1Ändere dein Verhalten, Camper!"
+
+#: qcsrc/client/hud.qc:3059
+msgid "^1Die camper!"
+msgstr "^1Stirb, Camper!"
+
+#: qcsrc/client/hud.qc:3062
+msgid "^1You are reinserted into the game for running out of ammo..."
+msgstr ""
+"^1Du wurdest ins Spiel neu eingesetzt, weil dir die Munition ausging..."
+
+#: qcsrc/client/hud.qc:3064
+msgid "^1You were killed for running out of ammo..."
+msgstr "^1Du wurdest getötet, da dir die Munition ausging..."
+
+#: qcsrc/client/hud.qc:3067
+msgid "^1You need to preserve your health"
+msgstr "^1Du solltest deine Gesundheit erhalten"
+
+#: qcsrc/client/hud.qc:3069
+msgid "^1You grew too old without taking your medicine"
+msgstr "^1Du wurdest zu alt, und hast nicht deine Medizin genommen"
+
+#: qcsrc/client/hud.qc:3072
+msgid "^1Don't go against team mates!"
+msgstr "^1Ärgere deine Teamkollegen nicht!"
+
+#: qcsrc/client/hud.qc:3074
+msgid "^1Don't shoot your team mates!"
+msgstr "^1Schieße nicht auf deine Teamkollegen!"
+
+#: qcsrc/client/hud.qc:3079
+msgid "^1You need to be more careful!"
+msgstr "^1Sei vorsichtiger!"
+
+#: qcsrc/client/hud.qc:3081
+msgid "^1You killed your own dumb self!"
+msgstr "^1Du hast dich selbst umgebracht. Wie blöd."
+
+#: qcsrc/client/hud.qc:3086
+#, c-format
+msgid "^1Moron! You went against %s, a team mate!"
+msgstr "^1Idiot! Du hast %s getroffen, also einen Teamkollegen von dir!"
+
+#: qcsrc/client/hud.qc:3088
+#, c-format
+msgid "^1Moron! You fragged %s, a team mate!"
+msgstr "^1Idiot! Du hast %s getötet, also einen Teamkollegen von dir!"
+
+#: qcsrc/client/hud.qc:3092
+msgid "^1First score"
+msgstr "^1Erster Punkt"
+
+#: qcsrc/client/hud.qc:3094
+msgid "^1First blood"
+msgstr "^1Erstes Blut"
+
+#: qcsrc/client/hud.qc:3098
+msgid "^1First casualty"
+msgstr "^1Erster Kollateralschaden"
+
+#: qcsrc/client/hud.qc:3100
+msgid "^1First victim"
+msgstr "^1Erstes Opfer"
+
+#: qcsrc/client/hud.qc:3104
+#, c-format
+msgid "^1You scored against ^7%s^1 who was typing!"
+msgstr "^1Du hast gegen ^7%s^1 gepunktet, während er am Tippen war!"
+
+#: qcsrc/client/hud.qc:3106
+#, c-format
+msgid "^1You typefragged ^7%s"
+msgstr "^1Du hast ^7%s^1 beim Tippen erschossen"
+
+#: qcsrc/client/hud.qc:3110
+#, c-format
+msgid "^1You were scored against by ^7%s^1 while you were typing!"
+msgstr "^1Gegen dich hat ^7%s^1 gepunktet, während du am Tippen warst!"
+
+#: qcsrc/client/hud.qc:3112
+#, c-format
+msgid "^1You were typefragged by ^7%s"
+msgstr "^1Du wurdest von ^7%s^1 erschossen, während du am Tippen warst"
+
+#: qcsrc/client/hud.qc:3116
+#, c-format
+msgid "^4You scored against ^7%s"
+msgstr "^4Du hast gegen ^7%s^4 gepunktet"
+
+#: qcsrc/client/hud.qc:3118
+#, c-format
+msgid "^4You fragged ^7%s"
+msgstr "^4Du hast ^7%s^4 getötet"
+
+#: qcsrc/client/hud.qc:3122
+#, c-format
+msgid "^1You were scored against by ^7%s"
+msgstr "^1Gegen dich hat ^7%s^1 gepunktet"
+
+#: qcsrc/client/hud.qc:3124
+#, c-format
+msgid "^1You were fragged by ^7%s"
+msgstr "^1Du wurdest von ^7%s^1 getötet"
+
+#: qcsrc/client/hud.qc:3129
+msgid "^1Watch your step!"
+msgstr "^1Achte, wo du hintrittst!"
+
+#: qcsrc/client/hud.qc:3194 qcsrc/client/hud.qc:3195
+#, c-format
+msgid "Player %d"
+msgstr "Spieler %d"
+
+#: qcsrc/client/hud.qc:3791
+msgid "^1Intermediate 1 (+15.42)"
+msgstr "^1Intermediate 1 (+15.42)"
+
+#: qcsrc/client/hud.qc:3793 qcsrc/client/hud.qc:3835 qcsrc/client/hud.qc:3876
+#, c-format
+msgid "^1PENALTY: %.1f (%s)"
+msgstr "^1STRAFE: %.1f (%s)"
+
+#: qcsrc/client/hud.qc:3878
+#, c-format
+msgid "^2PENALTY: %.1f (%s)"
+msgstr "^2STRAFE: %.1f (%s)"
+
+#: qcsrc/client/hud.qc:3903
+msgid "^2Name ^7instead of \"^1Unregistered player^7\" in stats"
+msgstr "^2Name^7 statt \"^1Unregistered player^7\" in den Statistiken"
+
+#: qcsrc/client/hud.qc:3985
+msgid "A vote has been called for:"
+msgstr "Eine Abstimmung wurde initiiert für:"
+
+#: qcsrc/client/hud.qc:3987
+msgid "Allow servers to store and display your name?"
+msgstr "Erlaube Servern, deinen Namen zu speichern und später zu zeigen?"
+
+#: qcsrc/client/hud.qc:3991
+msgid "^1Configure the HUD"
+msgstr "^1Das HUD konfigurieren"
+
+#: qcsrc/client/hud.qc:3995
+#, c-format
+msgid "Yes (%s): %d"
+msgstr "Ja (%s): %d"
+
+#: qcsrc/client/hud.qc:3997
+#, c-format
+msgid "No (%s): %d"
+msgstr "Nein (%s): %d"
+
+#: qcsrc/client/hud.qc:4510 qcsrc/client/hud.qc:4513 qcsrc/client/hud.qc:4515
+msgid "Personal best"
+msgstr "Persönliche Bestzeit"
+
+#: qcsrc/client/hud.qc:4528 qcsrc/client/hud.qc:4531 qcsrc/client/hud.qc:4533
+msgid "Server best"
+msgstr "Server-Bestzeit"
+
+#: qcsrc/client/hud.qc:4765
+msgid "^3Player^7: This is the chat area."
+msgstr "^3Player^7: Das ist der Chat-Bereich."
+
+#: qcsrc/client/hud.qc:4828
+#, c-format
+msgid "FPS: %.*f"
+msgstr "FPS: %.*f"
+
+#: qcsrc/client/hud.qc:4893
+msgid "^1Observing"
+msgstr "^1Beobachten"
+
+#: qcsrc/client/hud.qc:4895
+#, c-format
+msgid "^1Spectating: ^7%s"
+msgstr "^1Zuschauen bei: ^7%s"
+
+#: qcsrc/client/hud.qc:4899
+#, c-format
+msgid "^1Press ^3%s^1 to spectate"
+msgstr "^1Drücke ^3%s^1, um bei jemandem zuzuschauen"
+
+#: qcsrc/client/hud.qc:4901
+#, c-format
+msgid "^1Press ^3%s^1 for another player"
+msgstr "^1Drücke ^3%s^1 für einen anderen Spieler"
+
+#: qcsrc/client/hud.qc:4905
+#, c-format
+msgid "^1Use ^3%s^1 or ^3%s^1 to change the speed"
+msgstr "^1Benutze ^3%s^1 oder ^3%s^1 zum Ändern der Geschwindigkeit"
+
+#: qcsrc/client/hud.qc:4907
+#, c-format
+msgid "^1Press ^3%s^1 to observe"
+msgstr "^1Drücke ^3%s^1 zum Beobachten"
+
+#: qcsrc/client/hud.qc:4910
+#, c-format
+msgid "^1Press ^3%s^1 for gamemode info"
+msgstr "^1Drücke ^3%s^1 für Spielmodus-Info"
+
+#: qcsrc/client/hud.qc:4914
+msgid "^1Wait for your turn to join"
+msgstr "^1Warte, bis du dran bist"
+
+#: qcsrc/client/hud.qc:4920
+msgid "^1Match has already begun"
+msgstr "^1Das Match hat bereits begonnen"
+
+#: qcsrc/client/hud.qc:4922
+msgid "^1You have no more lives left"
+msgstr "^1Du hast keine Leben mehr übrig"
+
+#: qcsrc/client/hud.qc:4924 qcsrc/client/hud.qc:4927
+#, c-format
+msgid "^1Press ^3%s^1 to join"
+msgstr "^1Drücke ^3%s^1 zum Eintreten"
+
+#: qcsrc/client/hud.qc:4935
+#, c-format
+msgid "^1Game starts in ^3%d^1 seconds"
+msgstr "^1Das Spiel beginnt in ^3%d^1 Sekunden"
+
+#: qcsrc/client/hud.qc:4942
+msgid "^2Currently in ^1warmup^2 stage!"
+msgstr "^2Momentan in der ^1Aufwärmphase!"
+
+#: qcsrc/client/hud.qc:4957
+#, c-format
+msgid "%sPress ^3%s%s to end warmup"
+msgstr "%sDrücke ^3%s%s um die Aufwärmphase zu beenden"
+
+#: qcsrc/client/hud.qc:4959
+#, c-format
+msgid "%sPress ^3%s%s once you are ready"
+msgstr "%sDrücke ^3%s%s sobald du soweit bist"
+
+#: qcsrc/client/hud.qc:4964
+msgid "^2Waiting for others to ready up to end warmup..."
+msgstr "^2Warte, bis andere bereit sind, um die Aufwärmphase zu beenden"
+
+#: qcsrc/client/hud.qc:4966
+msgid "^2Waiting for others to ready up..."
+msgstr "^2Warte, bis andere bereit sind..."
+
+#: qcsrc/client/hud.qc:4972
+#, c-format
+msgid "^2Press ^3%s^2 to end warmup"
+msgstr "^2Drücke ^3%s^2 um die Aufwärmphase zu beenden"
+
+#: qcsrc/client/hud.qc:4993
+msgid "Teamnumbers are unbalanced!"
+msgstr "Die Teams sind unbalanciert!"
+
+#: qcsrc/client/hud.qc:4998
+#, c-format
+msgid " Press ^3%s%s to adjust"
+msgstr "Drücke ^3%s%s um dies zu korrigieren"
+
+#: qcsrc/client/hud.qc:5006
+msgid "^7Press ^3ESC ^7to show HUD options."
+msgstr "^7Drücke ^3ESC^7 um die HUD-Optionen zu zeigen"
+
+#: qcsrc/client/hud.qc:5008
+msgid "^3Doubleclick ^7a panel for panel-specific options."
+msgstr "^3Doppelklick^7 auf ein Panel für Panel-spezifische Optionen."
+
+#: qcsrc/client/hud.qc:5010
+msgid "^3CTRL ^7to disable collision testing, ^3SHIFT ^7and"
+msgstr "^3CTRL^7 um Kollisionstests zu deaktivieren, ^3SHIFT^7 und"
+
+#: qcsrc/client/hud.qc:5012
+msgid "^3ALT ^7+ ^3ARROW KEYS ^7for fine adjustments."
+msgstr "^3ALT^7 + ^3PFEILTASTEN^7 für Feinjustierungen"
+
+#: qcsrc/client/hud.qc:5037
+msgid " qu/s"
+msgstr "qu/s"
+
+#: qcsrc/client/hud.qc:5041
+msgid " m/s"
+msgstr "m/s"
+
+#: qcsrc/client/hud.qc:5045
+msgid " km/h"
+msgstr "km/h"
+
+#: qcsrc/client/hud.qc:5049
+msgid " mph"
+msgstr "mph"
+
+#: qcsrc/client/hud.qc:5053
+msgid " knots"
+msgstr "Knoten"
+
+#: qcsrc/client/mapvoting.qc:28
+msgid " (1 vote)"
+msgstr "(1 Stimme)"
+
+#: qcsrc/client/mapvoting.qc:30
+#, c-format
+msgid " (%d votes)"
+msgstr "(%d Stimmen)"
+
+#: qcsrc/client/mapvoting.qc:113
+msgid "Don't care"
+msgstr "Egal"
+
+#: qcsrc/client/mapvoting.qc:194
+msgid "Vote for a map"
+msgstr "Wähle eine Map"
+
+#: qcsrc/client/mapvoting.qc:199
+#, c-format
+msgid "%d seconds left"
+msgstr "%d Sekunden übrig"
+
+#: qcsrc/client/mapvoting.qc:263
+msgid ""
+"mv_mapdownload: ^3You're not supposed to use this command on your own!\n"
+msgstr ""
+"mv_mapdownload: ^3Dieser Befehl darf nur vom Server verwendet werden!\n"
+
+#: qcsrc/client/mapvoting.qc:273
+msgid "^1Error:^7 Couldn't find pak index.\n"
+msgstr "^1Fehler:^7 konnte den pak-Index nicht finden.\n"
+
+#: qcsrc/client/mapvoting.qc:282
+msgid "Requesting preview...\n"
+msgstr "Vorschau wird angefordert...\n"
+
+#: qcsrc/client/miscfunctions.qc:23
+msgid "^1Begin!"
+msgstr "^1Los!"
+
+#: qcsrc/client/miscfunctions.qc:34
+#, c-format
+msgid "^1Game starts in %d seconds"
+msgstr "^1Das Spiel startet in %d Sekunden"
+
+#: qcsrc/client/miscfunctions.qc:113
+msgid "^1RED^7 flag"
+msgstr "^1ROTE^7 Flagge"
+
+#: qcsrc/client/miscfunctions.qc:118
+msgid "^4BLUE^7 flag"
+msgstr "^4BLAUE^7 Flagge"
+
+#: qcsrc/client/miscfunctions.qc:126
+#, c-format
+msgid "You picked up the %s!"
+msgstr "Du hast die %s genommen!"
+
+#: qcsrc/client/miscfunctions.qc:130
+#, c-format
+msgid "You got the %s!"
+msgstr "Du hast die %s!"
+
+#: qcsrc/client/miscfunctions.qc:283
+msgid "Trying to remove a team which is not in the teamlist!"
+msgstr "Versuchte, ein Team zu löschen, das nicht in der Teamliste ist!"
+
+#: qcsrc/client/scoreboard.qc:19
+msgid "SCO^bckills"
+msgstr "BC getötet"
+
+#: qcsrc/client/scoreboard.qc:20
+msgid "SCO^bctime"
+msgstr "Ballbesitz"
+
+#: qcsrc/client/scoreboard.qc:21
+msgid "SCO^caps"
+msgstr "Caps"
+
+#: qcsrc/client/scoreboard.qc:22
+msgid "SCO^deaths"
+msgstr "Deaths"
+
+#: qcsrc/client/scoreboard.qc:23
+msgid "SCO^destroyed"
+msgstr "zerstört"
+
+#: qcsrc/client/scoreboard.qc:24
+msgid "SCO^drops"
+msgstr "verloren"
+
+#: qcsrc/client/scoreboard.qc:25
+msgid "SCO^faults"
+msgstr "Fehler"
+
+#: qcsrc/client/scoreboard.qc:26
+msgid "SCO^fckills"
+msgstr "FC getötet"
+
+#: qcsrc/client/scoreboard.qc:27
+msgid "SCO^goals"
+msgstr "Tore"
+
+#: qcsrc/client/scoreboard.qc:28
+msgid "SCO^kckills"
+msgstr "KC getötet"
+
+#: qcsrc/client/scoreboard.qc:29
+msgid "SCO^kdratio"
+msgstr "kdratio"
+
+#: qcsrc/client/scoreboard.qc:30
+msgid "SCO^k/d"
+msgstr "k/d"
+
+#: qcsrc/client/scoreboard.qc:31
+msgid "SCO^kd"
+msgstr "kd"
+
+#: qcsrc/client/scoreboard.qc:32
+msgid "SCO^kdr"
+msgstr "kdr"
+
+#: qcsrc/client/scoreboard.qc:33
+msgid "SCO^kills"
+msgstr "Kills"
+
+#: qcsrc/client/scoreboard.qc:34
+msgid "SCO^laps"
+msgstr "Runden"
+
+#: qcsrc/client/scoreboard.qc:35
+msgid "SCO^lives"
+msgstr "Leben"
+
+#: qcsrc/client/scoreboard.qc:36
+msgid "SCO^losses"
+msgstr "verloren"
+
+#: qcsrc/client/scoreboard.qc:37
+msgid "SCO^name"
+msgstr "Name"
+
+#: qcsrc/client/scoreboard.qc:38
+msgid "SCO^nick"
+msgstr "Nick"
+
+#: qcsrc/client/scoreboard.qc:39
+msgid "SCO^objectives"
+msgstr "Objectives"
+
+#: qcsrc/client/scoreboard.qc:40
+msgid "SCO^pickups"
+msgstr "Flaggen"
+
+#: qcsrc/client/scoreboard.qc:41
+msgid "SCO^ping"
+msgstr "Ping"
+
+#: qcsrc/client/scoreboard.qc:42
+msgid "SCO^pl"
+msgstr "PL"
+
+#: qcsrc/client/scoreboard.qc:43
+msgid "SCO^pushes"
+msgstr "Pushes"
+
+#: qcsrc/client/scoreboard.qc:44
+msgid "SCO^rank"
+msgstr "Rang"
+
+#: qcsrc/client/scoreboard.qc:45
+msgid "SCO^returns"
+msgstr "Returns"
+
+#: qcsrc/client/scoreboard.qc:46
+msgid "SCO^revivals"
+msgstr "wiederbelebt"
+
+#: qcsrc/client/scoreboard.qc:47
+msgid "SCO^score"
+msgstr "Punkte"
+
+#: qcsrc/client/scoreboard.qc:48
+msgid "SCO^suicides"
+msgstr "Suiz."
+
+#: qcsrc/client/scoreboard.qc:49
+msgid "SCO^takes"
+msgstr "Übernahmen"
+
+#: qcsrc/client/scoreboard.qc:50
+msgid "SCO^ticks"
+msgstr "Ticks"
+
+#: qcsrc/client/scoreboard.qc:239
+msgid ""
+"You can modify the scoreboard using the ^2scoreboard_columns_set command.\n"
+msgstr ""
+"Sie können die Tabelle mit dem ^2scoreboard_columns_set Befehl ändern.\n"
+
+#: qcsrc/client/scoreboard.qc:240
+msgid "^3|---------------------------------------------------------------|\n"
+msgstr "^3|---------------------------------------------------------------|\n"
+
+#: qcsrc/client/scoreboard.qc:242
+msgid "^2scoreboard_columns_set default\n"
+msgstr "^2scoreboard_columns_set default\n"
+
+#: qcsrc/client/scoreboard.qc:243
+msgid "^2scoreboard_columns_set ^7filed1 field2 ...\n"
+msgstr "^2scoreboard_columns_set ^7filed1 field2 ...\n"
+
+#: qcsrc/client/scoreboard.qc:244
+msgid "The following field names are recognized (case insensitive):\n"
+msgstr "Die folgenden Feldnamen werden akzeptiert:\n"
+
+#: qcsrc/client/scoreboard.qc:245
+msgid ""
+"You can use a ^3|^7 to start the right-aligned fields.\n"
+"\n"
+msgstr "Mit ^3|^7 werden die rechtsbündigen Felder gestartet.\n"
+
+#: qcsrc/client/scoreboard.qc:247
+msgid "^3name^7 or ^3nick^7         Name of a player\n"
+msgstr "^3name^7 or ^3nick^7         Name des Spielers\n"
+
+#: qcsrc/client/scoreboard.qc:248
+msgid "^3ping^7                     Ping time\n"
+msgstr "^3ping^7                     Ping\n"
+
+#: qcsrc/client/scoreboard.qc:249
+msgid "^3pl^7                       Packet loss\n"
+msgstr "^3pl^7                       Paketverlust\n"
+
+#: qcsrc/client/scoreboard.qc:250
+msgid "^3kills^7                    Number of kills\n"
+msgstr "^3kills^7                    Anzahl Kills\n"
+
+#: qcsrc/client/scoreboard.qc:251
+msgid "^3deaths^7                   Number of deaths\n"
+msgstr "^3deaths^7                   Anzahl der Tode\n"
+
+#: qcsrc/client/scoreboard.qc:252
+msgid "^3suicides^7                 Number of suicides\n"
+msgstr "^3suicides^7                 Anzahl der Suizide\n"
+
+#: qcsrc/client/scoreboard.qc:253
+msgid "^3frags^7                    kills - suicides\n"
+msgstr "^3frags^7                    Kills minus Suizide\n"
+
+#: qcsrc/client/scoreboard.qc:254
+msgid "^3kd^7                       The kill-death ratio\n"
+msgstr "^3kd^7                       Das Kill/Death-Ratio\n"
+
+#: qcsrc/client/scoreboard.qc:255
+msgid ""
+"^3caps^7                     How often a flag (CTF) or a key (KeyHunt) was "
+"captured\n"
+msgstr ""
+"^3caps^7                     Wie oft mit der Flagge (CTF) oder den "
+"Schlüssels (KeyHunt) gepunktet wurde\n"
+
+#: qcsrc/client/scoreboard.qc:256
+msgid ""
+"^3pickups^7                  How often a flag (CTF) or a key (KeyHunt) or a "
+"ball (Keepaway) was picked up\n"
+msgstr ""
+"^3pickups^7                  Wie oft die Flagge/Schlüssel aufgenommen "
+"wurden\n"
+
+#: qcsrc/client/scoreboard.qc:257
+msgid "^3fckills^7                  Number of flag carrier kills\n"
+msgstr "^3fckills^7                  Wieviele Flaggenträger getötet wurden\n"
+
+#: qcsrc/client/scoreboard.qc:258
+msgid "^3returns^7                  Number of flag returns\n"
+msgstr "^3returns^7                  Wie oft die Flagge zurückgebracht wurde\n"
+
+#: qcsrc/client/scoreboard.qc:259
+msgid "^3drops^7                    Number of flag drops\n"
+msgstr "^3drops^7                    Wie oft die Flagge verloren wurde\n"
+
+#: qcsrc/client/scoreboard.qc:260
+msgid "^3lives^7                    Number of lives (LMS)\n"
+msgstr "^3lives^7                    Anzahl Leben (LMS)\n"
+
+#: qcsrc/client/scoreboard.qc:261
+msgid "^3rank^7                     Player rank\n"
+msgstr "^3rank^7                     Rang des Spielers\n"
+
+#: qcsrc/client/scoreboard.qc:262
+msgid "^3pushes^7                   Number of players pushed into void\n"
+msgstr "^3pushes^7                   Anzahl in die Tiefe geworfener Gegner\n"
+
+#: qcsrc/client/scoreboard.qc:263
+msgid ""
+"^3destroyed^7                Number of keys destroyed by pushing them into "
+"void\n"
+msgstr ""
+"^3destroyed^7                Wie oft ein Gegner mit Schlüssel in die Tiefe "
+"geworfen wurde\n"
+
+#: qcsrc/client/scoreboard.qc:264
+msgid "^3kckills^7                  Number of keys carrier kills\n"
+msgstr "^3kckills^7                  Wie oft Key-Carrier getötet wurden\n"
+
+#: qcsrc/client/scoreboard.qc:265
+msgid "^3losses^7                   Number of times a key was lost\n"
+msgstr "^3losses^7                   Anzahl verlorener Schlüssel\n"
+
+#: qcsrc/client/scoreboard.qc:266
+msgid "^3laps^7                     Number of laps finished (race/cts)\n"
+msgstr "^3laps^7                     Anzahl vollendeter Runden (race/cts)\n"
+
+#: qcsrc/client/scoreboard.qc:267
+msgid "^3time^7                     Total time raced (race/cts)\n"
+msgstr "^3time^7                     Gesamtzeit des Rennens (race/cts)\n"
+
+#: qcsrc/client/scoreboard.qc:268
+msgid "^3fastest^7                  Time of fastest lap (race/cts)\n"
+msgstr "^3fastest^7                  Zeit der schnellsten Runde (race/cts)\n"
+
+#: qcsrc/client/scoreboard.qc:269
+msgid "^3ticks^7                    Number of ticks (DOM)\n"
+msgstr "^3ticks^7                    Anzahl der Ticks (DOM)\n"
+
+#: qcsrc/client/scoreboard.qc:270
+msgid "^3takes^7                    Number of domination points taken (DOM)\n"
+msgstr "^3takes^7                    Anzahl eingenommener Dom-Points (DOM)\n"
+
+#: qcsrc/client/scoreboard.qc:271
+msgid "^3bckills^7                  Number of ball carrier kills\n"
+msgstr "^3bckills^7                  Wieviele Ballträger getötet wurden\n"
+
+#: qcsrc/client/scoreboard.qc:272
+msgid ""
+"^3bctime^7                   Total amount of time holding the ball in "
+"Keepaway\n"
+msgstr "^3bctime^7                   Gesamtzeit des Ballbesitzes\n"
+
+#: qcsrc/client/scoreboard.qc:273
+msgid ""
+"^3score^7                    Total score\n"
+"\n"
+msgstr ""
+"^3score^7                    Gesamtpunktzahl\n"
+"\n"
+
+#: qcsrc/client/scoreboard.qc:275
+msgid ""
+"Before a field you can put a + or - sign, then a comma separated list\n"
+"of game types, then a slash, to make the field show up only in these\n"
+"or in all but these game types. You can also specify 'all' as a\n"
+"field to show all fields available for the current game mode.\n"
+"\n"
+msgstr ""
+"Vor ein Feld können Sie ein Plus- oder Minuszeichen setzen, anschließend\n"
+"eine durch Kommata getrennte Liste von Spieltypen, dann einen Slash, so "
+"dass\n"
+"das Feld nur in diesen, oder in allen außer diesen Spieltypen erscheint.\n"
+"Außerdem kann \"all\" als Feldname verwendet werden; in diesem Fall "
+"erscheinen\n"
+"sämtliche möglichen Felder im aktuellen Spieltyp.\n"
+"\n"
+
+#: qcsrc/client/scoreboard.qc:280
+msgid ""
+"The special game type names 'teams' and 'noteams' can be used to\n"
+"include/exclude ALL teams/noteams game modes.\n"
+"\n"
+msgstr ""
+"Die speziellen Bezeichner 'teams' und 'noteams' können verwendet werden\n"
+"als Gruppierung aller Teamplay- oder Nicht-Teamplay-Spieltypen.\n"
+"\n"
+
+#: qcsrc/client/scoreboard.qc:283
+msgid "Example: scoreboard_columns_set name ping pl | +ctf/field3 -dm/field4\n"
+msgstr "Beispiel: scoreboard_columns_set name ping pl < +ctf/feld3 dm/feld4\n"
+
+#: qcsrc/client/scoreboard.qc:284
+msgid ""
+"will display name, ping and pl aligned to the left, and the fields\n"
+"right of the vertical bar aligned to the right.\n"
+msgstr ""
+"wird Name, Ping und Paketverlust linksbündig, und die Felder rechts\n"
+"von der Trennlinie (und rechtsbündig) anzeigen.\n"
+
+#: qcsrc/client/scoreboard.qc:286
+msgid ""
+"'field3' will only be shown in CTF, and 'field4' will be shown in all\n"
+"other gamemodes except DM.\n"
+msgstr ""
+"'feld3' wird nur in CTF sichtbar sein, und 'feld4' wird in allen Spieltypen\n"
+"außer DM erscheinen.\n"
+
+#: qcsrc/client/scoreboard.qc:432 qcsrc/client/scoreboard.qc:447
+#: qcsrc/client/scoreboard.qc:457 qcsrc/client/scoreboard.qc:466
+#: qcsrc/client/scoreboard.qc:475
+#, c-format
+msgid "fixed missing field '%s'\n"
+msgstr "Fehlendes Feld '%s' wurde ergänzt.\n"
+
+#: qcsrc/client/scoreboard.qc:515 qcsrc/client/scoreboard.qc:522
+msgid "N/A"
+msgstr "-"
+
+#: qcsrc/client/scoreboard.qc:951
+#, c-format
+msgid "Accuracy stats (average %d%%)"
+msgstr "Genauigkeit (Durchschn.: %d%%)"
+
+#: qcsrc/client/scoreboard.qc:1016
+#, c-format
+msgid "%d%%"
+msgstr "%d%%"
+
+#: qcsrc/client/scoreboard.qc:1076
+msgid "Rankings"
+msgstr "Platzierungen"
+
+#: qcsrc/client/scoreboard.qc:1167 qcsrc/client/scoreboard.qc:1169
+msgid "Scoreboard"
+msgstr "Tabelle"
+
+#: qcsrc/client/scoreboard.qc:1210
+#, c-format
+msgid "Speed award: %d ^7(%s^7)"
+msgstr "Höchstgeschwindigkeit: %d ^7(%s^7)"
+
+#: qcsrc/client/scoreboard.qc:1214
+#, c-format
+msgid "All-time fastest: %d ^7(%s^7)"
+msgstr "Rekord: %d ^7(%s^7)"
+
+#: qcsrc/client/scoreboard.qc:1241 qcsrc/client/teamplay.qc:55
+msgid "Spectators"
+msgstr "Zuschauer"
+
+#: qcsrc/client/scoreboard.qc:1248
+#, c-format
+msgid "playing on ^2%s^7"
+msgstr "es wird auf ^2%s^7 gespielt"
+
+#: qcsrc/client/scoreboard.qc:1255 qcsrc/client/scoreboard.qc:1260
+#, c-format
+msgid " for up to ^1%1.0f minutes^7"
+msgstr " für bis zu ^1%.1f Minuten^7"
+
+#: qcsrc/client/scoreboard.qc:1264 qcsrc/client/scoreboard.qc:1283
+msgid " or"
+msgstr " oder"
+
+#: qcsrc/client/scoreboard.qc:1267 qcsrc/client/scoreboard.qc:1274
+#, c-format
+msgid " until ^3%s %s^7"
+msgstr " bis ^3%s %s^7"
+
+#: qcsrc/client/scoreboard.qc:1268 qcsrc/client/scoreboard.qc:1275
+#: qcsrc/client/scoreboard.qc:1287 qcsrc/client/scoreboard.qc:1294
+msgid "SCO^points"
+msgstr "Punkte"
+
+#: qcsrc/client/scoreboard.qc:1269 qcsrc/client/scoreboard.qc:1276
+#: qcsrc/client/scoreboard.qc:1288 qcsrc/client/scoreboard.qc:1295
+msgid "SCO^is beaten"
+msgstr "geschlagen wird"
+
+#: qcsrc/client/scoreboard.qc:1286 qcsrc/client/scoreboard.qc:1293
+#, c-format
+msgid " until a lead of ^3%s %s^7"
+msgstr " bis zu einem Vorsprung von ^3%s %s^7"
+
+#: qcsrc/client/target_music.qc:93 qcsrc/client/target_music.qc:181
+#, c-format
+msgid "Cannot initialize sound %s\n"
+msgstr "Kann Sound %s nicht initialisieren\n"
+
+#: qcsrc/client/teamplay.qc:56
+msgid "Red Team"
+msgstr "Rotes Team"
+
+#: qcsrc/client/teamplay.qc:57
+msgid "Blue Team"
+msgstr "Blaues Team"
+
+#: qcsrc/client/teamplay.qc:58
+msgid "Yellow Team"
+msgstr "Gelbes Team"
+
+#: qcsrc/client/teamplay.qc:59
+msgid "Pink Team"
+msgstr "Pinkes Team"
+
+#: qcsrc/server/w_crylink.qc:2
+msgid "Crylink"
+msgstr "Crylink"
+
+#: qcsrc/server/w_crylink.qc:664
+#, c-format
+msgid "%s succeeded at self-destructing themself with the Crylink"
+msgstr "%s zerstörte sich selbst erfolgreich mit der Crylink"
+
+#: qcsrc/server/w_crylink.qc:669
+#, c-format
+msgid "%s could not hide from %s's Crylink"
+msgstr "%s konnte sich nicht vor %ss Crylink verstecken"
+
+#: qcsrc/server/w_crylink.qc:671
+#, c-format
+msgid "%s was too close to %s's Crylink"
+msgstr "%s trat %ss Crylink zu nahe"
+
+#: qcsrc/server/w_crylink.qc:673
+#, c-format
+msgid "%s took a close look at %s's Crylink"
+msgstr "%s schaute sich %ss Crylink sehr genau an"
+
+#: qcsrc/server/w_electro.qc:2
+msgid "Electro"
+msgstr "Electro"
+
+#: qcsrc/server/w_electro.qc:571
+#, c-format
+msgid "%s could not remember where they put plasma"
+msgstr "%s vergaß, wo er das Plasma hingetan hatte"
+
+#: qcsrc/server/w_electro.qc:573
+#, c-format
+msgid "%s played with plasma"
+msgstr "%s spielte mit Plasma"
+
+#: qcsrc/server/w_electro.qc:580
+#, c-format
+msgid "%s just noticed %s's blue ball"
+msgstr "%s hat gerade %ss blaue Kugel bemerkt"
+
+#: qcsrc/server/w_electro.qc:582
+#, c-format
+msgid "%s got in touch with %s's blue ball"
+msgstr "%s kam mit %ss blauer Kugel in Kontakt"
+
+#: qcsrc/server/w_electro.qc:587
+#, c-format
+msgid "%s felt the electrifying air of %s's combo"
+msgstr "%s hat gespürt, wie %ss Combo die Luft elektrisierte"
+
+#: qcsrc/server/w_electro.qc:589
+#, c-format
+msgid "%s got too close to %s's blue beam"
+msgstr "%s kam zu nah an %ss blauen Strahl"
+
+#: qcsrc/server/w_electro.qc:591
+#, c-format
+msgid "%s was blasted by %s's blue beam"
+msgstr "%s wurde von %ss blauen Strahl erwischt"
+
+#: qcsrc/server/w_fireball.qc:2
+msgid "Fireball"
+msgstr "Fireball"
+
+#: qcsrc/server/w_fireball.qc:417
+#, c-format
+msgid "%s forgot about some firemine"
+msgstr "%s hat den Platz einer Feuermine vergessen"
+
+#: qcsrc/server/w_fireball.qc:419 qcsrc/server/w_hlac.qc:240
+#, c-format
+msgid "%s should have used a smaller gun"
+msgstr "%s hätte eine kleinere Waffe nehmen sollen"
+
+#: qcsrc/server/w_fireball.qc:426
+#, c-format
+msgid "%s tried to catch %s's firemine"
+msgstr "%s hat versucht %ss Feuermine zu fangen"
+
+#: qcsrc/server/w_fireball.qc:428
+#, c-format
+msgid "%s fatefully ignored %s's firemine"
+msgstr "%s hat tragischerweise %ss Feuermine ignoriert"
+
+#: qcsrc/server/w_fireball.qc:435
+#, c-format
+msgid "%s could not hide from %s's fireball"
+msgstr "%s konnte sich nicht vor %ss Feuerball verstecken"
+
+#: qcsrc/server/w_fireball.qc:437
+#, c-format
+msgid "%s saw the pretty lights of %s's fireball"
+msgstr "%s hat die hübschen Lichter von %ss Feuerball gesehen"
+
+#: qcsrc/server/w_fireball.qc:440
+#, c-format
+msgid "%s got too close to %s's fireball"
+msgstr "%s ist %ss Feuerball zu nahe getreten"
+
+#: qcsrc/server/w_fireball.qc:442
+#, c-format
+msgid "%s tasted %s's fireball"
+msgstr "%s hat von %ss Feuerball probiert"
+
+#: qcsrc/server/w_grenadelauncher.qc:2
+msgid "Mortar"
+msgstr "Mortar"
+
+#: qcsrc/server/w_grenadelauncher.qc:378
+#, c-format
+msgid "%s tried out his own grenade"
+msgstr "%s wollte wissen, ob seine Granate funktioniert"
+
+#: qcsrc/server/w_grenadelauncher.qc:380
+#, c-format
+msgid "%s detonated"
+msgstr "%s verfing sich in der eigenen Detonation"
+
+#: qcsrc/server/w_grenadelauncher.qc:386
+#, c-format
+msgid "%s didn't see %s's grenade"
+msgstr "%s hat %ss Granate nicht gesehen"
+
+#: qcsrc/server/w_grenadelauncher.qc:388
+#, c-format
+msgid "%s almost dodged %s's grenade"
+msgstr "%s ist fast %ss Granate ausgewichen"
+
+#: qcsrc/server/w_grenadelauncher.qc:390
+#, c-format
+msgid "%s ate %s's grenade"
+msgstr "%s nahm %ss Granate in den Mund"
+
+#: qcsrc/server/w_hagar.qc:2
+msgid "Hagar"
+msgstr "Hagar"
+
+#: qcsrc/server/w_hagar.qc:209 qcsrc/server/w_seeker.qc:655
+#, c-format
+msgid "%s played with tiny rockets"
+msgstr "%s hat mit kleinen Raketen gespielt"
+
+#: qcsrc/server/w_hagar.qc:213
+#, c-format
+msgid "%s hoped %s's missiles wouldn't bounce"
+msgstr "%s hat gehofft, dass %ss Raketen nicht von Wänden abprallen"
+
+#: qcsrc/server/w_hagar.qc:215 qcsrc/server/w_seeker.qc:661
+#, c-format
+msgid "%s was pummeled by %s"
+msgstr "^1%s^1 wurde von %s^1 erwischt"
+
+#: qcsrc/server/w_hlac.qc:2
+msgid "Heavy Laser Assault Cannon"
+msgstr "Heavy Laser Assault Cannon"
+
+#: qcsrc/server/w_hlac.qc:242
+#, c-format
+msgid "%s was cut down by %s"
+msgstr "^1%s^1 wurde von %s^1 niedergehauen"
+
+#: qcsrc/server/w_hook.qc:2
+msgid "Grappling Hook"
+msgstr "Grappling Hook"
+
+#: qcsrc/server/w_hook.qc:266 qcsrc/server/w_minstanex.qc:290
+#: qcsrc/server/w_nex.qc:267 qcsrc/server/w_porto.qc:296
+#: qcsrc/server/w_shotgun.qc:203 qcsrc/server/w_uzi.qc:317
+#, c-format
+msgid "%s did the impossible"
+msgstr "%s hat das Unmögliche geschafft"
+
+#: qcsrc/server/w_hook.qc:268
+#, c-format
+msgid "%s has run into %s's gravity bomb"
+msgstr "%s ist in %ss Gravitationsbombe reingelaufen"
+
+#: qcsrc/server/w_laser.qc:2
+msgid "Laser"
+msgstr "Laser"
+
+#: qcsrc/server/w_laser.qc:305
+#, c-format
+msgid "%s lasered themself to hell"
+msgstr "%s hat sich in die Hölle gelasert"
+
+#: qcsrc/server/w_laser.qc:309
+#, c-format
+msgid "%s was cut in half by %s's gauntlet"
+msgstr "%s ist von %ss Gauntlet halbiert worden"
+
+#: qcsrc/server/w_laser.qc:311
+#, c-format
+msgid "%s was lasered to death by %s"
+msgstr "^1%s^1 wurde von %s^1 zu Tode gelasert"
+
+#: qcsrc/server/w_minelayer.qc:2
+msgid "Mine Layer"
+msgstr "Mine Layer"
+
+#: qcsrc/server/w_minelayer.qc:495 qcsrc/server/w_rocketlauncher.qc:500
+#, c-format
+msgid "%s exploded"
+msgstr "%s ist explodiert"
+
+#: qcsrc/server/w_minelayer.qc:499
+#, c-format
+msgid "%s got too close to %s's mine"
+msgstr "%s ist %ss Mine zu nahe getreten"
+
+#: qcsrc/server/w_minelayer.qc:501
+#, c-format
+msgid "%s almost dodged %s's mine"
+msgstr "%s ist fast %ss Mine ausgewichen"
+
+#: qcsrc/server/w_minelayer.qc:503
+#, c-format
+msgid "%s stepped on %s's mine"
+msgstr "%s ist auf %ss Mine gelatscht"
+
+#: qcsrc/server/w_minstanex.qc:2
+msgid "MinstaNex"
+msgstr "MinstaNex"
+
+#: qcsrc/server/w_minstanex.qc:292 qcsrc/server/w_nex.qc:269
+#, c-format
+msgid "%s has been vaporized by %s"
+msgstr "^1%s^1 wurde von %s^1 vernichtet"
+
+#: qcsrc/server/w_nex.qc:2
+msgid "Nex"
+msgstr "Nex"
+
+#: qcsrc/server/w_porto.qc:2
+msgid "Port-O-Launch"
+msgstr "Port-O-Launch"
+
+#: qcsrc/server/w_porto.qc:298
+#, c-format
+msgid "%s felt %s doing the impossible to him"
+msgstr "%s hat gespürt, wie %s das Unmögliche für ihn getan hat"
+
+#: qcsrc/server/w_rocketlauncher.qc:2
+msgid "Rocket Launcher"
+msgstr "Rocket Launcher"
+
+#: qcsrc/server/w_rocketlauncher.qc:504
+#, c-format
+msgid "%s got too close to %s's rocket"
+msgstr "%s ist %ss Rakete zu nahe getreten"
+
+#: qcsrc/server/w_rocketlauncher.qc:506
+#, c-format
+msgid "%s almost dodged %s's rocket"
+msgstr "%s ist fast %ss Rakete ausgewichen"
+
+#: qcsrc/server/w_rocketlauncher.qc:508
+#, c-format
+msgid "%s ate %s's rocket"
+msgstr "%s hat %ss Rakete in den Mund genommen"
+
+#: qcsrc/server/w_seeker.qc:2
+msgid "T.A.G. Seeker"
+msgstr "T.A.G. Seeker"
+
+#: qcsrc/server/w_seeker.qc:659
+#, c-format
+msgid "%s was tagged by %s"
+msgstr "^1%s^1 wurde von %s^1 getagged"
+
+#: qcsrc/server/w_shotgun.qc:2
+msgid "Shotgun"
+msgstr "Shotgun"
+
+#: qcsrc/server/w_shotgun.qc:207
+#, c-format
+msgid "%2$s ^7slapped %1$s ^7around a bit with a large ^2shotgun"
+msgstr "%2$1s ^7hat %1$s ^7ein wenig mit einer großen Schrotflinte geschlagen"
+
+#: qcsrc/server/w_shotgun.qc:209
+#, c-format
+msgid "%s was gunned by %s"
+msgstr "^1%s^1 wurde von %s^1 erschossen"
+
+#: qcsrc/server/w_sniperrifle.qc:2
+msgid "Sniper Rifle"
+msgstr "Sniper Rifle"
+
+#: qcsrc/server/w_sniperrifle.qc:229
+#, c-format
+msgid "%s shot themself automatically"
+msgstr "%s hat sich vollautomatisch selbst erschossen"
+
+#: qcsrc/server/w_sniperrifle.qc:231
+#, c-format
+msgid "%s sniped themself somehow"
+msgstr "%s hat so scharf geschossen, dass er sich selbst getroffen hat"
+
+#: qcsrc/server/w_sniperrifle.qc:238
+#, c-format
+msgid "%s failed to hide from %s's bullet hail"
+msgstr "%s hat es nicht geschafft, sich vor %ss Kugelhagel zu verstecken"
+
+#: qcsrc/server/w_sniperrifle.qc:240
+#, c-format
+msgid "%s died in %s's bullet hail"
+msgstr "%s ist in %ss Kugelhagel gefallen"
+
+#: qcsrc/server/w_sniperrifle.qc:247
+#, c-format
+msgid "%s failed to hide from %s's rifle"
+msgstr "%s hat es nicht geschafft, sich vor %ss Gewehr zu verstecken"
+
+#: qcsrc/server/w_sniperrifle.qc:252
+#, c-format
+msgid "%s got hit in the head by %s"
+msgstr "%s hat ein Loch im Kopf bekommen; schuld war %s"
+
+#: qcsrc/server/w_sniperrifle.qc:254 qcsrc/server/w_uzi.qc:321
+#, c-format
+msgid "%s was sniped by %s"
+msgstr "^1%s^1 wurde von %s^1 erledigt"
+
+#: qcsrc/server/w_tuba.qc:2
+#, c-format
+msgid "@!#%'n Tuba"
+msgstr "@!#%'n Tuba"
+
+#: qcsrc/server/w_tuba.qc:263
+#, c-format
+msgid "%s hurt his own ears with the @!#%%'n Tuba"
+msgstr ""
+"%s haben die Ohren geschmerzt von seinem eigenen Spiel auf der @!#%%'n Tuba"
+
+#: qcsrc/server/w_tuba.qc:267
+#, c-format
+msgid "%s died of %s's great playing on the @!#%%'n Tuba"
+msgstr ""
+"%s ist an seinen Ohrenschmerzen, die von %ss großartigem Spiel auf der @!#"
+"%%'n Tuba stammten, gestorben"
+
+#: qcsrc/server/w_uzi.qc:2
+msgid "Machine Gun"
+msgstr "Machine Gun"
+
+#: qcsrc/server/w_uzi.qc:323
+#, c-format
+msgid "%s was riddled full of holes by %s"
+msgstr "%s ist von %s durchlöchert worden wie ein Schweizer Käse"
diff --git a/csprogs.dat.de.po.disabled b/csprogs.dat.de.po.disabled
deleted file mode 100644 (file)
index 495744c..0000000
+++ /dev/null
@@ -1,1446 +0,0 @@
-# Xonotic CSQC
-# Copyright (C) 2011 Team Xonotic
-# This file is distributed under the same license as the Xonotic package.
-# Rudolf Polzer <divVerent@xonotic.org>, 2011.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: 0.1preview\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-20 20:17+0100\n"
-"PO-Revision-Date: 2011-01-20 20:16+0100\n"
-"Last-Translator: Rudolf Polzer <divVerent@xonotic.org>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: qcsrc/client/Main.qc:30
-msgid "ERROR - MENU IS VISIBLE BUT NO MENU WAS DEFINED!"
-msgstr "FEHLER - MENÜ IST SICHTBAR ABER KEIN MENÜ WURDE DEFINIERT!"
-
-#: qcsrc/client/Main.qc:56
-msgid ""
-"^3Your engine build is outdated\n"
-"^3This Server uses a newer QC VM. Please update!\n"
-msgstr ""
-"^3Diese Engine ist veraltet.\n"
-"^3Dieser Server verwendet eine neuere QC VM. Bitte updaten!\n"
-
-#: qcsrc/client/Main.qc:66
-#, c-format
-msgid "^4CSQC Build information: %s\n"
-msgstr "^4CSQC Build-Information: %s (deutsch)\n"
-
-#: qcsrc/client/Main.qc:227 qcsrc/client/Main.qc:243
-#, c-format
-msgid "trying to switch to unsupported team %d\n"
-msgstr "es wurde versucht, in das nicht unterstützte Team %d zu wechseln"
-
-#: qcsrc/client/Main.qc:359 qcsrc/client/scoreboard.qc:240
-msgid "Usage:\n"
-msgstr "Syntax:\n"
-
-#: qcsrc/client/Main.qc:360
-msgid "hud_save configname   (saves to hud_skinname_configname.cfg)\n"
-msgstr "hud_save configname   (speichert als hud_skinname_configname.cfg)\n"
-
-#: qcsrc/client/Main.qc:507
-msgid "Usage: cl_cmd COMMAND..., where possible commands are:\n"
-msgstr "Syntax: cl_cmd BEFEHL..., wobei mögliche Befehle sind:\n"
-
-#: qcsrc/client/Main.qc:508
-msgid "  settemp cvar value\n"
-msgstr "  settemp Cvar Wert\n"
-
-#: qcsrc/client/Main.qc:509
-msgid "  scoreboard_columns_set ...\n"
-msgstr "  scoreboard_columns_set ...\n"
-
-#: qcsrc/client/Main.qc:510
-msgid "  scoreboard_columns_help\n"
-msgstr "  scoreboard_columns_help\n"
-
-#: qcsrc/client/Main.qc:715
-msgid "A CSQC entity changed its owner!\n"
-msgstr "Ein CSQC-Entity hat seinen Besitzer gewechselt!\n"
-
-#: qcsrc/client/Main.qc:929
-msgid "A CSQC entity changed its type!\n"
-msgstr "Ein CSQC-Entity hat seinen Typ gewechselt!\n"
-
-#: qcsrc/client/Main.qc:966
-#, c-format
-msgid "unknown entity type in CSQC_Ent_Update: %d\n"
-msgstr "unbekannter Entity-Typ in CSQC_Ent_Update: %d\n"
-
-#: qcsrc/client/Main.qc:1438
-#, c-format
-msgid "%s (not bound)"
-msgstr "%s (nicht zugewiesen)"
-
-#: qcsrc/client/Main.qc:1443 qcsrc/client/hud.qc:398
-#, c-format
-msgid "%s (%s)"
-msgstr "%s (%s)"
-
-#: qcsrc/client/ctf.qc:35
-msgid "----- Order Menu -----"
-msgstr "----- Auftragsmenü -----"
-
-#: qcsrc/client/ctf.qc:36
-#, c-format
-msgid "Order: %s"
-msgstr "Auftrag: %s"
-
-#: qcsrc/client/ctf.qc:37
-msgid "1) ^3previous page"
-msgstr "1) ^3vorherige Seite"
-
-#: qcsrc/client/ctf.qc:38
-msgid "2) ^3next page"
-msgstr "2) ^3nächste Seite"
-
-#: qcsrc/client/ctf.qc:55 qcsrc/client/ctf.qc:161
-msgid "ESC) Exit Menu"
-msgstr "ESC) Menü verlassen"
-
-#: qcsrc/client/ctf.qc:126
-#, c-format
-msgid "Couldn't find player %d\n"
-msgstr "Kann Spieler %d nicht finden\n"
-
-#: qcsrc/client/ctf.qc:154
-msgid "----- Command Menu -----"
-msgstr "---- Befehlsmenü -----"
-
-#: qcsrc/client/ctf.qc:155
-msgid "Issue orders:"
-msgstr "Auftrag geben:"
-
-#: qcsrc/client/ctf.qc:156
-#, fuzzy
-msgid " 1) Attack"
-msgstr " 1) Angreifen"
-
-#: qcsrc/client/ctf.qc:158
-msgid " 2) Defend"
-msgstr " 2) Verteidigen"
-
-#: qcsrc/client/ctf.qc:160
-msgid "3) Resign from command."
-msgstr "3) Befehlsgewalt abgeben."
-
-#: qcsrc/client/ctf.qc:212
-msgid "You're commander!"
-msgstr "Sie sind Befehlshaber!"
-
-#: qcsrc/client/ctf.qc:215
-msgid "Awaiting orders..."
-msgstr "Warten auf Auftrag..."
-
-#: qcsrc/client/hud.qc:328
-msgid "1st"
-msgstr "1."
-
-#: qcsrc/client/hud.qc:330
-msgid "2nd"
-msgstr "2."
-
-#: qcsrc/client/hud.qc:332
-msgid "3rd"
-msgstr "3."
-
-#: qcsrc/client/hud.qc:334
-#, c-format
-msgid "%dth"
-msgstr "%d."
-
-#: qcsrc/client/hud.qc:366
-#, c-format
-msgid " (-%dL)"
-msgstr " (-%dR)"
-
-#: qcsrc/client/hud.qc:371
-#, c-format
-msgid " (+%dL)"
-msgstr " (+%dR)"
-
-#: qcsrc/client/hud.qc:387
-msgid "Start line"
-msgstr "Start"
-
-#: qcsrc/client/hud.qc:389 qcsrc/client/hud.qc:393
-msgid "Finish line"
-msgstr "Ziel"
-
-#: qcsrc/client/hud.qc:391
-#, c-format
-msgid "Intermediate %d"
-msgstr "Zwischenzeit %d"
-
-#: qcsrc/client/hud.qc:400
-#, c-format
-msgid "%s (%s %s)"
-msgstr "%s (%s %s)"
-
-#: qcsrc/client/hud.qc:542
-#, c-format
-msgid "^2Successfully exported to %s! (Note: It's saved in data/data/)\n"
-msgstr "^2Erfolgreich als %s exportiert! (Hinweis: die Datei wurde in data/data/ abgelegt)\n"
-
-#: qcsrc/client/hud.qc:546
-msgid "^1Couldn't write to %s\n"
-msgstr "^1Konnte nicht nach %s schreiben\n"
-
-#: qcsrc/client/hud.qc:1830
-msgid "Don't have"
-msgstr "nicht vorhanden"
-
-#: qcsrc/client/hud.qc:1834
-msgid "Unavailable"
-msgstr "nicht verfügbar"
-
-#: qcsrc/client/hud.qc:2685
-#, c-format
-msgid "^1%s^1 couldn't take it anymore\n"
-msgstr "^1%s^1 konnte es nicht mehr ertragen\n"
-
-#: qcsrc/client/hud.qc:2689 qcsrc/client/hud.qc:2981
-#, c-format
-msgid "^1%s^1 died\n"
-msgstr "^1%s^1 ist gestorben\n"
-
-#: qcsrc/client/hud.qc:2693
-#, c-format
-msgid "^7%s^7 committed suicide. What's the point of living without ammo?\n"
-msgstr "^7%s^7 hat sich erhängt. Was ist schon ein Leben ohne Munition?\n"
-
-#: qcsrc/client/hud.qc:2697
-#, c-format
-msgid "^1%s^1 thought they found a nice camping ground\n"
-msgstr "^1%s^1 dachte, einen tollen Campingplatz gefunden zu haben\n"
-
-#: qcsrc/client/hud.qc:2701
-#, c-format
-msgid "^1%s^1 didn't become friends with the Lord of Teamplay\n"
-msgstr "^1%s^1 bekam Probleme mit dem Lord of Teamplay\n"
-
-#: qcsrc/client/hud.qc:2705
-#, c-format
-msgid "^1%s^1 unfairly eliminated themself\n"
-msgstr "^1%s^1 hat sich selbst auf unfaire Weise erledigt\n"
-
-#: qcsrc/client/hud.qc:2709
-#, c-format
-msgid "^1%s^1 burned to death\n"
-msgstr "^1%s^1 brannte zu Tode\n"
-
-#: qcsrc/client/hud.qc:2713
-#, c-format
-msgid "^1%s^1 couldn't resist the urge to self-destruct\n"
-msgstr "^1%s^1 konnte dem Drang zur Selbstzerstörung einfach nicht widerstehen\n"
-
-#: qcsrc/client/hud.qc:2717
-#, c-format
-msgid "^1%s^1 ended it all after a %d kill spree\n"
-msgstr "^1%s^1 machte seinem %d-Amoklauf ein Ende\n"
-
-#: qcsrc/client/hud.qc:2734
-#, c-format
-msgid "^1%s^1 took action against a team mate\n"
-msgstr "^1%s^1 ergriff Maßnahmen gegen einen Mitspieler\n"
-
-#: qcsrc/client/hud.qc:2736
-#, c-format
-msgid "^1%s^1 mows down a team mate\n"
-msgstr "^1%s^1 mähte einen Mitspieler nieder\n"
-
-#: qcsrc/client/hud.qc:2741
-#, c-format
-msgid "^1%s^1 ended a %d scoring spree by going against a team mate\n"
-msgstr "^1%s^1 dachte, %d Punkte hintereinander reichen, und trug dies an einem Mitspieler aus\n"
-
-#: qcsrc/client/hud.qc:2743
-#, c-format
-msgid "^1%s^1 ended a %d kill spree by killing a team mate\n"
-msgstr "^1%s^1 beendete seinen %d-Amoklauf, indem er einen Mitspieler tötete\n"
-
-#: qcsrc/client/hud.qc:2747
-#, c-format
-msgid "^1%s^1's %s scoring spree was ended by a team mate!\n"
-msgstr "^1%s^1s %s Punkte hintereinander wurden von einem Mitspieler gestört!\n"
-
-#: qcsrc/client/hud.qc:2749
-#, c-format
-msgid "^1%s^1's %s kill spree was ended by a team mate!\n"
-msgstr "^1%s^1s %s-Amoklauf wurde von einem Mitspieler beendet!\n"
-
-#: qcsrc/client/hud.qc:2757
-#, c-format
-msgid "^1%s^1 tried to occupy %s^1's teleport destination space\n"
-msgstr "^1%s^1 dachte, %s^1 am Teleportieren hindern zu können\n"
-
-#: qcsrc/client/hud.qc:2759
-#, c-format
-msgid "^1%s^1 was telefragged by %s\n"
-msgstr "^1%s^1 wurde von %s^1 telefragged\n"
-
-#: qcsrc/client/hud.qc:2764
-#, c-format
-msgid "^1%s^1 was drowned by %s\n"
-msgstr "^1%s^1 wurde von %s^1 etränkt\n"
-
-#: qcsrc/client/hud.qc:2769
-#, c-format
-msgid "^1%s^1 was slimed by %s\n"
-msgstr "^1%s^1 wurde von %s^1 im Schleim versenkt\n"
-
-#: qcsrc/client/hud.qc:2774
-#, c-format
-msgid "^1%s^1 was cooked by %s\n"
-msgstr "^1%s^1 wurde von %s^1 gebraten\n"
-
-#: qcsrc/client/hud.qc:2779
-#, c-format
-msgid "^1%s^1 was grounded by %s\n"
-msgstr "^1%a^1 wurde von %s^1 geerdet\n"
-
-#: qcsrc/client/hud.qc:2784
-#, c-format
-msgid "^1%s^1 was shot into space by %s\n"
-msgstr "^1%s^1 wurde von %s^1 ins All geschossen\n"
-
-#: qcsrc/client/hud.qc:2789
-#, c-format
-msgid "^1%s^1 was conserved by %s\n"
-msgstr "^1%s^1 wurde von %s^1 konserviert\n"
-
-#: qcsrc/client/hud.qc:2795
-#, c-format
-msgid "^1%s^1 was thrown into a world of hurt by %s\n"
-msgstr "^1%s^1 wurde von %s^1 in eine Welt des Schmerzes geworfen\n"
-
-#: qcsrc/client/hud.qc:2799
-#, c-format
-msgid "^1%s^1 was crushed by ^1%s\n"
-msgstr "^1%s^1 wurde von %s^1 zerquetscht\n"
-
-#: qcsrc/client/hud.qc:2803
-#, c-format
-msgid "^1%s^1 got shredded by ^1%s\n"
-msgstr ""
-
-#: qcsrc/client/hud.qc:2807
-#, c-format
-msgid "^1%s^1 was blased to bits by ^1%s\n"
-msgstr ""
-
-#: qcsrc/client/hud.qc:2811
-#, c-format
-msgid "^1%s^1 got caught in the destruction of ^1%s's vehicle\n"
-msgstr ""
-
-#: qcsrc/client/hud.qc:2815
-#, c-format
-msgid "^1%s^1 was bolted down by ^1%s\n"
-msgstr ""
-
-#: qcsrc/client/hud.qc:2819
-#, c-format
-msgid "^1%s^1 could find no shelter from ^1%s's rockets\n"
-msgstr ""
-
-#: qcsrc/client/hud.qc:2823
-#, c-format
-msgid "^1%s^1 dies when ^1%s's wakizashi dies.\n"
-msgstr ""
-
-#: qcsrc/client/hud.qc:2827
-#, c-format
-msgid "^1%s^1 was pushed into the line of fire by ^1%s\n"
-msgstr ""
-
-#: qcsrc/client/hud.qc:2831
-#, c-format
-msgid "^1%s^1 was pushed into an accident by ^1%s\n"
-msgstr ""
-
-#: qcsrc/client/hud.qc:2835
-#, c-format
-msgid "^1%s^1 was unfairly eliminated by ^1%s\n"
-msgstr ""
-
-#: qcsrc/client/hud.qc:2839
-#, c-format
-msgid "^1%s^1 was burnt to death by ^1%s\n"
-msgstr ""
-
-#: qcsrc/client/hud.qc:2851
-#, c-format
-msgid "^1%s^1 was fragged by %s\n"
-msgstr ""
-
-#: qcsrc/client/hud.qc:2856
-#, c-format
-msgid "^1%s^1's %s scoring spree was ended by %s\n"
-msgstr ""
-
-#: qcsrc/client/hud.qc:2858
-#, c-format
-msgid "^1%s^1's %s kill spree was ended by %s\n"
-msgstr ""
-
-#: qcsrc/client/hud.qc:2861
-#, c-format
-msgid "^1%s^1 made %s scores in a row\n"
-msgstr ""
-
-#: qcsrc/client/hud.qc:2863
-#, c-format
-msgid "^1%s^1 has %s frags in a row\n"
-msgstr ""
-
-#: qcsrc/client/hud.qc:2866
-#, c-format
-msgid "%s^7 made a ^1TRIPLE SCORE\n"
-msgstr ""
-
-#: qcsrc/client/hud.qc:2868
-#, c-format
-msgid "%s^7 made a ^1TRIPLE FRAG\n"
-msgstr ""
-
-#: qcsrc/client/hud.qc:2871
-#, c-format
-msgid "%s^7 unleashes ^1SCORING RAGE\n"
-msgstr ""
-
-#: qcsrc/client/hud.qc:2873
-#, c-format
-msgid "%s^7 unleashes ^1RAGE\n"
-msgstr ""
-
-#: qcsrc/client/hud.qc:2876
-#, c-format
-msgid "%s^7 made ^1TEN SCORES IN A ROW!\n"
-msgstr ""
-
-#: qcsrc/client/hud.qc:2878
-#, c-format
-msgid "%s^7 starts the ^1MASSACRE!\n"
-msgstr ""
-
-#: qcsrc/client/hud.qc:2881
-#, c-format
-msgid "%s^7 made ^1FIFTEEN SCORES IN A ROW!\n"
-msgstr ""
-
-#: qcsrc/client/hud.qc:2883
-#, c-format
-msgid "%s^7 executes ^1MAYHEM!\n"
-msgstr ""
-
-#: qcsrc/client/hud.qc:2886
-#, c-format
-msgid "%s^7 made ^1TWENTY SCORES IN A ROW!\n"
-msgstr ""
-
-#: qcsrc/client/hud.qc:2888
-#, c-format
-msgid "%s^7 is a ^1BERSERKER!\n"
-msgstr ""
-
-#: qcsrc/client/hud.qc:2891
-#, c-format
-msgid "%s^7 made ^1TWENTY FIFE SCORES IN A ROW!\n"
-msgstr ""
-
-#: qcsrc/client/hud.qc:2893
-#, c-format
-msgid "%s^7 inflicts ^1CARNAGE!\n"
-msgstr ""
-
-#: qcsrc/client/hud.qc:2896
-#, c-format
-msgid "%s^7 made ^1THIRTY SCORES IN A ROW!\n"
-msgstr ""
-
-#: qcsrc/client/hud.qc:2898
-#, c-format
-msgid "%s^7 unleashes ^1ARMAGEDDON!\n"
-msgstr ""
-
-#: qcsrc/client/hud.qc:2906
-#, c-format
-msgid "^1%s^1 was in the water for too long\n"
-msgstr ""
-
-#: qcsrc/client/hud.qc:2908
-#, c-format
-msgid "^1%s^1 drowned\n"
-msgstr ""
-
-#: qcsrc/client/hud.qc:2919
-#, c-format
-msgid "^1%s^1 found a hot place\n"
-msgstr ""
-
-#: qcsrc/client/hud.qc:2921
-#, c-format
-msgid "^1%s^1 turned into hot slag\n"
-msgstr ""
-
-#: qcsrc/client/hud.qc:2928
-#, c-format
-msgid "^1%s^1 tested gravity (and it worked)\n"
-msgstr ""
-
-#: qcsrc/client/hud.qc:2930
-#, c-format
-msgid "^1%s^1 hit the ground with a crunch\n"
-msgstr ""
-
-#: qcsrc/client/hud.qc:2935
-#, c-format
-msgid "^1%s^1 became a shooting star\n"
-msgstr ""
-
-#: qcsrc/client/hud.qc:2941
-#, c-format
-msgid "^1%s^1 discovered a swamp\n"
-msgstr ""
-
-#: qcsrc/client/hud.qc:2943
-#, c-format
-msgid "^1%s^1 is now conserved for centuries to come\n"
-msgstr ""
-
-#: qcsrc/client/hud.qc:2948
-#, c-format
-msgid "^1%s^1 was mowed down by a turret \n"
-msgstr ""
-
-#: qcsrc/client/hud.qc:2960
-#, c-format
-msgid "^1%s^1 died in an accident\n"
-msgstr ""
-
-#: qcsrc/client/hud.qc:2964
-#, c-format
-msgid "^1%s^1 was unfairly eliminated\n"
-msgstr ""
-
-#: qcsrc/client/hud.qc:2970
-#, c-format
-msgid "^1%s^1 felt a little hot\n"
-msgstr ""
-
-#: qcsrc/client/hud.qc:2972
-#, c-format
-msgid "^1%s^1 burnt to death\n"
-msgstr ""
-
-#: qcsrc/client/hud.qc:2979
-#, c-format
-msgid "^1%s^1 needs a restart\n"
-msgstr ""
-
-#: qcsrc/client/hud.qc:2986
-#, c-format
-msgid "^1%s^1 needs a restart after a %d scoring spree\n"
-msgstr ""
-
-#: qcsrc/client/hud.qc:2988
-#, c-format
-msgid "^1%s^1 died with a %d kill spree\n"
-msgstr ""
-
-#: qcsrc/client/hud.qc:2992
-#, c-format
-msgid "%s^7 got the %s\n"
-msgstr ""
-
-#: qcsrc/client/hud.qc:2995
-#, c-format
-msgid "%s^7 lost the %s\n"
-msgstr ""
-
-#: qcsrc/client/hud.qc:2998
-#, c-format
-msgid "%s^7 picked up the %s\n"
-msgstr ""
-
-#: qcsrc/client/hud.qc:3001
-#, c-format
-msgid "%s^7 returned the %s\n"
-msgstr ""
-
-#: qcsrc/client/hud.qc:3004
-msgid "%1^7 captured the %s%s\n"
-msgstr ""
-
-#: qcsrc/client/hud.qc:3023
-#, c-format
-msgid "%s^7 has picked up the ball!\n"
-msgstr ""
-
-#: qcsrc/client/hud.qc:3028
-#, c-format
-msgid "%s^7 has dropped the ball!\n"
-msgstr ""
-
-#: qcsrc/client/hud.qc:3041
-#, c-format
-msgid "You are now on: %s"
-msgstr ""
-
-#: qcsrc/client/hud.qc:3043
-#, c-format
-msgid ""
-"You have been moved into a different team to improve team balance\n"
-"You are now on: %s"
-msgstr ""
-
-#: qcsrc/client/hud.qc:3046
-msgid "^1Reconsider your tactics, camper!"
-msgstr ""
-
-#: qcsrc/client/hud.qc:3048
-msgid "^1Die camper!"
-msgstr ""
-
-#: qcsrc/client/hud.qc:3051
-msgid "^1You are reinserted into the game for running out of ammo..."
-msgstr ""
-
-#: qcsrc/client/hud.qc:3053
-msgid "^1You were killed for running out of ammo..."
-msgstr ""
-
-#: qcsrc/client/hud.qc:3056
-msgid "^1You need to preserve your health"
-msgstr ""
-
-#: qcsrc/client/hud.qc:3058
-msgid "^1You grew too old without taking your medicine"
-msgstr ""
-
-#: qcsrc/client/hud.qc:3061
-msgid "^1Don't go against team mates!"
-msgstr ""
-
-#: qcsrc/client/hud.qc:3063
-msgid "^1Don't shoot your team mates!"
-msgstr ""
-
-#: qcsrc/client/hud.qc:3068
-msgid "^1You need to be more careful!"
-msgstr ""
-
-#: qcsrc/client/hud.qc:3070
-msgid "^1You killed your own dumb self!"
-msgstr ""
-
-#: qcsrc/client/hud.qc:3075
-#, c-format
-msgid "^1Moron! You went against %s, a team mate!"
-msgstr ""
-
-#: qcsrc/client/hud.qc:3077
-#, c-format
-msgid "^1Moron! You fragged %s, a team mate!"
-msgstr ""
-
-#: qcsrc/client/hud.qc:3081
-msgid "^1First score"
-msgstr ""
-
-#: qcsrc/client/hud.qc:3083
-msgid "^1First blood"
-msgstr ""
-
-#: qcsrc/client/hud.qc:3087
-msgid "^1First casualty"
-msgstr ""
-
-#: qcsrc/client/hud.qc:3089
-msgid "^1First victim"
-msgstr ""
-
-#: qcsrc/client/hud.qc:3093
-#, c-format
-msgid "^1You scored against ^7%s^1 who was typing!"
-msgstr ""
-
-#: qcsrc/client/hud.qc:3095
-#, c-format
-msgid "^1You typefragged ^7%s"
-msgstr ""
-
-#: qcsrc/client/hud.qc:3099
-#, c-format
-msgid "^1You were scored against by ^7%s^1 while you were typing!"
-msgstr ""
-
-#: qcsrc/client/hud.qc:3101
-#, c-format
-msgid "^1You were typefragged by ^7%s"
-msgstr ""
-
-#: qcsrc/client/hud.qc:3105
-#, c-format
-msgid "^4You scored against ^7%s"
-msgstr ""
-
-#: qcsrc/client/hud.qc:3107
-#, c-format
-msgid "^4You fragged ^7%s"
-msgstr ""
-
-#: qcsrc/client/hud.qc:3111
-#, c-format
-msgid "^1You were scored against by ^7%s"
-msgstr ""
-
-#: qcsrc/client/hud.qc:3113
-#, c-format
-msgid "^1You were fragged by ^7%s"
-msgstr ""
-
-#: qcsrc/client/hud.qc:3118
-msgid "^1Watch your step!"
-msgstr ""
-
-#: qcsrc/client/hud.qc:3182 qcsrc/client/hud.qc:3183
-#, c-format
-msgid "Player %d"
-msgstr ""
-
-#: qcsrc/client/hud.qc:3779
-msgid "^1Intermediate 1 (+15.42)"
-msgstr ""
-
-#: qcsrc/client/hud.qc:3781 qcsrc/client/hud.qc:3823 qcsrc/client/hud.qc:3864
-#, c-format
-msgid "^1PENALTY: %.1f (%s)"
-msgstr ""
-
-#: qcsrc/client/hud.qc:3866
-#, c-format
-msgid "^2PENALTY: %.1f (%s)"
-msgstr ""
-
-#: qcsrc/client/hud.qc:3891
-msgid "^2Name ^7instead of \"^1Unregistered player\" ^7in stats"
-msgstr ""
-
-#: qcsrc/client/hud.qc:3973
-msgid "A vote has been called for:"
-msgstr ""
-
-#: qcsrc/client/hud.qc:3975
-msgid "Allow servers to store and display your name?"
-msgstr ""
-
-#: qcsrc/client/hud.qc:3979
-msgid "^1Configure the HUD"
-msgstr ""
-
-#: qcsrc/client/hud.qc:3983
-#, c-format
-msgid "Yes (%s): %d"
-msgstr ""
-
-#: qcsrc/client/hud.qc:3985
-#, c-format
-msgid "No (%s): %d"
-msgstr ""
-
-#: qcsrc/client/hud.qc:4498 qcsrc/client/hud.qc:4501 qcsrc/client/hud.qc:4503
-msgid "Personal best"
-msgstr ""
-
-#: qcsrc/client/hud.qc:4516 qcsrc/client/hud.qc:4519 qcsrc/client/hud.qc:4521
-msgid "Server best"
-msgstr ""
-
-#: qcsrc/client/hud.qc:4753
-msgid "^3Player^7: This is the chat area."
-msgstr ""
-
-#: qcsrc/client/hud.qc:4816
-#, c-format
-msgid "FPS: %.*f"
-msgstr ""
-
-#: qcsrc/client/hud.qc:4881
-msgid "^1Observing"
-msgstr ""
-
-#: qcsrc/client/hud.qc:4883
-#, c-format
-msgid "^1Spectating: ^7%s"
-msgstr ""
-
-#: qcsrc/client/hud.qc:4887
-#, c-format
-msgid "^1Press ^3%s^1 to spectate"
-msgstr ""
-
-#: qcsrc/client/hud.qc:4889
-#, c-format
-msgid "^1Press ^3%s^1 for another player"
-msgstr ""
-
-#: qcsrc/client/hud.qc:4893
-#, c-format
-msgid "^1Use ^3%s^1 or ^3%s^1 to change the speed"
-msgstr ""
-
-#: qcsrc/client/hud.qc:4895
-#, c-format
-msgid "^1Press ^3%s^1 to observe"
-msgstr ""
-
-#: qcsrc/client/hud.qc:4898
-#, c-format
-msgid "^1Press ^3%s^1 for gamemode info"
-msgstr ""
-
-#: qcsrc/client/hud.qc:4902
-msgid "^1Wait for your turn to join"
-msgstr ""
-
-#: qcsrc/client/hud.qc:4908
-msgid "^1Match has already begun"
-msgstr ""
-
-#: qcsrc/client/hud.qc:4910
-msgid "^1You have no more lives left"
-msgstr ""
-
-#: qcsrc/client/hud.qc:4912 qcsrc/client/hud.qc:4915
-#, c-format
-msgid "^1Press ^3%s^1 to join"
-msgstr ""
-
-#: qcsrc/client/hud.qc:4923
-#, c-format
-msgid "^1Game starts in ^3%d^1 seconds"
-msgstr ""
-
-#: qcsrc/client/hud.qc:4930
-msgid "^2Currently in ^1warmup^2 stage!"
-msgstr ""
-
-#: qcsrc/client/hud.qc:4945
-#, c-format
-msgid "%sPress ^3%s%s to end warmup"
-msgstr ""
-
-#: qcsrc/client/hud.qc:4947
-#, c-format
-msgid "%sPress ^3%s%s once you are ready"
-msgstr ""
-
-#: qcsrc/client/hud.qc:4952
-msgid "^2Waiting for others to ready up to end warmup..."
-msgstr ""
-
-#: qcsrc/client/hud.qc:4954
-msgid "^2Waiting for others to ready up..."
-msgstr ""
-
-#: qcsrc/client/hud.qc:4981
-msgid "Teamnumbers are unbalanced!"
-msgstr ""
-
-#: qcsrc/client/hud.qc:4994
-msgid "^7Press ^3ESC ^7to show HUD options."
-msgstr ""
-
-#: qcsrc/client/hud.qc:4996
-msgid "^3Doubleclick ^7a panel for panel-specific options."
-msgstr ""
-
-#: qcsrc/client/hud.qc:4998
-msgid "^3CTRL ^7to disable collision testing, ^3SHIFT ^7and"
-msgstr ""
-
-#: qcsrc/client/hud.qc:5000
-msgid "^3ALT ^7+ ^3ARROW KEYS ^7for fine adjustments."
-msgstr ""
-
-#: qcsrc/client/hud.qc:5025
-msgid " qu/s"
-msgstr ""
-
-#: qcsrc/client/hud.qc:5029
-msgid " m/s"
-msgstr ""
-
-#: qcsrc/client/hud.qc:5033
-msgid " km/h"
-msgstr ""
-
-#: qcsrc/client/hud.qc:5037
-msgid " mph"
-msgstr ""
-
-#: qcsrc/client/hud.qc:5041
-msgid " knots"
-msgstr ""
-
-#: qcsrc/client/mapvoting.qc:28
-msgid " (1 vote)"
-msgstr ""
-
-#: qcsrc/client/mapvoting.qc:30
-#, c-format
-msgid " (%d votes)"
-msgstr ""
-
-#: qcsrc/client/mapvoting.qc:113
-msgid "Don't care"
-msgstr ""
-
-#: qcsrc/client/mapvoting.qc:194
-msgid "Vote for a map"
-msgstr ""
-
-#: qcsrc/client/mapvoting.qc:199
-#, c-format
-msgid "%d seconds left"
-msgstr ""
-
-#: qcsrc/client/mapvoting.qc:263
-msgid ""
-"mv_mapdownload: ^3You're not supposed to use this command on your own!\n"
-msgstr ""
-
-#: qcsrc/client/mapvoting.qc:273
-msgid "^1Error:^7 Couldn't find pak index.\n"
-msgstr ""
-
-#: qcsrc/client/mapvoting.qc:282
-msgid "Requesting preview...\n"
-msgstr ""
-
-#: qcsrc/client/miscfunctions.qc:23
-msgid "^1Begin!"
-msgstr ""
-
-#: qcsrc/client/miscfunctions.qc:34
-#, c-format
-msgid "^1Game starts in %d seconds"
-msgstr ""
-
-#: qcsrc/client/miscfunctions.qc:113
-msgid "^1RED^7 flag"
-msgstr ""
-
-#: qcsrc/client/miscfunctions.qc:118
-msgid "^4BLUE^7 flag"
-msgstr ""
-
-#: qcsrc/client/miscfunctions.qc:126
-#, c-format
-msgid "You picked up the %s!"
-msgstr ""
-
-#: qcsrc/client/miscfunctions.qc:130
-#, c-format
-msgid "You got the %s!"
-msgstr ""
-
-#: qcsrc/client/miscfunctions.qc:283
-msgid "Trying to remove a team which is not in the teamlist!"
-msgstr ""
-
-#: qcsrc/client/scoreboard.qc:19
-msgid "SCO^bckills"
-msgstr "BC getötet"
-
-#: qcsrc/client/scoreboard.qc:20
-msgid "SCO^caps"
-msgstr "Caps"
-
-#: qcsrc/client/scoreboard.qc:21
-msgid "SCO^deaths"
-msgstr "Deaths"
-
-#: qcsrc/client/scoreboard.qc:22
-msgid "SCO^destroyed"
-msgstr "zerstört"
-
-#: qcsrc/client/scoreboard.qc:23
-msgid "SCO^drops"
-msgstr "verloren"
-
-#: qcsrc/client/scoreboard.qc:24
-msgid "SCO^faults"
-msgstr "Fehler"
-
-#: qcsrc/client/scoreboard.qc:25
-msgid "SCO^fckills"
-msgstr "FC getötet"
-
-#: qcsrc/client/scoreboard.qc:26
-msgid "SCO^goals"
-msgstr "Tore"
-
-#: qcsrc/client/scoreboard.qc:27
-msgid "SCO^kckills"
-msgstr "KC getötet"
-
-#: qcsrc/client/scoreboard.qc:28
-msgid "SCO^kdratio"
-msgstr "kdratio"
-
-#: qcsrc/client/scoreboard.qc:29
-msgid "SCO^k/d"
-msgstr "k/d"
-
-#: qcsrc/client/scoreboard.qc:30
-msgid "SCO^kd"
-msgstr "kd"
-
-#: qcsrc/client/scoreboard.qc:31
-msgid "SCO^kdr"
-msgstr "kdr"
-
-#: qcsrc/client/scoreboard.qc:32
-msgid "SCO^kills"
-msgstr "Kills"
-
-#: qcsrc/client/scoreboard.qc:33
-msgid "SCO^laps"
-msgstr "Runden"
-
-#: qcsrc/client/scoreboard.qc:34
-msgid "SCO^lives"
-msgstr "Leben"
-
-#: qcsrc/client/scoreboard.qc:35
-msgid "SCO^losses"
-msgstr "verloren"
-
-#: qcsrc/client/scoreboard.qc:36
-msgid "SCO^name"
-msgstr "Name"
-
-#: qcsrc/client/scoreboard.qc:37
-msgid "SCO^nick"
-msgstr "Nick"
-
-#: qcsrc/client/scoreboard.qc:38
-msgid "SCO^objectives"
-msgstr "Objectives"
-
-#: qcsrc/client/scoreboard.qc:39
-msgid "SCO^pickups"
-msgstr "Flaggen"
-
-#: qcsrc/client/scoreboard.qc:40
-msgid "SCO^ping"
-msgstr "Ping"
-
-#: qcsrc/client/scoreboard.qc:41
-msgid "SCO^pl"
-msgstr "PL"
-
-#: qcsrc/client/scoreboard.qc:42
-msgid "SCO^pushes"
-msgstr "Pushes"
-
-#: qcsrc/client/scoreboard.qc:43
-msgid "SCO^rank"
-msgstr "Rang"
-
-#: qcsrc/client/scoreboard.qc:44
-msgid "SCO^returns"
-msgstr "Returns"
-
-#: qcsrc/client/scoreboard.qc:45
-msgid "SCO^revivals"
-msgstr "wiederbelebt"
-
-#: qcsrc/client/scoreboard.qc:46
-msgid "SCO^score"
-msgstr "Punkte"
-
-#: qcsrc/client/scoreboard.qc:47
-msgid "SCO^suicides"
-msgstr "Suiz."
-
-#: qcsrc/client/scoreboard.qc:48
-msgid "SCO^takes"
-msgstr "Übernahmen"
-
-#: qcsrc/client/scoreboard.qc:49
-msgid "SCO^ticks"
-msgstr "Ticks"
-
-#: qcsrc/client/scoreboard.qc:238
-msgid ""
-"You can modify the scoreboard using the ^2scoreboard_columns_set command.\n"
-msgstr ""
-"Sie können die Tabelle mit dem ^2scoreboard_columns_set Befehl ändern.\n"
-
-#: qcsrc/client/scoreboard.qc:239
-msgid "^3|---------------------------------------------------------------|\n"
-msgstr "^3|---------------------------------------------------------------|\n"
-
-#: qcsrc/client/scoreboard.qc:241
-msgid "^2scoreboard_columns_set default\n"
-msgstr "^2scoreboard_columns_set default\n"
-
-#: qcsrc/client/scoreboard.qc:242
-msgid "^2scoreboard_columns_set ^7filed1 field2 ...\n"
-msgstr "^2scoreboard_columns_set ^7filed1 field2 ...\n"
-
-#: qcsrc/client/scoreboard.qc:243
-msgid "The following field names are recognized (case insensitive):\n"
-msgstr "Die folgenden Feldnamen werden akzeptiert:\n"
-
-#: qcsrc/client/scoreboard.qc:244
-msgid ""
-"You can use a ^3|^7 to start the right-aligned fields.\n"
-"\n"
-msgstr "Mit ^3|^7 werden die rechtsbündigen Felder gestartet.\n"
-
-#: qcsrc/client/scoreboard.qc:246
-msgid "^3name^7 or ^3nick^7         Name of a player\n"
-msgstr "^3name^7 or ^3nick^7         Name des Spielers\n"
-
-#: qcsrc/client/scoreboard.qc:247
-msgid "^3ping^7                     Ping time\n"
-msgstr "^3ping^7                     Ping\n"
-
-#: qcsrc/client/scoreboard.qc:248
-msgid "^3pl^7                       Packet loss\n"
-msgstr "^3pl^7                       Paketverlust\n"
-
-#: qcsrc/client/scoreboard.qc:249
-msgid "^3kills^7                    Number of kills\n"
-msgstr "^3kills^7                    Anzahl Kills\n"
-
-#: qcsrc/client/scoreboard.qc:250
-msgid "^3deaths^7                   Number of deaths\n"
-msgstr "^3deaths^7                   Anzahl der Tode\n"
-
-#: qcsrc/client/scoreboard.qc:251
-msgid "^3suicides^7                 Number of suicides\n"
-msgstr "^3suicides^7                 Anzahl der Suizide\n"
-
-#: qcsrc/client/scoreboard.qc:252
-msgid "^3frags^7                    kills - suicides\n"
-msgstr "^3frags^7                    Kills minus Suizide\n"
-
-#: qcsrc/client/scoreboard.qc:253
-msgid "^3kd^7                       The kill-death ratio\n"
-msgstr "^3kd^7                       Das Kill/Death-Ratio\n"
-
-#: qcsrc/client/scoreboard.qc:254
-msgid ""
-"^3caps^7                     How often a flag (CTF) or a key (KeyHunt) was "
-"captured\n"
-msgstr ""
-"^3caps^7                     Wie oft mit der Flagge (CTF) oder den "
-"Schlüssels (KeyHunt) gepunktet wurde\n"
-
-#: qcsrc/client/scoreboard.qc:255
-msgid ""
-"^3pickups^7                  How often a flag (CTF) or a key (KeyHunt) was "
-"picked up\n"
-msgstr ""
-"^3pickups^7                  Wie oft die Flagge/Schlüssel aufgenommen "
-"wurden\n"
-
-#: qcsrc/client/scoreboard.qc:256
-msgid "^3fckills^7                  Number of flag carrier kills\n"
-msgstr "^3fckills^7                  Wieviele Flaggenträger getötet wurden\n"
-
-#: qcsrc/client/scoreboard.qc:257
-msgid "^3returns^7                  Number of flag returns\n"
-msgstr "^3returns^7                  Wie oft die Flagge zurückgebracht wurde\n"
-
-#: qcsrc/client/scoreboard.qc:258
-msgid "^3drops^7                    Number of flag drops\n"
-msgstr "^3drops^7                    Wie oft die Flagge verloren wurde\n"
-
-#: qcsrc/client/scoreboard.qc:259
-msgid "^3lives^7                    Number of lives (LMS)\n"
-msgstr "^3lives^7                    Anzahl Leben (LMS)\n"
-
-#: qcsrc/client/scoreboard.qc:260
-msgid "^3rank^7                     Player rank\n"
-msgstr "^3rank^7                     Rang des Spielers\n"
-
-#: qcsrc/client/scoreboard.qc:261
-msgid "^3pushes^7                   Number of players pushed into void\n"
-msgstr "^3pushes^7                   Anzahl in die Tiefe geworfener Gegner\n"
-
-#: qcsrc/client/scoreboard.qc:262
-msgid ""
-"^3destroyed^7                Number of keys destroyed by pushing them into "
-"void\n"
-msgstr ""
-"^3destroyed^7                Wie oft ein Gegner mit Schlüssel in die Tiefe "
-"geworfen wurde\n"
-
-#: qcsrc/client/scoreboard.qc:263
-msgid "^3kckills^7                  Number of keys carrier kills\n"
-msgstr "^3kckills^7                  Wie oft Key-Carrier getötet wurden\n"
-
-#: qcsrc/client/scoreboard.qc:264
-msgid "^3losses^7                   Number of times a key was lost\n"
-msgstr "^3losses^7                   Anzahl verlorener Schlüssel\n"
-
-#: qcsrc/client/scoreboard.qc:265
-msgid "^3laps^7                     Number of laps finished (race/cts)\n"
-msgstr "^3laps^7                     Anzahl vollendeter Runden (race/cts)\n"
-
-#: qcsrc/client/scoreboard.qc:266
-msgid "^3time^7                     Total time raced (race/cts)\n"
-msgstr "^3time^7                     Gesamtzeit des Rennens (race/cts)\n"
-
-#: qcsrc/client/scoreboard.qc:267
-msgid "^3fastest^7                  Time of fastest lap (race/cts)\n"
-msgstr "^3fastest^7                  Zeit der schnellsten Runde (race/cts)\n"
-
-#: qcsrc/client/scoreboard.qc:268
-msgid "^3ticks^7                    Number of ticks (DOM)\n"
-msgstr "^3ticks^7                    Anzahl der Ticks (DOM)\n"
-
-#: qcsrc/client/scoreboard.qc:269
-msgid "^3takes^7                    Number of domination points taken (DOM)\n"
-msgstr "^3takes^7                    Anzahl eingenommener Dom-Points (DOM)\n"
-
-#: qcsrc/client/scoreboard.qc:270
-msgid ""
-"^3score^7                    Total score\n"
-"\n"
-msgstr ""
-"^3score^7                    Gesamtpunktzahl\n"
-"\n"
-
-#: qcsrc/client/scoreboard.qc:272
-msgid ""
-"Before a field you can put a + or - sign, then a comma separated list\n"
-"of game types, then a slash, to make the field show up only in these\n"
-"or in all but these game types. You can also specify 'all' as a\n"
-"field to show all fields available for the current game mode.\n"
-"\n"
-msgstr ""
-"Vor ein Feld können Sie ein Plus- oder Minuszeichen setzen, anschließend\n"
-"eine durch Kommata getrennte Liste von Spieltypen, dann einen Slash, so "
-"dass\n"
-"das Feld nur in diesen, oder in allen außer diesen Spieltypen erscheint.\n"
-"Außerdem kann \"all\" als Feldname verwendet werden; in diesem Fall "
-"erscheinen\n"
-"sämtliche möglichen Felder im aktuellen Spieltyp.\n"
-"\n"
-
-#: qcsrc/client/scoreboard.qc:277
-msgid ""
-"The special game type names 'teams' and 'noteams' can be used to\n"
-"include/exclude ALL teams/noteams game modes.\n"
-"\n"
-msgstr ""
-"Die speziellen Bezeichner 'teams' und 'noteams' können verwendet werden\n"
-"als Gruppierung aller Teamplay- oder Nicht-Teamplay-Spieltypen.\n"
-"\n"
-
-#: qcsrc/client/scoreboard.qc:280
-msgid "Example: scoreboard_columns_set name ping pl | +ctf/field3 -dm/field4\n"
-msgstr "Beispiel: scoreboard_columns_set name ping pl < +ctf/feld3 dm/feld4\n"
-
-#: qcsrc/client/scoreboard.qc:281
-msgid ""
-"will display name, ping and pl aligned to the left, and the fields\n"
-"right of the vertical bar aligned to the right.\n"
-msgstr ""
-"wird Name, Ping und Paketverlust linksbündig, und die Felder rechts\n"
-"von der Trennlinie (und rechtsbündig) anzeigen.\n"
-
-#: qcsrc/client/scoreboard.qc:283
-msgid ""
-"'field3' will only be shown in CTF, and 'field4' will be shown in all\n"
-"other gamemodes except DM.\n"
-msgstr ""
-"'feld3' wird nur in CTF sichtbar sein, und 'feld4' wird in allen Spieltypen\n"
-"außer DM erscheinen.\n"
-
-#: qcsrc/client/scoreboard.qc:429 qcsrc/client/scoreboard.qc:444
-#: qcsrc/client/scoreboard.qc:454 qcsrc/client/scoreboard.qc:463
-#: qcsrc/client/scoreboard.qc:472
-#, c-format
-msgid "fixed missing field '%s'\n"
-msgstr "Fehlendes Feld '%s' wurde ergänzt.\n"
-
-#: qcsrc/client/scoreboard.qc:512 qcsrc/client/scoreboard.qc:519
-msgid "N/A"
-msgstr "-"
-
-#: qcsrc/client/scoreboard.qc:948
-#, c-format
-msgid "Accuracy stats (average %d%%)"
-msgstr "Genauigkeit (Durchschn.: %d%%)"
-
-#: qcsrc/client/scoreboard.qc:1013
-#, c-format
-msgid "%d%%"
-msgstr "%d%%"
-
-#: qcsrc/client/scoreboard.qc:1073
-msgid "Rankings"
-msgstr "Platzierungen"
-
-#: qcsrc/client/scoreboard.qc:1164 qcsrc/client/scoreboard.qc:1166
-msgid "Scoreboard"
-msgstr "Tabelle"
-
-#: qcsrc/client/scoreboard.qc:1207
-#, c-format
-msgid "Speed award: %d ^7(%s^7)"
-msgstr "Höchstgeschwindigkeit: %d ^7(%s^7)"
-
-#: qcsrc/client/scoreboard.qc:1211
-#, c-format
-msgid "All-time fastest: %d ^7(%s^7)"
-msgstr "Rekord: %d ^7(%s^7)"
-
-#: qcsrc/client/scoreboard.qc:1238 qcsrc/client/teamplay.qc:55
-msgid "Spectators"
-msgstr "Zuschauer"
-
-#: qcsrc/client/scoreboard.qc:1245
-#, c-format
-msgid "playing on ^2%s^7"
-msgstr "es wird auf ^2%s^7 gespielt"
-
-#: qcsrc/client/scoreboard.qc:1252 qcsrc/client/scoreboard.qc:1257
-#, c-format
-msgid " for up to ^1%.1g minutes^7"
-msgstr " für bis zu ^1%.1g Minuten^7"
-
-#: qcsrc/client/scoreboard.qc:1261 qcsrc/client/scoreboard.qc:1280
-msgid " or"
-msgstr " oder"
-
-#: qcsrc/client/scoreboard.qc:1264 qcsrc/client/scoreboard.qc:1271
-#, c-format
-msgid " until ^3%s %s^7"
-msgstr " bis ^3%s %s^7"
-
-#: qcsrc/client/scoreboard.qc:1265 qcsrc/client/scoreboard.qc:1272
-#: qcsrc/client/scoreboard.qc:1284 qcsrc/client/scoreboard.qc:1291
-msgid "SCO^points"
-msgstr "Punkte"
-
-#: qcsrc/client/scoreboard.qc:1266 qcsrc/client/scoreboard.qc:1273
-#: qcsrc/client/scoreboard.qc:1285 qcsrc/client/scoreboard.qc:1292
-msgid "SCO^is beaten"
-msgstr "geschlagen wird"
-
-#: qcsrc/client/scoreboard.qc:1283 qcsrc/client/scoreboard.qc:1290
-#, c-format
-msgid " until a lead of ^3%s %s^7"
-msgstr " bis zu einem Vorsprung von ^3%s %s^7"
-
-#: qcsrc/client/target_music.qc:93 qcsrc/client/target_music.qc:181
-#, c-format
-msgid "Cannot initialize sound %s\n"
-msgstr ""
-
-#: qcsrc/client/teamplay.qc:56
-msgid "Red Team"
-msgstr ""
-
-#: qcsrc/client/teamplay.qc:57
-msgid "Blue Team"
-msgstr ""
-
-#: qcsrc/client/teamplay.qc:58
-msgid "Yellow Team"
-msgstr ""
-
-#: qcsrc/client/teamplay.qc:59
-msgid "Pink Team"
-msgstr ""
-
-#: qcsrc/server/w_crylink.qc:2
-msgid "Crylink"
-msgstr "Crylink"
-
-#: qcsrc/server/w_electro.qc:2
-msgid "Electro"
-msgstr "Electro"
-
-#: qcsrc/server/w_fireball.qc:2
-msgid "Fireball"
-msgstr "Fireball"
-
-#: qcsrc/server/w_grenadelauncher.qc:2
-msgid "Mortar"
-msgstr "Mortar"
-
-#: qcsrc/server/w_hagar.qc:2
-msgid "Hagar"
-msgstr "Hagar"
-
-#: qcsrc/server/w_hlac.qc:2
-msgid "Heavy Laser Assault Cannon"
-msgstr "Heavy Laser Assault Cannon"
-
-#: qcsrc/server/w_hook.qc:2
-msgid "Grappling Hook"
-msgstr "Grappling Hook"
-
-#: qcsrc/server/w_laser.qc:2
-msgid "Laser"
-msgstr "Laser"
-
-#: qcsrc/server/w_minelayer.qc:2
-msgid "Mine Layer"
-msgstr "Mine Layer"
-
-#: qcsrc/server/w_minstanex.qc:2
-msgid "MinstaNex"
-msgstr "MinstaNex"
-
-#: qcsrc/server/w_nex.qc:2
-msgid "Nex"
-msgstr "Nex"
-
-#: qcsrc/server/w_porto.qc:2
-msgid "Port-O-Launch"
-msgstr "Port-O-Launch"
-
-#: qcsrc/server/w_rocketlauncher.qc:2
-msgid "Rocket Launcher"
-msgstr "Rocket Launcher"
-
-#: qcsrc/server/w_seeker.qc:2
-msgid "T.A.G. Seeker"
-msgstr "T.A.G. Seeker"
-
-#: qcsrc/server/w_shotgun.qc:2
-msgid "Shotgun"
-msgstr "Shotgun"
-
-#: qcsrc/server/w_sniperrifle.qc:2
-msgid "Sniper Rifle"
-msgstr "Sniper Rifle"
-
-#: qcsrc/server/w_tuba.qc:2
-#, c-format
-msgid "@!#%'n Tuba"
-msgstr "@!#%'n Tuba"
-
-#: qcsrc/server/w_uzi.qc:2
-msgid "Machine Gun"
-msgstr "Machine Gun"
diff --git a/csprogs.dat.pot b/csprogs.dat.pot
new file mode 100644 (file)
index 0000000..1f7a476
--- /dev/null
@@ -0,0 +1,1737 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-04-30 10:07+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: qcsrc/client/mapvoting.qc:28
+msgid " (1 vote)"
+msgstr ""
+
+#: qcsrc/client/mapvoting.qc:30
+#, c-format
+msgid " (%d votes)"
+msgstr ""
+
+#: qcsrc/client/mapvoting.qc:113
+msgid "Don't care"
+msgstr ""
+
+#: qcsrc/client/mapvoting.qc:194
+msgid "Vote for a map"
+msgstr ""
+
+#: qcsrc/client/mapvoting.qc:199
+#, c-format
+msgid "%d seconds left"
+msgstr ""
+
+#: qcsrc/client/mapvoting.qc:263
+msgid ""
+"mv_mapdownload: ^3You're not supposed to use this command on your own!\n"
+msgstr ""
+
+#: qcsrc/client/mapvoting.qc:273
+msgid "^1Error:^7 Couldn't find pak index.\n"
+msgstr ""
+
+#: qcsrc/client/mapvoting.qc:282
+msgid "Requesting preview...\n"
+msgstr ""
+
+#: qcsrc/client/Main.qc:30
+msgid "ERROR - MENU IS VISIBLE BUT NO MENU WAS DEFINED!"
+msgstr ""
+
+#: qcsrc/client/Main.qc:56
+msgid ""
+"^3Your engine build is outdated\n"
+"^3This Server uses a newer QC VM. Please update!\n"
+msgstr ""
+
+#: qcsrc/client/Main.qc:66
+#, c-format
+msgid "^4CSQC Build information: ^1%s\n"
+msgstr ""
+
+#: qcsrc/client/Main.qc:232 qcsrc/client/Main.qc:248
+#, c-format
+msgid "trying to switch to unsupported team %d\n"
+msgstr ""
+
+#: qcsrc/client/Main.qc:364 qcsrc/client/scoreboard.qc:241
+msgid "Usage:\n"
+msgstr ""
+
+#: qcsrc/client/Main.qc:365
+msgid "hud_save configname   (saves to hud_skinname_configname.cfg)\n"
+msgstr ""
+
+#: qcsrc/client/Main.qc:512
+msgid "Usage: cl_cmd COMMAND..., where possible commands are:\n"
+msgstr ""
+
+#: qcsrc/client/Main.qc:513
+msgid "  settemp cvar value\n"
+msgstr ""
+
+#: qcsrc/client/Main.qc:514
+msgid "  scoreboard_columns_set ...\n"
+msgstr ""
+
+#: qcsrc/client/Main.qc:515
+msgid "  scoreboard_columns_help\n"
+msgstr ""
+
+#: qcsrc/client/Main.qc:720
+msgid "A CSQC entity changed its owner!\n"
+msgstr ""
+
+#: qcsrc/client/Main.qc:934
+msgid "A CSQC entity changed its type!\n"
+msgstr ""
+
+#: qcsrc/client/Main.qc:972
+#, c-format
+msgid "unknown entity type in CSQC_Ent_Update: %d\n"
+msgstr ""
+
+#: qcsrc/client/Main.qc:1444
+#, c-format
+msgid "%s (not bound)"
+msgstr ""
+
+#: qcsrc/client/Main.qc:1449 qcsrc/client/hud.qc:407
+#, c-format
+msgid "%s (%s)"
+msgstr ""
+
+#: qcsrc/client/target_music.qc:93 qcsrc/client/target_music.qc:181
+#, c-format
+msgid "Cannot initialize sound %s\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:337
+msgid "1st"
+msgstr ""
+
+#: qcsrc/client/hud.qc:339
+msgid "2nd"
+msgstr ""
+
+#: qcsrc/client/hud.qc:341
+msgid "3rd"
+msgstr ""
+
+#: qcsrc/client/hud.qc:343
+#, c-format
+msgid "%dth"
+msgstr ""
+
+#: qcsrc/client/hud.qc:375
+#, c-format
+msgid " (-%dL)"
+msgstr ""
+
+#: qcsrc/client/hud.qc:380
+#, c-format
+msgid " (+%dL)"
+msgstr ""
+
+#: qcsrc/client/hud.qc:396
+msgid "Start line"
+msgstr ""
+
+#: qcsrc/client/hud.qc:398 qcsrc/client/hud.qc:402
+msgid "Finish line"
+msgstr ""
+
+#: qcsrc/client/hud.qc:400
+#, c-format
+msgid "Intermediate %d"
+msgstr ""
+
+#: qcsrc/client/hud.qc:409
+#, c-format
+msgid "%s (%s %s)"
+msgstr ""
+
+#: qcsrc/client/hud.qc:553
+#, c-format
+msgid "^2Successfully exported to %s! (Note: It's saved in data/data/)\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:557
+#, c-format
+msgid "^1Couldn't write to %s\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:1837
+msgid "Out of ammo"
+msgstr ""
+
+#: qcsrc/client/hud.qc:1841
+msgid "Don't have"
+msgstr ""
+
+#: qcsrc/client/hud.qc:1845
+msgid "Unavailable"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2696
+#, c-format
+msgid "^1%s^1 couldn't take it anymore\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2700 qcsrc/client/hud.qc:2992
+#, c-format
+msgid "^1%s^1 died\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2704
+#, c-format
+msgid "^7%s^7 committed suicide. What's the point of living without ammo?\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2708
+#, c-format
+msgid "^1%s^1 thought they found a nice camping ground\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2712
+#, c-format
+msgid "^1%s^1 didn't become friends with the Lord of Teamplay\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2716
+#, c-format
+msgid "^1%s^1 unfairly eliminated themself\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2720
+#, c-format
+msgid "^1%s^1 burned to death\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2724
+#, c-format
+msgid "^1%s^1 couldn't resist the urge to self-destruct\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2728
+#, c-format
+msgid "^1%s^1 ended it all after a %d kill spree\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2745
+#, c-format
+msgid "^1%s^1 took action against a team mate\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2747
+#, c-format
+msgid "^1%s^1 mows down a team mate\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2752
+#, c-format
+msgid "^1%s^1 ended a %d scoring spree by going against a team mate\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2754
+#, c-format
+msgid "^1%s^1 ended a %d kill spree by killing a team mate\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2758
+#, c-format
+msgid "^1%s^1's %s scoring spree was ended by a team mate!\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2760
+#, c-format
+msgid "^1%s^1's %s kill spree was ended by a team mate!\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2764
+#, c-format
+msgid "^1%s^1 drew first blood\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2768
+#, c-format
+msgid "^1%s^1 tried to occupy %s^1's teleport destination space\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2770
+#, c-format
+msgid "^1%s^1 was telefragged by %s\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2775
+#, c-format
+msgid "^1%s^1 was drowned by %s\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2780
+#, c-format
+msgid "^1%s^1 was slimed by %s\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2785
+#, c-format
+msgid "^1%s^1 was cooked by %s\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2790
+#, c-format
+msgid "^1%s^1 was grounded by %s\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2795
+#, c-format
+msgid "^1%s^1 was shot into space by %s\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2800
+#, c-format
+msgid "^1%s^1 was conserved by %s\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2806
+#, c-format
+msgid "^1%s^1 was thrown into a world of hurt by %s\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2810
+#, c-format
+msgid "^1%s^1 was crushed by %s\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2814
+#, c-format
+msgid "^1%s^1 got shredded by %s\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2818
+#, c-format
+msgid "^1%s^1 was blasted to bits by %s\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2822
+#, c-format
+msgid "^1%s^1 got caught in the destruction of %s^1's vehicle\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2826
+#, c-format
+msgid "^1%s^1 was bolted down by %s\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2830
+#, c-format
+msgid "^1%s^1 could find no shelter from %s^1's rockets\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2834
+#, c-format
+msgid "^1%s^1 dies when %s^1's wakizashi dies.\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2838
+#, c-format
+msgid "^1%s^1 was pushed into the line of fire by %s\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2842
+#, c-format
+msgid "^1%s^1 was pushed into an accident by %s\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2846
+#, c-format
+msgid "^1%s^1 was unfairly eliminated by %s\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2850
+#, c-format
+msgid "^1%s^1 was burnt to death by %s\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2862
+#, c-format
+msgid "^1%s^1 was fragged by %s\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2867
+#, c-format
+msgid "^1%s^1's %s scoring spree was ended by %s\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2869
+#, c-format
+msgid "^1%s^1's %s kill spree was ended by %s\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2872
+#, c-format
+msgid "^1%s^1 made %s scores in a row\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2874
+#, c-format
+msgid "^1%s^1 has %s frags in a row\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2877
+#, c-format
+msgid "%s^7 made a ^1TRIPLE SCORE\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2879
+#, c-format
+msgid "%s^7 made a ^1TRIPLE FRAG\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2882
+#, c-format
+msgid "%s^7 unleashes ^1SCORING RAGE\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2884
+#, c-format
+msgid "%s^7 unleashes ^1RAGE\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2887
+#, c-format
+msgid "%s^7 made ^1TEN SCORES IN A ROW!\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2889
+#, c-format
+msgid "%s^7 starts the ^1MASSACRE!\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2892
+#, c-format
+msgid "%s^7 made ^1FIFTEEN SCORES IN A ROW!\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2894
+#, c-format
+msgid "%s^7 executes ^1MAYHEM!\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2897
+#, c-format
+msgid "%s^7 made ^1TWENTY SCORES IN A ROW!\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2899
+#, c-format
+msgid "%s^7 is a ^1BERSERKER!\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2902
+#, c-format
+msgid "%s^7 made ^1TWENTY FIVE SCORES IN A ROW!\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2904
+#, c-format
+msgid "%s^7 inflicts ^1CARNAGE!\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2907
+#, c-format
+msgid "%s^7 made ^1THIRTY SCORES IN A ROW!\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2909
+#, c-format
+msgid "%s^7 unleashes ^1ARMAGEDDON!\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2917
+#, c-format
+msgid "^1%s^1 was in the water for too long\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2919
+#, c-format
+msgid "^1%s^1 drowned\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2924
+#, c-format
+msgid "^1%s^1 was slimed\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2930
+#, c-format
+msgid "^1%s^1 found a hot place\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2932
+#, c-format
+msgid "^1%s^1 turned into hot slag\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2939
+#, c-format
+msgid "^1%s^1 tested gravity (and it worked)\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2941
+#, c-format
+msgid "^1%s^1 hit the ground with a crunch\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2946
+#, c-format
+msgid "^1%s^1 became a shooting star\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2952
+#, c-format
+msgid "^1%s^1 discovered a swamp\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2954
+#, c-format
+msgid "^1%s^1 is now conserved for centuries to come\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2959
+#, c-format
+msgid "^1%s^1 was mowed down by a turret \n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2971
+#, c-format
+msgid "^1%s^1 died in an accident\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2975
+#, c-format
+msgid "^1%s^1 was unfairly eliminated\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2981
+#, c-format
+msgid "^1%s^1 felt a little hot\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2983
+#, c-format
+msgid "^1%s^1 burnt to death\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2990
+#, c-format
+msgid "^1%s^1 needs a restart\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2997
+#, c-format
+msgid "^1%s^1 needs a restart after a %d scoring spree\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2999
+#, c-format
+msgid "^1%s^1 died with a %d kill spree\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3003
+#, c-format
+msgid "%s^7 got the %s\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3006
+#, c-format
+msgid "%s^7 lost the %s\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3009
+#, c-format
+msgid "%s^7 picked up the %s\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3012
+#, c-format
+msgid "%s^7 returned the %s\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3015
+#, c-format
+msgid "%s^7 captured the %s%s\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3034
+#, c-format
+msgid "%s^7 has picked up the ball!\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3039
+#, c-format
+msgid "%s^7 has dropped the ball!\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3052
+#, c-format
+msgid "You are now on: %s"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3054
+#, c-format
+msgid ""
+"You have been moved into a different team to improve team balance\n"
+"You are now on: %s"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3057
+msgid "^1Reconsider your tactics, camper!"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3059
+msgid "^1Die camper!"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3062
+msgid "^1You are reinserted into the game for running out of ammo..."
+msgstr ""
+
+#: qcsrc/client/hud.qc:3064
+msgid "^1You were killed for running out of ammo..."
+msgstr ""
+
+#: qcsrc/client/hud.qc:3067
+msgid "^1You need to preserve your health"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3069
+msgid "^1You grew too old without taking your medicine"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3072
+msgid "^1Don't go against team mates!"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3074
+msgid "^1Don't shoot your team mates!"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3079
+msgid "^1You need to be more careful!"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3081
+msgid "^1You killed your own dumb self!"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3086
+#, c-format
+msgid "^1Moron! You went against %s, a team mate!"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3088
+#, c-format
+msgid "^1Moron! You fragged %s, a team mate!"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3092
+msgid "^1First score"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3094
+msgid "^1First blood"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3098
+msgid "^1First casualty"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3100
+msgid "^1First victim"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3104
+#, c-format
+msgid "^1You scored against ^7%s^1 who was typing!"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3106
+#, c-format
+msgid "^1You typefragged ^7%s"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3110
+#, c-format
+msgid "^1You were scored against by ^7%s^1 while you were typing!"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3112
+#, c-format
+msgid "^1You were typefragged by ^7%s"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3116
+#, c-format
+msgid "^4You scored against ^7%s"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3118
+#, c-format
+msgid "^4You fragged ^7%s"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3122
+#, c-format
+msgid "^1You were scored against by ^7%s"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3124
+#, c-format
+msgid "^1You were fragged by ^7%s"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3129
+msgid "^1Watch your step!"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3194 qcsrc/client/hud.qc:3195
+#, c-format
+msgid "Player %d"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3791
+msgid "^1Intermediate 1 (+15.42)"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3793 qcsrc/client/hud.qc:3835 qcsrc/client/hud.qc:3876
+#, c-format
+msgid "^1PENALTY: %.1f (%s)"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3878
+#, c-format
+msgid "^2PENALTY: %.1f (%s)"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3903
+msgid "^2Name ^7instead of \"^1Unregistered player^7\" in stats"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3985
+msgid "A vote has been called for:"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3987
+msgid "Allow servers to store and display your name?"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3991
+msgid "^1Configure the HUD"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3995
+#, c-format
+msgid "Yes (%s): %d"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3997
+#, c-format
+msgid "No (%s): %d"
+msgstr ""
+
+#: qcsrc/client/hud.qc:4510 qcsrc/client/hud.qc:4513 qcsrc/client/hud.qc:4515
+msgid "Personal best"
+msgstr ""
+
+#: qcsrc/client/hud.qc:4528 qcsrc/client/hud.qc:4531 qcsrc/client/hud.qc:4533
+msgid "Server best"
+msgstr ""
+
+#: qcsrc/client/hud.qc:4765
+msgid "^3Player^7: This is the chat area."
+msgstr ""
+
+#: qcsrc/client/hud.qc:4828
+#, c-format
+msgid "FPS: %.*f"
+msgstr ""
+
+#: qcsrc/client/hud.qc:4893
+msgid "^1Observing"
+msgstr ""
+
+#: qcsrc/client/hud.qc:4895
+#, c-format
+msgid "^1Spectating: ^7%s"
+msgstr ""
+
+#: qcsrc/client/hud.qc:4899
+#, c-format
+msgid "^1Press ^3%s^1 to spectate"
+msgstr ""
+
+#: qcsrc/client/hud.qc:4901
+#, c-format
+msgid "^1Press ^3%s^1 for another player"
+msgstr ""
+
+#: qcsrc/client/hud.qc:4905
+#, c-format
+msgid "^1Use ^3%s^1 or ^3%s^1 to change the speed"
+msgstr ""
+
+#: qcsrc/client/hud.qc:4907
+#, c-format
+msgid "^1Press ^3%s^1 to observe"
+msgstr ""
+
+#: qcsrc/client/hud.qc:4910
+#, c-format
+msgid "^1Press ^3%s^1 for gamemode info"
+msgstr ""
+
+#: qcsrc/client/hud.qc:4914
+msgid "^1Wait for your turn to join"
+msgstr ""
+
+#: qcsrc/client/hud.qc:4920
+msgid "^1Match has already begun"
+msgstr ""
+
+#: qcsrc/client/hud.qc:4922
+msgid "^1You have no more lives left"
+msgstr ""
+
+#: qcsrc/client/hud.qc:4924 qcsrc/client/hud.qc:4927
+#, c-format
+msgid "^1Press ^3%s^1 to join"
+msgstr ""
+
+#: qcsrc/client/hud.qc:4935
+#, c-format
+msgid "^1Game starts in ^3%d^1 seconds"
+msgstr ""
+
+#: qcsrc/client/hud.qc:4942
+msgid "^2Currently in ^1warmup^2 stage!"
+msgstr ""
+
+#: qcsrc/client/hud.qc:4957
+#, c-format
+msgid "%sPress ^3%s%s to end warmup"
+msgstr ""
+
+#: qcsrc/client/hud.qc:4959
+#, c-format
+msgid "%sPress ^3%s%s once you are ready"
+msgstr ""
+
+#: qcsrc/client/hud.qc:4964
+msgid "^2Waiting for others to ready up to end warmup..."
+msgstr ""
+
+#: qcsrc/client/hud.qc:4966
+msgid "^2Waiting for others to ready up..."
+msgstr ""
+
+#: qcsrc/client/hud.qc:4972
+#, c-format
+msgid "^2Press ^3%s^2 to end warmup"
+msgstr ""
+
+#: qcsrc/client/hud.qc:4993
+msgid "Teamnumbers are unbalanced!"
+msgstr ""
+
+#: qcsrc/client/hud.qc:4998
+#, c-format
+msgid " Press ^3%s%s to adjust"
+msgstr ""
+
+#: qcsrc/client/hud.qc:5006
+msgid "^7Press ^3ESC ^7to show HUD options."
+msgstr ""
+
+#: qcsrc/client/hud.qc:5008
+msgid "^3Doubleclick ^7a panel for panel-specific options."
+msgstr ""
+
+#: qcsrc/client/hud.qc:5010
+msgid "^3CTRL ^7to disable collision testing, ^3SHIFT ^7and"
+msgstr ""
+
+#: qcsrc/client/hud.qc:5012
+msgid "^3ALT ^7+ ^3ARROW KEYS ^7for fine adjustments."
+msgstr ""
+
+#: qcsrc/client/hud.qc:5037
+msgid " qu/s"
+msgstr ""
+
+#: qcsrc/client/hud.qc:5041
+msgid " m/s"
+msgstr ""
+
+#: qcsrc/client/hud.qc:5045
+msgid " km/h"
+msgstr ""
+
+#: qcsrc/client/hud.qc:5049
+msgid " mph"
+msgstr ""
+
+#: qcsrc/client/hud.qc:5053
+msgid " knots"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:19
+msgid "SCO^bckills"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:20
+msgid "SCO^bctime"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:21
+msgid "SCO^caps"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:22
+msgid "SCO^deaths"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:23
+msgid "SCO^destroyed"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:24
+msgid "SCO^drops"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:25
+msgid "SCO^faults"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:26
+msgid "SCO^fckills"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:27
+msgid "SCO^goals"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:28
+msgid "SCO^kckills"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:29
+msgid "SCO^kdratio"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:30
+msgid "SCO^k/d"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:31
+msgid "SCO^kd"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:32
+msgid "SCO^kdr"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:33
+msgid "SCO^kills"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:34
+msgid "SCO^laps"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:35
+msgid "SCO^lives"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:36
+msgid "SCO^losses"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:37
+msgid "SCO^name"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:38
+msgid "SCO^nick"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:39
+msgid "SCO^objectives"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:40
+msgid "SCO^pickups"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:41
+msgid "SCO^ping"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:42
+msgid "SCO^pl"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:43
+msgid "SCO^pushes"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:44
+msgid "SCO^rank"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:45
+msgid "SCO^returns"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:46
+msgid "SCO^revivals"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:47
+msgid "SCO^score"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:48
+msgid "SCO^suicides"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:49
+msgid "SCO^takes"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:50
+msgid "SCO^ticks"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:239
+msgid ""
+"You can modify the scoreboard using the ^2scoreboard_columns_set command.\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:240
+msgid "^3|---------------------------------------------------------------|\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:242
+msgid "^2scoreboard_columns_set default\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:243
+msgid "^2scoreboard_columns_set ^7filed1 field2 ...\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:244
+msgid "The following field names are recognized (case insensitive):\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:245
+msgid ""
+"You can use a ^3|^7 to start the right-aligned fields.\n"
+"\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:247
+msgid "^3name^7 or ^3nick^7         Name of a player\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:248
+msgid "^3ping^7                     Ping time\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:249
+msgid "^3pl^7                       Packet loss\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:250
+msgid "^3kills^7                    Number of kills\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:251
+msgid "^3deaths^7                   Number of deaths\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:252
+msgid "^3suicides^7                 Number of suicides\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:253
+msgid "^3frags^7                    kills - suicides\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:254
+msgid "^3kd^7                       The kill-death ratio\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:255
+msgid ""
+"^3caps^7                     How often a flag (CTF) or a key (KeyHunt) was "
+"captured\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:256
+msgid ""
+"^3pickups^7                  How often a flag (CTF) or a key (KeyHunt) or a "
+"ball (Keepaway) was picked up\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:257
+msgid "^3fckills^7                  Number of flag carrier kills\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:258
+msgid "^3returns^7                  Number of flag returns\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:259
+msgid "^3drops^7                    Number of flag drops\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:260
+msgid "^3lives^7                    Number of lives (LMS)\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:261
+msgid "^3rank^7                     Player rank\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:262
+msgid "^3pushes^7                   Number of players pushed into void\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:263
+msgid ""
+"^3destroyed^7                Number of keys destroyed by pushing them into "
+"void\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:264
+msgid "^3kckills^7                  Number of keys carrier kills\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:265
+msgid "^3losses^7                   Number of times a key was lost\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:266
+msgid "^3laps^7                     Number of laps finished (race/cts)\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:267
+msgid "^3time^7                     Total time raced (race/cts)\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:268
+msgid "^3fastest^7                  Time of fastest lap (race/cts)\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:269
+msgid "^3ticks^7                    Number of ticks (DOM)\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:270
+msgid "^3takes^7                    Number of domination points taken (DOM)\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:271
+msgid "^3bckills^7                  Number of ball carrier kills\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:272
+msgid ""
+"^3bctime^7                   Total amount of time holding the ball in "
+"Keepaway\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:273
+msgid ""
+"^3score^7                    Total score\n"
+"\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:275
+msgid ""
+"Before a field you can put a + or - sign, then a comma separated list\n"
+"of game types, then a slash, to make the field show up only in these\n"
+"or in all but these game types. You can also specify 'all' as a\n"
+"field to show all fields available for the current game mode.\n"
+"\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:280
+msgid ""
+"The special game type names 'teams' and 'noteams' can be used to\n"
+"include/exclude ALL teams/noteams game modes.\n"
+"\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:283
+msgid "Example: scoreboard_columns_set name ping pl | +ctf/field3 -dm/field4\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:284
+msgid ""
+"will display name, ping and pl aligned to the left, and the fields\n"
+"right of the vertical bar aligned to the right.\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:286
+msgid ""
+"'field3' will only be shown in CTF, and 'field4' will be shown in all\n"
+"other gamemodes except DM.\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:432 qcsrc/client/scoreboard.qc:447
+#: qcsrc/client/scoreboard.qc:457 qcsrc/client/scoreboard.qc:466
+#: qcsrc/client/scoreboard.qc:475
+#, c-format
+msgid "fixed missing field '%s'\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:515 qcsrc/client/scoreboard.qc:522
+msgid "N/A"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:951
+#, c-format
+msgid "Accuracy stats (average %d%%)"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:1016
+#, c-format
+msgid "%d%%"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:1076
+msgid "Rankings"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:1167 qcsrc/client/scoreboard.qc:1169
+msgid "Scoreboard"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:1210
+#, c-format
+msgid "Speed award: %d ^7(%s^7)"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:1214
+#, c-format
+msgid "All-time fastest: %d ^7(%s^7)"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:1241 qcsrc/client/teamplay.qc:55
+msgid "Spectators"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:1248
+#, c-format
+msgid "playing on ^2%s^7"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:1255 qcsrc/client/scoreboard.qc:1260
+#, c-format
+msgid " for up to ^1%1.0f minutes^7"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:1264 qcsrc/client/scoreboard.qc:1283
+msgid " or"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:1267 qcsrc/client/scoreboard.qc:1274
+#, c-format
+msgid " until ^3%s %s^7"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:1268 qcsrc/client/scoreboard.qc:1275
+#: qcsrc/client/scoreboard.qc:1287 qcsrc/client/scoreboard.qc:1294
+msgid "SCO^points"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:1269 qcsrc/client/scoreboard.qc:1276
+#: qcsrc/client/scoreboard.qc:1288 qcsrc/client/scoreboard.qc:1295
+msgid "SCO^is beaten"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:1286 qcsrc/client/scoreboard.qc:1293
+#, c-format
+msgid " until a lead of ^3%s %s^7"
+msgstr ""
+
+#: qcsrc/client/miscfunctions.qc:23
+msgid "^1Begin!"
+msgstr ""
+
+#: qcsrc/client/miscfunctions.qc:34
+#, c-format
+msgid "^1Game starts in %d seconds"
+msgstr ""
+
+#: qcsrc/client/miscfunctions.qc:113
+msgid "^1RED^7 flag"
+msgstr ""
+
+#: qcsrc/client/miscfunctions.qc:118
+msgid "^4BLUE^7 flag"
+msgstr ""
+
+#: qcsrc/client/miscfunctions.qc:126
+#, c-format
+msgid "You picked up the %s!"
+msgstr ""
+
+#: qcsrc/client/miscfunctions.qc:130
+#, c-format
+msgid "You got the %s!"
+msgstr ""
+
+#: qcsrc/client/miscfunctions.qc:283
+msgid "Trying to remove a team which is not in the teamlist!"
+msgstr ""
+
+#: qcsrc/client/ctf.qc:35
+msgid "----- Order Menu -----"
+msgstr ""
+
+#: qcsrc/client/ctf.qc:36
+#, c-format
+msgid "Order: %s"
+msgstr ""
+
+#: qcsrc/client/ctf.qc:37
+msgid "1) ^3previous page"
+msgstr ""
+
+#: qcsrc/client/ctf.qc:38
+msgid "2) ^3next page"
+msgstr ""
+
+#: qcsrc/client/ctf.qc:55 qcsrc/client/ctf.qc:161
+msgid "ESC) Exit Menu"
+msgstr ""
+
+#: qcsrc/client/ctf.qc:126
+#, c-format
+msgid "Couldn't find player %d\n"
+msgstr ""
+
+#: qcsrc/client/ctf.qc:154
+msgid "----- Command Menu -----"
+msgstr ""
+
+#: qcsrc/client/ctf.qc:155
+msgid "Issue orders:"
+msgstr ""
+
+#: qcsrc/client/ctf.qc:156
+msgid " 1) Attack"
+msgstr ""
+
+#: qcsrc/client/ctf.qc:158
+msgid " 2) Defend"
+msgstr ""
+
+#: qcsrc/client/ctf.qc:160
+msgid "3) Resign from command."
+msgstr ""
+
+#: qcsrc/client/ctf.qc:212
+msgid "You're commander!"
+msgstr ""
+
+#: qcsrc/client/ctf.qc:215
+msgid "Awaiting orders..."
+msgstr ""
+
+#: qcsrc/client/teamplay.qc:56
+msgid "Red Team"
+msgstr ""
+
+#: qcsrc/client/teamplay.qc:57
+msgid "Blue Team"
+msgstr ""
+
+#: qcsrc/client/teamplay.qc:58
+msgid "Yellow Team"
+msgstr ""
+
+#: qcsrc/client/teamplay.qc:59
+msgid "Pink Team"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:2
+msgid "Fireball"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:417
+#, c-format
+msgid "%s forgot about some firemine"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:419 qcsrc/server/w_hlac.qc:240
+#, c-format
+msgid "%s should have used a smaller gun"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:426
+#, c-format
+msgid "%s tried to catch %s's firemine"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:428
+#, c-format
+msgid "%s fatefully ignored %s's firemine"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:435
+#, c-format
+msgid "%s could not hide from %s's fireball"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:437
+#, c-format
+msgid "%s saw the pretty lights of %s's fireball"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:440
+#, c-format
+msgid "%s got too close to %s's fireball"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:442
+#, c-format
+msgid "%s tasted %s's fireball"
+msgstr ""
+
+#: qcsrc/server/w_nex.qc:2
+msgid "Nex"
+msgstr ""
+
+#: qcsrc/server/w_nex.qc:267 qcsrc/server/w_shotgun.qc:203
+#: qcsrc/server/w_uzi.qc:317 qcsrc/server/w_minstanex.qc:290
+#: qcsrc/server/w_porto.qc:296 qcsrc/server/w_hook.qc:266
+#, c-format
+msgid "%s did the impossible"
+msgstr ""
+
+#: qcsrc/server/w_nex.qc:269 qcsrc/server/w_minstanex.qc:292
+#, c-format
+msgid "%s has been vaporized by %s"
+msgstr ""
+
+#: qcsrc/server/w_laser.qc:2
+msgid "Laser"
+msgstr ""
+
+#: qcsrc/server/w_laser.qc:305
+#, c-format
+msgid "%s lasered themself to hell"
+msgstr ""
+
+#: qcsrc/server/w_laser.qc:309
+#, c-format
+msgid "%s was cut in half by %s's gauntlet"
+msgstr ""
+
+#: qcsrc/server/w_laser.qc:311
+#, c-format
+msgid "%s was lasered to death by %s"
+msgstr ""
+
+#: qcsrc/server/w_shotgun.qc:2
+msgid "Shotgun"
+msgstr ""
+
+#: qcsrc/server/w_shotgun.qc:207
+#, c-format
+msgid "%2$s ^7slapped %1$s ^7around a bit with a large ^2shotgun"
+msgstr ""
+
+#: qcsrc/server/w_shotgun.qc:209
+#, c-format
+msgid "%s was gunned by %s"
+msgstr ""
+
+#: qcsrc/server/w_uzi.qc:2
+msgid "Machine Gun"
+msgstr ""
+
+#: qcsrc/server/w_uzi.qc:321 qcsrc/server/w_sniperrifle.qc:254
+#, c-format
+msgid "%s was sniped by %s"
+msgstr ""
+
+#: qcsrc/server/w_uzi.qc:323
+#, c-format
+msgid "%s was riddled full of holes by %s"
+msgstr ""
+
+#: qcsrc/server/w_sniperrifle.qc:2
+msgid "Sniper Rifle"
+msgstr ""
+
+#: qcsrc/server/w_sniperrifle.qc:229
+#, c-format
+msgid "%s shot themself automatically"
+msgstr ""
+
+#: qcsrc/server/w_sniperrifle.qc:231
+#, c-format
+msgid "%s sniped themself somehow"
+msgstr ""
+
+#: qcsrc/server/w_sniperrifle.qc:238
+#, c-format
+msgid "%s failed to hide from %s's bullet hail"
+msgstr ""
+
+#: qcsrc/server/w_sniperrifle.qc:240
+#, c-format
+msgid "%s died in %s's bullet hail"
+msgstr ""
+
+#: qcsrc/server/w_sniperrifle.qc:247
+#, c-format
+msgid "%s failed to hide from %s's rifle"
+msgstr ""
+
+#: qcsrc/server/w_sniperrifle.qc:252
+#, c-format
+msgid "%s got hit in the head by %s"
+msgstr ""
+
+#: qcsrc/server/w_minstanex.qc:2
+msgid "MinstaNex"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:2
+msgid "Electro"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:571
+#, c-format
+msgid "%s could not remember where they put plasma"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:573
+#, c-format
+msgid "%s played with plasma"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:580
+#, c-format
+msgid "%s just noticed %s's blue ball"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:582
+#, c-format
+msgid "%s got in touch with %s's blue ball"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:587
+#, c-format
+msgid "%s felt the electrifying air of %s's combo"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:589
+#, c-format
+msgid "%s got too close to %s's blue beam"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:591
+#, c-format
+msgid "%s was blasted by %s's blue beam"
+msgstr ""
+
+#: qcsrc/server/w_tuba.qc:2
+#, c-format
+msgid "@!#%'n Tuba"
+msgstr ""
+
+#: qcsrc/server/w_tuba.qc:263
+#, c-format
+msgid "%s hurt his own ears with the @!#%%'n Tuba"
+msgstr ""
+
+#: qcsrc/server/w_tuba.qc:267
+#, c-format
+msgid "%s died of %s's great playing on the @!#%%'n Tuba"
+msgstr ""
+
+#: qcsrc/server/w_porto.qc:2
+msgid "Port-O-Launch"
+msgstr ""
+
+#: qcsrc/server/w_porto.qc:298
+#, c-format
+msgid "%s felt %s doing the impossible to him"
+msgstr ""
+
+#: qcsrc/server/w_hagar.qc:2
+msgid "Hagar"
+msgstr ""
+
+#: qcsrc/server/w_hagar.qc:209 qcsrc/server/w_seeker.qc:655
+#, c-format
+msgid "%s played with tiny rockets"
+msgstr ""
+
+#: qcsrc/server/w_hagar.qc:213
+#, c-format
+msgid "%s hoped %s's missiles wouldn't bounce"
+msgstr ""
+
+#: qcsrc/server/w_hagar.qc:215 qcsrc/server/w_seeker.qc:661
+#, c-format
+msgid "%s was pummeled by %s"
+msgstr ""
+
+#: qcsrc/server/w_crylink.qc:2
+msgid "Crylink"
+msgstr ""
+
+#: qcsrc/server/w_crylink.qc:664
+#, c-format
+msgid "%s succeeded at self-destructing themself with the Crylink"
+msgstr ""
+
+#: qcsrc/server/w_crylink.qc:669
+#, c-format
+msgid "%s could not hide from %s's Crylink"
+msgstr ""
+
+#: qcsrc/server/w_crylink.qc:671
+#, c-format
+msgid "%s was too close to %s's Crylink"
+msgstr ""
+
+#: qcsrc/server/w_crylink.qc:673
+#, c-format
+msgid "%s took a close look at %s's Crylink"
+msgstr ""
+
+#: qcsrc/server/w_rocketlauncher.qc:2
+msgid "Rocket Launcher"
+msgstr ""
+
+#: qcsrc/server/w_rocketlauncher.qc:500 qcsrc/server/w_minelayer.qc:495
+#, c-format
+msgid "%s exploded"
+msgstr ""
+
+#: qcsrc/server/w_rocketlauncher.qc:504
+#, c-format
+msgid "%s got too close to %s's rocket"
+msgstr ""
+
+#: qcsrc/server/w_rocketlauncher.qc:506
+#, c-format
+msgid "%s almost dodged %s's rocket"
+msgstr ""
+
+#: qcsrc/server/w_rocketlauncher.qc:508
+#, c-format
+msgid "%s ate %s's rocket"
+msgstr ""
+
+#: qcsrc/server/w_hook.qc:2
+msgid "Grappling Hook"
+msgstr ""
+
+#: qcsrc/server/w_hook.qc:268
+#, c-format
+msgid "%s has run into %s's gravity bomb"
+msgstr ""
+
+#: qcsrc/server/w_minelayer.qc:2
+msgid "Mine Layer"
+msgstr ""
+
+#: qcsrc/server/w_minelayer.qc:499
+#, c-format
+msgid "%s got too close to %s's mine"
+msgstr ""
+
+#: qcsrc/server/w_minelayer.qc:501
+#, c-format
+msgid "%s almost dodged %s's mine"
+msgstr ""
+
+#: qcsrc/server/w_minelayer.qc:503
+#, c-format
+msgid "%s stepped on %s's mine"
+msgstr ""
+
+#: qcsrc/server/w_seeker.qc:2
+msgid "T.A.G. Seeker"
+msgstr ""
+
+#: qcsrc/server/w_seeker.qc:659
+#, c-format
+msgid "%s was tagged by %s"
+msgstr ""
+
+#: qcsrc/server/w_grenadelauncher.qc:2
+msgid "Mortar"
+msgstr ""
+
+#: qcsrc/server/w_grenadelauncher.qc:378
+#, c-format
+msgid "%s tried out his own grenade"
+msgstr ""
+
+#: qcsrc/server/w_grenadelauncher.qc:380
+#, c-format
+msgid "%s detonated"
+msgstr ""
+
+#: qcsrc/server/w_grenadelauncher.qc:386
+#, c-format
+msgid "%s didn't see %s's grenade"
+msgstr ""
+
+#: qcsrc/server/w_grenadelauncher.qc:388
+#, c-format
+msgid "%s almost dodged %s's grenade"
+msgstr ""
+
+#: qcsrc/server/w_grenadelauncher.qc:390
+#, c-format
+msgid "%s ate %s's grenade"
+msgstr ""
+
+#: qcsrc/server/w_hlac.qc:2
+msgid "Heavy Laser Assault Cannon"
+msgstr ""
+
+#: qcsrc/server/w_hlac.qc:242
+#, c-format
+msgid "%s was cut down by %s"
+msgstr ""
diff --git a/defaultSamual.cfg b/defaultSamual.cfg
deleted file mode 100644 (file)
index 4aacf09..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-// Samual's mod configuration file
-exec defaultXonotic.cfg
-
-// weapon replace options
-set g_weaponreplace_laser ""
-set g_weaponreplace_shotgun ""
-set g_weaponreplace_uzi ""
-set g_weaponreplace_grenadelauncher ""
-set g_weaponreplace_electro ""
-set g_weaponreplace_crylink ""
-set g_weaponreplace_nex ""
-set g_weaponreplace_hagar ""
-set g_weaponreplace_rocketlauncher ""
-set g_weaponreplace_porto ""
-set g_weaponreplace_minstanex ""
-set g_weaponreplace_hook ""
-set g_weaponreplace_hlac 0 // Maybe will be enabled later after I figure out what I want to do with it
-set g_weaponreplace_sniperrifle ""
-set g_weaponreplace_tuba "" 
-set g_weaponreplace_fireball 0 // Same with this
-set g_weaponreplace_seeker 0 // Same with this
-set sv_q3acompat_machineshotgunswap 0
-
-// other options
-set sv_fragmessage_information_ping 1
-set sv_fragmessage_information_handicap 2
-set sv_fragmessage_information_stats 1
-set sv_fragmessage_information_typefrag 1
-
-exec physicsSamual.cfg
-exec balanceSamual.cfg
index bddddb12e409430f7dfa9a41e8dd8e470c1b3b39..37878c63df1cdf04e5032c570e7c04c51312aba3 100644 (file)
@@ -205,6 +205,9 @@ seta crosshair_ring_nex_currentcharge_movingavg_rate 0.05
 seta crosshair_ring_minelayer 1
 seta crosshair_ring_minelayer_alpha 0.15
 
+seta crosshair_ring_hagar 1
+seta crosshair_ring_hagar_alpha 0.15
+
 seta crosshair_ring_reload 1 "main cvar to enable or disable ammo crosshair rings"
 seta crosshair_ring_reload_size 2.5    "reload ring size"
 seta crosshair_ring_reload_alpha 0.2   "reload ring alpha"
@@ -216,7 +219,7 @@ fov 90
 seta cl_velocityzoom 0 "velocity based zooming of fov, negative values zoom out"
 seta cl_velocityzoomtime 0.3   "time value for averaging speed values"
 seta cl_zoomfactor 5   "how much +zoom will zoom (1-16)"
-seta cl_zoomspeed 3.5  "how fast it will zoom (0.5-16), negative values mean instant zoom"
+seta cl_zoomspeed 8    "how fast it will zoom (0.5-16), negative values mean instant zoom"
 seta cl_zoomsensitivity 0      "how zoom changes sensitivity (0 = weakest, 1 = strongest)"
 freelook 1
 sensitivity 6
@@ -242,7 +245,7 @@ v_deathtilt 0 // needed for spectators (who are dead to avoid prediction)
 
 // these settings determine how much the view is affected by movement/damage
 cl_smoothviewheight 0.05 // time of the averaging to the viewheight value so that it creates a smooth transition for crouching and such. 0 for instant transition
-cl_deathfade 1 // fade screen to dark red when dead, value represents how fast the fade is (higher is faster)
+cl_deathfade 0 // fade screen to dark red when dead, value represents how fast the fade is (higher is faster)
 cl_bobcycle 0 // how long the cycle of up/down view movement takes (only works if cl_bob is not 0), default is 0.6
 cl_bob 0.01 // how much view moves up/down when moving (does not move if cl_bobcycle is 0, but still enables cl_bobmodel), default is 0.02
 cl_bob2cycle 0 // how long the cycle of left/right view movement takes (only works if cl_bob2 is not 0), default is 0.6
@@ -316,6 +319,11 @@ set sv_ready_restart_repeatable 0  "allows the players to restart the game as oft
 seta cl_hitsound 1 "play a hit notifier sound when you have hit an enemy"
 set cl_hitsound_antispam_time 0.05 "don't play the hitsound more often than this"
 
+seta cl_eventchase_death 0 "camera goes into 3rd person mode when the player is dead"
+seta cl_eventchase_intermission 0 "camera goes into 3rd person mode when the match ends"
+seta cl_eventchase_distance 140 "final camera distance"
+seta cl_eventchase_speed 1.3 "how fast the camera slides back, 0 is instant"
+
 //nifreks lockonrestart feature, used in team-based game modes, if set to 1 and all players readied up no other player can then join the game anymore, useful to block spectators from joining
 set teamplay_lockonrestart 0 "it set to 1 in a team-based game, the teams are locked once all players readied up and the game restarted (no new players can join after restart unless using the server-command unlockteams)"
 
@@ -402,6 +410,8 @@ net_connecttimeout 30
 sv_jumpstep 1 // step up stairs while jumping, makes it easier to reach ledges
 set ekg 0      "Throw huge amounts of gibs"
 
+seta sv_shownames_cull_distance 2500 "distance after which to not send origin/health/armor of another player"
+
 cl_movement 1
 cl_movement_track_canjump 0
 cl_stairsmoothspeed 200
@@ -416,6 +426,9 @@ set bot_nofire 0    "When set, bots never fire. Mainly for testing in g_waypointedi
 seta bot_prefix [BOT]  "Prefix in front of the bot names"
 seta bot_suffix ""     "Suffix behind the bot names"
 seta skill_auto 0      "when 1, \"skill\" gets adjusted to match the best player on the map"
+set bot_debug_tracewalk 0 "Enable visual indicators for short-term navigation. Green: Goal Reached / Yellow: Obstacle found / Red: Unsolvable obstacle found"
+set bot_debug_goalstack 0 "Visualize the current path that each bot is following. Use with as few bots as possible."
+set bot_wander_enable 1 "Have bots wander around if they are unable to reach any useful goal. Disable only for debugging purposes."
 // general bot AI cvars
 set bot_ai_thinkinterval 0.05
 set bot_ai_strategyinterval 5 "How often a new objective is chosen"
@@ -517,7 +530,7 @@ set g_casings 2 "specifies which casings (0: none, 1: only shotgun casings, 2: s
 set g_norecoil 0 "if set to 1 shooting weapons won't make you crosshair to move upwards (recoil)"
 set g_maplist_mostrecent "" "contains the name of the maps that were most recently played"
 seta g_maplist_mostrecent_count 3      "number of most recent maps that are blocked from being played again"
-seta g_maplist "g-23" "the list of maps to be cycled among (is autogenerated if empty)"
+seta g_maplist "" "the list of maps to be cycled among (is autogenerated if empty)"
 seta g_maplist_index 0 "this is used internally for saving position in maplist cycle"
 seta g_maplist_selectrandom 0  "if 1, a random map will be chosen as next map - DEPRECATED in favor of g_maplist_shuffle"
 seta g_maplist_shuffle 1       "new randomization method: like selectrandom, but avoid playing the same maps in short succession. This works by taking out the first element and inserting it into g_maplist with a bias to the end of the list"
@@ -1182,13 +1195,10 @@ seta sv_servermodelsonly 1
 cl_curl_enabled 1
 cl_curl_maxspeed 300
 sv_curl_defaulturl "http://www.xonotic.com/contentdownload/getmap.php?file="
-set sv_curl_serverpackages_auto 0 "automatically add packs with *.serverpackage files to sv_curl_serverpackages"
+set sv_curl_serverpackages_auto 1 "automatically add packs with *.serverpackage files to sv_curl_serverpackages"
 
 set sv_motd ""
 
-seta cl_shownames 1    "show player names pointed to (0: never, 1: teamplay only, 2: always)"
-set sv_allow_shownames 1
-
 set g_waypoints_for_items 1    "make waypoints out of items, values: 0 = never, 1 = unless the mapper prevents it by worldspawn.spawnflags & 1, 2 = always"
 
 seta g_maplist_votable 6 "number of maps that are shown in the map voting at the end of a match"
@@ -1420,12 +1430,18 @@ seta hud_panel_weapons_ammo_full_fuel 100 "show 100% of the status bar at this a
 
 seta hud_panel_ammo_maxammo "40" "when you have this much ammo, the ammo status bar is full"
 
-seta hud_panel_healtharmor_maxhealth "250" "when you have this much health, the health status bar is full"
-seta hud_panel_healtharmor_maxarmor "150" "when you have this much armor, the armor status bar is full"
+seta hud_panel_healtharmor_maxhealth "200" "when you have this much health, the health status bar is full"
+seta hud_panel_healtharmor_maxarmor "200" "when you have this much armor, the armor status bar is full"
+seta hud_panel_healtharmor_progressbar_gfx 1 "enable graphic effects on the progressbars"
+seta hud_panel_healtharmor_progressbar_gfx_damage 5 "show damage effect when damaged at least by this amount; 0 disables the effect"
+seta hud_panel_healtharmor_progressbar_gfx_lowhealth 40 "health progressbar blinks when health is lower than this amount"
+seta hud_panel_healtharmor_progressbar_gfx_smooth 2 "smooth changes of the progressbar when health/armor change at least by this amount; 0 disables the effect"
 
 seta hud_panel_notify_time 10 "time that a new entry stays until it fades out"
 seta hud_panel_notify_fadetime 3 "fade out time"
 
+seta hud_panel_modicons_dom_layout 1 "3 possible layouts: 0) only icons; 1) icons and percentage of average pps (points per second); 2) icons and average pps"
+
 seta hud_panel_timer_increment 0 "show elapsed time instead of remaining time"
 
 seta hud_panel_radar_scale 4096 "distance you can see on the team radar"
@@ -1433,13 +1449,24 @@ seta hud_panel_radar_rotation 0 "rotation mode: you set what points up. 0 = play
 seta hud_panel_radar_zoommode 0        "zoom mode: 0 = zoomed by default, 1 = zoomed when +zoom, 2 = always zoomed, 3 = always zoomed out"
 alias hud_panel_radar_rotate "toggle hud_panel_radar_rotation 0 1 2 3 4"
 
+seta hud_panel_score_rankings 0 "show rankings: 1 always show my own score; 2 pure rankings"
+
 seta hud_panel_engineinfo_framecounter_time 0.1 "time between framerate display updates"
 seta hud_panel_engineinfo_framecounter_decimals 0 "amount of decimals to show"
 seta hud_panel_engineinfo_framecounter_exponentialmovingaverage 1 "use an averaging method for calculating fps instead of counting frametime like engine does"
 seta hud_panel_engineinfo_framecounter_exponentialmovingaverage_new_weight 0.1 "weight of latest data point"
 seta hud_panel_engineinfo_framecounter_exponentialmovingaverage_instantupdate_change_threshold 0.5 "threshold for fps change when to update instantly, to make big fps changes update faster"
 
-seta hud_showbinds 1   "the way to show the keys to press in HUD messages: 0 displays commands, 1 bound keys, 2 both"
+seta hud_panel_physics_speed_unit 3 "speed unit (1 = qu/s, 2 = m/s, 3 = km/h, 4 = mph, 5 = knots)"
+seta hud_panel_physics_speed_unit_show 1 "also show speed unit"
+seta hud_panel_physics_speed_max 1800 "speed progressbar gets filled up completely by this value (in qu/s)"
+seta hud_panel_physics_speed_vertical 0 "include the speed on the Z-axis"
+seta hud_panel_physics_topspeed 1 "also show top speed"
+seta hud_panel_physics_topspeed_time 4 "how many seconds the top speed takes to fade out"
+seta hud_panel_physics_acceleration_max 1.5 "acceleration progressbar gets completely filled up by this value (in g)"
+seta hud_panel_physics_acceleration_vertical 0 "include the acceleration on the Z-axis"
+
+seta hud_showbinds 1   "what to show in the HUD to indicate certain keys to press: 0 display commands, 1 bound keys, 2 both"
 seta hud_showbinds_limit 2     "maximum number of bound keys to show for a command. 0 for unlimited"
 
 seta hud_colorflash_alpha 0.5 "starting alpha of the color flash"
@@ -1468,6 +1495,20 @@ seta hud_contents_slime_color "0 0.4 0.1"
 seta hud_contents_water_alpha 0.5 "alpha of the water color blend when inside it"
 seta hud_contents_water_color "0.4 0.3 0.3"
 
+seta hud_shownames 1 "draw names and health/armor of nearby players"
+seta hud_shownames_enemies 2 "1 = draw names of enemies you point at, 2 = draw names of all enemies in view"
+seta hud_shownames_status 2 "1 = draw health/armor status of teammates, 2 = same as 1, but draw health/armor icons with a question mark on enemies in teamgames"
+seta hud_shownames_height 15 "height of icons"
+seta hud_shownames_aspect 8 "aspect ratio of total drawing area per name"
+seta hud_shownames_fontsize 13 "font size"
+seta hud_shownames_decolorize 1 "1 = decolorize name in team games, 2 = decolorize always"
+seta hud_shownames_alpha 0.7 "alpha"
+seta hud_shownames_resize 1 "enable resizing of the names, then the size cvars will correspond to the maximum size"
+seta hud_shownames_mindistance 1000 "start fading alpha/size at this distance"
+seta hud_shownames_maxdistance 2500 "alpha/size is 0 at this distance"
+seta hud_shownames_antioverlap 1 "if two tags get too close to each other, fade out the one further away from you"
+seta hud_shownames_antioverlap_distance 125 "2d distance to other tag after which to fade out"
+
 // scoreboard
 seta scoreboard_columns default
 seta scoreboard_border_thickness 1 "scoreboard border thickness"
@@ -1487,8 +1528,8 @@ seta scoreboard_fadeoutspeed 5 "speed at which scoreboard fades out, higher is f
 seta scoreboard_highlight 1 "enable highlighting for rows and columns in the scoreboard"
 seta scoreboard_highlight_alpha 0.10 "highlight alpha value (depends on hud_scoreboard_highlight 1)"
 seta scoreboard_highlight_alpha_self 0.25 "self highlight alpha value"
-seta scoreboard_offset_left 0.04 "how many pixels the scoreboard is offset from the left screen edge"
-seta scoreboard_offset_right 0.148 "how many pixels the scoreboard is offset from the right screen edge"
+seta scoreboard_offset_left 0.15 "how many pixels the scoreboard is offset from the left screen edge"
+seta scoreboard_offset_right 0.15 "how many pixels the scoreboard is offset from the right screen edge"
 seta scoreboard_bg_scale 0.25 "scale for the tiled scoreboard background"
 
 seta accuracy_color_levels "0 20 100" "accuracy values at which a specified color (accuracy_color<X>) will be used. If your accuracy is between 2 of these values then a mix of the Xth and X+1th colors will be used. You can specify up to 10 values, in increasing order"
@@ -1587,7 +1628,7 @@ gl_texturecompression_lightcubemaps 1
 gl_texturecompression_q3bsplightmaps 0
 gl_texturecompression_sky 1
 
-set menu_mouse_absolute 0      "TODO make this seta if the engine understands this right"
+seta menu_mouse_absolute 1 "use the OS mouse pointer motion for menu"
 seta menu_mouse_speed 1 "speed multiplier for the mouse in the menu (does not affect in-game aiming)"
 set menu_use_default_hostname 1
 alias sethostname "set menu_use_default_hostname 0; hostname $*"
@@ -1635,13 +1676,13 @@ set g_jump_grunt 0      "Do you make a grunting noise every time you jump? Is it the
 
 alias allready "sv_cmd allready"
 
-seta cl_weaponpriority "minstanex rocketlauncher nex minelayer grenadelauncher fireball hlac hagar seeker crylink sniperrifle uzi electro tuba shotgun laser hook porto" "weapon priority list"
+seta cl_weaponpriority "minstanex rocketlauncher nex grenadelauncher minelayer fireball hlac hagar seeker crylink sniperrifle uzi electro tuba shotgun laser hook porto" "weapon priority list"
 seta cl_weaponpriority_useforcycling 0 "when set, weapon cycling by the mouse wheel makes use of the weapon priority list (the special value 2 uses the weapon ID list for cycling)"
 seta cl_weaponpriority0 "rocketlauncher grenadelauncher hagar seeker fireball" "use impulse 200 for prev gun from this list, 210 for best gun, 220 for next gun.  Default value: explosives"
 seta cl_weaponpriority1 "minstanex nex crylink hlac electro laser"             "use impulse 201 for prev gun from this list, 211 for best gun, 221 for next gun.  Default value: energy"
 seta cl_weaponpriority2 "minstanex nex sniperrifle"                           "use impulse 202 for prev gun from this list, 212 for best gun, 222 for next gun.  Default value: hitscan exact"
 seta cl_weaponpriority3 "minstanex nex sniperrifle uzi shotgun"               "use impulse 203 for prev gun from this list, 213 for best gun, 223 for next gun.  Default value: hitscan all"
-seta cl_weaponpriority4 "minelayer grenadelauncher hlac hagar crylink seeker shotgun"    "use impulse 204 for prev gun from this list, 214 for best gun, 224 for next gun.  Default value: spam weapons"
+seta cl_weaponpriority4 "grenadelauncher minelayer hlac hagar crylink seeker shotgun"    "use impulse 204 for prev gun from this list, 214 for best gun, 224 for next gun.  Default value: spam weapons"
 seta cl_weaponpriority5 "laser hook porto"                                     "use impulse 205 for prev gun from this list, 215 for best gun, 225 for next gun.  Default value: weapons for moving"
 seta cl_weaponpriority6 "" "use impulse 206 for prev gun from this list, 216 for best gun, 226 for next gun"
 seta cl_weaponpriority7 "" "use impulse 207 for prev gun from this list, 217 for best gun, 227 for next gun"
@@ -1771,25 +1812,6 @@ seta cl_gentle_gibs 0            "client side gentle mode (only replaces gibs); when set t
 seta cl_gentle_messages 0      "client side gentle mode (only replaces frag messages/centerprints)"
 seta cl_gentle_damage 0                "client side gentle mode (only replaces damage flash); when set to 1, a white flash replaces the blood image, when set to 2, a randomily colored flash is used instead"
 
-seta cl_racetimer_position 0.25 "Y-axis positioning of the race timer (from 0 to 1)"
-seta cl_showpressedkeys        0       "Show which movement keys someone is pressing: 1 for spectating, 2 for always"
-seta cl_showpressedkeys_position "0.5 0.8"     "1 0 would be upper right corner, 0.5 0.5 the center"
-
-seta cl_showspeed 0 "show the XY speed of the player"
-seta cl_showspeed_unit 0 "unit selection (0 = qu/s (no postfix), 1 = qu/s, 2 = m/s, 3 = km/h, 4 = mph, 5 = knots)"
-seta cl_showspeed_z 0 "include the speed on the Z-axis"
-seta cl_showspeed_size 30 "size of the numbers"
-seta cl_showspeed_position 0.7 "Y-axis positioning of the numbers"
-
-seta cl_showacceleration 0 "show the XY acceleration of the player"
-seta cl_showacceleration_z 0 "include the speed on the Z-axis"
-seta cl_showacceleration_size 40 "height of the bar"
-seta cl_showacceleration_scale 1 "X-axis scale of the bar"
-seta cl_showacceleration_alpha 0.5 "alpha of the bar"
-seta cl_showacceleration_color_custom 0 "0 = dynamic color depending on acceleration, 1 = use custom color"
-seta cl_showacceleration_color "1 0 0" "color of the bar, needs cl_showacceleration_color_custom to be 1"
-seta cl_showacceleration_position 0.6 "Y-axis positioning of the bar"
-
 set g_jetpack 0 "Jetpack mutator (uses the hook's button, can't coexist with the offhand hook, but only with the onhand one)"
 
 set g_running_guns 0 "... or wonder, till it drives you mad, what would have followed if you had."
@@ -2010,10 +2032,6 @@ scr_conscroll3_y 0
 scr_conscroll_x -0.1
 scr_conscroll_y -0.3
 
-scr_loadingscreen_background 0
-scr_loadingscreen_barcolor "0 0.5 1"
-scr_loadingscreen_barheight 12
-scr_loadingscreen_count 1
 scr_conforcewhiledisconnected 0
 scr_infobar_height 12
 
@@ -2102,9 +2120,17 @@ set g_playerstats_debug 0 "when 1, player stats are dumped to the console too"
 set snd_soundradius 1200
 
 // loading screen
-scr_loadingscreen_scale 1
+scr_loadingscreen_background 0
+scr_loadingscreen_barcolor "0 0.5 1"
+scr_loadingscreen_barheight 12
+scr_loadingscreen_count 12
+scr_loadingscreen_scale 999
 scr_loadingscreen_scale_base 1
-scr_loadingscreen_scale_limit 1
+scr_loadingscreen_scale_limit 2
+
+// sRGB configuration (EXPERIMENTAL, needs maps to be relit)
+alias sRGBcorrect_on  "r_texture_sRGB_skin_diffuse 1;r_texture_sRGB_skin_gloss 1;r_texture_sRGB_skin_glow 1;r_texture_sRGB_reflect 1;r_texture_sRGB_skybox 1;v_gamma 2.2;r_restart"
+alias sRGBcorrect_off "r_texture_sRGB_skin_diffuse 0;r_texture_sRGB_skin_gloss 0;r_texture_sRGB_skin_glow 0;r_texture_sRGB_reflect 0;r_texture_sRGB_skybox 0;v_gamma 1.0;r_restart"
 
 // other config files
 exec balanceXonotic.cfg
@@ -2122,9 +2148,3 @@ exec hud_luminos.cfg
 // enable menu syncing
 alias menu_sync "menu_cmd sync"
 alias scoreboard_columns_set  "cl_cmd scoreboard_columns_set $*"
-
-// BALANCE TESTING (TEMPORARY, PLEASE REMOVE LATER)
-alias balanceSamual   "exec balanceSamual.cfg; restart"
-alias balanceFruitieX "exec balanceXonotic.cfg; restart"
-bind f7 balanceSamual
-bind f8 balanceFruitieX
diff --git a/gfx/hud/default/progressbar.tga b/gfx/hud/default/progressbar.tga
new file mode 100644 (file)
index 0000000..987c8f5
Binary files /dev/null and b/gfx/hud/default/progressbar.tga differ
diff --git a/gfx/hud/default/progressbar_vertical.tga b/gfx/hud/default/progressbar_vertical.tga
new file mode 100644 (file)
index 0000000..3c2d1a8
Binary files /dev/null and b/gfx/hud/default/progressbar_vertical.tga differ
diff --git a/gfx/hud/default/statusbar.tga b/gfx/hud/default/statusbar.tga
deleted file mode 100644 (file)
index 987c8f5..0000000
Binary files a/gfx/hud/default/statusbar.tga and /dev/null differ
diff --git a/gfx/hud/default/statusbar_vertical.tga b/gfx/hud/default/statusbar_vertical.tga
deleted file mode 100644 (file)
index 3c2d1a8..0000000
Binary files a/gfx/hud/default/statusbar_vertical.tga and /dev/null differ
diff --git a/gfx/hud/luminos/dom_icon_blue-highlighted.tga b/gfx/hud/luminos/dom_icon_blue-highlighted.tga
new file mode 100644 (file)
index 0000000..db2e356
Binary files /dev/null and b/gfx/hud/luminos/dom_icon_blue-highlighted.tga differ
diff --git a/gfx/hud/luminos/dom_icon_blue.tga b/gfx/hud/luminos/dom_icon_blue.tga
new file mode 100644 (file)
index 0000000..c78f373
Binary files /dev/null and b/gfx/hud/luminos/dom_icon_blue.tga differ
diff --git a/gfx/hud/luminos/dom_icon_pink-highlighted.tga b/gfx/hud/luminos/dom_icon_pink-highlighted.tga
new file mode 100644 (file)
index 0000000..3564019
Binary files /dev/null and b/gfx/hud/luminos/dom_icon_pink-highlighted.tga differ
diff --git a/gfx/hud/luminos/dom_icon_pink.tga b/gfx/hud/luminos/dom_icon_pink.tga
new file mode 100644 (file)
index 0000000..be51849
Binary files /dev/null and b/gfx/hud/luminos/dom_icon_pink.tga differ
diff --git a/gfx/hud/luminos/dom_icon_red-highlighted.tga b/gfx/hud/luminos/dom_icon_red-highlighted.tga
new file mode 100644 (file)
index 0000000..ea4415e
Binary files /dev/null and b/gfx/hud/luminos/dom_icon_red-highlighted.tga differ
diff --git a/gfx/hud/luminos/dom_icon_red.tga b/gfx/hud/luminos/dom_icon_red.tga
new file mode 100644 (file)
index 0000000..58a1fe2
Binary files /dev/null and b/gfx/hud/luminos/dom_icon_red.tga differ
diff --git a/gfx/hud/luminos/dom_icon_yellow-highlighted.tga b/gfx/hud/luminos/dom_icon_yellow-highlighted.tga
new file mode 100644 (file)
index 0000000..90be4ac
Binary files /dev/null and b/gfx/hud/luminos/dom_icon_yellow-highlighted.tga differ
diff --git a/gfx/hud/luminos/dom_icon_yellow.tga b/gfx/hud/luminos/dom_icon_yellow.tga
new file mode 100644 (file)
index 0000000..4d11505
Binary files /dev/null and b/gfx/hud/luminos/dom_icon_yellow.tga differ
diff --git a/gfx/hud/luminos/progressbar.tga b/gfx/hud/luminos/progressbar.tga
new file mode 100644 (file)
index 0000000..987c8f5
Binary files /dev/null and b/gfx/hud/luminos/progressbar.tga differ
diff --git a/gfx/hud/luminos/progressbar_vertical.tga b/gfx/hud/luminos/progressbar_vertical.tga
new file mode 100644 (file)
index 0000000..3c2d1a8
Binary files /dev/null and b/gfx/hud/luminos/progressbar_vertical.tga differ
diff --git a/gfx/hud/luminos/shield.tga b/gfx/hud/luminos/shield.tga
new file mode 100644 (file)
index 0000000..f13f0b4
Binary files /dev/null and b/gfx/hud/luminos/shield.tga differ
diff --git a/gfx/hud/luminos/statusbar.tga b/gfx/hud/luminos/statusbar.tga
deleted file mode 100644 (file)
index 987c8f5..0000000
Binary files a/gfx/hud/luminos/statusbar.tga and /dev/null differ
diff --git a/gfx/hud/luminos/statusbar_vertical.tga b/gfx/hud/luminos/statusbar_vertical.tga
deleted file mode 100644 (file)
index 3c2d1a8..0000000
Binary files a/gfx/hud/luminos/statusbar_vertical.tga and /dev/null differ
diff --git a/gfx/hud/luminos/strength.tga b/gfx/hud/luminos/strength.tga
new file mode 100644 (file)
index 0000000..b19019d
Binary files /dev/null and b/gfx/hud/luminos/strength.tga differ
diff --git a/gfx/hud/old/dom_icon_blue-highlighted.tga b/gfx/hud/old/dom_icon_blue-highlighted.tga
new file mode 100644 (file)
index 0000000..a1ee2f0
Binary files /dev/null and b/gfx/hud/old/dom_icon_blue-highlighted.tga differ
diff --git a/gfx/hud/old/dom_icon_blue.tga b/gfx/hud/old/dom_icon_blue.tga
new file mode 100644 (file)
index 0000000..9524e70
Binary files /dev/null and b/gfx/hud/old/dom_icon_blue.tga differ
diff --git a/gfx/hud/old/dom_icon_pink-highlighted.tga b/gfx/hud/old/dom_icon_pink-highlighted.tga
new file mode 100644 (file)
index 0000000..748e2ad
Binary files /dev/null and b/gfx/hud/old/dom_icon_pink-highlighted.tga differ
diff --git a/gfx/hud/old/dom_icon_pink.tga b/gfx/hud/old/dom_icon_pink.tga
new file mode 100644 (file)
index 0000000..504c849
Binary files /dev/null and b/gfx/hud/old/dom_icon_pink.tga differ
diff --git a/gfx/hud/old/dom_icon_red-highlighted.tga b/gfx/hud/old/dom_icon_red-highlighted.tga
new file mode 100644 (file)
index 0000000..cba4b3b
Binary files /dev/null and b/gfx/hud/old/dom_icon_red-highlighted.tga differ
diff --git a/gfx/hud/old/dom_icon_red.tga b/gfx/hud/old/dom_icon_red.tga
new file mode 100644 (file)
index 0000000..566614d
Binary files /dev/null and b/gfx/hud/old/dom_icon_red.tga differ
diff --git a/gfx/hud/old/dom_icon_yellow-highlighted.tga b/gfx/hud/old/dom_icon_yellow-highlighted.tga
new file mode 100644 (file)
index 0000000..02e7fb8
Binary files /dev/null and b/gfx/hud/old/dom_icon_yellow-highlighted.tga differ
diff --git a/gfx/hud/old/dom_icon_yellow.tga b/gfx/hud/old/dom_icon_yellow.tga
new file mode 100644 (file)
index 0000000..ef8fa8d
Binary files /dev/null and b/gfx/hud/old/dom_icon_yellow.tga differ
diff --git a/gfx/hud/old/progressbar.tga b/gfx/hud/old/progressbar.tga
new file mode 100644 (file)
index 0000000..0bbad17
Binary files /dev/null and b/gfx/hud/old/progressbar.tga differ
diff --git a/gfx/hud/old/progressbar_vertical.tga b/gfx/hud/old/progressbar_vertical.tga
new file mode 100644 (file)
index 0000000..d63a37f
Binary files /dev/null and b/gfx/hud/old/progressbar_vertical.tga differ
diff --git a/gfx/hud/old/statusbar.tga b/gfx/hud/old/statusbar.tga
deleted file mode 100644 (file)
index 0bbad17..0000000
Binary files a/gfx/hud/old/statusbar.tga and /dev/null differ
diff --git a/gfx/hud/old/statusbar_vertical.tga b/gfx/hud/old/statusbar_vertical.tga
deleted file mode 100644 (file)
index d63a37f..0000000
Binary files a/gfx/hud/old/statusbar_vertical.tga and /dev/null differ
index 44ebb5294a7921b0f8e52f86753a6dcc7d0b0dbc..76a7edf1fad45a5333f64ec13d3430c071efa4d2 100644 (file)
Binary files a/gfx/loading.tga and b/gfx/loading.tga differ
diff --git a/gfx/loading10.tga b/gfx/loading10.tga
new file mode 100644 (file)
index 0000000..5f453be
Binary files /dev/null and b/gfx/loading10.tga differ
diff --git a/gfx/loading11.tga b/gfx/loading11.tga
new file mode 100644 (file)
index 0000000..5fb261e
Binary files /dev/null and b/gfx/loading11.tga differ
diff --git a/gfx/loading12.tga b/gfx/loading12.tga
new file mode 100644 (file)
index 0000000..6345a9a
Binary files /dev/null and b/gfx/loading12.tga differ
diff --git a/gfx/loading2.tga b/gfx/loading2.tga
new file mode 100644 (file)
index 0000000..3aa4a29
Binary files /dev/null and b/gfx/loading2.tga differ
diff --git a/gfx/loading3.tga b/gfx/loading3.tga
new file mode 100644 (file)
index 0000000..6396085
Binary files /dev/null and b/gfx/loading3.tga differ
diff --git a/gfx/loading4.tga b/gfx/loading4.tga
new file mode 100644 (file)
index 0000000..eaf44d0
Binary files /dev/null and b/gfx/loading4.tga differ
diff --git a/gfx/loading5.tga b/gfx/loading5.tga
new file mode 100644 (file)
index 0000000..c06d323
Binary files /dev/null and b/gfx/loading5.tga differ
diff --git a/gfx/loading6.tga b/gfx/loading6.tga
new file mode 100644 (file)
index 0000000..7c8007c
Binary files /dev/null and b/gfx/loading6.tga differ
diff --git a/gfx/loading7.tga b/gfx/loading7.tga
new file mode 100644 (file)
index 0000000..56aa4af
Binary files /dev/null and b/gfx/loading7.tga differ
diff --git a/gfx/loading8.tga b/gfx/loading8.tga
new file mode 100644 (file)
index 0000000..a41d344
Binary files /dev/null and b/gfx/loading8.tga differ
diff --git a/gfx/loading9.tga b/gfx/loading9.tga
new file mode 100644 (file)
index 0000000..dc63603
Binary files /dev/null and b/gfx/loading9.tga differ
diff --git a/gfx/ons-frame-team.tga b/gfx/ons-frame-team.tga
deleted file mode 100644 (file)
index fb97397..0000000
Binary files a/gfx/ons-frame-team.tga and /dev/null differ
diff --git a/gfx/ons-frame.tga b/gfx/ons-frame.tga
deleted file mode 100644 (file)
index 13a8912..0000000
Binary files a/gfx/ons-frame.tga and /dev/null differ
index 57be0d0a7fd69fa718e1583389404ee6c8a984b5..4c11d42079856dee560dc26463a74c9e2001df10 100644 (file)
@@ -19,8 +19,11 @@ seta hud_progressbar_health_color "0.6 0 0"
 seta hud_progressbar_armor_color "0 0.6 0"
 seta hud_progressbar_fuel_color "0.6 0.6 0"
 seta hud_progressbar_nexball_color "0.7 0.1 0"
+seta hud_progressbar_speed_color "1 0.75 0"
+seta hud_progressbar_acceleration_color "0.5 0.75 1"
+seta hud_progressbar_acceleration_neg_color "0.125 0.25 0.5"
 
-seta _hud_panelorder "12 9 10 5 6 14 0 7 4 11 2 1 3 8 13 "
+seta _hud_panelorder "15 12 9 10 5 6 14 0 7 4 11 2 1 3 8 13 "
 
 seta hud_configure_grid "1"
 seta hud_configure_grid_xsize "0.010000"
@@ -72,10 +75,10 @@ seta hud_panel_powerups_bg_color ""
 seta hud_panel_powerups_bg_color_team ""
 seta hud_panel_powerups_bg_alpha ""
 seta hud_panel_powerups_bg_border ""
-seta hud_panel_powerups_bg_padding "0"
-seta hud_panel_powerups_flip "0"
-seta hud_panel_powerups_iconalign "4"
-seta hud_panel_powerups_baralign "4"
+seta hud_panel_powerups_bg_padding ""
+seta hud_panel_powerups_flip "1"
+seta hud_panel_powerups_iconalign "3"
+seta hud_panel_powerups_baralign "3"
 seta hud_panel_powerups_progressbar "1"
 seta hud_panel_powerups_progressbar_strength "progressbar"
 seta hud_panel_powerups_progressbar_shield "progressbar"
@@ -91,8 +94,8 @@ seta hud_panel_healtharmor_bg_alpha ""
 seta hud_panel_healtharmor_bg_border ""
 seta hud_panel_healtharmor_bg_padding ""
 seta hud_panel_healtharmor_flip "0"
-seta hud_panel_healtharmor_iconalign "4"
-seta hud_panel_healtharmor_baralign "4"
+seta hud_panel_healtharmor_iconalign "3"
+seta hud_panel_healtharmor_baralign "3"
 seta hud_panel_healtharmor_progressbar "1"
 seta hud_panel_healtharmor_progressbar_health "progressbar"
 seta hud_panel_healtharmor_progressbar_armor "progressbar"
@@ -215,4 +218,19 @@ seta hud_panel_infomessages_bg_border ""
 seta hud_panel_infomessages_bg_padding "0"
 seta hud_panel_infomessages_flip "1"
 
+seta hud_panel_physics 0
+seta hud_panel_physics_pos "0.420000 0.620000"
+seta hud_panel_physics_size "0.170000 0.080000"
+seta hud_panel_physics_bg ""
+seta hud_panel_physics_bg_color ""
+seta hud_panel_physics_bg_color_team ""
+seta hud_panel_physics_bg_alpha ""
+seta hud_panel_physics_bg_border ""
+seta hud_panel_physics_bg_padding ""
+seta hud_panel_physics_flip "0"
+seta hud_panel_physics_baralign "0"
+seta hud_panel_physics_acceleration_progressbar_mode "0"
+seta hud_panel_physics_progressbar "1"
+seta hud_panel_physics_text "1"
+
 menu_sync
index fef69f23fd52f73104af2e0f42558d132c931852..5d803304475b0b1a78ee8416ef6a2c62bff8db55 100644 (file)
@@ -19,8 +19,11 @@ seta hud_progressbar_health_color "0.6 0 0"
 seta hud_progressbar_armor_color "0 0.6 0"
 seta hud_progressbar_fuel_color "0.6 0.6 0"
 seta hud_progressbar_nexball_color "0.7 0.1 0"
+seta hud_progressbar_speed_color "1 0.75 0"
+seta hud_progressbar_acceleration_color "0.5 0.75 1"
+seta hud_progressbar_acceleration_neg_color "0.125 0.25 0.5"
 
-seta _hud_panelorder "10 3 0 14 6 9 13 4 1 2 11 12 7 5 8 "
+seta _hud_panelorder "10 3 0 14 6 9 13 4 1 2 11 12 7 5 8 15 "
 
 seta hud_configure_grid "1"
 seta hud_configure_grid_xsize "0.010000"
@@ -215,4 +218,19 @@ seta hud_panel_infomessages_bg_border ""
 seta hud_panel_infomessages_bg_padding "0"
 seta hud_panel_infomessages_flip "1"
 
+seta hud_panel_physics 0
+seta hud_panel_physics_pos "0.440000 0.590000"
+seta hud_panel_physics_size "0.120000 0.050000"
+seta hud_panel_physics_bg ""
+seta hud_panel_physics_bg_color ""
+seta hud_panel_physics_bg_color_team ""
+seta hud_panel_physics_bg_alpha ""
+seta hud_panel_physics_bg_border ""
+seta hud_panel_physics_bg_padding ""
+seta hud_panel_physics_flip "0"
+seta hud_panel_physics_baralign "0"
+seta hud_panel_physics_acceleration_progressbar_mode "0"
+seta hud_panel_physics_progressbar "3"
+seta hud_panel_physics_text "2"
+
 menu_sync
index ca8ea38de05476976feaf3a64b31755697d7cd44..a5e16e75a4acb7430e89a8c3e67bf1e07980ce77 100644 (file)
@@ -19,8 +19,11 @@ seta hud_progressbar_health_color "0.6 0 0"
 seta hud_progressbar_armor_color "0 0.6 0"
 seta hud_progressbar_fuel_color "0.6 0.6 0"
 seta hud_progressbar_nexball_color "0.7 0.1 0"
+seta hud_progressbar_speed_color "1 0.75 0"
+seta hud_progressbar_acceleration_color "0.5 0.75 1"
+seta hud_progressbar_acceleration_neg_color "0.125 0.25 0.5"
 
-seta _hud_panelorder "10 9 6 8 14 5 0 4 13 2 7 1 3 11 12 "
+seta _hud_panelorder "15 10 9 6 8 14 5 0 4 13 2 7 1 3 11 12 "
 
 seta hud_configure_grid "1"
 seta hud_configure_grid_xsize "0.010000"
@@ -74,8 +77,8 @@ seta hud_panel_powerups_bg_alpha ""
 seta hud_panel_powerups_bg_border ""
 seta hud_panel_powerups_bg_padding ""
 seta hud_panel_powerups_flip "1"
-seta hud_panel_powerups_iconalign "4"
-seta hud_panel_powerups_baralign "4"
+seta hud_panel_powerups_iconalign "3"
+seta hud_panel_powerups_baralign "3"
 seta hud_panel_powerups_progressbar "1"
 seta hud_panel_powerups_progressbar_strength "progressbar"
 seta hud_panel_powerups_progressbar_shield "progressbar"
@@ -91,8 +94,8 @@ seta hud_panel_healtharmor_bg_alpha ""
 seta hud_panel_healtharmor_bg_border ""
 seta hud_panel_healtharmor_bg_padding ""
 seta hud_panel_healtharmor_flip "0"
-seta hud_panel_healtharmor_iconalign "4"
-seta hud_panel_healtharmor_baralign "4"
+seta hud_panel_healtharmor_iconalign "3"
+seta hud_panel_healtharmor_baralign "3"
 seta hud_panel_healtharmor_progressbar "1"
 seta hud_panel_healtharmor_progressbar_health "progressbar"
 seta hud_panel_healtharmor_progressbar_armor "progressbar"
@@ -215,4 +218,19 @@ seta hud_panel_infomessages_bg_border ""
 seta hud_panel_infomessages_bg_padding "0"
 seta hud_panel_infomessages_flip "1"
 
+seta hud_panel_physics 0
+seta hud_panel_physics_pos "0.410000 0.590000"
+seta hud_panel_physics_size "0.180000 0.100000"
+seta hud_panel_physics_bg ""
+seta hud_panel_physics_bg_color ""
+seta hud_panel_physics_bg_color_team ""
+seta hud_panel_physics_bg_alpha ""
+seta hud_panel_physics_bg_border ""
+seta hud_panel_physics_bg_padding ""
+seta hud_panel_physics_flip "0"
+seta hud_panel_physics_baralign "0"
+seta hud_panel_physics_acceleration_progressbar_mode "0"
+seta hud_panel_physics_progressbar "1"
+seta hud_panel_physics_text "1"
+
 menu_sync
index 80fe445e48cb85ecce0e558606e43ac2b74dc14e..55a1149e9226adbe2140ddaae253cf51cdd4fcba 100644 (file)
@@ -19,8 +19,11 @@ seta hud_progressbar_health_color "0.6 0 0"
 seta hud_progressbar_armor_color "0 0.6 0"
 seta hud_progressbar_fuel_color "0.6 0.6 0"
 seta hud_progressbar_nexball_color "0.7 0.1 0"
+seta hud_progressbar_speed_color "1 0.75 0"
+seta hud_progressbar_acceleration_color "0.5 0.75 1"
+seta hud_progressbar_acceleration_neg_color "0.125 0.25 0.5"
 
-seta _hud_panelorder "3 1 2 11 10 0 14 6 9 13 4 12 7 5 8 "
+seta _hud_panelorder "15 3 1 2 11 10 0 14 6 9 13 4 12 7 5 8 "
 
 seta hud_configure_grid "1"
 seta hud_configure_grid_xsize "0.010000"
@@ -79,6 +82,7 @@ seta hud_panel_powerups_baralign "1"
 seta hud_panel_powerups_progressbar "1"
 seta hud_panel_powerups_progressbar_strength "progressbar"
 seta hud_panel_powerups_progressbar_shield "progressbar"
+seta hud_panel_powerups_text "0"
 
 seta hud_panel_healtharmor 1
 seta hud_panel_healtharmor_pos "0.350000 0.380000"
@@ -214,4 +218,19 @@ seta hud_panel_infomessages_bg_border ""
 seta hud_panel_infomessages_bg_padding "0"
 seta hud_panel_infomessages_flip "1"
 
+seta hud_panel_physics 0
+seta hud_panel_physics_pos "0.270000 0.730000"
+seta hud_panel_physics_size "0.170000 0.030000"
+seta hud_panel_physics_bg ""
+seta hud_panel_physics_bg_color ""
+seta hud_panel_physics_bg_color_team ""
+seta hud_panel_physics_bg_alpha ""
+seta hud_panel_physics_bg_border ""
+seta hud_panel_physics_bg_padding ""
+seta hud_panel_physics_flip "0"
+seta hud_panel_physics_baralign "0"
+seta hud_panel_physics_acceleration_progressbar_mode "0"
+seta hud_panel_physics_progressbar "3"
+seta hud_panel_physics_text "2"
+
 menu_sync
index cfa50af89acb4dd8add91079c3c9cfcc7a886954..87bebc5d035fd5e49d33a74a149e23ffcce4bbc3 100644 (file)
@@ -19,8 +19,11 @@ seta hud_progressbar_health_color "0.6 0 0"
 seta hud_progressbar_armor_color "0 0.6 0"
 seta hud_progressbar_fuel_color "0.6 0.6 0"
 seta hud_progressbar_nexball_color "0.7 0.1 0"
+seta hud_progressbar_speed_color "0.25 0.25 1"
+seta hud_progressbar_acceleration_color "0.25 1 0.25"
+seta hud_progressbar_acceleration_neg_color "1 0.25 0.25"
 
-seta _hud_panelorder "0 11 8 5 6 14 9 13 7 2 3 1 10 12 4 "
+seta _hud_panelorder "15 0 11 8 5 6 14 9 13 7 2 3 1 10 12 4 "
 
 seta hud_configure_grid "1"
 seta hud_configure_grid_xsize "0.01"
@@ -101,10 +104,10 @@ seta hud_panel_healtharmor_text "1"
 seta hud_panel_notify 0
 seta hud_panel_notify_pos "0 0.650000"
 seta hud_panel_notify_size "0.300000 0.070000"
-seta hud_panel_notify_bg ""
+seta hud_panel_notify_bg "0"
 seta hud_panel_notify_bg_color ""
 seta hud_panel_notify_bg_color_team ""
-seta hud_panel_notify_bg_alpha "0"
+seta hud_panel_notify_bg_alpha ""
 seta hud_panel_notify_bg_border ""
 seta hud_panel_notify_bg_padding ""
 seta hud_panel_notify_flip "0"
@@ -215,4 +218,19 @@ seta hud_panel_infomessages_bg_border ""
 seta hud_panel_infomessages_bg_padding ""
 seta hud_panel_infomessages_flip "1"
 
+seta hud_panel_physics 0
+seta hud_panel_physics_pos "0.430000 0.640000"
+seta hud_panel_physics_size "0.140000 0.100000"
+seta hud_panel_physics_bg "0"
+seta hud_panel_physics_bg_color ""
+seta hud_panel_physics_bg_color_team ""
+seta hud_panel_physics_bg_alpha ""
+seta hud_panel_physics_bg_border ""
+seta hud_panel_physics_bg_padding ""
+seta hud_panel_physics_flip "0"
+seta hud_panel_physics_baralign "0"
+seta hud_panel_physics_acceleration_progressbar_mode "0"
+seta hud_panel_physics_progressbar "3"
+seta hud_panel_physics_text "2"
+
 menu_sync
index 93773ddd0fe97fa859b53b3d5b9ebc74e079b5cd..3239d487d8f3141ca738550e6307d8b73a9aa7a6 100644 (file)
@@ -1,16 +1,16 @@
-# Xonotic Menu
+# Xonotic CSQC
 # Copyright (C) 2011 Team Xonotic
 # This file is distributed under the same license as the Xonotic package.
-# Rudolf Polzer <divVerent@xonotic.org>
+# Rudolf Polzer <divVerent@xonotic.org>, 2011.
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: 0.1preview\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-02-07 07:50+0100\n"
-"PO-Revision-Date: 2011-02-07 07:50+0100\n"
+"POT-Creation-Date: 2011-04-30 10:05+0200\n"
+"PO-Revision-Date: 2011-04-20 10:46+0200\n"
 "Last-Translator: Rudolf Polzer <divVerent@xonotic.org>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language-Team: Rudolf Polzer <divVerent@xonotic.org>\n"
 "Language: de\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -70,8 +70,8 @@ msgstr "benutzerdefiniert"
 
 #: qcsrc/menu/menu.qc:29
 #, c-format
-msgid "^4MQC Build information: %s\n"
-msgstr "^4MQC Build-Information: %s (deutsch)\n"
+msgid "^4MQC Build information: ^1%s\n"
+msgstr "^4MQC Build-Information: ^1%s (deutsch)\n"
 
 #: qcsrc/menu/xonotic/campaign.c:284
 #: qcsrc/menu/xonotic/dialog_singleplayer.c:66
@@ -332,7 +332,7 @@ msgstr "Radar:"
 #: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:32
 #: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:43
 #: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:82
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:151
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:154
 #: qcsrc/menu/xonotic/util.qc:608
 msgid "Alpha:"
 msgstr "Alpha:"
@@ -1004,11 +1004,11 @@ msgstr "Pause"
 msgid "Address:"
 msgstr "Adresse:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:65
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:67
 msgid "Info..."
 msgstr "Info..."
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:70
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:72
 #: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:317
 msgid "Join!"
 msgstr "Verbinden!"
@@ -1150,7 +1150,7 @@ msgid "Crosshair:"
 msgstr "Fadenkreuz:"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:111
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:143
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:139
 msgid "Per weapon"
 msgstr "pro Waffe"
 
@@ -1166,35 +1166,43 @@ msgstr "Alpha:"
 msgid "Crosshair color:"
 msgstr "Farbe:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:145
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:140
+msgid "By health"
+msgstr "je nach Health"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:143
+msgid "Custom"
+msgstr "benutzerdefiniert"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:148
 msgid "Enable center dot"
 msgstr "Punkt in der Mitte aktivieren"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:148
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:151
 msgid "Size:"
 msgstr "Größe:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:155
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:158
 msgid "Hit test:"
 msgstr "Treffer-Test:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:156
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:159
 msgid "HTST^None"
 msgstr "Aus"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:157
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:160
 msgid "TrueAim"
 msgstr "TrueAim"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:158
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:161
 msgid "Enemies"
 msgstr "Gegner"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:161
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:164
 msgid "Waypoints setup..."
 msgstr "Wegpunkt-Einstellungen..."
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:167
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:169
 msgid "Enter HUD editor"
 msgstr "HUD-Editor starten"
 
@@ -1214,35 +1222,35 @@ msgstr "inoffizielle"
 msgid "MDL^All"
 msgstr "alle"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:179
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:180
 msgid "Disable gore effects"
 msgstr "Gewalteffekte deaktivieren"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:181
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:182
 msgid "Gibs:"
 msgstr "Fleischteile:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:183
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:184
 msgid "GIBS^None"
 msgstr "Aus"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:184
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:185
 msgid "GIBS^Few"
 msgstr "Wenige"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:185
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:186
 msgid "GIBS^Many"
 msgstr "Einige"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:186
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:187
 msgid "GIBS^Lots"
 msgstr "Viele"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:190
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:191
 msgid "Damage splash:"
 msgstr "Schadenseffekt:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:194
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:195
 #: qcsrc/menu/xonotic/dialog_settings_audio.c:178
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:194
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:30
@@ -1333,7 +1341,7 @@ msgstr "Beenden"
 
 #: qcsrc/menu/xonotic/dialog_quit.c:17
 msgid "Are you sure you want to quit?"
-msgstr "Wollen Sie das Spiel wirklich beenden?"
+msgstr "Willst du das Spiel wirklich beenden?"
 
 #: qcsrc/menu/xonotic/dialog_quit.c:20
 msgid "Yes"
@@ -2207,31 +2215,31 @@ msgstr ""
 msgid "<no model found>"
 msgstr "<Spielermodell nicht gefunden>"
 
-#: qcsrc/menu/xonotic/serverlist.c:360
+#: qcsrc/menu/xonotic/serverlist.c:185
 msgid "Remove"
 msgstr "Vergessen"
 
-#: qcsrc/menu/xonotic/serverlist.c:362
+#: qcsrc/menu/xonotic/serverlist.c:187
 msgid "Bookmark"
 msgstr "Speichern"
 
-#: qcsrc/menu/xonotic/serverlist.c:518
+#: qcsrc/menu/xonotic/serverlist.c:523
 msgid "Ping"
 msgstr "Ping"
 
-#: qcsrc/menu/xonotic/serverlist.c:519
+#: qcsrc/menu/xonotic/serverlist.c:524
 msgid "Host name"
 msgstr "Servername"
 
-#: qcsrc/menu/xonotic/serverlist.c:520
+#: qcsrc/menu/xonotic/serverlist.c:525
 msgid "Map"
 msgstr "Map"
 
-#: qcsrc/menu/xonotic/serverlist.c:521
+#: qcsrc/menu/xonotic/serverlist.c:526
 msgid "Type"
 msgstr "Typ"
 
-#: qcsrc/menu/xonotic/serverlist.c:522
+#: qcsrc/menu/xonotic/serverlist.c:527
 msgid "Players"
 msgstr "Spieler"
 
@@ -2298,6 +2306,11 @@ msgstr ""
 msgid "Autogenerating mapinfo for newly added maps..."
 msgstr "Automatische Generierung von mapinfo-Dateien..."
 
+#: qcsrc/menu/xonotic/util.qc:367
+#, c-format
+msgid "^1%s TEST BUILD"
+msgstr "^1%s TESTVERSION"
+
 #: qcsrc/menu/xonotic/util.qc:432
 #, c-format
 msgid "Update to %s now!"
@@ -2406,61 +2419,61 @@ msgstr "Panel aktivieren"
 msgid "Crylink"
 msgstr "Crylink"
 
-#: qcsrc/server/w_crylink.qc:645
+#: qcsrc/server/w_crylink.qc:664
 #, c-format
 msgid "%s succeeded at self-destructing themself with the Crylink"
-msgstr "%s hat sich erfolgreich mit der Crylink selbst zerstört"
+msgstr "%s zerstörte sich selbst erfolgreich mit der Crylink"
 
-#: qcsrc/server/w_crylink.qc:650
+#: qcsrc/server/w_crylink.qc:669
 #, c-format
 msgid "%s could not hide from %s's Crylink"
 msgstr "%s konnte sich nicht vor %ss Crylink verstecken"
 
-#: qcsrc/server/w_crylink.qc:652
+#: qcsrc/server/w_crylink.qc:671
 #, c-format
 msgid "%s was too close to %s's Crylink"
-msgstr "%s ist %ss Crylink zu nahe getreten"
+msgstr "%s trat %ss Crylink zu nahe"
 
-#: qcsrc/server/w_crylink.qc:654
+#: qcsrc/server/w_crylink.qc:673
 #, c-format
 msgid "%s took a close look at %s's Crylink"
-msgstr "%s hat %ss Crylink genau unter die Lupe genommen"
+msgstr "%s schaute sich %ss Crylink sehr genau an"
 
 #: qcsrc/server/w_electro.qc:2
 msgid "Electro"
 msgstr "Electro"
 
-#: qcsrc/server/w_electro.qc:503
+#: qcsrc/server/w_electro.qc:571
 #, c-format
 msgid "%s could not remember where they put plasma"
-msgstr "%s konnte sich nicht erinnern, wo das Plasma lag"
+msgstr "%s vergaß, wo er das Plasma hingetan hatte"
 
-#: qcsrc/server/w_electro.qc:505
+#: qcsrc/server/w_electro.qc:573
 #, c-format
 msgid "%s played with plasma"
-msgstr "%s hat mit Plasma gespielt"
+msgstr "%s spielte mit Plasma"
 
-#: qcsrc/server/w_electro.qc:512
+#: qcsrc/server/w_electro.qc:580
 #, c-format
 msgid "%s just noticed %s's blue ball"
-msgstr "%s hat gerade %ss blauen Ball bemerkt"
+msgstr "%s hat gerade %ss blaue Kugel bemerkt"
 
-#: qcsrc/server/w_electro.qc:514
+#: qcsrc/server/w_electro.qc:582
 #, c-format
 msgid "%s got in touch with %s's blue ball"
-msgstr "%s kam in Kontakt mit %ss blauen Ball"
+msgstr "%s kam mit %ss blauer Kugel in Kontakt"
 
-#: qcsrc/server/w_electro.qc:519
+#: qcsrc/server/w_electro.qc:587
 #, c-format
 msgid "%s felt the electrifying air of %s's combo"
 msgstr "%s hat gespürt, wie %ss Combo die Luft elektrisierte"
 
-#: qcsrc/server/w_electro.qc:521
+#: qcsrc/server/w_electro.qc:589
 #, c-format
 msgid "%s got too close to %s's blue beam"
 msgstr "%s kam zu nah an %ss blauen Strahl"
 
-#: qcsrc/server/w_electro.qc:523
+#: qcsrc/server/w_electro.qc:591
 #, c-format
 msgid "%s was blasted by %s's blue beam"
 msgstr "%s wurde von %ss blauen Strahl erwischt"
@@ -2469,42 +2482,42 @@ msgstr "%s wurde von %ss blauen Strahl erwischt"
 msgid "Fireball"
 msgstr "Fireball"
 
-#: qcsrc/server/w_fireball.qc:392
+#: qcsrc/server/w_fireball.qc:417
 #, c-format
 msgid "%s forgot about some firemine"
 msgstr "%s hat den Platz einer Feuermine vergessen"
 
-#: qcsrc/server/w_fireball.qc:394 qcsrc/server/w_hlac.qc:223
+#: qcsrc/server/w_fireball.qc:419 qcsrc/server/w_hlac.qc:240
 #, c-format
 msgid "%s should have used a smaller gun"
 msgstr "%s hätte eine kleinere Waffe nehmen sollen"
 
-#: qcsrc/server/w_fireball.qc:401
+#: qcsrc/server/w_fireball.qc:426
 #, c-format
 msgid "%s tried to catch %s's firemine"
 msgstr "%s hat versucht %ss Feuermine zu fangen"
 
-#: qcsrc/server/w_fireball.qc:403
+#: qcsrc/server/w_fireball.qc:428
 #, c-format
 msgid "%s fatefully ignored %s's firemine"
 msgstr "%s hat tragischerweise %ss Feuermine ignoriert"
 
-#: qcsrc/server/w_fireball.qc:410
+#: qcsrc/server/w_fireball.qc:435
 #, c-format
 msgid "%s could not hide from %s's fireball"
 msgstr "%s konnte sich nicht vor %ss Feuerball verstecken"
 
-#: qcsrc/server/w_fireball.qc:412
+#: qcsrc/server/w_fireball.qc:437
 #, c-format
 msgid "%s saw the pretty lights of %s's fireball"
 msgstr "%s hat die hübschen Lichter von %ss Feuerball gesehen"
 
-#: qcsrc/server/w_fireball.qc:415
+#: qcsrc/server/w_fireball.qc:440
 #, c-format
 msgid "%s got too close to %s's fireball"
 msgstr "%s ist %ss Feuerball zu nahe getreten"
 
-#: qcsrc/server/w_fireball.qc:417
+#: qcsrc/server/w_fireball.qc:442
 #, c-format
 msgid "%s tasted %s's fireball"
 msgstr "%s hat von %ss Feuerball probiert"
@@ -2513,27 +2526,27 @@ msgstr "%s hat von %ss Feuerball probiert"
 msgid "Mortar"
 msgstr "Mortar"
 
-#: qcsrc/server/w_grenadelauncher.qc:357
+#: qcsrc/server/w_grenadelauncher.qc:378
 #, c-format
 msgid "%s tried out his own grenade"
 msgstr "%s wollte wissen, ob seine Granate funktioniert"
 
-#: qcsrc/server/w_grenadelauncher.qc:359
+#: qcsrc/server/w_grenadelauncher.qc:380
 #, c-format
 msgid "%s detonated"
 msgstr "%s verfing sich in der eigenen Detonation"
 
-#: qcsrc/server/w_grenadelauncher.qc:365
+#: qcsrc/server/w_grenadelauncher.qc:386
 #, c-format
 msgid "%s didn't see %s's grenade"
 msgstr "%s hat %ss Granate nicht gesehen"
 
-#: qcsrc/server/w_grenadelauncher.qc:367
+#: qcsrc/server/w_grenadelauncher.qc:388
 #, c-format
 msgid "%s almost dodged %s's grenade"
 msgstr "%s ist fast %ss Granate ausgewichen"
 
-#: qcsrc/server/w_grenadelauncher.qc:369
+#: qcsrc/server/w_grenadelauncher.qc:390
 #, c-format
 msgid "%s ate %s's grenade"
 msgstr "%s nahm %ss Granate in den Mund"
@@ -2542,42 +2555,42 @@ msgstr "%s nahm %ss Granate in den Mund"
 msgid "Hagar"
 msgstr "Hagar"
 
-#: qcsrc/server/w_hagar.qc:185 qcsrc/server/w_seeker.qc:523
+#: qcsrc/server/w_hagar.qc:209 qcsrc/server/w_seeker.qc:655
 #, c-format
 msgid "%s played with tiny rockets"
 msgstr "%s hat mit kleinen Raketen gespielt"
 
-#: qcsrc/server/w_hagar.qc:189
+#: qcsrc/server/w_hagar.qc:213
 #, c-format
 msgid "%s hoped %s's missiles wouldn't bounce"
 msgstr "%s hat gehofft, dass %ss Raketen nicht von Wänden abprallen"
 
-#: qcsrc/server/w_hagar.qc:191
+#: qcsrc/server/w_hagar.qc:215 qcsrc/server/w_seeker.qc:661
 #, c-format
 msgid "%s was pummeled by %s"
-msgstr "%s hat sich von %s zerlegen lassen"
+msgstr "^1%s^1 wurde von %s^1 erwischt"
 
 #: qcsrc/server/w_hlac.qc:2
 msgid "Heavy Laser Assault Cannon"
 msgstr "Heavy Laser Assault Cannon"
 
-#: qcsrc/server/w_hlac.qc:225
+#: qcsrc/server/w_hlac.qc:242
 #, c-format
 msgid "%s was cut down by %s"
-msgstr "%s ist von %s niedergeschossen worden"
+msgstr "^1%s^1 wurde von %s^1 niedergehauen"
 
 #: qcsrc/server/w_hook.qc:2
 msgid "Grappling Hook"
 msgstr "Grappling Hook"
 
-#: qcsrc/server/w_hook.qc:267 qcsrc/server/w_minstanex.qc:257
-#: qcsrc/server/w_nex.qc:224 qcsrc/server/w_porto.qc:293
-#: qcsrc/server/w_shotgun.qc:179 qcsrc/server/w_uzi.qc:287
+#: qcsrc/server/w_hook.qc:266 qcsrc/server/w_minstanex.qc:290
+#: qcsrc/server/w_nex.qc:267 qcsrc/server/w_porto.qc:296
+#: qcsrc/server/w_shotgun.qc:203 qcsrc/server/w_uzi.qc:317
 #, c-format
 msgid "%s did the impossible"
 msgstr "%s hat das Unmögliche geschafft"
 
-#: qcsrc/server/w_hook.qc:269
+#: qcsrc/server/w_hook.qc:268
 #, c-format
 msgid "%s has run into %s's gravity bomb"
 msgstr "%s ist in %ss Gravitationsbombe reingelaufen"
@@ -2586,41 +2599,41 @@ msgstr "%s ist in %ss Gravitationsbombe reingelaufen"
 msgid "Laser"
 msgstr "Laser"
 
-#: qcsrc/server/w_laser.qc:285
+#: qcsrc/server/w_laser.qc:305
 #, c-format
 msgid "%s lasered themself to hell"
 msgstr "%s hat sich in die Hölle gelasert"
 
-#: qcsrc/server/w_laser.qc:289
+#: qcsrc/server/w_laser.qc:309
 #, c-format
 msgid "%s was cut in half by %s's gauntlet"
 msgstr "%s ist von %ss Gauntlet halbiert worden"
 
-#: qcsrc/server/w_laser.qc:291
+#: qcsrc/server/w_laser.qc:311
 #, c-format
 msgid "%s was lasered to death by %s"
-msgstr "%s ist von %s zu Tode gelasert worden"
+msgstr "^1%s^1 wurde von %s^1 zu Tode gelasert"
 
 #: qcsrc/server/w_minelayer.qc:2
 msgid "Mine Layer"
 msgstr "Mine Layer"
 
-#: qcsrc/server/w_minelayer.qc:438 qcsrc/server/w_rocketlauncher.qc:480
+#: qcsrc/server/w_minelayer.qc:495 qcsrc/server/w_rocketlauncher.qc:500
 #, c-format
 msgid "%s exploded"
 msgstr "%s ist explodiert"
 
-#: qcsrc/server/w_minelayer.qc:442
+#: qcsrc/server/w_minelayer.qc:499
 #, c-format
 msgid "%s got too close to %s's mine"
 msgstr "%s ist %ss Mine zu nahe getreten"
 
-#: qcsrc/server/w_minelayer.qc:444
+#: qcsrc/server/w_minelayer.qc:501
 #, c-format
 msgid "%s almost dodged %s's mine"
 msgstr "%s ist fast %ss Mine ausgewichen"
 
-#: qcsrc/server/w_minelayer.qc:446
+#: qcsrc/server/w_minelayer.qc:503
 #, c-format
 msgid "%s stepped on %s's mine"
 msgstr "%s ist auf %ss Mine gelatscht"
@@ -2629,10 +2642,10 @@ msgstr "%s ist auf %ss Mine gelatscht"
 msgid "MinstaNex"
 msgstr "MinstaNex"
 
-#: qcsrc/server/w_minstanex.qc:259 qcsrc/server/w_nex.qc:226
+#: qcsrc/server/w_minstanex.qc:292 qcsrc/server/w_nex.qc:269
 #, c-format
 msgid "%s has been vaporized by %s"
-msgstr "%s hat sich, dank %ss Nex, in Luft aufgelöst"
+msgstr "^1%s^1 wurde von %s^1 vernichtet"
 
 #: qcsrc/server/w_nex.qc:2
 msgid "Nex"
@@ -2642,7 +2655,7 @@ msgstr "Nex"
 msgid "Port-O-Launch"
 msgstr "Port-O-Launch"
 
-#: qcsrc/server/w_porto.qc:295
+#: qcsrc/server/w_porto.qc:298
 #, c-format
 msgid "%s felt %s doing the impossible to him"
 msgstr "%s hat gespürt, wie %s das Unmögliche für ihn getan hat"
@@ -2651,17 +2664,17 @@ msgstr "%s hat gespürt, wie %s das Unmögliche für ihn getan hat"
 msgid "Rocket Launcher"
 msgstr "Rocket Launcher"
 
-#: qcsrc/server/w_rocketlauncher.qc:484
+#: qcsrc/server/w_rocketlauncher.qc:504
 #, c-format
 msgid "%s got too close to %s's rocket"
 msgstr "%s ist %ss Rakete zu nahe getreten"
 
-#: qcsrc/server/w_rocketlauncher.qc:486
+#: qcsrc/server/w_rocketlauncher.qc:506
 #, c-format
 msgid "%s almost dodged %s's rocket"
 msgstr "%s ist fast %ss Rakete ausgewichen"
 
-#: qcsrc/server/w_rocketlauncher.qc:488
+#: qcsrc/server/w_rocketlauncher.qc:508
 #, c-format
 msgid "%s ate %s's rocket"
 msgstr "%s hat %ss Rakete in den Mund genommen"
@@ -2670,81 +2683,76 @@ msgstr "%s hat %ss Rakete in den Mund genommen"
 msgid "T.A.G. Seeker"
 msgstr "T.A.G. Seeker"
 
-#: qcsrc/server/w_seeker.qc:527
-#, c-format
-msgid "%s ran into %s's flac"
-msgstr "%s ist in %ss Flac reingerannt"
-
-#: qcsrc/server/w_seeker.qc:529
+#: qcsrc/server/w_seeker.qc:659
 #, c-format
 msgid "%s was tagged by %s"
-msgstr "%s wurde von %s getaggt"
+msgstr "^1%s^1 wurde von %s^1 getagged"
 
 #: qcsrc/server/w_shotgun.qc:2
 msgid "Shotgun"
 msgstr "Shotgun"
 
-#: qcsrc/server/w_shotgun.qc:183
+#: qcsrc/server/w_shotgun.qc:207
 #, c-format
 msgid "%2$s ^7slapped %1$s ^7around a bit with a large ^2shotgun"
-msgstr "%2$1 ^7hat %1$s ^7ein wenig mit einer großen Schrotflinte geschlagen"
+msgstr "%2$1s ^7hat %1$s ^7ein wenig mit einer großen Schrotflinte geschlagen"
 
-#: qcsrc/server/w_shotgun.qc:185
+#: qcsrc/server/w_shotgun.qc:209
 #, c-format
 msgid "%s was gunned by %s"
-msgstr "%s ist von %s abgeballert worden"
+msgstr "^1%s^1 wurde von %s^1 erschossen"
 
 #: qcsrc/server/w_sniperrifle.qc:2
 msgid "Sniper Rifle"
 msgstr "Sniper Rifle"
 
-#: qcsrc/server/w_sniperrifle.qc:321
+#: qcsrc/server/w_sniperrifle.qc:229
 #, c-format
 msgid "%s shot themself automatically"
 msgstr "%s hat sich vollautomatisch selbst erschossen"
 
-#: qcsrc/server/w_sniperrifle.qc:323
+#: qcsrc/server/w_sniperrifle.qc:231
 #, c-format
 msgid "%s sniped themself somehow"
 msgstr "%s hat so scharf geschossen, dass er sich selbst getroffen hat"
 
-#: qcsrc/server/w_sniperrifle.qc:330
+#: qcsrc/server/w_sniperrifle.qc:238
 #, c-format
 msgid "%s failed to hide from %s's bullet hail"
 msgstr "%s hat es nicht geschafft, sich vor %ss Kugelhagel zu verstecken"
 
-#: qcsrc/server/w_sniperrifle.qc:332
+#: qcsrc/server/w_sniperrifle.qc:240
 #, c-format
 msgid "%s died in %s's bullet hail"
 msgstr "%s ist in %ss Kugelhagel gefallen"
 
-#: qcsrc/server/w_sniperrifle.qc:339
+#: qcsrc/server/w_sniperrifle.qc:247
 #, c-format
 msgid "%s failed to hide from %s's rifle"
 msgstr "%s hat es nicht geschafft, sich vor %ss Gewehr zu verstecken"
 
-#: qcsrc/server/w_sniperrifle.qc:344
+#: qcsrc/server/w_sniperrifle.qc:252
 #, c-format
 msgid "%s got hit in the head by %s"
 msgstr "%s hat ein Loch im Kopf bekommen; schuld war %s"
 
-#: qcsrc/server/w_sniperrifle.qc:346 qcsrc/server/w_uzi.qc:291
+#: qcsrc/server/w_sniperrifle.qc:254 qcsrc/server/w_uzi.qc:321
 #, c-format
 msgid "%s was sniped by %s"
-msgstr "%s ist von Scharfschütze %s getroffen worden"
+msgstr "^1%s^1 wurde von %s^1 erledigt"
 
 #: qcsrc/server/w_tuba.qc:2
 #, c-format
 msgid "@!#%'n Tuba"
 msgstr "@!#%'n Tuba"
 
-#: qcsrc/server/w_tuba.qc:260
+#: qcsrc/server/w_tuba.qc:263
 #, c-format
 msgid "%s hurt his own ears with the @!#%%'n Tuba"
 msgstr ""
 "%s haben die Ohren geschmerzt von seinem eigenen Spiel auf der @!#%%'n Tuba"
 
-#: qcsrc/server/w_tuba.qc:264
+#: qcsrc/server/w_tuba.qc:267
 #, c-format
 msgid "%s died of %s's great playing on the @!#%%'n Tuba"
 msgstr ""
@@ -2755,13 +2763,7 @@ msgstr ""
 msgid "Machine Gun"
 msgstr "Machine Gun"
 
-#: qcsrc/server/w_uzi.qc:293
+#: qcsrc/server/w_uzi.qc:323
 #, c-format
 msgid "%s was riddled full of holes by %s"
 msgstr "%s ist von %s durchlöchert worden wie ein Schweizer Käse"
-
-#~ msgid "Waypoint settings:"
-#~ msgstr "Wegpunkt-Einstellungen:"
-
-#~ msgid "%d/%d"
-#~ msgstr "%d/%d"
index 55016607f22ff69404dad2be84444cedfde4f87e..13c74ff442efd28d4d995846bccfefcf124005a1 100644 (file)
@@ -7,13 +7,13 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Xonotic 0.1preview\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-03-24 19:40+0100\n"
-"PO-Revisión-Date: 2011-03-24 19:40+0100\n"
+"POT-Creation-Date: 2011-04-30 10:07+0200\n"
 "Last-Translator: Rodrigo Mouton Laudin <ratogenesis@gmail.com>\n"
 "Language: es\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"PO-Revisión-Date: 2011-03-24 19:40+0100\n"
 
 #: qcsrc/menu/gamecommand.qc:47
 #, c-format
@@ -50,8 +50,7 @@ msgstr "navegador no inicializado!"
 #, c-format
 msgid "NOTE: label text %s too wide for label, condensed by factor %f\n"
 msgstr ""
-"NOTA: texto %s demasiado largo para la etiqueta, condensada por factor "
-"%f\n"
+"NOTA: texto %s demasiado largo para la etiqueta, condensada por factor %f\n"
 
 #: qcsrc/menu/item/listbox.c:300
 #, c-format
@@ -68,8 +67,8 @@ msgid "custom"
 msgstr "Personalizado"
 
 #: qcsrc/menu/menu.qc:29
-#, c-format
-msgid "^4MQC Build information: %s\n"
+#, fuzzy, c-format
+msgid "^4MQC Build information: ^1%s\n"
 msgstr "^4MQC Información de compilación/build %s\n"
 
 #: qcsrc/menu/xonotic/campaign.c:284
@@ -126,9 +125,9 @@ msgid ""
 "player name to get started.  You can change these options later through the "
 "menu system."
 msgstr ""
-"Bienvenido a Xonotic, por favor seleccióne su Lenguaje preferido y luego ingrese "
-"su nombre de jugador. Estas opciones pueden ser modificadas luego utilizando el menú "
-"de configuración"
+"Bienvenido a Xonotic, por favor seleccióne su Lenguaje preferido y luego "
+"ingrese su nombre de jugador. Estas opciones pueden ser modificadas luego "
+"utilizando el menú de configuración"
 
 #: qcsrc/menu/xonotic/dialog_firstrun.c:38
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:35
@@ -331,7 +330,7 @@ msgstr "Radar:"
 #: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:32
 #: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:43
 #: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:82
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:151
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:154
 #: qcsrc/menu/xonotic/util.qc:608
 msgid "Alpha:"
 msgstr "Transparencia:"
@@ -1012,11 +1011,11 @@ msgstr "Pausar"
 msgid "Address:"
 msgstr "Direccion:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:65
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:67
 msgid "Info..."
 msgstr "Información..."
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:70
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:72
 #: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:317
 msgid "Join!"
 msgstr "Ingresar!"
@@ -1158,7 +1157,7 @@ msgid "Crosshair:"
 msgstr "Mira:"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:111
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:143
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:139
 msgid "Per weapon"
 msgstr "Por arma"
 
@@ -1174,36 +1173,45 @@ msgstr "Transparencia da mira:"
 msgid "Crosshair color:"
 msgstr "Color de mira:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:145
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:140
+msgid "By health"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:143
+#, fuzzy
+msgid "Custom"
+msgstr "Personalizado"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:148
 msgid "Enable center dot"
 msgstr "Activar punto central"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:148
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:151
 msgid "Size:"
 msgstr "Tamaño:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:155
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:158
 msgid "Hit test:"
 msgstr "Test de tiro:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:156
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:159
 #, fuzzy
 msgid "HTST^None"
 msgstr "Ninguno"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:157
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:160
 msgid "TrueAim"
 msgstr "Apuntado"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:158
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:161
 msgid "Enemies"
 msgstr "Enemigos"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:161
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:164
 msgid "Waypoints setup..."
 msgstr "Configurar puntos de camino..."
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:167
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:169
 msgid "Enter HUD editor"
 msgstr "Entrar en el editor de HUD"
 
@@ -1226,38 +1234,38 @@ msgstr "Modificado"
 msgid "MDL^All"
 msgstr "Todos"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:179
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:180
 msgid "Disable gore effects"
 msgstr "Desactivar efectos de sangre"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:181
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:182
 msgid "Gibs:"
 msgstr "Gibs:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:183
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:184
 #, fuzzy
 msgid "GIBS^None"
 msgstr "Ninguno"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:184
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:185
 msgid "GIBS^Few"
 msgstr "Pocas"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:185
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:186
 #, fuzzy
 msgid "GIBS^Many"
 msgstr "Muchas"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:186
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:187
 #, fuzzy
 msgid "GIBS^Lots"
 msgstr "Abundante"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:190
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:191
 msgid "Damage splash:"
 msgstr "Daño colateral:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:194
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:195
 #: qcsrc/menu/xonotic/dialog_settings_audio.c:178
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:194
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:30
@@ -2250,8 +2258,8 @@ msgstr "No vuelva a presionar este boton!"
 msgid ""
 "Huh? Can't play this (m is NULL). Refiltering so this won't happen again.\n"
 msgstr ""
-"Huh? no puedes jugarlo (m es nulo). Reflitrando para que esto no vuelva "
-"ocurrir.\n"
+"Huh? no puedes jugarlo (m es nulo). Reflitrando para que esto no vuelva "
+"ocurrir.\n"
 
 #: qcsrc/menu/xonotic/maplist.c:286
 #, c-format
@@ -2270,31 +2278,31 @@ msgstr ""
 msgid "<no model found>"
 msgstr "<ningún modelo encontrado>"
 
-#: qcsrc/menu/xonotic/serverlist.c:360
+#: qcsrc/menu/xonotic/serverlist.c:185
 msgid "Remove"
 msgstr "Remover"
 
-#: qcsrc/menu/xonotic/serverlist.c:362
+#: qcsrc/menu/xonotic/serverlist.c:187
 msgid "Bookmark"
 msgstr "Marcador"
 
-#: qcsrc/menu/xonotic/serverlist.c:518
+#: qcsrc/menu/xonotic/serverlist.c:523
 msgid "Ping"
 msgstr "Ping"
 
-#: qcsrc/menu/xonotic/serverlist.c:519
+#: qcsrc/menu/xonotic/serverlist.c:524
 msgid "Host name"
 msgstr "Nombre del Host"
 
-#: qcsrc/menu/xonotic/serverlist.c:520
+#: qcsrc/menu/xonotic/serverlist.c:525
 msgid "Map"
 msgstr "Mapa"
 
-#: qcsrc/menu/xonotic/serverlist.c:521
+#: qcsrc/menu/xonotic/serverlist.c:526
 msgid "Type"
 msgstr "Tipo"
 
-#: qcsrc/menu/xonotic/serverlist.c:522
+#: qcsrc/menu/xonotic/serverlist.c:527
 msgid "Players"
 msgstr "Jugadores"
 
@@ -2343,12 +2351,14 @@ msgstr "error recibiendo notificación de actualización: el estado es %d\n"
 
 #: qcsrc/menu/xonotic/util.qc:290
 msgid "error: received HTML instead of an update notification\n"
-msgstr "error: se ha recibido HTML en vez de una notificación de actualización\n"
+msgstr ""
+"error: se ha recibido HTML en vez de una notificación de actualización\n"
 
 #: qcsrc/menu/xonotic/util.qc:295
 msgid "error: received carriage returns from update notification server\n"
 msgstr ""
-"error: se recibieron retornos de carro desde el servidor que notifica las actualizaciones\n"
+"error: se recibieron retornos de carro desde el servidor que notifica las "
+"actualizaciones\n"
 
 #: qcsrc/menu/xonotic/util.qc:316
 #, c-format
@@ -2363,6 +2373,11 @@ msgstr ""
 msgid "Autogenerating mapinfo for newly added maps..."
 msgstr "Generación automática de información para mapas nuevos..."
 
+#: qcsrc/menu/xonotic/util.qc:367
+#, c-format
+msgid "^1%s TEST BUILD"
+msgstr ""
+
 #: qcsrc/menu/xonotic/util.qc:432
 #, c-format
 msgid "Update to %s now!"
@@ -2471,22 +2486,22 @@ msgstr "Activar panel"
 msgid "Crylink"
 msgstr "Crylink"
 
-#: qcsrc/server/w_crylink.qc:645
+#: qcsrc/server/w_crylink.qc:664
 #, c-format
 msgid "%s succeeded at self-destructing themself with the Crylink"
 msgstr "%s logró autodestruirse con el Crylink"
 
-#: qcsrc/server/w_crylink.qc:650
+#: qcsrc/server/w_crylink.qc:669
 #, c-format
 msgid "%s could not hide from %s's Crylink"
 msgstr "%s no se pudo esconder del Crylink de %s"
 
-#: qcsrc/server/w_crylink.qc:652
+#: qcsrc/server/w_crylink.qc:671
 #, c-format
 msgid "%s was too close to %s's Crylink"
 msgstr "%s estuvo demasiado cerca del Crylink de %s"
 
-#: qcsrc/server/w_crylink.qc:654
+#: qcsrc/server/w_crylink.qc:673
 #, c-format
 msgid "%s took a close look at %s's Crylink"
 msgstr "%s miró de cerca al Crylink de %s"
@@ -2495,37 +2510,37 @@ msgstr "%s miró de cerca al Crylink de %s"
 msgid "Electro"
 msgstr "Electro"
 
-#: qcsrc/server/w_electro.qc:503
+#: qcsrc/server/w_electro.qc:571
 #, c-format
 msgid "%s could not remember where they put plasma"
 msgstr "%s no pudo recordar donde dejó su plasma la última vez"
 
-#: qcsrc/server/w_electro.qc:505
+#: qcsrc/server/w_electro.qc:573
 #, c-format
 msgid "%s played with plasma"
 msgstr "%s jugó con plasma"
 
-#: qcsrc/server/w_electro.qc:512
+#: qcsrc/server/w_electro.qc:580
 #, c-format
 msgid "%s just noticed %s's blue ball"
 msgstr "%s acaba de percatarse de la bola azul de %s"
 
-#: qcsrc/server/w_electro.qc:514
+#: qcsrc/server/w_electro.qc:582
 #, c-format
 msgid "%s got in touch with %s's blue ball"
 msgstr "%s tuvo un encuentro cercano con la bola azul de %s"
 
-#: qcsrc/server/w_electro.qc:519
+#: qcsrc/server/w_electro.qc:587
 #, c-format
 msgid "%s felt the electrifying air of %s's combo"
 msgstr "%s sintió el aire electrificante del combo de %s"
 
-#: qcsrc/server/w_electro.qc:521
+#: qcsrc/server/w_electro.qc:589
 #, c-format
 msgid "%s got too close to %s's blue beam"
 msgstr "%s estuvo demasiado cerca del rayo azul de %s"
 
-#: qcsrc/server/w_electro.qc:523
+#: qcsrc/server/w_electro.qc:591
 #, c-format
 msgid "%s was blasted by %s's blue beam"
 msgstr "%s estuvo en estado critico por el rayo azul de %s"
@@ -2534,42 +2549,42 @@ msgstr "%s estuvo en estado critico por el rayo azul de %s"
 msgid "Fireball"
 msgstr "Fireball"
 
-#: qcsrc/server/w_fireball.qc:392
+#: qcsrc/server/w_fireball.qc:417
 #, c-format
 msgid "%s forgot about some firemine"
 msgstr "%s se olvidó de algunas minas de fuego"
 
-#: qcsrc/server/w_fireball.qc:394 qcsrc/server/w_hlac.qc:223
+#: qcsrc/server/w_fireball.qc:419 qcsrc/server/w_hlac.qc:240
 #, c-format
 msgid "%s should have used a smaller gun"
 msgstr "%s tendría que haber usado un arma más chica"
 
-#: qcsrc/server/w_fireball.qc:401
+#: qcsrc/server/w_fireball.qc:426
 #, c-format
 msgid "%s tried to catch %s's firemine"
 msgstr "%s intentó agarrar la mina de fuego de %s"
 
-#: qcsrc/server/w_fireball.qc:403
+#: qcsrc/server/w_fireball.qc:428
 #, c-format
 msgid "%s fatefully ignored %s's firemine"
 msgstr "%s fatalmente ignoró la mina de fuego de %s"
 
-#: qcsrc/server/w_fireball.qc:410
+#: qcsrc/server/w_fireball.qc:435
 #, c-format
 msgid "%s could not hide from %s's fireball"
 msgstr "%s no se puedo esconder del fireball de %s"
 
-#: qcsrc/server/w_fireball.qc:412
+#: qcsrc/server/w_fireball.qc:437
 #, c-format
 msgid "%s saw the pretty lights of %s's fireball"
 msgstr "%s vió las lindas luces del fireball de %s"
 
-#: qcsrc/server/w_fireball.qc:415
+#: qcsrc/server/w_fireball.qc:440
 #, c-format
 msgid "%s got too close to %s's fireball"
 msgstr "%s estuvo demasiado cerca del fireball de %s"
 
-#: qcsrc/server/w_fireball.qc:417
+#: qcsrc/server/w_fireball.qc:442
 #, c-format
 msgid "%s tasted %s's fireball"
 msgstr "%s probó el fireball de %s"
@@ -2578,27 +2593,27 @@ msgstr "%s probó el fireball de %s"
 msgid "Mortar"
 msgstr "Mortero"
 
-#: qcsrc/server/w_grenadelauncher.qc:357
+#: qcsrc/server/w_grenadelauncher.qc:378
 #, c-format
 msgid "%s tried out his own grenade"
 msgstr "%s probó su propia granada"
 
-#: qcsrc/server/w_grenadelauncher.qc:359
+#: qcsrc/server/w_grenadelauncher.qc:380
 #, c-format
 msgid "%s detonated"
 msgstr "%s ha detonado"
 
-#: qcsrc/server/w_grenadelauncher.qc:365
+#: qcsrc/server/w_grenadelauncher.qc:386
 #, c-format
 msgid "%s didn't see %s's grenade"
 msgstr "%s no vió la granada de %s"
 
-#: qcsrc/server/w_grenadelauncher.qc:367
+#: qcsrc/server/w_grenadelauncher.qc:388
 #, c-format
 msgid "%s almost dodged %s's grenade"
 msgstr "%s casi esquivó la granada de %s"
 
-#: qcsrc/server/w_grenadelauncher.qc:369
+#: qcsrc/server/w_grenadelauncher.qc:390
 #, c-format
 msgid "%s ate %s's grenade"
 msgstr "%s se comió la granada de %s"
@@ -2607,17 +2622,17 @@ msgstr "%s se comió la granada de %s"
 msgid "Hagar"
 msgstr "Hagar"
 
-#: qcsrc/server/w_hagar.qc:185 qcsrc/server/w_seeker.qc:523
+#: qcsrc/server/w_hagar.qc:209 qcsrc/server/w_seeker.qc:655
 #, c-format
 msgid "%s played with tiny rockets"
 msgstr "%s jugó con pequeños cohetes"
 
-#: qcsrc/server/w_hagar.qc:189
+#: qcsrc/server/w_hagar.qc:213
 #, c-format
 msgid "%s hoped %s's missiles wouldn't bounce"
 msgstr "%s esperó que no le reboten misiles de %s"
 
-#: qcsrc/server/w_hagar.qc:191
+#: qcsrc/server/w_hagar.qc:215 qcsrc/server/w_seeker.qc:661
 #, c-format
 msgid "%s was pummeled by %s"
 msgstr "%s fue molido por %s"
@@ -2626,7 +2641,7 @@ msgstr "%s fue molido por %s"
 msgid "Heavy Laser Assault Cannon"
 msgstr "Heavy Laser Assault Cannon"
 
-#: qcsrc/server/w_hlac.qc:225
+#: qcsrc/server/w_hlac.qc:242
 #, c-format
 msgid "%s was cut down by %s"
 msgstr "%s fue rebanado por %s"
@@ -2635,14 +2650,14 @@ msgstr "%s fue rebanado por %s"
 msgid "Grappling Hook"
 msgstr "Grappling Hook"
 
-#: qcsrc/server/w_hook.qc:267 qcsrc/server/w_minstanex.qc:257
-#: qcsrc/server/w_nex.qc:224 qcsrc/server/w_porto.qc:293
-#: qcsrc/server/w_shotgun.qc:179 qcsrc/server/w_uzi.qc:287
+#: qcsrc/server/w_hook.qc:266 qcsrc/server/w_minstanex.qc:290
+#: qcsrc/server/w_nex.qc:267 qcsrc/server/w_porto.qc:296
+#: qcsrc/server/w_shotgun.qc:203 qcsrc/server/w_uzi.qc:317
 #, c-format
 msgid "%s did the impossible"
 msgstr "%s hizo lo imposible"
 
-#: qcsrc/server/w_hook.qc:269
+#: qcsrc/server/w_hook.qc:268
 #, c-format
 msgid "%s has run into %s's gravity bomb"
 msgstr "%s entró a la bomba de gravedad de %s"
@@ -2651,17 +2666,17 @@ msgstr "%s entró a la bomba de gravedad de %s"
 msgid "Laser"
 msgstr "Laser"
 
-#: qcsrc/server/w_laser.qc:285
+#: qcsrc/server/w_laser.qc:305
 #, c-format
 msgid "%s lasered themself to hell"
 msgstr "%s se fué al infierno montado en su laser"
 
-#: qcsrc/server/w_laser.qc:289
+#: qcsrc/server/w_laser.qc:309
 #, c-format
 msgid "%s was cut in half by %s's gauntlet"
 msgstr "%s fue cortado a la mitad por el gauntlet de %s"
 
-#: qcsrc/server/w_laser.qc:291
+#: qcsrc/server/w_laser.qc:311
 #, c-format
 msgid "%s was lasered to death by %s"
 msgstr "%s fue muerto por el laser de %s"
@@ -2670,22 +2685,22 @@ msgstr "%s fue muerto por el laser de %s"
 msgid "Mine Layer"
 msgstr "Mine Layer"
 
-#: qcsrc/server/w_minelayer.qc:438 qcsrc/server/w_rocketlauncher.qc:480
+#: qcsrc/server/w_minelayer.qc:495 qcsrc/server/w_rocketlauncher.qc:500
 #, c-format
 msgid "%s exploded"
 msgstr "%s explotó"
 
-#: qcsrc/server/w_minelayer.qc:442
+#: qcsrc/server/w_minelayer.qc:499
 #, c-format
 msgid "%s got too close to %s's mine"
 msgstr "%s estuvo cerca de la mina de %s"
 
-#: qcsrc/server/w_minelayer.qc:444
+#: qcsrc/server/w_minelayer.qc:501
 #, c-format
 msgid "%s almost dodged %s's mine"
 msgstr "%s casi esquivo la mina de %s"
 
-#: qcsrc/server/w_minelayer.qc:446
+#: qcsrc/server/w_minelayer.qc:503
 #, c-format
 msgid "%s stepped on %s's mine"
 msgstr "%s caminó encima de la mina de %s"
@@ -2694,7 +2709,7 @@ msgstr "%s caminó encima de la mina de %s"
 msgid "MinstaNex"
 msgstr "MinstaNex"
 
-#: qcsrc/server/w_minstanex.qc:259 qcsrc/server/w_nex.qc:226
+#: qcsrc/server/w_minstanex.qc:292 qcsrc/server/w_nex.qc:269
 #, c-format
 msgid "%s has been vaporized by %s"
 msgstr "%s ha sido vaporizado por %s"
@@ -2707,7 +2722,7 @@ msgstr "Nex"
 msgid "Port-O-Launch"
 msgstr "Port-O-Launch"
 
-#: qcsrc/server/w_porto.qc:295
+#: qcsrc/server/w_porto.qc:298
 #, c-format
 msgid "%s felt %s doing the impossible to him"
 msgstr "%s sintió a %s hacer lo imposible por él/ella"
@@ -2716,17 +2731,17 @@ msgstr "%s sintió a %s hacer lo imposible por él/ella"
 msgid "Rocket Launcher"
 msgstr "Rocket Launcher"
 
-#: qcsrc/server/w_rocketlauncher.qc:484
+#: qcsrc/server/w_rocketlauncher.qc:504
 #, c-format
 msgid "%s got too close to %s's rocket"
 msgstr "%s estuvo demasiado cerca del cohete de %s"
 
-#: qcsrc/server/w_rocketlauncher.qc:486
+#: qcsrc/server/w_rocketlauncher.qc:506
 #, c-format
 msgid "%s almost dodged %s's rocket"
 msgstr "%s casi esquivó el cohete de %s"
 
-#: qcsrc/server/w_rocketlauncher.qc:488
+#: qcsrc/server/w_rocketlauncher.qc:508
 #, c-format
 msgid "%s ate %s's rocket"
 msgstr "%s se comió el misil de %s"
@@ -2735,12 +2750,7 @@ msgstr "%s se comió el misil de %s"
 msgid "T.A.G. Seeker"
 msgstr "T.A.G. Seeker"
 
-#: qcsrc/server/w_seeker.qc:527
-#, c-format
-msgid "%s ran into %s's flac"
-msgstr "%s se cruzó con el flac de %s"
-
-#: qcsrc/server/w_seeker.qc:529
+#: qcsrc/server/w_seeker.qc:659
 #, c-format
 msgid "%s was tagged by %s"
 msgstr "%s fue marcado por %s"
@@ -2749,12 +2759,12 @@ msgstr "%s fue marcado por %s"
 msgid "Shotgun"
 msgstr "Escopeta"
 
-#: qcsrc/server/w_shotgun.qc:183
+#: qcsrc/server/w_shotgun.qc:207
 #, c-format
 msgid "%2$s ^7slapped %1$s ^7around a bit with a large ^2shotgun"
 msgstr "%2$s ^7abofeteó %1$s ^7con una gran ^2shotgun"
 
-#: qcsrc/server/w_shotgun.qc:185
+#: qcsrc/server/w_shotgun.qc:209
 #, c-format
 msgid "%s was gunned by %s"
 msgstr "%s fue tiroteado por %s"
@@ -2763,37 +2773,37 @@ msgstr "%s fue tiroteado por %s"
 msgid "Sniper Rifle"
 msgstr "Sniper Rifle"
 
-#: qcsrc/server/w_sniperrifle.qc:321
+#: qcsrc/server/w_sniperrifle.qc:229
 #, c-format
 msgid "%s shot themself automatically"
 msgstr "%s se disparó a si mismo"
 
-#: qcsrc/server/w_sniperrifle.qc:323
+#: qcsrc/server/w_sniperrifle.qc:231
 #, c-format
 msgid "%s sniped themself somehow"
 msgstr "%s se disparó a si mismo"
 
-#: qcsrc/server/w_sniperrifle.qc:330
+#: qcsrc/server/w_sniperrifle.qc:238
 #, c-format
 msgid "%s failed to hide from %s's bullet hail"
 msgstr "%s no logró esconderse del granizo de balas de %s"
 
-#: qcsrc/server/w_sniperrifle.qc:332
+#: qcsrc/server/w_sniperrifle.qc:240
 #, c-format
 msgid "%s died in %s's bullet hail"
 msgstr "%s murió en el granizo de balas de %s"
 
-#: qcsrc/server/w_sniperrifle.qc:339
+#: qcsrc/server/w_sniperrifle.qc:247
 #, c-format
 msgid "%s failed to hide from %s's rifle"
 msgstr "%s no logró esconderse del rifle de %s"
 
-#: qcsrc/server/w_sniperrifle.qc:344
+#: qcsrc/server/w_sniperrifle.qc:252
 #, c-format
 msgid "%s got hit in the head by %s"
 msgstr "%s fué disparado en la cabeza por %s"
 
-#: qcsrc/server/w_sniperrifle.qc:346 qcsrc/server/w_uzi.qc:291
+#: qcsrc/server/w_sniperrifle.qc:254 qcsrc/server/w_uzi.qc:321
 #, c-format
 msgid "%s was sniped by %s"
 msgstr "%s fué disparado con un rifle por %s"
@@ -2803,12 +2813,12 @@ msgstr "%s fué disparado con un rifle por %s"
 msgid "@!#%'n Tuba"
 msgstr "@!#%'n Tuba"
 
-#: qcsrc/server/w_tuba.qc:260
+#: qcsrc/server/w_tuba.qc:263
 #, c-format
 msgid "%s hurt his own ears with the @!#%%'n Tuba"
 msgstr "%s se lastimó sus propios oídos con la Tuba de @!#%%"
 
-#: qcsrc/server/w_tuba.qc:264
+#: qcsrc/server/w_tuba.qc:267
 #, c-format
 msgid "%s died of %s's great playing on the @!#%%'n Tuba"
 msgstr "%s murió por la gran interpretación de Tuba de @!#%%"
@@ -2817,11 +2827,14 @@ msgstr "%s murió por la gran interpretación de Tuba de @!#%%"
 msgid "Machine Gun"
 msgstr "Machine Gun"
 
-#: qcsrc/server/w_uzi.qc:293
+#: qcsrc/server/w_uzi.qc:323
 #, c-format
 msgid "%s was riddled full of holes by %s"
 msgstr "%s fue totalmente acribillado por %s"
 
+#~ msgid "%s ran into %s's flac"
+#~ msgstr "%s se cruzó con el flac de %s"
+
 #~ msgid "Waypoint settings:"
 #~ msgstr "configuración de puntos de camino:"
 
index 04f96094ffcf008aa3f164e0282de827f5253632..dfa0ceb0e1423cc0ace6e761b356a9a7cdc44720 100644 (file)
@@ -8,42 +8,15 @@ msgid ""
 msgstr ""
 "Project-Id-Version: 0.1preview\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-18 17:06+0100\n"
+"POT-Creation-Date: 2011-04-30 10:07+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: Henry 'Exitium' Sanmark <henry.sanmark@gmail.com>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: qcsrc/menu/menu.qc:29
-#, c-format
-msgid "^4MQC Build information: %s\n"
-msgstr "^4MQC Version tiedot: %s\n"
-
-#: qcsrc/menu/item/slider.c:64
-#, c-format
-msgid "%d (%s)"
-msgstr "%d (%s)"
-
-#: qcsrc/menu/item/label.c:63
-#, c-format
-msgid "NOTE: label text %s too wide for label, condensed by factor %f\n"
-msgstr "HUOM: tekstikentän teksti %s on liian pitkä, joten se lyhennetään %f\n"
-
-#: qcsrc/menu/item/textslider.c:29 qcsrc/menu/item/textslider.c:31
-msgid "custom"
-msgstr "omavalintainen"
-
-#: qcsrc/menu/item/gecko.c:49
-msgid "Browser not initialized!"
-msgstr "Selainta ei ole alustettu!"
-
-#: qcsrc/menu/item/listbox.c:300
-#, c-format
-msgid "Item %d"
-msgstr "Esine %d"
-
 #: qcsrc/menu/gamecommand.qc:47
 #, c-format
 msgid "error: status is %d\n"
@@ -67,263 +40,204 @@ msgstr "virhe luodessa curl handlea\n"
 
 #: qcsrc/menu/gamecommand.qc:239
 msgid "Invalid command. For a list of supported commands, try menu_cmd help.\n"
-msgstr "Komentoa ei löydy. Saadaksesi listan kaikista tuetuista komennoista, kokeile menu_cmd help.\n"
+msgstr ""
+"Komentoa ei löydy. Saadaksesi listan kaikista tuetuista komennoista, kokeile "
+"menu_cmd help.\n"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:4
-#: qcsrc/menu/xonotic/dialog_settings.c:19
-msgid "Video"
-msgstr "Video"
+#: qcsrc/menu/item/gecko.c:49
+msgid "Browser not initialized!"
+msgstr "Selainta ei ole alustettu!"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:26
-msgid "Resolution:"
-msgstr "Näytön tarkkuus:"
+#: qcsrc/menu/item/label.c:63
+#, c-format
+msgid "NOTE: label text %s too wide for label, condensed by factor %f\n"
+msgstr "HUOM: tekstikentän teksti %s on liian pitkä, joten se lyhennetään %f\n"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:29
-msgid "Font/UI size:"
-msgstr "Kirjainten/käyttöliittymän koko:"
+#: qcsrc/menu/item/listbox.c:300
+#, c-format
+msgid "Item %d"
+msgstr "Esine %d"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:31
-msgid "SZ^Unreadable"
-msgstr "SZ^Miltein näkymätön"
+#: qcsrc/menu/item/slider.c:64
+#, c-format
+msgid "%d (%s)"
+msgstr "%d (%s)"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:32
-msgid "SZ^Tiny"
-msgstr "SZ^Pikkuruinen"
+#: qcsrc/menu/item/textslider.c:29 qcsrc/menu/item/textslider.c:31
+msgid "custom"
+msgstr "omavalintainen"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:33
-msgid "SZ^Little"
-msgstr "SZ^Hyvin pieni"
+#: qcsrc/menu/menu.qc:29
+#, fuzzy, c-format
+msgid "^4MQC Build information: ^1%s\n"
+msgstr "^4MQC Version tiedot: %s\n"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:34
-msgid "SZ^Small"
-msgstr "SZ^Pieni"
+#: qcsrc/menu/xonotic/campaign.c:284
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:66
+msgid "???"
+msgstr "???"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:35
-msgid "SZ^Medium"
-msgstr "SZ^Keskikokoinen"
+#: qcsrc/menu/xonotic/campaign.c:285
+#, c-format
+msgid "Level %d: %s"
+msgstr "Taso %d: %s"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:36
-msgid "SZ^Large"
-msgstr "SZ^Suuri"
+#: qcsrc/menu/xonotic/cvarlist.c:85
+msgid "will be saved to config.cfg"
+msgstr "tallennetaan config.cfg-tiedostoon"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:37
-msgid "SZ^Huge"
-msgstr "SZ^Valtava"
+#: qcsrc/menu/xonotic/cvarlist.c:87
+msgid "will not be saved"
+msgstr "ei tallenneta"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:38
-msgid "SZ^Gigantic"
-msgstr "SZ^Jättiläismäinen"
+#: qcsrc/menu/xonotic/cvarlist.c:89
+msgid "private"
+msgstr "yksityinen"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:39
-msgid "SZ^Colossal"
-msgstr "SZ^Massiivinen"
+#: qcsrc/menu/xonotic/cvarlist.c:91
+msgid "engine setting"
+msgstr "pelimoottorin asetus"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:42
-msgid "Color depth:"
-msgstr "Värisävy:"
+#: qcsrc/menu/xonotic/cvarlist.c:93
+msgid "read only"
+msgstr "vain luku"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:45
-msgid "Full screen"
-msgstr "Kokoruutu"
+#: qcsrc/menu/xonotic/dialog_credits.c:5
+msgid "Credits"
+msgstr "Tekijät"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:46
-msgid "Vertical Synchronization"
-msgstr "VSYNC"
+#: qcsrc/menu/xonotic/dialog_credits.c:21
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:82
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:269
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:41
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:55
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:61
+#: qcsrc/menu/xonotic/dialog_singleplayer_winner.c:21
+msgid "OK"
+msgstr "OK"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:49
-msgid "Use OpenGL 2.0 shaders (GLSL)"
-msgstr "Käytä OpenGL 2.0 shaders-varjostuksia (GLSL)"
+#: qcsrc/menu/xonotic/dialog_firstrun.c:4
+msgid "Welcome"
+msgstr "Tervetuloa"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:52
-msgid "Use Occlusion Queries"
-msgstr "Käytä Occlusion Queryä"
+#: qcsrc/menu/xonotic/dialog_firstrun.c:33
+msgid ""
+"Welcome to Xonotic, please select your language preference and enter your "
+"player name to get started.  You can change these options later through the "
+"menu system."
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:55
-msgid "Vertex Buffer Objects (VBOs)"
-msgstr "Vertex Buffer Object (VBO)"
+#: qcsrc/menu/xonotic/dialog_firstrun.c:38
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:35
+msgid "Text language:"
+msgstr "Tekstin kieli:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:58
-msgid "VBO^Off"
-msgstr "VBO^Pois"
+#: qcsrc/menu/xonotic/dialog_firstrun.c:47
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:40
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:39
+msgid "Name:"
+msgstr "Nimi:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:59
-msgid "Vertices, some Tris (compatible)"
-msgstr "Verteksit, vähän kolmioita (yhteensopivin)"
+#: qcsrc/menu/xonotic/dialog_firstrun.c:69
+msgid "Save settings"
+msgstr "Tallenna asetukset"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:62
-msgid "Vertices"
-msgstr "Verteksit"
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:4
+msgid "Ammo Panel"
+msgstr "Ammuspaneeli"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:63
-msgid "Vertices and Triangles"
-msgstr "Verteksit ja kolmiot"
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:22
+msgid "Ammunition display:"
+msgstr "Ammuksien näyttö:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:65
-msgid "Depth first:"
-msgstr "Syvyys ensin (Depth First):"
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:25
+msgid "Show only current ammo type"
+msgstr "Näytä vain nykyinen ammustyyppi"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:67
-msgid "DF^Disabled"
-msgstr "DF^Pois"
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:29
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:28
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:40
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:28
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:40
+msgid "Left"
+msgstr "Vasen"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:68
-msgid "DF^World"
-msgstr "DF^Maailma"
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:30
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:30
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:41
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:30
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:41
+msgid "Right"
+msgstr "Oikea"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:69
-msgid "DF^All"
-msgstr "DF^Kaikki"
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:4
+msgid "Chat Panel"
+msgstr "Keskustelupaneeli"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:73
-msgid "Disable multithreaded OpenGL"
-msgstr "Ota monisäkeinen OpenGL pois päältä"
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:22
+msgid "Chat entries:"
+msgstr "Keskustelun sisältö:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:75
-msgid "Wait for GPU to finish each frame"
-msgstr "Anna näytönohjaimen viimeistellä jokainen ruutu"
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:25
+msgid "Chat size:"
+msgstr "Keskustelun koko"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:78
-msgid "Brightness:"
-msgstr "Kirkkaus:"
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:29
+msgid "Chat lifetime:"
+msgstr "Keskustelun kesto:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:81
-msgid "Contrast:"
-msgstr "Kontrasti:"
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:33
+msgid "Chat beep sound"
+msgstr "Keskustelun piippausääni"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:84
-msgid "Gamma:"
-msgstr "Gamma:"
+#: qcsrc/menu/xonotic/dialog_hudpanel_engineinfo.c:4
+msgid "Engine Info Panel"
+msgstr "Pelimoottorin tietopaneeli"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:87
-msgid "Contrast boost:"
-msgstr "Kontrastin lisäys:"
+#: qcsrc/menu/xonotic/dialog_hudpanel_engineinfo.c:22
+msgid "Engine info:"
+msgstr "Pelimoottorin tiedot:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:90
-msgid "Saturation:"
-msgstr "Kylläisyys:"
+#: qcsrc/menu/xonotic/dialog_hudpanel_engineinfo.c:25
+msgid "Use an averaging algorithm for fps"
+msgstr "Käytä tasoittavaa algoritmia ruudunpäivitykselle (FPS)"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:95
-msgid "Use GLSL to handle color control"
-msgstr "Käytä GLSL:ää värien hallinnassa"
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:4
+msgid "Health/Armor Panel"
+msgstr "Elämä/panssaripaneeli"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:99
-msgid "LIT^Ambient:"
-msgstr "LIT^Ympäristö:"
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:22
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:22
+msgid "Enable status bar"
+msgstr "Ota tilapalkki käyttöön"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:102
-msgid "Intensity:"
-msgstr "Intensiivisyys:"
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:24
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:24
+msgid "Status bar alignment:"
+msgstr "Tilapalkin kohdistus:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:106
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:30
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:41
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:194
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:193
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:178
-msgid "Apply immediately"
-msgstr "Ota heti käyttöön"
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:32
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:42
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:32
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:42
+msgid "Inward"
+msgstr "Sisäänpäin"
 
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:4
-msgid "Panel HUD Setup"
-msgstr "Paneelin näkymän asetukset"
-
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:21
-msgid "Panel background defaults:"
-msgstr "Paneelin taustan perusasetukset:"
-
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:25
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:37
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:52
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:91 qcsrc/menu/xonotic/util.qc:602
-#: qcsrc/menu/xonotic/util.qc:618 qcsrc/menu/xonotic/util.qc:635
-msgid "Disable"
-msgstr "Pois päältä"
-
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:30
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:77 qcsrc/menu/xonotic/util.qc:607
-msgid "Color:"
-msgstr "Väri:"
-
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:35 qcsrc/menu/xonotic/util.qc:615
-msgid "Border size:"
-msgstr "Reunan koko:"
-
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:43
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:82
-#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:32
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:151
-#: qcsrc/menu/xonotic/util.qc:624
-msgid "Alpha:"
-msgstr "Alpha:"
-
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:50
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:89
-msgid "Team color:"
-msgstr "Joukkueen väri:"
-
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:58 qcsrc/menu/xonotic/util.qc:641
-msgid "Test team color in configure mode"
-msgstr "Kokeile joukkueen väriä muokkaustilassa"
-
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:61 qcsrc/menu/xonotic/util.qc:644
-msgid "Padding:"
-msgstr "Pehmustus:"
-
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:68
-msgid "HUD Dock:"
-msgstr "Näkymän liitäntä:"
-
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:70
-msgid "DOCK^Disabled"
-msgstr "DOCK^Pois"
-
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:71
-msgid "DOCK^Small"
-msgstr "DOCK^Pieni"
-
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:72
-msgid "DOCK^Medium"
-msgstr "DOCK^Keskikokoinen"
-
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:73
-msgid "DOCK^Large"
-msgstr "DOCK^Suuri"
-
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:96
-msgid "Grid settings:"
-msgstr "Ruudukon asetukset:"
-
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:99
-msgid "Snap panels to grid"
-msgstr "Katkaise paneelit ruudukkoon"
-
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:102
-msgid "Grid size:"
-msgstr "Ruudukon koko:"
-
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:103
-msgid "X:"
-msgstr "X:"
-
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:109
-msgid "Y:"
-msgstr "Y:"
-
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:117
-msgid "Exit setup"
-msgstr "Poistu asetuksista"
-
-#: qcsrc/menu/xonotic/dialog_hudpanel_vote.c:4
-msgid "Vote Panel"
-msgstr "Äänestyspaneeli"
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:34
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:43
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:34
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:43
+msgid "Outward"
+msgstr "Ulospäin"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_vote.c:22
-msgid "Alpha after voting:"
-msgstr "Alpha äänestyksen jälkeen"
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:37
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:37
+msgid "Icon alignment:"
+msgstr "Kuvakkeen kohdistus:"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_modicons.c:4
-msgid "Mod Icons Panel"
-msgstr "Modi-ikonit paneeli"
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:45
+msgid "Flip health and armor positions"
+msgstr "Vaihda elämän ja panssarin paikkaa"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_infomessages.c:4
 msgid "Info Messages Panel"
@@ -337,88 +251,41 @@ msgstr "Tiedoitukset"
 msgid "Flip align"
 msgstr "Tasoita"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:5
-msgid "Waypoints"
-msgstr "Välimatkat"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:23
-msgid "Waypoint settings:"
-msgstr "Välimatkojen asetukset:"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:26
-msgid "Show base waypoints"
-msgstr "Näytä päämäärien välimatkat"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:29
-msgid "Waypoint scale:"
-msgstr "Välimatkan skaala:"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:34
-msgid "Waypoint alpha:"
-msgstr "Välimatkojen alpha:"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:39
-msgid "Show names:"
-msgstr "Näytä nimet:"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:41
-#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:26
-msgid "Never"
-msgstr "Ei ikinä"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:42
-msgid "Teammates"
-msgstr "Oma joukkue"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:43
-msgid "All players"
-msgstr "Kaikki pelaajat"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:46
-#: qcsrc/menu/xonotic/dialog_credits.c:21
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:59
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:269
-#: qcsrc/menu/xonotic/dialog_singleplayer_winner.c:21
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:82
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:55
-msgid "OK"
-msgstr "OK"
+#: qcsrc/menu/xonotic/dialog_hudpanel_modicons.c:4
+msgid "Mod Icons Panel"
+msgstr "Modi-ikonit paneeli"
 
-#: qcsrc/menu/xonotic/dialog_credits.c:5
-msgid "Credits"
-msgstr "Tekijät"
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:4
+msgid "Notification Panel"
+msgstr "Ilmoituspaneeli"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:5
-msgid "Advanced settings"
-msgstr "Edistyneet asetukset"
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:22
+msgid "Notifications:"
+msgstr "Ilmoitukset:"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:23
-msgid "Cvar filter:"
-msgstr "Cvar suodatin"
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:25
+msgid "Also print notifications to the console"
+msgstr "Laita ilmoitukset myös komentoriville"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:24
-#: qcsrc/menu/xonotic/dialog_settings_input.c:41
-#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:29
-#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:33
-msgid "Clear"
-msgstr "Tyhjennä"
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:28
+msgid "Flip notify order"
+msgstr "Käännä ilmoitusjärjestys"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:34
-msgid "Setting:"
-msgstr "Asetus:"
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:31
+msgid "Entry lifetime:"
+msgstr "Sisääntulon kesto"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:38
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:248
-msgid "Type:"
-msgstr "Tyyppi:"
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:35
+msgid "Entry fadetime:"
+msgstr "Sisääntulon häivennyksen kesto"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:42
-msgid "Value:"
-msgstr "Arvo:"
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:4
+msgid "Powerups Panel"
+msgstr "Tehonlisäyspaneeli"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:54
-msgid "Description:"
-msgstr "Kuvaus:"
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:45
+msgid "Flip strength and shield positions"
+msgstr "Käännä voimakkuuden ja suojauksen sijainnit"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:4
 msgid "Pressed Keys Panel"
@@ -442,142 +309,101 @@ msgstr "Paneeli aina päällä"
 msgid "Forced aspect:"
 msgstr "Pakotettu näkymä:"
 
-#: qcsrc/menu/xonotic/dialog_teamselect.c:5
-msgid "Team Selection"
-msgstr "Joukkueen valinta"
+#: qcsrc/menu/xonotic/dialog_hudpanel_racetimer.c:4
+msgid "Race Timer Panel"
+msgstr "Kilpajuoksun ajanoton paneeli"
 
-#: qcsrc/menu/xonotic/dialog_teamselect.c:41
-msgid "join 'best' team (auto-select)"
-msgstr "liity 'parhaimpaan' joukkueeseen"
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:4
+msgid "Radar Panel"
+msgstr "Tutkapaneeli"
 
-#: qcsrc/menu/xonotic/dialog_teamselect.c:45
-msgid "red"
-msgstr "punainen"
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:22
+msgid "Panel enabled in teamgames"
+msgstr "Paneeli käytössä joukkuepeleissä"
 
-#: qcsrc/menu/xonotic/dialog_teamselect.c:46
-msgid "blue"
-msgstr "sininen"
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:29
+msgid "Radar:"
+msgstr "Tutka:"
 
-#: qcsrc/menu/xonotic/dialog_teamselect.c:47
-msgid "yellow"
-msgstr "keltainen"
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:32
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:43
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:82
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:154
+#: qcsrc/menu/xonotic/util.qc:608
+msgid "Alpha:"
+msgstr "Alpha:"
 
-#: qcsrc/menu/xonotic/dialog_teamselect.c:48
-msgid "pink"
-msgstr "pinkki"
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:36
+msgid "Rotation:"
+msgstr "Pyöriminen:"
 
-#: qcsrc/menu/xonotic/dialog_teamselect.c:51
-msgid "spectate"
-msgstr "seuraa sivusta"
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:38
+msgid "Forward"
+msgstr "Eteenpäin"
 
-#: qcsrc/menu/xonotic/slider_resolution.c:65
-#, c-format
-msgid "%dx%d"
-msgstr "%dx%d"
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:39
+msgid "West"
+msgstr "Länsi"
 
-#: qcsrc/menu/xonotic/dialog_settings.c:4
-msgid "Settings"
-msgstr "Asetukset"
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:40
+msgid "South"
+msgstr "Etelä"
 
-#: qcsrc/menu/xonotic/dialog_settings.c:18
-#: qcsrc/menu/xonotic/dialog_settings_input.c:4
-msgid "Input"
-msgstr "Ohjaus"
-
-#: qcsrc/menu/xonotic/dialog_settings.c:20
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:4
-msgid "Effects"
-msgstr "Effektit"
-
-#: qcsrc/menu/xonotic/dialog_settings.c:21
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:4
-msgid "Audio"
-msgstr "Ääni"
-
-#: qcsrc/menu/xonotic/dialog_settings.c:22
-#: qcsrc/menu/xonotic/dialog_settings_network.c:4
-msgid "Network"
-msgstr "Verkko"
-
-#: qcsrc/menu/xonotic/dialog_settings.c:23
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:4
-msgid "Misc"
-msgstr "Sekalainen"
-
-#: qcsrc/menu/xonotic/dialog_firstrun.c:4
-msgid "Welcome"
-msgstr "Tervetuloa"
-
-#: qcsrc/menu/xonotic/dialog_firstrun.c:32
-msgid "Please answer a few initial questions to enhance the game experience."
-msgstr "Ole hyvä ja vastaa muutamaan alustavaan kysymykseen parantaaksesi pelikokemustasi."
-
-#: qcsrc/menu/xonotic/dialog_firstrun.c:36
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:35
-msgid "Text language:"
-msgstr "Tekstin kieli:"
-
-#: qcsrc/menu/xonotic/dialog_firstrun.c:45
-#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:39
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:40
-msgid "Name:"
-msgstr "Nimi:"
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:41
+msgid "East"
+msgstr "Itä"
 
-#: qcsrc/menu/xonotic/dialog_firstrun.c:67
-msgid "Save settings"
-msgstr "Tallenna asetukset"
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:42
+msgid "North"
+msgstr "Pohjoinen"
 
-#: qcsrc/menu/xonotic/campaign.c:284
-#: qcsrc/menu/xonotic/dialog_singleplayer.c:66
-msgid "???"
-msgstr "???"
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:46
+msgid "Scale:"
+msgstr "Skaala:"
 
-#: qcsrc/menu/xonotic/campaign.c:285
-#, c-format
-msgid "Level %d: %s"
-msgstr "Taso %d: %s"
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:50
+msgid "Zoom mode:"
+msgstr "Tarkennus:"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:26
-msgid "Key bindings:"
-msgstr "Näppäimet:"
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:52
+msgid "Zoomed in"
+msgstr "Tarkennettu kohteeseen"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:31
-msgid "Change key..."
-msgstr "Vaihda näppäin..."
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:53
+msgid "Zoomed out"
+msgstr "Tarkennuksen poisto"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:35
-msgid "Edit..."
-msgstr "Muokkaa..."
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:54
+msgid "Always zoomed"
+msgstr "Aina tarkennettuna"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:46
-msgid "Sensitivity:"
-msgstr "Herkkyys:"
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:55
+msgid "Never zoomed"
+msgstr "Tarkennus ei ikinä päällä"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:49
-msgid "UI mouse speed:"
-msgstr "Käyttöliittymän hiiren nopeus:"
+#: qcsrc/menu/xonotic/dialog_hudpanel_score.c:4
+msgid "Score Panel"
+msgstr "Tulospaneeli"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:52
-msgid "Mouse filter"
-msgstr "Hiiren suodatin"
+#: qcsrc/menu/xonotic/dialog_hudpanel_timer.c:4
+msgid "Timer Panel"
+msgstr "Ajastinpaneeli"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:54
-msgid "Invert mouse"
-msgstr "Käännä hiiren suunta"
+#: qcsrc/menu/xonotic/dialog_hudpanel_timer.c:22
+msgid "Timer:"
+msgstr "Ajastin:"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:57
-#: qcsrc/menu/xonotic/dialog_settings_input.c:59
-msgid "Use joystick input"
-msgstr "Käytä peliohjainta"
+#: qcsrc/menu/xonotic/dialog_hudpanel_timer.c:25
+msgid "Show elapsed time"
+msgstr "Näytä kulutettu aika"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:62
-#: qcsrc/menu/xonotic/dialog_settings_input.c:64
-msgid "Turn off OS mouse acceleration"
-msgstr "Laita käyttöjärjestelmän hiiren kiihtyvyys pois päältä"
+#: qcsrc/menu/xonotic/dialog_hudpanel_vote.c:4
+msgid "Vote Panel"
+msgstr "Äänestyspaneeli"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:66
-msgid "\"enter console\" also closes"
-msgstr "\"avaa komentorivi\" myös sulkee komentorivin"
+#: qcsrc/menu/xonotic/dialog_hudpanel_vote.c:22
+msgid "Alpha after voting:"
+msgstr "Alpha äänestyksen jälkeen"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:4
 msgid "Weapons Panel"
@@ -587,6 +413,11 @@ msgstr "Asepaneeli"
 msgid "Fade out after:"
 msgstr "Himmennä jälkikäteen:"
 
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:26
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:36
+msgid "Never"
+msgstr "Ei ikinä"
+
 #: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:28
 #, c-format
 msgid "%ds"
@@ -644,314 +475,363 @@ msgstr "Ammuskotelon väri"
 msgid "Ammo bar alpha:"
 msgstr "Ammuskotelon alpha"
 
-#: qcsrc/menu/xonotic/mainwindow.c:35 qcsrc/menu/xonotic/mainwindow.c:38
-msgid "Do not press this button again!"
-msgstr "Älä paina enää näppäintä!"
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:4
+msgid "Panel HUD Setup"
+msgstr "Paneelin näkymän asetukset"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_engineinfo.c:4
-msgid "Engine Info Panel"
-msgstr "Pelimoottorin tietopaneeli"
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:21
+msgid "Panel background defaults:"
+msgstr "Paneelin taustan perusasetukset:"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_engineinfo.c:22
-msgid "Engine info:"
-msgstr "Pelimoottorin tiedot:"
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:25
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:37
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:52
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:91 qcsrc/menu/xonotic/util.qc:586
+#: qcsrc/menu/xonotic/util.qc:602 qcsrc/menu/xonotic/util.qc:619
+msgid "Disable"
+msgstr "Pois päältä"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_engineinfo.c:25
-msgid "Use an averaging algorithm for fps"
-msgstr "Käytä tasoittavaa algoritmia ruudunpäivitykselle (FPS)"
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:30
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:77 qcsrc/menu/xonotic/util.qc:591
+msgid "Color:"
+msgstr "Väri:"
 
-#: qcsrc/menu/xonotic/dialog_quit.c:4
-msgid "Quit"
-msgstr "Lopeta"
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:35 qcsrc/menu/xonotic/util.qc:599
+msgid "Border size:"
+msgstr "Reunan koko:"
 
-#: qcsrc/menu/xonotic/dialog_quit.c:17
-msgid "Are you sure you want to quit?"
-msgstr "Haluatko aivan varmasti lopettaa pelin?"
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:50
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:89
+msgid "Team color:"
+msgstr "Joukkueen väri:"
 
-#: qcsrc/menu/xonotic/dialog_quit.c:20
-msgid "Yes"
-msgstr "Kyllä"
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:58 qcsrc/menu/xonotic/util.qc:625
+msgid "Test team color in configure mode"
+msgstr "Kokeile joukkueen väriä muokkaustilassa"
 
-#: qcsrc/menu/xonotic/dialog_quit.c:21
-msgid "No"
-msgstr "Ei"
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:61 qcsrc/menu/xonotic/util.qc:628
+msgid "Padding:"
+msgstr "Pehmustus:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:4
-msgid "Join"
-msgstr "Liity"
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:68
+msgid "HUD Dock:"
+msgstr "Näkymän liitäntä:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:28
-#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:32
-msgid "Filter:"
-msgstr "Suodatin:"
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:70
+msgid "DOCK^Disabled"
+msgstr "DOCK^Pois"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:36
-msgid "SRVS^Empty"
-msgstr "SRVS^Tyhjä"
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:71
+msgid "DOCK^Small"
+msgstr "DOCK^Pieni"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:40
-msgid "SRVS^Full"
-msgstr "SRVS^Täynnä"
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:72
+msgid "DOCK^Medium"
+msgstr "DOCK^Keskikokoinen"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:44
-msgid "Pause"
-msgstr "Keskeytä"
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:73
+msgid "DOCK^Large"
+msgstr "DOCK^Suuri"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:56
-msgid "Address:"
-msgstr "Osoite:"
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:96
+msgid "Grid settings:"
+msgstr "Ruudukon asetukset:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:65
-msgid "Info..."
-msgstr "Tietoa..."
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:99
+msgid "Snap panels to grid"
+msgstr "Katkaise paneelit ruudukkoon"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:70
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:311
-msgid "Join!"
-msgstr "Liity!"
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:102
+msgid "Grid size:"
+msgstr "Ruudukon koko:"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:4
-msgid "Notification Panel"
-msgstr "Ilmoituspaneeli"
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:103
+msgid "X:"
+msgstr "X:"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:22
-msgid "Notifications:"
-msgstr "Ilmoitukset:"
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:109
+msgid "Y:"
+msgstr "Y:"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:25
-msgid "Also print notifications to the console"
-msgstr "Laita ilmoitukset myös komentoriville"
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:117
+msgid "Exit setup"
+msgstr "Poistu asetuksista"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:28
-msgid "Flip notify order"
-msgstr "Käännä ilmoitusjärjestys"
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:4
+msgid "Multiplayer"
+msgstr "Moninpeli"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:31
-msgid "Entry lifetime:"
-msgstr "Sisääntulon kesto"
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:18
+msgid "Servers"
+msgstr "Palvelimet"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:35
-msgid "Entry fadetime:"
-msgstr "Sisääntulon häivennyksen kesto"
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:19
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:5
+msgid "Create"
+msgstr "Luo"
 
-#: qcsrc/menu/xonotic/util.qh:49
-msgid "Enable panel"
-msgstr "Ota paneeli käyttöön"
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:20
+msgid "Demos"
+msgstr "Demot"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:26
-msgid "Menu skins:"
-msgstr "Päävalikon ulkoasu:"
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:21
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:5
+msgid "Player Setup"
+msgstr "Pelaajan asetukset"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:47
-msgid "Show current time"
-msgstr "Näytä nykyinen kellonaika"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:35
+msgid "Game type:"
+msgstr "Pelityyppi"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:49
-msgid "Show current date"
-msgstr "Näytä nykyinen päivämäärä"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:47
+msgid "Match settings:"
+msgstr "Ottelun asetukset"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:51
-msgid "Show frames per second"
-msgstr "Näytä ruudunpäivitysnopeus (FPS)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:50
+msgid "Time limit:"
+msgstr "Aikaraja"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:53
-msgid "Speedometer"
-msgstr "Nopeusmittari"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:54
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:62
+msgid "Use map specified default"
+msgstr "Käytä kartan omaa oletusarvoa"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:56
-msgid "qu/s (hidden)"
-msgstr "qu/s (kätketty)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:57
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:156
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:157
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:158
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:162
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:163
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:164
+msgid "Point limit:"
+msgstr "Pisteraja:"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:58
-msgid "qu/s"
-msgstr "qu/s"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:65
+msgid "Player slots:"
+msgstr "Pelaajamäärä:"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:60
-msgid "m/s"
-msgstr "m/s"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:68
+msgid "Number of bots:"
+msgstr "Bottien lukumäärä:"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:64
-msgid "km/h"
-msgstr "km/h"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:72
+msgid "Bot skill:"
+msgstr "Bottien taitotaso:"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:66
-msgid "mph"
-msgstr "mph"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:75
+msgid "Botlike"
+msgstr "Typerä kone"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:68
-msgid "knots"
-msgstr "knots"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:76
+msgid "Beginner"
+msgstr "Aloittelija"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:71
-msgid "Show accelerometer"
-msgstr "Näytä kiihtyvyysmittari"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:77
+msgid "You will win"
+msgstr "Helppo voitto"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:74
-msgid "Accelerometer scale:"
-msgstr "Kiihtyvyysmittarin skaala:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:78
+msgid "You can win"
+msgstr "Helpohko"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:80
-msgid "Minimize input latency"
-msgstr "Minimoi syötteen viive"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:79
+msgid "You might win"
+msgstr "Keskitaso"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:84
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:98
-msgid "Advanced settings..."
-msgstr "Edistyneet asetukset..."
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:80
+msgid "Advanced"
+msgstr "Kehittynyt"
 
-#: qcsrc/menu/xonotic/dialog_singleplayer.c:4
-msgid "Singleplayer"
-msgstr "Yksinpeli"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:81
+msgid "Expert"
+msgstr "Ekspertti"
 
-#: qcsrc/menu/xonotic/dialog_singleplayer.c:59
-msgid "Instant action! (random map with bots)"
-msgstr "Suoraan taisteluun! (satunnainen kartta bottien kera)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:82
+msgid "Pro"
+msgstr "Mestari"
 
-#: qcsrc/menu/xonotic/dialog_singleplayer.c:80
-msgid "Start Singleplayer!"
-msgstr "Aloita yksinpeli!"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:83
+msgid "Assassin"
+msgstr "Murhaaja"
 
-#: qcsrc/menu/xonotic/skinlist.c:105
-msgid "<TITLE>"
-msgstr "<TITLE>"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:84
+msgid "Unhuman"
+msgstr "Epäinhimillinen"
 
-#: qcsrc/menu/xonotic/skinlist.c:106
-msgid "<AUTHOR>"
-msgstr "<AUTHOR>"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:85
+msgid "Godlike"
+msgstr "Jumalainen"
 
-#: qcsrc/menu/xonotic/skinlist.c:163
-#, c-format
-msgid "%s: %s"
-msgstr "%s: %s"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:89
+msgid "Mutators..."
+msgstr "Muokkaukset..."
 
-#: qcsrc/menu/xonotic/dialog_news.c:4
-msgid "News"
-msgstr "Uutiset"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:98
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:84
+msgid "Advanced settings..."
+msgstr "Edistyneet asetukset..."
 
-#: qcsrc/menu/xonotic/dialog_news.c:18
-msgid "http://www.xonotic.org/team/blog/"
-msgstr "http://www.xonotic.org/team/blog/"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:105
+msgid "Map list:"
+msgstr "Karttalista"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:5
-msgid "Server Information"
-msgstr "Palvelimen tiedot"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:111
+msgid "Select all"
+msgstr "Valitse kaikki"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:115
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:116
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:177
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:183
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:193
-msgid "N/A"
-msgstr "N/A"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:114
+msgid "Select none"
+msgstr "Poista kaikki valinnat"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:151
-#, c-format
-msgid "%d/%d"
-msgstr "%d/%d"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:120
+msgid "Start Multiplayer!"
+msgstr "Aloita moninpeli!"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:166
-msgid "Official settings"
-msgstr "Viralliset asetukset"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:155
+msgid "Capture limit:"
+msgstr "Lipunryöstöraja"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:166
-#, c-format
-msgid "%d modified settings"
-msgstr "%d muokatut asetukset"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:159
+msgid "Lives:"
+msgstr "Elämät:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:191
-msgid "N/A (can't connect)"
-msgstr "N/A (ei voida yhdistää)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:160
+msgid "Laps:"
+msgstr "Kierrokset:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:199
-msgid "not supported (can't connect)"
-msgstr "ei tuettu (ei voida yhdistää)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:161
+msgid "Goals:"
+msgstr "Maalit:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:201
-msgid "not supported (won't encrypt)"
-msgstr "ei tuettu (salaus ei onnistu)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:165
+msgid "Frag limit:"
+msgstr "Tapporaja:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:205
-msgid "supported (will encrypt)"
-msgstr "tuettu (salaus onnistuu)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:6
+msgid "Advanced server settings"
+msgstr "Kehittyneet palvelinasetukset"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:207
-msgid "supported (won't encrypt)"
-msgstr "tuettu (salaus ei onnistu)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:25
+msgid "Game settings:"
+msgstr "Peliasetukset:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:211
-msgid "requested (will encrypt)"
-msgstr "pyydetty (salaus onnistuu)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:28
+msgid "Allow spectating"
+msgstr "Salli sivustakatsominen"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:213
-msgid "requested (won't encrypt)"
-msgstr "pyydetty (salaus ei onnistu)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:31
+msgid "Spawn shield:"
+msgstr "Uudelleensyntymissuoja:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:217
-msgid "required (can't connect)"
-msgstr "vaadittu (ei voida yhdistää)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:36
+msgid "Game speed:"
+msgstr "Pelinopeus:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:219
-msgid "required (will encrypt)"
-msgstr "vaadittu (salaus onnistuu)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:40
+msgid "Teamplay settings:"
+msgstr "Joukkuepeliasetukset:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:240
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:263
-msgid "Players:"
-msgstr "Pelaajat:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:43
+msgid "Friendly fire scale:"
+msgstr "Joukkuevahingon skaala:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:253
-msgid "Map:"
-msgstr "Kartta:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:47
+msgid "Virtual friendly fire (effect only)"
+msgstr "Virtuaalinen joukkuevahinko (vain effekti)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:258
-msgid "Gameplay:"
-msgstr "Pelitila:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:50
+msgid "Friendly fire penalty:"
+msgstr "Joukkuevahinkorangaistus:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:268
-msgid "Bots:"
-msgstr "Botit:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:54
+msgid "Virtual penalty (effect only)"
+msgstr "Virtuaalinen rangaistus (vain effekti)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:273
-msgid "Mod:"
-msgstr "Modi:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:57
+msgid "Teams:"
+msgstr "Joukkueet:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:278
-msgid "Version:"
-msgstr "Versio:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:66
+msgid "Map voting:"
+msgstr "Kartan äänestys:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:283
-msgid "Ping:"
-msgstr "Viive:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:68
+msgid "No voting"
+msgstr "Ei äänestystä"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:289
-msgid "CA:"
-msgstr "Lipunryöstö (CTF)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:69
+msgid "2 choices"
+msgstr "2 valintaa"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:295
-msgid "Key:"
-msgstr "Avain (Key)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:70
+msgid "3 choices"
+msgstr "3 valintaa"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:301
-msgid "Encryption:"
-msgstr "Salaus:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:71
+msgid "4 choices"
+msgstr "4 valintaa"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:72
+msgid "5 choices"
+msgstr "5 valintaa"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:73
+msgid "6 choices"
+msgstr "6 valintaa"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:74
+msgid "7 choices"
+msgstr "7 valintaa"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:75
+msgid "8 choices"
+msgstr "8 valintaa"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:76
+msgid "9 choices"
+msgstr "9 valintaa"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:79
+msgid "Simple majority wins vcall"
+msgstr "Suurempi äänimäärä voittaa"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:5
+msgid "Map Information"
+msgstr "Kartan tiedot"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:49
+msgid "Full item placement"
+msgstr "Esineiden täysi sijoittaminen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:49
+msgid "MinstaGib only"
+msgstr "Vain MinstaGib"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:78
+msgid "Title:"
+msgstr "Otsikko:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:84
+msgid "Author:"
+msgstr "Tekijä:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:90
+msgid "Features:"
+msgstr "Ominaisuudet:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:95
+msgid "Game types:"
+msgstr "Pelityypit:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:308
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:119
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:314
 msgid "Close"
 msgstr "Sulje"
 
-#: qcsrc/menu/xonotic/slider_decibels.c:50
-msgid "VOL^OFF"
-msgstr "VOL^OFF"
-
-#: qcsrc/menu/xonotic/slider_decibels.c:52
-msgid "VOL^MAX"
-msgstr "VOL^MAX"
-
-#: qcsrc/menu/xonotic/slider_decibels.c:53
-#, c-format
-msgid "%s dB"
-msgstr "%s dB"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:122
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:46
+msgid "Play"
+msgstr "Pelaa"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:7
 msgid "Mutators"
@@ -1076,1319 +956,1827 @@ msgstr "Erikoistaistelukentät:"
 msgid "Most weapons"
 msgstr "Suurin osa aseista"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:4
-msgid "Radar Panel"
-msgstr "Tutkapaneeli"
-
-#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:22
-msgid "Panel enabled in teamgames"
-msgstr "Paneeli käytössä joukkuepeleissä"
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:4
+msgid "Demo"
+msgstr "Demo"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:29
-msgid "Radar:"
-msgstr "Tutka:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:28
+msgid "Record demos while playing"
+msgstr "Tallenna demoja pelin aikana"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:36
-msgid "Rotation:"
-msgstr "Pyöriminen:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:32
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:28
+msgid "Filter:"
+msgstr "Suodatin:"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:38
-msgid "Forward"
-msgstr "Eteenpäin"
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:33
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:29
+#: qcsrc/menu/xonotic/dialog_settings_input.c:41
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:24
+msgid "Clear"
+msgstr "Tyhjennä"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:39
-msgid "West"
-msgstr "Länsi"
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:43
+msgid "Timedemo"
+msgstr "Aikademo"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:40
-msgid "South"
-msgstr "Etelä"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:4
+msgid "Join"
+msgstr "Liity"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:41
-msgid "East"
-msgstr "Itä"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:36
+msgid "SRVS^Empty"
+msgstr "SRVS^Tyhjä"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:42
-msgid "North"
-msgstr "Pohjoinen"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:40
+msgid "SRVS^Full"
+msgstr "SRVS^Täynnä"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:46
-msgid "Scale:"
-msgstr "Skaala:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:44
+msgid "Pause"
+msgstr "Keskeytä"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:50
-msgid "Zoom mode:"
-msgstr "Tarkennus:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:56
+msgid "Address:"
+msgstr "Osoite:"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:52
-msgid "Zoomed in"
-msgstr "Tarkennettu kohteeseen"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:67
+msgid "Info..."
+msgstr "Tietoa..."
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:53
-msgid "Zoomed out"
-msgstr "Tarkennuksen poisto"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:72
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:317
+msgid "Join!"
+msgstr "Liity!"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:54
-msgid "Always zoomed"
-msgstr "Aina tarkennettuna"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:5
+msgid "Server Information"
+msgstr "Palvelimen tiedot"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:55
-msgid "Never zoomed"
-msgstr "Tarkennus ei ikinä päällä"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:115
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:116
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:183
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:189
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:199
+msgid "N/A"
+msgstr "N/A"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_racetimer.c:4
-msgid "Race Timer Panel"
-msgstr "Kilpajuoksun ajanoton paneeli"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:158
+#, c-format
+msgid "%d/%d, %d free player slots"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:4
-msgid "Chat Panel"
-msgstr "Keskustelupaneeli"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:172
+#, c-format
+msgid "%d modified settings"
+msgstr "%d muokatut asetukset"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:22
-msgid "Chat entries:"
-msgstr "Keskustelun sisältö:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:172
+msgid "Official settings"
+msgstr "Viralliset asetukset"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:25
-msgid "Chat size:"
-msgstr "Keskustelun koko"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:197
+msgid "N/A (can't connect)"
+msgstr "N/A (ei voida yhdistää)"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:29
-msgid "Chat lifetime:"
-msgstr "Keskustelun kesto:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:205
+msgid "not supported (can't connect)"
+msgstr "ei tuettu (ei voida yhdistää)"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:33
-msgid "Chat beep sound"
-msgstr "Keskustelun piippausääni"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:207
+msgid "not supported (won't encrypt)"
+msgstr "ei tuettu (salaus ei onnistu)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:5
-#: qcsrc/menu/xonotic/dialog_multiplayer.c:19
-msgid "Create"
-msgstr "Luo"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:211
+msgid "supported (will encrypt)"
+msgstr "tuettu (salaus onnistuu)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:35
-msgid "Game type:"
-msgstr "Pelityyppi"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:213
+msgid "supported (won't encrypt)"
+msgstr "tuettu (salaus ei onnistu)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:47
-msgid "Match settings:"
-msgstr "Ottelun asetukset"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:217
+msgid "requested (will encrypt)"
+msgstr "pyydetty (salaus onnistuu)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:50
-msgid "Time limit:"
-msgstr "Aikaraja"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:219
+msgid "requested (won't encrypt)"
+msgstr "pyydetty (salaus ei onnistu)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:54
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:62
-msgid "Use map specified default"
-msgstr "Käytä kartan omaa oletusarvoa"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:223
+msgid "required (can't connect)"
+msgstr "vaadittu (ei voida yhdistää)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:57
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:156
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:157
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:158
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:162
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:163
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:164
-msgid "Point limit:"
-msgstr "Pisteraja:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:225
+msgid "required (will encrypt)"
+msgstr "vaadittu (salaus onnistuu)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:65
-msgid "Player slots:"
-msgstr "Pelaajamäärä:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:246
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:269
+msgid "Players:"
+msgstr "Pelaajat:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:68
-msgid "Number of bots:"
-msgstr "Bottien lukumäärä:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:254
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:38
+msgid "Type:"
+msgstr "Tyyppi:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:72
-msgid "Bot skill:"
-msgstr "Bottien taitotaso:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:259
+msgid "Map:"
+msgstr "Kartta:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:75
-msgid "Botlike"
-msgstr "Typerä kone"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:264
+msgid "Gameplay:"
+msgstr "Pelitila:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:76
-msgid "Beginner"
-msgstr "Aloittelija"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:274
+msgid "Bots:"
+msgstr "Botit:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:77
-msgid "You will win"
-msgstr "Helppo voitto"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:279
+msgid "Mod:"
+msgstr "Modi:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:78
-msgid "You can win"
-msgstr "Helpohko"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:284
+msgid "Version:"
+msgstr "Versio:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:79
-msgid "You might win"
-msgstr "Keskitaso"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:289
+msgid "Ping:"
+msgstr "Viive:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:80
-msgid "Advanced"
-msgstr "Kehittynyt"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:295
+msgid "CA:"
+msgstr "Lipunryöstö (CTF)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:81
-msgid "Expert"
-msgstr "Ekspertti"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:301
+msgid "Key:"
+msgstr "Avain (Key)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:82
-msgid "Pro"
-msgstr "Mestari"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:307
+msgid "Encryption:"
+msgstr "Salaus:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:83
-msgid "Assassin"
-msgstr "Murhaaja"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:63
+msgid "Model:"
+msgstr "Malli:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:84
-msgid "Unhuman"
-msgstr "Epäinhimillinen"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:88
+msgid "Field of view:"
+msgstr "Näkökenttä:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:92
+msgid "View bobbing:"
+msgstr "Näytä huojunta:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:96
+msgid "Zoom factor:"
+msgstr "Tarkennuskerroin:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:100
+msgid "Zoom speed:"
+msgstr "Tarkennuksen nopeus:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:103
+msgid "Weapon settings..."
+msgstr "Aseiden asetukset..."
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:110
+msgid "Crosshair:"
+msgstr "Tähtäin:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:111
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:139
+msgid "Per weapon"
+msgstr "Asekohtainen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:130
+msgid "Crosshair size:"
+msgstr "Tähtäimen suuruus:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:134
+msgid "Crosshair alpha:"
+msgstr "Tähtäimen alpha:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:138
+msgid "Crosshair color:"
+msgstr "Tähtäimen väri:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:140
+msgid "By health"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:143
+#, fuzzy
+msgid "Custom"
+msgstr "omavalintainen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:148
+msgid "Enable center dot"
+msgstr "Ota keskipiste käyttöön"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:151
+msgid "Size:"
+msgstr "Koko:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:158
+msgid "Hit test:"
+msgstr "Osumatesti:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:159
+msgid "HTST^None"
+msgstr "HTST^Ei mitään."
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:160
+msgid "TrueAim"
+msgstr "TrueAim"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:161
+msgid "Enemies"
+msgstr "Viholliset"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:164
+msgid "Waypoints setup..."
+msgstr "Välimatkojen asetukset..."
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:169
+msgid "Enter HUD editor"
+msgstr "Mene näkymän muokkaimeen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:174
+msgid "Force models:"
+msgstr "Pakota hahmojen ulkomuoto samanlaiseksi:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:175
+msgid "MDL^None"
+msgstr "MDL^Ei mitään."
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:176
+msgid "MDL^Custom"
+msgstr "MDL^Omavalintainen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:177
+msgid "MDL^All"
+msgstr "MDL^Kaikki"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:180
+msgid "Disable gore effects"
+msgstr "Ota ylimitoitettu raakuus pois päältä"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:182
+msgid "Gibs:"
+msgstr "Raajat:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:184
+msgid "GIBS^None"
+msgstr "GIBS^Ei mitään"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:185
+msgid "GIBS^Few"
+msgstr "GIBS^Vähän"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:186
+msgid "GIBS^Many"
+msgstr "GIBS^Paljon"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:187
+msgid "GIBS^Lots"
+msgstr "GIBS^Runsaasti"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:191
+msgid "Damage splash:"
+msgstr "Vahinkoroiskeet"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:195
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:178
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:194
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:30
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:41
+#: qcsrc/menu/xonotic/dialog_settings_video.c:105
+msgid "Apply immediately"
+msgstr "Ota heti käyttöön"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:5
+msgid "Waypoints"
+msgstr "Välimatkat"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:23
+msgid "Show base waypoints"
+msgstr "Näytä päämäärien välimatkat"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:25
+msgid "Waypoint scale:"
+msgstr "Välimatkan skaala:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:29
+msgid "Waypoint alpha:"
+msgstr "Välimatkojen alpha:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:34
+msgid "Show names:"
+msgstr "Näytä nimet:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:37
+msgid "Teammates"
+msgstr "Oma joukkue"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:38
+msgid "All players"
+msgstr "Kaikki pelaajat"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:6
+msgid "Weapon settings"
+msgstr "Aseiden asetukset"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:29
+msgid "Weapon priority list:"
+msgstr "Aseiden prioriteetti:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:34
+msgid "Up"
+msgstr "Ylös"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:37
+msgid "Down"
+msgstr "Alas"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:41
+msgid "Use priority list for weapon cycling"
+msgstr "Käytä prioriteettiä aseiden vaihdossa"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:43
+msgid "Auto switch weapons on pickup"
+msgstr "Vaihda ase automaattisesti poimimisen jälkeen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:45
+msgid "Draw 1st person weapon model"
+msgstr "Piirrä ensimmäisen persoonan asemalli"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:48
+msgid "Left align"
+msgstr "Vasen tasaus"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:50
+msgid "Right align"
+msgstr "Oikea tasaus"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:53
+msgid "Flip view horizontally"
+msgstr "Käännä näkymä horisontaalisesti"
+
+#: qcsrc/menu/xonotic/dialog_news.c:4
+msgid "News"
+msgstr "Uutiset"
+
+#: qcsrc/menu/xonotic/dialog_news.c:18
+msgid "http://www.xonotic.org/team/blog/"
+msgstr "http://www.xonotic.org/team/blog/"
+
+#: qcsrc/menu/xonotic/dialog_quit.c:4
+msgid "Quit"
+msgstr "Lopeta"
+
+#: qcsrc/menu/xonotic/dialog_quit.c:17
+msgid "Are you sure you want to quit?"
+msgstr "Haluatko aivan varmasti lopettaa pelin?"
+
+#: qcsrc/menu/xonotic/dialog_quit.c:20
+msgid "Yes"
+msgstr "Kyllä"
+
+#: qcsrc/menu/xonotic/dialog_quit.c:21
+msgid "No"
+msgstr "Ei"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:4
+msgid "Settings"
+msgstr "Asetukset"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:18
+#: qcsrc/menu/xonotic/dialog_settings_input.c:4
+msgid "Input"
+msgstr "Ohjaus"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:19
+#: qcsrc/menu/xonotic/dialog_settings_video.c:4
+msgid "Video"
+msgstr "Video"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:20
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:4
+msgid "Effects"
+msgstr "Effektit"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:21
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:4
+msgid "Audio"
+msgstr "Ääni"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:22
+#: qcsrc/menu/xonotic/dialog_settings_network.c:4
+msgid "Network"
+msgstr "Verkko"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:23
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:4
+msgid "Misc"
+msgstr "Sekalainen"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:27
+msgid "Master:"
+msgstr "Pääkanava:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:33
+msgid "Music:"
+msgstr "Musiikki:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:40
+msgid "VOL^Ambient:"
+msgstr "VOL^Ympäristö:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:48
+msgid "Info:"
+msgstr "Tiedoitukset:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:57
+msgid "Items:"
+msgstr "Esineet:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:65
+msgid "Pain:"
+msgstr "Kipu:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:73
+msgid "Player:"
+msgstr "Pelaaja:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:81
+msgid "Shots:"
+msgstr "Laukaukset:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:88
+msgid "Voice:"
+msgstr "Puhe:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:96
+msgid "Weapons:"
+msgstr "Aseet:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:103
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:161
+msgid "Frequency:"
+msgstr "Taajuus:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:105
+msgid "8 kHz"
+msgstr "8 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:106
+msgid "11.025 kHz"
+msgstr "11.025 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:107
+msgid "16 kHz"
+msgstr "16 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:108
+msgid "22.05 kHz"
+msgstr "22.05 Khz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:109
+msgid "24 kHz"
+msgstr "24 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:110
+msgid "32 kHz"
+msgstr "32 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:111
+msgid "44.1 kHz"
+msgstr "44.1 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:112
+msgid "48 kHz"
+msgstr "48 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:115
+msgid "Channels:"
+msgstr "Kanavat:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:117
+msgid "Mono"
+msgstr "Mono"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:118
+msgid "Stereo"
+msgstr "Stereo"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:119
+msgid "2.1"
+msgstr "2.1"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:120
+msgid "4"
+msgstr "4"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:121
+msgid "5"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:122
+msgid "5.1"
+msgstr "5.1"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:123
+msgid "6.1"
+msgstr "6.1"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:124
+msgid "7.1"
+msgstr "7.1"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:128
+msgid "Swap Stereo"
+msgstr "Vaihda stereoäänilähteiden paikkaa"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:132
+msgid "Headphone friendly mode"
+msgstr "Kuulokeystävällinen tila"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:136
+msgid "Spatial voices:"
+msgstr "Tilanneäänet:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:137
+msgid "VOCS^None"
+msgstr "VOCS^Ei mitään"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:138
+msgid "VOCS^Taunts"
+msgstr "VOCS^Huudahdukset"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:139
+msgid "VOCS^All"
+msgstr "VOCS^Kaikki"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:142
+msgid "Taunt range:"
+msgstr "Huudahduksen kantama"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:145
+msgid "RNG^Very short"
+msgstr "RNG^Hyvin lyhyt"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:146
+msgid "RNG^Short"
+msgstr "RNG^Lyhyt"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:147
+msgid "RNG^Normal"
+msgstr "RNG^Normaali"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:148
+msgid "RNG^Long"
+msgstr "RNG^Pitkä"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:149
+msgid "RNG^Full"
+msgstr "RNG^Täysi"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:156
+msgid "Automatic taunts"
+msgstr "Automaattiset huudahdukset"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:165
+msgid "Time warning:"
+msgstr "Aikavaroitus:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:167
+msgid "WRN^None"
+msgstr "WRN^Ei mitään"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:168
+msgid "1 minute"
+msgstr "1 minuutti"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:169
+msgid "5 minutes"
+msgstr "5 minuuttia"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:170
+msgid "WRN^Both"
+msgstr "WRN^Molemmat"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:173
+msgid "Hit indicator"
+msgstr "Osumailmaisin"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:85
-msgid "Godlike"
-msgstr "Jumalainen"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:175
+msgid "Menu sounds"
+msgstr "Valikon äänet"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:89
-msgid "Mutators..."
-msgstr "Muokkaukset..."
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:38
+msgid "Quality preset:"
+msgstr "Laadun esiasetus:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:105
-msgid "Map list:"
-msgstr "Karttalista"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:41
+msgid "PRE^OMG!"
+msgstr "PRE^Nörtti"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:111
-msgid "Select all"
-msgstr "Valitse kaikki"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:42
+msgid "PRE^Low"
+msgstr "PRE^Matala"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:114
-msgid "Select none"
-msgstr "Poista kaikki valinnat"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:43
+msgid "PRE^Medium"
+msgstr "PRE^Keskitaso"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:120
-msgid "Start Multiplayer!"
-msgstr "Aloita moninpeli!"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:44
+msgid "PRE^Normal"
+msgstr "PRE^Normaali"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:155
-msgid "Capture limit:"
-msgstr "Lipunryöstöraja"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:45
+msgid "PRE^High"
+msgstr "PRE^Korkea"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:159
-msgid "Lives:"
-msgstr "Elämät:"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:46
+msgid "PRE^Ultra"
+msgstr "PRE^Hyvin korkea"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:160
-msgid "Laps:"
-msgstr "Kierrokset:"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:48
+msgid "PRE^Ultimate"
+msgstr "PRE^Äärimmäinen"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:161
-msgid "Goals:"
-msgstr "Maalit:"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:52
+msgid "Geometry detail:"
+msgstr "Geometriset yksityiskohdat:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:165
-msgid "Frag limit:"
-msgstr "Tapporaja:"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:54
+msgid "DET^Lowest"
+msgstr "DET^Matalin"
 
-#: qcsrc/menu/xonotic/dialog_singleplayer_winner.c:4
-msgid "Winner"
-msgstr "Voittaja"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:55
+msgid "DET^Low"
+msgstr "DET^Matala"
 
-#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:5
-msgid "User defined key bind"
-msgstr "Käyttäjän määrittelemä näppäinasetus"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:56
+msgid "DET^Normal"
+msgstr "DET^Normaali"
 
-#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:42
-msgid "Command when pressed:"
-msgstr "Komento painaessa:"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:57
+msgid "DET^Good"
+msgstr "DET^Hyvä"
 
-#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:45
-msgid "Command when released:"
-msgstr "Komento painamisen jälkeen:"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:58
+msgid "DET^Best"
+msgstr "DET^Paras"
 
-#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:48
-msgid "Save"
-msgstr "Tallenna"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:59
+msgid "DET^Insane"
+msgstr "DET^Sekopäinen"
 
-#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:51
-msgid "Cancel"
-msgstr "Peruuta"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:62
+msgid "Antialiasing:"
+msgstr "Reunojenpehmennys (Antialiasing):"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:5
-#: qcsrc/menu/xonotic/dialog_multiplayer.c:21
-msgid "Player Setup"
-msgstr "Pelaajan asetukset"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:64
+msgid "AA^Disabled"
+msgstr "AA^Pois päältä"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:63
-msgid "Model:"
-msgstr "Malli:"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:65
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:103
+msgid "2x"
+msgstr "2x"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:88
-msgid "Field of view:"
-msgstr "Näkökenttä:"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:66
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:104
+msgid "4x"
+msgstr "4x"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:92
-msgid "View bobbing:"
-msgstr "Näytä huojunta:"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:70
+msgid "Texture resolution:"
+msgstr "Tekstuurien tarkkuus:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:96
-msgid "Zoom factor:"
-msgstr "Tarkennuskerroin:"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:73
+msgid "RES^Leet"
+msgstr "RES^Leet"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:100
-msgid "Zoom speed:"
-msgstr "Tarkennuksen nopeus:"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:74
+msgid "RES^Lowest"
+msgstr "RES^Matalin"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:103
-msgid "Weapon settings..."
-msgstr "Aseiden asetukset..."
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:75
+msgid "RES^Low"
+msgstr "RES^Matala"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:110
-msgid "Crosshair:"
-msgstr "Tähtäin:"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:76
+msgid "RES^Normal"
+msgstr "RES^Normaali"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:111
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:143
-msgid "Per weapon"
-msgstr "Asekohtainen"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:77
+msgid "RES^Good"
+msgstr "RES^Hyvä"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:130
-msgid "Crosshair size:"
-msgstr "Tähtäimen suuruus:"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:78
+msgid "RES^Best"
+msgstr "RES^Paras"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:134
-msgid "Crosshair alpha:"
-msgstr "Tähtäimen alpha:"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:91
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:94
+msgid "Avoid lossy texture compression"
+msgstr "Vältä häviöllistä tekstuurien pakkaamista"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:138
-msgid "Crosshair color:"
-msgstr "Tähtäimen väri:"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:100
+msgid "Anisotropy:"
+msgstr "Anisotropia:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:145
-msgid "Enable center dot"
-msgstr "Ota keskipiste käyttöön"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:102
+msgid "ANISO^Disabled"
+msgstr "ANISO^Pois päältä"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:148
-msgid "Size:"
-msgstr "Koko:"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:105
+msgid "8x"
+msgstr "8x"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:155
-msgid "Hit test:"
-msgstr "Osumatesti:"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:106
+msgid "16x"
+msgstr "16x"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:156
-msgid "HTST^None"
-msgstr "HTST^Ei mitään."
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:110
+msgid "Particle quality:"
+msgstr "Kappaleiden laatu:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:157
-msgid "TrueAim"
-msgstr "TrueAim"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:113
+msgid "Particle distance:"
+msgstr "Kappaleiden etäisyys:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:158
-msgid "Enemies"
-msgstr "Viholliset"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:117
+msgid "Decals"
+msgstr "Siirtokuvat"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:161
-msgid "Waypoints setup..."
-msgstr "Välimatkojen asetukset..."
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:120
+msgid "Distance:"
+msgstr "Etäisyys:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:167
-msgid "Enter HUD editor"
-msgstr "Mene näkymän muokkaimeen"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:126
+msgid "Time:"
+msgstr "Aika:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:174
-msgid "Force models:"
-msgstr "Pakota hahmojen ulkomuoto samanlaiseksi:"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:132
+msgid "Use lightmaps"
+msgstr "Käytä valaistuksia"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:175
-msgid "MDL^None"
-msgstr "MDL^Ei mitään."
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:133
+msgid "Deluxe mapping"
+msgstr "Pikselikohtainen valaistus"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:176
-msgid "MDL^Custom"
-msgstr "MDL^Omavalintainen"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:135
+msgid "Gloss"
+msgstr "Kiilto"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:177
-msgid "MDL^All"
-msgstr "MDL^Kaikki"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:138
+msgid "Offset mapping"
+msgstr "Korosta tekstuurien kuhmuja"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:179
-msgid "Disable gore effects"
-msgstr "Ota ylimitoitettu raakuus pois päältä"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:140
+msgid "Relief mapping"
+msgstr "Tehokas tekstuurien kuhmujen korostus"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:181
-msgid "Gibs:"
-msgstr "Raajat:"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:143
+msgid "Reflections:"
+msgstr "Heijastukset:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:183
-msgid "GIBS^None"
-msgstr "GIBS^Ei mitään"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:146
+msgid "Blurred"
+msgstr "Sumea"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:184
-msgid "GIBS^Few"
-msgstr "GIBS^Vähän"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:147
+msgid "REFL^Good"
+msgstr "REFL^Hyvä"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:185
-msgid "GIBS^Many"
-msgstr "GIBS^Paljon"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:148
+msgid "Sharp"
+msgstr "Terävä"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:186
-msgid "GIBS^Lots"
-msgstr "GIBS^Runsaasti"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:153
+msgid "Show surfaces"
+msgstr "Näytä pinnat"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:190
-msgid "Damage splash:"
-msgstr "Vahinkoroiskeet"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:155
+msgid "No dynamic lighting"
+msgstr "Ei dynaamista valaistusta"
 
-#: qcsrc/menu/xonotic/cvarlist.c:84
-msgid "will be saved to config.cfg"
-msgstr "tallennetaan config.cfg-tiedostoon"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:157
+msgid "Flash blend approximation"
+msgstr "Yksinkertaiset valot"
 
-#: qcsrc/menu/xonotic/cvarlist.c:86
-msgid "will not be saved"
-msgstr "ei tallenneta"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:159
+msgid "Realtime dynamic lighting"
+msgstr "Reaaliaikainen dynaaminen valaitus"
 
-#: qcsrc/menu/xonotic/cvarlist.c:88
-msgid "private"
-msgstr "yksityinen"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:160
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:164
+msgid "Shadows"
+msgstr "Varjot"
 
-#: qcsrc/menu/xonotic/cvarlist.c:90
-msgid "engine setting"
-msgstr "pelimoottorin asetus"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:163
+msgid "Realtime world lighting"
+msgstr "Reaaliaikainen ympäristön valaistus"
 
-#: qcsrc/menu/xonotic/cvarlist.c:92
-msgid "read only"
-msgstr "vain luku"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:168
+msgid "Use normal maps"
+msgstr "Käytä tekstuurien suunnattua varjostamista"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_score.c:4
-msgid "Score Panel"
-msgstr "Tulospaneeli"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:170
+msgid "Soft shadows"
+msgstr "Pehmeät varjot"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_timer.c:4
-msgid "Timer Panel"
-msgstr "Ajastinpaneeli"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:173
+msgid "Coronas"
+msgstr "Valokehät"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_timer.c:22
-msgid "Timer:"
-msgstr "Ajastin:"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:174
+msgid "Use Occlusion Queries"
+msgstr "Käytä Occlusion Queryä"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_timer.c:25
-msgid "Show elapsed time"
-msgstr "Näytä kulutettu aika"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:176
+msgid "Bloom"
+msgstr "Hehku"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:5
-msgid "Map Information"
-msgstr "Kartan tiedot"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:178
+msgid "High Dynamic Range (HDR)"
+msgstr "HDR"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:49
-msgid "Full item placement"
-msgstr "Esineiden täysi sijoittaminen"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:182
+msgid "Motion blur:"
+msgstr "Liikesumeus:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:49
-msgid "MinstaGib only"
-msgstr "Vain MinstaGib"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:188
+msgid "Damage blur:"
+msgstr "Vahinkosumeus:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:78
-msgid "Title:"
-msgstr "Otsikko:"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:26
+msgid "Key bindings:"
+msgstr "Näppäimet:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:84
-msgid "Author:"
-msgstr "Tekijä:"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:31
+msgid "Change key..."
+msgstr "Vaihda näppäin..."
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:90
-msgid "Features:"
-msgstr "Ominaisuudet:"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:35
+msgid "Edit..."
+msgstr "Muokkaa..."
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:95
-msgid "Game types:"
-msgstr "Pelityypit:"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:46
+msgid "Sensitivity:"
+msgstr "Herkkyys:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:122
-#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:46
-msgid "Play"
-msgstr "Pelaa"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:49
+msgid "UI mouse speed:"
+msgstr "Käyttöliittymän hiiren nopeus:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:6
-msgid "Advanced server settings"
-msgstr "Kehittyneet palvelinasetukset"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:52
+msgid "Mouse filter"
+msgstr "Hiiren suodatin"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:25
-msgid "Game settings:"
-msgstr "Peliasetukset:"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:54
+msgid "Invert mouse"
+msgstr "Käännä hiiren suunta"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:28
-msgid "Allow spectating"
-msgstr "Salli sivustakatsominen"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:57
+#: qcsrc/menu/xonotic/dialog_settings_input.c:59
+msgid "Use joystick input"
+msgstr "Käytä peliohjainta"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:31
-msgid "Spawn shield:"
-msgstr "Uudelleensyntymissuoja:"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:62
+#: qcsrc/menu/xonotic/dialog_settings_input.c:64
+msgid "Turn off OS mouse acceleration"
+msgstr "Laita käyttöjärjestelmän hiiren kiihtyvyys pois päältä"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:36
-msgid "Game speed:"
-msgstr "Pelinopeus:"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:66
+msgid "\"enter console\" also closes"
+msgstr "\"avaa komentorivi\" myös sulkee komentorivin"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:40
-msgid "Teamplay settings:"
-msgstr "Joukkuepeliasetukset:"
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:5
+msgid "User defined key bind"
+msgstr "Käyttäjän määrittelemä näppäinasetus"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:43
-msgid "Friendly fire scale:"
-msgstr "Joukkuevahingon skaala:"
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:42
+msgid "Command when pressed:"
+msgstr "Komento painaessa:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:47
-msgid "Virtual friendly fire (effect only)"
-msgstr "Virtuaalinen joukkuevahinko (vain effekti)"
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:45
+msgid "Command when released:"
+msgstr "Komento painamisen jälkeen:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:50
-msgid "Friendly fire penalty:"
-msgstr "Joukkuevahinkorangaistus:"
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:48
+msgid "Save"
+msgstr "Tallenna"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:54
-msgid "Virtual penalty (effect only)"
-msgstr "Virtuaalinen rangaistus (vain effekti)"
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:51
+msgid "Cancel"
+msgstr "Peruuta"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:57
-msgid "Teams:"
-msgstr "Joukkueet:"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:26
+msgid "Menu skins:"
+msgstr "Päävalikon ulkoasu:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:66
-msgid "Map voting:"
-msgstr "Kartan äänestys:"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:47
+msgid "Show current time"
+msgstr "Näytä nykyinen kellonaika"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:68
-msgid "No voting"
-msgstr "Ei äänestystä"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:49
+msgid "Show current date"
+msgstr "Näytä nykyinen päivämäärä"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:69
-msgid "2 choices"
-msgstr "2 valintaa"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:51
+msgid "Show frames per second"
+msgstr "Näytä ruudunpäivitysnopeus (FPS)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:70
-msgid "3 choices"
-msgstr "3 valintaa"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:53
+msgid "Speedometer"
+msgstr "Nopeusmittari"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:71
-msgid "4 choices"
-msgstr "4 valintaa"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:56
+msgid "qu/s (hidden)"
+msgstr "qu/s (kätketty)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:72
-msgid "5 choices"
-msgstr "5 valintaa"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:58
+msgid "qu/s"
+msgstr "qu/s"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:73
-msgid "6 choices"
-msgstr "6 valintaa"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:60
+msgid "m/s"
+msgstr "m/s"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:74
-msgid "7 choices"
-msgstr "7 valintaa"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:64
+msgid "km/h"
+msgstr "km/h"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:75
-msgid "8 choices"
-msgstr "8 valintaa"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:66
+msgid "mph"
+msgstr "mph"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:76
-msgid "9 choices"
-msgstr "9 valintaa"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:68
+msgid "knots"
+msgstr "knots"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:79
-msgid "Simple majority wins vcall"
-msgstr "Suurempi äänimäärä voittaa"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:71
+msgid "Show accelerometer"
+msgstr "Näytä kiihtyvyysmittari"
 
-#: qcsrc/menu/xonotic/util.qc:263
-#, c-format
-msgid "Received HTTP request data for an invalid id %d.\n"
-msgstr "Vastaanotettiin epäkelpo HTTP datapyyntö: %d.\n"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:74
+msgid "Accelerometer scale:"
+msgstr "Kiihtyvyysmittarin skaala:"
 
-#: qcsrc/menu/xonotic/util.qc:278
-#, c-format
-msgid "error receiving update notification: status is %d\n"
-msgstr "virhe vastaanottaessa päivitystiedotetta: tilanne %d\n"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:80
+msgid "Minimize input latency"
+msgstr "Minimoi syötteen viive"
 
-#: qcsrc/menu/xonotic/util.qc:283
-msgid "error: received HTML instead of an update notification\n"
-msgstr "virhe: vastaanotettiin HTML päivitystiedotteen asemesta\n"
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:5
+msgid "Advanced settings"
+msgstr "Edistyneet asetukset"
 
-#: qcsrc/menu/xonotic/util.qc:288
-msgid "error: received carriage returns from update notification server\n"
-msgstr "virhe: vastaanotettiin tyhjää dataa päivitystiedotepalvelimelta\n"
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:23
+msgid "Cvar filter:"
+msgstr "Cvar suodatin"
 
-#: qcsrc/menu/xonotic/util.qc:309
-#, c-format
-msgid ""
-"Update can be downloaded at:\n"
-"%s\n"
-msgstr "Päivitys on ladattavissa:\n"
-"%s\n"
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:34
+msgid "Setting:"
+msgstr "Asetus:"
 
-#: qcsrc/menu/xonotic/util.qc:330
-msgid "Autogenerating mapinfo for newly added maps..."
-msgstr "Luodaan automaattisesti karttatietoja vastikään lisätyille kartoille..."
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:42
+msgid "Value:"
+msgstr "Arvo:"
 
-#: qcsrc/menu/xonotic/util.qc:425
-#, c-format
-msgid "Update to %s now!"
-msgstr "Päivitä versioon %s nyt!"
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:56
+msgid "Description:"
+msgstr "Kuvaus:"
 
-#: qcsrc/menu/xonotic/util.qc:502
-msgid ""
-"^1ERROR: Texture compression is required but not supported.\n"
-"^1Expect visual problems.\n"
-msgstr "^1VIRHE: Tekstuurien pakkaus vaaditaan mutta ei ole tuettuna.\n"
-"^1Grafiikkavirheitä odotettavissa.\n"
+#: qcsrc/menu/xonotic/dialog_settings_network.c:26
+msgid "Client-side movement prediction"
+msgstr "Asiakasohjelman liikkeen ennustus"
 
-#: qcsrc/menu/xonotic/util.qc:524
-msgid "Arena"
-msgstr "Areena"
+#: qcsrc/menu/xonotic/dialog_settings_network.c:30
+msgid "Show netgraph"
+msgstr "Näytä verkkograafi"
 
-#: qcsrc/menu/xonotic/util.qc:525
-msgid "Assault"
-msgstr "Rynnäkkö (Assault)"
+#: qcsrc/menu/xonotic/dialog_settings_network.c:33
+msgid "Network speed:"
+msgstr "Verkon nopeus:"
 
-#: qcsrc/menu/xonotic/util.qc:526
-msgid "Capture The Flag"
-msgstr "Lipunryöstö (CTF)"
+#: qcsrc/menu/xonotic/dialog_settings_network.c:35
+msgid "56k"
+msgstr "56k"
 
-#: qcsrc/menu/xonotic/util.qc:527
-msgid "Clan Arena"
-msgstr "Klaaniareena (Clan Arena)"
+#: qcsrc/menu/xonotic/dialog_settings_network.c:36
+msgid "ISDN"
+msgstr "ISDN"
 
-#: qcsrc/menu/xonotic/util.qc:528
-msgid "Deathmatch"
-msgstr "Mättö (Deathmatch)"
+#: qcsrc/menu/xonotic/dialog_settings_network.c:37
+msgid "Slow ADSL"
+msgstr "Hidas ASL"
 
-#: qcsrc/menu/xonotic/util.qc:529
-msgid "Domination"
-msgstr "Hallinta (Domination)"
+#: qcsrc/menu/xonotic/dialog_settings_network.c:38
+msgid "Fast ADSL"
+msgstr "Nopea ADSL"
 
-#: qcsrc/menu/xonotic/util.qc:530
-msgid "Freeze Tag"
-msgstr "Pakkashippa (Freeze Tag)"
+#: qcsrc/menu/xonotic/dialog_settings_network.c:39
+msgid "Broadband"
+msgstr "Laajakaista"
 
-#: qcsrc/menu/xonotic/util.qc:531
-msgid "Keepaway"
-msgstr "Pakomatka (Keepaway)"
+#: qcsrc/menu/xonotic/dialog_settings_network.c:42
+msgid "Input packets/s:"
+msgstr "Vastaanottopaketit /s:"
 
-#: qcsrc/menu/xonotic/util.qc:532
-msgid "Key Hunt"
-msgstr "Avaimenmetsästys (Key Hunt)"
+#: qcsrc/menu/xonotic/dialog_settings_network.c:46
+msgid "HTTP downloads:"
+msgstr "HTTP lataukset:"
 
-#: qcsrc/menu/xonotic/util.qc:533
-msgid "Last Man Standing"
-msgstr "Viimeiseen mieheen (Last Man Standing)"
+#: qcsrc/menu/xonotic/dialog_settings_network.c:49
+msgid "Downloads:"
+msgstr "Lataukset:"
 
-#: qcsrc/menu/xonotic/util.qc:534
-msgid "Nexball"
-msgstr "Nexpallo (Nexball)"
+#: qcsrc/menu/xonotic/dialog_settings_network.c:53
+msgid "Speed (kB/s):"
+msgstr "Nopeus (kb/s)"
 
-#: qcsrc/menu/xonotic/util.qc:535
-msgid "Onslaught"
-msgstr "Suurtaistelu (Onslaught)"
+#: qcsrc/menu/xonotic/dialog_settings_network.c:57
+msgid "Client UDP port:"
+msgstr "Asiakkaan UDP portti"
 
-#: qcsrc/menu/xonotic/util.qc:536
-msgid "Race"
-msgstr "Kilpailu (RACE)"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:26
+msgid "Resolution:"
+msgstr "Näytön tarkkuus:"
 
-#: qcsrc/menu/xonotic/util.qc:537
-msgid "Race CTS"
-msgstr "Kilpailu CTS"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:29
+msgid "Font/UI size:"
+msgstr "Kirjainten/käyttöliittymän koko:"
 
-#: qcsrc/menu/xonotic/util.qc:538
-msgid "Runematch"
-msgstr "Riimu-ottelu (Runematch)"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:31
+msgid "SZ^Unreadable"
+msgstr "SZ^Miltein näkymätön"
 
-#: qcsrc/menu/xonotic/util.qc:539
-msgid "Team Deathmatch"
-msgstr "Joukkuemättö (Team Deatchmatch)"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:32
+msgid "SZ^Tiny"
+msgstr "SZ^Pikkuruinen"
 
-#: qcsrc/menu/xonotic/util.qc:558
-#, c-format
-msgid "@!#%'n Tuba Throwing"
-msgstr "@!#% tuubanheitto!"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:33
+msgid "SZ^Little"
+msgstr "SZ^Hyvin pieni"
 
-#: qcsrc/menu/xonotic/util.qc:599
-msgid "Background:"
-msgstr "Tausta:"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:34
+msgid "SZ^Small"
+msgstr "SZ^Pieni"
 
-#: qcsrc/menu/xonotic/util.qc:601 qcsrc/menu/xonotic/util.qc:617
-#: qcsrc/menu/xonotic/util.qc:626 qcsrc/menu/xonotic/util.qc:634
-#: qcsrc/menu/xonotic/util.qc:646
-msgid "Default"
-msgstr "Perusasetus"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:35
+msgid "SZ^Medium"
+msgstr "SZ^Keskikokoinen"
 
-#: qcsrc/menu/xonotic/util.qc:612
-msgid "Use default"
-msgstr "Käytä perusasetusta"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:36
+msgid "SZ^Large"
+msgstr "SZ^Suuri"
 
-#: qcsrc/menu/xonotic/util.qc:632
-msgid "Team Color:"
-msgstr "Joukkueen väri"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:37
+msgid "SZ^Huge"
+msgstr "SZ^Valtava"
 
-#: qcsrc/menu/xonotic/playermodel.c:174
-msgid "<no model found>"
-msgstr "<mallia ei löytynyt>"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:38
+msgid "SZ^Gigantic"
+msgstr "SZ^Jättiläismäinen"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:4
-msgid "Ammo Panel"
-msgstr "Ammuspaneeli"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:39
+msgid "SZ^Colossal"
+msgstr "SZ^Massiivinen"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:22
-msgid "Ammunition display:"
-msgstr "Ammuksien näyttö:"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:42
+msgid "Color depth:"
+msgstr "Värisävy:"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:25
-msgid "Show only current ammo type"
-msgstr "Näytä vain nykyinen ammustyyppi"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:45
+msgid "Full screen"
+msgstr "Kokoruutu"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:29
-#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:28
-#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:40
-#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:28
-#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:40
-msgid "Left"
-msgstr "Vasen"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:46
+msgid "Vertical Synchronization"
+msgstr "VSYNC"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:30
-#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:30
-#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:41
-#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:30
-#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:41
-msgid "Right"
-msgstr "Oikea"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:49
+msgid "Use OpenGL 2.0 shaders (GLSL)"
+msgstr "Käytä OpenGL 2.0 shaders-varjostuksia (GLSL)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:6
-msgid "Weapon settings"
-msgstr "Aseiden asetukset"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:52
+msgid "Use GLSL to handle color control"
+msgstr "Käytä GLSL:ää värien hallinnassa"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:29
-msgid "Weapon priority list:"
-msgstr "Aseiden prioriteetti:"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:56
+msgid "Vertex Buffer Objects (VBOs)"
+msgstr "Vertex Buffer Object (VBO)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:34
-msgid "Up"
-msgstr "Ylös"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:59
+msgid "VBO^Off"
+msgstr "VBO^Pois"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:37
-msgid "Down"
-msgstr "Alas"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:60
+msgid "Vertices, some Tris (compatible)"
+msgstr "Verteksit, vähän kolmioita (yhteensopivin)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:41
-msgid "Use priority list for weapon cycling"
-msgstr "Käytä prioriteettiä aseiden vaihdossa"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:63
+msgid "Vertices"
+msgstr "Verteksit"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:43
-msgid "Auto switch weapons on pickup"
-msgstr "Vaihda ase automaattisesti poimimisen jälkeen"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:64
+msgid "Vertices and Triangles"
+msgstr "Verteksit ja kolmiot"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:45
-msgid "Draw 1st person weapon model"
-msgstr "Piirrä ensimmäisen persoonan asemalli"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:67
+msgid "Depth first:"
+msgstr "Syvyys ensin (Depth First):"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:48
-msgid "Left align"
-msgstr "Vasen tasaus"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:69
+msgid "DF^Disabled"
+msgstr "DF^Pois"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:50
-msgid "Right align"
-msgstr "Oikea tasaus"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:70
+msgid "DF^World"
+msgstr "DF^Maailma"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:53
-msgid "Flip view horizontally"
-msgstr "Käännä näkymä horisontaalisesti"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:71
+msgid "DF^All"
+msgstr "DF^Kaikki"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:38
-msgid "Quality preset:"
-msgstr "Laadun esiasetus:"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:75
+msgid "Disable multithreaded OpenGL"
+msgstr "Ota monisäkeinen OpenGL pois päältä"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:41
-msgid "PRE^OMG!"
-msgstr "PRE^Nörtti"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:77
+msgid "Wait for GPU to finish each frame"
+msgstr "Anna näytönohjaimen viimeistellä jokainen ruutu"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:42
-msgid "PRE^Low"
-msgstr "PRE^Matala"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:80
+msgid "Brightness:"
+msgstr "Kirkkaus:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:43
-msgid "PRE^Medium"
-msgstr "PRE^Keskitaso"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:83
+msgid "Contrast:"
+msgstr "Kontrasti:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:44
-msgid "PRE^Normal"
-msgstr "PRE^Normaali"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:86
+msgid "Gamma:"
+msgstr "Gamma:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:45
-msgid "PRE^High"
-msgstr "PRE^Korkea"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:89
+msgid "Contrast boost:"
+msgstr "Kontrastin lisäys:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:46
-msgid "PRE^Ultra"
-msgstr "PRE^Hyvin korkea"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:92
+msgid "Saturation:"
+msgstr "Kylläisyys:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:48
-msgid "PRE^Ultimate"
-msgstr "PRE^Äärimmäinen"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:98
+msgid "LIT^Ambient:"
+msgstr "LIT^Ympäristö:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:52
-msgid "Geometry detail:"
-msgstr "Geometriset yksityiskohdat:"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:101
+msgid "Intensity:"
+msgstr "Intensiivisyys:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:54
-msgid "DET^Lowest"
-msgstr "DET^Matalin"
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:4
+msgid "Singleplayer"
+msgstr "Yksinpeli"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:55
-msgid "DET^Low"
-msgstr "DET^Matala"
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:59
+msgid "Instant action! (random map with bots)"
+msgstr "Suoraan taisteluun! (satunnainen kartta bottien kera)"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:56
-msgid "DET^Normal"
-msgstr "DET^Normaali"
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:80
+msgid "Start Singleplayer!"
+msgstr "Aloita yksinpeli!"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:57
-msgid "DET^Good"
-msgstr "DET^Hyvä"
+#: qcsrc/menu/xonotic/dialog_singleplayer_winner.c:4
+msgid "Winner"
+msgstr "Voittaja"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:58
-msgid "DET^Best"
-msgstr "DET^Paras"
+#: qcsrc/menu/xonotic/dialog_teamselect.c:5
+msgid "Team Selection"
+msgstr "Joukkueen valinta"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:59
-msgid "DET^Insane"
-msgstr "DET^Sekopäinen"
+#: qcsrc/menu/xonotic/dialog_teamselect.c:41
+msgid "join 'best' team (auto-select)"
+msgstr "liity 'parhaimpaan' joukkueeseen"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:62
-msgid "Antialiasing:"
-msgstr "Reunojenpehmennys (Antialiasing):"
+#: qcsrc/menu/xonotic/dialog_teamselect.c:45
+msgid "red"
+msgstr "punainen"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:64
-msgid "AA^Disabled"
-msgstr "AA^Pois päältä"
+#: qcsrc/menu/xonotic/dialog_teamselect.c:46
+msgid "blue"
+msgstr "sininen"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:65
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:103
-msgid "2x"
-msgstr "2x"
+#: qcsrc/menu/xonotic/dialog_teamselect.c:47
+msgid "yellow"
+msgstr "keltainen"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:66
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:104
-msgid "4x"
-msgstr "4x"
+#: qcsrc/menu/xonotic/dialog_teamselect.c:48
+msgid "pink"
+msgstr "pinkki"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:70
-msgid "Texture resolution:"
-msgstr "Tekstuurien tarkkuus:"
+#: qcsrc/menu/xonotic/dialog_teamselect.c:51
+msgid "spectate"
+msgstr "seuraa sivusta"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:73
-msgid "RES^Leet"
-msgstr "RES^Leet"
+#: qcsrc/menu/xonotic/mainwindow.c:35 qcsrc/menu/xonotic/mainwindow.c:38
+msgid "Do not press this button again!"
+msgstr "Älä paina enää näppäintä!"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:74
-msgid "RES^Lowest"
-msgstr "RES^Matalin"
+#: qcsrc/menu/xonotic/maplist.c:278
+msgid ""
+"Huh? Can't play this (m is NULL). Refiltering so this won't happen again.\n"
+msgstr ""
+"Höh? Tätä ei voida pelata (m on NULL). Uudelleensuodatetaan jottei vastaava "
+"enää toistuisi, anteeksi häiriö.\n"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:75
-msgid "RES^Low"
-msgstr "RES^Matala"
+#: qcsrc/menu/xonotic/maplist.c:286
+#, c-format
+msgid "%s's Xonotic Server"
+msgstr "%s Xonotic-palvelin"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:76
-msgid "RES^Normal"
-msgstr "RES^Normaali"
+#: qcsrc/menu/xonotic/maplist.c:291
+msgid ""
+"Huh? Can't play this (invalid game type). Refiltering so this won't happen "
+"again.\n"
+msgstr ""
+"Höh? Tätä ei voida pelata (epäkelpo pelityyppi). Uudelleensuodatetaan jottei "
+"vastaava enää toistuisi.\n"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:77
-msgid "RES^Good"
-msgstr "RES^Hyvä"
+#: qcsrc/menu/xonotic/playermodel.c:174
+msgid "<no model found>"
+msgstr "<mallia ei löytynyt>"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:78
-msgid "RES^Best"
-msgstr "RES^Paras"
+#: qcsrc/menu/xonotic/serverlist.c:185
+msgid "Remove"
+msgstr "Poista"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:91
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:94
-msgid "Avoid lossy texture compression"
-msgstr "Vältä häviöllistä tekstuurien pakkaamista"
+#: qcsrc/menu/xonotic/serverlist.c:187
+msgid "Bookmark"
+msgstr "Kirjanmerkki"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:100
-msgid "Anisotropy:"
-msgstr "Anisotropia:"
+#: qcsrc/menu/xonotic/serverlist.c:523
+msgid "Ping"
+msgstr "Viive"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:102
-msgid "ANISO^Disabled"
-msgstr "ANISO^Pois päältä"
+#: qcsrc/menu/xonotic/serverlist.c:524
+msgid "Host name"
+msgstr "Palvelimen nimi"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:105
-msgid "8x"
-msgstr "8x"
+#: qcsrc/menu/xonotic/serverlist.c:525
+msgid "Map"
+msgstr "Kartta"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:106
-msgid "16x"
-msgstr "16x"
+#: qcsrc/menu/xonotic/serverlist.c:526
+msgid "Type"
+msgstr "Tyyppi"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:110
-msgid "Particle quality:"
-msgstr "Kappaleiden laatu:"
+#: qcsrc/menu/xonotic/serverlist.c:527
+msgid "Players"
+msgstr "Pelaajat"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:113
-msgid "Particle distance:"
-msgstr "Kappaleiden etäisyys:"
+#: qcsrc/menu/xonotic/skinlist.c:105
+msgid "<TITLE>"
+msgstr "<TITLE>"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:117
-msgid "Decals"
-msgstr "Siirtokuvat"
+#: qcsrc/menu/xonotic/skinlist.c:106
+msgid "<AUTHOR>"
+msgstr "<AUTHOR>"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:120
-msgid "Distance:"
-msgstr "Etäisyys:"
+#: qcsrc/menu/xonotic/skinlist.c:163
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:126
-msgid "Time:"
-msgstr "Aika:"
+#: qcsrc/menu/xonotic/slider_decibels.c:50
+msgid "VOL^OFF"
+msgstr "VOL^OFF"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:132
-msgid "Use lightmaps"
-msgstr "Käytä valaistuksia"
+#: qcsrc/menu/xonotic/slider_decibels.c:52
+msgid "VOL^MAX"
+msgstr "VOL^MAX"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:133
-msgid "Deluxe mapping"
-msgstr "Pikselikohtainen valaistus"
+#: qcsrc/menu/xonotic/slider_decibels.c:53
+#, c-format
+msgid "%s dB"
+msgstr "%s dB"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:135
-msgid "Gloss"
-msgstr "Kiilto"
+#: qcsrc/menu/xonotic/slider_resolution.c:65
+#, c-format
+msgid "%dx%d"
+msgstr "%dx%d"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:138
-msgid "Offset mapping"
-msgstr "Korosta tekstuurien kuhmuja"
+#: qcsrc/menu/xonotic/util.qc:270
+#, c-format
+msgid "Received HTTP request data for an invalid id %d.\n"
+msgstr "Vastaanotettiin epäkelpo HTTP datapyyntö: %d.\n"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:140
-msgid "Relief mapping"
-msgstr "Tehokas tekstuurien kuhmujen korostus"
+#: qcsrc/menu/xonotic/util.qc:285
+#, c-format
+msgid "error receiving update notification: status is %d\n"
+msgstr "virhe vastaanottaessa päivitystiedotetta: tilanne %d\n"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:143
-msgid "Reflections:"
-msgstr "Heijastukset:"
+#: qcsrc/menu/xonotic/util.qc:290
+msgid "error: received HTML instead of an update notification\n"
+msgstr "virhe: vastaanotettiin HTML päivitystiedotteen asemesta\n"
+
+#: qcsrc/menu/xonotic/util.qc:295
+msgid "error: received carriage returns from update notification server\n"
+msgstr "virhe: vastaanotettiin tyhjää dataa päivitystiedotepalvelimelta\n"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:146
-msgid "Blurred"
-msgstr "Sumea"
+#: qcsrc/menu/xonotic/util.qc:316
+#, c-format
+msgid ""
+"Update can be downloaded at:\n"
+"%s\n"
+msgstr ""
+"Päivitys on ladattavissa:\n"
+"%s\n"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:147
-msgid "REFL^Good"
-msgstr "REFL^Hyvä"
+#: qcsrc/menu/xonotic/util.qc:337
+msgid "Autogenerating mapinfo for newly added maps..."
+msgstr ""
+"Luodaan automaattisesti karttatietoja vastikään lisätyille kartoille..."
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:148
-msgid "Sharp"
-msgstr "Terävä"
+#: qcsrc/menu/xonotic/util.qc:367
+#, c-format
+msgid "^1%s TEST BUILD"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:153
-msgid "Show surfaces"
-msgstr "Näytä pinnat"
+#: qcsrc/menu/xonotic/util.qc:432
+#, c-format
+msgid "Update to %s now!"
+msgstr "Päivitä versioon %s nyt!"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:155
-msgid "No dynamic lighting"
-msgstr "Ei dynaamista valaistusta"
+#: qcsrc/menu/xonotic/util.qc:509
+msgid ""
+"^1ERROR: Texture compression is required but not supported.\n"
+"^1Expect visual problems.\n"
+msgstr ""
+"^1VIRHE: Tekstuurien pakkaus vaaditaan mutta ei ole tuettuna.\n"
+"^1Grafiikkavirheitä odotettavissa.\n"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:157
-msgid "Flash blend approximation"
-msgstr "Yksinkertaiset valot"
+#: qcsrc/menu/xonotic/util.qc:531
+msgid "Arena"
+msgstr "Areena"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:159
-msgid "Realtime dynamic lighting"
-msgstr "Reaaliaikainen dynaaminen valaitus"
+#: qcsrc/menu/xonotic/util.qc:532
+msgid "Assault"
+msgstr "Rynnäkkö (Assault)"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:160
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:164
-msgid "Shadows"
-msgstr "Varjot"
+#: qcsrc/menu/xonotic/util.qc:533
+msgid "Capture The Flag"
+msgstr "Lipunryöstö (CTF)"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:163
-msgid "Realtime world lighting"
-msgstr "Reaaliaikainen ympäristön valaistus"
+#: qcsrc/menu/xonotic/util.qc:534
+msgid "Clan Arena"
+msgstr "Klaaniareena (Clan Arena)"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:168
-msgid "Use normal maps"
-msgstr "Käytä tekstuurien suunnattua varjostamista"
+#: qcsrc/menu/xonotic/util.qc:535
+msgid "Deathmatch"
+msgstr "Mättö (Deathmatch)"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:170
-msgid "Soft shadows"
-msgstr "Pehmeät varjot"
+#: qcsrc/menu/xonotic/util.qc:536
+msgid "Domination"
+msgstr "Hallinta (Domination)"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:173
-msgid "Coronas"
-msgstr "Valokehät"
+#: qcsrc/menu/xonotic/util.qc:537
+msgid "Freeze Tag"
+msgstr "Pakkashippa (Freeze Tag)"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:175
-msgid "Bloom"
-msgstr "Hehku"
+#: qcsrc/menu/xonotic/util.qc:538
+msgid "Keepaway"
+msgstr "Pakomatka (Keepaway)"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:177
-msgid "High Dynamic Range (HDR)"
-msgstr "HDR"
+#: qcsrc/menu/xonotic/util.qc:539
+msgid "Key Hunt"
+msgstr "Avaimenmetsästys (Key Hunt)"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:181
-msgid "Motion blur:"
-msgstr "Liikesumeus:"
+#: qcsrc/menu/xonotic/util.qc:540
+msgid "Last Man Standing"
+msgstr "Viimeiseen mieheen (Last Man Standing)"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:187
-msgid "Damage blur:"
-msgstr "Vahinkosumeus:"
+#: qcsrc/menu/xonotic/util.qc:541
+msgid "Nexball"
+msgstr "Nexpallo (Nexball)"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:26
-msgid "Client-side movement prediction"
-msgstr "Asiakasohjelman liikkeen ennustus"
+#: qcsrc/menu/xonotic/util.qc:542
+msgid "Onslaught"
+msgstr "Suurtaistelu (Onslaught)"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:30
-msgid "Show netgraph"
-msgstr "Näytä verkkograafi"
+#: qcsrc/menu/xonotic/util.qc:543
+msgid "Race"
+msgstr "Kilpailu (RACE)"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:33
-msgid "Network speed:"
-msgstr "Verkon nopeus:"
+#: qcsrc/menu/xonotic/util.qc:544
+msgid "Race CTS"
+msgstr "Kilpailu CTS"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:35
-msgid "56k"
-msgstr "56k"
+#: qcsrc/menu/xonotic/util.qc:545
+msgid "Runematch"
+msgstr "Riimu-ottelu (Runematch)"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:36
-msgid "ISDN"
-msgstr "ISDN"
+#: qcsrc/menu/xonotic/util.qc:546
+msgid "Team Deathmatch"
+msgstr "Joukkuemättö (Team Deatchmatch)"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:37
-msgid "Slow ADSL"
-msgstr "Hidas ASL"
+#: qcsrc/menu/xonotic/util.qc:565
+#, c-format
+msgid "@!#%'n Tuba Throwing"
+msgstr "@!#% tuubanheitto!"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:38
-msgid "Fast ADSL"
-msgstr "Nopea ADSL"
+#: qcsrc/menu/xonotic/util.qc:583
+msgid "Background:"
+msgstr "Tausta:"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:39
-msgid "Broadband"
-msgstr "Laajakaista"
+#: qcsrc/menu/xonotic/util.qc:585 qcsrc/menu/xonotic/util.qc:601
+#: qcsrc/menu/xonotic/util.qc:610 qcsrc/menu/xonotic/util.qc:618
+#: qcsrc/menu/xonotic/util.qc:630
+msgid "Default"
+msgstr "Perusasetus"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:42
-msgid "Input packets/s:"
-msgstr "Vastaanottopaketit /s:"
+#: qcsrc/menu/xonotic/util.qc:596
+msgid "Use default"
+msgstr "Käytä perusasetusta"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:46
-msgid "HTTP downloads:"
-msgstr "HTTP lataukset:"
+#: qcsrc/menu/xonotic/util.qc:616
+msgid "Team Color:"
+msgstr "Joukkueen väri"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:49
-msgid "Downloads:"
-msgstr "Lataukset:"
+#: qcsrc/menu/xonotic/util.qh:49
+msgid "Enable panel"
+msgstr "Ota paneeli käyttöön"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:53
-msgid "Speed (kB/s):"
-msgstr "Nopeus (kb/s)"
+#: qcsrc/server/w_crylink.qc:2
+msgid "Crylink"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:57
-msgid "Client UDP port:"
-msgstr "Asiakkaan UDP portti"
+#: qcsrc/server/w_crylink.qc:664
+#, c-format
+msgid "%s succeeded at self-destructing themself with the Crylink"
+msgstr ""
 
-#: qcsrc/menu/xonotic/serverlist.c:357
-msgid "Remove"
-msgstr "Poista"
+#: qcsrc/server/w_crylink.qc:669
+#, c-format
+msgid "%s could not hide from %s's Crylink"
+msgstr ""
 
-#: qcsrc/menu/xonotic/serverlist.c:359
-msgid "Bookmark"
-msgstr "Kirjanmerkki"
+#: qcsrc/server/w_crylink.qc:671
+#, c-format
+msgid "%s was too close to %s's Crylink"
+msgstr ""
 
-#: qcsrc/menu/xonotic/serverlist.c:515
-msgid "Ping"
-msgstr "Viive"
+#: qcsrc/server/w_crylink.qc:673
+#, c-format
+msgid "%s took a close look at %s's Crylink"
+msgstr ""
 
-#: qcsrc/menu/xonotic/serverlist.c:516
-msgid "Host name"
-msgstr "Palvelimen nimi"
+#: qcsrc/server/w_electro.qc:2
+msgid "Electro"
+msgstr ""
 
-#: qcsrc/menu/xonotic/serverlist.c:517
-msgid "Map"
-msgstr "Kartta"
+#: qcsrc/server/w_electro.qc:571
+#, c-format
+msgid "%s could not remember where they put plasma"
+msgstr ""
 
-#: qcsrc/menu/xonotic/serverlist.c:518
-msgid "Type"
-msgstr "Tyyppi"
+#: qcsrc/server/w_electro.qc:573
+#, c-format
+msgid "%s played with plasma"
+msgstr ""
 
-#: qcsrc/menu/xonotic/serverlist.c:519
-msgid "Players"
-msgstr "Pelaajat"
+#: qcsrc/server/w_electro.qc:580
+#, c-format
+msgid "%s just noticed %s's blue ball"
+msgstr ""
 
-#: qcsrc/menu/xonotic/maplist.c:278
-msgid ""
-"Huh? Can't play this (m is NULL). Refiltering so this won't happen again.\n"
+#: qcsrc/server/w_electro.qc:582
+#, c-format
+msgid "%s got in touch with %s's blue ball"
 msgstr ""
-"Höh? Tätä ei voida pelata (m on NULL). Uudelleensuodatetaan jottei vastaava enää toistuisi, anteeksi häiriö.\n"
 
-#: qcsrc/menu/xonotic/maplist.c:286
+#: qcsrc/server/w_electro.qc:587
 #, c-format
-msgid "%s's Xonotic Server"
-msgstr "%s Xonotic-palvelin"
+msgid "%s felt the electrifying air of %s's combo"
+msgstr ""
 
-#: qcsrc/menu/xonotic/maplist.c:291
-msgid ""
-"Huh? Can't play this (invalid game type). Refiltering so this won't happen "
-"again.\n"
+#: qcsrc/server/w_electro.qc:589
+#, c-format
+msgid "%s got too close to %s's blue beam"
 msgstr ""
-"Höh? Tätä ei voida pelata (epäkelpo pelityyppi). Uudelleensuodatetaan jottei "
-"vastaava enää toistuisi.\n"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:4
-msgid "Demo"
-msgstr "Demo"
+#: qcsrc/server/w_electro.qc:591
+#, c-format
+msgid "%s was blasted by %s's blue beam"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:28
-msgid "Record demos while playing"
-msgstr "Tallenna demoja pelin aikana"
+#: qcsrc/server/w_fireball.qc:2
+#, fuzzy
+msgid "Fireball"
+msgstr "Nexpallo (Nexball)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:43
-msgid "Timedemo"
-msgstr "Aikademo"
+#: qcsrc/server/w_fireball.qc:417
+#, c-format
+msgid "%s forgot about some firemine"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:4
-msgid "Powerups Panel"
-msgstr "Tehonlisäyspaneeli"
+#: qcsrc/server/w_fireball.qc:419 qcsrc/server/w_hlac.qc:240
+#, c-format
+msgid "%s should have used a smaller gun"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:22
-#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:22
-msgid "Enable status bar"
-msgstr "Ota tilapalkki käyttöön"
+#: qcsrc/server/w_fireball.qc:426
+#, c-format
+msgid "%s tried to catch %s's firemine"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:24
-#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:24
-msgid "Status bar alignment:"
-msgstr "Tilapalkin kohdistus:"
+#: qcsrc/server/w_fireball.qc:428
+#, c-format
+msgid "%s fatefully ignored %s's firemine"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:32
-#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:42
-#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:32
-#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:42
-msgid "Inward"
-msgstr "Sisäänpäin"
+#: qcsrc/server/w_fireball.qc:435
+#, c-format
+msgid "%s could not hide from %s's fireball"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:34
-#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:43
-#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:34
-#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:43
-msgid "Outward"
-msgstr "Ulospäin"
+#: qcsrc/server/w_fireball.qc:437
+#, c-format
+msgid "%s saw the pretty lights of %s's fireball"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:37
-#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:37
-msgid "Icon alignment:"
-msgstr "Kuvakkeen kohdistus:"
+#: qcsrc/server/w_fireball.qc:440
+#, c-format
+msgid "%s got too close to %s's fireball"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:45
-msgid "Flip strength and shield positions"
-msgstr "Käännä voimakkuuden ja suojauksen sijainnit"
+#: qcsrc/server/w_fireball.qc:442
+#, c-format
+msgid "%s tasted %s's fireball"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:27
-msgid "Master:"
-msgstr "Pääkanava:"
+#: qcsrc/server/w_grenadelauncher.qc:2
+msgid "Mortar"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:33
-msgid "Music:"
-msgstr "Musiikki:"
+#: qcsrc/server/w_grenadelauncher.qc:378
+#, c-format
+msgid "%s tried out his own grenade"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:40
-msgid "VOL^Ambient:"
-msgstr "VOL^Ympäristö:"
+#: qcsrc/server/w_grenadelauncher.qc:380
+#, c-format
+msgid "%s detonated"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:48
-msgid "Info:"
-msgstr "Tiedoitukset:"
+#: qcsrc/server/w_grenadelauncher.qc:386
+#, c-format
+msgid "%s didn't see %s's grenade"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:57
-msgid "Items:"
-msgstr "Esineet:"
+#: qcsrc/server/w_grenadelauncher.qc:388
+#, c-format
+msgid "%s almost dodged %s's grenade"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:65
-msgid "Pain:"
-msgstr "Kipu:"
+#: qcsrc/server/w_grenadelauncher.qc:390
+#, c-format
+msgid "%s ate %s's grenade"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:73
-msgid "Player:"
-msgstr "Pelaaja:"
+#: qcsrc/server/w_hagar.qc:2
+msgid "Hagar"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:81
-msgid "Shots:"
-msgstr "Laukaukset:"
+#: qcsrc/server/w_hagar.qc:209 qcsrc/server/w_seeker.qc:655
+#, c-format
+msgid "%s played with tiny rockets"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:88
-msgid "Voice:"
-msgstr "Puhe:"
+#: qcsrc/server/w_hagar.qc:213
+#, c-format
+msgid "%s hoped %s's missiles wouldn't bounce"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:96
-msgid "Weapons:"
-msgstr "Aseet:"
+#: qcsrc/server/w_hagar.qc:215 qcsrc/server/w_seeker.qc:661
+#, c-format
+msgid "%s was pummeled by %s"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:103
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:161
-msgid "Frequency:"
-msgstr "Taajuus:"
+#: qcsrc/server/w_hlac.qc:2
+msgid "Heavy Laser Assault Cannon"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:105
-msgid "8 kHz"
-msgstr "8 kHz"
+#: qcsrc/server/w_hlac.qc:242
+#, c-format
+msgid "%s was cut down by %s"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:106
-msgid "11.025 kHz"
-msgstr "11.025 kHz"
+#: qcsrc/server/w_hook.qc:2
+#, fuzzy
+msgid "Grappling Hook"
+msgstr "Köysi"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:107
-msgid "16 kHz"
-msgstr "16 kHz"
+#: qcsrc/server/w_hook.qc:266 qcsrc/server/w_minstanex.qc:290
+#: qcsrc/server/w_nex.qc:267 qcsrc/server/w_porto.qc:296
+#: qcsrc/server/w_shotgun.qc:203 qcsrc/server/w_uzi.qc:317
+#, c-format
+msgid "%s did the impossible"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:108
-msgid "22.05 kHz"
-msgstr "22.05 Khz"
+#: qcsrc/server/w_hook.qc:268
+#, c-format
+msgid "%s has run into %s's gravity bomb"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:109
-msgid "24 kHz"
-msgstr "24 kHz"
+#: qcsrc/server/w_laser.qc:2
+msgid "Laser"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:110
-msgid "32 kHz"
-msgstr "32 kHz"
+#: qcsrc/server/w_laser.qc:305
+#, c-format
+msgid "%s lasered themself to hell"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:111
-msgid "44.1 kHz"
-msgstr "44.1 kHz"
+#: qcsrc/server/w_laser.qc:309
+#, c-format
+msgid "%s was cut in half by %s's gauntlet"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:112
-msgid "48 kHz"
-msgstr "48 kHz"
+#: qcsrc/server/w_laser.qc:311
+#, c-format
+msgid "%s was lasered to death by %s"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:115
-msgid "Channels:"
-msgstr "Kanavat:"
+#: qcsrc/server/w_minelayer.qc:2
+#, fuzzy
+msgid "Mine Layer"
+msgstr "Yksinpeli"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:117
-msgid "Mono"
-msgstr "Mono"
+#: qcsrc/server/w_minelayer.qc:495 qcsrc/server/w_rocketlauncher.qc:500
+#, c-format
+msgid "%s exploded"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:118
-msgid "Stereo"
-msgstr "Stereo"
+#: qcsrc/server/w_minelayer.qc:499
+#, c-format
+msgid "%s got too close to %s's mine"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:119
-msgid "2.1"
-msgstr "2.1"
+#: qcsrc/server/w_minelayer.qc:501
+#, c-format
+msgid "%s almost dodged %s's mine"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:120
-msgid "4"
-msgstr "4"
+#: qcsrc/server/w_minelayer.qc:503
+#, c-format
+msgid "%s stepped on %s's mine"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:121
-msgid "5"
+#: qcsrc/server/w_minstanex.qc:2
+#, fuzzy
+msgid "MinstaNex"
+msgstr "MinstaGib"
+
+#: qcsrc/server/w_minstanex.qc:292 qcsrc/server/w_nex.qc:269
+#, c-format
+msgid "%s has been vaporized by %s"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:122
-msgid "5.1"
-msgstr "5.1"
+#: qcsrc/server/w_nex.qc:2
+#, fuzzy
+msgid "Nex"
+msgstr "Nexpallo (Nexball)"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:123
-msgid "6.1"
-msgstr "6.1"
+#: qcsrc/server/w_porto.qc:2
+msgid "Port-O-Launch"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:124
-msgid "7.1"
-msgstr "7.1"
+#: qcsrc/server/w_porto.qc:298
+#, c-format
+msgid "%s felt %s doing the impossible to him"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:128
-msgid "Swap Stereo"
-msgstr "Vaihda stereoäänilähteiden paikkaa"
+#: qcsrc/server/w_rocketlauncher.qc:2
+msgid "Rocket Launcher"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:132
-msgid "Headphone friendly mode"
-msgstr "Kuulokeystävällinen tila"
+#: qcsrc/server/w_rocketlauncher.qc:504
+#, c-format
+msgid "%s got too close to %s's rocket"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:136
-msgid "Spatial voices:"
-msgstr "Tilanneäänet:"
+#: qcsrc/server/w_rocketlauncher.qc:506
+#, c-format
+msgid "%s almost dodged %s's rocket"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:137
-msgid "VOCS^None"
-msgstr "VOCS^Ei mitään"
+#: qcsrc/server/w_rocketlauncher.qc:508
+#, c-format
+msgid "%s ate %s's rocket"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:138
-msgid "VOCS^Taunts"
-msgstr "VOCS^Huudahdukset"
+#: qcsrc/server/w_seeker.qc:2
+msgid "T.A.G. Seeker"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:139
-msgid "VOCS^All"
-msgstr "VOCS^Kaikki"
+#: qcsrc/server/w_seeker.qc:659
+#, c-format
+msgid "%s was tagged by %s"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:142
-msgid "Taunt range:"
-msgstr "Huudahduksen kantama"
+#: qcsrc/server/w_shotgun.qc:2
+#, fuzzy
+msgid "Shotgun"
+msgstr "Laukaukset:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:145
-msgid "RNG^Very short"
-msgstr "RNG^Hyvin lyhyt"
+#: qcsrc/server/w_shotgun.qc:207
+#, c-format
+msgid "%2$s ^7slapped %1$s ^7around a bit with a large ^2shotgun"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:146
-msgid "RNG^Short"
-msgstr "RNG^Lyhyt"
+#: qcsrc/server/w_shotgun.qc:209
+#, c-format
+msgid "%s was gunned by %s"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:147
-msgid "RNG^Normal"
-msgstr "RNG^Normaali"
+#: qcsrc/server/w_sniperrifle.qc:2
+msgid "Sniper Rifle"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:148
-msgid "RNG^Long"
-msgstr "RNG^Pitkä"
+#: qcsrc/server/w_sniperrifle.qc:229
+#, c-format
+msgid "%s shot themself automatically"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:149
-msgid "RNG^Full"
-msgstr "RNG^Täysi"
+#: qcsrc/server/w_sniperrifle.qc:231
+#, c-format
+msgid "%s sniped themself somehow"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:156
-msgid "Automatic taunts"
-msgstr "Automaattiset huudahdukset"
+#: qcsrc/server/w_sniperrifle.qc:238
+#, c-format
+msgid "%s failed to hide from %s's bullet hail"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:165
-msgid "Time warning:"
-msgstr "Aikavaroitus:"
+#: qcsrc/server/w_sniperrifle.qc:240
+#, c-format
+msgid "%s died in %s's bullet hail"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:167
-msgid "WRN^None"
-msgstr "WRN^Ei mitään"
+#: qcsrc/server/w_sniperrifle.qc:247
+#, c-format
+msgid "%s failed to hide from %s's rifle"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:168
-msgid "1 minute"
-msgstr "1 minuutti"
+#: qcsrc/server/w_sniperrifle.qc:252
+#, c-format
+msgid "%s got hit in the head by %s"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:169
-msgid "5 minutes"
-msgstr "5 minuuttia"
+#: qcsrc/server/w_sniperrifle.qc:254 qcsrc/server/w_uzi.qc:321
+#, c-format
+msgid "%s was sniped by %s"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:170
-msgid "WRN^Both"
-msgstr "WRN^Molemmat"
+#: qcsrc/server/w_tuba.qc:2
+#, fuzzy, c-format
+msgid "@!#%'n Tuba"
+msgstr "@!#% tuubanheitto!"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:173
-msgid "Hit indicator"
-msgstr "Osumailmaisin"
+#: qcsrc/server/w_tuba.qc:263
+#, c-format
+msgid "%s hurt his own ears with the @!#%%'n Tuba"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:175
-msgid "Menu sounds"
-msgstr "Valikon äänet"
+#: qcsrc/server/w_tuba.qc:267
+#, c-format
+msgid "%s died of %s's great playing on the @!#%%'n Tuba"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer.c:4
-msgid "Multiplayer"
-msgstr "Moninpeli"
+#: qcsrc/server/w_uzi.qc:2
+msgid "Machine Gun"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer.c:18
-msgid "Servers"
-msgstr "Palvelimet"
+#: qcsrc/server/w_uzi.qc:323
+#, c-format
+msgid "%s was riddled full of holes by %s"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer.c:20
-msgid "Demos"
-msgstr "Demot"
+#~ msgid "Waypoint settings:"
+#~ msgstr "Välimatkojen asetukset:"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:4
-msgid "Health/Armor Panel"
-msgstr "Elämä/panssaripaneeli"
+#~ msgid ""
+#~ "Please answer a few initial questions to enhance the game experience."
+#~ msgstr ""
+#~ "Ole hyvä ja vastaa muutamaan alustavaan kysymykseen parantaaksesi "
+#~ "pelikokemustasi."
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:45
-msgid "Flip health and armor positions"
-msgstr "Vaihda elämän ja panssarin paikkaa"
+#~ msgid "%d/%d"
+#~ msgstr "%d/%d"
index 031125cb192a6dc4165899690e82d5fa45fbf387..10de090431153f64e0b0f5717ebf8ff353a5ea39 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Xonotic 0.1preview\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-02-07 07:50+0100\n"
+"POT-Creation-Date: 2011-04-30 10:07+0200\n"
 "PO-Revision-Date: 2011-03-09 15:48-0500\n"
 "Last-Translator: Maxime Paradis <taximus.micro@gmail.com>\n"
 "Language-Team: French <kde-i18n-doc@kde.org>\n"
@@ -73,8 +73,8 @@ msgid "custom"
 msgstr "personnalisé"
 
 #: qcsrc/menu/menu.qc:29
-#, c-format
-msgid "^4MQC Build information: %s\n"
+#, fuzzy, c-format
+msgid "^4MQC Build information: ^1%s\n"
 msgstr "^4MQC Build information : %s (français)\n"
 
 #: qcsrc/menu/xonotic/campaign.c:284
@@ -336,7 +336,7 @@ msgstr "Mini-carte:"
 #: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:32
 #: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:43
 #: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:82
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:151
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:154
 #: qcsrc/menu/xonotic/util.qc:608
 msgid "Alpha:"
 msgstr "Opacité:"
@@ -1012,11 +1012,11 @@ msgstr "Pause"
 msgid "Address:"
 msgstr "Adresse:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:65
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:67
 msgid "Info..."
 msgstr "Info..."
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:70
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:72
 #: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:317
 msgid "Join!"
 msgstr "Joindre !"
@@ -1158,7 +1158,7 @@ msgid "Crosshair:"
 msgstr "Viseur:"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:111
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:143
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:139
 msgid "Per weapon"
 msgstr "Par arme"
 
@@ -1174,35 +1174,44 @@ msgstr "Opacité viseur:"
 msgid "Crosshair color:"
 msgstr "Couleur viseur:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:145
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:140
+msgid "By health"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:143
+#, fuzzy
+msgid "Custom"
+msgstr "personnalisé"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:148
 msgid "Enable center dot"
 msgstr "Activer point central"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:148
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:151
 msgid "Size:"
 msgstr "Taille:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:155
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:158
 msgid "Hit test:"
 msgstr "Détection toucher:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:156
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:159
 msgid "HTST^None"
 msgstr "Aucun"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:157
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:160
 msgid "TrueAim"
 msgstr "TrueAim"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:158
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:161
 msgid "Enemies"
 msgstr "Ennemis"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:161
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:164
 msgid "Waypoints setup..."
 msgstr "Paramètres Waypoints..."
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:167
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:169
 msgid "Enter HUD editor"
 msgstr "Éditer l'interface"
 
@@ -1222,35 +1231,35 @@ msgstr "Personnalisé"
 msgid "MDL^All"
 msgstr "Tout"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:179
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:180
 msgid "Disable gore effects"
 msgstr "Désactiver effets gore"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:181
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:182
 msgid "Gibs:"
 msgstr "Gibs:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:183
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:184
 msgid "GIBS^None"
 msgstr "Aucun"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:184
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:185
 msgid "GIBS^Few"
 msgstr "Quelques"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:185
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:186
 msgid "GIBS^Many"
 msgstr "Plusieurs"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:186
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:187
 msgid "GIBS^Lots"
 msgstr "Beaucoup"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:190
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:191
 msgid "Damage splash:"
 msgstr "Effet santé faible:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:194
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:195
 #: qcsrc/menu/xonotic/dialog_settings_audio.c:178
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:194
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:30
@@ -2073,7 +2082,8 @@ msgid "Use GLSL to handle color control"
 msgstr "Utiliser GLSL pour gérer les couleurs"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:56
-msgid "Vertex Buffer Objects (VBOs)\"ourd"
+#, fuzzy
+msgid "Vertex Buffer Objects (VBOs)"
 msgstr "Objets en tampon mémoire (VBOs)"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:59
@@ -2220,31 +2230,31 @@ msgstr ""
 msgid "<no model found>"
 msgstr "<modèle non trouvé>"
 
-#: qcsrc/menu/xonotic/serverlist.c:360
+#: qcsrc/menu/xonotic/serverlist.c:185
 msgid "Remove"
 msgstr "Supprimer"
 
-#: qcsrc/menu/xonotic/serverlist.c:362
+#: qcsrc/menu/xonotic/serverlist.c:187
 msgid "Bookmark"
 msgstr "Marque-page"
 
-#: qcsrc/menu/xonotic/serverlist.c:518
+#: qcsrc/menu/xonotic/serverlist.c:523
 msgid "Ping"
 msgstr "Latence"
 
-#: qcsrc/menu/xonotic/serverlist.c:519
+#: qcsrc/menu/xonotic/serverlist.c:524
 msgid "Host name"
 msgstr "Nom d'Hôte"
 
-#: qcsrc/menu/xonotic/serverlist.c:520
+#: qcsrc/menu/xonotic/serverlist.c:525
 msgid "Map"
 msgstr "Carte"
 
-#: qcsrc/menu/xonotic/serverlist.c:521
+#: qcsrc/menu/xonotic/serverlist.c:526
 msgid "Type"
 msgstr "Mode"
 
-#: qcsrc/menu/xonotic/serverlist.c:522
+#: qcsrc/menu/xonotic/serverlist.c:527
 msgid "Players"
 msgstr "Joueurs"
 
@@ -2314,6 +2324,11 @@ msgstr ""
 msgid "Autogenerating mapinfo for newly added maps..."
 msgstr "Génération des mapinfo pour les nouvelles cartes ajoutées..."
 
+#: qcsrc/menu/xonotic/util.qc:367
+#, c-format
+msgid "^1%s TEST BUILD"
+msgstr ""
+
 #: qcsrc/menu/xonotic/util.qc:432
 #, c-format
 msgid "Update to %s now!"
@@ -2422,22 +2437,22 @@ msgstr "Activer ce panneau"
 msgid "Crylink"
 msgstr "Crylink"
 
-#: qcsrc/server/w_crylink.qc:645
+#: qcsrc/server/w_crylink.qc:664
 #, c-format
 msgid "%s succeeded at self-destructing themself with the Crylink"
 msgstr "%s a réussi à se suicider avec le Crylink"
 
-#: qcsrc/server/w_crylink.qc:650
+#: qcsrc/server/w_crylink.qc:669
 #, c-format
 msgid "%s could not hide from %s's Crylink"
 msgstr "%s n'a pas pu se cacher du Crylink de %s"
 
-#: qcsrc/server/w_crylink.qc:652
+#: qcsrc/server/w_crylink.qc:671
 #, c-format
 msgid "%s was too close to %s's Crylink"
 msgstr "%s a été trop près du Crylink de %s"
 
-#: qcsrc/server/w_crylink.qc:654
+#: qcsrc/server/w_crylink.qc:673
 #, c-format
 msgid "%s took a close look at %s's Crylink"
 msgstr "%s a voulu voir se qui se trouvait dans le Crylink de %s"
@@ -2446,37 +2461,37 @@ msgstr "%s a voulu voir se qui se trouvait dans le Crylink de %s"
 msgid "Electro"
 msgstr "Electro"
 
-#: qcsrc/server/w_electro.qc:503
+#: qcsrc/server/w_electro.qc:571
 #, c-format
 msgid "%s could not remember where they put plasma"
 msgstr "%s ne se souvenait pas où il a tiré du plasma"
 
-#: qcsrc/server/w_electro.qc:505
+#: qcsrc/server/w_electro.qc:573
 #, c-format
 msgid "%s played with plasma"
 msgstr "%s a joué avec du plasma"
 
-#: qcsrc/server/w_electro.qc:512
+#: qcsrc/server/w_electro.qc:580
 #, c-format
 msgid "%s just noticed %s's blue ball"
 msgstr "%s vient de remarquer la boule plasma de %s"
 
-#: qcsrc/server/w_electro.qc:514
+#: qcsrc/server/w_electro.qc:582
 #, c-format
 msgid "%s got in touch with %s's blue ball"
 msgstr "%s s'est fait toucher par la boule plasma de %s"
 
-#: qcsrc/server/w_electro.qc:519
+#: qcsrc/server/w_electro.qc:587
 #, c-format
 msgid "%s felt the electrifying air of %s's combo"
 msgstr "%s se sent électrisé par le combo de %s"
 
-#: qcsrc/server/w_electro.qc:521
+#: qcsrc/server/w_electro.qc:589
 #, c-format
 msgid "%s got too close to %s's blue beam"
 msgstr "%s a été trop près du rayon plasma de %s"
 
-#: qcsrc/server/w_electro.qc:523
+#: qcsrc/server/w_electro.qc:591
 #, c-format
 msgid "%s was blasted by %s's blue beam"
 msgstr "%s a été désintégré à cause du rayon plasma de %s"
@@ -2486,42 +2501,42 @@ msgstr "%s a été désintégré à cause du rayon plasma de %s"
 msgid "Fireball"
 msgstr "Fireball"
 
-#: qcsrc/server/w_fireball.qc:392
+#: qcsrc/server/w_fireball.qc:417
 #, c-format
 msgid "%s forgot about some firemine"
 msgstr "%s n'a pas étudié la combustion des boules de feu"
 
-#: qcsrc/server/w_fireball.qc:394 qcsrc/server/w_hlac.qc:223
+#: qcsrc/server/w_fireball.qc:419 qcsrc/server/w_hlac.qc:240
 #, c-format
 msgid "%s should have used a smaller gun"
 msgstr "%s aurait dû utiliser une arme plus petite"
 
-#: qcsrc/server/w_fireball.qc:401
+#: qcsrc/server/w_fireball.qc:426
 #, c-format
 msgid "%s tried to catch %s's firemine"
 msgstr "%s a pensé que la boule de feu de %s était un ballon de football"
 
-#: qcsrc/server/w_fireball.qc:403
+#: qcsrc/server/w_fireball.qc:428
 #, c-format
 msgid "%s fatefully ignored %s's firemine"
 msgstr "%s a ignoré la boule de feu de %s"
 
-#: qcsrc/server/w_fireball.qc:410
+#: qcsrc/server/w_fireball.qc:435
 #, c-format
 msgid "%s could not hide from %s's fireball"
 msgstr "%s n'a pas réussi à se cacher de la boule de feu de %s"
 
-#: qcsrc/server/w_fireball.qc:412
+#: qcsrc/server/w_fireball.qc:437
 #, c-format
 msgid "%s saw the pretty lights of %s's fireball"
 msgstr "%s a vu les belles lumières de la boule de feu de %s"
 
-#: qcsrc/server/w_fireball.qc:415
+#: qcsrc/server/w_fireball.qc:440
 #, c-format
 msgid "%s got too close to %s's fireball"
 msgstr "%s s'est trop approché de la boule de feu de %s"
 
-#: qcsrc/server/w_fireball.qc:417
+#: qcsrc/server/w_fireball.qc:442
 #, c-format
 msgid "%s tasted %s's fireball"
 msgstr "%s a goûté la boule de feu de %s"
@@ -2530,27 +2545,27 @@ msgstr "%s a goûté la boule de feu de %s"
 msgid "Mortar"
 msgstr "Mortier"
 
-#: qcsrc/server/w_grenadelauncher.qc:357
+#: qcsrc/server/w_grenadelauncher.qc:378
 #, c-format
 msgid "%s tried out his own grenade"
 msgstr "%s a mangé sa propre grenade"
 
-#: qcsrc/server/w_grenadelauncher.qc:359
+#: qcsrc/server/w_grenadelauncher.qc:380
 #, c-format
 msgid "%s detonated"
 msgstr "%s a fait boum"
 
-#: qcsrc/server/w_grenadelauncher.qc:365
+#: qcsrc/server/w_grenadelauncher.qc:386
 #, c-format
 msgid "%s didn't see %s's grenade"
 msgstr "%s n'a pas vu la grenade de %s"
 
-#: qcsrc/server/w_grenadelauncher.qc:367
+#: qcsrc/server/w_grenadelauncher.qc:388
 #, c-format
 msgid "%s almost dodged %s's grenade"
 msgstr "%s a presque réussi à esquiver la grenade de %s"
 
-#: qcsrc/server/w_grenadelauncher.qc:369
+#: qcsrc/server/w_grenadelauncher.qc:390
 #, c-format
 msgid "%s ate %s's grenade"
 msgstr "%s a mangé la grenade de %s"
@@ -2559,17 +2574,17 @@ msgstr "%s a mangé la grenade de %s"
 msgid "Hagar"
 msgstr "Hagar"
 
-#: qcsrc/server/w_hagar.qc:185 qcsrc/server/w_seeker.qc:523
+#: qcsrc/server/w_hagar.qc:209 qcsrc/server/w_seeker.qc:655
 #, c-format
 msgid "%s played with tiny rockets"
 msgstr "%s a joué avec des petits missiles"
 
-#: qcsrc/server/w_hagar.qc:189
+#: qcsrc/server/w_hagar.qc:213
 #, c-format
 msgid "%s hoped %s's missiles wouldn't bounce"
 msgstr "%s a pensé que les petits missiles de %s ne rebondissaient pas"
 
-#: qcsrc/server/w_hagar.qc:191
+#: qcsrc/server/w_hagar.qc:215 qcsrc/server/w_seeker.qc:661
 #, c-format
 msgid "%s was pummeled by %s"
 msgstr "%s a trop mangé de mini-missiles de la part de %s"
@@ -2578,7 +2593,7 @@ msgstr "%s a trop mangé de mini-missiles de la part de %s"
 msgid "Heavy Laser Assault Cannon"
 msgstr "Canon Laser Lourd d'Assaut "
 
-#: qcsrc/server/w_hlac.qc:225
+#: qcsrc/server/w_hlac.qc:242
 #, c-format
 msgid "%s was cut down by %s"
 msgstr "%s s'est fait couper par %s"
@@ -2588,14 +2603,14 @@ msgstr "%s s'est fait couper par %s"
 msgid "Grappling Hook"
 msgstr "Grappin"
 
-#: qcsrc/server/w_hook.qc:267 qcsrc/server/w_minstanex.qc:257
-#: qcsrc/server/w_nex.qc:224 qcsrc/server/w_porto.qc:293
-#: qcsrc/server/w_shotgun.qc:179 qcsrc/server/w_uzi.qc:287
+#: qcsrc/server/w_hook.qc:266 qcsrc/server/w_minstanex.qc:290
+#: qcsrc/server/w_nex.qc:267 qcsrc/server/w_porto.qc:296
+#: qcsrc/server/w_shotgun.qc:203 qcsrc/server/w_uzi.qc:317
 #, c-format
 msgid "%s did the impossible"
 msgstr "%s a fait l'impossible"
 
-#: qcsrc/server/w_hook.qc:269
+#: qcsrc/server/w_hook.qc:268
 #, c-format
 msgid "%s has run into %s's gravity bomb"
 msgstr "%s a été emprisonné par la bombe à gravité de %s"
@@ -2604,17 +2619,17 @@ msgstr "%s a été emprisonné par la bombe à gravité de %s"
 msgid "Laser"
 msgstr "Laser"
 
-#: qcsrc/server/w_laser.qc:285
+#: qcsrc/server/w_laser.qc:305
 #, c-format
 msgid "%s lasered themself to hell"
 msgstr "%s s'est suicidé au laser"
 
-#: qcsrc/server/w_laser.qc:289
+#: qcsrc/server/w_laser.qc:309
 #, c-format
 msgid "%s was cut in half by %s's gauntlet"
 msgstr "%s s'est fait couper en deux par le laser de %s"
 
-#: qcsrc/server/w_laser.qc:291
+#: qcsrc/server/w_laser.qc:311
 #, c-format
 msgid "%s was lasered to death by %s"
 msgstr "%s a été désintégré par le laser de %s"
@@ -2624,22 +2639,22 @@ msgstr "%s a été désintégré par le laser de %s"
 msgid "Mine Layer"
 msgstr "Lance-Mines"
 
-#: qcsrc/server/w_minelayer.qc:438 qcsrc/server/w_rocketlauncher.qc:480
+#: qcsrc/server/w_minelayer.qc:495 qcsrc/server/w_rocketlauncher.qc:500
 #, c-format
 msgid "%s exploded"
 msgstr "%s a explosé"
 
-#: qcsrc/server/w_minelayer.qc:442
+#: qcsrc/server/w_minelayer.qc:499
 #, c-format
 msgid "%s got too close to %s's mine"
 msgstr "%s s'est trop approché de la mine de %s"
 
-#: qcsrc/server/w_minelayer.qc:444
+#: qcsrc/server/w_minelayer.qc:501
 #, c-format
 msgid "%s almost dodged %s's mine"
 msgstr "%s a presque esquivé la mine de %s"
 
-#: qcsrc/server/w_minelayer.qc:446
+#: qcsrc/server/w_minelayer.qc:503
 #, c-format
 msgid "%s stepped on %s's mine"
 msgstr "%s a marché sur la mine de %s"
@@ -2649,7 +2664,7 @@ msgstr "%s a marché sur la mine de %s"
 msgid "MinstaNex"
 msgstr "MinstaNex"
 
-#: qcsrc/server/w_minstanex.qc:259 qcsrc/server/w_nex.qc:226
+#: qcsrc/server/w_minstanex.qc:292 qcsrc/server/w_nex.qc:269
 #, c-format
 msgid "%s has been vaporized by %s"
 msgstr "%s s'est fait vaporiser par %s"
@@ -2663,7 +2678,7 @@ msgstr "Nex"
 msgid "Port-O-Launch"
 msgstr "Lance-O-Port"
 
-#: qcsrc/server/w_porto.qc:295
+#: qcsrc/server/w_porto.qc:298
 #, c-format
 msgid "%s felt %s doing the impossible to him"
 msgstr "%s a eu tort de prendre le portail de %s"
@@ -2672,17 +2687,17 @@ msgstr "%s a eu tort de prendre le portail de %s"
 msgid "Rocket Launcher"
 msgstr "Lance-Roquettes"
 
-#: qcsrc/server/w_rocketlauncher.qc:484
+#: qcsrc/server/w_rocketlauncher.qc:504
 #, c-format
 msgid "%s got too close to %s's rocket"
 msgstr "%s s'est trop approché de la roquette de %s"
 
-#: qcsrc/server/w_rocketlauncher.qc:486
+#: qcsrc/server/w_rocketlauncher.qc:506
 #, c-format
 msgid "%s almost dodged %s's rocket"
 msgstr "%s a presque esquivé la roquette de %s"
 
-#: qcsrc/server/w_rocketlauncher.qc:488
+#: qcsrc/server/w_rocketlauncher.qc:508
 #, c-format
 msgid "%s ate %s's rocket"
 msgstr "%s a mangé la roquette de %s"
@@ -2691,12 +2706,7 @@ msgstr "%s a mangé la roquette de %s"
 msgid "T.A.G. Seeker"
 msgstr "T.A.G. Chercheur"
 
-#: qcsrc/server/w_seeker.qc:527
-#, c-format
-msgid "%s ran into %s's flac"
-msgstr "%s n'a pas eu peur des missiles de %s"
-
-#: qcsrc/server/w_seeker.qc:529
+#: qcsrc/server/w_seeker.qc:659
 #, c-format
 msgid "%s was tagged by %s"
 msgstr "%s s'est fait tagguer par %s"
@@ -2706,12 +2716,12 @@ msgstr "%s s'est fait tagguer par %s"
 msgid "Shotgun"
 msgstr "Fusil"
 
-#: qcsrc/server/w_shotgun.qc:183
+#: qcsrc/server/w_shotgun.qc:207
 #, c-format
 msgid "%2$s ^7slapped %1$s ^7around a bit with a large ^2shotgun"
 msgstr "%2$s ^7a baffé %1$s ^7avec un ^2fusil"
 
-#: qcsrc/server/w_shotgun.qc:185
+#: qcsrc/server/w_shotgun.qc:209
 #, c-format
 msgid "%s was gunned by %s"
 msgstr "%s s'est fait fusiller par %s"
@@ -2720,37 +2730,37 @@ msgstr "%s s'est fait fusiller par %s"
 msgid "Sniper Rifle"
 msgstr "Fusil Sniper"
 
-#: qcsrc/server/w_sniperrifle.qc:321
+#: qcsrc/server/w_sniperrifle.qc:229
 #, c-format
 msgid "%s shot themself automatically"
 msgstr "%s s'est suicidé au sniper"
 
-#: qcsrc/server/w_sniperrifle.qc:323
+#: qcsrc/server/w_sniperrifle.qc:231
 #, c-format
 msgid "%s sniped themself somehow"
 msgstr "%s a oublié le cran de sûreté en chargeant"
 
-#: qcsrc/server/w_sniperrifle.qc:330
+#: qcsrc/server/w_sniperrifle.qc:238
 #, c-format
 msgid "%s failed to hide from %s's bullet hail"
 msgstr "%s n'a pas pu se cacher de la nuée de balles de %s"
 
-#: qcsrc/server/w_sniperrifle.qc:332
+#: qcsrc/server/w_sniperrifle.qc:240
 #, c-format
 msgid "%s died in %s's bullet hail"
 msgstr "%s est mort de la nuée de balles de %s"
 
-#: qcsrc/server/w_sniperrifle.qc:339
+#: qcsrc/server/w_sniperrifle.qc:247
 #, c-format
 msgid "%s failed to hide from %s's rifle"
 msgstr "%s n'a pas réussi à se cacher du sniper de %s"
 
-#: qcsrc/server/w_sniperrifle.qc:344
+#: qcsrc/server/w_sniperrifle.qc:252
 #, c-format
 msgid "%s got hit in the head by %s"
 msgstr "%s s'est fait décapiter au sniper par %s"
 
-#: qcsrc/server/w_sniperrifle.qc:346 qcsrc/server/w_uzi.qc:291
+#: qcsrc/server/w_sniperrifle.qc:254 qcsrc/server/w_uzi.qc:321
 #, c-format
 msgid "%s was sniped by %s"
 msgstr "%s s'est fait descendre au sniper par %s"
@@ -2760,12 +2770,12 @@ msgstr "%s s'est fait descendre au sniper par %s"
 msgid "@!#%'n Tuba"
 msgstr "@!#%'n Tuba"
 
-#: qcsrc/server/w_tuba.qc:260
+#: qcsrc/server/w_tuba.qc:263
 #, c-format
 msgid "%s hurt his own ears with the @!#%%'n Tuba"
 msgstr "%s s'est fait casser les tympans par son propre tuba"
 
-#: qcsrc/server/w_tuba.qc:264
+#: qcsrc/server/w_tuba.qc:267
 #, c-format
 msgid "%s died of %s's great playing on the @!#%%'n Tuba"
 msgstr "%s n'a pas aimé la musique de %s et en est mort"
@@ -2774,11 +2784,14 @@ msgstr "%s n'a pas aimé la musique de %s et en est mort"
 msgid "Machine Gun"
 msgstr "Mitraillette"
 
-#: qcsrc/server/w_uzi.qc:293
+#: qcsrc/server/w_uzi.qc:323
 #, c-format
 msgid "%s was riddled full of holes by %s"
 msgstr "%s s'est fait trouer par %s"
 
+#~ msgid "%s ran into %s's flac"
+#~ msgstr "%s n'a pas eu peur des missiles de %s"
+
 #~ msgid "Waypoint settings:"
 #~ msgstr "Paramètres Waypoint (flèches 3D sur la carte):"
 
index d604e379e6ff46e124cdb3fbcf7999a56064efa5..75096ed81536b5762f621be1b83125cc8c7db7fa 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-02-07 07:50+0100\n"
+"POT-Creation-Date: 2011-04-30 10:07+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -68,8 +68,8 @@ msgid "custom"
 msgstr "egyéni"
 
 #: qcsrc/menu/menu.qc:29
-#, c-format
-msgid "^4MQC Build information: %s\n"
+#, fuzzy, c-format
+msgid "^4MQC Build information: ^1%s\n"
 msgstr "^4MQC Épitési információ: %s\n"
 
 #: qcsrc/menu/xonotic/campaign.c:284
@@ -328,7 +328,7 @@ msgstr "Radar:"
 #: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:32
 #: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:43
 #: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:82
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:151
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:154
 #: qcsrc/menu/xonotic/util.qc:608
 msgid "Alpha:"
 msgstr "Alpha:"
@@ -1001,11 +1001,11 @@ msgstr "Szünet"
 msgid "Address:"
 msgstr "Cím:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:65
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:67
 msgid "Info..."
 msgstr "Info..."
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:70
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:72
 #: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:317
 msgid "Join!"
 msgstr "Csatlakozz!"
@@ -1147,7 +1147,7 @@ msgid "Crosshair:"
 msgstr "Célkereszt:"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:111
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:143
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:139
 msgid "Per weapon"
 msgstr "Fegyverenként"
 
@@ -1163,35 +1163,44 @@ msgstr "Célkereszt alpha:"
 msgid "Crosshair color:"
 msgstr "Célkereszt színe:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:145
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:140
+msgid "By health"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:143
+#, fuzzy
+msgid "Custom"
+msgstr "egyéni"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:148
 msgid "Enable center dot"
 msgstr "Középpont engedélyezése"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:148
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:151
 msgid "Size:"
 msgstr "Méret:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:155
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:158
 msgid "Hit test:"
 msgstr "Találat ellenőrzés:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:156
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:159
 msgid "HTST^None"
 msgstr "HTST^Nincs"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:157
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:160
 msgid "TrueAim"
 msgstr "Valós célzás"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:158
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:161
 msgid "Enemies"
 msgstr "Ellenségek"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:161
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:164
 msgid "Waypoints setup..."
 msgstr "Útpontok beállítása..."
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:167
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:169
 msgid "Enter HUD editor"
 msgstr "Belépés a HUD szerkesztőbe"
 
@@ -1211,35 +1220,35 @@ msgstr "MDL^Egyéni"
 msgid "MDL^All"
 msgstr "MDL^Mind"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:179
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:180
 msgid "Disable gore effects"
 msgstr "Sérülés hatások letiltása"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:181
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:182
 msgid "Gibs:"
 msgstr "Húscafatok:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:183
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:184
 msgid "GIBS^None"
 msgstr "GIBS^Nincs"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:184
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:185
 msgid "GIBS^Few"
 msgstr "GIBS^Kevés"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:185
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:186
 msgid "GIBS^Many"
 msgstr "GIBS^Sok"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:186
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:187
 msgid "GIBS^Lots"
 msgstr "GIBS^Rengeteg"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:190
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:191
 msgid "Damage splash:"
 msgstr "Sérülés szórás:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:194
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:195
 #: qcsrc/menu/xonotic/dialog_settings_audio.c:178
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:194
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:30
@@ -2206,31 +2215,31 @@ msgstr ""
 msgid "<no model found>"
 msgstr "<modell nem található>"
 
-#: qcsrc/menu/xonotic/serverlist.c:360
+#: qcsrc/menu/xonotic/serverlist.c:185
 msgid "Remove"
 msgstr "Eltávolítás"
 
-#: qcsrc/menu/xonotic/serverlist.c:362
+#: qcsrc/menu/xonotic/serverlist.c:187
 msgid "Bookmark"
 msgstr "Könyvjelző"
 
-#: qcsrc/menu/xonotic/serverlist.c:518
+#: qcsrc/menu/xonotic/serverlist.c:523
 msgid "Ping"
 msgstr "Ping"
 
-#: qcsrc/menu/xonotic/serverlist.c:519
+#: qcsrc/menu/xonotic/serverlist.c:524
 msgid "Host name"
 msgstr "Gazda név"
 
-#: qcsrc/menu/xonotic/serverlist.c:520
+#: qcsrc/menu/xonotic/serverlist.c:525
 msgid "Map"
 msgstr "Térkép"
 
-#: qcsrc/menu/xonotic/serverlist.c:521
+#: qcsrc/menu/xonotic/serverlist.c:526
 msgid "Type"
 msgstr "Típus"
 
-#: qcsrc/menu/xonotic/serverlist.c:522
+#: qcsrc/menu/xonotic/serverlist.c:527
 msgid "Players"
 msgstr "Játékosok"
 
@@ -2296,6 +2305,11 @@ msgstr ""
 msgid "Autogenerating mapinfo for newly added maps..."
 msgstr "Önállóan előállitott MapInfo az újonnan hozzáadott térképekhez..."
 
+#: qcsrc/menu/xonotic/util.qc:367
+#, c-format
+msgid "^1%s TEST BUILD"
+msgstr ""
+
 #: qcsrc/menu/xonotic/util.qc:432
 #, c-format
 msgid "Update to %s now!"
@@ -2404,22 +2418,22 @@ msgstr "Panel engedélyezés"
 msgid "Crylink"
 msgstr ""
 
-#: qcsrc/server/w_crylink.qc:645
+#: qcsrc/server/w_crylink.qc:664
 #, c-format
 msgid "%s succeeded at self-destructing themself with the Crylink"
 msgstr ""
 
-#: qcsrc/server/w_crylink.qc:650
+#: qcsrc/server/w_crylink.qc:669
 #, c-format
 msgid "%s could not hide from %s's Crylink"
 msgstr ""
 
-#: qcsrc/server/w_crylink.qc:652
+#: qcsrc/server/w_crylink.qc:671
 #, c-format
 msgid "%s was too close to %s's Crylink"
 msgstr ""
 
-#: qcsrc/server/w_crylink.qc:654
+#: qcsrc/server/w_crylink.qc:673
 #, c-format
 msgid "%s took a close look at %s's Crylink"
 msgstr ""
@@ -2428,37 +2442,37 @@ msgstr ""
 msgid "Electro"
 msgstr ""
 
-#: qcsrc/server/w_electro.qc:503
+#: qcsrc/server/w_electro.qc:571
 #, c-format
 msgid "%s could not remember where they put plasma"
 msgstr ""
 
-#: qcsrc/server/w_electro.qc:505
+#: qcsrc/server/w_electro.qc:573
 #, c-format
 msgid "%s played with plasma"
 msgstr ""
 
-#: qcsrc/server/w_electro.qc:512
+#: qcsrc/server/w_electro.qc:580
 #, c-format
 msgid "%s just noticed %s's blue ball"
 msgstr ""
 
-#: qcsrc/server/w_electro.qc:514
+#: qcsrc/server/w_electro.qc:582
 #, c-format
 msgid "%s got in touch with %s's blue ball"
 msgstr ""
 
-#: qcsrc/server/w_electro.qc:519
+#: qcsrc/server/w_electro.qc:587
 #, c-format
 msgid "%s felt the electrifying air of %s's combo"
 msgstr ""
 
-#: qcsrc/server/w_electro.qc:521
+#: qcsrc/server/w_electro.qc:589
 #, c-format
 msgid "%s got too close to %s's blue beam"
 msgstr ""
 
-#: qcsrc/server/w_electro.qc:523
+#: qcsrc/server/w_electro.qc:591
 #, c-format
 msgid "%s was blasted by %s's blue beam"
 msgstr ""
@@ -2468,42 +2482,42 @@ msgstr ""
 msgid "Fireball"
 msgstr "Nexball"
 
-#: qcsrc/server/w_fireball.qc:392
+#: qcsrc/server/w_fireball.qc:417
 #, c-format
 msgid "%s forgot about some firemine"
 msgstr ""
 
-#: qcsrc/server/w_fireball.qc:394 qcsrc/server/w_hlac.qc:223
+#: qcsrc/server/w_fireball.qc:419 qcsrc/server/w_hlac.qc:240
 #, c-format
 msgid "%s should have used a smaller gun"
 msgstr ""
 
-#: qcsrc/server/w_fireball.qc:401
+#: qcsrc/server/w_fireball.qc:426
 #, c-format
 msgid "%s tried to catch %s's firemine"
 msgstr ""
 
-#: qcsrc/server/w_fireball.qc:403
+#: qcsrc/server/w_fireball.qc:428
 #, c-format
 msgid "%s fatefully ignored %s's firemine"
 msgstr ""
 
-#: qcsrc/server/w_fireball.qc:410
+#: qcsrc/server/w_fireball.qc:435
 #, c-format
 msgid "%s could not hide from %s's fireball"
 msgstr ""
 
-#: qcsrc/server/w_fireball.qc:412
+#: qcsrc/server/w_fireball.qc:437
 #, c-format
 msgid "%s saw the pretty lights of %s's fireball"
 msgstr ""
 
-#: qcsrc/server/w_fireball.qc:415
+#: qcsrc/server/w_fireball.qc:440
 #, c-format
 msgid "%s got too close to %s's fireball"
 msgstr ""
 
-#: qcsrc/server/w_fireball.qc:417
+#: qcsrc/server/w_fireball.qc:442
 #, c-format
 msgid "%s tasted %s's fireball"
 msgstr ""
@@ -2513,27 +2527,27 @@ msgstr ""
 msgid "Mortar"
 msgstr "Előre"
 
-#: qcsrc/server/w_grenadelauncher.qc:357
+#: qcsrc/server/w_grenadelauncher.qc:378
 #, c-format
 msgid "%s tried out his own grenade"
 msgstr ""
 
-#: qcsrc/server/w_grenadelauncher.qc:359
+#: qcsrc/server/w_grenadelauncher.qc:380
 #, fuzzy, c-format
 msgid "%s detonated"
 msgstr "néző"
 
-#: qcsrc/server/w_grenadelauncher.qc:365
+#: qcsrc/server/w_grenadelauncher.qc:386
 #, c-format
 msgid "%s didn't see %s's grenade"
 msgstr ""
 
-#: qcsrc/server/w_grenadelauncher.qc:367
+#: qcsrc/server/w_grenadelauncher.qc:388
 #, c-format
 msgid "%s almost dodged %s's grenade"
 msgstr ""
 
-#: qcsrc/server/w_grenadelauncher.qc:369
+#: qcsrc/server/w_grenadelauncher.qc:390
 #, c-format
 msgid "%s ate %s's grenade"
 msgstr ""
@@ -2542,17 +2556,17 @@ msgstr ""
 msgid "Hagar"
 msgstr ""
 
-#: qcsrc/server/w_hagar.qc:185 qcsrc/server/w_seeker.qc:523
+#: qcsrc/server/w_hagar.qc:209 qcsrc/server/w_seeker.qc:655
 #, c-format
 msgid "%s played with tiny rockets"
 msgstr ""
 
-#: qcsrc/server/w_hagar.qc:189
+#: qcsrc/server/w_hagar.qc:213
 #, c-format
 msgid "%s hoped %s's missiles wouldn't bounce"
 msgstr ""
 
-#: qcsrc/server/w_hagar.qc:191
+#: qcsrc/server/w_hagar.qc:215 qcsrc/server/w_seeker.qc:661
 #, c-format
 msgid "%s was pummeled by %s"
 msgstr ""
@@ -2561,7 +2575,7 @@ msgstr ""
 msgid "Heavy Laser Assault Cannon"
 msgstr ""
 
-#: qcsrc/server/w_hlac.qc:225
+#: qcsrc/server/w_hlac.qc:242
 #, c-format
 msgid "%s was cut down by %s"
 msgstr ""
@@ -2571,14 +2585,14 @@ msgstr ""
 msgid "Grappling Hook"
 msgstr "Ragadós horog"
 
-#: qcsrc/server/w_hook.qc:267 qcsrc/server/w_minstanex.qc:257
-#: qcsrc/server/w_nex.qc:224 qcsrc/server/w_porto.qc:293
-#: qcsrc/server/w_shotgun.qc:179 qcsrc/server/w_uzi.qc:287
+#: qcsrc/server/w_hook.qc:266 qcsrc/server/w_minstanex.qc:290
+#: qcsrc/server/w_nex.qc:267 qcsrc/server/w_porto.qc:296
+#: qcsrc/server/w_shotgun.qc:203 qcsrc/server/w_uzi.qc:317
 #, c-format
 msgid "%s did the impossible"
 msgstr ""
 
-#: qcsrc/server/w_hook.qc:269
+#: qcsrc/server/w_hook.qc:268
 #, c-format
 msgid "%s has run into %s's gravity bomb"
 msgstr ""
@@ -2588,17 +2602,17 @@ msgstr ""
 msgid "Laser"
 msgstr "Mester:"
 
-#: qcsrc/server/w_laser.qc:285
+#: qcsrc/server/w_laser.qc:305
 #, c-format
 msgid "%s lasered themself to hell"
 msgstr ""
 
-#: qcsrc/server/w_laser.qc:289
+#: qcsrc/server/w_laser.qc:309
 #, c-format
 msgid "%s was cut in half by %s's gauntlet"
 msgstr ""
 
-#: qcsrc/server/w_laser.qc:291
+#: qcsrc/server/w_laser.qc:311
 #, c-format
 msgid "%s was lasered to death by %s"
 msgstr ""
@@ -2608,22 +2622,22 @@ msgstr ""
 msgid "Mine Layer"
 msgstr "Egyjátékos"
 
-#: qcsrc/server/w_minelayer.qc:438 qcsrc/server/w_rocketlauncher.qc:480
+#: qcsrc/server/w_minelayer.qc:495 qcsrc/server/w_rocketlauncher.qc:500
 #, c-format
 msgid "%s exploded"
 msgstr ""
 
-#: qcsrc/server/w_minelayer.qc:442
+#: qcsrc/server/w_minelayer.qc:499
 #, c-format
 msgid "%s got too close to %s's mine"
 msgstr ""
 
-#: qcsrc/server/w_minelayer.qc:444
+#: qcsrc/server/w_minelayer.qc:501
 #, c-format
 msgid "%s almost dodged %s's mine"
 msgstr ""
 
-#: qcsrc/server/w_minelayer.qc:446
+#: qcsrc/server/w_minelayer.qc:503
 #, c-format
 msgid "%s stepped on %s's mine"
 msgstr ""
@@ -2633,7 +2647,7 @@ msgstr ""
 msgid "MinstaNex"
 msgstr "MinstaGib"
 
-#: qcsrc/server/w_minstanex.qc:259 qcsrc/server/w_nex.qc:226
+#: qcsrc/server/w_minstanex.qc:292 qcsrc/server/w_nex.qc:269
 #, c-format
 msgid "%s has been vaporized by %s"
 msgstr ""
@@ -2647,7 +2661,7 @@ msgstr "Nexball"
 msgid "Port-O-Launch"
 msgstr ""
 
-#: qcsrc/server/w_porto.qc:295
+#: qcsrc/server/w_porto.qc:298
 #, c-format
 msgid "%s felt %s doing the impossible to him"
 msgstr ""
@@ -2656,17 +2670,17 @@ msgstr ""
 msgid "Rocket Launcher"
 msgstr ""
 
-#: qcsrc/server/w_rocketlauncher.qc:484
+#: qcsrc/server/w_rocketlauncher.qc:504
 #, c-format
 msgid "%s got too close to %s's rocket"
 msgstr ""
 
-#: qcsrc/server/w_rocketlauncher.qc:486
+#: qcsrc/server/w_rocketlauncher.qc:506
 #, c-format
 msgid "%s almost dodged %s's rocket"
 msgstr ""
 
-#: qcsrc/server/w_rocketlauncher.qc:488
+#: qcsrc/server/w_rocketlauncher.qc:508
 #, c-format
 msgid "%s ate %s's rocket"
 msgstr ""
@@ -2675,12 +2689,7 @@ msgstr ""
 msgid "T.A.G. Seeker"
 msgstr ""
 
-#: qcsrc/server/w_seeker.qc:527
-#, c-format
-msgid "%s ran into %s's flac"
-msgstr ""
-
-#: qcsrc/server/w_seeker.qc:529
+#: qcsrc/server/w_seeker.qc:659
 #, c-format
 msgid "%s was tagged by %s"
 msgstr ""
@@ -2690,12 +2699,12 @@ msgstr ""
 msgid "Shotgun"
 msgstr "Lövések:"
 
-#: qcsrc/server/w_shotgun.qc:183
+#: qcsrc/server/w_shotgun.qc:207
 #, c-format
 msgid "%2$s ^7slapped %1$s ^7around a bit with a large ^2shotgun"
 msgstr ""
 
-#: qcsrc/server/w_shotgun.qc:185
+#: qcsrc/server/w_shotgun.qc:209
 #, c-format
 msgid "%s was gunned by %s"
 msgstr ""
@@ -2704,37 +2713,37 @@ msgstr ""
 msgid "Sniper Rifle"
 msgstr ""
 
-#: qcsrc/server/w_sniperrifle.qc:321
+#: qcsrc/server/w_sniperrifle.qc:229
 #, c-format
 msgid "%s shot themself automatically"
 msgstr ""
 
-#: qcsrc/server/w_sniperrifle.qc:323
+#: qcsrc/server/w_sniperrifle.qc:231
 #, c-format
 msgid "%s sniped themself somehow"
 msgstr ""
 
-#: qcsrc/server/w_sniperrifle.qc:330
+#: qcsrc/server/w_sniperrifle.qc:238
 #, c-format
 msgid "%s failed to hide from %s's bullet hail"
 msgstr ""
 
-#: qcsrc/server/w_sniperrifle.qc:332
+#: qcsrc/server/w_sniperrifle.qc:240
 #, c-format
 msgid "%s died in %s's bullet hail"
 msgstr ""
 
-#: qcsrc/server/w_sniperrifle.qc:339
+#: qcsrc/server/w_sniperrifle.qc:247
 #, c-format
 msgid "%s failed to hide from %s's rifle"
 msgstr ""
 
-#: qcsrc/server/w_sniperrifle.qc:344
+#: qcsrc/server/w_sniperrifle.qc:252
 #, c-format
 msgid "%s got hit in the head by %s"
 msgstr ""
 
-#: qcsrc/server/w_sniperrifle.qc:346 qcsrc/server/w_uzi.qc:291
+#: qcsrc/server/w_sniperrifle.qc:254 qcsrc/server/w_uzi.qc:321
 #, c-format
 msgid "%s was sniped by %s"
 msgstr ""
@@ -2744,12 +2753,12 @@ msgstr ""
 msgid "@!#%'n Tuba"
 msgstr "@!#%'n Tuba Dobás"
 
-#: qcsrc/server/w_tuba.qc:260
+#: qcsrc/server/w_tuba.qc:263
 #, c-format
 msgid "%s hurt his own ears with the @!#%%'n Tuba"
 msgstr ""
 
-#: qcsrc/server/w_tuba.qc:264
+#: qcsrc/server/w_tuba.qc:267
 #, c-format
 msgid "%s died of %s's great playing on the @!#%%'n Tuba"
 msgstr ""
@@ -2758,7 +2767,7 @@ msgstr ""
 msgid "Machine Gun"
 msgstr ""
 
-#: qcsrc/server/w_uzi.qc:293
+#: qcsrc/server/w_uzi.qc:323
 #, c-format
 msgid "%s was riddled full of holes by %s"
 msgstr ""
index 1dab9f184a86e3ed991f32410b96efbd0fbf47ae..2355692707e7c9d369023c823a50734a6cdae6b9 100644 (file)
@@ -8,44 +8,16 @@ msgid ""
 msgstr ""
 "Project-Id-Version: 0.1preview\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-18 17:06+0100\n"
-"PO-Revision-Date: 2011-03-27 18:47+0100\n"
+"POT-Creation-Date: 2011-05-01 13:33+0200\n"
+"PO-Revision-Date: 2011-04-29 16:29+0100\n"
 "Last-Translator: Antonio 'terencehill' Piu <piuntn@gmail.com>\n"
 "Language-Team: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Language: \n"
 "X-Poedit-Language: Italian\n"
 
-#: qcsrc/menu/menu.qc:29
-#, c-format
-msgid "^4MQC Build information: %s\n"
-msgstr "^4MQC Build information: %s\n"
-
-#: qcsrc/menu/item/slider.c:64
-#, c-format
-msgid "%d (%s)"
-msgstr "%d (%s)"
-
-#: qcsrc/menu/item/label.c:63
-#, c-format
-msgid "NOTE: label text %s too wide for label, condensed by factor %f\n"
-msgstr "NOTA: testo dell'etichetta %s troppo grande per l'etichetta, compresso di un fattore %f\n"
-
-#: qcsrc/menu/item/textslider.c:29
-#: qcsrc/menu/item/textslider.c:31
-msgid "custom"
-msgstr "personalizzato"
-
-#: qcsrc/menu/item/gecko.c:49
-msgid "Browser not initialized!"
-msgstr "Browser non inizializzato!"
-
-#: qcsrc/menu/item/listbox.c:300
-#, c-format
-msgid "Item %d"
-msgstr "Oggetto %d"
-
 #: qcsrc/menu/gamecommand.qc:47
 #, c-format
 msgid "error: status is %d\n"
@@ -57,7 +29,7 @@ msgstr "Uso: menu_cmd command..., dove i possibili comandi sono:\n"
 
 #: qcsrc/menu/gamecommand.qc:66
 msgid "  sync - reloads all cvars on the current menu page\n"
-msgstr "sync - ricarica tutte le cvar sulla corrente pagina\n"
+msgstr "  sync - ricarica tutte le cvar sulla corrente pagina\n"
 
 #: qcsrc/menu/gamecommand.qc:67
 msgid "  directmenu ITEM - select a menu item as main item\n"
@@ -69,269 +41,209 @@ msgstr "error creating curl handle\n"
 
 #: qcsrc/menu/gamecommand.qc:239
 msgid "Invalid command. For a list of supported commands, try menu_cmd help.\n"
-msgstr "Comando non valido. Per una lista dei comandi supportati, prova menu_cmd help.\n"
-
-#: qcsrc/menu/xonotic/dialog_settings_video.c:4
-#: qcsrc/menu/xonotic/dialog_settings.c:19
-msgid "Video"
-msgstr "Video"
+msgstr ""
+"Comando non valido. Per una lista dei comandi supportati, prova menu_cmd "
+"help.\n"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:26
-msgid "Resolution:"
-msgstr "Risoluzione:"
+#: qcsrc/menu/item/gecko.c:49
+msgid "Browser not initialized!"
+msgstr "Browser non inizializzato!"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:29
-msgid "Font/UI size:"
-msgstr "Dimensioni caratteri:"
+#: qcsrc/menu/item/label.c:63
+#, c-format
+msgid "NOTE: label text %s too wide for label, condensed by factor %f\n"
+msgstr ""
+"NOTA: testo dell'etichetta %s troppo grande per l'etichetta, compresso di un "
+"fattore %f\n"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:31
-msgid "SZ^Unreadable"
-msgstr "SZ^Illeggibile"
+#: qcsrc/menu/item/listbox.c:300
+#, c-format
+msgid "Item %d"
+msgstr "Oggetto %d"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:32
-msgid "SZ^Tiny"
-msgstr "SZ^Minuscolo"
+#: qcsrc/menu/item/slider.c:64
+#, c-format
+msgid "%d (%s)"
+msgstr "%d (%s)"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:33
-msgid "SZ^Little"
-msgstr "SZ^Molto piccolo"
+#: qcsrc/menu/item/textslider.c:29 qcsrc/menu/item/textslider.c:31
+msgid "custom"
+msgstr "personalizzato"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:34
-msgid "SZ^Small"
-msgstr "SZ^Piccolo"
+#: qcsrc/menu/menu.qc:29
+#, c-format
+msgid "^4MQC Build information: ^1%s\n"
+msgstr "^4MQC Build information: ^1%s\n"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:35
-msgid "SZ^Medium"
-msgstr "SZ^Medio"
+#: qcsrc/menu/xonotic/campaign.c:284
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:66
+msgid "???"
+msgstr "???"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:36
-msgid "SZ^Large"
-msgstr "SZ^Largo"
+#: qcsrc/menu/xonotic/campaign.c:285
+#, c-format
+msgid "Level %d: %s"
+msgstr "Livello %d: %s"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:37
-msgid "SZ^Huge"
-msgstr "SZ^Enorme"
+#: qcsrc/menu/xonotic/cvarlist.c:85
+msgid "will be saved to config.cfg"
+msgstr "sarà salvato su config.cfg"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:38
-msgid "SZ^Gigantic"
-msgstr "SZ^Gigante"
+#: qcsrc/menu/xonotic/cvarlist.c:87
+msgid "will not be saved"
+msgstr "non sarà salvato"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:39
-msgid "SZ^Colossal"
-msgstr "SZ^Colossale"
+#: qcsrc/menu/xonotic/cvarlist.c:89
+msgid "private"
+msgstr "privata"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:42
-msgid "Color depth:"
-msgstr "Profondità colore:"
+#: qcsrc/menu/xonotic/cvarlist.c:91
+msgid "engine setting"
+msgstr "impostazioni motore"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:45
-msgid "Full screen"
-msgstr "Schermo intero"
+#: qcsrc/menu/xonotic/cvarlist.c:93
+msgid "read only"
+msgstr "sola lettura"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:46
-msgid "Vertical Synchronization"
-msgstr "Sincronizzazione verticale"
+#: qcsrc/menu/xonotic/dialog_credits.c:5
+msgid "Credits"
+msgstr "Crediti"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:49
-msgid "Use OpenGL 2.0 shaders (GLSL)"
-msgstr "Usa gli shader OpenGL 2.0 (GLSL)"
+#: qcsrc/menu/xonotic/dialog_credits.c:21
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:82
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:269
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:41
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:55
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:61
+#: qcsrc/menu/xonotic/dialog_singleplayer_winner.c:21
+msgid "OK"
+msgstr "OK"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:52
-msgid "Use Occlusion Queries"
-msgstr "Usa le Occlusion Queries"
+#: qcsrc/menu/xonotic/dialog_firstrun.c:4
+msgid "Welcome"
+msgstr "Benvenuto"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:55
-msgid "Vertex Buffer Objects (VBOs)"
-msgstr "Vertex Buffer Objects (VBOs)"
+#: qcsrc/menu/xonotic/dialog_firstrun.c:33
+msgid ""
+"Welcome to Xonotic, please select your language preference and enter your "
+"player name to get started.  You can change these options later through the "
+"menu system."
+msgstr ""
+"Benvenuto in Xonotic, per favore selezione la tua lingua e inserisci il tuo "
+"nome come giocatore per iniziare.  Puoi cambiare queste opzioni più tardi "
+"tramite il menu."
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:58
-msgid "VBO^Off"
-msgstr "VBO^Off"
+#: qcsrc/menu/xonotic/dialog_firstrun.c:38
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:35
+msgid "Text language:"
+msgstr "Lingua testo:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:59
-msgid "Vertices, some Tris (compatible)"
-msgstr "Vertici, alcuni Triangoli (compatibile)"
+#: qcsrc/menu/xonotic/dialog_firstrun.c:47
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:40
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:39
+msgid "Name:"
+msgstr "Nome:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:62
-msgid "Vertices"
-msgstr "Vertici"
+#: qcsrc/menu/xonotic/dialog_firstrun.c:69
+msgid "Save settings"
+msgstr "Salva impostazioni"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:63
-msgid "Vertices and Triangles"
-msgstr "Vertici e Triangoli"
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:4
+msgid "Ammo Panel"
+msgstr "Pannello munizioni"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:65
-msgid "Depth first:"
-msgstr "Profondità prima:"
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:22
+msgid "Ammunition display:"
+msgstr "Mostra munizioni:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:67
-msgid "DF^Disabled"
-msgstr "DF^Disabilitata"
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:25
+msgid "Show only current ammo type"
+msgstr "Mostra solo il tipo corrente di munizioni"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:68
-msgid "DF^World"
-msgstr "DF^Globale"
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:29
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:28
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:40
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:28
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:40
+msgid "Left"
+msgstr "Sinistra"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:69
-msgid "DF^All"
-msgstr "DF^Tutto"
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:30
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:30
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:41
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:30
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:41
+msgid "Right"
+msgstr "Destra"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:73
-msgid "Disable multithreaded OpenGL"
-msgstr "Disabilita il multithreading OpenGL"
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:4
+msgid "Chat Panel"
+msgstr "Pannello Chat"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:75
-msgid "Wait for GPU to finish each frame"
-msgstr "Attendi che la GPU finisca di elaborare ogni frame"
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:22
+msgid "Chat entries:"
+msgstr "N° righe della chat:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:78
-msgid "Brightness:"
-msgstr "Luminosità:"
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:25
+msgid "Chat size:"
+msgstr "Dimensioni chat:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:81
-msgid "Contrast:"
-msgstr "Contrasto:"
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:29
+msgid "Chat lifetime:"
+msgstr "Durata chat:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:84
-msgid "Gamma:"
-msgstr "Gamma:"
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:33
+msgid "Chat beep sound"
+msgstr "Suono della chat"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:87
-msgid "Contrast boost:"
-msgstr "Aumenta contrasto:"
+#: qcsrc/menu/xonotic/dialog_hudpanel_engineinfo.c:4
+msgid "Engine Info Panel"
+msgstr "Pannello info motore"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:90
-msgid "Saturation:"
-msgstr "Saturazione:"
+#: qcsrc/menu/xonotic/dialog_hudpanel_engineinfo.c:22
+msgid "Engine info:"
+msgstr "Info motore:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:95
-msgid "Use GLSL to handle color control"
-msgstr "Usa GLSL per gestire il controllo del colore"
+#: qcsrc/menu/xonotic/dialog_hudpanel_engineinfo.c:25
+msgid "Use an averaging algorithm for fps"
+msgstr "Usa un algoritmo mediano per gli fps"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:99
-msgid "LIT^Ambient:"
-msgstr "LIT^Ambiente:"
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:4
+msgid "Health/Armor Panel"
+msgstr "Pannello vita/armatura"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:102
-msgid "Intensity:"
-msgstr "Intensità:"
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:22
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:22
+msgid "Enable status bar"
+msgstr "Abilita barra di stato"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:106
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:30
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:41
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:194
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:193
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:178
-msgid "Apply immediately"
-msgstr "Applica immediatamente"
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:24
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:24
+msgid "Status bar alignment:"
+msgstr "Allineamento barra di stato:"
 
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:4
-msgid "Panel HUD Setup"
-msgstr "Setup del Panel HUD"
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:32
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:42
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:32
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:42
+msgid "Inward"
+msgstr "Interno"
 
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:21
-msgid "Panel background defaults:"
-msgstr "Sfondo del pannello predefinito:"
-
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:25
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:37
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:52
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:91
-#: qcsrc/menu/xonotic/util.qc:602
-#: qcsrc/menu/xonotic/util.qc:618
-#: qcsrc/menu/xonotic/util.qc:635
-msgid "Disable"
-msgstr "Disabilita"
-
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:30
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:77
-#: qcsrc/menu/xonotic/util.qc:607
-msgid "Color:"
-msgstr "Colore:"
-
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:35
-#: qcsrc/menu/xonotic/util.qc:615
-msgid "Border size:"
-msgstr "Dimensioni del bordo:"
-
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:43
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:82
-#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:32
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:151
-#: qcsrc/menu/xonotic/util.qc:624
-msgid "Alpha:"
-msgstr "Opacità:"
-
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:50
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:89
-msgid "Team color:"
-msgstr "Colore team:"
-
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:58
-#: qcsrc/menu/xonotic/util.qc:641
-msgid "Test team color in configure mode"
-msgstr "Prova colore team in modalità configurazione"
-
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:61
-#: qcsrc/menu/xonotic/util.qc:644
-msgid "Padding:"
-msgstr "Riempimento:"
-
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:68
-msgid "HUD Dock:"
-msgstr "Sfondo dell'HUD:"
-
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:70
-msgid "DOCK^Disabled"
-msgstr "DOCK^Disabilitato"
-
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:71
-msgid "DOCK^Small"
-msgstr "DOCK^Piccolo"
-
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:72
-msgid "DOCK^Medium"
-msgstr "DOCK^Medio"
-
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:73
-msgid "DOCK^Large"
-msgstr "DOCK^Largo"
-
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:96
-msgid "Grid settings:"
-msgstr "Impostazioni griglia:"
-
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:99
-msgid "Snap panels to grid"
-msgstr "Incolla i pannelli alla griglia"
-
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:102
-msgid "Grid size:"
-msgstr "Dimensioni griglia:"
-
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:103
-msgid "X:"
-msgstr "X:"
-
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:109
-msgid "Y:"
-msgstr "Y:"
-
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:117
-msgid "Exit setup"
-msgstr "Esci dal setup"
-
-#: qcsrc/menu/xonotic/dialog_hudpanel_vote.c:4
-msgid "Vote Panel"
-msgstr "Pannello di voto"
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:34
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:43
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:34
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:43
+msgid "Outward"
+msgstr "Esterno"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_vote.c:22
-msgid "Alpha after voting:"
-msgstr "Opacità dopo aver votato:"
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:37
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:37
+msgid "Icon alignment:"
+msgstr "Allineamento icone:"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_modicons.c:4
-msgid "Mod Icons Panel"
-msgstr "Pannello delle icone delle Mod"
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:45
+msgid "Flip health and armor positions"
+msgstr "Inverti posizioni di vita e armatura"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_infomessages.c:4
 msgid "Info Messages Panel"
@@ -345,88 +257,41 @@ msgstr "Informazioni"
 msgid "Flip align"
 msgstr "Inverti allineamento"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:5
-msgid "Waypoints"
-msgstr "Waypoint"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:23
-msgid "Waypoint settings:"
-msgstr "Impostazioni dei waypoint"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:26
-msgid "Show base waypoints"
-msgstr "Mostra i waypoint della base"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:29
-msgid "Waypoint scale:"
-msgstr "Grandezza dei waypoint:"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:34
-msgid "Waypoint alpha:"
-msgstr "Opacità dei waypoint"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:39
-msgid "Show names:"
-msgstr "Mostra nomi:"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:41
-#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:26
-msgid "Never"
-msgstr "Mai"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:42
-msgid "Teammates"
-msgstr "Compagni del team"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:43
-msgid "All players"
-msgstr "Tutti i giocatori"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:46
-#: qcsrc/menu/xonotic/dialog_credits.c:21
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:59
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:269
-#: qcsrc/menu/xonotic/dialog_singleplayer_winner.c:21
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:82
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:55
-msgid "OK"
-msgstr "OK"
+#: qcsrc/menu/xonotic/dialog_hudpanel_modicons.c:4
+msgid "Mod Icons Panel"
+msgstr "Pannello delle icone delle Mod"
 
-#: qcsrc/menu/xonotic/dialog_credits.c:5
-msgid "Credits"
-msgstr "Crediti"
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:4
+msgid "Notification Panel"
+msgstr "Pannello di notifica"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:5
-msgid "Advanced settings"
-msgstr "Impostazioni avanzate"
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:22
+msgid "Notifications:"
+msgstr "Notifiche:"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:23
-msgid "Cvar filter:"
-msgstr "Filtro delle cvar:"
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:25
+msgid "Also print notifications to the console"
+msgstr "Mostra anche le notifiche sulla console"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:24
-#: qcsrc/menu/xonotic/dialog_settings_input.c:41
-#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:29
-#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:33
-msgid "Clear"
-msgstr "Pulisci"
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:28
+msgid "Flip notify order"
+msgstr "Inverti ordine delle notifiche"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:34
-msgid "Setting:"
-msgstr "Impostazioni:"
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:31
+msgid "Entry lifetime:"
+msgstr "Durata notifica:"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:38
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:248
-msgid "Type:"
-msgstr "Tipo:"
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:35
+msgid "Entry fadetime:"
+msgstr "Durata dissolvenza:"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:42
-msgid "Value:"
-msgstr "Valore:"
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:4
+msgid "Powerups Panel"
+msgstr "Pannello dei Powerup"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:54
-msgid "Description:"
-msgstr "Descrizione:"
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:45
+msgid "Flip strength and shield positions"
+msgstr "Inverti posizioni di forza e scudo"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:4
 msgid "Pressed Keys Panel"
@@ -450,142 +315,101 @@ msgstr "Pannello sempre abilitato"
 msgid "Forced aspect:"
 msgstr "Forza aspetto:"
 
-#: qcsrc/menu/xonotic/dialog_teamselect.c:5
-msgid "Team Selection"
-msgstr "Selezione team"
+#: qcsrc/menu/xonotic/dialog_hudpanel_racetimer.c:4
+msgid "Race Timer Panel"
+msgstr "Pannello tempi Corsa"
 
-#: qcsrc/menu/xonotic/dialog_teamselect.c:41
-msgid "join 'best' team (auto-select)"
-msgstr "entra nel 'miglior' team (auto-selezione)"
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:4
+msgid "Radar Panel"
+msgstr "Pannello Radar"
 
-#: qcsrc/menu/xonotic/dialog_teamselect.c:45
-msgid "red"
-msgstr "rosso"
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:22
+msgid "Panel enabled in teamgames"
+msgstr "Pannello abilitato nei teamgames"
 
-#: qcsrc/menu/xonotic/dialog_teamselect.c:46
-msgid "blue"
-msgstr "blu"
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:29
+msgid "Radar:"
+msgstr "Radar:"
 
-#: qcsrc/menu/xonotic/dialog_teamselect.c:47
-msgid "yellow"
-msgstr "giallo"
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:32
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:43
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:82
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:154
+#: qcsrc/menu/xonotic/util.qc:608
+msgid "Alpha:"
+msgstr "Opacità:"
 
-#: qcsrc/menu/xonotic/dialog_teamselect.c:48
-msgid "pink"
-msgstr "rosa"
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:36
+msgid "Rotation:"
+msgstr "Rotazione:"
 
-#: qcsrc/menu/xonotic/dialog_teamselect.c:51
-msgid "spectate"
-msgstr "spettatore"
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:38
+msgid "Forward"
+msgstr "Avanti"
 
-#: qcsrc/menu/xonotic/slider_resolution.c:65
-#, c-format
-msgid "%dx%d"
-msgstr "%dx%d"
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:39
+msgid "West"
+msgstr "Ovest"
 
-#: qcsrc/menu/xonotic/dialog_settings.c:4
-msgid "Settings"
-msgstr "Impostazioni"
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:40
+msgid "South"
+msgstr "Sud"
 
-#: qcsrc/menu/xonotic/dialog_settings.c:18
-#: qcsrc/menu/xonotic/dialog_settings_input.c:4
-msgid "Input"
-msgstr "Comandi"
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:41
+msgid "East"
+msgstr "Est"
 
-#: qcsrc/menu/xonotic/dialog_settings.c:20
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:4
-msgid "Effects"
-msgstr "Effetti"
-
-#: qcsrc/menu/xonotic/dialog_settings.c:21
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:4
-msgid "Audio"
-msgstr "Audio"
-
-#: qcsrc/menu/xonotic/dialog_settings.c:22
-#: qcsrc/menu/xonotic/dialog_settings_network.c:4
-msgid "Network"
-msgstr "Rete"
-
-#: qcsrc/menu/xonotic/dialog_settings.c:23
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:4
-msgid "Misc"
-msgstr "Altro"
-
-#: qcsrc/menu/xonotic/dialog_firstrun.c:4
-msgid "Welcome"
-msgstr "Benvenuto"
-
-#: qcsrc/menu/xonotic/dialog_firstrun.c:32
-msgid "Please answer a few initial questions to enhance the game experience."
-msgstr "Per favore rispondi a poche domande iniziali per migliorare l'esperienza di gioco."
-
-#: qcsrc/menu/xonotic/dialog_firstrun.c:36
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:35
-msgid "Text language:"
-msgstr "Lingua testo:"
-
-#: qcsrc/menu/xonotic/dialog_firstrun.c:45
-#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:39
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:40
-msgid "Name:"
-msgstr "Nome:"
-
-#: qcsrc/menu/xonotic/dialog_firstrun.c:67
-msgid "Save settings"
-msgstr "Salva impostazioni"
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:42
+msgid "North"
+msgstr "Nord"
 
-#: qcsrc/menu/xonotic/campaign.c:284
-#: qcsrc/menu/xonotic/dialog_singleplayer.c:66
-msgid "???"
-msgstr "???"
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:46
+msgid "Scale:"
+msgstr "Scala:"
 
-#: qcsrc/menu/xonotic/campaign.c:285
-#, c-format
-msgid "Level %d: %s"
-msgstr "Livello %d: %s"
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:50
+msgid "Zoom mode:"
+msgstr "Modalità zoom:"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:26
-msgid "Key bindings:"
-msgstr "Associazione tasti (bind):"
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:52
+msgid "Zoomed in"
+msgstr "Ingrandito"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:31
-msgid "Change key..."
-msgstr "Cambia tasto..."
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:53
+msgid "Zoomed out"
+msgstr "Non ingrandito"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:35
-msgid "Edit..."
-msgstr "Modifica..."
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:54
+msgid "Always zoomed"
+msgstr "Sempre ingrandito"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:46
-msgid "Sensitivity:"
-msgstr "Sensibilità:"
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:55
+msgid "Never zoomed"
+msgstr "Mai ingrandito"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:49
-msgid "UI mouse speed:"
-msgstr "Velocità UI mouse:"
+#: qcsrc/menu/xonotic/dialog_hudpanel_score.c:4
+msgid "Score Panel"
+msgstr "Pannello punteggio"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:52
-msgid "Mouse filter"
-msgstr "Filtro mouse"
+#: qcsrc/menu/xonotic/dialog_hudpanel_timer.c:4
+msgid "Timer Panel"
+msgstr "Pannello tempo"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:54
-msgid "Invert mouse"
-msgstr "Inverti mouse"
+#: qcsrc/menu/xonotic/dialog_hudpanel_timer.c:22
+msgid "Timer:"
+msgstr "Tempo:"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:57
-#: qcsrc/menu/xonotic/dialog_settings_input.c:59
-msgid "Use joystick input"
-msgstr "Usa joystick"
+#: qcsrc/menu/xonotic/dialog_hudpanel_timer.c:25
+msgid "Show elapsed time"
+msgstr "Mostra tempo trascorso"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:62
-#: qcsrc/menu/xonotic/dialog_settings_input.c:64
-msgid "Turn off OS mouse acceleration"
-msgstr "Disattiva l'accelerazione mouse dell'OS"
+#: qcsrc/menu/xonotic/dialog_hudpanel_vote.c:4
+msgid "Vote Panel"
+msgstr "Pannello di voto"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:66
-msgid "\"enter console\" also closes"
-msgstr "\"apri console\" chiude anche"
+#: qcsrc/menu/xonotic/dialog_hudpanel_vote.c:22
+msgid "Alpha after voting:"
+msgstr "Opacità dopo aver votato:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:4
 msgid "Weapons Panel"
@@ -595,6 +419,11 @@ msgstr "Pannello armi"
 msgid "Fade out after:"
 msgstr "Dissolvi dopo:"
 
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:26
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:36
+msgid "Never"
+msgstr "Mai"
+
 #: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:28
 #, c-format
 msgid "%ds"
@@ -652,315 +481,363 @@ msgstr "Colore barra munizioni:"
 msgid "Ammo bar alpha:"
 msgstr "Opacità barra munizioni:"
 
-#: qcsrc/menu/xonotic/mainwindow.c:35
-#: qcsrc/menu/xonotic/mainwindow.c:38
-msgid "Do not press this button again!"
-msgstr "Non premere questo tasto di nuovo!"
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:4
+msgid "Panel HUD Setup"
+msgstr "Setup del Panel HUD"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_engineinfo.c:4
-msgid "Engine Info Panel"
-msgstr "Pannello info motore"
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:21
+msgid "Panel background defaults:"
+msgstr "Sfondo del pannello predefinito:"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_engineinfo.c:22
-msgid "Engine info:"
-msgstr "Info motore:"
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:25
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:37
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:52
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:91 qcsrc/menu/xonotic/util.qc:586
+#: qcsrc/menu/xonotic/util.qc:602 qcsrc/menu/xonotic/util.qc:619
+msgid "Disable"
+msgstr "Disabilita"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_engineinfo.c:25
-msgid "Use an averaging algorithm for fps"
-msgstr "Usa un algoritmo mediano per gli fps"
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:30
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:77 qcsrc/menu/xonotic/util.qc:591
+msgid "Color:"
+msgstr "Colore:"
 
-#: qcsrc/menu/xonotic/dialog_quit.c:4
-msgid "Quit"
-msgstr "Esci"
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:35 qcsrc/menu/xonotic/util.qc:599
+msgid "Border size:"
+msgstr "Dimensioni del bordo:"
 
-#: qcsrc/menu/xonotic/dialog_quit.c:17
-msgid "Are you sure you want to quit?"
-msgstr "Sei sicuro di voler uscire?"
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:50
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:89
+msgid "Team color:"
+msgstr "Colore team:"
 
-#: qcsrc/menu/xonotic/dialog_quit.c:20
-msgid "Yes"
-msgstr "Si"
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:58 qcsrc/menu/xonotic/util.qc:625
+msgid "Test team color in configure mode"
+msgstr "Prova colore team in modalità configurazione"
 
-#: qcsrc/menu/xonotic/dialog_quit.c:21
-msgid "No"
-msgstr "No"
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:61 qcsrc/menu/xonotic/util.qc:628
+msgid "Padding:"
+msgstr "Riempimento:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:4
-msgid "Join"
-msgstr "Entra"
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:68
+msgid "HUD Dock:"
+msgstr "Sfondo dell'HUD:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:28
-#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:32
-msgid "Filter:"
-msgstr "Filtro:"
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:70
+msgid "DOCK^Disabled"
+msgstr "DOCK^Disabilitato"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:36
-msgid "SRVS^Empty"
-msgstr "SRVS^Vuoti"
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:71
+msgid "DOCK^Small"
+msgstr "DOCK^Piccolo"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:40
-msgid "SRVS^Full"
-msgstr "SRVS^Pieni"
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:72
+msgid "DOCK^Medium"
+msgstr "DOCK^Medio"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:44
-msgid "Pause"
-msgstr "In pausa"
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:73
+msgid "DOCK^Large"
+msgstr "DOCK^Largo"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:56
-msgid "Address:"
-msgstr "Indirizzo:"
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:96
+msgid "Grid settings:"
+msgstr "Impostazioni griglia:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:65
-msgid "Info..."
-msgstr "Info..."
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:99
+msgid "Snap panels to grid"
+msgstr "Incolla i pannelli alla griglia"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:70
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:311
-msgid "Join!"
-msgstr "Entra!"
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:102
+msgid "Grid size:"
+msgstr "Dimensioni griglia:"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:4
-msgid "Notification Panel"
-msgstr "Pannello di notifica"
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:103
+msgid "X:"
+msgstr "X:"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:22
-msgid "Notifications:"
-msgstr "Notifiche:"
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:109
+msgid "Y:"
+msgstr "Y:"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:25
-msgid "Also print notifications to the console"
-msgstr "Mostra anche le notifiche sulla console"
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:117
+msgid "Exit setup"
+msgstr "Esci dal setup"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:28
-msgid "Flip notify order"
-msgstr "Inverti ordine delle notifiche"
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:4
+msgid "Multiplayer"
+msgstr "Multiplayer"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:31
-msgid "Entry lifetime:"
-msgstr "Durata notifica:"
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:18
+msgid "Servers"
+msgstr "Server"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:35
-msgid "Entry fadetime:"
-msgstr "Durata dissolvenza:"
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:19
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:5
+msgid "Create"
+msgstr "Crea"
 
-#: qcsrc/menu/xonotic/util.qh:49
-msgid "Enable panel"
-msgstr "Abilita pannello"
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:20
+msgid "Demos"
+msgstr "Demo"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:26
-msgid "Menu skins:"
-msgstr "Temi del menu:"
-
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:47
-msgid "Show current time"
-msgstr "Mostra orario corrente"
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:21
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:5
+msgid "Player Setup"
+msgstr "Setup giocatore"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:49
-msgid "Show current date"
-msgstr "Mostra data corrente"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:35
+msgid "Game type:"
+msgstr "Tipo di gioco:"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:51
-msgid "Show frames per second"
-msgstr "Mostra fotogrammi al secondo"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:47
+msgid "Match settings:"
+msgstr "Impostazioni partita:"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:53
-msgid "Speedometer"
-msgstr "Tachimetro"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:50
+msgid "Time limit:"
+msgstr "Limite di tempo:"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:56
-msgid "qu/s (hidden)"
-msgstr "qu/s (nascosto)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:54
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:62
+msgid "Use map specified default"
+msgstr "Usa le impostazioni di default della mappa"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:58
-msgid "qu/s"
-msgstr "qu/s"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:57
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:156
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:157
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:158
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:162
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:163
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:164
+msgid "Point limit:"
+msgstr "Limiti di punteggio:"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:60
-msgid "m/s"
-msgstr "m/s"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:65
+msgid "Player slots:"
+msgstr "Posti per giocatori:"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:64
-msgid "km/h"
-msgstr "km/h"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:68
+msgid "Number of bots:"
+msgstr "Numero di bot:"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:66
-msgid "mph"
-msgstr "mph"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:72
+msgid "Bot skill:"
+msgstr "Abilità bot:"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:68
-msgid "knots"
-msgstr "nodi"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:75
+msgid "Botlike"
+msgstr "\"Come un bot\""
 
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:71
-msgid "Show accelerometer"
-msgstr "Mostra accelerometro"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:76
+msgid "Beginner"
+msgstr "Principiante"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:74
-msgid "Accelerometer scale:"
-msgstr "Scala accelerometro:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:77
+msgid "You will win"
+msgstr "Vincerai"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:80
-msgid "Minimize input latency"
-msgstr "Minimizza latenza in entrata"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:78
+msgid "You can win"
+msgstr "Puoi vincere"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:84
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:98
-msgid "Advanced settings..."
-msgstr "Impostazioni avanzate..."
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:79
+msgid "You might win"
+msgstr "Potresti vincere"
 
-#: qcsrc/menu/xonotic/dialog_singleplayer.c:4
-msgid "Singleplayer"
-msgstr "Giocatore singolo"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:80
+msgid "Advanced"
+msgstr "Avanzato"
 
-#: qcsrc/menu/xonotic/dialog_singleplayer.c:59
-msgid "Instant action! (random map with bots)"
-msgstr "Inizia ora! (mappa casuale con bot)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:81
+msgid "Expert"
+msgstr "Esperto"
 
-#: qcsrc/menu/xonotic/dialog_singleplayer.c:80
-msgid "Start Singleplayer!"
-msgstr "Inizia modalità Giocatore Singolo!"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:82
+msgid "Pro"
+msgstr "Pro"
 
-#: qcsrc/menu/xonotic/skinlist.c:105
-msgid "<TITLE>"
-msgstr "<TITOLO>"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:83
+msgid "Assassin"
+msgstr "Assassino"
 
-#: qcsrc/menu/xonotic/skinlist.c:106
-msgid "<AUTHOR>"
-msgstr "<AUTORE>"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:84
+msgid "Unhuman"
+msgstr "Inumano"
 
-#: qcsrc/menu/xonotic/skinlist.c:163
-#, c-format
-msgid "%s: %s"
-msgstr "%s: %s"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:85
+msgid "Godlike"
+msgstr "\"Come un Dio\""
 
-#: qcsrc/menu/xonotic/dialog_news.c:4
-msgid "News"
-msgstr "Notizie"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:89
+msgid "Mutators..."
+msgstr "Mutatori..."
 
-#: qcsrc/menu/xonotic/dialog_news.c:18
-msgid "http://www.xonotic.org/team/blog/"
-msgstr "http://www.xonotic.org/team/blog/"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:98
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:84
+msgid "Advanced settings..."
+msgstr "Impostazioni avanzate..."
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:5
-msgid "Server Information"
-msgstr "Informazioni del server"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:105
+msgid "Map list:"
+msgstr "Lista delle mappe:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:115
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:116
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:177
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:183
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:193
-msgid "N/A"
-msgstr "N/A"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:111
+msgid "Select all"
+msgstr "Seleziona tutto"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:151
-#, c-format
-msgid "%d/%d"
-msgstr "%d/%d"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:114
+msgid "Select none"
+msgstr "Deseleziona tutto"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:166
-msgid "Official settings"
-msgstr "Impostazioni ufficiali"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:120
+msgid "Start Multiplayer!"
+msgstr "Inizia Multiplayer!"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:166
-#, c-format
-msgid "%d modified settings"
-msgstr "%d impostazioni modificate"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:155
+msgid "Capture limit:"
+msgstr "Limite catture:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:191
-msgid "N/A (can't connect)"
-msgstr "N/A (impossibile connettersi)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:159
+msgid "Lives:"
+msgstr "Vite:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:199
-msgid "not supported (can't connect)"
-msgstr "non supportato (impossibile connettersi)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:160
+msgid "Laps:"
+msgstr "Giri:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:201
-msgid "not supported (won't encrypt)"
-msgstr "non supportato (non criptato)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:161
+msgid "Goals:"
+msgstr "Goal:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:205
-msgid "supported (will encrypt)"
-msgstr "supportato (criptato)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:165
+msgid "Frag limit:"
+msgstr "Limiti di frag:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:207
-msgid "supported (won't encrypt)"
-msgstr "supportato (non criptato)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:6
+msgid "Advanced server settings"
+msgstr "Impostazioni avanzate server"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:211
-msgid "requested (will encrypt)"
-msgstr "richiesto (criptato)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:25
+msgid "Game settings:"
+msgstr "Impostazioni gioco:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:213
-msgid "requested (won't encrypt)"
-msgstr "richiesto (non criptato)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:28
+msgid "Allow spectating"
+msgstr "Permetti spettatori"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:217
-msgid "required (can't connect)"
-msgstr "richiesto (impossibile connettersi)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:31
+msgid "Spawn shield:"
+msgstr "Protezione nascita:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:219
-msgid "required (will encrypt)"
-msgstr "richiesto (criptato)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:36
+msgid "Game speed:"
+msgstr "Velocità gioco:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:240
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:263
-msgid "Players:"
-msgstr "Giocatori:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:40
+msgid "Teamplay settings:"
+msgstr "Impostazioni Teamplay:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:253
-msgid "Map:"
-msgstr "Mappa:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:43
+msgid "Friendly fire scale:"
+msgstr "Scala di fuoco amico:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:258
-msgid "Gameplay:"
-msgstr "Gameplay:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:47
+msgid "Virtual friendly fire (effect only)"
+msgstr "Penalità virtuale (solo effetto)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:268
-msgid "Bots:"
-msgstr "Bot:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:50
+msgid "Friendly fire penalty:"
+msgstr "Penalità fuoco amico:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:273
-msgid "Mod:"
-msgstr "Mod:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:54
+msgid "Virtual penalty (effect only)"
+msgstr "Penalità virtuale (solo effetto)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:278
-msgid "Version:"
-msgstr "Versione:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:57
+msgid "Teams:"
+msgstr "Team:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:283
-msgid "Ping:"
-msgstr "Ping:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:66
+msgid "Map voting:"
+msgstr "Voto della mappa:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:289
-msgid "CA:"
-msgstr "CA:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:68
+msgid "No voting"
+msgstr "Nessun voto"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:295
-msgid "Key:"
-msgstr "Chiave:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:69
+msgid "2 choices"
+msgstr "2 scelte"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:301
-msgid "Encryption:"
-msgstr "Crittografia:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:70
+msgid "3 choices"
+msgstr "3 scelte"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:71
+msgid "4 choices"
+msgstr "4 scelte"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:72
+msgid "5 choices"
+msgstr "5 scelte"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:73
+msgid "6 choices"
+msgstr "6 scelte"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:74
+msgid "7 choices"
+msgstr "7 scelte"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:75
+msgid "8 choices"
+msgstr "8 scelte"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:76
+msgid "9 choices"
+msgstr "9 scelte"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:79
+msgid "Simple majority wins vcall"
+msgstr "La semplice maggioranza vince il vcall"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:5
+msgid "Map Information"
+msgstr "Informazioni mappa"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:49
+msgid "Full item placement"
+msgstr "Posizionamento oggetti completo"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:49
+msgid "MinstaGib only"
+msgstr "Solo MinstaGib"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:78
+msgid "Title:"
+msgstr "Titolo:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:84
+msgid "Author:"
+msgstr "Autore:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:90
+msgid "Features:"
+msgstr "Caratteristiche:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:95
+msgid "Game types:"
+msgstr "Tipi di gioco:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:308
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:119
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:314
 msgid "Close"
 msgstr "Chiudi"
 
-#: qcsrc/menu/xonotic/slider_decibels.c:50
-msgid "VOL^OFF"
-msgstr "VOL^OFF"
-
-#: qcsrc/menu/xonotic/slider_decibels.c:52
-msgid "VOL^MAX"
-msgstr "VOL^MAX"
-
-#: qcsrc/menu/xonotic/slider_decibels.c:53
-#, c-format
-msgid "%s dB"
-msgstr "%s dB"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:122
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:46
+msgid "Play"
+msgstr "Gioca"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:7
 msgid "Mutators"
@@ -1085,246 +962,166 @@ msgstr "Arene speciali:"
 msgid "Most weapons"
 msgstr "Maggior parte delle armi"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:4
-msgid "Radar Panel"
-msgstr "Pannello Radar"
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:4
+msgid "Demo"
+msgstr "Demo"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:22
-msgid "Panel enabled in teamgames"
-msgstr "Pannello abilitato nei teamgames"
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:28
+msgid "Record demos while playing"
+msgstr "Registra demo durante le partite"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:29
-msgid "Radar:"
-msgstr "Radar:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:32
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:28
+msgid "Filter:"
+msgstr "Filtro:"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:36
-msgid "Rotation:"
-msgstr "Rotazione:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:33
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:29
+#: qcsrc/menu/xonotic/dialog_settings_input.c:41
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:24
+msgid "Clear"
+msgstr "Pulisci"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:38
-msgid "Forward"
-msgstr "Avanti"
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:43
+msgid "Timedemo"
+msgstr "Timedemo"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:39
-msgid "West"
-msgstr "Ovest"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:4
+msgid "Join"
+msgstr "Entra"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:40
-msgid "South"
-msgstr "Sud"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:36
+msgid "SRVS^Empty"
+msgstr "SRVS^Vuoti"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:41
-msgid "East"
-msgstr "Est"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:40
+msgid "SRVS^Full"
+msgstr "SRVS^Pieni"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:42
-msgid "North"
-msgstr "Nord"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:44
+msgid "Pause"
+msgstr "In pausa"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:46
-msgid "Scale:"
-msgstr "Scala:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:56
+msgid "Address:"
+msgstr "Indirizzo:"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:50
-msgid "Zoom mode:"
-msgstr "Modalità zoom:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:67
+msgid "Info..."
+msgstr "Info..."
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:52
-msgid "Zoomed in"
-msgstr "Ingrandito"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:72
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:317
+msgid "Join!"
+msgstr "Entra!"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:53
-msgid "Zoomed out"
-msgstr "Non ingrandito"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:5
+msgid "Server Information"
+msgstr "Informazioni del server"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:54
-msgid "Always zoomed"
-msgstr "Sempre ingrandito"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:115
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:116
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:183
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:189
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:199
+msgid "N/A"
+msgstr "N/A"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:55
-msgid "Never zoomed"
-msgstr "Mai ingrandito"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:158
+#, c-format
+msgid "%d/%d, %d free player slots"
+msgstr "%d/%d, %d slot liberi"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_racetimer.c:4
-msgid "Race Timer Panel"
-msgstr "Pannello tempi Corsa"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:172
+#, c-format
+msgid "%d modified settings"
+msgstr "%d impostazioni modificate"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:4
-msgid "Chat Panel"
-msgstr "Pannello Chat"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:172
+msgid "Official settings"
+msgstr "Impostazioni ufficiali"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:22
-msgid "Chat entries:"
-msgstr "N° righe della chat:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:197
+msgid "N/A (can't connect)"
+msgstr "N/A (impossibile connettersi)"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:25
-msgid "Chat size:"
-msgstr "Dimensioni chat:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:205
+msgid "not supported (can't connect)"
+msgstr "non supportato (impossibile connettersi)"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:29
-msgid "Chat lifetime:"
-msgstr "Durata chat:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:207
+msgid "not supported (won't encrypt)"
+msgstr "non supportato (non criptato)"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:33
-msgid "Chat beep sound"
-msgstr "Suono della chat"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:211
+msgid "supported (will encrypt)"
+msgstr "supportato (criptato)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:5
-#: qcsrc/menu/xonotic/dialog_multiplayer.c:19
-msgid "Create"
-msgstr "Crea"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:213
+msgid "supported (won't encrypt)"
+msgstr "supportato (non criptato)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:35
-msgid "Game type:"
-msgstr "Tipo di gioco:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:217
+msgid "requested (will encrypt)"
+msgstr "richiesto (criptato)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:47
-msgid "Match settings:"
-msgstr "Impostazioni partita:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:219
+msgid "requested (won't encrypt)"
+msgstr "richiesto (non criptato)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:50
-msgid "Time limit:"
-msgstr "Limite di tempo:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:223
+msgid "required (can't connect)"
+msgstr "richiesto (impossibile connettersi)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:54
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:62
-msgid "Use map specified default"
-msgstr "Usa le impostazioni di default della mappa"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:225
+msgid "required (will encrypt)"
+msgstr "richiesto (criptato)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:57
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:156
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:157
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:158
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:162
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:163
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:164
-msgid "Point limit:"
-msgstr "Limiti di punteggio:"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:65
-msgid "Player slots:"
-msgstr "Posti per giocatori:"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:68
-msgid "Number of bots:"
-msgstr "Numero di bot:"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:72
-msgid "Bot skill:"
-msgstr "Abilità bot:"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:75
-msgid "Botlike"
-msgstr "\"Come un bot\""
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:76
-msgid "Beginner"
-msgstr "Principiante"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:77
-msgid "You will win"
-msgstr "Vincerai"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:78
-msgid "You can win"
-msgstr "Puoi vincere"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:79
-msgid "You might win"
-msgstr "Potresti vincere"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:80
-msgid "Advanced"
-msgstr "Avanzato"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:81
-msgid "Expert"
-msgstr "Esperto"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:82
-msgid "Pro"
-msgstr "Pro"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:83
-msgid "Assassin"
-msgstr "Assassino"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:84
-msgid "Unhuman"
-msgstr "Inumano"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:85
-msgid "Godlike"
-msgstr "\"Come un Dio\""
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:89
-msgid "Mutators..."
-msgstr "Mutatori..."
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:105
-msgid "Map list:"
-msgstr "Lista delle mappe:"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:111
-msgid "Select all"
-msgstr "Seleziona tutto"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:114
-msgid "Select none"
-msgstr "Deseleziona tutto"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:120
-msgid "Start Multiplayer!"
-msgstr "Inizia Multiplayer!"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:155
-msgid "Capture limit:"
-msgstr "Limite catture:"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:159
-msgid "Lives:"
-msgstr "Vite:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:246
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:269
+msgid "Players:"
+msgstr "Giocatori:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:160
-msgid "Laps:"
-msgstr "Giri:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:254
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:38
+msgid "Type:"
+msgstr "Tipo:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:161
-msgid "Goals:"
-msgstr "Goal:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:259
+msgid "Map:"
+msgstr "Mappa:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:165
-msgid "Frag limit:"
-msgstr "Limiti di frag:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:264
+msgid "Gameplay:"
+msgstr "Gameplay:"
 
-#: qcsrc/menu/xonotic/dialog_singleplayer_winner.c:4
-msgid "Winner"
-msgstr "Vincitore"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:274
+msgid "Bots:"
+msgstr "Bot:"
 
-#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:5
-msgid "User defined key bind"
-msgstr "Tasti \"bind\" definiti dall'utente"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:279
+msgid "Mod:"
+msgstr "Mod:"
 
-#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:42
-msgid "Command when pressed:"
-msgstr "Comando quando premuto:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:284
+msgid "Version:"
+msgstr "Versione:"
 
-#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:45
-msgid "Command when released:"
-msgstr "Comando quando rilasciato:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:289
+msgid "Ping:"
+msgstr "Ping:"
 
-#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:48
-msgid "Save"
-msgstr "Salva"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:295
+msgid "CA:"
+msgstr "CA:"
 
-#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:51
-msgid "Cancel"
-msgstr "Annulla"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:301
+msgid "Key:"
+msgstr "Chiave:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:5
-#: qcsrc/menu/xonotic/dialog_multiplayer.c:21
-msgid "Player Setup"
-msgstr "Setup giocatore"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:307
+msgid "Encryption:"
+msgstr "Crittografia:"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:63
 msgid "Model:"
@@ -1355,7 +1152,7 @@ msgid "Crosshair:"
 msgstr "Mirino:"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:111
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:143
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:139
 msgid "Per weapon"
 msgstr "Per singola arma"
 
@@ -1367,1036 +1164,1617 @@ msgstr "Dimensioni mirino:"
 msgid "Crosshair alpha:"
 msgstr "Opacità mirino:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:138
-msgid "Crosshair color:"
-msgstr "Colore mirino:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:138
+msgid "Crosshair color:"
+msgstr "Colore mirino:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:140
+msgid "By health"
+msgstr "In base alla vita"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:143
+msgid "Custom"
+msgstr "Personalizzato"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:148
+msgid "Enable center dot"
+msgstr "Abilita puntino al centro"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:151
+msgid "Size:"
+msgstr "Dimensioni:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:158
+msgid "Hit test:"
+msgstr "Test colpi:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:159
+msgid "HTST^None"
+msgstr "HTST^Nessuno"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:160
+msgid "TrueAim"
+msgstr "TrueAim"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:161
+msgid "Enemies"
+msgstr "Nemici"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:164
+msgid "Waypoints setup..."
+msgstr "Setup dei waypoint..."
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:169
+msgid "Enter HUD editor"
+msgstr "Apri HUD editor"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:174
+msgid "Force models:"
+msgstr "Forza modelli:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:175
+msgid "MDL^None"
+msgstr "MDL^Nessuno"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:176
+msgid "MDL^Custom"
+msgstr "MDL^Personalizzato"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:177
+msgid "MDL^All"
+msgstr "MDL^Tutti"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:180
+msgid "Disable gore effects"
+msgstr "Disabilita effetti sangue"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:182
+msgid "Gibs:"
+msgstr "Gib:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:184
+msgid "GIBS^None"
+msgstr "GIBS^Nessuno"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:185
+msgid "GIBS^Few"
+msgstr "GIBS^Pochi"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:186
+msgid "GIBS^Many"
+msgstr "GIBS^Molti"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:187
+msgid "GIBS^Lots"
+msgstr "GIBS^Parecchi"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:191
+msgid "Damage splash:"
+msgstr "Schizzo del danno:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:195
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:178
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:194
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:30
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:41
+#: qcsrc/menu/xonotic/dialog_settings_video.c:105
+msgid "Apply immediately"
+msgstr "Applica immediatamente"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:5
+msgid "Waypoints"
+msgstr "Waypoint"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:23
+msgid "Show base waypoints"
+msgstr "Mostra i waypoint della base"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:25
+msgid "Waypoint scale:"
+msgstr "Grandezza dei waypoint:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:29
+msgid "Waypoint alpha:"
+msgstr "Opacità dei waypoint"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:34
+msgid "Show names:"
+msgstr "Mostra nomi:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:37
+msgid "Teammates"
+msgstr "Compagni del team"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:38
+msgid "All players"
+msgstr "Tutti i giocatori"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:6
+msgid "Weapon settings"
+msgstr "Impostazioni arma"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:29
+msgid "Weapon priority list:"
+msgstr "Lista priorità armi:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:34
+msgid "Up"
+msgstr "Su"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:37
+msgid "Down"
+msgstr "Giù"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:41
+msgid "Use priority list for weapon cycling"
+msgstr "Usa la lista di priorità per ciclare le armi"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:43
+msgid "Auto switch weapons on pickup"
+msgstr "Cambia automaticamente armi dopo raccolta"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:45
+msgid "Draw 1st person weapon model"
+msgstr "Mostra modello arma in 1ª persona"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:48
+msgid "Left align"
+msgstr "Allinea a sinistra"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:50
+msgid "Right align"
+msgstr "Allinea a destra"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:53
+msgid "Flip view horizontally"
+msgstr "Capovolgi la vista orizzontalmente"
+
+#: qcsrc/menu/xonotic/dialog_news.c:4
+msgid "News"
+msgstr "Notizie"
+
+#: qcsrc/menu/xonotic/dialog_news.c:18
+msgid "http://www.xonotic.org/team/blog/"
+msgstr "http://www.xonotic.org/team/blog/"
+
+#: qcsrc/menu/xonotic/dialog_quit.c:4
+msgid "Quit"
+msgstr "Esci"
+
+#: qcsrc/menu/xonotic/dialog_quit.c:17
+msgid "Are you sure you want to quit?"
+msgstr "Sei sicuro di voler uscire?"
+
+#: qcsrc/menu/xonotic/dialog_quit.c:20
+msgid "Yes"
+msgstr "Si"
+
+#: qcsrc/menu/xonotic/dialog_quit.c:21
+msgid "No"
+msgstr "No"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:4
+msgid "Settings"
+msgstr "Impostazioni"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:18
+#: qcsrc/menu/xonotic/dialog_settings_input.c:4
+msgid "Input"
+msgstr "Comandi"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:19
+#: qcsrc/menu/xonotic/dialog_settings_video.c:4
+msgid "Video"
+msgstr "Video"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:20
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:4
+msgid "Effects"
+msgstr "Effetti"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:21
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:4
+msgid "Audio"
+msgstr "Audio"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:22
+#: qcsrc/menu/xonotic/dialog_settings_network.c:4
+msgid "Network"
+msgstr "Rete"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:23
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:4
+msgid "Misc"
+msgstr "Altro"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:27
+msgid "Master:"
+msgstr "Master:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:33
+msgid "Music:"
+msgstr "Musica:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:40
+msgid "VOL^Ambient:"
+msgstr "VOL^Ambiente:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:48
+msgid "Info:"
+msgstr "Info:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:57
+msgid "Items:"
+msgstr "Oggetti:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:65
+msgid "Pain:"
+msgstr "Dolore:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:73
+msgid "Player:"
+msgstr "Giocatore:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:81
+msgid "Shots:"
+msgstr "Spari:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:88
+msgid "Voice:"
+msgstr "Voce:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:96
+msgid "Weapons:"
+msgstr "Armi:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:103
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:161
+msgid "Frequency:"
+msgstr "Frequenza:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:105
+msgid "8 kHz"
+msgstr "8 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:106
+msgid "11.025 kHz"
+msgstr "11.025 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:107
+msgid "16 kHz"
+msgstr "16 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:108
+msgid "22.05 kHz"
+msgstr "22.05 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:109
+msgid "24 kHz"
+msgstr "24 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:110
+msgid "32 kHz"
+msgstr "32 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:111
+msgid "44.1 kHz"
+msgstr "44.1 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:112
+msgid "48 kHz"
+msgstr "48 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:115
+msgid "Channels:"
+msgstr "Canali:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:117
+msgid "Mono"
+msgstr "Mono"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:118
+msgid "Stereo"
+msgstr "Stereo"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:119
+msgid "2.1"
+msgstr "2.1"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:120
+msgid "4"
+msgstr "4"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:121
+msgid "5"
+msgstr "5"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:122
+msgid "5.1"
+msgstr "5.1"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:123
+msgid "6.1"
+msgstr "6.1"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:124
+msgid "7.1"
+msgstr "7.1"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:128
+msgid "Swap Stereo"
+msgstr "Scambia canali stereo"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:132
+msgid "Headphone friendly mode"
+msgstr "Modalità cuffie"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:136
+msgid "Spatial voices:"
+msgstr "Voci spaziali:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:137
+msgid "VOCS^None"
+msgstr "VOCS^Nessuna"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:138
+msgid "VOCS^Taunts"
+msgstr "VOCS^Insulti"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:139
+msgid "VOCS^All"
+msgstr "VOCS^Tutte"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:142
+msgid "Taunt range:"
+msgstr "Range di insulti:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:145
+msgid "RNG^Very short"
+msgstr "RNG^Molto ristretto"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:146
+msgid "RNG^Short"
+msgstr "RNG^Ristretto"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:147
+msgid "RNG^Normal"
+msgstr "RNG^Normale"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:148
+msgid "RNG^Long"
+msgstr "RNG^Lungo"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:149
+msgid "RNG^Full"
+msgstr "RNG^Pieno"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:156
+msgid "Automatic taunts"
+msgstr "Insulti automatici"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:165
+msgid "Time warning:"
+msgstr "Avvertimento di tempo:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:167
+msgid "WRN^None"
+msgstr "WRN^Nessuno"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:168
+msgid "1 minute"
+msgstr "1 minuto"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:169
+msgid "5 minutes"
+msgstr "5 minuti"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:170
+msgid "WRN^Both"
+msgstr "WNR^Entrambi"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:173
+msgid "Hit indicator"
+msgstr "Indicatore di colpo"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:175
+msgid "Menu sounds"
+msgstr "Suoni del menu"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:38
+msgid "Quality preset:"
+msgstr "Preset qualità:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:41
+msgid "PRE^OMG!"
+msgstr "PRE^Oh mio dio!"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:42
+msgid "PRE^Low"
+msgstr "PRE^Bassa"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:43
+msgid "PRE^Medium"
+msgstr "PRE^Media"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:44
+msgid "PRE^Normal"
+msgstr "PRE^Normale"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:45
+msgid "PRE^High"
+msgstr "PRE^Alta"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:46
+msgid "PRE^Ultra"
+msgstr "PRE^Ultra"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:48
+msgid "PRE^Ultimate"
+msgstr "PRE^Massima"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:52
+msgid "Geometry detail:"
+msgstr "Dettagli geometrici:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:54
+msgid "DET^Lowest"
+msgstr "DET^Molto bassi"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:55
+msgid "DET^Low"
+msgstr "DET^Bassi"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:56
+msgid "DET^Normal"
+msgstr "DET^Normali"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:57
+msgid "DET^Good"
+msgstr "DET^Buoni"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:58
+msgid "DET^Best"
+msgstr "DET^Ottimi"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:59
+msgid "DET^Insane"
+msgstr "DET^Bestiali"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:62
+msgid "Antialiasing:"
+msgstr "Antialiasing:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:64
+msgid "AA^Disabled"
+msgstr "AA^Disabilitato"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:65
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:103
+msgid "2x"
+msgstr "2x"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:66
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:104
+msgid "4x"
+msgstr "4x"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:70
+msgid "Texture resolution:"
+msgstr "Risoluzione texture:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:73
+msgid "RES^Leet"
+msgstr "RES^Leet"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:74
+msgid "RES^Lowest"
+msgstr "RES^Molto bassa"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:75
+msgid "RES^Low"
+msgstr "RES^Bassa"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:76
+msgid "RES^Normal"
+msgstr "RES^Normale"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:77
+msgid "RES^Good"
+msgstr "RES^Buona"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:78
+msgid "RES^Best"
+msgstr "RES^Ottima"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:91
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:94
+msgid "Avoid lossy texture compression"
+msgstr "Evita compressione texture con perdita"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:100
+msgid "Anisotropy:"
+msgstr "Anisotropia:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:145
-msgid "Enable center dot"
-msgstr "Abilita puntino al centro"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:102
+msgid "ANISO^Disabled"
+msgstr "ANISO^Disabilitato"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:148
-msgid "Size:"
-msgstr "Dimensioni:"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:105
+msgid "8x"
+msgstr "8x"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:155
-msgid "Hit test:"
-msgstr "Test colpi:"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:106
+msgid "16x"
+msgstr "16x"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:156
-msgid "HTST^None"
-msgstr "HTST^Nessuno"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:110
+msgid "Particle quality:"
+msgstr "Qualità dei particolari:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:157
-msgid "TrueAim"
-msgstr "TrueAim"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:113
+msgid "Particle distance:"
+msgstr "Distanza dei particolari:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:158
-msgid "Enemies"
-msgstr "Nemici"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:117
+msgid "Decals"
+msgstr "Segni"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:161
-msgid "Waypoints setup..."
-msgstr "Setup dei waypoint..."
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:120
+msgid "Distance:"
+msgstr "Distanza:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:167
-msgid "Enter HUD editor"
-msgstr "Apri HUD editor"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:126
+msgid "Time:"
+msgstr "Tempo:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:174
-msgid "Force models:"
-msgstr "Forza modelli:"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:132
+msgid "Use lightmaps"
+msgstr "Usa lightmaps"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:175
-msgid "MDL^None"
-msgstr "MDL^Nessuno"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:133
+msgid "Deluxe mapping"
+msgstr "Mappaggio Deluxe"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:176
-msgid "MDL^Custom"
-msgstr "MDL^Personalizzato"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:135
+msgid "Gloss"
+msgstr "Lucentezza"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:177
-msgid "MDL^All"
-msgstr "MDL^Tutti"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:138
+msgid "Offset mapping"
+msgstr "Mappaggio in offset"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:179
-msgid "Disable gore effects"
-msgstr "Disabilita effetti sangue"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:140
+msgid "Relief mapping"
+msgstr "Mappaggio in rilievo"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:181
-msgid "Gibs:"
-msgstr "Gib:"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:143
+msgid "Reflections:"
+msgstr "Riflessioni:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:183
-msgid "GIBS^None"
-msgstr "GIBS^Nessuno"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:146
+msgid "Blurred"
+msgstr "Sfocate"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:184
-msgid "GIBS^Few"
-msgstr "GIBS^Pochi"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:147
+msgid "REFL^Good"
+msgstr "REFL^Buone"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:185
-msgid "GIBS^Many"
-msgstr "GIBS^Molti"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:148
+msgid "Sharp"
+msgstr "Nitide"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:186
-msgid "GIBS^Lots"
-msgstr "GIBS^Parecchi"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:153
+msgid "Show surfaces"
+msgstr "Mostra superfici"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:190
-msgid "Damage splash:"
-msgstr "Schizzo del danno:"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:155
+msgid "No dynamic lighting"
+msgstr "Nessuna illuminazione dinamica"
 
-#: qcsrc/menu/xonotic/cvarlist.c:84
-msgid "will be saved to config.cfg"
-msgstr "sarà salvato su config.cfg"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:157
+msgid "Flash blend approximation"
+msgstr "Approssimazione Flash blend"
 
-#: qcsrc/menu/xonotic/cvarlist.c:86
-msgid "will not be saved"
-msgstr "non sarà salvato"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:159
+msgid "Realtime dynamic lighting"
+msgstr "Illuminazione dinamica in tempo reale"
 
-#: qcsrc/menu/xonotic/cvarlist.c:88
-msgid "private"
-msgstr "privata"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:160
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:164
+msgid "Shadows"
+msgstr "Ombre"
 
-#: qcsrc/menu/xonotic/cvarlist.c:90
-msgid "engine setting"
-msgstr "impostazioni motore"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:163
+msgid "Realtime world lighting"
+msgstr "Illuminazione globale in tempo reale"
 
-#: qcsrc/menu/xonotic/cvarlist.c:92
-msgid "read only"
-msgstr "sola lettura"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:168
+msgid "Use normal maps"
+msgstr "Usa mappe normali"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_score.c:4
-msgid "Score Panel"
-msgstr "Pannello punteggio"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:170
+msgid "Soft shadows"
+msgstr "Ombre morbide"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_timer.c:4
-msgid "Timer Panel"
-msgstr "Pannello tempo"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:173
+msgid "Coronas"
+msgstr "Corone"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_timer.c:22
-msgid "Timer:"
-msgstr "Tempo:"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:174
+msgid "Use Occlusion Queries"
+msgstr "Usa le Occlusion Queries"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_timer.c:25
-msgid "Show elapsed time"
-msgstr "Mostra tempo trascorso"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:176
+msgid "Bloom"
+msgstr "Bloom"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:5
-msgid "Map Information"
-msgstr "Informazioni mappa"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:178
+msgid "High Dynamic Range (HDR)"
+msgstr "High Dynamic Range (HDR)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:49
-msgid "Full item placement"
-msgstr "Posizionamento oggetti completo"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:182
+msgid "Motion blur:"
+msgstr "Sfocatura da movimento:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:49
-msgid "MinstaGib only"
-msgstr "Solo MinstaGib"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:188
+msgid "Damage blur:"
+msgstr "Sfocatura da danno:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:78
-msgid "Title:"
-msgstr "Titolo:"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:26
+msgid "Key bindings:"
+msgstr "Associazione tasti (bind):"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:84
-msgid "Author:"
-msgstr "Autore:"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:31
+msgid "Change key..."
+msgstr "Cambia tasto..."
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:90
-msgid "Features:"
-msgstr "Caratteristiche:"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:35
+msgid "Edit..."
+msgstr "Modifica..."
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:95
-msgid "Game types:"
-msgstr "Tipi di gioco:"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:46
+msgid "Sensitivity:"
+msgstr "Sensibilità:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:122
-#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:46
-msgid "Play"
-msgstr "Gioca"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:49
+msgid "UI mouse speed:"
+msgstr "Velocità UI mouse:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:6
-msgid "Advanced server settings"
-msgstr "Impostazioni avanzate server"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:52
+msgid "Mouse filter"
+msgstr "Filtro mouse"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:25
-msgid "Game settings:"
-msgstr "Impostazioni gioco:"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:54
+msgid "Invert mouse"
+msgstr "Inverti mouse"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:28
-msgid "Allow spectating"
-msgstr "Permetti spettatori"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:57
+#: qcsrc/menu/xonotic/dialog_settings_input.c:59
+msgid "Use joystick input"
+msgstr "Usa joystick"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:31
-msgid "Spawn shield:"
-msgstr "Protezione nascita:"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:62
+#: qcsrc/menu/xonotic/dialog_settings_input.c:64
+msgid "Turn off OS mouse acceleration"
+msgstr "Disattiva l'accelerazione mouse dell'OS"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:36
-msgid "Game speed:"
-msgstr "Velocità gioco:"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:66
+msgid "\"enter console\" also closes"
+msgstr "\"apri console\" chiude anche"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:40
-msgid "Teamplay settings:"
-msgstr "Impostazioni Teamplay:"
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:5
+msgid "User defined key bind"
+msgstr "Tasti \"bind\" definiti dall'utente"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:43
-msgid "Friendly fire scale:"
-msgstr "Scala di fuoco amico:"
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:42
+msgid "Command when pressed:"
+msgstr "Comando quando premuto:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:47
-msgid "Virtual friendly fire (effect only)"
-msgstr "Penalità virtuale (solo effetto)"
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:45
+msgid "Command when released:"
+msgstr "Comando quando rilasciato:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:50
-msgid "Friendly fire penalty:"
-msgstr "Penalità fuoco amico:"
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:48
+msgid "Save"
+msgstr "Salva"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:54
-msgid "Virtual penalty (effect only)"
-msgstr "Penalità virtuale (solo effetto)"
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:51
+msgid "Cancel"
+msgstr "Annulla"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:57
-msgid "Teams:"
-msgstr "Team:"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:26
+msgid "Menu skins:"
+msgstr "Temi del menu:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:66
-msgid "Map voting:"
-msgstr "Voto della mappa:"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:47
+msgid "Show current time"
+msgstr "Mostra orario corrente"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:68
-msgid "No voting"
-msgstr "Nessun voto"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:49
+msgid "Show current date"
+msgstr "Mostra data corrente"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:69
-msgid "2 choices"
-msgstr "2 scelte"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:51
+msgid "Show frames per second"
+msgstr "Mostra fotogrammi al secondo"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:70
-msgid "3 choices"
-msgstr "3 scelte"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:53
+msgid "Speedometer"
+msgstr "Tachimetro"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:71
-msgid "4 choices"
-msgstr "4 scelte"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:56
+msgid "qu/s (hidden)"
+msgstr "qu/s (nascosto)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:72
-msgid "5 choices"
-msgstr "5 scelte"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:58
+msgid "qu/s"
+msgstr "qu/s"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:73
-msgid "6 choices"
-msgstr "6 scelte"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:60
+msgid "m/s"
+msgstr "m/s"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:74
-msgid "7 choices"
-msgstr "7 scelte"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:64
+msgid "km/h"
+msgstr "km/h"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:75
-msgid "8 choices"
-msgstr "8 scelte"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:66
+msgid "mph"
+msgstr "mph"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:76
-msgid "9 choices"
-msgstr "9 scelte"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:68
+msgid "knots"
+msgstr "nodi"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:79
-msgid "Simple majority wins vcall"
-msgstr "La semplice maggioranza vince il vcall"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:71
+msgid "Show accelerometer"
+msgstr "Mostra accelerometro"
 
-#: qcsrc/menu/xonotic/util.qc:263
-#, c-format
-msgid "Received HTTP request data for an invalid id %d.\n"
-msgstr "Ricevuta richiesta HTTP per un invalido id %d.\n"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:74
+msgid "Accelerometer scale:"
+msgstr "Scala accelerometro:"
 
-#: qcsrc/menu/xonotic/util.qc:278
-#, c-format
-msgid "error receiving update notification: status is %d\n"
-msgstr "errore durante la notifica d'aggiornamento: lo stato è impostato su %d\n"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:80
+msgid "Minimize input latency"
+msgstr "Minimizza latenza in entrata"
 
-#: qcsrc/menu/xonotic/util.qc:283
-msgid "error: received HTML instead of an update notification\n"
-msgstr "errore: ricevuto HTML invece di una notifica d'aggiornamento\n"
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:5
+msgid "Advanced settings"
+msgstr "Impostazioni avanzate"
 
-#: qcsrc/menu/xonotic/util.qc:288
-msgid "error: received carriage returns from update notification server\n"
-msgstr "error: received carriage returns from update notification server\n"
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:23
+msgid "Cvar filter:"
+msgstr "Filtro delle cvar:"
 
-#: qcsrc/menu/xonotic/util.qc:309
-#, c-format
-msgid ""
-"Update can be downloaded at:\n"
-"%s\n"
-msgstr ""
-"L'aggiornamento può essere scaricato da:\n"
-"%s\n"
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:34
+msgid "Setting:"
+msgstr "Impostazioni:"
 
-#: qcsrc/menu/xonotic/util.qc:330
-msgid "Autogenerating mapinfo for newly added maps..."
-msgstr "Autogenerando le mapinfo per le nuove mappe..."
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:42
+msgid "Value:"
+msgstr "Valore:"
 
-#: qcsrc/menu/xonotic/util.qc:425
-#, c-format
-msgid "Update to %s now!"
-msgstr "Aggiorna a %s ora!"
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:56
+msgid "Description:"
+msgstr "Descrizione:"
 
-#: qcsrc/menu/xonotic/util.qc:502
-msgid ""
-"^1ERROR: Texture compression is required but not supported.\n"
-"^1Expect visual problems.\n"
-msgstr ""
-"^1ERRORE: La compressione texture è richiesta ma non supportata.\n"
-"^1Previsti problemi visuali.\n"
+#: qcsrc/menu/xonotic/dialog_settings_network.c:26
+msgid "Client-side movement prediction"
+msgstr "Predizione del movimento lato client"
 
-#: qcsrc/menu/xonotic/util.qc:524
-msgid "Arena"
-msgstr "Arena"
+#: qcsrc/menu/xonotic/dialog_settings_network.c:30
+msgid "Show netgraph"
+msgstr "Mostra grafico di rete"
 
-#: qcsrc/menu/xonotic/util.qc:525
-msgid "Assault"
-msgstr "Assalto"
+#: qcsrc/menu/xonotic/dialog_settings_network.c:33
+msgid "Network speed:"
+msgstr "Velocità rete:"
 
-#: qcsrc/menu/xonotic/util.qc:526
-msgid "Capture The Flag"
-msgstr "Capture The Flag"
+#: qcsrc/menu/xonotic/dialog_settings_network.c:35
+msgid "56k"
+msgstr "56k"
 
-#: qcsrc/menu/xonotic/util.qc:527
-msgid "Clan Arena"
-msgstr "Clan Arena"
+#: qcsrc/menu/xonotic/dialog_settings_network.c:36
+msgid "ISDN"
+msgstr "ISDN"
 
-#: qcsrc/menu/xonotic/util.qc:528
-msgid "Deathmatch"
-msgstr "Deathmatch"
+#: qcsrc/menu/xonotic/dialog_settings_network.c:37
+msgid "Slow ADSL"
+msgstr "ADSL lenta"
 
-#: qcsrc/menu/xonotic/util.qc:529
-msgid "Domination"
-msgstr "Dominazione"
+#: qcsrc/menu/xonotic/dialog_settings_network.c:38
+msgid "Fast ADSL"
+msgstr "ADSL veloce"
 
-#: qcsrc/menu/xonotic/util.qc:530
-msgid "Freeze Tag"
-msgstr "Freeze Tag"
+#: qcsrc/menu/xonotic/dialog_settings_network.c:39
+msgid "Broadband"
+msgstr "Banda larga"
 
-#: qcsrc/menu/xonotic/util.qc:531
-msgid "Keepaway"
-msgstr "Keepaway"
+#: qcsrc/menu/xonotic/dialog_settings_network.c:42
+msgid "Input packets/s:"
+msgstr "Pacchetti/sec in entrata:"
 
-#: qcsrc/menu/xonotic/util.qc:532
-msgid "Key Hunt"
-msgstr "Key Hunt"
+#: qcsrc/menu/xonotic/dialog_settings_network.c:46
+msgid "HTTP downloads:"
+msgstr "Download via HTTP:"
 
-#: qcsrc/menu/xonotic/util.qc:533
-msgid "Last Man Standing"
-msgstr "Last Man Standing"
+#: qcsrc/menu/xonotic/dialog_settings_network.c:49
+msgid "Downloads:"
+msgstr "N° di download:"
 
-#: qcsrc/menu/xonotic/util.qc:534
-msgid "Nexball"
-msgstr "Nexball"
+#: qcsrc/menu/xonotic/dialog_settings_network.c:53
+msgid "Speed (kB/s):"
+msgstr "Velocità (kB/s):"
 
-#: qcsrc/menu/xonotic/util.qc:535
-msgid "Onslaught"
-msgstr "Onslaught"
+#: qcsrc/menu/xonotic/dialog_settings_network.c:57
+msgid "Client UDP port:"
+msgstr "Porta UDP del client:"
 
-#: qcsrc/menu/xonotic/util.qc:536
-msgid "Race"
-msgstr "Corsa"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:26
+msgid "Resolution:"
+msgstr "Risoluzione:"
 
-#: qcsrc/menu/xonotic/util.qc:537
-msgid "Race CTS"
-msgstr "Corsa CTS"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:29
+msgid "Font/UI size:"
+msgstr "Dimensioni caratteri:"
 
-#: qcsrc/menu/xonotic/util.qc:538
-msgid "Runematch"
-msgstr "Runematch"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:31
+msgid "SZ^Unreadable"
+msgstr "SZ^Illeggibile"
 
-#: qcsrc/menu/xonotic/util.qc:539
-msgid "Team Deathmatch"
-msgstr "Team Deathmatch"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:32
+msgid "SZ^Tiny"
+msgstr "SZ^Minuscolo"
 
-#: qcsrc/menu/xonotic/util.qc:558
-#, c-format
-msgid "@!#%'n Tuba Throwing"
-msgstr "@!#%'n Tuba Throwing"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:33
+msgid "SZ^Little"
+msgstr "SZ^Molto piccolo"
 
-#: qcsrc/menu/xonotic/util.qc:599
-msgid "Background:"
-msgstr "Sfondo:"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:34
+msgid "SZ^Small"
+msgstr "SZ^Piccolo"
 
-#: qcsrc/menu/xonotic/util.qc:601
-#: qcsrc/menu/xonotic/util.qc:617
-#: qcsrc/menu/xonotic/util.qc:626
-#: qcsrc/menu/xonotic/util.qc:634
-#: qcsrc/menu/xonotic/util.qc:646
-msgid "Default"
-msgstr "Predefinito"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:35
+msgid "SZ^Medium"
+msgstr "SZ^Medio"
 
-#: qcsrc/menu/xonotic/util.qc:612
-msgid "Use default"
-msgstr "Usa predefinito"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:36
+msgid "SZ^Large"
+msgstr "SZ^Largo"
 
-#: qcsrc/menu/xonotic/util.qc:632
-msgid "Team Color:"
-msgstr "Colore Team:"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:37
+msgid "SZ^Huge"
+msgstr "SZ^Enorme"
 
-#: qcsrc/menu/xonotic/playermodel.c:174
-msgid "<no model found>"
-msgstr "<nessun modello trovato>"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:38
+msgid "SZ^Gigantic"
+msgstr "SZ^Gigante"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:4
-msgid "Ammo Panel"
-msgstr "Pannello munizioni"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:39
+msgid "SZ^Colossal"
+msgstr "SZ^Colossale"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:22
-msgid "Ammunition display:"
-msgstr "Mostra munizioni:"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:42
+msgid "Color depth:"
+msgstr "Profondità colore:"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:25
-msgid "Show only current ammo type"
-msgstr "Mostra solo il tipo corrente di munizioni"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:45
+msgid "Full screen"
+msgstr "Schermo intero"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:29
-#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:28
-#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:40
-#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:28
-#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:40
-msgid "Left"
-msgstr "Sinistra"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:46
+msgid "Vertical Synchronization"
+msgstr "Sincronizzazione verticale"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:30
-#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:30
-#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:41
-#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:30
-#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:41
-msgid "Right"
-msgstr "Destra"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:49
+msgid "Use OpenGL 2.0 shaders (GLSL)"
+msgstr "Usa gli shader OpenGL 2.0 (GLSL)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:6
-msgid "Weapon settings"
-msgstr "Impostazioni arma"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:52
+msgid "Use GLSL to handle color control"
+msgstr "Usa GLSL per gestire il controllo del colore"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:29
-msgid "Weapon priority list:"
-msgstr "Lista priorità armi:"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:56
+msgid "Vertex Buffer Objects (VBOs)"
+msgstr "Vertex Buffer Objects (VBOs)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:34
-msgid "Up"
-msgstr "Su"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:59
+msgid "VBO^Off"
+msgstr "VBO^Off"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:37
-msgid "Down"
-msgstr "Giù"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:60
+msgid "Vertices, some Tris (compatible)"
+msgstr "Vertici, alcuni Triangoli (compatibile)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:41
-msgid "Use priority list for weapon cycling"
-msgstr "Usa la lista di priorità per ciclare le armi"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:63
+msgid "Vertices"
+msgstr "Vertici"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:43
-msgid "Auto switch weapons on pickup"
-msgstr "Cambia automaticamente armi dopo raccolta"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:64
+msgid "Vertices and Triangles"
+msgstr "Vertici e Triangoli"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:45
-msgid "Draw 1st person weapon model"
-msgstr "Mostra modello arma in 1ª persona"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:67
+msgid "Depth first:"
+msgstr "Profondità prima:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:48
-msgid "Left align"
-msgstr "Allinea a sinistra"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:69
+msgid "DF^Disabled"
+msgstr "DF^Disabilitata"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:50
-msgid "Right align"
-msgstr "Allinea a destra"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:70
+msgid "DF^World"
+msgstr "DF^Globale"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:53
-msgid "Flip view horizontally"
-msgstr "Capovolgi la vista orizzontalmente"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:71
+msgid "DF^All"
+msgstr "DF^Tutto"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:38
-msgid "Quality preset:"
-msgstr "Preset qualità:"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:75
+msgid "Disable multithreaded OpenGL"
+msgstr "Disabilita il multithreading OpenGL"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:41
-msgid "PRE^OMG!"
-msgstr "PRE^Oh mio dio!"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:77
+msgid "Wait for GPU to finish each frame"
+msgstr "Attendi che la GPU finisca di elaborare ogni frame"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:42
-msgid "PRE^Low"
-msgstr "PRE^Bassa"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:80
+msgid "Brightness:"
+msgstr "Luminosità:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:43
-msgid "PRE^Medium"
-msgstr "PRE^Media"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:83
+msgid "Contrast:"
+msgstr "Contrasto:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:44
-msgid "PRE^Normal"
-msgstr "PRE^Normale"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:86
+msgid "Gamma:"
+msgstr "Gamma:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:45
-msgid "PRE^High"
-msgstr "PRE^Alta"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:89
+msgid "Contrast boost:"
+msgstr "Aumenta contrasto:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:46
-msgid "PRE^Ultra"
-msgstr "PRE^Ultra"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:92
+msgid "Saturation:"
+msgstr "Saturazione:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:48
-msgid "PRE^Ultimate"
-msgstr "PRE^Massima"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:98
+msgid "LIT^Ambient:"
+msgstr "LIT^Ambiente:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:52
-msgid "Geometry detail:"
-msgstr "Dettagli geometrici:"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:101
+msgid "Intensity:"
+msgstr "Intensità:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:54
-msgid "DET^Lowest"
-msgstr "DET^Molto bassi"
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:4
+msgid "Singleplayer"
+msgstr "Giocatore singolo"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:55
-msgid "DET^Low"
-msgstr "DET^Bassi"
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:59
+msgid "Instant action! (random map with bots)"
+msgstr "Inizia ora! (mappa casuale con bot)"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:56
-msgid "DET^Normal"
-msgstr "DET^Normali"
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:80
+msgid "Start Singleplayer!"
+msgstr "Inizia modalità Giocatore Singolo!"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:57
-msgid "DET^Good"
-msgstr "DET^Buoni"
+#: qcsrc/menu/xonotic/dialog_singleplayer_winner.c:4
+msgid "Winner"
+msgstr "Vincitore"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:58
-msgid "DET^Best"
-msgstr "DET^Ottimi"
+#: qcsrc/menu/xonotic/dialog_teamselect.c:5
+msgid "Team Selection"
+msgstr "Selezione team"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:59
-msgid "DET^Insane"
-msgstr "DET^Bestiali"
+#: qcsrc/menu/xonotic/dialog_teamselect.c:41
+msgid "join 'best' team (auto-select)"
+msgstr "entra nel 'miglior' team (auto-selezione)"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:62
-msgid "Antialiasing:"
-msgstr "Antialiasing:"
+#: qcsrc/menu/xonotic/dialog_teamselect.c:45
+msgid "red"
+msgstr "rosso"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:64
-msgid "AA^Disabled"
-msgstr "AA^Disabilitato"
+#: qcsrc/menu/xonotic/dialog_teamselect.c:46
+msgid "blue"
+msgstr "blu"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:65
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:103
-msgid "2x"
-msgstr "2x"
+#: qcsrc/menu/xonotic/dialog_teamselect.c:47
+msgid "yellow"
+msgstr "giallo"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:66
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:104
-msgid "4x"
-msgstr "4x"
+#: qcsrc/menu/xonotic/dialog_teamselect.c:48
+msgid "pink"
+msgstr "rosa"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:70
-msgid "Texture resolution:"
-msgstr "Risoluzione texture:"
+#: qcsrc/menu/xonotic/dialog_teamselect.c:51
+msgid "spectate"
+msgstr "spettatore"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:73
-msgid "RES^Leet"
-msgstr "RES^Leet"
+#: qcsrc/menu/xonotic/mainwindow.c:35 qcsrc/menu/xonotic/mainwindow.c:38
+msgid "Do not press this button again!"
+msgstr "Non premere questo tasto di nuovo!"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:74
-msgid "RES^Lowest"
-msgstr "RES^Molto bassa"
+#: qcsrc/menu/xonotic/maplist.c:278
+msgid ""
+"Huh? Can't play this (m is NULL). Refiltering so this won't happen again.\n"
+msgstr ""
+"Huh? Can't play this (m is NULL). Refiltering so this won't happen again.\n"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:75
-msgid "RES^Low"
-msgstr "RES^Bassa"
+#: qcsrc/menu/xonotic/maplist.c:286
+#, c-format
+msgid "%s's Xonotic Server"
+msgstr "Server Xonotic di %s"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:76
-msgid "RES^Normal"
-msgstr "RES^Normale"
+#: qcsrc/menu/xonotic/maplist.c:291
+msgid ""
+"Huh? Can't play this (invalid game type). Refiltering so this won't happen "
+"again.\n"
+msgstr ""
+"Huh? Can't play this (invalid game type). Refiltering so this won't happen "
+"again.\n"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:77
-msgid "RES^Good"
-msgstr "RES^Buona"
+#: qcsrc/menu/xonotic/playermodel.c:174
+msgid "<no model found>"
+msgstr "<nessun modello trovato>"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:78
-msgid "RES^Best"
-msgstr "RES^Ottima"
+#: qcsrc/menu/xonotic/serverlist.c:185
+msgid "Remove"
+msgstr "Rimuovi"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:91
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:94
-msgid "Avoid lossy texture compression"
-msgstr "Evita compressione texture con perdita"
+#: qcsrc/menu/xonotic/serverlist.c:187
+msgid "Bookmark"
+msgstr "Aggiungi tra i preferiti"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:100
-msgid "Anisotropy:"
-msgstr "Anisotropia:"
+#: qcsrc/menu/xonotic/serverlist.c:523
+msgid "Ping"
+msgstr "Ping"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:102
-msgid "ANISO^Disabled"
-msgstr "ANISO^Disabilitato"
+#: qcsrc/menu/xonotic/serverlist.c:524
+msgid "Host name"
+msgstr "Nome dell'host"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:105
-msgid "8x"
-msgstr "8x"
+#: qcsrc/menu/xonotic/serverlist.c:525
+msgid "Map"
+msgstr "Mappa"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:106
-msgid "16x"
-msgstr "16x"
+#: qcsrc/menu/xonotic/serverlist.c:526
+msgid "Type"
+msgstr "Tipo"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:110
-msgid "Particle quality:"
-msgstr "Qualità dei particolari:"
+#: qcsrc/menu/xonotic/serverlist.c:527
+msgid "Players"
+msgstr "Giocatori"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:113
-msgid "Particle distance:"
-msgstr "Distanza dei particolari:"
+#: qcsrc/menu/xonotic/skinlist.c:105
+msgid "<TITLE>"
+msgstr "<TITOLO>"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:117
-msgid "Decals"
-msgstr "Segni"
+#: qcsrc/menu/xonotic/skinlist.c:106
+msgid "<AUTHOR>"
+msgstr "<AUTORE>"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:120
-msgid "Distance:"
-msgstr "Distanza:"
+#: qcsrc/menu/xonotic/skinlist.c:163
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:126
-msgid "Time:"
-msgstr "Tempo:"
+#: qcsrc/menu/xonotic/slider_decibels.c:50
+msgid "VOL^OFF"
+msgstr "VOL^OFF"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:132
-msgid "Use lightmaps"
-msgstr "Usa lightmaps"
+#: qcsrc/menu/xonotic/slider_decibels.c:52
+msgid "VOL^MAX"
+msgstr "VOL^MAX"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:133
-msgid "Deluxe mapping"
-msgstr "Mappaggio Deluxe"
+#: qcsrc/menu/xonotic/slider_decibels.c:53
+#, c-format
+msgid "%s dB"
+msgstr "%s dB"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:135
-msgid "Gloss"
-msgstr "Lucentezza"
+#: qcsrc/menu/xonotic/slider_resolution.c:65
+#, c-format
+msgid "%dx%d"
+msgstr "%dx%d"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:138
-msgid "Offset mapping"
-msgstr "Mappaggio in offset"
+#: qcsrc/menu/xonotic/util.qc:270
+#, c-format
+msgid "Received HTTP request data for an invalid id %d.\n"
+msgstr "Ricevuta richiesta HTTP per un invalido id %d.\n"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:140
-msgid "Relief mapping"
-msgstr "Mappaggio in rilievo"
+#: qcsrc/menu/xonotic/util.qc:285
+#, c-format
+msgid "error receiving update notification: status is %d\n"
+msgstr ""
+"errore durante la notifica d'aggiornamento: lo stato è impostato su %d\n"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:143
-msgid "Reflections:"
-msgstr "Riflessioni:"
+#: qcsrc/menu/xonotic/util.qc:290
+msgid "error: received HTML instead of an update notification\n"
+msgstr "errore: ricevuto HTML invece di una notifica d'aggiornamento\n"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:146
-msgid "Blurred"
-msgstr "Sfocate"
+#: qcsrc/menu/xonotic/util.qc:295
+msgid "error: received carriage returns from update notification server\n"
+msgstr "error: received carriage returns from update notification server\n"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:147
-msgid "REFL^Good"
-msgstr "REFL^Buone"
+#: qcsrc/menu/xonotic/util.qc:316
+#, c-format
+msgid ""
+"Update can be downloaded at:\n"
+"%s\n"
+msgstr ""
+"L'aggiornamento può essere scaricato da:\n"
+"%s\n"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:148
-msgid "Sharp"
-msgstr "Nitide"
+#: qcsrc/menu/xonotic/util.qc:337
+msgid "Autogenerating mapinfo for newly added maps..."
+msgstr "Autogenerando le mapinfo per le nuove mappe..."
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:153
-msgid "Show surfaces"
-msgstr "Mostra superfici"
+#: qcsrc/menu/xonotic/util.qc:367
+#, c-format
+msgid "^1%s TEST BUILD"
+msgstr "^1%s TEST BUILD"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:155
-msgid "No dynamic lighting"
-msgstr "Nessuna illuminazione dinamica"
+#: qcsrc/menu/xonotic/util.qc:432
+#, c-format
+msgid "Update to %s now!"
+msgstr "Aggiorna a %s ora!"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:157
-msgid "Flash blend approximation"
-msgstr "Approssimazione Flash blend"
+#: qcsrc/menu/xonotic/util.qc:509
+msgid ""
+"^1ERROR: Texture compression is required but not supported.\n"
+"^1Expect visual problems.\n"
+msgstr ""
+"^1ERRORE: La compressione texture è richiesta ma non supportata.\n"
+"^1Previsti problemi visuali.\n"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:159
-msgid "Realtime dynamic lighting"
-msgstr "Illuminazione dinamica in tempo reale"
+#: qcsrc/menu/xonotic/util.qc:531
+msgid "Arena"
+msgstr "Arena"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:160
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:164
-msgid "Shadows"
-msgstr "Ombre"
+#: qcsrc/menu/xonotic/util.qc:532
+msgid "Assault"
+msgstr "Assalto"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:163
-msgid "Realtime world lighting"
-msgstr "Illuminazione globale in tempo reale"
+#: qcsrc/menu/xonotic/util.qc:533
+msgid "Capture The Flag"
+msgstr "Capture The Flag"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:168
-msgid "Use normal maps"
-msgstr "Usa mappe normali"
+#: qcsrc/menu/xonotic/util.qc:534
+msgid "Clan Arena"
+msgstr "Clan Arena"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:170
-msgid "Soft shadows"
-msgstr "Ombre morbide"
+#: qcsrc/menu/xonotic/util.qc:535
+msgid "Deathmatch"
+msgstr "Deathmatch"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:173
-msgid "Coronas"
-msgstr "Corone"
+#: qcsrc/menu/xonotic/util.qc:536
+msgid "Domination"
+msgstr "Dominazione"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:175
-msgid "Bloom"
-msgstr "Bloom"
+#: qcsrc/menu/xonotic/util.qc:537
+msgid "Freeze Tag"
+msgstr "Freeze Tag"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:177
-msgid "High Dynamic Range (HDR)"
-msgstr "High Dynamic Range (HDR)"
+#: qcsrc/menu/xonotic/util.qc:538
+msgid "Keepaway"
+msgstr "Keepaway"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:181
-msgid "Motion blur:"
-msgstr "Sfocatura da movimento:"
+#: qcsrc/menu/xonotic/util.qc:539
+msgid "Key Hunt"
+msgstr "Key Hunt"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:187
-msgid "Damage blur:"
-msgstr "Sfocatura da danno:"
+#: qcsrc/menu/xonotic/util.qc:540
+msgid "Last Man Standing"
+msgstr "Last Man Standing"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:26
-msgid "Client-side movement prediction"
-msgstr "Predizione del movimento lato client"
+#: qcsrc/menu/xonotic/util.qc:541
+msgid "Nexball"
+msgstr "Nexball"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:30
-msgid "Show netgraph"
-msgstr "Mostra grafico di rete"
+#: qcsrc/menu/xonotic/util.qc:542
+msgid "Onslaught"
+msgstr "Onslaught"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:33
-msgid "Network speed:"
-msgstr "Velocità rete:"
+#: qcsrc/menu/xonotic/util.qc:543
+msgid "Race"
+msgstr "Corsa"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:35
-msgid "56k"
-msgstr "56k"
+#: qcsrc/menu/xonotic/util.qc:544
+msgid "Race CTS"
+msgstr "Corsa CTS"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:36
-msgid "ISDN"
-msgstr "ISDN"
+#: qcsrc/menu/xonotic/util.qc:545
+msgid "Runematch"
+msgstr "Runematch"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:37
-msgid "Slow ADSL"
-msgstr "ADSL lenta"
+#: qcsrc/menu/xonotic/util.qc:546
+msgid "Team Deathmatch"
+msgstr "Team Deathmatch"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:38
-msgid "Fast ADSL"
-msgstr "ADSL veloce"
+#: qcsrc/menu/xonotic/util.qc:565
+#, c-format
+msgid "@!#%'n Tuba Throwing"
+msgstr "@!#%'n Tuba Throwing"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:39
-msgid "Broadband"
-msgstr "Banda larga"
+#: qcsrc/menu/xonotic/util.qc:583
+msgid "Background:"
+msgstr "Sfondo:"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:42
-msgid "Input packets/s:"
-msgstr "Pacchetti/sec in entrata:"
+#: qcsrc/menu/xonotic/util.qc:585 qcsrc/menu/xonotic/util.qc:601
+#: qcsrc/menu/xonotic/util.qc:610 qcsrc/menu/xonotic/util.qc:618
+#: qcsrc/menu/xonotic/util.qc:630
+msgid "Default"
+msgstr "Predefinito"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:46
-msgid "HTTP downloads:"
-msgstr "Download via HTTP:"
+#: qcsrc/menu/xonotic/util.qc:596
+msgid "Use default"
+msgstr "Usa predefinito"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:49
-msgid "Downloads:"
-msgstr "N° di download:"
+#: qcsrc/menu/xonotic/util.qc:616
+msgid "Team Color:"
+msgstr "Colore Team:"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:53
-msgid "Speed (kB/s):"
-msgstr "Velocità (kB/s):"
+#: qcsrc/menu/xonotic/util.qh:49
+msgid "Enable panel"
+msgstr "Abilita pannello"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:57
-msgid "Client UDP port:"
-msgstr "Porta UDP del client:"
+#: qcsrc/server/w_crylink.qc:2
+msgid "Crylink"
+msgstr "Crylink"
 
-#: qcsrc/menu/xonotic/serverlist.c:357
-msgid "Remove"
-msgstr "Rimuovi"
+#: qcsrc/server/w_crylink.qc:664
+#, c-format
+msgid "%s succeeded at self-destructing themself with the Crylink"
+msgstr "%s è riuscito ad autodistrugersi col Crylink"
 
-#: qcsrc/menu/xonotic/serverlist.c:359
-msgid "Bookmark"
-msgstr "Aggiungi tra i preferiti"
+#: qcsrc/server/w_crylink.qc:669
+#, c-format
+msgid "%s could not hide from %s's Crylink"
+msgstr "%s non s'è potuto nascondere dal Crylink di %s"
 
-#: qcsrc/menu/xonotic/serverlist.c:515
-msgid "Ping"
-msgstr "Ping"
+#: qcsrc/server/w_crylink.qc:671
+#, c-format
+msgid "%s was too close to %s's Crylink"
+msgstr "%s era troppo vicino al Crylink di %s"
 
-#: qcsrc/menu/xonotic/serverlist.c:516
-msgid "Host name"
-msgstr "Nome dell'host"
+#: qcsrc/server/w_crylink.qc:673
+#, c-format
+msgid "%s took a close look at %s's Crylink"
+msgstr "%s ha visto da vicino il Crylink di %s"
 
-#: qcsrc/menu/xonotic/serverlist.c:517
-msgid "Map"
-msgstr "Mappa"
+#: qcsrc/server/w_electro.qc:2
+msgid "Electro"
+msgstr "Electro"
 
-#: qcsrc/menu/xonotic/serverlist.c:518
-msgid "Type"
-msgstr "Tipo"
+#: qcsrc/server/w_electro.qc:571
+#, c-format
+msgid "%s could not remember where they put plasma"
+msgstr "%s non s'è ricordato dove aveva messo il plasma"
 
-#: qcsrc/menu/xonotic/serverlist.c:519
-msgid "Players"
-msgstr "Giocatori"
+#: qcsrc/server/w_electro.qc:573
+#, c-format
+msgid "%s played with plasma"
+msgstr "%s ha giocato col plasma"
 
-#: qcsrc/menu/xonotic/maplist.c:278
-msgid "Huh? Can't play this (m is NULL). Refiltering so this won't happen again.\n"
-msgstr "Huh? Can't play this (m is NULL). Refiltering so this won't happen again.\n"
+#: qcsrc/server/w_electro.qc:580
+#, c-format
+msgid "%s just noticed %s's blue ball"
+msgstr "%s ha appena notato la palla blu di %s"
 
-#: qcsrc/menu/xonotic/maplist.c:286
+#: qcsrc/server/w_electro.qc:582
 #, c-format
-msgid "%s's Xonotic Server"
-msgstr "Server Xonotic di %s"
+msgid "%s got in touch with %s's blue ball"
+msgstr "%s è entrato in contatto con la palla blu di %s"
 
-#: qcsrc/menu/xonotic/maplist.c:291
-msgid "Huh? Can't play this (invalid game type). Refiltering so this won't happen again.\n"
-msgstr "Huh? Can't play this (invalid game type). Refiltering so this won't happen again.\n"
+#: qcsrc/server/w_electro.qc:587
+#, c-format
+msgid "%s felt the electrifying air of %s's combo"
+msgstr "%s ha sentito l'aria elettrificata della combo di %s"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:4
-msgid "Demo"
-msgstr "Demo"
+#: qcsrc/server/w_electro.qc:589
+#, c-format
+msgid "%s got too close to %s's blue beam"
+msgstr "%s s'è avvicinato troppo al raggio blu di %s"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:28
-msgid "Record demos while playing"
-msgstr "Registra demo durante le partite"
+#: qcsrc/server/w_electro.qc:591
+#, c-format
+msgid "%s was blasted by %s's blue beam"
+msgstr "%s è stato fatto saltare in aria dal raggio blu di %s"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:43
-msgid "Timedemo"
-msgstr "Timedemo"
+#: qcsrc/server/w_fireball.qc:2
+msgid "Fireball"
+msgstr "Fireball"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:4
-msgid "Powerups Panel"
-msgstr "Pannello dei Powerup"
+#: qcsrc/server/w_fireball.qc:417
+#, c-format
+msgid "%s forgot about some firemine"
+msgstr "%s s'è dimenticato di alcune mine infuocate"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:22
-#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:22
-msgid "Enable status bar"
-msgstr "Abilita barra di stato"
+#: qcsrc/server/w_fireball.qc:419 qcsrc/server/w_hlac.qc:240
+#, c-format
+msgid "%s should have used a smaller gun"
+msgstr "%s avrebbe dovuto usare un'arma più piccola"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:24
-#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:24
-msgid "Status bar alignment:"
-msgstr "Allineamento barra di stato:"
+#: qcsrc/server/w_fireball.qc:426
+#, c-format
+msgid "%s tried to catch %s's firemine"
+msgstr "%s ha provato a catturare la mina infuocata di %s"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:32
-#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:42
-#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:32
-#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:42
-msgid "Inward"
-msgstr "Interno"
+#: qcsrc/server/w_fireball.qc:428
+#, c-format
+msgid "%s fatefully ignored %s's firemine"
+msgstr "%s ha fatalmente ignorato la mina infuocata di %s"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:34
-#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:43
-#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:34
-#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:43
-msgid "Outward"
-msgstr "Esterno"
+#: qcsrc/server/w_fireball.qc:435
+#, c-format
+msgid "%s could not hide from %s's fireball"
+msgstr "%s non è riuscito a nascondersi dalla fireball di %s"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:37
-#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:37
-msgid "Icon alignment:"
-msgstr "Allineamento icone:"
+#: qcsrc/server/w_fireball.qc:437
+#, c-format
+msgid "%s saw the pretty lights of %s's fireball"
+msgstr "%s ha visto le belle luci della fireball di %s"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:45
-msgid "Flip strength and shield positions"
-msgstr "Inverti posizioni di armatura e vita"
+#: qcsrc/server/w_fireball.qc:440
+#, c-format
+msgid "%s got too close to %s's fireball"
+msgstr "%s s'è avvicinato troppo alla fireball di %s"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:27
-msgid "Master:"
-msgstr "Master:"
+#: qcsrc/server/w_fireball.qc:442
+#, c-format
+msgid "%s tasted %s's fireball"
+msgstr "%s ha assaggiato la fireball di %s"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:33
-msgid "Music:"
-msgstr "Musica:"
+#: qcsrc/server/w_grenadelauncher.qc:2
+msgid "Mortar"
+msgstr "Mortar"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:40
-msgid "VOL^Ambient:"
-msgstr "VOL^Ambiente:"
+#: qcsrc/server/w_grenadelauncher.qc:378
+#, c-format
+msgid "%s tried out his own grenade"
+msgstr "%s ha provato da solo la propria granata"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:48
-msgid "Info:"
-msgstr "Info:"
+#: qcsrc/server/w_grenadelauncher.qc:380
+#, c-format
+msgid "%s detonated"
+msgstr "%s è detonato"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:57
-msgid "Items:"
-msgstr "Oggetti:"
+#: qcsrc/server/w_grenadelauncher.qc:386
+#, c-format
+msgid "%s didn't see %s's grenade"
+msgstr "%s non ha visto la granata di %s"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:65
-msgid "Pain:"
-msgstr "Dolore:"
+#: qcsrc/server/w_grenadelauncher.qc:388
+#, c-format
+msgid "%s almost dodged %s's grenade"
+msgstr "%s ha quasi schivato la granata di %s"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:73
-msgid "Player:"
-msgstr "Giocatore:"
+#: qcsrc/server/w_grenadelauncher.qc:390
+#, c-format
+msgid "%s ate %s's grenade"
+msgstr "%s ha mangiato la granata di %s"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:81
-msgid "Shots:"
-msgstr "Spari:"
+#: qcsrc/server/w_hagar.qc:2
+msgid "Hagar"
+msgstr "Hagar"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:88
-msgid "Voice:"
-msgstr "Voce:"
+#: qcsrc/server/w_hagar.qc:209 qcsrc/server/w_seeker.qc:655
+#, c-format
+msgid "%s played with tiny rockets"
+msgstr "%s ha giocato con piccoli razzi"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:96
-msgid "Weapons:"
-msgstr "Armi:"
+#: qcsrc/server/w_hagar.qc:213
+#, c-format
+msgid "%s hoped %s's missiles wouldn't bounce"
+msgstr "%s ha sperato che il missile di %s non rimbalzasse"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:103
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:161
-msgid "Frequency:"
-msgstr "Frequenza:"
+#: qcsrc/server/w_hagar.qc:215 qcsrc/server/w_seeker.qc:661
+#, c-format
+msgid "%s was pummeled by %s"
+msgstr "%s è stato preso a pugni da %s"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:105
-msgid "8 kHz"
-msgstr "8 kHz"
+#: qcsrc/server/w_hlac.qc:2
+msgid "Heavy Laser Assault Cannon"
+msgstr "Heavy Laser Assault Cannon"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:106
-msgid "11.025 kHz"
-msgstr "11.025 kHz"
+#: qcsrc/server/w_hlac.qc:242
+#, c-format
+msgid "%s was cut down by %s"
+msgstr "%s è stato abbattuto da %s"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:107
-msgid "16 kHz"
-msgstr "16 kHz"
+#: qcsrc/server/w_hook.qc:2
+msgid "Grappling Hook"
+msgstr "Grappling Hook"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:108
-msgid "22.05 kHz"
-msgstr "22.05 kHz"
+#: qcsrc/server/w_hook.qc:266 qcsrc/server/w_minstanex.qc:290
+#: qcsrc/server/w_nex.qc:267 qcsrc/server/w_porto.qc:296
+#: qcsrc/server/w_shotgun.qc:203 qcsrc/server/w_uzi.qc:317
+#, c-format
+msgid "%s did the impossible"
+msgstr "%s ha fatto l'impossibile"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:109
-msgid "24 kHz"
-msgstr "24 kHz"
+#: qcsrc/server/w_hook.qc:268
+#, c-format
+msgid "%s has run into %s's gravity bomb"
+msgstr "%s è corso nella bomba di gravità di %s"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:110
-msgid "32 kHz"
-msgstr "32 kHz"
+#: qcsrc/server/w_laser.qc:2
+msgid "Laser"
+msgstr "Laser"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:111
-msgid "44.1 kHz"
-msgstr "44.1 kHz"
+#: qcsrc/server/w_laser.qc:305
+#, c-format
+msgid "%s lasered themself to hell"
+msgstr "%s si è \"laserato\" all'inferno"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:112
-msgid "48 kHz"
-msgstr "48 kHz"
+#: qcsrc/server/w_laser.qc:309
+#, c-format
+msgid "%s was cut in half by %s's gauntlet"
+msgstr "%s è stato tagliato a metà dal guanto di %s"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:115
-msgid "Channels:"
-msgstr "Canali:"
+#: qcsrc/server/w_laser.qc:311
+#, c-format
+msgid "%s was lasered to death by %s"
+msgstr "%s è stato \"laserato\" alla morte da %s"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:117
-msgid "Mono"
-msgstr "Mono"
+#: qcsrc/server/w_minelayer.qc:2
+msgid "Mine Layer"
+msgstr "Mine Layer"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:118
-msgid "Stereo"
-msgstr "Stereo"
+#: qcsrc/server/w_minelayer.qc:495 qcsrc/server/w_rocketlauncher.qc:500
+#, c-format
+msgid "%s exploded"
+msgstr "%s è esploso"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:119
-msgid "2.1"
-msgstr "2.1"
+#: qcsrc/server/w_minelayer.qc:499
+#, c-format
+msgid "%s got too close to %s's mine"
+msgstr "%s s'è avvicinato troppo alla mina di %s"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:120
-msgid "4"
-msgstr "4"
+#: qcsrc/server/w_minelayer.qc:501
+#, c-format
+msgid "%s almost dodged %s's mine"
+msgstr "%s ha quasi schivato la mina di %s"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:121
-msgid "5"
-msgstr "5"
+#: qcsrc/server/w_minelayer.qc:503
+#, c-format
+msgid "%s stepped on %s's mine"
+msgstr "%s è passato sopra la mina di %s"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:122
-msgid "5.1"
-msgstr "5.1"
+#: qcsrc/server/w_minstanex.qc:2
+msgid "MinstaNex"
+msgstr "MinstaNex"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:123
-msgid "6.1"
-msgstr "6.1"
+#: qcsrc/server/w_minstanex.qc:292 qcsrc/server/w_nex.qc:269
+#, c-format
+msgid "%s has been vaporized by %s"
+msgstr "%s è stato vaporizzato da %s"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:124
-msgid "7.1"
-msgstr "7.1"
+#: qcsrc/server/w_nex.qc:2
+msgid "Nex"
+msgstr "Nex"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:128
-msgid "Swap Stereo"
-msgstr "Scambia canali stereo"
+#: qcsrc/server/w_porto.qc:2
+msgid "Port-O-Launch"
+msgstr "Port-O-Launch"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:132
-msgid "Headphone friendly mode"
-msgstr "Modalità cuffie"
+#: qcsrc/server/w_porto.qc:298
+#, c-format
+msgid "%s felt %s doing the impossible to him"
+msgstr "%s ha sentito %s fargli l'impossibile"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:136
-msgid "Spatial voices:"
-msgstr "Voci spaziali:"
+#: qcsrc/server/w_rocketlauncher.qc:2
+msgid "Rocket Launcher"
+msgstr "Rocket Launcher"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:137
-msgid "VOCS^None"
-msgstr "VOCS^Nessuna"
+#: qcsrc/server/w_rocketlauncher.qc:504
+#, c-format
+msgid "%s got too close to %s's rocket"
+msgstr "%s s'è avvicinato troppo al razzo di %s"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:138
-msgid "VOCS^Taunts"
-msgstr "VOCS^Insulti"
+#: qcsrc/server/w_rocketlauncher.qc:506
+#, c-format
+msgid "%s almost dodged %s's rocket"
+msgstr "%s ha quasi schivato il razzo di %s"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:139
-msgid "VOCS^All"
-msgstr "VOCS^Tutte"
+#: qcsrc/server/w_rocketlauncher.qc:508
+#, c-format
+msgid "%s ate %s's rocket"
+msgstr "%s ha mangiato il razzo di %s"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:142
-msgid "Taunt range:"
-msgstr "Range di insulti:"
+#: qcsrc/server/w_seeker.qc:2
+msgid "T.A.G. Seeker"
+msgstr "T.A.G. Seeker"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:145
-msgid "RNG^Very short"
-msgstr "RNG^Molto ristretto"
+#: qcsrc/server/w_seeker.qc:659
+#, c-format
+msgid "%s was tagged by %s"
+msgstr "%s è stato contrassegnato da %s"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:146
-msgid "RNG^Short"
-msgstr "RNG^Ristretto"
+#: qcsrc/server/w_shotgun.qc:2
+msgid "Shotgun"
+msgstr "Shotgun"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:147
-msgid "RNG^Normal"
-msgstr "RNG^Normale"
+#: qcsrc/server/w_shotgun.qc:207
+#, c-format
+msgid "%2$s ^7slapped %1$s ^7around a bit with a large ^2shotgun"
+msgstr "%2$s ^7ha schiaffeggiato %1$s ^7un pò con un grosso ^2shotgun"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:148
-msgid "RNG^Long"
-msgstr "RNG^Lungo"
+#: qcsrc/server/w_shotgun.qc:209
+#, c-format
+msgid "%s was gunned by %s"
+msgstr "%s è stato sparato da %s"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:149
-msgid "RNG^Full"
-msgstr "RNG^Pieno"
+#: qcsrc/server/w_sniperrifle.qc:2
+msgid "Sniper Rifle"
+msgstr "Sniper Rifle"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:156
-msgid "Automatic taunts"
-msgstr "Insulti automatici"
+#: qcsrc/server/w_sniperrifle.qc:229
+#, c-format
+msgid "%s shot themself automatically"
+msgstr "%s si è sparato da solo automaticamente"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:165
-msgid "Time warning:"
-msgstr "Avvertimento di tempo:"
+#: qcsrc/server/w_sniperrifle.qc:231
+#, c-format
+msgid "%s sniped themself somehow"
+msgstr "%s si è fucilato da solo in qualche modo"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:167
-msgid "WRN^None"
-msgstr "WRN^Nessuno"
+#: qcsrc/server/w_sniperrifle.qc:238
+#, c-format
+msgid "%s failed to hide from %s's bullet hail"
+msgstr "%s non è riuscito a nascondersi dalla raffica di proiettili di %s"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:168
-msgid "1 minute"
-msgstr "1 minuto"
+#: qcsrc/server/w_sniperrifle.qc:240
+#, c-format
+msgid "%s died in %s's bullet hail"
+msgstr "%s è morto nella raffica di proiettili di %s"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:169
-msgid "5 minutes"
-msgstr "5 minuti"
+#: qcsrc/server/w_sniperrifle.qc:247
+#, c-format
+msgid "%s failed to hide from %s's rifle"
+msgstr "%s non è riuscito a nascondersi dal fucile di %s"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:170
-msgid "WRN^Both"
-msgstr "WNR^Entrambi"
+#: qcsrc/server/w_sniperrifle.qc:252
+#, c-format
+msgid "%s got hit in the head by %s"
+msgstr "%s ha preso un colpo in testa da %s"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:173
-msgid "Hit indicator"
-msgstr "Indicatore di colpo"
+#: qcsrc/server/w_sniperrifle.qc:254 qcsrc/server/w_uzi.qc:321
+#, c-format
+msgid "%s was sniped by %s"
+msgstr "%s è stato fucilato da %s"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:175
-msgid "Menu sounds"
-msgstr "Suoni del menu"
+#: qcsrc/server/w_tuba.qc:2
+#, c-format
+msgid "@!#%'n Tuba"
+msgstr "@!#%'n Tuba"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer.c:4
-msgid "Multiplayer"
-msgstr "Multiplayer"
+#: qcsrc/server/w_tuba.qc:263
+#, c-format
+msgid "%s hurt his own ears with the @!#%%'n Tuba"
+msgstr "%s s'è fatto male alle orecchie con la @!#%%'n Tuba"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer.c:18
-msgid "Servers"
-msgstr "Server"
+#: qcsrc/server/w_tuba.qc:267
+#, c-format
+msgid "%s died of %s's great playing on the @!#%%'n Tuba"
+msgstr "%s è morto nella gran esibizione di %s con la @!#%%'n Tuba"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer.c:20
-msgid "Demos"
-msgstr "Demo"
+#: qcsrc/server/w_uzi.qc:2
+msgid "Machine Gun"
+msgstr "Machine Gun"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:4
-msgid "Health/Armor Panel"
-msgstr "Pannello vita/armatura"
+#: qcsrc/server/w_uzi.qc:323
+#, c-format
+msgid "%s was riddled full of holes by %s"
+msgstr "%s è stato riempito di buchi da %s"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:45
-msgid "Flip health and armor positions"
-msgstr "Inverti posizioni di vita e armatura"
+#~ msgid "%d/%d"
+#~ msgstr "%d/%d"
+
+#~ msgid ""
+#~ "Please answer a few initial questions to enhance the game experience."
+#~ msgstr ""
+#~ "Per favore rispondi a poche domande iniziali per migliorare l'esperienza "
+#~ "di gioco."
 
+#~ msgid "Waypoint settings:"
+#~ msgstr "Impostazioni dei waypoint"
index 79eb878d80319d2079adb2fdd1712f8205f87fd1..66a05ed647ac7ca9ae5cebe340d67c75389a7e58 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-02-07 07:50+0100\n"
+"POT-Creation-Date: 2011-04-30 10:07+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -70,8 +70,8 @@ msgid "custom"
 msgstr "aangepast"
 
 #: qcsrc/menu/menu.qc:29
-#, c-format
-msgid "^4MQC Build information: %s\n"
+#, fuzzy, c-format
+msgid "^4MQC Build information: ^1%s\n"
 msgstr "^4MQC Versie informatie: %s\n"
 
 #: qcsrc/menu/xonotic/campaign.c:284
@@ -330,7 +330,7 @@ msgstr "Radar:"
 #: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:32
 #: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:43
 #: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:82
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:151
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:154
 #: qcsrc/menu/xonotic/util.qc:608
 msgid "Alpha:"
 msgstr "Alpha:"
@@ -1002,11 +1002,11 @@ msgstr "Pauze"
 msgid "Address:"
 msgstr "Adres:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:65
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:67
 msgid "Info..."
 msgstr "Info..."
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:70
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:72
 #: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:317
 msgid "Join!"
 msgstr "Meedoen!"
@@ -1148,7 +1148,7 @@ msgid "Crosshair:"
 msgstr "Richtkruis:"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:111
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:143
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:139
 msgid "Per weapon"
 msgstr "Per wapen"
 
@@ -1164,35 +1164,44 @@ msgstr "Richtkruis alpha:"
 msgid "Crosshair color:"
 msgstr "Richtkruis kleur:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:145
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:140
+msgid "By health"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:143
+#, fuzzy
+msgid "Custom"
+msgstr "aangepast"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:148
 msgid "Enable center dot"
 msgstr "Activeer middenpunt"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:148
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:151
 msgid "Size:"
 msgstr "Grootte"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:155
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:158
 msgid "Hit test:"
 msgstr "Tref test:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:156
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:159
 msgid "HTST^None"
 msgstr "HTST^Geen"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:157
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:160
 msgid "TrueAim"
 msgstr "Echt mikken"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:158
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:161
 msgid "Enemies"
 msgstr "Tegenstanders"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:161
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:164
 msgid "Waypoints setup..."
 msgstr "Wegwijzers instellingen"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:167
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:169
 msgid "Enter HUD editor"
 msgstr "Ga naar HUD editor"
 
@@ -1212,35 +1221,35 @@ msgstr "MDL^Aangepast"
 msgid "MDL^All"
 msgstr "MDL^Alle"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:179
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:180
 msgid "Disable gore effects"
 msgstr "Schakel bloederigheid uit"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:181
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:182
 msgid "Gibs:"
 msgstr "Gibs:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:183
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:184
 msgid "GIBS^None"
 msgstr "GIBS^Geen"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:184
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:185
 msgid "GIBS^Few"
 msgstr "GIBS^Weinig"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:185
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:186
 msgid "GIBS^Many"
 msgstr "GIBS^Veel"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:186
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:187
 msgid "GIBS^Lots"
 msgstr "GIBS^Erg veel"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:190
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:191
 msgid "Damage splash:"
 msgstr "Pijn spatten:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:194
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:195
 #: qcsrc/menu/xonotic/dialog_settings_audio.c:178
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:194
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:30
@@ -2206,31 +2215,31 @@ msgstr ""
 msgid "<no model found>"
 msgstr "<geen model gevonden>"
 
-#: qcsrc/menu/xonotic/serverlist.c:360
+#: qcsrc/menu/xonotic/serverlist.c:185
 msgid "Remove"
 msgstr "Verwijderen"
 
-#: qcsrc/menu/xonotic/serverlist.c:362
+#: qcsrc/menu/xonotic/serverlist.c:187
 msgid "Bookmark"
 msgstr "Bookmark"
 
-#: qcsrc/menu/xonotic/serverlist.c:518
+#: qcsrc/menu/xonotic/serverlist.c:523
 msgid "Ping"
 msgstr "Ping"
 
-#: qcsrc/menu/xonotic/serverlist.c:519
+#: qcsrc/menu/xonotic/serverlist.c:524
 msgid "Host name"
 msgstr "Server naam"
 
-#: qcsrc/menu/xonotic/serverlist.c:520
+#: qcsrc/menu/xonotic/serverlist.c:525
 msgid "Map"
 msgstr "Map"
 
-#: qcsrc/menu/xonotic/serverlist.c:521
+#: qcsrc/menu/xonotic/serverlist.c:526
 msgid "Type"
 msgstr "Type"
 
-#: qcsrc/menu/xonotic/serverlist.c:522
+#: qcsrc/menu/xonotic/serverlist.c:527
 msgid "Players"
 msgstr "Spelers"
 
@@ -2296,6 +2305,11 @@ msgstr ""
 msgid "Autogenerating mapinfo for newly added maps..."
 msgstr "Automatisch map info aanmaken voor nieuwe maps..."
 
+#: qcsrc/menu/xonotic/util.qc:367
+#, c-format
+msgid "^1%s TEST BUILD"
+msgstr ""
+
 #: qcsrc/menu/xonotic/util.qc:432
 #, c-format
 msgid "Update to %s now!"
@@ -2404,22 +2418,22 @@ msgstr "Activeer paneel"
 msgid "Crylink"
 msgstr "Crylink"
 
-#: qcsrc/server/w_crylink.qc:645
+#: qcsrc/server/w_crylink.qc:664
 #, c-format
 msgid "%s succeeded at self-destructing themself with the Crylink"
 msgstr ""
 
-#: qcsrc/server/w_crylink.qc:650
+#: qcsrc/server/w_crylink.qc:669
 #, c-format
 msgid "%s could not hide from %s's Crylink"
 msgstr ""
 
-#: qcsrc/server/w_crylink.qc:652
+#: qcsrc/server/w_crylink.qc:671
 #, c-format
 msgid "%s was too close to %s's Crylink"
 msgstr ""
 
-#: qcsrc/server/w_crylink.qc:654
+#: qcsrc/server/w_crylink.qc:673
 #, c-format
 msgid "%s took a close look at %s's Crylink"
 msgstr ""
@@ -2428,37 +2442,37 @@ msgstr ""
 msgid "Electro"
 msgstr "Electro"
 
-#: qcsrc/server/w_electro.qc:503
+#: qcsrc/server/w_electro.qc:571
 #, c-format
 msgid "%s could not remember where they put plasma"
 msgstr ""
 
-#: qcsrc/server/w_electro.qc:505
+#: qcsrc/server/w_electro.qc:573
 #, c-format
 msgid "%s played with plasma"
 msgstr ""
 
-#: qcsrc/server/w_electro.qc:512
+#: qcsrc/server/w_electro.qc:580
 #, c-format
 msgid "%s just noticed %s's blue ball"
 msgstr ""
 
-#: qcsrc/server/w_electro.qc:514
+#: qcsrc/server/w_electro.qc:582
 #, c-format
 msgid "%s got in touch with %s's blue ball"
 msgstr ""
 
-#: qcsrc/server/w_electro.qc:519
+#: qcsrc/server/w_electro.qc:587
 #, c-format
 msgid "%s felt the electrifying air of %s's combo"
 msgstr ""
 
-#: qcsrc/server/w_electro.qc:521
+#: qcsrc/server/w_electro.qc:589
 #, c-format
 msgid "%s got too close to %s's blue beam"
 msgstr ""
 
-#: qcsrc/server/w_electro.qc:523
+#: qcsrc/server/w_electro.qc:591
 #, c-format
 msgid "%s was blasted by %s's blue beam"
 msgstr ""
@@ -2467,42 +2481,42 @@ msgstr ""
 msgid "Fireball"
 msgstr "Fireball"
 
-#: qcsrc/server/w_fireball.qc:392
+#: qcsrc/server/w_fireball.qc:417
 #, c-format
 msgid "%s forgot about some firemine"
 msgstr ""
 
-#: qcsrc/server/w_fireball.qc:394 qcsrc/server/w_hlac.qc:223
+#: qcsrc/server/w_fireball.qc:419 qcsrc/server/w_hlac.qc:240
 #, c-format
 msgid "%s should have used a smaller gun"
 msgstr ""
 
-#: qcsrc/server/w_fireball.qc:401
+#: qcsrc/server/w_fireball.qc:426
 #, c-format
 msgid "%s tried to catch %s's firemine"
 msgstr ""
 
-#: qcsrc/server/w_fireball.qc:403
+#: qcsrc/server/w_fireball.qc:428
 #, c-format
 msgid "%s fatefully ignored %s's firemine"
 msgstr ""
 
-#: qcsrc/server/w_fireball.qc:410
+#: qcsrc/server/w_fireball.qc:435
 #, c-format
 msgid "%s could not hide from %s's fireball"
 msgstr ""
 
-#: qcsrc/server/w_fireball.qc:412
+#: qcsrc/server/w_fireball.qc:437
 #, c-format
 msgid "%s saw the pretty lights of %s's fireball"
 msgstr ""
 
-#: qcsrc/server/w_fireball.qc:415
+#: qcsrc/server/w_fireball.qc:440
 #, c-format
 msgid "%s got too close to %s's fireball"
 msgstr ""
 
-#: qcsrc/server/w_fireball.qc:417
+#: qcsrc/server/w_fireball.qc:442
 #, c-format
 msgid "%s tasted %s's fireball"
 msgstr ""
@@ -2511,27 +2525,27 @@ msgstr ""
 msgid "Mortar"
 msgstr "Mortar"
 
-#: qcsrc/server/w_grenadelauncher.qc:357
+#: qcsrc/server/w_grenadelauncher.qc:378
 #, c-format
 msgid "%s tried out his own grenade"
 msgstr ""
 
-#: qcsrc/server/w_grenadelauncher.qc:359
+#: qcsrc/server/w_grenadelauncher.qc:380
 #, c-format
 msgid "%s detonated"
 msgstr ""
 
-#: qcsrc/server/w_grenadelauncher.qc:365
+#: qcsrc/server/w_grenadelauncher.qc:386
 #, c-format
 msgid "%s didn't see %s's grenade"
 msgstr ""
 
-#: qcsrc/server/w_grenadelauncher.qc:367
+#: qcsrc/server/w_grenadelauncher.qc:388
 #, c-format
 msgid "%s almost dodged %s's grenade"
 msgstr ""
 
-#: qcsrc/server/w_grenadelauncher.qc:369
+#: qcsrc/server/w_grenadelauncher.qc:390
 #, c-format
 msgid "%s ate %s's grenade"
 msgstr ""
@@ -2540,17 +2554,17 @@ msgstr ""
 msgid "Hagar"
 msgstr "Hagar"
 
-#: qcsrc/server/w_hagar.qc:185 qcsrc/server/w_seeker.qc:523
+#: qcsrc/server/w_hagar.qc:209 qcsrc/server/w_seeker.qc:655
 #, c-format
 msgid "%s played with tiny rockets"
 msgstr ""
 
-#: qcsrc/server/w_hagar.qc:189
+#: qcsrc/server/w_hagar.qc:213
 #, c-format
 msgid "%s hoped %s's missiles wouldn't bounce"
 msgstr ""
 
-#: qcsrc/server/w_hagar.qc:191
+#: qcsrc/server/w_hagar.qc:215 qcsrc/server/w_seeker.qc:661
 #, c-format
 msgid "%s was pummeled by %s"
 msgstr ""
@@ -2559,7 +2573,7 @@ msgstr ""
 msgid "Heavy Laser Assault Cannon"
 msgstr "Heavy Laser Assault Cannon"
 
-#: qcsrc/server/w_hlac.qc:225
+#: qcsrc/server/w_hlac.qc:242
 #, c-format
 msgid "%s was cut down by %s"
 msgstr ""
@@ -2568,14 +2582,14 @@ msgstr ""
 msgid "Grappling Hook"
 msgstr "Grappling Hook"
 
-#: qcsrc/server/w_hook.qc:267 qcsrc/server/w_minstanex.qc:257
-#: qcsrc/server/w_nex.qc:224 qcsrc/server/w_porto.qc:293
-#: qcsrc/server/w_shotgun.qc:179 qcsrc/server/w_uzi.qc:287
+#: qcsrc/server/w_hook.qc:266 qcsrc/server/w_minstanex.qc:290
+#: qcsrc/server/w_nex.qc:267 qcsrc/server/w_porto.qc:296
+#: qcsrc/server/w_shotgun.qc:203 qcsrc/server/w_uzi.qc:317
 #, c-format
 msgid "%s did the impossible"
 msgstr ""
 
-#: qcsrc/server/w_hook.qc:269
+#: qcsrc/server/w_hook.qc:268
 #, c-format
 msgid "%s has run into %s's gravity bomb"
 msgstr ""
@@ -2584,17 +2598,17 @@ msgstr ""
 msgid "Laser"
 msgstr "Laser"
 
-#: qcsrc/server/w_laser.qc:285
+#: qcsrc/server/w_laser.qc:305
 #, c-format
 msgid "%s lasered themself to hell"
 msgstr ""
 
-#: qcsrc/server/w_laser.qc:289
+#: qcsrc/server/w_laser.qc:309
 #, c-format
 msgid "%s was cut in half by %s's gauntlet"
 msgstr ""
 
-#: qcsrc/server/w_laser.qc:291
+#: qcsrc/server/w_laser.qc:311
 #, c-format
 msgid "%s was lasered to death by %s"
 msgstr ""
@@ -2603,22 +2617,22 @@ msgstr ""
 msgid "Mine Layer"
 msgstr "Mine Layer"
 
-#: qcsrc/server/w_minelayer.qc:438 qcsrc/server/w_rocketlauncher.qc:480
+#: qcsrc/server/w_minelayer.qc:495 qcsrc/server/w_rocketlauncher.qc:500
 #, c-format
 msgid "%s exploded"
 msgstr ""
 
-#: qcsrc/server/w_minelayer.qc:442
+#: qcsrc/server/w_minelayer.qc:499
 #, c-format
 msgid "%s got too close to %s's mine"
 msgstr ""
 
-#: qcsrc/server/w_minelayer.qc:444
+#: qcsrc/server/w_minelayer.qc:501
 #, c-format
 msgid "%s almost dodged %s's mine"
 msgstr ""
 
-#: qcsrc/server/w_minelayer.qc:446
+#: qcsrc/server/w_minelayer.qc:503
 #, c-format
 msgid "%s stepped on %s's mine"
 msgstr ""
@@ -2627,7 +2641,7 @@ msgstr ""
 msgid "MinstaNex"
 msgstr "MinstaNex"
 
-#: qcsrc/server/w_minstanex.qc:259 qcsrc/server/w_nex.qc:226
+#: qcsrc/server/w_minstanex.qc:292 qcsrc/server/w_nex.qc:269
 #, c-format
 msgid "%s has been vaporized by %s"
 msgstr ""
@@ -2640,7 +2654,7 @@ msgstr "Nex"
 msgid "Port-O-Launch"
 msgstr "Port-O-Launch"
 
-#: qcsrc/server/w_porto.qc:295
+#: qcsrc/server/w_porto.qc:298
 #, c-format
 msgid "%s felt %s doing the impossible to him"
 msgstr ""
@@ -2649,17 +2663,17 @@ msgstr ""
 msgid "Rocket Launcher"
 msgstr "Rocket Launcher"
 
-#: qcsrc/server/w_rocketlauncher.qc:484
+#: qcsrc/server/w_rocketlauncher.qc:504
 #, c-format
 msgid "%s got too close to %s's rocket"
 msgstr ""
 
-#: qcsrc/server/w_rocketlauncher.qc:486
+#: qcsrc/server/w_rocketlauncher.qc:506
 #, c-format
 msgid "%s almost dodged %s's rocket"
 msgstr ""
 
-#: qcsrc/server/w_rocketlauncher.qc:488
+#: qcsrc/server/w_rocketlauncher.qc:508
 #, c-format
 msgid "%s ate %s's rocket"
 msgstr ""
@@ -2668,12 +2682,7 @@ msgstr ""
 msgid "T.A.G. Seeker"
 msgstr "T.A.G. Seeker"
 
-#: qcsrc/server/w_seeker.qc:527
-#, c-format
-msgid "%s ran into %s's flac"
-msgstr ""
-
-#: qcsrc/server/w_seeker.qc:529
+#: qcsrc/server/w_seeker.qc:659
 #, c-format
 msgid "%s was tagged by %s"
 msgstr ""
@@ -2682,12 +2691,12 @@ msgstr ""
 msgid "Shotgun"
 msgstr "Shotgun"
 
-#: qcsrc/server/w_shotgun.qc:183
+#: qcsrc/server/w_shotgun.qc:207
 #, c-format
 msgid "%2$s ^7slapped %1$s ^7around a bit with a large ^2shotgun"
 msgstr ""
 
-#: qcsrc/server/w_shotgun.qc:185
+#: qcsrc/server/w_shotgun.qc:209
 #, c-format
 msgid "%s was gunned by %s"
 msgstr ""
@@ -2696,37 +2705,37 @@ msgstr ""
 msgid "Sniper Rifle"
 msgstr "Sniper Rifle"
 
-#: qcsrc/server/w_sniperrifle.qc:321
+#: qcsrc/server/w_sniperrifle.qc:229
 #, c-format
 msgid "%s shot themself automatically"
 msgstr ""
 
-#: qcsrc/server/w_sniperrifle.qc:323
+#: qcsrc/server/w_sniperrifle.qc:231
 #, c-format
 msgid "%s sniped themself somehow"
 msgstr ""
 
-#: qcsrc/server/w_sniperrifle.qc:330
+#: qcsrc/server/w_sniperrifle.qc:238
 #, c-format
 msgid "%s failed to hide from %s's bullet hail"
 msgstr ""
 
-#: qcsrc/server/w_sniperrifle.qc:332
+#: qcsrc/server/w_sniperrifle.qc:240
 #, c-format
 msgid "%s died in %s's bullet hail"
 msgstr ""
 
-#: qcsrc/server/w_sniperrifle.qc:339
+#: qcsrc/server/w_sniperrifle.qc:247
 #, c-format
 msgid "%s failed to hide from %s's rifle"
 msgstr ""
 
-#: qcsrc/server/w_sniperrifle.qc:344
+#: qcsrc/server/w_sniperrifle.qc:252
 #, c-format
 msgid "%s got hit in the head by %s"
 msgstr ""
 
-#: qcsrc/server/w_sniperrifle.qc:346 qcsrc/server/w_uzi.qc:291
+#: qcsrc/server/w_sniperrifle.qc:254 qcsrc/server/w_uzi.qc:321
 #, c-format
 msgid "%s was sniped by %s"
 msgstr ""
@@ -2736,12 +2745,12 @@ msgstr ""
 msgid "@!#%'n Tuba"
 msgstr "@!#%'n Tuba"
 
-#: qcsrc/server/w_tuba.qc:260
+#: qcsrc/server/w_tuba.qc:263
 #, c-format
 msgid "%s hurt his own ears with the @!#%%'n Tuba"
 msgstr ""
 
-#: qcsrc/server/w_tuba.qc:264
+#: qcsrc/server/w_tuba.qc:267
 #, c-format
 msgid "%s died of %s's great playing on the @!#%%'n Tuba"
 msgstr ""
@@ -2750,7 +2759,7 @@ msgstr ""
 msgid "Machine Gun"
 msgstr "Machine Gun"
 
-#: qcsrc/server/w_uzi.qc:293
+#: qcsrc/server/w_uzi.qc:323
 #, c-format
 msgid "%s was riddled full of holes by %s"
 msgstr ""
diff --git a/menu.dat.pot b/menu.dat.pot
new file mode 100644 (file)
index 0000000..25b8d19
--- /dev/null
@@ -0,0 +1,2752 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-04-30 10:07+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: qcsrc/menu/menu.qc:29
+#, c-format
+msgid "^4MQC Build information: ^1%s\n"
+msgstr ""
+
+#: qcsrc/menu/item/slider.c:64
+#, c-format
+msgid "%d (%s)"
+msgstr ""
+
+#: qcsrc/menu/item/label.c:63
+#, c-format
+msgid "NOTE: label text %s too wide for label, condensed by factor %f\n"
+msgstr ""
+
+#: qcsrc/menu/item/textslider.c:29 qcsrc/menu/item/textslider.c:31
+msgid "custom"
+msgstr ""
+
+#: qcsrc/menu/item/gecko.c:49
+msgid "Browser not initialized!"
+msgstr ""
+
+#: qcsrc/menu/item/listbox.c:300
+#, c-format
+msgid "Item %d"
+msgstr ""
+
+#: qcsrc/menu/gamecommand.qc:47
+#, c-format
+msgid "error: status is %d\n"
+msgstr ""
+
+#: qcsrc/menu/gamecommand.qc:65
+msgid "Usage: menu_cmd command..., where possible commands are:\n"
+msgstr ""
+
+#: qcsrc/menu/gamecommand.qc:66
+msgid "  sync - reloads all cvars on the current menu page\n"
+msgstr ""
+
+#: qcsrc/menu/gamecommand.qc:67
+msgid "  directmenu ITEM - select a menu item as main item\n"
+msgstr ""
+
+#: qcsrc/menu/gamecommand.qc:193
+msgid "error creating curl handle\n"
+msgstr ""
+
+#: qcsrc/menu/gamecommand.qc:239
+msgid "Invalid command. For a list of supported commands, try menu_cmd help.\n"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:4
+#: qcsrc/menu/xonotic/dialog_settings.c:19
+msgid "Video"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:26
+msgid "Resolution:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:29
+msgid "Font/UI size:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:31
+msgid "SZ^Unreadable"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:32
+msgid "SZ^Tiny"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:33
+msgid "SZ^Little"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:34
+msgid "SZ^Small"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:35
+msgid "SZ^Medium"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:36
+msgid "SZ^Large"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:37
+msgid "SZ^Huge"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:38
+msgid "SZ^Gigantic"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:39
+msgid "SZ^Colossal"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:42
+msgid "Color depth:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:45
+msgid "Full screen"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:46
+msgid "Vertical Synchronization"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:49
+msgid "Use OpenGL 2.0 shaders (GLSL)"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:52
+msgid "Use GLSL to handle color control"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:56
+msgid "Vertex Buffer Objects (VBOs)"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:59
+msgid "VBO^Off"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:60
+msgid "Vertices, some Tris (compatible)"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:63
+msgid "Vertices"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:64
+msgid "Vertices and Triangles"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:67
+msgid "Depth first:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:69
+msgid "DF^Disabled"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:70
+msgid "DF^World"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:71
+msgid "DF^All"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:75
+msgid "Disable multithreaded OpenGL"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:77
+msgid "Wait for GPU to finish each frame"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:80
+msgid "Brightness:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:83
+msgid "Contrast:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:86
+msgid "Gamma:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:89
+msgid "Contrast boost:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:92
+msgid "Saturation:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:98
+msgid "LIT^Ambient:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:101
+msgid "Intensity:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:105
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:30
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:41
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:195
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:194
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:178
+msgid "Apply immediately"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:4
+msgid "Panel HUD Setup"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:21
+msgid "Panel background defaults:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:25
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:37
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:52
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:91 qcsrc/menu/xonotic/util.qc:586
+#: qcsrc/menu/xonotic/util.qc:602 qcsrc/menu/xonotic/util.qc:619
+msgid "Disable"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:30
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:77 qcsrc/menu/xonotic/util.qc:591
+msgid "Color:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:35 qcsrc/menu/xonotic/util.qc:599
+msgid "Border size:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:43
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:82
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:32
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:154
+#: qcsrc/menu/xonotic/util.qc:608
+msgid "Alpha:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:50
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:89
+msgid "Team color:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:58 qcsrc/menu/xonotic/util.qc:625
+msgid "Test team color in configure mode"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:61 qcsrc/menu/xonotic/util.qc:628
+msgid "Padding:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:68
+msgid "HUD Dock:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:70
+msgid "DOCK^Disabled"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:71
+msgid "DOCK^Small"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:72
+msgid "DOCK^Medium"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:73
+msgid "DOCK^Large"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:96
+msgid "Grid settings:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:99
+msgid "Snap panels to grid"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:102
+msgid "Grid size:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:103
+msgid "X:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:109
+msgid "Y:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:117
+msgid "Exit setup"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_vote.c:4
+msgid "Vote Panel"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_vote.c:22
+msgid "Alpha after voting:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_modicons.c:4
+msgid "Mod Icons Panel"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_infomessages.c:4
+msgid "Info Messages Panel"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_infomessages.c:22
+msgid "Info messages:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_infomessages.c:25
+msgid "Flip align"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:5
+msgid "Waypoints"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:23
+msgid "Show base waypoints"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:25
+msgid "Waypoint scale:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:29
+msgid "Waypoint alpha:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:34
+msgid "Show names:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:36
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:26
+msgid "Never"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:37
+msgid "Teammates"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:38
+msgid "All players"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:41
+#: qcsrc/menu/xonotic/dialog_credits.c:21
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:61
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:269
+#: qcsrc/menu/xonotic/dialog_singleplayer_winner.c:21
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:82
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:55
+msgid "OK"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_credits.c:5
+msgid "Credits"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:5
+msgid "Advanced settings"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:23
+msgid "Cvar filter:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:24
+#: qcsrc/menu/xonotic/dialog_settings_input.c:41
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:29
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:33
+msgid "Clear"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:34
+msgid "Setting:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:38
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:254
+msgid "Type:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:42
+msgid "Value:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:56
+msgid "Description:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:4
+msgid "Pressed Keys Panel"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:21
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:21
+msgid "Panel disabled"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:22
+msgid "Panel enabled when spectating"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:23
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:23
+msgid "Panel always enabled"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:30
+msgid "Forced aspect:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:5
+msgid "Team Selection"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:41
+msgid "join 'best' team (auto-select)"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:45
+msgid "red"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:46
+msgid "blue"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:47
+msgid "yellow"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:48
+msgid "pink"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:51
+msgid "spectate"
+msgstr ""
+
+#: qcsrc/menu/xonotic/slider_resolution.c:65
+#, c-format
+msgid "%dx%d"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings.c:4
+msgid "Settings"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings.c:18
+#: qcsrc/menu/xonotic/dialog_settings_input.c:4
+msgid "Input"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings.c:20
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:4
+msgid "Effects"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings.c:21
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:4
+msgid "Audio"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings.c:22
+#: qcsrc/menu/xonotic/dialog_settings_network.c:4
+msgid "Network"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings.c:23
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:4
+msgid "Misc"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:4
+msgid "Welcome"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:33
+msgid ""
+"Welcome to Xonotic, please select your language preference and enter your "
+"player name to get started.  You can change these options later through the "
+"menu system."
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:38
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:35
+msgid "Text language:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:47
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:39
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:40
+msgid "Name:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:69
+msgid "Save settings"
+msgstr ""
+
+#: qcsrc/menu/xonotic/campaign.c:284
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:66
+msgid "???"
+msgstr ""
+
+#: qcsrc/menu/xonotic/campaign.c:285
+#, c-format
+msgid "Level %d: %s"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:26
+msgid "Key bindings:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:31
+msgid "Change key..."
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:35
+msgid "Edit..."
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:46
+msgid "Sensitivity:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:49
+msgid "UI mouse speed:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:52
+msgid "Mouse filter"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:54
+msgid "Invert mouse"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:57
+#: qcsrc/menu/xonotic/dialog_settings_input.c:59
+msgid "Use joystick input"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:62
+#: qcsrc/menu/xonotic/dialog_settings_input.c:64
+msgid "Turn off OS mouse acceleration"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:66
+msgid "\"enter console\" also closes"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:4
+msgid "Weapons Panel"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:24
+msgid "Fade out after:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:28
+#, c-format
+msgid "%ds"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:32
+msgid "Fade effect:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:33
+msgid "EF^None"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:35
+msgid "Slide"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:37
+msgid "Alpha"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:40
+msgid "Weapon icons:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:43
+msgid "Show weapon ID as:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:44
+msgid "SHOWAS^None"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:45
+msgid "Number"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:46
+msgid "Bind"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:49
+msgid "Show Accuracy"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:50
+msgid "Show Ammo"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:53
+msgid "Ammo bar color:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:59
+msgid "Ammo bar alpha:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/mainwindow.c:35 qcsrc/menu/xonotic/mainwindow.c:38
+msgid "Do not press this button again!"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_engineinfo.c:4
+msgid "Engine Info Panel"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_engineinfo.c:22
+msgid "Engine info:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_engineinfo.c:25
+msgid "Use an averaging algorithm for fps"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_quit.c:4
+msgid "Quit"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_quit.c:17
+msgid "Are you sure you want to quit?"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_quit.c:20
+msgid "Yes"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_quit.c:21
+msgid "No"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:4
+msgid "Join"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:28
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:32
+msgid "Filter:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:36
+msgid "SRVS^Empty"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:40
+msgid "SRVS^Full"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:44
+msgid "Pause"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:56
+msgid "Address:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:67
+msgid "Info..."
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:72
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:317
+msgid "Join!"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:4
+msgid "Notification Panel"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:22
+msgid "Notifications:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:25
+msgid "Also print notifications to the console"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:28
+msgid "Flip notify order"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:31
+msgid "Entry lifetime:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:35
+msgid "Entry fadetime:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qh:49
+msgid "Enable panel"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:26
+msgid "Menu skins:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:47
+msgid "Show current time"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:49
+msgid "Show current date"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:51
+msgid "Show frames per second"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:53
+msgid "Speedometer"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:56
+msgid "qu/s (hidden)"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:58
+msgid "qu/s"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:60
+msgid "m/s"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:64
+msgid "km/h"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:66
+msgid "mph"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:68
+msgid "knots"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:71
+msgid "Show accelerometer"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:74
+msgid "Accelerometer scale:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:80
+msgid "Minimize input latency"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:84
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:98
+msgid "Advanced settings..."
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:4
+msgid "Singleplayer"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:59
+msgid "Instant action! (random map with bots)"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:80
+msgid "Start Singleplayer!"
+msgstr ""
+
+#: qcsrc/menu/xonotic/skinlist.c:105
+msgid "<TITLE>"
+msgstr ""
+
+#: qcsrc/menu/xonotic/skinlist.c:106
+msgid "<AUTHOR>"
+msgstr ""
+
+#: qcsrc/menu/xonotic/skinlist.c:163
+#, c-format
+msgid "%s: %s"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_news.c:4
+msgid "News"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_news.c:18
+msgid "http://www.xonotic.org/team/blog/"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:5
+msgid "Server Information"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:115
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:116
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:183
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:189
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:199
+msgid "N/A"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:158
+#, c-format
+msgid "%d/%d, %d free player slots"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:172
+msgid "Official settings"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:172
+#, c-format
+msgid "%d modified settings"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:197
+msgid "N/A (can't connect)"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:205
+msgid "not supported (can't connect)"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:207
+msgid "not supported (won't encrypt)"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:211
+msgid "supported (will encrypt)"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:213
+msgid "supported (won't encrypt)"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:217
+msgid "requested (will encrypt)"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:219
+msgid "requested (won't encrypt)"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:223
+msgid "required (can't connect)"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:225
+msgid "required (will encrypt)"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:246
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:269
+msgid "Players:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:259
+msgid "Map:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:264
+msgid "Gameplay:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:274
+msgid "Bots:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:279
+msgid "Mod:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:284
+msgid "Version:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:289
+msgid "Ping:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:295
+msgid "CA:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:301
+msgid "Key:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:307
+msgid "Encryption:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:314
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:119
+msgid "Close"
+msgstr ""
+
+#: qcsrc/menu/xonotic/slider_decibels.c:50
+msgid "VOL^OFF"
+msgstr ""
+
+#: qcsrc/menu/xonotic/slider_decibels.c:52
+msgid "VOL^MAX"
+msgstr ""
+
+#: qcsrc/menu/xonotic/slider_decibels.c:53
+#, c-format
+msgid "%s dB"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:7
+msgid "Mutators"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:33
+msgid "All Weapons Arena"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:35
+msgid "Most Weapons Arena"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:56
+#, c-format
+msgid "%s Arena"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:68
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:167
+msgid "Dodging"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:70
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:250
+msgid "MinstaGib"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:72
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:253
+msgid "NIX"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:74
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:205
+msgid "Rocket Flying"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:78
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:264
+msgid "No start weapons"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:80
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:189
+msgid "Low gravity"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:82
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:170
+msgid "Cloaked"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:84
+msgid "Hook"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:86
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:173
+msgid "Midair"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:88
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:176
+msgid "Vampire"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:90
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:208
+msgid "Piñata"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:92
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:211
+msgid "Weapons stay"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:94
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:180
+msgid "Blood loss"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:96
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:202
+msgid "Jet pack"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:98
+msgid "MUT^None"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:164
+msgid "Gameplay mutators:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:196
+msgid "Weapon & item mutators:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:199
+msgid "Grappling hook"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:215
+msgid "Weapon arenas:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:218
+msgid "Regular (no arena)"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:239
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:256
+msgid "with laser"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:247
+msgid "Special arenas:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:260
+msgid "Most weapons"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:4
+msgid "Radar Panel"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:22
+msgid "Panel enabled in teamgames"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:29
+msgid "Radar:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:36
+msgid "Rotation:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:38
+msgid "Forward"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:39
+msgid "West"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:40
+msgid "South"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:41
+msgid "East"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:42
+msgid "North"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:46
+msgid "Scale:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:50
+msgid "Zoom mode:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:52
+msgid "Zoomed in"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:53
+msgid "Zoomed out"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:54
+msgid "Always zoomed"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:55
+msgid "Never zoomed"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_racetimer.c:4
+msgid "Race Timer Panel"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:4
+msgid "Chat Panel"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:22
+msgid "Chat entries:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:25
+msgid "Chat size:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:29
+msgid "Chat lifetime:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:33
+msgid "Chat beep sound"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:5
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:19
+msgid "Create"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:35
+msgid "Game type:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:47
+msgid "Match settings:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:50
+msgid "Time limit:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:54
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:62
+msgid "Use map specified default"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:57
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:156
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:157
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:158
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:162
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:163
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:164
+msgid "Point limit:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:65
+msgid "Player slots:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:68
+msgid "Number of bots:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:72
+msgid "Bot skill:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:75
+msgid "Botlike"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:76
+msgid "Beginner"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:77
+msgid "You will win"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:78
+msgid "You can win"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:79
+msgid "You might win"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:80
+msgid "Advanced"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:81
+msgid "Expert"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:82
+msgid "Pro"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:83
+msgid "Assassin"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:84
+msgid "Unhuman"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:85
+msgid "Godlike"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:89
+msgid "Mutators..."
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:105
+msgid "Map list:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:111
+msgid "Select all"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:114
+msgid "Select none"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:120
+msgid "Start Multiplayer!"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:155
+msgid "Capture limit:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:159
+msgid "Lives:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:160
+msgid "Laps:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:161
+msgid "Goals:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:165
+msgid "Frag limit:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_singleplayer_winner.c:4
+msgid "Winner"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:5
+msgid "User defined key bind"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:42
+msgid "Command when pressed:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:45
+msgid "Command when released:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:48
+msgid "Save"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:51
+msgid "Cancel"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:5
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:21
+msgid "Player Setup"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:63
+msgid "Model:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:88
+msgid "Field of view:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:92
+msgid "View bobbing:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:96
+msgid "Zoom factor:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:100
+msgid "Zoom speed:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:103
+msgid "Weapon settings..."
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:110
+msgid "Crosshair:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:111
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:139
+msgid "Per weapon"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:130
+msgid "Crosshair size:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:134
+msgid "Crosshair alpha:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:138
+msgid "Crosshair color:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:140
+msgid "By health"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:143
+msgid "Custom"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:148
+msgid "Enable center dot"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:151
+msgid "Size:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:158
+msgid "Hit test:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:159
+msgid "HTST^None"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:160
+msgid "TrueAim"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:161
+msgid "Enemies"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:164
+msgid "Waypoints setup..."
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:169
+msgid "Enter HUD editor"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:174
+msgid "Force models:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:175
+msgid "MDL^None"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:176
+msgid "MDL^Custom"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:177
+msgid "MDL^All"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:180
+msgid "Disable gore effects"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:182
+msgid "Gibs:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:184
+msgid "GIBS^None"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:185
+msgid "GIBS^Few"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:186
+msgid "GIBS^Many"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:187
+msgid "GIBS^Lots"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:191
+msgid "Damage splash:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/cvarlist.c:85
+msgid "will be saved to config.cfg"
+msgstr ""
+
+#: qcsrc/menu/xonotic/cvarlist.c:87
+msgid "will not be saved"
+msgstr ""
+
+#: qcsrc/menu/xonotic/cvarlist.c:89
+msgid "private"
+msgstr ""
+
+#: qcsrc/menu/xonotic/cvarlist.c:91
+msgid "engine setting"
+msgstr ""
+
+#: qcsrc/menu/xonotic/cvarlist.c:93
+msgid "read only"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_score.c:4
+msgid "Score Panel"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_timer.c:4
+msgid "Timer Panel"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_timer.c:22
+msgid "Timer:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_timer.c:25
+msgid "Show elapsed time"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:5
+msgid "Map Information"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:49
+msgid "Full item placement"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:49
+msgid "MinstaGib only"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:78
+msgid "Title:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:84
+msgid "Author:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:90
+msgid "Features:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:95
+msgid "Game types:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:122
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:46
+msgid "Play"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:6
+msgid "Advanced server settings"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:25
+msgid "Game settings:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:28
+msgid "Allow spectating"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:31
+msgid "Spawn shield:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:36
+msgid "Game speed:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:40
+msgid "Teamplay settings:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:43
+msgid "Friendly fire scale:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:47
+msgid "Virtual friendly fire (effect only)"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:50
+msgid "Friendly fire penalty:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:54
+msgid "Virtual penalty (effect only)"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:57
+msgid "Teams:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:66
+msgid "Map voting:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:68
+msgid "No voting"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:69
+msgid "2 choices"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:70
+msgid "3 choices"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:71
+msgid "4 choices"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:72
+msgid "5 choices"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:73
+msgid "6 choices"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:74
+msgid "7 choices"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:75
+msgid "8 choices"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:76
+msgid "9 choices"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:79
+msgid "Simple majority wins vcall"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:270
+#, c-format
+msgid "Received HTTP request data for an invalid id %d.\n"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:285
+#, c-format
+msgid "error receiving update notification: status is %d\n"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:290
+msgid "error: received HTML instead of an update notification\n"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:295
+msgid "error: received carriage returns from update notification server\n"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:316
+#, c-format
+msgid ""
+"Update can be downloaded at:\n"
+"%s\n"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:337
+msgid "Autogenerating mapinfo for newly added maps..."
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:367
+#, c-format
+msgid "^1%s TEST BUILD"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:432
+#, c-format
+msgid "Update to %s now!"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:509
+msgid ""
+"^1ERROR: Texture compression is required but not supported.\n"
+"^1Expect visual problems.\n"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:531
+msgid "Arena"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:532
+msgid "Assault"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:533
+msgid "Capture The Flag"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:534
+msgid "Clan Arena"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:535
+msgid "Deathmatch"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:536
+msgid "Domination"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:537
+msgid "Freeze Tag"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:538
+msgid "Keepaway"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:539
+msgid "Key Hunt"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:540
+msgid "Last Man Standing"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:541
+msgid "Nexball"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:542
+msgid "Onslaught"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:543
+msgid "Race"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:544
+msgid "Race CTS"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:545
+msgid "Runematch"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:546
+msgid "Team Deathmatch"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:565
+#, c-format
+msgid "@!#%'n Tuba Throwing"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:583
+msgid "Background:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:585 qcsrc/menu/xonotic/util.qc:601
+#: qcsrc/menu/xonotic/util.qc:610 qcsrc/menu/xonotic/util.qc:618
+#: qcsrc/menu/xonotic/util.qc:630
+msgid "Default"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:596
+msgid "Use default"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:616
+msgid "Team Color:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/playermodel.c:174
+msgid "<no model found>"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:4
+msgid "Ammo Panel"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:22
+msgid "Ammunition display:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:25
+msgid "Show only current ammo type"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:29
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:28
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:40
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:28
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:40
+msgid "Left"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:30
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:30
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:41
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:30
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:41
+msgid "Right"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:6
+msgid "Weapon settings"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:29
+msgid "Weapon priority list:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:34
+msgid "Up"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:37
+msgid "Down"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:41
+msgid "Use priority list for weapon cycling"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:43
+msgid "Auto switch weapons on pickup"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:45
+msgid "Draw 1st person weapon model"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:48
+msgid "Left align"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:50
+msgid "Right align"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:53
+msgid "Flip view horizontally"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:38
+msgid "Quality preset:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:41
+msgid "PRE^OMG!"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:42
+msgid "PRE^Low"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:43
+msgid "PRE^Medium"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:44
+msgid "PRE^Normal"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:45
+msgid "PRE^High"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:46
+msgid "PRE^Ultra"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:48
+msgid "PRE^Ultimate"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:52
+msgid "Geometry detail:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:54
+msgid "DET^Lowest"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:55
+msgid "DET^Low"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:56
+msgid "DET^Normal"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:57
+msgid "DET^Good"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:58
+msgid "DET^Best"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:59
+msgid "DET^Insane"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:62
+msgid "Antialiasing:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:64
+msgid "AA^Disabled"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:65
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:103
+msgid "2x"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:66
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:104
+msgid "4x"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:70
+msgid "Texture resolution:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:73
+msgid "RES^Leet"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:74
+msgid "RES^Lowest"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:75
+msgid "RES^Low"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:76
+msgid "RES^Normal"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:77
+msgid "RES^Good"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:78
+msgid "RES^Best"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:91
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:94
+msgid "Avoid lossy texture compression"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:100
+msgid "Anisotropy:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:102
+msgid "ANISO^Disabled"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:105
+msgid "8x"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:106
+msgid "16x"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:110
+msgid "Particle quality:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:113
+msgid "Particle distance:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:117
+msgid "Decals"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:120
+msgid "Distance:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:126
+msgid "Time:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:132
+msgid "Use lightmaps"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:133
+msgid "Deluxe mapping"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:135
+msgid "Gloss"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:138
+msgid "Offset mapping"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:140
+msgid "Relief mapping"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:143
+msgid "Reflections:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:146
+msgid "Blurred"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:147
+msgid "REFL^Good"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:148
+msgid "Sharp"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:153
+msgid "Show surfaces"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:155
+msgid "No dynamic lighting"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:157
+msgid "Flash blend approximation"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:159
+msgid "Realtime dynamic lighting"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:160
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:164
+msgid "Shadows"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:163
+msgid "Realtime world lighting"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:168
+msgid "Use normal maps"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:170
+msgid "Soft shadows"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:173
+msgid "Coronas"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:174
+msgid "Use Occlusion Queries"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:176
+msgid "Bloom"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:178
+msgid "High Dynamic Range (HDR)"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:182
+msgid "Motion blur:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:188
+msgid "Damage blur:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:26
+msgid "Client-side movement prediction"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:30
+msgid "Show netgraph"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:33
+msgid "Network speed:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:35
+msgid "56k"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:36
+msgid "ISDN"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:37
+msgid "Slow ADSL"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:38
+msgid "Fast ADSL"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:39
+msgid "Broadband"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:42
+msgid "Input packets/s:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:46
+msgid "HTTP downloads:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:49
+msgid "Downloads:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:53
+msgid "Speed (kB/s):"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:57
+msgid "Client UDP port:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/serverlist.c:185
+msgid "Remove"
+msgstr ""
+
+#: qcsrc/menu/xonotic/serverlist.c:187
+msgid "Bookmark"
+msgstr ""
+
+#: qcsrc/menu/xonotic/serverlist.c:523
+msgid "Ping"
+msgstr ""
+
+#: qcsrc/menu/xonotic/serverlist.c:524
+msgid "Host name"
+msgstr ""
+
+#: qcsrc/menu/xonotic/serverlist.c:525
+msgid "Map"
+msgstr ""
+
+#: qcsrc/menu/xonotic/serverlist.c:526
+msgid "Type"
+msgstr ""
+
+#: qcsrc/menu/xonotic/serverlist.c:527
+msgid "Players"
+msgstr ""
+
+#: qcsrc/menu/xonotic/maplist.c:278
+msgid ""
+"Huh? Can't play this (m is NULL). Refiltering so this won't happen again.\n"
+msgstr ""
+
+#: qcsrc/menu/xonotic/maplist.c:286
+#, c-format
+msgid "%s's Xonotic Server"
+msgstr ""
+
+#: qcsrc/menu/xonotic/maplist.c:291
+msgid ""
+"Huh? Can't play this (invalid game type). Refiltering so this won't happen "
+"again.\n"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:4
+msgid "Demo"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:28
+msgid "Record demos while playing"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:43
+msgid "Timedemo"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:4
+msgid "Powerups Panel"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:22
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:22
+msgid "Enable status bar"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:24
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:24
+msgid "Status bar alignment:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:32
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:42
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:32
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:42
+msgid "Inward"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:34
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:43
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:34
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:43
+msgid "Outward"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:37
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:37
+msgid "Icon alignment:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:45
+msgid "Flip strength and shield positions"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:27
+msgid "Master:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:33
+msgid "Music:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:40
+msgid "VOL^Ambient:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:48
+msgid "Info:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:57
+msgid "Items:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:65
+msgid "Pain:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:73
+msgid "Player:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:81
+msgid "Shots:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:88
+msgid "Voice:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:96
+msgid "Weapons:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:103
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:161
+msgid "Frequency:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:105
+msgid "8 kHz"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:106
+msgid "11.025 kHz"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:107
+msgid "16 kHz"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:108
+msgid "22.05 kHz"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:109
+msgid "24 kHz"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:110
+msgid "32 kHz"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:111
+msgid "44.1 kHz"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:112
+msgid "48 kHz"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:115
+msgid "Channels:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:117
+msgid "Mono"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:118
+msgid "Stereo"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:119
+msgid "2.1"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:120
+msgid "4"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:121
+msgid "5"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:122
+msgid "5.1"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:123
+msgid "6.1"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:124
+msgid "7.1"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:128
+msgid "Swap Stereo"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:132
+msgid "Headphone friendly mode"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:136
+msgid "Spatial voices:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:137
+msgid "VOCS^None"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:138
+msgid "VOCS^Taunts"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:139
+msgid "VOCS^All"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:142
+msgid "Taunt range:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:145
+msgid "RNG^Very short"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:146
+msgid "RNG^Short"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:147
+msgid "RNG^Normal"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:148
+msgid "RNG^Long"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:149
+msgid "RNG^Full"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:156
+msgid "Automatic taunts"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:165
+msgid "Time warning:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:167
+msgid "WRN^None"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:168
+msgid "1 minute"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:169
+msgid "5 minutes"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:170
+msgid "WRN^Both"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:173
+msgid "Hit indicator"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:175
+msgid "Menu sounds"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:4
+msgid "Multiplayer"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:18
+msgid "Servers"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:20
+msgid "Demos"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:4
+msgid "Health/Armor Panel"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:45
+msgid "Flip health and armor positions"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:2
+msgid "Fireball"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:417
+#, c-format
+msgid "%s forgot about some firemine"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:419 qcsrc/server/w_hlac.qc:240
+#, c-format
+msgid "%s should have used a smaller gun"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:426
+#, c-format
+msgid "%s tried to catch %s's firemine"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:428
+#, c-format
+msgid "%s fatefully ignored %s's firemine"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:435
+#, c-format
+msgid "%s could not hide from %s's fireball"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:437
+#, c-format
+msgid "%s saw the pretty lights of %s's fireball"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:440
+#, c-format
+msgid "%s got too close to %s's fireball"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:442
+#, c-format
+msgid "%s tasted %s's fireball"
+msgstr ""
+
+#: qcsrc/server/w_nex.qc:2
+msgid "Nex"
+msgstr ""
+
+#: qcsrc/server/w_nex.qc:267 qcsrc/server/w_shotgun.qc:203
+#: qcsrc/server/w_uzi.qc:317 qcsrc/server/w_minstanex.qc:290
+#: qcsrc/server/w_porto.qc:296 qcsrc/server/w_hook.qc:266
+#, c-format
+msgid "%s did the impossible"
+msgstr ""
+
+#: qcsrc/server/w_nex.qc:269 qcsrc/server/w_minstanex.qc:292
+#, c-format
+msgid "%s has been vaporized by %s"
+msgstr ""
+
+#: qcsrc/server/w_laser.qc:2
+msgid "Laser"
+msgstr ""
+
+#: qcsrc/server/w_laser.qc:305
+#, c-format
+msgid "%s lasered themself to hell"
+msgstr ""
+
+#: qcsrc/server/w_laser.qc:309
+#, c-format
+msgid "%s was cut in half by %s's gauntlet"
+msgstr ""
+
+#: qcsrc/server/w_laser.qc:311
+#, c-format
+msgid "%s was lasered to death by %s"
+msgstr ""
+
+#: qcsrc/server/w_shotgun.qc:2
+msgid "Shotgun"
+msgstr ""
+
+#: qcsrc/server/w_shotgun.qc:207
+#, c-format
+msgid "%2$s ^7slapped %1$s ^7around a bit with a large ^2shotgun"
+msgstr ""
+
+#: qcsrc/server/w_shotgun.qc:209
+#, c-format
+msgid "%s was gunned by %s"
+msgstr ""
+
+#: qcsrc/server/w_uzi.qc:2
+msgid "Machine Gun"
+msgstr ""
+
+#: qcsrc/server/w_uzi.qc:321 qcsrc/server/w_sniperrifle.qc:254
+#, c-format
+msgid "%s was sniped by %s"
+msgstr ""
+
+#: qcsrc/server/w_uzi.qc:323
+#, c-format
+msgid "%s was riddled full of holes by %s"
+msgstr ""
+
+#: qcsrc/server/w_sniperrifle.qc:2
+msgid "Sniper Rifle"
+msgstr ""
+
+#: qcsrc/server/w_sniperrifle.qc:229
+#, c-format
+msgid "%s shot themself automatically"
+msgstr ""
+
+#: qcsrc/server/w_sniperrifle.qc:231
+#, c-format
+msgid "%s sniped themself somehow"
+msgstr ""
+
+#: qcsrc/server/w_sniperrifle.qc:238
+#, c-format
+msgid "%s failed to hide from %s's bullet hail"
+msgstr ""
+
+#: qcsrc/server/w_sniperrifle.qc:240
+#, c-format
+msgid "%s died in %s's bullet hail"
+msgstr ""
+
+#: qcsrc/server/w_sniperrifle.qc:247
+#, c-format
+msgid "%s failed to hide from %s's rifle"
+msgstr ""
+
+#: qcsrc/server/w_sniperrifle.qc:252
+#, c-format
+msgid "%s got hit in the head by %s"
+msgstr ""
+
+#: qcsrc/server/w_minstanex.qc:2
+msgid "MinstaNex"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:2
+msgid "Electro"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:571
+#, c-format
+msgid "%s could not remember where they put plasma"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:573
+#, c-format
+msgid "%s played with plasma"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:580
+#, c-format
+msgid "%s just noticed %s's blue ball"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:582
+#, c-format
+msgid "%s got in touch with %s's blue ball"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:587
+#, c-format
+msgid "%s felt the electrifying air of %s's combo"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:589
+#, c-format
+msgid "%s got too close to %s's blue beam"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:591
+#, c-format
+msgid "%s was blasted by %s's blue beam"
+msgstr ""
+
+#: qcsrc/server/w_tuba.qc:2
+#, c-format
+msgid "@!#%'n Tuba"
+msgstr ""
+
+#: qcsrc/server/w_tuba.qc:263
+#, c-format
+msgid "%s hurt his own ears with the @!#%%'n Tuba"
+msgstr ""
+
+#: qcsrc/server/w_tuba.qc:267
+#, c-format
+msgid "%s died of %s's great playing on the @!#%%'n Tuba"
+msgstr ""
+
+#: qcsrc/server/w_porto.qc:2
+msgid "Port-O-Launch"
+msgstr ""
+
+#: qcsrc/server/w_porto.qc:298
+#, c-format
+msgid "%s felt %s doing the impossible to him"
+msgstr ""
+
+#: qcsrc/server/w_hagar.qc:2
+msgid "Hagar"
+msgstr ""
+
+#: qcsrc/server/w_hagar.qc:209 qcsrc/server/w_seeker.qc:655
+#, c-format
+msgid "%s played with tiny rockets"
+msgstr ""
+
+#: qcsrc/server/w_hagar.qc:213
+#, c-format
+msgid "%s hoped %s's missiles wouldn't bounce"
+msgstr ""
+
+#: qcsrc/server/w_hagar.qc:215 qcsrc/server/w_seeker.qc:661
+#, c-format
+msgid "%s was pummeled by %s"
+msgstr ""
+
+#: qcsrc/server/w_crylink.qc:2
+msgid "Crylink"
+msgstr ""
+
+#: qcsrc/server/w_crylink.qc:664
+#, c-format
+msgid "%s succeeded at self-destructing themself with the Crylink"
+msgstr ""
+
+#: qcsrc/server/w_crylink.qc:669
+#, c-format
+msgid "%s could not hide from %s's Crylink"
+msgstr ""
+
+#: qcsrc/server/w_crylink.qc:671
+#, c-format
+msgid "%s was too close to %s's Crylink"
+msgstr ""
+
+#: qcsrc/server/w_crylink.qc:673
+#, c-format
+msgid "%s took a close look at %s's Crylink"
+msgstr ""
+
+#: qcsrc/server/w_rocketlauncher.qc:2
+msgid "Rocket Launcher"
+msgstr ""
+
+#: qcsrc/server/w_rocketlauncher.qc:500 qcsrc/server/w_minelayer.qc:495
+#, c-format
+msgid "%s exploded"
+msgstr ""
+
+#: qcsrc/server/w_rocketlauncher.qc:504
+#, c-format
+msgid "%s got too close to %s's rocket"
+msgstr ""
+
+#: qcsrc/server/w_rocketlauncher.qc:506
+#, c-format
+msgid "%s almost dodged %s's rocket"
+msgstr ""
+
+#: qcsrc/server/w_rocketlauncher.qc:508
+#, c-format
+msgid "%s ate %s's rocket"
+msgstr ""
+
+#: qcsrc/server/w_hook.qc:2
+msgid "Grappling Hook"
+msgstr ""
+
+#: qcsrc/server/w_hook.qc:268
+#, c-format
+msgid "%s has run into %s's gravity bomb"
+msgstr ""
+
+#: qcsrc/server/w_minelayer.qc:2
+msgid "Mine Layer"
+msgstr ""
+
+#: qcsrc/server/w_minelayer.qc:499
+#, c-format
+msgid "%s got too close to %s's mine"
+msgstr ""
+
+#: qcsrc/server/w_minelayer.qc:501
+#, c-format
+msgid "%s almost dodged %s's mine"
+msgstr ""
+
+#: qcsrc/server/w_minelayer.qc:503
+#, c-format
+msgid "%s stepped on %s's mine"
+msgstr ""
+
+#: qcsrc/server/w_seeker.qc:2
+msgid "T.A.G. Seeker"
+msgstr ""
+
+#: qcsrc/server/w_seeker.qc:659
+#, c-format
+msgid "%s was tagged by %s"
+msgstr ""
+
+#: qcsrc/server/w_grenadelauncher.qc:2
+msgid "Mortar"
+msgstr ""
+
+#: qcsrc/server/w_grenadelauncher.qc:378
+#, c-format
+msgid "%s tried out his own grenade"
+msgstr ""
+
+#: qcsrc/server/w_grenadelauncher.qc:380
+#, c-format
+msgid "%s detonated"
+msgstr ""
+
+#: qcsrc/server/w_grenadelauncher.qc:386
+#, c-format
+msgid "%s didn't see %s's grenade"
+msgstr ""
+
+#: qcsrc/server/w_grenadelauncher.qc:388
+#, c-format
+msgid "%s almost dodged %s's grenade"
+msgstr ""
+
+#: qcsrc/server/w_grenadelauncher.qc:390
+#, c-format
+msgid "%s ate %s's grenade"
+msgstr ""
+
+#: qcsrc/server/w_hlac.qc:2
+msgid "Heavy Laser Assault Cannon"
+msgstr ""
+
+#: qcsrc/server/w_hlac.qc:242
+#, c-format
+msgid "%s was cut down by %s"
+msgstr ""
index 9991ef5bd344c43d75e86ba01a889fcc8e577fad..f1eb38b07e5e40d43d11b92ca46382e11b34975c 100644 (file)
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Xontoic 0.1preview\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-02-07 07:50+0100\n"
+"POT-Creation-Date: 2011-04-30 10:07+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: Ricardo 'Hellgardia' Silva <ricardo.mccs@gmail.com>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -69,8 +69,8 @@ msgid "custom"
 msgstr "modificado"
 
 #: qcsrc/menu/menu.qc:29
-#, c-format
-msgid "^4MQC Build information: %s\n"
+#, fuzzy, c-format
+msgid "^4MQC Build information: ^1%s\n"
 msgstr "^4MQC Informação da Build %s\n"
 
 #: qcsrc/menu/xonotic/campaign.c:284
@@ -127,6 +127,8 @@ msgid ""
 "player name to get started.  You can change these options later through the "
 "menu system."
 msgstr ""
+"Bem-vindo ao Xonotic, por favor escolhe a linguagem de preferência e insere "
+"o nick para começar. Pode mudar as opções mais tarde nas opções."
 
 #: qcsrc/menu/xonotic/dialog_firstrun.c:38
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:35
@@ -329,7 +331,7 @@ msgstr "Radar:"
 #: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:32
 #: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:43
 #: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:82
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:151
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:154
 #: qcsrc/menu/xonotic/util.qc:608
 msgid "Alpha:"
 msgstr "Alfa:"
@@ -429,7 +431,6 @@ msgid "Fade effect:"
 msgstr "Efeito de desaparecimento"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:33
-#, fuzzy
 msgid "EF^None"
 msgstr "Nenhum"
 
@@ -450,7 +451,6 @@ msgid "Show weapon ID as:"
 msgstr "Mostra o ID da arma como:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:44
-#, fuzzy
 msgid "SHOWAS^None"
 msgstr "Nenhum"
 
@@ -521,22 +521,18 @@ msgid "HUD Dock:"
 msgstr "Local do HUD:"
 
 #: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:70
-#, fuzzy
 msgid "DOCK^Disabled"
 msgstr "Desligado"
 
 #: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:71
-#, fuzzy
 msgid "DOCK^Small"
 msgstr "Pequena"
 
 #: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:72
-#, fuzzy
 msgid "DOCK^Medium"
 msgstr "Média"
 
 #: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:73
-#, fuzzy
 msgid "DOCK^Large"
 msgstr "Grande"
 
@@ -927,7 +923,6 @@ msgid "Jet pack"
 msgstr "Jetpack"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:98
-#, fuzzy
 msgid "MUT^None"
 msgstr "Nenhum"
 
@@ -993,12 +988,10 @@ msgid "Join"
 msgstr "Juntar"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join.c:36
-#, fuzzy
 msgid "SRVS^Empty"
 msgstr "Vazio"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join.c:40
-#, fuzzy
 msgid "SRVS^Full"
 msgstr "Total"
 
@@ -1010,11 +1003,11 @@ msgstr "Pausar"
 msgid "Address:"
 msgstr "Endereço:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:65
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:67
 msgid "Info..."
 msgstr "Informação..."
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:70
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:72
 #: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:317
 msgid "Join!"
 msgstr "Juntar!"
@@ -1034,7 +1027,7 @@ msgstr "N/A"
 #: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:158
 #, c-format
 msgid "%d/%d, %d free player slots"
-msgstr ""
+msgstr "%d/%d, %d slots disponíveis"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:172
 #, c-format
@@ -1156,7 +1149,7 @@ msgid "Crosshair:"
 msgstr "Mira:"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:111
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:143
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:139
 msgid "Per weapon"
 msgstr "Por arma"
 
@@ -1172,36 +1165,43 @@ msgstr "Alfa da mira:"
 msgid "Crosshair color:"
 msgstr "Cor da mira:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:145
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:140
+msgid "By health"
+msgstr "Por vida"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:143
+msgid "Custom"
+msgstr "modificado"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:148
 msgid "Enable center dot"
 msgstr "Activar ponto central"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:148
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:151
 msgid "Size:"
 msgstr "Tamanho:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:155
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:158
 msgid "Hit test:"
 msgstr "Teste de Tiro:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:156
-#, fuzzy
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:159
 msgid "HTST^None"
 msgstr "Nenhum"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:157
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:160
 msgid "TrueAim"
 msgstr "PontariaCerta"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:158
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:161
 msgid "Enemies"
 msgstr "Inimigos"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:161
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:164
 msgid "Waypoints setup..."
 msgstr "Configurar caminhos..."
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:167
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:169
 msgid "Enter HUD editor"
 msgstr "Entrar no editor do HUD"
 
@@ -1210,52 +1210,46 @@ msgid "Force models:"
 msgstr "Forçar modelos:"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:175
-#, fuzzy
 msgid "MDL^None"
 msgstr "Nenhum"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:176
-#, fuzzy
 msgid "MDL^Custom"
 msgstr "Modificado"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:177
-#, fuzzy
 msgid "MDL^All"
 msgstr "Todos"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:179
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:180
 msgid "Disable gore effects"
 msgstr "Desactivar sangue/violencia"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:181
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:182
 msgid "Gibs:"
 msgstr "Tripas:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:183
-#, fuzzy
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:184
 msgid "GIBS^None"
 msgstr "Nenhum"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:184
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:185
 msgid "GIBS^Few"
 msgstr "Poucas"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:185
-#, fuzzy
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:186
 msgid "GIBS^Many"
 msgstr "Muitas"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:186
-#, fuzzy
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:187
 msgid "GIBS^Lots"
 msgstr "Imensas"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:190
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:191
 msgid "Damage splash:"
 msgstr "Dano Colateral:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:194
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:195
 #: qcsrc/menu/xonotic/dialog_settings_audio.c:178
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:194
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:30
@@ -1399,7 +1393,6 @@ msgid "Music:"
 msgstr "Música:"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.c:40
-#, fuzzy
 msgid "VOL^Ambient:"
 msgstr "Som Ambiente:"
 
@@ -1517,17 +1510,14 @@ msgid "Spatial voices:"
 msgstr "Vozes espaciais:"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.c:137
-#, fuzzy
 msgid "VOCS^None"
 msgstr "Nenhum"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.c:138
-#, fuzzy
 msgid "VOCS^Taunts"
 msgstr "Taunts"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.c:139
-#, fuzzy
 msgid "VOCS^All"
 msgstr "Todos"
 
@@ -1536,27 +1526,22 @@ msgid "Taunt range:"
 msgstr "Nível dos taunts:"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.c:145
-#, fuzzy
 msgid "RNG^Very short"
 msgstr "Muito baixo"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.c:146
-#, fuzzy
 msgid "RNG^Short"
 msgstr "Baixo"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.c:147
-#, fuzzy
 msgid "RNG^Normal"
 msgstr "Normal"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.c:148
-#, fuzzy
 msgid "RNG^Long"
 msgstr "Alto"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.c:149
-#, fuzzy
 msgid "RNG^Full"
 msgstr "Total"
 
@@ -1569,7 +1554,6 @@ msgid "Time warning:"
 msgstr "Aviso de tempo:"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.c:167
-#, fuzzy
 msgid "WRN^None"
 msgstr "Nenhum"
 
@@ -1582,7 +1566,6 @@ msgid "5 minutes"
 msgstr "5 minutos"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.c:170
-#, fuzzy
 msgid "WRN^Both"
 msgstr "Ambos"
 
@@ -1599,37 +1582,30 @@ msgid "Quality preset:"
 msgstr "Predefinição de Qualidade:"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:41
-#, fuzzy
 msgid "PRE^OMG!"
 msgstr "OMG!"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:42
-#, fuzzy
 msgid "PRE^Low"
 msgstr "Baixa"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:43
-#, fuzzy
 msgid "PRE^Medium"
 msgstr "Média"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:44
-#, fuzzy
 msgid "PRE^Normal"
 msgstr "Normal"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:45
-#, fuzzy
 msgid "PRE^High"
 msgstr "Alta"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:46
-#, fuzzy
 msgid "PRE^Ultra"
 msgstr "Ultra"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:48
-#, fuzzy
 msgid "PRE^Ultimate"
 msgstr "Máxima"
 
@@ -1638,32 +1614,26 @@ msgid "Geometry detail:"
 msgstr "Detalhes geométricos:"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:54
-#, fuzzy
 msgid "DET^Lowest"
 msgstr "Mínimo"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:55
-#, fuzzy
 msgid "DET^Low"
 msgstr "Baixa"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:56
-#, fuzzy
 msgid "DET^Normal"
 msgstr "Normal"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:57
-#, fuzzy
 msgid "DET^Good"
 msgstr "Bom"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:58
-#, fuzzy
 msgid "DET^Best"
 msgstr "Melhores"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:59
-#, fuzzy
 msgid "DET^Insane"
 msgstr "Máximo"
 
@@ -1672,7 +1642,6 @@ msgid "Antialiasing:"
 msgstr "Antialiasing:"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:64
-#, fuzzy
 msgid "AA^Disabled"
 msgstr "Desligado"
 
@@ -1691,32 +1660,26 @@ msgid "Texture resolution:"
 msgstr "Resolução das texturas:"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:73
-#, fuzzy
 msgid "RES^Leet"
 msgstr "Leet"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:74
-#, fuzzy
 msgid "RES^Lowest"
 msgstr "Mínimo"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:75
-#, fuzzy
 msgid "RES^Low"
 msgstr "Baixa"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:76
-#, fuzzy
 msgid "RES^Normal"
 msgstr "Normal"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:77
-#, fuzzy
 msgid "RES^Good"
 msgstr "Bom"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:78
-#, fuzzy
 msgid "RES^Best"
 msgstr "Melhores"
 
@@ -1730,7 +1693,6 @@ msgid "Anisotropy:"
 msgstr "Filtro Anisotrópico:"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:102
-#, fuzzy
 msgid "ANISO^Disabled"
 msgstr "Desligado"
 
@@ -1791,7 +1753,6 @@ msgid "Blurred"
 msgstr "Grau de Blur"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:147
-#, fuzzy
 msgid "REFL^Good"
 msgstr "Bom"
 
@@ -2055,47 +2016,38 @@ msgid "Font/UI size:"
 msgstr "Font/UI - tamanho:"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:31
-#, fuzzy
 msgid "SZ^Unreadable"
 msgstr "Ilegível"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:32
-#, fuzzy
 msgid "SZ^Tiny"
 msgstr "Minuscula"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:33
-#, fuzzy
 msgid "SZ^Little"
 msgstr "Muito Pequena"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:34
-#, fuzzy
 msgid "SZ^Small"
 msgstr "Pequena"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:35
-#, fuzzy
 msgid "SZ^Medium"
 msgstr "Média"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:36
-#, fuzzy
 msgid "SZ^Large"
 msgstr "Grande"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:37
-#, fuzzy
 msgid "SZ^Huge"
 msgstr "Enorme"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:38
-#, fuzzy
 msgid "SZ^Gigantic"
 msgstr "Gigante"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:39
-#, fuzzy
 msgid "SZ^Colossal"
 msgstr "Colossal"
 
@@ -2124,7 +2076,6 @@ msgid "Vertex Buffer Objects (VBOs)"
 msgstr "Objectos Vertex Buffers (VBOs)"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:59
-#, fuzzy
 msgid "VBO^Off"
 msgstr "Desligado"
 
@@ -2145,17 +2096,14 @@ msgid "Depth first:"
 msgstr "Profundidade primeiro:"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:69
-#, fuzzy
 msgid "DF^Disabled"
 msgstr "Desligado"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:70
-#, fuzzy
 msgid "DF^World"
 msgstr "Mundo"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:71
-#, fuzzy
 msgid "DF^All"
 msgstr "Todos"
 
@@ -2188,7 +2136,6 @@ msgid "Saturation:"
 msgstr "Saturação da Cor:"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:98
-#, fuzzy
 msgid "LIT^Ambient:"
 msgstr "Som Ambiente:"
 
@@ -2268,31 +2215,31 @@ msgstr ""
 msgid "<no model found>"
 msgstr "<nenhum modelo encontrado>"
 
-#: qcsrc/menu/xonotic/serverlist.c:360
+#: qcsrc/menu/xonotic/serverlist.c:185
 msgid "Remove"
 msgstr "Remover"
 
-#: qcsrc/menu/xonotic/serverlist.c:362
+#: qcsrc/menu/xonotic/serverlist.c:187
 msgid "Bookmark"
 msgstr "Marcar"
 
-#: qcsrc/menu/xonotic/serverlist.c:518
+#: qcsrc/menu/xonotic/serverlist.c:523
 msgid "Ping"
 msgstr "Ping"
 
-#: qcsrc/menu/xonotic/serverlist.c:519
+#: qcsrc/menu/xonotic/serverlist.c:524
 msgid "Host name"
 msgstr "Nome do Host"
 
-#: qcsrc/menu/xonotic/serverlist.c:520
+#: qcsrc/menu/xonotic/serverlist.c:525
 msgid "Map"
 msgstr "Mapa"
 
-#: qcsrc/menu/xonotic/serverlist.c:521
+#: qcsrc/menu/xonotic/serverlist.c:526
 msgid "Type"
 msgstr "Tipo"
 
-#: qcsrc/menu/xonotic/serverlist.c:522
+#: qcsrc/menu/xonotic/serverlist.c:527
 msgid "Players"
 msgstr "Jogadores"
 
@@ -2310,12 +2257,10 @@ msgid "%s: %s"
 msgstr "%s: %s"
 
 #: qcsrc/menu/xonotic/slider_decibels.c:50
-#, fuzzy
 msgid "VOL^OFF"
 msgstr "DESLIGADO"
 
 #: qcsrc/menu/xonotic/slider_decibels.c:52
-#, fuzzy
 msgid "VOL^MAX"
 msgstr "MÀX"
 
@@ -2362,6 +2307,11 @@ msgstr ""
 msgid "Autogenerating mapinfo for newly added maps..."
 msgstr "Informação de mapas auto-gerada para novos mapas..."
 
+#: qcsrc/menu/xonotic/util.qc:367
+#, c-format
+msgid "^1%s TEST BUILD"
+msgstr ""
+
 #: qcsrc/menu/xonotic/util.qc:432
 #, c-format
 msgid "Update to %s now!"
@@ -2470,233 +2420,233 @@ msgstr "Actival painel"
 msgid "Crylink"
 msgstr "Crylink"
 
-#: qcsrc/server/w_crylink.qc:645
+#: qcsrc/server/w_crylink.qc:664
 #, c-format
 msgid "%s succeeded at self-destructing themself with the Crylink"
-msgstr ""
+msgstr "%s conseguiu auto-destruir-se com a Crylink"
 
-#: qcsrc/server/w_crylink.qc:650
+#: qcsrc/server/w_crylink.qc:669
 #, c-format
 msgid "%s could not hide from %s's Crylink"
-msgstr ""
+msgstr "%s não se conseguiu esconder da Crylink do %s"
 
-#: qcsrc/server/w_crylink.qc:652
+#: qcsrc/server/w_crylink.qc:671
 #, c-format
 msgid "%s was too close to %s's Crylink"
-msgstr ""
+msgstr "%s estava demasiado perto da Crylink do %s"
 
-#: qcsrc/server/w_crylink.qc:654
+#: qcsrc/server/w_crylink.qc:673
 #, c-format
 msgid "%s took a close look at %s's Crylink"
-msgstr ""
+msgstr "%s pode ver de perto a Crylink do %s"
 
 #: qcsrc/server/w_electro.qc:2
 msgid "Electro"
 msgstr "Electro"
 
-#: qcsrc/server/w_electro.qc:503
+#: qcsrc/server/w_electro.qc:571
 #, c-format
 msgid "%s could not remember where they put plasma"
-msgstr ""
+msgstr "%s não se conseguiu lembrar onde pôs a plasma"
 
-#: qcsrc/server/w_electro.qc:505
+#: qcsrc/server/w_electro.qc:573
 #, c-format
 msgid "%s played with plasma"
-msgstr ""
+msgstr "%s brincou com plasma"
 
-#: qcsrc/server/w_electro.qc:512
+#: qcsrc/server/w_electro.qc:580
 #, c-format
 msgid "%s just noticed %s's blue ball"
-msgstr ""
+msgstr "%s acabou de reparar na bola azul de %s"
 
-#: qcsrc/server/w_electro.qc:514
+#: qcsrc/server/w_electro.qc:582
 #, c-format
 msgid "%s got in touch with %s's blue ball"
-msgstr ""
+msgstr "%s esteve em contacto com a bola azul de %s"
 
-#: qcsrc/server/w_electro.qc:519
+#: qcsrc/server/w_electro.qc:587
 #, c-format
 msgid "%s felt the electrifying air of %s's combo"
-msgstr ""
+msgstr "%s sentiu o ar electrizante do combo de %s"
 
-#: qcsrc/server/w_electro.qc:521
+#: qcsrc/server/w_electro.qc:589
 #, c-format
 msgid "%s got too close to %s's blue beam"
-msgstr ""
+msgstr "%s estava perto demais do raio azul de %s"
 
-#: qcsrc/server/w_electro.qc:523
+#: qcsrc/server/w_electro.qc:591
 #, c-format
 msgid "%s was blasted by %s's blue beam"
-msgstr ""
+msgstr "%s foi atingido pelo raio azul de %s"
 
 #: qcsrc/server/w_fireball.qc:2
 msgid "Fireball"
 msgstr "Fireball"
 
-#: qcsrc/server/w_fireball.qc:392
+#: qcsrc/server/w_fireball.qc:417
 #, c-format
 msgid "%s forgot about some firemine"
-msgstr ""
+msgstr "%s esqueceu-se das minas"
 
-#: qcsrc/server/w_fireball.qc:394 qcsrc/server/w_hlac.qc:223
+#: qcsrc/server/w_fireball.qc:419 qcsrc/server/w_hlac.qc:240
 #, c-format
 msgid "%s should have used a smaller gun"
-msgstr ""
+msgstr "%s devia ter usado uma arma mais pequena"
 
-#: qcsrc/server/w_fireball.qc:401
+#: qcsrc/server/w_fireball.qc:426
 #, c-format
 msgid "%s tried to catch %s's firemine"
-msgstr ""
+msgstr "%s tentou apanhar a mina de %s"
 
-#: qcsrc/server/w_fireball.qc:403
+#: qcsrc/server/w_fireball.qc:428
 #, c-format
 msgid "%s fatefully ignored %s's firemine"
-msgstr ""
+msgstr "%s ignorou fatalmente a mina de %s"
 
-#: qcsrc/server/w_fireball.qc:410
+#: qcsrc/server/w_fireball.qc:435
 #, c-format
 msgid "%s could not hide from %s's fireball"
-msgstr ""
+msgstr "%s não se conseguiu esconder da bola de fogo de %s"
 
-#: qcsrc/server/w_fireball.qc:412
+#: qcsrc/server/w_fireball.qc:437
 #, c-format
 msgid "%s saw the pretty lights of %s's fireball"
-msgstr ""
+msgstr "%s viu a bela luminosidade da bola de fogo de %s"
 
-#: qcsrc/server/w_fireball.qc:415
+#: qcsrc/server/w_fireball.qc:440
 #, c-format
 msgid "%s got too close to %s's fireball"
-msgstr ""
+msgstr "%s estava demasiado perto da bola de fogo de %s"
 
-#: qcsrc/server/w_fireball.qc:417
+#: qcsrc/server/w_fireball.qc:442
 #, c-format
 msgid "%s tasted %s's fireball"
-msgstr ""
+msgstr "%s provou a bola de fogo de %s"
 
 #: qcsrc/server/w_grenadelauncher.qc:2
 msgid "Mortar"
 msgstr "Mortar"
 
-#: qcsrc/server/w_grenadelauncher.qc:357
+#: qcsrc/server/w_grenadelauncher.qc:378
 #, c-format
 msgid "%s tried out his own grenade"
-msgstr ""
+msgstr "%s experimentou a sua própria granada"
 
-#: qcsrc/server/w_grenadelauncher.qc:359
+#: qcsrc/server/w_grenadelauncher.qc:380
 #, c-format
 msgid "%s detonated"
-msgstr ""
+msgstr "%s foi detonado"
 
-#: qcsrc/server/w_grenadelauncher.qc:365
+#: qcsrc/server/w_grenadelauncher.qc:386
 #, c-format
 msgid "%s didn't see %s's grenade"
-msgstr ""
+msgstr "%s não viu a granada de %s"
 
-#: qcsrc/server/w_grenadelauncher.qc:367
+#: qcsrc/server/w_grenadelauncher.qc:388
 #, c-format
 msgid "%s almost dodged %s's grenade"
-msgstr ""
+msgstr "%s quase se desviou da granada de %s"
 
-#: qcsrc/server/w_grenadelauncher.qc:369
+#: qcsrc/server/w_grenadelauncher.qc:390
 #, c-format
 msgid "%s ate %s's grenade"
-msgstr ""
+msgstr "%s comeu a granada de %s"
 
 #: qcsrc/server/w_hagar.qc:2
 msgid "Hagar"
 msgstr "Hagar"
 
-#: qcsrc/server/w_hagar.qc:185 qcsrc/server/w_seeker.qc:523
+#: qcsrc/server/w_hagar.qc:209 qcsrc/server/w_seeker.qc:655
 #, c-format
 msgid "%s played with tiny rockets"
-msgstr ""
+msgstr "%s brincou com pequenos foguetes"
 
-#: qcsrc/server/w_hagar.qc:189
+#: qcsrc/server/w_hagar.qc:213
 #, c-format
 msgid "%s hoped %s's missiles wouldn't bounce"
-msgstr ""
+msgstr "%s rezou para que os misseis de %s não resaltassem"
 
-#: qcsrc/server/w_hagar.qc:191
+#: qcsrc/server/w_hagar.qc:215 qcsrc/server/w_seeker.qc:661
 #, c-format
 msgid "%s was pummeled by %s"
-msgstr ""
+msgstr "%s foi serrado por %s"
 
 #: qcsrc/server/w_hlac.qc:2
 msgid "Heavy Laser Assault Cannon"
 msgstr "Heavy Laser Assault Cannon"
 
-#: qcsrc/server/w_hlac.qc:225
+#: qcsrc/server/w_hlac.qc:242
 #, c-format
 msgid "%s was cut down by %s"
-msgstr ""
+msgstr "%s foi totalmente cortado por %s"
 
 #: qcsrc/server/w_hook.qc:2
 msgid "Grappling Hook"
 msgstr "Grappling Hook"
 
-#: qcsrc/server/w_hook.qc:267 qcsrc/server/w_minstanex.qc:257
-#: qcsrc/server/w_nex.qc:224 qcsrc/server/w_porto.qc:293
-#: qcsrc/server/w_shotgun.qc:179 qcsrc/server/w_uzi.qc:287
+#: qcsrc/server/w_hook.qc:266 qcsrc/server/w_minstanex.qc:290
+#: qcsrc/server/w_nex.qc:267 qcsrc/server/w_porto.qc:296
+#: qcsrc/server/w_shotgun.qc:203 qcsrc/server/w_uzi.qc:317
 #, c-format
 msgid "%s did the impossible"
-msgstr ""
+msgstr "%s fez o impossível"
 
-#: qcsrc/server/w_hook.qc:269
+#: qcsrc/server/w_hook.qc:268
 #, c-format
 msgid "%s has run into %s's gravity bomb"
-msgstr ""
+msgstr "%s correu contra uma bomba gravitacional %s"
 
 #: qcsrc/server/w_laser.qc:2
 msgid "Laser"
 msgstr "Laser"
 
-#: qcsrc/server/w_laser.qc:285
+#: qcsrc/server/w_laser.qc:305
 #, c-format
 msgid "%s lasered themself to hell"
-msgstr ""
+msgstr "%s laserou-se até à morte"
 
-#: qcsrc/server/w_laser.qc:289
+#: qcsrc/server/w_laser.qc:309
 #, c-format
 msgid "%s was cut in half by %s's gauntlet"
-msgstr ""
+msgstr "%s foi cortado ao meio pela gauntlet de %s"
 
-#: qcsrc/server/w_laser.qc:291
+#: qcsrc/server/w_laser.qc:311
 #, c-format
 msgid "%s was lasered to death by %s"
-msgstr ""
+msgstr "%s foi lasereado até à morte por %s"
 
 #: qcsrc/server/w_minelayer.qc:2
 msgid "Mine Layer"
 msgstr "Mine Layer"
 
-#: qcsrc/server/w_minelayer.qc:438 qcsrc/server/w_rocketlauncher.qc:480
+#: qcsrc/server/w_minelayer.qc:495 qcsrc/server/w_rocketlauncher.qc:500
 #, c-format
 msgid "%s exploded"
-msgstr ""
+msgstr "%s explodiu"
 
-#: qcsrc/server/w_minelayer.qc:442
+#: qcsrc/server/w_minelayer.qc:499
 #, c-format
 msgid "%s got too close to %s's mine"
-msgstr ""
+msgstr "%s estava perto demais da mina de %s"
 
-#: qcsrc/server/w_minelayer.qc:444
+#: qcsrc/server/w_minelayer.qc:501
 #, c-format
 msgid "%s almost dodged %s's mine"
-msgstr ""
+msgstr "%s quase se desviou da mina de %s"
 
-#: qcsrc/server/w_minelayer.qc:446
+#: qcsrc/server/w_minelayer.qc:503
 #, c-format
 msgid "%s stepped on %s's mine"
-msgstr ""
+msgstr "%s pisou a mina de %s"
 
 #: qcsrc/server/w_minstanex.qc:2
 msgid "MinstaNex"
 msgstr "MinstaNex"
 
-#: qcsrc/server/w_minstanex.qc:259 qcsrc/server/w_nex.qc:226
+#: qcsrc/server/w_minstanex.qc:292 qcsrc/server/w_nex.qc:269
 #, c-format
 msgid "%s has been vaporized by %s"
-msgstr ""
+msgstr "%s foi vaporizado por %s"
 
 #: qcsrc/server/w_nex.qc:2
 msgid "Nex"
@@ -2706,123 +2656,118 @@ msgstr "Nex"
 msgid "Port-O-Launch"
 msgstr "Port-O-Launch"
 
-#: qcsrc/server/w_porto.qc:295
+#: qcsrc/server/w_porto.qc:298
 #, c-format
 msgid "%s felt %s doing the impossible to him"
-msgstr ""
+msgstr "%s sentiu %s fazer-lhe o impossível"
 
 #: qcsrc/server/w_rocketlauncher.qc:2
 msgid "Rocket Launcher"
 msgstr "Rocket Launcher"
 
-#: qcsrc/server/w_rocketlauncher.qc:484
+#: qcsrc/server/w_rocketlauncher.qc:504
 #, c-format
 msgid "%s got too close to %s's rocket"
-msgstr ""
+msgstr "%s estava demasiado perto do foguete de %s"
 
-#: qcsrc/server/w_rocketlauncher.qc:486
+#: qcsrc/server/w_rocketlauncher.qc:506
 #, c-format
 msgid "%s almost dodged %s's rocket"
-msgstr ""
+msgstr "%s quase se desviou do foguete de %s"
 
-#: qcsrc/server/w_rocketlauncher.qc:488
+#: qcsrc/server/w_rocketlauncher.qc:508
 #, c-format
 msgid "%s ate %s's rocket"
-msgstr ""
+msgstr "%s comeu o foguete de %s"
 
 #: qcsrc/server/w_seeker.qc:2
 msgid "T.A.G. Seeker"
 msgstr "T.A.G. Seeker"
 
-#: qcsrc/server/w_seeker.qc:527
-#, c-format
-msgid "%s ran into %s's flac"
-msgstr ""
-
-#: qcsrc/server/w_seeker.qc:529
+#: qcsrc/server/w_seeker.qc:659
 #, c-format
 msgid "%s was tagged by %s"
-msgstr ""
+msgstr "%s foi marcado por %s"
 
 #: qcsrc/server/w_shotgun.qc:2
 msgid "Shotgun"
 msgstr "Shotgun"
 
-#: qcsrc/server/w_shotgun.qc:183
+#: qcsrc/server/w_shotgun.qc:207
 #, c-format
 msgid "%2$s ^7slapped %1$s ^7around a bit with a large ^2shotgun"
-msgstr ""
+msgstr "%2$s ^7maltratou %1$s ^7com uma grande ^2caçadeira"
 
-#: qcsrc/server/w_shotgun.qc:185
+#: qcsrc/server/w_shotgun.qc:209
 #, c-format
 msgid "%s was gunned by %s"
-msgstr ""
+msgstr "%s foi atingido por %s"
 
 #: qcsrc/server/w_sniperrifle.qc:2
 msgid "Sniper Rifle"
 msgstr "Sniper Rifle"
 
-#: qcsrc/server/w_sniperrifle.qc:321
+#: qcsrc/server/w_sniperrifle.qc:229
 #, c-format
 msgid "%s shot themself automatically"
-msgstr ""
+msgstr "%s disparou em si próprio"
 
-#: qcsrc/server/w_sniperrifle.qc:323
+#: qcsrc/server/w_sniperrifle.qc:231
 #, c-format
 msgid "%s sniped themself somehow"
-msgstr ""
+msgstr "%s snipou-se de alguma forma..."
 
-#: qcsrc/server/w_sniperrifle.qc:330
+#: qcsrc/server/w_sniperrifle.qc:238
 #, c-format
 msgid "%s failed to hide from %s's bullet hail"
-msgstr ""
+msgstr "%s não se conseguiu esconder da chuva de balas de %s"
 
-#: qcsrc/server/w_sniperrifle.qc:332
+#: qcsrc/server/w_sniperrifle.qc:240
 #, c-format
 msgid "%s died in %s's bullet hail"
-msgstr ""
+msgstr "%s morreu na chuva de balas de %s"
 
-#: qcsrc/server/w_sniperrifle.qc:339
+#: qcsrc/server/w_sniperrifle.qc:247
 #, c-format
 msgid "%s failed to hide from %s's rifle"
-msgstr ""
+msgstr "%s não se conseguiu esconder da espingarda de %s"
 
-#: qcsrc/server/w_sniperrifle.qc:344
+#: qcsrc/server/w_sniperrifle.qc:252
 #, c-format
 msgid "%s got hit in the head by %s"
-msgstr ""
+msgstr "%s foi atingido na cabeça por %s"
 
-#: qcsrc/server/w_sniperrifle.qc:346 qcsrc/server/w_uzi.qc:291
+#: qcsrc/server/w_sniperrifle.qc:254 qcsrc/server/w_uzi.qc:321
 #, c-format
 msgid "%s was sniped by %s"
-msgstr ""
+msgstr "%s foi snipado por %s"
 
 #: qcsrc/server/w_tuba.qc:2
 #, c-format
 msgid "@!#%'n Tuba"
 msgstr "@!#%'n Tuba"
 
-#: qcsrc/server/w_tuba.qc:260
+#: qcsrc/server/w_tuba.qc:263
 #, c-format
 msgid "%s hurt his own ears with the @!#%%'n Tuba"
-msgstr ""
+msgstr "%s magoou-se a si próprio com a Tuba"
 
-#: qcsrc/server/w_tuba.qc:264
+#: qcsrc/server/w_tuba.qc:267
 #, c-format
 msgid "%s died of %s's great playing on the @!#%%'n Tuba"
-msgstr ""
+msgstr "%s morreu por causa da grande actuação de %s"
 
 #: qcsrc/server/w_uzi.qc:2
 msgid "Machine Gun"
 msgstr "Machine Gun"
 
-#: qcsrc/server/w_uzi.qc:293
+#: qcsrc/server/w_uzi.qc:323
 #, c-format
 msgid "%s was riddled full of holes by %s"
-msgstr ""
-
-#~ msgid "Waypoint settings:"
-#~ msgstr "Definições dos caminhos:"
+msgstr "%s foi enchido de buracos por %s"
 
 #~ msgid "%d/%d"
 #~ msgstr "%d/%d"
+
+#~ msgid "Waypoint settings:"
+#~ msgstr "Definições dos caminhos:"
index 0703f79335745b9d57b1d06e6a8a6c1922b71912..acac44b63d64ba1232ea2c43298a591924f95bfd 100644 (file)
@@ -3,12 +3,11 @@
 # This file is distributed under the same license as the PACKAGE package.
 # MirceaKitsune <sonichedgehog_hyperblast00@yahoo.com>, 2011.
 #
-#, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: Xonotic 0.1preview\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-02-07 07:50+0100\n"
+"POT-Creation-Date: 2011-04-30 10:07+0200\n"
 "PO-Revision-Date: 2011-01-18 11:53+0100\t\n"
 "Last-Translator: MirceaKitsune <sonichedgehog_hyperblast00@yahoo.com>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -70,7 +69,7 @@ msgstr "personalizat"
 
 #: qcsrc/menu/menu.qc:29
 #, c-format
-msgid "^4MQC Build information: %s\n"
+msgid "^4MQC Build information: ^1%s\n"
 msgstr "^4MQC Informatii compilare: %s\n"
 
 #: qcsrc/menu/xonotic/campaign.c:284
@@ -127,6 +126,9 @@ msgid ""
 "player name to get started.  You can change these options later through the "
 "menu system."
 msgstr ""
+"Bine ati venit in Xonotic, va rugam selectati limba dorita si numele "
+"dumneavoastra de jucator pentru a incepe. Puteti schimba aceste preferinte "
+"mai tarziu din cadrul meniului."
 
 #: qcsrc/menu/xonotic/dialog_firstrun.c:38
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:35
@@ -329,7 +331,7 @@ msgstr "Radar:"
 #: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:32
 #: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:43
 #: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:82
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:151
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:154
 #: qcsrc/menu/xonotic/util.qc:608
 msgid "Alpha:"
 msgstr "Opacitate:"
@@ -429,7 +431,6 @@ msgid "Fade effect:"
 msgstr "Atenuare opacitate:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:33
-#, fuzzy
 msgid "EF^None"
 msgstr "Nici una"
 
@@ -450,7 +451,6 @@ msgid "Show weapon ID as:"
 msgstr "Afisaj ID arme ca:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:44
-#, fuzzy
 msgid "SHOWAS^None"
 msgstr "Nici una"
 
@@ -521,22 +521,18 @@ msgid "HUD Dock:"
 msgstr "Magnet ferestre:"
 
 #: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:70
-#, fuzzy
 msgid "DOCK^Disabled"
 msgstr "Dezactivat"
 
 #: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:71
-#, fuzzy
 msgid "DOCK^Small"
 msgstr "Mic"
 
 #: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:72
-#, fuzzy
 msgid "DOCK^Medium"
 msgstr "Mediu"
 
 #: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:73
-#, fuzzy
 msgid "DOCK^Large"
 msgstr "Mare"
 
@@ -927,7 +923,6 @@ msgid "Jet pack"
 msgstr "Reactie"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:98
-#, fuzzy
 msgid "MUT^None"
 msgstr "Nici una"
 
@@ -993,12 +988,10 @@ msgid "Join"
 msgstr "Alaturare"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join.c:36
-#, fuzzy
 msgid "SRVS^Empty"
 msgstr "Gol"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join.c:40
-#, fuzzy
 msgid "SRVS^Full"
 msgstr "Plin"
 
@@ -1010,11 +1003,11 @@ msgstr "Pauza"
 msgid "Address:"
 msgstr "Adresa:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:65
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:67
 msgid "Info..."
 msgstr "Informatii..."
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:70
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:72
 #: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:317
 msgid "Join!"
 msgstr "Alaturare!"
@@ -1034,7 +1027,7 @@ msgstr "N/A"
 #: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:158
 #, c-format
 msgid "%d/%d, %d free player slots"
-msgstr ""
+msgstr "%d/%d, %d locuri disponibile"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:172
 #, c-format
@@ -1156,7 +1149,7 @@ msgid "Crosshair:"
 msgstr "Ochian:"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:111
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:143
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:139
 msgid "Per weapon"
 msgstr "Depinde de arma"
 
@@ -1172,36 +1165,43 @@ msgstr "Opacitate ochian:"
 msgid "Crosshair color:"
 msgstr "Culoare ochian:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:145
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:140
+msgid "By health"
+msgstr "Dupa sanatate"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:143
+msgid "Custom"
+msgstr "personalizat"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:148
 msgid "Enable center dot"
 msgstr "Utilizare punct ochian"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:148
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:151
 msgid "Size:"
 msgstr "Marime:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:155
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:158
 msgid "Hit test:"
 msgstr "Detectare tinta:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:156
-#, fuzzy
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:159
 msgid "HTST^None"
 msgstr "Nici una"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:157
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:160
 msgid "TrueAim"
 msgstr "TrueAim"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:158
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:161
 msgid "Enemies"
 msgstr "Dusmani"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:161
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:164
 msgid "Waypoints setup..."
 msgstr "Setari indicatoare..."
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:167
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:169
 msgid "Enter HUD editor"
 msgstr "Editor interfata"
 
@@ -1210,52 +1210,46 @@ msgid "Force models:"
 msgstr "Modele jucator fortate:"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:175
-#, fuzzy
 msgid "MDL^None"
 msgstr "Nici una"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:176
-#, fuzzy
 msgid "MDL^Custom"
 msgstr "Personalizat"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:177
-#, fuzzy
 msgid "MDL^All"
 msgstr "Toate"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:179
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:180
 msgid "Disable gore effects"
 msgstr "Dezactivare efecte violente"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:181
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:182
 msgid "Gibs:"
 msgstr "Cotlete:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:183
-#, fuzzy
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:184
 msgid "GIBS^None"
 msgstr "Nici unul"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:184
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:185
 msgid "GIBS^Few"
 msgstr "Putine"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:185
-#, fuzzy
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:186
 msgid "GIBS^Many"
 msgstr "Multe"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:186
-#, fuzzy
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:187
 msgid "GIBS^Lots"
 msgstr "Foarte multe"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:190
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:191
 msgid "Damage splash:"
 msgstr "Efect ranire:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:194
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:195
 #: qcsrc/menu/xonotic/dialog_settings_audio.c:178
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:194
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:30
@@ -1399,7 +1393,6 @@ msgid "Music:"
 msgstr "Muzica:"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.c:40
-#, fuzzy
 msgid "VOL^Ambient:"
 msgstr "Ambianta:"
 
@@ -1517,12 +1510,10 @@ msgid "Spatial voices:"
 msgstr "Voci spatializate:"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.c:137
-#, fuzzy
 msgid "VOCS^None"
 msgstr "Nici una"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.c:138
-#, fuzzy
 msgid "VOCS^Taunts"
 msgstr "Glume"
 
@@ -1535,27 +1526,22 @@ msgid "Taunt range:"
 msgstr "Distanta voci:"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.c:145
-#, fuzzy
 msgid "RNG^Very short"
 msgstr "Foarte scurta"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.c:146
-#, fuzzy
 msgid "RNG^Short"
 msgstr "Scurta"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.c:147
-#, fuzzy
 msgid "RNG^Normal"
 msgstr "Normala"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.c:148
-#, fuzzy
 msgid "RNG^Long"
 msgstr "Lunga"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.c:149
-#, fuzzy
 msgid "RNG^Full"
 msgstr "Toate"
 
@@ -1568,7 +1554,6 @@ msgid "Time warning:"
 msgstr "Avertisment timp:"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.c:167
-#, fuzzy
 msgid "WRN^None"
 msgstr "Nici una"
 
@@ -1581,7 +1566,6 @@ msgid "5 minutes"
 msgstr "5 minute"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.c:170
-#, fuzzy
 msgid "WRN^Both"
 msgstr "Ambele"
 
@@ -1598,37 +1582,30 @@ msgid "Quality preset:"
 msgstr "Setari calitate:"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:41
-#, fuzzy
 msgid "PRE^OMG!"
 msgstr "SFINTE!"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:42
-#, fuzzy
 msgid "PRE^Low"
 msgstr "Scazut"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:43
-#, fuzzy
 msgid "PRE^Medium"
 msgstr "Mediu"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:44
-#, fuzzy
 msgid "PRE^Normal"
 msgstr "Normal"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:45
-#, fuzzy
 msgid "PRE^High"
 msgstr "Ridicat"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:46
-#, fuzzy
 msgid "PRE^Ultra"
 msgstr "Foarte ridicat"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:48
-#, fuzzy
 msgid "PRE^Ultimate"
 msgstr "Extrem de ridicat"
 
@@ -1637,32 +1614,26 @@ msgid "Geometry detail:"
 msgstr "Detaliu geometrie:"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:54
-#, fuzzy
 msgid "DET^Lowest"
 msgstr "Cel mai scazut"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:55
-#, fuzzy
 msgid "DET^Low"
 msgstr "Scazut"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:56
-#, fuzzy
 msgid "DET^Normal"
 msgstr "Normal"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:57
-#, fuzzy
 msgid "DET^Good"
 msgstr "Ridicat"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:58
-#, fuzzy
 msgid "DET^Best"
 msgstr "Cel mai ridicat"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:59
-#, fuzzy
 msgid "DET^Insane"
 msgstr "Extrem"
 
@@ -1671,7 +1642,6 @@ msgid "Antialiasing:"
 msgstr "Margini fine:"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:64
-#, fuzzy
 msgid "AA^Disabled"
 msgstr "Dezactivat"
 
@@ -1690,32 +1660,26 @@ msgid "Texture resolution:"
 msgstr "Calitate texturi:"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:73
-#, fuzzy
 msgid "RES^Leet"
 msgstr "Minima"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:74
-#, fuzzy
 msgid "RES^Lowest"
 msgstr "Cea mai joasa"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:75
-#, fuzzy
 msgid "RES^Low"
 msgstr "Joasa"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:76
-#, fuzzy
 msgid "RES^Normal"
 msgstr "Normala"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:77
-#, fuzzy
 msgid "RES^Good"
 msgstr "Ridicata"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:78
-#, fuzzy
 msgid "RES^Best"
 msgstr "Cea mai ridicata"
 
@@ -1729,7 +1693,6 @@ msgid "Anisotropy:"
 msgstr "Filtrare anisotropica:"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:102
-#, fuzzy
 msgid "ANISO^Disabled"
 msgstr "Dezactivat"
 
@@ -1790,7 +1753,6 @@ msgid "Blurred"
 msgstr "Blurate"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:147
-#, fuzzy
 msgid "REFL^Good"
 msgstr "Bune"
 
@@ -2054,47 +2016,38 @@ msgid "Font/UI size:"
 msgstr "Marime font:"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:31
-#, fuzzy
 msgid "SZ^Unreadable"
 msgstr "Ilizibil"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:32
-#, fuzzy
 msgid "SZ^Tiny"
 msgstr "Minuscul"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:33
-#, fuzzy
 msgid "SZ^Little"
 msgstr "Foarte mic"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:34
-#, fuzzy
 msgid "SZ^Small"
 msgstr "Mic"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:35
-#, fuzzy
 msgid "SZ^Medium"
 msgstr "Mediu"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:36
-#, fuzzy
 msgid "SZ^Large"
 msgstr "Mare"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:37
-#, fuzzy
 msgid "SZ^Huge"
 msgstr "Foarte mare"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:38
-#, fuzzy
 msgid "SZ^Gigantic"
 msgstr "Gigantic"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:39
-#, fuzzy
 msgid "SZ^Colossal"
 msgstr "Colosal"
 
@@ -2123,7 +2076,6 @@ msgid "Vertex Buffer Objects (VBOs)"
 msgstr "Tampon Memorie Obiecte (VBOs)"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:59
-#, fuzzy
 msgid "VBO^Off"
 msgstr "Dezactivat"
 
@@ -2144,17 +2096,14 @@ msgid "Depth first:"
 msgstr "Calcul adancime:"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:69
-#, fuzzy
 msgid "DF^Disabled"
 msgstr "Dezactivat"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:70
-#, fuzzy
 msgid "DF^World"
 msgstr "Mediul"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:71
-#, fuzzy
 msgid "DF^All"
 msgstr "Totul"
 
@@ -2187,7 +2136,6 @@ msgid "Saturation:"
 msgstr "Saturatie:"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:98
-#, fuzzy
 msgid "LIT^Ambient:"
 msgstr "Ambianta:"
 
@@ -2267,31 +2215,31 @@ msgstr ""
 msgid "<no model found>"
 msgstr "<nu a fost gasit nici un model>"
 
-#: qcsrc/menu/xonotic/serverlist.c:360
+#: qcsrc/menu/xonotic/serverlist.c:185
 msgid "Remove"
 msgstr "Stergere"
 
-#: qcsrc/menu/xonotic/serverlist.c:362
+#: qcsrc/menu/xonotic/serverlist.c:187
 msgid "Bookmark"
 msgstr "Favorit"
 
-#: qcsrc/menu/xonotic/serverlist.c:518
+#: qcsrc/menu/xonotic/serverlist.c:523
 msgid "Ping"
 msgstr "Latenta"
 
-#: qcsrc/menu/xonotic/serverlist.c:519
+#: qcsrc/menu/xonotic/serverlist.c:524
 msgid "Host name"
 msgstr "Nume server"
 
-#: qcsrc/menu/xonotic/serverlist.c:520
+#: qcsrc/menu/xonotic/serverlist.c:525
 msgid "Map"
 msgstr "Harta"
 
-#: qcsrc/menu/xonotic/serverlist.c:521
+#: qcsrc/menu/xonotic/serverlist.c:526
 msgid "Type"
 msgstr "Mod"
 
-#: qcsrc/menu/xonotic/serverlist.c:522
+#: qcsrc/menu/xonotic/serverlist.c:527
 msgid "Players"
 msgstr "Jucatori"
 
@@ -2309,12 +2257,10 @@ msgid "%s: %s"
 msgstr "%s: %s"
 
 #: qcsrc/menu/xonotic/slider_decibels.c:50
-#, fuzzy
 msgid "VOL^OFF"
 msgstr "OPRIT"
 
 #: qcsrc/menu/xonotic/slider_decibels.c:52
-#, fuzzy
 msgid "VOL^MAX"
 msgstr "MAXIM"
 
@@ -2359,6 +2305,11 @@ msgstr ""
 msgid "Autogenerating mapinfo for newly added maps..."
 msgstr "Auto-generare mapinfo pentru hartile proaspat adaugate..."
 
+#: qcsrc/menu/xonotic/util.qc:367
+#, c-format
+msgid "^1%s TEST BUILD"
+msgstr ""
+
 #: qcsrc/menu/xonotic/util.qc:432
 #, c-format
 msgid "Update to %s now!"
@@ -2467,233 +2418,233 @@ msgstr "Activare panou"
 msgid "Crylink"
 msgstr "Crylink"
 
-#: qcsrc/server/w_crylink.qc:645
+#: qcsrc/server/w_crylink.qc:664
 #, c-format
 msgid "%s succeeded at self-destructing themself with the Crylink"
-msgstr ""
+msgstr "%s a reusit sa se auto-distruga cu Crylink-ul"
 
-#: qcsrc/server/w_crylink.qc:650
+#: qcsrc/server/w_crylink.qc:669
 #, c-format
 msgid "%s could not hide from %s's Crylink"
-msgstr ""
+msgstr "%s nu s-a putut ascunde de Crylink-ul lui %s"
 
-#: qcsrc/server/w_crylink.qc:652
+#: qcsrc/server/w_crylink.qc:671
 #, c-format
 msgid "%s was too close to %s's Crylink"
-msgstr ""
+msgstr "%s s-a apropiat prea mult de Crylink-ul lui %s"
 
-#: qcsrc/server/w_crylink.qc:654
+#: qcsrc/server/w_crylink.qc:673
 #, c-format
 msgid "%s took a close look at %s's Crylink"
-msgstr ""
+msgstr "%s s-a uitat in deaproape la Crylink-ul lui %s"
 
 #: qcsrc/server/w_electro.qc:2
 msgid "Electro"
 msgstr "Electro"
 
-#: qcsrc/server/w_electro.qc:503
+#: qcsrc/server/w_electro.qc:571
 #, c-format
 msgid "%s could not remember where they put plasma"
-msgstr ""
+msgstr "%s a uitat unde a pus plasma"
 
-#: qcsrc/server/w_electro.qc:505
+#: qcsrc/server/w_electro.qc:573
 #, c-format
 msgid "%s played with plasma"
-msgstr ""
+msgstr "%s s-a jucat cu plasma"
 
-#: qcsrc/server/w_electro.qc:512
+#: qcsrc/server/w_electro.qc:580
 #, c-format
 msgid "%s just noticed %s's blue ball"
-msgstr ""
+msgstr "%s tocmai a observat bilele albastre ale lui %s"
 
-#: qcsrc/server/w_electro.qc:514
+#: qcsrc/server/w_electro.qc:582
 #, c-format
 msgid "%s got in touch with %s's blue ball"
-msgstr ""
+msgstr "%s a intrat in contact cu bila albastra a lui %s"
 
-#: qcsrc/server/w_electro.qc:519
+#: qcsrc/server/w_electro.qc:587
 #, c-format
 msgid "%s felt the electrifying air of %s's combo"
-msgstr ""
+msgstr "%s a simtit forta electrica a combinatiei lui %s"
 
-#: qcsrc/server/w_electro.qc:521
+#: qcsrc/server/w_electro.qc:589
 #, c-format
 msgid "%s got too close to %s's blue beam"
-msgstr ""
+msgstr "%s s-a apropiat prea mult de raza albastra a lui %s"
 
-#: qcsrc/server/w_electro.qc:523
+#: qcsrc/server/w_electro.qc:591
 #, c-format
 msgid "%s was blasted by %s's blue beam"
-msgstr ""
+msgstr "%s a fost lovit de raza albastra a lui %s"
 
 #: qcsrc/server/w_fireball.qc:2
 msgid "Fireball"
 msgstr "Fireball"
 
-#: qcsrc/server/w_fireball.qc:392
+#: qcsrc/server/w_fireball.qc:417
 #, c-format
 msgid "%s forgot about some firemine"
-msgstr ""
+msgstr "%s a uitat o minge de foc"
 
-#: qcsrc/server/w_fireball.qc:394 qcsrc/server/w_hlac.qc:223
+#: qcsrc/server/w_fireball.qc:419 qcsrc/server/w_hlac.qc:240
 #, c-format
 msgid "%s should have used a smaller gun"
-msgstr ""
+msgstr "%s trebuia sa foloseasca o arma mai mica"
 
-#: qcsrc/server/w_fireball.qc:401
+#: qcsrc/server/w_fireball.qc:426
 #, c-format
 msgid "%s tried to catch %s's firemine"
-msgstr ""
+msgstr "%s a incercat sa prinda mingea de foc a lui %s"
 
-#: qcsrc/server/w_fireball.qc:403
+#: qcsrc/server/w_fireball.qc:428
 #, c-format
 msgid "%s fatefully ignored %s's firemine"
-msgstr ""
+msgstr "%s a ignorat mingea de foc a lui %s cu incredere"
 
-#: qcsrc/server/w_fireball.qc:410
+#: qcsrc/server/w_fireball.qc:435
 #, c-format
 msgid "%s could not hide from %s's fireball"
-msgstr ""
+msgstr "%s nu s-a putut ascunde de Fireball-ul lui %s"
 
-#: qcsrc/server/w_fireball.qc:412
+#: qcsrc/server/w_fireball.qc:437
 #, c-format
 msgid "%s saw the pretty lights of %s's fireball"
-msgstr ""
+msgstr "%s a vazut luminita de la capatul Fireball-ului lui %s"
 
-#: qcsrc/server/w_fireball.qc:415
+#: qcsrc/server/w_fireball.qc:440
 #, c-format
 msgid "%s got too close to %s's fireball"
-msgstr ""
+msgstr "%s s-a apropiat prea mult de Fireball-ul lui %s"
 
-#: qcsrc/server/w_fireball.qc:417
+#: qcsrc/server/w_fireball.qc:442
 #, c-format
 msgid "%s tasted %s's fireball"
-msgstr ""
+msgstr "%s a gustat din Fireball-ul lui %s"
 
 #: qcsrc/server/w_grenadelauncher.qc:2
 msgid "Mortar"
 msgstr "Mortar"
 
-#: qcsrc/server/w_grenadelauncher.qc:357
+#: qcsrc/server/w_grenadelauncher.qc:378
 #, c-format
 msgid "%s tried out his own grenade"
-msgstr ""
+msgstr "%s si-a incercat propria grenada"
 
-#: qcsrc/server/w_grenadelauncher.qc:359
+#: qcsrc/server/w_grenadelauncher.qc:380
 #, c-format
 msgid "%s detonated"
-msgstr ""
+msgstr "%s a detonat"
 
-#: qcsrc/server/w_grenadelauncher.qc:365
+#: qcsrc/server/w_grenadelauncher.qc:386
 #, c-format
 msgid "%s didn't see %s's grenade"
-msgstr ""
+msgstr "%s nu a vazut grenada lui %s"
 
-#: qcsrc/server/w_grenadelauncher.qc:367
+#: qcsrc/server/w_grenadelauncher.qc:388
 #, c-format
 msgid "%s almost dodged %s's grenade"
-msgstr ""
+msgstr "%s aproape ca s-a ferit de grenada lui %s"
 
-#: qcsrc/server/w_grenadelauncher.qc:369
+#: qcsrc/server/w_grenadelauncher.qc:390
 #, c-format
 msgid "%s ate %s's grenade"
-msgstr ""
+msgstr "%s a mancat grenada lui %s"
 
 #: qcsrc/server/w_hagar.qc:2
 msgid "Hagar"
 msgstr "Hagar"
 
-#: qcsrc/server/w_hagar.qc:185 qcsrc/server/w_seeker.qc:523
+#: qcsrc/server/w_hagar.qc:209 qcsrc/server/w_seeker.qc:655
 #, c-format
 msgid "%s played with tiny rockets"
-msgstr ""
+msgstr "%s s-a jucat cu rachete"
 
-#: qcsrc/server/w_hagar.qc:189
+#: qcsrc/server/w_hagar.qc:213
 #, c-format
 msgid "%s hoped %s's missiles wouldn't bounce"
-msgstr ""
+msgstr "%s a sperat ca rachetele lui %s nu vor ricosa"
 
-#: qcsrc/server/w_hagar.qc:191
+#: qcsrc/server/w_hagar.qc:215 qcsrc/server/w_seeker.qc:661
 #, c-format
 msgid "%s was pummeled by %s"
-msgstr ""
+msgstr "%s a fost batut mar de %s"
 
 #: qcsrc/server/w_hlac.qc:2
 msgid "Heavy Laser Assault Cannon"
 msgstr "Heavy Laser Assault Cannon"
 
-#: qcsrc/server/w_hlac.qc:225
+#: qcsrc/server/w_hlac.qc:242
 #, c-format
 msgid "%s was cut down by %s"
-msgstr ""
+msgstr "%s a fost taiat de %s"
 
 #: qcsrc/server/w_hook.qc:2
 msgid "Grappling Hook"
 msgstr "Grappling Hook"
 
-#: qcsrc/server/w_hook.qc:267 qcsrc/server/w_minstanex.qc:257
-#: qcsrc/server/w_nex.qc:224 qcsrc/server/w_porto.qc:293
-#: qcsrc/server/w_shotgun.qc:179 qcsrc/server/w_uzi.qc:287
+#: qcsrc/server/w_hook.qc:266 qcsrc/server/w_minstanex.qc:290
+#: qcsrc/server/w_nex.qc:267 qcsrc/server/w_porto.qc:296
+#: qcsrc/server/w_shotgun.qc:203 qcsrc/server/w_uzi.qc:317
 #, c-format
 msgid "%s did the impossible"
-msgstr ""
+msgstr "%s a reusit imposibilul"
 
-#: qcsrc/server/w_hook.qc:269
+#: qcsrc/server/w_hook.qc:268
 #, c-format
 msgid "%s has run into %s's gravity bomb"
-msgstr ""
+msgstr "%s a fost absorbit de bomba gravitationala a lui %s"
 
 #: qcsrc/server/w_laser.qc:2
 msgid "Laser"
 msgstr "Laser"
 
-#: qcsrc/server/w_laser.qc:285
+#: qcsrc/server/w_laser.qc:305
 #, c-format
 msgid "%s lasered themself to hell"
-msgstr ""
+msgstr "%s s-a lovit prea mult cu laserul"
 
-#: qcsrc/server/w_laser.qc:289
+#: qcsrc/server/w_laser.qc:309
 #, c-format
 msgid "%s was cut in half by %s's gauntlet"
-msgstr ""
+msgstr "%s a fost taiat in doua de socul lui %s"
 
-#: qcsrc/server/w_laser.qc:291
+#: qcsrc/server/w_laser.qc:311
 #, c-format
 msgid "%s was lasered to death by %s"
-msgstr ""
+msgstr "%s a fost omorat cu laser de %s"
 
 #: qcsrc/server/w_minelayer.qc:2
 msgid "Mine Layer"
 msgstr "Mine Layer"
 
-#: qcsrc/server/w_minelayer.qc:438 qcsrc/server/w_rocketlauncher.qc:480
+#: qcsrc/server/w_minelayer.qc:495 qcsrc/server/w_rocketlauncher.qc:500
 #, c-format
 msgid "%s exploded"
-msgstr ""
+msgstr "%s a explodat"
 
-#: qcsrc/server/w_minelayer.qc:442
+#: qcsrc/server/w_minelayer.qc:499
 #, c-format
 msgid "%s got too close to %s's mine"
-msgstr ""
+msgstr "%s s-a apropiat prea mult de mina lui %s"
 
-#: qcsrc/server/w_minelayer.qc:444
+#: qcsrc/server/w_minelayer.qc:501
 #, c-format
 msgid "%s almost dodged %s's mine"
-msgstr ""
+msgstr "%s aproape ca s-a ferit de mina lui %s"
 
-#: qcsrc/server/w_minelayer.qc:446
+#: qcsrc/server/w_minelayer.qc:503
 #, c-format
 msgid "%s stepped on %s's mine"
-msgstr ""
+msgstr "%s a calcat pe mina lui %s"
 
 #: qcsrc/server/w_minstanex.qc:2
 msgid "MinstaNex"
 msgstr "MinstaNex"
 
-#: qcsrc/server/w_minstanex.qc:259 qcsrc/server/w_nex.qc:226
+#: qcsrc/server/w_minstanex.qc:292 qcsrc/server/w_nex.qc:269
 #, c-format
 msgid "%s has been vaporized by %s"
-msgstr ""
+msgstr "%s a fost vaporizat de %s"
 
 #: qcsrc/server/w_nex.qc:2
 msgid "Nex"
@@ -2703,120 +2654,115 @@ msgstr "Nex"
 msgid "Port-O-Launch"
 msgstr "Port-O-Launch"
 
-#: qcsrc/server/w_porto.qc:295
+#: qcsrc/server/w_porto.qc:298
 #, c-format
 msgid "%s felt %s doing the impossible to him"
-msgstr ""
+msgstr "%s a simtit cum %s a reusit imposibilul"
 
 #: qcsrc/server/w_rocketlauncher.qc:2
 msgid "Rocket Launcher"
 msgstr "Rocket Launcher"
 
-#: qcsrc/server/w_rocketlauncher.qc:484
+#: qcsrc/server/w_rocketlauncher.qc:504
 #, c-format
 msgid "%s got too close to %s's rocket"
-msgstr ""
+msgstr "%s s-a apropiat prea mult de racheta lui %s"
 
-#: qcsrc/server/w_rocketlauncher.qc:486
+#: qcsrc/server/w_rocketlauncher.qc:506
 #, c-format
 msgid "%s almost dodged %s's rocket"
-msgstr ""
+msgstr "%s aproape ca s-a ferit de racheta lui %s"
 
-#: qcsrc/server/w_rocketlauncher.qc:488
+#: qcsrc/server/w_rocketlauncher.qc:508
 #, c-format
 msgid "%s ate %s's rocket"
-msgstr ""
+msgstr "%s a mancat racheta lui %s"
 
 #: qcsrc/server/w_seeker.qc:2
 msgid "T.A.G. Seeker"
 msgstr "T.A.G. Seeker"
 
-#: qcsrc/server/w_seeker.qc:527
-#, c-format
-msgid "%s ran into %s's flac"
-msgstr ""
-
-#: qcsrc/server/w_seeker.qc:529
+#: qcsrc/server/w_seeker.qc:659
 #, c-format
 msgid "%s was tagged by %s"
-msgstr ""
+msgstr "%s a fost marcat de %s"
 
 #: qcsrc/server/w_shotgun.qc:2
 msgid "Shotgun"
 msgstr "Shotgun"
 
-#: qcsrc/server/w_shotgun.qc:183
+#: qcsrc/server/w_shotgun.qc:207
 #, c-format
 msgid "%2$s ^7slapped %1$s ^7around a bit with a large ^2shotgun"
-msgstr ""
+msgstr "%2$s ^7l-a plesnit pe %1$s ^7cu o ^2Pusca ^7foarte mare"
 
-#: qcsrc/server/w_shotgun.qc:185
+#: qcsrc/server/w_shotgun.qc:209
 #, c-format
 msgid "%s was gunned by %s"
-msgstr ""
+msgstr "%s a fost impuscat de %s"
 
 #: qcsrc/server/w_sniperrifle.qc:2
 msgid "Sniper Rifle"
 msgstr "Sniper Rifle"
 
-#: qcsrc/server/w_sniperrifle.qc:321
+#: qcsrc/server/w_sniperrifle.qc:229
 #, c-format
 msgid "%s shot themself automatically"
-msgstr ""
+msgstr "%s s-a impuscat automat"
 
-#: qcsrc/server/w_sniperrifle.qc:323
+#: qcsrc/server/w_sniperrifle.qc:231
 #, c-format
 msgid "%s sniped themself somehow"
-msgstr ""
+msgstr "%s s-a impuscat oarecum cu luneta"
 
-#: qcsrc/server/w_sniperrifle.qc:330
+#: qcsrc/server/w_sniperrifle.qc:238
 #, c-format
 msgid "%s failed to hide from %s's bullet hail"
-msgstr ""
+msgstr "%s nu a reusit sa se ascunda de ploaia de gloante a lui %s"
 
-#: qcsrc/server/w_sniperrifle.qc:332
+#: qcsrc/server/w_sniperrifle.qc:240
 #, c-format
 msgid "%s died in %s's bullet hail"
-msgstr ""
+msgstr "%s a murit in ploaia de gloante a lui %s"
 
-#: qcsrc/server/w_sniperrifle.qc:339
+#: qcsrc/server/w_sniperrifle.qc:247
 #, c-format
 msgid "%s failed to hide from %s's rifle"
-msgstr ""
+msgstr "%s nu a reusit sa se ascunda de luneta lui %s"
 
-#: qcsrc/server/w_sniperrifle.qc:344
+#: qcsrc/server/w_sniperrifle.qc:252
 #, c-format
 msgid "%s got hit in the head by %s"
-msgstr ""
+msgstr "%s a fost lovit in cap de %s"
 
-#: qcsrc/server/w_sniperrifle.qc:346 qcsrc/server/w_uzi.qc:291
+#: qcsrc/server/w_sniperrifle.qc:254 qcsrc/server/w_uzi.qc:321
 #, c-format
 msgid "%s was sniped by %s"
-msgstr ""
+msgstr "%s a fost nimerit cu luneta de %s"
 
 #: qcsrc/server/w_tuba.qc:2
 #, c-format
 msgid "@!#%'n Tuba"
 msgstr "@!#%'n Tuba"
 
-#: qcsrc/server/w_tuba.qc:260
+#: qcsrc/server/w_tuba.qc:263
 #, c-format
 msgid "%s hurt his own ears with the @!#%%'n Tuba"
-msgstr ""
+msgstr "%s si-a spart urechile cu propria @!#%%'n Tuba"
 
-#: qcsrc/server/w_tuba.qc:264
+#: qcsrc/server/w_tuba.qc:267
 #, c-format
 msgid "%s died of %s's great playing on the @!#%%'n Tuba"
-msgstr ""
+msgstr "%s a murit de la cantecul lui %s cu @!#%%'n Tuba"
 
 #: qcsrc/server/w_uzi.qc:2
 msgid "Machine Gun"
 msgstr "Machine Gun"
 
-#: qcsrc/server/w_uzi.qc:293
+#: qcsrc/server/w_uzi.qc:323
 #, c-format
 msgid "%s was riddled full of holes by %s"
-msgstr ""
+msgstr "%s a fost gaurit de %s"
 
 #~ msgid "Waypoint settings:"
 #~ msgstr "Setari indicatoare:"
index 3c3ef48e2dfe5659e35425e55993f66474d8e411..87021d894f5a4f7046ac4edab3bf71e52f231e8d 100644 (file)
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: 0.1preview\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-02-07 07:50+0100\n"
+"POT-Creation-Date: 2011-04-30 10:07+0200\n"
 "PO-Revision-Date: 2011-01-20 13:16+0300\n"
 "Last-Translator: Nikoli <nikoli@lavabit.com>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -67,8 +67,8 @@ msgid "custom"
 msgstr "особо"
 
 #: qcsrc/menu/menu.qc:29
-#, c-format
-msgid "^4MQC Build information: %s\n"
+#, fuzzy, c-format
+msgid "^4MQC Build information: ^1%s\n"
 msgstr "^4Сведения о сборке MQC: %s\n"
 
 #: qcsrc/menu/xonotic/campaign.c:284
@@ -332,7 +332,7 @@ msgstr "Радар:"
 #: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:32
 #: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:43
 #: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:82
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:151
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:154
 #: qcsrc/menu/xonotic/util.qc:608
 msgid "Alpha:"
 msgstr "Прозрачность:"
@@ -1006,11 +1006,11 @@ msgstr "Пауза"
 msgid "Address:"
 msgstr "Адрес:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:65
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:67
 msgid "Info..."
 msgstr "Сведения..."
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:70
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:72
 #: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:317
 msgid "Join!"
 msgstr "Присоединиться"
@@ -1152,7 +1152,7 @@ msgid "Crosshair:"
 msgstr "Прицел:"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:111
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:143
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:139
 msgid "Per weapon"
 msgstr "Зависит от оружия"
 
@@ -1168,35 +1168,44 @@ msgstr "Прозрачность:"
 msgid "Crosshair color:"
 msgstr "Цвет прицела:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:145
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:140
+msgid "By health"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:143
+#, fuzzy
+msgid "Custom"
+msgstr "особо"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:148
 msgid "Enable center dot"
 msgstr "Точка в центре"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:148
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:151
 msgid "Size:"
 msgstr "Размер:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:155
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:158
 msgid "Hit test:"
 msgstr "Проверка на попадание:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:156
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:159
 msgid "HTST^None"
 msgstr "Отключена"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:157
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:160
 msgid "TrueAim"
 msgstr "TrueAim"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:158
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:161
 msgid "Enemies"
 msgstr "Враги"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:161
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:164
 msgid "Waypoints setup..."
 msgstr "Настройка отметок..."
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:167
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:169
 msgid "Enter HUD editor"
 msgstr "Войти в редактор HUD"
 
@@ -1216,35 +1225,35 @@ msgstr "Вместо нестандартных"
 msgid "MDL^All"
 msgstr "Вместо всех"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:179
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:180
 msgid "Disable gore effects"
 msgstr "Отключить эффекты жестокости"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:181
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:182
 msgid "Gibs:"
 msgstr "Ошмётки:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:183
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:184
 msgid "GIBS^None"
 msgstr "Нет"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:184
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:185
 msgid "GIBS^Few"
 msgstr "Мало"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:185
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:186
 msgid "GIBS^Many"
 msgstr "Много"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:186
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:187
 msgid "GIBS^Lots"
 msgstr "Тонны"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:190
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:191
 msgid "Damage splash:"
 msgstr "Изображ. урона"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:194
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:195
 #: qcsrc/menu/xonotic/dialog_settings_audio.c:178
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:194
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:30
@@ -2214,31 +2223,31 @@ msgstr ""
 msgid "<no model found>"
 msgstr "<модель игрока не найдена>"
 
-#: qcsrc/menu/xonotic/serverlist.c:360
+#: qcsrc/menu/xonotic/serverlist.c:185
 msgid "Remove"
 msgstr "Убрать"
 
-#: qcsrc/menu/xonotic/serverlist.c:362
+#: qcsrc/menu/xonotic/serverlist.c:187
 msgid "Bookmark"
 msgstr "В закладки"
 
-#: qcsrc/menu/xonotic/serverlist.c:518
+#: qcsrc/menu/xonotic/serverlist.c:523
 msgid "Ping"
 msgstr "Пинг"
 
-#: qcsrc/menu/xonotic/serverlist.c:519
+#: qcsrc/menu/xonotic/serverlist.c:524
 msgid "Host name"
 msgstr "Имя сервера"
 
-#: qcsrc/menu/xonotic/serverlist.c:520
+#: qcsrc/menu/xonotic/serverlist.c:525
 msgid "Map"
 msgstr "Карта"
 
-#: qcsrc/menu/xonotic/serverlist.c:521
+#: qcsrc/menu/xonotic/serverlist.c:526
 msgid "Type"
 msgstr "Вид"
 
-#: qcsrc/menu/xonotic/serverlist.c:522
+#: qcsrc/menu/xonotic/serverlist.c:527
 msgid "Players"
 msgstr "Игроки"
 
@@ -2306,6 +2315,11 @@ msgstr ""
 msgid "Autogenerating mapinfo for newly added maps..."
 msgstr "Автоматическое создание mapinfo для новых карт..."
 
+#: qcsrc/menu/xonotic/util.qc:367
+#, c-format
+msgid "^1%s TEST BUILD"
+msgstr ""
+
 #: qcsrc/menu/xonotic/util.qc:432
 #, c-format
 msgid "Update to %s now!"
@@ -2414,22 +2428,22 @@ msgstr "Включить панель"
 msgid "Crylink"
 msgstr "Crylink"
 
-#: qcsrc/server/w_crylink.qc:645
+#: qcsrc/server/w_crylink.qc:664
 #, c-format
 msgid "%s succeeded at self-destructing themself with the Crylink"
 msgstr ""
 
-#: qcsrc/server/w_crylink.qc:650
+#: qcsrc/server/w_crylink.qc:669
 #, c-format
 msgid "%s could not hide from %s's Crylink"
 msgstr ""
 
-#: qcsrc/server/w_crylink.qc:652
+#: qcsrc/server/w_crylink.qc:671
 #, c-format
 msgid "%s was too close to %s's Crylink"
 msgstr ""
 
-#: qcsrc/server/w_crylink.qc:654
+#: qcsrc/server/w_crylink.qc:673
 #, c-format
 msgid "%s took a close look at %s's Crylink"
 msgstr ""
@@ -2438,37 +2452,37 @@ msgstr ""
 msgid "Electro"
 msgstr "Electro"
 
-#: qcsrc/server/w_electro.qc:503
+#: qcsrc/server/w_electro.qc:571
 #, c-format
 msgid "%s could not remember where they put plasma"
 msgstr ""
 
-#: qcsrc/server/w_electro.qc:505
+#: qcsrc/server/w_electro.qc:573
 #, c-format
 msgid "%s played with plasma"
 msgstr ""
 
-#: qcsrc/server/w_electro.qc:512
+#: qcsrc/server/w_electro.qc:580
 #, c-format
 msgid "%s just noticed %s's blue ball"
 msgstr ""
 
-#: qcsrc/server/w_electro.qc:514
+#: qcsrc/server/w_electro.qc:582
 #, c-format
 msgid "%s got in touch with %s's blue ball"
 msgstr ""
 
-#: qcsrc/server/w_electro.qc:519
+#: qcsrc/server/w_electro.qc:587
 #, c-format
 msgid "%s felt the electrifying air of %s's combo"
 msgstr ""
 
-#: qcsrc/server/w_electro.qc:521
+#: qcsrc/server/w_electro.qc:589
 #, c-format
 msgid "%s got too close to %s's blue beam"
 msgstr ""
 
-#: qcsrc/server/w_electro.qc:523
+#: qcsrc/server/w_electro.qc:591
 #, c-format
 msgid "%s was blasted by %s's blue beam"
 msgstr ""
@@ -2477,42 +2491,42 @@ msgstr ""
 msgid "Fireball"
 msgstr "Fireball"
 
-#: qcsrc/server/w_fireball.qc:392
+#: qcsrc/server/w_fireball.qc:417
 #, c-format
 msgid "%s forgot about some firemine"
 msgstr ""
 
-#: qcsrc/server/w_fireball.qc:394 qcsrc/server/w_hlac.qc:223
+#: qcsrc/server/w_fireball.qc:419 qcsrc/server/w_hlac.qc:240
 #, c-format
 msgid "%s should have used a smaller gun"
 msgstr ""
 
-#: qcsrc/server/w_fireball.qc:401
+#: qcsrc/server/w_fireball.qc:426
 #, c-format
 msgid "%s tried to catch %s's firemine"
 msgstr ""
 
-#: qcsrc/server/w_fireball.qc:403
+#: qcsrc/server/w_fireball.qc:428
 #, c-format
 msgid "%s fatefully ignored %s's firemine"
 msgstr ""
 
-#: qcsrc/server/w_fireball.qc:410
+#: qcsrc/server/w_fireball.qc:435
 #, c-format
 msgid "%s could not hide from %s's fireball"
 msgstr ""
 
-#: qcsrc/server/w_fireball.qc:412
+#: qcsrc/server/w_fireball.qc:437
 #, c-format
 msgid "%s saw the pretty lights of %s's fireball"
 msgstr ""
 
-#: qcsrc/server/w_fireball.qc:415
+#: qcsrc/server/w_fireball.qc:440
 #, c-format
 msgid "%s got too close to %s's fireball"
 msgstr ""
 
-#: qcsrc/server/w_fireball.qc:417
+#: qcsrc/server/w_fireball.qc:442
 #, c-format
 msgid "%s tasted %s's fireball"
 msgstr ""
@@ -2521,27 +2535,27 @@ msgstr ""
 msgid "Mortar"
 msgstr "Mortar"
 
-#: qcsrc/server/w_grenadelauncher.qc:357
+#: qcsrc/server/w_grenadelauncher.qc:378
 #, c-format
 msgid "%s tried out his own grenade"
 msgstr ""
 
-#: qcsrc/server/w_grenadelauncher.qc:359
+#: qcsrc/server/w_grenadelauncher.qc:380
 #, c-format
 msgid "%s detonated"
 msgstr ""
 
-#: qcsrc/server/w_grenadelauncher.qc:365
+#: qcsrc/server/w_grenadelauncher.qc:386
 #, c-format
 msgid "%s didn't see %s's grenade"
 msgstr ""
 
-#: qcsrc/server/w_grenadelauncher.qc:367
+#: qcsrc/server/w_grenadelauncher.qc:388
 #, c-format
 msgid "%s almost dodged %s's grenade"
 msgstr ""
 
-#: qcsrc/server/w_grenadelauncher.qc:369
+#: qcsrc/server/w_grenadelauncher.qc:390
 #, c-format
 msgid "%s ate %s's grenade"
 msgstr ""
@@ -2550,17 +2564,17 @@ msgstr ""
 msgid "Hagar"
 msgstr "Hagar"
 
-#: qcsrc/server/w_hagar.qc:185 qcsrc/server/w_seeker.qc:523
+#: qcsrc/server/w_hagar.qc:209 qcsrc/server/w_seeker.qc:655
 #, c-format
 msgid "%s played with tiny rockets"
 msgstr ""
 
-#: qcsrc/server/w_hagar.qc:189
+#: qcsrc/server/w_hagar.qc:213
 #, c-format
 msgid "%s hoped %s's missiles wouldn't bounce"
 msgstr ""
 
-#: qcsrc/server/w_hagar.qc:191
+#: qcsrc/server/w_hagar.qc:215 qcsrc/server/w_seeker.qc:661
 #, c-format
 msgid "%s was pummeled by %s"
 msgstr ""
@@ -2569,7 +2583,7 @@ msgstr ""
 msgid "Heavy Laser Assault Cannon"
 msgstr "Heavy Laser Assault Cannon"
 
-#: qcsrc/server/w_hlac.qc:225
+#: qcsrc/server/w_hlac.qc:242
 #, c-format
 msgid "%s was cut down by %s"
 msgstr ""
@@ -2578,14 +2592,14 @@ msgstr ""
 msgid "Grappling Hook"
 msgstr "Grappling Hook"
 
-#: qcsrc/server/w_hook.qc:267 qcsrc/server/w_minstanex.qc:257
-#: qcsrc/server/w_nex.qc:224 qcsrc/server/w_porto.qc:293
-#: qcsrc/server/w_shotgun.qc:179 qcsrc/server/w_uzi.qc:287
+#: qcsrc/server/w_hook.qc:266 qcsrc/server/w_minstanex.qc:290
+#: qcsrc/server/w_nex.qc:267 qcsrc/server/w_porto.qc:296
+#: qcsrc/server/w_shotgun.qc:203 qcsrc/server/w_uzi.qc:317
 #, c-format
 msgid "%s did the impossible"
 msgstr ""
 
-#: qcsrc/server/w_hook.qc:269
+#: qcsrc/server/w_hook.qc:268
 #, c-format
 msgid "%s has run into %s's gravity bomb"
 msgstr ""
@@ -2594,17 +2608,17 @@ msgstr ""
 msgid "Laser"
 msgstr "Laser"
 
-#: qcsrc/server/w_laser.qc:285
+#: qcsrc/server/w_laser.qc:305
 #, c-format
 msgid "%s lasered themself to hell"
 msgstr ""
 
-#: qcsrc/server/w_laser.qc:289
+#: qcsrc/server/w_laser.qc:309
 #, c-format
 msgid "%s was cut in half by %s's gauntlet"
 msgstr ""
 
-#: qcsrc/server/w_laser.qc:291
+#: qcsrc/server/w_laser.qc:311
 #, c-format
 msgid "%s was lasered to death by %s"
 msgstr ""
@@ -2613,22 +2627,22 @@ msgstr ""
 msgid "Mine Layer"
 msgstr "Mine Layer"
 
-#: qcsrc/server/w_minelayer.qc:438 qcsrc/server/w_rocketlauncher.qc:480
+#: qcsrc/server/w_minelayer.qc:495 qcsrc/server/w_rocketlauncher.qc:500
 #, c-format
 msgid "%s exploded"
 msgstr ""
 
-#: qcsrc/server/w_minelayer.qc:442
+#: qcsrc/server/w_minelayer.qc:499
 #, c-format
 msgid "%s got too close to %s's mine"
 msgstr ""
 
-#: qcsrc/server/w_minelayer.qc:444
+#: qcsrc/server/w_minelayer.qc:501
 #, c-format
 msgid "%s almost dodged %s's mine"
 msgstr ""
 
-#: qcsrc/server/w_minelayer.qc:446
+#: qcsrc/server/w_minelayer.qc:503
 #, c-format
 msgid "%s stepped on %s's mine"
 msgstr ""
@@ -2637,7 +2651,7 @@ msgstr ""
 msgid "MinstaNex"
 msgstr "MinstaNex"
 
-#: qcsrc/server/w_minstanex.qc:259 qcsrc/server/w_nex.qc:226
+#: qcsrc/server/w_minstanex.qc:292 qcsrc/server/w_nex.qc:269
 #, c-format
 msgid "%s has been vaporized by %s"
 msgstr ""
@@ -2650,7 +2664,7 @@ msgstr "Nex"
 msgid "Port-O-Launch"
 msgstr "Port-O-Launch"
 
-#: qcsrc/server/w_porto.qc:295
+#: qcsrc/server/w_porto.qc:298
 #, c-format
 msgid "%s felt %s doing the impossible to him"
 msgstr ""
@@ -2659,17 +2673,17 @@ msgstr ""
 msgid "Rocket Launcher"
 msgstr "Rocket Launcher"
 
-#: qcsrc/server/w_rocketlauncher.qc:484
+#: qcsrc/server/w_rocketlauncher.qc:504
 #, c-format
 msgid "%s got too close to %s's rocket"
 msgstr ""
 
-#: qcsrc/server/w_rocketlauncher.qc:486
+#: qcsrc/server/w_rocketlauncher.qc:506
 #, c-format
 msgid "%s almost dodged %s's rocket"
 msgstr ""
 
-#: qcsrc/server/w_rocketlauncher.qc:488
+#: qcsrc/server/w_rocketlauncher.qc:508
 #, c-format
 msgid "%s ate %s's rocket"
 msgstr ""
@@ -2678,12 +2692,7 @@ msgstr ""
 msgid "T.A.G. Seeker"
 msgstr "T.A.G. Seeker"
 
-#: qcsrc/server/w_seeker.qc:527
-#, c-format
-msgid "%s ran into %s's flac"
-msgstr ""
-
-#: qcsrc/server/w_seeker.qc:529
+#: qcsrc/server/w_seeker.qc:659
 #, c-format
 msgid "%s was tagged by %s"
 msgstr ""
@@ -2692,12 +2701,12 @@ msgstr ""
 msgid "Shotgun"
 msgstr "Shotgun"
 
-#: qcsrc/server/w_shotgun.qc:183
+#: qcsrc/server/w_shotgun.qc:207
 #, c-format
 msgid "%2$s ^7slapped %1$s ^7around a bit with a large ^2shotgun"
 msgstr ""
 
-#: qcsrc/server/w_shotgun.qc:185
+#: qcsrc/server/w_shotgun.qc:209
 #, c-format
 msgid "%s was gunned by %s"
 msgstr ""
@@ -2706,37 +2715,37 @@ msgstr ""
 msgid "Sniper Rifle"
 msgstr "Sniper Rifle"
 
-#: qcsrc/server/w_sniperrifle.qc:321
+#: qcsrc/server/w_sniperrifle.qc:229
 #, c-format
 msgid "%s shot themself automatically"
 msgstr ""
 
-#: qcsrc/server/w_sniperrifle.qc:323
+#: qcsrc/server/w_sniperrifle.qc:231
 #, c-format
 msgid "%s sniped themself somehow"
 msgstr ""
 
-#: qcsrc/server/w_sniperrifle.qc:330
+#: qcsrc/server/w_sniperrifle.qc:238
 #, c-format
 msgid "%s failed to hide from %s's bullet hail"
 msgstr ""
 
-#: qcsrc/server/w_sniperrifle.qc:332
+#: qcsrc/server/w_sniperrifle.qc:240
 #, c-format
 msgid "%s died in %s's bullet hail"
 msgstr ""
 
-#: qcsrc/server/w_sniperrifle.qc:339
+#: qcsrc/server/w_sniperrifle.qc:247
 #, c-format
 msgid "%s failed to hide from %s's rifle"
 msgstr ""
 
-#: qcsrc/server/w_sniperrifle.qc:344
+#: qcsrc/server/w_sniperrifle.qc:252
 #, c-format
 msgid "%s got hit in the head by %s"
 msgstr ""
 
-#: qcsrc/server/w_sniperrifle.qc:346 qcsrc/server/w_uzi.qc:291
+#: qcsrc/server/w_sniperrifle.qc:254 qcsrc/server/w_uzi.qc:321
 #, c-format
 msgid "%s was sniped by %s"
 msgstr ""
@@ -2746,12 +2755,12 @@ msgstr ""
 msgid "@!#%'n Tuba"
 msgstr "@!#%'n Tuba"
 
-#: qcsrc/server/w_tuba.qc:260
+#: qcsrc/server/w_tuba.qc:263
 #, c-format
 msgid "%s hurt his own ears with the @!#%%'n Tuba"
 msgstr ""
 
-#: qcsrc/server/w_tuba.qc:264
+#: qcsrc/server/w_tuba.qc:267
 #, c-format
 msgid "%s died of %s's great playing on the @!#%%'n Tuba"
 msgstr ""
@@ -2760,7 +2769,7 @@ msgstr ""
 msgid "Machine Gun"
 msgstr "Machine Gun"
 
-#: qcsrc/server/w_uzi.qc:293
+#: qcsrc/server/w_uzi.qc:323
 #, c-format
 msgid "%s was riddled full of holes by %s"
 msgstr ""
index 7494655dbe45bfc0d3d7564b63075a33c1d3f49e..ff5d4fde7b3880b75310134efcca372678a69c75 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-02-07 07:29+0100\n"
+"POT-Creation-Date: 2011-04-30 10:06+0200\n"
 "PO-Revision-Date: 2011-01-11 22:51+ZONE\n"
 "Last-Translator: marcus256 <marcus256@users.sourceforge.net>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -69,7 +69,7 @@ msgstr ""
 
 #: qcsrc/menu/menu.qc:29
 #, c-format
-msgid "^4MQC Build information: %s\n"
+msgid "^4MQC Build information: ^1%s\n"
 msgstr ""
 
 #: qcsrc/menu/xonotic/campaign.c:284
@@ -330,7 +330,7 @@ msgstr ""
 #: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:32
 #: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:43
 #: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:82
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:151
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:154
 #: qcsrc/menu/xonotic/util.qc:608
 msgid "Alpha:"
 msgstr "Alfa:"
@@ -1004,11 +1004,11 @@ msgstr ""
 msgid "Address:"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:65
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:67
 msgid "Info..."
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:70
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:72
 #: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:317
 msgid "Join!"
 msgstr ""
@@ -1150,7 +1150,7 @@ msgid "Crosshair:"
 msgstr ""
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:111
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:143
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:139
 msgid "Per weapon"
 msgstr ""
 
@@ -1163,38 +1163,47 @@ msgid "Crosshair alpha:"
 msgstr ""
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:138
+#, fuzzy
 msgid "Crosshair color:"
+msgstr "Färg på ammoraden:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:140
+msgid "By health"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:145
-msgid "Enable center dot"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:143
+msgid "Custom"
 msgstr ""
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:148
+msgid "Enable center dot"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:151
 msgid "Size:"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:155
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:158
 msgid "Hit test:"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:156
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:159
 msgid "HTST^None"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:157
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:160
 msgid "TrueAim"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:158
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:161
 msgid "Enemies"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:161
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:164
 msgid "Waypoints setup..."
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:167
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:169
 msgid "Enter HUD editor"
 msgstr ""
 
@@ -1215,35 +1224,35 @@ msgstr ""
 msgid "MDL^All"
 msgstr "Alla"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:179
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:180
 msgid "Disable gore effects"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:181
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:182
 msgid "Gibs:"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:183
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:184
 msgid "GIBS^None"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:184
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:185
 msgid "GIBS^Few"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:185
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:186
 msgid "GIBS^Many"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:186
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:187
 msgid "GIBS^Lots"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:190
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:191
 msgid "Damage splash:"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:194
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:195
 #: qcsrc/menu/xonotic/dialog_settings_audio.c:178
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:194
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:30
@@ -2221,31 +2230,31 @@ msgstr ""
 msgid "<no model found>"
 msgstr "<ingen modell funnen>"
 
-#: qcsrc/menu/xonotic/serverlist.c:360
+#: qcsrc/menu/xonotic/serverlist.c:185
 msgid "Remove"
 msgstr ""
 
-#: qcsrc/menu/xonotic/serverlist.c:362
+#: qcsrc/menu/xonotic/serverlist.c:187
 msgid "Bookmark"
 msgstr ""
 
-#: qcsrc/menu/xonotic/serverlist.c:518
+#: qcsrc/menu/xonotic/serverlist.c:523
 msgid "Ping"
 msgstr ""
 
-#: qcsrc/menu/xonotic/serverlist.c:519
+#: qcsrc/menu/xonotic/serverlist.c:524
 msgid "Host name"
 msgstr ""
 
-#: qcsrc/menu/xonotic/serverlist.c:520
+#: qcsrc/menu/xonotic/serverlist.c:525
 msgid "Map"
 msgstr ""
 
-#: qcsrc/menu/xonotic/serverlist.c:521
+#: qcsrc/menu/xonotic/serverlist.c:526
 msgid "Type"
 msgstr ""
 
-#: qcsrc/menu/xonotic/serverlist.c:522
+#: qcsrc/menu/xonotic/serverlist.c:527
 msgid "Players"
 msgstr ""
 
@@ -2311,6 +2320,11 @@ msgstr ""
 msgid "Autogenerating mapinfo for newly added maps..."
 msgstr "Automatgenererar kartinfo för nyligen tillagda kartor..."
 
+#: qcsrc/menu/xonotic/util.qc:367
+#, c-format
+msgid "^1%s TEST BUILD"
+msgstr ""
+
 #: qcsrc/menu/xonotic/util.qc:432
 #, c-format
 msgid "Update to %s now!"
@@ -2419,22 +2433,22 @@ msgstr ""
 msgid "Crylink"
 msgstr ""
 
-#: qcsrc/server/w_crylink.qc:645
+#: qcsrc/server/w_crylink.qc:664
 #, c-format
 msgid "%s succeeded at self-destructing themself with the Crylink"
 msgstr ""
 
-#: qcsrc/server/w_crylink.qc:650
+#: qcsrc/server/w_crylink.qc:669
 #, c-format
 msgid "%s could not hide from %s's Crylink"
 msgstr ""
 
-#: qcsrc/server/w_crylink.qc:652
+#: qcsrc/server/w_crylink.qc:671
 #, c-format
 msgid "%s was too close to %s's Crylink"
 msgstr ""
 
-#: qcsrc/server/w_crylink.qc:654
+#: qcsrc/server/w_crylink.qc:673
 #, c-format
 msgid "%s took a close look at %s's Crylink"
 msgstr ""
@@ -2443,37 +2457,37 @@ msgstr ""
 msgid "Electro"
 msgstr ""
 
-#: qcsrc/server/w_electro.qc:503
+#: qcsrc/server/w_electro.qc:571
 #, c-format
 msgid "%s could not remember where they put plasma"
 msgstr ""
 
-#: qcsrc/server/w_electro.qc:505
+#: qcsrc/server/w_electro.qc:573
 #, c-format
 msgid "%s played with plasma"
 msgstr ""
 
-#: qcsrc/server/w_electro.qc:512
+#: qcsrc/server/w_electro.qc:580
 #, c-format
 msgid "%s just noticed %s's blue ball"
 msgstr ""
 
-#: qcsrc/server/w_electro.qc:514
+#: qcsrc/server/w_electro.qc:582
 #, c-format
 msgid "%s got in touch with %s's blue ball"
 msgstr ""
 
-#: qcsrc/server/w_electro.qc:519
+#: qcsrc/server/w_electro.qc:587
 #, c-format
 msgid "%s felt the electrifying air of %s's combo"
 msgstr ""
 
-#: qcsrc/server/w_electro.qc:521
+#: qcsrc/server/w_electro.qc:589
 #, c-format
 msgid "%s got too close to %s's blue beam"
 msgstr ""
 
-#: qcsrc/server/w_electro.qc:523
+#: qcsrc/server/w_electro.qc:591
 #, c-format
 msgid "%s was blasted by %s's blue beam"
 msgstr ""
@@ -2483,42 +2497,42 @@ msgstr ""
 msgid "Fireball"
 msgstr "Nexboll"
 
-#: qcsrc/server/w_fireball.qc:392
+#: qcsrc/server/w_fireball.qc:417
 #, c-format
 msgid "%s forgot about some firemine"
 msgstr ""
 
-#: qcsrc/server/w_fireball.qc:394 qcsrc/server/w_hlac.qc:223
+#: qcsrc/server/w_fireball.qc:419 qcsrc/server/w_hlac.qc:240
 #, c-format
 msgid "%s should have used a smaller gun"
 msgstr ""
 
-#: qcsrc/server/w_fireball.qc:401
+#: qcsrc/server/w_fireball.qc:426
 #, c-format
 msgid "%s tried to catch %s's firemine"
 msgstr ""
 
-#: qcsrc/server/w_fireball.qc:403
+#: qcsrc/server/w_fireball.qc:428
 #, c-format
 msgid "%s fatefully ignored %s's firemine"
 msgstr ""
 
-#: qcsrc/server/w_fireball.qc:410
+#: qcsrc/server/w_fireball.qc:435
 #, c-format
 msgid "%s could not hide from %s's fireball"
 msgstr ""
 
-#: qcsrc/server/w_fireball.qc:412
+#: qcsrc/server/w_fireball.qc:437
 #, c-format
 msgid "%s saw the pretty lights of %s's fireball"
 msgstr ""
 
-#: qcsrc/server/w_fireball.qc:415
+#: qcsrc/server/w_fireball.qc:440
 #, c-format
 msgid "%s got too close to %s's fireball"
 msgstr ""
 
-#: qcsrc/server/w_fireball.qc:417
+#: qcsrc/server/w_fireball.qc:442
 #, c-format
 msgid "%s tasted %s's fireball"
 msgstr ""
@@ -2527,27 +2541,27 @@ msgstr ""
 msgid "Mortar"
 msgstr ""
 
-#: qcsrc/server/w_grenadelauncher.qc:357
+#: qcsrc/server/w_grenadelauncher.qc:378
 #, c-format
 msgid "%s tried out his own grenade"
 msgstr ""
 
-#: qcsrc/server/w_grenadelauncher.qc:359
+#: qcsrc/server/w_grenadelauncher.qc:380
 #, c-format
 msgid "%s detonated"
 msgstr ""
 
-#: qcsrc/server/w_grenadelauncher.qc:365
+#: qcsrc/server/w_grenadelauncher.qc:386
 #, c-format
 msgid "%s didn't see %s's grenade"
 msgstr ""
 
-#: qcsrc/server/w_grenadelauncher.qc:367
+#: qcsrc/server/w_grenadelauncher.qc:388
 #, c-format
 msgid "%s almost dodged %s's grenade"
 msgstr ""
 
-#: qcsrc/server/w_grenadelauncher.qc:369
+#: qcsrc/server/w_grenadelauncher.qc:390
 #, c-format
 msgid "%s ate %s's grenade"
 msgstr ""
@@ -2556,17 +2570,17 @@ msgstr ""
 msgid "Hagar"
 msgstr ""
 
-#: qcsrc/server/w_hagar.qc:185 qcsrc/server/w_seeker.qc:523
+#: qcsrc/server/w_hagar.qc:209 qcsrc/server/w_seeker.qc:655
 #, c-format
 msgid "%s played with tiny rockets"
 msgstr ""
 
-#: qcsrc/server/w_hagar.qc:189
+#: qcsrc/server/w_hagar.qc:213
 #, c-format
 msgid "%s hoped %s's missiles wouldn't bounce"
 msgstr ""
 
-#: qcsrc/server/w_hagar.qc:191
+#: qcsrc/server/w_hagar.qc:215 qcsrc/server/w_seeker.qc:661
 #, c-format
 msgid "%s was pummeled by %s"
 msgstr ""
@@ -2575,7 +2589,7 @@ msgstr ""
 msgid "Heavy Laser Assault Cannon"
 msgstr ""
 
-#: qcsrc/server/w_hlac.qc:225
+#: qcsrc/server/w_hlac.qc:242
 #, c-format
 msgid "%s was cut down by %s"
 msgstr ""
@@ -2584,14 +2598,14 @@ msgstr ""
 msgid "Grappling Hook"
 msgstr ""
 
-#: qcsrc/server/w_hook.qc:267 qcsrc/server/w_minstanex.qc:257
-#: qcsrc/server/w_nex.qc:224 qcsrc/server/w_porto.qc:293
-#: qcsrc/server/w_shotgun.qc:179 qcsrc/server/w_uzi.qc:287
+#: qcsrc/server/w_hook.qc:266 qcsrc/server/w_minstanex.qc:290
+#: qcsrc/server/w_nex.qc:267 qcsrc/server/w_porto.qc:296
+#: qcsrc/server/w_shotgun.qc:203 qcsrc/server/w_uzi.qc:317
 #, c-format
 msgid "%s did the impossible"
 msgstr ""
 
-#: qcsrc/server/w_hook.qc:269
+#: qcsrc/server/w_hook.qc:268
 #, c-format
 msgid "%s has run into %s's gravity bomb"
 msgstr ""
@@ -2601,17 +2615,17 @@ msgstr ""
 msgid "Laser"
 msgstr "Master:"
 
-#: qcsrc/server/w_laser.qc:285
+#: qcsrc/server/w_laser.qc:305
 #, c-format
 msgid "%s lasered themself to hell"
 msgstr ""
 
-#: qcsrc/server/w_laser.qc:289
+#: qcsrc/server/w_laser.qc:309
 #, c-format
 msgid "%s was cut in half by %s's gauntlet"
 msgstr ""
 
-#: qcsrc/server/w_laser.qc:291
+#: qcsrc/server/w_laser.qc:311
 #, c-format
 msgid "%s was lasered to death by %s"
 msgstr ""
@@ -2621,22 +2635,22 @@ msgstr ""
 msgid "Mine Layer"
 msgstr "En Spelare"
 
-#: qcsrc/server/w_minelayer.qc:438 qcsrc/server/w_rocketlauncher.qc:480
+#: qcsrc/server/w_minelayer.qc:495 qcsrc/server/w_rocketlauncher.qc:500
 #, c-format
 msgid "%s exploded"
 msgstr ""
 
-#: qcsrc/server/w_minelayer.qc:442
+#: qcsrc/server/w_minelayer.qc:499
 #, c-format
 msgid "%s got too close to %s's mine"
 msgstr ""
 
-#: qcsrc/server/w_minelayer.qc:444
+#: qcsrc/server/w_minelayer.qc:501
 #, c-format
 msgid "%s almost dodged %s's mine"
 msgstr ""
 
-#: qcsrc/server/w_minelayer.qc:446
+#: qcsrc/server/w_minelayer.qc:503
 #, c-format
 msgid "%s stepped on %s's mine"
 msgstr ""
@@ -2645,7 +2659,7 @@ msgstr ""
 msgid "MinstaNex"
 msgstr ""
 
-#: qcsrc/server/w_minstanex.qc:259 qcsrc/server/w_nex.qc:226
+#: qcsrc/server/w_minstanex.qc:292 qcsrc/server/w_nex.qc:269
 #, c-format
 msgid "%s has been vaporized by %s"
 msgstr ""
@@ -2659,7 +2673,7 @@ msgstr "Nexboll"
 msgid "Port-O-Launch"
 msgstr ""
 
-#: qcsrc/server/w_porto.qc:295
+#: qcsrc/server/w_porto.qc:298
 #, c-format
 msgid "%s felt %s doing the impossible to him"
 msgstr ""
@@ -2668,17 +2682,17 @@ msgstr ""
 msgid "Rocket Launcher"
 msgstr ""
 
-#: qcsrc/server/w_rocketlauncher.qc:484
+#: qcsrc/server/w_rocketlauncher.qc:504
 #, c-format
 msgid "%s got too close to %s's rocket"
 msgstr ""
 
-#: qcsrc/server/w_rocketlauncher.qc:486
+#: qcsrc/server/w_rocketlauncher.qc:506
 #, c-format
 msgid "%s almost dodged %s's rocket"
 msgstr ""
 
-#: qcsrc/server/w_rocketlauncher.qc:488
+#: qcsrc/server/w_rocketlauncher.qc:508
 #, c-format
 msgid "%s ate %s's rocket"
 msgstr ""
@@ -2687,12 +2701,7 @@ msgstr ""
 msgid "T.A.G. Seeker"
 msgstr ""
 
-#: qcsrc/server/w_seeker.qc:527
-#, c-format
-msgid "%s ran into %s's flac"
-msgstr ""
-
-#: qcsrc/server/w_seeker.qc:529
+#: qcsrc/server/w_seeker.qc:659
 #, c-format
 msgid "%s was tagged by %s"
 msgstr ""
@@ -2702,12 +2711,12 @@ msgstr ""
 msgid "Shotgun"
 msgstr "Kort"
 
-#: qcsrc/server/w_shotgun.qc:183
+#: qcsrc/server/w_shotgun.qc:207
 #, c-format
 msgid "%2$s ^7slapped %1$s ^7around a bit with a large ^2shotgun"
 msgstr ""
 
-#: qcsrc/server/w_shotgun.qc:185
+#: qcsrc/server/w_shotgun.qc:209
 #, c-format
 msgid "%s was gunned by %s"
 msgstr ""
@@ -2716,37 +2725,37 @@ msgstr ""
 msgid "Sniper Rifle"
 msgstr ""
 
-#: qcsrc/server/w_sniperrifle.qc:321
+#: qcsrc/server/w_sniperrifle.qc:229
 #, c-format
 msgid "%s shot themself automatically"
 msgstr ""
 
-#: qcsrc/server/w_sniperrifle.qc:323
+#: qcsrc/server/w_sniperrifle.qc:231
 #, c-format
 msgid "%s sniped themself somehow"
 msgstr ""
 
-#: qcsrc/server/w_sniperrifle.qc:330
+#: qcsrc/server/w_sniperrifle.qc:238
 #, c-format
 msgid "%s failed to hide from %s's bullet hail"
 msgstr ""
 
-#: qcsrc/server/w_sniperrifle.qc:332
+#: qcsrc/server/w_sniperrifle.qc:240
 #, c-format
 msgid "%s died in %s's bullet hail"
 msgstr ""
 
-#: qcsrc/server/w_sniperrifle.qc:339
+#: qcsrc/server/w_sniperrifle.qc:247
 #, c-format
 msgid "%s failed to hide from %s's rifle"
 msgstr ""
 
-#: qcsrc/server/w_sniperrifle.qc:344
+#: qcsrc/server/w_sniperrifle.qc:252
 #, c-format
 msgid "%s got hit in the head by %s"
 msgstr ""
 
-#: qcsrc/server/w_sniperrifle.qc:346 qcsrc/server/w_uzi.qc:291
+#: qcsrc/server/w_sniperrifle.qc:254 qcsrc/server/w_uzi.qc:321
 #, c-format
 msgid "%s was sniped by %s"
 msgstr ""
@@ -2756,12 +2765,12 @@ msgstr ""
 msgid "@!#%'n Tuba"
 msgstr "@!#%'n Tubakastning"
 
-#: qcsrc/server/w_tuba.qc:260
+#: qcsrc/server/w_tuba.qc:263
 #, c-format
 msgid "%s hurt his own ears with the @!#%%'n Tuba"
 msgstr ""
 
-#: qcsrc/server/w_tuba.qc:264
+#: qcsrc/server/w_tuba.qc:267
 #, c-format
 msgid "%s died of %s's great playing on the @!#%%'n Tuba"
 msgstr ""
@@ -2770,7 +2779,7 @@ msgstr ""
 msgid "Machine Gun"
 msgstr ""
 
-#: qcsrc/server/w_uzi.qc:293
+#: qcsrc/server/w_uzi.qc:323
 #, c-format
 msgid "%s was riddled full of holes by %s"
 msgstr ""
index ebd112b84aa04b52e7c98f48233aa48a17721677..fb9e1a1bf81ac6a2e850ceaa90361ffaad03adc8 100644 (file)
Binary files a/models/player/erebus.iqm and b/models/player/erebus.iqm differ
index 16b3e92c79f591ec88405a7ae46bece049f8c854..9dc589e5c899b7d6820a214c60db0ced0081adfe 100644 (file)
@@ -21,3 +21,4 @@
 370 21 35.000000 1 // forwardleft
 391 21 35.000000 1 // backright
 412 21 30.000000 1 // backleft
+433 21 20.000000 0 // melee
\ No newline at end of file
index 21cd3d431e04dcc3c092902285040cb35e5087f6..7b35a7105bd3cfc7902a73300a960373a3a9da24 100644 (file)
Binary files a/models/player/erebus_lod1.iqm and b/models/player/erebus_lod1.iqm differ
index 16b3e92c79f591ec88405a7ae46bece049f8c854..9dc589e5c899b7d6820a214c60db0ced0081adfe 100644 (file)
@@ -21,3 +21,4 @@
 370 21 35.000000 1 // forwardleft
 391 21 35.000000 1 // backright
 412 21 30.000000 1 // backleft
+433 21 20.000000 0 // melee
\ No newline at end of file
index 34e7e8014ccd8bb7b4f60ea25bc7b8eb5a118e06..ba28fda523d9ab23295c082a1acddae7c3529458 100644 (file)
Binary files a/models/player/erebus_lod2.iqm and b/models/player/erebus_lod2.iqm differ
index 16b3e92c79f591ec88405a7ae46bece049f8c854..9dc589e5c899b7d6820a214c60db0ced0081adfe 100644 (file)
@@ -21,3 +21,4 @@
 370 21 35.000000 1 // forwardleft
 391 21 35.000000 1 // backright
 412 21 30.000000 1 // backleft
+433 21 20.000000 0 // melee
\ No newline at end of file
index dccf325bcaacae7c8bb1b35ec515235ca5e789a5..4e2835a5b6880ae6138b16bc06baa4b8a7f9d2b7 100644 (file)
Binary files a/models/player/gak.iqm and b/models/player/gak.iqm differ
index 16b3e92c79f591ec88405a7ae46bece049f8c854..9dc589e5c899b7d6820a214c60db0ced0081adfe 100644 (file)
@@ -21,3 +21,4 @@
 370 21 35.000000 1 // forwardleft
 391 21 35.000000 1 // backright
 412 21 30.000000 1 // backleft
+433 21 20.000000 0 // melee
\ No newline at end of file
diff --git a/models/player/gak_lod1.iqm b/models/player/gak_lod1.iqm
new file mode 100644 (file)
index 0000000..7fc4655
Binary files /dev/null and b/models/player/gak_lod1.iqm differ
diff --git a/models/player/gak_lod1.iqm.framegroups b/models/player/gak_lod1.iqm.framegroups
new file mode 100644 (file)
index 0000000..9dc589e
--- /dev/null
@@ -0,0 +1,24 @@
+0 36 15.000000 0 // dieone
+36 20 15.000000 0 // dietwo
+56 15 15.000000 1 // draw
+71 20 15.000000 1 // duck
+91 21 30.000000 1 // duckwalk
+112 16 15.000000 0 // duckjump
+128 15 5.000000 1 // duckidle
+143 41 5.000000 1 // idle
+184 21 25.000000 0 // jump
+205 15 15.000000 0 // painone
+220 17 15.000000 0 // paintwo
+237 3 15.000000 0 // shoot
+240 21 15.000000 1 // taunt
+261 21 35.000000 1 // run
+282 21 35.000000 1 // runbackwards
+303 21 35.000000 1 // strafeleft
+324 21 35.000000 1 // straferight
+345 2 15.000000 0 // deadone
+347 2 15.000000 0 // deadtwo
+349 21 35.000000 1 // forwardright
+370 21 35.000000 1 // forwardleft
+391 21 35.000000 1 // backright
+412 21 30.000000 1 // backleft
+433 21 20.000000 0 // melee
\ No newline at end of file
diff --git a/models/player/gak_lod2.iqm b/models/player/gak_lod2.iqm
new file mode 100644 (file)
index 0000000..8c35e2c
Binary files /dev/null and b/models/player/gak_lod2.iqm differ
diff --git a/models/player/gak_lod2.iqm.framegroups b/models/player/gak_lod2.iqm.framegroups
new file mode 100644 (file)
index 0000000..9dc589e
--- /dev/null
@@ -0,0 +1,24 @@
+0 36 15.000000 0 // dieone
+36 20 15.000000 0 // dietwo
+56 15 15.000000 1 // draw
+71 20 15.000000 1 // duck
+91 21 30.000000 1 // duckwalk
+112 16 15.000000 0 // duckjump
+128 15 5.000000 1 // duckidle
+143 41 5.000000 1 // idle
+184 21 25.000000 0 // jump
+205 15 15.000000 0 // painone
+220 17 15.000000 0 // paintwo
+237 3 15.000000 0 // shoot
+240 21 15.000000 1 // taunt
+261 21 35.000000 1 // run
+282 21 35.000000 1 // runbackwards
+303 21 35.000000 1 // strafeleft
+324 21 35.000000 1 // straferight
+345 2 15.000000 0 // deadone
+347 2 15.000000 0 // deadtwo
+349 21 35.000000 1 // forwardright
+370 21 35.000000 1 // forwardleft
+391 21 35.000000 1 // backright
+412 21 30.000000 1 // backleft
+433 21 20.000000 0 // melee
\ No newline at end of file
index c4b574a074680ee489fe744a8ffe3e818dfaa472..168f798ada124321cc395e6ad819fb425e89ac27 100644 (file)
Binary files a/models/player/gakarmored.iqm and b/models/player/gakarmored.iqm differ
index 16b3e92c79f591ec88405a7ae46bece049f8c854..9dc589e5c899b7d6820a214c60db0ced0081adfe 100644 (file)
@@ -21,3 +21,4 @@
 370 21 35.000000 1 // forwardleft
 391 21 35.000000 1 // backright
 412 21 30.000000 1 // backleft
+433 21 20.000000 0 // melee
\ No newline at end of file
diff --git a/models/player/gakarmored_lod1.iqm b/models/player/gakarmored_lod1.iqm
new file mode 100644 (file)
index 0000000..5d6d716
Binary files /dev/null and b/models/player/gakarmored_lod1.iqm differ
diff --git a/models/player/gakarmored_lod1.iqm.framegroups b/models/player/gakarmored_lod1.iqm.framegroups
new file mode 100644 (file)
index 0000000..9dc589e
--- /dev/null
@@ -0,0 +1,24 @@
+0 36 15.000000 0 // dieone
+36 20 15.000000 0 // dietwo
+56 15 15.000000 1 // draw
+71 20 15.000000 1 // duck
+91 21 30.000000 1 // duckwalk
+112 16 15.000000 0 // duckjump
+128 15 5.000000 1 // duckidle
+143 41 5.000000 1 // idle
+184 21 25.000000 0 // jump
+205 15 15.000000 0 // painone
+220 17 15.000000 0 // paintwo
+237 3 15.000000 0 // shoot
+240 21 15.000000 1 // taunt
+261 21 35.000000 1 // run
+282 21 35.000000 1 // runbackwards
+303 21 35.000000 1 // strafeleft
+324 21 35.000000 1 // straferight
+345 2 15.000000 0 // deadone
+347 2 15.000000 0 // deadtwo
+349 21 35.000000 1 // forwardright
+370 21 35.000000 1 // forwardleft
+391 21 35.000000 1 // backright
+412 21 30.000000 1 // backleft
+433 21 20.000000 0 // melee
\ No newline at end of file
diff --git a/models/player/gakarmored_lod2.iqm b/models/player/gakarmored_lod2.iqm
new file mode 100644 (file)
index 0000000..36b6ed9
Binary files /dev/null and b/models/player/gakarmored_lod2.iqm differ
diff --git a/models/player/gakarmored_lod2.iqm.framegroups b/models/player/gakarmored_lod2.iqm.framegroups
new file mode 100644 (file)
index 0000000..9dc589e
--- /dev/null
@@ -0,0 +1,24 @@
+0 36 15.000000 0 // dieone
+36 20 15.000000 0 // dietwo
+56 15 15.000000 1 // draw
+71 20 15.000000 1 // duck
+91 21 30.000000 1 // duckwalk
+112 16 15.000000 0 // duckjump
+128 15 5.000000 1 // duckidle
+143 41 5.000000 1 // idle
+184 21 25.000000 0 // jump
+205 15 15.000000 0 // painone
+220 17 15.000000 0 // paintwo
+237 3 15.000000 0 // shoot
+240 21 15.000000 1 // taunt
+261 21 35.000000 1 // run
+282 21 35.000000 1 // runbackwards
+303 21 35.000000 1 // strafeleft
+324 21 35.000000 1 // straferight
+345 2 15.000000 0 // deadone
+347 2 15.000000 0 // deadtwo
+349 21 35.000000 1 // forwardright
+370 21 35.000000 1 // forwardleft
+391 21 35.000000 1 // backright
+412 21 30.000000 1 // backleft
+433 21 20.000000 0 // melee
\ No newline at end of file
index 646c628f86af40a66c99ae2a374169fa2bcfb93d..01864ca353cae05c970dcd09249c608f147217f8 100644 (file)
Binary files a/models/player/gakmasked.iqm and b/models/player/gakmasked.iqm differ
index 16b3e92c79f591ec88405a7ae46bece049f8c854..9dc589e5c899b7d6820a214c60db0ced0081adfe 100644 (file)
@@ -21,3 +21,4 @@
 370 21 35.000000 1 // forwardleft
 391 21 35.000000 1 // backright
 412 21 30.000000 1 // backleft
+433 21 20.000000 0 // melee
\ No newline at end of file
diff --git a/models/player/gakmasked_lod1.iqm b/models/player/gakmasked_lod1.iqm
new file mode 100644 (file)
index 0000000..e8355c0
Binary files /dev/null and b/models/player/gakmasked_lod1.iqm differ
diff --git a/models/player/gakmasked_lod1.iqm.framegroups b/models/player/gakmasked_lod1.iqm.framegroups
new file mode 100644 (file)
index 0000000..9dc589e
--- /dev/null
@@ -0,0 +1,24 @@
+0 36 15.000000 0 // dieone
+36 20 15.000000 0 // dietwo
+56 15 15.000000 1 // draw
+71 20 15.000000 1 // duck
+91 21 30.000000 1 // duckwalk
+112 16 15.000000 0 // duckjump
+128 15 5.000000 1 // duckidle
+143 41 5.000000 1 // idle
+184 21 25.000000 0 // jump
+205 15 15.000000 0 // painone
+220 17 15.000000 0 // paintwo
+237 3 15.000000 0 // shoot
+240 21 15.000000 1 // taunt
+261 21 35.000000 1 // run
+282 21 35.000000 1 // runbackwards
+303 21 35.000000 1 // strafeleft
+324 21 35.000000 1 // straferight
+345 2 15.000000 0 // deadone
+347 2 15.000000 0 // deadtwo
+349 21 35.000000 1 // forwardright
+370 21 35.000000 1 // forwardleft
+391 21 35.000000 1 // backright
+412 21 30.000000 1 // backleft
+433 21 20.000000 0 // melee
\ No newline at end of file
diff --git a/models/player/gakmasked_lod2.iqm b/models/player/gakmasked_lod2.iqm
new file mode 100644 (file)
index 0000000..9ea8fd1
Binary files /dev/null and b/models/player/gakmasked_lod2.iqm differ
diff --git a/models/player/gakmasked_lod2.iqm.framegroups b/models/player/gakmasked_lod2.iqm.framegroups
new file mode 100644 (file)
index 0000000..9dc589e
--- /dev/null
@@ -0,0 +1,24 @@
+0 36 15.000000 0 // dieone
+36 20 15.000000 0 // dietwo
+56 15 15.000000 1 // draw
+71 20 15.000000 1 // duck
+91 21 30.000000 1 // duckwalk
+112 16 15.000000 0 // duckjump
+128 15 5.000000 1 // duckidle
+143 41 5.000000 1 // idle
+184 21 25.000000 0 // jump
+205 15 15.000000 0 // painone
+220 17 15.000000 0 // paintwo
+237 3 15.000000 0 // shoot
+240 21 15.000000 1 // taunt
+261 21 35.000000 1 // run
+282 21 35.000000 1 // runbackwards
+303 21 35.000000 1 // strafeleft
+324 21 35.000000 1 // straferight
+345 2 15.000000 0 // deadone
+347 2 15.000000 0 // deadtwo
+349 21 35.000000 1 // forwardright
+370 21 35.000000 1 // forwardleft
+391 21 35.000000 1 // backright
+412 21 30.000000 1 // backleft
+433 21 20.000000 0 // melee
\ No newline at end of file
index 2e4749346439daa40f72b49fc420cc99d0323c62..2a098f101fde0cf084e5f7aab903b78a91ae07c7 100644 (file)
Binary files a/models/player/ignis.iqm and b/models/player/ignis.iqm differ
index 16b3e92c79f591ec88405a7ae46bece049f8c854..9dc589e5c899b7d6820a214c60db0ced0081adfe 100644 (file)
@@ -21,3 +21,4 @@
 370 21 35.000000 1 // forwardleft
 391 21 35.000000 1 // backright
 412 21 30.000000 1 // backleft
+433 21 20.000000 0 // melee
\ No newline at end of file
index 38a6b3be2cf31d62c54054b3975a8f399655c25c..f53f423e57ee7e7379fbeb8de0a7e85800a02d06 100644 (file)
Binary files a/models/player/ignis_lod1.iqm and b/models/player/ignis_lod1.iqm differ
index 16b3e92c79f591ec88405a7ae46bece049f8c854..9dc589e5c899b7d6820a214c60db0ced0081adfe 100644 (file)
@@ -21,3 +21,4 @@
 370 21 35.000000 1 // forwardleft
 391 21 35.000000 1 // backright
 412 21 30.000000 1 // backleft
+433 21 20.000000 0 // melee
\ No newline at end of file
index ac9a40653a364273a73f97942d99d6d9f62080b1..0d984b49fdb72c431776bf575f7dba3920cdd43f 100644 (file)
Binary files a/models/player/ignis_lod2.iqm and b/models/player/ignis_lod2.iqm differ
index 16b3e92c79f591ec88405a7ae46bece049f8c854..9dc589e5c899b7d6820a214c60db0ced0081adfe 100644 (file)
@@ -21,3 +21,4 @@
 370 21 35.000000 1 // forwardleft
 391 21 35.000000 1 // backright
 412 21 30.000000 1 // backleft
+433 21 20.000000 0 // melee
\ No newline at end of file
index 7f5a51295eb8284bc33edbc5a0b14c642b528eb1..968f2322c9b241ea64e0c11367d7eef06f250eed 100644 (file)
Binary files a/models/player/ignishalfmasked.iqm and b/models/player/ignishalfmasked.iqm differ
index 16b3e92c79f591ec88405a7ae46bece049f8c854..9dc589e5c899b7d6820a214c60db0ced0081adfe 100644 (file)
@@ -21,3 +21,4 @@
 370 21 35.000000 1 // forwardleft
 391 21 35.000000 1 // backright
 412 21 30.000000 1 // backleft
+433 21 20.000000 0 // melee
\ No newline at end of file
index c3b3fa48712738c8809fb7415cf7c8c3553fb0ab..d0c50d1e57d006c3ca07b8435d5137bc50e4853e 100644 (file)
Binary files a/models/player/ignishalfmasked_lod1.iqm and b/models/player/ignishalfmasked_lod1.iqm differ
index 16b3e92c79f591ec88405a7ae46bece049f8c854..9dc589e5c899b7d6820a214c60db0ced0081adfe 100644 (file)
@@ -21,3 +21,4 @@
 370 21 35.000000 1 // forwardleft
 391 21 35.000000 1 // backright
 412 21 30.000000 1 // backleft
+433 21 20.000000 0 // melee
\ No newline at end of file
index 3ad25e9c4117508581f531b68504d89a698cc4a4..069f96c212bb2e1c862f3b898e48b0f0f3ec21ba 100644 (file)
Binary files a/models/player/ignishalfmasked_lod2.iqm and b/models/player/ignishalfmasked_lod2.iqm differ
index 16b3e92c79f591ec88405a7ae46bece049f8c854..9dc589e5c899b7d6820a214c60db0ced0081adfe 100644 (file)
@@ -21,3 +21,4 @@
 370 21 35.000000 1 // forwardleft
 391 21 35.000000 1 // backright
 412 21 30.000000 1 // backleft
+433 21 20.000000 0 // melee
\ No newline at end of file
index fbf2b00faedbbadeca6ef20a2a21ff8117bd9abe..15cce9fd7673a2d26ea877734107d5203e39bc97 100644 (file)
Binary files a/models/player/ignismasked.iqm and b/models/player/ignismasked.iqm differ
index 16b3e92c79f591ec88405a7ae46bece049f8c854..9dc589e5c899b7d6820a214c60db0ced0081adfe 100644 (file)
@@ -21,3 +21,4 @@
 370 21 35.000000 1 // forwardleft
 391 21 35.000000 1 // backright
 412 21 30.000000 1 // backleft
+433 21 20.000000 0 // melee
\ No newline at end of file
index 44633d51463b827390abf4593501230218842da2..15c031e6ca08523c33dc1b09cf045ef24aef479a 100644 (file)
Binary files a/models/player/ignismasked_lod1.iqm and b/models/player/ignismasked_lod1.iqm differ
index 16b3e92c79f591ec88405a7ae46bece049f8c854..9dc589e5c899b7d6820a214c60db0ced0081adfe 100644 (file)
@@ -21,3 +21,4 @@
 370 21 35.000000 1 // forwardleft
 391 21 35.000000 1 // backright
 412 21 30.000000 1 // backleft
+433 21 20.000000 0 // melee
\ No newline at end of file
index a91323112b060de8d20fcdd558fa0337a25cbf2e..99e6dec0f695e938dc6ecaba8a0fae65455aa726 100644 (file)
Binary files a/models/player/ignismasked_lod2.iqm and b/models/player/ignismasked_lod2.iqm differ
index 16b3e92c79f591ec88405a7ae46bece049f8c854..9dc589e5c899b7d6820a214c60db0ced0081adfe 100644 (file)
@@ -21,3 +21,4 @@
 370 21 35.000000 1 // forwardleft
 391 21 35.000000 1 // backright
 412 21 30.000000 1 // backleft
+433 21 20.000000 0 // melee
\ No newline at end of file
index 505fcb9f198b0c2dbd448fc80cf4706c683b7595..88f2a7dccfdaf1ca2351c6cbbec6c247b3e8b1a9 100644 (file)
Binary files a/models/player/nyx.iqm and b/models/player/nyx.iqm differ
index 16b3e92c79f591ec88405a7ae46bece049f8c854..9dc589e5c899b7d6820a214c60db0ced0081adfe 100644 (file)
@@ -21,3 +21,4 @@
 370 21 35.000000 1 // forwardleft
 391 21 35.000000 1 // backright
 412 21 30.000000 1 // backleft
+433 21 20.000000 0 // melee
\ No newline at end of file
diff --git a/models/player/nyx_lod1.iqm b/models/player/nyx_lod1.iqm
new file mode 100644 (file)
index 0000000..a60e8b2
Binary files /dev/null and b/models/player/nyx_lod1.iqm differ
diff --git a/models/player/nyx_lod1.iqm.framegroups b/models/player/nyx_lod1.iqm.framegroups
new file mode 100644 (file)
index 0000000..9dc589e
--- /dev/null
@@ -0,0 +1,24 @@
+0 36 15.000000 0 // dieone
+36 20 15.000000 0 // dietwo
+56 15 15.000000 1 // draw
+71 20 15.000000 1 // duck
+91 21 30.000000 1 // duckwalk
+112 16 15.000000 0 // duckjump
+128 15 5.000000 1 // duckidle
+143 41 5.000000 1 // idle
+184 21 25.000000 0 // jump
+205 15 15.000000 0 // painone
+220 17 15.000000 0 // paintwo
+237 3 15.000000 0 // shoot
+240 21 15.000000 1 // taunt
+261 21 35.000000 1 // run
+282 21 35.000000 1 // runbackwards
+303 21 35.000000 1 // strafeleft
+324 21 35.000000 1 // straferight
+345 2 15.000000 0 // deadone
+347 2 15.000000 0 // deadtwo
+349 21 35.000000 1 // forwardright
+370 21 35.000000 1 // forwardleft
+391 21 35.000000 1 // backright
+412 21 30.000000 1 // backleft
+433 21 20.000000 0 // melee
\ No newline at end of file
diff --git a/models/player/nyx_lod2.iqm b/models/player/nyx_lod2.iqm
new file mode 100644 (file)
index 0000000..57b1773
Binary files /dev/null and b/models/player/nyx_lod2.iqm differ
diff --git a/models/player/nyx_lod2.iqm.framegroups b/models/player/nyx_lod2.iqm.framegroups
new file mode 100644 (file)
index 0000000..9dc589e
--- /dev/null
@@ -0,0 +1,24 @@
+0 36 15.000000 0 // dieone
+36 20 15.000000 0 // dietwo
+56 15 15.000000 1 // draw
+71 20 15.000000 1 // duck
+91 21 30.000000 1 // duckwalk
+112 16 15.000000 0 // duckjump
+128 15 5.000000 1 // duckidle
+143 41 5.000000 1 // idle
+184 21 25.000000 0 // jump
+205 15 15.000000 0 // painone
+220 17 15.000000 0 // paintwo
+237 3 15.000000 0 // shoot
+240 21 15.000000 1 // taunt
+261 21 35.000000 1 // run
+282 21 35.000000 1 // runbackwards
+303 21 35.000000 1 // strafeleft
+324 21 35.000000 1 // straferight
+345 2 15.000000 0 // deadone
+347 2 15.000000 0 // deadtwo
+349 21 35.000000 1 // forwardright
+370 21 35.000000 1 // forwardleft
+391 21 35.000000 1 // backright
+412 21 30.000000 1 // backleft
+433 21 20.000000 0 // melee
\ No newline at end of file
index ef2ef0509233d5810e965a83ab210f7acecb5e20..d3b7b2d616eb027b3607e770a2964e841ac7d0ed 100644 (file)
Binary files a/models/player/pyria.iqm and b/models/player/pyria.iqm differ
index a257a2469eb0f5c7bd5feedf17d76e78848d615a..b3a5c2647bee189640476e55b5cdcb976c06d665 100644 (file)
@@ -21,3 +21,4 @@
 339 21 40.000000 1 // forwardleft
 360 21 40.000000 1 // backright
 381 21 40.000000 1 // backleft
+402 21 20.000000 0 // melee
\ No newline at end of file
diff --git a/models/player/pyria_lod1.iqm b/models/player/pyria_lod1.iqm
new file mode 100644 (file)
index 0000000..dbbeef8
Binary files /dev/null and b/models/player/pyria_lod1.iqm differ
diff --git a/models/player/pyria_lod1.iqm.framegroups b/models/player/pyria_lod1.iqm.framegroups
new file mode 100644 (file)
index 0000000..b3a5c26
--- /dev/null
@@ -0,0 +1,24 @@
+0 36 20.000000 0 // dieone
+36 27 20.000000 0 // dietwo
+63 15 15.000000 1 // draw
+78 20 15.000000 1 // duck
+98 11 15.000000 1 // duckwalk
+109 16 15.000000 0 // duckjump
+125 15 5.000000 1 // duckidle
+140 16 5.000000 1 // idle
+156 16 15.000000 0 // jump
+172 15 15.000000 0 // painone
+187 17 15.000000 0 // paintwo
+204 5 15.000000 0 // shoot
+209 21 15.000000 1 // taunt
+230 21 40.000000 1 // run
+251 21 40.000000 1 // runbackwards
+272 21 40.000000 1 // strafeleft
+293 21 40.000000 1 // straferight
+314 2 15.000000 0 // deadone
+316 2 15.000000 0 // deadtwo
+318 21 40.000000 1 // forwardright
+339 21 40.000000 1 // forwardleft
+360 21 40.000000 1 // backright
+381 21 40.000000 1 // backleft
+402 21 20.000000 0 // melee
\ No newline at end of file
diff --git a/models/player/pyria_lod2.iqm b/models/player/pyria_lod2.iqm
new file mode 100644 (file)
index 0000000..99fcc86
Binary files /dev/null and b/models/player/pyria_lod2.iqm differ
diff --git a/models/player/pyria_lod2.iqm.framegroups b/models/player/pyria_lod2.iqm.framegroups
new file mode 100644 (file)
index 0000000..b3a5c26
--- /dev/null
@@ -0,0 +1,24 @@
+0 36 20.000000 0 // dieone
+36 27 20.000000 0 // dietwo
+63 15 15.000000 1 // draw
+78 20 15.000000 1 // duck
+98 11 15.000000 1 // duckwalk
+109 16 15.000000 0 // duckjump
+125 15 5.000000 1 // duckidle
+140 16 5.000000 1 // idle
+156 16 15.000000 0 // jump
+172 15 15.000000 0 // painone
+187 17 15.000000 0 // paintwo
+204 5 15.000000 0 // shoot
+209 21 15.000000 1 // taunt
+230 21 40.000000 1 // run
+251 21 40.000000 1 // runbackwards
+272 21 40.000000 1 // strafeleft
+293 21 40.000000 1 // straferight
+314 2 15.000000 0 // deadone
+316 2 15.000000 0 // deadtwo
+318 21 40.000000 1 // forwardright
+339 21 40.000000 1 // forwardleft
+360 21 40.000000 1 // backright
+381 21 40.000000 1 // backleft
+402 21 20.000000 0 // melee
\ No newline at end of file
index 7e6dbc224abbedecddc0d9d2731488d46a289bc8..17f700e7d8ff094fa850b183a36c770f04ff9cd1 100644 (file)
Binary files a/models/player/seraphina.iqm and b/models/player/seraphina.iqm differ
index 16b3e92c79f591ec88405a7ae46bece049f8c854..9dc589e5c899b7d6820a214c60db0ced0081adfe 100644 (file)
@@ -21,3 +21,4 @@
 370 21 35.000000 1 // forwardleft
 391 21 35.000000 1 // backright
 412 21 30.000000 1 // backleft
+433 21 20.000000 0 // melee
\ No newline at end of file
index d16f225276241cda952ee56ff40a0419d4115bb8..692d24b136ad142f7d54853e06e39fc67870e193 100644 (file)
Binary files a/models/player/seraphina_lod1.iqm and b/models/player/seraphina_lod1.iqm differ
index 16b3e92c79f591ec88405a7ae46bece049f8c854..9dc589e5c899b7d6820a214c60db0ced0081adfe 100644 (file)
@@ -21,3 +21,4 @@
 370 21 35.000000 1 // forwardleft
 391 21 35.000000 1 // backright
 412 21 30.000000 1 // backleft
+433 21 20.000000 0 // melee
\ No newline at end of file
index f6ca53a0d117464944e74ca255d9661ae7984eee..9624f0c8b6c79ed0f62c7d7059b83a0caa57690a 100644 (file)
Binary files a/models/player/seraphina_lod2.iqm and b/models/player/seraphina_lod2.iqm differ
index 16b3e92c79f591ec88405a7ae46bece049f8c854..9dc589e5c899b7d6820a214c60db0ced0081adfe 100644 (file)
@@ -21,3 +21,4 @@
 370 21 35.000000 1 // forwardleft
 391 21 35.000000 1 // backright
 412 21 30.000000 1 // backleft
+433 21 20.000000 0 // melee
\ No newline at end of file
index f65dce6f0af1d489da71f59d9e25628f79168b16..418aeb722b4e0b271816ddfbc587f1507e29432e 100644 (file)
Binary files a/models/player/seraphinamasked.iqm and b/models/player/seraphinamasked.iqm differ
index 16b3e92c79f591ec88405a7ae46bece049f8c854..9dc589e5c899b7d6820a214c60db0ced0081adfe 100644 (file)
@@ -21,3 +21,4 @@
 370 21 35.000000 1 // forwardleft
 391 21 35.000000 1 // backright
 412 21 30.000000 1 // backleft
+433 21 20.000000 0 // melee
\ No newline at end of file
index 5a9952430f26383bb33ce48f095d08a971ae664f..11b115c65560029b4d075be34b09a7c4bde64832 100644 (file)
Binary files a/models/player/seraphinamasked_lod1.iqm and b/models/player/seraphinamasked_lod1.iqm differ
index 16b3e92c79f591ec88405a7ae46bece049f8c854..9dc589e5c899b7d6820a214c60db0ced0081adfe 100644 (file)
@@ -21,3 +21,4 @@
 370 21 35.000000 1 // forwardleft
 391 21 35.000000 1 // backright
 412 21 30.000000 1 // backleft
+433 21 20.000000 0 // melee
\ No newline at end of file
index 927d56ce82cae78a8d7dc0f0a4184c217ece9fd9..f4805a53c9a1f4a267fc7d1a08e67f7b3a74a59c 100644 (file)
Binary files a/models/player/seraphinamasked_lod2.iqm and b/models/player/seraphinamasked_lod2.iqm differ
index 16b3e92c79f591ec88405a7ae46bece049f8c854..9dc589e5c899b7d6820a214c60db0ced0081adfe 100644 (file)
@@ -21,3 +21,4 @@
 370 21 35.000000 1 // forwardleft
 391 21 35.000000 1 // backright
 412 21 30.000000 1 // backleft
+433 21 20.000000 0 // melee
\ No newline at end of file
index f43ad6778e8dd16dfcd72f9e710816a5c81c5710..f876a0310abcc295c6a6a6f78173f87c38f1ff95 100644 (file)
Binary files a/models/player/umbra.iqm and b/models/player/umbra.iqm differ
index a257a2469eb0f5c7bd5feedf17d76e78848d615a..b3a5c2647bee189640476e55b5cdcb976c06d665 100644 (file)
@@ -21,3 +21,4 @@
 339 21 40.000000 1 // forwardleft
 360 21 40.000000 1 // backright
 381 21 40.000000 1 // backleft
+402 21 20.000000 0 // melee
\ No newline at end of file
diff --git a/models/player/umbra_lod1.iqm b/models/player/umbra_lod1.iqm
new file mode 100644 (file)
index 0000000..e32fa7b
Binary files /dev/null and b/models/player/umbra_lod1.iqm differ
diff --git a/models/player/umbra_lod1.iqm.framegroups b/models/player/umbra_lod1.iqm.framegroups
new file mode 100644 (file)
index 0000000..b3a5c26
--- /dev/null
@@ -0,0 +1,24 @@
+0 36 20.000000 0 // dieone
+36 27 20.000000 0 // dietwo
+63 15 15.000000 1 // draw
+78 20 15.000000 1 // duck
+98 11 15.000000 1 // duckwalk
+109 16 15.000000 0 // duckjump
+125 15 5.000000 1 // duckidle
+140 16 5.000000 1 // idle
+156 16 15.000000 0 // jump
+172 15 15.000000 0 // painone
+187 17 15.000000 0 // paintwo
+204 5 15.000000 0 // shoot
+209 21 15.000000 1 // taunt
+230 21 40.000000 1 // run
+251 21 40.000000 1 // runbackwards
+272 21 40.000000 1 // strafeleft
+293 21 40.000000 1 // straferight
+314 2 15.000000 0 // deadone
+316 2 15.000000 0 // deadtwo
+318 21 40.000000 1 // forwardright
+339 21 40.000000 1 // forwardleft
+360 21 40.000000 1 // backright
+381 21 40.000000 1 // backleft
+402 21 20.000000 0 // melee
\ No newline at end of file
diff --git a/models/player/umbra_lod2.iqm b/models/player/umbra_lod2.iqm
new file mode 100644 (file)
index 0000000..e283e9c
Binary files /dev/null and b/models/player/umbra_lod2.iqm differ
diff --git a/models/player/umbra_lod2.iqm.framegroups b/models/player/umbra_lod2.iqm.framegroups
new file mode 100644 (file)
index 0000000..b3a5c26
--- /dev/null
@@ -0,0 +1,24 @@
+0 36 20.000000 0 // dieone
+36 27 20.000000 0 // dietwo
+63 15 15.000000 1 // draw
+78 20 15.000000 1 // duck
+98 11 15.000000 1 // duckwalk
+109 16 15.000000 0 // duckjump
+125 15 5.000000 1 // duckidle
+140 16 5.000000 1 // idle
+156 16 15.000000 0 // jump
+172 15 15.000000 0 // painone
+187 17 15.000000 0 // paintwo
+204 5 15.000000 0 // shoot
+209 21 15.000000 1 // taunt
+230 21 40.000000 1 // run
+251 21 40.000000 1 // runbackwards
+272 21 40.000000 1 // strafeleft
+293 21 40.000000 1 // straferight
+314 2 15.000000 0 // deadone
+316 2 15.000000 0 // deadtwo
+318 21 40.000000 1 // forwardright
+339 21 40.000000 1 // forwardleft
+360 21 40.000000 1 // backright
+381 21 40.000000 1 // backleft
+402 21 20.000000 0 // melee
\ No newline at end of file
diff --git a/models/relics/relic.md3 b/models/relics/relic.md3
new file mode 100644 (file)
index 0000000..7e65e4c
Binary files /dev/null and b/models/relics/relic.md3 differ
diff --git a/models/relics/relic.md3.framegroups b/models/relics/relic.md3.framegroups
new file mode 100644 (file)
index 0000000..4e33f6f
--- /dev/null
@@ -0,0 +1 @@
+0 99 30 1
\ No newline at end of file
diff --git a/models/relics/relic.md3_0.skin b/models/relics/relic.md3_0.skin
new file mode 100644 (file)
index 0000000..f4d914f
--- /dev/null
@@ -0,0 +1,3 @@
+ring,models/relics/relic_ring
+mesh,models/relics/relic
+sign,models/relics/sign_resistance
\ No newline at end of file
diff --git a/models/relics/relic.md3_1.skin b/models/relics/relic.md3_1.skin
new file mode 100644 (file)
index 0000000..f391db0
--- /dev/null
@@ -0,0 +1,3 @@
+ring,models/relics/relic_ring
+mesh,models/relics/relic
+sign,models/relics/sign_regeneration
\ No newline at end of file
diff --git a/models/relics/relic.md3_10.skin b/models/relics/relic.md3_10.skin
new file mode 100644 (file)
index 0000000..8276637
--- /dev/null
@@ -0,0 +1,3 @@
+ring,models/relics/relic_ring
+mesh,models/relics/relic
+sign,models/relics/sign_jump
\ No newline at end of file
diff --git a/models/relics/relic.md3_11.skin b/models/relics/relic.md3_11.skin
new file mode 100644 (file)
index 0000000..4b88dde
--- /dev/null
@@ -0,0 +1,3 @@
+ring,models/relics/relic_ring
+mesh,models/relics/relic
+sign,models/relics/sign_flight
\ No newline at end of file
diff --git a/models/relics/relic.md3_12.skin b/models/relics/relic.md3_12.skin
new file mode 100644 (file)
index 0000000..9f25258
--- /dev/null
@@ -0,0 +1,3 @@
+ring,models/relics/relic_ring
+mesh,models/relics/relic
+sign,models/relics/sign_invisible
\ No newline at end of file
diff --git a/models/relics/relic.md3_13.skin b/models/relics/relic.md3_13.skin
new file mode 100644 (file)
index 0000000..8fb7435
--- /dev/null
@@ -0,0 +1,3 @@
+ring,models/relics/relic_ring
+mesh,models/relics/relic
+sign,models/relics/sign_radioactive
\ No newline at end of file
diff --git a/models/relics/relic.md3_14.skin b/models/relics/relic.md3_14.skin
new file mode 100644 (file)
index 0000000..c6efd38
--- /dev/null
@@ -0,0 +1,3 @@
+ring,models/relics/relic_ring
+mesh,models/relics/relic
+sign,models/relics/sign_resurrection
\ No newline at end of file
diff --git a/models/relics/relic.md3_15.skin b/models/relics/relic.md3_15.skin
new file mode 100644 (file)
index 0000000..5b188be
--- /dev/null
@@ -0,0 +1,3 @@
+ring,models/relics/relic_ring
+mesh,models/relics/relic
+sign,models/relics/sign_vengeance
\ No newline at end of file
diff --git a/models/relics/relic.md3_2.skin b/models/relics/relic.md3_2.skin
new file mode 100644 (file)
index 0000000..2991766
--- /dev/null
@@ -0,0 +1,3 @@
+ring,models/relics/relic_ring
+mesh,models/relics/relic
+sign,models/relics/sign_vampire
\ No newline at end of file
diff --git a/models/relics/relic.md3_3.skin b/models/relics/relic.md3_3.skin
new file mode 100644 (file)
index 0000000..5a2a694
--- /dev/null
@@ -0,0 +1,3 @@
+ring,models/relics/relic_ring
+mesh,models/relics/relic
+sign,models/relics/sign_ammo
\ No newline at end of file
diff --git a/models/relics/relic.md3_4.skin b/models/relics/relic.md3_4.skin
new file mode 100644 (file)
index 0000000..d9c45c3
--- /dev/null
@@ -0,0 +1,3 @@
+ring,models/relics/relic_ring
+mesh,models/relics/relic
+sign,models/relics/sign_damage
\ No newline at end of file
diff --git a/models/relics/relic.md3_5.skin b/models/relics/relic.md3_5.skin
new file mode 100644 (file)
index 0000000..a74c20f
--- /dev/null
@@ -0,0 +1,3 @@
+ring,models/relics/relic_ring
+mesh,models/relics/relic
+sign,models/relics/sign_splashdamage
\ No newline at end of file
diff --git a/models/relics/relic.md3_6.skin b/models/relics/relic.md3_6.skin
new file mode 100644 (file)
index 0000000..5ebfd3f
--- /dev/null
@@ -0,0 +1,3 @@
+ring,models/relics/relic_ring
+mesh,models/relics/relic
+sign,models/relics/sign_firingspeed
\ No newline at end of file
diff --git a/models/relics/relic.md3_7.skin b/models/relics/relic.md3_7.skin
new file mode 100644 (file)
index 0000000..ce6fb9f
--- /dev/null
@@ -0,0 +1,3 @@
+ring,models/relics/relic_ring
+mesh,models/relics/relic
+sign,models/relics/sign_disability
\ No newline at end of file
diff --git a/models/relics/relic.md3_8.skin b/models/relics/relic.md3_8.skin
new file mode 100644 (file)
index 0000000..2381a4c
--- /dev/null
@@ -0,0 +1,3 @@
+ring,models/relics/relic_ring
+mesh,models/relics/relic
+sign,models/relics/sign_teamboost
\ No newline at end of file
diff --git a/models/relics/relic.md3_9.skin b/models/relics/relic.md3_9.skin
new file mode 100644 (file)
index 0000000..3358e23
--- /dev/null
@@ -0,0 +1,3 @@
+ring,models/relics/relic_ring
+mesh,models/relics/relic
+sign,models/relics/sign_speed
\ No newline at end of file
diff --git a/models/relics/relic.tga b/models/relics/relic.tga
new file mode 100644 (file)
index 0000000..be9b747
Binary files /dev/null and b/models/relics/relic.tga differ
diff --git a/models/relics/relic_gloss.tga b/models/relics/relic_gloss.tga
new file mode 100644 (file)
index 0000000..975cd2d
Binary files /dev/null and b/models/relics/relic_gloss.tga differ
diff --git a/models/relics/relic_glow.tga b/models/relics/relic_glow.tga
new file mode 100644 (file)
index 0000000..aba79cf
Binary files /dev/null and b/models/relics/relic_glow.tga differ
diff --git a/models/relics/relic_norm.tga b/models/relics/relic_norm.tga
new file mode 100644 (file)
index 0000000..5712ac4
Binary files /dev/null and b/models/relics/relic_norm.tga differ
diff --git a/models/relics/relic_reflect.tga b/models/relics/relic_reflect.tga
new file mode 100644 (file)
index 0000000..eb867b5
Binary files /dev/null and b/models/relics/relic_reflect.tga differ
diff --git a/models/relics/relic_ring.tga b/models/relics/relic_ring.tga
new file mode 100644 (file)
index 0000000..612c819
Binary files /dev/null and b/models/relics/relic_ring.tga differ
diff --git a/models/relics/relic_ring_glow.tga b/models/relics/relic_ring_glow.tga
new file mode 100644 (file)
index 0000000..4c30f89
Binary files /dev/null and b/models/relics/relic_ring_glow.tga differ
diff --git a/models/relics/sign_ammo.tga b/models/relics/sign_ammo.tga
new file mode 100644 (file)
index 0000000..b6227f6
Binary files /dev/null and b/models/relics/sign_ammo.tga differ
diff --git a/models/relics/sign_ammo_glow.tga b/models/relics/sign_ammo_glow.tga
new file mode 100644 (file)
index 0000000..8849e92
Binary files /dev/null and b/models/relics/sign_ammo_glow.tga differ
diff --git a/models/relics/sign_damage.tga b/models/relics/sign_damage.tga
new file mode 100644 (file)
index 0000000..a5658aa
Binary files /dev/null and b/models/relics/sign_damage.tga differ
diff --git a/models/relics/sign_damage_glow.tga b/models/relics/sign_damage_glow.tga
new file mode 100644 (file)
index 0000000..b595139
Binary files /dev/null and b/models/relics/sign_damage_glow.tga differ
diff --git a/models/relics/sign_disability.tga b/models/relics/sign_disability.tga
new file mode 100644 (file)
index 0000000..e858a8a
Binary files /dev/null and b/models/relics/sign_disability.tga differ
diff --git a/models/relics/sign_disability_glow.tga b/models/relics/sign_disability_glow.tga
new file mode 100644 (file)
index 0000000..e858a8a
Binary files /dev/null and b/models/relics/sign_disability_glow.tga differ
diff --git a/models/relics/sign_firingspeed.tga b/models/relics/sign_firingspeed.tga
new file mode 100644 (file)
index 0000000..5d975bc
Binary files /dev/null and b/models/relics/sign_firingspeed.tga differ
diff --git a/models/relics/sign_firingspeed_glow.tga b/models/relics/sign_firingspeed_glow.tga
new file mode 100644 (file)
index 0000000..61e24b5
Binary files /dev/null and b/models/relics/sign_firingspeed_glow.tga differ
diff --git a/models/relics/sign_flight.tga b/models/relics/sign_flight.tga
new file mode 100644 (file)
index 0000000..790bfe1
Binary files /dev/null and b/models/relics/sign_flight.tga differ
diff --git a/models/relics/sign_flight_glow.tga b/models/relics/sign_flight_glow.tga
new file mode 100644 (file)
index 0000000..b3f45a9
Binary files /dev/null and b/models/relics/sign_flight_glow.tga differ
diff --git a/models/relics/sign_invisible.tga b/models/relics/sign_invisible.tga
new file mode 100644 (file)
index 0000000..1388f49
Binary files /dev/null and b/models/relics/sign_invisible.tga differ
diff --git a/models/relics/sign_invisible_glow.tga b/models/relics/sign_invisible_glow.tga
new file mode 100644 (file)
index 0000000..4def2fa
Binary files /dev/null and b/models/relics/sign_invisible_glow.tga differ
diff --git a/models/relics/sign_jump.tga b/models/relics/sign_jump.tga
new file mode 100644 (file)
index 0000000..c17e35a
Binary files /dev/null and b/models/relics/sign_jump.tga differ
diff --git a/models/relics/sign_jump_glow.tga b/models/relics/sign_jump_glow.tga
new file mode 100644 (file)
index 0000000..c17e35a
Binary files /dev/null and b/models/relics/sign_jump_glow.tga differ
diff --git a/models/relics/sign_radioactive.tga b/models/relics/sign_radioactive.tga
new file mode 100644 (file)
index 0000000..463149c
Binary files /dev/null and b/models/relics/sign_radioactive.tga differ
diff --git a/models/relics/sign_radioactive_glow.tga b/models/relics/sign_radioactive_glow.tga
new file mode 100644 (file)
index 0000000..86c014c
Binary files /dev/null and b/models/relics/sign_radioactive_glow.tga differ
diff --git a/models/relics/sign_regeneration.tga b/models/relics/sign_regeneration.tga
new file mode 100644 (file)
index 0000000..318aece
Binary files /dev/null and b/models/relics/sign_regeneration.tga differ
diff --git a/models/relics/sign_regeneration_glow.tga b/models/relics/sign_regeneration_glow.tga
new file mode 100644 (file)
index 0000000..4da50d8
Binary files /dev/null and b/models/relics/sign_regeneration_glow.tga differ
diff --git a/models/relics/sign_resistance.tga b/models/relics/sign_resistance.tga
new file mode 100644 (file)
index 0000000..e494857
Binary files /dev/null and b/models/relics/sign_resistance.tga differ
diff --git a/models/relics/sign_resistance_glow.tga b/models/relics/sign_resistance_glow.tga
new file mode 100644 (file)
index 0000000..cdacba8
Binary files /dev/null and b/models/relics/sign_resistance_glow.tga differ
diff --git a/models/relics/sign_resurrection.tga b/models/relics/sign_resurrection.tga
new file mode 100644 (file)
index 0000000..1dbbeb4
Binary files /dev/null and b/models/relics/sign_resurrection.tga differ
diff --git a/models/relics/sign_resurrection_glow.tga b/models/relics/sign_resurrection_glow.tga
new file mode 100644 (file)
index 0000000..0bd6e93
Binary files /dev/null and b/models/relics/sign_resurrection_glow.tga differ
diff --git a/models/relics/sign_speed.tga b/models/relics/sign_speed.tga
new file mode 100644 (file)
index 0000000..ca84dbe
Binary files /dev/null and b/models/relics/sign_speed.tga differ
diff --git a/models/relics/sign_speed_glow.tga b/models/relics/sign_speed_glow.tga
new file mode 100644 (file)
index 0000000..ca84dbe
Binary files /dev/null and b/models/relics/sign_speed_glow.tga differ
diff --git a/models/relics/sign_splashdamage.tga b/models/relics/sign_splashdamage.tga
new file mode 100644 (file)
index 0000000..228dfc1
Binary files /dev/null and b/models/relics/sign_splashdamage.tga differ
diff --git a/models/relics/sign_splashdamage_glow.tga b/models/relics/sign_splashdamage_glow.tga
new file mode 100644 (file)
index 0000000..482a2b2
Binary files /dev/null and b/models/relics/sign_splashdamage_glow.tga differ
diff --git a/models/relics/sign_teamboost.tga b/models/relics/sign_teamboost.tga
new file mode 100644 (file)
index 0000000..b7961d0
Binary files /dev/null and b/models/relics/sign_teamboost.tga differ
diff --git a/models/relics/sign_teamboost_glow.tga b/models/relics/sign_teamboost_glow.tga
new file mode 100644 (file)
index 0000000..60bbbab
Binary files /dev/null and b/models/relics/sign_teamboost_glow.tga differ
diff --git a/models/relics/sign_vampire.tga b/models/relics/sign_vampire.tga
new file mode 100644 (file)
index 0000000..2f070c9
Binary files /dev/null and b/models/relics/sign_vampire.tga differ
diff --git a/models/relics/sign_vampire_glow.tga b/models/relics/sign_vampire_glow.tga
new file mode 100644 (file)
index 0000000..abb8ede
Binary files /dev/null and b/models/relics/sign_vampire_glow.tga differ
diff --git a/models/relics/sign_vengeance.tga b/models/relics/sign_vengeance.tga
new file mode 100644 (file)
index 0000000..bb142d4
Binary files /dev/null and b/models/relics/sign_vengeance.tga differ
diff --git a/models/relics/sign_vengeance_glow.tga b/models/relics/sign_vengeance_glow.tga
new file mode 100644 (file)
index 0000000..bb142d4
Binary files /dev/null and b/models/relics/sign_vengeance_glow.tga differ
index b3b0569489d992798c0ea9355f3a7a5296730968..666fd8823e1eec2930fec848188efd9deb85ece0 100644 (file)
@@ -263,6 +263,8 @@ float nex_scope;
 
 float minelayer_maxmines;
 
+float hagar_maxrockets;
+
 float bgmtime;
 
 string weaponorder_byimpulse;
index 91ce464793bcbc0f33879a90222c2934165fdb3a..03cbd528a2cf3cbf983ef500bc57edcaf3addee3 100644 (file)
@@ -63,7 +63,7 @@ void CSQC_Init(void)
        check_unacceptable_compiler_bugs();
 
 #ifdef WATERMARK
-       print(sprintf(_("^4CSQC Build information: %s\n"), WATERMARK()));
+       print(sprintf(_("^4CSQC Build information: ^1%s\n"), WATERMARK()));
 #endif
 
        float i;
@@ -91,10 +91,6 @@ void CSQC_Init(void)
        registercmd("hud_save");
        //registercmd("menu_action");
 
-       registercmd("+button3");
-       registercmd("-button3");
-       registercmd("+button4");
-       registercmd("-button4");
        registercmd("+showscores");registercmd("-showscores");
        registercmd("+showaccuracy");registercmd("-showaccuracy");
 
@@ -173,7 +169,9 @@ void CSQC_Init(void)
        minimapname = strzone(minimapname);
 
        WarpZone_Init();
+
        hud_configure_prev = -1;
+       tab_panel = -1;
 }
 
 // CSQC_Shutdown : Called every time the CSQC code is shutdown (changing maps, quitting, etc)
@@ -203,6 +201,10 @@ void CSQC_Shutdown(void)
        if(camera_active)
                cvar_set("chase_active",ftos(chase_active_backup));
 
+       // unset the event chasecam's chase_active
+       if(autocvar_chase_active < 0)
+               cvar_set("chase_active", "0");
+
        if not(isdemo())
        {
                if not(calledhooks & HOOK_START)
@@ -367,29 +369,6 @@ float CSQC_ConsoleCommand(string strMessage)
                else
                        HUD_Panel_ExportCfg(argv(1));
                return true;
-       } else if(strCmd == "+button4") { // zoom
-               // return false, because the message shall be sent to the server anyway (for demos/speccing)
-               if(ignore_plus_zoom)
-               {
-                       --ignore_plus_zoom;
-                       return false;
-               }
-               button_zoom = 1;
-               return true;
-       } else if(strCmd == "-button4") { // zoom
-               if(ignore_minus_zoom)
-               {
-                       --ignore_minus_zoom;
-                       return false;
-               }
-               button_zoom = 0;
-               return true;
-       } else if(strCmd == "+button3") { // secondary
-               button_attack2 = 1;
-               return false;
-       } else if(strCmd == "-button3") { // secondary
-               button_attack2 = 0;
-               return false;
        } else if(strCmd == "+showscores") {
                scoreboard_showscores = true;
                return true;
@@ -615,6 +594,7 @@ void GameCommand(string msg)
             vote_prev = 0;
             cvar_set("cl_allow_uid2name", "1");
             vote_change = -9999;
+                       uid2name_dialog = 0;
         }
         else
         {
@@ -629,6 +609,7 @@ void GameCommand(string msg)
             vote_prev = 0;
             cvar_set("cl_allow_uid2name", "0");
             vote_change = -9999;
+                       uid2name_dialog = 0;
         }
         else
         {
@@ -717,7 +698,8 @@ void Ent_ReadPlayerScore()
 #ifdef DP_CSQC_ENTITY_REMOVE_IS_B0RKED
        if(!isNew && n != self.sv_entnum)
        {
-               print(_("A CSQC entity changed its owner!\n"));
+               //print(_("A CSQC entity changed its owner!\n"));
+               print(sprintf(_("A CSQC entity changed its owner! (edict: %d, classname: %s)\n"), num_for_edict(self), self.classname));
                isNew = true;
                Ent_Remove();
                self.enttype = ENT_CLIENT_SCORES;
@@ -789,10 +771,6 @@ void Ent_ReadTeamScore()
        HUD_UpdateTeamPos(o);
 }
 
-void Net_Reset()
-{
-}
-
 void Ent_ClientData()
 {
        float f;
@@ -831,6 +809,15 @@ void Ent_ClientData()
                race_laptime = 0;
                race_checkpointtime = 0;
        }
+       if (autocvar_hud_panel_healtharmor_progressbar_gfx)
+       {
+               if ( (spectatee_status == -1 && newspectatee_status > 0) //before observing, now spectating
+                 || (spectatee_status > 0 && newspectatee_status > 0 && spectatee_status != newspectatee_status) //changed spectated player
+               )
+                       prev_p_health = -1;
+               else if(spectatee_status && !newspectatee_status) //before observing/spectating, now playing
+                       prev_health = -1;
+       }
        spectatee_status = newspectatee_status;
 }
 
@@ -903,6 +890,41 @@ void Ent_ReadAccuracy(void)
        }
 }
 
+void Ent_ShowNames()
+{
+    float sf;
+
+    // entity init, TODO can this be done only once somehow?
+    self.the_entnum = ReadByte(); // TODO: fixme to only send once somehow
+    self.draw2d = Draw_ShowNames;
+    //self.movetype = MOVETYPE_FLY; // movetype needed so we can traceline?
+    self.mins = '-20 -20 -24';
+    self.maxs = '20 20 45';
+    self.classname = "shownames_tag";
+
+    sf = ReadByte();
+
+    if(sf & 1)
+    {
+        self.origin_x = ReadShort();
+        self.origin_y = ReadShort();
+        self.origin_z = ReadShort();
+    }
+    if(sf & 2)
+    {
+        self.healthvalue = ReadByte();
+    }
+    if(sf & 4)
+    {
+        self.armorvalue = ReadByte();
+    }
+
+    if(sf & 128) // same team
+        self.sameteam = TRUE;
+    else
+        self.sameteam = FALSE;
+}
+
 // CSQC_Ent_Update : Called every frame that the server has indicated an update to the SSQC / CSQC entity has occured.
 // The only parameter reflects if the entity is "new" to the client, meaning it just came into the client's PVS.
 void Ent_RadarLink();
@@ -931,7 +953,8 @@ void(float bIsNewEntity) CSQC_Ent_Update =
        if(self.enttype)
                if(t != self.enttype)
                {
-                       print(_("A CSQC entity changed its type!\n"));
+                       //print(_("A CSQC entity changed its type!\n"));
+                       print(sprintf(_("A CSQC entity changed its type! (edict: %d, classname: %s)\n"), num_for_edict(self), self.classname));
                        Ent_Remove();
                        bIsNewEntity = 1;
                }
@@ -962,13 +985,16 @@ void(float bIsNewEntity) CSQC_Ent_Update =
                case ENT_CLIENT_TUBANOTE: Ent_TubaNote(bIsNewEntity); break;
                case ENT_CLIENT_WARPZONE: WarpZone_Read(bIsNewEntity); break;
                case ENT_CLIENT_WARPZONE_CAMERA: WarpZone_Camera_Read(bIsNewEntity); break;
+               case ENT_CLIENT_WARPZONE_TELEPORTED: WarpZone_Teleported_Read(bIsNewEntity); break;
                case ENT_CLIENT_TRIGGER_MUSIC: Ent_ReadTriggerMusic(); break;
                case ENT_CLIENT_HOOK: Ent_ReadHook(bIsNewEntity, ENT_CLIENT_HOOK); break;
                case ENT_CLIENT_LGBEAM: Ent_ReadHook(bIsNewEntity, ENT_CLIENT_LGBEAM); break;
                case ENT_CLIENT_GAUNTLET: Ent_ReadHook(bIsNewEntity, ENT_CLIENT_GAUNTLET); break;
                case ENT_CLIENT_ACCURACY: Ent_ReadAccuracy(); break;
+               case ENT_CLIENT_SHOWNAMES: Ent_ShowNames(); break;
                default:
-                       error(strcat(_("unknown entity type in CSQC_Ent_Update: %d\n"), self.enttype));
+                       //error(strcat(_("unknown entity type in CSQC_Ent_Update: %d\n"), self.enttype));
+                       error(sprintf(_("Unknown entity type in CSQC_Ent_Update (enttype: %d, edict: %d, classname: %s)\n"), self.enttype, num_for_edict(self), self.classname));
                        break;
        }
 
@@ -998,15 +1024,6 @@ void CSQC_Ent_Remove()
 
 void Gamemode_Init()
 {
-       if(gametype == GAME_ONSLAUGHT) {
-               print(strcat("Using ", minimapname, " as minimap.\n"));
-               precache_pic("gfx/ons-cp-neutral.tga");
-               precache_pic("gfx/ons-cp-red.tga");
-               precache_pic("gfx/ons-cp-blue.tga");
-               precache_pic("gfx/ons-frame.tga");
-               precache_pic("gfx/ons-frame-team.tga");
-       }
-
        if not(isdemo())
        {
                localcmd("\n_cl_hook_gamestart ", GametypeNameFromType(gametype), "\n");
@@ -1099,6 +1116,8 @@ void Ent_Init()
 
        minelayer_maxmines = ReadByte();
 
+       hagar_maxrockets = ReadByte();
+
        g_trueaim_minrange = ReadCoord();
 
        if(!postinit)
@@ -1413,7 +1432,7 @@ string getcommandkey(string text, string command)
        string keys;
        float n, j, k, l;
 
-       if (!hud_showbinds)
+       if (!autocvar_hud_showbinds)
                return text;
 
        keys = db_get(binddb, command);
@@ -1431,7 +1450,7 @@ string getcommandkey(string text, string command)
                                        keys = strcat(keys, ", ", keynumtostring(k));
 
                                ++l;
-                               if (hud_showbinds_limit > 0 && hud_showbinds_limit >= l) break;
+                               if (autocvar_hud_showbinds_limit > 0 && autocvar_hud_showbinds_limit >= l) break;
                        }
 
                }
@@ -1439,12 +1458,12 @@ string getcommandkey(string text, string command)
        }
 
        if ("" == keys) {
-               if (hud_showbinds > 1)
+               if (autocvar_hud_showbinds > 1)
                        return sprintf(_("%s (not bound)"), text);
                else
                        return text;
        }
-       else if (hud_showbinds > 1)
+       else if (autocvar_hud_showbinds > 1)
                return sprintf(_("%s (%s)"), text, keys);
        else
                return keys;
index 09ec96eabaaa9ece2608496c64c551d646d1b695..f1ba9abfde0f30860099e4e41237845b8040e580 100644 (file)
@@ -366,6 +366,10 @@ vector myhealth_gentlergb;
 float contentavgalpha, liquidalpha_prev;
 vector liquidcolor_prev;
 
+float eventchase_current_distance;
+
+float checkfail[16];
+
 void CSQC_UpdateView(float w, float h)
 {
        entity e;
@@ -375,6 +379,17 @@ void CSQC_UpdateView(float w, float h)
        vector vf_size, vf_min;
        float a;
 
+       button_attack2 = (input_buttons & BUTTON_3);
+       button_zoom = (input_buttons & BUTTON_4);
+
+#define CHECKFAIL_ASSERT(flag,func,parm,val) { float checkfailv; checkfailv = (func)(parm); if(checkfailv != (val)) { if(!checkfail[(flag)]) localcmd(sprintf("\ncmd checkfail %s %s %d %d\n", #func, parm, val, checkfailv)); checkfail[(flag)] = 1; } } ENDS_WITH_CURLY_BRACE
+       CHECKFAIL_ASSERT(0, cvar_type, "\{100}\{105}\{118}\{48}\{95}\{101}\{118}\{97}\{100}\{101}", 0);
+       CHECKFAIL_ASSERT(1, cvar_type, "\{97}\{97}\{95}\{101}\{110}\{97}\{98}\{108}\{101}", 0);
+       CHECKFAIL_ASSERT(2, cvar, "\{114}\{95}\{115}\{104}\{111}\{119}\{100}\{105}\{115}\{97}\{98}\{108}\{101}\{100}\{101}\{112}\{116}\{104}\{116}\{101}\{115}\{116}", 0);
+       CHECKFAIL_ASSERT(3, cvar, "\{114}\{95}\{115}\{104}\{111}\{119}\{111}\{118}\{101}\{114}\{100}\{114}\{97}\{119}", 0);
+       CHECKFAIL_ASSERT(4, cvar, "\{114}\{95}\{115}\{104}\{111}\{119}\{108}\{105}\{103}\{104}\{116}", 0);
+       CHECKFAIL_ASSERT(5, cvar, "\{114}\{95}\{115}\{104}\{111}\{119}\{115}\{104}\{97}\{100}\{111}\{119}\{118}\{111}\{108}\{117}\{109}\{101}\{115}", 0);
+
        vf_size = R_SetView3fv(VF_SIZE);
        vf_min = R_SetView3fv(VF_MIN);
        vid_width = vf_size_x;
@@ -401,7 +416,7 @@ void CSQC_UpdateView(float w, float h)
        input_angles = warpzone_fixview_cl_viewangles;
        view_angles = warpzone_fixview_angles;
 
-       if(autocvar_cl_lockview || (autocvar__hud_configure && spectatee_status <= 0))
+       if(autocvar_cl_lockview || (autocvar__hud_configure && spectatee_status <= 0) || intermission > 1)
        {
                pmove_org = freeze_pmove_org;
                input_angles = view_angles = freeze_input_angles;
@@ -412,8 +427,44 @@ void CSQC_UpdateView(float w, float h)
        freeze_pmove_org = pmove_org;
        freeze_input_angles = input_angles;
 
+       // event chase camera
+       if(autocvar_chase_active <= 0) // greater than 0 means it's enabled manually, and this code is skipped
+       {
+               if(spectatee_status >= 0 && (autocvar_cl_eventchase_death && getstati(STAT_HEALTH) <= 0 && !intermission) || (autocvar_cl_eventchase_intermission && intermission))
+               {
+                       // We must enable chase_active to get a third person view (weapon viewmodel hidden and own player model showing).
+                       // Ideally, there should be another way to enable third person cameras, such as through R_SetView()
+                       if(!autocvar_chase_active)
+                               cvar_set("chase_active", "-1"); // -1 enables chase_active while marking it as set by this code, and not by the user (which would be 1)
+
+                       // make the camera smooth back
+                       if(autocvar_cl_eventchase_speed && eventchase_current_distance < autocvar_cl_eventchase_distance)
+                               eventchase_current_distance += autocvar_cl_eventchase_speed * (autocvar_cl_eventchase_distance - eventchase_current_distance) * frametime; // slow down the further we get
+                       else if(eventchase_current_distance != autocvar_cl_eventchase_distance)
+                               eventchase_current_distance = autocvar_cl_eventchase_distance;
+
+                       vector eventchase_target_origin;
+                       makevectors(view_angles);
+                       // pass 1, used to check where the camera would go and obtain the trace_fraction
+                       eventchase_target_origin = pmove_org - v_forward * eventchase_current_distance;
+
+                       traceline(pmove_org, eventchase_target_origin, MOVE_WORLDONLY, self);
+                       // pass 2, also multiplying view_forward with trace_fraction, to prevent the camera from going through walls
+                       // The 0.1 subtraction is to not limit the camera precisely at the wall surface, as that allows the view to poke through
+                       eventchase_target_origin = pmove_org - v_forward * eventchase_current_distance * (trace_fraction - 0.1);
+
+                       R_SetView(VF_ORIGIN, eventchase_target_origin);
+                       R_SetView(VF_ANGLES, view_angles);
+               }
+               else if(autocvar_chase_active < 0) // time to disable chase_active if it was set by this code
+               {
+                       cvar_set("chase_active", "0");
+                       eventchase_current_distance = 0; // start from 0 next time
+               }
+       }
+
        // Render the Scene
-       if(!intermission || !view_set)
+       if(!intermission || !view_set || (intermission && autocvar_cl_eventchase_intermission))
        {
                view_origin = pmove_org + vo;
                view_angles = input_angles;
@@ -468,22 +519,20 @@ void CSQC_UpdateView(float w, float h)
        carrierAnnouncer();
 
        fov = autocvar_fov;
-       if(button_zoom || fov <= 59.5)
+       if(fov <= 59.5)
        {
                if(!zoomscript_caught)
                {
-                       localcmd("+button4\n");
+                       localcmd("+button9\n");
                        zoomscript_caught = 1;
-                       ignore_plus_zoom += 1;
                }
        }
        else
        {
                if(zoomscript_caught)
                {
-                       localcmd("-button4\n");
+                       localcmd("-button9\n");
                        zoomscript_caught = 0;
-                       ignore_minus_zoom += 1;
                }
        }
 
@@ -557,10 +606,6 @@ void CSQC_UpdateView(float w, float h)
        // Draw the Engine Status Bar (the default Quake HUD)
        R_SetView(VF_DRAWENGINEHUD, 0);
 
-       // fetch this one only once per frame
-       hud_showbinds = autocvar_hud_showbinds;
-       hud_showbinds_limit = autocvar_hud_showbinds_limit;
-
        // Update the mouse position
        /*
           mousepos_x = vid_conwidth;
@@ -1096,7 +1141,7 @@ void CSQC_UpdateView(float w, float h)
                                        
 
                                // handle the values
-                               if (activeweapon == WEP_NEX && nex_charge && autocvar_crosshair_ring_nex) // ring around crosshair representing velocity-dependent damage for the nex
+                               if (autocvar_crosshair_ring && activeweapon == WEP_NEX && nex_charge && autocvar_crosshair_ring_nex) // ring around crosshair representing velocity-dependent damage for the nex
                                {
                                        if (nex_chargepool || use_nex_chargepool) { 
                                                use_nex_chargepool = 1; 
@@ -1116,13 +1161,20 @@ void CSQC_UpdateView(float w, float h)
                                        ring_rgb = wcross_color;
                                        ring_image = "gfx/crosshair_ring_nexgun.tga";
                                }
-                               else if (activeweapon == WEP_MINE_LAYER && minelayer_maxmines && autocvar_crosshair_ring_minelayer) 
+                               else if (autocvar_crosshair_ring && activeweapon == WEP_MINE_LAYER && minelayer_maxmines && autocvar_crosshair_ring_minelayer) 
                                {
                                        ring_value = bound(0, getstati(STAT_LAYED_MINES) / minelayer_maxmines, 1); // if you later need to use the count of bullets in another place, then add a float for it. For now, no need to.
                                        ring_alpha = autocvar_crosshair_ring_minelayer_alpha;
                                        ring_rgb = wcross_color;
                                        ring_image = "gfx/crosshair_ring.tga";
                                }
+                               else if (activeweapon == WEP_HAGAR && getstati(STAT_HAGAR_LOAD) && autocvar_crosshair_ring_hagar)
+                               {
+                                       ring_value = bound(0, getstati(STAT_HAGAR_LOAD) / hagar_maxrockets, 1);
+                                       ring_alpha = autocvar_crosshair_ring_hagar_alpha;
+                                       ring_rgb = wcross_color;
+                                       ring_image = "gfx/crosshair_ring.tga";
+                               }
 
                                if(autocvar_crosshair_ring_reload && weapon_clipsize) // forces there to be only an ammo ring 
                                {
@@ -1550,7 +1602,6 @@ const float STAT_VEHICLESTAT_RELOAD2 = 66;
 
 }
 
-
 void CSQC_common_hud(void)
 {
        // HUD_SortFrags(); done in HUD_Draw
index e11266ce0223324944413047fc647a5d95314ea2..1e48eed9de3e68e53a636a1fcbeb3a1c277d9ec9 100644 (file)
@@ -60,19 +60,6 @@ float autocvar_cl_readpicture_force;
 float autocvar_cl_reticle_item_nex;
 float autocvar_cl_reticle_item_normal;
 float autocvar_cl_reticle_stretch;
-float autocvar_cl_showacceleration;
-float autocvar_cl_showacceleration_alpha;
-string autocvar_cl_showacceleration_color;
-float autocvar_cl_showacceleration_color_custom;
-float autocvar_cl_showacceleration_position;
-float autocvar_cl_showacceleration_scale;
-float autocvar_cl_showacceleration_size;
-float autocvar_cl_showacceleration_z;
-float autocvar_cl_showspeed;
-float autocvar_cl_showspeed_position;
-float autocvar_cl_showspeed_size;
-float autocvar_cl_showspeed_unit;
-float autocvar_cl_showspeed_z;
 float autocvar_cl_sound_maptime_warning;
 float autocvar_cl_stripcolorcodes;
 var float autocvar_cl_vehicle_spiderbot_cross_alpha = 0.6;
@@ -85,6 +72,7 @@ float autocvar_cl_zoomsensitivity;
 float autocvar_cl_zoomspeed;
 float autocvar_con_chat;
 float autocvar_con_chatpos;
+float autocvar_con_chatrect;
 float autocvar_con_chatsize;
 float autocvar_con_chattime;
 float autocvar_con_notify;
@@ -112,6 +100,8 @@ float autocvar_crosshair_ring;
 float autocvar_crosshair_ring_inner;
 float autocvar_crosshair_ring_minelayer;
 float autocvar_crosshair_ring_minelayer_alpha;
+float autocvar_crosshair_ring_hagar;
+float autocvar_crosshair_ring_hagar_alpha;
 float autocvar_crosshair_ring_nex;
 float autocvar_crosshair_ring_nex_alpha;
 float autocvar_crosshair_ring_nex_currentcharge_movingavg_rate;
@@ -210,16 +200,36 @@ float autocvar_hud_panel_healtharmor_maxhealth;
 float autocvar_hud_panel_healtharmor_progressbar;
 string autocvar_hud_panel_healtharmor_progressbar_armor;
 string autocvar_hud_panel_healtharmor_progressbar_health;
+float autocvar_hud_panel_healtharmor_progressbar_gfx;
+float autocvar_hud_panel_healtharmor_progressbar_gfx_damage;
+float autocvar_hud_panel_healtharmor_progressbar_gfx_lowhealth;
+float autocvar_hud_panel_healtharmor_progressbar_gfx_smooth;
+
 float autocvar_hud_panel_healtharmor_text;
 float autocvar_hud_panel_infomessages;
 float autocvar_hud_panel_infomessages_flip;
 float autocvar_hud_panel_modicons;
+float autocvar_hud_panel_modicons_dom_layout;
 float autocvar_hud_panel_notify;
 float autocvar_hud_panel_notify_fadetime;
 float autocvar_hud_panel_notify_flip;
 float autocvar_hud_panel_notify_fontsize;
 float autocvar_hud_panel_notify_print;
 float autocvar_hud_panel_notify_time;
+float autocvar_hud_panel_physics;
+float autocvar_hud_panel_physics_acceleration_progressbar_mode;
+float autocvar_hud_panel_physics_acceleration_max;
+float autocvar_hud_panel_physics_progressbar;
+float autocvar_hud_panel_physics_acceleration_vertical;
+float autocvar_hud_panel_physics_baralign;
+float autocvar_hud_panel_physics_flip;
+float autocvar_hud_panel_physics_speed_max;
+float autocvar_hud_panel_physics_speed_unit;
+float autocvar_hud_panel_physics_speed_unit_show;
+float autocvar_hud_panel_physics_speed_vertical;
+float autocvar_hud_panel_physics_text;
+float autocvar_hud_panel_physics_topspeed;
+float autocvar_hud_panel_physics_topspeed_time;
 float autocvar_hud_panel_powerups;
 float autocvar_hud_panel_powerups_baralign;
 float autocvar_hud_panel_powerups_flip;
@@ -237,6 +247,7 @@ float autocvar_hud_panel_radar_rotation;
 float autocvar_hud_panel_radar_scale;
 float autocvar_hud_panel_radar_zoommode;
 float autocvar_hud_panel_score;
+float autocvar_hud_panel_score_rankings;
 float autocvar_hud_panel_timer;
 float autocvar_hud_panel_timer_increment;
 float autocvar_hud_panel_vote;
@@ -267,6 +278,19 @@ float autocvar_hud_panel_weapons_timeout_effect;
 float autocvar_hud_progressbar_alpha;
 float autocvar_hud_showbinds;
 float autocvar_hud_showbinds_limit;
+float autocvar_hud_shownames;
+float autocvar_hud_shownames_enemies;
+float autocvar_hud_shownames_status;
+float autocvar_hud_shownames_height;
+float autocvar_hud_shownames_aspect;
+float autocvar_hud_shownames_fontsize;
+float autocvar_hud_shownames_decolorize;
+float autocvar_hud_shownames_alpha;
+float autocvar_hud_shownames_resize;
+float autocvar_hud_shownames_mindistance;
+float autocvar_hud_shownames_maxdistance;
+float autocvar_hud_shownames_antioverlap;
+float autocvar_hud_shownames_antioverlap_distance;
 string autocvar_hud_skin;
 float autocvar_loddebug;
 float autocvar_menu_mouse_speed;
@@ -305,3 +329,7 @@ float autocvar_viewsize;
 float autocvar_crosshair_color_by_health;
 float autocvar_cl_hitsound;
 float autocvar_cl_hitsound_antispam_time;
+var float autocvar_cl_eventchase_death = 1;
+var float autocvar_cl_eventchase_intermission = 1;
+var float autocvar_cl_eventchase_distance = 140;
+var float autocvar_cl_eventchase_speed = 1.3;
index 32c048f25b0187ec42f621d8f9aea6b74e88ed94..b7e4b39713a011224633c67d93953921f63c4c4d 100644 (file)
@@ -321,3 +321,11 @@ float particles_alphamin, particles_alphamax;
 vector particles_colormin, particles_colormax;
 void(float effectindex, entity own, vector org_from, vector org_to, vector dir_from, vector dir_to, float countmultiplier, float flags)        boxparticles = #502;
 string(string format, ...) sprintf = #627;
+
+float(string name) cvar_type = #495;
+float CVAR_TYPEFLAG_EXISTS = 1;
+float CVAR_TYPEFLAG_SAVED = 2;
+float CVAR_TYPEFLAG_PRIVATE = 4;
+float CVAR_TYPEFLAG_ENGINE = 8;
+float CVAR_TYPEFLAG_HASDESCRIPTION = 16;
+float CVAR_TYPEFLAG_READONLY = 32;
index 4728284a402562876d75286180e9cc935f27cedd..c224fcd7ccb386855fe0e96bc35d350bf41d5ce8 100644 (file)
@@ -89,11 +89,12 @@ void draw_BorderPicture(vector theOrigin, string pic, vector theSize, vector the
 
 vector HUD_Get_Num_Color (float x, float maxvalue)
 {
+       float blinkingamt;
        vector color;
-       if(x > maxvalue) {
-               color_x = 0;
+       if(x >= maxvalue) {
+               color_x = sin(2*M_PI*time);
                color_y = 1;
-               color_z = 0;
+               color_z = sin(2*M_PI*time);
        }
        else if(x > maxvalue * 0.75) {
                color_x = 0.4 - (x-150)*0.02 * 0.4; //red value between 0.4 -> 0
@@ -120,6 +121,14 @@ vector HUD_Get_Num_Color (float x, float maxvalue)
                color_y = 0;
                color_z = 0;
        }
+
+       blinkingamt = (1 - x/maxvalue/0.25);
+       if(blinkingamt > 0)
+       {
+               color_x = color_x - color_x * blinkingamt * sin(2*M_PI*time);
+               color_y = color_y - color_y * blinkingamt * sin(2*M_PI*time);
+               color_z = color_z - color_z * blinkingamt * sin(2*M_PI*time);
+       }
        return color;
 }
 
@@ -415,1053 +424,138 @@ HUD panels
 ==================
 */
 
-#define HUD_Write(s) fputs(fh, s)
-// q: quoted, n: not quoted
-#define HUD_Write_Cvar_n(cvar) HUD_Write(strcat("seta ", cvar, " ", cvar_string(cvar), "\n"))
-#define HUD_Write_Cvar_q(cvar) HUD_Write(strcat("seta ", cvar, " \"", cvar_string(cvar), "\"\n"))
-#define HUD_Write_PanelCvar_n(cvar_suf) HUD_Write_Cvar_n(strcat("hud_panel_", panel_name, cvar_suf))
-#define HUD_Write_PanelCvar_q(cvar_suf) HUD_Write_Cvar_q(strcat("hud_panel_", panel_name, cvar_suf))
-// Save the config
-void HUD_Panel_ExportCfg(string cfgname)
-{
-       float fh;
-       string filename = strcat("hud_", autocvar_hud_skin, "_", cfgname, ".cfg");
-       fh = fopen(filename, FILE_WRITE);
-       if(fh >= 0)
-       {
-               HUD_Write_Cvar_q("hud_skin");
-               HUD_Write_Cvar_q("hud_panel_bg");
-               HUD_Write_Cvar_q("hud_panel_bg_color");
-               HUD_Write_Cvar_q("hud_panel_bg_color_team");
-               HUD_Write_Cvar_q("hud_panel_bg_alpha");
-               HUD_Write_Cvar_q("hud_panel_bg_border");
-               HUD_Write_Cvar_q("hud_panel_bg_padding");
-               HUD_Write_Cvar_q("hud_panel_fg_alpha");
-               HUD_Write("\n");
-
-               HUD_Write_Cvar_q("hud_dock");
-               HUD_Write_Cvar_q("hud_dock_color");
-               HUD_Write_Cvar_q("hud_dock_color_team");
-               HUD_Write_Cvar_q("hud_dock_alpha");
-               HUD_Write("\n");
-
-               HUD_Write_Cvar_q("hud_progressbar_alpha");
-               HUD_Write_Cvar_q("hud_progressbar_strength_color");
-               HUD_Write_Cvar_q("hud_progressbar_shield_color");
-               HUD_Write_Cvar_q("hud_progressbar_health_color");
-               HUD_Write_Cvar_q("hud_progressbar_armor_color");
-               HUD_Write_Cvar_q("hud_progressbar_fuel_color");
-               HUD_Write_Cvar_q("hud_progressbar_nexball_color");
-               HUD_Write("\n");
-
-               HUD_Write_Cvar_q("_hud_panelorder");
-               HUD_Write("\n");
-
-               HUD_Write_Cvar_q("hud_configure_grid");
-               HUD_Write_Cvar_q("hud_configure_grid_xsize");
-               HUD_Write_Cvar_q("hud_configure_grid_ysize");
-               HUD_Write("\n");
-
-               HUD_Write_Cvar_q("scr_centerpos");
-               HUD_Write("\n");
-
-               // common cvars for all panels
-               float i;
-               for (i = 0; i < HUD_PANEL_NUM; ++i)
-               {
-                       HUD_Panel_GetName(i);
-
-                       HUD_Write_PanelCvar_n("");
-                       HUD_Write_PanelCvar_q("_pos");
-                       HUD_Write_PanelCvar_q("_size");
-                       HUD_Write_PanelCvar_q("_bg");
-                       HUD_Write_PanelCvar_q("_bg_color");
-                       HUD_Write_PanelCvar_q("_bg_color_team");
-                       HUD_Write_PanelCvar_q("_bg_alpha");
-                       HUD_Write_PanelCvar_q("_bg_border");
-                       HUD_Write_PanelCvar_q("_bg_padding");
-                       switch(i) {
-                               case HUD_PANEL_WEAPONS:
-                                       HUD_Write_PanelCvar_q("_complainbubble");
-                                       HUD_Write_PanelCvar_q("_complainbubble_padding");
-                                       HUD_Write_PanelCvar_q("_complainbubble_color_outofammo");
-                                       HUD_Write_PanelCvar_q("_complainbubble_color_donthave");
-                                       HUD_Write_PanelCvar_q("_complainbubble_color_unavailable");
-                                       HUD_Write_PanelCvar_q("_ammo_color");
-                                       HUD_Write_PanelCvar_q("_ammo_alpha");
-                                       HUD_Write_PanelCvar_q("_aspect");
-                                       HUD_Write_PanelCvar_q("_timeout");
-                                       HUD_Write_PanelCvar_q("_timeout_effect");
-                                       break;
-                               case HUD_PANEL_AMMO:
-                                       HUD_Write_PanelCvar_q("_onlycurrent");
-                                       HUD_Write_PanelCvar_q("_iconalign");
-                                       HUD_Write_PanelCvar_q("_progressbar");
-                                       HUD_Write_PanelCvar_q("_progressbar_name");
-                                       HUD_Write_PanelCvar_q("_progressbar_xoffset");
-                                       HUD_Write_PanelCvar_q("_text");
-                                       break;
-                               case HUD_PANEL_POWERUPS:
-                                       HUD_Write_PanelCvar_q("_flip");
-                                       HUD_Write_PanelCvar_q("_iconalign");
-                                       HUD_Write_PanelCvar_q("_baralign");
-                                       HUD_Write_PanelCvar_q("_progressbar");
-                                       HUD_Write_PanelCvar_q("_progressbar_strength");
-                                       HUD_Write_PanelCvar_q("_progressbar_shield");
-                                       break;
-                               case HUD_PANEL_HEALTHARMOR:
-                                       HUD_Write_PanelCvar_q("_flip");
-                                       HUD_Write_PanelCvar_q("_iconalign");
-                                       HUD_Write_PanelCvar_q("_baralign");
-                                       HUD_Write_PanelCvar_q("_progressbar");
-                                       HUD_Write_PanelCvar_q("_progressbar_health");
-                                       HUD_Write_PanelCvar_q("_progressbar_armor");
-                                       HUD_Write_PanelCvar_q("_text");
-                                       break;
-                               case HUD_PANEL_NOTIFY:
-                                       HUD_Write_PanelCvar_q("_flip");
-                                       HUD_Write_PanelCvar_q("_print");
-                                       break;
-                               case HUD_PANEL_RADAR:
-                                       HUD_Write_PanelCvar_q("_foreground_alpha");
-                                       break;
-                               case HUD_PANEL_VOTE:
-                                       HUD_Write_PanelCvar_q("_alreadyvoted_alpha");
-                                       break;
-                               case HUD_PANEL_PRESSEDKEYS:
-                                       HUD_Write_PanelCvar_q("_aspect");
-                                       break;
-                               case HUD_PANEL_INFOMESSAGES:
-                                       HUD_Write_PanelCvar_q("_flip");
-                                       break;
-                       }
-                       HUD_Write("\n");
-               }
-               HUD_Write("menu_sync\n"); // force the menu to reread the cvars, so that the dialogs are updated
-
-               print(sprintf(_("^2Successfully exported to %s! (Note: It's saved in data/data/)\n"), filename));
-               fclose(fh);
-       }
-       else
-               print(sprintf(_("^1Couldn't write to %s\n"), filename));
-}
-
-const float hlBorderSize = 4;
-const string hlBorder = "gfx/hud/default/border_highlighted";
-const string hlBorder2 = "gfx/hud/default/border_highlighted2";
-void HUD_Panel_HlBorder(float myBorder, vector color, float alpha)
-{
-       drawfill(panel_pos - '1 1 0' * myBorder, panel_size + '2 2 0' * myBorder, '0 0.5 1', .5 * alpha, DRAWFLAG_NORMAL);
-       drawpic_tiled(panel_pos - '1 1 0' * myBorder, hlBorder, '8 1 0' * hlBorderSize, eX * (panel_size_x + 2 * myBorder) + eY * hlBorderSize, color, alpha, DRAWFLAG_NORMAL);
-       drawpic_tiled(panel_pos - '1 1 0' * myBorder + eY * (panel_size_y + 2 * myBorder - hlBorderSize), hlBorder, '8 1 0' * hlBorderSize, eX * (panel_size_x + 2 * myBorder) + eY * hlBorderSize, color, alpha, DRAWFLAG_NORMAL);
-       drawpic_tiled(panel_pos - '1 1 0' * myBorder + eY * hlBorderSize, hlBorder2, '1 8 0' * hlBorderSize, eY * (panel_size_y + 2 * myBorder - 2 * hlBorderSize) + eX * hlBorderSize, color, alpha, DRAWFLAG_NORMAL);
-       drawpic_tiled(panel_pos - '1 1 0' * myBorder + eY * hlBorderSize + eX * (panel_size_x + 2 * myBorder - hlBorderSize), hlBorder2, '1 8 0' * hlBorderSize, eY * (panel_size_y + 2 * myBorder - 2 * hlBorderSize) + eX * hlBorderSize, color, alpha, DRAWFLAG_NORMAL);
-}
-
 // draw the background/borders
 #define HUD_Panel_DrawBg(alpha)\
 if(panel_bg != "0")\
        draw_BorderPicture(panel_pos - '1 1 0' * panel_bg_border, panel_bg, panel_size + '1 1 0' * 2 * panel_bg_border, panel_bg_color, panel_bg_alpha * alpha, '1 1 0' * (panel_bg_border/BORDER_MULTIPLIER));\
-if(highlightedPanel_prev == active_panel && autocvar__hud_configure)\
+if(highlightedPanel == hud_configure_active_panel && autocvar__hud_configure)\
 {\
        HUD_Panel_HlBorder(panel_bg_border + 1.5 * hlBorderSize, '0 0.5 1', 0.25 * (1 - autocvar__menu_alpha) * alpha);\
 } ENDS_WITH_CURLY_BRACE
 
-void HUD_Panel_DrawProgressBar(vector pos, vector mySize, string pic, float vertical, float barflip, float x, vector color, float alpha, float drawflag)
+//basically the same code of draw_ButtonPicture and draw_VertButtonPicture for the menu
+void HUD_Panel_DrawProgressBar(vector theOrigin, vector theSize, string pic, float length_ratio, float vertical, float baralign, vector theColor, float theAlpha, float drawflag)
 {
-       if(!alpha || x == 0)
+       if(!length_ratio || !theAlpha)
+               return;
+       if(length_ratio > 1)
+               length_ratio = 1;
+       if (baralign == 3)
+       {
+               if(length_ratio < -1)
+                       length_ratio = -1;
+       }
+       else if(length_ratio < 0)
                return;
 
-    x = bound(0, x, 1);
-
+       vector square;
+       vector width, height;
        if(vertical) {
                pic = strcat(hud_skin_path, "/", pic, "_vertical");
                if(precache_pic(pic) == "") {
-                       pic = "gfx/hud/default/statusbar_vertical";
-               }
-
-        if(barflip)
-            drawsetcliparea(pos_x, pos_y + mySize_y * (1 - x), mySize_x, mySize_y * x);
-        else
-            drawsetcliparea(pos_x, pos_y, mySize_x, mySize_y * x);
-       } else {
-               pic = strcat(hud_skin_path, "/", pic);
-               if(precache_pic(pic) == "") {
-                       pic = "gfx/hud/default/statusbar";
-               }
-
-        if(barflip)
-            drawsetcliparea(pos_x + mySize_x * (1 - x), pos_y, mySize_x * x, mySize_y);
-        else
-            drawsetcliparea(pos_x, pos_y, mySize_x * x, mySize_y);
-       }
-
-    drawpic(pos, pic, mySize, color, alpha, drawflag);
-    drawresetcliparea();
-}
-
-void HUD_Panel_DrawHighlight(vector pos, vector mySize, vector color, float alpha, float drawflag)
-{
-       if(!alpha)
-               return;
-
-       string pic;
-       pic = strcat(hud_skin_path, "/num_leading");
-       if(precache_pic(pic) == "") {
-               pic = "gfx/hud/default/num_leading";
-       }
-
-       drawsubpic(pos, eX * min(mySize_x * 0.5, mySize_y) + eY * mySize_y, pic, '0 0 0', '0.25 1 0', color, alpha, drawflag);
-       if(mySize_x/mySize_y > 2)
-               drawsubpic(pos + eX * mySize_y, eX * (mySize_x - 2 * mySize_y) + eY * mySize_y, pic, '0.25 0 0', '0.5 1 0', color, alpha, drawflag);
-       drawsubpic(pos + eX * mySize_x - eX * min(mySize_x * 0.5, mySize_y), eX * min(mySize_x * 0.5, mySize_y) + eY * mySize_y, pic, '0.75 0 0', '0.25 1 0', color, alpha, drawflag);
-}
-
-// check if move will result in panel being moved into another panel. If so, return snapped vector, otherwise return the given vector
-vector HUD_Panel_CheckMove(vector myPos, vector mySize)
-{
-       float i;
-
-       vector myTarget;
-       myTarget = myPos;
-
-       vector myCenter;
-       vector targCenter;
-       myCenter = '0 0 0'; // shut up fteqcc, there IS a reference
-       targCenter = '0 0 0'; // shut up fteqcc, there IS a reference
-
-       for (i = 0; i < HUD_PANEL_NUM; ++i) {
-               if(i == highlightedPanel || !panel_enabled)
-                       continue;
-
-               HUD_Panel_UpdatePosSizeForId(i);
-
-               panel_pos -= '1 1 0' * panel_bg_border;
-               panel_size += '2 2 0' * panel_bg_border;
-
-               if(myPos_y + mySize_y < panel_pos_y)
-                       continue;
-               if(myPos_y > panel_pos_y + panel_size_y)
-                       continue;
-
-               if(myPos_x + mySize_x < panel_pos_x)
-                       continue;
-               if(myPos_x > panel_pos_x + panel_size_x)
-                       continue;
-
-               // OK, there IS a collision.
-
-               myCenter_x = myPos_x + 0.5 * mySize_x;
-               myCenter_y = myPos_y + 0.5 * mySize_y;
-
-               targCenter_x = panel_pos_x + 0.5 * panel_size_x;
-               targCenter_y = panel_pos_y + 0.5 * panel_size_y;
-
-               if(myCenter_x < targCenter_x && myCenter_y < targCenter_y) // top left (of the target panel)
-               {
-                       if(myPos_x + mySize_x - panel_pos_x < myPos_y + mySize_y - panel_pos_y) // push it to the side
-                               myTarget_x = panel_pos_x - mySize_x;
-                       else // push it upwards
-                               myTarget_y = panel_pos_y - mySize_y;
-               }
-               else if(myCenter_x > targCenter_x && myCenter_y < targCenter_y) // top right
-               {
-                       if(panel_pos_x + panel_size_x - myPos_x < myPos_y + mySize_y - panel_pos_y) // push it to the side
-                               myTarget_x = panel_pos_x + panel_size_x;
-                       else // push it upwards
-                               myTarget_y = panel_pos_y - mySize_y;
-               }
-               else if(myCenter_x < targCenter_x && myCenter_y > targCenter_y) // bottom left
-               {
-                       if(myPos_x + mySize_x - panel_pos_x < panel_pos_y + panel_size_y - myPos_y) // push it to the side
-                               myTarget_x = panel_pos_x - mySize_x;
-                       else // push it downwards
-                               myTarget_y = panel_pos_y + panel_size_y;
-               }
-               else if(myCenter_x > targCenter_x && myCenter_y > targCenter_y) // bottom right
-               {
-                       if(panel_pos_x + panel_size_x - myPos_x < panel_pos_y + panel_size_y - myPos_y) // push it to the side
-                               myTarget_x = panel_pos_x + panel_size_x;
-                       else // push it downwards
-                               myTarget_y = panel_pos_y + panel_size_y;
-               }
-               //if(cvar("hud_configure_checkcollisions_debug"))
-                       //drawfill(panel_pos, panel_size, '1 1 0', .3, DRAWFLAG_NORMAL);
-       }
-
-       return myTarget;
-}
-
-void HUD_Panel_SetPos(vector pos)
-{
-       HUD_Panel_UpdatePosSizeForId(highlightedPanel);
-       vector mySize;
-       mySize = panel_size;
-
-       //if(cvar("hud_configure_checkcollisions_debug"))
-               //drawfill(pos, mySize, '1 1 1', .2, DRAWFLAG_NORMAL);
-
-       if(autocvar_hud_configure_grid)
-       {
-               pos_x = floor((pos_x/vid_conwidth)/bound(0.005, autocvar_hud_configure_grid_xsize, 0.2) + 0.5) * bound(0.005, autocvar_hud_configure_grid_xsize, 0.2) * vid_conwidth;
-               pos_y = floor((pos_y/vid_conheight)/bound(0.005, autocvar_hud_configure_grid_ysize, 0.2) + 0.5) * bound(0.005, autocvar_hud_configure_grid_ysize, 0.2) * vid_conheight;
-       }
-
-       if(hud_configure_checkcollisions)
-               pos = HUD_Panel_CheckMove(pos, mySize);
-
-       pos_x = bound(0, pos_x, vid_conwidth - mySize_x);
-       pos_y = bound(0, pos_y, vid_conheight - mySize_y);
-
-       string s;
-       s = strcat(ftos(pos_x/vid_conwidth), " ", ftos(pos_y/vid_conheight));
-
-       HUD_Panel_GetName(highlightedPanel);
-       cvar_set(strcat("hud_panel_", panel_name, "_pos"), s);
-}
-
-// check if resize will result in panel being moved into another panel. If so, return snapped vector, otherwise return the given vector
-vector HUD_Panel_CheckResize(vector mySize, vector resizeorigin) {
-       float i;
-
-       vector targEndPos;
-
-       float dist_x, dist_y;
-       float ratio;
-       ratio = mySize_x/mySize_y;
-
-       for (i = 0; i < HUD_PANEL_NUM; ++i) {
-               if(i == highlightedPanel || !panel_enabled)
-                       continue;
-
-               HUD_Panel_UpdatePosSizeForId(i);
-
-               panel_pos -= '1 1 0' * panel_bg_border;
-               panel_size += '2 2 0' * panel_bg_border;
-
-               targEndPos = panel_pos + panel_size;
-
-               // resizeorigin is WITHIN target panel, just abort any collision testing against that particular panel to produce expected behaviour!
-               if(resizeorigin_x > panel_pos_x && resizeorigin_x < targEndPos_x && resizeorigin_y > panel_pos_y && resizeorigin_y < targEndPos_y)
-                       continue;
-
-               if (resizeCorner == 1)
-               {
-                       // check if this panel is on our way
-                       if (resizeorigin_x <= panel_pos_x)
-                               continue;
-                       if (resizeorigin_y <= panel_pos_y)
-                               continue;
-                       if (targEndPos_x <= resizeorigin_x - mySize_x)
-                               continue;
-                       if (targEndPos_y <= resizeorigin_y - mySize_y)
-                               continue;
-
-                       // there is a collision:
-                       // detect which side of the panel we are facing is actually limiting the resizing
-                       // (which side the resize direction finds for first) and reduce the size up to there
-                       //
-                       // dist is the distance between resizeorigin and the "analogous" point of the panel
-                       // in this case resizeorigin (bottom-right point) and the bottom-right point of the panel
-                       dist_x = resizeorigin_x - targEndPos_x;
-                       dist_y = resizeorigin_y - targEndPos_y;
-                       if (dist_y <= 0 || dist_x / dist_y > ratio)
-                               mySize_x = min(mySize_x, dist_x);
-                       else
-                               mySize_y = min(mySize_y, dist_y);
-               }
-               else if (resizeCorner == 2)
-               {
-                       if (resizeorigin_x >= targEndPos_x)
-                               continue;
-                       if (resizeorigin_y <= panel_pos_y)
-                               continue;
-                       if (panel_pos_x >= resizeorigin_x + mySize_x)
-                               continue;
-                       if (targEndPos_y <= resizeorigin_y - mySize_y)
-                               continue;
-
-                       dist_x = panel_pos_x - resizeorigin_x;
-                       dist_y = resizeorigin_y - targEndPos_y;
-                       if (dist_y <= 0 || dist_x / dist_y > ratio)
-                               mySize_x = min(mySize_x, dist_x);
-                       else
-                               mySize_y = min(mySize_y, dist_y);
+                       pic = "gfx/hud/default/progressbar_vertical";
                }
-               else if (resizeCorner == 3)
-               {
-                       if (resizeorigin_x <= panel_pos_x)
-                               continue;
-                       if (resizeorigin_y >= targEndPos_y)
-                               continue;
-                       if (targEndPos_x <= resizeorigin_x - mySize_x)
-                               continue;
-                       if (panel_pos_y >= resizeorigin_y + mySize_y)
-                               continue;
 
-                       dist_x = resizeorigin_x - targEndPos_x;
-                       dist_y = panel_pos_y - resizeorigin_y;
-                       if (dist_y <= 0 || dist_x / dist_y > ratio)
-                               mySize_x = min(mySize_x, dist_x);
-                       else
-                               mySize_y = min(mySize_y, dist_y);
-               }
-               else if (resizeCorner == 4)
+        if (baralign == 1) // bottom align
+                       theOrigin_y += (1 - length_ratio) * theSize_y;
+        else if (baralign == 2) // center align
+            theOrigin_y += 0.5 * (1 - length_ratio) * theSize_y;
+        else if (baralign == 3) // center align, positive values down, negative up
                {
-                       if (resizeorigin_x >= targEndPos_x)
-                               continue;
-                       if (resizeorigin_y >= targEndPos_y)
-                               continue;
-                       if (panel_pos_x >= resizeorigin_x + mySize_x)
-                               continue;
-                       if (panel_pos_y >= resizeorigin_y + mySize_y)
-                               continue;
-
-                       dist_x = panel_pos_x - resizeorigin_x;
-                       dist_y = panel_pos_y - resizeorigin_y;
-                       if (dist_y <= 0 || dist_x / dist_y > ratio)
-                               mySize_x = min(mySize_x, dist_x);
+                       theSize_y *= 0.5;
+                       if (length_ratio > 0)
+                               theOrigin_y += theSize_y;
                        else
-                               mySize_y = min(mySize_y, dist_y);
+                       {
+                               theOrigin_y += (1 + length_ratio) * theSize_y;
+                               length_ratio = -length_ratio;
+                       }
                }
-               //if(cvar("hud_configure_checkcollisions_debug"))
-                       //drawfill(panel_pos, panel_size, '1 1 0', .3, DRAWFLAG_NORMAL);
-       }
-
-       return mySize;
-}
-
-void HUD_Panel_SetPosSize(vector mySize)
-{
-       HUD_Panel_UpdatePosSizeForId(highlightedPanel);
-       vector resizeorigin;
-       resizeorigin = panel_click_resizeorigin;
-       vector myPos;
-
-       // minimum panel size cap
-       mySize_x = max(0.025 * vid_conwidth, mySize_x);
-       mySize_y = max(0.025 * vid_conheight, mySize_y);
-
-       if(highlightedPanel == HUD_PANEL_CHAT) // some panels have their own restrictions, like the chat panel (which actually only moves the engine chat print around). Looks bad if it's too small.
-       {
-               mySize_x = max(17 * autocvar_con_chatsize, mySize_x);
-               mySize_y = max(2 * autocvar_con_chatsize + 2 * panel_bg_padding, mySize_y);
-       }
-
-       // collision testing|
-       // -----------------+
-
-       // we need to know pos at this stage, but it might still change later if we hit a screen edge/other panel (?)
-       if(resizeCorner == 1) {
-               myPos_x = resizeorigin_x - mySize_x;
-               myPos_y = resizeorigin_y - mySize_y;
-       } else if(resizeCorner == 2) {
-               myPos_x = resizeorigin_x;
-               myPos_y = resizeorigin_y - mySize_y;
-       } else if(resizeCorner == 3) {
-               myPos_x = resizeorigin_x - mySize_x;
-               myPos_y = resizeorigin_y;
-       } else { // resizeCorner == 4
-               myPos_x = resizeorigin_x;
-               myPos_y = resizeorigin_y;
-       }
-
-       // left/top screen edges
-       if(myPos_x < 0)
-               mySize_x = mySize_x + myPos_x;
-       if(myPos_y < 0)
-               mySize_y = mySize_y + myPos_y;
-
-       // bottom/right screen edges
-       if(myPos_x + mySize_x > vid_conwidth)
-               mySize_x = vid_conwidth - myPos_x;
-       if(myPos_y + mySize_y > vid_conheight)
-               mySize_y = vid_conheight - myPos_y;
-
-       //if(cvar("hud_configure_checkcollisions_debug"))
-               //drawfill(myPos, mySize, '1 1 1', .2, DRAWFLAG_NORMAL);
-
-       // before checkresize, otherwise panel can be snapped partially inside another panel or panel aspect ratio can be broken
-       if(autocvar_hud_configure_grid)
-       {
-               mySize_x = floor((mySize_x/vid_conwidth)/bound(0.005, autocvar_hud_configure_grid_xsize, 0.2) + 0.5) * bound(0.005, autocvar_hud_configure_grid_xsize, 0.2) * vid_conwidth;
-               mySize_y = floor((mySize_y/vid_conheight)/bound(0.005, autocvar_hud_configure_grid_ysize, 0.2) + 0.5) * bound(0.005, autocvar_hud_configure_grid_ysize, 0.2) * vid_conheight;
-       }
-
-       if(hud_configure_checkcollisions)
-               mySize = HUD_Panel_CheckResize(mySize, resizeorigin);
-
-       // minimum panel size cap, do this once more so we NEVER EVER EVER have a panel smaller than this, JUST IN CASE above code still makes the panel eg negative (impossible to resize back without changing cvars manually then)
-       mySize_x = max(0.025 * vid_conwidth, mySize_x);
-       mySize_y = max(0.025 * vid_conheight, mySize_y);
-
-       // do another pos check, as size might have changed by now
-       if(resizeCorner == 1) {
-               myPos_x = resizeorigin_x - mySize_x;
-               myPos_y = resizeorigin_y - mySize_y;
-       } else if(resizeCorner == 2) {
-               myPos_x = resizeorigin_x;
-               myPos_y = resizeorigin_y - mySize_y;
-       } else if(resizeCorner == 3) {
-               myPos_x = resizeorigin_x - mySize_x;
-               myPos_y = resizeorigin_y;
-       } else { // resizeCorner == 4
-               myPos_x = resizeorigin_x;
-               myPos_y = resizeorigin_y;
-       }
-
-       //if(cvar("hud_configure_checkcollisions_debug"))
-               //drawfill(myPos, mySize, '0 1 0', .3, DRAWFLAG_NORMAL);
-
-       HUD_Panel_GetName(highlightedPanel);
-       string s;
-       s = strcat(ftos(mySize_x/vid_conwidth), " ", ftos(mySize_y/vid_conheight));
-       cvar_set(strcat("hud_panel_", panel_name, "_size"), s);
+               theSize_y *= length_ratio;
 
-       s = strcat(ftos(myPos_x/vid_conwidth), " ", ftos(myPos_y/vid_conheight));
-       cvar_set(strcat("hud_panel_", panel_name, "_pos"), s);
-}
-
-float mouseClicked;
-float prevMouseClicked; // previous state
-float prevMouseClickedTime; // time during previous mouse click, to check for doubleclicks
-vector prevMouseClickedPos; // pos during previous mouse click, to check for doubleclicks
-
-float pressed_key_time;
-void HUD_Panel_Arrow_Action(float nPrimary)
-{
-       if (highlightedPanel_prev == -1 || mouseClicked)
-               return;
-
-       hud_configure_checkcollisions = (!(hudShiftState & S_CTRL) && autocvar_hud_configure_checkcollisions);
-
-       float step;
-       if(autocvar_hud_configure_grid)
-       {
-               if (nPrimary == K_UPARROW || nPrimary == K_DOWNARROW)
+               vector bH;
+               width = eX * theSize_x;
+               height = eY * theSize_y;
+               if(theSize_y <= theSize_x * 2)
                {
-                       if (hudShiftState & S_SHIFT)
-                               step = bound(0.005, autocvar_hud_configure_grid_ysize, 0.2) * vid_conheight;
-                       else
-                               step = 2 * bound(0.005, autocvar_hud_configure_grid_ysize, 0.2) * vid_conheight;
+                       // button not high enough
+                       // draw just upper and lower part then
+                       square = eY * theSize_y * 0.5;
+                       bH = eY * (0.25 * theSize_y / (theSize_x * 2));
+                       drawsubpic(theOrigin,          square + width, pic, '0 0 0', eX + bH, theColor, theAlpha, drawflag);
+                       drawsubpic(theOrigin + square, square + width, pic, eY - bH, eX + bH, theColor, theAlpha, drawflag);
                }
                else
                {
-                       if (hudShiftState & S_SHIFT)
-                               step = bound(0.005, autocvar_hud_configure_grid_xsize, 0.2) * vid_conwidth;
-                       else
-                               step = 2 * bound(0.005, autocvar_hud_configure_grid_xsize, 0.2) * vid_conwidth;
+                       square = eY * theSize_x;
+                       drawsubpic(theOrigin,                   width   +     square, pic, '0 0    0', '1 0.25 0', theColor, theAlpha, drawflag);
+                       drawsubpic(theOrigin +          square, theSize - 2 * square, pic, '0 0.25 0', '1 0.5  0', theColor, theAlpha, drawflag);
+                       drawsubpic(theOrigin + height - square, width   +     square, pic, '0 0.75 0', '1 0.25 0', theColor, theAlpha, drawflag);
                }
-       }
-       else
-       {
-               if (nPrimary == K_UPARROW || nPrimary == K_DOWNARROW)
-                       step = vid_conheight;
-               else
-                       step = vid_conwidth;
-               if (hudShiftState & S_SHIFT)
-                       step = (step / 256); // more precision
-               else
-                       step = (step / 64) * (1 + 2 * (time - pressed_key_time));
-       }
-
-       highlightedPanel = highlightedPanel_prev;
-
-       HUD_Panel_UpdatePosSizeForId(highlightedPanel);
-
-       vector prev_pos, prev_size;
-       prev_pos = panel_pos;
-       prev_size = panel_size;
-
-       if (hudShiftState & S_ALT) // resize
-       {
-               highlightedAction = 1;
-               if(nPrimary == K_UPARROW)
-                       resizeCorner = 1;
-               else if(nPrimary == K_RIGHTARROW)
-                       resizeCorner = 2;
-               else if(nPrimary == K_LEFTARROW)
-                       resizeCorner = 3;
-               else // if(nPrimary == K_DOWNARROW)
-                       resizeCorner = 4;
-
-               // ctrl+arrow reduces the size, instead of increasing it
-               // Note that ctrl disables collisions check too, but it's fine
-               // since we don't collide with anything reducing the size
-               if (hudShiftState & S_CTRL) {
-                       step = -step;
-                       resizeCorner = 5 - resizeCorner;
-               }
-
-               vector mySize;
-               mySize = panel_size;
-               panel_click_resizeorigin = panel_pos;
-               if(resizeCorner == 1) {
-                       panel_click_resizeorigin += mySize;
-                       mySize_y += step;
-               } else if(resizeCorner == 2) {
-                       panel_click_resizeorigin_y += mySize_y;
-                       mySize_x += step;
-               } else if(resizeCorner == 3) {
-                       panel_click_resizeorigin_x += mySize_x;
-                       mySize_x += step;
-               } else { // resizeCorner == 4
-                       mySize_y += step;
-               }
-               HUD_Panel_SetPosSize(mySize);
-       }
-       else // move
-       {
-               highlightedAction = 2;
-               vector pos;
-               pos = panel_pos;
-               if(nPrimary == K_UPARROW)
-                       pos_y -= step;
-               else if(nPrimary == K_DOWNARROW)
-                       pos_y += step;
-               else if(nPrimary == K_LEFTARROW)
-                       pos_x -= step;
-               else // if(nPrimary == K_RIGHTARROW)
-                       pos_x += step;
-
-               HUD_Panel_SetPos(pos);
-       }
-
-       HUD_Panel_UpdatePosSizeForId(highlightedPanel);
-
-       if (prev_pos != panel_pos || prev_size != panel_size)
-       {
-               // backup!
-               panel_pos_backup = prev_pos;
-               panel_size_backup = prev_size;
-               highlightedPanel_backup = highlightedPanel;
-       }
-}
-
-float HUD_Panel_InputEvent(float bInputType, float nPrimary, float nSecondary)
-{
-       string s;
-
-       if(!autocvar__hud_configure)
-               return false;
-
-       // allow console bind to work
-       string con_keys;
-       float keys;
-       con_keys = findkeysforcommand("toggleconsole");
-       keys = tokenize(con_keys);
-
-       float hit_con_bind, i;
-       for (i = 0; i < keys; ++i)
-       {
-               if(nPrimary == stof(argv(i)))
-                       hit_con_bind = 1;
-       }
-
-       if(bInputType == 0) {
-               if(nPrimary == K_ALT) hudShiftState |= S_ALT;
-               if(nPrimary == K_CTRL) hudShiftState |= S_CTRL;
-               if(nPrimary == K_SHIFT) hudShiftState |= S_SHIFT;
-       }
-       else if(bInputType == 1) {
-               if(nPrimary == K_ALT) hudShiftState -= (hudShiftState & S_ALT);
-               if(nPrimary == K_CTRL) hudShiftState -= (hudShiftState & S_CTRL);
-               if(nPrimary == K_SHIFT) hudShiftState -= (hudShiftState & S_SHIFT);
-       }
-
-       if(nPrimary == K_MOUSE1)
-       {
-               if(bInputType == 0) { // key pressed
-                       mouseClicked = 1;
-                       return true;
-               }
-               else if(bInputType == 1) {// key released
-                       mouseClicked = 0;
-                       return true;
+       } else {
+               pic = strcat(hud_skin_path, "/", pic);
+               if(precache_pic(pic) == "") {
+                       pic = "gfx/hud/default/progressbar";
                }
-       }
-       else if(nPrimary == K_ESCAPE)
-       {
-               if (bInputType == 1)
-                       return true;
-               menu_enabled = 1;
-               menu_enabled_time = time;
-               localcmd("menu_showhudexit\n");
-       }
-       else if(hudShiftState & S_CTRL)
-       {
-               if (mouseClicked)
-                       return true;
 
-               if(nPrimary == K_SPACE) // enable/disable highlighted panel or dock
+               if (baralign == 1) // right align
+                       theOrigin_x += (1 - length_ratio) * theSize_x;
+        else if (baralign == 2) // center align
+            theOrigin_x += 0.5 * (1 - length_ratio) * theSize_x;
+        else if (baralign == 3) // center align, positive values on the right, negative on the left
                {
-                       if (bInputType == 1)
-                               return true;
-
-                       if (highlightedPanel_prev != -1)
-                               cvar_set(strcat("hud_panel_", panel_name), ftos(!(panel_enabled)));
+                       theSize_x *= 0.5;
+                       if (length_ratio > 0)
+                               theOrigin_x += theSize_x;
                        else
-                               cvar_set(strcat("hud_dock"), (autocvar_hud_dock == "") ? "dock" : "");
-               }
-               if(nPrimary == 'c') // copy highlighted panel size
-               {
-                       if (bInputType == 1)
-                               return true;
-
-                       if (highlightedPanel_prev != -1)
-                       {
-                               panel_size_copied = panel_size;
-                               highlightedPanel_copied = highlightedPanel_prev;
-                       }
-               }
-               else if(nPrimary == 'v') // past copied size on the highlighted panel
-               {
-                       if (bInputType == 1)
-                               return true;
-
-                       if (highlightedPanel_copied == -1 || highlightedPanel_prev == -1)
-                               return true;
-
-                       HUD_Panel_UpdatePosSizeForId(highlightedPanel_prev);
-
-                       // reduce size if it'd go beyond screen boundaries
-                       vector tmp_size = panel_size_copied;
-                       if (panel_pos_x + panel_size_copied_x > vid_conwidth)
-                               tmp_size_x = vid_conwidth - panel_pos_x;
-                       if (panel_pos_y + panel_size_copied_y > vid_conheight)
-                               tmp_size_y = vid_conheight - panel_pos_y;
-
-                       if (panel_size == tmp_size)
-                               return true;
-
-                       // backup first!
-                       panel_pos_backup = panel_pos;
-                       panel_size_backup = panel_size;
-                       highlightedPanel_backup = highlightedPanel_prev;
-
-                       s = strcat(ftos(tmp_size_x/vid_conwidth), " ", ftos(tmp_size_y/vid_conheight));
-                       cvar_set(strcat("hud_panel_", panel_name, "_size"), s);
-               }
-               else if(nPrimary == 'z') // undo last action
-               {
-                       if (bInputType == 1)
-                               return true;
-                       //restore previous values
-                       if (highlightedPanel_backup != -1)
                        {
-                               HUD_Panel_GetName(highlightedPanel_backup);
-                               s = strcat(ftos(panel_pos_backup_x/vid_conwidth), " ", ftos(panel_pos_backup_y/vid_conheight));
-                               cvar_set(strcat("hud_panel_", panel_name, "_pos"), s);
-                               s = strcat(ftos(panel_size_backup_x/vid_conwidth), " ", ftos(panel_size_backup_y/vid_conheight));
-                               cvar_set(strcat("hud_panel_", panel_name, "_size"), s);
-                               highlightedPanel_backup = -1;
+                               theOrigin_x += (1 + length_ratio) * theSize_x;
+                               length_ratio = -length_ratio;
                        }
                }
-       }
-       else if(nPrimary == K_UPARROW || nPrimary == K_DOWNARROW || nPrimary == K_LEFTARROW || nPrimary == K_RIGHTARROW)
-       {
-               if (bInputType == 1)
-               {
-                       pressed_key_time = 0;
-                       return true;
-               }
-               else if (pressed_key_time == 0)
-                       pressed_key_time = time;
-
-               HUD_Panel_Arrow_Action(nPrimary); //move or resize panel
-       }
-       else if(hit_con_bind)
-               return false;
-
-       return true; // Suppress ALL other input
-}
-
-float HUD_Panel_HighlightCheck()
-{
-       float i, j, border;
-       vector panelPos;
-       vector panelSize;
-
-       while(j <= HUD_PANEL_NUM)
-       {
-               i = panel_order[j];
-               j += 1;
-
-               HUD_Panel_UpdatePosSizeForId(i);
-
-               panelPos = panel_pos;
-               panelSize = panel_size;
-               border = max(8, panel_bg_border); // FORCED border so a small border size doesn't mean you can't resize
-
-               // move
-               if(mousepos_x >= panelPos_x && mousepos_y >= panelPos_y && mousepos_x <= panelPos_x + panelSize_x && mousepos_y <= panelPos_y + panelSize_y)
-               {
-                       return 1;
-               }
-               // resize from topleft border
-               else if(mousepos_x >= panelPos_x - border && mousepos_y >= panelPos_y - border && mousepos_x <= panelPos_x + 0.5 * panelSize_x && mousepos_y <= panelPos_y + 0.5 * panelSize_y)
-               {
-                       return 2;
-               }
-               // resize from topright border
-               else if(mousepos_x >= panelPos_x + 0.5 * panelSize_x && mousepos_y >= panelPos_y - border && mousepos_x <= panelPos_x + panelSize_x + border && mousepos_y <= panelPos_y + 0.5 * panelSize_y)
-               {
-                       return 3;
-               }
-               // resize from bottomleft border
-               else if(mousepos_x >= panelPos_x - border && mousepos_y >= panelPos_y + 0.5 * panelSize_y && mousepos_x <= panelPos_x + 0.5 * panelSize_x && mousepos_y <= panelPos_y + panelSize_y + border)
-               {
-                       return 3;
-               }
-               // resize from bottomright border
-               else if(mousepos_x >= panelPos_x + 0.5 * panelSize_x && mousepos_y >= panelPos_y + 0.5 * panelSize_y && mousepos_x <= panelPos_x + panelSize_x + border && mousepos_y <= panelPos_y + panelSize_y + border)
-               {
-                       return 2;
-               }
-       }
-       return 0;
-}
+               theSize_x *= length_ratio;
 
-// move a panel to the beginning of the panel order array (which means it gets drawn last, on top of everything else)
-void HUD_Panel_FirstInDrawQ(float id)
-{
-       float i;
-       var float place = -1;
-       // find out where in the array our current id is, save into place
-       for(i = 0; i < HUD_PANEL_NUM; ++i)
-       {
-               if(panel_order[i] == id)
-               {
-                       place = i;
-                       break;
-               }
-       }
-       // place last if we didn't find a place for it yet (probably new panel, or screwed up cvar)
-       if(place == -1)
-               place = HUD_PANEL_NUM - 1;
-
-       // move all ids up by one step in the array until "place"
-       for(i = place; i > 0; --i)
-       {
-               panel_order[i] = panel_order[i-1];
-       }
-       // now save the new top id
-       panel_order[0] = id;
-       
-       // let's save them into the cvar by some strcat trickery
-       string s;
-       for(i = 0; i < HUD_PANEL_NUM; ++i)
-       {
-               s = strcat(s, ftos(panel_order[i]), " ");
-       }
-       cvar_set("_hud_panelorder", s);
-       if(hud_panelorder_prev)
-               strunzone(hud_panelorder_prev);
-       hud_panelorder_prev = strzone(autocvar__hud_panelorder); // prevent HUD_Main from doing useless update, we already updated here
-}
-
-void HUD_Panel_Highlight()
-{
-       float i, j, border;
-       vector panelPos;
-       vector panelSize;
-
-       while(j <= HUD_PANEL_NUM)
-       {
-               i = panel_order[j];
-               j += 1;
-
-               HUD_Panel_UpdatePosSizeForId(i);
-
-               panelPos = panel_pos;
-               panelSize = panel_size;
-               border = max(8, panel_bg_border); // FORCED border so a small border size doesn't mean you can't resize
-
-               // move
-               if(mousepos_x >= panelPos_x && mousepos_y >= panelPos_y && mousepos_x <= panelPos_x + panelSize_x && mousepos_y <= panelPos_y + panelSize_y)
+               vector bW;
+               width = eX * theSize_x;
+               height = eY * theSize_y;
+               if(theSize_x <= theSize_y * 2)
                {
-                       highlightedPanel = i;
-                       HUD_Panel_FirstInDrawQ(i);
-                       highlightedAction = 1;
-                       panel_click_distance = mousepos - panelPos;
-                       return;
-               }
-               // resize from topleft border
-               else if(mousepos_x >= panelPos_x - border && mousepos_y >= panelPos_y - border && mousepos_x <= panelPos_x + 0.5 * panelSize_x && mousepos_y <= panelPos_y + 0.5 * panelSize_y)
-               {
-                       highlightedPanel = i;
-                       HUD_Panel_FirstInDrawQ(i);
-                       highlightedAction = 2;
-                       resizeCorner = 1;
-                       panel_click_distance = mousepos - panelPos;
-                       panel_click_resizeorigin = panelPos + panelSize;
-                       return;
-               }
-               // resize from topright border
-               else if(mousepos_x >= panelPos_x + 0.5 * panelSize_x && mousepos_y >= panelPos_y - border && mousepos_x <= panelPos_x + panelSize_x + border && mousepos_y <= panelPos_y + 0.5 * panelSize_y)
-               {
-                       highlightedPanel = i;
-                       HUD_Panel_FirstInDrawQ(i);
-                       highlightedAction = 2;
-                       resizeCorner = 2;
-                       panel_click_distance_x = panelSize_x - mousepos_x + panelPos_x;
-                       panel_click_distance_y = mousepos_y - panelPos_y;
-                       panel_click_resizeorigin = panelPos + eY * panelSize_y;
-                       return;
-               }
-               // resize from bottomleft border
-               else if(mousepos_x >= panelPos_x - border && mousepos_y >= panelPos_y + 0.5 * panelSize_y && mousepos_x <= panelPos_x + 0.5 * panelSize_x && mousepos_y <= panelPos_y + panelSize_y + border)
-               {
-                       highlightedPanel = i;
-                       HUD_Panel_FirstInDrawQ(i);
-                       highlightedAction = 2;
-                       resizeCorner = 3;
-                       panel_click_distance_x = mousepos_x - panelPos_x;
-                       panel_click_distance_y = panelSize_y - mousepos_y + panelPos_y;
-                       panel_click_resizeorigin = panelPos + eX * panelSize_x;
-                       return;
-               }
-               // resize from bottomright border
-               else if(mousepos_x >= panelPos_x + 0.5 * panelSize_x && mousepos_y >= panelPos_y + 0.5 * panelSize_y && mousepos_x <= panelPos_x + panelSize_x + border && mousepos_y <= panelPos_y + panelSize_y + border)
-               {
-                       highlightedPanel = i;
-                       HUD_Panel_FirstInDrawQ(i);
-                       highlightedAction = 2;
-                       resizeCorner = 4;
-                       panel_click_distance = panelSize - mousepos + panelPos;
-                       panel_click_resizeorigin = panelPos;
-                       return;
+                       // button not wide enough
+                       // draw just left and right part then
+                       square = eX * theSize_x * 0.5;
+                       bW = eX * (0.25 * theSize_x / (theSize_y * 2));
+                       drawsubpic(theOrigin,          square + height, pic, '0 0 0', eY + bW, theColor, theAlpha, drawflag);
+                       drawsubpic(theOrigin + square, square + height, pic, eX - bW, eY + bW, theColor, theAlpha, drawflag);
                }
                else
                {
-                       highlightedPanel_prev = -1;
+                       square = eX * theSize_y;
+                       drawsubpic(theOrigin,                  height  +     square, pic, '0    0 0', '0.25 1 0', theColor, theAlpha, drawflag);
+                       drawsubpic(theOrigin +         square, theSize - 2 * square, pic, '0.25 0 0', '0.5  1 0', theColor, theAlpha, drawflag);
+                       drawsubpic(theOrigin + width - square, height  +     square, pic, '0.75 0 0', '0.25 1 0', theColor, theAlpha, drawflag);
                }
        }
 }
 
-float highlightcheck;
-vector prev_pos, prev_size;
-void HUD_Panel_Mouse()
+void HUD_Panel_DrawHighlight(vector pos, vector mySize, vector color, float alpha, float drawflag)
 {
-       // TODO: needs better check... is there any float that contains the current state of the menu? _menu_alpha isn't apparently updated the frame the menu gets enabled
-       if (autocvar__menu_alpha == 0 && time - menu_enabled_time > 0.5)
-               menu_enabled = 0;
-
-       /*
-       print("menu_enabled: ", ftos(menu_enabled), "\n");
-       print("Highlighted: ", ftos(highlightedPanel), "\n");
-       print("Menu alpha: ", ftos(autocvar__menu_alpha), "\n");
-       */
-
-       // instantly hide the editor cursor if we open the HUDExit dialog
-       // as hud_fade_alpha doesn't decrease to 0 in this case
-       // TODO: find a way to fade the cursor out even in this case
-       if(menu_enabled == 1 || (menu_enabled == 2 && !hud_fade_alpha))
+       if(!alpha)
                return;
 
-       if(mouseClicked == 0 && menu_enabled != 2 && highlightedPanel >= 0) { // don't reset these variables in menu_enabled mode 2!
-               highlightedPanel = -1;
-               highlightedAction = 0;
-       }
-       if(highlightedPanel != -1)
-               highlightedPanel_prev = highlightedPanel;
-
-       mousepos = mousepos + getmousepos() * autocvar_menu_mouse_speed;
-
-       mousepos_x = bound(0, mousepos_x, vid_conwidth);
-       mousepos_y = bound(0, mousepos_y, vid_conheight);
-
-       if(mouseClicked)
-       {
-               if(prevMouseClicked == 0)
-               {
-                       HUD_Panel_Highlight(); // sets highlightedPanel, highlightedAction, panel_click_distance, panel_click_resizeorigin
-                                                                       // and calls HUD_Panel_UpdatePosSizeForId() for the highlighted panel
-                       prev_pos = panel_pos;
-                       prev_size = panel_size;
-               }
-               else
-                       HUD_Panel_UpdatePosSizeForId(highlightedPanel);
-
-               if (prev_pos != panel_pos || prev_size != panel_size)
-               {
-                       hud_configure_checkcollisions = (!(hudShiftState & S_CTRL) && autocvar_hud_configure_checkcollisions);
-                       // backup!
-                       panel_pos_backup = prev_pos;
-                       panel_size_backup = prev_size;
-                       highlightedPanel_backup = highlightedPanel;
-               }
-               else
-                       // in case the clicked panel is inside another panel and we aren't
-                       // moving it, avoid the immediate "fix" of its position/size
-                       // (often unwanted and hateful) by disabling collisions check
-                       hud_configure_checkcollisions = false;
-
-               if(highlightedAction == 1)
-                       HUD_Panel_SetPos(mousepos - panel_click_distance);
-               else if(highlightedAction == 2)
-               {
-                       vector mySize;
-                       if(resizeCorner == 1) {
-                               mySize_x = panel_click_resizeorigin_x - (mousepos_x - panel_click_distance_x);
-                               mySize_y = panel_click_resizeorigin_y - (mousepos_y - panel_click_distance_y);
-                       } else if(resizeCorner == 2) {
-                               mySize_x = mousepos_x + panel_click_distance_x - panel_click_resizeorigin_x;
-                               mySize_y = panel_click_distance_y + panel_click_resizeorigin_y - mousepos_y;
-                       } else if(resizeCorner == 3) {
-                               mySize_x = panel_click_resizeorigin_x + panel_click_distance_x - mousepos_x;
-                               mySize_y = mousepos_y + panel_click_distance_y - panel_click_resizeorigin_y;
-                       } else { // resizeCorner == 4
-                               mySize_x = mousepos_x - (panel_click_resizeorigin_x - panel_click_distance_x);
-                               mySize_y = mousepos_y - (panel_click_resizeorigin_y - panel_click_distance_y);
-                       }
-                       HUD_Panel_SetPosSize(mySize);
-               }
-
-               // doubleclick check
-               if(time - prevMouseClickedTime < 0.4 && prevMouseClicked == 0 && prevMouseClickedPos == mousepos && highlightedPanel >= 0)
-               {
-                       mouseClicked = 0; // to prevent spam, I guess.
-                       menu_enabled = 2;
-                       menu_enabled_time = time;
-                       HUD_Panel_GetName(highlightedPanel);
-                       localcmd("menu_showhudoptions ", panel_name, "\n");
-                       return;
-               }
-               if(prevMouseClicked == 0)
-               {
-                       prevMouseClickedTime = time;
-                       prevMouseClickedPos = mousepos;
-               }
-       }
-       else
-       {
-               highlightcheck = HUD_Panel_HighlightCheck();
+       string pic;
+       pic = strcat(hud_skin_path, "/num_leading");
+       if(precache_pic(pic) == "") {
+               pic = "gfx/hud/default/num_leading";
        }
-       // draw cursor after performing move/resize to have the panel pos/size updated before highlightcheck
-       vector cursorsize;
-       cursorsize = '32 32 0';
 
-       if(highlightcheck == 0)
-               drawpic(mousepos, strcat("gfx/menu/", autocvar_menu_skin, "/cursor.tga"), '32 32 0', '1 1 1', hud_fade_alpha, DRAWFLAG_NORMAL);
-       else if(highlightcheck == 1)
-               drawpic(mousepos - cursorsize * 0.5, strcat("gfx/menu/", autocvar_menu_skin, "/cursor_move.tga"), '32 32 0', '1 1 1', hud_fade_alpha, DRAWFLAG_NORMAL);
-       else if(highlightcheck == 2)
-               drawpic(mousepos - cursorsize * 0.5, strcat("gfx/menu/", autocvar_menu_skin, "/cursor_resize.tga"), '32 32 0', '1 1 1', hud_fade_alpha, DRAWFLAG_NORMAL);
-       else
-               drawpic(mousepos - cursorsize * 0.5, strcat("gfx/menu/", autocvar_menu_skin, "/cursor_resize2.tga"), '32 32 0', '1 1 1', hud_fade_alpha, DRAWFLAG_NORMAL);
-
-       prevMouseClicked = mouseClicked;
+       drawsubpic(pos, eX * min(mySize_x * 0.5, mySize_y) + eY * mySize_y, pic, '0 0 0', '0.25 1 0', color, alpha, drawflag);
+       if(mySize_x/mySize_y > 2)
+               drawsubpic(pos + eX * mySize_y, eX * (mySize_x - 2 * mySize_y) + eY * mySize_y, pic, '0.25 0 0', '0.5 1 0', color, alpha, drawflag);
+       drawsubpic(pos + eX * mySize_x - eX * min(mySize_x * 0.5, mySize_y), eX * min(mySize_x * 0.5, mySize_y) + eY * mySize_y, pic, '0.75 0 0', '0.25 1 0', color, alpha, drawflag);
 }
 
 // Weapon icons (#0)
 //
-float weaponspace[10];
-#define HUD_Weapons_Clear()\
-       float idx;\
-       for(idx = 0; idx < 10; ++idx)\
-               weaponspace[idx] = 0
-
 entity weaponorder[WEP_MAXCOUNT];
 void weaponorder_swap(float i, float j, entity pass)
 {
@@ -1521,8 +615,13 @@ void HUD_Weapons(void)
        float f, screen_ar;
        float center_x, center_y;
 
-       if(!autocvar_hud_panel_weapons && !autocvar__hud_configure)
-               return;
+       if(!autocvar__hud_configure)
+       {
+               if(!autocvar_hud_panel_weapons) return;
+               if(spectatee_status == -1) return;
+       }
+       else
+               hud_configure_active_panel = HUD_PANEL_WEAPONS;
 
        float timeout = autocvar_hud_panel_weapons_timeout;
        float timeout_effect_length, timein_effect_length;
@@ -1543,18 +642,17 @@ void HUD_Weapons(void)
                return;
        }
 
-       active_panel = HUD_PANEL_WEAPONS;
        HUD_Panel_UpdateCvars(weapons);
 
        if (timeout && time >= weapontime + timeout && !autocvar__hud_configure)
        {
                f = (time - (weapontime + timeout)) / timeout_effect_length;
-               if (autocvar_hud_panel_weapons_timeout_effect)
+               if (autocvar_hud_panel_weapons_timeout_effect == 1 || autocvar_hud_panel_weapons_timeout_effect == 3)
                {
                        panel_bg_alpha *= (1 - f);
                        panel_fg_alpha *= (1 - f);
                }
-               if (autocvar_hud_panel_weapons_timeout_effect == 1)
+               if (autocvar_hud_panel_weapons_timeout_effect == 2 || autocvar_hud_panel_weapons_timeout_effect == 3)
                {
                        f *= f; // for a cooler movement
                        center_x = panel_pos_x + panel_size_x/2;
@@ -1580,12 +678,12 @@ void HUD_Weapons(void)
        else if (timeout && time < weaponprevtime + timein_effect_length && !autocvar__hud_configure)
        {
                f = (time - weaponprevtime) / timein_effect_length;
-               if (autocvar_hud_panel_weapons_timeout_effect)
+               if (autocvar_hud_panel_weapons_timeout_effect == 1 || autocvar_hud_panel_weapons_timeout_effect == 3)
                {
                        panel_bg_alpha *= (f);
                        panel_fg_alpha *= (f);
                }
-               if (autocvar_hud_panel_weapons_timeout_effect == 1)
+               if (autocvar_hud_panel_weapons_timeout_effect == 2 || autocvar_hud_panel_weapons_timeout_effect == 3)
                {
                        f *= f; // for a cooler movement
                        f = 1 - f;
@@ -1610,13 +708,6 @@ void HUD_Weapons(void)
        }
 
        float i, weapid, wpnalpha, weapon_cnt;
-       weapon_cnt = 0;
-       for(i = WEP_FIRST; i <= WEP_LAST; ++i)
-       {
-               self = get_weaponinfo(i);
-               if(self.impulse >= 0)
-                       ++weapon_cnt;
-       }
 
        // TODO make this configurable
        if(weaponorder_bypriority != autocvar_cl_weaponpriority || !weaponorder[0])
@@ -1640,6 +731,8 @@ void HUD_Weapons(void)
                                ++weapon_cnt;
                        }
                }
+               for(i = weapon_cnt; i < WEP_MAXCOUNT; ++i)
+                       weaponorder[i] = NULL;
                heapsort(weapon_cnt, weaponorder_swap, weaponorder_cmp, world);
 
                weaponorder_cmp_str = string_null;
@@ -1660,8 +753,6 @@ void HUD_Weapons(void)
        else
                wpnalpha = panel_fg_alpha;
 
-       HUD_Weapons_Clear();
-
        float rows, columns;
        float aspect = autocvar_hud_panel_weapons_aspect;
        rows = panel_size_y/panel_size_x;
@@ -1680,19 +771,12 @@ void HUD_Weapons(void)
        vector wpnpos;
        vector wpnsize;
        
-       float fullammo_shells, fullammo_nails, fullammo_rockets, fullammo_cells, fullammo_fuel;
        vector ammo_color;
        float ammo_alpha;
        wpnsize = eX * panel_size_x*(1/columns) + eY * panel_size_y*(1/rows);
        float barsize_x, barsize_y, baroffset_x, baroffset_y;
-       float show_ammo = autocvar_hud_panel_weapons_ammo;
-       if (show_ammo)
-       {
-               fullammo_shells = autocvar_hud_panel_weapons_ammo_full_shells;
-               fullammo_nails = autocvar_hud_panel_weapons_ammo_full_nails;
-               fullammo_rockets = autocvar_hud_panel_weapons_ammo_full_rockets;
-               fullammo_cells = autocvar_hud_panel_weapons_ammo_full_cells;
-               fullammo_fuel = autocvar_hud_panel_weapons_ammo_full_fuel;
+       if (autocvar_hud_panel_weapons_ammo)
+       {
                ammo_color = stov(autocvar_hud_panel_weapons_ammo_color);
                ammo_alpha = panel_fg_alpha * autocvar_hud_panel_weapons_ammo_alpha;
 
@@ -1722,13 +806,14 @@ void HUD_Weapons(void)
        }
 
        float weapons_st = getstati(STAT_WEAPONS);
-       float label = autocvar_hud_panel_weapons_label;
 
-       for(i = 0; i < weapon_cnt; ++i)
+       for(i = 0; i <= WEP_LAST-WEP_FIRST; ++i)
        {
+               self = weaponorder[i];
+               if (!self || self.impulse < 0)
+                       continue;
                wpnpos = panel_pos + eX * column * wpnsize_x + eY * row * wpnsize_y;
 
-               self = weaponorder[i];
                weapid = self.impulse;
 
                // draw background behind currently selected weapon
@@ -1758,17 +843,17 @@ void HUD_Weapons(void)
                }
 
                // draw the weapon icon
-               if((weapid >= 0) && (weapons_st & self.weapons))
+               if(weapons_st & self.weapons)
                {
                        drawpic_aspect_skin(wpnpos, strcat("weapon", self.netname), wpnsize, '1 1 1', wpnalpha, DRAWFLAG_NORMAL);
 
-                       if(label == 1) // weapon number
+                       if(autocvar_hud_panel_weapons_label == 1) // weapon number
                                drawstring(wpnpos, ftos(weapid), '1 1 0' * 0.5 * wpnsize_y, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
-                       else if(label == 2) // bind
+                       else if(autocvar_hud_panel_weapons_label == 2) // bind
                                drawstring(wpnpos, getcommandkey(ftos(weapid), strcat("impulse ", ftos(weapid))), '1 1 0' * 0.5 * wpnsize_y, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
 
                        // draw ammo status bar
-                       if(show_ammo && self.weapon != WEP_TUBA && self.weapon != WEP_LASER && self.weapon != WEP_PORTO)
+                       if(autocvar_hud_panel_weapons_ammo && self.weapon != WEP_TUBA && self.weapon != WEP_LASER && self.weapon != WEP_PORTO)
                        {
                                a = 0;
                                type = GetAmmoTypeForWep(self.weapon);
@@ -1778,11 +863,11 @@ void HUD_Weapons(void)
                                if(a > 0)
                                {
                                        switch(type) {
-                                               case 0: fullammo = fullammo_shells; break;
-                                               case 1: fullammo = fullammo_nails; break;
-                                               case 2: fullammo = fullammo_rockets; break;
-                                               case 3: fullammo = fullammo_cells; break;
-                                               case 4: fullammo = fullammo_fuel; break;
+                                               case 0: fullammo = autocvar_hud_panel_weapons_ammo_full_shells; break;
+                                               case 1: fullammo = autocvar_hud_panel_weapons_ammo_full_nails; break;
+                                               case 2: fullammo = autocvar_hud_panel_weapons_ammo_full_rockets; break;
+                                               case 3: fullammo = autocvar_hud_panel_weapons_ammo_full_cells; break;
+                                               case 4: fullammo = autocvar_hud_panel_weapons_ammo_full_fuel; break;
                                                default: fullammo = 60;
                                        }
 
@@ -1884,7 +969,7 @@ void DrawAmmoItem(vector myPos, vector mySize, float itemcode, float currently_s
        if(autocvar__hud_configure)
        {
                currently_selected = (itemcode == 2); //rockets always selected
-               a = 100;
+               a = 31 + mod(itemcode*93, 128);
        }
        else
                a = getstati(GetAmmoStat(itemcode)); // how much ammo do we have of type itemcode?
@@ -1917,7 +1002,7 @@ void DrawAmmoItem(vector myPos, vector mySize, float itemcode, float currently_s
                drawpic_aspect_skin(myPos, "ammo_current_bg", mySize, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
 
     if(a > 0 && autocvar_hud_panel_ammo_progressbar)
-        HUD_Panel_DrawProgressBar(myPos + eX * autocvar_hud_panel_ammo_progressbar_xoffset * mySize_x, mySize - eX * autocvar_hud_panel_ammo_progressbar_xoffset * mySize_x, autocvar_hud_panel_ammo_progressbar_name, 0, 0, min(1, a/autocvar_hud_panel_ammo_maxammo), color, autocvar_hud_progressbar_alpha * panel_fg_alpha * alpha, DRAWFLAG_NORMAL);
+        HUD_Panel_DrawProgressBar(myPos + eX * autocvar_hud_panel_ammo_progressbar_xoffset * mySize_x, mySize - eX * autocvar_hud_panel_ammo_progressbar_xoffset * mySize_x, autocvar_hud_panel_ammo_progressbar_name, a/autocvar_hud_panel_ammo_maxammo, 0, 0, color, autocvar_hud_progressbar_alpha * panel_fg_alpha * alpha, DRAWFLAG_NORMAL);
 
     if(autocvar_hud_panel_ammo_text)
     {
@@ -1934,10 +1019,14 @@ void DrawAmmoItem(vector myPos, vector mySize, float itemcode, float currently_s
 
 void HUD_Ammo(void)
 {
-       if(!autocvar_hud_panel_ammo && !autocvar__hud_configure)
-               return;
+       if(!autocvar__hud_configure)
+       {
+               if(!autocvar_hud_panel_ammo) return;
+               if(spectatee_status == -1) return;
+       }
+       else
+               hud_configure_active_panel = HUD_PANEL_AMMO;
 
-       active_panel = HUD_PANEL_AMMO;
        HUD_Panel_UpdateCvars(ammo);
        vector pos, mySize;
        pos = panel_pos;
@@ -2013,12 +1102,53 @@ void HUD_Ammo(void)
                        column = column + 1;
                }
        }
-}
+}
+
+void DrawNumIcon(vector myPos, vector mySize, float x, string icon, float vertical, float icon_right_align, vector color, float alpha)
+{
+       vector newPos, newSize;
+       vector picpos, numpos;
+
+       if (vertical)
+       {
+               if(mySize_y/mySize_x > 2)
+               {
+                       newSize_y = 2 * mySize_x;
+                       newSize_x = mySize_x;
+
+                       newPos_y = myPos_y + (mySize_y - newSize_y) / 2;
+                       newPos_x = myPos_x;
+               }
+               else
+               {
+                       newSize_x = 1/2 * mySize_y;
+                       newSize_y = mySize_y;
+
+                       newPos_x = myPos_x + (mySize_x - newSize_x) / 2;
+                       newPos_y = myPos_y;
+               }
+
+               if(icon_right_align)
+               {
+                       numpos = newPos;
+                       picpos = newPos + eY * newSize_x;
+               }
+               else
+               {
+                       picpos = newPos;
+                       numpos = newPos + eY * newSize_x;
+               }
+
+               newSize_y /= 2;
+               drawpic_aspect_skin(picpos, icon, newSize, '1 1 1', panel_fg_alpha * alpha, DRAWFLAG_NORMAL);
+               // make number smaller than icon, it looks better
+               // reduce only y to draw numbers with different number of digits with the same y size
+               numpos_y += newSize_y * ((1 - 0.7) / 2);
+               newSize_y *= 0.7;
+               drawstring_aspect(numpos, ftos(x), newSize, color, panel_fg_alpha * alpha, DRAWFLAG_NORMAL);
+               return;
+       }
 
-void DrawNumIcon(float iconalign, vector myPos, vector mySize, float x, string icon, float left, vector color, float alpha)
-{
-       vector newPos;
-       float newSize_x, newSize_y;
        if(mySize_x/mySize_y > 3)
        {
                newSize_x = 3 * mySize_y;
@@ -2036,79 +1166,57 @@ void DrawNumIcon(float iconalign, vector myPos, vector mySize, float x, string i
                newPos_x = myPos_x;
        }
 
-       vector picpos, numpos;
-       if(left)
+       if(icon_right_align) // right align
        {
-               if(iconalign == 1 || iconalign == 3) // right align
-               {
-                       numpos = newPos;
-                       picpos = newPos + eX * 2 * newSize_y;
-               }
-               else // left align
-               {
-                       numpos = newPos + eX * newSize_y;
-                       picpos = newPos;
-               }
+               numpos = newPos;
+               picpos = newPos + eX * 2 * newSize_y;
        }
-       else
+       else // left align
        {
-               if(iconalign == 0 || iconalign == 3) // left align
-               {
-                       numpos = newPos + eX * newSize_y;
-                       picpos = newPos;
-               } 
-               else // right align
-               {
-                       numpos = newPos;
-                       picpos = newPos + eX * 2 * newSize_y;
-               }
+               numpos = newPos + eX * newSize_y;
+               picpos = newPos;
        }
 
-       drawstring_aspect(numpos, ftos(x), eX * (2/3) * newSize_x + eY * newSize_y, color, panel_fg_alpha * alpha, DRAWFLAG_NORMAL);
+       drawstring_aspect(numpos, ftos(x), '2 1 0' * newSize_y, color, panel_fg_alpha * alpha, DRAWFLAG_NORMAL);
        drawpic_aspect_skin(picpos, icon, '1 1 0' * newSize_y, '1 1 1', panel_fg_alpha * alpha, DRAWFLAG_NORMAL);
 }
 
-void DrawNumIcon_expanding(float iconalign, vector myPos, vector mySize, float x, string icon, float left, vector color, float fadelerp)
+void DrawNumIcon_expanding(vector myPos, vector mySize, float x, string icon, float vertical, float icon_right_align, vector color, float fadelerp)
 {
        float sz;
        sz = expandingbox_sizefactor_from_fadelerp(fadelerp);
 
-       DrawNumIcon(iconalign, myPos + expandingbox_resize_centered_box_offset(sz, mySize, 1), mySize * sz, x, icon, left, color, (1 - fadelerp));
+       DrawNumIcon(myPos + expandingbox_resize_centered_box_offset(sz, mySize, 1), mySize * sz, x, icon, vertical, icon_right_align, color, (1 - fadelerp));
 }
 
 // Powerups (#2)
 //
-void HUD_Powerups(void) {
-       if(!autocvar_hud_panel_powerups && !autocvar__hud_configure)
-               return;
-
+void HUD_Powerups(void)
+{
+       float strength_time, shield_time;
        if(!autocvar__hud_configure)
        {
-               if not(getstati(STAT_ITEMS) & (IT_STRENGTH | IT_INVINCIBLE))
-                       return;
+               if(!autocvar_hud_panel_powerups) return;
+               if(spectatee_status == -1) return;
+               if not(getstati(STAT_ITEMS) & (IT_STRENGTH | IT_INVINCIBLE)) return;
+               if (getstati(STAT_HEALTH) <= 0) return;
 
-               if (getstati(STAT_HEALTH) <= 0)
-                       return;
+               strength_time = bound(0, getstatf(STAT_STRENGTH_FINISHED) - time, 99);
+               shield_time = bound(0, getstatf(STAT_INVINCIBLE_FINISHED) - time, 99);
+       }
+       else
+       {
+               hud_configure_active_panel = HUD_PANEL_POWERUPS;
+
+               strength_time = 15;
+               shield_time = 27;
        }
 
-       active_panel = HUD_PANEL_POWERUPS;
        HUD_Panel_UpdateCvars(powerups);
        vector pos, mySize;
        pos = panel_pos;
        mySize = panel_size;
 
-       float strength_time, shield_time;
-       if(autocvar__hud_configure)
-       {
-               strength_time = 15;
-               shield_time = 27;
-       }
-       else
-       {
-               strength_time = bound(0, getstatf(STAT_STRENGTH_FINISHED) - time, 99);
-               shield_time = bound(0, getstatf(STAT_INVINCIBLE_FINISHED) - time, 99);
-       }
-
        HUD_Panel_DrawBg(bound(0, max(strength_time, shield_time), 1));
        if(panel_bg_padding)
        {
@@ -2116,218 +1224,147 @@ void HUD_Powerups(void) {
                mySize -= '2 2 0' * panel_bg_padding;
        }
 
-       vector barpos, barsize;
-       vector picpos;
-       vector numpos;
-
-       string leftname, rightname;
-    string leftprogressname, rightprogressname;
-       float leftcnt, rightcnt;
-       float leftexact, rightexact;
-       float flip = autocvar_hud_panel_powerups_flip;
-       if (flip) {
-               leftname = "strength";
-        leftprogressname = autocvar_hud_panel_powerups_progressbar_strength;
-               leftcnt = ceil(strength_time);
-               leftexact = strength_time;
-
-               rightname = "shield";
-        rightprogressname = autocvar_hud_panel_powerups_progressbar_shield;
-               rightcnt = ceil(shield_time);
-               rightexact = shield_time;
-       } else {
-               leftname = "shield";
-        leftprogressname = autocvar_hud_panel_powerups_progressbar_shield;
-               leftcnt = ceil(shield_time);
-               leftexact = shield_time;
+       float panel_ar = mySize_x/mySize_y;
+       float is_vertical = (panel_ar < 1);
+       vector shield_offset, strength_offset;
+       if (panel_ar >= 4 || (panel_ar >= 1/4 && panel_ar < 1))
+       {
+               mySize_x *= 0.5;
+               if (autocvar_hud_panel_powerups_flip)
+                       shield_offset_x = mySize_x;
+               else
+                       strength_offset_x = mySize_x;
+       }
+       else
+       {
+               mySize_y *= 0.5;
+               if (autocvar_hud_panel_powerups_flip)
+                       shield_offset_y = mySize_y;
+               else
+                       strength_offset_y = mySize_y;
+       }
 
-               rightname = "strength";
-        rightprogressname = autocvar_hud_panel_powerups_progressbar_strength;
-               rightcnt = ceil(strength_time);
-               rightexact = strength_time;
+       float shield_baralign, strength_baralign;
+       float shield_iconalign, strength_iconalign;
+       if (autocvar_hud_panel_powerups_flip)
+       {
+               strength_baralign = (autocvar_hud_panel_powerups_baralign == 2 || autocvar_hud_panel_powerups_baralign == 1);
+               shield_baralign = (autocvar_hud_panel_powerups_baralign == 3 || autocvar_hud_panel_powerups_baralign == 1);
+               strength_iconalign = (autocvar_hud_panel_powerups_iconalign == 2 || autocvar_hud_panel_powerups_iconalign == 1);
+               shield_iconalign = (autocvar_hud_panel_powerups_iconalign == 3 || autocvar_hud_panel_powerups_iconalign == 1);
+       }
+       else
+       {
+               shield_baralign = (autocvar_hud_panel_powerups_baralign == 2 || autocvar_hud_panel_powerups_baralign == 1);
+               strength_baralign = (autocvar_hud_panel_powerups_baralign == 3 || autocvar_hud_panel_powerups_baralign == 1);
+               shield_iconalign = (autocvar_hud_panel_powerups_iconalign == 2 || autocvar_hud_panel_powerups_iconalign == 1);
+               strength_iconalign = (autocvar_hud_panel_powerups_iconalign == 3 || autocvar_hud_panel_powerups_iconalign == 1);
        }
 
-       float baralign = autocvar_hud_panel_powerups_baralign;
-    float barflip;
-       float iconalign = autocvar_hud_panel_powerups_iconalign;
-       float progressbar = autocvar_hud_panel_powerups_progressbar;
-       if (mySize_x/mySize_y > 4)
+       if(shield_time)
        {
-        barsize = eX * 0.5 * mySize_x + eY * mySize_y;
-               if(leftcnt)
+               const float maxshield = 30;
+               float shield = ceil(shield_time);
+               if(autocvar_hud_panel_powerups_progressbar)
                {
-                       if(baralign == 1 || baralign == 3) { // right align
-                barpos = pos + eX * 0.5 * mySize_x;
-                barflip = 1;
-                       } else { // left align
-                barpos = pos;
-                barflip = 0;
-                       }
-
-                       if(progressbar)
-                       {
-                               HUD_Panel_GetProgressBarColorForString(leftname);
-                               HUD_Panel_DrawProgressBar(barpos, barsize, leftprogressname, 0, barflip, min(1, leftcnt/30), progressbar_color, autocvar_hud_progressbar_alpha * panel_fg_alpha * bound(0, max(strength_time, shield_time), 1), DRAWFLAG_NORMAL);
-                       }
-            if(autocvar_hud_panel_powerups_text)
-            {
-                if(leftcnt > 1)
-                    DrawNumIcon(iconalign, pos, eX * 0.5 * mySize_x + eY * mySize_y, leftcnt, leftname, 1, '1 1 1', 1);
-                if(leftcnt <= 5)
-                    DrawNumIcon_expanding(iconalign, pos, eX * 0.5 * mySize_x + eY * mySize_y, leftcnt, leftname, 1, '1 1 1', bound(0, (leftcnt - leftexact) / 0.5, 1));
-            }
+                       HUD_Panel_GetProgressBarColor(shield);
+                       HUD_Panel_DrawProgressBar(pos + shield_offset, mySize, autocvar_hud_panel_powerups_progressbar_shield, shield/maxshield, is_vertical, shield_baralign, progressbar_color, autocvar_hud_progressbar_alpha * panel_fg_alpha, DRAWFLAG_NORMAL);
                }
-
-               if(rightcnt)
+               if(autocvar_hud_panel_powerups_text)
                {
-                       if(baralign == 0 || baralign == 3) { // left align
-                barpos = pos;
-                barflip = 0;
-                       } else { // right align
-                barpos = pos + eX * 0.5 * mySize_x;
-                barflip = 1;
-                       }
-
-                       if(progressbar)
-                       {
-                               HUD_Panel_GetProgressBarColorForString(rightname);
-                               HUD_Panel_DrawProgressBar(barpos, barsize, rightprogressname, 0, barflip, min(1, rightcnt/30), progressbar_color, autocvar_hud_progressbar_alpha * panel_fg_alpha * bound(0, max(strength_time, shield_time), 1), DRAWFLAG_NORMAL);
-                       }
-            if(autocvar_hud_panel_powerups_text)
-            {
-                if(rightcnt > 1)
-                    DrawNumIcon(iconalign, pos + eX * 0.5 * mySize_x, eX * 0.5 * mySize_x + eY * mySize_y, rightcnt, rightname, 0, '1 1 1', 1);
-                if(rightcnt <= 5)
-                    DrawNumIcon_expanding(iconalign, pos + eX * 0.5 * mySize_x, eX * 0.5 * mySize_x + eY * mySize_y, rightcnt, rightname, 0, '1 1 1', bound(0, (rightcnt - rightexact) / 0.5, 1));
-            }
+                       if(shield > 1)
+                               DrawNumIcon(pos + shield_offset, mySize, shield, "shield", is_vertical, shield_iconalign, '1 1 1', 1);
+                       if(shield <= 5)
+                               DrawNumIcon_expanding(pos + shield_offset, mySize, shield, "shield", is_vertical, shield_iconalign, '1 1 1', bound(0, (shield - shield_time) / 0.5, 1));
                }
        }
-       else if (mySize_x/mySize_y > 1.5)
+
+       if(strength_time)
        {
-        barsize = eX * mySize_x + eY * 0.5 * mySize_y;
-               if(leftcnt)
+               const float maxstrength = 30;
+               float strength = ceil(strength_time);
+               if(autocvar_hud_panel_powerups_progressbar)
                {
-            barpos = pos;
-                       if(baralign == 1 || baralign == 3) { // right/down align
-                barflip = 1;
-                       } else { // left/up align
-                barflip = 0;
-                       }
-
-                       if(progressbar)
-                       {
-                               HUD_Panel_GetProgressBarColorForString(leftname);
-                               HUD_Panel_DrawProgressBar(barpos, barsize, leftprogressname, 0, barflip, min(1, leftcnt/30), progressbar_color, autocvar_hud_progressbar_alpha * panel_fg_alpha * bound(0, max(strength_time, shield_time), 1), DRAWFLAG_NORMAL);
-                       }
-            if(autocvar_hud_panel_powerups_text)
-            {
-                if(leftcnt > 1)
-                    DrawNumIcon(iconalign, pos, eX * mySize_x + eY * 0.5 * mySize_y, leftcnt, leftname, 1, '1 1 1', 1);
-                if(leftcnt <= 5)
-                    DrawNumIcon_expanding(iconalign, pos, eX * mySize_x + eY * 0.5 * mySize_y, leftcnt, leftname, 1, '1 1 1', bound(0, (leftcnt - leftexact) / 0.5, 1));
-            }
+                       HUD_Panel_GetProgressBarColor(strength);
+                       HUD_Panel_DrawProgressBar(pos + strength_offset, mySize, autocvar_hud_panel_powerups_progressbar_strength, strength/maxstrength, is_vertical, strength_baralign, progressbar_color, autocvar_hud_progressbar_alpha * panel_fg_alpha, DRAWFLAG_NORMAL);
                }
-
-               if(rightcnt)
+               if(autocvar_hud_panel_powerups_text)
                {
-            barpos = pos + eY * 0.5 * mySize_y;
-                       if(baralign == 0 || baralign == 3) { // left align
-                barflip = 0;
-                       } else { // right align
-                barflip = 1;
-                       }
-
-                       if(progressbar)
-                       {
-                               HUD_Panel_GetProgressBarColorForString(rightname);
-                               HUD_Panel_DrawProgressBar(barpos, barsize, rightprogressname, 0, barflip, min(1, rightcnt/30), progressbar_color, autocvar_hud_progressbar_alpha * panel_fg_alpha * bound(0, max(strength_time, shield_time), 1), DRAWFLAG_NORMAL);
-                       }
-            if(autocvar_hud_panel_powerups_text)
-            {
-                if(rightcnt > 1)
-                    DrawNumIcon(iconalign, pos + eY * 0.5 * mySize_y, eX * mySize_x + eY * 0.5 * mySize_y, rightcnt, rightname, 0, '1 1 1', 1);
-                if(rightcnt <= 5)
-                    DrawNumIcon_expanding(iconalign, pos + eY * 0.5 * mySize_y, eX * mySize_x + eY * 0.5 * mySize_y, rightcnt, rightname, 0, '1 1 1', bound(0, (rightcnt - rightexact) / 0.5, 1));
-            }
+                       if(strength > 1)
+                               DrawNumIcon(pos + strength_offset, mySize, strength, "strength", is_vertical, strength_iconalign, '1 1 1', 1);
+                       if(strength <= 5)
+                               DrawNumIcon_expanding(pos + strength_offset, mySize, strength, "strength", is_vertical, strength_iconalign, '1 1 1', bound(0, (strength - strength_time) / 0.5, 1));
                }
        }
-       else
-       {
-        barsize = eX * 0.5 * mySize_x + eY * mySize_y;
-               if(leftcnt)
-               {
-            barpos = pos;
-                       if(baralign == 1 || baralign == 3) { // down align
-                barflip = 1;
-                       } else { // up align
-                barflip = 0;
-                       }
+}
 
-                       if(iconalign == 1 || iconalign == 3) { // down align
-                               picpos = pos + eX * 0.05 * mySize_x + eY * (mySize_y - 0.65 * mySize_x);
-                               numpos = pos + eY * mySize_y - eY * 0.25 * mySize_x;
-                       } else { // up align
-                               picpos = pos + eX * 0.05 * mySize_x;
-                               numpos = pos + eY * 0.4 * mySize_x;
-                       }
+// Health/armor (#3)
+//
 
-                       if(progressbar)
-                       {
-                               HUD_Panel_GetProgressBarColorForString(leftname);
-                               HUD_Panel_DrawProgressBar(barpos, barsize, leftprogressname, 1, barflip, min(1, leftcnt/30), progressbar_color, autocvar_hud_progressbar_alpha * panel_fg_alpha * bound(0, max(strength_time, shield_time), 1), DRAWFLAG_NORMAL);
-                       }
-            if(autocvar_hud_panel_powerups_text)
-            {
-                if(leftcnt <= 5)
-                    drawpic_aspect_skin_expanding(picpos, leftname, '0.4 0.4 0' * mySize_x, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL, bound(0, (leftcnt - leftexact) / 0.5, 1));
-                if(leftcnt > 1)
-                    drawpic_aspect_skin(picpos, leftname, '0.4 0.4 0' * mySize_x, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
-                drawstring_aspect(numpos, ftos(leftcnt), eX * 0.5 * mySize_x + eY * 0.25 * mySize_x, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
-            }
-               }
+// prev_* vars contain the health/armor at the previous FRAME
+// set to -1 when player is dead or was not playing
+float prev_health, prev_armor;
+float health_damagetime, armor_damagetime;
+float health_beforedamage, armor_beforedamage;
+// old_p_* vars keep track of previous values when smoothing value changes of the progressbar
+float old_p_health, old_p_armor;
+float old_p_healthtime, old_p_armortime;
+// prev_p_* vars contain the health/armor progressbar value at the previous FRAME
+// set to -1 to forcedly stop effects when we switch spectated player (e.g. from playerX: 70h to playerY: 50h)
+float prev_p_health, prev_p_armor;
+
+void HUD_HealthArmor(void)
+{
+       float armor, health, fuel;
+       if(!autocvar__hud_configure)
+       {
+               if(!autocvar_hud_panel_healtharmor) return;
+               if(spectatee_status == -1) return;
 
-               if(rightcnt)
+               health = getstati(STAT_HEALTH);
+               if(health <= 0)
                {
-            barpos = pos + eX * 0.5 * mySize_x;
-                       if(baralign == 0 || baralign == 3) { // down align
-                barflip = 1;
-                       } else { // up align
-                barflip = 0;
-                       }
+                       prev_health = -1;
+                       return;
+               }
+               armor = getstati(STAT_ARMOR);
 
-                       if(iconalign == 0 || iconalign == 3) { // up align
-                               picpos = pos + eX * 0.05 * mySize_x + eX * 0.5 * mySize_x;
-                               numpos = pos + eY * 0.4 * mySize_x + eX * 0.5 * mySize_x;
-                       } else { // down align
-                               picpos = pos + eX * 0.05 * mySize_x + eY * (mySize_y - 0.65 * mySize_x) + eX * 0.5 * mySize_x;
-                               numpos = pos + eY * mySize_y - eY * 0.25 * mySize_x + eX * 0.5 * mySize_x;
-                       }
+               // code to check for spectatee_status changes is in Ent_ClientData()
+               // prev_p_health and prev_health can be set to -1 there
 
-                       if(progressbar)
-                       {
-                               HUD_Panel_GetProgressBarColorForString(rightname);
-                               HUD_Panel_DrawProgressBar(barpos, barsize, rightprogressname, 1, barflip, min(1, rightcnt/30), progressbar_color, autocvar_hud_progressbar_alpha * panel_fg_alpha * bound(0, max(strength_time, shield_time), 1), DRAWFLAG_NORMAL);
-                       }
-            if(autocvar_hud_panel_powerups_text)
-            {
-                if(rightcnt <= 5)
-                    drawpic_aspect_skin_expanding(picpos, rightname, '0.4 0.4 0' * mySize_x, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL, bound(0, (rightcnt - rightexact) / 0.5, 1));
-                if(rightcnt > 1)
-                    drawpic_aspect_skin(picpos, rightname, '0.4 0.4 0' * mySize_x, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
-                drawstring_aspect(numpos, ftos(rightcnt), eX * 0.5 * mySize_x + eY * 0.25 * mySize_x, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
-            }
+               if (prev_p_health == -1)
+               {
+                       // no effect
+                       health_beforedamage = 0;
+                       armor_beforedamage = 0;
+                       health_damagetime = 0;
+                       armor_damagetime = 0;
+                       prev_health = health;
+                       prev_armor = armor;
+                       old_p_health = health;
+                       old_p_armor = armor;
+                       prev_p_health = health;
+                       prev_p_armor = armor;
+               }
+               else if (prev_health == -1)
+               {
+                       //start the load effect
+                       health_damagetime = 0;
+                       armor_damagetime = 0;
+                       prev_health = 0;
+                       prev_armor = 0;
                }
+               fuel = getstati(STAT_FUEL);
        }
-}
+       else
+       {
+               hud_configure_active_panel = HUD_PANEL_HEALTHARMOR;
 
-// Health/armor (#3)
-//
-void HUD_HealthArmor(void)
-{
-       if(!autocvar_hud_panel_healtharmor && !autocvar__hud_configure)
-               return;
+               health = 150;
+               armor = 75;
+               fuel = 20;
+       }
 
-       active_panel = HUD_PANEL_HEALTHARMOR;
        HUD_Panel_UpdateCvars(healtharmor);
        vector pos, mySize;
        pos = panel_pos;
@@ -2340,28 +1377,8 @@ void HUD_HealthArmor(void)
                mySize -= '2 2 0' * panel_bg_padding;
        }
 
-       float armor, health, fuel;
-       armor = getstati(STAT_ARMOR);
-       health = getstati(STAT_HEALTH);
-       fuel = getstati(STAT_FUEL);
-
-       if(autocvar__hud_configure)
-       {
-               armor = 75;
-               health = 150;
-               fuel = 20;
-       }
-
-       if(health <= 0)
-               return;
-
-       vector barpos, barsize;
-       vector picpos;
-       vector numpos;
-
        float baralign = autocvar_hud_panel_healtharmor_baralign;
        float iconalign = autocvar_hud_panel_healtharmor_iconalign;
-       float progressbar = autocvar_hud_panel_healtharmor_progressbar;
 
     float maxhealth = autocvar_hud_panel_healtharmor_maxhealth;
     float maxarmor = autocvar_hud_panel_healtharmor_maxarmor;
@@ -2374,18 +1391,14 @@ void HUD_HealthArmor(void)
                x = floor(v_x + 1);
 
         float maxtotal = maxhealth + maxarmor;
-
-        barpos = pos;
-        barsize = mySize;
-
                string biggercount;
                if(v_z) // NOT fully armored
                {
                        biggercount = "health";
-                       if(progressbar)
+                       if(autocvar_hud_panel_healtharmor_progressbar)
                        {
                                HUD_Panel_GetProgressBarColor(health);
-                               HUD_Panel_DrawProgressBar(barpos, barsize, autocvar_hud_panel_healtharmor_progressbar_health, 0, mod(baralign, 2), x/maxtotal, progressbar_color, autocvar_hud_progressbar_alpha * panel_fg_alpha, DRAWFLAG_NORMAL);
+                               HUD_Panel_DrawProgressBar(pos, mySize, autocvar_hud_panel_healtharmor_progressbar_health, x/maxtotal, 0, (baralign == 1 || baralign == 2), progressbar_color, autocvar_hud_progressbar_alpha * panel_fg_alpha, DRAWFLAG_NORMAL);
                        }
                        if(armor)
             if(autocvar_hud_panel_healtharmor_text)
@@ -2394,231 +1407,180 @@ void HUD_HealthArmor(void)
                else
                {
                        biggercount = "armor";
-                       if(progressbar)
+                       if(autocvar_hud_panel_healtharmor_progressbar)
                        {
                                HUD_Panel_GetProgressBarColor(armor);
-                               HUD_Panel_DrawProgressBar(barpos, barsize, autocvar_hud_panel_healtharmor_progressbar_armor, 0, mod(baralign, 2), x/maxtotal, progressbar_color, autocvar_hud_progressbar_alpha * panel_fg_alpha, DRAWFLAG_NORMAL);
+                               HUD_Panel_DrawProgressBar(pos, mySize, autocvar_hud_panel_healtharmor_progressbar_armor, x/maxtotal, 0, (baralign == 1 || baralign == 2), progressbar_color, autocvar_hud_progressbar_alpha * panel_fg_alpha, DRAWFLAG_NORMAL);
                        }
                        if(health)
             if(autocvar_hud_panel_healtharmor_text)
                                drawpic_aspect_skin(pos + eX * mySize_x - eX * 0.5 * mySize_y, "health", '0.5 0.5 0' * mySize_y, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
                }
         if(autocvar_hud_panel_healtharmor_text)
-            DrawNumIcon(iconalign, pos, mySize, x, biggercount, 1, HUD_Get_Num_Color(x, maxtotal), 1);
+                       DrawNumIcon(pos, mySize, x, biggercount, 0, iconalign, HUD_Get_Num_Color(x, maxtotal), 1);
 
-               // fuel
                if(fuel)
                {
-            barpos = pos;
-            barsize = eX * mySize_x + eY * 0.2 * mySize_y;
                        HUD_Panel_GetProgressBarColor(fuel);
-            HUD_Panel_DrawProgressBar(barpos, barsize, "progressbar", 0, mod(baralign, 2), min(1, fuel/100), progressbar_color, autocvar_hud_progressbar_alpha * panel_fg_alpha * 0.8, DRAWFLAG_NORMAL);
+                       HUD_Panel_DrawProgressBar(pos, eX * mySize_x + eY * 0.2 * mySize_y, "progressbar", fuel/100, 0, (baralign == 1 || baralign == 3), progressbar_color, panel_fg_alpha * 0.8, DRAWFLAG_NORMAL);
                }
        }
        else
        {
-               string leftname, rightname;
-        string leftprogressname, rightprogressname;
-               float leftcnt, rightcnt;
-               float leftmax, rightmax;
-               float leftactive, rightactive;
-               float leftalpha, rightalpha;
-               float flip = autocvar_hud_panel_healtharmor_flip;
-        float barflip;
-               if (flip) { // old style layout with armor left/top of health
-                       leftname = "armor";
-            leftprogressname = autocvar_hud_panel_healtharmor_progressbar_armor;
-                       leftcnt = armor;
-                       if(leftcnt)
-                               leftactive = 1;
-                       leftalpha = min((armor+10)/55, 1);
-            leftmax = maxarmor;
-
-                       rightname = "health";
-            rightprogressname = autocvar_hud_panel_healtharmor_progressbar_health;
-                       rightcnt = health;
-                       rightactive = 1;
-                       rightalpha = 1;
-            rightmax = maxhealth;
-               } else {
-                       leftname = "health";
-            leftprogressname = autocvar_hud_panel_healtharmor_progressbar_health;
-                       leftcnt = health;
-                       leftactive = 1;
-                       leftalpha = 1;
-            leftmax = maxhealth;
-
-                       rightname = "armor";
-            rightprogressname = autocvar_hud_panel_healtharmor_progressbar_armor;
-                       rightcnt = armor;
-                       if(rightcnt)
-                               rightactive = 1;
-                       rightalpha = min((armor+10)/55, 1);
-            rightmax = maxarmor;
-               }
-
-               if (mySize_x/mySize_y > 4)
+               float panel_ar = mySize_x/mySize_y;
+               float is_vertical = (panel_ar < 1);
+               vector health_offset, armor_offset;
+               if (panel_ar >= 4 || (panel_ar >= 1/4 && panel_ar < 1))
                {
-            barsize = eX * 0.5 * mySize_x + eY * mySize_y;
-                       if(leftactive)
-                       {
-                barpos = pos;
-                               if(baralign == 1 || baralign == 3) { // right align
-                    barflip = 1;
-                               } else { // left align
-                    barflip = 0;
-                               }
-
-                               if(progressbar)
-                               {
-                                       HUD_Panel_GetProgressBarColorForString(leftname);
-                    HUD_Panel_DrawProgressBar(barpos, barsize, leftprogressname, 0, barflip, min(1, leftcnt/leftmax), progressbar_color, autocvar_hud_progressbar_alpha * panel_fg_alpha, DRAWFLAG_NORMAL);
-                               }
-                if(autocvar_hud_panel_healtharmor_text)
-                    DrawNumIcon(iconalign, pos, eX * 0.5 * mySize_x + eY * mySize_y, leftcnt, leftname, 1, HUD_Get_Num_Color(leftcnt, leftmax), 1);
-                       }
-
-                       if(rightactive)
-                       {
-                barpos = pos + eX * 0.5 * mySize_x;
-                               if(baralign == 0 || baralign == 3) { // left align
-                    barflip = 0;
-                               } else { // right align
-                    barflip = 1;
-                               }
-
-                               if(progressbar)
-                               {
-                                       HUD_Panel_GetProgressBarColorForString(rightname);
-                    HUD_Panel_DrawProgressBar(barpos, barsize, rightprogressname, 0, barflip, min(1, rightcnt/rightmax), progressbar_color, autocvar_hud_progressbar_alpha * panel_fg_alpha, DRAWFLAG_NORMAL);
-                               }
-                if(autocvar_hud_panel_healtharmor_text)
-                    DrawNumIcon(iconalign, pos + eX * 0.5 * mySize_x, eX * 0.5 * mySize_x + eY * mySize_y, rightcnt, rightname, 0, HUD_Get_Num_Color(rightcnt, rightmax), 1);
-                       }
-
-                       if(fuel)
-                       {
-                barpos = pos;
-                barsize = eX * mySize_x + eY * 0.2 * mySize_y;
-                HUD_Panel_GetProgressBarColor(fuel);
-                HUD_Panel_DrawProgressBar(barpos, barsize, "progressbar", 0, mod(baralign, 2), min(1, fuel/100), progressbar_color, autocvar_hud_progressbar_alpha * panel_fg_alpha * 0.8, DRAWFLAG_NORMAL);
-                       }
+                       mySize_x *= 0.5;
+                       if (autocvar_hud_panel_healtharmor_flip)
+                               health_offset_x = mySize_x;
+                       else
+                               armor_offset_x = mySize_x;
                }
-               else if (mySize_x/mySize_y > 1.5)
+               else
                {
-            barsize = eX * mySize_x + eY * 0.5 * mySize_y;
-                       if(leftactive)
-                       {
-                barpos = pos;
-                               if(baralign == 1 || baralign == 3) { // right align
-                    barflip = 1;
-                               } else { // left align
-                    barflip = 0;
-                               }
-
-                               if(progressbar)
-                               {
-                                       HUD_Panel_GetProgressBarColorForString(leftname);
-                    HUD_Panel_DrawProgressBar(barpos, barsize, leftprogressname, 0, barflip, min(1, leftcnt/leftmax), progressbar_color, autocvar_hud_progressbar_alpha * panel_fg_alpha, DRAWFLAG_NORMAL);
-                               }
-                if(autocvar_hud_panel_healtharmor_text)
-                    DrawNumIcon(iconalign, pos, eX * mySize_x + eY * 0.5 * mySize_y, leftcnt, leftname, 1, HUD_Get_Num_Color(leftcnt, leftmax), 1);
-                       }
-
-                       if(rightactive)
-                       {
-                barpos = pos + eY * 0.5 * mySize_y;
-                               if(baralign == 0 || baralign == 3) { // left align
-                    barflip = 0;
-                               } else { // right align
-                    barflip = 1;
-                               }
-
-                               if(progressbar)
-                               {
-                                       HUD_Panel_GetProgressBarColorForString(rightname);
-                    HUD_Panel_DrawProgressBar(barpos, barsize, rightprogressname, 0, barflip, min(1, rightcnt/rightmax), progressbar_color, autocvar_hud_progressbar_alpha * panel_fg_alpha, DRAWFLAG_NORMAL);
-                               }
-                if(autocvar_hud_panel_healtharmor_text)
-                    DrawNumIcon(iconalign, pos + eY * 0.5 * mySize_y, eX * mySize_x + eY * 0.5 * mySize_y, rightcnt, rightname, 0, HUD_Get_Num_Color(rightcnt, rightmax), 1);
-                       }
+                       mySize_y *= 0.5;
+                       if (autocvar_hud_panel_healtharmor_flip)
+                               health_offset_y = mySize_y;
+                       else
+                               armor_offset_y = mySize_y;
+               }
 
-                       if(fuel)
-                       {
-                barpos = pos;
-                barsize = eX * mySize_x + eY * 0.2 * mySize_y;
-                HUD_Panel_GetProgressBarColor(fuel);
-                HUD_Panel_DrawProgressBar(barpos, barsize, "progressbar", 0, mod(baralign, 2), min(1, fuel/100), progressbar_color, autocvar_hud_progressbar_alpha * panel_fg_alpha * 0.8, DRAWFLAG_NORMAL);
-                       }
+               float health_baralign, armor_baralign, fuel_baralign;
+               float health_iconalign, armor_iconalign;
+               if (autocvar_hud_panel_healtharmor_flip)
+               {
+                       armor_baralign = (autocvar_hud_panel_healtharmor_baralign == 2 || autocvar_hud_panel_healtharmor_baralign == 1);
+                       health_baralign = (autocvar_hud_panel_healtharmor_baralign == 3 || autocvar_hud_panel_healtharmor_baralign == 1);
+                       fuel_baralign = health_baralign;
+                       armor_iconalign = (autocvar_hud_panel_healtharmor_iconalign == 2 || autocvar_hud_panel_healtharmor_iconalign == 1);
+                       health_iconalign = (autocvar_hud_panel_healtharmor_iconalign == 3 || autocvar_hud_panel_healtharmor_iconalign == 1);
                }
                else
                {
-            barsize = eX * 0.5 * mySize_x + eY * mySize_y;
-                       if(leftactive)
-                       {
-                barpos = pos;
-                               if(baralign == 1 || baralign == 3) { // right align
-                    barflip = 1;
-                               } else { // left align
-                    barflip = 0;
-                               }
-
-                               if(iconalign == 1 || iconalign == 3) { // down align
-                                       picpos = pos + eX * 0.05 * mySize_x + eY * (mySize_y - 0.65 * mySize_x);
-                                       numpos = pos + eY * mySize_y - eY * 0.25 * mySize_x;
-                               } else { // up align
-                                       picpos = pos + eX * 0.05 * mySize_x;
-                                       numpos = pos + eY * 0.4 * mySize_x;
-                               }
+                       health_baralign = (autocvar_hud_panel_healtharmor_baralign == 2 || autocvar_hud_panel_healtharmor_baralign == 1);
+                       armor_baralign = (autocvar_hud_panel_healtharmor_baralign == 3 || autocvar_hud_panel_healtharmor_baralign == 1);
+                       fuel_baralign = armor_baralign;
+                       health_iconalign = (autocvar_hud_panel_healtharmor_iconalign == 2 || autocvar_hud_panel_healtharmor_iconalign == 1);
+                       armor_iconalign = (autocvar_hud_panel_healtharmor_iconalign == 3 || autocvar_hud_panel_healtharmor_iconalign == 1);
+               }
 
-                               if(progressbar)
+               //if(health)
+               {
+                       if(autocvar_hud_panel_healtharmor_progressbar)
+                       {
+                               HUD_Panel_GetProgressBarColor(health);
+                               float p_health, pain_health_alpha;
+                               p_health = health;
+                               pain_health_alpha = 1;
+                               if (autocvar_hud_panel_healtharmor_progressbar_gfx)
                                {
-                                       HUD_Panel_GetProgressBarColorForString(leftname);
-                    HUD_Panel_DrawProgressBar(barpos, barsize, leftprogressname, 1, barflip, min(1, leftcnt/leftmax), progressbar_color, autocvar_hud_progressbar_alpha * panel_fg_alpha, DRAWFLAG_NORMAL);
+                                       if (autocvar_hud_panel_healtharmor_progressbar_gfx_smooth > 0)
+                                       {
+                                               if (fabs(prev_health - health) >= autocvar_hud_panel_healtharmor_progressbar_gfx_smooth)
+                                               {
+                                                       if (time - old_p_healthtime < 1)
+                                                               old_p_health = prev_p_health;
+                                                       else
+                                                               old_p_health = prev_health;
+                                                       old_p_healthtime = time;
+                                               }
+                                               if (time - old_p_healthtime < 1)
+                                               {
+                                                       p_health += (old_p_health - health) * (1 - (time - old_p_healthtime));
+                                                       prev_p_health = p_health;
+                                               }
+                                       }
+                                       if (autocvar_hud_panel_healtharmor_progressbar_gfx_damage > 0)
+                                       {
+                                               if (prev_health - health >= autocvar_hud_panel_healtharmor_progressbar_gfx_damage)
+                                               {
+                                                       if (time - health_damagetime >= 1)
+                                                               health_beforedamage = prev_health;
+                                                       health_damagetime = time;
+                                               }
+                                               if (time - health_damagetime < 1)
+                                               {
+                                                       float health_damagealpha = 1 - (time - health_damagetime)*(time - health_damagetime);
+                                                       HUD_Panel_DrawProgressBar(pos + health_offset, mySize, autocvar_hud_panel_healtharmor_progressbar_health, health_beforedamage/maxhealth, is_vertical, health_baralign, progressbar_color, autocvar_hud_progressbar_alpha * panel_fg_alpha * health_damagealpha, DRAWFLAG_NORMAL);
+                                               }
+                                       }
+                                       prev_health = health;
+
+                                       if (health <= autocvar_hud_panel_healtharmor_progressbar_gfx_lowhealth)
+                                       {
+                                               float BLINK_FACTOR = 0.15;
+                                               float BLINK_BASE = 0.85;
+                                               float BLINK_FREQ = 9; 
+                                               pain_health_alpha = BLINK_BASE + BLINK_FACTOR * cos(time * BLINK_FREQ);
+                                       }
                                }
-                if(autocvar_hud_panel_healtharmor_text)
-                {
-                    drawpic_aspect_skin(picpos, leftname, '0.4 0.4 0' * mySize_x, '1 1 1', leftalpha * panel_fg_alpha, DRAWFLAG_NORMAL);
-                    drawstring_aspect(numpos, ftos(leftcnt), eX * 0.5 * mySize_x + eY * 0.25 * mySize_x, HUD_Get_Num_Color(leftcnt, leftmax), panel_fg_alpha, DRAWFLAG_NORMAL);
-                }
+                               HUD_Panel_DrawProgressBar(pos + health_offset, mySize, autocvar_hud_panel_healtharmor_progressbar_health, p_health/maxhealth, is_vertical, health_baralign, progressbar_color, autocvar_hud_progressbar_alpha * panel_fg_alpha * pain_health_alpha, DRAWFLAG_NORMAL);
                        }
+                       if(autocvar_hud_panel_healtharmor_text)
+                               DrawNumIcon(pos + health_offset, mySize, health, "health", is_vertical, health_iconalign, HUD_Get_Num_Color(health, maxhealth), 1);
+               }
 
-                       if(rightactive)
+               if(armor)
+               {
+                       if(autocvar_hud_panel_healtharmor_progressbar)
                        {
-                barpos = pos + eX * 0.5 * mySize_x;
-                               if(baralign == 0 || baralign == 3) { // left align
-                    barflip = 0;
-                               } else { // right align
-                    barflip = 1;
-                               }
-
-                               if(iconalign == 0 || iconalign == 3) { // up align
-                                       picpos = pos + eX * 0.05 * mySize_x + eX * 0.5 * mySize_x;
-                                       numpos = pos + eY * 0.4 * mySize_x + eX * 0.5 * mySize_x;
-                               } else { // down align
-                                       picpos = pos + eX * 0.05 * mySize_x + eY * (mySize_y - 0.65 * mySize_x) + eX * 0.5 * mySize_x;
-                                       numpos = pos + eY * mySize_y - eY * 0.25 * mySize_x + eX * 0.5 * mySize_x;
-                               }
-
-                               if(progressbar)
+                               HUD_Panel_GetProgressBarColor(armor);
+                               float p_armor;
+                               p_armor = armor;
+                               if (autocvar_hud_panel_healtharmor_progressbar_gfx)
                                {
-                                       HUD_Panel_GetProgressBarColorForString(rightname);
-                    HUD_Panel_DrawProgressBar(barpos, barsize, rightprogressname, 1, barflip, min(1, rightcnt/rightmax), progressbar_color, autocvar_hud_progressbar_alpha * panel_fg_alpha, DRAWFLAG_NORMAL);
+                                       if (autocvar_hud_panel_healtharmor_progressbar_gfx_smooth > 0)
+                                       {
+                                               if (fabs(prev_armor - armor) >= autocvar_hud_panel_healtharmor_progressbar_gfx_smooth)
+                                               {
+                                                       if (time - old_p_armortime < 1)
+                                                               old_p_armor = prev_p_armor;
+                                                       else
+                                                               old_p_armor = prev_armor;
+                                                       old_p_armortime = time;
+                                               }
+                                               if (time - old_p_armortime < 1)
+                                               {
+                                                       p_armor += (old_p_armor - armor) * (1 - (time - old_p_armortime));
+                                                       prev_p_armor = p_armor;
+                                               }
+                                       }
+                                       if (autocvar_hud_panel_healtharmor_progressbar_gfx_damage > 0)
+                                       {
+                                               if (prev_armor - armor >= autocvar_hud_panel_healtharmor_progressbar_gfx_damage)
+                                               {
+                                                       if (time - armor_damagetime >= 1)
+                                                               armor_beforedamage = prev_armor;
+                                                       armor_damagetime = time;
+                                               }
+                                               if (time - armor_damagetime < 1)
+                                               {
+                                                       float armor_damagealpha = 1 - (time - armor_damagetime)*(time - armor_damagetime);
+                                                       HUD_Panel_DrawProgressBar(pos + armor_offset, mySize, autocvar_hud_panel_healtharmor_progressbar_armor, armor_beforedamage/maxarmor, is_vertical, armor_baralign, progressbar_color, autocvar_hud_progressbar_alpha * panel_fg_alpha * armor_damagealpha, DRAWFLAG_NORMAL);
+                                               }
+                                       }
+                                       prev_armor = armor;
                                }
-                if(autocvar_hud_panel_healtharmor_text)
-                {
-                    drawpic_aspect_skin(picpos, rightname, '0.4 0.4 0' * mySize_x, '1 1 1', rightalpha * panel_fg_alpha, DRAWFLAG_NORMAL);
-                    drawstring_aspect(numpos, ftos(rightcnt), eX * 0.5 * mySize_x + eY * 0.25 * mySize_x, HUD_Get_Num_Color(rightcnt, rightmax), panel_fg_alpha, DRAWFLAG_NORMAL);
-                }
+                               HUD_Panel_DrawProgressBar(pos + armor_offset, mySize, autocvar_hud_panel_healtharmor_progressbar_armor, p_armor/maxarmor, is_vertical, armor_baralign, progressbar_color, autocvar_hud_progressbar_alpha * panel_fg_alpha, DRAWFLAG_NORMAL);
                        }
+                       if(autocvar_hud_panel_healtharmor_text)
+                               DrawNumIcon(pos + armor_offset, mySize, armor, "armor", is_vertical, armor_iconalign, HUD_Get_Num_Color(armor, maxarmor), 1);
+               }
 
-                       if(fuel)
-                       {
-                barpos = pos;
-                barsize = eX * 0.05 * mySize_x + eY * mySize_y;
-                HUD_Panel_GetProgressBarColor(fuel);
-                HUD_Panel_DrawProgressBar(barpos, barsize, "progressbar", 1, mod(baralign, 2), min(1, fuel/100), progressbar_color, autocvar_hud_progressbar_alpha * panel_fg_alpha * 0.8, DRAWFLAG_NORMAL);
-                       }
+               if(fuel)
+               {
+                       if (is_vertical)
+                               mySize_x *= 0.2 / 2; //if vertical always halve x to not cover too much numbers with 3 digits
+                       else
+                               mySize_y *= 0.2;
+                       if (panel_ar >= 4)
+                               mySize_x *= 2; //restore full panel size
+                       else if (panel_ar < 1/4)
+                               mySize_y *= 2; //restore full panel size
+                       HUD_Panel_GetProgressBarColor(fuel);
+                       HUD_Panel_DrawProgressBar(pos, mySize, "progressbar", fuel/100, is_vertical, fuel_baralign, progressbar_color, panel_fg_alpha * 0.8, DRAWFLAG_NORMAL);
                }
        }
 }
@@ -2888,7 +1850,7 @@ void HUD_KillNotify(string s1, string s2, string s3, float type, float msg) // s
                                print (sprintf(_("%s^7 is a ^1BERSERKER!\n"), s1));
                } else if(type == KILL_SPREE_25) {
                        if(gentle)
-                               print (sprintf(_("%s^7 made ^1TWENTY FIFE SCORES IN A ROW!\n"), s1));
+                               print (sprintf(_("%s^7 made ^1TWENTY FIVE SCORES IN A ROW!\n"), s1));
                        else
                                print (sprintf(_("%s^7 inflicts ^1CARNAGE!\n"), s1));
                } else if(type == KILL_SPREE_30) {
@@ -3121,10 +2083,13 @@ void HUD_Centerprint(string s1, string s2, float type, float msg)
 
 void HUD_Notify (void)
 {
-       if(!autocvar_hud_panel_notify && !autocvar__hud_configure)
-               return;
+       if(!autocvar__hud_configure)
+       {
+               if(!autocvar_hud_panel_notify) return;
+       }
+       else
+               hud_configure_active_panel = HUD_PANEL_NOTIFY;
 
-       active_panel = HUD_PANEL_NOTIFY;
        HUD_Panel_UpdateCvars(notify);
        vector pos, mySize;
        pos = panel_pos;
@@ -3431,10 +2396,13 @@ string seconds_tostring(float sec)
 
 void HUD_Timer(void)
 {
-       if(!autocvar_hud_panel_timer && !autocvar__hud_configure)
-               return;
+       if(!autocvar__hud_configure)
+       {
+               if(!autocvar_hud_panel_timer) return;
+       }
+       else
+               hud_configure_active_panel = HUD_PANEL_TIMER;
 
-       active_panel = HUD_PANEL_TIMER;
        HUD_Panel_UpdateCvars(timer);
        vector pos, mySize;
        pos = panel_pos;
@@ -3484,10 +2452,14 @@ void HUD_Timer(void)
 //
 void HUD_Radar(void)
 {
-       if ((autocvar_hud_panel_radar == 0 || (autocvar_hud_panel_radar != 2 && !teamplay)) && !autocvar__hud_configure)
-               return;
+       if (!autocvar__hud_configure)
+       {
+               if (autocvar_hud_panel_radar == 0) return;
+               if (autocvar_hud_panel_radar != 2 && !teamplay) return;
+       }
+       else
+               hud_configure_active_panel = HUD_PANEL_RADAR;
 
-       active_panel = HUD_PANEL_RADAR;
        HUD_Panel_UpdateCvars(radar);
        vector pos, mySize;
        pos = panel_pos;
@@ -3500,8 +2472,7 @@ void HUD_Radar(void)
                mySize -= '2 2 0' * panel_bg_padding;
        }
 
-       local float color1, color2; // color already declared as a global in hud.qc
-       local vector rgb;
+       local float color2;
        local entity tm;
        float scale2d, normalsize, bigsize;
        float f;
@@ -3581,9 +2552,6 @@ void HUD_Radar(void)
                  f * mi_center
                + (1 - f) * view_origin);
 
-       color1 = GetPlayerColor(player_localentnum-1);
-       rgb = GetTeamRGB(color1);
-
        drawsetcliparea(
                pos_x,
                pos_y,
@@ -3591,31 +2559,156 @@ void HUD_Radar(void)
                mySize_y
        );
 
-       draw_teamradar_background(hud_panel_radar_foreground_alpha);
+       draw_teamradar_background(hud_panel_radar_foreground_alpha);
+
+       for(tm = world; (tm = find(tm, classname, "radarlink")); )
+               draw_teamradar_link(tm.origin, tm.velocity, tm.team);
+       for(tm = world; (tm = findflags(tm, teamradar_icon, 0xFFFFFF)); )
+               draw_teamradar_icon(tm.origin, tm.teamradar_icon, tm, tm.teamradar_color, panel_fg_alpha);
+       for(tm = world; (tm = find(tm, classname, "entcs_receiver")); )
+       {
+               color2 = GetPlayerColor(tm.sv_entnum);
+               //if(color == COLOR_SPECTATOR || color == color2)
+                       draw_teamradar_player(tm.origin, tm.angles, GetTeamRGB(color2));
+       }
+       draw_teamradar_player(view_origin, view_angles, '1 1 1');
+
+       drawresetcliparea();
+};
+
+// Score (#7)
+//
+void HUD_UpdatePlayerTeams();
+void HUD_Score_Rankings(vector pos, vector mySize, entity me, float team_count)
+{
+       float score;
+       entity tm, pl;
+#define SCOREPANEL_MAX_ENTRIES 6
+#define SCOREPANEL_ASPECTRATIO 2
+       const float entries = bound(1, floor(SCOREPANEL_MAX_ENTRIES * mySize_y/mySize_x * SCOREPANEL_ASPECTRATIO), SCOREPANEL_MAX_ENTRIES);
+       const float height = mySize_y/entries;
+       const vector fontsize = '0.9 0.9 0' * height;
+       pos_y += height * (1 - 0.9) / 2;
+
+       vector rgb, score_color;
+       rgb = '1 1 1';
+       score_color = '1 1 1';
+
+       const float name_size = mySize_x*0.75;
+       const float spacing_size = mySize_x*0.04;
+       const float highlight_alpha = 0.2;
+       float i, me_printed, first_pl;
+       string s;
+       i, first_pl = 0;
+       if (autocvar__hud_configure)
+       {
+               if (team_count)
+               {
+                       // show team scores in the first line
+                       float score_size = mySize_x / team_count;
+                       for(tm = teams.sort_next; tm; tm = tm.sort_next) {
+                               if(tm.team == COLOR_SPECTATOR)
+                                       continue;
+                               if (tm.team == myteam)
+                                       HUD_Panel_DrawHighlight(pos - eY * (height * (1 - 0.9) / 2) + eX * score_size * i, eX * score_size + eY * height, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
+                               drawstring_aspect(pos + eX * score_size * i, ftos(123), eX * score_size + eY * fontsize_y, GetTeamRGB(tm.team) * 0.8, panel_fg_alpha, DRAWFLAG_NORMAL);
+                               ++i;
+                       }
+                       first_pl = 1;
+                       pos_y += height;
+               }
+               score = 10 + SCOREPANEL_MAX_ENTRIES * 3;
+               for (i=first_pl; i<entries; ++i)
+               {
+                       //simulate my score is lower than all displayed players,
+                       //so that I don't appear at all showing pure rankings.
+                       //This is to better show the difference between the 2 ranking views
+                       if (i == entries-1 && autocvar_hud_panel_score_rankings == 1)
+                       {
+                               rgb = '1 1 0';
+                               drawfill(pos - eY * (height * (1 - 0.9) / 2), eX * mySize_x + eY * height, rgb, highlight_alpha * panel_fg_alpha, DRAWFLAG_NORMAL);
+                               s = GetPlayerName(pl.sv_entnum);
+                               score = 7;
+                       }
+                       else
+                       {
+                               s = sprintf(_("Player %d"), i + 1 - first_pl);
+                               score -= 3;
+                       }
+
+                       if (team_count)
+                               score_color = GetTeamRGB(ColorByTeam(mod(i + 2, team_count))) * 0.8;
+                       s = textShortenToWidth(s, name_size, fontsize, stringwidth_colors);
+                       drawcolorcodedstring(pos + eX * (name_size - stringwidth(s, TRUE, fontsize)), s, fontsize, panel_fg_alpha, DRAWFLAG_NORMAL);
+                       drawstring(pos + eX * (name_size + spacing_size), ftos(score), fontsize, score_color, panel_fg_alpha, DRAWFLAG_NORMAL);
+                       pos_y += height;
+               }
+               return;
+       }
+
+       if (!scoreboard_fade_alpha) // the scoreboard too calls HUD_UpdatePlayerTeams
+               HUD_UpdatePlayerTeams();
+       if (team_count)
+       {
+               // show team scores in the first line
+               float score_size = mySize_x / team_count;
+               for(tm = teams.sort_next; tm; tm = tm.sort_next) {
+                       if(tm.team == COLOR_SPECTATOR)
+                               continue;
+                       if (tm.team == myteam)
+                               drawfill(pos - eY * (height * (1 - 0.9) / 2) + eX * score_size * i, eX * score_size + eY * height, '1 1 1', highlight_alpha * panel_fg_alpha, DRAWFLAG_NORMAL);
+                       drawstring_aspect(pos + eX * score_size * i, ftos(tm.(teamscores[ts_primary])), eX * score_size + eY * fontsize_y, GetTeamRGB(tm.team) * 0.8, panel_fg_alpha, DRAWFLAG_NORMAL);
+                       ++i;
+               }
+               first_pl = 1;
+               pos_y += height;
+       }
+       i = first_pl;
+       for (pl = players.sort_next; pl && i<entries; pl = pl.sort_next, ++i)
+       {
+               if (pl.team == COLOR_SPECTATOR)
+                       continue;
+
+               if (i == entries-1 && !me_printed && pl != me)
+               if (autocvar_hud_panel_score_rankings == 1 && spectatee_status != -1)
+               {
+                       for (pl = me.sort_next; pl; pl = pl.sort_next)
+                               if (pl.team != COLOR_SPECTATOR)
+                                       break;
+
+                       if (pl)
+                               rgb = '1 1 0'; //not last but not among the leading players: yellow
+                       else
+                               rgb = '1 0 0'; //last: red
+                       pl = me;
+               }
 
-       for(tm = world; (tm = find(tm, classname, "radarlink")); )
-               draw_teamradar_link(tm.origin, tm.velocity, tm.team);
-       for(tm = world; (tm = findflags(tm, teamradar_icon, 0xFFFFFF)); )
-               draw_teamradar_icon(tm.origin, tm.teamradar_icon, tm, tm.teamradar_color, panel_fg_alpha);
-       for(tm = world; (tm = find(tm, classname, "entcs_receiver")); )
-       {
-               color2 = GetPlayerColor(tm.sv_entnum);
-               //if(color == COLOR_SPECTATOR || color == color2)
-                       draw_teamradar_player(tm.origin, tm.angles, GetTeamRGB(color2));
+               if (pl == me)
+               {
+                       if (i == first_pl)
+                               rgb = '0 1 0'; //first: green
+                       me_printed = 1;
+                       drawfill(pos - eY * (height * (1 - 0.9) / 2), eX * mySize_x + eY * height, rgb, highlight_alpha * panel_fg_alpha, DRAWFLAG_NORMAL);
+               }
+               if (team_count)
+                       score_color = GetTeamRGB(pl.team) * 0.8;
+               s = textShortenToWidth(GetPlayerName(pl.sv_entnum), name_size, fontsize, stringwidth_colors);
+               drawcolorcodedstring(pos + eX * (name_size - stringwidth(s, TRUE, fontsize)), s, fontsize, panel_fg_alpha, DRAWFLAG_NORMAL);
+               drawstring(pos + eX * (name_size + spacing_size), ftos(pl.(scores[ps_primary])), fontsize, score_color, panel_fg_alpha, DRAWFLAG_NORMAL);
+               pos_y += height;
        }
-       draw_teamradar_player(view_origin, view_angles, '1 1 1');
-
-       drawresetcliparea();
-};
+}
 
-// Score (#7)
-//
 void HUD_Score(void)
 {
-       if(!autocvar_hud_panel_score && !autocvar__hud_configure)
-               return;
+       if(!autocvar__hud_configure)
+       {
+               if(!autocvar_hud_panel_score) return;
+               if(spectatee_status == -1 && (gametype == GAME_RACE || gametype == GAME_CTS)) return;
+       }
+       else
+               hud_configure_active_panel = HUD_PANEL_SCORE;
 
-       active_panel = HUD_PANEL_SCORE;
        HUD_Panel_UpdateCvars(score);
        vector pos, mySize;
        pos = panel_pos;
@@ -3628,7 +2721,7 @@ void HUD_Score(void)
                mySize -= '2 2 0' * panel_bg_padding;
        }
 
-       float score, distribution, leader;
+       float score, distribution;
        string sign;
        vector distribution_color;
        entity tm, pl, me;
@@ -3668,6 +2761,11 @@ void HUD_Score(void)
                        HUD_Panel_DrawHighlight(pos, eX * 0.75 * mySize_x + eY * mySize_y, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
                drawstring_aspect(pos, timer, eX * 0.75 * mySize_x + eY * mySize_y, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
        } else if (!teamplay) { // non-teamgames
+               if ((spectatee_status == -1 && !autocvar__hud_configure) || autocvar_hud_panel_score_rankings)
+               {
+                       HUD_Score_Rankings(pos, mySize, me, 0);
+                       return;
+               }
                // me vector := [team/connected frags id]
                pl = players.sort_next;
                if(pl == me)
@@ -3684,50 +2782,99 @@ void HUD_Score(void)
                if(autocvar__hud_configure)
                        score = 123;
 
-               if(distribution >= 5) {
+               if(distribution >= 5)
                        distribution_color = eY;
-                       leader = 1;
-               } else if(distribution >= 0) {
+               else if(distribution >= 0)
                        distribution_color = '1 1 1';
-                       leader = 1;
-               } else if(distribution >= -5)
+               else if(distribution >= -5)
                        distribution_color = '1 1 0';
                else
                        distribution_color = eX;
 
-               drawstring_aspect(pos + eX * 0.75 * mySize_x, ftos(distribution), eX * 0.25 * mySize_x + eY * (1/3) * mySize_y, distribution_color, panel_fg_alpha, DRAWFLAG_NORMAL);
-               if (leader)
+               string distribution_str;
+               distribution_str = ftos(distribution);
+               if (distribution >= 0)
+               {
+                       if (distribution > 0)
+                               distribution_str = strcat("+", distribution_str);
                        HUD_Panel_DrawHighlight(pos, eX * 0.75 * mySize_x + eY * mySize_y, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
+               }
                drawstring_aspect(pos, ftos(score), eX * 0.75 * mySize_x + eY * mySize_y, distribution_color, panel_fg_alpha, DRAWFLAG_NORMAL);
+               drawstring_aspect(pos + eX * 0.75 * mySize_x, distribution_str, eX * 0.25 * mySize_x + eY * (1/3) * mySize_y, distribution_color, panel_fg_alpha, DRAWFLAG_NORMAL);
        } else { // teamgames
+               float scores_count, row, column, rows, columns;
+               vector offset;
+               vector score_pos, score_size; //for scores other than myteam
+               if (spectatee_status == -1 || autocvar_hud_panel_score_rankings)
+               {
+                       for(tm = teams.sort_next; tm, tm.team != COLOR_SPECTATOR; tm = tm.sort_next)
+                               ++scores_count;
+                       if (autocvar_hud_panel_score_rankings)
+                       {
+                               HUD_Score_Rankings(pos, mySize, me, scores_count);
+                               return;
+                       }
+                       rows = mySize_y/mySize_x;
+                       rows = bound(1, floor((sqrt(4 * (3/1) * rows * scores_count + rows * rows) + rows + 0.5) / 2), scores_count);
+                       //                               ^^^ ammo item aspect goes here
+
+                       columns = ceil(scores_count/rows);
+
+                       score_size = eX * mySize_x*(1/columns) + eY * mySize_y*(1/rows);
+
+                       float newSize;
+                       if(score_size_x/score_size_y > 3)
+                       {
+                               newSize = 3 * score_size_y;
+                               offset_x = score_size_x - newSize;
+                               pos_x += offset_x/2;
+                               score_size_x = newSize;
+                       }
+                       else
+                       {
+                               newSize = 1/3 * score_size_x;
+                               offset_y = score_size_y - newSize;
+                               pos_y += offset_y/2;
+                               score_size_y = newSize;
+                       }
+               }
+               else
+                       score_size = eX * mySize_x*(1/4) + eY * mySize_y*(1/3);
+
                float max_fragcount;
                max_fragcount = -99;
-
-               float teamnum;
                for(tm = teams.sort_next; tm; tm = tm.sort_next) {
-                       if(tm.team == COLOR_SPECTATOR || (!tm.team_size && !autocvar__hud_configure)) // no players? don't display
+                       if(tm.team == COLOR_SPECTATOR)
                                continue;
                        score = tm.(teamscores[ts_primary]);
                        if(autocvar__hud_configure)
                                score = 123;
-                       leader = 0;
                        
                        if (score > max_fragcount)
                                max_fragcount = score;
 
-                       if(tm.team == myteam) {
+                       if (spectatee_status == -1)
+                       {
+                               score_pos = pos + eX * column * (score_size_x + offset_x) + eY * row * (score_size_y + offset_y);
+                               if (max_fragcount == score)
+                                       HUD_Panel_DrawHighlight(score_pos, score_size, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
+                               drawstring_aspect(score_pos, ftos(score), score_size, GetTeamRGB(tm.team) * 0.8, panel_fg_alpha, DRAWFLAG_NORMAL);
+                               ++row;
+                               if(row >= rows)
+                               {
+                                       row = 0;
+                                       ++column;
+                               }
+                       }
+                       else if(tm.team == myteam) {
                                if (max_fragcount == score)
-                                       leader = 1;
-                               if (leader)
                                        HUD_Panel_DrawHighlight(pos, eX * 0.75 * mySize_x + eY * mySize_y, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
                                drawstring_aspect(pos, ftos(score), eX * 0.75 * mySize_x + eY * mySize_y, GetTeamRGB(tm.team) * 0.8, panel_fg_alpha, DRAWFLAG_NORMAL);
                        } else {
                                if (max_fragcount == score)
-                                       leader = 1;
-                               if (leader)
-                                       HUD_Panel_DrawHighlight(pos + eX * 0.75 * mySize_x + eY * (1/3) * teamnum * mySize_y, eX * 0.25 * mySize_x + eY * (1/3) * mySize_y, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
-                               drawstring_aspect(pos + eX * 0.75 * mySize_x + eY * (1/3) * teamnum * mySize_y, ftos(score), eX * 0.25 * mySize_x + eY * (1/3) * mySize_y, GetTeamRGB(tm.team) * 0.8, panel_fg_alpha, DRAWFLAG_NORMAL);
-                               teamnum += 1;
+                                       HUD_Panel_DrawHighlight(pos + eX * 0.75 * mySize_x + eY * (1/3) * rows * mySize_y, score_size, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
+                               drawstring_aspect(pos + eX * 0.75 * mySize_x + eY * (1/3) * rows * mySize_y, ftos(score), score_size, GetTeamRGB(tm.team) * 0.8, panel_fg_alpha, DRAWFLAG_NORMAL);
+                               ++rows;
                        }
                }
        }
@@ -3735,11 +2882,17 @@ void HUD_Score(void)
 
 // Race timer (#8)
 //
-void HUD_RaceTimer (void) {
-       if(!autocvar_hud_panel_racetimer && !(gametype == GAME_RACE || gametype == GAME_CTS) && !autocvar__hud_configure)
-               return;
+void HUD_RaceTimer (void)
+{
+       if(!autocvar__hud_configure)
+       {
+               if(!autocvar_hud_panel_racetimer) return;
+               if(!(gametype == GAME_RACE || gametype == GAME_CTS)) return;
+               if(spectatee_status == -1) return;
+       }
+       else
+               hud_configure_active_panel = HUD_PANEL_RACETIMER;
 
-       active_panel = HUD_PANEL_RACETIMER;
        HUD_Panel_UpdateCvars(racetimer);
        vector pos, mySize;
        pos = panel_pos;
@@ -3885,19 +3038,24 @@ float vote_change; // "time" when vote_active changed
 
 void HUD_VoteWindow(void) 
 {
-    uid2name_dialog = 0;
        if(autocvar_cl_allow_uid2name == -1 && (gametype == GAME_CTS || gametype == GAME_RACE))
        {
                vote_active = 1;
+               if (autocvar__hud_configure)
+               {
+                       vote_yescount = 0;
+                       vote_nocount = 0;
+                       print(_("^1You must answer before entering hud configure mode\n"));
+                       cvar_set("_hud_configure", "0");
+               }
                vote_called_vote = strzone(_("^2Name ^7instead of \"^1Unregistered player^7\" in stats"));
-        uid2name_dialog = 1;
+               uid2name_dialog = 1;
        }
 
-       if(!autocvar_hud_panel_vote && !autocvar__hud_configure)
-               return;
-
        if(!autocvar__hud_configure)
        {
+               if(!autocvar_hud_panel_vote) return;
+
                panel_fg_alpha = autocvar_hud_panel_fg_alpha;
                panel_bg_alpha_str = autocvar_hud_panel_vote_bg_alpha;
 
@@ -3906,6 +3064,14 @@ void HUD_VoteWindow(void)
                }
                panel_bg_alpha = stof(panel_bg_alpha_str);
        }
+       else
+       {
+               hud_configure_active_panel = HUD_PANEL_VOTE;
+
+               vote_yescount = 3;
+               vote_nocount = 2;
+               vote_needed = 4;
+       }
 
        string s;
        float a;
@@ -3919,17 +3085,9 @@ void HUD_VoteWindow(void)
        else
                vote_alpha = bound(0, 1 - (time - vote_change) * 2, 1);
 
-       if(autocvar__hud_configure)
-       {
-               vote_yescount = 3;
-               vote_nocount = 2;
-               vote_needed = 4;
-       }
-
        if(!vote_alpha)
                return;
 
-       active_panel = HUD_PANEL_VOTE;
        HUD_Panel_UpdateCvars(vote);
 
        if(uid2name_dialog)
@@ -4418,17 +3576,11 @@ void HUD_Mod_NexBall(vector pos, vector mySize)
                        p = 2 - p;
 
                //Draw the filling
-               float vertical;
+               HUD_Panel_GetProgressBarColor(nexball);
                if(mySize_x > mySize_y)
-               {
-                       vertical = 0;
-               }
+                       HUD_Panel_DrawProgressBar(pos, mySize, "progressbar", p, 0, 0, progressbar_color, autocvar_hud_progressbar_alpha * panel_fg_alpha, DRAWFLAG_NORMAL);
                else
-               {
-                       vertical = 1;
-               }
-               HUD_Panel_GetProgressBarColor(nexball);
-        HUD_Panel_DrawProgressBar(pos, mySize, "statusbar", vertical, 0, p, progressbar_color, autocvar_hud_progressbar_alpha * panel_fg_alpha, DRAWFLAG_NORMAL);
+                       HUD_Panel_DrawProgressBar(pos, mySize, "progressbar", p, 1, 0, progressbar_color, autocvar_hud_progressbar_alpha * panel_fg_alpha, DRAWFLAG_NORMAL);
        }
 
        if (stat_items & IT_KEY1)
@@ -4580,19 +3732,117 @@ void HUD_Mod_Race(vector pos, vector mySize)
        }
 }
 
+void DrawDomItem(vector myPos, vector mySize, float aspect_ratio, float layout, float i)
+{
+       float stat, pps_ratio;
+       string pic;
+       vector color;
+       switch(i)
+       {
+               case 0:
+                       stat = getstatf(STAT_DOM_PPS_RED);
+                       pic = "dom_icon_red";
+                       color = '1 0 0';
+                       break;
+               case 1:
+                       stat = getstatf(STAT_DOM_PPS_BLUE);
+                       pic = "dom_icon_blue";
+                       color = '0 0 1';
+                       break;
+               case 2:
+                       stat = getstatf(STAT_DOM_PPS_YELLOW);
+                       pic = "dom_icon_yellow";
+                       color = '1 1 0';
+                       break;
+               case 3:
+                       stat = getstatf(STAT_DOM_PPS_PINK);
+                       pic = "dom_icon_pink";
+                       color = '1 0 1';
+       }
+       pps_ratio = stat / getstatf(STAT_DOM_TOTAL_PPS);
+
+       if(mySize_x/mySize_y > aspect_ratio)
+       {
+               i = aspect_ratio * mySize_y;
+               myPos_x = myPos_x + (mySize_x - i) / 2;
+               mySize_x = i;
+       }
+       else
+       {
+               i = 1/aspect_ratio * mySize_x;
+               myPos_y = myPos_y + (mySize_y - i) / 2;
+               mySize_y = i;
+       }
+
+       if (layout) // show text too
+       {
+               //draw the text
+               color *= 0.5 + pps_ratio * (1 - 0.5); // half saturated color at min, full saturated at max
+               if (layout == 2) // average pps
+                       drawstring_aspect(myPos + eX * mySize_y, ftos_decimals(stat, 2), eX * (2/3) * mySize_x + eY * mySize_y, color, panel_fg_alpha, DRAWFLAG_NORMAL);
+               else // percentage of average pps
+                       drawstring_aspect(myPos + eX * mySize_y, strcat( ftos(floor(pps_ratio*100 + 0.5)), "%" ), eX * (2/3) * mySize_x + eY * mySize_y, color, panel_fg_alpha, DRAWFLAG_NORMAL);
+       }
+
+       //draw the icon
+       drawpic_aspect_skin(myPos, pic, '1 1 0' * mySize_y, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
+       if (stat > 0)
+       {
+               drawsetcliparea(myPos_x, myPos_y + mySize_y * (1 - pps_ratio), mySize_y, mySize_y * pps_ratio);
+               drawpic_aspect_skin(myPos, strcat(pic, "-highlighted"), '1 1 0' * mySize_y, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
+               drawresetcliparea();
+       }
+}
+
+void HUD_Mod_Dom(vector myPos, vector mySize)
+{
+       mod_active = 1; // required in each mod function that always shows something
+       entity tm;
+       float teams_count;
+       for(tm = teams.sort_next; tm; tm = tm.sort_next)
+               if(tm.team != COLOR_SPECTATOR)
+                       ++teams_count;
+
+       float layout = autocvar_hud_panel_modicons_dom_layout;
+       float rows, columns, aspect_ratio;
+       rows = mySize_y/mySize_x;
+       aspect_ratio = (layout) ? 3 : 1;
+       rows = bound(1, floor((sqrt((4 * aspect_ratio * teams_count + rows) * rows) + rows + 0.5) / 2), teams_count);
+       columns = ceil(teams_count/rows);
+
+       int i;
+       float row, column;
+       for(i=0; i<teams_count; ++i)
+       {
+               vector pos, itemSize;
+               pos = myPos + eX * column * mySize_x*(1/columns) + eY * row * mySize_y*(1/rows);
+               itemSize = eX * mySize_x*(1/columns) + eY * mySize_y*(1/rows);
+
+               DrawDomItem(pos, itemSize, aspect_ratio, layout, i);
+
+               ++row;
+               if(row >= rows)
+               {
+                       row = 0;
+                       ++column;
+               }
+       }
+}
+
 float mod_prev; // previous state of mod_active to check for a change
 float mod_alpha;
 float mod_change; // "time" when mod_active changed
 
 void HUD_ModIcons(void)
 {
-       if(!autocvar_hud_panel_modicons && !autocvar__hud_configure)
-               return;
-
-       if (gametype != GAME_KEYHUNT && gametype != GAME_CTF && gametype != GAME_NEXBALL && gametype != GAME_CTS && gametype != GAME_RACE && gametype != GAME_CA && gametype != GAME_FREEZETAG && gametype != GAME_KEEPAWAY && !autocvar__hud_configure)
-               return;
+       if(!autocvar__hud_configure)
+       {
+               if(!autocvar_hud_panel_modicons) return;
+               if (gametype != GAME_CTF && gametype != GAME_KEYHUNT && gametype != GAME_NEXBALL && gametype != GAME_CTS && gametype != GAME_RACE && gametype != GAME_CA && gametype != GAME_FREEZETAG && gametype != GAME_KEEPAWAY && gametype != GAME_DOMINATION) return;
+       }
+       else
+               hud_configure_active_panel = HUD_PANEL_MODICONS;
 
-       active_panel = HUD_PANEL_MODICONS;
        HUD_Panel_UpdateCvars(modicons);
        vector pos, mySize;
        pos = panel_pos;
@@ -4628,6 +3878,8 @@ void HUD_ModIcons(void)
                HUD_Mod_Race(pos, mySize);
        else if(gametype == GAME_CA || gametype == GAME_FREEZETAG)
                HUD_Mod_CA(pos, mySize);
+       else if(gametype == GAME_DOMINATION)
+               HUD_Mod_Dom(pos, mySize);
        else if(gametype == GAME_KEEPAWAY)
                HUD_Mod_Keepaway(pos, mySize);
 }
@@ -4636,13 +3888,15 @@ void HUD_ModIcons(void)
 //
 void HUD_DrawPressedKeys(void)
 {
-       if(!autocvar_hud_panel_pressedkeys && !autocvar__hud_configure)
-               return;
+       if(!autocvar__hud_configure)
+       {
+               if(!autocvar_hud_panel_pressedkeys) return;
+               if(spectatee_status <= 0 && autocvar_hud_panel_pressedkeys < 2) return;
+       }
+       else
+               hud_configure_active_panel = HUD_PANEL_PRESSEDKEYS;
 
-       if(!(spectatee_status > 0 || autocvar_hud_panel_pressedkeys >= 2 || autocvar__hud_configure))
-               return;
 
-       active_panel = HUD_PANEL_PRESSEDKEYS;
        HUD_Panel_UpdateCvars(pressedkeys);
        vector pos, mySize;
        pos = panel_pos;
@@ -4680,27 +3934,33 @@ void HUD_DrawPressedKeys(void)
        vector keysize;
        keysize = eX * mySize_x * (1/3) + eY * mySize_y * 0.5;
        float pressedkeys;
-
        pressedkeys = getstatf(STAT_PRESSED_KEYS);
+
        drawpic_aspect_skin(pos, ((pressedkeys & KEY_CROUCH) ? "key_crouch_inv.tga" : "key_crouch.tga"), keysize, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
-       drawpic_aspect_skin(pos + eX * mySize_x * (1/3), ((pressedkeys & KEY_FORWARD) ? "key_forward_inv.tga" : "key_forward.tga"), keysize, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
-       drawpic_aspect_skin(pos + eX * mySize_x * (2/3), ((pressedkeys & KEY_JUMP) ? "key_jump_inv.tga" : "key_jump.tga"), keysize, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
-       drawpic_aspect_skin(pos + eY * 0.5 * mySize_y, ((pressedkeys & KEY_LEFT) ? "key_left_inv.tga" : "key_left.tga"), keysize, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
-       drawpic_aspect_skin(pos + eY * 0.5 * mySize_y + eX * mySize_x * (1/3), ((pressedkeys & KEY_BACKWARD) ? "key_backward_inv.tga" : "key_backward.tga"), keysize, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
-       drawpic_aspect_skin(pos + eY * 0.5 * mySize_y + eX * mySize_x * (2/3), ((pressedkeys & KEY_RIGHT) ? "key_right_inv.tga" : "key_right.tga"), keysize, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
+       drawpic_aspect_skin(pos + eX * keysize_x, ((pressedkeys & KEY_FORWARD) ? "key_forward_inv.tga" : "key_forward.tga"), keysize, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
+       drawpic_aspect_skin(pos + eX * keysize_x * 2, ((pressedkeys & KEY_JUMP) ? "key_jump_inv.tga" : "key_jump.tga"), keysize, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
+       pos_y += keysize_y;
+       drawpic_aspect_skin(pos, ((pressedkeys & KEY_LEFT) ? "key_left_inv.tga" : "key_left.tga"), keysize, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
+       drawpic_aspect_skin(pos + eX * keysize_x, ((pressedkeys & KEY_BACKWARD) ? "key_backward_inv.tga" : "key_backward.tga"), keysize, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
+       drawpic_aspect_skin(pos + eX * keysize_x * 2, ((pressedkeys & KEY_RIGHT) ? "key_right_inv.tga" : "key_right.tga"), keysize, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
 }
 
 // Handle chat as a panel (#12)
 //
 void HUD_Chat(void)
 {
-       if(!autocvar_hud_panel_chat && !autocvar__hud_configure)
+       if(!autocvar__hud_configure)
        {
-               cvar_set("con_chatrect", "0");
-               return;
+               if (!autocvar_hud_panel_chat)
+               {
+                       if (!autocvar_con_chatrect)
+                               cvar_set("con_chatrect", "0");
+                       return;
+               }
        }
+       else
+               hud_configure_active_panel = HUD_PANEL_CHAT;
 
-       active_panel = HUD_PANEL_CHAT;
        HUD_Panel_UpdateCvars(chat);
 
        if(autocvar__con_chat_maximized && !autocvar__hud_configure) // draw at full screen height if maximized
@@ -4731,7 +3991,8 @@ void HUD_Chat(void)
                mySize -= '2 2 0' * panel_bg_padding;
        }
 
-       cvar_set("con_chatrect", "1");
+       if (!autocvar_con_chatrect)
+               cvar_set("con_chatrect", "1");
 
        cvar_set("con_chatrect_x", ftos(pos_x/vid_conwidth));
        cvar_set("con_chatrect_y", ftos(pos_y/vid_conheight));
@@ -4741,8 +4002,8 @@ void HUD_Chat(void)
 
        if(autocvar__hud_configure)
        {
-               float chatsize;
-               chatsize = autocvar_con_chatsize;
+               vector chatsize;
+               chatsize = '1 1 0' * autocvar_con_chatsize;
                cvar_set("con_chatrect_x", "9001"); // over 9000, we'll fake it instead for more control over alpha and such
                float i, a;
                for(i = 0; i < autocvar_con_chat; ++i)
@@ -4751,7 +4012,8 @@ void HUD_Chat(void)
                                a = panel_fg_alpha;
                        else
                                a = panel_fg_alpha * floor(((i + 1) * 7 + autocvar_con_chattime)/45);
-                       drawcolorcodedstring(pos + eY * i * chatsize, textShortenToWidth(_("^3Player^7: This is the chat area."), mySize_x, '1 1 0' * chatsize, stringwidth_colors), '1 1 0' * chatsize, a, DRAWFLAG_NORMAL);
+                       drawcolorcodedstring(pos, textShortenToWidth(_("^3Player^7: This is the chat area."), mySize_x, chatsize, stringwidth_colors), chatsize, a, DRAWFLAG_NORMAL);
+                       pos_y += chatsize_y;
                }
        }
 }
@@ -4767,10 +4029,13 @@ float frametimeavg1; // 1 frame ago
 float frametimeavg2; // 2 frames ago
 void HUD_EngineInfo(void)
 {
-       if(!autocvar_hud_panel_engineinfo && !autocvar__hud_configure)
-               return;
+       if(!autocvar__hud_configure)
+       {
+               if(!autocvar_hud_panel_engineinfo) return;
+       }
+       else
+               hud_configure_active_panel = HUD_PANEL_ENGINEINFO;
 
-       active_panel = HUD_PANEL_ENGINEINFO;
        HUD_Panel_UpdateCvars(engineinfo);
        vector pos, mySize;
        pos = panel_pos;
@@ -4826,10 +4091,13 @@ void HUD_EngineInfo(void)
        o_y += fontsize_y;
 void HUD_InfoMessages(void)
 {
-       if(!autocvar_hud_panel_infomessages && !autocvar__hud_configure)
-               return;
+       if(!autocvar__hud_configure)
+       {
+               if(!autocvar_hud_panel_infomessages) return;
+       }
+       else
+               hud_configure_active_panel = HUD_PANEL_INFOMESSAGES;
 
-       active_panel = HUD_PANEL_INFOMESSAGES;
        HUD_Panel_UpdateCvars(infomessages);
        vector pos, mySize;
        pos = panel_pos;
@@ -5003,25 +4271,36 @@ void HUD_InfoMessages(void)
        }
 }
 
-/*
-==================
-Main HUD system
-==================
-*/
-
-void HUD_ShowSpeed(void)
+// Physics panel (#15)
+//
+vector acc_prevspeed;
+float acc_prevtime, acc_avg, top_speed, top_speed_time;
+void HUD_Physics(void)
 {
-       vector numsize;
-       float pos, conversion_factor;
-       string speed, zspeed, unit;
+       if(!autocvar__hud_configure)
+       {
+               if(!autocvar_hud_panel_physics) return;
+               if(spectatee_status == -1 && autocvar_hud_panel_physics < 2) return;
+       }
+       else
+               hud_configure_active_panel = HUD_PANEL_PHYSICS;
+
+       HUD_Panel_UpdateCvars(physics);
+
+       HUD_Panel_DrawBg(1);
+       if(panel_bg_padding)
+       {
+               panel_pos += '1 1 0' * panel_bg_padding;
+               panel_size -= '2 2 0' * panel_bg_padding;
+       }
+
+       //compute speed
+       float speed, conversion_factor;
+       string unit;
 
-       switch(autocvar_cl_showspeed_unit)
+       switch(autocvar_hud_panel_physics_speed_unit)
        {
                default:
-               case 0:
-                       unit = "";
-                       conversion_factor = 1.0;
-                       break;
                case 1:
                        unit = _(" qu/s");
                        conversion_factor = 1.0;
@@ -5044,64 +4323,185 @@ void HUD_ShowSpeed(void)
                        break;
        }
 
-       speed = strcat(ftos(floor( vlen(pmove_vel - pmove_vel_z * '0 0 1') * conversion_factor + 0.5 )), unit);
+       float max_speed = floor( autocvar_hud_panel_physics_speed_max * conversion_factor + 0.5 );
+       if (autocvar__hud_configure)
+               speed = floor( max_speed * 0.65 + 0.5 );
+       else if(autocvar_hud_panel_physics_speed_vertical)
+               speed = floor( vlen(pmove_vel) * conversion_factor + 0.5 );
+       else
+               speed = floor( vlen(pmove_vel - pmove_vel_z * '0 0 1') * conversion_factor + 0.5 );
 
-       numsize_x = numsize_y = autocvar_cl_showspeed_size;
-       pos = (vid_conheight - numsize_y) * autocvar_cl_showspeed_position;
+       //compute acceleration
+       float acceleration, f;
+       if (autocvar__hud_configure)
+               acceleration = autocvar_hud_panel_physics_acceleration_max * 0.3;
+       else
+       {
+               // 1 m/s = 0.0254 qu/s; 1 g = 9.80665 m/s^2
+               f = time - acc_prevtime;
+               if(autocvar_hud_panel_physics_acceleration_vertical)
+                       acceleration = (vlen(pmove_vel) - vlen(acc_prevspeed)) * (1 / f) * (0.0254 / 9.80665);
+               else
+                       acceleration = (vlen(pmove_vel - '0 0 1' * pmove_vel_z) - vlen(acc_prevspeed - '0 0 1' * acc_prevspeed_z)) * (1 / f) * (0.0254 / 9.80665);
+               acc_prevspeed = pmove_vel;
+               acc_prevtime = time;
 
-       drawstringcenter(eX + pos * eY, speed, numsize, '1 1 1', autocvar_hud_panel_fg_alpha * hud_fade_alpha, DRAWFLAG_NORMAL);
+               f = bound(0, f * 10, 1);
+               acc_avg = acc_avg * (1 - f) + acceleration * f;
+       }
 
-       if (autocvar_cl_showspeed_z == 1) {
-               zspeed = strcat(ftos(fabs(floor( pmove_vel_z * conversion_factor + 0.5 ))), unit);
-               drawstringcenter(eX + pos * eY + numsize_y * eY, zspeed, numsize * 0.5, '1 1 1', autocvar_hud_panel_fg_alpha * hud_fade_alpha, DRAWFLAG_NORMAL);
+       //compute layout
+       float panel_ar = panel_size_x/panel_size_y;
+       vector speed_offset, acceleration_offset;
+       if (panel_ar >= 5)
+       {
+               panel_size_x *= 0.5;
+               if (autocvar_hud_panel_physics_flip)
+                       speed_offset_x = panel_size_x;
+               else
+                       acceleration_offset_x = panel_size_x;
        }
-}
+       else
+       {
+               panel_size_y *= 0.5;
+               if (autocvar_hud_panel_physics_flip)
+                       speed_offset_y = panel_size_y;
+               else
+                       acceleration_offset_y = panel_size_y;
+       }
+       float speed_baralign, acceleration_baralign;
+       if (autocvar_hud_panel_physics_baralign == 1)
+               acceleration_baralign = speed_baralign = 1;
+    else if(autocvar_hud_panel_physics_baralign == 4)
+               acceleration_baralign = speed_baralign = 2;
+       else if (autocvar_hud_panel_physics_flip)
+       {
+               acceleration_baralign = (autocvar_hud_panel_physics_baralign == 2);
+               speed_baralign = (autocvar_hud_panel_physics_baralign == 3);
+       }
+       else
+       {
+               speed_baralign = (autocvar_hud_panel_physics_baralign == 2);
+               acceleration_baralign = (autocvar_hud_panel_physics_baralign == 3);
+       }
+       if (autocvar_hud_panel_physics_acceleration_progressbar_mode == 0)
+               acceleration_baralign = 3; //override hud_panel_physics_baralign value for acceleration
 
-vector acc_prevspeed;
-float acc_prevtime;
-float acc_avg;
+       //draw speed
+       if(speed)
+       if(autocvar_hud_panel_physics_progressbar == 1 || autocvar_hud_panel_physics_progressbar == 2)
+       {
+               HUD_Panel_GetProgressBarColor(speed);
+               HUD_Panel_DrawProgressBar(panel_pos + speed_offset, panel_size, "progressbar", speed/max_speed, 0, speed_baralign, progressbar_color, autocvar_hud_progressbar_alpha * panel_fg_alpha, DRAWFLAG_NORMAL);
+       }
+       vector tmp_offset, tmp_size;
+       if (autocvar_hud_panel_physics_text == 1 || autocvar_hud_panel_physics_text == 2)
+       {
+               tmp_size_x = panel_size_x * 0.75;
+               tmp_size_y = panel_size_y;
+               if (speed_baralign)
+                       tmp_offset_x = panel_size_x - tmp_size_x;
+               //else
+                       //tmp_offset_x = 0;
+               drawstring_aspect(panel_pos + speed_offset + tmp_offset, ftos(speed), tmp_size, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
 
-void HUD_ShowAcceleration(void)
-{
-       float acceleration, sz, scale, alpha, f;
-       vector pos, top, rgb;
-       top_x = vid_conwidth/2;
-       top_y = 0;
-
-       f = time - acc_prevtime;
-       if(autocvar_cl_showacceleration_z)
-               acceleration = (vlen(pmove_vel) - vlen(acc_prevspeed)) * (1 / f);
-       else
-               acceleration = (vlen(pmove_vel - '0 0 1' * pmove_vel_z) - vlen(acc_prevspeed - '0 0 1' * acc_prevspeed_z)) * (1 / f);
-       acc_prevspeed = pmove_vel;
-       acc_prevtime = time;
-
-       f = bound(0, f * 10, 1);
-       acc_avg = acc_avg * (1 - f) + acceleration * f;
-       acceleration = acc_avg / getstatf(STAT_MOVEVARS_MAXSPEED);
-       if (acceleration == 0)
-               return;
+               //draw speed unit
+               if (speed_baralign)
+                       tmp_offset_x = 0;
+               else
+                       tmp_offset_x = tmp_size_x;
+               if (autocvar_hud_panel_physics_speed_unit_show)
+               {
+                       //tmp_offset_y = 0;
+                       tmp_size_x = panel_size_x * (1 - 0.75);
+                       tmp_size_y = panel_size_y * 0.4;
+                       drawstring_aspect(panel_pos + speed_offset + tmp_offset, unit, tmp_size, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
+               }
+       }
 
-       pos = top - sz/2 * eY + (autocvar_cl_showacceleration_position * vid_conheight) * eY;
+       //compute and draw top speed
+       if (autocvar_hud_panel_physics_topspeed)
+       if (autocvar_hud_panel_physics_text == 1 || autocvar_hud_panel_physics_text == 2)
+       {
+               if (autocvar__hud_configure)
+               {
+                       top_speed = floor( max_speed * 0.75 + 0.5 );
+                       f = 1;
+               }
+               else
+               {
+                       if (speed >= top_speed)
+                       {
+                               top_speed = speed;
+                               top_speed_time = time;
+                       }
+                       if (top_speed != 0)
+                       {
+                               f = max(1, autocvar_hud_panel_physics_topspeed_time);
+                               // divide by f to make it start from 1
+                               f = cos( ((time - top_speed_time) / f) * PI/2 );
+                       }
+            else //hide top speed 0, it would be stupid
+                               f = 0;
+               }
+               if (f > 0)
+               {
+                       //top speed progressbar peak
+                       if(speed < top_speed)
+                       if(autocvar_hud_panel_physics_progressbar == 1 || autocvar_hud_panel_physics_progressbar == 2)
+                       {
+                               float peak_offset_x;
+                               vector peak_size;
+                               if (speed_baralign == 0)
+                                       peak_offset_x = min(top_speed, max_speed)/max_speed * panel_size_x;
+                else if (speed_baralign == 1)
+                                       peak_offset_x = (1 - min(top_speed, max_speed)/max_speed) * panel_size_x;
+                else if (speed_baralign == 2)
+                    peak_offset_x = min(top_speed, max_speed)/max_speed * panel_size_x * 0.5;
+                               //if speed is not 0 the speed progressbar already fetched the color
+                               if (speed == 0)
+                                       HUD_Panel_GetProgressBarColor(speed);
+                               peak_size_x = floor(panel_size_x * 0.01 + 1.5);
+                peak_size_y = panel_size_y;
+                if (speed_baralign == 2) // draw two peaks, on both sides
+                {
+                    drawfill(panel_pos + speed_offset + eX * (0.5 * panel_size_x + peak_offset_x - peak_size_x), peak_size, progressbar_color, f * autocvar_hud_progressbar_alpha * panel_fg_alpha, DRAWFLAG_NORMAL);
+                    drawfill(panel_pos + speed_offset + eX * (0.5 * panel_size_x - peak_offset_x + peak_size_x), peak_size, progressbar_color, f * autocvar_hud_progressbar_alpha * panel_fg_alpha, DRAWFLAG_NORMAL);
+                }
+                else
+                    drawfill(panel_pos + speed_offset + eX * (peak_offset_x - peak_size_x), peak_size, progressbar_color, f * autocvar_hud_progressbar_alpha * panel_fg_alpha, DRAWFLAG_NORMAL);
+                       }
 
-       sz = autocvar_cl_showacceleration_size;
-       scale = autocvar_cl_showacceleration_scale;
-       alpha = autocvar_cl_showacceleration_alpha;
-       if (autocvar_cl_showacceleration_color_custom)
-               rgb = stov(autocvar_cl_showacceleration_color);
-       else {
-               if (acceleration < 0)
-                       rgb = '1 .5 .5' - '0 .5 .5' * bound(0, -acceleration * 0.2, 1);
+                       //top speed
+                       tmp_offset_y = panel_size_y * 0.4;
+                       tmp_size_x = panel_size_x * (1 - 0.75);
+                       tmp_size_y = panel_size_y - tmp_offset_y;
+                       drawstring_aspect(panel_pos + speed_offset + tmp_offset, ftos(top_speed), tmp_size, '1 0 0', f * panel_fg_alpha, DRAWFLAG_NORMAL);
+               }
                else
-                       rgb = '.5 1 .5' - '.5 0 .5' * bound(0, +acceleration * 0.2, 1);
+                       top_speed = 0;
        }
 
-       if (acceleration > 0)
-        HUD_Panel_DrawProgressBar(pos, eX * (vid_conwidth - pos_x) + eY * sz, "accelbar", 0, 0, acceleration * scale, rgb, alpha * autocvar_hud_progressbar_alpha * panel_fg_alpha, DRAWFLAG_NORMAL);
-       else
-        HUD_Panel_DrawProgressBar(eY * pos_y, eX * pos_x + eY * sz, "accelbar", 0, 1, -acceleration * scale, rgb, alpha * autocvar_hud_progressbar_alpha * panel_fg_alpha, DRAWFLAG_NORMAL);
+       //draw acceleration
+       if(acceleration)
+       if(autocvar_hud_panel_physics_progressbar == 1 || autocvar_hud_panel_physics_progressbar == 3)
+       {
+               if (acceleration < 0)
+                       HUD_Panel_GetProgressBarColor(acceleration_neg);
+               else
+                       HUD_Panel_GetProgressBarColor(acceleration);
+               HUD_Panel_DrawProgressBar(panel_pos + acceleration_offset, panel_size, "accelbar", acceleration/autocvar_hud_panel_physics_acceleration_max, 0, acceleration_baralign, progressbar_color, autocvar_hud_progressbar_alpha * panel_fg_alpha, DRAWFLAG_NORMAL);
+       }
+       if (autocvar_hud_panel_physics_text == 1 || autocvar_hud_panel_physics_text == 3)
+               drawstring_aspect(panel_pos + acceleration_offset, strcat(ftos_decimals(acceleration, 2), "g"), panel_size, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
 }
 
+/*
+==================
+Main HUD system
+==================
+*/
+
 void HUD_Reset (void)
 {
        // reset gametype specific icons
@@ -5143,6 +4543,8 @@ switch (id) {\
                HUD_EngineInfo(); break;\
        case (HUD_PANEL_INFOMESSAGES):\
                 HUD_InfoMessages(); break;\
+       case (HUD_PANEL_PHYSICS):\
+                HUD_Physics(); break;\
 } ENDS_WITH_CURLY_BRACE
 
 void HUD_Main (void)
@@ -5162,8 +4564,6 @@ void HUD_Main (void)
        else if(autocvar__menu_alpha == 0 && scoreboard_fade_alpha == 0)
                hud_fade_alpha = 1;
 
-       hud_fontsize = HUD_GetFontsize("hud_fontsize");
-
        if(!autocvar__hud_configure && !hud_fade_alpha)
                return;
 
@@ -5178,16 +4578,16 @@ void HUD_Main (void)
        // HUD configure visible grid
        if(autocvar__hud_configure && autocvar_hud_configure_grid && autocvar_hud_configure_grid_alpha)
        {
+               hud_configure_gridSize_x = bound(0.005, cvar("hud_configure_grid_xsize"), 0.2);
+               hud_configure_gridSize_y = bound(0.005, cvar("hud_configure_grid_ysize"), 0.2);
+               hud_configure_realGridSize_x = hud_configure_gridSize_x * vid_conwidth;
+               hud_configure_realGridSize_y = hud_configure_gridSize_y * vid_conheight;
                // x-axis
-               for(i = 0; i < 1/bound(0.005, autocvar_hud_configure_grid_xsize, 0.2); ++i)
-               {
-                       drawfill(eX * i * vid_conwidth * bound(0.005, autocvar_hud_configure_grid_xsize, 0.2), eX + eY * vid_conheight, '0.5 0.5 0.5', autocvar_hud_configure_grid_alpha, DRAWFLAG_NORMAL);
-               }
+               for(i = 0; i < 1/hud_configure_gridSize_x; ++i)
+                       drawfill(eX * i * hud_configure_realGridSize_x, eX + eY * vid_conheight, '0.5 0.5 0.5', autocvar_hud_configure_grid_alpha, DRAWFLAG_NORMAL);
                // y-axis
-               for(i = 0; i < 1/bound(0.005, autocvar_hud_configure_grid_ysize, 0.2); ++i)
-               {
-                       drawfill(eY * i * vid_conheight * bound(0.005, autocvar_hud_configure_grid_ysize, 0.2), eY + eX * vid_conwidth, '0.5 0.5 0.5', autocvar_hud_configure_grid_alpha, DRAWFLAG_NORMAL);
-               }
+               for(i = 0; i < 1/hud_configure_gridSize_y; ++i)
+                       drawfill(eY * i * hud_configure_realGridSize_y, eY + eX * vid_conwidth, '0.5 0.5 0.5', autocvar_hud_configure_grid_alpha, DRAWFLAG_NORMAL);
        }
 
     current_player = (spectatee_status > 0) ? spectatee_status : player_localentnum;
@@ -5233,14 +4633,45 @@ void HUD_Main (void)
 
        // cache the panel order into the panel_order array
        if(autocvar__hud_panelorder != hud_panelorder_prev) {
+               for(i = 0; i < HUD_PANEL_NUM; ++i)
+                       panel_order[i] = -1;
+               string s;
+               float p_num, warning;
+               float argc = tokenize_console(autocvar__hud_panelorder);
+               if (argc > HUD_PANEL_NUM)
+                       warning = true;
+               //first detect wrong/missing panel numbers
+               for(i = 0; i < HUD_PANEL_NUM; ++i) {
+                       p_num = stof(argv(i));
+                       if (p_num >= 0 && p_num < HUD_PANEL_NUM) { //correct panel number?
+                               if (panel_order[p_num] == -1) //found for the first time?
+                                       s = strcat(s, ftos(p_num), " ");
+                               panel_order[p_num] = 1; //mark as found
+                       }
+                       else
+                               warning = true;
+               }
+               for(i = 0; i < HUD_PANEL_NUM; ++i) {
+                       if (panel_order[i] == -1) {
+                               warning = true;
+                               s = strcat(s, ftos(i), " "); //add missing panel number
+                       }
+               }
+               if (warning)
+                       print(_("Automatically fixed wrong/missing panel numbers in _hud_panelorder\n"));
+
+               cvar_set("_hud_panelorder", s);
                if(hud_panelorder_prev)
                        strunzone(hud_panelorder_prev);
-               hud_panelorder_prev = strzone(autocvar__hud_panelorder);
-               tokenize_console(autocvar__hud_panelorder);
+               hud_panelorder_prev = strzone(s);
+
+               //now properly set panel_order
+               tokenize_console(s);
                for(i = 0; i < HUD_PANEL_NUM; ++i) {
                        panel_order[i] = stof(argv(i));
                }
        }
+
        // draw panels in order specified by panel_order array
        for(i = HUD_PANEL_NUM - 1; i >= 0; --i) {
                if(i != HUD_PANEL_CHAT || !autocvar__con_chat_maximized) // don't draw maximized chat panel twice!
@@ -5251,15 +4682,15 @@ void HUD_Main (void)
        if(autocvar__con_chat_maximized)
                HUD_Chat(); // HUD_DrawPanel(HUD_PANEL_CHAT);
 
-       // TODO hud_'ify these
-       if (autocvar_cl_showspeed)
-               HUD_ShowSpeed();
-       if (autocvar_cl_showacceleration)
-               HUD_ShowAcceleration();
-
        if (autocvar__hud_configure && spectatee_status && hud_configure_prev == -1) // try to join if we are in hud_configure mode, but still spectating, and in the first frame (in order to get rid of motd when launching a server via the menu "HUD Setup" button)
                localcmd("cmd selectteam auto; cmd join\n");
 
+       if(autocvar__hud_configure && tab_panel != -1)
+       {
+               HUD_Panel_UpdatePosSizeForId(tab_panel)
+               drawfill(panel_pos - '1 1 0' * panel_bg_border, panel_size + '2 2 0' * panel_bg_border, '1 1 1', .2, DRAWFLAG_NORMAL);
+       }
+
        hud_configure_prev = autocvar__hud_configure;
 
        if (!autocvar__hud_configure) // hud config mode disabled, enable normal alpha stuff again
index 21e3746b560811ee3d89c7b422b8c28f5f55a1bc..d2fbfebef2603ca71bc6ee2fc470cfbc47076f44 100644 (file)
@@ -10,7 +10,6 @@ vector panel_click_distance; // mouse cursor distance from the top left corner o
 vector panel_click_resizeorigin; // coordinates for opposite point when resizing
 float resizeCorner; // 1 = topleft, 2 = topright, 3 = bottomleft, 4 = bottomright
 var float highlightedPanel = -1;
-var float highlightedPanel_prev = -1;
 float highlightedAction; // 0 = nothing, 1 = move, 2 = resize
 
 const float BORDER_MULTIPLIER = 0.25;
@@ -39,6 +38,8 @@ float teamnagger;
 
 float hud_configure_checkcollisions;
 float hud_configure_prev;
+vector hud_configure_gridSize;
+vector hud_configure_realGridSize;
 
 float hudShiftState;
 const float S_SHIFT = 1;
@@ -61,7 +62,7 @@ var vector panel_size_backup;
 var float highlightedPanel_copied = -1; //this is good only to know if there is something copied
 var vector panel_size_copied;
 
-var float active_panel; // this panel has recently referred the UpdateCvars macro
+var float hud_configure_active_panel; // this panel has recently referred the UpdateCvars macro
 var string panel_name;
 var float panel_enabled;
 var vector panel_pos;
@@ -92,12 +93,15 @@ float current_player;
                progressbar_color = stov(cvar_string("hud_progressbar_" #item "_color"))
 #define HUD_Panel_GetProgressBarColorForString(item) \
 switch(item) {\
-       case "strength": HUD_Panel_GetProgressBarColor(strength); break;\
-       case "shield": HUD_Panel_GetProgressBarColor(shield); break;\
        case "health": HUD_Panel_GetProgressBarColor(health); break;\
        case "armor": HUD_Panel_GetProgressBarColor(armor); break;\
+       case "strength": HUD_Panel_GetProgressBarColor(strength); break;\
+       case "shield": HUD_Panel_GetProgressBarColor(shield); break;\
        case "fuel": HUD_Panel_GetProgressBarColor(fuel); break;\
        case "nexball": HUD_Panel_GetProgressBarColor(nexball); break;\
+       case "speed": HUD_Panel_GetProgressBarColor(speed); break;\
+       case "acceleration": HUD_Panel_GetProgressBarColor(acceleration); break;\
+       case "acceleration_neg": HUD_Panel_GetProgressBarColor(acceleration_neg); break;\
 } ENDS_WITH_CURLY_BRACE
 
 // Get value for panel_bg: if "" fetch default, else use panel_bg_str
@@ -159,13 +163,14 @@ if(panel_bg_alpha_str == "") {\
        panel_bg_alpha_str = ftos(autocvar_hud_panel_bg_alpha);\
 }\
 panel_bg_alpha = stof(panel_bg_alpha_str);\
-if(autocvar__hud_configure && menu_enabled == 2 && highlightedPanel == active_panel) {\
-       panel_bg_alpha = (1 - autocvar__menu_alpha) * max(autocvar_hud_configure_bg_minalpha, panel_bg_alpha) + autocvar__menu_alpha * panel_bg_alpha;\
-} else if(autocvar__hud_configure) {\
-       panel_bg_alpha = max(autocvar_hud_configure_bg_minalpha, panel_bg_alpha);\
-} if(autocvar__hud_configure && !panel_enabled) {\
-       panel_bg_alpha = 0.25;\
-} if(!(menu_enabled == 2 && highlightedPanel == active_panel)) {\
+if(autocvar__hud_configure) {\
+       if(!panel_enabled)\
+               panel_bg_alpha = 0.25;\
+       else if(menu_enabled == 2 && highlightedPanel == hud_configure_active_panel)\
+               panel_bg_alpha = (1 - autocvar__menu_alpha) * max(cvar("hud_configure_bg_minalpha"), panel_bg_alpha) + autocvar__menu_alpha * panel_bg_alpha;\
+       else\
+               panel_bg_alpha = max(cvar("hud_configure_bg_minalpha"), panel_bg_alpha);\
+} if(!(menu_enabled == 2 && highlightedPanel == hud_configure_active_panel)) {\
        panel_bg_alpha *= hud_fade_alpha;\
 }
 
@@ -176,7 +181,7 @@ if(autocvar__hud_configure && menu_enabled == 2 && highlightedPanel == active_pa
 panel_fg_alpha = autocvar_hud_panel_fg_alpha;\
 if(autocvar__hud_configure && !panel_enabled)\
        panel_fg_alpha = 0.25;\
-if(!(menu_enabled == 2 && highlightedPanel == active_panel))\
+if(!(menu_enabled == 2 && highlightedPanel == hud_configure_active_panel))\
        panel_fg_alpha *= hud_fade_alpha;
 
 // Get border. See comments above, it's similar.
@@ -205,13 +210,15 @@ if(panel_bg_padding_str == "") {\
 panel_bg_padding = min(min(panel_size_x, panel_size_y)/2 - 5, panel_bg_padding);
 
 // Point to the macros above (stupid max macro length)
-#define HUD_Panel_StringVars()\
+#define HUD_Panel_GetStringVars()\
 HUD_Panel_GetBg()\
-HUD_Panel_GetColorTeam()\
-HUD_Panel_GetColor()\
-HUD_Panel_GetBgAlpha()\
+if (panel_bg != "0") {\
+       HUD_Panel_GetColorTeam()\
+       HUD_Panel_GetColor()\
+       HUD_Panel_GetBgAlpha()\
+       HUD_Panel_GetBorder()\
+}\
 HUD_Panel_GetFgAlpha()\
-HUD_Panel_GetBorder()\
 HUD_Panel_GetScaledVectors()\
 HUD_Panel_GetPadding()
 
@@ -225,7 +232,9 @@ else\
 panel_pos = (1 - autocvar__menu_alpha) * panel_pos + (autocvar__menu_alpha) * menu_enable_panelpos;
 
 // return smoothly faded size of given panel when a dialog is active
-var vector menu_enable_maxsize; FTEQCC_YOU_SUCK_THIS_IS_NOT_UNREFERENCED(menu_enable_maxsize);
+//var vector menu_enable_maxsize; FTEQCC_YOU_SUCK_THIS_IS_NOT_UNREFERENCED(menu_enable_maxsize);
+var float menu_enable_maxsize_x;
+var float menu_enable_maxsize_y;
 var vector menu_enable_size;
 #define HUD_Panel_GetMenuSize()\
 menu_enable_maxsize_x = 0.3 * vid_conwidth;\
@@ -260,13 +269,22 @@ panel_bg_color_team_str = cvar_string("hud_panel_" #name "_bg_color_team"); \
 panel_bg_alpha_str = cvar_string("hud_panel_" #name "_bg_alpha"); \
 panel_bg_border_str = cvar_string("hud_panel_" #name "_bg_border"); \
 panel_bg_padding_str = cvar_string("hud_panel_" #name "_bg_padding"); \
-HUD_Panel_StringVars()\
-if(menu_enabled == 2 && active_panel == highlightedPanel) {\
+HUD_Panel_GetStringVars()\
+if(menu_enabled == 2 && hud_configure_active_panel == highlightedPanel) {\
        HUD_Panel_GetMenuSize()\
        HUD_Panel_GetMenuPos()\
 } ENDS_WITH_CURLY_BRACE
 
+// FTEQCC I HATE YOU WHY DO YOU MAKE ME DO THIS??? :(
+// max macro length is 1024 characters, I must split it up :(
+
 // Update all common cvars of given panel id
+#define HUD_Panel_UpdateCvarsForId_Part2(id) \
+switch(id) { \
+       case HUD_PANEL_INFOMESSAGES: HUD_Panel_UpdateCvars(infomessages) break; \
+       case HUD_PANEL_PHYSICS: HUD_Panel_UpdateCvars(physics); break;\
+}
+
 #define HUD_Panel_UpdateCvarsForId(id) \
 switch(id) { \
        case HUD_PANEL_WEAPONS: HUD_Panel_UpdateCvars(weapons) break; \
@@ -283,14 +301,14 @@ switch(id) { \
        case HUD_PANEL_PRESSEDKEYS: HUD_Panel_UpdateCvars(pressedkeys) break; \
        case HUD_PANEL_CHAT: HUD_Panel_UpdateCvars(chat) break; \
        case HUD_PANEL_ENGINEINFO: HUD_Panel_UpdateCvars(engineinfo) break; \
-       case HUD_PANEL_INFOMESSAGES: HUD_Panel_UpdateCvars(infomessages) break; \
+       default: HUD_Panel_UpdateCvarsForId_Part2(id)\
 }
 
 #define HUD_Panel_UpdatePosSize(name) \
 panel_pos = stov(cvar_string("hud_panel_" #name "_pos")); \
 panel_size = stov(cvar_string("hud_panel_" #name "_size")); \
 HUD_Panel_GetScaledVectors()\
-if(menu_enabled == 2 && active_panel == highlightedPanel) {\
+if(menu_enabled == 2 && hud_configure_active_panel == highlightedPanel) {\
        HUD_Panel_GetMenuSize()\
        HUD_Panel_GetMenuPos()\
 }\
@@ -298,6 +316,12 @@ panel_bg_border_str = cvar_string("hud_panel_" #name "_bg_border"); \
 HUD_Panel_GetBorder()
 
 // Update pos and size of given panel id
+#define HUD_Panel_UpdatePosSizeForId_Part2(id) \
+switch(id) { \
+       case HUD_PANEL_INFOMESSAGES: HUD_Panel_UpdatePosSize(infomessages) break;\
+       case HUD_PANEL_PHYSICS: HUD_Panel_UpdatePosSize(physics); break;\
+}
+
 #define HUD_Panel_UpdatePosSizeForId(id) \
 switch(id) { \
        case HUD_PANEL_WEAPONS: HUD_Panel_UpdatePosSize(weapons) break;\
@@ -314,5 +338,5 @@ switch(id) { \
        case HUD_PANEL_PRESSEDKEYS: HUD_Panel_UpdatePosSize(pressedkeys) break;\
        case HUD_PANEL_CHAT: HUD_Panel_UpdatePosSize(chat) break;\
        case HUD_PANEL_ENGINEINFO: HUD_Panel_UpdatePosSize(engineinfo) break;\
-       case HUD_PANEL_INFOMESSAGES: HUD_Panel_UpdatePosSize(infomessages)\
+       default: HUD_Panel_UpdatePosSizeForId_Part2(id)\
 }
diff --git a/qcsrc/client/hud_config.qc b/qcsrc/client/hud_config.qc
new file mode 100644 (file)
index 0000000..0923e4e
--- /dev/null
@@ -0,0 +1,1115 @@
+#define HUD_Write(s) fputs(fh, s)
+// q: quoted, n: not quoted
+#define HUD_Write_Cvar_n(cvar) HUD_Write(strcat("seta ", cvar, " ", cvar_string(cvar), "\n"))
+#define HUD_Write_Cvar_q(cvar) HUD_Write(strcat("seta ", cvar, " \"", cvar_string(cvar), "\"\n"))
+#define HUD_Write_PanelCvar_n(cvar_suf) HUD_Write_Cvar_n(strcat("hud_panel_", panel_name, cvar_suf))
+#define HUD_Write_PanelCvar_q(cvar_suf) HUD_Write_Cvar_q(strcat("hud_panel_", panel_name, cvar_suf))
+// Save the config
+void HUD_Panel_ExportCfg(string cfgname)
+{
+       float fh;
+       string filename = strcat("hud_", autocvar_hud_skin, "_", cfgname, ".cfg");
+       fh = fopen(filename, FILE_WRITE);
+       if(fh >= 0)
+       {
+               HUD_Write_Cvar_q("hud_skin");
+               HUD_Write_Cvar_q("hud_panel_bg");
+               HUD_Write_Cvar_q("hud_panel_bg_color");
+               HUD_Write_Cvar_q("hud_panel_bg_color_team");
+               HUD_Write_Cvar_q("hud_panel_bg_alpha");
+               HUD_Write_Cvar_q("hud_panel_bg_border");
+               HUD_Write_Cvar_q("hud_panel_bg_padding");
+               HUD_Write_Cvar_q("hud_panel_fg_alpha");
+               HUD_Write("\n");
+
+               HUD_Write_Cvar_q("hud_dock");
+               HUD_Write_Cvar_q("hud_dock_color");
+               HUD_Write_Cvar_q("hud_dock_color_team");
+               HUD_Write_Cvar_q("hud_dock_alpha");
+               HUD_Write("\n");
+
+               HUD_Write_Cvar_q("hud_progressbar_alpha");
+               HUD_Write_Cvar_q("hud_progressbar_strength_color");
+               HUD_Write_Cvar_q("hud_progressbar_shield_color");
+               HUD_Write_Cvar_q("hud_progressbar_health_color");
+               HUD_Write_Cvar_q("hud_progressbar_armor_color");
+               HUD_Write_Cvar_q("hud_progressbar_fuel_color");
+               HUD_Write_Cvar_q("hud_progressbar_nexball_color");
+               HUD_Write("\n");
+
+               HUD_Write_Cvar_q("_hud_panelorder");
+               HUD_Write("\n");
+
+               HUD_Write_Cvar_q("hud_configure_grid");
+               HUD_Write_Cvar_q("hud_configure_grid_xsize");
+               HUD_Write_Cvar_q("hud_configure_grid_ysize");
+               HUD_Write("\n");
+
+               HUD_Write_Cvar_q("scr_centerpos");
+               HUD_Write("\n");
+
+               // common cvars for all panels
+               float i;
+               for (i = 0; i < HUD_PANEL_NUM; ++i)
+               {
+                       HUD_Panel_GetName(i);
+
+                       HUD_Write_PanelCvar_n("");
+                       HUD_Write_PanelCvar_q("_pos");
+                       HUD_Write_PanelCvar_q("_size");
+                       HUD_Write_PanelCvar_q("_bg");
+                       HUD_Write_PanelCvar_q("_bg_color");
+                       HUD_Write_PanelCvar_q("_bg_color_team");
+                       HUD_Write_PanelCvar_q("_bg_alpha");
+                       HUD_Write_PanelCvar_q("_bg_border");
+                       HUD_Write_PanelCvar_q("_bg_padding");
+                       switch(i) {
+                               case HUD_PANEL_WEAPONS:
+                                       HUD_Write_PanelCvar_q("_complainbubble");
+                                       HUD_Write_PanelCvar_q("_complainbubble_padding");
+                                       HUD_Write_PanelCvar_q("_complainbubble_color_outofammo");
+                                       HUD_Write_PanelCvar_q("_complainbubble_color_donthave");
+                                       HUD_Write_PanelCvar_q("_complainbubble_color_unavailable");
+                                       HUD_Write_PanelCvar_q("_ammo_color");
+                                       HUD_Write_PanelCvar_q("_ammo_alpha");
+                                       HUD_Write_PanelCvar_q("_aspect");
+                                       HUD_Write_PanelCvar_q("_timeout");
+                                       HUD_Write_PanelCvar_q("_timeout_effect");
+                                       break;
+                               case HUD_PANEL_AMMO:
+                                       HUD_Write_PanelCvar_q("_onlycurrent");
+                                       HUD_Write_PanelCvar_q("_iconalign");
+                                       HUD_Write_PanelCvar_q("_progressbar");
+                                       HUD_Write_PanelCvar_q("_progressbar_name");
+                                       HUD_Write_PanelCvar_q("_progressbar_xoffset");
+                                       HUD_Write_PanelCvar_q("_text");
+                                       break;
+                               case HUD_PANEL_POWERUPS:
+                                       HUD_Write_PanelCvar_q("_flip");
+                                       HUD_Write_PanelCvar_q("_iconalign");
+                                       HUD_Write_PanelCvar_q("_baralign");
+                                       HUD_Write_PanelCvar_q("_progressbar");
+                                       HUD_Write_PanelCvar_q("_progressbar_strength");
+                                       HUD_Write_PanelCvar_q("_progressbar_shield");
+                                       break;
+                               case HUD_PANEL_HEALTHARMOR:
+                                       HUD_Write_PanelCvar_q("_flip");
+                                       HUD_Write_PanelCvar_q("_iconalign");
+                                       HUD_Write_PanelCvar_q("_baralign");
+                                       HUD_Write_PanelCvar_q("_progressbar");
+                                       HUD_Write_PanelCvar_q("_progressbar_health");
+                                       HUD_Write_PanelCvar_q("_progressbar_armor");
+                                       HUD_Write_PanelCvar_q("_text");
+                                       break;
+                               case HUD_PANEL_NOTIFY:
+                                       HUD_Write_PanelCvar_q("_flip");
+                                       HUD_Write_PanelCvar_q("_fontsize");
+                                       HUD_Write_PanelCvar_q("_print");
+                                       break;
+                               case HUD_PANEL_RADAR:
+                                       HUD_Write_PanelCvar_q("_foreground_alpha");
+                                       break;
+                               case HUD_PANEL_VOTE:
+                                       HUD_Write_PanelCvar_q("_alreadyvoted_alpha");
+                                       break;
+                               case HUD_PANEL_PRESSEDKEYS:
+                                       HUD_Write_PanelCvar_q("_aspect");
+                                       break;
+                               case HUD_PANEL_INFOMESSAGES:
+                                       HUD_Write_PanelCvar_q("_flip");
+                                       break;
+                               case HUD_PANEL_PHYSICS:
+                                       HUD_Write_PanelCvar_q("_flip");
+                                       HUD_Write_PanelCvar_q("_baralign");
+                                       HUD_Write_PanelCvar_q("_progressbar");
+                                       HUD_Write_PanelCvar_q("_acceleration_mode");
+                                       break;
+                       }
+                       HUD_Write("\n");
+               }
+               HUD_Write("menu_sync\n"); // force the menu to reread the cvars, so that the dialogs are updated
+
+               print(sprintf(_("^2Successfully exported to %s! (Note: It's saved in data/data/)\n"), filename));
+               fclose(fh);
+       }
+       else
+               print(sprintf(_("^1Couldn't write to %s\n"), filename));
+}
+
+// check if move will result in panel being moved into another panel. If so, return snapped vector, otherwise return the given vector
+vector HUD_Panel_CheckMove(vector myPos, vector mySize)
+{
+       float i;
+       float myCenter_x, myCenter_y, targCenter_x, targCenter_y;
+       vector myTarget;
+       myTarget = myPos;
+
+       for (i = 0; i < HUD_PANEL_NUM; ++i) {
+               if(i == highlightedPanel || !panel_enabled)
+                       continue;
+
+               HUD_Panel_UpdatePosSizeForId(i);
+
+               panel_pos -= '1 1 0' * panel_bg_border;
+               panel_size += '2 2 0' * panel_bg_border;
+
+               if(myPos_y + mySize_y < panel_pos_y)
+                       continue;
+               if(myPos_y > panel_pos_y + panel_size_y)
+                       continue;
+
+               if(myPos_x + mySize_x < panel_pos_x)
+                       continue;
+               if(myPos_x > panel_pos_x + panel_size_x)
+                       continue;
+
+               // OK, there IS a collision.
+
+               myCenter_x = myPos_x + 0.5 * mySize_x;
+               myCenter_y = myPos_y + 0.5 * mySize_y;
+
+               targCenter_x = panel_pos_x + 0.5 * panel_size_x;
+               targCenter_y = panel_pos_y + 0.5 * panel_size_y;
+
+               if(myCenter_x < targCenter_x && myCenter_y < targCenter_y) // top left (of the target panel)
+               {
+                       if(myPos_x + mySize_x - panel_pos_x < myPos_y + mySize_y - panel_pos_y) // push it to the side
+                               myTarget_x = panel_pos_x - mySize_x;
+                       else // push it upwards
+                               myTarget_y = panel_pos_y - mySize_y;
+               }
+               else if(myCenter_x > targCenter_x && myCenter_y < targCenter_y) // top right
+               {
+                       if(panel_pos_x + panel_size_x - myPos_x < myPos_y + mySize_y - panel_pos_y) // push it to the side
+                               myTarget_x = panel_pos_x + panel_size_x;
+                       else // push it upwards
+                               myTarget_y = panel_pos_y - mySize_y;
+               }
+               else if(myCenter_x < targCenter_x && myCenter_y > targCenter_y) // bottom left
+               {
+                       if(myPos_x + mySize_x - panel_pos_x < panel_pos_y + panel_size_y - myPos_y) // push it to the side
+                               myTarget_x = panel_pos_x - mySize_x;
+                       else // push it downwards
+                               myTarget_y = panel_pos_y + panel_size_y;
+               }
+               else if(myCenter_x > targCenter_x && myCenter_y > targCenter_y) // bottom right
+               {
+                       if(panel_pos_x + panel_size_x - myPos_x < panel_pos_y + panel_size_y - myPos_y) // push it to the side
+                               myTarget_x = panel_pos_x + panel_size_x;
+                       else // push it downwards
+                               myTarget_y = panel_pos_y + panel_size_y;
+               }
+               //if(cvar("hud_configure_checkcollisions_debug"))
+                       //drawfill(panel_pos, panel_size, '1 1 0', .3, DRAWFLAG_NORMAL);
+       }
+
+       return myTarget;
+}
+
+void HUD_Panel_SetPos(vector pos)
+{
+       HUD_Panel_UpdatePosSizeForId(highlightedPanel);
+       vector mySize;
+       mySize = panel_size;
+
+       //if(cvar("hud_configure_checkcollisions_debug"))
+               //drawfill(pos, mySize, '1 1 1', .2, DRAWFLAG_NORMAL);
+
+       if(autocvar_hud_configure_grid)
+       {
+               pos_x = floor((pos_x/vid_conwidth)/hud_configure_gridSize_x + 0.5) * hud_configure_realGridSize_x;
+               pos_y = floor((pos_y/vid_conheight)/hud_configure_gridSize_y + 0.5) * hud_configure_realGridSize_y;
+       }
+
+       if(hud_configure_checkcollisions)
+               pos = HUD_Panel_CheckMove(pos, mySize);
+
+       pos_x = bound(0, pos_x, vid_conwidth - mySize_x);
+       pos_y = bound(0, pos_y, vid_conheight - mySize_y);
+
+       string s;
+       s = strcat(ftos(pos_x/vid_conwidth), " ", ftos(pos_y/vid_conheight));
+
+       HUD_Panel_GetName(highlightedPanel);
+       cvar_set(strcat("hud_panel_", panel_name, "_pos"), s);
+}
+
+// check if resize will result in panel being moved into another panel. If so, return snapped vector, otherwise return the given vector
+vector HUD_Panel_CheckResize(vector mySize, vector resizeorigin) {
+       float i;
+
+       vector targEndPos;
+
+       float dist_x, dist_y;
+       float ratio;
+       ratio = mySize_x/mySize_y;
+
+       for (i = 0; i < HUD_PANEL_NUM; ++i) {
+               if(i == highlightedPanel || !panel_enabled)
+                       continue;
+
+               HUD_Panel_UpdatePosSizeForId(i);
+
+               panel_pos -= '1 1 0' * panel_bg_border;
+               panel_size += '2 2 0' * panel_bg_border;
+
+               targEndPos = panel_pos + panel_size;
+
+               // resizeorigin is WITHIN target panel, just abort any collision testing against that particular panel to produce expected behaviour!
+               if(resizeorigin_x > panel_pos_x && resizeorigin_x < targEndPos_x && resizeorigin_y > panel_pos_y && resizeorigin_y < targEndPos_y)
+                       continue;
+
+               if (resizeCorner == 1)
+               {
+                       // check if this panel is on our way
+                       if (resizeorigin_x <= panel_pos_x)
+                               continue;
+                       if (resizeorigin_y <= panel_pos_y)
+                               continue;
+                       if (targEndPos_x <= resizeorigin_x - mySize_x)
+                               continue;
+                       if (targEndPos_y <= resizeorigin_y - mySize_y)
+                               continue;
+
+                       // there is a collision:
+                       // detect which side of the panel we are facing is actually limiting the resizing
+                       // (which side the resize direction finds for first) and reduce the size up to there
+                       //
+                       // dist is the distance between resizeorigin and the "analogous" point of the panel
+                       // in this case between resizeorigin (bottom-right point) and the bottom-right point of the panel
+                       dist_x = resizeorigin_x - targEndPos_x;
+                       dist_y = resizeorigin_y - targEndPos_y;
+                       if (dist_y <= 0 || dist_x / dist_y > ratio)
+                               mySize_x = min(mySize_x, dist_x);
+                       else
+                               mySize_y = min(mySize_y, dist_y);
+               }
+               else if (resizeCorner == 2)
+               {
+                       if (resizeorigin_x >= targEndPos_x)
+                               continue;
+                       if (resizeorigin_y <= panel_pos_y)
+                               continue;
+                       if (panel_pos_x >= resizeorigin_x + mySize_x)
+                               continue;
+                       if (targEndPos_y <= resizeorigin_y - mySize_y)
+                               continue;
+
+                       dist_x = panel_pos_x - resizeorigin_x;
+                       dist_y = resizeorigin_y - targEndPos_y;
+                       if (dist_y <= 0 || dist_x / dist_y > ratio)
+                               mySize_x = min(mySize_x, dist_x);
+                       else
+                               mySize_y = min(mySize_y, dist_y);
+               }
+               else if (resizeCorner == 3)
+               {
+                       if (resizeorigin_x <= panel_pos_x)
+                               continue;
+                       if (resizeorigin_y >= targEndPos_y)
+                               continue;
+                       if (targEndPos_x <= resizeorigin_x - mySize_x)
+                               continue;
+                       if (panel_pos_y >= resizeorigin_y + mySize_y)
+                               continue;
+
+                       dist_x = resizeorigin_x - targEndPos_x;
+                       dist_y = panel_pos_y - resizeorigin_y;
+                       if (dist_y <= 0 || dist_x / dist_y > ratio)
+                               mySize_x = min(mySize_x, dist_x);
+                       else
+                               mySize_y = min(mySize_y, dist_y);
+               }
+               else if (resizeCorner == 4)
+               {
+                       if (resizeorigin_x >= targEndPos_x)
+                               continue;
+                       if (resizeorigin_y >= targEndPos_y)
+                               continue;
+                       if (panel_pos_x >= resizeorigin_x + mySize_x)
+                               continue;
+                       if (panel_pos_y >= resizeorigin_y + mySize_y)
+                               continue;
+
+                       dist_x = panel_pos_x - resizeorigin_x;
+                       dist_y = panel_pos_y - resizeorigin_y;
+                       if (dist_y <= 0 || dist_x / dist_y > ratio)
+                               mySize_x = min(mySize_x, dist_x);
+                       else
+                               mySize_y = min(mySize_y, dist_y);
+               }
+               //if(cvar("hud_configure_checkcollisions_debug"))
+                       //drawfill(panel_pos, panel_size, '1 1 0', .3, DRAWFLAG_NORMAL);
+       }
+
+       return mySize;
+}
+
+void HUD_Panel_SetPosSize(vector mySize)
+{
+       HUD_Panel_UpdatePosSizeForId(highlightedPanel);
+       vector resizeorigin;
+       resizeorigin = panel_click_resizeorigin;
+       vector myPos;
+
+       // minimum panel size cap
+       mySize_x = max(0.025 * vid_conwidth, mySize_x);
+       mySize_y = max(0.025 * vid_conheight, mySize_y);
+
+       if(highlightedPanel == HUD_PANEL_CHAT) // some panels have their own restrictions, like the chat panel (which actually only moves the engine chat print around). Looks bad if it's too small.
+       {
+               mySize_x = max(17 * autocvar_con_chatsize, mySize_x);
+               mySize_y = max(2 * autocvar_con_chatsize + 2 * panel_bg_padding, mySize_y);
+       }
+
+       // collision testing|
+       // -----------------+
+
+       // we need to know pos at this stage, but it might still change later if we hit a screen edge/other panel (?)
+       if(resizeCorner == 1) {
+               myPos_x = resizeorigin_x - mySize_x;
+               myPos_y = resizeorigin_y - mySize_y;
+       } else if(resizeCorner == 2) {
+               myPos_x = resizeorigin_x;
+               myPos_y = resizeorigin_y - mySize_y;
+       } else if(resizeCorner == 3) {
+               myPos_x = resizeorigin_x - mySize_x;
+               myPos_y = resizeorigin_y;
+       } else { // resizeCorner == 4
+               myPos_x = resizeorigin_x;
+               myPos_y = resizeorigin_y;
+       }
+
+       // left/top screen edges
+       if(myPos_x < 0)
+               mySize_x = mySize_x + myPos_x;
+       if(myPos_y < 0)
+               mySize_y = mySize_y + myPos_y;
+
+       // bottom/right screen edges
+       if(myPos_x + mySize_x > vid_conwidth)
+               mySize_x = vid_conwidth - myPos_x;
+       if(myPos_y + mySize_y > vid_conheight)
+               mySize_y = vid_conheight - myPos_y;
+
+       //if(cvar("hud_configure_checkcollisions_debug"))
+               //drawfill(myPos, mySize, '1 1 1', .2, DRAWFLAG_NORMAL);
+
+       // before checkresize, otherwise panel can be snapped partially inside another panel or panel aspect ratio can be broken
+       if(autocvar_hud_configure_grid)
+       {
+               mySize_x = floor((mySize_x/vid_conwidth)/hud_configure_gridSize_x + 0.5) * hud_configure_realGridSize_x;
+               mySize_y = floor((mySize_y/vid_conheight)/hud_configure_gridSize_y + 0.5) * hud_configure_realGridSize_y;
+       }
+
+       if(hud_configure_checkcollisions)
+               mySize = HUD_Panel_CheckResize(mySize, resizeorigin);
+
+       // minimum panel size cap, do this once more so we NEVER EVER EVER have a panel smaller than this, JUST IN CASE above code still makes the panel eg negative (impossible to resize back without changing cvars manually then)
+       mySize_x = max(0.025 * vid_conwidth, mySize_x);
+       mySize_y = max(0.025 * vid_conheight, mySize_y);
+
+       // do another pos check, as size might have changed by now
+       if(resizeCorner == 1) {
+               myPos_x = resizeorigin_x - mySize_x;
+               myPos_y = resizeorigin_y - mySize_y;
+       } else if(resizeCorner == 2) {
+               myPos_x = resizeorigin_x;
+               myPos_y = resizeorigin_y - mySize_y;
+       } else if(resizeCorner == 3) {
+               myPos_x = resizeorigin_x - mySize_x;
+               myPos_y = resizeorigin_y;
+       } else { // resizeCorner == 4
+               myPos_x = resizeorigin_x;
+               myPos_y = resizeorigin_y;
+       }
+
+       //if(cvar("hud_configure_checkcollisions_debug"))
+               //drawfill(myPos, mySize, '0 1 0', .3, DRAWFLAG_NORMAL);
+
+       HUD_Panel_GetName(highlightedPanel);
+       string s;
+       s = strcat(ftos(mySize_x/vid_conwidth), " ", ftos(mySize_y/vid_conheight));
+       cvar_set(strcat("hud_panel_", panel_name, "_size"), s);
+
+       s = strcat(ftos(myPos_x/vid_conwidth), " ", ftos(myPos_y/vid_conheight));
+       cvar_set(strcat("hud_panel_", panel_name, "_pos"), s);
+}
+
+float pressed_key_time;
+vector highlightedPanel_initial_pos, highlightedPanel_initial_size;
+void HUD_Panel_Arrow_Action(float nPrimary)
+{
+       if (highlightedPanel == -1)
+               return;
+
+       hud_configure_checkcollisions = (!(hudShiftState & S_CTRL) && autocvar_hud_configure_checkcollisions);
+
+       float step;
+       if(autocvar_hud_configure_grid)
+       {
+               if (nPrimary == K_UPARROW || nPrimary == K_DOWNARROW)
+               {
+                       if (hudShiftState & S_SHIFT)
+                               step = hud_configure_realGridSize_y;
+                       else
+                               step = 2 * hud_configure_realGridSize_y;
+               }
+               else
+               {
+                       if (hudShiftState & S_SHIFT)
+                               step = hud_configure_realGridSize_x;
+                       else
+                               step = 2 * hud_configure_realGridSize_x;
+               }
+       }
+       else
+       {
+               if (nPrimary == K_UPARROW || nPrimary == K_DOWNARROW)
+                       step = vid_conheight;
+               else
+                       step = vid_conwidth;
+               if (hudShiftState & S_SHIFT)
+                       step = (step / 256); // more precision
+               else
+                       step = (step / 64) * (1 + 2 * (time - pressed_key_time));
+       }
+
+       HUD_Panel_UpdatePosSizeForId(highlightedPanel);
+
+       highlightedPanel_initial_pos = panel_pos;
+       highlightedPanel_initial_size = panel_size;
+
+       if (hudShiftState & S_ALT) // resize
+       {
+               highlightedAction = 1;
+               if(nPrimary == K_UPARROW)
+                       resizeCorner = 1;
+               else if(nPrimary == K_RIGHTARROW)
+                       resizeCorner = 2;
+               else if(nPrimary == K_LEFTARROW)
+                       resizeCorner = 3;
+               else // if(nPrimary == K_DOWNARROW)
+                       resizeCorner = 4;
+
+               // ctrl+arrow reduces the size, instead of increasing it
+               // Note that ctrl disables collisions check too, but it's fine
+               // since we don't collide with anything reducing the size
+               if (hudShiftState & S_CTRL) {
+                       step = -step;
+                       resizeCorner = 5 - resizeCorner;
+               }
+
+               vector mySize;
+               mySize = panel_size;
+               panel_click_resizeorigin = panel_pos;
+               if(resizeCorner == 1) {
+                       panel_click_resizeorigin += mySize;
+                       mySize_y += step;
+               } else if(resizeCorner == 2) {
+                       panel_click_resizeorigin_y += mySize_y;
+                       mySize_x += step;
+               } else if(resizeCorner == 3) {
+                       panel_click_resizeorigin_x += mySize_x;
+                       mySize_x += step;
+               } else { // resizeCorner == 4
+                       mySize_y += step;
+               }
+               HUD_Panel_SetPosSize(mySize);
+       }
+       else // move
+       {
+               highlightedAction = 2;
+               vector pos;
+               pos = panel_pos;
+               if(nPrimary == K_UPARROW)
+                       pos_y -= step;
+               else if(nPrimary == K_DOWNARROW)
+                       pos_y += step;
+               else if(nPrimary == K_LEFTARROW)
+                       pos_x -= step;
+               else // if(nPrimary == K_RIGHTARROW)
+                       pos_x += step;
+
+               HUD_Panel_SetPos(pos);
+       }
+
+       HUD_Panel_UpdatePosSizeForId(highlightedPanel);
+
+       if (highlightedPanel_initial_pos != panel_pos || highlightedPanel_initial_size != panel_size)
+       {
+               // backup!
+               panel_pos_backup = highlightedPanel_initial_pos;
+               panel_size_backup = highlightedPanel_initial_size;
+               highlightedPanel_backup = highlightedPanel;
+       }
+}
+
+const float S_MOUSE1 = 1;
+const float S_MOUSE2 = 2;
+const float S_MOUSE3 = 4;
+float mouseClicked;
+float prevMouseClicked; // previous state
+float prevMouseClickedTime; // time during previous left mouse click, to check for doubleclicks
+vector prevMouseClickedPos; // pos during previous left mouse click, to check for doubleclicks
+
+void HUD_Panel_EnableMenu();
+float tab_panels[HUD_PANEL_NUM];
+float tab_panel, tab_backward;
+vector tab_panel_pos;
+void HUD_Panel_FirstInDrawQ(float id);
+void reset_tab_panels()
+{
+       int i;
+       for(i = 0; i < HUD_PANEL_NUM; ++i)
+               tab_panels[i] = -1;
+}
+float HUD_Panel_InputEvent(float bInputType, float nPrimary, float nSecondary)
+{
+       string s;
+
+       if(!autocvar__hud_configure)
+               return false;
+
+       // allow console bind to work
+       string con_keys;
+       float keys;
+       con_keys = findkeysforcommand("toggleconsole");
+       keys = tokenize(con_keys);
+
+       float hit_con_bind, i;
+       for (i = 0; i < keys; ++i)
+       {
+               if(nPrimary == stof(argv(i)))
+                       hit_con_bind = 1;
+       }
+
+       if(bInputType == 0) {
+               if(nPrimary == K_ALT) hudShiftState |= S_ALT;
+               if(nPrimary == K_CTRL) hudShiftState |= S_CTRL;
+               if(nPrimary == K_SHIFT) hudShiftState |= S_SHIFT;
+       }
+       else if(bInputType == 1) {
+               if(nPrimary == K_ALT) hudShiftState -= (hudShiftState & S_ALT);
+               if(nPrimary == K_CTRL) hudShiftState -= (hudShiftState & S_CTRL);
+               if(nPrimary == K_SHIFT) hudShiftState -= (hudShiftState & S_SHIFT);
+       }
+
+       if(nPrimary == K_CTRL)
+       {
+               if (bInputType == 1) //ctrl has been released
+               {
+                       if (tab_panel != -1)
+                       {
+                               //switch to selected panel
+                               highlightedPanel = tab_panel;
+                               highlightedAction = 0;
+                               HUD_Panel_FirstInDrawQ(highlightedPanel);
+                       }
+                       tab_panel = -1;
+                       reset_tab_panels();
+               }
+       }
+
+       if(nPrimary == K_MOUSE1)
+       {
+               if(bInputType == 0) // key pressed
+                       mouseClicked |= S_MOUSE1;
+               else if(bInputType == 1) // key released
+                       mouseClicked -= (mouseClicked & S_MOUSE1);
+       }
+       else if(nPrimary == K_MOUSE2)
+       {
+               if(bInputType == 0) // key pressed
+                       mouseClicked |= S_MOUSE2;
+               else if(bInputType == 1) // key released
+                       mouseClicked -= (mouseClicked & S_MOUSE2);
+       }
+       else if(nPrimary == K_ESCAPE)
+       {
+               if (bInputType == 1)
+                       return true;
+               menu_enabled = 1;
+               menu_enabled_time = time;
+               localcmd("menu_showhudexit\n");
+       }
+       else if(nPrimary == K_BACKSPACE && hudShiftState & S_CTRL)
+       {
+               if (bInputType == 1)
+                       return true;
+               if (!menu_enabled)
+                       cvar_set("_hud_configure", "0");
+       }
+       else if(nPrimary == K_TAB && hudShiftState & S_CTRL) // select and highlight another panel
+       {
+               if (bInputType == 1 || mouseClicked)
+                       return true;
+
+               //FIXME: if a panel is highlighted, has the same pos_x and lays in the same level
+               //of other panels then next consecutive ctrl-tab will select the highlighted panel too
+               //(it should only after every other panel of the hud)
+               //It's a minor bug anyway, we can live with it
+
+               float starting_panel;
+               float old_tab_panel = tab_panel;
+               if (tab_panel == -1) //first press of TAB
+               {
+                       if (highlightedPanel != -1)
+                               HUD_Panel_UpdatePosSizeForId(highlightedPanel)
+                       else
+                               panel_pos = '0 0 0';
+                       starting_panel = highlightedPanel; //can be -1, it means no starting panel
+                       tab_panel_pos = panel_pos; //to compute level
+               }
+               else
+               {
+                       if ( ((!tab_backward) && (hudShiftState & S_SHIFT)) || (tab_backward && !(hudShiftState & S_SHIFT)) ) //tab direction changed?
+                               reset_tab_panels();
+                       starting_panel = tab_panel;
+               }
+               tab_backward = (hudShiftState & S_SHIFT);
+
+               float k, level, start_pos_x;
+               vector candidate_pos;
+               const float LEVELS_NUM = 4;
+               const float level_height = vid_conheight / LEVELS_NUM;
+:find_tab_panel
+               level = floor(tab_panel_pos_y / level_height) * level_height; //starting level
+               candidate_pos_x = (!tab_backward) ? vid_conwidth : 0;
+               start_pos_x = tab_panel_pos_x;
+               tab_panel = -1;
+               k=0;
+               while(++k)
+               {
+                       for(i = 0; i < HUD_PANEL_NUM; ++i)
+                       {
+                               if (i == tab_panels[i] || i == starting_panel)
+                                       continue;
+                               HUD_Panel_UpdatePosSizeForId(i)
+                               if (panel_pos_y >= level && (panel_pos_y - level) < level_height)
+                               if (  ( !tab_backward && panel_pos_x >= start_pos_x && (panel_pos_x < candidate_pos_x || (panel_pos_x == candidate_pos_x && panel_pos_y <= candidate_pos_y)) )
+                                       || ( tab_backward && panel_pos_x <= start_pos_x && (panel_pos_x > candidate_pos_x || (panel_pos_x == candidate_pos_x && panel_pos_y >= candidate_pos_y)) )  )
+                               {
+                                       tab_panel = i;
+                                       tab_panel_pos = candidate_pos = panel_pos;
+                               }
+                       }
+                       if (tab_panel != -1)
+                               break;
+                       if (k == LEVELS_NUM) //tab_panel not found
+                       {
+                               reset_tab_panels();
+                               if (old_tab_panel == -2) //this prevents an infinite loop (should not happen normally)
+                               {
+                                       tab_panel = -1;
+                                       return true;
+                               }
+                               starting_panel = old_tab_panel;
+                               old_tab_panel = -2;
+                               goto find_tab_panel; //u must find tab_panel!
+                       }
+                       if (!tab_backward)
+                       {
+                               level = mod(level + level_height, vid_conheight);
+                               start_pos_x = 0;
+                               candidate_pos_x = vid_conwidth;
+                       }
+                       else
+                       {
+                               level = mod(level - level_height, vid_conheight);
+                               start_pos_x = vid_conwidth;
+                               candidate_pos_x = 0;
+                       }
+               }
+
+               tab_panels[tab_panel] = tab_panel;
+       }
+       else if(nPrimary == K_SPACE && hudShiftState & S_CTRL) // enable/disable highlighted panel or dock
+       {
+               if (bInputType == 1 || mouseClicked)
+                       return true;
+
+               if (highlightedPanel != -1)
+               {
+                       HUD_Panel_GetName(highlightedPanel);
+                       cvar_set(strcat("hud_panel_", panel_name), ftos(!(panel_enabled)));
+               }
+               else
+                       cvar_set(strcat("hud_dock"), (autocvar_hud_dock == "") ? "dock" : "");
+       }
+       else if(nPrimary == 'c' && hudShiftState & S_CTRL) // copy highlighted panel size
+       {
+               if (bInputType == 1 || mouseClicked)
+                       return true;
+
+               if (highlightedPanel != -1)
+               {
+                       HUD_Panel_UpdatePosSizeForId(highlightedPanel);
+                       panel_size_copied = panel_size;
+                       highlightedPanel_copied = highlightedPanel;
+               }
+       }
+       else if(nPrimary == 'v' && hudShiftState & S_CTRL) // past copied size on the highlighted panel
+       {
+               if (bInputType == 1 || mouseClicked)
+                       return true;
+
+               if (highlightedPanel_copied == -1 || highlightedPanel == -1)
+                       return true;
+
+               HUD_Panel_UpdatePosSizeForId(highlightedPanel);
+
+               // reduce size if it'd go beyond screen boundaries
+               vector tmp_size = panel_size_copied;
+               if (panel_pos_x + panel_size_copied_x > vid_conwidth)
+                       tmp_size_x = vid_conwidth - panel_pos_x;
+               if (panel_pos_y + panel_size_copied_y > vid_conheight)
+                       tmp_size_y = vid_conheight - panel_pos_y;
+
+               if (panel_size == tmp_size)
+                       return true;
+
+               // backup first!
+               panel_pos_backup = panel_pos;
+               panel_size_backup = panel_size;
+               highlightedPanel_backup = highlightedPanel;
+
+               s = strcat(ftos(tmp_size_x/vid_conwidth), " ", ftos(tmp_size_y/vid_conheight));
+               HUD_Panel_GetName(highlightedPanel);
+               cvar_set(strcat("hud_panel_", panel_name, "_size"), s);
+       }
+       else if(nPrimary == 'z' && hudShiftState & S_CTRL) // undo last action
+       {
+               if (bInputType == 1 || mouseClicked)
+                       return true;
+               //restore previous values
+               if (highlightedPanel_backup != -1)
+               {
+                       HUD_Panel_GetName(highlightedPanel_backup);
+                       s = strcat(ftos(panel_pos_backup_x/vid_conwidth), " ", ftos(panel_pos_backup_y/vid_conheight));
+                       cvar_set(strcat("hud_panel_", panel_name, "_pos"), s);
+                       s = strcat(ftos(panel_size_backup_x/vid_conwidth), " ", ftos(panel_size_backup_y/vid_conheight));
+                       cvar_set(strcat("hud_panel_", panel_name, "_size"), s);
+                       highlightedPanel_backup = -1;
+               }
+       }
+       else if(nPrimary == K_UPARROW || nPrimary == K_DOWNARROW || nPrimary == K_LEFTARROW || nPrimary == K_RIGHTARROW)
+       {
+               if (bInputType == 1)
+               {
+                       pressed_key_time = 0;
+                       return true;
+               }
+               else if (pressed_key_time == 0)
+                       pressed_key_time = time;
+
+               if (!mouseClicked)
+                       HUD_Panel_Arrow_Action(nPrimary); //move or resize panel
+       }
+       else if(nPrimary == K_ENTER || nPrimary == K_SPACE || nPrimary == K_KP_ENTER)
+       {
+               if (bInputType == 1)
+                       return true;
+               if (highlightedPanel != -1)
+                       HUD_Panel_EnableMenu();
+       }
+       else if(hit_con_bind)
+               return false;
+
+       return true;
+}
+
+float HUD_Panel_Check_Mouse_Pos(float allow_move)
+{
+       float i, j, border;
+
+       while(j < HUD_PANEL_NUM)
+       {
+               i = panel_order[j];
+               j += 1;
+
+               HUD_Panel_UpdatePosSizeForId(i);
+
+               border = max(8, panel_bg_border); // FORCED border so a small border size doesn't mean you can't resize
+
+               // move
+               if(allow_move && mousepos_x >= panel_pos_x && mousepos_y >= panel_pos_y && mousepos_x <= panel_pos_x + panel_size_x && mousepos_y <= panel_pos_y + panel_size_y)
+               {
+                       return 1;
+               }
+               // resize from topleft border
+               else if(mousepos_x >= panel_pos_x - border && mousepos_y >= panel_pos_y - border && mousepos_x <= panel_pos_x + 0.5 * panel_size_x && mousepos_y <= panel_pos_y + 0.5 * panel_size_y)
+               {
+                       return 2;
+               }
+               // resize from topright border
+               else if(mousepos_x >= panel_pos_x + 0.5 * panel_size_x && mousepos_y >= panel_pos_y - border && mousepos_x <= panel_pos_x + panel_size_x + border && mousepos_y <= panel_pos_y + 0.5 * panel_size_y)
+               {
+                       return 3;
+               }
+               // resize from bottomleft border
+               else if(mousepos_x >= panel_pos_x - border && mousepos_y >= panel_pos_y + 0.5 * panel_size_y && mousepos_x <= panel_pos_x + 0.5 * panel_size_x && mousepos_y <= panel_pos_y + panel_size_y + border)
+               {
+                       return 3;
+               }
+               // resize from bottomright border
+               else if(mousepos_x >= panel_pos_x + 0.5 * panel_size_x && mousepos_y >= panel_pos_y + 0.5 * panel_size_y && mousepos_x <= panel_pos_x + panel_size_x + border && mousepos_y <= panel_pos_y + panel_size_y + border)
+               {
+                       return 2;
+               }
+       }
+       return 0;
+}
+
+// move a panel to the beginning of the panel order array (which means it gets drawn last, on top of everything else)
+void HUD_Panel_FirstInDrawQ(float id)
+{
+       float i;
+       var float place = -1;
+       // find out where in the array our current id is, save into place
+       for(i = 0; i < HUD_PANEL_NUM; ++i)
+       {
+               if(panel_order[i] == id)
+               {
+                       place = i;
+                       break;
+               }
+       }
+       // place last if we didn't find a place for it yet (probably new panel, or screwed up cvar)
+       if(place == -1)
+               place = HUD_PANEL_NUM - 1;
+
+       // move all ids up by one step in the array until "place"
+       for(i = place; i > 0; --i)
+       {
+               panel_order[i] = panel_order[i-1];
+       }
+       // now save the new top id
+       panel_order[0] = id;
+       
+       // let's save them into the cvar by some strcat trickery
+       string s;
+       for(i = 0; i < HUD_PANEL_NUM; ++i)
+       {
+               s = strcat(s, ftos(panel_order[i]), " ");
+       }
+       cvar_set("_hud_panelorder", s);
+       if(hud_panelorder_prev)
+               strunzone(hud_panelorder_prev);
+       hud_panelorder_prev = strzone(autocvar__hud_panelorder); // prevent HUD_Main from doing useless update, we already updated here
+}
+
+void HUD_Panel_Highlight(float allow_move)
+{
+       float i, j, border;
+
+       while(j < HUD_PANEL_NUM)
+       {
+               i = panel_order[j];
+               j += 1;
+
+               HUD_Panel_UpdatePosSizeForId(i);
+
+               border = max(8, panel_bg_border); // FORCED border so a small border size doesn't mean you can't resize
+
+               // move
+               if(allow_move && mousepos_x >= panel_pos_x && mousepos_y >= panel_pos_y && mousepos_x <= panel_pos_x + panel_size_x && mousepos_y <= panel_pos_y + panel_size_y)
+               {
+                       highlightedPanel = i;
+                       HUD_Panel_FirstInDrawQ(i);
+                       highlightedAction = 1;
+                       panel_click_distance = mousepos - panel_pos;
+                       return;
+               }
+               // resize from topleft border
+               else if(mousepos_x >= panel_pos_x - border && mousepos_y >= panel_pos_y - border && mousepos_x <= panel_pos_x + 0.5 * panel_size_x && mousepos_y <= panel_pos_y + 0.5 * panel_size_y)
+               {
+                       highlightedPanel = i;
+                       HUD_Panel_FirstInDrawQ(i);
+                       highlightedAction = 2;
+                       resizeCorner = 1;
+                       panel_click_distance = mousepos - panel_pos;
+                       panel_click_resizeorigin = panel_pos + panel_size;
+                       return;
+               }
+               // resize from topright border
+               else if(mousepos_x >= panel_pos_x + 0.5 * panel_size_x && mousepos_y >= panel_pos_y - border && mousepos_x <= panel_pos_x + panel_size_x + border && mousepos_y <= panel_pos_y + 0.5 * panel_size_y)
+               {
+                       highlightedPanel = i;
+                       HUD_Panel_FirstInDrawQ(i);
+                       highlightedAction = 2;
+                       resizeCorner = 2;
+                       panel_click_distance_x = panel_size_x - mousepos_x + panel_pos_x;
+                       panel_click_distance_y = mousepos_y - panel_pos_y;
+                       panel_click_resizeorigin = panel_pos + eY * panel_size_y;
+                       return;
+               }
+               // resize from bottomleft border
+               else if(mousepos_x >= panel_pos_x - border && mousepos_y >= panel_pos_y + 0.5 * panel_size_y && mousepos_x <= panel_pos_x + 0.5 * panel_size_x && mousepos_y <= panel_pos_y + panel_size_y + border)
+               {
+                       highlightedPanel = i;
+                       HUD_Panel_FirstInDrawQ(i);
+                       highlightedAction = 2;
+                       resizeCorner = 3;
+                       panel_click_distance_x = mousepos_x - panel_pos_x;
+                       panel_click_distance_y = panel_size_y - mousepos_y + panel_pos_y;
+                       panel_click_resizeorigin = panel_pos + eX * panel_size_x;
+                       return;
+               }
+               // resize from bottomright border
+               else if(mousepos_x >= panel_pos_x + 0.5 * panel_size_x && mousepos_y >= panel_pos_y + 0.5 * panel_size_y && mousepos_x <= panel_pos_x + panel_size_x + border && mousepos_y <= panel_pos_y + panel_size_y + border)
+               {
+                       highlightedPanel = i;
+                       HUD_Panel_FirstInDrawQ(i);
+                       highlightedAction = 2;
+                       resizeCorner = 4;
+                       panel_click_distance = panel_size - mousepos + panel_pos;
+                       panel_click_resizeorigin = panel_pos;
+                       return;
+               }
+       }
+       highlightedPanel = -1;
+       highlightedAction = 0;
+}
+
+void HUD_Panel_EnableMenu()
+{
+       menu_enabled = 2;
+       menu_enabled_time = time;
+       HUD_Panel_GetName(highlightedPanel);
+       localcmd("menu_showhudoptions ", panel_name, "\n");
+}
+float mouse_over_panel;
+void HUD_Panel_Mouse()
+{
+       // TODO: needs better check... is there any float that contains the current state of the menu? _menu_alpha isn't apparently updated the frame the menu gets enabled
+       if (autocvar__menu_alpha == 0 && time - menu_enabled_time > 0.5)
+               menu_enabled = 0;
+
+       /*
+       print("menu_enabled: ", ftos(menu_enabled), "\n");
+       print("Highlighted: ", ftos(highlightedPanel), "\n");
+       print("Menu alpha: ", ftos(autocvar__menu_alpha), "\n");
+       */
+
+       // instantly hide the editor cursor if we open the HUDExit dialog
+       // as hud_fade_alpha doesn't decrease to 0 in this case
+       // TODO: find a way to fade the cursor out even in this case
+       if(menu_enabled == 1 || (menu_enabled == 2 && !hud_fade_alpha))
+               return;
+
+       mousepos = mousepos + getmousepos() * autocvar_menu_mouse_speed;
+
+       mousepos_x = bound(0, mousepos_x, vid_conwidth);
+       mousepos_y = bound(0, mousepos_y, vid_conheight);
+
+       if(mouseClicked)
+       {
+               if(prevMouseClicked == 0)
+               {
+                       if (tab_panel != -1)
+                       {
+                               //stop ctrl-tab selection
+                               tab_panel = -1;
+                               reset_tab_panels();
+                       }
+                       HUD_Panel_Highlight(mouseClicked & S_MOUSE1); // sets highlightedPanel, highlightedAction, panel_click_distance, panel_click_resizeorigin
+                                                                       // and calls HUD_Panel_UpdatePosSizeForId() for the highlighted panel
+                       if (highlightedPanel != -1)
+                       {
+                               highlightedPanel_initial_pos = panel_pos;
+                               highlightedPanel_initial_size = panel_size;
+                       }
+                       // doubleclick check
+                       if ((mouseClicked & S_MOUSE1) && time - prevMouseClickedTime < 0.4 && highlightedPanel != -1 && prevMouseClickedPos == mousepos)
+                       {
+                               mouseClicked = 0; // to prevent spam, I guess.
+                               HUD_Panel_EnableMenu();
+                       }
+                       else
+                       {
+                               if (mouseClicked & S_MOUSE1)
+                               {
+                                       prevMouseClickedTime = time;
+                                       prevMouseClickedPos = mousepos;
+                               }
+                               mouse_over_panel = HUD_Panel_Check_Mouse_Pos(mouseClicked & S_MOUSE1);
+                       }
+               }
+               else
+                       HUD_Panel_UpdatePosSizeForId(highlightedPanel);
+
+               if (highlightedPanel != -1)
+               {
+                       drawfill(panel_pos - '1 1 0' * panel_bg_border, panel_size + '2 2 0' * panel_bg_border, '1 1 1', .1, DRAWFLAG_NORMAL);
+                       if (highlightedPanel_initial_pos != panel_pos || highlightedPanel_initial_size != panel_size)
+                       {
+                               hud_configure_checkcollisions = (!(hudShiftState & S_CTRL) && autocvar_hud_configure_checkcollisions);
+                               // backup!
+                               panel_pos_backup = highlightedPanel_initial_pos;
+                               panel_size_backup = highlightedPanel_initial_size;
+                               highlightedPanel_backup = highlightedPanel;
+                       }
+                       else
+                               // in case the clicked panel is inside another panel and we aren't
+                               // moving it, avoid the immediate "fix" of its position/size
+                               // (often unwanted and hateful) by disabling collisions check
+                               hud_configure_checkcollisions = false;
+               }
+
+               if(highlightedAction == 1)
+                       HUD_Panel_SetPos(mousepos - panel_click_distance);
+               else if(highlightedAction == 2)
+               {
+                       vector mySize;
+                       if(resizeCorner == 1) {
+                               mySize_x = panel_click_resizeorigin_x - (mousepos_x - panel_click_distance_x);
+                               mySize_y = panel_click_resizeorigin_y - (mousepos_y - panel_click_distance_y);
+                       } else if(resizeCorner == 2) {
+                               mySize_x = mousepos_x + panel_click_distance_x - panel_click_resizeorigin_x;
+                               mySize_y = panel_click_distance_y + panel_click_resizeorigin_y - mousepos_y;
+                       } else if(resizeCorner == 3) {
+                               mySize_x = panel_click_resizeorigin_x + panel_click_distance_x - mousepos_x;
+                               mySize_y = mousepos_y + panel_click_distance_y - panel_click_resizeorigin_y;
+                       } else { // resizeCorner == 4
+                               mySize_x = mousepos_x - (panel_click_resizeorigin_x - panel_click_distance_x);
+                               mySize_y = mousepos_y - (panel_click_resizeorigin_y - panel_click_distance_y);
+                       }
+                       HUD_Panel_SetPosSize(mySize);
+               }
+       }
+       else
+       {
+               if(menu_enabled == 2)
+                       mouse_over_panel = 0;
+               else
+                       mouse_over_panel = HUD_Panel_Check_Mouse_Pos(TRUE);
+               if (mouse_over_panel && tab_panel == -1)
+                       drawfill(panel_pos - '1 1 0' * panel_bg_border, panel_size + '2 2 0' * panel_bg_border, '1 1 1', .1, DRAWFLAG_NORMAL);
+       }
+       // draw cursor after performing move/resize to have the panel pos/size updated before mouse_over_panel
+       const vector cursorsize = '32 32 0';
+
+       if(!mouse_over_panel)
+               drawpic(mousepos, strcat("gfx/menu/", autocvar_menu_skin, "/cursor.tga"), cursorsize, '1 1 1', hud_fade_alpha, DRAWFLAG_NORMAL);
+       else if(mouse_over_panel == 1)
+               drawpic(mousepos - cursorsize * 0.5, strcat("gfx/menu/", autocvar_menu_skin, "/cursor_move.tga"), cursorsize, '1 1 1', hud_fade_alpha, DRAWFLAG_NORMAL);
+       else if(mouse_over_panel == 2)
+               drawpic(mousepos - cursorsize * 0.5, strcat("gfx/menu/", autocvar_menu_skin, "/cursor_resize.tga"), cursorsize, '1 1 1', hud_fade_alpha, DRAWFLAG_NORMAL);
+       else
+               drawpic(mousepos - cursorsize * 0.5, strcat("gfx/menu/", autocvar_menu_skin, "/cursor_resize2.tga"), cursorsize, '1 1 1', hud_fade_alpha, DRAWFLAG_NORMAL);
+
+       prevMouseClicked = mouseClicked;
+}
+
+const float hlBorderSize = 4;
+const string hlBorder = "gfx/hud/default/border_highlighted";
+const string hlBorder2 = "gfx/hud/default/border_highlighted2";
+void HUD_Panel_HlBorder(float myBorder, vector color, float alpha)
+{
+       drawfill(panel_pos - '1 1 0' * myBorder, panel_size + '2 2 0' * myBorder, '0 0.5 1', .5 * alpha, DRAWFLAG_NORMAL);
+       drawpic_tiled(panel_pos - '1 1 0' * myBorder, hlBorder, '8 1 0' * hlBorderSize, eX * (panel_size_x + 2 * myBorder) + eY * hlBorderSize, color, alpha, DRAWFLAG_NORMAL);
+       drawpic_tiled(panel_pos - '1 1 0' * myBorder + eY * (panel_size_y + 2 * myBorder - hlBorderSize), hlBorder, '8 1 0' * hlBorderSize, eX * (panel_size_x + 2 * myBorder) + eY * hlBorderSize, color, alpha, DRAWFLAG_NORMAL);
+       drawpic_tiled(panel_pos - '1 1 0' * myBorder + eY * hlBorderSize, hlBorder2, '1 8 0' * hlBorderSize, eY * (panel_size_y + 2 * myBorder - 2 * hlBorderSize) + eX * hlBorderSize, color, alpha, DRAWFLAG_NORMAL);
+       drawpic_tiled(panel_pos - '1 1 0' * myBorder + eY * hlBorderSize + eX * (panel_size_x + 2 * myBorder - hlBorderSize), hlBorder2, '1 8 0' * hlBorderSize, eY * (panel_size_y + 2 * myBorder - 2 * hlBorderSize) + eX * hlBorderSize, color, alpha, DRAWFLAG_NORMAL);
+}
index 970a1aa0b73d8fc223884e19518ff8a12ced06c6..aacd41589aae6de1dbdd65a6704f733c6d246e9e 100644 (file)
@@ -115,16 +115,13 @@ vector view_origin, view_angles, view_forward, view_right, view_up;
 float button_zoom;
 float spectatorbutton_zoom;
 float button_attack2;
+
 float activeweapon;
 float current_viewzoom;
 float zoomin_effect;
-float ignore_plus_zoom;
-float ignore_minus_zoom;
 float warmup_stage;
 
 string getcommandkey(string text, string command);
-float hud_showbinds;
-float hud_showbinds_limit;
 
 string vote_called_vote;
 float ready_waiting;
index 41ecb91efa915673aff7313c425b5c02af0c5b55..247dc4b35a64dedc2c7de722420154e9084df48e 100644 (file)
@@ -325,34 +325,11 @@ float PreviewExists(string name)
        if(autocvar_cl_readpicture_force)
                return false;
 
-       file = strcat(name, ".tga");
-       f = fopen(file, FILE_READ);
-       if(f >= 0)
-       {
-               fclose(f);
-               return true;
-       }
-       file = strcat(name, ".png");
-       f = fopen(file, FILE_READ);
-       if(f >= 0)
-       {
-               fclose(f);
-               return true;
-       }
-       file = strcat(name, ".jpg");
-       f = fopen(file, FILE_READ);
-       if(f >= 0)
-       {
-               fclose(f);
-               return true;
-       }
-       file = strcat(name, ".pcx");
-       f = fopen(file, FILE_READ);
-       if(f >= 0)
-       {
-               fclose(f);
-               return true;
-       }
+       if (fexists(strcat(name, ".tga"))) return true;
+       if (fexists(strcat(name, ".png"))) return true;
+       if (fexists(strcat(name, ".jpg"))) return true;
+       if (fexists(strcat(name, ".pcx"))) return true;
+
        return false;
 }
 
@@ -375,6 +352,33 @@ string ColorTranslateRGB(string s)
                return s;
 }
 
+string Team_ColorCode(float teamid)
+{
+    if (teamid == COLOR_TEAM1)
+        return "^1";
+    else if (teamid == COLOR_TEAM2)
+        return "^4";
+    else if (teamid == COLOR_TEAM3)
+        return "^3";
+    else if (teamid == COLOR_TEAM4)
+        return "^6";
+    else
+        return "^7";
+}
+
+// decolorizes and team colors the player name when needed
+string playername(string thename, float teamid)
+{
+    string t;
+    if (teamplay)
+    {
+        t = Team_ColorCode(teamid);
+        return strcat(t, strdecolorize(thename));
+    }
+    else
+        return strdecolorize(thename);
+}
+
 float cvar_or(string cv, float v)
 {
        string s;
@@ -454,23 +458,23 @@ void drawpic_tiled(vector pos, string pic, vector sz, vector area, vector color,
 
 // drawpic wrapper to draw an image as large as possible with preserved aspect ratio into a box
 var float _drawpic_imgaspect;
-var float _drawpic_aspect;
 var vector _drawpic_imgsize;
 var vector _drawpic_sz;
-var vector _drawpic_oldsz;
+var float _drawpic_oldsz;
 var string _drawpic_picpath;
 #define drawpic_aspect(pos,pic,mySize,color,alpha,drawflag)\
        do {\
                _drawpic_imgsize = drawgetimagesize(pic);\
                _drawpic_imgaspect = _drawpic_imgsize_x/_drawpic_imgsize_y;\
-               _drawpic_oldsz = _drawpic_sz = mySize;\
-               _drawpic_aspect = _drawpic_sz_x/_drawpic_sz_y;\
-               if(_drawpic_aspect > _drawpic_imgaspect) {\
+               _drawpic_sz = mySize;\
+               if(_drawpic_sz_x/_drawpic_sz_y > _drawpic_imgaspect) {\
+                       _drawpic_oldsz = _drawpic_sz_x;\
                        _drawpic_sz_x = _drawpic_sz_y * _drawpic_imgaspect;\
-                       drawpic(pos + eX * (_drawpic_oldsz_x - _drawpic_sz_x) * 0.5, pic, _drawpic_sz, color, alpha, drawflag);\
+                       drawpic(pos + eX * (_drawpic_oldsz - _drawpic_sz_x) * 0.5, pic, _drawpic_sz, color, alpha, drawflag);\
                } else {\
+                       _drawpic_oldsz = _drawpic_sz_y;\
                        _drawpic_sz_y = _drawpic_sz_x / _drawpic_imgaspect;\
-                       drawpic(pos + eY * (_drawpic_oldsz_y - _drawpic_sz_y) * 0.5, pic, _drawpic_sz, color, alpha, drawflag);\
+                       drawpic(pos + eY * (_drawpic_oldsz - _drawpic_sz_y) * 0.5, pic, _drawpic_sz, color, alpha, drawflag);\
                }\
        } while(0)
 
@@ -509,49 +513,29 @@ void drawpic_aspect_skin_expanding_two(vector position, string pic, vector scale
        drawpic_aspect_skin_expanding(position, pic, scale, rgb, alpha, flag, fadelerp);
        drawpic_skin(position, pic, scale, rgb, alpha * fadelerp, flag);
 }
+#define SET_POS_AND_SZ_Y_ASPECT(allow_colors)\
+       float textaspect, oldsz;\
+       textaspect = stringwidth(text, allow_colors, '1 1 1' * sz_y) / sz_y;\
+       if(sz_x/sz_y > textaspect) {\
+               oldsz = sz_x;\
+               sz_x = sz_y * textaspect;\
+               pos_x += (oldsz - sz_x) * 0.5;\
+       } else {\
+               oldsz = sz_y;\
+               sz_y = sz_x / textaspect; \
+               pos_y += (oldsz - sz_y) * 0.5;\
+       }
 
 // drawstring wrapper to draw a string as large as possible with preserved aspect ratio into a box
 void drawstring_aspect(vector pos, string text, vector sz, vector color, float alpha, float drawflag) {
-       vector textsize;
-       textsize = eX * stringwidth(text, FALSE, '1 1 1' * sz_y) + eY * sz_y;
-
-       float textaspect;
-       textaspect = textsize_x/textsize_y;
-
-       vector oldsz;
-       oldsz = sz;
-       float aspect;
-       aspect = sz_x/sz_y;
-
-       if(aspect > textaspect) {
-               sz_x = sz_y * textaspect;
-               drawstring(pos + eX * (oldsz_x - sz_x) * 0.5, text, '1 1 0' * sz_y, color, alpha, drawflag);
-       } else {
-               sz_y = sz_x / textaspect; 
-               drawstring(pos + eY * (oldsz_y - sz_y) * 0.5, text, '1 1 0' * sz_y, color, alpha, drawflag);
-       }
+       SET_POS_AND_SZ_Y_ASPECT(FALSE)
+       drawstring(pos, text, '1 1 0' * sz_y, color, alpha, drawflag);
 }
 
 // drawstring wrapper to draw a colorcodedstring as large as possible with preserved aspect ratio into a box
 void drawcolorcodedstring_aspect(vector pos, string text, vector sz, float alpha, float drawflag) {
-       vector textsize;
-       textsize = eX * stringwidth(text, TRUE, '1 1 1' * sz_y) + eY * sz_y;
-
-       float textaspect;
-       textaspect = textsize_x/textsize_y;
-
-       vector oldsz;
-       oldsz = sz;
-       float aspect;
-       aspect = sz_x/sz_y;
-
-       if(aspect > textaspect) {
-               sz_x = sz_y * textaspect;
-               drawcolorcodedstring(pos + eX * (oldsz_x - sz_x) * 0.5, text, '1 1 0' * sz_y, alpha, drawflag);
-       } else {
-               sz_y = sz_x / textaspect; 
-               drawcolorcodedstring(pos + eY * (oldsz_y - sz_y) * 0.5, text, '1 1 0' * sz_y, alpha, drawflag);
-       }
+       SET_POS_AND_SZ_Y_ASPECT(TRUE)
+       drawcolorcodedstring(pos, text, '1 1 0' * sz_y, alpha, drawflag);
 }
 
 vector drawfontscale;
@@ -571,24 +555,8 @@ void drawstring_expanding(vector position, string text, vector scale, vector rgb
 
 // drawstring wrapper to draw a string as large as possible with preserved aspect ratio into a box
 void drawstring_aspect_expanding(vector pos, string text, vector sz, vector color, float alpha, float drawflag, float fadelerp) {
-       vector textsize;
-       textsize = eX * stringwidth(text, FALSE, '1 1 1' * sz_y) + eY * sz_y;
-
-       float textaspect;
-       textaspect = textsize_x/textsize_y;
-
-       vector oldsz;
-       oldsz = sz;
-       float aspect;
-       aspect = sz_x/sz_y;
-
-       if(aspect > textaspect) {
-               sz_x = sz_y * textaspect;
-               drawstring_expanding(pos + eX * (oldsz_x - sz_x) * 0.5, text, '1 1 0' * sz_y, color, alpha, drawflag, fadelerp);
-       } else {
-               sz_y = sz_x / textaspect; 
-               drawstring_expanding(pos + eY * (oldsz_y - sz_y) * 0.5, text, '1 1 0' * sz_y, color, alpha, drawflag, fadelerp);
-       }
+       SET_POS_AND_SZ_Y_ASPECT(FALSE)
+       drawstring_expanding(pos, text, '1 1 0' * sz_y, color, alpha, drawflag, fadelerp);
 }
 
 void drawcolorcodedstring_expanding(vector position, string text, vector scale, float alpha, float flag, float fadelerp)
@@ -603,24 +571,8 @@ void drawcolorcodedstring_expanding(vector position, string text, vector scale,
 }
 
 void drawcolorcodedstring_aspect_expanding(vector pos, string text, vector sz, float alpha, float drawflag, float fadelerp) {
-       vector textsize;
-       textsize = eX * stringwidth(text, TRUE, '1 1 1' * sz_y) + eY * sz_y;
-       
-       float textaspect;
-       textaspect = textsize_x/textsize_y;
-
-       vector oldsz;
-       oldsz = sz;
-       float aspect;
-       aspect = sz_x/sz_y;
-
-       if(aspect > textaspect) {
-               sz_x = sz_y * textaspect;
-               drawcolorcodedstring_expanding(pos + eX * (oldsz_x - sz_x) * 0.5, text, '1 1 0' * sz_y, alpha, drawflag, fadelerp);
-       } else {
-               sz_y = sz_x / textaspect; 
-               drawcolorcodedstring_expanding(pos + eY * (oldsz_y - sz_y) * 0.5, text, '1 1 0' * sz_y, alpha, drawflag, fadelerp);
-       }
+       SET_POS_AND_SZ_Y_ASPECT(TRUE)
+       drawcolorcodedstring_expanding(pos, text, '1 1 0' * sz_y, alpha, drawflag, fadelerp);
 }
 
 // this draws the triangles of a model DIRECTLY. Don't expect high performance, really...
index 1d6a6e393d59dd6bc450d7b2311702db573204c7..9a17dea35694f9ee005b836f603d65071a2ac7ba 100644 (file)
@@ -156,10 +156,10 @@ float _Movetype_UnstickEntity() // SV_UnstickEntity
                if(!_Movetype_TestEntityPosition('0 0 -1' * i)) goto success;
                if(!_Movetype_TestEntityPosition('0 0 1' * i)) goto success;
        }
-       dprint("Some entity is stuck\n");
+       dprint(sprintf(_("Can't unstick an entity (edict: %d, classname: %s, origin: %s)\n"), num_for_edict(self), self.classname, vtos(self.move_origin)));
        return FALSE;
 :success
-       dprint("Unstuck some entity\n");
+       dprint(sprintf(_("Sucessfully unstuck an entity (edict: %d, classname: %s, origin: %s)\n"), num_for_edict(self), self.classname, vtos(self.move_origin)));
        _Movetype_LinkEdict(TRUE);
        return TRUE;
 }
index e296a477bfbaef96accbd9074f052e6b06a01412..4219eef16447e01372629a917b91c8e853cfcc71 100644 (file)
@@ -29,6 +29,7 @@ movetypes.qh
 prandom.qh
 bgmscript.qh
 noise.qh
+teamplay.qh
 
 main.qh
 
@@ -39,6 +40,7 @@ teamplay.qc
 ctf.qc
 
 teamradar.qc
+hud_config.qc
 hud.qc
 scoreboard.qc
 mapvoting.qc
@@ -58,6 +60,8 @@ tuba.qc
 target_music.qc
 
 //vehicles/spiderbot.qc
+shownames.qh
+shownames.qc
 Main.qc
 View.qc
 interpolate.qc
index 517065ac5dd02fade24a500103bdb580dc09e26e..8e024ead5b0c7fdeb36865a802c9378bf55ba7bf 100644 (file)
@@ -365,7 +365,7 @@ void Cmd_HUD_SetFields(float argc)
 
                strunzone(hud_title[hud_num_fields]);
                hud_title[hud_num_fields] = strzone(TranslateScoresLabel(str));
-               hud_size[hud_num_fields] = stringwidth(str, FALSE, hud_fontsize);
+               hud_size[hud_num_fields] = stringwidth(hud_title[hud_num_fields], FALSE, hud_fontsize);
                str = strtolower(str);
 
                if(str == "ping") {
@@ -923,9 +923,7 @@ float HUD_WouldDrawScoreboard() {
                return 1;
        else if (intermission == 2)
                return 0;
-       else if (getstati(STAT_HEALTH) <= 0 && autocvar_cl_deathscoreboard && gametype != GAME_CTS)
-               return 1;
-       else if (spectatee_status == -1)
+       else if (spectatee_status != -1 && getstati(STAT_HEALTH) <= 0 && autocvar_cl_deathscoreboard && gametype != GAME_CTS)
                return 1;
        else if (scoreboard_showscores_force)
                return 1;
@@ -1252,12 +1250,12 @@ void HUD_DrawScoreboard()
        if(gametype == GAME_LMS)
        {
                if(tl > 0)
-                       str = strcat(str, sprintf(_(" for up to ^1%.1f minutes^7"), tl));
+                       str = strcat(str, sprintf(_(" for up to ^1%1.0f minutes^7"), tl));
        }
        else
        {
                if(tl > 0)
-                       str = strcat(str, sprintf(_(" for up to ^1%.1f minutes^7"), tl));
+                       str = strcat(str, sprintf(_(" for up to ^1%1.0f minutes^7"), tl));
                if(fl > 0)
                {
                        if(tl > 0)
diff --git a/qcsrc/client/shownames.qc b/qcsrc/client/shownames.qc
new file mode 100644 (file)
index 0000000..f69c495
--- /dev/null
@@ -0,0 +1,161 @@
+// self.isactive = player is in range and coordinates/status (health and armor) are up to date
+// self.origin = player origin TODO: should maybe move this so it's the origin of the shownames tag already in SSQC for culling?
+// self.healthvalue
+// self.armorvalue
+// self.sameteam = player is on same team as local client
+//
+const float SHOWNAMES_FADESPEED = 4;
+void Draw_ShowNames()
+{
+    if(!autocvar_hud_shownames)
+        return;
+
+    if(self.sameteam || (!self.sameteam && autocvar_hud_shownames_enemies))
+    {
+        InterpolateOrigin_Do();
+
+        if(!self.sameteam)
+        {
+            traceline(self.origin, view_origin, 1, self);
+
+            /* WIP, why does trace_ent != self not work as intended here?
+            if(autocvar_hud_shownames_enemies != 2) // player has to point at enemy if so
+            {
+                traceline(view_origin, view_origin + view_forward * MAX_SHOT_DISTANCE, MOVETYPE_FLY, world);
+                print("trace_endpos: ", vtos(trace_endpos), " view_origin: ", vtos(view_origin), "\n");
+                if(trace_ent != self)
+                    return;
+            }*/
+        }
+
+        vector o, eo;
+        o = project_3d_to_2d(self.origin);
+        float overlap;
+
+        if(autocvar_hud_shownames_antioverlap)
+        {
+            // fade tag out if another tag that is closer to you overlaps
+            entity e;
+            for(e = world; (e = find(e, classname, "shownames_tag")); )
+            {
+                if(e == self)
+                    continue;
+                eo = project_3d_to_2d(e.origin);
+                if not(eo_z < 0 || eo_x < 0 || eo_y < 0 || eo_x > vid_conwidth || eo_y > vid_conheight)
+                {
+                    eo_z = 0;
+                    if(vlen((eX * o_x + eY * o_y) - eo) < autocvar_hud_shownames_antioverlap_distance && vlen(self.origin - view_origin) > vlen(e.origin - view_origin))
+                    {
+                        overlap = TRUE;
+                        break;
+                    }
+                }
+            }
+        }
+
+        if(!self.sameteam && trace_endpos != view_origin) // out of view, fade out
+            self.alpha = max(0, self.alpha - SHOWNAMES_FADESPEED * frametime);
+        else if(!self.healthvalue) // dead player, fade out slowly
+            self.alpha = max(0, self.alpha - SHOWNAMES_FADESPEED * 0.25 * frametime);
+        else if(overlap) // tag overlap detected, fade out
+            self.alpha = max(0, self.alpha - SHOWNAMES_FADESPEED * frametime);
+        else // fade in
+            self.alpha = min(1, self.alpha + SHOWNAMES_FADESPEED * frametime);
+
+        if(!self.alpha)
+            return;
+
+        float dist;
+        dist = vlen(self.origin - view_origin);
+
+        float a;
+        a = autocvar_hud_shownames_alpha;
+        a *= self.alpha;
+        if(autocvar_hud_shownames_maxdistance)
+        {
+            if(dist >= autocvar_hud_shownames_maxdistance)
+                return;
+            a *= ((autocvar_hud_shownames_maxdistance - autocvar_hud_shownames_mindistance) - max(0, dist - autocvar_hud_shownames_mindistance)) / (autocvar_hud_shownames_maxdistance - autocvar_hud_shownames_mindistance);
+        }
+
+        if(!a)
+            return;
+
+        float resize;
+        resize = 1;
+        if(autocvar_hud_shownames_resize) // limit resize so its never smaller than 0.5... gets unreadable
+            resize = 0.5 + 0.5 * ((autocvar_hud_shownames_maxdistance - autocvar_hud_shownames_mindistance) - max(0, dist - autocvar_hud_shownames_mindistance)) / (autocvar_hud_shownames_maxdistance - autocvar_hud_shownames_mindistance);
+
+        // draw the sprite image
+        if not(o_z < 0 || o_x < 0 || o_y < 0 || o_x > vid_conwidth || o_y > vid_conheight)
+        {
+            o_z = 0;
+
+            vector myPos, mySize;
+            mySize = (eX * autocvar_hud_shownames_aspect + eY) * autocvar_hud_shownames_height;
+            myPos = o - '0.5 0 0' * mySize_x - '0 1 0' * mySize_y;
+
+            // size scaling
+            mySize_x *= resize;
+            mySize_y *= resize;
+
+            myPos_x += 0.5 * (mySize_x / resize - mySize_x);
+            myPos_y += (mySize_y / resize - mySize_y);
+
+            vector iconpos, iconsize; // these determine icon position/size, if any
+            vector namepos; // this is where the origin of the string
+            float namesize; // total area where we can draw the string
+
+            iconpos = myPos;
+
+            if(autocvar_hud_shownames_status && teamplay)
+            {
+                if(self.sameteam)
+                {
+                    iconsize = eX * 2 * mySize_y + eY * mySize_y;
+                    // "ghost" backgrounds
+                    drawpic_aspect_skin(iconpos, "health", '1 1 0' * iconsize_y, '0 0 0', a * 0.5, DRAWFLAG_NORMAL);
+                    drawpic_aspect_skin(iconpos + '0.5 0 0' * iconsize_x, "armor", '1 1 0' * iconsize_y, '0 0 0', a * 0.5, DRAWFLAG_NORMAL);
+
+                    if(self.healthvalue > 0)
+                    {
+                        drawsetcliparea(0, myPos_y + iconsize_y - iconsize_y * min(1, self.healthvalue/autocvar_hud_panel_healtharmor_maxhealth), vid_conwidth, myPos_y + iconsize_y);
+                        drawpic_aspect_skin(iconpos, "health", '1 1 0' * iconsize_y, '1 1 1', a, DRAWFLAG_NORMAL);
+                    }
+
+                    if(self.armorvalue > 0)
+                    {
+                        drawsetcliparea(0, myPos_y + iconsize_y - iconsize_y * min(1, self.armorvalue/autocvar_hud_panel_healtharmor_maxarmor), vid_conwidth, myPos_y + iconsize_y);
+                        drawpic_aspect_skin(iconpos + '0.5 0 0' * iconsize_x, "armor", '1 1 0' * iconsize_y, '1 1 1', a, DRAWFLAG_NORMAL);
+                    }
+                    drawresetcliparea();
+                }
+                else if(autocvar_hud_shownames_status == 2)
+                {
+                    iconsize = eX * 2 * mySize_y + eY * mySize_y;
+                    drawpic_aspect_skin(iconpos, "health_unknown", '1 1 0' * iconsize_y, '0 0 0', a, DRAWFLAG_NORMAL);
+                    drawpic_aspect_skin(iconpos + '0.5 0 0' * iconsize_x, "armor_unknown", '1 1 0' * iconsize_y, '0 0 0', a, DRAWFLAG_NORMAL);
+                }
+            }
+
+            namepos = myPos + eX * 2 * iconsize_y + eY * 0.5 * resize * (autocvar_hud_shownames_height - autocvar_hud_shownames_fontsize);
+            namesize = mySize_x - 2 * iconsize_y;
+
+            string s;
+            s = GetPlayerName(self.the_entnum-1);
+            if((autocvar_hud_shownames_decolorize == 1 && teamplay) || autocvar_hud_shownames_decolorize == 2)
+                s = playername(s, GetPlayerColor(self.the_entnum-1));
+
+            drawfontscale = '1 1 0' * resize;
+            s = textShortenToWidth(s, namesize, '1 1 0' * autocvar_hud_shownames_fontsize, stringwidth_colors);
+
+            float width;
+            width = stringwidth(s, TRUE, '1 1 0' * autocvar_hud_shownames_fontsize);
+
+            if (width != namesize)
+                namepos_x += (namesize - width) / 2;
+            drawcolorcodedstring(namepos, s, '1 1 0' * autocvar_hud_shownames_fontsize, a, DRAWFLAG_NORMAL);
+            drawfontscale = '1 1 0';
+        }
+    }
+}
diff --git a/qcsrc/client/shownames.qh b/qcsrc/client/shownames.qh
new file mode 100644 (file)
index 0000000..a17f31d
--- /dev/null
@@ -0,0 +1,5 @@
+.float healthvalue;
+.float armorvalue;
+.float sameteam;
+.float the_entnum;
+
index 7d5031fb87321beb771bf4f72390a7fd6464e0ed..bc705153ab97fd616137fd31d27dd939589ad9fc 100644 (file)
@@ -1,6 +1,3 @@
-float teamplay;
-float myteam;
-
 float TeamByColor(float color)
 {
        switch(color)
@@ -12,6 +9,17 @@ float TeamByColor(float color)
        default: return 0;
        }
 }
+float ColorByTeam(float i)
+{
+       switch(i)
+       {
+       case 0: return COLOR_TEAM1;
+       case 1: return COLOR_TEAM2;
+       case 2: return COLOR_TEAM3;
+       case 3: return COLOR_TEAM4;
+       default: return COLOR_TEAM1;
+       }
+}
 
 float GetPlayerColorForce(float i)
 {
diff --git a/qcsrc/client/teamplay.qh b/qcsrc/client/teamplay.qh
new file mode 100644 (file)
index 0000000..8335990
--- /dev/null
@@ -0,0 +1,2 @@
+float teamplay;
+float myteam;
index cccce7680b4c352eb5af05e821ac62f04cf31fd8..852b3609243c5961072ac75f5b217ea25733cd9c 100644 (file)
@@ -5,7 +5,6 @@ vector teamradar_size2d; // 2D size
 vector teamradar_extraclip_mins, teamradar_extraclip_maxs; // for non-centered radar display
 float teamradar_size; // 2D scale factor
 float hud_panel_radar_scale; // window size = ...qu
-float hud_panel_radar_nohudhack;
 float v_flipped;
 
 float vlen2d(vector v)
@@ -188,9 +187,6 @@ void teamradar_loadcvars()
        if(!hud_panel_radar_foreground_alpha) hud_panel_radar_foreground_alpha = 0.8 * panel_fg_alpha;
        if(!hud_panel_radar_size_x) hud_panel_radar_size_x = 128;
        if(!hud_panel_radar_size_y) hud_panel_radar_size_y = hud_panel_radar_size_x;
-
-       hud_panel_radar_size_z = 0;
-       hud_panel_radar_nohudhack = 0;
 }
 
 // radar links
index 419ab73e8fa1b8e14d21f44afca79f7775e0936b..507cff85abcdb2780ee6af7054a6500d5f9f18d6 100644 (file)
@@ -63,6 +63,7 @@ const float TE_CSQC_NOTIFY = 112;
 const float TE_CSQC_WEAPONCOMPLAIN = 113;
 const float TE_CSQC_NEX_SCOPE = 116;
 const float TE_CSQC_MINELAYER_MAXMINES = 117;
+const float TE_CSQC_HAGAR_MAXROCKETS = 118;
 
 const float RACE_NET_CHECKPOINT_HIT_QUALIFYING = 0; // byte checkpoint, short time, short recordtime, string recordholder
 const float RACE_NET_CHECKPOINT_CLEAR = 1;
@@ -113,6 +114,8 @@ const float ENT_CLIENT_HOOK = 27;
 const float ENT_CLIENT_LGBEAM = 28;
 const float ENT_CLIENT_GAUNTLET = 29;
 const float ENT_CLIENT_ACCURACY = 30;
+const float ENT_CLIENT_SHOWNAMES = 31;
+const float ENT_CLIENT_WARPZONE_TELEPORTED = 32;
 
 const float ENT_CLIENT_TURRET = 40;
 
@@ -317,6 +320,7 @@ const float STAT_NEX_CHARGEPOOL = 53;
 const float STAT_HIT_TIME = 54;
 const float STAT_TYPEHIT_TIME = 55;
 const float STAT_LAYED_MINES = 56;
+const float STAT_HAGAR_LOAD = 57;
 
 // see DP source, quakedef.h
 const float STAT_MOVEVARS_AIRSPEEDLIMIT_NONQW = 222;
@@ -354,6 +358,12 @@ const float STAT_PINKALIVE = 103;
 const float STAT_FROZEN = 104;
 const float STAT_REVIVE_PROGRESS = 105;
 
+const float STAT_DOM_TOTAL_PPS = 100;
+const float STAT_DOM_PPS_RED = 101;
+const float STAT_DOM_PPS_BLUE = 102;
+const float STAT_DOM_PPS_PINK = 103;
+const float STAT_DOM_PPS_YELLOW = 104;
+
 //const float STAT_SPIDERBOT_AIM     53 // compressShotOrigin
 //const float STAT_SPIDERBOT_TARGET  54 // compressShotOrigin
 
@@ -626,7 +636,7 @@ float WR_RELOAD         = 9; // (SVQC) does not need to do anything
 float WR_RESETPLAYER    = 10; // (SVQC) does not need to do anything
 float WR_IMPACTEFFECT  = 11; // (CSQC) impact effect
 float WR_SWITCHABLE    = 12; // (CSQC) impact effect
-
+float WR_PLAYERDEATH    = 13; // (SVQC) does not need to do anything
 
 float HUD_PANEL_WEAPONS                = 0;
 float HUD_PANEL_AMMO           = 1;
@@ -643,7 +653,8 @@ float HUD_PANEL_PRESSEDKEYS = 11;
 float HUD_PANEL_CHAT           = 12;
 float HUD_PANEL_ENGINEINFO     = 13;
 float HUD_PANEL_INFOMESSAGES   = 14;
-float HUD_PANEL_NUM            = 15; // always last panel id + 1, please increment when adding a new panel
+float HUD_PANEL_PHYSICS        = 15;
+float HUD_PANEL_NUM            = 16; // always last panel id + 1, please increment when adding a new panel
 
 string HUD_PANELNAME_WEAPONS           = "weapons";
 string HUD_PANELNAME_AMMO              = "ammo";
@@ -660,6 +671,7 @@ string HUD_PANELNAME_PRESSEDKEYS    = "pressedkeys";
 string HUD_PANELNAME_CHAT              = "chat";
 string HUD_PANELNAME_ENGINEINFO                = "engineinfo";
 string HUD_PANELNAME_INFOMESSAGES      = "infomessages";
+string HUD_PANELNAME_PHYSICS   = "physics";
 
 float HUD_MENU_ENABLE          = 0;
 
index 3b93c4cae9fb31e8e003b38d6f9f7cceeced7ddc..518cf74971a645dde3c412c1a1eaabee9b5ae1b8 100644 (file)
@@ -210,10 +210,8 @@ float GameCommand_Generic(string command)
        {
                if(argv(1) == "add" && argc == 3)
                {
-                       f = fopen(strcat("maps/", argv(2), ".bsp"), FILE_READ);
-                       if(f != -1)
-                               fclose(f);
-                       else {
+                       if (!fexists(strcat("maps/", argv(2), ".bsp")))
+                       {
                                print("maplist: ERROR: ", argv(2), " does not exist!\n");
                                return TRUE;
                        }
@@ -771,10 +769,8 @@ float GameCommand_Generic(string command)
                                        s = rpn_pop();
                                        if(!rpn_error)
                                        {
-                                               f = fopen(s, FILE_READ);
-                                               if(f != -1)
-                                                       fclose(f);
-                                               else {
+                                               if (!fexists(s))
+                                               {
                                                        print("rpn: ERROR: ", s, " does not exist!\n");
                                                        rpn_error = TRUE;
                                                }
@@ -783,13 +779,10 @@ float GameCommand_Generic(string command)
                                        s = rpn_get();
                                        if(!rpn_error)
                                        {
-                                               f = fopen(s, FILE_READ);
-                                               if(f != -1) {
-                                                       fclose(f);
+                                               if (fexists(s))
                                                        rpn_setf(1);
-                                               } else {
+                                               else
                                                        rpn_setf(0);
-                                               }
                                        }
                                } else if(rpncmd == "localtime") {
                                        rpn_set(strftime(TRUE, rpn_get()));
index 58f0cc852a6e07383df3dadd8ce1d4e466c5a15a..a6b0788088216c93b53f2a0dfa96aabc5ed5e820 100644 (file)
@@ -875,12 +875,8 @@ float MapInfo_Get_ByName(string pFilename, float pAllowGenerate, float pGametype
                                if(MapInfo_Map_supportedGametypes & i)
                                        fputs(fh, sprintf("gametype %s // defaults: %s\n", MapInfo_Type_ToString(i), _MapInfo_GetDefaultEx(i)));
 
-                       fh2 = fopen(strcat("scripts/", pFilename, ".arena"), FILE_READ);
-                       if(fh2 >= 0)
-                       {
-                               fclose(fh2);
+                       if(fexists(strcat("scripts/", pFilename, ".arena")))
                                fputs(fh, "settemp_for_type all sv_q3acompat_machineshotgunswap 1\n");
-                       }
 
                        fputs(fh, "// optional: fog density red green blue alpha mindist maxdist\n");
                        fputs(fh, "// optional: settemp_for_type (all|gametypename) cvarname value\n");
index fc86c3a842d07704be28ccc1445fcfeccfe782d6..89cb92baf3fce6b4f08d881a208db2f106f67c63 100644 (file)
@@ -236,6 +236,16 @@ string fstrunzone(string s)
        return sc;
 }
 
+float fexists(string f)
+{
+    float fh;
+    fh = fopen(f, FILE_READ);
+    if (fh < 0)
+        return FALSE;
+    fclose(fh);
+    return TRUE;
+}
+
 // Databases (hash tables)
 #define DB_BUCKETS 8192
 void db_save(float db, string pFilename)
@@ -1524,12 +1534,6 @@ vector solve_quadratic(float a, float b, float c) // ax^2 + bx + c = 0
        return v;
 }
 
-
-float _unacceptable_compiler_bug_1_a(float b, float c) { return b == c; }
-float _unacceptable_compiler_bug_1_b() { return 1; }
-float _unacceptable_compiler_bug_1_c(float d) { return 2 * d; }
-float _unacceptable_compiler_bug_1_d() { return 1; }
-
 void check_unacceptable_compiler_bugs()
 {
        if(cvar("_allow_unacceptable_compiler_bugs"))
index a15855753217765d2396f6ab38f89e127a5060dc..49afad22d7f19bc62f552b8dcdbf3884f7e8654d 100644 (file)
@@ -34,6 +34,8 @@ float median(float a, float b, float c);
 // works for up to 10 decimals!
 string ftos_decimals(float number, float decimals);
 
+float fexists(string f);
+
 vector colormapPaletteColor(float c, float isPants);
 
 // unzone the string, and return it as tempstring. Safe to be called on string_null
@@ -219,6 +221,7 @@ float get_model_parameters(string mod, float skn); // call with string_null to c
 switch(id) {\
        case HUD_PANEL_ENGINEINFO: panel_name = HUD_PANELNAME_ENGINEINFO; break; \
        case HUD_PANEL_INFOMESSAGES: panel_name = HUD_PANELNAME_INFOMESSAGES; break; \
+       case HUD_PANEL_PHYSICS: panel_name = HUD_PANELNAME_PHYSICS; break; \
 } ENDS_WITH_CURLY_BRACE
 
 // Get name of specified panel id
@@ -237,8 +240,8 @@ switch(id) { \
        case HUD_PANEL_MODICONS: panel_name = HUD_PANELNAME_MODICONS; break; \
        case HUD_PANEL_PRESSEDKEYS: panel_name = HUD_PANELNAME_PRESSEDKEYS; break; \
        case HUD_PANEL_CHAT: panel_name = HUD_PANELNAME_CHAT; break; \
-}\
-HUD_Panel_GetName_Part2(id)
+    default: HUD_Panel_GetName_Part2(id)\
+}
 
 vector vec2(vector v);
 
index 91d876888dc3a04f763eca967707dae327c3601a..2433d1bcc59a987bd36424e093ed0cdaacce45f0 100644 (file)
 #include "xonotic/dialog_hudpanel_engineinfo.c"
 #include "xonotic/dialog_hudpanel_infomessages.c"
 #include "xonotic/dialog_hudpanel_weapons.c"
+#include "xonotic/dialog_hudpanel_physics.c"
 #include "xonotic/slider_picmip.c"
index 800a12681e4eb3d8b95ba4c0206baf1691cf5f3a..da6a4013cecd772051b12c76aac0f0a74a681a1c 100644 (file)
@@ -152,7 +152,7 @@ void Dialog_configureDialog(entity me)
 
        me.fill(me);
 
-       if(me.closable)
+       if(me.closable && me.borderLines > 0)
        {
                closebutton = me.closeButton = spawnButton();
                closebutton.configureButton(closebutton, "", 0, me.closeButtonImage);
index 0894856f1f9e27f0b72334a23940dcd86e88252c..3e45e416492ce6eab51eb631c85d4554f6adf746 100644 (file)
@@ -26,7 +26,7 @@ void() m_init =
        check_unacceptable_compiler_bugs();
 
 #ifdef WATERMARK
-       print(sprintf(_("^4MQC Build information: %s\n"), WATERMARK()));
+       print(sprintf(_("^4MQC Build information: ^1%s\n"), WATERMARK()));
 #endif
 
        // list all game dirs (TEST)
index 3553d447a81fae55be9e7ab50cd2c17257fb594f..ed4eba5a12676d430314bd7c46a6d93603405405 100644 (file)
@@ -2,6 +2,7 @@
 entity Object_vtbl;
 .string vtblname;
 .entity vtblbase;
+// THIS LINE INTENTIONALLY LEFT BLANK
 entity spawnVtbl(entity e, entity b)
 {
        entity v;
index 299ea09fd7dc690b49584b108e570824cabfdff7..07257696436525b2bbc90cfc84561731da15f1ec 100644 (file)
@@ -19,14 +19,14 @@ void XonoticHUDAmmoDialog_fill(entity me)
        DIALOG_HUDPANEL_COMMON();
 
        me.TR(me);
-               me.TD(me, 1, 2, e = makeXonoticTextLabel(0, _("Ammunition display:")));
+               me.TD(me, 1, 4, e = makeXonoticTextLabel(0, _("Ammunition display:")));
        me.TR(me);
                me.TDempty(me, 0.2);
-               me.TD(me, 1, 2, e = makeXonoticCheckBox(0, "hud_panel_ammo_onlycurrent", _("Show only current ammo type")));
+               me.TD(me, 1, 3.8, e = makeXonoticCheckBox(0, "hud_panel_ammo_onlycurrent", _("Show only current ammo type")));
        me.TR(me);
                me.TDempty(me, 0.2);
-               me.TD(me, 1, 1.4, e = makeXonoticTextLabel(0, "Align icon:"));
-                       me.TD(me, 1, 0.8, e = makeXonoticRadioButton(2, "hud_panel_ammo_iconalign", "0", _("Left")));
-                       me.TD(me, 1, 0.8, e = makeXonoticRadioButton(2, "hud_panel_ammo_iconalign", "1", _("Right")));
+               me.TD(me, 1, 1.4, e = makeXonoticTextLabel(0, _("Align icon:")));
+                       me.TD(me, 1, 2.4/2, e = makeXonoticRadioButton(2, "hud_panel_ammo_iconalign", "0", _("Left")));
+                       me.TD(me, 1, 2.4/2, e = makeXonoticRadioButton(2, "hud_panel_ammo_iconalign", "1", _("Right")));
 }
 #endif
index 331b0ee9ae265e0fe29b67f27f316f00f9cedce2..ba3f0d0090ec31755414b5991dbc0ed75f808550 100644 (file)
@@ -30,6 +30,6 @@ void XonoticHUDChatDialog_fill(entity me)
                me.TD(me, 1, 2.6, e = makeXonoticSlider(5, 60, 5, "con_chattime"));
        me.TR(me);
                me.TDempty(me, 0.2);
-               me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "con_chatsound", _("Chat beep sound")));
+               me.TD(me, 1, 3.8, e = makeXonoticCheckBox(0, "con_chatsound", _("Chat beep sound")));
 }
 #endif
index b69a5869e79993603011a0646df5bb17cfa92b7c..b3cc7b423a4eec2fabb41eb12663a5d79453fa37 100644 (file)
@@ -19,9 +19,9 @@ void XonoticHUDEngineInfoDialog_fill(entity me)
        DIALOG_HUDPANEL_COMMON();
 
        me.TR(me);
-               me.TD(me, 1, 2, e = makeXonoticTextLabel(0, _("Engine info:")));
+               me.TD(me, 1, 4, e = makeXonoticTextLabel(0, _("Engine info:")));
        me.TR(me);
                me.TDempty(me, 0.2);
-               me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_panel_engineinfo_framecounter_exponentialmovingaverage", _("Use an averaging algorithm for fps")));
+               me.TD(me, 1, 3.8, e = makeXonoticCheckBox(0, "hud_panel_engineinfo_framecounter_exponentialmovingaverage", _("Use an averaging algorithm for fps")));
 }
 #endif
index 91da57cdfae8da55427c3dd189f5aed28b731505..5eaf1d94059cd47d99972421f5c58ae18c3d42e2 100644 (file)
@@ -19,9 +19,9 @@ void XonoticHUDHealthArmorDialog_fill(entity me)
        DIALOG_HUDPANEL_COMMON();
 
        me.TR(me);
-               me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_panel_healtharmor_progressbar", _("Enable status bar")));
+               me.TD(me, 1, 4, e = makeXonoticCheckBox(0, "hud_panel_healtharmor_progressbar", _("Enable status bar")));
        me.TR(me);
-               me.TD(me, 1, 2, e = makeXonoticTextLabel(0, _("Status bar alignment:")));
+               me.TD(me, 1, 4, e = makeXonoticTextLabel(0, _("Status bar alignment:")));
                        setDependent(e, "hud_panel_healtharmor_progressbar", 1, 1);
        me.TR(me);
                me.TDempty(me, 0.2);
@@ -29,19 +29,19 @@ void XonoticHUDHealthArmorDialog_fill(entity me)
                        setDependent(e, "hud_panel_healtharmor_progressbar", 1, 1);
                        me.TD(me, 1, 0.95, e = makeXonoticRadioButton(2, "hud_panel_healtharmor_baralign", "1", _("Right")));
                        setDependent(e, "hud_panel_healtharmor_progressbar", 1, 1);
-                       me.TD(me, 1, 0.95, e = makeXonoticRadioButton(2, "hud_panel_healtharmor_baralign", "3", _("Inward")));
+                       me.TD(me, 1, 0.95, e = makeXonoticRadioButton(2, "hud_panel_healtharmor_baralign", "2", _("Inward")));
                        setDependent(e, "hud_panel_healtharmor_progressbar", 1, 1);
-                       me.TD(me, 1, 0.95, e = makeXonoticRadioButton(2, "hud_panel_healtharmor_baralign", "4", _("Outward")));
+                       me.TD(me, 1, 0.95, e = makeXonoticRadioButton(2, "hud_panel_healtharmor_baralign", "3", _("Outward")));
                        setDependent(e, "hud_panel_healtharmor_progressbar", 1, 1);
        me.TR(me);
-               me.TD(me, 1, 2, e = makeXonoticTextLabel(0, _("Icon alignment:")));
+               me.TD(me, 1, 4, e = makeXonoticTextLabel(0, _("Icon alignment:")));
        me.TR(me);
                me.TDempty(me, 0.2);
                        me.TD(me, 1, 0.95, e = makeXonoticRadioButton(3, "hud_panel_healtharmor_iconalign", "0", _("Left")));
                        me.TD(me, 1, 0.95, e = makeXonoticRadioButton(3, "hud_panel_healtharmor_iconalign", "1", _("Right")));
-                       me.TD(me, 1, 0.95, e = makeXonoticRadioButton(3, "hud_panel_healtharmor_iconalign", "3", _("Inward")));
-                       me.TD(me, 1, 0.95, e = makeXonoticRadioButton(3, "hud_panel_healtharmor_iconalign", "4", _("Outward")));
+                       me.TD(me, 1, 0.95, e = makeXonoticRadioButton(3, "hud_panel_healtharmor_iconalign", "2", _("Inward")));
+                       me.TD(me, 1, 0.95, e = makeXonoticRadioButton(3, "hud_panel_healtharmor_iconalign", "3", _("Outward")));
        me.TR(me);
-               me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_panel_healtharmor_flip", _("Flip health and armor positions")));
+               me.TD(me, 1, 4, e = makeXonoticCheckBox(0, "hud_panel_healtharmor_flip", _("Flip health and armor positions")));
 }
 #endif
index 44b20294b7cc801eac215b0fd9421ab85702319c..da63a1e163af6ca130d3fe9a455f89ed631b09d8 100644 (file)
@@ -19,9 +19,9 @@ void XonoticHUDInfoMessagesDialog_fill(entity me)
        DIALOG_HUDPANEL_COMMON();
 
        me.TR(me);
-               me.TD(me, 1, 2, e = makeXonoticTextLabel(0, _("Info messages:")));
+               me.TD(me, 1, 4, e = makeXonoticTextLabel(0, _("Info messages:")));
        me.TR(me);
                me.TDempty(me, 0.2);
-               me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_panel_infomessages_flip", _("Flip align")));
+               me.TD(me, 1, 3.8, e = makeXonoticCheckBox(0, "hud_panel_infomessages_flip", _("Flip align")));
 }
 #endif
index 1f26ab34aa92e3f909cc71a223dddc462e1d8be8..936a0fcb5983ddac9e97f65325b59872caaf47f8 100644 (file)
@@ -19,13 +19,13 @@ void XonoticHUDNotificationDialog_fill(entity me)
        DIALOG_HUDPANEL_COMMON();
 
        me.TR(me);
-               me.TD(me, 1, 2, e = makeXonoticTextLabel(0, _("Notifications:")));
+               me.TD(me, 1, 4, e = makeXonoticTextLabel(0, _("Notifications:")));
        me.TR(me);
                me.TDempty(me, 0.2);
-               me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_panel_notify_print", _("Also print notifications to the console")));
+               me.TD(me, 1, 3.8, e = makeXonoticCheckBox(0, "hud_panel_notify_print", _("Also print notifications to the console")));
        me.TR(me);
                me.TDempty(me, 0.2);
-               me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_panel_notify_flip", _("Flip notify order")));
+               me.TD(me, 1, 3.8, e = makeXonoticCheckBox(0, "hud_panel_notify_flip", _("Flip notify order")));
        me.TR(me);
                me.TDempty(me, 0.2);
                me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, _("Entry lifetime:")));
diff --git a/qcsrc/menu/xonotic/dialog_hudpanel_physics.c b/qcsrc/menu/xonotic/dialog_hudpanel_physics.c
new file mode 100644 (file)
index 0000000..66c872b
--- /dev/null
@@ -0,0 +1,82 @@
+#ifdef INTERFACE
+CLASS(XonoticHUDPhysicsDialog) EXTENDS(XonoticRootDialog)
+       METHOD(XonoticHUDPhysicsDialog, fill, void(entity))
+       ATTRIB(XonoticHUDPhysicsDialog, title, string, _("Physics Panel"))
+       ATTRIB(XonoticHUDPhysicsDialog, color, vector, SKINCOLOR_DIALOG_TEAMSELECT)
+       ATTRIB(XonoticHUDPhysicsDialog, intendedWidth, float, 0.4)
+       ATTRIB(XonoticHUDPhysicsDialog, rows, float, 15)
+       ATTRIB(XonoticHUDPhysicsDialog, columns, float, 4)
+       ATTRIB(XonoticHUDPhysicsDialog, name, string, "HUDphysics")
+       ATTRIB(XonoticHUDPhysicsDialog, sliderTopspeedTime, entity, NULL)
+ENDCLASS(XonoticHUDPhysicsDialog)
+#endif
+
+#ifdef IMPLEMENTATION
+void XonoticHUDPhysicsDialog_fill(entity me)
+{
+       entity e;
+       string panelname = "physics";
+       float i;
+
+       me.TR(me);
+               me.TD(me, 1, 4, e = makeXonoticTextSlider("hud_panel_physics"));
+                       e.addValue(e, _("Panel disabled"), "0");
+                       e.addValue(e, _("Panel enabled if not observing"), "1");
+                       e.addValue(e, _("Panel always enabled"), "2");
+                       e.configureXonoticTextSliderValues(e);
+
+       DIALOG_HUDPANEL_COMMON_NOTOGGLE();
+
+       me.TR(me);
+               me.TD(me, 1, 1.4, e = makeXonoticCheckBox(0, "hud_panel_physics_progressbar", _("Status bar")));
+               me.TD(me, 1, 2.6, e = makeXonoticTextSlider("hud_panel_physics_baralign"));
+                       e.addValue(e, _("Left align")   , "0");
+                       e.addValue(e, _("Right align")  , "1");
+                       e.addValue(e, _("Inward align") , "2");
+                       e.addValue(e, _("Outward align"), "3");
+                       e.configureXonoticTextSliderValues(e);
+                       setDependent(e, "hud_panel_physics_progressbar", 1, 3);
+       me.TR(me);
+               me.TD(me, 1, 4, e = makeXonoticCheckBox(0, "hud_panel_physics_flip", _("Flip speed/acceleration positions")));
+
+//speed
+       me.TR(me);
+               me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Speed:")));
+               me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_panel_physics_speed_vertical", _("Include vertical speed")));
+       // me.TR(me);
+               // me.TDempty(me, 0.2);
+               // me.TD(me, 1, 1.8, e = makeXonoticTextLabel(0, _("Full status bar at:")));
+                       // setDependent(e, "hud_panel_physics_progressbar", 1, 1);
+               // me.TD(me, 1, 1, e = makeXonoticInputBox(1, "hud_panel_physics_speed_max"));
+                       // setDependent(e, "hud_panel_physics_progressbar", 1, 1);
+               // me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("qu/s")));
+                       // setDependent(e, "hud_panel_physics_progressbar", 1, 1);
+       me.TR(me);
+               me.TDempty(me, 0.2);
+               me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, _("Speed unit:")));
+               me.TD(me, 1, 2.6/3*2, e = makeXonoticTextSlider("hud_panel_physics_speed_unit"));
+                       e.addValue(e, _("qu/s") , "1");
+                       e.addValue(e, _("m/s")  , "2");
+                       e.addValue(e, _("km/h") , "3");
+                       e.addValue(e, _("mph")  , "4");
+                       e.addValue(e, _("knots"), "5");
+                       e.configureXonoticTextSliderValues(e);
+               me.TD(me, 1, 2.6/3, e = makeXonoticCheckBox(0, "hud_panel_physics_speed_unit_show", _("Show")));
+       me.TR(me);
+               me.TDempty(me, 0.2);
+               me.TD(me, 1, 3.8/2, e = makeXonoticCheckBox(0, "hud_panel_physics_topspeed", _("Top speed")));
+               me.TD(me, 1, 3.8/2, e = makeXonoticSlider(1, 10, 1, "hud_panel_physics_topspeed_time"));
+                       setDependent(e, "hud_panel_physics_topspeed", 1, 1);
+
+//acceleration
+       me.TR(me);
+               me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Acceleration:")));
+               me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_panel_physics_acceleration_vertical", _("Include vertical acceleration")));
+       // me.TR(me);
+               // me.TDempty(me, 0.2);
+               // me.TD(me, 1, 1.8, e = makeXonoticTextLabel(0, _("Full status bar at:")));
+                       // setDependent(e, "hud_panel_physics_progressbar", 1, 1);
+               // me.TD(me, 1, 0.6, e = makeXonoticInputBox(1, "hud_panel_physics_acceleration_max"));
+                       // setDependent(e, "hud_panel_physics_progressbar", 1, 1);
+}
+#endif
index e63e785528f0ef10de774a51eb6a364c9d41f2fc..abab5d1f0d07758cc3e00f3c1f647f5d00354bd3 100644 (file)
@@ -19,9 +19,9 @@ void XonoticHUDPowerupsDialog_fill(entity me)
        DIALOG_HUDPANEL_COMMON();
 
        me.TR(me);
-               me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_panel_powerups_progressbar", _("Enable status bar")));
+               me.TD(me, 1, 4, e = makeXonoticCheckBox(0, "hud_panel_powerups_progressbar", _("Enable status bar")));
        me.TR(me);
-               me.TD(me, 1, 2, e = makeXonoticTextLabel(0, _("Status bar alignment:")));
+               me.TD(me, 1, 4, e = makeXonoticTextLabel(0, _("Status bar alignment:")));
                        setDependent(e, "hud_panel_powerups_progressbar", 1, 1);
        me.TR(me);
                me.TDempty(me, 0.2);
@@ -29,19 +29,19 @@ void XonoticHUDPowerupsDialog_fill(entity me)
                        setDependent(e, "hud_panel_powerups_progressbar", 1, 1);
                        me.TD(me, 1, 0.95, e = makeXonoticRadioButton(2, "hud_panel_powerups_baralign", "1", _("Right")));
                        setDependent(e, "hud_panel_powerups_progressbar", 1, 1);
-                       me.TD(me, 1, 0.95, e = makeXonoticRadioButton(2, "hud_panel_powerups_baralign", "3", _("Inward")));
+                       me.TD(me, 1, 0.95, e = makeXonoticRadioButton(2, "hud_panel_powerups_baralign", "2", _("Inward")));
                        setDependent(e, "hud_panel_powerups_progressbar", 1, 1);
-                       me.TD(me, 1, 0.95, e = makeXonoticRadioButton(2, "hud_panel_powerups_baralign", "4", _("Outward")));
+                       me.TD(me, 1, 0.95, e = makeXonoticRadioButton(2, "hud_panel_powerups_baralign", "3", _("Outward")));
                        setDependent(e, "hud_panel_powerups_progressbar", 1, 1);
        me.TR(me);
-               me.TD(me, 1, 2, e = makeXonoticTextLabel(0, _("Icon alignment:")));
+               me.TD(me, 1, 4, e = makeXonoticTextLabel(0, _("Icon alignment:")));
        me.TR(me);
                me.TDempty(me, 0.2);
                        me.TD(me, 1, 0.95, e = makeXonoticRadioButton(3, "hud_panel_powerups_iconalign", "0", _("Left")));
                        me.TD(me, 1, 0.95, e = makeXonoticRadioButton(3, "hud_panel_powerups_iconalign", "1", _("Right")));
-                       me.TD(me, 1, 0.95, e = makeXonoticRadioButton(3, "hud_panel_powerups_iconalign", "3", _("Inward")));
-                       me.TD(me, 1, 0.95, e = makeXonoticRadioButton(3, "hud_panel_powerups_iconalign", "4", _("Outward")));
+                       me.TD(me, 1, 0.95, e = makeXonoticRadioButton(3, "hud_panel_powerups_iconalign", "2", _("Inward")));
+                       me.TD(me, 1, 0.95, e = makeXonoticRadioButton(3, "hud_panel_powerups_iconalign", "3", _("Outward")));
        me.TR(me);
-               me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_panel_powerups_flip", _("Flip strength and shield positions")));
+               me.TD(me, 1, 4, e = makeXonoticCheckBox(0, "hud_panel_powerups_flip", _("Flip strength and shield positions")));
 }
 #endif
index 479c2bb333956c0cfaf275017e27dfd8b690f14e..3e72acc8b0ee737558ee8319bf7b14f56e8dbecf 100644 (file)
@@ -26,7 +26,7 @@ void XonoticHUDRadarDialog_fill(entity me)
        DIALOG_HUDPANEL_COMMON_NOTOGGLE();
 
        me.TR(me);
-               me.TD(me, 1, 2, e = makeXonoticTextLabel(0, _("Radar:")));
+               me.TD(me, 1, 4, e = makeXonoticTextLabel(0, _("Radar:")));
        me.TR(me);
                me.TDempty(me, 0.2);
                me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, _("Alpha:")));
index ccb8d9528bed1807833c8acaa8f0d2124e34b3d2..778172aa1404f8a68ed5a6d582248021d683a193 100644 (file)
@@ -17,5 +17,14 @@ void XonoticHUDScoreDialog_fill(entity me)
        string panelname = "score";
 
        DIALOG_HUDPANEL_COMMON();
+
+       me.TR(me);
+               me.TD(me, 1, 4, e = makeXonoticTextLabel(0, _("Score:")));
+       me.TR(me);
+               me.TDempty(me, 0.2);
+               me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, _("Rankings:")));
+               me.TD(me, 1, 2.6/3, e = makeXonoticRadioButton(1, "hud_panel_score_rankings", "0", _("Off")));
+               me.TD(me, 1, 2.6/3, e = makeXonoticRadioButton(1, "hud_panel_score_rankings", "1", _("And me")));
+               me.TD(me, 1, 2.6/3, e = makeXonoticRadioButton(1, "hud_panel_score_rankings", "2", _("Pure")));
 }
 #endif
index 5f2fc5dd747b63cf8d73589ecc90b377c59fae7f..c1e9626dd983618f188d83a9b952601ace69e905 100644 (file)
@@ -19,9 +19,9 @@ void XonoticHUDTimerDialog_fill(entity me)
        DIALOG_HUDPANEL_COMMON();
 
        me.TR(me);
-               me.TD(me, 1, 2, e = makeXonoticTextLabel(0, _("Timer:")));
+               me.TD(me, 1, 4, e = makeXonoticTextLabel(0, _("Timer:")));
        me.TR(me);
                me.TDempty(me, 0.2);
-               me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_panel_timer_increment", _("Show elapsed time")));
+               me.TD(me, 1, 3.8, e = makeXonoticCheckBox(0, "hud_panel_timer_increment", _("Show elapsed time")));
 }
 #endif
index d3d35c22a45b19a2cd975509e43f74f5f8ee470e..0b2c0ac07836656411e488b57797bdc7dad91bc9 100644 (file)
@@ -20,6 +20,6 @@ void XonoticHUDVoteDialog_fill(entity me)
 
        me.TR(me);
                me.TD(me, 1, 1.4, e = makeXonoticTextLabel(0, _("Alpha after voting:")));
-                       me.TD(me, 1, 2.6, e = makeXonoticSlider(0.1, 1, 0.1, "hud_panel_vote_alreadyvoted_alpha"));
+               me.TD(me, 1, 2.6, e = makeXonoticSlider(0.1, 1, 0.1, "hud_panel_vote_alreadyvoted_alpha"));
 }
 #endif
index 394ec332385df0807d9b86146209cbffa8ec293e..d0daa678422237378b21adc71800766c0627e481 100644 (file)
@@ -29,15 +29,17 @@ void XonoticHUDWeaponsDialog_fill(entity me)
                                e.configureXonoticTextSliderValues(e);
        me.TR(me);
                me.TDempty(me, 0.2);
-               me.TD(me, 1, 1.4, e = makeXonoticTextLabel(0, _("Fade effect:")));
-               me.TD(me, 1, 0.8, e = makeXonoticRadioButton(3, "hud_panel_weapons_timeout_effect", "0", ZCTX(_("EF^None"))));
-                       setDependentStringNotEqual(e, strzone(strcat("hud_panel_", panelname, "_timeout")), "0");
-               me.TD(me, 1, 0.8, e = makeXonoticRadioButton(3, "hud_panel_weapons_timeout_effect", "1", _("Slide")));
-                       setDependentStringNotEqual(e, strzone(strcat("hud_panel_", panelname, "_timeout")), "0");
-               me.TD(me, 1, 0.8, e = makeXonoticRadioButton(3, "hud_panel_weapons_timeout_effect", "2", _("Alpha")));
+               me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, _("Fade effect:")));
+               setDependentStringNotEqual(e, strzone(strcat("hud_panel_", panelname, "_timeout")), "0");
+                       me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_timeout_effect"))));
+                               e.addValue(e, ZCTX(_("EF^None")),  "0");
+                               e.addValue(e, _("Slide"), "1");
+                               e.addValue(e, _("Alpha"), "2");
+                               e.addValue(e, ZCTX(_("EF^Both")),  "3");
+                               e.configureXonoticTextSliderValues(e);
                        setDependentStringNotEqual(e, strzone(strcat("hud_panel_", panelname, "_timeout")), "0");
        me.TR(me);
-               me.TD(me, 1, 2, e = makeXonoticTextLabel(0, _("Weapon icons:")));
+               me.TD(me, 1, 4, e = makeXonoticTextLabel(0, _("Weapon icons:")));
        me.TR(me);
                me.TDempty(me, 0.2);
                me.TD(me, 1, 1.4, e = makeXonoticTextLabel(0, _("Show weapon ID as:")));
@@ -46,8 +48,8 @@ void XonoticHUDWeaponsDialog_fill(entity me)
                        me.TD(me, 1, 0.8, e = makeXonoticRadioButton(2, "hud_panel_weapons_label", "2", _("Bind")));
        me.TR(me);
                me.TDempty(me, 0.2);
-               me.TD(me, 1, 2, e = makeXonoticCheckBox(0, "hud_panel_weapons_accuracy", _("Show Accuracy")));
-               me.TD(me, 1, 2, e = makeXonoticCheckBox(0, "hud_panel_weapons_ammo", _("Show Ammo")));
+               me.TD(me, 1, 3.8/2, e = makeXonoticCheckBox(0, "hud_panel_weapons_accuracy", _("Show Accuracy")));
+               me.TD(me, 1, 3.8/2, e = makeXonoticCheckBox(0, "hud_panel_weapons_ammo", _("Show Ammo")));
        me.TR(me);
                me.TDempty(me, 0.2);
                me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, _("Ammo bar color:")));
@@ -57,7 +59,7 @@ void XonoticHUDWeaponsDialog_fill(entity me)
        me.TR(me);
                me.TDempty(me, 0.2);
                me.TD(me, 1, 1.4, e = makeXonoticTextLabel(0, _("Ammo bar alpha:")));
-                       me.TD(me, 1, 2.6, e = makeXonoticSlider(0.1, 1, 0.1, "hud_panel_weapons_ammo_alpha"));
+                       me.TD(me, 1, 2.4, e = makeXonoticSlider(0.1, 1, 0.1, "hud_panel_weapons_ammo_alpha"));
                        setDependent(e, "hud_panel_weapons_ammo", 1, 1);
 }
 #endif
index e449fa5d4814a77b2cd9a933c0779a4ff48b6027..540e85e4f69ef1a9867be4115dca4e11f998e9f0 100644 (file)
@@ -20,7 +20,7 @@ void XonoticHUDExitDialog_fill(entity me)
        me.TR(me);
                me.TD(me, 1, 4, makeXonoticTextLabel(0, _("Panel background defaults:")));
        me.TR(me);
-               me.TD(me, 1, 1.4, e = makeXonoticTextLabel(0, "Background:"));
+               me.TD(me, 1, 1.4, e = makeXonoticTextLabel(0, _("Background:")));
                        me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_bg"))));
                                e.addValue(e, _("Disable"), "0");
                                e.addValue(e, "border_default", "border_default"); // this is a file name!
index b9373c4d7fde6f22904fea102f66edc8a8bf40e0..17b12896c44f3a9d994a5f744473e77144c2c6e9 100644 (file)
@@ -135,7 +135,7 @@ void XonoticPlayerSettingsTab_fill(entity me)
                me.TD(me, 1, 1.8, e = makeXonoticSlider(0, 1, 0.1, "crosshair_alpha"));
        me.TR(me);
                me.TDempty(me, 0.2);
-               me.TD(me, 1, 1, e = makeXonoticTextLabel(0, "Crosshair color:"));
+               me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Crosshair color:")));
                me.TD(me, 1, 0.9, e = makeXonoticRadioButton(4, "crosshair_color_per_weapon", string_null, _("Per weapon")));
                me.TD(me, 1, 0.9, e = makeXonoticRadioButton(4, "crosshair_color_by_health", string_null, _("By health")));
        me.TR(me);
index ee244931d6a440d3d14679b76827c3311a511d57..617b4e95f2628837225cf0acee3e44db339be3aa 100644 (file)
@@ -46,8 +46,11 @@ void XonoticInputSettingsTab_fill(entity me)
                me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Sensitivity:")));
                me.TD(me, 1, 2, e = makeXonoticSlider(1, 32, 0.2, "sensitivity"));
        me.TR(me);
-               me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("UI mouse speed:")));
-               me.TD(me, 1, 2, e = makeXonoticSlider(0.2, 4.0, 0.1, "menu_mouse_speed"));
+               if(cvar("menu_mouse_absolute") == 0) // TODO remove this entirely later
+               {
+                       me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("UI mouse speed:")));
+                       me.TD(me, 1, 2, e = makeXonoticSlider(0.2, 4.0, 0.1, "menu_mouse_speed"));
+               }
        me.TR(me);
                me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "m_filter", _("Mouse filter")));
        me.TR(me);
index 7fa3dc66b329ce71fe66889df08def1fa20fcae7..72af4dce144b4e9c6d00e5a42f5d6ce5ec737c06 100644 (file)
@@ -49,33 +49,6 @@ void XonoticMiscSettingsTab_fill(entity me)
                me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "showdate", _("Show current date")));
        me.TR(me);
                me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "showfps", _("Show frames per second")));
-       me.TR(me);
-               me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "cl_showspeed", _("Speedometer")));
-       me.TR(me);
-               me.TDempty(me, 0.2);
-               me.TD(me, 1, 2.8/3, e = makeXonoticRadioButton(1, "cl_showspeed_unit", "0", _("qu/s (hidden)")));
-                       setDependent(e, "cl_showspeed", 1, 1);
-               me.TD(me, 1, 2.8/3, e = makeXonoticRadioButton(1, "cl_showspeed_unit", "1", _("qu/s")));
-                       setDependent(e, "cl_showspeed", 1, 1);
-               me.TD(me, 1, 2.8/3, e = makeXonoticRadioButton(1, "cl_showspeed_unit", "2", _("m/s")));
-                       setDependent(e, "cl_showspeed", 1, 1);
-       me.TR(me);
-               me.TDempty(me, 0.2);
-               me.TD(me, 1, 2.8/3, e = makeXonoticRadioButton(1, "cl_showspeed_unit", "3", _("km/h")));
-                       setDependent(e, "cl_showspeed", 1, 1);
-               me.TD(me, 1, 2.8/3, e = makeXonoticRadioButton(1, "cl_showspeed_unit", "4", _("mph")));
-                       setDependent(e, "cl_showspeed", 1, 1);
-               me.TD(me, 1, 2.8/3, e = makeXonoticRadioButton(1, "cl_showspeed_unit", "5", _("knots")));
-                       setDependent(e, "cl_showspeed", 1, 1);
-       me.TR(me);
-               me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "cl_showacceleration", _("Show accelerometer")));
-       me.TR(me);
-               me.TDempty(me, 0.2);
-               me.TD(me, 1, 2.8/2, e = makeXonoticTextLabel(0, _("Accelerometer scale:")));
-                       setDependent(e, "cl_showacceleration", 1, 1);
-               me.TD(me, 1, 2.8/2, e = makeXonoticSlider(0.2, 2, 0.2, "cl_showacceleration_scale"));
-                       setDependent(e, "cl_showacceleration", 1, 1);
-       me.TR(me);
        me.TR(me);
                me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "cl_maxfps_alwayssleep", _("Minimize input latency")));
        me.TR(me);
index 38b236b62ba30cd6dff8df14b4cca9c4619647c2..b1907b604c6f3dc09ed0783e13ef1110265c3e19 100644 (file)
@@ -84,15 +84,19 @@ void XonoticVideoSettingsTab_fill(entity me)
                me.TD(me, 1, 2, e = makeXonoticSlider(1.0, 3.0, 0.05, "v_contrast"));
        me.TR(me);
                me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Gamma:")));
+                       setDependentAND(e, "r_glsl", 1, 1, "v_glslgamma", 1, 1);
                me.TD(me, 1, 2, e = makeXonoticSlider(0.5, 2.0, 0.05, "v_gamma"));
+                       setDependentAND(e, "r_glsl", 1, 1, "v_glslgamma", 1, 1);
        me.TR(me);
                me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Contrast boost:")));
+                       setDependentAND(e, "r_glsl", 1, 1, "v_glslgamma", 1, 1);
                me.TD(me, 1, 2, e = makeXonoticSlider(1.0, 5.0, 0.1, "v_contrastboost"));
+                       setDependentAND(e, "r_glsl", 1, 1, "v_glslgamma", 1, 1);
        me.TR(me);
                me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Saturation:")));
-                       setDependent(e, "vid_gl20", 1, 1);
+                       setDependent(e, "r_glsl", 1, 1);
                me.TD(me, 1, 2, e = makeXonoticSlider(0.5, 2.0, 0.05, "r_glsl_saturation"));
-                       setDependent(e, "vid_gl20", 1, 1);
+                       setDependent(e, "r_glsl", 1, 1);
        me.TR(me);
        me.TR(me);
                me.TD(me, 1, 1, e = makeXonoticTextLabel(0, ZCTX(_("LIT^Ambient:"))));
index 314d192bb9b39f8b69d96ffce17132099c3d3e52..9162c850dad5a10c2533b3327078e956e085fd9e 100644 (file)
@@ -114,7 +114,11 @@ void MainWindow_configureMainWindow(entity me)
        i = spawnXonoticHUDInfoMessagesDialog();
        i.configureDialog(i);
        me.addItemCentered(me, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z);
-
+       
+       i = spawnXonoticHUDPhysicsDialog();
+       i.configureDialog(i);
+       me.addItemCentered(me, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z);
+       
        me.screenshotViewerDialog = i = spawnXonoticScreenshotViewerDialog();
        i.configureDialog(i);
        me.addItemCentered(me, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z);
index 1d21ba4910a7a391b8d3a87b40bc27f988fe5353..8544276bb2a73cdc50bd580d15a5a34e28550f92 100644 (file)
@@ -364,7 +364,7 @@ void postMenuDraw()
        if(autocvar_menu_watermark != "")
        {
                vector fs = '48 48 0';
-               draw_CenterText('0.5 0.1 0', autocvar_menu_watermark, globalToBoxSize('32 32 0', draw_scale), '1 1 1', 0.05, 1);
+               draw_CenterText('0.5 0.1 0', sprintf(_("^1%s TEST BUILD"), autocvar_menu_watermark), globalToBoxSize('32 32 0', draw_scale), '1 1 1', 0.05, 1);
        }
 }
 void preMenuDraw()
@@ -464,25 +464,13 @@ string resolvemod(string m)
                return m;
 }
 
-string HUD_Panel_GetSettingName(float theSetting)
-{
-       switch(theSetting) {
-               case HUD_MENU_ENABLE: return ""; break;
-               default: return "";
-       }
-}
-
 float updateCompression()
 {
-       float fh;
        float have_dds, have_jpg, have_tga;
        float can_dds;
-       if((have_dds = ((fh = fopen("dds/particles/particlefont.dds", FILE_READ)) >= 0)))
-               fclose(fh);
-       if((have_jpg = ((fh = fopen("particles/particlefont.jpg", FILE_READ)) >= 0)))
-               fclose(fh);
-       if((have_tga = ((fh = fopen("particles/particlefont.tga", FILE_READ)) >= 0)))
-               fclose(fh);
+       have_dds = (fexists("dds/particles/particlefont.dds"));
+       have_dds = (fexists("particles/particlefont.jpg"));
+       have_dds = (fexists("particles/particlefont.tga"));
        can_dds = GL_Have_TextureCompression();
        if(have_dds && (have_jpg || have_tga))
        {
index 0d31f0150a6208b0ec1a3e33e8e67b36297b753d..5962b9648ccc74ff091132952af3956ad0681fcf 100644 (file)
@@ -22,8 +22,6 @@ string getZonedTooltipForIdentifier(string s);
 
 string resolvemod(string m);
 
-string HUD_Panel_GetSettingName(float setting);
-
 float URI_GET_DISCARD = 0;
 
 float URI_GET_UPDATENOTIFICATION = 1;
index 5110d373b8a682e657e1a5f10201c2c91303dbba..a58ccb2a54dbb3061519b37ef40c60ba92ad6609 100644 (file)
@@ -328,7 +328,7 @@ void count_alive_players()
                                totalalive += 1;
                        }
                }
-               FOR_EACH_PLAYER(self) {
+               FOR_EACH_REALCLIENT(self) {
                        self.redalive_stat = redalive;
                        self.bluealive_stat = bluealive;
                }
@@ -358,7 +358,7 @@ void count_alive_players()
                                totalalive += 1;
                        }
                }
-               FOR_EACH_PLAYER(self) {
+               FOR_EACH_REALCLIENT(self) {
                        self.redalive_stat = redalive;
                        self.bluealive_stat = bluealive;
                        self.yellowalive_stat = yellowalive;
index d5652b775e4620b3831c96b0ae44d16ba1f737b8..70719e0d7c9f03e09f3c24c16634b251db7074b5 100644 (file)
@@ -54,6 +54,9 @@ float autocvar_bot_sound_monopoly;
 #define autocvar_bot_suffix cvar_string("bot_suffix")
 float autocvar_bot_usemodelnames;
 float autocvar_bot_vs_human;
+float autocvar_bot_debug_tracewalk;
+float autocvar_bot_debug_goalstack;
+float autocvar_bot_wander_enable;
 float autocvar_captureleadlimit_override;
 #define autocvar_capturelimit_override cvar("capturelimit_override")
 float autocvar_deathmatch_force_teamplay;
@@ -93,6 +96,7 @@ float autocvar_g_balance_sniperrifle_primary_force;
 float autocvar_g_balance_sniperrifle_primary_headshotaddeddamage;
 float autocvar_g_balance_sniperrifle_primary_lifetime;
 float autocvar_g_balance_sniperrifle_primary_refire;
+float autocvar_g_balance_sniperrifle_primary_shots;
 float autocvar_g_balance_sniperrifle_primary_speed;
 float autocvar_g_balance_sniperrifle_primary_spread;
 float autocvar_g_balance_sniperrifle_primary_tracer;
@@ -108,6 +112,7 @@ float autocvar_g_balance_sniperrifle_secondary_headshotaddeddamage;
 float autocvar_g_balance_sniperrifle_secondary_lifetime;
 float autocvar_g_balance_sniperrifle_secondary_reload;
 float autocvar_g_balance_sniperrifle_secondary_refire;
+float autocvar_g_balance_sniperrifle_secondary_shots;
 float autocvar_g_balance_sniperrifle_secondary_speed;
 float autocvar_g_balance_sniperrifle_secondary_spread;
 float autocvar_g_balance_sniperrifle_secondary_tracer;
@@ -316,6 +321,12 @@ float autocvar_g_balance_hagar_primary_radius;
 float autocvar_g_balance_hagar_primary_refire;
 float autocvar_g_balance_hagar_primary_speed;
 float autocvar_g_balance_hagar_secondary;
+float autocvar_g_balance_hagar_secondary_load;
+float autocvar_g_balance_hagar_secondary_load_speed;
+float autocvar_g_balance_hagar_secondary_load_max;
+float autocvar_g_balance_hagar_secondary_load_hold;
+float autocvar_g_balance_hagar_secondary_load_releasedeath;
+float autocvar_g_balance_hagar_secondary_load_abort;
 float autocvar_g_balance_hagar_secondary_ammo;
 float autocvar_g_balance_hagar_secondary_damage;
 float autocvar_g_balance_hagar_secondary_edgedamage;
@@ -641,6 +652,7 @@ float autocvar_g_balance_shotgun_secondary_melee_delay;
 float autocvar_g_balance_shotgun_secondary_melee_range;
 float autocvar_g_balance_shotgun_secondary_melee_swing;
 float autocvar_g_balance_shotgun_secondary_melee_time;
+float autocvar_g_balance_shotgun_secondary_melee_no_doubleslap;
 float autocvar_g_balance_shotgun_secondary_refire;
 float autocvar_g_balance_shotgun_reload_ammo;
 float autocvar_g_balance_shotgun_reload_time;
@@ -1232,3 +1244,4 @@ float autocvar_waypoint_benchmark;
 float autocvar_welcome_message_time;
 float autocvar_sv_gameplayfix_gravityunaffectedbyticrate;
 float autocvar_g_trueaim_minrange;
+float autocvar_sv_shownames_cull_distance;
index 581e3f0c758050dae69b33c9c983a98a4ba735c4..8be71a3cf09f1f1dadbec0069f10099ebadd22d9 100644 (file)
@@ -98,6 +98,8 @@ void bot_think()
                        self.bot_strategytime = 0;
                }
        }
+       else if(self.aistatus & AI_STATUS_STUCK)
+               navigation_unstuck();
 
        // now call the current bot AI (havocbot for example)
        self.bot_ai();
@@ -374,6 +376,8 @@ void bot_clientdisconnect()
        self.playermodel_freeme = string_null;
        self.playerskin_freeme = string_null;
        remove(self.bot_cmd_current);
+       if(bot_waypoint_queue_owner==self)
+               bot_waypoint_queue_owner = world;
 }
 
 void bot_clientconnect()
index 9e6d447e6a8d22ef3b9e857e32f00efe67b282d1..55f3250ee167294272ed9464c3d6657b23bcdda1 100644 (file)
@@ -2,17 +2,18 @@
  * Globals and Fields
  */
 
-float AI_STATUS_ROAMING                                = 1;    // Bot is just crawling the map. No enemies at sight
-float AI_STATUS_ATTACKING                      = 2;    // There are enemies at sight
-float AI_STATUS_RUNNING                                = 4;    // Bot is bunny hopping
-float AI_STATUS_DANGER_AHEAD                   = 8;    // There is lava/slime/trigger_hurt ahead
-float AI_STATUS_OUT_JUMPPAD                    = 16;   // Trying to get out of a "vertical" jump pad
-float AI_STATUS_OUT_WATER                      = 32;   // Trying to get out of water
+float AI_STATUS_ROAMING                                                = 1;    // Bot is just crawling the map. No enemies at sight
+float AI_STATUS_ATTACKING                                      = 2;    // There are enemies at sight
+float AI_STATUS_RUNNING                                                = 4;    // Bot is bunny hopping
+float AI_STATUS_DANGER_AHEAD                           = 8;    // There is lava/slime/trigger_hurt ahead
+float AI_STATUS_OUT_JUMPPAD                                    = 16;   // Trying to get out of a "vertical" jump pad
+float AI_STATUS_OUT_WATER                                      = 32;   // Trying to get out of water
 float AI_STATUS_WAYPOINT_PERSONAL_LINKING      = 64;   // Waiting for the personal waypoint to be linked
 float AI_STATUS_WAYPOINT_PERSONAL_GOING                = 128;  // Going to a personal waypoint
 float AI_STATUS_WAYPOINT_PERSONAL_REACHED      = 256;  // Personal waypoint reached
-float AI_STATUS_JETPACK_FLYING                 = 512;
-float AI_STATUS_JETPACK_LANDING                        = 1024;
+float AI_STATUS_JETPACK_FLYING                         = 512;
+float AI_STATUS_JETPACK_LANDING                                = 1024;
+float AI_STATUS_STUCK                                          = 2048; // Cannot reach any goal
 
 .float isbot; // true if this client is actually a bot
 .float aistatus;
index e67bc214e6edefe7aa36f1b4163bdd33d11b01d0..708ae9452e82ce1ceb40ec28643dc8c1f8556619 100644 (file)
@@ -416,10 +416,11 @@ void havocbot_movetogoal()
        if(self.goalcurrent==self.navigation_jetpack_goal)
        if(self.ammo_fuel)
        {
-               #ifdef DEBUG_BOT_GOALSTACK
+               if(autocvar_bot_debug_goalstack)
+               {
                        debuggoalstack();
                        te_wizspike(self.navigation_jetpack_point);
-               #endif
+               }
 
                // Take off
                if not(self.aistatus & AI_STATUS_JETPACK_FLYING)
@@ -653,9 +654,8 @@ void havocbot_movetogoal()
                return;
        }
 
-#ifdef DEBUG_BOT_GOALSTACK
-       debuggoalstack();
-#endif
+       if(autocvar_bot_debug_goalstack)
+               debuggoalstack();
 
        m1 = self.goalcurrent.origin + self.goalcurrent.mins;
        m2 = self.goalcurrent.origin + self.goalcurrent.maxs;
@@ -1139,9 +1139,8 @@ float havocbot_moveto(vector pos)
                        }
                }
 
-               #ifdef DEBUG_BOT_GOALSTACK
+               if(autocvar_bot_debug_goalstack)
                        debuggoalstack();
-               #endif
 
                // Heading
                local vector dir = self.goalcurrent.origin - (self.origin + self.view_ofs);
index 9e1a92a22249465776fba51660cd37bc25d96191..03a549439068b15d2d484f20e918af379686105f 100644 (file)
@@ -14,10 +14,11 @@ float tracewalk(entity e, vector start, vector m1, vector m2, vector end, float
        local float ignorehazards;
        local float swimming;
 
-       #ifdef DEBUG_TRACEWALK
+       if(autocvar_bot_debug_tracewalk)
+       {
                debugresetnodes();
                debugnode(start);
-       #endif
+       }
 
        move = end - start;
        move_z = 0;
@@ -44,9 +45,9 @@ float tracewalk(entity e, vector start, vector m1, vector m2, vector end, float
        if (trace_startsolid)
        {
                // Bad start
-               #ifdef DEBUG_TRACEWALK
+               if(autocvar_bot_debug_tracewalk)
                        debugnodestatus(start, DEBUG_NODE_FAIL);
-               #endif
+
                //print("tracewalk: ", vtos(start), " is a bad start\n");
                return FALSE;
        }
@@ -59,15 +60,14 @@ float tracewalk(entity e, vector start, vector m1, vector m2, vector end, float
                if (boxesoverlap(end, end, org + m1 + '-1 -1 -1', org + m2 + '1 1 1'))
                {
                        // Succeeded
-                       #ifdef DEBUG_TRACEWALK
+                       if(autocvar_bot_debug_tracewalk)
                                debugnodestatus(org, DEBUG_NODE_SUCCESS);
-                       #endif
+
                        //print("tracewalk: ", vtos(start), " can reach ", vtos(end), "\n");
                        return TRUE;
                }
-               #ifdef DEBUG_TRACEWALK
+               if(autocvar_bot_debug_tracewalk)
                        debugnode(org);
-               #endif
 
                if (dist <= 0)
                        break;
@@ -80,9 +80,9 @@ float tracewalk(entity e, vector start, vector m1, vector m2, vector end, float
                        if (trace_dpstartcontents & (DPCONTENTS_SLIME | DPCONTENTS_LAVA))
                        {
                                // hazards blocking path
-                               #ifdef DEBUG_TRACEWALK
+                               if(autocvar_bot_debug_tracewalk)
                                        debugnodestatus(org, DEBUG_NODE_FAIL);
-                               #endif
+
                                //print("tracewalk: ", vtos(start), " hits a hazard when trying to reach ", vtos(end), "\n");
                                return FALSE;
                        }
@@ -92,9 +92,8 @@ float tracewalk(entity e, vector start, vector m1, vector m2, vector end, float
                        move = normalize(end - org);
                        tracebox(org, m1, m2, org + move * stepdist, movemode, e);
 
-                       #ifdef DEBUG_TRACEWALK
+                       if(autocvar_bot_debug_tracewalk)
                                debugnode(trace_endpos);
-                       #endif
 
                        if (trace_fraction < 1)
                        {
@@ -102,18 +101,18 @@ float tracewalk(entity e, vector start, vector m1, vector m2, vector end, float
                                org = trace_endpos - normalize(org - trace_endpos) * stepdist;
                                for(; org_z < end_z + self.maxs_z; org_z += stepdist)
                                {
-                                               #ifdef DEBUG_TRACEWALK
+                                               if(autocvar_bot_debug_tracewalk)
                                                        debugnode(org);
-                                               #endif
+
                                        if(pointcontents(org) == CONTENT_EMPTY)
                                                        break;
                                }
 
                                if not (pointcontents(org + '0 0 1') == CONTENT_EMPTY)
                                {
-                                       #ifdef DEBUG_TRACEWALK
+                                       if(autocvar_bot_debug_tracewalk)
                                                debugnodestatus(org, DEBUG_NODE_FAIL);
-                                       #endif
+
                                        return FALSE;
                                        //print("tracewalk: ", vtos(start), " failed under water\n");
                                }
@@ -128,9 +127,8 @@ float tracewalk(entity e, vector start, vector m1, vector m2, vector end, float
                        move = dir * stepdist + org;
                        tracebox(org, m1, m2, move, movemode, e);
 
-                       #ifdef DEBUG_TRACEWALK
+                       if(autocvar_bot_debug_tracewalk)
                                debugnode(trace_endpos);
-                       #endif
 
                        // hit something
                        if (trace_fraction < 1)
@@ -139,9 +137,8 @@ float tracewalk(entity e, vector start, vector m1, vector m2, vector end, float
                                tracebox(org + stepheightvec, m1, m2, move + stepheightvec, movemode, e);
                                if (trace_fraction < 1 || trace_startsolid)
                                {
-                                       #ifdef DEBUG_TRACEWALK
+                                       if(autocvar_bot_debug_tracewalk)
                                                debugnodestatus(trace_endpos, DEBUG_NODE_WARNING);
-                                       #endif
 
                                        // check for doors
                                        traceline( org, move, movemode, e);
@@ -158,9 +155,9 @@ float tracewalk(entity e, vector start, vector m1, vector m2, vector end, float
                                        }
                                        else
                                        {
-                                               #ifdef DEBUG_TRACEWALK
+                                               if(autocvar_bot_debug_tracewalk)
                                                        debugnodestatus(trace_endpos, DEBUG_NODE_FAIL);
-                                               #endif
+
                                                //print("tracewalk: ", vtos(start), " hit something when trying to reach ", vtos(end), "\n");
                                                //te_explosion(trace_endpos);
                                                //print(ftos(e.dphitcontentsmask), "\n");
@@ -197,9 +194,8 @@ float tracewalk(entity e, vector start, vector m1, vector m2, vector end, float
        //print("tracewalk: ", vtos(start), " did not arrive at ", vtos(end), " but at ", vtos(org), "\n");
 
        // moved but didn't arrive at the intended destination
-       #ifdef DEBUG_TRACEWALK
+       if(autocvar_bot_debug_tracewalk)
                debugnodestatus(org, DEBUG_NODE_FAIL);
-       #endif
 
        return FALSE;
 };
@@ -894,6 +890,9 @@ void navigation_poptouchedgoals()
 // begin a goal selection session (queries spawnfunc_waypoint network)
 void navigation_goalrating_start()
 {
+       if(self.aistatus & AI_STATUS_STUCK)
+               return;
+
        self.navigation_jetpack_goal = world;
        navigation_bestrating = -1;
        self.navigation_hasgoals = FALSE;
@@ -905,29 +904,21 @@ void navigation_goalrating_start()
 // ends a goal selection session (updates goal stack to the best goal)
 void navigation_goalrating_end()
 {
+       if(self.aistatus & AI_STATUS_STUCK)
+               return;
+
        navigation_routetogoal(navigation_bestgoal, self.origin);
 //     dprint("best goal ", self.goalcurrent.classname , "\n");
 
-       // Hack: if it can't walk to any goal just move blindly to the first visible waypoint
+       // If the bot got stuck then try to reach the farthest waypoint
        if not (self.navigation_hasgoals)
+       if (autocvar_bot_wander_enable)
        {
-               dprint(self.netname, " can't walk to any goal, going to a near waypoint\n");
-
-               entity head;
-
-               RandomSelection_Init();
-               head = findradius(self.origin,1000);
-               while(head)
+               if not(self.aistatus & AI_STATUS_STUCK)
                {
-                       if(head.classname=="waypoint")
-                       if(!(head.wpflags & WAYPOINTFLAG_GENERATED))
-                       if(vlen(self.origin-head.origin)>100)
-                       if(checkpvs(self.view_ofs,head))
-                               RandomSelection_Add(head, 0, string_null, 1 + (vlen(self.origin-head.origin)<500), 0);
-                       head = head.chain;
+                       dprint(self.netname, " cannot walk to any goal\n");
+                       self.aistatus |= AI_STATUS_STUCK;
                }
-               if(RandomSelection_chosen_ent)
-                       navigation_routetogoal(RandomSelection_chosen_ent, self.origin);
 
                self.navigation_hasgoals = FALSE; // Reset this value
        }
@@ -970,7 +961,97 @@ void botframe_updatedangerousobjects(float maxupdate)
        }
 };
 
-#ifdef DEBUG_TRACEWALK
+void navigation_unstuck()
+{
+       float search_radius = 1000;
+
+       if not(autocvar_bot_wander_enable)
+               return;
+
+       if not(bot_waypoint_queue_owner)
+       {
+       //      dprint(self.netname, " sutck, taking over the waypoints queue\n");
+               bot_waypoint_queue_owner = self;
+               bot_waypoint_queue_bestgoal = world;
+               bot_waypoint_queue_bestgoalrating = 0;
+       }
+
+       if(bot_waypoint_queue_owner!=self)
+               return;
+
+       if (bot_waypoint_queue_goal)
+       {
+               // evaluate the next goal on the queue
+               float d = vlen(self.origin - bot_waypoint_queue_goal.origin);
+               // dprint(self.netname, " evaluating ", bot_waypoint_queue_goal.classname, " with distance ", ftos(d), "\n");
+               if(tracewalk(bot_waypoint_queue_goal, self.origin, PL_MIN, PL_MAX, bot_waypoint_queue_goal.origin, bot_navigation_movemode))
+               {
+                       if( d > bot_waypoint_queue_bestgoalrating)
+                       {
+                               bot_waypoint_queue_bestgoalrating = d;
+                               bot_waypoint_queue_bestgoal = bot_waypoint_queue_goal;
+                       }
+               }
+               bot_waypoint_queue_goal = bot_waypoint_queue_goal.bot_waypoint_queue_nextgoal;
+
+               if not(bot_waypoint_queue_goal)
+               {
+                       if (bot_waypoint_queue_bestgoal)
+                       {
+                               dprint(self.netname, " stuck, reachable waypoint found, heading to it\n");
+                               navigation_routetogoal(bot_waypoint_queue_bestgoal, self.origin);
+                               self.bot_strategytime = time + autocvar_bot_ai_strategyinterval;
+                               self.aistatus &~= AI_STATUS_STUCK;
+                       }
+                       else
+                       {
+                               dprint(self.netname, " stuck, cannot walk to any waypoint at all\n");
+                       }
+
+                       bot_waypoint_queue_owner = world;
+               }
+       }
+       else
+       {
+               if(bot_strategytoken!=self)
+                       return;
+
+               // build a new queue
+               dprint(self.netname, " stuck, scanning reachable waypoints within ", ftos(search_radius)," qu\n");
+
+               entity head, first;
+
+               first = world;
+               head = findradius(self.origin, search_radius);
+
+               while(head)
+               {
+                       if(head.classname=="waypoint")
+                       if(!(head.wpflags & WAYPOINTFLAG_GENERATED))
+                       {
+                               if(bot_waypoint_queue_goal)
+                                       bot_waypoint_queue_goal.bot_waypoint_queue_nextgoal = head;
+                               else
+                                       first = head;
+
+                               bot_waypoint_queue_goal = head;
+                               bot_waypoint_queue_goal.bot_waypoint_queue_nextgoal = world;
+                       }
+
+                       head = head.chain;
+               }
+
+               if (first)
+                       bot_waypoint_queue_goal = first;
+               else
+               {
+                       dprint(self.netname, " stuck, cannot walk to any waypoint at all\n");
+                       bot_waypoint_queue_owner = world;
+               }
+       }
+}
+
+// Support for debugging tracewalk visually
 
 void debugresetnodes()
 {
@@ -994,29 +1075,27 @@ void debugnode(vector node)
 
 void debugnodestatus(vector position, float status)
 {
-       vector color;
+       vector c;
 
        switch (status)
        {
                case DEBUG_NODE_SUCCESS:
-                       color = '0 15 0';
+                       c = '0 15 0';
                        break;
                case DEBUG_NODE_WARNING:
-                       color = '15 15 0';
+                       c = '15 15 0';
                        break;
                case DEBUG_NODE_FAIL:
-                       color = '15 0 0';
+                       c = '15 0 0';
                        break;
                default:
-                       color = '15 15 15';
+                       c = '15 15 15';
        }
 
-       te_customflash(position, 40,  2, color);
+       te_customflash(position, 40,  2, c);
 }
 
-#endif
-
-#ifdef DEBUG_BOT_GOALSTACK
+// Support for debugging the goal stack visually
 
 .float goalcounter;
 .vector lastposition;
@@ -1024,43 +1103,43 @@ void debugnodestatus(vector position, float status)
 // Debug the goal stack visually
 void debuggoalstack()
 {
-       local entity target;
+       local entity goal;
        local vector org;
 
-       if(self.goalcounter==0)target=self.goalcurrent;
-       else if(self.goalcounter==1)target=self.goalstack01;
-       else if(self.goalcounter==2)target=self.goalstack02;
-       else if(self.goalcounter==3)target=self.goalstack03;
-       else if(self.goalcounter==4)target=self.goalstack04;
-       else if(self.goalcounter==5)target=self.goalstack05;
-       else if(self.goalcounter==6)target=self.goalstack06;
-       else if(self.goalcounter==7)target=self.goalstack07;
-       else if(self.goalcounter==8)target=self.goalstack08;
-       else if(self.goalcounter==9)target=self.goalstack09;
-       else if(self.goalcounter==10)target=self.goalstack10;
-       else if(self.goalcounter==11)target=self.goalstack11;
-       else if(self.goalcounter==12)target=self.goalstack12;
-       else if(self.goalcounter==13)target=self.goalstack13;
-       else if(self.goalcounter==14)target=self.goalstack14;
-       else if(self.goalcounter==15)target=self.goalstack15;
-       else if(self.goalcounter==16)target=self.goalstack16;
-       else if(self.goalcounter==17)target=self.goalstack17;
-       else if(self.goalcounter==18)target=self.goalstack18;
-       else if(self.goalcounter==19)target=self.goalstack19;
-       else if(self.goalcounter==20)target=self.goalstack20;
-       else if(self.goalcounter==21)target=self.goalstack21;
-       else if(self.goalcounter==22)target=self.goalstack22;
-       else if(self.goalcounter==23)target=self.goalstack23;
-       else if(self.goalcounter==24)target=self.goalstack24;
-       else if(self.goalcounter==25)target=self.goalstack25;
-       else if(self.goalcounter==26)target=self.goalstack26;
-       else if(self.goalcounter==27)target=self.goalstack27;
-       else if(self.goalcounter==28)target=self.goalstack28;
-       else if(self.goalcounter==29)target=self.goalstack29;
-       else if(self.goalcounter==30)target=self.goalstack30;
-       else if(self.goalcounter==31)target=self.goalstack31;
-
-       if(target==world)
+       if(self.goalcounter==0)goal=self.goalcurrent;
+       else if(self.goalcounter==1)goal=self.goalstack01;
+       else if(self.goalcounter==2)goal=self.goalstack02;
+       else if(self.goalcounter==3)goal=self.goalstack03;
+       else if(self.goalcounter==4)goal=self.goalstack04;
+       else if(self.goalcounter==5)goal=self.goalstack05;
+       else if(self.goalcounter==6)goal=self.goalstack06;
+       else if(self.goalcounter==7)goal=self.goalstack07;
+       else if(self.goalcounter==8)goal=self.goalstack08;
+       else if(self.goalcounter==9)goal=self.goalstack09;
+       else if(self.goalcounter==10)goal=self.goalstack10;
+       else if(self.goalcounter==11)goal=self.goalstack11;
+       else if(self.goalcounter==12)goal=self.goalstack12;
+       else if(self.goalcounter==13)goal=self.goalstack13;
+       else if(self.goalcounter==14)goal=self.goalstack14;
+       else if(self.goalcounter==15)goal=self.goalstack15;
+       else if(self.goalcounter==16)goal=self.goalstack16;
+       else if(self.goalcounter==17)goal=self.goalstack17;
+       else if(self.goalcounter==18)goal=self.goalstack18;
+       else if(self.goalcounter==19)goal=self.goalstack19;
+       else if(self.goalcounter==20)goal=self.goalstack20;
+       else if(self.goalcounter==21)goal=self.goalstack21;
+       else if(self.goalcounter==22)goal=self.goalstack22;
+       else if(self.goalcounter==23)goal=self.goalstack23;
+       else if(self.goalcounter==24)goal=self.goalstack24;
+       else if(self.goalcounter==25)goal=self.goalstack25;
+       else if(self.goalcounter==26)goal=self.goalstack26;
+       else if(self.goalcounter==27)goal=self.goalstack27;
+       else if(self.goalcounter==28)goal=self.goalstack28;
+       else if(self.goalcounter==29)goal=self.goalstack29;
+       else if(self.goalcounter==30)goal=self.goalstack30;
+       else if(self.goalcounter==31)goal=self.goalstack31;
+
+       if(goal==world)
        {
                self.goalcounter = 0;
                self.lastposition='0 0 0';
@@ -1073,10 +1152,8 @@ void debuggoalstack()
                org = self.lastposition;
 
 
-       te_lightning2(world, org, target.origin);
-       self.lastposition = target.origin;
+       te_lightning2(world, org, goal.origin);
+       self.lastposition = goal.origin;
 
        self.goalcounter++;
 }
-
-#endif
index 666db4e5ee36988c81af2d998777a81ee2a33fac..0a9bf14010d17176eab4a7740b9b997f2facd622 100644 (file)
@@ -30,26 +30,26 @@ entity navigation_bestgoal;
 .entity navigation_jetpack_goal;
 .vector navigation_jetpack_point;
 
-#ifdef DEBUG_TRACEWALK
 float DEBUG_NODE_SUCCESS        = 1;
 float DEBUG_NODE_WARNING        = 2;
 float DEBUG_NODE_FAIL           = 3;
 vector debuglastnode;
-#endif
+
+entity bot_waypoint_queue_owner;       // Owner of the temporary list of goals
+entity bot_waypoint_queue_goal;                // Head of the temporary list of goals
+.entity bot_waypoint_queue_nextgoal;
+entity bot_waypoint_queue_bestgoal;
+float bot_waypoint_queue_bestgoalrating;
 
 /*
  * Functions
  */
 
-#ifdef DEBUG_TRACEWALK
 void debugresetnodes();
 void debugnode(vector node);
 void debugnodestatus(vector position, float status);
-#endif
 
-#ifdef DEBUG_BOT_GOALSTACK
 void debuggoalstack();
-#endif
 
 float tracewalk(entity e, vector start, vector m1, vector m2, vector end, float movemode);
 
@@ -66,6 +66,7 @@ void navigation_routerating(entity e, float f, float rangebias);
 void navigation_poptouchedgoals();
 void navigation_goalrating_start();
 void navigation_goalrating_end();
+void navigation_unstuck();
 
 void botframe_updatedangerousobjects(float maxupdate);
 
index a1047ea9d07595dae83fcb3fd49953b5b24062c7..a655b0199f6af4e21cc46f741bf761f69f0bbac9 100644 (file)
@@ -328,13 +328,28 @@ entity SelectSpawnPoint (float anypoint)
        if(anypoint)
                teamcheck = -1;
        else if(have_team_spawns > 0)
-               teamcheck = self.team; // MUST be team
-       else if(have_team_spawns == 0 && have_noteam_spawns)
+       {
+               if(have_team_spawns_forteam[self.team] == 0)
+               {
+                       // we request a spawn for a team, and we have team
+                       // spawns, but that team has no spawns?
+                       if(have_team_spawns[0])
+                               // try noteam spawns
+                               teamcheck = 0;
+                       else
+                               // if not, any spawn has to do
+                               teamcheck = -1;
+               }
+               else
+                       teamcheck = self.team; // MUST be team
+       }
+       else if(have_team_spawns == 0 && have_team_spawns[0])
                teamcheck = 0; // MUST be noteam
        else
                teamcheck = -1;
                // if we get here, we either require team spawns but have none, or we require non-team spawns and have none; use any spawn then
 
+
        // get the list of players
        playerlist = findchain(classname, "player");
        // get the entire list of spots
@@ -1064,6 +1079,7 @@ void PutClientInServer (void)
                        if(e.spawnflags & WEP_FLAG_RELOADABLE) // prevent accessing undefined cvars
                                self.weapon_load[j] = cvar(strcat("g_balance_", e.netname, "_reload_ammo"));
                }
+               self.weapon_forbidchange = FALSE;
 
                oldself = self;
                self = spot;
@@ -1121,6 +1137,7 @@ float ClientInit_SendEntity(entity to, float sf)
        WriteByte(MSG_ENTITY, autocvar_g_balance_sniperrifle_secondary); // client has to know if it should zoom or not
        WriteByte(MSG_ENTITY, serverflags); // client has to know if it should zoom or not
        WriteByte(MSG_ENTITY, autocvar_g_balance_minelayer_limit); // minelayer max mines
+       WriteByte(MSG_ENTITY, autocvar_g_balance_hagar_secondary_load_max); // hagar max loadable rockets
        WriteCoord(MSG_ENTITY, autocvar_g_trueaim_minrange);
        return TRUE;
 }
@@ -1508,6 +1525,7 @@ Called when a client connects to the server
 string ColoredTeamName(float t);
 void DecodeLevelParms (void);
 //void dom_player_join_team(entity pl);
+void set_dom_state(entity e);
 void ClientConnect (void)
 {
        float t;
@@ -1524,7 +1542,7 @@ void ClientConnect (void)
        DecodeLevelParms();
 
 #ifdef WATERMARK
-       sprint(self, strcat("^4SVQC Build information: ", WATERMARK(), "\n"));
+       sprint(self, strcat("^4SVQC Build information: ^1", WATERMARK(), "\n"));
 #endif
 
        self.classname = "player_joining";
@@ -1749,9 +1767,19 @@ void ClientConnect (void)
        else if(autocvar_sv_teamnagger && !(autocvar_bot_vs_human && (c3==-1 && c4==-1)) && !g_ca) // teamnagger is currently bad for ca
                send_CSQC_teamnagger();
 
+       if (g_domination)
+               set_dom_state(self);
+
        CheatInitClient();
 
        PlayerStats_AddPlayer(self);
+
+    self.shownames = spawn();
+    self.shownames.owner = self;
+    self.shownames.think = shownames_think;
+    self.shownames.nextthink = time;
+       self.shownames.customizeentityforclient = shownames_customize;
+    Net_LinkEntity(self.shownames, FALSE, 0, SendEntity_ShowNames);
 }
 
 /*
@@ -1851,6 +1879,8 @@ void ClientDisconnect (void)
        self.playerid = 0;
        ReadyCount();
 
+    remove(self.shownames);
+
        // free cvars
        GetCvars(-1);
 }
@@ -2369,6 +2399,7 @@ void SpectateCopy(entity spectatee) {
        self.weapon = spectatee.weapon;
        self.nex_charge = spectatee.nex_charge;
        self.nex_chargepool_ammo = spectatee.nex_chargepool_ammo;
+       self.hagar_load = spectatee.hagar_load;
        self.minelayer_mines = spectatee.minelayer_mines;
        self.punchangle = spectatee.punchangle;
        self.view_ofs = spectatee.view_ofs;
@@ -2614,6 +2645,8 @@ void() nexball_setstatus;
 .float items_added;
 void PlayerPreThink (void)
 {
+       WarpZone_PlayerPhysics_FixVAngle();
+
        self.stat_game_starttime = game_starttime;
        self.stat_allow_oldnexbeam = autocvar_g_allow_oldnexbeam;
        self.stat_leadlimit = autocvar_leadlimit;
@@ -2698,16 +2731,6 @@ void PlayerPreThink (void)
                        return;                                 // the think tics
                }
 
-               if(self.teleport_time)
-               if(time > self.teleport_time)
-               {
-                       self.teleport_time = 0;
-                       self.effects = self.effects - (self.effects & EF_NODRAW);
-               }
-
-               if(frametime > 0) // don't do this in cl_movement frames, just in server ticks
-                       UpdateSelectedPlayer();
-
                //don't allow the player to turn around while game is paused!
                if(timeoutStatus == 2) {
                        self.v_angle = self.lastV_angle;
@@ -2733,7 +2756,26 @@ void PlayerPreThink (void)
                                        self.glowmod_z = -1;
                        }
                        else
+                       {
+                               // set weapon and player glowmod
                                self.glowmod = colormapPaletteColor(self.clientcolors & 0x0F, TRUE) * 2;
+
+                               if(self.weapon == WEP_NEX && autocvar_g_balance_nex_charge)
+                               {
+                                       self.weaponentity_glowmod_x = autocvar_g_weapon_charge_colormod_hdrmultiplier * autocvar_g_weapon_charge_colormod_red_half * min(1, self.nex_charge / autocvar_g_balance_nex_charge_animlimit);
+                                       self.weaponentity_glowmod_y = autocvar_g_weapon_charge_colormod_hdrmultiplier * autocvar_g_weapon_charge_colormod_green_half * min(1, self.nex_charge / autocvar_g_balance_nex_charge_animlimit);
+                                       self.weaponentity_glowmod_z = autocvar_g_weapon_charge_colormod_hdrmultiplier * autocvar_g_weapon_charge_colormod_blue_half * min(1, self.nex_charge / autocvar_g_balance_nex_charge_animlimit);
+
+                                       if(self.nex_charge > autocvar_g_balance_nex_charge_animlimit)
+                                       {
+                                               self.weaponentity_glowmod_x = self.weaponentity_glowmod_x + autocvar_g_weapon_charge_colormod_hdrmultiplier * autocvar_g_weapon_charge_colormod_red_full * (self.nex_charge - autocvar_g_balance_nex_charge_animlimit) / (1 - autocvar_g_balance_nex_charge_animlimit);
+                                               self.weaponentity_glowmod_y = self.weaponentity_glowmod_y + autocvar_g_weapon_charge_colormod_hdrmultiplier * autocvar_g_weapon_charge_colormod_green_full * (self.nex_charge - autocvar_g_balance_nex_charge_animlimit) / (1 - autocvar_g_balance_nex_charge_animlimit);
+                                               self.weaponentity_glowmod_z = self.weaponentity_glowmod_z + autocvar_g_weapon_charge_colormod_hdrmultiplier * autocvar_g_weapon_charge_colormod_blue_full * (self.nex_charge - autocvar_g_balance_nex_charge_animlimit) / (1 - autocvar_g_balance_nex_charge_animlimit);
+                                       }
+                               }
+                               else
+                                       self.weaponentity_glowmod = self.glowmod;
+                       }
                        player_powerups();
                }
 
@@ -2918,7 +2960,7 @@ void PlayerPreThink (void)
        }
 
        if(!zoomstate_set)
-               SetZoomState(self.BUTTON_ZOOM || (self.BUTTON_ATCK2 && self.weapon == WEP_NEX) || (self.BUTTON_ATCK2 && self.weapon == WEP_SNIPERRIFLE && autocvar_g_balance_sniperrifle_secondary == 0));
+               SetZoomState(self.BUTTON_ZOOM || self.BUTTON_ZOOMSCRIPT || (self.BUTTON_ATCK2 && self.weapon == WEP_NEX) || (self.BUTTON_ATCK2 && self.weapon == WEP_SNIPERRIFLE && autocvar_g_balance_sniperrifle_secondary == 0));
 
        float oldspectatee_status;
        oldspectatee_status = self.spectatee_status;
index a2773fedfd5a00ad6b7dfe4cf605aeecd88fd444..08368676d0055791a10e7d6a9c7135a5ff568ceb 100644 (file)
@@ -61,7 +61,7 @@ void PlayerJump (void)
        if(!doublejump && self.multijump_ready && self.multijump_count < autocvar_g_multijump && self.velocity_z > autocvar_g_multijump_speed)
        {
                // doublejump = FALSE; // checked above in the if
-               if (autocvar_g_multijump > 0)
+               if (autocvar_g_multijump)
                {
                        if (autocvar_g_multijump_add == 0) // in this case we make the z velocity == jumpvelocity
                        {
@@ -93,7 +93,8 @@ void PlayerJump (void)
                                        self.velocity_y = wishdir_y * curspeed;
                                        // keep velocity_z unchanged!
                                }
-                               self.multijump_count += 1;
+                               if (autocvar_g_multijump > 0)
+                                       self.multijump_count += 1;
                        }
                }
                self.multijump_ready = FALSE; // require releasing and pressing the jump button again for the next jump
@@ -666,6 +667,8 @@ void SV_PlayerPhysics()
        float buttons_prev;
        float not_allowed_to_move;
        string c;
+
+       WarpZone_PlayerPhysics_FixVAngle();
        
        maxspd_mod = 1;
        if(g_minstagib && (self.items & IT_INVINCIBLE))
index 3426c4ce56d6782db7a94a2274d23033376eea2b..3e507f4ab644b2bb25f1d2eced3a7a3363e4b178 100644 (file)
@@ -188,6 +188,7 @@ void player_setupanimsformodel()
        self.anim_forwardleft = '20 1 1';
        self.anim_backright = '21 1 1';
        self.anim_backleft  = '22 1 1';
+       self.anim_melee = '23 1 1';
        animparseerror = FALSE;
        animfilename = strcat(self.model, ".animinfo");
        animfile = fopen(animfilename, FILE_READ);
@@ -214,6 +215,7 @@ void player_setupanimsformodel()
                self.anim_forwardleft  = animparseline(animfile);
                self.anim_backright    = animparseline(animfile);
                self.anim_backleft     = animparseline(animfile);
+               self.anim_melee        = animparseline(animfile);
                fclose(animfile);
 
                // derived anims
@@ -604,8 +606,6 @@ void PlayerDamage (entity inflictor, entity attacker, float damage, float deatht
                {
                        // become fully visible
                        self.alpha = 1;
-                       // clear selected player display
-                       ClearSelectedPlayer();
                        // throw a weapon
                        SpawnThrownWeapon (self.origin + (self.mins + self.maxs) * 0.5, self.switchweapon);
                }
@@ -627,6 +627,7 @@ void PlayerDamage (entity inflictor, entity attacker, float damage, float deatht
                frag_inflictor = inflictor;
                frag_target = self;
                MUTATOR_CALLHOOK(PlayerDies);
+               weapon_action(self.weapon, WR_PLAYERDEATH);
 
                if(self.flagcarried)
                {
@@ -734,152 +735,70 @@ void PlayerDamage (entity inflictor, entity attacker, float damage, float deatht
        }
 }
 
-float UpdateSelectedPlayer_countvalue(float v)
+// sendflags use: 1 = origin, 2 = health (0 or 1 for dead/alive on enemies), 4 = armor, 0x80 = same team (includes health)
+float SendEntity_ShowNames(entity to, float sendflags)
 {
-       return max(0, (v - 1.0) / 0.5);
+    float the_health;
+    the_health = self.health;
+
+    WriteByte(MSG_ENTITY, ENT_CLIENT_SHOWNAMES);
+    WriteByte(MSG_ENTITY, num_for_edict(self.owner));
+
+    sendflags = sendflags & 127;
+    if(teams_matter && self.owner.team == to.team)
+        sendflags |= 128;
+    else if(self.owner.health >= 1)
+        the_health = 1;
+
+    WriteByte(MSG_ENTITY, sendflags);
+    if(sendflags & 1)
+    {
+        WriteShort(MSG_ENTITY, rint(self.origin_x));
+        WriteShort(MSG_ENTITY, rint(self.origin_y));
+        WriteShort(MSG_ENTITY, rint(self.origin_z));
+    }
+    if(sendflags & 2)
+    {
+        WriteByte(MSG_ENTITY, the_health);
+    }
+    if(sendflags & 4)
+    {
+        WriteByte(MSG_ENTITY, self.armorvalue);
+    }
+    return TRUE;
 }
 
-// returns: -2 if no hit, otherwise cos of the angle
-// uses the global v_angle
-float UpdateSelectedPlayer_canSee(entity p, float mincosangle, float maxdist)
+const vector SHOWNAMES_ORIGIN_OFFSET = '0 0 48';
+void shownames_think()
 {
-       vector so, d;
-       float c;
-
-       if(p == self)
-               return -2;
-
-       if(p.deadflag)
-               return -2;
-
-       so = self.origin + self.view_ofs;
-       d = p.origin - so;
-
-       // misaimed?
-       if(dist_point_line(d, '0 0 0', v_forward) > maxdist)
-               return -2;
-
-       // now find the cos of the angle...
-       c = normalize(d) * v_forward;
-
-       if(c <= mincosangle)
-               return -2;
-
-       // not visible in any way? forget it
-       if(!checkpvs(so, p))
-               return -2;
-
-       traceline(so, p.origin, MOVE_NOMONSTERS, self);
-       if(trace_fraction < 1)
-               return -2;
-
-       return c;
-}
-
-void ClearSelectedPlayer()
-{
-       if(self.selected_player)
-       {
-               centerprint_expire(self, CENTERPRIO_POINT);
-               self.selected_player = world;
-               self.selected_player_display_needs_update = FALSE;
-       }
+    if(self.origin - SHOWNAMES_ORIGIN_OFFSET != self.owner.origin)
+    {
+        setorigin(self, self.owner.origin + SHOWNAMES_ORIGIN_OFFSET);
+        self.SendFlags |= 1;
+    }
+    if(self.health != max(0, floor(self.owner.health)) || self.armorvalue != max(0, floor(self.owner.armorvalue)))
+    {
+        self.health = max(0, floor(self.owner.health));
+        self.armorvalue = max(0, floor(self.owner.armorvalue));
+        self.SendFlags |= 2;
+    }
+    if(self.armorvalue != max(0, floor(self.owner.armorvalue)))
+    {
+        self.armorvalue = max(0, floor(self.owner.armorvalue));
+        self.SendFlags |= 4;
+    }
+    self.nextthink = time;
 }
 
-void UpdateSelectedPlayer()
+float shownames_customize()
 {
-       entity selected;
-       float selected_score;
-       selected = world;
-       selected_score = 0.95; // 18 degrees
-
-       if(!autocvar_sv_allow_shownames)
-               return;
-
-       if(clienttype(self) != CLIENTTYPE_REAL)
-               return;
-
-       if(self.cvar_cl_shownames == 0)
-               return;
-
-       if(self.cvar_cl_shownames == 1 && !teams_matter)
-               return;
-
-       makevectors(self.v_angle); // sets v_forward
-
-       // 1. cursor trace is always right
-       WarpZone_crosshair_trace(self);
-       if(trace_ent && trace_ent.classname == "player" && !trace_ent.deadflag)
-       {
-               selected = trace_ent;
-       }
-       else
-       {
-               // 2. if we don't have a cursor trace, find the player which is least
-               //    mis-aimed at
-               entity p;
-               FOR_EACH_PLAYER(p)
-               {
-                       float c;
-                       c = UpdateSelectedPlayer_canSee(p, selected_score, 100); // 100 = 2.5 meters
-                       if(c >= -1)
-                       {
-                               selected = p;
-                               selected_score = c;
-                       }
-               }
-       }
-
-       if(selected)
-       {
-               self.selected_player_display_timeout = time + self.cvar_scr_centertime;
-       }
-       else
-       {
-               if(time < self.selected_player_display_timeout)
-                       if(UpdateSelectedPlayer_canSee(self.selected_player, 0.7, 200) >= -1) // 5 meters, 45 degrees
-                               selected = self.selected_player;
-       }
-
-       if(selected)
-       {
-               if(selected == self.selected_player)
-               {
-                       float save;
-                       save = UpdateSelectedPlayer_countvalue(self.selected_player_count);
-                       self.selected_player_count = self.selected_player_count + frametime;
-                       if(save != UpdateSelectedPlayer_countvalue(self.selected_player_count))
-                       {
-                               string namestr, healthstr;
-                               namestr = playername(selected);
-                               if(teams_matter)
-                               {
-                                       healthstr = ftos(floor(selected.health));
-                                       if(self.team == selected.team)
-                                       {
-                                               namestr = strcat(namestr, " (", healthstr, "%)");
-                                               self.selected_player_display_needs_update = TRUE;
-                                       }
-                               }
-                               centerprint_atprio(self, CENTERPRIO_POINT, namestr);
-                       }
-               }
-               else
-               {
-                       ClearSelectedPlayer();
-                       self.selected_player = selected;
-                       self.selected_player_time = time;
-                       self.selected_player_count = 0;
-                       self.selected_player_display_needs_update = FALSE;
-               }
-       }
-       else
-       {
-               ClearSelectedPlayer();
-       }
+    if(self.owner.classname == "player") // only send players, no spectators!
+    if(self.owner != other) // no need to spam own coordinates
+    if(vlen(other.origin - self.origin) < autocvar_sv_shownames_cull_distance) // distance cull
+    if(self.owner.team == other.team || (self.owner.team != other.team && checkpvs(self.origin, other)))
+        return TRUE;
 
-       if(self.selected_player)
-               self.last_selected_player = self.selected_player;
+    return FALSE;
 }
 
 .float muted; // to be used by prvm_edictset server playernumber muted 1
index e605a0637cbd98b18c5420d7a744388ae829e228..cab6ec6e75c5adcb56a8d7b07b417875a2a251c6 100644 (file)
@@ -197,6 +197,7 @@ string W_ThrowNewWeapon(entity own, float wpn, float doreduce, vector org, vecto
                self = oldself;
                if(startitem_failed)
                        return string_null;
+               wep.glowmod = own.weaponentity_glowmod;
                wep.think = thrown_wep_think;
                wep.nextthink = time + 0.5;
                return "";
@@ -232,6 +233,7 @@ string W_ThrowNewWeapon(entity own, float wpn, float doreduce, vector org, vecto
                        }
                        s = substring(s, 5, -1);
                }
+               wep.glowmod = own.weaponentity_glowmod;
                wep.think = thrown_wep_think;
                wep.nextthink = time + 0.5;
                return s;
@@ -282,6 +284,8 @@ void W_ThrowWeapon(vector velo, vector delta, float doreduce)
        w = self.weapon;
        if (w == 0)
                return; // just in case
+       if(self.weapon_forbidchange)
+               return;
        if(MUTATOR_CALLHOOK(ForbidThrowCurrentWeapon))
                return;
        if(!autocvar_g_weapon_throwable)
@@ -344,7 +348,7 @@ void W_WeaponFrame()
        {
                if (self.weaponentity.state == WS_CLEAR)
                {
-                       setanim(self, self.anim_draw, FALSE, TRUE, TRUE);
+                       //setanim(self, self.anim_draw, FALSE, TRUE, TRUE);
                        self.weaponentity.state = WS_RAISE;
                        weapon_action(self.switchweapon, WR_SETUP);
 
@@ -407,7 +411,6 @@ void W_WeaponFrame()
                        v_forward = fo;
                        v_right = ri;
                        v_up = up;
-                       self.weaponentity_glowmod = '0 0 0'; // reset glowmod, weapon think function only *might* set it
                        weapon_action(self.weapon, WR_THINK);
                }
                if (time + self.weapon_frametime * 0.5 >= self.weapon_nextthink)
index f9543785ba484588bb4e6d235cd1067d8537360d..4233e7d92d755b7651a60362f27080c192e888c7 100644 (file)
@@ -34,6 +34,10 @@ float W_WeaponRateFactor()
 
 void W_SwitchWeapon_Force(entity e, float w)
 {
+       // don't switch to another weapon if we're not allowed to
+       if(e.weapon_forbidchange)
+               return;
+
        e.cnt = e.switchweapon;
        e.switchweapon = w;
        e.selectweapon = w;
@@ -1253,15 +1257,21 @@ void weapon_thinkf(float fr, float t, void() func)
        self.weapon_think = func;
        //dprint("next ", ftos(self.weapon_nextthink), "\n");
 
+    // The shoot animation looks TERRIBLE without animation blending! Yay for moonwalking while shooting!
+    /*
        if (restartanim)
        if (t)
        if (!self.crouch) // shoot anim stands up, this looks bad
        {
                local vector anim;
-               anim = self.anim_shoot;
+               if(self.weapon == WEP_SHOTGUN && self.BUTTON_ATCK2)
+                       anim = self.anim_melee;
+               else
+                       anim = self.anim_shoot;
                anim_z = anim_y / (t + sys_frametime);
                setanim(self, anim, FALSE, TRUE, TRUE);
        }
+    */
 };
 
 void weapon_boblayer1(float spd, vector org)
@@ -1734,4 +1744,4 @@ void W_Reload(float sent_ammo_min, float sent_ammo_amount, float sent_time, stri
                self.clip_load = 0;
        self.old_clip_load = self.clip_load;
        self.clip_load = self.weapon_load[self.weapon] = -1;
-}
\ No newline at end of file
+}
index 226269d41b3605bc87f8e6a9ab417efa0b21621f..40e0fcd469723d9bcae56b594a7cb8b3c6ca863f 100644 (file)
@@ -120,6 +120,7 @@ float cmd_floodcheck()
        return FALSE;
 }
 
+.float checkfail;
 void SV_ParseClientCommand(string s) {
        string cmd;
        float tokens;
@@ -128,7 +129,7 @@ void SV_ParseClientCommand(string s) {
 
        tokens = tokenize_console(s);
 
-       cmd = argv(0);
+       cmd = strtolower(argv(0));
        if(cmd != "reportcvar")
        if(cmd != "sentcvar")
        if(cmd != "pause")
@@ -144,6 +145,9 @@ void SV_ParseClientCommand(string s) {
                return;
        } else if(GameCommand_MapVote(argv(0))) {
                return;
+       } else if(cmd == "checkfail") {
+               print(sprintf("CHECKFAIL: %s (%s) epically failed check %s\n", self.netname, self.netaddress, substring(s, argv_start_index(1), argv_end_index(-1) - argv_start_index(1))));
+               self.checkfail = 1;
        } else if(cmd == "autoswitch") {
                // be backwards compatible with older clients (enabled)
                self.autoswitch = ("0" != argv(1));
@@ -358,6 +362,7 @@ void SV_ParseClientCommand(string s) {
                sprint(self, cvar_purechanges);
        } else if(CheatCommand(tokens)) {
        } else {
+#if 0
                //if(ctf_clientcommand())
                //      return;
                // grep for Cmd_AddCommand_WithClientCommand to find them all
@@ -383,6 +388,7 @@ void SV_ParseClientCommand(string s) {
                        print("WARNING: Invalid clientcommand by ", self.netname, ": ", s, "\n");
                        return;
                }
+#endif
 
                if(self.jointime > 0 && time > self.jointime + 10 && time > self.nickspamtime) // allow any changes in the first 10 seconds since joining
                if(cmd == "name" || cmd == "playermodel") // TODO also playerskin and color?
index b31e1429381ca5637966f9dfd8a0bde4c308474c..cf16cecff77aedae5f569a8aff92b3f0901f8e51 100644 (file)
@@ -173,7 +173,7 @@ void place_flag()
 
        setattachment(self, world, "");
        self.mdl = self.model;
-       self.flags = FL_ITEM;
+       self.flags = FL_ITEM | FL_NOTARGET;
        self.solid = SOLID_TRIGGER;
        self.movetype = MOVETYPE_NONE;
        self.velocity = '0 0 0';
@@ -234,7 +234,7 @@ void RegenFlag(entity e)
        e.angles = e.mangle;
        e.cnt = FLAG_BASE;
        e.owner = world;
-       e.flags = FL_ITEM; // clear FL_ONGROUND and any other junk
+       e.flags = FL_ITEM | FL_NOTARGET; // clear FL_ONGROUND and any other junk
 };
 
 void ReturnFlag(entity e)
@@ -319,7 +319,7 @@ void DropFlag(entity e, entity penalty_receiver, entity attacker)
                p.flagcarried = world;
        e.owner = world;
 
-       e.flags = FL_ITEM; // clear FL_ONGROUND and any other junk
+       e.flags = FL_ITEM | FL_NOTARGET; // clear FL_ONGROUND and any other junk
        e.solid = SOLID_TRIGGER;
        e.movetype = MOVETYPE_TOSS;
        // setsize(e, '-16 -16 0', '16 16 74');
@@ -549,7 +549,7 @@ void FlagTouch()
 
        if (self.cnt == FLAG_DROPPED)
        {
-               self.flags = FL_ITEM; // clear FL_ONGROUND and any other junk
+               self.flags = FL_ITEM | FL_NOTARGET; // clear FL_ONGROUND and any other junk
                if (other.team == self.team || (other.team != COLOR_TEAM1 && other.team != COLOR_TEAM2))
                {
                        // return flag
index d7179fafebb703f9c8b2d38ebd426d25cb2a3014..19f0c24a5981c6d2c4001623c99188b17fc5abf7 100644 (file)
@@ -2,16 +2,17 @@
 
 float require_spawnfunc_prefix; // if this float exists, only functions with spawnfunc_ name prefix qualify as spawn functions
 
-#define BUTTON_ATCK   button0
-#define BUTTON_JUMP   button2
-#define BUTTON_ATCK2  button3
-#define BUTTON_ZOOM   button4
-#define BUTTON_CROUCH button5
-#define BUTTON_HOOK   button6
-#define BUTTON_INFO   button7
-#define BUTTON_CHAT   buttonchat
-#define BUTTON_USE    buttonuse
-#define BUTTON_DRAG   button8
+#define BUTTON_ATCK       button0
+#define BUTTON_JUMP       button2
+#define BUTTON_ATCK2      button3
+#define BUTTON_ZOOM       button4
+#define BUTTON_CROUCH     button5
+#define BUTTON_HOOK       button6
+#define BUTTON_INFO       button7
+#define BUTTON_CHAT       buttonchat
+#define BUTTON_USE        buttonuse
+#define BUTTON_DRAG       button8
+#define BUTTON_ZOOMSCRIPT button9
 
 // Globals
 
@@ -147,6 +148,7 @@ float maxclients;
 .vector anim_forwardleft; // player running forward and left
 .vector anim_backright; // player running backward and right
 .vector anim_backleft; // player running back and left
+.vector anim_melee; // player doing the melee action
 
 // weapon animation vectors:
 .vector anim_fire1;
@@ -208,6 +210,7 @@ void w_clear();
 void w_ready();
 // VorteX: standalone think for weapons, so normal think on weaponentity can be reserved by weaponflashes (which needs update even player dies)
 .float weapon_nextthink;
+.float weapon_forbidchange;
 .void() weapon_think;
 
 //float        PLAYER_WEAPONSELECTION_DELAY = );
@@ -310,7 +313,6 @@ float default_weapon_alpha;
 .float cvar_cl_handicap;
 .float cvar_cl_playerdetailreduction;
 .float cvar_scr_centertime;
-.float cvar_cl_shownames;
 .string cvar_g_xonoticversion;
 .string cvar_cl_weaponpriority;
 .string cvar_cl_weaponpriorities[10];
@@ -362,15 +364,6 @@ float W_AmmoItemCode(float wpn);
 float W_WeaponBit(float wpn);
 string W_Name(float weaponid);
 
-void UpdateSelectedPlayer();
-void ClearSelectedPlayer();
-.entity selected_player;
-.entity last_selected_player;
-.float selected_player_time; // when this player has been selected
-.float selected_player_count; // how long this player has been directly pointed to
-.float selected_player_display_needs_update; // are regular updates necessary? (health)
-.float selected_player_display_timeout; // when the selection will time out
-
 void FixIntermissionClient(entity e);
 void FixClientCvars(entity e);
 
@@ -410,7 +403,7 @@ float TemporaryDB;
 
 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_noteam_spawns; // 0 = no no-team spawns, 1 = no-team spawns exist
+float have_team_spawns_forteam[17]; // 0 = this team has no spawns, 1 = this team has spawns; team 0 is the "no-team"
 
 // set when showing a kill countdown
 .entity killindicator;
@@ -658,6 +651,8 @@ string deathmessage;
 .float nex_charge_rottime;
 .float nex_chargepool_ammo;
 
+.float hagar_load;
+
 float allowed_to_spawn; // boolean variable used by the clan arena code to determine if a player can spawn (after the round has ended)
 
 float serverflags;
@@ -669,3 +664,6 @@ float serverflags;
 
 .entity muzzle_flash;
 .float misc_bulletcounter;     // replaces uzi & hlac bullet counter.
+
+.entity shownames;
+void shownames_think();
index 891863f97a3a32daa771675391405563ad4675ca..281a0b4a4548df2f5583c43266be37cd6c619e36 100644 (file)
@@ -21,6 +21,29 @@ Note: The only teams who can use dom control points are identified by spawnfunc_
 .entity sprite;
 .float captime;
 
+// pps: points per second
+.float dom_total_pps;
+.float dom_pps_red;
+.float dom_pps_blue;
+.float dom_pps_yellow;
+.float dom_pps_pink;
+float total_pps;
+float pps_red;
+float pps_blue;
+float pps_yellow;
+float pps_pink;
+void set_dom_state(entity e)
+{
+       // BIG ugly hack to make stat sending work
+       e.dom_total_pps = total_pps;
+       e.dom_pps_red = pps_red;
+       e.dom_pps_blue = pps_blue;
+       if(c3 >= 0)
+               e.dom_pps_yellow = pps_yellow;
+       if(c4 >= 0)
+               e.dom_pps_pink = pps_pink;
+}
+
 void() dom_controlpoint_setup;
 
 void LogDom(string mode, float team_before, entity actor)
@@ -107,25 +130,57 @@ void dompoint_captured ()
        self.delay = old_delay;
        self.team = old_team;
 
+       switch(self.team)
+       {
+               // "fix" pps when slightly under 0 because of approximation errors
+               case COLOR_TEAM1:
+                       pps_red -= (points/wait_time);
+                       if (pps_red < 0) pps_red = 0;
+                       break;
+               case COLOR_TEAM2:
+                       pps_blue -= (points/wait_time);
+                       if (pps_blue < 0) pps_blue = 0;
+                       break;
+               case COLOR_TEAM3:
+                       pps_yellow -= (points/wait_time);
+                       if (pps_yellow < 0) pps_yellow = 0;
+                       break;
+               case COLOR_TEAM4:
+                       pps_pink -= (points/wait_time);
+                       if (pps_pink < 0) pps_pink = 0;
+       }
+
        switch(self.goalentity.team)
        {
+               // "fix" pps when slightly over total_pps because of approximation errors
                case COLOR_TEAM1:
+                       pps_red += (points/wait_time);
+                       if (pps_red > total_pps) pps_red = total_pps;
                        WaypointSprite_UpdateSprites(self.sprite, "dom-red", "", "");
                        break;
                case COLOR_TEAM2:
+                       pps_blue += (points/wait_time);
+                       if (pps_blue > total_pps) pps_blue = total_pps;
                        WaypointSprite_UpdateSprites(self.sprite, "dom-blue", "", "");
                        break;
                case COLOR_TEAM3:
+                       pps_yellow += (points/wait_time);
+                       if (pps_yellow > total_pps) pps_yellow = total_pps;
                        WaypointSprite_UpdateSprites(self.sprite, "dom-yellow", "", "");
                        break;
                case COLOR_TEAM4:
+                       pps_pink += (points/wait_time);
+                       if (pps_pink > total_pps) pps_pink = total_pps;
                        WaypointSprite_UpdateSprites(self.sprite, "dom-pink", "", "");
-                       break;
        }
+
        WaypointSprite_UpdateTeamRadar(self.sprite, RADARICON_DOMPOINT, colormapPaletteColor(self.goalentity.team - 1, 0));
        WaypointSprite_Ping(self.sprite);
 
        self.captime = time;
+
+       FOR_EACH_PLAYER(head)
+               set_dom_state(head);
 };
 
 void AnimateDomPoint()
@@ -305,11 +360,23 @@ void dom_controlpoint_setup()
        if(!self.message)
                self.message = " has captured a control point";
 
-       if(!self.DOMPOINTFRAGS)
+       if(self.DOMPOINTFRAGS <= 0)
                self.DOMPOINTFRAGS = 1;
-       if(!self.wait)
+       if(self.wait <= 0)
                self.wait = 5;
 
+       float points, waittime;
+       if (autocvar_g_domination_point_rate)
+               points = autocvar_g_domination_point_rate;
+       else
+               points = self.frags;
+       if (autocvar_g_domination_point_amt)
+               waittime = autocvar_g_domination_point_amt;
+       else
+               waittime = self.wait;
+
+       total_pps += points/waittime;
+
        if(!self.t_width)
                self.t_width = 0.02; // frame animation rate
        if(!self.t_length)
@@ -614,22 +681,15 @@ void dom_delayedinit()
        // if no control points are found, spawn defaults
        if (find(world, classname, "dom_controlpoint") == world)
        {
-               // here follow default domination points for each map
-               /*
-               if (world.model == "maps/e1m1.bsp")
-               {
-                       dom_spawnpoint('0 0 0');
-               }
-               else
-               */
+               // TODO in a few months (maybe 2011/08): change this into error() and remove this very poor dom point selection
+               backtrace("This map contains no dom_controlpoint entities. A very poor dom point placement will be chosen. Please fix the map.");
+
+               // if no supported map was found, make every deathmatch spawn a point
+               head = find(world, classname, "info_player_deathmatch");
+               while (head)
                {
-                       // if no supported map was found, make every deathmatch spawn a point
-                       head = find(world, classname, "info_player_deathmatch");
-                       while (head)
-                       {
-                               dom_spawnpoint(head.origin);
-                               head = find(head, classname, "info_player_deathmatch");
-                       }
+                       dom_spawnpoint(head.origin);
+                       head = find(head, classname, "info_player_deathmatch");
                }
        }
 
@@ -648,5 +708,11 @@ void dom_init()
        precache_model("models/domination/dom_unclaimed.md3");
        precache_sound("domination/claim.wav");
        InitializeEntity(world, dom_delayedinit, INITPRIO_GAMETYPE);
+
+       addstat(STAT_DOM_TOTAL_PPS, AS_FLOAT, dom_total_pps);
+       addstat(STAT_DOM_PPS_RED, AS_FLOAT, dom_pps_red);
+       addstat(STAT_DOM_PPS_BLUE, AS_FLOAT, dom_pps_blue);
+       if(c3 >= 0) addstat(STAT_DOM_PPS_YELLOW, AS_FLOAT, dom_pps_yellow);
+       if(c4 >= 0) addstat(STAT_DOM_PPS_PINK, AS_FLOAT, dom_pps_pink);
 };
 
index afe67c9b5b83faf675daf74800fa904e9b9ba09f..c40c5c9b1606ce25b2330da686035bec0a31e1bf 100644 (file)
@@ -476,6 +476,14 @@ void(entity e, entity tagentity, string tagname) setattachment = #443; // attach
 .float button6;
 .float button7;
 .float button8;
+.float button9;
+.float button10;
+.float button11;
+.float button12;
+.float button13;
+.float button14;
+.float button15;
+.float button16;
 //description:
 //set to the state of the +button3, +button4, +button5, +button6, +button7, and +button8 buttons from the client, this does not involve protocol changes (the extra 6 button bits were simply not used).
 //the exact mapping of protocol button bits on the server is:
@@ -583,11 +591,11 @@ float(float a) tan = #475; // returns tangent value (which is simply sin(a)/cos(
 //NOTE: copying a string-typed autocvar to another variable/field, and then
 //changing the cvar or returning from progs is UNDEFINED. Writing to autocvar
 //globals is UNDEFINED.  Accessing autocvar globals after cvar_set()ing that
-//cvar is IMPLEMENTATION DEFINED (an implementation may either yield the
-//previous, or the current, value). Whether autocvar globals, after restoring
-//a savegame, have the cvar's current value, or the original value at time of
-//saving, is UNDEFINED. Restoring a savegame however must not restore the
-//cvar values themselves.
+//cvar in the same frame is IMPLEMENTATION DEFINED (an implementation may
+//either yield the previous, or the current, value). Whether autocvar globals,
+//after restoring a savegame, have the cvar's current value, or the original
+//value at time of saving, is UNDEFINED. Restoring a savegame however must not
+//restore the cvar values themselves.
 //In case the cvar does NOT exist, then it is automatically created with the
 //value of the autocvar initializer, if given. This is possible with e.g.
 //frikqcc and fteqcc the following way:
@@ -596,6 +604,8 @@ float(float a) tan = #475; // returns tangent value (which is simply sin(a)/cos(
 //equivalent to the NULL value of the given data type, that is, the empty
 //string, 0, or '0 0 0'. However, when automatic cvar creation took place, a
 //warning is printed to the game console.
+//NOTE: to prevent an ambiguity with float names for vector types, autocvar
+//names MUST NOT end with _x, _y or _z!
 
 //DP_QC_CHANGEPITCH
 //idea: id Software
@@ -606,7 +616,7 @@ float(float a) tan = #475; // returns tangent value (which is simply sin(a)/cos(
 //builtin definitions:
 void(entity ent) changepitch = #63;
 //description:
-//equivilant to changeyaw, ent is normally self. (this was a Q2 builtin)
+//equivalent to changeyaw, ent is normally self. (this was a Q2 builtin)
 
 //DP_QC_COPYENTITY
 //idea: LordHavoc
@@ -1572,6 +1582,50 @@ void(float effectnum, vector org, vector vel, float howmany) pointparticles = #3
 //description:
 //.movement vector contains the movement input from the player, allowing QC to do as it wishs with the input, and SV_PlayerPhysics will completely replace the player physics if present (works for all MOVETYPE's), see darkplaces mod source for example of this function (in playermovement.qc, adds HalfLife ladders support, as well as acceleration/deceleration while airborn (rather than the quake sudden-stop while airborn), and simplifies the physics a bit)
 
+//DP_PHYSICS_ODE
+//idea: LordHavoc
+//darkplaces implementation: LordHavoc
+//globals:
+//new movetypes:
+const float MOVETYPE_PHYSICS = 32; // need to be set before any physics_* builtins applied
+//new solid types:
+const float SOLID_PHYSICS_BOX = 32;
+const float SOLID_PHYSICS_SPHERE = 33;
+const float SOLID_PHYSICS_CAPSULE = 34;
+//SOLID_BSP;
+//joint types:
+const float JOINTTYPE_POINT = 1;
+const float JOINTTYPE_HINGE = 2;
+const float JOINTTYPE_SLIDER = 3;
+const float JOINTTYPE_UNIVERSAL = 4;
+const float JOINTTYPE_HINGE2 = 5;
+const float JOINTTYPE_FIXED = -1;
+// common joint properties:
+// .entity aiment, enemy; // connected objects
+// .vector movedir;
+//   for a spring:
+//     movedir_x = spring constant (force multiplier, must be > 0)
+//     movedir_y = spring dampening constant to prevent oscillation (must be > 0)
+//     movedir_z = spring stop position (+/-)
+//   for a motor:
+//     movedir_x = desired motor velocity
+//     movedir_y = -1 * max motor force to use
+//     movedir_z = stop position (+/-), set to 0 for no stop
+//   note that ODE does not support both in one anyway
+//field definitions:
+.float mass; // ODE mass, standart value is 1
+.float bouncefactor;
+.float bouncestop;
+.float jointtype;
+//builtin definitions:
+void(entity e, float physics_enabled) physics_enable = #540; // enable or disable physics on object
+void(entity e, vector force, vector force_pos) physics_addforce = #541; // apply a force from certain origin, length of force vector is power of force
+void(entity e, vector torque) physics_addtorque = #542; // add relative torque
+//description: provides Open Dynamics Engine support, requires extenal dll to be present or engine compiled with statical link option
+//be sure to checkextension for it to know if library i loaded and ready, also to enable physics set "physice_ode" cvar to 1
+//note: this extension is highly experimental and may be unstable
+//note: use SOLID_BSP on entities to get a trimesh collision models on them
+
 //DP_SV_PRINT
 //idea: id Software (QuakeWorld Server)
 //darkplaces implementation: Black, LordHavoc
@@ -1613,7 +1667,7 @@ void(entity ent, float colors) setcolor = #401;
 //engine called QC functions (optional):
 //void(float color) SV_ChangeTeam;
 //description:
-//setcolor sets the color on a client and updates internal color information accordingly (equivilant to stuffing a "color" command but immediate)
+//setcolor sets the color on a client and updates internal color information accordingly (equivalent to stuffing a "color" command but immediate)
 //SV_ChangeTeam is called by the engine whenever a "color" command is recieved, it may decide to do anything it pleases with the color passed by the client, including rejecting it (by doing nothing), or calling setcolor to apply it, preventing team changes is one use for this.
 //the color format is pants + shirt * 16 (0-255 potentially)
 
@@ -1648,7 +1702,7 @@ void(float to, string s, float sz) WritePicture = #501;
 void(float to, string s) WriteUnterminatedString = #456;
 //description:
 //like WriteString, but does not write a terminating 0 after the string. This means you can include things like a player's netname in the middle of a string sent over the network. Just be sure to end it up with either a call to WriteString (which includes the trailing 0) or WriteByte(0) to terminate it yourself.
-//A historical note: this extension was suggested by FrikaC years ago, more recently Shadowalker has been badmouthing LordHavoc and Spike for stealing 'his' extension writestring2 which does exactly the same thing but uses a different builtin number and name and extension string, this argument hinges on the idea that it was his idea in the first place, which is incorrect as FrikaC first suggested it and used a rough equivilant of it in his FrikBot mod years ago involving WriteByte calls on each character.
+//A historical note: this extension was suggested by FrikaC years ago, more recently Shadowalker has been badmouthing LordHavoc and Spike for stealing 'his' extension writestring2 which does exactly the same thing but uses a different builtin number and name and extension string, this argument hinges on the idea that it was his idea in the first place, which is incorrect as FrikaC first suggested it and used a rough equivalent of it in his FrikBot mod years ago involving WriteByte calls on each character.
 
 //DP_TE_BLOOD
 //idea: LordHavoc
@@ -1805,7 +1859,7 @@ void(vector org) te_explosionquad = #415;
 //protocol:
 //vector origin
 //description:
-//all of these just take a location, and are equivilant in function (but not appearance :) to the original TE_GUNSHOT, etc.
+//all of these just take a location, and are equivalent in function (but not appearance :) to the original TE_GUNSHOT, etc.
 
 //DP_TE_SMALLFLASH
 //idea: LordHavoc
@@ -2359,38 +2413,6 @@ void(float pause) setpause = #531;
 
 // EXPERIMENTAL (not finalized) EXTENSIONS:
 
-//DP_PHYSICS
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc, divVerent
-//constant definitions:
-float SOLID_PHYSICS_BOX = 32;
-float SOLID_PHYSICS_SPHERE = 33;
-float SOLID_PHYSICS_CAPSULE = 34;
-float MOVETYPE_PHYSICS = 32;
-float JOINTTYPE_POINT = 1; // point; uses origin (anchor)
-float JOINTTYPE_HINGE = 2; // hinge; uses origin (anchor) and angles (axis)
-float JOINTTYPE_SLIDER = 3; // slider; uses angles (axis)
-float JOINTTYPE_UNIVERSAL = 4; // universal; uses origin (anchor) and angles (forward is axis1, up is axis2)
-float JOINTTYPE_HINGE2 = 5; // hinge2; uses origin (anchor), angles (axis1), velocity (axis2)
-//field definitions:
-.float mass;
-.float jointtype; // see JOINTTYPE_ definitions above
-// common joint properties:
-// .entity aiment, enemy; // connected objects
-// .vector movedir;
-//   for a spring:
-//     movedir_x = spring constant (force multiplier, must be > 0)
-//     movedir_y = spring dampening constant to prevent oscillation (must be > 0)
-//     movedir_z = spring stop position (+/-)
-//   for a motor:
-//     movedir_x = desired motor velocity
-//     movedir_y = -1 * max motor force to use
-//     movedir_z = stop position (+/-), set to 0 for no stop
-//   note that ODE does not support both in one anyway
-//description:
-//various physics properties can be defined in an entity and are executed via
-//ODE
-
 //DP_CRYPTO
 //idea: divVerent
 //darkplaces implementation: divVerent
diff --git a/qcsrc/server/frags.txt b/qcsrc/server/frags.txt
deleted file mode 100644 (file)
index 1daf099..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-TODO: remove the .frags field, except for the following values:
-
-0 = regular player
--2 = ???, used by arena
--666 = spectator
-
-Anything else shall go through PlayerScore!
index 3af433aceb075b966993512f0f42f330906bc487..5a3b098b6a3adb787f5f15a8433c1160da9e72d4 100644 (file)
@@ -130,6 +130,7 @@ void func_breakable_behave_restore()
        self.takedamage = DAMAGE_AIM;
        self.event_damage = func_breakable_damage;
        self.state = 0;
+       self.nextthink = 0; // cancel auto respawn
        func_breakable_colormod();
 }
 
@@ -169,6 +170,12 @@ void func_breakable_destroy() {
        if(self.cnt)
                pointparticles(self.cnt, self.absmin * 0.5 + self.absmax * 0.5, '0 0 0', self.count);
 
+       if(self.respawntime)
+       {
+               self.think = func_breakable_restore;
+               self.nextthink = time + self.respawntime + crandom() * self.respawntimejitter;
+       }
+
        oldmsg = self.message;
        self.message = "";
        SUB_UseTargets();
@@ -260,3 +267,8 @@ void spawnfunc_func_breakable() {
        self.reset = func_breakable_reset;
        func_breakable_reset();
 }
+
+// for use in maps with a "model" key set
+void spawnfunc_misc_breakablemodel() {
+       spawnfunc_func_breakable();
+}
diff --git a/qcsrc/server/g_swamp.qc b/qcsrc/server/g_swamp.qc
deleted file mode 100644 (file)
index fe64e7c..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
-*              t_swamp.c
-*              Adds spawnfunc_trigger_swamp and suppoart routines for xonotic 1.2.1+
-*              Author tZork (Jakob MG) 
-*              jakob@games43.se
-*              2005 11 29
-*/
-
index c45ad96e298d3a379dbd5b7c6bf4ec0a2253435b..6ee4e117964d16ff1a3e01d624dd098caa2de62e 100644 (file)
@@ -833,6 +833,8 @@ void spawnfunc_worldspawn (void)
        addstat(STAT_NEX_CHARGE, AS_FLOAT, nex_charge);
        addstat(STAT_NEX_CHARGEPOOL, AS_FLOAT, nex_chargepool_ammo);
 
+       addstat(STAT_HAGAR_LOAD, AS_INT, hagar_load);
+
        if(g_ca || g_freezetag)
        {
                addstat(STAT_REDALIVE, AS_INT, redalive_stat);
@@ -917,8 +919,12 @@ void spawnfunc_worldspawn (void)
        // fill sv_curl_serverpackages from .serverpackage files
        if(autocvar_sv_curl_serverpackages_auto)
        {
-               fd = search_begin("*.serverpackage", TRUE, FALSE);
                s = "";
+               n = tokenize_console(cvar_string("sv_curl_serverpackages"));
+               for(i = 0; i < n; ++i)
+                       if(substring(argv(i), -14, -1) != ".serverpackage")
+                               s = strcat(s, " ", argv(i));
+               fd = search_begin("*.serverpackage", TRUE, FALSE);
                if(fd >= 0)
                {
                        j = search_getsize(fd);
@@ -940,19 +946,6 @@ void spawnfunc_light (void)
        remove(self);
 }
 
-float TryFile( string pFilename )
-{
-       local float lHandle;
-       dprint("TryFile(\"", pFilename, "\")\n");
-       lHandle = fopen( pFilename, FILE_READ );
-       if( lHandle != -1 ) {
-               fclose( lHandle );
-               return TRUE;
-       } else {
-               return FALSE;
-       }
-};
-
 string GetGametype()
 {
        return GametypeNameFromType(game);
@@ -996,14 +989,12 @@ float MapHasRightSize(string map)
        if(autocvar_g_maplist_check_waypoints)
        {
                dprint("checkwp "); dprint(map);
-               fh = fopen(strcat("maps/", map, ".waypoints"), FILE_READ);
-               if(fh < 0)
+               if(!fexists(strcat("maps/", map, ".waypoints")))
                {
                        dprint(": no waypoints\n");
                        return FALSE;
                }
                dprint(": has waypoints\n");
-               fclose(fh);
        }
 
        // open map size restriction file
index 84dd07d94a185f3c065296f49cc3e2af6b79a017..0602ed9d87b3f436234bb0e681333d6a4f17491b 100644 (file)
@@ -236,8 +236,7 @@ void relocate_spawnpoint()
     if (have_team_spawns != 0)
         if (self.team)
             have_team_spawns = 1;
-    if (!self.team)
-        have_noteam_spawns = 1;
+    have_team_spawns_forteam[self.team] = 1;
 
     if (autocvar_r_showbboxes)
     {
@@ -461,11 +460,6 @@ string formatmessage(string msg)
                        replacement = cursor_ent.netname;
                        if (!replacement || !cursor_ent)
                                replacement = "nothing";
-               } else if (escape == "p") {
-                       if (self.last_selected_player)
-                               replacement = self.last_selected_player.netname;
-                       else
-                               replacement = "(nobody)";
                } else if (escape == "s")
                        replacement = ftos(vlen(self.velocity - self.velocity_z * '0 0 1'));
                else if (escape == "S")
@@ -586,7 +580,6 @@ void GetCvars(float f)
        GetCvars_handleFloat(s, f, autoswitch, "cl_autoswitch");
        GetCvars_handleFloat(s, f, cvar_cl_playerdetailreduction, "cl_playerdetailreduction");
        GetCvars_handleFloat(s, f, cvar_scr_centertime, "scr_centertime");
-       GetCvars_handleFloat(s, f, cvar_cl_shownames, "cl_shownames");
        GetCvars_handleString(s, f, cvar_g_xonoticversion, "g_xonoticversion");
        GetCvars_handleFloat(s, f, cvar_cl_handicap, "cl_handicap");
        GetCvars_handleString_Fixup(s, f, cvar_cl_weaponpriority, "cl_weaponpriority", W_FixWeaponOrder_ForceComplete_AndBuildImpulseList);
@@ -627,16 +620,6 @@ void GetCvars(float f)
        }
 }
 
-float fexists(string f)
-{
-    float fh;
-    fh = fopen(f, FILE_READ);
-    if (fh < 0)
-        return FALSE;
-    fclose(fh);
-    return TRUE;
-}
-
 void backtrace(string msg)
 {
     float dev, war;
@@ -2002,7 +1985,8 @@ float SUB_NoImpactCheck()
        // these stop the projectile from moving, so...
        if(trace_dphitcontents == 0)
        {
-               dprint("A hit happened with zero hit contents... DEBUG THIS, this should never happen for projectiles! Projectile will self-destruct.\n");
+               //dprint("A hit happened with zero hit contents... DEBUG THIS, this should never happen for projectiles! Projectile will self-destruct.\n");
+               dprint(sprintf(_("A hit from a projectile happened with no hit contents! DEBUG THIS, this should never happen for projectiles! Profectile will self-destruct. (edict: %d, classname: %s, origin: %s)\n"), num_for_edict(self), self.classname, vtos(self.origin)));
                checkclient();
        }
     if (trace_dphitq3surfaceflags & Q3SURFACEFLAG_NOIMPACT)
index 4cddbbc70fbb74608645299b7bf36724047e2c32..f56dc59f18f15979d5cdd8e5defb06826babdaf9 100644 (file)
@@ -85,6 +85,8 @@ void freezetag_Freeze(entity attacker)
        freezetag_Ice_Think();
        self = oldself;
 
+       RemoveGrapplingHook(self);
+
        // add waypoint
        WaypointSprite_Spawn("freezetag_frozen", 0, 0, self, '0 0 64', world, self.team, self, waypointsprite_attached, TRUE);
        if(self.waypointsprite_attached)
index d55c803148e6b0d598c392fed11dac8cd4276d61..488dd10206bc1c4f11d9c5b51beee49c14fb50aa 100644 (file)
@@ -96,7 +96,6 @@ t_jumppads.qc
 t_teleporters.qc
 
 sv_main.qc
-sv_stats.qc
 
 g_triggers.qc
 g_models.qc
diff --git a/qcsrc/server/sv_stats.qc b/qcsrc/server/sv_stats.qc
deleted file mode 100644 (file)
index 0924cba..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-
-// Accuracy
-//.float shots;
-//.float hits;
-
index 75a59850486a69443deca1a5944ea7fa3abb144c..98ac726ba8c99301f85473e3f0637d92bd69e175 100644 (file)
@@ -116,7 +116,7 @@ void                end_sys_globals;
 .float         colormap;
 .float         team;
 .float         max_health;
-.float         teleport_time;
+.float         teleport_time; // movement input is blocked till that time; set e.g. by waterjump logic - BUT, movement and friction still takes place
 .float         armortype;
 .float         armorvalue;
 .float         waterlevel;
index 93ced82670b1a36fb15c42a8236419621d52513a..2e64eadd77f6517e29b5ea873067082962c8ecab 100644 (file)
@@ -77,7 +77,6 @@ void spawn_tdeath(vector v0, entity e, vector v)
 #define TELEPORT_FLAGS_TELEPORTER (TELEPORT_FLAG_SOUND | TELEPORT_FLAG_PARTICLES | TELEPORT_FLAG_TDEATH)
 void TeleportPlayer(entity teleporter, entity player, vector to, vector to_angles, vector to_velocity, vector telefragmin, vector telefragmax, float tflags)
 {
-       entity oldself;
        entity telefragger;
        vector from;
 
@@ -136,14 +135,6 @@ void TeleportPlayer(entity teleporter, entity player, vector to, vector to_angle
                }
 
                player.lastteleporttime = time;
-
-               // stop player name display
-               {
-                       oldself = self;
-                       self = player;
-                       ClearSelectedPlayer();
-                       self = oldself;
-               }
        }
 }
 
index c8f83abf78b29ead3fa1fee48d1a8c88f03d89a0..bbe81a2f6d19ae2d28b4bb6108e9942151ac73ca 100644 (file)
@@ -1 +1,3 @@
-http://www.alientrap.org/devwiki/index.php?n=Xonotic.Todo (and get this Todo actually updated :P)
+http://dev.xonotic.org/projects/xonotic/issues
+
+also: Maybe actually decide upon what to do with this todo file? No one uses it :P Just use the development tracker.
\ No newline at end of file
index 2d9ecfd8b31085d0fb0ea2eb2d4294d56d3826a0..1efd6132d084e217b586015bf4910fb61446ebcc 100644 (file)
@@ -184,7 +184,7 @@ void W_BallisticBullet_Hit (void)
 
                if(headshot)
                        f *= q;
-               if(DEATH_WEAPONOF(self.projectiledeathtype) == WEP_SNIPERRIFLE)
+               if(self.dmg_edge > 0)
                {
                        if(headshot)
                                AnnounceTo(self.owner, "headshot");
index df0d96679890f3b824cfda07b5dbc5384f2f9ce2..7dfd4461365e42cbcf9f70817a12fcaf87f1be6f 100644 (file)
@@ -112,6 +112,154 @@ void W_Hagar_Attack2 (void)
        other = missile; MUTATOR_CALLHOOK(EditProjectile);
 }
 
+.float hagar_loadstep, hagar_loadblock, hagar_loadbeep;
+void W_Hagar_Attack2_Load_Release (void)
+{
+       // time to release the rockets we've loaded
+
+       local entity missile;
+       local float counter, shots;
+       local vector s;
+       vector forward, right, up;
+
+       if(!self.hagar_load)
+               return;
+
+       weapon_prepareattack_do(1, autocvar_g_balance_hagar_secondary_refire);
+
+       W_SetupShot (self, FALSE, 2, "weapons/hagar_fire.wav", CHAN_WEAPON, autocvar_g_balance_hagar_secondary_damage);
+       pointparticles(particleeffectnum("hagar_muzzleflash"), w_shotorg, w_shotdir * 1000, 1);
+
+       forward = v_forward;
+       right = v_right;
+       up = v_up;
+
+       shots = self.hagar_load;
+       missile = world;
+       while (counter < shots)
+       {
+               missile = spawn ();
+               missile.owner = missile.realowner = self;
+               missile.classname = "missile";
+               missile.bot_dodge = TRUE;
+               missile.bot_dodgerating = autocvar_g_balance_hagar_secondary_damage;
+
+               missile.touch = W_Hagar_Touch; // not bouncy
+               missile.use = W_Hagar_Explode2;
+               missile.think = adaptor_think2use_hittype_splash;
+               missile.nextthink = time + autocvar_g_balance_hagar_secondary_lifetime_min + random() * autocvar_g_balance_hagar_secondary_lifetime_rand;
+               PROJECTILE_MAKETRIGGER(missile);
+               missile.projectiledeathtype = WEP_HAGAR;
+               setorigin (missile, w_shotorg);
+               setsize(missile, '0 0 0', '0 0 0');
+               missile.movetype = MOVETYPE_FLY;
+
+               s = '0 0 0';
+               if (counter == 0)
+                       s = '0 0 0';
+               else
+               {
+                       makevectors('0 360 0' * (0.75 + (counter - 0.5) / (shots - 1)));
+                       s_y = v_forward_x;
+                       s_z = v_forward_y;
+               }
+               s = s * cvar("g_balance_hagar_secondary_spread") * g_weaponspreadfactor;
+               W_SetupProjectileVelocityEx(missile, w_shotdir + right * s_y + up * s_z, v_up, cvar("g_balance_hagar_secondary_speed"), 0, 0, 0, FALSE);
+
+               missile.angles = vectoangles (missile.velocity);
+               missile.flags = FL_PROJECTILE;
+
+               CSQCProjectile(missile, TRUE, PROJECTILE_HAGAR, TRUE);
+
+               other = missile; MUTATOR_CALLHOOK(EditProjectile);
+
+               counter = counter + 1;
+       }
+
+       weapon_thinkf(WFRAME_FIRE2, autocvar_g_balance_hagar_secondary_refire, w_ready);
+       self.hagar_loadstep = time + autocvar_g_balance_hagar_secondary_refire;
+       self.hagar_load = 0;
+}
+
+void W_Hagar_Attack2_Load (void)
+{
+       // loadable hagar secondary attack, must always run each frame
+
+       local float loaded, enough_ammo;
+       loaded = self.hagar_load >= autocvar_g_balance_hagar_secondary_load_max;
+
+       // this is different than WR_CHECKAMMO when it comes to reloading
+       if(autocvar_g_balance_hagar_reload_ammo)
+               enough_ammo = self.weapon_load[WEP_HAGAR] >= autocvar_g_balance_hagar_secondary_ammo;
+       else
+               enough_ammo = self.ammo_rockets >= autocvar_g_balance_hagar_secondary_ammo;
+
+       if(self.BUTTON_ATCK2)
+       {
+               if(self.BUTTON_ATCK && autocvar_g_balance_hagar_secondary_load_abort)
+               {
+                       if(self.hagar_load)
+                       {
+                               // if we pressed primary fire while loading, unload all rockets and abort
+                               W_DecreaseAmmo(ammo_rockets, autocvar_g_balance_hagar_secondary_ammo * self.hagar_load * -1, autocvar_g_balance_hagar_reload_ammo); // give back ammo
+                               self.hagar_load = 0;
+                               sound(self, CHAN_WEAPON, "weapons/hagar_beep.wav", VOL_BASE, ATTN_NORM);
+
+                               // pause until we can load rockets again, once we re-press the alt fire button
+                               self.hagar_loadstep = time + autocvar_g_balance_hagar_secondary_load_speed;
+
+                               // require letting go of the alt fire button before we can load again
+                               self.hagar_loadblock = TRUE;
+                       }
+               }
+               else
+               {
+                       // check if we can attempt to load another rocket
+                       if(!loaded && enough_ammo)
+                       {
+                               if(!self.hagar_loadblock && self.hagar_loadstep < time)
+                               {
+                                       W_DecreaseAmmo(ammo_rockets, autocvar_g_balance_hagar_secondary_ammo, autocvar_g_balance_hagar_reload_ammo);
+                                       self.hagar_load += 1;
+                                       sound(self, CHAN_WEAPON2, "weapons/hagar_load.wav", VOL_BASE, ATTN_NORM);
+
+                                       self.hagar_loadstep = time + autocvar_g_balance_hagar_secondary_load_speed;
+                               }
+                       }
+                       else if(!self.hagar_loadbeep && self.hagar_load) // prevents the beep from playing each frame
+                       {
+                               // if this is the last rocket we can load, play a beep sound to notify the player
+                               sound(self, CHAN_WEAPON, "weapons/hagar_beep.wav", VOL_BASE, ATTN_NORM);
+                               self.hagar_loadbeep = TRUE;
+                       }
+               }
+       }
+       else if(self.hagar_loadblock)
+       {
+               // the alt fire button has been released, so re-enable loading if blocked
+               self.hagar_loadblock = FALSE;
+       }
+
+       if(self.hagar_load)
+       {
+               self.weapon_forbidchange = TRUE;
+               if(!self.BUTTON_ATCK2 || ((loaded || !enough_ammo) && self.hagar_loadstep < time && !autocvar_g_balance_hagar_secondary_load_hold))
+                       W_Hagar_Attack2_Load_Release();
+       }
+       else
+       {
+               self.weapon_forbidchange = FALSE;
+               self.hagar_loadbeep = FALSE;
+       }
+
+       // we aren't checking ammo during an attack, so we must do it here
+       if not(weapon_action(self.weapon, WR_CHECKAMMO1) + weapon_action(self.weapon, WR_CHECKAMMO2))
+       {
+               W_SwitchToOtherWeapon(self);
+               return;
+       }
+}
+
 void spawnfunc_weapon_hagar (void)
 {
        weapon_defaultspawnfunc(WEP_HAGAR);
@@ -130,9 +278,14 @@ float w_hagar(float req)
                }
        else if (req == WR_THINK)
        {
+               local float loadable_secondary;
+               loadable_secondary = autocvar_g_balance_hagar_secondary_load && autocvar_g_balance_hagar_secondary;
+
+               if (loadable_secondary)
+                       W_Hagar_Attack2_Load(); // must always run each frame
                if(autocvar_g_balance_hagar_reload_ammo && self.clip_load < min(autocvar_g_balance_hagar_primary_ammo, autocvar_g_balance_hagar_secondary_ammo)) // forced reload
                        weapon_action(self.weapon, WR_RELOAD);
-               else if (self.BUTTON_ATCK)
+               else if (self.BUTTON_ATCK && !self.hagar_load && !self.hagar_loadblock) // not while secondary is loaded or awaiting reset
                {
                        if (weapon_prepareattack(0, autocvar_g_balance_hagar_primary_refire))
                        {
@@ -140,7 +293,7 @@ float w_hagar(float req)
                                weapon_thinkf(WFRAME_FIRE1, autocvar_g_balance_hagar_primary_refire, w_ready);
                        }
                }
-               else if (self.BUTTON_ATCK2 && autocvar_g_balance_hagar_secondary)
+               else if (self.BUTTON_ATCK2 && !loadable_secondary && autocvar_g_balance_hagar_secondary)
                {
                        if (weapon_prepareattack(1, autocvar_g_balance_hagar_secondary_refire))
                        {
@@ -155,12 +308,21 @@ float w_hagar(float req)
                precache_model ("models/weapons/v_hagar.md3");
                precache_model ("models/weapons/h_hagar.iqm");
                precache_sound ("weapons/hagar_fire.wav");
+               precache_sound ("weapons/hagar_load.wav");
+               precache_sound ("weapons/hagar_beep.wav");
                //precache_sound ("weapons/reload.wav"); // until weapons have individual reload sounds, precache the reload sound somewhere else
        }
        else if (req == WR_SETUP)
        {
                weapon_setup(WEP_HAGAR);
                self.current_ammo = ammo_rockets;
+               self.hagar_loadblock = FALSE;
+
+               if(self.hagar_load)
+               {
+                       W_DecreaseAmmo(ammo_rockets, autocvar_g_balance_hagar_secondary_ammo * self.hagar_load * -1, autocvar_g_balance_hagar_reload_ammo); // give back ammo if necessary
+                       self.hagar_load = 0;
+               }
        }
        else if (req == WR_CHECKAMMO1)
        {
@@ -174,9 +336,20 @@ float w_hagar(float req)
                ammo_amount += self.weapon_load[WEP_HAGAR] >= autocvar_g_balance_hagar_secondary_ammo;
                return ammo_amount;
        }
+       else if (req == WR_RESETPLAYER)
+       {
+               self.hagar_load = 0;
+       }
+       else if (req == WR_PLAYERDEATH)
+       {
+               // if we have any rockets loaded when we die, release them
+               if(self.hagar_load && autocvar_g_balance_hagar_secondary_load_releasedeath)
+                       W_Hagar_Attack2_Load_Release();
+       }
        else if (req == WR_RELOAD)
        {
-               W_Reload(min(autocvar_g_balance_hagar_primary_ammo, autocvar_g_balance_hagar_secondary_ammo), autocvar_g_balance_hagar_reload_ammo, autocvar_g_balance_hagar_reload_time, "weapons/reload.wav");
+               if not(self.hagar_load) // require releasing loaded rockets first
+                       W_Reload(min(autocvar_g_balance_hagar_primary_ammo, autocvar_g_balance_hagar_secondary_ammo), autocvar_g_balance_hagar_reload_ammo, autocvar_g_balance_hagar_reload_time, "weapons/reload.wav");
        }
        return TRUE;
 };
index 0cf25e4f60c10922e09dd9c3273ec88bd889116d..7b474d6956f04f09ac86e80d45509a60f422b471 100644 (file)
@@ -1,5 +1,5 @@
 #ifdef REGISTER_WEAPON
-REGISTER_WEAPON(HLAC, w_hlac, IT_CELLS, 6, WEP_FLAG_NORMAL | WEP_FLAG_RELOADABLE | WEP_TYPE_SPLASH, BOT_PICKUP_RATING_MID, "hlac", "hlac", _("Heavy Laser Assault Cannon"))
+REGISTER_WEAPON(HLAC, w_hlac, IT_CELLS, 6, WEP_FLAG_RELOADABLE | WEP_TYPE_SPLASH, BOT_PICKUP_RATING_MID, "hlac", "hlac", _("Heavy Laser Assault Cannon"))
 #else
 #ifdef SVQC
 
index 8a6b421b5314b281e0b43e0f7be66d3a7f3d8056..14c6506faa0d13111f35402e3a8f109ac8384f63 100644 (file)
@@ -1,5 +1,5 @@
 #ifdef REGISTER_WEAPON
-REGISTER_WEAPON(MINE_LAYER, w_minelayer, IT_ROCKETS, 4, WEP_FLAG_NORMAL | WEP_FLAG_RELOADABLE | WEP_TYPE_SPLASH, BOT_PICKUP_RATING_HIGH, "minelayer", "minelayer", _("Mine Layer"))
+REGISTER_WEAPON(MINE_LAYER, w_minelayer, IT_ROCKETS, 4, WEP_FLAG_RELOADABLE | WEP_TYPE_SPLASH, BOT_PICKUP_RATING_HIGH, "minelayer", "minelayer", _("Mine Layer"))
 #else
 #ifdef SVQC
 void W_Mine_Think (void);
index a0fce6a31951bd82c0799c9e6399728ace37ada0..04a1151910bf0f290a7f91eee114aeb97a8a9fc8 100644 (file)
@@ -87,8 +87,13 @@ float w_nex(float req)
        float ammo_amount;
        if (req == WR_AIM)
        {
-               self.BUTTON_ATCK = bot_aim(1000000, 0, 1, FALSE);
-               self.BUTTON_ATCK2 = bot_aim(1000000, 0, 1, FALSE);
+               if(bot_aim(1000000, 0, 1, FALSE))
+                       self.BUTTON_ATCK = TRUE;
+               else
+               {
+                       if(autocvar_g_balance_nex_charge)
+                               self.BUTTON_ATCK2 = TRUE;
+               }
        }
        else if (req == WR_THINK)
        {
@@ -115,7 +120,7 @@ float w_nex(float req)
                                        weapon_thinkf(WFRAME_FIRE1, autocvar_g_balance_nex_primary_animtime, w_ready);
                                }
                        }
-                       if ((autocvar_g_balance_nex_secondary_charge && !autocvar_g_balance_nex_secondary) ? self.BUTTON_ZOOM : self.BUTTON_ATCK2)
+                       if ((autocvar_g_balance_nex_secondary_charge && !autocvar_g_balance_nex_secondary) ? (self.BUTTON_ZOOM | self.BUTTON_ZOOMSCRIPT) : self.BUTTON_ATCK2)
                        {
                                if(autocvar_g_balance_nex_secondary_charge)
                                {
@@ -189,20 +194,6 @@ float w_nex(float req)
                                }
                        }
                }
-
-               if(autocvar_g_balance_nex_charge)
-               {
-                       self.weaponentity_glowmod_x = autocvar_g_weapon_charge_colormod_hdrmultiplier * autocvar_g_weapon_charge_colormod_red_half * min(1, self.nex_charge / autocvar_g_balance_nex_charge_animlimit);
-                       self.weaponentity_glowmod_y = autocvar_g_weapon_charge_colormod_hdrmultiplier * autocvar_g_weapon_charge_colormod_green_half * min(1, self.nex_charge / autocvar_g_balance_nex_charge_animlimit);
-                       self.weaponentity_glowmod_z = autocvar_g_weapon_charge_colormod_hdrmultiplier * autocvar_g_weapon_charge_colormod_blue_half * min(1, self.nex_charge / autocvar_g_balance_nex_charge_animlimit);
-
-                       if(self.nex_charge > autocvar_g_balance_nex_charge_animlimit)
-                       {
-                               self.weaponentity_glowmod_x = self.weaponentity_glowmod_x + autocvar_g_weapon_charge_colormod_hdrmultiplier * autocvar_g_weapon_charge_colormod_red_full * (self.nex_charge - autocvar_g_balance_nex_charge_animlimit) / (1 - autocvar_g_balance_nex_charge_animlimit);
-                               self.weaponentity_glowmod_y = self.weaponentity_glowmod_y + autocvar_g_weapon_charge_colormod_hdrmultiplier * autocvar_g_weapon_charge_colormod_green_full * (self.nex_charge - autocvar_g_balance_nex_charge_animlimit) / (1 - autocvar_g_balance_nex_charge_animlimit);
-                               self.weaponentity_glowmod_z = self.weaponentity_glowmod_z + autocvar_g_weapon_charge_colormod_hdrmultiplier * autocvar_g_weapon_charge_colormod_blue_full * (self.nex_charge - autocvar_g_balance_nex_charge_animlimit) / (1 - autocvar_g_balance_nex_charge_animlimit);
-                       }
-               }
        }
        else if (req == WR_PRECACHE)
        {
index e4b14adf7070d22bf73c878470642bb49c3ca1a6..a4f4383227506ecc0c0d7bb0100fd39c70c7a506 100644 (file)
@@ -1,5 +1,5 @@
 #ifdef REGISTER_WEAPON
-REGISTER_WEAPON(SEEKER, w_seeker, IT_ROCKETS, 8, WEP_FLAG_NORMAL | WEP_FLAG_RELOADABLE | WEP_TYPE_SPLASH, BOT_PICKUP_RATING_MID, "seeker", "seeker", _("T.A.G. Seeker"))
+REGISTER_WEAPON(SEEKER, w_seeker, IT_ROCKETS, 8, WEP_FLAG_RELOADABLE | WEP_TYPE_SPLASH, BOT_PICKUP_RATING_MID, "seeker", "seeker", _("T.A.G. Seeker"))
 #else
 #ifdef SVQC
 //.float proxytime; = autoswitch
index 38ae17a24f579e6ef4ea2d05a849f4a812e3dd1f..635b1ccf8b959ac753e4f06ef493605e9049b973 100644 (file)
@@ -77,7 +77,7 @@ void shotgun_meleethink (void)
                Damage (trace_ent, self.owner, self.owner, autocvar_g_balance_shotgun_secondary_damage * min(1, f + 1), WEP_SHOTGUN | HITTYPE_SECONDARY , self.owner.origin + self.owner.view_ofs, force);
                remove(self);
        }
-       else if(time >= self.cnt + meleetime) // missed, remove ent
+       else if(time >= self.cnt + meleetime || (self.owner.deadflag != DEAD_NO && autocvar_g_balance_shotgun_secondary_melee_no_doubleslap)) // missed or owner died, remove ent
                remove(self);
        else // continue swinging the weapon in hope of hitting someone :)
                self.nextthink = time;
index f634993f5ad7ea6c2565c4e60eb7fc9b56f54aaf..55f7896e039d67a1973e27adcfdb1ecb6aaebc44 100644 (file)
@@ -2,33 +2,27 @@
 REGISTER_WEAPON(SNIPERRIFLE, w_sniperrifle, IT_NAILS, 7, WEP_FLAG_NORMAL | WEP_FLAG_RELOADABLE | WEP_TYPE_HITSCAN, BOT_PICKUP_RATING_MID, "campingrifle", "sniperrifle", _("Sniper Rifle"))
 #else
 #ifdef SVQC
-//Sniper rifle Primary mode: manually operated bolt*, Secondary: full automatic**
-//* Manually operating the bolt means that all the power of the gas is used to propell the bullet. In this mode the bolt is prevented from moving backwards in response to the firing of the bullet.
-//** In fully automatic mode some of the gas is used to extract and reload the next cartrige, thus there is less power and range.
 
 .float sniperrifle_accumulator;
 
-void W_SniperRifle_FireBullet(float pSpread, float pDamage, float pHeadshotAddedDamage, float pForce, float pSpeed, float pLifetime, float pAmmo, float deathtype, float pBulletConstant)
+void W_SniperRifle_FireBullet(float pSpread, float pDamage, float pHeadshotAddedDamage, float pForce, float pSpeed, float pLifetime, float pAmmo, float deathtype, float pBulletConstant, float pTracer, float pShots, string pSound)
 {
+       float i;
+
        W_DecreaseAmmo(ammo_nails, pAmmo, autocvar_g_balance_sniperrifle_reload_ammo);
 
-       if(deathtype & HITTYPE_SECONDARY)
-               W_SetupShot (self, autocvar_g_antilag_bullets && pSpeed >= autocvar_g_antilag_bullets, 2, "weapons/campingrifle_fire2.wav", CHAN_WEAPON, autocvar_g_balance_sniperrifle_secondary_damage + autocvar_g_balance_sniperrifle_secondary_headshotaddeddamage);
-       else
-               W_SetupShot (self, autocvar_g_antilag_bullets && pSpeed >= autocvar_g_antilag_bullets, 2, "weapons/campingrifle_fire.wav", CHAN_WEAPON, autocvar_g_balance_sniperrifle_primary_damage + autocvar_g_balance_sniperrifle_primary_headshotaddeddamage);
+       W_SetupShot (self, autocvar_g_antilag_bullets && pSpeed >= autocvar_g_antilag_bullets, 2, pSound, CHAN_WEAPON, (pDamage + pHeadshotAddedDamage) * pShots);
 
        pointparticles(particleeffectnum("sniperrifle_muzzleflash"), w_shotorg, w_shotdir * 2000, 1);
 
-       if(self.BUTTON_ZOOM) // if zoomed, shoot from the eye
+       if(self.BUTTON_ZOOM | self.BUTTON_ZOOMSCRIPT) // if zoomed, shoot from the eye
        {
                w_shotdir = v_forward;
                w_shotorg = self.origin + self.view_ofs + ((w_shotorg - self.origin - self.view_ofs) * v_forward) * v_forward;
        }
 
-       if(deathtype & HITTYPE_SECONDARY)
-               fireBallisticBullet(w_shotorg, w_shotdir, pSpread, pSpeed, pLifetime, pDamage, pHeadshotAddedDamage / pDamage, pForce, deathtype, (autocvar_g_balance_sniperrifle_secondary_tracer ? EF_RED : EF_BLUE), 1, pBulletConstant);
-       else
-               fireBallisticBullet(w_shotorg, w_shotdir, pSpread, pSpeed, pLifetime, pDamage, pHeadshotAddedDamage / pDamage, pForce, deathtype, (autocvar_g_balance_sniperrifle_primary_tracer ? EF_RED : EF_BLUE), 1, pBulletConstant);
+       for(i = 0; i < pShots; ++i)
+               fireBallisticBullet(w_shotorg, w_shotdir, pSpread, pSpeed, pLifetime, pDamage, pHeadshotAddedDamage / pDamage, pForce, deathtype, (pTracer ? EF_RED : EF_BLUE), 1, pBulletConstant);
        endFireBallisticBullet();
 
        if (autocvar_g_casings >= 2)
@@ -37,12 +31,12 @@ void W_SniperRifle_FireBullet(float pSpread, float pDamage, float pHeadshotAdded
 
 void W_SniperRifle_Attack()
 {
-       W_SniperRifle_FireBullet(autocvar_g_balance_sniperrifle_primary_spread, autocvar_g_balance_sniperrifle_primary_damage, autocvar_g_balance_sniperrifle_primary_headshotaddeddamage, autocvar_g_balance_sniperrifle_primary_force, autocvar_g_balance_sniperrifle_primary_speed, autocvar_g_balance_sniperrifle_primary_lifetime, autocvar_g_balance_sniperrifle_primary_ammo, WEP_SNIPERRIFLE, autocvar_g_balance_sniperrifle_primary_bulletconstant);
+       W_SniperRifle_FireBullet(autocvar_g_balance_sniperrifle_primary_spread, autocvar_g_balance_sniperrifle_primary_damage, autocvar_g_balance_sniperrifle_primary_headshotaddeddamage, autocvar_g_balance_sniperrifle_primary_force, autocvar_g_balance_sniperrifle_primary_speed, autocvar_g_balance_sniperrifle_primary_lifetime, autocvar_g_balance_sniperrifle_primary_ammo, WEP_SNIPERRIFLE, autocvar_g_balance_sniperrifle_primary_bulletconstant, autocvar_g_balance_sniperrifle_primary_tracer, autocvar_g_balance_sniperrifle_primary_shots, "weapons/campingrifle_fire.wav");
 }
 
 void W_SniperRifle_Attack2()
 {
-       W_SniperRifle_FireBullet(autocvar_g_balance_sniperrifle_secondary_spread, autocvar_g_balance_sniperrifle_secondary_damage, autocvar_g_balance_sniperrifle_secondary_headshotaddeddamage, autocvar_g_balance_sniperrifle_secondary_force, autocvar_g_balance_sniperrifle_secondary_speed, autocvar_g_balance_sniperrifle_secondary_lifetime, autocvar_g_balance_sniperrifle_secondary_ammo, WEP_SNIPERRIFLE | HITTYPE_SECONDARY, autocvar_g_balance_sniperrifle_secondary_bulletconstant);
+       W_SniperRifle_FireBullet(autocvar_g_balance_sniperrifle_secondary_spread, autocvar_g_balance_sniperrifle_secondary_damage, autocvar_g_balance_sniperrifle_secondary_headshotaddeddamage, autocvar_g_balance_sniperrifle_secondary_force, autocvar_g_balance_sniperrifle_secondary_speed, autocvar_g_balance_sniperrifle_secondary_lifetime, autocvar_g_balance_sniperrifle_secondary_ammo, WEP_SNIPERRIFLE | HITTYPE_SECONDARY, autocvar_g_balance_sniperrifle_secondary_bulletconstant, autocvar_g_balance_sniperrifle_secondary_tracer, autocvar_g_balance_sniperrifle_secondary_shots, "weapons/campingrifle_fire2.wav");
 }
 
 void spawnfunc_weapon_sniperrifle (void)
index f02fa4a30266d097b9c595d413829300999eeb4d..4b36b4651dc75efa463357b8f7d2405caaffcd05 100644 (file)
@@ -141,6 +141,23 @@ void WarpZone_Camera_Read(float isnew)
                self.drawmask = MASK_NORMAL;
 }
 
+void CL_RotateMoves(vector ang) = #638;
+void WarpZone_Teleported_Read(float isnew)
+{
+       vector v;
+       self.classname = "warpzone_teleported";
+       v_x = ReadCoord();
+       v_y = ReadCoord();
+       v_z = ReadCoord();
+       if(!isnew)
+               return;
+       self.warpzone_transform = v;
+       R_SetView3fv(VF_CL_VIEWANGLES, WarpZone_TransformVAngles(self, R_SetView3fv(VF_CL_VIEWANGLES)));
+       if(checkextension("DP_CSQC_ROTATEMOVES"))
+               CL_RotateMoves(v);
+               //CL_RotateMoves('0 90 0');
+}
+
 float warpzone_fixingview;
 float warpzone_fixingview_drawexteriormodel;
 //float warpzone_fixingview_sidespeed;
index e8f44be136d4effa8c4cf5102554fdab48c77eec..d5b3ac2fc097887b0a6181b059033fc214b3e2b8 100644 (file)
@@ -1,5 +1,6 @@
 void WarpZone_Read(float bIsNewEntity);
 void WarpZone_Camera_Read(float bIsNewEntity);
+void WarpZone_Teleported_Read(float bIsNewEntity);
 
 vector warpzone_fixview_origin;
 vector warpzone_fixview_angles;
index e0dfc6675342eb9282283f6f6599398896370e4a..29f5dc8db11aaf218354895ed5bba94f53e76397 100644 (file)
@@ -1,5 +1,6 @@
 .vector warpzone_oldorigin, warpzone_oldvelocity, warpzone_oldangles;
 .float warpzone_teleport_time;
+.entity warpzone_teleport_zone;
 
 void WarpZone_StoreProjectileData(entity e)
 {
@@ -32,6 +33,15 @@ void WarpZone_TeleportPlayer(entity teleporter, entity player, vector to, vector
        WarpZone_PostTeleportPlayer_Callback(player);
 }
 
+float WarpZone_Teleported_Send(entity to, float sf)
+{
+       WriteByte(MSG_ENTITY, ENT_CLIENT_WARPZONE_TELEPORTED);
+       WriteCoord(MSG_ENTITY, self.angles_x);
+       WriteCoord(MSG_ENTITY, self.angles_y);
+       WriteCoord(MSG_ENTITY, self.angles_z);
+       return TRUE;
+}
+
 float WarpZone_Teleport(entity player)
 {
        vector o0, a0, v0, o1, a1, v1;
@@ -90,6 +100,24 @@ float WarpZone_Teleport(entity player)
        WarpZone_TeleportPlayer(self, player, o1 - player.view_ofs, a1, v1);
        WarpZone_StoreProjectileData(player);
        player.warpzone_teleport_time = time;
+       player.warpzone_teleport_zone = self;
+#ifndef WARPZONE_USE_FIXANGLE
+       // instead of fixangle, send the transform to the client for smoother operation
+       player.fixangle = FALSE;
+
+       entity ts = spawn();
+       setmodel(ts, "null");
+       ts.SendEntity = WarpZone_Teleported_Send;
+       ts.SendFlags = 0xFFFFFF;
+       ts.drawonlytoclient = player;
+       ts.think = SUB_Remove;
+       ts.nextthink = time + 1;
+       ts.owner = player;
+       ts.enemy = self;
+       ts.effects = EF_NODEPTHTEST;
+       ts.classname = "warpzone_teleported";
+       ts.angles = self.warpzone_transform;
+#endif
 
        return 1;
 }
@@ -685,3 +713,16 @@ void spawnfunc_target_warpzone_reconnect()
 {
        spawnfunc_trigger_warpzone_reconnect(); // both names make sense here :(
 }
+
+void WarpZone_PlayerPhysics_FixVAngle(void)
+{
+#ifndef WARPZONE_DONT_FIX_VANGLE
+       if(clienttype(self) == CLIENTTYPE_REAL)
+       if(self.v_angle_z <= 360) // if not already adjusted
+       if(time - self.ping * 0.001 < self.warpzone_teleport_time)
+       {
+               self.v_angle = WarpZone_TransformVAngles(self.warpzone_teleport_zone, self.v_angle);
+               self.v_angle_z += 720; // mark as adjusted
+       }
+#endif
+}
index 392e6f39d13ff41e454ac61fdb69cab789cf96e5..621e0f9517169e3d9ea22a8329baad9347decbfb 100644 (file)
@@ -8,3 +8,5 @@ float WarpZone_Projectile_Touch_ImpactFilter_Callback();
 // server must also define a float called ENT_CLIENT_WARPZONE for the initial byte of WarpZone entities
 const float ENT_CLIENT_WARPZONE;
 const float ENT_CLIENT_WARPZONE_CAMERA;
+
+void WarpZone_PlayerPhysics_FixVAngle(void);
diff --git a/scripts/relics.shader b/scripts/relics.shader
new file mode 100644 (file)
index 0000000..dd8372f
--- /dev/null
@@ -0,0 +1,160 @@
+models/relics/relic
+{
+       dpreflectcube cubemaps/default/sky
+       {
+               map models/relics/relic.tga
+               rgbgen lightingDiffuse
+       }
+}
+models/relics/relic_ring
+{
+       {
+               map models/relics/relic_ring.tga
+               blendfunc add
+               rgbgen lightingDiffuse
+       }
+}
+models/relics/sign_resistance
+{
+       cull none
+       {
+               map models/relics/sign_resistance.tga
+               blendfunc add
+               rgbgen lightingDiffuse
+       }
+}
+models/relics/sign_regeneration
+{
+       cull none
+       {
+               map models/relics/sign_regeneration.tga
+               blendfunc add
+               rgbgen lightingDiffuse
+       }
+}
+models/relics/sign_vampire
+{
+       cull none
+       {
+               map models/relics/sign_vampire.tga
+               blendfunc add
+               rgbgen lightingDiffuse
+       }
+}
+models/relics/sign_ammo
+{
+       cull none
+       {
+               map models/relics/sign_ammo.tga
+               blendfunc add
+               rgbgen lightingDiffuse
+       }
+}
+models/relics/sign_damage
+{
+       cull none
+       {
+               map models/relics/sign_damage.tga
+               blendfunc add
+               rgbgen lightingDiffuse
+       }
+}
+models/relics/sign_splashdamage
+{
+       cull none
+       {
+               map models/relics/sign_splashdamage.tga
+               blendfunc add
+               rgbgen lightingDiffuse
+       }
+}
+models/relics/sign_firingspeed
+{
+       cull none
+       {
+               map models/relics/sign_firingspeed.tga
+               blendfunc add
+               rgbgen lightingDiffuse
+       }
+}
+models/relics/sign_disability
+{
+       cull none
+       {
+               map models/relics/sign_disability.tga
+               blendfunc add
+               rgbgen lightingDiffuse
+       }
+}
+models/relics/sign_teamboost
+{
+       cull none
+       {
+               map models/relics/sign_teamboost.tga
+               blendfunc add
+               rgbgen lightingDiffuse
+       }
+}
+models/relics/sign_speed
+{
+       cull none
+       {
+               map models/relics/sign_speed.tga
+               blendfunc add
+               rgbgen lightingDiffuse
+       }
+}
+models/relics/sign_jump
+{
+       cull none
+       {
+               map models/relics/sign_jump.tga
+               blendfunc add
+               rgbgen lightingDiffuse
+       }
+}
+models/relics/sign_flight
+{
+       cull none
+       {
+               map models/relics/sign_flight.tga
+               blendfunc add
+               rgbgen lightingDiffuse
+       }
+}
+models/relics/sign_invisible
+{
+       cull none
+       {
+               map models/relics/sign_invisible.tga
+               blendfunc add
+               rgbgen lightingDiffuse
+       }
+}
+models/relics/sign_radioactive
+{
+       cull none
+       {
+               map models/relics/sign_radioactive.tga
+               blendfunc add
+               rgbgen lightingDiffuse
+       }
+}
+models/relics/sign_resurrection
+{
+       cull none
+       {
+               map models/relics/sign_resurrection.tga
+               blendfunc add
+               rgbgen lightingDiffuse
+       }
+}
+models/relics/sign_vengeance
+{
+       cull none
+       {
+               map models/relics/sign_vengeance.tga
+               blendfunc add
+               rgbgen lightingDiffuse
+       }
+}
diff --git a/sound/relics/relic_effect.wav b/sound/relics/relic_effect.wav
new file mode 100644 (file)
index 0000000..b78ceba
Binary files /dev/null and b/sound/relics/relic_effect.wav differ
diff --git a/sound/weapons/hagar_beep.ogg b/sound/weapons/hagar_beep.ogg
new file mode 100644 (file)
index 0000000..52ef8e8
Binary files /dev/null and b/sound/weapons/hagar_beep.ogg differ
diff --git a/sound/weapons/hagar_load.ogg b/sound/weapons/hagar_load.ogg
new file mode 100644 (file)
index 0000000..92b88be
Binary files /dev/null and b/sound/weapons/hagar_load.ogg differ
index 6d719e6bcf91efe4d7d2a8013334d8182ff3a0bf..6189b51e955ef834020ad83c48161715bb930984 100644 (file)
Binary files a/textures/campingrifle.tga and b/textures/campingrifle.tga differ
index b7a33d947a797cdc7e6d55de19bb5bbf48489fd2..f42532995fe5576d8658a0f0bca8c53c73a2d295 100644 (file)
Binary files a/textures/campingrifle_glow.tga and b/textures/campingrifle_glow.tga differ
diff --git a/textures/campingrifle_pants.tga b/textures/campingrifle_pants.tga
deleted file mode 100644 (file)
index 633d3dd..0000000
Binary files a/textures/campingrifle_pants.tga and /dev/null differ
diff --git a/textures/campingrifle_shirt.tga b/textures/campingrifle_shirt.tga
deleted file mode 100644 (file)
index 8944408..0000000
Binary files a/textures/campingrifle_shirt.tga and /dev/null differ
index f67d64674023a51a8e6db047c93f0fa08b779952..c07f02a704ebdd8c15b71c0bbb12b791ef9de3b7 100644 (file)
Binary files a/textures/crylink.tga and b/textures/crylink.tga differ
index 97016866eb5992a6b7e1b2d36f87cc8f374b8c7d..84e2c17c7cc98c5f5f23939840a4df3786e9cff8 100644 (file)
Binary files a/textures/crylink_gloss.tga and b/textures/crylink_gloss.tga differ
index e73aaaa406235fb467079d86d7a9f8e2d2878c99..de4be8ef2e8ae4ed5b4b3d5b41e1beeb8e0c0bc3 100644 (file)
Binary files a/textures/crylink_glow.jpg and b/textures/crylink_glow.jpg differ
diff --git a/textures/crylink_pants.tga b/textures/crylink_pants.tga
deleted file mode 100644 (file)
index cc53e76..0000000
Binary files a/textures/crylink_pants.tga and /dev/null differ
index 5c5109e69421dab0d1a04b236414c17d1376ddfc..ec7857b19711eca5205c80ef96abfc47ec9a82d2 100644 (file)
Binary files a/textures/crylink_reflect.tga and b/textures/crylink_reflect.tga differ
index 1fe74b161d971d7c2077766f8408139f32be58ef..adf55c2ed500e0c2b2d7969648f5032a7fbefbee 100644 (file)
Binary files a/textures/electro.tga and b/textures/electro.tga differ
index 91736effd5bc035d29967a7d367dd015d55ce784..9c6a5bfffea7e7d9f89b5cc72f4f86bd8141d2b9 100644 (file)
Binary files a/textures/electro_glow.tga and b/textures/electro_glow.tga differ
diff --git a/textures/electro_pants.tga b/textures/electro_pants.tga
deleted file mode 100644 (file)
index b8e7084..0000000
Binary files a/textures/electro_pants.tga and /dev/null differ
index f57bc18ac28b0f515e712010b2a6452e73a1c8a7..a0600288ccf65716713df08c7271eb3dc0495dfc 100644 (file)
Binary files a/textures/electro_plasma.tga and b/textures/electro_plasma.tga differ
index f57bc18ac28b0f515e712010b2a6452e73a1c8a7..a0600288ccf65716713df08c7271eb3dc0495dfc 100644 (file)
Binary files a/textures/electro_plasma_glow.tga and b/textures/electro_plasma_glow.tga differ
diff --git a/textures/glauncher_glow.tga b/textures/glauncher_glow.tga
new file mode 100644 (file)
index 0000000..bd93673
Binary files /dev/null and b/textures/glauncher_glow.tga differ
diff --git a/textures/glauncher_pants.tga b/textures/glauncher_pants.tga
deleted file mode 100644 (file)
index 1f3957e..0000000
Binary files a/textures/glauncher_pants.tga and /dev/null differ
index f582ce66330c979bf61ef4d4c7a1da4c3c38f851..22c345637d8653a92ab11333b871e6f2852cf106 100644 (file)
Binary files a/textures/glscope.tga and b/textures/glscope.tga differ
index f582ce66330c979bf61ef4d4c7a1da4c3c38f851..22c345637d8653a92ab11333b871e6f2852cf106 100644 (file)
Binary files a/textures/glscope_glow.tga and b/textures/glscope_glow.tga differ
index 2b77dd918ec3b9e572f72ff99861a600a79e9f0a..f05fef985c82aeaa1f5a3d9bd17ecc762be51a62 100644 (file)
Binary files a/textures/hagar2.tga and b/textures/hagar2.tga differ
index 9fff206a2252d8dd5b4659f5487a9794384e55bc..cd4b3531230f93534bfb8f7d506fdc4924106560 100644 (file)
Binary files a/textures/hagar2_glow.tga and b/textures/hagar2_glow.tga differ
diff --git a/textures/hagar2_pants.tga b/textures/hagar2_pants.tga
deleted file mode 100644 (file)
index 5992dbf..0000000
Binary files a/textures/hagar2_pants.tga and /dev/null differ
index 9fe31cc24a27a8ba5288f0eda032ca86a41000fa..7b86985c81a84e55c03bae2e1c96c076f6ed8008 100644 (file)
Binary files a/textures/hlac_accessory.tga and b/textures/hlac_accessory.tga differ
diff --git a/textures/hlac_accessory_glow.tga b/textures/hlac_accessory_glow.tga
new file mode 100644 (file)
index 0000000..c322008
Binary files /dev/null and b/textures/hlac_accessory_glow.tga differ
diff --git a/textures/hlac_accessory_pants.tga b/textures/hlac_accessory_pants.tga
deleted file mode 100644 (file)
index 23516cc..0000000
Binary files a/textures/hlac_accessory_pants.tga and /dev/null differ
index c4c6882a20a117012d1f9fd353d361fc01332c1f..fa24925a7629759cbce66a558dcfd8023680eaa2 100644 (file)
Binary files a/textures/hlac_body.tga and b/textures/hlac_body.tga differ
index fffafabf98da05b4f21a9397ca8d8ccb401345b5..c9c04abf94509c488eb69a5b729c4cae1253a92b 100644 (file)
Binary files a/textures/hlac_body_glow.tga and b/textures/hlac_body_glow.tga differ
diff --git a/textures/hlac_body_pants.tga b/textures/hlac_body_pants.tga
deleted file mode 100644 (file)
index 32ee034..0000000
Binary files a/textures/hlac_body_pants.tga and /dev/null differ
index c3bddd150d9ce505f1a8c36003d1e8a6b7b0bc02..32ee034605b015e575aa0cf4e19e796606611e97 100644 (file)
Binary files a/textures/hlac_body_shirt.tga and b/textures/hlac_body_shirt.tga differ
index 5842c4f6cab26636f7028212b11e8cef81e61827..264a8cdf01c989b7de02e9a79e3dccecd6f6302f 100644 (file)
Binary files a/textures/hlac_metal.tga and b/textures/hlac_metal.tga differ
index 3a6abf5f11b7c69828033b93b9656f1129d3fa72..a20be9f640afb5be9d83e3d036f603ef208bf059 100644 (file)
Binary files a/textures/hlac_metal_glow.tga and b/textures/hlac_metal_glow.tga differ
index 5603b16e7d9504dad8a9f5e0ab593e052af6e32a..956b2417621cca92ca207961f45ce971febfc183 100644 (file)
Binary files a/textures/hlac_plasma.tga and b/textures/hlac_plasma.tga differ
diff --git a/textures/hookgun_pants.tga b/textures/hookgun_pants.tga
deleted file mode 100644 (file)
index 327822d..0000000
Binary files a/textures/hookgun_pants.tga and /dev/null differ
diff --git a/textures/hookgun_shirt.tga b/textures/hookgun_shirt.tga
new file mode 100644 (file)
index 0000000..327822d
Binary files /dev/null and b/textures/hookgun_shirt.tga differ
index d651d382f94bf9222c76d5dd2137d227f45d2e7c..c0f2bc78c6b3152f84fdb0f821975d2709e68cbb 100644 (file)
Binary files a/textures/laser.tga and b/textures/laser.tga differ
index 9e7eb103576c3d36c9137e0099e345a9779cfc60..90e32e7235de79be24681b753b5960d0a90e9bd8 100644 (file)
Binary files a/textures/laser_glow.tga and b/textures/laser_glow.tga differ
diff --git a/textures/laser_pants.tga b/textures/laser_pants.tga
deleted file mode 100644 (file)
index 4566bc0..0000000
Binary files a/textures/laser_pants.tga and /dev/null differ
index e0fa48c143fe567db868cedf29197d9db07e116d..834a987bd6b2f438e9b97442679514bd1b973ac9 100644 (file)
Binary files a/textures/minelayer.tga and b/textures/minelayer.tga differ
index 163735f7fad65e232d8964bfe35c484ac3f4ebdb..34e865f0c844f10aceff71932a68e7a3a4c72a58 100644 (file)
Binary files a/textures/minelayer_glow.tga and b/textures/minelayer_glow.tga differ
index 1fdc59a78de9ddd16d543b19f8f2ec0013ebca62..7ff7027cf2cf6c926fc969570504968f4235346e 100644 (file)
Binary files a/textures/nex.tga and b/textures/nex.tga differ
index 915001cde7f06d2c0e8ceaeda8aea27a6785fe86..aa6c3247471dae4d14a9ca79d861e9253362bf70 100644 (file)
Binary files a/textures/nex_glow.tga and b/textures/nex_glow.tga differ
diff --git a/textures/nex_pants.tga b/textures/nex_pants.tga
deleted file mode 100644 (file)
index 6fc3833..0000000
Binary files a/textures/nex_pants.tga and /dev/null differ
index 420bf15654ce5d03e916ff5afe941e250b7ae61f..9da70356511e3cd27cd2921e480c4fbf9023895c 100644 (file)
Binary files a/textures/portalgun.tga and b/textures/portalgun.tga differ
index 1719b0511bb6f0d12870ce78e63a259a163ee141..3a36355fb213352f3961c378476a14bc65fa5280 100644 (file)
Binary files a/textures/portalgun_glow.tga and b/textures/portalgun_glow.tga differ
diff --git a/textures/rl_glow.tga b/textures/rl_glow.tga
new file mode 100644 (file)
index 0000000..755f96a
Binary files /dev/null and b/textures/rl_glow.tga differ
diff --git a/textures/rl_pants.tga b/textures/rl_pants.tga
deleted file mode 100644 (file)
index 9f7cd2e..0000000
Binary files a/textures/rl_pants.tga and /dev/null differ
index e275817b59e1f38d4834b0cbcf5d1bcb774119c2..3e70ade018be67a6d44da8b3f14ab34310f26b32 100644 (file)
Binary files a/textures/seeker.tga and b/textures/seeker.tga differ
index 84acdbc3eb3aaa05e7ebd752b9e80f9617536794..79acae87d3bb57273a92d795de47000366dc8a6e 100644 (file)
Binary files a/textures/seeker_glow.tga and b/textures/seeker_glow.tga differ
diff --git a/textures/seeker_pants.tga b/textures/seeker_pants.tga
deleted file mode 100644 (file)
index 471fe0c..0000000
Binary files a/textures/seeker_pants.tga and /dev/null differ
diff --git a/textures/seeker_shirt.tga b/textures/seeker_shirt.tga
new file mode 100644 (file)
index 0000000..471fe0c
Binary files /dev/null and b/textures/seeker_shirt.tga differ
index 863f3830b5588939a962f1fbccb5c12cb27b74c7..10e3c433c8c4209d54550b575adfd9011eaf3d71 100644 (file)
Binary files a/textures/shotgun2_glow.tga and b/textures/shotgun2_glow.tga differ
index 442ced63a698906dbc6a1590aefc4e1fda8f98d4..8bc227c20c4bded11eae9a2fef0236d7ce5159b4 100644 (file)
Binary files a/textures/shotgun2_shirt.tga and b/textures/shotgun2_shirt.tga differ
index bc74918718c1cab7839fc40ff1b343eeb64b360e..36ce078d00ce2a4f8d61845e77b6be70bb32b6a2 100644 (file)
Binary files a/textures/shotgun_sight.tga and b/textures/shotgun_sight.tga differ
diff --git a/textures/shotgun_sight_glow.tga b/textures/shotgun_sight_glow.tga
new file mode 100644 (file)
index 0000000..e432842
Binary files /dev/null and b/textures/shotgun_sight_glow.tga differ
index de6d9db3154cd66f59c4050565d236c44083055e..ee180f442a6901c84d14ce91c7225b64fe3349f0 100644 (file)
Binary files a/textures/uzi_glow.tga and b/textures/uzi_glow.tga differ
diff --git a/textures/uzi_pants.tga b/textures/uzi_pants.tga
deleted file mode 100644 (file)
index 62f6659..0000000
Binary files a/textures/uzi_pants.tga and /dev/null differ
index ac4ac0403b604db926967a280ee3e4c30cce11c6..345a8e7b8458729e2f16d2b0c83da7e76d011e3c 100644 (file)
 \cl_gunalign\Position of the weapon model; requires reconnect
 
 \crosshair_per_weapon\Set a different crosshair for each weapon, good if you play without weapon models
-\crosshair_color_override\Also set the color of the crosshair depending on the weapon you are currently holding
+\crosshair_color_per_weapon\Set the color of the crosshair depending on the weapon you are currently holding
 \crosshair_size\Adjust the size of the crosshair
-\crosshair_color_alpha\Adjust the opacity of the crosshair
-\crosshair_color_red\Red color component of the crosshair color
-\crosshair_color_green\Green color component of the crosshair color
-\crosshair_color_blue\Blue color component of the crosshair color
+\crosshair_alpha\Adjust the opacity of the crosshair
+\crosshair_color\Adjust the crosshair color
 \sbar_hudselector\Use the old HUD layout
 \XonoticMultiplayerDialog/Radar, HUD & Waypoints...\Adjust the radar, HUD and waypoints
 \_cl_name\Name under which you will appear in the game
@@ -97,8 +95,6 @@
 \m_pitch\Invert mouse movement on the Y-axis
 \vid_dgamouse\Make use of DGA mouse input
 \con_closeontoggleconsole\Allow the console toggling bind to also close the console
-\sbar_showbinds\Display actions / bound keys in the strings shown during the game
-\cl_showpressedkeys\Show which movement keys the player is pressing
 
 \XonoticSettingsDialog/Video\Video settings
 \vid_width\Screen resolution
 \showtime\Show current time of day, useful on screenshots
 \showdate\Show current date, useful on screenshots
 \showfps\Show your rendered frames per second
-\cl_showspeed\Show the speed of the player
-\cl_showspeed_unit\Select the unit used by the speedometer. qu/s = in/s
-\cl_showacceleration\Show the acceleration of the player
-\cl_showacceleration_scale\Excaggerate the accelerometer by this scale multiplier
 
 \XonoticSettingsDialog/Advanced settings...\Advanced settings where you can tweak every single variable of the game
 \g_friendlyfire\Percentage of damage dealt to teammates
 \g_mirrordamage\Percentage of teamdamage that will be mirrored to you
 \g_tdm_teams_override\Override the default amount of teams in teamgames
 
-\cl_teamradar_position\-
-\cl_teamradar_size\-
-\cl_teamradar_zoommode\-
-\cl_teamradar_rotation\-
-\cl_teamradar_scale\-
-\cl_teamradar_foreground_alpha\-
-\cl_teamradar_background_alpha\Opacity value of the radar background
 \viewsize\Enable/disable the HUD background
-\sbar_alpha_bg\Opacity value of the HUD background
-\sbar_color_bg_r\Red color component of the HUD background
-\sbar_color_bg_g\Green color component of the HUD background
-\sbar_color_bg_b\Blue color component of the HUD background
-\sbar_color_bg_team\Team color saturation of the HUD background
 \cl_hidewaypoints\Show various gametype specific waypoints
 \g_waypointsprite_scale\Scale multiplier of the waypoints
 \g_waypointsprite_alpha\Control transparency of the waypoints
index dc5b5c4c6c060fc6a53de5422940e240f6a393d7..38371eca775dc8933fd400c6c89dffcf131d5ddb 100644 (file)
@@ -5,13 +5,12 @@ Tyler "-z-" Mulligan
 Merlijn Hofstra
 morphed
 mand1nga
-tZork
-
+Jakob "tZork" Markström Gröhn
 
 **Coordinators
 
 *Art
-Diabolik a.k.a Dib
+Sahil "DiaboliK" Singhal
 
 *2D Art / Web
 Tyler "-z-" Mulligan (web / game)
@@ -24,14 +23,20 @@ morphed
 LJFHutch
 Pearce "theShadow" Michal
 
+*Animation
+Sahil "DiaboliK" Singhal
+nifrek
+
 *Level Design
 FruitieX
 MirceaKitsune
+Jakob "tZork" Markström Gröhn
 
 *Music / Sound FX
 mand1nga
 Merlijn Hofstra
 remaxim
+Stephan
 
 *Engine Code Additions & QA
 Rudolf "divVerent" Polzer
@@ -39,7 +44,7 @@ Rudolf "divVerent" Polzer
 *Game Code
 Rudolf "divVerent" Polzer
 FruitieX
-tZork
+Jakob "tZork" Markström Gröhn
 
 *Marketing / PR
 Tyler "-z-" Mulligan
@@ -89,6 +94,7 @@ Samual Lenks
 Severin "sev" Meyer
 Stephan "esteel" Stahl
 Wolfgang "Blub\0" Bumiller
+SoulKeeper_p
 
 **Past Contributors
 Alexander "motorsep" Zubov