]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Merge branch 'master' into terencehill/directmenu_options
authorterencehill <piuntn@gmail.com>
Wed, 13 Jun 2012 12:26:12 +0000 (14:26 +0200)
committerterencehill <piuntn@gmail.com>
Wed, 13 Jun 2012 12:26:12 +0000 (14:26 +0200)
493 files changed:
_hud_descriptions.cfg
balance25.cfg
balanceFruitieX.cfg
balanceXPM.cfg
balanceXonotic.cfg
check-translations.sh
commands.cfg
csprogs.dat.de.po
csprogs.dat.fr.po
csprogs.dat.hu.po [new file with mode: 0644]
csprogs.dat.it.po
defaultXonotic.cfg
effectinfo.txt
effects-high.cfg
effects-low.cfg
effects-med.cfg
effects-normal.cfg
effects-omg.cfg
effects-ultimate.cfg
effects-ultra.cfg
gfx/hud/default/key_atck.tga [new file with mode: 0644]
gfx/hud/default/key_atck2.tga [new file with mode: 0644]
gfx/hud/default/key_atck2_inv.tga [new file with mode: 0644]
gfx/hud/default/key_atck_inv.tga [new file with mode: 0644]
gfx/hud/default/weapon_hlacmod_renameit.tga [deleted file]
gfx/hud/luminos/weapon_hlacmod_renameit.tga [deleted file]
gfx/hud/old/weapon_hlacmod_renameit.tga [deleted file]
gfx/loading.tga
gfx/loading14.tga [new file with mode: 0644]
gfx/menu/luminos/gametype_freezetag.tga [deleted file]
gfx/menu/luminos/gametype_ft.tga [new file with mode: 0644]
gfx/menu/luminos/gametype_ka.tga [new file with mode: 0644]
gfx/menu/luminos/gametype_keepaway.tga [deleted file]
gfx/menu/luminos/gametype_nb.tga [new file with mode: 0644]
gfx/menu/luminos/gametype_nexball.tga [deleted file]
gfx/menu/luminos/icon_mod_.tga [new file with mode: 0644]
gfx/menu/luminos/icon_mod_MinstaGib.tga [new file with mode: 0644]
gfx/menu/luminos/icon_mod_NewToys.tga [new file with mode: 0644]
gfx/menu/luminos/icon_mod_Overkill.tga [new file with mode: 0644]
gfx/menu/wickedx/gametype_freezetag.tga [deleted file]
gfx/menu/wickedx/gametype_ft.tga [new file with mode: 0644]
gfx/menu/wickedx/gametype_ka.tga [new file with mode: 0644]
gfx/menu/wickedx/gametype_keepaway.tga [deleted file]
gfx/menu/wickedx/gametype_nb.tga [new file with mode: 0644]
gfx/menu/wickedx/gametype_nexball.tga [deleted file]
gfx/menu/wickedx/icon_mod_.tga [new file with mode: 0644]
gfx/menu/wickedx/icon_mod_MinstaGib.tga [new file with mode: 0644]
gfx/menu/wickedx/icon_mod_NewToys.tga [new file with mode: 0644]
gfx/menu/wickedx/icon_mod_Overkill.tga [new file with mode: 0644]
gfx/menu/xaw/gametype_freezetag.tga [deleted file]
gfx/menu/xaw/gametype_ft.tga [new file with mode: 0644]
gfx/menu/xaw/gametype_ka.tga [new file with mode: 0644]
gfx/menu/xaw/gametype_keepaway.tga [deleted file]
gfx/menu/xaw/gametype_nb.tga [new file with mode: 0644]
gfx/menu/xaw/gametype_nexball.tga [deleted file]
gfx/menu/xaw/icon_mod_.tga [new file with mode: 0644]
gfx/menu/xaw/icon_mod_MinstaGib.tga [new file with mode: 0644]
gfx/menu/xaw/icon_mod_NewToys.tga [new file with mode: 0644]
gfx/menu/xaw/icon_mod_Overkill.tga [new file with mode: 0644]
gfx/vehicles/vth-mover.tga [new file with mode: 0644]
gfx/vehicles/vth-stationary.tga [new file with mode: 0644]
hud_luminos.cfg
hud_luminos_minimal.cfg
hud_luminos_minimal_xhair.cfg
hud_luminos_old.cfg
hud_nexuiz.cfg
input-rtlights.cfg [new file with mode: 0644]
keybinds.txt
keybinds.txt.de
keybinds.txt.es
keybinds.txt.fr
keybinds.txt.hu
keybinds.txt.it
keybinds.txt.ru
keybinds.txt.uk
languages.txt
menu.dat.de.po
menu.dat.el.po
menu.dat.fi.po
menu.dat.fr.po
menu.dat.hu.po
menu.dat.it.po
menu.dat.nl.po
menu.dat.pt.po
menu.dat.ro.po
menu.dat.ru.po
menu.dat.uk.po
models/items/a_bullets_simple.iqm [new file with mode: 0644]
models/items/a_bullets_simple.iqm_0.skin [new file with mode: 0644]
models/items/a_bullets_simple.tga [new file with mode: 0644]
models/items/a_cells_simple.iqm [new file with mode: 0644]
models/items/a_cells_simple.iqm_0.skin [new file with mode: 0644]
models/items/a_cells_simple.tga [new file with mode: 0644]
models/items/a_rockets_simple.iqm [new file with mode: 0644]
models/items/a_rockets_simple.iqm_0.skin [new file with mode: 0644]
models/items/a_rockets_simple.tga [new file with mode: 0644]
models/items/a_shells_simple.iqm [new file with mode: 0644]
models/items/a_shells_simple.iqm_0.skin [new file with mode: 0644]
models/items/a_shells_simple.tga [new file with mode: 0644]
models/items/g_h100_simple.iqm [new file with mode: 0644]
models/items/g_h100_simple.iqm_0.skin [new file with mode: 0644]
models/items/g_h100_simple.tga [new file with mode: 0644]
models/items/g_h1_simple.iqm [new file with mode: 0644]
models/items/g_h1_simple.iqm_0.skin [new file with mode: 0644]
models/items/g_h1_simple.tga [new file with mode: 0644]
models/items/g_h25_simple.iqm [new file with mode: 0644]
models/items/g_h25_simple.iqm_0.skin [new file with mode: 0644]
models/items/g_h25_simple.tga [new file with mode: 0644]
models/items/g_h50_simple.iqm [new file with mode: 0644]
models/items/g_h50_simple.iqm_0.skin [new file with mode: 0644]
models/items/g_h50_simple.tga [new file with mode: 0644]
models/items/g_invincible_simple.iqm [new file with mode: 0644]
models/items/g_invincible_simple.iqm_0.skin [new file with mode: 0644]
models/items/g_invincible_simple.tga [new file with mode: 0644]
models/items/g_strength_simple.iqm [new file with mode: 0644]
models/items/g_strength_simple.iqm_0.skin [new file with mode: 0644]
models/items/g_strength_simple.tga [new file with mode: 0644]
models/items/item_armor_big_simple.iqm [new file with mode: 0644]
models/items/item_armor_big_simple.iqm_0.skin [new file with mode: 0644]
models/items/item_armor_big_simple.tga [new file with mode: 0644]
models/items/item_armor_large_simple.iqm [new file with mode: 0644]
models/items/item_armor_large_simple.iqm_0.skin [new file with mode: 0644]
models/items/item_armor_large_simple.tga [new file with mode: 0644]
models/items/item_armor_medium_simple.iqm [new file with mode: 0644]
models/items/item_armor_medium_simple.iqm_0.skin [new file with mode: 0644]
models/items/item_armor_medium_simple.tga [new file with mode: 0644]
models/items/item_armor_small_simple.iqm [new file with mode: 0644]
models/items/item_armor_small_simple.iqm_0.skin [new file with mode: 0644]
models/items/item_armor_small_simple.tga [new file with mode: 0644]
models/ok_player/okmale1.dpm [new file with mode: 0644]
models/ok_player/okmale1.dpm.framegroups [new file with mode: 0644]
models/ok_player/okmale1.dpm_0.sounds [new file with mode: 0644]
models/ok_player/okmale1.dpm_0.txt [new file with mode: 0644]
models/ok_player/okmale2.dpm [new file with mode: 0644]
models/ok_player/okmale2.dpm.framegroups [new file with mode: 0644]
models/ok_player/okmale2.dpm_0.sounds [new file with mode: 0644]
models/ok_player/okmale2.dpm_0.txt [new file with mode: 0644]
models/ok_player/okmale3.dpm [new file with mode: 0644]
models/ok_player/okmale3.dpm.framegroups [new file with mode: 0644]
models/ok_player/okmale3.dpm_0.sounds [new file with mode: 0644]
models/ok_player/okmale3.dpm_0.txt [new file with mode: 0644]
models/ok_player/okmale4.dpm [new file with mode: 0644]
models/ok_player/okmale4.dpm.framegroups [new file with mode: 0644]
models/ok_player/okmale4.dpm_0.sounds [new file with mode: 0644]
models/ok_player/okmale4.dpm_0.txt [new file with mode: 0644]
models/ok_player/okplayer.tga [new file with mode: 0644]
models/ok_player/okplayer_gloss.tga [new file with mode: 0644]
models/ok_player/okplayer_glow.tga [new file with mode: 0644]
models/ok_player/okplayer_reflect.tga [new file with mode: 0644]
models/ok_player/okplayer_shirt.tga [new file with mode: 0644]
models/ok_player/okrobot1.dpm [new file with mode: 0644]
models/ok_player/okrobot1.dpm.framegroups [new file with mode: 0644]
models/ok_player/okrobot1.dpm_0.sounds [new file with mode: 0644]
models/ok_player/okrobot1.dpm_0.txt [new file with mode: 0644]
models/ok_player/okrobot2.dpm [new file with mode: 0644]
models/ok_player/okrobot2.dpm.framegroups [new file with mode: 0644]
models/ok_player/okrobot2.dpm_0.sounds [new file with mode: 0644]
models/ok_player/okrobot2.dpm_0.txt [new file with mode: 0644]
models/ok_player/okrobot3.dpm [new file with mode: 0644]
models/ok_player/okrobot3.dpm.framegroups [new file with mode: 0644]
models/ok_player/okrobot3.dpm_0.sounds [new file with mode: 0644]
models/ok_player/okrobot3.dpm_0.txt [new file with mode: 0644]
models/ok_player/okrobot4.dpm [new file with mode: 0644]
models/ok_player/okrobot4.dpm.framegroups [new file with mode: 0644]
models/ok_player/okrobot4.dpm_0.sounds [new file with mode: 0644]
models/ok_player/okrobot4.dpm_0.txt [new file with mode: 0644]
models/player/megaerebus.iqm_0.tga
models/vehicles/spiderbot.dpm.framegroups
models/weapons/crylink_simple.tga [new file with mode: 0644]
models/weapons/g_crylink_simple.iqm [new file with mode: 0644]
models/weapons/g_crylink_simple.iqm_0.skin [new file with mode: 0644]
models/weapons/g_crylink_simple.obj [new file with mode: 0644]
models/weapons/g_crylink_simple.tga [new file with mode: 0644]
models/weapons/g_electro_simple.iqm [new file with mode: 0644]
models/weapons/g_electro_simple.iqm_0.skin [new file with mode: 0644]
models/weapons/g_electro_simple.tga [new file with mode: 0644]
models/weapons/g_gl_simple.iqm [new file with mode: 0644]
models/weapons/g_gl_simple.iqm_0.skin [new file with mode: 0644]
models/weapons/g_gl_simple.tga [new file with mode: 0644]
models/weapons/g_hagar_simple.iqm [new file with mode: 0644]
models/weapons/g_hagar_simple.iqm_0.skin [new file with mode: 0644]
models/weapons/g_hagar_simple.tga [new file with mode: 0644]
models/weapons/g_laser.md3
models/weapons/g_nex_simple.iqm [new file with mode: 0644]
models/weapons/g_nex_simple.iqm_0.skin [new file with mode: 0644]
models/weapons/g_nex_simple.tga [new file with mode: 0644]
models/weapons/g_ok_hmg.md3 [new file with mode: 0644]
models/weapons/g_ok_mg.md3 [new file with mode: 0644]
models/weapons/g_ok_rl.md3 [new file with mode: 0644]
models/weapons/g_ok_shotgun.md3 [new file with mode: 0644]
models/weapons/g_ok_sniper.md3 [new file with mode: 0644]
models/weapons/g_rl_simple.iqm [new file with mode: 0644]
models/weapons/g_rl_simple.iqm_0.skin [new file with mode: 0644]
models/weapons/g_rl_simple.tga [new file with mode: 0644]
models/weapons/g_shotgun_simple.iqm [new file with mode: 0644]
models/weapons/g_shotgun_simple.iqm_0.skin [new file with mode: 0644]
models/weapons/g_shotgun_simple.tga [new file with mode: 0644]
models/weapons/g_uzi_simple.iqm [new file with mode: 0644]
models/weapons/g_uzi_simple.iqm_0.skin [new file with mode: 0644]
models/weapons/g_uzi_simple.tga [new file with mode: 0644]
models/weapons/h_minstanex.iqm
models/weapons/h_minstanex.iqm.framegroups
models/weapons/h_ok_grenade.iqm [new file with mode: 0644]
models/weapons/h_ok_grenade.iqm.framegroups [new file with mode: 0644]
models/weapons/h_ok_hmg.iqm [new file with mode: 0644]
models/weapons/h_ok_hmg.iqm.framegroups [new file with mode: 0644]
models/weapons/h_ok_mg.iqm [new file with mode: 0644]
models/weapons/h_ok_mg.iqm.framegroups [new file with mode: 0644]
models/weapons/h_ok_rl.iqm [new file with mode: 0644]
models/weapons/h_ok_rl.iqm.framegroups [new file with mode: 0644]
models/weapons/h_ok_shotgun.iqm [new file with mode: 0644]
models/weapons/h_ok_shotgun.iqm.framegroups [new file with mode: 0644]
models/weapons/h_ok_sniper.iqm [new file with mode: 0644]
models/weapons/h_ok_sniper.iqm.framegroups [new file with mode: 0644]
models/weapons/laser.tga [new file with mode: 0644]
models/weapons/laser_gloss.tga [new file with mode: 0644]
models/weapons/laser_glow.tga [new file with mode: 0644]
models/weapons/laser_norm.tga [new file with mode: 0644]
models/weapons/laser_reflect.tga [new file with mode: 0644]
models/weapons/laser_shirt.tga [new file with mode: 0644]
models/weapons/mnex_bump.tga [deleted file]
models/weapons/mnex_norm.tga [new file with mode: 0644]
models/weapons/ok_rocket.md3 [new file with mode: 0644]
models/weapons/okrocketthrust.tga [new file with mode: 0644]
models/weapons/okrocketthrust_glow.tga [new file with mode: 0644]
models/weapons/okweapons.tga [new file with mode: 0644]
models/weapons/okweapons_gloss.tga [new file with mode: 0644]
models/weapons/okweapons_glow.tga [new file with mode: 0644]
models/weapons/okweapons_reflect.tga [new file with mode: 0644]
models/weapons/okweapons_shirt.tga [new file with mode: 0644]
models/weapons/overkillbullet.tga [new file with mode: 0644]
models/weapons/overkillbullet_gloss.tga [new file with mode: 0644]
models/weapons/overkillbullet_reflect.tga [new file with mode: 0644]
models/weapons/v_laser.md3
models/weapons/v_ok_grenade.md3 [new file with mode: 0644]
models/weapons/v_ok_hmg.md3 [new file with mode: 0644]
models/weapons/v_ok_mg.md3 [new file with mode: 0644]
models/weapons/v_ok_rl.md3 [new file with mode: 0644]
models/weapons/v_ok_shotgun.md3 [new file with mode: 0644]
models/weapons/v_ok_sniper.md3 [new file with mode: 0644]
mutator_new_toys.cfg [new file with mode: 0644]
physicsCPMA.cfg
physicsFruit.cfg
physicsHavoc.cfg
physicsLeeStricklin-ModdedFruit.cfg
physicsLeeStricklin.cfg
physicsLeeStricklinOld.cfg
physicsLzd.cfg
physicsNexuiz10.cfg
physicsNexuiz11.cfg
physicsNexuiz151.cfg
physicsNexuiz151b.cfg
physicsNexuiz16rc1.cfg
physicsNexuiz20.cfg
physicsNexuiz25.cfg
physicsNexuiz26.cfg
physicsNoQWBunny-nexbased.cfg
physicsQ.cfg
physicsQ2.cfg
physicsQ2a.cfg
physicsQ3.cfg
physicsQBF.cfg
physicsQBFplus.cfg
physicsSamual.cfg
physicsWarsow.cfg
physicsWarsowClassicBunny.cfg
physicsWarsowDev.cfg
physicsX.cfg
physicsX010.cfg
physicsXPM.cfg
physicsXPMLight.cfg
qcsrc/Makefile
qcsrc/client/Main.qc
qcsrc/client/View.qc
qcsrc/client/autocvars.qh
qcsrc/client/bgmscript.qc
qcsrc/client/casings.qc
qcsrc/client/csqcmodel_hooks.qc
qcsrc/client/damage.qc
qcsrc/client/hud.qc
qcsrc/client/hud_config.qc
qcsrc/client/miscfunctions.qc
qcsrc/client/progs.src
qcsrc/client/scoreboard.qc
qcsrc/client/shownames.qc
qcsrc/client/target_music.qc
qcsrc/client/tturrets.qc
qcsrc/client/vehicles/vehicles.qc
qcsrc/client/wall.qc
qcsrc/common/campaign_file.qc
qcsrc/common/command/generic.qc
qcsrc/common/command/generic.qh
qcsrc/common/command/markup.qc
qcsrc/common/command/rpn.qc
qcsrc/common/constants.qh
qcsrc/common/csqcmodel_settings.qh
qcsrc/common/items.qc
qcsrc/common/items.qh
qcsrc/common/mapinfo.qc
qcsrc/common/mapinfo.qh
qcsrc/common/net_notice.qc [new file with mode: 0644]
qcsrc/common/net_notice.qh [new file with mode: 0644]
qcsrc/common/urllib.qc
qcsrc/common/urllib.qh
qcsrc/common/util-pre.qh
qcsrc/common/util.qc
qcsrc/common/util.qh
qcsrc/csqcmodellib/cl_model.qc
qcsrc/csqcmodellib/cl_player.qc
qcsrc/csqcmodellib/sv_model.qc
qcsrc/dpdefs/csprogsdefs.qc
qcsrc/fteqcc-bugs.qc [new file with mode: 0644]
qcsrc/menu/anim/animhost.c
qcsrc/menu/anim/keyframe.c
qcsrc/menu/command/menu_cmd.qc
qcsrc/menu/item/borderimage.c
qcsrc/menu/item/container.c
qcsrc/menu/item/dialog.c
qcsrc/menu/item/inputbox.c
qcsrc/menu/item/inputcontainer.c
qcsrc/menu/item/label.c
qcsrc/menu/item/listbox.c
qcsrc/menu/item/modalcontroller.c
qcsrc/menu/item/nexposee.c
qcsrc/menu/menu.qc
qcsrc/menu/menu.qh
qcsrc/menu/progs.src
qcsrc/menu/skin-customizables.inc
qcsrc/menu/xonotic/dialog_firstrun.c
qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c
qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c
qcsrc/menu/xonotic/dialog_multiplayer_demo.c
qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c
qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c
qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c
qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c
qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c
qcsrc/menu/xonotic/dialog_quit.c
qcsrc/menu/xonotic/dialog_settings_audio.c
qcsrc/menu/xonotic/dialog_settings_effects.c
qcsrc/menu/xonotic/dialog_settings_misc.c
qcsrc/menu/xonotic/dialog_settings_video.c
qcsrc/menu/xonotic/languagelist.c
qcsrc/menu/xonotic/mainwindow.c
qcsrc/menu/xonotic/serverlist.c
qcsrc/menu/xonotic/skinlist.c
qcsrc/menu/xonotic/slider_decibels.c
qcsrc/menu/xonotic/util.qc
qcsrc/menu/xonotic/util.qh
qcsrc/menu/xonotic/weaponslist.c
qcsrc/server/accuracy.qc
qcsrc/server/accuracy.qh
qcsrc/server/arena.qc
qcsrc/server/attic/nexball.qc [new file with mode: 0644]
qcsrc/server/autocvars.qh
qcsrc/server/bot/bot.qc
qcsrc/server/bot/havocbot/havocbot.qc
qcsrc/server/bot/havocbot/role_ctf.qc
qcsrc/server/bot/havocbot/role_onslaught.qc
qcsrc/server/bot/havocbot/roles.qc
qcsrc/server/bot/navigation.qc
qcsrc/server/bot/scripting.qc
qcsrc/server/bot/waypoints.qc
qcsrc/server/campaign.qc
qcsrc/server/cheats.qc
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/command/banning.qh
qcsrc/server/command/cmd.qc
qcsrc/server/command/common.qc
qcsrc/server/command/getreplies.qc
qcsrc/server/command/radarmap.qc
qcsrc/server/command/sv_cmd.qc
qcsrc/server/command/vote.qc
qcsrc/server/csqcprojectile.qc
qcsrc/server/ctf.qc
qcsrc/server/defs.qh
qcsrc/server/g_damage.qc
qcsrc/server/g_models.qc
qcsrc/server/g_subs.qc
qcsrc/server/g_triggers.qc
qcsrc/server/g_violence.qc
qcsrc/server/g_world.qc
qcsrc/server/ipban.qc
qcsrc/server/ipban.qh
qcsrc/server/item_key.qc
qcsrc/server/miscfunctions.qc
qcsrc/server/mode_onslaught.qc
qcsrc/server/mutators/base.qc
qcsrc/server/mutators/base.qh
qcsrc/server/mutators/gamemode_freezetag.qc
qcsrc/server/mutators/gamemode_keepaway.qc
qcsrc/server/mutators/gamemode_keyhunt.qc
qcsrc/server/mutators/gamemode_nexball.qc [new file with mode: 0644]
qcsrc/server/mutators/gamemode_nexball.qh [new file with mode: 0644]
qcsrc/server/mutators/mutator_dodging.qc
qcsrc/server/mutators/mutator_new_toys.qc [new file with mode: 0644]
qcsrc/server/mutators/mutator_nix.qc
qcsrc/server/mutators/mutators.qh
qcsrc/server/mutators/sandbox.qc
qcsrc/server/nexball.qc [deleted file]
qcsrc/server/pathlib.qc
qcsrc/server/pathlib/expandnode.qc
qcsrc/server/pathlib/utility.qc
qcsrc/server/playerstats.qc
qcsrc/server/progs.src
qcsrc/server/race.qc
qcsrc/server/runematch.qc
qcsrc/server/scores.qc
qcsrc/server/steerlib.qc
qcsrc/server/sv_main.qc
qcsrc/server/t_items.qc
qcsrc/server/t_jumppads.qc
qcsrc/server/t_plats.qc
qcsrc/server/t_quake3.qc
qcsrc/server/teamplay.qc
qcsrc/server/tturrets/system/system_main.qc
qcsrc/server/tturrets/system/system_misc.qc
qcsrc/server/tturrets/units/unit_hk.qc
qcsrc/server/tturrets/units/unit_tessla.qc
qcsrc/server/vehicles/racer.qc
qcsrc/server/vehicles/raptor.qc
qcsrc/server/vehicles/vehicles.qc
qcsrc/server/w_common.qc
qcsrc/server/w_crylink.qc
qcsrc/server/w_fireball.qc
qcsrc/server/w_hagar.qc
qcsrc/server/w_hlac.qc
qcsrc/server/w_minelayer.qc
qcsrc/server/w_minstanex.qc
qcsrc/server/w_porto.qc
qcsrc/server/w_rifle.qc
qcsrc/server/w_seeker.qc
qcsrc/server/w_tuba.qc
qcsrc/warpzonelib/client.qc
qcsrc/warpzonelib/common.qc
qcsrc/warpzonelib/server.qc
scripts/mnex.shader
scripts/ok_player.shader [new file with mode: 0644]
scripts/okweapons.shader [new file with mode: 0644]
scripts/simpleitems.shader [new file with mode: 0644]
scripts/weapons.shader
sound/overkill/grenadebip.ogg [new file with mode: 0644]
sound/player/robot/coms/attack.ogg [new file with mode: 0644]
sound/player/robot/coms/attackinfive.ogg [new file with mode: 0644]
sound/player/robot/coms/coverme.ogg [new file with mode: 0644]
sound/player/robot/coms/defend.ogg [new file with mode: 0644]
sound/player/robot/coms/freelance1.ogg [new file with mode: 0644]
sound/player/robot/coms/freelance2.ogg [new file with mode: 0644]
sound/player/robot/coms/incoming.ogg [new file with mode: 0644]
sound/player/robot/coms/meet.ogg [new file with mode: 0644]
sound/player/robot/coms/needhelp1.ogg [new file with mode: 0644]
sound/player/robot/coms/needhelp2.ogg [new file with mode: 0644]
sound/player/robot/coms/seenflag.ogg [new file with mode: 0644]
sound/player/robot/coms/taunt1.ogg [new file with mode: 0644]
sound/player/robot/coms/taunt2.ogg [new file with mode: 0644]
sound/player/robot/coms/taunt3.ogg [new file with mode: 0644]
sound/player/robot/coms/teamshoot1.ogg [new file with mode: 0644]
sound/player/robot/coms/teamshoot2.ogg [new file with mode: 0644]
sound/player/robot/coms/teamshoot3.ogg [new file with mode: 0644]
sound/player/robot/player/death1.ogg [new file with mode: 0644]
sound/player/robot/player/death2.ogg [new file with mode: 0644]
sound/player/robot/player/death3.ogg [new file with mode: 0644]
sound/player/robot/player/drown.ogg [new file with mode: 0644]
sound/player/robot/player/fall.ogg [new file with mode: 0644]
sound/player/robot/player/falling.ogg [new file with mode: 0644]
sound/player/robot/player/gasp.ogg [new file with mode: 0644]
sound/player/robot/player/jump.ogg [new file with mode: 0644]
sound/player/robot/player/pain100.ogg [new file with mode: 0644]
sound/player/robot/player/pain25.ogg [new file with mode: 0644]
sound/player/robot/player/pain50.ogg [new file with mode: 0644]
sound/player/robot/player/pain75.ogg [new file with mode: 0644]
sound/weapons/weaponpickup_new_toys.ogg [new file with mode: 0644]
textures/laser.tga [deleted file]
textures/laser_bump.tga [deleted file]
textures/laser_gloss.tga [deleted file]
textures/laser_glow.tga [deleted file]
textures/laser_shirt.tga [deleted file]
tooltips.db.de
tooltips.db.fr
tooltips.db.hu
tooltips.db.it
tooltips.db.ru
tooltips.db.uk
vehicle_racer.cfg
xonotic-credits.txt
xonotic-credits.txt.fr
xonotic-credits.txt.hu
xonotic-credits.txt.it
xonotic-credits.txt.uk

index c8ab15f987894c7bd8a9c8963a0274dc5601cf68..cb95f968132ba7145549310b491ec98885459a7a 100644 (file)
@@ -206,6 +206,7 @@ seta hud_panel_pressedkeys_bg_alpha "" "if set to something else than \"\" = ove
 seta hud_panel_pressedkeys_bg_border "" "if set to something else than \"\" = override default size of border around the background"
 seta hud_panel_pressedkeys_bg_padding "" "if set to something else than \"\" = override default padding of contents from border"
 seta hud_panel_pressedkeys_aspect "" "forced aspect on panel"
+seta hud_panel_pressedkeys_attack "" "show attack buttons too"
 
 seta hud_panel_chat "" "enable/disable this panel"
 seta hud_panel_chat_pos "" "position of this base of the panel"
@@ -253,9 +254,12 @@ seta hud_panel_physics_baralign "" "0 = align bars to the left, 1 = align bars t
 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_max "" "acceleration progressbar gets completely filled up by this value (in g)"
-seta hud_panel_physics_acceleration_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_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_acceleration_progressbar_scale "" "multiply acceleration progressbar values by this factor (allow progressbar to go out of panel bounds)"
+seta hud_panel_physics_acceleration_progressbar_nonlinear "" "use a non linear function to display acceleration progressbar values (amplify more smaller values)"
 seta hud_panel_physics_acceleration_vertical "" "include the acceleration on the Z-axis"
 seta hud_panel_physics_text "" "show text in panel (2 = only for speed; 3 = only for acceleration)"
+seta hud_panel_physics_text_scale "" "scale text height by this factor"
 seta hud_panel_physics_speed_unit "" "speed unit (1 = qu/s, 2 = m/s, 3 = km/h, 4 = mph, 5 = knots)"
 seta hud_panel_physics_speed_unit_show "" "also show speed unit"
 seta hud_panel_physics_speed_max "" "speed progressbar gets filled up completely by this value (in qu/s)"
index 420020622c5c7b3f124370841597d0b4cf800bec..aafb163b441941ea73ad9a0ba736837fcc0bc25f 100644 (file)
@@ -1,9 +1,10 @@
+g_mod_balance Nexuiz25
+
 // {{{ starting gear
 set g_start_weapon_laser -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_shotgun -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_uzi -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_grenadelauncher -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_minelayer -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_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"
@@ -12,11 +13,8 @@ set g_start_weapon_rocketlauncher -1 "0 = never provide the weapon, 1 = always p
 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 -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_rifle -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_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"
 set g_balance_health_start 150
 set g_balance_armor_start 0
 set g_start_ammo_shells 40
@@ -160,17 +158,16 @@ set g_throughfloor_force 1
 set g_projectiles_damage 2
 // possible values:
 // -2: absolutely no damage to projectiles (no exceptions)
-// -1: no damage other than the exceptions (electro combo, hagar join explode, minelayer mines)
+// -1: no damage other than the exceptions (electro combo, hagar join explode, ML mines)
 // 0: only damage from contents (lava/slime) or exceptions 
 // 1: only self damage or damage from contents or exceptions
 // 2: allow all damage to projectiles normally
+set g_projectiles_keep_owner 0
 set g_projectiles_newton_style 2
 // possible values:
 // 0: absolute velocity projectiles (like Quake)
 // 1: relative velocity projectiles, "Newtonian" (like Tribes 2)
 // 2: relative velocity projectiles, but aim is precorrected so projectiles hit the crosshair (note: strafe rockets then are SLOWER than ones shot while standing, happens in 1 too when aiming correctly which is hard)
-// 3: absolute velocity + player velocity component in shot direction (note: does NOT yield the right relative velocity, but may be good enough, but it is somewhat prone to sniper rockets)
-// 4: just add the player velocity length to the absolute velocity (tZork's sniper rockets)
 set g_projectiles_newton_style_2_minfactor 0.7
 set g_projectiles_newton_style_2_maxfactor 5
 set g_projectiles_spread_style 0
@@ -372,31 +369,6 @@ set g_balance_grenadelauncher_bouncestop 0.075
 set g_balance_grenadelauncher_reload_ammo 0 //default: 12
 set g_balance_grenadelauncher_reload_time 2
 // }}}
-// {{{ minelayer
-set g_balance_minelayer_damage 35
-set g_balance_minelayer_edgedamage 30
-set g_balance_minelayer_force 250
-set g_balance_minelayer_radius 175
-set g_balance_minelayer_proximityradius 150
-set g_balance_minelayer_speed 750
-set g_balance_minelayer_lifetime 60
-set g_balance_minelayer_lifetime_countdown 0
-set g_balance_minelayer_refire 1.5
-set g_balance_minelayer_animtime 0.4
-set g_balance_minelayer_ammo 5
-set g_balance_minelayer_health 15
-set g_balance_minelayer_limit 4 // 0 disables the limit
-set g_balance_minelayer_protection 1 // don't explode if the mine would hurt the owner or a team mate
-set g_balance_minelayer_damageforcescale 0
-set g_balance_minelayer_detonatedelay -1 // positive: timer till detonation is allowed, negative: "security device" that prevents ANY remote detonation if it could hurt its owner, zero: detonatable at any time
-set g_balance_minelayer_time 0.5
-set g_balance_minelayer_remote_damage 45
-set g_balance_minelayer_remote_edgedamage 40
-set g_balance_minelayer_remote_radius 200
-set g_balance_minelayer_remote_force 300
-set g_balance_minelayer_reload_ammo 0 //default: 15
-set g_balance_minelayer_reload_time 2
-// }}}
 // {{{ electro
 set g_balance_electro_lightning 0
 set g_balance_electro_primary_damage 65
@@ -657,77 +629,6 @@ set g_balance_hook_secondary_duration 1.5 // effect runs for three seconds
 set g_balance_hook_secondary_health 0
 set g_balance_hook_secondary_damageforcescale 0 
 // }}}
-// {{{ hlac
-set g_balance_hlac_primary_spread_min 0.01
-set g_balance_hlac_primary_spread_max 0.25
-set g_balance_hlac_primary_spread_add 0.0045
-set g_balance_hlac_primary_spread_crouchmod 0.25
-
-set g_balance_hlac_primary_damage 23
-set g_balance_hlac_primary_edgedamage 10
-set g_balance_hlac_primary_force 100
-set g_balance_hlac_primary_radius 70
-set g_balance_hlac_primary_speed 9000
-set g_balance_hlac_primary_lifetime 5
-
-set g_balance_hlac_primary_refire 0.1
-set g_balance_hlac_primary_animtime 0.4
-set g_balance_hlac_primary_ammo 1
-
-set g_balance_hlac_secondary 1
-set g_balance_hlac_secondary_spread 0.15
-set g_balance_hlac_secondary_spread_crouchmod 0.5
-
-set g_balance_hlac_secondary_damage 23
-set g_balance_hlac_secondary_edgedamage 10
-set g_balance_hlac_secondary_force 100
-set g_balance_hlac_secondary_radius 70
-set g_balance_hlac_secondary_speed 9000
-set g_balance_hlac_secondary_lifetime 5
-
-set g_balance_hlac_secondary_refire 1
-set g_balance_hlac_secondary_animtime 0.3
-set g_balance_hlac_secondary_ammo 10
-set g_balance_hlac_secondary_shots 6
-
-set g_balance_hlac_reload_ammo 0 //default: 20
-set g_balance_hlac_reload_time 2
-// }}}
-// {{{ rifle
-set g_balance_rifle_bursttime 0
-set g_balance_rifle_primary_tracer 0
-set g_balance_rifle_primary_shots 1
-set g_balance_rifle_primary_damage 60
-set g_balance_rifle_primary_headshotaddeddamage 100
-set g_balance_rifle_primary_spread 0
-set g_balance_rifle_primary_force 2
-set g_balance_rifle_primary_speed 35000
-set g_balance_rifle_primary_lifetime 5
-set g_balance_rifle_primary_refire 0.8
-set g_balance_rifle_primary_animtime 0.3
-set g_balance_rifle_primary_ammo 10
-set g_balance_rifle_primary_bulletconstant 130 // 56.3qu
-set g_balance_rifle_primary_burstcost 0
-set g_balance_rifle_primary_bullethail 0 // empty magazine on shot
-set g_balance_rifle_secondary 1
-set g_balance_rifle_secondary_reload 0
-set g_balance_rifle_secondary_tracer 0
-set g_balance_rifle_secondary_shots 1
-set g_balance_rifle_secondary_damage 35
-set g_balance_rifle_secondary_headshotaddeddamage 15 // 50 damage only on head
-set g_balance_rifle_secondary_spread 0.008
-set g_balance_rifle_secondary_force 1
-set g_balance_rifle_secondary_speed 20000
-set g_balance_rifle_secondary_lifetime 5
-set g_balance_rifle_secondary_refire 0.15
-set g_balance_rifle_secondary_animtime 0.1
-set g_balance_rifle_secondary_ammo 10
-set g_balance_rifle_secondary_bulletconstant 130 // 18.3qu
-set g_balance_rifle_secondary_burstcost 0
-set g_balance_rifle_secondary_bullethail 0 // empty magazine on shot
-set g_balance_rifle_reload_ammo 80 //default: 80
-set g_balance_rifle_reload_time 2
-// }}}
 // {{{ tuba
 set g_balance_tuba_refire 0.05
 set g_balance_tuba_animtime 0.05
@@ -776,57 +677,3 @@ set g_balance_fireball_secondary_speed_up 100
 set g_balance_fireball_secondary_speed_z 0
 set g_balance_fireball_secondary_spread 0
 // }}}
-// {{{ seeker
-set g_balance_seeker_type 0 // 0 = old seeker, 1 = new seeker. THIS IS A TEMPORARY CVAR FOR TESTING, will be removed later.
-set g_balance_seeker_flac_ammo 0.5
-set g_balance_seeker_flac_animtime 0.1
-set g_balance_seeker_flac_damage 15
-set g_balance_seeker_flac_edgedamage 10
-set g_balance_seeker_flac_force 50
-set g_balance_seeker_flac_lifetime 0.1
-set g_balance_seeker_flac_lifetime_rand 0.05
-set g_balance_seeker_flac_radius 100
-set g_balance_seeker_flac_refire 0.1
-set g_balance_seeker_flac_speed 3000
-set g_balance_seeker_flac_speed_up 1000
-set g_balance_seeker_flac_speed_z 0
-set g_balance_seeker_flac_spread 0.4
-set g_balance_seeker_missile_accel 3000
-set g_balance_seeker_missile_ammo 2
-set g_balance_seeker_missile_animtime 0.3
-set g_balance_seeker_missile_count 4
-set g_balance_seeker_missile_damage 40
-set g_balance_seeker_missile_damageforcescale 4
-set g_balance_seeker_missile_decel 6000
-set g_balance_seeker_missile_delay 0.25
-set g_balance_seeker_missile_edgedamage 10
-set g_balance_seeker_missile_force 250
-set g_balance_seeker_missile_health 5
-set g_balance_seeker_missile_lifetime 15
-set g_balance_seeker_missile_proxy 0
-set g_balance_seeker_missile_proxy_delay 0.2
-set g_balance_seeker_missile_proxy_maxrange 45
-set g_balance_seeker_missile_radius 80
-set g_balance_seeker_missile_refire 0.5
-set g_balance_seeker_missile_smart 1
-set g_balance_seeker_missile_smart_mindist 800
-set g_balance_seeker_missile_smart_trace_max 2500
-set g_balance_seeker_missile_smart_trace_min 1000
-set g_balance_seeker_missile_speed 700
-set g_balance_seeker_missile_speed_up 300
-set g_balance_seeker_missile_speed_z 0
-set g_balance_seeker_missile_speed_max 1250
-set g_balance_seeker_missile_spread 0
-set g_balance_seeker_missile_turnrate 0.65
-set g_balance_seeker_tag_ammo 1
-set g_balance_seeker_tag_animtime 0.3
-set g_balance_seeker_tag_damageforcescale 4
-set g_balance_seeker_tag_health 5
-set g_balance_seeker_tag_lifetime 15
-set g_balance_seeker_tag_refire 0.7
-set g_balance_seeker_tag_speed 9000
-set g_balance_seeker_tag_spread 0
-set g_balance_seeker_tag_tracker_lifetime 10
-set g_balance_seeker_reload_ammo 0 //default: 15
-set g_balance_seeker_reload_time 2
-// End new seeker
index 221f725a5284cb855e060f3c863f9e8c8c1250a2..1bb8989120df04a0f5f3b7864c66c23ab0df2f57 100644 (file)
@@ -1,9 +1,10 @@
+g_mod_balance FruitieX
+
 // {{{ starting gear
 set g_start_weapon_laser -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_shotgun -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_uzi -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_grenadelauncher -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_minelayer -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_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"
@@ -12,11 +13,8 @@ set g_start_weapon_rocketlauncher -1 "0 = never provide the weapon, 1 = always p
 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 -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_rifle -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_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"
 set g_balance_health_start 125
 set g_balance_armor_start 0
 set g_start_ammo_shells 20
@@ -160,17 +158,16 @@ set g_throughfloor_force 0.8
 set g_projectiles_damage 2
 // possible values:
 // -2: absolutely no damage to projectiles (no exceptions)
-// -1: no damage other than the exceptions (electro combo, hagar join explode, minelayer mines)
+// -1: no damage other than the exceptions (electro combo, hagar join explode, ML mines)
 // 0: only damage from contents (lava/slime) or exceptions 
 // 1: only self damage or damage from contents or exceptions
 // 2: allow all damage to projectiles normally
+set g_projectiles_keep_owner 0
 set g_projectiles_newton_style 2
 // possible values:
 // 0: absolute velocity projectiles (like Quake)
 // 1: relative velocity projectiles, "Newtonian" (like Tribes 2)
 // 2: relative velocity projectiles, but aim is precorrected so projectiles hit the crosshair (note: strafe rockets then are SLOWER than ones shot while standing, happens in 1 too when aiming correctly which is hard)
-// 3: absolute velocity + player velocity component in shot direction (note: does NOT yield the right relative velocity, but may be good enough, but it is somewhat prone to sniper rockets)
-// 4: just add the player velocity length to the absolute velocity (tZork's sniper rockets)
 set g_projectiles_newton_style_2_minfactor 0.7
 set g_projectiles_newton_style_2_maxfactor 5
 set g_projectiles_spread_style 7
@@ -372,31 +369,6 @@ set g_balance_grenadelauncher_bouncestop 0.12
 set g_balance_grenadelauncher_reload_ammo 0 //default: 12
 set g_balance_grenadelauncher_reload_time 2
 // }}}
-// {{{ minelayer
-set g_balance_minelayer_damage 42
-set g_balance_minelayer_edgedamage 30
-set g_balance_minelayer_force 250
-set g_balance_minelayer_radius 175
-set g_balance_minelayer_proximityradius 150
-set g_balance_minelayer_speed 750
-set g_balance_minelayer_lifetime 60
-set g_balance_minelayer_lifetime_countdown 0
-set g_balance_minelayer_refire 1.5
-set g_balance_minelayer_animtime 0.3
-set g_balance_minelayer_ammo 5
-set g_balance_minelayer_health 15
-set g_balance_minelayer_limit 3 // 0 disables the limit // LOG: 4 -> 3
-set g_balance_minelayer_protection 1 // don't explode if the mine would hurt the owner or a team mate
-set g_balance_minelayer_damageforcescale 0
-set g_balance_minelayer_detonatedelay -1 // positive: timer till detonation is allowed, negative: "security device" that prevents ANY remote detonation if it could hurt its owner, zero: detonatable at any time
-set g_balance_minelayer_time 0.5
-set g_balance_minelayer_remote_damage 45
-set g_balance_minelayer_remote_edgedamage 40
-set g_balance_minelayer_remote_radius 200
-set g_balance_minelayer_remote_force 300
-set g_balance_minelayer_reload_ammo 0 //default: 15
-set g_balance_minelayer_reload_time 2
-// }}}
 // {{{ electro
 set g_balance_electro_lightning 1
 set g_balance_electro_primary_damage 100
@@ -657,77 +629,6 @@ set g_balance_hook_secondary_duration 1.5 // effect runs for three seconds
 set g_balance_hook_secondary_health 0
 set g_balance_hook_secondary_damageforcescale 0 
 // }}}
-// {{{ hlac
-set g_balance_hlac_primary_spread_min 0.01
-set g_balance_hlac_primary_spread_max 0.075
-set g_balance_hlac_primary_spread_add 0.001
-set g_balance_hlac_primary_spread_crouchmod 0.25
-
-set g_balance_hlac_primary_damage 15
-set g_balance_hlac_primary_edgedamage 10
-set g_balance_hlac_primary_force 70
-set g_balance_hlac_primary_radius 40
-set g_balance_hlac_primary_speed 9000
-set g_balance_hlac_primary_lifetime 5
-
-set g_balance_hlac_primary_refire 0.1
-set g_balance_hlac_primary_animtime 0.2
-set g_balance_hlac_primary_ammo 1
-
-set g_balance_hlac_secondary 1
-set g_balance_hlac_secondary_spread 0.15
-set g_balance_hlac_secondary_spread_crouchmod 0.5
-
-set g_balance_hlac_secondary_damage 20
-set g_balance_hlac_secondary_edgedamage 13
-set g_balance_hlac_secondary_force 100
-set g_balance_hlac_secondary_radius 45
-set g_balance_hlac_secondary_speed 9000
-set g_balance_hlac_secondary_lifetime 5
-
-set g_balance_hlac_secondary_refire 0.8
-set g_balance_hlac_secondary_animtime 0.4
-set g_balance_hlac_secondary_ammo 4
-set g_balance_hlac_secondary_shots 6
-
-set g_balance_hlac_reload_ammo 0 //default: 20
-set g_balance_hlac_reload_time 2
-// }}}
-// {{{ rifle
-set g_balance_rifle_bursttime 0
-set g_balance_rifle_primary_tracer 1
-set g_balance_rifle_primary_shots 1
-set g_balance_rifle_primary_damage 60
-set g_balance_rifle_primary_headshotaddeddamage 60
-set g_balance_rifle_primary_spread 0
-set g_balance_rifle_primary_force 2
-set g_balance_rifle_primary_speed 40000
-set g_balance_rifle_primary_lifetime 5
-set g_balance_rifle_primary_refire 1.5
-set g_balance_rifle_primary_animtime 1.4
-set g_balance_rifle_primary_ammo 10
-set g_balance_rifle_primary_bulletconstant 110 // 62.2qu
-set g_balance_rifle_primary_burstcost 0
-set g_balance_rifle_primary_bullethail 0 // empty magazine on shot
-set g_balance_rifle_secondary 1
-set g_balance_rifle_secondary_reload 1
-set g_balance_rifle_secondary_tracer 0
-set g_balance_rifle_secondary_shots 1
-set g_balance_rifle_secondary_damage 42
-set g_balance_rifle_secondary_headshotaddeddamage 42
-set g_balance_rifle_secondary_spread 0
-set g_balance_rifle_secondary_force 2
-set g_balance_rifle_secondary_speed 20000
-set g_balance_rifle_secondary_lifetime 5
-set g_balance_rifle_secondary_refire 1.5
-set g_balance_rifle_secondary_animtime 1.4
-set g_balance_rifle_secondary_ammo 10
-set g_balance_rifle_secondary_bulletconstant 110 // 15.5qu
-set g_balance_rifle_secondary_burstcost 0
-set g_balance_rifle_secondary_bullethail 0 // empty magazine on shot
-set g_balance_rifle_reload_ammo 80 //default: 80
-set g_balance_rifle_reload_time 2
-// }}}
 // {{{ tuba
 set g_balance_tuba_refire 0.05
 set g_balance_tuba_animtime 0.05
@@ -776,57 +677,3 @@ set g_balance_fireball_secondary_speed_up 100
 set g_balance_fireball_secondary_speed_z 0
 set g_balance_fireball_secondary_spread 0
 // }}}
-// {{{ seeker
-set g_balance_seeker_type 0 // 0 = old seeker, 1 = new seeker. THIS IS A TEMPORARY CVAR FOR TESTING, will be removed later.
-set g_balance_seeker_flac_ammo 0.5
-set g_balance_seeker_flac_animtime 0.1
-set g_balance_seeker_flac_damage 15
-set g_balance_seeker_flac_edgedamage 10
-set g_balance_seeker_flac_force 50
-set g_balance_seeker_flac_lifetime 0.1
-set g_balance_seeker_flac_lifetime_rand 0.05
-set g_balance_seeker_flac_radius 100
-set g_balance_seeker_flac_refire 0.1
-set g_balance_seeker_flac_speed 3000
-set g_balance_seeker_flac_speed_up 1000
-set g_balance_seeker_flac_speed_z 0
-set g_balance_seeker_flac_spread 0.4
-set g_balance_seeker_missile_accel 1400
-set g_balance_seeker_missile_ammo 2
-set g_balance_seeker_missile_animtime 0.2
-set g_balance_seeker_missile_count 3 // LOG: 8 -> 3
-set g_balance_seeker_missile_damage 30 // LOG: 15 -> 30
-set g_balance_seeker_missile_damageforcescale 4
-set g_balance_seeker_missile_decel 1400
-set g_balance_seeker_missile_delay 0.25
-set g_balance_seeker_missile_edgedamage 10
-set g_balance_seeker_missile_force 150 // LOG: 100 -> 150
-set g_balance_seeker_missile_health 5
-set g_balance_seeker_missile_lifetime 15
-set g_balance_seeker_missile_proxy 0
-set g_balance_seeker_missile_proxy_delay 0.2
-set g_balance_seeker_missile_proxy_maxrange 45
-set g_balance_seeker_missile_radius 80
-set g_balance_seeker_missile_refire 0.5
-set g_balance_seeker_missile_smart 1
-set g_balance_seeker_missile_smart_mindist 800
-set g_balance_seeker_missile_smart_trace_max 2500
-set g_balance_seeker_missile_smart_trace_min 1000
-set g_balance_seeker_missile_speed 700
-set g_balance_seeker_missile_speed_up 300
-set g_balance_seeker_missile_speed_z 0
-set g_balance_seeker_missile_speed_max 1300 // LOG: 1400 -> 1300
-set g_balance_seeker_missile_spread 0
-set g_balance_seeker_missile_turnrate 0.65
-set g_balance_seeker_tag_ammo 1
-set g_balance_seeker_tag_animtime 0.2
-set g_balance_seeker_tag_damageforcescale 4
-set g_balance_seeker_tag_health 5
-set g_balance_seeker_tag_lifetime 15
-set g_balance_seeker_tag_refire 0.75 // LOG: 0.7 -> 0.75
-set g_balance_seeker_tag_speed 5000
-set g_balance_seeker_tag_spread 0
-set g_balance_seeker_tag_tracker_lifetime 10
-set g_balance_seeker_reload_ammo 0 //default: 15
-set g_balance_seeker_reload_time 2
-// End new seeker
index 574af5b2fc9f6ff611725dc5483f4eadf5b67b2f..759551d8d2357a4a2e53f7f1125d229659802fe7 100644 (file)
@@ -1,9 +1,10 @@
+g_mod_balance XPM
+
 // {{{ starting gear
 set g_start_weapon_laser -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_shotgun -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_uzi -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_grenadelauncher -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_minelayer -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_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"
@@ -12,11 +13,8 @@ set g_start_weapon_rocketlauncher -1 "0 = never provide the weapon, 1 = always p
 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 -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_rifle -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"
 set g_balance_health_start 100
 set g_balance_armor_start 0
 set g_start_ammo_shells 15
@@ -73,28 +71,28 @@ set g_pickup_fuel_jetpack 100
 set g_pickup_fuel_max 100
 set g_pickup_armorsmall 5
 set g_pickup_armorsmall_max 200
-set g_pickup_armorsmall_anyway 1
+set g_pickup_armorsmall_anyway 0
 set g_pickup_armormedium 25
-set g_pickup_armormedium_max 200
-set g_pickup_armormedium_anyway 1
+set g_pickup_armormedium_max 100
+set g_pickup_armormedium_anyway 0
 set g_pickup_armorbig 50
-set g_pickup_armorbig_max 200
-set g_pickup_armorbig_anyway 1
+set g_pickup_armorbig_max 100
+set g_pickup_armorbig_anyway 0
 set g_pickup_armorlarge 100
 set g_pickup_armorlarge_max 200
-set g_pickup_armorlarge_anyway 1
+set g_pickup_armorlarge_anyway 0
 set g_pickup_healthsmall 5
 set g_pickup_healthsmall_max 200
-set g_pickup_healthsmall_anyway 1
+set g_pickup_healthsmall_anyway 0
 set g_pickup_healthmedium 25
-set g_pickup_healthmedium_max 200
-set g_pickup_healthmedium_anyway 1
+set g_pickup_healthmedium_max 100
+set g_pickup_healthmedium_anyway 0
 set g_pickup_healthlarge 50
-set g_pickup_healthlarge_max 200
-set g_pickup_healthlarge_anyway 1
+set g_pickup_healthlarge_max 100
+set g_pickup_healthlarge_anyway 0
 set g_pickup_healthmega 100
 set g_pickup_healthmega_max 200
-set g_pickup_healthmega_anyway 1
+set g_pickup_healthmega_anyway 0
 set g_pickup_respawntime_short 15
 set g_pickup_respawntime_medium 20
 set g_pickup_respawntime_long 30
@@ -116,7 +114,7 @@ set g_balance_health_regen 0.08
 set g_balance_health_regenlinear 0.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_rot 0.03
 set g_balance_health_rotlinear 0.75
 set g_balance_pause_health_rot 1
 set g_balance_pause_health_rot_spawn 5
@@ -125,7 +123,7 @@ set g_balance_health_rotstable 100
 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_rot 0.03
 set g_balance_armor_rotlinear 0.75
 set g_balance_pause_armor_rot 1
 set g_balance_pause_armor_rot_spawn 5
@@ -147,7 +145,7 @@ set g_balance_fuel_limit 999
 
 // {{{ misc
 set g_balance_selfdamagepercent 0.65
-set g_balance_weaponswitchdelay 0.15
+set g_balance_weaponswitchdelay 0.2
 set g_weaponspeedfactor 1 "weapon projectile speed multiplier"
 set g_weaponratefactor 1 "weapon fire rate multiplier"
 set g_weapondamagefactor 1 "weapon damage multiplier"
@@ -160,17 +158,16 @@ set g_throughfloor_force 0.75
 set g_projectiles_damage 1
 // possible values:
 // -2: absolutely no damage to projectiles (no exceptions)
-// -1: no damage other than the exceptions (electro combo, hagar join explode, minelayer mines)
+// -1: no damage other than the exceptions (electro combo, hagar join explode, ML mines)
 // 0: only damage from contents (lava/slime) or exceptions 
 // 1: only self damage or damage from contents or exceptions
 // 2: allow all damage to projectiles normally
+set g_projectiles_keep_owner 0
 set g_projectiles_newton_style 0
 // possible values:
 // 0: absolute velocity projectiles (like Quake)
 // 1: relative velocity projectiles, "Newtonian" (like Tribes 2)
 // 2: relative velocity projectiles, but aim is precorrected so projectiles hit the crosshair (note: strafe rockets then are SLOWER than ones shot while standing, happens in 1 too when aiming correctly which is hard)
-// 3: absolute velocity + player velocity component in shot direction (note: does NOT yield the right relative velocity, but may be good enough, but it is somewhat prone to sniper rockets)
-// 4: just add the player velocity length to the absolute velocity (tZork's sniper rockets)
 set g_projectiles_newton_style_2_minfactor 0.8
 set g_projectiles_newton_style_2_maxfactor 1.5
 set g_projectiles_spread_style 7
@@ -238,7 +235,7 @@ set g_balance_laser_primary_radius 70
 set g_balance_laser_primary_speed 6000
 set g_balance_laser_primary_spread 0
 set g_balance_laser_primary_refire 0.7
-set g_balance_laser_primary_animtime 0.3
+set g_balance_laser_primary_animtime 0.2
 set g_balance_laser_primary_lifetime 5
 set g_balance_laser_primary_shotangle 0
 set g_balance_laser_primary_delay 0
@@ -254,7 +251,7 @@ set g_balance_laser_secondary_radius 70
 set g_balance_laser_secondary_speed 12000
 set g_balance_laser_secondary_spread 0
 set g_balance_laser_secondary_refire 0.7
-set g_balance_laser_secondary_animtime 0.3
+set g_balance_laser_secondary_animtime 0.2
 set g_balance_laser_secondary_lifetime 5
 set g_balance_laser_secondary_shotangle -90
 set g_balance_laser_secondary_delay 0
@@ -372,31 +369,6 @@ set g_balance_grenadelauncher_bouncestop 0.075
 set g_balance_grenadelauncher_reload_ammo 0 //default: 12
 set g_balance_grenadelauncher_reload_time 2
 // }}}
-// {{{ minelayer
-set g_balance_minelayer_damage 40
-set g_balance_minelayer_edgedamage 20
-set g_balance_minelayer_force 250
-set g_balance_minelayer_radius 175
-set g_balance_minelayer_proximityradius 150
-set g_balance_minelayer_speed 1000
-set g_balance_minelayer_lifetime 10
-set g_balance_minelayer_lifetime_countdown 0.5
-set g_balance_minelayer_refire 1.5
-set g_balance_minelayer_animtime 0.4
-set g_balance_minelayer_ammo 4
-set g_balance_minelayer_health 15
-set g_balance_minelayer_limit 3 // 0 disables the limit
-set g_balance_minelayer_protection 0 // don't explode if the mine would hurt the owner or a team mate
-set g_balance_minelayer_damageforcescale 0
-set g_balance_minelayer_detonatedelay -1 // positive: timer till detonation is allowed, negative: "security device" that prevents ANY remote detonation if it could hurt its owner, zero: detonatable at any time
-set g_balance_minelayer_time 0.5
-set g_balance_minelayer_remote_damage 45
-set g_balance_minelayer_remote_edgedamage 40
-set g_balance_minelayer_remote_radius 200
-set g_balance_minelayer_remote_force 300
-set g_balance_minelayer_reload_ammo 0 //default: 15
-set g_balance_minelayer_reload_time 2
-// }}}
 // {{{ electro
 set g_balance_electro_lightning 0
 set g_balance_electro_primary_damage 40
@@ -404,12 +376,12 @@ set g_balance_electro_primary_edgedamage 20
 set g_balance_electro_primary_force 200
 set g_balance_electro_primary_force_up 0
 set g_balance_electro_primary_radius 100
-set g_balance_electro_primary_comboradius 150
+set g_balance_electro_primary_comboradius 200
 set g_balance_electro_primary_speed 2500
 set g_balance_electro_primary_spread 0
 set g_balance_electro_primary_lifetime 5
 set g_balance_electro_primary_refire 0.6
-set g_balance_electro_primary_animtime 0.1
+set g_balance_electro_primary_animtime 0.3
 set g_balance_electro_primary_ammo 4
 set g_balance_electro_primary_range 0
 set g_balance_electro_primary_falloff_mindist 255 // 0.3 * radius
@@ -419,10 +391,10 @@ set g_balance_electro_secondary_damage 40
 set g_balance_electro_secondary_edgedamage 20
 set g_balance_electro_secondary_force 50
 set g_balance_electro_secondary_radius 150
-set g_balance_electro_secondary_speed 900
+set g_balance_electro_secondary_speed 1000
 set g_balance_electro_secondary_speed_up 200
 set g_balance_electro_secondary_speed_z 0
-set g_balance_electro_secondary_spread 0.05
+set g_balance_electro_secondary_spread 0.04
 set g_balance_electro_secondary_lifetime 3
 set g_balance_electro_secondary_refire 0.2
 set g_balance_electro_secondary_refire2 1.5
@@ -432,22 +404,22 @@ set g_balance_electro_secondary_health 5
 set g_balance_electro_secondary_damageforcescale 4
 set g_balance_electro_secondary_damagedbycontents 1
 set g_balance_electro_secondary_count 3
-set g_balance_electro_secondary_bouncefactor 0.4
+set g_balance_electro_secondary_bouncefactor 0.3
 set g_balance_electro_secondary_bouncestop 0.05
 set g_balance_electro_combo_damage 50
 set g_balance_electro_combo_edgedamage 25
 set g_balance_electro_combo_force 120
 set g_balance_electro_combo_radius 175
-set g_balance_electro_combo_comboradius 275
+set g_balance_electro_combo_comboradius 300
 set g_balance_electro_combo_speed 2000
-set g_balance_electro_combo_safeammocheck 0
+set g_balance_electro_combo_safeammocheck 1
 set g_balance_electro_reload_ammo 0 //default: 20
 set g_balance_electro_reload_time 2
 // }}}
 // {{{ crylink 
-set g_balance_crylink_primary_damage 10
-set g_balance_crylink_primary_edgedamage 5
-set g_balance_crylink_primary_force -55
+set g_balance_crylink_primary_damage 12
+set g_balance_crylink_primary_edgedamage 6
+set g_balance_crylink_primary_force -60
 set g_balance_crylink_primary_radius 80
 set g_balance_crylink_primary_speed 2000
 set g_balance_crylink_primary_spread 0.08
@@ -507,7 +479,7 @@ set g_balance_crylink_reload_time 2
 set g_balance_nex_primary_damage 90
 set g_balance_nex_primary_force 400
 set g_balance_nex_primary_refire 1.5
-set g_balance_nex_primary_animtime 0.45
+set g_balance_nex_primary_animtime 0.4
 set g_balance_nex_primary_ammo 6
 set g_balance_nex_primary_damagefalloff_mindist 0 // 1000    For tZork ;3
 set g_balance_nex_primary_damagefalloff_maxdist 0 // 3000
@@ -605,7 +577,7 @@ set g_balance_rocketlauncher_speedaccel 1300
 set g_balance_rocketlauncher_speedstart 1000
 set g_balance_rocketlauncher_lifetime 10
 set g_balance_rocketlauncher_refire 1.1
-set g_balance_rocketlauncher_animtime 0.35
+set g_balance_rocketlauncher_animtime 0.4
 set g_balance_rocketlauncher_ammo 4
 set g_balance_rocketlauncher_health 30 // 30 // 5 hitpoints above maximum laser value -- this way lasers can't blow it up, but grenadelauncher still can most the time.
 set g_balance_rocketlauncher_damageforcescale 1 // low damage force scale so that it can still be affected by other hits, but not so much that it does a 90 degree turn
@@ -627,7 +599,7 @@ set g_balance_porto_primary_refire 1.5
 set g_balance_porto_primary_animtime 0.3
 set g_balance_porto_primary_speed 1000
 set g_balance_porto_primary_lifetime 5
-set g_balance_porto_secondary 0
+set g_balance_porto_secondary 1
 set g_balance_porto_secondary_refire 1.5
 set g_balance_porto_secondary_animtime 0.3
 set g_balance_porto_secondary_speed 1000
@@ -657,77 +629,6 @@ set g_balance_hook_secondary_duration 1.5 // effect runs for three seconds
 set g_balance_hook_secondary_health 15
 set g_balance_hook_secondary_damageforcescale 0 
 // }}}
-// {{{ hlac // TO BE REMOVED
-set g_balance_hlac_primary_spread_min 0.01
-set g_balance_hlac_primary_spread_max 0.25
-set g_balance_hlac_primary_spread_add 0.0045
-set g_balance_hlac_primary_spread_crouchmod 0.25
-
-set g_balance_hlac_primary_damage 18
-set g_balance_hlac_primary_edgedamage 9
-set g_balance_hlac_primary_force 90
-set g_balance_hlac_primary_radius 70
-set g_balance_hlac_primary_speed 9000
-set g_balance_hlac_primary_lifetime 5
-
-set g_balance_hlac_primary_refire 0.15
-set g_balance_hlac_primary_animtime 0.4
-set g_balance_hlac_primary_ammo 1
-
-set g_balance_hlac_secondary 1
-set g_balance_hlac_secondary_spread 0.15
-set g_balance_hlac_secondary_spread_crouchmod 0.5
-
-set g_balance_hlac_secondary_damage 15
-set g_balance_hlac_secondary_edgedamage 7.5
-set g_balance_hlac_secondary_force 90
-set g_balance_hlac_secondary_radius 70
-set g_balance_hlac_secondary_speed 9000
-set g_balance_hlac_secondary_lifetime 5
-
-set g_balance_hlac_secondary_refire 1
-set g_balance_hlac_secondary_animtime 0.3
-set g_balance_hlac_secondary_ammo 10
-set g_balance_hlac_secondary_shots 6
-
-set g_balance_hlac_reload_ammo 0 //default: 20
-set g_balance_hlac_reload_time 2
-// }}}
-// {{{ rifle
-set g_balance_rifle_bursttime 0
-set g_balance_rifle_primary_tracer 1
-set g_balance_rifle_primary_shots 1
-set g_balance_rifle_primary_damage 40
-set g_balance_rifle_primary_headshotaddeddamage 40
-set g_balance_rifle_primary_spread 0
-set g_balance_rifle_primary_force 100
-set g_balance_rifle_primary_speed 40000
-set g_balance_rifle_primary_lifetime 5
-set g_balance_rifle_primary_refire 1.2
-set g_balance_rifle_primary_animtime 0.4
-set g_balance_rifle_primary_ammo 10
-set g_balance_rifle_primary_bulletconstant 110 // 62.2qu
-set g_balance_rifle_primary_burstcost 0
-set g_balance_rifle_primary_bullethail 0 // empty magazine on shot
-set g_balance_rifle_secondary 1
-set g_balance_rifle_secondary_reload 0
-set g_balance_rifle_secondary_tracer 0
-set g_balance_rifle_secondary_shots 4
-set g_balance_rifle_secondary_damage 10
-set g_balance_rifle_secondary_headshotaddeddamage 20
-set g_balance_rifle_secondary_spread 0.04
-set g_balance_rifle_secondary_force 50
-set g_balance_rifle_secondary_speed 20000
-set g_balance_rifle_secondary_lifetime 5
-set g_balance_rifle_secondary_refire 0.9
-set g_balance_rifle_secondary_animtime 0.3
-set g_balance_rifle_secondary_ammo 10
-set g_balance_rifle_secondary_bulletconstant 110 // 15.5qu
-set g_balance_rifle_secondary_burstcost 0
-set g_balance_rifle_secondary_bullethail 0 // empty magazine on shot
-set g_balance_rifle_reload_ammo 80 //default: 80
-set g_balance_rifle_reload_time 2
-// }}}
 // {{{ tuba
 set g_balance_tuba_refire 0.05
 set g_balance_tuba_animtime 0.05
@@ -741,7 +642,7 @@ set g_balance_tuba_force 40
 set g_balance_tuba_pitchstep 6
 // }}}
 // {{{ fireball // this is a superweapon -- lets make it behave as one. 
-set g_balance_fireball_primary_animtime 0.2
+set g_balance_fireball_primary_animtime 0.4
 set g_balance_fireball_primary_bfgdamage 100
 set g_balance_fireball_primary_bfgforce 0
 set g_balance_fireball_primary_bfgradius 1000
@@ -776,57 +677,3 @@ set g_balance_fireball_secondary_speed_up 100
 set g_balance_fireball_secondary_speed_z 0
 set g_balance_fireball_secondary_spread 0
 // }}}
-// {{{ seeker
-set g_balance_seeker_type 1 // 0 = old seeker, 1 = new seeker. THIS IS A TEMPORARY CVAR FOR TESTING, will be removed later.
-set g_balance_seeker_flac_ammo 0.5
-set g_balance_seeker_flac_animtime 0.1
-set g_balance_seeker_flac_damage 15
-set g_balance_seeker_flac_edgedamage 10
-set g_balance_seeker_flac_force 50
-set g_balance_seeker_flac_lifetime 0.1
-set g_balance_seeker_flac_lifetime_rand 0.05
-set g_balance_seeker_flac_radius 100
-set g_balance_seeker_flac_refire 0.1
-set g_balance_seeker_flac_speed 3000
-set g_balance_seeker_flac_speed_up 1000
-set g_balance_seeker_flac_speed_z 0
-set g_balance_seeker_flac_spread 0.4
-set g_balance_seeker_tag_ammo 1
-set g_balance_seeker_tag_animtime 0.2
-set g_balance_seeker_tag_damageforcescale 0
-set g_balance_seeker_tag_health 0
-set g_balance_seeker_tag_lifetime 15
-set g_balance_seeker_tag_refire 0.75 // LOG: 0.7 -> 0.75
-set g_balance_seeker_tag_speed 5000
-set g_balance_seeker_tag_spread 0
-set g_balance_seeker_tag_tracker_lifetime 10
-set g_balance_seeker_missile_accel 1500
-set g_balance_seeker_missile_ammo 2
-set g_balance_seeker_missile_animtime 0.2
-set g_balance_seeker_missile_count 3 // LOG: 8 -> 3
-set g_balance_seeker_missile_damage 16 // LOG: 15 -> 30
-set g_balance_seeker_missile_damageforcescale 4
-set g_balance_seeker_missile_decel 6000
-set g_balance_seeker_missile_delay 0.25
-set g_balance_seeker_missile_edgedamage 8
-set g_balance_seeker_missile_force 50 // LOG: 100 -> 150
-set g_balance_seeker_missile_health 1
-set g_balance_seeker_missile_lifetime 15
-set g_balance_seeker_missile_proxy 0
-set g_balance_seeker_missile_proxy_delay 0.2
-set g_balance_seeker_missile_proxy_maxrange 45
-set g_balance_seeker_missile_radius 70
-set g_balance_seeker_missile_refire 0.25
-set g_balance_seeker_missile_smart 0
-set g_balance_seeker_missile_smart_mindist 800
-set g_balance_seeker_missile_smart_trace_max 2500
-set g_balance_seeker_missile_smart_trace_min 1000
-set g_balance_seeker_missile_speed 1500
-set g_balance_seeker_missile_speed_up 0
-set g_balance_seeker_missile_speed_z 0
-set g_balance_seeker_missile_speed_max 2000 // LOG: 1400 -> 1300
-set g_balance_seeker_missile_spread 0
-set g_balance_seeker_missile_turnrate 0.15
-set g_balance_seeker_reload_ammo 0 //default: 15
-set g_balance_seeker_reload_time 2
-// End new seeker
index c411b883db431bf31f0c2e701fcff2bd8c0be7b4..52c8a74d84cecfe381db5adbb156bc778f7da233 100644 (file)
@@ -1,22 +1,20 @@
+g_mod_balance Xonotic
+
 // {{{ starting gear
-set g_start_weapon_laser -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_shotgun -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_uzi -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_grenadelauncher -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_minelayer -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_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 -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 -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_rifle -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"
+set g_start_weapon_laser -1 "0 = never provide the weapon, 1 = always provide the weapon, -1 = game mode default"
+set g_start_weapon_shotgun -1 "0 = never provide the weapon, 1 = always provide the weapon, -1 = game mode default"
+set g_start_weapon_uzi -1 "0 = never provide the weapon, 1 = always provide the weapon, -1 = game mode default"
+set g_start_weapon_grenadelauncher -1 "0 = never provide the weapon, 1 = always provide the weapon, -1 = game mode default"
+set g_start_weapon_electro -1 "0 = never provide the weapon, 1 = always provide the weapon, -1 = game mode default"
+set g_start_weapon_crylink -1 "0 = never provide the weapon, 1 = always provide the weapon, -1 = game mode default"
+set g_start_weapon_nex -1 "0 = never provide the weapon, 1 = always provide the weapon, -1 = game mode default"
+set g_start_weapon_hagar -1 "0 = never provide the weapon, 1 = always provide the weapon, -1 = game mode default" // 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"
+set g_start_weapon_minstanex -1 "0 = never provide the weapon, 1 = always provide the weapon, -1 = game mode default"
+set g_start_weapon_porto -1 "0 = never provide the weapon, 1 = always provide the weapon, -1 = game mode default"
+set g_start_weapon_hook -1 "0 = never provide the weapon, 1 = always provide the weapon, -1 = game mode default"
+set g_start_weapon_tuba -1 "0 = never provide the weapon, 1 = always provide the weapon, -1 = game mode default"
+set g_start_weapon_fireball -1 "0 = never provide the weapon, 1 = always provide the weapon, -1 = game mode default"
 set g_balance_health_start 100
 set g_balance_armor_start 0
 set g_start_ammo_shells 15
@@ -147,7 +145,7 @@ set g_balance_fuel_limit 999
 
 // {{{ misc
 set g_balance_selfdamagepercent 0.65
-set g_balance_weaponswitchdelay 0.15
+set g_balance_weaponswitchdelay 0.2
 set g_weaponspeedfactor 1 "weapon projectile speed multiplier"
 set g_weaponratefactor 1 "weapon fire rate multiplier"
 set g_weapondamagefactor 1 "weapon damage multiplier"
@@ -160,17 +158,16 @@ set g_throughfloor_force 0.75
 set g_projectiles_damage 2
 // possible values:
 // -2: absolutely no damage to projectiles (no exceptions)
-// -1: no damage other than the exceptions (electro combo, hagar join explode, minelayer mines)
+// -1: no damage other than the exceptions (electro combo, hagar join explode, ML mines)
 // 0: only damage from contents (lava/slime) or exceptions 
 // 1: only self damage or damage from contents or exceptions
 // 2: allow all damage to projectiles normally
+set g_projectiles_keep_owner 0
 set g_projectiles_newton_style 2
 // possible values:
 // 0: absolute velocity projectiles (like Quake)
 // 1: relative velocity projectiles, "Newtonian" (like Tribes 2)
 // 2: relative velocity projectiles, but aim is precorrected so projectiles hit the crosshair (note: strafe rockets then are SLOWER than ones shot while standing, happens in 1 too when aiming correctly which is hard)
-// 3: absolute velocity + player velocity component in shot direction (note: does NOT yield the right relative velocity, but may be good enough, but it is somewhat prone to sniper rockets)
-// 4: just add the player velocity length to the absolute velocity (tZork's sniper rockets)
 set g_projectiles_newton_style_2_minfactor 0.8
 set g_projectiles_newton_style_2_maxfactor 1.5
 set g_projectiles_spread_style 7
@@ -238,7 +235,7 @@ set g_balance_laser_primary_radius 70
 set g_balance_laser_primary_speed 6000
 set g_balance_laser_primary_spread 0
 set g_balance_laser_primary_refire 0.7
-set g_balance_laser_primary_animtime 0.3
+set g_balance_laser_primary_animtime 0.2
 set g_balance_laser_primary_lifetime 5
 set g_balance_laser_primary_shotangle 0
 set g_balance_laser_primary_delay 0
@@ -254,7 +251,7 @@ set g_balance_laser_secondary_radius 70
 set g_balance_laser_secondary_speed 12000
 set g_balance_laser_secondary_spread 0
 set g_balance_laser_secondary_refire 0.7
-set g_balance_laser_secondary_animtime 0.3
+set g_balance_laser_secondary_animtime 0.2
 set g_balance_laser_secondary_lifetime 5
 set g_balance_laser_secondary_shotangle -90
 set g_balance_laser_secondary_delay 0
@@ -372,31 +369,6 @@ set g_balance_grenadelauncher_bouncestop 0.075
 set g_balance_grenadelauncher_reload_ammo 0 //default: 12
 set g_balance_grenadelauncher_reload_time 2
 // }}}
-// {{{ minelayer
-set g_balance_minelayer_damage 40
-set g_balance_minelayer_edgedamage 20
-set g_balance_minelayer_force 250
-set g_balance_minelayer_radius 175
-set g_balance_minelayer_proximityradius 150
-set g_balance_minelayer_speed 1000
-set g_balance_minelayer_lifetime 10
-set g_balance_minelayer_lifetime_countdown 0.5
-set g_balance_minelayer_refire 1.5
-set g_balance_minelayer_animtime 0.4
-set g_balance_minelayer_ammo 4
-set g_balance_minelayer_health 15
-set g_balance_minelayer_limit 3 // 0 disables the limit
-set g_balance_minelayer_protection 0 // don't explode if the mine would hurt the owner or a team mate
-set g_balance_minelayer_damageforcescale 0
-set g_balance_minelayer_detonatedelay -1 // positive: timer till detonation is allowed, negative: "security device" that prevents ANY remote detonation if it could hurt its owner, zero: detonatable at any time
-set g_balance_minelayer_time 0.5
-set g_balance_minelayer_remote_damage 45
-set g_balance_minelayer_remote_edgedamage 40
-set g_balance_minelayer_remote_radius 200
-set g_balance_minelayer_remote_force 300
-set g_balance_minelayer_reload_ammo 0 //default: 15
-set g_balance_minelayer_reload_time 2
-// }}}
 // {{{ electro
 set g_balance_electro_lightning 0
 set g_balance_electro_primary_damage 40
@@ -404,12 +376,12 @@ set g_balance_electro_primary_edgedamage 20
 set g_balance_electro_primary_force 200
 set g_balance_electro_primary_force_up 0
 set g_balance_electro_primary_radius 100
-set g_balance_electro_primary_comboradius 150
+set g_balance_electro_primary_comboradius 200
 set g_balance_electro_primary_speed 2500
 set g_balance_electro_primary_spread 0
 set g_balance_electro_primary_lifetime 5
 set g_balance_electro_primary_refire 0.6
-set g_balance_electro_primary_animtime 0.1
+set g_balance_electro_primary_animtime 0.3
 set g_balance_electro_primary_ammo 4
 set g_balance_electro_primary_range 0
 set g_balance_electro_primary_falloff_mindist 255 // 0.3 * radius
@@ -419,10 +391,10 @@ set g_balance_electro_secondary_damage 40
 set g_balance_electro_secondary_edgedamage 20
 set g_balance_electro_secondary_force 50
 set g_balance_electro_secondary_radius 150
-set g_balance_electro_secondary_speed 900
+set g_balance_electro_secondary_speed 1000
 set g_balance_electro_secondary_speed_up 200
 set g_balance_electro_secondary_speed_z 0
-set g_balance_electro_secondary_spread 0.05
+set g_balance_electro_secondary_spread 0.04
 set g_balance_electro_secondary_lifetime 3
 set g_balance_electro_secondary_refire 0.2
 set g_balance_electro_secondary_refire2 1.5
@@ -432,22 +404,22 @@ set g_balance_electro_secondary_health 5
 set g_balance_electro_secondary_damageforcescale 4
 set g_balance_electro_secondary_damagedbycontents 1
 set g_balance_electro_secondary_count 3
-set g_balance_electro_secondary_bouncefactor 0.4
+set g_balance_electro_secondary_bouncefactor 0.3
 set g_balance_electro_secondary_bouncestop 0.05
 set g_balance_electro_combo_damage 50
 set g_balance_electro_combo_edgedamage 25
 set g_balance_electro_combo_force 120
 set g_balance_electro_combo_radius 175
-set g_balance_electro_combo_comboradius 275
+set g_balance_electro_combo_comboradius 300
 set g_balance_electro_combo_speed 2000
 set g_balance_electro_combo_safeammocheck 1
 set g_balance_electro_reload_ammo 0 //default: 20
 set g_balance_electro_reload_time 2
 // }}}
 // {{{ crylink 
-set g_balance_crylink_primary_damage 10
-set g_balance_crylink_primary_edgedamage 5
-set g_balance_crylink_primary_force -55
+set g_balance_crylink_primary_damage 12
+set g_balance_crylink_primary_edgedamage 6
+set g_balance_crylink_primary_force -60
 set g_balance_crylink_primary_radius 80
 set g_balance_crylink_primary_speed 2000
 set g_balance_crylink_primary_spread 0.08
@@ -507,7 +479,7 @@ set g_balance_crylink_reload_time 2
 set g_balance_nex_primary_damage 90
 set g_balance_nex_primary_force 400
 set g_balance_nex_primary_refire 1.5
-set g_balance_nex_primary_animtime 0.45
+set g_balance_nex_primary_animtime 0.4
 set g_balance_nex_primary_ammo 6
 set g_balance_nex_primary_damagefalloff_mindist 0 // 1000    For tZork ;3
 set g_balance_nex_primary_damagefalloff_maxdist 0 // 3000
@@ -577,7 +549,7 @@ set g_balance_hagar_secondary_load_spread_bias 0.5
 set g_balance_hagar_secondary_load_max 4
 set g_balance_hagar_secondary_load_hold 4
 set g_balance_hagar_secondary_load_releasedeath 0
-set g_balance_hagar_secondary_load_abort 1
+set g_balance_hagar_secondary_load_abort 0
 set g_balance_hagar_secondary_load_linkexplode 0
 set g_balance_hagar_secondary_load_animtime 0.2
 set g_balance_hagar_secondary_damage 40
@@ -605,7 +577,7 @@ set g_balance_rocketlauncher_speedaccel 1300
 set g_balance_rocketlauncher_speedstart 1000
 set g_balance_rocketlauncher_lifetime 10
 set g_balance_rocketlauncher_refire 1.1
-set g_balance_rocketlauncher_animtime 0.35
+set g_balance_rocketlauncher_animtime 0.4
 set g_balance_rocketlauncher_ammo 4
 set g_balance_rocketlauncher_health 30 // 30 // 5 hitpoints above maximum laser value -- this way lasers can't blow it up, but grenadelauncher still can most the time.
 set g_balance_rocketlauncher_damageforcescale 1 // low damage force scale so that it can still be affected by other hits, but not so much that it does a 90 degree turn
@@ -657,77 +629,6 @@ set g_balance_hook_secondary_duration 1.5 // effect runs for three seconds
 set g_balance_hook_secondary_health 15
 set g_balance_hook_secondary_damageforcescale 0 
 // }}}
-// {{{ hlac // TO BE REMOVED
-set g_balance_hlac_primary_spread_min 0.01
-set g_balance_hlac_primary_spread_max 0.25
-set g_balance_hlac_primary_spread_add 0.0045
-set g_balance_hlac_primary_spread_crouchmod 0.25
-
-set g_balance_hlac_primary_damage 18
-set g_balance_hlac_primary_edgedamage 9
-set g_balance_hlac_primary_force 90
-set g_balance_hlac_primary_radius 70
-set g_balance_hlac_primary_speed 9000
-set g_balance_hlac_primary_lifetime 5
-
-set g_balance_hlac_primary_refire 0.15
-set g_balance_hlac_primary_animtime 0.4
-set g_balance_hlac_primary_ammo 1
-
-set g_balance_hlac_secondary 1
-set g_balance_hlac_secondary_spread 0.15
-set g_balance_hlac_secondary_spread_crouchmod 0.5
-
-set g_balance_hlac_secondary_damage 15
-set g_balance_hlac_secondary_edgedamage 7.5
-set g_balance_hlac_secondary_force 90
-set g_balance_hlac_secondary_radius 70
-set g_balance_hlac_secondary_speed 9000
-set g_balance_hlac_secondary_lifetime 5
-
-set g_balance_hlac_secondary_refire 1
-set g_balance_hlac_secondary_animtime 0.3
-set g_balance_hlac_secondary_ammo 10
-set g_balance_hlac_secondary_shots 6
-
-set g_balance_hlac_reload_ammo 0 //default: 20
-set g_balance_hlac_reload_time 2
-// }}}
-// {{{ rifle
-set g_balance_rifle_bursttime 0
-set g_balance_rifle_primary_tracer 1
-set g_balance_rifle_primary_shots 1
-set g_balance_rifle_primary_damage 40
-set g_balance_rifle_primary_headshotaddeddamage 40
-set g_balance_rifle_primary_spread 0
-set g_balance_rifle_primary_force 100
-set g_balance_rifle_primary_speed 40000
-set g_balance_rifle_primary_lifetime 5
-set g_balance_rifle_primary_refire 1.2
-set g_balance_rifle_primary_animtime 0.4
-set g_balance_rifle_primary_ammo 10
-set g_balance_rifle_primary_bulletconstant 110 // 62.2qu
-set g_balance_rifle_primary_burstcost 0
-set g_balance_rifle_primary_bullethail 0 // empty magazine on shot
-set g_balance_rifle_secondary 1
-set g_balance_rifle_secondary_reload 0
-set g_balance_rifle_secondary_tracer 0
-set g_balance_rifle_secondary_shots 4
-set g_balance_rifle_secondary_damage 10
-set g_balance_rifle_secondary_headshotaddeddamage 20
-set g_balance_rifle_secondary_spread 0.04
-set g_balance_rifle_secondary_force 50
-set g_balance_rifle_secondary_speed 20000
-set g_balance_rifle_secondary_lifetime 5
-set g_balance_rifle_secondary_refire 0.9
-set g_balance_rifle_secondary_animtime 0.3
-set g_balance_rifle_secondary_ammo 10
-set g_balance_rifle_secondary_bulletconstant 110 // 15.5qu
-set g_balance_rifle_secondary_burstcost 0
-set g_balance_rifle_secondary_bullethail 0 // empty magazine on shot
-set g_balance_rifle_reload_ammo 80 //default: 80
-set g_balance_rifle_reload_time 2
-// }}}
 // {{{ tuba
 set g_balance_tuba_refire 0.05
 set g_balance_tuba_animtime 0.05
@@ -776,57 +677,3 @@ set g_balance_fireball_secondary_speed_up 100
 set g_balance_fireball_secondary_speed_z 0
 set g_balance_fireball_secondary_spread 0
 // }}}
-// {{{ seeker
-set g_balance_seeker_type 1 // 0 = old seeker, 1 = new seeker. THIS IS A TEMPORARY CVAR FOR TESTING, will be removed later.
-set g_balance_seeker_flac_ammo 0.5
-set g_balance_seeker_flac_animtime 0.1
-set g_balance_seeker_flac_damage 15
-set g_balance_seeker_flac_edgedamage 10
-set g_balance_seeker_flac_force 50
-set g_balance_seeker_flac_lifetime 0.1
-set g_balance_seeker_flac_lifetime_rand 0.05
-set g_balance_seeker_flac_radius 100
-set g_balance_seeker_flac_refire 0.1
-set g_balance_seeker_flac_speed 3000
-set g_balance_seeker_flac_speed_up 1000
-set g_balance_seeker_flac_speed_z 0
-set g_balance_seeker_flac_spread 0.4
-set g_balance_seeker_tag_ammo 1
-set g_balance_seeker_tag_animtime 0.2
-set g_balance_seeker_tag_damageforcescale 0
-set g_balance_seeker_tag_health 0
-set g_balance_seeker_tag_lifetime 15
-set g_balance_seeker_tag_refire 0.75 // LOG: 0.7 -> 0.75
-set g_balance_seeker_tag_speed 5000
-set g_balance_seeker_tag_spread 0
-set g_balance_seeker_tag_tracker_lifetime 10
-set g_balance_seeker_missile_accel 1500
-set g_balance_seeker_missile_ammo 2
-set g_balance_seeker_missile_animtime 0.2
-set g_balance_seeker_missile_count 3 // LOG: 8 -> 3
-set g_balance_seeker_missile_damage 16 // LOG: 15 -> 30
-set g_balance_seeker_missile_damageforcescale 4
-set g_balance_seeker_missile_decel 6000
-set g_balance_seeker_missile_delay 0.25
-set g_balance_seeker_missile_edgedamage 8
-set g_balance_seeker_missile_force 50 // LOG: 100 -> 150
-set g_balance_seeker_missile_health 1
-set g_balance_seeker_missile_lifetime 15
-set g_balance_seeker_missile_proxy 0
-set g_balance_seeker_missile_proxy_delay 0.2
-set g_balance_seeker_missile_proxy_maxrange 45
-set g_balance_seeker_missile_radius 70
-set g_balance_seeker_missile_refire 0.25
-set g_balance_seeker_missile_smart 0
-set g_balance_seeker_missile_smart_mindist 800
-set g_balance_seeker_missile_smart_trace_max 2500
-set g_balance_seeker_missile_smart_trace_min 1000
-set g_balance_seeker_missile_speed 1500
-set g_balance_seeker_missile_speed_up 0
-set g_balance_seeker_missile_speed_z 0
-set g_balance_seeker_missile_speed_max 2000 // LOG: 1400 -> 1300
-set g_balance_seeker_missile_spread 0
-set g_balance_seeker_missile_turnrate 0.15
-set g_balance_seeker_reload_ammo 0 //default: 15
-set g_balance_seeker_reload_time 2
-// End new seeker
index 552807fdbc13df9fa734c1c34a858bd4f2d341de..94a94f8e787e9a7e58fb0e4ebd5a6c9ccb63e411 100755 (executable)
@@ -8,7 +8,7 @@ case "$1" in
        po)
                mode=po
                mail=true
-               language=
+               language=$2
                ;;
        '')
                echo "Sorry, you are not supposed to use this script."
@@ -54,22 +54,49 @@ for VM in menu csprogs; do
                                if [ x"${X#*.dat.}" != x"$language.po" ]; then
                                        continue
                                fi
+                       else
+                               if [ x"${X#*.dat.}" = x"en.po" ]; then
+                                       continue
+                               fi
                        fi
+                       msgmerge -F -U "$X" "$VM".dat.pot >&2
+                       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 2>/dev/null` + 0))
+                       nf=$((`grep -c ^#: "$X".fuzzy        2>/dev/null` + 0))
+                       n=$(($nu + $nf))
+                       changed=false
                        for Y in ~/check-translations/"$X".*; do
                                [ -f "$Y" ] || continue
+                               echo "Merging $Y..."
+                               vim -E "$Y" <<EOF
+set fileencoding=utf-8
+set nobomb
+w
+q
+EOF
+                               if ! msgcat "$Y" >/dev/null; then
+                                       echo "File $Y has syntax errors. Skipped."
+                                       continue
+                               fi
                                msgcat -F --use-first "$Y" "$X" > "$X".new
                                mv "$X".new "$X"
+                               changed=true
                        done
-                       msgmerge -F -U "$X" "$VM".dat.pot >&2
-                       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))
+                       nu0=$nu
+                       nf0=$nf
+                       if $changed; then
+                               msgmerge -F -U "$X" "$VM".dat.pot >&2
+                               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 2>/dev/null` + 0))
+                               nf=$((`grep -c ^#: "$X".fuzzy        2>/dev/null` + 0))
+                               n=$(($nu + $nf))
+                       fi
                        if [ $n -gt 0 ]; then
                                echo "TODO for translation $X:"
-                               echo "Untranslated: $nu"
-                               echo "Fuzzy:        $nf"
+                               echo "Untranslated: $nu (was: $nu0)"
+                               echo "Fuzzy:        $nf (was: $nf0)"
                                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"
@@ -114,6 +141,9 @@ 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?
 
+For reference, the current version of the translation file is at:
+http://git.xonotic.org/?p=xonotic/xonotic-data.pk3dir.git;a=blob;f=$X
+
 If you do not wish to be contacted for translation updates any more,
 please tell us in a reply to this message.
 
@@ -158,6 +188,8 @@ EOF
                                                esac
                                        done
                                fi
+                       else
+                               echo "$X is complete!"
                        fi
                done
 
index b3a9062d29a3b3b0da16f48d0b1361cdcfdbc96b..174a458347b8b76e827f4ca670412c5e29f51059 100644 (file)
@@ -52,6 +52,7 @@ alias who                  "qc_cmd_svcmd  who                  ${* ?}" // Displa
 
 // generic commands (across all programs)
 alias addtolist            "qc_cmd_svmenu addtolist            ${* ?}" // Add a string to a cvar
+alias qc_curl              "qc_cmd_svmenu curl                 ${* ?}" // curl requests
 alias dumpcommands         "qc_cmd_svmenu dumpcommands         ${* ?}" // Dump all commands on the program to *_cmd_dump.txt
 alias maplist              "qc_cmd_svmenu maplist              ${* ?}" // Automatic control of maplist
 alias nextframe            "qc_cmd_svmenu nextframe            ${* ?}" // do something next frame
index 09dabb1ae9771a8fc9b08d5eb3db0e81bd702060..92a86e464b02a80914d20aa4d43600ac02e71ead 100644 (file)
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: 0.1preview\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-12-25 22:57+0100\n"
+"POT-Creation-Date: 2012-01-26 12:24+0100\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"
@@ -16,11 +16,11 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: qcsrc/client/Main.qc:30
+#: qcsrc/client/Main.qc:8
 msgid "ERROR - MENU IS VISIBLE BUT NO MENU WAS DEFINED!"
 msgstr "FEHLER - MENÜ IST SICHTBAR ABER KEIN MENÜ WURDE DEFINIERT!"
 
-#: qcsrc/client/Main.qc:104
+#: qcsrc/client/Main.qc:83
 msgid ""
 "^3Your engine build is outdated\n"
 "^3This Server uses a newer QC VM. Please update!\n"
@@ -28,47 +28,23 @@ msgstr ""
 "^3Diese Engine ist veraltet.\n"
 "^3Dieser Server verwendet eine neuere QC VM. Bitte updaten!\n"
 
-#: qcsrc/client/Main.qc:114
+#: qcsrc/client/Main.qc:93
 #, c-format
 msgid "^4CSQC Build information: ^1%s\n"
 msgstr "^4CSQC Build-Information: ^1%s (deutsch)\n"
 
-#: qcsrc/client/Main.qc:293 qcsrc/client/Main.qc:309
+#: qcsrc/client/Main.qc:258 qcsrc/client/Main.qc:274
 #, 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:424 qcsrc/client/scoreboard.qc:241
-msgid "Usage:\n"
-msgstr "Syntax:\n"
-
-#: qcsrc/client/Main.qc:425
-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:549
-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:550
-msgid "  settemp cvar value\n"
-msgstr "  settemp Cvar Wert\n"
-
-#: qcsrc/client/Main.qc:551
-msgid "  scoreboard_columns_set ...\n"
-msgstr "  scoreboard_columns_set ...\n"
-
-#: qcsrc/client/Main.qc:552
-msgid "  scoreboard_columns_help\n"
-msgstr "  scoreboard_columns_help\n"
-
-#: qcsrc/client/Main.qc:788
+#: qcsrc/client/Main.qc:466
 #, c-format
 msgid "A CSQC entity changed its owner! (edict: %d, classname: %s)\n"
 msgstr ""
 "Ein CSQC-Entity hat seinen Besitzer gewechselt! (edict: %d, classname: %s)\n"
 
-#: qcsrc/client/Main.qc:1029
+#: qcsrc/client/Main.qc:707
 #, c-format
 msgid ""
 "A CSQC entity changed its type! (edict: %d, server: %d, type: %d -> %d)\n"
@@ -76,14 +52,14 @@ msgstr ""
 "Ein CSQC-Entity hat seinen Typ gewechselt! (edict: %d, server: %d, type: %d -"
 "> %d)\n"
 
-#: qcsrc/client/Main.qc:1038
+#: qcsrc/client/Main.qc:716
 #, c-format
 msgid ""
 "A CSQC entity appeared out of nowhere! (edict: %d, server: %d, type: %d)\n"
 msgstr ""
 "Ein CSQC-Entity kam aus dem Nichts! (edict: %d, server: %d, type: %d)\n"
 
-#: qcsrc/client/Main.qc:1080
+#: qcsrc/client/Main.qc:758
 #, c-format
 msgid ""
 "Unknown entity type in CSQC_Ent_Update (enttype: %d, edict: %d, classname: "
@@ -92,12 +68,12 @@ msgstr ""
 "Unbekannter Entity-Typ in CSQC_Ent_Update (enttype: %d, edict: %d, "
 "classname: %s)\n"
 
-#: qcsrc/client/Main.qc:1526
+#: qcsrc/client/Main.qc:1206
 #, c-format
 msgid "%s (not bound)"
 msgstr "%s (nicht zugewiesen)"
 
-#: qcsrc/client/Main.qc:1531 qcsrc/client/hud.qc:230
+#: qcsrc/client/Main.qc:1211 qcsrc/client/hud.qc:230
 #, c-format
 msgid "%s (%s)"
 msgstr "%s (%s)"
@@ -129,16 +105,6 @@ msgstr "Du hast die %s genommen!"
 msgid "You got the %s!"
 msgstr "Du hast die %s!"
 
-#: qcsrc/client/csqcmodel_hooks.qc:17
-#, c-format
-msgid "Trying to use non existing model %s. "
-msgstr "Modell %s existiert nicht! "
-
-#: qcsrc/client/csqcmodel_hooks.qc:19
-#, c-format
-msgid "Reverted to %s.\n"
-msgstr "Es wird stattdessen %s verwendet.\n"
-
 #: qcsrc/client/hud.qc:160
 msgid "1st"
 msgstr "1."
@@ -196,493 +162,493 @@ msgstr "nicht vorhanden"
 msgid "Unavailable"
 msgstr "nicht verfügbar"
 
-#: qcsrc/client/hud.qc:1534
+#: qcsrc/client/hud.qc:1625
 #, 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:1538 qcsrc/client/hud.qc:1887
+#: qcsrc/client/hud.qc:1629 qcsrc/client/hud.qc:1974
 #, c-format
 msgid "^1%s^1 died\n"
 msgstr "^1%s^1 ist gestorben\n"
 
-#: qcsrc/client/hud.qc:1542
+#: qcsrc/client/hud.qc:1633
 #, 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:1546
+#: qcsrc/client/hud.qc:1637
 #, 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:1550
+#: qcsrc/client/hud.qc:1641
 #, 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:1554
+#: qcsrc/client/hud.qc:1645
 #, 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:1558
+#: qcsrc/client/hud.qc:1649
 #, c-format
 msgid "^1%s^1 burned to death\n"
 msgstr "^1%s^1 brannte zu Tode\n"
 
-#: qcsrc/client/hud.qc:1562
+#: qcsrc/client/hud.qc:1653
 #, 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:1566
+#: qcsrc/client/hud.qc:1657
 #, 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:1583
+#: qcsrc/client/hud.qc:1670
 #, 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:1585
+#: qcsrc/client/hud.qc:1672
 #, 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:1590
+#: qcsrc/client/hud.qc:1677
 #, 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:1592
+#: qcsrc/client/hud.qc:1679
 #, 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:1596
+#: qcsrc/client/hud.qc:1683
 #, 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:1598
+#: qcsrc/client/hud.qc:1685
 #, 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:1602
+#: qcsrc/client/hud.qc:1689
 #, c-format
 msgid "^1%s^1 drew first blood\n"
 msgstr "^1%s^1 war der Erste\n"
 
-#: qcsrc/client/hud.qc:1606
+#: qcsrc/client/hud.qc:1693
 #, 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:1608
+#: qcsrc/client/hud.qc:1695
 #, 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:1613
+#: qcsrc/client/hud.qc:1700
 #, 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:1618
+#: qcsrc/client/hud.qc:1705
 #, 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:1623
+#: qcsrc/client/hud.qc:1710
 #, 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:1628
+#: qcsrc/client/hud.qc:1715
 #, 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:1633
+#: qcsrc/client/hud.qc:1720
 #, 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:1638
+#: qcsrc/client/hud.qc:1725
 #, 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:1644
+#: qcsrc/client/hud.qc:1731
 #, 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:1648
+#: qcsrc/client/hud.qc:1735
 #, 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:1652
+#: qcsrc/client/hud.qc:1739
 #, 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:1656
+#: qcsrc/client/hud.qc:1743
 #, 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:1660
+#: qcsrc/client/hud.qc:1747
 #, 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:1664
+#: qcsrc/client/hud.qc:1751
 #, 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:1668
+#: qcsrc/client/hud.qc:1755
 #, 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:1672
+#: qcsrc/client/hud.qc:1759
 #, 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:1676
+#: qcsrc/client/hud.qc:1763
 #, c-format
 msgid "^1%s^1 nailed to hell by %s\n"
 msgstr "^1%s^1 wurde von %s^1 in die Hölle geschossen\n"
 
-#: qcsrc/client/hud.qc:1680
+#: qcsrc/client/hud.qc:1767
 #, c-format
 msgid "^1%s^1 cluster crushed by %s\n"
 msgstr "^1%s^1 wurde von %s^1 total zerstört\n"
 
-#: qcsrc/client/hud.qc:1684
+#: qcsrc/client/hud.qc:1771
 #, c-format
 msgid "^1%s^1 dies when %s^1's raptor dies.\n"
 msgstr "^1%s^1 starb zusammen mit %s^1's Raptor.\n"
 
-#: qcsrc/client/hud.qc:1688
+#: qcsrc/client/hud.qc:1775
 #, 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:1692
+#: qcsrc/client/hud.qc:1779
 #, 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:1696
+#: qcsrc/client/hud.qc:1783
 #, 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:1700
+#: qcsrc/client/hud.qc:1787
 #, 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:1712
+#: qcsrc/client/hud.qc:1799
 #, 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:1717
+#: qcsrc/client/hud.qc:1804
 #, 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:1719
+#: qcsrc/client/hud.qc:1806
 #, 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:1722
+#: qcsrc/client/hud.qc:1809
 #, 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:1724
+#: qcsrc/client/hud.qc:1811
 #, 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:1727
+#: qcsrc/client/hud.qc:1814
 #, c-format
 msgid "%s^7 made a ^1TRIPLE SCORE\n"
 msgstr "%s^7 hat einen ^1TRIPLE SCORE\n"
 
-#: qcsrc/client/hud.qc:1729
+#: qcsrc/client/hud.qc:1816
 #, c-format
 msgid "%s^7 made a ^1TRIPLE FRAG\n"
 msgstr "%s^7 hat einen ^1TRIPLE FRAG\n"
 
-#: qcsrc/client/hud.qc:1732
+#: qcsrc/client/hud.qc:1819
 #, c-format
 msgid "%s^7 unleashes ^1SCORING RAGE\n"
 msgstr "%s^7 hat ^1PUNKTE-RASEN\n"
 
-#: qcsrc/client/hud.qc:1734
+#: qcsrc/client/hud.qc:1821
 #, c-format
 msgid "%s^7 unleashes ^1RAGE\n"
 msgstr "%s^7 ^1RAST VOR ZORN\n"
 
-#: qcsrc/client/hud.qc:1737
+#: qcsrc/client/hud.qc:1824
 #, c-format
 msgid "%s^7 made ^1TEN SCORES IN A ROW!\n"
 msgstr "%s^7 hat ^1ZEHN PUNKTE HINTEREINANDER!\n"
 
-#: qcsrc/client/hud.qc:1739
+#: qcsrc/client/hud.qc:1826
 #, c-format
 msgid "%s^7 starts the ^1MASSACRE!\n"
 msgstr "%s^7 beginnt das ^1MASSAKER!\n"
 
-#: qcsrc/client/hud.qc:1742
+#: qcsrc/client/hud.qc:1829
 #, 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:1744
+#: qcsrc/client/hud.qc:1831
 #, c-format
 msgid "%s^7 executes ^1MAYHEM!\n"
 msgstr "%s^7 erzeugt das ^1CHAOS!\n"
 
-#: qcsrc/client/hud.qc:1747
+#: qcsrc/client/hud.qc:1834
 #, c-format
 msgid "%s^7 made ^1TWENTY SCORES IN A ROW!\n"
 msgstr "%s^7 hat ^1ZWANZIG PUNKTE HINTEREINANDER\n"
 
-#: qcsrc/client/hud.qc:1749
+#: qcsrc/client/hud.qc:1836
 #, c-format
 msgid "%s^7 is a ^1BERSERKER!\n"
 msgstr "%s^7 ist ein ^1BERSERKER!\n"
 
-#: qcsrc/client/hud.qc:1752
+#: qcsrc/client/hud.qc:1839
 #, 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:1754
+#: qcsrc/client/hud.qc:1841
 #, c-format
 msgid "%s^7 inflicts ^1CARNAGE!\n"
 msgstr "%s^7 hält ein ^1BLUTBAD!\n"
 
-#: qcsrc/client/hud.qc:1757
+#: qcsrc/client/hud.qc:1844
 #, c-format
 msgid "%s^7 made ^1THIRTY SCORES IN A ROW!\n"
 msgstr "%s^7 hat ^1DREISSIG PUNKTE HINTEREINANDER\n"
 
-#: qcsrc/client/hud.qc:1759
+#: qcsrc/client/hud.qc:1846
 #, c-format
 msgid "%s^7 unleashes ^1ARMAGEDDON!\n"
 msgstr "%s^7 lässt die ^1APOKALYPSE^7 los!\n"
 
-#: qcsrc/client/hud.qc:1767
+#: qcsrc/client/hud.qc:1854
 #, 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:1769
+#: qcsrc/client/hud.qc:1856
 #, c-format
 msgid "^1%s^1 drowned\n"
 msgstr "^1%s^1 ertrank\n"
 
-#: qcsrc/client/hud.qc:1774
+#: qcsrc/client/hud.qc:1861
 #, c-format
 msgid "^1%s^1 was slimed\n"
 msgstr "^1%s^1 wurde im Schleim versenkt\n"
 
-#: qcsrc/client/hud.qc:1780
+#: qcsrc/client/hud.qc:1867
 #, 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:1782
+#: qcsrc/client/hud.qc:1869
 #, 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:1789
+#: qcsrc/client/hud.qc:1876
 #, 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:1791
+#: qcsrc/client/hud.qc:1878
 #, 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:1796
+#: qcsrc/client/hud.qc:1883
 #, c-format
 msgid "^1%s^1 became a shooting star\n"
 msgstr "^1%s^1 wurde zu einer Sternschnuppe\n"
 
-#: qcsrc/client/hud.qc:1802
+#: qcsrc/client/hud.qc:1889
 #, c-format
 msgid "^1%s^1 discovered a swamp\n"
 msgstr "^1%s^1 entdeckte einen Sumpf\n"
 
-#: qcsrc/client/hud.qc:1804
+#: qcsrc/client/hud.qc:1891
 #, 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:1811
+#: qcsrc/client/hud.qc:1898
 #, c-format
 msgid "^1%s^1 ran into a turret\n"
 msgstr "^1%s^1 probierte die Selbstschussanlage aus\n"
 
-#: qcsrc/client/hud.qc:1817
+#: qcsrc/client/hud.qc:1904
 #, c-format
 msgid "^1%s^1 was laserd down by a eWheel turret \n"
 msgstr "^1%s^1 wurde von einem eWheel gelasert\n"
 
-#: qcsrc/client/hud.qc:1820
+#: qcsrc/client/hud.qc:1907
 #, c-format
 msgid "^1%s^1 got caught in the flac \n"
 msgstr "^1%s^1 geriet in die Flac\n"
 
-#: qcsrc/client/hud.qc:1823
+#: qcsrc/client/hud.qc:1910
 #, c-format
 msgid "^1%s^1 was riddeld full of riddled by a machinegun turret \n"
 msgstr ""
 "^1%s^1 wurde von einer Maschinengewehr-Selbstschussanlage durchlöchert\n"
 
-#: qcsrc/client/hud.qc:1826
+#: qcsrc/client/hud.qc:1913
 #, c-format
 msgid "^1%s^1 got served a led enrichment by a walker turret \n"
 msgstr "^1%s^1 bekam eine Blei-Überdosis von einem Walker\n"
 
-#: qcsrc/client/hud.qc:1829
+#: qcsrc/client/hud.qc:1916
 #, c-format
 msgid "^1%s^1 was impaled by a walker turret \n"
 msgstr "^1%s^1 wurde von einem Walker aufgepiekst\n"
 
-#: qcsrc/client/hud.qc:1832
+#: qcsrc/client/hud.qc:1919
 #, c-format
 msgid "^1%s^1 was rocketed to hell by a walker turret \n"
 msgstr "^1%s^1 wurde von einem Walker in die Luft gejagt\n"
 
-#: qcsrc/client/hud.qc:1835
+#: qcsrc/client/hud.qc:1922
 #, c-format
 msgid "^1%s^1 was blasted away hellion turret \n"
 msgstr "^1%s^1 wurde von einem Hellion weggeblasen\n"
 
-#: qcsrc/client/hud.qc:1838
+#: qcsrc/client/hud.qc:1925
 #, c-format
 msgid "^1%s^1 could not hide from the hunter turret \n"
 msgstr ""
 "%s konnte sich vor der Selbstschussanlage Marke Hunter nicht verstecken"
 
-#: qcsrc/client/hud.qc:1841
+#: qcsrc/client/hud.qc:1928
 #, c-format
 msgid "^1%s^1 got turned into smoldering gibs by a mlrs turret \n"
 msgstr "^1%s^1 wurde von einem MLRS-Turret zerstückelt\n"
 
-#: qcsrc/client/hud.qc:1844
+#: qcsrc/client/hud.qc:1931
 #, c-format
 msgid "^1%s^1 got served some superheated plasma from a plasma turret \n"
 msgstr "^1%s^1 bekam ein wenig heißes Plasma serviert\n"
 
-#: qcsrc/client/hud.qc:1847
+#: qcsrc/client/hud.qc:1934
 #, c-format
 msgid "^1%s^1 was phased out \n"
 msgstr "^1%s^1 verschwand in der Phasenverschiebung\n"
 
-#: qcsrc/client/hud.qc:1850
+#: qcsrc/client/hud.qc:1937
 #, c-format
 msgid "^1%s^1 was electrocuted by a tesla turret \n"
 msgstr "^1%s^1 fand Tesla-Turrets elektrisierend\n"
 
-#: qcsrc/client/hud.qc:1866
+#: qcsrc/client/hud.qc:1953
 #, c-format
 msgid "^1%s^1 died in an accident\n"
 msgstr "^1%s^1 starb an einem Unfall\n"
 
-#: qcsrc/client/hud.qc:1870
+#: qcsrc/client/hud.qc:1957
 #, c-format
 msgid "^1%s^1 was unfairly eliminated\n"
 msgstr "^1%s^1 wurde auf unfaire Weise eliminiert\n"
 
-#: qcsrc/client/hud.qc:1876
+#: qcsrc/client/hud.qc:1963
 #, c-format
 msgid "^1%s^1 felt a little hot\n"
 msgstr "^1%s^1 fand es ein wenig zu heiss\n"
 
-#: qcsrc/client/hud.qc:1878
+#: qcsrc/client/hud.qc:1965
 #, c-format
 msgid "^1%s^1 burnt to death\n"
 msgstr "^1%s^1 verbrannte\n"
 
-#: qcsrc/client/hud.qc:1885
+#: qcsrc/client/hud.qc:1972
 #, c-format
 msgid "^1%s^1 needs a restart\n"
 msgstr "^1%s^1 braucht einen Neustart\n"
 
-#: qcsrc/client/hud.qc:1892
+#: qcsrc/client/hud.qc:1979
 #, 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:1894
+#: qcsrc/client/hud.qc:1981
 #, 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:1898
+#: qcsrc/client/hud.qc:1985
 #, c-format
 msgid "%s^7 got the %s\n"
 msgstr "%s^7 bekam die %s\n"
 
-#: qcsrc/client/hud.qc:1901
+#: qcsrc/client/hud.qc:1988
 #, c-format
 msgid "%s^7 lost the %s\n"
 msgstr "%s^7 verlor die %s\n"
 
-#: qcsrc/client/hud.qc:1904
+#: qcsrc/client/hud.qc:1991
 #, c-format
 msgid "%s^7 picked up the %s\n"
 msgstr "%s^7 nahm sich die %s\n"
 
-#: qcsrc/client/hud.qc:1907
+#: qcsrc/client/hud.qc:1994
 #, c-format
 msgid "%s^7 returned the %s\n"
 msgstr "%s^7 brachte die %s^7 zurück\n"
 
-#: qcsrc/client/hud.qc:1910
+#: qcsrc/client/hud.qc:1997
 #, c-format
 msgid "%s^7 captured the %s%s\n"
 msgstr "%s^7 eroberte die %s%s\n"
 
-#: qcsrc/client/hud.qc:1929
+#: qcsrc/client/hud.qc:2016
 #, c-format
 msgid "%s^7 has picked up the ball!\n"
 msgstr "%s^7 hat den Ball genommen!\n"
 
-#: qcsrc/client/hud.qc:1934
+#: qcsrc/client/hud.qc:2021
 #, c-format
 msgid "%s^7 has dropped the ball!\n"
 msgstr "%s^7 hat den Ball verloren!\n"
 
-#: qcsrc/client/hud.qc:1945
+#: qcsrc/client/hud.qc:2032
 #, c-format
 msgid "You are now on: %s"
 msgstr "Du bist jetzt im: %s"
 
-#: qcsrc/client/hud.qc:1947
+#: qcsrc/client/hud.qc:2034
 #, c-format
 msgid ""
 "You have been moved into a different team to improve team balance\n"
@@ -691,312 +657,312 @@ msgstr ""
 "Du wurdest in ein anderes Team verschoben, um Team-Balance zu verbessern.\n"
 "Du bist jetzt im: %s"
 
-#: qcsrc/client/hud.qc:1950
+#: qcsrc/client/hud.qc:2037
 msgid "^1Reconsider your tactics, camper!"
 msgstr "^1Ändere dein Verhalten, Camper!"
 
-#: qcsrc/client/hud.qc:1952
+#: qcsrc/client/hud.qc:2039
 msgid "^1Die camper!"
 msgstr "^1Stirb, Camper!"
 
-#: qcsrc/client/hud.qc:1955
+#: qcsrc/client/hud.qc:2042
 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:1957
+#: qcsrc/client/hud.qc:2044
 msgid "^1You were killed for running out of ammo..."
 msgstr "^1Du wurdest getötet, da dir die Munition ausging..."
 
-#: qcsrc/client/hud.qc:1960
+#: qcsrc/client/hud.qc:2047
 msgid "^1You need to preserve your health"
 msgstr "^1Du solltest deine Gesundheit erhalten"
 
-#: qcsrc/client/hud.qc:1962
+#: qcsrc/client/hud.qc:2049
 msgid "^1You grew too old without taking your medicine"
 msgstr "^1Du wurdest zu alt, und hast nicht deine Medizin genommen"
 
-#: qcsrc/client/hud.qc:1965
+#: qcsrc/client/hud.qc:2052
 msgid "^1Don't go against team mates!"
 msgstr "^1Ärgere deine Teamkollegen nicht!"
 
-#: qcsrc/client/hud.qc:1967
+#: qcsrc/client/hud.qc:2054
 msgid "^1Don't shoot your team mates!"
 msgstr "^1Schieße nicht auf deine Teamkollegen!"
 
-#: qcsrc/client/hud.qc:1972
+#: qcsrc/client/hud.qc:2059
 msgid "^1You need to be more careful!"
 msgstr "^1Sei vorsichtiger!"
 
-#: qcsrc/client/hud.qc:1974
+#: qcsrc/client/hud.qc:2061
 msgid "^1You killed your own dumb self!"
 msgstr "^1Du hast dich selbst umgebracht. Wie blöd."
 
-#: qcsrc/client/hud.qc:1979
+#: qcsrc/client/hud.qc:2066
 #, c-format
 msgid "^1Moron! You went against ^7%s^1, a team mate!"
 msgstr "^1Idiot! Du hast %s getroffen, also einen Teamkollegen von dir!"
 
-#: qcsrc/client/hud.qc:1981
+#: qcsrc/client/hud.qc:2068
 #, c-format
 msgid "^1Moron! You fragged ^7%s^1, a team mate!"
 msgstr "^1Idiot! Du hast %s getötet, also einen Teamkollegen von dir!"
 
-#: qcsrc/client/hud.qc:1985
+#: qcsrc/client/hud.qc:2072
 msgid "^1First score"
 msgstr "^1Erster Punkt"
 
-#: qcsrc/client/hud.qc:1987
+#: qcsrc/client/hud.qc:2074
 msgid "^1First blood"
 msgstr "^1Erstes Blut"
 
-#: qcsrc/client/hud.qc:1991
+#: qcsrc/client/hud.qc:2078
 msgid "^1First casualty"
 msgstr "^1Erster Kollateralschaden"
 
-#: qcsrc/client/hud.qc:1993
+#: qcsrc/client/hud.qc:2080
 msgid "^1First victim"
 msgstr "^1Erstes Opfer"
 
-#: qcsrc/client/hud.qc:1997
+#: qcsrc/client/hud.qc:2084
 #, 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:1999
+#: qcsrc/client/hud.qc:2086
 #, c-format
 msgid "^1You typefragged ^7%s"
 msgstr "^1Du hast ^7%s^1 beim Tippen erschossen"
 
-#: qcsrc/client/hud.qc:2003
+#: qcsrc/client/hud.qc:2090
 #, 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:2005
+#: qcsrc/client/hud.qc:2092
 #, 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:2009
+#: qcsrc/client/hud.qc:2096
 #, c-format
 msgid "^4You scored against ^7%s"
 msgstr "^4Du hast gegen ^7%s^4 gepunktet"
 
-#: qcsrc/client/hud.qc:2011
+#: qcsrc/client/hud.qc:2098
 #, c-format
 msgid "^4You fragged ^7%s"
 msgstr "^4Du hast ^7%s^4 getötet"
 
-#: qcsrc/client/hud.qc:2015
+#: qcsrc/client/hud.qc:2102
 #, c-format
 msgid "^1You were scored against by ^7%s"
 msgstr "^1Gegen dich hat ^7%s^1 gepunktet"
 
-#: qcsrc/client/hud.qc:2017
+#: qcsrc/client/hud.qc:2104
 #, c-format
 msgid "^1You were fragged by ^7%s"
 msgstr "^1Du wurdest von ^7%s^1 getötet"
 
-#: qcsrc/client/hud.qc:2022
+#: qcsrc/client/hud.qc:2109
 msgid "^1Watch your step!"
 msgstr "^1Achte, wo du hintrittst!"
 
-#: qcsrc/client/hud.qc:2091 qcsrc/client/hud.qc:2092 qcsrc/client/hud.qc:2598
+#: qcsrc/client/hud.qc:2178 qcsrc/client/hud.qc:2179 qcsrc/client/hud.qc:2685
 #, c-format
 msgid "Player %d"
 msgstr "Spieler %d"
 
-#: qcsrc/client/hud.qc:2907
+#: qcsrc/client/hud.qc:2995
 msgid "^1Intermediate 1 (+15.42)"
 msgstr "^1Intermediate 1 (+15.42)"
 
-#: qcsrc/client/hud.qc:2909 qcsrc/client/hud.qc:2951 qcsrc/client/hud.qc:2992
+#: qcsrc/client/hud.qc:2997 qcsrc/client/hud.qc:3039 qcsrc/client/hud.qc:3080
 #, c-format
 msgid "^1PENALTY: %.1f (%s)"
 msgstr "^1STRAFE: %.1f (%s)"
 
-#: qcsrc/client/hud.qc:2994
+#: qcsrc/client/hud.qc:3082
 #, c-format
 msgid "^2PENALTY: %.1f (%s)"
 msgstr "^2STRAFE: %.1f (%s)"
 
-#: qcsrc/client/hud.qc:3022
+#: qcsrc/client/hud.qc:3110
 msgid "^1You must answer before entering hud configure mode\n"
 msgstr "^1Du musst antworten, bevore das HUD konfiguriert werden kann\n"
 
-#: qcsrc/client/hud.qc:3027
+#: qcsrc/client/hud.qc:3115
 msgid "^2Name ^7instead of \"^1Anonymous player^7\" in stats"
 msgstr "^2Name^7 statt \"^1Anonymous player^7\" in den Statistiken"
 
-#: qcsrc/client/hud.qc:3109
+#: qcsrc/client/hud.qc:3197
 msgid "A vote has been called for:"
 msgstr "Eine Abstimmung wurde initiiert für:"
 
-#: qcsrc/client/hud.qc:3111
+#: qcsrc/client/hud.qc:3199
 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:3115
+#: qcsrc/client/hud.qc:3203
 msgid "^1Configure the HUD"
 msgstr "^1Das HUD konfigurieren"
 
-#: qcsrc/client/hud.qc:3119
+#: qcsrc/client/hud.qc:3207
 #, c-format
 msgid "Yes (%s): %d"
 msgstr "Ja (%s): %d"
 
-#: qcsrc/client/hud.qc:3121
+#: qcsrc/client/hud.qc:3209
 #, c-format
 msgid "No (%s): %d"
 msgstr "Nein (%s): %d"
 
-#: qcsrc/client/hud.qc:3624 qcsrc/client/hud.qc:3627 qcsrc/client/hud.qc:3629
+#: qcsrc/client/hud.qc:3712 qcsrc/client/hud.qc:3715 qcsrc/client/hud.qc:3717
 msgid "Personal best"
 msgstr "Persönliche Bestzeit"
 
-#: qcsrc/client/hud.qc:3642 qcsrc/client/hud.qc:3645 qcsrc/client/hud.qc:3647
+#: qcsrc/client/hud.qc:3730 qcsrc/client/hud.qc:3733 qcsrc/client/hud.qc:3735
 msgid "Server best"
 msgstr "Server-Bestzeit"
 
-#: qcsrc/client/hud.qc:3993
+#: qcsrc/client/hud.qc:4081
 msgid "^3Player^7: This is the chat area."
 msgstr "^3Player^7: Das ist der Chat-Bereich."
 
-#: qcsrc/client/hud.qc:4061
+#: qcsrc/client/hud.qc:4149
 #, c-format
 msgid "FPS: %.*f"
 msgstr "FPS: %.*f"
 
-#: qcsrc/client/hud.qc:4128
+#: qcsrc/client/hud.qc:4216
 msgid "^1Observing"
 msgstr "^1Beobachten"
 
-#: qcsrc/client/hud.qc:4131 qcsrc/client/hud.qc:4133
+#: qcsrc/client/hud.qc:4219 qcsrc/client/hud.qc:4221
 #, c-format
 msgid "^1Spectating: ^7%s"
 msgstr "^1Zuschauen bei: ^7%s"
 
-#: qcsrc/client/hud.qc:4138
+#: qcsrc/client/hud.qc:4226
 #, c-format
 msgid "^1Press ^3%s^1 to spectate"
 msgstr "^1Drücke ^3%s^1, um bei jemandem zuzuschauen"
 
-#: qcsrc/client/hud.qc:4140
+#: qcsrc/client/hud.qc:4228
 #, 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:4144
+#: qcsrc/client/hud.qc:4232
 #, 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:4146
+#: qcsrc/client/hud.qc:4234
 #, c-format
 msgid "^1Press ^3%s^1 to observe"
 msgstr "^1Drücke ^3%s^1 zum Beobachten"
 
-#: qcsrc/client/hud.qc:4149
+#: qcsrc/client/hud.qc:4237
 #, c-format
 msgid "^1Press ^3%s^1 for gamemode info"
 msgstr "^1Drücke ^3%s^1 für Spielmodus-Info"
 
-#: qcsrc/client/hud.qc:4153
+#: qcsrc/client/hud.qc:4241
 msgid "^1Wait for your turn to join"
 msgstr "^1Warte, bis du dran bist"
 
-#: qcsrc/client/hud.qc:4159
+#: qcsrc/client/hud.qc:4247
 msgid "^1Match has already begun"
 msgstr "^1Das Match hat bereits begonnen"
 
-#: qcsrc/client/hud.qc:4161
+#: qcsrc/client/hud.qc:4249
 msgid "^1You have no more lives left"
 msgstr "^1Du hast keine Leben mehr übrig"
 
-#: qcsrc/client/hud.qc:4163 qcsrc/client/hud.qc:4166
+#: qcsrc/client/hud.qc:4251 qcsrc/client/hud.qc:4254
 #, c-format
 msgid "^1Press ^3%s^1 to join"
 msgstr "^1Drücke ^3%s^1 zum Mitspielen"
 
-#: qcsrc/client/hud.qc:4174
+#: qcsrc/client/hud.qc:4262
 #, c-format
 msgid "^1Game starts in ^3%d^1 seconds"
 msgstr "^1Das Spiel beginnt in ^3%d^1 Sekunden"
 
-#: qcsrc/client/hud.qc:4181
+#: qcsrc/client/hud.qc:4269
 msgid "^2Currently in ^1warmup^2 stage!"
 msgstr "^2Momentan in der ^1Aufwärmphase!"
 
-#: qcsrc/client/hud.qc:4196
+#: qcsrc/client/hud.qc:4284
 #, 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:4198
+#: qcsrc/client/hud.qc:4286
 #, 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:4203
+#: qcsrc/client/hud.qc:4291
 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:4205
+#: qcsrc/client/hud.qc:4293
 msgid "^2Waiting for others to ready up..."
 msgstr "^2Warte, bis andere bereit sind..."
 
-#: qcsrc/client/hud.qc:4211
+#: qcsrc/client/hud.qc:4299
 #, 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:4232
+#: qcsrc/client/hud.qc:4320
 msgid "Teamnumbers are unbalanced!"
 msgstr "Die Teams sind unbalanciert!"
 
-#: qcsrc/client/hud.qc:4237
+#: qcsrc/client/hud.qc:4325
 #, c-format
 msgid " Press ^3%s%s to adjust"
 msgstr "Drücke ^3%s%s um dies zu korrigieren"
 
-#: qcsrc/client/hud.qc:4245
+#: qcsrc/client/hud.qc:4333
 msgid "^7Press ^3ESC ^7to show HUD options."
 msgstr "^7Drücke ^3ESC^7 um die HUD-Optionen zu zeigen"
 
-#: qcsrc/client/hud.qc:4247
+#: qcsrc/client/hud.qc:4335
 msgid "^3Doubleclick ^7a panel for panel-specific options."
 msgstr "^3Doppelklick^7 auf ein Panel für Panel-spezifische Optionen."
 
-#: qcsrc/client/hud.qc:4249
+#: qcsrc/client/hud.qc:4337
 msgid "^3CTRL ^7to disable collision testing, ^3SHIFT ^7and"
 msgstr "^3CTRL^7 um Kollisionstests zu deaktivieren, ^3SHIFT^7 und"
 
-#: qcsrc/client/hud.qc:4251
+#: qcsrc/client/hud.qc:4339
 msgid "^3ALT ^7+ ^3ARROW KEYS ^7for fine adjustments."
 msgstr "^3ALT^7 + ^3PFEILTASTEN^7 für Feinjustierungen"
 
-#: qcsrc/client/hud.qc:4289
+#: qcsrc/client/hud.qc:4377
 msgid " qu/s"
 msgstr "qu/s"
 
-#: qcsrc/client/hud.qc:4293
+#: qcsrc/client/hud.qc:4381
 msgid " m/s"
 msgstr "m/s"
 
-#: qcsrc/client/hud.qc:4297
+#: qcsrc/client/hud.qc:4385
 msgid " km/h"
 msgstr "km/h"
 
-#: qcsrc/client/hud.qc:4301
+#: qcsrc/client/hud.qc:4389
 msgid " mph"
 msgstr "mph"
 
-#: qcsrc/client/hud.qc:4305
+#: qcsrc/client/hud.qc:4393
 msgid " knots"
 msgstr "Knoten"
 
-#: qcsrc/client/hud.qc:4968
+#: qcsrc/client/hud.qc:5059
 msgid "Automatically fixed wrong/missing panel numbers in _hud_panelorder\n"
 msgstr "Falsche Panel-Nummern in _hud_panelorder wurden automatisch behoben"
 
@@ -1021,30 +987,30 @@ msgstr "(1 Stimme)"
 msgid " (%d votes)"
 msgstr "(%d Stimmen)"
 
-#: qcsrc/client/mapvoting.qc:113
+#: qcsrc/client/mapvoting.qc:116
 msgid "Don't care"
 msgstr "Egal"
 
-#: qcsrc/client/mapvoting.qc:194
+#: qcsrc/client/mapvoting.qc:197
 msgid "Vote for a map"
 msgstr "Wähle eine Map"
 
-#: qcsrc/client/mapvoting.qc:200
+#: qcsrc/client/mapvoting.qc:203
 #, c-format
 msgid "%d seconds left"
 msgstr "%d Sekunden übrig"
 
-#: qcsrc/client/mapvoting.qc:263
+#: qcsrc/client/mapvoting.qc:266
 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
+#: qcsrc/client/mapvoting.qc:276
 msgid "^1Error:^7 Couldn't find pak index.\n"
 msgstr "^1Fehler:^7 konnte den pak-Index nicht finden.\n"
 
-#: qcsrc/client/mapvoting.qc:282
+#: qcsrc/client/mapvoting.qc:285
 msgid "Requesting preview...\n"
 msgstr "Vorschau wird angefordert...\n"
 
@@ -1202,6 +1168,10 @@ msgstr ""
 msgid "^3|---------------------------------------------------------------|\n"
 msgstr "^3|---------------------------------------------------------------|\n"
 
+#: qcsrc/client/scoreboard.qc:241
+msgid "Usage:\n"
+msgstr "Syntax:\n"
+
 #: qcsrc/client/scoreboard.qc:242
 msgid "^2scoreboard_columns_set default\n"
 msgstr "^2scoreboard_columns_set default\n"
@@ -1611,7 +1581,7 @@ msgstr "Schrotgewehr"
 
 #: qcsrc/client/waypointsprites.qc:292 qcsrc/server/w_uzi.qc:2
 msgid "Machine Gun"
-msgstr "Maschinen Gewehr"
+msgstr "Maschinengewehr"
 
 #: qcsrc/client/waypointsprites.qc:293 qcsrc/server/w_grenadelauncher.qc:2
 msgid "Mortar"
@@ -1635,7 +1605,7 @@ msgstr "Hagar"
 
 #: qcsrc/client/waypointsprites.qc:298 qcsrc/server/w_rocketlauncher.qc:2
 msgid "Rocket Launcher"
-msgstr "Raketenwerfer"
+msgstr "Rocket Launcher"
 
 #: qcsrc/client/waypointsprites.qc:299 qcsrc/server/w_porto.qc:2
 msgid "Port-O-Launch"
@@ -1663,7 +1633,7 @@ msgstr "Gewehr"
 
 #: qcsrc/client/waypointsprites.qc:305 qcsrc/server/w_minelayer.qc:2
 msgid "Mine Layer"
-msgstr "Mine Layer"
+msgstr "Minenleger"
 
 #: qcsrc/client/waypointsprites.qc:311
 msgid "Invisibility"
@@ -1710,11 +1680,80 @@ msgstr "Fahrzeug"
 msgid "%s needing help!"
 msgstr "%s braucht Hilfe!"
 
-#: qcsrc/common/mapinfo.qc:1097
+#: qcsrc/common/mapinfo.qc:665
+#, c-format
+msgid "@!#%'n Tuba Throwing"
+msgstr "@!#%'n Tuba-Werfen"
+
+#: qcsrc/common/mapinfo.qc:1057
 #, c-format
 msgid "%s: %s"
 msgstr "%s: %s"
 
+#: qcsrc/common/mapinfo.qh:36
+msgid "Deathmatch"
+msgstr "Deathmatch"
+
+#: qcsrc/common/mapinfo.qh:39
+msgid "Last Man Standing"
+msgstr "Last Man Standing"
+
+#: qcsrc/common/mapinfo.qh:42
+msgid "Arena"
+msgstr "Arena"
+
+#: qcsrc/common/mapinfo.qh:45
+msgid "Runematch"
+msgstr "Runematch"
+
+#: qcsrc/common/mapinfo.qh:48
+msgid "Race"
+msgstr "Race"
+
+#: qcsrc/common/mapinfo.qh:51
+msgid "Race CTS"
+msgstr "Race CTS"
+
+#: qcsrc/common/mapinfo.qh:54
+msgid "Team Deathmatch"
+msgstr "Team Deathmatch"
+
+#: qcsrc/common/mapinfo.qh:57
+msgid "Capture the Flag"
+msgstr "Capture The Flag"
+
+#: qcsrc/common/mapinfo.qh:60
+msgid "Clan Arena"
+msgstr "Clan Arena"
+
+#: qcsrc/common/mapinfo.qh:63
+msgid "Domination"
+msgstr "Domination"
+
+#: qcsrc/common/mapinfo.qh:66
+msgid "Key Hunt"
+msgstr "Key Hunt"
+
+#: qcsrc/common/mapinfo.qh:69
+msgid "Assault"
+msgstr "Assault"
+
+#: qcsrc/common/mapinfo.qh:72
+msgid "Onslaught"
+msgstr "Onslaught"
+
+#: qcsrc/common/mapinfo.qh:75
+msgid "Nexball"
+msgstr "Nexball"
+
+#: qcsrc/common/mapinfo.qh:78
+msgid "Freeze Tag"
+msgstr "Freeze Tag"
+
+#: qcsrc/common/mapinfo.qh:81
+msgid "Keepaway"
+msgstr "Keepaway"
+
 #: qcsrc/server/w_crylink.qc:666
 #, c-format
 msgid "%s succeeded at self-destructing themself with the Crylink"
@@ -1735,77 +1774,77 @@ msgstr "%s trat %ss Crylink zu nahe"
 msgid "%s took a close look at %s's Crylink"
 msgstr "%s schaute sich %ss Crylink sehr genau an"
 
-#: qcsrc/server/w_electro.qc:581
+#: qcsrc/server/w_electro.qc:589
 #, c-format
 msgid "%s could not remember where they put their electro plasma"
 msgstr "%s vergaß, wo er das Plasma hingetan hatte"
 
-#: qcsrc/server/w_electro.qc:583
+#: qcsrc/server/w_electro.qc:591
 #, c-format
 msgid "%s played with electro plasma"
 msgstr "%s spielte mit Plasma"
 
-#: qcsrc/server/w_electro.qc:590
+#: qcsrc/server/w_electro.qc:598
 #, c-format
 msgid "%s just noticed %s's electro plasma"
 msgstr "%s hat gerade %ss Plasma bemerkt"
 
-#: qcsrc/server/w_electro.qc:592
+#: qcsrc/server/w_electro.qc:600
 #, c-format
 msgid "%s got in touch with %s's electro plasma"
 msgstr "%s kam mit %ss Plasma in Kontakt"
 
-#: qcsrc/server/w_electro.qc:597
+#: qcsrc/server/w_electro.qc:605
 #, c-format
 msgid "%s felt the electrifying air of %s's electro combo"
 msgstr "%s hat gespürt, wie %ss Combo die Luft elektrisierte"
 
-#: qcsrc/server/w_electro.qc:599
+#: qcsrc/server/w_electro.qc:607
 #, c-format
 msgid "%s got too close to %s's blue electro bolt"
 msgstr "%s kam zu nah an %ss blauen Strahl"
 
-#: qcsrc/server/w_electro.qc:601
+#: qcsrc/server/w_electro.qc:609
 #, c-format
 msgid "%s was blasted by %s's blue electro bolt"
 msgstr "%s wurde von %ss blauen Strahl erwischt"
 
-#: qcsrc/server/w_fireball.qc:421
+#: qcsrc/server/w_fireball.qc:403
 #, c-format
 msgid "%s forgot about some firemine"
 msgstr "%s hat den Platz einer Feuermine vergessen"
 
-#: qcsrc/server/w_fireball.qc:423 qcsrc/server/w_hlac.qc:240
+#: qcsrc/server/w_fireball.qc:405 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:430
+#: qcsrc/server/w_fireball.qc:412
 #, c-format
 msgid "%s tried to catch %s's firemine"
 msgstr "%s hat versucht %ss Feuermine zu fangen"
 
-#: qcsrc/server/w_fireball.qc:432
+#: qcsrc/server/w_fireball.qc:414
 #, c-format
 msgid "%s fatefully ignored %s's firemine"
 msgstr "%s hat tragischerweise %ss Feuermine ignoriert"
 
-#: qcsrc/server/w_fireball.qc:439
+#: qcsrc/server/w_fireball.qc:421
 #, 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:441
+#: qcsrc/server/w_fireball.qc:423
 #, 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:444
+#: qcsrc/server/w_fireball.qc:426
 #, c-format
 msgid "%s got too close to %s's fireball"
 msgstr "%s ist %ss Feuerball zu nahe getreten"
 
-#: qcsrc/server/w_fireball.qc:446
+#: qcsrc/server/w_fireball.qc:428
 #, c-format
 msgid "%s tasted %s's fireball"
 msgstr "%s hat von %ss Feuerball probiert"
@@ -1863,7 +1902,7 @@ msgstr "%s wurde von %ss HLAC niedergehauen"
 msgid "Grappling Hook"
 msgstr "Enterhaken"
 
-#: qcsrc/server/w_hook.qc:286 qcsrc/server/w_porto.qc:296
+#: qcsrc/server/w_hook.qc:286 qcsrc/server/w_porto.qc:386
 #, c-format
 msgid "%s did the impossible"
 msgstr "%s hat das Unmögliche geschafft"
@@ -1917,24 +1956,24 @@ msgstr "%s ist auf %ss Mine gelatscht"
 msgid "MinstaNex"
 msgstr "MinstaNex"
 
-#: qcsrc/server/w_minstanex.qc:293 qcsrc/server/w_nex.qc:253
+#: qcsrc/server/w_minstanex.qc:295 qcsrc/server/w_nex.qc:256
 #: qcsrc/server/w_rifle.qc:232 qcsrc/server/w_shotgun.qc:271
 #: qcsrc/server/w_uzi.qc:318
 #, c-format
 msgid "%s is now thinking with portals"
 msgstr "%s kann jetzt mit Portalen denken"
 
-#: qcsrc/server/w_minstanex.qc:295
+#: qcsrc/server/w_minstanex.qc:297
 #, c-format
 msgid "%s has been vaporized by %s's minstanex"
 msgstr "%s^1 wurde von %ss MinstaNex vernichtet"
 
-#: qcsrc/server/w_nex.qc:255
+#: qcsrc/server/w_nex.qc:258
 #, c-format
 msgid "%s has been vaporized by %s's nex"
 msgstr "%s^1 wurde von %ss Nex vernichtet"
 
-#: qcsrc/server/w_porto.qc:298
+#: qcsrc/server/w_porto.qc:388
 #, 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"
@@ -1964,22 +2003,22 @@ msgstr "%s hat ein Loch im Kopf bekommen; schuld war %s"
 msgid "%s was sniped with a rifle by %s"
 msgstr "%s wurde von %s fachmännisch erledigt"
 
-#: qcsrc/server/w_rocketlauncher.qc:507
+#: qcsrc/server/w_rocketlauncher.qc:466
 #, c-format
 msgid "%s blew themself up with their rocketlauncher"
 msgstr "%s hat sich mit einem Raketenwerfer selbst in die Luft gejagt"
 
-#: qcsrc/server/w_rocketlauncher.qc:511
+#: qcsrc/server/w_rocketlauncher.qc:470
 #, c-format
 msgid "%s got too close to %s's rocket"
 msgstr "%s ist %ss Rakete zu nahe getreten"
 
-#: qcsrc/server/w_rocketlauncher.qc:513
+#: qcsrc/server/w_rocketlauncher.qc:472
 #, c-format
 msgid "%s almost dodged %s's rocket"
 msgstr "%s ist fast %ss Rakete ausgewichen"
 
-#: qcsrc/server/w_rocketlauncher.qc:515
+#: qcsrc/server/w_rocketlauncher.qc:474
 #, c-format
 msgid "%s ate %s's rocket"
 msgstr "%s hat %ss Rakete in den Mund genommen"
@@ -2055,59 +2094,80 @@ msgstr "%s wurde von %ss Maschinengewehr erledigt"
 msgid "%s was riddled full of holes by %s's machine gun"
 msgstr "%s ist von %s durchlöchert worden wie ein Schweizer Käse"
 
-msgid "%s sniped themself somehow"
-msgstr "%s hat so scharf geschossen, dass er sich selbst getroffen hat"
+#~ msgid "hud_save configname   (saves to hud_skinname_configname.cfg)\n"
+#~ msgstr "hud_save configname   (speichert als hud_skinname_configname.cfg)\n"
+
+#~ msgid "Usage: cl_cmd COMMAND..., where possible commands are:\n"
+#~ msgstr "Syntax: cl_cmd BEFEHL..., wobei mögliche Befehle sind:\n"
+
+#~ msgid "  settemp cvar value\n"
+#~ msgstr "  settemp Cvar Wert\n"
+
+#~ msgid "  scoreboard_columns_set ...\n"
+#~ msgstr "  scoreboard_columns_set ...\n"
+
+#~ msgid "  scoreboard_columns_help\n"
+#~ msgstr "  scoreboard_columns_help\n"
+
+#~ msgid "Trying to use non existing model %s. "
+#~ msgstr "Modell %s existiert nicht! "
+
+#~ msgid "Reverted to %s.\n"
+#~ msgstr "Es wird stattdessen %s verwendet.\n"
+
+#~ msgid "Awaiting orders..."
+#~ msgstr "Warten auf Auftrag..."
 
-msgid "%s shot themself automatically"
-msgstr "%s hat sich vollautomatisch selbst erschossen"
+#~ msgid "You're commander!"
+#~ msgstr "Sie sind Befehlshaber!"
 
-msgid "%s exploded"
-msgstr "%s ist explodiert"
+#~ msgid "3) Resign from command."
+#~ msgstr "3) Befehlsgewalt abgeben."
 
-msgid "%s hoped %s's missiles wouldn't bounce"
-msgstr "%s hat gehofft, dass %ss Raketen nicht von Wänden abprallen"
+#~ msgid " 2) Defend"
+#~ msgstr " 2) Verteidigen"
 
-msgid "%s detonated"
-msgstr "%s verfing sich in der eigenen Detonation"
+#~ msgid " 1) Attack"
+#~ msgstr " 1) Angreifen"
 
-msgid "%s tried out his own grenade"
-msgstr "%s wollte wissen, ob seine Granate funktioniert"
+#~ msgid "Issue orders:"
+#~ msgstr "Auftrag geben:"
 
-msgid "Awaiting orders..."
-msgstr "Warten auf Auftrag..."
+#~ msgid "----- Command Menu -----"
+#~ msgstr "---- Befehlsmenü -----"
 
-msgid "You're commander!"
-msgstr "Sie sind Befehlshaber!"
+#~ msgid "Couldn't find player %d\n"
+#~ msgstr "Kann Spieler %d nicht finden\n"
 
-msgid "3) Resign from command."
-msgstr "3) Befehlsgewalt abgeben."
+#~ msgid "ESC) Exit Menu"
+#~ msgstr "ESC) Menü verlassen"
 
-msgid " 2) Defend"
-msgstr " 2) Verteidigen"
+#~ msgid "2) ^3next page"
+#~ msgstr "2) ^3nächste Seite"
 
-msgid " 1) Attack"
-msgstr " 1) Angreifen"
+#~ msgid "1) ^3previous page"
+#~ msgstr "1) ^3vorherige Seite"
 
-msgid "Issue orders:"
-msgstr "Auftrag geben:"
+#~ msgid "Order: %s"
+#~ msgstr "Auftrag: %s"
 
-msgid "----- Command Menu -----"
-msgstr "---- Befehlsmenü -----"
+#~ msgid "----- Order Menu -----"
+#~ msgstr "----- Auftragsmenü -----"
 
-msgid "Couldn't find player %d\n"
-msgstr "Kann Spieler %d nicht finden\n"
+#~ msgid "%s detonated"
+#~ msgstr "%s verfing sich in der eigenen Detonation"
 
-msgid "ESC) Exit Menu"
-msgstr "ESC) Menü verlassen"
+#~ msgid "%s exploded"
+#~ msgstr "%s ist explodiert"
 
-msgid "2) ^3next page"
-msgstr "2) ^3nächste Seite"
+#~ msgid "%s hoped %s's missiles wouldn't bounce"
+#~ msgstr "%s hat gehofft, dass %ss Raketen nicht von Wänden abprallen"
 
-msgid "1) ^3previous page"
-msgstr "1) ^3vorherige Seite"
+#~ msgid "%s shot themself automatically"
+#~ msgstr "%s hat sich vollautomatisch selbst erschossen"
 
-msgid "Order: %s"
-msgstr "Auftrag: %s"
+#~ msgid "%s sniped themself somehow"
+#~ msgstr "%s hat so scharf geschossen, dass er sich selbst getroffen hat"
 
-msgid "----- Order Menu -----"
-msgstr "----- Auftragsmenü -----"
+#~ msgid "%s tried out his own grenade"
+#~ msgstr "%s wollte wissen, ob seine Granate funktioniert"
index 2ae68730f15ff8d8835aa212e733a586c6b89098..a9fcfa7c8ebff52856d3e619ab74d36719a8a852 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-08-21 14:00+0200\n"
+"POT-Creation-Date: 2012-01-26 12:24+0100\n"
 "PO-Revision-Date: 2012-01-26 13:50+0100\n"
 "Last-Translator: Calinou <calinou9999@gmail.com>\n"
 "Language-Team: \n"
@@ -17,1946 +17,2150 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: qcsrc/client/scoreboard.qc:19
-msgid "SCO^bckills"
-msgstr "balles tués"
+#: qcsrc/client/Main.qc:8
+msgid "ERROR - MENU IS VISIBLE BUT NO MENU WAS DEFINED!"
+msgstr "ERREUR - LE MENU EST VISIBLE MAIS NON DÉFIINI !"
 
-#: qcsrc/client/scoreboard.qc:20
-msgid "SCO^bctime"
-msgstr "temps balle"
+#: qcsrc/client/Main.qc:83
+msgid ""
+"^3Your engine build is outdated\n"
+"^3This Server uses a newer QC VM. Please update!\n"
+msgstr ""
+"^3Votre version n'est pas à jour!\n"
+"^3Ce Serveur utilise une nouvelle version du QC VM. Veuillez mettre à "
+"jour !\n"
 
-#: qcsrc/client/scoreboard.qc:21
-msgid "SCO^caps"
-msgstr "drapeaux"
+#: qcsrc/client/Main.qc:93
+#, c-format
+msgid "^4CSQC Build information: ^1%s\n"
+msgstr "^4Information sur la version de CSQC: ^1%s\n"
 
-#: qcsrc/client/scoreboard.qc:22
-msgid "SCO^deaths"
-msgstr "morts"
+#: qcsrc/client/Main.qc:258 qcsrc/client/Main.qc:274
+#, c-format
+msgid "trying to switch to unsupported team %d\n"
+msgstr "tentative de changement vers une équipe non supportée : %d\n"
 
-#: qcsrc/client/scoreboard.qc:23
-msgid "SCO^destroyed"
-msgstr "détruits"
+#: qcsrc/client/Main.qc:466
+#, c-format
+msgid "A CSQC entity changed its owner! (edict: %d, classname: %s)\n"
+msgstr ""
+"Une entité CSQC a changé de propriétaire ! (edict: %d, classname: %s)\n"
 
-#: qcsrc/client/scoreboard.qc:24
-msgid "SCO^drops"
-msgstr "lâchers"
+#: qcsrc/client/Main.qc:707
+#, c-format
+msgid ""
+"A CSQC entity changed its type! (edict: %d, server: %d, type: %d -> %d)\n"
+msgstr "Une entité CSQC a changé de type ! (edict: %d, classname: %s)\n"
 
-#: qcsrc/client/scoreboard.qc:25
-msgid "SCO^faults"
-msgstr "fautes"
+#: qcsrc/client/Main.qc:716
+#, c-format
+msgid ""
+"A CSQC entity appeared out of nowhere! (edict: %d, server: %d, type: %d)\n"
+msgstr ""
+"Une entité CSQC a changé de propriétaire ! (edict: %d, classname: %s)\n"
 
-#: qcsrc/client/scoreboard.qc:26
-msgid "SCO^fckills"
-msgstr "drap. tués"
+#: qcsrc/client/Main.qc:758
+#, c-format
+msgid ""
+"Unknown entity type in CSQC_Ent_Update (enttype: %d, edict: %d, classname: "
+"%s)\n"
+msgstr ""
+"Entité inconnue ! CSQC_Ent_Update (enttype: %d, edict: %d, classname: %s)\n"
 
-#: qcsrc/client/scoreboard.qc:27
-msgid "SCO^goals"
-msgstr "buts"
+#: qcsrc/client/Main.qc:1206
+#, c-format
+msgid "%s (not bound)"
+msgstr "%s (non assigné)"
 
-#: qcsrc/client/scoreboard.qc:28
-msgid "SCO^kckills"
-msgstr "clés tués"
+#: qcsrc/client/Main.qc:1211 qcsrc/client/hud.qc:230
+#, c-format
+msgid "%s (%s)"
+msgstr "%s (%s)"
 
-#: qcsrc/client/scoreboard.qc:29
-msgid "SCO^kdratio"
-msgstr "SCO^kdratio"
+#: qcsrc/client/announcer.qc:31
+msgid "^1Begin!"
+msgstr "^1Commencez !"
 
-#: qcsrc/client/scoreboard.qc:30
-msgid "SCO^k/d"
-msgstr "SCO^tué/mort"
+#: qcsrc/client/announcer.qc:41
+#, c-format
+msgid "^1Game starts in %d seconds"
+msgstr "^1La partie commence dans %d secondes"
 
-#: qcsrc/client/scoreboard.qc:31
-msgid "SCO^kd"
-msgstr "SCO^kd"
+#: qcsrc/client/announcer.qc:153
+msgid "^1RED^7 flag"
+msgstr "^7drapeau ^1ROUGE^7"
 
-#: qcsrc/client/scoreboard.qc:32
-msgid "SCO^kdr"
-msgstr "SCO^kdr"
+#: qcsrc/client/announcer.qc:158
+msgid "^4BLUE^7 flag"
+msgstr "^7drapeau ^4BLEU^7"
 
-#: qcsrc/client/scoreboard.qc:33
-msgid "SCO^kills"
-msgstr "SCO^tués"
+#: qcsrc/client/announcer.qc:166
+#, c-format
+msgid "You picked up the %s!"
+msgstr "Vous avez pris le %s !"
 
-#: qcsrc/client/scoreboard.qc:34
-msgid "SCO^laps"
-msgstr "SCO^tours"
+#: qcsrc/client/announcer.qc:170
+#, c-format
+msgid "You got the %s!"
+msgstr "Vous avez le %s !"
 
-#: qcsrc/client/scoreboard.qc:35
-msgid "SCO^lives"
-msgstr "SCO^vies"
+#: qcsrc/client/hud.qc:160
+msgid "1st"
+msgstr "1er"
 
-#: qcsrc/client/scoreboard.qc:36
-msgid "SCO^losses"
-msgstr "SCO^défaites"
+#: qcsrc/client/hud.qc:162
+msgid "2nd"
+msgstr "2ème"
 
-#: qcsrc/client/scoreboard.qc:37
-msgid "SCO^name"
-msgstr "SCO^nom"
+#: qcsrc/client/hud.qc:164
+msgid "3rd"
+msgstr "3ème"
 
-#: qcsrc/client/scoreboard.qc:38
-msgid "SCO^nick"
-msgstr "SCO^pseudonyme"
+#: qcsrc/client/hud.qc:166
+#, c-format
+msgid "%dth"
+msgstr "%dème"
 
-#: qcsrc/client/scoreboard.qc:39
-msgid "SCO^objectives"
-msgstr "SCO^objectifs"
+#: qcsrc/client/hud.qc:198
+#, c-format
+msgid " (-%dL)"
+msgstr " (-%dL)"
 
-#: qcsrc/client/scoreboard.qc:40
-msgid "SCO^pickups"
-msgstr "SCO^collectés"
+#: qcsrc/client/hud.qc:203
+#, c-format
+msgid " (+%dL)"
+msgstr " (+%dL)"
 
-#: qcsrc/client/scoreboard.qc:41
-msgid "SCO^ping"
-msgstr "SCO^latence"
+#: qcsrc/client/hud.qc:219
+msgid "Start line"
+msgstr "Ligne de départ"
 
-#: qcsrc/client/scoreboard.qc:42
-msgid "SCO^pl"
-msgstr "SCO^pl"
+#: qcsrc/client/hud.qc:221 qcsrc/client/hud.qc:225
+msgid "Finish line"
+msgstr "Ligne d'arrivée"
 
-#: qcsrc/client/scoreboard.qc:43
-msgid "SCO^pushes"
-msgstr "SCO^poussés"
+#: qcsrc/client/hud.qc:223
+#, c-format
+msgid "Intermediate %d"
+msgstr "Intermédiaire %d"
 
-#: qcsrc/client/scoreboard.qc:44
-msgid "SCO^rank"
-msgstr "SCO^rang"
+#: qcsrc/client/hud.qc:232
+#, c-format
+msgid "%s (%s %s)"
+msgstr "%s (%s %s)"
 
-#: qcsrc/client/scoreboard.qc:45
-msgid "SCO^returns"
-msgstr "SCO^retournés"
+#: qcsrc/client/hud.qc:786
+msgid "Out of ammo"
+msgstr "Plus de munitions"
 
-#: qcsrc/client/scoreboard.qc:46
-msgid "SCO^revivals"
-msgstr "SCO^soignés"
+#: qcsrc/client/hud.qc:790
+msgid "Don't have"
+msgstr "Ne possède pas"
 
-#: qcsrc/client/scoreboard.qc:47
-msgid "SCO^score"
-msgstr "SCO^score"
+#: qcsrc/client/hud.qc:794
+msgid "Unavailable"
+msgstr "Non disponible"
 
-#: qcsrc/client/scoreboard.qc:48
-msgid "SCO^suicides"
-msgstr "SCO^suicides"
+#: qcsrc/client/hud.qc:1625
+#, c-format
+msgid "^1%s^1 couldn't take it anymore\n"
+msgstr "^1%s^1 n'en pouvait plus avec la vie\n"
 
-#: qcsrc/client/scoreboard.qc:49
-msgid "SCO^takes"
-msgstr "SCO^prises"
+#: qcsrc/client/hud.qc:1629 qcsrc/client/hud.qc:1974
+#, c-format
+msgid "^1%s^1 died\n"
+msgstr "^1%s^1 est mort\n"
 
-#: qcsrc/client/scoreboard.qc:50
-msgid "SCO^ticks"
-msgstr "SCO^ticks"
+#: qcsrc/client/hud.qc:1633
+#, c-format
+msgid "^7%s^7 committed suicide. What's the point of living without ammo?\n"
+msgstr "^7%s^7 s'est suicidé. Quel est l'intérêt de vivre sans munitions ?\n"
 
-#: qcsrc/client/scoreboard.qc:239
-msgid ""
-"You can modify the scoreboard using the ^2scoreboard_columns_set command.\n"
-msgstr ""
-"Vous pouvez modifier le tableau des scores en utilisant ^2scoreboard_columns_set ^7(dans la console).\n"
+#: qcsrc/client/hud.qc:1637
+#, c-format
+msgid "^1%s^1 thought they found a nice camping ground\n"
+msgstr "^1%s^1 a cru qu'il avait trouvé un bel endroit pour camper\n"
 
-#: qcsrc/client/scoreboard.qc:240
-msgid "^3|---------------------------------------------------------------|\n"
-msgstr "^3|---------------------------------------------------------------|\n"
+#: qcsrc/client/hud.qc:1641
+#, c-format
+msgid "^1%s^1 didn't become friends with the Lord of Teamplay\n"
+msgstr "^1%s^1 n'est pas devenu ami avec le Lord of Teamplay\n"
 
-#: qcsrc/client/scoreboard.qc:241 qcsrc/client/Main.qc:369
-msgid "Usage:\n"
-msgstr "Utilisation:\n"
+#: qcsrc/client/hud.qc:1645
+#, c-format
+msgid "^1%s^1 unfairly eliminated themself\n"
+msgstr "1%s^1 s'est auto-détruit\n"
 
-#: qcsrc/client/scoreboard.qc:242
-msgid "^2scoreboard_columns_set default\n"
-msgstr "^2scoreboard_columns_set par défaut\n"
+#: qcsrc/client/hud.qc:1649
+#, c-format
+msgid "^1%s^1 burned to death\n"
+msgstr "^1%s^1 a brûlé vif\n"
 
-#: qcsrc/client/scoreboard.qc:243
-msgid "^2scoreboard_columns_set ^7filed1 field2 ...\n"
-msgstr "^2scoreboard_columns_set ^7champ1 champ2 ...\n"
+#: qcsrc/client/hud.qc:1653
+#, c-format
+msgid "^1%s^1 couldn't resist the urge to self-destruct\n"
+msgstr "^1%s^1 n'a pas pu résister à l'envie de s'auto-détruire\n"
 
-#: qcsrc/client/scoreboard.qc:244
-msgid "The following field names are recognized (case insensitive):\n"
-msgstr "Les noms de champs suivants sont reconnus (non-sensible à la casse) :\n"
+#: qcsrc/client/hud.qc:1657
+#, c-format
+msgid "^1%s^1 ended it all after a %d kill spree\n"
+msgstr "^1%s^ en a fini après %d joueurs tués sans mourir\n"
 
-#: qcsrc/client/scoreboard.qc:245
-msgid ""
-"You can use a ^3|^7 to start the right-aligned fields.\n"
-"\n"
-msgstr ""
-"Vous pouvez insérer un ^3|^7 pour créer des champs alignés à droite.\n"
-"\n"
+#: qcsrc/client/hud.qc:1670
+#, c-format
+msgid "^1%s^1 took action against a team mate\n"
+msgstr "^1%s^1 a tué un équipier\n"
 
-#: qcsrc/client/scoreboard.qc:247
-msgid "^3name^7 or ^3nick^7         Name of a player\n"
-msgstr "^3nom^7 ou ^3pseudonyme^7         Nom d'un joueur\n"
+#: qcsrc/client/hud.qc:1672
+#, c-format
+msgid "^1%s^1 mows down a team mate\n"
+msgstr "^1%s^1 a tué un équipier\n"
 
-#: qcsrc/client/scoreboard.qc:248
-msgid "^3ping^7                     Ping time\n"
-msgstr "^3latence^7                     Temps de latence\n"
+#: qcsrc/client/hud.qc:1677
+#, c-format
+msgid "^1%s^1 ended a %d scoring spree by going against a team mate\n"
+msgstr "^1^s^1 a fini une chaîne de %d scores en tuant un équipier\n"
 
-#: qcsrc/client/scoreboard.qc:249
-msgid "^3pl^7                       Packet loss\n"
-msgstr "^3pl^7                       Pertes de paquet\n"
+#: qcsrc/client/hud.qc:1679
+#, c-format
+msgid "^1%s^1 ended a %d kill spree by killing a team mate\n"
+msgstr "^1%s^1 a fini une chaîne de %d tués en tuant un équipier\n"
 
-#: qcsrc/client/scoreboard.qc:250
-msgid "^3kills^7                    Number of kills\n"
-msgstr "^3tués^7                    Nombre de tués\n"
-
-#: qcsrc/client/scoreboard.qc:251
-msgid "^3deaths^7                   Number of deaths\n"
-msgstr "^3morts^7                   Nombre de morts\n"
-
-#: qcsrc/client/scoreboard.qc:252
-msgid "^3suicides^7                 Number of suicides\n"
-msgstr "^3suicides^7                 Nombre de suicides\n"
-
-#: qcsrc/client/scoreboard.qc:253
-msgid "^3frags^7                    kills - suicides\n"
-msgstr "^3tués^7                    tués - suicides\n"
+#: qcsrc/client/hud.qc:1683
+#, c-format
+msgid "^1%s^1's %s scoring spree was ended by a team mate!\n"
+msgstr "La chaîne de %s scores de ^1%s^1 a été finie par un équipier !\n"
 
-#: qcsrc/client/scoreboard.qc:254
-msgid "^3kd^7                       The kill-death ratio\n"
-msgstr "^3kd^7                       Ratio tué-mort\n"
+#: qcsrc/client/hud.qc:1685
+#, c-format
+msgid "^1%s^1's %s kill spree was ended by a team mate!\n"
+msgstr "La chaîne de %s tués de ^1%s^1 a été finie par un équipier !\n"
 
-#: qcsrc/client/scoreboard.qc:255
-msgid ""
-"^3caps^7                     How often a flag (CTF) or a key (KeyHunt) was "
-"captured\n"
-msgstr ""
-"^3drapeaux^7                     Combien de fois un drapeau (Capture du Drapeau) ou une clé (Chasse aux Clés) a été "
-"capturé\n"
+#: qcsrc/client/hud.qc:1689
+#, c-format
+msgid "^1%s^1 drew first blood\n"
+msgstr "^1%s^1 a inauguré le tableau des scores\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 ""
-"^3collectés^7                  Nombre de fois qu'un drapeau (CTF), clé (Chasse aux clés) "
-"ou balle (Keepway) a été pris\n"
+#: qcsrc/client/hud.qc:1693
+#, c-format
+msgid "^1%s^1 tried to occupy %s^1's teleport destination space\n"
+msgstr "^1%s^1 a essayé de prendre la place de %s^1 en se téléportant\n"
 
-#: qcsrc/client/scoreboard.qc:257
-msgid "^3fckills^7                  Number of flag carrier kills\n"
-msgstr "^3fckills^7                  Nombre de porteurs de drapeaux tués\n"
+#: qcsrc/client/hud.qc:1695
+#, c-format
+msgid "^1%s^1 was telefragged by %s\n"
+msgstr "^1%s^1 a été téléfraggué par %s\n"
 
-#: qcsrc/client/scoreboard.qc:258
-msgid "^3returns^7                  Number of flag returns\n"
-msgstr "^3returns^7                  Nombre de drapeaux retournés\n"
+#: qcsrc/client/hud.qc:1700
+#, c-format
+msgid "^1%s^1 was drowned by %s\n"
+msgstr "^1%s^1 a été noyé par %s\n"
 
-#: qcsrc/client/scoreboard.qc:259
-msgid "^3drops^7                    Number of flag drops\n"
-msgstr "^3drops^7                    Nombre de drapeaux lâchés\n"
+#: qcsrc/client/hud.qc:1705
+#, c-format
+msgid "^1%s^1 was slimed by %s\n"
+msgstr "^1%s^1 a été"
 
-#: qcsrc/client/scoreboard.qc:260
-msgid "^3lives^7                    Number of lives (LMS)\n"
-msgstr "^3lives^7                    Nombre de vies (LMS)\n"
+#: qcsrc/client/hud.qc:1710
+#, c-format
+msgid "^1%s^1 was cooked by %s\n"
+msgstr "^1%s^1 a été cuit par %s\n"
 
-#: qcsrc/client/scoreboard.qc:261
-msgid "^3rank^7                     Player rank\n"
-msgstr "^3rank^7                     Rang du joueur\n"
+#: qcsrc/client/hud.qc:1715
+#, c-format
+msgid "^1%s^1 was grounded by %s\n"
+msgstr "^1%s^1 a été écrasé par %s\n"
 
-#: qcsrc/client/scoreboard.qc:262
-msgid "^3pushes^7                   Number of players pushed into void\n"
-msgstr "^3pushes^7                   Nombre de joueurs poussés dans le vide\n"
+#: qcsrc/client/hud.qc:1720
+#, c-format
+msgid "^1%s^1 was shot into space by %s\n"
+msgstr "^1%s^1 a été fusilé vers l'espace par %s\n"
 
-#: qcsrc/client/scoreboard.qc:263
-msgid ""
-"^3destroyed^7                Number of keys destroyed by pushing them into "
-"void\n"
-msgstr ""
-"^3détruits^7                Nombre de clés détruire en les poussant dans "
-"le vide\n"
+#: qcsrc/client/hud.qc:1725
+#, c-format
+msgid "^1%s^1 was conserved by %s\n"
+msgstr "^1%s^1 a été mis en conserve par %s\n"
 
-#: qcsrc/client/scoreboard.qc:264
-msgid "^3kckills^7                  Number of keys carrier kills\n"
-msgstr "^3kckills^7                  Nombre de porteurs de clés tués\n"
+#: qcsrc/client/hud.qc:1731
+#, c-format
+msgid "^1%s^1 was thrown into a world of hurt by %s\n"
+msgstr "^1%s^1 a été lancé vers un monde de souffrance par %s\n"
 
-#: qcsrc/client/scoreboard.qc:265
-msgid "^3losses^7                   Number of times a key was lost\n"
-msgstr "3pertes^7                   Nombre de fois qu'une clé a été perdue\n"
+#: qcsrc/client/hud.qc:1735
+#, c-format
+msgid "^1%s^1 was crushed by %s\n"
+msgstr "^1%s^1 a été aplati par %s\n"
 
-#: qcsrc/client/scoreboard.qc:266
-msgid "^3laps^7                     Number of laps finished (race/cts)\n"
-msgstr "^3tours^7                     Nombre de tours finis (course/cts)\n"
+#: qcsrc/client/hud.qc:1739
+#, c-format
+msgid "^1%s^1 got shredded by %s\n"
+msgstr "^1%s^1 a été déchiqueté par %s\n"
 
-#: qcsrc/client/scoreboard.qc:267
-msgid "^3time^7                     Total time raced (race/cts)\n"
-msgstr "^3temps^7                     Temps total en course (course/cts)\n"
+#: qcsrc/client/hud.qc:1743
+#, c-format
+msgid "^1%s^1 was blasted to bits by %s\n"
+msgstr "^1%s^1 a été"
 
-#: qcsrc/client/scoreboard.qc:268
-msgid "^3fastest^7                  Time of fastest lap (race/cts)\n"
-msgstr "^3fastest^7                  Temps du tour le plus rapide (course/cts)\n"
+#: qcsrc/client/hud.qc:1747
+#, c-format
+msgid "^1%s^1 got caught in the destruction of %s^1's vehicle\n"
+msgstr "^1%s^1 a été tué dans la destruction du véhicule de %s\n"
 
-#: qcsrc/client/scoreboard.qc:269
-msgid "^3ticks^7                    Number of ticks (DOM)\n"
-msgstr "^3tics^7                    Nombre de tics (DOM)\n"
+#: qcsrc/client/hud.qc:1751
+#, c-format
+msgid "^1%s^1 was bolted down by %s\n"
+msgstr "^1%s^1 a été éléctrocuté par %s\n"
 
-#: qcsrc/client/scoreboard.qc:270
-msgid "^3takes^7                    Number of domination points taken (DOM)\n"
-msgstr "^3^7                    Nombre de points de domination capturés (DOM)\n"
+#: qcsrc/client/hud.qc:1755
+#, c-format
+msgid "^1%s^1 could find no shelter from %s^1's rockets\n"
+msgstr "^1%s^1"
 
-#: qcsrc/client/scoreboard.qc:271
-msgid "^3bckills^7                  Number of ball carrier kills\n"
-msgstr "^3bckills^7                  Nombre de porteurs de balles tués\n"
+#: qcsrc/client/hud.qc:1759
+#, c-format
+msgid "^1%s^1 dies when %s^1's wakizashi dies.\n"
+msgstr "^1%s^1 meurt quand %s^1 meurt."
 
-#: qcsrc/client/scoreboard.qc:272
-msgid ""
-"^3bctime^7                   Total amount of time holding the ball in "
-"Keepaway\n"
-msgstr ""
-"^3bctime^7                   Temps total en possession de la balle en "
-"Keepaway\n"
+#: qcsrc/client/hud.qc:1763
+#, c-format
+msgid "^1%s^1 nailed to hell by %s\n"
+msgstr "^1%s^1 a été cloué par %s\n"
 
-#: qcsrc/client/scoreboard.qc:273
-msgid ""
-"^3score^7                    Total score\n"
-"\n"
-msgstr ""
-"^3score^7                    Score total\n"
-"\n"
+#: qcsrc/client/hud.qc:1767
+#, c-format
+msgid "^1%s^1 cluster crushed by %s\n"
+msgstr "^1%s^1 a été écrabouillé par %s\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 ""
-"Avant un champ vous pouvez mettre un signe + ou -, puis une liste séparée avec des virgules\n"
-"de modes de jeux, puis un slash, pour faire apparaître un champ seulement dans certains modes.\n"
-"Vous pouvez aussi spécifier 'all' comme un champ pour montrer tous les champs disponibles\n"
-"pour le mode de jeu en cours.\n"
-"\n"
+#: qcsrc/client/hud.qc:1771
+#, c-format
+msgid "^1%s^1 dies when %s^1's raptor dies.\n"
+msgstr "^1%s^1 meurt quand le raptor de %s^1 meurt."
 
-#: 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 ""
-"Le type de jeu 'special' peut être utilisé pour\n"
-"inclure ou exclure TOUT les modes de jeux avec ou sans équipes.\n"
-"\n"
+#: qcsrc/client/hud.qc:1775
+#, c-format
+msgid "^1%s^1 was pushed into the line of fire by %s\n"
+msgstr "^1%s^1 a été poussé vers du feu par %s\n"
 
-#: qcsrc/client/scoreboard.qc:283
-msgid "Example: scoreboard_columns_set name ping pl | +ctf/field3 -dm/field4\n"
-msgstr "Exemple: scoreboard_columns_set name ping pl | +cfg/field3 -dm/field4\n"
+#: qcsrc/client/hud.qc:1779
+#, c-format
+msgid "^1%s^1 was pushed into an accident by %s\n"
+msgstr "^1%s^1 a été poussé vers la mort par %s\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 ""
-"va afficher le nom, latence et pl alignés à gauche, et les champs\n"
-"à droite de la barre verticale alignée à droite.\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 ""
-"'field3' ne sera montré qu'en mode CTF, et 'field4' sera montré dans tous les modes sauf DM.\n"
+#: qcsrc/client/hud.qc:1783
+#, c-format
+msgid "^1%s^1 was unfairly eliminated by %s\n"
+msgstr "^1%s^1 a été éliminé par %s\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
+#: qcsrc/client/hud.qc:1787
 #, c-format
-msgid "fixed missing field '%s'\n"
-msgstr "champ manquant fixé '%s'\n"
+msgid "^1%s^1 was burnt to death by %s\n"
+msgstr "^1%s^1 a été brûlé à mort par %s\n"
 
-#: qcsrc/client/scoreboard.qc:515 qcsrc/client/scoreboard.qc:522
-msgid "N/A"
-msgstr "N/A"
+#: qcsrc/client/hud.qc:1799
+#, c-format
+msgid "^1%s^1 was fragged by %s\n"
+msgstr "^1%s^1 a été fraggué par %s\n"
 
-#: qcsrc/client/scoreboard.qc:950
+#: qcsrc/client/hud.qc:1804
 #, c-format
-msgid "Accuracy stats (average %d%%)"
-msgstr "Stats de précision (moyenne %d%%)"
+msgid "^1%s^1's %s scoring spree was ended by %s\n"
+msgstr "La chaîne de tués de ^1%s^1 a été finie par %s\n"
 
-#: qcsrc/client/scoreboard.qc:1015
+#: qcsrc/client/hud.qc:1806
 #, c-format
-msgid "%d%%"
-msgstr "%d%%"
+msgid "^1%s^1's %s kill spree was ended by %s\n"
+msgstr "La chaîne de tués de ^1%s^1 a été finie par %s\n"
 
-#: qcsrc/client/scoreboard.qc:1075
-msgid "Rankings"
-msgstr "Classements"
+#: qcsrc/client/hud.qc:1809
+#, c-format
+msgid "^1%s^1 made %s scores in a row\n"
+msgstr "^1%s^1 a tué %s personnes sans mourir"
 
-#: qcsrc/client/scoreboard.qc:1170
-msgid "Scoreboard"
-msgstr "Tableau des scores"
+#: qcsrc/client/hud.qc:1811
+#, c-format
+msgid "^1%s^1 has %s frags in a row\n"
+msgstr "^1%s^1 a tué %s personnes sans mourir"
 
-#: qcsrc/client/scoreboard.qc:1215
+#: qcsrc/client/hud.qc:1814
 #, c-format
-msgid "Speed award: %d ^7(%s^7)"
-msgstr "Le plus rapide: %d ^7(%s^7)"
+msgid "%s^7 made a ^1TRIPLE SCORE\n"
+msgstr "%s^7 a fait un ^1TRIPLE SCORE\n"
 
-#: qcsrc/client/scoreboard.qc:1219
+#: qcsrc/client/hud.qc:1816
 #, c-format
-msgid "All-time fastest: %d ^7(%s^7)"
-msgstr "Record de vitesse: %d ^7(%s^7)"
+msgid "%s^7 made a ^1TRIPLE FRAG\n"
+msgstr "%s^7 a fait un ^1TRIPLE FRAG\n"
 
-#: qcsrc/client/scoreboard.qc:1246 qcsrc/client/teamplay.qc:63
-msgid "Spectators"
-msgstr "Spectateurs"
+#: qcsrc/client/hud.qc:1819
+#, c-format
+msgid "%s^7 unleashes ^1SCORING RAGE\n"
+msgstr "%s^7 est ENRAGÉ\n"
 
-#: qcsrc/client/scoreboard.qc:1252
+#: qcsrc/client/hud.qc:1821
 #, c-format
-msgid "playing on ^2%s^7"
-msgstr "en train de jouer sur ^2%s^7"
+msgid "%s^7 unleashes ^1RAGE\n"
+msgstr "%s^7 est ENRAGÉ\n"
 
-#: qcsrc/client/scoreboard.qc:1259 qcsrc/client/scoreboard.qc:1264
+#: qcsrc/client/hud.qc:1824
 #, c-format
-msgid " for up to ^1%1.0f minutes^7"
-msgstr " pour jusqu'à ^1%1.0f minutes^7"
+msgid "%s^7 made ^1TEN SCORES IN A ROW!\n"
+msgstr "%s^7 a fait ^1DIX SCORES D'AFFILÉE !"
 
-#: qcsrc/client/scoreboard.qc:1268 qcsrc/client/scoreboard.qc:1287
-msgid " or"
-msgstr " ou"
+#: qcsrc/client/hud.qc:1826
+#, c-format
+msgid "%s^7 starts the ^1MASSACRE!\n"
+msgstr "%s^7 a commencé un ^1MASSACRE !\n"
 
-#: qcsrc/client/scoreboard.qc:1271 qcsrc/client/scoreboard.qc:1278
+#: qcsrc/client/hud.qc:1829
 #, c-format
-msgid " until ^3%s %s^7"
-msgstr " jusqu'à ^3%s %s^7"
+msgid "%s^7 made ^1FIFTEEN SCORES IN A ROW!\n"
+msgstr "%s^7 a fait ^1QUINZE SCORES D'AFFILÉE !\n"
 
-#: qcsrc/client/scoreboard.qc:1272 qcsrc/client/scoreboard.qc:1279
-#: qcsrc/client/scoreboard.qc:1291 qcsrc/client/scoreboard.qc:1298
-msgid "SCO^points"
-msgstr "SCO^points"
+#: qcsrc/client/hud.qc:1831
+#, c-format
+msgid "%s^7 executes ^1MAYHEM!\n"
+msgstr "%s^7 éxécutes un ^1MAYHEM !\n"
 
-#: qcsrc/client/scoreboard.qc:1273 qcsrc/client/scoreboard.qc:1280
-#: qcsrc/client/scoreboard.qc:1292 qcsrc/client/scoreboard.qc:1299
-msgid "SCO^is beaten"
-msgstr "SCO^est battu"
+#: qcsrc/client/hud.qc:1834
+#, c-format
+msgid "%s^7 made ^1TWENTY SCORES IN A ROW!\n"
+msgstr "%s^7 a fait ^1VINGT SCORES D'AFFILÉE !\n"
 
-#: qcsrc/client/scoreboard.qc:1290 qcsrc/client/scoreboard.qc:1297
+#: qcsrc/client/hud.qc:1836
 #, c-format
-msgid " until a lead of ^3%s %s^7"
-msgstr " jusqu'à qu'il y ait un écart de ^3%s %s^7 points"
+msgid "%s^7 is a ^1BERSERKER!\n"
+msgstr "%s^7 est un ^1BERSERKER !"
 
-#: qcsrc/client/waypointsprites.qc:254
-msgid "Push"
-msgstr "Pousser"
+#: qcsrc/client/hud.qc:1839
+#, c-format
+msgid "%s^7 made ^1TWENTY FIVE SCORES IN A ROW!\n"
+msgstr "%s^7 a fait ^1VINGT-CINQ SCORES D'AFFILÉE !\n"
 
-#: qcsrc/client/waypointsprites.qc:255
-msgid "Destroy"
-msgstr "Détruire"
+#: qcsrc/client/hud.qc:1841
+#, c-format
+msgid "%s^7 inflicts ^1CARNAGE!\n"
+msgstr "%s^7 a infligé un ^1CARNAGE !\n"
 
-#: qcsrc/client/waypointsprites.qc:256
-msgid "Defend"
-msgstr "Défendre"
+#: qcsrc/client/hud.qc:1844
+#, c-format
+msgid "%s^7 made ^1THIRTY SCORES IN A ROW!\n"
+msgstr "%s^7 a fait ^1TRENTE SCORES D'AFFILÉE !\n"
 
-#: qcsrc/client/waypointsprites.qc:257
-msgid "Blue base"
-msgstr "Base bleue"
+#: qcsrc/client/hud.qc:1846
+#, c-format
+msgid "%s^7 unleashes ^1ARMAGEDDON!\n"
+msgstr "%s^7 a fait un ^1ARMAGEDDON !\n"
 
-#: qcsrc/client/waypointsprites.qc:258
-msgid "DANGER"
-msgstr "DANGER"
+#: qcsrc/client/hud.qc:1854
+#, c-format
+msgid "^1%s^1 was in the water for too long\n"
+msgstr "^1%s^1 est resté dans l'eau trop longtemps\n"
 
-#: qcsrc/client/waypointsprites.qc:259
-msgid "Flag carrier"
-msgstr "Porteur du drapeau"
+#: qcsrc/client/hud.qc:1856
+#, c-format
+msgid "^1%s^1 drowned\n"
+msgstr "^1%s^1 s'est noyé\n"
 
-#: qcsrc/client/waypointsprites.qc:260
-msgid "Dropped flag"
-msgstr "Drapeau lâché"
+#: qcsrc/client/hud.qc:1861
+#, c-format
+msgid "^1%s^1 was slimed\n"
+msgstr "^1%s^1 a été acidulé\n"
 
-#: qcsrc/client/waypointsprites.qc:261
-msgid "Help me!"
-msgstr "Aidez-moi !"
+#: qcsrc/client/hud.qc:1867
+#, c-format
+msgid "^1%s^1 found a hot place\n"
+msgstr "^1%s^1 a trouvé un endroit chaud\n"
 
-#: qcsrc/client/waypointsprites.qc:262
-msgid "Here"
-msgstr "Ici"
+#: qcsrc/client/hud.qc:1869
+#, c-format
+msgid "^1%s^1 turned into hot slag\n"
+msgstr "^1%s^1 s'est transformé en merguez\n"
 
-#: qcsrc/client/waypointsprites.qc:263
-msgid "Dropped key"
-msgstr "Clé lâchée"
+#: qcsrc/client/hud.qc:1876
+#, c-format
+msgid "^1%s^1 tested gravity (and it worked)\n"
+msgstr "^1%s^1 a testé la gravité (et ça marche)\n"
 
-#: qcsrc/client/waypointsprites.qc:264 qcsrc/client/waypointsprites.qc:266
-#: qcsrc/client/waypointsprites.qc:267 qcsrc/client/waypointsprites.qc:268
-#: qcsrc/client/waypointsprites.qc:269
-msgid "Key carrier"
-msgstr "Porteur de clé"
+#: qcsrc/client/hud.qc:1878
+#, c-format
+msgid "^1%s^1 hit the ground with a crunch\n"
+msgstr "^1%s^1 s'est écrasé sur le sol\n"
 
-#: qcsrc/client/waypointsprites.qc:265
-msgid "Run here"
-msgstr "Courez ici"
+#: qcsrc/client/hud.qc:1883
+#, c-format
+msgid "^1%s^1 became a shooting star\n"
+msgstr "^1%s^1 est devenue une étoile filante\n"
 
-#: qcsrc/client/waypointsprites.qc:270
-msgid "Red base"
-msgstr "Base rouge"
+#: qcsrc/client/hud.qc:1889
+#, c-format
+msgid "^1%s^1 discovered a swamp\n"
+msgstr "^1%s^1 a découvert un marécage\n"
 
-#: qcsrc/client/waypointsprites.qc:271
-msgid "Waypoint"
-msgstr "Destination"
+#: qcsrc/client/hud.qc:1891
+#, c-format
+msgid "^1%s^1 is now conserved for centuries to come\n"
+msgstr "^1%s^1 est maintenant conservé pour les siècles à venir\n"
 
-#: qcsrc/client/waypointsprites.qc:272 qcsrc/client/waypointsprites.qc:273
-#: qcsrc/client/waypointsprites.qc:274
-msgid "Generator"
-msgstr "Générateur"
+#: qcsrc/client/hud.qc:1898
+#, c-format
+msgid "^1%s^1 ran into a turret\n"
+msgstr "^1%s^1 a sprinté vers une tourelle\n"
 
-#: qcsrc/client/waypointsprites.qc:275 qcsrc/client/waypointsprites.qc:276
-#: qcsrc/client/waypointsprites.qc:277 qcsrc/client/waypointsprites.qc:278
-#: qcsrc/client/waypointsprites.qc:279 qcsrc/client/waypointsprites.qc:280
-#: qcsrc/client/waypointsprites.qc:281 qcsrc/client/waypointsprites.qc:282
-#: qcsrc/client/waypointsprites.qc:306 qcsrc/client/waypointsprites.qc:307
-#: qcsrc/client/waypointsprites.qc:308 qcsrc/client/waypointsprites.qc:309
-#: qcsrc/client/waypointsprites.qc:310
-msgid "Control point"
-msgstr "Point de contrôle"
+#: qcsrc/client/hud.qc:1904
+#, c-format
+msgid "^1%s^1 was laserd down by a eWheel turret \n"
+msgstr "^1%s^1 a été tué par une tourelle eWheel\n"
 
-#: qcsrc/client/waypointsprites.qc:283
-msgid "Checkpoint"
-msgstr "Point de contrôle"
+#: qcsrc/client/hud.qc:1907
+#, c-format
+msgid "^1%s^1 got caught in the flac \n"
+msgstr "^1%s^1 a été pris par une tourelle FLAC %s\n"
 
-#: qcsrc/client/waypointsprites.qc:284 qcsrc/client/waypointsprites.qc:286
-msgid "Finish"
-msgstr "Arrivée"
+#: qcsrc/client/hud.qc:1910
+#, c-format
+msgid "^1%s^1 was riddeld full of riddled by a machinegun turret \n"
+msgstr "^1%s^1 a été tué par une tourelle mitrailleuse\n"
 
-#: qcsrc/client/waypointsprites.qc:285 qcsrc/client/waypointsprites.qc:286
-msgid "Start"
-msgstr "Départ"
+#: qcsrc/client/hud.qc:1913
+#, c-format
+msgid "^1%s^1 got served a led enrichment by a walker turret \n"
+msgstr "^1%s^1 a été enrichi avec des balles par une tourelle marcheuse\n"
 
-#: qcsrc/client/waypointsprites.qc:287 qcsrc/client/waypointsprites.qc:288
-msgid "Ball"
-msgstr "Balle"
+#: qcsrc/client/hud.qc:1916
+#, c-format
+msgid "^1%s^1 was impaled by a walker turret \n"
+msgstr "^1%s^1 a été impalé par une tourelle marcheuse\n"
 
-#: qcsrc/client/waypointsprites.qc:289
-msgid "Ball carrier"
-msgstr "Porteur de balle"
+#: qcsrc/client/hud.qc:1919
+#, c-format
+msgid "^1%s^1 was rocketed to hell by a walker turret \n"
+msgstr "^1%s^1 a été explosé par une tourelle marcheuse\n"
 
-#: qcsrc/client/waypointsprites.qc:290 qcsrc/server/w_laser.qc:2
-msgid "Laser"
-msgstr "Laser"
+#: qcsrc/client/hud.qc:1922
+#, c-format
+msgid "^1%s^1 was blasted away hellion turret \n"
+msgstr "^1%s^1 a été tué par une tourelle hellion\n"
 
-#: qcsrc/client/waypointsprites.qc:291 qcsrc/server/w_shotgun.qc:2
-msgid "Shotgun"
-msgstr "Fusil"
+#: qcsrc/client/hud.qc:1925
+#, c-format
+msgid "^1%s^1 could not hide from the hunter turret \n"
+msgstr "%s n'a pas pu se cacher de la tourelle chasseuse\n"
 
-#: qcsrc/client/waypointsprites.qc:292 qcsrc/server/w_uzi.qc:2
-msgid "Machine Gun"
-msgstr "Mitraillette"
+#: qcsrc/client/hud.qc:1928
+#, c-format
+msgid "^1%s^1 got turned into smoldering gibs by a mlrs turret \n"
+msgstr "^1%s^1 a été transformé en gigot brûlant par une tourelle MLRS\n"
 
-#: qcsrc/client/waypointsprites.qc:293 qcsrc/server/w_grenadelauncher.qc:2
-msgid "Mortar"
-msgstr "Lance-grenades"
+#: qcsrc/client/hud.qc:1931
+#, c-format
+msgid "^1%s^1 got served some superheated plasma from a plasma turret \n"
+msgstr "^1%s^1 a été servi avec du plasma très chaud venant d'une tourelle\n"
 
-#: qcsrc/client/waypointsprites.qc:294 qcsrc/server/w_electro.qc:2
-msgid "Electro"
-msgstr "Electro"
+#: qcsrc/client/hud.qc:1934
+#, c-format
+msgid "^1%s^1 was phased out \n"
+msgstr "^1%s^1 a disparu\n"
 
-#: qcsrc/client/waypointsprites.qc:295 qcsrc/server/w_crylink.qc:2
-msgid "Crylink"
-msgstr "Crylink"
+#: qcsrc/client/hud.qc:1937
+#, c-format
+msgid "^1%s^1 was electrocuted by a tesla turret \n"
+msgstr "^1%s^1 a été éléctrocuté par une tourelle tesla\n"
 
-#: qcsrc/client/waypointsprites.qc:296 qcsrc/server/w_nex.qc:2
-msgid "Nex"
-msgstr "Nex"
+#: qcsrc/client/hud.qc:1953
+#, c-format
+msgid "^1%s^1 died in an accident\n"
+msgstr "^1%s^1 est mort dans un accident\n"
 
-#: qcsrc/client/waypointsprites.qc:297 qcsrc/server/w_hagar.qc:2
-msgid "Hagar"
-msgstr "Hagar"
+#: qcsrc/client/hud.qc:1957
+#, c-format
+msgid "^1%s^1 was unfairly eliminated\n"
+msgstr "^1%s^1 a été éliminé\n"
 
-#: qcsrc/client/waypointsprites.qc:298 qcsrc/server/w_rocketlauncher.qc:2
-msgid "Rocket Launcher"
-msgstr "Lance-roquettes"
+#: qcsrc/client/hud.qc:1963
+#, c-format
+msgid "^1%s^1 felt a little hot\n"
+msgstr "^1%s^1 avait un peu chaud\n"
 
-#: qcsrc/client/waypointsprites.qc:299 qcsrc/server/w_porto.qc:2
-msgid "Port-O-Launch"
-msgstr "Lance-O-Port"
+#: qcsrc/client/hud.qc:1965
+#, c-format
+msgid "^1%s^1 burnt to death\n"
+msgstr "^1%s^1 a été brûlé à mort\n"
 
-#: qcsrc/client/waypointsprites.qc:300
-msgid "Minstanex"
-msgstr "Minstanex"
+#: qcsrc/client/hud.qc:1972
+#, c-format
+msgid "^1%s^1 needs a restart\n"
+msgstr "^1%s^1 avait besoin d'un nouveau départ\n"
 
-#: qcsrc/client/waypointsprites.qc:301
-msgid "Hook"
-msgstr "Grappin"
+#: qcsrc/client/hud.qc:1979
+#, c-format
+msgid "^1%s^1 needs a restart after a %d scoring spree\n"
+msgstr ""
+"^1%s^1 avait besoin d'un nouveau départ après une chaîne de scores de %d\n"
 
-#: qcsrc/client/waypointsprites.qc:302 qcsrc/server/w_fireball.qc:2
-msgid "Fireball"
-msgstr "Boule de feu"
+#: qcsrc/client/hud.qc:1981
+#, c-format
+msgid "^1%s^1 died with a %d kill spree\n"
+msgstr "^1%s^1 est mort après avoir fait une chaîne de %d tués\n"
 
-#: qcsrc/client/waypointsprites.qc:303
-msgid "HLAC"
-msgstr "HLAC"
+#: qcsrc/client/hud.qc:1985
+#, c-format
+msgid "%s^7 got the %s\n"
+msgstr "%s^7 a pris le %s\n"
 
-#: qcsrc/client/waypointsprites.qc:304 qcsrc/server/w_rifle.qc:2
-msgid "Rifle"
-msgstr "Fusil sniper"
+#: qcsrc/client/hud.qc:1988
+#, c-format
+msgid "%s^7 lost the %s\n"
+msgstr "%S^7 a perdu le %s\n"
 
-#: qcsrc/client/waypointsprites.qc:305 qcsrc/server/w_minelayer.qc:2
-msgid "Mine Layer"
-msgstr "Lance-mines"
+#: qcsrc/client/hud.qc:1991
+#, c-format
+msgid "%s^7 picked up the %s\n"
+msgstr "%s^7 a collecté le %s\n"
 
-#: qcsrc/client/waypointsprites.qc:311
-msgid "Invisibility"
-msgstr "Invisibilité"
+#: qcsrc/client/hud.qc:1994
+#, c-format
+msgid "%s^7 returned the %s\n"
+msgstr "%s^7 a retourné le %s\n"
 
-#: qcsrc/client/waypointsprites.qc:312
-msgid "Extra life"
-msgstr "Vie supplémentaire"
+#: qcsrc/client/hud.qc:1997
+#, c-format
+msgid "%s^7 captured the %s%s\n"
+msgstr "%s^7 a capturé le %s%s\n"
 
-#: qcsrc/client/waypointsprites.qc:313
-msgid "Speed"
-msgstr "Vitesse"
+#: qcsrc/client/hud.qc:2016
+#, c-format
+msgid "%s^7 has picked up the ball!\n"
+msgstr "%s^7 a collecté la balle !\n"
 
-#: qcsrc/client/waypointsprites.qc:314
-msgid "Strength"
-msgstr "Force"
+#: qcsrc/client/hud.qc:2021
+#, c-format
+msgid "%s^7 has dropped the ball!\n"
+msgstr "%s^7 a lâché la balle !\n"
 
-#: qcsrc/client/waypointsprites.qc:315
-msgid "Shield"
-msgstr "Bouclier"
+#: qcsrc/client/hud.qc:2032
+#, c-format
+msgid "You are now on: %s"
+msgstr "Vous êtes maintenant dans l'%s"
 
-#: qcsrc/client/waypointsprites.qc:316
-msgid "Fuel regen"
-msgstr "Régén. essence"
+#: qcsrc/client/hud.qc:2034
+#, c-format
+msgid ""
+"You have been moved into a different team to improve team balance\n"
+"You are now on: %s"
+msgstr ""
+"Vous avez été changé d'équipe pour améliorer l'équilibre des équipes\n"
+"Vous êtes maintenant dans l'%s"
 
-#: qcsrc/client/waypointsprites.qc:317
-msgid "Jet Pack"
-msgstr "Jet Pack"
+#: qcsrc/client/hud.qc:2037
+msgid "^1Reconsider your tactics, camper!"
+msgstr "^1Change de tactique, campeur !"
 
-#: qcsrc/client/waypointsprites.qc:318
-msgid "Frozen!"
-msgstr "Gelé!"
+#: qcsrc/client/hud.qc:2039
+msgid "^1Die camper!"
+msgstr "^1Meurs campeur !"
 
-#: qcsrc/client/waypointsprites.qc:319
-msgid "Tagged"
-msgstr "Verrouillé"
+#: qcsrc/client/hud.qc:2042
+msgid "^1You are reinserted into the game for running out of ammo..."
+msgstr ""
+"^1Vous avez été réinséré dans le jeu car vous n'aviez plus de munitions..."
 
-#: qcsrc/client/waypointsprites.qc:320
-msgid "Vehicle"
-msgstr "Véhicule"
+#: qcsrc/client/hud.qc:2044
+msgid "^1You were killed for running out of ammo..."
+msgstr "^1Vous avez été tué car vous n'aviez plus de munitions..."
 
-#: qcsrc/client/waypointsprites.qc:590
-msgid "Spam"
-msgstr "Spam"
+#: qcsrc/client/hud.qc:2047
+msgid "^1You need to preserve your health"
+msgstr "^1Vous aviez besoin de préserver votre santé"
 
-#: qcsrc/client/waypointsprites.qc:594
-#, c-format
-msgid "%s needing help!"
-msgstr "%s a besoin d'aide !"
+#: qcsrc/client/hud.qc:2049
+msgid "^1You grew too old without taking your medicine"
+msgstr "^1Vous êtes deven trop vieux et vous n'aviez pas pris vos médicaments"
+
+#: qcsrc/client/hud.qc:2052
+msgid "^1Don't go against team mates!"
+msgstr "^1Ne tirez pas sur vos équipiers !"
+
+#: qcsrc/client/hud.qc:2054
+msgid "^1Don't shoot your team mates!"
+msgstr "^1Ne tirez pas sur vos équipiers !"
 
-#: qcsrc/client/hud_config.qc:136
+#: qcsrc/client/hud.qc:2059
+msgid "^1You need to be more careful!"
+msgstr "^1Vous devez être plus prudent !"
+
+#: qcsrc/client/hud.qc:2061
+msgid "^1You killed your own dumb self!"
+msgstr "^1Vous vous êtes suicidé !"
+
+#: qcsrc/client/hud.qc:2066
 #, c-format
-msgid "^2Successfully exported to %s! (Note: It's saved in data/data/)\n"
-msgstr "^2Exporté avec succès en tant que %s ! (Note: C'est sauvegardé dans data/data/)\n"
+msgid "^1Moron! You went against ^7%s^1, a team mate!"
+msgstr "Idiot ! Vous avez tué ^7%s^1, un équipier!"
 
-#: qcsrc/client/hud_config.qc:140
+#: qcsrc/client/hud.qc:2068
 #, c-format
-msgid "^1Couldn't write to %s\n"
-msgstr "^1Ne peut pas écrire vers %s\n"
+msgid "^1Moron! You fragged ^7%s^1, a team mate!"
+msgstr "^1Idiot ! Vous avez tué ^7%s^1, un équipier !"
 
-#: qcsrc/client/ctf.qc:35
-msgid "----- Order Menu -----"
-msgstr "----- Menu d'ordre -----"
+#: qcsrc/client/hud.qc:2072
+msgid "^1First score"
+msgstr "^1Premier score"
 
-#: qcsrc/client/ctf.qc:36
-#, c-format
-msgid "Order: %s"
-msgstr "Ordre: %s"
+#: qcsrc/client/hud.qc:2074
+msgid "^1First blood"
+msgstr "^1Premier tué"
 
-#: qcsrc/client/ctf.qc:37
-msgid "1) ^3previous page"
-msgstr "1) ^3page précédente"
+#: qcsrc/client/hud.qc:2078
+msgid "^1First casualty"
+msgstr "^1Première victime"
 
-#: qcsrc/client/ctf.qc:38
-msgid "2) ^3next page"
-msgstr "2) ^3page suivante"
+#: qcsrc/client/hud.qc:2080
+msgid "^1First victim"
+msgstr "^1Première victime"
 
-#: qcsrc/client/ctf.qc:55 qcsrc/client/ctf.qc:161
-msgid "ESC) Exit Menu"
-msgstr "ESC) Quitter le menu"
+#: qcsrc/client/hud.qc:2084
+#, c-format
+msgid "^1You scored against ^7%s^1 who was typing!"
+msgstr "^1Vous avez scoré ^7%s^1 qui était en train de taper !"
 
-#: qcsrc/client/ctf.qc:126
+#: qcsrc/client/hud.qc:2086
 #, c-format
-msgid "Couldn't find player %d\n"
-msgstr "Ne peut pas trouver le joueur %d\n"
+msgid "^1You typefragged ^7%s"
+msgstr "^1Vous avez typefraggué ^7%s"
 
-#: qcsrc/client/ctf.qc:154
-msgid "----- Command Menu -----"
-msgstr "----- Menu de commandes -----"
+#: qcsrc/client/hud.qc:2090
+#, c-format
+msgid "^1You were scored against by ^7%s^1 while you were typing!"
+msgstr "^1Vous avez été scoré par ^7%s^1 pendant que vous tapiez!"
 
-#: qcsrc/client/ctf.qc:155
-msgid "Issue orders:"
-msgstr "Donner des ordres:"
+#: qcsrc/client/hud.qc:2092
+#, c-format
+msgid "^1You were typefragged by ^7%s"
+msgstr "^1Vous avez été typefraggué par ^7%s"
 
-#: qcsrc/client/ctf.qc:156
-msgid " 1) Attack"
-msgstr "1) Attaquer"
+#: qcsrc/client/hud.qc:2096
+#, c-format
+msgid "^4You scored against ^7%s"
+msgstr "^4Vous avez scoré contre ^7%s"
 
-#: qcsrc/client/ctf.qc:158
-msgid " 2) Defend"
-msgstr "2) Défendre"
+#: qcsrc/client/hud.qc:2098
+#, c-format
+msgid "^4You fragged ^7%s"
+msgstr "^4Vous avez fraggué ^7%s"
 
-#: qcsrc/client/ctf.qc:160
-msgid "3) Resign from command."
-msgstr "3) Abandonner l'ordre"
+#: qcsrc/client/hud.qc:2102
+#, c-format
+msgid "^1You were scored against by ^7%s"
+msgstr "^1Vous avez été scoré par ^7%s"
 
-#: qcsrc/client/ctf.qc:212
-msgid "You're commander!"
-msgstr "Vous êtes le commandant !"
+#: qcsrc/client/hud.qc:2104
+#, c-format
+msgid "^1You were fragged by ^7%s"
+msgstr "^1Vous avez été fraggué pr ^7%s"
 
-#: qcsrc/client/ctf.qc:215
-msgid "Awaiting orders..."
-msgstr "En attente d'ordres..."
+#: qcsrc/client/hud.qc:2109
+msgid "^1Watch your step!"
+msgstr "^1Attention à la marche !"
 
-#: qcsrc/client/Main.qc:30
-msgid "ERROR - MENU IS VISIBLE BUT NO MENU WAS DEFINED!"
-msgstr "ERREUR - LE MENU EST VISIBLE MAIS NON DÉFIINI !"
+#: qcsrc/client/hud.qc:2178 qcsrc/client/hud.qc:2179 qcsrc/client/hud.qc:2685
+#, c-format
+msgid "Player %d"
+msgstr "Joueur %d"
 
-#: qcsrc/client/Main.qc:56
-msgid ""
-"^3Your engine build is outdated\n"
-"^3This Server uses a newer QC VM. Please update!\n"
-msgstr ""
-"^3Votre version n'est pas à jour!\n"
-"^3Ce Serveur utilise une nouvelle version du QC VM. Veuillez mettre à jour !\n"
+#: qcsrc/client/hud.qc:2995
+msgid "^1Intermediate 1 (+15.42)"
+msgstr "^1Intermédiaire 1 (+15.42)"
 
-#: qcsrc/client/Main.qc:66
+#: qcsrc/client/hud.qc:2997 qcsrc/client/hud.qc:3039 qcsrc/client/hud.qc:3080
 #, c-format
-msgid "^4CSQC Build information: ^1%s\n"
-msgstr "^4Information sur la version de CSQC: ^1%s\n"
+msgid "^1PENALTY: %.1f (%s)"
+msgstr "^1PÉNALITÉ: %.1f (%s)"
 
-#: qcsrc/client/Main.qc:237 qcsrc/client/Main.qc:253
+#: qcsrc/client/hud.qc:3082
 #, c-format
-msgid "trying to switch to unsupported team %d\n"
-msgstr "tentative de changement vers une équipe non supportée : %d\n"
+msgid "^2PENALTY: %.1f (%s)"
+msgstr "^2PÉLANITÉ %.1f (%s)"
 
-#: qcsrc/client/Main.qc:370
-msgid "hud_save configname   (saves to hud_skinname_configname.cfg)\n"
-msgstr "hud_save configname (saves to hud_skinname_configname.cfg)\n"
+#: qcsrc/client/hud.qc:3110
+msgid "^1You must answer before entering hud configure mode\n"
+msgstr ""
+"^1Vous devez répondre avant d'entrer le mode de configuration de "
+"l'interface\n"
 
-#: qcsrc/client/Main.qc:494
-msgid "Usage: cl_cmd COMMAND..., where possible commands are:\n"
-msgstr "Usage: cl_cmd COMMAND..., où les commandes possibles sont :\n"
+#: qcsrc/client/hud.qc:3115
+msgid "^2Name ^7instead of \"^1Anonymous player^7\" in stats"
+msgstr ""
+"^2Votre pseudonyme ^7à la place de \"^1Unregistered player^7\" dans les "
+"statistiques"
 
-#: qcsrc/client/Main.qc:495
-msgid "  settemp cvar value\n"
-msgstr " setteam cvar value\n"
+#: qcsrc/client/hud.qc:3197
+msgid "A vote has been called for:"
+msgstr "Un vote a été lancé pour :"
 
-#: qcsrc/client/Main.qc:496
-msgid "  scoreboard_columns_set ...\n"
-msgstr " scoreboard_columns_set ...\n"
+#: qcsrc/client/hud.qc:3199
+msgid "Allow servers to store and display your name?"
+msgstr "Autoriser les serveurs à stocker et afficher votre pseudonyme ?"
 
-#: qcsrc/client/Main.qc:497
-msgid "  scoreboard_columns_help\n"
-msgstr "  scoreboard_columns_help\n"
+#: qcsrc/client/hud.qc:3203
+msgid "^1Configure the HUD"
+msgstr "^1Configurer l'interface"
 
-#: qcsrc/client/Main.qc:726
+#: qcsrc/client/hud.qc:3207
 #, c-format
-msgid "A CSQC entity changed its owner! (edict: %d, classname: %s)\n"
-msgstr "Une entité CSQC a changé de propriétaire ! (edict: %d, classname: %s)\n"
+msgid "Yes (%s): %d"
+msgstr "Oui (%s): %d"
 
-#: qcsrc/client/Main.qc:964
+#: qcsrc/client/hud.qc:3209
 #, c-format
-msgid "A CSQC entity changed its type! (edict: %d, classname: %s)\n"
-msgstr "Une entité CSQC a changé de type ! (edict: %d, classname: %s)\n"
+msgid "No (%s): %d"
+msgstr "Non (%s): %d"
 
-#: qcsrc/client/Main.qc:1005
-#, c-format
-msgid ""
-"Unknown entity type in CSQC_Ent_Update (enttype: %d, edict: %d, classname: "
-"%s)\n"
-msgstr ""
-"Entité inconnue ! CSQC_Ent_Update (enttype: %d, edict: %d, classname: "
-"%s)\n"
+#: qcsrc/client/hud.qc:3712 qcsrc/client/hud.qc:3715 qcsrc/client/hud.qc:3717
+msgid "Personal best"
+msgstr "Record personnel"
+
+#: qcsrc/client/hud.qc:3730 qcsrc/client/hud.qc:3733 qcsrc/client/hud.qc:3735
+msgid "Server best"
+msgstr "Record du serveur"
+
+#: qcsrc/client/hud.qc:4081
+msgid "^3Player^7: This is the chat area."
+msgstr "^3Joueur^7: Ceci est la zone du chat."
 
-#: qcsrc/client/Main.qc:1461
+#: qcsrc/client/hud.qc:4149
 #, c-format
-msgid "%s (not bound)"
-msgstr "%s (non assigné)"
+msgid "FPS: %.*f"
+msgstr "FPS: %.*f"
 
-#: qcsrc/client/Main.qc:1466 qcsrc/client/hud.qc:230
+#: qcsrc/client/hud.qc:4216
+msgid "^1Observing"
+msgstr "^1Observation"
+
+#: qcsrc/client/hud.qc:4219 qcsrc/client/hud.qc:4221
 #, c-format
-msgid "%s (%s)"
-msgstr "%s (%s)"
+msgid "^1Spectating: ^7%s"
+msgstr "^1En spectateur sur : ^7%s"
 
-#: qcsrc/client/mapvoting.qc:28
-msgid " (1 vote)"
-msgstr " (1 vote)"
+#: qcsrc/client/hud.qc:4226
+#, c-format
+msgid "^1Press ^3%s^1 to spectate"
+msgstr "^1Appuyez sur ^3%s^1 pour être en spectateur sur un joueur"
 
-#: qcsrc/client/mapvoting.qc:30
+#: qcsrc/client/hud.qc:4228
 #, c-format
-msgid " (%d votes)"
-msgstr " (%d votes)"
+msgid "^1Press ^3%s^1 for another player"
+msgstr "^1Appuyez sur ^3%s^1 pour un autre joueur"
 
-#: qcsrc/client/mapvoting.qc:113
-msgid "Don't care"
-msgstr "Ne pas voter"
+#: qcsrc/client/hud.qc:4232
+#, c-format
+msgid "^1Use ^3%s^1 or ^3%s^1 to change the speed"
+msgstr "^1Utilisez ^3%s^1 ou ^3%s^1 pour changer la vitesse"
 
-#: qcsrc/client/mapvoting.qc:194
-msgid "Vote for a map"
-msgstr "Votez pour une carte"
+#: qcsrc/client/hud.qc:4234
+#, c-format
+msgid "^1Press ^3%s^1 to observe"
+msgstr "^1Utiliez ^3ùs^1 pour observer"
 
-#: qcsrc/client/mapvoting.qc:200
+#: qcsrc/client/hud.qc:4237
 #, c-format
-msgid "%d seconds left"
-msgstr "%d secondes restantes"
+msgid "^1Press ^3%s^1 for gamemode info"
+msgstr "^1Appuyez sur ^3%s^1 pour de l'information"
 
-#: qcsrc/client/mapvoting.qc:263
-msgid ""
-"mv_mapdownload: ^3You're not supposed to use this command on your own!\n"
-msgstr ""
-"mv_mapdownload: ^3Vous ne devez pas utiliser cette commande seule !\n"
+#: qcsrc/client/hud.qc:4241
+msgid "^1Wait for your turn to join"
+msgstr "^1Attendez votre tour pour jouer"
 
-#: qcsrc/client/mapvoting.qc:273
-msgid "^1Error:^7 Couldn't find pak index.\n"
-msgstr "^1Erreur:^7 Ne peut pas trouver l'index du pak.\n"
+#: qcsrc/client/hud.qc:4247
+msgid "^1Match has already begun"
+msgstr "^1La partie a déjà commencé"
 
-#: qcsrc/client/mapvoting.qc:282
-msgid "Requesting preview...\n"
-msgstr "Demande d'aperçu...\n"
+#: qcsrc/client/hud.qc:4249
+msgid "^1You have no more lives left"
+msgstr "^1Vous n'avez plus de vies"
 
-#: qcsrc/client/movetypes.qc:163
+#: qcsrc/client/hud.qc:4251 qcsrc/client/hud.qc:4254
 #, c-format
-msgid "Can't unstick an entity (edict: %d, classname: %s, origin: %s)\n"
-msgstr "Ne peut pas décoller une entité (edict: %d, classname: %s, origin: %s)\n"
+msgid "^1Press ^3%s^1 to join"
+msgstr "^1Appuyez sur ^3%s^1 pour jouer"
 
-#: qcsrc/client/movetypes.qc:166
+#: qcsrc/client/hud.qc:4262
 #, c-format
-msgid "Sucessfully unstuck an entity (edict: %d, classname: %s, origin: %s)\n"
-msgstr "Entité décollée avec succès (edict: %d, classname: %s, origin: %s)\n"
+msgid "^1Game starts in ^3%d^1 seconds"
+msgstr "^1La partie commence dans ^3%d^1 secondes"
 
-#: qcsrc/client/miscfunctions.qc:23
-msgid "^1Begin!"
-msgstr "^1Commencez !"
+#: qcsrc/client/hud.qc:4269
+msgid "^2Currently in ^1warmup^2 stage!"
+msgstr "^2Actuellement en ^1mode échauffement^2 !"
 
-#: qcsrc/client/miscfunctions.qc:34
+#: qcsrc/client/hud.qc:4284
 #, c-format
-msgid "^1Game starts in %d seconds"
-msgstr "^1La partie commence dans %d secondes"
+msgid "%sPress ^3%s%s to end warmup"
+msgstr "%sAppuyez sur ^3%s%s pour finir l'échauffement"
 
-#: qcsrc/client/miscfunctions.qc:113
-msgid "^1RED^7 flag"
-msgstr "^7drapeau ^1ROUGE^7"
+#: qcsrc/client/hud.qc:4286
+#, c-format
+msgid "%sPress ^3%s%s once you are ready"
+msgstr "%sAppuyez sur ^3%s%s quand vous êtes prêt"
 
-#: qcsrc/client/miscfunctions.qc:118
-msgid "^4BLUE^7 flag"
-msgstr "^7drapeau ^4BLEU^7"
+#: qcsrc/client/hud.qc:4291
+msgid "^2Waiting for others to ready up to end warmup..."
+msgstr "^2En attente des autres joueurs pour finir l'échauffement..."
 
-#: qcsrc/client/miscfunctions.qc:126
-#, c-format
-msgid "You picked up the %s!"
-msgstr "Vous avez pris le %s !"
+#: qcsrc/client/hud.qc:4293
+msgid "^2Waiting for others to ready up..."
+msgstr "^2En attente des autres joueurs pour être prêt..."
 
-#: qcsrc/client/miscfunctions.qc:130
+#: qcsrc/client/hud.qc:4299
 #, c-format
-msgid "You got the %s!"
-msgstr "Vous avez le %s !"
+msgid "^2Press ^3%s^2 to end warmup"
+msgstr "^2Appuyez sur ^3%s^2 pour finir l'échauffement"
 
-#: qcsrc/client/miscfunctions.qc:283
-msgid "Trying to remove a team which is not in the teamlist!"
-msgstr "Tentative de suppression d'une équipe qui n'est pas dans la liste d'équipes !"
+#: qcsrc/client/hud.qc:4320
+msgid "Teamnumbers are unbalanced!"
+msgstr "Les équipes ne sont pas équilibrées !"
 
-#: qcsrc/client/teamplay.qc:64
-msgid "Red Team"
-msgstr "Équipe Rouge"
+#: qcsrc/client/hud.qc:4325
+#, c-format
+msgid " Press ^3%s%s to adjust"
+msgstr " Appuyez sur ^3%s%s pour ajuster"
 
-#: qcsrc/client/teamplay.qc:65
-msgid "Blue Team"
-msgstr "Équipe Bleue"
+#: qcsrc/client/hud.qc:4333
+msgid "^7Press ^3ESC ^7to show HUD options."
+msgstr "^7Appuyez sur ^3ESC ^7pour afficher les options de l'interface."
 
-#: qcsrc/client/teamplay.qc:66
-msgid "Yellow Team"
-msgstr "Équipe Jaune"
+#: qcsrc/client/hud.qc:4335
+msgid "^3Doubleclick ^7a panel for panel-specific options."
+msgstr "^3Double-cliquez ^7un panneau pour des options."
 
-#: qcsrc/client/teamplay.qc:67
-msgid "Pink Team"
-msgstr "Équipe Rose"
+#: qcsrc/client/hud.qc:4337
+msgid "^3CTRL ^7to disable collision testing, ^3SHIFT ^7and"
+msgstr "^3Contrôle ^7pour désactiver le test de collision, ^3Majuscule ^7 et"
 
-#: qcsrc/client/hud.qc:160
-msgid "1st"
-msgstr "1er"
+#: qcsrc/client/hud.qc:4339
+msgid "^3ALT ^7+ ^3ARROW KEYS ^7for fine adjustments."
+msgstr "^3Alt ^7+ ^3Flèches ^7 pour des ajustements précis."
 
-#: qcsrc/client/hud.qc:162
-msgid "2nd"
-msgstr "2ème"
+#: qcsrc/client/hud.qc:4377
+msgid " qu/s"
+msgstr " qu/s"
 
-#: qcsrc/client/hud.qc:164
-msgid "3rd"
-msgstr "3ème"
+#: qcsrc/client/hud.qc:4381
+msgid " m/s"
+msgstr " m/s"
 
-#: qcsrc/client/hud.qc:166
+#: qcsrc/client/hud.qc:4385
+msgid " km/h"
+msgstr " km/h"
+
+#: qcsrc/client/hud.qc:4389
+msgid " mph"
+msgstr " mph"
+
+#: qcsrc/client/hud.qc:4393
+msgid " knots"
+msgstr " nœuds"
+
+#: qcsrc/client/hud.qc:5059
+msgid "Automatically fixed wrong/missing panel numbers in _hud_panelorder\n"
+msgstr "Nombres des panneaux faux/manquants fixés dans _hud_panelorder\n"
+
+#: qcsrc/client/hud_config.qc:185
 #, c-format
-msgid "%dth"
-msgstr "%dème"
+msgid "^2Successfully exported to %s! (Note: It's saved in data/data/)\n"
+msgstr ""
+"^2Exporté avec succès en tant que %s ! (Note: C'est sauvegardé dans data/"
+"data/)\n"
 
-#: qcsrc/client/hud.qc:198
+#: qcsrc/client/hud_config.qc:189
 #, c-format
-msgid " (-%dL)"
-msgstr " (-%dL)"
+msgid "^1Couldn't write to %s\n"
+msgstr "^1Ne peut pas écrire vers %s\n"
 
-#: qcsrc/client/hud.qc:203
+#: qcsrc/client/mapvoting.qc:28
+msgid " (1 vote)"
+msgstr " (1 vote)"
+
+#: qcsrc/client/mapvoting.qc:30
 #, c-format
-msgid " (+%dL)"
-msgstr " (+%dL)"
+msgid " (%d votes)"
+msgstr " (%d votes)"
 
-#: qcsrc/client/hud.qc:219
-msgid "Start line"
-msgstr "Ligne de départ"
+#: qcsrc/client/mapvoting.qc:116
+msgid "Don't care"
+msgstr "Ne pas voter"
 
-#: qcsrc/client/hud.qc:221 qcsrc/client/hud.qc:225
-msgid "Finish line"
-msgstr "Ligne d'arrivée"
+#: qcsrc/client/mapvoting.qc:197
+msgid "Vote for a map"
+msgstr "Votez pour une carte"
 
-#: qcsrc/client/hud.qc:223
+#: qcsrc/client/mapvoting.qc:203
 #, c-format
-msgid "Intermediate %d"
-msgstr "Intermédiaire %d"
+msgid "%d seconds left"
+msgstr "%d secondes restantes"
 
-#: qcsrc/client/hud.qc:232
-#, c-format
-msgid "%s (%s %s)"
-msgstr "%s (%s %s)"
+#: qcsrc/client/mapvoting.qc:266
+msgid ""
+"mv_mapdownload: ^3You're not supposed to use this command on your own!\n"
+msgstr "mv_mapdownload: ^3Vous ne devez pas utiliser cette commande seule !\n"
 
-#: qcsrc/client/hud.qc:735
-msgid "Out of ammo"
-msgstr "Plus de munitions"
+#: qcsrc/client/mapvoting.qc:276
+msgid "^1Error:^7 Couldn't find pak index.\n"
+msgstr "^1Erreur:^7 Ne peut pas trouver l'index du pak.\n"
 
-#: qcsrc/client/hud.qc:739
-msgid "Don't have"
-msgstr "Ne possède pas"
+#: qcsrc/client/mapvoting.qc:285
+msgid "Requesting preview...\n"
+msgstr "Demande d'aperçu...\n"
 
-#: qcsrc/client/hud.qc:743
-msgid "Unavailable"
-msgstr "Non disponible"
+#: qcsrc/client/miscfunctions.qc:100
+msgid "Trying to remove a team which is not in the teamlist!"
+msgstr ""
+"Tentative de suppression d'une équipe qui n'est pas dans la liste d'équipes !"
 
-#: qcsrc/client/hud.qc:1476
+#: qcsrc/client/movetypes.qc:163
 #, c-format
-msgid "^1%s^1 couldn't take it anymore\n"
-msgstr "^1%s^1 n'en pouvait plus avec la vie\n"
+msgid "Can't unstick an entity (edict: %d, classname: %s, origin: %s)\n"
+msgstr ""
+"Ne peut pas décoller une entité (edict: %d, classname: %s, origin: %s)\n"
 
-#: qcsrc/client/hud.qc:1480 qcsrc/client/hud.qc:1784
+#: qcsrc/client/movetypes.qc:166
 #, c-format
-msgid "^1%s^1 died\n"
-msgstr "^1%s^1 est mort\n"
+msgid "Sucessfully unstuck an entity (edict: %d, classname: %s, origin: %s)\n"
+msgstr "Entité décollée avec succès (edict: %d, classname: %s, origin: %s)\n"
 
-#: qcsrc/client/hud.qc:1484
-#, c-format
-msgid "^7%s^7 committed suicide. What's the point of living without ammo?\n"
-msgstr "^7%s^7 s'est suicidé. Quel est l'intérêt de vivre sans munitions ?\n"
+#: qcsrc/client/scoreboard.qc:19
+msgid "SCO^bckills"
+msgstr "balles tués"
 
-#: qcsrc/client/hud.qc:1488
-#, c-format
-msgid "^1%s^1 thought they found a nice camping ground\n"
-msgstr "^1%s^1 a cru qu'il avait trouvé un bel endroit pour camper\n"
+#: qcsrc/client/scoreboard.qc:20
+msgid "SCO^bctime"
+msgstr "temps balle"
 
-#: qcsrc/client/hud.qc:1492
-#, c-format
-msgid "^1%s^1 didn't become friends with the Lord of Teamplay\n"
-msgstr "^1%s^1 n'est pas devenu ami avec le Lord of Teamplay\n"
+#: qcsrc/client/scoreboard.qc:21
+msgid "SCO^caps"
+msgstr "drapeaux"
 
-#: qcsrc/client/hud.qc:1496
-#, c-format
-msgid "^1%s^1 unfairly eliminated themself\n"
-msgstr "1%s^1 s'est auto-détruit\n"
+#: qcsrc/client/scoreboard.qc:22
+msgid "SCO^deaths"
+msgstr "morts"
 
-#: qcsrc/client/hud.qc:1500
-#, c-format
-msgid "^1%s^1 burned to death\n"
-msgstr "^1%s^1 a brûlé vif\n"
+#: qcsrc/client/scoreboard.qc:23
+msgid "SCO^destroyed"
+msgstr "détruits"
 
-#: qcsrc/client/hud.qc:1504
-#, c-format
-msgid "^1%s^1 couldn't resist the urge to self-destruct\n"
-msgstr "^1%s^1 n'a pas pu résister à l'envie de s'auto-détruire\n"
+#: qcsrc/client/scoreboard.qc:24
+msgid "SCO^drops"
+msgstr "lâchers"
 
-#: qcsrc/client/hud.qc:1508
-#, c-format
-msgid "^1%s^1 ended it all after a %d kill spree\n"
-msgstr "^1%s^ en a fini après %d joueurs tués sans mourir\n"
+#: qcsrc/client/scoreboard.qc:25
+msgid "SCO^faults"
+msgstr "fautes"
 
-#: qcsrc/client/hud.qc:1525
-#, c-format
-msgid "^1%s^1 took action against a team mate\n"
-msgstr "^1%s^1 a tué un équipier\n"
+#: qcsrc/client/scoreboard.qc:26
+msgid "SCO^fckills"
+msgstr "drap. tués"
 
-#: qcsrc/client/hud.qc:1527
-#, c-format
-msgid "^1%s^1 mows down a team mate\n"
-msgstr "^1%s^1 a tué un équipier\n"
+#: qcsrc/client/scoreboard.qc:27
+msgid "SCO^goals"
+msgstr "buts"
 
-#: qcsrc/client/hud.qc:1532
-#, c-format
-msgid "^1%s^1 ended a %d scoring spree by going against a team mate\n"
-msgstr "^1^s^1 a fini une chaîne de %d scores en tuant un équipier\n"
+#: qcsrc/client/scoreboard.qc:28
+msgid "SCO^kckills"
+msgstr "clés tués"
 
-#: qcsrc/client/hud.qc:1534
-#, c-format
-msgid "^1%s^1 ended a %d kill spree by killing a team mate\n"
-msgstr "^1%s^1 a fini une chaîne de %d tués en tuant un équipier\n"
+#: qcsrc/client/scoreboard.qc:29
+msgid "SCO^kdratio"
+msgstr "SCO^kdratio"
 
-#: qcsrc/client/hud.qc:1538
-#, c-format
-msgid "^1%s^1's %s scoring spree was ended by a team mate!\n"
-msgstr "La chaîne de %s scores de ^1%s^1 a été finie par un équipier !\n"
+#: qcsrc/client/scoreboard.qc:30
+msgid "SCO^k/d"
+msgstr "SCO^tué/mort"
 
-#: qcsrc/client/hud.qc:1540
-#, c-format
-msgid "^1%s^1's %s kill spree was ended by a team mate!\n"
-msgstr "La chaîne de %s tués de ^1%s^1 a été finie par un équipier !\n"
+#: qcsrc/client/scoreboard.qc:31
+msgid "SCO^kd"
+msgstr "SCO^kd"
 
-#: qcsrc/client/hud.qc:1544
-#, c-format
-msgid "^1%s^1 drew first blood\n"
-msgstr "^1%s^1 a inauguré le tableau des scores\n"
+#: qcsrc/client/scoreboard.qc:32
+msgid "SCO^kdr"
+msgstr "SCO^kdr"
 
-#: qcsrc/client/hud.qc:1548
-#, c-format
-msgid "^1%s^1 tried to occupy %s^1's teleport destination space\n"
-msgstr "^1%s^1 a essayé de prendre la place de %s^1 en se téléportant\n"
+#: qcsrc/client/scoreboard.qc:33
+msgid "SCO^kills"
+msgstr "SCO^tués"
 
-#: qcsrc/client/hud.qc:1550
-#, c-format
-msgid "^1%s^1 was telefragged by %s\n"
-msgstr "^1%s^1 a été téléfraggué par %s\n"
+#: qcsrc/client/scoreboard.qc:34
+msgid "SCO^laps"
+msgstr "SCO^tours"
 
-#: qcsrc/client/hud.qc:1555
-#, c-format
-msgid "^1%s^1 was drowned by %s\n"
-msgstr "^1%s^1 a été noyé par %s\n"
+#: qcsrc/client/scoreboard.qc:35
+msgid "SCO^lives"
+msgstr "SCO^vies"
 
-#: qcsrc/client/hud.qc:1560
-#, c-format
-msgid "^1%s^1 was slimed by %s\n"
-msgstr "^1%s^1 a été"
+#: qcsrc/client/scoreboard.qc:36
+msgid "SCO^losses"
+msgstr "SCO^défaites"
 
-#: qcsrc/client/hud.qc:1565
-#, c-format
-msgid "^1%s^1 was cooked by %s\n"
-msgstr "^1%s^1 a été cuit par %s\n"
+#: qcsrc/client/scoreboard.qc:37
+msgid "SCO^name"
+msgstr "SCO^nom"
 
-#: qcsrc/client/hud.qc:1570
-#, c-format
-msgid "^1%s^1 was grounded by %s\n"
-msgstr "^1%s^1 a été écrasé par %s\n"
+#: qcsrc/client/scoreboard.qc:38
+msgid "SCO^nick"
+msgstr "SCO^pseudonyme"
 
-#: qcsrc/client/hud.qc:1575
-#, c-format
-msgid "^1%s^1 was shot into space by %s\n"
-msgstr "^1%s^1 a été fusilé vers l'espace par %s\n"
+#: qcsrc/client/scoreboard.qc:39
+msgid "SCO^objectives"
+msgstr "SCO^objectifs"
 
-#: qcsrc/client/hud.qc:1580
-#, c-format
-msgid "^1%s^1 was conserved by %s\n"
-msgstr "^1%s^1 a été mis en conserve par %s\n"
+#: qcsrc/client/scoreboard.qc:40
+msgid "SCO^pickups"
+msgstr "SCO^collectés"
 
-#: qcsrc/client/hud.qc:1586
-#, c-format
-msgid "^1%s^1 was thrown into a world of hurt by %s\n"
-msgstr "^1%s^1 a été lancé vers un monde de souffrance par %s\n"
+#: qcsrc/client/scoreboard.qc:41
+msgid "SCO^ping"
+msgstr "SCO^latence"
 
-#: qcsrc/client/hud.qc:1590
-#, c-format
-msgid "^1%s^1 was crushed by %s\n"
-msgstr "^1%s^1 a été aplati par %s\n"
+#: qcsrc/client/scoreboard.qc:42
+msgid "SCO^pl"
+msgstr "SCO^pl"
 
-#: qcsrc/client/hud.qc:1594
-#, c-format
-msgid "^1%s^1 got shredded by %s\n"
-msgstr "^1%s^1 a été déchiqueté par %s\n"
+#: qcsrc/client/scoreboard.qc:43
+msgid "SCO^pushes"
+msgstr "SCO^poussés"
 
-#: qcsrc/client/hud.qc:1598
-#, c-format
-msgid "^1%s^1 was blasted to bits by %s\n"
-msgstr "^1%s^1 a été"
+#: qcsrc/client/scoreboard.qc:44
+msgid "SCO^rank"
+msgstr "SCO^rang"
 
-#: qcsrc/client/hud.qc:1602
-#, c-format
-msgid "^1%s^1 got caught in the destruction of %s^1's vehicle\n"
-msgstr "^1%s^1 a été tué dans la destruction du véhicule de %s\n"
+#: qcsrc/client/scoreboard.qc:45
+msgid "SCO^returns"
+msgstr "SCO^retournés"
 
-#: qcsrc/client/hud.qc:1606
-#, c-format
-msgid "^1%s^1 was bolted down by %s\n"
-msgstr "^1%s^1 a été éléctrocuté par %s\n"
+#: qcsrc/client/scoreboard.qc:46
+msgid "SCO^revivals"
+msgstr "SCO^soignés"
 
-#: qcsrc/client/hud.qc:1610
-#, c-format
-msgid "^1%s^1 could find no shelter from %s^1's rockets\n"
-msgstr "^1%s^1"
+#: qcsrc/client/scoreboard.qc:47
+msgid "SCO^score"
+msgstr "SCO^score"
 
-#: qcsrc/client/hud.qc:1614
-#, c-format
-msgid "^1%s^1 dies when %s^1's wakizashi dies.\n"
-msgstr "^1%s^1 meurt quand %s^1 meurt."
+#: qcsrc/client/scoreboard.qc:48
+msgid "SCO^suicides"
+msgstr "SCO^suicides"
 
-#: qcsrc/client/hud.qc:1618
-#, c-format
-msgid "^1%s^1 nailed to hell by %s\n"
-msgstr "^1%s^1 a été cloué par %s\n"
+#: qcsrc/client/scoreboard.qc:49
+msgid "SCO^takes"
+msgstr "SCO^prises"
 
-#: qcsrc/client/hud.qc:1622
-#, c-format
-msgid "^1%s^1 cluster crushed by %s\n"
-msgstr "^1%s^1 a été écrabouillé par %s\n"
+#: qcsrc/client/scoreboard.qc:50
+msgid "SCO^ticks"
+msgstr "SCO^ticks"
 
-#: qcsrc/client/hud.qc:1626
-#, c-format
-msgid "^1%s^1 dies when %s^1's raptor dies.\n"
-msgstr "^1%s^1 meurt quand le raptor de %s^1 meurt."
+#: qcsrc/client/scoreboard.qc:239
+msgid ""
+"You can modify the scoreboard using the ^2scoreboard_columns_set command.\n"
+msgstr ""
+"Vous pouvez modifier le tableau des scores en utilisant "
+"^2scoreboard_columns_set ^7(dans la console).\n"
 
-#: qcsrc/client/hud.qc:1630
-#, c-format
-msgid "^1%s^1 was pushed into the line of fire by %s\n"
-msgstr "^1%s^1 a été poussé vers du feu par %s\n"
+#: qcsrc/client/scoreboard.qc:240
+msgid "^3|---------------------------------------------------------------|\n"
+msgstr "^3|---------------------------------------------------------------|\n"
 
-#: qcsrc/client/hud.qc:1634
-#, c-format
-msgid "^1%s^1 was pushed into an accident by %s\n"
-msgstr "^1%s^1 a été poussé vers la mort par %s\n"
+#: qcsrc/client/scoreboard.qc:241
+msgid "Usage:\n"
+msgstr "Utilisation:\n"
 
-#: qcsrc/client/hud.qc:1638
-#, c-format
-msgid "^1%s^1 was unfairly eliminated by %s\n"
-msgstr "^1%s^1 a été éliminé par %s\n"
+#: qcsrc/client/scoreboard.qc:242
+msgid "^2scoreboard_columns_set default\n"
+msgstr "^2scoreboard_columns_set par défaut\n"
 
-#: qcsrc/client/hud.qc:1642
-#, c-format
-msgid "^1%s^1 was burnt to death by %s\n"
-msgstr "^1%s^1 a été brûlé à mort par %s\n"
+#: qcsrc/client/scoreboard.qc:243
+msgid "^2scoreboard_columns_set ^7field1 field2 ...\n"
+msgstr "^2scoreboard_columns_set ^7champ1 champ2 ...\n"
 
-#: qcsrc/client/hud.qc:1654
-#, c-format
-msgid "^1%s^1 was fragged by %s\n"
-msgstr "^1%s^1 a été fraggué par %s\n"
+#: qcsrc/client/scoreboard.qc:244
+msgid "The following field names are recognized (case insensitive):\n"
+msgstr ""
+"Les noms de champs suivants sont reconnus (non-sensible à la casse) :\n"
 
-#: qcsrc/client/hud.qc:1659
-#, c-format
-msgid "^1%s^1's %s scoring spree was ended by %s\n"
-msgstr "La chaîne de tués de ^1%s^1 a été finie par %s\n"
+#: qcsrc/client/scoreboard.qc:245
+msgid ""
+"You can use a ^3|^7 to start the right-aligned fields.\n"
+"\n"
+msgstr ""
+"Vous pouvez insérer un ^3|^7 pour créer des champs alignés à droite.\n"
+"\n"
 
-#: qcsrc/client/hud.qc:1661
-#, c-format
-msgid "^1%s^1's %s kill spree was ended by %s\n"
-msgstr "La chaîne de tués de ^1%s^1 a été finie par %s\n"
+#: qcsrc/client/scoreboard.qc:247
+msgid "^3name^7 or ^3nick^7             Name of a player\n"
+msgstr "^3nom^7 ou ^3pseudonyme^7         Nom d'un joueur\n"
 
-#: qcsrc/client/hud.qc:1664
-#, c-format
-msgid "^1%s^1 made %s scores in a row\n"
-msgstr "^1%s^1 a tué %s personnes sans mourir"
+#: qcsrc/client/scoreboard.qc:248
+msgid "^3ping^7                     Ping time\n"
+msgstr "^3latence^7                     Temps de latence\n"
+
+#: qcsrc/client/scoreboard.qc:249
+msgid "^3pl^7                       Packet loss\n"
+msgstr "^3pl^7                       Pertes de paquet\n"
+
+#: qcsrc/client/scoreboard.qc:250
+msgid "^3kills^7                    Number of kills\n"
+msgstr "^3tués^7                    Nombre de tués\n"
+
+#: qcsrc/client/scoreboard.qc:251
+msgid "^3deaths^7                   Number of deaths\n"
+msgstr "^3morts^7                   Nombre de morts\n"
+
+#: qcsrc/client/scoreboard.qc:252
+msgid "^3suicides^7                 Number of suicides\n"
+msgstr "^3suicides^7                 Nombre de suicides\n"
+
+#: qcsrc/client/scoreboard.qc:253
+msgid "^3frags^7                    kills - suicides\n"
+msgstr "^3tués^7                    tués - suicides\n"
+
+#: qcsrc/client/scoreboard.qc:254
+msgid "^3kd^7                       The kill-death ratio\n"
+msgstr "^3kd^7                       Ratio tué-mort\n"
+
+#: qcsrc/client/scoreboard.qc:255
+msgid ""
+"^3caps^7                     How often a flag (CTF) or a key (KeyHunt) was "
+"captured\n"
+msgstr ""
+"^3drapeaux^7                     Combien de fois un drapeau (Capture du "
+"Drapeau) ou une clé (Chasse aux Clés) a été capturé\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 ""
+"^3collectés^7                  Nombre de fois qu'un drapeau (CTF), clé "
+"(Chasse aux clés) ou balle (Keepway) a été pris\n"
+
+#: qcsrc/client/scoreboard.qc:257
+msgid "^3fckills^7                  Number of flag carrier kills\n"
+msgstr "^3fckills^7                  Nombre de porteurs de drapeaux tués\n"
+
+#: qcsrc/client/scoreboard.qc:258
+msgid "^3returns^7                  Number of flag returns\n"
+msgstr "^3returns^7                  Nombre de drapeaux retournés\n"
+
+#: qcsrc/client/scoreboard.qc:259
+msgid "^3drops^7                    Number of flag drops\n"
+msgstr "^3drops^7                    Nombre de drapeaux lâchés\n"
+
+#: qcsrc/client/scoreboard.qc:260
+msgid "^3lives^7                    Number of lives (LMS)\n"
+msgstr "^3lives^7                    Nombre de vies (LMS)\n"
+
+#: qcsrc/client/scoreboard.qc:261
+msgid "^3rank^7                     Player rank\n"
+msgstr "^3rank^7                     Rang du joueur\n"
 
-#: qcsrc/client/hud.qc:1666
-#, c-format
-msgid "^1%s^1 has %s frags in a row\n"
-msgstr "^1%s^1 a tué %s personnes sans mourir"
+#: qcsrc/client/scoreboard.qc:262
+msgid "^3pushes^7                   Number of players pushed into void\n"
+msgstr "^3pushes^7                   Nombre de joueurs poussés dans le vide\n"
 
-#: qcsrc/client/hud.qc:1669
-#, c-format
-msgid "%s^7 made a ^1TRIPLE SCORE\n"
-msgstr "%s^7 a fait un ^1TRIPLE SCORE\n"
+#: qcsrc/client/scoreboard.qc:263
+msgid ""
+"^3destroyed^7                Number of keys destroyed by pushing them into "
+"void\n"
+msgstr ""
+"^3détruits^7                Nombre de clés détruire en les poussant dans le "
+"vide\n"
 
-#: qcsrc/client/hud.qc:1671
-#, c-format
-msgid "%s^7 made a ^1TRIPLE FRAG\n"
-msgstr "%s^7 a fait un ^1TRIPLE FRAG\n"
+#: qcsrc/client/scoreboard.qc:264
+msgid "^3kckills^7                  Number of keys carrier kills\n"
+msgstr "^3kckills^7                  Nombre de porteurs de clés tués\n"
 
-#: qcsrc/client/hud.qc:1674
-#, c-format
-msgid "%s^7 unleashes ^1SCORING RAGE\n"
-msgstr "%s^7 est ENRAGÉ\n"
+#: qcsrc/client/scoreboard.qc:265
+msgid "^3losses^7                   Number of times a key was lost\n"
+msgstr "3pertes^7                   Nombre de fois qu'une clé a été perdue\n"
 
-#: qcsrc/client/hud.qc:1676
-#, c-format
-msgid "%s^7 unleashes ^1RAGE\n"
-msgstr "%s^7 est ENRAGÉ\n"
+#: qcsrc/client/scoreboard.qc:266
+msgid "^3laps^7                     Number of laps finished (race/cts)\n"
+msgstr "^3tours^7                     Nombre de tours finis (course/cts)\n"
 
-#: qcsrc/client/hud.qc:1679
-#, c-format
-msgid "%s^7 made ^1TEN SCORES IN A ROW!\n"
-msgstr "%s^7 a fait ^1DIX SCORES D'AFFILÉE !"
+#: qcsrc/client/scoreboard.qc:267
+msgid "^3time^7                     Total time raced (race/cts)\n"
+msgstr "^3temps^7                     Temps total en course (course/cts)\n"
 
-#: qcsrc/client/hud.qc:1681
-#, c-format
-msgid "%s^7 starts the ^1MASSACRE!\n"
-msgstr "%s^7 a commencé un ^1MASSACRE !\n"
+#: qcsrc/client/scoreboard.qc:268
+msgid "^3fastest^7                  Time of fastest lap (race/cts)\n"
+msgstr ""
+"^3fastest^7                  Temps du tour le plus rapide (course/cts)\n"
 
-#: qcsrc/client/hud.qc:1684
-#, c-format
-msgid "%s^7 made ^1FIFTEEN SCORES IN A ROW!\n"
-msgstr "%s^7 a fait ^1QUINZE SCORES D'AFFILÉE !\n"
+#: qcsrc/client/scoreboard.qc:269
+msgid "^3ticks^7                    Number of ticks (DOM)\n"
+msgstr "^3tics^7                    Nombre de tics (DOM)\n"
 
-#: qcsrc/client/hud.qc:1686
-#, c-format
-msgid "%s^7 executes ^1MAYHEM!\n"
-msgstr "%s^7 éxécutes un ^1MAYHEM !\n"
+#: qcsrc/client/scoreboard.qc:270
+msgid "^3takes^7                    Number of domination points taken (DOM)\n"
+msgstr ""
+"^3^7                    Nombre de points de domination capturés (DOM)\n"
 
-#: qcsrc/client/hud.qc:1689
-#, c-format
-msgid "%s^7 made ^1TWENTY SCORES IN A ROW!\n"
-msgstr "%s^7 a fait ^1VINGT SCORES D'AFFILÉE !\n"
+#: qcsrc/client/scoreboard.qc:271
+msgid "^3bckills^7                  Number of ball carrier kills\n"
+msgstr "^3bckills^7                  Nombre de porteurs de balles tués\n"
 
-#: qcsrc/client/hud.qc:1691
-#, c-format
-msgid "%s^7 is a ^1BERSERKER!\n"
-msgstr "%s^7 est un ^1BERSERKER !"
+#: qcsrc/client/scoreboard.qc:272
+msgid ""
+"^3bctime^7                   Total amount of time holding the ball in "
+"Keepaway\n"
+msgstr ""
+"^3bctime^7                   Temps total en possession de la balle en "
+"Keepaway\n"
 
-#: qcsrc/client/hud.qc:1694
-#, c-format
-msgid "%s^7 made ^1TWENTY FIVE SCORES IN A ROW!\n"
-msgstr "%s^7 a fait ^1VINGT-CINQ SCORES D'AFFILÉE !\n"
+#: qcsrc/client/scoreboard.qc:273
+msgid ""
+"^3score^7                    Total score\n"
+"\n"
+msgstr ""
+"^3score^7                    Score total\n"
+"\n"
 
-#: qcsrc/client/hud.qc:1696
-#, c-format
-msgid "%s^7 inflicts ^1CARNAGE!\n"
-msgstr "%s^7 a infligé un ^1CARNAGE !\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 ""
+"Avant un champ vous pouvez mettre un signe + ou -, puis une liste séparée "
+"avec des virgules\n"
+"de modes de jeux, puis un slash, pour faire apparaître un champ seulement "
+"dans certains modes.\n"
+"Vous pouvez aussi spécifier 'all' comme un champ pour montrer tous les "
+"champs disponibles\n"
+"pour le mode de jeu en cours.\n"
+"\n"
 
-#: qcsrc/client/hud.qc:1699
-#, c-format
-msgid "%s^7 made ^1THIRTY SCORES IN A ROW!\n"
-msgstr "%s^7 a fait ^1TRENTE SCORES D'AFFILÉE !\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 ""
+"Le type de jeu 'special' peut être utilisé pour\n"
+"inclure ou exclure TOUT les modes de jeux avec ou sans équipes.\n"
+"\n"
 
-#: qcsrc/client/hud.qc:1701
-#, c-format
-msgid "%s^7 unleashes ^1ARMAGEDDON!\n"
-msgstr "%s^7 a fait un ^1ARMAGEDDON !\n"
+#: qcsrc/client/scoreboard.qc:283
+msgid "Example: scoreboard_columns_set name ping pl | +ctf/field3 -dm/field4\n"
+msgstr ""
+"Exemple: scoreboard_columns_set name ping pl | +cfg/field3 -dm/field4\n"
 
-#: qcsrc/client/hud.qc:1709
-#, c-format
-msgid "^1%s^1 was in the water for too long\n"
-msgstr "^1%s^1 est resté dans l'eau trop longtemps\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 ""
+"va afficher le nom, latence et pl alignés à gauche, et les champs\n"
+"à droite de la barre verticale alignée à droite.\n"
 
-#: qcsrc/client/hud.qc:1711
-#, c-format
-msgid "^1%s^1 drowned\n"
-msgstr "^1%s^1 s'est noyé\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 ""
+"'field3' ne sera montré qu'en mode CTF, et 'field4' sera montré dans tous "
+"les modes sauf DM.\n"
 
-#: qcsrc/client/hud.qc:1716
+#: 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 "^1%s^1 was slimed\n"
-msgstr "^1%s^1 a été acidulé\n"
+msgid "fixed missing field '%s'\n"
+msgstr "champ manquant fixé '%s'\n"
 
-#: qcsrc/client/hud.qc:1722
-#, c-format
-msgid "^1%s^1 found a hot place\n"
-msgstr "^1%s^1 a trouvé un endroit chaud\n"
+#: qcsrc/client/scoreboard.qc:515 qcsrc/client/scoreboard.qc:522
+msgid "N/A"
+msgstr "N/A"
 
-#: qcsrc/client/hud.qc:1724
+#: qcsrc/client/scoreboard.qc:950
 #, c-format
-msgid "^1%s^1 turned into hot slag\n"
-msgstr "^1%s^1 s'est transformé en merguez\n"
+msgid "Accuracy stats (average %d%%)"
+msgstr "Stats de précision (moyenne %d%%)"
 
-#: qcsrc/client/hud.qc:1731
+#: qcsrc/client/scoreboard.qc:1015
 #, c-format
-msgid "^1%s^1 tested gravity (and it worked)\n"
-msgstr "^1%s^1 a testé la gravité (et ça marche)\n"
+msgid "%d%%"
+msgstr "%d%%"
 
-#: qcsrc/client/hud.qc:1733
-#, c-format
-msgid "^1%s^1 hit the ground with a crunch\n"
-msgstr "^1%s^1 s'est écrasé sur le sol\n"
+#: qcsrc/client/scoreboard.qc:1085
+msgid "Map stats:"
+msgstr "Stats. de la carte :"
 
-#: qcsrc/client/hud.qc:1738
-#, c-format
-msgid "^1%s^1 became a shooting star\n"
-msgstr "^1%s^1 est devenue une étoile filante\n"
+#: qcsrc/client/scoreboard.qc:1101
+msgid "Secrets found:"
+msgstr "Secrets trouvés :"
 
-#: qcsrc/client/hud.qc:1744
-#, c-format
-msgid "^1%s^1 discovered a swamp\n"
-msgstr "^1%s^1 a découvert un marécage\n"
+#: qcsrc/client/scoreboard.qc:1128
+msgid "Rankings"
+msgstr "Classements"
 
-#: qcsrc/client/hud.qc:1746
-#, c-format
-msgid "^1%s^1 is now conserved for centuries to come\n"
-msgstr "^1%s^1 est maintenant conservé pour les siècles à venir\n"
+#: qcsrc/client/scoreboard.qc:1223
+msgid "Scoreboard"
+msgstr "Tableau des scores"
 
-#: qcsrc/client/hud.qc:1751
+#: qcsrc/client/scoreboard.qc:1268
 #, c-format
-msgid "^1%s^1 was mowed down by a turret \n"
-msgstr "^1%s^1 a été tué par une tourelle\n"
+msgid "Speed award: %d ^7(%s^7)"
+msgstr "Le plus rapide: %d ^7(%s^7)"
 
-#: qcsrc/client/hud.qc:1763
+#: qcsrc/client/scoreboard.qc:1272
 #, c-format
-msgid "^1%s^1 died in an accident\n"
-msgstr "^1%s^1 est mort dans un accident\n"
+msgid "All-time fastest: %d ^7(%s^7)"
+msgstr "Record de vitesse: %d ^7(%s^7)"
 
-#: qcsrc/client/hud.qc:1767
-#, c-format
-msgid "^1%s^1 was unfairly eliminated\n"
-msgstr "^1%s^1 a été éliminé\n"
+#: qcsrc/client/scoreboard.qc:1305 qcsrc/client/teamplay.qc:63
+msgid "Spectators"
+msgstr "Spectateurs"
 
-#: qcsrc/client/hud.qc:1773
+#: qcsrc/client/scoreboard.qc:1311
 #, c-format
-msgid "^1%s^1 felt a little hot\n"
-msgstr "^1%s^1 avait un peu chaud\n"
+msgid "playing on ^2%s^7"
+msgstr "en train de jouer sur ^2%s^7"
 
-#: qcsrc/client/hud.qc:1775
+#: qcsrc/client/scoreboard.qc:1318 qcsrc/client/scoreboard.qc:1323
 #, c-format
-msgid "^1%s^1 burnt to death\n"
-msgstr "^1%s^1 a été brûlé à mort\n"
+msgid " for up to ^1%1.0f minutes^7"
+msgstr " pour jusqu'à ^1%1.0f minutes^7"
 
-#: qcsrc/client/hud.qc:1782
-#, c-format
-msgid "^1%s^1 needs a restart\n"
-msgstr "^1%s^1 avait besoin d'un nouveau départ\n"
+#: qcsrc/client/scoreboard.qc:1327 qcsrc/client/scoreboard.qc:1346
+msgid " or"
+msgstr " ou"
 
-#: qcsrc/client/hud.qc:1789
+#: qcsrc/client/scoreboard.qc:1330 qcsrc/client/scoreboard.qc:1337
 #, c-format
-msgid "^1%s^1 needs a restart after a %d scoring spree\n"
-msgstr "^1%s^1 avait besoin d'un nouveau départ après une chaîne de scores de %d\n"
+msgid " until ^3%s %s^7"
+msgstr " jusqu'à ^3%s %s^7"
 
-#: qcsrc/client/hud.qc:1791
-#, c-format
-msgid "^1%s^1 died with a %d kill spree\n"
-msgstr "^1%s^1 est mort après avoir fait une chaîne de %d tués\n"
+#: qcsrc/client/scoreboard.qc:1331 qcsrc/client/scoreboard.qc:1338
+#: qcsrc/client/scoreboard.qc:1350 qcsrc/client/scoreboard.qc:1357
+msgid "SCO^points"
+msgstr "SCO^points"
 
-#: qcsrc/client/hud.qc:1795
-#, c-format
-msgid "%s^7 got the %s\n"
-msgstr "%s^7 a pris le %s\n"
+#: qcsrc/client/scoreboard.qc:1332 qcsrc/client/scoreboard.qc:1339
+#: qcsrc/client/scoreboard.qc:1351 qcsrc/client/scoreboard.qc:1358
+msgid "SCO^is beaten"
+msgstr "SCO^est battu"
 
-#: qcsrc/client/hud.qc:1798
+#: qcsrc/client/scoreboard.qc:1349 qcsrc/client/scoreboard.qc:1356
 #, c-format
-msgid "%s^7 lost the %s\n"
-msgstr "%S^7 a perdu le %s\n"
+msgid " until a lead of ^3%s %s^7"
+msgstr " jusqu'à qu'il y ait un écart de ^3%s %s^7 points"
 
-#: qcsrc/client/hud.qc:1801
+#: qcsrc/client/target_music.qc:93 qcsrc/client/target_music.qc:181
 #, c-format
-msgid "%s^7 picked up the %s\n"
-msgstr "%s^7 a collecté le %s\n"
+msgid "Cannot initialize sound %s\n"
+msgstr "Ne peut initialiser le son %s\n"
 
-#: qcsrc/client/hud.qc:1804
-#, c-format
-msgid "%s^7 returned the %s\n"
-msgstr "%s^7 a retourné le %s\n"
+#: qcsrc/client/teamplay.qc:64
+msgid "Red Team"
+msgstr "Équipe Rouge"
 
-#: qcsrc/client/hud.qc:1807
-#, c-format
-msgid "%s^7 captured the %s%s\n"
-msgstr "%s^7 a capturé le %s%s\n"
+#: qcsrc/client/teamplay.qc:65
+msgid "Blue Team"
+msgstr "Équipe Bleue"
 
-#: qcsrc/client/hud.qc:1826
-#, c-format
-msgid "%s^7 has picked up the ball!\n"
-msgstr "%s^7 a collecté la balle !\n"
+#: qcsrc/client/teamplay.qc:66
+msgid "Yellow Team"
+msgstr "Équipe Jaune"
 
-#: qcsrc/client/hud.qc:1831
-#, c-format
-msgid "%s^7 has dropped the ball!\n"
-msgstr "%s^7 a lâché la balle !\n"
+#: qcsrc/client/teamplay.qc:67
+msgid "Pink Team"
+msgstr "Équipe Rose"
 
-#: qcsrc/client/hud.qc:1842
-#, c-format
-msgid "You are now on: %s"
-msgstr "Vous êtes maintenant dans l'%s"
+#: qcsrc/client/tturrets.qc:285 qcsrc/client/waypointsprites.qc:590
+msgid "Spam"
+msgstr "Spam"
 
-#: qcsrc/client/hud.qc:1844
+#: qcsrc/client/tturrets.qc:294
 #, c-format
-msgid ""
-"You have been moved into a different team to improve team balance\n"
-"You are now on: %s"
-msgstr ""
-"Vous avez été changé d'équipe pour améliorer l'équilibre des équipes\n"
-"Vous êtes maintenant dans l'%s"
+msgid "%s under attack!"
+msgstr "%s attaqué !"
 
-#: qcsrc/client/hud.qc:1847
-msgid "^1Reconsider your tactics, camper!"
-msgstr "^1Change de tactique, campeur !"
+#: qcsrc/client/waypointsprites.qc:254
+msgid "Push"
+msgstr "Pousser"
 
-#: qcsrc/client/hud.qc:1849
-msgid "^1Die camper!"
-msgstr "^1Meurs campeur !"
+#: qcsrc/client/waypointsprites.qc:255
+msgid "Destroy"
+msgstr "Détruire"
 
-#: qcsrc/client/hud.qc:1852
-msgid "^1You are reinserted into the game for running out of ammo..."
-msgstr "^1Vous avez été réinséré dans le jeu car vous n'aviez plus de munitions..."
+#: qcsrc/client/waypointsprites.qc:256
+msgid "Defend"
+msgstr "Défendre"
 
-#: qcsrc/client/hud.qc:1854
-msgid "^1You were killed for running out of ammo..."
-msgstr "^1Vous avez été tué car vous n'aviez plus de munitions..."
+#: qcsrc/client/waypointsprites.qc:257
+msgid "Blue base"
+msgstr "Base bleue"
 
-#: qcsrc/client/hud.qc:1857
-msgid "^1You need to preserve your health"
-msgstr "^1Vous aviez besoin de préserver votre santé"
+#: qcsrc/client/waypointsprites.qc:258
+msgid "DANGER"
+msgstr "DANGER"
 
-#: qcsrc/client/hud.qc:1859
-msgid "^1You grew too old without taking your medicine"
-msgstr "^1Vous êtes deven trop vieux et vous n'aviez pas pris vos médicaments"
+#: qcsrc/client/waypointsprites.qc:259
+msgid "Flag carrier"
+msgstr "Porteur du drapeau"
 
-#: qcsrc/client/hud.qc:1862
-msgid "^1Don't go against team mates!"
-msgstr "^1Ne tirez pas sur vos équipiers !"
+#: qcsrc/client/waypointsprites.qc:260
+msgid "Dropped flag"
+msgstr "Drapeau lâché"
 
-#: qcsrc/client/hud.qc:1864
-msgid "^1Don't shoot your team mates!"
-msgstr "^1Ne tirez pas sur vos équipiers !"
+#: qcsrc/client/waypointsprites.qc:261
+msgid "Help me!"
+msgstr "Aidez-moi !"
 
-#: qcsrc/client/hud.qc:1869
-msgid "^1You need to be more careful!"
-msgstr "^1Vous devez être plus prudent !"
+#: qcsrc/client/waypointsprites.qc:262
+msgid "Here"
+msgstr "Ici"
 
-#: qcsrc/client/hud.qc:1871
-msgid "^1You killed your own dumb self!"
-msgstr "^1Vous vous êtes suicidé !"
+#: qcsrc/client/waypointsprites.qc:263
+msgid "Dropped key"
+msgstr "Clé lâchée"
 
-#: qcsrc/client/hud.qc:1876
-#, c-format
-msgid "^1Moron! You went against ^7%s^1, a team mate!"
-msgstr "Idiot ! Vous avez tué ^7%s^1, un équipier!"
+#: qcsrc/client/waypointsprites.qc:264 qcsrc/client/waypointsprites.qc:266
+#: qcsrc/client/waypointsprites.qc:267 qcsrc/client/waypointsprites.qc:268
+#: qcsrc/client/waypointsprites.qc:269
+msgid "Key carrier"
+msgstr "Porteur de clé"
 
-#: qcsrc/client/hud.qc:1878
-#, c-format
-msgid "^1Moron! You fragged ^7%s^1, a team mate!"
-msgstr "^1Idiot ! Vous avez tué ^7%s^1, un équipier !"
+#: qcsrc/client/waypointsprites.qc:265
+msgid "Run here"
+msgstr "Courez ici"
 
-#: qcsrc/client/hud.qc:1882
-msgid "^1First score"
-msgstr "^1Premier score"
+#: qcsrc/client/waypointsprites.qc:270
+msgid "Red base"
+msgstr "Base rouge"
 
-#: qcsrc/client/hud.qc:1884
-msgid "^1First blood"
-msgstr "^1Premier tué"
+#: qcsrc/client/waypointsprites.qc:271
+msgid "Waypoint"
+msgstr "Destination"
 
-#: qcsrc/client/hud.qc:1888
-msgid "^1First casualty"
-msgstr "^1Première victime"
+#: qcsrc/client/waypointsprites.qc:272 qcsrc/client/waypointsprites.qc:273
+#: qcsrc/client/waypointsprites.qc:274
+msgid "Generator"
+msgstr "Générateur"
 
-#: qcsrc/client/hud.qc:1890
-msgid "^1First victim"
-msgstr "^1Première victime"
+#: qcsrc/client/waypointsprites.qc:275 qcsrc/client/waypointsprites.qc:276
+#: qcsrc/client/waypointsprites.qc:277 qcsrc/client/waypointsprites.qc:278
+#: qcsrc/client/waypointsprites.qc:279 qcsrc/client/waypointsprites.qc:280
+#: qcsrc/client/waypointsprites.qc:281 qcsrc/client/waypointsprites.qc:282
+#: qcsrc/client/waypointsprites.qc:306 qcsrc/client/waypointsprites.qc:307
+#: qcsrc/client/waypointsprites.qc:308 qcsrc/client/waypointsprites.qc:309
+#: qcsrc/client/waypointsprites.qc:310
+msgid "Control point"
+msgstr "Point de contrôle"
 
-#: qcsrc/client/hud.qc:1894
-#, c-format
-msgid "^1You scored against ^7%s^1 who was typing!"
-msgstr "^1Vous avez scoré ^7%s^1 qui était en train de taper !"
+#: qcsrc/client/waypointsprites.qc:283
+msgid "Checkpoint"
+msgstr "Point de contrôle"
 
-#: qcsrc/client/hud.qc:1896
-#, c-format
-msgid "^1You typefragged ^7%s"
-msgstr "^1Vous avez typefraggué ^7%s"
+#: qcsrc/client/waypointsprites.qc:284 qcsrc/client/waypointsprites.qc:286
+msgid "Finish"
+msgstr "Arrivée"
 
-#: qcsrc/client/hud.qc:1900
-#, c-format
-msgid "^1You were scored against by ^7%s^1 while you were typing!"
-msgstr "^1Vous avez été scoré par ^7%s^1 pendant que vous tapiez!"
+#: qcsrc/client/waypointsprites.qc:285 qcsrc/client/waypointsprites.qc:286
+msgid "Start"
+msgstr "Départ"
 
-#: qcsrc/client/hud.qc:1902
-#, c-format
-msgid "^1You were typefragged by ^7%s"
-msgstr "^1Vous avez été typefraggué par ^7%s"
+#: qcsrc/client/waypointsprites.qc:287 qcsrc/client/waypointsprites.qc:288
+msgid "Ball"
+msgstr "Balle"
 
-#: qcsrc/client/hud.qc:1906
-#, c-format
-msgid "^4You scored against ^7%s"
-msgstr "^4Vous avez scoré contre ^7%s"
+#: qcsrc/client/waypointsprites.qc:289
+msgid "Ball carrier"
+msgstr "Porteur de balle"
 
-#: qcsrc/client/hud.qc:1908
-#, c-format
-msgid "^4You fragged ^7%s"
-msgstr "^4Vous avez fraggué ^7%s"
+#: qcsrc/client/waypointsprites.qc:290 qcsrc/server/w_laser.qc:2
+msgid "Laser"
+msgstr "Laser"
 
-#: qcsrc/client/hud.qc:1912
-#, c-format
-msgid "^1You were scored against by ^7%s"
-msgstr "^1Vous avez été scoré par ^7%s"
+#: qcsrc/client/waypointsprites.qc:291 qcsrc/server/w_shotgun.qc:2
+msgid "Shotgun"
+msgstr "Fusil"
 
-#: qcsrc/client/hud.qc:1914
-#, c-format
-msgid "^1You were fragged by ^7%s"
-msgstr "^1Vous avez été fraggué pr ^7%s"
+#: qcsrc/client/waypointsprites.qc:292 qcsrc/server/w_uzi.qc:2
+msgid "Machine Gun"
+msgstr "Mitraillette"
 
-#: qcsrc/client/hud.qc:1919
-msgid "^1Watch your step!"
-msgstr "^1Attention à la marche !"
+#: qcsrc/client/waypointsprites.qc:293 qcsrc/server/w_grenadelauncher.qc:2
+msgid "Mortar"
+msgstr "Lance-grenades"
 
-#: qcsrc/client/hud.qc:1988 qcsrc/client/hud.qc:1989 qcsrc/client/hud.qc:2474
-#, c-format
-msgid "Player %d"
-msgstr "Joueur %d"
+#: qcsrc/client/waypointsprites.qc:294 qcsrc/server/w_electro.qc:2
+msgid "Electro"
+msgstr "Electro"
 
-#: qcsrc/client/hud.qc:2779
-msgid "^1Intermediate 1 (+15.42)"
-msgstr "^1Intermédiaire 1 (+15.42)"
+#: qcsrc/client/waypointsprites.qc:295 qcsrc/server/w_crylink.qc:2
+msgid "Crylink"
+msgstr "Crylink"
 
-#: qcsrc/client/hud.qc:2781 qcsrc/client/hud.qc:2823 qcsrc/client/hud.qc:2864
-#, c-format
-msgid "^1PENALTY: %.1f (%s)"
-msgstr "^1PÉNALITÉ: %.1f (%s)"
+#: qcsrc/client/waypointsprites.qc:296 qcsrc/server/w_nex.qc:2
+msgid "Nex"
+msgstr "Nex"
 
-#: qcsrc/client/hud.qc:2866
-#, c-format
-msgid "^2PENALTY: %.1f (%s)"
-msgstr "^2PÉLANITÉ %.1f (%s)"
+#: qcsrc/client/waypointsprites.qc:297 qcsrc/server/w_hagar.qc:2
+msgid "Hagar"
+msgstr "Hagar"
 
-#: qcsrc/client/hud.qc:2894
-msgid "^1You must answer before entering hud configure mode\n"
-msgstr "^1Vous devez répondre avant d'entrer le mode de configuration de l'interface\n"
+#: qcsrc/client/waypointsprites.qc:298 qcsrc/server/w_rocketlauncher.qc:2
+msgid "Rocket Launcher"
+msgstr "Lance-roquettes"
 
-#: qcsrc/client/hud.qc:2897
-msgid "^2Name ^7instead of \"^1Unregistered player^7\" in stats"
-msgstr "^2Votre pseudonyme ^7à la place de \"^1Unregistered player^7\" dans les statistiques"
+#: qcsrc/client/waypointsprites.qc:299 qcsrc/server/w_porto.qc:2
+msgid "Port-O-Launch"
+msgstr "Lance-O-Port"
 
-#: qcsrc/client/hud.qc:2979
-msgid "A vote has been called for:"
-msgstr "Un vote a été lancé pour :"
+#: qcsrc/client/waypointsprites.qc:300
+msgid "Minstanex"
+msgstr "Minstanex"
 
-#: qcsrc/client/hud.qc:2981
-msgid "Allow servers to store and display your name?"
-msgstr "Autoriser les serveurs à stocker et afficher votre pseudonyme ?"
+#: qcsrc/client/waypointsprites.qc:301
+msgid "Hook"
+msgstr "Grappin"
 
-#: qcsrc/client/hud.qc:2985
-msgid "^1Configure the HUD"
-msgstr "^1Configurer l'interface"
+#: qcsrc/client/waypointsprites.qc:302 qcsrc/server/w_fireball.qc:2
+msgid "Fireball"
+msgstr "Boule de feu"
 
-#: qcsrc/client/hud.qc:2989
-#, c-format
-msgid "Yes (%s): %d"
-msgstr "Oui (%s): %d"
+#: qcsrc/client/waypointsprites.qc:303
+msgid "HLAC"
+msgstr "HLAC"
 
-#: qcsrc/client/hud.qc:2991
-#, c-format
-msgid "No (%s): %d"
-msgstr "Non (%s): %d"
+#: qcsrc/client/waypointsprites.qc:304 qcsrc/server/w_rifle.qc:2
+msgid "Rifle"
+msgstr "Fusil sniper"
 
-#: qcsrc/client/hud.qc:3494 qcsrc/client/hud.qc:3497 qcsrc/client/hud.qc:3499
-msgid "Personal best"
-msgstr "Record personnel"
+#: qcsrc/client/waypointsprites.qc:305 qcsrc/server/w_minelayer.qc:2
+msgid "Mine Layer"
+msgstr "Lance-mines"
 
-#: qcsrc/client/hud.qc:3512 qcsrc/client/hud.qc:3515 qcsrc/client/hud.qc:3517
-msgid "Server best"
-msgstr "Record du serveur"
+#: qcsrc/client/waypointsprites.qc:311
+msgid "Invisibility"
+msgstr "Invisibilité"
 
-#: qcsrc/client/hud.qc:3861
-msgid "^3Player^7: This is the chat area."
-msgstr "^3Joueur^7: Ceci est la zone du chat."
+#: qcsrc/client/waypointsprites.qc:312
+msgid "Extra life"
+msgstr "Vie supplémentaire"
 
-#: qcsrc/client/hud.qc:3929
-#, c-format
-msgid "FPS: %.*f"
-msgstr "FPS: %.*f"
+#: qcsrc/client/waypointsprites.qc:313
+msgid "Speed"
+msgstr "Vitesse"
 
-#: qcsrc/client/hud.qc:3996
-msgid "^1Observing"
-msgstr "^1Observation"
+#: qcsrc/client/waypointsprites.qc:314
+msgid "Strength"
+msgstr "Force"
 
-#: qcsrc/client/hud.qc:3998
-#, c-format
-msgid "^1Spectating: ^7%s"
-msgstr "^1En spectateur sur : ^7%s"
+#: qcsrc/client/waypointsprites.qc:315
+msgid "Shield"
+msgstr "Bouclier"
 
-#: qcsrc/client/hud.qc:4002
-#, c-format
-msgid "^1Press ^3%s^1 to spectate"
-msgstr "^1Appuyez sur ^3%s^1 pour être en spectateur sur un joueur"
+#: qcsrc/client/waypointsprites.qc:316
+msgid "Fuel regen"
+msgstr "Régén. essence"
+
+#: qcsrc/client/waypointsprites.qc:317
+msgid "Jet Pack"
+msgstr "Jet Pack"
+
+#: qcsrc/client/waypointsprites.qc:318
+msgid "Frozen!"
+msgstr "Gelé!"
 
-#: qcsrc/client/hud.qc:4004
-#, c-format
-msgid "^1Press ^3%s^1 for another player"
-msgstr "^1Appuyez sur ^3%s^1 pour un autre joueur"
+#: qcsrc/client/waypointsprites.qc:319
+msgid "Tagged"
+msgstr "Verrouillé"
 
-#: qcsrc/client/hud.qc:4008
-#, c-format
-msgid "^1Use ^3%s^1 or ^3%s^1 to change the speed"
-msgstr "^1Utilisez ^3%s^1 ou ^3%s^1 pour changer la vitesse"
+#: qcsrc/client/waypointsprites.qc:320
+msgid "Vehicle"
+msgstr "Véhicule"
 
-#: qcsrc/client/hud.qc:4010
+#: qcsrc/client/waypointsprites.qc:594
 #, c-format
-msgid "^1Press ^3%s^1 to observe"
-msgstr "^1Utiliez ^3ùs^1 pour observer"
+msgid "%s needing help!"
+msgstr "%s a besoin d'aide !"
 
-#: qcsrc/client/hud.qc:4013
+#: qcsrc/common/mapinfo.qc:665
 #, c-format
-msgid "^1Press ^3%s^1 for gamemode info"
-msgstr "^1Appuyez sur ^3%s^1 pour de l'information"
+msgid "@!#%'n Tuba Throwing"
+msgstr "Lancer de @!#%'n Tuba"
 
-#: qcsrc/client/hud.qc:4017
-msgid "^1Wait for your turn to join"
-msgstr "^1Attendez votre tour pour jouer"
-
-#: qcsrc/client/hud.qc:4023
-msgid "^1Match has already begun"
-msgstr "^1La partie a déjà commencé"
+#: qcsrc/common/mapinfo.qc:1057
+#, c-format
+msgid "%s: %s"
+msgstr "%s : %s"
 
-#: qcsrc/client/hud.qc:4025
-msgid "^1You have no more lives left"
-msgstr "^1Vous n'avez plus de vies"
+#: qcsrc/common/mapinfo.qh:36
+msgid "Deathmatch"
+msgstr "Match à Mort"
 
-#: qcsrc/client/hud.qc:4027 qcsrc/client/hud.qc:4030
-#, c-format
-msgid "^1Press ^3%s^1 to join"
-msgstr "^1Appuyez sur ^3%s^1 pour jouer"
+#: qcsrc/common/mapinfo.qh:39
+msgid "Last Man Standing"
+msgstr "Dernier Homme en Vie"
 
-#: qcsrc/client/hud.qc:4038
-#, c-format
-msgid "^1Game starts in ^3%d^1 seconds"
-msgstr "^1La partie commence dans ^3%d^1 secondes"
+#: qcsrc/common/mapinfo.qh:42
+msgid "Arena"
+msgstr "Arène"
 
-#: qcsrc/client/hud.qc:4045
-msgid "^2Currently in ^1warmup^2 stage!"
-msgstr "^2Actuellement en ^1mode échauffement^2 !"
+#: qcsrc/common/mapinfo.qh:45
+msgid "Runematch"
+msgstr "Runematch"
 
-#: qcsrc/client/hud.qc:4060
-#, c-format
-msgid "%sPress ^3%s%s to end warmup"
-msgstr "%sAppuyez sur ^3%s%s pour finir l'échauffement"
+#: qcsrc/common/mapinfo.qh:48
+msgid "Race"
+msgstr "Course"
 
-#: qcsrc/client/hud.qc:4062
-#, c-format
-msgid "%sPress ^3%s%s once you are ready"
-msgstr "%sAppuyez sur ^3%s%s quand vous êtes prêt"
+#: qcsrc/common/mapinfo.qh:51
+msgid "Race CTS"
+msgstr "Course CTS"
 
-#: qcsrc/client/hud.qc:4067
-msgid "^2Waiting for others to ready up to end warmup..."
-msgstr "^2En attente des autres joueurs pour finir l'échauffement..."
+#: qcsrc/common/mapinfo.qh:54
+msgid "Team Deathmatch"
+msgstr "Match à Mort en Équipe"
 
-#: qcsrc/client/hud.qc:4069
-msgid "^2Waiting for others to ready up..."
-msgstr "^2En attente des autres joueurs pour être prêt..."
+#: qcsrc/common/mapinfo.qh:57
+msgid "Capture the Flag"
+msgstr "Capture du Drapeau"
 
-#: qcsrc/client/hud.qc:4075
-#, c-format
-msgid "^2Press ^3%s^2 to end warmup"
-msgstr "^2Appuyez sur ^3%s^2 pour finir l'échauffement"
+#: qcsrc/common/mapinfo.qh:60
+msgid "Clan Arena"
+msgstr "Arène de Clan"
 
-#: qcsrc/client/hud.qc:4096
-msgid "Teamnumbers are unbalanced!"
-msgstr "Les équipes ne sont pas équilibrées !"
+#: qcsrc/common/mapinfo.qh:63
+msgid "Domination"
+msgstr "Domination"
 
-#: qcsrc/client/hud.qc:4101
-#, c-format
-msgid " Press ^3%s%s to adjust"
-msgstr " Appuyez sur ^3%s%s pour ajuster"
+#: qcsrc/common/mapinfo.qh:66
+msgid "Key Hunt"
+msgstr "Chasse aux Clés"
 
-#: qcsrc/client/hud.qc:4109
-msgid "^7Press ^3ESC ^7to show HUD options."
-msgstr "^7Appuyez sur ^3ESC ^7pour afficher les options de l'interface."
+#: qcsrc/common/mapinfo.qh:69
+msgid "Assault"
+msgstr "Assaut"
 
-#: qcsrc/client/hud.qc:4111
-msgid "^3Doubleclick ^7a panel for panel-specific options."
-msgstr "^3Double-cliquez ^7un panneau pour des options."
+#: qcsrc/common/mapinfo.qh:72
+msgid "Onslaught"
+msgstr "Stratégie"
 
-#: qcsrc/client/hud.qc:4113
-msgid "^3CTRL ^7to disable collision testing, ^3SHIFT ^7and"
-msgstr "^3Contrôle ^7pour désactiver le test de collision, ^3Majuscule ^7 et"
+#: qcsrc/common/mapinfo.qh:75
+msgid "Nexball"
+msgstr "Nexball"
 
-#: qcsrc/client/hud.qc:4115
-msgid "^3ALT ^7+ ^3ARROW KEYS ^7for fine adjustments."
-msgstr "^3Alt ^7+ ^3Flèches ^7 pour des ajustements précis."
+#: qcsrc/common/mapinfo.qh:78
+msgid "Freeze Tag"
+msgstr "Loup Glacé"
 
-#: qcsrc/client/hud.qc:4153
-msgid " qu/s"
-msgstr " qu/s"
+#: qcsrc/common/mapinfo.qh:81
+msgid "Keepaway"
+msgstr "Keepaway"
 
-#: qcsrc/client/hud.qc:4157
-msgid " m/s"
-msgstr " m/s"
+#: qcsrc/server/w_crylink.qc:666
+#, c-format
+msgid "%s succeeded at self-destructing themself with the Crylink"
+msgstr "%s a réussi à se suicider au Crylink"
 
-#: qcsrc/client/hud.qc:4161
-msgid " km/h"
-msgstr " km/h"
+#: qcsrc/server/w_crylink.qc:671
+#, c-format
+msgid "%s could not hide from %s's Crylink"
+msgstr "%s n'a pas pu se cacher du Crylink de %s"
 
-#: qcsrc/client/hud.qc:4165
-msgid " mph"
-msgstr " mph"
+#: qcsrc/server/w_crylink.qc:673
+#, c-format
+msgid "%s was too close to %s's Crylink"
+msgstr "%s s'est trop rapproché du Crylink de %s"
 
-#: qcsrc/client/hud.qc:4169
-msgid " knots"
-msgstr " nœuds"
+#: qcsrc/server/w_crylink.qc:675
+#, c-format
+msgid "%s took a close look at %s's Crylink"
+msgstr "%s a regardé le Crylink de %s de trop près"
 
-#: qcsrc/client/hud.qc:4814
-msgid "Automatically fixed wrong/missing panel numbers in _hud_panelorder\n"
-msgstr "Nombres des panneaux faux/manquants fixés dans _hud_panelorder\n"
+#: qcsrc/server/w_electro.qc:589
+#, c-format
+msgid "%s could not remember where they put their electro plasma"
+msgstr "%s n'a pas pu se souvenir où il a mis du plasma d'electro"
 
-#: qcsrc/client/target_music.qc:93 qcsrc/client/target_music.qc:181
+#: qcsrc/server/w_electro.qc:591
 #, c-format
-msgid "Cannot initialize sound %s\n"
-msgstr "Ne peut initialiser le son %s\n"
+msgid "%s played with electro plasma"
+msgstr "%s a joué avec du plasma d'electro"
 
-#: qcsrc/server/w_rifle.qc:233
+#: qcsrc/server/w_electro.qc:598
 #, c-format
-msgid "%s shot themself automatically"
-msgstr "%s s'est tiré sur lui-même"
+msgid "%s just noticed %s's electro plasma"
+msgstr "%s vient juste de remarquer le plasma d'electro de %s"
 
-#: qcsrc/server/w_rifle.qc:235
+#: qcsrc/server/w_electro.qc:600
 #, c-format
-msgid "%s sniped themself somehow"
-msgstr "%s s'est tiré une balle dans la tête"
+msgid "%s got in touch with %s's electro plasma"
+msgstr "%s a pu toucher le plasma d'electro de %s"
 
-#: qcsrc/server/w_rifle.qc:242
+#: qcsrc/server/w_electro.qc:605
 #, c-format
-msgid "%s failed to hide from %s's bullet hail"
-msgstr "%s n'a pas pu se cacher de la chaîne de balles de %s"
+msgid "%s felt the electrifying air of %s's electro combo"
+msgstr "%s a ressenti l'air éléctrique du combo d'electro de %s"
 
-#: qcsrc/server/w_rifle.qc:244
+#: qcsrc/server/w_electro.qc:607
 #, c-format
-msgid "%s died in %s's bullet hail"
-msgstr "%s est mort dans la chaîne de balles de %s"
+msgid "%s got too close to %s's blue electro bolt"
+msgstr "%s s'est trop rapproché du laser bleu d'electro de %s"
 
-#: qcsrc/server/w_rifle.qc:251
+#: qcsrc/server/w_electro.qc:609
 #, c-format
-msgid "%s failed to hide from %s's rifle"
-msgstr "%s n'a pas réussi à se cacher du fusil sniper de %s"
+msgid "%s was blasted by %s's blue electro bolt"
+msgstr "%s a été pulvérisé par le laser bleu d'electro de %s"
 
-#: qcsrc/server/w_rifle.qc:256
+#: qcsrc/server/w_fireball.qc:403
 #, c-format
-msgid "%s got hit in the head by %s"
-msgstr "%s a été tiré dans la tête par %s"
+msgid "%s forgot about some firemine"
+msgstr "%s est devenu une torche vivante pendant quelques secondes"
 
-#: qcsrc/server/w_rifle.qc:258 qcsrc/server/w_uzi.qc:321
+#: qcsrc/server/w_fireball.qc:405 qcsrc/server/w_hlac.qc:240
 #, c-format
-msgid "%s was sniped by %s"
-msgstr "%s a été snipé par %s"
+msgid "%s should have used a smaller gun"
+msgstr "%s aurait dû utiliser une arme plus petite"
 
-#: qcsrc/server/w_uzi.qc:317 qcsrc/server/w_shotgun.qc:215
-#: qcsrc/server/w_minstanex.qc:293 qcsrc/server/w_nex.qc:253
+#: qcsrc/server/w_fireball.qc:412
 #, c-format
-msgid "%s is now thinking with portals"
-msgstr "%s pense maintenant avec les portails"
+msgid "%s tried to catch %s's firemine"
+msgstr "%s a essayé d'attraper la mine de feu de %s"
 
-#: qcsrc/server/w_uzi.qc:323
+#: qcsrc/server/w_fireball.qc:414
 #, c-format
-msgid "%s was riddled full of holes by %s"
-msgstr "%s a été cribblé de balles par %s"
+msgid "%s fatefully ignored %s's firemine"
+msgstr "%s a ignoré la mine de feu de %s"
 
-#: qcsrc/server/w_rocketlauncher.qc:501 qcsrc/server/w_minelayer.qc:523
+#: qcsrc/server/w_fireball.qc:421
 #, c-format
-msgid "%s exploded"
-msgstr "%s a explosé"
+msgid "%s could not hide from %s's fireball"
+msgstr "%s n'a pas pu se cacher de la boule de feu de %s"
 
-#: qcsrc/server/w_rocketlauncher.qc:505
+#: qcsrc/server/w_fireball.qc:423
 #, c-format
-msgid "%s got too close to %s's rocket"
-msgstr "%s s'est trop approché de la roquette de %s"
+msgid "%s saw the pretty lights of %s's fireball"
+msgstr "%s a vu la belle lumière de la boule de feu de %s"
 
-#: qcsrc/server/w_rocketlauncher.qc:507
+#: qcsrc/server/w_fireball.qc:426
 #, c-format
-msgid "%s almost dodged %s's rocket"
-msgstr "%s a presque évité la roquette de %s"
+msgid "%s got too close to %s's fireball"
+msgstr "%s a regardé la boule de feu de %s de trop près"
 
-#: qcsrc/server/w_rocketlauncher.qc:509
+#: qcsrc/server/w_fireball.qc:428
 #, c-format
-msgid "%s ate %s's rocket"
-msgstr "%s a mangé la roquette de %s"
+msgid "%s tasted %s's fireball"
+msgstr "%s a goûté la boule de feu de %s"
 
-#: qcsrc/server/w_porto.qc:296 qcsrc/server/w_hook.qc:266
+#: qcsrc/server/w_grenadelauncher.qc:388
 #, c-format
-msgid "%s did the impossible"
-msgstr "%s a fait l'impossible"
+msgid "%s didn't see their own grenade"
+msgstr "%s n'a pas vu sa propre grenade"
 
-#: qcsrc/server/w_porto.qc:298
+#: qcsrc/server/w_grenadelauncher.qc:390
 #, c-format
-msgid "%s felt %s doing the impossible to him"
-msgstr "%s a senti %s faire l'impossible"
+msgid "%s blew themself up with their grenadelauncher"
+msgstr "%s s'est explosé avec son lance-grenades"
 
-#: qcsrc/server/w_hook.qc:2
-msgid "Grappling Hook"
-msgstr "Grappin"
+#: qcsrc/server/w_grenadelauncher.qc:396
+#, c-format
+msgid "%s didn't see %s's grenade"
+msgstr "%s n'a pas vu la grenade de %s"
 
-#: qcsrc/server/w_hook.qc:268
+#: qcsrc/server/w_grenadelauncher.qc:398
 #, c-format
-msgid "%s has run into %s's gravity bomb"
-msgstr "%s s'est jeté sur la bombe à gravité de %s"
+msgid "%s almost dodged %s's grenade"
+msgstr "%s a presque évité la grenade de %s"
 
-#: qcsrc/server/w_electro.qc:574
+#: qcsrc/server/w_grenadelauncher.qc:400
 #, c-format
-msgid "%s could not remember where they put plasma"
-msgstr "%s n'a pas pu se souvenir où il a mis du plasma"
+msgid "%s ate %s's grenade"
+msgstr "%s a mangé la grenade de %s"
 
-#: qcsrc/server/w_electro.qc:576
+#: qcsrc/server/w_hagar.qc:462
 #, c-format
-msgid "%s played with plasma"
-msgstr "%s a joué avec du plasma"
+msgid "%s played with tiny hagar rockets"
+msgstr "%s a joué avec des mini-roquettes d'hagar"
 
-#: qcsrc/server/w_electro.qc:583
+#: qcsrc/server/w_hagar.qc:466
 #, c-format
-msgid "%s just noticed %s's blue ball"
-msgstr "%s vient juste de remarquer la boule bleue de %s"
+msgid "%s was pummeled with a burst of hagar rockets by %s"
+msgstr "%s a été cribblé de roquettes d'hagar par %s"
 
-#: qcsrc/server/w_electro.qc:585
+#: qcsrc/server/w_hagar.qc:468
 #, c-format
-msgid "%s got in touch with %s's blue ball"
-msgstr "%s a pu toucher la boule bleue de %s"
+msgid "%s was pummeled with hagar rockets by %s"
+msgstr "%s a été pommelé avec des roquettes d'hagar par %s"
+
+#: qcsrc/server/w_hlac.qc:2
+msgid "Heavy Laser Assault Cannon"
+msgstr "Cannon Laser d'Assault Lourd"
 
-#: qcsrc/server/w_electro.qc:590
+#: qcsrc/server/w_hlac.qc:242
 #, c-format
-msgid "%s felt the electrifying air of %s's combo"
-msgstr "%s a ressenti l'air éléctrique du combo de %s"
+msgid "%s was cut down with a HLAC by %s"
+msgstr "%s a été coupé par l'HLAC de %s"
+
+#: qcsrc/server/w_hook.qc:2
+msgid "Grappling Hook"
+msgstr "Grappin"
 
-#: qcsrc/server/w_electro.qc:592
+#: qcsrc/server/w_hook.qc:286 qcsrc/server/w_porto.qc:386
 #, c-format
-msgid "%s got too close to %s's blue beam"
-msgstr "%s s'est trop rapproché du laser bleu de %s"
+msgid "%s did the impossible"
+msgstr "%s a fait l'impossible"
 
-#: qcsrc/server/w_electro.qc:594
+#: qcsrc/server/w_hook.qc:288
 #, c-format
-msgid "%s was blasted by %s's blue beam"
-msgstr "%s a été pulvérise par le laser bleu de %s"
+msgid "%s was caught in %s's hook gravity bomb"
+msgstr "%s a été pris dans la bombe à gravité de %s"
 
-#: qcsrc/server/w_laser.qc:311
+#: qcsrc/server/w_laser.qc:312
 #, c-format
 msgid "%s lasered themself to hell"
 msgstr "%s s'est suicidé au laser"
 
-#: qcsrc/server/w_laser.qc:315
+#: qcsrc/server/w_laser.qc:316
 #, c-format
 msgid "%s was cut in half by %s's gauntlet"
 msgstr "%s a été coupé en deux par la tronçonneuse de %s"
 
-#: qcsrc/server/w_laser.qc:317
+#: qcsrc/server/w_laser.qc:318
 #, c-format
 msgid "%s was lasered to death by %s"
 msgstr "%s a été tué au laser au %s"
 
-#: qcsrc/server/w_shotgun.qc:219
+#: qcsrc/server/w_minelayer.qc:533
 #, c-format
-msgid "%2$s ^7slapped %1$s ^7around a bit with a large ^2shotgun"
-msgstr "%2$s ^7a baffé %1$s ^7avec un gros ^2fusil"
+msgid "%s blew themself up with their minelayer"
+msgstr "%s s'est explosé avec son lance-mines"
 
-#: qcsrc/server/w_shotgun.qc:221
+#: qcsrc/server/w_minelayer.qc:535
 #, c-format
-msgid "%s was gunned by %s"
-msgstr "%s a été fusillé par %s"
+msgid "%s forgot about their mine"
+msgstr "%s a oublié sa mine"
 
-#: qcsrc/server/w_tuba.qc:2
+#: qcsrc/server/w_minelayer.qc:539
 #, c-format
-msgid "@!#%'n Tuba"
-msgstr "@!#%'n Tuba"
+msgid "%s got too close to %s's mine"
+msgstr "%s s'est trop rapproché de la mine de %s"
 
-#: qcsrc/server/w_tuba.qc:252
+#: qcsrc/server/w_minelayer.qc:541
 #, c-format
-msgid "%s hurt his own ears with the @!#%%'n Tuba"
-msgstr "%s est devenu sourd à cause de son @!#%%'n Tuba"
+msgid "%s almost dodged %s's mine"
+msgstr "%s a presque évité la mine de %s"
 
-#: qcsrc/server/w_tuba.qc:256
+#: qcsrc/server/w_minelayer.qc:543
 #, c-format
-msgid "%s died of %s's great playing on the @!#%%'n Tuba"
-msgstr "%s est devenu sourd à cause du @!#%%'n Tuba de %s"
+msgid "%s stepped on %s's mine"
+msgstr "%s a marché sur la mine de %s"
 
 #: qcsrc/server/w_minstanex.qc:2
 msgid "MinstaNex"
 msgstr "MinstaNex"
 
-#: qcsrc/server/w_minstanex.qc:295 qcsrc/server/w_nex.qc:255
+#: qcsrc/server/w_minstanex.qc:295 qcsrc/server/w_nex.qc:256
+#: qcsrc/server/w_rifle.qc:232 qcsrc/server/w_shotgun.qc:271
+#: qcsrc/server/w_uzi.qc:318
 #, c-format
-msgid "%s has been vaporized by %s"
-msgstr "%s a été vaporisé par %s"
-
-#: 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 au Crylink"
-
-#: 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"
+msgid "%s is now thinking with portals"
+msgstr "%s pense maintenant avec les portails"
 
-#: qcsrc/server/w_crylink.qc:671
+#: qcsrc/server/w_minstanex.qc:297
 #, c-format
-msgid "%s was too close to %s's Crylink"
-msgstr "%s s'est trop rapproché du Crylink de %s"
+msgid "%s has been vaporized by %s's minstanex"
+msgstr "%s a été vaporisé par le minstanex de %s"
 
-#: qcsrc/server/w_crylink.qc:673
+#: qcsrc/server/w_nex.qc:258
 #, c-format
-msgid "%s took a close look at %s's Crylink"
-msgstr "%s a regardé le Crylink de %s de trop près"
+msgid "%s has been vaporized by %s's nex"
+msgstr "%s a été vaporisé par le nex de %s"
 
-#: qcsrc/server/w_hlac.qc:2
-msgid "Heavy Laser Assault Cannon"
-msgstr "Cannon Laser d'Assault Lourd"
-
-#: qcsrc/server/w_hlac.qc:240 qcsrc/server/w_fireball.qc:419
+#: qcsrc/server/w_porto.qc:388
 #, c-format
-msgid "%s should have used a smaller gun"
-msgstr "%s aurait dû utiliser une arme plus petite"
+msgid "%s felt %s doing the impossible to him"
+msgstr "%s a senti %s faire l'impossible"
 
-#: qcsrc/server/w_hlac.qc:242
+#: qcsrc/server/w_rifle.qc:239
 #, c-format
-msgid "%s was cut down by %s"
-msgstr "%s a été coupé par %s"
+msgid "%s failed to hide from %s's rifle bullet hail"
+msgstr "%s n'a pas pu se cacher de la chaîne de balles de fusil sniper de %s"
 
-#: qcsrc/server/w_grenadelauncher.qc:383
+#: qcsrc/server/w_rifle.qc:241
 #, c-format
-msgid "%s tried out his own grenade"
-msgstr "%s a testé sa propre grenade"
+msgid "%s died in %s's rifle bullet hail"
+msgstr "%s est mort dans la chaîne de balles de %s"
 
-#: qcsrc/server/w_grenadelauncher.qc:385
+#: qcsrc/server/w_rifle.qc:248
 #, c-format
-msgid "%s detonated"
-msgstr "%s s'est détoné"
+msgid "%s failed to hide from %s's rifle"
+msgstr "%s n'a pas réussi à se cacher du fusil sniper de %s"
 
-#: qcsrc/server/w_grenadelauncher.qc:391
+#: qcsrc/server/w_rifle.qc:253
 #, c-format
-msgid "%s didn't see %s's grenade"
-msgstr "%s n'a pas vu la grenade de %s"
+msgid "%s got shot in the head with a rifle by %s"
+msgstr "%s a été tiré dans la tête avec un fusil sniper par %s"
 
-#: qcsrc/server/w_grenadelauncher.qc:393
+#: qcsrc/server/w_rifle.qc:255
 #, c-format
-msgid "%s almost dodged %s's grenade"
-msgstr "%s a presque évité la grenade de %s"
+msgid "%s was sniped with a rifle by %s"
+msgstr "%s a été snipé par le fusil sniper de %s"
 
-#: qcsrc/server/w_grenadelauncher.qc:395
+#: qcsrc/server/w_rocketlauncher.qc:466
 #, c-format
-msgid "%s ate %s's grenade"
-msgstr "%s a mangé la grenade de %s"
+msgid "%s blew themself up with their rocketlauncher"
+msgstr "%s s'est explosé avec son lance-roquettes"
 
-#: qcsrc/server/w_hagar.qc:382 qcsrc/server/w_seeker.qc:655
+#: qcsrc/server/w_rocketlauncher.qc:470
 #, c-format
-msgid "%s played with tiny rockets"
-msgstr "%s a joué avec des mini-roquettes"
+msgid "%s got too close to %s's rocket"
+msgstr "%s s'est trop approché de la roquette de %s"
 
-#: qcsrc/server/w_hagar.qc:386
+#: qcsrc/server/w_rocketlauncher.qc:472
 #, c-format
-msgid "%s hoped %s's missiles wouldn't bounce"
-msgstr "%s avait espéré que les missiles de %s ne rebondissaient pas"
+msgid "%s almost dodged %s's rocket"
+msgstr "%s a presque évité la roquette de %s"
 
-#: qcsrc/server/w_hagar.qc:388 qcsrc/server/w_seeker.qc:661
+#: qcsrc/server/w_rocketlauncher.qc:474
 #, c-format
-msgid "%s was pummeled by %s"
-msgstr "%s a été pommelé par %s"
+msgid "%s ate %s's rocket"
+msgstr "%s a mangé la roquette de %s"
 
 #: qcsrc/server/w_seeker.qc:2
 msgid "T.A.G. Seeker"
 msgstr "T.A.G. Chercheur"
 
-#: qcsrc/server/w_seeker.qc:659
+#: qcsrc/server/w_seeker.qc:661
 #, c-format
-msgid "%s was tagged by %s"
-msgstr "%s a été tagué par %s"
+msgid "%s played with tiny seeker rockets"
+msgstr "%s a joué avec des roquettes chercheuses"
 
-#: qcsrc/server/w_fireball.qc:417
+#: qcsrc/server/w_seeker.qc:665
 #, c-format
-msgid "%s forgot about some firemine"
-msgstr "%s est devenu une torche vivante pendant quelques secondes"
+msgid "%s was tagged with a seeker by %s"
+msgstr "%s a été tagué par le chercheur de %s"
 
-#: qcsrc/server/w_fireball.qc:426
+#: qcsrc/server/w_seeker.qc:667
 #, c-format
-msgid "%s tried to catch %s's firemine"
-msgstr "%s a essayé d'attraper la mine de feu de %s"
+msgid "%s was pummeled with seeker rockets by %s"
+msgstr "%s a été pommelé avec des roquettes chercheuses par %s"
 
-#: qcsrc/server/w_fireball.qc:428
+#: qcsrc/server/w_shotgun.qc:275
 #, c-format
-msgid "%s fatefully ignored %s's firemine"
-msgstr "%s a ignoré la mine de feu de %s"
+msgid "%2$s slapped %1$s around a bit with a large shotgun"
+msgstr "%2$s a baffé %1$s avec un gros fusil"
 
-#: qcsrc/server/w_fireball.qc:435
+#: qcsrc/server/w_shotgun.qc:277
 #, c-format
-msgid "%s could not hide from %s's fireball"
-msgstr "%s n'a pas pu se cacher de la boule de feu de %s"
+msgid "%s was gunned down with a shotgun by %s"
+msgstr "%s a été fusillé par %s"
 
-#: qcsrc/server/w_fireball.qc:437
+#: qcsrc/server/w_tuba.qc:2
 #, c-format
-msgid "%s saw the pretty lights of %s's fireball"
-msgstr "%s a vu la belle lumière de la boule de feu de %s"
+msgid "@!#%'n Tuba"
+msgstr "@!#%'n Tuba"
 
-#: qcsrc/server/w_fireball.qc:440
+#: qcsrc/server/w_tuba.qc:444
 #, c-format
-msgid "%s got too close to %s's fireball"
-msgstr "%s a regardé la boule de feu de %s de trop près"
+msgid "%s hurt his own ears with the @!#%%'n Tuba"
+msgstr "%s est devenu sourd à cause de son @!#%%'n Tuba"
 
-#: qcsrc/server/w_fireball.qc:442
+#: qcsrc/server/w_tuba.qc:447
 #, c-format
-msgid "%s tasted %s's fireball"
-msgstr "%s a goûté la boule de feu de %s"
+msgid "%s hurt his own ears with the @!#%%'n Accordeon"
+msgstr "%s est devenu sourd à cause de son @!#%%'n Accordeon"
 
-#: qcsrc/server/w_minelayer.qc:527
+#: qcsrc/server/w_tuba.qc:465
 #, c-format
-msgid "%s got too close to %s's mine"
-msgstr "%s s'est trop rapproché de la mine de %s"
+msgid "%s died of %s's great playing on the @!#%%'n Tuba"
+msgstr "%s est devenu sourd à cause du @!#%%'n Tuba de %s"
 
-#: qcsrc/server/w_minelayer.qc:529
+#: qcsrc/server/w_tuba.qc:468
 #, c-format
-msgid "%s almost dodged %s's mine"
-msgstr "%s a presque évité la mine de %s"
+msgid "%s died of %s's great playing on the @!#%%'n Accordeon"
+msgstr "%s est devenu sourd à cause du @!#%%'n Acoordeon de %s"
 
-#: qcsrc/server/w_minelayer.qc:531
+#: qcsrc/server/w_uzi.qc:322
 #, c-format
-msgid "%s stepped on %s's mine"
-msgstr "%s a marché sur la mine de %s"
+msgid "%s was sniped by %s's machine gun"
+msgstr "%s a été snipé par la mitraillette de %s"
+
+#: qcsrc/server/w_uzi.qc:324
+#, c-format
+msgid "%s was riddled full of holes by %s's machine gun"
+msgstr "%s a été cribblé de balles par la mitraillette de %s"
+
+#~ msgid "----- Order Menu -----"
+#~ msgstr "----- Menu d'ordre -----"
+
+#~ msgid "Order: %s"
+#~ msgstr "Ordre: %s"
+
+#~ msgid "1) ^3previous page"
+#~ msgstr "1) ^3page précédente"
+
+#~ msgid "2) ^3next page"
+#~ msgstr "2) ^3page suivante"
+
+#~ msgid "ESC) Exit Menu"
+#~ msgstr "ESC) Quitter le menu"
+
+#~ msgid "Couldn't find player %d\n"
+#~ msgstr "Ne peut pas trouver le joueur %d\n"
+
+#~ msgid "----- Command Menu -----"
+#~ msgstr "----- Menu de commandes -----"
+
+#~ msgid "Issue orders:"
+#~ msgstr "Donner des ordres:"
+
+#~ msgid " 1) Attack"
+#~ msgstr "1) Attaquer"
+
+#~ msgid " 2) Defend"
+#~ msgstr "2) Défendre"
+
+#~ msgid "3) Resign from command."
+#~ msgstr "3) Abandonner l'ordre"
+
+#~ msgid "You're commander!"
+#~ msgstr "Vous êtes le commandant !"
+
+#~ msgid "Awaiting orders..."
+#~ msgstr "En attente d'ordres..."
+
+#~ msgid "hud_save configname   (saves to hud_skinname_configname.cfg)\n"
+#~ msgstr "hud_save configname (saves to hud_skinname_configname.cfg)\n"
+
+#~ msgid "Usage: cl_cmd COMMAND..., where possible commands are:\n"
+#~ msgstr "Usage: cl_cmd COMMAND..., où les commandes possibles sont :\n"
+
+#~ msgid "  settemp cvar value\n"
+#~ msgstr " setteam cvar value\n"
+
+#~ msgid "  scoreboard_columns_set ...\n"
+#~ msgstr " scoreboard_columns_set ...\n"
+
+#~ msgid "  scoreboard_columns_help\n"
+#~ msgstr "  scoreboard_columns_help\n"
+
+#~ msgid "%s shot themself automatically"
+#~ msgstr "%s s'est tiré sur lui-même"
+
+#~ msgid "%s sniped themself somehow"
+#~ msgstr "%s s'est tiré une balle dans la tête"
+
+#~ msgid "%s exploded"
+#~ msgstr "%s a explosé"
+
+#~ msgid "%s tried out his own grenade"
+#~ msgstr "%s a testé sa propre grenade"
+
+#~ msgid "%s detonated"
+#~ msgstr "%s s'est détoné"
+
+#~ msgid "%s hoped %s's missiles wouldn't bounce"
+#~ msgstr "%s avait espéré que les missiles de %s ne rebondissaient pas"
diff --git a/csprogs.dat.hu.po b/csprogs.dat.hu.po
new file mode 100644 (file)
index 0000000..5d23761
--- /dev/null
@@ -0,0 +1,2110 @@
+# 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.
+# Ákos RUSZKAI, 2012.
+msgid ""
+msgstr ""
+"Project-Id-Version: 0.1preview\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-12-25 22:57+0100\n"
+"PO-Revision-Date: 2012-01-29 20:34+0100\n"
+"Last-Translator: Ákos RUSZKAI\n"
+"Language-Team: Hungarian <kde-l10n-hu@kde.org>\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.2\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: qcsrc/client/Main.qc:30
+msgid "ERROR - MENU IS VISIBLE BUT NO MENU WAS DEFINED!"
+msgstr "HIBA - A MENÜ LÁTHATÓ, DE NEM VOLT DEFINIÁLVA!"
+
+#: qcsrc/client/Main.qc:104
+msgid ""
+"^3Your engine build is outdated\n"
+"^3This Server uses a newer QC VM. Please update!\n"
+msgstr ""
+"^3A grafikus motorod elavult.\n"
+"^3A szerver újabb QC Virtuális Gépet (VM) használ. Kérlek, frissítsd a "
+"sajátodat!\n"
+
+#: qcsrc/client/Main.qc:114
+#, c-format
+msgid "^4CSQC Build information: ^1%s\n"
+msgstr "^4CSQC Build-Információ: ^1%s (magyar)\n"
+
+#: qcsrc/client/Main.qc:293 qcsrc/client/Main.qc:309
+#, c-format
+msgid "trying to switch to unsupported team %d\n"
+msgstr "nem támogatott %d csapathoz próbálsz csatlakozni"
+
+#: qcsrc/client/Main.qc:424 qcsrc/client/scoreboard.qc:241
+msgid "Usage:\n"
+msgstr "Használat:\n"
+
+#: qcsrc/client/Main.qc:425
+msgid "hud_save configname   (saves to hud_skinname_configname.cfg)\n"
+msgstr "hud_save configname   (hud_skinname_configname.cfg mentése)\n"
+
+#: qcsrc/client/Main.qc:549
+msgid "Usage: cl_cmd COMMAND..., where possible commands are:\n"
+msgstr "Használat: cl_cmd PARANCS..., ahol a lehetséges parancsok:\n"
+
+#: qcsrc/client/Main.qc:550
+msgid "  settemp cvar value\n"
+msgstr "  settemp Cvar Wert\n"
+
+#: qcsrc/client/Main.qc:551
+msgid "  scoreboard_columns_set ...\n"
+msgstr "  scoreboard_columns_set ...\n"
+
+#: qcsrc/client/Main.qc:552
+msgid "  scoreboard_columns_help\n"
+msgstr "  scoreboard_columns_help\n"
+
+#: qcsrc/client/Main.qc:788
+#, c-format
+msgid "A CSQC entity changed its owner! (edict: %d, classname: %s)\n"
+msgstr "Egy CSQC entitás gazdát cserélt! (edict: %d, classname: %s)\n"
+
+#: qcsrc/client/Main.qc:1029
+#, c-format
+msgid ""
+"A CSQC entity changed its type! (edict: %d, server: %d, type: %d -> %d)\n"
+msgstr ""
+"Egy CSQC entitás típust váltott! (edict: %d, server: %d, type: %d -"
+"> %d)\n"
+
+#: qcsrc/client/Main.qc:1038
+#, c-format
+msgid ""
+"A CSQC entity appeared out of nowhere! (edict: %d, server: %d, type: %d)\n"
+msgstr ""
+"Egy CSQC-entitás a nagy semmiből jelent meg! (edict: %d, server: %d, type: %"
+"d)\n"
+
+#: qcsrc/client/Main.qc:1080
+#, c-format
+msgid ""
+"Unknown entity type in CSQC_Ent_Update (enttype: %d, edict: %d, classname: "
+"%s)\n"
+msgstr ""
+"Ismeretlen entitás típus CSQC_Ent_Update (enttype: %d, edict: %d, "
+"classname: %s)\n"
+
+#: qcsrc/client/Main.qc:1526
+#, c-format
+msgid "%s (not bound)"
+msgstr "%s (nincs kiosztva)"
+
+#: qcsrc/client/Main.qc:1531 qcsrc/client/hud.qc:230
+#, c-format
+msgid "%s (%s)"
+msgstr "%s (%s)"
+
+#: qcsrc/client/announcer.qc:31
+msgid "^1Begin!"
+msgstr "^1Kezdődjék a játszma!"
+
+#: qcsrc/client/announcer.qc:41
+#, c-format
+msgid "^1Game starts in %d seconds"
+msgstr "^1A játszma kezdéséig még %d másodperc van hátra"
+
+#: qcsrc/client/announcer.qc:153
+msgid "^1RED^7 flag"
+msgstr "^1VÖRÖS^7 ZÁSZLÓ"
+
+#: qcsrc/client/announcer.qc:158
+msgid "^4BLUE^7 flag"
+msgstr "^4BLAUE^7 Flagge"
+
+#: qcsrc/client/announcer.qc:166
+#, c-format
+msgid "You picked up the %s!"
+msgstr "Felvetted a %s -t!"
+
+#: qcsrc/client/announcer.qc:170
+#, c-format
+msgid "You got the %s!"
+msgstr "Nálad van a %s!"
+
+#: qcsrc/client/csqcmodel_hooks.qc:17
+#, c-format
+msgid "Trying to use non existing model %s. "
+msgstr "A %s modell nem létezik "
+
+#: qcsrc/client/csqcmodel_hooks.qc:19
+#, c-format
+msgid "Reverted to %s.\n"
+msgstr "Visszaállítva %s helyzetbe.\n"
+
+#: qcsrc/client/hud.qc:160
+msgid "1st"
+msgstr "1."
+
+#: qcsrc/client/hud.qc:162
+msgid "2nd"
+msgstr "2."
+
+#: qcsrc/client/hud.qc:164
+msgid "3rd"
+msgstr "3."
+
+#: qcsrc/client/hud.qc:166
+#, c-format
+msgid "%dth"
+msgstr "%d."
+
+#: qcsrc/client/hud.qc:198
+#, c-format
+msgid " (-%dL)"
+msgstr " (-%dR)"
+
+#: qcsrc/client/hud.qc:203
+#, c-format
+msgid " (+%dL)"
+msgstr " (+%dR)"
+
+#: qcsrc/client/hud.qc:219
+msgid "Start line"
+msgstr "Start"
+
+#: qcsrc/client/hud.qc:221 qcsrc/client/hud.qc:225
+msgid "Finish line"
+msgstr "Cél"
+
+#: qcsrc/client/hud.qc:223
+#, c-format
+msgid "Intermediate %d"
+msgstr "Közepes %d"
+
+#: qcsrc/client/hud.qc:232
+#, c-format
+msgid "%s (%s %s)"
+msgstr "%s (%s %s)"
+
+#: qcsrc/client/hud.qc:786
+msgid "Out of ammo"
+msgstr "Nincs több lőszered."
+
+#: qcsrc/client/hud.qc:790
+msgid "Don't have"
+msgstr "nincs nálad"
+
+#: qcsrc/client/hud.qc:794
+msgid "Unavailable"
+msgstr "nem elérhető"
+
+#: qcsrc/client/hud.qc:1534
+#, c-format
+msgid "^1%s^1 couldn't take it anymore\n"
+msgstr "^1%s^1 már nem bírta tovább\n"
+
+#: qcsrc/client/hud.qc:1538 qcsrc/client/hud.qc:1887
+#, c-format
+msgid "^1%s^1 died\n"
+msgstr "^1%s^1 meghalt\n"
+
+#: qcsrc/client/hud.qc:1542
+#, c-format
+msgid "^7%s^7 committed suicide. What's the point of living without ammo?\n"
+msgstr "^7%s^7 öngyilkos lett. Lőszer nélkül mi értelme az életnek?\n"
+
+#: qcsrc/client/hud.qc:1546
+#, c-format
+msgid "^1%s^1 thought they found a nice camping ground\n"
+msgstr "^1%s^1 azt hitte, jó helyen vert tanyát\n"
+
+#: qcsrc/client/hud.qc:1550
+#, c-format
+msgid "^1%s^1 didn't become friends with the Lord of Teamplay\n"
+msgstr "^1%s^1 és a Csapatjátékosok Ura mégse jött ki jól egymással\n"
+
+#: qcsrc/client/hud.qc:1554
+#, c-format
+msgid "^1%s^1 unfairly eliminated themself\n"
+msgstr "^1%s^1 unfair módon kicsinálta magát\n"
+
+#: qcsrc/client/hud.qc:1558
+#, c-format
+msgid "^1%s^1 burned to death\n"
+msgstr "^1%s^1 szénné égett\n"
+
+#: qcsrc/client/hud.qc:1562
+#, c-format
+msgid "^1%s^1 couldn't resist the urge to self-destruct\n"
+msgstr "^1%s^1 szerint jó móka az öngyilkosság\n"
+
+#: qcsrc/client/hud.qc:1566
+#, c-format
+msgid "^1%s^1 ended it all after a %d kill spree\n"
+msgstr "^1%s^1 kinyírta magát %d-szeres Ámokfutása után\n"
+
+#: qcsrc/client/hud.qc:1583
+#, c-format
+msgid "^1%s^1 took action against a team mate\n"
+msgstr "^1%s^1 a saját csapattársa ellen fordult!\n"
+
+#: qcsrc/client/hud.qc:1585
+#, c-format
+msgid "^1%s^1 mows down a team mate\n"
+msgstr "^1%s^1 ledarált még egy csapattársat!\n"
+
+#: qcsrc/client/hud.qc:1590
+#, c-format
+msgid "^1%s^1 ended a %d scoring spree by going against a team mate\n"
+msgstr "^1%s^1 befejezte %d-szeres Ámokfutását, és a csapattársára rontott!\n"
+
+#: qcsrc/client/hud.qc:1592
+#, c-format
+msgid "^1%s^1 ended a %d kill spree by killing a team mate\n"
+msgstr "^1%s^1 bevégezte %d-szres Ámokfutását, és megölte egy csapattársát!\n"
+
+#: qcsrc/client/hud.qc:1596
+#, c-format
+msgid "^1%s^1's %s scoring spree was ended by a team mate!\n"
+msgstr "^1%s^1s %s-szeres Ámokfutásának egy csapattársa vetett véget!\n"
+
+#: qcsrc/client/hud.qc:1598
+#, c-format
+msgid "^1%s^1's %s kill spree was ended by a team mate!\n"
+msgstr "^1%s^1s %s-szeres Ámokfutását egy csapattársa fejezte be!\n"
+
+#: qcsrc/client/hud.qc:1602
+#, c-format
+msgid "^1%s^1 drew first blood\n"
+msgstr "^1%s^1 ontotta az első vért!\n"
+
+#: qcsrc/client/hud.qc:1606
+#, c-format
+msgid "^1%s^1 tried to occupy %s^1's teleport destination space\n"
+msgstr "^1%s^1 megpróbálta elfoglalni %s^1 teleportációs helyét\n"
+
+#: qcsrc/client/hud.qc:1608
+#, c-format
+msgid "^1%s^1 was telefragged by %s\n"
+msgstr "^1%s^1-ba %s^1 egyszerűen bele-teleportált\n"
+
+#: qcsrc/client/hud.qc:1613
+#, c-format
+msgid "^1%s^1 was drowned by %s\n"
+msgstr "^1%2$s^1 megfolytotta %1$^1-t a víz alatt\n"
+
+#: qcsrc/client/hud.qc:1618
+#, c-format
+msgid "^1%s^1 was slimed by %s\n"
+msgstr "^1%2$s^1 belelökte %1$s^1-t a trutymóba\n"
+
+#: qcsrc/client/hud.qc:1623
+#, c-format
+msgid "^1%s^1 was cooked by %s\n"
+msgstr "^1%2$s^1 ropogósra sütötte %1$s^1-t a lávában\n"
+
+#: qcsrc/client/hud.qc:1628
+#, c-format
+msgid "^1%s^1 was grounded by %s\n"
+msgstr "^1%2$s^1 lelökte %1$s^1-t a mélybe\n"
+
+#: qcsrc/client/hud.qc:1633
+#, c-format
+msgid "^1%s^1 was shot into space by %s\n"
+msgstr "^1%2$s^1 kilőtte %1$s^1-t az űrbe\n"
+
+#: qcsrc/client/hud.qc:1638
+#, c-format
+msgid "^1%s^1 was conserved by %s\n"
+msgstr "^1%2$s^1 összecsomagolta %1$s^1-t\n"
+
+#: qcsrc/client/hud.qc:1644
+#, c-format
+msgid "^1%s^1 was thrown into a world of hurt by %s\n"
+msgstr "^1%2$s^1 kilökte %1$s^1-t a nagy semmibe\n"
+
+#: qcsrc/client/hud.qc:1648
+#, c-format
+msgid "^1%s^1 was crushed by %s\n"
+msgstr "^1%2$s^1 összeroppantotta %1$s^1-t\n"
+
+#: qcsrc/client/hud.qc:1652
+#, c-format
+msgid "^1%s^1 got shredded by %s\n"
+msgstr "^1%2$s^1 ledarálta %1$s^1-t\n"
+
+#: qcsrc/client/hud.qc:1656
+#, c-format
+msgid "^1%s^1 was blasted to bits by %s\n"
+msgstr "^1%2$s^1 darabokra robbantotta %1$s^1\n"
+
+#: qcsrc/client/hud.qc:1660
+#, c-format
+msgid "^1%s^1 got caught in the destruction of %s^1's vehicle\n"
+msgstr "^1%s^1 túl közel merészkedett %s^1 járművének robbanásához\n"
+
+#: qcsrc/client/hud.qc:1664
+#, c-format
+msgid "^1%s^1 was bolted down by %s\n"
+msgstr "^1%2$s^1 odaszögezte %1$s^1-t\n"
+
+#: qcsrc/client/hud.qc:1668
+#, c-format
+msgid "^1%s^1 could find no shelter from %s^1's rockets\n"
+msgstr "^1%s^1 nem tudott fedezékbe húzódni %s^1s rakétái elől\n"
+
+#: qcsrc/client/hud.qc:1672
+#, c-format
+msgid "^1%s^1 dies when %s^1's wakizashi dies.\n"
+msgstr "^1%s^1 meghalt %s^1's Wakizashijának becsapódásától.\n"
+
+#: qcsrc/client/hud.qc:1676
+#, c-format
+msgid "^1%s^1 nailed to hell by %s\n"
+msgstr "^1%2$s^1 odaszögezte %1$s^1-t a földhöz\n"
+
+#: qcsrc/client/hud.qc:1680
+#, c-format
+msgid "^1%s^1 cluster crushed by %s\n"
+msgstr "^1%2$s^1 cafatokra tépte %1$s^1-t\n"
+
+#: qcsrc/client/hud.qc:1684
+#, c-format
+msgid "^1%s^1 dies when %s^1's raptor dies.\n"
+msgstr "^1%s^1 is belehalt %s^1 Raptorjának lezuhanásába.\n"
+
+#: qcsrc/client/hud.qc:1688
+#, c-format
+msgid "^1%s^1 was pushed into the line of fire by %s\n"
+msgstr "^1%2$s^1 kilökte %1$s^1-t a tűzvonalba\n"
+
+#: qcsrc/client/hud.qc:1692
+#, c-format
+msgid "^1%s^1 was pushed into an accident by %s\n"
+msgstr "^1%2$s^1 miatt %1$s^1 halálos balesetet szenvedett\n"
+
+#: qcsrc/client/hud.qc:1696
+#, c-format
+msgid "^1%s^1 was unfairly eliminated by %s\n"
+msgstr "^%2$s^1 unfair módon kinyírta %1$s^1-t\n"
+
+#: qcsrc/client/hud.qc:1700
+#, c-format
+msgid "^1%s^1 was burnt to death by %s\n"
+msgstr "^1%2$s^1 elégette %1$s^1-t\n"
+
+#: qcsrc/client/hud.qc:1712
+#, c-format
+msgid "^1%s^1 was fragged by %s\n"
+msgstr "^1%2$s^1 kinyírta %1$s^1-t\n"
+
+#: qcsrc/client/hud.qc:1717
+#, c-format
+msgid "^1%s^1's %s scoring spree was ended by %s\n"
+msgstr "^1%s^1 %s értékű pontgyűjtésének %s^1 vetet véget\n"
+
+#: qcsrc/client/hud.qc:1719
+#, c-format
+msgid "^1%s^1's %s kill spree was ended by %s\n"
+msgstr "^1%s^1 %s Gyilokos Ámokfutásának %s^1 vetett véget\n"
+
+#: qcsrc/client/hud.qc:1722
+#, c-format
+msgid "^1%s^1 made %s scores in a row\n"
+msgstr "^1%s^1 már a %s-dik pontot szerzi zsinórban!\n"
+
+#: qcsrc/client/hud.qc:1724
+#, c-format
+msgid "^1%s^1 has %s frags in a row\n"
+msgstr "^1%s^1 már a  %s-dik ellenfelét öli meg zsinórban!\n"
+
+#: qcsrc/client/hud.qc:1727
+#, c-format
+msgid "%s^7 made a ^1TRIPLE SCORE\n"
+msgstr "%s^7-nak ^1MESTER HÁRMASA^7 van!\n"
+
+#: qcsrc/client/hud.qc:1729
+#, c-format
+msgid "%s^7 made a ^1TRIPLE FRAG\n"
+msgstr "%s^7-nak  ^1TRIPLAGYILOK^7-j van!\n"
+
+#: qcsrc/client/hud.qc:1732
+#, c-format
+msgid "%s^7 unleashes ^1SCORING RAGE\n"
+msgstr "%s^7 egy ^1PONTSZERZŐGÉP!\n"
+
+#: qcsrc/client/hud.qc:1734
+#, c-format
+msgid "%s^7 unleashes ^1RAGE\n"
+msgstr "%s^7 egy^1GYILKOLÓGÉP!\n"
+
+#: qcsrc/client/hud.qc:1737
+#, c-format
+msgid "%s^7 made ^1TEN SCORES IN A ROW!\n"
+msgstr "%s^7 már ^1TÍZ PONTOT SZERZETT ZSINÓRBAN!\n"
+
+#: qcsrc/client/hud.qc:1739
+#, c-format
+msgid "%s^7 starts the ^1MASSACRE!\n"
+msgstr "%s^7 egy ^1MÉSZÁROS!\n"
+
+#: qcsrc/client/hud.qc:1742
+#, c-format
+msgid "%s^7 made ^1FIFTEEN SCORES IN A ROW!\n"
+msgstr "%s^7 már ^1TIZENÖT PONTOT SZERZETT ZSINÓRBAN!\n"
+
+#: qcsrc/client/hud.qc:1744
+#, c-format
+msgid "%s^7 executes ^1MAYHEM!\n"
+msgstr "%s^7 elhozta a ^1KÁOSZT!\n"
+
+#: qcsrc/client/hud.qc:1747
+#, c-format
+msgid "%s^7 made ^1TWENTY SCORES IN A ROW!\n"
+msgstr "%s^7 már ^1HÚSZ PONTOT GYŰJTÖTT ZSINÓRBAN!\n"
+
+#: qcsrc/client/hud.qc:1749
+#, c-format
+msgid "%s^7 is a ^1BERSERKER!\n"
+msgstr "%s^7 ^1ŐRÜLETBE ESETT!\n"
+
+#: qcsrc/client/hud.qc:1752
+#, c-format
+msgid "%s^7 made ^1TWENTY FIVE SCORES IN A ROW!\n"
+msgstr "%s^7 már ^1HUSZONÖT PONTOT SZERZETT ZSINÓRBAN!\n"
+
+#: qcsrc/client/hud.qc:1754
+#, c-format
+msgid "%s^7 inflicts ^1CARNAGE!\n"
+msgstr "%s^7 ^1VÉRFÜRDŐT RENDEZ!\n"
+
+#: qcsrc/client/hud.qc:1757
+#, c-format
+msgid "%s^7 made ^1THIRTY SCORES IN A ROW!\n"
+msgstr "%s^7 már ^1HARMINC PONTOT SZERZETT ZSINÓRBAN!\n"
+
+#: qcsrc/client/hud.qc:1759
+#, c-format
+msgid "%s^7 unleashes ^1ARMAGEDDON!\n"
+msgstr "%s^7 MAGA AZ ^1APOKALIPSZIS ANGYALA!\n"
+
+#: qcsrc/client/hud.qc:1767
+#, c-format
+msgid "^1%s^1 was in the water for too long\n"
+msgstr "^1%s^1 túl sokáig maradt a víz alatt\n"
+
+#: qcsrc/client/hud.qc:1769
+#, c-format
+msgid "^1%s^1 drowned\n"
+msgstr "^1%s^1 már a halakkal alszik\n"
+
+#: qcsrc/client/hud.qc:1774
+#, c-format
+msgid "^1%s^1 was slimed\n"
+msgstr "^1%s^1 feloldótott a trugymóban\n"
+
+#: qcsrc/client/hud.qc:1780
+#, c-format
+msgid "^1%s^1 found a hot place\n"
+msgstr "^1%s^1 ropogósra sült a lávában\n"
+
+#: qcsrc/client/hud.qc:1782
+#, c-format
+msgid "^1%s^1 turned into hot slag\n"
+msgstr "^1%s^1 szó szerint beleolvadt a környezetébe\n"
+
+#: qcsrc/client/hud.qc:1789
+#, c-format
+msgid "^1%s^1 tested gravity (and it worked)\n"
+msgstr ""
+"^1%s^1 kíváncsi volt, hogy működik-e még a gravitáció (a válasz: igen)\n"
+
+#: qcsrc/client/hud.qc:1791
+#, c-format
+msgid "^1%s^1 hit the ground with a crunch\n"
+msgstr "^1%s^1 szétplaccsant a földön\n"
+
+#: qcsrc/client/hud.qc:1796
+#, c-format
+msgid "^1%s^1 became a shooting star\n"
+msgstr "^1%s^1 elszállt, mint a győzelmi zászló\n"
+
+#: qcsrc/client/hud.qc:1802
+#, c-format
+msgid "^1%s^1 discovered a swamp\n"
+msgstr "^1%s^1 rátalált egy mocsárra\n"
+
+#: qcsrc/client/hud.qc:1804
+#, c-format
+msgid "^1%s^1 is now conserved for centuries to come\n"
+msgstr "^1%s^1 már örökké elvan, mint a befőtt\n"
+
+#: qcsrc/client/hud.qc:1811
+#, c-format
+msgid "^1%s^1 ran into a turret\n"
+msgstr "^1%s^1 belefutott egy automatikus lövegbe\n"
+
+#: qcsrc/client/hud.qc:1817
+#, c-format
+msgid "^1%s^1 was laserd down by a eWheel turret \n"
+msgstr "^1%s^1 belenézett egy eWheel lézersugarába\n"
+
+#: qcsrc/client/hud.qc:1820
+#, c-format
+msgid "^1%s^1 got caught in the flac \n"
+msgstr "^1%s^1 beleszaladt a repeszekbe\n"
+
+#: qcsrc/client/hud.qc:1823
+#, c-format
+msgid "^1%s^1 was riddeld full of riddled by a machinegun turret \n"
+msgstr "^1Egy automatikus Gépágyú torony szitává lyuggatta 1%s^1-t\n"
+
+#: qcsrc/client/hud.qc:1826
+#, c-format
+msgid "^1%s^1 got served a led enrichment by a walker turret \n"
+msgstr "^1%s^1 megkapta az ólom beültetést egy Pókjárótól\n"
+
+#: qcsrc/client/hud.qc:1829
+#, c-format
+msgid "^1%s^1 was impaled by a walker turret \n"
+msgstr "^1Egy Pókjáró darabokra tépte %s^1-t\n"
+
+#: qcsrc/client/hud.qc:1832
+#, c-format
+msgid "^1%s^1 was rocketed to hell by a walker turret \n"
+msgstr "^1%s^1 lefejelte egy Pókjáró rakétáját\n"
+
+#: qcsrc/client/hud.qc:1835
+#, c-format
+msgid "^1%s^1 was blasted away hellion turret \n"
+msgstr "^1Egy Pokoltorony felrobbantotta %s^1-t a rakétáival\n"
+
+#: qcsrc/client/hud.qc:1838
+#, c-format
+msgid "^1%s^1 could not hide from the hunter turret \n"
+msgstr "^1%s nem tudott elbújni egy Vadász torony elől\n"
+
+#: qcsrc/client/hud.qc:1841
+#, c-format
+msgid "^1%s^1 got turned into smoldering gibs by a mlrs turret \n"
+msgstr ""
+"^1%s^1 pici forró húscafatokká vált egy automatikus MLRS torony rakétáitól\n"
+
+#: qcsrc/client/hud.qc:1844
+#, c-format
+msgid "^1%s^1 got served some superheated plasma from a plasma turret \n"
+msgstr "^1%s^1 atomjaira hullott egy Plazma torony forró sugaraitól\n"
+
+#: qcsrc/client/hud.qc:1847
+#, c-format
+msgid "^1%s^1 was phased out \n"
+msgstr "^1%s^1 légneművé változott egy Fázistoronytól\n"
+
+#: qcsrc/client/hud.qc:1850
+#, c-format
+msgid "^1%s^1 was electrocuted by a tesla turret \n"
+msgstr "^1%s^1 egészen felvillanyozódott egy Tesla toronytól\n"
+
+#: qcsrc/client/hud.qc:1866
+#, c-format
+msgid "^1%s^1 died in an accident\n"
+msgstr "^1%s^1 elhunyt egy tragikus balesetben\n"
+
+#: qcsrc/client/hud.qc:1870
+#, c-format
+msgid "^1%s^1 was unfairly eliminated\n"
+msgstr "^1%s^1-t kicsinálták unfair módón \n"
+
+#: qcsrc/client/hud.qc:1876
+#, c-format
+msgid "^1%s^1 felt a little hot\n"
+msgstr "^1%s^1 kissé forrófejű lett\n"
+
+#: qcsrc/client/hud.qc:1878
+#, c-format
+msgid "^1%s^1 burnt to death\n"
+msgstr "^1%s^1 ropogósra sült\n"
+
+#: qcsrc/client/hud.qc:1885
+#, c-format
+msgid "^1%s^1 needs a restart\n"
+msgstr "^1%s^1 újra kell hogy kezdje\n"
+
+#: qcsrc/client/hud.qc:1892
+#, c-format
+msgid "^1%s^1 needs a restart after a %d scoring spree\n"
+msgstr "^1%s^1 újra kell hogy kezdje %d pont után\n"
+
+#: qcsrc/client/hud.qc:1894
+#, c-format
+msgid "^1%s^1 died with a %d kill spree\n"
+msgstr "^1%s^1 bevégezte %d-gyilokos ÁMOKFUTÁSÁT\n"
+
+#: qcsrc/client/hud.qc:1898
+#, c-format
+msgid "%s^7 got the %s\n"
+msgstr "%s^7 megszerezte a %s-t\n"
+
+#: qcsrc/client/hud.qc:1901
+#, c-format
+msgid "%s^7 lost the %s\n"
+msgstr "%s^7 elvesztette a %s-t\n"
+
+#: qcsrc/client/hud.qc:1904
+#, c-format
+msgid "%s^7 picked up the %s\n"
+msgstr "%s^7 felvette a %s-t\n"
+
+#: qcsrc/client/hud.qc:1907
+#, c-format
+msgid "%s^7 returned the %s\n"
+msgstr "%s^7 visszaszerezte a %s^7-t\n"
+
+#: qcsrc/client/hud.qc:1910
+#, c-format
+msgid "%s^7 captured the %s%s\n"
+msgstr "%s^7 elfoglalta a %s%s-t\n"
+
+#: qcsrc/client/hud.qc:1929
+#, c-format
+msgid "%s^7 has picked up the ball!\n"
+msgstr "%s^7 felvette a labdát!\n"
+
+#: qcsrc/client/hud.qc:1934
+#, c-format
+msgid "%s^7 has dropped the ball!\n"
+msgstr "%s^7 elhagyta a labdát!\n"
+
+#: qcsrc/client/hud.qc:1945
+#, c-format
+msgid "You are now on: %s"
+msgstr "Mostantól a %s tagja vagy."
+
+#: qcsrc/client/hud.qc:1947
+#, c-format
+msgid ""
+"You have been moved into a different team to improve team balance\n"
+"You are now on: %s"
+msgstr ""
+"Át lettél mozgatva egy másik csapatba, hogy kiegyenlített legyen a játék.\n"
+"Mostantól a %s tagja vagy."
+
+#: qcsrc/client/hud.qc:1950
+msgid "^1Reconsider your tactics, camper!"
+msgstr "^1Ne ülj a tojásaidon, nem vagy te tojógalamb!!"
+
+#: qcsrc/client/hud.qc:1952
+msgid "^1Die camper!"
+msgstr "^1Ne tanyázz le, ez itt nem a kemping !"
+
+#: qcsrc/client/hud.qc:1955
+msgid "^1You are reinserted into the game for running out of ammo..."
+msgstr "^1Visszakerültél a játékba, mert kifogytál a lőszerből"
+
+#: qcsrc/client/hud.qc:1957
+msgid "^1You were killed for running out of ammo..."
+msgstr "^1Meghaltál, mert elfogyott a lőszered..."
+
+#: qcsrc/client/hud.qc:1960
+msgid "^1You need to preserve your health"
+msgstr "^1Szinten kell tartanod az életerőd"
+
+#: qcsrc/client/hud.qc:1962
+msgid "^1You grew too old without taking your medicine"
+msgstr "^1Öregszel, be kéne venned a gyógyszereid"
+
+#: qcsrc/client/hud.qc:1965
+msgid "^1Don't go against team mates!"
+msgstr "^1A csapattársaid ellen mész!"
+
+#: qcsrc/client/hud.qc:1967
+msgid "^1Don't shoot your team mates!"
+msgstr "^1Ne lőj a csapattársaidra!"
+
+#: qcsrc/client/hud.qc:1972
+msgid "^1You need to be more careful!"
+msgstr "^1Jobban oda kéne figyelned!"
+
+#: qcsrc/client/hud.qc:1974
+msgid "^1You killed your own dumb self!"
+msgstr "^1Kinyírtad magad, hülyegyerek..."
+
+#: qcsrc/client/hud.qc:1979
+#, c-format
+msgid "^1Moron! You went against ^7%s^1, a team mate!"
+msgstr "^1Marha! %s ellen fordultál, pedig a csapattársad!"
+
+#: qcsrc/client/hud.qc:1981
+#, c-format
+msgid "^1Moron! You fragged ^7%s^1, a team mate!"
+msgstr "^1Idióta! Megölted %s-t pedig a csapattársad!"
+
+#: qcsrc/client/hud.qc:1985
+msgid "^1First score"
+msgstr "^1ELSŐ PONT!"
+
+#: qcsrc/client/hud.qc:1987
+msgid "^1First blood"
+msgstr "^1ELSŐ VÉR!"
+
+#: qcsrc/client/hud.qc:1991
+msgid "^1First casualty"
+msgstr "^1Te vagy az első sérült"
+
+#: qcsrc/client/hud.qc:1993
+msgid "^1First victim"
+msgstr "^1Ta vagy az első áldozat "
+
+#: qcsrc/client/hud.qc:1997
+#, c-format
+msgid "^1You scored against ^7%s^1 who was typing!"
+msgstr "^1Szereztél egy pontot ^7%s^1 ellen, aki épp gépelt!"
+
+#: qcsrc/client/hud.qc:1999
+#, c-format
+msgid "^1You typefragged ^7%s"
+msgstr "^1Csevejgyilok áltozatod: ^7%s^1"
+
+#: qcsrc/client/hud.qc:2003
+#, c-format
+msgid "^1You were scored against by ^7%s^1 while you were typing!"
+msgstr ""
+"^7%s^1 szerzett egy pontot ellened, amíg a gépeléssel voltál elfoglalva!"
+
+#: qcsrc/client/hud.qc:2005
+#, c-format
+msgid "^1You were typefragged by ^7%s"
+msgstr "^7%s^1 kinyírt téged, amíg a gépeléssel voltál elfoglalva"
+
+#: qcsrc/client/hud.qc:2009
+#, c-format
+msgid "^4You scored against ^7%s"
+msgstr "^4Pontot szereztél ^7%s^4 ellen"
+
+#: qcsrc/client/hud.qc:2011
+#, c-format
+msgid "^4You fragged ^7%s"
+msgstr "^4Kinyírtad ^7%s^4-t!"
+
+#: qcsrc/client/hud.qc:2015
+#, c-format
+msgid "^1You were scored against by ^7%s"
+msgstr "^7%s^1 szerzett egy pontot ellened"
+
+#: qcsrc/client/hud.qc:2017
+#, c-format
+msgid "^1You were fragged by ^7%s"
+msgstr "^7%s^1 kinyírt téged"
+
+#: qcsrc/client/hud.qc:2022
+msgid "^1Watch your step!"
+msgstr "^1Nézz a lábad elé!"
+
+#: qcsrc/client/hud.qc:2091 qcsrc/client/hud.qc:2092 qcsrc/client/hud.qc:2598
+#, c-format
+msgid "Player %d"
+msgstr "Játékos %d"
+
+#: qcsrc/client/hud.qc:2907
+msgid "^1Intermediate 1 (+15.42)"
+msgstr "^1Közepes 1 (+15.42)"
+
+#: qcsrc/client/hud.qc:2909 qcsrc/client/hud.qc:2951 qcsrc/client/hud.qc:2992
+#, c-format
+msgid "^1PENALTY: %.1f (%s)"
+msgstr "^1BÜNTETÉS: %.1f (%s)"
+
+#: qcsrc/client/hud.qc:2994
+#, c-format
+msgid "^2PENALTY: %.1f (%s)"
+msgstr "^2BÜNTETÉS: %.1f (%s)"
+
+#: qcsrc/client/hud.qc:3022
+msgid "^1You must answer before entering hud configure mode\n"
+msgstr "^1Választanod kell, mielőtt beléphetsz a HUD beállításokba\n"
+
+#: qcsrc/client/hud.qc:3027
+msgid "^2Name ^7instead of \"^1Anonymous player^7\" in stats"
+msgstr "^2Név^7 mutatása \"^1Anonymous player^7\" helyett a statisztikákban"
+
+#: qcsrc/client/hud.qc:3109
+msgid "A vote has been called for:"
+msgstr "Szavaznod kell az alábbi ügyben:"
+
+#: qcsrc/client/hud.qc:3111
+msgid "Allow servers to store and display your name?"
+msgstr "Megengeded, hogy a szerver eltárolja én megjelenítse a neved?"
+
+#: qcsrc/client/hud.qc:3115
+msgid "^1Configure the HUD"
+msgstr "^1A HUD beállításai"
+
+#: qcsrc/client/hud.qc:3119
+#, c-format
+msgid "Yes (%s): %d"
+msgstr "Igen (%s): %d"
+
+#: qcsrc/client/hud.qc:3121
+#, c-format
+msgid "No (%s): %d"
+msgstr "Nem (%s): %d"
+
+#: qcsrc/client/hud.qc:3624 qcsrc/client/hud.qc:3627 qcsrc/client/hud.qc:3629
+msgid "Personal best"
+msgstr "Saját legjobb idő"
+
+#: qcsrc/client/hud.qc:3642 qcsrc/client/hud.qc:3645 qcsrc/client/hud.qc:3647
+msgid "Server best"
+msgstr "Szerver legjobb idő"
+
+#: qcsrc/client/hud.qc:3993
+msgid "^3Player^7: This is the chat area."
+msgstr "^3Player^7: Ez a csevej terület"
+
+#: qcsrc/client/hud.qc:4061
+#, c-format
+msgid "FPS: %.*f"
+msgstr "FPS: %.*f"
+
+#: qcsrc/client/hud.qc:4128
+msgid "^1Observing"
+msgstr "^1Néző"
+
+#: qcsrc/client/hud.qc:4131 qcsrc/client/hud.qc:4133
+#, c-format
+msgid "^1Spectating: ^7%s"
+msgstr "^7%s^1-t nézed és követed"
+
+#: qcsrc/client/hud.qc:4138
+#, c-format
+msgid "^1Press ^3%s^1 to spectate"
+msgstr "^1Nyomd meg a ^3%s^1 gombot, hogy nézőként lépj be!"
+
+#: qcsrc/client/hud.qc:4140
+#, c-format
+msgid "^1Press ^3%s^1 for another player"
+msgstr "^1Nyomd meg a ^3%s^1 gombot egy másik játékos követéséhez!"
+
+#: qcsrc/client/hud.qc:4144
+#, c-format
+msgid "^1Use ^3%s^1 or ^3%s^1 to change the speed"
+msgstr "^1Használd a ^3%s^1 vagy ^3%s^1 gombokat a sebesség változtatásához!"
+
+#: qcsrc/client/hud.qc:4146
+#, c-format
+msgid "^1Press ^3%s^1 to observe"
+msgstr "^1Nyomd meg a ^3%s^1 gombot, hogy néző lehess!"
+
+#: qcsrc/client/hud.qc:4149
+#, c-format
+msgid "^1Press ^3%s^1 for gamemode info"
+msgstr "^1Nyomd meg a ^3%s^1 gombot a játékmód információkért!"
+
+#: qcsrc/client/hud.qc:4153
+msgid "^1Wait for your turn to join"
+msgstr "^1Várj kérlek a saját körödre!"
+
+#: qcsrc/client/hud.qc:4159
+msgid "^1Match has already begun"
+msgstr "^1A játék már elkezdődött"
+
+#: qcsrc/client/hud.qc:4161
+msgid "^1You have no more lives left"
+msgstr "^1Nincs több életed"
+
+#: qcsrc/client/hud.qc:4163 qcsrc/client/hud.qc:4166
+#, c-format
+msgid "^1Press ^3%s^1 to join"
+msgstr "^1Nyomd meg a ^3%s^1 gombot a játékba való belépéshez!"
+
+#: qcsrc/client/hud.qc:4174
+#, c-format
+msgid "^1Game starts in ^3%d^1 seconds"
+msgstr "^1A játék ^3%d^1 másodpercen belül elkezdődik!"
+
+#: qcsrc/client/hud.qc:4181
+msgid "^2Currently in ^1warmup^2 stage!"
+msgstr "^2Jelenleg ^1BEMELEGÍTÉS^7 zajlik!"
+
+#: qcsrc/client/hud.qc:4196
+#, c-format
+msgid "%sPress ^3%s%s to end warmup"
+msgstr "%s, kérlek nyomd meg a ^3%s%s gombot a bemelegítés befejezéséhez!"
+
+#: qcsrc/client/hud.qc:4198
+#, c-format
+msgid "%sPress ^3%s%s once you are ready"
+msgstr "%s, kérlek nyomd meg a ^3%s%s gombot, amint készen állsz!"
+
+#: qcsrc/client/hud.qc:4203
+msgid "^2Waiting for others to ready up to end warmup..."
+msgstr "^2Várakozás a többiekre, hogy befejezzék a bemelegítést..."
+
+#: qcsrc/client/hud.qc:4205
+msgid "^2Waiting for others to ready up..."
+msgstr "^2Várj kérlek, amíg a többiek készen állnak..."
+
+#: qcsrc/client/hud.qc:4211
+#, c-format
+msgid "^2Press ^3%s^2 to end warmup"
+msgstr "^2Nyomd meg a ^3%s^2 gombot a bemelegítés befejezéséhez!"
+
+#: qcsrc/client/hud.qc:4232
+msgid "Teamnumbers are unbalanced!"
+msgstr "A csapatok egyenlőtlenül vannak elosztva!"
+
+#: qcsrc/client/hud.qc:4237
+#, c-format
+msgid " Press ^3%s%s to adjust"
+msgstr " Nyomd meg a ^3%s%s gombot a kiegyenlítéshez!"
+
+#: qcsrc/client/hud.qc:4245
+msgid "^7Press ^3ESC ^7to show HUD options."
+msgstr "^7Nyomd meg az ^3ESC^7 gombot a HUD beállításának lehetőségeihez!"
+
+#: qcsrc/client/hud.qc:4247
+msgid "^3Doubleclick ^7a panel for panel-specific options."
+msgstr "^3Kattints duplán^7 egy panelre a panel-specifikus beállításokhoz!"
+
+#: qcsrc/client/hud.qc:4249
+msgid "^3CTRL ^7to disable collision testing, ^3SHIFT ^7and"
+msgstr ""
+"A ^3CTRL^7 gomb segítségével kikapcsolhatod az illesztést, a ^3SHIFT^7 és"
+
+#: qcsrc/client/hud.qc:4251
+msgid "^3ALT ^7+ ^3ARROW KEYS ^7for fine adjustments."
+msgstr "az ^3ALT^7 + ^3NYÍLGOMBOK^7-kal finoman mozgathatsz!"
+
+#: qcsrc/client/hud.qc:4289
+msgid " qu/s"
+msgstr "qu/s"
+
+#: qcsrc/client/hud.qc:4293
+msgid " m/s"
+msgstr "m/s"
+
+#: qcsrc/client/hud.qc:4297
+msgid " km/h"
+msgstr "km/h"
+
+#: qcsrc/client/hud.qc:4301
+msgid " mph"
+msgstr "mph"
+
+#: qcsrc/client/hud.qc:4305
+msgid " knots"
+msgstr "Csomó"
+
+#: qcsrc/client/hud.qc:4968
+msgid "Automatically fixed wrong/missing panel numbers in _hud_panelorder\n"
+msgstr "A panel számok a _hud_panelorder -ben autonatikus javításra kerültek"
+
+#: qcsrc/client/hud_config.qc:185
+#, c-format
+msgid "^2Successfully exported to %s! (Note: It's saved in data/data/)\n"
+msgstr ""
+"^2Sikeresen exportálva %s -ként! (Figyelem: az adatok a data/data/ "
+"könyvtárban találhatók meg!)\n"
+
+#: qcsrc/client/hud_config.qc:189
+#, c-format
+msgid "^1Couldn't write to %s\n"
+msgstr "^1Nem lehet írni a %s -ba/be\n"
+
+#: qcsrc/client/mapvoting.qc:28
+msgid " (1 vote)"
+msgstr "(1 szavazat)"
+
+#: qcsrc/client/mapvoting.qc:30
+#, c-format
+msgid " (%d votes)"
+msgstr "(%d szavazat)"
+
+#: qcsrc/client/mapvoting.qc:113
+msgid "Don't care"
+msgstr "Mindegy"
+
+#: qcsrc/client/mapvoting.qc:194
+msgid "Vote for a map"
+msgstr "Válassz pályát!"
+
+#: qcsrc/client/mapvoting.qc:200
+#, c-format
+msgid "%d seconds left"
+msgstr "%d másodperc maradt hátra"
+
+#: qcsrc/client/mapvoting.qc:263
+msgid ""
+"mv_mapdownload: ^3You're not supposed to use this command on your own!\n"
+msgstr "mv_mapdownload: ^3Nem kéne ezt a parancsot használnod!\n"
+
+#: qcsrc/client/mapvoting.qc:273
+msgid "^1Error:^7 Couldn't find pak index.\n"
+msgstr "^1Hiba:^7 nem találom a pak-Indexet\n"
+
+#: qcsrc/client/mapvoting.qc:282
+msgid "Requesting preview...\n"
+msgstr "Előnézet kérése...\n"
+
+#: qcsrc/client/miscfunctions.qc:100
+msgid "Trying to remove a team which is not in the teamlist!"
+msgstr "Olyan csapatot próbálsz eltávolítani, ami nincs a csapatlistában!"
+
+#: qcsrc/client/movetypes.qc:163
+#, c-format
+msgid "Can't unstick an entity (edict: %d, classname: %s, origin: %s)\n"
+msgstr ""
+"Egy objektumot nem tudok felszabadítani (edict: %d, classname: %s, origin: %"
+"s)\n"
+
+#: qcsrc/client/movetypes.qc:166
+#, c-format
+msgid "Sucessfully unstuck an entity (edict: %d, classname: %s, origin: %s)\n"
+msgstr ""
+"Objektum sikeresen felszabadítva (edict: %d, classname: %s, origin: %s)\n"
+
+#: qcsrc/client/scoreboard.qc:19
+msgid "SCO^bckills"
+msgstr "LH gyilokok"
+
+#: qcsrc/client/scoreboard.qc:20
+msgid "SCO^bctime"
+msgstr "Labdaidő"
+
+#: qcsrc/client/scoreboard.qc:21
+msgid "SCO^caps"
+msgstr "Rablások"
+
+#: qcsrc/client/scoreboard.qc:22
+msgid "SCO^deaths"
+msgstr "Halálok"
+
+#: qcsrc/client/scoreboard.qc:23
+msgid "SCO^destroyed"
+msgstr "megsemmisítve"
+
+#: qcsrc/client/scoreboard.qc:24
+msgid "SCO^drops"
+msgstr "elvesztve"
+
+#: qcsrc/client/scoreboard.qc:25
+msgid "SCO^faults"
+msgstr "Hibák"
+
+#: qcsrc/client/scoreboard.qc:26
+msgid "SCO^fckills"
+msgstr "ZH gyilokok"
+
+#: qcsrc/client/scoreboard.qc:27
+msgid "SCO^goals"
+msgstr "Gólok"
+
+#: qcsrc/client/scoreboard.qc:28
+msgid "SCO^kckills"
+msgstr "KH gyilokok"
+
+#: qcsrc/client/scoreboard.qc:29
+msgid "SCO^kdratio"
+msgstr "ÖH arány"
+
+#: qcsrc/client/scoreboard.qc:30
+msgid "SCO^k/d"
+msgstr "Ö/H"
+
+#: qcsrc/client/scoreboard.qc:31
+msgid "SCO^kd"
+msgstr "ÖH"
+
+#: qcsrc/client/scoreboard.qc:32
+msgid "SCO^kdr"
+msgstr "ÖHA"
+
+#: qcsrc/client/scoreboard.qc:33
+msgid "SCO^kills"
+msgstr "Gyilokok"
+
+#: qcsrc/client/scoreboard.qc:34
+msgid "SCO^laps"
+msgstr "Körök"
+
+#: qcsrc/client/scoreboard.qc:35
+msgid "SCO^lives"
+msgstr "Életek"
+
+#: qcsrc/client/scoreboard.qc:36
+msgid "SCO^losses"
+msgstr "elvesztve"
+
+#: qcsrc/client/scoreboard.qc:37
+msgid "SCO^name"
+msgstr "Név"
+
+#: qcsrc/client/scoreboard.qc:38
+msgid "SCO^nick"
+msgstr "Nick"
+
+#: qcsrc/client/scoreboard.qc:39
+msgid "SCO^objectives"
+msgstr "célpontok"
+
+#: qcsrc/client/scoreboard.qc:40
+msgid "SCO^pickups"
+msgstr "Zászlók"
+
+#: qcsrc/client/scoreboard.qc:41
+msgid "SCO^ping"
+msgstr "Ping"
+
+#: qcsrc/client/scoreboard.qc:42
+msgid "SCO^pl"
+msgstr "CSV"
+
+#: qcsrc/client/scoreboard.qc:43
+msgid "SCO^pushes"
+msgstr "Lökések"
+
+#: qcsrc/client/scoreboard.qc:44
+msgid "SCO^rank"
+msgstr "Rang"
+
+#: qcsrc/client/scoreboard.qc:45
+msgid "SCO^returns"
+msgstr "Visszaszerzések"
+
+#: qcsrc/client/scoreboard.qc:46
+msgid "SCO^revivals"
+msgstr "Újraéledések"
+
+#: qcsrc/client/scoreboard.qc:47
+msgid "SCO^score"
+msgstr "Pontok"
+
+#: qcsrc/client/scoreboard.qc:48
+msgid "SCO^suicides"
+msgstr "Öngyilokok"
+
+#: qcsrc/client/scoreboard.qc:49
+msgid "SCO^takes"
+msgstr "Átvétel"
+
+#: qcsrc/client/scoreboard.qc:50
+msgid "SCO^ticks"
+msgstr "Tikk"
+
+#: qcsrc/client/scoreboard.qc:239
+msgid ""
+"You can modify the scoreboard using the ^2scoreboard_columns_set command.\n"
+msgstr ""
+"A ponttábla méretét a ^2scoreboard_columns_set paranccsal tudod "
+"megváltoztatni.\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 ^7field1 field2 ...\n"
+msgstr "^2scoreboard_columns_set ^7field1 field2 ...\n"
+
+#: qcsrc/client/scoreboard.qc:244
+msgid "The following field names are recognized (case insensitive):\n"
+msgstr ""
+"Az alábbi mező azonosítókat ismertem fel (nagybetű/kisbetű nem számít):\n"
+
+#: qcsrc/client/scoreboard.qc:245
+msgid ""
+"You can use a ^3|^7 to start the right-aligned fields.\n"
+"\n"
+msgstr "A ^3|^7 karakterrel jobbra rendezett mezőket tudsz létrehozni.\n"
+
+#: qcsrc/client/scoreboard.qc:247
+msgid "^3name^7 or ^3nick^7             Name of a player\n"
+msgstr "^3név ^7 vagy ^3nick^7           A játékos neve\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 "^3csv^7                       Csomagvesztés\n"
+
+#: qcsrc/client/scoreboard.qc:250
+msgid "^3kills^7                    Number of kills\n"
+msgstr "^3megölt^7                    Megöltek száma\n"
+
+#: qcsrc/client/scoreboard.qc:251
+msgid "^3deaths^7                   Number of deaths\n"
+msgstr "^3halálok^7                   Halálok száma\n"
+
+#: qcsrc/client/scoreboard.qc:252
+msgid "^3suicides^7                 Number of suicides\n"
+msgstr "^3öngyilkosságok^7                 Öngyilkosságok száma\n"
+
+#: qcsrc/client/scoreboard.qc:253
+msgid "^3frags^7                    kills - suicides\n"
+msgstr "^3gyilokok^7                    Ölések mínusz öngyilkosságok\n"
+
+#: qcsrc/client/scoreboard.qc:254
+msgid "^3kd^7                       The kill-death ratio\n"
+msgstr "^3GYH^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 ""
+"^3rablások^7                     Hányszor rabolta el a zászlót (Zászlórablás) "
+"vagy gyűjtötte össze a kulcsokat (Kulcsvadászat)\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 ""
+"^3megszerzések^7                  Hányszor szerezte meg a Zászlót/Kulcsot\n"
+
+#: qcsrc/client/scoreboard.qc:257
+msgid "^3fckills^7                  Number of flag carrier kills\n"
+msgstr "^3ZHgyilokok^7                  Megölt zászlóhordozók száma\n"
+
+#: qcsrc/client/scoreboard.qc:258
+msgid "^3returns^7                  Number of flag returns\n"
+msgstr "^3visszaszerzések^7                  Zászló visszaszerzések száma\n"
+
+#: qcsrc/client/scoreboard.qc:259
+msgid "^3drops^7                    Number of flag drops\n"
+msgstr "^3elvesztések^7                    Hányszor dobta el a zászlót\n"
+
+#: qcsrc/client/scoreboard.qc:260
+msgid "^3lives^7                    Number of lives (LMS)\n"
+msgstr "^3életek^7                    Életek száma (Csak egy maradhat)\n"
+
+#: qcsrc/client/scoreboard.qc:261
+msgid "^3rank^7                     Player rank\n"
+msgstr "^3rank^7                     Játékos rangja\n"
+
+#: qcsrc/client/scoreboard.qc:262
+msgid "^3pushes^7                   Number of players pushed into void\n"
+msgstr "^3lökések^7                   A Nagy Semmibe lökött áldozatok száma\n"
+
+#: qcsrc/client/scoreboard.qc:263
+msgid ""
+"^3destroyed^7                Number of keys destroyed by pushing them into "
+"void\n"
+msgstr ""
+"^3elpusztítva^7                A Nagy Semmiben elpusztított kulcsok száma\n"
+
+#: qcsrc/client/scoreboard.qc:264
+msgid "^3kckills^7                  Number of keys carrier kills\n"
+msgstr "^3KHgyilokok^7                  Megölt kulcshordozók száma\n"
+
+#: qcsrc/client/scoreboard.qc:265
+msgid "^3losses^7                   Number of times a key was lost\n"
+msgstr "^3elvesztve^7                   Elvesztett kulcsok száma\n"
+
+#: qcsrc/client/scoreboard.qc:266
+msgid "^3laps^7                     Number of laps finished (race/cts)\n"
+msgstr ""
+"^3körök^7                     Befejezett körök száma "
+"(Verseny/Ügyességi v.)\n"
+
+#: qcsrc/client/scoreboard.qc:267
+msgid "^3time^7                     Total time raced (race/cts)\n"
+msgstr ""
+"^3idő^7                     Összes versenyzéssel töltött idő "
+"(Verseny/Ügyességi v.)\n"
+
+#: qcsrc/client/scoreboard.qc:268
+msgid "^3fastest^7                  Time of fastest lap (race/cts)\n"
+msgstr ""
+"^3leggyorsabb^7                  Leggyorsabb kör ideje "
+"(Verseny/Ügyességi v.)\n"
+
+#: qcsrc/client/scoreboard.qc:269
+msgid "^3ticks^7                    Number of ticks (DOM)\n"
+msgstr "^3ketyegés^7                    Ketyegések száma (Uralom)\n"
+
+#: qcsrc/client/scoreboard.qc:270
+msgid "^3takes^7                    Number of domination points taken (DOM)\n"
+msgstr "^3foglalás^7                    Elfoglalt Uralompontok (Uralom)\n"
+
+#: qcsrc/client/scoreboard.qc:271
+msgid "^3bckills^7                  Number of ball carrier kills\n"
+msgstr "^3LHgyilokok^7                  Megölt labdahordozók száma\n"
+
+#: qcsrc/client/scoreboard.qc:272
+msgid ""
+"^3bctime^7                   Total amount of time holding the ball in "
+"Keepaway\n"
+msgstr ""
+"^3LHidő^7                   Labda birtoklásának összesített ideje (Önzőség)\n"
+
+#: qcsrc/client/scoreboard.qc:273
+msgid ""
+"^3score^7                    Total score\n"
+"\n"
+msgstr ""
+"^3pont^7                    Teljes pontszám\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 ""
+"Egy mező elé elé tégy + vagy - jelet, majd vesszőkkel elválasztva\n"
+"azon játék típusok listáját bezárva egy / jellel, amelyekben szeretnéd\n"
+"hogy megjelenjen vagy ne jelenjen meg az adott mező."
+
+#: 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 ""
+"A 'teams' és 'noteams' speciális kifejezésekkel\n"
+"az összes csapatjátékos módra (teams) és egyéni (noteams)\n"
+"módra utalhatsz. "
+
+#: qcsrc/client/scoreboard.qc:283
+msgid "Example: scoreboard_columns_set name ping pl | +ctf/field3 -dm/field4\n"
+msgstr ""
+"Például: scoreboard_columns_set name ping pl | +ctf/field3 -dm/field4\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 ""
+"balra rendezve kiírja a nevet, a pinget, a csv-t\n"
+"a jobb oldalra rendezett egyenes vonal jobb oldalára."
+
+#: 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 ""
+"'field3' csak Zászlórablás játékmódban látszik,\n"
+"'field4' pedig Haláljátszma kivételével az összes többiben.\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 "Pótoltam a '%s' hiányzó mezőt\n"
+
+#: qcsrc/client/scoreboard.qc:515 qcsrc/client/scoreboard.qc:522
+msgid "N/A"
+msgstr "-"
+
+#: qcsrc/client/scoreboard.qc:950
+#, c-format
+msgid "Accuracy stats (average %d%%)"
+msgstr "Tüzelési pontosság (Átlag: %d%%)"
+
+#: qcsrc/client/scoreboard.qc:1015
+#, c-format
+msgid "%d%%"
+msgstr "%d%%"
+
+#: qcsrc/client/scoreboard.qc:1085
+msgid "Map stats:"
+msgstr "Pálya statisztikák:"
+
+#: qcsrc/client/scoreboard.qc:1101
+msgid "Secrets found:"
+msgstr "Feldezett titkok:"
+
+#: qcsrc/client/scoreboard.qc:1128
+msgid "Rankings"
+msgstr "Helyezések"
+
+#: qcsrc/client/scoreboard.qc:1223
+msgid "Scoreboard"
+msgstr "Ponttábla"
+
+#: qcsrc/client/scoreboard.qc:1268
+#, c-format
+msgid "Speed award: %d ^7(%s^7)"
+msgstr "Gyorsasági díj: %d ^7(%s^7)"
+
+#: qcsrc/client/scoreboard.qc:1272
+#, c-format
+msgid "All-time fastest: %d ^7(%s^7)"
+msgstr "Rekord: %d ^7(%s^7)"
+
+#: qcsrc/client/scoreboard.qc:1305 qcsrc/client/teamplay.qc:63
+msgid "Spectators"
+msgstr "Nézők"
+
+#: qcsrc/client/scoreboard.qc:1311
+#, c-format
+msgid "playing on ^2%s^7"
+msgstr "A játék a ^2%s^7 pályán zajlik"
+
+#: qcsrc/client/scoreboard.qc:1318 qcsrc/client/scoreboard.qc:1323
+#, c-format
+msgid " for up to ^1%1.0f minutes^7"
+msgstr " még ^1%.1f percig^7"
+
+#: qcsrc/client/scoreboard.qc:1327 qcsrc/client/scoreboard.qc:1346
+msgid " or"
+msgstr " vagy "
+
+#: qcsrc/client/scoreboard.qc:1330 qcsrc/client/scoreboard.qc:1337
+#, c-format
+msgid " until ^3%s %s^7"
+msgstr "^3%s %s^7"
+
+#: qcsrc/client/scoreboard.qc:1331 qcsrc/client/scoreboard.qc:1338
+#: qcsrc/client/scoreboard.qc:1350 qcsrc/client/scoreboard.qc:1357
+msgid "SCO^points"
+msgstr "pontszámig"
+
+#: qcsrc/client/scoreboard.qc:1332 qcsrc/client/scoreboard.qc:1339
+#: qcsrc/client/scoreboard.qc:1351 qcsrc/client/scoreboard.qc:1358
+msgid "SCO^is beaten"
+msgstr " időt valaki meg nem dönti"
+
+#: qcsrc/client/scoreboard.qc:1349 qcsrc/client/scoreboard.qc:1356
+#, c-format
+msgid " until a lead of ^3%s %s^7"
+msgstr " amíg valaki ^3%s %s^7 -ig nem vezeti a mezőnyt."
+
+#: qcsrc/client/target_music.qc:93 qcsrc/client/target_music.qc:181
+#, c-format
+msgid "Cannot initialize sound %s\n"
+msgstr "Nem tudtam a %s hangot inicializálni\n"
+
+#: qcsrc/client/teamplay.qc:64
+msgid "Red Team"
+msgstr "Vörös Csapat"
+
+#: qcsrc/client/teamplay.qc:65
+msgid "Blue Team"
+msgstr "Kék Csapat"
+
+#: qcsrc/client/teamplay.qc:66
+msgid "Yellow Team"
+msgstr "Sárga Csapat"
+
+#: qcsrc/client/teamplay.qc:67
+msgid "Pink Team"
+msgstr "Rózsaszín Csapat"
+
+#: qcsrc/client/tturrets.qc:285 qcsrc/client/waypointsprites.qc:590
+msgid "Spam"
+msgstr "Spam"
+
+#: qcsrc/client/tturrets.qc:294
+#, c-format
+msgid "%s under attack!"
+msgstr "%s támadás alatt!"
+
+#: qcsrc/client/waypointsprites.qc:254
+msgid "Push"
+msgstr "Nyomd meg!"
+
+#: qcsrc/client/waypointsprites.qc:255
+msgid "Destroy"
+msgstr "Pusztítsd el!"
+
+#: qcsrc/client/waypointsprites.qc:256
+msgid "Defend"
+msgstr "Védd meg!"
+
+#: qcsrc/client/waypointsprites.qc:257
+msgid "Blue base"
+msgstr "Kék Bázis"
+
+#: qcsrc/client/waypointsprites.qc:258
+msgid "DANGER"
+msgstr "VESZÉLY!"
+
+#: qcsrc/client/waypointsprites.qc:259
+msgid "Flag carrier"
+msgstr "Zászlóhordozó"
+
+#: qcsrc/client/waypointsprites.qc:260
+msgid "Dropped flag"
+msgstr "Elhagyott zászló"
+
+#: qcsrc/client/waypointsprites.qc:261
+msgid "Help me!"
+msgstr "Segítség!"
+
+#: qcsrc/client/waypointsprites.qc:262
+msgid "Here"
+msgstr "Itt"
+
+#: qcsrc/client/waypointsprites.qc:263
+msgid "Dropped key"
+msgstr "Elhagyott kulcs"
+
+#: qcsrc/client/waypointsprites.qc:264 qcsrc/client/waypointsprites.qc:266
+#: qcsrc/client/waypointsprites.qc:267 qcsrc/client/waypointsprites.qc:268
+#: qcsrc/client/waypointsprites.qc:269
+msgid "Key carrier"
+msgstr "Kulcshordozó"
+
+#: qcsrc/client/waypointsprites.qc:265
+msgid "Run here"
+msgstr "Rohanj ide!"
+
+#: qcsrc/client/waypointsprites.qc:270
+msgid "Red base"
+msgstr "Vörös Bázis"
+
+#: qcsrc/client/waypointsprites.qc:271
+msgid "Waypoint"
+msgstr "Irányjelző"
+
+#: qcsrc/client/waypointsprites.qc:272 qcsrc/client/waypointsprites.qc:273
+#: qcsrc/client/waypointsprites.qc:274
+msgid "Generator"
+msgstr "Generátor"
+
+#: qcsrc/client/waypointsprites.qc:275 qcsrc/client/waypointsprites.qc:276
+#: qcsrc/client/waypointsprites.qc:277 qcsrc/client/waypointsprites.qc:278
+#: qcsrc/client/waypointsprites.qc:279 qcsrc/client/waypointsprites.qc:280
+#: qcsrc/client/waypointsprites.qc:281 qcsrc/client/waypointsprites.qc:282
+#: qcsrc/client/waypointsprites.qc:306 qcsrc/client/waypointsprites.qc:307
+#: qcsrc/client/waypointsprites.qc:308 qcsrc/client/waypointsprites.qc:309
+#: qcsrc/client/waypointsprites.qc:310
+msgid "Control point"
+msgstr "Uralompont"
+
+#: qcsrc/client/waypointsprites.qc:283
+msgid "Checkpoint"
+msgstr "Ellenőrző pont"
+
+#: qcsrc/client/waypointsprites.qc:284 qcsrc/client/waypointsprites.qc:286
+msgid "Finish"
+msgstr "Cél"
+
+#: qcsrc/client/waypointsprites.qc:285 qcsrc/client/waypointsprites.qc:286
+msgid "Start"
+msgstr "Start"
+
+#: qcsrc/client/waypointsprites.qc:287 qcsrc/client/waypointsprites.qc:288
+msgid "Ball"
+msgstr "Labda"
+
+#: qcsrc/client/waypointsprites.qc:289
+msgid "Ball carrier"
+msgstr "Labdahordozó"
+
+#: qcsrc/client/waypointsprites.qc:290 qcsrc/server/w_laser.qc:2
+msgid "Laser"
+msgstr "Lézer"
+
+#: qcsrc/client/waypointsprites.qc:291 qcsrc/server/w_shotgun.qc:2
+msgid "Shotgun"
+msgstr "Puska"
+
+#: qcsrc/client/waypointsprites.qc:292 qcsrc/server/w_uzi.qc:2
+msgid "Machine Gun"
+msgstr "Gépfegyver"
+
+#: qcsrc/client/waypointsprites.qc:293 qcsrc/server/w_grenadelauncher.qc:2
+msgid "Mortar"
+msgstr "Gránátvető"
+
+#: qcsrc/client/waypointsprites.qc:294 qcsrc/server/w_electro.qc:2
+msgid "Electro"
+msgstr "Electro"
+
+#: qcsrc/client/waypointsprites.qc:295 qcsrc/server/w_crylink.qc:2
+msgid "Crylink"
+msgstr "Crylink"
+
+#: qcsrc/client/waypointsprites.qc:296 qcsrc/server/w_nex.qc:2
+msgid "Nex"
+msgstr "Nex"
+
+#: qcsrc/client/waypointsprites.qc:297 qcsrc/server/w_hagar.qc:2
+msgid "Hagar"
+msgstr "Hagar"
+
+#: qcsrc/client/waypointsprites.qc:298 qcsrc/server/w_rocketlauncher.qc:2
+msgid "Rocket Launcher"
+msgstr "Rakétavető"
+
+#: qcsrc/client/waypointsprites.qc:299 qcsrc/server/w_porto.qc:2
+msgid "Port-O-Launch"
+msgstr "Port-O-Launch"
+
+#: qcsrc/client/waypointsprites.qc:300
+msgid "Minstanex"
+msgstr "MinstaNex"
+
+#: qcsrc/client/waypointsprites.qc:301
+msgid "Hook"
+msgstr "Kampó"
+
+#: qcsrc/client/waypointsprites.qc:302 qcsrc/server/w_fireball.qc:2
+msgid "Fireball"
+msgstr "Tűzgömb"
+
+#: qcsrc/client/waypointsprites.qc:303
+msgid "HLAC"
+msgstr "NLRÁ"
+
+#: qcsrc/client/waypointsprites.qc:304 qcsrc/server/w_rifle.qc:2
+msgid "Rifle"
+msgstr "Vadászpuska"
+
+#: qcsrc/client/waypointsprites.qc:305 qcsrc/server/w_minelayer.qc:2
+msgid "Mine Layer"
+msgstr "Aknavető"
+
+#: qcsrc/client/waypointsprites.qc:311
+msgid "Invisibility"
+msgstr "Láthatatlanság"
+
+#: qcsrc/client/waypointsprites.qc:312
+msgid "Extra life"
+msgstr "Extra élet"
+
+#: qcsrc/client/waypointsprites.qc:313
+msgid "Speed"
+msgstr "Sebesség"
+
+#: qcsrc/client/waypointsprites.qc:314
+msgid "Strength"
+msgstr "Sebzésnövelő"
+
+#: qcsrc/client/waypointsprites.qc:315
+msgid "Shield"
+msgstr "Védelmező"
+
+#: qcsrc/client/waypointsprites.qc:316
+msgid "Fuel regen"
+msgstr "Üzemanyag újratöltés"
+
+#: qcsrc/client/waypointsprites.qc:317
+msgid "Jet Pack"
+msgstr "Hátirakéta"
+
+#: qcsrc/client/waypointsprites.qc:318
+msgid "Frozen!"
+msgstr "Megfagyva!"
+
+#: qcsrc/client/waypointsprites.qc:319
+msgid "Tagged"
+msgstr "Megjelölt"
+
+#: qcsrc/client/waypointsprites.qc:320
+msgid "Vehicle"
+msgstr "Jármű"
+
+#: qcsrc/client/waypointsprites.qc:594
+#, c-format
+msgid "%s needing help!"
+msgstr "%s segítséget kér!"
+
+#: qcsrc/common/mapinfo.qc:1097
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: qcsrc/server/w_crylink.qc:666
+#, c-format
+msgid "%s succeeded at self-destructing themself with the Crylink"
+msgstr "%s sikeresen kinyírta magát a Crylinkkal"
+
+#: qcsrc/server/w_crylink.qc:671
+#, c-format
+msgid "%s could not hide from %s's Crylink"
+msgstr "%s nem tudott elhajolni %s Crylinkja elől"
+
+#: qcsrc/server/w_crylink.qc:673
+#, c-format
+msgid "%s was too close to %s's Crylink"
+msgstr "%s túl közel merészkedett %ss Crylinkjához"
+
+#: qcsrc/server/w_crylink.qc:675
+#, c-format
+msgid "%s took a close look at %s's Crylink"
+msgstr "%s közelebbről is megismerkedett %s Crylinkjával"
+
+#: qcsrc/server/w_electro.qc:581
+#, c-format
+msgid "%s could not remember where they put their electro plasma"
+msgstr "%s most már tudja, mire való a plazma"
+
+#: qcsrc/server/w_electro.qc:583
+#, c-format
+msgid "%s played with electro plasma"
+msgstr "%s szerint a plazma nem veszélyes. Tévedett."
+
+#: qcsrc/server/w_electro.qc:590
+#, c-format
+msgid "%s just noticed %s's electro plasma"
+msgstr "%s csak most figyelt fel %s plazmagömbjére"
+
+#: qcsrc/server/w_electro.qc:592
+#, c-format
+msgid "%s got in touch with %s's electro plasma"
+msgstr "%s lefejelte %s plazmagömbjét"
+
+#: qcsrc/server/w_electro.qc:597
+#, c-format
+msgid "%s felt the electrifying air of %s's electro combo"
+msgstr "%s haja is égnek állt %s Elektro-kombójától"
+
+#: qcsrc/server/w_electro.qc:599
+#, c-format
+msgid "%s got too close to %s's blue electro bolt"
+msgstr "%s túl közel került %s kék sugarához"
+
+#: qcsrc/server/w_electro.qc:601
+#, c-format
+msgid "%s was blasted by %s's blue electro bolt"
+msgstr "%s atomjaira hullott %s kék sugarától"
+
+#: qcsrc/server/w_fireball.qc:421
+#, c-format
+msgid "%s forgot about some firemine"
+msgstr "%s benézett pár tűzlabdacsot"
+
+#: qcsrc/server/w_fireball.qc:423 qcsrc/server/w_hlac.qc:240
+#, c-format
+msgid "%s should have used a smaller gun"
+msgstr "%s játszott volna inkább vízipisztollyal"
+
+#: qcsrc/server/w_fireball.qc:430
+#, c-format
+msgid "%s tried to catch %s's firemine"
+msgstr "%s megpróbálta elkapni %s tűzlabdacsát"
+
+#: qcsrc/server/w_fireball.qc:432
+#, c-format
+msgid "%s fatefully ignored %s's firemine"
+msgstr "%s benézte %s egyik tűzlabdacsát"
+
+#: qcsrc/server/w_fireball.qc:439
+#, c-format
+msgid "%s could not hide from %s's fireball"
+msgstr "%s nem tudott elmenekülni %s Tűzgömbje elől"
+
+#: qcsrc/server/w_fireball.qc:441
+#, c-format
+msgid "%s saw the pretty lights of %s's fireball"
+msgstr "%s megcsodálhatta %s színpompás Tűzgömbjét"
+
+#: qcsrc/server/w_fireball.qc:444
+#, c-format
+msgid "%s got too close to %s's fireball"
+msgstr "%s szénné égett %s Tűzlabdájától"
+
+#: qcsrc/server/w_fireball.qc:446
+#, c-format
+msgid "%s tasted %s's fireball"
+msgstr "%s benyelte %s Tűzlabdáját"
+
+#: qcsrc/server/w_grenadelauncher.qc:388
+#, c-format
+msgid "%s didn't see their own grenade"
+msgstr "%s lefejelte a saját gránátját"
+
+#: qcsrc/server/w_grenadelauncher.qc:390
+#, c-format
+msgid "%s blew themself up with their grenadelauncher"
+msgstr "%s felrobbantotta magát a saját Gránátvetőjével"
+
+#: qcsrc/server/w_grenadelauncher.qc:396
+#, c-format
+msgid "%s didn't see %s's grenade"
+msgstr "%s nem vette észre %s gránátját"
+
+#: qcsrc/server/w_grenadelauncher.qc:398
+#, c-format
+msgid "%s almost dodged %s's grenade"
+msgstr "%s lefejelte %s gránátját"
+
+#: qcsrc/server/w_grenadelauncher.qc:400
+#, c-format
+msgid "%s ate %s's grenade"
+msgstr "%s bekapta %s gránátját"
+
+#: qcsrc/server/w_hagar.qc:462
+#, c-format
+msgid "%s played with tiny hagar rockets"
+msgstr "%s játszott volna inkább római rakétákkal"
+
+#: qcsrc/server/w_hagar.qc:466
+#, c-format
+msgid "%s was pummeled with a burst of hagar rockets by %s"
+msgstr "%2$s szétszaggatta %1$s-t a Hagarjával"
+
+#: qcsrc/server/w_hagar.qc:468
+#, c-format
+msgid "%s was pummeled with hagar rockets by %s"
+msgstr "%2$s ledarálta %1$s-t a Hagarjával"
+
+#: qcsrc/server/w_hlac.qc:2
+msgid "Heavy Laser Assault Cannon"
+msgstr "Nehéz Lézer Rohamágyú"
+
+#: qcsrc/server/w_hlac.qc:242
+#, c-format
+msgid "%s was cut down with a HLAC by %s"
+msgstr "%2$s kettévágta %1$s-t a NLRÁ-val"
+
+#: qcsrc/server/w_hook.qc:2
+msgid "Grappling Hook"
+msgstr "Vonóhorog"
+
+#: qcsrc/server/w_hook.qc:286 qcsrc/server/w_porto.qc:296
+#, c-format
+msgid "%s did the impossible"
+msgstr "%s teljesítette a lehetetlent"
+
+#: qcsrc/server/w_hook.qc:288
+#, c-format
+msgid "%s was caught in %s's hook gravity bomb"
+msgstr "%2$s elkapta %1$s-t a Gravitációs bombájával"
+
+#: qcsrc/server/w_laser.qc:312
+#, c-format
+msgid "%s lasered themself to hell"
+msgstr "%s egészen a mennyekig lézerezte magát"
+
+#: qcsrc/server/w_laser.qc:316
+#, c-format
+msgid "%s was cut in half by %s's gauntlet"
+msgstr "%2$s kettészabta %1$s-t a Páncélöklével"
+
+#: qcsrc/server/w_laser.qc:318
+#, c-format
+msgid "%s was lasered to death by %s"
+msgstr "%2$s halálba lézerezte %1$s-t"
+
+#: qcsrc/server/w_minelayer.qc:533
+#, c-format
+msgid "%s blew themself up with their minelayer"
+msgstr "%s rálépett a saját aknájára"
+
+#: qcsrc/server/w_minelayer.qc:535
+#, c-format
+msgid "%s forgot about their mine"
+msgstr "%s egy aknáról mégiscsak megfeledkezett"
+
+#: qcsrc/server/w_minelayer.qc:539
+#, c-format
+msgid "%s got too close to %s's mine"
+msgstr "%s túl közel került %s aknájához"
+
+#: qcsrc/server/w_minelayer.qc:541
+#, c-format
+msgid "%s almost dodged %s's mine"
+msgstr "%s nem tudott elhajolni %s aknája elől"
+
+#: qcsrc/server/w_minelayer.qc:543
+#, c-format
+msgid "%s stepped on %s's mine"
+msgstr "%s rátaposott %s aknájára"
+
+#: qcsrc/server/w_minstanex.qc:2
+msgid "MinstaNex"
+msgstr "MinstaNex"
+
+#: qcsrc/server/w_minstanex.qc:293 qcsrc/server/w_nex.qc:253
+#: qcsrc/server/w_rifle.qc:232 qcsrc/server/w_shotgun.qc:271
+#: qcsrc/server/w_uzi.qc:318
+#, c-format
+msgid "%s is now thinking with portals"
+msgstr "%s már Portálokkal mereng"
+
+#: qcsrc/server/w_minstanex.qc:295
+#, c-format
+msgid "%s has been vaporized by %s's minstanex"
+msgstr "%s^1 elpárolgott %s MinstaNexétől"
+
+#: qcsrc/server/w_nex.qc:255
+#, c-format
+msgid "%s has been vaporized by %s's nex"
+msgstr "%s^1 elpárolgott %s Nex sugarától"
+
+#: qcsrc/server/w_porto.qc:298
+#, c-format
+msgid "%s felt %s doing the impossible to him"
+msgstr "%2$s bebizonyította %1$s számára a lehetetlent"
+
+#: qcsrc/server/w_rifle.qc:239
+#, c-format
+msgid "%s failed to hide from %s's rifle bullet hail"
+msgstr "%s nem tudott fedezékbe húzódni %s golyózápora elől"
+
+#: qcsrc/server/w_rifle.qc:241
+#, c-format
+msgid "%s died in %s's rifle bullet hail"
+msgstr "%2$s levadászta %1$s-t"
+
+#: qcsrc/server/w_rifle.qc:248
+#, c-format
+msgid "%s failed to hide from %s's rifle"
+msgstr "%s csinosan mutat majd %s trófea gyűjteményében"
+
+#: qcsrc/server/w_rifle.qc:253
+#, c-format
+msgid "%s got shot in the head with a rifle by %s"
+msgstr "%2$s fejbelőtte %1$s-t"
+
+#: qcsrc/server/w_rifle.qc:255
+#, c-format
+msgid "%s was sniped with a rifle by %s"
+msgstr "%s lefejelte %s golyóját"
+
+#: qcsrc/server/w_rocketlauncher.qc:507
+#, c-format
+msgid "%s blew themself up with their rocketlauncher"
+msgstr "%s játszott volna inkább petárdákkal"
+
+#: qcsrc/server/w_rocketlauncher.qc:511
+#, c-format
+msgid "%s got too close to %s's rocket"
+msgstr "%s túl közel került %s rakétájához"
+
+#: qcsrc/server/w_rocketlauncher.qc:513
+#, c-format
+msgid "%s almost dodged %s's rocket"
+msgstr "%s nem tudott elugrani %s rakétája elől"
+
+#: qcsrc/server/w_rocketlauncher.qc:515
+#, c-format
+msgid "%s ate %s's rocket"
+msgstr "%s beszopta %s rakétáját"
+
+#: qcsrc/server/w_seeker.qc:2
+msgid "T.A.G. Seeker"
+msgstr "T.A.G. Seeker"
+
+#: qcsrc/server/w_seeker.qc:661
+#, c-format
+msgid "%s played with tiny seeker rockets"
+msgstr "%s rakétái saját maga ellen fordultak"
+
+#: qcsrc/server/w_seeker.qc:665
+#, c-format
+msgid "%s was tagged with a seeker by %s"
+msgstr "%2$s rakétái levadászták %1$s-t"
+
+#: qcsrc/server/w_seeker.qc:667
+#, c-format
+msgid "%s was pummeled with seeker rockets by %s"
+msgstr "%s-t darabokra tépték %s kis célkövető rakétái"
+
+#: qcsrc/server/w_shotgun.qc:275
+#, c-format
+msgid "%2$s slapped %1$s around a bit with a large shotgun"
+msgstr "%2$s bucira verte %1$s-t a puskájával"
+
+#: qcsrc/server/w_shotgun.qc:277
+#, c-format
+msgid "%s was gunned down with a shotgun by %s"
+msgstr "%2$s megkínálta %1$s-t egy kis söréttel"
+
+#: qcsrc/server/w_tuba.qc:2
+#, c-format
+msgid "@!#%'n Tuba"
+msgstr "ki@!#%tt Tuba"
+
+#: qcsrc/server/w_tuba.qc:444
+#, c-format
+msgid "%s hurt his own ears with the @!#%%'n Tuba"
+msgstr "%s saját dobhártyája is megrepedt a  ki@!#%%tt Tuba hangjától"
+
+#: qcsrc/server/w_tuba.qc:447
+#, c-format
+msgid "%s hurt his own ears with the @!#%%'n Accordeon"
+msgstr "%s saját dobhártyája is megrepedt a ki@!#%%tt Akkordeon hangjától"
+
+#: qcsrc/server/w_tuba.qc:465
+#, c-format
+msgid "%s died of %s's great playing on the @!#%%'n Tuba"
+msgstr "%s agyvérzést kapott %s frenetikus ki@!#%%tt Tuba muzsikájától"
+
+#: qcsrc/server/w_tuba.qc:468
+#, c-format
+msgid "%s died of %s's great playing on the @!#%%'n Accordeon"
+msgstr "%s agyvérzést kapott %s frenetikus ki@!#%%tt Akkordeon muzsikájától"
+
+#: qcsrc/server/w_uzi.qc:322
+#, c-format
+msgid "%s was sniped by %s's machine gun"
+msgstr "%2$s lekapta %s-t a gépfegyverével"
+
+#: qcsrc/server/w_uzi.qc:324
+#, c-format
+msgid "%s was riddled full of holes by %s's machine gun"
+msgstr "%2$s szitává lyuggatta %s-t a gépfegyverével"
+
+#~ msgid "%s sniped themself somehow"
+#~ msgstr "%s hat so scharf geschossen, dass er sich selbst getroffen hat"
+
+#~ msgid "%s shot themself automatically"
+#~ msgstr "%s hat sich vollautomatisch selbst erschossen"
+
+#~ msgid "%s exploded"
+#~ msgstr "%s ist explodiert"
+
+#~ msgid "%s hoped %s's missiles wouldn't bounce"
+#~ msgstr "%s hat gehofft, dass %ss Raketen nicht von Wänden abprallen"
+
+#~ msgid "%s detonated"
+#~ msgstr "%s verfing sich in der eigenen Detonation"
+
+#~ msgid "%s tried out his own grenade"
+#~ msgstr "%s wollte wissen, ob seine Granate funktioniert"
+
+#~ msgid "Awaiting orders..."
+#~ msgstr "Warten auf Auftrag..."
+
+#~ msgid "You're commander!"
+#~ msgstr "Sie sind Befehlshaber!"
+
+#~ msgid "3) Resign from command."
+#~ msgstr "3) Befehlsgewalt abgeben."
+
+#~ msgid " 2) Defend"
+#~ msgstr " 2) Verteidigen"
+
+#~ msgid " 1) Attack"
+#~ msgstr " 1) Angreifen"
+
+#~ msgid "Issue orders:"
+#~ msgstr "Auftrag geben:"
+
+#~ msgid "----- Command Menu -----"
+#~ msgstr "---- Befehlsmenü -----"
+
+#~ msgid "Couldn't find player %d\n"
+#~ msgstr "Kann Spieler %d nicht finden\n"
+
+#~ msgid "ESC) Exit Menu"
+#~ msgstr "ESC) Menü verlassen"
+
+#~ msgid "2) ^3next page"
+#~ msgstr "2) ^3nächste Seite"
+
+#~ msgid "1) ^3previous page"
+#~ msgstr "1) ^3vorherige Seite"
+
+#~ msgid "Order: %s"
+#~ msgstr "Auftrag: %s"
+
+#~ msgid "----- Order Menu -----"
+#~ msgstr "----- Auftragsmenü -----"
index 5ef2982eb9169fbe2c4e8572e580324a29300ed1..42d7f0e48a1cb1207346dd41681330a690828e75 100644 (file)
@@ -6,10 +6,10 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: 0.1preview\n"
+"Project-Id-Version: 0.6\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-09-02 07:51+0200\n"
-"PO-Revision-Date: 2011-09-04 01:40+0100\n"
+"POT-Creation-Date: 2012-01-26 12:24+0100\n"
+"PO-Revision-Date: 2011-02-26 20:40+0100\n"
 "Last-Translator: Antonio 'terencehill' Piu <piuntn@gmail.com>\n"
 "Language-Team: Antonio 'terencehill' Piu <piuntn@gmail.com>\n"
 "Language: it\n"
@@ -18,11 +18,11 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "X-Poedit-Language: Italian\n"
 
-#: qcsrc/client/Main.qc:30
+#: qcsrc/client/Main.qc:8
 msgid "ERROR - MENU IS VISIBLE BUT NO MENU WAS DEFINED!"
 msgstr "ERRORE - IL MENU E' VISIBILE MA NESSUN MENU E' STATO DEFINITO!"
 
-#: qcsrc/client/Main.qc:56
+#: qcsrc/client/Main.qc:83
 msgid ""
 "^3Your engine build is outdated\n"
 "^3This Server uses a newer QC VM. Please update!\n"
@@ -30,52 +30,39 @@ msgstr ""
 "^3La tua versione del motore logico è vecchia\n"
 "^3Questo server usa un nuovo QC VM. Per favore aggiornalo!\n"
 
-#: qcsrc/client/Main.qc:66
+#: qcsrc/client/Main.qc:93
 #, c-format
 msgid "^4CSQC Build information: ^1%s\n"
 msgstr "^4Informazioni sulla build CSQC: ^1%s\n"
 
-#: qcsrc/client/Main.qc:237 qcsrc/client/Main.qc:253
+#: qcsrc/client/Main.qc:258 qcsrc/client/Main.qc:274
 #, c-format
 msgid "trying to switch to unsupported team %d\n"
 msgstr "tentando di passare al team non supportato %d\n"
 
-#: qcsrc/client/Main.qc:369 qcsrc/client/scoreboard.qc:241
-msgid "Usage:\n"
-msgstr "Uso:\n"
-
-#: qcsrc/client/Main.qc:370
-msgid "hud_save configname   (saves to hud_skinname_configname.cfg)\n"
-msgstr "hud_save configname   (salva in hud_skinname_configname.cfg)\n"
-
-#: qcsrc/client/Main.qc:494
-msgid "Usage: cl_cmd COMMAND..., where possible commands are:\n"
-msgstr "Uso: cl_cmd COMANDO..., dove i possibili comandi sono:\n"
-
-#: qcsrc/client/Main.qc:495
-msgid "  settemp cvar value\n"
-msgstr "  settemp cvar value\n"
-
-#: qcsrc/client/Main.qc:496
-msgid "  scoreboard_columns_set ...\n"
-msgstr "  scoreboard_columns_set ...\n"
-
-#: qcsrc/client/Main.qc:497
-msgid "  scoreboard_columns_help\n"
-msgstr "  scoreboard_columns_help\n"
-
-#: qcsrc/client/Main.qc:726
+#: qcsrc/client/Main.qc:466
 #, c-format
 msgid "A CSQC entity changed its owner! (edict: %d, classname: %s)\n"
 msgstr ""
 "Un'entity CSQC ha cambiato il suo proprietario! (edict: %d, classname: %s)\n"
 
-#: qcsrc/client/Main.qc:964
+#: qcsrc/client/Main.qc:707
 #, c-format
-msgid "A CSQC entity changed its type! (edict: %d, classname: %s)\n"
-msgstr "Un'entity CSQC ha cambiato il suo tipo! (edict: %d, classname: %s)\n"
+msgid ""
+"A CSQC entity changed its type! (edict: %d, server: %d, type: %d -> %d)\n"
+msgstr ""
+"Un'entity CSQC ha cambiato il suo tipo! (edict: %d, server: %d, tipo: %d -> "
+"%d)\n"
 
-#: qcsrc/client/Main.qc:1005
+#: qcsrc/client/Main.qc:716
+#, c-format
+msgid ""
+"A CSQC entity appeared out of nowhere! (edict: %d, server: %d, type: %d)\n"
+msgstr ""
+"Un'entity CSQC è apparsa da non si sa dove! (edict: %d, server: %d, tipo: %d "
+"-> %d)\n"
+
+#: qcsrc/client/Main.qc:758
 #, c-format
 msgid ""
 "Unknown entity type in CSQC_Ent_Update (enttype: %d, edict: %d, classname: "
@@ -84,69 +71,42 @@ msgstr ""
 "Tipo di entity sconosciuta in CSQC_Ent_Update (enttype: %d, edict: %d, "
 "classname: %s)\n"
 
-#: qcsrc/client/Main.qc:1451
+#: qcsrc/client/Main.qc:1206
 #, c-format
 msgid "%s (not bound)"
 msgstr "%s (nessun tasto)"
 
-#: qcsrc/client/Main.qc:1456 qcsrc/client/hud.qc:230
+#: qcsrc/client/Main.qc:1211 qcsrc/client/hud.qc:230
 #, c-format
 msgid "%s (%s)"
 msgstr "%s (%s)"
 
-#: qcsrc/client/ctf.qc:35
-msgid "----- Order Menu -----"
-msgstr "----- Menu degli ordini -----"
+#: qcsrc/client/announcer.qc:31
+msgid "^1Begin!"
+msgstr "^1Via!"
 
-#: qcsrc/client/ctf.qc:36
+#: qcsrc/client/announcer.qc:41
 #, c-format
-msgid "Order: %s"
-msgstr "Ordine: %s"
-
-#: qcsrc/client/ctf.qc:37
-msgid "1) ^3previous page"
-msgstr "1) ^3pagina precedente"
+msgid "^1Game starts in %d seconds"
+msgstr "^1Il gioco inizia tra %d secondi"
 
-#: qcsrc/client/ctf.qc:38
-msgid "2) ^3next page"
-msgstr "2) ^3pagina successiva"
+#: qcsrc/client/announcer.qc:153
+msgid "^1RED^7 flag"
+msgstr "^7Bandiera ^1ROSSA"
 
-#: qcsrc/client/ctf.qc:55 qcsrc/client/ctf.qc:161
-msgid "ESC) Exit Menu"
-msgstr "ESC) Esci dal menu"
+#: qcsrc/client/announcer.qc:158
+msgid "^4BLUE^7 flag"
+msgstr "^7Bandiera ^4BLU"
 
-#: qcsrc/client/ctf.qc:126
+#: qcsrc/client/announcer.qc:166
 #, c-format
-msgid "Couldn't find player %d\n"
-msgstr "Impossibile trovare il giocatore %d\n"
-
-#: qcsrc/client/ctf.qc:154
-msgid "----- Command Menu -----"
-msgstr "----- Menu dei comandi -----"
-
-#: qcsrc/client/ctf.qc:155
-msgid "Issue orders:"
-msgstr "Impartisci ordini:"
-
-#: qcsrc/client/ctf.qc:156
-msgid " 1) Attack"
-msgstr " 1) Attacca"
-
-#: qcsrc/client/ctf.qc:158
-msgid " 2) Defend"
-msgstr " 2) Difendi"
-
-#: qcsrc/client/ctf.qc:160
-msgid "3) Resign from command."
-msgstr "3) Dimettiti dal commando."
-
-#: qcsrc/client/ctf.qc:212
-msgid "You're commander!"
-msgstr "Sei il comandante!"
+msgid "You picked up the %s!"
+msgstr "Hai raccolto la %s!"
 
-#: qcsrc/client/ctf.qc:215
-msgid "Awaiting orders..."
-msgstr "Attendendo ordini..."
+#: qcsrc/client/announcer.qc:170
+#, c-format
+msgid "You got the %s!"
+msgstr "Hai preso la %s!"
 
 #: qcsrc/client/hud.qc:160
 msgid "1st"
@@ -193,450 +153,512 @@ msgstr "Intermedio %d"
 msgid "%s (%s %s)"
 msgstr "%s (%s %s)"
 
-#: qcsrc/client/hud.qc:735
+#: qcsrc/client/hud.qc:786
 msgid "Out of ammo"
 msgstr "Scarica"
 
-#: qcsrc/client/hud.qc:739
+#: qcsrc/client/hud.qc:790
 msgid "Don't have"
 msgstr "Mancante"
 
-#: qcsrc/client/hud.qc:743
+#: qcsrc/client/hud.qc:794
 msgid "Unavailable"
 msgstr "Non disponibile"
 
-#: qcsrc/client/hud.qc:1483
+#: qcsrc/client/hud.qc:1625
 #, c-format
 msgid "^1%s^1 couldn't take it anymore\n"
 msgstr "^1%s^1 non ne poteva più\n"
 
-#: qcsrc/client/hud.qc:1487 qcsrc/client/hud.qc:1791
+#: qcsrc/client/hud.qc:1629 qcsrc/client/hud.qc:1974
 #, c-format
 msgid "^1%s^1 died\n"
 msgstr "^1%s^1 è morto\n"
 
-#: qcsrc/client/hud.qc:1491
+#: qcsrc/client/hud.qc:1633
 #, c-format
 msgid "^7%s^7 committed suicide. What's the point of living without ammo?\n"
 msgstr ""
 "^7%s^7 ha commesso suicidio. Qual'è il motivo di vivere senza munizioni?\n"
 
-#: qcsrc/client/hud.qc:1495
+#: qcsrc/client/hud.qc:1637
 #, c-format
 msgid "^1%s^1 thought they found a nice camping ground\n"
 msgstr "^1%s^1 pensava di trovare un bel campeggio\n"
 
-#: qcsrc/client/hud.qc:1499
+#: qcsrc/client/hud.qc:1641
 #, c-format
 msgid "^1%s^1 didn't become friends with the Lord of Teamplay\n"
 msgstr "^1%s^1 non è diventato amico del Signore del Teamplay\n"
 
-#: qcsrc/client/hud.qc:1503
+#: qcsrc/client/hud.qc:1645
 #, c-format
 msgid "^1%s^1 unfairly eliminated themself\n"
 msgstr "^1%s^1 si è eliminato ingiustamente\n"
 
-#: qcsrc/client/hud.qc:1507
+#: qcsrc/client/hud.qc:1649
 #, c-format
 msgid "^1%s^1 burned to death\n"
 msgstr "^1%s^1 è morto bruciato\n"
 
-#: qcsrc/client/hud.qc:1511
+#: qcsrc/client/hud.qc:1653
 #, c-format
 msgid "^1%s^1 couldn't resist the urge to self-destruct\n"
 msgstr "^1%s^1 non ha resistito allo stimolo di autodistruggersi\n"
 
-#: qcsrc/client/hud.qc:1515
+#: qcsrc/client/hud.qc:1657
 #, c-format
 msgid "^1%s^1 ended it all after a %d kill spree\n"
 msgstr "^1%s^1 l'ha fatta finita con una serie di %d uccisioni\n"
 
-#: qcsrc/client/hud.qc:1532
+#: qcsrc/client/hud.qc:1670
 #, c-format
 msgid "^1%s^1 took action against a team mate\n"
 msgstr "^1%s^1 ha agito contro un compagno di squadra\n"
 
-#: qcsrc/client/hud.qc:1534
+#: qcsrc/client/hud.qc:1672
 #, c-format
 msgid "^1%s^1 mows down a team mate\n"
 msgstr "^1%s^1 ha falciato un compagno di squadra\n"
 
-#: qcsrc/client/hud.qc:1539
+#: qcsrc/client/hud.qc:1677
 #, c-format
 msgid "^1%s^1 ended a %d scoring spree by going against a team mate\n"
 msgstr ""
 "^1%s^1 ha concluso una serie di %d punti per esser andato contro un compagno "
 "di squadra\n"
 
-#: qcsrc/client/hud.qc:1541
+#: qcsrc/client/hud.qc:1679
 #, c-format
 msgid "^1%s^1 ended a %d kill spree by killing a team mate\n"
 msgstr ""
 "^1%s^1 ha concluso una serie di %d uccisioni per aver ammazzato un compagno "
 "di squadra\n"
 
-#: qcsrc/client/hud.qc:1545
+#: qcsrc/client/hud.qc:1683
 #, c-format
 msgid "^1%s^1's %s scoring spree was ended by a team mate!\n"
 msgstr ""
 "^1La serie di ^1%s^1 di ^1%s^1 punti è stata conclusa da un compagno di "
 "squadra!\n"
 
-#: qcsrc/client/hud.qc:1547
+#: qcsrc/client/hud.qc:1685
 #, c-format
 msgid "^1%s^1's %s kill spree was ended by a team mate!\n"
 msgstr ""
 "^1La serie di ^1%s ^1di ^1%s ^1uccisioni è stata conclusa da un compagno di "
 "squadra!\n"
 
-#: qcsrc/client/hud.qc:1551
+#: qcsrc/client/hud.qc:1689
 #, c-format
 msgid "^1%s^1 drew first blood\n"
 msgstr "^1%s^1 ha tratto la prima uccisione\n"
 
-#: qcsrc/client/hud.qc:1555
+#: qcsrc/client/hud.qc:1693
 #, c-format
 msgid "^1%s^1 tried to occupy %s^1's teleport destination space\n"
 msgstr ""
 "^1%s^1 ha provato a occupare lo spazio di destinazione della teleporta di "
 "%s\n"
 
-#: qcsrc/client/hud.qc:1557
+#: qcsrc/client/hud.qc:1695
 #, c-format
 msgid "^1%s^1 was telefragged by %s\n"
 msgstr "^1%s^1 è stato telefraggato da %s\n"
 
-#: qcsrc/client/hud.qc:1562
+#: qcsrc/client/hud.qc:1700
 #, c-format
 msgid "^1%s^1 was drowned by %s\n"
 msgstr "^1%s^1 è stato annegato da %s\n"
 
-#: qcsrc/client/hud.qc:1567
+#: qcsrc/client/hud.qc:1705
 #, c-format
 msgid "^1%s^1 was slimed by %s\n"
 msgstr "^1%s^1 è stato coperto di melma da %s\n"
 
-#: qcsrc/client/hud.qc:1572
+#: qcsrc/client/hud.qc:1710
 #, c-format
 msgid "^1%s^1 was cooked by %s\n"
 msgstr "^1%s^1 è stato cucinato da %s\n"
 
-#: qcsrc/client/hud.qc:1577
+#: qcsrc/client/hud.qc:1715
 #, c-format
 msgid "^1%s^1 was grounded by %s\n"
 msgstr "^1%s^1 è stato messo a terra da %s\n"
 
-#: qcsrc/client/hud.qc:1582
+#: qcsrc/client/hud.qc:1720
 #, c-format
 msgid "^1%s^1 was shot into space by %s\n"
 msgstr "^1%s^1 è stato buttato nello spazio da %s\n"
 
-#: qcsrc/client/hud.qc:1587
+#: qcsrc/client/hud.qc:1725
 #, c-format
 msgid "^1%s^1 was conserved by %s\n"
 msgstr "^1%s^1 è stato conservato da %s\n"
 
-#: qcsrc/client/hud.qc:1593
+#: qcsrc/client/hud.qc:1731
 #, c-format
 msgid "^1%s^1 was thrown into a world of hurt by %s\n"
 msgstr "^1%s^1 è stato lanciato in un mondo di dolore da %s\n"
 
-#: qcsrc/client/hud.qc:1597
+#: qcsrc/client/hud.qc:1735
 #, c-format
 msgid "^1%s^1 was crushed by %s\n"
 msgstr "^1%s^1 è stato schiacciato da %s\n"
 
-#: qcsrc/client/hud.qc:1601
+#: qcsrc/client/hud.qc:1739
 #, c-format
 msgid "^1%s^1 got shredded by %s\n"
 msgstr "^1%s^1 è stato triturato da %s\n"
 
-#: qcsrc/client/hud.qc:1605
+#: qcsrc/client/hud.qc:1743
 #, c-format
 msgid "^1%s^1 was blasted to bits by %s\n"
 msgstr "^1%s^1 è stato disintegrato da %s\n"
 
-#: qcsrc/client/hud.qc:1609
+#: qcsrc/client/hud.qc:1747
 #, c-format
 msgid "^1%s^1 got caught in the destruction of %s^1's vehicle\n"
 msgstr "^1%s^1 è caduto nella distruzione del veicolo di %s\n"
 
-#: qcsrc/client/hud.qc:1613
+#: qcsrc/client/hud.qc:1751
 #, c-format
 msgid "^1%s^1 was bolted down by %s\n"
 msgstr "^1%s^1 è stato imbullonato da %s\n"
 
-#: qcsrc/client/hud.qc:1617
+#: qcsrc/client/hud.qc:1755
 #, c-format
 msgid "^1%s^1 could find no shelter from %s^1's rockets\n"
 msgstr "^1%s^1 non ha trovato riparo dai razzi di %s\n"
 
-#: qcsrc/client/hud.qc:1621
+#: qcsrc/client/hud.qc:1759
 #, c-format
 msgid "^1%s^1 dies when %s^1's wakizashi dies.\n"
 msgstr "^1%s^1 muore mentre il wakizashi di %s^1 muore.\n"
 
-#: qcsrc/client/hud.qc:1625
+#: qcsrc/client/hud.qc:1763
 #, c-format
 msgid "^1%s^1 nailed to hell by %s\n"
 msgstr "^1%s^1 è stato inchiodato all'inferno da %s\n"
 
-#: qcsrc/client/hud.qc:1629
+#: qcsrc/client/hud.qc:1767
 #, c-format
 msgid "^1%s^1 cluster crushed by %s\n"
 msgstr "^1L'ammasso di ^1%s^1 è stato schiacciato da %s\n"
 
-#: qcsrc/client/hud.qc:1633
+#: qcsrc/client/hud.qc:1771
 #, c-format
 msgid "^1%s^1 dies when %s^1's raptor dies.\n"
 msgstr "^1%s^1 muore mentre il raptor di %s^1 muore.\n"
 
-#: qcsrc/client/hud.qc:1637
+#: qcsrc/client/hud.qc:1775
 #, c-format
 msgid "^1%s^1 was pushed into the line of fire by %s\n"
 msgstr "^1%s^1 è stato spinto nella linea di fuoco da %s\n"
 
-#: qcsrc/client/hud.qc:1641
+#: qcsrc/client/hud.qc:1779
 #, c-format
 msgid "^1%s^1 was pushed into an accident by %s\n"
 msgstr "^1%s^1 è stato spinto in un incidente da %s\n"
 
-#: qcsrc/client/hud.qc:1645
+#: qcsrc/client/hud.qc:1783
 #, c-format
 msgid "^1%s^1 was unfairly eliminated by %s\n"
 msgstr "^1%s^1 è stato ingiustamente eliminato da %s\n"
 
-#: qcsrc/client/hud.qc:1649
+#: qcsrc/client/hud.qc:1787
 #, c-format
 msgid "^1%s^1 was burnt to death by %s\n"
 msgstr "^1%s^1 è stato bruciato a morte da %s\n"
 
-#: qcsrc/client/hud.qc:1661
+#: qcsrc/client/hud.qc:1799
 #, c-format
 msgid "^1%s^1 was fragged by %s\n"
 msgstr "^1%s^1 è stato fraggato da %s\n"
 
-#: qcsrc/client/hud.qc:1666
+#: qcsrc/client/hud.qc:1804
 #, c-format
 msgid "^1%s^1's %s scoring spree was ended by %s\n"
 msgstr "^1La serie di ^1%s ^1di ^1%s^1 punti è stata conclusa da %s\n"
 
-#: qcsrc/client/hud.qc:1668
+#: qcsrc/client/hud.qc:1806
 #, c-format
 msgid "^1%s^1's %s kill spree was ended by %s\n"
 msgstr "^1La serie di %s^1 di ^1%s^1 uccisioni è stata conclusa da %s\n"
 
-#: qcsrc/client/hud.qc:1671
+#: qcsrc/client/hud.qc:1809
 #, c-format
 msgid "^1%s^1 made %s scores in a row\n"
 msgstr "^1%s^1 ha fatto %s punti di fila\n"
 
-#: qcsrc/client/hud.qc:1673
+#: qcsrc/client/hud.qc:1811
 #, c-format
 msgid "^1%s^1 has %s frags in a row\n"
 msgstr "^1%s^1 ha %s frag di fila\n"
 
-#: qcsrc/client/hud.qc:1676
+#: qcsrc/client/hud.qc:1814
 #, c-format
 msgid "%s^7 made a ^1TRIPLE SCORE\n"
 msgstr "%s^7 ha realizzato un ^1TRIPLO PUNTO\n"
 
-#: qcsrc/client/hud.qc:1678
+#: qcsrc/client/hud.qc:1816
 #, c-format
 msgid "%s^7 made a ^1TRIPLE FRAG\n"
 msgstr "%s^7 ha realizzato un ^1FRAG TRIPLO\n"
 
-#: qcsrc/client/hud.qc:1681
+#: qcsrc/client/hud.qc:1819
 #, c-format
 msgid "%s^7 unleashes ^1SCORING RAGE\n"
 msgstr "%s^7 scatena una ^1FURIA DI PUNTI\n"
 
-#: qcsrc/client/hud.qc:1683
+#: qcsrc/client/hud.qc:1821
 #, c-format
 msgid "%s^7 unleashes ^1RAGE\n"
 msgstr "%s^7 scatena la propria ^1FURIA\n"
 
-#: qcsrc/client/hud.qc:1686
+#: qcsrc/client/hud.qc:1824
 #, c-format
 msgid "%s^7 made ^1TEN SCORES IN A ROW!\n"
 msgstr "%s^7 ha realizzato ^1DIECI PUNTI DI FILA!\n"
 
-#: qcsrc/client/hud.qc:1688
+#: qcsrc/client/hud.qc:1826
 #, c-format
 msgid "%s^7 starts the ^1MASSACRE!\n"
 msgstr "%s^7 ha iniziato il ^1MASSACRO!\n"
 
-#: qcsrc/client/hud.qc:1691
+#: qcsrc/client/hud.qc:1829
 #, c-format
 msgid "%s^7 made ^1FIFTEEN SCORES IN A ROW!\n"
 msgstr "%s^7 ha realizzato ^QUINDICI PUNTI DI FILA!\n"
 
-#: qcsrc/client/hud.qc:1693
+#: qcsrc/client/hud.qc:1831
 #, c-format
 msgid "%s^7 executes ^1MAYHEM!\n"
 msgstr "%s^7 ha eseguito un ^1MAYHEM!\n"
 
-#: qcsrc/client/hud.qc:1696
+#: qcsrc/client/hud.qc:1834
 #, c-format
 msgid "%s^7 made ^1TWENTY SCORES IN A ROW!\n"
 msgstr "%s^7 ha realizzato ^1VENTI PUNTI DI FILA!\n"
 
-#: qcsrc/client/hud.qc:1698
+#: qcsrc/client/hud.qc:1836
 #, c-format
 msgid "%s^7 is a ^1BERSERKER!\n"
 msgstr "%s^7 è un ^1FEROCE GUERRIERO!\n"
 
-#: qcsrc/client/hud.qc:1701
+#: qcsrc/client/hud.qc:1839
 #, c-format
 msgid "%s^7 made ^1TWENTY FIVE SCORES IN A ROW!\n"
 msgstr "%s^7 ha realizzato ^1VENTICINQUE PUNTI DI FILA!\n"
 
-#: qcsrc/client/hud.qc:1703
+#: qcsrc/client/hud.qc:1841
 #, c-format
 msgid "%s^7 inflicts ^1CARNAGE!\n"
 msgstr "%s^7 ha fatto una ^1CARNEFICINA!\n"
 
-#: qcsrc/client/hud.qc:1706
+#: qcsrc/client/hud.qc:1844
 #, c-format
 msgid "%s^7 made ^1THIRTY SCORES IN A ROW!\n"
 msgstr "%s^7 ha realizzato ^1TRENTA PUNTI DI FILA!\n"
 
-#: qcsrc/client/hud.qc:1708
+#: qcsrc/client/hud.qc:1846
 #, c-format
 msgid "%s^7 unleashes ^1ARMAGEDDON!\n"
 msgstr "%s^7 scatena un ^1ARMAGEDDON!\n"
 
-#: qcsrc/client/hud.qc:1716
+#: qcsrc/client/hud.qc:1854
 #, c-format
 msgid "^1%s^1 was in the water for too long\n"
 msgstr "^1%s^1 è stato in acqua per troppo tempo\n"
 
-#: qcsrc/client/hud.qc:1718
+#: qcsrc/client/hud.qc:1856
 #, c-format
 msgid "^1%s^1 drowned\n"
 msgstr "^1%s^1 è annegato\n"
 
-#: qcsrc/client/hud.qc:1723
+#: qcsrc/client/hud.qc:1861
 #, c-format
 msgid "^1%s^1 was slimed\n"
 msgstr "^1%s^1 è stato coperto di melma\n"
 
-#: qcsrc/client/hud.qc:1729
+#: qcsrc/client/hud.qc:1867
 #, c-format
 msgid "^1%s^1 found a hot place\n"
 msgstr "^1%s^1 ha trovato un posto caldo\n"
 
-#: qcsrc/client/hud.qc:1731
+#: qcsrc/client/hud.qc:1869
 #, c-format
 msgid "^1%s^1 turned into hot slag\n"
 msgstr "^1%s^1 è finito dentro la lava bollente\n"
 
-#: qcsrc/client/hud.qc:1738
+#: qcsrc/client/hud.qc:1876
 #, c-format
 msgid "^1%s^1 tested gravity (and it worked)\n"
 msgstr "^1%s^1 ha testato la gravità (e ha funzionato)\n"
 
-#: qcsrc/client/hud.qc:1740
+#: qcsrc/client/hud.qc:1878
 #, c-format
 msgid "^1%s^1 hit the ground with a crunch\n"
 msgstr "^1%s^1 ha fatto scricchiolare il terreno\n"
 
-#: qcsrc/client/hud.qc:1745
+#: qcsrc/client/hud.qc:1883
 #, c-format
 msgid "^1%s^1 became a shooting star\n"
 msgstr "^1%s^1 è diventato una stella cadente\n"
 
-#: qcsrc/client/hud.qc:1751
+#: qcsrc/client/hud.qc:1889
 #, c-format
 msgid "^1%s^1 discovered a swamp\n"
 msgstr "^1%s^1 ha scoperto una palude\n"
 
-#: qcsrc/client/hud.qc:1753
+#: qcsrc/client/hud.qc:1891
 #, c-format
 msgid "^1%s^1 is now conserved for centuries to come\n"
 msgstr "^1%s^1 è ora conservato per i secoli a venire\n"
 
-#: qcsrc/client/hud.qc:1758
+#: qcsrc/client/hud.qc:1898
+#, c-format
+msgid "^1%s^1 ran into a turret\n"
+msgstr "^1%s^1 si è scontrato con una torretta\n"
+
+#: qcsrc/client/hud.qc:1904
+#, c-format
+msgid "^1%s^1 was laserd down by a eWheel turret \n"
+msgstr "^1%s^1 è stato laserato da una torretta eWheel\n"
+
+#: qcsrc/client/hud.qc:1907
+#, c-format
+msgid "^1%s^1 got caught in the flac \n"
+msgstr "^1%s^1 è è stato catturato nel flac\n"
+
+#: qcsrc/client/hud.qc:1910
+#, c-format
+msgid "^1%s^1 was riddeld full of riddled by a machinegun turret \n"
+msgstr "%s è stato riempito di buchi da una torretta mitragliatrice"
+
+#: qcsrc/client/hud.qc:1913
+#, c-format
+msgid "^1%s^1 got served a led enrichment by a walker turret \n"
+msgstr ""
+"^1A %s^1 è stato servito un arricchimento di piombo da una torretta walker\n"
+
+#: qcsrc/client/hud.qc:1916
+#, c-format
+msgid "^1%s^1 was impaled by a walker turret \n"
+msgstr "^1%s^1 è stato impalato da una torretta walker\n"
+
+#: qcsrc/client/hud.qc:1919
+#, c-format
+msgid "^1%s^1 was rocketed to hell by a walker turret \n"
+msgstr "^1%s^1 è stato mandato all'altro mondo da una torretta walker\n"
+
+#: qcsrc/client/hud.qc:1922
+#, c-format
+msgid "^1%s^1 was blasted away hellion turret \n"
+msgstr "^1%s^1 è stato fatto esplodere da una torretta hellion\n"
+
+#: qcsrc/client/hud.qc:1925
+#, c-format
+msgid "^1%s^1 could not hide from the hunter turret \n"
+msgstr "%s non è riuscito a nascondersi dalla torretta hunter"
+
+#: qcsrc/client/hud.qc:1928
+#, c-format
+msgid "^1%s^1 got turned into smoldering gibs by a mlrs turret \n"
+msgstr "^1%s^1 è stato trasformato in pezzi fumanti da una torretta mlrs"
+
+#: qcsrc/client/hud.qc:1931
 #, c-format
-msgid "^1%s^1 was mowed down by a turret \n"
-msgstr "^1%s^1 è stato falciato da una torretta \n"
+msgid "^1%s^1 got served some superheated plasma from a plasma turret \n"
+msgstr ""
+"^1A %s^1 è stato servito un pò di plasma surriscaldato da una torretta plasma"
+
+#: qcsrc/client/hud.qc:1934
+#, c-format
+msgid "^1%s^1 was phased out \n"
+msgstr "^1%s^1 è stato eliminato\n"
+
+#: qcsrc/client/hud.qc:1937
+#, c-format
+msgid "^1%s^1 was electrocuted by a tesla turret \n"
+msgstr "^1%s^1 è stato elettrotagliato da una torretta tesla\n"
 
-#: qcsrc/client/hud.qc:1770
+#: qcsrc/client/hud.qc:1953
 #, c-format
 msgid "^1%s^1 died in an accident\n"
 msgstr "^1%s^1 è morto in un incidente\n"
 
-#: qcsrc/client/hud.qc:1774
+#: qcsrc/client/hud.qc:1957
 #, c-format
 msgid "^1%s^1 was unfairly eliminated\n"
 msgstr "^1%s^1 è stato ingiustamente eliminato\n"
 
-#: qcsrc/client/hud.qc:1780
+#: qcsrc/client/hud.qc:1963
 #, c-format
 msgid "^1%s^1 felt a little hot\n"
 msgstr "^1%s^1 ha sentito un pò di caldo\n"
 
-#: qcsrc/client/hud.qc:1782
+#: qcsrc/client/hud.qc:1965
 #, c-format
 msgid "^1%s^1 burnt to death\n"
 msgstr "^1%s^1 è morto bruciato\n"
 
-#: qcsrc/client/hud.qc:1789
+#: qcsrc/client/hud.qc:1972
 #, c-format
 msgid "^1%s^1 needs a restart\n"
 msgstr "^1%s^1 ha bisogno di una ripresa\n"
 
-#: qcsrc/client/hud.qc:1796
+#: qcsrc/client/hud.qc:1979
 #, c-format
 msgid "^1%s^1 needs a restart after a %d scoring spree\n"
 msgstr "^1%s^1 ha bisogno di una ripresa dopo una serie di %d punti\n"
 
-#: qcsrc/client/hud.qc:1798
+#: qcsrc/client/hud.qc:1981
 #, c-format
 msgid "^1%s^1 died with a %d kill spree\n"
 msgstr "^1%s^1 è morto dopo una serie di %d uccisioni\n"
 
-#: qcsrc/client/hud.qc:1802
+#: qcsrc/client/hud.qc:1985
 #, c-format
 msgid "%s^7 got the %s\n"
 msgstr "%s^7 ha preso la %s\n"
 
-#: qcsrc/client/hud.qc:1805
+#: qcsrc/client/hud.qc:1988
 #, c-format
 msgid "%s^7 lost the %s\n"
 msgstr "%s^7 ha perso la %s\n"
 
-#: qcsrc/client/hud.qc:1808
+#: qcsrc/client/hud.qc:1991
 #, c-format
 msgid "%s^7 picked up the %s\n"
 msgstr "%s^7 ha raccolto la %s\n"
 
-#: qcsrc/client/hud.qc:1811
+#: qcsrc/client/hud.qc:1994
 #, c-format
 msgid "%s^7 returned the %s\n"
 msgstr "%s^7 ha fatto ritornare la %s\n"
 
-#: qcsrc/client/hud.qc:1814
+#: qcsrc/client/hud.qc:1997
 #, c-format
 msgid "%s^7 captured the %s%s\n"
 msgstr "%s^7 ha catturato la %s%s\n"
 
-#: qcsrc/client/hud.qc:1833
+#: qcsrc/client/hud.qc:2016
 #, c-format
 msgid "%s^7 has picked up the ball!\n"
 msgstr "%s^7 ha raccolto la palla!\n"
 
-#: qcsrc/client/hud.qc:1838
+#: qcsrc/client/hud.qc:2021
 #, c-format
 msgid "%s^7 has dropped the ball!\n"
 msgstr "%s^7 ha rilasciato la palla!\n"
 
-#: qcsrc/client/hud.qc:1849
+#: qcsrc/client/hud.qc:2032
 #, c-format
 msgid "You are now on: %s"
 msgstr "Sei ora in: %s"
 
-#: qcsrc/client/hud.qc:1851
+#: qcsrc/client/hud.qc:2034
 #, c-format
 msgid ""
 "You have been moved into a different team to improve team balance\n"
@@ -646,324 +668,324 @@ msgstr ""
 "delle squadre\n"
 "Sei ora in: %s"
 
-#: qcsrc/client/hud.qc:1854
+#: qcsrc/client/hud.qc:2037
 msgid "^1Reconsider your tactics, camper!"
 msgstr "^1Riconsidera le tue tattiche, camper!"
 
-#: qcsrc/client/hud.qc:1856
+#: qcsrc/client/hud.qc:2039
 msgid "^1Die camper!"
 msgstr "^1Muori camper!"
 
-#: qcsrc/client/hud.qc:1859
+#: qcsrc/client/hud.qc:2042
 msgid "^1You are reinserted into the game for running out of ammo..."
 msgstr "^1Sei reinserito nel gioco per mancanza di munizioni..."
 
-#: qcsrc/client/hud.qc:1861
+#: qcsrc/client/hud.qc:2044
 msgid "^1You were killed for running out of ammo..."
 msgstr "^1Sei stato ucciso per mancanza di munizioni..."
 
-#: qcsrc/client/hud.qc:1864
+#: qcsrc/client/hud.qc:2047
 msgid "^1You need to preserve your health"
 msgstr "^1Hai bisogno di preservare la tua vita"
 
-#: qcsrc/client/hud.qc:1866
+#: qcsrc/client/hud.qc:2049
 msgid "^1You grew too old without taking your medicine"
 msgstr "^1Sei diventato troppo vecchio senza prendere le tue medicine"
 
-#: qcsrc/client/hud.qc:1869
+#: qcsrc/client/hud.qc:2052
 msgid "^1Don't go against team mates!"
 msgstr "^1Non andare contro i tuoi compagni di squadra!"
 
-#: qcsrc/client/hud.qc:1871
+#: qcsrc/client/hud.qc:2054
 msgid "^1Don't shoot your team mates!"
 msgstr "^1Non sparare ai tuoi compagni di squadra!"
 
-#: qcsrc/client/hud.qc:1876
+#: qcsrc/client/hud.qc:2059
 msgid "^1You need to be more careful!"
 msgstr "^1Hai bisogno di essere più prudente!"
 
-#: qcsrc/client/hud.qc:1878
+#: qcsrc/client/hud.qc:2061
 msgid "^1You killed your own dumb self!"
 msgstr "^1Ti sei ammazzato da solo, stupido!"
 
-#: qcsrc/client/hud.qc:1883
+#: qcsrc/client/hud.qc:2066
 #, c-format
 msgid "^1Moron! You went against ^7%s^1, a team mate!"
 msgstr "^1Idiota! Sei andato contro ^7%s^1, un compagno di squadra!"
 
-#: qcsrc/client/hud.qc:1885
+#: qcsrc/client/hud.qc:2068
 #, c-format
 msgid "^1Moron! You fragged ^7%s^1, a team mate!"
 msgstr "^1Idiota! Hai fraggato ^7%s^1, un compagno di squadra!"
 
-#: qcsrc/client/hud.qc:1889
+#: qcsrc/client/hud.qc:2072
 msgid "^1First score"
 msgstr "^1Primo punto"
 
-#: qcsrc/client/hud.qc:1891
+#: qcsrc/client/hud.qc:2074
 msgid "^1First blood"
 msgstr "^1Primo sangue"
 
-#: qcsrc/client/hud.qc:1895
+#: qcsrc/client/hud.qc:2078
 msgid "^1First casualty"
 msgstr "^1Primo incidente"
 
-#: qcsrc/client/hud.qc:1897
+#: qcsrc/client/hud.qc:2080
 msgid "^1First victim"
 msgstr "^1Prima vittima"
 
-#: qcsrc/client/hud.qc:1901
+#: qcsrc/client/hud.qc:2084
 #, c-format
 msgid "^1You scored against ^7%s^1 who was typing!"
 msgstr "^1Hai segnato contro ^7%s^1 che stava scrivendo!"
 
-#: qcsrc/client/hud.qc:1903
+#: qcsrc/client/hud.qc:2086
 #, c-format
 msgid "^1You typefragged ^7%s"
 msgstr "^1Hai \"typefraggato\" ^7%s"
 
-#: qcsrc/client/hud.qc:1907
+#: qcsrc/client/hud.qc:2090
 #, c-format
 msgid "^1You were scored against by ^7%s^1 while you were typing!"
 msgstr "^1Sei stato segnato da ^7%s^1 mentre stavi scrivendo!"
 
-#: qcsrc/client/hud.qc:1909
+#: qcsrc/client/hud.qc:2092
 #, c-format
 msgid "^1You were typefragged by ^7%s"
 msgstr "^1Sei stato \"typefraggato\" da ^7%s"
 
-#: qcsrc/client/hud.qc:1913
+#: qcsrc/client/hud.qc:2096
 #, c-format
 msgid "^4You scored against ^7%s"
 msgstr "^4Hai segnato contro ^7%s"
 
-#: qcsrc/client/hud.qc:1915
+#: qcsrc/client/hud.qc:2098
 #, c-format
 msgid "^4You fragged ^7%s"
 msgstr "^4Hai fraggato ^7%s"
 
-#: qcsrc/client/hud.qc:1919
+#: qcsrc/client/hud.qc:2102
 #, c-format
 msgid "^1You were scored against by ^7%s"
 msgstr "^1Sei stato segnato da ^7%s"
 
-#: qcsrc/client/hud.qc:1921
+#: qcsrc/client/hud.qc:2104
 #, c-format
 msgid "^1You were fragged by ^7%s"
 msgstr "^1Sei stato fraggato da ^7%s"
 
-#: qcsrc/client/hud.qc:1926
+#: qcsrc/client/hud.qc:2109
 msgid "^1Watch your step!"
 msgstr "^1Attento a dove metti i piedi!"
 
-#: qcsrc/client/hud.qc:1995 qcsrc/client/hud.qc:1996 qcsrc/client/hud.qc:2481
+#: qcsrc/client/hud.qc:2178 qcsrc/client/hud.qc:2179 qcsrc/client/hud.qc:2685
 #, c-format
 msgid "Player %d"
 msgstr "Giocatore %d"
 
-#: qcsrc/client/hud.qc:2786
+#: qcsrc/client/hud.qc:2995
 msgid "^1Intermediate 1 (+15.42)"
 msgstr "^1Intermedio 1 (+15.42)"
 
-#: qcsrc/client/hud.qc:2788 qcsrc/client/hud.qc:2830 qcsrc/client/hud.qc:2871
+#: qcsrc/client/hud.qc:2997 qcsrc/client/hud.qc:3039 qcsrc/client/hud.qc:3080
 #, c-format
 msgid "^1PENALTY: %.1f (%s)"
 msgstr "^1PENALITÀ: %.1f (%s)"
 
-#: qcsrc/client/hud.qc:2873
+#: qcsrc/client/hud.qc:3082
 #, c-format
 msgid "^2PENALTY: %.1f (%s)"
 msgstr "^2PENALITÀ: %.1f (%s)"
 
-#: qcsrc/client/hud.qc:2901
+#: qcsrc/client/hud.qc:3110
 msgid "^1You must answer before entering hud configure mode\n"
 msgstr ""
 "^1Devi rispondere prima di entrare nella modalità di configurazione "
 "dell'HUD\n"
 
-#: qcsrc/client/hud.qc:2904
-msgid "^2Name ^7instead of \"^1Unregistered player^7\" in stats"
-msgstr "^2Nome ^7invece di \"^1Giocatore non registrato^7\" nelle statistiche"
+#: qcsrc/client/hud.qc:3115
+msgid "^2Name ^7instead of \"^1Anonymous player^7\" in stats"
+msgstr "^2Nome ^7invece di \"^1Giocatore anonimo^7\" nelle statistiche"
 
-#: qcsrc/client/hud.qc:2986
+#: qcsrc/client/hud.qc:3197
 msgid "A vote has been called for:"
 msgstr "Un voto è stato chiamato per:"
 
-#: qcsrc/client/hud.qc:2988
+#: qcsrc/client/hud.qc:3199
 msgid "Allow servers to store and display your name?"
 msgstr "Permetti ai server di salvare e visualizzare il tuo nome?"
 
-#: qcsrc/client/hud.qc:2992
+#: qcsrc/client/hud.qc:3203
 msgid "^1Configure the HUD"
 msgstr "^1Configura l'HUD"
 
-#: qcsrc/client/hud.qc:2996
+#: qcsrc/client/hud.qc:3207
 #, c-format
 msgid "Yes (%s): %d"
 msgstr "Sì (%s): %d"
 
-#: qcsrc/client/hud.qc:2998
+#: qcsrc/client/hud.qc:3209
 #, c-format
 msgid "No (%s): %d"
 msgstr "No (%s): %d"
 
-#: qcsrc/client/hud.qc:3501 qcsrc/client/hud.qc:3504 qcsrc/client/hud.qc:3506
+#: qcsrc/client/hud.qc:3712 qcsrc/client/hud.qc:3715 qcsrc/client/hud.qc:3717
 msgid "Personal best"
 msgstr "Miglior personale"
 
-#: qcsrc/client/hud.qc:3519 qcsrc/client/hud.qc:3522 qcsrc/client/hud.qc:3524
+#: qcsrc/client/hud.qc:3730 qcsrc/client/hud.qc:3733 qcsrc/client/hud.qc:3735
 msgid "Server best"
 msgstr "Migliori del server"
 
-#: qcsrc/client/hud.qc:3868
+#: qcsrc/client/hud.qc:4081
 msgid "^3Player^7: This is the chat area."
 msgstr "^3Giocatore^7: Questa è l'area della chat."
 
-#: qcsrc/client/hud.qc:3936
+#: qcsrc/client/hud.qc:4149
 #, c-format
 msgid "FPS: %.*f"
 msgstr "FPS: %.*f"
 
-#: qcsrc/client/hud.qc:4003
+#: qcsrc/client/hud.qc:4216
 msgid "^1Observing"
 msgstr "^1Osservando"
 
-#: qcsrc/client/hud.qc:4005
+#: qcsrc/client/hud.qc:4219 qcsrc/client/hud.qc:4221
 #, c-format
 msgid "^1Spectating: ^7%s"
 msgstr "^1Assistendo: ^7%s"
 
-#: qcsrc/client/hud.qc:4009
+#: qcsrc/client/hud.qc:4226
 #, c-format
 msgid "^1Press ^3%s^1 to spectate"
 msgstr "^1Premi ^3%s^1 per assistere"
 
-#: qcsrc/client/hud.qc:4011
+#: qcsrc/client/hud.qc:4228
 #, c-format
 msgid "^1Press ^3%s^1 for another player"
 msgstr "^1Premi ^3%s^1 per un altro giocatore"
 
-#: qcsrc/client/hud.qc:4015
+#: qcsrc/client/hud.qc:4232
 #, c-format
 msgid "^1Use ^3%s^1 or ^3%s^1 to change the speed"
 msgstr "^1Usa ^3%s^1 o ^3%s^1 per cambiare velocità"
 
-#: qcsrc/client/hud.qc:4017
+#: qcsrc/client/hud.qc:4234
 #, c-format
 msgid "^1Press ^3%s^1 to observe"
 msgstr "^1Premi ^3%s^1 per osservare"
 
-#: qcsrc/client/hud.qc:4020
+#: qcsrc/client/hud.qc:4237
 #, c-format
 msgid "^1Press ^3%s^1 for gamemode info"
 msgstr "^1Premi ^3%s^1 per informazioni sulla modalità di gioco"
 
-#: qcsrc/client/hud.qc:4024
+#: qcsrc/client/hud.qc:4241
 msgid "^1Wait for your turn to join"
 msgstr "^1Attendi il tuo turno per entrare"
 
-#: qcsrc/client/hud.qc:4030
+#: qcsrc/client/hud.qc:4247
 msgid "^1Match has already begun"
 msgstr "^1La partita è già iniziata"
 
-#: qcsrc/client/hud.qc:4032
+#: qcsrc/client/hud.qc:4249
 msgid "^1You have no more lives left"
 msgstr "^1Non hai più vite a disposizione"
 
-#: qcsrc/client/hud.qc:4034 qcsrc/client/hud.qc:4037
+#: qcsrc/client/hud.qc:4251 qcsrc/client/hud.qc:4254
 #, c-format
 msgid "^1Press ^3%s^1 to join"
 msgstr "^1Premi ^3%s^1 per entrare"
 
-#: qcsrc/client/hud.qc:4045
+#: qcsrc/client/hud.qc:4262
 #, c-format
 msgid "^1Game starts in ^3%d^1 seconds"
 msgstr "^1La partita inizia tra ^3%d^1 secondi"
 
-#: qcsrc/client/hud.qc:4052
+#: qcsrc/client/hud.qc:4269
 msgid "^2Currently in ^1warmup^2 stage!"
 msgstr "^2Attualmente in ^1warmup^2!"
 
-#: qcsrc/client/hud.qc:4067
+#: qcsrc/client/hud.qc:4284
 #, c-format
 msgid "%sPress ^3%s%s to end warmup"
 msgstr "%sPremi ^3%s%s per terminare il warmup"
 
-#: qcsrc/client/hud.qc:4069
+#: qcsrc/client/hud.qc:4286
 #, c-format
 msgid "%sPress ^3%s%s once you are ready"
 msgstr "%sPremi ^3%s%s una volta che sei pronto"
 
-#: qcsrc/client/hud.qc:4074
+#: qcsrc/client/hud.qc:4291
 msgid "^2Waiting for others to ready up to end warmup..."
 msgstr "^2Attendendo che gli altri siano pronti per terminare il warmup..."
 
-#: qcsrc/client/hud.qc:4076
+#: qcsrc/client/hud.qc:4293
 msgid "^2Waiting for others to ready up..."
 msgstr "^2Attendendo che gli altri siano pronti..."
 
-#: qcsrc/client/hud.qc:4082
+#: qcsrc/client/hud.qc:4299
 #, c-format
 msgid "^2Press ^3%s^2 to end warmup"
 msgstr "^2Premi ^3%s^2 per terminare il warmup"
 
-#: qcsrc/client/hud.qc:4103
+#: qcsrc/client/hud.qc:4320
 msgid "Teamnumbers are unbalanced!"
 msgstr "Numero di giocatori per squadra sbilanciato!"
 
-#: qcsrc/client/hud.qc:4108
+#: qcsrc/client/hud.qc:4325
 #, c-format
 msgid " Press ^3%s%s to adjust"
 msgstr " Premi ^3%s%s per aggiustare"
 
-#: qcsrc/client/hud.qc:4116
+#: qcsrc/client/hud.qc:4333
 msgid "^7Press ^3ESC ^7to show HUD options."
 msgstr "^7Premi ^3ESC ^7per mostrare le opzioni dell'HUD."
 
-#: qcsrc/client/hud.qc:4118
+#: qcsrc/client/hud.qc:4335
 msgid "^3Doubleclick ^7a panel for panel-specific options."
 msgstr "^3Doppio-click ^7su un pannello per le sue specifiche opzioni."
 
-#: qcsrc/client/hud.qc:4120
+#: qcsrc/client/hud.qc:4337
 msgid "^3CTRL ^7to disable collision testing, ^3SHIFT ^7and"
 msgstr "^3CTRL ^7per disabilitare il test di collisione, ^3SHIFT ^7e"
 
-#: qcsrc/client/hud.qc:4122
+#: qcsrc/client/hud.qc:4339
 msgid "^3ALT ^7+ ^3ARROW KEYS ^7for fine adjustments."
 msgstr "^3ALT ^7+ ^3ARROW KEYS ^7per fini aggiustamenti"
 
-#: qcsrc/client/hud.qc:4160
+#: qcsrc/client/hud.qc:4377
 msgid " qu/s"
 msgstr " qu/s"
 
-#: qcsrc/client/hud.qc:4164
+#: qcsrc/client/hud.qc:4381
 msgid " m/s"
 msgstr " m/s"
 
-#: qcsrc/client/hud.qc:4168
+#: qcsrc/client/hud.qc:4385
 msgid " km/h"
 msgstr " km/h"
 
-#: qcsrc/client/hud.qc:4172
+#: qcsrc/client/hud.qc:4389
 msgid " mph"
 msgstr " mph"
 
-#: qcsrc/client/hud.qc:4176
+#: qcsrc/client/hud.qc:4393
 msgid " knots"
 msgstr " nodi"
 
-#: qcsrc/client/hud.qc:4823
+#: qcsrc/client/hud.qc:5059
 msgid "Automatically fixed wrong/missing panel numbers in _hud_panelorder\n"
 msgstr ""
 "Corretti automaticamente numeri di pannello sbagliati/mancanti in "
 "_hud_panelorder\n"
 
-#: qcsrc/client/hud_config.qc:136
+#: qcsrc/client/hud_config.qc:185
 #, c-format
 msgid "^2Successfully exported to %s! (Note: It's saved in data/data/)\n"
 msgstr "^2Esportato con successo in %s! (nota: E' salvato in data/data/)\n"
 
-#: qcsrc/client/hud_config.qc:140
+#: qcsrc/client/hud_config.qc:189
 #, c-format
 msgid "^1Couldn't write to %s\n"
 msgstr "^1Impossibile scrivere in %s\n"
@@ -977,60 +999,33 @@ msgstr " (1 voto)"
 msgid " (%d votes)"
 msgstr " (%d voti)"
 
-#: qcsrc/client/mapvoting.qc:113
+#: qcsrc/client/mapvoting.qc:116
 msgid "Don't care"
 msgstr "Non importa"
 
-#: qcsrc/client/mapvoting.qc:194
+#: qcsrc/client/mapvoting.qc:197
 msgid "Vote for a map"
 msgstr "Vota per una mappa"
 
-#: qcsrc/client/mapvoting.qc:200
+#: qcsrc/client/mapvoting.qc:203
 #, c-format
 msgid "%d seconds left"
 msgstr "%d secondi rimanenti"
 
-#: qcsrc/client/mapvoting.qc:263
+#: qcsrc/client/mapvoting.qc:266
 msgid ""
 "mv_mapdownload: ^3You're not supposed to use this command on your own!\n"
 msgstr "mv_mapdownload: ^3Non avrai creduto di poter usare questo comando!\n"
 
-#: qcsrc/client/mapvoting.qc:273
+#: qcsrc/client/mapvoting.qc:276
 msgid "^1Error:^7 Couldn't find pak index.\n"
 msgstr "^1Errore:^7 Impossibile trovare il pak index.\n"
 
-#: qcsrc/client/mapvoting.qc:282
+#: qcsrc/client/mapvoting.qc:285
 msgid "Requesting preview...\n"
 msgstr "Richiedendo l'anteprima...\n"
 
-#: qcsrc/client/miscfunctions.qc:23
-msgid "^1Begin!"
-msgstr "^1Inizia!"
-
-#: qcsrc/client/miscfunctions.qc:34
-#, c-format
-msgid "^1Game starts in %d seconds"
-msgstr "^1Il gioco inizia tra %d secondi"
-
-#: qcsrc/client/miscfunctions.qc:113
-msgid "^1RED^7 flag"
-msgstr "^7Bandiera ^1ROSSA"
-
-#: qcsrc/client/miscfunctions.qc:118
-msgid "^4BLUE^7 flag"
-msgstr "^7Bandiera ^4BLU"
-
-#: qcsrc/client/miscfunctions.qc:126
-#, c-format
-msgid "You picked up the %s!"
-msgstr "Hai raccolto la %s!"
-
-#: qcsrc/client/miscfunctions.qc:130
-#, c-format
-msgid "You got the %s!"
-msgstr "Hai preso la %s!"
-
-#: qcsrc/client/miscfunctions.qc:283
+#: qcsrc/client/miscfunctions.qc:100
 msgid "Trying to remove a team which is not in the teamlist!"
 msgstr "Tentando di rimuovere una squadra che non è nella lista delle squadre!"
 
@@ -1054,23 +1049,23 @@ msgstr "tempo pp"
 
 #: qcsrc/client/scoreboard.qc:21
 msgid "SCO^caps"
-msgstr "SCO^catture"
+msgstr "catture"
 
 #: qcsrc/client/scoreboard.qc:22
 msgid "SCO^deaths"
-msgstr "SCO^morti"
+msgstr "morti"
 
 #: qcsrc/client/scoreboard.qc:23
 msgid "SCO^destroyed"
-msgstr "SCO^distrutte"
+msgstr "distrutte"
 
 #: qcsrc/client/scoreboard.qc:24
 msgid "SCO^drops"
-msgstr "SCO^cadute"
+msgstr "cadute"
 
 #: qcsrc/client/scoreboard.qc:25
 msgid "SCO^faults"
-msgstr "SCO^falli"
+msgstr "falli"
 
 #: qcsrc/client/scoreboard.qc:26
 msgid "SCO^fckills"
@@ -1078,7 +1073,7 @@ msgstr "uccisioni pb"
 
 #: qcsrc/client/scoreboard.qc:27
 msgid "SCO^goals"
-msgstr "SCO^gol"
+msgstr "gol"
 
 #: qcsrc/client/scoreboard.qc:28
 msgid "SCO^kckills"
@@ -1102,27 +1097,27 @@ msgstr "rum"
 
 #: qcsrc/client/scoreboard.qc:33
 msgid "SCO^kills"
-msgstr "SCO^uccisioni"
+msgstr "uccisioni"
 
 #: qcsrc/client/scoreboard.qc:34
 msgid "SCO^laps"
-msgstr "SCO^giri"
+msgstr "giri"
 
 #: qcsrc/client/scoreboard.qc:35
 msgid "SCO^lives"
-msgstr "SCO^vite"
+msgstr "vite"
 
 #: qcsrc/client/scoreboard.qc:36
 msgid "SCO^losses"
-msgstr "SCO^perdute"
+msgstr "perdute"
 
 #: qcsrc/client/scoreboard.qc:37
 msgid "SCO^name"
-msgstr "SCO^nome"
+msgstr "nome"
 
 #: qcsrc/client/scoreboard.qc:38
 msgid "SCO^nick"
-msgstr "SCO^nick"
+msgstr "nick"
 
 #: qcsrc/client/scoreboard.qc:39
 msgid "SCO^objectives"
@@ -1130,27 +1125,27 @@ msgstr "obiettivi"
 
 #: qcsrc/client/scoreboard.qc:40
 msgid "SCO^pickups"
-msgstr "SCO^raccolte"
+msgstr "raccolte"
 
 #: qcsrc/client/scoreboard.qc:41
 msgid "SCO^ping"
-msgstr "SCO^ping"
+msgstr "ping"
 
 #: qcsrc/client/scoreboard.qc:42
 msgid "SCO^pl"
-msgstr "SCO^pl"
+msgstr "pl"
 
 #: qcsrc/client/scoreboard.qc:43
 msgid "SCO^pushes"
-msgstr "SCO^spinte"
+msgstr "spinte"
 
 #: qcsrc/client/scoreboard.qc:44
 msgid "SCO^rank"
-msgstr "SCO^posizione"
+msgstr "posizione"
 
 #: qcsrc/client/scoreboard.qc:45
 msgid "SCO^returns"
-msgstr "SCO^ritorni"
+msgstr "ritorni"
 
 #: qcsrc/client/scoreboard.qc:46
 msgid "SCO^revivals"
@@ -1158,19 +1153,19 @@ msgstr "ravvivamenti"
 
 #: qcsrc/client/scoreboard.qc:47
 msgid "SCO^score"
-msgstr "SCO^punti"
+msgstr "punti"
 
 #: qcsrc/client/scoreboard.qc:48
 msgid "SCO^suicides"
-msgstr "SCO^suicidi"
+msgstr "suicidi"
 
 #: qcsrc/client/scoreboard.qc:49
 msgid "SCO^takes"
-msgstr "SCO^presi"
+msgstr "presi"
 
 #: qcsrc/client/scoreboard.qc:50
 msgid "SCO^ticks"
-msgstr "SCO^tick"
+msgstr "tick"
 
 #: qcsrc/client/scoreboard.qc:239
 msgid ""
@@ -1182,12 +1177,16 @@ msgstr ""
 msgid "^3|---------------------------------------------------------------|\n"
 msgstr "^3|---------------------------------------------------------------|\n"
 
+#: qcsrc/client/scoreboard.qc:241
+msgid "Usage:\n"
+msgstr "Uso:\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"
+msgid "^2scoreboard_columns_set ^7field1 field2 ...\n"
 msgstr "^2scoreboard_columns_set ^7campo1 campo2 ...\n"
 
 #: qcsrc/client/scoreboard.qc:244
@@ -1203,8 +1202,8 @@ msgstr ""
 "\n"
 
 #: qcsrc/client/scoreboard.qc:247
-msgid "^3name^7 or ^3nick^7         Name of a player\n"
-msgstr "^3name^7 o ^3nick^7         Nome di un giocatore\n"
+msgid "^3name^7 or ^3nick^7             Name of a player\n"
+msgstr "^3name^7 o ^3nick^7             Nome di un giocatore\n"
 
 #: qcsrc/client/scoreboard.qc:248
 msgid "^3ping^7                     Ping time\n"
@@ -1393,7 +1392,7 @@ msgstr "riparato campo mancante '%s'\n"
 
 #: qcsrc/client/scoreboard.qc:515 qcsrc/client/scoreboard.qc:522
 msgid "N/A"
-msgstr "N/D"
+msgstr "N.D."
 
 #: qcsrc/client/scoreboard.qc:950
 #, c-format
@@ -1405,58 +1404,66 @@ msgstr "Statistiche precisione (media %d%%)"
 msgid "%d%%"
 msgstr "%d%%"
 
-#: qcsrc/client/scoreboard.qc:1075
+#: qcsrc/client/scoreboard.qc:1085
+msgid "Map stats:"
+msgstr "Statistiche mappa:"
+
+#: qcsrc/client/scoreboard.qc:1101
+msgid "Secrets found:"
+msgstr "Segreti trovati:"
+
+#: qcsrc/client/scoreboard.qc:1128
 msgid "Rankings"
 msgstr "Classifica"
 
-#: qcsrc/client/scoreboard.qc:1170
+#: qcsrc/client/scoreboard.qc:1223
 msgid "Scoreboard"
 msgstr "Tabella dei punteggi"
 
-#: qcsrc/client/scoreboard.qc:1215
+#: qcsrc/client/scoreboard.qc:1268
 #, c-format
 msgid "Speed award: %d ^7(%s^7)"
 msgstr "Velocità migliore: %d ^7(%s^7)"
 
-#: qcsrc/client/scoreboard.qc:1219
+#: qcsrc/client/scoreboard.qc:1272
 #, c-format
 msgid "All-time fastest: %d ^7(%s^7)"
 msgstr "Tempo più veloce in assoluto: %d ^7(%s^7)"
 
-#: qcsrc/client/scoreboard.qc:1246 qcsrc/client/teamplay.qc:63
+#: qcsrc/client/scoreboard.qc:1305 qcsrc/client/teamplay.qc:63
 msgid "Spectators"
 msgstr "Spettatori"
 
-#: qcsrc/client/scoreboard.qc:1252
+#: qcsrc/client/scoreboard.qc:1311
 #, c-format
 msgid "playing on ^2%s^7"
 msgstr "giocando in ^2%s^7"
 
-#: qcsrc/client/scoreboard.qc:1259 qcsrc/client/scoreboard.qc:1264
+#: qcsrc/client/scoreboard.qc:1318 qcsrc/client/scoreboard.qc:1323
 #, c-format
 msgid " for up to ^1%1.0f minutes^7"
 msgstr " fino a ^1%1.0f minuti^7"
 
-#: qcsrc/client/scoreboard.qc:1268 qcsrc/client/scoreboard.qc:1287
+#: qcsrc/client/scoreboard.qc:1327 qcsrc/client/scoreboard.qc:1346
 msgid " or"
 msgstr " o"
 
-#: qcsrc/client/scoreboard.qc:1271 qcsrc/client/scoreboard.qc:1278
+#: qcsrc/client/scoreboard.qc:1330 qcsrc/client/scoreboard.qc:1337
 #, c-format
 msgid " until ^3%s %s^7"
 msgstr " fino a ^3%s %s^7"
 
-#: qcsrc/client/scoreboard.qc:1272 qcsrc/client/scoreboard.qc:1279
-#: qcsrc/client/scoreboard.qc:1291 qcsrc/client/scoreboard.qc:1298
+#: qcsrc/client/scoreboard.qc:1331 qcsrc/client/scoreboard.qc:1338
+#: qcsrc/client/scoreboard.qc:1350 qcsrc/client/scoreboard.qc:1357
 msgid "SCO^points"
-msgstr "SCO^punti"
+msgstr "punti"
 
-#: qcsrc/client/scoreboard.qc:1273 qcsrc/client/scoreboard.qc:1280
-#: qcsrc/client/scoreboard.qc:1292 qcsrc/client/scoreboard.qc:1299
+#: qcsrc/client/scoreboard.qc:1332 qcsrc/client/scoreboard.qc:1339
+#: qcsrc/client/scoreboard.qc:1351 qcsrc/client/scoreboard.qc:1358
 msgid "SCO^is beaten"
-msgstr "SCO^è battuto"
+msgstr "è battuto"
 
-#: qcsrc/client/scoreboard.qc:1290 qcsrc/client/scoreboard.qc:1297
+#: qcsrc/client/scoreboard.qc:1349 qcsrc/client/scoreboard.qc:1356
 #, c-format
 msgid " until a lead of ^3%s %s^7"
 msgstr " fino a che si vince di ^3%s %s^7"
@@ -1482,6 +1489,15 @@ msgstr "Team Giallo"
 msgid "Pink Team"
 msgstr "Team Rosa"
 
+#: qcsrc/client/tturrets.qc:285 qcsrc/client/waypointsprites.qc:590
+msgid "Spam"
+msgstr "Spam"
+
+#: qcsrc/client/tturrets.qc:294
+#, c-format
+msgid "%s under attack!"
+msgstr "%s sotto attacco!"
+
 #: qcsrc/client/waypointsprites.qc:254
 msgid "Push"
 msgstr "Spingi"
@@ -1508,7 +1524,7 @@ msgstr "Portatore bandiera"
 
 #: qcsrc/client/waypointsprites.qc:260
 msgid "Dropped flag"
-msgstr "Bandiera rilasciata"
+msgstr "Bandiera persa"
 
 #: qcsrc/client/waypointsprites.qc:261
 msgid "Help me!"
@@ -1679,20 +1695,85 @@ msgstr "Contrassegnato"
 msgid "Vehicle"
 msgstr "Veicolo"
 
-#: qcsrc/client/waypointsprites.qc:590
-msgid "Spam"
-msgstr "Spam"
-
 #: qcsrc/client/waypointsprites.qc:594
 #, c-format
 msgid "%s needing help!"
 msgstr "%s sta chiedendo aiuto!"
 
-#: qcsrc/common/mapinfo.qc:1092
+#: qcsrc/common/mapinfo.qc:665
+#, c-format
+msgid "@!#%'n Tuba Throwing"
+msgstr "@!#%'n Tuba"
+
+#: qcsrc/common/mapinfo.qc:1057
 #, c-format
 msgid "%s: %s"
 msgstr "%s: %s"
 
+#: qcsrc/common/mapinfo.qh:36
+msgid "Deathmatch"
+msgstr "Deathmatch"
+
+#: qcsrc/common/mapinfo.qh:39
+msgid "Last Man Standing"
+msgstr "Ultimo Uomo Rimasto (LMS)"
+
+#: qcsrc/common/mapinfo.qh:42
+msgid "Arena"
+msgstr "Arena"
+
+#: qcsrc/common/mapinfo.qh:45
+msgid "Runematch"
+msgstr "Runematch"
+
+#: qcsrc/common/mapinfo.qh:48
+msgid "Race"
+msgstr "Corsa"
+
+#: qcsrc/common/mapinfo.qh:51
+msgid "Race CTS"
+msgstr "Corsa CTS"
+
+#: qcsrc/common/mapinfo.qh:54
+msgid "Team Deathmatch"
+msgstr "Team Deathmatch"
+
+#: qcsrc/common/mapinfo.qh:57
+msgid "Capture the Flag"
+msgstr "Cattura la Bandiera (CTF)"
+
+#: qcsrc/common/mapinfo.qh:60
+msgid "Clan Arena"
+msgstr "Clan Arena"
+
+#: qcsrc/common/mapinfo.qh:63
+msgid "Domination"
+msgstr "Dominazione"
+
+#: qcsrc/common/mapinfo.qh:66
+msgid "Key Hunt"
+msgstr "Caccia alla Chiave (Key Hunt)"
+
+#: qcsrc/common/mapinfo.qh:69
+msgid "Assault"
+msgstr "Assalto"
+
+#: qcsrc/common/mapinfo.qh:72
+msgid "Onslaught"
+msgstr "Attacco (Onslaught)"
+
+#: qcsrc/common/mapinfo.qh:75
+msgid "Nexball"
+msgstr "Nexball"
+
+#: qcsrc/common/mapinfo.qh:78
+msgid "Freeze Tag"
+msgstr "Congelamento (Freeze Tag)"
+
+#: qcsrc/common/mapinfo.qh:81
+msgid "Keepaway"
+msgstr "Tieni Lontano (Keepaway)"
+
 #: qcsrc/server/w_crylink.qc:666
 #, c-format
 msgid "%s succeeded at self-destructing themself with the Crylink"
@@ -1713,120 +1794,120 @@ msgstr "%s era troppo vicino al Crylink di %s"
 msgid "%s took a close look at %s's Crylink"
 msgstr "%s ha visto da vicino il Crylink di %s"
 
-#: qcsrc/server/w_electro.qc:574
+#: qcsrc/server/w_electro.qc:589
 #, c-format
-msgid "%s could not remember where they put plasma"
-msgstr "%s non s'è ricordato dove aveva messo il plasma"
+msgid "%s could not remember where they put their electro plasma"
+msgstr "%s non s'è ricordato dove aveva messo il suo elettroplasma"
 
-#: qcsrc/server/w_electro.qc:576
+#: qcsrc/server/w_electro.qc:591
 #, c-format
-msgid "%s played with plasma"
-msgstr "%s ha giocato coplasma"
+msgid "%s played with electro plasma"
+msgstr "%s ha giocato con l'elettroplasma"
 
-#: qcsrc/server/w_electro.qc:583
+#: qcsrc/server/w_electro.qc:598
 #, c-format
-msgid "%s just noticed %s's blue ball"
-msgstr "%s ha appena notato la palla blu di %s"
+msgid "%s just noticed %s's electro plasma"
+msgstr "%s ha appena notato l'elettroplasma di %s"
 
-#: qcsrc/server/w_electro.qc:585
+#: qcsrc/server/w_electro.qc:600
 #, c-format
-msgid "%s got in touch with %s's blue ball"
-msgstr "%s è entrato in contatto con la palla blu di %s"
+msgid "%s got in touch with %s's electro plasma"
+msgstr "%s è entrato in contatto con l'elettroplasma di %s"
 
-#: qcsrc/server/w_electro.qc:590
+#: qcsrc/server/w_electro.qc:605
 #, c-format
-msgid "%s felt the electrifying air of %s's combo"
-msgstr "%s ha sentito l'aria elettrificata dellcombo di %s"
+msgid "%s felt the electrifying air of %s's electro combo"
+msgstr "%s ha sentito l'aria elettrificata dell'elettrocombo di %s"
 
-#: qcsrc/server/w_electro.qc:592
+#: qcsrc/server/w_electro.qc:607
 #, c-format
-msgid "%s got too close to %s's blue beam"
-msgstr "%s s'è avvicinato troppo al raggio blu di %s"
+msgid "%s got too close to %s's blue electro bolt"
+msgstr "%s s'è avvicinato troppo all'elettrosaetta blu di %s"
 
-#: qcsrc/server/w_electro.qc:594
+#: qcsrc/server/w_electro.qc:609
 #, c-format
-msgid "%s was blasted by %s's blue beam"
-msgstr "%s è stato fatto saltare in aria dal raggio blu di %s"
+msgid "%s was blasted by %s's blue electro bolt"
+msgstr "%s è stato fatto esplodere dall'elettrosaetta blu di %s"
 
-#: qcsrc/server/w_fireball.qc:417
+#: qcsrc/server/w_fireball.qc:403
 #, c-format
 msgid "%s forgot about some firemine"
 msgstr "%s s'è dimenticato di alcune mine infuocate"
 
-#: qcsrc/server/w_fireball.qc:419 qcsrc/server/w_hlac.qc:240
+#: qcsrc/server/w_fireball.qc:405 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/server/w_fireball.qc:426
+#: qcsrc/server/w_fireball.qc:412
 #, c-format
 msgid "%s tried to catch %s's firemine"
 msgstr "%s ha provato a catturare la mina infuocata di %s"
 
-#: qcsrc/server/w_fireball.qc:428
+#: qcsrc/server/w_fireball.qc:414
 #, c-format
 msgid "%s fatefully ignored %s's firemine"
 msgstr "%s ha fatalmente ignorato la mina infuocata di %s"
 
-#: qcsrc/server/w_fireball.qc:435
+#: qcsrc/server/w_fireball.qc:421
 #, c-format
 msgid "%s could not hide from %s's fireball"
 msgstr "%s non è riuscito a nascondersi dalla fireball di %s"
 
-#: qcsrc/server/w_fireball.qc:437
+#: qcsrc/server/w_fireball.qc:423
 #, c-format
 msgid "%s saw the pretty lights of %s's fireball"
 msgstr "%s ha visto le belle luci della fireball di %s"
 
-#: qcsrc/server/w_fireball.qc:440
+#: qcsrc/server/w_fireball.qc:426
 #, c-format
 msgid "%s got too close to %s's fireball"
 msgstr "%s s'è avvicinato troppo alla fireball di %s"
 
-#: qcsrc/server/w_fireball.qc:442
+#: qcsrc/server/w_fireball.qc:428
 #, c-format
 msgid "%s tasted %s's fireball"
 msgstr "%s ha assaggiato la fireball di %s"
 
-#: qcsrc/server/w_grenadelauncher.qc:383
+#: qcsrc/server/w_grenadelauncher.qc:388
 #, c-format
-msgid "%s tried out his own grenade"
-msgstr "%s ha provato da solo la propria granata"
+msgid "%s didn't see their own grenade"
+msgstr "%s non ha visto la propria granata"
 
-#: qcsrc/server/w_grenadelauncher.qc:385
+#: qcsrc/server/w_grenadelauncher.qc:390
 #, c-format
-msgid "%s detonated"
-msgstr "%s è detonato"
+msgid "%s blew themself up with their grenadelauncher"
+msgstr "%s si è fatto esplodere con il proprio grenadelauncher"
 
-#: qcsrc/server/w_grenadelauncher.qc:391
+#: qcsrc/server/w_grenadelauncher.qc:396
 #, c-format
 msgid "%s didn't see %s's grenade"
 msgstr "%s non ha visto la granata di %s"
 
-#: qcsrc/server/w_grenadelauncher.qc:393
+#: qcsrc/server/w_grenadelauncher.qc:398
 #, c-format
 msgid "%s almost dodged %s's grenade"
 msgstr "%s ha quasi schivato la granata di %s"
 
-#: qcsrc/server/w_grenadelauncher.qc:395
+#: qcsrc/server/w_grenadelauncher.qc:400
 #, c-format
 msgid "%s ate %s's grenade"
 msgstr "%s ha mangiato la granata di %s"
 
-#: qcsrc/server/w_hagar.qc:395 qcsrc/server/w_seeker.qc:655
+#: qcsrc/server/w_hagar.qc:462
 #, c-format
-msgid "%s played with tiny rockets"
-msgstr "%s ha giocato con piccoli razzi"
+msgid "%s played with tiny hagar rockets"
+msgstr "%s ha giocato con piccoli razzi di hagar"
 
-#: qcsrc/server/w_hagar.qc:399
+#: qcsrc/server/w_hagar.qc:466
 #, c-format
-msgid "%s hoped %s's missiles wouldn't bounce"
-msgstr "%s ha sperato che il missile di %s non rimbalzasse"
+msgid "%s was pummeled with a burst of hagar rockets by %s"
+msgstr "%s è stato preso a pugni con una raffica di razzi di hagar da %s"
 
-#: qcsrc/server/w_hagar.qc:401 qcsrc/server/w_seeker.qc:661
+#: qcsrc/server/w_hagar.qc:468
 #, c-format
-msgid "%s was pummeled by %s"
-msgstr "%s è stato preso a pugni da %s"
+msgid "%s was pummeled with hagar rockets by %s"
+msgstr "%s è stato preso a pugni con razzi di hagar da %s"
 
 #: qcsrc/server/w_hlac.qc:2
 msgid "Heavy Laser Assault Cannon"
@@ -1834,54 +1915,59 @@ msgstr "Heavy Laser Assault Cannon"
 
 #: qcsrc/server/w_hlac.qc:242
 #, c-format
-msgid "%s was cut down by %s"
-msgstr "%s è stato abbattuto da %s"
+msgid "%s was cut down with a HLAC by %s"
+msgstr "%s è stato abbattuto con un HLAC da %s"
 
 #: qcsrc/server/w_hook.qc:2
 msgid "Grappling Hook"
 msgstr "Grappling Hook"
 
-#: qcsrc/server/w_hook.qc:266 qcsrc/server/w_porto.qc:296
+#: qcsrc/server/w_hook.qc:286 qcsrc/server/w_porto.qc:386
 #, c-format
 msgid "%s did the impossible"
 msgstr "%s ha fatto l'impossibile"
 
-#: qcsrc/server/w_hook.qc:268
+#: qcsrc/server/w_hook.qc:288
 #, c-format
-msgid "%s has run into %s's gravity bomb"
-msgstr "%s è corso nella bomba di gravità di %s"
+msgid "%s was caught in %s's hook gravity bomb"
+msgstr "%s è stato catturato nella bomba di gravità di %s"
 
-#: qcsrc/server/w_laser.qc:311
+#: qcsrc/server/w_laser.qc:312
 #, c-format
 msgid "%s lasered themself to hell"
 msgstr "%s si è \"laserato\" all'inferno"
 
-#: qcsrc/server/w_laser.qc:315
+#: qcsrc/server/w_laser.qc:316
 #, c-format
 msgid "%s was cut in half by %s's gauntlet"
 msgstr "%s è stato tagliato a metà dal guanto di %s"
 
-#: qcsrc/server/w_laser.qc:317
+#: qcsrc/server/w_laser.qc:318
 #, c-format
 msgid "%s was lasered to death by %s"
 msgstr "%s è stato \"laserato\" alla morte da %s"
 
-#: qcsrc/server/w_minelayer.qc:523 qcsrc/server/w_rocketlauncher.qc:501
+#: qcsrc/server/w_minelayer.qc:533
+#, c-format
+msgid "%s blew themself up with their minelayer"
+msgstr "%s si è fatto esplodere con il proprio minelayer"
+
+#: qcsrc/server/w_minelayer.qc:535
 #, c-format
-msgid "%s exploded"
-msgstr "%s è esploso"
+msgid "%s forgot about their mine"
+msgstr "%s s'è dimenticato della propria mina"
 
-#: qcsrc/server/w_minelayer.qc:527
+#: qcsrc/server/w_minelayer.qc:539
 #, c-format
 msgid "%s got too close to %s's mine"
 msgstr "%s s'è avvicinato troppo alla mina di %s"
 
-#: qcsrc/server/w_minelayer.qc:529
+#: qcsrc/server/w_minelayer.qc:541
 #, c-format
 msgid "%s almost dodged %s's mine"
 msgstr "%s ha quasi schivato la mina di %s"
 
-#: qcsrc/server/w_minelayer.qc:531
+#: qcsrc/server/w_minelayer.qc:543
 #, c-format
 msgid "%s stepped on %s's mine"
 msgstr "%s è passato sopra la mina di %s"
@@ -1890,68 +1976,70 @@ msgstr "%s è passato sopra la mina di %s"
 msgid "MinstaNex"
 msgstr "MinstaNex"
 
-#: qcsrc/server/w_minstanex.qc:293 qcsrc/server/w_nex.qc:253
-#: qcsrc/server/w_shotgun.qc:215 qcsrc/server/w_uzi.qc:317
+#: qcsrc/server/w_minstanex.qc:295 qcsrc/server/w_nex.qc:256
+#: qcsrc/server/w_rifle.qc:232 qcsrc/server/w_shotgun.qc:271
+#: qcsrc/server/w_uzi.qc:318
 #, c-format
 msgid "%s is now thinking with portals"
 msgstr "%s sta ora pensando con i portali"
 
-#: qcsrc/server/w_minstanex.qc:295 qcsrc/server/w_nex.qc:255
+#: qcsrc/server/w_minstanex.qc:297
 #, c-format
-msgid "%s has been vaporized by %s"
-msgstr "%s è stato vaporizzato da %s"
-
-#: 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"
+msgid "%s has been vaporized by %s's minstanex"
+msgstr "%s è stato vaporizzato dal minstanex di %s"
 
-#: qcsrc/server/w_rifle.qc:233
+#: qcsrc/server/w_nex.qc:258
 #, c-format
-msgid "%s shot themself automatically"
-msgstr "%s si è sparato da solo automaticamente"
+msgid "%s has been vaporized by %s's nex"
+msgstr "%s è stato vaporizzato dal nex di %s"
 
-#: qcsrc/server/w_rifle.qc:235
+#: qcsrc/server/w_porto.qc:388
 #, c-format
-msgid "%s sniped themself somehow"
-msgstr "%s si è fucilato da solo in qualche modo"
+msgid "%s felt %s doing the impossible to him"
+msgstr "%s ha sentito %s fargli l'impossibile"
 
-#: qcsrc/server/w_rifle.qc:242
+#: qcsrc/server/w_rifle.qc:239
 #, c-format
-msgid "%s failed to hide from %s's bullet hail"
-msgstr "%s non è riuscito a nascondersi dalla raffica di proiettili di %s"
+msgid "%s failed to hide from %s's rifle bullet hail"
+msgstr ""
+"%s non è riuscito a nascondersi dalla pioggia di proiettili di rifle di %s"
 
-#: qcsrc/server/w_rifle.qc:244
+#: qcsrc/server/w_rifle.qc:241
 #, c-format
-msgid "%s died in %s's bullet hail"
-msgstr "%s è morto nella raffica di proiettili di %s"
+msgid "%s died in %s's rifle bullet hail"
+msgstr "%s è morto nella pioggia di proiettili di rifle di %s"
 
-#: qcsrc/server/w_rifle.qc:251
+#: qcsrc/server/w_rifle.qc:248
 #, c-format
 msgid "%s failed to hide from %s's rifle"
 msgstr "%s non è riuscito a nascondersi dal fucile di %s"
 
-#: qcsrc/server/w_rifle.qc:256
+#: qcsrc/server/w_rifle.qc:253
 #, c-format
-msgid "%s got hit in the head by %s"
-msgstr "%s ha preso un colpo in testa da %s"
+msgid "%s got shot in the head with a rifle by %s"
+msgstr "%s è stato colpito in testa con un rifle da %s"
 
-#: qcsrc/server/w_rifle.qc:258 qcsrc/server/w_uzi.qc:321
+#: qcsrc/server/w_rifle.qc:255
 #, c-format
-msgid "%s was sniped by %s"
-msgstr "%s è stato fucilato da %s"
+msgid "%s was sniped with a rifle by %s"
+msgstr "%s è stato cecchinato con un rifle da %s"
 
-#: qcsrc/server/w_rocketlauncher.qc:505
+#: qcsrc/server/w_rocketlauncher.qc:466
+#, c-format
+msgid "%s blew themself up with their rocketlauncher"
+msgstr "%s si è fatto esplodere con il proprio rocketlauncher"
+
+#: qcsrc/server/w_rocketlauncher.qc:470
 #, c-format
 msgid "%s got too close to %s's rocket"
 msgstr "%s s'è avvicinato troppo al razzo di %s"
 
-#: qcsrc/server/w_rocketlauncher.qc:507
+#: qcsrc/server/w_rocketlauncher.qc:472
 #, c-format
 msgid "%s almost dodged %s's rocket"
 msgstr "%s ha quasi schivato il razzo di %s"
 
-#: qcsrc/server/w_rocketlauncher.qc:509
+#: qcsrc/server/w_rocketlauncher.qc:474
 #, c-format
 msgid "%s ate %s's rocket"
 msgstr "%s ha mangiato il razzo di %s"
@@ -1960,37 +2048,211 @@ msgstr "%s ha mangiato il razzo di %s"
 msgid "T.A.G. Seeker"
 msgstr "T.A.G. Seeker"
 
-#: qcsrc/server/w_seeker.qc:659
+#: qcsrc/server/w_seeker.qc:661
+#, c-format
+msgid "%s played with tiny seeker rockets"
+msgstr "%s ha giocato con piccoli razzi di seeker"
+
+#: qcsrc/server/w_seeker.qc:665
+#, c-format
+msgid "%s was tagged with a seeker by %s"
+msgstr "%s è stato contrassegnato con un seeker da %s"
+
+#: qcsrc/server/w_seeker.qc:667
 #, c-format
-msgid "%s was tagged by %s"
-msgstr "%s è stato contrassegnato da %s"
+msgid "%s was pummeled with seeker rockets by %s"
+msgstr "%s è stato preso a pugni con razzi di seeker da %s"
 
-#: qcsrc/server/w_shotgun.qc:219
+#: qcsrc/server/w_shotgun.qc:275
 #, 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"
+msgid "%2$s slapped %1$s around a bit with a large shotgun"
+msgstr "%2$s ha schiaffeggiato %1$s un pò con un grosso shotgun"
 
-#: qcsrc/server/w_shotgun.qc:221
+#: qcsrc/server/w_shotgun.qc:277
 #, c-format
-msgid "%s was gunned by %s"
-msgstr "%s è stato sparato da %s"
+msgid "%s was gunned down with a shotgun by %s"
+msgstr "%s è stato freddato con uno shotgun da %s"
 
 #: qcsrc/server/w_tuba.qc:2
 #, c-format
 msgid "@!#%'n Tuba"
 msgstr "@!#%'n Tuba"
 
-#: qcsrc/server/w_tuba.qc:252
+#: qcsrc/server/w_tuba.qc:444
 #, c-format
 msgid "%s hurt his own ears with the @!#%%'n Tuba"
 msgstr "%s s'è fatto male alle orecchie con la @!#%%'n Tuba"
 
-#: qcsrc/server/w_tuba.qc:256
+#: qcsrc/server/w_tuba.qc:447
+#, c-format
+msgid "%s hurt his own ears with the @!#%%'n Accordeon"
+msgstr "%s s'è fatto male alle orecchie con la @!#%%'n Fisarmonica"
+
+#: qcsrc/server/w_tuba.qc:465
 #, 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/server/w_uzi.qc:323
+#: qcsrc/server/w_tuba.qc:468
+#, c-format
+msgid "%s died of %s's great playing on the @!#%%'n Accordeon"
+msgstr "%s è morto nella gran esibizione di %s con la @!#%%'n Fisarmonica"
+
+#: qcsrc/server/w_uzi.qc:322
 #, c-format
-msgid "%s was riddled full of holes by %s"
-msgstr "%s è stato riempito di buchi da %s"
+msgid "%s was sniped by %s's machine gun"
+msgstr "%s è stato cecchinato dalla machine gun di %s"
+
+#: qcsrc/server/w_uzi.qc:324
+#, c-format
+msgid "%s was riddled full of holes by %s's machine gun"
+msgstr "%s è stato riempito di buchi dala machine gun di %s"
+
+#~ msgid "hud_save configname   (saves to hud_skinname_configname.cfg)\n"
+#~ msgstr "hud_save configname   (salva in hud_skinname_configname.cfg)\n"
+
+#~ msgid "Usage: cl_cmd COMMAND..., where possible commands are:\n"
+#~ msgstr "Uso: cl_cmd COMANDO..., dove i possibili comandi sono:\n"
+
+#~ msgid "  settemp cvar value\n"
+#~ msgstr "  settemp cvar value\n"
+
+#~ msgid "  scoreboard_columns_set ...\n"
+#~ msgstr "  scoreboard_columns_set ...\n"
+
+#~ msgid "  scoreboard_columns_help\n"
+#~ msgstr "  scoreboard_columns_help\n"
+
+#~ msgid "A CSQC entity changed its type! (edict: %d, classname: %s)\n"
+#~ msgstr ""
+#~ "Un'entity CSQC ha cambiato il suo tipo! (edict: %d, classname: %s)\n"
+
+#~ msgid "----- Order Menu -----"
+#~ msgstr "----- Menu degli ordini -----"
+
+#~ msgid "Order: %s"
+#~ msgstr "Ordine: %s"
+
+#~ msgid "1) ^3previous page"
+#~ msgstr "1) ^3pagina precedente"
+
+#~ msgid "2) ^3next page"
+#~ msgstr "2) ^3pagina successiva"
+
+#~ msgid "ESC) Exit Menu"
+#~ msgstr "ESC) Esci dal menu"
+
+#~ msgid "Couldn't find player %d\n"
+#~ msgstr "Impossibile trovare il giocatore %d\n"
+
+#~ msgid "----- Command Menu -----"
+#~ msgstr "----- Menu dei comandi -----"
+
+#~ msgid "Issue orders:"
+#~ msgstr "Impartisci ordini:"
+
+#~ msgid " 1) Attack"
+#~ msgstr " 1) Attacca"
+
+#~ msgid " 2) Defend"
+#~ msgstr " 2) Difendi"
+
+#~ msgid "3) Resign from command."
+#~ msgstr "3) Dimettiti dal commando."
+
+#~ msgid "You're commander!"
+#~ msgstr "Sei il comandante!"
+
+#~ msgid "Awaiting orders..."
+#~ msgstr "Attendendo ordini..."
+
+#~ msgid "^1%s^1 was mowed down by a turret \n"
+#~ msgstr "^1%s^1 è stato falciato da una torretta \n"
+
+#~ msgid "^2Name ^7instead of \"^1Unregistered player^7\" in stats"
+#~ msgstr ""
+#~ "^2Nome ^7invece di \"^1Giocatore non registrato^7\" nelle statistiche"
+
+#~ msgid "^2scoreboard_columns_set ^7filed1 field2 ...\n"
+#~ msgstr "^2scoreboard_columns_set ^7campo1 campo2 ...\n"
+
+#~ msgid "^3name^7 or ^3nick^7         Name of a player\n"
+#~ msgstr "^3name^7 o ^3nick^7         Nome di un giocatore\n"
+
+#~ msgid "%s could not remember where they put plasma"
+#~ msgstr "%s non s'è ricordato dove aveva messo il plasma"
+
+#~ msgid "%s played with plasma"
+#~ msgstr "%s ha giocato col plasma"
+
+#~ msgid "%s just noticed %s's blue ball"
+#~ msgstr "%s ha appena notato la palla blu di %s"
+
+#~ msgid "%s got in touch with %s's blue ball"
+#~ msgstr "%s è entrato in contatto con la palla blu di %s"
+
+#~ msgid "%s felt the electrifying air of %s's combo"
+#~ msgstr "%s ha sentito l'aria elettrificata della combo di %s"
+
+#~ msgid "%s got too close to %s's blue beam"
+#~ msgstr "%s s'è avvicinato troppo al raggio blu di %s"
+
+#~ msgid "%s was blasted by %s's blue beam"
+#~ msgstr "%s è stato fatto saltare in aria dal raggio blu di %s"
+
+#~ msgid "%s tried out his own grenade"
+#~ msgstr "%s ha provato da solo la propria granata"
+
+#~ msgid "%s detonated"
+#~ msgstr "%s è detonato"
+
+#~ msgid "%s played with tiny rockets"
+#~ msgstr "%s ha giocato con piccoli razzi"
+
+#~ msgid "%s hoped %s's missiles wouldn't bounce"
+#~ msgstr "%s ha sperato che il missile di %s non rimbalzasse"
+
+#~ msgid "%s was pummeled by %s"
+#~ msgstr "%s è stato preso a pugni da %s"
+
+#~ msgid "%s was cut down by %s"
+#~ msgstr "%s è stato abbattuto da %s"
+
+#~ msgid "%s has run into %s's gravity bomb"
+#~ msgstr "%s è corso nella bomba di gravità di %s"
+
+#~ msgid "%s exploded"
+#~ msgstr "%s è esploso"
+
+#~ msgid "%s has been vaporized by %s"
+#~ msgstr "%s è stato vaporizzato da %s"
+
+#~ msgid "%s shot themself automatically"
+#~ msgstr "%s si è sparato da solo automaticamente"
+
+#~ msgid "%s sniped themself somehow"
+#~ msgstr "%s si è fucilato da solo in qualche modo"
+
+#~ msgid "%s failed to hide from %s's bullet hail"
+#~ msgstr "%s non è riuscito a nascondersi dalla raffica di proiettili di %s"
+
+#~ msgid "%s died in %s's bullet hail"
+#~ msgstr "%s è morto nella raffica di proiettili di %s"
+
+#~ msgid "%s got hit in the head by %s"
+#~ msgstr "%s ha preso un colpo in testa da %s"
+
+#~ msgid "%s was sniped by %s"
+#~ msgstr "%s è stato fucilato da %s"
+
+#~ msgid "%s was tagged by %s"
+#~ msgstr "%s è stato contrassegnato da %s"
+
+#~ 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"
+
+#~ msgid "%s was gunned by %s"
+#~ msgstr "%s è stato sparato da %s"
+
+#~ msgid "%s was riddled full of holes by %s"
+#~ msgstr "%s è stato riempito di buchi da %s"
index 06ddd852aee06d6fc8adfc0329137e773aa3a8bc..1f3bb42a2b6947c3de6ffbef22bc7c51c4939e8a 100644 (file)
@@ -10,7 +10,7 @@
 // e.g. Xonotic 1.5.1 RC1 will be 15101
 set g_xonoticversion git "Xonotic version (formatted for humans)"
 
-gameversion 500 // 0.5.0
+gameversion 600 // 0.6.0
 gameversion_min 0 // git builds see all versions
 gameversion_max 65535 // git builds see all versions
 
@@ -86,6 +86,8 @@ vid_fullscreen 1
 vid_width 1024
 vid_height 768
 vid_pixelheight 1
+prvm_language en
+set _menu_prvm_language ""
 set _menu_vid_width "$vid_width"
 set _menu_vid_height "$vid_height"
 set _menu_vid_pixelheight "$vid_pixelheight"
@@ -104,14 +106,17 @@ r_hdr_glowintensity 1
 // 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 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
-cl_bob2 0.01 // how much view moves left/right when moving (does not move if cl_bob2cycle is 0), default is 0.01
+cl_bobcycle 0.5 // 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 // 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 1 // how long the cycle of left/right view movement takes (only works if cl_bob2 is not 0), default is 0.6
+cl_bob2 0 // how much view moves left/right when moving (does not move if cl_bob2cycle is 0), default is 0.01
 cl_bobfall 0.05 "how much the view swings down when falling (influenced by the speed you hit the ground with)"
 cl_bobfallcycle 3 "speed of the bobfall swing"
 cl_bobfallspeed 200 "necessary amount of speed for bob-falling to occur"
 cl_bobmodel 1 // whether to have gun model move around on screen when moving (only works if cl_bob is not 0), default is 1
+cl_bobmodel_side 0.2 // amount the gun sways to the sides
+cl_bobmodel_speed 5 // rate at which the gun sways
+cl_bobmodel_up 0.1 // amount the gun sways up and down
 cl_leanmodel 1 // enables weapon leaning effect when looking around
 cl_leanmodel_side_speed 0.7 "gun leaning sideways speed"
 cl_leanmodel_side_limit 35 "gun leaning sideways limit"
@@ -187,7 +192,7 @@ set g_warmup_allguns 1      "if set players start with all guns in warmup mode"
 set g_warmup_majority_factor 0.8 "minimum percentage of players ready needed for warmup to end"
 
 set g_chat_nospectators 0      "if 0 spec/observer chat is always visible to the player, if 1 it is never visible to players, if 2 it is only visible to players during warmup stage"
-set sv_vote_nospectators 0     "if set only players can call a vote (thus spectators and observers can't call a vote)"
+set sv_vote_nospectators 0     "Only players can call a vote (thus spectators and observers can't call a vote): 0 = all people can vote, 1 = spectators can vote in warmup stage, 2 = only players can vote (no exceptions)."
 
 alias g_tourney "g_tourney_$1"
 alias g_tourney_1 "g_warmup 1; g_chat_nospectators 2; sv_vote_nospectators 1"
@@ -470,6 +475,13 @@ seta g_keyhunt_point_leadlimit -1  "Keyhunt point lead limit overriding the mapin
 seta g_race_laps_limit -1      "Race laps limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
 seta g_nexball_goallimit -1 "Nexball goal limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
 seta g_nexball_goalleadlimit -1 "Nexball goal lead limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
+seta g_nexball_safepass_maxdist 5000    // Max distance to allow save fassping (0 to turn off safe passing)
+seta g_nexball_safepass_turnrate 0.1    // How fast the safe-pass ball can habge direction
+seta g_nexball_safepass_holdtime 0.75   // How long to remeber last teammate you pointed at
+seta g_nexball_viewmodel_scale 0.25     // How large the ball for the carrier
+seta g_nexball_viewmodel_offset "8 8 0" // Where the ball is located on carrier "forward right up"
+seta g_nexball_tackling 1               // Allow ball theft?
+
 
 seta g_ctf_ignore_frags 0      "1: regular frags give no points"
 
@@ -509,6 +521,9 @@ set g_rune_weapon_stay 0
 set g_tdm_respawn_delay 0
 set g_tdm_respawn_waves 0
 set g_tdm_weapon_stay 0
+set g_ka_respawn_delay 0
+set g_ka_respawn_waves 0
+set g_ka_weapon_stay 0
 set g_kh_respawn_delay 0
 set g_kh_respawn_waves 0
 set g_kh_weapon_stay 0
@@ -520,9 +535,9 @@ set g_ca_respawn_waves 0
 set g_ca_weapon_stay 0
 set g_ca_damage2score_multiplier 0.01
 set g_ca_round_timelimit 180
-set g_nexball_respawn_delay 0
-set g_nexball_respawn_waves 0
-set g_nexball_weapon_stay 0
+set g_nb_respawn_delay 0
+set g_nb_respawn_waves 0
+set g_nb_weapon_stay 0
 set g_as_respawn_delay 0
 set g_as_respawn_waves 0
 set g_as_weapon_stay 0
@@ -537,12 +552,9 @@ set g_cts_respawn_delay 0
 set g_cts_selfdamage 1 "0 = disable all selfdamage and falldamage in cts"
 set g_cts_finish_kill_delay 10 "prevent cheating by running back to the start line, and starting out with more speed than otherwise possible"
 set g_cts_weapon_stay 2
-set g_freezetag_respawn_waves 0
-set g_freezetag_respawn_delay 0
-set g_freezetag_weapon_stay 0
-set g_keepaway_respawn_delay 0
-set g_keepaway_respawn_waves 0
-set g_keepaway_weapon_stay 0
+set g_ft_respawn_waves 0
+set g_ft_respawn_delay 0
+set g_ft_weapon_stay 0
 
 // overtime
 seta timelimit_overtime 2 "duration in minutes of one added overtime, added to the timelimit"
@@ -781,9 +793,26 @@ set g_multijump 0  "Number of multiple jumps to allow (jumping again in the air),
 set g_multijump_add 0  "0 = make the current z velocity equal to jumpvelocity, 1 = add jumpvelocity to the current z velocity"
 set g_multijump_speed -999999  "Minimum vertical speed a player must have in order to jump again"
 
+set g_throughfloor_debug 0 "enable debugging messages for throughfloor calculations"
+set g_throughfloor_damage_max_stddev 2 "Maximum standard deviation for splash damage"
+set g_throughfloor_force_max_stddev 10 "Maximum standard deviation for splash force"
+set g_throughfloor_min_steps_player 1 "Minimum number of steps for splash damage"
+set g_throughfloor_min_steps_other 1 "Minimum number of steps for splash damage"
+set g_throughfloor_max_steps_player 100 "Maximum number of steps for splash damage"
+set g_throughfloor_max_steps_other 10 "Maximum number of steps for splash damage"
+// note: for damage X, 0.25 * ((1-g_throughfloor_damage)*X / g_throughfloor_damage_max_stddev)^2 steps are used
+// for these numbers:
+//   damage  25: 3
+//   damage  60: 15
+//   damage  80: 25
+//   damage 200: 157
+//   force  250: 10
+//   force  300: 15
+//   force  600: 57
+
 // effects
 r_glsl_vertextextureblend_usebothalphas 1 // allows to abuse texture blending as detail texture
-r_glsl_postprocess 1
+r_glsl_postprocess 0 // but note, hud_postprocessing enables this
 r_picmipsprites 0 // Xonotic uses sprites that should never be picmipped (team mate, typing, waypoints)
 r_picmipworld 1
 gl_picmip_world 0
@@ -1024,6 +1053,7 @@ set nextmap ""    "override the maplist when switching to the next map"
 set lastlevel ""
 set quit_when_empty 0  "set to 1, then the server exits when the next level would start but is empty"
 set quit_and_redirect ""       "set to an IP to redirect all players at the end of the match to another server. Set to \"self\" to let all players reconnect at the end of the match (use it to make seamless engine updates)"
+set quit_and_redirect_timer 1.5 "set to number of seconds after quit before performing the connect operation of quit_and_redirect"
 
 // singleplayer campaign
 set g_campaign 0
@@ -1330,7 +1360,7 @@ set con_completion_vnextmap       map
 set con_completion_vdomap      map
 set con_completion_playermodel models/player/*.iqm
 
-// these non-saved engine cvars shall be savedG
+// these non-saved engine cvars shall be saved
 seta cl_port $cl_port
 seta r_showsurfaces $r_showsurfaces
 seta r_ambient $r_ambient
@@ -1342,6 +1372,7 @@ seta vid_gl20 $vid_gl20
 seta vid_gl13 $vid_gl13
 seta r_drawviewmodel $r_drawviewmodel
 seta v_idlescale $v_idlescale
+seta net_slist_queriespersecond $net_slist_queriespersecond
 
 // ticrate
 //sys_ticrate 0.0166667
@@ -1551,14 +1582,16 @@ set cl_effects_lightningarc_branchfactor_add 0.1
 set g_hitplots 0 "when set to 1, hitplots are stored by the server to provide a means of proving that a triggerbot was used"
 seta g_hitplots_individuals "" "the individuals, by IP, that should have their hitplots recorded"
 
-set menu_updatecheck 1
+set menu_updatecheck 1 "check for updates"
+set menu_updatecheck_getpacks 1 "get update packs from update server"
 
 set bot_navigation_ignoreplayers 0 // FIXME remove this once the issue is solved
 set bot_sound_monopoly 0 "when enabled, only bots can make any noise"
 
-set sv_loddistance1 1024
-set sv_loddistance2 4096
-seta cl_playerdetailreduction 0        "the higher, the less detailed player models are displayed (LOD)"
+set cl_loddistance1 1024
+set cl_loddistance2 3072
+seta cl_playerdetailreduction 1        "the higher, the less detailed player models are displayed (LOD)"
+seta cl_modeldetailreduction 1 "the higher, the less detailed certain map models are displayed (LOD)"
 
 set g_mapinfo_settemp_acl "+*" "ACL for mapinfo setting cvars"
 
@@ -1579,10 +1612,10 @@ alias cl_hook_gamestart_kh
 alias cl_hook_gamestart_ons
 alias cl_hook_gamestart_as
 alias cl_hook_gamestart_rc
-alias cl_hook_gamestart_nexball
+alias cl_hook_gamestart_nb
 alias cl_hook_gamestart_cts
 alias cl_hook_gamestart_ka
-alias cl_hook_gamestart_freezetag
+alias cl_hook_gamestart_ft
 alias cl_hook_gameend
 alias cl_hook_activeweapon
 
@@ -1601,10 +1634,10 @@ alias sv_hook_gamestart_kh
 alias sv_hook_gamestart_ons
 alias sv_hook_gamestart_as
 alias sv_hook_gamestart_rc
-alias sv_hook_gamestart_nexball
+alias sv_hook_gamestart_nb
 alias sv_hook_gamestart_cts
 alias sv_hook_gamestart_ka
-alias sv_hook_gamestart_freezetag
+alias sv_hook_gamestart_ft
 alias sv_hook_gamerestart
 alias sv_hook_gameend
 
@@ -1612,6 +1645,9 @@ seta cl_casings_maxcount 100 "maximum amount of shell casings (must be at least
 seta cl_gibs_maxcount 100 "maximum amount of gibs (must be at least 1)"
 seta cl_vehicle_spiderbot_cross_alpha 0.6
 seta cl_vehicle_spiderbot_cross_size 1
+seta cl_vehicles_hudscale 0.5 
+seta cl_vehicles_hudalpha 0.75
+seta cl_vehicles_hud_tactical 1
 
 //cl_gunalign calculator
 seta menu_cl_gunalign 3 "Gun alignment; 1 = center (if allowed by g_shootfromclient) or right, 2 = center (if allowed by g_shootfromclient) or left, 3 = right only, 4 = left only"
@@ -1626,6 +1662,7 @@ alias _gunalign_14 "cl_gunalign 3"
 alias _gunalign_update "_gunalign_$v_flipped$menu_cl_gunalign"
 
 set _menu_alpha "" // will be set by menu QC to the current fading of the menu, can be used by CSQC to fade items
+set _menu_initialized 0 "is 0 on first menu loading, 1 later"
 
 set g_triggerimpulse_accel_power 1 "trigger_impulse accelerator power (applied BEFORE the multiplier)"
 set g_triggerimpulse_accel_multiplier 1 "trigger_impulse accelerator multiplier (applied AFTER the power)"
@@ -1633,9 +1670,6 @@ set g_triggerimpulse_directional_multiplier 1 "trigger_impulse directional field
 set g_triggerimpulse_radial_multiplier 1 "trigger_impulse radial field multiplier"
 set the_goggles "they do nothing" "but the googles, they do"
 
-set g_ghost_items 1 "enable ghosted items (when between 0 and 1, overrides the alpha value)"
-set g_ghost_items_color "-1 -1 -1" "color of ghosted items, 0 0 0 leaves the color unchanged"
-
 set sv_weaponstats_file "" "when set to a file name, per-weapon stats get written to that file"
 
 seta cl_noantilag 0 "turn this on if you believe antilag is bad"
@@ -1681,6 +1715,7 @@ set _origin "0 0 0"
 // campaign internal, set when loading a campaign map1G
 set _campaign_index ""
 set _campaign_name ""
+set _campaign_testrun 0 "To verify the campaign file, set this to 1, then start the first campaign level from the menu. If you end up in the menu again, it's good, if you get a QC crash, it's bad."
 
 // debug
 set _independent_players 0 "DO NOT TOUCH"
@@ -1728,7 +1763,6 @@ cl_decals_newsystem 1
 set g_weaponreplace_laser ""
 set g_weaponreplace_shotgun ""
 set g_weaponreplace_uzi ""
-set g_weaponreplace_minelayer ""
 set g_weaponreplace_grenadelauncher ""
 set g_weaponreplace_electro ""
 set g_weaponreplace_crylink ""
@@ -1738,11 +1772,8 @@ set g_weaponreplace_rocketlauncher ""
 set g_weaponreplace_porto ""
 set g_weaponreplace_minstanex ""
 set g_weaponreplace_hook ""
-set g_weaponreplace_hlac ""
-set g_weaponreplace_rifle ""
 set g_weaponreplace_tuba ""
 set g_weaponreplace_fireball ""
-set g_weaponreplace_seeker ""
 set sv_q3acompat_machineshotgunswap 0 "shorthand for swapping uzi and shotgun (for Q3A map compatibility in mapinfo files)"
 
 set g_movement_highspeed 1 "movement speed modification factor (only changes movement when above maxspeed)"
@@ -1855,6 +1886,12 @@ set g_playerstats_debug 0 "when 1, player stats are dumped to the console too"
 // autoscreenshots
 set g_max_info_autoscreenshot 3 "how many info_autoscreenshot entities are allowed"
 
+// mod names for server browser
+// note: the lowest of these that mismatches default is used
+set g_mod_physics "" "Current physics config name"
+set g_mod_balance "" "Current balance config name"
+set g_mod_config  "" "Current config mod name"
+
 // session locking
 locksession 1
 
@@ -1881,12 +1918,14 @@ snd_identicalsoundrandomization_tics    1
 scr_loadingscreen_background 0
 scr_loadingscreen_barcolor "0 0.5 1"
 scr_loadingscreen_barheight 12
-scr_loadingscreen_count 13
+scr_loadingscreen_count 14
+scr_loadingscreen_firstforstartup 1
 scr_loadingscreen_scale 999
 scr_loadingscreen_scale_base 1
 scr_loadingscreen_scale_limit 2
 
 // other config files
+exec mutator_new_toys.cfg // run BEFORE balance to make sure balance wins
 exec balanceXonotic.cfg
 exec ctfscoring-ai.cfg
 exec effects-normal.cfg
@@ -1914,3 +1953,14 @@ if_dedicated set g_start_delay 15        "delay before the game starts, so everyone can
 
 // enable menu syncing
 alias menu_sync "menu_cmd sync"
+
+set sv_join_notices ""
+set sv_join_notices_time 15
+
+set cl_ghost_items 0.45 "enable ghosted items (when between 0 and 1, overrides the alpha value)"
+set cl_ghost_items_color "-1 -1 -1" "color of ghosted items, 0 0 0 leaves the color unchanged"
+set sv_simple_items 1 "allow or forbid client use of simple items"
+set cl_simple_items 0 "enable simple items (if server allows)"
+set cl_fullbright_items 0 "enable fullbright items (if server allows, controled by g_fullbrightitems)"
+set cl_weapon_stay_color "2 0.5 0.5" "Color of picked up weapons when g_weapon_stay > 0"
+set cl_weapon_stay_alpha 0.75 "Alpha of picked up weapons when g_weapon_stay > 0"
index 8b555fa8981d60492509837fcaa7810ef6ef7933..5e06d075e6bf292b1c41e3889b90412272a78dd0 100644 (file)
@@ -7387,3 +7387,26 @@ trailspacing 8
 lightradius 60
 lightradiusfade 280
 lightcolor 0.8 0.6 0.2*/
+
+// fireflies
+// used nowhere in code
+effect fireflies
+count 1
+bounce -1
+airfriction 5
+time 1 2
+type static
+tex 38 38
+color 0xff9600 0xffefb8
+size 2 3
+sizeincrease -0.3
+alpha 256 256 70
+gravity 0
+originoffset 8 8 8
+originjitter 32 32 32
+velocityoffset 2 2 2
+velocityjitter 64 64 64
+//lightradius 50
+//lightradiusfade 50
+//lightcolor 1 0.9 0.7
+//lightshadow 1
index 65ef997b26aa34996369b095825ef37e9f429194..0c095482661bad962ccf801db08d056cf65d3aa6 100644 (file)
@@ -3,6 +3,7 @@ cl_decals_models 0
 cl_decals_time 4
 cl_particles_quality 1
 cl_damageeffect 1
+cl_playerdetailreduction 0.5
 gl_flashblend 0
 gl_picmip -1
 mod_q3bsp_nolightmaps 0
index 4b0cf628198fbb80add620134d97be16a9ff41af..1569bc3df01fc5ec1d0622a85ba40136de0e9b4c 100644 (file)
@@ -3,6 +3,7 @@ cl_decals_models 0
 cl_decals_time 2
 cl_particles_quality 0.4
 cl_damageeffect 0
+cl_playerdetailreduction 2
 gl_flashblend 1
 gl_picmip 1
 mod_q3bsp_nolightmaps 1
index e4882b8c00f68701d8e0ecb4c03cb81206c27b31..0d006a9979d12a37dda32ce60ac063fd889db006 100644 (file)
@@ -3,6 +3,7 @@ cl_decals_models 0
 cl_decals_time 2
 cl_particles_quality 1
 cl_damageeffect 0
+cl_playerdetailreduction 1
 gl_flashblend 0
 gl_picmip 0
 mod_q3bsp_nolightmaps 0
index 64543bcc42d45bd6d75c222b344c4f2c7bfc799c..f421a10ec0f6214f5c93cf10ced721b268695cd1 100644 (file)
@@ -3,6 +3,7 @@ cl_decals_models 0
 cl_decals_time 2
 cl_particles_quality 1
 cl_damageeffect 1
+cl_playerdetailreduction 1
 gl_flashblend 0
 gl_picmip 0
 mod_q3bsp_nolightmaps 0
index 902266ca4830d505a8575d992076adb3d6b6ca70..c4a6895cec4eab4fcf325d5c359425b3c8c000eb 100644 (file)
@@ -3,6 +3,7 @@ cl_decals_models 0
 cl_decals_time 2
 cl_particles_quality 0.4
 cl_damageeffect 0
+cl_playerdetailreduction 4
 gl_flashblend 1
 gl_picmip 1337
 mod_q3bsp_nolightmaps 1
index ec949193cf919b8192e7e8c2669878a52fc8ecd3..8150ee14cef6f16da456a8c9d104d243731d8875 100644 (file)
@@ -3,6 +3,7 @@ cl_decals_models 1
 cl_decals_time 10
 cl_particles_quality 1
 cl_damageeffect 2
+cl_playerdetailreduction 0
 gl_flashblend 0
 gl_picmip -1
 mod_q3bsp_nolightmaps 0
index 48c17c3a31eb5961a510d3872f9f9b20d650c16e..f92230f16f04f10ecf7df6656e7aedad21a08536 100644 (file)
@@ -1,8 +1,9 @@
 cl_decals 1
-cl_decals_models 1
+cl_decals_models 0
 cl_decals_time 10
 cl_particles_quality 1
 cl_damageeffect 1
+cl_playerdetailreduction 0
 gl_flashblend 0
 gl_picmip -1
 mod_q3bsp_nolightmaps 0
diff --git a/gfx/hud/default/key_atck.tga b/gfx/hud/default/key_atck.tga
new file mode 100644 (file)
index 0000000..40a12dc
Binary files /dev/null and b/gfx/hud/default/key_atck.tga differ
diff --git a/gfx/hud/default/key_atck2.tga b/gfx/hud/default/key_atck2.tga
new file mode 100644 (file)
index 0000000..40a12dc
Binary files /dev/null and b/gfx/hud/default/key_atck2.tga differ
diff --git a/gfx/hud/default/key_atck2_inv.tga b/gfx/hud/default/key_atck2_inv.tga
new file mode 100644 (file)
index 0000000..c1f6e42
Binary files /dev/null and b/gfx/hud/default/key_atck2_inv.tga differ
diff --git a/gfx/hud/default/key_atck_inv.tga b/gfx/hud/default/key_atck_inv.tga
new file mode 100644 (file)
index 0000000..c1f6e42
Binary files /dev/null and b/gfx/hud/default/key_atck_inv.tga differ
diff --git a/gfx/hud/default/weapon_hlacmod_renameit.tga b/gfx/hud/default/weapon_hlacmod_renameit.tga
deleted file mode 100644 (file)
index 601f3d7..0000000
Binary files a/gfx/hud/default/weapon_hlacmod_renameit.tga and /dev/null differ
diff --git a/gfx/hud/luminos/weapon_hlacmod_renameit.tga b/gfx/hud/luminos/weapon_hlacmod_renameit.tga
deleted file mode 100644 (file)
index 601f3d7..0000000
Binary files a/gfx/hud/luminos/weapon_hlacmod_renameit.tga and /dev/null differ
diff --git a/gfx/hud/old/weapon_hlacmod_renameit.tga b/gfx/hud/old/weapon_hlacmod_renameit.tga
deleted file mode 100644 (file)
index 503dad9..0000000
Binary files a/gfx/hud/old/weapon_hlacmod_renameit.tga and /dev/null differ
index 3b0020261a75ecc9c9a4ac911b7f7d9616c72e4c..8f2b062712e3d4b1cab7263c7e22a3b9528704e0 100644 (file)
Binary files a/gfx/loading.tga and b/gfx/loading.tga differ
diff --git a/gfx/loading14.tga b/gfx/loading14.tga
new file mode 100644 (file)
index 0000000..3b00202
Binary files /dev/null and b/gfx/loading14.tga differ
diff --git a/gfx/menu/luminos/gametype_freezetag.tga b/gfx/menu/luminos/gametype_freezetag.tga
deleted file mode 100644 (file)
index 8028b67..0000000
Binary files a/gfx/menu/luminos/gametype_freezetag.tga and /dev/null differ
diff --git a/gfx/menu/luminos/gametype_ft.tga b/gfx/menu/luminos/gametype_ft.tga
new file mode 100644 (file)
index 0000000..8028b67
Binary files /dev/null and b/gfx/menu/luminos/gametype_ft.tga differ
diff --git a/gfx/menu/luminos/gametype_ka.tga b/gfx/menu/luminos/gametype_ka.tga
new file mode 100644 (file)
index 0000000..21e472c
Binary files /dev/null and b/gfx/menu/luminos/gametype_ka.tga differ
diff --git a/gfx/menu/luminos/gametype_keepaway.tga b/gfx/menu/luminos/gametype_keepaway.tga
deleted file mode 100644 (file)
index 21e472c..0000000
Binary files a/gfx/menu/luminos/gametype_keepaway.tga and /dev/null differ
diff --git a/gfx/menu/luminos/gametype_nb.tga b/gfx/menu/luminos/gametype_nb.tga
new file mode 100644 (file)
index 0000000..b4f7441
Binary files /dev/null and b/gfx/menu/luminos/gametype_nb.tga differ
diff --git a/gfx/menu/luminos/gametype_nexball.tga b/gfx/menu/luminos/gametype_nexball.tga
deleted file mode 100644 (file)
index b4f7441..0000000
Binary files a/gfx/menu/luminos/gametype_nexball.tga and /dev/null differ
diff --git a/gfx/menu/luminos/icon_mod_.tga b/gfx/menu/luminos/icon_mod_.tga
new file mode 100644 (file)
index 0000000..0b31a34
Binary files /dev/null and b/gfx/menu/luminos/icon_mod_.tga differ
diff --git a/gfx/menu/luminos/icon_mod_MinstaGib.tga b/gfx/menu/luminos/icon_mod_MinstaGib.tga
new file mode 100644 (file)
index 0000000..518fd79
Binary files /dev/null and b/gfx/menu/luminos/icon_mod_MinstaGib.tga differ
diff --git a/gfx/menu/luminos/icon_mod_NewToys.tga b/gfx/menu/luminos/icon_mod_NewToys.tga
new file mode 100644 (file)
index 0000000..cf88f77
Binary files /dev/null and b/gfx/menu/luminos/icon_mod_NewToys.tga differ
diff --git a/gfx/menu/luminos/icon_mod_Overkill.tga b/gfx/menu/luminos/icon_mod_Overkill.tga
new file mode 100644 (file)
index 0000000..743722e
Binary files /dev/null and b/gfx/menu/luminos/icon_mod_Overkill.tga differ
diff --git a/gfx/menu/wickedx/gametype_freezetag.tga b/gfx/menu/wickedx/gametype_freezetag.tga
deleted file mode 100644 (file)
index 8028b67..0000000
Binary files a/gfx/menu/wickedx/gametype_freezetag.tga and /dev/null differ
diff --git a/gfx/menu/wickedx/gametype_ft.tga b/gfx/menu/wickedx/gametype_ft.tga
new file mode 100644 (file)
index 0000000..8028b67
Binary files /dev/null and b/gfx/menu/wickedx/gametype_ft.tga differ
diff --git a/gfx/menu/wickedx/gametype_ka.tga b/gfx/menu/wickedx/gametype_ka.tga
new file mode 100644 (file)
index 0000000..21e472c
Binary files /dev/null and b/gfx/menu/wickedx/gametype_ka.tga differ
diff --git a/gfx/menu/wickedx/gametype_keepaway.tga b/gfx/menu/wickedx/gametype_keepaway.tga
deleted file mode 100644 (file)
index 21e472c..0000000
Binary files a/gfx/menu/wickedx/gametype_keepaway.tga and /dev/null differ
diff --git a/gfx/menu/wickedx/gametype_nb.tga b/gfx/menu/wickedx/gametype_nb.tga
new file mode 100644 (file)
index 0000000..b4f7441
Binary files /dev/null and b/gfx/menu/wickedx/gametype_nb.tga differ
diff --git a/gfx/menu/wickedx/gametype_nexball.tga b/gfx/menu/wickedx/gametype_nexball.tga
deleted file mode 100644 (file)
index b4f7441..0000000
Binary files a/gfx/menu/wickedx/gametype_nexball.tga and /dev/null differ
diff --git a/gfx/menu/wickedx/icon_mod_.tga b/gfx/menu/wickedx/icon_mod_.tga
new file mode 100644 (file)
index 0000000..0b31a34
Binary files /dev/null and b/gfx/menu/wickedx/icon_mod_.tga differ
diff --git a/gfx/menu/wickedx/icon_mod_MinstaGib.tga b/gfx/menu/wickedx/icon_mod_MinstaGib.tga
new file mode 100644 (file)
index 0000000..518fd79
Binary files /dev/null and b/gfx/menu/wickedx/icon_mod_MinstaGib.tga differ
diff --git a/gfx/menu/wickedx/icon_mod_NewToys.tga b/gfx/menu/wickedx/icon_mod_NewToys.tga
new file mode 100644 (file)
index 0000000..cf88f77
Binary files /dev/null and b/gfx/menu/wickedx/icon_mod_NewToys.tga differ
diff --git a/gfx/menu/wickedx/icon_mod_Overkill.tga b/gfx/menu/wickedx/icon_mod_Overkill.tga
new file mode 100644 (file)
index 0000000..743722e
Binary files /dev/null and b/gfx/menu/wickedx/icon_mod_Overkill.tga differ
diff --git a/gfx/menu/xaw/gametype_freezetag.tga b/gfx/menu/xaw/gametype_freezetag.tga
deleted file mode 100644 (file)
index cfcea61..0000000
Binary files a/gfx/menu/xaw/gametype_freezetag.tga and /dev/null differ
diff --git a/gfx/menu/xaw/gametype_ft.tga b/gfx/menu/xaw/gametype_ft.tga
new file mode 100644 (file)
index 0000000..cfcea61
Binary files /dev/null and b/gfx/menu/xaw/gametype_ft.tga differ
diff --git a/gfx/menu/xaw/gametype_ka.tga b/gfx/menu/xaw/gametype_ka.tga
new file mode 100644 (file)
index 0000000..c65ffba
Binary files /dev/null and b/gfx/menu/xaw/gametype_ka.tga differ
diff --git a/gfx/menu/xaw/gametype_keepaway.tga b/gfx/menu/xaw/gametype_keepaway.tga
deleted file mode 100644 (file)
index c65ffba..0000000
Binary files a/gfx/menu/xaw/gametype_keepaway.tga and /dev/null differ
diff --git a/gfx/menu/xaw/gametype_nb.tga b/gfx/menu/xaw/gametype_nb.tga
new file mode 100644 (file)
index 0000000..fa4bf49
Binary files /dev/null and b/gfx/menu/xaw/gametype_nb.tga differ
diff --git a/gfx/menu/xaw/gametype_nexball.tga b/gfx/menu/xaw/gametype_nexball.tga
deleted file mode 100644 (file)
index fa4bf49..0000000
Binary files a/gfx/menu/xaw/gametype_nexball.tga and /dev/null differ
diff --git a/gfx/menu/xaw/icon_mod_.tga b/gfx/menu/xaw/icon_mod_.tga
new file mode 100644 (file)
index 0000000..0b31a34
Binary files /dev/null and b/gfx/menu/xaw/icon_mod_.tga differ
diff --git a/gfx/menu/xaw/icon_mod_MinstaGib.tga b/gfx/menu/xaw/icon_mod_MinstaGib.tga
new file mode 100644 (file)
index 0000000..518fd79
Binary files /dev/null and b/gfx/menu/xaw/icon_mod_MinstaGib.tga differ
diff --git a/gfx/menu/xaw/icon_mod_NewToys.tga b/gfx/menu/xaw/icon_mod_NewToys.tga
new file mode 100644 (file)
index 0000000..cf88f77
Binary files /dev/null and b/gfx/menu/xaw/icon_mod_NewToys.tga differ
diff --git a/gfx/menu/xaw/icon_mod_Overkill.tga b/gfx/menu/xaw/icon_mod_Overkill.tga
new file mode 100644 (file)
index 0000000..743722e
Binary files /dev/null and b/gfx/menu/xaw/icon_mod_Overkill.tga differ
diff --git a/gfx/vehicles/vth-mover.tga b/gfx/vehicles/vth-mover.tga
new file mode 100644 (file)
index 0000000..d831896
Binary files /dev/null and b/gfx/vehicles/vth-mover.tga differ
diff --git a/gfx/vehicles/vth-stationary.tga b/gfx/vehicles/vth-stationary.tga
new file mode 100644 (file)
index 0000000..31703bc
Binary files /dev/null and b/gfx/vehicles/vth-stationary.tga differ
index 25e7dea1fd2de150e8ecfcfe8b4b0c55bdc90d7f..6472a257963fad8c9526546031d3d6e7c716779f 100644 (file)
@@ -173,9 +173,9 @@ seta hud_panel_racetimer_bg_border ""
 seta hud_panel_racetimer_bg_padding ""
 
 seta hud_panel_vote 1
-seta hud_panel_vote_pos "0.710000 0.660000"
-seta hud_panel_vote_size "0.210000 0.100000"
-seta hud_panel_vote_bg ""
+seta hud_panel_vote_pos "0.720000 0.670000"
+seta hud_panel_vote_size "0.190000 0.090000"
+seta hud_panel_vote_bg "border_vote"
 seta hud_panel_vote_bg_color ""
 seta hud_panel_vote_bg_color_team ""
 seta hud_panel_vote_bg_alpha ""
@@ -204,6 +204,7 @@ seta hud_panel_pressedkeys_bg_alpha ""
 seta hud_panel_pressedkeys_bg_border ""
 seta hud_panel_pressedkeys_bg_padding ""
 seta hud_panel_pressedkeys_aspect "1.600000"
+seta hud_panel_pressedkeys_attack "0"
 
 seta hud_panel_chat 1
 seta hud_panel_chat_pos "0.010000 0.700000"
@@ -258,8 +259,11 @@ seta hud_panel_physics_acceleration_vertical "0"
 seta hud_panel_physics_flip "0"
 seta hud_panel_physics_baralign "0"
 seta hud_panel_physics_progressbar "1"
-seta hud_panel_physics_acceleration_mode "0"
+seta hud_panel_physics_acceleration_progressbar_mode "0"
+seta hud_panel_physics_acceleration_progressbar_scale "1"
+seta hud_panel_physics_acceleration_progressbar_nonlinear "0"
 seta hud_panel_physics_text "1"
+seta hud_panel_physics_text_scale "0.7"
 
 seta hud_panel_centerprint 1
 seta hud_panel_centerprint_pos "0.175000 0.220000"
index 05a11b4e92981b095ed9441cd1ba20c488ecab19..bb7e0662e32e3bcbce1060385a3f0d42a6961549 100644 (file)
@@ -204,6 +204,7 @@ seta hud_panel_pressedkeys_bg_alpha ""
 seta hud_panel_pressedkeys_bg_border ""
 seta hud_panel_pressedkeys_bg_padding ""
 seta hud_panel_pressedkeys_aspect "1.600000"
+seta hud_panel_pressedkeys_attack "0"
 
 seta hud_panel_chat 1
 seta hud_panel_chat_pos "0 0.775000"
@@ -258,8 +259,11 @@ seta hud_panel_physics_acceleration_vertical "0"
 seta hud_panel_physics_flip "0"
 seta hud_panel_physics_baralign "0"
 seta hud_panel_physics_progressbar "3"
-seta hud_panel_physics_acceleration_mode "0"
+seta hud_panel_physics_acceleration_progressbar_mode "0"
+seta hud_panel_physics_acceleration_progressbar_scale "1"
+seta hud_panel_physics_acceleration_progressbar_nonlinear "0"
 seta hud_panel_physics_text "1"
+seta hud_panel_physics_text_scale "0.7"
 
 seta hud_panel_centerprint 1
 seta hud_panel_centerprint_pos "0.175000 0.220000"
index 3774b9cbd68fec029181173523481ed2b1d00b2b..e0921ad35337d272f8e0c91a0032864349981cac 100644 (file)
@@ -204,6 +204,7 @@ seta hud_panel_pressedkeys_bg_alpha ""
 seta hud_panel_pressedkeys_bg_border ""
 seta hud_panel_pressedkeys_bg_padding ""
 seta hud_panel_pressedkeys_aspect "1.600000"
+seta hud_panel_pressedkeys_attack "0"
 
 seta hud_panel_chat 1
 seta hud_panel_chat_pos "0 0.775000"
@@ -258,8 +259,11 @@ seta hud_panel_physics_acceleration_vertical "0"
 seta hud_panel_physics_flip "0"
 seta hud_panel_physics_baralign "0"
 seta hud_panel_physics_progressbar "3"
-seta hud_panel_physics_acceleration_mode "0"
+seta hud_panel_physics_acceleration_progressbar_mode "0"
+seta hud_panel_physics_acceleration_progressbar_scale "1"
+seta hud_panel_physics_acceleration_progressbar_nonlinear "0"
 seta hud_panel_physics_text "1"
+seta hud_panel_physics_text_scale "0.7"
 
 seta hud_panel_centerprint 1
 seta hud_panel_centerprint_pos "0.175000 0.220000"
index c5e2c928fab635126db5ffa90c8fc82f34981f90..119f7b18f6f8cd3f163e7e6ac172db53ed4516ad 100644 (file)
@@ -204,6 +204,7 @@ seta hud_panel_pressedkeys_bg_alpha ""
 seta hud_panel_pressedkeys_bg_border ""
 seta hud_panel_pressedkeys_bg_padding ""
 seta hud_panel_pressedkeys_aspect "1.600000"
+seta hud_panel_pressedkeys_attack "0"
 
 seta hud_panel_chat 1
 seta hud_panel_chat_pos "0.020000 0.780000"
@@ -258,8 +259,11 @@ seta hud_panel_physics_acceleration_vertical "0"
 seta hud_panel_physics_flip "0"
 seta hud_panel_physics_baralign "0"
 seta hud_panel_physics_progressbar "1"
-seta hud_panel_physics_acceleration_mode "0"
+seta hud_panel_physics_acceleration_progressbar_mode "0"
+seta hud_panel_physics_acceleration_progressbar_scale "1"
+seta hud_panel_physics_acceleration_progressbar_nonlinear "0"
 seta hud_panel_physics_text "1"
+seta hud_panel_physics_text_scale "0.7"
 
 seta hud_panel_centerprint 1
 seta hud_panel_centerprint_pos "0.175000 0.220000"
index 10d77e7129684ad492d4405ae1f44ee4cc596ec0..3cf0feb753e5e08b748ce408a03f42affc78393d 100644 (file)
@@ -110,7 +110,7 @@ seta hud_panel_healtharmor_progressbar_gfx_smooth "2"
 seta hud_panel_healtharmor_text "1"
 
 seta hud_panel_notify 0
-seta hud_panel_notify_pos "0 0.650000"
+seta hud_panel_notify_pos "0.010000 0.650000"
 seta hud_panel_notify_size "0.300000 0.070000"
 seta hud_panel_notify_bg "0"
 seta hud_panel_notify_bg_color ""
@@ -204,6 +204,7 @@ seta hud_panel_pressedkeys_bg_alpha ""
 seta hud_panel_pressedkeys_bg_border ""
 seta hud_panel_pressedkeys_bg_padding ""
 seta hud_panel_pressedkeys_aspect "1.600000"
+seta hud_panel_pressedkeys_attack "0"
 
 seta hud_panel_chat 1
 seta hud_panel_chat_pos "0 0.760000"
@@ -228,7 +229,7 @@ seta hud_panel_engineinfo_framecounter_time "0.1"
 seta hud_panel_engineinfo_framecounter_decimals "0"
 
 seta hud_panel_infomessages 1
-seta hud_panel_infomessages_pos "0.700000 0.620000"
+seta hud_panel_infomessages_pos "0.690000 0.620000"
 seta hud_panel_infomessages_size "0.300000 0.100000"
 seta hud_panel_infomessages_bg "0"
 seta hud_panel_infomessages_bg_color ""
@@ -247,19 +248,22 @@ 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_speed_unit "3"
-seta hud_panel_physics_speed_unit_show "1"
+seta hud_panel_physics_speed_unit "1"
+seta hud_panel_physics_speed_unit_show "0"
 seta hud_panel_physics_speed_max "1800"
 seta hud_panel_physics_speed_vertical "0"
-seta hud_panel_physics_topspeed "1"
+seta hud_panel_physics_topspeed "0"
 seta hud_panel_physics_topspeed_time "4"
 seta hud_panel_physics_acceleration_max "1.5"
 seta hud_panel_physics_acceleration_vertical "0"
 seta hud_panel_physics_flip "0"
 seta hud_panel_physics_baralign "0"
 seta hud_panel_physics_progressbar "3"
-seta hud_panel_physics_acceleration_mode "0"
-seta hud_panel_physics_text "1"
+seta hud_panel_physics_acceleration_progressbar_mode "0"
+seta hud_panel_physics_acceleration_progressbar_scale "4"
+seta hud_panel_physics_acceleration_progressbar_nonlinear "0"
+seta hud_panel_physics_text "2"
+seta hud_panel_physics_text_scale "1"
 
 seta hud_panel_centerprint 1
 seta hud_panel_centerprint_pos "0.175000 0.260000"
diff --git a/input-rtlights.cfg b/input-rtlights.cfg
new file mode 100644 (file)
index 0000000..fbeba74
--- /dev/null
@@ -0,0 +1,59 @@
+//     small   big     dark    bright  -red    +red    -green  +green  -blue   +blue                                   higher
+//     1       2       3       4       5       6       7       8       9       0                                       Page ^
+//     
+//     spawn   ^       remove  static  style   style   style   style   style   style                                   lower
+//     Q       W       E       R       T       Y       U       I       O       P                                       Page v
+//     
+//     <       v       >       style   style   style   style   style   style           save                    north
+//     A       S       D       F       G       H       J       K       L               ENTER                   ^
+//     
+//                     copy    paste                           fine    coarse                          west    south   east
+//     Z       X       C       V       B       N       M       ,       .                               <       v       >
+
+in_bind 6 q "r_editlights_spawn"
+in_bind 6 e "r_editlights_remove"
+
+in_bind 6 1 "r_editlights_edit radiusscale 0.8"
+in_bind 6 2 "r_editlights_edit radiusscale 1.25"
+in_bind 6 3 "r_editlights_edit colorscale 0.8"
+in_bind 6 4 "r_editlights_edit colorscale 1.25"
+in_bind 6 5 "r_editlights_edit colorscale 0.8 1 1"
+in_bind 6 6 "r_editlights_edit colorscale 1.25 1 1"
+in_bind 6 7 "r_editlights_edit colorscale 1 0.8 1"
+in_bind 6 8 "r_editlights_edit colorscale 1 1.25 1"
+in_bind 6 9 "r_editlights_edit colorscale 1 1 0.8"
+in_bind 6 0 "r_editlights_edit colorscale 1 1 1.25"
+
+in_bind 6 r "r_editlights_edit style 0"
+in_bind 6 t "r_editlights_edit style 1"
+in_bind 6 y "r_editlights_edit style 2"
+in_bind 6 z "r_editlights_edit style 2"
+in_bind 6 u "r_editlights_edit style 3"
+in_bind 6 i "r_editlights_edit style 4"
+in_bind 6 o "r_editlights_edit style 5"
+in_bind 6 p "r_editlights_edit style 6"
+in_bind 6 f "r_editlights_edit style 7"
+in_bind 6 g "r_editlights_edit style 8"
+in_bind 6 h "r_editlights_edit style 8"
+in_bind 6 j "r_editlights_edit style 9"
+in_bind 6 k "r_editlights_edit style 10"
+in_bind 6 l "r_editlights_edit style 11"
+
+in_bind 6 c "r_editlights_copyinfo"
+in_bind 6 v "r_editlights_pasteinfo"
+
+in_bind 6 enter "r_editlights_save"
+
+set editlights_step 1
+in_bind 6 , "editlights_step 1; echo Using small steps"
+in_bind 6 . "editlights_step 8; echo Using large steps"
+in_bind 6 uparrow "r_editlights_edit move 0 $editlights_step 0"
+in_bind 6 downarrow "r_editlights_edit move 0 -$editlights_step 0"
+in_bind 6 leftarrow "r_editlights_edit move -$editlights_step 0 0"
+in_bind 6 rightarrow "r_editlights_edit move $editlights_step 0 0"
+in_bind 6 pgdn "r_editlights_edit move 0 0 -$editlights_step"
+in_bind 6 pgup "r_editlights_edit move 0 0 $editlights_step"
+
+r_shadow_realtime_world 1
+r_editlights 1
+in_bindmap 6 0
index 57e6578dc7a7a47bdbe173c82b983a5ba234c78b..22f021434183f8611ae0307dc1b2314874ef6292 100644 (file)
 "weaplast"                              "previously used"
 "weapbest"                              "best"
 "reload"                                "reload"
-"impulse 1"                        "Laser"
-"impulse 2"                        "Shotgun"
-"impulse 3"                        "Machine Gun"
-"impulse 4"                        "Mortar / Mine Layer"
-"impulse 5"                        "Electro"
-"impulse 6"                        "Crylink / HLAC"
-"impulse 7"                        "Nex / Rifle"
-"impulse 8"                        "Hagar / Seeker"
-"impulse 9"                        "Rocket Launcher / Fireball"
-"impulse 14"                        "Port-O-Launch / Hook"
+"weapon_group_1"                        "Laser"
+"weapon_group_2"                        "Shotgun"
+"weapon_group_3"                        "Machine Gun"
+"weapon_group_4"                        "Mortar / Mine Layer"
+"weapon_group_5"                        "Electro"
+"weapon_group_6"                        "Crylink / HLAC"
+"weapon_group_7"                        "Nex / Rifle"
+"weapon_group_8"                        "Hagar / Seeker"
+"weapon_group_9"                        "Rocket Launcher / Fireball"
+"weapon_group_0"                        "Port-O-Launch / Hook"
 ""                                      ""
 ""                                      "View"
 "+zoom"                                 "hold zoom"
index 3c43ca944913ef8f3b06e14a14d26ef9981edfbf..2aac70080a7e53e8e051ad6d7b2f470a2a631e7b 100644 (file)
 "weaplast"                              "zuletzt benutzte"
 "weapbest"                              "beste"
 "reload"                                "nachladen"
-"impulse 1"                             "Laser"
-"impulse 2"                             "Schrotgewehr"
-"impulse 3"                             "Maschinengewehr"
-"impulse 4"                             "Mortar / Mine Layer"
-"impulse 5"                             "Electro"
-"impulse 6"                             "Crylink / HLAC"
-"impulse 7"                             "Nex / MinstaNex / Gewehr"
-"impulse 8"                             "Hagar / Seeker"
-"impulse 9"                             "Rocket Launcher / Fireball"
-"impulse 14"                            "Port-O-Launch / Enterhaken"
+"weapon_group_1"                        "Laser"
+"weapon_group_2"                        "Schrotgewehr"
+"weapon_group_3"                        "Maschinengewehr"
+"weapon_group_4"                        "Mortar / Mine Layer"
+"weapon_group_5"                        "Electro"
+"weapon_group_6"                        "Crylink / HLAC"
+"weapon_group_7"                        "Nex / Gewehr"
+"weapon_group_8"                        "Hagar / Seeker"
+"weapon_group_9"                        "Rocket Launcher / Fireball"
+"weapon_group_0"                        "Port-O-Launch / Enterhaken"
 ""                                      ""
 ""                                      "Anzeige"
 "+zoom"                                 "Vergrößern (festhalten)"
index cdaa8cc956fb3f60d3347cd1194fe4ee4088ae5d..55c82cd3f7405b9efb36a84c495402231125d33b 100644 (file)
 "weaplast"                              "anteriormente usado"
 "weapbest"                              "mejor"
 "reload"                                "recargar"
-"impulse 1"                             "Laser"
-"impulse 2"                             "Shotgun"
-"impulse 3"                             "Machine Gun"
-"impulse 4"                             "Mortar / Mine Layer"
-"impulse 5"                             "Electro"
-"impulse 6"                             "Crylink / HLAC"
-"impulse 7"                             "Nex / MinstaNex / Rifle"
-"impulse 8"                             "Hagar / Seeker"
-"impulse 9"                             "Rocket Launcher / Fireball"
-"impulse 14"                            "Port-O-Launch / Hook"
+"weapon_group_1"                        "Laser"
+"weapon_group_2"                        "Shotgun"
+"weapon_group_3"                        "Machine Gun"
+"weapon_group_4"                        "Mortar / Mine Layer"
+"weapon_group_5"                        "Electro"
+"weapon_group_6"                        "Crylink / HLAC"
+"weapon_group_7"                        "Nex / Rifle"
+"weapon_group_8"                        "Hagar / Seeker"
+"weapon_group_9"                        "Rocket Launcher / Fireball"
+"weapon_group_0"                        "Port-O-Launch / Hook"
 ""                                      ""
 ""                                      "Vista"
 "+zoom"                                 "mantener zoom"
 "togglezoom"                            "cambiar zoom"
 "+showscores"                           "mostrar puntaje"
 "screenshot"                            "captura de pantalla"
+"+hud_panel_radar_maximized"            "maximize radar (FIXME)"
 ""                                      ""
 ""                                      "Communicación"
 "messagemode"                           "chat público"
 "messagemode2"                          "chat de equipo"
 "team_auto"                             "unirse al equipo automáticamente"
 "menu_showteamselect"                   "menu de equipo"
+"menu_showsandboxtools"                 "sandbox menu (FIXME)"
 "spec"                                  "entrar al modo espectador"
 "dropweapon"                            "soltar arma"
 "+use"                                  "soltar llave / soltar bandera"
+"+button8"                              "drag object (FIXME)"
 ""                                      ""
 ""                                      "Definido por el usuario"
 "+userbind 1"                           "$userbind1"
index cc63be3a6e112ef2901703465f95ed00ec85e716..4693e38686428f1a52a98f336d286383d5d1a88d 100644 (file)
 "weaplast"                              "dernière utilisée"
 "weapbest"                              "meilleure arme"
 "reload"                                "recharger"
-"impulse 1"                             "laser"
-"impulse 2"                             "shotgun"
-"impulse 3"                             "machine gun / rifle"
-"impulse 4"                             "mortar"
-"impulse 5"                             "electro"
-"impulse 6"                             "crylink / hlac"
-"impulse 7"                             "nex / minstanex"
-"impulse 8"                             "hagar"
-"impulse 9"                             "rocket launcher / fireball"
-"impulse 14"                            "porto / hook"
+"weapon_group_1"                        "laser"
+"weapon_group_2"                        "shotgun"
+"weapon_group_3"                        "machine gun / rifle"
+"weapon_group_4"                        "mortar"
+"weapon_group_5"                        "electro"
+"weapon_group_6"                        "crylink / hlac"
+"weapon_group_7"                        "nex / minstanex"
+"weapon_group_8"                        "hagar"
+"weapon_group_9"                        "rocket launcher / fireball"
+"weapon_group_0"                        "porto / hook"
 ""                                      ""
 ""                                      "Vue"
 "+zoom"                                 "zoom clic enfoncé"
 "togglezoom"                            "zoom 2 clics"
 "+showscores"                           "montrer les scores (enfoncé)"
 "screenshot"                            "capture d'écran"
+"+hud_panel_radar_maximized"            "maximize radar (FIXME)"
 ""                                      ""
 ""                                      "Communiquer"
 "messagemode"                           "chat public"
 "messagemode2"                          "chat d'équipe"
 "team_auto"                             "auto-joindre une équipe"
 "menu_showteamselect"                   "séléction d'équipe"
+"menu_showsandboxtools"                 "sandbox menu (FIXME)"
 "spec"                                  "mode spectateur"
 "dropweapon"                            "lâcher l'arme"
 "+use"                                  "lâcher la clé / lâcher le drapeau"
+"+button8"                              "drag object (FIXME)"
 ""                                      ""
 ""                                      "Utilisateur"
 "+userbind 1"                           "$userbind1"
index 618b079f6b03ec0456338760c5524c1e1fd93cb4..74d96470be0b5161ace4cf64ad9b47e6234ddb74 100644 (file)
@@ -23,7 +23,7 @@
 "weapon_group_4"                        "Mortar / Aknavető"
 "weapon_group_5"                        "Electro"
 "weapon_group_6"                        "Crylink / HLAC"
-"weapon_group_7"                        "Nex / MinstaNex / Puska"
+"weapon_group_7"                        "Nex / Puska"
 "weapon_group_8"                        "Hagar / Seeker"
 "weapon_group_9"                        "Rakétavető / Tűzlabda"
 "weapon_group_0"                        "Port-O-Launch / Kampó"
@@ -33,6 +33,7 @@
 "togglezoom"                            "nagyítás váltás"
 "+showscores"                           "pontszámok"
 "screenshot"                            "kép mentés"
+"+hud_panel_radar_maximized"            "maximize radar (FIXME)"
 ""                                      ""
 ""                                      "Kommunikáció"
 "messagemode"                           "nyilvános beszélgetés"
@@ -44,7 +45,7 @@
 ""                                      ""
 ""                                      "Kliens"
 "+show_info"                            "kiszolgáló info"
-"toggleconsole"                         "konzolba lépés"
+"toggleconsole"                         "belépés a konzolba"
 "disconnect"                            "lekapcsolodás"
 "menu_showquitdialog"                   "kilépés"
 ""                                      ""
 "messagemode2"                          "csapat beszélgetés"
 "team_auto"                             "automatikus csapatválasztás"
 "menu_showteamselect"                   "csapat menü"
-"spec"                                  "belépés néző módba"
+"menu_showsandboxtools"                 "sandbox menu (FIXME)"
+"spec"                                  "néző módba váltás"
 "dropweapon"                            "fegyver eldobás"
-"+use"                                  "kulcs / zászló eldobás"
+"+use"                                  "zászló eldobás, kiszállás"
+"+button8"                              "drag object"
 ""                                      ""
 ""                                      "Felhasználói hozzárendelések"
 "+userbind 1"                           "$userbind1"
index 68c044acc188055ac621ef8d66fe34e6a76d8c1d..87d7840295d1bd6db9f04778c6e8e390152ab58e 100644 (file)
@@ -3,36 +3,37 @@
 "+back"                                 "indietro"
 "+moveleft"                             "a sinistra"
 "+moveright"                            "a destra"
-"+jump"                                 "salta / nuota"
-"+crouch"                               "accovacciarsi / abbassarsi"
-"+hook"                                 "uncino / jet pack"
+"+jump"                                 "salta / risalire in acqua"
+"+crouch"                               "abbassarsi / scendere in acqua"
+"+hook"                                 "off-hand hook / jet pack"
 ""                                      ""
 ""                                      "Attacco"
 "+fire"                                 "fuoco primario"
 "+fire2"                                "fuoco secondario"
 ""                                      ""
 ""                                      "Cambio d'arma"
-"weapprev"                              "arma precedente"
-"weapnext"                              "arma successiva"
-"weaplast"                              "ultima arma usata"
-"weapbest"                              "miglior arma"
+"weapprev"                              "precedente"
+"weapnext"                              "successiva"
+"weaplast"                              "ultima usata"
+"weapbest"                              "migliore"
 "reload"                                "ricarica"
-"impulse 1"                             "Laser"
-"impulse 2"                             "Shotgun"
-"impulse 3"                             "Machine Gun"
-"impulse 4"                             "Mortar / Mine Layer"
-"impulse 5"                             "Electro"
-"impulse 6"                             "Crylink / HLAC"
-"impulse 7"                             "Nex / MinstaNex / Fucile"
-"impulse 8"                             "Hagar / Seeker"
-"impulse 9"                             "Rocket Launcher / Fireball"
-"impulse 14"                            "Port-O-Launch / Hook"
+"weapon_group_1"                        "Laser"
+"weapon_group_2"                        "Shotgun"
+"weapon_group_3"                        "Machine Gun"
+"weapon_group_4"                        "Mortar / Mine Layer"
+"weapon_group_5"                        "Electro"
+"weapon_group_6"                        "Crylink / HLAC"
+"weapon_group_7"                        "Nex / Rifle"
+"weapon_group_8"                        "Hagar / Seeker"
+"weapon_group_9"                        "Rocket Launcher / Fireball"
+"weapon_group_0"                        "Port-O-Launch / Hook"
 ""                                      ""
 ""                                      "Vista"
 "+zoom"                                 "tieni zoom"
 "togglezoom"                            "attiva/disattiva zoom"
-"+showscores"                           "mostra punteggio"
+"+showscores"                           "mostra punteggi"
 "screenshot"                            "cattura schermata"
+"+hud_panel_radar_maximized"            "massimizza radar"
 ""                                      ""
 ""                                      "Comunicazione"
 "messagemode"                           "chat pubblica"
 "disconnect"                            "disconnetti"
 "menu_showquitdialog"                   "esci"
 ""                                      ""
-""                                      "Teamplay"
+""                                      "Gioco a squadre"
 "messagemode2"                          "chat di squadra"
-"team_auto"                             "auto-unisciti ad una squadra"
-"menu_showteamselect"                   "selezione della squadra"
-"spec"                                  "entra in modalità spettatore"
-"dropweapon"                            "rilascia arma"
-"+use"                                  "rilascia chiave / rilascia bandiera"
+"team_auto"                             "auto-scegli squadra"
+"menu_showteamselect"                   "menu scelta squadra"
+"menu_showsandboxtools"                 "menu sandbox"
+"spec"                                  "modalità spettatore"
+"dropweapon"                            "abbandona arma"
+"+use"                                  "abbandona chiave / bandiera"
+"+button8"                              "trascina oggetto"
 ""                                      ""
 ""                                      "Definiti dall'utente"
 "+userbind 1"                           "$userbind1"
index ee484cf155b94dd534b8bfd0d94b07c5a4e7bfc3..4d4221a205d648285049e6e6fd39ef97ff321071 100644 (file)
 "weaplast"                              "ранее использованное"
 "weapbest"                              "лучшее"
 "reload"                                "перезарядить"
-"impulse 1"                             "Laser"
-"impulse 2"                             "Shotgun"
-"impulse 3"                             "Machine Gun"
-"impulse 4"                             "Mortar / Mine Layer"
-"impulse 5"                             "Electro"
-"impulse 6"                             "Crylink / HLAC"
-"impulse 7"                             "Nex / MinstaNex / Rifle"
-"impulse 8"                             "Hagar / Seeker"
-"impulse 9"                             "Rocket Launcher / Fireball"
-"impulse 14"                            "Port-O-Launch / Hook"
+"weapon_group_1"                        "Laser"
+"weapon_group_2"                        "Shotgun"
+"weapon_group_3"                        "Machine Gun"
+"weapon_group_4"                        "Mortar / Mine Layer"
+"weapon_group_5"                        "Electro"
+"weapon_group_6"                        "Crylink / HLAC"
+"weapon_group_7"                        "Nex / Rifle"
+"weapon_group_8"                        "Hagar / Seeker"
+"weapon_group_9"                        "Rocket Launcher / Fireball"
+"weapon_group_0"                        "Port-O-Launch / Hook"
 ""                                      ""
 ""                                      "Вид"
 "+zoom"                                 "увеличение"
 "togglezoom"                            "переключить увеличение"
 "+showscores"                           "показать очки"
 "screenshot"                            "снимок экрана"
+"+hud_panel_radar_maximized"            "maximize radar (FIXME)"
 ""                                      ""
 ""                                      "Общение"
 "messagemode"                           "общий чат"
 "messagemode2"                          "чат команды"
 "team_auto"                             "авто-выбор команды"
 "menu_showteamselect"                   "меню команды"
+"menu_showsandboxtools"                 "sandbox menu (FIXME)"
 "spec"                                  "стать наблюдателем"
 "dropweapon"                            "бросить оружие"
 "+use"                                  "бросить ключ или флаг"
+"+button8"                              "drag object"
 ""                                      ""
 ""                                      "Определенно пользователем"
 "+userbind 1"                           "$userbind1"
index 9284c172e91a7ad131de0cd86582136c82151ee7..02b4e579b24b0e95741eb86ffd2e2596433515eb 100644 (file)
@@ -23,7 +23,7 @@
 "weapon_group_4"                        "Мортира / Міноукладчик"
 "weapon_group_5"                        "Електро"
 "weapon_group_6"                        "Крайлінк / ВЛШГ"
-"weapon_group_7"                        "Ð\9dекÑ\81 / Ð\9cÑ\96нÑ\81Ñ\82аÐ\9dекÑ\81 / Ð\93винÑ\82Ñ\96вка"
+"weapon_group_7"                        "Некс / Гвинтівка"
 "weapon_group_8"                        "Хейгар / Шукач"
 "weapon_group_9"                        "Ракетна гармата / Метеор"
 "weapon_group_0"                        "Портал-О-Пуск / Гак"
@@ -33,6 +33,7 @@
 "togglezoom"                            "увімк / вимк зум"
 "+showscores"                           "показати рахунок"
 "screenshot"                            "скриншот"
+"+hud_panel_radar_maximized"            "maximize radar (FIXME)"
 ""                                      ""
 ""                                      "Спілкування"
 "messagemode"                           "публічний чат"
 "messagemode2"                          "командний чат"
 "team_auto"                             "автовибір команди"
 "menu_showteamselect"                   "командне меню"
+"menu_showsandboxtools"                 "sandbox menu (FIXME)"
 "spec"                                  "увійти в режим спостерігача"
 "dropweapon"                            "викинути зброю"
 "+use"                                  "викинути ключ / прапор"
+"+button8"                              "drag object"
 ""                                      ""
 ""                                      "Визначені користувачем"
 "+userbind 1"                           "$userbind1"
index 0551db87833d4038d074150e128a1582a4da3d7b..9be33b8493dea5af4d113656e26aa710af8600f2 100644 (file)
@@ -1,7 +1,7 @@
 de German "Deutsch"
-el Greek "Ελληνική"
+el Greek "Ελληνική (INCOMPLETE)"
 en English "English"
-es Spanish "Español"
+es Spanish "Español (INCOMPLETE)"
 fr French "Français"
 it Italian "Italiano"
 hu Hungarian "Magyar"
index c332d20fa64c1244466359a11820873e5fea393a..36bbe62c8428b2ae6b10ba081f3b320a3593a754 100644 (file)
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: 0.1preview\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-12-25 22:57+0100\n"
+"POT-Creation-Date: 2012-01-26 12:24+0100\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"
@@ -16,33 +16,102 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: qcsrc/common/mapinfo.qc:1097 qcsrc/menu/xonotic/skinlist.c:163
+#: qcsrc/common/mapinfo.qc:665
+#, c-format
+msgid "@!#%'n Tuba Throwing"
+msgstr "@!#%'n Tuba-Werfen"
+
+#: qcsrc/common/mapinfo.qc:1057 qcsrc/menu/xonotic/skinlist.c:166
 #, c-format
 msgid "%s: %s"
 msgstr "%s: %s"
 
-#: qcsrc/menu/gamecommand.qc:47
+#: qcsrc/common/mapinfo.qh:36
+msgid "Deathmatch"
+msgstr "Deathmatch"
+
+#: qcsrc/common/mapinfo.qh:39
+msgid "Last Man Standing"
+msgstr "Last Man Standing"
+
+#: qcsrc/common/mapinfo.qh:42
+msgid "Arena"
+msgstr "Arena"
+
+#: qcsrc/common/mapinfo.qh:45
+msgid "Runematch"
+msgstr "Runematch"
+
+#: qcsrc/common/mapinfo.qh:48
+msgid "Race"
+msgstr "Race"
+
+#: qcsrc/common/mapinfo.qh:51
+msgid "Race CTS"
+msgstr "Race CTS"
+
+#: qcsrc/common/mapinfo.qh:54
+msgid "Team Deathmatch"
+msgstr "Team Deathmatch"
+
+#: qcsrc/common/mapinfo.qh:57
+msgid "Capture the Flag"
+msgstr "Capture The Flag"
+
+#: qcsrc/common/mapinfo.qh:60
+msgid "Clan Arena"
+msgstr "Clan Arena"
+
+#: qcsrc/common/mapinfo.qh:63
+msgid "Domination"
+msgstr "Domination"
+
+#: qcsrc/common/mapinfo.qh:66
+msgid "Key Hunt"
+msgstr "Key Hunt"
+
+#: qcsrc/common/mapinfo.qh:69
+msgid "Assault"
+msgstr "Assault"
+
+#: qcsrc/common/mapinfo.qh:72
+msgid "Onslaught"
+msgstr "Onslaught"
+
+#: qcsrc/common/mapinfo.qh:75
+msgid "Nexball"
+msgstr "Nexball"
+
+#: qcsrc/common/mapinfo.qh:78
+msgid "Freeze Tag"
+msgstr "Freeze Tag"
+
+#: qcsrc/common/mapinfo.qh:81
+msgid "Keepaway"
+msgstr "Keepaway"
+
+#: qcsrc/menu/command/menu_cmd.qc:41
 #, c-format
 msgid "error: status is %d\n"
 msgstr "Fehler: Status ist %d\n"
 
-#: qcsrc/menu/gamecommand.qc:70
+#: qcsrc/menu/command/menu_cmd.qc:64
 msgid "Usage: menu_cmd command..., where possible commands are:\n"
 msgstr "Syntax: menu_cmd Befehl..., wobei mögliche Befehle sind:\n"
 
-#: qcsrc/menu/gamecommand.qc:71
+#: qcsrc/menu/command/menu_cmd.qc:65
 msgid "  sync - reloads all cvars on the current menu page\n"
 msgstr "  sync - lädt alle Variablen auf der aktuellen Menüseite neu\n"
 
-#: qcsrc/menu/gamecommand.qc:72
+#: qcsrc/menu/command/menu_cmd.qc:66
 msgid "  directmenu ITEM - select a menu item as main item\n"
 msgstr "  directmenu ELEMENT - springt zu einem Menüelement"
 
-#: qcsrc/menu/gamecommand.qc:185
+#: qcsrc/menu/command/menu_cmd.qc:179
 msgid "error creating curl handle\n"
 msgstr "Fehler beim Erstellen eines curl-Handles\n"
 
-#: qcsrc/menu/gamecommand.qc:192
+#: qcsrc/menu/command/menu_cmd.qc:186
 msgid "Invalid command. For a list of supported commands, try menu_cmd help.\n"
 msgstr ""
 "Ungültiger Befehl. Eine Liste der unterstützten Befehle wird von menu_cmd "
@@ -78,12 +147,12 @@ msgstr "benutzerdefiniert"
 msgid "^4MQC Build information: ^1%s\n"
 msgstr "^4MQC Build-Information: ^1%s (deutsch)\n"
 
-#: qcsrc/menu/xonotic/campaign.c:284
+#: qcsrc/menu/xonotic/campaign.c:288
 #: qcsrc/menu/xonotic/dialog_singleplayer.c:123
 msgid "???"
 msgstr "???"
 
-#: qcsrc/menu/xonotic/campaign.c:285
+#: qcsrc/menu/xonotic/campaign.c:289
 #, c-format
 msgid "Level %d: %s"
 msgstr "Level %d: %s"
@@ -115,10 +184,13 @@ msgstr "Entwickler"
 #: qcsrc/menu/xonotic/dialog_credits.c:21
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:82
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:277
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:35
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:57
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:91
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:96
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:56
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:113
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:74
 #: qcsrc/menu/xonotic/dialog_sandboxtools.c:89
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:61
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:73
 #: qcsrc/menu/xonotic/dialog_singleplayer_winner.c:21
 msgid "OK"
 msgstr "OK"
@@ -127,7 +199,7 @@ msgstr "OK"
 msgid "Welcome"
 msgstr "Willkommen"
 
-#: qcsrc/menu/xonotic/dialog_firstrun.c:33
+#: qcsrc/menu/xonotic/dialog_firstrun.c:40
 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 "
@@ -137,18 +209,34 @@ msgstr ""
 "Spielernamens kann es losgehen. Diese Optionen können natürlich später im "
 "Menüsystem geändert werden."
 
-#: qcsrc/menu/xonotic/dialog_firstrun.c:38
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:35
-msgid "Text language:"
-msgstr "Sprache:"
-
-#: qcsrc/menu/xonotic/dialog_firstrun.c:47
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:40
+#: qcsrc/menu/xonotic/dialog_firstrun.c:46
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:37
 #: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:39
 msgid "Name:"
 msgstr "Name:"
 
-#: qcsrc/menu/xonotic/dialog_firstrun.c:69
+#: qcsrc/menu/xonotic/dialog_firstrun.c:68
+#: qcsrc/menu/xonotic/dialog_settings_user.c:65
+msgid "Text language:"
+msgstr "Sprache:"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:77
+msgid "Allow player statistics to use your nickname at stats.xonotic.org?"
+msgstr "Spielerstatistik-Servern erlauben, den Spielernamen zu verwenden?"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:81
+msgid "ALWU2N^Yes"
+msgstr "Ja"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:82
+msgid "ALWU2N^No"
+msgstr "Nein"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:83
+msgid "ALWU2N^Undecided"
+msgstr "Später fragen"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:87
 msgid "Save settings"
 msgstr "Einstellungen speichern"
 
@@ -207,7 +295,7 @@ msgid "Text alignment:"
 msgstr "Textausrichtung:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_centerprint.c:37
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:50
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:51
 msgid "Center"
 msgstr "Mittig"
 
@@ -351,12 +439,12 @@ msgid "Status bar"
 msgstr "Statusleiste"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:33
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:48
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:49
 msgid "Left align"
 msgstr "Links"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:34
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:52
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:53
 msgid "Right align"
 msgstr "Rechts"
 
@@ -373,6 +461,7 @@ msgid "Flip speed/acceleration positions"
 msgstr "Geschwindigkeit/Beschleunigung tauschen"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:44
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:29
 msgid "Speed:"
 msgstr "Geschwindigkeit:"
 
@@ -464,8 +553,8 @@ 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:156
-#: qcsrc/menu/xonotic/util.qc:623
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:66
+#: qcsrc/menu/xonotic/util.qc:655
 msgid "Alpha:"
 msgstr "Alpha:"
 
@@ -494,6 +583,7 @@ msgid "North"
 msgstr "Nord"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:46
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:61
 msgid "Scale:"
 msgstr "Skalierung:"
 
@@ -530,7 +620,6 @@ msgid "Rankings:"
 msgstr "Platzierungen:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_score.c:26
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:60
 msgid "Off"
 msgstr "Aus"
 
@@ -647,24 +736,24 @@ msgstr "HUD-Konfiguration"
 msgid "Panel background defaults:"
 msgstr "Panel-Standardhintergrund:"
 
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:23 qcsrc/menu/xonotic/util.qc:598
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:23 qcsrc/menu/xonotic/util.qc:630
 msgid "Background:"
 msgstr "Hintergrund:"
 
 #: 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:601
-#: qcsrc/menu/xonotic/util.qc:617 qcsrc/menu/xonotic/util.qc:634
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:91 qcsrc/menu/xonotic/util.qc:633
+#: qcsrc/menu/xonotic/util.qc:649 qcsrc/menu/xonotic/util.qc:666
 msgid "Disable"
 msgstr "Aus"
 
 #: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:30
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:77 qcsrc/menu/xonotic/util.qc:606
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:77 qcsrc/menu/xonotic/util.qc:638
 msgid "Color:"
 msgstr "Farbe:"
 
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:35 qcsrc/menu/xonotic/util.qc:614
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:35 qcsrc/menu/xonotic/util.qc:646
 msgid "Border size:"
 msgstr "Rahmengröße:"
 
@@ -673,11 +762,11 @@ msgstr "Rahmengröße:"
 msgid "Team color:"
 msgstr "Teamfarbe:"
 
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:58 qcsrc/menu/xonotic/util.qc:640
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:58 qcsrc/menu/xonotic/util.qc:672
 msgid "Test team color in configure mode"
 msgstr "Teamfarbe bei Konfiguration testen"
 
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:61 qcsrc/menu/xonotic/util.qc:643
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:61 qcsrc/menu/xonotic/util.qc:675
 msgid "Padding:"
 msgstr "Abstand:"
 
@@ -751,128 +840,123 @@ msgstr "Spieler-Einstellungen"
 msgid "Game type:"
 msgstr "Spieltyp"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:46
-msgid "Match settings:"
-msgstr "Spieleinstellungen:"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:49
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:48
 msgid "Time limit:"
 msgstr "Zeitlimit:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:53
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:61
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:52
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:60
 msgid "Use map specified default"
 msgstr "Standardwert der Map verwenden"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:56
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:55
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:154
 #: qcsrc/menu/xonotic/dialog_multiplayer_create.c:155
 #: qcsrc/menu/xonotic/dialog_multiplayer_create.c:156
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:157
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:160
 #: qcsrc/menu/xonotic/dialog_multiplayer_create.c:161
 #: qcsrc/menu/xonotic/dialog_multiplayer_create.c:162
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:163
 msgid "Point limit:"
 msgstr "Punktelimit:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:64
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:63
 msgid "Player slots:"
 msgstr "Spielerplätze:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:67
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:66
 msgid "Number of bots:"
 msgstr "Anzahl Bots:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:71
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:69
 msgid "Bot skill:"
 msgstr "Spielstärke:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:74
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:72
 msgid "Botlike"
 msgstr "Bots halt"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:75
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:73
 msgid "Beginner"
 msgstr "Anfänger"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:76
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:74
 msgid "You will win"
 msgstr "Gewinnst schon"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:77
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:75
 msgid "You can win"
 msgstr "Kannst gewinnen"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:78
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:76
 msgid "You might win"
 msgstr "Könntest gewinnen"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:79
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:62
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:77
 msgid "Advanced"
 msgstr "Fortgeschritten"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:80
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:78
 msgid "Expert"
 msgstr "Experte"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:81
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:79
 msgid "Pro"
 msgstr "Profi"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:82
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:80
 msgid "Assassin"
 msgstr "Mörder"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:83
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:81
 msgid "Unhuman"
 msgstr "Übermenschlich"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:84
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:82
 msgid "Godlike"
 msgstr "Gottgleich"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:88
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:87
 msgid "Mutators..."
 msgstr "Mutators..."
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:97
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:68
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:96
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:145
 msgid "Advanced settings..."
 msgstr "Erweiterte Einstellungen..."
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:104
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:103
 msgid "Map list:"
 msgstr "Mapliste:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:110
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:109
 msgid "Select all"
 msgstr "Alle auswählen"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:113
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:112
 msgid "Select none"
 msgstr "Keine auswählen"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:119
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:118
 msgid "Start Multiplayer!"
 msgstr "Starten!"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:154
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:153
 msgid "Capture limit:"
 msgstr "Capture-Limit:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:158
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:157
 msgid "Lives:"
 msgstr "Leben:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:159
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:158
 msgid "Laps:"
 msgstr "Runden:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:160
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:159
 msgid "Goals:"
 msgstr "Tore:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:164
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:163
 msgid "Frag limit:"
 msgstr "Punktelimit:"
 
@@ -976,28 +1060,28 @@ msgstr "mit Waffen"
 msgid "MinstaGib only"
 msgstr "nur MinstaGib"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:78
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:81
 msgid "Title:"
 msgstr "Titel:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:84
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:87
 msgid "Author:"
 msgstr "Autor:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:90
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:93
 msgid "Features:"
 msgstr "Features:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:95
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:98
 msgid "Game types:"
 msgstr "Spieltyp:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:118
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:317
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:121
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:335
 msgid "Close"
 msgstr "Schließen"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:121
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:124
 msgid "MAP^Play"
 msgstr "Start"
 
@@ -1142,26 +1226,26 @@ msgid "Demo"
 msgstr "Demo"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:28
-msgid "Record demos while playing"
+msgid "Automatically record demos while playing"
 msgstr "Demo beim Spielen aufnehmen"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:32
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:31
 #: qcsrc/menu/xonotic/dialog_multiplayer_join.c:28
 msgid "Filter:"
 msgstr "Filter:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:33
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:32
 #: 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
+#: qcsrc/menu/xonotic/dialog_settings_input.c:40
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:32
 msgid "Clear"
 msgstr "Löschen"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:43
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:45
 msgid "Timedemo"
 msgstr "Timedemo"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:46
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:48
 msgid "DEMO^Play"
 msgstr "Abspielen"
 
@@ -1182,6 +1266,7 @@ msgid "Pause"
 msgstr "Pause"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join.c:56
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:262
 msgid "Address:"
 msgstr "Adresse:"
 
@@ -1190,7 +1275,7 @@ msgid "Info..."
 msgstr "Info..."
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join.c:72
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:320
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:342
 msgid "Join!"
 msgstr "Verbinden!"
 
@@ -1198,287 +1283,468 @@ msgstr "Verbinden!"
 msgid "Server Information"
 msgstr "Server-Information"
 
-#: 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:186
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:192
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:202
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:132
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:133
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:242
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:247
 msgid "N/A"
 msgstr "-"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:161
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:179
 #, c-format
-msgid "%d/%d, %d free player slots"
-msgstr "%d/%d, %d freie Slots"
+msgid "%d/%d"
+msgstr "%d/%d"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:193
+#: qcsrc/menu/xonotic/util.qc:632 qcsrc/menu/xonotic/util.qc:648
+#: qcsrc/menu/xonotic/util.qc:657 qcsrc/menu/xonotic/util.qc:665
+#: qcsrc/menu/xonotic/util.qc:677
+msgid "Default"
+msgstr "Standard"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:175
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:200
 #, c-format
-msgid "%d modified settings"
+msgid "%d modified"
 msgstr "%d veränderte Einstellungen"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:175
-msgid "Official settings"
-msgstr "Offizielle Einstellungen"
-
 #: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:200
-msgid "N/A (can't connect)"
-msgstr "- (nicht kompatibel)"
+msgid "Official"
+msgstr "Offizielle Einstellungen"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:208
-msgid "not supported (can't connect)"
-msgstr "nicht unterstützt (nicht kompatibel)"
+msgid "N/A (auth library missing, can't connect)"
+msgstr "- (nicht kompatibel)"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:210
-msgid "not supported (won't encrypt)"
-msgstr "nicht untersützt (nicht aktiv)"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:214
-msgid "supported (will encrypt)"
-msgstr "unterstützt (aktiv)"
+msgid "N/A (auth library missing)"
+msgstr "- (Bibliothek nicht installiert)"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:216
-msgid "supported (won't encrypt)"
-msgstr "unterstützt (nicht aktiv)"
+msgid "Not supported (can't connect)"
+msgstr "Nicht unterstützt (nicht kompatibel)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:220
-msgid "requested (will encrypt)"
-msgstr "erwünscht (aktiv)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:218
+msgid "Not supported (won't encrypt)"
+msgstr "Nicht untersützt (nicht aktiv)"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:222
-msgid "requested (won't encrypt)"
-msgstr "erwünscht (nicht aktiv)"
+msgid "Supported (will encrypt)"
+msgstr "Unterstützt (aktiv)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:226
-msgid "required (can't connect)"
-msgstr "notwendig (nicht kompatibel)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:224
+msgid "Supported (won't encrypt)"
+msgstr "Unterstützt (nicht aktiv)"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:228
-msgid "required (will encrypt)"
-msgstr "notwendig (aktiv)"
+msgid "Requested (will encrypt)"
+msgstr "Erwünscht (aktiv)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:249
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:272
-msgid "Players:"
-msgstr "Spieler:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:230
+msgid "Requested (won't encrypt)"
+msgstr "Erwünscht (nicht aktiv)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:257
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:38
-msgid "Type:"
-msgstr "Typ:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:234
+msgid "Required (can't connect)"
+msgstr "Notwendig (nicht kompatibel)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:262
-msgid "Map:"
-msgstr "Map:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:236
+msgid "Required (will encrypt)"
+msgstr "Notwendig (aktiv)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:267
-msgid "Gameplay:"
-msgstr "Spielregeln:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:256
+msgid "Hostname:"
+msgstr "Servername:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:277
-msgid "Bots:"
-msgstr "Bots:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:270
+msgid "Gametype:"
+msgstr "Spieltyp:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:275
+msgid "Map:"
+msgstr "Map:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:282
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:280
 msgid "Mod:"
 msgstr "Mod:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:287
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:285
 msgid "Version:"
 msgstr "Version:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:292
-msgid "Ping:"
-msgstr "Ping:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:290
+msgid "Settings:"
+msgstr "Einstellungen:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:298
-msgid "CA:"
-msgstr "CA:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:297
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:329
+msgid "Players:"
+msgstr "Spieler:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:304
-msgid "Key:"
-msgstr "Schlüssel:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:302
+msgid "Bots:"
+msgstr "Bots:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:307
+msgid "Free slots:"
+msgstr "Freie Plätze:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:310
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:313
 msgid "Encryption:"
 msgstr "Krypto:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:63
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:318
+msgid "ID:"
+msgstr "ID:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:323
+msgid "Key:"
+msgstr "Schlüssel:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:60
 #: qcsrc/menu/xonotic/dialog_sandboxtools.c:19
 msgid "Model:"
 msgstr "Modell:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:87
-msgid "Force player models to mine"
-msgstr "Alle Spieler als mein Modell zeigen"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:88
+msgid "No crosshair"
+msgstr "Fadenkreuz:"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:90
-msgid "Field of view:"
-msgstr "Sichtfeld:"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:94
-msgid "View bobbing:"
-msgstr "Sicht-Wackeln:"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:98
-msgid "Zoom factor:"
-msgstr "Vergrößerungsfaktor:"
+msgid "Per weapon crosshair"
+msgstr "Fadenkreuz pro Waffe"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:102
-msgid "Zoom speed:"
-msgstr "Vergrößerungsgeschwindigkeit:"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:105
-msgid "Weapon settings..."
-msgstr "Waffeneinstellungen..."
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:93
+msgid "Custom crosshair"
+msgstr "Benutzerdefiniert"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:112
-msgid "Crosshair:"
-msgstr "Fadenkreuz:"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:113
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:141
-msgid "Per weapon"
-msgstr "pro Waffe"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:132
 msgid "Crosshair size:"
 msgstr "Größe:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:136
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:117
 msgid "Crosshair alpha:"
 msgstr "Alpha:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:140
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:123
 msgid "Crosshair color:"
 msgstr "Farbe:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:142
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:125
+msgid "Per weapon"
+msgstr "pro Waffe"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:127
 msgid "By health"
 msgstr "je nach Health"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:145
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:131
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:47
 msgid "Custom"
 msgstr "benutzerdefiniert"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:150
-msgid "Enable center dot"
-msgstr "Punkt in der Mitte aktivieren"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:139
+msgid "Other crosshair settings"
+msgstr "Andere Fadenkreuzeinstellungen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:147
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:6
+msgid "Model settings"
+msgstr "Spielermodell-Einstellungen"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:153
-msgid "Size:"
-msgstr "Größe:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:6
+msgid "View settings"
+msgstr "Ansichts-Einstellungen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:159
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:6
+msgid "Weapon settings"
+msgstr "Waffeneinstellungen"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:160
-msgid "Hit test:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:169
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:6
+msgid "HUD settings"
+msgstr "HUD-Einstellungen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:175
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:203
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:185
+#: qcsrc/menu/xonotic/dialog_settings_input.c:89
+#: qcsrc/menu/xonotic/dialog_settings_user.c:88
+#: qcsrc/menu/xonotic/dialog_settings_video.c:142
+msgid "Apply immediately"
+msgstr "Sofort anwenden"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:6
+msgid "Crosshair settings"
+msgstr "Fadenkreuz-Einstellungen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:28
+msgid "Enable center crosshair dot"
+msgstr "Punkt in der Mitte aktivieren"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:31
+msgid "Dot size:"
+msgstr "Punktgröße:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:36
+msgid "Dot alpha:"
+msgstr "Alpha:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:41
+msgid "Dot color:"
+msgstr "Farbe:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:43
+msgid "Use normal crosshair color"
+msgstr "Fadenkreuzfarbe verwenden"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:54
+msgid "Crosshair animations:"
+msgstr "Fadenkreuzanimationen:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:57
+msgid "Smooth effects of crosshairs"
+msgstr "Animations-Effekte für Fadenkreuz"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:61
+msgid "Use rings to indicate weapon status"
+msgstr "Waffenstatus-Ringe anzeigen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:67
+msgid "Hit testing:"
 msgstr "Treffer-Test:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:161
-msgid "HTST^None"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:69
+msgid "HTTST^Disabled"
 msgstr "Aus"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:162
-msgid "TrueAim"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:70
+msgid "HTTST^TrueAim"
 msgstr "TrueAim"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:163
-msgid "Enemies"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:71
+msgid "HTTST^Enemies"
 msgstr "Gegner"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:166
-msgid "Waypoints setup..."
-msgstr "Wegpunkt-Einstellungen..."
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:76
+msgid "Blur crosshair if the shot is obstructed"
+msgstr "Verschwommenes Fadenkreuz für unterbrochene Schusslinie"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:81
+msgid "Animate when hitting an enemy"
+msgstr "Animation, wenn Fadenkreuz über Gegner"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:85
+msgid "Animate when picking up an item"
+msgstr "Animation beim Aufsammeln von Gegenständen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:40
+msgid "Damage:"
+msgstr "Schadenseffekt:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:43
+msgid "Overlay:"
+msgstr "Vollbild-Indikation:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:47
+msgid "Factor:"
+msgstr "Vergrößerungsfaktor:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:52
+msgid "Fade rate:"
+msgstr "Ausblenden nach:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:58
+msgid "Waypoints"
+msgstr "Wegpunkte"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:71
+msgid "Edge offset:"
+msgstr "Kantenabstand:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:80
+msgid "Show names above players"
+msgstr "Namen über Spielern anzeigen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:83
+msgid "Only when near crosshair"
+msgstr "Nur in Fadenkreuznähe"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:171
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:86
+msgid "Display health and armor"
+msgstr "Health und Armor anzeigen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:90
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hudconfirm.c:4
 msgid "Enter HUD editor"
 msgstr "HUD-Editor starten"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:176
-msgid "Force models:"
-msgstr "Modell erzwingen:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hudconfirm.c:28
+msgid "In order for the HUD editor to show, you must first be in game."
+msgstr "Um den HUD-Editor zu starten, muss ein Spiel gestartet werden."
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:177
-msgid "MDL^None"
-msgstr "keine"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hudconfirm.c:30
+msgid "Do you wish to start a local game to set up the HUD?"
+msgstr "Willst du ein lokales Spiel starten, um das HUD zu editieren?"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:178
-msgid "MDL^Custom"
-msgstr "inoffizielle"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hudconfirm.c:33
+msgid "HDCNFRM^Yes"
+msgstr "Ja"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:179
-msgid "MDL^All"
-msgstr "alle"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hudconfirm.c:36
+msgid "HDCNFRM^No"
+msgstr "Nein"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:182
-msgid "Disable gore effects"
-msgstr "Gewalteffekte deaktivieren"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:28
+msgid "Body fading:"
+msgstr "Ausblenden von Leichen:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:184
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:31
 msgid "Gibs:"
 msgstr "Fleischteile:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:186
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:33
 msgid "GIBS^None"
 msgstr "Aus"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:187
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:34
 msgid "GIBS^Few"
 msgstr "Wenige"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:188
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:35
 msgid "GIBS^Many"
 msgstr "Einige"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:189
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:36
 msgid "GIBS^Lots"
 msgstr "Viele"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:193
-msgid "Damage splash:"
-msgstr "Schadenseffekt:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:40
+msgid "Playermodel LOD:"
+msgstr "Spielermodell-LOD:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:197
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:175
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:195
-#: qcsrc/menu/xonotic/dialog_settings_input.c:74
-#: 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 "Sofort anwenden"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:44
+msgid "Force models:"
+msgstr "Modell erzwingen:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:5
-msgid "Waypoints"
-msgstr "Wegpunkte"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:45
+msgid "MDL^None"
+msgstr "keine"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:23
-msgid "Show base waypoints"
-msgstr "Basis-Wegpunkte anzeigen"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:46
+msgid "MDL^Custom"
+msgstr "inoffizielle"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:25
-msgid "Waypoint scale:"
-msgstr "Wegpunkt-Skalierung:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:47
+msgid "MDL^All"
+msgstr "alle"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:29
-msgid "Waypoint alpha:"
-msgstr "Wegpunkt-Alpha:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:50
+msgid "Force player models to mine"
+msgstr "Alle Spieler als mein Modell zeigen"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:33
-msgid "Show names above players"
-msgstr "Namen über Spielern anzeigen"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:52
+msgid "Force player colors to mine"
+msgstr "Alle Spieler in meiner Farbe zeigen"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:6
-msgid "Weapon settings"
-msgstr "Waffeneinstellungen"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:28
+msgid "Field of view:"
+msgstr "Sichtfeld:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:31
+msgid "Zoom:"
+msgstr "Zoom-Modus:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:33
+msgid "RETICLE^Fullscreen"
+msgstr "Vollbild"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:34
+msgid "RETICLE^With reticle"
+msgstr "Mit Zielmarke"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:38
+msgid "ZOOM^Factor:"
+msgstr "Faktor:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:42
+msgid "ZOOM^Speed:"
+msgstr "Geschwindigkeit:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:52
+msgid "ZOOM^Instant"
+msgstr "Sofort"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:56
+msgid "ZOOM^Sensitivity:"
+msgstr "Empfindlichkeit:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:59
+msgid "Velocity zoom:"
+msgstr "Geschwindigkeits-Zoom:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:61
+msgid "VZOOM^Disabled"
+msgstr "Aus"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:62
+msgid "VZOOM^Forward only"
+msgstr "Nur vorwärts"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:63
+msgid "VZOOM^All directions"
+msgstr "Alle Richtungen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:67
+msgid "VZOOM^Speed"
+msgstr "Geschwindigkeit"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:72
+msgid "Allow passing through walls while spectating"
+msgstr "Durch Wände gehen beim Zuschauen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:75
+msgid "1st person perspective"
+msgstr "Aus eigenen Augen schauen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:79
+msgid "Smooth the view when landing from a jump"
+msgstr "Sanftes Landen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:83
+msgid "Smooth the view while crouching"
+msgstr "Sanftes Kriechen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:87
+msgid "View waving while idle"
+msgstr "Blick-Animation im Ruhezustand"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:91
+msgid "View bobbing while walking around"
+msgstr "Blick-Animation beim Laufen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:96
+msgid "3rd person perspective"
+msgstr "Aus externer Kamera schauen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:100
+msgid "Back distance"
+msgstr "Abstand nach hinten"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:106
+msgid "Up distance"
+msgstr "Abstand nach oben"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:29
 msgid "Weapon priority list:"
 msgstr "Waffenreihenfolge"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:34
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:33
 msgid "Up"
 msgstr "Hoch"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:37
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:36
 msgid "Down"
 msgstr "Runter"
 
@@ -1490,13 +1756,21 @@ msgstr "Waffenreihenfolge für Mausrad verwenden"
 msgid "Auto switch weapons on pickup"
 msgstr "Automatisch auf beste Waffe wechseln"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:45
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:46
 msgid "Draw 1st person weapon model"
 msgstr "Waffe in 3D anzeigen"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:55
-msgid "Flip view horizontally"
-msgstr "3D-Ansicht spiegeln"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:58
+msgid "Gun model swaying"
+msgstr "Waffenmodell-Trägheit"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:63
+msgid "Gun model bobbing"
+msgstr "Waffenmodell schwenken"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:68
+msgid "VWMDL^Scale"
+msgstr "Größe"
 
 #: qcsrc/menu/xonotic/dialog_news.c:4
 msgid "News"
@@ -1510,15 +1784,15 @@ msgstr "http://www.xonotic.org/team/blog/"
 msgid "Quit"
 msgstr "Beenden"
 
-#: qcsrc/menu/xonotic/dialog_quit.c:17
+#: qcsrc/menu/xonotic/dialog_quit.c:18
 msgid "Are you sure you want to quit?"
 msgstr "Willst du das Spiel wirklich beenden?"
 
-#: qcsrc/menu/xonotic/dialog_quit.c:20
+#: qcsrc/menu/xonotic/dialog_quit.c:21
 msgid "Yes"
 msgstr "Ja"
 
-#: qcsrc/menu/xonotic/dialog_quit.c:21
+#: qcsrc/menu/xonotic/dialog_quit.c:22
 msgid "No"
 msgstr "Nein"
 
@@ -1675,9 +1949,9 @@ msgid "Audio"
 msgstr "Ton"
 
 #: qcsrc/menu/xonotic/dialog_settings.c:22
-#: qcsrc/menu/xonotic/dialog_settings_network.c:4
-msgid "Network"
-msgstr "Netzwerk"
+#: qcsrc/menu/xonotic/dialog_settings_user.c:4
+msgid "User"
+msgstr "Benutzer"
 
 #: qcsrc/menu/xonotic/dialog_settings.c:23
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:4
@@ -1688,198 +1962,170 @@ msgstr "Sonstiges"
 msgid "Master:"
 msgstr "Master:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:33
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:35
 msgid "Music:"
 msgstr "Musik:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:41
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:45
 msgid "VOL^Ambient:"
 msgstr "Umgebung:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:48
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:54
 msgid "Info:"
 msgstr "Info:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:55
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:63
 msgid "Items:"
 msgstr "Gegenstände:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:62
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:72
 msgid "Pain:"
 msgstr "Schmerz:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:69
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:81
 msgid "Player:"
 msgstr "Spieler:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:76
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:90
 msgid "Shots:"
 msgstr "Schüsse:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:83
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:99
 msgid "Voice:"
 msgstr "Stimme:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:91
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:109
 msgid "Weapons:"
 msgstr "Waffen:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:98
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:158
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:117
+msgid "New style sound attenuation"
+msgstr "Neue Sound-Distanzformel"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:119
+msgid "Mute sounds when not active"
+msgstr "Keine Sounds abspielen, wenn inaktiv"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:122
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:194
 msgid "Frequency:"
 msgstr "Frequenz:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:100
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:124
 msgid "8 kHz"
 msgstr "8 kHz"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:101
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:125
 msgid "11.025 kHz"
 msgstr "11,025 kHz"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:102
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:126
 msgid "16 kHz"
 msgstr "16 kHz"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:103
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:127
 msgid "22.05 kHz"
 msgstr "22,05 kHz"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:104
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:128
 msgid "24 kHz"
 msgstr "24 kHz"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:105
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:129
 msgid "32 kHz"
 msgstr "32 kHz"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:106
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:130
 msgid "44.1 kHz"
 msgstr "44,1 kHz"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:107
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:131
 msgid "48 kHz"
 msgstr "48 kHz"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:110
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:134
 msgid "Channels:"
 msgstr "Kanäle:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:112
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:136
 msgid "Mono"
 msgstr "Mono"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:113
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:137
 msgid "Stereo"
 msgstr "Stereo"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:114
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:138
 msgid "2.1"
 msgstr "2.1"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:115
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:139
 msgid "4"
 msgstr "4"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:116
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:140
 msgid "5"
 msgstr "5"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:117
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:141
 msgid "5.1"
 msgstr "5.1"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:118
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:142
 msgid "6.1"
 msgstr "6.1"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:119
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:143
 msgid "7.1"
 msgstr "7.1"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:123
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:146
 msgid "Swap Stereo"
 msgstr "Stereokanäle tauschen"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:127
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:148
 msgid "Headphone friendly mode"
 msgstr "Kopfhörer-Modus"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:131
-msgid "New style sound attenuation"
-msgstr "Neue Sound-Distanzformel"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:133
-msgid "Spatial voices:"
-msgstr "Räumliche Sprachnachrichten:"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:134
-msgid "VOCS^None"
-msgstr "keine"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:135
-msgid "VOCS^Taunts"
-msgstr "nur Spott"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:136
-msgid "VOCS^All"
-msgstr "alle"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:139
-msgid "Taunt range:"
-msgstr "Spott-Radius:"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:142
-msgid "RNG^Very short"
-msgstr "Sehr klein"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:143
-msgid "RNG^Short"
-msgstr "Klein"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:144
-msgid "RNG^Normal"
-msgstr "Normal"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:145
-msgid "RNG^Long"
-msgstr "Groß"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:170
+msgid "Hit indication sound"
+msgstr "Treffer-Signal"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:146
-msgid "RNG^Full"
-msgstr "Sehr groß"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:172
+msgid "Chat message sound"
+msgstr "Chat-Signal"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:153
-msgid "Automatic taunts"
-msgstr "Automatischer Spott"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:174
+msgid "Menu sounds"
+msgstr "Menü-Sounds"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:162
-msgid "Time warning:"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:177
+msgid "Time announcer:"
 msgstr "Zeitwarnung:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:164
-msgid "WRN^None"
-msgstr "keine"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:179
+msgid "WRN^Disabled"
+msgstr "Aus"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:165
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:180
 msgid "1 minute"
 msgstr "1 Minute"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:166
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:181
 msgid "5 minutes"
 msgstr "5 Minuten"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:167
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:182
 msgid "WRN^Both"
 msgstr "beide"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:170
-msgid "Hit indicator"
-msgstr "Treffer-Indikator"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:189
+msgid "Automatic taunts"
+msgstr "Automatischer Spott"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:172
-msgid "Menu sounds"
-msgstr "Menü-Sounds"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:199
+msgid "Debug info about sounds"
+msgstr "Sound-Info einblenden"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:38
 msgid "Quality preset:"
@@ -1942,234 +2188,226 @@ msgid "DET^Insane"
 msgstr "Wahnsinnig"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:62
-msgid "Antialiasing:"
-msgstr "Kantenglättung:"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:64
-msgid "AA^Disabled"
-msgstr "Aus"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:65
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:106
-msgid "2x"
-msgstr "2x"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:66
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:107
-msgid "4x"
-msgstr "4x"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:70
-msgid "High-quality frame buffer"
-msgstr "Genauerer Framebuffer"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:73
 msgid "Texture resolution:"
 msgstr "Texturauflösung:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:76
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:65
 msgid "RES^Leet"
 msgstr "Leet"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:77
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:66
 msgid "RES^Lowest"
 msgstr "Sehr niedrig"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:78
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:67
+msgid "RES^Very low"
+msgstr "Sehr niedrig"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:68
 msgid "RES^Low"
 msgstr "Niedrig"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:79
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:69
 msgid "RES^Normal"
 msgstr "Normal"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:80
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:70
 msgid "RES^Good"
 msgstr "Gut"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:81
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:71
 msgid "RES^Best"
 msgstr "Sehr gut"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:94
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:97
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:84
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:87
 msgid "Avoid lossy texture compression"
 msgstr "Texturkompression vermeiden"
 
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:93
+msgid "Use lightmaps"
+msgstr "Lightmaps verwenden"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:94
+msgid "Deluxe mapping"
+msgstr "Deluxemapping"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:96
+msgid "Gloss"
+msgstr "Glanz"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:100
+msgid "Particles quality:"
+msgstr "Partikelqualität:"
+
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:103
-msgid "Anisotropy:"
-msgstr "Anisotropie:"
+msgid "Particles distance:"
+msgstr "Partikeldistanz:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:105
-msgid "ANISO^Disabled"
-msgstr "Aus"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:106
+msgid "Damage effects:"
+msgstr "Schadenseffekte:"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:108
-msgid "8x"
-msgstr "8x"
+msgid "DMGPRTCLS^Disabled"
+msgstr "Aus"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:109
-msgid "16x"
-msgstr "16x"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:113
-msgid "Particle quality:"
-msgstr "Partikelqualität:"
+msgid "DMGPRTCLS^Skeletal"
+msgstr "Nur auf Modellen"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:116
-msgid "Particle distance:"
-msgstr "Partikeldistanz:"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:110
+msgid "DMGPRTCLS^All"
+msgstr "alle"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:120
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:114
 msgid "Decals"
 msgstr "Einschusslöcher"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:121
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:115
 msgid "Decals on models"
 msgstr "auch auf Objekten"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:125
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:119
 msgid "Distance:"
 msgstr "Distanz:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:131
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:125
 msgid "Time:"
 msgstr "Zeit:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:137
-msgid "Use lightmaps"
-msgstr "Lightmaps verwenden"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:138
-msgid "Deluxe mapping"
-msgstr "Deluxemapping"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:140
-msgid "Gloss"
-msgstr "Glanz"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:143
-msgid "Offset mapping"
-msgstr "Offsetmapping"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:145
-msgid "Relief mapping"
-msgstr "Reliefmapping"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:148
-msgid "Reflections:"
-msgstr "Reflexionen:"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:151
-msgid "Blurred"
-msgstr "Schwammig"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:152
-msgid "REFL^Good"
-msgstr "Gut"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:153
-msgid "Sharp"
-msgstr "Scharf"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:131
+msgid "Coronas"
+msgstr "Koronen"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:158
-msgid "Show surfaces"
-msgstr "Oberflächen anzeigen"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:132
+msgid "Use Occlusion Queries"
+msgstr "Occlusion Queries verwenden"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:160
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:134
 msgid "No dynamic lighting"
 msgstr "Kein dynamisches Licht"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:162
-msgid "Flash blend approximation"
-msgstr "Flash-Blend-Näherung"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:136
+msgid "Fake corona lighting"
+msgstr "Korona-Approximation"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:164
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:138
 msgid "Realtime dynamic lighting"
 msgstr "Dynamisches Licht in Echtzeit"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:165
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:169
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:139
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:143
 msgid "Shadows"
 msgstr "Schatten"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:168
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:142
 msgid "Realtime world lighting"
 msgstr "Map-Licht in Echtzeit"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:173
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:147
 msgid "Use normal maps"
 msgstr "Normalmaps verwenden"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:175
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:149
 msgid "Soft shadows"
 msgstr "Weiche Schatten"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:178
-msgid "Coronas"
-msgstr "Koronen"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:153
+msgid "Show surfaces"
+msgstr "Oberflächen anzeigen"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:179
-msgid "Use Occlusion Queries"
-msgstr "Occlusion Queries verwenden"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:155
+msgid "Offset mapping"
+msgstr "Offsetmapping"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:157
+msgid "Relief mapping"
+msgstr "Reliefmapping"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:181
-msgid "High Dynamic Range (HDR)"
-msgstr "Lichtdynamik (HDR)"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:159
+msgid "LOD"
+msgstr "LOD"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:185
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:162
+msgid "Bloom"
+msgstr "Überstrahlung"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:164
+msgid "Reflections:"
+msgstr "Reflexionen:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:167
+msgid "Blurred"
+msgstr "Schwammig"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:168
+msgid "REFL^Good"
+msgstr "Gut"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:169
+msgid "Sharp"
+msgstr "Scharf"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:174
 msgid "Motion blur:"
 msgstr "Bewegungsunschärfe:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:190
-msgid "Blur and sharpen postprocessing"
-msgstr "Schärfeeffekte"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:179
+msgid "Extra postprocessing effects"
+msgstr "Bildbearbeitungseffekte"
 
 #: qcsrc/menu/xonotic/dialog_settings_input.c:26
 msgid "Key bindings:"
 msgstr "Tastenbelegung:"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:31
+#: qcsrc/menu/xonotic/dialog_settings_input.c:30
 msgid "Change key..."
 msgstr "Taste ändern..."
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:35
+#: qcsrc/menu/xonotic/dialog_settings_input.c:34
 msgid "Edit..."
 msgstr "Bearbeiten..."
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:46
-msgid "Sensitivity:"
-msgstr "Empfindlichkeit:"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:45
+msgid "Pressing \"enter console\" key also closes it"
+msgstr "\"Konsole öffnen\" schließt auch"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:47
+msgid "Automatically repeat jumping if holding jump"
+msgstr "Auto-Springen"
 
 #: qcsrc/menu/xonotic/dialog_settings_input.c:51
-msgid "UI mouse speed:"
-msgstr "Mausgeschwindigkeit:"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:53
+#: qcsrc/menu/xonotic/dialog_settings_input.c:56
+msgid "Use joystick input"
+msgstr "Joystick verwenden"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:55
-msgid "Mouse filter"
-msgstr "Mausfilterung"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:61
+msgid "Mouse:"
+msgstr "Maus:"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:57
-msgid "Invert mouse"
-msgstr "Höhe invertieren"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:64
+msgid "Sensitivity:"
+msgstr "Empfindlichkeit:"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:60
-#: qcsrc/menu/xonotic/dialog_settings_input.c:62
-msgid "Use joystick input"
-msgstr "Joystick verwenden"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:68
+msgid "Smooth aiming"
+msgstr "Sanftes Zielen"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:65
-#: qcsrc/menu/xonotic/dialog_settings_input.c:67
-msgid "Turn off OS mouse acceleration"
-msgstr "Mausbeschleunigung deaktivieren"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:71
+msgid "Invert aiming"
+msgstr "Mausrichtung umkehren"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:69
-msgid "\"enter console\" also closes"
-msgstr "\"Konsole öffnen\" schließt auch"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:75
+#: qcsrc/menu/xonotic/dialog_settings_input.c:77
+#: qcsrc/menu/xonotic/dialog_settings_input.c:80
+msgid "Disable system mouse acceleration"
+msgstr "System-Mausbeschleunigung deaktivieren"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:72
-msgid "Holding jump key keeps jumping"
-msgstr "Festhalten der Springen-Taste springt weiter"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:85
+msgid "Enable built in mouse acceleration"
+msgstr "Xonotic-Mausbeschleunigung aktivieren"
 
 #: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:5
 msgid "User defined key bind"
@@ -2192,106 +2430,263 @@ msgid "Cancel"
 msgstr "Abbrechen"
 
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:26
-msgid "Menu skins:"
-msgstr "Menü-Skins:"
-
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:47
-msgid "Show current time"
-msgstr "Uhrzeit anzeigen"
-
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:49
-msgid "Show current date"
-msgstr "Datum anzeigen"
-
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:51
-msgid "Show frames per second"
-msgstr "Frames pro Sekunde anzeigen"
-
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:53
-msgid "Minimize input latency"
-msgstr "Eingabelatenz minimieren"
-
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:59
-msgid "Menu Tooltips:"
-msgstr "Menü-Tooltips:"
-
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:61
-msgid "Standard"
-msgstr "Standard"
-
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:5
-msgid "Advanced settings"
-msgstr "Erweiterte Einstellungen"
-
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:23
-msgid "Cvar filter:"
-msgstr "Cvar-Filter:"
-
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:34
-msgid "Setting:"
-msgstr "Einstellung:"
-
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:42
-msgid "Value:"
-msgstr "Wert:"
-
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:56
-msgid "Description:"
-msgstr "Beschreibung:"
+msgid "Network:"
+msgstr "Netzwerk:"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:26
-msgid "Client-side movement prediction"
-msgstr "Client-seitige Bewegungssimulation"
-
-#: qcsrc/menu/xonotic/dialog_settings_network.c:30
-msgid "Show netgraph"
-msgstr "Netgraph anzeigen"
-
-#: qcsrc/menu/xonotic/dialog_settings_network.c:33
-msgid "Network speed:"
-msgstr "Netzwerkgeschwindigkeit:"
-
-#: qcsrc/menu/xonotic/dialog_settings_network.c:35
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:31
 msgid "56k"
 msgstr "Modem"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:36
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:32
 msgid "ISDN"
 msgstr "ISDN"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:37
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:33
 msgid "Slow ADSL"
 msgstr "ADSL (langsam)"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:38
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:34
 msgid "Fast ADSL"
 msgstr "ADSL (schnell)"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:39
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:35
 msgid "Broadband"
 msgstr "Breitband"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:42
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:39
 msgid "Input packets/s:"
 msgstr "Eingabe-Pakete/s:"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:46
-msgid "HTTP downloads:"
-msgstr "HTTP-Downloads:"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:45
+msgid "Local latency:"
+msgstr "Simulierte Latenz:"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:49
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:50
+msgid "Client UDP port:"
+msgstr "Client-UDP-Port:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:55
+msgid "Show netgraph"
+msgstr "Netgraph anzeigen"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:59
+msgid "Client-side movement prediction"
+msgstr "Client-seitige Bewegungssimulation"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:62
+msgid "Movement error compensation"
+msgstr "Fehlerkompensation"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:66
 msgid "Downloads:"
 msgstr "Downloads:"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:53
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:69
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:81
+msgid "Maximum:"
+msgstr "Maximum:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:73
 msgid "Speed (kB/s):"
 msgstr "Geschwindigkeit (kB/s):"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:57
-msgid "Client UDP port:"
-msgstr "Client-UDP-Port:"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:78
+msgid "Framerate:"
+msgstr "Framerate:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:26
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:83
+msgid "MAXFPS^5 fps"
+msgstr "5 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:84
+msgid "MAXFPS^10 fps"
+msgstr "10 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:85
+msgid "MAXFPS^20 fps"
+msgstr "20 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:86
+msgid "MAXFPS^30 fps"
+msgstr "30 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:87
+msgid "MAXFPS^40 fps"
+msgstr "40 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:88
+msgid "MAXFPS^50 fps"
+msgstr "50 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:89
+msgid "MAXFPS^60 fps"
+msgstr "60 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:90
+msgid "MAXFPS^70 fps"
+msgstr "70 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:91
+msgid "MAXFPS^100 fps"
+msgstr "100 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:92
+msgid "MAXFPS^125 fps"
+msgstr "125 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:93
+msgid "MAXFPS^200 fps"
+msgstr "200 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:94
+msgid "MAXFPS^Unlimited"
+msgstr "Unbegrenzt"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:98
+msgid "Target:"
+msgstr "Ziel:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:100
+msgid "TRGT^Disabled"
+msgstr "Aus"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:101
+msgid "TRGT^30 fps"
+msgstr "30 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:102
+msgid "TRGT^40 fps"
+msgstr "40 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:103
+msgid "TRGT^50 fps"
+msgstr "50 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:104
+msgid "TRGT^60 fps"
+msgstr "60 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:105
+msgid "TRGT^100 fps"
+msgstr "100 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:106
+msgid "TRGT^125 fps"
+msgstr "125 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:107
+msgid "TRGT^200 fps"
+msgstr "200 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:111
+msgid "Idle limit:"
+msgstr "wenn inaktiv:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:113
+msgid "IDLFPS^10 fps"
+msgstr "10 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:114
+msgid "IDLFPS^20 fps"
+msgstr "20 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:115
+msgid "IDLFPS^30 fps"
+msgstr "30 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:116
+msgid "IDLFPS^60 fps"
+msgstr "60 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:117
+msgid "IDLFPS^Unlimited"
+msgstr "Unbegrenzt"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:122
+msgid "Show frames per second"
+msgstr "Frames pro Sekunde anzeigen"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:125
+msgid "Save processing time for other apps"
+msgstr "CPU-Zeit für andere Anwendungen sparen"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:129
+msgid "Menu tooltips:"
+msgstr "Menü-Tooltips:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:131
+msgid "TLTIP^Disabled"
+msgstr "Aus"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:132
+msgid "TLTIP^Standard"
+msgstr "Standard"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:133
+msgid "TLTIP^Advanced"
+msgstr "Fortgeschritten"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:137
+msgid "Show current time"
+msgstr "Uhrzeit anzeigen"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:139
+msgid "Show current date"
+msgstr "Datum anzeigen"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:141
+msgid "Enable developer mode"
+msgstr "Entwicklermodus aktivieren"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:5
+msgid "Advanced settings"
+msgstr "Erweiterte Einstellungen"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:31
+msgid "Cvar filter:"
+msgstr "Cvar-Filter:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:44
+msgid "Setting:"
+msgstr "Einstellung:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:48
+msgid "Type:"
+msgstr "Typ:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:52
+msgid "Value:"
+msgstr "Wert:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:68
+msgid "Description:"
+msgstr "Beschreibung:"
+
+#: qcsrc/menu/xonotic/dialog_settings_user.c:27
+msgid "Menu skins:"
+msgstr "Menü-Skins:"
+
+#: qcsrc/menu/xonotic/dialog_settings_user.c:31
+msgid "Set skin"
+msgstr "Skin setzen"
+
+#: qcsrc/menu/xonotic/dialog_settings_user.c:74
+msgid "Set language"
+msgstr "Sprache setzen"
+
+#: qcsrc/menu/xonotic/dialog_settings_user.c:79
+msgid "Disable gore effects and harsh language"
+msgstr "Gewalteffekte deaktivieren"
+
+#: qcsrc/menu/xonotic/dialog_settings_user.c:82
+msgid "Allow player statistics to track your client"
+msgstr "Aufzeichung von Spielerstatistiken erlauben"
+
+#: qcsrc/menu/xonotic/dialog_settings_user.c:84
+msgid "Allow player statistics to use your nickname"
+msgstr "Verwendung des Spielernamens für Spielerstatistiken erlauben"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:26
 msgid "Resolution:"
 msgstr "Auflösung:"
 
@@ -2339,90 +2734,148 @@ msgstr "Kolossal"
 msgid "Color depth:"
 msgstr "Farbtiefe:"
 
+#: qcsrc/menu/xonotic/dialog_settings_video.c:44
+msgid "16bit"
+msgstr "16 Bit"
+
 #: qcsrc/menu/xonotic/dialog_settings_video.c:45
+msgid "32bit"
+msgstr "32 Bit"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:48
 msgid "Full screen"
 msgstr "Vollbild"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:46
+#: qcsrc/menu/xonotic/dialog_settings_video.c:49
 msgid "Vertical Synchronization"
 msgstr "Vertikale Synchronisation"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:48
-msgid "Use OpenGL 2.0 shaders (GLSL)"
-msgstr "OpenGL 2.0 Shaders verwenden (GLSL)"
-
-#: qcsrc/menu/xonotic/dialog_settings_video.c:51
-msgid "Use GLSL to handle color control"
-msgstr "GLSL für Farbregelung verwenden"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:53
+msgid "Anisotropy:"
+msgstr "Anisotropie:"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:55
-msgid "Vertex Buffer Objects (VBOs)"
-msgstr "Vertex Buffer Objects (VBOs)"
+msgid "ANISO^Disabled"
+msgstr "Aus"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:56
+#: qcsrc/menu/xonotic/dialog_settings_video.c:66
+msgid "2x"
+msgstr "2x"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:57
+#: qcsrc/menu/xonotic/dialog_settings_video.c:67
+msgid "4x"
+msgstr "4x"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:58
-msgid "VBO^Off"
-msgstr "Aus"
+msgid "8x"
+msgstr "8x"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:59
-msgid "Vertices, some Tris (compatible)"
-msgstr "Ecken, einige Dreiecke (kompatibel)"
+msgid "16x"
+msgstr "16x"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:62
-msgid "Vertices"
-msgstr "Ecken"
+msgid "Antialiasing:"
+msgstr "Kantenglättung:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:63
-msgid "Vertices and Triangles"
-msgstr "Ecken und Dreiecke"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:65
+msgid "AA^Disabled"
+msgstr "Aus"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:66
+#: qcsrc/menu/xonotic/dialog_settings_video.c:71
+msgid "High-quality frame buffer"
+msgstr "Genauerer Framebuffer"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:76
 msgid "Depth first:"
 msgstr "Tiefe zuerst rendern:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:68
+#: qcsrc/menu/xonotic/dialog_settings_video.c:78
 msgid "DF^Disabled"
 msgstr "Aus"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:69
+#: qcsrc/menu/xonotic/dialog_settings_video.c:79
 msgid "DF^World"
 msgstr "nur Map"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:70
+#: qcsrc/menu/xonotic/dialog_settings_video.c:80
 msgid "DF^All"
 msgstr "Immer"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:73
-msgid "Wait for GPU to finish each frame"
-msgstr "Bei jedem Frame auf die Grafikkarte warten"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:83
+msgid "Vertex Buffer Objects (VBOs)"
+msgstr "Vertex Buffer Objects (VBOs)"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:76
+#: qcsrc/menu/xonotic/dialog_settings_video.c:86
+msgid "VBO^Off"
+msgstr "Aus"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:87
+msgid "Vertices, some Tris (compatible)"
+msgstr "Ecken, einige Dreiecke (kompatibel)"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:90
+msgid "Vertices"
+msgstr "Ecken"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:91
+msgid "Vertices and Triangles"
+msgstr "Ecken und Dreiecke"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:94
 msgid "Brightness:"
 msgstr "Helligkeit:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:79
+#: qcsrc/menu/xonotic/dialog_settings_video.c:97
 msgid "Contrast:"
 msgstr "Kontrast:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:82
+#: qcsrc/menu/xonotic/dialog_settings_video.c:100
 msgid "Gamma:"
 msgstr "Gamma:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:87
+#: qcsrc/menu/xonotic/dialog_settings_video.c:105
 msgid "Contrast boost:"
 msgstr "Kontrasterhöhung:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:92
+#: qcsrc/menu/xonotic/dialog_settings_video.c:110
 msgid "Saturation:"
 msgstr "Sättigung:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:98
+#: qcsrc/menu/xonotic/dialog_settings_video.c:116
 msgid "LIT^Ambient:"
 msgstr "Umgebungslicht:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:101
+#: qcsrc/menu/xonotic/dialog_settings_video.c:119
 msgid "Intensity:"
 msgstr "Lichtstärke:"
 
+#: qcsrc/menu/xonotic/dialog_settings_video.c:123
+msgid "Use OpenGL 2.0 shaders (GLSL)"
+msgstr "OpenGL 2.0 Shaders verwenden (GLSL)"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:125
+msgid "Use GLSL to handle color control"
+msgstr "GLSL für Farbregelung verwenden"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:128
+msgid "Wait for GPU to finish each frame"
+msgstr "Bei jedem Frame auf die Grafikkarte warten"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:132
+msgid "Psycho coloring (easter egg)"
+msgstr "Psycho-Farben (Osterei)"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:135
+msgid "Trippy vertices (easter egg)"
+msgstr "Alles total verbiegen (Osterei)"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:138
+msgid "Flip view horizontally"
+msgstr "3D-Ansicht spiegeln"
+
 #: qcsrc/menu/xonotic/dialog_singleplayer.c:4
 msgid "Singleplayer"
 msgstr "Einzelspieler"
@@ -2432,6 +2885,22 @@ msgid "Instant action! (random map with bots)"
 msgstr "Sofortstart! (zufällige Map mit Bots)"
 
 #: qcsrc/menu/xonotic/dialog_singleplayer.c:137
+msgid "Campaign Difficulty:"
+msgstr "Schwierigkeitsstufe:"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:138
+msgid "CSKL^Easy"
+msgstr "Einfach"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:139
+msgid "CSKL^Medium"
+msgstr "Mittel"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:140
+msgid "CSKL^Hard"
+msgstr "Schwer"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:142
 msgid "Start Singleplayer!"
 msgstr "Spiel starten!"
 
@@ -2467,22 +2936,22 @@ msgstr "pink"
 msgid "spectate"
 msgstr "zuschauen"
 
-#: qcsrc/menu/xonotic/mainwindow.c:35 qcsrc/menu/xonotic/mainwindow.c:38
+#: qcsrc/menu/xonotic/mainwindow.c:39 qcsrc/menu/xonotic/mainwindow.c:42
 msgid "Do not press this button again!"
 msgstr "Bitte nicht nochmal diesen Knopf drücken!"
 
-#: qcsrc/menu/xonotic/maplist.c:278
+#: qcsrc/menu/xonotic/maplist.c:282
 msgid ""
 "Huh? Can't play this (m is NULL). Refiltering so this won't happen again.\n"
 msgstr ""
 "Hä? Kann diese Map nicht starten (m ist NULL). Mapliste wird neu gefiltert.\n"
 
-#: qcsrc/menu/xonotic/maplist.c:286
+#: qcsrc/menu/xonotic/maplist.c:290
 #, c-format
 msgid "%s's Xonotic Server"
 msgstr "%ss Xonotic-Server"
 
-#: qcsrc/menu/xonotic/maplist.c:291
+#: qcsrc/menu/xonotic/maplist.c:295
 msgid ""
 "Huh? Can't play this (invalid game type). Refiltering so this won't happen "
 "again.\n"
@@ -2490,7 +2959,11 @@ msgstr ""
 "Hä? Kann diese Map nicht starten (ungültiger Spieltyp). Mapliste wird neu "
 "gefiltert.\n"
 
-#: qcsrc/menu/xonotic/playermodel.c:174
+#: qcsrc/menu/xonotic/playerlist.c:118 qcsrc/menu/xonotic/playerlist.c:128
+msgid "spectator"
+msgstr "schaut zu"
+
+#: qcsrc/menu/xonotic/playermodel.c:177
 msgid "<no model found>"
 msgstr "<Spielermodell nicht gefunden>"
 
@@ -2598,298 +3071,207 @@ msgstr ""
 "^1FEHLER: Texturekompression ist notwendig aber nicht unterstützt.\n"
 "^1Darstellungsprobleme sind zu erwarten.\n"
 
-#: qcsrc/menu/xonotic/util.qc:546
-msgid "Arena"
-msgstr "Arena"
-
-#: qcsrc/menu/xonotic/util.qc:547
-msgid "Assault"
-msgstr "Assault"
-
-#: qcsrc/menu/xonotic/util.qc:548
-msgid "Capture The Flag"
-msgstr "Capture The Flag"
-
-#: qcsrc/menu/xonotic/util.qc:549
-msgid "Clan Arena"
-msgstr "Clan Arena"
-
-#: qcsrc/menu/xonotic/util.qc:550
-msgid "Deathmatch"
-msgstr "Deathmatch"
-
-#: qcsrc/menu/xonotic/util.qc:551
-msgid "Domination"
-msgstr "Domination"
-
-#: qcsrc/menu/xonotic/util.qc:552
-msgid "Freeze Tag"
-msgstr "Freeze Tag"
-
-#: qcsrc/menu/xonotic/util.qc:553
-msgid "Keepaway"
-msgstr "Keepaway"
-
-#: qcsrc/menu/xonotic/util.qc:554
-msgid "Key Hunt"
-msgstr "Key Hunt"
-
-#: qcsrc/menu/xonotic/util.qc:555
-msgid "Last Man Standing"
-msgstr "Last Man Standing"
-
-#: qcsrc/menu/xonotic/util.qc:556
-msgid "Nexball"
-msgstr "Nexball"
-
-#: qcsrc/menu/xonotic/util.qc:557
-msgid "Onslaught"
-msgstr "Onslaught"
-
-#: qcsrc/menu/xonotic/util.qc:558
-msgid "Race"
-msgstr "Race"
-
-#: qcsrc/menu/xonotic/util.qc:559
-msgid "Race CTS"
-msgstr "Race CTS"
-
-#: qcsrc/menu/xonotic/util.qc:560
-msgid "Runematch"
-msgstr "Runematch"
-
-#: qcsrc/menu/xonotic/util.qc:561
-msgid "Team Deathmatch"
-msgstr "Team Deathmatch"
-
-#: qcsrc/menu/xonotic/util.qc:580
-#, c-format
-msgid "@!#%'n Tuba Throwing"
-msgstr "@!#%'n Tuba-Werfen"
-
-#: qcsrc/menu/xonotic/util.qc:600 qcsrc/menu/xonotic/util.qc:616
-#: qcsrc/menu/xonotic/util.qc:625 qcsrc/menu/xonotic/util.qc:633
-#: qcsrc/menu/xonotic/util.qc:645
-msgid "Default"
-msgstr "Standard"
-
-#: qcsrc/menu/xonotic/util.qc:611
+#: qcsrc/menu/xonotic/util.qc:643
 msgid "Use default"
 msgstr "Standard verwenden"
 
-#: qcsrc/menu/xonotic/util.qc:631
+#: qcsrc/menu/xonotic/util.qc:663
 msgid "Team Color:"
 msgstr "Teamfarbe:"
 
-#: qcsrc/menu/xonotic/util.qh:48
+#: qcsrc/menu/xonotic/util.qh:50
 msgid "Enable panel"
 msgstr "Panel aktivieren"
 
 #: weapons.qc.tmp:1
-msgid "Crylink"
-msgstr "Crylink"
+msgid "Rifle"
+msgstr "Gewehr"
 
 #: weapons.qc.tmp:2
-msgid "Heavy Laser Assault Cannon"
-msgstr "Heavy Laser Assault Cannon"
+msgid "Machine Gun"
+msgstr "Maschinengewehr"
 
 #: weapons.qc.tmp:3
-msgid "MinstaNex"
-msgstr "MinstaNex"
+msgid "Rocket Launcher"
+msgstr "Rocket Launcher"
 
 #: weapons.qc.tmp:4
-msgid "Mortar"
-msgstr "Mortar"
+msgid "Port-O-Launch"
+msgstr "Port-O-Launch"
 
 #: weapons.qc.tmp:5
-msgid "Laser"
-msgstr "Laser"
+msgid "Grappling Hook"
+msgstr "Enterhaken"
 
 #: weapons.qc.tmp:6
-msgid "Nex"
-msgstr "Nex"
+msgid "Electro"
+msgstr "Elektro"
 
 #: weapons.qc.tmp:7
-msgid "Grappling Hook"
-msgstr "Enterhaken"
+msgid "Laser"
+msgstr "Laser"
 
 #: weapons.qc.tmp:8
-msgid "Rocket Launcher"
-msgstr "Rocket Launcher"
+msgid "Shotgun"
+msgstr "Schrotgewehr"
 
 #: weapons.qc.tmp:9
-msgid "Port-O-Launch"
-msgstr "Port-O-Launch"
+#, c-format
+msgid "@!#%'n Tuba"
+msgstr "@!#%'n Tuba"
 
 #: weapons.qc.tmp:10
-msgid "Electro"
-msgstr "Elektro"
+msgid "MinstaNex"
+msgstr "MinstaNex"
 
 #: weapons.qc.tmp:11
-msgid "Hagar"
-msgstr "Hagar"
+msgid "Crylink"
+msgstr "Crylink"
 
 #: weapons.qc.tmp:12
-msgid "Shotgun"
-msgstr "Schrotgewehr"
+msgid "Heavy Laser Assault Cannon"
+msgstr "Heavy Laser Assault Cannon"
 
 #: weapons.qc.tmp:13
-#, c-format
-msgid "@!#%'n Tuba"
-msgstr "@!#%'n Tuba"
+msgid "Mortar"
+msgstr "Mortar"
 
 #: weapons.qc.tmp:14
-msgid "Mine Layer"
-msgstr "Minen Leger"
+msgid "Hagar"
+msgstr "Hagar"
 
 #: weapons.qc.tmp:15
-msgid "Rifle"
-msgstr "Gewehr"
+msgid "T.A.G. Seeker"
+msgstr "T.A.G. Seeker"
 
 #: weapons.qc.tmp:16
-msgid "Machine Gun"
-msgstr "Maschinen Gewehr"
-
-#: weapons.qc.tmp:17
 msgid "Fireball"
 msgstr "Fireball"
 
+#: weapons.qc.tmp:17
+msgid "Mine Layer"
+msgstr "Minenleger"
+
 #: weapons.qc.tmp:18
-msgid "T.A.G. Seeker"
-msgstr "T.A.G. Seeker"
+msgid "Nex"
+msgstr "Nex"
 
-#~ msgid "Powerup sharpen"
-#~ msgstr "Bonus-Schärfe"
+#~ msgid "%d/%d, %d free player slots"
+#~ msgstr "%d/%d, %d freie Slots"
 
-#~ msgid "Damage & water blur"
-#~ msgstr "Schadens-Unschärfe"
+#~ msgid "Gameplay:"
+#~ msgstr "Spielregeln:"
 
-#~ msgid "%s sniped themself somehow"
-#~ msgstr "%s hat so scharf geschossen, dass er sich selbst getroffen hat"
+#~ msgid "Ping:"
+#~ msgstr "Ping:"
 
-#~ msgid "%s shot themself automatically"
-#~ msgstr "%s hat sich vollautomatisch selbst erschossen"
+#~ msgid "CA:"
+#~ msgstr "CA:"
 
-#~ msgid "%s exploded"
-#~ msgstr "%s ist explodiert"
+#~ msgid "View bobbing:"
+#~ msgstr "Sicht-Wackeln:"
 
-#~ msgid "%s hoped %s's missiles wouldn't bounce"
-#~ msgstr "%s hat gehofft, dass %ss Raketen nicht von Wänden abprallen"
+#~ msgid "Zoom speed:"
+#~ msgstr "Vergrößerungsgeschwindigkeit:"
 
-#~ msgid "%s detonated"
-#~ msgstr "%s verfing sich in der eigenen Detonation"
+#~ msgid "Weapon settings..."
+#~ msgstr "Waffeneinstellungen..."
 
-#~ msgid "%s tried out his own grenade"
-#~ msgstr "%s wollte wissen, ob seine Granate funktioniert"
+#~ msgid "Size:"
+#~ msgstr "Größe:"
 
-#~ msgid "Disable multithreaded OpenGL"
-#~ msgstr "OpenGL-Multithreading deaktivieren"
+#~ msgid "HTST^None"
+#~ msgstr "Aus"
 
-#~ msgid "Bloom"
-#~ msgstr "Überstrahlung"
+#~ msgid "Waypoints setup..."
+#~ msgstr "Wegpunkt-Einstellungen..."
 
-#~ msgid "All players"
-#~ msgstr "Alle Spieler"
+#~ msgid "Show base waypoints"
+#~ msgstr "Basis-Wegpunkte anzeigen"
 
-#~ msgid "Teammates"
-#~ msgstr "Mitspieler"
+#~ msgid "Waypoint scale:"
+#~ msgstr "Wegpunkt-Skalierung:"
 
-#~ msgid "Show names:"
-#~ msgstr "Namen anzeigen:"
+#~ msgid "Waypoint alpha:"
+#~ msgstr "Wegpunkt-Alpha:"
 
-#~ 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"
+#~ msgid "Spatial voices:"
+#~ msgstr "Räumliche Sprachnachrichten:"
 
-#~ msgid "%s hurt his own ears with the @!#%%'n Tuba"
-#~ msgstr ""
-#~ "%s haben die Ohren geschmerzt von seinem eigenen Spiel auf der @!#%%'n "
-#~ "Tuba"
+#~ msgid "VOCS^None"
+#~ msgstr "keine"
 
-#~ msgid "%s ate %s's rocket"
-#~ msgstr "%s hat %ss Rakete in den Mund genommen"
+#~ msgid "VOCS^Taunts"
+#~ msgstr "nur Spott"
 
-#~ msgid "%s almost dodged %s's rocket"
-#~ msgstr "%s ist fast %ss Rakete ausgewichen"
+#~ msgid "VOCS^All"
+#~ msgstr "alle"
 
-#~ msgid "%s got too close to %s's rocket"
-#~ msgstr "%s ist %ss Rakete zu nahe getreten"
+#~ msgid "Taunt range:"
+#~ msgstr "Spott-Radius:"
 
-#~ msgid "%s failed to hide from %s's rifle"
-#~ msgstr "%s hat es nicht geschafft, sich vor %ss Gewehr zu verstecken"
+#~ msgid "RNG^Very short"
+#~ msgstr "Sehr klein"
 
-#~ msgid "%s felt %s doing the impossible to him"
-#~ msgstr "%s hat gespürt, wie %s das Unmögliche für ihn getan hat"
+#~ msgid "RNG^Short"
+#~ msgstr "Klein"
 
-#~ msgid "%s is now thinking with portals"
-#~ msgstr "%s kann jetzt mit Portalen denken"
+#~ msgid "RNG^Normal"
+#~ msgstr "Normal"
 
-#~ msgid "%s stepped on %s's mine"
-#~ msgstr "%s ist auf %ss Mine gelatscht"
-
-#~ msgid "%s almost dodged %s's mine"
-#~ msgstr "%s ist fast %ss Mine ausgewichen"
+#~ msgid "RNG^Long"
+#~ msgstr "Groß"
 
-#~ msgid "%s got too close to %s's mine"
-#~ msgstr "%s ist %ss Mine zu nahe getreten"
-
-#~ msgid "%s was lasered to death by %s"
-#~ msgstr "^1%s^1 wurde von %s^1 zu Tode gelasert"
-
-#~ msgid "%s was cut in half by %s's gauntlet"
-#~ msgstr "%s ist von %ss Gauntlet halbiert worden"
-
-#~ msgid "%s lasered themself to hell"
-#~ msgstr "%s hat sich in die Hölle gelasert"
+#~ msgid "RNG^Full"
+#~ msgstr "Sehr groß"
 
-#~ msgid "%s did the impossible"
-#~ msgstr "%s hat das Unmögliche geschafft"
+#~ msgid "WRN^None"
+#~ msgstr "keine"
 
-#~ msgid "%s ate %s's grenade"
-#~ msgstr "%s nahm %ss Granate in den Mund"
+#~ msgid "Flash blend approximation"
+#~ msgstr "Flash-Blend-Näherung"
 
-#~ msgid "%s almost dodged %s's grenade"
-#~ msgstr "%s ist fast %ss Granate ausgewichen"
+#~ msgid "High Dynamic Range (HDR)"
+#~ msgstr "Lichtdynamik (HDR)"
 
-#~ msgid "%s didn't see %s's grenade"
-#~ msgstr "%s hat %ss Granate nicht gesehen"
+#~ msgid "Blur and sharpen postprocessing"
+#~ msgstr "Schärfeeffekte"
 
-#~ msgid "%s tasted %s's fireball"
-#~ msgstr "%s hat von %ss Feuerball probiert"
+#~ msgid "UI mouse speed:"
+#~ msgstr "Mausgeschwindigkeit:"
 
-#~ msgid "%s got too close to %s's fireball"
-#~ msgstr "%s ist %ss Feuerball zu nahe getreten"
+#~ msgid "Mouse filter"
+#~ msgstr "Mausfilterung"
 
-#~ msgid "%s saw the pretty lights of %s's fireball"
-#~ msgstr "%s hat die hübschen Lichter von %ss Feuerball gesehen"
+#~ msgid "Holding jump key keeps jumping"
+#~ msgstr "Festhalten der Springen-Taste springt weiter"
 
-#~ msgid "%s could not hide from %s's fireball"
-#~ msgstr "%s konnte sich nicht vor %ss Feuerball verstecken"
+#~ msgid "Minimize input latency"
+#~ msgstr "Eingabelatenz minimieren"
 
-#~ msgid "%s fatefully ignored %s's firemine"
-#~ msgstr "%s hat tragischerweise %ss Feuermine ignoriert"
+#~ msgid "Network speed:"
+#~ msgstr "Netzwerkgeschwindigkeit:"
 
-#~ msgid "%s tried to catch %s's firemine"
-#~ msgstr "%s hat versucht %ss Feuermine zu fangen"
+#~ msgid "HTTP downloads:"
+#~ msgstr "HTTP-Downloads:"
 
-#~ msgid "%s should have used a smaller gun"
-#~ msgstr "%s hätte eine kleinere Waffe nehmen sollen"
+#~ msgid "Powerup sharpen"
+#~ msgstr "Bonus-Schärfe"
 
-#~ msgid "%s forgot about some firemine"
-#~ msgstr "%s hat den Platz einer Feuermine vergessen"
+#~ msgid "Damage & water blur"
+#~ msgstr "Schadens-Unschärfe"
 
-#~ msgid "%s took a close look at %s's Crylink"
-#~ msgstr "%s schaute sich %ss Crylink sehr genau an"
+#~ msgid "Disable multithreaded OpenGL"
+#~ msgstr "OpenGL-Multithreading deaktivieren"
 
-#~ msgid "%s was too close to %s's Crylink"
-#~ msgstr "%s trat %ss Crylink zu nahe"
+#~ msgid "All players"
+#~ msgstr "Alle Spieler"
 
-#~ msgid "%s could not hide from %s's Crylink"
-#~ msgstr "%s konnte sich nicht vor %ss Crylink verstecken"
+#~ msgid "Teammates"
+#~ msgstr "Mitspieler"
 
-#~ msgid "%s succeeded at self-destructing themself with the Crylink"
-#~ msgstr "%s zerstörte sich selbst erfolgreich mit der Crylink"
+#~ msgid "Show names:"
+#~ msgstr "Namen anzeigen:"
 
 #~ msgid "%s was riddled full of holes by %s's machine gun"
 #~ msgstr "%s ist von %s durchlöchert worden wie ein Schweizer Käse"
@@ -2902,11 +3284,21 @@ msgstr "T.A.G. Seeker"
 #~ "%s ist an seinen Ohrenschmerzen, die von %ss großartigem Spiel auf dem @!#"
 #~ "%%'n Akkordeon stammten, gestorben"
 
+#~ 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"
+
 #~ msgid "%s hurt his own ears with the @!#%%'n Accordeon"
 #~ msgstr ""
 #~ "%s haben die Ohren geschmerzt von seinem eigenen Spiel auf dem @!#%%'n "
 #~ "Akkordeon"
 
+#~ msgid "%s hurt his own ears with the @!#%%'n Tuba"
+#~ msgstr ""
+#~ "%s haben die Ohren geschmerzt von seinem eigenen Spiel auf der @!#%%'n "
+#~ "Tuba"
+
 #~ msgid "%s was gunned down with a shotgun by %s"
 #~ msgstr "%s wurde von %s erschossen"
 
@@ -2922,30 +3314,69 @@ msgstr "T.A.G. Seeker"
 #~ msgid "%s played with tiny seeker rockets"
 #~ msgstr "%s hat mit kleinen Raketen gespielt"
 
+#~ msgid "%s ate %s's rocket"
+#~ msgstr "%s hat %ss Rakete in den Mund genommen"
+
+#~ msgid "%s almost dodged %s's rocket"
+#~ msgstr "%s ist fast %ss Rakete ausgewichen"
+
+#~ msgid "%s got too close to %s's rocket"
+#~ msgstr "%s ist %ss Rakete zu nahe getreten"
+
 #~ msgid "%s was sniped with a rifle by %s"
 #~ msgstr "%s wurde von %s fachmännisch erledigt"
 
 #~ msgid "%s got shot in the head with a rifle by %s"
 #~ msgstr "%s hat ein Loch im Kopf bekommen; schuld war %s"
 
+#~ msgid "%s failed to hide from %s's rifle"
+#~ msgstr "%s hat es nicht geschafft, sich vor %ss Gewehr zu verstecken"
+
 #~ msgid "%s died in %s's rifle bullet hail"
 #~ msgstr "%s ist in %ss Kugelhagel gefallen"
 
 #~ msgid "%s failed to hide from %s's rifle bullet hail"
 #~ msgstr "%s hat es nicht geschafft, sich vor %ss Kugelhagel zu verstecken"
 
+#~ msgid "%s felt %s doing the impossible to him"
+#~ msgstr "%s hat gespürt, wie %s das Unmögliche für ihn getan hat"
+
 #~ msgid "%s has been vaporized by %s's nex"
 #~ msgstr "%s^1 wurde von %ss Nex vernichtet"
 
 #~ msgid "%s has been vaporized by %s's minstanex"
 #~ msgstr "%s^1 wurde von %ss MinstaNex vernichtet"
 
+#~ msgid "%s is now thinking with portals"
+#~ msgstr "%s kann jetzt mit Portalen denken"
+
+#~ msgid "%s stepped on %s's mine"
+#~ msgstr "%s ist auf %ss Mine gelatscht"
+
+#~ msgid "%s almost dodged %s's mine"
+#~ msgstr "%s ist fast %ss Mine ausgewichen"
+
+#~ msgid "%s got too close to %s's mine"
+#~ msgstr "%s ist %ss Mine zu nahe getreten"
+
 #~ msgid "%s forgot about their mine"
 #~ msgstr "%s hat den Platz einer Mine vergessen"
 
+#~ msgid "%s was lasered to death by %s"
+#~ msgstr "^1%s^1 wurde von %s^1 zu Tode gelasert"
+
+#~ msgid "%s was cut in half by %s's gauntlet"
+#~ msgstr "%s ist von %ss Gauntlet halbiert worden"
+
+#~ msgid "%s lasered themself to hell"
+#~ msgstr "%s hat sich in die Hölle gelasert"
+
 #~ msgid "%s was caught in %s's hook gravity bomb"
 #~ msgstr "%s ist in %ss Gravitationsbombe reingelaufen"
 
+#~ msgid "%s did the impossible"
+#~ msgstr "%s hat das Unmögliche geschafft"
+
 #~ msgid "%s was cut down with a HLAC by %s"
 #~ msgstr "%s wurde von %ss HLAC niedergehauen"
 
@@ -2958,9 +3389,42 @@ msgstr "T.A.G. Seeker"
 #~ msgid "%s played with tiny hagar rockets"
 #~ msgstr "%s hat mit kleinen Raketen gespielt"
 
+#~ msgid "%s ate %s's grenade"
+#~ msgstr "%s nahm %ss Granate in den Mund"
+
+#~ msgid "%s almost dodged %s's grenade"
+#~ msgstr "%s ist fast %ss Granate ausgewichen"
+
+#~ msgid "%s didn't see %s's grenade"
+#~ msgstr "%s hat %ss Granate nicht gesehen"
+
 #~ msgid "%s didn't see their own grenade"
 #~ msgstr "%s hat die eigene Granate übersehen"
 
+#~ msgid "%s tasted %s's fireball"
+#~ msgstr "%s hat von %ss Feuerball probiert"
+
+#~ msgid "%s got too close to %s's fireball"
+#~ msgstr "%s ist %ss Feuerball zu nahe getreten"
+
+#~ msgid "%s saw the pretty lights of %s's fireball"
+#~ msgstr "%s hat die hübschen Lichter von %ss Feuerball gesehen"
+
+#~ msgid "%s could not hide from %s's fireball"
+#~ msgstr "%s konnte sich nicht vor %ss Feuerball verstecken"
+
+#~ msgid "%s fatefully ignored %s's firemine"
+#~ msgstr "%s hat tragischerweise %ss Feuermine ignoriert"
+
+#~ msgid "%s tried to catch %s's firemine"
+#~ msgstr "%s hat versucht %ss Feuermine zu fangen"
+
+#~ msgid "%s should have used a smaller gun"
+#~ msgstr "%s hätte eine kleinere Waffe nehmen sollen"
+
+#~ msgid "%s forgot about some firemine"
+#~ msgstr "%s hat den Platz einer Feuermine vergessen"
+
 #~ msgid "%s was blasted by %s's blue electro bolt"
 #~ msgstr "%s wurde von %ss blauen Strahl erwischt"
 
@@ -2981,3 +3445,33 @@ msgstr "T.A.G. Seeker"
 
 #~ msgid "%s could not remember where they put their electro plasma"
 #~ msgstr "%s vergaß, wo er das Plasma hingetan hatte"
+
+#~ msgid "%s took a close look at %s's Crylink"
+#~ msgstr "%s schaute sich %ss Crylink sehr genau an"
+
+#~ msgid "%s was too close to %s's Crylink"
+#~ msgstr "%s trat %ss Crylink zu nahe"
+
+#~ msgid "%s could not hide from %s's Crylink"
+#~ msgstr "%s konnte sich nicht vor %ss Crylink verstecken"
+
+#~ msgid "%s succeeded at self-destructing themself with the Crylink"
+#~ msgstr "%s zerstörte sich selbst erfolgreich mit der Crylink"
+
+#~ msgid "%s detonated"
+#~ msgstr "%s verfing sich in der eigenen Detonation"
+
+#~ msgid "%s exploded"
+#~ msgstr "%s ist explodiert"
+
+#~ msgid "%s hoped %s's missiles wouldn't bounce"
+#~ msgstr "%s hat gehofft, dass %ss Raketen nicht von Wänden abprallen"
+
+#~ msgid "%s shot themself automatically"
+#~ msgstr "%s hat sich vollautomatisch selbst erschossen"
+
+#~ msgid "%s sniped themself somehow"
+#~ msgstr "%s hat so scharf geschossen, dass er sich selbst getroffen hat"
+
+#~ msgid "%s tried out his own grenade"
+#~ msgstr "%s wollte wissen, ob seine Granate funktioniert"
index ad574ed9fc00662e829993a4c7b48097c8d25ba9..98ad18a003b22178bd4220ff95f66b22bffbee62 100644 (file)
 # SOME DESCRIPTIVE TITLE.
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
-# Γιάννης Α. <yannanth@gmail.com>, 2011.
+# Γιάννης Α. <yannanth@gmail.com>, 2011, 2012.
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-09-12 12:24+0200\n"
-"PO-Revision-Date: 2011-12-05 22:27-0000\n"
-"Last-Translator: Γιάννης Α. <yannanth@gmail.com>\n"
-"Language-Team: Î\93\91.\n"
+"POT-Creation-Date: 2012-01-26 12:24+0100\n"
+"PO-Revision-Date: 2012-01-29 22:01+0100\n"
+"Last-Translator: Γιάννης <yannanth@gmail.com>\n"
+"Language-Team: Î\99Ï\89άννηÏ\82 Î\91νθÏ\85μίδηÏ\82\n"
 "Language: el\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Virtaal 0.7.0\n"
+"X-Generator: Virtaal 0.7.1\n"
 
-#: qcsrc/menu/menu.qc:29
+#: qcsrc/common/mapinfo.qc:665
 #, c-format
-msgid "^4MQC Build information: ^1%s\n"
-msgstr "^4MQC Πληροφορίες εκδοχής: ^1%s\n"
+msgid "@!#%'n Tuba Throwing"
+msgstr ""
 
-#: qcsrc/menu/item/slider.c:64
+#: qcsrc/common/mapinfo.qc:1057 qcsrc/menu/xonotic/skinlist.c:166
 #, c-format
-msgid "%d (%s)"
-msgstr "%d (%s)"
+msgid "%s: %s"
+msgstr "%s: %s"
 
-#: qcsrc/menu/item/label.c:63
-#, c-format
-msgid "NOTE: label text %s too wide for label, condensed by factor %f\n"
+#: qcsrc/common/mapinfo.qh:36
+msgid "Deathmatch"
 msgstr ""
 
-#: qcsrc/menu/item/textslider.c:29
-#: qcsrc/menu/item/textslider.c:31
-msgid "custom"
-msgstr "προσαρμογή"
+#: qcsrc/common/mapinfo.qh:39
+msgid "Last Man Standing"
+msgstr ""
 
-#: qcsrc/menu/item/gecko.c:49
-msgid "Browser not initialized!"
-msgstr "Î\9f Ï\80εÏ\81ιηγηÏ\84ήÏ\82 Î´ÎµÎ½ Î­Ï\87ει Î±Ï\81Ï\87ίÏ\83ει!"
+#: qcsrc/common/mapinfo.qh:42
+msgid "Arena"
+msgstr "Î\91Ï\81ένα"
 
-#: qcsrc/menu/item/listbox.c:300
-#, c-format
-msgid "Item %d"
-msgstr "Αντικείμενο %d"
+#: qcsrc/common/mapinfo.qh:45
+msgid "Runematch"
+msgstr ""
+
+#: qcsrc/common/mapinfo.qh:48
+msgid "Race"
+msgstr "Αγώνας"
+
+#: qcsrc/common/mapinfo.qh:51
+msgid "Race CTS"
+msgstr ""
+
+#: qcsrc/common/mapinfo.qh:54
+msgid "Team Deathmatch"
+msgstr ""
+
+# Bit posh... :/
+#: qcsrc/common/mapinfo.qh:57
+msgid "Capture the Flag"
+msgstr "Κατάλυψη Σημαίας"
+
+#: qcsrc/common/mapinfo.qh:60
+msgid "Clan Arena"
+msgstr ""
+
+# About as cool as I could make it sound
+#: qcsrc/common/mapinfo.qh:63
+msgid "Domination"
+msgstr "Κυριαρχία"
+
+# Could be improved
+#: qcsrc/common/mapinfo.qh:66
+msgid "Key Hunt"
+msgstr "Κυνήγι για κλειδιά"
+
+#: qcsrc/common/mapinfo.qh:69
+msgid "Assault"
+msgstr ""
+
+#: qcsrc/common/mapinfo.qh:72
+msgid "Onslaught"
+msgstr ""
+
+# See comments on "Nex"
+#: qcsrc/common/mapinfo.qh:75
+msgid "Nexball"
+msgstr "Θανατόμπαλα"
+
+#: qcsrc/common/mapinfo.qh:78
+msgid "Freeze Tag"
+msgstr ""
+
+#: qcsrc/common/mapinfo.qh:81
+msgid "Keepaway"
+msgstr ""
 
-#: qcsrc/menu/gamecommand.qc:47
+#: qcsrc/menu/command/menu_cmd.qc:41
 #, c-format
 msgid "error: status is %d\n"
-msgstr ""
+msgstr "σφάλμα: η κατατάσταση είναι %δ\n"
 
-#: qcsrc/menu/gamecommand.qc:65
+#: qcsrc/menu/command/menu_cmd.qc:64
+#, fuzzy
 msgid "Usage: menu_cmd command..., where possible commands are:\n"
-msgstr ""
+msgstr "Χρήση: εντολή menu_cmd..., όπου οι δυνατές εντολές είναι:\n"
 
-#: qcsrc/menu/gamecommand.qc:66
+#: qcsrc/menu/command/menu_cmd.qc:65
 msgid "  sync - reloads all cvars on the current menu page\n"
 msgstr ""
 
-#: qcsrc/menu/gamecommand.qc:67
+#: qcsrc/menu/command/menu_cmd.qc:66
 msgid "  directmenu ITEM - select a menu item as main item\n"
 msgstr ""
 
-#: qcsrc/menu/gamecommand.qc:193
+#: qcsrc/menu/command/menu_cmd.qc:179
 msgid "error creating curl handle\n"
 msgstr ""
 
-#: qcsrc/menu/gamecommand.qc:239
+#: qcsrc/menu/command/menu_cmd.qc:186
 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
-#, fuzzy
-msgid "Font/UI size:"
-msgstr "Μέγεθος γραμματοσειράς/UI:"
-
-#: qcsrc/menu/xonotic/dialog_settings_video.c:31
-msgid "SZ^Unreadable"
-msgstr "SZ^Αδιάβαστο"
+#: qcsrc/menu/item/gecko.c:49
+msgid "Browser not initialized!"
+msgstr "Ο περιηγητής δεν έχει αρχίσει!"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:32
-msgid "SZ^Tiny"
-msgstr "SZ^Μικροσκοπικό"
+#: 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/xonotic/dialog_settings_video.c:33
-msgid "SZ^Little"
-msgstr "SZ^Μικρούτσικο"
+#: qcsrc/menu/item/listbox.c:300
+#, c-format
+msgid "Item %d"
+msgstr "Αντικείμενο %d"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:34
-msgid "SZ^Small"
-msgstr "SZ^Μικρό"
+#: qcsrc/menu/item/slider.c:64
+#, c-format
+msgid "%d (%s)"
+msgstr "%d (%s)"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:35
-msgid "SZ^Medium"
-msgstr "SZ^Μεσαίο"
+#: qcsrc/menu/item/textslider.c:29 qcsrc/menu/item/textslider.c:31
+msgid "custom"
+msgstr "προσαρμογή"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:36
-msgid "SZ^Large"
-msgstr "SZ^Μεγάλο"
+#: qcsrc/menu/menu.qc:37
+#, c-format
+msgid "^4MQC Build information: ^1%s\n"
+msgstr "^4MQC Πληροφορίες εκδοχής: ^1%s\n"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:37
-msgid "SZ^Huge"
-msgstr "SZ^Τεράστιο"
+#: qcsrc/menu/xonotic/campaign.c:288
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:123
+msgid "???"
+msgstr ";;;"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:38
-msgid "SZ^Gigantic"
-msgstr "SZ^Γιγάντιο"
+#: qcsrc/menu/xonotic/campaign.c:289
+#, c-format
+msgid "Level %d: %s"
+msgstr "Επίπεδο %d:%s"
 
-# Maybe τιτανικό (titanic) would be better, this may be associated with the Colosseum in Rome...
-#: qcsrc/menu/xonotic/dialog_settings_video.c:39
-#, fuzzy
-msgid "SZ^Colossal"
-msgstr "SZ^Κολοσσαίο"
+#: qcsrc/menu/xonotic/cvarlist.c:85
+msgid "will be saved to config.cfg"
+msgstr "θα αποθηκευτεί στο config.cfg"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:42
-msgid "Color depth:"
-msgstr "Î\92άθοÏ\82 Ï\87Ï\81Ï\8eμαÏ\84οÏ\82:"
+#: qcsrc/menu/xonotic/cvarlist.c:87
+msgid "will not be saved"
+msgstr "δεν Î¸Î± Î±Ï\80οθηκεÏ\85Ï\84εί"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:45
-msgid "Full screen"
-msgstr "Πλήρης οθόνη"
+#: qcsrc/menu/xonotic/cvarlist.c:89
+msgid "private"
+msgstr "προσωπικές"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:46
-msgid "Vertical Synchronization"
+#: qcsrc/menu/xonotic/cvarlist.c:91
+msgid "engine setting"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:49
-msgid "Use OpenGL 2.0 shaders (GLSL)"
-msgstr "ΧÏ\81ήÏ\83η Ï\83κιÏ\8eν (shaders) OpenGL 2.0 (GLSL)"
+#: qcsrc/menu/xonotic/cvarlist.c:93
+msgid "read only"
+msgstr "μÏ\8cνο Î³Î¹Î± Î±Î½Î¬Î³Î½Ï\89Ï\83η"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:52
-msgid "Use GLSL to handle color control"
-msgstr ""
+#: qcsrc/menu/xonotic/dialog_credits.c:5
+msgid "Credits"
+msgstr "Ευχαριστίες"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:56
-msgid "Vertex Buffer Objects (VBOs)"
-msgstr ""
+#: qcsrc/menu/xonotic/dialog_credits.c:21
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:82
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:277
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:91
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:96
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:56
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:113
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:74
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:89
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:73
+#: qcsrc/menu/xonotic/dialog_singleplayer_winner.c:21
+msgid "OK"
+msgstr "ΟΚ"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:59
-msgid "VBO^Off"
-msgstr ""
+#: qcsrc/menu/xonotic/dialog_firstrun.c:4
+msgid "Welcome"
+msgstr "Καλώσορίσατε"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:60
-msgid "Vertices, some Tris (compatible)"
+#: qcsrc/menu/xonotic/dialog_firstrun.c:40
+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 ""
+"Καλώσορίσατε στο Xonotic, πάρακαλούμε επιλέξτε της γλώσσα προτίμησης σας και "
+"είσαγετε το όνομά σας. Μπορείτε να αλλάξετε αυτές τις επιλογές αργότερα μέσω "
+"του μενού."
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:63
-msgid "Vertices"
-msgstr "Κορυφές"
+#: qcsrc/menu/xonotic/dialog_firstrun.c:46
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:37
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:39
+msgid "Name:"
+msgstr "Όνομα:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:64
-msgid "Vertices and Triangles"
-msgstr "Κορυφές και Τρίγωνα"
+#: qcsrc/menu/xonotic/dialog_firstrun.c:68
+#: qcsrc/menu/xonotic/dialog_settings_user.c:65
+msgid "Text language:"
+msgstr "Γλώσσα κειμένου:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:67
-msgid "Depth first:"
+#: qcsrc/menu/xonotic/dialog_firstrun.c:77
+msgid "Allow player statistics to use your nickname at stats.xonotic.org?"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:69
-msgid "DF^Disabled"
+#: qcsrc/menu/xonotic/dialog_firstrun.c:81
+msgid "ALWU2N^Yes"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:70
-msgid "DF^World"
+#: qcsrc/menu/xonotic/dialog_firstrun.c:82
+msgid "ALWU2N^No"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:71
-msgid "DF^All"
+#: qcsrc/menu/xonotic/dialog_firstrun.c:83
+msgid "ALWU2N^Undecided"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:75
-msgid "Disable multithreaded OpenGL"
-msgstr ""
+#: qcsrc/menu/xonotic/dialog_firstrun.c:87
+msgid "Save settings"
+msgstr "Αποθήκευση ρυθμίσεων"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:77
-msgid "Wait for GPU to finish each frame"
-msgstr ""
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:4
+msgid "Ammo Panel"
+msgstr "Πίνακας Πυρομαχικών"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:80
-msgid "Brightness:"
-msgstr "ΦÏ\89Ï\84εινÏ\8cÏ\84ηÏ\84α:"
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:22
+msgid "Ammunition display:"
+msgstr "ΠÏ\81οβολή Ï\80Ï\85Ï\81ομαÏ\87ικÏ\8eν:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:83
-msgid "Contrast:"
-msgstr "Î\91νÏ\84ίθεÏ\83η:"
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:25
+msgid "Show only current ammo type"
+msgstr "ΠÏ\81οβολή Î¼Ï\8cνο Ï\84οÏ\85 Ï\84Ï\81έÏ\87Ï\89ν Ï\80Ï\85Ï\81ομαÏ\87ικοÏ\8d"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:86
-msgid "Gamma:"
-msgstr ""
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:28
+msgid "Align icon:"
+msgstr "Ευθυγράμμιση εικονιδίου:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:91
-msgid "Contrast boost:"
-msgstr ""
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:29
+#: qcsrc/menu/xonotic/dialog_hudpanel_centerprint.c:36
+#: 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 "Αριστερά"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:96
-msgid "Saturation:"
-msgstr "Κορεσμός:"
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:30
+#: qcsrc/menu/xonotic/dialog_hudpanel_centerprint.c:38
+#: 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 "Δεξιά"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:102
-msgid "LIT^Ambient:"
+#: qcsrc/menu/xonotic/dialog_hudpanel_centerprint.c:4
+msgid "Centerprint"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:105
-msgid "Intensity:"
-msgstr "Ένταση:"
-
-#: qcsrc/menu/xonotic/dialog_settings_video.c:109
-#: qcsrc/menu/xonotic/dialog_settings_input.c:74
-#: 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:173
-msgid "Apply immediately"
-msgstr "Άμεση εφαρμογή"
+#: qcsrc/menu/xonotic/dialog_hudpanel_centerprint.c:23
+msgid "Message duration:"
+msgstr "Διάρκεια μηνυμάτων:"
 
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:4
-msgid "Panel HUD Setup"
+#: qcsrc/menu/xonotic/dialog_hudpanel_centerprint.c:27
+msgid "Fade time:"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:21
-msgid "Panel background defaults:"
+#: qcsrc/menu/xonotic/dialog_hudpanel_centerprint.c:31
+msgid "Flip messages order"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:23
-#: qcsrc/menu/xonotic/util.qc:587
-msgid "Background:"
-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:590
-#: qcsrc/menu/xonotic/util.qc:606
-#: qcsrc/menu/xonotic/util.qc:623
-msgid "Disable"
-msgstr "Απενεργοποίηση"
-
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:30
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:77
-#: qcsrc/menu/xonotic/util.qc:595
-msgid "Color:"
-msgstr "Χρώμα:"
+#: qcsrc/menu/xonotic/dialog_hudpanel_centerprint.c:33
+msgid "Text alignment:"
+msgstr "Ευθυγράμμιση κειμένου"
 
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:35
-#: qcsrc/menu/xonotic/util.qc:603
-msgid "Border size:"
-msgstr "Î\9cέγεθοÏ\82 Ï\80εÏ\81ιθÏ\89Ï\81ίοÏ\85:"
+#: qcsrc/menu/xonotic/dialog_hudpanel_centerprint.c:37
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:51
+msgid "Center"
+msgstr "ΣÏ\84ο ÎºÎ­Î½Ï\84Ï\81ο"
 
-#: 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:612
-msgid "Alpha:"
-msgstr ""
+#: qcsrc/menu/xonotic/dialog_hudpanel_centerprint.c:41
+msgid "Font scale:"
+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_hudpanel_chat.c:4
+msgid "Chat Panel"
+msgstr "Πίνακας Ομιλίας"
 
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:58
-#: qcsrc/menu/xonotic/util.qc:629
-msgid "Test team color in configure mode"
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:22
+msgid "Chat entries:"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:61
-#: qcsrc/menu/xonotic/util.qc:632
-msgid "Padding:"
-msgstr ""
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:25
+msgid "Chat size:"
+msgstr "Μέγεθος ομιλίας:"
 
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:68
-msgid "HUD Dock:"
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:29
+msgid "Chat lifetime:"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:70
-msgid "DOCK^Disabled"
-msgstr "DOCK^Απενεργοποιημένο"
-
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:71
-msgid "DOCK^Small"
-msgstr "DOCK^Μικρό"
-
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:72
-msgid "DOCK^Medium"
-msgstr "DOCK^Μεσαίο"
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:33
+msgid "Chat beep sound"
+msgstr "Ήχος ομιλίας"
 
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:73
-msgid "DOCK^Large"
-msgstr "DOCK^Μεγάλο"
+#: qcsrc/menu/xonotic/dialog_hudpanel_engineinfo.c:4
+msgid "Engine Info Panel"
+msgstr "Πίνακας Πληροφοριών Μηχανής"
 
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:96
-msgid "Grid settings:"
-msgstr "ΡÏ\85θμίÏ\83ειÏ\82 Ï\80λέγμαÏ\84ος:"
+#: qcsrc/menu/xonotic/dialog_hudpanel_engineinfo.c:22
+msgid "Engine info:"
+msgstr "ΠληÏ\81οÏ\86οÏ\81ίεÏ\82 Î¼Î·Ï\87ανής:"
 
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:99
-msgid "Snap panels to grid"
+#: qcsrc/menu/xonotic/dialog_hudpanel_engineinfo.c:25
+msgid "Use an averaging algorithm for fps"
 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_hudpanel_healtharmor.c:4
+msgid "Health/Armor Panel"
+msgstr "Πίνακας Ζωής/Πανοπλίας"
 
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:109
-msgid "Y:"
-msgstr "Ψ:"
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:22
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:22
+msgid "Enable status bar"
+msgstr "Ενεργοποίηση γραμμής κατάστασης"
 
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:117
-msgid "Exit setup"
-msgstr "Έξοδος ρύθμισης"
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:24
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:24
+msgid "Status bar alignment:"
+msgstr "Ευθυγράμμιση γραμμής καταστάσεως:"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_vote.c:4
-msgid "Vote Panel"
+#: 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 ""
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_vote.c:22
-msgid "Alpha after voting:"
+#: 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 ""
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_modicons.c:4
-msgid "Mod Icons Panel"
+# Στοίχιση;
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:37
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:37
+msgid "Icon alignment:"
+msgstr "Ευθυγράμμιση εικονιδίων:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:45
+msgid "Flip health and armor positions"
 msgstr ""
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_infomessages.c:4
-#, fuzzy
 msgid "Info Messages Panel"
 msgstr "Πίνακας Πληροφοριών"
 
@@ -352,261 +388,287 @@ msgstr "Πληροφοριακά μηνύματα:"
 msgid "Flip align"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:5
-msgid "Waypoints"
+#: qcsrc/menu/xonotic/dialog_hudpanel_modicons.c:4
+msgid "Mod Icons Panel"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:23
-msgid "Show base waypoints"
-msgstr ""
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:4
+msgid "Notification Panel"
+msgstr "Πίνακας Ανακοινώσεων"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:25
-msgid "Waypoint scale:"
-msgstr ""
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:22
+msgid "Notifications:"
+msgstr "Ανακοινώσεις:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:29
-msgid "Waypoint alpha:"
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:25
+msgid "Also print notifications to the console"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:34
-msgid "Show names:"
-msgstr "Εμφάνιση ονομάτων:"
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:28
+msgid "Flip notify order"
+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_hudpanel_notification.c:31
+msgid "Entry lifetime:"
+msgstr ""
 
-# Might just mean other people playing with you, literally (official definition) "co-players"
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:37
-#, fuzzy
-msgid "Teammates"
-msgstr "Συμπαίκτες"
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:35
+msgid "Entry fadetime:"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:38
-msgid "All players"
-msgstr "Î\8cλοι Î¿Î¹ Ï\80αίκÏ\84ες"
+#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:4
+msgid "Physics Panel"
+msgstr "ΠίνακαÏ\82 Î¦Ï\85Ï\83ικής"
 
-#: 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:57
-msgid "OK"
-msgstr "ΟΚ"
+#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:22
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:21
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:21
+msgid "Panel disabled"
+msgstr "Πίνακας απενεργοποιημένος"
 
-#: qcsrc/menu/xonotic/dialog_credits.c:5
-msgid "Credits"
-msgstr ""
+#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:23
+msgid "Panel enabled"
+msgstr "Πίνακας ενεργός"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:5
-msgid "Advanced settings"
-msgstr "Προχωρημένες ρυθμίσεις:"
+#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:24
+msgid "Panel enabled even observing"
+msgstr "Πίνακας ενεργός και στην θέαση"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:23
-msgid "Cvar filter:"
-msgstr ""
+#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:25
+msgid "Panel enabled only in Race/CTS"
+msgstr "Πίνακας ενεργός μόνο σε Αγώνα/CTS"
 
-#: 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_hudpanel_physics.c:31
+msgid "Status bar"
+msgstr "Γραμμή κατάστασης"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:34
-msgid "Setting:"
-msgstr "Ρύθμιση:"
+#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:33
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:49
+msgid "Left align"
+msgstr "Ευθυγράμμιση στα αριστερά"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:38
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:254
-msgid "Type:"
-msgstr "ΤÏ\8dÏ\80οÏ\82:"
+#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:34
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:53
+msgid "Right align"
+msgstr "Î\95Ï\85θÏ\85γÏ\81άμμιÏ\83η Ï\83Ï\84α Î´ÎµÎ¾Î¹Î¬"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:42
-#, fuzzy
-msgid "Value:"
-msgstr "Τιμή:"
+#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:35
+msgid "Inward align"
+msgstr "Ευθυγράμμιση προς τα μέσα"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:56
-msgid "Description:"
-msgstr "ΠεÏ\81ιγÏ\81αÏ\86ή:"
+#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:36
+msgid "Outward align"
+msgstr "Î\95Ï\85θÏ\85γÏ\81άμμιÏ\83η Ï\80Ï\81οÏ\82 Ï\84α Î­Î¾Ï\89"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:4
-msgid "Pressed Keys Panel"
+#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:40
+msgid "Flip speed/acceleration positions"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:21
-#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:22
-#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:21
-msgid "Panel disabled"
-msgstr "Πίνακας απενεργοποιημένος"
+#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:44
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:29
+msgid "Speed:"
+msgstr "Ταχύτητα"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:22
-msgid "Panel enabled when spectating"
-msgstr "Πίνακας ενεργοποιημένος στην θέαση"
+#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:45
+msgid "Include vertical speed"
+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_physics.c:56
+msgid "Speed unit:"
+msgstr "Μονάδα ταχύτητας:"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:30
-msgid "Forced aspect:"
+#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:58
+msgid "qu/s"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_teamselect.c:5
-msgid "Team Selection"
-msgstr "Î\95Ï\80ιλογή Î\9fμαδάÏ\82"
+#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:59
+msgid "m/s"
+msgstr "μέÏ\84Ï\81α/δεÏ\85Ï\84εÏ\81Ï\8cλεÏ\80Ï\84ο"
 
-#: qcsrc/menu/xonotic/dialog_teamselect.c:41
-msgid "join 'best' team (auto-select)"
-msgstr "μπες στην «καλύτερη» ομάδα (αυτόματη επιλογή)"
+#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:60
+msgid "km/h"
+msgstr "χλμ/ώρα"
 
-#: qcsrc/menu/xonotic/dialog_teamselect.c:45
-msgid "red"
-msgstr "κÏ\8cκκινο"
+#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:61
+msgid "mph"
+msgstr "μίλια/Ï\8eÏ\81α"
 
-#: qcsrc/menu/xonotic/dialog_teamselect.c:46
-msgid "blue"
-msgstr "μÏ\80λε"
+#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:62
+msgid "knots"
+msgstr "κÏ\8cμβοι"
 
-#: qcsrc/menu/xonotic/dialog_teamselect.c:47
-msgid "yellow"
-msgstr "κίÏ\84Ï\81ινο"
+#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:64
+msgid "Show"
+msgstr "Î\95μÏ\86άνιÏ\83η"
 
-#: qcsrc/menu/xonotic/dialog_teamselect.c:48
-msgid "pink"
-msgstr "ροζ"
+#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:67
+msgid "Top speed"
+msgstr "Μέγιστη ταχύτητα"
 
-#: qcsrc/menu/xonotic/dialog_teamselect.c:51
-msgid "spectate"
-msgstr "θέαÏ\83η"
+#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:73
+msgid "Acceleration:"
+msgstr "Î\95Ï\80ιÏ\84άÏ\87Ï\85νÏ\83η:"
 
-#: qcsrc/menu/xonotic/slider_resolution.c:65
-#, c-format
-msgid "%dx%d"
-msgstr "%dx%d"
+#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:74
+msgid "Include vertical acceleration"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings.c:4
-msgid "Settings"
-msgstr "Ρυθμίσεις"
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:4
+msgid "Powerups Panel"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings.c:18
-#: qcsrc/menu/xonotic/dialog_settings_input.c:4
-msgid "Input"
-msgstr "Εισαγωγή"
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:45
+msgid "Flip strength and shield positions"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings.c:20
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:4
-msgid "Effects"
-msgstr "Εφέ"
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:4
+msgid "Pressed Keys Panel"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings.c:21
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:4
-msgid "Audio"
-msgstr "Ήχος"
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:22
+msgid "Panel enabled when spectating"
+msgstr "Πίνακας ενεργοποιημένος στην θέαση"
 
-#: qcsrc/menu/xonotic/dialog_settings.c:22
-#: qcsrc/menu/xonotic/dialog_settings_network.c:4
-msgid "Network"
-msgstr "Î\94ίκÏ\84Ï\85ο"
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:23
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:23
+msgid "Panel always enabled"
+msgstr "ΠίνακαÏ\82 Ï\80άνÏ\84α ÎµÎ½ÎµÏ\81γοÏ\80οιημένοÏ\82"
 
-#: qcsrc/menu/xonotic/dialog_settings.c:23
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:4
-msgid "Misc"
-msgstr "Λοιπά"
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:30
+msgid "Forced aspect:"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_firstrun.c:4
-msgid "Welcome"
-msgstr "Î\9aαλÏ\8eÏ\83οÏ\81ίÏ\83αÏ\84ε"
+#: qcsrc/menu/xonotic/dialog_hudpanel_racetimer.c:4
+msgid "Race Timer Panel"
+msgstr "ΠίνακαÏ\82 Î§Ï\81ονοδιακÏ\8cÏ\80Ï\84η Î\91γÏ\8eνα"
 
-#: 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 "Î\9aαλÏ\8eÏ\83οÏ\81ίÏ\83αÏ\84ε Ï\83Ï\84ο Xonotic, Ï\80άÏ\81ακαλοÏ\8dμε ÎµÏ\80ιλέξÏ\84ε Ï\84ηÏ\82 Î³Î»Ï\8eÏ\83Ï\83α Ï\80Ï\81οÏ\84ίμηÏ\83ηÏ\82 Ï\83αÏ\82 ÎºÎ±Î¹ ÎµÎ¯Ï\83αγεÏ\84ε Ï\84ο Ï\8cνομά Ï\83αÏ\82. Î\9cÏ\80οÏ\81είÏ\84ε Î½Î± Î±Î»Î»Î¬Î¾ÎµÏ\84ε Î±Ï\85Ï\84έÏ\82 Ï\84ιÏ\82 ÎµÏ\80ιλογέÏ\82 Î±Ï\81γÏ\8cÏ\84εÏ\81α Î¼Î­Ï\83Ï\89 Ï\84οÏ\85 Î¼ÎµÎ½Î¿Ï\8d."
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:4
+msgid "Radar Panel"
+msgstr "ΠίνακαÏ\82 Î¡Î±Î½Ï\84άÏ\81"
 
-#: qcsrc/menu/xonotic/dialog_firstrun.c:38
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:35
-msgid "Text language:"
-msgstr "Γλώσσα κειμένου:"
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:22
+msgid "Panel enabled in teamgames"
+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_hudpanel_radar.c:29
+msgid "Radar:"
+msgstr "Ραντάρ:"
 
-#: qcsrc/menu/xonotic/dialog_firstrun.c:69
-msgid "Save settings"
-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_hud.c:66
+#: qcsrc/menu/xonotic/util.qc:655
+msgid "Alpha:"
+msgstr ""
 
-#: qcsrc/menu/xonotic/campaign.c:284
-#: qcsrc/menu/xonotic/dialog_singleplayer.c:123
-msgid "???"
-msgstr ";;;"
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:36
+msgid "Rotation:"
+msgstr "Περιστροφή:"
 
-#: qcsrc/menu/xonotic/campaign.c:285
-#, c-format
-msgid "Level %d: %s"
-msgstr "Επίπεδο %d:%s"
+# Don't know the context of this.
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:38
+msgid "Forward"
+msgstr "Εμπρός"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:26
-msgid "Key bindings:"
-msgstr "Διαμόρφωση πλήκτρων:"
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:39
+msgid "West"
+msgstr "Δυτικά"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:31
-msgid "Change key..."
-msgstr "Î\91λλαγή Ï\80λήκÏ\84Ï\81οÏ\85..."
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:40
+msgid "South"
+msgstr "Î\9dÏ\8cÏ\84ια"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:35
-msgid "Edit..."
-msgstr "Î\95Ï\80εξεÏ\81γαÏ\83ία..."
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:41
+msgid "East"
+msgstr "Î\91ναÏ\84ολικά"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:46
-msgid "Sensitivity:"
-msgstr "ΤαÏ\87Ï\8dÏ\84ηÏ\84α Î´ÎµÎ¯ÎºÏ\84η:"
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:42
+msgid "North"
+msgstr "Î\92Ï\8cÏ\81εια"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:51
-msgid "UI mouse speed:"
-msgstr "Ταχύτητα δείκτη στην διεπαφή:"
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:46
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:61
+msgid "Scale:"
+msgstr "Κλίμακα:"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:55
-msgid "Mouse filter"
-msgstr ""
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:50
+msgid "Zoom mode:"
+msgstr "Ρύθμιση μεγέθυνσης:"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:57
-#, fuzzy
-msgid "Invert mouse"
-msgstr "Ανάτρεψη ποντικιού"
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:52
+msgid "Zoomed in"
+msgstr "Μεγεθυμένο"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:60
-#: qcsrc/menu/xonotic/dialog_settings_input.c:62
-msgid "Use joystick input"
-msgstr ""
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:53
+msgid "Zoomed out"
+msgstr "Σμικρυσμένο"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:65
-#: qcsrc/menu/xonotic/dialog_settings_input.c:67
-msgid "Turn off OS mouse acceleration"
-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_score.c:4
+msgid "Score Panel"
+msgstr "Πίνακας Βαθμολογίας"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_score.c:22
+msgid "Score:"
+msgstr "Βαθμολογία:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_score.c:25
+msgid "Rankings:"
+msgstr "Κατατάξεις:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_score.c:26
+msgid "Off"
+msgstr "Ανενεργό"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:69
-msgid "\"enter console\" also closes"
+#: qcsrc/menu/xonotic/dialog_hudpanel_score.c:27
+msgid "And me"
+msgstr "Και εγώ"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_score.c:28
+msgid "Pure"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:72
-msgid "Holding jump key keeps jumping"
+#: 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
+#, fuzzy
+msgid "Show elapsed time"
+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_weapons.c:4
 msgid "Weapons Panel"
-msgstr ""
+msgstr "Πίνακας Οπλισμού"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:24
 msgid "Fade out after:"
 msgstr ""
 
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:26
+msgid "Never"
+msgstr "Ποτέ"
+
 #: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:28
 #, c-format
 msgid "%ds"
@@ -661,7 +723,6 @@ msgid "Show Accuracy"
 msgstr "Εμφάνιση Ακρίβειας"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:55
-#, fuzzy
 msgid "Show Ammo"
 msgstr "Εμφάνιση Πυρομαχικών"
 
@@ -673,383 +734,366 @@ msgstr ""
 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"
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:4
+msgid "Panel HUD Setup"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_engineinfo.c:22
-msgid "Engine info:"
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:21
+msgid "Panel background defaults:"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_engineinfo.c:25
-msgid "Use an averaging algorithm for fps"
-msgstr ""
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:23 qcsrc/menu/xonotic/util.qc:630
+msgid "Background:"
+msgstr "Φόντο:"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:4
-msgid "Physics Panel"
-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:633
+#: qcsrc/menu/xonotic/util.qc:649 qcsrc/menu/xonotic/util.qc:666
+msgid "Disable"
+msgstr "Απενεργοποίηση"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:23
-msgid "Panel enabled"
-msgstr ""
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:30
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:77 qcsrc/menu/xonotic/util.qc:638
+msgid "Color:"
+msgstr "Χρώμα:"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:24
-msgid "Panel enabled even observing"
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:35 qcsrc/menu/xonotic/util.qc:646
+msgid "Border size:"
+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:672
+msgid "Test team color in configure mode"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:25
-msgid "Panel enabled only in Race/CTS"
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:61 qcsrc/menu/xonotic/util.qc:675
+msgid "Padding:"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:31
-msgid "Status bar"
-msgstr "Γραμμή κατάστασης"
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:68
+msgid "HUD Dock:"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:33
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:48
-#, fuzzy
-msgid "Left align"
-msgstr "Ευθυγράμμιση στα αριστερά"
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:70
+msgid "DOCK^Disabled"
+msgstr "DOCK^Απενεργοποιημένο"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:34
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:52
-#, fuzzy
-msgid "Right align"
-msgstr "Ευθυγράμμιση στα δεξιά"
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:71
+msgid "DOCK^Small"
+msgstr "DOCK^Μικρό"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:35
-#, fuzzy
-msgid "Inward align"
-msgstr "Ευθυγράμμιση προς τα μέσα"
-
-#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:36
-#, fuzzy
-msgid "Outward align"
-msgstr "Ευθυγράμμιση προς τα έξω"
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:72
+msgid "DOCK^Medium"
+msgstr "DOCK^Μεσαίο"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:40
-msgid "Flip speed/acceleration positions"
-msgstr ""
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:73
+msgid "DOCK^Large"
+msgstr "DOCK^Μεγάλο"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:44
-msgid "Speed:"
-msgstr "ΤαÏ\87Ï\8dÏ\84ηÏ\84α"
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:96
+msgid "Grid settings:"
+msgstr "ΡÏ\85θμίÏ\83ειÏ\82 Ï\80λέγμαÏ\84οÏ\82:"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:45
-msgid "Include vertical speed"
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:99
+msgid "Snap panels to grid"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:56
-msgid "Speed unit:"
-msgstr "Î\9cονάδα Ï\84αÏ\87Ï\8dÏ\84ηÏ\84ας:"
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:102
+msgid "Grid size:"
+msgstr "Î\9cέγεθοÏ\82 Ï\80λέγμαÏ\84ος:"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:58
-msgid "qu/s"
-msgstr ""
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:103
+msgid "X:"
+msgstr "Χ:"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:59
-msgid "m/s"
-msgstr "μέÏ\84Ï\81α/δεÏ\85Ï\84εÏ\81Ï\8cλεÏ\80Ï\84ο"
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:109
+msgid "Y:"
+msgstr "Ψ:"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:60
-msgid "km/h"
-msgstr "χλμ/ώρα"
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:117
+msgid "Exit setup"
+msgstr "Έξοδος ρύθμισης"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:61
-msgid "mph"
-msgstr "μίλια/Ï\8eÏ\81α"
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:4
+msgid "Multiplayer"
+msgstr "ΠολλαÏ\80λοί Ï\80αίκÏ\84εÏ\82"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:62
-msgid "knots"
-msgstr "κÏ\8cμβοι"
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:18
+msgid "Servers"
+msgstr "Î\94ιακομιÏ\83Ï\84έÏ\82"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:64
-msgid "Show"
-msgstr "Εμφάνιση"
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:19
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:5
+msgid "Create"
+msgstr "Δημιουργία"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:67
-msgid "Top speed"
-msgstr "Μέγιστη ταχύτητα"
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:20
+msgid "Demos"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:73
-msgid "Acceleration:"
-msgstr "Επιτάχυνση:"
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:21
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:5
+msgid "Player Setup"
+msgstr "Ρύθμισεις Παίκτη"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:74
-msgid "Include vertical acceleration"
-msgstr ""
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:34
+msgid "Game type:"
+msgstr "Τύπος παιχνιδιού:"
 
-#: qcsrc/menu/xonotic/dialog_quit.c:4
-msgid "Quit"
-msgstr "Î\88ξοδοÏ\82"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:48
+msgid "Time limit:"
+msgstr "ΧÏ\81ονικÏ\8c Ï\8cÏ\81ιο:"
 
-#: qcsrc/menu/xonotic/dialog_quit.c:17
-#, fuzzy
-msgid "Are you sure you want to quit?"
-msgstr "Είσαι σίγουρος-η ότι θες να βγεις από το παιχνίδι;"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:52
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:60
+msgid "Use map specified default"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_quit.c:20
-msgid "Yes"
-msgstr "Ναι"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:55
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:154
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:155
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:156
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:160
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:161
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:162
+msgid "Point limit:"
+msgstr "Όριο βαθμολογίας:"
 
-#: qcsrc/menu/xonotic/dialog_quit.c:21
-msgid "No"
-msgstr "Î\8cÏ\87ι"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:63
+msgid "Player slots:"
+msgstr "Î\98έÏ\83ειÏ\82 Ï\80αικÏ\84Ï\8eν:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:4
-msgid "Join"
-msgstr "ΣÏ\8dνδεÏ\83η"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:66
+msgid "Number of bots:"
+msgstr "Î\91Ï\81ιθμÏ\8cÏ\82 Ï\81ομÏ\80Ï\8cÏ\84:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:28
-#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:32
-msgid "Filter:"
-msgstr "Φίλτρο:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:69
+msgid "Bot skill:"
+msgstr "Ικανότητα bot:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:36
-msgid "SRVS^Empty"
-msgstr ""
+# Ρομποτικό;
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:72
+msgid "Botlike"
+msgstr "Χαζό ρομπότ"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:40
-msgid "SRVS^Full"
-msgstr ""
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:73
+msgid "Beginner"
+msgstr "Αρχάριο"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:44
-msgid "Pause"
-msgstr "ΠαÏ\8dÏ\83η"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:74
+msgid "You will win"
+msgstr "Î\98α Î½Î¹ÎºÎ®Ï\83ειÏ\82"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:56
-msgid "Address:"
-msgstr "Î\94ιεÏ\8dθÏ\85νÏ\83η"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:75
+msgid "You can win"
+msgstr "Î\9cÏ\80οÏ\81είÏ\82 Î½Î± Î½Î¹ÎºÎ®Ï\83ειÏ\82"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:67
-msgid "Info..."
-msgstr "ΠληÏ\81οÏ\86οÏ\81ίεÏ\82..."
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:76
+msgid "You might win"
+msgstr "Î\98α Î¼Ï\80οÏ\81οÏ\8dÏ\83εÏ\82 Î½Î± Î½Î¹ÎºÎ®Ï\83ειÏ\82"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:72
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:317
-msgid "Join!"
-msgstr "Σύνδεση!"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:77
+msgid "Advanced"
+msgstr "Προχωρημένο"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:4
-msgid "Notification Panel"
-msgstr "ΠίνακαÏ\82 Î\91νακοινÏ\8eÏ\83εÏ\89ν"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:78
+msgid "Expert"
+msgstr "Î\95ιδικÏ\8c"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:22
-msgid "Notifications:"
-msgstr "Î\91νακοινÏ\8eÏ\83ειÏ\82:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:79
+msgid "Pro"
+msgstr "Î\95Ï\80Ï\80αγγελμαÏ\84ικÏ\8c"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:25
-msgid "Also print notifications to the console"
-msgstr ""
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:80
+msgid "Assassin"
+msgstr "Δολοφονικό"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:28
-msgid "Flip notify order"
-msgstr ""
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:81
+msgid "Unhuman"
+msgstr "Απάνθρωπο"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:31
-msgid "Entry lifetime:"
-msgstr ""
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:82
+msgid "Godlike"
+msgstr "Θεικό"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:35
-msgid "Entry fadetime:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:87
+msgid "Mutators..."
 msgstr ""
 
-#: qcsrc/menu/xonotic/util.qh:47
-msgid "Enable panel"
-msgstr "Ενεργοποίηση πίνακα"
-
-# It's good, but is it good enough?
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:26
-#, fuzzy
-msgid "Menu skins:"
-msgstr "Σχέδια μενού:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:96
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:145
+msgid "Advanced settings..."
+msgstr "Προχωρημένες ρυθμίσεις..."
 
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:47
-msgid "Show current time"
-msgstr "Î\95μÏ\86άνιÏ\83η Ï\84Ï\81έÏ\87Ï\89ν Ï\8eÏ\81αÏ\82"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:103
+msgid "Map list:"
+msgstr "Î\9bίÏ\83Ï\84α Ï\87άÏ\81Ï\84Ï\89ν"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:49
-msgid "Show current date"
-msgstr "Εμφάνιση τρέχων ημερομηνίας"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:109
+msgid "Select all"
+msgstr "Επιλογή όλων"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:51
-msgid "Show frames per second"
-msgstr "Εμφάνιση καρέ ανα δευτερόλεπτο"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:112
+msgid "Select none"
+msgstr "Επιλογή κανενός"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:53
-msgid "Minimize input latency"
-msgstr ""
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:118
+msgid "Start Multiplayer!"
+msgstr "Εναρξή παιχνιδιού πολλαπλών παικτών!"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:57
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:97
-msgid "Advanced settings..."
-msgstr "ΠÏ\81οÏ\87Ï\89Ï\81ημένεÏ\82 Ï\81Ï\85θμίÏ\83ειÏ\82..."
+# Bit posh... :/
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:153
+msgid "Capture limit:"
+msgstr "Î\8cÏ\81ιο ÎºÎ±Ï\84αλÏ\8dÏ\88εÏ\89ν:"
 
-#: qcsrc/menu/xonotic/dialog_singleplayer.c:4
-#, fuzzy
-msgid "Singleplayer"
-msgstr "Μονό"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:157
+msgid "Lives:"
+msgstr "Ζωές"
 
-#: qcsrc/menu/xonotic/dialog_singleplayer.c:116
-msgid "Instant action! (random map with bots)"
-msgstr "Î\86μεÏ\83η Î´Ï\81άÏ\83η! (Ï\84Ï\85Ï\87αίοÏ\82 Ï\87άÏ\81Ï\84ηÏ\82 Î¼Îµ Ï\81ομÏ\80Ï\8cÏ\84)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:158
+msgid "Laps:"
+msgstr "Î\93Ï\8dÏ\81οι:"
 
-#: qcsrc/menu/xonotic/dialog_singleplayer.c:137
-#, fuzzy
-msgid "Start Singleplayer!"
-msgstr "Î\88ναÏ\81ξη Ï\80αιÏ\87νίδι ÎµÎ½Ï\8cÏ\82 Ï\80αίκÏ\84η!"
+# Unsure of where this goes, but I think this is about right
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:159
+msgid "Goals:"
+msgstr "ΣÏ\84Ï\8cÏ\87οι:"
 
-#: qcsrc/menu/xonotic/skinlist.c:105
-msgid "<TITLE>"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:163
+msgid "Frag limit:"
 msgstr ""
 
-#: qcsrc/menu/xonotic/skinlist.c:106
-msgid "<AUTHOR>"
-msgstr ""
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:6
+msgid "Advanced server settings"
+msgstr "Προχωρημένες ρυθμίσεις εξυπηρετητή"
 
-#: qcsrc/menu/xonotic/skinlist.c:163
-#: qcsrc/common/mapinfo.qc:1092
-#, c-format
-msgid "%s: %s"
-msgstr "%s: %s"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:25
+msgid "Game settings:"
+msgstr "Ρυθμίσεις παιχνιδιού:"
 
-#: qcsrc/menu/xonotic/dialog_news.c:4
-msgid "News"
-msgstr "Î\9dέα"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:28
+msgid "Allow spectating"
+msgstr "Î\95Ï\80ιÏ\84Ï\81έÏ\80εÏ\84αι Î· Î¸Î­Î±Ï\83η"
 
-#: 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_advanced.c:31
+msgid "Spawn shield:"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:5
-msgid "Server Information"
-msgstr "ΠληÏ\81οÏ\86οÏ\81ίεÏ\82 Î\94ιακομιÏ\83Ï\84ή"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:36
+msgid "Game speed:"
+msgstr "ΤαÏ\87Ï\8dÏ\84ηÏ\84α Ï\80αιÏ\87νιδιοÏ\8d"
 
-#: 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"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:40
+msgid "Teamplay settings:"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:158
-#, c-format
-msgid "%d/%d, %d free player slots"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:43
+msgid "Friendly fire scale:"
 msgstr ""
 
-# I would seriously prefer "Default settings" for this... official makes it sound as if they will work for certain.
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:172
-#, fuzzy
-msgid "Official settings"
-msgstr "Επίσημες ρυθμίσεις"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:47
+msgid "Virtual friendly fire (effect only)"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:172
-#, c-format
-msgid "%d modified settings"
-msgstr "%d τροποποιημένες ρυθμίσεις"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:50
+msgid "Friendly fire penalty:"
+msgstr "Ποινή φιλικής πυράς:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:197
-msgid "N/A (can't connect)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:54
+msgid "Virtual penalty (effect only)"
 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_create_advanced.c:57
+msgid "Teams:"
+msgstr "Ομάδες:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:211
-msgid "supported (will encrypt)"
-msgstr "υποστηρίζεται (θα κρυπτογραφειθεί)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:66
+msgid "Map voting:"
+msgstr "Ψηφοφορία για χάρτη:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:213
-msgid "supported (won't encrypt)"
-msgstr "υποστηρίζεται (δεν κρυπτογραφίζεται)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:68
+msgid "No voting"
+msgstr "Χωρίς ψήφοφορία"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:217
-msgid "requested (will encrypt)"
-msgstr ""
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:69
+msgid "2 choices"
+msgstr "2 επιλογές"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:219
-msgid "requested (won't encrypt)"
-msgstr ""
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:70
+msgid "3 choices"
+msgstr "3 επιλογές"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:223
-msgid "required (can't connect)"
-msgstr "απαιτήται (δεν συνδέεται)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:71
+msgid "4 choices"
+msgstr "4 επιλογές"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:225
-msgid "required (will encrypt)"
-msgstr "απαιτήται (θα κρυπτογραφειθεί)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:72
+msgid "5 choices"
+msgstr "5 επιλογές"
 
-#: 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_create_advanced.c:73
+msgid "6 choices"
+msgstr "6 επιλογές"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:259
-msgid "Map:"
-msgstr "Χάρτης:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:74
+msgid "7 choices"
+msgstr "7 επιλογές"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:264
-msgid "Gameplay:"
-msgstr ""
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:75
+msgid "8 choices"
+msgstr "8 επιλογές"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:274
-msgid "Bots:"
-msgstr "Ρομπότ:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:76
+msgid "9 choices"
+msgstr "9 επιλογές"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:279
-msgid "Mod:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:79
+msgid "Simple majority wins vcall"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:284
-msgid "Version:"
-msgstr "Î\88κδοÏ\83η:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:5
+msgid "Map Information"
+msgstr "ΠληÏ\81οÏ\86οÏ\81ίεÏ\82 Î§Î¬Ï\81Ï\84η"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:289
-msgid "Ping:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:49
+msgid "Full item placement"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:295
-msgid "CA:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:49
+msgid "MinstaGib only"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:301
-msgid "Key:"
-msgstr "Î\9aÏ\89δικÏ\8cÏ\82:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:81
+msgid "Title:"
+msgstr "ΤίÏ\84λοÏ\82"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:307
-msgid "Encryption:"
-msgstr "Î\9aÏ\81Ï\85Ï\80Ï\84ογÏ\81άÏ\86ηÏ\83η:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:87
+msgid "Author:"
+msgstr "Î\94ημιοÏ\85Ï\81γÏ\8cÏ\82:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:314
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:118
-msgid "Close"
-msgstr "Κλείσιμο"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:93
+msgid "Features:"
+msgstr "Χαρακτηριστικά:"
 
-#: qcsrc/menu/xonotic/slider_decibels.c:50
-#, fuzzy
-msgid "VOL^OFF"
-msgstr "VOL^Σίγαση"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:98
+msgid "Game types:"
+msgstr "Τύποι παιχνιδιού:"
 
-#: qcsrc/menu/xonotic/slider_decibels.c:52
-#, fuzzy
-msgid "VOL^MAX"
-msgstr "VOL^Τέρμα"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:121
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:335
+msgid "Close"
+msgstr "Κλείσιμο"
 
-#: qcsrc/menu/xonotic/slider_decibels.c:53
-#, c-format
-msgid "%s dB"
-msgstr "%s dB"
+# Just doesn't sound right... would prefer a noun rather than a verb
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:124
+msgid "MAP^Play"
+msgstr "MAP^Παίξε"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:7
 msgid "Mutators"
@@ -1069,904 +1113,1039 @@ msgid "%s Arena"
 msgstr ""
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:68
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:167
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:173
 msgid "Dodging"
-msgstr ""
+msgstr "Υπεκφυγή"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:70
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:250
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:258
 msgid "MinstaGib"
 msgstr ""
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:72
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:253
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:261
 msgid "NIX"
 msgstr ""
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:74
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:205
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:213
 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"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:76
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:210
+msgid "Invincible Projectiles"
 msgstr ""
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:80
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:189
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:272
+msgid "No start weapons"
+msgstr "Χωρίς όπλα στην αρχή"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:82
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:195
 msgid "Low gravity"
 msgstr "Χαμηλή βαρύτητα"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:82
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:170
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:84
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:176
 msgid "Cloaked"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:84
-#, fuzzy
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:86
 msgid "Hook"
 msgstr "Γάντζος"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:86
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:173
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:88
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:179
 msgid "Midair"
 msgstr "Στον αέρα"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:88
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:176
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:90
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:182
 msgid "Vampire"
 msgstr "Βρυκόλακας"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:90
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:208
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:92
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:216
 msgid "Piñata"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:92
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:211
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:94
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:219
 msgid "Weapons stay"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:94
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:180
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:96
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:186
 msgid "Blood loss"
 msgstr "Αιμορραγία"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:96
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:202
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:98
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:207
 msgid "Jet pack"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:98
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:100
+msgid "No powerups"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:102
+msgid "Powerups"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:104
 msgid "MUT^None"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:164
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:170
 msgid "Gameplay mutators:"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:196
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:201
 msgid "Weapon & item mutators:"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:199
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:204
 msgid "Grappling hook"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:215
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:223
 msgid "Weapon arenas:"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:218
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:226
 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 "Περιστροφή:"
-
-# Don't know the context of this.
-#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:38
-#, fuzzy
-msgid "Forward"
-msgstr "Εμπρός"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:264
+msgid "with laser"
+msgstr "με λέιζερ"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:39
-msgid "West"
-msgstr "Δυτικά"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:255
+msgid "Special arenas:"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:40
-msgid "South"
-msgstr "Î\9dÏ\8cÏ\84ια"
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:268
+msgid "Most weapons"
+msgstr "ΠεÏ\81ιÏ\83Ï\83Ï\8cÏ\84εÏ\81α Ï\8cÏ\80λα"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:41
-msgid "East"
-msgstr "Ανατολικά"
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:4
+msgid "Demo"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:42
-msgid "North"
-msgstr "Βόρεια"
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:28
+msgid "Automatically record demos while playing"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:46
-msgid "Scale:"
-msgstr "Κλίμακα:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:31
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:28
+msgid "Filter:"
+msgstr "Φίλτρο:"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:50
-msgid "Zoom mode:"
-msgstr "Ρύθμιση μεγέθυνσης:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:32
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:29
+#: qcsrc/menu/xonotic/dialog_settings_input.c:40
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:32
+msgid "Clear"
+msgstr "Εκκαθάριση"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:52
-msgid "Zoomed in"
-msgstr "Μεγεθυμένο"
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:45
+msgid "Timedemo"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:53
-msgid "Zoomed out"
-msgstr "Σμικρυσμένο"
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:48
+msgid "DEMO^Play"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:54
-msgid "Always zoomed"
-msgstr "ΠάνÏ\84α Î¼ÎµÎ³ÎµÎ¸Ï\85μένο"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:4
+msgid "Join"
+msgstr "ΣÏ\8dνδεÏ\83η"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:55
-msgid "Never zoomed"
-msgstr "Ποτέ μεγεθυμένο"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:36
+msgid "SRVS^Empty"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_racetimer.c:4
-msgid "Race Timer Panel"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:40
+msgid "SRVS^Full"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:4
-msgid "Chat Panel"
-msgstr "ΠίνακαÏ\82 Î\9fμιλίαÏ\82"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:44
+msgid "Pause"
+msgstr "ΠαÏ\8dÏ\83η"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:22
-msgid "Chat entries:"
-msgstr ""
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:56
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:262
+msgid "Address:"
+msgstr "Διεύθυνση"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:25
-msgid "Chat size:"
-msgstr "Î\9cέγεθοÏ\82 Î¿Î¼Î¹Î»Î¯Î±Ï\82:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:67
+msgid "Info..."
+msgstr "ΠληÏ\81οÏ\86οÏ\81ίεÏ\82..."
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:29
-msgid "Chat lifetime:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:72
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:342
+msgid "Join!"
+msgstr "Σύνδεση!"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:5
+msgid "Server Information"
+msgstr "Πληροφορίες Διακομιστή"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:132
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:133
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:242
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:247
+msgid "N/A"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:33
-msgid "Chat beep sound"
-msgstr "Ήχος ομιλίας"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:179
+#, c-format
+msgid "%d/%d"
+msgstr "%d/%d"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:5
-#: qcsrc/menu/xonotic/dialog_multiplayer.c:19
-msgid "Create"
-msgstr "Δημιουργία"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:193
+#: qcsrc/menu/xonotic/util.qc:632 qcsrc/menu/xonotic/util.qc:648
+#: qcsrc/menu/xonotic/util.qc:657 qcsrc/menu/xonotic/util.qc:665
+#: qcsrc/menu/xonotic/util.qc:677
+msgid "Default"
+msgstr "Προεπιλογή"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:34
-msgid "Game type:"
-msgstr "Τύπος παιχνιδιού:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:200
+#, c-format
+msgid "%d modified"
+msgstr "%d τροποποιημένες ρυθμίσεις"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:46
-msgid "Match settings:"
-msgstr ""
+# I would seriously prefer "Default settings" for this... official makes it sound as if they will work for certain.
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:200
+msgid "Official"
+msgstr "Επίσημες ρυθμίσεις"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:49
-msgid "Time limit:"
-msgstr "Χρονικό όριο:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:208
+msgid "N/A (auth library missing, can't connect)"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:53
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:61
-msgid "Use map specified default"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:210
+msgid "N/A (auth library missing)"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:56
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:155
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:156
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:157
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:161
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:162
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:163
-#, fuzzy
-msgid "Point limit:"
-msgstr "Όριο βαθμολογίας:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:216
+msgid "Not supported (can't connect)"
+msgstr "δεν υποστηρίζεται (δεν συνδέεται)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:64
-msgid "Player slots:"
-msgstr "Î\98έÏ\83ειÏ\82 Ï\80αικÏ\84Ï\8eν:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:218
+msgid "Not supported (won't encrypt)"
+msgstr "δεν Ï\85Ï\80οÏ\83Ï\84ηÏ\81ίζεÏ\84αι (δεν ÎºÏ\81Ï\85Ï\80Ï\84ογÏ\81αÏ\86είζεÏ\84αι)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:67
-msgid "Number of bots:"
-msgstr "Αριθμός ρομπότ:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:222
+msgid "Supported (will encrypt)"
+msgstr "υποστηρίζεται (θα κρυπτογραφειθεί)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:71
-msgid "Bot skill:"
-msgstr "Ικανότητα bot:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:224
+msgid "Supported (won't encrypt)"
+msgstr "υποστηρίζεται (δεν κρυπτογραφίζεται)"
 
-# Ρομποτικό;
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:74
-msgid "Botlike"
-msgstr "Χαζό ρομπότ"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:228
+msgid "Requested (will encrypt)"
+msgstr "απαιτήται (θα κρυπτογραφειθεί)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:75
-msgid "Beginner"
-msgstr "Αρχάριο"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:230
+msgid "Requested (won't encrypt)"
+msgstr "υποστηρίζεται (δεν κρυπτογραφίζεται)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:76
-msgid "You will win"
-msgstr "Î\98α Î½Î¹ÎºÎ®Ï\83ειÏ\82"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:234
+msgid "Required (can't connect)"
+msgstr "αÏ\80αιÏ\84ήÏ\84αι (δεν Ï\83Ï\85νδέεÏ\84αι)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:77
-msgid "You can win"
-msgstr "Î\9cÏ\80οÏ\81είÏ\82 Î½Î± Î½Î¹ÎºÎ®Ï\83ειÏ\82"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:236
+msgid "Required (will encrypt)"
+msgstr "αÏ\80αιÏ\84ήÏ\84αι (θα ÎºÏ\81Ï\85Ï\80Ï\84ογÏ\81αÏ\86ειθεί)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:78
-msgid "You might win"
-msgstr "Î\98α Î¼Ï\80οÏ\81οÏ\8dÏ\83εÏ\82 Î½Î± Î½Î¹ÎºÎ®Ï\83ειÏ\82"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:256
+msgid "Hostname:"
+msgstr "Î\8cνομα Î´Î¹Î±ÎºÎ¿Î¼Î¹Ï\83Ï\84ή:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:79
-msgid "Advanced"
-msgstr "ΠÏ\81οÏ\87Ï\89Ï\81ημένο"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:270
+msgid "Gametype:"
+msgstr "ΤÏ\8dÏ\80οÏ\82 Ï\80αιÏ\87νιδιοÏ\8d:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:80
-msgid "Expert"
-msgstr "Î\95ιδικÏ\8c"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:275
+msgid "Map:"
+msgstr "ΧάÏ\81Ï\84ηÏ\82:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:81
-msgid "Pro"
-msgstr "Î\95Ï\80Ï\80αγγελμαÏ\84ικÏ\8c"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:280
+msgid "Mod:"
+msgstr "ΤÏ\81οÏ\80οÏ\80οίηÏ\83η:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:82
-msgid "Assassin"
-msgstr "Î\94ολοÏ\86ονικÏ\8c"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:285
+msgid "Version:"
+msgstr "Î\88κδοÏ\83η:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:83
-msgid "Unhuman"
-msgstr "Î\91Ï\80άνθÏ\81Ï\89Ï\80ο"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:290
+msgid "Settings:"
+msgstr "ΡÏ\85θμίÏ\83ειÏ\82:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:84
-msgid "Godlike"
-msgstr "Θεικό"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:297
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:329
+msgid "Players:"
+msgstr "Παίκτες:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:88
-msgid "Mutators..."
-msgstr ""
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:302
+msgid "Bots:"
+msgstr "Ρομπότ:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:104
-msgid "Map list:"
-msgstr "Î\9bίÏ\83Ï\84α Ï\87άÏ\81Ï\84Ï\89ν"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:307
+msgid "Free slots:"
+msgstr "Î\95λεÏ\8dθεÏ\81εÏ\82 Î¸Î­Ï\83ειÏ\82:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:110
-msgid "Select all"
-msgstr "Î\95Ï\80ιλογή Ï\8cλÏ\89ν"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:313
+msgid "Encryption:"
+msgstr "Î\9aÏ\81Ï\85Ï\80Ï\84ογÏ\81άÏ\86ηÏ\83η:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:113
-#, fuzzy
-msgid "Select none"
-msgstr "Επιλογή κανενός"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:318
+msgid "ID:"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:119
-#, fuzzy
-msgid "Start Multiplayer!"
-msgstr "Εναρξή παιχνίδι πολλαπλών παικτών!"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:323
+msgid "Key:"
+msgstr "Κωδικός:"
 
-# Bit posh... :/
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:154
-#, fuzzy
-msgid "Capture limit:"
-msgstr "Όριο καταλύψεων:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:60
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:19
+msgid "Model:"
+msgstr "Μοντέλο:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:158
-msgid "Lives:"
-msgstr "Î\96Ï\89έÏ\82"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:88
+msgid "No crosshair"
+msgstr "ΧÏ\89Ï\81ίÏ\82 Ï\83Ï\84Ï\8cÏ\87αÏ\83Ï\84Ï\81ο"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:159
-msgid "Laps:"
-msgstr "Î\93Ï\8dÏ\81οι:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:90
+msgid "Per weapon crosshair"
+msgstr "Î\91νά Ï\8cÏ\80λο"
 
-# Unsure of where this goes, but I think this is about right
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:160
-msgid "Goals:"
-msgstr "Στόχοι:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:93
+msgid "Custom crosshair"
+msgstr "Προσαρμοσμένο στόχαστρο"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:164
-msgid "Frag limit:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:112
+msgid "Crosshair size:"
+msgstr "Μέγεθος στόχαστρου"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:117
+msgid "Crosshair alpha:"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_singleplayer_winner.c:4
-msgid "Winner"
-msgstr "Î\9dικηÏ\84ήÏ\82"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:123
+msgid "Crosshair color:"
+msgstr "ΧÏ\81Ï\8eμα Ï\83Ï\84Ï\8cÏ\87αÏ\83Ï\84Ï\81οÏ\85:"
 
-#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:5
-msgid "User defined key bind"
-msgstr ""
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:125
+msgid "Per weapon"
+msgstr "Ανά όπλο"
 
-#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:42
-msgid "Command when pressed:"
-msgstr ""
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:127
+msgid "By health"
+msgstr "Ανάλογα με ζωή"
 
-#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:45
-msgid "Command when released:"
-msgstr ""
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:131
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:47
+msgid "Custom"
+msgstr "Προσαρμογή"
 
-#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:48
-msgid "Save"
-msgstr "Î\91Ï\80οθήκεÏ\85Ï\83η"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:139
+msgid "Other crosshair settings"
+msgstr "Î\86λλεÏ\82 Ï\81Ï\85θμίÏ\83ειÏ\82 Ï\83Ï\84Ï\8cÏ\87αÏ\83Ï\84Ï\81οÏ\85"
 
-#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:51
-msgid "Cancel"
-msgstr "Ακύρωση"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:147
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:6
+msgid "Model settings"
+msgstr "Ρυθμίσεις μοντέλων"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:5
-#: qcsrc/menu/xonotic/dialog_multiplayer.c:21
-msgid "Player Setup"
-msgstr "ΡÏ\8dθμιÏ\83ειÏ\82 Î Î±Î¯ÎºÏ\84η"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:153
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:6
+msgid "View settings"
+msgstr "ΡÏ\85θμίÏ\83ειÏ\82 Ï\80Ï\81οβολήÏ\82"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:63
-msgid "Model:"
-msgstr "Μοντέλο:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:159
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:6
+msgid "Weapon settings"
+msgstr "Ρυθμίσεις όπλων"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:88
-msgid "Field of view:"
-msgstr "Οπτικό πεδίο:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:169
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:6
+msgid "HUD settings"
+msgstr "Αποθήκευση ρυθμίσεων"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:92
-msgid "View bobbing:"
-msgstr ""
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:175
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:203
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:185
+#: qcsrc/menu/xonotic/dialog_settings_input.c:89
+#: qcsrc/menu/xonotic/dialog_settings_user.c:88
+#: qcsrc/menu/xonotic/dialog_settings_video.c:142
+msgid "Apply immediately"
+msgstr "Άμεση εφαρμογή"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:96
-msgid "Zoom factor:"
-msgstr "ΣÏ\85νÏ\84ελεÏ\83Ï\84ήÏ\82 Î¼ÎµÎ³Î­Î¸Ï\85νÏ\83ηÏ\82"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:6
+msgid "Crosshair settings"
+msgstr "ΡÏ\85θμίÏ\83ειÏ\82 Ï\80λέγμαÏ\84οÏ\82:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:100
-msgid "Zoom speed:"
-msgstr "ΤαÏ\87Ï\8dÏ\84ηÏ\84α Î¶Î¿Ï\85μ:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:28
+msgid "Enable center crosshair dot"
+msgstr "Î\95νεÏ\81γοÏ\80οίηÏ\83η ÎºÎµÎ½Ï\84Ï\81ικήÏ\82 ÎºÎ¿Ï\85κκίδαÏ\82 Ï\83Ï\84οÏ\87αÏ\83μοÏ\8d"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:103
-msgid "Weapon settings..."
-msgstr "ΡÏ\85θμίÏ\83ειÏ\82 Ï\8cÏ\80λÏ\89ν..."
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:31
+msgid "Dot size:"
+msgstr "Î\9cέγεθοÏ\82 ÎºÎ¿Ï\85κκίδαÏ\82:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:110
-msgid "Crosshair:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:36
+msgid "Dot alpha:"
 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_crosshair.c:41
+msgid "Dot color:"
+msgstr "Χρώμα κουκκίδας:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:130
-msgid "Crosshair size:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:43
+msgid "Use normal crosshair color"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:134
-msgid "Crosshair alpha:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:54
+msgid "Crosshair animations:"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:138
-msgid "Crosshair color:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:57
+msgid "Smooth effects of crosshairs"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:140
-msgid "By health"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:61
+msgid "Use rings to indicate weapon status"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:143
-msgid "Custom"
-msgstr "Προσαρμογή"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:67
+msgid "Hit testing:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:69
+msgid "HTTST^Disabled"
+msgstr "HTTST^Απενεργοποιημένο"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:148
-msgid "Enable center dot"
-msgstr "Ενεργοποίηση κεντρικής κουκκίδας"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:70
+msgid "HTTST^TrueAim"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:151
-msgid "Size:"
-msgstr "Μέγεθος:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:71
+msgid "HTTST^Enemies"
+msgstr "HTTST^Εχθροί"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:158
-msgid "Hit test:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:76
+msgid "Blur crosshair if the shot is obstructed"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:159
-msgid "HTST^None"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:81
+msgid "Animate when hitting an enemy"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:160
-msgid "TrueAim"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:85
+msgid "Animate when picking up an item"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:161
-msgid "Enemies"
-msgstr "Î\95Ï\87θÏ\81οί"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:40
+msgid "Damage:"
+msgstr "Î\96ημιά:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:164
-msgid "Waypoints setup..."
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:43
+msgid "Overlay:"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:169
-msgid "Enter HUD editor"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:47
+#, fuzzy
+msgid "Factor:"
+msgstr "Συντελεστής μεγέθυνσης:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:52
+msgid "Fade rate:"
+msgstr "Εφέ ξεθωριάσματος:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:58
+msgid "Waypoints"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:174
-msgid "Force models:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:71
+msgid "Edge offset:"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:175
-msgid "MDL^None"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:80
+msgid "Show names above players"
+msgstr "Εμφάνιση ονομάτων πάνω από τους παίκτες"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:83
+msgid "Only when near crosshair"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:176
-msgid "MDL^Custom"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:86
+msgid "Display health and armor"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:177
-msgid "MDL^All"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:90
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hudconfirm.c:4
+msgid "Enter HUD editor"
+msgstr "Έναρξη επεγεργασίας HUD"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hudconfirm.c:28
+msgid "In order for the HUD editor to show, you must first be in game."
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:180
-msgid "Disable gore effects"
-msgstr "Απενεργοποίηση αιματηρών εφέ"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hudconfirm.c:30
+msgid "Do you wish to start a local game to set up the HUD?"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hudconfirm.c:33
+msgid "HDCNFRM^Yes"
+msgstr "HDCNFRM^Ναι"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hudconfirm.c:36
+msgid "HDCNFRM^No"
+msgstr "HDCNFRM^Όχι"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:28
+msgid "Body fading:"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:182
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:31
 msgid "Gibs:"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:184
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:33
 msgid "GIBS^None"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:185
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:34
 msgid "GIBS^Few"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:186
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:35
 msgid "GIBS^Many"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:187
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:36
 msgid "GIBS^Lots"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:191
-msgid "Damage splash:"
-msgstr ""
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:40
+#, fuzzy
+msgid "Playermodel LOD:"
+msgstr "LOD μοντέλου παίκτη:"
 
-#: qcsrc/menu/xonotic/cvarlist.c:85
-msgid "will be saved to config.cfg"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:44
+msgid "Force models:"
 msgstr ""
 
-#: qcsrc/menu/xonotic/cvarlist.c:87
-msgid "will not be saved"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:45
+msgid "MDL^None"
 msgstr ""
 
-#: qcsrc/menu/xonotic/cvarlist.c:89
-msgid "private"
-msgstr "προσωπικές"
-
-#: qcsrc/menu/xonotic/cvarlist.c:91
-msgid "engine setting"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:46
+msgid "MDL^Custom"
 msgstr ""
 
-#: qcsrc/menu/xonotic/cvarlist.c:93
-msgid "read only"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:47
+msgid "MDL^All"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_centerprint.c:4
-msgid "Centerprint"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:50
+msgid "Force player models to mine"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_centerprint.c:23
-msgid "Message duration:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:52
+msgid "Force player colors to mine"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_centerprint.c:27
-msgid "Fade time:"
-msgstr ""
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:28
+msgid "Field of view:"
+msgstr "Οπτικό πεδίο:"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_centerprint.c:31
-msgid "Flip messages order"
-msgstr ""
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:31
+msgid "Zoom:"
+msgstr "Ρύθμιση μεγέθυνσης:"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_centerprint.c:33
-msgid "Text alignment:"
-msgstr "Î\95Ï\85θÏ\85γÏ\81άμμιÏ\83η ÎºÎµÎ¹Î¼Î­Î½Î¿Ï\85"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:33
+msgid "RETICLE^Fullscreen"
+msgstr "ΠλήÏ\81ηÏ\82 Î¿Î¸Ï\8cνη"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_centerprint.c:36
-#: 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_multiplayer_playersetup_view.c:34
+msgid "RETICLE^With reticle"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_centerprint.c:37
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:50
-msgid "Center"
-msgstr "Στο κέντρο"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:38
+msgid "ZOOM^Factor:"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_centerprint.c:38
-#: 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_view.c:42
+msgid "ZOOM^Speed:"
+msgstr "ZOOM^Ταχύτητα"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_centerprint.c:41
-msgid "Font scale:"
-msgstr "Μέγεθος γραμματοσειράς:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:52
+msgid "ZOOM^Instant"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_score.c:4
-msgid "Score Panel"
-msgstr "Πίνακας Βαθμολογίας"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:56
+msgid "ZOOM^Sensitivity:"
+msgstr "ZOOM^Ευαισθησία:"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_score.c:22
-msgid "Score:"
-msgstr "Βαθμολογία:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:59
+msgid "Velocity zoom:"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_score.c:25
-msgid "Rankings:"
-msgstr "Κατατάξεις:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:61
+msgid "VZOOM^Disabled"
+msgstr "VZOOM^Απενεργοποιημένο"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_score.c:26
-msgid "Off"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:62
+msgid "VZOOM^Forward only"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_score.c:27
-msgid "And me"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:63
+msgid "VZOOM^All directions"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_score.c:28
-msgid "Pure"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:67
+msgid "VZOOM^Speed"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_timer.c:4
-msgid "Timer Panel"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:72
+msgid "Allow passing through walls while spectating"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_timer.c:22
-msgid "Timer:"
-msgstr "ΧÏ\81ονÏ\8cμεÏ\84Ï\81ο:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:75
+msgid "1st person perspective"
+msgstr "ΠÏ\81οοÏ\80Ï\84ική 1οÏ\85 Ï\80Ï\81οÏ\83Ï\8eÏ\80οÏ\85"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_timer.c:25
-msgid "Show elapsed time"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:79
+msgid "Smooth the view when landing from a jump"
 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"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:83
+msgid "Smooth the view while crouching"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:49
-msgid "MinstaGib only"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:87
+msgid "View waving while idle"
 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 "Τύποι παιχνιδιού:"
-
-# Just doesn't sound right... would prefer a noun rather than a verb
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:121
-#, fuzzy
-msgid "MAP^Play"
-msgstr "MAP^Παίξε"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:6
-msgid "Advanced server settings"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:91
+msgid "View bobbing while walking around"
 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_playersetup_view.c:96
+msgid "3rd person perspective"
+msgstr "Προοπτική 3ου προσώπου"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:31
-msgid "Spawn shield:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:100
+msgid "Back distance"
 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:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:106
+msgid "Up distance"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:43
-msgid "Friendly fire scale:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:29
+msgid "Weapon priority list:"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:47
-msgid "Virtual friendly fire (effect only)"
-msgstr ""
+# Would prefer υψηλότερη/χαμηλότερη (higher/lower) but may be too long
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:33
+msgid "Up"
+msgstr "Πάνω"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:50
-msgid "Friendly fire penalty:"
-msgstr "Ποινή φιλικής πυράς:"
+# Would prefer υψηλότερη/χαμηλότερη (higher/lower) but may be too long
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:36
+msgid "Down"
+msgstr "Κάτω"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:54
-msgid "Virtual penalty (effect only)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:41
+msgid "Use priority list for weapon cycling"
 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 "2 επιλογές"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:43
+msgid "Auto switch weapons on pickup"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:70
-msgid "3 choices"
-msgstr "3 επιλογές"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:46
+msgid "Draw 1st person weapon model"
+msgstr "Εμφάνιση όπλου σε πρώτο πρόσωπο"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:71
-msgid "4 choices"
-msgstr "4 επιλογές"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:58
+msgid "Gun model swaying"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:72
-msgid "5 choices"
-msgstr "5 επιλογές"
+# Functional, but could be improved as far as including no models at all goes in the meaning of the sentence
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:63
+#, fuzzy
+msgid "Gun model bobbing"
+msgstr "Ανεβοκατέβασμα μοντέλου όπλου"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:73
-msgid "6 choices"
-msgstr "6 επιλογές"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:68
+msgid "VWMDL^Scale"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:74
-msgid "7 choices"
-msgstr "7 επιλογές"
+#: qcsrc/menu/xonotic/dialog_news.c:4
+msgid "News"
+msgstr "Νέα"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:75
-msgid "8 choices"
-msgstr "8 επιλογές"
+#: 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_advanced.c:76
-msgid "9 choices"
-msgstr "9 επιλογές"
+#: qcsrc/menu/xonotic/dialog_quit.c:4
+msgid "Quit"
+msgstr "Έξοδος"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:79
-msgid "Simple majority wins vcall"
-msgstr ""
+#: qcsrc/menu/xonotic/dialog_quit.c:18
+msgid "Are you sure you want to quit?"
+msgstr "Είσαι σίγουρος-η ότι θες να βγεις από το παιχνίδι;"
 
-#: qcsrc/menu/xonotic/util.qc:271
-#, c-format
-msgid "Received HTTP request data for an invalid id %d.\n"
-msgstr ""
+#: qcsrc/menu/xonotic/dialog_quit.c:21
+msgid "Yes"
+msgstr "Ναι"
 
-#: qcsrc/menu/xonotic/util.qc:286
-#, c-format
-msgid "error receiving update notification: status is %d\n"
-msgstr ""
+#: qcsrc/menu/xonotic/dialog_quit.c:22
+msgid "No"
+msgstr "Όχι"
 
-#: qcsrc/menu/xonotic/util.qc:291
-msgid "error: received HTML instead of an update notification\n"
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:4
+msgid "Sandbox Tools"
 msgstr ""
 
-#: qcsrc/menu/xonotic/util.qc:296
-msgid "error: received carriage returns from update notification server\n"
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:24
+msgid "Spawn"
 msgstr ""
 
-#: qcsrc/menu/xonotic/util.qc:317
-#, c-format
-msgid ""
-"Update can be downloaded at:\n"
-"%s\n"
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:25
+msgid "Remove *"
+msgstr "Αφαίρεση *"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:27
+msgid "Copy *"
+msgstr "Αντίγραφή *"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:28
+msgid "Paste"
+msgstr "Επικόλληση"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:30
+msgid "Bone:"
+msgstr "Κόκκαλο:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:35
+msgid "Set * as child"
 msgstr ""
-"Μπορεί να γίνει λήψη της αναβάθμισης στις:\n"
-"%s\n"
 
-#: qcsrc/menu/xonotic/util.qc:340
-msgid "Autogenerating mapinfo for newly added maps..."
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:36
+msgid "Attach to *"
+msgstr "Επισύναψη στο *"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:38
+msgid "Detach from *"
+msgstr "Αποσύναψη απο *"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:41
+msgid "Visual object properties for *:"
 msgstr ""
 
-#: qcsrc/menu/xonotic/util.qc:370
-#, c-format
-msgid "^1%s TEST BUILD"
+# It's good, but is it good enough?
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:43
+msgid "Set skin:"
+msgstr "Ορισμός σχεδίου μενού:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:45
+msgid "Set alpha:"
 msgstr ""
 
-#: qcsrc/menu/xonotic/util.qc:428
-#, c-format
-msgid "Update to %s now!"
-msgstr "Αναβαθμίστε στην έκδοση %s τώρα!"
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:48
+msgid "Set color main:"
+msgstr "Ορισμός κυρίου χρώματος:"
 
-#: qcsrc/menu/xonotic/util.qc:513
-msgid ""
-"^1ERROR: Texture compression is required but not supported.\n"
-"^1Expect visual problems.\n"
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:50
+#, fuzzy
+msgid "Set color glow:"
+msgstr "Ορισμός λάμψης χρώματος:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:54
+msgid "Set frame:"
+msgstr "Ορισμός πλαισίου:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:58
+msgid "Physical object properties for *:"
 msgstr ""
 
-#: qcsrc/menu/xonotic/util.qc:535
-msgid "Arena"
-msgstr "Î\91Ï\81ένα"
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:60
+msgid "Set material:"
+msgstr "Î\9fÏ\81ιÏ\83μÏ\8cÏ\82 Ï\85λικοÏ\8d:"
 
-#: qcsrc/menu/xonotic/util.qc:536
-msgid "Assault"
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:66
+msgid "Set solidity:"
 msgstr ""
 
-#: qcsrc/menu/xonotic/util.qc:537
-msgid "Capture The Flag"
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:67
+msgid "Non-solid"
+msgstr "Μη συμπαγές"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:68
+msgid "Solid"
+msgstr "Συμπαγές"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:69
+msgid "Set physics:"
 msgstr ""
 
-#: qcsrc/menu/xonotic/util.qc:538
-msgid "Clan Arena"
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:70
+msgid "Static"
+msgstr "Στατικό"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:71
+msgid "Movable"
 msgstr ""
 
-#: qcsrc/menu/xonotic/util.qc:539
-msgid "Deathmatch"
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:72
+msgid "Physical"
 msgstr ""
 
-# About as cool as I could make it sound
-#: qcsrc/menu/xonotic/util.qc:540
-msgid "Domination"
-msgstr "Κυριαρχία"
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:74
+msgid "Set scale:"
+msgstr "Ορισμός μεγέθους:"
 
-#: qcsrc/menu/xonotic/util.qc:541
-msgid "Freeze Tag"
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:76
+msgid "Set force:"
+msgstr "Ορισμός ισχύης:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:80
+msgid "Claim *"
 msgstr ""
 
-#: qcsrc/menu/xonotic/util.qc:542
-msgid "Keepaway"
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:82
+msgid "* object info"
 msgstr ""
 
-# Could be improved
-#: qcsrc/menu/xonotic/util.qc:543
-msgid "Key Hunt"
-msgstr "Κυνήγι για κλειδιά"
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:83
+msgid "* mesh info"
+msgstr ""
 
-#: qcsrc/menu/xonotic/util.qc:544
-msgid "Last Man Standing"
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:84
+msgid "* attachment info"
 msgstr ""
 
-# See comments on "Nex"
-#: qcsrc/menu/xonotic/util.qc:545
-msgid "Nexball"
-msgstr "Θανατόμπαλα"
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:85
+msgid "Show help"
+msgstr "Εμφάνιση βοήθειας"
 
-#: qcsrc/menu/xonotic/util.qc:546
-msgid "Onslaught"
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:86
+msgid "* is the object you are facing"
 msgstr ""
 
-#: qcsrc/menu/xonotic/util.qc:547
-msgid "Race"
-msgstr "Î\91γÏ\8eνας"
+#: qcsrc/menu/xonotic/dialog_settings.c:4
+msgid "Settings"
+msgstr "ΡÏ\85θμίÏ\83εις"
 
-#: qcsrc/menu/xonotic/util.qc:548
-msgid "Race CTS"
-msgstr ""
+#: qcsrc/menu/xonotic/dialog_settings.c:18
+#: qcsrc/menu/xonotic/dialog_settings_input.c:4
+msgid "Input"
+msgstr "Εισαγωγή"
 
-#: qcsrc/menu/xonotic/util.qc:549
-msgid "Runematch"
-msgstr ""
+#: qcsrc/menu/xonotic/dialog_settings.c:19
+#: qcsrc/menu/xonotic/dialog_settings_video.c:4
+msgid "Video"
+msgstr "Βίντεο"
 
-#: qcsrc/menu/xonotic/util.qc:550
-msgid "Team Deathmatch"
-msgstr ""
+#: qcsrc/menu/xonotic/dialog_settings.c:20
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:4
+msgid "Effects"
+msgstr "Εφέ"
 
-#: qcsrc/menu/xonotic/util.qc:569
-#, c-format
-msgid "@!#%'n Tuba Throwing"
-msgstr ""
+#: qcsrc/menu/xonotic/dialog_settings.c:21
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:4
+msgid "Audio"
+msgstr "Ήχος"
 
-#: qcsrc/menu/xonotic/util.qc:589
-#: qcsrc/menu/xonotic/util.qc:605
-#: qcsrc/menu/xonotic/util.qc:614
-#: qcsrc/menu/xonotic/util.qc:622
-#: qcsrc/menu/xonotic/util.qc:634
-msgid "Default"
-msgstr "Προεπιλογή"
+#: qcsrc/menu/xonotic/dialog_settings.c:22
+#: qcsrc/menu/xonotic/dialog_settings_user.c:4
+msgid "User"
+msgstr "Χρήστης"
 
-#: qcsrc/menu/xonotic/util.qc:600
-msgid "Use default"
-msgstr "Χρήση προεπιλογής"
+#: qcsrc/menu/xonotic/dialog_settings.c:23
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:4
+msgid "Misc"
+msgstr "Λοιπά"
 
-#: qcsrc/menu/xonotic/util.qc:620
-msgid "Team Color:"
-msgstr "ΧÏ\81Ï\8eμα Î\9fμαδάÏ\82:"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:27
+msgid "Master:"
+msgstr "Î\9aÏ\8dÏ\81ια Î­Î½Ï\84αÏ\83η Î®Ï\87οÏ\85:"
 
-# Functional, but could be improved as far as including no models at all goes in the meaning of the sentence
-#: qcsrc/menu/xonotic/playermodel.c:174
-msgid "<no model found>"
-msgstr "<μοντέλο δεν βρέθηκε>"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:35
+msgid "Music:"
+msgstr "Μουσική"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:4
-msgid "Ammo Panel"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:45
+msgid "VOL^Ambient:"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:22
-msgid "Ammunition display:"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:54
+msgid "Info:"
+msgstr "Πληροφορίες:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:63
+msgid "Items:"
+msgstr "Αντικείμενα:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:72
+msgid "Pain:"
+msgstr "Πόνος:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:81
+msgid "Player:"
+msgstr "Παίκτης:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:90
+msgid "Shots:"
+msgstr "Πυροβολισμοί:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:99
+msgid "Voice:"
+msgstr "Φωνή:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:109
+msgid "Weapons:"
+msgstr "Όπλα:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:117
+msgid "New style sound attenuation"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:25
-msgid "Show only current ammo type"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:119
+msgid "Mute sounds when not active"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:28
-msgid "Align icon:"
-msgstr "Ευθυγράμμιση εικονιδίου:"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:122
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:194
+msgid "Frequency:"
+msgstr "Συχνότητα:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:6
-msgid "Weapon settings"
-msgstr "Ρυθμίσεις όπλων"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:124
+msgid "8 kHz"
+msgstr "8 kHz"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:29
-msgid "Weapon priority list:"
-msgstr ""
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:125
+msgid "11.025 kHz"
+msgstr "11.025 kHz"
 
-# Would prefer υψηλότερη/χαμηλότερη (higher/lower) but may be too long
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:34
-msgid "Up"
-msgstr "Πάνω"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:126
+msgid "16 kHz"
+msgstr "16 kHz"
 
-# Would prefer υψηλότερη/χαμηλότερη (higher/lower) but may be too long
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:37
-msgid "Down"
-msgstr "Κάτω"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:127
+msgid "22.05 kHz"
+msgstr "22.05 kHz"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:41
-msgid "Use priority list for weapon cycling"
-msgstr ""
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:128
+msgid "24 kHz"
+msgstr "24 kHz"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:43
-msgid "Auto switch weapons on pickup"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:129
+msgid "32 kHz"
+msgstr "32 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:130
+msgid "44.1 kHz"
+msgstr "44.1 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:131
+msgid "48 kHz"
+msgstr "48 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:134
+msgid "Channels:"
+msgstr "Κανάλια:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:136
+msgid "Mono"
+msgstr "Μονοφωνικό"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:137
+msgid "Stereo"
+msgstr "Στερεφωνικό"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:138
+msgid "2.1"
+msgstr "2.1"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:139
+msgid "4"
+msgstr "4"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:140
+msgid "5"
+msgstr "5"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:141
+msgid "5.1"
+msgstr "5.1"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:142
+msgid "6.1"
+msgstr "6.1"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:143
+msgid "7.1"
+msgstr "7.1"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:146
+msgid "Swap Stereo"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:45
-msgid "Draw 1st person weapon model"
-msgstr "Εμφάνιση όπλου σε πρώτο πρόσωπο"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:148
+#, fuzzy
+msgid "Headphone friendly mode"
+msgstr "Λειτουργία με ακουστικά"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:55
-msgid "Flip view horizontally"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:170
+msgid "Hit indication sound"
+msgstr "Ένδειξη χτυπήματος"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:172
+msgid "Chat message sound"
+msgstr "Ήχος ομιλίας"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:174
+msgid "Menu sounds"
+msgstr "Ήχοι μενού"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:177
+msgid "Time announcer:"
+msgstr "Προειδοποίηση χρόνου:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:179
+msgid "WRN^Disabled"
+msgstr "WRN^Απενεργοποιημένο"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:180
+msgid "1 minute"
+msgstr "1 λεπτό"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:181
+msgid "5 minutes"
+msgstr "5 λεπτά"
+
+# ???
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:182
+msgid "WRN^Both"
+msgstr "WRN^Και οι δυο"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:189
+msgid "Automatic taunts"
+msgstr "Αυτόματες κοροϊδίες"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:199
+msgid "Debug info about sounds"
 msgstr ""
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:38
@@ -2006,7 +2185,6 @@ msgid "Geometry detail:"
 msgstr "Γεομετρική λεπτομέρεια:"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:54
-#, fuzzy
 msgid "DET^Lowest"
 msgstr "DET^Χαμηλότατη"
 
@@ -2031,927 +2209,1112 @@ msgid "DET^Insane"
 msgstr "DET^Τρομερή"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:62
-msgid "Antialiasing:"
-msgstr "Εξομάλυνση:"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:64
-msgid "AA^Disabled"
-msgstr "AA^Απενεργοποιημένη"
-
-#: 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 "Ανάλυση υφής:"
 
 # Taking the piss a bit...
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:73
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:65
 msgid "RES^Leet"
 msgstr "RES^Ακραίος χαμηλή"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:74
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:66
 msgid "RES^Lowest"
 msgstr "RES^Χαμηλότερή"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:75
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:67
+msgid "RES^Very low"
+msgstr "RES^Πολύ χαμηλή"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:68
 msgid "RES^Low"
 msgstr "RES^Χαμηλή"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:76
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:69
 msgid "RES^Normal"
 msgstr "RES^Κανονική"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:77
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:70
 msgid "RES^Good"
 msgstr "RES^Καλή"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:78
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:71
 msgid "RES^Best"
 msgstr "RES^Καλύτερη"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:91
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:94
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:84
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:87
 msgid "Avoid lossy texture compression"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:100
-msgid "Anisotropy:"
-msgstr "Ανισοτροπία:"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:93
+msgid "Use lightmaps"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:102
-msgid "ANISO^Disabled"
-msgstr "ANISO^Απενεργοποίηση"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:94
+msgid "Deluxe mapping"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:105
-msgid "8x"
-msgstr "8x"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:96
+msgid "Gloss"
+msgstr "Γυαλάδα"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:100
+msgid "Particles quality:"
+msgstr "Ποιότητα σωματιδίων:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:103
+msgid "Particles distance:"
+msgstr "Απόσταση σωματιδίων:"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:106
-msgid "16x"
-msgstr "16x"
+msgid "Damage effects:"
+msgstr "Εφέ τραυματισμού:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:110
-msgid "Particle quality:"
-msgstr "Ποιότητα σωματιδίων:"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:108
+msgid "DMGPRTCLS^Disabled"
+msgstr "DMGPRTCLS^Απενεργοποιημένο"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:109
+msgid "DMGPRTCLS^Skeletal"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:113
-msgid "Particle distance:"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:110
+msgid "DMGPRTCLS^All"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:117
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:114
 msgid "Decals"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:118
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:115
 msgid "Decals on models"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:122
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:119
 msgid "Distance:"
 msgstr "Απόσταση:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:128
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:125
 msgid "Time:"
 msgstr "Χρόνος:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:134
-msgid "Use lightmaps"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:131
+msgid "Coronas"
+msgstr "Στέμματα"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:132
+msgid "Use Occlusion Queries"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:135
-msgid "Deluxe mapping"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:134
+msgid "No dynamic lighting"
+msgstr "Χωρίς δυναμικό φωτισμό"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:136
+msgid "Fake corona lighting"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:137
-msgid "Gloss"
-msgstr "Γυαλάδα"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:138
+msgid "Realtime dynamic lighting"
+msgstr "Δυναμικός φώτισμος σε πραγματικό χρόνο"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:139
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:143
+msgid "Shadows"
+msgstr "Σκιές"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:140
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:142
+msgid "Realtime world lighting"
+msgstr "Φωτισμός κόσμου σε πραγματικό χρόνο"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:147
+msgid "Use normal maps"
+msgstr "Χρήση κανονικών χαρτών"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:149
+msgid "Soft shadows"
+msgstr "Μαλακές σκιές"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:153
+msgid "Show surfaces"
+msgstr "Προβολή επιφανειών"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:155
 msgid "Offset mapping"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:142
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:157
 msgid "Relief mapping"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:145
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:159
+msgid "LOD"
+msgstr "LOD"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:162
+msgid "Bloom"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:164
 msgid "Reflections:"
 msgstr "Αντανακλάσεις:"
 
 # Masculine/feminine?
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:148
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:167
 msgid "Blurred"
 msgstr "Θολομένο"
 
 # Masculine/feminine?
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:149
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:168
 msgid "REFL^Good"
 msgstr "REFL^Καλό"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:150
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:169
 #, fuzzy
 msgid "Sharp"
 msgstr "Οξύτητα"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:155
-msgid "Show surfaces"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:174
+msgid "Motion blur:"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:157
-msgid "No dynamic lighting"
-msgstr "Χωρίς δυναμικό φωτισμό"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:159
-msgid "Flash blend approximation"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:179
+msgid "Extra postprocessing effects"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:161
-msgid "Realtime dynamic lighting"
-msgstr "Δυναμικός φώτισμος σε πραγματικό χρόνο"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:26
+msgid "Key bindings:"
+msgstr "Διαμόρφωση πλήκτρων:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:162
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:166
-msgid "Shadows"
-msgstr "Σκιές"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:30
+msgid "Change key..."
+msgstr "Αλλαγή πλήκτρου..."
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:165
-msgid "Realtime world lighting"
-msgstr "ΦÏ\89Ï\84ιÏ\83μÏ\8cÏ\82 ÎºÏ\8cÏ\83μοÏ\85 Ï\83ε Ï\80Ï\81αγμαÏ\84ικÏ\8c Ï\87Ï\81Ï\8cνο"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:34
+msgid "Edit..."
+msgstr "Î\95Ï\80εξεÏ\81γαÏ\83ία..."
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:170
-msgid "Use normal maps"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:45
+msgid "Pressing \"enter console\" key also closes it"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:172
-#, fuzzy
-msgid "Soft shadows"
-msgstr "Μαλακές σκιές"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:175
-msgid "Coronas"
-msgstr "Στέμματα"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:176
-msgid "Use Occlusion Queries"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:47
+msgid "Automatically repeat jumping if holding jump"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:178
-msgid "Bloom"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:51
+#: qcsrc/menu/xonotic/dialog_settings_input.c:53
+#: qcsrc/menu/xonotic/dialog_settings_input.c:56
+msgid "Use joystick input"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:180
-msgid "High Dynamic Range (HDR)"
-msgstr ""
+#: qcsrc/menu/xonotic/dialog_settings_input.c:61
+msgid "Mouse:"
+msgstr "Ποντίκι:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:184
-msgid "Motion blur:"
-msgstr ""
+#: qcsrc/menu/xonotic/dialog_settings_input.c:64
+msgid "Sensitivity:"
+msgstr "Ταχύτητα δείκτη:"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:68
+msgid "Smooth aiming"
+msgstr "Ομαλός στοχασμός"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:71
+msgid "Invert aiming"
+msgstr "Ανάτρεψη ποντικιού"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:189
-msgid "Blur and sharpen postprocessing"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:75
+#: qcsrc/menu/xonotic/dialog_settings_input.c:77
+#: qcsrc/menu/xonotic/dialog_settings_input.c:80
+msgid "Disable system mouse acceleration"
+msgstr "Απενεργοποίηση επιτάχυνσης δείκτη από λειτουργικό σύστημα"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:85
+msgid "Enable built in mouse acceleration"
+msgstr "Ενεργοποίηση επιτάχυνσης δείκτη από το Xonotic"
+
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:5
+msgid "User defined key bind"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:26
-msgid "Client-side movement prediction"
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:42
+msgid "Command when pressed:"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:30
-msgid "Show netgraph"
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:45
+msgid "Command when released:"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:33
-msgid "Network speed:"
-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_settings_misc.c:26
+msgid "Network:"
+msgstr "Δίκτυο:"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:35
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:31
 msgid "56k"
 msgstr "56k"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:36
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:32
 msgid "ISDN"
 msgstr "ISDN"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:37
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:33
 msgid "Slow ADSL"
 msgstr "Αργό ADSL"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:38
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:34
 msgid "Fast ADSL"
 msgstr "Γρήγορο ADSL"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:39
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:35
 msgid "Broadband"
 msgstr "Ευρής ζώνης"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:42
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:39
 msgid "Input packets/s:"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:46
-msgid "HTTP downloads:"
-msgstr "Λήψεις HTTP:"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:45
+msgid "Local latency:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:50
+msgid "Client UDP port:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:55
+msgid "Show netgraph"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:59
+msgid "Client-side movement prediction"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:62
+msgid "Movement error compensation"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:66
+msgid "Downloads:"
+msgstr "Λήψεις:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:69
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:81
+msgid "Maximum:"
+msgstr "Μέγιστο:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:73
+msgid "Speed (kB/s):"
+msgstr "Ταχύτητα (kB/s):"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:78
+#, fuzzy
+msgid "Framerate:"
+msgstr "Ρυθμός καρέ:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:83
+msgid "MAXFPS^5 fps"
+msgstr "MAXFPS^5 καρέ ανά δευτερόλεπτο"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:84
+msgid "MAXFPS^10 fps"
+msgstr "MAXFPS^10 καρέ ανά δευτερόλεπτο"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:85
+msgid "MAXFPS^20 fps"
+msgstr "MAXFPS^20 καρέ ανά δευτερόλεπτο"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:86
+msgid "MAXFPS^30 fps"
+msgstr "MAXFPS^30 καρέ ανά δευτερόλεπτο"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:87
+msgid "MAXFPS^40 fps"
+msgstr "MAXFPS^40 καρέ ανά δευτερόλεπτο"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:88
+msgid "MAXFPS^50 fps"
+msgstr "MAXFPS^50 καρέ ανά δευτερόλεπτο"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:89
+msgid "MAXFPS^60 fps"
+msgstr "MAXFPS^60 καρέ ανά δευτερόλεπτο"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:90
+msgid "MAXFPS^70 fps"
+msgstr "MAXFPS^70 καρέ ανά δευτερόλεπτο"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:91
+msgid "MAXFPS^100 fps"
+msgstr "MAXFPS^100 καρέ ανά δευτερόλεπτο"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:92
+msgid "MAXFPS^125 fps"
+msgstr "MAXFPS^125 καρέ ανά δευτερόλεπτο"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:93
+msgid "MAXFPS^200 fps"
+msgstr "MAXFPS^200 καρέ ανά δευτερόλεπτο"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:94
+msgid "MAXFPS^Unlimited"
+msgstr "MAXFPS^Απεριόριστος"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:98
+msgid "Target:"
+msgstr "Στόχος:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:100
+msgid "TRGT^Disabled"
+msgstr "AA^Απενεργοποιημένη"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:101
+msgid "TRGT^30 fps"
+msgstr "TRGT^30 καρέ ανά δευτερόλεπτο"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:102
+msgid "TRGT^40 fps"
+msgstr "TRGT^40 καρέ ανά δευτερόλεπτο"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:103
+msgid "TRGT^50 fps"
+msgstr "TRGT^50 καρέ ανά δευτερόλεπτο"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:104
+msgid "TRGT^60 fps"
+msgstr "TRGT^60 καρέ ανά δευτερόλεπτο"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:105
+msgid "TRGT^100 fps"
+msgstr "TRGT^100 καρέ ανά δευτερόλεπτο"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:106
+msgid "TRGT^125 fps"
+msgstr "TRGT^125 καρέ ανά δευτερόλεπτο"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:107
+msgid "TRGT^200 fps"
+msgstr "TRGT^200 καρέ ανά δευτερόλεπτο"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:111
+msgid "Idle limit:"
+msgstr "Χρονικό όριο:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:113
+msgid "IDLFPS^10 fps"
+msgstr "IDLFPS^10 καρέ ανά δευτερόλεπτο"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:114
+msgid "IDLFPS^20 fps"
+msgstr "IDLFPS^20 καρέ ανά δευτερόλεπτο"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:115
+msgid "IDLFPS^30 fps"
+msgstr "IDLFPS^30 καρέ ανά δευτερόλεπτο"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:116
+msgid "IDLFPS^60 fps"
+msgstr "IDLFPS^60 καρέ ανά δευτερόλεπτο"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:117
+msgid "IDLFPS^Unlimited"
+msgstr "IDLFPS^Απεριόριστα"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:122
+msgid "Show frames per second"
+msgstr "Εμφάνιση καρέ ανα δευτερόλεπτο"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:125
+msgid "Save processing time for other apps"
+msgstr ""
+
+# It's good, but is it good enough?
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:129
+msgid "Menu tooltips:"
+msgstr "Σχέδια μενού:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:131
+msgid "TLTIP^Disabled"
+msgstr "TLTIP^Απενεργοποιημένο"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:132
+msgid "TLTIP^Standard"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:133
+msgid "TLTIP^Advanced"
+msgstr "TLTIP^Προχωρημένο"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:137
+msgid "Show current time"
+msgstr "Εμφάνιση τρέχων ώρας"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:139
+msgid "Show current date"
+msgstr "Εμφάνιση τρέχων ημερομηνίας"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:141
+msgid "Enable developer mode"
+msgstr "Ενεργοποίηση λειτουργία προγραμματιστή"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:5
+msgid "Advanced settings"
+msgstr "Προχωρημένες ρυθμίσεις:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:31
+#, fuzzy
+msgid "Cvar filter:"
+msgstr "Φίλτρο cvar:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:44
+msgid "Setting:"
+msgstr "Ρύθμιση:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:48
+msgid "Type:"
+msgstr "Τύπος:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:52
+msgid "Value:"
+msgstr "Τιμή:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:68
+msgid "Description:"
+msgstr "Περιγραφή:"
+
+# It's good, but is it good enough?
+#: qcsrc/menu/xonotic/dialog_settings_user.c:27
+#, fuzzy
+msgid "Menu skins:"
+msgstr "Σχέδια μενού:"
+
+# It's good, but is it good enough?
+#: qcsrc/menu/xonotic/dialog_settings_user.c:31
+#, fuzzy
+msgid "Set skin"
+msgstr "Εφαρμογή σχεδίου"
+
+#: qcsrc/menu/xonotic/dialog_settings_user.c:74
+msgid "Set language"
+msgstr "Ορισμός γλώσσας"
+
+#: qcsrc/menu/xonotic/dialog_settings_user.c:79
+msgid "Disable gore effects and harsh language"
+msgstr "Απενεργοποίηση αιματηρών εφέ"
+
+#: qcsrc/menu/xonotic/dialog_settings_user.c:82
+msgid "Allow player statistics to track your client"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_user.c:84
+msgid "Allow player statistics to use your nickname"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:26
+msgid "Resolution:"
+msgstr "Ανάλυση:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:29
+#, fuzzy
+msgid "Font/UI size:"
+msgstr "Μέγεθος γραμματοσειράς/διεπαφής:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:31
+msgid "SZ^Unreadable"
+msgstr "SZ^Αδιάβαστο"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:32
+msgid "SZ^Tiny"
+msgstr "SZ^Μικροσκοπικό"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:33
+msgid "SZ^Little"
+msgstr "SZ^Μικρούτσικο"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:34
+msgid "SZ^Small"
+msgstr "SZ^Μικρό"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:49
-msgid "Downloads:"
-msgstr "Λήψεις:"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:35
+msgid "SZ^Medium"
+msgstr "SZ^Μεσαίο"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:53
-msgid "Speed (kB/s):"
-msgstr "Ταχύτητα (kB/s):"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:36
+msgid "SZ^Large"
+msgstr "SZ^Μεγάλο"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:57
-msgid "Client UDP port:"
-msgstr ""
+#: qcsrc/menu/xonotic/dialog_settings_video.c:37
+msgid "SZ^Huge"
+msgstr "SZ^Τεράστιο"
 
-#: qcsrc/menu/xonotic/serverlist.c:185
-msgid "Remove"
-msgstr "Αφαίρεση"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:38
+msgid "SZ^Gigantic"
+msgstr "SZ^Γιγάντιο"
 
-# I don't know the context of this.
-#: qcsrc/menu/xonotic/serverlist.c:187
+# Maybe τιτανικό (titanic) would be better, this may be associated with the Colosseum in Rome...
+#: qcsrc/menu/xonotic/dialog_settings_video.c:39
 #, fuzzy
-msgid "Bookmark"
-msgstr "Προσθήκη στους σελιδοδείκτες"
+msgid "SZ^Colossal"
+msgstr "SZ^Κολοσσαίο"
 
-#: qcsrc/menu/xonotic/serverlist.c:527
-msgid "Ping"
-msgstr ""
+#: qcsrc/menu/xonotic/dialog_settings_video.c:42
+msgid "Color depth:"
+msgstr "Βάθος χρώματος:"
 
-#: qcsrc/menu/xonotic/serverlist.c:528
-msgid "Host name"
-msgstr "Όνομα διακομιστή"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:44
+msgid "16bit"
+msgstr "16bit"
 
-#: qcsrc/menu/xonotic/serverlist.c:529
-msgid "Map"
-msgstr "Χάρτης"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:45
+msgid "32bit"
+msgstr "32bit"
 
-#: qcsrc/menu/xonotic/serverlist.c:530
-msgid "Type"
-msgstr "ΤÏ\8dÏ\80οÏ\82"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:48
+msgid "Full screen"
+msgstr "ΠλήÏ\81ηÏ\82 Î¿Î¸Ï\8cνη"
 
-#: qcsrc/menu/xonotic/serverlist.c:531
-msgid "Players"
-msgstr "ΠαίκÏ\84ες"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:49
+msgid "Vertical Synchronization"
+msgstr "Î\9aάθεÏ\84οÏ\82 Î£Ï\85γÏ\87Ï\81ονιÏ\83μÏ\8cς"
 
-#: 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/dialog_settings_video.c:53
+msgid "Anisotropy:"
+msgstr "Ανισοτροπία:"
 
-#: qcsrc/menu/xonotic/maplist.c:286
-#, c-format
-msgid "%s's Xonotic Server"
-msgstr "Διακομιστής Xonotic του %s"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:55
+msgid "ANISO^Disabled"
+msgstr "ANISO^Απενεργοποίηση"
 
-#: 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_settings_video.c:56
+#: qcsrc/menu/xonotic/dialog_settings_video.c:66
+msgid "2x"
+msgstr "2x"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:4
-msgid "Demo"
-msgstr ""
+#: qcsrc/menu/xonotic/dialog_settings_video.c:57
+#: qcsrc/menu/xonotic/dialog_settings_video.c:67
+msgid "4x"
+msgstr "4x"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:28
-msgid "Record demos while playing"
-msgstr ""
+#: qcsrc/menu/xonotic/dialog_settings_video.c:58
+msgid "8x"
+msgstr "8x"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:43
-msgid "Timedemo"
-msgstr ""
+#: qcsrc/menu/xonotic/dialog_settings_video.c:59
+msgid "16x"
+msgstr "16x"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:46
-msgid "DEMO^Play"
-msgstr ""
+#: qcsrc/menu/xonotic/dialog_settings_video.c:62
+msgid "Antialiasing:"
+msgstr "Εξομάλυνση:"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:4
-msgid "Powerups Panel"
-msgstr ""
+#: qcsrc/menu/xonotic/dialog_settings_video.c:65
+msgid "AA^Disabled"
+msgstr "AA^Απενεργοποιημένη"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:22
-#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:22
-msgid "Enable status bar"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:71
+msgid "High-quality frame buffer"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:24
-#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:24
-msgid "Status bar alignment:"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:76
+msgid "Depth first:"
 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"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:78
+msgid "DF^Disabled"
 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"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:79
+msgid "DF^World"
 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"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:80
+msgid "DF^All"
 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:41
-msgid "VOL^Ambient:"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:83
+msgid "Vertex Buffer Objects (VBOs)"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:48
-msgid "Info:"
-msgstr "Πληροφορίες:"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:55
-msgid "Items:"
-msgstr "Αντικείμενα:"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:62
-msgid "Pain:"
-msgstr "Πόνος:"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:86
+msgid "VBO^Off"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:69
-msgid "Player:"
-msgstr "Παίκτης:"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:87
+msgid "Vertices, some Tris (compatible)"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:76
-msgid "Shots:"
-msgstr "ΠÏ\85Ï\81οβολιÏ\83μοί:"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:90
+msgid "Vertices"
+msgstr "Î\9aοÏ\81Ï\85Ï\86έÏ\82"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:83
-msgid "Voice:"
-msgstr "ΦÏ\89νή:"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:91
+msgid "Vertices and Triangles"
+msgstr "Î\9aοÏ\81Ï\85Ï\86έÏ\82 ÎºÎ±Î¹ Î¤Ï\81ίγÏ\89να"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:91
-msgid "Weapons:"
-msgstr "Î\8cÏ\80λα:"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:94
+msgid "Brightness:"
+msgstr "ΦÏ\89Ï\84εινÏ\8cÏ\84ηÏ\84α:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:98
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:156
-msgid "Frequency:"
-msgstr "Συχνότητα:"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:97
+msgid "Contrast:"
+msgstr "Αντίθεση:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:100
-msgid "8 kHz"
-msgstr "8 kHz"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:100
+msgid "Gamma:"
+msgstr "Γάμα:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:101
-msgid "11.025 kHz"
-msgstr "11.025 kHz"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:105
+msgid "Contrast boost:"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:102
-msgid "16 kHz"
-msgstr "16 kHz"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:110
+msgid "Saturation:"
+msgstr "Κορεσμός:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:103
-msgid "22.05 kHz"
-msgstr "22.05 kHz"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:116
+msgid "LIT^Ambient:"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:104
-msgid "24 kHz"
-msgstr "24 kHz"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:119
+msgid "Intensity:"
+msgstr "Ένταση:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:105
-msgid "32 kHz"
-msgstr "32 kHz"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:123
+msgid "Use OpenGL 2.0 shaders (GLSL)"
+msgstr "Χρήση σκιών (shaders) OpenGL 2.0 (GLSL)"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:106
-msgid "44.1 kHz"
-msgstr "44.1 kHz"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:125
+msgid "Use GLSL to handle color control"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:107
-msgid "48 kHz"
-msgstr "48 kHz"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:128
+msgid "Wait for GPU to finish each frame"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:110
-msgid "Channels:"
-msgstr "Κανάλια:"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:132
+msgid "Psycho coloring (easter egg)"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:112
-msgid "Mono"
-msgstr "Μονοφωνικό"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:135
+msgid "Trippy vertices (easter egg)"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:113
-msgid "Stereo"
-msgstr "Στερεφωνικό"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:138
+msgid "Flip view horizontally"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:114
-msgid "2.1"
-msgstr "2.1"
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:4
+#, fuzzy
+msgid "Singleplayer"
+msgstr "Μονό"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:115
-msgid "4"
-msgstr "4"
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:116
+msgid "Instant action! (random map with bots)"
+msgstr "Άμεση δράση! (τυχαίος χάρτης με ρομπότ)"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:116
-msgid "5"
-msgstr "5"
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:137
+msgid "Campaign Difficulty:"
+msgstr "Δυσκολία Εκστρατείας:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:117
-msgid "5.1"
-msgstr "5.1"
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:138
+msgid "CSKL^Easy"
+msgstr "CSKL^Εύκολο"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:118
-msgid "6.1"
-msgstr "6.1"
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:139
+msgid "CSKL^Medium"
+msgstr "CSKL^Μεσαίο"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:119
-msgid "7.1"
-msgstr "7.1"
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:140
+msgid "CSKL^Hard"
+msgstr "CSKL^Δύσκολο"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:123
-msgid "Swap Stereo"
-msgstr ""
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:142
+msgid "Start Singleplayer!"
+msgstr "Έναρξη παιχνιδιού ενός παίκτη!"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:127
-#, fuzzy
-msgid "Headphone friendly mode"
-msgstr "Φιλικά με ακουστικά"
+#: qcsrc/menu/xonotic/dialog_singleplayer_winner.c:4
+msgid "Winner"
+msgstr "Νικητής"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:131
-msgid "Spatial voices:"
-msgstr ""
+#: qcsrc/menu/xonotic/dialog_teamselect.c:5
+msgid "Team Selection"
+msgstr "Επιλογή Ομαδάς"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:132
-msgid "VOCS^None"
-msgstr ""
+#: qcsrc/menu/xonotic/dialog_teamselect.c:41
+msgid "join 'best' team (auto-select)"
+msgstr "μπες στην «καλύτερη» ομάδα (αυτόματη επιλογή)"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:133
-msgid "VOCS^Taunts"
-msgstr ""
+#: qcsrc/menu/xonotic/dialog_teamselect.c:45
+msgid "red"
+msgstr "κόκκινο"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:134
-msgid "VOCS^All"
-msgstr ""
+#: qcsrc/menu/xonotic/dialog_teamselect.c:46
+msgid "blue"
+msgstr "μπλε"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:137
-msgid "Taunt range:"
-msgstr "Î\95μβέλεια ÎºÎ¿Ï\81οÏ\8aδίαÏ\82"
+#: qcsrc/menu/xonotic/dialog_teamselect.c:47
+msgid "yellow"
+msgstr "κίÏ\84Ï\81ινο"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:140
-msgid "RNG^Very short"
-msgstr "RNG^Πολύ μικρή"
+#: qcsrc/menu/xonotic/dialog_teamselect.c:48
+msgid "pink"
+msgstr "ροζ"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:141
-msgid "RNG^Short"
-msgstr "RNG^Μικρή"
+#: qcsrc/menu/xonotic/dialog_teamselect.c:51
+msgid "spectate"
+msgstr "θέαση"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:142
-msgid "RNG^Normal"
-msgstr "RNG^Μεσαία"
+#: qcsrc/menu/xonotic/mainwindow.c:39 qcsrc/menu/xonotic/mainwindow.c:42
+msgid "Do not press this button again!"
+msgstr "Μην ξαναπατήσεις αυτό το κουμπί!"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:143
-msgid "RNG^Long"
-msgstr "RNG^Μακριά"
+#: qcsrc/menu/xonotic/maplist.c:282
+msgid ""
+"Huh? Can't play this (m is NULL). Refiltering so this won't happen again.\n"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:144
-msgid "RNG^Full"
-msgstr "RNG^Πλήρη"
+#: qcsrc/menu/xonotic/maplist.c:290
+#, c-format
+msgid "%s's Xonotic Server"
+msgstr "Διακομιστής Xonotic του %s"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:151
-msgid "Automatic taunts"
-msgstr "Αυτόματες κοροϊδίες"
+#: qcsrc/menu/xonotic/maplist.c:295
+msgid ""
+"Huh? Can't play this (invalid game type). Refiltering so this won't happen "
+"again.\n"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:160
-msgid "Time warning:"
-msgstr "ΠÏ\81οειδοÏ\80οίηÏ\83η Ï\87Ï\81Ï\8cνοÏ\85:"
+#: qcsrc/menu/xonotic/playerlist.c:118 qcsrc/menu/xonotic/playerlist.c:128
+msgid "spectator"
+msgstr "θεαÏ\84ήÏ\82"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:162
-msgid "WRN^None"
-msgstr "WRN^Καμιά"
+# Functional, but could be improved as far as including no models at all goes in the meaning of the sentence
+#: qcsrc/menu/xonotic/playermodel.c:177
+msgid "<no model found>"
+msgstr "<μοντέλο δεν βρέθηκε>"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:163
-msgid "1 minute"
-msgstr "1 λεπτό"
+#: qcsrc/menu/xonotic/serverlist.c:185
+msgid "Remove"
+msgstr "Αφαίρεση"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:164
-msgid "5 minutes"
-msgstr "5 λεπτά"
+# I don't know the context of this.
+#: qcsrc/menu/xonotic/serverlist.c:187
+msgid "Bookmark"
+msgstr "Προσθήκη στους σελιδοδείκτες"
 
-# ???
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:165
-#, fuzzy
-msgid "WRN^Both"
-msgstr "WRN^Και οι δυο"
+#: qcsrc/menu/xonotic/serverlist.c:548
+msgid "Ping"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:168
-msgid "Hit indicator"
-msgstr "Î\88νδειξη Ï\87Ï\84Ï\85Ï\80ήμαÏ\84οÏ\82"
+#: qcsrc/menu/xonotic/serverlist.c:549
+msgid "Host name"
+msgstr "Î\8cνομα Î´Î¹Î±ÎºÎ¿Î¼Î¹Ï\83Ï\84ή"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:170
-msgid "Menu sounds"
-msgstr "Î\89Ï\87οι Î¼ÎµÎ½Î¿Ï\8d"
+#: qcsrc/menu/xonotic/serverlist.c:550
+msgid "Map"
+msgstr "ΧάÏ\81Ï\84ηÏ\82"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer.c:4
-msgid "Multiplayer"
-msgstr "ΠολλαÏ\80λοί Ï\80αίκÏ\84ες"
+#: qcsrc/menu/xonotic/serverlist.c:551
+msgid "Type"
+msgstr "ΤÏ\8dÏ\80ος"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer.c:18
-msgid "Servers"
-msgstr "Î\94ιακομιÏ\83Ï\84ές"
+#: qcsrc/menu/xonotic/serverlist.c:552
+msgid "Players"
+msgstr "ΠαίκÏ\84ες"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer.c:20
-msgid "Demos"
+#: qcsrc/menu/xonotic/skinlist.c:105
+msgid "<TITLE>"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:4
-msgid "Health/Armor Panel"
+#: qcsrc/menu/xonotic/skinlist.c:106
+msgid "<AUTHOR>"
 msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:45
-msgid "Flip health and armor positions"
-msgstr ""
+#: qcsrc/menu/xonotic/slider_decibels.c:50
+msgid "VOL^OFF"
+msgstr "VOL^Σίγαση"
 
-#: qcsrc/server/w_fireball.qc:2
+#: qcsrc/menu/xonotic/slider_decibels.c:52
 #, fuzzy
-msgid "Fireball"
-msgstr "Φλογοβολίδα"
-
-#: qcsrc/server/w_fireball.qc:417
-#, c-format
-msgid "%s forgot about some firemine"
-msgstr ""
+msgid "VOL^MAX"
+msgstr "VOL^Τέρμα"
 
-#: qcsrc/server/w_fireball.qc:419
-#: qcsrc/server/w_hlac.qc:240
+#: qcsrc/menu/xonotic/slider_decibels.c:53
 #, c-format
-msgid "%s should have used a smaller gun"
-msgstr "%s θα έπρεπε να χρησιμοποιούσε μικρότερο όπλο"
+msgid "%s dB"
+msgstr "%s dB"
 
-#: qcsrc/server/w_fireball.qc:426
+#: qcsrc/menu/xonotic/slider_resolution.c:65
 #, c-format
-msgid "%s tried to catch %s's firemine"
-msgstr ""
+msgid "%dx%d"
+msgstr "%dx%d"
 
-#: qcsrc/server/w_fireball.qc:428
+#: qcsrc/menu/xonotic/util.qc:276
 #, c-format
-msgid "%s fatefully ignored %s's firemine"
+msgid "Received HTTP request data for an invalid id %d.\n"
 msgstr ""
 
-#: qcsrc/server/w_fireball.qc:435
+#: qcsrc/menu/xonotic/util.qc:291
 #, c-format
-msgid "%s could not hide from %s's fireball"
-msgstr "ο %s δεν μπορούσε να κρυφτεί από την φλογοβολίδα του %s"
+msgid "error receiving update notification: status is %d\n"
+msgstr "σφάλμα κατά λήψη είδοποίηση ενημέρωσης: κατάσταση είναι %d\n"
 
-#: qcsrc/server/w_fireball.qc:437
-#, c-format
-msgid "%s saw the pretty lights of %s's fireball"
-msgstr "ο %s θαύμασε την ομορφιά της φλογοβολίδας του %s"
+#: qcsrc/menu/xonotic/util.qc:296
+msgid "error: received HTML instead of an update notification\n"
+msgstr ""
 
-#: qcsrc/server/w_fireball.qc:440
-#, c-format
-msgid "%s got too close to %s's fireball"
-msgstr "ο %s πλησίασε τη φλογοβολίδα του %s πάρα πολύ"
+#: qcsrc/menu/xonotic/util.qc:301
+msgid "error: received carriage returns from update notification server\n"
+msgstr ""
 
-#: qcsrc/server/w_fireball.qc:442
+#: qcsrc/menu/xonotic/util.qc:322
 #, c-format
-msgid "%s tasted %s's fireball"
-msgstr "ο %s γεύστηκε τη φλόγα του %s "
-
-# Presumably "Nex" comes from the Latin word which means violent death
-#: qcsrc/server/w_nex.qc:2
-msgid "Nex"
-msgstr "Θάνατος"
+msgid ""
+"Update can be downloaded at:\n"
+"%s\n"
+msgstr ""
+"Μπορεί να γίνει λήψη της αναβάθμισης στις:\n"
+"%s\n"
 
-#: qcsrc/server/w_nex.qc:253
-#: qcsrc/server/w_shotgun.qc:215
-#: qcsrc/server/w_uzi.qc:317
-#: qcsrc/server/w_minstanex.qc:293
-#, c-format
-msgid "%s is now thinking with portals"
+#: qcsrc/menu/xonotic/util.qc:351
+msgid "Autogenerating mapinfo for newly added maps..."
 msgstr ""
 
-#: qcsrc/server/w_nex.qc:255
-#: qcsrc/server/w_minstanex.qc:295
+#: qcsrc/menu/xonotic/util.qc:381
 #, c-format
-msgid "%s has been vaporized by %s"
-msgstr "ο %s αεροποιήθηκε από τον %s"
-
-#: qcsrc/server/w_laser.qc:2
-msgid "Laser"
-msgstr "Λέιζερ"
+msgid "^1%s TEST BUILD"
+msgstr "^1%s ΔΟΚΙΜΑΣΤΙΚΗ ΕΚΔΟΣΗ"
 
-#: qcsrc/server/w_laser.qc:311
+#: qcsrc/menu/xonotic/util.qc:439
 #, c-format
-msgid "%s lasered themself to hell"
-msgstr ""
+msgid "Update to %s now!"
+msgstr "Αναβαθμίστε στην έκδοση %s τώρα!"
 
-#: qcsrc/server/w_laser.qc:315
-#, c-format
-msgid "%s was cut in half by %s's gauntlet"
+#: qcsrc/menu/xonotic/util.qc:524
+msgid ""
+"^1ERROR: Texture compression is required but not supported.\n"
+"^1Expect visual problems.\n"
 msgstr ""
 
-#: qcsrc/server/w_laser.qc:317
-#, c-format
-msgid "%s was lasered to death by %s"
-msgstr ""
+#: qcsrc/menu/xonotic/util.qc:643
+msgid "Use default"
+msgstr "Χρήση προεπιλογής"
 
-#: qcsrc/server/w_shotgun.qc:2
-msgid "Shotgun"
-msgstr "Î\9aαÏ\81αμÏ\80ίνα"
+#: qcsrc/menu/xonotic/util.qc:663
+msgid "Team Color:"
+msgstr "ΧÏ\81Ï\8eμα Î\9fμαδάÏ\82:"
 
-#: qcsrc/server/w_shotgun.qc:219
-#, c-format
-msgid "%2$s ^7slapped %1$s ^7around a bit with a large ^2shotgun"
-msgstr ""
+#: qcsrc/menu/xonotic/util.qh:50
+msgid "Enable panel"
+msgstr "Ενεργοποίηση πίνακα"
 
-#: qcsrc/server/w_shotgun.qc:221
-#, c-format
-msgid "%s was gunned by %s"
-msgstr ""
+#: weapons.qc.tmp:1
+msgid "Rifle"
+msgstr "Τουφέκι"
 
-#: qcsrc/server/w_uzi.qc:2
+#: weapons.qc.tmp:2
 msgid "Machine Gun"
 msgstr "Πολυβόλο"
 
-#: qcsrc/server/w_uzi.qc:321
-#: qcsrc/server/w_rifle.qc:258
-#, c-format
-msgid "%s was sniped by %s"
-msgstr ""
+#: weapons.qc.tmp:3
+msgid "Rocket Launcher"
+msgstr "Ρουκετοεκτοξευτήρας"
 
-#: qcsrc/server/w_uzi.qc:323
-#, c-format
-msgid "%s was riddled full of holes by %s"
+#: weapons.qc.tmp:4
+msgid "Port-O-Launch"
 msgstr ""
 
-#: qcsrc/server/w_minstanex.qc:2
-msgid "MinstaNex"
-msgstr ""
+# Probably the best possible translation
+#: weapons.qc.tmp:5
+msgid "Grappling Hook"
+msgstr "Δαγκάνα"
 
-#: qcsrc/server/w_electro.qc:2
+#: weapons.qc.tmp:6
 msgid "Electro"
 msgstr ""
 
-#: qcsrc/server/w_electro.qc:574
-#, c-format
-msgid "%s could not remember where they put plasma"
-msgstr ""
+#: weapons.qc.tmp:7
+msgid "Laser"
+msgstr "Λέιζερ"
 
-#: qcsrc/server/w_electro.qc:576
-#, c-format
-msgid "%s played with plasma"
-msgstr "ο %s έπαιξε με πλάσμα"
+#: weapons.qc.tmp:8
+msgid "Shotgun"
+msgstr "Καραμπίνα"
 
-#: qcsrc/server/w_electro.qc:583
+#: weapons.qc.tmp:9
 #, c-format
-msgid "%s just noticed %s's blue ball"
-msgstr "ο %s μόλις πρόσεξε τη μπλε μπάλα του %s"
+msgid "@!#%'n Tuba"
+msgstr ""
 
-#: qcsrc/server/w_electro.qc:585
-#, c-format
-msgid "%s got in touch with %s's blue ball"
+#: weapons.qc.tmp:10
+msgid "MinstaNex"
 msgstr ""
 
-#: qcsrc/server/w_electro.qc:590
-#, c-format
-msgid "%s felt the electrifying air of %s's combo"
+#: weapons.qc.tmp:11
+msgid "Crylink"
 msgstr ""
 
-#: qcsrc/server/w_electro.qc:592
-#, c-format
-msgid "%s got too close to %s's blue beam"
-msgstr "ο %s Ï\80ληÏ\83ίαÏ\83ε Ï\84η Î¼Ï\80λε Î±ÎºÏ\84ίνα Ï\84οÏ\85 %s Ï\80άÏ\81α Ï\80ολÏ\8d"
+# Tried to make it sound as bad-ass as I could...
+#: weapons.qc.tmp:12
+msgid "Heavy Laser Assault Cannon"
+msgstr "Î\95ξειδικεÏ\85μένο Î\92αÏ\81Ï\8d Î Ï\85Ï\81οβÏ\8cλο Î\9bείζεÏ\81"
 
-#: qcsrc/server/w_electro.qc:594
-#, c-format
-msgid "%s was blasted by %s's blue beam"
-msgstr ""
+# Somewhat archaic in my opinion, not cool enough for Xonotic (it starts with an X for God's sake!)
+#: weapons.qc.tmp:13
+#, fuzzy
+msgid "Mortar"
+msgstr "Ολμοβόλο"
 
-#: qcsrc/server/w_tuba.qc:2
-#, c-format
-msgid "@!#%'n Tuba"
+#: weapons.qc.tmp:14
+msgid "Hagar"
 msgstr ""
 
-#: qcsrc/server/w_tuba.qc:252
-#, c-format
-msgid "%s hurt his own ears with the @!#%%'n Tuba"
+#: weapons.qc.tmp:15
+msgid "T.A.G. Seeker"
 msgstr ""
 
-#: qcsrc/server/w_tuba.qc:256
-#, c-format
-msgid "%s died of %s's great playing on the @!#%%'n Tuba"
-msgstr ""
+#: weapons.qc.tmp:16
+msgid "Fireball"
+msgstr "Φλογοβολίδα"
 
-#: qcsrc/server/w_porto.qc:2
-msgid "Port-O-Launch"
-msgstr ""
+#: weapons.qc.tmp:17
+msgid "Mine Layer"
+msgstr "Ναρκοθέτης"
 
-#: qcsrc/server/w_porto.qc:296
-#: qcsrc/server/w_hook.qc:266
-#, c-format
-msgid "%s did the impossible"
-msgstr "ο %s έκανε το απίθανο"
+# Presumably "Nex" comes from the Latin word which means violent death
+#: weapons.qc.tmp:18
+msgid "Nex"
+msgstr "Θάνατος"
 
-#: qcsrc/server/w_porto.qc:298
-#, c-format
-msgid "%s felt %s doing the impossible to him"
-msgstr "ο %s ένιωσε τον %s να κάνει το απίθανο σ'αυτόν"
+#~ msgid "Show names:"
+#~ msgstr "Εμφάνιση ονομάτων:"
 
-#: qcsrc/server/w_hagar.qc:2
-msgid "Hagar"
-msgstr ""
+#~ msgid "All players"
+#~ msgstr "Όλοι οι παίκτες"
 
-#: qcsrc/server/w_hagar.qc:395
-#: qcsrc/server/w_seeker.qc:655
-#, c-format
-msgid "%s played with tiny rockets"
-msgstr "ο %s έπαιξε με μικρές ρουκέτες"
+#~ msgid "UI mouse speed:"
+#~ msgstr "Ταχύτητα δείκτη στην διεπαφή:"
 
-# Too long.
-#: qcsrc/server/w_hagar.qc:399
-#, fuzzy, c-format
-msgid "%s hoped %s's missiles wouldn't bounce"
-msgstr "ο %s έλπιζε ότι οι πύραυλοι του %s δεν θα αναπηδούσε"
+#~ msgid "Zoom speed:"
+#~ msgstr "Ταχύτητα ζουμ:"
 
-#: qcsrc/server/w_hagar.qc:401
-#: qcsrc/server/w_seeker.qc:661
-#, c-format
-msgid "%s was pummeled by %s"
-msgstr ""
+#~ msgid "Weapon settings..."
+#~ msgstr "Ρυθμίσεις όπλων..."
 
-#: qcsrc/server/w_crylink.qc:2
-msgid "Crylink"
-msgstr ""
+#~ msgid "Size:"
+#~ msgstr "Μέγεθος:"
 
-#: qcsrc/server/w_crylink.qc:666
-#, c-format
-msgid "%s succeeded at self-destructing themself with the Crylink"
-msgstr ""
+#~ msgid "Network speed:"
+#~ msgstr "Τάχυτητα δικτύου:"
 
-#: qcsrc/server/w_crylink.qc:671
-#, c-format
-msgid "%s could not hide from %s's Crylink"
-msgstr ""
+#~ msgid "HTTP downloads:"
+#~ msgstr "Λήψεις HTTP:"
 
-#: qcsrc/server/w_crylink.qc:673
-#, c-format
-msgid "%s was too close to %s's Crylink"
-msgstr ""
+#~ msgid "Taunt range:"
+#~ msgstr "Εμβέλεια κοροϊδίας"
 
-#: qcsrc/server/w_crylink.qc:675
-#, c-format
-msgid "%s took a close look at %s's Crylink"
-msgstr ""
+#~ msgid "RNG^Very short"
+#~ msgstr "RNG^Πολύ μικρή"
 
-#: qcsrc/server/w_rocketlauncher.qc:2
-msgid "Rocket Launcher"
-msgstr "Ρουκετοεκτοξευτήρας"
+#~ msgid "RNG^Short"
+#~ msgstr "RNG^Μικρή"
 
-#: qcsrc/server/w_rocketlauncher.qc:501
-#: qcsrc/server/w_minelayer.qc:523
-#, c-format
-msgid "%s exploded"
-msgstr "ο %s εκκράγη"
+#~ msgid "RNG^Normal"
+#~ msgstr "RNG^Μεσαία"
 
-#: qcsrc/server/w_rocketlauncher.qc:505
-#, c-format
-msgid "%s got too close to %s's rocket"
-msgstr "ο %s πλησίασε τη ρουκέτα του %s ίσως πολύ"
+#~ msgid "RNG^Long"
+#~ msgstr "RNG^Μακριά"
 
-#: qcsrc/server/w_rocketlauncher.qc:507
-#, c-format
-msgid "%s almost dodged %s's rocket"
-msgstr "ο %s σχεδόν απέφυγε τη ρουκέτα του %s"
+#~ msgid "RNG^Full"
+#~ msgstr "RNG^Πλήρη"
 
-#: qcsrc/server/w_rocketlauncher.qc:509
-#, c-format
-msgid "%s ate %s's rocket"
-msgstr "ο %s έφαγε τη ρουκέτα του %s"
+#~ msgid "WRN^None"
+#~ msgstr "WRN^Καμιά"
 
-# Probably the best possible translation
-#: qcsrc/server/w_hook.qc:2
-#, fuzzy
-msgid "Grappling Hook"
-msgstr "Δαγκάνα"
+#~ msgid "%s should have used a smaller gun"
+#~ msgstr "%s θα έπρεπε να χρησιμοποιούσε μικρότερο όπλο"
 
-#: qcsrc/server/w_hook.qc:268
-#, c-format
-msgid "%s has run into %s's gravity bomb"
-msgstr ""
+#~ msgid "%s could not hide from %s's fireball"
+#~ msgstr "ο %s δεν μπορούσε να κρυφτεί από την φλογοβολίδα του %s"
 
-#: qcsrc/server/w_minelayer.qc:2
-msgid "Mine Layer"
-msgstr "Ναρκοθέτης"
+#~ msgid "%s saw the pretty lights of %s's fireball"
+#~ msgstr "ο %s θαύμασε την ομορφιά της φλογοβολίδας του %s"
 
-#: qcsrc/server/w_minelayer.qc:527
-#, c-format
-msgid "%s got too close to %s's mine"
-msgstr ""
+#~ msgid "%s got too close to %s's fireball"
+#~ msgstr "ο %s πλησίασε τη φλογοβολίδα του %s πάρα πολύ"
 
-#: qcsrc/server/w_minelayer.qc:529
-#, c-format
-msgid "%s almost dodged %s's mine"
-msgstr "ο %s σχεδόν απέφυγε τη νάρκη του %s"
+#~ msgid "%s tasted %s's fireball"
+#~ msgstr "ο %s γεύστηκε τη φλόγα του %s "
 
-#: qcsrc/server/w_minelayer.qc:531
-#, c-format
-msgid "%s stepped on %s's mine"
-msgstr "ο %s πάτησε τη νάρκη του %s"
+#~ msgid "%s has been vaporized by %s"
+#~ msgstr "ο %s αεροποιήθηκε από τον %s"
 
-#: qcsrc/server/w_rifle.qc:2
-msgid "Rifle"
-msgstr "Τουφέκι"
+#~ msgid "%s played with plasma"
+#~ msgstr "ο %s έπαιξε με πλάσμα"
 
-#: qcsrc/server/w_rifle.qc:233
-#, c-format
-msgid "%s shot themself automatically"
-msgstr ""
+#~ msgid "%s just noticed %s's blue ball"
+#~ msgstr "ο %s μόλις πρόσεξε τη μπλε μπάλα του %s"
 
-#: qcsrc/server/w_rifle.qc:235
-#, c-format
-msgid "%s sniped themself somehow"
-msgstr ""
+#~ msgid "%s got too close to %s's blue beam"
+#~ msgstr "ο %s πλησίασε τη μπλε ακτίνα του %s πάρα πολύ"
 
-#: qcsrc/server/w_rifle.qc:242
-#, c-format
-msgid "%s failed to hide from %s's bullet hail"
-msgstr ""
+#~ msgid "%s did the impossible"
+#~ msgstr "ο %s έκανε το απίθανο"
 
-#: qcsrc/server/w_rifle.qc:244
-#, fuzzy, c-format
-msgid "%s died in %s's bullet hail"
-msgstr "ο %s πέθανε στο χάλαζι σφερών του %s"
+#~ msgid "%s felt %s doing the impossible to him"
+#~ msgstr "ο %s ένιωσε τον %s να κάνει το απίθανο σ'αυτόν"
 
-#: qcsrc/server/w_rifle.qc:251
-#, c-format
-msgid "%s failed to hide from %s's rifle"
-msgstr ""
+#~ msgid "%s played with tiny rockets"
+#~ msgstr "ο %s έπαιξε με μικρές ρουκέτες"
 
-#: qcsrc/server/w_rifle.qc:256
-#, c-format
-msgid "%s got hit in the head by %s"
-msgstr ""
+#~ msgid "%s exploded"
+#~ msgstr "ο %s εκκράγη"
 
-#: qcsrc/server/w_seeker.qc:2
-msgid "T.A.G. Seeker"
-msgstr ""
+#~ msgid "%s got too close to %s's rocket"
+#~ msgstr "ο %s πλησίασε τη ρουκέτα του %s ίσως πολύ"
 
-#: qcsrc/server/w_seeker.qc:659
-#, c-format
-msgid "%s was tagged by %s"
-msgstr ""
+#~ msgid "%s almost dodged %s's rocket"
+#~ msgstr "ο %s σχεδόν απέφυγε τη ρουκέτα του %s"
 
-# Somewhat archaic in my opinion, not cool enough for Xonotic (it starts with an X for God's sake!)
-#: qcsrc/server/w_grenadelauncher.qc:2
-#, fuzzy
-msgid "Mortar"
-msgstr "Ολμοβόλο"
+#~ msgid "%s ate %s's rocket"
+#~ msgstr "ο %s έφαγε τη ρουκέτα του %s"
 
-#: qcsrc/server/w_grenadelauncher.qc:383
-#, c-format
-msgid "%s tried out his own grenade"
-msgstr "ο %s δοκίμασε την ίδια του τη χειροβομβίδα"
+#~ msgid "%s almost dodged %s's mine"
+#~ msgstr "ο %s σχεδόν απέφυγε τη νάρκη του %s"
 
-#: qcsrc/server/w_grenadelauncher.qc:385
-#, c-format
-msgid "%s detonated"
-msgstr "ο %s ανατινάχθηκε"
+#~ msgid "%s stepped on %s's mine"
+#~ msgstr "ο %s πάτησε τη νάρκη του %s"
 
-#: qcsrc/server/w_grenadelauncher.qc:391
-#, c-format
-msgid "%s didn't see %s's grenade"
-msgstr "ο %s δεν είδε τη χειροβομβίδα του %s"
+#~ msgid "%s tried out his own grenade"
+#~ msgstr "ο %s δοκίμασε την ίδια του τη χειροβομβίδα"
 
-#: qcsrc/server/w_grenadelauncher.qc:393
-#, c-format
-msgid "%s almost dodged %s's grenade"
-msgstr "ο %s σχεδόν απέφυγε τη χειροβομβίδα του %s"
+#~ msgid "%s detonated"
+#~ msgstr "ο %s ανατινάχθηκε"
 
-#: qcsrc/server/w_grenadelauncher.qc:395
-#, c-format
-msgid "%s ate %s's grenade"
-msgstr "ο %s έφαγε τη χειροβομβίδα του %s"
+#~ msgid "%s didn't see %s's grenade"
+#~ msgstr "ο %s δεν είδε τη χειροβομβίδα του %s"
 
-# Tried to make it sound as bad-ass as I could...
-#: qcsrc/server/w_hlac.qc:2
-msgid "Heavy Laser Assault Cannon"
-msgstr "Εξειδικευμένο Βαρύ Πυροβόλο Λείζερ"
+#~ msgid "%s almost dodged %s's grenade"
+#~ msgstr "ο %s σχεδόν απέφυγε τη χειροβομβίδα του %s"
 
-#: qcsrc/server/w_hlac.qc:242
-#, c-format
-msgid "%s was cut down by %s"
-msgstr ""
+#~ msgid "%s ate %s's grenade"
+#~ msgstr "ο %s έφαγε τη χειροβομβίδα του %s"
+
+# Might just mean other people playing with you, literally (official definition) "co-players"
+#~ msgid "Teammates"
+#~ msgstr "Συμπαίκτες"
+
+# Too long.
+#~ msgid "%s hoped %s's missiles wouldn't bounce"
+#~ msgstr "ο %s έλπιζε ότι οι πύραυλοι του %s δεν θα αναπηδούσε"
 
+#~ msgid "%s died in %s's bullet hail"
+#~ msgstr "ο %s πέθανε στο χάλαζι σφερών του %s"
index 116c9bb982f463346ae1b17c2d1b76b779eb2624..bd8e93f3749ffa719517f48d0dbe6f786ce3780d 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: 0.1preview\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-09-02 07:51+0200\n"
+"POT-Creation-Date: 2012-01-26 12:24+0100\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"
@@ -17,33 +17,102 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: qcsrc/common/mapinfo.qc:1092 qcsrc/menu/xonotic/skinlist.c:163
+#: qcsrc/common/mapinfo.qc:665
+#, c-format
+msgid "@!#%'n Tuba Throwing"
+msgstr "@!#% tuubanheitto!"
+
+#: qcsrc/common/mapinfo.qc:1057 qcsrc/menu/xonotic/skinlist.c:166
 #, c-format
 msgid "%s: %s"
 msgstr "%s: %s"
 
-#: qcsrc/menu/gamecommand.qc:47
+#: qcsrc/common/mapinfo.qh:36
+msgid "Deathmatch"
+msgstr "Mättö (Deathmatch)"
+
+#: qcsrc/common/mapinfo.qh:39
+msgid "Last Man Standing"
+msgstr "Viimeiseen mieheen (Last Man Standing)"
+
+#: qcsrc/common/mapinfo.qh:42
+msgid "Arena"
+msgstr "Areena (Arena)"
+
+#: qcsrc/common/mapinfo.qh:45
+msgid "Runematch"
+msgstr "Riimu-ottelu (Runematch)"
+
+#: qcsrc/common/mapinfo.qh:48
+msgid "Race"
+msgstr "Kilpailu (RACE)"
+
+#: qcsrc/common/mapinfo.qh:51
+msgid "Race CTS"
+msgstr "Kilpailu CTS (RACE CTS)"
+
+#: qcsrc/common/mapinfo.qh:54
+msgid "Team Deathmatch"
+msgstr "Joukkuemättö (Team Deatchmatch)"
+
+#: qcsrc/common/mapinfo.qh:57
+msgid "Capture the Flag"
+msgstr "Lipunryöstö (CTF)"
+
+#: qcsrc/common/mapinfo.qh:60
+msgid "Clan Arena"
+msgstr "Klaaniareena (Clan Arena)"
+
+#: qcsrc/common/mapinfo.qh:63
+msgid "Domination"
+msgstr "Hallinta (Domination)"
+
+#: qcsrc/common/mapinfo.qh:66
+msgid "Key Hunt"
+msgstr "Avaimenetsintä (Key Hunt)"
+
+#: qcsrc/common/mapinfo.qh:69
+msgid "Assault"
+msgstr "Rynnäkkö (Assault)"
+
+#: qcsrc/common/mapinfo.qh:72
+msgid "Onslaught"
+msgstr "Suurtaistelu (Onslaught)"
+
+#: qcsrc/common/mapinfo.qh:75
+msgid "Nexball"
+msgstr "Nexpallo (Nexball)"
+
+#: qcsrc/common/mapinfo.qh:78
+msgid "Freeze Tag"
+msgstr "Pakkashippa (Freeze Tag)"
+
+#: qcsrc/common/mapinfo.qh:81
+msgid "Keepaway"
+msgstr "Pakomatka (Keepaway)"
+
+#: qcsrc/menu/command/menu_cmd.qc:41
 #, c-format
 msgid "error: status is %d\n"
 msgstr "virhe: %d\n"
 
-#: qcsrc/menu/gamecommand.qc:65
+#: qcsrc/menu/command/menu_cmd.qc:64
 msgid "Usage: menu_cmd command..., where possible commands are:\n"
 msgstr "Käyttö: menu_cmd_command..., missä mahdollisia komentoja ovat:\n"
 
-#: qcsrc/menu/gamecommand.qc:66
+#: qcsrc/menu/command/menu_cmd.qc:65
 msgid "  sync - reloads all cvars on the current menu page\n"
 msgstr "  sync - uudelleenlataa kaikki cvar-muuttujat nykyiseen valikkoon"
 
-#: qcsrc/menu/gamecommand.qc:67
+#: qcsrc/menu/command/menu_cmd.qc:66
 msgid "  directmenu ITEM - select a menu item as main item\n"
 msgstr "  directmenu ITMEM - valitse valikon kohta pääkohdaksi\n"
 
-#: qcsrc/menu/gamecommand.qc:193
+#: qcsrc/menu/command/menu_cmd.qc:179
 msgid "error creating curl handle\n"
 msgstr "virhe luodessa curl handlea\n"
 
-#: qcsrc/menu/gamecommand.qc:239
+#: qcsrc/menu/command/menu_cmd.qc:186
 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 "
@@ -72,17 +141,17 @@ msgstr "%d (%s)"
 msgid "custom"
 msgstr "omavalintainen"
 
-#: qcsrc/menu/menu.qc:29
+#: qcsrc/menu/menu.qc:37
 #, c-format
 msgid "^4MQC Build information: ^1%s\n"
 msgstr "^4MQC Version tiedot: ^1%s\n"
 
-#: qcsrc/menu/xonotic/campaign.c:284
-#: qcsrc/menu/xonotic/dialog_singleplayer.c:134
+#: qcsrc/menu/xonotic/campaign.c:288
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:123
 msgid "???"
 msgstr "???"
 
-#: qcsrc/menu/xonotic/campaign.c:285
+#: qcsrc/menu/xonotic/campaign.c:289
 #, c-format
 msgid "Level %d: %s"
 msgstr "Taso %d: %s"
@@ -113,10 +182,14 @@ msgstr "Tekijät"
 
 #: 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:57
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:61
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:277
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:91
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:96
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:56
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:113
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:74
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:89
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:73
 #: qcsrc/menu/xonotic/dialog_singleplayer_winner.c:21
 msgid "OK"
 msgstr "OK"
@@ -125,7 +198,7 @@ msgstr "OK"
 msgid "Welcome"
 msgstr "Tervetuloa"
 
-#: qcsrc/menu/xonotic/dialog_firstrun.c:33
+#: qcsrc/menu/xonotic/dialog_firstrun.c:40
 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 "
@@ -134,18 +207,34 @@ msgstr ""
 "Tervetuloa pelaamaan Xonoticcia! Valitse haluamasi kieli ja pelaajanimesi "
 "aloittaaksesi. Voit vaihtaa näitä asetuksia jälkikäteen pelin asetuksista."
 
-#: 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_firstrun.c:47
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:40
+#: qcsrc/menu/xonotic/dialog_firstrun.c:46
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:37
 #: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:39
 msgid "Name:"
 msgstr "Nimi:"
 
-#: qcsrc/menu/xonotic/dialog_firstrun.c:69
+#: qcsrc/menu/xonotic/dialog_firstrun.c:68
+#: qcsrc/menu/xonotic/dialog_settings_user.c:65
+msgid "Text language:"
+msgstr "Tekstin kieli:"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:77
+msgid "Allow player statistics to use your nickname at stats.xonotic.org?"
+msgstr "Salli pelinimesi käyttö pelaajatilastosivulla stats.xonotic.org?"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:81
+msgid "ALWU2N^Yes"
+msgstr "ALWU2N^Kyllä"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:82
+msgid "ALWU2N^No"
+msgstr "ALWU2N^Ei"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:83
+msgid "ALWU2N^Undecided"
+msgstr "ALWU2N^En osaa päättää"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:87
 msgid "Save settings"
 msgstr "Tallenna asetukset"
 
@@ -204,7 +293,7 @@ msgid "Text alignment:"
 msgstr "Tekstin kohdistus:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_centerprint.c:37
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:50
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:51
 msgid "Center"
 msgstr "Keskus"
 
@@ -348,12 +437,12 @@ msgid "Status bar"
 msgstr "Tilapalkki"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:33
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:48
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:49
 msgid "Left align"
 msgstr "Vasen tasaus"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:34
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:52
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:53
 msgid "Right align"
 msgstr "Oikea tasaus"
 
@@ -370,6 +459,7 @@ msgid "Flip speed/acceleration positions"
 msgstr "Vaihda nopeuden/kiihtyvyyden paikkaa"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:44
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:29
 msgid "Speed:"
 msgstr "Nopeus:"
 
@@ -461,8 +551,8 @@ msgstr "Tutka:"
 #: 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:600
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:66
+#: qcsrc/menu/xonotic/util.qc:655
 msgid "Alpha:"
 msgstr "Alpha:"
 
@@ -491,6 +581,7 @@ msgid "North"
 msgstr "Pohjoinen"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:46
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:61
 msgid "Scale:"
 msgstr "Skaala:"
 
@@ -567,7 +658,6 @@ 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ä"
 
@@ -601,34 +691,38 @@ msgid "Weapon icons:"
 msgstr "Aseiden kuvakkeet:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:45
+msgid "Show only owned weapons"
+msgstr "Näytä vain omistuksessa olevat aseet"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:48
 msgid "Show weapon ID as:"
 msgstr "Näytä aseen tunniste:"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:46
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:49
 msgid "SHOWAS^None"
 msgstr "SHOWAS^Ei mitään."
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:47
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:50
 msgid "Number"
 msgstr "Numero"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:48
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:51
 msgid "Bind"
 msgstr "Näppäin"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:51
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:54
 msgid "Show Accuracy"
 msgstr "Näytä tarkkuus"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:52
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:55
 msgid "Show Ammo"
 msgstr "Näytä panokset"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:55
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:58
 msgid "Ammo bar color:"
 msgstr "Ammuskotelon väri"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:61
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:64
 msgid "Ammo bar alpha:"
 msgstr "Ammuskotelon alpha"
 
@@ -640,24 +734,24 @@ msgstr "Paneelin näkymän asetukset"
 msgid "Panel background defaults:"
 msgstr "Paneelin taustan perusasetukset:"
 
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:23 qcsrc/menu/xonotic/util.qc:575
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:23 qcsrc/menu/xonotic/util.qc:630
 msgid "Background:"
 msgstr "Tausta:"
 
 #: 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:578
-#: qcsrc/menu/xonotic/util.qc:594 qcsrc/menu/xonotic/util.qc:611
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:91 qcsrc/menu/xonotic/util.qc:633
+#: qcsrc/menu/xonotic/util.qc:649 qcsrc/menu/xonotic/util.qc:666
 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:583
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:77 qcsrc/menu/xonotic/util.qc:638
 msgid "Color:"
 msgstr "Väri:"
 
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:35 qcsrc/menu/xonotic/util.qc:591
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:35 qcsrc/menu/xonotic/util.qc:646
 msgid "Border size:"
 msgstr "Reunan koko:"
 
@@ -666,11 +760,11 @@ msgstr "Reunan koko:"
 msgid "Team color:"
 msgstr "Joukkueen väri:"
 
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:58 qcsrc/menu/xonotic/util.qc:617
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:58 qcsrc/menu/xonotic/util.qc:672
 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:620
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:61 qcsrc/menu/xonotic/util.qc:675
 msgid "Padding:"
 msgstr "Pehmustus:"
 
@@ -744,127 +838,123 @@ msgstr "Pelaajan asetukset"
 msgid "Game type:"
 msgstr "Pelityyppi"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:46
-msgid "Match settings:"
-msgstr "Ottelun asetukset"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:49
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:48
 msgid "Time limit:"
 msgstr "Aikaraja"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:53
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:61
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:52
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:60
 msgid "Use map specified default"
 msgstr "Käytä kartan omaa oletusarvoa"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:56
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:55
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:154
 #: qcsrc/menu/xonotic/dialog_multiplayer_create.c:155
 #: qcsrc/menu/xonotic/dialog_multiplayer_create.c:156
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:157
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:160
 #: qcsrc/menu/xonotic/dialog_multiplayer_create.c:161
 #: qcsrc/menu/xonotic/dialog_multiplayer_create.c:162
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:163
 msgid "Point limit:"
 msgstr "Pisteraja:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:64
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:63
 msgid "Player slots:"
 msgstr "Pelaajamäärä:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:67
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:66
 msgid "Number of bots:"
 msgstr "Bottien lukumäärä:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:71
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:69
 msgid "Bot skill:"
 msgstr "Bottien taitotaso:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:74
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:72
 msgid "Botlike"
 msgstr "Typerä kone"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:75
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:73
 msgid "Beginner"
 msgstr "Aloittelija"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:76
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:74
 msgid "You will win"
 msgstr "Helppo voitto"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:77
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:75
 msgid "You can win"
 msgstr "Helpohko"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:78
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:76
 msgid "You might win"
 msgstr "Keskitaso"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:79
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:77
 msgid "Advanced"
 msgstr "Kehittynyt"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:80
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:78
 msgid "Expert"
 msgstr "Ekspertti"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:81
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:79
 msgid "Pro"
 msgstr "Mestari"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:82
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:80
 msgid "Assassin"
 msgstr "Murhaaja"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:83
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:81
 msgid "Unhuman"
 msgstr "Epäinhimillinen"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:84
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:82
 msgid "Godlike"
 msgstr "Jumalainen"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:88
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:87
 msgid "Mutators..."
 msgstr "Muokkaukset..."
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:97
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:57
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:96
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:145
 msgid "Advanced settings..."
 msgstr "Edistyneet asetukset..."
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:104
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:103
 msgid "Map list:"
 msgstr "Karttalista"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:110
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:109
 msgid "Select all"
 msgstr "Valitse kaikki"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:113
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:112
 msgid "Select none"
 msgstr "Poista kaikki valinnat"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:119
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:118
 msgid "Start Multiplayer!"
 msgstr "Aloita moninpeli!"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:154
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:153
 msgid "Capture limit:"
 msgstr "Lipunryöstöraja"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:158
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:157
 msgid "Lives:"
 msgstr "Elämät:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:159
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:158
 msgid "Laps:"
 msgstr "Kierrokset:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:160
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:159
 msgid "Goals:"
 msgstr "Maalit:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:164
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:163
 msgid "Frag limit:"
 msgstr "Tapporaja:"
 
@@ -968,28 +1058,28 @@ msgstr "Esineiden täysi sijoittaminen"
 msgid "MinstaGib only"
 msgstr "Vain MinstaGib"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:78
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:81
 msgid "Title:"
 msgstr "Otsikko:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:84
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:87
 msgid "Author:"
 msgstr "Tekijä:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:90
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:93
 msgid "Features:"
 msgstr "Ominaisuudet:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:95
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:98
 msgid "Game types:"
 msgstr "Pelityypit:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:118
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:314
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:121
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:335
 msgid "Close"
 msgstr "Sulje"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:121
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:124
 msgid "MAP^Play"
 msgstr "Pelaa"
 
@@ -1011,108 +1101,121 @@ msgid "%s Arena"
 msgstr "%s taistelukenttä"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:68
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:167
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:173
 msgid "Dodging"
 msgstr "Väistely"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:70
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:250
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:258
 msgid "MinstaGib"
 msgstr "MinstaGib"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:72
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:253
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:261
 msgid "NIX"
 msgstr "NIX"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:74
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:205
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:213
 msgid "Rocket Flying"
 msgstr "Rakettilentely"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:78
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:264
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:76
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:210
+msgid "Invincible Projectiles"
+msgstr "Kuolemattomat Projektiilit"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:80
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:272
 msgid "No start weapons"
 msgstr "Ei aloitusasetta"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:80
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:189
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:82
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:195
 msgid "Low gravity"
 msgstr "Vajaa painovoima"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:82
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:170
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:84
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:176
 msgid "Cloaked"
 msgstr "Näkymätön"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:84
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:86
 msgid "Hook"
 msgstr "Köysi"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:86
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:173
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:88
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:179
 msgid "Midair"
 msgstr "Jalat irti maasta"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:88
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:176
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:90
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:182
 msgid "Vampire"
 msgstr "Vampyyri"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:90
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:208
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:92
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:216
 msgid "Piñata"
 msgstr "Piñata"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:92
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:211
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:94
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:219
 msgid "Weapons stay"
 msgstr "Aseet jäävät"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:94
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:180
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:96
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:186
 msgid "Blood loss"
 msgstr "Verenvuodatus"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:96
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:202
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:98
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:207
 msgid "Jet pack"
 msgstr "Rakettireppu"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:98
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:100
+msgid "No powerups"
+msgstr "Ei tehonlisäyksiä"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:102
+msgid "Powerups"
+msgstr "Tehonlisäykset"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:104
 msgid "MUT^None"
 msgstr "MUT^Ei mitään"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:164
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:170
 msgid "Gameplay mutators:"
 msgstr "Pelityylin muokkaukset:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:196
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:201
 msgid "Weapon & item mutators:"
 msgstr "Aseiden ja esineiden muokkaukset:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:199
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:204
 msgid "Grappling hook"
 msgstr "Köysi"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:215
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:223
 msgid "Weapon arenas:"
 msgstr "Tietyn aseen taistelukenttä"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:218
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:226
 msgid "Regular (no arena)"
 msgstr "Perinteinen"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:239
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:256
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:247
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:264
 msgid "with laser"
 msgstr "laserilla"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:247
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:255
 msgid "Special arenas:"
 msgstr "Erikoistaistelukentät:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:260
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:268
 msgid "Most weapons"
 msgstr "Suurin osa aseista"
 
@@ -1121,26 +1224,26 @@ msgid "Demo"
 msgstr "Demo"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:28
-msgid "Record demos while playing"
+msgid "Automatically record demos while playing"
 msgstr "Tallenna demoja pelin aikana"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:32
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:31
 #: qcsrc/menu/xonotic/dialog_multiplayer_join.c:28
 msgid "Filter:"
 msgstr "Suodatin:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:33
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:32
 #: 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
+#: qcsrc/menu/xonotic/dialog_settings_input.c:40
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:32
 msgid "Clear"
 msgstr "Tyhjennä"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:43
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:45
 msgid "Timedemo"
 msgstr "Aikademo"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:46
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:48
 msgid "DEMO^Play"
 msgstr "Pelaa"
 
@@ -1161,6 +1264,7 @@ msgid "Pause"
 msgstr "Keskeytä"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join.c:56
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:262
 msgid "Address:"
 msgstr "Osoite:"
 
@@ -1169,7 +1273,7 @@ msgid "Info..."
 msgstr "Tietoa..."
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join.c:72
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:317
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:342
 msgid "Join!"
 msgstr "Liity!"
 
@@ -1177,307 +1281,495 @@ msgstr "Liity!"
 msgid "Server Information"
 msgstr "Palvelimen tiedot"
 
-#: 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
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:132
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:133
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:242
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:247
 msgid "N/A"
 msgstr "N/A"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:158
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:179
 #, c-format
-msgid "%d/%d, %d free player slots"
-msgstr "%d/%d, %d vapaata pelaajapaikkaa"
+msgid "%d/%d"
+msgstr "%d/%d"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:193
+#: qcsrc/menu/xonotic/util.qc:632 qcsrc/menu/xonotic/util.qc:648
+#: qcsrc/menu/xonotic/util.qc:657 qcsrc/menu/xonotic/util.qc:665
+#: qcsrc/menu/xonotic/util.qc:677
+msgid "Default"
+msgstr "Perusasetus"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:172
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:200
 #, c-format
-msgid "%d modified settings"
+msgid "%d modified"
 msgstr "%d muokattua asetusta"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:172
-msgid "Official settings"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:200
+msgid "Official"
 msgstr "Viralliset asetukset"
 
-#: 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_multiplayer_join_serverinfo.c:208
+msgid "N/A (auth library missing, can't connect)"
+msgstr "Ei saatavilla (valtuutuskirjastot puuttuvat, ei voida yhdistää)"
 
-#: 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_multiplayer_join_serverinfo.c:210
+msgid "N/A (auth library missing)"
+msgstr "Ei saatavilla (valtuutuskirjastot puuttuvat)"
 
-#: 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_join_serverinfo.c:216
+msgid "Not supported (can't connect)"
+msgstr "Ei tuettu (ei voida yhdistää)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:211
-msgid "supported (will encrypt)"
-msgstr "tuettu (salaus onnistuu)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:218
+msgid "Not supported (won't encrypt)"
+msgstr "Ei tuettu (salaus ei onnistu)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:213
-msgid "supported (won't encrypt)"
-msgstr "tuettu (salaus ei onnistu)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:222
+msgid "Supported (will encrypt)"
+msgstr "Tuettu (salaus onnistuu)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:217
-msgid "requested (will encrypt)"
-msgstr "pyydetty (salaus onnistuu)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:224
+msgid "Supported (won't encrypt)"
+msgstr "Tuettu (salaus ei onnistu)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:219
-msgid "requested (won't encrypt)"
-msgstr "pyydetty (salaus ei onnistu)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:228
+msgid "Requested (will encrypt)"
+msgstr "Pyydetty (salaus onnistuu)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:223
-msgid "required (can't connect)"
-msgstr "vaadittu (ei voida yhdistää)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:230
+msgid "Requested (won't encrypt)"
+msgstr "Pyydetty (salaus ei onnistu)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:225
-msgid "required (will encrypt)"
-msgstr "vaadittu (salaus onnistuu)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:234
+msgid "Required (can't connect)"
+msgstr "Vaadittu (ei voida yhdistää)"
 
-#: 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_join_serverinfo.c:236
+msgid "Required (will encrypt)"
+msgstr "Vaadittu (salaus onnistuu)"
 
-#: 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_join_serverinfo.c:256
+msgid "Hostname:"
+msgstr "Palvelimen nimi"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:270
+msgid "Gametype:"
+msgstr "Pelityyppi"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:259
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:275
 msgid "Map:"
 msgstr "Kartta:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:264
-msgid "Gameplay:"
-msgstr "Pelitila:"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:274
-msgid "Bots:"
-msgstr "Botit:"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:279
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:280
 msgid "Mod:"
 msgstr "Modi:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:284
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:285
 msgid "Version:"
 msgstr "Versio:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:289
-msgid "Ping:"
-msgstr "Viive:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:290
+msgid "Settings:"
+msgstr "Asetukset"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:295
-msgid "CA:"
-msgstr "CA:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:297
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:329
+msgid "Players:"
+msgstr "Pelaajat:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:301
-msgid "Key:"
-msgstr "Avain:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:302
+msgid "Bots:"
+msgstr "Botit:"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:307
+msgid "Free slots:"
+msgstr "Vapaat paikat:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:313
 msgid "Encryption:"
 msgstr "Salaus:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:63
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:318
+msgid "ID:"
+msgstr "Tunnus:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:323
+msgid "Key:"
+msgstr "Avain:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:60
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:19
 msgid "Model:"
 msgstr "Hahmo:"
 
 #: 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:"
+msgid "No crosshair"
+msgstr "Ei tähtäintä:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:100
-msgid "Zoom speed:"
-msgstr "Tarkennuksen nopeus:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:90
+msgid "Per weapon crosshair"
+msgstr "Asekohtainen tähtäin"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:103
-msgid "Weapon settings..."
-msgstr "Aseiden asetukset..."
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:93
+msgid "Custom crosshair"
+msgstr "Muokattu tähtäin:"
 
-#: 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
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:112
 msgid "Crosshair size:"
 msgstr "Tähtäimen suuruus:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:134
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:117
 msgid "Crosshair alpha:"
 msgstr "Tähtäimen alpha:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:138
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:123
 msgid "Crosshair color:"
 msgstr "Tähtäimen väri:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:140
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:125
+msgid "Per weapon"
+msgstr "Asekohtainen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:127
 msgid "By health"
 msgstr "Elämän mukaan"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:143
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:131
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:47
 msgid "Custom"
 msgstr "Omavalintainen"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:148
-msgid "Enable center dot"
-msgstr "Ota tähtäin käyttöön"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:139
+msgid "Other crosshair settings"
+msgstr "Muut tähtäimen asetukset"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:151
-msgid "Size:"
-msgstr "Koko:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:147
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:6
+msgid "Model settings"
+msgstr "Hahmon asetukset"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:158
-msgid "Hit test:"
-msgstr "Osumatesti:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:153
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:6
+msgid "View settings"
+msgstr "Näkymän asetukset"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:159
-msgid "HTST^None"
-msgstr "HTST^Ei mitään."
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:6
+msgid "Weapon settings"
+msgstr "Aseiden asetukset"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:169
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:6
+msgid "HUD settings"
+msgstr "Käyttöliittymän asetukset"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:175
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:203
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:185
+#: qcsrc/menu/xonotic/dialog_settings_input.c:89
+#: qcsrc/menu/xonotic/dialog_settings_user.c:88
+#: qcsrc/menu/xonotic/dialog_settings_video.c:142
+msgid "Apply immediately"
+msgstr "Ota heti käyttöön"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:160
-msgid "TrueAim"
-msgstr "TrueAim"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:6
+msgid "Crosshair settings"
+msgstr "Tähtäimen asetukset:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:161
-msgid "Enemies"
-msgstr "Viholliset"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:28
+msgid "Enable center crosshair dot"
+msgstr "Käytä keskitettyä pistettä tähtäimessä"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:164
-msgid "Waypoints setup..."
-msgstr "Välimatkojen asetukset..."
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:31
+msgid "Dot size:"
+msgstr "Pisteen koko:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:169
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:36
+msgid "Dot alpha:"
+msgstr "Pisteen läpinäkyvyys:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:41
+msgid "Dot color:"
+msgstr "Pisteen väri:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:43
+msgid "Use normal crosshair color"
+msgstr "Käytä normaalin tähtäimen väriä:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:54
+msgid "Crosshair animations:"
+msgstr "Tähtäimen animaatiot:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:57
+msgid "Smooth effects of crosshairs"
+msgstr "Pehmennä tähtäimen efektejä"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:61
+msgid "Use rings to indicate weapon status"
+msgstr "Ympyrät näyttävät aseen tila"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:67
+msgid "Hit testing:"
+msgstr "Osumatesti:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:69
+msgid "HTTST^Disabled"
+msgstr "HTTST^Pois päältä"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:70
+msgid "HTTST^TrueAim"
+msgstr "HTTST^TrueAim"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:71
+msgid "HTTST^Enemies"
+msgstr "HTTST^Viholliset"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:76
+msgid "Blur crosshair if the shot is obstructed"
+msgstr "Sumenna tähtäin jos aseen ja kohteen välissä on este"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:81
+msgid "Animate when hitting an enemy"
+msgstr "Animoi osutessa viholliseen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:85
+msgid "Animate when picking up an item"
+msgstr "Animoi poimitessa esineen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:40
+msgid "Damage:"
+msgstr "Veriroiskeet:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:43
+msgid "Overlay:"
+msgstr "Päällys:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:47
+msgid "Factor:"
+msgstr "Tarkennuskerroin:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:52
+msgid "Fade rate:"
+msgstr "Sisääntulon häivennyksen kesto"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:58
+msgid "Waypoints"
+msgstr "Välietapit"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:71
+msgid "Edge offset:"
+msgstr "Tönäisy reunasta:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:80
+msgid "Show names above players"
+msgstr "Näytä pelaajanimet hahmojen yläpuolella"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:83
+msgid "Only when near crosshair"
+msgstr "Vain lähellä tähtäintä"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:86
+msgid "Display health and armor"
+msgstr "Näytä elämän ja panssarin arvot"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:90
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hudconfirm.c:4
 msgid "Enter HUD editor"
 msgstr "Muokkaa näkymää"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:174
-msgid "Force models:"
-msgstr "Pakota hahmojen ulkomuoto samanlaiseksi:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hudconfirm.c:28
+msgid "In order for the HUD editor to show, you must first be in game."
+msgstr "Jotta käyttöliittymän editori toimisi, täytyy sinun olla pelissä."
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:175
-msgid "MDL^None"
-msgstr "MDL^Ei mitään."
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hudconfirm.c:30
+msgid "Do you wish to start a local game to set up the HUD?"
+msgstr ""
+"Haluatko aloittaa paikallisen pelin (LAN) muokatakseesi käyttöliittymää?"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:176
-msgid "MDL^Custom"
-msgstr "MDL^Omavalintainen"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hudconfirm.c:33
+msgid "HDCNFRM^Yes"
+msgstr "HDCNFRM^Kyllä"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:177
-msgid "MDL^All"
-msgstr "MDL^Kaikki"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hudconfirm.c:36
+msgid "HDCNFRM^No"
+msgstr "HDCNFRM^Ei"
 
-#: 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_model.c:28
+msgid "Body fading:"
+msgstr "Ruumiin häivytys:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:182
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:31
 msgid "Gibs:"
 msgstr "Raajat:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:184
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:33
 msgid "GIBS^None"
 msgstr "GIBS^Ei mitään"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:185
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:34
 msgid "GIBS^Few"
 msgstr "GIBS^Vähän"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:186
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:35
 msgid "GIBS^Many"
 msgstr "GIBS^Paljon"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:187
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:36
 msgid "GIBS^Lots"
 msgstr "GIBS^Runsaasti"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:191
-msgid "Damage splash:"
-msgstr "Veriroiskeet"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:40
+msgid "Playermodel LOD:"
+msgstr "Pelaajahahmon LOD:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:195
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:173
-#: 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:109
-msgid "Apply immediately"
-msgstr "Ota heti käyttöön"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:44
+msgid "Force models:"
+msgstr "Pakota hahmojen ulkomuoto samanlaiseksi:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:5
-msgid "Waypoints"
-msgstr "Välietapit"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:45
+msgid "MDL^None"
+msgstr "MDL^Ei mitään."
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:23
-msgid "Show base waypoints"
-msgstr "Näytä tukikohtien välimatkat"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:46
+msgid "MDL^Custom"
+msgstr "MDL^Omavalintainen"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:25
-msgid "Waypoint scale:"
-msgstr "Välietappien skaala:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:47
+msgid "MDL^All"
+msgstr "MDL^Kaikki"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:29
-msgid "Waypoint alpha:"
-msgstr "Välietappien alpha:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:50
+msgid "Force player models to mine"
+msgstr "Pakota hahmojen ulkomuoto samanlaiseksi:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:34
-msgid "Show names:"
-msgstr "Näytä nimet:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:52
+msgid "Force player colors to mine"
+msgstr "Pakota pelaajat samanvärisiksi"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:37
-msgid "Teammates"
-msgstr "Oma joukkue"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:28
+msgid "Field of view:"
+msgstr "Näkökenttä:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:38
-msgid "All players"
-msgstr "Kaikki pelaajat"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:31
+msgid "Zoom:"
+msgstr "Tarkennus:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:6
-msgid "Weapon settings"
-msgstr "Aseiden asetukset"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:33
+msgid "RETICLE^Fullscreen"
+msgstr "RETICLE^Kokoruutu"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:29
-msgid "Weapon priority list:"
-msgstr "Aseiden prioriteetti:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:34
+msgid "RETICLE^With reticle"
+msgstr "RETICLE^Ristikolla"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:34
-msgid "Up"
-msgstr "Ylös"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:38
+msgid "ZOOM^Factor:"
+msgstr "ZOOM^Kerroin:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:37
-msgid "Down"
-msgstr "Alas"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:42
+msgid "ZOOM^Speed:"
+msgstr "ZOOM^Nopeus:"
 
-#: 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_view.c:52
+msgid "ZOOM^Instant"
+msgstr "ZOOM^Heti"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:43
-msgid "Auto switch weapons on pickup"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:56
+msgid "ZOOM^Sensitivity:"
+msgstr "ZOOM^Herkkyys:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:59
+msgid "Velocity zoom:"
+msgstr "Vauhtitarkennus:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:61
+msgid "VZOOM^Disabled"
+msgstr "VZOOM^Pois"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:62
+msgid "VZOOM^Forward only"
+msgstr "VZOOM^Vain eteenpäin"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:63
+msgid "VZOOM^All directions"
+msgstr "VZOOM^Kaikkiin suuntiin"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:67
+msgid "VZOOM^Speed"
+msgstr "VZOOM^Vauhti"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:72
+msgid "Allow passing through walls while spectating"
+msgstr "Salli lentäminen seinien läpi katsojana"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:75
+msgid "1st person perspective"
+msgstr "Ensimmäisen persoonan näkymä"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:79
+msgid "Smooth the view when landing from a jump"
+msgstr "Pehmennä näkymää laskeuduttaessa"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:83
+msgid "Smooth the view while crouching"
+msgstr "Pehmennä näkymää kun menet kyykkyyn"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:87
+msgid "View waving while idle"
+msgstr "Heiluta näkymää joutilaana"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:91
+msgid "View bobbing while walking around"
+msgstr "Heiluta näkymää kun kävelet"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:96
+msgid "3rd person perspective"
+msgstr "Kolmannen persoonan näkymä"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:100
+msgid "Back distance"
+msgstr "Etäisyys taakse:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:106
+msgid "Up distance"
+msgstr "Etäisyys ylös:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:29
+msgid "Weapon priority list:"
+msgstr "Aseiden prioriteetti:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:33
+msgid "Up"
+msgstr "Ylös"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:36
+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
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:46
 msgid "Draw 1st person weapon model"
 msgstr "Piirrä ensimmäisen persoonan asemalli"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:55
-msgid "Flip view horizontally"
-msgstr "Käännä näkymä horisontaalisesti"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:58
+msgid "Gun model swaying"
+msgstr "Aseen huojunta"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:63
+msgid "Gun model bobbing"
+msgstr "Aseen heilunta"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:68
+msgid "VWMDL^Scale"
+msgstr "VWMDL^Skaala"
 
 #: qcsrc/menu/xonotic/dialog_news.c:4
 msgid "News"
@@ -1491,18 +1783,146 @@ msgstr "http://www.xonotic.org/team/blog/"
 msgid "Quit"
 msgstr "Lopeta"
 
-#: qcsrc/menu/xonotic/dialog_quit.c:17
+#: qcsrc/menu/xonotic/dialog_quit.c:18
 msgid "Are you sure you want to quit?"
 msgstr "Haluatko aivan varmasti lopettaa pelin?"
 
-#: qcsrc/menu/xonotic/dialog_quit.c:20
+#: qcsrc/menu/xonotic/dialog_quit.c:21
 msgid "Yes"
 msgstr "Kyllä"
 
-#: qcsrc/menu/xonotic/dialog_quit.c:21
+#: qcsrc/menu/xonotic/dialog_quit.c:22
 msgid "No"
 msgstr "Ei"
 
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:4
+msgid "Sandbox Tools"
+msgstr "Hiekkalaatikon työkalut"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:24
+msgid "Spawn"
+msgstr "Luo"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:25
+msgid "Remove *"
+msgstr "Poista *"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:27
+msgid "Copy *"
+msgstr "Kopioi *"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:28
+msgid "Paste"
+msgstr "Liitä:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:30
+msgid "Bone:"
+msgstr "Luu:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:35
+msgid "Set * as child"
+msgstr "Aseta * lapseksi"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:36
+msgid "Attach to *"
+msgstr "Liitä *:n"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:38
+msgid "Detach from *"
+msgstr "Irrota *:stä"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:41
+msgid "Visual object properties for *:"
+msgstr "Esineen *:n visuaaliset ominaisuudet:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:43
+msgid "Set skin:"
+msgstr "Aseta iho:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:45
+msgid "Set alpha:"
+msgstr "Aseta läpinäkyvyys:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:48
+msgid "Set color main:"
+msgstr "Aseta pääväri:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:50
+msgid "Set color glow:"
+msgstr "Aseta hehkumisväri:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:54
+msgid "Set frame:"
+msgstr "Aseta kuvaruutu"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:58
+msgid "Physical object properties for *:"
+msgstr "Esineen *:n fysikaaliset ominaisuudet:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:60
+msgid "Set material:"
+msgstr "Aseta materiaali"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:66
+msgid "Set solidity:"
+msgstr "Aseta kiinteyys:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:67
+msgid "Non-solid"
+msgstr "Ei-kiinteä"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:68
+msgid "Solid"
+msgstr "Kiinteä"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:69
+msgid "Set physics:"
+msgstr "Aseta fysiikka:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:70
+msgid "Static"
+msgstr "Staattinen"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:71
+msgid "Movable"
+msgstr "Siirrettävä"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:72
+msgid "Physical"
+msgstr "Fyysinen"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:74
+msgid "Set scale:"
+msgstr "Aseta skaala:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:76
+msgid "Set force:"
+msgstr "Aseta voima:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:80
+msgid "Claim *"
+msgstr "Valtaa *"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:82
+msgid "* object info"
+msgstr "* esineen info"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:83
+msgid "* mesh info"
+msgstr "* mesh info"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:84
+msgid "* attachment info"
+msgstr "* liitosinfo"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:85
+msgid "Show help"
+msgstr "Näytä apu"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:86
+msgid "* is the object you are facing"
+msgstr "* on esine jota katsot"
+
 #: qcsrc/menu/xonotic/dialog_settings.c:4
 msgid "Settings"
 msgstr "Asetukset"
@@ -1528,9 +1948,9 @@ 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_user.c:4
+msgid "User"
+msgstr "Käyttäjä"
 
 #: qcsrc/menu/xonotic/dialog_settings.c:23
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:4
@@ -1541,194 +1961,170 @@ msgstr "Sekalainen"
 msgid "Master:"
 msgstr "Pääkanava:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:33
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:35
 msgid "Music:"
 msgstr "Musiikki:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:41
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:45
 msgid "VOL^Ambient:"
 msgstr "VOL^Ympäristö:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:48
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:54
 msgid "Info:"
 msgstr "Tiedoitukset:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:55
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:63
 msgid "Items:"
 msgstr "Esineet:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:62
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:72
 msgid "Pain:"
 msgstr "Kipu:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:69
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:81
 msgid "Player:"
 msgstr "Pelaaja:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:76
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:90
 msgid "Shots:"
 msgstr "Laukaukset:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:83
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:99
 msgid "Voice:"
 msgstr "Puhe:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:91
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:109
 msgid "Weapons:"
 msgstr "Aseet:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:98
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:156
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:117
+msgid "New style sound attenuation"
+msgstr "Uusi äänenvaimennustapa"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:119
+msgid "Mute sounds when not active"
+msgstr "Mykistä äänet ikkunan ollessa passiivinen"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:122
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:194
 msgid "Frequency:"
 msgstr "Taajuus:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:100
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:124
 msgid "8 kHz"
 msgstr "8 kHz"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:101
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:125
 msgid "11.025 kHz"
 msgstr "11.025 kHz"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:102
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:126
 msgid "16 kHz"
 msgstr "16 kHz"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:103
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:127
 msgid "22.05 kHz"
 msgstr "22.05 Khz"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:104
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:128
 msgid "24 kHz"
 msgstr "24 kHz"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:105
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:129
 msgid "32 kHz"
 msgstr "32 kHz"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:106
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:130
 msgid "44.1 kHz"
 msgstr "44.1 kHz"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:107
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:131
 msgid "48 kHz"
 msgstr "48 kHz"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:110
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:134
 msgid "Channels:"
 msgstr "Kanavat:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:112
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:136
 msgid "Mono"
 msgstr "Mono"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:113
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:137
 msgid "Stereo"
 msgstr "Stereo"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:114
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:138
 msgid "2.1"
 msgstr "2.1"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:115
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:139
 msgid "4"
 msgstr "4"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:116
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:140
 msgid "5"
 msgstr "5"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:117
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:141
 msgid "5.1"
 msgstr "5.1"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:118
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:142
 msgid "6.1"
 msgstr "6.1"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:119
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:143
 msgid "7.1"
 msgstr "7.1"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:123
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:146
 msgid "Swap Stereo"
 msgstr "Vaihda stereoäänilähteiden paikkaa"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:127
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:148
 msgid "Headphone friendly mode"
 msgstr "Kuulokeystävällinen tila"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:131
-msgid "Spatial voices:"
-msgstr "Tilanneäänet:"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:132
-msgid "VOCS^None"
-msgstr "VOCS^Ei mitään"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:133
-msgid "VOCS^Taunts"
-msgstr "VOCS^Huudahdukset"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:134
-msgid "VOCS^All"
-msgstr "VOCS^Kaikki"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:137
-msgid "Taunt range:"
-msgstr "Huudahduksen kantama"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:140
-msgid "RNG^Very short"
-msgstr "RNG^Hyvin lyhyt"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:141
-msgid "RNG^Short"
-msgstr "RNG^Lyhyt"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:142
-msgid "RNG^Normal"
-msgstr "RNG^Normaali"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:143
-msgid "RNG^Long"
-msgstr "RNG^Pitkä"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:170
+msgid "Hit indication sound"
+msgstr "Osumailmaisimen ääni"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:144
-msgid "RNG^Full"
-msgstr "RNG^Täysi"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:172
+msgid "Chat message sound"
+msgstr "Keskustelun piippausääni"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:151
-msgid "Automatic taunts"
-msgstr "Automaattiset huudahdukset"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:174
+msgid "Menu sounds"
+msgstr "Valikon äänet"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:160
-msgid "Time warning:"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:177
+msgid "Time announcer:"
 msgstr "Aikavaroitus:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:162
-msgid "WRN^None"
-msgstr "WRN^Ei mitään"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:179
+msgid "WRN^Disabled"
+msgstr "WRN^Pois päältä"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:163
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:180
 msgid "1 minute"
 msgstr "1 minuutti"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:164
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:181
 msgid "5 minutes"
 msgstr "5 minuuttia"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:165
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:182
 msgid "WRN^Both"
 msgstr "WRN^Molemmat"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:168
-msgid "Hit indicator"
-msgstr "Osumailmaisin"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:189
+msgid "Automatic taunts"
+msgstr "Automaattiset huudahdukset"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:170
-msgid "Menu sounds"
-msgstr "Valikon äänet"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:199
+msgid "Debug info about sounds"
+msgstr "Äänten debug info"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:38
 msgid "Quality preset:"
@@ -1791,230 +2187,226 @@ msgid "DET^Insane"
 msgstr "DET^Sekopäinen"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:62
-msgid "Antialiasing:"
-msgstr "Reunojenpehmennys (Antialiasing):"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:64
-msgid "AA^Disabled"
-msgstr "AA^Pois päältä"
-
-#: 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 "Tekstuurien tarkkuus:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:73
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:65
 msgid "RES^Leet"
 msgstr "RES^Leet"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:74
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:66
 msgid "RES^Lowest"
 msgstr "RES^Matalin"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:75
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:67
+msgid "RES^Very low"
+msgstr "RES^Hyvin matala"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:68
 msgid "RES^Low"
 msgstr "RES^Matala"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:76
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:69
 msgid "RES^Normal"
 msgstr "RES^Normaali"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:77
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:70
 msgid "RES^Good"
 msgstr "RES^Hyvä"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:78
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:71
 msgid "RES^Best"
 msgstr "RES^Paras"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:91
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:94
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:84
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:87
 msgid "Avoid lossy texture compression"
 msgstr "Vältä häviöllistä tekstuurien pakkaamista"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:100
-msgid "Anisotropy:"
-msgstr "Anisotropia:"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:93
+msgid "Use lightmaps"
+msgstr "Käytä valaistuksia"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:102
-msgid "ANISO^Disabled"
-msgstr "ANISO^Pois päältä"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:94
+msgid "Deluxe mapping"
+msgstr "Pikselikohtainen valaistus"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:105
-msgid "8x"
-msgstr "8x"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:96
+msgid "Gloss"
+msgstr "Kiilto"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:100
+msgid "Particles quality:"
+msgstr "Partikkeleiden laatu:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:103
+msgid "Particles distance:"
+msgstr "Partikkeleiden etäisyys:"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:106
-msgid "16x"
-msgstr "16x"
+msgid "Damage effects:"
+msgstr "Vahinkoefektit:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:110
-msgid "Particle quality:"
-msgstr "Kappaleiden laatu:"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:108
+msgid "DMGPRTCLS^Disabled"
+msgstr "DMGPRTCLS^Pois"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:109
+msgid "DMGPRTCLS^Skeletal"
+msgstr "DMGPRTCLS^Luusto"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:113
-msgid "Particle distance:"
-msgstr "Kappaleiden etäisyys:"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:110
+msgid "DMGPRTCLS^All"
+msgstr "DMGPRTCLS^Kaikki"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:117
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:114
 msgid "Decals"
 msgstr "Siirtokuvat"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:118
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:115
 msgid "Decals on models"
 msgstr "Hahmojen siirtokuvat"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:122
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:119
 msgid "Distance:"
 msgstr "Etäisyys:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:128
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:125
 msgid "Time:"
 msgstr "Kesto:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:134
-msgid "Use lightmaps"
-msgstr "Käytä valaistuksia"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:135
-msgid "Deluxe mapping"
-msgstr "Pikselikohtainen valaistus"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:137
-msgid "Gloss"
-msgstr "Kiilto"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:140
-msgid "Offset mapping"
-msgstr "Korosta tekstuurien kuhmuja"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:142
-msgid "Relief mapping"
-msgstr "Tehokas tekstuurien kuhmujen korostus"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:145
-msgid "Reflections:"
-msgstr "Heijastukset:"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:148
-msgid "Blurred"
-msgstr "Sumea"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:149
-msgid "REFL^Good"
-msgstr "REFL^Hyvä"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:150
-msgid "Sharp"
-msgstr "Terävä"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:131
+msgid "Coronas"
+msgstr "Valokehät"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:155
-msgid "Show surfaces"
-msgstr "Näytä pinnat"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:132
+msgid "Use Occlusion Queries"
+msgstr "Käytä Occlusion Queryä"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:157
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:134
 msgid "No dynamic lighting"
 msgstr "Ei dynaamista valaistusta"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:159
-msgid "Flash blend approximation"
-msgstr "Yksinkertaiset valot"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:136
+msgid "Fake corona lighting"
+msgstr "Valaistuksen valokehä"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:161
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:138
 msgid "Realtime dynamic lighting"
 msgstr "Reaaliaikainen dynaaminen valaitus"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:162
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:166
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:139
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:143
 msgid "Shadows"
 msgstr "Varjot"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:165
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:142
 msgid "Realtime world lighting"
 msgstr "Reaaliaikainen ympäristön valaistus"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:170
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:147
 msgid "Use normal maps"
 msgstr "Käytä tekstuurien suunnattua varjostamista"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:172
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:149
 msgid "Soft shadows"
 msgstr "Pehmeät varjot"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:175
-msgid "Coronas"
-msgstr "Valokehät"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:153
+msgid "Show surfaces"
+msgstr "Näytä pinnat"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:176
-msgid "Use Occlusion Queries"
-msgstr "Käytä Occlusion Queryä"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:155
+msgid "Offset mapping"
+msgstr "Korosta tekstuurien kuhmuja"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:157
+msgid "Relief mapping"
+msgstr "Tehokas tekstuurien kuhmujen korostus"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:159
+msgid "LOD"
+msgstr "Yksityiskohtaisuus"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:178
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:162
 msgid "Bloom"
 msgstr "Hehku"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:180
-msgid "High Dynamic Range (HDR)"
-msgstr "HDR"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:164
+msgid "Reflections:"
+msgstr "Heijastukset:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:167
+msgid "Blurred"
+msgstr "Sumea"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:168
+msgid "REFL^Good"
+msgstr "REFL^Hyvä"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:169
+msgid "Sharp"
+msgstr "Terävä"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:184
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:174
 msgid "Motion blur:"
 msgstr "Liikesumeus:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:189
-msgid "Blur and sharpen postprocessing"
-msgstr "Sumenna ja terävöitä jälkikäsittelyä"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:179
+msgid "Extra postprocessing effects"
+msgstr "Ylimääräiset jälkikäsittelyefektit"
 
 #: qcsrc/menu/xonotic/dialog_settings_input.c:26
 msgid "Key bindings:"
 msgstr "Näppäimet:"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:31
+#: qcsrc/menu/xonotic/dialog_settings_input.c:30
 msgid "Change key..."
 msgstr "Vaihda näppäin..."
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:35
+#: qcsrc/menu/xonotic/dialog_settings_input.c:34
 msgid "Edit..."
 msgstr "Muokkaa..."
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:46
-msgid "Sensitivity:"
-msgstr "Herkkyys:"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:45
+msgid "Pressing \"enter console\" key also closes it"
+msgstr "\"avaa komentorivi\" myös sulkee komentorivin"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:47
+msgid "Automatically repeat jumping if holding jump"
+msgstr "Hyppää automaattisesti uudestaan pitämällä hyppynappi painettuna"
 
 #: qcsrc/menu/xonotic/dialog_settings_input.c:51
-msgid "UI mouse speed:"
-msgstr "Käyttöliittymän hiiren nopeus:"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:53
+#: qcsrc/menu/xonotic/dialog_settings_input.c:56
+msgid "Use joystick input"
+msgstr "Käytä peliohjainta"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:55
-msgid "Mouse filter"
-msgstr "Hiiren suodatin"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:61
+msgid "Mouse:"
+msgstr "Hiiri:"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:57
-msgid "Invert mouse"
-msgstr "Käännä hiiren suunta"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:64
+msgid "Sensitivity:"
+msgstr "Herkkyys:"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:60
-#: qcsrc/menu/xonotic/dialog_settings_input.c:62
-msgid "Use joystick input"
-msgstr "Käytä peliohjainta"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:68
+msgid "Smooth aiming"
+msgstr "Tähtäyksen pehmennys"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:71
+msgid "Invert aiming"
+msgstr "Käännä hiiren suunta"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:65
-#: qcsrc/menu/xonotic/dialog_settings_input.c:67
-msgid "Turn off OS mouse acceleration"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:75
+#: qcsrc/menu/xonotic/dialog_settings_input.c:77
+#: qcsrc/menu/xonotic/dialog_settings_input.c:80
+msgid "Disable system mouse acceleration"
 msgstr "Laita käyttöjärjestelmän hiiren kiihtyvyys pois päältä"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:69
-msgid "\"enter console\" also closes"
-msgstr "\"avaa komentorivi\" myös sulkee komentorivin"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:85
+msgid "Enable built in mouse acceleration"
+msgstr "Laita käyttöjärjestelmän hiiren kiihtyvyys päälle"
 
 #: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:5
 msgid "User defined key bind"
@@ -2037,96 +2429,261 @@ msgid "Cancel"
 msgstr "Peruuta"
 
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:26
-msgid "Menu skins:"
-msgstr "Päävalikon ulkoasu:"
+msgid "Network:"
+msgstr "Verkko:"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:47
-msgid "Show current time"
-msgstr "Näytä nykyinen kellonaika"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:31
+msgid "56k"
+msgstr "56k"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:49
-msgid "Show current date"
-msgstr "Näytä nykyinen päivämäärä"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:32
+msgid "ISDN"
+msgstr "ISDN"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:51
-msgid "Show frames per second"
-msgstr "Näytä ruudunpäivitysnopeus (FPS)"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:33
+msgid "Slow ADSL"
+msgstr "Hidas ASL"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:53
-msgid "Minimize input latency"
-msgstr "Minimoi syötteen viive"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:34
+msgid "Fast ADSL"
+msgstr "Nopea ADSL"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:5
-msgid "Advanced settings"
-msgstr "Edistyneet asetukset"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:35
+msgid "Broadband"
+msgstr "Laajakaista"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:23
-msgid "Cvar filter:"
-msgstr "Cvar suodatin"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:39
+msgid "Input packets/s:"
+msgstr "Vastaanottopaketit /s:"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:34
-msgid "Setting:"
-msgstr "Asetus:"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:45
+msgid "Local latency:"
+msgstr "Paikallinen viive"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:42
-msgid "Value:"
-msgstr "Arvo:"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:50
+msgid "Client UDP port:"
+msgstr "Asiakkaan UDP portti"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:56
-msgid "Description:"
-msgstr "Kuvaus:"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:55
+msgid "Show netgraph"
+msgstr "Näytä verkkograafi"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:26
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:59
 msgid "Client-side movement prediction"
 msgstr "Asiakasohjelman liikkeen ennustus"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:30
-msgid "Show netgraph"
-msgstr "Näytä verkkograafi"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:62
+msgid "Movement error compensation"
+msgstr "Liikkeen virhekompensaatio"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:33
-msgid "Network speed:"
-msgstr "Verkon nopeus:"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:66
+msgid "Downloads:"
+msgstr "Lataukset:"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:35
-msgid "56k"
-msgstr "56k"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:69
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:81
+msgid "Maximum:"
+msgstr "Maksimi:"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:36
-msgid "ISDN"
-msgstr "ISDN"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:73
+msgid "Speed (kB/s):"
+msgstr "Nopeus (kb/s)"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:37
-msgid "Slow ADSL"
-msgstr "Hidas ASL"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:78
+msgid "Framerate:"
+msgstr "Ruudunpäivitysnopeus:"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:38
-msgid "Fast ADSL"
-msgstr "Nopea ADSL"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:83
+msgid "MAXFPS^5 fps"
+msgstr "MAXFPS^5 fps "
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:39
-msgid "Broadband"
-msgstr "Laajakaista"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:84
+msgid "MAXFPS^10 fps"
+msgstr "MAXFPS^10 fps "
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:42
-msgid "Input packets/s:"
-msgstr "Vastaanottopaketit /s:"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:85
+msgid "MAXFPS^20 fps"
+msgstr "MAXFPS^20 fps "
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:46
-msgid "HTTP downloads:"
-msgstr "HTTP lataukset:"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:86
+msgid "MAXFPS^30 fps"
+msgstr "MAXFPS^30 fps "
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:49
-msgid "Downloads:"
-msgstr "Lataukset:"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:87
+msgid "MAXFPS^40 fps"
+msgstr "MAXFPS^40 fps "
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:53
-msgid "Speed (kB/s):"
-msgstr "Nopeus (kb/s)"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:88
+msgid "MAXFPS^50 fps"
+msgstr "MAXFPS^50 fps "
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:57
-msgid "Client UDP port:"
-msgstr "Asiakkaan UDP portti"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:89
+msgid "MAXFPS^60 fps"
+msgstr "MAXFPS^60 fps "
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:90
+msgid "MAXFPS^70 fps"
+msgstr "MAXFPS^70 fps "
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:91
+msgid "MAXFPS^100 fps"
+msgstr "MAXFPS^100 fps "
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:92
+msgid "MAXFPS^125 fps"
+msgstr "MAXFPS^125 fps "
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:93
+msgid "MAXFPS^200 fps"
+msgstr "MAXFPS^200 fps "
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:94
+msgid "MAXFPS^Unlimited"
+msgstr "MAXFPS^Rajaton "
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:98
+msgid "Target:"
+msgstr "Kohde:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:100
+msgid "TRGT^Disabled"
+msgstr "TRGT^Pois päältä"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:101
+msgid "TRGT^30 fps"
+msgstr "TRGT^30 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:102
+msgid "TRGT^40 fps"
+msgstr "TRGT^40 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:103
+msgid "TRGT^50 fps"
+msgstr "TRGT^50 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:104
+msgid "TRGT^60 fps"
+msgstr "TRGT^60 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:105
+msgid "TRGT^100 fps"
+msgstr "TRGT^100 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:106
+msgid "TRGT^125 fps"
+msgstr "TRGT^125 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:107
+msgid "TRGT^200 fps"
+msgstr "TRGT^200 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:111
+msgid "Idle limit:"
+msgstr "Aikaraja"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:113
+msgid "IDLFPS^10 fps"
+msgstr "IDLFPS^10 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:114
+msgid "IDLFPS^20 fps"
+msgstr "IDLFPS^20 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:115
+msgid "IDLFPS^30 fps"
+msgstr "IDLFPS^30 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:116
+msgid "IDLFPS^60 fps"
+msgstr "IDLFPS^60 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:117
+msgid "IDLFPS^Unlimited"
+msgstr "IDLFPS^Rajaton"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:122
+msgid "Show frames per second"
+msgstr "Näytä ruudunpäivitysnopeus (FPS)"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:125
+msgid "Save processing time for other apps"
+msgstr "Jätä laskenta-aikaa muille sovelluksille"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:129
+msgid "Menu tooltips:"
+msgstr "Päävalikon työkaluvihjeet:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:131
+msgid "TLTIP^Disabled"
+msgstr "TLTIP^Pois päältä"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:132
+msgid "TLTIP^Standard"
+msgstr "TLTIP^Vakio"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:133
+msgid "TLTIP^Advanced"
+msgstr "TLTIP^Kehittynyt"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:137
+msgid "Show current time"
+msgstr "Näytä nykyinen kellonaika"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:139
+msgid "Show current date"
+msgstr "Näytä nykyinen päivämäärä"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:141
+msgid "Enable developer mode"
+msgstr "Ota kehittäjätila käyttöön"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:5
+msgid "Advanced settings"
+msgstr "Edistyneet asetukset"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:31
+msgid "Cvar filter:"
+msgstr "Cvar suodatin"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:44
+msgid "Setting:"
+msgstr "Asetus:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:48
+msgid "Type:"
+msgstr "Tyyppi:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:52
+msgid "Value:"
+msgstr "Arvo:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:68
+msgid "Description:"
+msgstr "Kuvaus:"
+
+#: qcsrc/menu/xonotic/dialog_settings_user.c:27
+msgid "Menu skins:"
+msgstr "Päävalikon ulkoasu:"
+
+#: qcsrc/menu/xonotic/dialog_settings_user.c:31
+msgid "Set skin"
+msgstr "Aseta ulkoasu:"
+
+#: qcsrc/menu/xonotic/dialog_settings_user.c:74
+msgid "Set language"
+msgstr "Tekstin kieli:"
+
+#: qcsrc/menu/xonotic/dialog_settings_user.c:79
+msgid "Disable gore effects and harsh language"
+msgstr "Ota ylimitoitettu raakuus ja karski kieli pois käytöstä"
+
+#: qcsrc/menu/xonotic/dialog_settings_user.c:82
+msgid "Allow player statistics to track your client"
+msgstr "Salli pelaajatilastojen seuraavan peliasennustasi"
+
+#: qcsrc/menu/xonotic/dialog_settings_user.c:84
+msgid "Allow player statistics to use your nickname"
+msgstr "Salli pelaajatilastojen käyttävän pelinimeäsi"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:26
 msgid "Resolution:"
@@ -2176,103 +2733,173 @@ msgstr "SZ^Massiivinen"
 msgid "Color depth:"
 msgstr "Värisävy:"
 
+#: qcsrc/menu/xonotic/dialog_settings_video.c:44
+msgid "16bit"
+msgstr "16 bittinen"
+
 #: qcsrc/menu/xonotic/dialog_settings_video.c:45
+msgid "32bit"
+msgstr "32 bittinen"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:48
 msgid "Full screen"
 msgstr "Kokoruutu"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:46
+#: qcsrc/menu/xonotic/dialog_settings_video.c:49
 msgid "Vertical Synchronization"
 msgstr "Pystytahdistus (VSYNC)"
 
-#: 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_settings_video.c:53
+msgid "Anisotropy:"
+msgstr "Anisotropia:"
 
-#: 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_settings_video.c:55
+msgid "ANISO^Disabled"
+msgstr "ANISO^Pois päältä"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:56
-msgid "Vertex Buffer Objects (VBOs)"
-msgstr "Vertex Buffer Object (VBO)"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:66
+msgid "2x"
+msgstr "2x"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:57
+#: qcsrc/menu/xonotic/dialog_settings_video.c:67
+msgid "4x"
+msgstr "4x"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:58
+msgid "8x"
+msgstr "8x"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:59
-msgid "VBO^Off"
-msgstr "VBO^Pois"
+msgid "16x"
+msgstr "16x"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:60
-msgid "Vertices, some Tris (compatible)"
-msgstr "Verteksit, vähän kolmioita (yhteensopivin)"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:62
+msgid "Antialiasing:"
+msgstr "Reunojenpehmennys (Antialiasing):"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:63
-msgid "Vertices"
-msgstr "Verteksit"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:65
+msgid "AA^Disabled"
+msgstr "AA^Pois päältä"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:64
-msgid "Vertices and Triangles"
-msgstr "Verteksit ja kolmiot"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:71
+msgid "High-quality frame buffer"
+msgstr "Korkeanlaatuinen kehyspuskuri"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:67
+#: qcsrc/menu/xonotic/dialog_settings_video.c:76
 msgid "Depth first:"
 msgstr "Syvyyssuuntainen renderöinti:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:69
+#: qcsrc/menu/xonotic/dialog_settings_video.c:78
 msgid "DF^Disabled"
 msgstr "DF^Pois"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:70
+#: qcsrc/menu/xonotic/dialog_settings_video.c:79
 msgid "DF^World"
 msgstr "DF^Maailma"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:71
+#: qcsrc/menu/xonotic/dialog_settings_video.c:80
 msgid "DF^All"
 msgstr "DF^Kaikki"
 
-#: 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_video.c:83
+msgid "Vertex Buffer Objects (VBOs)"
+msgstr "Vertex Buffer Object (VBO)"
 
-#: 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_video.c:86
+msgid "VBO^Off"
+msgstr "VBO^Pois"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:80
+#: qcsrc/menu/xonotic/dialog_settings_video.c:87
+msgid "Vertices, some Tris (compatible)"
+msgstr "Verteksit, vähän kolmioita (yhteensopivin)"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:90
+msgid "Vertices"
+msgstr "Verteksit"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:91
+msgid "Vertices and Triangles"
+msgstr "Verteksit ja kolmiot"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:94
 msgid "Brightness:"
 msgstr "Kirkkaus:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:83
+#: qcsrc/menu/xonotic/dialog_settings_video.c:97
 msgid "Contrast:"
 msgstr "Kontrasti:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:86
+#: qcsrc/menu/xonotic/dialog_settings_video.c:100
 msgid "Gamma:"
 msgstr "Gamma:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:91
+#: qcsrc/menu/xonotic/dialog_settings_video.c:105
 msgid "Contrast boost:"
 msgstr "Kontrastin lisäys:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:96
+#: qcsrc/menu/xonotic/dialog_settings_video.c:110
 msgid "Saturation:"
 msgstr "Kylläisyys:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:102
+#: qcsrc/menu/xonotic/dialog_settings_video.c:116
 msgid "LIT^Ambient:"
 msgstr "LIT^Ympäristö:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:105
+#: qcsrc/menu/xonotic/dialog_settings_video.c:119
 msgid "Intensity:"
 msgstr "Intensiivisyys:"
 
+#: qcsrc/menu/xonotic/dialog_settings_video.c:123
+msgid "Use OpenGL 2.0 shaders (GLSL)"
+msgstr "Käytä OpenGL 2.0 shaders-varjostuksia (GLSL)"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:125
+msgid "Use GLSL to handle color control"
+msgstr "Käytä GLSL:ää värien hallinnassa"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:128
+msgid "Wait for GPU to finish each frame"
+msgstr "Anna näytönohjaimen viimeistellä jokainen ruutu"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:132
+msgid "Psycho coloring (easter egg)"
+msgstr "Psyko-väritys (easter egg)"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:135
+msgid "Trippy vertices (easter egg)"
+msgstr "Oudot kärjet (easter egg)"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:138
+msgid "Flip view horizontally"
+msgstr "Käännä näkymä horisontaalisesti"
+
 #: qcsrc/menu/xonotic/dialog_singleplayer.c:4
 msgid "Singleplayer"
 msgstr "Yksinpeli"
 
-#: qcsrc/menu/xonotic/dialog_singleplayer.c:127
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:116
 msgid "Instant action! (random map with bots)"
 msgstr "Suoraan taisteluun! (satunnainen kartta bottien kera)"
 
-#: qcsrc/menu/xonotic/dialog_singleplayer.c:148
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:137
+msgid "Campaign Difficulty:"
+msgstr "Kampanjan Vaikeusaste:"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:138
+msgid "CSKL^Easy"
+msgstr "CSKL^Helppo"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:139
+msgid "CSKL^Medium"
+msgstr "CSKL^Keskikokoinen"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:140
+msgid "CSKL^Hard"
+msgstr "CSKL^Vaikea"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:142
 msgid "Start Singleplayer!"
 msgstr "Aloita yksinpeli!"
 
@@ -2308,23 +2935,23 @@ msgstr "pinkki"
 msgid "spectate"
 msgstr "seuraa sivusta"
 
-#: qcsrc/menu/xonotic/mainwindow.c:35 qcsrc/menu/xonotic/mainwindow.c:38
+#: qcsrc/menu/xonotic/mainwindow.c:39 qcsrc/menu/xonotic/mainwindow.c:42
 msgid "Do not press this button again!"
 msgstr "Älä paina enää näppäintä!"
 
-#: qcsrc/menu/xonotic/maplist.c:278
+#: qcsrc/menu/xonotic/maplist.c:282
 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/maplist.c:286
+#: qcsrc/menu/xonotic/maplist.c:290
 #, c-format
 msgid "%s's Xonotic Server"
 msgstr "%s Xonotic-palvelin"
 
-#: qcsrc/menu/xonotic/maplist.c:291
+#: qcsrc/menu/xonotic/maplist.c:295
 msgid ""
 "Huh? Can't play this (invalid game type). Refiltering so this won't happen "
 "again.\n"
@@ -2332,7 +2959,11 @@ msgstr ""
 "Höh? Tätä ei voida pelata (epäkelpo pelityyppi). Uudelleensuodatetaan jottei "
 "vastaava enää toistuisi.\n"
 
-#: qcsrc/menu/xonotic/playermodel.c:174
+#: qcsrc/menu/xonotic/playerlist.c:118 qcsrc/menu/xonotic/playerlist.c:128
+msgid "spectator"
+msgstr "katsoja"
+
+#: qcsrc/menu/xonotic/playermodel.c:177
 msgid "<no model found>"
 msgstr "<mallia ei löytynyt>"
 
@@ -2344,23 +2975,23 @@ msgstr "Poista"
 msgid "Bookmark"
 msgstr "Kirjanmerkki"
 
-#: qcsrc/menu/xonotic/serverlist.c:527
+#: qcsrc/menu/xonotic/serverlist.c:548
 msgid "Ping"
 msgstr "Viive"
 
-#: qcsrc/menu/xonotic/serverlist.c:528
+#: qcsrc/menu/xonotic/serverlist.c:549
 msgid "Host name"
 msgstr "Palvelimen nimi"
 
-#: qcsrc/menu/xonotic/serverlist.c:529
+#: qcsrc/menu/xonotic/serverlist.c:550
 msgid "Map"
 msgstr "Kartta"
 
-#: qcsrc/menu/xonotic/serverlist.c:530
+#: qcsrc/menu/xonotic/serverlist.c:551
 msgid "Type"
 msgstr "Tyyppi"
 
-#: qcsrc/menu/xonotic/serverlist.c:531
+#: qcsrc/menu/xonotic/serverlist.c:552
 msgid "Players"
 msgstr "Pelaajat"
 
@@ -2390,25 +3021,25 @@ msgstr "%s dB"
 msgid "%dx%d"
 msgstr "%dx%d"
 
-#: qcsrc/menu/xonotic/util.qc:270
+#: qcsrc/menu/xonotic/util.qc:276
 #, c-format
 msgid "Received HTTP request data for an invalid id %d.\n"
 msgstr "Vastaanotettiin epäkelpo HTTP datapyyntö: %d.\n"
 
-#: qcsrc/menu/xonotic/util.qc:285
+#: qcsrc/menu/xonotic/util.qc:291
 #, c-format
 msgid "error receiving update notification: status is %d\n"
 msgstr "virhe vastaanottaessa päivitystiedotetta: tilanne %d\n"
 
-#: qcsrc/menu/xonotic/util.qc:290
+#: qcsrc/menu/xonotic/util.qc:296
 msgid "error: received HTML instead of an update notification\n"
 msgstr "virhe: vastaanotettiin HTML päivitystiedotteen asemesta\n"
 
-#: qcsrc/menu/xonotic/util.qc:295
+#: qcsrc/menu/xonotic/util.qc:301
 msgid "error: received carriage returns from update notification server\n"
 msgstr "virhe: vastaanotettiin tyhjää dataa päivitystiedotepalvelimelta\n"
 
-#: qcsrc/menu/xonotic/util.qc:316
+#: qcsrc/menu/xonotic/util.qc:322
 #, c-format
 msgid ""
 "Update can be downloaded at:\n"
@@ -2417,22 +3048,22 @@ msgstr ""
 "Päivitys on ladattavissa:\n"
 "%s\n"
 
-#: qcsrc/menu/xonotic/util.qc:337
+#: qcsrc/menu/xonotic/util.qc:351
 msgid "Autogenerating mapinfo for newly added maps..."
 msgstr ""
 "Luodaan automaattisesti karttatietoja vastikään lisätyille kartoille..."
 
-#: qcsrc/menu/xonotic/util.qc:367
+#: qcsrc/menu/xonotic/util.qc:381
 #, c-format
 msgid "^1%s TEST BUILD"
 msgstr "^1%s TESTIVERSIO"
 
-#: qcsrc/menu/xonotic/util.qc:432
+#: qcsrc/menu/xonotic/util.qc:439
 #, c-format
 msgid "Update to %s now!"
 msgstr "Päivitä versioon %s nyt!"
 
-#: qcsrc/menu/xonotic/util.qc:501
+#: qcsrc/menu/xonotic/util.qc:524
 msgid ""
 "^1ERROR: Texture compression is required but not supported.\n"
 "^1Expect visual problems.\n"
@@ -2440,444 +3071,358 @@ msgstr ""
 "^1VIRHE: Tekstuurien pakkaus vaaditaan mutta ei ole tuettuna.\n"
 "^1Grafiikkavirheitä odotettavissa.\n"
 
-#: qcsrc/menu/xonotic/util.qc:523
-msgid "Arena"
-msgstr "Areena (Arena)"
+#: qcsrc/menu/xonotic/util.qc:643
+msgid "Use default"
+msgstr "Käytä perusasetusta"
 
-#: qcsrc/menu/xonotic/util.qc:524
-msgid "Assault"
-msgstr "Rynnäkkö (Assault)"
+#: qcsrc/menu/xonotic/util.qc:663
+msgid "Team Color:"
+msgstr "Joukkueen väri"
 
-#: qcsrc/menu/xonotic/util.qc:525
-msgid "Capture The Flag"
-msgstr "Lipunryöstö (CTF)"
+#: qcsrc/menu/xonotic/util.qh:50
+msgid "Enable panel"
+msgstr "Ota paneeli käyttöön"
 
-#: qcsrc/menu/xonotic/util.qc:526
-msgid "Clan Arena"
-msgstr "Klaaniareena (Clan Arena)"
+#: weapons.qc.tmp:1
+msgid "Rifle"
+msgstr "Rifle"
 
-#: qcsrc/menu/xonotic/util.qc:527
-msgid "Deathmatch"
-msgstr "Mättö (Deathmatch)"
+#: weapons.qc.tmp:2
+msgid "Machine Gun"
+msgstr "Machine Gun"
 
-#: qcsrc/menu/xonotic/util.qc:528
-msgid "Domination"
-msgstr "Hallinta (Domination)"
+#: weapons.qc.tmp:3
+msgid "Rocket Launcher"
+msgstr "Rocket Launcher"
 
-#: qcsrc/menu/xonotic/util.qc:529
-msgid "Freeze Tag"
-msgstr "Pakkashippa (Freeze Tag)"
+#: weapons.qc.tmp:4
+msgid "Port-O-Launch"
+msgstr "Port-O-Launch"
 
-#: qcsrc/menu/xonotic/util.qc:530
-msgid "Keepaway"
-msgstr "Pakomatka (Keepaway)"
+#: weapons.qc.tmp:5
+msgid "Grappling Hook"
+msgstr "Grabbling Hook"
 
-#: qcsrc/menu/xonotic/util.qc:531
-msgid "Key Hunt"
-msgstr "Avaimenetsintä (Key Hunt)"
+#: weapons.qc.tmp:6
+msgid "Electro"
+msgstr "Electro"
 
-#: qcsrc/menu/xonotic/util.qc:532
-msgid "Last Man Standing"
-msgstr "Viimeiseen mieheen (Last Man Standing)"
+#: weapons.qc.tmp:7
+msgid "Laser"
+msgstr "Laser"
 
-#: qcsrc/menu/xonotic/util.qc:533
-msgid "Nexball"
-msgstr "Nexpallo (Nexball)"
+#: weapons.qc.tmp:8
+msgid "Shotgun"
+msgstr "Shotgun"
 
-#: qcsrc/menu/xonotic/util.qc:534
-msgid "Onslaught"
-msgstr "Suurtaistelu (Onslaught)"
+#: weapons.qc.tmp:9
+#, c-format
+msgid "@!#%'n Tuba"
+msgstr "@!#% tuuba"
 
-#: qcsrc/menu/xonotic/util.qc:535
-msgid "Race"
-msgstr "Kilpailu (RACE)"
+#: weapons.qc.tmp:10
+msgid "MinstaNex"
+msgstr "MinstaNex"
 
-#: qcsrc/menu/xonotic/util.qc:536
-msgid "Race CTS"
-msgstr "Kilpailu CTS (RACE CTS)"
+#: weapons.qc.tmp:11
+msgid "Crylink"
+msgstr "Crylink"
 
-#: qcsrc/menu/xonotic/util.qc:537
-msgid "Runematch"
-msgstr "Riimu-ottelu (Runematch)"
+#: weapons.qc.tmp:12
+msgid "Heavy Laser Assault Cannon"
+msgstr "HLAC"
 
-#: qcsrc/menu/xonotic/util.qc:538
-msgid "Team Deathmatch"
-msgstr "Joukkuemättö (Team Deatchmatch)"
+#: weapons.qc.tmp:13
+msgid "Mortar"
+msgstr "Mortar"
 
-#: qcsrc/menu/xonotic/util.qc:557
-#, c-format
-msgid "@!#%'n Tuba Throwing"
-msgstr "@!#% tuubanheitto!"
+#: weapons.qc.tmp:14
+msgid "Hagar"
+msgstr "Hagar"
 
-#: qcsrc/menu/xonotic/util.qc:577 qcsrc/menu/xonotic/util.qc:593
-#: qcsrc/menu/xonotic/util.qc:602 qcsrc/menu/xonotic/util.qc:610
-#: qcsrc/menu/xonotic/util.qc:622
-msgid "Default"
-msgstr "Perusasetus"
+#: weapons.qc.tmp:15
+msgid "T.A.G. Seeker"
+msgstr "T.A.G. Seeker"
 
-#: qcsrc/menu/xonotic/util.qc:588
-msgid "Use default"
-msgstr "Käytä perusasetusta"
+#: weapons.qc.tmp:16
+msgid "Fireball"
+msgstr "Fireball"
 
-#: qcsrc/menu/xonotic/util.qc:608
-msgid "Team Color:"
-msgstr "Joukkueen väri"
+#: weapons.qc.tmp:17
+msgid "Mine Layer"
+msgstr "Mine Layer"
 
-#: qcsrc/menu/xonotic/util.qh:47
-msgid "Enable panel"
-msgstr "Ota paneeli käyttöön"
+#: weapons.qc.tmp:18
+msgid "Nex"
+msgstr "Nex"
 
-#: qcsrc/server/w_crylink.qc:2
-msgid "Crylink"
-msgstr "Crylink"
+#~ msgid "%d/%d, %d free player slots"
+#~ msgstr "%d/%d, %d vapaata pelaajapaikkaa"
 
-#: qcsrc/server/w_crylink.qc:666
-#, c-format
-msgid "%s succeeded at self-destructing themself with the Crylink"
-msgstr "%s hautoi itsetuhoisia ajatuksia Crylink kädessä"
+#~ msgid "Gameplay:"
+#~ msgstr "Pelitila:"
 
-#: qcsrc/server/w_crylink.qc:671
-#, c-format
-msgid "%s could not hide from %s's Crylink"
-msgstr "%s ei kyennyt pakenemaan pelaajan %s Crylinkkiä"
+#~ msgid "Ping:"
+#~ msgstr "Viive:"
 
-#: qcsrc/server/w_crylink.qc:673
-#, c-format
-msgid "%s was too close to %s's Crylink"
-msgstr "%s oli liian lähellä pelaajan %s ampumarataa"
+#~ msgid "CA:"
+#~ msgstr "CA:"
 
-#: qcsrc/server/w_crylink.qc:675
-#, c-format
-msgid "%s took a close look at %s's Crylink"
-msgstr "%s pääsi tutustumaan lähemmin pelaajan %s kauniiseen Crylinkkiin"
+#~ msgid "View bobbing:"
+#~ msgstr "Näytä huojunta:"
 
-#: qcsrc/server/w_electro.qc:2
-msgid "Electro"
-msgstr "Electro"
+#~ msgid "Zoom speed:"
+#~ msgstr "Tarkennuksen nopeus:"
 
-#: qcsrc/server/w_electro.qc:574
-#, c-format
-msgid "%s could not remember where they put plasma"
-msgstr "%s ei sattunut muistamaan minne se plasma oikein kuuluikaan"
+#~ msgid "Weapon settings..."
+#~ msgstr "Aseiden asetukset..."
 
-#: qcsrc/server/w_electro.qc:576
-#, c-format
-msgid "%s played with plasma"
-msgstr "%s leikki plasmalla, ei hyvä"
+#~ msgid "Size:"
+#~ msgstr "Koko:"
 
-#: qcsrc/server/w_electro.qc:583
-#, c-format
-msgid "%s just noticed %s's blue ball"
-msgstr "%s näki pelaajan %s sinisen pallon"
+#~ msgid "HTST^None"
+#~ msgstr "HTST^Ei mitään."
 
-#: qcsrc/server/w_electro.qc:585
-#, c-format
-msgid "%s got in touch with %s's blue ball"
-msgstr "%s pääsi tutustumaan pelaajan %s siniseen palloon"
+#~ msgid "Waypoints setup..."
+#~ msgstr "Välimatkojen asetukset..."
 
-#: qcsrc/server/w_electro.qc:590
-#, c-format
-msgid "%s felt the electrifying air of %s's combo"
-msgstr "%s tunsi sähköä ilmassa pelaajan %s tulituksen jälkeen"
+#~ msgid "Waypoint scale:"
+#~ msgstr "Välietappien skaala:"
 
-#: qcsrc/server/w_electro.qc:592
-#, c-format
-msgid "%s got too close to %s's blue beam"
-msgstr "%s joutui liian lähelle pelaajan %s sinistä sädettä"
+#~ msgid "Show names:"
+#~ msgstr "Näytä nimet:"
 
-#: qcsrc/server/w_electro.qc:594
-#, c-format
-msgid "%s was blasted by %s's blue beam"
-msgstr "%s posahti pelaajan %s siniseen säteeseen"
+#~ msgid "Teammates"
+#~ msgstr "Oma joukkue"
 
-#: qcsrc/server/w_fireball.qc:2
-msgid "Fireball"
-msgstr "Fireball"
+#~ msgid "All players"
+#~ msgstr "Kaikki pelaajat"
 
-#: qcsrc/server/w_fireball.qc:417
-#, c-format
-msgid "%s forgot about some firemine"
-msgstr "%s unohti tulimiinansa"
+#~ msgid "Spatial voices:"
+#~ msgstr "Tilanneäänet:"
 
-#: qcsrc/server/w_fireball.qc:419 qcsrc/server/w_hlac.qc:240
-#, c-format
-msgid "%s should have used a smaller gun"
-msgstr "%s olisi pitänyt käyttää pienempää asetta"
+#~ msgid "VOCS^None"
+#~ msgstr "VOCS^Ei mitään"
 
-#: qcsrc/server/w_fireball.qc:426
-#, c-format
-msgid "%s tried to catch %s's firemine"
-msgstr "%s koetti napata pelaajan %s tulimiinan"
+#~ msgid "VOCS^Taunts"
+#~ msgstr "VOCS^Huudahdukset"
 
-#: qcsrc/server/w_fireball.qc:428
-#, c-format
-msgid "%s fatefully ignored %s's firemine"
-msgstr "%s kohtalokkaasti tutustui pelaajan %s tulimiinaan"
+#~ msgid "VOCS^All"
+#~ msgstr "VOCS^Kaikki"
 
-#: qcsrc/server/w_fireball.qc:435
-#, c-format
-msgid "%s could not hide from %s's fireball"
-msgstr "%s ei kyennyt pakenemaan pelaajan %s tulipalloa"
+#~ msgid "Taunt range:"
+#~ msgstr "Huudahduksen kantama"
 
-#: qcsrc/server/w_fireball.qc:437
-#, c-format
-msgid "%s saw the pretty lights of %s's fireball"
-msgstr "&s näki kauniita valoja pelaajan %s tulipallosta"
+#~ msgid "RNG^Very short"
+#~ msgstr "RNG^Hyvin lyhyt"
 
-#: qcsrc/server/w_fireball.qc:440
-#, c-format
-msgid "%s got too close to %s's fireball"
-msgstr "%s joutui turhan lähelle pelaajan %s tulipalloa"
+#~ msgid "RNG^Short"
+#~ msgstr "RNG^Lyhyt"
 
-#: qcsrc/server/w_fireball.qc:442
-#, c-format
-msgid "%s tasted %s's fireball"
-msgstr "%s maistoi pelaajan %s tulipalloa"
+#~ msgid "RNG^Normal"
+#~ msgstr "RNG^Normaali"
 
-#: qcsrc/server/w_grenadelauncher.qc:2
-msgid "Mortar"
-msgstr "Mortar"
+#~ msgid "RNG^Long"
+#~ msgstr "RNG^Pitkä"
 
-#: qcsrc/server/w_grenadelauncher.qc:383
-#, c-format
-msgid "%s tried out his own grenade"
-msgstr "%s testasi räjähtääkö oma kranaatti"
+#~ msgid "RNG^Full"
+#~ msgstr "RNG^Täysi"
 
-#: qcsrc/server/w_grenadelauncher.qc:385
-#, c-format
-msgid "%s detonated"
-msgstr "%s pössähti"
+#~ msgid "WRN^None"
+#~ msgstr "WRN^Ei mitään"
 
-#: qcsrc/server/w_grenadelauncher.qc:391
-#, c-format
-msgid "%s didn't see %s's grenade"
-msgstr "%s ei nähnyt pelaajan %s kranaattia"
+#~ msgid "Flash blend approximation"
+#~ msgstr "Yksinkertaiset valot"
 
-#: qcsrc/server/w_grenadelauncher.qc:393
-#, c-format
-msgid "%s almost dodged %s's grenade"
-msgstr "%s väisti melkein pelaajan %s kranaatin"
+#~ msgid "High Dynamic Range (HDR)"
+#~ msgstr "HDR"
 
-#: qcsrc/server/w_grenadelauncher.qc:395
-#, c-format
-msgid "%s ate %s's grenade"
-msgstr "%s söi pelaajan %s kranaatin"
+#~ msgid "Blur and sharpen postprocessing"
+#~ msgstr "Sumenna ja terävöitä jälkikäsittelyä"
 
-#: qcsrc/server/w_hagar.qc:2
-msgid "Hagar"
-msgstr "Hagar"
+#~ msgid "UI mouse speed:"
+#~ msgstr "Käyttöliittymän hiiren nopeus:"
 
-#: qcsrc/server/w_hagar.qc:395 qcsrc/server/w_seeker.qc:655
-#, c-format
-msgid "%s played with tiny rockets"
-msgstr "%s leikki pienien rakettien kanssa"
+#~ msgid "Mouse filter"
+#~ msgstr "Hiiren suodatin"
 
-#: qcsrc/server/w_hagar.qc:399
-#, c-format
-msgid "%s hoped %s's missiles wouldn't bounce"
-msgstr "%s toivoi ettei pelaajan %s raketit olisi kimmonneet"
+#~ msgid "Minimize input latency"
+#~ msgstr "Minimoi syötteen viive"
 
-#: qcsrc/server/w_hagar.qc:401 qcsrc/server/w_seeker.qc:661
-#, c-format
-msgid "%s was pummeled by %s"
-msgstr "%s joutui pelaajan %s nuijimaksi"
+#~ msgid "Network speed:"
+#~ msgstr "Verkon nopeus:"
 
-#: qcsrc/server/w_hlac.qc:2
-msgid "Heavy Laser Assault Cannon"
-msgstr "HLAC"
+#~ msgid "HTTP downloads:"
+#~ msgstr "HTTP lataukset:"
 
-#: qcsrc/server/w_hlac.qc:242
-#, c-format
-msgid "%s was cut down by %s"
-msgstr "%s joutui pelaajan %s niittämäksi"
+#~ msgid "Disable multithreaded OpenGL"
+#~ msgstr "Ota monisäkeinen OpenGL pois päältä"
 
-#: qcsrc/server/w_hook.qc:2
-msgid "Grappling Hook"
-msgstr "Grabbling Hook"
+#~ msgid "%s succeeded at self-destructing themself with the Crylink"
+#~ msgstr "%s hautoi itsetuhoisia ajatuksia Crylink kädessä"
 
-#: qcsrc/server/w_hook.qc:266 qcsrc/server/w_porto.qc:296
-#, c-format
-msgid "%s did the impossible"
-msgstr "%s teki mahdottomat"
+#~ msgid "%s could not hide from %s's Crylink"
+#~ msgstr "%s ei kyennyt pakenemaan pelaajan %s Crylinkkiä"
 
-#: qcsrc/server/w_hook.qc:268
-#, c-format
-msgid "%s has run into %s's gravity bomb"
-msgstr "%s juoksi pelaajan %s pommiin"
+#~ msgid "%s was too close to %s's Crylink"
+#~ msgstr "%s oli liian lähellä pelaajan %s ampumarataa"
 
-#: qcsrc/server/w_laser.qc:2
-msgid "Laser"
-msgstr "Laser"
+#~ msgid "%s took a close look at %s's Crylink"
+#~ msgstr "%s pääsi tutustumaan lähemmin pelaajan %s kauniiseen Crylinkkiin"
 
-#: qcsrc/server/w_laser.qc:311
-#, c-format
-msgid "%s lasered themself to hell"
-msgstr "%s lähetti itsensä laserilla helvettiin"
+#~ msgid "%s could not remember where they put plasma"
+#~ msgstr "%s ei sattunut muistamaan minne se plasma oikein kuuluikaan"
 
-#: qcsrc/server/w_laser.qc:315
-#, c-format
-msgid "%s was cut in half by %s's gauntlet"
-msgstr "%s leikkaantui kahtia pelaajan %s taisteluhansikkaaseen"
+#~ msgid "%s played with plasma"
+#~ msgstr "%s leikki plasmalla, ei hyvä"
 
-#: qcsrc/server/w_laser.qc:317
-#, c-format
-msgid "%s was lasered to death by %s"
-msgstr "%s kuoli pelaajan %s laseriin"
+#~ msgid "%s just noticed %s's blue ball"
+#~ msgstr "%s näki pelaajan %s sinisen pallon"
 
-#: qcsrc/server/w_minelayer.qc:2
-msgid "Mine Layer"
-msgstr "Mine Layer"
+#~ msgid "%s got in touch with %s's blue ball"
+#~ msgstr "%s pääsi tutustumaan pelaajan %s siniseen palloon"
 
-#: qcsrc/server/w_minelayer.qc:523 qcsrc/server/w_rocketlauncher.qc:501
-#, c-format
-msgid "%s exploded"
-msgstr "%s räjähti"
+#~ msgid "%s felt the electrifying air of %s's combo"
+#~ msgstr "%s tunsi sähköä ilmassa pelaajan %s tulituksen jälkeen"
 
-#: qcsrc/server/w_minelayer.qc:527
-#, c-format
-msgid "%s got too close to %s's mine"
-msgstr "%s joutui liian lähelle pelaajan %s miinaa"
+#~ msgid "%s got too close to %s's blue beam"
+#~ msgstr "%s joutui liian lähelle pelaajan %s sinistä sädettä"
 
-#: qcsrc/server/w_minelayer.qc:529
-#, c-format
-msgid "%s almost dodged %s's mine"
-msgstr "%s miltein väisti pelaajan %s miinan"
+#~ msgid "%s was blasted by %s's blue beam"
+#~ msgstr "%s posahti pelaajan %s siniseen säteeseen"
 
-#: qcsrc/server/w_minelayer.qc:531
-#, c-format
-msgid "%s stepped on %s's mine"
-msgstr "%s astui pelaajan %s miinaan"
+#~ msgid "%s forgot about some firemine"
+#~ msgstr "%s unohti tulimiinansa"
 
-#: qcsrc/server/w_minstanex.qc:2
-msgid "MinstaNex"
-msgstr "MinstaNex"
+#~ msgid "%s should have used a smaller gun"
+#~ msgstr "%s olisi pitänyt käyttää pienempää asetta"
 
-#: qcsrc/server/w_minstanex.qc:293 qcsrc/server/w_nex.qc:253
-#: qcsrc/server/w_shotgun.qc:215 qcsrc/server/w_uzi.qc:317
-#, c-format
-msgid "%s is now thinking with portals"
-msgstr "%s kokee portaalit"
+#~ msgid "%s tried to catch %s's firemine"
+#~ msgstr "%s koetti napata pelaajan %s tulimiinan"
 
-#: qcsrc/server/w_minstanex.qc:295 qcsrc/server/w_nex.qc:255
-#, c-format
-msgid "%s has been vaporized by %s"
-msgstr "%s höyrystyi pelaajan %s toimesta"
+#~ msgid "%s fatefully ignored %s's firemine"
+#~ msgstr "%s kohtalokkaasti tutustui pelaajan %s tulimiinaan"
 
-#: qcsrc/server/w_nex.qc:2
-msgid "Nex"
-msgstr "Nex"
+#~ msgid "%s could not hide from %s's fireball"
+#~ msgstr "%s ei kyennyt pakenemaan pelaajan %s tulipalloa"
 
-#: qcsrc/server/w_porto.qc:2
-msgid "Port-O-Launch"
-msgstr "Port-O-Launch"
+#~ msgid "%s saw the pretty lights of %s's fireball"
+#~ msgstr "&s näki kauniita valoja pelaajan %s tulipallosta"
 
-#: qcsrc/server/w_porto.qc:298
-#, c-format
-msgid "%s felt %s doing the impossible to him"
-msgstr "%s tunsi kuinka pelaaja %s teki hänelle mahdottoman tempun"
+#~ msgid "%s got too close to %s's fireball"
+#~ msgstr "%s joutui turhan lähelle pelaajan %s tulipalloa"
 
-#: qcsrc/server/w_rifle.qc:2
-msgid "Rifle"
-msgstr "Rifle"
+#~ msgid "%s tasted %s's fireball"
+#~ msgstr "%s maistoi pelaajan %s tulipalloa"
 
-#: qcsrc/server/w_rifle.qc:233
-#, c-format
-msgid "%s shot themself automatically"
-msgstr "%s ampui itsensä täysin omatoimisesti"
+#~ msgid "%s tried out his own grenade"
+#~ msgstr "%s testasi räjähtääkö oma kranaatti"
 
-#: qcsrc/server/w_rifle.qc:235
-#, c-format
-msgid "%s sniped themself somehow"
-msgstr "%s onnistui jotenkin ampumaan omaan jalkaansa"
+#~ msgid "%s detonated"
+#~ msgstr "%s pössähti"
 
-#: qcsrc/server/w_rifle.qc:242
-#, c-format
-msgid "%s failed to hide from %s's bullet hail"
-msgstr "%s ei kyennyt pakenemaan pelaajan %s luotisadetta"
+#~ msgid "%s didn't see %s's grenade"
+#~ msgstr "%s ei nähnyt pelaajan %s kranaattia"
 
-#: qcsrc/server/w_rifle.qc:244
-#, c-format
-msgid "%s died in %s's bullet hail"
-msgstr "%s kuoli pelaajan %s luotisateeseen"
+#~ msgid "%s almost dodged %s's grenade"
+#~ msgstr "%s väisti melkein pelaajan %s kranaatin"
 
-#: qcsrc/server/w_rifle.qc:251
-#, c-format
-msgid "%s failed to hide from %s's rifle"
-msgstr "%s ei kyennyt piiloutumaan pelaajan %s kivääriä"
+#~ msgid "%s ate %s's grenade"
+#~ msgstr "%s söi pelaajan %s kranaatin"
 
-#: qcsrc/server/w_rifle.qc:256
-#, c-format
-msgid "%s got hit in the head by %s"
-msgstr "%s sai päähänsä reiän pelaajan %s toimesta"
+#~ msgid "%s played with tiny rockets"
+#~ msgstr "%s leikki pienien rakettien kanssa"
 
-#: qcsrc/server/w_rifle.qc:258 qcsrc/server/w_uzi.qc:321
-#, c-format
-msgid "%s was sniped by %s"
-msgstr "%s ammuttiin alas, kuolonlaukauksen tarjosi %s"
+#~ msgid "%s hoped %s's missiles wouldn't bounce"
+#~ msgstr "%s toivoi ettei pelaajan %s raketit olisi kimmonneet"
 
-#: qcsrc/server/w_rocketlauncher.qc:2
-msgid "Rocket Launcher"
-msgstr "Rocket Launcher"
+#~ msgid "%s was pummeled by %s"
+#~ msgstr "%s joutui pelaajan %s nuijimaksi"
 
-#: qcsrc/server/w_rocketlauncher.qc:505
-#, c-format
-msgid "%s got too close to %s's rocket"
-msgstr "%s joutui liian lähelle pelaajan %s rakettia"
+#~ msgid "%s was cut down by %s"
+#~ msgstr "%s joutui pelaajan %s niittämäksi"
 
-#: qcsrc/server/w_rocketlauncher.qc:507
-#, c-format
-msgid "%s almost dodged %s's rocket"
-msgstr "%s miltein väisti pelaajan %s raketin"
+#~ msgid "%s did the impossible"
+#~ msgstr "%s teki mahdottomat"
 
-#: qcsrc/server/w_rocketlauncher.qc:509
-#, c-format
-msgid "%s ate %s's rocket"
-msgstr "%s söi pelaajan %s raketin"
+#~ msgid "%s has run into %s's gravity bomb"
+#~ msgstr "%s juoksi pelaajan %s pommiin"
 
-#: qcsrc/server/w_seeker.qc:2
-msgid "T.A.G. Seeker"
-msgstr "T.A.G. Seeker"
+#~ msgid "%s lasered themself to hell"
+#~ msgstr "%s lähetti itsensä laserilla helvettiin"
 
-#: qcsrc/server/w_seeker.qc:659
-#, c-format
-msgid "%s was tagged by %s"
-msgstr "%s joutui pelaajan %s leimaamaksi ja tuhoamaksi"
+#~ msgid "%s was cut in half by %s's gauntlet"
+#~ msgstr "%s leikkaantui kahtia pelaajan %s taisteluhansikkaaseen"
 
-#: qcsrc/server/w_shotgun.qc:2
-msgid "Shotgun"
-msgstr "Shotgun"
+#~ msgid "%s was lasered to death by %s"
+#~ msgstr "%s kuoli pelaajan %s laseriin"
 
-#: qcsrc/server/w_shotgun.qc:219
-#, c-format
-msgid "%2$s ^7slapped %1$s ^7around a bit with a large ^2shotgun"
-msgstr "%2$s ^7murjoi pelaajaa %1$s ^2haulikon tylpällä päällä"
+#~ msgid "%s exploded"
+#~ msgstr "%s räjähti"
 
-#: qcsrc/server/w_shotgun.qc:221
-#, c-format
-msgid "%s was gunned by %s"
-msgstr "%s ammuttiin alas pelaajan %s toimesta"
+#~ msgid "%s got too close to %s's mine"
+#~ msgstr "%s joutui liian lähelle pelaajan %s miinaa"
 
-#: qcsrc/server/w_tuba.qc:2
-#, c-format
-msgid "@!#%'n Tuba"
-msgstr "@!#% tuuba"
+#~ msgid "%s almost dodged %s's mine"
+#~ msgstr "%s miltein väisti pelaajan %s miinan"
 
-#: qcsrc/server/w_tuba.qc:252
-#, c-format
-msgid "%s hurt his own ears with the @!#%%'n Tuba"
-msgstr "%s tärykalvot räjähti, kun hän soitteli @!#%% tuubaa"
+#~ msgid "%s stepped on %s's mine"
+#~ msgstr "%s astui pelaajan %s miinaan"
 
-#: qcsrc/server/w_tuba.qc:256
-#, c-format
-msgid "%s died of %s's great playing on the @!#%%'n Tuba"
-msgstr ""
-"%s kuoli ihastuksesta kuullessaan pelaajan %s kaunista @!#%% tuubansoittoa"
+#~ msgid "%s is now thinking with portals"
+#~ msgstr "%s kokee portaalit"
 
-#: qcsrc/server/w_uzi.qc:2
-msgid "Machine Gun"
-msgstr "Machine Gun"
+#~ msgid "%s has been vaporized by %s"
+#~ msgstr "%s höyrystyi pelaajan %s toimesta"
 
-#: qcsrc/server/w_uzi.qc:323
-#, c-format
-msgid "%s was riddled full of holes by %s"
-msgstr "%s sai muutaman uuden ilmanvaihtoreiän, kun %s tarjosi niitä"
+#~ msgid "%s felt %s doing the impossible to him"
+#~ msgstr "%s tunsi kuinka pelaaja %s teki hänelle mahdottoman tempun"
+
+#~ msgid "%s shot themself automatically"
+#~ msgstr "%s ampui itsensä täysin omatoimisesti"
+
+#~ msgid "%s sniped themself somehow"
+#~ msgstr "%s onnistui jotenkin ampumaan omaan jalkaansa"
+
+#~ msgid "%s failed to hide from %s's bullet hail"
+#~ msgstr "%s ei kyennyt pakenemaan pelaajan %s luotisadetta"
+
+#~ msgid "%s died in %s's bullet hail"
+#~ msgstr "%s kuoli pelaajan %s luotisateeseen"
+
+#~ msgid "%s failed to hide from %s's rifle"
+#~ msgstr "%s ei kyennyt piiloutumaan pelaajan %s kivääriä"
+
+#~ msgid "%s got hit in the head by %s"
+#~ msgstr "%s sai päähänsä reiän pelaajan %s toimesta"
+
+#~ msgid "%s was sniped by %s"
+#~ msgstr "%s ammuttiin alas, kuolonlaukauksen tarjosi %s"
+
+#~ msgid "%s got too close to %s's rocket"
+#~ msgstr "%s joutui liian lähelle pelaajan %s rakettia"
+
+#~ msgid "%s almost dodged %s's rocket"
+#~ msgstr "%s miltein väisti pelaajan %s raketin"
+
+#~ msgid "%s ate %s's rocket"
+#~ msgstr "%s söi pelaajan %s raketin"
+
+#~ msgid "%s was tagged by %s"
+#~ msgstr "%s joutui pelaajan %s leimaamaksi ja tuhoamaksi"
+
+#~ msgid "%2$s ^7slapped %1$s ^7around a bit with a large ^2shotgun"
+#~ msgstr "%2$s ^7murjoi pelaajaa %1$s ^2haulikon tylpällä päällä"
+
+#~ msgid "%s was gunned by %s"
+#~ msgstr "%s ammuttiin alas pelaajan %s toimesta"
+
+#~ msgid "%s hurt his own ears with the @!#%%'n Tuba"
+#~ msgstr "%s tärykalvot räjähti, kun hän soitteli @!#%% tuubaa"
+
+#~ msgid "%s died of %s's great playing on the @!#%%'n Tuba"
+#~ msgstr ""
+#~ "%s kuoli ihastuksesta kuullessaan pelaajan %s kaunista @!#%% tuubansoittoa"
+
+#~ msgid "%s was riddled full of holes by %s"
+#~ msgstr "%s sai muutaman uuden ilmanvaihtoreiän, kun %s tarjosi niitä"
index 401d25cef3aedef20f498ecc48670732a33c389e..dfe2169a48ce1cd2ad341474b94aad8981500d03 100644 (file)
@@ -1,15 +1,15 @@
 # Xonotic French Translation.
-# Copyright (C) 2011
+# Copyright (C) 2012
 # This file is distributed under the same license as the PACKAGE package.
 #
-# Calinou <hugohachel@gmail.com>, 2011.
 # Maxime Paradis <taximus.micro@gmail.com>, 2011.
+# Calinou <calinou9999@gmail.com>, 2012.
 msgid ""
 msgstr ""
-"Project-Id-Version: Xonotic 0.1preview\n"
+"Project-Id-Version: Xonotic 0.5.0\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2012-01-26 12:24+0100\n"
-"PO-Revision-Date: 2011-08-23 18:51-0400\n"
+"PO-Revision-Date: 2012-02-23 11:20+0100\n"
 "Last-Translator: Calinou <hugohachel@gmail.com>\n"
 "Language-Team: \n"
 "Language: fr\n"
@@ -58,9 +58,8 @@ msgid "Team Deathmatch"
 msgstr "Match à Mort Équipe"
 
 #: qcsrc/common/mapinfo.qh:57
-#, fuzzy
 msgid "Capture the Flag"
-msgstr "Capture Du Drapeau"
+msgstr "Capture du Drapeau"
 
 #: qcsrc/common/mapinfo.qh:60
 msgid "Clan Arena"
@@ -228,18 +227,20 @@ msgstr "Langue écran:"
 #: qcsrc/menu/xonotic/dialog_firstrun.c:77
 msgid "Allow player statistics to use your nickname at stats.xonotic.org?"
 msgstr ""
+"Autoriser les statistiques de joueur à utiliser votre pseudonyme sur stats."
+"xonotic.org ?"
 
 #: qcsrc/menu/xonotic/dialog_firstrun.c:81
 msgid "ALWU2N^Yes"
-msgstr ""
+msgstr "ALWU2N^Oui"
 
 #: qcsrc/menu/xonotic/dialog_firstrun.c:82
 msgid "ALWU2N^No"
-msgstr ""
+msgstr "ALWU2N^Non"
 
 #: qcsrc/menu/xonotic/dialog_firstrun.c:83
 msgid "ALWU2N^Undecided"
-msgstr ""
+msgstr "ALWU2N^Non décidé"
 
 #: qcsrc/menu/xonotic/dialog_firstrun.c:87
 msgid "Save settings"
@@ -698,9 +699,8 @@ msgid "Weapon icons:"
 msgstr "Icônes d'armes:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:45
-#, fuzzy
 msgid "Show only owned weapons"
-msgstr "Montrer les Waypoints de drapeau"
+msgstr "Ne montrer que les armes possédées"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:48
 msgid "Show weapon ID as:"
@@ -1131,7 +1131,7 @@ msgstr "Roquettes volantes"
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:76
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:210
 msgid "Invincible Projectiles"
-msgstr ""
+msgstr "Projectiles Invincibles"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:80
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:272
@@ -1184,12 +1184,11 @@ msgstr "Jet pack"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:100
 msgid "No powerups"
-msgstr ""
+msgstr "Pas de bonus"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:102
-#, fuzzy
 msgid "Powerups"
-msgstr "Panneau des Pouvoirs"
+msgstr "Pouvoirs"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:104
 msgid "MUT^None"
@@ -1233,7 +1232,6 @@ msgid "Demo"
 msgstr "Vidéo"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:28
-#, fuzzy
 msgid "Automatically record demos while playing"
 msgstr "Auto-enregistrement des Vidéos"
 
@@ -1301,7 +1299,7 @@ msgstr "N/A"
 #: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:179
 #, c-format
 msgid "%d/%d"
-msgstr ""
+msgstr "%d/%d"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:193
 #: qcsrc/menu/xonotic/util.qc:632 qcsrc/menu/xonotic/util.qc:648
@@ -1311,71 +1309,59 @@ msgid "Default"
 msgstr "Par défaut"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:200
-#, fuzzy, c-format
+#, c-format
 msgid "%d modified"
-msgstr "paramètres modifiés: %d"
+msgstr "%d modifié"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:200
-#, fuzzy
 msgid "Official"
-msgstr "Paramètres Officiels"
+msgstr "Officiel"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:208
-#, fuzzy
 msgid "N/A (auth library missing, can't connect)"
-msgstr "N/A (ne peut pas se connecter)"
+msgstr "N/A (librairie d'authentification manquante, ne peut pas se connecter)"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:210
 msgid "N/A (auth library missing)"
-msgstr ""
+msgstr "N/A (librairie d'authentification manquante)"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:216
-#, fuzzy
 msgid "Not supported (can't connect)"
-msgstr "non supporté (ne peut pas se connecter)"
+msgstr "Non supporté (ne peut pas se connecter)"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:218
-#, fuzzy
 msgid "Not supported (won't encrypt)"
-msgstr "non supporté (pas de cryptage)"
+msgstr "Non supporté (pas de chiffrement)"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:222
-#, fuzzy
 msgid "Supported (will encrypt)"
-msgstr "supporté (cryptage)"
+msgstr "Supporté (chiffrement)"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:224
-#, fuzzy
 msgid "Supported (won't encrypt)"
-msgstr "supporté (pas de cryptage)"
+msgstr "Supporté (pas de chiffrement)"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:228
-#, fuzzy
 msgid "Requested (will encrypt)"
-msgstr "demandé (cryptage)"
+msgstr "Demandé (chiffrement)"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:230
-#, fuzzy
 msgid "Requested (won't encrypt)"
-msgstr "demandé (pas de cryptage)"
+msgstr "Demandé (pas de cryptage)"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:234
-#, fuzzy
 msgid "Required (can't connect)"
-msgstr "nécessaire (ne peut pas se connecter)"
+msgstr "Nécessaire (ne peut pas se connecter)"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:236
-#, fuzzy
 msgid "Required (will encrypt)"
-msgstr "nécessaire (cryptage)"
+msgstr "Nécessaire (chiffrement)"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:256
-#, fuzzy
 msgid "Hostname:"
-msgstr "Nom d'Hôte"
+msgstr "Nom d'Hôte:"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:270
-#, fuzzy
 msgid "Gametype:"
 msgstr "Mode de jeu:"
 
@@ -1389,70 +1375,65 @@ msgstr "Modification:"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:285
 msgid "Version:"
-msgstr "Version:"
+msgstr "Version :"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:290
-#, fuzzy
 msgid "Settings:"
-msgstr "Préférences"
+msgstr "Préférences :"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:297
 #: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:329
 msgid "Players:"
-msgstr "Joueurs:"
+msgstr "Joueurs :"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:302
 msgid "Bots:"
-msgstr "Robots:"
+msgstr "Robots :"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:307
-#, fuzzy
 msgid "Free slots:"
-msgstr "Nombre de joueurs max.:"
+msgstr "Places libres :"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:313
 msgid "Encryption:"
-msgstr "Cryptage:"
+msgstr "Chiffrement :"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:318
 msgid "ID:"
-msgstr ""
+msgstr "ID :"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:323
 msgid "Key:"
-msgstr "Clé:"
+msgstr "Clé :"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:60
 #: qcsrc/menu/xonotic/dialog_sandboxtools.c:19
 msgid "Model:"
-msgstr "Personnage:"
+msgstr "Personnage :"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:88
-#, fuzzy
 msgid "No crosshair"
-msgstr "Viseur:"
+msgstr "Pas de viseur"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:90
-#, fuzzy
 msgid "Per weapon crosshair"
-msgstr "Par arme"
+msgstr "Viseur par arme"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:93
-#, fuzzy
 msgid "Custom crosshair"
-msgstr "Viseur:"
+msgstr "Viseur perso."
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:112
 msgid "Crosshair size:"
-msgstr "Taille viseur:"
+msgstr "Taille viseur :"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:117
 msgid "Crosshair alpha:"
-msgstr "Opacité viseur:"
+msgstr "Opacité viseur :"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:123
 msgid "Crosshair color:"
-msgstr "Couleur viseur:"
+msgstr "Couleur viseur :"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:125
 msgid "Per weapon"
@@ -1468,21 +1449,18 @@ msgid "Custom"
 msgstr "Personnalisé"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:139
-#, fuzzy
 msgid "Other crosshair settings"
-msgstr "Paramètres match:"
+msgstr "Autres paramètres viseur"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:147
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:6
-#, fuzzy
 msgid "Model settings"
-msgstr "Sauvegarder"
+msgstr "Paramètres modèle"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:153
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:6
-#, fuzzy
 msgid "View settings"
-msgstr "Sauvegarder"
+msgstr "Voir les paramètres"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:159
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:6
@@ -1491,9 +1469,8 @@ msgstr "Paramètres d'armes"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:169
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:6
-#, fuzzy
 msgid "HUD settings"
-msgstr "Sauvegarder"
+msgstr "Paramètres interface"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:175
 #: qcsrc/menu/xonotic/dialog_settings_audio.c:203
@@ -1505,96 +1482,82 @@ msgid "Apply immediately"
 msgstr "Appliquer maintenant"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:6
-#, fuzzy
 msgid "Crosshair settings"
-msgstr "Taille viseur:"
+msgstr "Paramètres viseur"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:28
-#, fuzzy
 msgid "Enable center crosshair dot"
 msgstr "Activer point central"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:31
-#, fuzzy
 msgid "Dot size:"
-msgstr "Taille du Chat:"
+msgstr "Taille du point :"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:36
-#, fuzzy
 msgid "Dot alpha:"
-msgstr "Opacité Waypoints:"
+msgstr "Opacité point :"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:41
-#, fuzzy
 msgid "Dot color:"
-msgstr "Couleur d'équipe:"
+msgstr "Couleur du point :"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:43
-#, fuzzy
 msgid "Use normal crosshair color"
-msgstr "Couleur viseur:"
+msgstr "Utiliser couleur viseur normale"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:54
-#, fuzzy
 msgid "Crosshair animations:"
-msgstr "Opacité viseur:"
+msgstr "Animations viseur :"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:57
 msgid "Smooth effects of crosshairs"
-msgstr ""
+msgstr "Adoucir les effets des viseurs"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:61
 msgid "Use rings to indicate weapon status"
-msgstr ""
+msgstr "Util. des anneaux pour statut des armes"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:67
-#, fuzzy
 msgid "Hit testing:"
 msgstr "Détection toucher:"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:69
-#, fuzzy
 msgid "HTTST^Disabled"
-msgstr "Désactivé"
+msgstr "HTTST^Désactivé"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:70
-#, fuzzy
 msgid "HTTST^TrueAim"
-msgstr "TrueAim"
+msgstr "HTTST^TrueAim"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:71
-#, fuzzy
 msgid "HTTST^Enemies"
-msgstr "Ennemis"
+msgstr "HTTST^Ennemis"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:76
 msgid "Blur crosshair if the shot is obstructed"
-msgstr ""
+msgstr "Flouter le viseur si le tir est obstrué"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:81
 msgid "Animate when hitting an enemy"
-msgstr ""
+msgstr "Animer quand un enemi est touché"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:85
 msgid "Animate when picking up an item"
-msgstr ""
+msgstr "Animer quand un objet est collecté"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:40
-#, fuzzy
 msgid "Damage:"
-msgstr "Effet santé faible:"
+msgstr "Dégâts :"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:43
 msgid "Overlay:"
-msgstr ""
+msgstr "Overlay :"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:47
-#, fuzzy
 msgid "Factor:"
-msgstr "Facteur de Zoom:"
+msgstr "Facteur :"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:52
-#, fuzzy
 msgid "Fade rate:"
 msgstr "Temps d'effacement d'une entrée:"
 
@@ -1604,21 +1567,19 @@ msgstr "Waypoints"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:71
 msgid "Edge offset:"
-msgstr ""
+msgstr "Décalage :"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:80
-#, fuzzy
 msgid "Show names above players"
-msgstr "Montrer les Images Par Seconde"
+msgstr "Montrer les noms des joueurs"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:83
 msgid "Only when near crosshair"
-msgstr ""
+msgstr "Seulement quand près du viseur"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:86
-#, fuzzy
 msgid "Display health and armor"
-msgstr "Échanger positions Santé/Armure"
+msgstr "Afficher santé/armure"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:90
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hudconfirm.c:4
@@ -1628,172 +1589,163 @@ msgstr "Éditer l'interface"
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hudconfirm.c:28
 msgid "In order for the HUD editor to show, you must first be in game."
 msgstr ""
+"Pour que l'éditeur d'interface foncctionne, il faut rejoindre une partie."
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hudconfirm.c:30
 msgid "Do you wish to start a local game to set up the HUD?"
-msgstr ""
+msgstr "Voulez-vous démarrer une partie locale pour configurer l'interface ?"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hudconfirm.c:33
 msgid "HDCNFRM^Yes"
-msgstr ""
+msgstr "HDCNFRM^Oui"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hudconfirm.c:36
 msgid "HDCNFRM^No"
-msgstr ""
+msgstr "HDCNFRM^Non"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:28
-#, fuzzy
 msgid "Body fading:"
-msgstr "Ajustement:"
+msgstr "Temps d'effacement:"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:31
 msgid "Gibs:"
-msgstr "Gibs:"
+msgstr "Gibs :"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:33
 msgid "GIBS^None"
-msgstr "Aucun"
+msgstr "GIBS^Aucun"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:34
 msgid "GIBS^Few"
-msgstr "Quelques"
+msgstr "GIBS^Quelques"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:35
 msgid "GIBS^Many"
-msgstr "Plusieurs"
+msgstr "GIBS^Plusieurs"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:36
 msgid "GIBS^Lots"
-msgstr "Beaucoup"
+msgstr "GIBS^Beaucoup"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:40
-#, fuzzy
 msgid "Playermodel LOD:"
-msgstr "Joueur:"
+msgstr "Qualité modèles personnages :"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:44
 msgid "Force models:"
-msgstr "Forcer personnages:"
+msgstr "Forcer personnages :"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:45
 msgid "MDL^None"
-msgstr "Aucun"
+msgstr "MDL^Aucun"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:46
 msgid "MDL^Custom"
-msgstr "Personnalisé"
+msgstr "MDL^Personnalisé"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:47
 msgid "MDL^All"
-msgstr "Tout"
+msgstr "MDL^Tout"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:50
-#, fuzzy
 msgid "Force player models to mine"
-msgstr "Forcer personnages:"
+msgstr "Forcer personnages de joueurs vers le mien"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:52
 msgid "Force player colors to mine"
-msgstr ""
+msgstr "Forcer couleurs de joueurs vers les miennes"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:28
 msgid "Field of view:"
-msgstr "Champ de vision:"
+msgstr "Champ de vision :"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:31
-#, fuzzy
 msgid "Zoom:"
-msgstr "Mode de Zoom:"
+msgstr "Zoom :"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:33
-#, fuzzy
 msgid "RETICLE^Fullscreen"
-msgstr "Plein écran"
+msgstr "RETICLE^Plein écran"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:34
 msgid "RETICLE^With reticle"
-msgstr ""
+msgstr "RETICLE^Avec réticule"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:38
 msgid "ZOOM^Factor:"
-msgstr ""
+msgstr "ZOOM^Facteur :"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:42
-#, fuzzy
 msgid "ZOOM^Speed:"
-msgstr "Vitesse:"
+msgstr "ZOOM^Vitesse :"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:52
 msgid "ZOOM^Instant"
-msgstr ""
+msgstr "ZOOM^Instantané"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:56
-#, fuzzy
 msgid "ZOOM^Sensitivity:"
-msgstr "Sensibilité:"
+msgstr "ZOOM^Sensibilité :"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:59
 msgid "Velocity zoom:"
-msgstr ""
+msgstr "Vitesse zoom :"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:61
-#, fuzzy
 msgid "VZOOM^Disabled"
-msgstr "Désactivé"
+msgstr "VZOOM^Désactivé"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:62
 msgid "VZOOM^Forward only"
-msgstr ""
+msgstr "VZOOM^Seulement en avant"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:63
 msgid "VZOOM^All directions"
-msgstr ""
+msgstr "VZOOM^Toutes directions"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:67
 msgid "VZOOM^Speed"
-msgstr ""
+msgstr "VZOOM^Vitesse"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:72
 msgid "Allow passing through walls while spectating"
-msgstr ""
+msgstr "Autoriser la caméra spectateur à passer à travers les murs"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:75
 msgid "1st person perspective"
-msgstr ""
+msgstr "Perspective 1ère personne"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:79
 msgid "Smooth the view when landing from a jump"
-msgstr ""
+msgstr "Effet d'aterrissage des sauts"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:83
 msgid "Smooth the view while crouching"
-msgstr ""
+msgstr "Adoucir les transitions debout-accroupi"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:87
 msgid "View waving while idle"
-msgstr ""
+msgstr "Faire tanguer la vue à l'arrêt"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:91
 msgid "View bobbing while walking around"
-msgstr ""
+msgstr "Faire tanguer la vue en marchant"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:96
 msgid "3rd person perspective"
-msgstr ""
+msgstr "Perspective 3ème personne"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:100
-#, fuzzy
 msgid "Back distance"
 msgstr "Distance max. particules:"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:106
-#, fuzzy
 msgid "Up distance"
 msgstr "Distance max.:"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:29
 msgid "Weapon priority list:"
-msgstr "Liste de priorité armes:"
+msgstr "Liste de priorité armes :"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:33
 msgid "Up"
@@ -1817,16 +1769,15 @@ msgstr "Afficher l'arme à la première personne"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:58
 msgid "Gun model swaying"
-msgstr ""
+msgstr "Faire tanguer l'arme en marchant"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:63
-#, fuzzy
 msgid "Gun model bobbing"
 msgstr "<modèle non trouvé>"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:68
 msgid "VWMDL^Scale"
-msgstr ""
+msgstr "WVMDL^Taille"
 
 #: qcsrc/menu/xonotic/dialog_news.c:4
 msgid "News"
@@ -1854,141 +1805,131 @@ msgstr "Non"
 
 #: qcsrc/menu/xonotic/dialog_sandboxtools.c:4
 msgid "Sandbox Tools"
-msgstr ""
+msgstr "Outils Sandbox"
 
 #: qcsrc/menu/xonotic/dialog_sandboxtools.c:24
 msgid "Spawn"
-msgstr ""
+msgstr "Spawn"
 
 #: qcsrc/menu/xonotic/dialog_sandboxtools.c:25
-#, fuzzy
 msgid "Remove *"
-msgstr "Supprimer"
+msgstr "Supprimer *"
 
 #: qcsrc/menu/xonotic/dialog_sandboxtools.c:27
 msgid "Copy *"
-msgstr ""
+msgstr "Copier *"
 
 #: qcsrc/menu/xonotic/dialog_sandboxtools.c:28
-#, fuzzy
 msgid "Paste"
-msgstr "Général:"
+msgstr "Coller"
 
 #: qcsrc/menu/xonotic/dialog_sandboxtools.c:30
 msgid "Bone:"
-msgstr ""
+msgstr "Os :"
 
 #: qcsrc/menu/xonotic/dialog_sandboxtools.c:35
 msgid "Set * as child"
-msgstr ""
+msgstr "Définir * comme enfant"
 
 #: qcsrc/menu/xonotic/dialog_sandboxtools.c:36
 msgid "Attach to *"
-msgstr ""
+msgstr "Attacher à *"
 
 #: qcsrc/menu/xonotic/dialog_sandboxtools.c:38
 msgid "Detach from *"
-msgstr ""
+msgstr "Détacher depuis *"
 
 #: qcsrc/menu/xonotic/dialog_sandboxtools.c:41
 msgid "Visual object properties for *:"
-msgstr ""
+msgstr "Propriétes visuelles de l'objet * :"
 
 #: qcsrc/menu/xonotic/dialog_sandboxtools.c:43
-#, fuzzy
 msgid "Set skin:"
-msgstr "Apparences menu:"
+msgstr "Définir texture :"
 
 #: qcsrc/menu/xonotic/dialog_sandboxtools.c:45
-#, fuzzy
 msgid "Set alpha:"
-msgstr "Opacité Waypoints:"
+msgstr "Définir opacité :"
 
 #: qcsrc/menu/xonotic/dialog_sandboxtools.c:48
-#, fuzzy
 msgid "Set color main:"
-msgstr "Couleur d'équipe:"
+msgstr "Définir couleur principale :"
 
 #: qcsrc/menu/xonotic/dialog_sandboxtools.c:50
-#, fuzzy
 msgid "Set color glow:"
-msgstr "Couleur d'équipe:"
+msgstr "Définir couleur fluo :"
 
 #: qcsrc/menu/xonotic/dialog_sandboxtools.c:54
 msgid "Set frame:"
-msgstr ""
+msgstr "Définir trame :"
 
 #: qcsrc/menu/xonotic/dialog_sandboxtools.c:58
 msgid "Physical object properties for *:"
-msgstr ""
+msgstr "Propriétes physiques de l'objet * :"
 
 #: qcsrc/menu/xonotic/dialog_sandboxtools.c:60
 msgid "Set material:"
-msgstr ""
+msgstr "Définir matériau :"
 
 #: qcsrc/menu/xonotic/dialog_sandboxtools.c:66
-#, fuzzy
 msgid "Set solidity:"
-msgstr "Sensibilité:"
+msgstr "Définir solidité :"
 
 #: qcsrc/menu/xonotic/dialog_sandboxtools.c:67
 msgid "Non-solid"
-msgstr ""
+msgstr "Non-solide"
 
 #: qcsrc/menu/xonotic/dialog_sandboxtools.c:68
 msgid "Solid"
-msgstr ""
+msgstr "Solide"
 
 #: qcsrc/menu/xonotic/dialog_sandboxtools.c:69
 msgid "Set physics:"
-msgstr ""
+msgstr "Définir physiques :"
 
 #: qcsrc/menu/xonotic/dialog_sandboxtools.c:70
 msgid "Static"
-msgstr ""
+msgstr "Statique"
 
 #: qcsrc/menu/xonotic/dialog_sandboxtools.c:71
 msgid "Movable"
-msgstr ""
+msgstr "Bougeable"
 
 #: qcsrc/menu/xonotic/dialog_sandboxtools.c:72
-#, fuzzy
 msgid "Physical"
-msgstr "Panneau d'effets physiques"
+msgstr "Physique"
 
 #: qcsrc/menu/xonotic/dialog_sandboxtools.c:74
-#, fuzzy
 msgid "Set scale:"
-msgstr "Taille de police:"
+msgstr "Définir taille :"
 
 #: qcsrc/menu/xonotic/dialog_sandboxtools.c:76
 msgid "Set force:"
-msgstr ""
+msgstr "Définir force :"
 
 #: qcsrc/menu/xonotic/dialog_sandboxtools.c:80
 msgid "Claim *"
-msgstr ""
+msgstr "Prendre *"
 
 #: qcsrc/menu/xonotic/dialog_sandboxtools.c:82
 msgid "* object info"
-msgstr ""
+msgstr "Info objet de *"
 
 #: qcsrc/menu/xonotic/dialog_sandboxtools.c:83
 msgid "* mesh info"
-msgstr ""
+msgstr "Info Mesh de *"
 
 #: qcsrc/menu/xonotic/dialog_sandboxtools.c:84
 msgid "* attachment info"
-msgstr ""
+msgstr "Info attachement de *"
 
 #: qcsrc/menu/xonotic/dialog_sandboxtools.c:85
-#, fuzzy
 msgid "Show help"
-msgstr "Montrer le netgraphe"
+msgstr "Montrer l'aide"
 
 #: qcsrc/menu/xonotic/dialog_sandboxtools.c:86
 msgid "* is the object you are facing"
-msgstr ""
+msgstr "* est l'objet que vous pointez"
 
 #: qcsrc/menu/xonotic/dialog_settings.c:4
 msgid "Settings"
@@ -2017,7 +1958,7 @@ msgstr "Audio"
 #: qcsrc/menu/xonotic/dialog_settings.c:22
 #: qcsrc/menu/xonotic/dialog_settings_user.c:4
 msgid "User"
-msgstr ""
+msgstr "Utilisateur"
 
 #: qcsrc/menu/xonotic/dialog_settings.c:23
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:4
@@ -2026,56 +1967,56 @@ msgstr "Autres"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.c:27
 msgid "Master:"
-msgstr "Général:"
+msgstr "Général :"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.c:35
 msgid "Music:"
-msgstr "Musique:"
+msgstr "Musique :"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.c:45
 msgid "VOL^Ambient:"
-msgstr "Ambiance:"
+msgstr "VOL^Ambiance :"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.c:54
 msgid "Info:"
-msgstr "Information:"
+msgstr "Information :"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.c:63
 msgid "Items:"
-msgstr "Objets:"
+msgstr "Objets :"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.c:72
 msgid "Pain:"
-msgstr "Douleur:"
+msgstr "Douleur :"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.c:81
 msgid "Player:"
-msgstr "Joueur:"
+msgstr "Joueur :"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.c:90
 msgid "Shots:"
-msgstr "Tirs:"
+msgstr "Tirs :"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.c:99
 msgid "Voice:"
-msgstr "Voix:"
+msgstr "Voix :"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.c:109
 msgid "Weapons:"
-msgstr "Armes:"
+msgstr "Armes :"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.c:117
 msgid "New style sound attenuation"
-msgstr ""
+msgstr "Atténuation de son améliorée"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.c:119
 msgid "Mute sounds when not active"
-msgstr ""
+msgstr "Silencer le jeu quand non-actif"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.c:122
 #: qcsrc/menu/xonotic/dialog_settings_audio.c:194
 msgid "Frequency:"
-msgstr "Fréquence:"
+msgstr "Fréquence :"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.c:124
 msgid "8 kHz"
@@ -2111,7 +2052,7 @@ msgstr "48 kHz"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.c:134
 msgid "Channels:"
-msgstr "Canaux:"
+msgstr "Canaux :"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.c:136
 msgid "Mono"
@@ -2154,28 +2095,24 @@ msgid "Headphone friendly mode"
 msgstr "Mode casque audio"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.c:170
-#, fuzzy
 msgid "Hit indication sound"
 msgstr "Son tir réussi"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.c:172
-#, fuzzy
 msgid "Chat message sound"
-msgstr "Sons Chat:"
+msgstr "Sons du tchat"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.c:174
 msgid "Menu sounds"
 msgstr "Sons du menu"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.c:177
-#, fuzzy
 msgid "Time announcer:"
-msgstr "Avertissement temps:"
+msgstr "Avertissement temps :"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.c:179
-#, fuzzy
 msgid "WRN^Disabled"
-msgstr "Désactivé"
+msgstr "WRN^Désactivé"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.c:180
 msgid "1 minute"
@@ -2187,7 +2124,7 @@ msgstr "5 minutes"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.c:182
 msgid "WRN^Both"
-msgstr "Les deux"
+msgstr "WRN^Les deux"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.c:189
 msgid "Automatic taunts"
@@ -2195,100 +2132,99 @@ msgstr "Voix automatiques"
 
 #: qcsrc/menu/xonotic/dialog_settings_audio.c:199
 msgid "Debug info about sounds"
-msgstr ""
+msgstr "Info de déboguage des sons"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:38
 msgid "Quality preset:"
-msgstr "Qualité effets:"
+msgstr "Qualité effets :"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:41
 msgid "PRE^OMG!"
-msgstr "OMG!"
+msgstr "PRE^OMG!"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:42
 msgid "PRE^Low"
-msgstr "Bas"
+msgstr "PRE^Bas"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:43
 msgid "PRE^Medium"
-msgstr "Moyen"
+msgstr "PRE^Moyen"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:44
 msgid "PRE^Normal"
-msgstr "Normal"
+msgstr "PRE^Normal"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:45
 msgid "PRE^High"
-msgstr "Élevé"
+msgstr "PRE^Élevé"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:46
 msgid "PRE^Ultra"
-msgstr "Très Élevé"
+msgstr "PRE^Très Élevé"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:48
 msgid "PRE^Ultimate"
-msgstr "Ultime"
+msgstr "PRE^Ultime"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:52
 msgid "Geometry detail:"
-msgstr "Détail géométrie:"
+msgstr "Détail géométrie :"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:54
 msgid "DET^Lowest"
-msgstr "Très Bas"
+msgstr "DET^Très Bas"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:55
 msgid "DET^Low"
-msgstr "Bas"
+msgstr "DET^Bas"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:56
 msgid "DET^Normal"
-msgstr "Normal"
+msgstr "DET^Normal"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:57
 msgid "DET^Good"
-msgstr "Bon"
+msgstr "DET^Bon"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:58
 msgid "DET^Best"
-msgstr "Élevé"
+msgstr "DET^Élevé"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:59
 msgid "DET^Insane"
-msgstr "Extrême"
+msgstr "DET^Extrême"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:62
 msgid "Texture resolution:"
-msgstr "Qualité textures:"
+msgstr "Qualité textures :"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:65
 msgid "RES^Leet"
-msgstr "Leet"
+msgstr "RES^Leet"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:66
 msgid "RES^Lowest"
-msgstr "Très Bas"
+msgstr "RES^Très Bas"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:67
-#, fuzzy
 msgid "RES^Very low"
-msgstr "Bas"
+msgstr "RES^Bas"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:68
 msgid "RES^Low"
-msgstr "Bas"
+msgstr "RES^Bas"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:69
 msgid "RES^Normal"
-msgstr "Normal"
+msgstr "RES^Normal"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:70
 msgid "RES^Good"
-msgstr "Bon"
+msgstr "RES^Bon"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:71
 msgid "RES^Best"
-msgstr "Élevé"
+msgstr "RES^Élevé"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:84
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:87
@@ -2308,33 +2244,28 @@ msgid "Gloss"
 msgstr "Brillance textures"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:100
-#, fuzzy
 msgid "Particles quality:"
-msgstr "Qualité particules:"
+msgstr "Qualité particules :"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:103
-#, fuzzy
 msgid "Particles distance:"
-msgstr "Distance max. particules:"
+msgstr "Distance max. particules :"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:106
-#, fuzzy
 msgid "Damage effects:"
-msgstr "Effet d'effacement:"
+msgstr "Effets de dégâts :"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:108
-#, fuzzy
 msgid "DMGPRTCLS^Disabled"
-msgstr "Désactivé"
+msgstr "DMGPRTCLS^Désactivé"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:109
 msgid "DMGPRTCLS^Skeletal"
-msgstr ""
+msgstr "DMGPRTCLS^Squelétal"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:110
-#, fuzzy
 msgid "DMGPRTCLS^All"
-msgstr "Tout"
+msgstr "DMGPRTCLS^Tout"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:114
 msgid "Decals"
@@ -2346,11 +2277,11 @@ msgstr "Décalques sur les modèles"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:119
 msgid "Distance:"
-msgstr "Distance max.:"
+msgstr "Distance max. :"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:125
 msgid "Time:"
-msgstr "Temps:"
+msgstr "Temps :"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:131
 msgid "Coronas"
@@ -2365,9 +2296,8 @@ msgid "No dynamic lighting"
 msgstr "Pas de lumières dynamiques"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:136
-#, fuzzy
 msgid "Fake corona lighting"
-msgstr "Lumières carte en temps réel"
+msgstr "Lumières dynamiques rapides"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:138
 msgid "Realtime dynamic lighting"
@@ -2388,7 +2318,7 @@ msgstr "Lumières Deluxe"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:149
 msgid "Soft shadows"
-msgstr "Ombres avancées"
+msgstr "Ombres douces"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:153
 msgid "Show surfaces"
@@ -2404,7 +2334,7 @@ msgstr "Textures relief avancé"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:159
 msgid "LOD"
-msgstr ""
+msgstr "LOD"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:162
 msgid "Bloom"
@@ -2412,7 +2342,7 @@ msgstr "Effets d'éblouissement"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:164
 msgid "Reflections:"
-msgstr "Réflexions:"
+msgstr "Réflexions :"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:167
 msgid "Blurred"
@@ -2420,7 +2350,7 @@ msgstr "Flou"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:168
 msgid "REFL^Good"
-msgstr "Bon"
+msgstr "REFL^Bon"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:169
 msgid "Sharp"
@@ -2432,11 +2362,11 @@ msgstr "Flou de vitesse:"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:179
 msgid "Extra postprocessing effects"
-msgstr ""
+msgstr "Effets de post-processing"
 
 #: qcsrc/menu/xonotic/dialog_settings_input.c:26
 msgid "Key bindings:"
-msgstr "Contrôles:"
+msgstr "Contrôles :"
 
 #: qcsrc/menu/xonotic/dialog_settings_input.c:30
 msgid "Change key..."
@@ -2447,13 +2377,12 @@ msgid "Edit..."
 msgstr "Éditer..."
 
 #: qcsrc/menu/xonotic/dialog_settings_input.c:45
-#, fuzzy
 msgid "Pressing \"enter console\" key also closes it"
 msgstr "\"ouvrir la console\" ferme aussi la console"
 
 #: qcsrc/menu/xonotic/dialog_settings_input.c:47
 msgid "Automatically repeat jumping if holding jump"
-msgstr ""
+msgstr "Automatiquement continuer de sauter"
 
 #: qcsrc/menu/xonotic/dialog_settings_input.c:51
 #: qcsrc/menu/xonotic/dialog_settings_input.c:53
@@ -2463,44 +2392,41 @@ msgstr "Utiliser une manette"
 
 #: qcsrc/menu/xonotic/dialog_settings_input.c:61
 msgid "Mouse:"
-msgstr ""
+msgstr "Souris :"
 
 #: qcsrc/menu/xonotic/dialog_settings_input.c:64
 msgid "Sensitivity:"
-msgstr "Sensibilité:"
+msgstr "Sensibilité :"
 
 #: qcsrc/menu/xonotic/dialog_settings_input.c:68
 msgid "Smooth aiming"
-msgstr ""
+msgstr "Visée adoucie"
 
 #: qcsrc/menu/xonotic/dialog_settings_input.c:71
-#, fuzzy
 msgid "Invert aiming"
-msgstr "Inverser souris (axe Y)"
+msgstr "Inverser souris"
 
 #: qcsrc/menu/xonotic/dialog_settings_input.c:75
 #: qcsrc/menu/xonotic/dialog_settings_input.c:77
 #: qcsrc/menu/xonotic/dialog_settings_input.c:80
-#, fuzzy
 msgid "Disable system mouse acceleration"
 msgstr "Désactiver l'accélération souris de l'OS"
 
 #: qcsrc/menu/xonotic/dialog_settings_input.c:85
-#, fuzzy
 msgid "Enable built in mouse acceleration"
 msgstr "Désactiver l'accélération souris de l'OS"
 
 #: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:5
 msgid "User defined key bind"
-msgstr "Touche d'exécution:"
+msgstr "Touche d'exécution :"
 
 #: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:42
 msgid "Command when pressed:"
-msgstr "Commande quand appuyée:"
+msgstr "Commande quand appuyée :"
 
 #: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:45
 msgid "Command when released:"
-msgstr "Commande quand relâchée:"
+msgstr "Commande quand relâchée :"
 
 #: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:48
 msgid "Save"
@@ -2511,9 +2437,8 @@ msgid "Cancel"
 msgstr "Annuler"
 
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:26
-#, fuzzy
 msgid "Network:"
-msgstr "Réseau"
+msgstr "Réseau :"
 
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:31
 msgid "56k"
@@ -2537,15 +2462,15 @@ msgstr "Câble/Fibre optique"
 
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:39
 msgid "Input packets/s:"
-msgstr "Paquets entrants/seconde:"
+msgstr "Paquets entrants/seconde :"
 
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:45
 msgid "Local latency:"
-msgstr ""
+msgstr "Latence locale :"
 
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:50
 msgid "Client UDP port:"
-msgstr "Port UDP client:"
+msgstr "Port UDP client :"
 
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:55
 msgid "Show netgraph"
@@ -2557,161 +2482,156 @@ msgstr "Prédiction des mouvements joueur"
 
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:62
 msgid "Movement error compensation"
-msgstr ""
+msgstr "Compensation des erreurs de mouvement"
 
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:66
 msgid "Downloads:"
-msgstr "Téléchargements simultanés:"
+msgstr "Téléchargements simult:"
 
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:69
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:81
 msgid "Maximum:"
-msgstr ""
+msgstr "Maximum :"
 
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:73
 msgid "Speed (kB/s):"
-msgstr "Vitesse (Ko/seconde):"
+msgstr "Vitesse (Ko/s:"
 
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:78
 msgid "Framerate:"
-msgstr ""
+msgstr "Framerate :"
 
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:83
 msgid "MAXFPS^5 fps"
-msgstr ""
+msgstr "MAXFPS^5 fps"
 
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:84
 msgid "MAXFPS^10 fps"
-msgstr ""
+msgstr "MAXFPS^10 fps"
 
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:85
 msgid "MAXFPS^20 fps"
-msgstr ""
+msgstr "MAXFPS^20 fps"
 
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:86
 msgid "MAXFPS^30 fps"
-msgstr ""
+msgstr "MAXFPS^30 fps"
 
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:87
 msgid "MAXFPS^40 fps"
-msgstr ""
+msgstr "MAXFPS^40 fps"
 
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:88
 msgid "MAXFPS^50 fps"
-msgstr ""
+msgstr "MAXFPS^50 fps"
 
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:89
 msgid "MAXFPS^60 fps"
-msgstr ""
+msgstr "MAXFPS^60 fps"
 
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:90
 msgid "MAXFPS^70 fps"
-msgstr ""
+msgstr "MAXFPS^70 fps"
 
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:91
 msgid "MAXFPS^100 fps"
-msgstr ""
+msgstr "MAXFPS^100 fps"
 
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:92
 msgid "MAXFPS^125 fps"
-msgstr ""
+msgstr "MAXFPS^125 fps"
 
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:93
 msgid "MAXFPS^200 fps"
-msgstr ""
+msgstr "MAXFPS^200 fps"
 
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:94
 msgid "MAXFPS^Unlimited"
-msgstr ""
+msgstr "MAXFPS^Non-limité"
 
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:98
 msgid "Target:"
-msgstr ""
+msgstr "Cible :"
 
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:100
-#, fuzzy
 msgid "TRGT^Disabled"
-msgstr "Désactivé"
+msgstr "TRGT^Désactivé"
 
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:101
 msgid "TRGT^30 fps"
-msgstr ""
+msgstr "TRGT^30 fps"
 
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:102
 msgid "TRGT^40 fps"
-msgstr ""
+msgstr "TRGT^40 fps"
 
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:103
 msgid "TRGT^50 fps"
-msgstr ""
+msgstr "TRGT^50 fps"
 
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:104
 msgid "TRGT^60 fps"
-msgstr ""
+msgstr "TRGT^60 fps"
 
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:105
 msgid "TRGT^100 fps"
-msgstr ""
+msgstr "TRGT^100 fps"
 
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:106
 msgid "TRGT^125 fps"
-msgstr ""
+msgstr "TRGT^125 fps"
 
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:107
 msgid "TRGT^200 fps"
-msgstr ""
+msgstr "TRGT^200 fps"
 
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:111
-#, fuzzy
 msgid "Idle limit:"
-msgstr "Limite de temps:"
+msgstr "Framerate en Idle :"
 
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:113
 msgid "IDLFPS^10 fps"
-msgstr ""
+msgstr "IDLFPS^10 fps"
 
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:114
 msgid "IDLFPS^20 fps"
-msgstr ""
+msgstr "IDLFPS^20 fps"
 
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:115
 msgid "IDLFPS^30 fps"
-msgstr ""
+msgstr "IDLFPS^30 fps"
 
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:116
 msgid "IDLFPS^60 fps"
-msgstr ""
+msgstr "IDLFPS^60 fps"
 
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:117
 msgid "IDLFPS^Unlimited"
-msgstr ""
+msgstr "IDLFPS^Non-limité"
 
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:122
 msgid "Show frames per second"
-msgstr "Montrer les Images Par Seconde"
+msgstr "Montrer le Framerate"
 
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:125
 msgid "Save processing time for other apps"
-msgstr ""
+msgstr "Économiser les ressources pour les autres appli."
 
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:129
-#, fuzzy
 msgid "Menu tooltips:"
-msgstr "Apparences menu:"
+msgstr "Boîtes d'aîde :"
 
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:131
-#, fuzzy
 msgid "TLTIP^Disabled"
-msgstr "Désactivé"
+msgstr "TLTIP^Désactivé"
 
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:132
 msgid "TLTIP^Standard"
-msgstr ""
+msgstr "TLTIP^Standard"
 
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:133
-#, fuzzy
 msgid "TLTIP^Advanced"
-msgstr "Avancé"
+msgstr "TLIP^Avancé"
 
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:137
 msgid "Show current time"
@@ -2722,9 +2642,8 @@ msgid "Show current date"
 msgstr "Montrer la date"
 
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:141
-#, fuzzy
 msgid "Enable developer mode"
-msgstr "Activer point central"
+msgstr "Activer le mode dévloppeur"
 
 #: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:5
 msgid "Advanced settings"
@@ -2732,106 +2651,103 @@ msgstr "Paramètres avancés"
 
 #: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:31
 msgid "Cvar filter:"
-msgstr "Recherche de commandes:"
+msgstr "Recherche de commandes :"
 
 #: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:44
 msgid "Setting:"
-msgstr "Paramètre:"
+msgstr "Paramètre :"
 
 #: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:48
 msgid "Type:"
-msgstr "Type:"
+msgstr "Type :"
 
 #: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:52
 msgid "Value:"
-msgstr "Valeur:"
+msgstr "Valeur :"
 
 #: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:68
 msgid "Description:"
-msgstr "Description:"
+msgstr "Description :"
 
 #: qcsrc/menu/xonotic/dialog_settings_user.c:27
 msgid "Menu skins:"
-msgstr "Apparences menu:"
+msgstr "Apparences menu :"
 
 #: qcsrc/menu/xonotic/dialog_settings_user.c:31
-#, fuzzy
 msgid "Set skin"
-msgstr "Apparences menu:"
+msgstr "Définir apparence"
 
 #: qcsrc/menu/xonotic/dialog_settings_user.c:74
-#, fuzzy
 msgid "Set language"
-msgstr "Langue écran:"
+msgstr "Définir langue"
 
 #: qcsrc/menu/xonotic/dialog_settings_user.c:79
-#, fuzzy
 msgid "Disable gore effects and harsh language"
-msgstr "Désactiver effets gore"
+msgstr "Désactiver les effets violents"
 
 #: qcsrc/menu/xonotic/dialog_settings_user.c:82
 msgid "Allow player statistics to track your client"
-msgstr ""
+msgstr "Autoriser les statistiques à pister votre client"
 
 #: qcsrc/menu/xonotic/dialog_settings_user.c:84
 msgid "Allow player statistics to use your nickname"
-msgstr ""
+msgstr "Autoriser les statistiques à utiliser votre pseudo."
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:26
 msgid "Resolution:"
-msgstr "Résolution:"
+msgstr "Résolution :"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:29
 msgid "Font/UI size:"
-msgstr "Taille typo:"
+msgstr "Taille police :"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:31
 msgid "SZ^Unreadable"
-msgstr "Illisible"
+msgstr "SZ^Illisible"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:32
 msgid "SZ^Tiny"
-msgstr "Minuscule"
+msgstr "SZ^Minuscule"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:33
 msgid "SZ^Little"
-msgstr "Très Petit"
+msgstr "SZ^Très Petit"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:34
 msgid "SZ^Small"
-msgstr "Petit"
+msgstr "SZ^Petit"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:35
 msgid "SZ^Medium"
-msgstr "Moyen"
+msgstr "SZ^Moyen"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:36
 msgid "SZ^Large"
-msgstr "Grand"
+msgstr "SZ^Grand"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:37
 msgid "SZ^Huge"
-msgstr "Très Grand"
+msgstr "SZ^Très Grand"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:38
 msgid "SZ^Gigantic"
-msgstr "Géant"
+msgstr "SZ^Géant"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:39
 msgid "SZ^Colossal"
-msgstr "Gigantesque"
+msgstr "SZ^Gigantesque"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:42
 msgid "Color depth:"
-msgstr "Profondeur de couleurs:"
+msgstr "Profondeur de couleurs :"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:44
 msgid "16bit"
-msgstr ""
+msgstr "16bit"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:45
 msgid "32bit"
-msgstr ""
+msgstr "32bit"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:48
 msgid "Full screen"
@@ -2839,15 +2755,15 @@ msgstr "Plein écran"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:49
 msgid "Vertical Synchronization"
-msgstr "Synchronisation verticale"
+msgstr "Synchronisation Verticale"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:53
 msgid "Anisotropy:"
-msgstr "Filtrage Anisotrope:"
+msgstr "Filtrage Anisotrope :"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:55
 msgid "ANISO^Disabled"
-msgstr "Désactivé"
+msgstr "ANISO^Désactivé"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:56
 #: qcsrc/menu/xonotic/dialog_settings_video.c:66
@@ -2869,31 +2785,31 @@ msgstr "16x"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:62
 msgid "Antialiasing:"
-msgstr "Anticrénelage:"
+msgstr "Anticrénelage :"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:65
 msgid "AA^Disabled"
-msgstr "Désactivé"
+msgstr "AA^Désactivé"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:71
 msgid "High-quality frame buffer"
-msgstr ""
+msgstr "Anticrénelage haute qualité"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:76
 msgid "Depth first:"
-msgstr "Profondeur d'abord:"
+msgstr "Profondeur d'abord :"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:78
 msgid "DF^Disabled"
-msgstr "Désactivé"
+msgstr "DF^Désactivé"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:79
 msgid "DF^World"
-msgstr "Monde"
+msgstr "DF^Carte"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:80
 msgid "DF^All"
-msgstr "Tout"
+msgstr "DF^Tout"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:83
 msgid "Vertex Buffer Objects (VBOs)"
@@ -2901,7 +2817,7 @@ msgstr "Objets en tampon mémoire (VBOs)"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:86
 msgid "VBO^Off"
-msgstr "Désactivé"
+msgstr "VBO^Désactivé"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:87
 msgid "Vertices, some Tris (compatible)"
@@ -2917,35 +2833,35 @@ msgstr "Points et Triangles"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:94
 msgid "Brightness:"
-msgstr "Luminosité:"
+msgstr "Luminosité :"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:97
 msgid "Contrast:"
-msgstr "Contraste:"
+msgstr "Contraste :"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:100
 msgid "Gamma:"
-msgstr "Gamma:"
+msgstr "Gamma :"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:105
 msgid "Contrast boost:"
-msgstr "Amélioration contraste:"
+msgstr "Bonus contraste :"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:110
 msgid "Saturation:"
-msgstr "Saturation:"
+msgstr "Saturation :"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:116
 msgid "LIT^Ambient:"
-msgstr "Ambiance:"
+msgstr "Ambiance :"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:119
 msgid "Intensity:"
-msgstr "Intensité:"
+msgstr "Intensité :"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:123
 msgid "Use OpenGL 2.0 shaders (GLSL)"
-msgstr "Utiliser shader OpenGL 2.0 (GLSL)"
+msgstr "Utiliser shaders OpenGL 2.0 (GLSL)"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:125
 msgid "Use GLSL to handle color control"
@@ -2957,11 +2873,11 @@ msgstr "Attendre le GPU pour finir chaque trame"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:132
 msgid "Psycho coloring (easter egg)"
-msgstr ""
+msgstr "Couleurs multicolores (œuf de pâques)"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:135
 msgid "Trippy vertices (easter egg)"
-msgstr ""
+msgstr "Carte déformée (œuf de pâques)"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:138
 msgid "Flip view horizontally"
@@ -2973,24 +2889,23 @@ msgstr "Monojoueur"
 
 #: qcsrc/menu/xonotic/dialog_singleplayer.c:116
 msgid "Instant action! (random map with bots)"
-msgstr "Instant action! (map aléatoire avec bots)"
+msgstr "Instant action! (map aléatoire avec robots)"
 
 #: qcsrc/menu/xonotic/dialog_singleplayer.c:137
 msgid "Campaign Difficulty:"
-msgstr ""
+msgstr "Difficulté Campagne :"
 
 #: qcsrc/menu/xonotic/dialog_singleplayer.c:138
 msgid "CSKL^Easy"
-msgstr ""
+msgstr "CSKL^Facile"
 
 #: qcsrc/menu/xonotic/dialog_singleplayer.c:139
-#, fuzzy
 msgid "CSKL^Medium"
-msgstr "Moyen"
+msgstr "CSKL^Moyen"
 
 #: qcsrc/menu/xonotic/dialog_singleplayer.c:140
 msgid "CSKL^Hard"
-msgstr ""
+msgstr "CSKL^Difficile"
 
 #: qcsrc/menu/xonotic/dialog_singleplayer.c:142
 msgid "Start Singleplayer!"
@@ -3052,13 +2967,12 @@ msgstr ""
 "des nouveaux problèmes.\n"
 
 #: qcsrc/menu/xonotic/playerlist.c:118 qcsrc/menu/xonotic/playerlist.c:128
-#, fuzzy
 msgid "spectator"
-msgstr "mode spectateur"
+msgstr "spectateur"
 
 #: qcsrc/menu/xonotic/playermodel.c:177
 msgid "<no model found>"
-msgstr "<modèle non trouvé>"
+msgstr "<pas de modèle trouvé>"
 
 #: qcsrc/menu/xonotic/serverlist.c:185
 msgid "Remove"
@@ -3098,11 +3012,11 @@ msgstr "<AUTEUR>"
 
 #: qcsrc/menu/xonotic/slider_decibels.c:50
 msgid "VOL^OFF"
-msgstr "OFF"
+msgstr "VOL^OFF"
 
 #: qcsrc/menu/xonotic/slider_decibels.c:52
 msgid "VOL^MAX"
-msgstr "MAX"
+msgstr "VOL^MAX"
 
 #: qcsrc/menu/xonotic/slider_decibels.c:53
 #, c-format
@@ -3133,7 +3047,7 @@ msgstr ""
 #: qcsrc/menu/xonotic/util.qc:301
 msgid "error: received carriage returns from update notification server\n"
 msgstr ""
-"erreur: a reçu un message erroné depuis le serveur de notifications de M.A."
+"erreur: a reçu un message erroné depuis le serveur de notification de M.A."
 "J.\n"
 
 #: qcsrc/menu/xonotic/util.qc:322
@@ -3142,7 +3056,7 @@ msgid ""
 "Update can be downloaded at:\n"
 "%s\n"
 msgstr ""
-"La mise à jour peut être téléchargée ici:\n"
+"La mise à jour peut être téléchargée depuis :\n"
 "%s\n"
 
 #: qcsrc/menu/xonotic/util.qc:351
@@ -3152,7 +3066,7 @@ msgstr "Génération des mapinfo pour les nouvelles cartes ajoutées..."
 #: qcsrc/menu/xonotic/util.qc:381
 #, c-format
 msgid "^1%s TEST BUILD"
-msgstr "VERSION DE TEST ^1%s"
+msgstr "^1VERSION DE TEST ^1%s"
 
 #: qcsrc/menu/xonotic/util.qc:439
 #, c-format
@@ -3173,7 +3087,7 @@ msgstr "Par défaut"
 
 #: qcsrc/menu/xonotic/util.qc:663
 msgid "Team Color:"
-msgstr "Couleur d'équipe:"
+msgstr "Couleur d'équipe :"
 
 #: qcsrc/menu/xonotic/util.qh:50
 msgid "Enable panel"
@@ -3181,7 +3095,7 @@ msgstr "Activer ce panneau"
 
 #: weapons.qc.tmp:1
 msgid "Rifle"
-msgstr "Fusil"
+msgstr "Fusil Sniper"
 
 #: weapons.qc.tmp:2
 msgid "Machine Gun"
@@ -3230,7 +3144,7 @@ msgstr "Canon Laser Lourd d'Assaut "
 
 #: weapons.qc.tmp:13
 msgid "Mortar"
-msgstr "Mortier"
+msgstr "Lance-Grenades"
 
 #: weapons.qc.tmp:14
 msgid "Hagar"
@@ -3252,278 +3166,278 @@ msgstr "Lance-Mines"
 msgid "Nex"
 msgstr "Nex"
 
-#~ msgid "Powerup sharpen"
-#~ msgstr "Panneau des Pouvoirs"
+#~ msgid "%d/%d, %d free player slots"
+#~ msgstr "%d/%d, %d Emplacements libres"
 
-#~ msgid "Damage & water blur"
-#~ msgstr "Flou de d�g�ts:"
+#~ msgid "Gameplay:"
+#~ msgstr "Mode:"
 
-#~ msgid "%s was riddled full of holes by %s"
-#~ msgstr "%s s'est fait trouer par %s"
+#~ msgid "Ping:"
+#~ msgstr "Latence:"
 
-#~ 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"
+#~ msgid "CA:"
+#~ msgstr "CA:"
 
-#~ msgid "%s hurt his own ears with the @!#%%'n Tuba"
-#~ msgstr "%s s'est fait casser les tympans par son propre tuba"
+#~ msgid "View bobbing:"
+#~ msgstr "Caméra marche:"
 
-#~ msgid "%s was gunned by %s"
-#~ msgstr "%s s'est fait fusiller par %s"
+#~ msgid "Zoom speed:"
+#~ msgstr "Vitesse de Zoom:"
 
-#~ msgid "%2$s ^7slapped %1$s ^7around a bit with a large ^2shotgun"
-#~ msgstr "%2$s ^7a baffé %1$s ^7avec un ^2fusil"
+#~ msgid "Weapon settings..."
+#~ msgstr "Paramètres armes..."
 
-#~ msgid "%s was tagged by %s"
-#~ msgstr "%s s'est fait tagguer par %s"
+#~ msgid "Size:"
+#~ msgstr "Taille:"
 
-#~ msgid "%s ate %s's rocket"
-#~ msgstr "%s a mangé la roquette de %s"
+#~ msgid "HTST^None"
+#~ msgstr "Aucun"
 
-#~ msgid "%s almost dodged %s's rocket"
-#~ msgstr "%s a presque esquivé la roquette de %s"
+#~ msgid "Waypoints setup..."
+#~ msgstr "Paramètres Waypoints..."
 
-#~ msgid "%s got too close to %s's rocket"
-#~ msgstr "%s s'est trop approché de la roquette de %s"
+#~ msgid "Waypoint scale:"
+#~ msgstr "Taille des Waypoints:"
 
-#~ msgid "%s was sniped by %s"
-#~ msgstr "%s s'est fait descendre au sniper par %s"
+#~ msgid "Show names:"
+#~ msgstr "Montrer les noms:"
 
-#~ msgid "%s got hit in the head by %s"
-#~ msgstr "%s s'est fait décapiter au sniper par %s"
+#~ msgid "Teammates"
+#~ msgstr "Équipiers"
 
-#~ msgid "%s failed to hide from %s's rifle"
-#~ msgstr "%s n'a pas réussi à se cacher du sniper de %s"
+#~ msgid "All players"
+#~ msgstr "Tous les joueurs"
 
-#~ msgid "%s died in %s's bullet hail"
-#~ msgstr "%s est mort de la nuée de balles de %s"
+#~ msgid "Spatial voices:"
+#~ msgstr "Voix personnages:"
 
-#~ 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"
+#~ msgid "VOCS^None"
+#~ msgstr "Aucun"
 
-#~ msgid "%s sniped themself somehow"
-#~ msgstr "%s a oublié le cran de sûreté en chargeant"
+#~ msgid "VOCS^Taunts"
+#~ msgstr "Voix"
 
-#~ msgid "%s shot themself automatically"
-#~ msgstr "%s s'est suicidé au sniper"
+#~ msgid "VOCS^All"
+#~ msgstr "Tout"
 
-#~ msgid "%s felt %s doing the impossible to him"
-#~ msgstr "%s a eu tort de prendre le portail de %s"
+#~ msgid "Taunt range:"
+#~ msgstr "Distance voix:"
 
-#~ msgid "%s has been vaporized by %s"
-#~ msgstr "%s s'est fait vaporiser par %s"
+#~ msgid "RNG^Very short"
+#~ msgstr "Très court"
 
-#~ msgid "%s is now thinking with portals"
-#~ msgstr "%s pense maintenant avec les portails"
+#~ msgid "RNG^Short"
+#~ msgstr "Court"
 
-#~ msgid "%s stepped on %s's mine"
-#~ msgstr "%s a marché sur la mine de %s"
-
-#~ msgid "%s almost dodged %s's mine"
-#~ msgstr "%s a presque esquivé la mine de %s"
+#~ msgid "RNG^Normal"
+#~ msgstr "Normal"
 
-#~ msgid "%s got too close to %s's mine"
-#~ msgstr "%s s'est trop approché de la mine de %s"
+#~ msgid "RNG^Long"
+#~ msgstr "Long"
 
-#~ msgid "%s exploded"
-#~ msgstr "%s a explosé"
+#~ msgid "RNG^Full"
+#~ msgstr "Tout"
 
-#~ msgid "%s was lasered to death by %s"
-#~ msgstr "%s a été désintégré par le laser de %s"
+#~ msgid "WRN^None"
+#~ msgstr "Aucun"
 
-#~ msgid "%s was cut in half by %s's gauntlet"
-#~ msgstr "%s s'est fait couper en deux par le laser de %s"
+#~ msgid "Flash blend approximation"
+#~ msgstr "Lumières dynamiques rapides"
 
-#~ msgid "%s lasered themself to hell"
-#~ msgstr "%s s'est suicidé au laser"
+#~ msgid "High Dynamic Range (HDR)"
+#~ msgstr "High Dynamic Range (HDR)"
 
-#~ msgid "%s has run into %s's gravity bomb"
-#~ msgstr "%s a été emprisonné par la bombe à gravité de %s"
+#~ msgid "Blur and sharpen postprocessing"
+#~ msgstr "Flou et netteté post-processeur"
 
-#~ msgid "%s did the impossible"
-#~ msgstr "%s a fait l'impossible"
+#~ msgid "UI mouse speed:"
+#~ msgstr "Vitesse souris menus:"
 
-#~ msgid "%s was cut down by %s"
-#~ msgstr "%s s'est fait couper par %s"
+#~ msgid "Mouse filter"
+#~ msgstr "Filtre Souris"
 
-#~ msgid "%s was pummeled by %s"
-#~ msgstr "%s a trop mangé de mini-missiles de la part de %s"
+#~ msgid "Minimize input latency"
+#~ msgstr "Minimiser la latence des contrôles"
 
-#~ msgid "%s hoped %s's missiles wouldn't bounce"
-#~ msgstr "%s a pensé que les petits missiles de %s ne rebondissaient pas"
+#~ msgid "Network speed:"
+#~ msgstr "Vitesse réseau:"
 
-#~ msgid "%s played with tiny rockets"
-#~ msgstr "%s a joué avec des petits missiles"
+#~ msgid "HTTP downloads:"
+#~ msgstr "Téléchargements:"
 
-#~ msgid "%s ate %s's grenade"
-#~ msgstr "%s a mangé la grenade de %s"
+#~ msgid "Disable multithreaded OpenGL"
+#~ msgstr "Désactiver OpenGL multi-coeurs"
 
-#~ msgid "%s almost dodged %s's grenade"
-#~ msgstr "%s a presque réussi à esquiver la grenade de %s"
+#~ msgid "%s succeeded at self-destructing themself with the Crylink"
+#~ msgstr "%s a réussi à se suicider avec le Crylink"
 
-#~ msgid "%s didn't see %s's grenade"
-#~ msgstr "%s n'a pas vu la grenade de %s"
+#~ msgid "%s could not hide from %s's Crylink"
+#~ msgstr "%s n'a pas pu se cacher du Crylink de %s"
 
-#~ msgid "%s detonated"
-#~ msgstr "%s a fait boum"
+#~ msgid "%s was too close to %s's Crylink"
+#~ msgstr "%s a été trop près du Crylink de %s"
 
-#~ msgid "%s tried out his own grenade"
-#~ msgstr "%s a mangé sa propre grenade"
+#~ msgid "%s took a close look at %s's Crylink"
+#~ msgstr "%s a voulu voir se qui se trouvait dans le Crylink de %s"
 
-#~ msgid "%s tasted %s's fireball"
-#~ msgstr "%s a goûté la boule de feu de %s"
+#~ msgid "%s could not remember where they put plasma"
+#~ msgstr "%s ne se souvenait pas où il a tiré du plasma"
 
-#~ msgid "%s got too close to %s's fireball"
-#~ msgstr "%s s'est trop approché de la boule de feu de %s"
+#~ msgid "%s played with plasma"
+#~ msgstr "%s a joué avec du plasma"
 
-#~ 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"
+#~ msgid "%s just noticed %s's blue ball"
+#~ msgstr "%s vient de remarquer la boule plasma de %s"
 
-#~ 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"
+#~ msgid "%s got in touch with %s's blue ball"
+#~ msgstr "%s s'est fait toucher par la boule plasma de %s"
 
-#~ msgid "%s fatefully ignored %s's firemine"
-#~ msgstr "%s a ignoré la boule de feu de %s"
+#~ msgid "%s felt the electrifying air of %s's combo"
+#~ msgstr "%s se sent électrisé par le combo de %s"
 
-#~ msgid "%s tried to catch %s's firemine"
-#~ msgstr "%s a pensé que la boule de feu de %s était un ballon de football"
+#~ msgid "%s got too close to %s's blue beam"
+#~ msgstr "%s a été trop près du rayon plasma de %s"
 
-#~ msgid "%s should have used a smaller gun"
-#~ msgstr "%s aurait dû utiliser une arme plus petite"
+#~ msgid "%s was blasted by %s's blue beam"
+#~ msgstr "%s a été désintégré à cause du rayon plasma de %s"
 
 #~ msgid "%s forgot about some firemine"
 #~ msgstr "%s n'a pas étudié la combustion des boules de feu"
 
-#~ msgid "%s was blasted by %s's blue beam"
-#~ msgstr "%s a été désintégré à cause du rayon plasma de %s"
+#~ msgid "%s should have used a smaller gun"
+#~ msgstr "%s aurait dû utiliser une arme plus petite"
 
-#~ msgid "%s got too close to %s's blue beam"
-#~ msgstr "%s a été trop près du rayon plasma de %s"
+#~ msgid "%s tried to catch %s's firemine"
+#~ msgstr "%s a pensé que la boule de feu de %s était un ballon de football"
 
-#~ msgid "%s felt the electrifying air of %s's combo"
-#~ msgstr "%s se sent électrisé par le combo de %s"
+#~ msgid "%s fatefully ignored %s's firemine"
+#~ msgstr "%s a ignoré la boule de feu de %s"
 
-#~ msgid "%s got in touch with %s's blue ball"
-#~ msgstr "%s s'est fait toucher par la boule plasma de %s"
+#~ 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"
 
-#~ msgid "%s just noticed %s's blue ball"
-#~ msgstr "%s vient de remarquer la boule plasma de %s"
+#~ 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"
 
-#~ msgid "%s played with plasma"
-#~ msgstr "%s a joué avec du plasma"
+#~ msgid "%s got too close to %s's fireball"
+#~ msgstr "%s s'est trop approché de la boule de feu de %s"
 
-#~ msgid "%s could not remember where they put plasma"
-#~ msgstr "%s ne se souvenait pas où il a tiré du plasma"
+#~ msgid "%s tasted %s's fireball"
+#~ msgstr "%s a goûté la boule de feu de %s"
 
-#~ msgid "%s took a close look at %s's Crylink"
-#~ msgstr "%s a voulu voir se qui se trouvait dans le Crylink de %s"
+#~ msgid "%s tried out his own grenade"
+#~ msgstr "%s a mangé sa propre grenade"
 
-#~ msgid "%s was too close to %s's Crylink"
-#~ msgstr "%s a été trop près du Crylink de %s"
+#~ msgid "%s detonated"
+#~ msgstr "%s a fait boum"
 
-#~ msgid "%s could not hide from %s's Crylink"
-#~ msgstr "%s n'a pas pu se cacher du Crylink de %s"
+#~ msgid "%s didn't see %s's grenade"
+#~ msgstr "%s n'a pas vu la grenade de %s"
 
-#~ msgid "%s succeeded at self-destructing themself with the Crylink"
-#~ msgstr "%s a réussi à se suicider avec le Crylink"
+#~ msgid "%s almost dodged %s's grenade"
+#~ msgstr "%s a presque réussi à esquiver la grenade de %s"
 
-#~ msgid "Disable multithreaded OpenGL"
-#~ msgstr "Désactiver OpenGL multi-coeurs"
+#~ msgid "%s ate %s's grenade"
+#~ msgstr "%s a mangé la grenade de %s"
 
-#~ msgid "HTTP downloads:"
-#~ msgstr "Téléchargements:"
+#~ msgid "%s played with tiny rockets"
+#~ msgstr "%s a joué avec des petits missiles"
 
-#~ msgid "Network speed:"
-#~ msgstr "Vitesse réseau:"
+#~ msgid "%s hoped %s's missiles wouldn't bounce"
+#~ msgstr "%s a pensé que les petits missiles de %s ne rebondissaient pas"
 
-#~ msgid "Minimize input latency"
-#~ msgstr "Minimiser la latence des contrôles"
+#~ msgid "%s was pummeled by %s"
+#~ msgstr "%s a trop mangé de mini-missiles de la part de %s"
 
-#~ msgid "Mouse filter"
-#~ msgstr "Filtre Souris"
+#~ msgid "%s was cut down by %s"
+#~ msgstr "%s s'est fait couper par %s"
 
-#~ msgid "UI mouse speed:"
-#~ msgstr "Vitesse souris menus:"
+#~ msgid "%s did the impossible"
+#~ msgstr "%s a fait l'impossible"
 
-#~ msgid "Blur and sharpen postprocessing"
-#~ msgstr "Flou et netteté post-processeur"
+#~ msgid "%s has run into %s's gravity bomb"
+#~ msgstr "%s a été emprisonné par la bombe à gravité de %s"
 
-#~ msgid "High Dynamic Range (HDR)"
-#~ msgstr "High Dynamic Range (HDR)"
+#~ msgid "%s lasered themself to hell"
+#~ msgstr "%s s'est suicidé au laser"
 
-#~ msgid "Flash blend approximation"
-#~ msgstr "Lumières dynamiques rapides"
+#~ msgid "%s was cut in half by %s's gauntlet"
+#~ msgstr "%s s'est fait couper en deux par le laser de %s"
 
-#~ msgid "WRN^None"
-#~ msgstr "Aucun"
+#~ msgid "%s was lasered to death by %s"
+#~ msgstr "%s a été désintégré par le laser de %s"
 
-#~ msgid "RNG^Full"
-#~ msgstr "Tout"
+#~ msgid "%s exploded"
+#~ msgstr "%s a explosé"
 
-#~ msgid "RNG^Long"
-#~ msgstr "Long"
+#~ msgid "%s got too close to %s's mine"
+#~ msgstr "%s s'est trop approché de la mine de %s"
 
-#~ msgid "RNG^Normal"
-#~ msgstr "Normal"
+#~ msgid "%s almost dodged %s's mine"
+#~ msgstr "%s a presque esquivé la mine de %s"
 
-#~ msgid "RNG^Short"
-#~ msgstr "Court"
+#~ msgid "%s stepped on %s's mine"
+#~ msgstr "%s a marché sur la mine de %s"
 
-#~ msgid "RNG^Very short"
-#~ msgstr "Très court"
+#~ msgid "%s is now thinking with portals"
+#~ msgstr "%s pense maintenant avec les portails"
 
-#~ msgid "Taunt range:"
-#~ msgstr "Distance voix:"
+#~ msgid "%s has been vaporized by %s"
+#~ msgstr "%s s'est fait vaporiser par %s"
 
-#~ msgid "VOCS^All"
-#~ msgstr "Tout"
+#~ msgid "%s felt %s doing the impossible to him"
+#~ msgstr "%s a eu tort de prendre le portail de %s"
 
-#~ msgid "VOCS^Taunts"
-#~ msgstr "Voix"
+#~ msgid "%s shot themself automatically"
+#~ msgstr "%s s'est suicidé au sniper"
 
-#~ msgid "VOCS^None"
-#~ msgstr "Aucun"
+#~ msgid "%s sniped themself somehow"
+#~ msgstr "%s a oublié le cran de sûreté en chargeant"
 
-#~ msgid "Spatial voices:"
-#~ msgstr "Voix personnages:"
+#~ 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"
 
-#~ msgid "All players"
-#~ msgstr "Tous les joueurs"
+#~ msgid "%s died in %s's bullet hail"
+#~ msgstr "%s est mort de la nuée de balles de %s"
 
-#~ msgid "Teammates"
-#~ msgstr "Équipiers"
+#~ msgid "%s failed to hide from %s's rifle"
+#~ msgstr "%s n'a pas réussi à se cacher du sniper de %s"
 
-#~ msgid "Show names:"
-#~ msgstr "Montrer les noms:"
+#~ msgid "%s got hit in the head by %s"
+#~ msgstr "%s s'est fait décapiter au sniper par %s"
 
-#~ msgid "Waypoint scale:"
-#~ msgstr "Taille des Waypoints:"
+#~ msgid "%s was sniped by %s"
+#~ msgstr "%s s'est fait descendre au sniper par %s"
 
-#~ msgid "Waypoints setup..."
-#~ msgstr "Paramètres Waypoints..."
+#~ msgid "%s got too close to %s's rocket"
+#~ msgstr "%s s'est trop approché de la roquette de %s"
 
-#~ msgid "HTST^None"
-#~ msgstr "Aucun"
+#~ msgid "%s almost dodged %s's rocket"
+#~ msgstr "%s a presque esquivé la roquette de %s"
 
-#~ msgid "Size:"
-#~ msgstr "Taille:"
+#~ msgid "%s ate %s's rocket"
+#~ msgstr "%s a mangé la roquette de %s"
 
-#~ msgid "Weapon settings..."
-#~ msgstr "Paramètres armes..."
+#~ msgid "%s was tagged by %s"
+#~ msgstr "%s s'est fait tagguer par %s"
 
-#~ msgid "Zoom speed:"
-#~ msgstr "Vitesse de Zoom:"
+#~ msgid "%2$s ^7slapped %1$s ^7around a bit with a large ^2shotgun"
+#~ msgstr "%2$s ^7a baffé %1$s ^7avec un ^2fusil"
 
-#~ msgid "View bobbing:"
-#~ msgstr "Caméra marche:"
+#~ msgid "%s was gunned by %s"
+#~ msgstr "%s s'est fait fusiller par %s"
 
-#~ msgid "CA:"
-#~ msgstr "CA:"
+#~ msgid "%s hurt his own ears with the @!#%%'n Tuba"
+#~ msgstr "%s s'est fait casser les tympans par son propre tuba"
 
-#~ msgid "Ping:"
-#~ msgstr "Latence:"
+#~ 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"
 
-#~ msgid "Gameplay:"
-#~ msgstr "Mode:"
+#~ msgid "%s was riddled full of holes by %s"
+#~ msgstr "%s s'est fait trouer par %s"
 
-#~ msgid "%d/%d, %d free player slots"
-#~ msgstr "%d/%d, %d Emplacements libres"
+#~ msgid "Damage & water blur"
+#~ msgstr "Flou de d�g�ts:"
+
+#~ msgid "Powerup sharpen"
+#~ msgstr "Panneau des Pouvoirs"
index 7d04e238af62cb5108367fc1046a95e77f7c259b..a7dfda904bb174bad47f8225883aa48a1daebd77 100644 (file)
-# 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: xaN1C4n3 <robalm@freemail.hu>, 2011.01.19
+#      version 2.1
+#
+# FIRST AUTHOR: xaN1C4n3 <robalm@freemail.hu>, 2011.01.19.
 # corrected by xaN1C4n3, 2011.12.20.
 # further corrected by C.Brutail, 2011.12.28.
-#      version 2.1
-#
-#, fuzzy
+# Ákos RUSZKAI, 2012.
 msgid ""
 msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-09-02 07:51+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"
+"POT-Creation-Date: 2012-01-26 12:24+0100\n"
+"PO-Revision-Date: 2012-03-10 15:47+0100\n"
+"Last-Translator: Ákos RUSZKAI\n"
+"Language-Team: Hungarian <kde-l10n-hu@kde.org>\n"
 "Language:\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.2\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: qcsrc/common/mapinfo.qc:665
+#, c-format
+msgid "@!#%'n Tuba Throwing"
+msgstr "@!#%'n Tuba Dobás"
 
-#: qcsrc/common/mapinfo.qc:1092 qcsrc/menu/xonotic/skinlist.c:163
+#: qcsrc/common/mapinfo.qc:1057 qcsrc/menu/xonotic/skinlist.c:166
 #, c-format
 msgid "%s: %s"
 msgstr "%s: %s"
 
-#: qcsrc/menu/gamecommand.qc:47
+#: qcsrc/common/mapinfo.qh:36
+msgid "Deathmatch"
+msgstr "Haláljátszma"
+
+#: qcsrc/common/mapinfo.qh:39
+msgid "Last Man Standing"
+msgstr "Csak egy maradhat"
+
+#: qcsrc/common/mapinfo.qh:42
+msgid "Arena"
+msgstr "Aréna"
+
+#: qcsrc/common/mapinfo.qh:45
+msgid "Runematch"
+msgstr "Rúnameccs"
+
+#: qcsrc/common/mapinfo.qh:48
+msgid "Race"
+msgstr "Verseny"
+
+#: qcsrc/common/mapinfo.qh:51
+msgid "Race CTS"
+msgstr "Ügyességi verseny"
+
+#: qcsrc/common/mapinfo.qh:54
+msgid "Team Deathmatch"
+msgstr "Csapat[os] öldöklés "
+
+#: qcsrc/common/mapinfo.qh:57
+msgid "Capture the Flag"
+msgstr "Zászlórablás"
+
+#: qcsrc/common/mapinfo.qh:60
+msgid "Clan Arena"
+msgstr "Klán Aréna"
+
+#: qcsrc/common/mapinfo.qh:63
+msgid "Domination"
+msgstr "Uralom"
+
+#: qcsrc/common/mapinfo.qh:66
+msgid "Key Hunt"
+msgstr "Kulcsvadászat"
+
+#: qcsrc/common/mapinfo.qh:69
+msgid "Assault"
+msgstr "Ostrom"
+
+#: qcsrc/common/mapinfo.qh:72
+msgid "Onslaught"
+msgstr "Támadás"
+
+#: qcsrc/common/mapinfo.qh:75
+msgid "Nexball"
+msgstr "Nexball"
+
+#: qcsrc/common/mapinfo.qh:78
+msgid "Freeze Tag"
+msgstr "Fagyasztás"
+
+#: qcsrc/common/mapinfo.qh:81
+msgid "Keepaway"
+msgstr "Önzőség"
+
+#: qcsrc/menu/command/menu_cmd.qc:41
 #, c-format
 msgid "error: status is %d\n"
 msgstr "Hiba: állapot %d\n"
 
-#: qcsrc/menu/gamecommand.qc:65
+#: qcsrc/menu/command/menu_cmd.qc:64
 msgid "Usage: menu_cmd command..., where possible commands are:\n"
 msgstr "Használat: menu_cmd parancs..., ahol a lehetséges parancs:\n"
 
-#: qcsrc/menu/gamecommand.qc:66
+#: qcsrc/menu/command/menu_cmd.qc:65
 msgid "  sync - reloads all cvars on the current menu page\n"
 msgstr "sync - újratölti az összes cvar-t az aktuális menü oldalon\n"
 
-#: qcsrc/menu/gamecommand.qc:67
+#: qcsrc/menu/command/menu_cmd.qc:66
 msgid "  directmenu ITEM - select a menu item as main item\n"
-msgstr " directmenu TÁRGY - kiválaszt egy menü pontot, fő tárgynak\n"
+msgstr " directmenu TÁRGY - kiválaszt egy menü pontot, fő pontként\n"
 
-#: qcsrc/menu/gamecommand.qc:193
+#: qcsrc/menu/command/menu_cmd.qc:179
 msgid "error creating curl handle\n"
 msgstr "Curl kezelő hibát okozott\n"
 
-#: qcsrc/menu/gamecommand.qc:239
+#: qcsrc/menu/command/menu_cmd.qc:186
 msgid "Invalid command. For a list of supported commands, try menu_cmd help.\n"
 msgstr ""
 " Érvénytelen parancs. A támogatott parancsok listájáért, próbáld a menu_cmd "
@@ -75,17 +145,17 @@ msgstr "%d (%s)"
 msgid "custom"
 msgstr "egyéni"
 
-#: qcsrc/menu/menu.qc:29
-#, fuzzy, c-format
+#: qcsrc/menu/menu.qc:37
+#, c-format
 msgid "^4MQC Build information: ^1%s\n"
 msgstr "^4MQC Build információ: %s\n"
 
-#: qcsrc/menu/xonotic/campaign.c:284
-#: qcsrc/menu/xonotic/dialog_singleplayer.c:134
+#: qcsrc/menu/xonotic/campaign.c:288
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:123
 msgid "???"
 msgstr "???"
 
-#: qcsrc/menu/xonotic/campaign.c:285
+#: qcsrc/menu/xonotic/campaign.c:289
 #, c-format
 msgid "Level %d: %s"
 msgstr "Szint %d: %s"
@@ -116,39 +186,62 @@ msgstr "Közreműködők"
 
 #: 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:57
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:61
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:277
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:91
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:96
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:56
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:113
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:74
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:89
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:73
 #: qcsrc/menu/xonotic/dialog_singleplayer_winner.c:21
 msgid "OK"
 msgstr "Rendben"
 
 #: qcsrc/menu/xonotic/dialog_firstrun.c:4
 msgid "Welcome"
-msgstr "Üdvözlet"
+msgstr "Üdvözlünk a Xonoticban!"
 
-#: qcsrc/menu/xonotic/dialog_firstrun.c:33
+#: qcsrc/menu/xonotic/dialog_firstrun.c:40
 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 "Üdvözlünk a Xonotic-ban! Kérjük, a kezdéshez válaszd ki a használni kívánt nyelvet "
-"és írd be a játékos nevedet! Később ezeket meg is tudod változtatni "
-"a menürendszerben."
-
-#: qcsrc/menu/xonotic/dialog_firstrun.c:38
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:35
-msgid "Text language:"
-msgstr "Szöveg nyelv:"
+msgstr ""
+"Üdvözlünk a Xonotic-ban! Kérjük, a kezdéshez válaszd ki a használni kívánt "
+"nyelvet és írd be a játékos nevedet! Ezeket később meg tudod változtatni a "
+"menürendszerben."
 
-#: qcsrc/menu/xonotic/dialog_firstrun.c:47
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:40
+#: qcsrc/menu/xonotic/dialog_firstrun.c:46
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:37
 #: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:39
 msgid "Name:"
 msgstr "Név:"
 
-#: qcsrc/menu/xonotic/dialog_firstrun.c:69
+#: qcsrc/menu/xonotic/dialog_firstrun.c:68
+#: qcsrc/menu/xonotic/dialog_settings_user.c:65
+msgid "Text language:"
+msgstr "Fordítás:"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:77
+msgid "Allow player statistics to use your nickname at stats.xonotic.org?"
+msgstr ""
+"Engedélyezed, hogy a statisztikáid mellett a játékosneved is megjelenjen a "
+"stats.xonotic.org-on?"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:81
+msgid "ALWU2N^Yes"
+msgstr "Igen"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:82
+msgid "ALWU2N^No"
+msgstr "Nem"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:83
+msgid "ALWU2N^Undecided"
+msgstr "Később eldöntöm"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:87
 msgid "Save settings"
 msgstr "Beállítások mentése"
 
@@ -175,7 +268,7 @@ msgstr "Ikon sorrend:"
 #: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:28
 #: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:40
 msgid "Left"
-msgstr "Bal"
+msgstr "Balra"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:30
 #: qcsrc/menu/xonotic/dialog_hudpanel_centerprint.c:38
@@ -184,61 +277,56 @@ msgstr "Bal"
 #: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:30
 #: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:41
 msgid "Right"
-msgstr "Jobb"
+msgstr "Jobbra"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_centerprint.c:4
 msgid "Centerprint"
-msgstr "Közép"
+msgstr "Fontos üzenetek panel"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_centerprint.c:23
-#, fuzzy
 msgid "Message duration:"
-msgstr "Színtelítettség:"
+msgstr "Üzenetek élettartama:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_centerprint.c:27
-#, fuzzy
 msgid "Fade time:"
 msgstr "Bejegyzés elhalványulási ideje:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_centerprint.c:31
-#, fuzzy
 msgid "Flip messages order"
 msgstr "Értesítési sorrend megfordítása"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_centerprint.c:33
-#, fuzzy
 msgid "Text alignment:"
-msgstr "Szöveg igazítás:"
+msgstr "Szöveg igazítása:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_centerprint.c:37
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:50
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:51
 msgid "Center"
-msgstr "Közép"
+msgstr "Középre"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_centerprint.c:41
-#, fuzzy
 msgid "Font scale:"
 msgstr "Betűméret:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:4
 msgid "Chat Panel"
-msgstr "Csevely Panel"
+msgstr "Csevej Panel"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:22
 msgid "Chat entries:"
-msgstr "Csevely bejegyzések:"
+msgstr "Csevej bejegyzések:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:25
 msgid "Chat size:"
-msgstr "Csevely méret:"
+msgstr "Csevej mérete:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:29
 msgid "Chat lifetime:"
-msgstr "Csevely élettartam:"
+msgstr "Csevej élettartam:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:33
 msgid "Chat beep sound"
-msgstr "Csevely sípszó"
+msgstr "Csevej pittyenés"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_engineinfo.c:4
 msgid "Engine Info Panel"
@@ -246,7 +334,7 @@ msgstr "Grafikus motor információs panel"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_engineinfo.c:22
 msgid "Engine info:"
-msgstr "Grafikus motor Információ:"
+msgstr "Grafikus motor információ:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_engineinfo.c:25
 msgid "Use an averaging algorithm for fps"
@@ -264,7 +352,7 @@ msgstr "Állapotsor engedélyezése"
 #: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:24
 #: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:24
 msgid "Status bar alignment:"
-msgstr "Állapotsor igazítás:"
+msgstr "Állapotsor igazítása:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:32
 #: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:42
@@ -283,7 +371,7 @@ msgstr "Kifelé"
 #: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:37
 #: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:37
 msgid "Icon alignment:"
-msgstr "Ikon igazítás:"
+msgstr "Ikonok igazítása:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:45
 msgid "Flip health and armor positions"
@@ -303,7 +391,7 @@ msgstr "Fordított igazítás"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_modicons.c:4
 msgid "Mod Icons Panel"
-msgstr "Mod ikonok panelje"
+msgstr "Játékmód ikonok Panel"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:4
 msgid "Notification Panel"
@@ -315,7 +403,7 @@ msgstr "Értesítések:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:25
 msgid "Also print notifications to the console"
-msgstr "Az értesítéseket a konzolra is kiírja"
+msgstr "Az értesítéseket a konzol is kiírja"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:28
 msgid "Flip notify order"
@@ -330,7 +418,6 @@ msgid "Entry fadetime:"
 msgstr "Bejegyzés elhalványulási ideje:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:4
-#, fuzzy
 msgid "Physics Panel"
 msgstr "Fizika Panel"
 
@@ -341,52 +428,45 @@ msgid "Panel disabled"
 msgstr "Panel kikapcsolva"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:23
-#, fuzzy
 msgid "Panel enabled"
 msgstr "Panel engedélyezése"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:24
-#, fuzzy
 msgid "Panel enabled even observing"
 msgstr "Panel engedélyezett, még nézőként is"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:25
-#, fuzzy
 msgid "Panel enabled only in Race/CTS"
-msgstr "Panel csak Verseny/CTS-ben engedélyezett"
+msgstr "Panel csak Verseny/Ügyességi v.-ben engedélyezett"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:31
-#, fuzzy
 msgid "Status bar"
 msgstr "Állapotsor"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:33
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:48
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:49
 msgid "Left align"
-msgstr "Balra igazít"
+msgstr "Balra igazítva"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:34
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:52
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:53
 msgid "Right align"
-msgstr "Jobbra igazít"
+msgstr "Jobbra igazítva"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:35
-#, fuzzy
 msgid "Inward align"
 msgstr "Befelé"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:36
-#, fuzzy
 msgid "Outward align"
 msgstr "Kifelé"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:40
-#, fuzzy
 msgid "Flip speed/acceleration positions"
-msgstr "Sebesség/gyorsulás poziciójának cseréje"
+msgstr "Sebesség/gyorsulás pozíciójának cseréje"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:44
-#, fuzzy
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:29
 msgid "Speed:"
 msgstr "Sebesség (kB/s):"
 
@@ -419,17 +499,14 @@ msgid "knots"
 msgstr "csomó"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:64
-#, fuzzy
 msgid "Show"
-msgstr "Mutasd"
+msgstr "Látható"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:67
-#, fuzzy
 msgid "Top speed"
 msgstr "Csúcssebesség"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:73
-#, fuzzy
 msgid "Acceleration:"
 msgstr "Gyorsulás:"
 
@@ -439,15 +516,15 @@ msgstr "Függőleges sebességet is"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:4
 msgid "Powerups Panel"
-msgstr "Powerupok Panel"
+msgstr "Turbózó Panel"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:45
 msgid "Flip strength and shield positions"
-msgstr "Erő és pajzs pozíciók felcserélése"
+msgstr "Sebzésnövelő és Védelmező pozíciójának felcserélése"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:4
 msgid "Pressed Keys Panel"
-msgstr "Lenyomott gombok lapja"
+msgstr "Megnyomott gombok Panel"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:22
 msgid "Panel enabled when spectating"
@@ -460,7 +537,7 @@ msgstr "Panel mindig látható"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:30
 msgid "Forced aspect:"
-msgstr "Kényszerített nézőpont:"
+msgstr "Kényszerített arány:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_racetimer.c:4
 msgid "Race Timer Panel"
@@ -481,8 +558,8 @@ 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:154
-#: qcsrc/menu/xonotic/util.qc:600
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:66
+#: qcsrc/menu/xonotic/util.qc:655
 msgid "Alpha:"
 msgstr "Átlátszóság:"
 
@@ -511,6 +588,7 @@ msgid "North"
 msgstr "Észak"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:46
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:61
 msgid "Scale:"
 msgstr "Méret:"
 
@@ -547,7 +625,6 @@ msgid "Rankings:"
 msgstr "Helyezés:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_score.c:26
-#, fuzzy
 msgid "Off"
 msgstr "Kikapcsolva"
 
@@ -565,7 +642,7 @@ msgstr "Időmérő panel"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_timer.c:22
 msgid "Timer:"
-msgstr "Időzítő:"
+msgstr "Időmérő:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_timer.c:25
 msgid "Show elapsed time"
@@ -585,10 +662,9 @@ msgstr "Fegyver panel"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:24
 msgid "Fade out after:"
-msgstr "Elhalványulás késleltetés:"
+msgstr "Elhalványulás késleltetése:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:26
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:36
 msgid "Never"
 msgstr "Soha"
 
@@ -614,7 +690,6 @@ msgid "Alpha"
 msgstr "Halványuló"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:38
-#, fuzzy
 msgid "EF^Both"
 msgstr "Mindkettő"
 
@@ -623,34 +698,38 @@ msgid "Weapon icons:"
 msgstr "Fegyver ikonok:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:45
+msgid "Show only owned weapons"
+msgstr "Csak a saját iránypontjaim megjelenítése"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:48
 msgid "Show weapon ID as:"
 msgstr "A Fegyver ID megjelenítése mint:"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:46
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:49
 msgid "SHOWAS^None"
 msgstr "Sehogy"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:47
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:50
 msgid "Number"
 msgstr "Számmal"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:48
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:51
 msgid "Bind"
 msgstr "Billentyű"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:51
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:54
 msgid "Show Accuracy"
 msgstr "Pontosság mutatása"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:52
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:55
 msgid "Show Ammo"
 msgstr "Lőszer mutatása"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:55
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:58
 msgid "Ammo bar color:"
 msgstr "Lőszer jelző színe:"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:61
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:64
 msgid "Ammo bar alpha:"
 msgstr "Lőszer jelző átlátszósága:"
 
@@ -662,24 +741,24 @@ msgstr "HUD panel beállítása"
 msgid "Panel background defaults:"
 msgstr "Alapértelmezett panel háttér:"
 
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:23 qcsrc/menu/xonotic/util.qc:575
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:23 qcsrc/menu/xonotic/util.qc:630
 msgid "Background:"
 msgstr "Háttér:"
 
 #: 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:578
-#: qcsrc/menu/xonotic/util.qc:594 qcsrc/menu/xonotic/util.qc:611
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:91 qcsrc/menu/xonotic/util.qc:633
+#: qcsrc/menu/xonotic/util.qc:649 qcsrc/menu/xonotic/util.qc:666
 msgid "Disable"
 msgstr "Letiltás"
 
 #: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:30
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:77 qcsrc/menu/xonotic/util.qc:583
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:77 qcsrc/menu/xonotic/util.qc:638
 msgid "Color:"
 msgstr "Szín:"
 
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:35 qcsrc/menu/xonotic/util.qc:591
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:35 qcsrc/menu/xonotic/util.qc:646
 msgid "Border size:"
 msgstr "Keret méret:"
 
@@ -688,11 +767,11 @@ msgstr "Keret méret:"
 msgid "Team color:"
 msgstr "Csapat szín:"
 
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:58 qcsrc/menu/xonotic/util.qc:617
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:58 qcsrc/menu/xonotic/util.qc:672
 msgid "Test team color in configure mode"
 msgstr "Csapat szín tesztelés beállítás közben"
 
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:61 qcsrc/menu/xonotic/util.qc:620
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:61 qcsrc/menu/xonotic/util.qc:675
 msgid "Padding:"
 msgstr "Kitöltés:"
 
@@ -766,128 +845,124 @@ msgstr "Játékos beállítások"
 msgid "Game type:"
 msgstr "Játék típusa:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:46
-msgid "Match settings:"
-msgstr "Meccs beállítások:"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:49
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:48
 msgid "Time limit:"
 msgstr "Időhatár:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:53
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:61
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:52
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:60
 msgid "Use map specified default"
 msgstr "Pályához tartozó alapérték használata"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:56
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:55
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:154
 #: qcsrc/menu/xonotic/dialog_multiplayer_create.c:155
 #: qcsrc/menu/xonotic/dialog_multiplayer_create.c:156
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:157
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:160
 #: qcsrc/menu/xonotic/dialog_multiplayer_create.c:161
 #: qcsrc/menu/xonotic/dialog_multiplayer_create.c:162
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:163
 msgid "Point limit:"
 msgstr "Ponthatár:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:64
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:63
 msgid "Player slots:"
 msgstr "Maximális játékosszám"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:67
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:66
 msgid "Number of bots:"
 msgstr "Botok száma:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:71
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:69
 msgid "Bot skill:"
 msgstr "Botok szintje"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:74
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:72
 msgid "Botlike"
 msgstr "Béna"
 
 # :)))
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:75
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:73
 msgid "Beginner"
 msgstr "Kezdő"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:76
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:74
 msgid "You will win"
 msgstr "Te fogsz nyerni"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:77
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:75
 msgid "You can win"
 msgstr "Nyerhetsz"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:78
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:76
 msgid "You might win"
 msgstr "Talán győzhetsz"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:79
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:77
 msgid "Advanced"
 msgstr "Rutinos"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:80
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:78
 msgid "Expert"
 msgstr "Tapasztalt"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:81
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:79
 msgid "Pro"
 msgstr "Hivatásos"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:82
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:80
 msgid "Assassin"
 msgstr "Gyilkológép"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:83
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:81
 msgid "Unhuman"
 msgstr "Embertelen"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:84
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:82
 msgid "Godlike"
 msgstr "MAGA AZ ISTEN"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:88
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:87
 msgid "Mutators..."
 msgstr "Módosítók..."
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:97
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:57
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:96
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:145
 msgid "Advanced settings..."
 msgstr "Haladó beállítások..."
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:104
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:103
 msgid "Map list:"
 msgstr "Pályalista:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:110
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:109
 msgid "Select all"
 msgstr "Az összes"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:113
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:112
 msgid "Select none"
 msgstr "Egyik sem"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:119
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:118
 msgid "Start Multiplayer!"
 msgstr "Többjátékos indítása!"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:154
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:153
 msgid "Capture limit:"
 msgstr "Zászlórablások száma:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:158
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:157
 msgid "Lives:"
 msgstr "Életek:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:159
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:158
 msgid "Laps:"
 msgstr "Körök:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:160
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:159
 msgid "Goals:"
 msgstr "Célok:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:164
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:163
 msgid "Frag limit:"
 msgstr "Gyilok határérték:"
 
@@ -905,7 +980,7 @@ msgstr "Nézők engedélyezése"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:31
 msgid "Spawn shield:"
-msgstr "Páncél megjelenés:"
+msgstr "Védelmező megjelenése:"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:36
 msgid "Game speed:"
@@ -991,31 +1066,30 @@ msgstr "Minden tárgy elhelyezése"
 msgid "MinstaGib only"
 msgstr "Csak MinstaGib"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:78
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:81
 msgid "Title:"
 msgstr "Cím:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:84
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:87
 msgid "Author:"
 msgstr "Szerző:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:90
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:93
 msgid "Features:"
 msgstr "Jellemzők:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:95
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:98
 msgid "Game types:"
 msgstr "Játék típusok:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:118
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:314
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:121
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:335
 msgid "Close"
 msgstr "Bezár"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:121
-#, fuzzy
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:124
 msgid "MAP^Play"
-msgstr "Indítás"
+msgstr "Pálya indítása"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:7
 msgid "Mutators"
@@ -1035,139 +1109,151 @@ msgid "%s Arena"
 msgstr "%s Aréna"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:68
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:167
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:173
 msgid "Dodging"
 msgstr "Félreugrás"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:70
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:250
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:258
 msgid "MinstaGib"
 msgstr "MinstaGib"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:72
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:253
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:261
 msgid "NIX"
 msgstr "NIX"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:74
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:205
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:213
 msgid "Rocket Flying"
 msgstr "Rakéta repülés"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:78
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:264
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:76
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:210
+msgid "Invincible Projectiles"
+msgstr "Sérthetetlen lövedékek"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:80
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:272
 msgid "No start weapons"
 msgstr "Nincs kezdő fegyver"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:80
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:189
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:82
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:195
 msgid "Low gravity"
 msgstr "Alacsony gravitáció"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:82
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:170
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:84
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:176
 msgid "Cloaked"
 msgstr "Álcázott"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:84
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:86
 msgid "Hook"
 msgstr "Kampó"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:86
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:173
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:88
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:179
 msgid "Midair"
 msgstr "Sebzés csak levegőben"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:88
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:176
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:90
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:182
 msgid "Vampire"
 msgstr "Vámpír"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:90
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:208
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:92
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:216
 msgid "Piñata"
 msgstr "Piñata"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:92
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:211
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:94
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:219
 msgid "Weapons stay"
 msgstr "Fegyverek maradnak"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:94
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:180
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:96
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:186
 msgid "Blood loss"
 msgstr "Vérveszteség"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:96
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:202
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:98
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:207
 msgid "Jet pack"
-msgstr "Jet pack"
+msgstr "Háti rakéta"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:98
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:100
+msgid "No powerups"
+msgstr "Nincsenek Turbózók"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:102
+msgid "Powerups"
+msgstr "Powerup Panel"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:104
 msgid "MUT^None"
 msgstr "Nincs"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:164
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:170
 msgid "Gameplay mutators:"
 msgstr "Játékmenet módosítók:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:196
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:201
 msgid "Weapon & item mutators:"
 msgstr "Fegyver és tárgy módosítók:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:199
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:204
 msgid "Grappling hook"
 msgstr "Vonóhorog"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:215
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:223
 msgid "Weapon arenas:"
 msgstr "Fegyver Arénák:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:218
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:226
 msgid "Regular (no arena)"
 msgstr "Hagyományos (nincs módosítás)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:239
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:256
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:247
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:264
 msgid "with laser"
 msgstr "lézerrel"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:247
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:255
 msgid "Special arenas:"
 msgstr "Különleges Arénák:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:260
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:268
 msgid "Most weapons"
-msgstr "A legtöbb fegyver"
+msgstr "Minden fegyver"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:4
 msgid "Demo"
 msgstr "Demók"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:28
-msgid "Record demos while playing"
+msgid "Automatically record demos while playing"
 msgstr "Játék közben demók rögzítése"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:32
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:31
 #: qcsrc/menu/xonotic/dialog_multiplayer_join.c:28
 msgid "Filter:"
 msgstr "Szűrés:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:33
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:32
 #: 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
+#: qcsrc/menu/xonotic/dialog_settings_input.c:40
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:32
 msgid "Clear"
 msgstr "Törlés"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:43
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:45
 msgid "Timedemo"
 msgstr "Időmérés"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:46
-#, fuzzy
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:48
 msgid "DEMO^Play"
-msgstr "Lejátszás"
+msgstr "Visszajátszás"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join.c:4
 msgid "Join"
@@ -1179,22 +1265,23 @@ msgstr "SRVS^Üres"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join.c:40
 msgid "SRVS^Full"
-msgstr "SRVS^Teli"
+msgstr "SRVS^Megtelt"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join.c:44
 msgid "Pause"
 msgstr "Szünet"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join.c:56
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:262
 msgid "Address:"
 msgstr "Cím:"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join.c:67
 msgid "Info..."
-msgstr "Infó..."
+msgstr "További infó"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join.c:72
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:317
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:342
 msgid "Join!"
 msgstr "Csatlakozok!"
 
@@ -1202,294 +1289,468 @@ msgstr "Csatlakozok!"
 msgid "Server Information"
 msgstr "Szerver információ"
 
-#: 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
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:132
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:133
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:242
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:247
 msgid "N/A"
 msgstr "N/A"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:158
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:179
 #, c-format
-msgid "%d/%d, %d free player slots"
-msgstr "%d/%d, %d szabad férőhely"
+msgid "%d/%d"
+msgstr "%d/%d"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:193
+#: qcsrc/menu/xonotic/util.qc:632 qcsrc/menu/xonotic/util.qc:648
+#: qcsrc/menu/xonotic/util.qc:657 qcsrc/menu/xonotic/util.qc:665
+#: qcsrc/menu/xonotic/util.qc:677
+msgid "Default"
+msgstr "Alapértelmezett"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:172
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:200
 #, c-format
-msgid "%d modified settings"
+msgid "%d modified"
 msgstr "%d módosított beállítások"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:172
-msgid "Official settings"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:200
+msgid "Official"
 msgstr "Hivatalos beállítások"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:197
-msgid "N/A (can't connect)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:208
+msgid "N/A (auth library missing, can't connect)"
 msgstr "N/A (nem tudok csatlakozni)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:205
-msgid "not supported (can't connect)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:210
+msgid "N/A (auth library missing)"
+msgstr "N/A (titkosítási függvénytár hiányzik) "
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:216
+msgid "Not supported (can't connect)"
 msgstr "nem támogatott (nem tudok csatlakozni)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:207
-msgid "not supported (won't encrypt)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:218
+msgid "Not supported (won't encrypt)"
 msgstr "nem támogatott (nem titkosított)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:211
-msgid "supported (will encrypt)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:222
+msgid "Supported (will encrypt)"
 msgstr "támogatott (titkosított)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:213
-msgid "supported (won't encrypt)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:224
+msgid "Supported (won't encrypt)"
 msgstr "támogatott (nem titkosított)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:217
-msgid "requested (will encrypt)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:228
+msgid "Requested (will encrypt)"
 msgstr "kért (titkosított)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:219
-msgid "requested (won't encrypt)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:230
+msgid "Requested (won't encrypt)"
 msgstr "kért (nem titkosított)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:223
-msgid "required (can't connect)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:234
+msgid "Required (can't connect)"
 msgstr "szükséges (nem tudok csatlakozni)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:225
-msgid "required (will encrypt)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:236
+msgid "Required (will encrypt)"
 msgstr "szükséges (titkosított)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:246
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:269
-msgid "Players:"
-msgstr "Játékosok:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:256
+msgid "Hostname:"
+msgstr "Szerver neve:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:254
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:38
-msgid "Type:"
-msgstr "Típus:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:270
+msgid "Gametype:"
+msgstr "Játék típusa:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:259
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:275
 msgid "Map:"
 msgstr "Pálya:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:264
-msgid "Gameplay:"
-msgstr "Játékmenet:"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:274
-msgid "Bots:"
-msgstr "Botok:"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:279
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:280
 msgid "Mod:"
 msgstr "Mod:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:284
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:285
 msgid "Version:"
 msgstr "Verzió:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:289
-msgid "Ping:"
-msgstr "Ping:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:290
+msgid "Settings:"
+msgstr "Beállítások:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:295
-msgid "CA:"
-msgstr "CA:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:297
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:329
+msgid "Players:"
+msgstr "Játékosok:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:301
-msgid "Key:"
-msgstr "Kulcs:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:302
+msgid "Bots:"
+msgstr "Botok:"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:307
+msgid "Free slots:"
+msgstr "Szabad férőhelyek:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:313
 msgid "Encryption:"
 msgstr "Titkosítás:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:63
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:318
+msgid "ID:"
+msgstr "ID:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:323
+msgid "Key:"
+msgstr "Kulcs:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:60
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:19
 msgid "Model:"
 msgstr "Modell:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:87
-msgid "Force player models to mine"
-msgstr "Ellenség modelljeinek kényszerítése az enyémmel megegyezőre"
-
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:88
-msgid "Field of view:"
-msgstr "Látómező:"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:92
-msgid "View bobbing:"
-msgstr "Fej biccenés:"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:96
-msgid "Zoom factor:"
-msgstr "Nagyítási szorzó:"
+msgid "No crosshair"
+msgstr "Nincs célkereszt"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:100
-msgid "Zoom speed:"
-msgstr "Nagyítás sebessége:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:90
+msgid "Per weapon crosshair"
+msgstr "Fegyverenkénti célkereszt"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:103
-msgid "Weapon settings..."
-msgstr "Fegyverzet beállítások..."
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:110
-msgid "Crosshair:"
-msgstr "Célkereszt:"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:111
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:139
-msgid "Per weapon"
-msgstr "Fegyverenként"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:93
+msgid "Custom crosshair"
+msgstr "Egyéni célkereszt"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:130
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:112
 msgid "Crosshair size:"
 msgstr "Célkereszt mérete:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:134
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:117
 msgid "Crosshair alpha:"
 msgstr "Célkereszt átlátszósága:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:138
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:123
 msgid "Crosshair color:"
 msgstr "Célkereszt színe:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:140
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:125
+msgid "Per weapon"
+msgstr "Fegyverenként"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:127
 msgid "By health"
 msgstr "Életerőtől függ"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:143
-#, fuzzy
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:131
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:47
 msgid "Custom"
 msgstr "Egyéni"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:148
-msgid "Enable center dot"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:139
+msgid "Other crosshair settings"
+msgstr "További célkereszt beállítások"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:147
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:6
+msgid "Model settings"
+msgstr "Játékosmodell beállítások"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:153
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:6
+msgid "View settings"
+msgstr "Nézet beállítások"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:159
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:6
+msgid "Weapon settings"
+msgstr "Fegyver beállítások"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:169
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:6
+msgid "HUD settings"
+msgstr "HUD beállítások"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:175
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:203
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:185
+#: qcsrc/menu/xonotic/dialog_settings_input.c:89
+#: qcsrc/menu/xonotic/dialog_settings_user.c:88
+#: qcsrc/menu/xonotic/dialog_settings_video.c:142
+msgid "Apply immediately"
+msgstr "Azonnali alkalmazás"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:6
+msgid "Crosshair settings"
+msgstr "Célkereszt beállítások"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:28
+msgid "Enable center crosshair dot"
 msgstr "Középső pont engedélyezése"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:151
-msgid "Size:"
-msgstr "Méret:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:31
+msgid "Dot size:"
+msgstr "Pont mérete:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:36
+msgid "Dot alpha:"
+msgstr "Pont átlátszósága:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:41
+msgid "Dot color:"
+msgstr "Pont színe:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:158
-msgid "Hit test:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:43
+msgid "Use normal crosshair color"
+msgstr "Célkereszt normális színének használata"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:54
+msgid "Crosshair animations:"
+msgstr "Célkereszt animációk:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:57
+msgid "Smooth effects of crosshairs"
+msgstr "Célkereszt animációk simítása"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:61
+msgid "Use rings to indicate weapon status"
+msgstr "Fegyverállapot-jelző gyűrű a célkereszt körül"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:67
+msgid "Hit testing:"
 msgstr "Találat ellenőrzés:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:159
-msgid "HTST^None"
-msgstr "HTST^Nincs"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:69
+msgid "HTTST^Disabled"
+msgstr "AA^Letiltva"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:160
-msgid "TrueAim"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:70
+msgid "HTTST^TrueAim"
 msgstr "Valós célzás"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:161
-msgid "Enemies"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:71
+msgid "HTTST^Enemies"
 msgstr "Ellenségek"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:164
-msgid "Waypoints setup..."
-msgstr "Iránypontok beállítása..."
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:76
+msgid "Blur crosshair if the shot is obstructed"
+msgstr "Célkereszt elmosása, ha a lövés elakadna valamiben"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:169
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:81
+msgid "Animate when hitting an enemy"
+msgstr "Animáció találat esetén"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:85
+msgid "Animate when picking up an item"
+msgstr "Animáció tárgyfelvétel esetén"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:40
+msgid "Damage:"
+msgstr "Sérülési effekt:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:43
+msgid "Overlay:"
+msgstr "Telítettség:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:47
+msgid "Factor:"
+msgstr "Szorzó:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:52
+msgid "Fade rate:"
+msgstr "Elhalványulási sebesség:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:58
+msgid "Waypoints"
+msgstr "Iránypontok"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:71
+msgid "Edge offset:"
+msgstr "Eltolás:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:80
+msgid "Show names above players"
+msgstr "Játékosok nevének megjelenítése"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:83
+msgid "Only when near crosshair"
+msgstr "Csak a célkereszt közelében lévő játékosokét"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:86
+msgid "Display health and armor"
+msgstr "Életerő és páncél jelzése"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:90
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hudconfirm.c:4
 msgid "Enter HUD editor"
 msgstr "Belépés a HUD szerkesztőbe"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:174
-msgid "Force models:"
-msgstr "Modellek kényszerítése:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hudconfirm.c:28
+msgid "In order for the HUD editor to show, you must first be in game."
+msgstr "Ahhoz, hogy beléphess a HUD szerkesztőbe, játékban kell lenned."
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:175
-msgid "MDL^None"
-msgstr "MDL^Nincs"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hudconfirm.c:30
+msgid "Do you wish to start a local game to set up the HUD?"
+msgstr "Elindítod a speciális HUD szerkesztő pályát?"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:176
-msgid "MDL^Custom"
-msgstr "MDL^Egyéni"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hudconfirm.c:33
+msgid "HDCNFRM^Yes"
+msgstr "Igen"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:177
-msgid "MDL^All"
-msgstr "MDL^Mind"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hudconfirm.c:36
+msgid "HDCNFRM^No"
+msgstr "Nem"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:180
-msgid "Disable gore effects"
-msgstr "Véres hatások letiltása"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:28
+msgid "Body fading:"
+msgstr "Holttestek elhalványulása"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:182
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:31
 msgid "Gibs:"
 msgstr "Húscafatok:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:184
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:33
 msgid "GIBS^None"
 msgstr "GIBS^Nincs"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:185
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:34
 msgid "GIBS^Few"
 msgstr "GIBS^Kevés"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:186
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:35
 msgid "GIBS^Many"
 msgstr "GIBS^Sok"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:187
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:36
 msgid "GIBS^Lots"
 msgstr "GIBS^Rengeteg"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:191
-msgid "Damage splash:"
-msgstr "Sérülési rázkódás:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:40
+msgid "Playermodel LOD:"
+msgstr "Játékos modell LOD:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:195
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:173
-#: 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:109
-msgid "Apply immediately"
-msgstr "Azonnali alkalmazás"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:44
+msgid "Force models:"
+msgstr "Modellek kényszerítése:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:5
-msgid "Waypoints"
-msgstr "Iránypontok"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:45
+msgid "MDL^None"
+msgstr "MDL^Egyiket se"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:23
-msgid "Show base waypoints"
-msgstr "Bázis-iránypontok mutatása"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:46
+msgid "MDL^Custom"
+msgstr "MDL^Egyéni"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:25
-msgid "Waypoint scale:"
-msgstr "Iránypontok mérete:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:47
+msgid "MDL^All"
+msgstr "MDL^Mindet"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:29
-msgid "Waypoint alpha:"
-msgstr "Iránypontok átlátszósága:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:50
+msgid "Force player models to mine"
+msgstr "Ellenség modelljeinek kényszerítése az enyémmel megegyezőre"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:34
-msgid "Show names:"
-msgstr "Nevek mutatása:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:52
+msgid "Force player colors to mine"
+msgstr "Ellenség színeinek kényszerítése az enyémmel megegyezőre"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:37
-msgid "Teammates"
-msgstr "Csapattársak"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:28
+msgid "Field of view:"
+msgstr "Látómező:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:38
-msgid "All players"
-msgstr "Minden játékos"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:31
+msgid "Zoom:"
+msgstr "Nagyítási mód:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:6
-msgid "Weapon settings"
-msgstr "Fegyver beállítások"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:33
+msgid "RETICLE^Fullscreen"
+msgstr "Teljes képernyő"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:34
+msgid "RETICLE^With reticle"
+msgstr "Távcsőkeret mutatása"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:38
+msgid "ZOOM^Factor:"
+msgstr "Szorzó:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:42
+msgid "ZOOM^Speed:"
+msgstr "Sebesség:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:52
+msgid "ZOOM^Instant"
+msgstr "Azonnal"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:56
+msgid "ZOOM^Sensitivity:"
+msgstr "Egér érzékenység:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:59
+msgid "Velocity zoom:"
+msgstr "Nagyítás simítása:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:61
+msgid "VZOOM^Disabled"
+msgstr "Letiltva"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:62
+msgid "VZOOM^Forward only"
+msgstr "Csak nagyításra"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:63
+msgid "VZOOM^All directions"
+msgstr "Nagyításra és kicsinyítésre is"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:67
+msgid "VZOOM^Speed"
+msgstr "Sebesség:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:72
+msgid "Allow passing through walls while spectating"
+msgstr "Nézőként a falakon való áthaladás engedélyezése"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:75
+msgid "1st person perspective"
+msgstr "Első személy nézet"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:79
+msgid "Smooth the view when landing from a jump"
+msgstr "Finom rugózás landoláskor"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:83
+msgid "Smooth the view while crouching"
+msgstr "Finom guggolás"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:87
+msgid "View waving while idle"
+msgstr "Ingadozás egy helyben ácsorgáskor"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:91
+msgid "View bobbing while walking around"
+msgstr "Fej biccentés futás közben"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:96
+msgid "3rd person perspective"
+msgstr "Harmadik személy nézet"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:100
+msgid "Back distance"
+msgstr "Távolság hátrafelé"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:106
+msgid "Up distance"
+msgstr "Távolság felfelé"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:29
 msgid "Weapon priority list:"
 msgstr "Fegyver elsőbbségi lista:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:34
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:33
 msgid "Up"
 msgstr "Fel"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:37
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:36
 msgid "Down"
 msgstr "Le"
 
@@ -1501,13 +1762,21 @@ msgstr "Az elsőbbségi listát használom a fegyverváltáshoz"
 msgid "Auto switch weapons on pickup"
 msgstr "Automatikus váltás a felvett fegyverre"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:45
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:46
 msgid "Draw 1st person weapon model"
-msgstr "Kézben tartott fegyver kirajzolása"
+msgstr "Kézben tartott fegyver megjelenítése"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:55
-msgid "Flip view horizontally"
-msgstr "A képernyő vízszintes tükrözése"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:58
+msgid "Gun model swaying"
+msgstr "Fegyver hintáztatása"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:63
+msgid "Gun model bobbing"
+msgstr "Fegyver biccentése"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:68
+msgid "VWMDL^Scale"
+msgstr "Fegyvermodell mérete"
 
 #: qcsrc/menu/xonotic/dialog_news.c:4
 msgid "News"
@@ -1521,18 +1790,146 @@ msgstr "http://www.xonotic.org/team/blog/"
 msgid "Quit"
 msgstr "Kilépés"
 
-#: qcsrc/menu/xonotic/dialog_quit.c:17
+#: qcsrc/menu/xonotic/dialog_quit.c:18
 msgid "Are you sure you want to quit?"
 msgstr "Biztos ki szeretnél lépni?"
 
-#: qcsrc/menu/xonotic/dialog_quit.c:20
+#: qcsrc/menu/xonotic/dialog_quit.c:21
 msgid "Yes"
 msgstr "Igen"
 
-#: qcsrc/menu/xonotic/dialog_quit.c:21
+#: qcsrc/menu/xonotic/dialog_quit.c:22
 msgid "No"
 msgstr "Nem"
 
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:4
+msgid "Sandbox Tools"
+msgstr "Homokozó eszköztár"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:24
+msgid "Spawn"
+msgstr "Megjelenítés"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:25
+msgid "Remove *"
+msgstr "Eltávolítás"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:27
+msgid "Copy *"
+msgstr "Másolás"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:28
+msgid "Paste"
+msgstr "Beillesztés"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:30
+msgid "Bone:"
+msgstr "Csont:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:35
+msgid "Set * as child"
+msgstr "* hozzárendelése"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:36
+msgid "Attach to *"
+msgstr "Hozzárendelés *-hoz"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:38
+msgid "Detach from *"
+msgstr "Leválasztás * -ról"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:41
+msgid "Visual object properties for *:"
+msgstr "Vizuális tulajdonságok:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:43
+msgid "Set skin:"
+msgstr "Bőr:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:45
+msgid "Set alpha:"
+msgstr "Átlátszóság:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:48
+msgid "Set color main:"
+msgstr "Elsődleges szín:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:50
+msgid "Set color glow:"
+msgstr "Világító szín:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:54
+msgid "Set frame:"
+msgstr "Póz:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:58
+msgid "Physical object properties for *:"
+msgstr "Fizikai tulajdonságok:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:60
+msgid "Set material:"
+msgstr "Anyagjellemzők:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:66
+msgid "Set solidity:"
+msgstr "Szilárdság:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:67
+msgid "Non-solid"
+msgstr "Áthatolható"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:68
+msgid "Solid"
+msgstr "Szilárd:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:69
+msgid "Set physics:"
+msgstr "Fizika:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:70
+msgid "Static"
+msgstr "Statikus"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:71
+msgid "Movable"
+msgstr "Mozgatható"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:72
+msgid "Physical"
+msgstr "Fizikai"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:74
+msgid "Set scale:"
+msgstr "Méret:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:76
+msgid "Set force:"
+msgstr "Erő:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:80
+msgid "Claim *"
+msgstr "* birtokba vétele"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:82
+msgid "* object info"
+msgstr "* objektum információi"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:83
+msgid "* mesh info"
+msgstr "* alakzat információi"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:84
+msgid "* attachment info"
+msgstr "* csatolmány információi"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:85
+msgid "Show help"
+msgstr "Súgó"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:86
+msgid "* is the object you are facing"
+msgstr "A * az az objektum, amelyre nézel"
+
 #: qcsrc/menu/xonotic/dialog_settings.c:4
 msgid "Settings"
 msgstr "Beállítások"
@@ -1550,7 +1947,7 @@ msgstr "Videó"
 #: qcsrc/menu/xonotic/dialog_settings.c:20
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:4
 msgid "Effects"
-msgstr "Hatások"
+msgstr "Effektek"
 
 #: qcsrc/menu/xonotic/dialog_settings.c:21
 #: qcsrc/menu/xonotic/dialog_settings_audio.c:4
@@ -1558,9 +1955,9 @@ msgid "Audio"
 msgstr "Hang"
 
 #: qcsrc/menu/xonotic/dialog_settings.c:22
-#: qcsrc/menu/xonotic/dialog_settings_network.c:4
-msgid "Network"
-msgstr "Hálózat"
+#: qcsrc/menu/xonotic/dialog_settings_user.c:4
+msgid "User"
+msgstr "Felhasználó"
 
 #: qcsrc/menu/xonotic/dialog_settings.c:23
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:4
@@ -1571,194 +1968,170 @@ msgstr "Egyéb"
 msgid "Master:"
 msgstr "Általános:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:33
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:35
 msgid "Music:"
 msgstr "Zene:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:41
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:45
 msgid "VOL^Ambient:"
 msgstr "VOL^Háttérzajok:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:48
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:54
 msgid "Info:"
 msgstr "Információ:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:55
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:63
 msgid "Items:"
 msgstr "Tárgyak:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:62
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:72
 msgid "Pain:"
 msgstr "Fájdalom:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:69
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:81
 msgid "Player:"
 msgstr "Játékosok:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:76
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:90
 msgid "Shots:"
 msgstr "Lövések:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:83
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:99
 msgid "Voice:"
 msgstr "Beszéd:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:91
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:109
 msgid "Weapons:"
 msgstr "Fegyverek:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:98
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:156
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:117
+msgid "New style sound attenuation"
+msgstr "Hangok valósághű csillapítása"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:119
+msgid "Mute sounds when not active"
+msgstr "Elnémítás, ha nem a játék az aktív ablak"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:122
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:194
 msgid "Frequency:"
 msgstr "Frekvencia:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:100
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:124
 msgid "8 kHz"
 msgstr "8 kHz"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:101
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:125
 msgid "11.025 kHz"
 msgstr "11,025 kHz"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:102
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:126
 msgid "16 kHz"
 msgstr "16 kHz"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:103
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:127
 msgid "22.05 kHz"
 msgstr "22,05 kHz"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:104
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:128
 msgid "24 kHz"
 msgstr "24 kHz"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:105
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:129
 msgid "32 kHz"
 msgstr "32 kHz"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:106
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:130
 msgid "44.1 kHz"
 msgstr "44,1 kHz"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:107
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:131
 msgid "48 kHz"
 msgstr "48 kHz"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:110
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:134
 msgid "Channels:"
 msgstr "Csatornák:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:112
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:136
 msgid "Mono"
 msgstr "Monó"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:113
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:137
 msgid "Stereo"
 msgstr "Sztereó"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:114
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:138
 msgid "2.1"
 msgstr "2.1"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:115
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:139
 msgid "4"
 msgstr "4"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:116
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:140
 msgid "5"
 msgstr "5"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:117
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:141
 msgid "5.1"
 msgstr "5.1"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:118
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:142
 msgid "6.1"
 msgstr "6.1"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:119
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:143
 msgid "7.1"
 msgstr "7.1"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:123
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:146
 msgid "Swap Stereo"
 msgstr "Sztereó felcserélése"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:127
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:148
 msgid "Headphone friendly mode"
 msgstr "Fejhallgató barát mód"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:131
-msgid "Spatial voices:"
-msgstr "Utasítások:"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:132
-msgid "VOCS^None"
-msgstr "VOCS^Nincs"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:133
-msgid "VOCS^Taunts"
-msgstr "VOCS^Gúnyolódás"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:134
-msgid "VOCS^All"
-msgstr "VOCS^Minden"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:137
-msgid "Taunt range:"
-msgstr "Gúnyolódások hallhatósága:"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:140
-msgid "RNG^Very short"
-msgstr "RNG^Közvetlen közelről"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:141
-msgid "RNG^Short"
-msgstr "RNG^Közelről"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:142
-msgid "RNG^Normal"
-msgstr "RNG^Normál"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:143
-msgid "RNG^Long"
-msgstr "RNG^Távolról is"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:170
+msgid "Hit indication sound"
+msgstr "Találat jelző"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:144
-msgid "RNG^Full"
-msgstr "RNG^Teljes pályán"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:172
+msgid "Chat message sound"
+msgstr "Csevej pittyenés"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:151
-msgid "Automatic taunts"
-msgstr "Automatikus gúnyolódás"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:174
+msgid "Menu sounds"
+msgstr "Menü hangok"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:160
-msgid "Time warning:"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:177
+msgid "Time announcer:"
 msgstr "Időre figyelmeztetés:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:162
-msgid "WRN^None"
-msgstr "Kikapcsolva"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:179
+msgid "WRN^Disabled"
+msgstr "AA^Letiltva"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:163
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:180
 msgid "1 minute"
 msgstr "1 perc"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:164
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:181
 msgid "5 minutes"
 msgstr "5 perc"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:165
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:182
 msgid "WRN^Both"
 msgstr "Mindkettő"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:168
-msgid "Hit indicator"
-msgstr "Találat jelző"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:189
+msgid "Automatic taunts"
+msgstr "Automatikus gúnyolódás"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:170
-msgid "Menu sounds"
-msgstr "Menü hangok"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:199
+msgid "Debug info about sounds"
+msgstr "Hangok hibakeresési információi"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:38
 msgid "Quality preset:"
@@ -1821,230 +2194,226 @@ msgid "DET^Insane"
 msgstr "DET^Nagyon magas"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:62
-msgid "Antialiasing:"
-msgstr "Élsimítás:"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:64
-msgid "AA^Disabled"
-msgstr "AA^Letiltva"
-
-#: 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 "Textúra felbontás:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:73
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:65
 msgid "RES^Leet"
 msgstr "RES^Semmi"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:74
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:66
 msgid "RES^Lowest"
 msgstr "RES^Legalacsonyabb"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:75
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:67
+msgid "RES^Very low"
+msgstr "RES^Nagyon alacsony"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:68
 msgid "RES^Low"
 msgstr "RES^Alacsony"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:76
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:69
 msgid "RES^Normal"
 msgstr "RES^Normál"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:77
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:70
 msgid "RES^Good"
 msgstr "RES^Jó"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:78
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:71
 msgid "RES^Best"
 msgstr "RES^Legjobb"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:91
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:94
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:84
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:87
 msgid "Avoid lossy texture compression"
-msgstr "Veszteséges textúra tömörítés kikapcsolása"
+msgstr "Veszteséges textúra tömörítés mellőzése"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:100
-msgid "Anisotropy:"
-msgstr "Anizotrópia:"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:102
-msgid "ANISO^Disabled"
-msgstr "ANISO^Letiltva"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:93
+msgid "Use lightmaps"
+msgstr "Fénytérképek használata"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:105
-msgid "8x"
-msgstr "8x"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:94
+msgid "Deluxe mapping"
+msgstr "Deluxe mapping"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:106
-msgid "16x"
-msgstr "16x"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:96
+msgid "Gloss"
+msgstr "Csillogás"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:110
-msgid "Particle quality:"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:100
+msgid "Particles quality:"
 msgstr "Részecskék minősége:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:113
-msgid "Particle distance:"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:103
+msgid "Particles distance:"
 msgstr "Részecskék megjelenítése:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:117
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:106
+msgid "Damage effects:"
+msgstr "Sebzési effektek:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:108
+msgid "DMGPRTCLS^Disabled"
+msgstr "Letiltva"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:109
+msgid "DMGPRTCLS^Skeletal"
+msgstr "Testrészenként"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:110
+msgid "DMGPRTCLS^All"
+msgstr "MDL^Mind"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:114
 msgid "Decals"
 msgstr "Vér- és égésnyomok"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:118
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:115
 msgid "Decals on models"
 msgstr "Foltok a modelleken"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:122
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:119
 msgid "Distance:"
 msgstr "Megjelenítés távolsága:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:128
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:125
 msgid "Time:"
 msgstr "Eltűnés ideje"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:134
-msgid "Use lightmaps"
-msgstr "Fénytérképek használata"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:135
-msgid "Deluxe mapping"
-msgstr "Deluxe mapping"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:137
-msgid "Gloss"
-msgstr "Csillogás"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:140
-msgid "Offset mapping"
-msgstr "Offset mapping"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:142
-msgid "Relief mapping"
-msgstr "Relief mapping"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:145
-msgid "Reflections:"
-msgstr "Tükröződés:"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:148
-msgid "Blurred"
-msgstr "Homályos"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:149
-msgid "REFL^Good"
-msgstr "Refl^Jó"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:150
-msgid "Sharp"
-msgstr "Éles"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:131
+msgid "Coronas"
+msgstr "Fényudvarok"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:155
-msgid "Show surfaces"
-msgstr "Felületek megjelenítése"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:132
+msgid "Use Occlusion Queries"
+msgstr "Láthatósági ellenőrzés"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:157
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:134
 msgid "No dynamic lighting"
 msgstr "Nincsenek dinamikus fények"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:159
-msgid "Flash blend approximation"
-msgstr "Elnagyolt villanások"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:136
+msgid "Fake corona lighting"
+msgstr "Hamis fényudvarok"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:161
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:138
 msgid "Realtime dynamic lighting"
 msgstr "Valós idejű dinamikus fények"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:162
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:166
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:139
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:143
 msgid "Shadows"
 msgstr "Árnyékok"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:165
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:142
 msgid "Realtime world lighting"
 msgstr "Valósidejű világ fények"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:170
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:147
 msgid "Use normal maps"
 msgstr "Normal map használata"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:172
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:149
 msgid "Soft shadows"
 msgstr "Lágy árnyékok"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:175
-msgid "Coronas"
-msgstr "Fényudvarok"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:153
+msgid "Show surfaces"
+msgstr "Felületek megjelenítése"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:176
-msgid "Use Occlusion Queries"
-msgstr "Láthatósági ellenőrzés"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:155
+msgid "Offset mapping"
+msgstr "Offset mapping"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:178
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:157
+msgid "Relief mapping"
+msgstr "Relief mapping"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:159
+msgid "LOD"
+msgstr "LOD"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:162
 msgid "Bloom"
 msgstr "Ragyogás"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:180
-msgid "High Dynamic Range (HDR)"
-msgstr "Magas dinamika tartomány (HDR)"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:164
+msgid "Reflections:"
+msgstr "Tükröződés:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:167
+msgid "Blurred"
+msgstr "Homályos"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:168
+msgid "REFL^Good"
+msgstr "Refl^Jó"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:169
+msgid "Sharp"
+msgstr "Éles"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:184
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:174
 msgid "Motion blur:"
 msgstr "Mozgási elmosódás:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:189
-msgid "Blur and sharpen postprocessing"
-msgstr "Elmosás és élesítés"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:179
+msgid "Extra postprocessing effects"
+msgstr "Extra utófeldolgozási effektek"
 
 #: qcsrc/menu/xonotic/dialog_settings_input.c:26
 msgid "Key bindings:"
 msgstr "Billentyűzet-kiosztás:"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:31
+#: qcsrc/menu/xonotic/dialog_settings_input.c:30
 msgid "Change key..."
 msgstr "Megváltoztatás..."
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:35
+#: qcsrc/menu/xonotic/dialog_settings_input.c:34
 msgid "Edit..."
 msgstr "Szerkesztés..."
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:46
-msgid "Sensitivity:"
-msgstr "Érzékenység:"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:45
+msgid "Pressing \"enter console\" key also closes it"
+msgstr "\"belépés a konzolba\" bezárásra is alkalmas"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:47
+msgid "Automatically repeat jumping if holding jump"
+msgstr "Automatikus ugrás az \"ugrás\" billentyű lenyomva tartásakor"
 
 #: qcsrc/menu/xonotic/dialog_settings_input.c:51
-msgid "UI mouse speed:"
-msgstr "Menü egér sebessége:"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:53
+#: qcsrc/menu/xonotic/dialog_settings_input.c:56
+msgid "Use joystick input"
+msgstr "Botkormány bemenet használata"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:55
-msgid "Mouse filter"
-msgstr "Egérmozgás simítása"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:61
+msgid "Mouse:"
+msgstr "Egér:"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:57
-msgid "Invert mouse"
-msgstr "Fordított egérmozgás"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:64
+msgid "Sensitivity:"
+msgstr "Érzékenység:"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:60
-#: qcsrc/menu/xonotic/dialog_settings_input.c:62
-msgid "Use joystick input"
-msgstr "Botkormány bemenet használata"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:68
+msgid "Smooth aiming"
+msgstr "Egér mozgásának simítása"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:65
-#: qcsrc/menu/xonotic/dialog_settings_input.c:67
-msgid "Turn off OS mouse acceleration"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:71
+msgid "Invert aiming"
+msgstr "Fordított egérmozgás"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:75
+#: qcsrc/menu/xonotic/dialog_settings_input.c:77
+#: qcsrc/menu/xonotic/dialog_settings_input.c:80
+msgid "Disable system mouse acceleration"
 msgstr "OS egér gyorsítás kikapcsolása"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:69
-msgid "\"enter console\" also closes"
-msgstr "\"belépés a konzolba\" zár is"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:85
+msgid "Enable built in mouse acceleration"
+msgstr "Beépített egér gyorsítás engedélyezése"
 
 #: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:5
 msgid "User defined key bind"
@@ -2067,96 +2436,261 @@ msgid "Cancel"
 msgstr "Mégsem"
 
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:26
-msgid "Menu skins:"
-msgstr "Menü felületek:"
+msgid "Network:"
+msgstr "Hálózati kapcsolat típusa:"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:47
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:31
+msgid "56k"
+msgstr "56k"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:32
+msgid "ISDN"
+msgstr "ISDN"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:33
+msgid "Slow ADSL"
+msgstr "Lassú ADSL"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:34
+msgid "Fast ADSL"
+msgstr "Gyors ADSL"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:35
+msgid "Broadband"
+msgstr "Szélessávú"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:39
+msgid "Input packets/s:"
+msgstr "Bemeneti csomagok/s:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:45
+msgid "Local latency:"
+msgstr "Helyi késleltetés:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:50
+msgid "Client UDP port:"
+msgstr "Kliens UDP port:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:55
+msgid "Show netgraph"
+msgstr "Hálózati forgalom megjelenítése"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:59
+msgid "Client-side movement prediction"
+msgstr "Kliensoldali mozgásbecslés"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:62
+msgid "Movement error compensation"
+msgstr "Mozgási hibák javítása"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:66
+msgid "Downloads:"
+msgstr "Letöltések:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:69
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:81
+msgid "Maximum:"
+msgstr "Maximum:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:73
+msgid "Speed (kB/s):"
+msgstr "Sebesség (kB/s):"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:78
+msgid "Framerate:"
+msgstr "Képfrissítés sebessége:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:83
+msgid "MAXFPS^5 fps"
+msgstr "MAXFPS^5 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:84
+msgid "MAXFPS^10 fps"
+msgstr "MAXFPS^10 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:85
+msgid "MAXFPS^20 fps"
+msgstr "MAXFPS^20 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:86
+msgid "MAXFPS^30 fps"
+msgstr "MAXFPS^30 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:87
+msgid "MAXFPS^40 fps"
+msgstr "MAXFPS^40 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:88
+msgid "MAXFPS^50 fps"
+msgstr "MAXFPS^50 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:89
+msgid "MAXFPS^60 fps"
+msgstr "MAXFPS^60 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:90
+msgid "MAXFPS^70 fps"
+msgstr "MAXFPS^70 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:91
+msgid "MAXFPS^100 fps"
+msgstr "MAXFPS^100 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:92
+msgid "MAXFPS^125 fps"
+msgstr "MAXFPS^125 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:93
+msgid "MAXFPS^200 fps"
+msgstr "MAXFPS^200 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:94
+msgid "MAXFPS^Unlimited"
+msgstr "MAXFPS^Korlátlan"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:98
+msgid "Target:"
+msgstr "Cél érték:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:100
+msgid "TRGT^Disabled"
+msgstr "TRGT^Letiltva"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:101
+msgid "TRGT^30 fps"
+msgstr "TRGT^30 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:102
+msgid "TRGT^40 fps"
+msgstr "TRGT^40 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:103
+msgid "TRGT^50 fps"
+msgstr "TRGT^50 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:104
+msgid "TRGT^60 fps"
+msgstr "TRGT^60 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:105
+msgid "TRGT^100 fps"
+msgstr "TRGT^100 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:106
+msgid "TRGT^125 fps"
+msgstr "TRGT^125 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:107
+msgid "TRGT^200 fps"
+msgstr "TRGT^200 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:111
+msgid "Idle limit:"
+msgstr "Tétlenség esetén:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:113
+msgid "IDLFPS^10 fps"
+msgstr "IDLFPS^10 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:114
+msgid "IDLFPS^20 fps"
+msgstr "IDLFPS^20 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:115
+msgid "IDLFPS^30 fps"
+msgstr "IDLFPS^30 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:116
+msgid "IDLFPS^60 fps"
+msgstr "IDLFPS^60 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:117
+msgid "IDLFPS^Unlimited"
+msgstr "IDLFPS^Korlátlan"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:122
+msgid "Show frames per second"
+msgstr "A képkocka/másodperc megjelenítése"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:125
+msgid "Save processing time for other apps"
+msgstr "Feldolgozási adatok elmentése más programok számára"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:129
+msgid "Menu tooltips:"
+msgstr "Menü tippek:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:131
+msgid "TLTIP^Disabled"
+msgstr "TLTIP^Letiltva"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:132
+msgid "TLTIP^Standard"
+msgstr "TLTIP^Normál"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:133
+msgid "TLTIP^Advanced"
+msgstr "TLTIP^Részletes"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:137
 msgid "Show current time"
 msgstr "Jelenlegi idő mutatása"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:49
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:139
 msgid "Show current date"
 msgstr "Mai dátum mutatása"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:51
-msgid "Show frames per second"
-msgstr "A képkocka/másodperc mutatása"
-
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:53
-msgid "Minimize input latency"
-msgstr "Bemeneti késleltetés minimalizása"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:141
+msgid "Enable developer mode"
+msgstr "Fejlesztői mód engedélyezése"
 
 #: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:5
 msgid "Advanced settings"
 msgstr "Haladó beállítások"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:23
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:31
 msgid "Cvar filter:"
 msgstr "Cvar szűrés:"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:34
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:44
 msgid "Setting:"
 msgstr "Beállítás:"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:42
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:48
+msgid "Type:"
+msgstr "Típus:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:52
 msgid "Value:"
 msgstr "Érték:"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:56
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:68
 msgid "Description:"
 msgstr "Leírás:"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:26
-msgid "Client-side movement prediction"
-msgstr "Kliens-oldali mozgásbecslés"
-
-#: qcsrc/menu/xonotic/dialog_settings_network.c:30
-msgid "Show netgraph"
-msgstr "Hálózat forgalom megjelenítése"
-
-#: qcsrc/menu/xonotic/dialog_settings_network.c:33
-msgid "Network speed:"
-msgstr "Hálózat sebessége:"
-
-#: qcsrc/menu/xonotic/dialog_settings_network.c:35
-msgid "56k"
-msgstr "56k"
-
-#: qcsrc/menu/xonotic/dialog_settings_network.c:36
-msgid "ISDN"
-msgstr "ISDN"
-
-#: qcsrc/menu/xonotic/dialog_settings_network.c:37
-msgid "Slow ADSL"
-msgstr "Lassú ADSL"
-
-#: qcsrc/menu/xonotic/dialog_settings_network.c:38
-msgid "Fast ADSL"
-msgstr "Gyors ADSL"
-
-#: qcsrc/menu/xonotic/dialog_settings_network.c:39
-msgid "Broadband"
-msgstr "Szélessávú"
+#: qcsrc/menu/xonotic/dialog_settings_user.c:27
+msgid "Menu skins:"
+msgstr "Menü felületek:"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:42
-msgid "Input packets/s:"
-msgstr "Bemeneti csomagok/s:"
+#: qcsrc/menu/xonotic/dialog_settings_user.c:31
+msgid "Set skin"
+msgstr "Felület beállítása:"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:46
-msgid "HTTP downloads:"
-msgstr "HTTP letöltéseket:"
+#: qcsrc/menu/xonotic/dialog_settings_user.c:74
+msgid "Set language"
+msgstr "Nyelv beállítása"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:49
-msgid "Downloads:"
-msgstr "Letöltések:"
+#: qcsrc/menu/xonotic/dialog_settings_user.c:79
+msgid "Disable gore effects and harsh language"
+msgstr "Véres hatások letiltása"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:53
-msgid "Speed (kB/s):"
-msgstr "Sebesség (kB/s):"
+#: qcsrc/menu/xonotic/dialog_settings_user.c:82
+msgid "Allow player statistics to track your client"
+msgstr "Játékos statisztika küldésének engedélyezése"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:57
-msgid "Client UDP port:"
-msgstr "Kliens UDP port:"
+#: qcsrc/menu/xonotic/dialog_settings_user.c:84
+msgid "Allow player statistics to use your nickname"
+msgstr "Játékosnév megjelenítésének engedélyezése a statisztikákban"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:26
 msgid "Resolution:"
@@ -2164,7 +2698,7 @@ msgstr "Felbontás:"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:29
 msgid "Font/UI size:"
-msgstr "Betük/Menü mérete:"
+msgstr "Betűk/Menü mérete:"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:31
 msgid "SZ^Unreadable"
@@ -2206,103 +2740,173 @@ msgstr "SZ^Óriási"
 msgid "Color depth:"
 msgstr "Színmélység:"
 
+#: qcsrc/menu/xonotic/dialog_settings_video.c:44
+msgid "16bit"
+msgstr "16bit"
+
 #: qcsrc/menu/xonotic/dialog_settings_video.c:45
+msgid "32bit"
+msgstr "32bit"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:48
 msgid "Full screen"
 msgstr "Teljes képernyő"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:46
+#: qcsrc/menu/xonotic/dialog_settings_video.c:49
 msgid "Vertical Synchronization"
-msgstr "Szinkonizálás a képernyő frissítéshez"
+msgstr "Szinkronizálás a képernyő frissítéshez"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:49
-msgid "Use OpenGL 2.0 shaders (GLSL)"
-msgstr "OpenGL 2.0 shaderek (GLSL) használata"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:53
+msgid "Anisotropy:"
+msgstr "Anizotrópia:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:52
-msgid "Use GLSL to handle color control"
-msgstr "GLSL használata a színvezérlés kezeléséhez"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:55
+msgid "ANISO^Disabled"
+msgstr "ANISO^Letiltva"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:56
-msgid "Vertex Buffer Objects (VBOs)"
-msgstr "Vertex Buffer Objects (VBOs)"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:66
+msgid "2x"
+msgstr "2x"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:57
+#: qcsrc/menu/xonotic/dialog_settings_video.c:67
+msgid "4x"
+msgstr "4x"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:58
+msgid "8x"
+msgstr "8x"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:59
-msgid "VBO^Off"
-msgstr "VBO^Off"
+msgid "16x"
+msgstr "16x"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:60
-msgid "Vertices, some Tris (compatible)"
-msgstr "Csúcspontok, néhány háromszög (kompatibilis)"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:62
+msgid "Antialiasing:"
+msgstr "Élsimítás:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:63
-msgid "Vertices"
-msgstr "Csúcspontok"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:65
+msgid "AA^Disabled"
+msgstr "AA^Letiltva"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:64
-msgid "Vertices and Triangles"
-msgstr "Csúcspontok és háromszögek"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:71
+msgid "High-quality frame buffer"
+msgstr "Jó minőségű Framebuffer engedélyezése"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:67
+#: qcsrc/menu/xonotic/dialog_settings_video.c:76
 msgid "Depth first:"
 msgstr "Mélység először:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:69
+#: qcsrc/menu/xonotic/dialog_settings_video.c:78
 msgid "DF^Disabled"
 msgstr "Kikapcsolva"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:70
+#: qcsrc/menu/xonotic/dialog_settings_video.c:79
 msgid "DF^World"
-msgstr "Világ"
+msgstr "DF^Világ"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:71
+#: qcsrc/menu/xonotic/dialog_settings_video.c:80
 msgid "DF^All"
-msgstr "Minden"
+msgstr "DF^Minden"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:83
+msgid "Vertex Buffer Objects (VBOs)"
+msgstr "Vertex Buffer Objektumok (VBO)"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:75
-msgid "Disable multithreaded OpenGL"
-msgstr "Többszálú OpenGL letiltása"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:86
+msgid "VBO^Off"
+msgstr "VBO^Letiltva"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:77
-msgid "Wait for GPU to finish each frame"
-msgstr "Várakozás a GPU-ra minden képkockánál"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:87
+msgid "Vertices, some Tris (compatible)"
+msgstr "Csúcspontok, néhány háromszög (kompatibilis)"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:80
+#: qcsrc/menu/xonotic/dialog_settings_video.c:90
+msgid "Vertices"
+msgstr "Csúcspontok"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:91
+msgid "Vertices and Triangles"
+msgstr "Csúcspontok és háromszögek"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:94
 msgid "Brightness:"
 msgstr "Fényerő:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:83
+#: qcsrc/menu/xonotic/dialog_settings_video.c:97
 msgid "Contrast:"
 msgstr "Kontraszt:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:86
+#: qcsrc/menu/xonotic/dialog_settings_video.c:100
 msgid "Gamma:"
 msgstr "Gamma:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:91
+#: qcsrc/menu/xonotic/dialog_settings_video.c:105
 msgid "Contrast boost:"
 msgstr "Kontraszt növelés:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:96
+#: qcsrc/menu/xonotic/dialog_settings_video.c:110
 msgid "Saturation:"
 msgstr "Színtelítettség:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:102
+#: qcsrc/menu/xonotic/dialog_settings_video.c:116
 msgid "LIT^Ambient:"
 msgstr "Környezet:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:105
+#: qcsrc/menu/xonotic/dialog_settings_video.c:119
 msgid "Intensity:"
 msgstr "Erősség:"
 
+#: qcsrc/menu/xonotic/dialog_settings_video.c:123
+msgid "Use OpenGL 2.0 shaders (GLSL)"
+msgstr "OpenGL 2.0 shaderek (GLSL) használata"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:125
+msgid "Use GLSL to handle color control"
+msgstr "GLSL használata a színvezérlés kezeléséhez"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:128
+msgid "Wait for GPU to finish each frame"
+msgstr "Várakozás a GPU-ra minden képkockánál"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:132
+msgid "Psycho coloring (easter egg)"
+msgstr "Pszichedelikus fények (csak a poén kedvéért)"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:135
+msgid "Trippy vertices (easter egg)"
+msgstr "Mint aki be van rúgva (csak a poén kedvéért)"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:138
+msgid "Flip view horizontally"
+msgstr "A képernyő vízszintes tükrözése"
+
 #: qcsrc/menu/xonotic/dialog_singleplayer.c:4
 msgid "Singleplayer"
 msgstr "Egyjátékos mód"
 
-#: qcsrc/menu/xonotic/dialog_singleplayer.c:127
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:116
 msgid "Instant action! (random map with bots)"
 msgstr "Azonnali játék (véletlenszerű pálya botokkal)"
 
-#: qcsrc/menu/xonotic/dialog_singleplayer.c:148
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:137
+msgid "Campaign Difficulty:"
+msgstr "Nehézségi fokozat:"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:138
+msgid "CSKL^Easy"
+msgstr "CSKL^Könnyű"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:139
+msgid "CSKL^Medium"
+msgstr "CSKL^Középszint"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:140
+msgid "CSKL^Hard"
+msgstr "CSKL^Nehéz"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:142
 msgid "Start Singleplayer!"
 msgstr "Egyjátékos mód indítása"
 
@@ -2338,23 +2942,23 @@ msgstr "Rózsaszín"
 msgid "spectate"
 msgstr "Nézőként csatlakozok"
 
-#: qcsrc/menu/xonotic/mainwindow.c:35 qcsrc/menu/xonotic/mainwindow.c:38
+#: qcsrc/menu/xonotic/mainwindow.c:39 qcsrc/menu/xonotic/mainwindow.c:42
 msgid "Do not press this button again!"
 msgstr "Ne nyomd meg újra ezt a gombot!"
 
-#: qcsrc/menu/xonotic/maplist.c:278
+#: qcsrc/menu/xonotic/maplist.c:282
 msgid ""
 "Huh? Can't play this (m is NULL). Refiltering so this won't happen again.\n"
 msgstr ""
 "Jajj? Ezzel nem lehet játszani (m is NULL). Állítsd át a szűrést, hogy ne "
 "ismétlődjön meg!\n"
 
-#: qcsrc/menu/xonotic/maplist.c:286
+#: qcsrc/menu/xonotic/maplist.c:290
 #, c-format
 msgid "%s's Xonotic Server"
 msgstr "%s Xonotic szervere"
 
-#: qcsrc/menu/xonotic/maplist.c:291
+#: qcsrc/menu/xonotic/maplist.c:295
 msgid ""
 "Huh? Can't play this (invalid game type). Refiltering so this won't happen "
 "again.\n"
@@ -2363,7 +2967,11 @@ msgstr ""
 "szűrést, hogy ne ismétlődjön meg!\n"
 "."
 
-#: qcsrc/menu/xonotic/playermodel.c:174
+#: qcsrc/menu/xonotic/playerlist.c:118 qcsrc/menu/xonotic/playerlist.c:128
+msgid "spectator"
+msgstr "Nézőként csatlakozok"
+
+#: qcsrc/menu/xonotic/playermodel.c:177
 msgid "<no model found>"
 msgstr "<modell nem található>"
 
@@ -2375,23 +2983,23 @@ msgstr "Eltávolítás"
 msgid "Bookmark"
 msgstr "Könyvjelző"
 
-#: qcsrc/menu/xonotic/serverlist.c:527
+#: qcsrc/menu/xonotic/serverlist.c:548
 msgid "Ping"
 msgstr "Ping"
 
-#: qcsrc/menu/xonotic/serverlist.c:528
+#: qcsrc/menu/xonotic/serverlist.c:549
 msgid "Host name"
-msgstr "Gazda név"
+msgstr "Szerver név"
 
-#: qcsrc/menu/xonotic/serverlist.c:529
+#: qcsrc/menu/xonotic/serverlist.c:550
 msgid "Map"
 msgstr "Pálya"
 
-#: qcsrc/menu/xonotic/serverlist.c:530
+#: qcsrc/menu/xonotic/serverlist.c:551
 msgid "Type"
 msgstr "Típus"
 
-#: qcsrc/menu/xonotic/serverlist.c:531
+#: qcsrc/menu/xonotic/serverlist.c:552
 msgid "Players"
 msgstr "Játékosok"
 
@@ -2421,25 +3029,25 @@ msgstr "%s dB"
 msgid "%dx%d"
 msgstr "%dx%d"
 
-#: qcsrc/menu/xonotic/util.qc:270
+#: qcsrc/menu/xonotic/util.qc:276
 #, c-format
 msgid "Received HTTP request data for an invalid id %d.\n"
 msgstr "Érvénytelen HTTP adatkérés érkezett id %d.\n"
 
-#: qcsrc/menu/xonotic/util.qc:285
+#: qcsrc/menu/xonotic/util.qc:291
 #, c-format
 msgid "error receiving update notification: status is %d\n"
 msgstr "Frissítési értesítési hiba: az állapota %d\n"
 
-#: qcsrc/menu/xonotic/util.qc:290
+#: qcsrc/menu/xonotic/util.qc:296
 msgid "error: received HTML instead of an update notification\n"
 msgstr "Hiba: frissítési értesítés helyett egy HTML-t kapott\n"
 
-#: qcsrc/menu/xonotic/util.qc:295
+#: qcsrc/menu/xonotic/util.qc:301
 msgid "error: received carriage returns from update notification server\n"
 msgstr "Hiba: a frissítés értesítő szerverről egy 'kocsi vissza'-t kapott\n"
 
-#: qcsrc/menu/xonotic/util.qc:316
+#: qcsrc/menu/xonotic/util.qc:322
 #, c-format
 msgid ""
 "Update can be downloaded at:\n"
@@ -2448,21 +3056,21 @@ msgstr ""
 "Frissítés letölthető: \n"
 "%s -ről\n"
 
-#: qcsrc/menu/xonotic/util.qc:337
+#: qcsrc/menu/xonotic/util.qc:351
 msgid "Autogenerating mapinfo for newly added maps..."
 msgstr "MapInfo készítése az újonnan hozzáadott pályákhoz..."
 
-#: qcsrc/menu/xonotic/util.qc:367
+#: qcsrc/menu/xonotic/util.qc:381
 #, c-format
 msgid "^1%s TEST BUILD"
 msgstr "^1%s TEST BUILD"
 
-#: qcsrc/menu/xonotic/util.qc:432
+#: qcsrc/menu/xonotic/util.qc:439
 #, c-format
 msgid "Update to %s now!"
-msgstr "Most frissítsd %s-re/ra!"
+msgstr "Frissítés %s-re/ra!"
 
-#: qcsrc/menu/xonotic/util.qc:501
+#: qcsrc/menu/xonotic/util.qc:524
 msgid ""
 "^1ERROR: Texture compression is required but not supported.\n"
 "^1Expect visual problems.\n"
@@ -2470,482 +3078,389 @@ msgstr ""
 "^1Hiba: textúra tömörítés szükséges, de nem támogatott.\n"
 "^1Gondok lehetnek a megjelenítéssel.\n"
 
-#: qcsrc/menu/xonotic/util.qc:523
-msgid "Arena"
-msgstr "Aréna"
+#: qcsrc/menu/xonotic/util.qc:643
+msgid "Use default"
+msgstr "Alapértékek használata"
 
-#: qcsrc/menu/xonotic/util.qc:524
-msgid "Assault"
-msgstr "Ostrom"
+#: qcsrc/menu/xonotic/util.qc:663
+msgid "Team Color:"
+msgstr "Csapat színe:"
 
-#: qcsrc/menu/xonotic/util.qc:525
-msgid "Capture The Flag"
-msgstr "Zászlórablás"
+#: qcsrc/menu/xonotic/util.qh:50
+msgid "Enable panel"
+msgstr "Panel engedélyezése"
 
-#: qcsrc/menu/xonotic/util.qc:526
-msgid "Clan Arena"
-msgstr "Klán Aréna"
+#: weapons.qc.tmp:1
+msgid "Rifle"
+msgstr "Vadászpuskauska"
 
-#: qcsrc/menu/xonotic/util.qc:527
-msgid "Deathmatch"
-msgstr "Haláljátszma"
+#: weapons.qc.tmp:2
+msgid "Machine Gun"
+msgstr "Gépfegyver"
 
-#: qcsrc/menu/xonotic/util.qc:528
-msgid "Domination"
-msgstr "Uralom"
+#: weapons.qc.tmp:3
+msgid "Rocket Launcher"
+msgstr "Rakétavető"
 
-#: qcsrc/menu/xonotic/util.qc:529
-msgid "Freeze Tag"
-msgstr "Fagyasztás"
+#: weapons.qc.tmp:4
+msgid "Port-O-Launch"
+msgstr "Port-O-Launch"
 
-#: qcsrc/menu/xonotic/util.qc:530
-msgid "Keepaway"
-msgstr "Önzőség"
+#: weapons.qc.tmp:5
+msgid "Grappling Hook"
+msgstr "Vonóhorog"
 
-#: qcsrc/menu/xonotic/util.qc:531
-msgid "Key Hunt"
-msgstr "Kulcsvadászat"
+#: weapons.qc.tmp:6
+msgid "Electro"
+msgstr "Electro"
 
-#: qcsrc/menu/xonotic/util.qc:532
-msgid "Last Man Standing"
-msgstr "Csak egy maradhat"
+#: weapons.qc.tmp:7
+msgid "Laser"
+msgstr "Lézer"
 
-#: qcsrc/menu/xonotic/util.qc:533
-msgid "Nexball"
-msgstr "Nexball"
+#: weapons.qc.tmp:8
+msgid "Shotgun"
+msgstr "Puska"
 
-#: qcsrc/menu/xonotic/util.qc:534
-msgid "Onslaught"
-msgstr "Támadás"
+#: weapons.qc.tmp:9
+#, c-format
+msgid "@!#%'n Tuba"
+msgstr "ki@!#%tt Tuba"
 
-#: qcsrc/menu/xonotic/util.qc:535
-msgid "Race"
-msgstr "Verseny"
+#: weapons.qc.tmp:10
+msgid "MinstaNex"
+msgstr "MinstaGib"
 
-#: qcsrc/menu/xonotic/util.qc:536
-msgid "Race CTS"
-msgstr "Ügyességi verseny"
+#: weapons.qc.tmp:11
+msgid "Crylink"
+msgstr "Crylink"
 
-#: qcsrc/menu/xonotic/util.qc:537
-msgid "Runematch"
-msgstr "Rúnameccs"
+#: weapons.qc.tmp:12
+msgid "Heavy Laser Assault Cannon"
+msgstr "Nehéz Lézer Rohamágyú"
 
-#: qcsrc/menu/xonotic/util.qc:538
-msgid "Team Deathmatch"
-msgstr "Csapat[os] öldöklés "
+#: weapons.qc.tmp:13
+msgid "Mortar"
+msgstr "Gránátvető"
 
-#: qcsrc/menu/xonotic/util.qc:557
-#, c-format
-msgid "@!#%'n Tuba Throwing"
-msgstr "@!#%'n Tuba Dobás"
+#: weapons.qc.tmp:14
+msgid "Hagar"
+msgstr "Hagar"
 
-#: qcsrc/menu/xonotic/util.qc:577 qcsrc/menu/xonotic/util.qc:593
-#: qcsrc/menu/xonotic/util.qc:602 qcsrc/menu/xonotic/util.qc:610
-#: qcsrc/menu/xonotic/util.qc:622
-msgid "Default"
-msgstr "Alapértelmezett"
+#: weapons.qc.tmp:15
+msgid "T.A.G. Seeker"
+msgstr "T.A.G. Seeker"
 
-#: qcsrc/menu/xonotic/util.qc:588
-msgid "Use default"
-msgstr "Alapértékek használata"
+#: weapons.qc.tmp:16
+msgid "Fireball"
+msgstr "Tűzgömb"
 
-#: qcsrc/menu/xonotic/util.qc:608
-msgid "Team Color:"
-msgstr "Csapat színe:"
+#: weapons.qc.tmp:17
+msgid "Mine Layer"
+msgstr "Aknavető"
 
-#: qcsrc/menu/xonotic/util.qh:47
-msgid "Enable panel"
-msgstr "Panel engedélyezése"
+#: weapons.qc.tmp:18
+msgid "Nex"
+msgstr "Nex"
 
-#: qcsrc/server/w_crylink.qc:2
-msgid "Crylink"
-msgstr "Crylink"
+#~ msgid "Waypoint settings:"
+#~ msgstr "Iránypont beállítások:"
 
-#: qcsrc/server/w_crylink.qc:666
-#, c-format
-msgid "%s succeeded at self-destructing themself with the Crylink"
-msgstr "%s sikeres öngyikosságot követett el Crylinkkel"
+#~ msgid ""
+#~ "Please answer a few initial questions to enhance the game experience."
+#~ msgstr ""
+#~ "A jobb játékélmény érdekében, kérlek, válaszolj pár inditó kérdésre!"
 
-#: qcsrc/server/w_crylink.qc:671
-#, c-format
-msgid "%s could not hide from %s's Crylink"
-msgstr "%s nem menekülhetett %s Crylinkje elől"
+#~ msgid "Accelerometer scale:"
+#~ msgstr "Gyorsulásmérő beosztás:"
 
-#: qcsrc/server/w_crylink.qc:673
-#, c-format
-msgid "%s was too close to %s's Crylink"
-msgstr "%s túl közel hajolt %s Crylinkjéhez"
+#~ msgid "Show accelerometer"
+#~ msgstr "Gyorsulásmérő mutatása"
 
-#: qcsrc/server/w_crylink.qc:675
-#, c-format
-msgid "%s took a close look at %s's Crylink"
-msgstr "%s  közelebbről megleste %s Crylinkjét"
+#~ msgid "qu/s (hidden)"
+#~ msgstr "qu/s (rejtett)"
 
-#: qcsrc/server/w_electro.qc:2
-msgid "Electro"
-msgstr "Electro"
+#~ msgid "Speedometer"
+#~ msgstr "Sebességmérő"
 
-#: qcsrc/server/w_electro.qc:574
-#, c-format
-msgid "%s could not remember where they put plasma"
-msgstr "%s nem tudja, hogy mire való a plazma"
+#, fuzzy
+#~ msgid "Powerup sharpen"
+#~ msgstr "Powerup élesítés"
 
-#: qcsrc/server/w_electro.qc:576
-#, c-format
-msgid "%s played with plasma"
-msgstr "%s  plazmával játszadozott"
+#, fuzzy
+#~ msgid "Damage & water blur"
+#~ msgstr "Sérülés és víz elmosás"
 
-#: qcsrc/server/w_electro.qc:583
-#, c-format
-msgid "%s just noticed %s's blue ball"
-msgstr "%s csak most vette észre %s kék golyóját"
+#~ msgid "%s was riddled full of holes by %s"
+#~ msgstr "%s -t %s szitává lyuggatta"
 
-#: qcsrc/server/w_electro.qc:585
-#, c-format
-msgid "%s got in touch with %s's blue ball"
-msgstr "%s lefejelte %s kék golyóját"
+#~ msgid "%s died of %s's great playing on the @!#%%'n Tuba"
+#~ msgstr "%s meghalt %s nagyszerű  ki@!#%%tt Tuba játékától"
 
-#: qcsrc/server/w_electro.qc:590
-#, c-format
-msgid "%s felt the electrifying air of %s's combo"
-msgstr "%s felvillanyozódott %s kombójától"
+#~ msgid "%s hurt his own ears with the @!#%%'n Tuba"
+#~ msgstr "%s se bírta tovább a ki@!#%%tt Tuba hangját"
 
-#: qcsrc/server/w_electro.qc:592
-#, c-format
-msgid "%s got too close to %s's blue beam"
-msgstr "%s túl közel került %s kék sugarához"
+#~ msgid "%s was gunned by %s"
+#~ msgstr "%s-t lelőtte %s"
 
-#: qcsrc/server/w_electro.qc:594
-#, c-format
-msgid "%s was blasted by %s's blue beam"
-msgstr "%s megsemmisült %s kék sugarától"
+#~ msgid "%2$s ^7slapped %1$s ^7around a bit with a large ^2shotgun"
+#~ msgstr ""
+#~ "%2$s ^7úgy elverte %1$s -t ^7 a ^2puskályával, mintha ^7szívlapáttal "
+#~ "csapta volna agyon"
 
-#: qcsrc/server/w_fireball.qc:2
-#, fuzzy
-msgid "Fireball"
-msgstr "Tűzgolyó"
+#~ msgid "%s was tagged by %s"
+#~ msgstr "%s-t megjelölte %s"
 
-#: qcsrc/server/w_fireball.qc:417
-#, c-format
-msgid "%s forgot about some firemine"
-msgstr "%s megfeledkezett pár gyújtóbombáról"
+#~ msgid "%s ate %s's rocket"
+#~ msgstr "%s megette %s rakétáját"
 
-#: qcsrc/server/w_fireball.qc:419 qcsrc/server/w_hlac.qc:240
-#, c-format
-msgid "%s should have used a smaller gun"
-msgstr "%s játszott volna vízipisztollyal "
+#~ msgid "%s almost dodged %s's rocket"
+#~ msgstr "%s majdnem kicselezte %s rakétáját"
 
-#: qcsrc/server/w_fireball.qc:426
-#, c-format
-msgid "%s tried to catch %s's firemine"
-msgstr "%s  megpróbálta elkapni %s gyújtóbombáját"
+#~ msgid "%s got too close to %s's rocket"
+#~ msgstr "%s túl közel kerül %s rakétájához"
 
-#: qcsrc/server/w_fireball.qc:428
-#, c-format
-msgid "%s fatefully ignored %s's firemine"
-msgstr "%s már tudja, hogy %s gyújtóbombájának figyelmen kívül hagyása végzetes."
+#~ msgid "%s was sniped by %s"
+#~ msgstr "%s -t levadászta %s"
 
-#: qcsrc/server/w_fireball.qc:435
-#, c-format
-msgid "%s could not hide from %s's fireball"
-msgstr "%s nem tudott elbújni %s tűzgolyójától"
+#~ msgid "%s got hit in the head by %s"
+#~ msgstr "%s -t fejen találta %s"
 
-#: qcsrc/server/w_fireball.qc:437
-#, c-format
-msgid "%s saw the pretty lights of %s's fireball"
-msgstr "%s látthatta %s tűzgolyójának csinos fényeit"
+#~ msgid "%s failed to hide from %s's rifle"
+#~ msgstr "%s -nak nem sikerült elbújnia %s puskája elöl"
 
-#: qcsrc/server/w_fireball.qc:440
-#, c-format
-msgid "%s got too close to %s's fireball"
-msgstr "%s túl közel merészkedett  %s tűzgolyójához"
+#~ msgid "%s died in %s's bullet hail"
+#~ msgstr "%s meghalt %s golyózáporában"
 
-#: qcsrc/server/w_fireball.qc:442
-#, c-format
-msgid "%s tasted %s's fireball"
-msgstr "%s megízlelte %s tűzgolyóját"
+#~ msgid "%s failed to hide from %s's bullet hail"
+#~ msgstr "%s -nak nem sikerült elbújnia %s golyózápora elől "
 
-#: qcsrc/server/w_grenadelauncher.qc:2
-#, fuzzy
-msgid "Mortar"
-msgstr "Mortar"
+#~ msgid "%s sniped themself somehow"
+#~ msgstr "%s  valahogy levadászta saját magát"
 
-#: qcsrc/server/w_grenadelauncher.qc:383
-#, c-format
-msgid "%s tried out his own grenade"
-msgstr "%s kipróbálta saját gránátját"
+#~ msgid "%s shot themself automatically"
+#~ msgstr "%s saját magát lőtte agyon"
 
-#: qcsrc/server/w_grenadelauncher.qc:385
-#, fuzzy, c-format
-msgid "%s detonated"
-msgstr "%s  felrobbant"
+#~ msgid "%s felt %s doing the impossible to him"
+#~ msgstr "%s érezte, hogy %s lehetetlent tett vele"
 
-#: qcsrc/server/w_grenadelauncher.qc:391
-#, c-format
-msgid "%s didn't see %s's grenade"
-msgstr "%s nem látta %s gránátját"
+#~ msgid "%s has been vaporized by %s"
+#~ msgstr "%s -t gázzá vált %s által"
 
-#: qcsrc/server/w_grenadelauncher.qc:393
-#, c-format
-msgid "%s almost dodged %s's grenade"
-msgstr "%s majdnem kicselezte %s gránátját"
+#~ msgid "%s is now thinking with portals"
+#~ msgstr "%s most már portálokkal mereng"
 
-#: qcsrc/server/w_grenadelauncher.qc:395
-#, c-format
-msgid "%s ate %s's grenade"
-msgstr "%s bekapta %s gránátját"
+#~ msgid "%s stepped on %s's mine"
+#~ msgstr "%s rálépett %s aknájára"
 
-#: qcsrc/server/w_hagar.qc:2
-msgid "Hagar"
-msgstr "Hagar"
+#~ msgid "%s almost dodged %s's mine"
+#~ msgstr "%s majdnem elkerülte %s aknáját"
 
-#: qcsrc/server/w_hagar.qc:395 qcsrc/server/w_seeker.qc:655
-#, c-format
-msgid "%s played with tiny rockets"
-msgstr "%s  kis rakétákkal játszott"
+#~ msgid "%s got too close to %s's mine"
+#~ msgstr "%s túl közel került %s aknájához"
 
-#: qcsrc/server/w_hagar.qc:399
-#, c-format
-msgid "%s hoped %s's missiles wouldn't bounce"
-msgstr "%s remélte, hogy %s rakétája nem éri el"
+#~ msgid "%s exploded"
+#~ msgstr "%s felrobbant"
 
-#: qcsrc/server/w_hagar.qc:401 qcsrc/server/w_seeker.qc:661
-#, c-format
-msgid "%s was pummeled by %s"
-msgstr "%s -t ledarálta %s Hagarja"
+#~ msgid "%s was lasered to death by %s"
+#~ msgstr "%s meghalt %s lézere által"
 
-#: qcsrc/server/w_hlac.qc:2
-msgid "Heavy Laser Assault Cannon"
-msgstr "Nehéz Lézer Roham Ágyú"
+#~ msgid "%s was cut in half by %s's gauntlet"
+#~ msgstr "%s -t félbevágta %s kesztyűje"
 
-#: qcsrc/server/w_hlac.qc:242
-#, c-format
-msgid "%s was cut down by %s"
-msgstr "%s -t feldarabolta %s"
+#~ msgid "%s lasered themself to hell"
+#~ msgstr "%s magán lézershowja rosszul sült el"
 
-#: qcsrc/server/w_hook.qc:2
-#, fuzzy
-msgid "Grappling Hook"
-msgstr "Vonóhorog"
+#~ msgid "%s has run into %s's gravity bomb"
+#~ msgstr "%s beleszalad %s gravitációs bombájába"
 
-#: qcsrc/server/w_hook.qc:266 qcsrc/server/w_porto.qc:296
-#, c-format
-msgid "%s did the impossible"
-msgstr "%s megcsinálta a lehetetlent"
+#~ msgid "%s did the impossible"
+#~ msgstr "%s megcsinálta a lehetetlent"
 
-#: qcsrc/server/w_hook.qc:268
-#, c-format
-msgid "%s has run into %s's gravity bomb"
-msgstr "%s beleszalad %s gravitációs bombájába"
+#~ msgid "%s was cut down by %s"
+#~ msgstr "%s -t feldarabolta %s"
 
-#: qcsrc/server/w_laser.qc:2
-#, fuzzy
-msgid "Laser"
-msgstr "Lézer"
+#~ msgid "%s was pummeled by %s"
+#~ msgstr "%s -t ledarálta %s Hagarja"
 
-#: qcsrc/server/w_laser.qc:311
-#, c-format
-msgid "%s lasered themself to hell"
-msgstr "%s magán lézershowja rosszul sült el"
+#~ msgid "%s hoped %s's missiles wouldn't bounce"
+#~ msgstr "%s remélte, hogy %s rakétája nem éri el"
 
-#: qcsrc/server/w_laser.qc:315
-#, c-format
-msgid "%s was cut in half by %s's gauntlet"
-msgstr "%s -t félbevágta %s kesztyűje"
+#~ msgid "%s played with tiny rockets"
+#~ msgstr "%s  kis rakétákkal önfelgyújtósat játszott"
 
-#: qcsrc/server/w_laser.qc:317
-#, c-format
-msgid "%s was lasered to death by %s"
-msgstr "%s meghalt %s lézere által"
+#~ msgid "%s ate %s's grenade"
+#~ msgstr "%s bekapta %s gránátját"
 
-#: qcsrc/server/w_minelayer.qc:2
-#, fuzzy
-msgid "Mine Layer"
-msgstr "Aknavető"
+#~ msgid "%s almost dodged %s's grenade"
+#~ msgstr "%s majdnem kicselezte %s gránátját"
 
-#: qcsrc/server/w_minelayer.qc:523 qcsrc/server/w_rocketlauncher.qc:501
-#, c-format
-msgid "%s exploded"
-msgstr "%s felrobbant"
+#~ msgid "%s didn't see %s's grenade"
+#~ msgstr "%s nem látta %s gránátját"
 
-#: qcsrc/server/w_minelayer.qc:527
-#, c-format
-msgid "%s got too close to %s's mine"
-msgstr "%s túl közel került %s aknájához"
+#~ msgid "%s detonated"
+#~ msgstr "%s  felrobbant"
 
-#: qcsrc/server/w_minelayer.qc:529
-#, c-format
-msgid "%s almost dodged %s's mine"
-msgstr "%s majdnem elkerülte %s aknáját"
+#~ msgid "%s tried out his own grenade"
+#~ msgstr "%s kipróbálta a saját gránátját"
 
-#: qcsrc/server/w_minelayer.qc:531
-#, c-format
-msgid "%s stepped on %s's mine"
-msgstr "%s rálépett %s aknájára"
+#~ msgid "%s tasted %s's fireball"
+#~ msgstr "%s megízlelte %s tűzgolyóját"
 
-#: qcsrc/server/w_minstanex.qc:2
-#, fuzzy
-msgid "MinstaNex"
-msgstr "MinstaGib"
+#~ msgid "%s got too close to %s's fireball"
+#~ msgstr "%s túl közel merészkedett  %s tűzgolyójához"
 
-#: qcsrc/server/w_minstanex.qc:293 qcsrc/server/w_nex.qc:253
-#: qcsrc/server/w_shotgun.qc:215 qcsrc/server/w_uzi.qc:317
-#, c-format
-msgid "%s is now thinking with portals"
-msgstr "%s most már portálokkal mereng"
+#~ msgid "%s saw the pretty lights of %s's fireball"
+#~ msgstr "%s látthatta %s tűzgolyójának csinos fényeit"
 
-#: qcsrc/server/w_minstanex.qc:295 qcsrc/server/w_nex.qc:255
-#, c-format
-msgid "%s has been vaporized by %s"
-msgstr "%s -t gázzá vált %s által"
+#~ msgid "%s could not hide from %s's fireball"
+#~ msgstr "%s nem tudott elbújni %s tűzgolyója elől"
 
-#: qcsrc/server/w_nex.qc:2
-#, fuzzy
-msgid "Nex"
-msgstr "Nex"
+#~ msgid "%s fatefully ignored %s's firemine"
+#~ msgstr ""
+#~ "%s már tudja, hogy %s gyújtóbombájának figyelmen kívül hagyása végzetes "
+#~ "hibának bizonyult."
 
-#: qcsrc/server/w_porto.qc:2
-msgid "Port-O-Launch"
-msgstr "Port-O-Launch"
+#~ msgid "%s tried to catch %s's firemine"
+#~ msgstr "%s  megpróbálta elkapni %s gyújtóbombáját"
 
-#: qcsrc/server/w_porto.qc:298
-#, c-format
-msgid "%s felt %s doing the impossible to him"
-msgstr "%s érezte, hogy %s lehetetlen tett vele"
+#~ msgid "%s should have used a smaller gun"
+#~ msgstr "%s játszott volna inkább vízipisztollyal "
 
-#: qcsrc/server/w_rifle.qc:2
-msgid "Rifle"
-msgstr "Puska"
+#~ msgid "%s forgot about some firemine"
+#~ msgstr "%s megfeledkezett pár gyújtóbombáról"
 
-#: qcsrc/server/w_rifle.qc:233
-#, c-format
-msgid "%s shot themself automatically"
-msgstr "%s saját magát lőtte agyon"
+#~ msgid "%s was blasted by %s's blue beam"
+#~ msgstr "%s megsemmisült %s kék sugarától"
 
-#: qcsrc/server/w_rifle.qc:235
-#, c-format
-msgid "%s sniped themself somehow"
-msgstr "%s-t levadászta saját magát valahogy"
+#~ msgid "%s got too close to %s's blue beam"
+#~ msgstr "%s túl közel került %s kék sugarához"
 
-#: qcsrc/server/w_rifle.qc:242
-#, c-format
-msgid "%s failed to hide from %s's bullet hail"
-msgstr "%s -nak nem sikerült elbújnia %s golyózápora elől "
+#~ msgid "%s felt the electrifying air of %s's combo"
+#~ msgstr "%s felvillanyozódott %s kombójától"
 
-#: qcsrc/server/w_rifle.qc:244
-#, c-format
-msgid "%s died in %s's bullet hail"
-msgstr "%s meghalt %s golyózáporában"
+#~ msgid "%s got in touch with %s's blue ball"
+#~ msgstr "%s lefejelte %s kék golyóját"
 
-#: qcsrc/server/w_rifle.qc:251
-#, c-format
-msgid "%s failed to hide from %s's rifle"
-msgstr "%s -nak nem sikerült elbújnia %s puskája elöl"
+#~ msgid "%s just noticed %s's blue ball"
+#~ msgstr "%s csak most vette észre %s kék golyóját"
 
-#: qcsrc/server/w_rifle.qc:256
-#, c-format
-msgid "%s got hit in the head by %s"
-msgstr "%s -t fejen találta %s"
+#~ msgid "%s played with plasma"
+#~ msgstr "%s  plazmával játszadozott"
 
-#: qcsrc/server/w_rifle.qc:258 qcsrc/server/w_uzi.qc:321
-#, c-format
-msgid "%s was sniped by %s"
-msgstr "%s -t levadászta %s"
+#~ msgid "%s could not remember where they put plasma"
+#~ msgstr "%s nem tudja, hogy mire való a plazma"
 
-#: qcsrc/server/w_rocketlauncher.qc:2
-msgid "Rocket Launcher"
-msgstr "Rakétavető"
+#~ msgid "%s took a close look at %s's Crylink"
+#~ msgstr "%s  közelebbről megleste %s Crylinkjét"
 
-#: qcsrc/server/w_rocketlauncher.qc:505
-#, c-format
-msgid "%s got too close to %s's rocket"
-msgstr "%s túl közel kerül %s rakétájához"
+#~ msgid "%s was too close to %s's Crylink"
+#~ msgstr "%s túl közel hajolt %s Crylinkjéhez"
 
-#: qcsrc/server/w_rocketlauncher.qc:507
-#, c-format
-msgid "%s almost dodged %s's rocket"
-msgstr "%s majdnem kicselezte %s rakétáját"
+#~ msgid "%s could not hide from %s's Crylink"
+#~ msgstr "%s nem menekülhetett %s Crylinkje elől"
 
-#: qcsrc/server/w_rocketlauncher.qc:509
-#, c-format
-msgid "%s ate %s's rocket"
-msgstr "%s megette %s rakétáját"
+#~ msgid "%s succeeded at self-destructing themself with the Crylink"
+#~ msgstr "%s sikeres öngyikosságot követett el a Crylinkkel"
 
-#: qcsrc/server/w_seeker.qc:2
-msgid "T.A.G. Seeker"
-msgstr "T.A.G. Seeker"
+#~ msgid "Disable multithreaded OpenGL"
+#~ msgstr "Többszálú OpenGL letiltása"
 
-#: qcsrc/server/w_seeker.qc:659
-#, c-format
-msgid "%s was tagged by %s"
-msgstr "%s-t megjelölte %s"
+#~ msgid "HTTP downloads:"
+#~ msgstr "HTTP letöltéseket:"
 
-#: qcsrc/server/w_shotgun.qc:2
-#, fuzzy
-msgid "Shotgun"
-msgstr "Vadászpuska"
+#~ msgid "Network speed:"
+#~ msgstr "Hálózat sebessége:"
 
-#: qcsrc/server/w_shotgun.qc:219
-#, c-format
-msgid "%2$s ^7slapped %1$s ^7around a bit with a large ^2shotgun"
-msgstr "%2$s ^7úgy elverte %1$s -t ^7 a ^2puskályával, mintha ^7szívlapáttal csapta volna agyon"
+#~ msgid "Minimize input latency"
+#~ msgstr "Bemeneti késleltetés minimalizása"
 
-#: qcsrc/server/w_shotgun.qc:221
-#, c-format
-msgid "%s was gunned by %s"
-msgstr "%s-t lelőtte %s"
+#~ msgid "Mouse filter"
+#~ msgstr "Egérmozgás simítása"
 
-#: qcsrc/server/w_tuba.qc:2
-#, fuzzy, c-format
-msgid "@!#%'n Tuba"
-msgstr "@!#%'n Tuba Dobás"
+#~ msgid "UI mouse speed:"
+#~ msgstr "Menü egér sebessége:"
 
-#: qcsrc/server/w_tuba.qc:252
-#, c-format
-msgid "%s hurt his own ears with the @!#%%'n Tuba"
-msgstr "%s se bírta tovább a @!#%%'n Tuba hangját"
+#~ msgid "Blur and sharpen postprocessing"
+#~ msgstr "Elmosás és élesítés"
 
-#: qcsrc/server/w_tuba.qc:256
-#, c-format
-msgid "%s died of %s's great playing on the @!#%%'n Tuba"
-msgstr "%s meghalt %s nagyszerű  @!#%%'n Tuba játékától"
+#~ msgid "High Dynamic Range (HDR)"
+#~ msgstr "Magas dinamika tartomány (HDR)"
 
-#: qcsrc/server/w_uzi.qc:2
-msgid "Machine Gun"
-msgstr "Gépfegyver"
+#~ msgid "Flash blend approximation"
+#~ msgstr "Elnagyolt villanások"
 
-#: qcsrc/server/w_uzi.qc:323
-#, c-format
-msgid "%s was riddled full of holes by %s"
-msgstr "%s -t %s szitává lyuggatta"
+#~ msgid "WRN^None"
+#~ msgstr "Kikapcsolva"
 
-#, fuzzy
-#~ msgid "Damage & water blur"
-#~ msgstr "Sérülés és víz elmosás"
+#~ msgid "RNG^Full"
+#~ msgstr "RNG^Teljes pályán"
 
-#, fuzzy
-#~ msgid "Powerup sharpen"
-#~ msgstr "Powerup élesítés"
+#~ msgid "RNG^Long"
+#~ msgstr "RNG^Távolról is"
 
-#~ msgid "Speedometer"
-#~ msgstr "Sebességmérő"
+#~ msgid "RNG^Normal"
+#~ msgstr "RNG^Normál"
 
-#~ msgid "qu/s (hidden)"
-#~ msgstr "qu/s (rejtett)"
+#~ msgid "RNG^Short"
+#~ msgstr "RNG^Közelről"
 
-#~ msgid "Show accelerometer"
-#~ msgstr "Gyorsulásmérő mutatása"
+#~ msgid "RNG^Very short"
+#~ msgstr "RNG^Közvetlen közelről"
 
-#~ msgid "Accelerometer scale:"
-#~ msgstr "Gyorsulásmérő beosztás:"
+#~ msgid "Taunt range:"
+#~ msgstr "Gúnyolódások hallhatósága:"
 
-#~ msgid ""
-#~ "Please answer a few initial questions to enhance the game experience."
-#~ msgstr ""
-#~ "A jobb játékélmény érdekében, kérlek, válaszolj pár inditó kérdésre!"
+#~ msgid "VOCS^All"
+#~ msgstr "VOCS^Minden"
 
-#~ msgid "Waypoint settings:"
-#~ msgstr "Iránypont beállítások:"
+#~ msgid "VOCS^Taunts"
+#~ msgstr "VOCS^Gúnyolódás"
+
+#~ msgid "VOCS^None"
+#~ msgstr "VOCS^Nincs"
+
+#~ msgid "Spatial voices:"
+#~ msgstr "Utasítások:"
+
+#~ msgid "All players"
+#~ msgstr "Minden játékos"
+
+#~ msgid "Teammates"
+#~ msgstr "Csapattársak"
+
+#~ msgid "Show names:"
+#~ msgstr "Nevek mutatása:"
+
+#~ msgid "Waypoint scale:"
+#~ msgstr "Iránypontok mérete:"
+
+#~ msgid "Waypoints setup..."
+#~ msgstr "Iránypontok beállítása..."
+
+#~ msgid "HTST^None"
+#~ msgstr "HTST^Nincs"
+
+#~ msgid "Size:"
+#~ msgstr "Méret:"
+
+#~ msgid "Weapon settings..."
+#~ msgstr "Fegyverzet beállítások..."
+
+#~ msgid "Zoom speed:"
+#~ msgstr "Nagyítás sebessége:"
+
+#~ msgid "View bobbing:"
+#~ msgstr "Fej biccenés:"
+
+#~ msgid "CA:"
+#~ msgstr "CA:"
+
+#~ msgid "Ping:"
+#~ msgstr "Ping:"
+
+#~ msgid "Gameplay:"
+#~ msgstr "Játékmenet:"
 
-#~ msgid "%d/%d"
-#~ msgstr "%d/%d"
+#~ msgid "%d/%d, %d free player slots"
+#~ msgstr "%d/%d, %d szabad férőhely"
index 187fa667f9032dc69bba642ef776925661a39cb2..90c39edb3d6455505a142e3ed07311215cfaa93f 100644 (file)
@@ -2,14 +2,14 @@
 # Copyright (C) 2011 Team Xonotic
 # This file is distributed under the same license as the PACKAGE package.
 # Felice Sallustio <fel.sallustio@gmail.com>, 2011.
-# Antonio 'terencehill' Piu <piuntn@gmail.com>, 2011.
+# Antonio 'terencehill' Piu <piuntn@gmail.com>, 2011,2012.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: 0.1preview\n"
+"Project-Id-Version: 0.6\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-09-02 07:51+0200\n"
-"PO-Revision-Date: 2011-09-04 01:40+0100\n"
+"POT-Creation-Date: 2012-01-26 12:24+0100\n"
+"PO-Revision-Date: 2011-02-26 20:40+0100\n"
 "Last-Translator: Antonio 'terencehill' Piu <piuntn@gmail.com>\n"
 "Language-Team: Antonio 'terencehill' Piu <piuntn@gmail.com>\n"
 "Language: it\n"
@@ -18,33 +18,102 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "X-Poedit-Language: Italian\n"
 
-#: qcsrc/common/mapinfo.qc:1092 qcsrc/menu/xonotic/skinlist.c:163
+#: qcsrc/common/mapinfo.qc:665
+#, c-format
+msgid "@!#%'n Tuba Throwing"
+msgstr "@!#%'n Tuba Throwing"
+
+#: qcsrc/common/mapinfo.qc:1057 qcsrc/menu/xonotic/skinlist.c:166
 #, c-format
 msgid "%s: %s"
 msgstr "%s: %s"
 
-#: qcsrc/menu/gamecommand.qc:47
+#: qcsrc/common/mapinfo.qh:36
+msgid "Deathmatch"
+msgstr "Deathmatch"
+
+#: qcsrc/common/mapinfo.qh:39
+msgid "Last Man Standing"
+msgstr "Last Man Standing"
+
+#: qcsrc/common/mapinfo.qh:42
+msgid "Arena"
+msgstr "Arena"
+
+#: qcsrc/common/mapinfo.qh:45
+msgid "Runematch"
+msgstr "Runematch"
+
+#: qcsrc/common/mapinfo.qh:48
+msgid "Race"
+msgstr "Corsa"
+
+#: qcsrc/common/mapinfo.qh:51
+msgid "Race CTS"
+msgstr "Corsa CTS"
+
+#: qcsrc/common/mapinfo.qh:54
+msgid "Team Deathmatch"
+msgstr "Team Deathmatch"
+
+#: qcsrc/common/mapinfo.qh:57
+msgid "Capture the Flag"
+msgstr "Cattura la bandiera (CTF)"
+
+#: qcsrc/common/mapinfo.qh:60
+msgid "Clan Arena"
+msgstr "Clan Arena"
+
+#: qcsrc/common/mapinfo.qh:63
+msgid "Domination"
+msgstr "Dominazione"
+
+#: qcsrc/common/mapinfo.qh:66
+msgid "Key Hunt"
+msgstr "Key Hunt"
+
+#: qcsrc/common/mapinfo.qh:69
+msgid "Assault"
+msgstr "Assalto"
+
+#: qcsrc/common/mapinfo.qh:72
+msgid "Onslaught"
+msgstr "Onslaught"
+
+#: qcsrc/common/mapinfo.qh:75
+msgid "Nexball"
+msgstr "Nexball"
+
+#: qcsrc/common/mapinfo.qh:78
+msgid "Freeze Tag"
+msgstr "Freeze Tag"
+
+#: qcsrc/common/mapinfo.qh:81
+msgid "Keepaway"
+msgstr "Keepaway"
+
+#: qcsrc/menu/command/menu_cmd.qc:41
 #, c-format
 msgid "error: status is %d\n"
 msgstr "errore: lo stato è impostato su %d\n"
 
-#: qcsrc/menu/gamecommand.qc:65
+#: qcsrc/menu/command/menu_cmd.qc:64
 msgid "Usage: menu_cmd command..., where possible commands are:\n"
 msgstr "Uso: menu_cmd comando..., dove i possibili comandi sono:\n"
 
-#: qcsrc/menu/gamecommand.qc:66
+#: qcsrc/menu/command/menu_cmd.qc:65
 msgid "  sync - reloads all cvars on the current menu page\n"
 msgstr "  sync - ricarica tutte le cvar sulla corrente pagina\n"
 
-#: qcsrc/menu/gamecommand.qc:67
+#: qcsrc/menu/command/menu_cmd.qc:66
 msgid "  directmenu ITEM - select a menu item as main item\n"
 msgstr "  directmenu OGGETTO - seleziona un oggetto come il principale\n"
 
-#: qcsrc/menu/gamecommand.qc:193
+#: qcsrc/menu/command/menu_cmd.qc:179
 msgid "error creating curl handle\n"
 msgstr "error creating curl handle\n"
 
-#: qcsrc/menu/gamecommand.qc:239
+#: qcsrc/menu/command/menu_cmd.qc:186
 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 "
@@ -75,17 +144,17 @@ msgstr "%d (%s)"
 msgid "custom"
 msgstr "personalizzato"
 
-#: qcsrc/menu/menu.qc:29
+#: qcsrc/menu/menu.qc:37
 #, c-format
 msgid "^4MQC Build information: ^1%s\n"
 msgstr "^4MQC Build information: ^1%s\n"
 
-#: qcsrc/menu/xonotic/campaign.c:284
-#: qcsrc/menu/xonotic/dialog_singleplayer.c:134
+#: qcsrc/menu/xonotic/campaign.c:288
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:123
 msgid "???"
 msgstr "???"
 
-#: qcsrc/menu/xonotic/campaign.c:285
+#: qcsrc/menu/xonotic/campaign.c:289
 #, c-format
 msgid "Level %d: %s"
 msgstr "Livello %d: %s"
@@ -116,10 +185,14 @@ msgstr "Crediti"
 
 #: 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:57
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:61
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:277
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:91
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:96
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:56
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:113
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:74
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:89
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:73
 #: qcsrc/menu/xonotic/dialog_singleplayer_winner.c:21
 msgid "OK"
 msgstr "OK"
@@ -128,7 +201,7 @@ msgstr "OK"
 msgid "Welcome"
 msgstr "Benvenuto"
 
-#: qcsrc/menu/xonotic/dialog_firstrun.c:33
+#: qcsrc/menu/xonotic/dialog_firstrun.c:40
 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 "
@@ -138,18 +211,36 @@ msgstr ""
 "nome come giocatore per iniziare.  Puoi cambiare queste opzioni più tardi "
 "tramite il menu."
 
-#: qcsrc/menu/xonotic/dialog_firstrun.c:38
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:35
-msgid "Text language:"
-msgstr "Lingua di testo:"
-
-#: qcsrc/menu/xonotic/dialog_firstrun.c:47
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:40
+#: qcsrc/menu/xonotic/dialog_firstrun.c:46
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:37
 #: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:39
 msgid "Name:"
 msgstr "Nome:"
 
-#: qcsrc/menu/xonotic/dialog_firstrun.c:69
+#: qcsrc/menu/xonotic/dialog_firstrun.c:68
+#: qcsrc/menu/xonotic/dialog_settings_user.c:65
+msgid "Text language:"
+msgstr "Lingua di testo:"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:77
+msgid "Allow player statistics to use your nickname at stats.xonotic.org?"
+msgstr ""
+"Consenti alle statistiche dei giocatori di usare il tuo nome (nick) in stats."
+"xonotic.org?"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:81
+msgid "ALWU2N^Yes"
+msgstr "Sì"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:82
+msgid "ALWU2N^No"
+msgstr "No"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:83
+msgid "ALWU2N^Undecided"
+msgstr "Indeciso"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:87
 msgid "Save settings"
 msgstr "Salva impostazioni"
 
@@ -208,7 +299,7 @@ msgid "Text alignment:"
 msgstr "Allineamento testo:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_centerprint.c:37
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:50
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:51
 msgid "Center"
 msgstr "Centro"
 
@@ -352,12 +443,12 @@ msgid "Status bar"
 msgstr "Barra di stato"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:33
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:48
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:49
 msgid "Left align"
 msgstr "Allinea a sinistra"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:34
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:52
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:53
 msgid "Right align"
 msgstr "Allinea a destra"
 
@@ -374,6 +465,7 @@ msgid "Flip speed/acceleration positions"
 msgstr "Inverti posizioni velocità/accelerazione"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:44
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:29
 msgid "Speed:"
 msgstr "Velocità:"
 
@@ -465,8 +557,8 @@ 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:154
-#: qcsrc/menu/xonotic/util.qc:600
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:66
+#: qcsrc/menu/xonotic/util.qc:655
 msgid "Alpha:"
 msgstr "Opacità:"
 
@@ -495,6 +587,7 @@ msgid "North"
 msgstr "Nord"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:46
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:61
 msgid "Scale:"
 msgstr "Scala:"
 
@@ -571,7 +664,6 @@ 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"
 
@@ -586,7 +678,7 @@ msgstr "Effetto dissolvenza:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:35
 msgid "EF^None"
-msgstr "EF^Nessuno"
+msgstr "Nessuno"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:36
 msgid "Slide"
@@ -598,41 +690,45 @@ msgstr "Opacità"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:38
 msgid "EF^Both"
-msgstr "EF^Entrambi"
+msgstr "Entrambi"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:42
 msgid "Weapon icons:"
 msgstr "Icone armi:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:45
+msgid "Show only owned weapons"
+msgstr "Mostra solo armi possedute"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:48
 msgid "Show weapon ID as:"
 msgstr "Mostra ID arma come:"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:46
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:49
 msgid "SHOWAS^None"
-msgstr "SHOWAS^Nessuno"
+msgstr "Nessuno"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:47
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:50
 msgid "Number"
 msgstr "Numero"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:48
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:51
 msgid "Bind"
 msgstr "Tasto"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:51
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:54
 msgid "Show Accuracy"
 msgstr "Mostra precisione"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:52
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:55
 msgid "Show Ammo"
 msgstr "Mostra munizioni"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:55
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:58
 msgid "Ammo bar color:"
 msgstr "Colore barra munizioni:"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:61
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:64
 msgid "Ammo bar alpha:"
 msgstr "Opacità barra munizioni:"
 
@@ -644,24 +740,24 @@ msgstr "Setup del Panel HUD"
 msgid "Panel background defaults:"
 msgstr "Predefiniti dello sfondo del pannello:"
 
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:23 qcsrc/menu/xonotic/util.qc:575
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:23 qcsrc/menu/xonotic/util.qc:630
 msgid "Background:"
 msgstr "Sfondo:"
 
 #: 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:578
-#: qcsrc/menu/xonotic/util.qc:594 qcsrc/menu/xonotic/util.qc:611
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:91 qcsrc/menu/xonotic/util.qc:633
+#: qcsrc/menu/xonotic/util.qc:649 qcsrc/menu/xonotic/util.qc:666
 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:583
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:77 qcsrc/menu/xonotic/util.qc:638
 msgid "Color:"
 msgstr "Colore:"
 
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:35 qcsrc/menu/xonotic/util.qc:591
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:35 qcsrc/menu/xonotic/util.qc:646
 msgid "Border size:"
 msgstr "Dimensioni bordo:"
 
@@ -670,11 +766,11 @@ msgstr "Dimensioni bordo:"
 msgid "Team color:"
 msgstr "Colore team:"
 
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:58 qcsrc/menu/xonotic/util.qc:617
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:58 qcsrc/menu/xonotic/util.qc:672
 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:620
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:61 qcsrc/menu/xonotic/util.qc:675
 msgid "Padding:"
 msgstr "Riempimento:"
 
@@ -684,19 +780,19 @@ msgstr "Sfondo dell'HUD:"
 
 #: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:70
 msgid "DOCK^Disabled"
-msgstr "DOCK^Disabilitato"
+msgstr "Disabilitato"
 
 #: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:71
 msgid "DOCK^Small"
-msgstr "DOCK^Piccolo"
+msgstr "Piccolo"
 
 #: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:72
 msgid "DOCK^Medium"
-msgstr "DOCK^Medio"
+msgstr "Medio"
 
 #: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:73
 msgid "DOCK^Large"
-msgstr "DOCK^Largo"
+msgstr "Largo"
 
 #: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:96
 msgid "Grid settings:"
@@ -748,127 +844,123 @@ msgstr "Setup giocatore"
 msgid "Game type:"
 msgstr "Tipo di gioco:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:46
-msgid "Match settings:"
-msgstr "Impostazioni partita:"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:49
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:48
 msgid "Time limit:"
 msgstr "Limite di tempo:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:53
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:61
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:52
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:60
 msgid "Use map specified default"
 msgstr "Usa le impostazioni di default della mappa"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:56
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:55
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:154
 #: qcsrc/menu/xonotic/dialog_multiplayer_create.c:155
 #: qcsrc/menu/xonotic/dialog_multiplayer_create.c:156
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:157
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:160
 #: qcsrc/menu/xonotic/dialog_multiplayer_create.c:161
 #: qcsrc/menu/xonotic/dialog_multiplayer_create.c:162
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:163
 msgid "Point limit:"
 msgstr "Limite di punteggio:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:64
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:63
 msgid "Player slots:"
 msgstr "Posti per giocatori:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:67
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:66
 msgid "Number of bots:"
 msgstr "Numero di bot:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:71
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:69
 msgid "Bot skill:"
 msgstr "Abilità bot:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:74
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:72
 msgid "Botlike"
 msgstr "\"Come un bot\""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:75
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:73
 msgid "Beginner"
 msgstr "Principiante"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:76
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:74
 msgid "You will win"
 msgstr "Vincerai"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:77
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:75
 msgid "You can win"
 msgstr "Puoi vincere"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:78
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:76
 msgid "You might win"
 msgstr "Potresti vincere"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:79
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:77
 msgid "Advanced"
 msgstr "Avanzato"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:80
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:78
 msgid "Expert"
 msgstr "Esperto"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:81
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:79
 msgid "Pro"
 msgstr "Pro"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:82
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:80
 msgid "Assassin"
 msgstr "Assassino"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:83
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:81
 msgid "Unhuman"
 msgstr "Inumano"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:84
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:82
 msgid "Godlike"
 msgstr "\"Come un Dio\""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:88
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:87
 msgid "Mutators..."
 msgstr "Mutatori..."
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:97
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:57
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:96
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:145
 msgid "Advanced settings..."
 msgstr "Impostazioni avanzate..."
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:104
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:103
 msgid "Map list:"
 msgstr "Lista delle mappe:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:110
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:109
 msgid "Select all"
 msgstr "Seleziona tutto"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:113
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:112
 msgid "Select none"
 msgstr "Deseleziona tutto"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:119
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:118
 msgid "Start Multiplayer!"
 msgstr "Inizia Multiplayer!"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:154
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:153
 msgid "Capture limit:"
 msgstr "Limite catture:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:158
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:157
 msgid "Lives:"
 msgstr "Vite:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:159
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:158
 msgid "Laps:"
 msgstr "Giri:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:160
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:159
 msgid "Goals:"
 msgstr "Goal:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:164
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:163
 msgid "Frag limit:"
 msgstr "Limite di frag:"
 
@@ -972,28 +1064,28 @@ msgstr "Posizionamento oggetti completo"
 msgid "MinstaGib only"
 msgstr "Solo MinstaGib"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:78
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:81
 msgid "Title:"
 msgstr "Titolo:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:84
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:87
 msgid "Author:"
 msgstr "Autore:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:90
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:93
 msgid "Features:"
 msgstr "Caratteristiche:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:95
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:98
 msgid "Game types:"
 msgstr "Tipi di gioco:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:118
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:314
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:121
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:335
 msgid "Close"
 msgstr "Chiudi"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:121
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:124
 msgid "MAP^Play"
 msgstr "Gioca"
 
@@ -1015,108 +1107,121 @@ msgid "%s Arena"
 msgstr "Arena con %s"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:68
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:167
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:173
 msgid "Dodging"
 msgstr "Schivamento"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:70
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:250
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:258
 msgid "MinstaGib"
 msgstr "MinstaGib"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:72
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:253
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:261
 msgid "NIX"
 msgstr "NIX"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:74
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:205
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:213
 msgid "Rocket Flying"
 msgstr "Volando coi razzi"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:78
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:264
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:76
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:210
+msgid "Invincible Projectiles"
+msgstr "Proiettili invincibili"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:80
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:272
 msgid "No start weapons"
 msgstr "Senza armi all'inizio"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:80
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:189
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:82
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:195
 msgid "Low gravity"
 msgstr "Bassa gravità"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:82
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:170
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:84
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:176
 msgid "Cloaked"
 msgstr "Invisibile"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:84
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:86
 msgid "Hook"
 msgstr "Hook"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:86
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:173
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:88
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:179
 msgid "Midair"
 msgstr "A mezz'aria"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:88
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:176
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:90
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:182
 msgid "Vampire"
 msgstr "Vampiro"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:90
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:208
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:92
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:216
 msgid "Piñata"
 msgstr "Piñata"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:92
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:211
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:94
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:219
 msgid "Weapons stay"
 msgstr "Armi rimangono"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:94
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:180
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:96
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:186
 msgid "Blood loss"
 msgstr "Perdita di sangue"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:96
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:202
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:98
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:207
 msgid "Jet pack"
 msgstr "Jet pack"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:98
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:100
+msgid "No powerups"
+msgstr "Niente powerup"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:102
+msgid "Powerups"
+msgstr "Powerup"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:104
 msgid "MUT^None"
-msgstr "MUT^Nessuno"
+msgstr "Nessuno"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:164
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:170
 msgid "Gameplay mutators:"
 msgstr "Mutatori di gioco:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:196
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:201
 msgid "Weapon & item mutators:"
 msgstr "Mutatori di armi ed oggetti:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:199
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:204
 msgid "Grappling hook"
 msgstr "Grappling hook"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:215
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:223
 msgid "Weapon arenas:"
 msgstr "Arene di armi:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:218
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:226
 msgid "Regular (no arena)"
 msgstr "Regolare (no arena)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:239
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:256
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:247
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:264
 msgid "with laser"
 msgstr "con laser"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:247
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:255
 msgid "Special arenas:"
 msgstr "Arene speciali:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:260
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:268
 msgid "Most weapons"
 msgstr "Maggior parte delle armi"
 
@@ -1125,26 +1230,26 @@ msgid "Demo"
 msgstr "Demo"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:28
-msgid "Record demos while playing"
-msgstr "Registra demo durante le partite"
+msgid "Automatically record demos while playing"
+msgstr "Registra automaticamente i demo durante le partite"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:32
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:31
 #: qcsrc/menu/xonotic/dialog_multiplayer_join.c:28
 msgid "Filter:"
 msgstr "Filtro:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:33
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:32
 #: 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
+#: qcsrc/menu/xonotic/dialog_settings_input.c:40
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:32
 msgid "Clear"
 msgstr "Pulisci"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:43
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:45
 msgid "Timedemo"
 msgstr "Timedemo"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:46
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:48
 msgid "DEMO^Play"
 msgstr "Riproduci"
 
@@ -1154,17 +1259,18 @@ msgstr "Entra"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join.c:36
 msgid "SRVS^Empty"
-msgstr "SRVS^Vuoti"
+msgstr "Vuoti"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join.c:40
 msgid "SRVS^Full"
-msgstr "SRVS^Pieni"
+msgstr "Pieni"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join.c:44
 msgid "Pause"
 msgstr "In pausa"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join.c:56
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:262
 msgid "Address:"
 msgstr "Indirizzo:"
 
@@ -1173,7 +1279,7 @@ msgid "Info..."
 msgstr "Info..."
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join.c:72
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:317
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:342
 msgid "Join!"
 msgstr "Entra!"
 
@@ -1181,309 +1287,496 @@ msgstr "Entra!"
 msgid "Server Information"
 msgstr "Informazioni del server"
 
-#: 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
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:132
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:133
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:242
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:247
 msgid "N/A"
-msgstr "N/D"
+msgstr "N.D."
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:158
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:179
 #, c-format
-msgid "%d/%d, %d free player slots"
-msgstr "%d/%d, %d slot liberi"
+msgid "%d/%d"
+msgstr "%d/%d"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:193
+#: qcsrc/menu/xonotic/util.qc:632 qcsrc/menu/xonotic/util.qc:648
+#: qcsrc/menu/xonotic/util.qc:657 qcsrc/menu/xonotic/util.qc:665
+#: qcsrc/menu/xonotic/util.qc:677
+msgid "Default"
+msgstr "Predefinito"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:172
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:200
 #, c-format
-msgid "%d modified settings"
-msgstr "%d impostazioni modificate"
+msgid "%d modified"
+msgstr "%d modificate"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:172
-msgid "Official settings"
-msgstr "Impostazioni ufficiali"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:200
+msgid "Official"
+msgstr "Ufficiali"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:197
-msgid "N/A (can't connect)"
-msgstr "N/D (impossibile connettersi)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:208
+msgid "N/A (auth library missing, can't connect)"
+msgstr "N.D. (libreria di autenticazione mancante, impossibile connettersi)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:205
-msgid "not supported (can't connect)"
-msgstr "non supportato (impossibile connettersi)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:210
+msgid "N/A (auth library missing)"
+msgstr "N.D. (libreria di autenticazione mancante)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:207
-msgid "not supported (won't encrypt)"
-msgstr "non supportato (non criptato)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:216
+msgid "Not supported (can't connect)"
+msgstr "Non supportato (impossibile connettersi)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:211
-msgid "supported (will encrypt)"
-msgstr "supportato (criptato)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:218
+msgid "Not supported (won't encrypt)"
+msgstr "Non supportato (non criptato)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:213
-msgid "supported (won't encrypt)"
-msgstr "supportato (non criptato)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:222
+msgid "Supported (will encrypt)"
+msgstr "Supportato (criptato)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:217
-msgid "requested (will encrypt)"
-msgstr "richiesto (criptato)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:224
+msgid "Supported (won't encrypt)"
+msgstr "Supportato (non criptato)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:219
-msgid "requested (won't encrypt)"
-msgstr "richiesto (non criptato)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:228
+msgid "Requested (will encrypt)"
+msgstr "Richiesto (criptato)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:223
-msgid "required (can't connect)"
-msgstr "richiesto (impossibile connettersi)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:230
+msgid "Requested (won't encrypt)"
+msgstr "Richiesto (non criptato)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:225
-msgid "required (will encrypt)"
-msgstr "richiesto (criptato)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:234
+msgid "Required (can't connect)"
+msgstr "Richiesto (impossibile connettersi)"
 
-#: 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_join_serverinfo.c:236
+msgid "Required (will encrypt)"
+msgstr "Richiesto (criptato)"
 
-#: 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_join_serverinfo.c:256
+msgid "Hostname:"
+msgstr "Nome dell'host:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:270
+msgid "Gametype:"
+msgstr "Tipo di gioco:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:259
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:275
 msgid "Map:"
 msgstr "Mappa:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:264
-msgid "Gameplay:"
-msgstr "Gameplay:"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:274
-msgid "Bots:"
-msgstr "Bot:"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:279
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:280
 msgid "Mod:"
 msgstr "Mod:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:284
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:285
 msgid "Version:"
 msgstr "Versione:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:289
-msgid "Ping:"
-msgstr "Ping:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:290
+msgid "Settings:"
+msgstr "Impostazioni:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:295
-msgid "CA:"
-msgstr "CA:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:297
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:329
+msgid "Players:"
+msgstr "Giocatori:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:301
-msgid "Key:"
-msgstr "Chiave:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:302
+msgid "Bots:"
+msgstr "Bot:"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:307
+msgid "Free slots:"
+msgstr "Posti liberi:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:313
 msgid "Encryption:"
 msgstr "Crittografia:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:63
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:318
+msgid "ID:"
+msgstr "ID:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:323
+msgid "Key:"
+msgstr "Chiave:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:60
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:19
 msgid "Model:"
 msgstr "Modello:"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:88
-msgid "Field of view:"
-msgstr "Campo di vista:"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:92
-msgid "View bobbing:"
-msgstr "Ondeggiamento:"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:96
-msgid "Zoom factor:"
-msgstr "Fattore zoom:"
+msgid "No crosshair"
+msgstr "Niente mirino"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:100
-msgid "Zoom speed:"
-msgstr "Velocità zoom:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:90
+msgid "Per weapon crosshair"
+msgstr "Mirino per singola arma"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:103
-msgid "Weapon settings..."
-msgstr "Impostazioni arma..."
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:93
+msgid "Custom crosshair"
+msgstr "Mirino personalizzato"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:110
-msgid "Crosshair:"
-msgstr "Mirino:"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:111
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:139
-msgid "Per weapon"
-msgstr "Per singola arma"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:130
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:112
 msgid "Crosshair size:"
 msgstr "Dimensioni mirino:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:134
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:117
 msgid "Crosshair alpha:"
 msgstr "Opacità mirino:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:138
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:123
 msgid "Crosshair color:"
 msgstr "Colore mirino:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:140
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:125
+msgid "Per weapon"
+msgstr "Per singola arma"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:127
 msgid "By health"
 msgstr "In base alla vita"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:143
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:131
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:47
 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:139
+msgid "Other crosshair settings"
+msgstr "Altre impostazioni mirino"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:151
-msgid "Size:"
-msgstr "Dimensioni:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:147
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:6
+msgid "Model settings"
+msgstr "Impostazioni modello"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:158
-msgid "Hit test:"
-msgstr "Test colpi:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:153
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:6
+msgid "View settings"
+msgstr "Impostazioni visuale"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:159
-msgid "HTST^None"
-msgstr "HTST^Nessuno"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:6
+msgid "Weapon settings"
+msgstr "Impostazioni arma"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:169
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:6
+msgid "HUD settings"
+msgstr "Impostazioni HUD"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:175
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:203
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:185
+#: qcsrc/menu/xonotic/dialog_settings_input.c:89
+#: qcsrc/menu/xonotic/dialog_settings_user.c:88
+#: qcsrc/menu/xonotic/dialog_settings_video.c:142
+msgid "Apply immediately"
+msgstr "Applica immediatamente"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:6
+msgid "Crosshair settings"
+msgstr "Impostazioni mirino"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:28
+msgid "Enable center crosshair dot"
+msgstr "Abilita punto al centro del mirino"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:31
+msgid "Dot size:"
+msgstr "Dimensioni punto:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:36
+msgid "Dot alpha:"
+msgstr "Opacità punto:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:41
+msgid "Dot color:"
+msgstr "Colore punto:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:43
+msgid "Use normal crosshair color"
+msgstr "Usa colore normale del mirino"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:160
-msgid "TrueAim"
-msgstr "TrueAim"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:54
+msgid "Crosshair animations:"
+msgstr "Animazioni mirino:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:161
-msgid "Enemies"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:57
+msgid "Smooth effects of crosshairs"
+msgstr "Ammorbidisci gli effetti dei mirini"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:61
+msgid "Use rings to indicate weapon status"
+msgstr "Usa anelli per indicare lo stato dell'arma"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:67
+msgid "Hit testing:"
+msgstr "Test colpo a segno:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:69
+msgid "HTTST^Disabled"
+msgstr "Disabilitato"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:70
+msgid "HTTST^TrueAim"
+msgstr "VeraMira"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:71
+msgid "HTTST^Enemies"
 msgstr "Nemici"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:164
-msgid "Waypoints setup..."
-msgstr "Setup dei waypoint..."
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:76
+msgid "Blur crosshair if the shot is obstructed"
+msgstr "Sfoca il mirino se la linea di tiro è ostruita"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:169
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:81
+msgid "Animate when hitting an enemy"
+msgstr "Anima colpendo un nemico"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:85
+msgid "Animate when picking up an item"
+msgstr "Anima raccogliendo un oggetto"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:40
+msgid "Damage:"
+msgstr "Danno:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:43
+msgid "Overlay:"
+msgstr "Copertura:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:47
+msgid "Factor:"
+msgstr "Fattore:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:52
+msgid "Fade rate:"
+msgstr "Durata dissolvenza:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:58
+msgid "Waypoints"
+msgstr "Waypoint"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:71
+msgid "Edge offset:"
+msgstr "Distanza dai bordi:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:80
+msgid "Show names above players"
+msgstr "Mostra nomi sopra i giocatori"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:83
+msgid "Only when near crosshair"
+msgstr "Solo quando vicino al mirino"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:86
+msgid "Display health and armor"
+msgstr "Mostra vita e armatura"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:90
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hudconfirm.c:4
 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_hudconfirm.c:28
+msgid "In order for the HUD editor to show, you must first be in game."
+msgstr "Per visualizzare l'editor dell'HUD, devi prima essere in gioco."
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:175
-msgid "MDL^None"
-msgstr "MDL^Nessuno"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hudconfirm.c:30
+msgid "Do you wish to start a local game to set up the HUD?"
+msgstr "Desideri avviare una partita locale per configurare l'HUD?"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:176
-msgid "MDL^Custom"
-msgstr "MDL^Personalizzato"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hudconfirm.c:33
+msgid "HDCNFRM^Yes"
+msgstr ""
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:177
-msgid "MDL^All"
-msgstr "MDL^Tutti"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hudconfirm.c:36
+msgid "HDCNFRM^No"
+msgstr "No"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:180
-msgid "Disable gore effects"
-msgstr "Disabilita effetti sangue"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:28
+msgid "Body fading:"
+msgstr "Dissolvenza corpi:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:182
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:31
 msgid "Gibs:"
 msgstr "Gib:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:184
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:33
 msgid "GIBS^None"
-msgstr "GIBS^Nessuno"
+msgstr "Nessuno"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:185
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:34
 msgid "GIBS^Few"
-msgstr "GIBS^Pochi"
+msgstr "Pochi"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:186
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:35
 msgid "GIBS^Many"
-msgstr "GIBS^Molti"
+msgstr "Molti"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:187
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:36
 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:173
-#: 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:109
-msgid "Apply immediately"
-msgstr "Applica immediatamente"
+msgstr "Parecchi"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:5
-msgid "Waypoints"
-msgstr "Waypoint"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:40
+msgid "Playermodel LOD:"
+msgstr "LOD per modelli giocatore:"
 
-#: 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_model.c:44
+msgid "Force models:"
+msgstr "Forza modelli:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:25
-msgid "Waypoint scale:"
-msgstr "Grandezza dei waypoint:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:45
+msgid "MDL^None"
+msgstr "Nessuno"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:29
-msgid "Waypoint alpha:"
-msgstr "Opacità dei waypoint"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:46
+msgid "MDL^Custom"
+msgstr "Personalizzato"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:34
-msgid "Show names:"
-msgstr "Mostra nomi:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:47
+msgid "MDL^All"
+msgstr "Tutti"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:37
-msgid "Teammates"
-msgstr "Compagni del team"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:50
+msgid "Force player models to mine"
+msgstr "Forza modelli giocatori come il mio"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:38
-msgid "All players"
-msgstr "Tutti i giocatori"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:52
+msgid "Force player colors to mine"
+msgstr "Forza colori giocatori come i miei"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:6
-msgid "Weapon settings"
-msgstr "Impostazioni arma"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:28
+msgid "Field of view:"
+msgstr "Campo di vista:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:29
-msgid "Weapon priority list:"
-msgstr "Lista priorità armi:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:31
+msgid "Zoom:"
+msgstr "Zoom:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:34
-msgid "Up"
-msgstr "Su"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:33
+msgid "RETICLE^Fullscreen"
+msgstr "Schermo intero"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:37
-msgid "Down"
-msgstr "Giù"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:34
+msgid "RETICLE^With reticle"
+msgstr "Con reticolo"
 
-#: 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_view.c:38
+msgid "ZOOM^Factor:"
+msgstr "Fattore:"
 
-#: 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_view.c:42
+msgid "ZOOM^Speed:"
+msgstr "Velocità:"
 
-#: 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_view.c:52
+msgid "ZOOM^Instant"
+msgstr "Istantaneo"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:55
-msgid "Flip view horizontally"
-msgstr "Capovolgi la vista orizzontalmente"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:56
+msgid "ZOOM^Sensitivity:"
+msgstr "Sensibilità:"
 
-#: qcsrc/menu/xonotic/dialog_news.c:4
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:59
+msgid "Velocity zoom:"
+msgstr "Zoom della velocità:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:61
+msgid "VZOOM^Disabled"
+msgstr "Disabilitato"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:62
+msgid "VZOOM^Forward only"
+msgstr "Solo in avanti"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:63
+msgid "VZOOM^All directions"
+msgstr "In tutte le direzioni"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:67
+msgid "VZOOM^Speed"
+msgstr "Velocità"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:72
+msgid "Allow passing through walls while spectating"
+msgstr "Consenti di passare attraverso i muri mentre si osserva"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:75
+msgid "1st person perspective"
+msgstr "Prospettiva in prima persona"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:79
+msgid "Smooth the view when landing from a jump"
+msgstr "Ammorbidisci la visuale dopo un salto"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:83
+msgid "Smooth the view while crouching"
+msgstr "Ammorbidisci la visuale abbassandosi"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:87
+msgid "View waving while idle"
+msgstr "Vista ondeggiante quando inattivo"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:91
+msgid "View bobbing while walking around"
+msgstr "Movimento visuale su/giù camminando"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:96
+msgid "3rd person perspective"
+msgstr "Prospettiva in terza persona"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:100
+msgid "Back distance"
+msgstr "Distanza indietro"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:106
+msgid "Up distance"
+msgstr "Distanza in su"
+
+#: 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:33
+msgid "Up"
+msgstr "Su"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:36
+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:46
+msgid "Draw 1st person weapon model"
+msgstr "Mostra modello arma in 1ª persona"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:58
+msgid "Gun model swaying"
+msgstr "Oscillazione arma"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:63
+msgid "Gun model bobbing"
+msgstr "Movimento su/giù arma"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:68
+msgid "VWMDL^Scale"
+msgstr "Scala"
+
+#: qcsrc/menu/xonotic/dialog_news.c:4
 msgid "News"
 msgstr "Notizie"
 
@@ -1495,18 +1788,146 @@ msgstr "http://www.xonotic.org/team/blog/"
 msgid "Quit"
 msgstr "Esci"
 
-#: qcsrc/menu/xonotic/dialog_quit.c:17
+#: qcsrc/menu/xonotic/dialog_quit.c:18
 msgid "Are you sure you want to quit?"
 msgstr "Sei sicuro di voler uscire?"
 
-#: qcsrc/menu/xonotic/dialog_quit.c:20
+#: qcsrc/menu/xonotic/dialog_quit.c:21
 msgid "Yes"
 msgstr "Sì"
 
-#: qcsrc/menu/xonotic/dialog_quit.c:21
+#: qcsrc/menu/xonotic/dialog_quit.c:22
 msgid "No"
 msgstr "No"
 
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:4
+msgid "Sandbox Tools"
+msgstr "Attrezzi Sandbox"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:24
+msgid "Spawn"
+msgstr "Crea"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:25
+msgid "Remove *"
+msgstr "Rimuovi *"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:27
+msgid "Copy *"
+msgstr "Copia *"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:28
+msgid "Paste"
+msgstr "Incolla"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:30
+msgid "Bone:"
+msgstr "Osso:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:35
+msgid "Set * as child"
+msgstr "Imposta * come figlio"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:36
+msgid "Attach to *"
+msgstr "Attaca a *"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:38
+msgid "Detach from *"
+msgstr "Stacca da *"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:41
+msgid "Visual object properties for *:"
+msgstr "Proprietà visuali dell'oggetto per *:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:43
+msgid "Set skin:"
+msgstr "Imposta skin:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:45
+msgid "Set alpha:"
+msgstr "Imposta opacità"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:48
+msgid "Set color main:"
+msgstr "Imposta colore princ.:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:50
+msgid "Set color glow:"
+msgstr "Imposta colore glow:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:54
+msgid "Set frame:"
+msgstr "Imposta frame:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:58
+msgid "Physical object properties for *:"
+msgstr "Proprietà fisiche dell'oggetto per *:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:60
+msgid "Set material:"
+msgstr "Imposta materiale:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:66
+msgid "Set solidity:"
+msgstr "Imposta solidità:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:67
+msgid "Non-solid"
+msgstr "Non-solido"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:68
+msgid "Solid"
+msgstr "Solido"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:69
+msgid "Set physics:"
+msgstr "Imposta fisica:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:70
+msgid "Static"
+msgstr "Statica"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:71
+msgid "Movable"
+msgstr "Mobile"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:72
+msgid "Physical"
+msgstr "Fisica"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:74
+msgid "Set scale:"
+msgstr "Imposta scala:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:76
+msgid "Set force:"
+msgstr "Imposta forza:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:80
+msgid "Claim *"
+msgstr "Reclama *"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:82
+msgid "* object info"
+msgstr "Info oggetto *"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:83
+msgid "* mesh info"
+msgstr "Info mesh *"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:84
+msgid "* attachment info"
+msgstr "Info allegato *"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:85
+msgid "Show help"
+msgstr "Mostra aiuto"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:86
+msgid "* is the object you are facing"
+msgstr "* è l'oggetto di fronte a te"
+
 #: qcsrc/menu/xonotic/dialog_settings.c:4
 msgid "Settings"
 msgstr "Impostazioni"
@@ -1532,9 +1953,9 @@ 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_user.c:4
+msgid "User"
+msgstr "Utente"
 
 #: qcsrc/menu/xonotic/dialog_settings.c:23
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:4
@@ -1545,194 +1966,170 @@ msgstr "Altro"
 msgid "Master:"
 msgstr "Master:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:33
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:35
 msgid "Music:"
 msgstr "Musica:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:41
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:45
 msgid "VOL^Ambient:"
-msgstr "VOL^Ambiente:"
+msgstr "Ambiente:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:48
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:54
 msgid "Info:"
 msgstr "Info:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:55
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:63
 msgid "Items:"
 msgstr "Oggetti:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:62
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:72
 msgid "Pain:"
 msgstr "Dolore:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:69
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:81
 msgid "Player:"
 msgstr "Giocatore:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:76
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:90
 msgid "Shots:"
 msgstr "Spari:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:83
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:99
 msgid "Voice:"
 msgstr "Voce:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:91
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:109
 msgid "Weapons:"
 msgstr "Armi:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:98
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:156
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:117
+msgid "New style sound attenuation"
+msgstr "Nuovo stile attenuazione del suono"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:119
+msgid "Mute sounds when not active"
+msgstr "Muto quando non attivo"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:122
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:194
 msgid "Frequency:"
 msgstr "Frequenza:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:100
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:124
 msgid "8 kHz"
 msgstr "8 kHz"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:101
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:125
 msgid "11.025 kHz"
 msgstr "11.025 kHz"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:102
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:126
 msgid "16 kHz"
 msgstr "16 kHz"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:103
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:127
 msgid "22.05 kHz"
 msgstr "22.05 kHz"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:104
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:128
 msgid "24 kHz"
 msgstr "24 kHz"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:105
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:129
 msgid "32 kHz"
 msgstr "32 kHz"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:106
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:130
 msgid "44.1 kHz"
 msgstr "44.1 kHz"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:107
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:131
 msgid "48 kHz"
 msgstr "48 kHz"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:110
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:134
 msgid "Channels:"
 msgstr "Canali:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:112
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:136
 msgid "Mono"
 msgstr "Mono"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:113
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:137
 msgid "Stereo"
 msgstr "Stereo"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:114
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:138
 msgid "2.1"
 msgstr "2.1"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:115
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:139
 msgid "4"
 msgstr "4"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:116
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:140
 msgid "5"
 msgstr "5"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:117
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:141
 msgid "5.1"
 msgstr "5.1"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:118
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:142
 msgid "6.1"
 msgstr "6.1"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:119
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:143
 msgid "7.1"
 msgstr "7.1"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:123
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:146
 msgid "Swap Stereo"
 msgstr "Scambia canali stereo"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:127
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:148
 msgid "Headphone friendly mode"
 msgstr "Modalità cuffie"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:131
-msgid "Spatial voices:"
-msgstr "Voci spaziali:"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:132
-msgid "VOCS^None"
-msgstr "VOCS^Nessuna"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:133
-msgid "VOCS^Taunts"
-msgstr "VOCS^Insulti"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:134
-msgid "VOCS^All"
-msgstr "VOCS^Tutte"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:137
-msgid "Taunt range:"
-msgstr "Range di insulti:"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:140
-msgid "RNG^Very short"
-msgstr "RNG^Molto ristretto"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:141
-msgid "RNG^Short"
-msgstr "RNG^Ristretto"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:142
-msgid "RNG^Normal"
-msgstr "RNG^Normale"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:143
-msgid "RNG^Long"
-msgstr "RNG^Lungo"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:170
+msgid "Hit indication sound"
+msgstr "Suono per colpo a segno"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:144
-msgid "RNG^Full"
-msgstr "RNG^Pieno"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:172
+msgid "Chat message sound"
+msgstr "Suono per messaggio di chat"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:151
-msgid "Automatic taunts"
-msgstr "Insulti automatici"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:174
+msgid "Menu sounds"
+msgstr "Suoni del menu"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:160
-msgid "Time warning:"
-msgstr "Avvertimento di tempo:"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:177
+msgid "Time announcer:"
+msgstr "Annunciatore tempo:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:162
-msgid "WRN^None"
-msgstr "WRN^Nessuno"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:179
+msgid "WRN^Disabled"
+msgstr "Disabilitato"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:163
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:180
 msgid "1 minute"
 msgstr "1 minuto"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:164
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:181
 msgid "5 minutes"
 msgstr "5 minuti"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:165
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:182
 msgid "WRN^Both"
-msgstr "WNR^Entrambi"
+msgstr "Entrambi"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:168
-msgid "Hit indicator"
-msgstr "Indicatore di colpo"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:189
+msgid "Automatic taunts"
+msgstr "Insulti automatici"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:170
-msgid "Menu sounds"
-msgstr "Suoni del menu"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:199
+msgid "Debug info about sounds"
+msgstr "Info di debug sui suoni"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:38
 msgid "Quality preset:"
@@ -1740,31 +2137,31 @@ msgstr "Preset qualità:"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:41
 msgid "PRE^OMG!"
-msgstr "PRE^Oh mio dio!"
+msgstr "Oh mio dio!"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:42
 msgid "PRE^Low"
-msgstr "PRE^Bassa"
+msgstr "Bassa"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:43
 msgid "PRE^Medium"
-msgstr "PRE^Media"
+msgstr "Media"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:44
 msgid "PRE^Normal"
-msgstr "PRE^Normale"
+msgstr "Normale"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:45
 msgid "PRE^High"
-msgstr "PRE^Alta"
+msgstr "Alta"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:46
 msgid "PRE^Ultra"
-msgstr "PRE^Ultra"
+msgstr "Ultra"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:48
 msgid "PRE^Ultimate"
-msgstr "PRE^Massima"
+msgstr "Massima"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:52
 msgid "Geometry detail:"
@@ -1772,253 +2169,249 @@ msgstr "Dettagli geometrici:"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:54
 msgid "DET^Lowest"
-msgstr "DET^Molto bassi"
+msgstr "Molto bassi"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:55
 msgid "DET^Low"
-msgstr "DET^Bassi"
+msgstr "Bassi"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:56
 msgid "DET^Normal"
-msgstr "DET^Normali"
+msgstr "Normali"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:57
 msgid "DET^Good"
-msgstr "DET^Buoni"
+msgstr "Buoni"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:58
 msgid "DET^Best"
-msgstr "DET^Ottimi"
+msgstr "Ottimi"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:59
 msgid "DET^Insane"
-msgstr "DET^Bestiali"
+msgstr "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
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:65
 msgid "RES^Leet"
-msgstr "RES^Leet"
+msgstr "Leet"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:74
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:66
 msgid "RES^Lowest"
-msgstr "RES^Molto bassa"
+msgstr "Molto bassa"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:67
+msgid "RES^Very low"
+msgstr "Molto bassa"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:75
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:68
 msgid "RES^Low"
-msgstr "RES^Bassa"
+msgstr "Bassa"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:76
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:69
 msgid "RES^Normal"
-msgstr "RES^Normale"
+msgstr "Normale"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:77
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:70
 msgid "RES^Good"
-msgstr "RES^Buona"
+msgstr "Buona"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:78
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:71
 msgid "RES^Best"
-msgstr "RES^Ottima"
+msgstr "Ottima"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:91
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:94
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:84
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:87
 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_settings_effects.c:102
-msgid "ANISO^Disabled"
-msgstr "ANISO^Disabilitato"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:93
+msgid "Use lightmaps"
+msgstr "Usa mappe di luce"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:105
-msgid "8x"
-msgstr "8x"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:94
+msgid "Deluxe mapping"
+msgstr "Mappaggio Deluxe"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:106
-msgid "16x"
-msgstr "16x"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:96
+msgid "Gloss"
+msgstr "Lucentezza"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:110
-msgid "Particle quality:"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:100
+msgid "Particles quality:"
 msgstr "Qualità particelle:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:113
-msgid "Particle distance:"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:103
+msgid "Particles distance:"
 msgstr "Distanza particelle:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:117
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:106
+msgid "Damage effects:"
+msgstr "Effetti danno:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:108
+msgid "DMGPRTCLS^Disabled"
+msgstr "Disabilitati"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:109
+msgid "DMGPRTCLS^Skeletal"
+msgstr "Scheletri"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:110
+msgid "DMGPRTCLS^All"
+msgstr "Tutti"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:114
 msgid "Decals"
 msgstr "Decal"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:118
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:115
 msgid "Decals on models"
 msgstr "Decal sui modelli"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:122
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:119
 msgid "Distance:"
 msgstr "Distanza:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:128
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:125
 msgid "Time:"
 msgstr "Tempo:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:134
-msgid "Use lightmaps"
-msgstr "Usa mappe di luce"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:135
-msgid "Deluxe mapping"
-msgstr "Mappaggio Deluxe"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:137
-msgid "Gloss"
-msgstr "Lucentezza"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:140
-msgid "Offset mapping"
-msgstr "Mappaggio in offset"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:142
-msgid "Relief mapping"
-msgstr "Mappaggio in rilievo"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:145
-msgid "Reflections:"
-msgstr "Riflessioni:"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:148
-msgid "Blurred"
-msgstr "Sfocate"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:149
-msgid "REFL^Good"
-msgstr "REFL^Buone"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:150
-msgid "Sharp"
-msgstr "Nitide"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:131
+msgid "Coronas"
+msgstr "Corone"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:155
-msgid "Show surfaces"
-msgstr "Mostra superfici"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:132
+msgid "Use Occlusion Queries"
+msgstr "Usa le Occlusion Queries"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:157
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:134
 msgid "No dynamic lighting"
 msgstr "Nessuna illuminazione dinamica"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:159
-msgid "Flash blend approximation"
-msgstr "Approssimazione Flash blend"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:136
+msgid "Fake corona lighting"
+msgstr "Finta illuminazione corona"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:161
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:138
 msgid "Realtime dynamic lighting"
 msgstr "Illuminazione dinamica in tempo reale"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:162
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:166
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:139
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:143
 msgid "Shadows"
 msgstr "Ombre"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:165
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:142
 msgid "Realtime world lighting"
 msgstr "Illuminazione globale in tempo reale"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:170
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:147
 msgid "Use normal maps"
 msgstr "Usa mappe normali"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:172
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:149
 msgid "Soft shadows"
 msgstr "Ombre morbide"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:175
-msgid "Coronas"
-msgstr "Corone"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:153
+msgid "Show surfaces"
+msgstr "Mostra superfici"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:176
-msgid "Use Occlusion Queries"
-msgstr "Usa le Occlusion Queries"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:155
+msgid "Offset mapping"
+msgstr "Mappaggio in offset"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:157
+msgid "Relief mapping"
+msgstr "Mappaggio in rilievo"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:159
+msgid "LOD"
+msgstr "LOD"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:178
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:162
 msgid "Bloom"
 msgstr "Bloom"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:180
-msgid "High Dynamic Range (HDR)"
-msgstr "High Dynamic Range (HDR)"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:164
+msgid "Reflections:"
+msgstr "Riflessioni:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:167
+msgid "Blurred"
+msgstr "Sfocate"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:168
+msgid "REFL^Good"
+msgstr "Buone"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:169
+msgid "Sharp"
+msgstr "Nitide"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:184
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:174
 msgid "Motion blur:"
 msgstr "Sfocatura movimento:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:189
-msgid "Blur and sharpen postprocessing"
-msgstr "Postprocessa per sfocatura e nitidezza"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:179
+msgid "Extra postprocessing effects"
+msgstr "Effetti extra di postcalcolo"
 
 #: qcsrc/menu/xonotic/dialog_settings_input.c:26
 msgid "Key bindings:"
 msgstr "Associazione tasti (bind):"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:31
+#: qcsrc/menu/xonotic/dialog_settings_input.c:30
 msgid "Change key..."
 msgstr "Cambia tasto..."
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:35
+#: qcsrc/menu/xonotic/dialog_settings_input.c:34
 msgid "Edit..."
 msgstr "Modifica..."
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:46
-msgid "Sensitivity:"
-msgstr "Sensibilità:"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:45
+msgid "Pressing \"enter console\" key also closes it"
+msgstr "Premendo \"apri console\" la chiude anche"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:47
+msgid "Automatically repeat jumping if holding jump"
+msgstr "Automaticamente ripeti il salto tenendo premuto salto"
 
 #: qcsrc/menu/xonotic/dialog_settings_input.c:51
-msgid "UI mouse speed:"
-msgstr "Velocità UI mouse:"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:53
+#: qcsrc/menu/xonotic/dialog_settings_input.c:56
+msgid "Use joystick input"
+msgstr "Usa joystick"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:55
-msgid "Mouse filter"
-msgstr "Filtro mouse"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:61
+msgid "Mouse:"
+msgstr "Mouse:"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:57
-msgid "Invert mouse"
-msgstr "Inverti mouse"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:64
+msgid "Sensitivity:"
+msgstr "Sensibilità:"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:60
-#: qcsrc/menu/xonotic/dialog_settings_input.c:62
-msgid "Use joystick input"
-msgstr "Usa joystick"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:68
+msgid "Smooth aiming"
+msgstr "Ammorbidisci mira"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:65
-#: qcsrc/menu/xonotic/dialog_settings_input.c:67
-msgid "Turn off OS mouse acceleration"
-msgstr "Disattiva l'accelerazione mouse dell'OS"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:71
+msgid "Invert aiming"
+msgstr "Inverti mira"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:69
-msgid "\"enter console\" also closes"
-msgstr "\"apri console\" chiude anche"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:75
+#: qcsrc/menu/xonotic/dialog_settings_input.c:77
+#: qcsrc/menu/xonotic/dialog_settings_input.c:80
+msgid "Disable system mouse acceleration"
+msgstr "Disattiva l'accelerazione mouse del sistema"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:85
+msgid "Enable built in mouse acceleration"
+msgstr "Abilita l'accelerazione mouse incorporata"
 
 #: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:5
 msgid "User defined key bind"
@@ -2041,96 +2434,261 @@ msgid "Cancel"
 msgstr "Annulla"
 
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:26
-msgid "Menu skins:"
-msgstr "Temi del menu:"
+msgid "Network:"
+msgstr "Rete:"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:47
-msgid "Show current time"
-msgstr "Mostra orario corrente"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:31
+msgid "56k"
+msgstr "56k"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:49
-msgid "Show current date"
-msgstr "Mostra data corrente"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:32
+msgid "ISDN"
+msgstr "ISDN"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:51
-msgid "Show frames per second"
-msgstr "Mostra fotogrammi al secondo"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:33
+msgid "Slow ADSL"
+msgstr "ADSL lenta"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:53
-msgid "Minimize input latency"
-msgstr "Minimizza latenza in entrata"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:34
+msgid "Fast ADSL"
+msgstr "ADSL veloce"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:5
-msgid "Advanced settings"
-msgstr "Impostazioni avanzate"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:35
+msgid "Broadband"
+msgstr "Banda larga"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:23
-msgid "Cvar filter:"
-msgstr "Filtro delle cvar:"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:39
+msgid "Input packets/s:"
+msgstr "Pacchetti/s in entrata:"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:34
-msgid "Setting:"
-msgstr "Impostazioni:"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:45
+msgid "Local latency:"
+msgstr "Latenza locale:"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:42
-msgid "Value:"
-msgstr "Valore:"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:50
+msgid "Client UDP port:"
+msgstr "Porta UDP del client:"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:56
-msgid "Description:"
-msgstr "Descrizione:"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:55
+msgid "Show netgraph"
+msgstr "Mostra grafico di rete"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:26
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:59
 msgid "Client-side movement prediction"
 msgstr "Predizione del movimento lato client"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:30
-msgid "Show netgraph"
-msgstr "Mostra grafico di rete"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:62
+msgid "Movement error compensation"
+msgstr "Compensazione errori movimento"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:33
-msgid "Network speed:"
-msgstr "Velocità rete:"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:66
+msgid "Downloads:"
+msgstr "N° di download:"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:35
-msgid "56k"
-msgstr "56k"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:69
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:81
+msgid "Maximum:"
+msgstr "Massimo:"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:36
-msgid "ISDN"
-msgstr "ISDN"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:73
+msgid "Speed (kB/s):"
+msgstr "Velocità (kB/s):"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:37
-msgid "Slow ADSL"
-msgstr "ADSL lenta"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:78
+msgid "Framerate:"
+msgstr "Framerate:"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:38
-msgid "Fast ADSL"
-msgstr "ADSL veloce"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:83
+msgid "MAXFPS^5 fps"
+msgstr "5 fps"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:39
-msgid "Broadband"
-msgstr "Banda larga"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:84
+msgid "MAXFPS^10 fps"
+msgstr "10 fps"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:42
-msgid "Input packets/s:"
-msgstr "Pacchetti/s in entrata:"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:85
+msgid "MAXFPS^20 fps"
+msgstr "20 fps"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:46
-msgid "HTTP downloads:"
-msgstr "Download via HTTP:"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:86
+msgid "MAXFPS^30 fps"
+msgstr "30 fps"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:49
-msgid "Downloads:"
-msgstr "N° di download:"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:87
+msgid "MAXFPS^40 fps"
+msgstr "40 fps"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:53
-msgid "Speed (kB/s):"
-msgstr "Velocità (kB/s):"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:88
+msgid "MAXFPS^50 fps"
+msgstr "50 fps"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:57
-msgid "Client UDP port:"
-msgstr "Porta UDP del client:"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:89
+msgid "MAXFPS^60 fps"
+msgstr "60 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:90
+msgid "MAXFPS^70 fps"
+msgstr "70 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:91
+msgid "MAXFPS^100 fps"
+msgstr "100 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:92
+msgid "MAXFPS^125 fps"
+msgstr "125 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:93
+msgid "MAXFPS^200 fps"
+msgstr "200 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:94
+msgid "MAXFPS^Unlimited"
+msgstr "Illimitato"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:98
+msgid "Target:"
+msgstr "Obiettivo:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:100
+msgid "TRGT^Disabled"
+msgstr "Disabilitato"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:101
+msgid "TRGT^30 fps"
+msgstr "30  fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:102
+msgid "TRGT^40 fps"
+msgstr "40 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:103
+msgid "TRGT^50 fps"
+msgstr "50 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:104
+msgid "TRGT^60 fps"
+msgstr "60 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:105
+msgid "TRGT^100 fps"
+msgstr "100 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:106
+msgid "TRGT^125 fps"
+msgstr "125 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:107
+msgid "TRGT^200 fps"
+msgstr "200 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:111
+msgid "Idle limit:"
+msgstr "Limite inattività:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:113
+msgid "IDLFPS^10 fps"
+msgstr "10 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:114
+msgid "IDLFPS^20 fps"
+msgstr "20 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:115
+msgid "IDLFPS^30 fps"
+msgstr "30 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:116
+msgid "IDLFPS^60 fps"
+msgstr "60 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:117
+msgid "IDLFPS^Unlimited"
+msgstr "Illimitato"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:122
+msgid "Show frames per second"
+msgstr "Mostra fotogrammi al secondo"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:125
+msgid "Save processing time for other apps"
+msgstr "Risparmia tempo di calcolo per altri programmi"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:129
+msgid "Menu tooltips:"
+msgstr "Tooltip del menu:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:131
+msgid "TLTIP^Disabled"
+msgstr "Disabilitati"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:132
+msgid "TLTIP^Standard"
+msgstr "Standard"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:133
+msgid "TLTIP^Advanced"
+msgstr "Avanzati"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:137
+msgid "Show current time"
+msgstr "Mostra orario corrente"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:139
+msgid "Show current date"
+msgstr "Mostra data corrente"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:141
+msgid "Enable developer mode"
+msgstr "Abilita modo sviluppatore"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:5
+msgid "Advanced settings"
+msgstr "Impostazioni avanzate"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:31
+msgid "Cvar filter:"
+msgstr "Filtro delle cvar:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:44
+msgid "Setting:"
+msgstr "Impostazioni:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:48
+msgid "Type:"
+msgstr "Tipo:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:52
+msgid "Value:"
+msgstr "Valore:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:68
+msgid "Description:"
+msgstr "Descrizione:"
+
+#: qcsrc/menu/xonotic/dialog_settings_user.c:27
+msgid "Menu skins:"
+msgstr "Temi del menu:"
+
+#: qcsrc/menu/xonotic/dialog_settings_user.c:31
+msgid "Set skin"
+msgstr "Imposta skin"
+
+#: qcsrc/menu/xonotic/dialog_settings_user.c:74
+msgid "Set language"
+msgstr "Imposta lingua"
+
+#: qcsrc/menu/xonotic/dialog_settings_user.c:79
+msgid "Disable gore effects and harsh language"
+msgstr "Disabilita effetti sangue e linguaggio rude"
+
+#: qcsrc/menu/xonotic/dialog_settings_user.c:82
+msgid "Allow player statistics to track your client"
+msgstr "Consenti alle statistiche dei giocatori di tracciare il tuo client"
+
+#: qcsrc/menu/xonotic/dialog_settings_user.c:84
+msgid "Allow player statistics to use your nickname"
+msgstr "Consenti alle statistiche dei giocatori di usare il tuo nome (nick)"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:26
 msgid "Resolution:"
@@ -2142,141 +2700,211 @@ msgstr "Dimensioni caratteri:"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:31
 msgid "SZ^Unreadable"
-msgstr "SZ^Illeggibile"
+msgstr "Illeggibile"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:32
 msgid "SZ^Tiny"
-msgstr "SZ^Minuscolo"
+msgstr "Minuscolo"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:33
 msgid "SZ^Little"
-msgstr "SZ^Molto piccolo"
+msgstr "Molto piccolo"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:34
 msgid "SZ^Small"
-msgstr "SZ^Piccolo"
+msgstr "Piccolo"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:35
 msgid "SZ^Medium"
-msgstr "SZ^Medio"
+msgstr "Medio"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:36
 msgid "SZ^Large"
-msgstr "SZ^Largo"
+msgstr "Largo"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:37
 msgid "SZ^Huge"
-msgstr "SZ^Enorme"
+msgstr "Enorme"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:38
 msgid "SZ^Gigantic"
-msgstr "SZ^Gigante"
+msgstr "Gigante"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:39
 msgid "SZ^Colossal"
-msgstr "SZ^Colossale"
+msgstr "Colossale"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:42
 msgid "Color depth:"
 msgstr "Profondità colore:"
 
+#: qcsrc/menu/xonotic/dialog_settings_video.c:44
+msgid "16bit"
+msgstr "16bit"
+
 #: qcsrc/menu/xonotic/dialog_settings_video.c:45
+msgid "32bit"
+msgstr "32bit"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:48
 msgid "Full screen"
 msgstr "Schermo intero"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:46
+#: qcsrc/menu/xonotic/dialog_settings_video.c:49
 msgid "Vertical Synchronization"
 msgstr "Sincronizzazione verticale"
 
-#: 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_settings_video.c:53
+msgid "Anisotropy:"
+msgstr "Anisotropia:"
 
-#: 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_settings_video.c:55
+msgid "ANISO^Disabled"
+msgstr "Disabilitata"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:56
-msgid "Vertex Buffer Objects (VBOs)"
-msgstr "Vertex Buffer Objects (VBOs)"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:66
+msgid "2x"
+msgstr "2x"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:57
+#: qcsrc/menu/xonotic/dialog_settings_video.c:67
+msgid "4x"
+msgstr "4x"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:58
+msgid "8x"
+msgstr "8x"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:59
-msgid "VBO^Off"
-msgstr "VBO^Off"
+msgid "16x"
+msgstr "16x"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:60
-msgid "Vertices, some Tris (compatible)"
-msgstr "Vertici, alcuni Triangoli (compatibile)"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:62
+msgid "Antialiasing:"
+msgstr "Antialiasing:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:63
-msgid "Vertices"
-msgstr "Vertici"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:65
+msgid "AA^Disabled"
+msgstr "Disabilitato"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:64
-msgid "Vertices and Triangles"
-msgstr "Vertici e Triangoli"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:71
+msgid "High-quality frame buffer"
+msgstr "Frame buffer di alta qualità"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:67
+#: qcsrc/menu/xonotic/dialog_settings_video.c:76
 msgid "Depth first:"
 msgstr "Profondità prima:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:69
+#: qcsrc/menu/xonotic/dialog_settings_video.c:78
 msgid "DF^Disabled"
-msgstr "DF^Disabilitata"
+msgstr "Disabilitato"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:70
+#: qcsrc/menu/xonotic/dialog_settings_video.c:79
 msgid "DF^World"
-msgstr "DF^Globale"
+msgstr "Globale"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:71
+#: qcsrc/menu/xonotic/dialog_settings_video.c:80
 msgid "DF^All"
-msgstr "DF^Tutto"
+msgstr "Tutto"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:75
-msgid "Disable multithreaded OpenGL"
-msgstr "Disabilita il multithreading OpenGL"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:83
+msgid "Vertex Buffer Objects (VBOs)"
+msgstr "Vertex Buffer Objects (VBOs)"
 
-#: 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_video.c:86
+msgid "VBO^Off"
+msgstr "Non attivo"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:80
+#: qcsrc/menu/xonotic/dialog_settings_video.c:87
+msgid "Vertices, some Tris (compatible)"
+msgstr "Vertici, alcuni Triangoli (compatibile)"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:90
+msgid "Vertices"
+msgstr "Vertici"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:91
+msgid "Vertices and Triangles"
+msgstr "Vertici e Triangoli"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:94
 msgid "Brightness:"
 msgstr "Luminosità:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:83
+#: qcsrc/menu/xonotic/dialog_settings_video.c:97
 msgid "Contrast:"
 msgstr "Contrasto:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:86
+#: qcsrc/menu/xonotic/dialog_settings_video.c:100
 msgid "Gamma:"
 msgstr "Gamma:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:91
+#: qcsrc/menu/xonotic/dialog_settings_video.c:105
 msgid "Contrast boost:"
 msgstr "Aumenta contrasto:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:96
+#: qcsrc/menu/xonotic/dialog_settings_video.c:110
 msgid "Saturation:"
 msgstr "Saturazione:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:102
+#: qcsrc/menu/xonotic/dialog_settings_video.c:116
 msgid "LIT^Ambient:"
-msgstr "LIT^Ambiente:"
+msgstr "Ambiente:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:105
+#: qcsrc/menu/xonotic/dialog_settings_video.c:119
 msgid "Intensity:"
 msgstr "Intensità:"
 
+#: qcsrc/menu/xonotic/dialog_settings_video.c:123
+msgid "Use OpenGL 2.0 shaders (GLSL)"
+msgstr "Usa gli shader OpenGL 2.0 (GLSL)"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:125
+msgid "Use GLSL to handle color control"
+msgstr "Usa GLSL per gestire il controllo del colore"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:128
+msgid "Wait for GPU to finish each frame"
+msgstr "Attendi che la GPU finisca di elaborare ogni frame"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:132
+msgid "Psycho coloring (easter egg)"
+msgstr "Colorazione psico (easter egg)"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:135
+msgid "Trippy vertices (easter egg)"
+msgstr "Vertici da viaggio (easter egg)"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:138
+msgid "Flip view horizontally"
+msgstr "Capovolgi la vista orizzontalmente"
+
 #: qcsrc/menu/xonotic/dialog_singleplayer.c:4
 msgid "Singleplayer"
 msgstr "Giocatore singolo"
 
-#: qcsrc/menu/xonotic/dialog_singleplayer.c:127
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:116
 msgid "Instant action! (random map with bots)"
 msgstr "Inizia ora! (mappa casuale con bot)"
 
-#: qcsrc/menu/xonotic/dialog_singleplayer.c:148
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:137
+msgid "Campaign Difficulty:"
+msgstr "Difficoltà campagna:"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:138
+msgid "CSKL^Easy"
+msgstr "Facile"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:139
+msgid "CSKL^Medium"
+msgstr "Media"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:140
+msgid "CSKL^Hard"
+msgstr "Difficile"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:142
 msgid "Start Singleplayer!"
 msgstr "Inizia modalità Giocatore Singolo!"
 
@@ -2312,22 +2940,22 @@ msgstr "rosa"
 msgid "spectate"
 msgstr "spettatore"
 
-#: qcsrc/menu/xonotic/mainwindow.c:35 qcsrc/menu/xonotic/mainwindow.c:38
+#: qcsrc/menu/xonotic/mainwindow.c:39 qcsrc/menu/xonotic/mainwindow.c:42
 msgid "Do not press this button again!"
 msgstr "Non premere questo tasto di nuovo!"
 
-#: qcsrc/menu/xonotic/maplist.c:278
+#: qcsrc/menu/xonotic/maplist.c:282
 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/maplist.c:286
+#: qcsrc/menu/xonotic/maplist.c:290
 #, c-format
 msgid "%s's Xonotic Server"
 msgstr "Server Xonotic di %s"
 
-#: qcsrc/menu/xonotic/maplist.c:291
+#: qcsrc/menu/xonotic/maplist.c:295
 msgid ""
 "Huh? Can't play this (invalid game type). Refiltering so this won't happen "
 "again.\n"
@@ -2335,7 +2963,11 @@ msgstr ""
 "Huh? Can't play this (invalid game type). Refiltering so this won't happen "
 "again.\n"
 
-#: qcsrc/menu/xonotic/playermodel.c:174
+#: qcsrc/menu/xonotic/playerlist.c:118 qcsrc/menu/xonotic/playerlist.c:128
+msgid "spectator"
+msgstr "spettatore"
+
+#: qcsrc/menu/xonotic/playermodel.c:177
 msgid "<no model found>"
 msgstr "<nessun modello trovato>"
 
@@ -2347,23 +2979,23 @@ msgstr "Rimuovi"
 msgid "Bookmark"
 msgstr "Aggiungi tra i preferiti"
 
-#: qcsrc/menu/xonotic/serverlist.c:527
+#: qcsrc/menu/xonotic/serverlist.c:548
 msgid "Ping"
 msgstr "Ping"
 
-#: qcsrc/menu/xonotic/serverlist.c:528
+#: qcsrc/menu/xonotic/serverlist.c:549
 msgid "Host name"
 msgstr "Nome dell'host"
 
-#: qcsrc/menu/xonotic/serverlist.c:529
+#: qcsrc/menu/xonotic/serverlist.c:550
 msgid "Map"
 msgstr "Mappa"
 
-#: qcsrc/menu/xonotic/serverlist.c:530
+#: qcsrc/menu/xonotic/serverlist.c:551
 msgid "Type"
 msgstr "Tipo"
 
-#: qcsrc/menu/xonotic/serverlist.c:531
+#: qcsrc/menu/xonotic/serverlist.c:552
 msgid "Players"
 msgstr "Giocatori"
 
@@ -2377,11 +3009,11 @@ msgstr "<AUTORE>"
 
 #: qcsrc/menu/xonotic/slider_decibels.c:50
 msgid "VOL^OFF"
-msgstr "VOL^OFF"
+msgstr "OFF"
 
 #: qcsrc/menu/xonotic/slider_decibels.c:52
 msgid "VOL^MAX"
-msgstr "VOL^MAX"
+msgstr "MAX"
 
 #: qcsrc/menu/xonotic/slider_decibels.c:53
 #, c-format
@@ -2393,26 +3025,26 @@ msgstr "%s dB"
 msgid "%dx%d"
 msgstr "%dx%d"
 
-#: qcsrc/menu/xonotic/util.qc:270
+#: qcsrc/menu/xonotic/util.qc:276
 #, 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/util.qc:285
+#: qcsrc/menu/xonotic/util.qc:291
 #, 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/util.qc:290
+#: qcsrc/menu/xonotic/util.qc:296
 msgid "error: received HTML instead of an update notification\n"
 msgstr "errore: ricevuto HTML invece di una notifica d'aggiornamento\n"
 
-#: qcsrc/menu/xonotic/util.qc:295
+#: qcsrc/menu/xonotic/util.qc:301
 msgid "error: received carriage returns from update notification server\n"
 msgstr "error: received carriage returns from update notification server\n"
 
-#: qcsrc/menu/xonotic/util.qc:316
+#: qcsrc/menu/xonotic/util.qc:322
 #, c-format
 msgid ""
 "Update can be downloaded at:\n"
@@ -2421,21 +3053,21 @@ msgstr ""
 "L'aggiornamento può essere scaricato da:\n"
 "%s\n"
 
-#: qcsrc/menu/xonotic/util.qc:337
+#: qcsrc/menu/xonotic/util.qc:351
 msgid "Autogenerating mapinfo for newly added maps..."
 msgstr "Autogenerando le mapinfo per le nuove mappe..."
 
-#: qcsrc/menu/xonotic/util.qc:367
+#: qcsrc/menu/xonotic/util.qc:381
 #, c-format
 msgid "^1%s TEST BUILD"
 msgstr "^1%s TEST BUILD"
 
-#: qcsrc/menu/xonotic/util.qc:432
+#: qcsrc/menu/xonotic/util.qc:439
 #, c-format
 msgid "Update to %s now!"
 msgstr "Aggiorna a %s ora!"
 
-#: qcsrc/menu/xonotic/util.qc:501
+#: qcsrc/menu/xonotic/util.qc:524
 msgid ""
 "^1ERROR: Texture compression is required but not supported.\n"
 "^1Expect visual problems.\n"
@@ -2443,446 +3075,456 @@ msgstr ""
 "^1ERRORE: La compressione texture è richiesta ma non supportata.\n"
 "^1Previsti problemi visuali.\n"
 
-#: qcsrc/menu/xonotic/util.qc:523
-msgid "Arena"
-msgstr "Arena"
+#: qcsrc/menu/xonotic/util.qc:643
+msgid "Use default"
+msgstr "Usa predefinito"
 
-#: qcsrc/menu/xonotic/util.qc:524
-msgid "Assault"
-msgstr "Assalto"
+#: qcsrc/menu/xonotic/util.qc:663
+msgid "Team Color:"
+msgstr "Colore Team:"
 
-#: qcsrc/menu/xonotic/util.qc:525
-msgid "Capture The Flag"
-msgstr "Capture The Flag"
+#: qcsrc/menu/xonotic/util.qh:50
+msgid "Enable panel"
+msgstr "Abilita pannello"
 
-#: qcsrc/menu/xonotic/util.qc:526
-msgid "Clan Arena"
-msgstr "Clan Arena"
+#: weapons.qc.tmp:1
+msgid "Rifle"
+msgstr "Rifle"
 
-#: qcsrc/menu/xonotic/util.qc:527
-msgid "Deathmatch"
-msgstr "Deathmatch"
+#: weapons.qc.tmp:2
+msgid "Machine Gun"
+msgstr "Machine Gun"
 
-#: qcsrc/menu/xonotic/util.qc:528
-msgid "Domination"
-msgstr "Dominazione"
+#: weapons.qc.tmp:3
+msgid "Rocket Launcher"
+msgstr "Rocket Launcher"
 
-#: qcsrc/menu/xonotic/util.qc:529
-msgid "Freeze Tag"
-msgstr "Freeze Tag"
+#: weapons.qc.tmp:4
+msgid "Port-O-Launch"
+msgstr "Port-O-Launch"
 
-#: qcsrc/menu/xonotic/util.qc:530
-msgid "Keepaway"
-msgstr "Keepaway"
+#: weapons.qc.tmp:5
+msgid "Grappling Hook"
+msgstr "Grappling Hook"
 
-#: qcsrc/menu/xonotic/util.qc:531
-msgid "Key Hunt"
-msgstr "Key Hunt"
+#: weapons.qc.tmp:6
+msgid "Electro"
+msgstr "Electro"
 
-#: qcsrc/menu/xonotic/util.qc:532
-msgid "Last Man Standing"
-msgstr "Last Man Standing"
+#: weapons.qc.tmp:7
+msgid "Laser"
+msgstr "Laser"
 
-#: qcsrc/menu/xonotic/util.qc:533
-msgid "Nexball"
-msgstr "Nexball"
+#: weapons.qc.tmp:8
+msgid "Shotgun"
+msgstr "Shotgun"
 
-#: qcsrc/menu/xonotic/util.qc:534
-msgid "Onslaught"
-msgstr "Onslaught"
+#: weapons.qc.tmp:9
+#, c-format
+msgid "@!#%'n Tuba"
+msgstr "@!#%'n Tuba"
 
-#: qcsrc/menu/xonotic/util.qc:535
-msgid "Race"
-msgstr "Corsa"
+#: weapons.qc.tmp:10
+msgid "MinstaNex"
+msgstr "MinstaNex"
 
-#: qcsrc/menu/xonotic/util.qc:536
-msgid "Race CTS"
-msgstr "Corsa CTS"
+#: weapons.qc.tmp:11
+msgid "Crylink"
+msgstr "Crylink"
 
-#: qcsrc/menu/xonotic/util.qc:537
-msgid "Runematch"
-msgstr "Runematch"
+#: weapons.qc.tmp:12
+msgid "Heavy Laser Assault Cannon"
+msgstr "Heavy Laser Assault Cannon"
 
-#: qcsrc/menu/xonotic/util.qc:538
-msgid "Team Deathmatch"
-msgstr "Team Deathmatch"
+#: weapons.qc.tmp:13
+msgid "Mortar"
+msgstr "Mortar"
 
-#: qcsrc/menu/xonotic/util.qc:557
-#, c-format
-msgid "@!#%'n Tuba Throwing"
-msgstr "@!#%'n Tuba Throwing"
+#: weapons.qc.tmp:14
+msgid "Hagar"
+msgstr "Hagar"
 
-#: qcsrc/menu/xonotic/util.qc:577 qcsrc/menu/xonotic/util.qc:593
-#: qcsrc/menu/xonotic/util.qc:602 qcsrc/menu/xonotic/util.qc:610
-#: qcsrc/menu/xonotic/util.qc:622
-msgid "Default"
-msgstr "Predefinito"
+#: weapons.qc.tmp:15
+msgid "T.A.G. Seeker"
+msgstr "T.A.G. Seeker"
 
-#: qcsrc/menu/xonotic/util.qc:588
-msgid "Use default"
-msgstr "Usa predefinito"
+#: weapons.qc.tmp:16
+msgid "Fireball"
+msgstr "Fireball"
 
-#: qcsrc/menu/xonotic/util.qc:608
-msgid "Team Color:"
-msgstr "Colore Team:"
+#: weapons.qc.tmp:17
+msgid "Mine Layer"
+msgstr "Mine Layer"
 
-#: qcsrc/menu/xonotic/util.qh:47
-msgid "Enable panel"
-msgstr "Abilita pannello"
+#: weapons.qc.tmp:18
+msgid "Nex"
+msgstr "Nex"
 
-#: qcsrc/server/w_crylink.qc:2
-msgid "Crylink"
-msgstr "Crylink"
+#~ msgid "Match settings:"
+#~ msgstr "Impostazioni partita:"
 
-#: qcsrc/server/w_crylink.qc:666
-#, c-format
-msgid "%s succeeded at self-destructing themself with the Crylink"
-msgstr "%s è riuscito ad autodistruggersi col Crylink"
+#~ msgid "Record demos while playing"
+#~ msgstr "Registra demo durante le partite"
 
-#: qcsrc/server/w_crylink.qc:671
-#, c-format
-msgid "%s could not hide from %s's Crylink"
-msgstr "%s non s'è potuto nascondere dal Crylink di %s"
+#~ msgid "%d/%d, %d free player slots"
+#~ msgstr "%d/%d, %d slot liberi"
 
-#: qcsrc/server/w_crylink.qc:673
-#, c-format
-msgid "%s was too close to %s's Crylink"
-msgstr "%s era troppo vicino al Crylink di %s"
+#~ msgid "%d modified settings"
+#~ msgstr "%d impostazioni modificate"
 
-#: qcsrc/server/w_crylink.qc:675
-#, c-format
-msgid "%s took a close look at %s's Crylink"
-msgstr "%s ha visto da vicino il Crylink di %s"
+#~ msgid "Official settings"
+#~ msgstr "Impostazioni ufficiali"
 
-#: qcsrc/server/w_electro.qc:2
-msgid "Electro"
-msgstr "Electro"
+#~ msgid "N/A (can't connect)"
+#~ msgstr "N/D (impossibile connettersi)"
 
-#: qcsrc/server/w_electro.qc:574
-#, c-format
-msgid "%s could not remember where they put plasma"
-msgstr "%s non s'è ricordato dove aveva messo il plasma"
+#~ msgid "not supported (can't connect)"
+#~ msgstr "non supportato (impossibile connettersi)"
 
-#: qcsrc/server/w_electro.qc:576
-#, c-format
-msgid "%s played with plasma"
-msgstr "%s ha giocato col plasma"
+#~ msgid "not supported (won't encrypt)"
+#~ msgstr "non supportato (non criptato)"
 
-#: qcsrc/server/w_electro.qc:583
-#, c-format
-msgid "%s just noticed %s's blue ball"
-msgstr "%s ha appena notato la palla blu di %s"
+#~ msgid "supported (will encrypt)"
+#~ msgstr "supportato (criptato)"
 
-#: qcsrc/server/w_electro.qc:585
-#, c-format
-msgid "%s got in touch with %s's blue ball"
-msgstr "%s è entrato in contatto con la palla blu di %s"
+#~ msgid "supported (won't encrypt)"
+#~ msgstr "supportato (non criptato)"
 
-#: qcsrc/server/w_electro.qc:590
-#, c-format
-msgid "%s felt the electrifying air of %s's combo"
-msgstr "%s ha sentito l'aria elettrificata della combo di %s"
+#~ msgid "requested (will encrypt)"
+#~ msgstr "richiesto (criptato)"
 
-#: qcsrc/server/w_electro.qc:592
-#, c-format
-msgid "%s got too close to %s's blue beam"
-msgstr "%s s'è avvicinato troppo al raggio blu di %s"
+#~ msgid "requested (won't encrypt)"
+#~ msgstr "richiesto (non criptato)"
 
-#: qcsrc/server/w_electro.qc:594
-#, c-format
-msgid "%s was blasted by %s's blue beam"
-msgstr "%s è stato fatto saltare in aria dal raggio blu di %s"
+#~ msgid "required (can't connect)"
+#~ msgstr "richiesto (impossibile connettersi)"
 
-#: qcsrc/server/w_fireball.qc:2
-msgid "Fireball"
-msgstr "Fireball"
+#~ msgid "required (will encrypt)"
+#~ msgstr "richiesto (criptato)"
 
-#: qcsrc/server/w_fireball.qc:417
-#, c-format
-msgid "%s forgot about some firemine"
-msgstr "%s s'è dimenticato di alcune mine infuocate"
+#~ msgid "Gameplay:"
+#~ msgstr "Gameplay:"
 
-#: 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"
+#~ msgid "Ping:"
+#~ msgstr "Ping:"
 
-#: 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"
+#~ msgid "CA:"
+#~ msgstr "CA:"
 
-#: 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"
+#~ msgid "View bobbing:"
+#~ msgstr "Ondeggiamento:"
 
-#: 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"
+#~ msgid "Zoom factor:"
+#~ msgstr "Fattore zoom:"
 
-#: 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"
+#~ msgid "Zoom speed:"
+#~ msgstr "Velocità zoom:"
 
-#: 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"
+#~ msgid "Weapon settings..."
+#~ msgstr "Impostazioni arma..."
 
-#: qcsrc/server/w_fireball.qc:442
-#, c-format
-msgid "%s tasted %s's fireball"
-msgstr "%s ha assaggiato la fireball di %s"
+#~ msgid "Crosshair:"
+#~ msgstr "Mirino:"
 
-#: qcsrc/server/w_grenadelauncher.qc:2
-msgid "Mortar"
-msgstr "Mortar"
+#~ msgid "Enable center dot"
+#~ msgstr "Abilita puntino al centro"
 
-#: qcsrc/server/w_grenadelauncher.qc:383
-#, c-format
-msgid "%s tried out his own grenade"
-msgstr "%s ha provato da solo la propria granata"
+#~ msgid "Size:"
+#~ msgstr "Dimensioni:"
 
-#: qcsrc/server/w_grenadelauncher.qc:385
-#, c-format
-msgid "%s detonated"
-msgstr "%s è detonato"
+#~ msgid "Hit test:"
+#~ msgstr "Test colpi:"
 
-#: qcsrc/server/w_grenadelauncher.qc:391
-#, c-format
-msgid "%s didn't see %s's grenade"
-msgstr "%s non ha visto la granata di %s"
+#~ msgid "HTST^None"
+#~ msgstr "HTST^Nessuno"
 
-#: qcsrc/server/w_grenadelauncher.qc:393
-#, c-format
-msgid "%s almost dodged %s's grenade"
-msgstr "%s ha quasi schivato la granata di %s"
+#~ msgid "TrueAim"
+#~ msgstr "TrueAim"
 
-#: qcsrc/server/w_grenadelauncher.qc:395
-#, c-format
-msgid "%s ate %s's grenade"
-msgstr "%s ha mangiato la granata di %s"
+#~ msgid "Enemies"
+#~ msgstr "Nemici"
 
-#: qcsrc/server/w_hagar.qc:2
-msgid "Hagar"
-msgstr "Hagar"
+#~ msgid "Waypoints setup..."
+#~ msgstr "Setup dei waypoint..."
 
-#: qcsrc/server/w_hagar.qc:395 qcsrc/server/w_seeker.qc:655
-#, c-format
-msgid "%s played with tiny rockets"
-msgstr "%s ha giocato con piccoli razzi"
+#~ msgid "Disable gore effects"
+#~ msgstr "Disabilita effetti sangue"
 
-#: qcsrc/server/w_hagar.qc:399
-#, c-format
-msgid "%s hoped %s's missiles wouldn't bounce"
-msgstr "%s ha sperato che i missili di %s non rimbalzassero"
+#~ msgid "Damage splash:"
+#~ msgstr "Schizzo del danno:"
 
-#: qcsrc/server/w_hagar.qc:401 qcsrc/server/w_seeker.qc:661
-#, c-format
-msgid "%s was pummeled by %s"
-msgstr "%s è stato preso a pugni da %s"
+#~ msgid "Show base waypoints"
+#~ msgstr "Mostra i waypoint della base"
 
-#: qcsrc/server/w_hlac.qc:2
-msgid "Heavy Laser Assault Cannon"
-msgstr "Heavy Laser Assault Cannon"
+#~ msgid "Waypoint scale:"
+#~ msgstr "Grandezza dei waypoint:"
 
-#: qcsrc/server/w_hlac.qc:242
-#, c-format
-msgid "%s was cut down by %s"
-msgstr "%s è stato abbattuto da %s"
+#~ msgid "Waypoint alpha:"
+#~ msgstr "Opacità dei waypoint"
 
-#: qcsrc/server/w_hook.qc:2
-msgid "Grappling Hook"
-msgstr "Grappling Hook"
+#~ msgid "Show names:"
+#~ msgstr "Mostra nomi:"
 
-#: qcsrc/server/w_hook.qc:266 qcsrc/server/w_porto.qc:296
-#, c-format
-msgid "%s did the impossible"
-msgstr "%s ha fatto l'impossibile"
+#~ msgid "Teammates"
+#~ msgstr "Compagni del team"
 
-#: qcsrc/server/w_hook.qc:268
-#, c-format
-msgid "%s has run into %s's gravity bomb"
-msgstr "%s si è imbattuto nella bomba di gravità di %s"
+#~ msgid "All players"
+#~ msgstr "Tutti i giocatori"
 
-#: qcsrc/server/w_laser.qc:2
-msgid "Laser"
-msgstr "Laser"
+#~ msgid "Network"
+#~ msgstr "Rete"
 
-#: qcsrc/server/w_laser.qc:311
-#, c-format
-msgid "%s lasered themself to hell"
-msgstr "%s si è \"laserato\" all'inferno"
+#~ msgid "Spatial voices:"
+#~ msgstr "Voci spaziali:"
 
-#: qcsrc/server/w_laser.qc:315
-#, c-format
-msgid "%s was cut in half by %s's gauntlet"
-msgstr "%s è stato tagliato a metà dal guanto di %s"
+#~ msgid "VOCS^None"
+#~ msgstr "VOCS^Nessuna"
 
-#: qcsrc/server/w_laser.qc:317
-#, c-format
-msgid "%s was lasered to death by %s"
-msgstr "%s è stato \"laserato\" a morte da %s"
+#~ msgid "VOCS^Taunts"
+#~ msgstr "VOCS^Insulti"
 
-#: qcsrc/server/w_minelayer.qc:2
-msgid "Mine Layer"
-msgstr "Mine Layer"
+#~ msgid "VOCS^All"
+#~ msgstr "VOCS^Tutte"
 
-#: qcsrc/server/w_minelayer.qc:523 qcsrc/server/w_rocketlauncher.qc:501
-#, c-format
-msgid "%s exploded"
-msgstr "%s è esploso"
+#~ msgid "Taunt range:"
+#~ msgstr "Range di insulti:"
 
-#: qcsrc/server/w_minelayer.qc:527
-#, c-format
-msgid "%s got too close to %s's mine"
-msgstr "%s s'è avvicinato troppo alla mina di %s"
+#~ msgid "RNG^Very short"
+#~ msgstr "RNG^Molto ristretto"
 
-#: qcsrc/server/w_minelayer.qc:529
-#, c-format
-msgid "%s almost dodged %s's mine"
-msgstr "%s ha quasi schivato la mina di %s"
+#~ msgid "RNG^Short"
+#~ msgstr "RNG^Ristretto"
 
-#: qcsrc/server/w_minelayer.qc:531
-#, c-format
-msgid "%s stepped on %s's mine"
-msgstr "%s è passato sopra la mina di %s"
+#~ msgid "RNG^Normal"
+#~ msgstr "RNG^Normale"
 
-#: qcsrc/server/w_minstanex.qc:2
-msgid "MinstaNex"
-msgstr "MinstaNex"
+#~ msgid "RNG^Long"
+#~ msgstr "RNG^Lungo"
 
-#: qcsrc/server/w_minstanex.qc:293 qcsrc/server/w_nex.qc:253
-#: qcsrc/server/w_shotgun.qc:215 qcsrc/server/w_uzi.qc:317
-#, c-format
-msgid "%s is now thinking with portals"
-msgstr "%s sta ora pensando con i portali"
+#~ msgid "RNG^Full"
+#~ msgstr "RNG^Pieno"
 
-#: qcsrc/server/w_minstanex.qc:295 qcsrc/server/w_nex.qc:255
-#, c-format
-msgid "%s has been vaporized by %s"
-msgstr "%s è stato vaporizzato da %s"
+#~ msgid "Time warning:"
+#~ msgstr "Avvertimento di tempo:"
 
-#: qcsrc/server/w_nex.qc:2
-msgid "Nex"
-msgstr "Nex"
+#~ msgid "WRN^None"
+#~ msgstr "WRN^Nessuno"
 
-#: qcsrc/server/w_porto.qc:2
-msgid "Port-O-Launch"
-msgstr "Port-O-Launch"
+#~ msgid "Hit indicator"
+#~ msgstr "Indicatore di colpo"
 
-#: 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"
+#~ msgid "Particle quality:"
+#~ msgstr "Qualità particelle:"
 
-#: qcsrc/server/w_rifle.qc:2
-msgid "Rifle"
-msgstr "Fucile"
+#~ msgid "Particle distance:"
+#~ msgstr "Distanza particelle:"
 
-#: qcsrc/server/w_rifle.qc:233
-#, c-format
-msgid "%s shot themself automatically"
-msgstr "%s si è sparato da solo automaticamente"
+#~ msgid "Flash blend approximation"
+#~ msgstr "Approssimazione Flash blend"
 
-#: qcsrc/server/w_rifle.qc:235
-#, c-format
-msgid "%s sniped themself somehow"
-msgstr "%s si è fucilato da solo in qualche modo"
+#~ msgid "High Dynamic Range (HDR)"
+#~ msgstr "High Dynamic Range (HDR)"
 
-#: qcsrc/server/w_rifle.qc:242
-#, c-format
-msgid "%s failed to hide from %s's bullet hail"
-msgstr "%s non è riuscito a nascondersi dalla raffica di proiettili di %s"
+#~ msgid "Blur and sharpen postprocessing"
+#~ msgstr "Postprocessa per sfocatura e nitidezza"
 
-#: qcsrc/server/w_rifle.qc:244
-#, c-format
-msgid "%s died in %s's bullet hail"
-msgstr "%s è morto nella raffica di proiettili di %s"
+#~ msgid "UI mouse speed:"
+#~ msgstr "Velocità UI mouse:"
 
-#: qcsrc/server/w_rifle.qc:251
-#, c-format
-msgid "%s failed to hide from %s's rifle"
-msgstr "%s non è riuscito a nascondersi dal fucile di %s"
+#~ msgid "Mouse filter"
+#~ msgstr "Filtro mouse"
 
-#: qcsrc/server/w_rifle.qc:256
-#, c-format
-msgid "%s got hit in the head by %s"
-msgstr "%s ha preso un colpo in testa da %s"
+#~ msgid "Invert mouse"
+#~ msgstr "Inverti mouse"
 
-#: qcsrc/server/w_rifle.qc:258 qcsrc/server/w_uzi.qc:321
-#, c-format
-msgid "%s was sniped by %s"
-msgstr "%s è stato fucilato da %s"
+#~ msgid "Turn off OS mouse acceleration"
+#~ msgstr "Disattiva l'accelerazione mouse dell'OS"
 
-#: qcsrc/server/w_rocketlauncher.qc:2
-msgid "Rocket Launcher"
-msgstr "Rocket Launcher"
+#~ msgid "\"enter console\" also closes"
+#~ msgstr "\"apri console\" chiude anche"
 
-#: qcsrc/server/w_rocketlauncher.qc:505
-#, c-format
-msgid "%s got too close to %s's rocket"
-msgstr "%s s'è avvicinato troppo al razzo di %s"
+#~ msgid "Minimize input latency"
+#~ msgstr "Minimizza latenza in entrata"
 
-#: qcsrc/server/w_rocketlauncher.qc:507
-#, c-format
-msgid "%s almost dodged %s's rocket"
-msgstr "%s ha quasi schivato il razzo di %s"
+#~ msgid "Network speed:"
+#~ msgstr "Velocità rete:"
 
-#: qcsrc/server/w_rocketlauncher.qc:509
-#, c-format
-msgid "%s ate %s's rocket"
-msgstr "%s ha mangiato il razzo di %s"
+#~ msgid "HTTP downloads:"
+#~ msgstr "Download via HTTP:"
 
-#: qcsrc/server/w_seeker.qc:2
-msgid "T.A.G. Seeker"
-msgstr "T.A.G. Seeker"
+#~ msgid "Disable multithreaded OpenGL"
+#~ msgstr "Disabilita il multithreading OpenGL"
 
-#: qcsrc/server/w_seeker.qc:659
-#, c-format
-msgid "%s was tagged by %s"
-msgstr "%s è stato contrassegnato da %s"
+#~ msgid "Capture The Flag"
+#~ msgstr "Capture The Flag"
 
-#: qcsrc/server/w_shotgun.qc:2
-msgid "Shotgun"
-msgstr "Shotgun"
+#~ msgid "%s succeeded at self-destructing themself with the Crylink"
+#~ msgstr "%s è riuscito ad autodistruggersi col Crylink"
 
-#: qcsrc/server/w_shotgun.qc:219
-#, 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"
+#~ msgid "%s could not hide from %s's Crylink"
+#~ msgstr "%s non s'è potuto nascondere dal Crylink di %s"
 
-#: qcsrc/server/w_shotgun.qc:221
-#, c-format
-msgid "%s was gunned by %s"
-msgstr "%s è stato sparato da %s"
+#~ msgid "%s was too close to %s's Crylink"
+#~ msgstr "%s era troppo vicino al Crylink di %s"
 
-#: qcsrc/server/w_tuba.qc:2
-#, c-format
-msgid "@!#%'n Tuba"
-msgstr "@!#%'n Tuba"
+#~ msgid "%s took a close look at %s's Crylink"
+#~ msgstr "%s ha visto da vicino il Crylink di %s"
 
-#: qcsrc/server/w_tuba.qc:252
-#, c-format
-msgid "%s hurt his own ears with the @!#%%'n Tuba"
-msgstr "%s s'è fatto male alle orecchie con la @!#%%'n Tuba"
+#~ msgid "%s could not remember where they put plasma"
+#~ msgstr "%s non s'è ricordato dove aveva messo il plasma"
 
-#: qcsrc/server/w_tuba.qc:256
-#, 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"
+#~ msgid "%s played with plasma"
+#~ msgstr "%s ha giocato col plasma"
 
-#: qcsrc/server/w_uzi.qc:2
-msgid "Machine Gun"
-msgstr "Machine Gun"
+#~ msgid "%s just noticed %s's blue ball"
+#~ msgstr "%s ha appena notato la palla blu di %s"
 
-#: 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"
+#~ msgid "%s got in touch with %s's blue ball"
+#~ msgstr "%s è entrato in contatto con la palla blu di %s"
+
+#~ msgid "%s felt the electrifying air of %s's combo"
+#~ msgstr "%s ha sentito l'aria elettrificata della combo di %s"
+
+#~ msgid "%s got too close to %s's blue beam"
+#~ msgstr "%s s'è avvicinato troppo al raggio blu di %s"
+
+#~ msgid "%s was blasted by %s's blue beam"
+#~ msgstr "%s è stato fatto saltare in aria dal raggio blu di %s"
+
+#~ msgid "%s forgot about some firemine"
+#~ msgstr "%s s'è dimenticato di alcune mine infuocate"
+
+#~ msgid "%s should have used a smaller gun"
+#~ msgstr "%s avrebbe dovuto usare un'arma più piccola"
+
+#~ msgid "%s tried to catch %s's firemine"
+#~ msgstr "%s ha provato a catturare la mina infuocata di %s"
+
+#~ msgid "%s fatefully ignored %s's firemine"
+#~ msgstr "%s ha fatalmente ignorato la mina infuocata di %s"
+
+#~ msgid "%s could not hide from %s's fireball"
+#~ msgstr "%s non è riuscito a nascondersi dalla fireball di %s"
+
+#~ msgid "%s saw the pretty lights of %s's fireball"
+#~ msgstr "%s ha visto le belle luci della fireball di %s"
+
+#~ msgid "%s got too close to %s's fireball"
+#~ msgstr "%s s'è avvicinato troppo alla fireball di %s"
+
+#~ msgid "%s tasted %s's fireball"
+#~ msgstr "%s ha assaggiato la fireball di %s"
+
+#~ msgid "%s tried out his own grenade"
+#~ msgstr "%s ha provato da solo la propria granata"
+
+#~ msgid "%s detonated"
+#~ msgstr "%s è detonato"
+
+#~ msgid "%s didn't see %s's grenade"
+#~ msgstr "%s non ha visto la granata di %s"
+
+#~ msgid "%s almost dodged %s's grenade"
+#~ msgstr "%s ha quasi schivato la granata di %s"
+
+#~ msgid "%s ate %s's grenade"
+#~ msgstr "%s ha mangiato la granata di %s"
+
+#~ msgid "%s played with tiny rockets"
+#~ msgstr "%s ha giocato con piccoli razzi"
+
+#~ msgid "%s hoped %s's missiles wouldn't bounce"
+#~ msgstr "%s ha sperato che i missili di %s non rimbalzassero"
+
+#~ msgid "%s was pummeled by %s"
+#~ msgstr "%s è stato preso a pugni da %s"
+
+#~ msgid "%s was cut down by %s"
+#~ msgstr "%s è stato abbattuto da %s"
+
+#~ msgid "%s did the impossible"
+#~ msgstr "%s ha fatto l'impossibile"
+
+#~ msgid "%s has run into %s's gravity bomb"
+#~ msgstr "%s si è imbattuto nella bomba di gravità di %s"
+
+#~ msgid "%s lasered themself to hell"
+#~ msgstr "%s si è \"laserato\" all'inferno"
+
+#~ msgid "%s was cut in half by %s's gauntlet"
+#~ msgstr "%s è stato tagliato a metà dal guanto di %s"
+
+#~ msgid "%s was lasered to death by %s"
+#~ msgstr "%s è stato \"laserato\" a morte da %s"
+
+#~ msgid "%s exploded"
+#~ msgstr "%s è esploso"
+
+#~ msgid "%s got too close to %s's mine"
+#~ msgstr "%s s'è avvicinato troppo alla mina di %s"
+
+#~ msgid "%s almost dodged %s's mine"
+#~ msgstr "%s ha quasi schivato la mina di %s"
+
+#~ msgid "%s stepped on %s's mine"
+#~ msgstr "%s è passato sopra la mina di %s"
+
+#~ msgid "%s is now thinking with portals"
+#~ msgstr "%s sta ora pensando con i portali"
+
+#~ msgid "%s has been vaporized by %s"
+#~ msgstr "%s è stato vaporizzato da %s"
+
+#~ msgid "%s felt %s doing the impossible to him"
+#~ msgstr "%s ha sentito %s fargli l'impossibile"
+
+#~ msgid "%s shot themself automatically"
+#~ msgstr "%s si è sparato da solo automaticamente"
+
+#~ msgid "%s sniped themself somehow"
+#~ msgstr "%s si è fucilato da solo in qualche modo"
+
+#~ msgid "%s failed to hide from %s's bullet hail"
+#~ msgstr "%s non è riuscito a nascondersi dalla raffica di proiettili di %s"
+
+#~ msgid "%s died in %s's bullet hail"
+#~ msgstr "%s è morto nella raffica di proiettili di %s"
+
+#~ msgid "%s failed to hide from %s's rifle"
+#~ msgstr "%s non è riuscito a nascondersi dal fucile di %s"
+
+#~ msgid "%s got hit in the head by %s"
+#~ msgstr "%s ha preso un colpo in testa da %s"
+
+#~ msgid "%s was sniped by %s"
+#~ msgstr "%s è stato fucilato da %s"
+
+#~ msgid "%s got too close to %s's rocket"
+#~ msgstr "%s s'è avvicinato troppo al razzo di %s"
+
+#~ msgid "%s almost dodged %s's rocket"
+#~ msgstr "%s ha quasi schivato il razzo di %s"
+
+#~ msgid "%s ate %s's rocket"
+#~ msgstr "%s ha mangiato il razzo di %s"
+
+#~ msgid "%s was tagged by %s"
+#~ msgstr "%s è stato contrassegnato da %s"
+
+#~ 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"
+
+#~ msgid "%s was gunned by %s"
+#~ msgstr "%s è stato sparato da %s"
+
+#~ msgid "%s hurt his own ears with the @!#%%'n Tuba"
+#~ msgstr "%s s'è fatto male alle orecchie con la @!#%%'n Tuba"
+
+#~ msgid "%s died of %s's great playing on the @!#%%'n Tuba"
+#~ msgstr "%s è morto nella gran esibizione di %s con la @!#%%'n Tuba"
+
+#~ msgid "%s was riddled full of holes by %s"
+#~ msgstr "%s è stato riempito di buchi da %s"
 
 #~ msgid "Damage & water blur"
 #~ msgstr "Sfocatura da danno & acqua:"
@@ -2899,9 +3541,6 @@ msgstr "%s è stato riempito di buchi da %s"
 #~ "Per favore rispondi a poche domande iniziali per migliorare l'esperienza "
 #~ "di gioco."
 
-#~ msgid "%d/%d"
-#~ msgstr "%d/%d"
-
 #~ msgid "Sniper Rifle"
 #~ msgstr "Sniper Rifle"
 
index 0e2fb68101e4d54f39462e11edc3a5bd2aadeb4c..cf326b05a4154bbb3e131cee7235bb04282f5568 100644 (file)
@@ -8,42 +8,111 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-09-02 07:51+0200\n"
+"POT-Creation-Date: 2012-01-26 12:24+0100\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"
+"Language-Team: Merlijn Hofstra <mhofstra@gmail.com>\n"
+"Language: nl\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: qcsrc/common/mapinfo.qc:1092 qcsrc/menu/xonotic/skinlist.c:163
+#: qcsrc/common/mapinfo.qc:665
+#, c-format
+msgid "@!#%'n Tuba Throwing"
+msgstr "@!#%'n Tuba Smijten"
+
+#: qcsrc/common/mapinfo.qc:1057 qcsrc/menu/xonotic/skinlist.c:166
 #, c-format
 msgid "%s: %s"
 msgstr "%s: %s"
 
-#: qcsrc/menu/gamecommand.qc:47
+#: qcsrc/common/mapinfo.qh:36
+msgid "Deathmatch"
+msgstr "Deathmatch"
+
+#: qcsrc/common/mapinfo.qh:39
+msgid "Last Man Standing"
+msgstr "Last Man Standing"
+
+#: qcsrc/common/mapinfo.qh:42
+msgid "Arena"
+msgstr "Arena"
+
+#: qcsrc/common/mapinfo.qh:45
+msgid "Runematch"
+msgstr "Runematch"
+
+#: qcsrc/common/mapinfo.qh:48
+msgid "Race"
+msgstr "Race"
+
+#: qcsrc/common/mapinfo.qh:51
+msgid "Race CTS"
+msgstr "Race CTS"
+
+#: qcsrc/common/mapinfo.qh:54
+msgid "Team Deathmatch"
+msgstr "Team Deathmatch"
+
+#: qcsrc/common/mapinfo.qh:57
+msgid "Capture the Flag"
+msgstr "Capture The Flag"
+
+#: qcsrc/common/mapinfo.qh:60
+msgid "Clan Arena"
+msgstr "Clan Arena"
+
+#: qcsrc/common/mapinfo.qh:63
+msgid "Domination"
+msgstr "Domination"
+
+#: qcsrc/common/mapinfo.qh:66
+msgid "Key Hunt"
+msgstr "Key Hunt"
+
+#: qcsrc/common/mapinfo.qh:69
+msgid "Assault"
+msgstr "Assault"
+
+#: qcsrc/common/mapinfo.qh:72
+msgid "Onslaught"
+msgstr "Onslaught"
+
+#: qcsrc/common/mapinfo.qh:75
+msgid "Nexball"
+msgstr "Nexball"
+
+#: qcsrc/common/mapinfo.qh:78
+msgid "Freeze Tag"
+msgstr "Freeze Tag"
+
+#: qcsrc/common/mapinfo.qh:81
+msgid "Keepaway"
+msgstr "Keepaway"
+
+#: qcsrc/menu/command/menu_cmd.qc:41
 #, c-format
 msgid "error: status is %d\n"
 msgstr "error: status is %d\n"
 
-#: qcsrc/menu/gamecommand.qc:65
+#: qcsrc/menu/command/menu_cmd.qc:64
 msgid "Usage: menu_cmd command..., where possible commands are:\n"
 msgstr "Gebruik: menu_cmd command..., waar mogelijke opdrachten zijn:\n"
 
-#: qcsrc/menu/gamecommand.qc:66
+#: qcsrc/menu/command/menu_cmd.qc:65
 msgid "  sync - reloads all cvars on the current menu page\n"
 msgstr "  sync - alle cvars op de huidige menupagina worden opnieuw geladen\n"
 
-#: qcsrc/menu/gamecommand.qc:67
+#: qcsrc/menu/command/menu_cmd.qc:66
 msgid "  directmenu ITEM - select a menu item as main item\n"
 msgstr "  directmenu ITEM - selecteer deel van menu als hoofddeel"
 
-#: qcsrc/menu/gamecommand.qc:193
+#: qcsrc/menu/command/menu_cmd.qc:179
 msgid "error creating curl handle\n"
 msgstr "fout bij aanmaken curl handgreep\n"
 
-#: qcsrc/menu/gamecommand.qc:239
+#: qcsrc/menu/command/menu_cmd.qc:186
 msgid "Invalid command. For a list of supported commands, try menu_cmd help.\n"
 msgstr ""
 "Ongeldige opdracht. Voor een lijst met ondersteunde opdrachten, probeer "
@@ -74,17 +143,17 @@ msgstr "%d (%s)"
 msgid "custom"
 msgstr "aangepast"
 
-#: qcsrc/menu/menu.qc:29
-#, fuzzy, c-format
+#: qcsrc/menu/menu.qc:37
+#, c-format
 msgid "^4MQC Build information: ^1%s\n"
 msgstr "^4MQC Versie informatie: %s\n"
 
-#: qcsrc/menu/xonotic/campaign.c:284
-#: qcsrc/menu/xonotic/dialog_singleplayer.c:134
+#: qcsrc/menu/xonotic/campaign.c:288
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:123
 msgid "???"
 msgstr "???"
 
-#: qcsrc/menu/xonotic/campaign.c:285
+#: qcsrc/menu/xonotic/campaign.c:289
 #, c-format
 msgid "Level %d: %s"
 msgstr "Level %d: %s"
@@ -115,10 +184,14 @@ msgstr "Aftiteling"
 
 #: 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:57
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:61
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:277
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:91
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:96
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:56
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:113
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:74
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:89
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:73
 #: qcsrc/menu/xonotic/dialog_singleplayer_winner.c:21
 msgid "OK"
 msgstr "OK"
@@ -127,25 +200,44 @@ msgstr "OK"
 msgid "Welcome"
 msgstr "Welkom"
 
-#: qcsrc/menu/xonotic/dialog_firstrun.c:33
+#: qcsrc/menu/xonotic/dialog_firstrun.c:40
 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 ""
+"Welkom bij Xonotic, selecteer de gewenste taal en stel je naam in bij het "
+"speler menu. Deze instellingen kun je later wijzigen in het menu systeem"
 
-#: qcsrc/menu/xonotic/dialog_firstrun.c:38
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:35
-msgid "Text language:"
-msgstr "Taal van de tekst:"
-
-#: qcsrc/menu/xonotic/dialog_firstrun.c:47
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:40
+#: qcsrc/menu/xonotic/dialog_firstrun.c:46
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:37
 #: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:39
 msgid "Name:"
 msgstr "Naam:"
 
-#: qcsrc/menu/xonotic/dialog_firstrun.c:69
+#: qcsrc/menu/xonotic/dialog_firstrun.c:68
+#: qcsrc/menu/xonotic/dialog_settings_user.c:65
+msgid "Text language:"
+msgstr "Taal van de tekst:"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:77
+msgid "Allow player statistics to use your nickname at stats.xonotic.org?"
+msgstr ""
+"Sta toe dat speler statistieken uw nickname gebruiken op stats.xonotic.org?"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:81
+msgid "ALWU2N^Yes"
+msgstr "Ja"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:82
+msgid "ALWU2N^No"
+msgstr "Nee"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:83
+msgid "ALWU2N^Undecided"
+msgstr "Geen idee"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:87
 msgid "Save settings"
 msgstr "Opslaginstellingen:"
 
@@ -163,7 +255,7 @@ msgstr "Laat alleen huidig ammunitietype zien"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:28
 msgid "Align icon:"
-msgstr ""
+msgstr "Icoon uitlijning:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:29
 #: qcsrc/menu/xonotic/dialog_hudpanel_centerprint.c:36
@@ -185,37 +277,32 @@ msgstr "Rechts"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_centerprint.c:4
 msgid "Centerprint"
-msgstr ""
+msgstr "Centerprint"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_centerprint.c:23
-#, fuzzy
 msgid "Message duration:"
-msgstr "Verzadiging:"
+msgstr "Bericht lengte:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_centerprint.c:27
-#, fuzzy
 msgid "Fade time:"
-msgstr "Post vervaagtijd:"
+msgstr "Vervaagtijd:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_centerprint.c:31
-#, fuzzy
 msgid "Flip messages order"
-msgstr "Notificatievolgorde omdraaien"
+msgstr "Berichtvolgorde omdraaien"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_centerprint.c:33
-#, fuzzy
 msgid "Text alignment:"
-msgstr "Icoon positie:"
+msgstr "Text positie:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_centerprint.c:37
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:50
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:51
 msgid "Center"
-msgstr ""
+msgstr "Gecentreerd"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_centerprint.c:41
-#, fuzzy
 msgid "Font scale:"
-msgstr "Wegwijzer schaal:"
+msgstr "Lettertype schaal:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:4
 msgid "Chat Panel"
@@ -327,9 +414,8 @@ msgid "Entry fadetime:"
 msgstr "Post vervaagtijd:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:4
-#, fuzzy
 msgid "Physics Panel"
-msgstr "Chat Paneel"
+msgstr "Physics Paneel"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:22
 #: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:21
@@ -338,62 +424,55 @@ msgid "Panel disabled"
 msgstr "Paneel uitgeschakeld"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:23
-#, fuzzy
 msgid "Panel enabled"
-msgstr "Paneel uitgeschakeld"
+msgstr "Paneel ingeschakeld"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:24
-#, fuzzy
 msgid "Panel enabled even observing"
 msgstr "Paneel activeren tijdens observeren"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:25
-#, fuzzy
 msgid "Panel enabled only in Race/CTS"
-msgstr "Paneel actief in teammodus"
+msgstr "Paneel alleen actief in Race/CTS"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:31
-#, fuzzy
 msgid "Status bar"
-msgstr "Activeer status balk"
+msgstr "Status balk"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:33
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:48
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:49
 msgid "Left align"
 msgstr "Links"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:34
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:52
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:53
 msgid "Right align"
 msgstr "Rechts"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:35
-#, fuzzy
 msgid "Inward align"
 msgstr "Binnenkant"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:36
-#, fuzzy
 msgid "Outward align"
 msgstr "Buitenkant"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:40
-#, fuzzy
 msgid "Flip speed/acceleration positions"
-msgstr "Keer health en armor posities om"
+msgstr "Keer snelheid/acceleratie posities om"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:44
-#, fuzzy
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:29
 msgid "Speed:"
-msgstr "Snelheid (kB/s):"
+msgstr "Snelheid:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:45
 msgid "Include vertical speed"
-msgstr ""
+msgstr "Inclusief verticale snelheid"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:56
 msgid "Speed unit:"
-msgstr ""
+msgstr "Snelheid eenheid:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:58
 msgid "qu/s"
@@ -416,23 +495,20 @@ msgid "knots"
 msgstr "knopen"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:64
-#, fuzzy
 msgid "Show"
-msgstr "Ammunitie tonen"
+msgstr "Toon"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:67
-#, fuzzy
 msgid "Top speed"
-msgstr "Zoom snelheid:"
+msgstr "Top snelheid"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:73
-#, fuzzy
 msgid "Acceleration:"
-msgstr "Reflecties"
+msgstr "Acceleratie:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:74
 msgid "Include vertical acceleration"
-msgstr ""
+msgstr "Inclusief verticale versnelling"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:4
 msgid "Powerups Panel"
@@ -478,8 +554,8 @@ 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:154
-#: qcsrc/menu/xonotic/util.qc:600
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:66
+#: qcsrc/menu/xonotic/util.qc:655
 msgid "Alpha:"
 msgstr "Alpha:"
 
@@ -508,6 +584,7 @@ msgid "North"
 msgstr "Noord"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:46
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:61
 msgid "Scale:"
 msgstr "Schaal:"
 
@@ -537,24 +614,23 @@ msgstr "Score Paneel"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_score.c:22
 msgid "Score:"
-msgstr ""
+msgstr "Score:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_score.c:25
 msgid "Rankings:"
-msgstr ""
+msgstr "Classificering:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_score.c:26
-#, fuzzy
 msgid "Off"
-msgstr "VBO^Uit"
+msgstr "Uit"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_score.c:27
 msgid "And me"
-msgstr ""
+msgstr "En ik"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_score.c:28
 msgid "Pure"
-msgstr ""
+msgstr "Puur"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_timer.c:4
 msgid "Timer Panel"
@@ -585,7 +661,6 @@ msgid "Fade out after:"
 msgstr "Vervagen na:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:26
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:36
 msgid "Never"
 msgstr "Nooit"
 
@@ -611,43 +686,46 @@ msgid "Alpha"
 msgstr "Alpha"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:38
-#, fuzzy
 msgid "EF^Both"
-msgstr "WRN^Beiden"
+msgstr "Beiden"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:42
 msgid "Weapon icons:"
 msgstr "Wapeniconen:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:45
+msgid "Show only owned weapons"
+msgstr "Laat alleen wapens in bezit zien"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:48
 msgid "Show weapon ID as:"
 msgstr "Toon wapen-ID als:"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:46
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:49
 msgid "SHOWAS^None"
 msgstr "SHOWAS^Geen"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:47
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:50
 msgid "Number"
 msgstr "Nummer"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:48
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:51
 msgid "Bind"
 msgstr "Binden"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:51
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:54
 msgid "Show Accuracy"
 msgstr "Nauwkeurigheid tonen"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:52
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:55
 msgid "Show Ammo"
 msgstr "Ammunitie tonen"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:55
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:58
 msgid "Ammo bar color:"
 msgstr "Ammunitie balk kleur:"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:61
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:64
 msgid "Ammo bar alpha:"
 msgstr "Ammunitie alpha:"
 
@@ -659,24 +737,24 @@ msgstr "Paneel HUD Instellingen"
 msgid "Panel background defaults:"
 msgstr "Paneel achtergrond standaards:"
 
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:23 qcsrc/menu/xonotic/util.qc:575
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:23 qcsrc/menu/xonotic/util.qc:630
 msgid "Background:"
 msgstr "Achtergrond"
 
 #: 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:578
-#: qcsrc/menu/xonotic/util.qc:594 qcsrc/menu/xonotic/util.qc:611
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:91 qcsrc/menu/xonotic/util.qc:633
+#: qcsrc/menu/xonotic/util.qc:649 qcsrc/menu/xonotic/util.qc:666
 msgid "Disable"
 msgstr "Uitschakelen"
 
 #: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:30
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:77 qcsrc/menu/xonotic/util.qc:583
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:77 qcsrc/menu/xonotic/util.qc:638
 msgid "Color:"
 msgstr "Kleur:"
 
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:35 qcsrc/menu/xonotic/util.qc:591
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:35 qcsrc/menu/xonotic/util.qc:646
 msgid "Border size:"
 msgstr "Grootte rand:"
 
@@ -685,11 +763,11 @@ msgstr "Grootte rand:"
 msgid "Team color:"
 msgstr "Teamkleur:"
 
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:58 qcsrc/menu/xonotic/util.qc:617
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:58 qcsrc/menu/xonotic/util.qc:672
 msgid "Test team color in configure mode"
 msgstr "Test teamkleur in aanpassingsmodus"
 
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:61 qcsrc/menu/xonotic/util.qc:620
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:61 qcsrc/menu/xonotic/util.qc:675
 msgid "Padding:"
 msgstr "Opvulling:"
 
@@ -763,127 +841,123 @@ msgstr "Speler Instellingen"
 msgid "Game type:"
 msgstr "Game modus"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:46
-msgid "Match settings:"
-msgstr "Match instellingen:"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:49
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:48
 msgid "Time limit:"
 msgstr "Tijdslimiet:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:53
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:61
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:52
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:60
 msgid "Use map specified default"
 msgstr "Gebruik map specificaties"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:56
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:55
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:154
 #: qcsrc/menu/xonotic/dialog_multiplayer_create.c:155
 #: qcsrc/menu/xonotic/dialog_multiplayer_create.c:156
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:157
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:160
 #: qcsrc/menu/xonotic/dialog_multiplayer_create.c:161
 #: qcsrc/menu/xonotic/dialog_multiplayer_create.c:162
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:163
 msgid "Point limit:"
 msgstr "Punten limiet:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:64
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:63
 msgid "Player slots:"
 msgstr "Aantal spelers:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:67
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:66
 msgid "Number of bots:"
 msgstr "Aantal bots"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:71
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:69
 msgid "Bot skill:"
 msgstr "Bot vaardigheid"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:74
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:72
 msgid "Botlike"
 msgstr "Botlike"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:75
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:73
 msgid "Beginner"
 msgstr "Beginner"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:76
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:74
 msgid "You will win"
 msgstr "Je zal winnen"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:77
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:75
 msgid "You can win"
 msgstr "Je kan winnen"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:78
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:76
 msgid "You might win"
 msgstr "Je zou kunnen winnen"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:79
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:77
 msgid "Advanced"
 msgstr "Geavanceerd"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:80
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:78
 msgid "Expert"
 msgstr "Expert"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:81
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:79
 msgid "Pro"
 msgstr "Pro"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:82
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:80
 msgid "Assassin"
 msgstr "Sluipmoordenaar"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:83
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:81
 msgid "Unhuman"
 msgstr "Onmenselijk"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:84
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:82
 msgid "Godlike"
 msgstr "Goddelijk"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:88
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:87
 msgid "Mutators..."
 msgstr "Mutaties..."
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:97
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:57
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:96
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:145
 msgid "Advanced settings..."
 msgstr "Geavanceerde instellingen..."
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:104
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:103
 msgid "Map list:"
 msgstr "Map lijst:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:110
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:109
 msgid "Select all"
 msgstr "Selecteer alles"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:113
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:112
 msgid "Select none"
 msgstr "Selecteer niets"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:119
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:118
 msgid "Start Multiplayer!"
 msgstr "Start Multiplayer!"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:154
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:153
 msgid "Capture limit:"
 msgstr "Vlaggen limiet:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:158
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:157
 msgid "Lives:"
 msgstr "Levens:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:159
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:158
 msgid "Laps:"
 msgstr "Rondes:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:160
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:159
 msgid "Goals:"
 msgstr "Goals:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:164
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:163
 msgid "Frag limit:"
 msgstr "Frag limiet:"
 
@@ -987,29 +1061,28 @@ msgstr "Volledige item distributie"
 msgid "MinstaGib only"
 msgstr "Alleen MinstaGib"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:78
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:81
 msgid "Title:"
 msgstr "Titel:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:84
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:87
 msgid "Author:"
 msgstr "Auteur:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:90
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:93
 msgid "Features:"
 msgstr "Bevat:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:95
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:98
 msgid "Game types:"
 msgstr "Game modus:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:118
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:314
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:121
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:335
 msgid "Close"
 msgstr "Dichtdoen"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:121
-#, fuzzy
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:124
 msgid "MAP^Play"
 msgstr "Speel"
 
@@ -1031,108 +1104,121 @@ msgid "%s Arena"
 msgstr "%s Arena"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:68
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:167
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:173
 msgid "Dodging"
 msgstr "Ontwijken"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:70
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:250
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:258
 msgid "MinstaGib"
 msgstr "MinstaGib"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:72
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:253
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:261
 msgid "NIX"
 msgstr "NIX"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:74
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:205
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:213
 msgid "Rocket Flying"
 msgstr "Raket Vliegen"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:78
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:264
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:76
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:210
+msgid "Invincible Projectiles"
+msgstr "Onoverwinnelijke Projectielen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:80
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:272
 msgid "No start weapons"
 msgstr "Geen start wapens"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:80
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:189
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:82
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:195
 msgid "Low gravity"
 msgstr "Lage zwaartekracht"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:82
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:170
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:84
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:176
 msgid "Cloaked"
 msgstr "Onzichtbaarheid"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:84
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:86
 msgid "Hook"
 msgstr "Haak"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:86
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:173
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:88
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:179
 msgid "Midair"
 msgstr "In de lucht"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:88
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:176
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:90
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:182
 msgid "Vampire"
 msgstr "Vampier"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:90
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:208
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:92
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:216
 msgid "Piñata"
 msgstr "Piñata"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:92
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:211
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:94
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:219
 msgid "Weapons stay"
 msgstr "Wapens blijven"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:94
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:180
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:96
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:186
 msgid "Blood loss"
 msgstr "Bloedverlies"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:96
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:202
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:98
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:207
 msgid "Jet pack"
 msgstr "Jet pack"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:98
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:100
+msgid "No powerups"
+msgstr "Geen powerups"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:102
+msgid "Powerups"
+msgstr "Powerups"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:104
 msgid "MUT^None"
 msgstr "MUT^Geen"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:164
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:170
 msgid "Gameplay mutators:"
 msgstr "Gameplay mutaties:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:196
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:201
 msgid "Weapon & item mutators:"
 msgstr "Wapen & item mutaties:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:199
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:204
 msgid "Grappling hook"
 msgstr "Grappling hook"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:215
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:223
 msgid "Weapon arenas:"
 msgstr "Wapen arena’s:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:218
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:226
 msgid "Regular (no arena)"
 msgstr "Normaal (geen arena)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:239
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:256
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:247
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:264
 msgid "with laser"
 msgstr "met lazer"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:247
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:255
 msgid "Special arenas:"
 msgstr "Speciale arenas:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:260
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:268
 msgid "Most weapons"
 msgstr "Meeste wapens"
 
@@ -1141,27 +1227,26 @@ msgid "Demo"
 msgstr "Demo"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:28
-msgid "Record demos while playing"
-msgstr "Demo’s opnemen tijdens het spelen:"
+msgid "Automatically record demos while playing"
+msgstr "Demo’s opnemen tijdens het spelen"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:32
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:31
 #: qcsrc/menu/xonotic/dialog_multiplayer_join.c:28
 msgid "Filter:"
 msgstr "Filter:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:33
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:32
 #: 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
+#: qcsrc/menu/xonotic/dialog_settings_input.c:40
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:32
 msgid "Clear"
 msgstr "Legen"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:43
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:45
 msgid "Timedemo"
 msgstr "Benchmark demo"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:46
-#, fuzzy
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:48
 msgid "DEMO^Play"
 msgstr "Speel"
 
@@ -1182,6 +1267,7 @@ msgid "Pause"
 msgstr "Pauze"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join.c:56
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:262
 msgid "Address:"
 msgstr "Adres:"
 
@@ -1190,7 +1276,7 @@ msgid "Info..."
 msgstr "Info..."
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join.c:72
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:317
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:342
 msgid "Join!"
 msgstr "Meedoen!"
 
@@ -1198,290 +1284,468 @@ msgstr "Meedoen!"
 msgid "Server Information"
 msgstr "Server Informatie"
 
-#: 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
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:132
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:133
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:242
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:247
 msgid "N/A"
 msgstr "N/A"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:158
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:179
 #, c-format
-msgid "%d/%d, %d free player slots"
-msgstr ""
+msgid "%d/%d"
+msgstr "%d/%d"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:172
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:193
+#: qcsrc/menu/xonotic/util.qc:632 qcsrc/menu/xonotic/util.qc:648
+#: qcsrc/menu/xonotic/util.qc:657 qcsrc/menu/xonotic/util.qc:665
+#: qcsrc/menu/xonotic/util.qc:677
+msgid "Default"
+msgstr "Standaard"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:200
 #, c-format
-msgid "%d modified settings"
-msgstr "%d gemodificeerde instellingen"
+msgid "%d modified"
+msgstr "%d aangepaste instellingen"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:172
-msgid "Official settings"
-msgstr "Officiële configuratie"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:200
+msgid "Official"
+msgstr "Officiële"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:197
-msgid "N/A (can't connect)"
-msgstr "N/A (kan geen verbinding maken)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:208
+msgid "N/A (auth library missing, can't connect)"
+msgstr "N/A (auth bibliotheek niet gevonden, kan geen verbinding maken)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:205
-msgid "not supported (can't connect)"
-msgstr "niet ondersteund (kan geen verbinding maken)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:210
+msgid "N/A (auth library missing)"
+msgstr "N/A (auth bibliotheek ontbreekt)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:207
-msgid "not supported (won't encrypt)"
-msgstr "niet ondersteund (zal niet versleutelen)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:216
+msgid "Not supported (can't connect)"
+msgstr "Niet ondersteund (kan geen verbinding maken)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:211
-msgid "supported (will encrypt)"
-msgstr "ondersteund (zal versleutelen)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:218
+msgid "Not supported (won't encrypt)"
+msgstr "Niet ondersteund (zal niet versleutelen)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:213
-msgid "supported (won't encrypt)"
-msgstr "ondersteund (zal niet versleutelen)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:222
+msgid "Supported (will encrypt)"
+msgstr "Ondersteund (zal versleutelen)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:217
-msgid "requested (will encrypt)"
-msgstr "verzocht (zal versleutelen)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:224
+msgid "Supported (won't encrypt)"
+msgstr "Ondersteund (zal niet versleutelen)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:219
-msgid "requested (won't encrypt)"
-msgstr "verzocht (zal niet versleutelen)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:228
+msgid "Requested (will encrypt)"
+msgstr "Verzocht (zal versleutelen)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:223
-msgid "required (can't connect)"
-msgstr "verplicht (kan geen verbinding maken)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:230
+msgid "Requested (won't encrypt)"
+msgstr "Verzocht (zal niet versleutelen)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:225
-msgid "required (will encrypt)"
-msgstr "verplicht (zal versleutelen)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:234
+msgid "Required (can't connect)"
+msgstr "Verplicht (kan geen verbinding maken)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:246
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:269
-msgid "Players:"
-msgstr "Spelers:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:236
+msgid "Required (will encrypt)"
+msgstr "Verplicht (zal versleutelen)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:254
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:38
-msgid "Type:"
-msgstr "Type:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:256
+msgid "Hostname:"
+msgstr "Server naam:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:270
+msgid "Gametype:"
+msgstr "Gametype:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:259
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:275
 msgid "Map:"
 msgstr "Map:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:264
-msgid "Gameplay:"
-msgstr "Gameplay:"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:274
-msgid "Bots:"
-msgstr "Bots:"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:279
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:280
 msgid "Mod:"
 msgstr "Mod:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:284
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:285
 msgid "Version:"
 msgstr "Versie:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:289
-msgid "Ping:"
-msgstr "Ping:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:290
+msgid "Settings:"
+msgstr "Instellingen:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:295
-msgid "CA:"
-msgstr "CA:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:297
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:329
+msgid "Players:"
+msgstr "Spelers:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:301
-msgid "Key:"
-msgstr "Sleutel:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:302
+msgid "Bots:"
+msgstr "Bots:"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:307
+msgid "Free slots:"
+msgstr "Vrije slots:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:313
 msgid "Encryption:"
 msgstr "Versleuteling:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:63
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:318
+msgid "ID:"
+msgstr "ID:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:323
+msgid "Key:"
+msgstr "Sleutel:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:60
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:19
 msgid "Model:"
 msgstr "Personage:"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:88
-msgid "Field of view:"
-msgstr "Kijkhoek (FoV):"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:92
-msgid "View bobbing:"
-msgstr "Schommelend zicht:"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:96
-msgid "Zoom factor:"
-msgstr "Zoom factor:"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:100
-msgid "Zoom speed:"
-msgstr "Zoom snelheid:"
+msgid "No crosshair"
+msgstr "Geen crosshair:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:103
-msgid "Weapon settings..."
-msgstr "Wapen instellingen..."
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:90
+msgid "Per weapon crosshair"
+msgstr "Per wapen crosshair"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:110
-msgid "Crosshair:"
-msgstr "Richtkruis:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:93
+msgid "Custom crosshair"
+msgstr "Custom crosshair"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:111
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:139
-msgid "Per weapon"
-msgstr "Per wapen"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:130
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:112
 msgid "Crosshair size:"
 msgstr "Richtkruis grootte:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:134
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:117
 msgid "Crosshair alpha:"
 msgstr "Richtkruis alpha:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:138
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:123
 msgid "Crosshair color:"
 msgstr "Richtkruis kleur:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:140
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:125
+msgid "Per weapon"
+msgstr "Per wapen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:127
 msgid "By health"
-msgstr ""
+msgstr "Op gezondheid"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:143
-#, fuzzy
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:131
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:47
 msgid "Custom"
-msgstr "aangepast"
+msgstr "Aangepast"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:148
-msgid "Enable center dot"
-msgstr "Activeer middenpunt"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:139
+msgid "Other crosshair settings"
+msgstr "Andere crosshair instellingen"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:151
-msgid "Size:"
-msgstr "Grootte"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:147
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:6
+msgid "Model settings"
+msgstr "Model instellingen"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:158
-msgid "Hit test:"
-msgstr "Tref test:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:153
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:6
+msgid "View settings"
+msgstr "Weergave instellingen"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:159
-msgid "HTST^None"
-msgstr "HTST^Geen"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:6
+msgid "Weapon settings"
+msgstr "Wapen instellingen"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:160
-msgid "TrueAim"
-msgstr "Echt mikken"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:169
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:6
+msgid "HUD settings"
+msgstr "HUD instellingen"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:161
-msgid "Enemies"
-msgstr "Tegenstanders"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:175
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:203
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:185
+#: qcsrc/menu/xonotic/dialog_settings_input.c:89
+#: qcsrc/menu/xonotic/dialog_settings_user.c:88
+#: qcsrc/menu/xonotic/dialog_settings_video.c:142
+msgid "Apply immediately"
+msgstr "Meteen toepassen"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:164
-msgid "Waypoints setup..."
-msgstr "Wegwijzers instellingen"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:6
+msgid "Crosshair settings"
+msgstr "Crosshair instellingen"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:169
-msgid "Enter HUD editor"
-msgstr "Ga naar HUD editor"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:28
+msgid "Enable center crosshair dot"
+msgstr "Punt in het midden van de crosshair"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:174
-msgid "Force models:"
-msgstr "Forceer modellen:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:31
+msgid "Dot size:"
+msgstr "Punt grootte"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:175
-msgid "MDL^None"
-msgstr "MDL^Geen"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:36
+msgid "Dot alpha:"
+msgstr "Punt alpha:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:176
-msgid "MDL^Custom"
-msgstr "MDL^Aangepast"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:41
+msgid "Dot color:"
+msgstr "Punt kleur:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:177
-msgid "MDL^All"
-msgstr "MDL^Alle"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:43
+msgid "Use normal crosshair color"
+msgstr "Gebruik normale crosshair kleur:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:180
-msgid "Disable gore effects"
-msgstr "Schakel bloederigheid uit"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:54
+msgid "Crosshair animations:"
+msgstr "Crosshair animaties:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:182
-msgid "Gibs:"
-msgstr "Gibs:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:57
+msgid "Smooth effects of crosshairs"
+msgstr "Glad effect van crosshairs"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:184
-msgid "GIBS^None"
-msgstr "GIBS^Geen"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:61
+msgid "Use rings to indicate weapon status"
+msgstr "Gebruiken ringen om wapen status weer te geven"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:185
-msgid "GIBS^Few"
-msgstr "GIBS^Weinig"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:67
+msgid "Hit testing:"
+msgstr "Treffer test:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:186
-msgid "GIBS^Many"
-msgstr "GIBS^Veel"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:69
+msgid "HTTST^Disabled"
+msgstr "Uitgeschakeld"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:187
-msgid "GIBS^Lots"
-msgstr "GIBS^Erg veel"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:70
+msgid "HTTST^TrueAim"
+msgstr "Echt mikken"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:71
+msgid "HTTST^Enemies"
+msgstr "Tegenstanders"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:191
-msgid "Damage splash:"
-msgstr "Pijn spatten:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:76
+msgid "Blur crosshair if the shot is obstructed"
+msgstr "Blur crosshair als het schot wordt geblokkeerd"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:195
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:173
-#: 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:109
-msgid "Apply immediately"
-msgstr "Meteen toepassen"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:81
+msgid "Animate when hitting an enemy"
+msgstr "Animeer wanneer een vijand wordt geraakt"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:85
+msgid "Animate when picking up an item"
+msgstr "Animeer wanneer een item wordt opgepakt"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:5
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:40
+msgid "Damage:"
+msgstr "Schade:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:43
+msgid "Overlay:"
+msgstr "Overlay:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:47
+msgid "Factor:"
+msgstr "Factor:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:52
+msgid "Fade rate:"
+msgstr "Vervaagsnelheid:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:58
 msgid "Waypoints"
 msgstr "Wegwijzers"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:23
-msgid "Show base waypoints"
-msgstr "Laat wegwijzers zien voor de basis"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:71
+msgid "Edge offset:"
+msgstr "Rand afstand:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:25
-msgid "Waypoint scale:"
-msgstr "Wegwijzer schaal:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:80
+msgid "Show names above players"
+msgstr "Laat namen boven spelers zien"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:29
-msgid "Waypoint alpha:"
-msgstr "Wegwijzer alpha:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:83
+msgid "Only when near crosshair"
+msgstr "Alleen wanneer in de buurt van crosshair"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:34
-msgid "Show names:"
-msgstr "Laat namen zien:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:86
+msgid "Display health and armor"
+msgstr "Geef health en armor weer"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:37
-msgid "Teammates"
-msgstr "Teammaten"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:90
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hudconfirm.c:4
+msgid "Enter HUD editor"
+msgstr "Ga naar HUD editor"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:38
-msgid "All players"
-msgstr "Alle spelers"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hudconfirm.c:28
+msgid "In order for the HUD editor to show, you must first be in game."
+msgstr "Om de HUD editor te tonen, moet je je in de game bevinden."
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:6
-msgid "Weapon settings"
-msgstr "Wapen instellingen"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hudconfirm.c:30
+msgid "Do you wish to start a local game to set up the HUD?"
+msgstr "Wil je een lokale game starten om de HUD in te stellen?"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hudconfirm.c:33
+msgid "HDCNFRM^Yes"
+msgstr "Ja"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hudconfirm.c:36
+msgid "HDCNFRM^No"
+msgstr "Nee"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:28
+msgid "Body fading:"
+msgstr "Lichaam vervaging:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:31
+msgid "Gibs:"
+msgstr "Gibs:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:33
+msgid "GIBS^None"
+msgstr "GIBS^Geen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:34
+msgid "GIBS^Few"
+msgstr "GIBS^Weinig"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:35
+msgid "GIBS^Many"
+msgstr "GIBS^Veel"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:36
+msgid "GIBS^Lots"
+msgstr "GIBS^Erg veel"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:40
+msgid "Playermodel LOD:"
+msgstr "Spelermodel LOD:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:44
+msgid "Force models:"
+msgstr "Forceer modellen:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:45
+msgid "MDL^None"
+msgstr "MDL^Geen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:46
+msgid "MDL^Custom"
+msgstr "MDL^Aangepast"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:47
+msgid "MDL^All"
+msgstr "MDL^Alle"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:50
+msgid "Force player models to mine"
+msgstr "Forceer modellen naar de mijne:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:52
+msgid "Force player colors to mine"
+msgstr "Forceer speler kleuren naar de mijne"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:28
+msgid "Field of view:"
+msgstr "Kijkhoek (FoV):"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:31
+msgid "Zoom:"
+msgstr "Zoom:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:33
+msgid "RETICLE^Fullscreen"
+msgstr "Volledig scherm"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:34
+msgid "RETICLE^With reticle"
+msgstr "Met vizier"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:38
+msgid "ZOOM^Factor:"
+msgstr "Factor:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:42
+msgid "ZOOM^Speed:"
+msgstr "Snelheid:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:52
+msgid "ZOOM^Instant"
+msgstr "Direct"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:56
+msgid "ZOOM^Sensitivity:"
+msgstr "Gevoeligheid:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:59
+msgid "Velocity zoom:"
+msgstr "Snelheid zoom:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:61
+msgid "VZOOM^Disabled"
+msgstr "Uitgeschakeld"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:62
+msgid "VZOOM^Forward only"
+msgstr "Alleen voorwaarts"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:63
+msgid "VZOOM^All directions"
+msgstr "Alle richtingen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:67
+msgid "VZOOM^Speed"
+msgstr "Snelheid"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:72
+msgid "Allow passing through walls while spectating"
+msgstr "Sta toe om muren te doorkruisen bij het toekijken"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:75
+msgid "1st person perspective"
+msgstr "First person perspectief"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:79
+msgid "Smooth the view when landing from a jump"
+msgstr "Vloeiende beweging bij het landen van een sprong"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:83
+msgid "Smooth the view while crouching"
+msgstr "Vloeiende beweging bij het hurken"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:87
+msgid "View waving while idle"
+msgstr "Bewegend beeld bij idle"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:91
+msgid "View bobbing while walking around"
+msgstr "Beeld verplaatsing bij het rondlopen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:96
+msgid "3rd person perspective"
+msgstr "Third person perspectief"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:100
+msgid "Back distance"
+msgstr "Achteraf afstand"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:106
+msgid "Up distance"
+msgstr "Bovenaf afstand"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:29
 msgid "Weapon priority list:"
 msgstr "Wapen prioriteit lijst:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:34
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:33
 msgid "Up"
 msgstr "Omhoog"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:37
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:36
 msgid "Down"
 msgstr "Omlaag"
 
@@ -1493,13 +1757,21 @@ msgstr "Gebruik de prioriteit lijst voor het wisselen van wapens "
 msgid "Auto switch weapons on pickup"
 msgstr "Automatisch wapens wisselen bij oppakken"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:45
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:46
 msgid "Draw 1st person weapon model"
 msgstr "Wapen positie"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:55
-msgid "Flip view horizontally"
-msgstr "Spiegel zicht horizontaal"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:58
+msgid "Gun model swaying"
+msgstr "Wapen bewegingen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:63
+msgid "Gun model bobbing"
+msgstr "Wapen model beweging"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:68
+msgid "VWMDL^Scale"
+msgstr "Schaal"
 
 #: qcsrc/menu/xonotic/dialog_news.c:4
 msgid "News"
@@ -1513,18 +1785,146 @@ msgstr "http://www.xonotic.org/team/blog/"
 msgid "Quit"
 msgstr "Afsluiten"
 
-#: qcsrc/menu/xonotic/dialog_quit.c:17
+#: qcsrc/menu/xonotic/dialog_quit.c:18
 msgid "Are you sure you want to quit?"
 msgstr "Weet je zeker dat je wil afsluiten?"
 
-#: qcsrc/menu/xonotic/dialog_quit.c:20
+#: qcsrc/menu/xonotic/dialog_quit.c:21
 msgid "Yes"
 msgstr "Ja"
 
-#: qcsrc/menu/xonotic/dialog_quit.c:21
+#: qcsrc/menu/xonotic/dialog_quit.c:22
 msgid "No"
 msgstr "Nee"
 
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:4
+msgid "Sandbox Tools"
+msgstr "Zandbak benodigdheden"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:24
+msgid "Spawn"
+msgstr "Spawn"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:25
+msgid "Remove *"
+msgstr "Verwijder *"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:27
+msgid "Copy *"
+msgstr "Kopieer *"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:28
+msgid "Paste"
+msgstr "Plak"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:30
+msgid "Bone:"
+msgstr "Bot:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:35
+msgid "Set * as child"
+msgstr "Zet * als kind"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:36
+msgid "Attach to *"
+msgstr "Maak vast aan *"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:38
+msgid "Detach from *"
+msgstr "Maak los van *"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:41
+msgid "Visual object properties for *:"
+msgstr "Visuele object eigenschappen voor *:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:43
+msgid "Set skin:"
+msgstr "Skin:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:45
+msgid "Set alpha:"
+msgstr "Alpha:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:48
+msgid "Set color main:"
+msgstr "Hoofdkleur:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:50
+msgid "Set color glow:"
+msgstr "Glow voor kleur:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:54
+msgid "Set frame:"
+msgstr "Zet frame:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:58
+msgid "Physical object properties for *:"
+msgstr "Fysieke object eigenschappen voor *:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:60
+msgid "Set material:"
+msgstr "Zet materiaal:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:66
+msgid "Set solidity:"
+msgstr "Vastheid:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:67
+msgid "Non-solid"
+msgstr "Niet vast"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:68
+msgid "Solid"
+msgstr "Vast"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:69
+msgid "Set physics:"
+msgstr "Zet physics:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:70
+msgid "Static"
+msgstr "Statisch"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:71
+msgid "Movable"
+msgstr "Verplaatsbaar"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:72
+msgid "Physical"
+msgstr "Fysiek"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:74
+msgid "Set scale:"
+msgstr "Schaal:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:76
+msgid "Set force:"
+msgstr "Zet kracht:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:80
+msgid "Claim *"
+msgstr "Claim *"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:82
+msgid "* object info"
+msgstr "* object info"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:83
+msgid "* mesh info"
+msgstr "* mesh info"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:84
+msgid "* attachment info"
+msgstr "* bijlage info"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:85
+msgid "Show help"
+msgstr "Laat help zien"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:86
+msgid "* is the object you are facing"
+msgstr "* is het object waar je naar kijkt"
+
 #: qcsrc/menu/xonotic/dialog_settings.c:4
 msgid "Settings"
 msgstr "Instellingen"
@@ -1550,9 +1950,9 @@ msgid "Audio"
 msgstr "Geluid"
 
 #: qcsrc/menu/xonotic/dialog_settings.c:22
-#: qcsrc/menu/xonotic/dialog_settings_network.c:4
-msgid "Network"
-msgstr "Netwerk"
+#: qcsrc/menu/xonotic/dialog_settings_user.c:4
+msgid "User"
+msgstr "User"
 
 #: qcsrc/menu/xonotic/dialog_settings.c:23
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:4
@@ -1563,194 +1963,170 @@ msgstr "Misc"
 msgid "Master:"
 msgstr "Volume:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:33
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:35
 msgid "Music:"
 msgstr "Muziek:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:41
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:45
 msgid "VOL^Ambient:"
 msgstr "VOL^Achtergrond:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:48
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:54
 msgid "Info:"
 msgstr "Info:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:55
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:63
 msgid "Items:"
 msgstr "Items:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:62
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:72
 msgid "Pain:"
 msgstr "Pijn:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:69
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:81
 msgid "Player:"
 msgstr "Speler:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:76
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:90
 msgid "Shots:"
 msgstr "Schoten:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:83
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:99
 msgid "Voice:"
 msgstr "Spraak:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:91
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:109
 msgid "Weapons:"
 msgstr "Wapens:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:98
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:156
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:117
+msgid "New style sound attenuation"
+msgstr "Nieuwe stijl geluid versterking"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:119
+msgid "Mute sounds when not active"
+msgstr "Stop geluiden wanneer niet actief"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:122
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:194
 msgid "Frequency:"
 msgstr "Frequentie:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:100
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:124
 msgid "8 kHz"
 msgstr "8 kHz"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:101
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:125
 msgid "11.025 kHz"
 msgstr "11.025 kHz"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:102
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:126
 msgid "16 kHz"
 msgstr "16 kHz"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:103
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:127
 msgid "22.05 kHz"
 msgstr "22.05 kHz"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:104
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:128
 msgid "24 kHz"
 msgstr "24 kHz"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:105
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:129
 msgid "32 kHz"
 msgstr "32 kHz"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:106
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:130
 msgid "44.1 kHz"
 msgstr "44.1 kHz"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:107
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:131
 msgid "48 kHz"
 msgstr "48 kHz"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:110
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:134
 msgid "Channels:"
 msgstr "Kanalen:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:112
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:136
 msgid "Mono"
 msgstr "Mono"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:113
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:137
 msgid "Stereo"
 msgstr "Stereo"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:114
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:138
 msgid "2.1"
 msgstr "2.1"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:115
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:139
 msgid "4"
 msgstr "4"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:116
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:140
 msgid "5"
 msgstr "5"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:117
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:141
 msgid "5.1"
 msgstr "5.1"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:118
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:142
 msgid "6.1"
 msgstr "6.1"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:119
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:143
 msgid "7.1"
 msgstr "7.1"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:123
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:146
 msgid "Swap Stereo"
 msgstr "Stereo omwisselen"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:127
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:148
 msgid "Headphone friendly mode"
 msgstr "Koptelefoon modus"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:131
-msgid "Spatial voices:"
-msgstr "Ruimtelijke stemmen:"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:132
-msgid "VOCS^None"
-msgstr "VOCS^Geen"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:133
-msgid "VOCS^Taunts"
-msgstr "VOCS^Honen"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:134
-msgid "VOCS^All"
-msgstr "VOCS^Alles"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:137
-msgid "Taunt range:"
-msgstr "Hoon afstand:"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:140
-msgid "RNG^Very short"
-msgstr "RNG^Erg kort"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:141
-msgid "RNG^Short"
-msgstr "RNG^Kort"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:142
-msgid "RNG^Normal"
-msgstr "RNG^Normaal"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:143
-msgid "RNG^Long"
-msgstr "RNG^Lang"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:170
+msgid "Hit indication sound"
+msgstr "Tref indicator geluid"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:144
-msgid "RNG^Full"
-msgstr "RNG^Vol"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:172
+msgid "Chat message sound"
+msgstr "Chat bericht geluid"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:151
-msgid "Automatic taunts"
-msgstr "Automatisch honen"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:174
+msgid "Menu sounds"
+msgstr "Menu geluiden"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:160
-msgid "Time warning:"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:177
+msgid "Time announcer:"
 msgstr "Tijd notificatie:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:162
-msgid "WRN^None"
-msgstr "WRN^Geen"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:179
+msgid "WRN^Disabled"
+msgstr "Uitgeschakeld"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:163
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:180
 msgid "1 minute"
 msgstr "1 minuut"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:164
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:181
 msgid "5 minutes"
 msgstr "5 minuten"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:165
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:182
 msgid "WRN^Both"
 msgstr "WRN^Beiden"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:168
-msgid "Hit indicator"
-msgstr "Tref indicator"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:189
+msgid "Automatic taunts"
+msgstr "Automatisch honen"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:170
-msgid "Menu sounds"
-msgstr "Menu geluiden"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:199
+msgid "Debug info about sounds"
+msgstr "Debug info over geluiden"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:38
 msgid "Quality preset:"
@@ -1813,230 +2189,226 @@ msgid "DET^Insane"
 msgstr "DET^Geweldig"
 
 #: 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^Uitgeschakeld"
-
-#: 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 "Textuur resolutie:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:73
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:65
 msgid "RES^Leet"
 msgstr "RES^"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:74
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:66
 msgid "RES^Lowest"
 msgstr "RES^Laagste"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:75
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:67
+msgid "RES^Very low"
+msgstr "Zeer Laag"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:68
 msgid "RES^Low"
 msgstr "RES^Laag"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:76
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:69
 msgid "RES^Normal"
 msgstr "RES^Normaal"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:77
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:70
 msgid "RES^Good"
 msgstr "RES^Goed"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:78
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:71
 msgid "RES^Best"
 msgstr "RES^Beste"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:91
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:94
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:84
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:87
 msgid "Avoid lossy texture compression"
 msgstr "Voorkom textuur compressie met kwaliteitsverlies"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:100
-msgid "Anisotropy:"
-msgstr "Anisotropie"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:93
+msgid "Use lightmaps"
+msgstr "Gebuik "
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:102
-msgid "ANISO^Disabled"
-msgstr "ANISO^Uitgeschakeld"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:94
+msgid "Deluxe mapping"
+msgstr "Deluxe mapping"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:105
-msgid "8x"
-msgstr "8x"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:96
+msgid "Gloss"
+msgstr "Glans"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:100
+msgid "Particles quality:"
+msgstr "Deeltjes kwaliteit:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:103
+msgid "Particles distance:"
+msgstr "Deeltjes afstand:"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:106
-msgid "16x"
-msgstr "16x"
+msgid "Damage effects:"
+msgstr "Schade effects:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:110
-msgid "Particle quality:"
-msgstr "Deeltjes kwaliteit"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:108
+msgid "DMGPRTCLS^Disabled"
+msgstr "Uitgeschakeld"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:109
+msgid "DMGPRTCLS^Skeletal"
+msgstr "Skelet"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:113
-msgid "Particle distance:"
-msgstr "Deeltjes afstand"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:110
+msgid "DMGPRTCLS^All"
+msgstr "Alle"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:117
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:114
 msgid "Decals"
 msgstr "Decals"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:118
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:115
 msgid "Decals on models"
-msgstr ""
+msgstr "Decals op modellen"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:122
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:119
 msgid "Distance:"
 msgstr "Afstand:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:128
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:125
 msgid "Time:"
 msgstr "Tijd:"
 
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:131
+msgid "Coronas"
+msgstr "Coronas"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:132
+msgid "Use Occlusion Queries"
+msgstr "Gebruik Occlusion Queries"
+
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:134
-msgid "Use lightmaps"
-msgstr "Gebuik "
+msgid "No dynamic lighting"
+msgstr "Geen dynamische verlichting"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:135
-msgid "Deluxe mapping"
-msgstr "Deluxe mapping"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:136
+msgid "Fake corona lighting"
+msgstr "Nep corona verlichting"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:137
-msgid "Gloss"
-msgstr "Glans"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:138
+msgid "Realtime dynamic lighting"
+msgstr "Real-time dynamische verlichting"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:139
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:143
+msgid "Shadows"
+msgstr "Schaduwen"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:142
+msgid "Realtime world lighting"
+msgstr "Real-time wereld verlichting"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:147
+msgid "Use normal maps"
+msgstr "Gebruik normal maps"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:149
+msgid "Soft shadows"
+msgstr "Zachte schaduwen"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:153
+msgid "Show surfaces"
+msgstr "Laat oppervlaktes zien"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:140
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:155
 msgid "Offset mapping"
 msgstr "Offset mapping"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:142
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:157
 msgid "Relief mapping"
 msgstr "Relief mapping"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:145
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:159
+msgid "LOD"
+msgstr "LOD"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:162
+msgid "Bloom"
+msgstr "Bloom"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:164
 msgid "Reflections:"
 msgstr "Reflecties"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:148
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:167
 msgid "Blurred"
 msgstr "Vervaagd"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:149
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:168
 msgid "REFL^Good"
 msgstr "REFL^Goed"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:150
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:169
 msgid "Sharp"
 msgstr "Scherp"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:155
-msgid "Show surfaces"
-msgstr "Laat oppervlaktes zien"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:174
+msgid "Motion blur:"
+msgstr "Bewegingsonscherpte:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:157
-msgid "No dynamic lighting"
-msgstr "Geen dynamische verlichting"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:159
-msgid "Flash blend approximation"
-msgstr "Flash blend approximation"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:161
-msgid "Realtime dynamic lighting"
-msgstr "Real-time dynamische verlichting"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:162
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:166
-msgid "Shadows"
-msgstr "Schaduwen"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:165
-msgid "Realtime world lighting"
-msgstr "Real-time wereld verlichting"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:170
-msgid "Use normal maps"
-msgstr "Gebruik normal maps"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:172
-msgid "Soft shadows"
-msgstr "Zachte schaduwen"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:175
-msgid "Coronas"
-msgstr "Coronas"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:176
-msgid "Use Occlusion Queries"
-msgstr "Gebruik Occlusion Queries"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:178
-msgid "Bloom"
-msgstr "Bloom"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:180
-msgid "High Dynamic Range (HDR)"
-msgstr "Hoog dynamisch bereik (HDR)"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:184
-msgid "Motion blur:"
-msgstr "Bewegingsonscherpte:"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:189
-msgid "Blur and sharpen postprocessing"
-msgstr ""
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:179
+msgid "Extra postprocessing effects"
+msgstr "Extra naprocessing effecten"
 
 #: qcsrc/menu/xonotic/dialog_settings_input.c:26
 msgid "Key bindings:"
 msgstr "Toetsen:"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:31
+#: qcsrc/menu/xonotic/dialog_settings_input.c:30
 msgid "Change key..."
 msgstr "Verander toets..."
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:35
+#: qcsrc/menu/xonotic/dialog_settings_input.c:34
 msgid "Edit..."
 msgstr "Aanpassen..."
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:46
-msgid "Sensitivity:"
-msgstr "Gevoeligheid:"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:45
+msgid "Pressing \"enter console\" key also closes it"
+msgstr "\"console activeren\" sluit deze ook weer"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:47
+msgid "Automatically repeat jumping if holding jump"
+msgstr "Automatisch blijven springen bij het vasthouden van de jump toets"
 
 #: qcsrc/menu/xonotic/dialog_settings_input.c:51
-msgid "UI mouse speed:"
-msgstr "UI muis snelheid:"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:53
+#: qcsrc/menu/xonotic/dialog_settings_input.c:56
+msgid "Use joystick input"
+msgstr "Gebruik joystick input"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:55
-msgid "Mouse filter"
-msgstr "Muis filter"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:61
+msgid "Mouse:"
+msgstr "Muis:"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:64
+msgid "Sensitivity:"
+msgstr "Gevoeligheid:"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:57
-msgid "Invert mouse"
-msgstr "Invert muis"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:68
+msgid "Smooth aiming"
+msgstr "Vloeiend mikken"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:60
-#: qcsrc/menu/xonotic/dialog_settings_input.c:62
-msgid "Use joystick input"
-msgstr "Gebruik joystick input"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:71
+msgid "Invert aiming"
+msgstr "Inverteer muis"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:65
-#: qcsrc/menu/xonotic/dialog_settings_input.c:67
-msgid "Turn off OS mouse acceleration"
-msgstr "Gebruik joystick input"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:75
+#: qcsrc/menu/xonotic/dialog_settings_input.c:77
+#: qcsrc/menu/xonotic/dialog_settings_input.c:80
+msgid "Disable system mouse acceleration"
+msgstr "Schakel systeem muis acceleratie uit"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:69
-msgid "\"enter console\" also closes"
-msgstr "\"console activeren\" sluit deze ook weer"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:85
+msgid "Enable built in mouse acceleration"
+msgstr "Gebruik ingebouwde muis acceleratie"
 
 #: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:5
 msgid "User defined key bind"
@@ -2059,96 +2431,261 @@ msgid "Cancel"
 msgstr "Annuleren"
 
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:26
-msgid "Menu skins:"
-msgstr "Menu thema’s:"
+msgid "Network:"
+msgstr "Netwerk:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:31
+msgid "56k"
+msgstr "56k"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:32
+msgid "ISDN"
+msgstr "ISDN"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:33
+msgid "Slow ADSL"
+msgstr "Langzaam ADSL"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:34
+msgid "Fast ADSL"
+msgstr "Snel ADSL"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:35
+msgid "Broadband"
+msgstr "Breedband"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:47
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:39
+msgid "Input packets/s:"
+msgstr "Inkomende pakketten/s"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:45
+msgid "Local latency:"
+msgstr "Lokale latency:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:50
+msgid "Client UDP port:"
+msgstr "Client UDP poort:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:55
+msgid "Show netgraph"
+msgstr "Netwerk grafiek tonen"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:59
+msgid "Client-side movement prediction"
+msgstr "Client beweging voorspelling"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:62
+msgid "Movement error compensation"
+msgstr "Beweging error compensatie"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:66
+msgid "Downloads:"
+msgstr "Downloads:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:69
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:81
+msgid "Maximum:"
+msgstr "Maximum:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:73
+msgid "Speed (kB/s):"
+msgstr "Snelheid (kB/s):"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:78
+msgid "Framerate:"
+msgstr "Framerate"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:83
+msgid "MAXFPS^5 fps"
+msgstr "5 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:84
+msgid "MAXFPS^10 fps"
+msgstr "10 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:85
+msgid "MAXFPS^20 fps"
+msgstr "20 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:86
+msgid "MAXFPS^30 fps"
+msgstr "30 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:87
+msgid "MAXFPS^40 fps"
+msgstr "40 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:88
+msgid "MAXFPS^50 fps"
+msgstr "50 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:89
+msgid "MAXFPS^60 fps"
+msgstr "60 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:90
+msgid "MAXFPS^70 fps"
+msgstr "70 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:91
+msgid "MAXFPS^100 fps"
+msgstr "100 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:92
+msgid "MAXFPS^125 fps"
+msgstr "125 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:93
+msgid "MAXFPS^200 fps"
+msgstr "200 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:94
+msgid "MAXFPS^Unlimited"
+msgstr "Onbeperkt"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:98
+msgid "Target:"
+msgstr "Doel:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:100
+msgid "TRGT^Disabled"
+msgstr "Uitgeschakeld"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:101
+msgid "TRGT^30 fps"
+msgstr "30 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:102
+msgid "TRGT^40 fps"
+msgstr "40 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:103
+msgid "TRGT^50 fps"
+msgstr "50 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:104
+msgid "TRGT^60 fps"
+msgstr "60 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:105
+msgid "TRGT^100 fps"
+msgstr "100 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:106
+msgid "TRGT^125 fps"
+msgstr "125 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:107
+msgid "TRGT^200 fps"
+msgstr "200 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:111
+msgid "Idle limit:"
+msgstr "Idle limiet:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:113
+msgid "IDLFPS^10 fps"
+msgstr "10 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:114
+msgid "IDLFPS^20 fps"
+msgstr "20 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:115
+msgid "IDLFPS^30 fps"
+msgstr "30 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:116
+msgid "IDLFPS^60 fps"
+msgstr "60 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:117
+msgid "IDLFPS^Unlimited"
+msgstr "Onbeperkt"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:122
+msgid "Show frames per second"
+msgstr "Laat frames per seconde zien"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:125
+msgid "Save processing time for other apps"
+msgstr "Bespaar processor tijd voor andere programma's"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:129
+msgid "Menu tooltips:"
+msgstr "Menu tooltips:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:131
+msgid "TLTIP^Disabled"
+msgstr "Uitgeschakeld"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:132
+msgid "TLTIP^Standard"
+msgstr "Standaard"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:133
+msgid "TLTIP^Advanced"
+msgstr "Geavanceerd"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:137
 msgid "Show current time"
 msgstr "Laat huidige tijd zien"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:49
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:139
 msgid "Show current date"
 msgstr "Laat huidige datum zien"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:51
-msgid "Show frames per second"
-msgstr "Laat frames per seconde zien"
-
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:53
-msgid "Minimize input latency"
-msgstr "Minimaliseer input latentie"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:141
+msgid "Enable developer mode"
+msgstr "Activeer developer modus"
 
 #: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:5
 msgid "Advanced settings"
 msgstr "Geavanceerde instellingen"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:23
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:31
 msgid "Cvar filter:"
 msgstr "Cvar filter:"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:34
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:44
 msgid "Setting:"
 msgstr "Cvar"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:42
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:48
+msgid "Type:"
+msgstr "Type:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:52
 msgid "Value:"
 msgstr "Waarde:"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:56
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:68
 msgid "Description:"
 msgstr "Omschrijving:"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:26
-msgid "Client-side movement prediction"
-msgstr "Client beweging voorspelling"
-
-#: qcsrc/menu/xonotic/dialog_settings_network.c:30
-msgid "Show netgraph"
-msgstr "Netwerk grafiek tonen"
-
-#: qcsrc/menu/xonotic/dialog_settings_network.c:33
-msgid "Network speed:"
-msgstr "Netwerk snelheid:"
-
-#: qcsrc/menu/xonotic/dialog_settings_network.c:35
-msgid "56k"
-msgstr "56k"
-
-#: qcsrc/menu/xonotic/dialog_settings_network.c:36
-msgid "ISDN"
-msgstr "ISDN"
-
-#: qcsrc/menu/xonotic/dialog_settings_network.c:37
-msgid "Slow ADSL"
-msgstr "Langzaam ADSL"
-
-#: qcsrc/menu/xonotic/dialog_settings_network.c:38
-msgid "Fast ADSL"
-msgstr "Snel ADSL"
+#: qcsrc/menu/xonotic/dialog_settings_user.c:27
+msgid "Menu skins:"
+msgstr "Menu thema’s:"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:39
-msgid "Broadband"
-msgstr "Breedband"
+#: qcsrc/menu/xonotic/dialog_settings_user.c:31
+msgid "Set skin"
+msgstr "Skin"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:42
-msgid "Input packets/s:"
-msgstr "Inkomende pakketten/s"
+#: qcsrc/menu/xonotic/dialog_settings_user.c:74
+msgid "Set language"
+msgstr "Taal van de tekst:"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:46
-msgid "HTTP downloads:"
-msgstr "HTTP downloads:"
+#: qcsrc/menu/xonotic/dialog_settings_user.c:79
+msgid "Disable gore effects and harsh language"
+msgstr "Schakel bloederigheid en obsceen taalgebruik uit"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:49
-msgid "Downloads:"
-msgstr "Downloads:"
+#: qcsrc/menu/xonotic/dialog_settings_user.c:82
+msgid "Allow player statistics to track your client"
+msgstr "Sta speler statistieken toe om je te tracken"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:53
-msgid "Speed (kB/s):"
-msgstr "Snelheid (kB/s):"
-
-#: qcsrc/menu/xonotic/dialog_settings_network.c:57
-msgid "Client UDP port:"
-msgstr "Client UDP poort:"
+#: qcsrc/menu/xonotic/dialog_settings_user.c:84
+msgid "Allow player statistics to use your nickname"
+msgstr "Sta speler statistieken toe om je nickname te gebruiken"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:26
 msgid "Resolution:"
@@ -2198,103 +2735,173 @@ msgstr "SZ^Kolossaal"
 msgid "Color depth:"
 msgstr "Kleurdiepte:"
 
+#: qcsrc/menu/xonotic/dialog_settings_video.c:44
+msgid "16bit"
+msgstr "16bit"
+
 #: qcsrc/menu/xonotic/dialog_settings_video.c:45
+msgid "32bit"
+msgstr "32bit"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:48
 msgid "Full screen"
 msgstr "Volledig scherm"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:46
+#: qcsrc/menu/xonotic/dialog_settings_video.c:49
 msgid "Vertical Synchronization"
 msgstr "Verticale synchronisatie"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:49
-msgid "Use OpenGL 2.0 shaders (GLSL)"
-msgstr "Gebruik OpenGL 2.0 shaders (GLSL)"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:53
+msgid "Anisotropy:"
+msgstr "Anisotropie"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:52
-msgid "Use GLSL to handle color control"
-msgstr "Gebruik GLSL voor gamma correctie"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:55
+msgid "ANISO^Disabled"
+msgstr "ANISO^Uitgeschakeld"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:56
-msgid "Vertex Buffer Objects (VBOs)"
-msgstr "Vertex Buffer Objecten (VBOs)"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:66
+msgid "2x"
+msgstr "2x"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:57
+#: qcsrc/menu/xonotic/dialog_settings_video.c:67
+msgid "4x"
+msgstr "4x"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:58
+msgid "8x"
+msgstr "8x"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:59
-msgid "VBO^Off"
-msgstr "VBO^Uit"
+msgid "16x"
+msgstr "16x"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:60
-msgid "Vertices, some Tris (compatible)"
-msgstr "Vertices, sommige Tris (compatibel)"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:62
+msgid "Antialiasing:"
+msgstr "Antialiasing:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:63
-msgid "Vertices"
-msgstr "Vertices"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:65
+msgid "AA^Disabled"
+msgstr "AA^Uitgeschakeld"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:64
-msgid "Vertices and Triangles"
-msgstr "Vertices en Tris"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:71
+msgid "High-quality frame buffer"
+msgstr "Hoge kwaliteit frame buffer"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:67
+#: qcsrc/menu/xonotic/dialog_settings_video.c:76
 msgid "Depth first:"
 msgstr "Diepte eerst:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:69
+#: qcsrc/menu/xonotic/dialog_settings_video.c:78
 msgid "DF^Disabled"
 msgstr "DF^Uitgeschakeld"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:70
+#: qcsrc/menu/xonotic/dialog_settings_video.c:79
 msgid "DF^World"
 msgstr "DF^Wereld"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:71
+#: qcsrc/menu/xonotic/dialog_settings_video.c:80
 msgid "DF^All"
 msgstr "DF^Alles"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:75
-msgid "Disable multithreaded OpenGL"
-msgstr "Schakel multithreaded OpenGL uit"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:83
+msgid "Vertex Buffer Objects (VBOs)"
+msgstr "Vertex Buffer Objecten (VBOs)"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:77
-msgid "Wait for GPU to finish each frame"
-msgstr "Wacht op GPU voor elk frame"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:86
+msgid "VBO^Off"
+msgstr "VBO^Uit"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:80
+#: qcsrc/menu/xonotic/dialog_settings_video.c:87
+msgid "Vertices, some Tris (compatible)"
+msgstr "Vertices, sommige Tris (compatibel)"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:90
+msgid "Vertices"
+msgstr "Vertices"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:91
+msgid "Vertices and Triangles"
+msgstr "Vertices en Tris"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:94
 msgid "Brightness:"
 msgstr "Helderheid:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:83
+#: qcsrc/menu/xonotic/dialog_settings_video.c:97
 msgid "Contrast:"
 msgstr "Contrast:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:86
+#: qcsrc/menu/xonotic/dialog_settings_video.c:100
 msgid "Gamma:"
 msgstr "Gamma:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:91
+#: qcsrc/menu/xonotic/dialog_settings_video.c:105
 msgid "Contrast boost:"
 msgstr "Verhoog contrast:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:96
+#: qcsrc/menu/xonotic/dialog_settings_video.c:110
 msgid "Saturation:"
 msgstr "Verzadiging:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:102
+#: qcsrc/menu/xonotic/dialog_settings_video.c:116
 msgid "LIT^Ambient:"
 msgstr "LIT^Omgevingslicht"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:105
+#: qcsrc/menu/xonotic/dialog_settings_video.c:119
 msgid "Intensity:"
 msgstr "Intensiteit:"
 
+#: qcsrc/menu/xonotic/dialog_settings_video.c:123
+msgid "Use OpenGL 2.0 shaders (GLSL)"
+msgstr "Gebruik OpenGL 2.0 shaders (GLSL)"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:125
+msgid "Use GLSL to handle color control"
+msgstr "Gebruik GLSL voor gamma correctie"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:128
+msgid "Wait for GPU to finish each frame"
+msgstr "Wacht op GPU voor elk frame"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:132
+msgid "Psycho coloring (easter egg)"
+msgstr "Psycho kleuren (easter egg)"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:135
+msgid "Trippy vertices (easter egg)"
+msgstr "Trippy vertices (easter egg)"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:138
+msgid "Flip view horizontally"
+msgstr "Spiegel zicht horizontaal"
+
 #: qcsrc/menu/xonotic/dialog_singleplayer.c:4
 msgid "Singleplayer"
 msgstr "Singleplayer"
 
-#: qcsrc/menu/xonotic/dialog_singleplayer.c:127
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:116
 msgid "Instant action! (random map with bots)"
 msgstr "Instant actie! (random map met bots)"
 
-#: qcsrc/menu/xonotic/dialog_singleplayer.c:148
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:137
+msgid "Campaign Difficulty:"
+msgstr "Campaign moeilijkheid"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:138
+msgid "CSKL^Easy"
+msgstr "Makkelijk"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:139
+msgid "CSKL^Medium"
+msgstr "Gemiddeld"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:140
+msgid "CSKL^Hard"
+msgstr "Moeilijk"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:142
 msgid "Start Singleplayer!"
 msgstr "Start Singleplayer!"
 
@@ -2330,23 +2937,23 @@ msgstr "roze"
 msgid "spectate"
 msgstr "observeren"
 
-#: qcsrc/menu/xonotic/mainwindow.c:35 qcsrc/menu/xonotic/mainwindow.c:38
+#: qcsrc/menu/xonotic/mainwindow.c:39 qcsrc/menu/xonotic/mainwindow.c:42
 msgid "Do not press this button again!"
 msgstr "Druk deze knop niet meer in!"
 
-#: qcsrc/menu/xonotic/maplist.c:278
+#: qcsrc/menu/xonotic/maplist.c:282
 msgid ""
 "Huh? Can't play this (m is NULL). Refiltering so this won't happen again.\n"
 msgstr ""
 "He? Kan (m is NULL) niet spelen. Opnieuw filteren zodat dit niet weer "
 "gebeurt.\n"
 
-#: qcsrc/menu/xonotic/maplist.c:286
+#: qcsrc/menu/xonotic/maplist.c:290
 #, c-format
 msgid "%s's Xonotic Server"
 msgstr "%s zijn Xonotic Server"
 
-#: qcsrc/menu/xonotic/maplist.c:291
+#: qcsrc/menu/xonotic/maplist.c:295
 msgid ""
 "Huh? Can't play this (invalid game type). Refiltering so this won't happen "
 "again.\n"
@@ -2354,7 +2961,11 @@ msgstr ""
 "He? Kan (ongeldige spel modus) niet spelen. Opnieuw filteren zodat dit niet "
 "weer gebeurt.\n"
 
-#: qcsrc/menu/xonotic/playermodel.c:174
+#: qcsrc/menu/xonotic/playerlist.c:118 qcsrc/menu/xonotic/playerlist.c:128
+msgid "spectator"
+msgstr "observeerder"
+
+#: qcsrc/menu/xonotic/playermodel.c:177
 msgid "<no model found>"
 msgstr "<geen model gevonden>"
 
@@ -2366,23 +2977,23 @@ msgstr "Verwijderen"
 msgid "Bookmark"
 msgstr "Bookmark"
 
-#: qcsrc/menu/xonotic/serverlist.c:527
+#: qcsrc/menu/xonotic/serverlist.c:548
 msgid "Ping"
 msgstr "Ping"
 
-#: qcsrc/menu/xonotic/serverlist.c:528
+#: qcsrc/menu/xonotic/serverlist.c:549
 msgid "Host name"
 msgstr "Server naam"
 
-#: qcsrc/menu/xonotic/serverlist.c:529
+#: qcsrc/menu/xonotic/serverlist.c:550
 msgid "Map"
 msgstr "Map"
 
-#: qcsrc/menu/xonotic/serverlist.c:530
+#: qcsrc/menu/xonotic/serverlist.c:551
 msgid "Type"
 msgstr "Type"
 
-#: qcsrc/menu/xonotic/serverlist.c:531
+#: qcsrc/menu/xonotic/serverlist.c:552
 msgid "Players"
 msgstr "Spelers"
 
@@ -2412,25 +3023,25 @@ msgstr "%s dB"
 msgid "%dx%d"
 msgstr "%dx%d"
 
-#: qcsrc/menu/xonotic/util.qc:270
+#: qcsrc/menu/xonotic/util.qc:276
 #, c-format
 msgid "Received HTTP request data for an invalid id %d.\n"
 msgstr "HTTP verzoek ontvangen voor ongeldig id %d.\n"
 
-#: qcsrc/menu/xonotic/util.qc:285
+#: qcsrc/menu/xonotic/util.qc:291
 #, c-format
 msgid "error receiving update notification: status is %d\n"
 msgstr "fout bij ontvangen update melding: status is %d\n"
 
-#: qcsrc/menu/xonotic/util.qc:290
+#: qcsrc/menu/xonotic/util.qc:296
 msgid "error: received HTML instead of an update notification\n"
 msgstr "fout: HTML ontvangen in plaats van update melding\n"
 
-#: qcsrc/menu/xonotic/util.qc:295
+#: qcsrc/menu/xonotic/util.qc:301
 msgid "error: received carriage returns from update notification server\n"
 msgstr "fout: enters ontvangen van update meldingsserver"
 
-#: qcsrc/menu/xonotic/util.qc:316
+#: qcsrc/menu/xonotic/util.qc:322
 #, c-format
 msgid ""
 "Update can be downloaded at:\n"
@@ -2439,21 +3050,21 @@ msgstr ""
 "Update kan gedownload worden bij:\n"
 "%s\n"
 
-#: qcsrc/menu/xonotic/util.qc:337
+#: qcsrc/menu/xonotic/util.qc:351
 msgid "Autogenerating mapinfo for newly added maps..."
 msgstr "Automatisch map info aanmaken voor nieuwe maps..."
 
-#: qcsrc/menu/xonotic/util.qc:367
+#: qcsrc/menu/xonotic/util.qc:381
 #, c-format
 msgid "^1%s TEST BUILD"
-msgstr ""
+msgstr "^1%s TEST BUILD"
 
-#: qcsrc/menu/xonotic/util.qc:432
+#: qcsrc/menu/xonotic/util.qc:439
 #, c-format
 msgid "Update to %s now!"
 msgstr "Update nu naar %s!"
 
-#: qcsrc/menu/xonotic/util.qc:501
+#: qcsrc/menu/xonotic/util.qc:524
 msgid ""
 "^1ERROR: Texture compression is required but not supported.\n"
 "^1Expect visual problems.\n"
@@ -2461,454 +3072,186 @@ msgstr ""
 "^1ERROR: Textuurcompressie is nodig maar niet ondersteund.\n"
 "^1Verwacht grafische problemen.\n"
 
-#: qcsrc/menu/xonotic/util.qc:523
-msgid "Arena"
-msgstr "Arena"
-
-#: qcsrc/menu/xonotic/util.qc:524
-msgid "Assault"
-msgstr "Assault"
-
-#: qcsrc/menu/xonotic/util.qc:525
-msgid "Capture The Flag"
-msgstr "Capture The Flag"
-
-#: qcsrc/menu/xonotic/util.qc:526
-msgid "Clan Arena"
-msgstr "Clan Arena"
-
-#: qcsrc/menu/xonotic/util.qc:527
-msgid "Deathmatch"
-msgstr "Deathmatch"
-
-#: qcsrc/menu/xonotic/util.qc:528
-msgid "Domination"
-msgstr "Domination"
-
-#: qcsrc/menu/xonotic/util.qc:529
-msgid "Freeze Tag"
-msgstr "Freeze Tag"
-
-#: qcsrc/menu/xonotic/util.qc:530
-msgid "Keepaway"
-msgstr "Keepaway"
-
-#: qcsrc/menu/xonotic/util.qc:531
-msgid "Key Hunt"
-msgstr "Key Hunt"
-
-#: qcsrc/menu/xonotic/util.qc:532
-msgid "Last Man Standing"
-msgstr "Last Man Standing"
-
-#: qcsrc/menu/xonotic/util.qc:533
-msgid "Nexball"
-msgstr "Nexball"
-
-#: qcsrc/menu/xonotic/util.qc:534
-msgid "Onslaught"
-msgstr "Onslaught"
-
-#: qcsrc/menu/xonotic/util.qc:535
-msgid "Race"
-msgstr "Race"
-
-#: qcsrc/menu/xonotic/util.qc:536
-msgid "Race CTS"
-msgstr "Race CTS"
-
-#: qcsrc/menu/xonotic/util.qc:537
-msgid "Runematch"
-msgstr "Runematch"
-
-#: qcsrc/menu/xonotic/util.qc:538
-msgid "Team Deathmatch"
-msgstr "Team Deathmatch"
-
-#: qcsrc/menu/xonotic/util.qc:557
-#, c-format
-msgid "@!#%'n Tuba Throwing"
-msgstr "@!#%'n Tuba Smijten"
-
-#: qcsrc/menu/xonotic/util.qc:577 qcsrc/menu/xonotic/util.qc:593
-#: qcsrc/menu/xonotic/util.qc:602 qcsrc/menu/xonotic/util.qc:610
-#: qcsrc/menu/xonotic/util.qc:622
-msgid "Default"
-msgstr "Standaard"
-
-#: qcsrc/menu/xonotic/util.qc:588
+#: qcsrc/menu/xonotic/util.qc:643
 msgid "Use default"
 msgstr "Gebruik standaard"
 
-#: qcsrc/menu/xonotic/util.qc:608
+#: qcsrc/menu/xonotic/util.qc:663
 msgid "Team Color:"
 msgstr "Team Kleur:"
 
-#: qcsrc/menu/xonotic/util.qh:47
+#: qcsrc/menu/xonotic/util.qh:50
 msgid "Enable panel"
 msgstr "Activeer paneel"
 
-#: qcsrc/server/w_crylink.qc:2
-msgid "Crylink"
-msgstr "Crylink"
+#: weapons.qc.tmp:1
+msgid "Rifle"
+msgstr "Geweer"
 
-#: qcsrc/server/w_crylink.qc:666
-#, c-format
-msgid "%s succeeded at self-destructing themself with the Crylink"
-msgstr ""
+#: weapons.qc.tmp:2
+msgid "Machine Gun"
+msgstr "Machine Gun"
 
-#: qcsrc/server/w_crylink.qc:671
-#, c-format
-msgid "%s could not hide from %s's Crylink"
-msgstr ""
+#: weapons.qc.tmp:3
+msgid "Rocket Launcher"
+msgstr "Rocket Launcher"
 
-#: qcsrc/server/w_crylink.qc:673
-#, c-format
-msgid "%s was too close to %s's Crylink"
-msgstr ""
+#: weapons.qc.tmp:4
+msgid "Port-O-Launch"
+msgstr "Port-O-Launch"
 
-#: qcsrc/server/w_crylink.qc:675
-#, c-format
-msgid "%s took a close look at %s's Crylink"
-msgstr ""
+#: weapons.qc.tmp:5
+msgid "Grappling Hook"
+msgstr "Grappling Hook"
 
-#: qcsrc/server/w_electro.qc:2
+#: weapons.qc.tmp:6
 msgid "Electro"
 msgstr "Electro"
 
-#: qcsrc/server/w_electro.qc:574
-#, c-format
-msgid "%s could not remember where they put plasma"
-msgstr ""
-
-#: qcsrc/server/w_electro.qc:576
-#, c-format
-msgid "%s played with plasma"
-msgstr ""
-
-#: qcsrc/server/w_electro.qc:583
-#, c-format
-msgid "%s just noticed %s's blue ball"
-msgstr ""
-
-#: qcsrc/server/w_electro.qc:585
-#, c-format
-msgid "%s got in touch with %s's blue ball"
-msgstr ""
-
-#: qcsrc/server/w_electro.qc:590
-#, c-format
-msgid "%s felt the electrifying air of %s's combo"
-msgstr ""
-
-#: qcsrc/server/w_electro.qc:592
-#, c-format
-msgid "%s got too close to %s's blue beam"
-msgstr ""
-
-#: qcsrc/server/w_electro.qc:594
-#, c-format
-msgid "%s was blasted by %s's blue beam"
-msgstr ""
-
-#: 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 ""
-
-#: 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 ""
+#: weapons.qc.tmp:7
+msgid "Laser"
+msgstr "Laser"
 
-#: qcsrc/server/w_fireball.qc:428
-#, c-format
-msgid "%s fatefully ignored %s's firemine"
-msgstr ""
+#: weapons.qc.tmp:8
+msgid "Shotgun"
+msgstr "Shotgun"
 
-#: qcsrc/server/w_fireball.qc:435
+#: weapons.qc.tmp:9
 #, c-format
-msgid "%s could not hide from %s's fireball"
-msgstr ""
+msgid "@!#%'n Tuba"
+msgstr "@!#%'n Tuba"
 
-#: qcsrc/server/w_fireball.qc:437
-#, c-format
-msgid "%s saw the pretty lights of %s's fireball"
-msgstr ""
+#: weapons.qc.tmp:10
+msgid "MinstaNex"
+msgstr "MinstaNex"
 
-#: qcsrc/server/w_fireball.qc:440
-#, c-format
-msgid "%s got too close to %s's fireball"
-msgstr ""
+#: weapons.qc.tmp:11
+msgid "Crylink"
+msgstr "Crylink"
 
-#: qcsrc/server/w_fireball.qc:442
-#, c-format
-msgid "%s tasted %s's fireball"
-msgstr ""
+#: weapons.qc.tmp:12
+msgid "Heavy Laser Assault Cannon"
+msgstr "Heavy Laser Assault Cannon"
 
-#: qcsrc/server/w_grenadelauncher.qc:2
+#: weapons.qc.tmp:13
 msgid "Mortar"
 msgstr "Mortar"
 
-#: qcsrc/server/w_grenadelauncher.qc:383
-#, c-format
-msgid "%s tried out his own grenade"
-msgstr ""
-
-#: qcsrc/server/w_grenadelauncher.qc:385
-#, c-format
-msgid "%s detonated"
-msgstr ""
-
-#: qcsrc/server/w_grenadelauncher.qc:391
-#, c-format
-msgid "%s didn't see %s's grenade"
-msgstr ""
-
-#: qcsrc/server/w_grenadelauncher.qc:393
-#, c-format
-msgid "%s almost dodged %s's grenade"
-msgstr ""
-
-#: qcsrc/server/w_grenadelauncher.qc:395
-#, c-format
-msgid "%s ate %s's grenade"
-msgstr ""
-
-#: qcsrc/server/w_hagar.qc:2
+#: weapons.qc.tmp:14
 msgid "Hagar"
 msgstr "Hagar"
 
-#: qcsrc/server/w_hagar.qc:395 qcsrc/server/w_seeker.qc:655
-#, c-format
-msgid "%s played with tiny rockets"
-msgstr ""
-
-#: qcsrc/server/w_hagar.qc:399
-#, c-format
-msgid "%s hoped %s's missiles wouldn't bounce"
-msgstr ""
-
-#: qcsrc/server/w_hagar.qc:401 qcsrc/server/w_seeker.qc:661
-#, c-format
-msgid "%s was pummeled by %s"
-msgstr ""
-
-#: 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 ""
-
-#: qcsrc/server/w_hook.qc:2
-msgid "Grappling Hook"
-msgstr "Grappling Hook"
-
-#: qcsrc/server/w_hook.qc:266 qcsrc/server/w_porto.qc:296
-#, c-format
-msgid "%s did the impossible"
-msgstr ""
-
-#: qcsrc/server/w_hook.qc:268
-#, c-format
-msgid "%s has run into %s's gravity bomb"
-msgstr ""
-
-#: qcsrc/server/w_laser.qc:2
-msgid "Laser"
-msgstr "Laser"
-
-#: qcsrc/server/w_laser.qc:311
-#, c-format
-msgid "%s lasered themself to hell"
-msgstr ""
-
-#: qcsrc/server/w_laser.qc:315
-#, c-format
-msgid "%s was cut in half by %s's gauntlet"
-msgstr ""
+#: weapons.qc.tmp:15
+msgid "T.A.G. Seeker"
+msgstr "T.A.G. Seeker"
 
-#: qcsrc/server/w_laser.qc:317
-#, c-format
-msgid "%s was lasered to death by %s"
-msgstr ""
+#: weapons.qc.tmp:16
+msgid "Fireball"
+msgstr "Fireball"
 
-#: qcsrc/server/w_minelayer.qc:2
+#: weapons.qc.tmp:17
 msgid "Mine Layer"
 msgstr "Mine Layer"
 
-#: qcsrc/server/w_minelayer.qc:523 qcsrc/server/w_rocketlauncher.qc:501
-#, c-format
-msgid "%s exploded"
-msgstr ""
+#: weapons.qc.tmp:18
+msgid "Nex"
+msgstr "Nex"
 
-#: qcsrc/server/w_minelayer.qc:527
-#, c-format
-msgid "%s got too close to %s's mine"
-msgstr ""
+#~ msgid "Gameplay:"
+#~ msgstr "Gameplay:"
 
-#: qcsrc/server/w_minelayer.qc:529
-#, c-format
-msgid "%s almost dodged %s's mine"
-msgstr ""
+#~ msgid "Ping:"
+#~ msgstr "Ping:"
 
-#: qcsrc/server/w_minelayer.qc:531
-#, c-format
-msgid "%s stepped on %s's mine"
-msgstr ""
+#~ msgid "CA:"
+#~ msgstr "CA:"
 
-#: qcsrc/server/w_minstanex.qc:2
-msgid "MinstaNex"
-msgstr "MinstaNex"
+#~ msgid "View bobbing:"
+#~ msgstr "Schommelend zicht:"
 
-#: qcsrc/server/w_minstanex.qc:293 qcsrc/server/w_nex.qc:253
-#: qcsrc/server/w_shotgun.qc:215 qcsrc/server/w_uzi.qc:317
-#, c-format
-msgid "%s is now thinking with portals"
-msgstr ""
+#~ msgid "Zoom speed:"
+#~ msgstr "Zoom snelheid:"
 
-#: qcsrc/server/w_minstanex.qc:295 qcsrc/server/w_nex.qc:255
-#, c-format
-msgid "%s has been vaporized by %s"
-msgstr ""
+#~ msgid "Weapon settings..."
+#~ msgstr "Wapen instellingen..."
 
-#: qcsrc/server/w_nex.qc:2
-msgid "Nex"
-msgstr "Nex"
+#~ msgid "Size:"
+#~ msgstr "Grootte"
 
-#: qcsrc/server/w_porto.qc:2
-msgid "Port-O-Launch"
-msgstr "Port-O-Launch"
+#~ msgid "HTST^None"
+#~ msgstr "HTST^Geen"
 
-#: qcsrc/server/w_porto.qc:298
-#, c-format
-msgid "%s felt %s doing the impossible to him"
-msgstr ""
+#~ msgid "Waypoints setup..."
+#~ msgstr "Wegwijzers instellingen"
 
-#: qcsrc/server/w_rifle.qc:2
-msgid "Rifle"
-msgstr ""
+#~ msgid "Waypoint scale:"
+#~ msgstr "Wegwijzer schaal:"
 
-#: qcsrc/server/w_rifle.qc:233
-#, c-format
-msgid "%s shot themself automatically"
-msgstr ""
+#~ msgid "Show names:"
+#~ msgstr "Laat namen zien:"
 
-#: qcsrc/server/w_rifle.qc:235
-#, c-format
-msgid "%s sniped themself somehow"
-msgstr ""
+#~ msgid "Teammates"
+#~ msgstr "Teammaten"
 
-#: qcsrc/server/w_rifle.qc:242
-#, c-format
-msgid "%s failed to hide from %s's bullet hail"
-msgstr ""
+#~ msgid "All players"
+#~ msgstr "Alle spelers"
 
-#: qcsrc/server/w_rifle.qc:244
-#, c-format
-msgid "%s died in %s's bullet hail"
-msgstr ""
+#~ msgid "Spatial voices:"
+#~ msgstr "Ruimtelijke stemmen:"
 
-#: qcsrc/server/w_rifle.qc:251
-#, c-format
-msgid "%s failed to hide from %s's rifle"
-msgstr ""
+#~ msgid "VOCS^None"
+#~ msgstr "VOCS^Geen"
 
-#: qcsrc/server/w_rifle.qc:256
-#, c-format
-msgid "%s got hit in the head by %s"
-msgstr ""
+#~ msgid "VOCS^Taunts"
+#~ msgstr "VOCS^Honen"
 
-#: qcsrc/server/w_rifle.qc:258 qcsrc/server/w_uzi.qc:321
-#, c-format
-msgid "%s was sniped by %s"
-msgstr ""
+#~ msgid "VOCS^All"
+#~ msgstr "VOCS^Alles"
 
-#: qcsrc/server/w_rocketlauncher.qc:2
-msgid "Rocket Launcher"
-msgstr "Rocket Launcher"
+#~ msgid "Taunt range:"
+#~ msgstr "Hoon afstand:"
 
-#: qcsrc/server/w_rocketlauncher.qc:505
-#, c-format
-msgid "%s got too close to %s's rocket"
-msgstr ""
-
-#: qcsrc/server/w_rocketlauncher.qc:507
-#, c-format
-msgid "%s almost dodged %s's rocket"
-msgstr ""
+#~ msgid "RNG^Very short"
+#~ msgstr "RNG^Erg kort"
 
-#: qcsrc/server/w_rocketlauncher.qc:509
-#, c-format
-msgid "%s ate %s's rocket"
-msgstr ""
+#~ msgid "RNG^Short"
+#~ msgstr "RNG^Kort"
 
-#: qcsrc/server/w_seeker.qc:2
-msgid "T.A.G. Seeker"
-msgstr "T.A.G. Seeker"
+#~ msgid "RNG^Normal"
+#~ msgstr "RNG^Normaal"
 
-#: qcsrc/server/w_seeker.qc:659
-#, c-format
-msgid "%s was tagged by %s"
-msgstr ""
+#~ msgid "RNG^Long"
+#~ msgstr "RNG^Lang"
 
-#: qcsrc/server/w_shotgun.qc:2
-msgid "Shotgun"
-msgstr "Shotgun"
+#~ msgid "RNG^Full"
+#~ msgstr "RNG^Vol"
 
-#: qcsrc/server/w_shotgun.qc:219
-#, c-format
-msgid "%2$s ^7slapped %1$s ^7around a bit with a large ^2shotgun"
-msgstr ""
+#~ msgid "WRN^None"
+#~ msgstr "WRN^Geen"
 
-#: qcsrc/server/w_shotgun.qc:221
-#, c-format
-msgid "%s was gunned by %s"
-msgstr ""
+#~ msgid "Flash blend approximation"
+#~ msgstr "Flash blend approximation"
 
-#: qcsrc/server/w_tuba.qc:2
-#, c-format
-msgid "@!#%'n Tuba"
-msgstr "@!#%'n Tuba"
+#~ msgid "High Dynamic Range (HDR)"
+#~ msgstr "Hoog dynamisch bereik (HDR)"
 
-#: qcsrc/server/w_tuba.qc:252
-#, c-format
-msgid "%s hurt his own ears with the @!#%%'n Tuba"
-msgstr ""
+#~ msgid "UI mouse speed:"
+#~ msgstr "UI muis snelheid:"
 
-#: qcsrc/server/w_tuba.qc:256
-#, c-format
-msgid "%s died of %s's great playing on the @!#%%'n Tuba"
-msgstr ""
+#~ msgid "Mouse filter"
+#~ msgstr "Muis filter"
 
-#: qcsrc/server/w_uzi.qc:2
-msgid "Machine Gun"
-msgstr "Machine Gun"
+#~ msgid "Minimize input latency"
+#~ msgstr "Minimaliseer input latentie"
 
-#: qcsrc/server/w_uzi.qc:323
-#, c-format
-msgid "%s was riddled full of holes by %s"
-msgstr ""
+#~ msgid "Network speed:"
+#~ msgstr "Netwerk snelheid:"
 
-#, fuzzy
-#~ msgid "Damage & water blur"
-#~ msgstr "Schadeonscherpte"
+#~ msgid "HTTP downloads:"
+#~ msgstr "HTTP downloads:"
 
-#, fuzzy
-#~ msgid "Powerup sharpen"
-#~ msgstr "Powerups paneel"
+#~ msgid "Disable multithreaded OpenGL"
+#~ msgstr "Schakel multithreaded OpenGL uit"
 
 #~ msgid "Speedometer"
 #~ msgstr "Snelheidsmeter"
@@ -2928,5 +3271,8 @@ msgstr ""
 #~ msgid "Waypoint settings:"
 #~ msgstr "Wegwijzer instellingen"
 
-#~ msgid "%d/%d"
-#~ msgstr "%d/%d"
+#~ msgid "Damage & water blur"
+#~ msgstr "Schade & water onscherpte"
+
+#~ msgid "Powerup sharpen"
+#~ msgstr "Powerup verscherpen"
index a043dc30bb8c64c05e3f6c2c56daa8a1fd76502e..0426225e39ce4d28a051efe9fe4b1305c55b1d77 100644 (file)
@@ -2,12 +2,12 @@
 # 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.
-#
+# 
 msgid ""
 msgstr ""
 "Project-Id-Version: Xontoic 0.1preview\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-09-02 07:51+0200\n"
+"POT-Creation-Date: 2012-01-26 12:24+0100\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"
@@ -16,33 +16,102 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: qcsrc/common/mapinfo.qc:1092 qcsrc/menu/xonotic/skinlist.c:163
+#: qcsrc/common/mapinfo.qc:665
+#, c-format
+msgid "@!#%'n Tuba Throwing"
+msgstr "@!#%'n Tuba Throwing"
+
+#: qcsrc/common/mapinfo.qc:1057 qcsrc/menu/xonotic/skinlist.c:166
 #, c-format
 msgid "%s: %s"
 msgstr "%s: %s"
 
-#: qcsrc/menu/gamecommand.qc:47
+#: qcsrc/common/mapinfo.qh:36
+msgid "Deathmatch"
+msgstr "Combate até à Morte"
+
+#: qcsrc/common/mapinfo.qh:39
+msgid "Last Man Standing"
+msgstr "O Ultimo a Cair"
+
+#: qcsrc/common/mapinfo.qh:42
+msgid "Arena"
+msgstr "Arena"
+
+#: qcsrc/common/mapinfo.qh:45
+msgid "Runematch"
+msgstr "Luta de Runas"
+
+#: qcsrc/common/mapinfo.qh:48
+msgid "Race"
+msgstr "Corrida"
+
+#: qcsrc/common/mapinfo.qh:51
+msgid "Race CTS"
+msgstr "Corrida CTS"
+
+#: qcsrc/common/mapinfo.qh:54
+msgid "Team Deathmatch"
+msgstr "Combate até à Morte por Equipas"
+
+#: qcsrc/common/mapinfo.qh:57
+msgid "Capture the Flag"
+msgstr "Captura a Bandeira"
+
+#: qcsrc/common/mapinfo.qh:60
+msgid "Clan Arena"
+msgstr "Clan Arena"
+
+#: qcsrc/common/mapinfo.qh:63
+msgid "Domination"
+msgstr "Domínio"
+
+#: qcsrc/common/mapinfo.qh:66
+msgid "Key Hunt"
+msgstr "Procura da Chave"
+
+#: qcsrc/common/mapinfo.qh:69
+msgid "Assault"
+msgstr "Assalto"
+
+#: qcsrc/common/mapinfo.qh:72
+msgid "Onslaught"
+msgstr "Investida"
+
+#: qcsrc/common/mapinfo.qh:75
+msgid "Nexball"
+msgstr "Nexball"
+
+#: qcsrc/common/mapinfo.qh:78
+msgid "Freeze Tag"
+msgstr "Freeze Tag"
+
+#: qcsrc/common/mapinfo.qh:81
+msgid "Keepaway"
+msgstr "Keepaway"
+
+#: qcsrc/menu/command/menu_cmd.qc:41
 #, c-format
 msgid "error: status is %d\n"
 msgstr "erro: o estado é &d\n"
 
-#: qcsrc/menu/gamecommand.qc:65
+#: qcsrc/menu/command/menu_cmd.qc:64
 msgid "Usage: menu_cmd command..., where possible commands are:\n"
 msgstr "Uso: menu_cmd command..., onde estão possíveis comandos:\n"
 
-#: qcsrc/menu/gamecommand.qc:66
+#: qcsrc/menu/command/menu_cmd.qc:65
 msgid "  sync - reloads all cvars on the current menu page\n"
 msgstr " sync - recarrega todas as cvars no menu actual"
 
-#: qcsrc/menu/gamecommand.qc:67
+#: qcsrc/menu/command/menu_cmd.qc:66
 msgid "  directmenu ITEM - select a menu item as main item\n"
 msgstr " directmenu ITEM - selecciona um item do menu como o principal\n"
 
-#: qcsrc/menu/gamecommand.qc:193
+#: qcsrc/menu/command/menu_cmd.qc:179
 msgid "error creating curl handle\n"
 msgstr "erro a criar curl handle"
 
-#: qcsrc/menu/gamecommand.qc:239
+#: qcsrc/menu/command/menu_cmd.qc:186
 msgid "Invalid command. For a list of supported commands, try menu_cmd help.\n"
 msgstr ""
 "Comando inválido. Para uma lista de comandos suportados, escrever menu_cmd "
@@ -73,17 +142,17 @@ msgstr "%d (%s)"
 msgid "custom"
 msgstr "modificado"
 
-#: qcsrc/menu/menu.qc:29
+#: qcsrc/menu/menu.qc:37
 #, c-format
 msgid "^4MQC Build information: ^1%s\n"
 msgstr "^4MQC Informação da Build %s\n"
 
-#: qcsrc/menu/xonotic/campaign.c:284
-#: qcsrc/menu/xonotic/dialog_singleplayer.c:134
+#: qcsrc/menu/xonotic/campaign.c:288
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:123
 msgid "???"
 msgstr "???"
 
-#: qcsrc/menu/xonotic/campaign.c:285
+#: qcsrc/menu/xonotic/campaign.c:289
 #, c-format
 msgid "Level %d: %s"
 msgstr "Nível %d: %s"
@@ -114,10 +183,14 @@ msgstr "Créditos"
 
 #: 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:57
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:61
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:277
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:91
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:96
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:56
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:113
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:74
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:89
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:73
 #: qcsrc/menu/xonotic/dialog_singleplayer_winner.c:21
 msgid "OK"
 msgstr "OK"
@@ -126,7 +199,7 @@ msgstr "OK"
 msgid "Welcome"
 msgstr "Bem-Vindo"
 
-#: qcsrc/menu/xonotic/dialog_firstrun.c:33
+#: qcsrc/menu/xonotic/dialog_firstrun.c:40
 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 "
@@ -135,18 +208,34 @@ 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
-msgid "Text language:"
-msgstr "Linguagem do texto:"
-
-#: qcsrc/menu/xonotic/dialog_firstrun.c:47
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:40
+#: qcsrc/menu/xonotic/dialog_firstrun.c:46
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:37
 #: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:39
 msgid "Name:"
 msgstr "Nome:"
 
-#: qcsrc/menu/xonotic/dialog_firstrun.c:69
+#: qcsrc/menu/xonotic/dialog_firstrun.c:68
+#: qcsrc/menu/xonotic/dialog_settings_user.c:65
+msgid "Text language:"
+msgstr "Linguagem do texto:"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:77
+msgid "Allow player statistics to use your nickname at stats.xonotic.org?"
+msgstr "Permitir utilizacao do nick nas estatisticas em stats.xonotic.org?"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:81
+msgid "ALWU2N^Yes"
+msgstr "ALWU2N^Sim"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:82
+msgid "ALWU2N^No"
+msgstr "ALWU2N^Nao"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:83
+msgid "ALWU2N^Undecided"
+msgstr "ALWU2N^Nao decidido"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:87
 msgid "Save settings"
 msgstr "Guardar Definições"
 
@@ -205,7 +294,7 @@ msgid "Text alignment:"
 msgstr "Alinhamento do Texto"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_centerprint.c:37
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:50
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:51
 msgid "Center"
 msgstr "Centro"
 
@@ -349,12 +438,12 @@ msgid "Status bar"
 msgstr "Barra de estado"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:33
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:48
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:49
 msgid "Left align"
 msgstr "Alinhamento à esquerda"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:34
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:52
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:53
 msgid "Right align"
 msgstr "Alinhamento à direita"
 
@@ -371,6 +460,7 @@ msgid "Flip speed/acceleration positions"
 msgstr "Trocar posição da velocidade e aceleração"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:44
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:29
 msgid "Speed:"
 msgstr "Velocidade:"
 
@@ -462,8 +552,8 @@ 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:154
-#: qcsrc/menu/xonotic/util.qc:600
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:66
+#: qcsrc/menu/xonotic/util.qc:655
 msgid "Alpha:"
 msgstr "Alfa:"
 
@@ -492,6 +582,7 @@ msgid "North"
 msgstr "Para norte"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:46
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:61
 msgid "Scale:"
 msgstr "Escala:"
 
@@ -568,7 +659,6 @@ msgid "Fade out after:"
 msgstr "Desaparecer após:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:26
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:36
 msgid "Never"
 msgstr "Nunca"
 
@@ -602,34 +692,38 @@ msgid "Weapon icons:"
 msgstr "Icones das armas"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:45
+msgid "Show only owned weapons"
+msgstr "Mostrar armas obtidas"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:48
 msgid "Show weapon ID as:"
 msgstr "Mostra o ID da arma como:"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:46
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:49
 msgid "SHOWAS^None"
 msgstr "Nenhum"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:47
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:50
 msgid "Number"
 msgstr "Número"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:48
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:51
 msgid "Bind"
 msgstr "Ligar"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:51
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:54
 msgid "Show Accuracy"
 msgstr "Mostrar Pontaria"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:52
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:55
 msgid "Show Ammo"
 msgstr "Mostrar Munições"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:55
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:58
 msgid "Ammo bar color:"
 msgstr "Cor da barra de munições:"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:61
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:64
 msgid "Ammo bar alpha:"
 msgstr "Cor da barra alfa:"
 
@@ -641,24 +735,24 @@ msgstr "Configuração do painel do HUD"
 msgid "Panel background defaults:"
 msgstr "Fundo do painel por defeito:"
 
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:23 qcsrc/menu/xonotic/util.qc:575
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:23 qcsrc/menu/xonotic/util.qc:630
 msgid "Background:"
 msgstr "Fundo:"
 
 #: 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:578
-#: qcsrc/menu/xonotic/util.qc:594 qcsrc/menu/xonotic/util.qc:611
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:91 qcsrc/menu/xonotic/util.qc:633
+#: qcsrc/menu/xonotic/util.qc:649 qcsrc/menu/xonotic/util.qc:666
 msgid "Disable"
 msgstr "Desactivar"
 
 #: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:30
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:77 qcsrc/menu/xonotic/util.qc:583
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:77 qcsrc/menu/xonotic/util.qc:638
 msgid "Color:"
 msgstr "Cor:"
 
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:35 qcsrc/menu/xonotic/util.qc:591
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:35 qcsrc/menu/xonotic/util.qc:646
 msgid "Border size:"
 msgstr "Tamanho do limite:"
 
@@ -667,11 +761,11 @@ msgstr "Tamanho do limite:"
 msgid "Team color:"
 msgstr "Cor da Equipa:"
 
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:58 qcsrc/menu/xonotic/util.qc:617
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:58 qcsrc/menu/xonotic/util.qc:672
 msgid "Test team color in configure mode"
 msgstr "Testa cor da equipa no modo de configuração"
 
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:61 qcsrc/menu/xonotic/util.qc:620
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:61 qcsrc/menu/xonotic/util.qc:675
 msgid "Padding:"
 msgstr "Padding:"
 
@@ -745,127 +839,123 @@ msgstr "Configuração do Jogador"
 msgid "Game type:"
 msgstr "Tipo de jogo:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:46
-msgid "Match settings:"
-msgstr "Definições de jogo:"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:49
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:48
 msgid "Time limit:"
 msgstr "Tempo limite:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:53
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:61
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:52
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:60
 msgid "Use map specified default"
 msgstr "Usar definição específica do mapa"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:56
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:55
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:154
 #: qcsrc/menu/xonotic/dialog_multiplayer_create.c:155
 #: qcsrc/menu/xonotic/dialog_multiplayer_create.c:156
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:157
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:160
 #: qcsrc/menu/xonotic/dialog_multiplayer_create.c:161
 #: qcsrc/menu/xonotic/dialog_multiplayer_create.c:162
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:163
 msgid "Point limit:"
 msgstr "Limite de pontos:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:64
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:63
 msgid "Player slots:"
 msgstr "Slots para Jogadores:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:67
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:66
 msgid "Number of bots:"
 msgstr "Número de jogadores controlados pelo computador:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:71
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:69
 msgid "Bot skill:"
 msgstr "Nível de dificuldade:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:74
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:72
 msgid "Botlike"
 msgstr "Bot"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:75
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:73
 msgid "Beginner"
 msgstr "Iniciado"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:76
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:74
 msgid "You will win"
 msgstr "Vais ganhar"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:77
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:75
 msgid "You can win"
 msgstr "Podes ganhar"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:78
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:76
 msgid "You might win"
 msgstr "Talvez ganhes"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:79
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:77
 msgid "Advanced"
 msgstr "Avançado"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:80
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:78
 msgid "Expert"
 msgstr "Perito"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:81
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:79
 msgid "Pro"
 msgstr "Profissional"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:82
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:80
 msgid "Assassin"
 msgstr "Assassino"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:83
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:81
 msgid "Unhuman"
 msgstr "Desumano"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:84
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:82
 msgid "Godlike"
 msgstr "Divinal"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:88
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:87
 msgid "Mutators..."
 msgstr "Mutators..."
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:97
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:57
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:96
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:145
 msgid "Advanced settings..."
 msgstr "Definições avançadas..."
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:104
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:103
 msgid "Map list:"
 msgstr "Lista de mapas:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:110
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:109
 msgid "Select all"
 msgstr "Seleccionar todos"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:113
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:112
 msgid "Select none"
 msgstr "Seleccionar nenhum"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:119
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:118
 msgid "Start Multiplayer!"
 msgstr "Começar Multijogador!"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:154
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:153
 msgid "Capture limit:"
 msgstr "Limite de capturas:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:158
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:157
 msgid "Lives:"
 msgstr "Vidas:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:159
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:158
 msgid "Laps:"
 msgstr "Voltas:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:160
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:159
 msgid "Goals:"
 msgstr "Golos:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:164
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:163
 msgid "Frag limit:"
 msgstr "Limite de Frags:"
 
@@ -969,28 +1059,28 @@ msgstr "Colocação total dos items"
 msgid "MinstaGib only"
 msgstr "Apenas MinstaGib"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:78
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:81
 msgid "Title:"
 msgstr "Título:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:84
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:87
 msgid "Author:"
 msgstr "Autor:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:90
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:93
 msgid "Features:"
 msgstr "Características:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:95
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:98
 msgid "Game types:"
 msgstr "Modos de jogo:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:118
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:314
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:121
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:335
 msgid "Close"
 msgstr "Fechar"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:121
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:124
 msgid "MAP^Play"
 msgstr "Jogar"
 
@@ -1012,108 +1102,121 @@ msgid "%s Arena"
 msgstr "%s Arena"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:68
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:167
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:173
 msgid "Dodging"
 msgstr "Desvio"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:70
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:250
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:258
 msgid "MinstaGib"
 msgstr "MinstaGib"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:72
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:253
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:261
 msgid "NIX"
 msgstr "NIX"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:74
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:205
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:213
 msgid "Rocket Flying"
 msgstr "Voar com Rockets"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:78
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:264
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:76
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:210
+msgid "Invincible Projectiles"
+msgstr "Projecteis invenciveis"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:80
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:272
 msgid "No start weapons"
 msgstr "Sem armas iniciais"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:80
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:189
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:82
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:195
 msgid "Low gravity"
 msgstr "Pouca gravidade"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:82
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:170
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:84
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:176
 msgid "Cloaked"
 msgstr "Escondido"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:84
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:86
 msgid "Hook"
 msgstr "Gancho"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:86
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:173
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:88
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:179
 msgid "Midair"
 msgstr "A meio do ar"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:88
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:176
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:90
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:182
 msgid "Vampire"
 msgstr "Vampiro"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:90
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:208
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:92
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:216
 msgid "Piñata"
 msgstr "Piñata"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:92
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:211
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:94
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:219
 msgid "Weapons stay"
 msgstr "Armas ficam"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:94
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:180
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:96
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:186
 msgid "Blood loss"
 msgstr "Perda de sangue"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:96
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:202
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:98
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:207
 msgid "Jet pack"
 msgstr "Jetpack"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:98
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:100
+msgid "No powerups"
+msgstr "Remover powerups"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:102
+msgid "Powerups"
+msgstr "Painel de Powerups"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:104
 msgid "MUT^None"
 msgstr "Nenhum"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:164
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:170
 msgid "Gameplay mutators:"
 msgstr "Mutators de jogabilidade"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:196
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:201
 msgid "Weapon & item mutators:"
 msgstr "Mutators de armas e items"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:199
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:204
 msgid "Grappling hook"
 msgstr "Gancho de trepar"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:215
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:223
 msgid "Weapon arenas:"
 msgstr "Arenas de Armas:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:218
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:226
 msgid "Regular (no arena)"
 msgstr "Regular (não arena específica)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:239
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:256
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:247
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:264
 msgid "with laser"
 msgstr "com laser"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:247
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:255
 msgid "Special arenas:"
 msgstr "Arenas Especiais:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:260
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:268
 msgid "Most weapons"
 msgstr "Maior parte das Armas"
 
@@ -1122,29 +1225,28 @@ msgid "Demo"
 msgstr "Demo"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:28
-msgid "Record demos while playing"
+msgid "Automatically record demos while playing"
 msgstr "Gravar demos enquanto joga"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:32
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:31
 #: qcsrc/menu/xonotic/dialog_multiplayer_join.c:28
 msgid "Filter:"
 msgstr "Filtrar:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:33
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:32
 #: 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
+#: qcsrc/menu/xonotic/dialog_settings_input.c:40
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:32
 msgid "Clear"
 msgstr "Limpar"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:43
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:45
 msgid "Timedemo"
 msgstr "Demo temporizado"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:46
-#, fuzzy
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:48
 msgid "DEMO^Play"
-msgstr "Jogar"
+msgstr "DEMO^Jogar"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join.c:4
 msgid "Join"
@@ -1163,6 +1265,7 @@ msgid "Pause"
 msgstr "Pausar"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join.c:56
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:262
 msgid "Address:"
 msgstr "Endereço:"
 
@@ -1171,7 +1274,7 @@ msgid "Info..."
 msgstr "Informação..."
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join.c:72
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:317
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:342
 msgid "Join!"
 msgstr "Juntar!"
 
@@ -1179,293 +1282,472 @@ msgstr "Juntar!"
 msgid "Server Information"
 msgstr "Informação do Servidor"
 
-#: 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
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:132
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:133
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:242
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:247
 msgid "N/A"
 msgstr "N/A"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:158
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:179
 #, c-format
-msgid "%d/%d, %d free player slots"
-msgstr "%d/%d, %d slots disponíveis"
+msgid "%d/%d"
+msgstr "%d/%d"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:193
+#: qcsrc/menu/xonotic/util.qc:632 qcsrc/menu/xonotic/util.qc:648
+#: qcsrc/menu/xonotic/util.qc:657 qcsrc/menu/xonotic/util.qc:665
+#: qcsrc/menu/xonotic/util.qc:677
+msgid "Default"
+msgstr "Por Defeito"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:172
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:200
 #, c-format
-msgid "%d modified settings"
+msgid "%d modified"
 msgstr "%d definições modificadas"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:172
-msgid "Official settings"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:200
+msgid "Official"
 msgstr "Definições oficiais"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:197
-msgid "N/A (can't connect)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:208
+msgid "N/A (auth library missing, can't connect)"
 msgstr "N/A (não conseguiu ligar)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:205
-msgid "not supported (can't connect)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:210
+msgid "N/A (auth library missing)"
+msgstr "N/A (biblioteca de autenticacao nao encontrada)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:216
+msgid "Not supported (can't connect)"
 msgstr "não é suportado (não conseguiu ligar)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:207
-msgid "not supported (won't encrypt)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:218
+msgid "Not supported (won't encrypt)"
 msgstr "não suportado (não encripta)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:211
-msgid "supported (will encrypt)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:222
+msgid "Supported (will encrypt)"
 msgstr "suportado (vai encriptar)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:213
-msgid "supported (won't encrypt)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:224
+msgid "Supported (won't encrypt)"
 msgstr "suportado (não encripta)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:217
-msgid "requested (will encrypt)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:228
+msgid "Requested (will encrypt)"
 msgstr "pedido (encripta)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:219
-msgid "requested (won't encrypt)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:230
+msgid "Requested (won't encrypt)"
 msgstr "pedido (não encripta)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:223
-msgid "required (can't connect)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:234
+msgid "Required (can't connect)"
 msgstr "necessário (não consegue ligar)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:225
-msgid "required (will encrypt)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:236
+msgid "Required (will encrypt)"
 msgstr "necessário (encripta)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:246
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:269
-msgid "Players:"
-msgstr "Jogadores:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:256
+msgid "Hostname:"
+msgstr "Nome do Host"
 
-#: 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_join_serverinfo.c:270
+msgid "Gametype:"
+msgstr "Tipo de jogo:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:259
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:275
 msgid "Map:"
 msgstr "Mapa:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:264
-msgid "Gameplay:"
-msgstr "Jogabilidade:"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:274
-msgid "Bots:"
-msgstr "Jogadores controlados pelo computador:"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:279
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:280
 msgid "Mod:"
 msgstr "Mod:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:284
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:285
 msgid "Version:"
 msgstr "Versão:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:289
-msgid "Ping:"
-msgstr "Ping:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:290
+msgid "Settings:"
+msgstr "Definições"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:295
-msgid "CA:"
-msgstr "CA:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:297
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:329
+msgid "Players:"
+msgstr "Jogadores:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:301
-msgid "Key:"
-msgstr "Chave:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:302
+msgid "Bots:"
+msgstr "Jogadores controlados pelo computador:"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:307
+msgid "Free slots:"
+msgstr "Slots para Jogadores:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:313
 msgid "Encryption:"
 msgstr "Encriptação:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:63
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:318
+msgid "ID:"
+msgstr "ID:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:323
+msgid "Key:"
+msgstr "Chave:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:60
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:19
 msgid "Model:"
 msgstr "Modelo:"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:88
-msgid "Field of view:"
-msgstr "Campo de visão:"
+msgid "No crosshair"
+msgstr "Sem mira"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:92
-msgid "View bobbing:"
-msgstr "Ver tremor:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:90
+msgid "Per weapon crosshair"
+msgstr "Mira por arma"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:96
-msgid "Zoom factor:"
-msgstr "Factor de Ampliação (ZOOM):"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:100
-msgid "Zoom speed:"
-msgstr "Velocidade de Ampliação (ZOOM):"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:103
-msgid "Weapon settings..."
-msgstr "Definições das Armas..."
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:110
-msgid "Crosshair:"
-msgstr "Mira:"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:111
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:139
-msgid "Per weapon"
-msgstr "Por arma"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:93
+msgid "Custom crosshair"
+msgstr "Mira custom"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:130
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:112
 msgid "Crosshair size:"
 msgstr "Tamanho da mira:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:134
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:117
 msgid "Crosshair alpha:"
 msgstr "Alfa da mira:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:138
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:123
 msgid "Crosshair color:"
 msgstr "Cor da mira:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:140
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:125
+msgid "Per weapon"
+msgstr "Por arma"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:127
 msgid "By health"
 msgstr "Por vida"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:143
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:131
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:47
 msgid "Custom"
 msgstr "modificado"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:148
-msgid "Enable center dot"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:139
+msgid "Other crosshair settings"
+msgstr "Definições de mira"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:147
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:6
+msgid "Model settings"
+msgstr "Definições do modelo"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:153
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:6
+msgid "View settings"
+msgstr "Ver Definições"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:159
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:6
+msgid "Weapon settings"
+msgstr "Definições de Armas"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:169
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:6
+msgid "HUD settings"
+msgstr "HUD - Definições"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:175
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:203
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:185
+#: qcsrc/menu/xonotic/dialog_settings_input.c:89
+#: qcsrc/menu/xonotic/dialog_settings_user.c:88
+#: qcsrc/menu/xonotic/dialog_settings_video.c:142
+msgid "Apply immediately"
+msgstr "Aplicar imediatamente"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:6
+msgid "Crosshair settings"
+msgstr "Definições da mira"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:28
+msgid "Enable center crosshair dot"
 msgstr "Activar ponto central"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:151
-msgid "Size:"
-msgstr "Tamanho:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:31
+msgid "Dot size:"
+msgstr "Tamanho do Ponto:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:36
+msgid "Dot alpha:"
+msgstr "Ponto brilho:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:41
+msgid "Dot color:"
+msgstr "Cor do Ponto:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:43
+msgid "Use normal crosshair color"
+msgstr "Cor da mira normal"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:54
+msgid "Crosshair animations:"
+msgstr "Animações da mira:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:57
+msgid "Smooth effects of crosshairs"
+msgstr "Suavizar mira"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:158
-msgid "Hit test:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:61
+msgid "Use rings to indicate weapon status"
+msgstr "Usar aneis para indicar estado da arma"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:67
+msgid "Hit testing:"
 msgstr "Teste de Tiro:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:159
-msgid "HTST^None"
-msgstr "Nenhum"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:69
+msgid "HTTST^Disabled"
+msgstr "HTTST^Desligado"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:160
-msgid "TrueAim"
-msgstr "PontariaCerta"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:70
+msgid "HTTST^TrueAim"
+msgstr "HTTST^PontariaCerta"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:161
-msgid "Enemies"
-msgstr "Inimigos"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:71
+msgid "HTTST^Enemies"
+msgstr "HTTST^Inimigos"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:164
-msgid "Waypoints setup..."
-msgstr "Configurar caminhos..."
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:76
+msgid "Blur crosshair if the shot is obstructed"
+msgstr "Esbater mira se o tiro e obstruido"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:169
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:81
+msgid "Animate when hitting an enemy"
+msgstr "Animar quando atinge inimigo"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:85
+msgid "Animate when picking up an item"
+msgstr "Animar quando apanha item"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:40
+msgid "Damage:"
+msgstr "Dano:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:43
+msgid "Overlay:"
+msgstr "Sobreposicao:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:47
+msgid "Factor:"
+msgstr "Factor de Ampliação (ZOOM):"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:52
+msgid "Fade rate:"
+msgstr "Desaparecimento de cada entrada:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:58
+msgid "Waypoints"
+msgstr "Caminhos"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:71
+msgid "Edge offset:"
+msgstr "Extremidade:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:80
+msgid "Show names above players"
+msgstr "Mostrar nomes sobre os jogadores"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:83
+msgid "Only when near crosshair"
+msgstr "Apenas quando perto da mira"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:86
+msgid "Display health and armor"
+msgstr "Mostrar posição da vida e armadura"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:90
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hudconfirm.c:4
 msgid "Enter HUD editor"
 msgstr "Entrar no editor do HUD"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:174
-msgid "Force models:"
-msgstr "Forçar modelos:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hudconfirm.c:28
+msgid "In order for the HUD editor to show, you must first be in game."
+msgstr "Para o editor do HUD aparecer, e preciso estar no jogo."
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:175
-msgid "MDL^None"
-msgstr "Nenhum"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hudconfirm.c:30
+msgid "Do you wish to start a local game to set up the HUD?"
+msgstr "Quer começar um jogo local para personalizaro HUD?"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:176
-msgid "MDL^Custom"
-msgstr "Modificado"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hudconfirm.c:33
+msgid "HDCNFRM^Yes"
+msgstr "HDCNFRM^Sim"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:177
-msgid "MDL^All"
-msgstr "Todos"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hudconfirm.c:36
+msgid "HDCNFRM^No"
+msgstr "HDCNFRM^Nao"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:180
-msgid "Disable gore effects"
-msgstr "Desactivar sangue/violencia"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:28
+msgid "Body fading:"
+msgstr "Desaparecimento dos corpos:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:182
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:31
 msgid "Gibs:"
 msgstr "Tripas:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:184
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:33
 msgid "GIBS^None"
 msgstr "Nenhum"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:185
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:34
 msgid "GIBS^Few"
 msgstr "Poucas"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:186
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:35
 msgid "GIBS^Many"
 msgstr "Muitas"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:187
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:36
 msgid "GIBS^Lots"
 msgstr "Imensas"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:191
-msgid "Damage splash:"
-msgstr "Dano Colateral:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:40
+msgid "Playermodel LOD:"
+msgstr "Jogador LOD:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:195
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:173
-#: 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:109
-msgid "Apply immediately"
-msgstr "Aplicar imediatamente"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:44
+msgid "Force models:"
+msgstr "Forçar modelos:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:5
-msgid "Waypoints"
-msgstr "Caminhos"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:45
+msgid "MDL^None"
+msgstr "Nenhum"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:23
-msgid "Show base waypoints"
-msgstr "Mostrar caminhos base"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:46
+msgid "MDL^Custom"
+msgstr "Modificado"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:25
-msgid "Waypoint scale:"
-msgstr "Escala dos Caminhos:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:47
+msgid "MDL^All"
+msgstr "Todos"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:29
-msgid "Waypoint alpha:"
-msgstr "Caminhos alfa:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:50
+msgid "Force player models to mine"
+msgstr "Forçar modelos:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:34
-msgid "Show names:"
-msgstr "Mostrar nomes:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:52
+msgid "Force player colors to mine"
+msgstr "Forçar cores dos jogadores à própria cor"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:37
-msgid "Teammates"
-msgstr "Companheiros de Equipa"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:28
+msgid "Field of view:"
+msgstr "Campo de visão:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:38
-msgid "All players"
-msgstr "Todos os jogadores"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:31
+msgid "Zoom:"
+msgstr "Modo de ampliação:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:6
-msgid "Weapon settings"
-msgstr "Definições de Armas"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:33
+msgid "RETICLE^Fullscreen"
+msgstr "RETICLE^Ecrã Inteiro"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:29
-msgid "Weapon priority list:"
-msgstr "Prioridade das Armas:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:34
+msgid "RETICLE^With reticle"
+msgstr "RETICLE^Com mira"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:34
-msgid "Up"
-msgstr "Cima"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:38
+msgid "ZOOM^Factor:"
+msgstr "ZOOM^Factor:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:37
-msgid "Down"
-msgstr "Baixo"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:42
+msgid "ZOOM^Speed:"
+msgstr "ZOOM^Velocidade:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:41
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:52
+msgid "ZOOM^Instant"
+msgstr "ZOOM^Instantaneo"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:56
+msgid "ZOOM^Sensitivity:"
+msgstr "ZOOM^Sensibilidade:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:59
+msgid "Velocity zoom:"
+msgstr "Velocidade do zoom:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:61
+msgid "VZOOM^Disabled"
+msgstr "VZOOM^Desligado"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:62
+msgid "VZOOM^Forward only"
+msgstr "VZOOM^Para a frente apenas"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:63
+msgid "VZOOM^All directions"
+msgstr "VZOOM^Todas as direcções"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:67
+msgid "VZOOM^Speed"
+msgstr "VZOOM^Velocidade"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:72
+msgid "Allow passing through walls while spectating"
+msgstr "Permitir passagem de paredes quando espectador"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:75
+msgid "1st person perspective"
+msgstr "Perspectiva na 1a pessoa"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:79
+msgid "Smooth the view when landing from a jump"
+msgstr "Suavizar visibilidade quando aterra de salto"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:83
+msgid "Smooth the view while crouching"
+msgstr "Suavizar a vista quando agachado"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:87
+msgid "View waving while idle"
+msgstr "Ver acenos quando ausente"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:91
+msgid "View bobbing while walking around"
+msgstr "Ver movimento quando a andar"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:96
+msgid "3rd person perspective"
+msgstr "Perspectiva da 3a pessoa"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:100
+msgid "Back distance"
+msgstr "Distancia das costas:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:106
+msgid "Up distance"
+msgstr "Distância para cima:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:29
+msgid "Weapon priority list:"
+msgstr "Prioridade das Armas:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:33
+msgid "Up"
+msgstr "Cima"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:36
+msgid "Down"
+msgstr "Baixo"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:41
 msgid "Use priority list for weapon cycling"
 msgstr "Usar lista de prioridades para ciclo entre as armas"
 
@@ -1473,13 +1755,21 @@ msgstr "Usar lista de prioridades para ciclo entre as armas"
 msgid "Auto switch weapons on pickup"
 msgstr "Mudar armas automaticamente ao apanhar do chão"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:45
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:46
 msgid "Draw 1st person weapon model"
 msgstr "Desenhar modelo da arma na 1a pessoa"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:55
-msgid "Flip view horizontally"
-msgstr "Trocar vista horizontal"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:58
+msgid "Gun model swaying"
+msgstr "Abanos do modelo da arma"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:63
+msgid "Gun model bobbing"
+msgstr "'Bobbing' do modelo da arma"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:68
+msgid "VWMDL^Scale"
+msgstr "VWMDL^Escala"
 
 #: qcsrc/menu/xonotic/dialog_news.c:4
 msgid "News"
@@ -1493,18 +1783,146 @@ msgstr "http://www.xonotic.org/team/blog/"
 msgid "Quit"
 msgstr "Sair"
 
-#: qcsrc/menu/xonotic/dialog_quit.c:17
+#: qcsrc/menu/xonotic/dialog_quit.c:18
 msgid "Are you sure you want to quit?"
 msgstr "Tens a certeza que queres sair?"
 
-#: qcsrc/menu/xonotic/dialog_quit.c:20
+#: qcsrc/menu/xonotic/dialog_quit.c:21
 msgid "Yes"
 msgstr "Sim"
 
-#: qcsrc/menu/xonotic/dialog_quit.c:21
+#: qcsrc/menu/xonotic/dialog_quit.c:22
 msgid "No"
 msgstr "Não"
 
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:4
+msgid "Sandbox Tools"
+msgstr "Ferramentas Sandbox"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:24
+msgid "Spawn"
+msgstr "Spawn"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:25
+msgid "Remove *"
+msgstr "Remover *"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:27
+msgid "Copy *"
+msgstr "Copiar *"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:28
+msgid "Paste"
+msgstr "Colar"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:30
+msgid "Bone:"
+msgstr "Osso:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:35
+msgid "Set * as child"
+msgstr "Por * como child"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:36
+msgid "Attach to *"
+msgstr "Juntar a *"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:38
+msgid "Detach from *"
+msgstr "Separar de *"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:41
+msgid "Visual object properties for *:"
+msgstr "Propriedades de objecto visual para *"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:43
+msgid "Set skin:"
+msgstr "Skin:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:45
+msgid "Set alpha:"
+msgstr "Definir alfa:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:48
+msgid "Set color main:"
+msgstr "Cor Principal:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:50
+msgid "Set color glow:"
+msgstr "Cor - Brilho:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:54
+msgid "Set frame:"
+msgstr "Por moldura:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:58
+msgid "Physical object properties for *:"
+msgstr "Propriedades de objecto fisico *"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:60
+msgid "Set material:"
+msgstr "Definir material:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:66
+msgid "Set solidity:"
+msgstr "Definir Solidez:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:67
+msgid "Non-solid"
+msgstr "Não sólido"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:68
+msgid "Solid"
+msgstr "Sólido"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:69
+msgid "Set physics:"
+msgstr "Definir física:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:70
+msgid "Static"
+msgstr "Estática"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:71
+msgid "Movable"
+msgstr "Movível"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:72
+msgid "Physical"
+msgstr "Físico"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:74
+msgid "Set scale:"
+msgstr "Escala:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:76
+msgid "Set force:"
+msgstr "Definir força:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:80
+msgid "Claim *"
+msgstr "Resgatar*"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:82
+msgid "* object info"
+msgstr "Informações de objecto *"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:83
+msgid "* mesh info"
+msgstr "Informações de mesh *"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:84
+msgid "* attachment info"
+msgstr "Informações de extras *"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:85
+msgid "Show help"
+msgstr "Mostrar ajuda"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:86
+msgid "* is the object you are facing"
+msgstr "* é o objecto para o qual está virado"
+
 #: qcsrc/menu/xonotic/dialog_settings.c:4
 msgid "Settings"
 msgstr "Definições"
@@ -1530,9 +1948,9 @@ msgid "Audio"
 msgstr "Som"
 
 #: qcsrc/menu/xonotic/dialog_settings.c:22
-#: qcsrc/menu/xonotic/dialog_settings_network.c:4
-msgid "Network"
-msgstr "Rede"
+#: qcsrc/menu/xonotic/dialog_settings_user.c:4
+msgid "User"
+msgstr "Utilizador"
 
 #: qcsrc/menu/xonotic/dialog_settings.c:23
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:4
@@ -1543,194 +1961,170 @@ msgstr "Misc"
 msgid "Master:"
 msgstr "Principal:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:33
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:35
 msgid "Music:"
 msgstr "Música:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:41
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:45
 msgid "VOL^Ambient:"
 msgstr "Som Ambiente:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:48
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:54
 msgid "Info:"
 msgstr "Informação:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:55
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:63
 msgid "Items:"
 msgstr "Items:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:62
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:72
 msgid "Pain:"
 msgstr "Dor:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:69
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:81
 msgid "Player:"
 msgstr "Jogador:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:76
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:90
 msgid "Shots:"
 msgstr "Tiros:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:83
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:99
 msgid "Voice:"
 msgstr "Voz:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:91
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:109
 msgid "Weapons:"
 msgstr "Armas:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:98
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:156
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:117
+msgid "New style sound attenuation"
+msgstr "Novo estilo de atenuação do som"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:119
+msgid "Mute sounds when not active"
+msgstr "Sons desligados quando não activo"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:122
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:194
 msgid "Frequency:"
 msgstr "Frequência:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:100
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:124
 msgid "8 kHz"
 msgstr "8 kHz"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:101
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:125
 msgid "11.025 kHz"
 msgstr "11.025 kHz"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:102
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:126
 msgid "16 kHz"
 msgstr "16 kHz"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:103
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:127
 msgid "22.05 kHz"
 msgstr "22.05 kHz"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:104
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:128
 msgid "24 kHz"
 msgstr "24 kHz"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:105
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:129
 msgid "32 kHz"
 msgstr "32 kHz"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:106
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:130
 msgid "44.1 kHz"
 msgstr "44.1 kHz"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:107
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:131
 msgid "48 kHz"
 msgstr "48 kHz"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:110
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:134
 msgid "Channels:"
 msgstr "Canais:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:112
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:136
 msgid "Mono"
 msgstr "Mono"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:113
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:137
 msgid "Stereo"
 msgstr "Stereo"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:114
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:138
 msgid "2.1"
 msgstr "2.1"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:115
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:139
 msgid "4"
 msgstr "4"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:116
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:140
 msgid "5"
 msgstr "5"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:117
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:141
 msgid "5.1"
 msgstr "5.1"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:118
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:142
 msgid "6.1"
 msgstr "6.1"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:119
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:143
 msgid "7.1"
 msgstr "7.1"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:123
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:146
 msgid "Swap Stereo"
 msgstr "Trocar Stereo"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:127
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:148
 msgid "Headphone friendly mode"
 msgstr "Modo de Headphones"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:131
-msgid "Spatial voices:"
-msgstr "Vozes espaciais:"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:132
-msgid "VOCS^None"
-msgstr "Nenhum"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:133
-msgid "VOCS^Taunts"
-msgstr "Taunts"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:134
-msgid "VOCS^All"
-msgstr "Todos"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:137
-msgid "Taunt range:"
-msgstr "Nível dos taunts:"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:140
-msgid "RNG^Very short"
-msgstr "Muito baixo"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:141
-msgid "RNG^Short"
-msgstr "Baixo"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:142
-msgid "RNG^Normal"
-msgstr "Normal"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:143
-msgid "RNG^Long"
-msgstr "Alto"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:170
+msgid "Hit indication sound"
+msgstr "Indicador de tiro acertado"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:144
-msgid "RNG^Full"
-msgstr "Total"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:172
+msgid "Chat message sound"
+msgstr "Som de aviso de Conversa"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:151
-msgid "Automatic taunts"
-msgstr "Taunts Automáticos"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:174
+msgid "Menu sounds"
+msgstr "Sons do menu"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:160
-msgid "Time warning:"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:177
+msgid "Time announcer:"
 msgstr "Aviso de tempo:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:162
-msgid "WRN^None"
-msgstr "Nenhum"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:179
+msgid "WRN^Disabled"
+msgstr "WRN^Desligado"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:163
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:180
 msgid "1 minute"
 msgstr "1 minuto"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:164
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:181
 msgid "5 minutes"
 msgstr "5 minutos"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:165
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:182
 msgid "WRN^Both"
 msgstr "Ambos"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:168
-msgid "Hit indicator"
-msgstr "Indicador de tiro acertado"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:189
+msgid "Automatic taunts"
+msgstr "Taunts Automáticos"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:170
-msgid "Menu sounds"
-msgstr "Sons do menu"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:199
+msgid "Debug info about sounds"
+msgstr "Fazer debug sobre o som"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:38
 msgid "Quality preset:"
@@ -1793,230 +2187,226 @@ msgid "DET^Insane"
 msgstr "Máximo"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:62
-msgid "Antialiasing:"
-msgstr "Antialiasing:"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:64
-msgid "AA^Disabled"
-msgstr "Desligado"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:65
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:103
-msgid "2x"
-msgstr "2 passagens"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:66
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:104
-msgid "4x"
-msgstr "4 passagens"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:70
 msgid "Texture resolution:"
 msgstr "Resolução das texturas:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:73
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:65
 msgid "RES^Leet"
 msgstr "Leet"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:74
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:66
 msgid "RES^Lowest"
 msgstr "Mínimo"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:75
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:67
+msgid "RES^Very low"
+msgstr "RES^Baixa"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:68
 msgid "RES^Low"
 msgstr "Baixa"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:76
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:69
 msgid "RES^Normal"
 msgstr "Normal"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:77
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:70
 msgid "RES^Good"
 msgstr "Bom"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:78
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:71
 msgid "RES^Best"
 msgstr "Melhores"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:91
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:94
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:84
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:87
 msgid "Avoid lossy texture compression"
 msgstr "Evitar compressão de Texturas"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:100
-msgid "Anisotropy:"
-msgstr "Filtro Anisotrópico:"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:102
-msgid "ANISO^Disabled"
-msgstr "Desligado"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:93
+msgid "Use lightmaps"
+msgstr "Usar lightmaps"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:105
-msgid "8x"
-msgstr "8x"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:94
+msgid "Deluxe mapping"
+msgstr "Mapeamento Deluxe"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:106
-msgid "16x"
-msgstr "16x"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:96
+msgid "Gloss"
+msgstr "Lustro"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:110
-msgid "Particle quality:"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:100
+msgid "Particles quality:"
 msgstr "Qualidade das Partículas:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:113
-msgid "Particle distance:"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:103
+msgid "Particles distance:"
 msgstr "Distancia visível das Partículas:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:117
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:106
+msgid "Damage effects:"
+msgstr "Efeito de danos"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:108
+msgid "DMGPRTCLS^Disabled"
+msgstr "DMGPRTCLS^Desligado"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:109
+msgid "DMGPRTCLS^Skeletal"
+msgstr "DMGPRTCLS^Esqueleto"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:110
+msgid "DMGPRTCLS^All"
+msgstr "DMGPRTCLS^Todos"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:114
 msgid "Decals"
 msgstr "Símbolos"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:118
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:115
 msgid "Decals on models"
 msgstr "Marcas nos modelos"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:122
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:119
 msgid "Distance:"
 msgstr "Distância:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:128
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:125
 msgid "Time:"
 msgstr "Tempo:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:134
-msgid "Use lightmaps"
-msgstr "Usar lightmaps"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:135
-msgid "Deluxe mapping"
-msgstr "Mapeamento Deluxe"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:137
-msgid "Gloss"
-msgstr "Lustro"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:140
-msgid "Offset mapping"
-msgstr "Mapeamento Offset"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:142
-msgid "Relief mapping"
-msgstr "Mapeamento Relief"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:145
-msgid "Reflections:"
-msgstr "Reflexos:"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:148
-msgid "Blurred"
-msgstr "Grau de Blur"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:149
-msgid "REFL^Good"
-msgstr "Bom"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:150
-msgid "Sharp"
-msgstr "Grau de Definição"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:131
+msgid "Coronas"
+msgstr "Coronas"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:155
-msgid "Show surfaces"
-msgstr "Mostrar superfícies"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:132
+msgid "Use Occlusion Queries"
+msgstr "Usar Consultas Oclusão"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:157
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:134
 msgid "No dynamic lighting"
 msgstr "Iluminação dinâmica desligada"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:159
-msgid "Flash blend approximation"
-msgstr "Aproximação Flash Blend"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:136
+msgid "Fake corona lighting"
+msgstr "Ilumincação falsa"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:161
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:138
 msgid "Realtime dynamic lighting"
 msgstr "Iluminação dinâmica em tempo real"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:162
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:166
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:139
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:143
 msgid "Shadows"
 msgstr "Sombras"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:165
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:142
 msgid "Realtime world lighting"
 msgstr "Iluminação do mundo em tempo real"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:170
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:147
 msgid "Use normal maps"
 msgstr "Usar mapas normais"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:172
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:149
 msgid "Soft shadows"
 msgstr "Sombras Suaves"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:175
-msgid "Coronas"
-msgstr "Coronas"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:153
+msgid "Show surfaces"
+msgstr "Mostrar superfícies"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:176
-msgid "Use Occlusion Queries"
-msgstr "Usar Consultas Oclusão"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:155
+msgid "Offset mapping"
+msgstr "Mapeamento Offset"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:157
+msgid "Relief mapping"
+msgstr "Mapeamento Relief"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:159
+msgid "LOD"
+msgstr "LOD"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:178
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:162
 msgid "Bloom"
 msgstr "Bloom"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:180
-msgid "High Dynamic Range (HDR)"
-msgstr "High Dynamic Range (HDR)"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:164
+msgid "Reflections:"
+msgstr "Reflexos:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:167
+msgid "Blurred"
+msgstr "Grau de Blur"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:168
+msgid "REFL^Good"
+msgstr "Bom"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:169
+msgid "Sharp"
+msgstr "Grau de Definição"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:184
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:174
 msgid "Motion blur:"
 msgstr "Distorção por movimento:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:189
-msgid "Blur and sharpen postprocessing"
-msgstr "Blur e postprocessing"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:179
+msgid "Extra postprocessing effects"
+msgstr "Efeitos extra de pos-processamento"
 
 #: qcsrc/menu/xonotic/dialog_settings_input.c:26
 msgid "Key bindings:"
 msgstr "Bindings de Teclas"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:31
+#: qcsrc/menu/xonotic/dialog_settings_input.c:30
 msgid "Change key..."
 msgstr "Mudar tecla..."
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:35
+#: qcsrc/menu/xonotic/dialog_settings_input.c:34
 msgid "Edit..."
 msgstr "Editar..."
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:46
-msgid "Sensitivity:"
-msgstr "Sensibilidade:"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:45
+msgid "Pressing \"enter console\" key also closes it"
+msgstr " Pressionar \"entra na consola\" também fecha"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:47
+msgid "Automatically repeat jumping if holding jump"
+msgstr "Se a pressionar salto, repetir salto automaticamente"
 
 #: qcsrc/menu/xonotic/dialog_settings_input.c:51
-msgid "UI mouse speed:"
-msgstr "Velocidade do rato:"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:53
+#: qcsrc/menu/xonotic/dialog_settings_input.c:56
+msgid "Use joystick input"
+msgstr "Usar input do joystick"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:55
-msgid "Mouse filter"
-msgstr "Filtro do Rato"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:61
+msgid "Mouse:"
+msgstr "Rato:"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:57
-msgid "Invert mouse"
-msgstr "Inverter Rato"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:64
+msgid "Sensitivity:"
+msgstr "Sensibilidade:"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:60
-#: qcsrc/menu/xonotic/dialog_settings_input.c:62
-msgid "Use joystick input"
-msgstr "Usar input do joystick"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:68
+msgid "Smooth aiming"
+msgstr "Suavizar pontaria"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:71
+msgid "Invert aiming"
+msgstr "Inverter Rato"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:65
-#: qcsrc/menu/xonotic/dialog_settings_input.c:67
-msgid "Turn off OS mouse acceleration"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:75
+#: qcsrc/menu/xonotic/dialog_settings_input.c:77
+#: qcsrc/menu/xonotic/dialog_settings_input.c:80
+msgid "Disable system mouse acceleration"
 msgstr "Desligar aceleração de Rato do SO"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:69
-msgid "\"enter console\" also closes"
-msgstr "\"entrar na consola\" também fecha"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:85
+msgid "Enable built in mouse acceleration"
+msgstr "Desligar aceleração de Rato"
 
 #: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:5
 msgid "User defined key bind"
@@ -2039,96 +2429,261 @@ msgid "Cancel"
 msgstr "Cancelar"
 
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:26
-msgid "Menu skins:"
-msgstr "Skins de Menu:"
+msgid "Network:"
+msgstr "Rede"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:47
-msgid "Show current time"
-msgstr "Mostrar tempo corrente"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:31
+msgid "56k"
+msgstr "56k"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:49
-msgid "Show current date"
-msgstr "Mostrar data corrente"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:32
+msgid "ISDN"
+msgstr "ISDN"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:51
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:33
+msgid "Slow ADSL"
+msgstr "ADSL Lenta"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:34
+msgid "Fast ADSL"
+msgstr "ADSL Rápida"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:35
+msgid "Broadband"
+msgstr "Banda-larga"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:39
+msgid "Input packets/s:"
+msgstr "Pacotes Entrada /s"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:45
+msgid "Local latency:"
+msgstr "Latência local:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:50
+msgid "Client UDP port:"
+msgstr "Port UDP do Cliente:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:55
+msgid "Show netgraph"
+msgstr "Mostrar gráfico-net"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:59
+msgid "Client-side movement prediction"
+msgstr "Previsão de movimento pelo Cliente"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:62
+msgid "Movement error compensation"
+msgstr "Compensação do erro do movimento"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:66
+msgid "Downloads:"
+msgstr "Transferências:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:69
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:81
+msgid "Maximum:"
+msgstr "Máximo:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:73
+msgid "Speed (kB/s):"
+msgstr "Velocidade (kB/s):"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:78
+msgid "Framerate:"
+msgstr "Imagens por segundo:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:83
+msgid "MAXFPS^5 fps"
+msgstr "MAXFPS^5 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:84
+msgid "MAXFPS^10 fps"
+msgstr "MAXFPS^10 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:85
+msgid "MAXFPS^20 fps"
+msgstr "MAXFPS^20 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:86
+msgid "MAXFPS^30 fps"
+msgstr "MAXFPS^30 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:87
+msgid "MAXFPS^40 fps"
+msgstr "MAXFPS^40 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:88
+msgid "MAXFPS^50 fps"
+msgstr "MAXFPS^50 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:89
+msgid "MAXFPS^60 fps"
+msgstr "MAXFPS^60 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:90
+msgid "MAXFPS^70 fps"
+msgstr "MAXFPS^70 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:91
+msgid "MAXFPS^100 fps"
+msgstr "MAXFPS^100 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:92
+msgid "MAXFPS^125 fps"
+msgstr "MAXFPS^125 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:93
+msgid "MAXFPS^200 fps"
+msgstr "MAXFPS^200 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:94
+msgid "MAXFPS^Unlimited"
+msgstr "MAXFPS^Ilimitado fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:98
+msgid "Target:"
+msgstr "Alvo:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:100
+msgid "TRGT^Disabled"
+msgstr "TRGT^Desligado"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:101
+msgid "TRGT^30 fps"
+msgstr "TRGT^30 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:102
+msgid "TRGT^40 fps"
+msgstr "TRGT^40 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:103
+msgid "TRGT^50 fps"
+msgstr "TRGT^50 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:104
+msgid "TRGT^60 fps"
+msgstr "TRGT^60 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:105
+msgid "TRGT^100 fps"
+msgstr "TRGT^100 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:106
+msgid "TRGT^125 fps"
+msgstr "TRGT^125 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:107
+msgid "TRGT^200 fps"
+msgstr "TRGT^200 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:111
+msgid "Idle limit:"
+msgstr "Tempo parado limite:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:113
+msgid "IDLFPS^10 fps"
+msgstr "IDLFPS^10 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:114
+msgid "IDLFPS^20 fps"
+msgstr "IDLFPS^20 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:115
+msgid "IDLFPS^30 fps"
+msgstr "IDLFPS^30 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:116
+msgid "IDLFPS^60 fps"
+msgstr "IDLFPS^60 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:117
+msgid "IDLFPS^Unlimited"
+msgstr "IDLFPS^Unlimited"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:122
 msgid "Show frames per second"
 msgstr "Mostrar Frames por Segundo"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:53
-msgid "Minimize input latency"
-msgstr "Minimizar latência de entrada"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:125
+msgid "Save processing time for other apps"
+msgstr "Salvar tempo de processamento para outras aplicações"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:129
+msgid "Menu tooltips:"
+msgstr "Pistas de Menu:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:131
+msgid "TLTIP^Disabled"
+msgstr "TLTIP^Desligado"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:132
+msgid "TLTIP^Standard"
+msgstr "TLTIP^Normal"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:133
+msgid "TLTIP^Advanced"
+msgstr "TLTIP^Avançado"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:137
+msgid "Show current time"
+msgstr "Mostrar tempo corrente"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:139
+msgid "Show current date"
+msgstr "Mostrar data corrente"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:141
+msgid "Enable developer mode"
+msgstr "Activar modo de criador"
 
 #: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:5
 msgid "Advanced settings"
 msgstr "Definições avançadas"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:23
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:31
 msgid "Cvar filter:"
 msgstr "Filtro de Cvar"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:34
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:44
 msgid "Setting:"
 msgstr "Definição:"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:42
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:48
+msgid "Type:"
+msgstr "Tipo:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:52
 msgid "Value:"
 msgstr "Valor:"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:56
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:68
 msgid "Description:"
 msgstr "Descrição:"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:26
-msgid "Client-side movement prediction"
-msgstr "Previsão de movimento pelo Cliente"
-
-#: qcsrc/menu/xonotic/dialog_settings_network.c:30
-msgid "Show netgraph"
-msgstr "Mostrar gráfico-net"
-
-#: qcsrc/menu/xonotic/dialog_settings_network.c:33
-msgid "Network speed:"
-msgstr "Velocidade da Rede:"
-
-#: qcsrc/menu/xonotic/dialog_settings_network.c:35
-msgid "56k"
-msgstr "56k"
-
-#: qcsrc/menu/xonotic/dialog_settings_network.c:36
-msgid "ISDN"
-msgstr "ISDN"
-
-#: qcsrc/menu/xonotic/dialog_settings_network.c:37
-msgid "Slow ADSL"
-msgstr "ADSL Lenta"
-
-#: qcsrc/menu/xonotic/dialog_settings_network.c:38
-msgid "Fast ADSL"
-msgstr "ADSL Rápida"
-
-#: qcsrc/menu/xonotic/dialog_settings_network.c:39
-msgid "Broadband"
-msgstr "Banda-larga"
+#: qcsrc/menu/xonotic/dialog_settings_user.c:27
+msgid "Menu skins:"
+msgstr "Skins de Menu:"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:42
-msgid "Input packets/s:"
-msgstr "Pacotes Entrada /s"
+#: qcsrc/menu/xonotic/dialog_settings_user.c:31
+msgid "Set skin"
+msgstr "Definir skin"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:46
-msgid "HTTP downloads:"
-msgstr "Transferências via HTTP:"
+#: qcsrc/menu/xonotic/dialog_settings_user.c:74
+msgid "Set language"
+msgstr "Linguagem do texto:"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:49
-msgid "Downloads:"
-msgstr "Transferências:"
+#: qcsrc/menu/xonotic/dialog_settings_user.c:79
+msgid "Disable gore effects and harsh language"
+msgstr "Desactivar sangue/violencia"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:53
-msgid "Speed (kB/s):"
-msgstr "Velocidade (kB/s):"
+#: qcsrc/menu/xonotic/dialog_settings_user.c:82
+msgid "Allow player statistics to track your client"
+msgstr "Permitir estatísticas seguir o cliente"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:57
-msgid "Client UDP port:"
-msgstr "Port UDP do Cliente:"
+#: qcsrc/menu/xonotic/dialog_settings_user.c:84
+msgid "Allow player statistics to use your nickname"
+msgstr "Permitir que utilização de estatísticas use nickname"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:26
 msgid "Resolution:"
@@ -2178,103 +2733,173 @@ msgstr "Colossal"
 msgid "Color depth:"
 msgstr "Profundidade da cor:"
 
+#: qcsrc/menu/xonotic/dialog_settings_video.c:44
+msgid "16bit"
+msgstr "16bit"
+
 #: qcsrc/menu/xonotic/dialog_settings_video.c:45
+msgid "32bit"
+msgstr "32bit"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:48
 msgid "Full screen"
 msgstr "Ecrã Inteiro"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:46
+#: qcsrc/menu/xonotic/dialog_settings_video.c:49
 msgid "Vertical Synchronization"
 msgstr "Sincronização Vertical"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:49
-msgid "Use OpenGL 2.0 shaders (GLSL)"
-msgstr "Usar shaders OpenGL2.0 (GLSL)"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:53
+msgid "Anisotropy:"
+msgstr "Filtro Anisotrópico:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:52
-msgid "Use GLSL to handle color control"
-msgstr "Usar GLSL para o controlo de cores"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:55
+msgid "ANISO^Disabled"
+msgstr "Desligado"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:56
-msgid "Vertex Buffer Objects (VBOs)"
-msgstr "Objectos Vertex Buffers (VBOs)"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:66
+msgid "2x"
+msgstr "2 passagens"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:57
+#: qcsrc/menu/xonotic/dialog_settings_video.c:67
+msgid "4x"
+msgstr "4 passagens"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:58
+msgid "8x"
+msgstr "8x"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:59
-msgid "VBO^Off"
-msgstr "Desligado"
+msgid "16x"
+msgstr "16x"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:60
-msgid "Vertices, some Tris (compatible)"
-msgstr "Vértices, alguns Triângulos (compatível)"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:62
+msgid "Antialiasing:"
+msgstr "Antialiasing:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:63
-msgid "Vertices"
-msgstr "Vértices"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:65
+msgid "AA^Disabled"
+msgstr "Desligado"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:64
-msgid "Vertices and Triangles"
-msgstr "Vértices e Triângulos"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:71
+msgid "High-quality frame buffer"
+msgstr "Buffer de Alta-qualidade"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:67
+#: qcsrc/menu/xonotic/dialog_settings_video.c:76
 msgid "Depth first:"
 msgstr "Profundidade primeiro:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:69
+#: qcsrc/menu/xonotic/dialog_settings_video.c:78
 msgid "DF^Disabled"
 msgstr "Desligado"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:70
+#: qcsrc/menu/xonotic/dialog_settings_video.c:79
 msgid "DF^World"
 msgstr "Mundo"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:71
+#: qcsrc/menu/xonotic/dialog_settings_video.c:80
 msgid "DF^All"
 msgstr "Todos"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:75
-msgid "Disable multithreaded OpenGL"
-msgstr "Desactivar OpenGL em múltiplos threads"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:83
+msgid "Vertex Buffer Objects (VBOs)"
+msgstr "Objectos Vertex Buffers (VBOs)"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:77
-msgid "Wait for GPU to finish each frame"
-msgstr "Esperar que a placa gráfica termine cada frame"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:86
+msgid "VBO^Off"
+msgstr "Desligado"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:80
+#: qcsrc/menu/xonotic/dialog_settings_video.c:87
+msgid "Vertices, some Tris (compatible)"
+msgstr "Vértices, alguns Triângulos (compatível)"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:90
+msgid "Vertices"
+msgstr "Vértices"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:91
+msgid "Vertices and Triangles"
+msgstr "Vértices e Triângulos"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:94
 msgid "Brightness:"
 msgstr "Brilho:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:83
+#: qcsrc/menu/xonotic/dialog_settings_video.c:97
 msgid "Contrast:"
 msgstr "Contraste:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:86
+#: qcsrc/menu/xonotic/dialog_settings_video.c:100
 msgid "Gamma:"
 msgstr "Gamma:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:91
+#: qcsrc/menu/xonotic/dialog_settings_video.c:105
 msgid "Contrast boost:"
 msgstr "Contraste - Boost"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:96
+#: qcsrc/menu/xonotic/dialog_settings_video.c:110
 msgid "Saturation:"
 msgstr "Saturação da Cor:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:102
+#: qcsrc/menu/xonotic/dialog_settings_video.c:116
 msgid "LIT^Ambient:"
 msgstr "Som Ambiente:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:105
+#: qcsrc/menu/xonotic/dialog_settings_video.c:119
 msgid "Intensity:"
 msgstr "Intensidade:"
 
+#: qcsrc/menu/xonotic/dialog_settings_video.c:123
+msgid "Use OpenGL 2.0 shaders (GLSL)"
+msgstr "Usar shaders OpenGL2.0 (GLSL)"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:125
+msgid "Use GLSL to handle color control"
+msgstr "Usar GLSL para o controlo de cores"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:128
+msgid "Wait for GPU to finish each frame"
+msgstr "Esperar que a placa gráfica termine cada frame"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:132
+msgid "Psycho coloring (easter egg)"
+msgstr "Cores 'Psycho' "
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:135
+msgid "Trippy vertices (easter egg)"
+msgstr "Vértices 'Trip'"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:138
+msgid "Flip view horizontally"
+msgstr "Trocar vista horizontal"
+
 #: qcsrc/menu/xonotic/dialog_singleplayer.c:4
 msgid "Singleplayer"
 msgstr "Um Jogador"
 
-#: qcsrc/menu/xonotic/dialog_singleplayer.c:127
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:116
 msgid "Instant action! (random map with bots)"
 msgstr "Acção Instantânea! (Mapa ao acaso contra o computador)"
 
-#: qcsrc/menu/xonotic/dialog_singleplayer.c:148
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:137
+msgid "Campaign Difficulty:"
+msgstr "Dificuldade da campanha:"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:138
+msgid "CSKL^Easy"
+msgstr "CSKL^Fácil"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:139
+msgid "CSKL^Medium"
+msgstr "CSKL^Média"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:140
+msgid "CSKL^Hard"
+msgstr "CSKL^Difícil"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:142
 msgid "Start Singleplayer!"
 msgstr "Começar Um só Jogador!"
 
@@ -2310,23 +2935,23 @@ msgstr "rosa"
 msgid "spectate"
 msgstr "espectador"
 
-#: qcsrc/menu/xonotic/mainwindow.c:35 qcsrc/menu/xonotic/mainwindow.c:38
+#: qcsrc/menu/xonotic/mainwindow.c:39 qcsrc/menu/xonotic/mainwindow.c:42
 msgid "Do not press this button again!"
 msgstr "Não voltar a carregar neste botão!"
 
-#: qcsrc/menu/xonotic/maplist.c:278
+#: qcsrc/menu/xonotic/maplist.c:282
 msgid ""
 "Huh? Can't play this (m is NULL). Refiltering so this won't happen again.\n"
 msgstr ""
 "Huh? Não posso jogar isto (m é NULL). Voltando a filtrar de maneira a que "
 "isto não se repitanovamente.\n"
 
-#: qcsrc/menu/xonotic/maplist.c:286
+#: qcsrc/menu/xonotic/maplist.c:290
 #, c-format
 msgid "%s's Xonotic Server"
 msgstr "Servidor de Xonotic do %s"
 
-#: qcsrc/menu/xonotic/maplist.c:291
+#: qcsrc/menu/xonotic/maplist.c:295
 msgid ""
 "Huh? Can't play this (invalid game type). Refiltering so this won't happen "
 "again.\n"
@@ -2334,7 +2959,11 @@ msgstr ""
 "Huh? Não posso jogar isto (tipo de jogo inválido). Voltando a filtrar de "
 "maneira a que isto não se repitanovamente.\n"
 
-#: qcsrc/menu/xonotic/playermodel.c:174
+#: qcsrc/menu/xonotic/playerlist.c:118 qcsrc/menu/xonotic/playerlist.c:128
+msgid "spectator"
+msgstr "espectador"
+
+#: qcsrc/menu/xonotic/playermodel.c:177
 msgid "<no model found>"
 msgstr "<nenhum modelo encontrado>"
 
@@ -2346,23 +2975,23 @@ msgstr "Remover"
 msgid "Bookmark"
 msgstr "Marcar"
 
-#: qcsrc/menu/xonotic/serverlist.c:527
+#: qcsrc/menu/xonotic/serverlist.c:548
 msgid "Ping"
 msgstr "Ping"
 
-#: qcsrc/menu/xonotic/serverlist.c:528
+#: qcsrc/menu/xonotic/serverlist.c:549
 msgid "Host name"
 msgstr "Nome do Host"
 
-#: qcsrc/menu/xonotic/serverlist.c:529
+#: qcsrc/menu/xonotic/serverlist.c:550
 msgid "Map"
 msgstr "Mapa"
 
-#: qcsrc/menu/xonotic/serverlist.c:530
+#: qcsrc/menu/xonotic/serverlist.c:551
 msgid "Type"
 msgstr "Tipo"
 
-#: qcsrc/menu/xonotic/serverlist.c:531
+#: qcsrc/menu/xonotic/serverlist.c:552
 msgid "Players"
 msgstr "Jogadores"
 
@@ -2392,27 +3021,27 @@ msgstr "%s dB"
 msgid "%dx%d"
 msgstr "%dx%d"
 
-#: qcsrc/menu/xonotic/util.qc:270
+#: qcsrc/menu/xonotic/util.qc:276
 #, c-format
 msgid "Received HTTP request data for an invalid id %d.\n"
 msgstr "Recebido um pedido HTTP de um id inválido %d. \n"
 
-#: qcsrc/menu/xonotic/util.qc:285
+#: qcsrc/menu/xonotic/util.qc:291
 #, c-format
 msgid "error receiving update notification: status is %d\n"
 msgstr "erro ao receber notificação: o estado e %d\n"
 
-#: qcsrc/menu/xonotic/util.qc:290
+#: qcsrc/menu/xonotic/util.qc:296
 msgid "error: received HTML instead of an update notification\n"
 msgstr "erro: recebido HTML em vez de notificação de actualização\n"
 
-#: qcsrc/menu/xonotic/util.qc:295
+#: qcsrc/menu/xonotic/util.qc:301
 msgid "error: received carriage returns from update notification server\n"
 msgstr ""
 "erro: recebido 'carriage return' de um servidor de notificação de "
 "actualização\n"
 
-#: qcsrc/menu/xonotic/util.qc:316
+#: qcsrc/menu/xonotic/util.qc:322
 #, c-format
 msgid ""
 "Update can be downloaded at:\n"
@@ -2421,21 +3050,21 @@ msgstr ""
 "Actualização pode ser transferida em:\n"
 "%s\n"
 
-#: qcsrc/menu/xonotic/util.qc:337
+#: qcsrc/menu/xonotic/util.qc:351
 msgid "Autogenerating mapinfo for newly added maps..."
 msgstr "Informação de mapas auto-gerada para novos mapas..."
 
-#: qcsrc/menu/xonotic/util.qc:367
+#: qcsrc/menu/xonotic/util.qc:381
 #, c-format
 msgid "^1%s TEST BUILD"
 msgstr "^1%s VERSAO DE TESTE"
 
-#: qcsrc/menu/xonotic/util.qc:432
+#: qcsrc/menu/xonotic/util.qc:439
 #, c-format
 msgid "Update to %s now!"
 msgstr "Actualize para %s agora!"
 
-#: qcsrc/menu/xonotic/util.qc:501
+#: qcsrc/menu/xonotic/util.qc:524
 msgid ""
 "^1ERROR: Texture compression is required but not supported.\n"
 "^1Expect visual problems.\n"
@@ -2443,443 +3072,357 @@ msgstr ""
 "^1ERRO: A compressão de texturas é necessária mas não é suportada.\n"
 "^1Possíveis problemas visuais.\n"
 
-#: qcsrc/menu/xonotic/util.qc:523
-msgid "Arena"
-msgstr "Arena"
+#: qcsrc/menu/xonotic/util.qc:643
+msgid "Use default"
+msgstr "Usar defeito"
 
-#: qcsrc/menu/xonotic/util.qc:524
-msgid "Assault"
-msgstr "Assalto"
+#: qcsrc/menu/xonotic/util.qc:663
+msgid "Team Color:"
+msgstr "Cor da Equipa:"
 
-#: qcsrc/menu/xonotic/util.qc:525
-msgid "Capture The Flag"
-msgstr "Captura a Bandeira"
+#: qcsrc/menu/xonotic/util.qh:50
+msgid "Enable panel"
+msgstr "Actival painel"
 
-#: qcsrc/menu/xonotic/util.qc:526
-msgid "Clan Arena"
-msgstr "Clan Arena"
+#: weapons.qc.tmp:1
+msgid "Rifle"
+msgstr "Espingarda"
 
-#: qcsrc/menu/xonotic/util.qc:527
-msgid "Deathmatch"
-msgstr "Combate até à Morte"
+#: weapons.qc.tmp:2
+msgid "Machine Gun"
+msgstr "Machine Gun"
 
-#: qcsrc/menu/xonotic/util.qc:528
-msgid "Domination"
-msgstr "Domínio"
+#: weapons.qc.tmp:3
+msgid "Rocket Launcher"
+msgstr "Rocket Launcher"
 
-#: qcsrc/menu/xonotic/util.qc:529
-msgid "Freeze Tag"
-msgstr "Freeze Tag"
+#: weapons.qc.tmp:4
+msgid "Port-O-Launch"
+msgstr "Port-O-Launch"
 
-#: qcsrc/menu/xonotic/util.qc:530
-msgid "Keepaway"
-msgstr "Keepaway"
+#: weapons.qc.tmp:5
+msgid "Grappling Hook"
+msgstr "Grappling Hook"
 
-#: qcsrc/menu/xonotic/util.qc:531
-msgid "Key Hunt"
-msgstr "Procura da Chave"
+#: weapons.qc.tmp:6
+msgid "Electro"
+msgstr "Electro"
 
-#: qcsrc/menu/xonotic/util.qc:532
-msgid "Last Man Standing"
-msgstr "O Ultimo a Cair"
+#: weapons.qc.tmp:7
+msgid "Laser"
+msgstr "Laser"
 
-#: qcsrc/menu/xonotic/util.qc:533
-msgid "Nexball"
-msgstr "Nexball"
+#: weapons.qc.tmp:8
+msgid "Shotgun"
+msgstr "Shotgun"
 
-#: qcsrc/menu/xonotic/util.qc:534
-msgid "Onslaught"
-msgstr "Investida"
+#: weapons.qc.tmp:9
+#, c-format
+msgid "@!#%'n Tuba"
+msgstr "@!#%'n Tuba"
 
-#: qcsrc/menu/xonotic/util.qc:535
-msgid "Race"
-msgstr "Corrida"
+#: weapons.qc.tmp:10
+msgid "MinstaNex"
+msgstr "MinstaNex"
 
-#: qcsrc/menu/xonotic/util.qc:536
-msgid "Race CTS"
-msgstr "Corrida CTS"
+#: weapons.qc.tmp:11
+msgid "Crylink"
+msgstr "Crylink"
 
-#: qcsrc/menu/xonotic/util.qc:537
-msgid "Runematch"
-msgstr "Luta de Runas"
+#: weapons.qc.tmp:12
+msgid "Heavy Laser Assault Cannon"
+msgstr "Heavy Laser Assault Cannon"
 
-#: qcsrc/menu/xonotic/util.qc:538
-msgid "Team Deathmatch"
-msgstr "Combate até à Morte por Equipas"
+#: weapons.qc.tmp:13
+msgid "Mortar"
+msgstr "Mortar"
 
-#: qcsrc/menu/xonotic/util.qc:557
-#, c-format
-msgid "@!#%'n Tuba Throwing"
-msgstr "@!#%'n Tuba Throwing"
+#: weapons.qc.tmp:14
+msgid "Hagar"
+msgstr "Hagar"
 
-#: qcsrc/menu/xonotic/util.qc:577 qcsrc/menu/xonotic/util.qc:593
-#: qcsrc/menu/xonotic/util.qc:602 qcsrc/menu/xonotic/util.qc:610
-#: qcsrc/menu/xonotic/util.qc:622
-msgid "Default"
-msgstr "Por Defeito"
+#: weapons.qc.tmp:15
+msgid "T.A.G. Seeker"
+msgstr "T.A.G. Seeker"
 
-#: qcsrc/menu/xonotic/util.qc:588
-msgid "Use default"
-msgstr "Usar defeito"
+#: weapons.qc.tmp:16
+msgid "Fireball"
+msgstr "Fireball"
 
-#: qcsrc/menu/xonotic/util.qc:608
-msgid "Team Color:"
-msgstr "Cor da Equipa:"
+#: weapons.qc.tmp:17
+msgid "Mine Layer"
+msgstr "Mine Layer"
 
-#: qcsrc/menu/xonotic/util.qh:47
-msgid "Enable panel"
-msgstr "Actival painel"
+#: weapons.qc.tmp:18
+msgid "Nex"
+msgstr "Nex"
 
-#: qcsrc/server/w_crylink.qc:2
-msgid "Crylink"
-msgstr "Crylink"
+#~ msgid "%s was riddled full of holes by %s"
+#~ msgstr "%s foi enchido de buracos por %s"
 
-#: qcsrc/server/w_crylink.qc:666
-#, c-format
-msgid "%s succeeded at self-destructing themself with the Crylink"
-msgstr "%s conseguiu auto-destruir-se com a Crylink"
+#~ msgid "%s died of %s's great playing on the @!#%%'n Tuba"
+#~ msgstr "%s morreu por causa da grande actuação de %s"
 
-#: qcsrc/server/w_crylink.qc:671
-#, c-format
-msgid "%s could not hide from %s's Crylink"
-msgstr "%s não se conseguiu esconder da Crylink do %s"
+#~ msgid "%s hurt his own ears with the @!#%%'n Tuba"
+#~ msgstr "%s magoou-se a si próprio com a Tuba"
 
-#: qcsrc/server/w_crylink.qc:673
-#, c-format
-msgid "%s was too close to %s's Crylink"
-msgstr "%s estava demasiado perto da Crylink do %s"
+#~ msgid "%s was gunned by %s"
+#~ msgstr "%s foi atingido por %s"
 
-#: qcsrc/server/w_crylink.qc:675
-#, c-format
-msgid "%s took a close look at %s's Crylink"
-msgstr "%s pode ver de perto a Crylink do %s"
+#~ msgid "%2$s ^7slapped %1$s ^7around a bit with a large ^2shotgun"
+#~ msgstr "%2$s ^7maltratou %1$s ^7com uma grande ^2caçadeira"
 
-#: qcsrc/server/w_electro.qc:2
-msgid "Electro"
-msgstr "Electro"
+#~ msgid "%s was tagged by %s"
+#~ msgstr "%s foi marcado por %s"
 
-#: qcsrc/server/w_electro.qc:574
-#, c-format
-msgid "%s could not remember where they put plasma"
-msgstr "%s não se conseguiu lembrar onde pôs a plasma"
+#~ msgid "%s ate %s's rocket"
+#~ msgstr "%s comeu o foguete de %s"
 
-#: qcsrc/server/w_electro.qc:576
-#, c-format
-msgid "%s played with plasma"
-msgstr "%s brincou com plasma"
+#~ msgid "%s almost dodged %s's rocket"
+#~ msgstr "%s quase se desviou do foguete de %s"
 
-#: qcsrc/server/w_electro.qc:583
-#, c-format
-msgid "%s just noticed %s's blue ball"
-msgstr "%s acabou de reparar na bola azul de %s"
+#~ msgid "%s got too close to %s's rocket"
+#~ msgstr "%s estava demasiado perto do foguete de %s"
 
-#: qcsrc/server/w_electro.qc:585
-#, c-format
-msgid "%s got in touch with %s's blue ball"
-msgstr "%s esteve em contacto com a bola azul de %s"
+#~ msgid "%s was sniped by %s"
+#~ msgstr "%s foi snipado por %s"
 
-#: qcsrc/server/w_electro.qc:590
-#, c-format
-msgid "%s felt the electrifying air of %s's combo"
-msgstr "%s sentiu o ar electrizante do combo de %s"
+#~ msgid "%s got hit in the head by %s"
+#~ msgstr "%s foi atingido na cabeça por %s"
 
-#: qcsrc/server/w_electro.qc:592
-#, c-format
-msgid "%s got too close to %s's blue beam"
-msgstr "%s estava perto demais do raio azul de %s"
+#~ msgid "%s failed to hide from %s's rifle"
+#~ msgstr "%s não se conseguiu esconder da espingarda de %s"
 
-#: qcsrc/server/w_electro.qc:594
-#, c-format
-msgid "%s was blasted by %s's blue beam"
-msgstr "%s foi atingido pelo raio azul de %s"
+#~ msgid "%s died in %s's bullet hail"
+#~ msgstr "%s morreu na chuva de balas de %s"
 
-#: qcsrc/server/w_fireball.qc:2
-msgid "Fireball"
-msgstr "Fireball"
+#~ msgid "%s failed to hide from %s's bullet hail"
+#~ msgstr "%s não se conseguiu esconder da chuva de balas de %s"
 
-#: qcsrc/server/w_fireball.qc:417
-#, c-format
-msgid "%s forgot about some firemine"
-msgstr "%s esqueceu-se das minas"
+#~ msgid "%s sniped themself somehow"
+#~ msgstr "%s snipou-se de alguma forma..."
 
-#: qcsrc/server/w_fireball.qc:419 qcsrc/server/w_hlac.qc:240
-#, c-format
-msgid "%s should have used a smaller gun"
-msgstr "%s devia ter usado uma arma mais pequena"
+#~ msgid "%s shot themself automatically"
+#~ msgstr "%s disparou em si próprio"
 
-#: qcsrc/server/w_fireball.qc:426
-#, c-format
-msgid "%s tried to catch %s's firemine"
-msgstr "%s tentou apanhar a mina de %s"
+#~ msgid "%s felt %s doing the impossible to him"
+#~ msgstr "%s sentiu %s fazer-lhe o impossível"
 
-#: qcsrc/server/w_fireball.qc:428
-#, c-format
-msgid "%s fatefully ignored %s's firemine"
-msgstr "%s ignorou fatalmente a mina de %s"
+#~ msgid "%s has been vaporized by %s"
+#~ msgstr "%s foi vaporizado por %s"
 
-#: qcsrc/server/w_fireball.qc:435
-#, c-format
-msgid "%s could not hide from %s's fireball"
-msgstr "%s não se conseguiu esconder da bola de fogo de %s"
+#~ msgid "%s is now thinking with portals"
+#~ msgstr "%s está agora a pensar com portais"
 
-#: qcsrc/server/w_fireball.qc:437
-#, c-format
-msgid "%s saw the pretty lights of %s's fireball"
-msgstr "%s viu a bela luminosidade da bola de fogo de %s"
+#~ msgid "%s stepped on %s's mine"
+#~ msgstr "%s pisou a mina de %s"
 
-#: qcsrc/server/w_fireball.qc:440
-#, c-format
-msgid "%s got too close to %s's fireball"
-msgstr "%s estava demasiado perto da bola de fogo de %s"
+#~ msgid "%s almost dodged %s's mine"
+#~ msgstr "%s quase se desviou da mina de %s"
 
-#: qcsrc/server/w_fireball.qc:442
-#, c-format
-msgid "%s tasted %s's fireball"
-msgstr "%s provou a bola de fogo de %s"
+#~ msgid "%s got too close to %s's mine"
+#~ msgstr "%s estava perto demais da mina de %s"
 
-#: qcsrc/server/w_grenadelauncher.qc:2
-msgid "Mortar"
-msgstr "Mortar"
+#~ msgid "%s exploded"
+#~ msgstr "%s explodiu"
 
-#: qcsrc/server/w_grenadelauncher.qc:383
-#, c-format
-msgid "%s tried out his own grenade"
-msgstr "%s experimentou a sua própria granada"
+#~ msgid "%s was lasered to death by %s"
+#~ msgstr "%s foi lasereado até à morte por %s"
 
-#: qcsrc/server/w_grenadelauncher.qc:385
-#, c-format
-msgid "%s detonated"
-msgstr "%s foi detonado"
+#~ msgid "%s was cut in half by %s's gauntlet"
+#~ msgstr "%s foi cortado ao meio pela gauntlet de %s"
 
-#: qcsrc/server/w_grenadelauncher.qc:391
-#, c-format
-msgid "%s didn't see %s's grenade"
-msgstr "%s não viu a granada de %s"
+#~ msgid "%s lasered themself to hell"
+#~ msgstr "%s laserou-se até à morte"
 
-#: qcsrc/server/w_grenadelauncher.qc:393
-#, c-format
-msgid "%s almost dodged %s's grenade"
-msgstr "%s quase se desviou da granada de %s"
+#~ msgid "%s has run into %s's gravity bomb"
+#~ msgstr "%s correu contra uma bomba gravitacional %s"
 
-#: qcsrc/server/w_grenadelauncher.qc:395
-#, c-format
-msgid "%s ate %s's grenade"
-msgstr "%s comeu a granada de %s"
+#~ msgid "%s did the impossible"
+#~ msgstr "%s fez o impossível"
 
-#: qcsrc/server/w_hagar.qc:2
-msgid "Hagar"
-msgstr "Hagar"
+#~ msgid "%s was cut down by %s"
+#~ msgstr "%s foi totalmente cortado por %s"
 
-#: qcsrc/server/w_hagar.qc:395 qcsrc/server/w_seeker.qc:655
-#, c-format
-msgid "%s played with tiny rockets"
-msgstr "%s brincou com pequenos foguetes"
+#~ msgid "%s was pummeled by %s"
+#~ msgstr "%s foi serrado por %s"
 
-#: qcsrc/server/w_hagar.qc:399
-#, c-format
-msgid "%s hoped %s's missiles wouldn't bounce"
-msgstr "%s rezou para que os misseis de %s não resaltassem"
+#~ msgid "%s hoped %s's missiles wouldn't bounce"
+#~ msgstr "%s rezou para que os misseis de %s não resaltassem"
 
-#: qcsrc/server/w_hagar.qc:401 qcsrc/server/w_seeker.qc:661
-#, c-format
-msgid "%s was pummeled by %s"
-msgstr "%s foi serrado por %s"
+#~ msgid "%s played with tiny rockets"
+#~ msgstr "%s brincou com pequenos foguetes"
 
-#: qcsrc/server/w_hlac.qc:2
-msgid "Heavy Laser Assault Cannon"
-msgstr "Heavy Laser Assault Cannon"
+#~ msgid "%s ate %s's grenade"
+#~ msgstr "%s comeu a granada de %s"
 
-#: qcsrc/server/w_hlac.qc:242
-#, c-format
-msgid "%s was cut down by %s"
-msgstr "%s foi totalmente cortado por %s"
+#~ msgid "%s almost dodged %s's grenade"
+#~ msgstr "%s quase se desviou da granada de %s"
 
-#: qcsrc/server/w_hook.qc:2
-msgid "Grappling Hook"
-msgstr "Grappling Hook"
+#~ msgid "%s didn't see %s's grenade"
+#~ msgstr "%s não viu a granada de %s"
 
-#: qcsrc/server/w_hook.qc:266 qcsrc/server/w_porto.qc:296
-#, c-format
-msgid "%s did the impossible"
-msgstr "%s fez o impossível"
+#~ msgid "%s detonated"
+#~ msgstr "%s foi detonado"
 
-#: qcsrc/server/w_hook.qc:268
-#, c-format
-msgid "%s has run into %s's gravity bomb"
-msgstr "%s correu contra uma bomba gravitacional %s"
+#~ msgid "%s tried out his own grenade"
+#~ msgstr "%s experimentou a sua própria granada"
 
-#: qcsrc/server/w_laser.qc:2
-msgid "Laser"
-msgstr "Laser"
+#~ msgid "%s tasted %s's fireball"
+#~ msgstr "%s provou a bola de fogo de %s"
 
-#: qcsrc/server/w_laser.qc:311
-#, c-format
-msgid "%s lasered themself to hell"
-msgstr "%s laserou-se até à morte"
+#~ msgid "%s got too close to %s's fireball"
+#~ msgstr "%s estava demasiado perto da bola de fogo de %s"
 
-#: qcsrc/server/w_laser.qc:315
-#, c-format
-msgid "%s was cut in half by %s's gauntlet"
-msgstr "%s foi cortado ao meio pela gauntlet de %s"
+#~ msgid "%s saw the pretty lights of %s's fireball"
+#~ msgstr "%s viu a bela luminosidade da bola de fogo de %s"
 
-#: qcsrc/server/w_laser.qc:317
-#, c-format
-msgid "%s was lasered to death by %s"
-msgstr "%s foi lasereado até à morte por %s"
+#~ msgid "%s could not hide from %s's fireball"
+#~ msgstr "%s não se conseguiu esconder da bola de fogo de %s"
 
-#: qcsrc/server/w_minelayer.qc:2
-msgid "Mine Layer"
-msgstr "Mine Layer"
+#~ msgid "%s fatefully ignored %s's firemine"
+#~ msgstr "%s ignorou fatalmente a mina de %s"
 
-#: qcsrc/server/w_minelayer.qc:523 qcsrc/server/w_rocketlauncher.qc:501
-#, c-format
-msgid "%s exploded"
-msgstr "%s explodiu"
+#~ msgid "%s tried to catch %s's firemine"
+#~ msgstr "%s tentou apanhar a mina de %s"
 
-#: qcsrc/server/w_minelayer.qc:527
-#, c-format
-msgid "%s got too close to %s's mine"
-msgstr "%s estava perto demais da mina de %s"
+#~ msgid "%s should have used a smaller gun"
+#~ msgstr "%s devia ter usado uma arma mais pequena"
 
-#: qcsrc/server/w_minelayer.qc:529
-#, c-format
-msgid "%s almost dodged %s's mine"
-msgstr "%s quase se desviou da mina de %s"
+#~ msgid "%s forgot about some firemine"
+#~ msgstr "%s esqueceu-se das minas"
 
-#: qcsrc/server/w_minelayer.qc:531
-#, c-format
-msgid "%s stepped on %s's mine"
-msgstr "%s pisou a mina de %s"
+#~ msgid "%s was blasted by %s's blue beam"
+#~ msgstr "%s foi atingido pelo raio azul de %s"
 
-#: qcsrc/server/w_minstanex.qc:2
-msgid "MinstaNex"
-msgstr "MinstaNex"
+#~ msgid "%s got too close to %s's blue beam"
+#~ msgstr "%s estava perto demais do raio azul de %s"
 
-#: qcsrc/server/w_minstanex.qc:293 qcsrc/server/w_nex.qc:253
-#: qcsrc/server/w_shotgun.qc:215 qcsrc/server/w_uzi.qc:317
-#, c-format
-msgid "%s is now thinking with portals"
-msgstr "%s está agora a pensar com portais"
+#~ msgid "%s felt the electrifying air of %s's combo"
+#~ msgstr "%s sentiu o ar electrizante do combo de %s"
 
-#: qcsrc/server/w_minstanex.qc:295 qcsrc/server/w_nex.qc:255
-#, c-format
-msgid "%s has been vaporized by %s"
-msgstr "%s foi vaporizado por %s"
+#~ msgid "%s got in touch with %s's blue ball"
+#~ msgstr "%s esteve em contacto com a bola azul de %s"
 
-#: qcsrc/server/w_nex.qc:2
-msgid "Nex"
-msgstr "Nex"
+#~ msgid "%s just noticed %s's blue ball"
+#~ msgstr "%s acabou de reparar na bola azul de %s"
 
-#: qcsrc/server/w_porto.qc:2
-msgid "Port-O-Launch"
-msgstr "Port-O-Launch"
+#~ msgid "%s played with plasma"
+#~ msgstr "%s brincou com plasma"
 
-#: qcsrc/server/w_porto.qc:298
-#, c-format
-msgid "%s felt %s doing the impossible to him"
-msgstr "%s sentiu %s fazer-lhe o impossível"
+#~ msgid "%s could not remember where they put plasma"
+#~ msgstr "%s não se conseguiu lembrar onde pôs a plasma"
 
-#: qcsrc/server/w_rifle.qc:2
-msgid "Rifle"
-msgstr "Espingarda"
+#~ msgid "%s took a close look at %s's Crylink"
+#~ msgstr "%s pode ver de perto a Crylink do %s"
 
-#: qcsrc/server/w_rifle.qc:233
-#, c-format
-msgid "%s shot themself automatically"
-msgstr "%s disparou em si próprio"
+#~ msgid "%s was too close to %s's Crylink"
+#~ msgstr "%s estava demasiado perto da Crylink do %s"
 
-#: qcsrc/server/w_rifle.qc:235
-#, c-format
-msgid "%s sniped themself somehow"
-msgstr "%s snipou-se de alguma forma..."
+#~ msgid "%s could not hide from %s's Crylink"
+#~ msgstr "%s não se conseguiu esconder da Crylink do %s"
 
-#: qcsrc/server/w_rifle.qc:242
-#, c-format
-msgid "%s failed to hide from %s's bullet hail"
-msgstr "%s não se conseguiu esconder da chuva de balas de %s"
+#~ msgid "%s succeeded at self-destructing themself with the Crylink"
+#~ msgstr "%s conseguiu auto-destruir-se com a Crylink"
 
-#: qcsrc/server/w_rifle.qc:244
-#, c-format
-msgid "%s died in %s's bullet hail"
-msgstr "%s morreu na chuva de balas de %s"
+#~ msgid "Disable multithreaded OpenGL"
+#~ msgstr "Desactivar OpenGL em múltiplos threads"
 
-#: qcsrc/server/w_rifle.qc:251
-#, c-format
-msgid "%s failed to hide from %s's rifle"
-msgstr "%s não se conseguiu esconder da espingarda de %s"
+#~ msgid "HTTP downloads:"
+#~ msgstr "Transferências via HTTP:"
 
-#: qcsrc/server/w_rifle.qc:256
-#, c-format
-msgid "%s got hit in the head by %s"
-msgstr "%s foi atingido na cabeça por %s"
+#~ msgid "Network speed:"
+#~ msgstr "Velocidade da Rede:"
 
-#: qcsrc/server/w_rifle.qc:258 qcsrc/server/w_uzi.qc:321
-#, c-format
-msgid "%s was sniped by %s"
-msgstr "%s foi snipado por %s"
+#~ msgid "Minimize input latency"
+#~ msgstr "Minimizar latência de entrada"
 
-#: qcsrc/server/w_rocketlauncher.qc:2
-msgid "Rocket Launcher"
-msgstr "Rocket Launcher"
+#~ msgid "Mouse filter"
+#~ msgstr "Filtro do Rato"
 
-#: qcsrc/server/w_rocketlauncher.qc:505
-#, c-format
-msgid "%s got too close to %s's rocket"
-msgstr "%s estava demasiado perto do foguete de %s"
+#~ msgid "UI mouse speed:"
+#~ msgstr "Velocidade do rato:"
 
-#: qcsrc/server/w_rocketlauncher.qc:507
-#, c-format
-msgid "%s almost dodged %s's rocket"
-msgstr "%s quase se desviou do foguete de %s"
+#~ msgid "Blur and sharpen postprocessing"
+#~ msgstr "Blur e postprocessing"
 
-#: qcsrc/server/w_rocketlauncher.qc:509
-#, c-format
-msgid "%s ate %s's rocket"
-msgstr "%s comeu o foguete de %s"
+#~ msgid "High Dynamic Range (HDR)"
+#~ msgstr "High Dynamic Range (HDR)"
 
-#: qcsrc/server/w_seeker.qc:2
-msgid "T.A.G. Seeker"
-msgstr "T.A.G. Seeker"
+#~ msgid "Flash blend approximation"
+#~ msgstr "Aproximação Flash Blend"
 
-#: qcsrc/server/w_seeker.qc:659
-#, c-format
-msgid "%s was tagged by %s"
-msgstr "%s foi marcado por %s"
+#~ msgid "WRN^None"
+#~ msgstr "Nenhum"
 
-#: qcsrc/server/w_shotgun.qc:2
-msgid "Shotgun"
-msgstr "Shotgun"
+#~ msgid "RNG^Full"
+#~ msgstr "Total"
 
-#: qcsrc/server/w_shotgun.qc:219
-#, c-format
-msgid "%2$s ^7slapped %1$s ^7around a bit with a large ^2shotgun"
-msgstr "%2$s ^7maltratou %1$s ^7com uma grande ^2caçadeira"
+#~ msgid "RNG^Long"
+#~ msgstr "Alto"
 
-#: qcsrc/server/w_shotgun.qc:221
-#, c-format
-msgid "%s was gunned by %s"
-msgstr "%s foi atingido por %s"
+#~ msgid "RNG^Normal"
+#~ msgstr "Normal"
 
-#: qcsrc/server/w_tuba.qc:2
-#, c-format
-msgid "@!#%'n Tuba"
-msgstr "@!#%'n Tuba"
+#~ msgid "RNG^Short"
+#~ msgstr "Baixo"
 
-#: qcsrc/server/w_tuba.qc:252
-#, c-format
-msgid "%s hurt his own ears with the @!#%%'n Tuba"
-msgstr "%s magoou-se a si próprio com a Tuba"
+#~ msgid "RNG^Very short"
+#~ msgstr "Muito baixo"
 
-#: qcsrc/server/w_tuba.qc:256
-#, c-format
-msgid "%s died of %s's great playing on the @!#%%'n Tuba"
-msgstr "%s morreu por causa da grande actuação de %s"
+#~ msgid "Taunt range:"
+#~ msgstr "Nível dos taunts:"
 
-#: qcsrc/server/w_uzi.qc:2
-msgid "Machine Gun"
-msgstr "Machine Gun"
+#~ msgid "VOCS^All"
+#~ msgstr "Todos"
 
-#: qcsrc/server/w_uzi.qc:323
-#, c-format
-msgid "%s was riddled full of holes by %s"
-msgstr "%s foi enchido de buracos por %s"
+#~ msgid "VOCS^Taunts"
+#~ msgstr "Taunts"
+
+#~ msgid "VOCS^None"
+#~ msgstr "Nenhum"
+
+#~ msgid "Spatial voices:"
+#~ msgstr "Vozes espaciais:"
+
+#~ msgid "All players"
+#~ msgstr "Todos os jogadores"
+
+#~ msgid "Teammates"
+#~ msgstr "Companheiros de Equipa"
+
+#~ msgid "Show names:"
+#~ msgstr "Mostrar nomes:"
+
+#~ msgid "Waypoint scale:"
+#~ msgstr "Escala dos Caminhos:"
+
+#~ msgid "Waypoints setup..."
+#~ msgstr "Configurar caminhos..."
+
+#~ msgid "HTST^None"
+#~ msgstr "Nenhum"
+
+#~ msgid "Size:"
+#~ msgstr "Tamanho:"
+
+#~ msgid "Weapon settings..."
+#~ msgstr "Definições das Armas..."
+
+#~ msgid "Zoom speed:"
+#~ msgstr "Velocidade de Ampliação (ZOOM):"
+
+#~ msgid "View bobbing:"
+#~ msgstr "Ver tremor:"
+
+#~ msgid "CA:"
+#~ msgstr "CA:"
+
+#~ msgid "Ping:"
+#~ msgstr "Ping:"
+
+#~ msgid "Gameplay:"
+#~ msgstr "Jogabilidade:"
+
+#~ msgid "%d/%d, %d free player slots"
+#~ msgstr "%d/%d, %d slots disponíveis"
index 7d08c491731f4926c658ee27cdbd5a849f3d9821..fd1d5bf62b6d436cc2d93b7cd9b5ec6ac06398f8 100644 (file)
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Xonotic 0.1preview\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-09-02 07:51+0200\n"
+"POT-Creation-Date: 2012-01-26 12:24+0100\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"
@@ -16,34 +16,103 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: qcsrc/common/mapinfo.qc:1092 qcsrc/menu/xonotic/skinlist.c:163
+#: qcsrc/common/mapinfo.qc:665
+#, c-format
+msgid "@!#%'n Tuba Throwing"
+msgstr "Arunca @!#%'n Tuba"
+
+#: qcsrc/common/mapinfo.qc:1057 qcsrc/menu/xonotic/skinlist.c:166
 #, c-format
 msgid "%s: %s"
 msgstr "%s: %s"
 
-#: qcsrc/menu/gamecommand.qc:47
+#: qcsrc/common/mapinfo.qh:36
+msgid "Deathmatch"
+msgstr "Meciul Mortii"
+
+#: qcsrc/common/mapinfo.qh:39
+msgid "Last Man Standing"
+msgstr "Ultimul Supravietuitor"
+
+#: qcsrc/common/mapinfo.qh:42
+msgid "Arena"
+msgstr "Arena"
+
+#: qcsrc/common/mapinfo.qh:45
+msgid "Runematch"
+msgstr "Runematch"
+
+#: qcsrc/common/mapinfo.qh:48
+msgid "Race"
+msgstr "Cursa"
+
+#: qcsrc/common/mapinfo.qh:51
+msgid "Race CTS"
+msgstr "Cursa CTS"
+
+#: qcsrc/common/mapinfo.qh:54
+msgid "Team Deathmatch"
+msgstr "Meciul Mortii (in echipa)"
+
+#: qcsrc/common/mapinfo.qh:57
+msgid "Capture the Flag"
+msgstr "Captureaza Steagul"
+
+#: qcsrc/common/mapinfo.qh:60
+msgid "Clan Arena"
+msgstr "Clan Arena"
+
+#: qcsrc/common/mapinfo.qh:63
+msgid "Domination"
+msgstr "Dominatie"
+
+#: qcsrc/common/mapinfo.qh:66
+msgid "Key Hunt"
+msgstr "Vanatoarea Cheilor"
+
+#: qcsrc/common/mapinfo.qh:69
+msgid "Assault"
+msgstr "Asalt"
+
+#: qcsrc/common/mapinfo.qh:72
+msgid "Onslaught"
+msgstr "Onslaught"
+
+#: qcsrc/common/mapinfo.qh:75
+msgid "Nexball"
+msgstr "Nexball"
+
+#: qcsrc/common/mapinfo.qh:78
+msgid "Freeze Tag"
+msgstr "Inghet"
+
+#: qcsrc/common/mapinfo.qh:81
+msgid "Keepaway"
+msgstr "Keepaway"
+
+#: qcsrc/menu/command/menu_cmd.qc:41
 #, c-format
 msgid "error: status is %d\n"
 msgstr "eroare: statusul este %d\n"
 
-#: qcsrc/menu/gamecommand.qc:65
+#: qcsrc/menu/command/menu_cmd.qc:64
 msgid "Usage: menu_cmd command..., where possible commands are:\n"
 msgstr "Utilizare: menu_cmd comanda..., unde comenzile posibile sunt:\n"
 
-#: qcsrc/menu/gamecommand.qc:66
+#: qcsrc/menu/command/menu_cmd.qc:65
 msgid "  sync - reloads all cvars on the current menu page\n"
 msgstr "  sync - reincarca toate variabilele de pe pagina de meniu curenta\n"
 
-#: qcsrc/menu/gamecommand.qc:67
+#: qcsrc/menu/command/menu_cmd.qc:66
 msgid "  directmenu ITEM - select a menu item as main item\n"
 msgstr ""
 "  directmenu OBIECT - selecteaza un obiect din meniu ca obiect principal\n"
 
-#: qcsrc/menu/gamecommand.qc:193
+#: qcsrc/menu/command/menu_cmd.qc:179
 msgid "error creating curl handle\n"
 msgstr "eroare in crearea unei manevre curl"
 
-#: qcsrc/menu/gamecommand.qc:239
+#: qcsrc/menu/command/menu_cmd.qc:186
 msgid "Invalid command. For a list of supported commands, try menu_cmd help.\n"
 msgstr ""
 "Comanda invalida. Pentru o lista cu comenzile suportate, scrieti menu_cmd "
@@ -72,17 +141,17 @@ msgstr "%d (%s)"
 msgid "custom"
 msgstr "personalizat"
 
-#: qcsrc/menu/menu.qc:29
+#: qcsrc/menu/menu.qc:37
 #, c-format
 msgid "^4MQC Build information: ^1%s\n"
 msgstr "^4MQC Informatii compilare: %s\n"
 
-#: qcsrc/menu/xonotic/campaign.c:284
-#: qcsrc/menu/xonotic/dialog_singleplayer.c:134
+#: qcsrc/menu/xonotic/campaign.c:288
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:123
 msgid "???"
 msgstr "???"
 
-#: qcsrc/menu/xonotic/campaign.c:285
+#: qcsrc/menu/xonotic/campaign.c:289
 #, c-format
 msgid "Level %d: %s"
 msgstr "Nivelul %d: %s"
@@ -113,10 +182,14 @@ msgstr "Credite"
 
 #: 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:57
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:61
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:277
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:91
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:96
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:56
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:113
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:74
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:89
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:73
 #: qcsrc/menu/xonotic/dialog_singleplayer_winner.c:21
 msgid "OK"
 msgstr "OK"
@@ -125,7 +198,7 @@ msgstr "OK"
 msgid "Welcome"
 msgstr "Bun venit"
 
-#: qcsrc/menu/xonotic/dialog_firstrun.c:33
+#: qcsrc/menu/xonotic/dialog_firstrun.c:40
 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 "
@@ -135,18 +208,34 @@ msgstr ""
 "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
-msgid "Text language:"
-msgstr "Limba text:"
-
-#: qcsrc/menu/xonotic/dialog_firstrun.c:47
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:40
+#: qcsrc/menu/xonotic/dialog_firstrun.c:46
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:37
 #: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:39
 msgid "Name:"
 msgstr "Nume:"
 
-#: qcsrc/menu/xonotic/dialog_firstrun.c:69
+#: qcsrc/menu/xonotic/dialog_firstrun.c:68
+#: qcsrc/menu/xonotic/dialog_settings_user.c:65
+msgid "Text language:"
+msgstr "Limba text:"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:77
+msgid "Allow player statistics to use your nickname at stats.xonotic.org?"
+msgstr "Permite statisticilor sa foloseasca numele tau pe stats.xonotic.org?"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:81
+msgid "ALWU2N^Yes"
+msgstr "ALWU2N^Da"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:82
+msgid "ALWU2N^No"
+msgstr "ALWU2N^Nu"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:83
+msgid "ALWU2N^Undecided"
+msgstr "ALWU2N^Nedecis"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:87
 msgid "Save settings"
 msgstr "Salvare setari"
 
@@ -205,7 +294,7 @@ msgid "Text alignment:"
 msgstr "Aliniere text:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_centerprint.c:37
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:50
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:51
 msgid "Center"
 msgstr "Centru:"
 
@@ -349,12 +438,12 @@ msgid "Status bar"
 msgstr "Bara statut"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:33
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:48
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:49
 msgid "Left align"
 msgstr "Aliniere stanga"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:34
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:52
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:53
 msgid "Right align"
 msgstr "Aliniere dreapta"
 
@@ -371,6 +460,7 @@ msgid "Flip speed/acceleration positions"
 msgstr "Inversare pozitie viteza/acceleratie"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:44
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:29
 msgid "Speed:"
 msgstr "Viteza:"
 
@@ -462,8 +552,8 @@ 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:154
-#: qcsrc/menu/xonotic/util.qc:600
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:66
+#: qcsrc/menu/xonotic/util.qc:655
 msgid "Alpha:"
 msgstr "Opacitate:"
 
@@ -492,6 +582,7 @@ msgid "North"
 msgstr "Nord"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:46
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:61
 msgid "Scale:"
 msgstr "Marime:"
 
@@ -568,7 +659,6 @@ msgid "Fade out after:"
 msgstr "Atenuare opacitate dupa:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:26
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:36
 msgid "Never"
 msgstr "Niciodata"
 
@@ -602,34 +692,38 @@ msgid "Weapon icons:"
 msgstr "Iconuri arme:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:45
+msgid "Show only owned weapons"
+msgstr "Afiseaza numai armele detinute"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:48
 msgid "Show weapon ID as:"
 msgstr "Afisaj ID arme ca:"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:46
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:49
 msgid "SHOWAS^None"
 msgstr "Nici una"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:47
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:50
 msgid "Number"
 msgstr "Numar"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:48
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:51
 msgid "Bind"
 msgstr "Tasta"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:51
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:54
 msgid "Show Accuracy"
 msgstr "Afisaj Acuratete"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:52
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:55
 msgid "Show Ammo"
 msgstr "Afisaj Munitie"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:55
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:58
 msgid "Ammo bar color:"
 msgstr "Culoare bara munitie:"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:61
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:64
 msgid "Ammo bar alpha:"
 msgstr "Opacitate bara munitie:"
 
@@ -641,24 +735,24 @@ msgstr "Configurate Interfata (HUD)"
 msgid "Panel background defaults:"
 msgstr "Setari normale fond:"
 
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:23 qcsrc/menu/xonotic/util.qc:575
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:23 qcsrc/menu/xonotic/util.qc:630
 msgid "Background:"
 msgstr "Fundal:"
 
 #: 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:578
-#: qcsrc/menu/xonotic/util.qc:594 qcsrc/menu/xonotic/util.qc:611
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:91 qcsrc/menu/xonotic/util.qc:633
+#: qcsrc/menu/xonotic/util.qc:649 qcsrc/menu/xonotic/util.qc:666
 msgid "Disable"
 msgstr "Dezactivat"
 
 #: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:30
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:77 qcsrc/menu/xonotic/util.qc:583
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:77 qcsrc/menu/xonotic/util.qc:638
 msgid "Color:"
 msgstr "Culoare:"
 
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:35 qcsrc/menu/xonotic/util.qc:591
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:35 qcsrc/menu/xonotic/util.qc:646
 msgid "Border size:"
 msgstr "Marime borduri:"
 
@@ -667,11 +761,11 @@ msgstr "Marime borduri:"
 msgid "Team color:"
 msgstr "Culoare echipa:"
 
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:58 qcsrc/menu/xonotic/util.qc:617
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:58 qcsrc/menu/xonotic/util.qc:672
 msgid "Test team color in configure mode"
 msgstr "Testare culoare echipa in timpul configurarii"
 
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:61 qcsrc/menu/xonotic/util.qc:620
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:61 qcsrc/menu/xonotic/util.qc:675
 msgid "Padding:"
 msgstr "Ajustare:"
 
@@ -745,127 +839,123 @@ msgstr "Setari Jucator"
 msgid "Game type:"
 msgstr "Mod joc:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:46
-msgid "Match settings:"
-msgstr "Setari meci:"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:49
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:48
 msgid "Time limit:"
 msgstr "Limita de timp:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:53
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:61
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:52
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:60
 msgid "Use map specified default"
 msgstr "Utilizare setari harta"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:56
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:55
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:154
 #: qcsrc/menu/xonotic/dialog_multiplayer_create.c:155
 #: qcsrc/menu/xonotic/dialog_multiplayer_create.c:156
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:157
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:160
 #: qcsrc/menu/xonotic/dialog_multiplayer_create.c:161
 #: qcsrc/menu/xonotic/dialog_multiplayer_create.c:162
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:163
 msgid "Point limit:"
 msgstr "Limita de puncte:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:64
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:63
 msgid "Player slots:"
 msgstr "Numar maxim jucatori:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:67
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:66
 msgid "Number of bots:"
 msgstr "Numar boti:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:71
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:69
 msgid "Bot skill:"
 msgstr "Dificultate boti:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:74
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:72
 msgid "Botlike"
 msgstr "Nula"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:75
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:73
 msgid "Beginner"
 msgstr "Incepator"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:76
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:74
 msgid "You will win"
 msgstr "Vei castiga"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:77
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:75
 msgid "You can win"
 msgstr "Poti castiga"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:78
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:76
 msgid "You might win"
 msgstr "Ai putea castiga"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:79
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:77
 msgid "Advanced"
 msgstr "Avansat"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:80
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:78
 msgid "Expert"
 msgstr "Expert"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:81
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:79
 msgid "Pro"
 msgstr "Profesional"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:82
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:80
 msgid "Assassin"
 msgstr "Asasin"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:83
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:81
 msgid "Unhuman"
 msgstr "Inuman"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:84
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:82
 msgid "Godlike"
 msgstr "Dumnezeiesc"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:88
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:87
 msgid "Mutators..."
 msgstr "Modificari speciale..."
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:97
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:57
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:96
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:145
 msgid "Advanced settings..."
 msgstr "Setari avansate..."
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:104
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:103
 msgid "Map list:"
 msgstr "Lista harti:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:110
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:109
 msgid "Select all"
 msgstr "Selecteaza totul"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:113
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:112
 msgid "Select none"
 msgstr "Golire selectie"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:119
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:118
 msgid "Start Multiplayer!"
 msgstr "Pornire Joc Multiplayer!"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:154
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:153
 msgid "Capture limit:"
 msgstr "Limita de capturi:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:158
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:157
 msgid "Lives:"
 msgstr "Vieti:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:159
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:158
 msgid "Laps:"
 msgstr "Ture:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:160
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:159
 msgid "Goals:"
 msgstr "Goluri:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:164
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:163
 msgid "Frag limit:"
 msgstr "Limita de omoruri:"
 
@@ -969,28 +1059,28 @@ msgstr "Plasare obiecte"
 msgid "MinstaGib only"
 msgstr "Numai MinstaGib"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:78
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:81
 msgid "Title:"
 msgstr "Titlu:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:84
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:87
 msgid "Author:"
 msgstr "Autor:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:90
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:93
 msgid "Features:"
 msgstr "Trasaturi:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:95
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:98
 msgid "Game types:"
 msgstr "Moduri de joc:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:118
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:314
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:121
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:335
 msgid "Close"
 msgstr "Inchidere"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:121
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:124
 msgid "MAP^Play"
 msgstr "Joaca"
 
@@ -1012,108 +1102,121 @@ msgid "%s Arena"
 msgstr "Arena %s"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:68
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:167
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:173
 msgid "Dodging"
 msgstr "Satiruta laterala"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:70
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:250
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:258
 msgid "MinstaGib"
 msgstr "MinstaGib"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:72
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:253
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:261
 msgid "NIX"
 msgstr "NIX"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:74
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:205
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:213
 msgid "Rocket Flying"
 msgstr "Zbor Rachete"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:78
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:264
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:76
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:210
+msgid "Invincible Projectiles"
+msgstr "Proiectile Invizibile"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:80
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:272
 msgid "No start weapons"
 msgstr "Fara arme initiale"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:80
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:189
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:82
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:195
 msgid "Low gravity"
 msgstr "Gravitatie scazuta"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:82
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:170
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:84
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:176
 msgid "Cloaked"
 msgstr "Jucatori transparenti"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:84
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:86
 msgid "Hook"
 msgstr "Carlig"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:86
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:173
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:88
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:179
 msgid "Midair"
 msgstr "Lovituri in aer"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:88
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:176
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:90
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:182
 msgid "Vampire"
 msgstr "Vampir"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:90
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:208
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:92
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:216
 msgid "Piñata"
 msgstr "Piñata"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:92
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:211
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:94
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:219
 msgid "Weapons stay"
 msgstr "Arme persistente"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:94
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:180
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:96
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:186
 msgid "Blood loss"
 msgstr "Pierdere de sange"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:96
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:202
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:98
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:207
 msgid "Jet pack"
 msgstr "Reactie"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:98
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:100
+msgid "No powerups"
+msgstr "Fara powerupuri"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:102
+msgid "Powerups"
+msgstr "Powerupuri"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:104
 msgid "MUT^None"
 msgstr "Nici una"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:164
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:170
 msgid "Gameplay mutators:"
 msgstr "Modificari speciale joc:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:196
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:201
 msgid "Weapon & item mutators:"
 msgstr "Modificari speciale arme si obiecte:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:199
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:204
 msgid "Grappling hook"
 msgstr "Carlig"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:215
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:223
 msgid "Weapon arenas:"
 msgstr "Arene arme:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:218
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:226
 msgid "Regular (no arena)"
 msgstr "Normal (fara arene)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:239
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:256
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:247
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:264
 msgid "with laser"
 msgstr "cu arma laser"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:247
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:255
 msgid "Special arenas:"
 msgstr "Arene speciale:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:260
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:268
 msgid "Most weapons"
 msgstr "Majoritatea armelor"
 
@@ -1122,26 +1225,26 @@ msgid "Demo"
 msgstr "Demonstratie"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:28
-msgid "Record demos while playing"
+msgid "Automatically record demos while playing"
 msgstr "Creare demonstratii in timpul jocului"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:32
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:31
 #: qcsrc/menu/xonotic/dialog_multiplayer_join.c:28
 msgid "Filter:"
 msgstr "Filtrare:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:33
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:32
 #: 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
+#: qcsrc/menu/xonotic/dialog_settings_input.c:40
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:32
 msgid "Clear"
 msgstr "Curatare"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:43
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:45
 msgid "Timedemo"
 msgstr "Timedemo"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:46
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:48
 msgid "DEMO^Play"
 msgstr "Vizualizare"
 
@@ -1162,6 +1265,7 @@ msgid "Pause"
 msgstr "Pauza"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join.c:56
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:262
 msgid "Address:"
 msgstr "Adresa:"
 
@@ -1170,7 +1274,7 @@ msgid "Info..."
 msgstr "Informatii..."
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join.c:72
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:317
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:342
 msgid "Join!"
 msgstr "Alaturare!"
 
@@ -1178,307 +1282,494 @@ msgstr "Alaturare!"
 msgid "Server Information"
 msgstr "Informatii Server"
 
-#: 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
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:132
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:133
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:242
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:247
 msgid "N/A"
 msgstr "N/A"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:158
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:179
 #, c-format
-msgid "%d/%d, %d free player slots"
-msgstr "%d/%d, %d locuri disponibile"
+msgid "%d/%d"
+msgstr "%d/%d"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:193
+#: qcsrc/menu/xonotic/util.qc:632 qcsrc/menu/xonotic/util.qc:648
+#: qcsrc/menu/xonotic/util.qc:657 qcsrc/menu/xonotic/util.qc:665
+#: qcsrc/menu/xonotic/util.qc:677
+msgid "Default"
+msgstr "Setare normala"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:172
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:200
 #, c-format
-msgid "%d modified settings"
-msgstr "%d setari modificate"
+msgid "%d modified"
+msgstr "%d modificate"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:172
-msgid "Official settings"
-msgstr "Setarile oficiale"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:200
+msgid "Official"
+msgstr "Oficial"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:197
-msgid "N/A (can't connect)"
-msgstr "N/A (nu se poate conecta)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:208
+msgid "N/A (auth library missing, can't connect)"
+msgstr "N/A (libraria de autentificare lipseste, conectiune imposibila)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:205
-msgid "not supported (can't connect)"
-msgstr "nesuportat (nu se poate conecta)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:210
+msgid "N/A (auth library missing)"
+msgstr "N/A (libraria de autentificare lipseste)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:207
-msgid "not supported (won't encrypt)"
-msgstr "nesuportat (nu se poate encripta)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:216
+msgid "Not supported (can't connect)"
+msgstr "Nesuportat (nu se poate conecta)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:211
-msgid "supported (will encrypt)"
-msgstr "suportat (se va encripta)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:218
+msgid "Not supported (won't encrypt)"
+msgstr "Nesuportat (nu se poate encripta)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:213
-msgid "supported (won't encrypt)"
-msgstr "suportat (nu se va encripta)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:222
+msgid "Supported (will encrypt)"
+msgstr "Suportat (se va encripta)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:217
-msgid "requested (will encrypt)"
-msgstr "cerut (se va encripta)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:224
+msgid "Supported (won't encrypt)"
+msgstr "Suportat (nu se va encripta)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:219
-msgid "requested (won't encrypt)"
-msgstr "cerut (nu se va encripta)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:228
+msgid "Requested (will encrypt)"
+msgstr "Necesar (se va encripta)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:223
-msgid "required (can't connect)"
-msgstr "necesar (nu se poate conecta)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:230
+msgid "Requested (won't encrypt)"
+msgstr "Necesar (nu se va encripta)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:225
-msgid "required (will encrypt)"
-msgstr "necesar (se va encripta)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:234
+msgid "Required (can't connect)"
+msgstr "Necesar (nu se poate conecta)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:246
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:269
-msgid "Players:"
-msgstr "Jucatori:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:236
+msgid "Required (will encrypt)"
+msgstr "Necesar (se va encripta)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:254
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:38
-msgid "Type:"
-msgstr "Tip:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:256
+msgid "Hostname:"
+msgstr "Nume server:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:259
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:270
+msgid "Gametype:"
+msgstr "Mod joc:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:275
 msgid "Map:"
 msgstr "Harta:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:264
-msgid "Gameplay:"
-msgstr "Mod:"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:274
-msgid "Bots:"
-msgstr "Boti:"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:279
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:280
 msgid "Mod:"
 msgstr "Modificare:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:284
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:285
 msgid "Version:"
 msgstr "Versiune:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:289
-msgid "Ping:"
-msgstr "Latenta:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:290
+msgid "Settings:"
+msgstr "Setari:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:295
-msgid "CA:"
-msgstr "CA:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:297
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:329
+msgid "Players:"
+msgstr "Jucatori:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:301
-msgid "Key:"
-msgstr "Cheie:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:302
+msgid "Bots:"
+msgstr "Boti:"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:307
+msgid "Free slots:"
+msgstr "Numar maxim jucatori:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:313
 msgid "Encryption:"
 msgstr "Encriptare:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:63
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:318
+msgid "ID:"
+msgstr "ID:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:323
+msgid "Key:"
+msgstr "Cheie:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:60
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:19
 msgid "Model:"
 msgstr "Model:"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:88
-msgid "Field of view:"
-msgstr "Camp vizual:"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:92
-msgid "View bobbing:"
-msgstr "Miscare camera mers:"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:96
-msgid "Zoom factor:"
-msgstr "Factor Zoom:"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:100
-msgid "Zoom speed:"
-msgstr "Viteza Zoom:"
+msgid "No crosshair"
+msgstr "Fara ochian"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:103
-msgid "Weapon settings..."
-msgstr "Setari arme..."
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:90
+msgid "Per weapon crosshair"
+msgstr "Ochianul depinde de arma"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:110
-msgid "Crosshair:"
-msgstr "Ochian:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:93
+msgid "Custom crosshair"
+msgstr "Ochian customizat"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:111
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:139
-msgid "Per weapon"
-msgstr "Depinde de arma"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:130
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:112
 msgid "Crosshair size:"
 msgstr "Marime ochian:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:134
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:117
 msgid "Crosshair alpha:"
 msgstr "Opacitate ochian:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:138
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:123
 msgid "Crosshair color:"
 msgstr "Culoare ochian:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:140
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:125
+msgid "Per weapon"
+msgstr "Depinde de arma"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:127
 msgid "By health"
 msgstr "Dupa sanatate"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:143
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:131
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:47
 msgid "Custom"
 msgstr "personalizat"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:148
-msgid "Enable center dot"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:139
+msgid "Other crosshair settings"
+msgstr "Alte setari ochian"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:147
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:6
+msgid "Model settings"
+msgstr "Setari model"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:153
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:6
+msgid "View settings"
+msgstr "Setari vedere"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:159
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:6
+msgid "Weapon settings"
+msgstr "Setari arme"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:169
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:6
+msgid "HUD settings"
+msgstr "Setari HUD"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:175
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:203
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:185
+#: qcsrc/menu/xonotic/dialog_settings_input.c:89
+#: qcsrc/menu/xonotic/dialog_settings_user.c:88
+#: qcsrc/menu/xonotic/dialog_settings_video.c:142
+msgid "Apply immediately"
+msgstr "Aplica imediat"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:6
+msgid "Crosshair settings"
+msgstr "Setari ochian"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:28
+msgid "Enable center crosshair dot"
 msgstr "Utilizare punct ochian"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:151
-msgid "Size:"
-msgstr "Marime:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:31
+msgid "Dot size:"
+msgstr "Marime punct:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:158
-msgid "Hit test:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:36
+msgid "Dot alpha:"
+msgstr "Opacitate punct:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:41
+msgid "Dot color:"
+msgstr "Culoare punct:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:43
+msgid "Use normal crosshair color"
+msgstr "Folosire culoarea normala ochian"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:54
+msgid "Crosshair animations:"
+msgstr "Animatii ochian:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:57
+msgid "Smooth effects of crosshairs"
+msgstr "Tranzitie efecte ochian"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:61
+msgid "Use rings to indicate weapon status"
+msgstr "Foloseste inele pentru a indica statutul armei"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:67
+msgid "Hit testing:"
 msgstr "Detectare tinta:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:159
-msgid "HTST^None"
-msgstr "Nici una"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:69
+msgid "HTTST^Disabled"
+msgstr "HTTST^Dezactivat"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:160
-msgid "TrueAim"
-msgstr "TrueAim"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:70
+msgid "HTTST^TrueAim"
+msgstr "HTTST^TrueAim"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:161
-msgid "Enemies"
-msgstr "Dusmani"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:71
+msgid "HTTST^Enemies"
+msgstr "HTTST^Dusmani"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:164
-msgid "Waypoints setup..."
-msgstr "Setari indicatoare..."
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:76
+msgid "Blur crosshair if the shot is obstructed"
+msgstr "Blureaza ochianul daca lovitura este obstructionata"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:169
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:81
+msgid "Animate when hitting an enemy"
+msgstr "Animeaza cand lovesti un dusman"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:85
+msgid "Animate when picking up an item"
+msgstr "Animeaza cand ridici un obiect"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:40
+msgid "Damage:"
+msgstr "Ranire:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:43
+msgid "Overlay:"
+msgstr "Suprapunere:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:47
+msgid "Factor:"
+msgstr "Factor:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:52
+msgid "Fade rate:"
+msgstr "Durata atenuare:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:58
+msgid "Waypoints"
+msgstr "Indicatoare"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:71
+msgid "Edge offset:"
+msgstr "Distantare margine:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:80
+msgid "Show names above players"
+msgstr "Afiseaza numele deasupra jucatorilor"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:83
+msgid "Only when near crosshair"
+msgstr "Numai langa ochian"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:86
+msgid "Display health and armor"
+msgstr "Afiseaza viata si armura"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:90
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hudconfirm.c:4
 msgid "Enter HUD editor"
 msgstr "Editor interfata"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:174
-msgid "Force models:"
-msgstr "Modele jucator fortate:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hudconfirm.c:28
+msgid "In order for the HUD editor to show, you must first be in game."
+msgstr "Pentru ca editorul HUD sa mearga, trebuie sa te afli intr-un joc."
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:175
-msgid "MDL^None"
-msgstr "Nici una"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hudconfirm.c:30
+msgid "Do you wish to start a local game to set up the HUD?"
+msgstr "Doresti sa pornesti un joc local pentru configurare HUD?"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:176
-msgid "MDL^Custom"
-msgstr "Personalizat"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hudconfirm.c:33
+msgid "HDCNFRM^Yes"
+msgstr "HDCNFRM^Da"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:177
-msgid "MDL^All"
-msgstr "Toate"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hudconfirm.c:36
+msgid "HDCNFRM^No"
+msgstr "HDCNFRM^Nu"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:180
-msgid "Disable gore effects"
-msgstr "Dezactivare efecte violente"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:28
+msgid "Body fading:"
+msgstr "Atenuare corpuri:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:182
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:31
 msgid "Gibs:"
 msgstr "Cotlete:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:184
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:33
 msgid "GIBS^None"
 msgstr "Nici unul"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:185
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:34
 msgid "GIBS^Few"
 msgstr "Putine"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:186
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:35
 msgid "GIBS^Many"
 msgstr "Multe"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:187
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:36
 msgid "GIBS^Lots"
 msgstr "Foarte multe"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:191
-msgid "Damage splash:"
-msgstr "Efect ranire:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:40
+msgid "Playermodel LOD:"
+msgstr "Nivel De Detaliu jucatori:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:195
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:173
-#: 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:109
-msgid "Apply immediately"
-msgstr "Aplica imediat"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:44
+msgid "Force models:"
+msgstr "Modele jucator fortate:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:5
-msgid "Waypoints"
-msgstr "Indicatoare"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:45
+msgid "MDL^None"
+msgstr "Nici una"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:23
-msgid "Show base waypoints"
-msgstr "Afisaj indicatoare de baza"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:46
+msgid "MDL^Custom"
+msgstr "Personalizat"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:25
-msgid "Waypoint scale:"
-msgstr "Marime indicatoare:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:47
+msgid "MDL^All"
+msgstr "Toate"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:29
-msgid "Waypoint alpha:"
-msgstr "Opacitate indicatoare:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:50
+msgid "Force player models to mine"
+msgstr "Inlocuieste culorile jucatorilor cu ale mele"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:34
-msgid "Show names:"
-msgstr "Afisaj nume:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:52
+msgid "Force player colors to mine"
+msgstr "Inlocuieste culorile jucatorilor cu ale mele"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:37
-msgid "Teammates"
-msgstr "Coechipieri"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:28
+msgid "Field of view:"
+msgstr "Camp vizual:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:38
-msgid "All players"
-msgstr "Toti jucatorii"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:31
+msgid "Zoom:"
+msgstr "Zoom:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:6
-msgid "Weapon settings"
-msgstr "Setari arme"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:33
+msgid "RETICLE^Fullscreen"
+msgstr "RETICLE^Ecran plin"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:29
-msgid "Weapon priority list:"
-msgstr "Lista prioritate arme:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:34
+msgid "RETICLE^With reticle"
+msgstr "RETICLE^Cu ochian"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:34
-msgid "Up"
-msgstr "Sus"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:38
+msgid "ZOOM^Factor:"
+msgstr "ZOOM^Factor:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:37
-msgid "Down"
-msgstr "Jos"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:42
+msgid "ZOOM^Speed:"
+msgstr "ZOOM^Viteza:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:41
-msgid "Use priority list for weapon cycling"
-msgstr "Utilizare lista pentru selectarea armelor"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:52
+msgid "ZOOM^Instant"
+msgstr "ZOOM^Instant"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:43
-msgid "Auto switch weapons on pickup"
-msgstr "Selectare automata a armelor obtinute"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:56
+msgid "ZOOM^Sensitivity:"
+msgstr "ZOOM^Sensitivitate:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:45
-msgid "Draw 1st person weapon model"
-msgstr "Afisaj model 1st person"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:59
+msgid "Velocity zoom:"
+msgstr "Zoom viteza:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:55
-msgid "Flip view horizontally"
-msgstr "Oglindire orizontala ecran"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:61
+msgid "VZOOM^Disabled"
+msgstr "VZOOM^Dezactivat"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:62
+msgid "VZOOM^Forward only"
+msgstr "VZOOM^Numai inainte"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:63
+msgid "VZOOM^All directions"
+msgstr "VZOOM^Toate directiile"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:67
+msgid "VZOOM^Speed"
+msgstr "VZOOM^Viteza"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:72
+msgid "Allow passing through walls while spectating"
+msgstr "Permite trecerea prin pereti ca spectator"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:75
+msgid "1st person perspective"
+msgstr "Perspectiva 1st person"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:79
+msgid "Smooth the view when landing from a jump"
+msgstr "Efect tranzitie camera pentru aterizare"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:83
+msgid "Smooth the view while crouching"
+msgstr "Efect tranzitie camera pentru sedere"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:87
+msgid "View waving while idle"
+msgstr "Rotatie ambienta camera"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:91
+msgid "View bobbing while walking around"
+msgstr "Miscare camera in timpul mersului"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:96
+msgid "3rd person perspective"
+msgstr "Perspectiva 3rd person"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:100
+msgid "Back distance"
+msgstr "Distanta in spate"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:106
+msgid "Up distance"
+msgstr "Distanta in sus"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:29
+msgid "Weapon priority list:"
+msgstr "Lista prioritate arme:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:33
+msgid "Up"
+msgstr "Sus"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:36
+msgid "Down"
+msgstr "Jos"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:41
+msgid "Use priority list for weapon cycling"
+msgstr "Utilizare lista pentru selectarea armelor"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:43
+msgid "Auto switch weapons on pickup"
+msgstr "Selectare automata a armelor obtinute"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:46
+msgid "Draw 1st person weapon model"
+msgstr "Afisaj model 1st person"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:58
+msgid "Gun model swaying"
+msgstr "Miscare model arma"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:63
+msgid "Gun model bobbing"
+msgstr "Miscare model arma"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:68
+msgid "VWMDL^Scale"
+msgstr "VWMDL^Marime"
 
 #: qcsrc/menu/xonotic/dialog_news.c:4
 msgid "News"
@@ -1492,18 +1783,146 @@ msgstr "http://www.xonotic.org/team/blog/"
 msgid "Quit"
 msgstr "Iesire"
 
-#: qcsrc/menu/xonotic/dialog_quit.c:17
+#: qcsrc/menu/xonotic/dialog_quit.c:18
 msgid "Are you sure you want to quit?"
 msgstr "Sunteti sigur ca vreti sa iesiti?"
 
-#: qcsrc/menu/xonotic/dialog_quit.c:20
+#: qcsrc/menu/xonotic/dialog_quit.c:21
 msgid "Yes"
 msgstr "Da"
 
-#: qcsrc/menu/xonotic/dialog_quit.c:21
+#: qcsrc/menu/xonotic/dialog_quit.c:22
 msgid "No"
 msgstr "Nu"
 
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:4
+msgid "Sandbox Tools"
+msgstr "Utilitati Sandbox"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:24
+msgid "Spawn"
+msgstr "Creaza"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:25
+msgid "Remove *"
+msgstr "Sterge *"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:27
+msgid "Copy *"
+msgstr "Copiaza *"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:28
+msgid "Paste"
+msgstr "Creaza copie"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:30
+msgid "Bone:"
+msgstr "Os:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:35
+msgid "Set * as child"
+msgstr "Marcheaza * ca atasament"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:36
+msgid "Attach to *"
+msgstr "Atasaza pe *"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:38
+msgid "Detach from *"
+msgstr "Detaseaza de pe *"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:41
+msgid "Visual object properties for *:"
+msgstr "Propietati vizuale pentru *:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:43
+msgid "Set skin:"
+msgstr "Seteaza skin:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:45
+msgid "Set alpha:"
+msgstr "Seteaza opacitate:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:48
+msgid "Set color main:"
+msgstr "Seteaza culoare principala:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:50
+msgid "Set color glow:"
+msgstr "Seteaza culoare stralucire:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:54
+msgid "Set frame:"
+msgstr "Setare animatie:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:58
+msgid "Physical object properties for *:"
+msgstr "Proprietati fizice pentru *:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:60
+msgid "Set material:"
+msgstr "Setare material:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:66
+msgid "Set solidity:"
+msgstr "Seteaza soliditate:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:67
+msgid "Non-solid"
+msgstr "Non-solid"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:68
+msgid "Solid"
+msgstr "Solid"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:69
+msgid "Set physics:"
+msgstr "Setare fizici:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:70
+msgid "Static"
+msgstr "Static"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:71
+msgid "Movable"
+msgstr "Poate fi mutat"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:72
+msgid "Physical"
+msgstr "Fizic"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:74
+msgid "Set scale:"
+msgstr "Seteaza marime:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:76
+msgid "Set force:"
+msgstr "Setare forta:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:80
+msgid "Claim *"
+msgstr "Clameaza *"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:82
+msgid "* object info"
+msgstr "Informatii obiect *"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:83
+msgid "* mesh info"
+msgstr "Informatii model *"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:84
+msgid "* attachment info"
+msgstr "Informatii atasamente *"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:85
+msgid "Show help"
+msgstr "Afisaj ajutor"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:86
+msgid "* is the object you are facing"
+msgstr "* este obiectul la care te uiti"
+
 #: qcsrc/menu/xonotic/dialog_settings.c:4
 msgid "Settings"
 msgstr "Setari"
@@ -1529,9 +1948,9 @@ msgid "Audio"
 msgstr "Audio"
 
 #: qcsrc/menu/xonotic/dialog_settings.c:22
-#: qcsrc/menu/xonotic/dialog_settings_network.c:4
-msgid "Network"
-msgstr "Retea"
+#: qcsrc/menu/xonotic/dialog_settings_user.c:4
+msgid "User"
+msgstr "Utilizator"
 
 #: qcsrc/menu/xonotic/dialog_settings.c:23
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:4
@@ -1542,194 +1961,170 @@ msgstr "Altele"
 msgid "Master:"
 msgstr "General:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:33
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:35
 msgid "Music:"
 msgstr "Muzica:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:41
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:45
 msgid "VOL^Ambient:"
 msgstr "Ambianta:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:48
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:54
 msgid "Info:"
 msgstr "Informatii:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:55
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:63
 msgid "Items:"
 msgstr "Obiecte:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:62
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:72
 msgid "Pain:"
 msgstr "Durere:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:69
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:81
 msgid "Player:"
 msgstr "Jucator:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:76
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:90
 msgid "Shots:"
 msgstr "Focuri de arma:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:83
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:99
 msgid "Voice:"
 msgstr "Voci:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:91
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:109
 msgid "Weapons:"
 msgstr "Arme:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:98
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:156
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:117
+msgid "New style sound attenuation"
+msgstr "Atenuare sonora in stil nou"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:119
+msgid "Mute sounds when not active"
+msgstr "Amuteste sonorul cand fereastra nu e activa"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:122
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:194
 msgid "Frequency:"
 msgstr "Frecventa:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:100
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:124
 msgid "8 kHz"
 msgstr "8 kHz"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:101
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:125
 msgid "11.025 kHz"
 msgstr "11.025 kHz"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:102
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:126
 msgid "16 kHz"
 msgstr "16 kHz"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:103
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:127
 msgid "22.05 kHz"
 msgstr "22.05 kHz"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:104
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:128
 msgid "24 kHz"
 msgstr "24 kHz"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:105
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:129
 msgid "32 kHz"
 msgstr "32 kHz"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:106
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:130
 msgid "44.1 kHz"
 msgstr "44.1 kHz"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:107
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:131
 msgid "48 kHz"
 msgstr "48 kHz"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:110
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:134
 msgid "Channels:"
 msgstr "Canale:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:112
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:136
 msgid "Mono"
 msgstr "Mono"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:113
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:137
 msgid "Stereo"
 msgstr "Stereo"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:114
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:138
 msgid "2.1"
 msgstr "2.1"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:115
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:139
 msgid "4"
 msgstr "4"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:116
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:140
 msgid "5"
 msgstr "5"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:117
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:141
 msgid "5.1"
 msgstr "5.1"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:118
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:142
 msgid "6.1"
 msgstr "6.1"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:119
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:143
 msgid "7.1"
 msgstr "7.1"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:123
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:146
 msgid "Swap Stereo"
 msgstr "Inversare canale stereo"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:127
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:148
 msgid "Headphone friendly mode"
 msgstr "Mod casti audio"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:131
-msgid "Spatial voices:"
-msgstr "Voci spatializate:"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:132
-msgid "VOCS^None"
-msgstr "Nici una"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:133
-msgid "VOCS^Taunts"
-msgstr "Glume"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:134
-msgid "VOCS^All"
-msgstr "Toate"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:137
-msgid "Taunt range:"
-msgstr "Distanta voci:"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:140
-msgid "RNG^Very short"
-msgstr "Foarte scurta"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:141
-msgid "RNG^Short"
-msgstr "Scurta"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:142
-msgid "RNG^Normal"
-msgstr "Normala"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:143
-msgid "RNG^Long"
-msgstr "Lunga"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:170
+msgid "Hit indication sound"
+msgstr "Indicator sonor lovituri"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:144
-msgid "RNG^Full"
-msgstr "Toate"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:172
+msgid "Chat message sound"
+msgstr "Indicator sonor chat:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:151
-msgid "Automatic taunts"
-msgstr "Glume automate"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:174
+msgid "Menu sounds"
+msgstr "Sunete meniu"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:160
-msgid "Time warning:"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:177
+msgid "Time announcer:"
 msgstr "Avertisment timp:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:162
-msgid "WRN^None"
-msgstr "Nici una"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:179
+msgid "WRN^Disabled"
+msgstr "WRN^Dezactivat"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:163
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:180
 msgid "1 minute"
 msgstr "1 minut"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:164
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:181
 msgid "5 minutes"
 msgstr "5 minute"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:165
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:182
 msgid "WRN^Both"
 msgstr "Ambele"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:168
-msgid "Hit indicator"
-msgstr "Indicator lovituri"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:189
+msgid "Automatic taunts"
+msgstr "Glume automate"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:170
-msgid "Menu sounds"
-msgstr "Sunete meniu"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:199
+msgid "Debug info about sounds"
+msgstr "Informatii debug despre sunete"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:38
 msgid "Quality preset:"
@@ -1792,230 +2187,226 @@ msgid "DET^Insane"
 msgstr "Extrem"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:62
-msgid "Antialiasing:"
-msgstr "Margini fine:"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:64
-msgid "AA^Disabled"
-msgstr "Dezactivat"
-
-#: 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 "Calitate texturi:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:73
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:65
 msgid "RES^Leet"
 msgstr "Minima"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:74
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:66
 msgid "RES^Lowest"
 msgstr "Cea mai joasa"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:75
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:67
+msgid "RES^Very low"
+msgstr "RES^Foarte jos"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:68
 msgid "RES^Low"
 msgstr "Joasa"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:76
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:69
 msgid "RES^Normal"
 msgstr "Normala"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:77
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:70
 msgid "RES^Good"
 msgstr "Ridicata"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:78
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:71
 msgid "RES^Best"
 msgstr "Cea mai ridicata"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:91
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:94
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:84
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:87
 msgid "Avoid lossy texture compression"
 msgstr "Evitare compresie rapida texturi"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:100
-msgid "Anisotropy:"
-msgstr "Filtrare anisotropica:"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:102
-msgid "ANISO^Disabled"
-msgstr "Dezactivat"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:93
+msgid "Use lightmaps"
+msgstr "Utilizare lightmap"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:105
-msgid "8x"
-msgstr "8x"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:94
+msgid "Deluxe mapping"
+msgstr "Texturi Deluxe"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:106
-msgid "16x"
-msgstr "16x"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:96
+msgid "Gloss"
+msgstr "Suprafete lucioase"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:110
-msgid "Particle quality:"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:100
+msgid "Particles quality:"
 msgstr "Calicate particule:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:113
-msgid "Particle distance:"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:103
+msgid "Particles distance:"
 msgstr "Distanta particule:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:117
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:106
+msgid "Damage effects:"
+msgstr "Efecte ranire:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:108
+msgid "DMGPRTCLS^Disabled"
+msgstr "DMGPRTCLS^Dezactivat"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:109
+msgid "DMGPRTCLS^Skeletal"
+msgstr "DMGPRTCLS^Skeletal"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:110
+msgid "DMGPRTCLS^All"
+msgstr "DMGPRTCLS^Toate"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:114
 msgid "Decals"
 msgstr "Semne"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:118
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:115
 msgid "Decals on models"
 msgstr "Semne pe modele"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:122
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:119
 msgid "Distance:"
 msgstr "Distanta:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:128
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:125
 msgid "Time:"
 msgstr "Durata:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:134
-msgid "Use lightmaps"
-msgstr "Utilizare lightmap"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:135
-msgid "Deluxe mapping"
-msgstr "Texturi Deluxe"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:137
-msgid "Gloss"
-msgstr "Suprafete lucioase"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:140
-msgid "Offset mapping"
-msgstr "Relief"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:142
-msgid "Relief mapping"
-msgstr "Detaliu relief"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:145
-msgid "Reflections:"
-msgstr "Reflectii:"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:148
-msgid "Blurred"
-msgstr "Blurate"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:149
-msgid "REFL^Good"
-msgstr "Bune"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:150
-msgid "Sharp"
-msgstr "Ascutite"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:131
+msgid "Coronas"
+msgstr "Coroane lumini"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:155
-msgid "Show surfaces"
-msgstr "Afisaj suprafete"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:132
+msgid "Use Occlusion Queries"
+msgstr "Utilizare Ocluzii"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:157
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:134
 msgid "No dynamic lighting"
 msgstr "Luminozitate dinamica dezactivata"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:159
-msgid "Flash blend approximation"
-msgstr "Luminozitate dinamica rapida"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:136
+msgid "Fake corona lighting"
+msgstr "Luminozitate falsa"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:161
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:138
 msgid "Realtime dynamic lighting"
 msgstr "Luminozitate dinamica in timp real"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:162
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:166
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:139
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:143
 msgid "Shadows"
 msgstr "Umbre"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:165
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:142
 msgid "Realtime world lighting"
 msgstr "Luminozitate ambienta in timp real"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:170
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:147
 msgid "Use normal maps"
 msgstr "Utilizare texturi normale"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:172
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:149
 msgid "Soft shadows"
 msgstr "Umbre fine"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:175
-msgid "Coronas"
-msgstr "Coroane lumini"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:153
+msgid "Show surfaces"
+msgstr "Afisaj suprafete"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:176
-msgid "Use Occlusion Queries"
-msgstr "Utilizare Ocluzii"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:155
+msgid "Offset mapping"
+msgstr "Relief"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:178
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:157
+msgid "Relief mapping"
+msgstr "Detaliu relief"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:159
+msgid "LOD"
+msgstr "Nivel De Detalui"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:162
 msgid "Bloom"
 msgstr "Luminozitate moale"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:180
-msgid "High Dynamic Range (HDR)"
-msgstr "Distanta Dinamica Inalta (HDR)"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:164
+msgid "Reflections:"
+msgstr "Reflectii:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:167
+msgid "Blurred"
+msgstr "Blurate"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:168
+msgid "REFL^Good"
+msgstr "Bune"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:169
+msgid "Sharp"
+msgstr "Ascutite"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:184
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:174
 msgid "Motion blur:"
 msgstr "Blurare viteza:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:189
-msgid "Blur and sharpen postprocessing"
-msgstr "Postprocesare blurare si ascutire"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:179
+msgid "Extra postprocessing effects"
+msgstr "Efecte post-procesare extra"
 
 #: qcsrc/menu/xonotic/dialog_settings_input.c:26
 msgid "Key bindings:"
 msgstr "Taste:"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:31
+#: qcsrc/menu/xonotic/dialog_settings_input.c:30
 msgid "Change key..."
 msgstr "Schimbare tasta..."
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:35
+#: qcsrc/menu/xonotic/dialog_settings_input.c:34
 msgid "Edit..."
 msgstr "Editare..."
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:46
-msgid "Sensitivity:"
-msgstr "Sensitivitate:"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:45
+msgid "Pressing \"enter console\" key also closes it"
+msgstr "\"enter console\" inchide deasemenea consola"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:47
+msgid "Automatically repeat jumping if holding jump"
+msgstr "Repeta saritura daca butonul de sarit este apasat"
 
 #: qcsrc/menu/xonotic/dialog_settings_input.c:51
-msgid "UI mouse speed:"
-msgstr "Viteza mouse in meniu:"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:53
+#: qcsrc/menu/xonotic/dialog_settings_input.c:56
+msgid "Use joystick input"
+msgstr "Utilizare joystick"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:55
-msgid "Mouse filter"
-msgstr "Filtrare mouse"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:61
+msgid "Mouse:"
+msgstr "Mouse:"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:57
-msgid "Invert mouse"
-msgstr "Inversare mouse"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:64
+msgid "Sensitivity:"
+msgstr "Sensitivitate:"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:60
-#: qcsrc/menu/xonotic/dialog_settings_input.c:62
-msgid "Use joystick input"
-msgstr "Utilizare joystick"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:68
+msgid "Smooth aiming"
+msgstr "Miscare lina"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:65
-#: qcsrc/menu/xonotic/dialog_settings_input.c:67
-msgid "Turn off OS mouse acceleration"
-msgstr "Dezactivare acceleratie mouse din OS"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:71
+msgid "Invert aiming"
+msgstr "Inversare mouse"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:75
+#: qcsrc/menu/xonotic/dialog_settings_input.c:77
+#: qcsrc/menu/xonotic/dialog_settings_input.c:80
+msgid "Disable system mouse acceleration"
+msgstr "Dezactivare acceleratie mouse din sistem"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:69
-msgid "\"enter console\" also closes"
-msgstr "\"enter\" inchide si consola"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:85
+msgid "Enable built in mouse acceleration"
+msgstr "Activare acceleratie mouse din motor"
 
 #: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:5
 msgid "User defined key bind"
@@ -2038,96 +2429,261 @@ msgid "Cancel"
 msgstr "Anulare"
 
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:26
-msgid "Menu skins:"
-msgstr "Stil meniu:"
+msgid "Network:"
+msgstr "Retea:"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:47
-msgid "Show current time"
-msgstr "Afisaj ora"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:31
+msgid "56k"
+msgstr "56k"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:49
-msgid "Show current date"
-msgstr "Afisaj data"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:32
+msgid "ISDN"
+msgstr "ISDN"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:51
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:33
+msgid "Slow ADSL"
+msgstr "ADSL lent"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:34
+msgid "Fast ADSL"
+msgstr "ADSL rapid"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:35
+msgid "Broadband"
+msgstr "Cablu/Fibra optica"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:39
+msgid "Input packets/s:"
+msgstr "Pachete intrare/secunda:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:45
+msgid "Local latency:"
+msgstr "Latenta locala:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:50
+msgid "Client UDP port:"
+msgstr "Port UDP client:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:55
+msgid "Show netgraph"
+msgstr "Afisaj grafic retea"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:59
+msgid "Client-side movement prediction"
+msgstr "Predictie miscare"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:62
+msgid "Movement error compensation"
+msgstr "Compensare eroare miscare"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:66
+msgid "Downloads:"
+msgstr "Descarcari simultane:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:69
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:81
+msgid "Maximum:"
+msgstr "Maxim:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:73
+msgid "Speed (kB/s):"
+msgstr "Viteza (kB/s):"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:78
+msgid "Framerate:"
+msgstr "Cadre:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:83
+msgid "MAXFPS^5 fps"
+msgstr "MAXFPS^5 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:84
+msgid "MAXFPS^10 fps"
+msgstr "MAXFPS^10 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:85
+msgid "MAXFPS^20 fps"
+msgstr "MAXFPS^20 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:86
+msgid "MAXFPS^30 fps"
+msgstr "MAXFPS^30 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:87
+msgid "MAXFPS^40 fps"
+msgstr "MAXFPS^40 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:88
+msgid "MAXFPS^50 fps"
+msgstr "MAXFPS^50 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:89
+msgid "MAXFPS^60 fps"
+msgstr "MAXFPS^60 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:90
+msgid "MAXFPS^70 fps"
+msgstr "MAXFPS^70 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:91
+msgid "MAXFPS^100 fps"
+msgstr "MAXFPS^100 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:92
+msgid "MAXFPS^125 fps"
+msgstr "MAXFPS^125 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:93
+msgid "MAXFPS^200 fps"
+msgstr "MAXFPS^200 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:94
+msgid "MAXFPS^Unlimited"
+msgstr "MAXFPS^Nelimitat"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:98
+msgid "Target:"
+msgstr "Tinta:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:100
+msgid "TRGT^Disabled"
+msgstr "TRGT^Dezactivat"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:101
+msgid "TRGT^30 fps"
+msgstr "TRGT^30 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:102
+msgid "TRGT^40 fps"
+msgstr "TRGT^40 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:103
+msgid "TRGT^50 fps"
+msgstr "TRGT^50 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:104
+msgid "TRGT^60 fps"
+msgstr "TRGT^60 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:105
+msgid "TRGT^100 fps"
+msgstr "TRGT^100 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:106
+msgid "TRGT^125 fps"
+msgstr "TRGT^125 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:107
+msgid "TRGT^200 fps"
+msgstr "TRGT^200 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:111
+msgid "Idle limit:"
+msgstr "Limita de timp:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:113
+msgid "IDLFPS^10 fps"
+msgstr "IDLFPS^10 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:114
+msgid "IDLFPS^20 fps"
+msgstr "IDLFPS^20 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:115
+msgid "IDLFPS^30 fps"
+msgstr "IDLFPS^30 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:116
+msgid "IDLFPS^60 fps"
+msgstr "IDLFPS^60 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:117
+msgid "IDLFPS^Unlimited"
+msgstr "IDLFPS^Nelimitat"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:122
 msgid "Show frames per second"
 msgstr "Afisaj cadre pe secunda"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:53
-msgid "Minimize input latency"
-msgstr "Minimizare latenta control"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:125
+msgid "Save processing time for other apps"
+msgstr "Salveaza timpul de procesare pentru alte aplicatii"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:129
+msgid "Menu tooltips:"
+msgstr "Etichete meniu:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:131
+msgid "TLTIP^Disabled"
+msgstr "TLTIP^Dezactivat"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:132
+msgid "TLTIP^Standard"
+msgstr "TLTIP^Standard"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:133
+msgid "TLTIP^Advanced"
+msgstr "TLTIP^Avansat"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:137
+msgid "Show current time"
+msgstr "Afisaj ora"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:139
+msgid "Show current date"
+msgstr "Afisaj data"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:141
+msgid "Enable developer mode"
+msgstr "Activare mod programator"
 
 #: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:5
 msgid "Advanced settings"
 msgstr "Setari avansate"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:23
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:31
 msgid "Cvar filter:"
 msgstr "Filtru variabile:"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:34
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:44
 msgid "Setting:"
 msgstr "Setari:"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:42
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:48
+msgid "Type:"
+msgstr "Tip:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:52
 msgid "Value:"
 msgstr "Valoare:"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:56
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:68
 msgid "Description:"
 msgstr "Descriere:"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:26
-msgid "Client-side movement prediction"
-msgstr "Predictie miscare"
-
-#: qcsrc/menu/xonotic/dialog_settings_network.c:30
-msgid "Show netgraph"
-msgstr "Afisaj grafic retea"
-
-#: qcsrc/menu/xonotic/dialog_settings_network.c:33
-msgid "Network speed:"
-msgstr "Viteza retea:"
-
-#: qcsrc/menu/xonotic/dialog_settings_network.c:35
-msgid "56k"
-msgstr "56k"
-
-#: qcsrc/menu/xonotic/dialog_settings_network.c:36
-msgid "ISDN"
-msgstr "ISDN"
-
-#: qcsrc/menu/xonotic/dialog_settings_network.c:37
-msgid "Slow ADSL"
-msgstr "ADSL lent"
-
-#: qcsrc/menu/xonotic/dialog_settings_network.c:38
-msgid "Fast ADSL"
-msgstr "ADSL rapid"
-
-#: qcsrc/menu/xonotic/dialog_settings_network.c:39
-msgid "Broadband"
-msgstr "Cablu/Fibra optica"
+#: qcsrc/menu/xonotic/dialog_settings_user.c:27
+msgid "Menu skins:"
+msgstr "Stil meniu:"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:42
-msgid "Input packets/s:"
-msgstr "Pachete intrare/secunda:"
+#: qcsrc/menu/xonotic/dialog_settings_user.c:31
+msgid "Set skin"
+msgstr "Setare skin"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:46
-msgid "HTTP downloads:"
-msgstr "Descarcari HTTP:"
+#: qcsrc/menu/xonotic/dialog_settings_user.c:74
+msgid "Set language"
+msgstr "Setare limba"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:49
-msgid "Downloads:"
-msgstr "Descarcari simultane:"
+#: qcsrc/menu/xonotic/dialog_settings_user.c:79
+msgid "Disable gore effects and harsh language"
+msgstr "Dezactivare efecte violente si limbaj violent"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:53
-msgid "Speed (kB/s):"
-msgstr "Viteza (kB/s):"
+#: qcsrc/menu/xonotic/dialog_settings_user.c:82
+msgid "Allow player statistics to track your client"
+msgstr "Permite statisticilor sa-ti urmareasca clientul"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:57
-msgid "Client UDP port:"
-msgstr "Port UDP client:"
+#: qcsrc/menu/xonotic/dialog_settings_user.c:84
+msgid "Allow player statistics to use your nickname"
+msgstr "Permite statisticilor sa-ti foloseasca numele"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:26
 msgid "Resolution:"
@@ -2177,103 +2733,173 @@ msgstr "Colosal"
 msgid "Color depth:"
 msgstr "Adancime culoare:"
 
+#: qcsrc/menu/xonotic/dialog_settings_video.c:44
+msgid "16bit"
+msgstr "16 biti"
+
 #: qcsrc/menu/xonotic/dialog_settings_video.c:45
+msgid "32bit"
+msgstr "32 biti"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:48
 msgid "Full screen"
 msgstr "Ecran plin"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:46
+#: qcsrc/menu/xonotic/dialog_settings_video.c:49
 msgid "Vertical Synchronization"
 msgstr "Sincronizare Verticala"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:49
-msgid "Use OpenGL 2.0 shaders (GLSL)"
-msgstr "Utilizare OpenGL 2.0 (GLSL)"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:53
+msgid "Anisotropy:"
+msgstr "Filtrare anisotropica:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:52
-msgid "Use GLSL to handle color control"
-msgstr "Utilizare GLSL pentru culori"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:55
+msgid "ANISO^Disabled"
+msgstr "Dezactivat"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:56
-msgid "Vertex Buffer Objects (VBOs)"
-msgstr "Tampon Memorie Obiecte (VBOs)"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:66
+msgid "2x"
+msgstr "2x"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:57
+#: qcsrc/menu/xonotic/dialog_settings_video.c:67
+msgid "4x"
+msgstr "4x"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:58
+msgid "8x"
+msgstr "8x"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:59
-msgid "VBO^Off"
-msgstr "Dezactivat"
+msgid "16x"
+msgstr "16x"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:60
-msgid "Vertices, some Tris (compatible)"
-msgstr "Puncte, unele Triunghiuri (compatibil)"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:62
+msgid "Antialiasing:"
+msgstr "Margini fine:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:63
-msgid "Vertices"
-msgstr "Puncte"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:65
+msgid "AA^Disabled"
+msgstr "Dezactivat"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:64
-msgid "Vertices and Triangles"
-msgstr "Puncte si Triunghiuri"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:71
+msgid "High-quality frame buffer"
+msgstr "Tampon cadru de inalta calitate"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:67
+#: qcsrc/menu/xonotic/dialog_settings_video.c:76
 msgid "Depth first:"
 msgstr "Calcul adancime:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:69
+#: qcsrc/menu/xonotic/dialog_settings_video.c:78
 msgid "DF^Disabled"
 msgstr "Dezactivat"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:70
+#: qcsrc/menu/xonotic/dialog_settings_video.c:79
 msgid "DF^World"
 msgstr "Mediul"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:71
+#: qcsrc/menu/xonotic/dialog_settings_video.c:80
 msgid "DF^All"
 msgstr "Totul"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:75
-msgid "Disable multithreaded OpenGL"
-msgstr "Dezactiveaza OpenGL multi-core"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:83
+msgid "Vertex Buffer Objects (VBOs)"
+msgstr "Tampon Memorie Obiecte (VBOs)"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:77
-msgid "Wait for GPU to finish each frame"
-msgstr "Asteapta ca GPU sa termine fiecare cadru"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:86
+msgid "VBO^Off"
+msgstr "Dezactivat"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:80
+#: qcsrc/menu/xonotic/dialog_settings_video.c:87
+msgid "Vertices, some Tris (compatible)"
+msgstr "Puncte, unele Triunghiuri (compatibil)"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:90
+msgid "Vertices"
+msgstr "Puncte"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:91
+msgid "Vertices and Triangles"
+msgstr "Puncte si Triunghiuri"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:94
 msgid "Brightness:"
 msgstr "Luminozitate:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:83
+#: qcsrc/menu/xonotic/dialog_settings_video.c:97
 msgid "Contrast:"
 msgstr "Contrast:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:86
+#: qcsrc/menu/xonotic/dialog_settings_video.c:100
 msgid "Gamma:"
 msgstr "Gama:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:91
+#: qcsrc/menu/xonotic/dialog_settings_video.c:105
 msgid "Contrast boost:"
 msgstr "Exagerare contrast:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:96
+#: qcsrc/menu/xonotic/dialog_settings_video.c:110
 msgid "Saturation:"
 msgstr "Saturatie:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:102
+#: qcsrc/menu/xonotic/dialog_settings_video.c:116
 msgid "LIT^Ambient:"
 msgstr "Ambianta:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:105
+#: qcsrc/menu/xonotic/dialog_settings_video.c:119
 msgid "Intensity:"
 msgstr "Intensitate:"
 
+#: qcsrc/menu/xonotic/dialog_settings_video.c:123
+msgid "Use OpenGL 2.0 shaders (GLSL)"
+msgstr "Utilizare OpenGL 2.0 (GLSL)"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:125
+msgid "Use GLSL to handle color control"
+msgstr "Utilizare GLSL pentru culori"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:128
+msgid "Wait for GPU to finish each frame"
+msgstr "Asteapta ca GPU sa termine fiecare cadru"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:132
+msgid "Psycho coloring (easter egg)"
+msgstr "Colorare psycho (ou de paste)"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:135
+msgid "Trippy vertices (easter egg)"
+msgstr "Deformare vertice (ou de paste)"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:138
+msgid "Flip view horizontally"
+msgstr "Oglindire orizontala ecran"
+
 #: qcsrc/menu/xonotic/dialog_singleplayer.c:4
 msgid "Singleplayer"
 msgstr "Joc singular"
 
-#: qcsrc/menu/xonotic/dialog_singleplayer.c:127
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:116
 msgid "Instant action! (random map with bots)"
 msgstr "Actiune instanta! (harta aleatorie cu boti)"
 
-#: qcsrc/menu/xonotic/dialog_singleplayer.c:148
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:137
+msgid "Campaign Difficulty:"
+msgstr "Dificultate Campanie:"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:138
+msgid "CSKL^Easy"
+msgstr "CSKL^Usor"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:139
+msgid "CSKL^Medium"
+msgstr "CSKL^Mediu"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:140
+msgid "CSKL^Hard"
+msgstr "CSKL^Greu"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:142
 msgid "Start Singleplayer!"
 msgstr "Pornire Joc Singular!"
 
@@ -2309,23 +2935,23 @@ msgstr "roz"
 msgid "spectate"
 msgstr "spectator"
 
-#: qcsrc/menu/xonotic/mainwindow.c:35 qcsrc/menu/xonotic/mainwindow.c:38
+#: qcsrc/menu/xonotic/mainwindow.c:39 qcsrc/menu/xonotic/mainwindow.c:42
 msgid "Do not press this button again!"
 msgstr "Nu mai apasati acest buton din nou!"
 
-#: qcsrc/menu/xonotic/maplist.c:278
+#: qcsrc/menu/xonotic/maplist.c:282
 msgid ""
 "Huh? Can't play this (m is NULL). Refiltering so this won't happen again.\n"
 msgstr ""
 "Huh? Nu se poate juca asta (m este NUL). Re-filtrez pentru a preveni asta pe "
 "viitor.\n"
 
-#: qcsrc/menu/xonotic/maplist.c:286
+#: qcsrc/menu/xonotic/maplist.c:290
 #, c-format
 msgid "%s's Xonotic Server"
 msgstr "Serverul Xonotic al lui %s"
 
-#: qcsrc/menu/xonotic/maplist.c:291
+#: qcsrc/menu/xonotic/maplist.c:295
 msgid ""
 "Huh? Can't play this (invalid game type). Refiltering so this won't happen "
 "again.\n"
@@ -2333,7 +2959,11 @@ msgstr ""
 "Huh? Nu se poate juca asta (tipul jocului este invalid). Re-filtrez pentru a "
 "preveni asta pe viitor.\n"
 
-#: qcsrc/menu/xonotic/playermodel.c:174
+#: qcsrc/menu/xonotic/playerlist.c:118 qcsrc/menu/xonotic/playerlist.c:128
+msgid "spectator"
+msgstr "spectator"
+
+#: qcsrc/menu/xonotic/playermodel.c:177
 msgid "<no model found>"
 msgstr "<nu a fost gasit nici un model>"
 
@@ -2345,23 +2975,23 @@ msgstr "Stergere"
 msgid "Bookmark"
 msgstr "Favorit"
 
-#: qcsrc/menu/xonotic/serverlist.c:527
+#: qcsrc/menu/xonotic/serverlist.c:548
 msgid "Ping"
 msgstr "Latenta"
 
-#: qcsrc/menu/xonotic/serverlist.c:528
+#: qcsrc/menu/xonotic/serverlist.c:549
 msgid "Host name"
 msgstr "Nume server"
 
-#: qcsrc/menu/xonotic/serverlist.c:529
+#: qcsrc/menu/xonotic/serverlist.c:550
 msgid "Map"
 msgstr "Harta"
 
-#: qcsrc/menu/xonotic/serverlist.c:530
+#: qcsrc/menu/xonotic/serverlist.c:551
 msgid "Type"
 msgstr "Mod"
 
-#: qcsrc/menu/xonotic/serverlist.c:531
+#: qcsrc/menu/xonotic/serverlist.c:552
 msgid "Players"
 msgstr "Jucatori"
 
@@ -2391,25 +3021,25 @@ msgstr "%s dB"
 msgid "%dx%d"
 msgstr "%dx%d"
 
-#: qcsrc/menu/xonotic/util.qc:270
+#: qcsrc/menu/xonotic/util.qc:276
 #, c-format
 msgid "Received HTTP request data for an invalid id %d.\n"
 msgstr "Primit cerere HTTP pentru un id invalid %d.\n"
 
-#: qcsrc/menu/xonotic/util.qc:285
+#: qcsrc/menu/xonotic/util.qc:291
 #, c-format
 msgid "error receiving update notification: status is %d\n"
 msgstr "eroare primire notificare update: statutul este %d\n"
 
-#: qcsrc/menu/xonotic/util.qc:290
+#: qcsrc/menu/xonotic/util.qc:296
 msgid "error: received HTML instead of an update notification\n"
 msgstr "eroare: primit HTML in schimbul unei notificari de update\n"
 
-#: qcsrc/menu/xonotic/util.qc:295
+#: qcsrc/menu/xonotic/util.qc:301
 msgid "error: received carriage returns from update notification server\n"
 msgstr "eroare: primit un mesaj eronat de la serverul de notificari update\n"
 
-#: qcsrc/menu/xonotic/util.qc:316
+#: qcsrc/menu/xonotic/util.qc:322
 #, c-format
 msgid ""
 "Update can be downloaded at:\n"
@@ -2418,21 +3048,21 @@ msgstr ""
 "Un update se poate descarca aici:\n"
 "%s\n"
 
-#: qcsrc/menu/xonotic/util.qc:337
+#: qcsrc/menu/xonotic/util.qc:351
 msgid "Autogenerating mapinfo for newly added maps..."
 msgstr "Auto-generare mapinfo pentru hartile proaspat adaugate..."
 
-#: qcsrc/menu/xonotic/util.qc:367
+#: qcsrc/menu/xonotic/util.qc:381
 #, c-format
 msgid "^1%s TEST BUILD"
 msgstr "^1%s VERSIUNE TESTARE"
 
-#: qcsrc/menu/xonotic/util.qc:432
+#: qcsrc/menu/xonotic/util.qc:439
 #, c-format
 msgid "Update to %s now!"
 msgstr "Updatati la %s acum!"
 
-#: qcsrc/menu/xonotic/util.qc:501
+#: qcsrc/menu/xonotic/util.qc:524
 msgid ""
 "^1ERROR: Texture compression is required but not supported.\n"
 "^1Expect visual problems.\n"
@@ -2440,474 +3070,480 @@ msgstr ""
 "^1EROARE: Comprimarea texturilor este necesara dar nu si suportata.\n"
 "^1Asteptati-va la probleme vizuale.\n"
 
-#: qcsrc/menu/xonotic/util.qc:523
-msgid "Arena"
-msgstr "Arena"
+#: qcsrc/menu/xonotic/util.qc:643
+msgid "Use default"
+msgstr "Utilizare setare normala"
 
-#: qcsrc/menu/xonotic/util.qc:524
-msgid "Assault"
-msgstr "Asalt"
+#: qcsrc/menu/xonotic/util.qc:663
+msgid "Team Color:"
+msgstr "Culoare echipa:"
 
-#: qcsrc/menu/xonotic/util.qc:525
-msgid "Capture The Flag"
-msgstr "Captureaza Steagul"
+#: qcsrc/menu/xonotic/util.qh:50
+msgid "Enable panel"
+msgstr "Activare panou"
 
-#: qcsrc/menu/xonotic/util.qc:526
-msgid "Clan Arena"
-msgstr "Clan Arena"
+#: weapons.qc.tmp:1
+msgid "Rifle"
+msgstr "Luneta"
 
-#: qcsrc/menu/xonotic/util.qc:527
-msgid "Deathmatch"
-msgstr "Meciul Mortii"
+#: weapons.qc.tmp:2
+msgid "Machine Gun"
+msgstr "Machine Gun"
 
-#: qcsrc/menu/xonotic/util.qc:528
-msgid "Domination"
-msgstr "Dominatie"
+#: weapons.qc.tmp:3
+msgid "Rocket Launcher"
+msgstr "Rocket Launcher"
 
-#: qcsrc/menu/xonotic/util.qc:529
-msgid "Freeze Tag"
-msgstr "Inghet"
+#: weapons.qc.tmp:4
+msgid "Port-O-Launch"
+msgstr "Port-O-Launch"
 
-#: qcsrc/menu/xonotic/util.qc:530
-msgid "Keepaway"
-msgstr "Keepaway"
+#: weapons.qc.tmp:5
+msgid "Grappling Hook"
+msgstr "Grappling Hook"
 
-#: qcsrc/menu/xonotic/util.qc:531
-msgid "Key Hunt"
-msgstr "Vanatoarea Cheilor"
+#: weapons.qc.tmp:6
+msgid "Electro"
+msgstr "Electro"
 
-#: qcsrc/menu/xonotic/util.qc:532
-msgid "Last Man Standing"
-msgstr "Ultimul Supravietuitor"
+#: weapons.qc.tmp:7
+msgid "Laser"
+msgstr "Laser"
 
-#: qcsrc/menu/xonotic/util.qc:533
-msgid "Nexball"
-msgstr "Nexball"
+#: weapons.qc.tmp:8
+msgid "Shotgun"
+msgstr "Shotgun"
 
-#: qcsrc/menu/xonotic/util.qc:534
-msgid "Onslaught"
-msgstr "Onslaught"
+#: weapons.qc.tmp:9
+#, c-format
+msgid "@!#%'n Tuba"
+msgstr "@!#%'n Tuba"
 
-#: qcsrc/menu/xonotic/util.qc:535
-msgid "Race"
-msgstr "Cursa"
+#: weapons.qc.tmp:10
+msgid "MinstaNex"
+msgstr "MinstaNex"
 
-#: qcsrc/menu/xonotic/util.qc:536
-msgid "Race CTS"
-msgstr "Cursa CTS"
+#: weapons.qc.tmp:11
+msgid "Crylink"
+msgstr "Crylink"
 
-#: qcsrc/menu/xonotic/util.qc:537
-msgid "Runematch"
-msgstr "Runematch"
+#: weapons.qc.tmp:12
+msgid "Heavy Laser Assault Cannon"
+msgstr "Heavy Laser Assault Cannon"
 
-#: qcsrc/menu/xonotic/util.qc:538
-msgid "Team Deathmatch"
-msgstr "Meciul Mortii (in echipa)"
+#: weapons.qc.tmp:13
+msgid "Mortar"
+msgstr "Mortar"
 
-#: qcsrc/menu/xonotic/util.qc:557
-#, c-format
-msgid "@!#%'n Tuba Throwing"
-msgstr "Arunca @!#%'n Tuba"
+#: weapons.qc.tmp:14
+msgid "Hagar"
+msgstr "Hagar"
 
-#: qcsrc/menu/xonotic/util.qc:577 qcsrc/menu/xonotic/util.qc:593
-#: qcsrc/menu/xonotic/util.qc:602 qcsrc/menu/xonotic/util.qc:610
-#: qcsrc/menu/xonotic/util.qc:622
-msgid "Default"
-msgstr "Setare normala"
+#: weapons.qc.tmp:15
+msgid "T.A.G. Seeker"
+msgstr "T.A.G. Seeker"
 
-#: qcsrc/menu/xonotic/util.qc:588
-msgid "Use default"
-msgstr "Utilizare setare normala"
+#: weapons.qc.tmp:16
+msgid "Fireball"
+msgstr "Fireball"
 
-#: qcsrc/menu/xonotic/util.qc:608
-msgid "Team Color:"
-msgstr "Culoare echipa:"
+#: weapons.qc.tmp:17
+msgid "Mine Layer"
+msgstr "Mine Layer"
 
-#: qcsrc/menu/xonotic/util.qh:47
-msgid "Enable panel"
-msgstr "Activare panou"
+#: weapons.qc.tmp:18
+msgid "Nex"
+msgstr "Nex"
 
-#: qcsrc/server/w_crylink.qc:2
-msgid "Crylink"
-msgstr "Crylink"
+#~ msgid "Powerup sharpen"
+#~ msgstr "Ascutire powerup"
 
-#: qcsrc/server/w_crylink.qc:666
-#, c-format
-msgid "%s succeeded at self-destructing themself with the Crylink"
-msgstr "%s a reusit sa se auto-distruga cu Crylink-ul"
+#~ msgid "Damage & water blur"
+#~ msgstr "Blurare ranire & apa:"
 
-#: qcsrc/server/w_crylink.qc:671
-#, c-format
-msgid "%s could not hide from %s's Crylink"
-msgstr "%s nu s-a putut ascunde de Crylink-ul lui %s"
+#~ msgid "Speedometer"
+#~ msgstr "Vitezometru"
 
-#: qcsrc/server/w_crylink.qc:673
-#, c-format
-msgid "%s was too close to %s's Crylink"
-msgstr "%s s-a apropiat prea mult de Crylink-ul lui %s"
+#~ msgid "qu/s (hidden)"
+#~ msgstr "qu/s (ascuns)"
 
-#: qcsrc/server/w_crylink.qc:675
-#, c-format
-msgid "%s took a close look at %s's Crylink"
-msgstr "%s s-a uitat in deaproape la Crylink-ul lui %s"
+#~ msgid "Show accelerometer"
+#~ msgstr "Afisaj metru acceleratie"
 
-#: qcsrc/server/w_electro.qc:2
-msgid "Electro"
-msgstr "Electro"
+#~ msgid "Accelerometer scale:"
+#~ msgstr "Marime metru acceleratie:"
 
-#: qcsrc/server/w_electro.qc:574
-#, c-format
-msgid "%s could not remember where they put plasma"
-msgstr "%s a uitat unde a pus plasma"
+#~ msgid "Sniper Rifle"
+#~ msgstr "Sniper Rifle"
 
-#: qcsrc/server/w_electro.qc:576
-#, c-format
-msgid "%s played with plasma"
-msgstr "%s s-a jucat cu plasma"
+#~ msgid "Waypoint settings:"
+#~ msgstr "Setari indicatoare:"
 
-#: qcsrc/server/w_electro.qc:583
-#, c-format
-msgid "%s just noticed %s's blue ball"
-msgstr "%s tocmai a observat bilele albastre ale lui %s"
+#~ msgid "Panel enabled if not observing"
+#~ msgstr "Panou activ pentru non-observatori"
 
-#: qcsrc/server/w_electro.qc:585
-#, c-format
-msgid "%s got in touch with %s's blue ball"
-msgstr "%s a intrat in contact cu bila albastra a lui %s"
+#~ msgid "%s was riddled full of holes by %s"
+#~ msgstr "%s a fost gaurit de %s"
 
-#: qcsrc/server/w_electro.qc:590
-#, c-format
-msgid "%s felt the electrifying air of %s's combo"
-msgstr "%s a simtit forta electrica a combinatiei lui %s"
+#~ msgid "%s died of %s's great playing on the @!#%%'n Tuba"
+#~ msgstr "%s a murit de la cantecul lui %s cu @!#%%'n Tuba"
 
-#: qcsrc/server/w_electro.qc:592
-#, c-format
-msgid "%s got too close to %s's blue beam"
-msgstr "%s s-a apropiat prea mult de raza albastra a lui %s"
+#~ msgid "%s hurt his own ears with the @!#%%'n Tuba"
+#~ msgstr "%s si-a spart urechile cu propria @!#%%'n Tuba"
 
-#: qcsrc/server/w_electro.qc:594
-#, c-format
-msgid "%s was blasted by %s's blue beam"
-msgstr "%s a fost lovit de raza albastra a lui %s"
+#~ msgid "%s was gunned by %s"
+#~ msgstr "%s a fost impuscat de %s"
 
-#: qcsrc/server/w_fireball.qc:2
-msgid "Fireball"
-msgstr "Fireball"
+#~ msgid "%2$s ^7slapped %1$s ^7around a bit with a large ^2shotgun"
+#~ msgstr "%2$s ^7l-a plesnit pe %1$s ^7cu o ^2Pusca ^7foarte mare"
 
-#: qcsrc/server/w_fireball.qc:417
-#, c-format
-msgid "%s forgot about some firemine"
-msgstr "%s a uitat o minge de foc"
+#~ msgid "%s was tagged by %s"
+#~ msgstr "%s a fost marcat de %s"
 
-#: qcsrc/server/w_fireball.qc:419 qcsrc/server/w_hlac.qc:240
-#, c-format
-msgid "%s should have used a smaller gun"
-msgstr "%s trebuia sa foloseasca o arma mai mica"
+#~ msgid "%s ate %s's rocket"
+#~ msgstr "%s a mancat racheta lui %s"
 
-#: qcsrc/server/w_fireball.qc:426
-#, c-format
-msgid "%s tried to catch %s's firemine"
-msgstr "%s a incercat sa prinda mingea de foc a lui %s"
+#~ msgid "%s almost dodged %s's rocket"
+#~ msgstr "%s aproape ca s-a ferit de racheta lui %s"
 
-#: qcsrc/server/w_fireball.qc:428
-#, c-format
-msgid "%s fatefully ignored %s's firemine"
-msgstr "%s a ignorat mingea de foc a lui %s cu incredere"
+#~ msgid "%s got too close to %s's rocket"
+#~ msgstr "%s s-a apropiat prea mult de racheta lui %s"
 
-#: qcsrc/server/w_fireball.qc:435
-#, c-format
-msgid "%s could not hide from %s's fireball"
-msgstr "%s nu s-a putut ascunde de Fireball-ul lui %s"
+#~ msgid "%s was sniped by %s"
+#~ msgstr "%s a fost nimerit cu luneta de %s"
 
-#: qcsrc/server/w_fireball.qc:437
-#, c-format
-msgid "%s saw the pretty lights of %s's fireball"
-msgstr "%s a vazut luminita de la capatul Fireball-ului lui %s"
+#~ msgid "%s got hit in the head by %s"
+#~ msgstr "%s a fost lovit in cap de %s"
 
-#: qcsrc/server/w_fireball.qc:440
-#, c-format
-msgid "%s got too close to %s's fireball"
-msgstr "%s s-a apropiat prea mult de Fireball-ul lui %s"
+#~ msgid "%s failed to hide from %s's rifle"
+#~ msgstr "%s nu a reusit sa se ascunda de luneta lui %s"
 
-#: qcsrc/server/w_fireball.qc:442
-#, c-format
-msgid "%s tasted %s's fireball"
-msgstr "%s a gustat din Fireball-ul lui %s"
+#~ msgid "%s died in %s's bullet hail"
+#~ msgstr "%s a murit in ploaia de gloante a lui %s"
 
-#: qcsrc/server/w_grenadelauncher.qc:2
-msgid "Mortar"
-msgstr "Mortar"
+#~ msgid "%s failed to hide from %s's bullet hail"
+#~ msgstr "%s nu a reusit sa se ascunda de ploaia de gloante a lui %s"
 
-#: qcsrc/server/w_grenadelauncher.qc:383
-#, c-format
-msgid "%s tried out his own grenade"
-msgstr "%s si-a incercat propria grenada"
+#~ msgid "%s sniped themself somehow"
+#~ msgstr "%s s-a impuscat oarecum cu luneta"
 
-#: qcsrc/server/w_grenadelauncher.qc:385
-#, c-format
-msgid "%s detonated"
-msgstr "%s a detonat"
+#~ msgid "%s shot themself automatically"
+#~ msgstr "%s s-a impuscat automat"
 
-#: qcsrc/server/w_grenadelauncher.qc:391
-#, c-format
-msgid "%s didn't see %s's grenade"
-msgstr "%s nu a vazut grenada lui %s"
+#~ msgid "%s felt %s doing the impossible to him"
+#~ msgstr "%s a simtit cum %s a reusit imposibilul"
 
-#: qcsrc/server/w_grenadelauncher.qc:393
-#, c-format
-msgid "%s almost dodged %s's grenade"
-msgstr "%s aproape ca s-a ferit de grenada lui %s"
+#~ msgid "%s has been vaporized by %s"
+#~ msgstr "%s a fost vaporizat de %s"
 
-#: qcsrc/server/w_grenadelauncher.qc:395
-#, c-format
-msgid "%s ate %s's grenade"
-msgstr "%s a mancat grenada lui %s"
+#~ msgid "%s is now thinking with portals"
+#~ msgstr "%s gandeste acum cu portaluri"
 
-#: qcsrc/server/w_hagar.qc:2
-msgid "Hagar"
-msgstr "Hagar"
+#~ msgid "%s stepped on %s's mine"
+#~ msgstr "%s a calcat pe mina lui %s"
 
-#: qcsrc/server/w_hagar.qc:395 qcsrc/server/w_seeker.qc:655
-#, c-format
-msgid "%s played with tiny rockets"
-msgstr "%s s-a jucat cu rachete"
+#~ msgid "%s almost dodged %s's mine"
+#~ msgstr "%s aproape ca s-a ferit de mina lui %s"
 
-#: qcsrc/server/w_hagar.qc:399
-#, c-format
-msgid "%s hoped %s's missiles wouldn't bounce"
-msgstr "%s a sperat ca rachetele lui %s nu vor ricosa"
+#~ msgid "%s got too close to %s's mine"
+#~ msgstr "%s s-a apropiat prea mult de mina lui %s"
 
-#: qcsrc/server/w_hagar.qc:401 qcsrc/server/w_seeker.qc:661
-#, c-format
-msgid "%s was pummeled by %s"
-msgstr "%s a fost batut mar de %s"
+#~ msgid "%s exploded"
+#~ msgstr "%s a explodat"
 
-#: qcsrc/server/w_hlac.qc:2
-msgid "Heavy Laser Assault Cannon"
-msgstr "Heavy Laser Assault Cannon"
+#~ msgid "%s was lasered to death by %s"
+#~ msgstr "%s a fost omorat cu laser de %s"
 
-#: qcsrc/server/w_hlac.qc:242
-#, c-format
-msgid "%s was cut down by %s"
-msgstr "%s a fost taiat de %s"
+#~ msgid "%s was cut in half by %s's gauntlet"
+#~ msgstr "%s a fost taiat in doua de socul lui %s"
 
-#: qcsrc/server/w_hook.qc:2
-msgid "Grappling Hook"
-msgstr "Grappling Hook"
+#~ msgid "%s lasered themself to hell"
+#~ msgstr "%s s-a lovit prea mult cu laserul"
 
-#: qcsrc/server/w_hook.qc:266 qcsrc/server/w_porto.qc:296
-#, c-format
-msgid "%s did the impossible"
-msgstr "%s a reusit imposibilul"
+#~ msgid "%s has run into %s's gravity bomb"
+#~ msgstr "%s a fost absorbit de bomba gravitationala a lui %s"
 
-#: qcsrc/server/w_hook.qc:268
-#, c-format
-msgid "%s has run into %s's gravity bomb"
-msgstr "%s a fost absorbit de bomba gravitationala a lui %s"
+#~ msgid "%s did the impossible"
+#~ msgstr "%s a reusit imposibilul"
 
-#: qcsrc/server/w_laser.qc:2
-msgid "Laser"
-msgstr "Laser"
+#~ msgid "%s was cut down by %s"
+#~ msgstr "%s a fost taiat de %s"
 
-#: qcsrc/server/w_laser.qc:311
-#, c-format
-msgid "%s lasered themself to hell"
-msgstr "%s s-a lovit prea mult cu laserul"
+#~ msgid "%s was pummeled by %s"
+#~ msgstr "%s a fost batut mar de %s"
 
-#: qcsrc/server/w_laser.qc:315
-#, c-format
-msgid "%s was cut in half by %s's gauntlet"
-msgstr "%s a fost taiat in doua de socul lui %s"
+#~ msgid "%s hoped %s's missiles wouldn't bounce"
+#~ msgstr "%s a sperat ca rachetele lui %s nu vor ricosa"
 
-#: qcsrc/server/w_laser.qc:317
-#, c-format
-msgid "%s was lasered to death by %s"
-msgstr "%s a fost omorat cu laser de %s"
+#~ msgid "%s played with tiny rockets"
+#~ msgstr "%s s-a jucat cu rachete"
 
-#: qcsrc/server/w_minelayer.qc:2
-msgid "Mine Layer"
-msgstr "Mine Layer"
+#~ msgid "%s ate %s's grenade"
+#~ msgstr "%s a mancat grenada lui %s"
 
-#: qcsrc/server/w_minelayer.qc:523 qcsrc/server/w_rocketlauncher.qc:501
-#, c-format
-msgid "%s exploded"
-msgstr "%s a explodat"
+#~ msgid "%s almost dodged %s's grenade"
+#~ msgstr "%s aproape ca s-a ferit de grenada lui %s"
 
-#: qcsrc/server/w_minelayer.qc:527
-#, c-format
-msgid "%s got too close to %s's mine"
-msgstr "%s s-a apropiat prea mult de mina lui %s"
+#~ msgid "%s didn't see %s's grenade"
+#~ msgstr "%s nu a vazut grenada lui %s"
 
-#: qcsrc/server/w_minelayer.qc:529
-#, c-format
-msgid "%s almost dodged %s's mine"
-msgstr "%s aproape ca s-a ferit de mina lui %s"
+#~ msgid "%s detonated"
+#~ msgstr "%s a detonat"
 
-#: qcsrc/server/w_minelayer.qc:531
-#, c-format
-msgid "%s stepped on %s's mine"
-msgstr "%s a calcat pe mina lui %s"
+#~ msgid "%s tried out his own grenade"
+#~ msgstr "%s si-a incercat propria grenada"
 
-#: qcsrc/server/w_minstanex.qc:2
-msgid "MinstaNex"
-msgstr "MinstaNex"
+#~ msgid "%s tasted %s's fireball"
+#~ msgstr "%s a gustat din Fireball-ul lui %s"
 
-#: qcsrc/server/w_minstanex.qc:293 qcsrc/server/w_nex.qc:253
-#: qcsrc/server/w_shotgun.qc:215 qcsrc/server/w_uzi.qc:317
-#, c-format
-msgid "%s is now thinking with portals"
-msgstr "%s gandeste acum cu portaluri"
+#~ msgid "%s got too close to %s's fireball"
+#~ msgstr "%s s-a apropiat prea mult de Fireball-ul lui %s"
 
-#: qcsrc/server/w_minstanex.qc:295 qcsrc/server/w_nex.qc:255
-#, c-format
-msgid "%s has been vaporized by %s"
-msgstr "%s a fost vaporizat de %s"
+#~ msgid "%s saw the pretty lights of %s's fireball"
+#~ msgstr "%s a vazut luminita de la capatul Fireball-ului lui %s"
 
-#: qcsrc/server/w_nex.qc:2
-msgid "Nex"
-msgstr "Nex"
+#~ msgid "%s could not hide from %s's fireball"
+#~ msgstr "%s nu s-a putut ascunde de Fireball-ul lui %s"
 
-#: qcsrc/server/w_porto.qc:2
-msgid "Port-O-Launch"
-msgstr "Port-O-Launch"
+#~ msgid "%s fatefully ignored %s's firemine"
+#~ msgstr "%s a ignorat mingea de foc a lui %s cu incredere"
 
-#: qcsrc/server/w_porto.qc:298
-#, c-format
-msgid "%s felt %s doing the impossible to him"
-msgstr "%s a simtit cum %s a reusit imposibilul"
+#~ msgid "%s tried to catch %s's firemine"
+#~ msgstr "%s a incercat sa prinda mingea de foc a lui %s"
 
-#: qcsrc/server/w_rifle.qc:2
-msgid "Rifle"
-msgstr "Luneta"
+#~ msgid "%s should have used a smaller gun"
+#~ msgstr "%s trebuia sa foloseasca o arma mai mica"
 
-#: qcsrc/server/w_rifle.qc:233
-#, c-format
-msgid "%s shot themself automatically"
-msgstr "%s s-a impuscat automat"
+#~ msgid "%s forgot about some firemine"
+#~ msgstr "%s a uitat o minge de foc"
 
-#: qcsrc/server/w_rifle.qc:235
-#, c-format
-msgid "%s sniped themself somehow"
-msgstr "%s s-a impuscat oarecum cu luneta"
+#~ msgid "%s was blasted by %s's blue beam"
+#~ msgstr "%s a fost lovit de raza albastra a lui %s"
 
-#: qcsrc/server/w_rifle.qc:242
-#, c-format
-msgid "%s failed to hide from %s's bullet hail"
-msgstr "%s nu a reusit sa se ascunda de ploaia de gloante a lui %s"
+#~ msgid "%s got too close to %s's blue beam"
+#~ msgstr "%s s-a apropiat prea mult de raza albastra a lui %s"
 
-#: qcsrc/server/w_rifle.qc:244
-#, c-format
-msgid "%s died in %s's bullet hail"
-msgstr "%s a murit in ploaia de gloante a lui %s"
+#~ msgid "%s felt the electrifying air of %s's combo"
+#~ msgstr "%s a simtit forta electrica a combinatiei lui %s"
 
-#: qcsrc/server/w_rifle.qc:251
-#, c-format
-msgid "%s failed to hide from %s's rifle"
-msgstr "%s nu a reusit sa se ascunda de luneta lui %s"
+#~ msgid "%s got in touch with %s's blue ball"
+#~ msgstr "%s a intrat in contact cu bila albastra a lui %s"
 
-#: qcsrc/server/w_rifle.qc:256
-#, c-format
-msgid "%s got hit in the head by %s"
-msgstr "%s a fost lovit in cap de %s"
+#~ msgid "%s just noticed %s's blue ball"
+#~ msgstr "%s tocmai a observat bilele albastre ale lui %s"
 
-#: qcsrc/server/w_rifle.qc:258 qcsrc/server/w_uzi.qc:321
-#, c-format
-msgid "%s was sniped by %s"
-msgstr "%s a fost nimerit cu luneta de %s"
+#~ msgid "%s played with plasma"
+#~ msgstr "%s s-a jucat cu plasma"
 
-#: qcsrc/server/w_rocketlauncher.qc:2
-msgid "Rocket Launcher"
-msgstr "Rocket Launcher"
+#~ msgid "%s could not remember where they put plasma"
+#~ msgstr "%s a uitat unde a pus plasma"
 
-#: qcsrc/server/w_rocketlauncher.qc:505
-#, c-format
-msgid "%s got too close to %s's rocket"
-msgstr "%s s-a apropiat prea mult de racheta lui %s"
+#~ msgid "%s took a close look at %s's Crylink"
+#~ msgstr "%s s-a uitat in deaproape la Crylink-ul lui %s"
 
-#: qcsrc/server/w_rocketlauncher.qc:507
-#, c-format
-msgid "%s almost dodged %s's rocket"
-msgstr "%s aproape ca s-a ferit de racheta lui %s"
+#~ msgid "%s was too close to %s's Crylink"
+#~ msgstr "%s s-a apropiat prea mult de Crylink-ul lui %s"
 
-#: qcsrc/server/w_rocketlauncher.qc:509
-#, c-format
-msgid "%s ate %s's rocket"
-msgstr "%s a mancat racheta lui %s"
+#~ msgid "%s could not hide from %s's Crylink"
+#~ msgstr "%s nu s-a putut ascunde de Crylink-ul lui %s"
 
-#: qcsrc/server/w_seeker.qc:2
-msgid "T.A.G. Seeker"
-msgstr "T.A.G. Seeker"
+#~ msgid "%s succeeded at self-destructing themself with the Crylink"
+#~ msgstr "%s a reusit sa se auto-distruga cu Crylink-ul"
 
-#: qcsrc/server/w_seeker.qc:659
-#, c-format
-msgid "%s was tagged by %s"
-msgstr "%s a fost marcat de %s"
+#~ msgid "Capture The Flag"
+#~ msgstr "Captureaza Steagul"
 
-#: qcsrc/server/w_shotgun.qc:2
-msgid "Shotgun"
-msgstr "Shotgun"
+#~ msgid "Disable multithreaded OpenGL"
+#~ msgstr "Dezactiveaza OpenGL multi-core"
 
-#: qcsrc/server/w_shotgun.qc:219
-#, c-format
-msgid "%2$s ^7slapped %1$s ^7around a bit with a large ^2shotgun"
-msgstr "%2$s ^7l-a plesnit pe %1$s ^7cu o ^2Pusca ^7foarte mare"
+#~ msgid "HTTP downloads:"
+#~ msgstr "Descarcari HTTP:"
 
-#: qcsrc/server/w_shotgun.qc:221
-#, c-format
-msgid "%s was gunned by %s"
-msgstr "%s a fost impuscat de %s"
+#~ msgid "Network speed:"
+#~ msgstr "Viteza retea:"
 
-#: qcsrc/server/w_tuba.qc:2
-#, c-format
-msgid "@!#%'n Tuba"
-msgstr "@!#%'n Tuba"
+#~ msgid "Minimize input latency"
+#~ msgstr "Minimizare latenta control"
 
-#: qcsrc/server/w_tuba.qc:252
-#, c-format
-msgid "%s hurt his own ears with the @!#%%'n Tuba"
-msgstr "%s si-a spart urechile cu propria @!#%%'n Tuba"
+#~ msgid "\"enter console\" also closes"
+#~ msgstr "\"enter\" inchide si consola"
 
-#: qcsrc/server/w_tuba.qc:256
-#, c-format
-msgid "%s died of %s's great playing on the @!#%%'n Tuba"
-msgstr "%s a murit de la cantecul lui %s cu @!#%%'n Tuba"
+#~ msgid "Turn off OS mouse acceleration"
+#~ msgstr "Dezactivare acceleratie mouse din OS"
 
-#: qcsrc/server/w_uzi.qc:2
-msgid "Machine Gun"
-msgstr "Machine Gun"
+#~ msgid "Invert mouse"
+#~ msgstr "Inversare mouse"
 
-#: qcsrc/server/w_uzi.qc:323
-#, c-format
-msgid "%s was riddled full of holes by %s"
-msgstr "%s a fost gaurit de %s"
+#~ msgid "Mouse filter"
+#~ msgstr "Filtrare mouse"
 
-#~ msgid "%d/%d"
-#~ msgstr "%d/%d"
+#~ msgid "UI mouse speed:"
+#~ msgstr "Viteza mouse in meniu:"
 
-#~ msgid "Waypoint settings:"
-#~ msgstr "Setari indicatoare:"
+#~ msgid "Blur and sharpen postprocessing"
+#~ msgstr "Postprocesare blurare si ascutire"
 
-#~ msgid "Sniper Rifle"
-#~ msgstr "Sniper Rifle"
+#~ msgid "High Dynamic Range (HDR)"
+#~ msgstr "Distanta Dinamica Inalta (HDR)"
 
-#~ msgid "Accelerometer scale:"
-#~ msgstr "Marime metru acceleratie:"
+#~ msgid "Flash blend approximation"
+#~ msgstr "Luminozitate dinamica rapida"
 
-#~ msgid "Show accelerometer"
-#~ msgstr "Afisaj metru acceleratie"
+#~ msgid "Particle distance:"
+#~ msgstr "Distanta particule:"
 
-#~ msgid "qu/s (hidden)"
-#~ msgstr "qu/s (ascuns)"
+#~ msgid "Particle quality:"
+#~ msgstr "Calicate particule:"
 
-#~ msgid "Speedometer"
-#~ msgstr "Vitezometru"
+#~ msgid "Hit indicator"
+#~ msgstr "Indicator lovituri"
 
-#~ msgid "Damage & water blur"
-#~ msgstr "Blurare ranire & apa:"
+#~ msgid "WRN^None"
+#~ msgstr "Nici una"
 
-#~ msgid "Powerup sharpen"
-#~ msgstr "Ascutire powerup"
+#~ msgid "Time warning:"
+#~ msgstr "Avertisment timp:"
 
-#, fuzzy
-#~ msgid "Panel enabled if not observing"
-#~ msgstr "Activa pentru spectatori"
+#~ msgid "RNG^Full"
+#~ msgstr "Toate"
+
+#~ msgid "RNG^Long"
+#~ msgstr "Lunga"
+
+#~ msgid "RNG^Normal"
+#~ msgstr "Normala"
+
+#~ msgid "RNG^Short"
+#~ msgstr "Scurta"
+
+#~ msgid "RNG^Very short"
+#~ msgstr "Foarte scurta"
+
+#~ msgid "Taunt range:"
+#~ msgstr "Distanta voci:"
+
+#~ msgid "VOCS^All"
+#~ msgstr "Toate"
+
+#~ msgid "VOCS^Taunts"
+#~ msgstr "Glume"
+
+#~ msgid "VOCS^None"
+#~ msgstr "Nici una"
+
+#~ msgid "Spatial voices:"
+#~ msgstr "Voci spatializate:"
+
+#~ msgid "Network"
+#~ msgstr "Retea"
+
+#~ msgid "All players"
+#~ msgstr "Toti jucatorii"
+
+#~ msgid "Teammates"
+#~ msgstr "Coechipieri"
+
+#~ msgid "Show names:"
+#~ msgstr "Afisaj nume:"
+
+#~ msgid "Waypoint alpha:"
+#~ msgstr "Opacitate indicatoare:"
+
+#~ msgid "Waypoint scale:"
+#~ msgstr "Marime indicatoare:"
+
+#~ msgid "Show base waypoints"
+#~ msgstr "Afisaj indicatoare de baza"
+
+#~ msgid "Damage splash:"
+#~ msgstr "Efect ranire:"
+
+#~ msgid "Disable gore effects"
+#~ msgstr "Dezactivare efecte violente"
+
+#~ msgid "Waypoints setup..."
+#~ msgstr "Setari indicatoare..."
+
+#~ msgid "Enemies"
+#~ msgstr "Dusmani"
+
+#~ msgid "TrueAim"
+#~ msgstr "TrueAim"
+
+#~ msgid "HTST^None"
+#~ msgstr "Nici una"
+
+#~ msgid "Hit test:"
+#~ msgstr "Detectare tinta:"
+
+#~ msgid "Size:"
+#~ msgstr "Marime:"
+
+#~ msgid "Enable center dot"
+#~ msgstr "Utilizare punct ochian"
+
+#~ msgid "Crosshair:"
+#~ msgstr "Ochian:"
+
+#~ msgid "Weapon settings..."
+#~ msgstr "Setari arme..."
+
+#~ msgid "Zoom speed:"
+#~ msgstr "Viteza Zoom:"
+
+#~ msgid "Zoom factor:"
+#~ msgstr "Factor Zoom:"
+
+#~ msgid "View bobbing:"
+#~ msgstr "Miscare camera mers:"
+
+#~ msgid "CA:"
+#~ msgstr "CA:"
+
+#~ msgid "Ping:"
+#~ msgstr "Latenta:"
+
+#~ msgid "Gameplay:"
+#~ msgstr "Mod:"
+
+#~ msgid "required (will encrypt)"
+#~ msgstr "necesar (se va encripta)"
+
+#~ msgid "required (can't connect)"
+#~ msgstr "necesar (nu se poate conecta)"
+
+#~ msgid "requested (won't encrypt)"
+#~ msgstr "cerut (nu se va encripta)"
+
+#~ msgid "requested (will encrypt)"
+#~ msgstr "cerut (se va encripta)"
+
+#~ msgid "supported (won't encrypt)"
+#~ msgstr "suportat (nu se va encripta)"
+
+#~ msgid "supported (will encrypt)"
+#~ msgstr "suportat (se va encripta)"
+
+#~ msgid "not supported (won't encrypt)"
+#~ msgstr "nesuportat (nu se poate encripta)"
+
+#~ msgid "not supported (can't connect)"
+#~ msgstr "nesuportat (nu se poate conecta)"
+
+#~ msgid "N/A (can't connect)"
+#~ msgstr "N/A (nu se poate conecta)"
+
+#~ msgid "Official settings"
+#~ msgstr "Setarile oficiale"
+
+#~ msgid "%d modified settings"
+#~ msgstr "%d setari modificate"
+
+#~ msgid "%d/%d, %d free player slots"
+#~ msgstr "%d/%d, %d locuri disponibile"
+
+#~ msgid "Record demos while playing"
+#~ msgstr "Creare demonstratii in timpul jocului"
+
+#~ msgid "Match settings:"
+#~ msgstr "Setari meci:"
index 1ad8ddcc61b46874b2c22dcb1fdee5a06800c644..e6c5b6f5161e318de75266bba61ecb9fd77ea82c 100644 (file)
@@ -2,12 +2,12 @@
 # Copyright (C) 2011 Team Xonotic
 # This file is distributed under the same license as the Xonotic package.
 # Lord Canistra <lordcanistra@gmail.com>, 2011.
-#
+# 
 msgid ""
 msgstr ""
 "Project-Id-Version: 0.1preview\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-09-02 07:51+0200\n"
+"POT-Creation-Date: 2012-01-26 12:24+0100\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"
@@ -16,33 +16,102 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: qcsrc/common/mapinfo.qc:1092 qcsrc/menu/xonotic/skinlist.c:163
+#: qcsrc/common/mapinfo.qc:665
+#, c-format
+msgid "@!#%'n Tuba Throwing"
+msgstr "@!#%'n Швыряние Тубой"
+
+#: qcsrc/common/mapinfo.qc:1057 qcsrc/menu/xonotic/skinlist.c:166
 #, c-format
 msgid "%s: %s"
 msgstr "%s: %s"
 
-#: qcsrc/menu/gamecommand.qc:47
+#: qcsrc/common/mapinfo.qh:36
+msgid "Deathmatch"
+msgstr "Deathmatch"
+
+#: qcsrc/common/mapinfo.qh:39
+msgid "Last Man Standing"
+msgstr "Last Man Standing"
+
+#: qcsrc/common/mapinfo.qh:42
+msgid "Arena"
+msgstr "Arena"
+
+#: qcsrc/common/mapinfo.qh:45
+msgid "Runematch"
+msgstr "Runematch"
+
+#: qcsrc/common/mapinfo.qh:48
+msgid "Race"
+msgstr "Race"
+
+#: qcsrc/common/mapinfo.qh:51
+msgid "Race CTS"
+msgstr "Race CTS"
+
+#: qcsrc/common/mapinfo.qh:54
+msgid "Team Deathmatch"
+msgstr "Team Deathmatch"
+
+#: qcsrc/common/mapinfo.qh:57
+msgid "Capture the Flag"
+msgstr "Capture The Flag"
+
+#: qcsrc/common/mapinfo.qh:60
+msgid "Clan Arena"
+msgstr "Clan Arena"
+
+#: qcsrc/common/mapinfo.qh:63
+msgid "Domination"
+msgstr "Domination"
+
+#: qcsrc/common/mapinfo.qh:66
+msgid "Key Hunt"
+msgstr "Key Hunt"
+
+#: qcsrc/common/mapinfo.qh:69
+msgid "Assault"
+msgstr "Assault"
+
+#: qcsrc/common/mapinfo.qh:72
+msgid "Onslaught"
+msgstr "Onslaught"
+
+#: qcsrc/common/mapinfo.qh:75
+msgid "Nexball"
+msgstr "Nexball"
+
+#: qcsrc/common/mapinfo.qh:78
+msgid "Freeze Tag"
+msgstr "Freeze Tag"
+
+#: qcsrc/common/mapinfo.qh:81
+msgid "Keepaway"
+msgstr "Keepaway"
+
+#: qcsrc/menu/command/menu_cmd.qc:41
 #, c-format
 msgid "error: status is %d\n"
 msgstr "ошибка: статус %d\n"
 
-#: qcsrc/menu/gamecommand.qc:65
+#: qcsrc/menu/command/menu_cmd.qc:64
 msgid "Usage: menu_cmd command..., where possible commands are:\n"
 msgstr "Использование: menu_cmd command..., где возможные команды:\n"
 
-#: qcsrc/menu/gamecommand.qc:66
+#: qcsrc/menu/command/menu_cmd.qc:65
 msgid "  sync - reloads all cvars on the current menu page\n"
 msgstr "  синх. - обновляет все cvar на текущей странице меню\n"
 
-#: qcsrc/menu/gamecommand.qc:67
+#: qcsrc/menu/command/menu_cmd.qc:66
 msgid "  directmenu ITEM - select a menu item as main item\n"
 msgstr "  directmenu ITEM - определить элемент меню как главный элемент\n"
 
-#: qcsrc/menu/gamecommand.qc:193
+#: qcsrc/menu/command/menu_cmd.qc:179
 msgid "error creating curl handle\n"
 msgstr "ошибка при создании curl handle\n"
 
-#: qcsrc/menu/gamecommand.qc:239
+#: qcsrc/menu/command/menu_cmd.qc:186
 msgid "Invalid command. For a list of supported commands, try menu_cmd help.\n"
 msgstr ""
 "Неверная команда. Попробуйте menu_cmd help, чтобы получить список доступных "
@@ -71,17 +140,17 @@ msgstr "%d (%s)"
 msgid "custom"
 msgstr "особо"
 
-#: qcsrc/menu/menu.qc:29
-#, fuzzy, c-format
+#: qcsrc/menu/menu.qc:37
+#, c-format
 msgid "^4MQC Build information: ^1%s\n"
 msgstr "^4Сведения о сборке MQC: %s\n"
 
-#: qcsrc/menu/xonotic/campaign.c:284
-#: qcsrc/menu/xonotic/dialog_singleplayer.c:134
+#: qcsrc/menu/xonotic/campaign.c:288
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:123
 msgid "???"
 msgstr "???"
 
-#: qcsrc/menu/xonotic/campaign.c:285
+#: qcsrc/menu/xonotic/campaign.c:289
 #, c-format
 msgid "Level %d: %s"
 msgstr "Уровень %d: %s"
@@ -113,10 +182,14 @@ msgstr "Разработчики"
 
 #: 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:57
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:61
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:277
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:91
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:96
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:56
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:113
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:74
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:89
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:73
 #: qcsrc/menu/xonotic/dialog_singleplayer_winner.c:21
 msgid "OK"
 msgstr "ОК"
@@ -125,7 +198,7 @@ msgstr "ОК"
 msgid "Welcome"
 msgstr "Добро пожаловать"
 
-#: qcsrc/menu/xonotic/dialog_firstrun.c:33
+#: qcsrc/menu/xonotic/dialog_firstrun.c:40
 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 "
@@ -134,18 +207,34 @@ msgstr ""
 "Добро пожаловать в Xonotic. Для начала, пожалуйста, выберите ваш язык и "
 "введите ваше имя. Позже вы сможете изменить эти настройки в меню."
 
-#: 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_multiplayer_playersetup.c:40
+#: qcsrc/menu/xonotic/dialog_firstrun.c:46
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:37
 #: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:39
 msgid "Name:"
 msgstr "Имя:"
 
-#: qcsrc/menu/xonotic/dialog_firstrun.c:69
+#: qcsrc/menu/xonotic/dialog_firstrun.c:68
+#: qcsrc/menu/xonotic/dialog_settings_user.c:65
+msgid "Text language:"
+msgstr "Язык меню:"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:77
+msgid "Allow player statistics to use your nickname at stats.xonotic.org?"
+msgstr "Разрешить при сборе статистики игры использовать имя игрока?"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:81
+msgid "ALWU2N^Yes"
+msgstr "Да"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:82
+msgid "ALWU2N^No"
+msgstr "Нет"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:83
+msgid "ALWU2N^Undecided"
+msgstr "Спросить позже"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:87
 msgid "Save settings"
 msgstr "Сохранить настройки:"
 
@@ -165,7 +254,7 @@ msgstr "Показывать только текущий вид боеприпа
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:28
 msgid "Align icon:"
-msgstr ""
+msgstr "Выровнять иконки:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:29
 #: qcsrc/menu/xonotic/dialog_hudpanel_centerprint.c:36
@@ -187,37 +276,32 @@ msgstr "Справа"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_centerprint.c:4
 msgid "Centerprint"
-msgstr ""
+msgstr "Главные сообщения"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_centerprint.c:23
-#, fuzzy
 msgid "Message duration:"
-msgstr "Ð\9dаÑ\81Ñ\8bÑ\89енноÑ\81Ñ\82Ñ\8c:"
+msgstr "Ð\94лиÑ\82елÑ\8cноÑ\81Ñ\82Ñ\8c Ñ\81ообÑ\89ениÑ\8f:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_centerprint.c:27
-#, fuzzy
 msgid "Fade time:"
 msgstr "Время исчезновения:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_centerprint.c:31
-#, fuzzy
 msgid "Flip messages order"
 msgstr "Обратить порядок уведомлений"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_centerprint.c:33
-#, fuzzy
 msgid "Text alignment:"
-msgstr "Выравнивание иконок:"
+msgstr "Выравнивание текста:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_centerprint.c:37
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:50
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:51
 msgid "Center"
-msgstr ""
+msgstr "По центру"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_centerprint.c:41
-#, fuzzy
 msgid "Font scale:"
-msgstr "Размер отметок:"
+msgstr "Размер шрифта:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:4
 msgid "Chat Panel"
@@ -329,9 +413,8 @@ msgid "Entry fadetime:"
 msgstr "Время исчезновения:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:4
-#, fuzzy
 msgid "Physics Panel"
-msgstr "Ð\9fанелÑ\8c Ñ\87аÑ\82а"
+msgstr "Ð\9fанелÑ\8c Ñ\84изики"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:22
 #: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:21
@@ -340,62 +423,55 @@ msgid "Panel disabled"
 msgstr "Отключена"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:23
-#, fuzzy
 msgid "Panel enabled"
-msgstr "Ð\9eÑ\82ключена"
+msgstr "Ð\92ключена"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:24
-#, fuzzy
 msgid "Panel enabled even observing"
 msgstr "Включена при наблюдении"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:25
-#, fuzzy
 msgid "Panel enabled only in Race/CTS"
 msgstr "Панель включена в командных играх"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:31
-#, fuzzy
 msgid "Status bar"
 msgstr "Включить полосу состояния"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:33
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:48
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:49
 msgid "Left align"
 msgstr "Слева"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:34
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:52
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:53
 msgid "Right align"
 msgstr "Справа"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:35
-#, fuzzy
 msgid "Inward align"
 msgstr "Внутрь"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:36
-#, fuzzy
 msgid "Outward align"
 msgstr "Наружу"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:40
-#, fuzzy
 msgid "Flip speed/acceleration positions"
 msgstr "Поменять местами здоровье и броню"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:44
-#, fuzzy
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:29
 msgid "Speed:"
 msgstr "Скорость (кБ/с):"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:45
 msgid "Include vertical speed"
-msgstr ""
+msgstr "С вертикальной скоростью"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:56
 msgid "Speed unit:"
-msgstr ""
+msgstr "Единица скорости:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:58
 msgid "qu/s"
@@ -418,23 +494,20 @@ msgid "knots"
 msgstr "узлы"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:64
-#, fuzzy
 msgid "Show"
-msgstr "Показывать Боеприпасы"
+msgstr "Показывать"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:67
-#, fuzzy
 msgid "Top speed"
-msgstr "СкоÑ\80оÑ\81Ñ\82Ñ\8c Ñ\83велиÑ\87ениÑ\8f:"
+msgstr "Ð\9cакÑ\81имÑ\83м Ñ\81коÑ\80оÑ\81Ñ\82и:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:73
-#, fuzzy
 msgid "Acceleration:"
-msgstr "Ð\9eÑ\82Ñ\80ажениÑ\8f:"
+msgstr "УÑ\81коÑ\80ение:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:74
 msgid "Include vertical acceleration"
-msgstr ""
+msgstr "С вертикальним ускорением"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:4
 msgid "Powerups Panel"
@@ -480,8 +553,8 @@ 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:154
-#: qcsrc/menu/xonotic/util.qc:600
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:66
+#: qcsrc/menu/xonotic/util.qc:655
 msgid "Alpha:"
 msgstr "Прозрачность:"
 
@@ -510,6 +583,7 @@ msgid "North"
 msgstr "Север"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:46
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:61
 msgid "Scale:"
 msgstr "Размер:"
 
@@ -539,24 +613,23 @@ msgstr "Таблица Очков"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_score.c:22
 msgid "Score:"
-msgstr ""
+msgstr "Очки:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_score.c:25
 msgid "Rankings:"
-msgstr ""
+msgstr "Рейтинг:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_score.c:26
-#, fuzzy
 msgid "Off"
 msgstr "Отключено"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_score.c:27
 msgid "And me"
-msgstr ""
+msgstr "И мне"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_score.c:28
 msgid "Pure"
-msgstr ""
+msgstr "Чистый"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_timer.c:4
 msgid "Timer Panel"
@@ -587,7 +660,6 @@ msgid "Fade out after:"
 msgstr "Исчезать после:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:26
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:36
 msgid "Never"
 msgstr "Никогда"
 
@@ -613,43 +685,46 @@ msgid "Alpha"
 msgstr "Исчезновение"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:38
-#, fuzzy
 msgid "EF^Both"
-msgstr "1 и 5 минут"
+msgstr "Оба"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:42
 msgid "Weapon icons:"
 msgstr "Иконки оружия:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:45
+msgid "Show only owned weapons"
+msgstr "Показывать только свое оружие"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:48
 msgid "Show weapon ID as:"
 msgstr "Показывать ID оружия как:"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:46
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:49
 msgid "SHOWAS^None"
 msgstr "Не показывать"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:47
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:50
 msgid "Number"
 msgstr "Число"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:48
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:51
 msgid "Bind"
 msgstr "Привязка"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:51
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:54
 msgid "Show Accuracy"
 msgstr "Показывать Точность"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:52
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:55
 msgid "Show Ammo"
 msgstr "Показывать Боеприпасы"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:55
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:58
 msgid "Ammo bar color:"
 msgstr "Цвет полосы боеприпасов"
 
-#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:61
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:64
 msgid "Ammo bar alpha:"
 msgstr "Прозрачность полосы боеприпасов:"
 
@@ -661,24 +736,24 @@ msgstr "Настройка панелей"
 msgid "Panel background defaults:"
 msgstr "Фон по умолчанию:"
 
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:23 qcsrc/menu/xonotic/util.qc:575
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:23 qcsrc/menu/xonotic/util.qc:630
 msgid "Background:"
 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:578
-#: qcsrc/menu/xonotic/util.qc:594 qcsrc/menu/xonotic/util.qc:611
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:91 qcsrc/menu/xonotic/util.qc:633
+#: qcsrc/menu/xonotic/util.qc:649 qcsrc/menu/xonotic/util.qc:666
 msgid "Disable"
 msgstr "Отключить"
 
 #: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:30
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:77 qcsrc/menu/xonotic/util.qc:583
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:77 qcsrc/menu/xonotic/util.qc:638
 msgid "Color:"
 msgstr "Цвет:"
 
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:35 qcsrc/menu/xonotic/util.qc:591
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:35 qcsrc/menu/xonotic/util.qc:646
 msgid "Border size:"
 msgstr "Ширина краёв:"
 
@@ -687,11 +762,11 @@ msgstr "Ширина краёв:"
 msgid "Team color:"
 msgstr "Цвет команды:"
 
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:58 qcsrc/menu/xonotic/util.qc:617
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:58 qcsrc/menu/xonotic/util.qc:672
 msgid "Test team color in configure mode"
 msgstr "Проверить цвет команды в режиме настройки"
 
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:61 qcsrc/menu/xonotic/util.qc:620
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:61 qcsrc/menu/xonotic/util.qc:675
 msgid "Padding:"
 msgstr "Промежуток:"
 
@@ -765,127 +840,123 @@ msgstr "Настройки игрока"
 msgid "Game type:"
 msgstr "Вид игры:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:46
-msgid "Match settings:"
-msgstr "Настройки состязания:"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:49
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:48
 msgid "Time limit:"
 msgstr "Предел времени:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:53
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:61
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:52
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:60
 msgid "Use map specified default"
 msgstr "Исп. предел карты"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:56
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:55
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:154
 #: qcsrc/menu/xonotic/dialog_multiplayer_create.c:155
 #: qcsrc/menu/xonotic/dialog_multiplayer_create.c:156
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:157
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:160
 #: qcsrc/menu/xonotic/dialog_multiplayer_create.c:161
 #: qcsrc/menu/xonotic/dialog_multiplayer_create.c:162
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:163
 msgid "Point limit:"
 msgstr "Предел очков:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:64
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:63
 msgid "Player slots:"
 msgstr "Кол-во игроков:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:67
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:66
 msgid "Number of bots:"
 msgstr "Кол-во ботов:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:71
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:69
 msgid "Bot skill:"
 msgstr "Уровень ботов:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:74
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:72
 msgid "Botlike"
 msgstr "Ботоподобный"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:75
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:73
 msgid "Beginner"
 msgstr "Новичок"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:76
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:74
 msgid "You will win"
 msgstr "Легко победить"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:77
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:75
 msgid "You can win"
 msgstr "Можно победить"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:78
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:76
 msgid "You might win"
 msgstr "Возможно победить"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:79
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:77
 msgid "Advanced"
 msgstr "Продвинутый"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:80
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:78
 msgid "Expert"
 msgstr "Опытный"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:81
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:79
 msgid "Pro"
 msgstr "Профессионал"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:82
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:80
 msgid "Assassin"
 msgstr "Убийца"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:83
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:81
 msgid "Unhuman"
 msgstr "Сверхчеловек"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:84
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:82
 msgid "Godlike"
 msgstr "Богоподобный"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:88
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:87
 msgid "Mutators..."
 msgstr "Мутаторы..."
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:97
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:57
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:96
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:145
 msgid "Advanced settings..."
 msgstr "Доп. настройки..."
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:104
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:103
 msgid "Map list:"
 msgstr "Список карт:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:110
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:109
 msgid "Select all"
 msgstr "Выбрать все"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:113
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:112
 msgid "Select none"
 msgstr "Снять выделение"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:119
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:118
 msgid "Start Multiplayer!"
 msgstr "Начать игру по сети"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:154
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:153
 msgid "Capture limit:"
 msgstr "Предел захватов:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:158
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:157
 msgid "Lives:"
 msgstr "Жизни:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:159
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:158
 msgid "Laps:"
 msgstr "Круги:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:160
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:159
 msgid "Goals:"
 msgstr "Цели:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:164
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:163
 msgid "Frag limit:"
 msgstr "Предел убийств:"
 
@@ -989,29 +1060,28 @@ msgstr "С оружием"
 msgid "MinstaGib only"
 msgstr "Только MinstaGib"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:78
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:81
 msgid "Title:"
 msgstr "Заголовок:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:84
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:87
 msgid "Author:"
 msgstr "Автор:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:90
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:93
 msgid "Features:"
 msgstr "Особенности:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:95
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:98
 msgid "Game types:"
 msgstr "Режимы игры:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:118
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:314
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:121
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:335
 msgid "Close"
 msgstr "Закрыть"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:121
-#, fuzzy
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:124
 msgid "MAP^Play"
 msgstr "Играть"
 
@@ -1033,110 +1103,123 @@ msgid "%s Arena"
 msgstr "%s Арена"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:68
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:167
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:173
 msgid "Dodging"
 msgstr "Уклонение"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:70
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:250
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:258
 msgid "MinstaGib"
 msgstr "MinstaGib"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:72
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:253
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:261
 msgid "NIX"
 msgstr "NIX"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:74
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:205
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:213
 msgid "Rocket Flying"
 msgstr "Ракетный полёт"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:78
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:264
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:76
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:210
+msgid "Invincible Projectiles"
+msgstr "Несокрушимые ракеты"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:80
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:272
 msgid "No start weapons"
 msgstr "Начинать без оружия"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:80
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:189
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:82
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:195
 msgid "Low gravity"
 msgstr "Низкая гравитация"
 
 # В игре это включает не невидимость, а полупрозрачность, хотя так переводить вполне уместно.
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:82
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:170
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:84
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:176
 msgid "Cloaked"
 msgstr "Невидимость"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:84
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:86
 msgid "Hook"
 msgstr "Крюк"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:86
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:173
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:88
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:179
 msgid "Midair"
 msgstr "Воздушный бой"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:88
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:176
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:90
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:182
 msgid "Vampire"
 msgstr "Вампиризм"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:90
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:208
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:92
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:216
 msgid "Piñata"
 msgstr "Piñata"
 
 # "Неисчерпаемое Оружие" - неправильно, галка не даёт бесконечный боеприпас, а сохраняет все подобранные оружия после каждого возраждения.
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:92
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:211
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:94
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:219
 msgid "Weapons stay"
 msgstr "Оружия остаются"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:94
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:180
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:96
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:186
 msgid "Blood loss"
 msgstr "Кровотечение"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:96
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:202
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:98
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:207
 msgid "Jet pack"
 msgstr "Реактивный ранец"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:98
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:100
+msgid "No powerups"
+msgstr "Нет усиления"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:102
+msgid "Powerups"
+msgstr "Бонусы"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:104
 msgid "MUT^None"
 msgstr "Отсутствуют"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:164
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:170
 msgid "Gameplay mutators:"
 msgstr "Мутаторы игрового процесса:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:196
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:201
 msgid "Weapon & item mutators:"
 msgstr "Мутаторы оружия и предметов:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:199
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:204
 msgid "Grappling hook"
 msgstr "Крюк"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:215
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:223
 msgid "Weapon arenas:"
 msgstr "Арены оружия"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:218
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:226
 msgid "Regular (no arena)"
 msgstr "Обычная (не арена)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:239
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:256
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:247
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:264
 msgid "with laser"
 msgstr "с лазером"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:247
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:255
 msgid "Special arenas:"
 msgstr "Особые арены:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:260
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:268
 msgid "Most weapons"
 msgstr "Большинство оружия"
 
@@ -1145,27 +1228,26 @@ msgid "Demo"
 msgstr "Демо"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:28
-msgid "Record demos while playing"
+msgid "Automatically record demos while playing"
 msgstr "Записывать демо во время игры"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:32
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:31
 #: qcsrc/menu/xonotic/dialog_multiplayer_join.c:28
 msgid "Filter:"
 msgstr "Фильтр:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:33
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:32
 #: 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
+#: qcsrc/menu/xonotic/dialog_settings_input.c:40
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:32
 msgid "Clear"
 msgstr "Очистить"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:43
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:45
 msgid "Timedemo"
 msgstr "Проверка производительности"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:46
-#, fuzzy
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:48
 msgid "DEMO^Play"
 msgstr "Играть"
 
@@ -1186,6 +1268,7 @@ msgid "Pause"
 msgstr "Пауза"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join.c:56
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:262
 msgid "Address:"
 msgstr "Адрес:"
 
@@ -1194,7 +1277,7 @@ msgid "Info..."
 msgstr "Сведения..."
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join.c:72
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:317
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:342
 msgid "Join!"
 msgstr "Присоединиться"
 
@@ -1202,290 +1285,468 @@ msgstr "Присоединиться"
 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
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:132
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:133
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:242
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:247
 msgid "N/A"
 msgstr "Н/Д"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:158
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:179
 #, c-format
-msgid "%d/%d, %d free player slots"
-msgstr ""
+msgid "%d/%d"
+msgstr "%d/%d"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:193
+#: qcsrc/menu/xonotic/util.qc:632 qcsrc/menu/xonotic/util.qc:648
+#: qcsrc/menu/xonotic/util.qc:657 qcsrc/menu/xonotic/util.qc:665
+#: qcsrc/menu/xonotic/util.qc:677
+msgid "Default"
+msgstr "По умолчанию"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:172
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:200
 #, c-format
-msgid "%d modified settings"
+msgid "%d modified"
 msgstr "кол-во изменённых настроек: %d"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:172
-msgid "Official settings"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:200
+msgid "Official"
 msgstr "Официальные настройки"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:197
-msgid "N/A (can't connect)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:208
+msgid "N/A (auth library missing, can't connect)"
 msgstr "Н/Д (не могу подключиться)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:205
-msgid "not supported (can't connect)"
-msgstr "не Ð¿Ð¾Ð´Ð´ÐµÑ\80живаеÑ\82Ñ\81Ñ\8f (не Ð¼Ð¾Ð³Ñ\83 Ð¿Ð¾Ð´ÐºÐ»Ñ\8eÑ\87иÑ\82Ñ\8cÑ\81Ñ\8f)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:210
+msgid "N/A (auth library missing)"
+msgstr "Ð\91иблиоÑ\82ека Ð½Ðµ Ñ\83Ñ\81Ñ\82ановлена"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:207
-msgid "not supported (won't encrypt)"
-msgstr "не Ð¿Ð¾Ð´Ð´ÐµÑ\80живаеÑ\82Ñ\81Ñ\8f (Ñ\88иÑ\84Ñ\80ованиÑ\8f Ð½Ðµ Ð±Ñ\83деÑ\82)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:216
+msgid "Not supported (can't connect)"
+msgstr "Ð\9dе Ð¿Ð¾Ð´Ð´ÐµÑ\80живаеÑ\82Ñ\81Ñ\8f (не Ð¼Ð¾Ð³Ñ\83 Ð¿Ð¾Ð´ÐºÐ»Ñ\8eÑ\87иÑ\82Ñ\8cÑ\81Ñ\8f)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:211
-msgid "supported (will encrypt)"
-msgstr "поддеÑ\80живаеÑ\82Ñ\81Ñ\8f (бÑ\83деÑ\82 Ñ\88иÑ\84Ñ\80ование)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:218
+msgid "Not supported (won't encrypt)"
+msgstr "Ð\9dе Ð¿Ð¾Ð´Ð´ÐµÑ\80живаеÑ\82Ñ\81Ñ\8f (Ñ\88иÑ\84Ñ\80ованиÑ\8f Ð½Ðµ Ð±Ñ\83деÑ\82)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:213
-msgid "supported (won't encrypt)"
-msgstr "поддеÑ\80живаеÑ\82Ñ\81Ñ\8f (Ñ\88иÑ\84Ñ\80ованиÑ\8f Ð½Ðµ Ð±Ñ\83деÑ\82)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:222
+msgid "Supported (will encrypt)"
+msgstr "Ð\9fоддеÑ\80живаеÑ\82Ñ\81Ñ\8f (бÑ\83деÑ\82 Ñ\88иÑ\84Ñ\80ование)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:217
-msgid "requested (will encrypt)"
-msgstr "запÑ\80оÑ\88ено (бÑ\83деÑ\82 Ñ\88иÑ\84Ñ\80ование)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:224
+msgid "Supported (won't encrypt)"
+msgstr "Ð\9fоддеÑ\80живаеÑ\82Ñ\81Ñ\8f (Ñ\88иÑ\84Ñ\80ованиÑ\8f Ð½Ðµ Ð±Ñ\83деÑ\82)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:219
-msgid "requested (won't encrypt)"
-msgstr "запÑ\80оÑ\88ено (Ñ\88иÑ\84Ñ\80ованиÑ\8f Ð½Ðµ Ð±Ñ\83деÑ\82)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:228
+msgid "Requested (will encrypt)"
+msgstr "Ð\97апÑ\80оÑ\88ено (бÑ\83деÑ\82 Ñ\88иÑ\84Ñ\80ование)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:223
-msgid "required (can't connect)"
-msgstr "требуется (не могу подключиться)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:230
+msgid "Requested (won't encrypt)"
+msgstr "Запрошено (шифрования не будет)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:225
-msgid "required (will encrypt)"
-msgstr "требуется (будет шифрование)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:234
+msgid "Required (can't connect)"
+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:236
+msgid "Required (will encrypt)"
+msgstr "Требуется (будет шифрование)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:254
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:38
-msgid "Type:"
-msgstr "Вид:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:256
+msgid "Hostname:"
+msgstr "Имя сервера"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:270
+msgid "Gametype:"
+msgstr "Вид игры:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:259
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:275
 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
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:280
 msgid "Mod:"
 msgstr "Мод:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:284
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:285
 msgid "Version:"
 msgstr "Версия:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:289
-msgid "Ping:"
-msgstr "Ð\9fинг:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:290
+msgid "Settings:"
+msgstr "Ð\9dаÑ\81Ñ\82Ñ\80ойки"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:295
-msgid "CA:"
-msgstr "CA:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:297
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:329
+msgid "Players:"
+msgstr "Игроки:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:301
-msgid "Key:"
-msgstr "Ð\9aлÑ\8eÑ\87:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:302
+msgid "Bots:"
+msgstr "Ð\91оÑ\82Ñ\8b:"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:307
+msgid "Free slots:"
+msgstr "Свободные места:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:313
 msgid "Encryption:"
 msgstr "Шифрование:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:63
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:318
+msgid "ID:"
+msgstr "ID:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:323
+msgid "Key:"
+msgstr "Ключ:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:60
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:19
 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 "Настройки оружия..."
+msgid "No crosshair"
+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"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:90
+msgid "Per weapon crosshair"
 msgstr "Зависит от оружия"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:130
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:93
+msgid "Custom crosshair"
+msgstr "Выбрать прицел:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:112
 msgid "Crosshair size:"
 msgstr "Величина прицела:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:134
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:117
 msgid "Crosshair alpha:"
 msgstr "Прозрачность:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:138
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:123
 msgid "Crosshair color:"
 msgstr "Цвет прицела:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:140
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:125
+msgid "Per weapon"
+msgstr "Зависит от оружия"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:127
 msgid "By health"
-msgstr ""
+msgstr "По здоровью"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:143
-#, fuzzy
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:131
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:47
 msgid "Custom"
 msgstr "особо"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:148
-msgid "Enable center dot"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:139
+msgid "Other crosshair settings"
+msgstr "Настройки состязания:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:147
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:6
+msgid "Model settings"
+msgstr "Настройки модели"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:153
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:6
+msgid "View settings"
+msgstr "Посмотреть настройки:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:159
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:6
+msgid "Weapon settings"
+msgstr "Настройки оружия"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:169
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:6
+msgid "HUD settings"
+msgstr "Настройки HUD"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:175
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:203
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:185
+#: qcsrc/menu/xonotic/dialog_settings_input.c:89
+#: qcsrc/menu/xonotic/dialog_settings_user.c:88
+#: qcsrc/menu/xonotic/dialog_settings_video.c:142
+msgid "Apply immediately"
+msgstr "Применить"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:6
+msgid "Crosshair settings"
+msgstr "Настройки прицела"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:28
+msgid "Enable center crosshair dot"
 msgstr "Точка в центре"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:151
-msgid "Size:"
-msgstr "Размер:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:31
+msgid "Dot size:"
+msgstr "Размер точки:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:36
+msgid "Dot alpha:"
+msgstr "Прозрачность точки:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:41
+msgid "Dot color:"
+msgstr "Цвет точки:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:43
+msgid "Use normal crosshair color"
+msgstr "Нормальный цвет прицела"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:54
+msgid "Crosshair animations:"
+msgstr "Анимация прицела:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:57
+msgid "Smooth effects of crosshairs"
+msgstr "Эффекты анимации для прицела"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:61
+msgid "Use rings to indicate weapon status"
+msgstr "Состояния оружия показывать кольцом"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:158
-msgid "Hit test:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:67
+msgid "Hit testing:"
 msgstr "Проверка на попадание:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:159
-msgid "HTST^None"
-msgstr "Ð\9eÑ\82клÑ\8eÑ\87ена"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:69
+msgid "HTTST^Disabled"
+msgstr "Ð\9eÑ\82клÑ\8eÑ\87ено"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:160
-msgid "TrueAim"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:70
+msgid "HTTST^TrueAim"
 msgstr "TrueAim"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:161
-msgid "Enemies"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:71
+msgid "HTTST^Enemies"
 msgstr "Враги"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:164
-msgid "Waypoints setup..."
-msgstr "Ð\9dаÑ\81Ñ\82Ñ\80ойка Ð¾Ñ\82меÑ\82ок..."
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:76
+msgid "Blur crosshair if the shot is obstructed"
+msgstr "РаÑ\81плÑ\8bвÑ\87аÑ\82ий Ð¿Ñ\80иÑ\86ел Ð¿Ñ\80и Ð¿Ñ\80епÑ\8fÑ\82Ñ\81Ñ\82виÑ\8fÑ\85 Ð²Ñ\8bÑ\81Ñ\82Ñ\80елÑ\83 "
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:169
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:81
+msgid "Animate when hitting an enemy"
+msgstr "Анимировать, если прицел на враге"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:85
+msgid "Animate when picking up an item"
+msgstr "Анимировать при подборе штучек"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:40
+msgid "Damage:"
+msgstr "Ущерб:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:43
+msgid "Overlay:"
+msgstr "Индикация переполнения:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:47
+msgid "Factor:"
+msgstr "Множитель увеличения:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:52
+msgid "Fade rate:"
+msgstr "Время исчезновения:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:58
+msgid "Waypoints"
+msgstr "Отметки"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:71
+msgid "Edge offset:"
+msgstr "Смещение краев:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:80
+msgid "Show names above players"
+msgstr "Показывать имена над игроками"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:83
+msgid "Only when near crosshair"
+msgstr "Только в области прицела"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:86
+msgid "Display health and armor"
+msgstr "Показывать здоровье и броню"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:90
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hudconfirm.c:4
 msgid "Enter HUD editor"
 msgstr "Войти в редактор HUD"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:174
-msgid "Force models:"
-msgstr "Использовать свои модели:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hudconfirm.c:28
+msgid "In order for the HUD editor to show, you must first be in game."
+msgstr "HUD редактор работает только в запущенной игре"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:175
-msgid "MDL^None"
-msgstr "Ð\9dеÑ\82"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hudconfirm.c:30
+msgid "Do you wish to start a local game to set up the HUD?"
+msgstr "Ð\9dаÑ\87аÑ\82Ñ\8c Ð¼ÐµÑ\81Ñ\82нÑ\83Ñ\8e Ð¸Ð³Ñ\80Ñ\83, Ñ\87Ñ\82обÑ\8b  Ñ\80едакÑ\82иÑ\80оваÑ\82Ñ\8c HUD?"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:176
-msgid "MDL^Custom"
-msgstr "Ð\92меÑ\81Ñ\82о Ð½ÐµÑ\81Ñ\82андаÑ\80Ñ\82нÑ\8bÑ\85"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hudconfirm.c:33
+msgid "HDCNFRM^Yes"
+msgstr "Ð\94а"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:177
-msgid "MDL^All"
-msgstr "Ð\92меÑ\81Ñ\82о Ð²Ñ\81еÑ\85"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hudconfirm.c:36
+msgid "HDCNFRM^No"
+msgstr "Ð\9dеÑ\82"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:180
-msgid "Disable gore effects"
-msgstr "Ð\9eÑ\82клÑ\8eÑ\87иÑ\82Ñ\8c Ñ\8dÑ\84Ñ\84екÑ\82Ñ\8b Ð¶ÐµÑ\81Ñ\82окоÑ\81Ñ\82и"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:28
+msgid "Body fading:"
+msgstr "Ð\97аÑ\82емнÑ\8fÑ\82Ñ\8c Ñ\83биÑ\82Ñ\8bÑ\85:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:182
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:31
 msgid "Gibs:"
 msgstr "Ошмётки:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:184
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:33
 msgid "GIBS^None"
 msgstr "Нет"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:185
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:34
 msgid "GIBS^Few"
 msgstr "Мало"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:186
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:35
 msgid "GIBS^Many"
 msgstr "Много"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:187
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:36
 msgid "GIBS^Lots"
 msgstr "Тонны"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:191
-msgid "Damage splash:"
-msgstr "Ð\98зобÑ\80аж. Ñ\83Ñ\80она"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:40
+msgid "Playermodel LOD:"
+msgstr "Ð\98гÑ\80оваÑ\8f Ð¼Ð¾Ð´ÐµÐ»Ñ\8c LOD:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:195
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:173
-#: 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:109
-msgid "Apply immediately"
-msgstr "Применить"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:44
+msgid "Force models:"
+msgstr "Использовать свои модели:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:5
-msgid "Waypoints"
-msgstr "Ð\9eÑ\82меÑ\82ки"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:45
+msgid "MDL^None"
+msgstr "Ð\9dеÑ\82"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:23
-msgid "Show base waypoints"
-msgstr "Ð\9fоказÑ\8bваÑ\82Ñ\8c Ð¾Ñ\81новнÑ\8bе Ð¾Ñ\82меÑ\82ки"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:46
+msgid "MDL^Custom"
+msgstr "Ð\92меÑ\81Ñ\82о Ð½ÐµÑ\81Ñ\82андаÑ\80Ñ\82нÑ\8bÑ\85"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:25
-msgid "Waypoint scale:"
-msgstr "РазмеÑ\80 Ð¾Ñ\82меÑ\82ок:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:47
+msgid "MDL^All"
+msgstr "Ð\92меÑ\81Ñ\82о Ð²Ñ\81еÑ\85"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:29
-msgid "Waypoint alpha:"
-msgstr "Ð\9fÑ\80озÑ\80аÑ\87ноÑ\81Ñ\82Ñ\8c Ð¾Ñ\82меÑ\82ок:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:50
+msgid "Force player models to mine"
+msgstr "Ð\92Ñ\81еÑ\85 Ð¸Ð³Ñ\80оков ÐºÐ°Ðº Ð¼Ð¾Ñ\8e Ð¼Ð¾Ð´ÐµÐ»Ñ\8c Ð¿Ð¾ÐºÐ°Ð·Ñ\8bваÑ\82Ñ\8c"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:34
-msgid "Show names:"
-msgstr "Ð\9fоказÑ\8bваÑ\82Ñ\8c Ð¸Ð¼ÐµÐ½Ð°:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:52
+msgid "Force player colors to mine"
+msgstr "Ð\92Ñ\81еÑ\85 Ð¸Ð³Ñ\80оков Ð¿Ð¾ÐºÐ°Ð·Ñ\8bваÑ\82Ñ\8c Ð² Ð¼Ð¾ÐµÐ¼ Ñ\86веÑ\82е"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:37
-msgid "Teammates"
-msgstr "СоÑ\8eзники"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:28
+msgid "Field of view:"
+msgstr "Угол Ð¾Ð±Ð·Ð¾Ñ\80а:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:38
-msgid "All players"
-msgstr "Ð\92Ñ\81е Ð¸Ð³Ñ\80оки"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:31
+msgid "Zoom:"
+msgstr "РаÑ\81паÑ\85нÑ\83Ñ\82Ñ\8c"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:6
-msgid "Weapon settings"
-msgstr "Настройки оружия"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:33
+msgid "RETICLE^Fullscreen"
+msgstr "На весь экран"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:34
+msgid "RETICLE^With reticle"
+msgstr "С прицелом крестом"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:38
+msgid "ZOOM^Factor:"
+msgstr "Фактор:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:42
+msgid "ZOOM^Speed:"
+msgstr "Скорость (кБ/с):"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:52
+msgid "ZOOM^Instant"
+msgstr "Мгновенный"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:56
+msgid "ZOOM^Sensitivity:"
+msgstr "Чувствительность:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:59
+msgid "Velocity zoom:"
+msgstr "С возрастанием скорости:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:61
+msgid "VZOOM^Disabled"
+msgstr "Отключено"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:62
+msgid "VZOOM^Forward only"
+msgstr "Только вперед"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:63
+msgid "VZOOM^All directions"
+msgstr "Все направления"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:67
+msgid "VZOOM^Speed"
+msgstr "Скорость"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:72
+msgid "Allow passing through walls while spectating"
+msgstr "Проходить сквозь стены при наблюдении"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:75
+msgid "1st person perspective"
+msgstr "Вид со своей позиции"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:79
+msgid "Smooth the view when landing from a jump"
+msgstr "Мягкое приземление"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:83
+msgid "Smooth the view while crouching"
+msgstr "Мягкое вползание"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:87
+msgid "View waving while idle"
+msgstr "Мерцание при отдыхе"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:91
+msgid "View bobbing while walking around"
+msgstr "Раскачивание при ходьбе"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:96
+msgid "3rd person perspective"
+msgstr "Вид внешней камерой"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:100
+msgid "Back distance"
+msgstr "Глубина"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:106
+msgid "Up distance"
+msgstr "Высота:"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:29
 msgid "Weapon priority list:"
 msgstr "Список приоритета оружия:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:34
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:33
 msgid "Up"
 msgstr "Вверх"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:37
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:36
 msgid "Down"
 msgstr "Вниз"
 
@@ -1497,13 +1758,21 @@ msgstr "Использовать приоритеты для прокрутки
 msgid "Auto switch weapons on pickup"
 msgstr "Автоматически переключаться на поднятое оружие"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:45
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:46
 msgid "Draw 1st person weapon model"
 msgstr "Показывать модель оружия в руках"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:55
-msgid "Flip view horizontally"
-msgstr "Перевернуть изображение по горизонтали"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:58
+msgid "Gun model swaying"
+msgstr "Инерция оружия"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:63
+msgid "Gun model bobbing"
+msgstr "<Поменять модель оружия>"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:68
+msgid "VWMDL^Scale"
+msgstr "Размер"
 
 #: qcsrc/menu/xonotic/dialog_news.c:4
 msgid "News"
@@ -1517,18 +1786,146 @@ msgstr "http://www.xonotic.org/team/blog/"
 msgid "Quit"
 msgstr "Выход"
 
-#: qcsrc/menu/xonotic/dialog_quit.c:17
+#: qcsrc/menu/xonotic/dialog_quit.c:18
 msgid "Are you sure you want to quit?"
 msgstr "Вы точно желаете выйти?"
 
-#: qcsrc/menu/xonotic/dialog_quit.c:20
+#: qcsrc/menu/xonotic/dialog_quit.c:21
 msgid "Yes"
 msgstr "Да"
 
-#: qcsrc/menu/xonotic/dialog_quit.c:21
+#: qcsrc/menu/xonotic/dialog_quit.c:22
 msgid "No"
 msgstr "Нет"
 
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:4
+msgid "Sandbox Tools"
+msgstr "Инструменты песочницы"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:24
+msgid "Spawn"
+msgstr "Новое"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:25
+msgid "Remove *"
+msgstr "Убрать"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:27
+msgid "Copy *"
+msgstr "Копировать"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:28
+msgid "Paste"
+msgstr "Вставить"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:30
+msgid "Bone:"
+msgstr "Кость:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:35
+msgid "Set * as child"
+msgstr "* установить как ребенка"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:36
+msgid "Attach to *"
+msgstr "Прикрепить к *"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:38
+msgid "Detach from *"
+msgstr "Открепить от *"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:41
+msgid "Visual object properties for *:"
+msgstr "Визуальные свойства для *:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:43
+msgid "Set skin:"
+msgstr "Оформления:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:45
+msgid "Set alpha:"
+msgstr "Установить прозрачность:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:48
+msgid "Set color main:"
+msgstr "Установить главный цвет:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:50
+msgid "Set color glow:"
+msgstr "Цвет люминафора:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:54
+msgid "Set frame:"
+msgstr "Рама:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:58
+msgid "Physical object properties for *:"
+msgstr "Физические свойства для *:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:60
+msgid "Set material:"
+msgstr "Определить материал:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:66
+msgid "Set solidity:"
+msgstr "Установить прочность:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:67
+msgid "Non-solid"
+msgstr "Не твердый"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:68
+msgid "Solid"
+msgstr "Твердый"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:69
+msgid "Set physics:"
+msgstr "Установить физику:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:70
+msgid "Static"
+msgstr "Статический"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:71
+msgid "Movable"
+msgstr "Динамический"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:72
+msgid "Physical"
+msgstr "Физика"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:74
+msgid "Set scale:"
+msgstr "Установить размер:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:76
+msgid "Set force:"
+msgstr "Сила:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:80
+msgid "Claim *"
+msgstr "Взять *"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:82
+msgid "* object info"
+msgstr "свойства объекта *"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:83
+msgid "* mesh info"
+msgstr "свойство модели *"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:84
+msgid "* attachment info"
+msgstr "* свойства прикрепления"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:85
+msgid "Show help"
+msgstr "Показывать помощь"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:86
+msgid "* is the object you are facing"
+msgstr "* это объект перед вами"
+
 #: qcsrc/menu/xonotic/dialog_settings.c:4
 msgid "Settings"
 msgstr "Настройки"
@@ -1554,9 +1951,9 @@ msgid "Audio"
 msgstr "Звук"
 
 #: qcsrc/menu/xonotic/dialog_settings.c:22
-#: qcsrc/menu/xonotic/dialog_settings_network.c:4
-msgid "Network"
-msgstr "СеÑ\82ь"
+#: qcsrc/menu/xonotic/dialog_settings_user.c:4
+msgid "User"
+msgstr "Ð\9fолÑ\8cзоваÑ\82ель"
 
 #: qcsrc/menu/xonotic/dialog_settings.c:23
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:4
@@ -1567,194 +1964,170 @@ msgstr "Разное"
 msgid "Master:"
 msgstr "Главный:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:33
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:35
 msgid "Music:"
 msgstr "Музыка:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:41
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:45
 msgid "VOL^Ambient:"
 msgstr "Фоновые звуки:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:48
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:54
 msgid "Info:"
 msgstr "Инфо:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:55
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:63
 msgid "Items:"
 msgstr "Предметы:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:62
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:72
 msgid "Pain:"
 msgstr "Боль:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:69
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:81
 msgid "Player:"
 msgstr "Игрок:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:76
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:90
 msgid "Shots:"
 msgstr "Выстрелы:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:83
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:99
 msgid "Voice:"
 msgstr "Голос:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:91
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:109
 msgid "Weapons:"
 msgstr "Оружие:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:98
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:156
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:117
+msgid "New style sound attenuation"
+msgstr "Новый стиль ослабления звука"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:119
+msgid "Mute sounds when not active"
+msgstr "Убрать звук если неактивный"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:122
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:194
 msgid "Frequency:"
 msgstr "Частота:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:100
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:124
 msgid "8 kHz"
 msgstr "8 кГц"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:101
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:125
 msgid "11.025 kHz"
 msgstr "11.025 кГц"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:102
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:126
 msgid "16 kHz"
 msgstr "16 кГц"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:103
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:127
 msgid "22.05 kHz"
 msgstr "22.05 кГц"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:104
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:128
 msgid "24 kHz"
 msgstr "24 кГц"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:105
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:129
 msgid "32 kHz"
 msgstr "32 кГц"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:106
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:130
 msgid "44.1 kHz"
 msgstr "44.1 кГц"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:107
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:131
 msgid "48 kHz"
 msgstr "48 кГц"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:110
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:134
 msgid "Channels:"
 msgstr "Каналы:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:112
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:136
 msgid "Mono"
 msgstr "Моно"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:113
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:137
 msgid "Stereo"
 msgstr "Стерео"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:114
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:138
 msgid "2.1"
 msgstr "2.1"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:115
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:139
 msgid "4"
 msgstr "4"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:116
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:140
 msgid "5"
 msgstr "5"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:117
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:141
 msgid "5.1"
 msgstr "5.1"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:118
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:142
 msgid "6.1"
 msgstr "6.1"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:119
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:143
 msgid "7.1"
 msgstr "7.1"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:123
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:146
 msgid "Swap Stereo"
 msgstr "Обмен местами каналов"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:127
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:148
 msgid "Headphone friendly mode"
 msgstr "Ориентированный на наушники режим"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:131
-msgid "Spatial voices:"
-msgstr "Объёмные голоса:"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:132
-msgid "VOCS^None"
-msgstr "Отключены"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:133
-msgid "VOCS^Taunts"
-msgstr "Насмешки"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:134
-msgid "VOCS^All"
-msgstr "Все"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:137
-msgid "Taunt range:"
-msgstr "Радиус насмешек:"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:140
-msgid "RNG^Very short"
-msgstr "Очень маленький"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:141
-msgid "RNG^Short"
-msgstr "Маленький"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:142
-msgid "RNG^Normal"
-msgstr "Обычный"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:143
-msgid "RNG^Long"
-msgstr "Большой"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:170
+msgid "Hit indication sound"
+msgstr "Оповещать о попадании"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:144
-msgid "RNG^Full"
-msgstr "Ð\9fолнÑ\8bй"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:172
+msgid "Chat message sound"
+msgstr "Ð\97вÑ\83к Ñ\87аÑ\82а:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:151
-msgid "Automatic taunts"
-msgstr "Ð\90вÑ\82омаÑ\82иÑ\87еÑ\81кие Ð½Ð°Ñ\81меÑ\88ки"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:174
+msgid "Menu sounds"
+msgstr "Ð\97вÑ\83ки Ð¼ÐµÐ½Ñ\8e"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:160
-msgid "Time warning:"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:177
+msgid "Time announcer:"
 msgstr "Предупреждение о таймауте за:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:162
-msgid "WRN^None"
-msgstr "Ð\9dеÑ\82"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:179
+msgid "WRN^Disabled"
+msgstr "Ð\9eÑ\82клÑ\8eÑ\87ено"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:163
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:180
 msgid "1 minute"
 msgstr "1 минуту"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:164
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:181
 msgid "5 minutes"
 msgstr "5 минут"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:165
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:182
 msgid "WRN^Both"
 msgstr "1 и 5 минут"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:168
-msgid "Hit indicator"
-msgstr "Ð\9eповеÑ\89аÑ\82Ñ\8c Ð¾ Ð¿Ð¾Ð¿Ð°Ð´Ð°Ð½Ð¸и"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:189
+msgid "Automatic taunts"
+msgstr "Ð\90вÑ\82омаÑ\82иÑ\87еÑ\81кие Ð½Ð°Ñ\81меÑ\88ки"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:170
-msgid "Menu sounds"
-msgstr "Ð\97вÑ\83ки Ð¼ÐµÐ½Ñ\8e"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:199
+msgid "Debug info about sounds"
+msgstr "Ð\94аннÑ\8bе Ð¾Ð± Ð¾Ñ\82ладке Ð·Ð²Ñ\83ка"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:38
 msgid "Quality preset:"
@@ -1817,231 +2190,227 @@ 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 "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 "Разрешение текстур:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:73
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:65
 msgid "RES^Leet"
 msgstr "Ужасное"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:74
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:66
 msgid "RES^Lowest"
 msgstr "Нижайшее"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:75
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:67
+msgid "RES^Very low"
+msgstr "Низкое"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:68
 msgid "RES^Low"
 msgstr "Низкое"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:76
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:69
 msgid "RES^Normal"
 msgstr "Обычное"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:77
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:70
 msgid "RES^Good"
 msgstr "Хорошее"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:78
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:71
 msgid "RES^Best"
 msgstr "Лучшее"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:91
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:94
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:84
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:87
 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:93
+msgid "Use lightmaps"
+msgstr "Использовать карты освещения"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:105
-msgid "8x"
-msgstr "8x"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:94
+msgid "Deluxe mapping"
+msgstr "Особое качество"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:106
-msgid "16x"
-msgstr "16x"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:96
+msgid "Gloss"
+msgstr "Блеск"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:110
-msgid "Particle quality:"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:100
+msgid "Particles quality:"
 msgstr "Качество частиц:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:113
-msgid "Particle distance:"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:103
+msgid "Particles distance:"
 msgstr "Дальность частиц:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:117
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:106
+msgid "Damage effects:"
+msgstr "Эффект повреждения:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:108
+msgid "DMGPRTCLS^Disabled"
+msgstr "Отключено"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:109
+msgid "DMGPRTCLS^Skeletal"
+msgstr "Только на модели"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:110
+msgid "DMGPRTCLS^All"
+msgstr "Все"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:114
 msgid "Decals"
 msgstr "Декали:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:118
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:115
 msgid "Decals on models"
-msgstr ""
+msgstr "Также на объектах"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:122
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:119
 msgid "Distance:"
 msgstr "Дальность:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:128
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:125
 msgid "Time:"
 msgstr "Время:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:134
-msgid "Use lightmaps"
-msgstr "Использовать карты освещения"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:135
-msgid "Deluxe mapping"
-msgstr "Особое качество"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:137
-msgid "Gloss"
-msgstr "Блеск"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:140
-msgid "Offset mapping"
-msgstr "Офсетное текстурирование"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:142
-msgid "Relief mapping"
-msgstr "Рельефное текстурирование"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:145
-msgid "Reflections:"
-msgstr "Отражения:"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:148
-msgid "Blurred"
-msgstr "Размытые"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:149
-msgid "REFL^Good"
-msgstr "Хорошие"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:150
-msgid "Sharp"
-msgstr "Резкие"
+# Перевод может быть неверным.
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:131
+msgid "Coronas"
+msgstr "Короны"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:155
-msgid "Show surfaces"
-msgstr "Ð\9fоказÑ\8bваÑ\82Ñ\8c Ð¿Ð¾Ð²ÐµÑ\80Ñ\85ноÑ\81Ñ\82и"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:132
+msgid "Use Occlusion Queries"
+msgstr "Ð\98Ñ\81полÑ\8cзоваÑ\82Ñ\8c Occlusion Queries (Ð\9fÑ\80овеÑ\80ка Ð²Ð¸Ð´Ð¸Ð¼Ð¾Ñ\81Ñ\82и)"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:157
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:134
 msgid "No dynamic lighting"
 msgstr "Без динамического освещения"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:159
-msgid "Flash blend approximation"
-msgstr "Ð\93Ñ\80Ñ\83баÑ\8f Ð¸Ð¼Ð¸Ñ\82аÑ\86иÑ\8f"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:136
+msgid "Fake corona lighting"
+msgstr "Ð\9eÑ\81веÑ\89ение ÐºÐ¾Ñ\80онÑ\8b"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:161
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:138
 msgid "Realtime dynamic lighting"
 msgstr "Дин. освещение в реальном времени"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:162
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:166
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:139
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:143
 msgid "Shadows"
 msgstr "Тени"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:165
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:142
 msgid "Realtime world lighting"
 msgstr "Дин. освещение мира в реальном времени"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:170
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:147
 msgid "Use normal maps"
 msgstr "Использовать карты нормалей"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:172
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:149
 msgid "Soft shadows"
 msgstr "Мягкие тени"
 
-# Перевод может быть неверным.
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:175
-msgid "Coronas"
-msgstr "Короны"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:153
+msgid "Show surfaces"
+msgstr "Показывать поверхности"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:176
-msgid "Use Occlusion Queries"
-msgstr "Использовать Occlusion Queries (Проверка видимости)"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:155
+msgid "Offset mapping"
+msgstr "Офсетное текстурирование"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:157
+msgid "Relief mapping"
+msgstr "Рельефное текстурирование"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:159
+msgid "LOD"
+msgstr "LOD - степень детализации "
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:178
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:162
 msgid "Bloom"
 msgstr "Свечение"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:180
-msgid "High Dynamic Range (HDR)"
-msgstr "High Dynamic Range (HDR)"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:164
+msgid "Reflections:"
+msgstr "Отражения:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:167
+msgid "Blurred"
+msgstr "Размытые"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:168
+msgid "REFL^Good"
+msgstr "Хорошие"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:184
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:169
+msgid "Sharp"
+msgstr "Резкие"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:174
 msgid "Motion blur:"
 msgstr "Размытие от движения:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:189
-msgid "Blur and sharpen postprocessing"
-msgstr ""
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:179
+msgid "Extra postprocessing effects"
+msgstr "Дополнительные эффекты"
 
 #: qcsrc/menu/xonotic/dialog_settings_input.c:26
 msgid "Key bindings:"
 msgstr "Привязки клавиш:"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:31
+#: qcsrc/menu/xonotic/dialog_settings_input.c:30
 msgid "Change key..."
 msgstr "Сменить кнопку..."
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:35
+#: qcsrc/menu/xonotic/dialog_settings_input.c:34
 msgid "Edit..."
 msgstr "Изменить..."
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:46
-msgid "Sensitivity:"
-msgstr "Чувствительность:"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:45
+msgid "Pressing \"enter console\" key also closes it"
+msgstr "\"открыть консоль\" также закрывает"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:51
-msgid "UI mouse speed:"
-msgstr "СкоÑ\80оÑ\81Ñ\82Ñ\8c Ð¼Ñ\8bÑ\88и Ð² UI:"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:47
+msgid "Automatically repeat jumping if holding jump"
+msgstr "Ð\9fовÑ\82оÑ\80Ñ\8fÑ\82Ñ\8c Ð¿Ñ\80Ñ\8bжок Ð°Ð²Ñ\82омаÑ\82иÑ\87еÑ\81ки Ð¿Ñ\80и Ñ\83деÑ\80жании"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:55
-msgid "Mouse filter"
-msgstr "Фильтр мыши"
-
-#: qcsrc/menu/xonotic/dialog_settings_input.c:57
-msgid "Invert mouse"
-msgstr "Обратить мышь"
-
-#: qcsrc/menu/xonotic/dialog_settings_input.c:60
-#: qcsrc/menu/xonotic/dialog_settings_input.c:62
+#: qcsrc/menu/xonotic/dialog_settings_input.c:51
+#: qcsrc/menu/xonotic/dialog_settings_input.c:53
+#: qcsrc/menu/xonotic/dialog_settings_input.c:56
 msgid "Use joystick input"
 msgstr "Использовать ввод с джойстика"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:65
-#: qcsrc/menu/xonotic/dialog_settings_input.c:67
-msgid "Turn off OS mouse acceleration"
-msgstr "Отключить ускорение OS мыши"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:61
+msgid "Mouse:"
+msgstr "Мышь:"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:69
-msgid "\"enter console\" also closes"
-msgstr "\"открыть консоль\" также закрывает"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:64
+msgid "Sensitivity:"
+msgstr "Чувствительность:"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:68
+msgid "Smooth aiming"
+msgstr "Плавное прицеливание"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:71
+msgid "Invert aiming"
+msgstr "Обратить мышь"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:75
+#: qcsrc/menu/xonotic/dialog_settings_input.c:77
+#: qcsrc/menu/xonotic/dialog_settings_input.c:80
+msgid "Disable system mouse acceleration"
+msgstr "Отключить ускорение мыши"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:85
+msgid "Enable built in mouse acceleration"
+msgstr "Включить ускорение мыши"
 
 #: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:5
 msgid "User defined key bind"
@@ -2064,96 +2433,261 @@ msgid "Cancel"
 msgstr "Отмена"
 
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:26
-msgid "Menu skins:"
-msgstr "Оформления:"
+msgid "Network:"
+msgstr "Сеть"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:31
+msgid "56k"
+msgstr "56k"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:32
+msgid "ISDN"
+msgstr "ISDN"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:33
+msgid "Slow ADSL"
+msgstr "Медленный ADSL"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:34
+msgid "Fast ADSL"
+msgstr "Быстрый ADSL"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:35
+msgid "Broadband"
+msgstr "Широкополосное"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:39
+msgid "Input packets/s:"
+msgstr "Кол-во пакетов/с"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:45
+msgid "Local latency:"
+msgstr "Местная задержка:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:50
+msgid "Client UDP port:"
+msgstr "UDP порт клиента:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:55
+msgid "Show netgraph"
+msgstr "Показывать netgraph"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:59
+msgid "Client-side movement prediction"
+msgstr "Предсказание движения на стороне клиента"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:62
+msgid "Movement error compensation"
+msgstr "Компенсация ошибки движения"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:66
+msgid "Downloads:"
+msgstr "Загрузки:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:69
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:81
+msgid "Maximum:"
+msgstr "Максимум:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:73
+msgid "Speed (kB/s):"
+msgstr "Скорость (кБ/с):"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:78
+msgid "Framerate:"
+msgstr "Частота кадров:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:83
+msgid "MAXFPS^5 fps"
+msgstr "5 кадров в секунду"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:84
+msgid "MAXFPS^10 fps"
+msgstr "10 кадров в секунду"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:85
+msgid "MAXFPS^20 fps"
+msgstr "20 кадров в секунду"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:86
+msgid "MAXFPS^30 fps"
+msgstr "30 кадров в секунду"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:87
+msgid "MAXFPS^40 fps"
+msgstr "40 кадров в секунду"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:88
+msgid "MAXFPS^50 fps"
+msgstr "50 кадров в секунду"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:89
+msgid "MAXFPS^60 fps"
+msgstr "60 кадров в секунду"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:90
+msgid "MAXFPS^70 fps"
+msgstr "70 кадров в секунду"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:91
+msgid "MAXFPS^100 fps"
+msgstr "100 кадров в секунду"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:92
+msgid "MAXFPS^125 fps"
+msgstr "125 кадров в секунду"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:47
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:93
+msgid "MAXFPS^200 fps"
+msgstr "200 кадров в секунду"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:94
+msgid "MAXFPS^Unlimited"
+msgstr "Неограниченно"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:98
+msgid "Target:"
+msgstr "Цель:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:100
+msgid "TRGT^Disabled"
+msgstr "Отключено"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:101
+msgid "TRGT^30 fps"
+msgstr "30 кадров в секунду"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:102
+msgid "TRGT^40 fps"
+msgstr "40 кадров в секунду"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:103
+msgid "TRGT^50 fps"
+msgstr "50 кадров в секунду"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:104
+msgid "TRGT^60 fps"
+msgstr "60 кадров в секунду"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:105
+msgid "TRGT^100 fps"
+msgstr "100 кадров в секунду"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:106
+msgid "TRGT^125 fps"
+msgstr "125 кадров в секунду"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:107
+msgid "TRGT^200 fps"
+msgstr "200 кадров в секунду"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:111
+msgid "Idle limit:"
+msgstr "Предел неактивности:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:113
+msgid "IDLFPS^10 fps"
+msgstr "10 кадров в секунду"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:114
+msgid "IDLFPS^20 fps"
+msgstr "20 кадров в секунду"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:115
+msgid "IDLFPS^30 fps"
+msgstr "30 кадров в секунду"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:116
+msgid "IDLFPS^60 fps"
+msgstr "60 кадров в секунду"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:117
+msgid "IDLFPS^Unlimited"
+msgstr "Неограниченно"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:122
+msgid "Show frames per second"
+msgstr "Показывать кадры/с (FPS)"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:125
+msgid "Save processing time for other apps"
+msgstr "Беречь время процессора для других приложений"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:129
+msgid "Menu tooltips:"
+msgstr "Меню для инструментов:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:131
+msgid "TLTIP^Disabled"
+msgstr "Отключено"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:132
+msgid "TLTIP^Standard"
+msgstr "Стандарт"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:133
+msgid "TLTIP^Advanced"
+msgstr "Продвинутый"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:137
 msgid "Show current time"
 msgstr "Показывать время"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:49
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:139
 msgid "Show current date"
 msgstr "Показывать дату"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:51
-msgid "Show frames per second"
-msgstr "Показывать кадры/с (FPS)"
-
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:53
-msgid "Minimize input latency"
-msgstr "Уменьшить задержку ввода"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:141
+msgid "Enable developer mode"
+msgstr "Включить режим разработчика"
 
 #: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:5
 msgid "Advanced settings"
 msgstr "Доп. настройки"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:23
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:31
 msgid "Cvar filter:"
 msgstr "Фильтр Cvar:"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:34
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:44
 msgid "Setting:"
 msgstr "Настройка:"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:42
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:48
+msgid "Type:"
+msgstr "Вид:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:52
 msgid "Value:"
 msgstr "Значение:"
 
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:56
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:68
 msgid "Description:"
 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 "Показывать netgraph"
-
-#: qcsrc/menu/xonotic/dialog_settings_network.c:33
-msgid "Network speed:"
-msgstr "Скорость соединения:"
-
-#: qcsrc/menu/xonotic/dialog_settings_network.c:35
-msgid "56k"
-msgstr "56k"
-
-#: qcsrc/menu/xonotic/dialog_settings_network.c:36
-msgid "ISDN"
-msgstr "ISDN"
-
-#: qcsrc/menu/xonotic/dialog_settings_network.c:37
-msgid "Slow ADSL"
-msgstr "Медленный ADSL"
-
-#: qcsrc/menu/xonotic/dialog_settings_network.c:38
-msgid "Fast ADSL"
-msgstr "Быстрый ADSL"
-
-#: qcsrc/menu/xonotic/dialog_settings_network.c:39
-msgid "Broadband"
-msgstr "Широкополосное"
+#: qcsrc/menu/xonotic/dialog_settings_user.c:27
+msgid "Menu skins:"
+msgstr "Оформления:"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:42
-msgid "Input packets/s:"
-msgstr "Ð\9aол-во Ð¿Ð°ÐºÐµÑ\82ов/Ñ\81"
+#: qcsrc/menu/xonotic/dialog_settings_user.c:31
+msgid "Set skin"
+msgstr "Ð\9eÑ\84оÑ\80млениÑ\8f:"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:46
-msgid "HTTP downloads:"
-msgstr "HTTP загрузки:"
+#: qcsrc/menu/xonotic/dialog_settings_user.c:74
+msgid "Set language"
+msgstr "Язык"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:49
-msgid "Downloads:"
-msgstr "Ð\97агÑ\80Ñ\83зки:"
+#: qcsrc/menu/xonotic/dialog_settings_user.c:79
+msgid "Disable gore effects and harsh language"
+msgstr "Ð\9eÑ\82клÑ\8eÑ\87иÑ\82Ñ\8c Ñ\8dÑ\84Ñ\84екÑ\82Ñ\8b Ð¶ÐµÑ\81Ñ\82окоÑ\81Ñ\82и"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:53
-msgid "Speed (kB/s):"
-msgstr "СкоÑ\80оÑ\81Ñ\82Ñ\8c (кÐ\91\81):"
+#: qcsrc/menu/xonotic/dialog_settings_user.c:82
+msgid "Allow player statistics to track your client"
+msgstr "РазÑ\80еÑ\88иÑ\82Ñ\8c Ñ\81Ñ\82аÑ\82иÑ\81Ñ\82ке Ð¾Ñ\82Ñ\81леживаÑ\82Ñ\8c ÐºÐ»Ð¸ÐµÐ½Ñ\82а"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:57
-msgid "Client UDP port:"
-msgstr "UDP порт клиента:"
+#: qcsrc/menu/xonotic/dialog_settings_user.c:84
+msgid "Allow player statistics to use your nickname"
+msgstr "Разрешить статистике использовать имя игрока"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:26
 msgid "Resolution:"
@@ -2203,103 +2737,173 @@ msgstr "Колоссальный"
 msgid "Color depth:"
 msgstr "Глубина цвета:"
 
+#: qcsrc/menu/xonotic/dialog_settings_video.c:44
+msgid "16bit"
+msgstr "16 бит"
+
 #: qcsrc/menu/xonotic/dialog_settings_video.c:45
+msgid "32bit"
+msgstr "32 бита"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:48
 msgid "Full screen"
 msgstr "На весь экран"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:46
+#: qcsrc/menu/xonotic/dialog_settings_video.c:49
 msgid "Vertical Synchronization"
 msgstr "Вертикальная синхронизация"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:49
-msgid "Use OpenGL 2.0 shaders (GLSL)"
-msgstr "Ð\98Ñ\81полÑ\8cзоваÑ\82Ñ\8c Ñ\88ейдеÑ\80Ñ\8b OpenGL 2.0 (GLSL)"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:53
+msgid "Anisotropy:"
+msgstr "Ð\90низоÑ\82Ñ\80опиÑ\8f:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:52
-msgid "Use GLSL to handle color control"
-msgstr "Ð\98Ñ\81полÑ\8cзоваÑ\82Ñ\8c GLSL Ð´Ð»Ñ\8f Ñ\83пÑ\80авлениÑ\8f Ñ\86веÑ\82ом"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:55
+msgid "ANISO^Disabled"
+msgstr "Ð\9eÑ\82клÑ\8eÑ\87ена"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:56
-msgid "Vertex Buffer Objects (VBOs)"
-msgstr "Использование Vertex Buffer Objects (VBOs)"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:66
+msgid "2x"
+msgstr "2x"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:57
+#: qcsrc/menu/xonotic/dialog_settings_video.c:67
+msgid "4x"
+msgstr "4x"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:58
+msgid "8x"
+msgstr "8x"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:59
-msgid "VBO^Off"
-msgstr "Отключено"
+msgid "16x"
+msgstr "16x"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:60
-msgid "Vertices, some Tris (compatible)"
-msgstr "Ð\92еÑ\80Ñ\88инÑ\8b, Ð½ÐµÐºÐ¾Ñ\82оÑ\80Ñ\8bе Ñ\82Ñ\80еÑ\83голÑ\8cники (Ñ\81овмеÑ\81Ñ\82имо)"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:62
+msgid "Antialiasing:"
+msgstr "Сглаживание:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:63
-msgid "Vertices"
-msgstr "Ð\92еÑ\80Ñ\88инÑ\8b"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:65
+msgid "AA^Disabled"
+msgstr "Ð\9eÑ\82клÑ\8eÑ\87ено"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:64
-msgid "Vertices and Triangles"
-msgstr "Вершины и треугольники"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:71
+msgid "High-quality frame buffer"
+msgstr "Высококачественный буфер кадров"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:67
+#: qcsrc/menu/xonotic/dialog_settings_video.c:76
 msgid "Depth first:"
 msgstr "Сперва глубина:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:69
+#: qcsrc/menu/xonotic/dialog_settings_video.c:78
 msgid "DF^Disabled"
 msgstr "Отключено"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:70
+#: qcsrc/menu/xonotic/dialog_settings_video.c:79
 msgid "DF^World"
 msgstr "Мир"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:71
+#: qcsrc/menu/xonotic/dialog_settings_video.c:80
 msgid "DF^All"
 msgstr "Всё"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:75
-msgid "Disable multithreaded OpenGL"
-msgstr "Ð\9eÑ\82клÑ\8eÑ\87иÑ\82Ñ\8c Ð¼Ð½Ð¾Ð³Ð¾Ð¿Ð¾Ñ\82оÑ\87нÑ\8bй OpenGL"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:83
+msgid "Vertex Buffer Objects (VBOs)"
+msgstr "Ð\98Ñ\81полÑ\8cзование Vertex Buffer Objects (VBOs)"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:77
-msgid "Wait for GPU to finish each frame"
-msgstr "Ð\96даÑ\82Ñ\8c Ð·Ð°Ð²ÐµÑ\80Ñ\88ениÑ\8f ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ ÐºÐ°Ð´Ñ\80а GPU"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:86
+msgid "VBO^Off"
+msgstr "Ð\9eÑ\82клÑ\8eÑ\87ено"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:80
+#: qcsrc/menu/xonotic/dialog_settings_video.c:87
+msgid "Vertices, some Tris (compatible)"
+msgstr "Вершины, некоторые треугольники (совместимо)"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:90
+msgid "Vertices"
+msgstr "Вершины"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:91
+msgid "Vertices and Triangles"
+msgstr "Вершины и треугольники"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:94
 msgid "Brightness:"
 msgstr "Яркость:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:83
+#: qcsrc/menu/xonotic/dialog_settings_video.c:97
 msgid "Contrast:"
 msgstr "Контраст:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:86
+#: qcsrc/menu/xonotic/dialog_settings_video.c:100
 msgid "Gamma:"
 msgstr "Гамма:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:91
+#: qcsrc/menu/xonotic/dialog_settings_video.c:105
 msgid "Contrast boost:"
 msgstr "Усиление контраста:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:96
+#: qcsrc/menu/xonotic/dialog_settings_video.c:110
 msgid "Saturation:"
 msgstr "Насыщенность:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:102
+#: qcsrc/menu/xonotic/dialog_settings_video.c:116
 msgid "LIT^Ambient:"
 msgstr "Окружающее освещение:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:105
+#: qcsrc/menu/xonotic/dialog_settings_video.c:119
 msgid "Intensity:"
 msgstr "Мощность:"
 
+#: qcsrc/menu/xonotic/dialog_settings_video.c:123
+msgid "Use OpenGL 2.0 shaders (GLSL)"
+msgstr "Использовать шейдеры OpenGL 2.0 (GLSL)"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:125
+msgid "Use GLSL to handle color control"
+msgstr "Использовать GLSL для управления цветом"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:128
+msgid "Wait for GPU to finish each frame"
+msgstr "Ждать завершения каждого кадра GPU"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:132
+msgid "Psycho coloring (easter egg)"
+msgstr "Психоделическая расцветка(пасхальное яйцо)"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:135
+msgid "Trippy vertices (easter egg)"
+msgstr "Клевые формы(пасхальное яйцо)"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:138
+msgid "Flip view horizontally"
+msgstr "Перевернуть изображение по горизонтали"
+
 #: qcsrc/menu/xonotic/dialog_singleplayer.c:4
 msgid "Singleplayer"
 msgstr "Одиночная игра"
 
-#: qcsrc/menu/xonotic/dialog_singleplayer.c:127
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:116
 msgid "Instant action! (random map with bots)"
 msgstr "Быстрая игра (случайная карта с ботами)"
 
-#: qcsrc/menu/xonotic/dialog_singleplayer.c:148
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:137
+msgid "Campaign Difficulty:"
+msgstr "Уровень трудности:"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:138
+msgid "CSKL^Easy"
+msgstr "Легкий"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:139
+msgid "CSKL^Medium"
+msgstr "Средняя"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:140
+msgid "CSKL^Hard"
+msgstr "Трудный"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:142
 msgid "Start Singleplayer!"
 msgstr "Начать одиночную игру"
 
@@ -2335,23 +2939,23 @@ msgstr "розовая"
 msgid "spectate"
 msgstr "наблюдать"
 
-#: qcsrc/menu/xonotic/mainwindow.c:35 qcsrc/menu/xonotic/mainwindow.c:38
+#: qcsrc/menu/xonotic/mainwindow.c:39 qcsrc/menu/xonotic/mainwindow.c:42
 msgid "Do not press this button again!"
 msgstr "Не нажимайте снова эту кнопку!"
 
-#: qcsrc/menu/xonotic/maplist.c:278
+#: qcsrc/menu/xonotic/maplist.c:282
 msgid ""
 "Huh? Can't play this (m is NULL). Refiltering so this won't happen again.\n"
 msgstr ""
 "Что? Не могу зайти (m = NULL). Перефильтрую, чтобы такого больше не "
 "случалось.\n"
 
-#: qcsrc/menu/xonotic/maplist.c:286
+#: qcsrc/menu/xonotic/maplist.c:290
 #, c-format
 msgid "%s's Xonotic Server"
 msgstr "Сервер Xonotic от %s"
 
-#: qcsrc/menu/xonotic/maplist.c:291
+#: qcsrc/menu/xonotic/maplist.c:295
 msgid ""
 "Huh? Can't play this (invalid game type). Refiltering so this won't happen "
 "again.\n"
@@ -2359,7 +2963,11 @@ msgstr ""
 "Что? Не могу зайти (неверный вид игры). Перефильтрую, чтобы такого больше не "
 "случалось.\n"
 
-#: qcsrc/menu/xonotic/playermodel.c:174
+#: qcsrc/menu/xonotic/playerlist.c:118 qcsrc/menu/xonotic/playerlist.c:128
+msgid "spectator"
+msgstr "наблюдать"
+
+#: qcsrc/menu/xonotic/playermodel.c:177
 msgid "<no model found>"
 msgstr "<модель игрока не найдена>"
 
@@ -2371,23 +2979,23 @@ msgstr "Убрать"
 msgid "Bookmark"
 msgstr "В закладки"
 
-#: qcsrc/menu/xonotic/serverlist.c:527
+#: qcsrc/menu/xonotic/serverlist.c:548
 msgid "Ping"
 msgstr "Пинг"
 
-#: qcsrc/menu/xonotic/serverlist.c:528
+#: qcsrc/menu/xonotic/serverlist.c:549
 msgid "Host name"
 msgstr "Имя сервера"
 
-#: qcsrc/menu/xonotic/serverlist.c:529
+#: qcsrc/menu/xonotic/serverlist.c:550
 msgid "Map"
 msgstr "Карта"
 
-#: qcsrc/menu/xonotic/serverlist.c:530
+#: qcsrc/menu/xonotic/serverlist.c:551
 msgid "Type"
 msgstr "Вид"
 
-#: qcsrc/menu/xonotic/serverlist.c:531
+#: qcsrc/menu/xonotic/serverlist.c:552
 msgid "Players"
 msgstr "Игроки"
 
@@ -2417,27 +3025,27 @@ msgstr "%s дБ"
 msgid "%dx%d"
 msgstr "%dx%d"
 
-#: qcsrc/menu/xonotic/util.qc:270
+#: qcsrc/menu/xonotic/util.qc:276
 #, c-format
 msgid "Received HTTP request data for an invalid id %d.\n"
 msgstr "Получены данные HTTP запроса для неверного id %d.\n"
 
-#: qcsrc/menu/xonotic/util.qc:285
+#: qcsrc/menu/xonotic/util.qc:291
 #, c-format
 msgid "error receiving update notification: status is %d\n"
 msgstr "ошибка при получении уведомления об обновлении: статус %d\n"
 
-#: qcsrc/menu/xonotic/util.qc:290
+#: qcsrc/menu/xonotic/util.qc:296
 msgid "error: received HTML instead of an update notification\n"
 msgstr "ошибка: получение HTML вместо уведомления об обновлении\n"
 
-#: qcsrc/menu/xonotic/util.qc:295
+#: qcsrc/menu/xonotic/util.qc:301
 msgid "error: received carriage returns from update notification server\n"
 msgstr ""
 "ошибка: получены символы возврата строки от сервера уведомлений об "
 "обновлениях\n"
 
-#: qcsrc/menu/xonotic/util.qc:316
+#: qcsrc/menu/xonotic/util.qc:322
 #, c-format
 msgid ""
 "Update can be downloaded at:\n"
@@ -2446,21 +3054,21 @@ msgstr ""
 "Обновление может быть загружено с:\n"
 "%s\n"
 
-#: qcsrc/menu/xonotic/util.qc:337
+#: qcsrc/menu/xonotic/util.qc:351
 msgid "Autogenerating mapinfo for newly added maps..."
 msgstr "Автоматическое создание mapinfo для новых карт..."
 
-#: qcsrc/menu/xonotic/util.qc:367
+#: qcsrc/menu/xonotic/util.qc:381
 #, c-format
 msgid "^1%s TEST BUILD"
-msgstr ""
+msgstr "^1%s TEST BUILD"
 
-#: qcsrc/menu/xonotic/util.qc:432
+#: qcsrc/menu/xonotic/util.qc:439
 #, c-format
 msgid "Update to %s now!"
 msgstr "Обновитесь до %s сейчас же!"
 
-#: qcsrc/menu/xonotic/util.qc:501
+#: qcsrc/menu/xonotic/util.qc:524
 msgid ""
 "^1ERROR: Texture compression is required but not supported.\n"
 "^1Expect visual problems.\n"
@@ -2468,475 +3076,213 @@ msgstr ""
 "1^ОШИБКА: Сжатие текстур требуется, но не поддерживается.\n"
 "1^Ожидайте проблемы с отображением.\n"
 
-#: qcsrc/menu/xonotic/util.qc:523
-msgid "Arena"
-msgstr "Arena"
-
-#: qcsrc/menu/xonotic/util.qc:524
-msgid "Assault"
-msgstr "Assault"
-
-#: qcsrc/menu/xonotic/util.qc:525
-msgid "Capture The Flag"
-msgstr "Capture The Flag"
-
-#: qcsrc/menu/xonotic/util.qc:526
-msgid "Clan Arena"
-msgstr "Clan Arena"
-
-#: qcsrc/menu/xonotic/util.qc:527
-msgid "Deathmatch"
-msgstr "Deathmatch"
-
-#: qcsrc/menu/xonotic/util.qc:528
-msgid "Domination"
-msgstr "Domination"
-
-#: qcsrc/menu/xonotic/util.qc:529
-msgid "Freeze Tag"
-msgstr "Freeze Tag"
-
-#: qcsrc/menu/xonotic/util.qc:530
-msgid "Keepaway"
-msgstr "Keepaway"
-
-#: qcsrc/menu/xonotic/util.qc:531
-msgid "Key Hunt"
-msgstr "Key Hunt"
-
-#: qcsrc/menu/xonotic/util.qc:532
-msgid "Last Man Standing"
-msgstr "Last Man Standing"
-
-#: qcsrc/menu/xonotic/util.qc:533
-msgid "Nexball"
-msgstr "Nexball"
-
-#: qcsrc/menu/xonotic/util.qc:534
-msgid "Onslaught"
-msgstr "Onslaught"
-
-#: qcsrc/menu/xonotic/util.qc:535
-msgid "Race"
-msgstr "Race"
-
-#: qcsrc/menu/xonotic/util.qc:536
-msgid "Race CTS"
-msgstr "Race CTS"
-
-#: qcsrc/menu/xonotic/util.qc:537
-msgid "Runematch"
-msgstr "Runematch"
-
-#: qcsrc/menu/xonotic/util.qc:538
-msgid "Team Deathmatch"
-msgstr "Team Deathmatch"
-
-#: qcsrc/menu/xonotic/util.qc:557
-#, c-format
-msgid "@!#%'n Tuba Throwing"
-msgstr "@!#%'n Швыряние Тубой"
-
-#: qcsrc/menu/xonotic/util.qc:577 qcsrc/menu/xonotic/util.qc:593
-#: qcsrc/menu/xonotic/util.qc:602 qcsrc/menu/xonotic/util.qc:610
-#: qcsrc/menu/xonotic/util.qc:622
-msgid "Default"
-msgstr "По умолчанию"
-
-#: qcsrc/menu/xonotic/util.qc:588
+#: qcsrc/menu/xonotic/util.qc:643
 msgid "Use default"
 msgstr "Исп. настройки по умолчанию"
 
-#: qcsrc/menu/xonotic/util.qc:608
+#: qcsrc/menu/xonotic/util.qc:663
 msgid "Team Color:"
 msgstr "Цвет команды:"
 
-#: qcsrc/menu/xonotic/util.qh:47
+#: qcsrc/menu/xonotic/util.qh:50
 msgid "Enable panel"
 msgstr "Включить панель"
 
-#: qcsrc/server/w_crylink.qc:2
-msgid "Crylink"
-msgstr "Crylink"
+#: weapons.qc.tmp:1
+msgid "Rifle"
+msgstr "Оружие"
 
-#: qcsrc/server/w_crylink.qc:666
-#, c-format
-msgid "%s succeeded at self-destructing themself with the Crylink"
-msgstr ""
+#: weapons.qc.tmp:2
+msgid "Machine Gun"
+msgstr "Machine Gun"
 
-#: qcsrc/server/w_crylink.qc:671
-#, c-format
-msgid "%s could not hide from %s's Crylink"
-msgstr ""
+#: weapons.qc.tmp:3
+msgid "Rocket Launcher"
+msgstr "Rocket Launcher"
 
-#: qcsrc/server/w_crylink.qc:673
-#, c-format
-msgid "%s was too close to %s's Crylink"
-msgstr ""
+#: weapons.qc.tmp:4
+msgid "Port-O-Launch"
+msgstr "Port-O-Launch"
 
-#: qcsrc/server/w_crylink.qc:675
-#, c-format
-msgid "%s took a close look at %s's Crylink"
-msgstr ""
+#: weapons.qc.tmp:5
+msgid "Grappling Hook"
+msgstr "Grappling Hook"
 
-#: qcsrc/server/w_electro.qc:2
+#: weapons.qc.tmp:6
 msgid "Electro"
 msgstr "Electro"
 
-#: qcsrc/server/w_electro.qc:574
-#, c-format
-msgid "%s could not remember where they put plasma"
-msgstr ""
-
-#: qcsrc/server/w_electro.qc:576
-#, c-format
-msgid "%s played with plasma"
-msgstr ""
-
-#: qcsrc/server/w_electro.qc:583
-#, c-format
-msgid "%s just noticed %s's blue ball"
-msgstr ""
-
-#: qcsrc/server/w_electro.qc:585
-#, c-format
-msgid "%s got in touch with %s's blue ball"
-msgstr ""
-
-#: qcsrc/server/w_electro.qc:590
-#, c-format
-msgid "%s felt the electrifying air of %s's combo"
-msgstr ""
-
-#: qcsrc/server/w_electro.qc:592
-#, c-format
-msgid "%s got too close to %s's blue beam"
-msgstr ""
-
-#: qcsrc/server/w_electro.qc:594
-#, c-format
-msgid "%s was blasted by %s's blue beam"
-msgstr ""
-
-#: 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 ""
-
-#: 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 ""
+#: weapons.qc.tmp:7
+msgid "Laser"
+msgstr "Laser"
 
-#: qcsrc/server/w_fireball.qc:428
-#, c-format
-msgid "%s fatefully ignored %s's firemine"
-msgstr ""
+#: weapons.qc.tmp:8
+msgid "Shotgun"
+msgstr "Shotgun"
 
-#: qcsrc/server/w_fireball.qc:435
+#: weapons.qc.tmp:9
 #, c-format
-msgid "%s could not hide from %s's fireball"
-msgstr ""
+msgid "@!#%'n Tuba"
+msgstr "@!#%'n Tuba"
 
-#: qcsrc/server/w_fireball.qc:437
-#, c-format
-msgid "%s saw the pretty lights of %s's fireball"
-msgstr ""
+#: weapons.qc.tmp:10
+msgid "MinstaNex"
+msgstr "MinstaNex"
 
-#: qcsrc/server/w_fireball.qc:440
-#, c-format
-msgid "%s got too close to %s's fireball"
-msgstr ""
+#: weapons.qc.tmp:11
+msgid "Crylink"
+msgstr "Crylink"
 
-#: qcsrc/server/w_fireball.qc:442
-#, c-format
-msgid "%s tasted %s's fireball"
-msgstr ""
+#: weapons.qc.tmp:12
+msgid "Heavy Laser Assault Cannon"
+msgstr "Heavy Laser Assault Cannon"
 
-#: qcsrc/server/w_grenadelauncher.qc:2
+#: weapons.qc.tmp:13
 msgid "Mortar"
 msgstr "Mortar"
 
-#: qcsrc/server/w_grenadelauncher.qc:383
-#, c-format
-msgid "%s tried out his own grenade"
-msgstr ""
-
-#: qcsrc/server/w_grenadelauncher.qc:385
-#, c-format
-msgid "%s detonated"
-msgstr ""
-
-#: qcsrc/server/w_grenadelauncher.qc:391
-#, c-format
-msgid "%s didn't see %s's grenade"
-msgstr ""
-
-#: qcsrc/server/w_grenadelauncher.qc:393
-#, c-format
-msgid "%s almost dodged %s's grenade"
-msgstr ""
-
-#: qcsrc/server/w_grenadelauncher.qc:395
-#, c-format
-msgid "%s ate %s's grenade"
-msgstr ""
-
-#: qcsrc/server/w_hagar.qc:2
+#: weapons.qc.tmp:14
 msgid "Hagar"
 msgstr "Hagar"
 
-#: qcsrc/server/w_hagar.qc:395 qcsrc/server/w_seeker.qc:655
-#, c-format
-msgid "%s played with tiny rockets"
-msgstr ""
-
-#: qcsrc/server/w_hagar.qc:399
-#, c-format
-msgid "%s hoped %s's missiles wouldn't bounce"
-msgstr ""
-
-#: qcsrc/server/w_hagar.qc:401 qcsrc/server/w_seeker.qc:661
-#, c-format
-msgid "%s was pummeled by %s"
-msgstr ""
-
-#: 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 ""
-
-#: qcsrc/server/w_hook.qc:2
-msgid "Grappling Hook"
-msgstr "Grappling Hook"
-
-#: qcsrc/server/w_hook.qc:266 qcsrc/server/w_porto.qc:296
-#, c-format
-msgid "%s did the impossible"
-msgstr ""
-
-#: qcsrc/server/w_hook.qc:268
-#, c-format
-msgid "%s has run into %s's gravity bomb"
-msgstr ""
-
-#: qcsrc/server/w_laser.qc:2
-msgid "Laser"
-msgstr "Laser"
-
-#: qcsrc/server/w_laser.qc:311
-#, c-format
-msgid "%s lasered themself to hell"
-msgstr ""
-
-#: qcsrc/server/w_laser.qc:315
-#, c-format
-msgid "%s was cut in half by %s's gauntlet"
-msgstr ""
+#: weapons.qc.tmp:15
+msgid "T.A.G. Seeker"
+msgstr "T.A.G. Seeker"
 
-#: qcsrc/server/w_laser.qc:317
-#, c-format
-msgid "%s was lasered to death by %s"
-msgstr ""
+#: weapons.qc.tmp:16
+msgid "Fireball"
+msgstr "Fireball"
 
-#: qcsrc/server/w_minelayer.qc:2
+#: weapons.qc.tmp:17
 msgid "Mine Layer"
 msgstr "Mine Layer"
 
-#: qcsrc/server/w_minelayer.qc:523 qcsrc/server/w_rocketlauncher.qc:501
-#, c-format
-msgid "%s exploded"
-msgstr ""
+#: weapons.qc.tmp:18
+msgid "Nex"
+msgstr "Nex"
 
-#: qcsrc/server/w_minelayer.qc:527
-#, c-format
-msgid "%s got too close to %s's mine"
-msgstr ""
+#~ msgid "Powerup sharpen"
+#~ msgstr "Панель бонусов"
 
-#: qcsrc/server/w_minelayer.qc:529
-#, c-format
-msgid "%s almost dodged %s's mine"
-msgstr ""
+#~ msgid "Damage & water blur"
+#~ msgstr "Размытие от урона:"
 
-#: qcsrc/server/w_minelayer.qc:531
-#, c-format
-msgid "%s stepped on %s's mine"
-msgstr ""
+#~ msgid "Waypoint settings:"
+#~ msgstr "Настройки отметок:"
 
-#: qcsrc/server/w_minstanex.qc:2
-msgid "MinstaNex"
-msgstr "MinstaNex"
+#~ msgid "Sniper Rifle"
+#~ msgstr "Sniper Rifle"
 
-#: qcsrc/server/w_minstanex.qc:293 qcsrc/server/w_nex.qc:253
-#: qcsrc/server/w_shotgun.qc:215 qcsrc/server/w_uzi.qc:317
-#, c-format
-msgid "%s is now thinking with portals"
-msgstr ""
+#~ msgid "Accelerometer scale:"
+#~ msgstr "Размер акселерометра:"
 
-#: qcsrc/server/w_minstanex.qc:295 qcsrc/server/w_nex.qc:255
-#, c-format
-msgid "%s has been vaporized by %s"
-msgstr ""
+#~ msgid "Show accelerometer"
+#~ msgstr "Показывать акселерометр"
 
-#: qcsrc/server/w_nex.qc:2
-msgid "Nex"
-msgstr "Nex"
+# "quake units per second"
+# you can also translate it as inch/second
+# as it is roughly the same
+#~ msgid "qu/s (hidden)"
+#~ msgstr "qu/s (без назв.)"
 
-#: qcsrc/server/w_porto.qc:2
-msgid "Port-O-Launch"
-msgstr "Port-O-Launch"
+#~ msgid "Speedometer"
+#~ msgstr "Спидометр"
 
-#: qcsrc/server/w_porto.qc:298
-#, c-format
-msgid "%s felt %s doing the impossible to him"
-msgstr ""
+#~ msgid "Disable multithreaded OpenGL"
+#~ msgstr "Отключить многопоточный OpenGL"
 
-#: qcsrc/server/w_rifle.qc:2
-msgid "Rifle"
-msgstr ""
+#~ msgid "HTTP downloads:"
+#~ msgstr "HTTP загрузки:"
 
-#: qcsrc/server/w_rifle.qc:233
-#, c-format
-msgid "%s shot themself automatically"
-msgstr ""
+#~ msgid "Network speed:"
+#~ msgstr "Скорость соединения:"
 
-#: qcsrc/server/w_rifle.qc:235
-#, c-format
-msgid "%s sniped themself somehow"
-msgstr ""
+#~ msgid "Minimize input latency"
+#~ msgstr "Уменьшить задержку ввода"
 
-#: qcsrc/server/w_rifle.qc:242
-#, c-format
-msgid "%s failed to hide from %s's bullet hail"
-msgstr ""
+#~ msgid "Mouse filter"
+#~ msgstr "Фильтр мыши"
 
-#: qcsrc/server/w_rifle.qc:244
-#, c-format
-msgid "%s died in %s's bullet hail"
-msgstr ""
+#~ msgid "UI mouse speed:"
+#~ msgstr "Скорость мыши в UI:"
 
-#: qcsrc/server/w_rifle.qc:251
-#, c-format
-msgid "%s failed to hide from %s's rifle"
-msgstr ""
+#~ msgid "High Dynamic Range (HDR)"
+#~ msgstr "High Dynamic Range (HDR)"
 
-#: qcsrc/server/w_rifle.qc:256
-#, c-format
-msgid "%s got hit in the head by %s"
-msgstr ""
+#~ msgid "Flash blend approximation"
+#~ msgstr "Грубая имитация"
 
-#: qcsrc/server/w_rifle.qc:258 qcsrc/server/w_uzi.qc:321
-#, c-format
-msgid "%s was sniped by %s"
-msgstr ""
+#~ msgid "WRN^None"
+#~ msgstr "Нет"
 
-#: qcsrc/server/w_rocketlauncher.qc:2
-msgid "Rocket Launcher"
-msgstr "Rocket Launcher"
+#~ msgid "RNG^Full"
+#~ msgstr "Полный"
 
-#: qcsrc/server/w_rocketlauncher.qc:505
-#, c-format
-msgid "%s got too close to %s's rocket"
-msgstr ""
+#~ msgid "RNG^Long"
+#~ msgstr "Большой"
 
-#: qcsrc/server/w_rocketlauncher.qc:507
-#, c-format
-msgid "%s almost dodged %s's rocket"
-msgstr ""
+#~ msgid "RNG^Normal"
+#~ msgstr "Обычный"
 
-#: qcsrc/server/w_rocketlauncher.qc:509
-#, c-format
-msgid "%s ate %s's rocket"
-msgstr ""
+#~ msgid "RNG^Short"
+#~ msgstr "Маленький"
 
-#: qcsrc/server/w_seeker.qc:2
-msgid "T.A.G. Seeker"
-msgstr "T.A.G. Seeker"
+#~ msgid "RNG^Very short"
+#~ msgstr "Очень маленький"
 
-#: qcsrc/server/w_seeker.qc:659
-#, c-format
-msgid "%s was tagged by %s"
-msgstr ""
+#~ msgid "Taunt range:"
+#~ msgstr "Радиус насмешек:"
 
-#: qcsrc/server/w_shotgun.qc:2
-msgid "Shotgun"
-msgstr "Shotgun"
+#~ msgid "VOCS^All"
+#~ msgstr "Все"
 
-#: qcsrc/server/w_shotgun.qc:219
-#, c-format
-msgid "%2$s ^7slapped %1$s ^7around a bit with a large ^2shotgun"
-msgstr ""
+#~ msgid "VOCS^Taunts"
+#~ msgstr "Насмешки"
 
-#: qcsrc/server/w_shotgun.qc:221
-#, c-format
-msgid "%s was gunned by %s"
-msgstr ""
+#~ msgid "VOCS^None"
+#~ msgstr "Отключены"
 
-#: qcsrc/server/w_tuba.qc:2
-#, c-format
-msgid "@!#%'n Tuba"
-msgstr "@!#%'n Tuba"
+#~ msgid "Spatial voices:"
+#~ msgstr "Объёмные голоса:"
 
-#: qcsrc/server/w_tuba.qc:252
-#, c-format
-msgid "%s hurt his own ears with the @!#%%'n Tuba"
-msgstr ""
+#~ msgid "All players"
+#~ msgstr "Все игроки"
 
-#: qcsrc/server/w_tuba.qc:256
-#, c-format
-msgid "%s died of %s's great playing on the @!#%%'n Tuba"
-msgstr ""
+#~ msgid "Teammates"
+#~ msgstr "Союзники"
 
-#: qcsrc/server/w_uzi.qc:2
-msgid "Machine Gun"
-msgstr "Machine Gun"
+#~ msgid "Show names:"
+#~ msgstr "Показывать имена:"
 
-#: qcsrc/server/w_uzi.qc:323
-#, c-format
-msgid "%s was riddled full of holes by %s"
-msgstr ""
+#~ msgid "Waypoint scale:"
+#~ msgstr "Размер отметок:"
 
-#, fuzzy
-#~ msgid "Damage & water blur"
-#~ msgstr "Размытие от урона:"
+#~ msgid "Waypoints setup..."
+#~ msgstr "Настройка отметок..."
 
-#, fuzzy
-#~ msgid "Powerup sharpen"
-#~ msgstr "Панель бонусов"
+#~ msgid "HTST^None"
+#~ msgstr "Отключена"
 
-#~ msgid "Speedometer"
-#~ msgstr "СпидомеÑ\82Ñ\80"
+#~ msgid "Size:"
+#~ msgstr "РазмеÑ\80:"
 
-# "quake units per second"
-# you can also translate it as inch/second
-# as it is roughly the same
-#~ msgid "qu/s (hidden)"
-#~ msgstr "qu/s (без назв.)"
+#~ msgid "Weapon settings..."
+#~ msgstr "Настройки оружия..."
 
-#~ msgid "Show accelerometer"
-#~ msgstr "Ð\9fоказÑ\8bваÑ\82Ñ\8c Ð°ÐºÑ\81елеÑ\80омеÑ\82Ñ\80"
+#~ msgid "Zoom speed:"
+#~ msgstr "СкоÑ\80оÑ\81Ñ\82Ñ\8c Ñ\83велиÑ\87ениÑ\8f:"
 
-#~ msgid "Accelerometer scale:"
-#~ msgstr "РазмеÑ\80 Ð°ÐºÑ\81елеÑ\80омеÑ\82Ñ\80а:"
+#~ msgid "View bobbing:"
+#~ msgstr "Ð\9aаÑ\87ание Ð²Ð¸Ð´а:"
 
-#~ msgid "Sniper Rifle"
-#~ msgstr "Sniper Rifle"
+#~ msgid "CA:"
+#~ msgstr "CA:"
 
-#~ msgid "Waypoint settings:"
-#~ msgstr "Настройки отметок:"
+#~ msgid "Ping:"
+#~ msgstr "Пинг:"
+
+#~ msgid "Gameplay:"
+#~ msgstr "Геймплей:"
 
-#~ msgid "%d/%d"
-#~ msgstr "%d/%d"
+#~ msgid " when picking up an item"
+#~ msgstr "Анимировать при подборе штучек"
index f7768ec8c91b1df34d8b7b38b840614fb7bb1883..def9974b1ff4e86ea635f38b6cbeabe14fe5f2cd 100644 (file)
@@ -2,14 +2,14 @@
 # Copyright (C) 2011 Team Xonotic
 # This file is distributed under the same license as the Xonotic package.
 # Harmata <cigariscigar@gmail.com>, 2011.
-# 
+#
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: 0.5\n"
+"Project-Id-Version: 0.6\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-09-12 12:24+0200\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"POT-Creation-Date: 2012-01-26 12:24+0100\n"
+"PO-Revision-Date: 2012-03-28 19:46+0200\n"
 "Last-Translator: Harmata <cigariscigar@gmail.com>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "Language: uk\n"
@@ -17,33 +17,102 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: qcsrc/common/mapinfo.qc:1092 qcsrc/menu/xonotic/skinlist.c:163
+#: qcsrc/common/mapinfo.qc:665
+#, c-format
+msgid "@!#%'n Tuba Throwing"
+msgstr "Кидання @!#%'ї Туби"
+
+#: qcsrc/common/mapinfo.qc:1057 qcsrc/menu/xonotic/skinlist.c:166
 #, c-format
 msgid "%s: %s"
 msgstr "%s: %s"
 
-#: qcsrc/menu/gamecommand.qc:47
+#: qcsrc/common/mapinfo.qh:36
+msgid "Deathmatch"
+msgstr "Десматч"
+
+#: qcsrc/common/mapinfo.qh:39
+msgid "Last Man Standing"
+msgstr "Останній виживший"
+
+#: qcsrc/common/mapinfo.qh:42
+msgid "Arena"
+msgstr "Арена"
+
+#: qcsrc/common/mapinfo.qh:45
+msgid "Runematch"
+msgstr "Рунний матч"
+
+#: qcsrc/common/mapinfo.qh:48
+msgid "Race"
+msgstr "Гонка"
+
+#: qcsrc/common/mapinfo.qh:51
+msgid "Race CTS"
+msgstr "Гонка CTS"
+
+#: qcsrc/common/mapinfo.qh:54
+msgid "Team Deathmatch"
+msgstr "Командний десматч"
+
+#: qcsrc/common/mapinfo.qh:57
+msgid "Capture the Flag"
+msgstr "Захоплення прапору"
+
+#: qcsrc/common/mapinfo.qh:60
+msgid "Clan Arena"
+msgstr "Арена кланів"
+
+#: qcsrc/common/mapinfo.qh:63
+msgid "Domination"
+msgstr "Панування"
+
+#: qcsrc/common/mapinfo.qh:66
+msgid "Key Hunt"
+msgstr "Полювання за ключами"
+
+#: qcsrc/common/mapinfo.qh:69
+msgid "Assault"
+msgstr "Атака"
+
+#: qcsrc/common/mapinfo.qh:72
+msgid "Onslaught"
+msgstr "Штурм"
+
+#: qcsrc/common/mapinfo.qh:75
+msgid "Nexball"
+msgstr "Нексбол"
+
+#: qcsrc/common/mapinfo.qh:78
+msgid "Freeze Tag"
+msgstr "Морозко"
+
+#: qcsrc/common/mapinfo.qh:81
+msgid "Keepaway"
+msgstr "Тримання осторонь"
+
+#: qcsrc/menu/command/menu_cmd.qc:41
 #, c-format
 msgid "error: status is %d\n"
 msgstr "помилка: статус %d\n"
 
-#: qcsrc/menu/gamecommand.qc:65
+#: qcsrc/menu/command/menu_cmd.qc:64
 msgid "Usage: menu_cmd command..., where possible commands are:\n"
 msgstr "Використання: menu_cmd команда..., де можливі такі команди:\n"
 
-#: qcsrc/menu/gamecommand.qc:66
+#: qcsrc/menu/command/menu_cmd.qc:65
 msgid "  sync - reloads all cvars on the current menu page\n"
 msgstr "  sync - перезавантажує усі cvars на поточній сторінці меню\n"
 
-#: qcsrc/menu/gamecommand.qc:67
+#: qcsrc/menu/command/menu_cmd.qc:66
 msgid "  directmenu ITEM - select a menu item as main item\n"
 msgstr " directmenu ITEM - обрати компонент меню як головний компонент\n"
 
-#: qcsrc/menu/gamecommand.qc:193
+#: qcsrc/menu/command/menu_cmd.qc:179
 msgid "error creating curl handle\n"
 msgstr "помилка під час створення curl handle\n"
 
-#: qcsrc/menu/gamecommand.qc:239
+#: qcsrc/menu/command/menu_cmd.qc:186
 msgid "Invalid command. For a list of supported commands, try menu_cmd help.\n"
 msgstr ""
 "Невірна команда. Щоб побачити список доступних команд спробуйте menu_cmd "
@@ -72,17 +141,17 @@ msgstr "%d (%s)"
 msgid "custom"
 msgstr "особливо"
 
-#: qcsrc/menu/menu.qc:29
+#: qcsrc/menu/menu.qc:37
 #, c-format
 msgid "^4MQC Build information: ^1%s\n"
 msgstr "^4Відомості про збірку MQC: ^1%s\n"
 
-#: qcsrc/menu/xonotic/campaign.c:284
+#: qcsrc/menu/xonotic/campaign.c:288
 #: qcsrc/menu/xonotic/dialog_singleplayer.c:123
 msgid "???"
 msgstr "???"
 
-#: qcsrc/menu/xonotic/campaign.c:285
+#: qcsrc/menu/xonotic/campaign.c:289
 #, c-format
 msgid "Level %d: %s"
 msgstr "Рівень %d: %s"
@@ -113,10 +182,14 @@ msgstr "Розробники"
 
 #: 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:57
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:61
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:277
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:91
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:96
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:56
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:113
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:74
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:89
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:73
 #: qcsrc/menu/xonotic/dialog_singleplayer_winner.c:21
 msgid "OK"
 msgstr "Гаразд"
@@ -125,7 +198,7 @@ msgstr "Гаразд"
 msgid "Welcome"
 msgstr "Вітаємо"
 
-#: qcsrc/menu/xonotic/dialog_firstrun.c:33
+#: qcsrc/menu/xonotic/dialog_firstrun.c:40
 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 "
@@ -134,18 +207,34 @@ msgstr ""
 "Вітаємо у Xonotic! Будь ласка, для початку оберіть свою мову та вкажіть своє "
 "ім'я. Ви зможете змінити їх через систему меню потім."
 
-#: 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_multiplayer_playersetup.c:40
+#: qcsrc/menu/xonotic/dialog_firstrun.c:46
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:37
 #: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:39
 msgid "Name:"
 msgstr "Ім'я:"
 
-#: qcsrc/menu/xonotic/dialog_firstrun.c:69
+#: qcsrc/menu/xonotic/dialog_firstrun.c:68
+#: qcsrc/menu/xonotic/dialog_settings_user.c:65
+msgid "Text language:"
+msgstr "Мова тексту:"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:77
+msgid "Allow player statistics to use your nickname at stats.xonotic.org?"
+msgstr "Дозволити використання імені гравця в статистиці на stats.xonotic.org?"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:81
+msgid "ALWU2N^Yes"
+msgstr "ALWU2N^Так"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:82
+msgid "ALWU2N^No"
+msgstr "ALWU2N^Ні"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:83
+msgid "ALWU2N^Undecided"
+msgstr "ALWU2N^Не вирішено"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:87
 msgid "Save settings"
 msgstr "Зберегти налаштування"
 
@@ -189,7 +278,7 @@ msgstr "Основні повідомлення"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_centerprint.c:23
 msgid "Message duration:"
-msgstr "Тривалість існування повідомлень:"
+msgstr "Тривалість життя повідомлень:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_centerprint.c:27
 msgid "Fade time:"
@@ -204,7 +293,7 @@ msgid "Text alignment:"
 msgstr "Вирівнювання тексту:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_centerprint.c:37
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:50
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:51
 msgid "Center"
 msgstr "По центру"
 
@@ -348,12 +437,12 @@ msgid "Status bar"
 msgstr "Смуга статусу"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:33
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:48
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:49
 msgid "Left align"
 msgstr "Вирівнювати ліворуч"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:34
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:52
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:53
 msgid "Right align"
 msgstr "Вирівнювати праворуч"
 
@@ -370,6 +459,7 @@ msgid "Flip speed/acceleration positions"
 msgstr "Поміняти місцями позиції швидкості та акселерації"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:44
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:29
 msgid "Speed:"
 msgstr "Швидкість:"
 
@@ -461,8 +551,8 @@ 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:154
-#: qcsrc/menu/xonotic/util.qc:612
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:66
+#: qcsrc/menu/xonotic/util.qc:655
 msgid "Alpha:"
 msgstr "Прозорість:"
 
@@ -491,6 +581,7 @@ msgid "North"
 msgstr "Північ"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:46
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:61
 msgid "Scale:"
 msgstr "Масштаб:"
 
@@ -567,7 +658,6 @@ msgid "Fade out after:"
 msgstr "Зникати після:"
 
 #: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:26
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:36
 msgid "Never"
 msgstr "Ніколи"
 
@@ -644,24 +734,24 @@ msgstr "Налаштування панелі HUD"
 msgid "Panel background defaults:"
 msgstr "Фон панелі за замовчуванням:"
 
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:23 qcsrc/menu/xonotic/util.qc:587
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:23 qcsrc/menu/xonotic/util.qc:630
 msgid "Background:"
 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:590
-#: qcsrc/menu/xonotic/util.qc:606 qcsrc/menu/xonotic/util.qc:623
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:91 qcsrc/menu/xonotic/util.qc:633
+#: qcsrc/menu/xonotic/util.qc:649 qcsrc/menu/xonotic/util.qc:666
 msgid "Disable"
 msgstr "Вимкнути"
 
 #: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:30
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:77 qcsrc/menu/xonotic/util.qc:595
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:77 qcsrc/menu/xonotic/util.qc:638
 msgid "Color:"
 msgstr "Колір:"
 
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:35 qcsrc/menu/xonotic/util.qc:603
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:35 qcsrc/menu/xonotic/util.qc:646
 msgid "Border size:"
 msgstr "Розмір обвідки:"
 
@@ -670,11 +760,11 @@ msgstr "Розмір обвідки:"
 msgid "Team color:"
 msgstr "Колір команди:"
 
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:58 qcsrc/menu/xonotic/util.qc:629
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:58 qcsrc/menu/xonotic/util.qc:672
 msgid "Test team color in configure mode"
 msgstr "Протестувати колір команди у конфігураційному режимі"
 
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:61 qcsrc/menu/xonotic/util.qc:632
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:61 qcsrc/menu/xonotic/util.qc:675
 msgid "Padding:"
 msgstr "Підкладка:"
 
@@ -748,133 +838,129 @@ msgstr "Гравець"
 msgid "Game type:"
 msgstr "Тип гри:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:46
-msgid "Match settings:"
-msgstr "Налаштування матчу:"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:49
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:48
 msgid "Time limit:"
 msgstr "Ліміт часу:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:53
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:61
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:52
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:60
 msgid "Use map specified default"
 msgstr "Використати налаштування мапи"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:56
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:55
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:154
 #: qcsrc/menu/xonotic/dialog_multiplayer_create.c:155
 #: qcsrc/menu/xonotic/dialog_multiplayer_create.c:156
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:157
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:160
 #: qcsrc/menu/xonotic/dialog_multiplayer_create.c:161
 #: qcsrc/menu/xonotic/dialog_multiplayer_create.c:162
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:163
 msgid "Point limit:"
 msgstr "Ліміт очок:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:64
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:63
 msgid "Player slots:"
 msgstr "Місць для гравців:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:67
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:66
 msgid "Number of bots:"
 msgstr "Кількість ботів:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:71
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:69
 msgid "Bot skill:"
 msgstr "Майстерність ботів:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:74
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:72
 msgid "Botlike"
 msgstr "Ботоподібний"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:75
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:73
 msgid "Beginner"
 msgstr "Початківець"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:76
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:74
 msgid "You will win"
 msgstr "Ви переможете"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:77
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:75
 msgid "You can win"
 msgstr "Ви можете перемогти"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:78
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:76
 msgid "You might win"
 msgstr "Ви переможете... можливо"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:79
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:77
 msgid "Advanced"
 msgstr "Удосконалений"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:80
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:78
 msgid "Expert"
 msgstr "Експерт"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:81
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:79
 msgid "Pro"
 msgstr "Професіонал"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:82
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:80
 msgid "Assassin"
 msgstr "Убивця"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:83
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:81
 msgid "Unhuman"
 msgstr "Нелюд"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:84
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:82
 msgid "Godlike"
 msgstr "Богоподібний"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:88
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:87
 msgid "Mutators..."
 msgstr "Мутатори..."
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:97
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:57
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:96
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:145
 msgid "Advanced settings..."
-msgstr "Ð\94одадкові налаштування:"
+msgstr "РозÑ\88иÑ\80ені налаштування:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:104
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:103
 msgid "Map list:"
 msgstr "Список мап:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:110
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:109
 msgid "Select all"
 msgstr "Вибрати все"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:113
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:112
 msgid "Select none"
 msgstr "Вибрати нічого"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:119
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:118
 msgid "Start Multiplayer!"
 msgstr "Почати Мультиплеєр!"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:154
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:153
 msgid "Capture limit:"
 msgstr "Ліміт захоплень:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:158
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:157
 msgid "Lives:"
 msgstr "Життів:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:159
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:158
 msgid "Laps:"
 msgstr "Кругів:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:160
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:159
 msgid "Goals:"
 msgstr "Голів:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:164
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:163
 msgid "Frag limit:"
 msgstr "Ліміт фрагів:"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:6
 msgid "Advanced server settings"
-msgstr "Ð\94одаÑ\82кові налаштування сервера"
+msgstr "РозÑ\88иÑ\80ені налаштування сервера"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:25
 msgid "Game settings:"
@@ -972,28 +1058,28 @@ msgstr "Вся зброя"
 msgid "MinstaGib only"
 msgstr "Тільки МінстаДжиб"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:78
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:81
 msgid "Title:"
 msgstr "Назва:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:84
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:87
 msgid "Author:"
 msgstr "Автор:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:90
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:93
 msgid "Features:"
 msgstr "Деталі:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:95
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:98
 msgid "Game types:"
 msgstr "Типи гри:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:118
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:314
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:121
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:335
 msgid "Close"
 msgstr "Закрити"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:121
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:124
 msgid "MAP^Play"
 msgstr "MAP^Грати"
 
@@ -1015,108 +1101,121 @@ msgid "%s Arena"
 msgstr "%s Арена"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:68
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:167
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:173
 msgid "Dodging"
 msgstr "Ухилення"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:70
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:250
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:258
 msgid "MinstaGib"
 msgstr "МінстаДжиб"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:72
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:253
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:261
 msgid "NIX"
 msgstr "Нікс"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:74
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:205
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:213
 msgid "Rocket Flying"
 msgstr "Політ за допомогою ракет"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:78
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:264
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:76
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:210
+msgid "Invincible Projectiles"
+msgstr "Невразливі снаряди"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:80
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:272
 msgid "No start weapons"
 msgstr "Без стартової зброї"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:80
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:189
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:82
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:195
 msgid "Low gravity"
 msgstr "Низька гравітація"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:82
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:170
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:84
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:176
 msgid "Cloaked"
 msgstr "Маскування"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:84
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:86
 msgid "Hook"
 msgstr "Гак"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:86
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:173
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:88
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:179
 msgid "Midair"
 msgstr "Мід-ейр"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:88
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:176
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:90
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:182
 msgid "Vampire"
 msgstr "Вампір"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:90
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:208
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:92
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:216
 msgid "Piñata"
 msgstr "Піньята"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:92
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:211
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:94
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:219
 msgid "Weapons stay"
 msgstr "Зброя залишається"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:94
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:180
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:96
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:186
 msgid "Blood loss"
 msgstr "Втрата крові"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:96
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:202
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:98
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:207
 msgid "Jet pack"
 msgstr "Реактивний ранець"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:98
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:100
+msgid "No powerups"
+msgstr "Без підсилень"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:102
+msgid "Powerups"
+msgstr "Підсилення"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:104
 msgid "MUT^None"
 msgstr "MUT^Жодного"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:164
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:170
 msgid "Gameplay mutators:"
 msgstr "Мутатори ігрового процесу:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:196
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:201
 msgid "Weapon & item mutators:"
 msgstr "Мутатори зброї та предметів:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:199
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:204
 msgid "Grappling hook"
 msgstr "Гак"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:215
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:223
 msgid "Weapon arenas:"
 msgstr "Арени:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:218
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:226
 msgid "Regular (no arena)"
 msgstr "Звичайно (не арена)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:239
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:256
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:247
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:264
 msgid "with laser"
 msgstr "з лазером"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:247
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:255
 msgid "Special arenas:"
 msgstr "Спеціальні арени:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:260
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:268
 msgid "Most weapons"
 msgstr "Більшість зброї"
 
@@ -1125,26 +1224,26 @@ msgid "Demo"
 msgstr "Демо"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:28
-msgid "Record demos while playing"
-msgstr "Ð\97аписувати демо під час гри"
+msgid "Automatically record demos while playing"
+msgstr "Ð\90вÑ\82омаÑ\82иÑ\87но Ð·аписувати демо під час гри"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:32
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:31
 #: qcsrc/menu/xonotic/dialog_multiplayer_join.c:28
 msgid "Filter:"
 msgstr "Фільтр:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:33
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:32
 #: 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
+#: qcsrc/menu/xonotic/dialog_settings_input.c:40
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:32
 msgid "Clear"
 msgstr "Очистити"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:43
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:45
 msgid "Timedemo"
 msgstr "Тест продуктивності"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:46
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:48
 msgid "DEMO^Play"
 msgstr "DEMO^Переглянути"
 
@@ -1165,6 +1264,7 @@ msgid "Pause"
 msgstr "Пауза"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join.c:56
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:262
 msgid "Address:"
 msgstr "Адреса:"
 
@@ -1173,7 +1273,7 @@ msgid "Info..."
 msgstr "Відомості..."
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join.c:72
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:317
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:342
 msgid "Join!"
 msgstr "Приєднатися!"
 
@@ -1181,290 +1281,468 @@ msgstr "Приєднатися!"
 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
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:132
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:133
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:242
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:247
 msgid "N/A"
 msgstr "Н/Д"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:158
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:179
 #, c-format
-msgid "%d/%d, %d free player slots"
-msgstr "%d/%d, %d вільних місць для гравців"
+msgid "%d/%d"
+msgstr "%d/%d"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:193
+#: qcsrc/menu/xonotic/util.qc:632 qcsrc/menu/xonotic/util.qc:648
+#: qcsrc/menu/xonotic/util.qc:657 qcsrc/menu/xonotic/util.qc:665
+#: qcsrc/menu/xonotic/util.qc:677
+msgid "Default"
+msgstr "За замовчуванням"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:172
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:200
 #, c-format
-msgid "%d modified settings"
+msgid "%d modified"
 msgstr "%d змінених налаштувань"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:172
-msgid "Official settings"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:200
+msgid "Official"
 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:208
+msgid "N/A (auth library missing, can't connect)"
+msgstr "Ð\9d\94 (авÑ\82енÑ\82иÑ\87на Ð±Ñ\96блÑ\96оÑ\82ека Ð²Ñ\96дÑ\81Ñ\83Ñ\82нÑ\8f, Ð½ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ð¾ Ð·'Ñ\94днаÑ\82иÑ\81Ñ\8f)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:205
-msgid "not supported (can't connect)"
-msgstr "не Ð¿Ñ\96дÑ\82Ñ\80имÑ\83Ñ\94Ñ\82Ñ\8cÑ\81Ñ\8f (неможливо Ð·'Ñ\94днаÑ\82иÑ\81Ñ\8f)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:210
+msgid "N/A (auth library missing)"
+msgstr "Ð\9d\94 (вÑ\96дÑ\81Ñ\83Ñ\82нÑ\8f Ð°Ð²Ñ\82енÑ\82иÑ\87на Ð±Ñ\96блÑ\96оÑ\82ека)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:207
-msgid "not supported (won't encrypt)"
-msgstr "не Ð¿Ñ\96дÑ\82Ñ\80имÑ\83Ñ\94Ñ\82Ñ\8cÑ\81Ñ\8f (не Ð±Ñ\83де Ñ\88иÑ\84Ñ\80Ñ\83ваÑ\82и)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:216
+msgid "Not supported (can't connect)"
+msgstr "Ð\9dе Ð¿Ñ\96дÑ\82Ñ\80имÑ\83Ñ\94Ñ\82Ñ\8cÑ\81Ñ\8f (неможливо Ð·'Ñ\94днаÑ\82иÑ\81Ñ\8f)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:211
-msgid "supported (will encrypt)"
-msgstr "пÑ\96дÑ\82Ñ\80имÑ\83Ñ\94Ñ\82Ñ\8cÑ\81Ñ\8f (буде шифрувати)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:218
+msgid "Not supported (won't encrypt)"
+msgstr "Ð\9dе Ð¿Ñ\96дÑ\82Ñ\80имÑ\83Ñ\94Ñ\82Ñ\8cÑ\81Ñ\8f (не буде шифрувати)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:213
-msgid "supported (won't encrypt)"
-msgstr "пÑ\96дÑ\82Ñ\80имÑ\83Ñ\94Ñ\82Ñ\8cÑ\81Ñ\8f (не буде шифрувати)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:222
+msgid "Supported (will encrypt)"
+msgstr "Ð\9fÑ\96дÑ\82Ñ\80имÑ\83Ñ\94Ñ\82Ñ\8cÑ\81Ñ\8f (буде шифрувати)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:217
-msgid "requested (will encrypt)"
-msgstr "запиÑ\82ано (не буде шифрувати)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:224
+msgid "Supported (won't encrypt)"
+msgstr "Ð\9fÑ\96дÑ\82Ñ\80имÑ\83Ñ\94Ñ\82Ñ\8cÑ\81Ñ\8f (не буде шифрувати)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:219
-msgid "requested (won't encrypt)"
-msgstr "запиÑ\82ано (буде шифрувати)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:228
+msgid "Requested (will encrypt)"
+msgstr "Ð\97апиÑ\82ано (не буде шифрувати)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:223
-msgid "required (can't connect)"
-msgstr "обов'Ñ\8fзкове (неможливо Ð·'Ñ\94днаÑ\82иÑ\81Ñ\8f)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:230
+msgid "Requested (won't encrypt)"
+msgstr "Ð\97апиÑ\82ано (бÑ\83де Ñ\88иÑ\84Ñ\80Ñ\83ваÑ\82и)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:225
-msgid "required (will encrypt)"
-msgstr "обов'Ñ\8fзкове (бÑ\83де Ñ\88иÑ\84Ñ\80Ñ\83ваÑ\82и)"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:234
+msgid "Required (can't connect)"
+msgstr "Ð\9eбов'Ñ\8fзкове (неможливо Ð·'Ñ\94днаÑ\82иÑ\81Ñ\8f)"
 
-#: 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:236
+msgid "Required (will encrypt)"
+msgstr "Обов'язкове (буде шифрувати)"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:254
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:38
-msgid "Type:"
-msgstr "Тип:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:256
+msgid "Hostname:"
+msgstr "Ім'я сервера:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:270
+msgid "Gametype:"
+msgstr "Тип гри:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:259
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:275
 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
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:280
 msgid "Mod:"
 msgstr "Мод:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:284
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:285
 msgid "Version:"
 msgstr "Версія:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:289
-msgid "Ping:"
-msgstr "Ð\9fÑ\96нг:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:290
+msgid "Settings:"
+msgstr "Ð\9dалаÑ\88Ñ\82Ñ\83ваннÑ\8f:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:295
-msgid "CA:"
-msgstr "CA:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:297
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:329
+msgid "Players:"
+msgstr "Гравці:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:301
-msgid "Key:"
-msgstr "Ð\9aлÑ\8eÑ\87:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:302
+msgid "Bots:"
+msgstr "Ð\91оÑ\82и:"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:307
+msgid "Free slots:"
+msgstr "Вільні місця:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:313
 msgid "Encryption:"
 msgstr "Кодування:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:63
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:318
+msgid "ID:"
+msgstr "ID:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:323
+msgid "Key:"
+msgstr "Ключ:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:60
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:19
 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 "Швидкість зуму:"
+msgid "No crosshair"
+msgstr "Без прицілу"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:103
-msgid "Weapon settings..."
-msgstr "Ð\9dалаÑ\88Ñ\82Ñ\83ваннÑ\8f Ð·Ð±Ñ\80оÑ\97..."
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:90
+msgid "Per weapon crosshair"
+msgstr "Ð\94лÑ\8f ÐºÐ¾Ð¶Ð½Ð¾Ñ\97 Ð·Ð±Ñ\80оÑ\97 Ñ\81вÑ\96й"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:110
-msgid "Crosshair:"
-msgstr "Ð\9fÑ\80иÑ\86Ñ\96л:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:93
+msgid "Custom crosshair"
+msgstr "Ð\9dа Ð²Ð¸Ð±Ñ\96Ñ\80"
 
-#: 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
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:112
 msgid "Crosshair size:"
 msgstr "Розмір прицілу:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:134
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:117
 msgid "Crosshair alpha:"
 msgstr "Прозорість прицілу:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:138
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:123
 msgid "Crosshair color:"
 msgstr "Колір прицілу:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:140
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:125
+msgid "Per weapon"
+msgstr "Для кожної зброї"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:127
 msgid "By health"
 msgstr "Залежно від здоров'я"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:143
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:131
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:47
 msgid "Custom"
 msgstr "Вибрати"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:148
-msgid "Enable center dot"
-msgstr "УвÑ\96мкнÑ\83Ñ\82и Ñ\86енÑ\82Ñ\80алÑ\8cнÑ\83 ÐºÑ\80апку"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:139
+msgid "Other crosshair settings"
+msgstr "Ð\86нÑ\88Ñ\96 Ð½Ð°Ð»Ð°Ñ\88Ñ\82Ñ\83ваннÑ\8f Ð¿Ñ\80иÑ\86Ñ\96лу"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:151
-msgid "Size:"
-msgstr "Розмір:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:147
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:6
+msgid "Model settings"
+msgstr "Налаштування моделі"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:158
-msgid "Hit test:"
-msgstr "Тест на влучання:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:153
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:6
+msgid "View settings"
+msgstr "Налаштування огляду"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:159
-msgid "HTST^None"
-msgstr "HTST^Жодного"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:6
+msgid "Weapon settings"
+msgstr "Налаштування зброї"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:169
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:6
+msgid "HUD settings"
+msgstr "Налаштування HUD"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:175
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:203
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:185
+#: qcsrc/menu/xonotic/dialog_settings_input.c:89
+#: qcsrc/menu/xonotic/dialog_settings_user.c:88
+#: qcsrc/menu/xonotic/dialog_settings_video.c:142
+msgid "Apply immediately"
+msgstr "Вжити негайно"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:160
-msgid "TrueAim"
-msgstr "TrueAim"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:6
+msgid "Crosshair settings"
+msgstr "Налаштування прицілу"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:161
-msgid "Enemies"
-msgstr "Ð\92оÑ\80оги"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:28
+msgid "Enable center crosshair dot"
+msgstr "УвÑ\96мкнÑ\83Ñ\82и Ñ\86Ñ\8fÑ\82кÑ\83 Ð² Ñ\86енÑ\82Ñ\80Ñ\96 Ð¿Ñ\80иÑ\86Ñ\96лÑ\83"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:164
-msgid "Waypoints setup..."
-msgstr "Ð\9dалаÑ\88Ñ\82Ñ\83ваннÑ\8f Ð´Ð¾Ñ\80оговказÑ\96в..."
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:31
+msgid "Dot size:"
+msgstr "РозмÑ\96Ñ\80 Ñ\86Ñ\8fÑ\82ки:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:169
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:36
+msgid "Dot alpha:"
+msgstr "Прозорість цятки:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:41
+msgid "Dot color:"
+msgstr "Колір цятки:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:43
+msgid "Use normal crosshair color"
+msgstr "Використовувати нормальний колір прицілу"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:54
+msgid "Crosshair animations:"
+msgstr "Рухи прицілу:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:57
+msgid "Smooth effects of crosshairs"
+msgstr "Згладжувати ефекти прицілу"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:61
+msgid "Use rings to indicate weapon status"
+msgstr "Показувати статус зброї кільцями"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:67
+msgid "Hit testing:"
+msgstr "Тест на влучання:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:69
+msgid "HTTST^Disabled"
+msgstr "HTTST^Вимкнуто"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:70
+msgid "HTTST^TrueAim"
+msgstr "HTTST^TrueAim"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:71
+msgid "HTTST^Enemies"
+msgstr "HTTST^Вороги"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:76
+msgid "Blur crosshair if the shot is obstructed"
+msgstr "Робити приціл нечітким, якщо пострілу щось заважає"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:81
+msgid "Animate when hitting an enemy"
+msgstr "Сигналізувати влучання прицілом"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_crosshair.c:85
+msgid "Animate when picking up an item"
+msgstr "Сигналізувати прицілом підняття предмету"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:40
+msgid "Damage:"
+msgstr "Затьмарення від болю:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:43
+msgid "Overlay:"
+msgstr "Ефект:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:47
+msgid "Factor:"
+msgstr "Сила:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:52
+msgid "Fade rate:"
+msgstr "Час зникнення:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:58
+msgid "Waypoints"
+msgstr "Дороговкази"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:71
+msgid "Edge offset:"
+msgstr "Офсет краю:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:80
+msgid "Show names above players"
+msgstr "Показувати імена над гравцями"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:83
+msgid "Only when near crosshair"
+msgstr "Тільки коли поруч з прицілом"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:86
+msgid "Display health and armor"
+msgstr "Показувати кількість здоров'я та броні"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hud.c:90
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hudconfirm.c:4
 msgid "Enter HUD editor"
 msgstr "Редактор HUD"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:174
-msgid "Force models:"
-msgstr "Ð\9fÑ\80имÑ\83Ñ\81ово Ð²Ð¸ÐºÐ¾Ñ\80иÑ\81Ñ\82овÑ\83ваÑ\82и Ð¾Ð´Ð½Ñ\83 Ð¼Ð¾Ð´ÐµÐ»Ñ\8c:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hudconfirm.c:28
+msgid "In order for the HUD editor to show, you must first be in game."
+msgstr "РедакÑ\82оÑ\80 HUD Ð´Ð¾Ñ\81Ñ\82Ñ\83пний Ð»Ð¸Ñ\88е Ñ\83 Ð³Ñ\80Ñ\96."
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:175
-msgid "MDL^None"
-msgstr "MDL^Жодну"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hudconfirm.c:30
+msgid "Do you wish to start a local game to set up the HUD?"
+msgstr "Бажаєте почати локальну гру для налаштування HUD?"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:176
-msgid "MDL^Custom"
-msgstr "MDL^Особливу"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hudconfirm.c:33
+msgid "HDCNFRM^Yes"
+msgstr "HDCNFRM^Так"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:177
-msgid "MDL^All"
-msgstr "MDL^Всі"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_hudconfirm.c:36
+msgid "HDCNFRM^No"
+msgstr "HDCNFRM^Ні"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:180
-msgid "Disable gore effects"
-msgstr "Ð\92имкнÑ\83Ñ\82и ÐºÑ\80ивавÑ\96 ÐµÑ\84екÑ\82и"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:28
+msgid "Body fading:"
+msgstr "Ð\97никненнÑ\8f Ñ\82Ñ\96л:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:182
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:31
 msgid "Gibs:"
 msgstr "Шматки тіл:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:184
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:33
 msgid "GIBS^None"
 msgstr "GIBS^Вимкнуто"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:185
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:34
 msgid "GIBS^Few"
 msgstr "GIBS^Мало"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:186
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:35
 msgid "GIBS^Many"
 msgstr "GIBS^Більше"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:187
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:36
 msgid "GIBS^Lots"
 msgstr "GIBS^Багато"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:191
-msgid "Damage splash:"
-msgstr "Червоний сплеск від шкоди:"
-
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:195
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:173
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:194
-#: qcsrc/menu/xonotic/dialog_settings_input.c:74
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:30
-#: qcsrc/menu/xonotic/dialog_settings_misc.c:41
-#: qcsrc/menu/xonotic/dialog_settings_video.c:109
-msgid "Apply immediately"
-msgstr "Вжити негайно"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:40
+msgid "Playermodel LOD:"
+msgstr "LOD моделей гравців:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:5
-msgid "Waypoints"
-msgstr "Дороговкази"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:44
+msgid "Force models:"
+msgstr "Примусово використовувати одну модель:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:45
+msgid "MDL^None"
+msgstr "MDL^Жодну"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:46
+msgid "MDL^Custom"
+msgstr "MDL^Особливу"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:23
-msgid "Show base waypoints"
-msgstr "Показувати основні дороговкази"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:47
+msgid "MDL^All"
+msgstr "MDL^Всі"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:25
-msgid "Waypoint scale:"
-msgstr "РозмÑ\96Ñ\80 Ð´Ð¾Ñ\80оговказÑ\96в:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:50
+msgid "Force player models to mine"
+msgstr "Ð\92икоÑ\80иÑ\81Ñ\82овÑ\83ваÑ\82и Ð²Ð»Ð°Ñ\81нÑ\83 Ð¼Ð¾Ð´ÐµÐ»Ñ\8c Ð´Ð»Ñ\8f Ð²Ñ\81Ñ\96Ñ\85 Ð³Ñ\80авÑ\86Ñ\96в"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:29
-msgid "Waypoint alpha:"
-msgstr "Ð\9fÑ\80озоÑ\80Ñ\96Ñ\81Ñ\82Ñ\8c Ð´Ð¾Ñ\80оговказÑ\96в:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_model.c:52
+msgid "Force player colors to mine"
+msgstr "Ð\92икоÑ\80иÑ\81Ñ\82овÑ\83ваÑ\82и ÐºÐ¾Ð»Ñ\8cоÑ\80и Ð²Ð°Ñ\88оÑ\97 Ð¼Ð¾Ð´ÐµÐ»Ñ\96 Ð´Ð»Ñ\8f Ñ\83Ñ\81Ñ\96Ñ\85 Ñ\96нÑ\88иÑ\85 Ð¼Ð¾Ð´ÐµÐ»ÐµÐ¹"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:34
-msgid "Show names:"
-msgstr "Ð\9fоказÑ\83ваÑ\82и Ñ\96мена:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:28
+msgid "Field of view:"
+msgstr "Ð\9fоле Ð·Ð¾Ñ\80Ñ\83:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:37
-msgid "Teammates"
-msgstr "Ð\93Ñ\80авÑ\86Ñ\96в ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:31
+msgid "Zoom:"
+msgstr "Ð\97Ñ\83м:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:38
-msgid "All players"
-msgstr "Всіх гравців"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:33
+msgid "RETICLE^Fullscreen"
+msgstr "RETICLE^На повний екран"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:6
-msgid "Weapon settings"
-msgstr "Налаштування зброї"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:34
+msgid "RETICLE^With reticle"
+msgstr "RETICLE^З візирними нитками"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:38
+msgid "ZOOM^Factor:"
+msgstr "ZOOM^Сила:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:42
+msgid "ZOOM^Speed:"
+msgstr "ZOOM^Швидкість:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:52
+msgid "ZOOM^Instant"
+msgstr "ZOOM^Миттєвий"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:56
+msgid "ZOOM^Sensitivity:"
+msgstr "ZOOM^Чутливість:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:59
+msgid "Velocity zoom:"
+msgstr "Швидкісний зум:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:61
+msgid "VZOOM^Disabled"
+msgstr "VZOOM^Вимкнуто"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:62
+msgid "VZOOM^Forward only"
+msgstr "VZOOM^Тільки вперед"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:63
+msgid "VZOOM^All directions"
+msgstr "VZOOM^Всі напрямки"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:67
+msgid "VZOOM^Speed"
+msgstr "VZOOM^Швидкість"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:72
+msgid "Allow passing through walls while spectating"
+msgstr "Дозволити рух крізь стіни підчас спостерігання"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:75
+msgid "1st person perspective"
+msgstr "Вид від першої особи"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:79
+msgid "Smooth the view when landing from a jump"
+msgstr "Вирівнювати поле зору після приземлення після стрибка"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:83
+msgid "Smooth the view while crouching"
+msgstr "Вирівнювати поле зору після присідання"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:87
+msgid "View waving while idle"
+msgstr "Гойдання поля зору під час бездіяльності"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:91
+msgid "View bobbing while walking around"
+msgstr "Гойдання поля зору підчас ходьби"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:96
+msgid "3rd person perspective"
+msgstr "Вид від третьої особи"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:100
+msgid "Back distance"
+msgstr "Відстань ззаду"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_view.c:106
+msgid "Up distance"
+msgstr "Відстань зверху"
 
 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:29
 msgid "Weapon priority list:"
-msgstr "Список пріоритетів зброї:"
+msgstr "Список пріоритетності зброї:"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:34
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:33
 msgid "Up"
 msgstr "Нагору"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:37
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:36
 msgid "Down"
 msgstr "Вниз"
 
@@ -1476,13 +1754,21 @@ msgstr "Використовувати список приоритетів дл
 msgid "Auto switch weapons on pickup"
 msgstr "Автоматично перемикатись на підняту зброю"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:45
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:46
 msgid "Draw 1st person weapon model"
 msgstr "Показувати модель зброї у першій особі"
 
-#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:55
-msgid "Flip view horizontally"
-msgstr "Поміняти місцями вид горизонтально"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:58
+msgid "Gun model swaying"
+msgstr "Гойдання моделі зброї"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:63
+msgid "Gun model bobbing"
+msgstr "Хитання моделі зброї"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:68
+msgid "VWMDL^Scale"
+msgstr "VWMDL^Розмір"
 
 #: qcsrc/menu/xonotic/dialog_news.c:4
 msgid "News"
@@ -1496,18 +1782,146 @@ msgstr "http://www.xonotic.org/team/blog/"
 msgid "Quit"
 msgstr "Вийти"
 
-#: qcsrc/menu/xonotic/dialog_quit.c:17
+#: qcsrc/menu/xonotic/dialog_quit.c:18
 msgid "Are you sure you want to quit?"
 msgstr "Ви дійсно хочете вийти?"
 
-#: qcsrc/menu/xonotic/dialog_quit.c:20
+#: qcsrc/menu/xonotic/dialog_quit.c:21
 msgid "Yes"
 msgstr "Так"
 
-#: qcsrc/menu/xonotic/dialog_quit.c:21
+#: qcsrc/menu/xonotic/dialog_quit.c:22
 msgid "No"
 msgstr "Ні"
 
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:4
+msgid "Sandbox Tools"
+msgstr "Інструменти Пісочниці"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:24
+msgid "Spawn"
+msgstr "Створити"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:25
+msgid "Remove *"
+msgstr "Прибрати *"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:27
+msgid "Copy *"
+msgstr "Скопіювати *"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:28
+msgid "Paste"
+msgstr "Вставити"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:30
+msgid "Bone:"
+msgstr "Кістка:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:35
+msgid "Set * as child"
+msgstr "Зробити * дитям"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:36
+msgid "Attach to *"
+msgstr "Прикріпити до *"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:38
+msgid "Detach from *"
+msgstr "Відокремити від *"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:41
+msgid "Visual object properties for *:"
+msgstr "Візуальні властивості об'єкту для *:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:43
+msgid "Set skin:"
+msgstr "Встановити скин:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:45
+msgid "Set alpha:"
+msgstr "Встановити прозорість:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:48
+msgid "Set color main:"
+msgstr "Встановити основний колір:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:50
+msgid "Set color glow:"
+msgstr "Встановити колір свічення:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:54
+msgid "Set frame:"
+msgstr "Встановити кадр:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:58
+msgid "Physical object properties for *:"
+msgstr "Фізичні властивості об'єкта для *:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:60
+msgid "Set material:"
+msgstr "Встановити матеріал:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:66
+msgid "Set solidity:"
+msgstr "Встановити твердість:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:67
+msgid "Non-solid"
+msgstr "Нетверде"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:68
+msgid "Solid"
+msgstr "Тверде"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:69
+msgid "Set physics:"
+msgstr "Встановити фізику:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:70
+msgid "Static"
+msgstr "Нерухоме"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:71
+msgid "Movable"
+msgstr "Рухоме"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:72
+msgid "Physical"
+msgstr "Фізичне"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:74
+msgid "Set scale:"
+msgstr "Встановити масштаб:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:76
+msgid "Set force:"
+msgstr "Встановити силу:"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:80
+msgid "Claim *"
+msgstr "Взяти *"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:82
+msgid "* object info"
+msgstr "* інформація об'єкта"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:83
+msgid "* mesh info"
+msgstr "* інформація меша"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:84
+msgid "* attachment info"
+msgstr "* інформація прикріплення"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:85
+msgid "Show help"
+msgstr "Показувати допомогу"
+
+#: qcsrc/menu/xonotic/dialog_sandboxtools.c:86
+msgid "* is the object you are facing"
+msgstr "* це об'єкт перед вами"
+
 #: qcsrc/menu/xonotic/dialog_settings.c:4
 msgid "Settings"
 msgstr "Налаштування"
@@ -1533,9 +1947,9 @@ msgid "Audio"
 msgstr "Звук"
 
 #: qcsrc/menu/xonotic/dialog_settings.c:22
-#: qcsrc/menu/xonotic/dialog_settings_network.c:4
-msgid "Network"
-msgstr "Ð\9cеÑ\80ежа"
+#: qcsrc/menu/xonotic/dialog_settings_user.c:4
+msgid "User"
+msgstr "Ð\9aоÑ\80иÑ\81Ñ\82Ñ\83ваÑ\87"
 
 #: qcsrc/menu/xonotic/dialog_settings.c:23
 #: qcsrc/menu/xonotic/dialog_settings_misc.c:4
@@ -1546,194 +1960,170 @@ msgstr "Різне"
 msgid "Master:"
 msgstr "Гучність:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:33
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:35
 msgid "Music:"
 msgstr "Музика:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:41
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:45
 msgid "VOL^Ambient:"
 msgstr "VOL^Навколишні звуки:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:48
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:54
 msgid "Info:"
 msgstr "Інформація:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:55
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:63
 msgid "Items:"
 msgstr "Предмети:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:62
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:72
 msgid "Pain:"
 msgstr "Біль:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:69
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:81
 msgid "Player:"
 msgstr "Гравці:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:76
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:90
 msgid "Shots:"
 msgstr "Постріли:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:83
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:99
 msgid "Voice:"
 msgstr "Голоси:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:91
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:109
 msgid "Weapons:"
 msgstr "Зброя:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:98
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:156
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:117
+msgid "New style sound attenuation"
+msgstr "Новий стиль затухання звуку"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:119
+msgid "Mute sounds when not active"
+msgstr "Прибирати звуки підчас бездіяльності"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:122
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:194
 msgid "Frequency:"
 msgstr "Частота:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:100
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:124
 msgid "8 kHz"
 msgstr "8 kHz"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:101
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:125
 msgid "11.025 kHz"
 msgstr "11.025 kHz"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:102
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:126
 msgid "16 kHz"
 msgstr "16 kHz"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:103
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:127
 msgid "22.05 kHz"
 msgstr "22.05 kHz"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:104
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:128
 msgid "24 kHz"
 msgstr "24 kHz"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:105
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:129
 msgid "32 kHz"
 msgstr "32 kHz"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:106
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:130
 msgid "44.1 kHz"
 msgstr "44.1 kHz"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:107
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:131
 msgid "48 kHz"
 msgstr "48 kHz"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:110
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:134
 msgid "Channels:"
 msgstr "Канали:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:112
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:136
 msgid "Mono"
 msgstr "Моно"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:113
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:137
 msgid "Stereo"
 msgstr "Стерео"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:114
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:138
 msgid "2.1"
 msgstr "2.1"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:115
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:139
 msgid "4"
 msgstr "4"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:116
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:140
 msgid "5"
 msgstr "5"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:117
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:141
 msgid "5.1"
 msgstr "5.1"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:118
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:142
 msgid "6.1"
 msgstr "6.1"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:119
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:143
 msgid "7.1"
 msgstr "7.1"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:123
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:146
 msgid "Swap Stereo"
 msgstr "Інвертувати стерео"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:127
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:148
 msgid "Headphone friendly mode"
 msgstr "Дружній режим для навушників"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:131
-msgid "Spatial voices:"
-msgstr "Просторові звуки:"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:132
-msgid "VOCS^None"
-msgstr "VOCS^Жодних"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:133
-msgid "VOCS^Taunts"
-msgstr "VOCS^Глузування"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:134
-msgid "VOCS^All"
-msgstr "VOCS^Всі"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:137
-msgid "Taunt range:"
-msgstr "Дальність глузувань:"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:140
-msgid "RNG^Very short"
-msgstr "RNG^Дуже коротка"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:141
-msgid "RNG^Short"
-msgstr "RNG^Коротка"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:142
-msgid "RNG^Normal"
-msgstr "RNG^Нормальна"
-
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:143
-msgid "RNG^Long"
-msgstr "RNG^Велика"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:170
+msgid "Hit indication sound"
+msgstr "Звук влучання"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:144
-msgid "RNG^Full"
-msgstr "RNG^Повна"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:172
+msgid "Chat message sound"
+msgstr "Звук повідомлення"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:151
-msgid "Automatic taunts"
-msgstr "Ð\90вÑ\82омаÑ\82иÑ\87нÑ\96 Ð³Ð»Ñ\83зÑ\83ваннÑ\8f"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:174
+msgid "Menu sounds"
+msgstr "Ð\97вÑ\83ки Ð¼ÐµÐ½Ñ\8e"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:160
-msgid "Time warning:"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:177
+msgid "Time announcer:"
 msgstr "Попередження про час:"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:162
-msgid "WRN^None"
-msgstr "WRN^Ð\96одного"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:179
+msgid "WRN^Disabled"
+msgstr "WRN^Ð\92имкнÑ\83Ñ\82о"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:163
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:180
 msgid "1 minute"
 msgstr "1 хвилина"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:164
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:181
 msgid "5 minutes"
 msgstr "5 хвилин"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:165
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:182
 msgid "WRN^Both"
 msgstr "WRN^1 і 5 хвилин"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:168
-msgid "Hit indicator"
-msgstr "Ð\9fокажÑ\87ик Ð²Ð»Ñ\83Ñ\87енÑ\8c"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:189
+msgid "Automatic taunts"
+msgstr "Ð\90вÑ\82омаÑ\82иÑ\87нÑ\96 Ð³Ð»Ñ\83зÑ\83ваннÑ\8f"
 
-#: qcsrc/menu/xonotic/dialog_settings_audio.c:170
-msgid "Menu sounds"
-msgstr "Ð\97вÑ\83ки Ð¼ÐµÐ½Ñ\8e"
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:199
+msgid "Debug info about sounds"
+msgstr "Ð\9fеÑ\80евÑ\96Ñ\80Ñ\8fÑ\82и Ð½Ð° Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¸ Ñ\96нÑ\84оÑ\80маÑ\86Ñ\96Ñ\8e Ð¿Ñ\80о Ð·Ð²Ñ\83к"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:38
 msgid "Quality preset:"
@@ -1796,234 +2186,226 @@ msgid "DET^Insane"
 msgstr "DET^Божевільна"
 
 #: qcsrc/menu/xonotic/dialog_settings_effects.c:62
-msgid "Antialiasing:"
-msgstr "Антиаліасінг:"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:64
-msgid "AA^Disabled"
-msgstr "AA^Вимкнуто"
-
-#: 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 "Роздільність текстур:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:73
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:65
 msgid "RES^Leet"
 msgstr "RES^Елітна"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:74
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:66
 msgid "RES^Lowest"
 msgstr "RES^Найнижча"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:75
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:67
+msgid "RES^Very low"
+msgstr "RES^Дуже низька"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:68
 msgid "RES^Low"
 msgstr "RES^Низька"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:76
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:69
 msgid "RES^Normal"
 msgstr "RES^Нормальна"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:77
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:70
 msgid "RES^Good"
 msgstr "RES^Добра"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:78
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:71
 msgid "RES^Best"
 msgstr "RES^Найкраща"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:91
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:94
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:84
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:87
 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 "ANISO^Вимкнуто"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:93
+msgid "Use lightmaps"
+msgstr "Мапи освітлення"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:105
-msgid "8x"
-msgstr "8x"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:94
+msgid "Deluxe mapping"
+msgstr "Текстурування deluxe"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:106
-msgid "16x"
-msgstr "16x"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:96
+msgid "Gloss"
+msgstr "Блиск"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:110
-msgid "Particle quality:"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:100
+msgid "Particles quality:"
 msgstr "Якість часток:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:113
-msgid "Particle distance:"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:103
+msgid "Particles distance:"
 msgstr "Відстань часток:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:117
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:106
+msgid "Damage effects:"
+msgstr "Ефекти шкоди:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:108
+msgid "DMGPRTCLS^Disabled"
+msgstr "DMGPRTCLS^Вимкнуті"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:109
+msgid "DMGPRTCLS^Skeletal"
+msgstr "DMGPRTCLS^Скелетні"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:110
+msgid "DMGPRTCLS^All"
+msgstr "DMGPRTCLS^Всі"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:114
 msgid "Decals"
 msgstr "Сліди"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:118
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:115
 msgid "Decals on models"
 msgstr "Сліди на моделях"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:122
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:119
 msgid "Distance:"
 msgstr "Відстань:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:128
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:125
 msgid "Time:"
 msgstr "Час:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:134
-msgid "Use lightmaps"
-msgstr "Мапи освітлення"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:135
-msgid "Deluxe mapping"
-msgstr "Текстурування deluxe"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:137
-msgid "Gloss"
-msgstr "Блиск"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:140
-msgid "Offset mapping"
-msgstr "Офсетне текстурування"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:142
-msgid "Relief mapping"
-msgstr "Рельєфне текстурування"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:145
-msgid "Reflections:"
-msgstr "Віддзеркалення:"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:148
-msgid "Blurred"
-msgstr "Розмиті"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:149
-msgid "REFL^Good"
-msgstr "REFL^Добрі"
-
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:150
-msgid "Sharp"
-msgstr "Чіткі"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:131
+msgid "Coronas"
+msgstr "Корони"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:155
-msgid "Show surfaces"
-msgstr "Ð\9fоказÑ\83ваÑ\82и Ð¿Ð¾Ð²ÐµÑ\80Ñ\85нÑ\96"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:132
+msgid "Use Occlusion Queries"
+msgstr "Ð\92икоÑ\80иÑ\81Ñ\82овÑ\83ваÑ\82и Occlusion Queries"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:157
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:134
 msgid "No dynamic lighting"
 msgstr "Без динамічного освітлення"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:159
-msgid "Flash blend approximation"
-msgstr "Ð\9fÑ\80иблинзнÑ\96 Ñ\80озÑ\80аÑ\85Ñ\83нки Ð·Ð¼Ñ\96Ñ\88Ñ\83ванÑ\8fнн Ñ\81палаÑ\85Ñ\96в"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:136
+msgid "Fake corona lighting"
+msgstr "ФалÑ\8cÑ\88иве Ð¾Ñ\81вÑ\96Ñ\82леннÑ\8f ÐºÐ¾Ñ\80онами"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:161
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:138
 msgid "Realtime dynamic lighting"
 msgstr "Динамаічне освітлення у реальному часі"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:162
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:166
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:139
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:143
 msgid "Shadows"
 msgstr "Тіні"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:165
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:142
 msgid "Realtime world lighting"
 msgstr "Освітлення світу у реальному часі"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:170
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:147
 msgid "Use normal maps"
 msgstr "Використовувати карти нормалів"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:172
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:149
 msgid "Soft shadows"
 msgstr "М'які тіні"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:175
-msgid "Coronas"
-msgstr "Ð\9aоÑ\80они"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:153
+msgid "Show surfaces"
+msgstr "Ð\9fоказÑ\83ваÑ\82и Ð¿Ð¾Ð²ÐµÑ\80Ñ\85нÑ\96"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:176
-msgid "Use Occlusion Queries"
-msgstr "Використовувати Occlusion Queries"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:155
+msgid "Offset mapping"
+msgstr "Офсетне текстурування"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:157
+msgid "Relief mapping"
+msgstr "Рельєфне текстурування"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:159
+msgid "LOD"
+msgstr "LOD"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:178
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:162
 msgid "Bloom"
 msgstr "Ефект bloom"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:180
-msgid "High Dynamic Range (HDR)"
-msgstr "High Dynamic Range (HDR)"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:164
+msgid "Reflections:"
+msgstr "Віддзеркалення:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:167
+msgid "Blurred"
+msgstr "Розмиті"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:168
+msgid "REFL^Good"
+msgstr "REFL^Добрі"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:169
+msgid "Sharp"
+msgstr "Чіткі"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:184
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:174
 msgid "Motion blur:"
 msgstr "Ефект motion blur:"
 
-#: qcsrc/menu/xonotic/dialog_settings_effects.c:189
-msgid "Blur and sharpen postprocessing"
-msgstr "Ð\9fÑ\96Ñ\81лÑ\8fобÑ\80обка"
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:179
+msgid "Extra postprocessing effects"
+msgstr "Ð\94одаÑ\82ковÑ\96 ÐµÑ\84екÑ\82и Ð¿Ð¾Ñ\81Ñ\82-обÑ\80обки"
 
 #: qcsrc/menu/xonotic/dialog_settings_input.c:26
 msgid "Key bindings:"
 msgstr "Клавіши керування:"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:31
+#: qcsrc/menu/xonotic/dialog_settings_input.c:30
 msgid "Change key..."
 msgstr "Змінити клавішу..."
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:35
+#: qcsrc/menu/xonotic/dialog_settings_input.c:34
 msgid "Edit..."
 msgstr "Редагувати..."
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:46
-msgid "Sensitivity:"
-msgstr "Чутливість:"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:45
+msgid "Pressing \"enter console\" key also closes it"
+msgstr "Кнопка \"увійти в консоль\" також закриває її"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:47
+msgid "Automatically repeat jumping if holding jump"
+msgstr "Автоматично продовжувати стрибати, якщо натиснута клавіша стрибок"
 
 #: qcsrc/menu/xonotic/dialog_settings_input.c:51
-msgid "UI mouse speed:"
-msgstr "Швидкість миші в інтерфейсі"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:53
+#: qcsrc/menu/xonotic/dialog_settings_input.c:56
+msgid "Use joystick input"
+msgstr "Використовувати джойстик"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:55
-msgid "Mouse filter"
-msgstr "ФÑ\96лÑ\8cÑ\82Ñ\80 Ð¼Ð¸Ñ\88Ñ\96"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:61
+msgid "Mouse:"
+msgstr "Ð\9cиÑ\88а:"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:57
-msgid "Invert mouse"
-msgstr "Ð\86нвеÑ\80Ñ\82Ñ\83ваÑ\82и Ð¼Ð¸Ñ\88Ñ\83"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:64
+msgid "Sensitivity:"
+msgstr "ЧÑ\83Ñ\82ливÑ\96Ñ\81Ñ\82Ñ\8c:"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:60
-#: qcsrc/menu/xonotic/dialog_settings_input.c:62
-msgid "Use joystick input"
-msgstr "Використовувати джойстик"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:68
+msgid "Smooth aiming"
+msgstr "Згладжувати прицілювання"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:65
-#: qcsrc/menu/xonotic/dialog_settings_input.c:67
-msgid "Turn off OS mouse acceleration"
-msgstr "Вимкнути прискорення миші операційною системою"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:71
+msgid "Invert aiming"
+msgstr "Інвертувати прицілювання"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:69
-msgid "\"enter console\" also closes"
-msgstr "\"увійти в консоль\" також закриває консоль"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:75
+#: qcsrc/menu/xonotic/dialog_settings_input.c:77
+#: qcsrc/menu/xonotic/dialog_settings_input.c:80
+msgid "Disable system mouse acceleration"
+msgstr "Вимкнути прискорення миші операційною системою"
 
-#: qcsrc/menu/xonotic/dialog_settings_input.c:72
-msgid "Holding jump key keeps jumping"
-msgstr "Утримування клавіши стрибка продовжує стрибання"
+#: qcsrc/menu/xonotic/dialog_settings_input.c:85
+msgid "Enable built in mouse acceleration"
+msgstr "Увімкнути вбудоване прискорення миші"
 
 #: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:5
 msgid "User defined key bind"
@@ -2046,103 +2428,268 @@ msgid "Cancel"
 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 "Minimize input latency"
-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 "Фільтр cvar:"
-
-#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:34
-msgid "Setting:"
-msgstr "Налаштування:"
+msgid "Network:"
+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_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
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:31
 msgid "56k"
 msgstr "56k"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:36
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:32
 msgid "ISDN"
 msgstr "ISDN"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:37
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:33
 msgid "Slow ADSL"
 msgstr "Повільний ADSL"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:38
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:34
 msgid "Fast ADSL"
 msgstr "Швидкій ADSL"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:39
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:35
 msgid "Broadband"
 msgstr "Широкополосний доступ"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:42
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:39
 msgid "Input packets/s:"
 msgstr "Вхідні пакети:"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:46
-msgid "HTTP downloads:"
-msgstr "Завантаження через HTTP:"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:45
+msgid "Local latency:"
+msgstr "Локальна затримка:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:50
+msgid "Client UDP port:"
+msgstr "UDP порт клієнта:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:55
+msgid "Show netgraph"
+msgstr "Показувати графік мережі"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:59
+msgid "Client-side movement prediction"
+msgstr "Передбачення руху зі сторони клієнта"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:62
+msgid "Movement error compensation"
+msgstr "Компенсація помилок руху"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:49
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:66
 msgid "Downloads:"
 msgstr "Завантажень:"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:53
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:69
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:81
+msgid "Maximum:"
+msgstr "Максимум:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:73
 msgid "Speed (kB/s):"
 msgstr "Швидкість (кб/с):"
 
-#: qcsrc/menu/xonotic/dialog_settings_network.c:57
-msgid "Client UDP port:"
-msgstr "UDP порт клієнта:"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:78
+msgid "Framerate:"
+msgstr "Кадри за секунду:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:26
-msgid "Resolution:"
-msgstr "Роздільність:"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:83
+msgid "MAXFPS^5 fps"
+msgstr "MAXFPS^5 fps"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:29
-msgid "Font/UI size:"
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:84
+msgid "MAXFPS^10 fps"
+msgstr "MAXFPS^10 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:85
+msgid "MAXFPS^20 fps"
+msgstr "MAXFPS^20 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:86
+msgid "MAXFPS^30 fps"
+msgstr "MAXFPS^30 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:87
+msgid "MAXFPS^40 fps"
+msgstr "MAXFPS^40 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:88
+msgid "MAXFPS^50 fps"
+msgstr "MAXFPS^50 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:89
+msgid "MAXFPS^60 fps"
+msgstr "MAXFPS^60 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:90
+msgid "MAXFPS^70 fps"
+msgstr "MAXFPS^70 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:91
+msgid "MAXFPS^100 fps"
+msgstr "MAXFPS^100 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:92
+msgid "MAXFPS^125 fps"
+msgstr "MAXFPS^125 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:93
+msgid "MAXFPS^200 fps"
+msgstr "MAXFPS^200 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:94
+msgid "MAXFPS^Unlimited"
+msgstr "MAXFPS^Необмежено"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:98
+msgid "Target:"
+msgstr "Ціль:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:100
+msgid "TRGT^Disabled"
+msgstr "TRGT^Вимкнуто"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:101
+msgid "TRGT^30 fps"
+msgstr "TRGT^30 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:102
+msgid "TRGT^40 fps"
+msgstr "TRGT^40 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:103
+msgid "TRGT^50 fps"
+msgstr "TRGT^50 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:104
+msgid "TRGT^60 fps"
+msgstr "TRGT^60 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:105
+msgid "TRGT^100 fps"
+msgstr "TRGT^100 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:106
+msgid "TRGT^125 fps"
+msgstr "TRGT^125 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:107
+msgid "TRGT^200 fps"
+msgstr "TRGT^200 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:111
+msgid "Idle limit:"
+msgstr "Ліміт часу бездіяльності:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:113
+msgid "IDLFPS^10 fps"
+msgstr "IDLFPS^10 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:114
+msgid "IDLFPS^20 fps"
+msgstr "IDLFPS^20 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:115
+msgid "IDLFPS^30 fps"
+msgstr "IDLFPS^30 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:116
+msgid "IDLFPS^60 fps"
+msgstr "IDLFPS^60 fps"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:117
+msgid "IDLFPS^Unlimited"
+msgstr "IDLFPS^Необмежено"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:122
+msgid "Show frames per second"
+msgstr "Показувати кількість кадрів в секунду"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:125
+msgid "Save processing time for other apps"
+msgstr "Зберігати процесорний час для інших програм"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:129
+msgid "Menu tooltips:"
+msgstr "Підказки в меню:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:131
+msgid "TLTIP^Disabled"
+msgstr "TLTIP^Вимкнуті"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:132
+msgid "TLTIP^Standard"
+msgstr "TLTIP^Стандартно"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:133
+msgid "TLTIP^Advanced"
+msgstr "TLTIP^Розширені"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:137
+msgid "Show current time"
+msgstr "Показувати поточний час"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:139
+msgid "Show current date"
+msgstr "Показувати поточну дату"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:141
+msgid "Enable developer mode"
+msgstr "Увімкнути режим розробника"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:5
+msgid "Advanced settings"
+msgstr "Додаткові налаштування"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:31
+msgid "Cvar filter:"
+msgstr "Фільтр cvar:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:44
+msgid "Setting:"
+msgstr "Налаштування:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:48
+msgid "Type:"
+msgstr "Тип:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:52
+msgid "Value:"
+msgstr "Значення:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:68
+msgid "Description:"
+msgstr "Опис:"
+
+#: qcsrc/menu/xonotic/dialog_settings_user.c:27
+msgid "Menu skins:"
+msgstr "Вигляд меню:"
+
+#: qcsrc/menu/xonotic/dialog_settings_user.c:31
+msgid "Set skin"
+msgstr "Встановити скин"
+
+#: qcsrc/menu/xonotic/dialog_settings_user.c:74
+msgid "Set language"
+msgstr "Змінити мову"
+
+#: qcsrc/menu/xonotic/dialog_settings_user.c:79
+msgid "Disable gore effects and harsh language"
+msgstr "Вимкнути криваві ефекти та нецензурні слова"
+
+#: qcsrc/menu/xonotic/dialog_settings_user.c:82
+msgid "Allow player statistics to track your client"
+msgstr "Дозволити збір статистика про вашого гравця"
+
+#: qcsrc/menu/xonotic/dialog_settings_user.c:84
+msgid "Allow player statistics to use your nickname"
+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
@@ -2185,94 +2732,148 @@ msgstr "SZ^Колосальний"
 msgid "Color depth:"
 msgstr "Глибина кольору:"
 
+#: qcsrc/menu/xonotic/dialog_settings_video.c:44
+msgid "16bit"
+msgstr "16bit"
+
 #: qcsrc/menu/xonotic/dialog_settings_video.c:45
+msgid "32bit"
+msgstr "32bit"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:48
 msgid "Full screen"
 msgstr "На повний екран"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:46
+#: qcsrc/menu/xonotic/dialog_settings_video.c:49
 msgid "Vertical Synchronization"
 msgstr "Вертикальна синхронізація"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:49
-msgid "Use OpenGL 2.0 shaders (GLSL)"
-msgstr "Ð\92икоÑ\80иÑ\81Ñ\82овÑ\83ваÑ\82и Ñ\88ейдеÑ\80и OpenGL 2.0 (GLSL)"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:53
+msgid "Anisotropy:"
+msgstr "Ð\90нÑ\96зоÑ\82Ñ\80опна Ñ\84Ñ\96лÑ\8cÑ\82Ñ\80аÑ\86Ñ\96Ñ\8f:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:52
-msgid "Use GLSL to handle color control"
-msgstr "Використовувати GLSL для управління кольором"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:55
+msgid "ANISO^Disabled"
+msgstr "ANISO^Вимкнуто"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:56
-msgid "Vertex Buffer Objects (VBOs)"
-msgstr "Vertex Buffer Objects (VBOs)"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:66
+msgid "2x"
+msgstr "2x"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:57
+#: qcsrc/menu/xonotic/dialog_settings_video.c:67
+msgid "4x"
+msgstr "4x"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:58
+msgid "8x"
+msgstr "8x"
 
 #: qcsrc/menu/xonotic/dialog_settings_video.c:59
-msgid "VBO^Off"
-msgstr "VBO^Вимкнуто"
+msgid "16x"
+msgstr "16x"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:60
-msgid "Vertices, some Tris (compatible)"
-msgstr "Ð\92еÑ\80Ñ\88ини, Ð´ÐµÑ\8fкÑ\96 Ñ\82Ñ\80икÑ\83Ñ\82ники (Ñ\81Ñ\83мÑ\96Ñ\81ний)"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:62
+msgid "Antialiasing:"
+msgstr "Ð\90нÑ\82иалÑ\96аÑ\81Ñ\96нг:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:63
-msgid "Vertices"
-msgstr "Вершини"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:65
+msgid "AA^Disabled"
+msgstr "AA^Вимкнуто"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:64
-msgid "Vertices and Triangles"
-msgstr "Ð\92еÑ\80Ñ\88ини Ñ\82а Ñ\82Ñ\80икÑ\83Ñ\82ники"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:71
+msgid "High-quality frame buffer"
+msgstr "Ð\92иÑ\81окоÑ\8fкÑ\96Ñ\81ний Ð±Ñ\83Ñ\84еÑ\80 ÐºÐ°Ð´Ñ\80Ñ\96в"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:67
+#: qcsrc/menu/xonotic/dialog_settings_video.c:76
 msgid "Depth first:"
 msgstr "Глибина спершу:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:69
+#: qcsrc/menu/xonotic/dialog_settings_video.c:78
 msgid "DF^Disabled"
 msgstr "DF^Вимкнуто"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:70
+#: qcsrc/menu/xonotic/dialog_settings_video.c:79
 msgid "DF^World"
 msgstr "DF^Світ"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:71
+#: qcsrc/menu/xonotic/dialog_settings_video.c:80
 msgid "DF^All"
 msgstr "DF^Все"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:75
-msgid "Disable multithreaded OpenGL"
-msgstr "Вимкнути багатопотоковий OpenGL"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:83
+msgid "Vertex Buffer Objects (VBOs)"
+msgstr "Vertex Buffer Objects (VBOs)"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:77
-msgid "Wait for GPU to finish each frame"
-msgstr "Чекати поки GPU закінчить кожний кадр"
+#: qcsrc/menu/xonotic/dialog_settings_video.c:86
+msgid "VBO^Off"
+msgstr "VBO^Вимкнуто"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:80
+#: qcsrc/menu/xonotic/dialog_settings_video.c:87
+msgid "Vertices, some Tris (compatible)"
+msgstr "Вершини, деякі трикутники (сумісний)"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:90
+msgid "Vertices"
+msgstr "Вершини"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:91
+msgid "Vertices and Triangles"
+msgstr "Вершини та трикутники"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:94
 msgid "Brightness:"
 msgstr "Яскравість:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:83
+#: qcsrc/menu/xonotic/dialog_settings_video.c:97
 msgid "Contrast:"
 msgstr "Контраст:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:86
+#: qcsrc/menu/xonotic/dialog_settings_video.c:100
 msgid "Gamma:"
 msgstr "Гамма:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:91
+#: qcsrc/menu/xonotic/dialog_settings_video.c:105
 msgid "Contrast boost:"
 msgstr "Підсилення контрасту:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:96
+#: qcsrc/menu/xonotic/dialog_settings_video.c:110
 msgid "Saturation:"
 msgstr "Насиченість:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:102
+#: qcsrc/menu/xonotic/dialog_settings_video.c:116
 msgid "LIT^Ambient:"
 msgstr "Навколишне освітлення:"
 
-#: qcsrc/menu/xonotic/dialog_settings_video.c:105
+#: qcsrc/menu/xonotic/dialog_settings_video.c:119
 msgid "Intensity:"
 msgstr "Інтенсивність:"
 
+#: qcsrc/menu/xonotic/dialog_settings_video.c:123
+msgid "Use OpenGL 2.0 shaders (GLSL)"
+msgstr "Використовувати шейдери OpenGL 2.0 (GLSL)"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:125
+msgid "Use GLSL to handle color control"
+msgstr "Використовувати GLSL для управління кольором"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:128
+msgid "Wait for GPU to finish each frame"
+msgstr "Чекати поки GPU закінчить кожний кадр"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:132
+msgid "Psycho coloring (easter egg)"
+msgstr "Психо-кольори (великоднє яйце)"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:135
+msgid "Trippy vertices (easter egg)"
+msgstr "Божевільні вершини (великоднє яйце)"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:138
+msgid "Flip view horizontally"
+msgstr "Поміняти місцями вид горизонтально"
+
 #: qcsrc/menu/xonotic/dialog_singleplayer.c:4
 msgid "Singleplayer"
 msgstr "Одиночна гра"
@@ -2282,6 +2883,22 @@ msgid "Instant action! (random map with bots)"
 msgstr "Миттєвий бій! (випадкова мапа з ботами)"
 
 #: qcsrc/menu/xonotic/dialog_singleplayer.c:137
+msgid "Campaign Difficulty:"
+msgstr "Важкість кампанії:"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:138
+msgid "CSKL^Easy"
+msgstr "CSKL^Легка"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:139
+msgid "CSKL^Medium"
+msgstr "CSKL^Середня"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:140
+msgid "CSKL^Hard"
+msgstr "CSKL^Важка"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:142
 msgid "Start Singleplayer!"
 msgstr "Почати Одиночну гру!"
 
@@ -2317,23 +2934,23 @@ msgstr "рожева"
 msgid "spectate"
 msgstr "спостерігати"
 
-#: qcsrc/menu/xonotic/mainwindow.c:35 qcsrc/menu/xonotic/mainwindow.c:38
+#: qcsrc/menu/xonotic/mainwindow.c:39 qcsrc/menu/xonotic/mainwindow.c:42
 msgid "Do not press this button again!"
 msgstr "Більше не натискайте цю клавішу!"
 
-#: qcsrc/menu/xonotic/maplist.c:278
+#: qcsrc/menu/xonotic/maplist.c:282
 msgid ""
 "Huh? Can't play this (m is NULL). Refiltering so this won't happen again.\n"
 msgstr ""
-"Шо? Ð\92 Ñ\86е Ð½ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ð¾ грати (m is NULL). Зроблю фільтрацію ще раз, щоб такого "
+"Шо? Ð¦Ðµ Ð½ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ð¾ Ð·Ñ\96грати (m is NULL). Зроблю фільтрацію ще раз, щоб такого "
 "більше не траплялось.\n"
 
-#: qcsrc/menu/xonotic/maplist.c:286
+#: qcsrc/menu/xonotic/maplist.c:290
 #, c-format
 msgid "%s's Xonotic Server"
 msgstr "Сервер Xonotic від %s"
 
-#: qcsrc/menu/xonotic/maplist.c:291
+#: qcsrc/menu/xonotic/maplist.c:295
 msgid ""
 "Huh? Can't play this (invalid game type). Refiltering so this won't happen "
 "again.\n"
@@ -2341,7 +2958,11 @@ msgstr ""
 "Шо? В це неможливо грати (невірний режим гри). Зроблю фільтрацію ще раз, щоб "
 "такого більше не траплялось.\n"
 
-#: qcsrc/menu/xonotic/playermodel.c:174
+#: qcsrc/menu/xonotic/playerlist.c:118 qcsrc/menu/xonotic/playerlist.c:128
+msgid "spectator"
+msgstr "спостерігач"
+
+#: qcsrc/menu/xonotic/playermodel.c:177
 msgid "<no model found>"
 msgstr "<модель не знайдена>"
 
@@ -2353,23 +2974,23 @@ msgstr "Прибрати"
 msgid "Bookmark"
 msgstr "Закладка"
 
-#: qcsrc/menu/xonotic/serverlist.c:527
+#: qcsrc/menu/xonotic/serverlist.c:548
 msgid "Ping"
 msgstr "Пінг"
 
-#: qcsrc/menu/xonotic/serverlist.c:528
+#: qcsrc/menu/xonotic/serverlist.c:549
 msgid "Host name"
 msgstr "Ім'я сервера"
 
-#: qcsrc/menu/xonotic/serverlist.c:529
+#: qcsrc/menu/xonotic/serverlist.c:550
 msgid "Map"
 msgstr "Мапа"
 
-#: qcsrc/menu/xonotic/serverlist.c:530
+#: qcsrc/menu/xonotic/serverlist.c:551
 msgid "Type"
 msgstr "Тип"
 
-#: qcsrc/menu/xonotic/serverlist.c:531
+#: qcsrc/menu/xonotic/serverlist.c:552
 msgid "Players"
 msgstr "Гравці"
 
@@ -2399,27 +3020,27 @@ msgstr "%s дБ"
 msgid "%dx%d"
 msgstr "%dx%d"
 
-#: qcsrc/menu/xonotic/util.qc:271
+#: qcsrc/menu/xonotic/util.qc:276
 #, c-format
 msgid "Received HTTP request data for an invalid id %d.\n"
 msgstr "Отримано дані запиту HTTP для невірного id %d.\n"
 
-#: qcsrc/menu/xonotic/util.qc:286
+#: qcsrc/menu/xonotic/util.qc:291
 #, c-format
 msgid "error receiving update notification: status is %d\n"
 msgstr "помилка під час отримання сповіщення про оновлення: статус %d\n"
 
-#: qcsrc/menu/xonotic/util.qc:291
+#: qcsrc/menu/xonotic/util.qc:296
 msgid "error: received HTML instead of an update notification\n"
 msgstr "помилка: отримано HTML замість сповіщення про оновлення\n"
 
-#: qcsrc/menu/xonotic/util.qc:296
+#: qcsrc/menu/xonotic/util.qc:301
 msgid "error: received carriage returns from update notification server\n"
 msgstr ""
 "помилка: отримані символи повернення каретки від сервера сповіщення про "
 "оновлення\n"
 
-#: qcsrc/menu/xonotic/util.qc:317
+#: qcsrc/menu/xonotic/util.qc:322
 #, c-format
 msgid ""
 "Update can be downloaded at:\n"
@@ -2428,21 +3049,21 @@ msgstr ""
 "Оновлення можливо завантажити тут:\n"
 "%s\n"
 
-#: qcsrc/menu/xonotic/util.qc:340
+#: qcsrc/menu/xonotic/util.qc:351
 msgid "Autogenerating mapinfo for newly added maps..."
 msgstr "Створення відомостей про нові мапи..."
 
-#: qcsrc/menu/xonotic/util.qc:370
+#: qcsrc/menu/xonotic/util.qc:381
 #, c-format
 msgid "^1%s TEST BUILD"
 msgstr "^1%s ТЕСТОВА ЗБІРКА"
 
-#: qcsrc/menu/xonotic/util.qc:428
+#: qcsrc/menu/xonotic/util.qc:439
 #, c-format
 msgid "Update to %s now!"
-msgstr "Ð\9dегайно Ð¾Ð±Ð½Ð¾Ð²Ñ\96Ñ\82Ñ\8c Ð²ÐµÑ\80Ñ\81Ñ\96Ñ\8e Ð´Ð¾ %s !"
+msgstr "Негайно оновіть версію до %s !"
 
-#: qcsrc/menu/xonotic/util.qc:513
+#: qcsrc/menu/xonotic/util.qc:524
 msgid ""
 "^1ERROR: Texture compression is required but not supported.\n"
 "^1Expect visual problems.\n"
@@ -2450,446 +3071,459 @@ msgstr ""
 "^1Помилка: Компресія текстур обов'язкова але не підтримується.\n"
 "^1Очікуйте візуальних проблем.\n"
 
-#: qcsrc/menu/xonotic/util.qc:535
-msgid "Arena"
-msgstr "Ð\90Ñ\80ена"
+#: qcsrc/menu/xonotic/util.qc:643
+msgid "Use default"
+msgstr "Ð\92икоÑ\80иÑ\81Ñ\82овÑ\83ваÑ\82и Ð·Ð° Ð·Ð°Ð¼Ð¾Ð²Ñ\87Ñ\83ваннÑ\8fм"
 
-#: qcsrc/menu/xonotic/util.qc:536
-msgid "Assault"
-msgstr "Ð\90Ñ\82ака"
+#: qcsrc/menu/xonotic/util.qc:663
+msgid "Team Color:"
+msgstr "Ð\9aолÑ\96Ñ\80 ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸:"
 
-#: qcsrc/menu/xonotic/util.qc:537
-msgid "Capture The Flag"
-msgstr "Ð\97аÑ\85опленнÑ\8f Ð¿Ñ\80апоÑ\80Ñ\83"
+#: qcsrc/menu/xonotic/util.qh:50
+msgid "Enable panel"
+msgstr "УвÑ\96мкнÑ\83Ñ\82и Ð¿Ð°Ð½ÐµÐ»Ñ\8c"
 
-#: qcsrc/menu/xonotic/util.qc:538
-msgid "Clan Arena"
-msgstr "Ð\90Ñ\80ена ÐºÐ»Ð°Ð½Ñ\96в"
+#: weapons.qc.tmp:1
+msgid "Rifle"
+msgstr "Ð\93винÑ\82Ñ\96вка"
 
-#: qcsrc/menu/xonotic/util.qc:539
-msgid "Deathmatch"
-msgstr "Ð\94еÑ\81маÑ\82Ñ\87"
+#: weapons.qc.tmp:2
+msgid "Machine Gun"
+msgstr "Ð\90вÑ\82омаÑ\82"
 
-#: qcsrc/menu/xonotic/util.qc:540
-msgid "Domination"
-msgstr "Ð\9fанÑ\83ваннÑ\8f"
+#: weapons.qc.tmp:3
+msgid "Rocket Launcher"
+msgstr "РакеÑ\82на Ð³Ð°Ñ\80маÑ\82а"
 
-#: qcsrc/menu/xonotic/util.qc:541
-msgid "Freeze Tag"
-msgstr "Ð\9cоÑ\80озко"
+#: weapons.qc.tmp:4
+msgid "Port-O-Launch"
+msgstr "Ð\9fоÑ\80Ñ\82ал-Ð\9e\9fÑ\83Ñ\81к"
 
-#: qcsrc/menu/xonotic/util.qc:542
-msgid "Keepaway"
-msgstr "ТÑ\80иманнÑ\8f Ð¾Ñ\81Ñ\82оÑ\80онÑ\8c"
+#: weapons.qc.tmp:5
+msgid "Grappling Hook"
+msgstr "Ð\93ак"
 
-#: qcsrc/menu/xonotic/util.qc:543
-msgid "Key Hunt"
-msgstr "Ð\9fолÑ\8eваннÑ\8f Ð·Ð° ÐºÐ»Ñ\8eÑ\87ами"
+#: weapons.qc.tmp:6
+msgid "Electro"
+msgstr "Ð\95лекÑ\82Ñ\80о"
 
-#: qcsrc/menu/xonotic/util.qc:544
-msgid "Last Man Standing"
-msgstr "Ð\9eÑ\81Ñ\82аннÑ\96й Ð²Ð¸Ð¶Ð¸Ð²Ñ\88ий"
+#: weapons.qc.tmp:7
+msgid "Laser"
+msgstr "Ð\9bазеÑ\80"
 
-#: qcsrc/menu/xonotic/util.qc:545
-msgid "Nexball"
-msgstr "Ð\9dекÑ\81бол"
+#: weapons.qc.tmp:8
+msgid "Shotgun"
+msgstr "РÑ\83Ñ\88ниÑ\86Ñ\8f"
 
-#: qcsrc/menu/xonotic/util.qc:546
-msgid "Onslaught"
-msgstr "Штурм"
+#: weapons.qc.tmp:9
+#, c-format
+msgid "@!#%'n Tuba"
+msgstr "@!#%'а Туба"
 
-#: qcsrc/menu/xonotic/util.qc:547
-msgid "Race"
-msgstr "Ð\93онка"
+#: weapons.qc.tmp:10
+msgid "MinstaNex"
+msgstr "Ð\9cÑ\96нÑ\81Ñ\82аÐ\9dекÑ\81"
 
-#: qcsrc/menu/xonotic/util.qc:548
-msgid "Race CTS"
-msgstr "Ð\93онка CTS"
+#: weapons.qc.tmp:11
+msgid "Crylink"
+msgstr "Ð\9aÑ\80айлÑ\96нк"
 
-#: qcsrc/menu/xonotic/util.qc:549
-msgid "Runematch"
-msgstr "РÑ\83нний Ð¼Ð°Ñ\82Ñ\87"
+#: weapons.qc.tmp:12
+msgid "Heavy Laser Assault Cannon"
+msgstr "Ð\92ажка Ð\9bазеÑ\80на Ð¨Ñ\82Ñ\83Ñ\80мова Ð\93аÑ\80маÑ\82а"
 
-#: qcsrc/menu/xonotic/util.qc:550
-msgid "Team Deathmatch"
-msgstr "Ð\9aомандний Ð´ÐµÑ\81маÑ\82Ñ\87"
+#: weapons.qc.tmp:13
+msgid "Mortar"
+msgstr "Ð\9cоÑ\80Ñ\82иÑ\80а"
 
-#: qcsrc/menu/xonotic/util.qc:569
-#, c-format
-msgid "@!#%'n Tuba Throwing"
-msgstr "Кидання @!#%'ї Туби"
+#: weapons.qc.tmp:14
+msgid "Hagar"
+msgstr "Хейгар"
 
-#: qcsrc/menu/xonotic/util.qc:589 qcsrc/menu/xonotic/util.qc:605
-#: qcsrc/menu/xonotic/util.qc:614 qcsrc/menu/xonotic/util.qc:622
-#: qcsrc/menu/xonotic/util.qc:634
-msgid "Default"
-msgstr "За замовчуванням"
+#: weapons.qc.tmp:15
+msgid "T.A.G. Seeker"
+msgstr "Шукач T.A.G."
 
-#: qcsrc/menu/xonotic/util.qc:600
-msgid "Use default"
-msgstr "Ð\92икоÑ\80иÑ\81Ñ\82овÑ\83ваÑ\82и Ð·Ð° Ð·Ð°Ð¼Ð¾Ð²Ñ\87Ñ\83ваннÑ\8fм"
+#: weapons.qc.tmp:16
+msgid "Fireball"
+msgstr "Ð\9cеÑ\82еоÑ\80"
 
-#: qcsrc/menu/xonotic/util.qc:620
-msgid "Team Color:"
-msgstr "Ð\9aолÑ\96Ñ\80 ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸:"
+#: weapons.qc.tmp:17
+msgid "Mine Layer"
+msgstr "Ð\9cÑ\96ноÑ\83кладÑ\87ик"
 
-#: qcsrc/menu/xonotic/util.qh:47
-msgid "Enable panel"
-msgstr "УвÑ\96мкнÑ\83Ñ\82и Ð¿Ð°Ð½ÐµÐ»Ñ\8c"
+#: weapons.qc.tmp:18
+msgid "Nex"
+msgstr "Ð\9dекÑ\81"
 
-#: qcsrc/server/w_crylink.qc:2
-msgid "Crylink"
-msgstr "Крайлінк"
+#~ msgid "Pinata"
+#~ msgstr "Піньята"
 
-#: qcsrc/server/w_crylink.qc:666
-#, c-format
-msgid "%s succeeded at self-destructing themself with the Crylink"
-msgstr "%s успішно самознищив себе за допомогою Крайлінка"
+#~ msgid "%s was riddled full of holes by %s"
+#~ msgstr "%s виглядає як решето завдяки %s"
 
-#: qcsrc/server/w_crylink.qc:671
-#, c-format
-msgid "%s could not hide from %s's Crylink"
-msgstr "%s не зміг сховатися від Крайлінка %s's"
+#~ msgid "%s died of %s's great playing on the @!#%%'n Tuba"
+#~ msgstr "%s помер від чудової гри %s's на @!#%%'й Тубі"
 
-#: qcsrc/server/w_crylink.qc:673
-#, c-format
-msgid "%s was too close to %s's Crylink"
-msgstr "%s був надто близько до Крайлінка %s's"
+#~ msgid "%s hurt his own ears with the @!#%%'n Tuba"
+#~ msgstr "%s шкодить своїм вухам власною @!#%%'ю Тубою"
 
-#: qcsrc/server/w_crylink.qc:675
-#, c-format
-msgid "%s took a close look at %s's Crylink"
-msgstr "%s роздивився Крайлінк %s's з близька"
+#~ msgid "%s was gunned by %s"
+#~ msgstr "%s був пристрелений %s"
 
-#: qcsrc/server/w_electro.qc:2
-msgid "Electro"
-msgstr "Електро"
+#~ msgid "%2$s ^7slapped %1$s ^7around a bit with a large ^2shotgun"
+#~ msgstr "%2$s ^7прибив %1$s ^7великою ^2рушницею"
 
-#: qcsrc/server/w_electro.qc:574
-#, c-format
-msgid "%s could not remember where they put plasma"
-msgstr "%s не зміг згадати куди вони поклали плазму"
+#~ msgid "%s was tagged by %s"
+#~ msgstr "%s був мічений %s"
 
-#: qcsrc/server/w_electro.qc:576
-#, c-format
-msgid "%s played with plasma"
-msgstr "%s догрався з плазмою"
+#~ msgid "%s ate %s's rocket"
+#~ msgstr "%s з'їв ракету %s's"
 
-#: qcsrc/server/w_electro.qc:583
-#, c-format
-msgid "%s just noticed %s's blue ball"
-msgstr "%s тільк-но помітив блакитну кулю %s's"
+#~ msgid "%s almost dodged %s's rocket"
+#~ msgstr "%s майже ухилився від ракети %s's"
 
-#: qcsrc/server/w_electro.qc:585
-#, c-format
-msgid "%s got in touch with %s's blue ball"
-msgstr "%s доторкнувся до блакитної кулі %s's"
+#~ msgid "%s got too close to %s's rocket"
+#~ msgstr "%s опинився надто близько до ракети %s's"
 
-#: qcsrc/server/w_electro.qc:590
-#, c-format
-msgid "%s felt the electrifying air of %s's combo"
-msgstr "%s відчув наелектризоване повітря від комбо %s's"
+#~ msgid "%s was sniped by %s"
+#~ msgstr "%s був підстрелений %s"
 
-#: qcsrc/server/w_electro.qc:592
-#, c-format
-msgid "%s got too close to %s's blue beam"
-msgstr "%s опинився надто близько до блакитного проміння %s's"
+#~ msgid "%s got hit in the head by %s"
+#~ msgstr "%s втратив голову від кулі %s"
 
-#: qcsrc/server/w_electro.qc:594
-#, c-format
-msgid "%s was blasted by %s's blue beam"
-msgstr "%s був знищений блакитним промінням %s's"
+#~ msgid "%s failed to hide from %s's rifle"
+#~ msgstr "%s не зміг сховатися від гвинтівки %s's"
 
-#: qcsrc/server/w_fireball.qc:2
-msgid "Fireball"
-msgstr "Метеор"
+#~ msgid "%s died in %s's bullet hail"
+#~ msgstr "%s помер у граді куль %s's"
 
-#: qcsrc/server/w_fireball.qc:417
-#, c-format
-msgid "%s forgot about some firemine"
-msgstr "%s забув про вогняну міну"
+#~ msgid "%s failed to hide from %s's bullet hail"
+#~ msgstr "%s не зміг сховатися від граду куль %s's"
 
-#: qcsrc/server/w_fireball.qc:419 qcsrc/server/w_hlac.qc:240
-#, c-format
-msgid "%s should have used a smaller gun"
-msgstr "%s треба було використати меншу гармату"
+#~ msgid "%s sniped themself somehow"
+#~ msgstr "%s примудрився пристрелити себе"
 
-#: qcsrc/server/w_fireball.qc:426
-#, c-format
-msgid "%s tried to catch %s's firemine"
-msgstr "%s спробував піймати вогняну міну %s's"
+#~ msgid "%s shot themself automatically"
+#~ msgstr "%s пристрелив себе несвідомо"
 
-#: qcsrc/server/w_fireball.qc:428
-#, c-format
-msgid "%s fatefully ignored %s's firemine"
-msgstr "%s фатально проґавив метеор %s's"
+#~ msgid "%s felt %s doing the impossible to him"
+#~ msgstr "%s відчув як %s зробив з ним неможливе"
 
-#: qcsrc/server/w_fireball.qc:435
-#, c-format
-msgid "%s could not hide from %s's fireball"
-msgstr "%s не зміг сховатися від метеора %s's"
+#~ msgid "%s has been vaporized by %s"
+#~ msgstr "%s був випаровуваний %s"
 
-#: qcsrc/server/w_fireball.qc:437
-#, c-format
-msgid "%s saw the pretty lights of %s's fireball"
-msgstr "%s побачив гарненькі вогники метеора %s's"
+#~ msgid "%s is now thinking with portals"
+#~ msgstr "%s тепер думає з порталами у голові"
 
-#: qcsrc/server/w_fireball.qc:440
-#, c-format
-msgid "%s got too close to %s's fireball"
-msgstr "%s підійшов надто близько до метеора %s's"
+#~ msgid "%s stepped on %s's mine"
+#~ msgstr "%s наступив на міну %s's"
 
-#: qcsrc/server/w_fireball.qc:442
-#, c-format
-msgid "%s tasted %s's fireball"
-msgstr "%s скуштував метеор %s's"
+#~ msgid "%s almost dodged %s's mine"
+#~ msgstr "%s майже ухилився від міни %s's"
 
-#: qcsrc/server/w_grenadelauncher.qc:2
-msgid "Mortar"
-msgstr "Мортира"
+#~ msgid "%s got too close to %s's mine"
+#~ msgstr "%s опинився надто близько до міни %s's"
 
-#: qcsrc/server/w_grenadelauncher.qc:383
-#, c-format
-msgid "%s tried out his own grenade"
-msgstr "%s скуштував свою власну гранату"
+#~ msgid "%s exploded"
+#~ msgstr "%s вибухнув"
 
-#: qcsrc/server/w_grenadelauncher.qc:385
-#, c-format
-msgid "%s detonated"
-msgstr "%s вибухнув"
+#~ msgid "%s was lasered to death by %s"
+#~ msgstr "%s згорів від лазеру %s"
 
-#: qcsrc/server/w_grenadelauncher.qc:391
-#, c-format
-msgid "%s didn't see %s's grenade"
-msgstr "%s не побачив гранату %s's"
+#~ msgid "%s was cut in half by %s's gauntlet"
+#~ msgstr "%s був розрізаний навпіл рукавицею %s's"
 
-#: qcsrc/server/w_grenadelauncher.qc:393
-#, c-format
-msgid "%s almost dodged %s's grenade"
-msgstr "%s майже ухилився від гранати %s's"
+#~ msgid "%s lasered themself to hell"
+#~ msgstr "%s відправив себе лазером прямо в пекло"
 
-#: qcsrc/server/w_grenadelauncher.qc:395
-#, c-format
-msgid "%s ate %s's grenade"
-msgstr "%s з'їв гранату %s's"
+#~ msgid "%s has run into %s's gravity bomb"
+#~ msgstr "%s вбіг у гравітаційну бомбу %s's"
 
-#: qcsrc/server/w_hagar.qc:2
-msgid "Hagar"
-msgstr "Хейгар"
+#~ msgid "%s did the impossible"
+#~ msgstr "%s зробив неможливе"
 
-#: qcsrc/server/w_hagar.qc:395 qcsrc/server/w_seeker.qc:655
-#, c-format
-msgid "%s played with tiny rockets"
-msgstr "%s догрався з маленькими ракетами"
+#~ msgid "%s was cut down by %s"
+#~ msgstr "%s був підрізаний %s"
 
-#: qcsrc/server/w_hagar.qc:399
-#, c-format
-msgid "%s hoped %s's missiles wouldn't bounce"
-msgstr "%s понадіявся що ракета %s's не відскочить"
+#~ msgid "%s was pummeled by %s"
+#~ msgstr "%s був віддубасений %s"
 
-#: qcsrc/server/w_hagar.qc:401 qcsrc/server/w_seeker.qc:661
-#, c-format
-msgid "%s was pummeled by %s"
-msgstr "%s був віддубасений %s"
+#~ msgid "%s hoped %s's missiles wouldn't bounce"
+#~ msgstr "%s понадіявся що ракета %s's не відскочить"
 
-#: qcsrc/server/w_hlac.qc:2
-msgid "Heavy Laser Assault Cannon"
-msgstr "Важка Лазерна Штурмова Гармата"
+#~ msgid "%s played with tiny rockets"
+#~ msgstr "%s догрався з маленькими ракетами"
 
-#: qcsrc/server/w_hlac.qc:242
-#, c-format
-msgid "%s was cut down by %s"
-msgstr "%s був підрізаний %s"
+#~ msgid "%s ate %s's grenade"
+#~ msgstr "%s з'їв гранату %s's"
 
-#: qcsrc/server/w_hook.qc:2
-msgid "Grappling Hook"
-msgstr "Гак"
+#~ msgid "%s almost dodged %s's grenade"
+#~ msgstr "%s майже ухилився від гранати %s's"
 
-#: qcsrc/server/w_hook.qc:266 qcsrc/server/w_porto.qc:296
-#, c-format
-msgid "%s did the impossible"
-msgstr "%s зробив неможливе"
+#~ msgid "%s didn't see %s's grenade"
+#~ msgstr "%s не побачив гранату %s's"
 
-#: qcsrc/server/w_hook.qc:268
-#, c-format
-msgid "%s has run into %s's gravity bomb"
-msgstr "%s вбіг у гравітаційну бомбу %s's"
+#~ msgid "%s detonated"
+#~ msgstr "%s вибухнув"
 
-#: qcsrc/server/w_laser.qc:2
-msgid "Laser"
-msgstr "Лазер"
+#~ msgid "%s tried out his own grenade"
+#~ msgstr "%s скуштував свою власну гранату"
 
-#: qcsrc/server/w_laser.qc:311
-#, c-format
-msgid "%s lasered themself to hell"
-msgstr "%s відправив себе лазером прямо в пекло"
+#~ msgid "%s tasted %s's fireball"
+#~ msgstr "%s скуштував метеор %s's"
 
-#: qcsrc/server/w_laser.qc:315
-#, c-format
-msgid "%s was cut in half by %s's gauntlet"
-msgstr "%s був розрізаний навпіл рукавицею %s's"
+#~ msgid "%s got too close to %s's fireball"
+#~ msgstr "%s підійшов надто близько до метеора %s's"
 
-#: qcsrc/server/w_laser.qc:317
-#, c-format
-msgid "%s was lasered to death by %s"
-msgstr "%s згорів від лазеру %s"
+#~ msgid "%s saw the pretty lights of %s's fireball"
+#~ msgstr "%s побачив гарненькі вогники метеора %s's"
 
-#: qcsrc/server/w_minelayer.qc:2
-msgid "Mine Layer"
-msgstr "Міноукладчик"
+#~ msgid "%s could not hide from %s's fireball"
+#~ msgstr "%s не зміг сховатися від метеора %s's"
 
-#: qcsrc/server/w_minelayer.qc:523 qcsrc/server/w_rocketlauncher.qc:501
-#, c-format
-msgid "%s exploded"
-msgstr "%s вибухнув"
+#~ msgid "%s fatefully ignored %s's firemine"
+#~ msgstr "%s фатально проґавив метеор %s's"
 
-#: qcsrc/server/w_minelayer.qc:527
-#, c-format
-msgid "%s got too close to %s's mine"
-msgstr "%s опинився надто близько до міни %s's"
+#~ msgid "%s tried to catch %s's firemine"
+#~ msgstr "%s спробував піймати вогняну міну %s's"
 
-#: qcsrc/server/w_minelayer.qc:529
-#, c-format
-msgid "%s almost dodged %s's mine"
-msgstr "%s майже ухилився від міни %s's"
+#~ msgid "%s should have used a smaller gun"
+#~ msgstr "%s треба було використати меншу гармату"
 
-#: qcsrc/server/w_minelayer.qc:531
-#, c-format
-msgid "%s stepped on %s's mine"
-msgstr "%s наступив на міну %s's"
+#~ msgid "%s forgot about some firemine"
+#~ msgstr "%s забув про вогняну міну"
 
-#: qcsrc/server/w_minstanex.qc:2
-msgid "MinstaNex"
-msgstr "МінстаНекс"
+#~ msgid "%s was blasted by %s's blue beam"
+#~ msgstr "%s був знищений блакитним промінням %s's"
 
-#: qcsrc/server/w_minstanex.qc:293 qcsrc/server/w_nex.qc:253
-#: qcsrc/server/w_shotgun.qc:215 qcsrc/server/w_uzi.qc:317
-#, c-format
-msgid "%s is now thinking with portals"
-msgstr "%s тепер думає з порталами у голові"
+#~ msgid "%s got too close to %s's blue beam"
+#~ msgstr "%s опинився надто близько до блакитного проміння %s's"
 
-#: qcsrc/server/w_minstanex.qc:295 qcsrc/server/w_nex.qc:255
-#, c-format
-msgid "%s has been vaporized by %s"
-msgstr "%s був випаровуваний %s"
+#~ msgid "%s felt the electrifying air of %s's combo"
+#~ msgstr "%s відчув наелектризоване повітря від комбо %s's"
 
-#: qcsrc/server/w_nex.qc:2
-msgid "Nex"
-msgstr "Некс"
+#~ msgid "%s got in touch with %s's blue ball"
+#~ msgstr "%s доторкнувся до блакитної кулі %s's"
 
-#: qcsrc/server/w_porto.qc:2
-msgid "Port-O-Launch"
-msgstr "Портал-О-Пуск"
+#~ msgid "%s just noticed %s's blue ball"
+#~ msgstr "%s тільк-но помітив блакитну кулю %s's"
 
-#: qcsrc/server/w_porto.qc:298
-#, c-format
-msgid "%s felt %s doing the impossible to him"
-msgstr "%s відчув як %s зробив з ним неможливе"
+#~ msgid "%s played with plasma"
+#~ msgstr "%s догрався з плазмою"
 
-#: qcsrc/server/w_rifle.qc:2
-msgid "Rifle"
-msgstr "Гвинтівка"
+#~ msgid "%s could not remember where they put plasma"
+#~ msgstr "%s не зміг згадати куди вони поклали плазму"
 
-#: qcsrc/server/w_rifle.qc:233
-#, c-format
-msgid "%s shot themself automatically"
-msgstr "%s пристрелив себе несвідомо"
+#~ msgid "%s took a close look at %s's Crylink"
+#~ msgstr "%s роздивився Крайлінк %s's з близька"
 
-#: qcsrc/server/w_rifle.qc:235
-#, c-format
-msgid "%s sniped themself somehow"
-msgstr "%s примудрився пристрелити себе"
+#~ msgid "%s was too close to %s's Crylink"
+#~ msgstr "%s був надто близько до Крайлінка %s's"
 
-#: qcsrc/server/w_rifle.qc:242
-#, c-format
-msgid "%s failed to hide from %s's bullet hail"
-msgstr "%s не зміг сховатися від граду куль %s's"
+#~ msgid "%s could not hide from %s's Crylink"
+#~ msgstr "%s не зміг сховатися від Крайлінка %s's"
 
-#: qcsrc/server/w_rifle.qc:244
-#, c-format
-msgid "%s died in %s's bullet hail"
-msgstr "%s помер у граді куль %s's"
+#~ msgid "%s succeeded at self-destructing themself with the Crylink"
+#~ msgstr "%s успішно самознищив себе за допомогою Крайлінка"
 
-#: qcsrc/server/w_rifle.qc:251
-#, c-format
-msgid "%s failed to hide from %s's rifle"
-msgstr "%s не зміг сховатися від гвинтівки %s's"
+#~ msgid "Capture The Flag"
+#~ msgstr "Захоплення прапору"
 
-#: qcsrc/server/w_rifle.qc:256
-#, c-format
-msgid "%s got hit in the head by %s"
-msgstr "%s втратив голову від кулі %s"
+#~ msgid "Disable multithreaded OpenGL"
+#~ msgstr "Вимкнути багатопотоковий OpenGL"
 
-#: qcsrc/server/w_rifle.qc:258 qcsrc/server/w_uzi.qc:321
-#, c-format
-msgid "%s was sniped by %s"
-msgstr "%s був підстрелений %s"
+#~ msgid "HTTP downloads:"
+#~ msgstr "Завантаження через HTTP:"
 
-#: qcsrc/server/w_rocketlauncher.qc:2
-msgid "Rocket Launcher"
-msgstr "Ракетна гармата"
+#~ msgid "Network speed:"
+#~ msgstr "Швидкість мережі:"
 
-#: qcsrc/server/w_rocketlauncher.qc:505
-#, c-format
-msgid "%s got too close to %s's rocket"
-msgstr "%s опинився надто близько до ракети %s's"
+#~ msgid "Minimize input latency"
+#~ msgstr "Зменшувати затримку вводу"
 
-#: qcsrc/server/w_rocketlauncher.qc:507
-#, c-format
-msgid "%s almost dodged %s's rocket"
-msgstr "%s майже ухилився від ракети %s's"
+#~ msgid "Holding jump key keeps jumping"
+#~ msgstr "Утримування клавіши стрибка продовжує стрибання"
 
-#: qcsrc/server/w_rocketlauncher.qc:509
-#, c-format
-msgid "%s ate %s's rocket"
-msgstr "%s з'їв ракету %s's"
+#~ msgid "\"enter console\" also closes"
+#~ msgstr "\"увійти в консоль\" також закриває консоль"
 
-#: qcsrc/server/w_seeker.qc:2
-msgid "T.A.G. Seeker"
-msgstr "Шукач T.A.G."
+#~ msgid "Turn off OS mouse acceleration"
+#~ msgstr "Вимкнути прискорення миші операційною системою"
 
-#: qcsrc/server/w_seeker.qc:659
-#, c-format
-msgid "%s was tagged by %s"
-msgstr "%s був мічений %s"
+#~ msgid "Invert mouse"
+#~ msgstr "Інвертувати мишу"
 
-#: qcsrc/server/w_shotgun.qc:2
-msgid "Shotgun"
-msgstr "Рушниця"
+#~ msgid "Mouse filter"
+#~ msgstr "Фільтр миші"
 
-#: qcsrc/server/w_shotgun.qc:219
-#, c-format
-msgid "%2$s ^7slapped %1$s ^7around a bit with a large ^2shotgun"
-msgstr "%2$s ^7прибив %1$s ^7великою ^2рушницею"
+#~ msgid "UI mouse speed:"
+#~ msgstr "Швидкість миші в інтерфейсі"
 
-#: qcsrc/server/w_shotgun.qc:221
-#, c-format
-msgid "%s was gunned by %s"
-msgstr "%s був пристрелений %s"
+#~ msgid "Blur and sharpen postprocessing"
+#~ msgstr "Післяобробка"
 
-#: qcsrc/server/w_tuba.qc:2
-#, c-format
-msgid "@!#%'n Tuba"
-msgstr "@!#%'а Туба"
+#~ msgid "High Dynamic Range (HDR)"
+#~ msgstr "High Dynamic Range (HDR)"
 
-#: qcsrc/server/w_tuba.qc:252
-#, c-format
-msgid "%s hurt his own ears with the @!#%%'n Tuba"
-msgstr "%s шкодить своїм вухам власною @!#%%'ю Тубою"
+#~ msgid "Flash blend approximation"
+#~ msgstr "Приблинзні розрахунки змішуванянн спалахів"
 
-#: qcsrc/server/w_tuba.qc:256
-#, c-format
-msgid "%s died of %s's great playing on the @!#%%'n Tuba"
-msgstr "%s помер від чудової гри %s's на @!#%%'й Тубі"
+#~ msgid "Particle distance:"
+#~ msgstr "Відстань часток:"
 
-#: qcsrc/server/w_uzi.qc:2
-msgid "Machine Gun"
-msgstr "Автомат"
+#~ msgid "Particle quality:"
+#~ msgstr "Якість часток:"
 
-#: qcsrc/server/w_uzi.qc:323
-#, c-format
-msgid "%s was riddled full of holes by %s"
-msgstr "%s виглядає як решето завдяки %s"
+#~ msgid "Hit indicator"
+#~ msgstr "Покажчик влучень"
 
-#~ msgid "Pinata"
-#~ msgstr "Піньята"
+#~ msgid "WRN^None"
+#~ msgstr "WRN^Жодного"
+
+#~ msgid "Time warning:"
+#~ msgstr "Попередження про час:"
+
+#~ msgid "RNG^Full"
+#~ msgstr "RNG^Повна"
+
+#~ msgid "RNG^Long"
+#~ msgstr "RNG^Велика"
+
+#~ msgid "RNG^Normal"
+#~ msgstr "RNG^Нормальна"
+
+#~ msgid "RNG^Short"
+#~ msgstr "RNG^Коротка"
+
+#~ msgid "RNG^Very short"
+#~ msgstr "RNG^Дуже коротка"
+
+#~ msgid "Taunt range:"
+#~ msgstr "Дальність глузувань:"
+
+#~ msgid "VOCS^All"
+#~ msgstr "VOCS^Всі"
+
+#~ msgid "VOCS^Taunts"
+#~ msgstr "VOCS^Глузування"
+
+#~ msgid "VOCS^None"
+#~ msgstr "VOCS^Жодних"
+
+#~ msgid "Spatial voices:"
+#~ msgstr "Просторові звуки:"
+
+#~ msgid "Network"
+#~ msgstr "Мережа"
+
+#~ msgid "All players"
+#~ msgstr "Всіх гравців"
+
+#~ msgid "Teammates"
+#~ msgstr "Гравців команди"
+
+#~ msgid "Show names:"
+#~ msgstr "Показувати імена:"
+
+#~ msgid "Waypoint alpha:"
+#~ msgstr "Прозорість дороговказів:"
+
+#~ msgid "Waypoint scale:"
+#~ msgstr "Розмір дороговказів:"
+
+#~ msgid "Show base waypoints"
+#~ msgstr "Показувати основні дороговкази"
+
+#~ msgid "Damage splash:"
+#~ msgstr "Червоний сплеск від шкоди:"
+
+#~ msgid "Disable gore effects"
+#~ msgstr "Вимкнути криваві ефекти"
+
+#~ msgid "Waypoints setup..."
+#~ msgstr "Налаштування дороговказів..."
+
+#~ msgid "Enemies"
+#~ msgstr "Вороги"
+
+#~ msgid "TrueAim"
+#~ msgstr "TrueAim"
+
+#~ msgid "HTST^None"
+#~ msgstr "HTST^Жодного"
+
+#~ msgid "Hit test:"
+#~ msgstr "Тест на влучання:"
+
+#~ msgid "Size:"
+#~ msgstr "Розмір:"
+
+#~ msgid "Enable center dot"
+#~ msgstr "Увімкнути центральну крапку"
+
+#~ msgid "Crosshair:"
+#~ msgstr "Приціл:"
+
+#~ msgid "Weapon settings..."
+#~ msgstr "Налаштування зброї..."
+
+#~ msgid "Zoom speed:"
+#~ msgstr "Швидкість зуму:"
+
+#~ msgid "Zoom factor:"
+#~ msgstr "Сила зуму:"
+
+#~ msgid "View bobbing:"
+#~ msgstr "Гойдання поля зору:"
+
+#~ msgid "CA:"
+#~ msgstr "CA:"
+
+#~ msgid "Ping:"
+#~ msgstr "Пінг:"
+
+#~ msgid "Gameplay:"
+#~ msgstr "Ігровий процес:"
+
+#~ msgid "required (will encrypt)"
+#~ msgstr "обов'язкове (буде шифрувати)"
+
+#~ msgid "required (can't connect)"
+#~ msgstr "обов'язкове (неможливо з'єднатися)"
+
+#~ msgid "requested (won't encrypt)"
+#~ msgstr "запитано (буде шифрувати)"
+
+#~ msgid "requested (will encrypt)"
+#~ msgstr "запитано (не буде шифрувати)"
+
+#~ msgid "supported (won't encrypt)"
+#~ msgstr "підтримується (не буде шифрувати)"
+
+#~ msgid "supported (will encrypt)"
+#~ msgstr "підтримується (буде шифрувати)"
+
+#~ msgid "not supported (won't encrypt)"
+#~ msgstr "не підтримується (не буде шифрувати)"
+
+#~ msgid "not supported (can't connect)"
+#~ msgstr "не підтримується (неможливо з'єднатися)"
+
+#~ msgid "N/A (can't connect)"
+#~ msgstr "Н/Д (неможливо з'єднатися)"
+
+#~ msgid "Official settings"
+#~ msgstr "Офіційні налаштування"
+
+#~ msgid "%d modified settings"
+#~ msgstr "%d змінених налаштувань"
+
+#~ msgid "%d/%d, %d free player slots"
+#~ msgstr "%d/%d, %d вільних місць для гравців"
+
+#~ msgid "Record demos while playing"
+#~ msgstr "Записувати демо під час гри"
+
+#~ msgid "Match settings:"
+#~ msgstr "Налаштування матчу:"
diff --git a/models/items/a_bullets_simple.iqm b/models/items/a_bullets_simple.iqm
new file mode 100644 (file)
index 0000000..a5cc3e6
Binary files /dev/null and b/models/items/a_bullets_simple.iqm differ
diff --git a/models/items/a_bullets_simple.iqm_0.skin b/models/items/a_bullets_simple.iqm_0.skin
new file mode 100644 (file)
index 0000000..4757695
--- /dev/null
@@ -0,0 +1 @@
+Plane,a_bullets_simple
\ No newline at end of file
diff --git a/models/items/a_bullets_simple.tga b/models/items/a_bullets_simple.tga
new file mode 100644 (file)
index 0000000..111a32a
Binary files /dev/null and b/models/items/a_bullets_simple.tga differ
diff --git a/models/items/a_cells_simple.iqm b/models/items/a_cells_simple.iqm
new file mode 100644 (file)
index 0000000..a5cc3e6
Binary files /dev/null and b/models/items/a_cells_simple.iqm differ
diff --git a/models/items/a_cells_simple.iqm_0.skin b/models/items/a_cells_simple.iqm_0.skin
new file mode 100644 (file)
index 0000000..1651991
--- /dev/null
@@ -0,0 +1 @@
+Plane,a_cells_simple
\ No newline at end of file
diff --git a/models/items/a_cells_simple.tga b/models/items/a_cells_simple.tga
new file mode 100644 (file)
index 0000000..0f7f1df
Binary files /dev/null and b/models/items/a_cells_simple.tga differ
diff --git a/models/items/a_rockets_simple.iqm b/models/items/a_rockets_simple.iqm
new file mode 100644 (file)
index 0000000..a5cc3e6
Binary files /dev/null and b/models/items/a_rockets_simple.iqm differ
diff --git a/models/items/a_rockets_simple.iqm_0.skin b/models/items/a_rockets_simple.iqm_0.skin
new file mode 100644 (file)
index 0000000..5b2333c
--- /dev/null
@@ -0,0 +1 @@
+Plane,a_rockets_simple
\ No newline at end of file
diff --git a/models/items/a_rockets_simple.tga b/models/items/a_rockets_simple.tga
new file mode 100644 (file)
index 0000000..3d8646b
Binary files /dev/null and b/models/items/a_rockets_simple.tga differ
diff --git a/models/items/a_shells_simple.iqm b/models/items/a_shells_simple.iqm
new file mode 100644 (file)
index 0000000..a5cc3e6
Binary files /dev/null and b/models/items/a_shells_simple.iqm differ
diff --git a/models/items/a_shells_simple.iqm_0.skin b/models/items/a_shells_simple.iqm_0.skin
new file mode 100644 (file)
index 0000000..e3dc44f
--- /dev/null
@@ -0,0 +1 @@
+Plane,a_shells_simple
\ No newline at end of file
diff --git a/models/items/a_shells_simple.tga b/models/items/a_shells_simple.tga
new file mode 100644 (file)
index 0000000..a357f50
Binary files /dev/null and b/models/items/a_shells_simple.tga differ
diff --git a/models/items/g_h100_simple.iqm b/models/items/g_h100_simple.iqm
new file mode 100644 (file)
index 0000000..a5cc3e6
Binary files /dev/null and b/models/items/g_h100_simple.iqm differ
diff --git a/models/items/g_h100_simple.iqm_0.skin b/models/items/g_h100_simple.iqm_0.skin
new file mode 100644 (file)
index 0000000..f8acadd
--- /dev/null
@@ -0,0 +1 @@
+Plane,g_h100_simple
\ No newline at end of file
diff --git a/models/items/g_h100_simple.tga b/models/items/g_h100_simple.tga
new file mode 100644 (file)
index 0000000..08b780a
Binary files /dev/null and b/models/items/g_h100_simple.tga differ
diff --git a/models/items/g_h1_simple.iqm b/models/items/g_h1_simple.iqm
new file mode 100644 (file)
index 0000000..a5cc3e6
Binary files /dev/null and b/models/items/g_h1_simple.iqm differ
diff --git a/models/items/g_h1_simple.iqm_0.skin b/models/items/g_h1_simple.iqm_0.skin
new file mode 100644 (file)
index 0000000..9532805
--- /dev/null
@@ -0,0 +1 @@
+Plane,g_h1_simple
\ No newline at end of file
diff --git a/models/items/g_h1_simple.tga b/models/items/g_h1_simple.tga
new file mode 100644 (file)
index 0000000..d8bbbc7
Binary files /dev/null and b/models/items/g_h1_simple.tga differ
diff --git a/models/items/g_h25_simple.iqm b/models/items/g_h25_simple.iqm
new file mode 100644 (file)
index 0000000..a5cc3e6
Binary files /dev/null and b/models/items/g_h25_simple.iqm differ
diff --git a/models/items/g_h25_simple.iqm_0.skin b/models/items/g_h25_simple.iqm_0.skin
new file mode 100644 (file)
index 0000000..0f33bc7
--- /dev/null
@@ -0,0 +1 @@
+Plane,g_h25_simple
\ No newline at end of file
diff --git a/models/items/g_h25_simple.tga b/models/items/g_h25_simple.tga
new file mode 100644 (file)
index 0000000..63593cc
Binary files /dev/null and b/models/items/g_h25_simple.tga differ
diff --git a/models/items/g_h50_simple.iqm b/models/items/g_h50_simple.iqm
new file mode 100644 (file)
index 0000000..a5cc3e6
Binary files /dev/null and b/models/items/g_h50_simple.iqm differ
diff --git a/models/items/g_h50_simple.iqm_0.skin b/models/items/g_h50_simple.iqm_0.skin
new file mode 100644 (file)
index 0000000..b830541
--- /dev/null
@@ -0,0 +1 @@
+Plane,g_h50_simple
\ No newline at end of file
diff --git a/models/items/g_h50_simple.tga b/models/items/g_h50_simple.tga
new file mode 100644 (file)
index 0000000..a8cbad9
Binary files /dev/null and b/models/items/g_h50_simple.tga differ
diff --git a/models/items/g_invincible_simple.iqm b/models/items/g_invincible_simple.iqm
new file mode 100644 (file)
index 0000000..a5cc3e6
Binary files /dev/null and b/models/items/g_invincible_simple.iqm differ
diff --git a/models/items/g_invincible_simple.iqm_0.skin b/models/items/g_invincible_simple.iqm_0.skin
new file mode 100644 (file)
index 0000000..6522c88
--- /dev/null
@@ -0,0 +1 @@
+Plane,g_invincible_simple
\ No newline at end of file
diff --git a/models/items/g_invincible_simple.tga b/models/items/g_invincible_simple.tga
new file mode 100644 (file)
index 0000000..76cb414
Binary files /dev/null and b/models/items/g_invincible_simple.tga differ
diff --git a/models/items/g_strength_simple.iqm b/models/items/g_strength_simple.iqm
new file mode 100644 (file)
index 0000000..a5cc3e6
Binary files /dev/null and b/models/items/g_strength_simple.iqm differ
diff --git a/models/items/g_strength_simple.iqm_0.skin b/models/items/g_strength_simple.iqm_0.skin
new file mode 100644 (file)
index 0000000..bcdad79
--- /dev/null
@@ -0,0 +1 @@
+Plane,g_strength_simple
\ No newline at end of file
diff --git a/models/items/g_strength_simple.tga b/models/items/g_strength_simple.tga
new file mode 100644 (file)
index 0000000..09aa45c
Binary files /dev/null and b/models/items/g_strength_simple.tga differ
diff --git a/models/items/item_armor_big_simple.iqm b/models/items/item_armor_big_simple.iqm
new file mode 100644 (file)
index 0000000..a5cc3e6
Binary files /dev/null and b/models/items/item_armor_big_simple.iqm differ
diff --git a/models/items/item_armor_big_simple.iqm_0.skin b/models/items/item_armor_big_simple.iqm_0.skin
new file mode 100644 (file)
index 0000000..ab88a06
--- /dev/null
@@ -0,0 +1 @@
+Plane,item_armor_big_simple
\ No newline at end of file
diff --git a/models/items/item_armor_big_simple.tga b/models/items/item_armor_big_simple.tga
new file mode 100644 (file)
index 0000000..7bbd5b4
Binary files /dev/null and b/models/items/item_armor_big_simple.tga differ
diff --git a/models/items/item_armor_large_simple.iqm b/models/items/item_armor_large_simple.iqm
new file mode 100644 (file)
index 0000000..a5cc3e6
Binary files /dev/null and b/models/items/item_armor_large_simple.iqm differ
diff --git a/models/items/item_armor_large_simple.iqm_0.skin b/models/items/item_armor_large_simple.iqm_0.skin
new file mode 100644 (file)
index 0000000..4ae65f3
--- /dev/null
@@ -0,0 +1 @@
+Plane,item_armor_large_simple
\ No newline at end of file
diff --git a/models/items/item_armor_large_simple.tga b/models/items/item_armor_large_simple.tga
new file mode 100644 (file)
index 0000000..80db5ab
Binary files /dev/null and b/models/items/item_armor_large_simple.tga differ
diff --git a/models/items/item_armor_medium_simple.iqm b/models/items/item_armor_medium_simple.iqm
new file mode 100644 (file)
index 0000000..a5cc3e6
Binary files /dev/null and b/models/items/item_armor_medium_simple.iqm differ
diff --git a/models/items/item_armor_medium_simple.iqm_0.skin b/models/items/item_armor_medium_simple.iqm_0.skin
new file mode 100644 (file)
index 0000000..8f258c1
--- /dev/null
@@ -0,0 +1 @@
+Plane,item_armor_medium_simple
\ No newline at end of file
diff --git a/models/items/item_armor_medium_simple.tga b/models/items/item_armor_medium_simple.tga
new file mode 100644 (file)
index 0000000..ed3ce1f
Binary files /dev/null and b/models/items/item_armor_medium_simple.tga differ
diff --git a/models/items/item_armor_small_simple.iqm b/models/items/item_armor_small_simple.iqm
new file mode 100644 (file)
index 0000000..a5cc3e6
Binary files /dev/null and b/models/items/item_armor_small_simple.iqm differ
diff --git a/models/items/item_armor_small_simple.iqm_0.skin b/models/items/item_armor_small_simple.iqm_0.skin
new file mode 100644 (file)
index 0000000..50bbb53
--- /dev/null
@@ -0,0 +1 @@
+Plane,item_armor_small_simple
\ No newline at end of file
diff --git a/models/items/item_armor_small_simple.tga b/models/items/item_armor_small_simple.tga
new file mode 100644 (file)
index 0000000..d8a0f91
Binary files /dev/null and b/models/items/item_armor_small_simple.tga differ
diff --git a/models/ok_player/okmale1.dpm b/models/ok_player/okmale1.dpm
new file mode 100644 (file)
index 0000000..2967c86
Binary files /dev/null and b/models/ok_player/okmale1.dpm differ
diff --git a/models/ok_player/okmale1.dpm.framegroups b/models/ok_player/okmale1.dpm.framegroups
new file mode 100644 (file)
index 0000000..b1ccc04
--- /dev/null
@@ -0,0 +1,29 @@
+/*
+Generated framegroups file for okmale1
+Used by DarkPlaces to simulate frame groups in DPM models.
+*/
+
+1 41 30 0 // okmale1 die1
+42 56 30 0 // okmale1 die2
+98 11 15 1 // okmale1 draw
+109 6 10 1 // okmale1 duck
+115 17 15 1 // okmale1 duckwalk
+132 31 40 0 // okmale1 duckjump
+163 17 10 1 // okmale1 duckidle
+180 101 15 1 // okmale1 idle
+281 17 20 1 // okmale1 jump
+298 6 10 0 // okmale1 pain1
+304 6 10 0 // okmale1 pain2
+310 6 30 0 // okmale1 shoot
+316 17 15 1 // okmale1 taunt
+333 17 30 1 // okmale1 run
+350 17 30 1 // okmale1 runbackwards
+367 17 30 1 // okmale1 strafeleft
+384 17 30 1 // okmale1 straferight
+401 3 10 0 // okmale1 dead1
+404 3 10 0 // okmale1 dead2
+407 17 30 1 // okmale1 forwardright
+424 17 30 1 // okmale1 forwardleft
+441 17 30 1 // okmale1 backright
+458 17 30 1 // okmale1 backleft
+475 21 15 1 // okmale1 melee
diff --git a/models/ok_player/okmale1.dpm_0.sounds b/models/ok_player/okmale1.dpm_0.sounds
new file mode 100644 (file)
index 0000000..a97a073
--- /dev/null
@@ -0,0 +1,32 @@
+//TAG: soldier
+//affirmative sound/player/carni-lycan/player/affirmative 0
+attack sound/player/soldier/coms/attack 0
+//attacking sound/player/carni-lycan/player/attacking 0
+attackinfive sound/player/soldier/coms/attackinfive 0
+coverme sound/player/soldier/coms/coverme 0
+defend sound/player/soldier/coms/defend 0
+//defending sound/player/carni-lycan/player/defending 0
+//droppedflag sound/player/carni-lycan/player/droppedflag 0
+flagcarriertakingdamage sound/player/soldier/coms/flagcarriertakingdamage 0
+freelance sound/player/soldier/coms/freelance 2
+getflag sound/player/soldier/coms/getflag 0
+incoming sound/player/soldier/coms/incoming 0
+meet sound/player/soldier/coms/meet 0
+needhelp sound/player/soldier/coms/needhelp 2
+//negative sound/player/carni-lycan/player/negative 0
+//onmyway sound/player/carni-lycan/player/onmyway 0
+//roaming sound/player/carni-lycan/player/roaming 0
+//seenenemy sound/player/carni-lycan/player/seenenemy 0
+seenflag sound/player/soldier/coms/seenflag 0
+taunt sound/player/soldier/coms/taunt 3
+teamshoot sound/player/soldier/coms/teamshoot 3
+death sound/player/soldier/player/death 3
+drown sound/player/soldier/player/drown 0
+fall sound/player/soldier/player/fall 0
+falling sound/player/soldier/player/falling 0
+gasp sound/player/soldier/player/gasp 0
+jump sound/player/soldier/player/jump 0
+pain25 sound/player/soldier/player/pain25 0
+pain50 sound/player/soldier/player/pain50 0
+pain75 sound/player/soldier/player/pain75 0
+pain100 sound/player/soldier/player/pain100 0
diff --git a/models/ok_player/okmale1.dpm_0.txt b/models/ok_player/okmale1.dpm_0.txt
new file mode 100644 (file)
index 0000000..da0d2a1
--- /dev/null
@@ -0,0 +1,7 @@
+name overkillmale1
+species human
+sex Male
+weight 105
+age 26
+
+overkill solider
diff --git a/models/ok_player/okmale2.dpm b/models/ok_player/okmale2.dpm
new file mode 100644 (file)
index 0000000..3261845
Binary files /dev/null and b/models/ok_player/okmale2.dpm differ
diff --git a/models/ok_player/okmale2.dpm.framegroups b/models/ok_player/okmale2.dpm.framegroups
new file mode 100644 (file)
index 0000000..0568594
--- /dev/null
@@ -0,0 +1,29 @@
+/*
+Generated framegroups file for okmale2
+Used by DarkPlaces to simulate frame groups in DPM models.
+*/
+
+1 41 30 0 // okmale2 die1
+42 56 30 0 // okmale2 die2
+98 11 15 1 // okmale2 draw
+109 6 10 1 // okmale2 duck
+115 17 15 1 // okmale2 duckwalk
+132 31 40 0 // okmale2 duckjump
+163 17 10 1 // okmale2 duckidle
+180 101 15 1 // okmale2 idle
+281 17 20 1 // okmale2 jump
+298 6 10 0 // okmale2 pain1
+304 6 10 0 // okmale2 pain2
+310 6 30 0 // okmale2 shoot
+316 17 15 1 // okmale2 taunt
+333 17 30 1 // okmale2 run
+350 17 30 1 // okmale2 runbackwards
+367 17 30 1 // okmale2 strafeleft
+384 17 30 1 // okmale2 straferight
+401 3 10 0 // okmale2 dead1
+404 3 10 0 // okmale2 dead2
+407 17 30 1 // okmale2 forwardright
+424 17 30 1 // okmale2 forwardleft
+441 17 30 1 // okmale2 backright
+458 17 30 1 // okmale2 backleft
+475 21 15 1 // okmale2 melee
diff --git a/models/ok_player/okmale2.dpm_0.sounds b/models/ok_player/okmale2.dpm_0.sounds
new file mode 100644 (file)
index 0000000..04d9592
--- /dev/null
@@ -0,0 +1,32 @@
+//TAG: insurrectionist
+//affirmative sound/player/insurrectionist/player/affirmative 0
+attack sound/player/insurrectionist/coms/attack 0
+//attacking sound/player/insurrectionist/player/attacking 0
+attackinfive sound/player/insurrectionist/coms/attackinfive 0
+coverme sound/player/insurrectionist/coms/coverme 0
+defend sound/player/insurrectionist/coms/defend 0
+//defending sound/player/insurrectionist/player/defending 0
+//droppedflag sound/player/insurrectionist/player/droppedflag 0
+flagcarriertakingdamage sound/player/insurrectionist/coms/flagcarriertakingdamage 0
+freelance sound/player/insurrectionist/coms/freelance 2
+getflag sound/player/insurrectionist/coms/getflag 0
+incoming sound/player/insurrectionist/coms/incoming 0
+meet sound/player/insurrectionist/coms/meet 0
+needhelp sound/player/insurrectionist/coms/needhelp 2
+//negative sound/player/insurrectionist/player/negative 0
+//onmyway sound/player/insurrectionist/player/onmyway 0
+//roaming sound/player/insurrectionist/player/roaming 0
+//seenenemy sound/player/insurrectionist/player/seenenemy 0
+seenflag sound/player/insurrectionist/coms/seenflag 0
+taunt sound/player/insurrectionist/coms/taunt 3
+teamshoot sound/player/insurrectionist/coms/teamshoot 3
+death sound/player/insurrectionist/player/death 3
+drown sound/player/insurrectionist/player/drown 0
+fall sound/player/insurrectionist/player/fall 0
+falling sound/player/insurrectionist/player/falling 0
+gasp sound/player/insurrectionist/player/gasp 0
+jump sound/player/insurrectionist/player/jump 0
+pain25 sound/player/insurrectionist/player/pain25 0
+pain50 sound/player/insurrectionist/player/pain50 0
+pain75 sound/player/insurrectionist/player/pain75 0
+pain100 sound/player/insurrectionist/player/pain100 0
diff --git a/models/ok_player/okmale2.dpm_0.txt b/models/ok_player/okmale2.dpm_0.txt
new file mode 100644 (file)
index 0000000..3e3a6cf
--- /dev/null
@@ -0,0 +1,7 @@
+name overkillmale1
+species human
+sex Male
+weight 105
+age 26
+
+overkill officer
\ No newline at end of file
diff --git a/models/ok_player/okmale3.dpm b/models/ok_player/okmale3.dpm
new file mode 100644 (file)
index 0000000..077dd84
Binary files /dev/null and b/models/ok_player/okmale3.dpm differ
diff --git a/models/ok_player/okmale3.dpm.framegroups b/models/ok_player/okmale3.dpm.framegroups
new file mode 100644 (file)
index 0000000..3c267ee
--- /dev/null
@@ -0,0 +1,29 @@
+/*
+Generated framegroups file for okmale3
+Used by DarkPlaces to simulate frame groups in DPM models.
+*/
+
+1 41 30 0 // okmale3 die1
+42 56 30 0 // okmale3 die2
+98 11 15 1 // okmale3 draw
+109 6 10 1 // okmale3 duck
+115 17 15 1 // okmale3 duckwalk
+132 31 40 0 // okmale3 duckjump
+163 17 10 1 // okmale3 duckidle
+180 101 15 1 // okmale3 idle
+281 17 20 1 // okmale3 jump
+298 6 10 0 // okmale3 pain1
+304 6 10 0 // okmale3 pain2
+310 6 30 0 // okmale3 shoot
+316 17 15 1 // okmale3 taunt
+333 17 30 1 // okmale3 run
+350 17 30 1 // okmale3 runbackwards
+367 17 30 1 // okmale3 strafeleft
+384 17 30 1 // okmale3 straferight
+401 3 10 0 // okmale3 dead1
+404 3 10 0 // okmale3 dead2
+407 17 30 1 // okmale3 forwardright
+424 17 30 1 // okmale3 forwardleft
+441 17 30 1 // okmale3 backright
+458 17 30 1 // okmale3 backleft
+475 21 15 1 // okmale3 melee
diff --git a/models/ok_player/okmale3.dpm_0.sounds b/models/ok_player/okmale3.dpm_0.sounds
new file mode 100644 (file)
index 0000000..a97a073
--- /dev/null
@@ -0,0 +1,32 @@
+//TAG: soldier
+//affirmative sound/player/carni-lycan/player/affirmative 0
+attack sound/player/soldier/coms/attack 0
+//attacking sound/player/carni-lycan/player/attacking 0
+attackinfive sound/player/soldier/coms/attackinfive 0
+coverme sound/player/soldier/coms/coverme 0
+defend sound/player/soldier/coms/defend 0
+//defending sound/player/carni-lycan/player/defending 0
+//droppedflag sound/player/carni-lycan/player/droppedflag 0
+flagcarriertakingdamage sound/player/soldier/coms/flagcarriertakingdamage 0
+freelance sound/player/soldier/coms/freelance 2
+getflag sound/player/soldier/coms/getflag 0
+incoming sound/player/soldier/coms/incoming 0
+meet sound/player/soldier/coms/meet 0
+needhelp sound/player/soldier/coms/needhelp 2
+//negative sound/player/carni-lycan/player/negative 0
+//onmyway sound/player/carni-lycan/player/onmyway 0
+//roaming sound/player/carni-lycan/player/roaming 0
+//seenenemy sound/player/carni-lycan/player/seenenemy 0
+seenflag sound/player/soldier/coms/seenflag 0
+taunt sound/player/soldier/coms/taunt 3
+teamshoot sound/player/soldier/coms/teamshoot 3
+death sound/player/soldier/player/death 3
+drown sound/player/soldier/player/drown 0
+fall sound/player/soldier/player/fall 0
+falling sound/player/soldier/player/falling 0
+gasp sound/player/soldier/player/gasp 0
+jump sound/player/soldier/player/jump 0
+pain25 sound/player/soldier/player/pain25 0
+pain50 sound/player/soldier/player/pain50 0
+pain75 sound/player/soldier/player/pain75 0
+pain100 sound/player/soldier/player/pain100 0
diff --git a/models/ok_player/okmale3.dpm_0.txt b/models/ok_player/okmale3.dpm_0.txt
new file mode 100644 (file)
index 0000000..7fa399e
--- /dev/null
@@ -0,0 +1,7 @@
+name overkillmale3
+species human
+sex Male
+weight 105
+age 28
+
+overkill solider
diff --git a/models/ok_player/okmale4.dpm b/models/ok_player/okmale4.dpm
new file mode 100644 (file)
index 0000000..27f758d
Binary files /dev/null and b/models/ok_player/okmale4.dpm differ
diff --git a/models/ok_player/okmale4.dpm.framegroups b/models/ok_player/okmale4.dpm.framegroups
new file mode 100644 (file)
index 0000000..7ae2d38
--- /dev/null
@@ -0,0 +1,29 @@
+/*
+Generated framegroups file for okmale4
+Used by DarkPlaces to simulate frame groups in DPM models.
+*/
+
+1 41 30 0 // okmale4 die1
+42 56 30 0 // okmale4 die2
+98 11 15 1 // okmale4 draw
+109 6 10 1 // okmale4 duck
+115 17 15 1 // okmale4 duckwalk
+132 31 40 0 // okmale4 duckjump
+163 17 10 1 // okmale4 duckidle
+180 101 15 1 // okmale4 idle
+281 17 20 1 // okmale4 jump
+298 6 10 0 // okmale4 pain1
+304 6 10 0 // okmale4 pain2
+310 6 30 0 // okmale4 shoot
+316 17 15 1 // okmale4 taunt
+333 17 30 1 // okmale4 run
+350 17 30 1 // okmale4 runbackwards
+367 17 30 1 // okmale4 strafeleft
+384 17 30 1 // okmale4 straferight
+401 3 10 0 // okmale4 dead1
+404 3 10 0 // okmale4 dead2
+407 17 30 1 // okmale4 forwardright
+424 17 30 1 // okmale4 forwardleft
+441 17 30 1 // okmale4 backright
+458 17 30 1 // okmale4 backleft
+475 21 15 1 // okmale4 melee
diff --git a/models/ok_player/okmale4.dpm_0.sounds b/models/ok_player/okmale4.dpm_0.sounds
new file mode 100644 (file)
index 0000000..a97a073
--- /dev/null
@@ -0,0 +1,32 @@
+//TAG: soldier
+//affirmative sound/player/carni-lycan/player/affirmative 0
+attack sound/player/soldier/coms/attack 0
+//attacking sound/player/carni-lycan/player/attacking 0
+attackinfive sound/player/soldier/coms/attackinfive 0
+coverme sound/player/soldier/coms/coverme 0
+defend sound/player/soldier/coms/defend 0
+//defending sound/player/carni-lycan/player/defending 0
+//droppedflag sound/player/carni-lycan/player/droppedflag 0
+flagcarriertakingdamage sound/player/soldier/coms/flagcarriertakingdamage 0
+freelance sound/player/soldier/coms/freelance 2
+getflag sound/player/soldier/coms/getflag 0
+incoming sound/player/soldier/coms/incoming 0
+meet sound/player/soldier/coms/meet 0
+needhelp sound/player/soldier/coms/needhelp 2
+//negative sound/player/carni-lycan/player/negative 0
+//onmyway sound/player/carni-lycan/player/onmyway 0
+//roaming sound/player/carni-lycan/player/roaming 0
+//seenenemy sound/player/carni-lycan/player/seenenemy 0
+seenflag sound/player/soldier/coms/seenflag 0
+taunt sound/player/soldier/coms/taunt 3
+teamshoot sound/player/soldier/coms/teamshoot 3
+death sound/player/soldier/player/death 3
+drown sound/player/soldier/player/drown 0
+fall sound/player/soldier/player/fall 0
+falling sound/player/soldier/player/falling 0
+gasp sound/player/soldier/player/gasp 0
+jump sound/player/soldier/player/jump 0
+pain25 sound/player/soldier/player/pain25 0
+pain50 sound/player/soldier/player/pain50 0
+pain75 sound/player/soldier/player/pain75 0
+pain100 sound/player/soldier/player/pain100 0
diff --git a/models/ok_player/okmale4.dpm_0.txt b/models/ok_player/okmale4.dpm_0.txt
new file mode 100644 (file)
index 0000000..7fa399e
--- /dev/null
@@ -0,0 +1,7 @@
+name overkillmale3
+species human
+sex Male
+weight 105
+age 28
+
+overkill solider
diff --git a/models/ok_player/okplayer.tga b/models/ok_player/okplayer.tga
new file mode 100644 (file)
index 0000000..e42318a
Binary files /dev/null and b/models/ok_player/okplayer.tga differ
diff --git a/models/ok_player/okplayer_gloss.tga b/models/ok_player/okplayer_gloss.tga
new file mode 100644 (file)
index 0000000..893f61d
Binary files /dev/null and b/models/ok_player/okplayer_gloss.tga differ
diff --git a/models/ok_player/okplayer_glow.tga b/models/ok_player/okplayer_glow.tga
new file mode 100644 (file)
index 0000000..545346a
Binary files /dev/null and b/models/ok_player/okplayer_glow.tga differ
diff --git a/models/ok_player/okplayer_reflect.tga b/models/ok_player/okplayer_reflect.tga
new file mode 100644 (file)
index 0000000..c3aaa65
Binary files /dev/null and b/models/ok_player/okplayer_reflect.tga differ
diff --git a/models/ok_player/okplayer_shirt.tga b/models/ok_player/okplayer_shirt.tga
new file mode 100644 (file)
index 0000000..4dd2ceb
Binary files /dev/null and b/models/ok_player/okplayer_shirt.tga differ
diff --git a/models/ok_player/okrobot1.dpm b/models/ok_player/okrobot1.dpm
new file mode 100644 (file)
index 0000000..37d64b0
Binary files /dev/null and b/models/ok_player/okrobot1.dpm differ
diff --git a/models/ok_player/okrobot1.dpm.framegroups b/models/ok_player/okrobot1.dpm.framegroups
new file mode 100644 (file)
index 0000000..662facc
--- /dev/null
@@ -0,0 +1,29 @@
+/*
+Generated framegroups file for okrobot1
+Used by DarkPlaces to simulate frame groups in DPM models.
+*/
+
+1 41 30 0 // okrobot1 die1
+67 56 30 0 // okrobot1 die2
+133 11 15 1 // okrobot1 draw
+144 6 10 1 // okrobot1 duck
+150 17 15 1 // okrobot1 duckwalk
+167 31 40 0 // okrobot1 duckjump
+198 1 10 1 // okrobot1 duckidle
+199 101 15 1 // okrobot1 idle
+300 17 20 1 // okrobot1 jump
+317 6 10 0 // okrobot1 pain1
+323 6 10 0 // okrobot1 pain2
+329 6 30 0 // okrobot1 shoot
+335 17 15 1 // okrobot1 taunt
+352 17 30 1 // okrobot1 run
+369 17 30 1 // okrobot1 runbackwards
+386 17 30 1 // okrobot1 strafeleft
+403 17 30 1 // okrobot1 straferight
+41 1 10 0 // okrobot4 dead1
+122 1 10 0 // okrobot4 dead2
+424 17 30 1 // okrobot1 forwardright
+441 17 30 1 // okrobot1 forwardleft
+458 17 30 1 // okrobot1 backright
+475 17 30 1 // okrobot1 backleft
+492 21 15 1 // okrobot1 melee
diff --git a/models/ok_player/okrobot1.dpm_0.sounds b/models/ok_player/okrobot1.dpm_0.sounds
new file mode 100644 (file)
index 0000000..62c5019
--- /dev/null
@@ -0,0 +1,32 @@
+//TAG: robot_shiny
+//affirmative sound/player/robot/player/affirmative 0
+attack sound/player/robot/coms/attack 0
+//attacking sound/player/robot/player/attacking 0
+attackinfive sound/player/robot/coms/attackinfive 0
+coverme sound/player/robot/coms/coverme 0
+defend sound/player/robot/coms/defend 0
+//defending sound/player/robot/player/defending 0
+//droppedflag sound/player/robot/player/droppedflag 0
+//flagcarriertakingdamage sound/player/robot/player/flagcarriertakingdamage 0
+freelance sound/player/robot/coms/freelance 2
+//getflag sound/player/soldier/player/getflag 0
+incoming sound/player/robot/coms/incoming 0
+meet sound/player/robot/coms/meet 0
+needhelp sound/player/robot/coms/needhelp 2
+//negative sound/player/robot/player/negative 0
+//onmyway sound/player/robot/player/onmyway 0
+//roaming sound/player/robot/player/roaming 0
+//seenenemy sound/player/robot/player/seenenemy 0
+seenflag sound/player/robot/coms/seenflag 0
+taunt sound/player/robot/coms/taunt 3
+teamshoot sound/player/robot/coms/teamshoot 3
+death sound/player/robot/player/death 3
+drown sound/player/robot/player/drown 0
+fall sound/player/robot/player/fall 0
+falling sound/player/robot/player/falling 0
+gasp sound/player/robot/player/gasp 0
+jump sound/player/robot/player/jump 0
+pain25 sound/player/robot/player/pain25 0
+pain50 sound/player/robot/player/pain50 0
+pain75 sound/player/robot/player/pain75 0
+pain100 sound/player/robot/player/pain100 0
diff --git a/models/ok_player/okrobot1.dpm_0.txt b/models/ok_player/okrobot1.dpm_0.txt
new file mode 100644 (file)
index 0000000..0b52a01
--- /dev/null
@@ -0,0 +1,7 @@
+name overkill robot1
+species robot_solid
+sex None
+weight 200
+age 1
+
+Overkill robot
diff --git a/models/ok_player/okrobot2.dpm b/models/ok_player/okrobot2.dpm
new file mode 100644 (file)
index 0000000..204aeab
Binary files /dev/null and b/models/ok_player/okrobot2.dpm differ
diff --git a/models/ok_player/okrobot2.dpm.framegroups b/models/ok_player/okrobot2.dpm.framegroups
new file mode 100644 (file)
index 0000000..8d7b4db
--- /dev/null
@@ -0,0 +1,29 @@
+/*
+Generated framegroups file for okrobot2
+Used by DarkPlaces to simulate frame groups in DPM models.
+*/
+
+1 41 30 0 // okrobot2 die1
+67 56 30 0 // okrobot2 die2
+133 11 15 1 // okrobot2 draw
+144 6 10 1 // okrobot2 duck
+150 17 15 1 // okrobot2 duckwalk
+167 31 40 0 // okrobot2 duckjump
+198 1 10 1 // okrobot2 duckidle
+199 101 15 1 // okrobot2 idle
+300 17 20 1 // okrobot2 jump
+317 6 10 0 // okrobot2 pain1
+323 6 10 0 // okrobot2 pain2
+329 6 30 0 // okrobot2 shoot
+335 17 15 1 // okrobot2 taunt
+352 17 30 1 // okrobot2 run
+369 17 30 1 // okrobot2 runbackwards
+386 17 30 1 // okrobot2 strafeleft
+403 17 30 1 // okrobot2 straferight
+41 1 10 0 // okrobot4 dead1
+122 1 10 0 // okrobot4 dead2
+424 17 30 1 // okrobot2 forwardright
+441 17 30 1 // okrobot2 forwardleft
+458 17 30 1 // okrobot2 backright
+475 17 30 1 // okrobot2 backleft
+492 21 15 1 // okrobot2 melee
diff --git a/models/ok_player/okrobot2.dpm_0.sounds b/models/ok_player/okrobot2.dpm_0.sounds
new file mode 100644 (file)
index 0000000..62c5019
--- /dev/null
@@ -0,0 +1,32 @@
+//TAG: robot_shiny
+//affirmative sound/player/robot/player/affirmative 0
+attack sound/player/robot/coms/attack 0
+//attacking sound/player/robot/player/attacking 0
+attackinfive sound/player/robot/coms/attackinfive 0
+coverme sound/player/robot/coms/coverme 0
+defend sound/player/robot/coms/defend 0
+//defending sound/player/robot/player/defending 0
+//droppedflag sound/player/robot/player/droppedflag 0
+//flagcarriertakingdamage sound/player/robot/player/flagcarriertakingdamage 0
+freelance sound/player/robot/coms/freelance 2
+//getflag sound/player/soldier/player/getflag 0
+incoming sound/player/robot/coms/incoming 0
+meet sound/player/robot/coms/meet 0
+needhelp sound/player/robot/coms/needhelp 2
+//negative sound/player/robot/player/negative 0
+//onmyway sound/player/robot/player/onmyway 0
+//roaming sound/player/robot/player/roaming 0
+//seenenemy sound/player/robot/player/seenenemy 0
+seenflag sound/player/robot/coms/seenflag 0
+taunt sound/player/robot/coms/taunt 3
+teamshoot sound/player/robot/coms/teamshoot 3
+death sound/player/robot/player/death 3
+drown sound/player/robot/player/drown 0
+fall sound/player/robot/player/fall 0
+falling sound/player/robot/player/falling 0
+gasp sound/player/robot/player/gasp 0
+jump sound/player/robot/player/jump 0
+pain25 sound/player/robot/player/pain25 0
+pain50 sound/player/robot/player/pain50 0
+pain75 sound/player/robot/player/pain75 0
+pain100 sound/player/robot/player/pain100 0
diff --git a/models/ok_player/okrobot2.dpm_0.txt b/models/ok_player/okrobot2.dpm_0.txt
new file mode 100644 (file)
index 0000000..0b52a01
--- /dev/null
@@ -0,0 +1,7 @@
+name overkill robot1
+species robot_solid
+sex None
+weight 200
+age 1
+
+Overkill robot
diff --git a/models/ok_player/okrobot3.dpm b/models/ok_player/okrobot3.dpm
new file mode 100644 (file)
index 0000000..81db898
Binary files /dev/null and b/models/ok_player/okrobot3.dpm differ
diff --git a/models/ok_player/okrobot3.dpm.framegroups b/models/ok_player/okrobot3.dpm.framegroups
new file mode 100644 (file)
index 0000000..7f0a3df
--- /dev/null
@@ -0,0 +1,29 @@
+/*
+Generated framegroups file for okrobot3
+Used by DarkPlaces to simulate frame groups in DPM models.
+*/
+
+1 41 30 0 // okrobot3 die1
+67 56 30 0 // okrobot3 die2
+133 11 15 1 // okrobot3 draw
+144 6 10 1 // okrobot3 duck
+150 17 15 1 // okrobot3 duckwalk
+167 31 40 0 // okrobot3 duckjump
+198 1 10 1 // okrobot3 duckidle
+199 101 15 1 // okrobot3 idle
+300 17 20 1 // okrobot3 jump
+317 6 10 0 // okrobot3 pain1
+323 6 10 0 // okrobot3 pain2
+329 6 30 0 // okrobot3 shoot
+335 17 15 1 // okrobot3 taunt
+352 17 30 1 // okrobot3 run
+369 17 30 1 // okrobot3 runbackwards
+386 17 30 1 // okrobot3 strafeleft
+403 17 30 1 // okrobot3 straferight
+41 1 10 0 // okrobot4 dead1
+122 1 10 0 // okrobot4 dead2
+424 17 30 1 // okrobot3 forwardright
+441 17 30 1 // okrobot3 forwardleft
+458 17 30 1 // okrobot3 backright
+475 17 30 1 // okrobot3 backleft
+492 21 15 1 // okrobot3 melee
diff --git a/models/ok_player/okrobot3.dpm_0.sounds b/models/ok_player/okrobot3.dpm_0.sounds
new file mode 100644 (file)
index 0000000..62c5019
--- /dev/null
@@ -0,0 +1,32 @@
+//TAG: robot_shiny
+//affirmative sound/player/robot/player/affirmative 0
+attack sound/player/robot/coms/attack 0
+//attacking sound/player/robot/player/attacking 0
+attackinfive sound/player/robot/coms/attackinfive 0
+coverme sound/player/robot/coms/coverme 0
+defend sound/player/robot/coms/defend 0
+//defending sound/player/robot/player/defending 0
+//droppedflag sound/player/robot/player/droppedflag 0
+//flagcarriertakingdamage sound/player/robot/player/flagcarriertakingdamage 0
+freelance sound/player/robot/coms/freelance 2
+//getflag sound/player/soldier/player/getflag 0
+incoming sound/player/robot/coms/incoming 0
+meet sound/player/robot/coms/meet 0
+needhelp sound/player/robot/coms/needhelp 2
+//negative sound/player/robot/player/negative 0
+//onmyway sound/player/robot/player/onmyway 0
+//roaming sound/player/robot/player/roaming 0
+//seenenemy sound/player/robot/player/seenenemy 0
+seenflag sound/player/robot/coms/seenflag 0
+taunt sound/player/robot/coms/taunt 3
+teamshoot sound/player/robot/coms/teamshoot 3
+death sound/player/robot/player/death 3
+drown sound/player/robot/player/drown 0
+fall sound/player/robot/player/fall 0
+falling sound/player/robot/player/falling 0
+gasp sound/player/robot/player/gasp 0
+jump sound/player/robot/player/jump 0
+pain25 sound/player/robot/player/pain25 0
+pain50 sound/player/robot/player/pain50 0
+pain75 sound/player/robot/player/pain75 0
+pain100 sound/player/robot/player/pain100 0
diff --git a/models/ok_player/okrobot3.dpm_0.txt b/models/ok_player/okrobot3.dpm_0.txt
new file mode 100644 (file)
index 0000000..3157342
--- /dev/null
@@ -0,0 +1,7 @@
+name overkill robot3
+species robot_solid
+sex None
+weight 200
+age 1
+
+Overkill robot
diff --git a/models/ok_player/okrobot4.dpm b/models/ok_player/okrobot4.dpm
new file mode 100644 (file)
index 0000000..13cddb8
Binary files /dev/null and b/models/ok_player/okrobot4.dpm differ
diff --git a/models/ok_player/okrobot4.dpm.framegroups b/models/ok_player/okrobot4.dpm.framegroups
new file mode 100644 (file)
index 0000000..425f035
--- /dev/null
@@ -0,0 +1,29 @@
+/*
+Generated framegroups file for okrobot4
+Used by DarkPlaces to simulate frame groups in DPM models.
+*/
+
+1 41 30 0 // okrobot4 die1
+67 56 30 0 // okrobot4 die2
+133 11 15 1 // okrobot4 draw
+144 6 10 1 // okrobot4 duck
+150 17 15 1 // okrobot4 duckwalk
+167 31 40 0 // okrobot4 duckjump
+198 1 10 1 // okrobot4 duckidle
+199 101 15 1 // okrobot4 idle
+300 17 20 1 // okrobot4 jump
+317 6 10 0 // okrobot4 pain1
+323 6 10 0 // okrobot4 pain2
+329 6 30 0 // okrobot4 shoot
+335 17 15 1 // okrobot4 taunt
+352 17 30 1 // okrobot4 run
+369 17 30 1 // okrobot4 runbackwards
+386 17 30 1 // okrobot4 strafeleft
+403 17 30 1 // okrobot4 straferight
+41 1 10 0 // okrobot4 dead1
+122 1 10 0 // okrobot4 dead2
+424 17 30 1 // okrobot4 forwardright
+441 17 30 1 // okrobot4 forwardleft
+458 17 30 1 // okrobot4 backright
+475 17 30 1 // okrobot4 backleft
+492 21 15 1 // okrobot4 melee
diff --git a/models/ok_player/okrobot4.dpm_0.sounds b/models/ok_player/okrobot4.dpm_0.sounds
new file mode 100644 (file)
index 0000000..62c5019
--- /dev/null
@@ -0,0 +1,32 @@
+//TAG: robot_shiny
+//affirmative sound/player/robot/player/affirmative 0
+attack sound/player/robot/coms/attack 0
+//attacking sound/player/robot/player/attacking 0
+attackinfive sound/player/robot/coms/attackinfive 0
+coverme sound/player/robot/coms/coverme 0
+defend sound/player/robot/coms/defend 0
+//defending sound/player/robot/player/defending 0
+//droppedflag sound/player/robot/player/droppedflag 0
+//flagcarriertakingdamage sound/player/robot/player/flagcarriertakingdamage 0
+freelance sound/player/robot/coms/freelance 2
+//getflag sound/player/soldier/player/getflag 0
+incoming sound/player/robot/coms/incoming 0
+meet sound/player/robot/coms/meet 0
+needhelp sound/player/robot/coms/needhelp 2
+//negative sound/player/robot/player/negative 0
+//onmyway sound/player/robot/player/onmyway 0
+//roaming sound/player/robot/player/roaming 0
+//seenenemy sound/player/robot/player/seenenemy 0
+seenflag sound/player/robot/coms/seenflag 0
+taunt sound/player/robot/coms/taunt 3
+teamshoot sound/player/robot/coms/teamshoot 3
+death sound/player/robot/player/death 3
+drown sound/player/robot/player/drown 0
+fall sound/player/robot/player/fall 0
+falling sound/player/robot/player/falling 0
+gasp sound/player/robot/player/gasp 0
+jump sound/player/robot/player/jump 0
+pain25 sound/player/robot/player/pain25 0
+pain50 sound/player/robot/player/pain50 0
+pain75 sound/player/robot/player/pain75 0
+pain100 sound/player/robot/player/pain100 0
diff --git a/models/ok_player/okrobot4.dpm_0.txt b/models/ok_player/okrobot4.dpm_0.txt
new file mode 100644 (file)
index 0000000..3157342
--- /dev/null
@@ -0,0 +1,7 @@
+name overkill robot3
+species robot_solid
+sex None
+weight 200
+age 1
+
+Overkill robot
index 81649e3d480087f591e80730c7e06e5aeb70f57e..dc610b7f4e38a1d68cf5e52d6d02a1a4befa7c0f 100644 (file)
Binary files a/models/player/megaerebus.iqm_0.tga and b/models/player/megaerebus.iqm_0.tga differ
index 835bd3bd176e2b806fcfb89773bcdbecf55d6878..ba5578339fb5ceeb36c3c9919731bcd72d234ceb 100644 (file)
@@ -1,8 +1,3 @@
-/*
-Generated framegroups file for spiderbot
-Used by DarkPlaces to simulate frame groups in DPM models.
-*/
-
 1 31 30 1 // spiderbot forward
 32 31 30 1 // spiderbot backwards
 63 31 20 1 // spiderbot left
diff --git a/models/weapons/crylink_simple.tga b/models/weapons/crylink_simple.tga
new file mode 100644 (file)
index 0000000..4dfe24e
Binary files /dev/null and b/models/weapons/crylink_simple.tga differ
diff --git a/models/weapons/g_crylink_simple.iqm b/models/weapons/g_crylink_simple.iqm
new file mode 100644 (file)
index 0000000..a5cc3e6
Binary files /dev/null and b/models/weapons/g_crylink_simple.iqm differ
diff --git a/models/weapons/g_crylink_simple.iqm_0.skin b/models/weapons/g_crylink_simple.iqm_0.skin
new file mode 100644 (file)
index 0000000..e86b8b2
--- /dev/null
@@ -0,0 +1 @@
+Plane,g_crylink_simple
\ No newline at end of file
diff --git a/models/weapons/g_crylink_simple.obj b/models/weapons/g_crylink_simple.obj
new file mode 100644 (file)
index 0000000..3bd17fc
--- /dev/null
@@ -0,0 +1,14 @@
+# Blender3D v249 OBJ File: crylink_simple.blend\r
+# www.blender3d.org\r
+mtllib g_crylink_simple.mtl\r
+v 0.000000 40.000000 14.999998\r
+v 0.000000 10.000001 15.000000\r
+v 0.000000 9.999999 -15.000000\r
+v 0.000000 40.000000 -15.000002\r
+vt 1.000000 1.000000\r
+vt 0.000000 1.000000\r
+vt 0.000000 0.000000\r
+vt 1.000000 0.000000\r
+usemtl crylink_simple\r
+s off\r
+f 1/1 4/2 3/3 2/4\r
diff --git a/models/weapons/g_crylink_simple.tga b/models/weapons/g_crylink_simple.tga
new file mode 100644 (file)
index 0000000..f4054b7
Binary files /dev/null and b/models/weapons/g_crylink_simple.tga differ
diff --git a/models/weapons/g_electro_simple.iqm b/models/weapons/g_electro_simple.iqm
new file mode 100644 (file)
index 0000000..a5cc3e6
Binary files /dev/null and b/models/weapons/g_electro_simple.iqm differ
diff --git a/models/weapons/g_electro_simple.iqm_0.skin b/models/weapons/g_electro_simple.iqm_0.skin
new file mode 100644 (file)
index 0000000..0ae8f4a
--- /dev/null
@@ -0,0 +1 @@
+Plane,g_electro_simple
\ No newline at end of file
diff --git a/models/weapons/g_electro_simple.tga b/models/weapons/g_electro_simple.tga
new file mode 100644 (file)
index 0000000..b523c72
Binary files /dev/null and b/models/weapons/g_electro_simple.tga differ
diff --git a/models/weapons/g_gl_simple.iqm b/models/weapons/g_gl_simple.iqm
new file mode 100644 (file)
index 0000000..a5cc3e6
Binary files /dev/null and b/models/weapons/g_gl_simple.iqm differ
diff --git a/models/weapons/g_gl_simple.iqm_0.skin b/models/weapons/g_gl_simple.iqm_0.skin
new file mode 100644 (file)
index 0000000..cbb574d
--- /dev/null
@@ -0,0 +1 @@
+Plane,g_gl_simple
\ No newline at end of file
diff --git a/models/weapons/g_gl_simple.tga b/models/weapons/g_gl_simple.tga
new file mode 100644 (file)
index 0000000..e138aa4
Binary files /dev/null and b/models/weapons/g_gl_simple.tga differ
diff --git a/models/weapons/g_hagar_simple.iqm b/models/weapons/g_hagar_simple.iqm
new file mode 100644 (file)
index 0000000..a5cc3e6
Binary files /dev/null and b/models/weapons/g_hagar_simple.iqm differ
diff --git a/models/weapons/g_hagar_simple.iqm_0.skin b/models/weapons/g_hagar_simple.iqm_0.skin
new file mode 100644 (file)
index 0000000..2eb9f30
--- /dev/null
@@ -0,0 +1 @@
+Plane,g_hagar_simple
\ No newline at end of file
diff --git a/models/weapons/g_hagar_simple.tga b/models/weapons/g_hagar_simple.tga
new file mode 100644 (file)
index 0000000..4c82e4b
Binary files /dev/null and b/models/weapons/g_hagar_simple.tga differ
index d1f168a61cfca337a173aaf03d38414cc3d26ce3..fd3f1e74a32950b2fa23247771c841d18445c160 100644 (file)
Binary files a/models/weapons/g_laser.md3 and b/models/weapons/g_laser.md3 differ
diff --git a/models/weapons/g_nex_simple.iqm b/models/weapons/g_nex_simple.iqm
new file mode 100644 (file)
index 0000000..a5cc3e6
Binary files /dev/null and b/models/weapons/g_nex_simple.iqm differ
diff --git a/models/weapons/g_nex_simple.iqm_0.skin b/models/weapons/g_nex_simple.iqm_0.skin
new file mode 100644 (file)
index 0000000..55a8cc4
--- /dev/null
@@ -0,0 +1 @@
+Plane,g_nex_simple
\ No newline at end of file
diff --git a/models/weapons/g_nex_simple.tga b/models/weapons/g_nex_simple.tga
new file mode 100644 (file)
index 0000000..27c984f
Binary files /dev/null and b/models/weapons/g_nex_simple.tga differ
diff --git a/models/weapons/g_ok_hmg.md3 b/models/weapons/g_ok_hmg.md3
new file mode 100644 (file)
index 0000000..3b08085
Binary files /dev/null and b/models/weapons/g_ok_hmg.md3 differ
diff --git a/models/weapons/g_ok_mg.md3 b/models/weapons/g_ok_mg.md3
new file mode 100644 (file)
index 0000000..c7e5453
Binary files /dev/null and b/models/weapons/g_ok_mg.md3 differ
diff --git a/models/weapons/g_ok_rl.md3 b/models/weapons/g_ok_rl.md3
new file mode 100644 (file)
index 0000000..c677b1b
Binary files /dev/null and b/models/weapons/g_ok_rl.md3 differ
diff --git a/models/weapons/g_ok_shotgun.md3 b/models/weapons/g_ok_shotgun.md3
new file mode 100644 (file)
index 0000000..4acc77f
Binary files /dev/null and b/models/weapons/g_ok_shotgun.md3 differ
diff --git a/models/weapons/g_ok_sniper.md3 b/models/weapons/g_ok_sniper.md3
new file mode 100644 (file)
index 0000000..4acc77f
Binary files /dev/null and b/models/weapons/g_ok_sniper.md3 differ
diff --git a/models/weapons/g_rl_simple.iqm b/models/weapons/g_rl_simple.iqm
new file mode 100644 (file)
index 0000000..a5cc3e6
Binary files /dev/null and b/models/weapons/g_rl_simple.iqm differ
diff --git a/models/weapons/g_rl_simple.iqm_0.skin b/models/weapons/g_rl_simple.iqm_0.skin
new file mode 100644 (file)
index 0000000..bcb054e
--- /dev/null
@@ -0,0 +1 @@
+Plane,g_rl_simple
\ No newline at end of file
diff --git a/models/weapons/g_rl_simple.tga b/models/weapons/g_rl_simple.tga
new file mode 100644 (file)
index 0000000..d65fa87
Binary files /dev/null and b/models/weapons/g_rl_simple.tga differ
diff --git a/models/weapons/g_shotgun_simple.iqm b/models/weapons/g_shotgun_simple.iqm
new file mode 100644 (file)
index 0000000..a5cc3e6
Binary files /dev/null and b/models/weapons/g_shotgun_simple.iqm differ
diff --git a/models/weapons/g_shotgun_simple.iqm_0.skin b/models/weapons/g_shotgun_simple.iqm_0.skin
new file mode 100644 (file)
index 0000000..3721ffc
--- /dev/null
@@ -0,0 +1 @@
+Plane,g_shotgun_simple
\ No newline at end of file
diff --git a/models/weapons/g_shotgun_simple.tga b/models/weapons/g_shotgun_simple.tga
new file mode 100644 (file)
index 0000000..37da2f8
Binary files /dev/null and b/models/weapons/g_shotgun_simple.tga differ
diff --git a/models/weapons/g_uzi_simple.iqm b/models/weapons/g_uzi_simple.iqm
new file mode 100644 (file)
index 0000000..a5cc3e6
Binary files /dev/null and b/models/weapons/g_uzi_simple.iqm differ
diff --git a/models/weapons/g_uzi_simple.iqm_0.skin b/models/weapons/g_uzi_simple.iqm_0.skin
new file mode 100644 (file)
index 0000000..043974b
--- /dev/null
@@ -0,0 +1 @@
+Plane,g_uzi_simple
\ No newline at end of file
diff --git a/models/weapons/g_uzi_simple.tga b/models/weapons/g_uzi_simple.tga
new file mode 100644 (file)
index 0000000..d9b5df4
Binary files /dev/null and b/models/weapons/g_uzi_simple.tga differ
index 82b0b23303677dd5691606fe905becba1ad19568..61fed1377987fb09bf38d0eee86dd5fbe911700a 100644 (file)
Binary files a/models/weapons/h_minstanex.iqm and b/models/weapons/h_minstanex.iqm differ
index 9c7e7021cf861112551214fd9e733e54e218b7a5..ba97a6dec3675c7fc37b7c312929077e6841df5f 100644 (file)
@@ -1,10 +1,9 @@
 /*
-Generated framegroups file for h_uzi
+Generated framegroups file for h_minstanex
 Used by DarkPlaces to simulate frame groups in DPM models.
 */
 
-1 16 30 0 // h_uzi mgafire
-17 16 30 0 // h_uzi mgafire2
-33 101 3 1 // h_uzi mgaidle
-134 61 30 0 // h_uzi mgareload
-195 16 30 0 // h_uzi mgafire
+1 21 20 0 // h_minstanex fire
+22 21 20 0 // h_minstanex fire
+43 101 6 1 // h_minstanex idle
+144 101 30 0 // h_minstanex reload
diff --git a/models/weapons/h_ok_grenade.iqm b/models/weapons/h_ok_grenade.iqm
new file mode 100644 (file)
index 0000000..eaffcc2
Binary files /dev/null and b/models/weapons/h_ok_grenade.iqm differ
diff --git a/models/weapons/h_ok_grenade.iqm.framegroups b/models/weapons/h_ok_grenade.iqm.framegroups
new file mode 100644 (file)
index 0000000..ceb09de
--- /dev/null
@@ -0,0 +1,9 @@
+/*
+Generated framegroups file for h_laser
+Used by DarkPlaces to simulate frame groups in DPM models.
+*/
+
+1 51 50 0 // h_laser hgrenade_fire
+52 101 50 0 // h_laser hgrenade_idle
+153 101 5 1 // h_laser hgrenade_idle
+254 101 5 1 // h_laser hgrenade_idle
diff --git a/models/weapons/h_ok_hmg.iqm b/models/weapons/h_ok_hmg.iqm
new file mode 100644 (file)
index 0000000..e8f9a8e
Binary files /dev/null and b/models/weapons/h_ok_hmg.iqm differ
diff --git a/models/weapons/h_ok_hmg.iqm.framegroups b/models/weapons/h_ok_hmg.iqm.framegroups
new file mode 100644 (file)
index 0000000..8067f62
--- /dev/null
@@ -0,0 +1,10 @@
+/*
+Generated framegroups file for h_uzi
+Used by DarkPlaces to simulate frame groups in DPM models.
+*/
+
+1 11 120 0 // h_uzi mgafire
+12 11 120 0 // h_uzi mgafire
+23 51 2 1 // h_uzi mgaidle
+74 11 30 0 // h_uzi mgafire
+85 11 30 0 // h_uzi mgafire
diff --git a/models/weapons/h_ok_mg.iqm b/models/weapons/h_ok_mg.iqm
new file mode 100644 (file)
index 0000000..6048a9c
Binary files /dev/null and b/models/weapons/h_ok_mg.iqm differ
diff --git a/models/weapons/h_ok_mg.iqm.framegroups b/models/weapons/h_ok_mg.iqm.framegroups
new file mode 100644 (file)
index 0000000..948542a
--- /dev/null
@@ -0,0 +1,10 @@
+/*
+Generated framegroups file for h_uzi
+Used by DarkPlaces to simulate frame groups in DPM models.
+*/
+
+1 7 30 0 // h_uzi mgafire
+8 7 30 0 // h_uzi mgafire
+15 101 5 1 // h_uzi mgaidle
+116 61 40 1 // h_uzi mgareload
+177 61 15 1 // h_uzi mgareload
diff --git a/models/weapons/h_ok_rl.iqm b/models/weapons/h_ok_rl.iqm
new file mode 100644 (file)
index 0000000..2870b04
Binary files /dev/null and b/models/weapons/h_ok_rl.iqm differ
diff --git a/models/weapons/h_ok_rl.iqm.framegroups b/models/weapons/h_ok_rl.iqm.framegroups
new file mode 100644 (file)
index 0000000..fae30c9
--- /dev/null
@@ -0,0 +1,10 @@
+/*
+Generated framegroups file for h_uzi
+Used by DarkPlaces to simulate frame groups in DPM models.
+*/
+
+1 61 30 0 // h_uzi mgafire
+62 61 30 0 // h_uzi mgafire
+123 101 3 1 // h_uzi mgaidle
+224 61 30 0 // h_uzi mgafire
+285 61 30 0 // h_uzi mgafire
diff --git a/models/weapons/h_ok_shotgun.iqm b/models/weapons/h_ok_shotgun.iqm
new file mode 100644 (file)
index 0000000..34ef1c7
Binary files /dev/null and b/models/weapons/h_ok_shotgun.iqm differ
diff --git a/models/weapons/h_ok_shotgun.iqm.framegroups b/models/weapons/h_ok_shotgun.iqm.framegroups
new file mode 100644 (file)
index 0000000..004c9af
--- /dev/null
@@ -0,0 +1,9 @@
+/*
+Generated framegroups file for h_shotgun
+Used by DarkPlaces to simulate frame groups in DPM models.
+*/
+
+1 22 30 0 // h_shotgun sghmesh_fire
+23 31 30 0 // h_shotgun sghmesh_fire2
+54 201 5 1 // h_shotgun sghmesh_idle
+255 61 30 1 // h_shotgun sghmesh_reload
diff --git a/models/weapons/h_ok_sniper.iqm b/models/weapons/h_ok_sniper.iqm
new file mode 100644 (file)
index 0000000..6e6df93
Binary files /dev/null and b/models/weapons/h_ok_sniper.iqm differ
diff --git a/models/weapons/h_ok_sniper.iqm.framegroups b/models/weapons/h_ok_sniper.iqm.framegroups
new file mode 100644 (file)
index 0000000..75854d7
--- /dev/null
@@ -0,0 +1,9 @@
+/*
+Generated framegroups file for h_minstanex
+Used by DarkPlaces to simulate frame groups in DPM models.
+*/
+
+1 28 25 0 // h_minstanex h_minst_fire
+29 28 25 0 // h_minstanex h_minst_fire
+57 201 5 1 // h_minstanex h_minst_idle
+258 28 30 0 // h_minstanex h_minst_reload
diff --git a/models/weapons/laser.tga b/models/weapons/laser.tga
new file mode 100644 (file)
index 0000000..2e49562
Binary files /dev/null and b/models/weapons/laser.tga differ
diff --git a/models/weapons/laser_gloss.tga b/models/weapons/laser_gloss.tga
new file mode 100644 (file)
index 0000000..9599a94
Binary files /dev/null and b/models/weapons/laser_gloss.tga differ
diff --git a/models/weapons/laser_glow.tga b/models/weapons/laser_glow.tga
new file mode 100644 (file)
index 0000000..8221e75
Binary files /dev/null and b/models/weapons/laser_glow.tga differ
diff --git a/models/weapons/laser_norm.tga b/models/weapons/laser_norm.tga
new file mode 100644 (file)
index 0000000..80f646a
Binary files /dev/null and b/models/weapons/laser_norm.tga differ
diff --git a/models/weapons/laser_reflect.tga b/models/weapons/laser_reflect.tga
new file mode 100644 (file)
index 0000000..8f9aca5
Binary files /dev/null and b/models/weapons/laser_reflect.tga differ
diff --git a/models/weapons/laser_shirt.tga b/models/weapons/laser_shirt.tga
new file mode 100644 (file)
index 0000000..3c42a16
Binary files /dev/null and b/models/weapons/laser_shirt.tga differ
diff --git a/models/weapons/mnex_bump.tga b/models/weapons/mnex_bump.tga
deleted file mode 100644 (file)
index 98b3a5c..0000000
Binary files a/models/weapons/mnex_bump.tga and /dev/null differ
diff --git a/models/weapons/mnex_norm.tga b/models/weapons/mnex_norm.tga
new file mode 100644 (file)
index 0000000..b7939bb
Binary files /dev/null and b/models/weapons/mnex_norm.tga differ
diff --git a/models/weapons/ok_rocket.md3 b/models/weapons/ok_rocket.md3
new file mode 100644 (file)
index 0000000..7a9d082
Binary files /dev/null and b/models/weapons/ok_rocket.md3 differ
diff --git a/models/weapons/okrocketthrust.tga b/models/weapons/okrocketthrust.tga
new file mode 100644 (file)
index 0000000..8c8bcb5
Binary files /dev/null and b/models/weapons/okrocketthrust.tga differ
diff --git a/models/weapons/okrocketthrust_glow.tga b/models/weapons/okrocketthrust_glow.tga
new file mode 100644 (file)
index 0000000..293ce97
Binary files /dev/null and b/models/weapons/okrocketthrust_glow.tga differ
diff --git a/models/weapons/okweapons.tga b/models/weapons/okweapons.tga
new file mode 100644 (file)
index 0000000..2717e1b
Binary files /dev/null and b/models/weapons/okweapons.tga differ
diff --git a/models/weapons/okweapons_gloss.tga b/models/weapons/okweapons_gloss.tga
new file mode 100644 (file)
index 0000000..adba882
Binary files /dev/null and b/models/weapons/okweapons_gloss.tga differ
diff --git a/models/weapons/okweapons_glow.tga b/models/weapons/okweapons_glow.tga
new file mode 100644 (file)
index 0000000..65566aa
Binary files /dev/null and b/models/weapons/okweapons_glow.tga differ
diff --git a/models/weapons/okweapons_reflect.tga b/models/weapons/okweapons_reflect.tga
new file mode 100644 (file)
index 0000000..c86bb4c
Binary files /dev/null and b/models/weapons/okweapons_reflect.tga differ
diff --git a/models/weapons/okweapons_shirt.tga b/models/weapons/okweapons_shirt.tga
new file mode 100644 (file)
index 0000000..abc73d5
Binary files /dev/null and b/models/weapons/okweapons_shirt.tga differ
diff --git a/models/weapons/overkillbullet.tga b/models/weapons/overkillbullet.tga
new file mode 100644 (file)
index 0000000..f48d302
Binary files /dev/null and b/models/weapons/overkillbullet.tga differ
diff --git a/models/weapons/overkillbullet_gloss.tga b/models/weapons/overkillbullet_gloss.tga
new file mode 100644 (file)
index 0000000..08f2fd0
Binary files /dev/null and b/models/weapons/overkillbullet_gloss.tga differ
diff --git a/models/weapons/overkillbullet_reflect.tga b/models/weapons/overkillbullet_reflect.tga
new file mode 100644 (file)
index 0000000..ecb0222
Binary files /dev/null and b/models/weapons/overkillbullet_reflect.tga differ
index dc5e2674505c1f02c3652980c5e130f6ecce69c0..9e35e636feca4e7a524a14975090cc186f7d06ef 100644 (file)
Binary files a/models/weapons/v_laser.md3 and b/models/weapons/v_laser.md3 differ
diff --git a/models/weapons/v_ok_grenade.md3 b/models/weapons/v_ok_grenade.md3
new file mode 100644 (file)
index 0000000..e6f593d
Binary files /dev/null and b/models/weapons/v_ok_grenade.md3 differ
diff --git a/models/weapons/v_ok_hmg.md3 b/models/weapons/v_ok_hmg.md3
new file mode 100644 (file)
index 0000000..4f07ee8
Binary files /dev/null and b/models/weapons/v_ok_hmg.md3 differ
diff --git a/models/weapons/v_ok_mg.md3 b/models/weapons/v_ok_mg.md3
new file mode 100644 (file)
index 0000000..71a8e95
Binary files /dev/null and b/models/weapons/v_ok_mg.md3 differ
diff --git a/models/weapons/v_ok_rl.md3 b/models/weapons/v_ok_rl.md3
new file mode 100644 (file)
index 0000000..e43158e
Binary files /dev/null and b/models/weapons/v_ok_rl.md3 differ
diff --git a/models/weapons/v_ok_shotgun.md3 b/models/weapons/v_ok_shotgun.md3
new file mode 100644 (file)
index 0000000..30fbd6b
Binary files /dev/null and b/models/weapons/v_ok_shotgun.md3 differ
diff --git a/models/weapons/v_ok_sniper.md3 b/models/weapons/v_ok_sniper.md3
new file mode 100644 (file)
index 0000000..ee0ea46
Binary files /dev/null and b/models/weapons/v_ok_sniper.md3 differ
diff --git a/mutator_new_toys.cfg b/mutator_new_toys.cfg
new file mode 100644 (file)
index 0000000..c4f2099
--- /dev/null
@@ -0,0 +1,163 @@
+set g_new_toys 0 "Mutator 'New Toys': enable extra fun guns"
+set g_new_toys_autoreplace 2 "0: never replace, 1: always auto replace guns by available new toys, 2: randomly auto replace guns by available new toys"
+
+set g_weaponreplace_hlac ""
+set g_weaponreplace_minelayer ""
+set g_weaponreplace_rifle ""
+set g_weaponreplace_seeker ""
+
+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_minelayer -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_rifle -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_seeker -1 "0 = never provide the weapon, 1 = always provide the weapon, -1 = game mode default, -2 = provide the weapon in ca and lms"
+
+// {{{ hlac
+set g_balance_hlac_primary_spread_min 0.01
+set g_balance_hlac_primary_spread_max 0.25
+set g_balance_hlac_primary_spread_add 0.0045
+set g_balance_hlac_primary_spread_crouchmod 0.25
+
+set g_balance_hlac_primary_damage 18
+set g_balance_hlac_primary_edgedamage 9
+set g_balance_hlac_primary_force 90
+set g_balance_hlac_primary_radius 70
+set g_balance_hlac_primary_speed 9000
+set g_balance_hlac_primary_lifetime 5
+
+set g_balance_hlac_primary_refire 0.15
+set g_balance_hlac_primary_animtime 0.4
+set g_balance_hlac_primary_ammo 1
+
+set g_balance_hlac_secondary 1
+set g_balance_hlac_secondary_spread 0.15
+set g_balance_hlac_secondary_spread_crouchmod 0.5
+
+set g_balance_hlac_secondary_damage 15
+set g_balance_hlac_secondary_edgedamage 7.5
+set g_balance_hlac_secondary_force 90
+set g_balance_hlac_secondary_radius 70
+set g_balance_hlac_secondary_speed 9000
+set g_balance_hlac_secondary_lifetime 5
+
+set g_balance_hlac_secondary_refire 1
+set g_balance_hlac_secondary_animtime 0.3
+set g_balance_hlac_secondary_ammo 10
+set g_balance_hlac_secondary_shots 6
+
+set g_balance_hlac_reload_ammo 0 //default: 20
+set g_balance_hlac_reload_time 2
+// }}}
+// {{{ minelayer
+set g_balance_minelayer_damage 40
+set g_balance_minelayer_edgedamage 20
+set g_balance_minelayer_force 250
+set g_balance_minelayer_radius 175
+set g_balance_minelayer_proximityradius 150
+set g_balance_minelayer_speed 1000
+set g_balance_minelayer_lifetime 10
+set g_balance_minelayer_lifetime_countdown 0.5
+set g_balance_minelayer_refire 1.5
+set g_balance_minelayer_animtime 0.4
+set g_balance_minelayer_ammo 4
+set g_balance_minelayer_health 15
+set g_balance_minelayer_limit 3 // 0 disables the limit
+set g_balance_minelayer_protection 0 // don't explode if the mine would hurt the owner or a team mate
+set g_balance_minelayer_damageforcescale 0
+set g_balance_minelayer_detonatedelay -1 // positive: timer till detonation is allowed, negative: "security device" that prevents ANY remote detonation if it could hurt its owner, zero: detonatable at any time
+set g_balance_minelayer_time 0.5
+set g_balance_minelayer_remote_damage 45
+set g_balance_minelayer_remote_edgedamage 40
+set g_balance_minelayer_remote_radius 200
+set g_balance_minelayer_remote_force 300
+set g_balance_minelayer_reload_ammo 0 //default: 15
+set g_balance_minelayer_reload_time 2
+// }}}
+// {{{ rifle
+set g_balance_rifle_bursttime 0
+set g_balance_rifle_primary_tracer 1
+set g_balance_rifle_primary_shots 1
+set g_balance_rifle_primary_damage 40
+set g_balance_rifle_primary_headshotaddeddamage 40
+set g_balance_rifle_primary_spread 0
+set g_balance_rifle_primary_force 100
+set g_balance_rifle_primary_speed 40000
+set g_balance_rifle_primary_lifetime 5
+set g_balance_rifle_primary_refire 1.2
+set g_balance_rifle_primary_animtime 0.4
+set g_balance_rifle_primary_ammo 10
+set g_balance_rifle_primary_bulletconstant 110 // 62.2qu
+set g_balance_rifle_primary_burstcost 0
+set g_balance_rifle_primary_bullethail 0 // empty magazine on shot
+set g_balance_rifle_secondary 1
+set g_balance_rifle_secondary_reload 0
+set g_balance_rifle_secondary_tracer 0
+set g_balance_rifle_secondary_shots 4
+set g_balance_rifle_secondary_damage 10
+set g_balance_rifle_secondary_headshotaddeddamage 20
+set g_balance_rifle_secondary_spread 0.04
+set g_balance_rifle_secondary_force 50
+set g_balance_rifle_secondary_speed 20000
+set g_balance_rifle_secondary_lifetime 5
+set g_balance_rifle_secondary_refire 0.9
+set g_balance_rifle_secondary_animtime 0.3
+set g_balance_rifle_secondary_ammo 10
+set g_balance_rifle_secondary_bulletconstant 110 // 15.5qu
+set g_balance_rifle_secondary_burstcost 0
+set g_balance_rifle_secondary_bullethail 0 // empty magazine on shot
+set g_balance_rifle_reload_ammo 80 //default: 80
+set g_balance_rifle_reload_time 2
+// }}}
+// {{{ seeker
+set g_balance_seeker_type 0 // 0 = old seeker, 1 = new seeker
+set g_balance_seeker_flac_ammo 0.5
+set g_balance_seeker_flac_animtime 0.1
+set g_balance_seeker_flac_damage 15
+set g_balance_seeker_flac_edgedamage 10
+set g_balance_seeker_flac_force 50
+set g_balance_seeker_flac_lifetime 0.1
+set g_balance_seeker_flac_lifetime_rand 0.05
+set g_balance_seeker_flac_radius 100
+set g_balance_seeker_flac_refire 0.1
+set g_balance_seeker_flac_speed 3000
+set g_balance_seeker_flac_speed_up 1000
+set g_balance_seeker_flac_speed_z 0
+set g_balance_seeker_flac_spread 0.4
+set g_balance_seeker_tag_ammo 1
+set g_balance_seeker_tag_animtime 0.2
+set g_balance_seeker_tag_damageforcescale 4
+set g_balance_seeker_tag_health 5
+set g_balance_seeker_tag_lifetime 15
+set g_balance_seeker_tag_refire 0.75 // LOG: 0.7 -> 0.75
+set g_balance_seeker_tag_speed 5000
+set g_balance_seeker_tag_spread 0
+set g_balance_seeker_tag_tracker_lifetime 10
+set g_balance_seeker_missile_accel 1400
+set g_balance_seeker_missile_ammo 2
+set g_balance_seeker_missile_animtime 0.2
+set g_balance_seeker_missile_count 3 // LOG: 8 -> 3
+set g_balance_seeker_missile_damage 30 // LOG: 15 -> 30
+set g_balance_seeker_missile_damageforcescale 4
+set g_balance_seeker_missile_decel 1400
+set g_balance_seeker_missile_delay 0.25
+set g_balance_seeker_missile_edgedamage 10
+set g_balance_seeker_missile_force 150 // LOG: 100 -> 150
+set g_balance_seeker_missile_health 5
+set g_balance_seeker_missile_lifetime 15
+set g_balance_seeker_missile_proxy 0
+set g_balance_seeker_missile_proxy_delay 0.2
+set g_balance_seeker_missile_proxy_maxrange 45
+set g_balance_seeker_missile_radius 80
+set g_balance_seeker_missile_refire 0.5
+set g_balance_seeker_missile_smart 1
+set g_balance_seeker_missile_smart_mindist 800
+set g_balance_seeker_missile_smart_trace_max 2500
+set g_balance_seeker_missile_smart_trace_min 1000
+set g_balance_seeker_missile_speed 700
+set g_balance_seeker_missile_speed_up 300
+set g_balance_seeker_missile_speed_z 0
+set g_balance_seeker_missile_speed_max 1300 // LOG: 1400 -> 1300
+set g_balance_seeker_missile_spread 0
+set g_balance_seeker_missile_turnrate 0.65
+set g_balance_seeker_reload_ammo 0 //default: 15
+set g_balance_seeker_reload_time 2
+// End new seeker
index 620ec882e54d1f2b1d8108df6edf2d18afe5c8f3..9734cfc6f6ccc1180a9925105814321f1d5ed69f 100644 (file)
@@ -1,4 +1,6 @@
+g_mod_physics CPMA
 // these values match CPMA
+
 sv_gravity 800
 sv_maxspeed 320
 sv_maxairspeed 320
index 1afb26330c643725fee6695071bb881eaaddb625..5f65d66d8ab36e6b6e2349174c15431ea20e6e3f 100644 (file)
@@ -1,4 +1,6 @@
+g_mod_physics Fruit
 // physicsNoQWBunny.cfg vs physicsXPM.cfg
+
 sv_gravity 800
 sv_maxspeed 320
 sv_maxairspeed 320
index d78346e1b604f870bf9cacce45171215285fd1bf..f107158720dc50d26d0dcc014a5a4eb23ae8ddbe 100644 (file)
@@ -1,4 +1,6 @@
+g_mod_physics Havoc
 // Xonotic Havoc physics (work in progress)
+
 sv_gravity 800
 sv_maxspeed 400
 sv_maxairspeed 220
index 21bafef57c523cbbc9d08c579c618f83ca55e5d5..3553a94a7e587a415a24613aaf735392622e6a53 100644 (file)
@@ -1,4 +1,6 @@
+g_mod_physics LeeStricklin-ModdedFruit
 // "NoQWBunny" physics based on XPM
+
 sv_gravity 800
 sv_maxspeed 424
 sv_maxairspeed 400
index 3c740da33733257b50e8a46af2167714c3dcf815..e4aef4440d6b5b173e141962d3e429077216ab31 100644 (file)
@@ -1,4 +1,6 @@
+g_mod_physics LeeStricklin
 // "NoQWBunny" physics based on XPM
+
 sv_gravity 800
 sv_maxspeed 320
 sv_maxairspeed 424
index d240d991b3f55a812ab5bce0bda2c53f9942fa7e..eda92ac6930431893efd7865b83f26d45efecffc 100644 (file)
@@ -1,5 +1,7 @@
+g_mod_physics LeeStricklinOld
 // These have been modified from Nexuiz 2.4.2's physicsQBR.cfg file and a bunch of other crap div0 threw on here :P
 // DO NOT SCREW WITH friction on land, edge friction, step height, or sv_airaccel_qw
+
 sv_gravity 819
 sv_maxspeed 420
 sv_maxairspeed 283
index 86b4bdcf024617699c1a7c8818349378e3e5b6e7..cd76c2fe39f557fd6bb50133fddc8dad880dc1e6 100644 (file)
@@ -1,5 +1,7 @@
+g_mod_physics Lzd
 //LZD Physics Config v0.1
 //By PCLizard and Oh Hai :)
+
 sv_gravity 800
 sv_maxspeed 400
 sv_maxairspeed 300
index a6673a28e248cef489dcbc8bbfacefa2d1aeef12..6c99b307f00f74d41e90e6d95b5db96dcacb2e20 100644 (file)
@@ -1,4 +1,6 @@
+g_mod_physics Nexuiz10
 // Xonotic 1.0 physics
+
 sv_gravity 800
 sv_maxspeed 400
 sv_maxairspeed 100
index 60459c37474067be06d5a1aed7c23cfd57df1ff5..65a6a4b6fc40b9a67fc91d4936cee4095e32ebd2 100644 (file)
@@ -1,4 +1,6 @@
+g_mod_physics Nexuiz11
 // Xonotic 1.5 physics
+
 sv_gravity 800
 sv_maxspeed 400
 sv_maxairspeed 50
index b099d4cf34935bea0c778605abdb4f4b89e335b6..833a67dce383f608a8051938cdffa905d55f3d4d 100644 (file)
@@ -1,4 +1,6 @@
+g_mod_physics Nexuiz151
 // experimental post-Xonotic 1.5 physics (never released)
+
 sv_gravity 800
 sv_maxspeed 400
 sv_maxairspeed 50
index 8821b5a319082f63b7f86150ebbde7f2d1385e1f..31380c973828580dc2fe523cac5715e59e8ab020 100644 (file)
@@ -1,4 +1,6 @@
+g_mod_physics Nexuiz151b
 // experimental post-Xonotic 1.5 physics (never released)
+
 sv_gravity 800
 sv_maxspeed 400
 sv_maxairspeed 25
index ff6343f781a3d72fea86a6a92466ecd6d1f3dbfd..f3a85e50b7cf4d03556fd315f7b731b5d4125ec6 100644 (file)
@@ -1,4 +1,6 @@
+g_mod_physics Nexuiz16rc1
 // experimental post-Xonotic 1.5 physics (never released)
+
 sv_gravity 800
 sv_maxspeed 400
 sv_maxairspeed 50
index 0834bb5aa60c439bbd03a93420835934db5468a2..60071e1844026fb1bb9fb04e695d19247295f33b 100644 (file)
@@ -1,4 +1,6 @@
+g_mod_physics Nexuiz20
 // Quake, Bunny Reintroduced (Xonotic 2.0 to 2.4.2 physics)
+
 sv_gravity 800
 sv_maxspeed 400
 sv_maxairspeed 220
index 8c5ab5e851342b87146a95334ddf08dbc2c762ff..dd984bb310c1a8c2299df157edc8b751e20d05d5 100644 (file)
@@ -1,4 +1,6 @@
+g_mod_physics Nexuiz25
 // Xonotic 2.5 physics
+
 sv_gravity 800
 sv_maxspeed 400
 sv_maxairspeed 220
index 4e104d1aa99f2d71e76acc12bf5bb4f6fff618e6..827bbc55c16501e6ee64e509b4313f8612a0d3c4 100644 (file)
@@ -1,4 +1,6 @@
+g_mod_physics Nexuiz26
 // Xonotic 2.6 physics
+
 sv_gravity 800
 sv_maxspeed 400
 sv_maxairspeed 220
index e74b332ede27e84f582a158e35a49bf1a61acbc2..f8d43c4f2ece249c7fe52776ce6bae5c7577a535 100644 (file)
@@ -1,4 +1,6 @@
+g_mod_physics NoQWBunny-nexbased
 // "NoQWBunny" physics based on Nexuiz 2.0-2.4.2
+
 sv_gravity 800
 sv_maxspeed 360
 sv_maxairspeed 400
index 1eb53ab38321b709375486f6d3a8307323275901..c26745629677cf209b65c223eb60d5abfd6a9436 100644 (file)
@@ -1,4 +1,6 @@
+g_mod_physics Q
 // Quake 1
+
 sv_gravity 800
 sv_maxspeed 320
 sv_maxairspeed 30
index 2e3c0af6f310e4c6e5dfa3d94bccb02688782ab7..05e2f1456cdd5152935fe084e730f717069dc4cd 100644 (file)
@@ -1,4 +1,6 @@
+g_mod_physics Q2
 // Quake 2
+
 sv_gravity 800
 sv_maxspeed 300
 sv_maxairspeed 300
index 2d223a2051ea58977e84391c7d8f20059b3dba38..9b953e32e8b78b8852f663ed4e55668da55a1b1a 100644 (file)
@@ -1,4 +1,6 @@
+g_mod_physics Q2a
 // Quake 2 if pm_airaccelerate were set to 10 and not 0 (Q1-like)
+
 sv_gravity 800
 sv_maxspeed 300
 sv_maxairspeed 30
index b3fdf41a82982855ae253933cbae7982d7906b9c..eed1c7409008447be660d6b84b73e57da536d11f 100644 (file)
@@ -1,4 +1,6 @@
+g_mod_physics Q3
 // these values match Quake3
+
 sv_gravity 800
 sv_maxspeed 320
 sv_maxairspeed 320
index 390cb968ad31ed8867763a41830aa302e0d5f238..8dff0edd9df5d208440a721a04fce1e236a5722a 100644 (file)
@@ -1,4 +1,6 @@
+g_mod_physics QBF
 // Quake, Bunny Fixed (feels very slow)
+
 sv_gravity 800
 sv_maxspeed 400
 sv_maxairspeed 250
index 8c1a78f3b9f80d4b613361f8503813a95c266b07..634b6083ee6c910a69442de8430c8251e2781bb7 100644 (file)
@@ -1,4 +1,6 @@
+g_mod_physics QBFplus
 // Quake, Bunny Fixed Plus (faster using forward hopping)
+
 sv_gravity 800
 sv_maxspeed 400
 sv_maxairspeed 220
index 178eed0aedfa79ffc9f58dca509387eaad43bbde..8019089bf216f7eb5749c8d12064a494ca0f7edd 100644 (file)
@@ -1,4 +1,6 @@
+g_mod_physics Samual
 // Mix of 2.3 physics and NANL physics, goal of going for faster movement
+
 sv_gravity 800
 sv_maxspeed 420
 sv_maxairspeed 235
index 6cae75a7977759b1510ecec9ec60fb8ae321100d..7d66b3716d987f96d48687973d7c09cfc7f1011d 100644 (file)
@@ -1,4 +1,6 @@
+g_mod_physics Warsow
 // these values match Warsow 0.42
+
 sv_gravity 850
 sv_maxspeed 320
 sv_maxairspeed 320
index 5c0c81c8fb8408593b6e12170d366b1a9631b771..1dbb14a90fb4f87d31359ee48ee84ea32ae11231 100644 (file)
@@ -1,4 +1,6 @@
+g_mod_physics WarsowClassicBunny
 // these values match Warsow 0.42 GS_CLASSICBUNNY
+
 sv_gravity 850
 sv_maxspeed 320
 sv_maxairspeed 320
index 0c30fcd9a0de82ada7acb5a922cc8097c5ab1b5d..f2f989d7580295a9ea237701d240ab7084dc7bb0 100644 (file)
@@ -1,4 +1,6 @@
+g_mod_physics WarsowDev
 // these values match Warsow 0.42
+
 sv_gravity 850
 sv_maxspeed 320
 sv_maxairspeed 320
index 7a78d3726b4cb8f9b9ba79f9c24417557e0eceb8..e2a3ef648087b64716ae7b5a7153a9663995ec67 100644 (file)
@@ -1,4 +1,6 @@
+g_mod_physics Xonotic
 // current Xonotic physics
+
 sv_gravity 800
 sv_maxspeed 360
 sv_maxairspeed 360
index bda6272711dab78a84c029b8fdfc73a76fdb944c..77926d05f7bf99a21aba09dee93c8ce864c974bb 100644 (file)
@@ -1,4 +1,6 @@
+g_mod_physics Xonotic010
 // Xonotic 0.1.0preview physics
+
 sv_gravity 800
 sv_maxspeed 360
 sv_maxairspeed 400
index f781539485bc37246caaa6d8392d14abb8e360ef..55e2ef01d32f41c15e71141881250af0c649ae9f 100644 (file)
@@ -1,4 +1,6 @@
+g_mod_physics XPM
 // Nexrun tweaked to suit CPM
+
 sv_gravity 800
 sv_maxspeed 320
 // CPMA: 320
index 3a8b8e1503f7e2819d434becb7d55b0c826da051..d0f31c2c0bd8f6f039b1134de117c190b8a72b43 100644 (file)
@@ -1,4 +1,6 @@
+g_mod_physics XPMLight
 // Nexrun tweaked to suit CPM
+
 sv_gravity 800
 sv_maxspeed 320
 // CPMA: 320
index 618e3ad4e234fc465e927bd80493429d9d5bcc16..27f6fc993aa0c12c1e372a7b36c25922fcce7995 100644 (file)
@@ -3,7 +3,7 @@ FTEQCC ?= fteqcc
 PERL ?= perl
 
 FTEQCCFLAGS_WATERMARK ?= -DWATERMARK='"$(shell git describe)"' -DCVAR_POPCON
-FTEQCCFLAGS ?= -Werror -Wno-Q302 -O3 -fno-fastarrays $(FTEQCCFLAGS_EXTRA) $(FTEQCCFLAGS_WATERMARK)
+FTEQCCFLAGS ?= -Werror -Wno-Q302 -O3 -Ono-return_only -fno-fastarrays $(FTEQCCFLAGS_EXTRA) $(FTEQCCFLAGS_WATERMARK)
 FTEQCCFLAGS_PROGS ?=
 FTEQCCFLAGS_MENU ?=
 
index d09f5ebb24edc94fdf9158c1b371d6fe71d1c0cf..3ac1e9cf7a67fee7eb2f82d9e8ffd184a7583b6e 100644 (file)
@@ -2,6 +2,19 @@
 // BEGIN REQUIRED CSQC FUNCTIONS
 //include "main.qh"
 
+entity clearentity_ent;
+void clearentity(entity e)
+{
+       if not(clearentity_ent)
+       {
+               clearentity_ent = spawn();
+               clearentity_ent.classname = "clearentity";
+       }
+       float n = e.entnum;
+       copyentity(clearentity_ent, e);
+       e.entnum = n;
+}
+
 #define DP_CSQC_ENTITY_REMOVE_IS_B0RKED
 void menu_show_error()
 {
@@ -74,7 +87,7 @@ void ConsoleCommand_macro_init();
 void CSQC_Init(void)
 {
        prvm_language = cvar_string("prvm_language");
-
+    cl_simple_items = autocvar_cl_simple_items;
 #ifdef USE_FTE
 #pragma target ID
        __engine_check = checkextension("DP_SV_WRITEPICTURE");
@@ -165,7 +178,7 @@ void CSQC_Init(void)
        DamageInfo_Precache();
        Vehicles_Precache();
        turrets_precache();
-  Announcer_Precache();
+    Announcer_Precache();
        Tuba_Precache();
        
        if(autocvar_cl_reticle)
@@ -706,6 +719,7 @@ void CSQC_Ent_Update(float bIsNewEntity)
                        //print(_("A CSQC entity changed its type!\n"));
                        print(sprintf(_("A CSQC entity changed its type! (edict: %d, server: %d, type: %d -> %d)\n"), num_for_edict(self), self.entnum, self.enttype, t));
                        Ent_Remove();
+                       clearentity(self);
                        bIsNewEntity = 1;
                }
        }
@@ -752,7 +766,8 @@ void CSQC_Ent_Update(float bIsNewEntity)
                case ENT_CLIENT_ACCURACY: Ent_ReadAccuracy(); break;
                case ENT_CLIENT_AUXILIARYXHAIR: Net_AuXair2(bIsNewEntity); break;
                case ENT_CLIENT_TURRET: ent_turret(); break; 
-               case ENT_CLIENT_MODEL: CSQCModel_Read(bIsNewEntity); break; 
+               case ENT_CLIENT_MODEL: CSQCModel_Read(bIsNewEntity); break;
+               case ENT_CLIENT_ITEM: ItemRead(bIsNewEntity); break;  
                default:
                        //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));
@@ -778,6 +793,11 @@ void Ent_Remove()
 // CSQC_Ent_Remove : Called when the server requests a SSQC / CSQC entity to be removed.  Essentially call remove(self) as well.
 void CSQC_Ent_Remove()
 {
+       if(wasfreed(self))
+       {
+               print("WARNING: CSQC_Ent_Remove called for already removed entity. Packet loss?\n");
+               return;
+       }
        if(self.enttype)
                Ent_Remove();
        remove(self);
@@ -1162,6 +1182,10 @@ float CSQC_Parse_TempEntity()
                        Net_VehicleSetup();
                        bHandled = true;
                        break;
+               case TE_CSQC_SVNOTICE:
+                       cl_notice_read();
+                       bHandled = true;
+                       break;
                default:
                        // No special logic for this temporary entity; return 0 so the engine can handle it
                        bHandled = false;
index f1112b33aa47fbb574dea670058a1ef191dca75c..66d7dd31c4b1ae258043002bc381a81109d9ddfc 100644 (file)
@@ -94,6 +94,7 @@ vector GetCurrentFov(float fov)
 {
        float zoomsensitivity, zoomspeed, zoomfactor, zoomdir;
        float velocityzoom, curspeed;
+       vector v;
 
        zoomsensitivity = autocvar_cl_zoomsensitivity;
        zoomfactor = autocvar_cl_zoomfactor;
@@ -161,11 +162,15 @@ vector GetCurrentFov(float fov)
 
        if(autocvar_cl_velocityzoom && autocvar_cl_velocityzoom_type) // _type = 0 disables velocity zoom too
        {
+               v = pmove_vel;
+               if(csqcplayer)
+                       v = csqcplayer.velocity;
+
                switch(autocvar_cl_velocityzoom_type)
                {
-                       case 3: curspeed = max(0, v_forward * pmove_vel); break;
-                       case 2: curspeed = (v_forward * pmove_vel); break;
-                       case 1: default: curspeed = vlen(pmove_vel); break;
+                       case 3: curspeed = max(0, v_forward * v); break;
+                       case 2: curspeed = (v_forward * v); break;
+                       case 1: default: curspeed = vlen(v); break;
                }
                
                velocityzoom = bound(0, drawframetime / max(0.000000001, autocvar_cl_velocityzoom_time), 1); // speed at which the zoom adapts to player velocity
@@ -220,14 +225,18 @@ void TrueAim_Init()
 
 float EnemyHitCheck()
 {
-       float t;
+       float t, n;
        wcross_origin = project_3d_to_2d(trace_endpos);
        wcross_origin_z = 0;
-       if(trace_networkentity < 1)
+       if(trace_ent)
+               n = trace_ent.entnum;
+       else
+               n = trace_networkentity;
+       if(n < 1)
                return SHOTTYPE_HITWORLD;
-       if(trace_networkentity > maxclients)
+       if(n > maxclients)
                return SHOTTYPE_HITWORLD;
-       t = GetPlayerColor(trace_networkentity - 1);
+       t = GetPlayerColor(n - 1);
        if(teamplay)
                if(t == myteam)
                        return SHOTTYPE_HITTEAM;
@@ -365,6 +374,7 @@ float checkfail[16];
 
 #define BUTTON_3 4
 #define BUTTON_4 8
+float cl_notice_run();
 void CSQC_UpdateView(float w, float h)
 {
        entity e;
@@ -917,12 +927,14 @@ void CSQC_UpdateView(float w, float h)
                }
        }
 
-       if(autocvar_hud_postprocessing) // TODO: Remove this code and re-do the postprocess handling in the engine, where it properly belongs.
+       float e1 = (autocvar_hud_postprocessing_maxbluralpha != 0);
+       float e2 = (autocvar_hud_powerup != 0);
+       if(autocvar_hud_postprocessing && (e1 || e2)) // TODO: Remove this code and re-do the postprocess handling in the engine, where it properly belongs.
        {
                // enable or disable rendering types if they are used or not
-               if(cvar("r_glsl_postprocess_uservec1_enable") != (autocvar_hud_postprocessing_maxbluralpha != 0)) { cvar_set("r_glsl_postprocess_uservec1_enable", ftos(autocvar_hud_postprocessing_maxbluralpha != 0)); }
-               if(cvar("r_glsl_postprocess_uservec2_enable") != (autocvar_hud_powerup != 0)) { cvar_set("r_glsl_postprocess_uservec2_enable", ftos(autocvar_hud_powerup != 0)); }
-               
+               if(cvar("r_glsl_postprocess_uservec1_enable") != e1) { cvar_set("r_glsl_postprocess_uservec1_enable", ftos(e1)); }
+               if(cvar("r_glsl_postprocess_uservec2_enable") != e2) { cvar_set("r_glsl_postprocess_uservec2_enable", ftos(e2)); }
+
                // blur postprocess handling done first (used by hud_damage and hud_contents)
                if((damage_blurpostprocess_x || content_blurpostprocess_x) && autocvar_chase_active >= 0) // not while the event chase camera is active
                {
@@ -962,7 +974,12 @@ void CSQC_UpdateView(float w, float h)
                        cvar_set("r_glsl_postprocess_uservec2", "0 0 0 0");
                        old_sharpen_intensity = 0;
                }
+
+               if(cvar("r_glsl_postprocess") == 0)
+                       cvar_set("r_glsl_postprocess", "2");
        }
+       else if(cvar("r_glsl_postprocess") == 2)
+               cvar_set("r_glsl_postprocess", "0");
 
        if(menu_visible)
                menu_show();
@@ -1378,7 +1395,7 @@ void CSQC_UpdateView(float w, float h)
                                                wcross_color = stov(autocvar_crosshair_dot_color);
                                                
                                        CROSSHAIR_DRAW(wcross_resolution * autocvar_crosshair_dot_size, "gfx/crosshairdot.tga", f * autocvar_crosshair_dot_alpha);
-                                       // FIXME why don't we use wcross_alpha here?
+                                       // FIXME why don't we use wcross_alpha here?cl_notice_run();
                                        wcross_color = wcross_color_old;
                                }
                        }
@@ -1452,6 +1469,9 @@ void CSQC_UpdateView(float w, float h)
         else if(hud == HUD_BUMBLEBEE)
             CSQC_BUMBLE_HUD();
     }
+       
+       cl_notice_run();
+       
        // let's reset the view back to normal for the end
        setproperty(VF_MIN, '0 0 0');
        setproperty(VF_SIZE, '1 0 0' * w + '0 1 0' * h);
@@ -1477,7 +1497,7 @@ void CSQC_common_hud(void)
                 acc_lev[i] = stof(argv(i)) / 100.0;
         }
         // let know that acc_col[] needs to be loaded
-        acc_col_x[0] = -1;
+        acc_col[0] = '-1 0 0';
     }
 
     HUD_Main(); // always run these functions for alpha checks
index 56963fcd17e3b90e2228cf260d904abb554525e5..1e938c26ae3d95c12b9056b484edde0c87fbee82 100644 (file)
@@ -67,6 +67,7 @@ float autocvar_cl_reticle_stretch;
 float autocvar_cl_stripcolorcodes;
 var float autocvar_cl_vehicle_spiderbot_cross_alpha = 0.6;
 var float autocvar_cl_vehicle_spiderbot_cross_size = 1;
+var float autocvar_cl_vehicles_hud_tactical = 1;
 float autocvar_cl_velocityzoom;
 var float autocvar_cl_velocityzoom_type = 3;
 float autocvar_cl_velocityzoom_speed;
@@ -153,8 +154,8 @@ float autocvar_g_waypointsprite_normdistance;
 float autocvar_g_waypointsprite_scale;
 float autocvar_g_waypointsprite_spam;
 float autocvar_g_waypointsprite_timealphaexponent;
-float autocvar_g_waypointsprites_turrets;
-float autocvar_g_waypointsprites_turrets_maxdist;
+//float autocvar_g_waypointsprites_turrets;
+//float autocvar_g_waypointsprites_turrets_maxdist;
 
 float autocvar_hud_colorflash_alpha;
 float autocvar_hud_configure_checkcollisions;
@@ -252,7 +253,9 @@ 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_mode;
+float autocvar_hud_panel_physics_acceleration_progressbar_mode;
+float autocvar_hud_panel_physics_acceleration_progressbar_scale;
+float autocvar_hud_panel_physics_acceleration_progressbar_nonlinear;
 float autocvar_hud_panel_physics_acceleration_max;
 float autocvar_hud_panel_physics_progressbar;
 float autocvar_hud_panel_physics_acceleration_vertical;
@@ -263,6 +266,7 @@ 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_text_scale;
 float autocvar_hud_panel_physics_topspeed;
 float autocvar_hud_panel_physics_topspeed_time;
 float autocvar_hud_panel_powerups;
@@ -276,6 +280,7 @@ string autocvar_hud_panel_powerups_progressbar_superweapons;
 float autocvar_hud_panel_powerups_text;
 float autocvar_hud_panel_pressedkeys;
 float autocvar_hud_panel_pressedkeys_aspect;
+float autocvar_hud_panel_pressedkeys_attack;
 float autocvar_hud_panel_racetimer;
 float autocvar_hud_panel_radar;
 float autocvar_hud_panel_radar_foreground_alpha;
@@ -336,7 +341,6 @@ float autocvar_hud_shownames_antioverlap;
 float autocvar_hud_shownames_antioverlap_distance;
 float autocvar_hud_shownames_offset;
 string autocvar_hud_skin;
-float autocvar_loddebug;
 float autocvar_menu_mouse_speed;
 string autocvar_menu_skin;
 float autocvar_r_fakelight;
@@ -384,8 +388,9 @@ float autocvar_cl_damageeffect_lifetime;
 float autocvar_cl_damageeffect_lifetime_min;
 float autocvar_cl_damageeffect_lifetime_max;
 float autocvar_cl_playerdetailreduction;
-float autocvar_cl_loddistance1 = 1024;
-float autocvar_cl_loddistance2 = 4096;
+float autocvar_cl_modeldetailreduction;
+float autocvar_cl_loddistance1 = 768;
+float autocvar_cl_loddistance2 = 2048;
 float autocvar_cl_forceplayermodels;
 float autocvar_cl_forceplayercolors;
 string autocvar_cl_forcemyplayermodel;
index 353c5419abd055c12e626ec34451d2099c7cac54..694bc0cc6f960169a3f61628b8541b482c5151ca 100644 (file)
@@ -132,7 +132,8 @@ void BGMScript_InitEntity(entity e)
                if(i >= bgmscriptbufsize)
                {
                        print(sprintf("ERROR: bgmscript does not define %s\n", e.bgmscript));
-                       e.bgmscript = "";
+                       strunzone(e.bgmscript);
+                       e.bgmscript = string_null;
                }
        }
 }
index d4d1041c80b5b2bfb63cbf1208021b9cb3ad55af..a43d1726fcdce42a09aa30356391dc25cca57ac1 100644 (file)
@@ -77,7 +77,7 @@ void Ent_Casing(float isNew)
 {
        entity casing;
 
-    casing = RubbleNew("casing");
+       casing = RubbleNew("casing");
        casing.state = ReadByte();
        casing.silent = (casing.state & 0x80);
        casing.state = (casing.state & 0x7F);
@@ -115,11 +115,16 @@ void Ent_Casing(float isNew)
                }
 
                setsize(casing, '0 0 -1', '0 0 -1');
-       }
-    else
-        Casing_Delete();
 
-       RubbleLimit("casing", autocvar_cl_casings_maxcount, Casing_Delete);
+               RubbleLimit("casing", autocvar_cl_casings_maxcount, Casing_Delete);
+       }
+       else
+       {
+               entity oldself = self;
+               self = casing;
+               Casing_Delete(); // yes, this IS stupid, but I don't need to duplicate all the read* stuff then
+               self = oldself;
+       }
 }
 
 void Casings_Precache()
index a0a6e150e373dee3a051e175a75e8842cd4a4618..152ecbe82e998e398d35fcd0a8a1f0cbc37a811b 100644 (file)
@@ -14,6 +14,9 @@ void CSQCPlayer_LOD_Apply(void)
                string modelname = self.model;
                string s;
 
+               vector mi = self.mins;
+               vector ma = self.maxs;
+
                // set modelindex
                self.lodmodelindex0 = self.modelindex;
                self.lodmodelindex1 = self.modelindex;
@@ -39,6 +42,7 @@ void CSQCPlayer_LOD_Apply(void)
                }
 
                setmodel(self, modelname); // make everything normal again
+               setsize(self, mi, ma);
        }
 
        // apply LOD
@@ -53,8 +57,8 @@ void CSQCPlayer_LOD_Apply(void)
        }
        else
        {
-               float distance = vlen(self.origin - other.origin);
-               float f = (distance + 100.0) * autocvar_cl_playerdetailreduction;
+               float distance = vlen(self.origin - view_origin);
+               float f = (distance * current_viewzoom + 100.0) * autocvar_cl_playerdetailreduction;
                f *= 1.0 / bound(0.01, view_quality, 1);
                if(f > autocvar_cl_loddistance2)
                        self.modelindex = self.lodmodelindex2;
@@ -117,6 +121,7 @@ void CSQCPlayer_ForceModel_Apply(float islocalplayer)
        {
                entity e;
                e = spawn();
+               precache_model(cvar_defstring("_cl_playermodel"));
                setmodel(e, cvar_defstring("_cl_playermodel"));
                forceplayermodels_goodmodel = e.model;
                forceplayermodels_goodmodelindex = e.modelindex;
@@ -227,7 +232,7 @@ void CSQCPlayer_FallbackFrame_PostUpdate(float isnew)
        if(isnew)
        {
 #define FIX_FRAMETIME(f,ft) \
-               if(IS_DEAD_FRAME(self.f)) \
+               if(IS_DEAD_FRAME(self.f) && self.ft != 0 && self.death_time != 0) \
                { \
                        self.ft = self.death_time; \
                }
@@ -242,6 +247,8 @@ float CSQCPlayer_FallbackFrame(float f)
 {
        if(frameduration(self.modelindex, f) > 0)
                return f; // goooooood
+       if(frameduration(self.modelindex, 1) <= 0)
+               return f; // this is a static model. We can't fix it if we wanted to
        switch(f)
        {
                case 23: return 11; // anim_melee -> anim_shoot
@@ -284,6 +291,7 @@ void CSQCModel_AutoTagIndex_Apply(void)
                }
 
                // recursive predraw call to fix issues with forcemodels and LOD if bone indexes mismatch
+               if(self.tag_entity.classname == "csqcmodel")
                {
                        entity oldself = self;
                        self = self.tag_entity;
@@ -302,6 +310,7 @@ void CSQCModel_AutoTagIndex_Apply(void)
                        {
                                // the best part is: IT EXISTS
                                if(substring(self.model, 0, 17) == "models/weapons/v_")
+                               {
                                        if(substring(self.tag_entity.model, 0, 17) == "models/weapons/h_")
                                        {
                                                self.tag_index = gettagindex(self.tag_entity, "weapon");
@@ -315,14 +324,15 @@ void CSQCModel_AutoTagIndex_Apply(void)
                                                        dprint("h_ model lacks weapon attachment, but v_ model is attached to it\n");
                                                }
                                        }
-
-                               if(substring(self.model, 0, 17) == "models/weapons/v_")
-                                       if(substring(self.tag_entity.model, 0, 14) == "models/player/")
+                                       else if(self.tag_entity.isplayermodel)
                                        {
-                                               self.tag_index = gettagindex(self.tag_entity, "tag_weapon");
+                                               self.tag_index = gettagindex(self.tag_entity, "weapon");
+                                               if(!self.tag_index)
+                                                       self.tag_index = gettagindex(self.tag_entity, "tag_weapon");
                                                if(!self.tag_index)
                                                        self.tag_index = gettagindex(self.tag_entity, "bip01 r hand");
                                        }
+                               }
 
                                if(substring(self.tag_entity.model, 0, 17) == "models/weapons/v_")
                                {
@@ -512,7 +522,7 @@ void CSQCModel_Hook_PreUpdate(float isnew, float isplayer, float islocalplayer)
 void CSQCModel_Hook_PostUpdate(float isnew, float isplayer, float islocalplayer)
 {
        // is it a player model? (shared state)
-       self.isplayermodel = (substring(self.model, 0, 14) == "models/player/");
+       self.isplayermodel = (substring(self.model, 0, 14) == "models/player/" || substring(self.model, 0, 17) == "models/ok_player/");
 
        // save values set by server
        if(self.isplayermodel)
index 34c15837acc26fe3e9cade3ce1430bd218b9da87..fc8b83b5b6c8666a11efe0961ebe8af011cfcbfb 100644 (file)
@@ -113,7 +113,7 @@ void DamageEffect(vector hitorg, float dmg, float type, float specnum)
 
 void Ent_DamageInfo(float isNew)
 {
-       float dmg, rad, edge, thisdmg, forcemul, species;
+       float dmg, rad, edge, thisdmg, forcemul, species, hitplayer;
        vector force, thisforce;
        entity oldself;
 
@@ -146,6 +146,10 @@ void Ent_DamageInfo(float isNew)
        
        for(self = findradius(w_org, rad + MAX_DAMAGEEXTRARADIUS); self; self = self.chain)
        {
+               // attached ents suck
+               if(self.tag_entity)
+                       continue;
+
                vector nearest = NearestPointOnBox(self, w_org);
                if(rad)
                {
@@ -188,6 +192,9 @@ void Ent_DamageInfo(float isNew)
                        self.event_damage(thisdmg, w_deathtype, w_org, thisforce);
 
                DamageEffect(w_org, thisdmg, w_deathtype, species);
+
+               if(self.isplayermodel)
+                       hitplayer = TRUE; // this impact damaged a player
        }
 
        self = oldself;
@@ -325,6 +332,7 @@ void Ent_DamageInfo(float isNew)
        
        // TODO spawn particle effects and sounds based on w_deathtype
        if(!DEATH_ISSPECIAL(w_deathtype))
+       if not(hitplayer && !rad) // don't show ground impacts for hitscan weapons if a player was hit
        {
                float hitwep;
 
index 04f3020cb1e4ff325e63461a4e406940ab8d2465..27e0a0dc12cad21aa76e9c1337b5ca01dd46dfef 100644 (file)
@@ -432,7 +432,8 @@ float GetAmmoTypeForWep(float i)
 void HUD_Weapons(void)
 {
        // declarations
-       float weapons_stat = getstati(STAT_WEAPONS);
+       WEPSET_DECLARE_A(weapons_stat);
+       WEPSET_COPY_AS(weapons_stat);
        float i, f, a, j, factor;
        float screen_ar, center_x, center_y;
        float weapon_count, weapon_id, weapon_alpha;
@@ -519,9 +520,9 @@ void HUD_Weapons(void)
        {
                if(autocvar__hud_configure)
                {
-                       if (weapons_stat == 0) // create some fake weapons anyway
-                               for(i = 0; i <= WEP_LAST-WEP_FIRST; i += floor((WEP_LAST-WEP_FIRST)/5))
-                                       weapons_stat |= power2of(i);
+                       if (WEPSET_EMPTY_A(weapons_stat))
+                               for(i = WEP_FIRST; i <= WEP_LAST; i += floor((WEP_LAST-WEP_FIRST)/5))
+                                       WEPSET_OR_AW(weapons_stat, i);
 
                        if(menu_enabled != 2)
                                HUD_Panel_DrawBg(1); // also draw the bg of the entire panel
@@ -529,7 +530,7 @@ void HUD_Weapons(void)
 
                // do we own this weapon?
                for(i = 0; i <= WEP_LAST-WEP_FIRST; ++i)
-                       if(weapons_stat & weaponorder[i].weapons)
+                       if(WEPSET_CONTAINS_AW(weapons_stat, weaponorder[i].weapon))
                                ++weapon_count;
 
                // add it anyway if weaponcomplain is shown
@@ -662,7 +663,7 @@ void HUD_Weapons(void)
        if(autocvar_hud_panel_weapons_accuracy && acc_levels)
        {
                show_accuracy = true;
-               if (acc_col_x[0] == -1)
+               if (acc_col[0] == '-1 0 0')
                        for (i = 0; i < acc_levels; ++i)
                                acc_col[i] = stov(cvar_string(strcat("accuracy_color", ftos(i))));
        }
@@ -678,7 +679,7 @@ void HUD_Weapons(void)
 
                // skip this weapon if we don't own it (and onlyowned is enabled)-- or if weapons_complainbubble is showing for this weapon
                if (autocvar_hud_panel_weapons_onlyowned
-                       && !((weapons_stat & self.weapons
+                       && !(WEPSET_CONTAINS_AW(weapons_stat, self.weapon
                        || (self.weapon == complain_weapon 
                                && time - complain_weapon_time < when + fadetime 
                                && autocvar_hud_panel_weapons_complainbubble)))
@@ -714,7 +715,7 @@ void HUD_Weapons(void)
                }
 
                // drawing all the weapon items
-               if(weapons_stat & self.weapons)
+               if(WEPSET_CONTAINS_AW(weapons_stat, self.weapon))
                {
                        // draw the weapon image
                        drawpic_aspect_skin(weapon_pos, strcat("weapon", self.netname), weapon_size, '1 1 1', weapon_alpha, DRAWFLAG_NORMAL);
@@ -727,7 +728,7 @@ void HUD_Weapons(void)
                                        break;
 
                                case 2: // bind
-                                       drawstring(weapon_pos, getcommandkey(ftos(weapon_id), strcat("impulse ", ftos(weapon_id))), '1 1 0' * 0.5 * weapon_size_y, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
+                                       drawstring(weapon_pos, getcommandkey(ftos(weapon_id), strcat("weapon_group_", ftos(weapon_id))), '1 1 0' * 0.5 * weapon_size_y, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
                                        break;
 
                                case 3: // weapon name
@@ -3995,10 +3996,17 @@ void HUD_DrawPressedKeys(void)
        }
 
        vector keysize;
-       keysize = eX * mySize_x * (1/3) + eY * mySize_y * 0.5;
+       keysize = eX * mySize_x * (1/3.0) + eY * mySize_y * (1/(3.0 - !autocvar_hud_panel_pressedkeys_attack));
        float pressedkeys;
        pressedkeys = getstatf(STAT_PRESSED_KEYS);
 
+       if(autocvar_hud_panel_pressedkeys_attack)
+       {
+               drawpic_aspect_skin(pos + eX * keysize_x * 0.5, ((pressedkeys & KEY_ATCK) ? "key_atck_inv.tga" : "key_atck.tga"), keysize, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
+               drawpic_aspect_skin(pos + eX * keysize_x * 1.5, ((pressedkeys & KEY_ATCK2) ? "key_atck_inv.tga" : "key_atck.tga"), keysize, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
+               pos_y += keysize_y;
+       }
+
        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 * 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);
@@ -4366,6 +4374,16 @@ void HUD_Physics(void)
                panel_size -= '2 2 0' * panel_bg_padding;
        }
 
+       float acceleration_progressbar_scale;
+       if(autocvar_hud_panel_physics_progressbar && autocvar_hud_panel_physics_acceleration_progressbar_scale > 1)
+               acceleration_progressbar_scale = autocvar_hud_panel_physics_acceleration_progressbar_scale;
+
+       float text_scale;
+       if (autocvar_hud_panel_physics_text_scale <= 0)
+               text_scale = 1;
+       else
+               text_scale = min(autocvar_hud_panel_physics_text_scale, 1);
+
        //compute speed
        float speed, conversion_factor;
        string unit;
@@ -4430,7 +4448,7 @@ void HUD_Physics(void)
        //compute layout
        float panel_ar = panel_size_x/panel_size_y;
        vector speed_offset, acceleration_offset;
-       if (panel_ar >= 5)
+       if (panel_ar >= 5 && !acceleration_progressbar_scale)
        {
                panel_size_x *= 0.5;
                if (autocvar_hud_panel_physics_flip)
@@ -4461,7 +4479,7 @@ void HUD_Physics(void)
                speed_baralign = (autocvar_hud_panel_physics_baralign == 2);
                acceleration_baralign = (autocvar_hud_panel_physics_baralign == 3);
        }
-       if (autocvar_hud_panel_physics_acceleration_mode == 0)
+       if (autocvar_hud_panel_physics_acceleration_progressbar_mode == 0)
                acceleration_baralign = 3; //override hud_panel_physics_baralign value for acceleration
 
        //draw speed
@@ -4475,11 +4493,12 @@ void HUD_Physics(void)
        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;
+               tmp_size_y = panel_size_y * text_scale;
                if (speed_baralign)
                        tmp_offset_x = panel_size_x - tmp_size_x;
                //else
                        //tmp_offset_x = 0;
+               tmp_offset_y = (panel_size_y - tmp_size_y) / 2;
                drawstring_aspect(panel_pos + speed_offset + tmp_offset, ftos(speed), tmp_size, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
 
                //draw speed unit
@@ -4491,7 +4510,8 @@ void HUD_Physics(void)
                {
                        //tmp_offset_y = 0;
                        tmp_size_x = panel_size_x * (1 - 0.75);
-                       tmp_size_y = panel_size_y * 0.4;
+                       tmp_size_y = panel_size_y * 0.4 * text_scale;
+                       tmp_offset_y = (panel_size_y * 0.4 - tmp_size_y) / 2;
                        drawstring_aspect(panel_pos + speed_offset + tmp_offset, unit, tmp_size, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
                }
        }
@@ -4552,7 +4572,8 @@ void HUD_Physics(void)
                        //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;
+                       tmp_size_y = (panel_size_y - tmp_offset_y) * text_scale;
+                       tmp_offset_y += (panel_size_y - tmp_offset_y - tmp_size_y) / 2;
                        drawstring_aspect(panel_pos + speed_offset + tmp_offset, ftos(top_speed), tmp_size, '1 0 0', f * panel_fg_alpha, DRAWFLAG_NORMAL);
                }
                else
@@ -4567,10 +4588,37 @@ void HUD_Physics(void)
                        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);
+
+               f = acceleration/autocvar_hud_panel_physics_acceleration_max;
+               if (autocvar_hud_panel_physics_acceleration_progressbar_nonlinear)
+                       f = sqrt(f);
+
+               if (acceleration_progressbar_scale) // allow progressbar to go out of panel bounds
+               {
+                       tmp_size = acceleration_progressbar_scale * panel_size_x * eX + panel_size_y * eY;
+
+                       if (acceleration_baralign == 1)
+                               tmp_offset_x = panel_size_x - tmp_size_x;
+                       else if (acceleration_baralign == 2 || acceleration_baralign == 3)
+                               tmp_offset_x = (panel_size_x - tmp_size_x) / 2;
+                       else
+                               tmp_offset_x = 0;
+                       tmp_offset_y = 0;
+               }
+               else
+               {
+                       tmp_size = panel_size;
+                       tmp_offset = '0 0 0';
+               }
+
+               HUD_Panel_DrawProgressBar(panel_pos + acceleration_offset + tmp_offset, tmp_size, "accelbar", f, 0, acceleration_baralign, progressbar_color, autocvar_hud_progressbar_alpha * panel_fg_alpha, DRAWFLAG_NORMAL);
        }
+       tmp_size_x = panel_size_x;
+       tmp_size_y = panel_size_y * text_scale;
+       tmp_offset_x = 0;
+       tmp_offset_y = (panel_size_y - tmp_size_y) / 2;
        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);
+               drawstring_aspect(panel_pos + acceleration_offset + tmp_offset, strcat(ftos_decimals(acceleration, 2), "g"), tmp_size, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
 }
 
 // CenterPrint (#16)
index 15b924dd9cb9f6eae222bad1524642f001f52003..0f990c69410d2646ccb0f8dca6a2281d6f46e3be 100644 (file)
@@ -138,6 +138,7 @@ void HUD_Panel_ExportCfg(string cfgname)
                                        HUD_Write_PanelCvar_q("_dom_layout");
                                        break;
                                case HUD_PANEL_PRESSEDKEYS:
+                                       HUD_Write_PanelCvar_q("_attack");
                                        HUD_Write_PanelCvar_q("_aspect");
                                        break;
                                case HUD_PANEL_ENGINEINFO:
@@ -159,8 +160,11 @@ void HUD_Panel_ExportCfg(string cfgname)
                                        HUD_Write_PanelCvar_q("_flip");
                                        HUD_Write_PanelCvar_q("_baralign");
                                        HUD_Write_PanelCvar_q("_progressbar");
-                                       HUD_Write_PanelCvar_q("_acceleration_mode");
+                                       HUD_Write_PanelCvar_q("_progressbar_acceleration_mode");
+                                       HUD_Write_PanelCvar_q("_progressbar_acceleration_scale");
+                                       HUD_Write_PanelCvar_q("_progressbar_acceleration_nonlinear");
                                        HUD_Write_PanelCvar_q("_text");
+                                       HUD_Write_PanelCvar_q("_text_scale");
                                        break;
                                case HUD_PANEL_CENTERPRINT:
                                        HUD_Write_PanelCvar_q("_align");
index 6e4e2dd87c37789c78f045aa9fb7836d94ee04b1..070096fbf4d6db912bb50d7f9c88f0eaa4e8de9c 100644 (file)
@@ -606,3 +606,24 @@ float getplayerisdead(float pl)
        
        return FALSE;
 }
+
+void URI_Get_Callback(float id, float status, string data)
+{
+       if(url_URI_Get_Callback(id, status, data))
+       {
+               // handled
+       }
+       else if (id == URI_GET_DISCARD)
+       {
+               // discard
+       }
+       else if (id >= URI_GET_CURL && id <= URI_GET_CURL_END)
+       {
+               // sv_cmd curl
+               Curl_URI_Get_Callback(id, status, data);
+       }
+       else
+       {
+               print(sprintf(_("Received HTTP request data for an invalid id %d.\n"), id));
+       }
+}
index 972efb6a0ae5df9cbf5d777507a3bd6af53a980e..a0b4826a6fd425ff71bd5354484e633dc274d811 100644 (file)
@@ -22,7 +22,7 @@ Defs.qc
 ../common/command/rpn.qh
 ../common/command/generic.qh
 ../common/command/shared_defs.qh
-
+../common/urllib.qh
 command/cl_cmd.qh
 
 autocvars.qh
@@ -53,6 +53,7 @@ projectile.qh
 sortlist.qc
 miscfunctions.qc
 teamplay.qc
+../server/t_items.qc
 
 teamradar.qc
 hud_config.qc
@@ -60,6 +61,7 @@ hud.qc
 scoreboard.qc
 mapvoting.qc
 csqcmodel_hooks.qc
+../common/net_notice.qc
 
 rubble.qc
 hook.qc
@@ -99,7 +101,7 @@ noise.qc
 ../common/items.qc
 ../server/w_all.qc
 ../common/explosion_equation.qc
-
+../common/urllib.qc
 command/cl_cmd.qc
 
 ../warpzonelib/anglestransform.qc
index 05c8df88cfc68f767c1eb268bab64044dc9ef4fa..935a0277a85abdf98ce2f4d24bbbeb002eedf76e 100644 (file)
@@ -321,7 +321,7 @@ void Cmd_HUD_SetFields(float argc)
                else if(argv(2) == "all")
                {
                        string s;
-                       s = "ping pl color name |";
+                       s = "ping pl name |";
                        for(i = 0; i < MAX_SCORE; ++i)
                        {
                                if(i != ps_primary)
@@ -985,14 +985,14 @@ vector HUD_DrawScoreboardAccuracyStats(vector pos, vector rgb, vector bg_size)
 
        if (!acc_levels)
                rgb = '1 1 1';
-       else if (acc_col_x[0] == -1)
+       else if (acc_col[0] == '-1 0 0')
                for (i = 0; i < acc_levels; ++i)
                        acc_col[i] = stov(cvar_string(strcat("accuracy_color", ftos(i))));
 
        for(i = WEP_FIRST; i <= WEP_LAST; ++i)
        {
                self = get_weaponinfo(i);
-               if not(self.weapons)
+               if not(self.weapon)
                        continue;
                if ((i == WEP_NEX && g_minstagib) || i == WEP_PORTO || (i == WEP_MINSTANEX && !g_minstagib) || i == WEP_TUBA) // skip port-o-launch, nex || minstanex and tuba
                        continue;
index c2bff62c89172c3a0a203a801694182235b1da0a..5309c555e6085050b6a37b36509cf010964c2deb 100644 (file)
@@ -36,7 +36,7 @@ void Draw_ShowNames(entity ent)
                else
                {
                        traceline(view_origin, ent.origin, MOVE_NORMAL, ent);
-                       if(trace_fraction < 1 && trace_networkentity != ent.sv_entnum)
+                       if(trace_fraction < 1 && (trace_networkentity != ent.sv_entnum && trace_ent.entnum != ent.sv_entnum))
                                hit = 0;
                        else
                                hit = 1;
index c4573296a6bb0af9f35dedf39ae177855fc847bb..77cb2536eccad2d9e800b2f58695f049b0f5c81b 100644 (file)
@@ -106,6 +106,7 @@ void Net_TargetMusic()
                        if(!music_disabled)
                        {
                                e.state = 2;
+                               cvar_settemp("music_playlist_index", "-1"); // don't use playlists
                                localcmd("cd stop\n"); // just in case
                                music_disabled = 1;
                        }
index 2b9ec0297b2ef63411d210cc8a8597bc8438691f..d7abeb0919de42e95d278942f363cb9009336b96 100644 (file)
@@ -235,36 +235,46 @@ void turret_draw2d()
         return; 
 
        float dist = vlen(self.origin - view_origin);
+    float t = (GetPlayerColor(player_localnum) + 1);   
+
        vector o;
-       /*
-       // TODO: Vehicle tactical hud
-       o = project_3d_to_2d(self.origin + '0 0 32');
-       if(o_z < 0 
-       || o_x < (vid_conwidth * waypointsprite_edgeoffset_left) 
-       || o_y < (vid_conheight * waypointsprite_edgeoffset_top) 
-       || o_x > (vid_conwidth - (vid_conwidth * waypointsprite_edgeoffset_right))  
-       || o_y > (vid_conheight - (vid_conheight * waypointsprite_edgeoffset_bottom)))
-           return; // Dont draw wp's for turrets out of view
-    o_z = 0;
-    if(hud != HUD_NORMAL)
-    {        
-        switch(hud)
-        {
-            case HUD_SPIDERBOT:
-            case HUD_WAKIZASHI:
-            case HUD_RAPTOR:
-                vector pz = drawgetimagesize("gfx/vehicles/axh-bracket.tga") * 0.25;
-                drawpic(o - pz * 0.5 , "gfx/vehicles/axh-bracket.tga", pz , '1 1 1', 0.75, DRAWFLAG_NORMAL);
-                break;
+       string txt;
+       
+       if(autocvar_cl_vehicles_hud_tactical)
+       if(dist < 10240 && t != self.team)
+       {
+        // TODO: Vehicle tactical hud
+        o = project_3d_to_2d(self.origin + '0 0 32');
+        if(o_z < 0 
+        || o_x < (vid_conwidth * waypointsprite_edgeoffset_left) 
+        || o_y < (vid_conheight * waypointsprite_edgeoffset_top) 
+        || o_x > (vid_conwidth - (vid_conwidth * waypointsprite_edgeoffset_right))  
+        || o_y > (vid_conheight - (vid_conheight * waypointsprite_edgeoffset_bottom)))
+            return; // Dont draw wp's for turrets out of view
+        o_z = 0;
+        if(hud != HUD_NORMAL)
+        {        
+            switch(hud)
+            {
+                case HUD_SPIDERBOT:
+                case HUD_WAKIZASHI:
+                case HUD_RAPTOR:
+                    if(self.turret_type == TID_EWHEEL || self.turret_type == TID_WALKER)
+                        txt = "gfx/vehicles/vth-mover.tga";
+                    else
+                        txt = "gfx/vehicles/vth-stationary.tga";
+                        
+                    vector pz = drawgetimagesize(txt) * 0.25;
+                    drawpic(o - pz * 0.5, txt, pz , '1 1 1', 0.75, DRAWFLAG_NORMAL);
+                    break;
+            }
         }
-    }
-    */
+       }
     
        if(dist > self.maxdistance)
         return;
 
        string spriteimage = self.netname;
-       float t = (GetPlayerColor(player_localnum) + 1);        
        float a = self.alpha * autocvar_hud_panel_fg_alpha;
        vector rgb = spritelookupcolor(spriteimage, self.teamradar_color);
 
@@ -280,7 +290,7 @@ void turret_draw2d()
                print(sprintf("WARNING: sprite of name %s has no color, using pink so you notice it\n", spriteimage)); 
        }
 
-       string txt = self.netname;
+       txt = self.netname;
        if(autocvar_g_waypointsprite_spam && waypointsprite_count >= autocvar_g_waypointsprite_spam)
                txt = _("Spam");
        else
@@ -540,37 +550,38 @@ entity turret_gibtoss(string _model, vector _from, vector _to, vector _cmod, flo
 
 void turret_die()
 {    
-    entity headgib;
     
     sound (self, CH_SHOTS, "weapons/rocket_impact.wav", VOL_BASE, ATTN_NORM);
     pointparticles(particleeffectnum("rocket_explode"), self.origin, '0 0 0', 1);
     turret_tid2info(self.turret_type);
-    
-    // Base
-    if(self.turret_type == TID_EWHEEL)
-        turret_gibtoss(tid2info_base, self.origin + '0 0 18', self.velocity + '0 0 400' + '0.1 0.1 1' * (random() * 400), '-1 -1 -1', TRUE);
-    else if (self.turret_type == TID_WALKER)
-        turret_gibtoss(tid2info_base, self.origin + '0 0 18', self.velocity + '0 0 300' + '0.1 0.1 1' * (random() * 200), '-1 -1 -1', TRUE);
-    else if (self.turret_type == TID_TESLA)
-        turret_gibtoss(tid2info_base, self.origin + '0 0 18', '0 0 200', '-1 -1 -1', FALSE);
-    else
-    {        
-        if (random() > 0.5)
-        {            
-            turret_gibtoss("models/turrets/base-gib2.md3", self.origin + '0 0 8', '0 0 50' + randomvec() * 150, '0 0 0', FALSE);
-            turret_gibtoss("models/turrets/base-gib3.md3", self.origin + '0 0 8', '0 0 50' + randomvec() * 150, '0 0 0', FALSE);
-            turret_gibtoss("models/turrets/base-gib4.md3", self.origin + '0 0 8', '0 0 50' + randomvec() * 150, '0 0 0', FALSE);
-        }
+    if (!autocvar_cl_nogibs)
+    {
+        // Base
+        if(self.turret_type == TID_EWHEEL)
+            turret_gibtoss(tid2info_base, self.origin + '0 0 18', self.velocity + '0 0 400' + '0.1 0.1 1' * (random() * 400), '-1 -1 -1', TRUE);
+        else if (self.turret_type == TID_WALKER)
+            turret_gibtoss(tid2info_base, self.origin + '0 0 18', self.velocity + '0 0 300' + '0.1 0.1 1' * (random() * 200), '-1 -1 -1', TRUE);
+        else if (self.turret_type == TID_TESLA)
+            turret_gibtoss(tid2info_base, self.origin + '0 0 18', '0 0 200', '-1 -1 -1', FALSE);
         else
-            turret_gibtoss("models/turrets/base-gib1.md3", self.origin + '0 0 8', '0 0 0', '0 0 0', TRUE);
-
-        headgib = turret_gibtoss(tid2info_head, self.origin + '0 0 32', '0 0 200' + randomvec() * 200, '-1 -1 -1', TRUE);
-        if(headgib)
-        {
-            headgib.angles = headgib.move_angles = self.tur_head.angles;
-            headgib.avelocity = headgib.move_avelocity = self.tur_head.move_avelocity + randomvec() * 45;
-            headgib.avelocity_y = headgib.move_avelocity_y = headgib.move_avelocity_y * 5;
-            headgib.gravity = 0.5;        
+        {        
+            if (random() > 0.5)
+            {            
+                turret_gibtoss("models/turrets/base-gib2.md3", self.origin + '0 0 8', '0 0 50' + randomvec() * 150, '0 0 0', FALSE);
+                turret_gibtoss("models/turrets/base-gib3.md3", self.origin + '0 0 8', '0 0 50' + randomvec() * 150, '0 0 0', FALSE);
+                turret_gibtoss("models/turrets/base-gib4.md3", self.origin + '0 0 8', '0 0 50' + randomvec() * 150, '0 0 0', FALSE);
+            }
+            else
+                turret_gibtoss("models/turrets/base-gib1.md3", self.origin + '0 0 8', '0 0 0', '0 0 0', TRUE);
+
+            entity headgib = turret_gibtoss(tid2info_head, self.origin + '0 0 32', '0 0 200' + randomvec() * 200, '-1 -1 -1', TRUE);
+            if(headgib)
+            {
+                headgib.angles = headgib.move_angles = self.tur_head.angles;
+                headgib.avelocity = headgib.move_avelocity = self.tur_head.move_avelocity + randomvec() * 45;
+                headgib.avelocity_y = headgib.move_avelocity_y = headgib.move_avelocity_y * 5;
+                headgib.gravity = 0.5;        
+            }
         }
     }
     
index ccb9cff58363374f82761aa58899984b800b86f8..6081f5a66efdd6ea1e23d947adeb1f3c0a953609 100644 (file)
@@ -661,11 +661,13 @@ void CSQC_WAKIZASHI_HUD()
 void Vehicles_Precache()
 {
 // fixme: HAAAAKKKZZZ!!!!!!!!!!!! (this belongs as a setting in default.cfg)
-    autocvar_cl_vehicles_hudscale = 0.5;
-    autocvar_cl_vehicles_hudalpha = 0.75;
-
+    if(!autocvar_cl_vehicles_hudscale )
+        autocvar_cl_vehicles_hudscale = 0.5;
+    
+    if(!autocvar_cl_vehicles_hudalpha)
+        autocvar_cl_vehicles_hudalpha = 0.75;
 
-       precache_model("models/vehicles/wakizashi.dpm");
+       //precache_model("models/vehicles/wakizashi.dpm");
 
        precache_model("models/vehicles/bomblet.md3");
        precache_model("models/vehicles/clusterbomb.md3");
index 0a0bfa9ec143208ed3f2f286f6cf776f181fbb12..807b260ab2131eb57627aa564505898fdf9a50da 100644 (file)
@@ -7,7 +7,6 @@
 void Ent_Wall_Draw()
 {
        float f;
-       float d;
        var .vector fld;
 
        if(self.bgmscriptangular)
@@ -17,25 +16,26 @@ void Ent_Wall_Draw()
 
        if(self.lodmodelindex1)
        {
-               d = autocvar_loddebug;
-               if(d > 0)
+               if(autocvar_cl_modeldetailreduction <= 0)
                {
-                       if(d == 1)
-                               self.modelindex = self.lodmodelindex0;
-                       else if(d == 2 || !self.lodmodelindex2)
-                               self.modelindex = self.lodmodelindex1;
-                       else // if(d == 3)
+                       if(self.lodmodelindex2 && autocvar_cl_modeldetailreduction <= -2)
                                self.modelindex = self.lodmodelindex2;
+                       else if(autocvar_cl_modeldetailreduction <= -1)
+                               self.modelindex = self.lodmodelindex1;
+                       else
+                               self.modelindex = self.lodmodelindex0;
                }
                else
                {
-                       d = vlen(NearestPointOnBox(self, view_origin) - view_origin);
-                       if(d < self.loddistance1)
-                               self.modelindex = self.lodmodelindex0;
-                       else if(!self.lodmodelindex2 || d < self.loddistance2)
+                       float distance = vlen(NearestPointOnBox(self, view_origin) - view_origin);
+                       f = (distance * current_viewzoom + 100.0) * autocvar_cl_modeldetailreduction;
+                       f *= 1.0 / bound(0.01, view_quality, 1);
+                       if(self.lodmodelindex2 && f > self.loddistance2)
+                               self.modelindex = self.lodmodelindex2;
+                       else if(f > self.loddistance1)
                                self.modelindex = self.lodmodelindex1;
                        else
-                               self.modelindex = self.lodmodelindex2;
+                               self.modelindex = self.lodmodelindex0;
                }
        }
 
index 067cd8054de6f311d562bf427190fd806ef1de79..5ab3da67cff47e58a34f3731b1d330d256bb3526 100644 (file)
@@ -38,13 +38,12 @@ float CampaignFile_Load(float offset, float n)
                        {
                                entlen = tokenize(l); // using insane tokenizer for CSV
 
-#define CAMPAIGN_GETARG0                  if(i >= entlen)
-#define CAMPAIGN_GETARG1 CAMPAIGN_GETARG0     error("syntax error in campaign file: line has not enough fields");
-#define CAMPAIGN_GETARG2 CAMPAIGN_GETARG1 a = argv(++i);
-#define CAMPAIGN_GETARG3 CAMPAIGN_GETARG2 if(a == ",")
-#define CAMPAIGN_GETARG4 CAMPAIGN_GETARG3     a = "";
-#define CAMPAIGN_GETARG5 CAMPAIGN_GETARG4 else
-#define CAMPAIGN_GETARG  CAMPAIGN_GETARG5     ++i
+#define CAMPAIGN_GETARG \
+       a = argv(++i); \
+       if(a == ",") \
+               a = ""; \
+       else \
+               ++i
 // What you're seeing here is what people will do when your compiler supports
 // C-style macros but no line continuations.
 
@@ -58,6 +57,10 @@ float CampaignFile_Load(float offset, float n)
                                CAMPAIGN_GETARG; campaign_mutators[campaign_entries] = strzone(a);
                                CAMPAIGN_GETARG; campaign_shortdesc[campaign_entries] = strzone(a);
                                CAMPAIGN_GETARG; campaign_longdesc[campaign_entries] = strzone(strreplace("\\n", "\n", a));
+
+                               if(i > entlen)
+                                       error("syntax error in campaign file: line has not enough fields");
+
                                campaign_entries = campaign_entries + 1;
 
                                if(campaign_entries >= n)                               
index d0cd7a3042cd1e993522c1377ff52864bdbbeaeb..b7b8da0e9f407f64da0bab06bc3dae90c7d4c528 100644 (file)
@@ -1,6 +1,6 @@
 // =========================================================
 //  Generic program common command code, written by Samual
-//  Last updated: December 28th, 2011
+//  Last updated: February 19th, 2012
 // =========================================================
 
 // used by generic commands for better help/usage information
@@ -17,6 +17,33 @@ string GetProgramCommandPrefix(void)
        #endif
 }
 
+// used by curl command
+void Curl_URI_Get_Callback(float id, float status, string data)
+{
+       float i;
+       float do_exec;
+       string do_cvar;
+       i = id - URI_GET_CURL;
+       do_exec = curl_uri_get_exec[i];
+       do_cvar = curl_uri_get_cvar[i];
+       if(status != 0)
+       {
+               print(sprintf(_("error: status is %d\n"), status));
+               if(do_cvar)
+                       strunzone(do_cvar);
+               return;
+       }
+       if(do_exec)
+               localcmd(data);
+       if(do_cvar)
+       {
+               cvar_set(do_cvar, data);
+               strunzone(do_cvar);
+       }
+       if(!do_exec && !do_cvar)
+               print(data);
+}
+
 
 // =======================
 //  Command Sub-Functions
@@ -65,6 +92,85 @@ void GenericCommand_addtolist(float request, float argc)
        }
 }
 
+void GenericCommand_curl(float request, float argc)
+{
+       switch(request)
+       {
+               case CMD_REQUEST_COMMAND:
+               {
+                       float do_exec;
+                       string do_cvar;
+                       float key;
+                       float i, j;
+                       string url;
+                       float buf;
+                       float r;
+
+                       do_exec = FALSE;
+                       do_cvar = string_null;
+                       key = -1;
+
+                       for(i = 1; i+1 < argc; ++i)
+                       {
+                               if(argv(i) == "--cvar" && i+2 < argc)
+                               {
+                                       ++i;
+                                       do_cvar = strzone(argv(i));
+                                       continue;
+                               }
+                               if(argv(i) == "--exec")
+                               {
+                                       do_exec = TRUE;
+                                       continue;
+                               }
+                               if(argv(i) == "--key" && i+2 < argc)
+                               {
+                                       ++i;
+                                       key = stof(argv(i));
+                                       continue;
+                               }
+                               break;
+                       }
+
+                       // now, argv(i) is the URL
+                       // following args may be POST parameters
+                       url = argv(i);
+                       ++i;
+                       buf = buf_create();
+                       j = 0;
+                       for(; i+1 < argc; i += 2)
+                               bufstr_set(buf, ++j, sprintf("%s=%s", uri_escape(argv(i)), uri_escape(argv(i+1))));
+                       if(i < argc)
+                               bufstr_set(buf, ++j, sprintf("submit=%s", uri_escape(argv(i))));
+
+                       if(j == 0) // no args: GET
+                               r = crypto_uri_postbuf(url, URI_GET_CURL + curl_uri_get_pos, string_null, string_null, -1, key);
+                       else // with args: POST
+                               r = crypto_uri_postbuf(url, URI_GET_CURL + curl_uri_get_pos, "application/x-www-form-urlencoded", "&", buf, key);
+
+                       if(r)
+                       {
+                               curl_uri_get_exec[curl_uri_get_pos] = do_exec;
+                               curl_uri_get_cvar[curl_uri_get_pos] = do_cvar;
+                               curl_uri_get_pos = mod(curl_uri_get_pos + 1, URI_GET_CURL_END - URI_GET_CURL + 1);
+                       }
+                       else
+                               print(_("error creating curl handle\n"));
+
+                       buf_del(buf);
+
+                       return;
+               }
+                       
+               default:
+               case CMD_REQUEST_USAGE:
+               {
+                       print(strcat("\nUsage:^3 ", GetProgramCommandPrefix(), " curl [--key N] [--cvar] [--exec] URL [postargs...]"));
+                       return;
+               }
+       }
+}
+
 void GenericCommand_dumpcommands(float request)
 {
        switch(request)
@@ -157,6 +263,7 @@ void GenericCommand_maplist(float request, float argc)
                                        MapInfo_FilterGametype(MapInfo_CurrentGametype(), MapInfo_CurrentFeatures(), MapInfo_RequiredFlags(), MapInfo_ForbiddenFlags(), 0);
                                        argc = tokenizebyseparator(cvar_string("g_maplist"), " ");
                                        
+                                       tmp_string = "";
                                        for(i = 0; i < argc; ++i)
                                                if(MapInfo_CheckMap(argv(i)))
                                                        tmp_string = strcat(tmp_string, " ", argv(i));
@@ -173,6 +280,7 @@ void GenericCommand_maplist(float request, float argc)
                                        {
                                                argc = tokenizebyseparator(cvar_string("g_maplist"), " ");
                                                
+                                               tmp_string = "";
                                                for(i = 0; i < argc; ++i)
                                                        if(argv(i) != argv(2))
                                                                tmp_string = strcat(tmp_string, " ", argv(i));
@@ -243,6 +351,7 @@ void GenericCommand_removefromlist(float request, float argc)
                                
                                argc = tokenizebyseparator(cvar_string(original_cvar), " ");
                                
+                               tmp_string = "";
                                for(i = 0; i < argc; ++i)
                                        if(argv(i) != removal)
                                                tmp_string = strcat(tmp_string, " ", argv(i));
@@ -352,6 +461,7 @@ void GenericCommand_(float request)
 // Do not hard code aliases for these, instead create them in commands.cfg... also: keep in alphabetical order, please ;)
 #define GENERIC_COMMANDS(request,arguments,command) \
        GENERIC_COMMAND("addtolist", GenericCommand_addtolist(request, arguments), "Add a string to a cvar") \
+       GENERIC_COMMAND("curl", GenericCommand_curl(request, arguments), "Queries an URL") \
        GENERIC_COMMAND("dumpcommands", GenericCommand_dumpcommands(request), "Dump all commands on the program to *_cmd_dump.txt") \
        GENERIC_COMMAND("maplist", GenericCommand_maplist(request, arguments), "Automatic control of maplist") \
        GENERIC_COMMAND("nextframe", GenericCommand_nextframe(request, arguments, command), "Execute the given command next frame of this VM") \
index 6fa7d382209bd66f10c5e12e667fb59d941ac80e..be096db17f832162b4b7a235eeaa9c612882af0c 100644 (file)
@@ -15,3 +15,8 @@ string GetProgramCommandPrefix(void);
 #define CMD_Write(s) fputs(fh, s)
 #define CMD_Write_Alias(execute,command,description) CMD_Write(sprintf("alias %-20s \"%-13s %-20s ${* ?}\" // %s\n", command, execute, command, description))
 void GenericCommand_macro_write_aliases(float fh);
+
+void Curl_URI_Get_Callback(float id, float status, string data);
+float curl_uri_get_pos;
+float curl_uri_get_exec[URI_GET_CURL_END - URI_GET_CURL + 1];
+string curl_uri_get_cvar[URI_GET_CURL_END - URI_GET_CURL + 1];
\ No newline at end of file
index cb1a8cc37144eb23c069b6b1294ccb5510073520..d1562aaac4222c1ebf8eedbbfdf60f7d22ffc001 100644 (file)
@@ -51,6 +51,7 @@ void GenericCommand_markup_init()
        markup_from[i] = "&.."; markup_to[i] = "\x9e"; ++i;
        markup_from[i] = "&.)"; markup_to[i] = "\x9f"; ++i;
        markup_from[i] = "&<|"; markup_to[i] = "\xff"; ++i;
+       unused_float = i;
 }
 
 string GenericCommand_markup(string s2)
index d6c624bbb1e6b4bf8d37d89e4cdde5e9a748f038..5cca2db1ce666145fb7f339925daacaf3ce8f756 100644 (file)
@@ -55,9 +55,9 @@ void GenericCommand_rpn(float request, float argc, string command)
        {
                case CMD_REQUEST_COMMAND:
                {
-                       float i, j, f, n, f2, f3, rpnpos;
-                       vector rgb;
-                       string s, s2, c, rpncmd;
+                       float i, j, f, f2, f3, rpnpos;
+                       //vector rgb;
+                       string s, s2, rpncmd;
                        
                        if(!rpn_db)
                        {
@@ -236,9 +236,9 @@ void GenericCommand_rpn(float request, float argc, string command)
                                                        i = stof(db_get(rpn_db, "stack.pointer"));
                                                        db_put(rpn_db, "stack.pointer", ftos(i+1));
                                                        db_put(rpn_db, strcat("stack.", ftos(i)), s);
+                                                       if(!i)
+                                                               db_put(rpn_db, "stack.pos", "0");
                                                }
-                                               if(!i)
-                                                       db_put(rpn_db, "stack.pos", "0");
                                        } else if(rpncmd == "dbpop") {
                                                i = stof(db_get(rpn_db, "stack.pointer"));
                                                if(i)
@@ -556,4 +556,4 @@ void GenericCommand_rpn(float request, float argc, string command)
                        return;
                }
        }
-}
\ No newline at end of file
+}
index e413ad94ae65b0b817f29ce4c6f4bc3d9987767e..13d31155cd0993a6b3461463932e84c08e5411c5 100644 (file)
@@ -46,6 +46,7 @@ const float TE_CSQC_NEX_SCOPE = 116;
 const float TE_CSQC_MINELAYER_MAXMINES = 117;
 const float TE_CSQC_HAGAR_MAXROCKETS = 118;
 const float TE_CSQC_VEHICLESETUP = 119;
+const float TE_CSQC_SVNOTICE = 120;
 
 const float RACE_NET_CHECKPOINT_HIT_QUALIFYING = 0; // byte checkpoint, short time, short recordtime, string recordholder
 const float RACE_NET_CHECKPOINT_CLEAR = 1;
@@ -96,6 +97,7 @@ const float ENT_CLIENT_ACCURACY = 30;
 const float ENT_CLIENT_SHOWNAMES = 31;
 const float ENT_CLIENT_WARPZONE_TELEPORTED = 32;
 const float ENT_CLIENT_MODEL = 33;
+const float ENT_CLIENT_ITEM = 34;
 
 const float ENT_CLIENT_TURRET = 40;
 const float ENT_CLIENT_AUXILIARYXHAIR = 50;
@@ -126,6 +128,8 @@ const float KEY_LEFT                =       4;
 const float KEY_RIGHT          =       8;
 const float KEY_JUMP           =       16;
 const float KEY_CROUCH         =       32;
+const float KEY_ATCK           =       64;
+const float KEY_ATCK2          =       128;
 
 ///////////////////////////
 // cvar constants
@@ -555,12 +559,13 @@ string HUD_PANELNAME_CENTERPRINT  = "centerprint";
 #define SERVERFLAG_TEAMPLAY 2
 #define SERVERFLAG_PLAYERSTATS 4
 
-var vector autocvar_sv_player_maxs = '16 16 45';
-var vector autocvar_sv_player_mins = '-16 -16 -24';
-var vector autocvar_sv_player_viewoffset = '0 0 20';
-var vector autocvar_sv_player_crouch_maxs = '16 16 25';
-var vector autocvar_sv_player_crouch_mins = '-16 -16 -24';
-var vector autocvar_sv_player_crouch_viewoffset = '0 0 20';
+// FIXME/EXPLAINME: why?
+noref var vector autocvar_sv_player_maxs = '16 16 45';
+noref var vector autocvar_sv_player_mins = '-16 -16 -24';
+noref var vector autocvar_sv_player_viewoffset = '0 0 20';
+noref var vector autocvar_sv_player_crouch_maxs = '16 16 25';
+noref var vector autocvar_sv_player_crouch_mins = '-16 -16 -24';
+noref var vector autocvar_sv_player_crouch_viewoffset = '0 0 20';
 noref var vector autocvar_sv_player_headsize = '24 24 12';
 
 #define PL_VIEW_OFS autocvar_sv_player_viewoffset
@@ -586,3 +591,13 @@ noref var vector autocvar_sv_player_headsize = '24 24 12';
 #define SPAWN_PRIO_NEAR_TEAMMATE_SAMETEAM 100
 #define SPAWN_PRIO_RACE_PREVIOUS_SPAWN     50
 #define SPAWN_PRIO_GOOD_DISTANCE           10
+
+// URI handles
+#define URI_GET_DISCARD              0
+#define URI_GET_IPBAN                1
+#define URI_GET_IPBAN_END           16
+#define URI_GET_CURL                17
+#define URI_GET_CURL_END            32
+#define URI_GET_UPDATENOTIFICATION  33
+#define URI_GET_URLLIB             128
+#define URI_GET_URLLIB_END         191
index bdeab298ebe9172fb6239359afef528a3342ef24..c07bbeebc37a99708ea84ecb4e3a1903b0a43fcb 100644 (file)
        CSQCMODEL_PROPERTY_SCALED(8, float, ReadByte, WriteByte, alpha, 254, -1, 254) \
        CSQCMODEL_PROPERTY(16, float, ReadByte, WriteByte, skin) \
        CSQCMODEL_PROPERTY(32, float, ReadApproxPastTime, WriteApproxPastTime, death_time) \
+       CSQCMODEL_PROPERTY(64, float, ReadByte, WriteByte, solid) \
        CSQCMODEL_IF(!isplayer) \
-               CSQCMODEL_PROPERTY(64, TAG_ENTITY_TYPE, ReadShort, WriteEntity, TAG_ENTITY_NAME) \
-               CSQCMODEL_PROPERTY_SCALED(128, float, ReadByte, WriteByte, glowmod_x, 255, 0, 255) \
-               CSQCMODEL_PROPERTY_SCALED(128, float, ReadByte, WriteByte, glowmod_y, 255, 0, 255) \
-               CSQCMODEL_PROPERTY_SCALED(128, float, ReadByte, WriteByte, glowmod_z, 255, 0, 255) \
+               CSQCMODEL_PROPERTY(128, TAG_ENTITY_TYPE, ReadShort, WriteEntity, TAG_ENTITY_NAME) \
+               CSQCMODEL_PROPERTY_SCALED(256, float, ReadByte, WriteByte, glowmod_x, 255, 0, 255) \
+               CSQCMODEL_PROPERTY_SCALED(256, float, ReadByte, WriteByte, glowmod_y, 255, 0, 255) \
+               CSQCMODEL_PROPERTY_SCALED(256, float, ReadByte, WriteByte, glowmod_z, 255, 0, 255) \
        CSQCMODEL_ENDIF
 // TODO get rid of colormod/glowmod here, find good solution for nex charge glowmod hack; also get rid of some useless properties on non-players that only exist for CopyBody
 
index 3ddf8099f51c0736471859939a61b79b97e21df6..1282d428af96e139049298a6bd2630cf9437d5e8 100644 (file)
@@ -8,7 +8,7 @@ void register_weapon(float id, float(float) func, float ammotype, float i, float
        weapon_info[id - 1] = e = spawn();
        e.classname = "weapon_info";
        e.weapon = id;
-       e.weapons = power2of(id - WEP_FIRST);
+       WEPSET_COPY_EW(e, id);
        e.netname = shortname;
        e.message = wname;
        e.items = ammotype;
@@ -41,7 +41,7 @@ void register_weapons_done()
        dummy_weapon_info = spawn();
        dummy_weapon_info.classname = "weapon_info";
        dummy_weapon_info.weapon = 0; // you can recognize dummies by this
-       dummy_weapon_info.weapons = 0; // you can recognize dummies by this too
+       WEPSET_CLEAR_E(dummy_weapon_info);
        dummy_weapon_info.netname = "";
        dummy_weapon_info.message = "@!#%'n Tuba";
        dummy_weapon_info.items = 0;
@@ -154,3 +154,21 @@ string W_FixWeaponOrder_ForceComplete(string order)
        return W_FixWeaponOrder(order, 1);
 }
 
+void W_RandomWeapons(entity e, float n)
+{
+       float i, j;
+       WEPSET_DECLARE_A(remaining);
+       WEPSET_DECLARE_A(result);
+       WEPSET_COPY_AE(remaining, e);
+       WEPSET_CLEAR_A(result);
+       for(i = 0; i < n; ++i)
+       {
+               RandomSelection_Init();
+               for(j = WEP_FIRST; j <= WEP_LAST; ++j)
+                       if(WEPSET_CONTAINS_AW(remaining, j))
+                               RandomSelection_Add(world, j, string_null, 1, 1);
+               WEPSET_OR_AW(result, RandomSelection_chosen_float);
+               WEPSET_ANDNOT_AW(remaining, RandomSelection_chosen_float);
+       }
+       WEPSET_COPY_EA(e, result);
+}
index 07a7625345dcddeb80745a044bebbaf9b57536a1..33fa21f7eeef5fb96bb0986971ce5223f27d0979 100644 (file)
@@ -2,15 +2,16 @@ float BOT_PICKUP_RATING_LOW   = 2500;
 float BOT_PICKUP_RATING_MID    = 5000;
 float BOT_PICKUP_RATING_HIGH   = 10000;
 
-float WEP_TYPE_OTHER       =  0x00;    // e.g: Hook, Port-o-launch, etc
-float WEP_TYPE_SPLASH      =  0x01;
-float WEP_TYPE_HITSCAN     =  0x02;
-float WEP_TYPEMASK          =  0x0F;
-float WEP_FLAG_CANCLIMB     =  0x10;
-float WEP_FLAG_NORMAL       =  0x20;
-float WEP_FLAG_HIDDEN       =  0x40;
-float WEP_FLAG_RELOADABLE   =  0x80;
-float WEP_FLAG_SUPERWEAPON  = 0x100;
+float WEP_TYPE_OTHER         =  0x00; // not for damaging people
+float WEP_TYPE_SPLASH        =  0x01; // splash damage
+float WEP_TYPE_HITSCAN       =  0x02; // hitscan
+float WEP_TYPEMASK            =  0x0F;
+float WEP_FLAG_CANCLIMB       =  0x10; // can be used for movement
+float WEP_FLAG_NORMAL         =  0x20; // in "most weapons" set
+float WEP_FLAG_HIDDEN         =  0x40; // hides from menu
+float WEP_FLAG_RELOADABLE     =  0x80; // can has reload
+float WEP_FLAG_SUPERWEAPON    = 0x100; // powerup timer
+float WEP_FLAG_MUTATORBLOCKED = 0x200; // hides from impulse 99 etc. (mutators are allowed to clear this flag)
 
 float  IT_UNLIMITED_WEAPON_AMMO     = 1;
 // when this bit is set, using a weapon does not reduce ammo. Checkpoints can give this powerup.
@@ -71,7 +72,6 @@ string W_NumberWeaponOrder(string order);
 
 // entity properties of weaponinfo:
 .float weapon; // WEP_...
-.float weapons; // WEPBIT_...
 .string netname; // short name
 .string message; // human readable name
 .float items; // IT_...
@@ -83,37 +83,149 @@ string W_NumberWeaponOrder(string order);
 .float bot_pickupbasevalue; // bot weapon priority
 .string model2; // wpn- sprite name
 ..float ammo_field; // main ammo field
+// also, weaponinfo ents can act as a WEPSET
 
 // dynamic weapon adding
 float w_null(float dummy);
 void register_weapon(float id, float(float) func, float ammotype, float i, float weapontype, float pickupbasevalue, string modelname, string shortname, string wname);
 void register_weapons_done();
 
+#define WEP_FIRST 1
 float WEP_COUNT;
-float WEP_FIRST = 1;
 float WEP_LAST;
-#define WEP_MAXCOUNT 24
-float WEPBIT_ALL;
-float WEPBIT_SUPERWEAPONS;
-#define REGISTER_WEAPON_2(id,bit,func,ammotype,i,weapontype,pickupbasevalue,modelname,shortname,wname) \
+
+#if 1
+# define WEP_MAXCOUNT 24
+// default storage
+.float _WS_weapons;
+# define WEPSET_BIT(a)                  power2of((a) - WEP_FIRST)
+# define WEPSET_DECLARE_A(a)            float _WS_##a
+# define WEPSET_CLEAR_E(e)              ((e)._WS_weapons = 0)
+# define WEPSET_CLEAR_A(a)              (_WS_##a = 0)
+# define WEPSET_EMPTY_E(e)              ((e)._WS_weapons == 0)
+# define WEPSET_EMPTY_A(a)              (_WS_##a == 0)
+# define WEPSET_COPY_AS(a)              (_WS_##a = getstati(STAT_WEAPONS))
+# define WEPSET_ADDSTAT()               addstat(STAT_WEAPONS, AS_INT, _WS_weapons)
+# define WEPSET_WRITE_E(dest,a)         WriteInt24_t(dest, (a)._WS_weapons)
+# define WEPSET_WRITE_A(dest,a)         WriteInt24_t(dest, _WS_##a)
+# define WEPSET_WRITE_W(dest,a)         WriteInt24_t(dest, WEPSET_BIT(a))
+# define WEPSET_READ_E(a)               (a)._WS_weapons = ReadInt24_t()
+# define WEPSET_READ_A(a)               (_WS_##a) = ReadInt24_t()
+# define WEPSET_OP1_EE(a,b,mergeop,x)   ((a)._WS_weapons x (b)._WS_weapons)
+# define WEPSET_OP2_EE(a,b,mergeop,x,y) ((a)._WS_weapons x (b)._WS_weapons y (a)._WS_weapons)
+# define WEPSET_OP1_EA(a,b,mergeop,x)   ((a)._WS_weapons x _WS_##b)
+# define WEPSET_OP2_EA(a,b,mergeop,x,y) ((a)._WS_weapons x _WS_##b y (a)._WS_weapons)
+# define WEPSET_OP1_EW(a,b,mergeop,x)   ((a)._WS_weapons x WEPSET_BIT(b))
+# define WEPSET_OP2_EW(a,b,mergeop,x,y) ((a)._WS_weapons x WEPSET_BIT(b) y (a)._WS_weapons)
+# define WEPSET_OP1_AE(a,b,mergeop,x)   (_WS_##a x (b)._WS_weapons)
+# define WEPSET_OP2_AE(a,b,mergeop,x,y) (_WS_##a x (b)._WS_weapons y _WS_##a)
+# define WEPSET_OP1_AA(a,b,mergeop,x)   (_WS_##a x _WS_##b)
+# define WEPSET_OP2_AA(a,b,mergeop,x,y) (_WS_##a x _WS_##b y _WS_##a)
+# define WEPSET_OP1_AW(a,b,mergeop,x)   (_WS_##a x WEPSET_BIT(b))
+# define WEPSET_OP2_AW(a,b,mergeop,x,y) (_WS_##a x WEPSET_BIT(b) y _WS_##a)
+#else
+# define WEP_MAXCOUNT 48
+# define WEP_FIRST2 25
+.float _WS1_weapons;
+.float _WS2_weapons;
+# define WEPSET_BIT1(a)                 (((a) < WEP_FIRST2) ? power2of((a) - WEP_FIRST) : 0)
+# define WEPSET_BIT2(a)                 (((a) >= WEP_FIRST2) ? power2of((a) - WEP_FIRST2) : 0)
+# define WEPSET_DECLARE_A(a)            float _WS1_##a, _WS2_##a
+# define WEPSET_CLEAR_E(e)              ((e)._WS1_weapons = (e)._WS2_weapons = 0)
+# define WEPSET_CLEAR_A(a)              ((_WS1_##a) = (_WS2_##a) = 0)
+# define WEPSET_EMPTY_E(e)              ((e)._WS1_weapons == 0 && (e)._WS2_weapons == 0)
+# define WEPSET_EMPTY_A(a)              ((_WS1_##a) == 0 && (_WS2_##a) == 0)
+# define WEPSET_COPY_AS(a)              ((_WS1_##a) = getstati(STAT_WEAPONS), (_WS2_##a) = getstati(STAT_WEAPONS2))
+# define WEPSET_ADDSTAT()               addstat(STAT_WEAPONS, AS_INT, _WS1_weapons); addstat(STAT_WEAPONS2, AS_INT, _WS2_weapons)
+# define WEPSET_WRITE_E(dest,a)         WriteInt24_t(dest, (a)._WS1_weapons); WriteInt24_t(dest, (a)._WS2_weapons)
+# define WEPSET_WRITE_A(dest,a)         WriteInt24_t(dest, _WS1_##a); WriteInt24_t(dest, _WS2_##a)
+# define WEPSET_WRITE_W(dest,a)         WriteInt24_t(dest, WEPSET_BIT1(a)); WriteInt24_t(dest, WEPSET_BIT2(a))
+# define WEPSET_READ_E(a)               (a)._WS1_weapons = ReadInt24_t(); (a)._WS2_weapons = ReadInt24_t()
+# define WEPSET_READ_A(a)               (_WS1_##a) = ReadInt24_t(); (_WS2_##a) = ReadInt24_t()
+# define WEPSET_OP1_EE(a,b,mergeop,x)   (((a)._WS1_weapons x (b)._WS1_weapons) mergeop ((a)._WS2_weapons x (b)._WS2_weapons))
+# define WEPSET_OP2_EE(a,b,mergeop,x,y) (((a)._WS1_weapons x (b)._WS1_weapons y (a)._WS1_weapons) mergeop ((a)._WS2_weapons x (b)._WS2_weapons y (a)._WS2_weapons))
+# define WEPSET_OP1_EA(a,b,mergeop,x)   (((a)._WS1_weapons x _WS1_##b) mergeop ((a)._WS2_weapons x _WS2_##b))
+# define WEPSET_OP2_EA(a,b,mergeop,x,y) (((a)._WS1_weapons x _WS1_##b y (a)._WS1_weapons) mergeop ((a)._WS2_weapons x _WS2_##b y (a)._WS2_weapons))
+# define WEPSET_OP1_EW(a,b,mergeop,x)   (((a)._WS1_weapons x WEPSET_BIT1(b)) mergeop ((a)._WS2_weapons x WEPSET_BIT2(b)))
+# define WEPSET_OP2_EW(a,b,mergeop,x,y) (((a)._WS1_weapons x WEPSET_BIT1(b) y (a)._WS1_weapons) mergeop ((a)._WS2_weapons x WEPSET_BIT2(b) y (a)._WS2_weapons))
+# define WEPSET_OP1_AE(a,b,mergeop,x)   ((_WS1_##a x (b)._WS1_weapons) mergeop (_WS2_##a x (b)._WS2_weapons))
+# define WEPSET_OP2_AE(a,b,mergeop,x,y) ((_WS1_##a x (b)._WS1_weapons y _WS1_##a) mergeop (_WS2_##a x (b)._WS2_weapons y _WS2_##a))
+# define WEPSET_OP1_AA(a,b,mergeop,x)   ((_WS1_##a x _WS1_##b) mergeop (_WS2_##a x _WS2_##b))
+# define WEPSET_OP2_AA(a,b,mergeop,x,y) ((_WS1_##a x _WS1_##b y _WS1_##a) mergeop (_WS2_##a x _WS2_##b y _WS2_##a))
+# define WEPSET_OP1_AW(a,b,mergeop,x)   ((_WS1_##a x WEPSET_BIT1(b)) mergeop (_WS2_##a x WEPSET_BIT2(b)))
+# define WEPSET_OP2_AW(a,b,mergeop,x,y) ((_WS1_##a x WEPSET_BIT1(b) y _WS1_##a) mergeop (_WS2_##a x WEPSET_BIT2(b) y _WS2_##a))
+#endif
+
+#define XX ,
+
+#define WEPSET_COPY_EE(a,b)            WEPSET_OP1_EE(a,b,XX,=)
+#define WEPSET_EQ_EE(a,b)              WEPSET_OP1_EE(a,b,&&,==)
+#define WEPSET_OR_EE(a,b)              WEPSET_OP1_EE(a,b,XX,|=)
+#define WEPSET_AND_EE(a,b)             WEPSET_OP2_EE(a,b,XX,=,&)
+#define WEPSET_ANDNOT_EE(a,b)          WEPSET_OP1_EE(a,b,XX,&~=)
+#define WEPSET_CONTAINS_ANY_EE(a,b) !!(WEPSET_OP1_EE(a,b,||,&))
+#define WEPSET_CONTAINS_ALL_EE(a,b)    WEPSET_OP2_EE(b,a,&&,==,&)
+
+#define WEPSET_COPY_EA(a,b)            WEPSET_OP1_EA(a,b,XX,=)
+#define WEPSET_EQ_EA(a,b)              WEPSET_OP1_EA(a,b,&&,==)
+#define WEPSET_OR_EA(a,b)              WEPSET_OP1_EA(a,b,XX,|=)
+#define WEPSET_AND_EA(a,b)             WEPSET_OP2_EA(a,b,XX,=,&)
+#define WEPSET_ANDNOT_EA(a,b)          WEPSET_OP1_EA(a,b,XX,&~=)
+#define WEPSET_CONTAINS_ANY_EA(a,b) !!(WEPSET_OP1_EA(a,b,||,&))
+#define WEPSET_CONTAINS_ALL_EA(a,b)    WEPSET_OP2_EA(b,a,&&,==,&)
+
+#define WEPSET_COPY_EW(a,b)            WEPSET_OP1_EW(a,b,XX,=)
+#define WEPSET_EQ_EW(a,b)              WEPSET_OP1_EW(a,b,&&,==)
+#define WEPSET_OR_EW(a,b)              WEPSET_OP1_EW(a,b,XX,|=)
+#define WEPSET_AND_EW(a,b)             WEPSET_OP2_EW(a,b,XX,=,&)
+#define WEPSET_ANDNOT_EW(a,b)          WEPSET_OP1_EW(a,b,XX,&~=)
+#define WEPSET_CONTAINS_EW(a,b)     !!(WEPSET_OP1_EW(a,b,||,&))
+
+#define WEPSET_COPY_AE(a,b)            WEPSET_OP1_AE(a,b,XX,=)
+#define WEPSET_EQ_AE(a,b)              WEPSET_OP1_AE(a,b,&&,==)
+#define WEPSET_OR_AE(a,b)              WEPSET_OP1_AE(a,b,XX,|=)
+#define WEPSET_AND_AE(a,b)             WEPSET_OP2_AE(a,b,XX,=,&)
+#define WEPSET_ANDNOT_AE(a,b)          WEPSET_OP1_AE(a,b,XX,&~=)
+#define WEPSET_CONTAINS_ANY_AE(a,b) !!(WEPSET_OP1_AE(a,b,||,&))
+#define WEPSET_CONTAINS_ALL_AE(a,b)    WEPSET_OP2_AE(b,a,&&,==,&)
+
+#define WEPSET_COPY_AA(a,b)            WEPSET_OP1_AA(a,b,XX,=)
+#define WEPSET_EQ_AA(a,b)              WEPSET_OP1_AA(a,b,&&,==)
+#define WEPSET_OR_AA(a,b)              WEPSET_OP1_AA(a,b,XX,|=)
+#define WEPSET_AND_AA(a,b)             WEPSET_OP2_AA(a,b,XX,=,&)
+#define WEPSET_ANDNOT_AA(a,b)          WEPSET_OP1_AA(a,b,XX,&~=)
+#define WEPSET_CONTAINS_ANY_AA(a,b) !!(WEPSET_OP1_AA(a,b,||,&))
+#define WEPSET_CONTAINS_ALL_AA(a,b)    WEPSET_OP2_AA(b,a,&&,==,&)
+
+#define WEPSET_COPY_AW(a,b)            WEPSET_OP1_AW(a,b,XX,=)
+#define WEPSET_EQ_AW(a,b)              WEPSET_OP1_AW(a,b,&&,==)
+#define WEPSET_OR_AW(a,b)              WEPSET_OP1_AW(a,b,XX,|=)
+#define WEPSET_AND_AW(a,b)             WEPSET_OP2_AW(a,b,XX,=,&)
+#define WEPSET_ANDNOT_AW(a,b)          WEPSET_OP1_AW(a,b,XX,&~=)
+#define WEPSET_CONTAINS_AW(a,b)     !!(WEPSET_OP1_AW(a,b,||,&))
+
+WEPSET_DECLARE_A(WEPBIT_ALL);
+WEPSET_DECLARE_A(WEPBIT_SUPERWEAPONS);
+// note: the fabs call is just there to hide "if result is constant" warning
+#define REGISTER_WEAPON_2(id,func,ammotype,i,weapontype,pickupbasevalue,modelname,shortname,wname) \
        float id; \
-       float bit; \
        float func(float); \
        void RegisterWeapons_##id() \
        { \
                WEP_LAST = (id = WEP_FIRST + WEP_COUNT); \
-               WEPBIT_ALL |= (bit = power2of(WEP_COUNT)); \
-               WEPBIT_SUPERWEAPONS |= (bit = power2of(WEP_COUNT)) * !!(weapontype & WEP_FLAG_SUPERWEAPON); \
+               WEPSET_OR_AW(WEPBIT_ALL, id); \
+               if(fabs(weapontype & WEP_FLAG_SUPERWEAPON)) \
+                       WEPSET_OR_AW(WEPBIT_SUPERWEAPONS, id); \
                ++WEP_COUNT; \
                register_weapon(id,func,ammotype,i,weapontype,pickupbasevalue,modelname,shortname,wname); \
        } \
        ACCUMULATE_FUNCTION(RegisterWeapons, RegisterWeapons_##id)
 #ifdef MENUQC
 #define REGISTER_WEAPON(id,func,ammotype,i,weapontype,pickupbasevalue,modelname,shortname,wname) \
-       REGISTER_WEAPON_2(WEP_##id,WEPBIT_##id,w_null,ammotype,i,weapontype,pickupbasevalue,modelname,shortname,wname)
+       REGISTER_WEAPON_2(WEP_##id,w_null,ammotype,i,weapontype,pickupbasevalue,modelname,shortname,wname)
 #else
 #define REGISTER_WEAPON(id,func,ammotype,i,weapontype,pickupbasevalue,modelname,shortname,wname) \
-       REGISTER_WEAPON_2(WEP_##id,WEPBIT_##id,func,ammotype,i,weapontype,pickupbasevalue,modelname,shortname,wname)
+       REGISTER_WEAPON_2(WEP_##id,func,ammotype,i,weapontype,pickupbasevalue,modelname,shortname,wname)
 #endif
 
 #include "../server/w_all.qc"
@@ -128,3 +240,5 @@ string W_NameWeaponOrder(string order);
 string W_FixWeaponOrder_BuildImpulseList(string o);
 string W_FixWeaponOrder_AllowIncomplete(string order);
 string W_FixWeaponOrder_ForceComplete(string order);
+
+void W_RandomWeapons(entity e, float n);
index 1b32c9d1d5a076c3825f5ea9900522282f7abd40..05c93865dbcceed7c2606d9cb567b727e3fe8ad7 100644 (file)
@@ -242,6 +242,8 @@ float _MapInfo_Generate(string pFilename) // 0: failure, 1: ok ent, 2: ok bsp
        spawnpoints = 0;
        spawnplaces = 0;
        _MapInfo_Map_worldspawn_music = "";
+       mapMins = '0 0 0';
+       mapMaxs = '0 0 0';
 
        for(;;)
        {
@@ -536,7 +538,7 @@ string _MapInfo_GetDefaultEx(float t)
 {
        entity e;
        for(e = MapInfo_Type_first; e; e = e.enemy)
-               if(t == e.weapons)
+               if(t == e.items)
                        return e.model2;
        return "";
 }
@@ -637,11 +639,29 @@ void _MapInfo_Map_ApplyGametypeEx(string s, float pWantedType, float pThisType)
 float MapInfo_Type_FromString(string t)
 {
        entity e;
+       if(t == "nexball")
+       {
+               print("MapInfo_Type_FromString (probably ", MapInfo_Map_bspname, "): using deprecated name '", t);
+               t = "nb";
+               print("'. Should use '", t, "'.\n");
+       }
+       if(t == "freezetag")
+       {
+               print("MapInfo_Type_FromString (probably ", MapInfo_Map_bspname, "): using deprecated name '", t);
+               t = "ft";
+               print("'. Should use '", t, "'.\n");
+       }
+       if(t == "keepaway")
+       {
+               print("MapInfo_Type_FromString (probably ", MapInfo_Map_bspname, "): using deprecated name '", t);
+               t = "ka";
+               print("'. Should use '", t, "'.\n");
+       }
        if(t == "all")
                return MAPINFO_TYPE_ALL;
        for(e = MapInfo_Type_first; e; e = e.enemy)
                if(t == e.mdl)
-                       return e.weapons;
+                       return e.items;
        return 0;
 }
 
@@ -651,7 +671,7 @@ string MapInfo_Type_ToString(float t)
        if(t == MAPINFO_TYPE_ALL)     
                return "all";
        for(e = MapInfo_Type_first; e; e = e.enemy)
-               if(t == e.weapons)
+               if(t == e.items)
                        return e.mdl;
        return "";
 }
@@ -660,7 +680,7 @@ string MapInfo_Type_ToText(float t)
 {
        entity e;
        for(e = MapInfo_Type_first; e; e = e.enemy)
-               if(t == e.weapons)
+               if(t == e.items)
                        return e.message;
        return _("@!#%'n Tuba Throwing");
 }
@@ -925,7 +945,7 @@ float MapInfo_Get_ByName_NoFallbacks(string pFilename, float pAllowGenerate, flo
                        MapInfo_Map_author = s;
                else if(t == "has")
                {
-                       t = car(s); s = cdr(s);
+                       t = car(s); // s = cdr(s);
                        if     (t == "weapons") MapInfo_Map_supportedFeatures |= MAPINFO_FEATURE_WEAPONS;
                        else if(t == "turrets") MapInfo_Map_supportedFeatures |= MAPINFO_FEATURE_TURRETS;
                        else if(t == "vehicles") MapInfo_Map_supportedFeatures |= MAPINFO_FEATURE_VEHICLES;
@@ -1157,8 +1177,8 @@ float MapInfo_CurrentGametype()
        prev = cvar("gamecfg");
        for(e = MapInfo_Type_first; e; e = e.enemy)
                if(cvar(e.netname))
-                       if(prev != e.weapons)
-                               return e.weapons;
+                       if(prev != e.items)
+                               return e.items;
        if(prev)
                return prev;
        return MAPINFO_TYPE_DEATHMATCH;
@@ -1187,7 +1207,7 @@ void MapInfo_SwitchGameType(float t)
 {
        entity e;
        for(e = MapInfo_Type_first; e; e = e.enemy)
-               cvar_set(e.netname, (t == e.weapons) ? "1" : "0");
+               cvar_set(e.netname, (t == e.items) ? "1" : "0");
 }
 
 void MapInfo_LoadMap(string s, float reinit)
index 4e73886d3c98cd970066fbe4099790a4566e7114..bd67f67a825104abcd3108d8096d501fa8a27762 100644 (file)
@@ -1,9 +1,9 @@
-var float MAPINFO_TYPE_ALL = 0;
+float MAPINFO_TYPE_ALL;
 entity MapInfo_Type_first;
 entity MapInfo_Type_last;
 .entity enemy; // internal next pointer
 
-.float weapons; // game type ID
+.float items; // game type ID
 .string netname; // game type name as in cvar (with g_ prefix)
 .string mdl; // game type short name
 .string message; // human readable name
@@ -17,7 +17,7 @@ entity MapInfo_Type_last;
                MAPINFO_TYPE_##NAME = MAPINFO_TYPE_ALL + 1; \
                MAPINFO_TYPE_ALL |= MAPINFO_TYPE_##NAME; \
                MapInfo_Type##g_name = spawn(); \
-               MapInfo_Type##g_name.weapons = MAPINFO_TYPE_##NAME; \
+               MapInfo_Type##g_name.items = MAPINFO_TYPE_##NAME; \
                MapInfo_Type##g_name.netname = #g_name; \
                MapInfo_Type##g_name.mdl = #sname; \
                MapInfo_Type##g_name.message = hname; \
@@ -72,13 +72,13 @@ REGISTER_GAMETYPE(_("Assault"),as,g_assault,ASSAULT,"timelimit=20")
 REGISTER_GAMETYPE(_("Onslaught"),ons,g_onslaught,ONSLAUGHT,"timelimit=20")
 #define g_onslaught IS_GAMETYPE(ONSLAUGHT)
 
-REGISTER_GAMETYPE(_("Nexball"),nexball,g_nexball,NEXBALL,"timelimit=20 pointlimit=5 leadlimit=0")
+REGISTER_GAMETYPE(_("Nexball"),nb,g_nexball,NEXBALL,"timelimit=20 pointlimit=5 leadlimit=0")
 #define g_nexball IS_GAMETYPE(NEXBALL)
 
-REGISTER_GAMETYPE(_("Freeze Tag"),freezetag,g_freezetag,FREEZETAG,"timelimit=20 pointlimit=10 teams=2 leadlimit=0")
+REGISTER_GAMETYPE(_("Freeze Tag"),ft,g_freezetag,FREEZETAG,"timelimit=20 pointlimit=10 teams=2 leadlimit=0")
 #define g_freezetag IS_GAMETYPE(FREEZETAG)
 
-REGISTER_GAMETYPE(_("Keepaway"),keepaway,g_keepaway,KEEPAWAY,"timelimit=20 pointlimit=30")
+REGISTER_GAMETYPE(_("Keepaway"),ka,g_keepaway,KEEPAWAY,"timelimit=20 pointlimit=30")
 #define g_keepaway IS_GAMETYPE(KEEPAWAY)
 
 float MAPINFO_FEATURE_WEAPONS       = 1; // not defined for minstagib-only maps
diff --git a/qcsrc/common/net_notice.qc b/qcsrc/common/net_notice.qc
new file mode 100644 (file)
index 0000000..869a44b
--- /dev/null
@@ -0,0 +1,117 @@
+#ifdef SVQC
+void sv_notice_join_think()
+{
+    //NextLevel();
+    float argc = tokenizebyseparator(autocvar_sv_join_notices, "|");
+    if(argc > 0)
+    {
+        float i; 
+        for(i = argc - 1; i >= 0; --i)    
+            sv_notice_to(self.owner, argv(i), autocvar_sv_join_notices_time, FALSE);
+    }    
+    remove(self);
+}
+
+void sv_notice_join()
+{
+    // to-do: make sv_join_notices support per-entry times
+    if(!autocvar_sv_join_notices || autocvar_sv_join_notices == "")      
+        return;
+
+    entity n = spawn();
+    n.owner = self;
+    n.think = sv_notice_join_think;
+    n.nextthink = time + 1;    
+}
+
+void sv_notice_to(entity _to, string _notice, float _howlong, float _modal)
+{
+       msg_entity = _to;
+       WriteByte(MSG_ONE, SVC_TEMPENTITY);
+       WriteByte(MSG_ONE, TE_CSQC_SVNOTICE);
+       WriteString(MSG_ONE, _notice);
+       WriteLong(MSG_ONE, _howlong);
+       WriteByte(MSG_ONE, _modal);
+}
+
+void sv_notice_toall(string _notice, float _howlong, float _modal)
+{
+    entity _head;
+    FOR_EACH_REALCLIENT(_head)
+        sv_notice_to(_head, _notice, _howlong, _modal);
+    
+}
+
+#endif // SVQC
+
+#ifdef CSQC
+void SUB_Remove()
+{ remove(self); }
+
+void cl_notice_read()
+{
+    entity _notice;
+    //float _done;
+    //float _modal;
+    _notice = spawn();
+    _notice.classname = "sv_notice";
+    _notice.netname = strzone(ReadString());
+    _notice.alpha = ReadLong() + time;
+    _notice.skin = ReadByte();
+}
+
+float cl_notice_run()
+{
+    entity _notes;
+    string _notice;
+    float m = FALSE;
+    
+    _notes = findchain(classname, "sv_notice");
+    if(!_notes)
+        return FALSE;
+    #define M1 30
+    #define M2 10
+    
+    vector v1, v2, v3;
+    v1 = '1 1 0' * M1;
+    v2_x = vid_conwidth - (2 * M1);
+    v2_y = vid_conheight - (2 * M1);
+    
+    drawfill(v1, v2, '0 0 0', 0.5, DRAWFLAG_NORMAL);
+    v1 = '1 1 0' * (M1 + M2);
+    v2_x = vid_conwidth - (2 * (M1 + M2));
+    v2_y = vid_conheight - (2 * (M1 + M2));
+    drawfill(v1, v2, '0.5 0.5 0.5', 0.5, DRAWFLAG_NORMAL);
+    v3 = v1 + '10 10 0';
+    
+    #define OUT(s,z) drawcolorcodedstring(v3, s, '1 1 0' * z, 1, DRAWFLAG_NORMAL); v3_y += z + 4
+    
+    OUT(_("^1Server notices:"), 32);
+    
+    //drawcolorcodedstring(v1 + '5 5 0', "^1Server notices:", '32 32 0', 1, DRAWFLAG_NORMAL);
+    while(_notes)
+    {
+   
+        _notice = sprintf(_("^7%s (^3%d sec left)"), _notes.netname , rint(_notes.alpha - time));
+        OUT(_notice, 16);
+
+        if(_notes.skin) 
+            m = TRUE;
+        
+        if(_notes.alpha <= time)
+        {
+            _notes.think = SUB_Remove;
+            _notes.nextthink = time;
+        }
+        
+        _notes = _notes.chain;        
+    }
+    
+    #undef OUT
+    #undef M1
+    #undef M2
+    
+    return m;
+}
+
+#endif // CSQC
diff --git a/qcsrc/common/net_notice.qh b/qcsrc/common/net_notice.qh
new file mode 100644 (file)
index 0000000..d94f1d9
--- /dev/null
@@ -0,0 +1,13 @@
+#ifdef CSQC
+void cl_notice_read();
+void sv_notice_to(entity _to, string _notice, float _howlong, float _modal);
+#endif
+
+#ifdef SVQC
+string autocvar_sv_join_notices;
+float  autocvar_sv_join_notices_time;
+
+void sv_notice_to(entity _to, string _notice, float _howlong, float _modal);
+void sv_notice_toall(string _notice, float _howlong, float _modal);
+void sv_notice_join();
+#endif
index 1bc06502734f66719fd81fabb14b17bb7bd14b3e..9a5e0e7da274c8b1043f3f52ec838b03590919ad 100644 (file)
 .url_ready_func url_ready;
 .entity url_ready_pass;
 
+// for multi handles
+.float url_attempt;
+.float url_mode;
+
 entity url_fromid[NUM_URL_ID];
 float autocvar__urllib_nextslot;
 
@@ -345,16 +349,16 @@ void url_multi_ready(entity fh, entity me, float status)
                        remove(me);
                        return;
                }
-               me.cnt += 1;
+               me.url_attempt += 1;
                n = tokenize_console(me.url_url);
-               if(n <= me.cnt)
+               if(n <= me.url_attempt)
                {
                        me.url_ready(fh, me.url_ready_pass, status);
                        strunzone(me.url_url);
                        remove(me);
                        return;
                }
-               url_single_fopen(argv(me.cnt), me.lip, url_multi_ready, me);
+               url_single_fopen(argv(me.url_attempt), me.url_mode, url_multi_ready, me);
                return;
        }
        me.url_ready(fh, me.url_ready_pass, status);
@@ -374,8 +378,8 @@ void url_multi_fopen(string url, float mode, url_ready_func rdy, entity pass)
        me = spawn();
        me.classname = "url_multi";
        me.url_url = strzone(url);
-       me.cnt = 0;
-       me.lip = mode;
+       me.url_attempt = 0;
+       me.url_mode = mode;
        me.url_ready = rdy;
        me.url_ready_pass = pass;
        url_single_fopen(argv(0), mode, url_multi_ready, me);
index f92178b2f6f6a6569b72af048fbba23811c0e69f..8a871c6b3fdebbfefc9945aca37c2c8dccdd7ab3 100644 (file)
@@ -12,7 +12,7 @@ void url_fputs(entity e, string s);
 
 // returns true if handled
 float url_URI_Get_Callback(float id, float status, string data);
-#define MIN_URL_ID 128
-#define NUM_URL_ID 64
+#define MIN_URL_ID URI_GET_URLLIB
+#define NUM_URL_ID (URI_GET_URLLIB_END - URI_GET_URLLIB + 1)
 
 void url_multi_fopen(string url, float mode, url_ready_func rdy, entity pass);
index 5a22d3612d21bcf881ccc880357bf26ffe4a4193..b65193d44ce26e6341b042b09c24c6283cf1da59 100644 (file)
@@ -5,4 +5,7 @@
 //# define WORKAROUND_XON010
 //# define COMPAT_XON010_CHANNELS
 # define COMPAT_XON050_ENGINE
+# define COMPAT_NO_MOD_IS_XONOTIC
+# define COMPAT_XON060_DONTCRASH_CHECKPVS
 #endif
+
index 23354397aacfd044f30d1ea744d64211fc1cd922..6e534ffc19464a92777b956353b926f48ddd578e 100644 (file)
@@ -196,6 +196,9 @@ float median(float a, float b, float c)
 // works for up to 10 decimals!
 string ftos_decimals(float number, float decimals)
 {
+       // inhibit stupid negative zero
+       if(number == 0)
+               number = 0;
        // we have sprintf...
        return sprintf("%.*f", decimals, number);
 }
@@ -856,6 +859,8 @@ float cvar_settemp(string tmp_cvar, string tmp_value)
 {
        float created_saved_value;
        entity e;
+
+       created_saved_value = FALSE;
        
        if not(tmp_cvar || tmp_value)
        {
@@ -909,6 +914,8 @@ float almost_in_bounds(float a, float b, float c)
 {
        float eps;
        eps = (max(a, -a) + max(c, -c)) * 0.001;
+       if(a > c)
+               eps = -eps;
        return b == median(a - eps, b, c + eps);
 }
 
@@ -1573,6 +1580,109 @@ vector solve_quadratic(float a, float b, float c) // ax^2 + bx + c = 0
        return v;
 }
 
+vector solve_shotdirection(vector myorg, vector myvel, vector eorg, vector evel, float spd, float newton_style)
+{
+       vector ret;
+
+       // make origin and speed relative
+       eorg -= myorg;
+       if(newton_style)
+               evel -= myvel;
+
+       // now solve for ret, ret normalized:
+       //   eorg + t * evel == t * ret * spd
+       // or, rather, solve for t:
+       //   |eorg + t * evel| == t * spd
+       //   eorg^2 + t^2 * evel^2 + 2 * t * (eorg * evel) == t^2 * spd^2
+       //   t^2 * (evel^2 - spd^2) + t * (2 * (eorg * evel)) + eorg^2 == 0
+       vector solution = solve_quadratic(evel * evel - spd * spd, 2 * (eorg * evel), eorg * eorg);
+       // p = 2 * (eorg * evel) / (evel * evel - spd * spd)
+       // q = (eorg * eorg) / (evel * evel - spd * spd)
+       if(!solution_z) // no real solution
+       {
+               // happens if D < 0
+               // (eorg * evel)^2 < (evel^2 - spd^2) * eorg^2
+               // (eorg * evel)^2 / eorg^2 < evel^2 - spd^2
+               // spd^2 < ((evel^2 * eorg^2) - (eorg * evel)^2) / eorg^2
+               // spd^2 < evel^2 * (1 - cos^2 angle(evel, eorg))
+               // spd^2 < evel^2 * sin^2 angle(evel, eorg)
+               // spd < |evel| * sin angle(evel, eorg)
+               return '0 0 0';
+       }
+       else if(solution_x > 0)
+       {
+               // both solutions > 0: take the smaller one
+               // happens if p < 0 and q > 0
+               ret = normalize(eorg + solution_x * evel);
+       }
+       else if(solution_y > 0)
+       {
+               // one solution > 0: take the larger one
+               // happens if q < 0 or q == 0 and p < 0
+               ret = normalize(eorg + solution_y * evel);
+       }
+       else
+       {
+               // no solution > 0: reject
+               // happens if p > 0 and q >= 0
+               // 2 * (eorg * evel) / (evel * evel - spd * spd) > 0
+               // (eorg * eorg) / (evel * evel - spd * spd) >= 0
+               //
+               // |evel| >= spd
+               // eorg * evel > 0
+               //
+               // "Enemy is moving away from me at more than spd"
+               return '0 0 0';
+       }
+
+       // NOTE: we always got a solution if spd > |evel|
+
+       if(newton_style == 2)
+               ret = normalize(ret * spd + myvel);
+
+       return ret;
+}
+
+vector get_shotvelocity(vector myvel, vector mydir, float spd, float newton_style, float mi, float ma)
+{
+       if(!newton_style)
+               return spd * mydir;
+
+       if(newton_style == 2)
+       {
+               // true Newtonian projectiles with automatic aim adjustment
+               //
+               // solve: |outspeed * mydir - myvel| = spd
+               // outspeed^2 - 2 * outspeed * (mydir * myvel) + myvel^2 - spd^2 = 0
+               // outspeed = (mydir * myvel) +- sqrt((mydir * myvel)^2 - myvel^2 + spd^2)
+               // PLUS SIGN!
+               // not defined?
+               // then...
+               // myvel^2 - (mydir * myvel)^2 > spd^2
+               // velocity without mydir component > spd
+               // fire at smallest possible spd that works?
+               // |(mydir * myvel) * myvel - myvel| = spd
+
+               vector solution = solve_quadratic(1, -2 * (mydir * myvel), myvel * myvel - spd * spd);
+
+               float outspeed;
+               if(solution_z)
+                       outspeed = solution_y; // the larger one
+               else
+               {
+                       //outspeed = 0; // slowest possible shot
+                       outspeed = solution_x; // the real part (that is, the average!)
+                       //dprint("impossible shot, adjusting\n");
+               }
+
+               outspeed = bound(spd * mi, outspeed, spd * ma);
+               return mydir * outspeed;
+       }
+
+       // real Newtonian
+       return myvel + spd * mydir;
+}
+
 void check_unacceptable_compiler_bugs()
 {
        if(cvar("_allow_unacceptable_compiler_bugs"))
@@ -1820,6 +1930,7 @@ float matchacl(string acl, string str)
        while(acl)
        {
                t = car(acl); acl = cdr(acl);
+
                d = 1;
                if(substring(t, 0, 1) == "-")
                {
@@ -1828,10 +1939,11 @@ float matchacl(string acl, string str)
                }
                else if(substring(t, 0, 1) == "+")
                        t = substring(t, 1, strlen(t) - 1);
+
                if(substring(t, -1, 1) == "*")
                {
                        t = substring(t, 0, strlen(t) - 1);
-                       s = substring(s, 0, strlen(t));
+                       s = substring(str, 0, strlen(t));
                }
                else
                        s = str;
@@ -2252,3 +2364,55 @@ void queue_to_execute_next_frame(string s)
        }
        to_execute_next_frame = strzone(s);
 }
+
+float cubic_speedfunc(float startspeedfactor, float endspeedfactor, float x)
+{
+       return
+               (((     startspeedfactor + endspeedfactor - 2
+               ) * x - 2 * startspeedfactor - endspeedfactor + 3
+               ) * x + startspeedfactor
+               ) * x;
+}
+
+float cubic_speedfunc_is_sane(float startspeedfactor, float endspeedfactor)
+{
+       if(startspeedfactor < 0 || endspeedfactor < 0)
+               return FALSE;
+
+       /*
+       // if this is the case, the possible zeros of the first derivative are outside
+       // 0..1
+       We can calculate this condition as condition 
+       if(se <= 3)
+               return TRUE;
+       */
+
+       // better, see below:
+       if(startspeedfactor <= 3 && endspeedfactor <= 3)
+               return TRUE;
+
+       // if this is the case, the first derivative has no zeros at all
+       float se = startspeedfactor + endspeedfactor;
+       float s_e = startspeedfactor - endspeedfactor;
+       if(3 * (se - 4) * (se - 4) + s_e * s_e <= 12) // an ellipse
+               return TRUE;
+
+       // Now let s <= 3, s <= 3, s+e >= 3 (triangle) then we get se <= 6 (top right corner).
+       // we also get s_e <= 6 - se
+       // 3 * (se - 4)^2 + (6 - se)^2
+       // is quadratic, has value 12 at 3 and 6, and value < 12 in between.
+       // Therefore, above "better" check works!
+
+       return FALSE;
+
+       // known good cases:
+       // (0, [0..3])
+       // (0.5, [0..3.8])
+       // (1, [0..4])
+       // (1.5, [0..3.9])
+       // (2, [0..3.7])
+       // (2.5, [0..3.4])
+       // (3, [0..3])
+       // (3.5, [0.2..2.3])
+       // (4, 1)
+}
index 5685f4db27d42ec177e03e666a6939c2eb8f8489..3ce173bf638e95d705a70042fc6bfae62f4838aa 100644 (file)
@@ -1,6 +1,11 @@
 // a dummy macro that prevents the "hanging ;" warning
 #define ENDS_WITH_CURLY_BRACE
 
+// TODO make ascii art pic of xzibit
+// YO DAWG!
+// I HERD YO LIEK MACROS
+// SO I PUT A MACRO DEFINITION IN YO MACRO DEFINITION
+// SO YO CAN EXPAND MACROS WHILE YO EXPAND MACROS
 #define ACCUMULATE_FUNCTION(func,otherfunc) \
        #ifdef func \
        void __merge__##otherfunc() { func(); otherfunc(); } \
@@ -163,13 +168,18 @@ vector solve_quadratic(float a, float b, float c);
 // z = 1 if a real solution exists, 0 if not
 // if no real solution exists, x contains the real part and y the imaginary part of the complex solutions x+iy and x-iy
 
+vector solve_shotdirection(vector myorg, vector myvel, vector eorg, vector evel, float spd, float newton_style);
+vector get_shotvelocity(vector myvel, vector mydir, float spd, float newton_style, float mi, float ma);
+
 void check_unacceptable_compiler_bugs();
 
 float compressShotOrigin(vector v);
 vector decompressShotOrigin(float f);
 
+#ifdef SVQC
 string rankings_reply, ladder_reply, lsmaps_reply, lsnewmaps_reply, maplist_reply; // cached replies
 string records_reply[10];
+#endif
 
 float RandomSelection_totalweight;
 float RandomSelection_best_priority;
@@ -307,3 +317,20 @@ float ReadApproxPastTime();
 // execute-stuff-next-frame subsystem
 void execute_next_frame();
 void queue_to_execute_next_frame(string s);
+
+// for marking written-to values as unused where it's a good idea to do this
+noref float unused_float;
+
+
+
+// a function f with:
+// f(0) = 0
+// f(1) = 1
+// f'(0) = startspeedfactor
+// f'(1) = endspeedfactor
+float cubic_speedfunc(float startspeedfactor, float endspeedfactor, float x);
+
+// checks whether f'(x) = 0 anywhere from 0 to 1
+// because if this is the case, the function is not usable for platforms
+// as it may exceed 0..1 bounds, or go in reverse
+float cubic_speedfunc_is_sane(float startspeedfactor, float endspeedfactor);
index b77507bb653a53d9eb1253ceec1ac60cb3c78c91..163a5126d3be8f34b5e96289d61740c42c2eae0d 100644 (file)
@@ -134,7 +134,10 @@ void CSQCModel_InterpolateAnimation_Do()
        }
        else
        {
-               self.lerpfrac = 1 - bound(0, (time - self.frame1time) / autocvar_cl_lerpanim_maxdelta_framegroups, 1);
+               if(self.frame2time == 0) // if frame2 was not previously displayed, only frame1 can make sense
+                       self.lerpfrac = 0;
+               else
+                       self.lerpfrac = 1 - bound(0, (time - self.frame1time) / autocvar_cl_lerpanim_maxdelta_framegroups, 1);
        }
 #endif
 }
@@ -180,6 +183,7 @@ void CSQCModel_Read(float isnew)
        float islocalplayer = (self.entnum == player_localnum + 1);
        float isnolocalplayer = (isplayer && (self.entnum != player_localnum + 1));
 
+       self.classname = "csqcmodel";
        self.iflags |= IFLAG_ANGLES; // interpolate angles too
 
        { CSQCMODEL_HOOK_PREUPDATE }
@@ -204,6 +208,7 @@ void CSQCModel_Read(float isnew)
 
        if(sf & CSQCMODEL_PROPERTY_MODELINDEX)
                setmodelindex(self, self.modelindex); // this retrieves the .model key and sets mins/maxs/absmin/absmax
+               // FIXME do we WANT this to override mins/maxs?
 
        if(sf & CSQCMODEL_PROPERTY_TELEPORTED)
        {
index 2ececc6e1781cc26d2b98b92cdc4cdb39a60cdb4..4aa8fdf92cdb89886784437e1ba471ca5b8b0d49 100644 (file)
@@ -135,8 +135,9 @@ void CSQCPlayer_PredictTo(float endframe, float apply_error)
 
        csqcplayer_status = CSQCPLAYERSTATUS_PREDICTED;
 
-       // FIXME do we really NEED this? dead players have servercommandframe
-       // == 0 and thus won't predict
+#if 0
+       // we don't need this
+       // darkplaces makes servercommandframe == 0 in these cases anyway
        if (getstatf(STAT_HEALTH) <= 0)
        {
                csqcplayer_moveframe = clientcommandframe;
@@ -144,6 +145,7 @@ void CSQCPlayer_PredictTo(float endframe, float apply_error)
                print("the Weird code path got hit\n");
                return;
        }
+#endif
 
        if(csqcplayer_moveframe >= endframe)
        {
index bf6eefa6971b0b0c3f9687c61e60608e9e13ff3d..e6e4cfe43a091e3f2fd1a5efa615a8e2d6132e66 100644 (file)
@@ -29,6 +29,10 @@ float CSQCModel_Send(entity to, float sf)
        float islocalplayer = (self == to);
        float isnolocalplayer = (isplayer && (self != to));
 
+       unused_float = isplayer;
+       unused_float = islocalplayer;
+       unused_float = isnolocalplayer;
+
        WriteByte(MSG_ENTITY, ENT_CLIENT_MODEL);
        WriteShort(MSG_ENTITY, sf);
 
@@ -59,6 +63,10 @@ void CSQCModel_CheckUpdate()
        float islocalplayer = isplayer; // we set BOTH to 1 here as we need the sendflags
        float isnolocalplayer = isplayer; // we set BOTH to 1 here as we need the sendflags
 
+       unused_float = isplayer;
+       unused_float = islocalplayer;
+       unused_float = isnolocalplayer;
+
 #ifdef CSQCPLAYER_FORCE_UPDATES
        if(isplayer && time > self.csqcmodel_nextforcedupdate)
        {
index 2d376d4fe41cf0f16832856850e3239cda1b72f5..7b0644e3e83ebee82c888d3ad6ce4140a90e7c74 100644 (file)
@@ -1426,3 +1426,4 @@ vector gettaginfo_offset;
 vector gettaginfo_forward;
 vector gettaginfo_right;
 vector gettaginfo_up;
+float checkpvs(vector viewpos, entity viewee) = #240;
diff --git a/qcsrc/fteqcc-bugs.qc b/qcsrc/fteqcc-bugs.qc
new file mode 100644 (file)
index 0000000..dd4fd45
--- /dev/null
@@ -0,0 +1,30 @@
+void error(...) = #1;
+float id(float x) { return x; }
+
+void Oassignments(float foo) // pass 1
+{
+       float bar;
+       bar = 2;
+       bar = (foo ? 0 : (foo & 1));
+       if(bar == 2)
+               error("FTEQCC SUCKS");
+}
+
+void Oreturn_only(float foo) // pass 0
+{
+       if(foo)
+       {
+               return;
+       }
+}
+
+void Oreturn_only_trap(void)
+{
+       error("FTEQCC SUCKS");
+}
+
+.float fld;
+void Ono_assignments(entity e, float wep) // pass an e with e.fld == 1, and wep == 3. e.fld will be 2 instead of 3. Observe the INDIRECT and the SUB use the same field for storage, wreaking havoc.
+{
+               ((e).fld |= id(wep - 1));
+}
index 48a45bda8465795e8883373ab088918783c4c0d3..ae84e0957da7be5efaff03271861b81b5810d6c4 100644 (file)
@@ -29,8 +29,7 @@ void AnimHost_addAnim(entity me, entity other)
 
        other.parent = me;
 
-       entity f, l;
-       f = me.firstChild;
+       entity l;
        l = me.lastChild;
 
        if(l)
@@ -50,9 +49,7 @@ void AnimHost_removeAnim(entity me, entity other)
 
        other.parent = NULL;
 
-       entity n, p, f, l;
-       f = me.firstChild;
-       l = me.lastChild;
+       entity n, p;
        n = other.nextSibling;
        p = other.prevSibling;
 
index de5d54ae1002ad79486867e1a8f4d83da5a152f0..3bcda94e692939b733c668cf09e46b27e59364c6 100644 (file)
@@ -75,8 +75,7 @@ void Keyframe_addAnim(entity me, entity other)
 
        other.parent = me;
 
-       entity f, l;
-       f = me.firstChild;
+       entity l;
        l = me.lastChild;
 
        if(l)
index aa68f2c1bc591dd7fab34aaf76c2ea44798f199a..dbf9e14bd47088288147d1ad73bd5a6f5cf8d017 100644 (file)
@@ -25,35 +25,6 @@ void _dumptree_close(entity pass, entity me)
        }
 }
 
-float curl_uri_get_pos;
-float curl_uri_get_exec[URI_GET_CURL_END - URI_GET_CURL + 1];
-string curl_uri_get_cvar[URI_GET_CURL_END - URI_GET_CURL + 1];
-void Curl_URI_Get_Callback(float id, float status, string data)
-{
-       float i;
-       float do_exec;
-       string do_cvar;
-       i = id - URI_GET_CURL;
-       do_exec = curl_uri_get_exec[i];
-       do_cvar = curl_uri_get_cvar[i];
-       if(status != 0)
-       {
-               print(sprintf(_("error: status is %d\n"), status));
-               if(do_cvar)
-                       strunzone(do_cvar);
-               return;
-       }
-       if(do_exec)
-               localcmd(data);
-       if(do_cvar)
-       {
-               cvar_set(do_cvar, data);
-               strunzone(do_cvar);
-       }
-       if(!do_exec && !do_cvar)
-               print(data);
-}
-
 void GameCommand(string theCommand)
 {
        float argc;
@@ -113,19 +84,19 @@ void GameCommand(string theCommand)
 
        if(argv(0) == "skinselect")
        {
-               m_goto_skin_selector();
+               m_goto("skinselector");
                return;
        }
 
        if(argv(0) == "languageselect")
        {
-               m_goto_language_selector();
+               m_goto("languageselector");
                return;
        }
 
        if(argv(0) == "videosettings")
        {
-               m_goto_video_settings();
+               m_goto("videosettings");
                return;
        }
 
@@ -138,68 +109,6 @@ void GameCommand(string theCommand)
 
        if(argv(0) == "curl")
        {
-               float do_exec;
-               string do_cvar;
-               float key;
-               float i, j;
-               string url;
-               float buf;
-               float r;
-
-               do_exec = FALSE;
-               do_cvar = string_null;
-               key = -1;
-
-               for(i = 1; i+1 < argc; ++i)
-               {
-                       if(argv(i) == "--cvar" && i+2 < argc)
-                       {
-                               ++i;
-                               do_cvar = strzone(argv(i));
-                               continue;
-                       }
-                       if(argv(i) == "--exec")
-                       {
-                               do_exec = TRUE;
-                               continue;
-                       }
-                       if(argv(i) == "--key" && i+2 < argc)
-                       {
-                               ++i;
-                               key = stof(argv(i));
-                               continue;
-                       }
-                       break;
-               }
-
-               // now, argv(i) is the URL
-               // following args may be POST parameters
-               url = argv(i);
-               ++i;
-               buf = buf_create();
-               j = 0;
-               for(; i+1 < argc; i += 2)
-                       bufstr_set(buf, ++j, sprintf("%s=%s", uri_escape(argv(i)), uri_escape(argv(i+1))));
-               if(i < argc)
-                       bufstr_set(buf, ++j, sprintf("submit=%s", uri_escape(argv(i))));
-
-               if(j == 0) // no args: GET
-                       r = crypto_uri_postbuf(url, URI_GET_CURL + curl_uri_get_pos, string_null, string_null, -1, key);
-               else // with args: POST
-                       r = crypto_uri_postbuf(url, URI_GET_CURL + curl_uri_get_pos, "application/x-www-form-urlencoded", "&", buf, key);
-
-               if(r)
-               {
-                       curl_uri_get_exec[curl_uri_get_pos] = do_exec;
-                       curl_uri_get_cvar[curl_uri_get_pos] = do_cvar;
-                       curl_uri_get_pos = mod(curl_uri_get_pos + 1, URI_GET_CURL_END - URI_GET_CURL + 1);
-               }
-               else
-                       print(_("error creating curl handle\n"));
-
-               buf_del(buf);
-
-               return;
        }
 
        print(_("Invalid command. For a list of supported commands, try menu_cmd help.\n"));
index b5dc52d05107eeacccec166b60cdd0c37f424bf8..4cacfca6b9f42477d52e5af360b6554f7c831c2f 100644 (file)
@@ -2,6 +2,7 @@
 CLASS(BorderImage) EXTENDS(Label)
        METHOD(BorderImage, configureBorderImage, void(entity, string, float, vector, string, float))
        METHOD(BorderImage, resizeNotify, void(entity, vector, vector, vector, vector))
+       METHOD(BorderImage, recalcPositionWithText, void(entity, string))
        METHOD(BorderImage, draw, void(entity))
        ATTRIB(BorderImage, src, string, string_null)
        ATTRIB(BorderImage, borderHeight, float, 0)
@@ -13,27 +14,38 @@ CLASS(BorderImage) EXTENDS(Label)
        ATTRIB(BorderImage, isNexposeeTitleBar, float, 0)
        ATTRIB(BorderImage, zoomedOutTitleBarPosition, float, 0)
        ATTRIB(BorderImage, zoomedOutTitleBar, float, 0)
+       ATTRIB(BorderImage, overrideRealOrigin, vector, '0 1 0')
+       ATTRIB(BorderImage, saveRelOrigin, vector, '0 0 0')
+       ATTRIB(BorderImage, saveRelSize, vector, '0 0 0')
 ENDCLASS(BorderImage)
 #endif
 
 #ifdef IMPLEMENTATION
-void BorderImage_resizeNotify(entity me, vector relOrigin, vector relSize, vector absOrigin, vector absSize)
+void BorderImage_recalcPositionWithText(entity me, string t)
 {
-       me.isNexposeeTitleBar = 0;
-       if(me.zoomedOutTitleBar)
-               if(me.parent.parent.instanceOfNexposee)
-                       if(me.parent.instanceOfDialog)
-                               if(me == me.parent.frame)
-                                       me.isNexposeeTitleBar = 1;
        if(me.isNexposeeTitleBar)
        {
                vector scrs;
                scrs = eX * conwidth + eY * conheight;
-               SUPER(BorderImage).resizeNotify(me, relOrigin, relSize, boxToGlobal(me.parent.Nexposee_smallOrigin, '0 0 0', scrs), boxToGlobalSize(me.parent.Nexposee_smallSize, scrs));
+               me.resizeNotify(me, me.saveRelOrigin, me.saveRelSize, boxToGlobal(me.parent.Nexposee_smallOrigin, '0 0 0', scrs), boxToGlobalSize(me.parent.Nexposee_smallSize, scrs));
+               SUPER(BorderImage).recalcPositionWithText(me, t);
                me.realOrigin_y = me.realFontSize_y * me.zoomedOutTitleBarPosition;
                me.realOrigin_Nexposeed = me.realOrigin;
                me.realFontSize_Nexposeed = me.realFontSize;
+               me.resizeNotify(me, me.saveRelOrigin, me.saveRelSize, boxToGlobal(me.parent.Nexposee_initialOrigin, '0 0 0', scrs), boxToGlobalSize(me.parent.Nexposee_initialSize, scrs));
        }
+       SUPER(BorderImage).recalcPositionWithText(me, t);
+}
+void BorderImage_resizeNotify(entity me, vector relOrigin, vector relSize, vector absOrigin, vector absSize)
+{
+       me.isNexposeeTitleBar = 0;
+       if(me.zoomedOutTitleBar)
+               if(me.parent.parent.instanceOfNexposee)
+                       if(me.parent.instanceOfDialog)
+                               if(me == me.parent.frame)
+                                       me.isNexposeeTitleBar = 1;
+       me.saveRelOrigin = relOrigin;
+       me.saveRelSize = relSize;
        SUPER(BorderImage).resizeNotify(me, relOrigin, relSize, absOrigin, absSize);
        me.borderVec_x = me.borderHeight / absSize_x;
        me.borderVec_y = me.borderHeight / absSize_y;
@@ -59,11 +71,16 @@ void BorderImage_draw(entity me)
 {
        if(me.src)
                draw_BorderPicture('0 0 0', me.src, '1 1 0', me.color, 1, me.borderVec);
+
        if(me.fontSize > 0)
        {
-               vector ro, rf, df;
+               if(me.recalcPos)
+                       me.recalcPositionWithText(me, me.text);
+
                if(me.isNexposeeTitleBar)
                {
+                       vector ro, rf, df;
+
                        // me.parent.Nexposee_animationFactor 0 (small) or 1 (full)
                        // default values are for 1
                        ro = me.realOrigin;
@@ -72,18 +89,17 @@ void BorderImage_draw(entity me)
                        me.realOrigin = ro * me.parent.Nexposee_animationFactor + me.realOrigin_Nexposeed * (1 - me.parent.Nexposee_animationFactor);
                        me.realFontSize = rf * me.parent.Nexposee_animationFactor + me.realFontSize_Nexposeed * (1 - me.parent.Nexposee_animationFactor);
                        draw_fontscale = globalToBoxSize(boxToGlobalSize(df, me.realFontSize), rf);
-               }
 
-               SUPER(BorderImage).draw(me);
+                       SUPER(BorderImage).draw(me);
 
-               if(me.isNexposeeTitleBar)
-               {
                        // me.Nexposee_animationState 0 (small) or 1 (full)
                        // default values are for 1
                        me.realOrigin = ro;
                        me.realFontSize = rf;
                        draw_fontscale = df;
                }
+               else
+                       SUPER(BorderImage).draw(me);
        }
        else
        {
index 0e8fa9ea0a6d1d627e780759e33edb3dac1fa557..6241cee03968c077249d62bfbdcb8b81a91ec3a9 100644 (file)
@@ -304,8 +304,7 @@ void Container_addItem(entity me, entity other, vector theOrigin, vector theSize
        other.Container_size = theSize;
        me.setAlphaOf(me, other, theAlpha);
 
-       entity f, l;
-       f = me.firstChild;
+       entity l;
        l = me.lastChild;
 
        if(l)
@@ -330,9 +329,7 @@ void Container_removeItem(entity me, entity other)
 
        other.parent = NULL;
 
-       entity n, p, f, l;
-       f = me.firstChild;
-       l = me.lastChild;
+       entity n, p;
        n = other.nextSibling;
        p = other.prevSibling;
 
@@ -371,13 +368,11 @@ void Container_setFocus(entity me, entity other)
 void Container_moveItemAfter(entity me, entity other, entity dest)
 {
        // first: remove other from the chain
-       entity n, p, f, l;
+       entity n, p;
 
        if(other.parent != me)
                error("Can't move in wrong container!");
 
-       f = me.firstChild;
-       l = me.lastChild;
        n = other.nextSibling;
        p = other.prevSibling;
 
index da6a4013cecd772051b12c76aac0f0a74a681a1c..ed73be09501a6a81db14751e73d824b5cd1a618e 100644 (file)
@@ -124,7 +124,6 @@ void Dialog_TDempty(entity me, float colspan)
 
 void Dialog_configureDialog(entity me)
 {
-       entity closebutton;
        float absWidth, absHeight;
 
        me.frame = spawnBorderImage();
@@ -154,14 +153,13 @@ void Dialog_configureDialog(entity me)
 
        if(me.closable && me.borderLines > 0)
        {
-               closebutton = me.closeButton = spawnButton();
+               entity closebutton;
+               closebutton = me.closeButton = me.frame.closeButton = spawnButton();
                closebutton.configureButton(closebutton, "", 0, me.closeButtonImage);
                closebutton.onClick = Dialog_Close; closebutton.onClickEntity = me;
                closebutton.srcMulti = 0;
                me.addItem(me, closebutton, '0 0 0', '1 1 0', 1); // put it as LAST
        }
-
-       me.frame.closeButton = closebutton;
 }
 
 void Dialog_close(entity me)
index 13351cfd32c8f2586a37157f2f0e4677c6a42818..572d3a0710dd866bef056667cb2862165d80cf0b 100644 (file)
@@ -146,6 +146,9 @@ void InputBox_draw(entity me)
        if(me.pressed)
                me.mouseDrag(me, me.dragScrollPos); // simulate mouseDrag event
 
+       if(me.recalcPos)
+               me.recalcPositionWithText(me, me.text);
+
        me.focusable = !me.disabled;
        if(me.disabled)
                draw_alpha *= me.disabledAlpha;
@@ -223,7 +226,6 @@ void InputBox_draw(entity me)
                                else if(ch2 == "x") // ^x found
                                {
                                        theColor = '1 1 1';
-                                       theTempColor = '0 0 0';
                                        
                                        component = HEXDIGIT_TO_DEC(substring(me.text, i+2, 1));
                                        if (component >= 0) // ^xr found
index e1b14d3b1602d468d08ccdf6b26ef0aaf48b43df..65129b294dd6c0229436da186734c244d30b6b6f 100644 (file)
@@ -153,8 +153,7 @@ float InputContainer_mousePress(entity me, vector pos)
 }
 float InputContainer_mouseRelease(entity me, vector pos)
 {
-       float r;
-       r = SUPER(InputContainer).mouseRelease(me, pos);
+       SUPER(InputContainer).mouseRelease(me, pos); // return value?
        if(me.focused) // am I still eligible for this? (UGLY HACK, but a mouse event could have changed focus away)
                if(me._changeFocusXY(me, pos))
                        return 1;
index 85df8a7179d1b909da51bd0e20e96b0862d0a587..e1543ce2756f60579cf1eeb1b5c79be924bc5a7b 100644 (file)
@@ -5,7 +5,7 @@ CLASS(Label) EXTENDS(Item)
        METHOD(Label, resizeNotify, void(entity, vector, vector, vector, vector))
        METHOD(Label, setText, void(entity, string))
        METHOD(Label, toString, string(entity))
-       METHOD(Label, recalcPosition, void(entity))
+       METHOD(Label, recalcPositionWithText, void(entity, string))
        ATTRIB(Label, text, string, string_null)
        ATTRIB(Label, fontSize, float, 8)
        ATTRIB(Label, align, float, 0.5)
@@ -25,6 +25,8 @@ CLASS(Label) EXTENDS(Item)
        ATTRIB(Label, allowWrap, float, 0)
        ATTRIB(Label, recalcPos, float, 0)
        ATTRIB(Label, condenseFactor, float, 1)
+       ATTRIB(Label, overrideRealOrigin, vector, '0 0 0')
+       ATTRIB(Label, overrideCondenseFactor, float, 0)
 ENDCLASS(Label)
 #endif
 
@@ -38,35 +40,79 @@ void Label_setText(entity me, string txt)
        me.text = txt;
        me.recalcPos = 1;
 }
-void Label_recalcPosition(entity me)
+void Label_recalcPositionWithText(entity me, string t)
 {
        float spaceAvail;
        spaceAvail = 1 - me.keepspaceLeft - me.keepspaceRight;
 
        float spaceUsed;
-       spaceUsed = draw_TextWidth(me.text, me.allowColors, me.realFontSize);
+       spaceUsed = draw_TextWidth(t, me.allowColors, me.realFontSize);
 
        if(spaceUsed <= spaceAvail)
        {
-               me.realOrigin_x = me.align * (spaceAvail - spaceUsed) + me.keepspaceLeft;
-               me.condenseFactor = 1;
+               if(!me.overrideRealOrigin_x)
+                       me.realOrigin_x = me.align * (spaceAvail - spaceUsed) + me.keepspaceLeft;
+               if(!me.overrideCondenseFactor)
+                       me.condenseFactor = 1;
        }
        else if(me.allowCut || me.allowWrap)
        {
-               me.realOrigin_x = me.keepspaceLeft;
-               me.condenseFactor = 1;
+               if(!me.overrideRealOrigin_x)
+                       me.realOrigin_x = me.keepspaceLeft;
+               if(!me.overrideCondenseFactor)
+                       me.condenseFactor = 1;
        }
        else
        {
-               me.realOrigin_x = me.keepspaceLeft;
-               me.condenseFactor = spaceAvail / spaceUsed;
-               dprint(sprintf(_("NOTE: label text %s too wide for label, condensed by factor %f\n"), me.text, me.condenseFactor));
+               if(!me.overrideRealOrigin_x)
+                       me.realOrigin_x = me.keepspaceLeft;
+               if(!me.overrideCondenseFactor)
+                       me.condenseFactor = spaceAvail / spaceUsed;
+               dprint(sprintf(_("NOTE: label text %s too wide for label, condensed by factor %f\n"), t, me.condenseFactor));
        }
+
+       if(!me.overrideRealOrigin_y)
+       {
+               float lines;
+               vector dfs;
+               vector fs;
+
+               // set up variables to draw in condensed size, but use hinting for original size
+               fs = me.realFontSize;
+               fs_x *= me.condenseFactor;
+
+               dfs = draw_fontscale;
+               draw_fontscale_x *= me.condenseFactor;
+
+               if(me.allowCut) // FIXME allowCut incompatible with align != 0
+                       lines = 1;
+               else if(me.allowWrap) // FIXME allowWrap incompatible with align != 0
+               {
+                       getWrappedLine_remaining = me.text;
+                       lines = 0;
+                       while(getWrappedLine_remaining)
+                       {
+                               if (me.allowColors)
+                                       getWrappedLine((1 - me.keepspaceLeft - me.keepspaceRight), fs, draw_TextWidth_WithColors);
+                               else
+                                       getWrappedLine((1 - me.keepspaceLeft - me.keepspaceRight), fs, draw_TextWidth_WithoutColors);
+                               ++lines;
+                       }
+               }
+               else
+                       lines = 1;
+
+               draw_fontscale = dfs;
+
+               me.realOrigin_y = 0.5 * (1 - lines * me.realFontSize_y);
+       }
+
        me.recalcPos = 0;
 }
 void Label_resizeNotify(entity me, vector relOrigin, vector relSize, vector absOrigin, vector absSize)
 {
        SUPER(Label).resizeNotify(me, relOrigin, relSize, absOrigin, absSize);
+
        // absSize_y is height of label
        me.realFontSize_y = me.fontSize / absSize_y;
        me.realFontSize_x = me.fontSize / absSize_x;
@@ -75,41 +121,7 @@ void Label_resizeNotify(entity me, vector relOrigin, vector relSize, vector absO
        if(me.marginRight)
                me.keepspaceRight = me.marginRight * me.realFontSize_x;
 
-       me.recalcPosition(me);
-
-       float lines;
-
-       vector dfs;
-       vector fs;
-
-       // set up variables to draw in condensed size, but use hinting for original size
-       fs = me.realFontSize;
-       fs_x *= me.condenseFactor;
-
-       dfs = draw_fontscale;
-       draw_fontscale_x *= me.condenseFactor;
-
-       if(me.allowCut) // FIXME allowCut incompatible with align != 0
-               lines = 1;
-       else if(me.allowWrap) // FIXME allowWrap incompatible with align != 0
-       {
-               getWrappedLine_remaining = me.text;
-               lines = 0;
-               while(getWrappedLine_remaining)
-               {
-                       if (me.allowColors)
-                               getWrappedLine((1 - me.keepspaceLeft - me.keepspaceRight), fs, draw_TextWidth_WithColors);
-                       else
-                               getWrappedLine((1 - me.keepspaceLeft - me.keepspaceRight), fs, draw_TextWidth_WithoutColors);
-                       ++lines;
-               }
-       }
-       else
-               lines = 1;
-
-       draw_fontscale = dfs;
-
-       me.realOrigin_y = 0.5 * (1 - lines * me.realFontSize_y);
+       me.recalcPos = 1;
 }
 void Label_configureLabel(entity me, string txt, float sz, float algn)
 {
@@ -133,7 +145,7 @@ void Label_draw(entity me)
                t = me.text;
 
        if(me.recalcPos)
-               me.recalcPosition(me);
+               me.recalcPositionWithText(me, t);
 
        if(me.fontSize)
                if(t)
index 4f8dca622c239e0294ba023b68f8101f737c6f15..0c4f349029236d78c365cc6afdc99df033809ac4 100644 (file)
@@ -182,7 +182,6 @@ float ListBox_mouseRelease(entity me, vector pos)
                // and give it a nice click event
                if(me.nItems > 0)
                {
-                       absSize = boxToGlobalSize(me.size, eX * (1 - me.controlWidth) + eY * me.itemHeight);
                        me.clickListBoxItem(me, me.selectedItem, globalToBox(pos, eY * (me.selectedItem * me.itemHeight - me.scrollPos), eX * (1 - me.controlWidth) + eY * me.itemHeight));
                }
        }
index 4f1ff4e9edd2cb580dff3f8f304dc39748aa1b6b..5a5541dc7b0da4706800380998b531d67e5de329 100644 (file)
@@ -144,6 +144,7 @@ void ModalController_draw(entity me)
        vector fs;
        animating = 0;
 
+       front = world;
        for(e = me.firstChild; e; e = e.nextSibling)
                if(e.ModalController_state)
                {
index 02f12242525835f1735029b0eda0365f03907faf..8f8f45119f8744bd74d900776d4b97015bc25406 100644 (file)
@@ -305,6 +305,7 @@ float Nexposee_keyDown(entity me, float scan, float ascii, float shift)
        }
        switch(me.animationState)
        {
+               default:
                case 0:
                case 3:
                        nexposeeKey = ((scan == K_SPACE) || (scan == K_ENTER) || (scan == K_KP_ENTER));
@@ -318,6 +319,7 @@ float Nexposee_keyDown(entity me, float scan, float ascii, float shift)
        {
                switch(me.animationState)
                {
+                       default:
                        case 0:
                        case 3:
                                me.animationState = 1;
index baa0bb90f877f8f638ef746c1f240e8cc25d54fc..b4c7ce746a8cd749a1eeed4cfd8d2d9b08b23da3 100644 (file)
@@ -26,10 +26,31 @@ void m_sync()
        loadAllCvars(main);
 }
 
+void m_gamestatus()
+{
+       gamestatus = 0;
+       if(isserver())
+               gamestatus = gamestatus | GAME_ISSERVER;
+       if(clientstate() == CS_CONNECTED || isdemo())
+               gamestatus = gamestatus | GAME_CONNECTED;
+       if(cvar("developer"))
+               gamestatus = gamestatus | GAME_DEVELOPER;
+}
+
 void m_init()
 {
+       float restarting = 0;
        cvar_set("_menu_alpha", "0");
-       prvm_language = strzone(cvar_string("prvm_language"));
+       prvm_language = cvar_string("prvm_language");
+       if(prvm_language == "")
+       {
+               prvm_language = "en";
+               cvar_set("prvm_language", prvm_language);
+               localcmd("\nmenu_restart\n");
+               restarting = 1;
+       }
+       prvm_language = strzone(prvm_language);
+       cvar_set("_menu_prvm_language", prvm_language);
 
        check_unacceptable_compiler_bugs();
 
@@ -61,6 +82,15 @@ void m_init()
        if(ddsload != cvar("r_texture_dds_load") || texcomp != cvar("gl_texturecompression"))
                localcmd("\nr_restart\n");
        initConwidths();
+
+       if(!restarting)
+       {
+               if(cvar("_menu_initialized")) // always show menu after menu_restart
+                       m_display();
+               else
+                       m_hide();
+               cvar_set("_menu_initialized", "1");
+       }
 }
 
 float MENU_ASPECT = 1.25; // 1280x1024
@@ -114,6 +144,7 @@ void UpdateConWidthHeight()
        }
 }
 
+string m_goto_buffer;
 void m_init_delayed()
 {
        float fh, glob, n, i;
@@ -187,6 +218,13 @@ void m_init_delayed()
 
        m_sync();
 
+       if(m_goto_buffer)
+       {
+               m_goto(m_goto_buffer);
+               strunzone(m_goto_buffer);
+               m_goto_buffer = string_null;
+       }
+
        if(Menu_Active)
                m_display(); // delayed menu display
 }
@@ -306,6 +344,7 @@ void drawBackground(string img, float a, string algn, float force1)
 
        scalemode = SCALEMODE_CROP;
 
+       l = 0;
        for(i = 0; i < strlen(algn); ++i)
        {
                c = substring(algn, i, 1);
@@ -623,6 +662,8 @@ void m_draw()
        float t;
        float realFrametime;
 
+       m_gamestatus();
+
        execute_next_frame();
 
        menuMouseMode = cvar("menu_mouse_absolute");
@@ -677,14 +718,6 @@ void m_draw()
        if(cvar("cl_capturevideo"))
                frametime = t / cvar("cl_capturevideo_fps"); // make capturevideo work smoothly
 
-       gamestatus = 0;
-       if(isserver())
-               gamestatus = gamestatus | GAME_ISSERVER;
-       if(clientstate() == CS_CONNECTED)
-               gamestatus = gamestatus | GAME_CONNECTED;
-       if(cvar("developer"))
-               gamestatus = gamestatus | GAME_DEVELOPER;
-
        prevMenuAlpha = menuAlpha;
        if(Menu_Active)
        {
@@ -916,11 +949,18 @@ void m_goto(string itemname)
 {
        entity e;
        if(!menuInitialized)
+       {
+               if(m_goto_buffer)
+                       strunzone(m_goto_buffer);
+               m_goto_buffer = strzone(itemname);
                return;
+       }
        if(itemname == "") // this can be called by GameCommand
        {
                if(gamestatus & (GAME_ISSERVER | GAME_CONNECTED))
+               {
                        m_hide();
+               }
                else
                {
                        m_activate_window(main.mainNexposee);
@@ -941,27 +981,3 @@ void m_goto(string itemname)
                }
        }
 }
-
-void m_goto_skin_selector()
-{
-       if(!menuInitialized)
-               return;
-       // TODO add code to switch back to the skin selector (no idea how to do it now)
-       m_goto("skinselector");
-}
-
-void m_goto_language_selector()
-{
-       if(!menuInitialized)
-               return;
-       // TODO add code to switch back to the language selector (no idea how to do it now)
-       m_goto("languageselector");
-}
-
-void m_goto_video_settings()
-{
-       if(!menuInitialized)
-               return;
-       // TODO add code to switch back to the video settings (no idea how to do it now)
-       m_goto("videosettings");
-}
index ab812437a00eba147f08570ca81e8541ea739249..641ddf7d19df20db49ad73d707a74197cf427ad5 100644 (file)
@@ -26,9 +26,6 @@ entity main;
 void m_hide();
 void m_display();
 void m_goto(string name);
-void m_goto_skin_selector();
-void m_goto_language_selector();
-void m_goto_video_settings();
 .string name;
 
 entity keyGrabber;
index 1f70e0e7be2f0ce5aef5c87d036d36c696e3122c..0f545e60cfa368967ca4cb6f694132fff6558fd1 100644 (file)
@@ -19,6 +19,7 @@ oo/base.h
 ../common/command/rpn.qh
 ../common/command/generic.qh
 ../common/command/shared_defs.qh
+../common/urllib.qh
 
 command/menu_cmd.qh
 menu.qh
@@ -44,6 +45,7 @@ xonotic/util.qc
 ../common/campaign_setup.qc
 ../common/mapinfo.qc
 ../common/items.qc
+../common/urllib.qc
 
 ../warpzonelib/mathlib.qc
 
index 3eb91ee9d4038ec1c21d1b2f13453ff184c75670..d30ac7248d0294ac557d8fe4b38a9a96b1814ad1 100644 (file)
@@ -190,6 +190,7 @@ SKINBEGIN
 
        // item: nexposee
        SKINVECTOR(ALPHAS_MAINMENU, '0.6 0.8 0.9');
+       SKINFLOAT(ALPHA_DIALOG_SANDBOXTOOLS, 0.6);
 
        // item: player color button
        SKINSTRING(GFX_COLORBUTTON, "colorbutton");
@@ -230,6 +231,7 @@ SKINBEGIN
        SKINFLOAT(ALPHA_SERVERLIST_IMPOSSIBLE, 0.7);
        SKINVECTOR(COLOR_SERVERLIST_IMPOSSIBLE, '0.3 0.3 0.3');
        SKINSTRING(GFX_SERVERLIST_ICON, "icon");
+       SKINFLOAT(ALPHA_SERVERLIST_ICON_NONPURE, 0.5);
 
        // item: server info
        SKINVECTOR(COLOR_SERVERINFO_NAME, '1 1 1');
index 95273901a264349f6ccc043eeef1ad1da8821739..39a7d2c701aa34db6e9733632dfdbdef5fdb662b 100644 (file)
@@ -20,7 +20,7 @@ float CheckFirstRunButton(entity me)
        if(cvar_string("_cl_name") != "Player")
                return 1;
                
-       if(cvar_string("prvm_language") != prvm_language)
+       if(cvar_string("_menu_prvm_language") != prvm_language)
                return 1; // OK will then reopen the dialog in another language
                
        if(cvar_string("cl_allow_uid2name") != "-1")
@@ -69,7 +69,7 @@ void XonoticFirstRunDialog_fill(entity me)
        me.TR(me);
                me.TD(me, 6, 2, e = makeXonoticLanguageList());
                        e.name = "languageselector_firstrun";
-                       e.doubleClickCommand = "saveconfig; menu_restart; togglemenu";
+                       e.doubleClickCommand = "prvm_language \"$_menu_prvm_language\"; saveconfig; menu_restart";
        me.TR(me);
        me.TR(me);
 
@@ -84,7 +84,7 @@ void XonoticFirstRunDialog_fill(entity me)
 
        // because of the language selector, this is a menu_restart!
        me.gotoRC(me, me.rows - 1, 0);
-       me.TD(me, 1, me.columns, e = makeXonoticCommandButton(_("Save settings"), '0 0 0', "saveconfig; menu_restart; togglemenu", COMMANDBUTTON_APPLY));
+       me.TD(me, 1, me.columns, e = makeXonoticCommandButton(_("Save settings"), '0 0 0', "prvm_language \"$_menu_prvm_language\"; saveconfig; menu_restart", COMMANDBUTTON_APPLY));
                setDependentWeird(e, CheckFirstRunButton);
 }
 #endif
index 226f346b643ae55e715a7b5e5cf87eea887412cf..3fcabaaab6f8aa2e25030b7e420c45b52f308baf 100644 (file)
@@ -25,36 +25,36 @@ void XonoticAdvancedDialog_fill(entity me)
                me.TD(me, 1, 3, makeXonoticTextLabel(0, _("Game settings:")));
        me.TR(me);
                me.TDempty(me, 0.2);
-               me.TD(me, 1, 2.8, e = makeXonoticCheckBox(0, "sv_spectate", _("Allow spectating")));
+               me.TD(me, 1, 2.8, makeXonoticCheckBox(0, "sv_spectate", _("Allow spectating")));
        me.TR(me);
                me.TDempty(me, 0.2);
-               me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, _("Spawn shield:")));
-               me.TD(me, 1, 1.6, e = makeXonoticSlider(0, 15, 0.5, "g_spawnshieldtime"));
+               me.TD(me, 1, 1.2, makeXonoticTextLabel(0, _("Spawn shield:")));
+               me.TD(me, 1, 1.6, makeXonoticSlider(0, 15, 0.5, "g_spawnshieldtime"));
        me.TR(me);
        me.TR(me);
                me.TDempty(me, 0.2);
-               me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, _("Game speed:")));
-               me.TD(me, 1, 1.6, e = makeXonoticSlider(0.5, 2.0, 0.1, "slowmo"));
+               me.TD(me, 1, 1.2, makeXonoticTextLabel(0, _("Game speed:")));
+               me.TD(me, 1, 1.6, makeXonoticSlider(0.5, 2.0, 0.1, "slowmo"));
        me.TR(me);
        me.TR(me);
                me.TD(me, 1, 3, makeXonoticTextLabel(0, _("Teamplay settings:")));
        me.TR(me);
                me.TDempty(me, 0.2);
-               me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, _("Friendly fire scale:")));
-               me.TD(me, 1, 1.6, e = makeXonoticSlider(0, 1.0, 0.05, "g_friendlyfire"));
+               me.TD(me, 1, 1.2, makeXonoticTextLabel(0, _("Friendly fire scale:")));
+               me.TD(me, 1, 1.6, makeXonoticSlider(0, 1.0, 0.05, "g_friendlyfire"));
        me.TR(me);
                me.TDempty(me, 0.4);
-               me.TD(me, 1, 2.6, e = makeXonoticCheckBox(0, "g_friendlyfire_virtual", _("Virtual friendly fire (effect only)")));
+               me.TD(me, 1, 2.6, makeXonoticCheckBox(0, "g_friendlyfire_virtual", _("Virtual friendly fire (effect only)")));
        me.TR(me);
                me.TDempty(me, 0.2);
-               me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, _("Friendly fire penalty:")));
-               me.TD(me, 1, 1.6, e = makeXonoticSlider(0, 1.0, 0.05, "g_mirrordamage"));
+               me.TD(me, 1, 1.2, makeXonoticTextLabel(0, _("Friendly fire penalty:")));
+               me.TD(me, 1, 1.6, makeXonoticSlider(0, 1.0, 0.05, "g_mirrordamage"));
        me.TR(me);
                me.TDempty(me, 0.4);
-               me.TD(me, 1, 2.6, e = makeXonoticCheckBox(0, "g_mirrordamage_virtual", _("Virtual penalty (effect only)")));
+               me.TD(me, 1, 2.6, makeXonoticCheckBox(0, "g_mirrordamage_virtual", _("Virtual penalty (effect only)")));
        me.TR(me);
                me.TDempty(me, 0.2);
-               me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, _("Teams:")));
+               me.TD(me, 1, 1.2, makeXonoticTextLabel(0, _("Teams:")));
                me.TD(me, 1, 1.6, e = makeXonoticTextSlider("g_tdm_teams_override g_domination_teams_override g_keyhunt_teams_override"));
                        e.addValue(e, "Default", "0");
                        e.addValue(e, "2 teams", "2");
@@ -63,7 +63,7 @@ void XonoticAdvancedDialog_fill(entity me)
                        e.configureXonoticTextSliderValues(e);
        me.TR(me);
        me.TR(me);
-               me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Map voting:")));
+               me.TD(me, 1, 1, makeXonoticTextLabel(0, _("Map voting:")));
                me.TD(me, 1, 2, e = makeXonoticTextSlider("g_maplist_votable"));
                        e.addValue(e, _("No voting"), "0");
                        e.addValue(e, _("2 choices"), "2");
@@ -76,7 +76,7 @@ void XonoticAdvancedDialog_fill(entity me)
                        e.addValue(e, _("9 choices"), "9");
                        e.configureXonoticTextSliderValues(e);
        me.TR(me);
-               me.TD(me, 1, 3, e = makeXonoticCheckBoxEx(0.5, 0, "sv_vote_simple_majority_factor", _("Simple majority wins vcall")));
+               me.TD(me, 1, 3, makeXonoticCheckBoxEx(0.5, 0, "sv_vote_simple_majority_factor", _("Simple majority wins vcall")));
 
        me.gotoRC(me, me.rows - 1, 0);
                me.TD(me, 1, me.columns, e = makeXonoticButton(_("OK"), '0 0 0'));
index ac2d71e4811aed58b51f6954b6e6e04afd29b8e0..2d642728e6be854dcdce36c9aa29ec83a077b1a3 100644 (file)
@@ -68,6 +68,8 @@ string XonoticMutatorsDialog_toString(entity me)
                s = strcat(s, ", ", _("Dodging"));
        if(cvar("g_minstagib"))
                s = strcat(s, ", ", _("MinstaGib"));
+       if(cvar("g_new_toys"))
+               s = strcat(s, ", ", _("New Toys"));
        if(cvar("g_nix"))
                s = strcat(s, ", ", _("NIX"));
        if(cvar("g_rocket_flying"))
@@ -159,7 +161,32 @@ void preDrawLaserWeaponArenaLaserButton(entity me)
 }
 // WARNING: end of dirty hack. Do not try this at home.
 
-
+float checkCompatibility_pinata(entity me)
+{
+       if(cvar("g_minstagib"))
+               return 0;
+       if(cvar("g_nix"))
+               return 0;
+       if(cvar_string("g_weaponarena") != "0")
+               return 0;
+       return 1;
+}
+float checkCompatibility_weaponstay(entity me)
+{
+       return checkCompatibility_pinata(me);
+}
+float checkCompatibility_newtoys(entity me)
+{
+       if(cvar("g_minstagib"))
+               return 0;
+       if(cvar_string("g_weaponarena") == "most")
+               return 1;
+       if(cvar_string("g_weaponarena") == "all")
+               return 1;
+       if(cvar_string("g_weaponarena") != "0")
+               return 0;
+       return 1;
+}
 
 void XonoticMutatorsDialog_fill(entity me)
 {
@@ -184,6 +211,7 @@ void XonoticMutatorsDialog_fill(entity me)
                me.TDempty(me, 0.2);
                s = makeXonoticSlider(10, 50, 1, "g_bloodloss");
                me.TD(me, 1, 2, e = makeXonoticSliderCheckBox(0, 1, s, _("Blood loss")));
+                       setDependent(e, "g_minstagib", 0, 0);
        me.TR(me);
                me.TDempty(me, 0.4);
                me.TD(me, 1, 1.8, s);
@@ -208,15 +236,21 @@ void XonoticMutatorsDialog_fill(entity me)
        me.TR(me);
                me.TDempty(me, 0.2);
                me.TD(me, 1, 2, e = makeXonoticCheckBox(0, "g_invincible_projectiles", _("Invincible Projectiles")));
+       me.TR(me);
+               me.TDempty(me, 0.2);
+               me.TD(me, 1, 2, e = makeXonoticCheckBox(0, "g_new_toys", _("New Toys")));
+                       setDependentWeird(e, checkCompatibility_newtoys);
        me.TR(me);
                me.TDempty(me, 0.2);
                me.TD(me, 1, 2, e = makeXonoticCheckBox(0, "g_rocket_flying", _("Rocket Flying")));
        me.TR(me);
                me.TDempty(me, 0.2);
                me.TD(me, 1, 2, e = makeXonoticCheckBox(0, "g_pinata", _("Piñata")));
+                       setDependentWeird(e, checkCompatibility_pinata);
        me.TR(me);
                me.TDempty(me, 0.2);
                me.TD(me, 1, 2, e = makeXonoticCheckBox(0, "g_weapon_stay", _("Weapons stay")));
+                       setDependentWeird(e, checkCompatibility_weaponstay);
        me.TR(me);
 
        me.gotoRC(me, 0, 2); me.setFirstColumn(me, me.currentColumn);
index 9538c9afd249c4e843d9bd3e8e84b475fdbe00a8..bb4b969c4c80e5e07f073ab972f57e719d30e3af 100644 (file)
@@ -5,7 +5,7 @@ CLASS(XonoticDemoBrowserTab) EXTENDS(XonoticTab)
        ATTRIB(XonoticDemoBrowserTab, intendedWidth, float, 0.9)
        ATTRIB(XonoticDemoBrowserTab, rows, float, 22)
        ATTRIB(XonoticDemoBrowserTab, columns, float, 4)
-       ATTRIB(XonoticDemoBrowserTab, name, string, "DemoBroswer")      
+       ATTRIB(XonoticDemoBrowserTab, name, string, "DemoBrowser")      
 ENDCLASS(XonoticDemoBrowserTab)
 entity makeXonoticDemoBrowserTab();
 #endif
index 3687857056e98bd899b6068f47f8a97d9f38b915..4e6d6f5909ea7181374a4b8a7695cf77df0b6b55 100644 (file)
@@ -40,15 +40,6 @@ CLASS(XonoticServerInfoDialog) EXTENDS(XonoticDialog)
        ATTRIB(XonoticServerInfoDialog, pureLabel, entity, NULL)
 ENDCLASS(XonoticServerInfoDialog)
 
-float SLIST_FIELD_NAME;
-float SLIST_FIELD_CNAME;
-float SLIST_FIELD_QCSTATUS;
-float SLIST_FIELD_MAP;
-float SLIST_FIELD_PLAYERS;
-float SLIST_FIELD_NUMHUMANS;
-float SLIST_FIELD_MAXPLAYERS;
-float SLIST_FIELD_NUMBOTS;
-float SLIST_FIELD_MOD;
 void Join_Click(entity btn, entity me);
 #endif
 
@@ -56,7 +47,7 @@ void Join_Click(entity btn, entity me);
 void XonoticServerInfoDialog_loadServerInfo(entity me, float i)
 {
        float m, pure, freeslots, j, numh, maxp, numb, sflags;
-       string s, typestr, versionstr, k, v;
+       string s, typestr, versionstr, k, v, modname;
 
        // ====================================
        //  First clear and unzone the strings
@@ -120,11 +111,9 @@ void XonoticServerInfoDialog_loadServerInfo(entity me, float i)
        // ==========================
        //  Now, fill in the strings
        // ==========================
-       SLIST_FIELD_NAME = gethostcacheindexforkey("name");
        me.currentServerName = strzone(gethostcachestring(SLIST_FIELD_NAME, i));
        me.nameLabel.setText(me.nameLabel, me.currentServerName);
 
-       SLIST_FIELD_CNAME = gethostcacheindexforkey("cname");
        me.currentServerCName = strzone(gethostcachestring(SLIST_FIELD_CNAME, i));
        me.cnameLabel.setText(me.cnameLabel, me.currentServerCName);
 
@@ -132,7 +121,6 @@ void XonoticServerInfoDialog_loadServerInfo(entity me, float i)
        typestr = _("N/A");
        versionstr = _("N/A");
 
-       SLIST_FIELD_QCSTATUS = gethostcacheindexforkey("qcstatus");
        s = gethostcachestring(SLIST_FIELD_QCSTATUS, i);
        m = tokenizebyseparator(s, ":");
        if(m >= 2)
@@ -142,6 +130,7 @@ void XonoticServerInfoDialog_loadServerInfo(entity me, float i)
        }
        freeslots = -1;
        sflags = -1;
+       modname = "";
        for(j = 2; j < m; ++j)
        {
                if(argv(j) == "")
@@ -154,27 +143,33 @@ void XonoticServerInfoDialog_loadServerInfo(entity me, float i)
                        freeslots = stof(v);
                else if(k == "F")
                        sflags = stof(v);
+               else if(k == "M")
+                       modname = v;
        }
 
+#ifdef COMPAT_NO_MOD_IS_XONOTIC
+       if(modname == "")
+               modname = "Xonotic";
+#endif
+
+       s = gethostcachestring(SLIST_FIELD_MOD, i);
+       if(s != "data")
+               modname = sprintf(_("%s (%s)"), modname, s);
+
        j = MapInfo_Type_FromString(typestr); // try and get the real name of the game type
        if(j) { typestr = MapInfo_Type_ToText(j); } // only set it if we actually found it
        
        me.currentServerType = strzone(typestr);
        me.typeLabel.setText(me.typeLabel, me.currentServerType);
 
-       SLIST_FIELD_MAP = gethostcacheindexforkey("map");
        me.currentServerMap = strzone(gethostcachestring(SLIST_FIELD_MAP, i));
        me.mapLabel.setText(me.mapLabel, me.currentServerMap);
 
-       SLIST_FIELD_PLAYERS = gethostcacheindexforkey("players");
        me.currentServerPlayers = strzone(gethostcachestring(SLIST_FIELD_PLAYERS, i));
        me.rawPlayerList.setPlayerList(me.rawPlayerList, me.currentServerPlayers);
 
-       SLIST_FIELD_NUMHUMANS = gethostcacheindexforkey("numhumans");
        numh = gethostcachenumber(SLIST_FIELD_NUMHUMANS, i);
-       SLIST_FIELD_MAXPLAYERS = gethostcacheindexforkey("maxplayers");
        maxp = gethostcachenumber(SLIST_FIELD_MAXPLAYERS, i);
-       SLIST_FIELD_NUMBOTS = gethostcacheindexforkey("numbots");
        numb = gethostcachenumber(SLIST_FIELD_NUMBOTS, i);
        me.currentServerNumPlayers = strzone(sprintf(_("%d/%d"), numh, maxp));
        me.numPlayersLabel.setText(me.numPlayersLabel, me.currentServerNumPlayers);
@@ -188,10 +183,8 @@ void XonoticServerInfoDialog_loadServerInfo(entity me, float i)
        me.currentServerNumFreeSlots = strzone(s);
        me.numFreeSlotsLabel.setText(me.numFreeSlotsLabel, me.currentServerNumFreeSlots);
 
-       SLIST_FIELD_MOD = gethostcacheindexforkey("mod");
-       s = gethostcachestring(SLIST_FIELD_MOD, i);
-       s = ((s == "data") ? _("Default") : s);
-       me.currentServerMod = strzone(s);
+       me.currentServerMod = ((modname == "Xonotic") ? _("Default") : modname);
+       me.currentServerMod = strzone(me.currentServerMod);
        me.modLabel.setText(me.modLabel, me.currentServerMod);
 
        me.currentServerVersion = strzone(versionstr);
index b187c007a3ce627b554428df682a20c177742918..d33a1eab12d5439e5435280fd40cd3439f3503f9 100644 (file)
@@ -30,7 +30,7 @@ void XonoticPlayerSettingsTab_draw(entity me)
 }
 void XonoticPlayerSettingsTab_fill(entity me)
 {
-       entity e, pms, sl, label, e0, box;
+       entity e, pms, label, box;
        float i, r, m, n;
 
        me.TR(me);
index 509825047ee32d72c8de3ccd92c1cc03ba575c84..25b0fcb191d6ab2e41922c8ef9a63715a085077e 100644 (file)
@@ -6,7 +6,7 @@ CLASS(XonoticModelDialog) EXTENDS(XonoticDialog)
        ATTRIB(XonoticModelDialog, title, string, _("Model settings"))
        ATTRIB(XonoticModelDialog, color, vector, SKINCOLOR_DIALOG_MODEL)
        ATTRIB(XonoticModelDialog, intendedWidth, float, 0.5)
-       ATTRIB(XonoticModelDialog, rows, float, 8)
+       ATTRIB(XonoticModelDialog, rows, float, 7)
        ATTRIB(XonoticModelDialog, columns, float, 3)
 ENDCLASS(XonoticModelDialog)
 #endif
@@ -36,9 +36,6 @@ void XonoticModelDialog_fill(entity me)
                        e.addValue(e, ZCTX(_("GIBS^Lots")), "0");
                        e.configureXonoticTextSliderValues(e);
                        setDependent(e, "cl_gentle", 0, 0);
-       me.TR(me);
-               me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Playermodel LOD:")));
-               me.TD(me, 1, 2, e = makeXonoticSlider(0, 10, 1, "cl_playerdetailreduction"));
        me.TR(me);
        #ifdef ALLOW_FORCEMODELS
                me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Force models:")));
index bfa52ec45d4bcaffbb1fa1f971a4eaffa41ed406..59a7e6e795942cbcca00468d0aa3cd0994126c25 100644 (file)
@@ -59,7 +59,7 @@ void XonoticViewDialog_fill(entity me)
                me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Velocity zoom:")));
                me.TD(me, 1, 2, e = makeXonoticTextSlider("cl_velocityzoom_type"));
                        e.addValue(e, ZCTX(_("VZOOM^Disabled")), "0");
-                       e.addValue(e, ZCTX(_("VZOOM^Forward only")), "3");
+                       e.addValue(e, ZCTX(_("VZOOM^Forward only")), "2");
                        e.addValue(e, ZCTX(_("VZOOM^All directions")), "1");
                        e.configureXonoticTextSliderValues(e);
        me.TR(me);
@@ -88,8 +88,8 @@ void XonoticViewDialog_fill(entity me)
                setDependent(e, "chase_active", -1, 0);
        me.TR(me);
                me.TDempty(me, 0.2);
-               me.TD(me, 1, 2.8, e = makeXonoticCheckBoxEx(0.65, 0, "cl_bobcycle", _("View bobbing while walking around")));
-               makeMulti(e, "cl_bob2cycle");
+               me.TD(me, 1, 2.8, e = makeXonoticCheckBoxEx(0.01, 0, "cl_bob", _("View bobbing while walking around")));
+               makeMulti(e, "cl_bob2");
                setDependent(e, "chase_active", -1, 0);
        me.TR(me);
        me.TR(me);
index 418d41c340b287af46de6f780dbc83d142450ddf..fa3549154b0e807eddc63391b04154c1baa9db65 100644 (file)
@@ -62,13 +62,13 @@ void XonoticWeaponsDialog_fill(entity me)
                me.TDempty(me, 0.2);
                me.TD(me, 1, 2.8, e = makeXonoticCheckBox(0, "cl_bobmodel", _("Gun model bobbing")));
                setDependent(e, "r_drawviewmodel", 1, 1);
-       me.TR(me);
-       me.TR(me);
-               me.TDempty(me, 0.2);
-               me.TD(me, 1, 0.8, e = makeXonoticTextLabel(0, ZCTX(_("VWMDL^Scale"))));
-               setDependent(e, "r_drawviewmodel", 1, 1);
-               me.TD(me, 1, 2, e = makeXonoticSlider(0.1, 2, 0.1, "cl_viewmodel_scale"));
-               setDependent(e, "r_drawviewmodel", 1, 1);
+       //me.TR(me);
+       //me.TR(me);
+       //      me.TDempty(me, 0.2);
+       //      me.TD(me, 1, 0.8, e = makeXonoticTextLabel(0, ZCTX(_("VWMDL^Scale"))));
+       //      setDependent(e, "r_drawviewmodel", 1, 1);
+       //      me.TD(me, 1, 2, e = makeXonoticSlider(0.1, 2, 0.1, "cl_viewmodel_scale"));
+       //      setDependent(e, "r_drawviewmodel", 1, 1);
                        
        me.gotoRC(me, me.rows - 1, 0);
                me.TD(me, 1, me.columns, e = makeXonoticButton(_("OK"), '0 0 0'));
index fd84711861d76cf5b1f4cd3545420f07662b1959..71de59dac2e33166fb3479d29655656498a8089c 100644 (file)
@@ -18,7 +18,7 @@ void XonoticQuitDialog_fill(entity me)
                me.TD(me, 1, 2, makeXonoticTextLabel(0.5, _("Are you sure you want to quit?")));
        me.TR(me);
        me.TR(me);
-               me.TD(me, 1, 1, e = makeXonoticCommandButton(_("Yes"), '1 0 0', "quit", 0));
+               me.TD(me, 1, 1, e = makeXonoticCommandButton(_("Yes"), '1 0 0', "echo ]quit\nquit", 0));
                me.TD(me, 1, 1, e = makeXonoticButton(_("No"), '0 1 0'));
                        e.onClick = Dialog_Close;
                        e.onClickEntity = me;
index 8e80495321436beaeeeed91eca8447e5ee00cdd5..174873fe7fc79f211a41d0321a1bae083b977e65 100644 (file)
@@ -23,14 +23,14 @@ void XonoticAudioSettingsTab_fill(entity me)
        entity e, s, sl;
 
        me.TR(me);
-               s = makeXonoticDecibelsSlider(-20, 0, 0.5, "mastervolume");
+               s = makeXonoticDecibelsSlider(-40, 0, 1, "mastervolume");
                me.TD(me, 1, 1, e = makeXonoticSliderCheckBox(-1000000, 1, s, _("Master:")));
                if(s.value != e.savedValue)
                        e.savedValue = 0; // default
                me.TD(me, 1, 2, s);
        me.TR(me);
                me.TDempty(me, 0.2);
-               s = makeXonoticDecibelsSlider(-20, 0, 0.5, "bgmvolume");
+               s = makeXonoticDecibelsSlider(-40, 0, 1, "bgmvolume");
                makeMulti(s, "snd_channel8volume");
                me.TD(me, 1, 0.8, e = makeXonoticSliderCheckBox(-1000000, 1, s, _("Music:")));
                if(s.value != e.savedValue)
@@ -40,7 +40,7 @@ void XonoticAudioSettingsTab_fill(entity me)
                setDependentStringNotEqual(s, "mastervolume", "0");
        me.TR(me);
                me.TDempty(me, 0.2);
-               s = makeXonoticDecibelsSlider(-20, 0, 0.5, "snd_staticvolume");
+               s = makeXonoticDecibelsSlider(-40, 0, 1, "snd_staticvolume");
                makeMulti(s, "snd_channel9volume");
                me.TD(me, 1, 0.8, e = makeXonoticSliderCheckBox(-1000000, 1, s, ZCTX(_("VOL^Ambient:"))));
                if(s.value != e.savedValue)
@@ -50,7 +50,7 @@ void XonoticAudioSettingsTab_fill(entity me)
                setDependentStringNotEqual(s, "mastervolume", "0");
        me.TR(me);
                me.TDempty(me, 0.2);
-               s = makeXonoticDecibelsSlider(-20, 0, 0.5, "snd_channel0volume");
+               s = makeXonoticDecibelsSlider(-40, 0, 1, "snd_channel0volume");
                me.TD(me, 1, 0.8, e = makeXonoticSliderCheckBox(-1000000, 1, s, _("Info:")));
                if(s.value != e.savedValue)
                        e.savedValue = 0; // default
@@ -59,7 +59,7 @@ void XonoticAudioSettingsTab_fill(entity me)
                setDependentStringNotEqual(s, "mastervolume", "0");
        me.TR(me);
                me.TDempty(me, 0.2);
-               s = makeXonoticDecibelsSlider(-20, 0, 0.5, "snd_channel3volume");
+               s = makeXonoticDecibelsSlider(-40, 0, 1, "snd_channel3volume");
                me.TD(me, 1, 0.8, e = makeXonoticSliderCheckBox(-1000000, 1, s, _("Items:")));
                if(s.value != e.savedValue)
                        e.savedValue = 0; // default
@@ -68,7 +68,7 @@ void XonoticAudioSettingsTab_fill(entity me)
                setDependentStringNotEqual(s, "mastervolume", "0");
        me.TR(me);
                me.TDempty(me, 0.2);
-               s = makeXonoticDecibelsSlider(-20, 0, 0.5, "snd_channel6volume");
+               s = makeXonoticDecibelsSlider(-40, 0, 1, "snd_channel6volume");
                me.TD(me, 1, 0.8, e = makeXonoticSliderCheckBox(-1000000, 1, s, _("Pain:")));
                if(s.value != e.savedValue)
                        e.savedValue = 0; // default
@@ -77,7 +77,7 @@ void XonoticAudioSettingsTab_fill(entity me)
                setDependentStringNotEqual(s, "mastervolume", "0");
        me.TR(me);
                me.TDempty(me, 0.2);
-               s = makeXonoticDecibelsSlider(-20, 0, 0.5, "snd_channel7volume");
+               s = makeXonoticDecibelsSlider(-40, 0, 1, "snd_channel7volume");
                me.TD(me, 1, 0.8, e = makeXonoticSliderCheckBox(-1000000, 1, s, _("Player:")));
                if(s.value != e.savedValue)
                        e.savedValue = 0; // default
@@ -86,7 +86,7 @@ void XonoticAudioSettingsTab_fill(entity me)
                setDependentStringNotEqual(s, "mastervolume", "0");
        me.TR(me);
                me.TDempty(me, 0.2);
-               s = makeXonoticDecibelsSlider(-20, 0, 0.5, "snd_channel4volume");
+               s = makeXonoticDecibelsSlider(-40, 0, 1, "snd_channel4volume");
                me.TD(me, 1, 0.8, e = makeXonoticSliderCheckBox(-1000000, 1, s, _("Shots:")));
                if(s.value != e.savedValue)
                        e.savedValue = 0; // default
@@ -95,7 +95,7 @@ void XonoticAudioSettingsTab_fill(entity me)
                setDependentStringNotEqual(s, "mastervolume", "0");
        me.TR(me);
                me.TDempty(me, 0.2);
-               s = makeXonoticDecibelsSlider(-20, 0, 0.5, "snd_channel2volume");
+               s = makeXonoticDecibelsSlider(-40, 0, 1, "snd_channel2volume");
                me.TD(me, 1, 0.8, e = makeXonoticSliderCheckBox(-1000000, 1, s, _("Voice:")));
                if(s.value != e.savedValue)
                        e.savedValue = 0; // default
@@ -104,7 +104,7 @@ void XonoticAudioSettingsTab_fill(entity me)
                setDependentStringNotEqual(s, "mastervolume", "0");
        me.TR(me);
                me.TDempty(me, 0.2);
-               s = makeXonoticDecibelsSlider(-20, 0, 0.5, "snd_channel1volume");
+               s = makeXonoticDecibelsSlider(-40, 0, 1, "snd_channel1volume");
                makeMulti(s, "snd_channel5volume"); // @!#%'n Tuba
                me.TD(me, 1, 0.8, e = makeXonoticSliderCheckBox(-1000000, 1, s, _("Weapons:")));
                if(s.value != e.savedValue)
@@ -114,12 +114,12 @@ void XonoticAudioSettingsTab_fill(entity me)
                setDependentStringNotEqual(s, "mastervolume", "0");
        me.TR(me);
        me.TR(me);
-               me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "menu_snd_attenuation_method", _("New style sound attenuation")));
+               me.TD(me, 1, 3, makeXonoticCheckBox(0, "menu_snd_attenuation_method", _("New style sound attenuation")));
        me.TR(me);
-               me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "snd_mutewhenidle", _("Mute sounds when not active")));
+               me.TD(me, 1, 3, makeXonoticCheckBox(0, "snd_mutewhenidle", _("Mute sounds when not active")));
        
        me.gotoRC(me, 0, 3.2); me.setFirstColumn(me, me.currentColumn);
-               me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Frequency:")));
+               me.TD(me, 1, 1, makeXonoticTextLabel(0, _("Frequency:")));
                me.TD(me, 1, 2, e = makeXonoticTextSlider("snd_speed"));
                        e.addValue(e, _("8 kHz"), "8000");
                        e.addValue(e, _("11.025 kHz"), "11025");
@@ -131,7 +131,7 @@ void XonoticAudioSettingsTab_fill(entity me)
                        e.addValue(e, _("48 kHz"), "48000");
                        e.configureXonoticTextSliderValues(e);
        me.TR(me);
-               me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Channels:")));
+               me.TD(me, 1, 1, makeXonoticTextLabel(0, _("Channels:")));
                me.TD(me, 1, 2, e = makeXonoticTextSlider("snd_channels"));
                        e.addValue(e, _("Mono"), "1");
                        e.addValue(e, _("Stereo"), "2");
@@ -148,33 +148,15 @@ void XonoticAudioSettingsTab_fill(entity me)
                me.TD(me, 1, 1.8, e = makeXonoticCheckBox(0, "snd_spatialization_control", _("Headphone friendly mode")));
                setDependent(e, "snd_channels", 1.5, 0.5);
        me.TR(me);
-       /*me.TR(me); // Samual: I REALLY don't think these are relevant to anyone, and just clutter up the menu pointlessly. The defaults are fine.
-               me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Spatial voices:")));
-               me.TD(me, 1, 2/3, e = makeXonoticRadioButton(1, "cl_voice_directional", "0", ZCTX(_("VOCS^None"))));
-               me.TD(me, 1, 2/3, e = makeXonoticRadioButton(1, "cl_voice_directional", "2", ZCTX(_("VOCS^Taunts"))));
-               me.TD(me, 1, 2/3, e = makeXonoticRadioButton(1, "cl_voice_directional", "1", ZCTX(_("VOCS^All"))));
        me.TR(me);
-               me.TDempty(me, 0.2);
-               me.TD(me, 1, 0.8, e = makeXonoticTextLabel(0, _("Taunt range:")));
-               setDependent(e, "cl_voice_directional", 0.5, -0.5);
-               me.TD(me, 1, 2, e = makeXonoticTextSlider("cl_voice_directional_taunt_attenuation"));
-                       e.addValue(e, ZCTX(_("RNG^Very short")), "3");
-                       e.addValue(e, ZCTX(_("RNG^Short")), "2");
-                       e.addValue(e, ZCTX(_("RNG^Normal")), "0.5");
-                       e.addValue(e, ZCTX(_("RNG^Long")), "0.25");
-                       e.addValue(e, ZCTX(_("RNG^Full")), "0.015625");
-                       e.configureXonoticTextSliderValues(e);
-               setDependent(e, "cl_voice_directional", 0.5, -0.5);
-       me.TR(me);*/
+               me.TD(me, 1, 3, makeXonoticCheckBox(0, "cl_hitsound", _("Hit indication sound")));
        me.TR(me);
-               me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "cl_hitsound", _("Hit indication sound")));
+               me.TD(me, 1, 3, makeXonoticCheckBox(0, "con_chatsound", _("Chat message sound")));
        me.TR(me);
-               me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "con_chatsound", _("Chat message sound")));
+               me.TD(me, 1, 3, makeXonoticCheckBoxEx(2, 0, "menu_sounds", _("Menu sounds")));
        me.TR(me);
-               me.TD(me, 1, 3, e = makeXonoticCheckBoxEx(2, 0, "menu_sounds", _("Menu sounds")));
        me.TR(me);
-       me.TR(me);
-               me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Time announcer:")));
+               me.TD(me, 1, 1, makeXonoticTextLabel(0, _("Time announcer:")));
                me.TD(me, 1, 2, e = makeXonoticTextSlider("cl_announcer_maptime"));
                        e.addValue(e, ZCTX(_("WRN^Disabled")), "0");
                        e.addValue(e, _("1 minute"), "1");
@@ -191,13 +173,12 @@ void XonoticAudioSettingsTab_fill(entity me)
                        e.savedValue = 0.65; // default
        me.TR(me);
                me.TDempty(me, 0.2);
-               me.TD(me, 1, 0.8, e = makeXonoticTextLabel(0, _("Frequency:")));
+               me.TD(me, 1, 0.8, makeXonoticTextLabel(0, _("Frequency:")));
                me.TD(me, 1, 2, sl);
        me.TR(me);
        me.TR(me);
                if(cvar("developer"))
-                       me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "showsound", _("Debug info about sounds")));
-       
+                       me.TD(me, 1, 3, makeXonoticCheckBox(0, "showsound", _("Debug info about sounds")));
 
        me.gotoRC(me, me.rows - 1, 0);
                me.TD(me, 1, me.columns, makeXonoticCommandButton(_("Apply immediately"), '0 0 0', "snd_restart; snd_attenuation_method_$menu_snd_attenuation_method; sendcvar cl_hitsound; sendcvar cl_autotaunt; sendcvar cl_voice_directional; sendcvar cl_voice_directional_taunt_attenuation", COMMANDBUTTON_APPLY));
index 8ef2e9d6313b7b8e038e66b80f31e6ee2bd4f297..1e315dc98bf540573ddf81c27c745901a92a4bad 100644 (file)
@@ -58,6 +58,9 @@ void XonoticEffectsSettingsTab_fill(entity me)
                        e.addValue(e, ZCTX(_("DET^Best")), "2");
                        e.addValue(e, ZCTX(_("DET^Insane")), "1");
                        e.configureXonoticTextSliderValues(e);
+       me.TR(me);
+               me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Playermodel LOD:")));
+               me.TD(me, 1, 2, e = makeXonoticSlider(4, 0, -0.1, "cl_playerdetailreduction"));
        me.TR(me);
                me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Texture resolution:")));
                me.TD(me, 1, 2, e = makeXonoticPicmipSlider());
@@ -70,7 +73,6 @@ void XonoticEffectsSettingsTab_fill(entity me)
                        e.addValue(e, ZCTX(_("RES^Good")), "-1");
                        e.addValue(e, ZCTX(_("RES^Best")), "-2");
                        e.configureXonoticTextSliderValues(e);
-       me.TR(me);
        me.TR(me);
                {
                        // detect texture compression method
index e743ccf2e4ef6cdfb9bcc13aae27b5f64a9b63eb..b9aab55ab74dda5cf007353946118592572a78f1 100644 (file)
@@ -20,7 +20,7 @@ entity makeXonoticMiscSettingsTab()
 void XonoticMiscSettingsTab_fill(entity me)
 {
        entity e;
-       entity sk;
+       //entity sk;
 
        me.TR(me);
                me.TD(me, 1, 3, e = makeXonoticTextLabel(0, _("Network:")));
index 81b89f7afc5e6bac15a3d2cb4a6537fc96594201..57bbc3cd21ecb93def8f27455bc01636e7905a29 100644 (file)
@@ -140,6 +140,6 @@ void XonoticVideoSettingsTab_fill(entity me)
        }
 
        me.gotoRC(me, me.rows - 1, 0);
-               me.TD(me, 1, me.columns, makeXonoticCommandButton(_("Apply immediately"), '0 0 0', "menu_cmd sync; vid_restart; menu_restart; togglemenu; defer 0.1 \"menu_cmd videosettings\"", COMMANDBUTTON_APPLY));
+               me.TD(me, 1, me.columns, makeXonoticCommandButton(_("Apply immediately"), '0 0 0', "menu_cmd sync; vid_restart; menu_restart; menu_cmd videosettings", COMMANDBUTTON_APPLY));
 }
 #endif
index 0ea54dbcaffa1cb2fc29fae26a229095df2298c7..5be639a07559ec27058539e8c838b3526f8e8d43 100644 (file)
@@ -27,7 +27,7 @@ CLASS(XonoticLanguageList) EXTENDS(XonoticListBox)
 
        ATTRIB(XonoticLanguageList, name, string, "languageselector") // change this to make it noninteractive (for first run dialog)
 
-       ATTRIB(XonoticLanguageList, doubleClickCommand, string, "menu_restart\ntogglemenu\ndefer 0.1 \"menu_cmd languageselect\"")
+       ATTRIB(XonoticLanguageList, doubleClickCommand, string, "prvm_language \"$_menu_prvm_language\"\nmenu_restart\nmenu_cmd languageselect")
 ENDCLASS(XonoticLanguageList)
 
 entity makeXonoticLanguageList();
@@ -85,7 +85,7 @@ void XonoticLanguageList_loadCvars(entity me)
 {
        string s;
        float i, n;
-       s = cvar_string("prvm_language");
+       s = cvar_string("_menu_prvm_language");
        n = me.nItems;
 
        // default to English
@@ -107,11 +107,14 @@ void XonoticLanguageList_loadCvars(entity me)
                        break;
                }
        }
+
+       // save it off (turning anything unknown into "en")
+       me.saveCvars(me);
 }
 
 void XonoticLanguageList_saveCvars(entity me)
 {
-       cvar_set("prvm_language", me.languageParameter(me, me.selectedItem, LANGPARM_ID));
+       cvar_set("_menu_prvm_language", me.languageParameter(me, me.selectedItem, LANGPARM_ID));
 }
 
 void XonoticLanguageList_clickListBoxItem(entity me, float i, vector where)
@@ -150,6 +153,7 @@ void XonoticLanguageList_getLanguages(entity me)
        buf = buf_create();
 
        fh = fopen("languages.txt", FILE_READ);
+       i = 0;
        while((s = fgets(fh)))
        {
                n = tokenize_console(s);
index 2adb9343e491b7f70f1355ad14865463753b5857..f9d86c2dd229276aadb7272c9484f165bb1ad606 100644 (file)
@@ -191,7 +191,7 @@ void MainWindow_configureMainWindow(entity me)
        // mutator dialogs
        i = spawnXonoticSandboxToolsDialog();
        i.configureDialog(i);
-       me.addItemCentered(me, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z);
+       me.addItemCentered(me, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z * SKINALPHA_DIALOG_SANDBOXTOOLS);
        
        
        // miscellaneous dialogs
index 82fdbfb5eb40d4bcfcefb45cd47c383a5421710c..44ca1b227943cf7da354dbe5219f72b387f3fa48 100644 (file)
@@ -64,9 +64,7 @@ void ServerList_Filter_Change(entity box, entity me);
 void ServerList_Favorite_Click(entity btn, entity me);
 void ServerList_Info_Click(entity btn, entity me);
 void ServerList_Update_favoriteButton(entity btn, entity me);
-#endif
 
-#ifdef IMPLEMENTATION
 float SLIST_FIELD_CNAME;
 float SLIST_FIELD_PING;
 float SLIST_FIELD_GAME;
@@ -82,6 +80,9 @@ float SLIST_FIELD_FREESLOTS;
 float SLIST_FIELD_PLAYERS;
 float SLIST_FIELD_QCSTATUS;
 float SLIST_FIELD_ISFAVORITE;
+#endif
+
+#ifdef IMPLEMENTATION
 void ServerList_UpdateFieldIDs()
 {
        SLIST_FIELD_CNAME = gethostcacheindexforkey( "cname" );
@@ -600,13 +601,14 @@ void XonoticServerList_drawListBoxItem(entity me, float i, vector absSize, float
        vector theColor;
        float theAlpha;
        float m, pure, freeslots, j, sflags;
-       string s, typestr, versionstr, k, v;
+       string s, typestr, versionstr, k, v, modname;
 
        if(isSelected)
                draw_Fill('0 0 0', '1 1 0', SKINCOLOR_LISTBOX_SELECTED, SKINALPHA_LISTBOX_SELECTED);
 
        s = gethostcachestring(SLIST_FIELD_QCSTATUS, i);
        m = tokenizebyseparator(s, ":");
+       typestr = "";
        if(m >= 2)
        {
                typestr = argv(0);
@@ -614,6 +616,8 @@ void XonoticServerList_drawListBoxItem(entity me, float i, vector absSize, float
        }
        freeslots = -1;
        sflags = -1;
+       modname = "";
+       pure = 0;
        for(j = 2; j < m; ++j)
        {
                if(argv(j) == "")
@@ -626,8 +630,31 @@ void XonoticServerList_drawListBoxItem(entity me, float i, vector absSize, float
                        freeslots = stof(v);
                else if(k == "F")
                        sflags = stof(v);
+               else if(k == "M")
+                       modname = v;
        }
 
+#ifdef COMPAT_NO_MOD_IS_XONOTIC
+       if(modname == "")
+               modname = "Xonotic";
+#endif
+
+       /*
+       SLIST_FIELD_MOD = gethostcacheindexforkey("mod");
+       s = gethostcachestring(SLIST_FIELD_MOD, i);
+       if(s != "data")
+               if(modname == "Xonotic")
+                       modname = s;
+       */
+
+       // list the mods here on which the pure server check actually works
+       if(modname != "Xonotic")
+       if(modname != "MinstaGib")
+       if(modname != "CTS")
+       if(modname != "NIX")
+       if(modname != "NewToys")
+               pure = 0;
+
        if(gethostcachenumber(SLIST_FIELD_FREESLOTS, i) <= 0)
                theAlpha = SKINALPHA_SERVERLIST_FULL;
        else if(freeslots == 0)
@@ -714,29 +741,56 @@ void XonoticServerList_drawListBoxItem(entity me, float i, vector absSize, float
                iconPos_x = (me.columnIconsSize - 3 * iconSize_x) * 0.5;
                iconPos_y = (1 - iconSize_y) * 0.5;
 
+               string n;
+
                if not(me.seenIPv4 && me.seenIPv6)
                {
                        iconPos_x += iconSize_x * 0.5;
                }
                else if(me.seenIPv4 && me.seenIPv6)
                {
+                       n = string_null;
                        if(isv6)
-                               draw_Picture(iconPos, strcat(SKINGFX_SERVERLIST_ICON, "_ipv6"), iconSize, '1 1 1', 1);
+                               draw_PreloadPictureWithFlags(n = strcat(SKINGFX_SERVERLIST_ICON, "_ipv6"), 0); // PRECACHE_PIC_MIPMAP
                        else if(isv4)
-                               draw_Picture(iconPos, strcat(SKINGFX_SERVERLIST_ICON, "_ipv4"), iconSize, '1 1 1', 1);
+                               draw_PreloadPictureWithFlags(n = strcat(SKINGFX_SERVERLIST_ICON, "_ipv4"), 0); // PRECACHE_PIC_MIPMAP
+                       if(n)
+                               draw_Picture(iconPos, n, iconSize, '1 1 1', 1);
                        iconPos_x += iconSize_x;
                }
 
                if(q > 0)
-                       draw_Picture(iconPos, strcat(SKINGFX_SERVERLIST_ICON, "_aeslevel", ftos(q)), iconSize, '1 1 1', 1);
+               {
+                       draw_PreloadPictureWithFlags(n = strcat(SKINGFX_SERVERLIST_ICON, "_aeslevel", ftos(q)), 0); // PRECACHE_PIC_MIPMAP
+                       draw_Picture(iconPos, n, iconSize, '1 1 1', 1);
+               }
                iconPos_x += iconSize_x;
 
-               if(pure == 0)
-                       draw_Picture(iconPos, strcat(SKINGFX_SERVERLIST_ICON, "_pure1"), iconSize, '1 1 1', 1);
+               if(modname == "Xonotic")
+               {
+                       if(pure == 0)
+                       {
+                               draw_PreloadPictureWithFlags(n = strcat(SKINGFX_SERVERLIST_ICON, "_pure1"), PRECACHE_PIC_MIPMAP);
+                               draw_Picture(iconPos, n, iconSize, '1 1 1', 1);
+                       }
+               }
+               else
+               {
+                       draw_PreloadPictureWithFlags(n = strcat(SKINGFX_SERVERLIST_ICON, "_mod_", modname), PRECACHE_PIC_MIPMAP);
+                       if(draw_PictureSize(n) == '0 0 0')
+                               draw_PreloadPictureWithFlags(n = strcat(SKINGFX_SERVERLIST_ICON, "_mod_"), PRECACHE_PIC_MIPMAP);
+                       if(pure == 0)
+                               draw_Picture(iconPos, n, iconSize, '1 1 1', 1);
+                       else
+                               draw_Picture(iconPos, n, iconSize, '1 1 1', SKINALPHA_SERVERLIST_ICON_NONPURE);
+               }
                iconPos_x += iconSize_x;
 
                if(sflags >= 0 && (sflags & SERVERFLAG_PLAYERSTATS))
-                               draw_Picture(iconPos, strcat(SKINGFX_SERVERLIST_ICON, "_stats1"), iconSize, '1 1 1', 1);
+               {
+                       draw_PreloadPictureWithFlags(n = strcat(SKINGFX_SERVERLIST_ICON, "_stats1"), 0); // PRECACHE_PIC_MIPMAP
+                       draw_Picture(iconPos, n, iconSize, '1 1 1', 1);
+               }
                iconPos_x += iconSize_x;
        }
 
index 68314cd027edc55b740ef325dbc6ca69e3a83065..fdb07870a411f12b8b068eaf1601437d966ba7ab 100644 (file)
@@ -175,7 +175,7 @@ void XonoticSkinList_drawListBoxItem(entity me, float i, vector absSize, float i
 void XonoticSkinList_setSkin(entity me)
 {
        me.saveCvars(me);
-       localcmd("\nmenu_restart\ntogglemenu\ndefer 0.1 \"menu_cmd skinselect\"\n");
+       localcmd("\nmenu_restart\nmenu_cmd skinselect\n");
 }
 
 void SetSkin_Click(entity btn, entity me)
index 24edb4cb91b6deef418b7d17053411e4912a578b..729bec00693e28f1707c8c12868cfe90d1bbb974 100644 (file)
@@ -9,6 +9,16 @@ entity makeXonoticDecibelsSlider(float, float, float, string);
 
 #ifdef IMPLEMENTATION
 
+float toDecibelOfSquare(float f)
+{
+       return 20.0 * log10(f);
+}
+
+float fromDecibelOfSquare(float f)
+{
+       return pow(10, f / 20.0);
+}
+
 entity makeXonoticDecibelsSlider(float theValueMin, float theValueMax, float theValueStep, string theCvar)
 {
        entity me;
@@ -24,32 +34,34 @@ void XonoticDecibelsSlider_loadCvars(entity me)
                return;
 
        v = cvar(me.cvarName);
-       if(v >= 0.98)
-               Slider_setValue( me, 0 );
-       else if(v < 0.0005)
-               Slider_setValue( me, -1000000 );
+
+       // snapping
+       if(v > fromDecibelOfSquare(me.valueMax - 0.5 * me.valueStep))
+               Slider_setValue(me, me.valueMax);
+       else if(v < fromDecibelOfSquare(me.valueMin - 0.5 * me.valueStep))
+               Slider_setValue(me, -1000000); // virtually infinite
        else
-               Slider_setValue( me, 0.1 * floor(0.5 + 10.0 * log10(cvar(me.cvarName)) * 10) );
+               Slider_setValue(me, me.valueStep * floor(0.5 + toDecibelOfSquare(v) / me.valueStep) );
 }
 void XonoticDecibelsSlider_saveCvars(entity me)
 {
        if not(me.cvarName)
                return;
 
-       if(me.value >= -0.1)
-               cvar_set(me.cvarName, "1");
-       if(me.value < -33)
+       if(me.value > me.valueMax - 0.5 * me.valueStep)
+               cvar_set(me.cvarName, ftos(fromDecibelOfSquare(me.valueMax)));
+       else if(me.value < me.valueMin - 0.5 * me.valueStep)
                cvar_set(me.cvarName, "0");
        else
-               cvar_set(me.cvarName, ftos(pow(10, me.value / 10)));
+               cvar_set(me.cvarName, ftos(fromDecibelOfSquare(me.value)));
 }
 
 string XonoticDecibelsSlider_valueToText(entity me, float v)
 {
-       if(v < -33)
-               return CTX(_("VOL^OFF"));
-       else if(v >= -0.1)
+       if(v > me.valueMax - 0.5 * me.valueStep)
                return CTX(_("VOL^MAX"));
+       else if(v < me.valueMin - 0.5 * me.valueStep)
+               return CTX(_("VOL^OFF"));
        return sprintf(_("%s dB"), SUPER(XonoticDecibelsSlider).valueToText(me, v));
 }
 
index 486bcce8dd0ac10095c3557131fada9592a32a82..4c03eaa5f9caa9edb5255ee3f4a217a904799463 100644 (file)
@@ -31,7 +31,7 @@ string getZonedTooltipForIdentifier(string s)
                if(t != "")
                        return strzone(t);
        }
-       if(prvm_language == "en" || prvm_language == "")
+       if(prvm_language == "en")
        {
                t = cvar_description(s);
                if(t != "" && t != "custom cvar")
@@ -256,21 +256,28 @@ void setDependentWeird(entity e, float(entity) func)
 float _Nex_ExtResponseSystem_Queried;
 string _Nex_ExtResponseSystem_UpdateTo;
 string _Nex_ExtResponseSystem_UpdateToURL;
+string _Nex_ExtResponseSystem_Packs;
+float _Nex_ExtResponseSystem_PacksStep;
 
 void URI_Get_Callback(float id, float status, string data)
 {
-       if (id == URI_GET_DISCARD)
+       if(url_URI_Get_Callback(id, status, data))
        {
-               // discard
+               // handled
        }
-       else if(id == URI_GET_UPDATENOTIFICATION)
+       else if (id == URI_GET_DISCARD)
        {
-               UpdateNotification_URI_Get_Callback(id, status, data);
+               // discard
        }
-       else if(id >= URI_GET_CURL && id <= URI_GET_CURL_END)
+       else if (id >= URI_GET_CURL && id <= URI_GET_CURL_END)
        {
+               // sv_cmd curl
                Curl_URI_Get_Callback(id, status, data);
        }
+       else if (id == URI_GET_UPDATENOTIFICATION)
+       {
+               UpdateNotification_URI_Get_Callback(id, status, data);
+       }
        else
        {
                print(sprintf(_("Received HTTP request data for an invalid id %d.\n"), id));
@@ -331,16 +338,105 @@ void UpdateNotification_URI_Get_Callback(float id, float status, string data)
                        _Nex_ExtResponseSystem_BannedServers = strzone(argv(3));
                        _Nex_ExtResponseSystem_BannedServersNeedsRefresh = 1;
                }
+
+               if(n >= 5)
+               {
+                       if(cvar("menu_updatecheck_getpacks"))
+                       {
+                               _Nex_ExtResponseSystem_Packs = strzone(argv(4));
+                               _Nex_ExtResponseSystem_PacksStep = 1;
+                       }
+               }
        }
 }
 
 // END OF URI SYSTEM ////////////////////////////////////////////////////////
 
+void updateCheck()
+{
+       if(cvar("menu_updatecheck"))
+       {
+               if(!_Nex_ExtResponseSystem_Queried)
+               {
+                       _Nex_ExtResponseSystem_Queried = 1;
+                       float startcnt;
+                       string uri;
+
+                       cvar_set("cl_startcount", ftos(startcnt = cvar("cl_startcount") + 1));
+
+                       // for privacy, munge the start count a little
+                       startcnt = floor((floor(startcnt / 10) + random()) * 10);
+                       uri = sprintf("http://www.xonotic.org/dl/checkupdate.txt?version=%s&cnt=%d", uri_escape(cvar_string("g_xonoticversion")), startcnt);
+
+#ifdef CVAR_POPCON
+                       float cvar_handle, popcon_handle;
+                       float n, i, j;
+                       string k, s;
+                       cvar_handle = buf_create();
+                       buf_cvarlist(cvar_handle, "", "");
+                       n = buf_getsize(cvar_handle);
+                       popcon_handle = buf_create();
+                       for(i= 0, j = 0; i < n; ++i)
+                       {
+                               k = bufstr_get(cvar_handle, i);
+                               if(!(cvar_type(k) & CVAR_TYPEFLAG_SAVED))
+                                       continue;
+                               s = sprintf("%s=%d", uri_escape(k), cvar_string(k) != cvar_defstring(k));
+                               bufstr_set(popcon_handle, j, s);
+                               ++j;
+                       }
+                       buf_del(cvar_handle);
+                       uri_postbuf(
+                               uri, URI_GET_UPDATENOTIFICATION,
+                               "application/x-www-form-urlencoded",
+                               "&",
+                               popcon_handle
+                       );
+                       buf_del(popcon_handle);
+#else
+                       uri_get(uri, URI_GET_UPDATENOTIFICATION);
+#endif
+               }
+       }
+
+       if(_Nex_ExtResponseSystem_PacksStep > 0)
+       {
+               float n, i;
+               float allgood;
+               n = tokenize_console(_Nex_ExtResponseSystem_Packs);
+               allgood = TRUE;
+               for(i = 0; i+1 < n; i += 2)
+               {
+                       if(fexists(argv(i+1)))
+                               continue;
+                       allgood = FALSE;
+                       if(_Nex_ExtResponseSystem_PacksStep == 1) // first run
+                               localcmd("\ncurl --pak \"", argv(i), "\"\n");
+               }
+               if(allgood)
+               {
+                       if(_Nex_ExtResponseSystem_PacksStep == 2)
+                       {
+                               if(!Menu_Active)
+                                       cvar_set("_menu_initialized", "0");
+                                       // HACK: cause m_hide call on next start
+                               localcmd("\nmenu_restart\n");
+                       }
+                       _Nex_ExtResponseSystem_PacksStep = 0;
+               }
+               else
+                       _Nex_ExtResponseSystem_PacksStep = 2;
+       }
+
+}
+
 float preMenuInit()
 {
        vector sz;
        vector boxA, boxB;
 
+       updateCheck();
+
        MapInfo_Cache_Create();
        MapInfo_Enumerate();
        if(!MapInfo_FilterGametype(MAPINFO_TYPE_ALL, 0, 0, 0, 1))
@@ -385,50 +481,7 @@ void preMenuDraw()
 {
        vector fs, sz, line, mid;
 
-       if(cvar("menu_updatecheck"))
-       {
-               if(!_Nex_ExtResponseSystem_Queried)
-               {
-                       _Nex_ExtResponseSystem_Queried = 1;
-                       float startcnt;
-                       string uri;
-
-                       cvar_set("cl_startcount", ftos(startcnt = cvar("cl_startcount") + 1));
-
-                       // for privacy, munge the start count a little
-                       startcnt = floor((floor(startcnt / 10) + random()) * 10);
-                       uri = sprintf("http://www.xonotic.org/dl/checkupdate.txt?version=%s&cnt=%d", uri_escape(cvar_string("g_xonoticversion")), startcnt);
-
-#ifdef CVAR_POPCON
-                       float cvar_handle, popcon_handle;
-                       float n, i, j;
-                       string k, s;
-                       cvar_handle = buf_create();
-                       buf_cvarlist(cvar_handle, "", "");
-                       n = buf_getsize(cvar_handle);
-                       popcon_handle = buf_create();
-                       for(i= 0, j = 0; i < n; ++i)
-                       {
-                               k = bufstr_get(cvar_handle, i);
-                               if(!(cvar_type(k) & CVAR_TYPEFLAG_SAVED))
-                                       continue;
-                               s = sprintf("%s=%d", uri_escape(k), cvar_string(k) != cvar_defstring(k));
-                               bufstr_set(popcon_handle, j, s);
-                               ++j;
-                       }
-                       buf_del(cvar_handle);
-                       uri_postbuf(
-                               uri, URI_GET_UPDATENOTIFICATION,
-                               "application/x-www-form-urlencoded",
-                               "&",
-                               popcon_handle
-                       );
-                       buf_del(popcon_handle);
-#else
-                       uri_get(uri, URI_GET_UPDATENOTIFICATION);
-#endif
-               }
-       }
+       updateCheck();
 
        if(_Nex_ExtResponseSystem_UpdateTo != "")
        {
@@ -569,6 +622,8 @@ float GameType_GetID(float cnt)
        #define GAMETYPE(id) if(i++ == cnt) return id;
        GAMETYPES
        #undef GAMETYPE
+
+       unused_float = i;
        
        return 0;
 }
index f682fd30fd39116221344e16fea723a4424fd1bf..be13ee289b25607149d3e803621b1234eae0b6cc 100644 (file)
@@ -23,15 +23,8 @@ string getZonedTooltipForIdentifier(string s);
 
 string resolvemod(string m);
 
-float URI_GET_DISCARD = 0;
-
-float URI_GET_UPDATENOTIFICATION = 1;
 void UpdateNotification_URI_Get_Callback(float id, float status, string data);
 
-float URI_GET_CURL = 2;
-float URI_GET_CURL_END = 9;
-void Curl_URI_Get_Callback(float id, float status, string data);
-
 void URI_Get_Callback(float id, float status, string data);
 
 // game type list box stuff (does not NEED to contain all game types, other
index 952c3c956af14273fa62a3ecded70b9935dfeb42..6790befe122be32a5159e5732fa2615efc5d6daa 100644 (file)
@@ -65,7 +65,7 @@ void XonoticWeaponsList_resizeNotify(entity me, vector relOrigin, vector relSize
 }
 float XonoticWeaponsList_mouseDrag(entity me, vector pos)
 {
-       float f, i, scrollbar;
+       float f, i;
        i = me.selectedItem;
        f = SUPER(XonoticWeaponsList).mouseDrag(me, pos);
        
@@ -97,7 +97,10 @@ void XonoticWeaponsList_drawListBoxItem(entity me, float i, vector absSize, floa
        if(isSelected)
                draw_Fill('0 0 0', '1 1 0', SKINCOLOR_LISTBOX_SELECTED, SKINALPHA_LISTBOX_SELECTED);
        e = get_weaponinfo(stof(argv(i)));
-       draw_Text(me.realUpperMargin * eY, e.message, me.realFontSize, '1 1 1', SKINALPHA_TEXT, 0);
+       string msg = e.message;
+       if(e.spawnflags & WEP_FLAG_MUTATORBLOCKED)
+               msg = sprintf(_("%s (mutator weapon)"), msg);
+       draw_Text(me.realUpperMargin * eY, msg, me.realFontSize, '1 1 1', SKINALPHA_TEXT, 0);
 }
 
 float XonoticWeaponsList_keyDown(entity me, float scan, float ascii, float shift)
index de6b52752b95b358503e9fdd1a846377bd4f6bc6..f17593af95c8cb54fc85ccb33073ddef8ce193d2 100644 (file)
@@ -62,32 +62,6 @@ void accuracy_resend(entity e)
 }
 
 // update accuracy stats
-void accuracy_set(entity e, float w, float fired, float hit)
-{
-       entity a;
-       float b;
-       a = e.accuracy;
-       if(!a)
-               return;
-       w -= WEP_FIRST;
-       b = accuracy_byte(a.(accuracy_hit[w]), a.(accuracy_fired[w]));
-       a.(accuracy_hit[w]) = hit;
-       a.(accuracy_fired[w]) = fired;
-
-    if(hit)
-        a.(accuracy_cnt_hit[w]) = 1;
-    a.(accuracy_cnt_fired[w]) = 1;
-
-       if(b == accuracy_byte(hit, fired))
-               return;
-       w = pow(2, w);
-       a.SendFlags |= w;
-       FOR_EACH_CLIENT(a)
-               if(a.classname == "spectator")
-                       if(a.enemy == e)
-                               a.SendFlags |= w;
-}
-
 .float hit_time;
 .float fired_time;
 
@@ -95,6 +69,8 @@ void accuracy_add(entity e, float w, float fired, float hit)
 {
        entity a;
        float b;
+       if(IS_INDEPENDENT_PLAYER(e))
+               return;
        a = e.accuracy;
        if(!a || !(hit || fired))
                return;
index 84488fc7796954883c6e484342945b597b5bc6eb..90dbb663ded8fd2645213eb80a9022143f8571ea 100644 (file)
@@ -8,7 +8,6 @@ void accuracy_free(entity e);
 void accuracy_resend(entity e);
 
 // update accuracy stats
-void accuracy_set(entity e, float w, float fired, float hit);
 void accuracy_add(entity e, float w, float fired, float hit);
 
 // helper
index c89c2b2efada451a84b1990255d437641088195b..ef81fd92bad7db138edb2fa1e1067d252bae875b 100644 (file)
@@ -9,21 +9,12 @@ entity spawnqueue_first;
 entity spawnqueue_last;
 entity champion;
 float warmup;
-float ca_teams_ok;
 .float caplayer;
 
 void PutObserverInServer();
 void PutClientInServer();
-void(entity e) ReturnFlag;
-void dom_controlpoint_setup();
-void onslaught_generator_reset();
-void onslaught_controlpoint_reset();
-void func_breakable_reset();
-void assault_objective_reset();
-void target_assault_roundend_reset();
 
 float next_round;
-float stopalivecheck;
 float redalive, bluealive, yellowalive, pinkalive;
 float totalalive;
 .float redalive_stat, bluealive_stat, yellowalive_stat, pinkalive_stat;
@@ -56,7 +47,7 @@ void reset_map(float dorespawn)
        race_ReadyRestart();
 
        for(self = world; (self = nextent(self)); )
-       if(clienttype(self) == CLIENTTYPE_NOTACLIENT && self.items != IT_STRENGTH && self.items != IT_INVINCIBLE) // don't respawn strength or shield, that will only lead to them spawning very early each match
+       if(clienttype(self) == CLIENTTYPE_NOTACLIENT)
        {
                if(self.reset)
                {
@@ -196,25 +187,39 @@ void Spawnqueue_Mark(entity e)
  * Blocks the players movement while countdown is active.
  * Unblocks the player once the countdown is over.
  *
- * Called in PlayerPostThink()
+ * Called in StartFrame()
  */
 float roundStartTime_prev; // prevent networkspam
 void Arena_Warmup()
 {
        float f;
-    entity e;
+       entity e;
 
+       if(gameover)
+       {
+               if(warmup && time < warmup)
+               {
+                       FOR_EACH_REALCLIENT(e)
+                               Send_CSQC_Centerprint_Generic_Expire(e, CPID_ROUND_STARTING);
+                       warmup = 0;
+               }
+               if(champion && g_arena)
+               {
+                       FOR_EACH_REALCLIENT(e)
+                               centerprint(e, strcat("The Champion is ", champion.netname));
+                       champion = world;
+               }
+               return;
+       }
        if((!g_arena && !g_ca && !g_freezetag) || (g_arena && !arena_roundbased) || (time < game_starttime))
                return;
 
        f = ceil(warmup - time);
 
-       allowed_to_spawn = 0;
-
        if(inWarmupStage)
                allowed_to_spawn = 1;
-       if(g_ca && !ca_teams_ok)
-               allowed_to_spawn = 1;
+       else if(!g_ca)
+               allowed_to_spawn = 0;
 
        if(time < warmup && !inWarmupStage)
        {
@@ -222,57 +227,60 @@ void Arena_Warmup()
                        allowed_to_spawn = 1;
                if(champion && g_arena)
                {
-                       FOR_EACH_PLAYER(e)
+                       FOR_EACH_REALCLIENT(e)
                                centerprint(e, strcat("The Champion is ", champion.netname));
                }
 
                if(f != roundStartTime_prev) {
                        roundStartTime_prev = f;
-                       if(f == 5)
-                               Announce("prepareforbattle");
-                       else if(f == 3)
-                               Announce("3");
-                       else if(f == 2)
-                               Announce("2");
-                       else if(f == 1)
-                               Announce("1");
-
-                       FOR_EACH_PLAYER(e)
-                               Send_CSQC_Centerprint_Generic(e, CPID_ROUND_STARTING, "Round will start in %d", 1, f);
+                       if(g_ca && !(red_players && blue_players)) {
+                               FOR_EACH_REALCLIENT(self)
+                                       Send_CSQC_Centerprint_Generic(self, CPID_ROUND_STARTING, "^1Need at least 1 player in each team to play CA", 2, 0);
+                               warmup = time + autocvar_g_ca_warmup;
+                       } else {
+                               if(f == 5)
+                                       Announce("prepareforbattle");
+                               else if(f == 3)
+                                       Announce("3");
+                               else if(f == 2)
+                                       Announce("2");
+                               else if(f == 1)
+                                       Announce("1");
+
+                               FOR_EACH_REALCLIENT(e)
+                                       Send_CSQC_Centerprint_Generic(e, CPID_ROUND_STARTING, "Round will start in %d", 1, f);
+                       }
                }
 
                if (g_arena) {
-                       if(self.spawned && self.classname == "player")
-                               self.movetype = MOVETYPE_NONE;
-
-                       self.velocity = '0 0 0';
-                       self.avelocity = '0 0 0';
-                       self.movement = '0 0 0';
+                       FOR_EACH_CLIENT(e)
+                       {
+                               if(e.spawned && e.classname == "player")
+                                       e.player_blocked = 1;
+                       }
                }
        }
        else if(f > -1 && f != roundStartTime_prev)
        {
                roundStartTime_prev = f;
-               Announce("begin");
-               FOR_EACH_PLAYER(e)
-                       Send_CSQC_Centerprint_Generic(e, CPID_ROUND_STARTING, "^1Begin!", 1, 0);
-
                if(g_ca) {
-                       float start_red_ca_players, start_blue_ca_players;
+                       if(red_players && blue_players)
+                               allowed_to_spawn = 0;
+                       else
+                               reset_map(TRUE);
+               } else {
+                       Announce("begin");
+                       FOR_EACH_REALCLIENT(e)
+                               Send_CSQC_Centerprint_Generic(e, CPID_ROUND_STARTING, "^1Begin!", 1, 0);
+               }
 
-                       FOR_EACH_PLAYER(e) {
-                               if (e.team == COLOR_TEAM1)
-                                       start_red_ca_players += 1;
-                               else if (e.team == COLOR_TEAM2)
-                                       start_blue_ca_players += 1;
+               if(g_arena) {
+                       FOR_EACH_CLIENT(e)
+                       {
+                               if(e.player_blocked)
+                                       e.player_blocked = 0;
                        }
-                       // teams are ok if there's at least 1 player in each team
-                       ca_teams_ok = (start_red_ca_players && start_blue_ca_players);
                }
-
-        if(self.classname == "player" && self.health > 0 && self.movetype == MOVETYPE_NONE)
-            self.movetype = MOVETYPE_WALK;
-
        }
 
        // clear champion to avoid centerprinting again the champion msg
@@ -372,61 +380,49 @@ void count_alive_players()
  *
  * Gets called in StartFrame()
  */
-float warntime;
 void Spawnqueue_Check()
 {
-       count_players();
-       if(g_ca || g_freezetag) // we want to perform this before the return block below (CA)...
+       if(warmup == 0 && g_ca && !inWarmupStage)
        {
-               count_alive_players();
+               if(red_players || blue_players)
+                       reset_map(TRUE);
+               return;
        }
        if(time < warmup + 1 || inWarmupStage || intermission_running)
                return;
 
        if(g_ca) {
-               if(!ca_teams_ok && (red_players && blue_players)) {
-                       reset_map(TRUE);
-               }
-               else if(!ca_teams_ok) {
-                       if (time > warntime)
-                       {
-                               FOR_EACH_PLAYER(self)
-                                       Send_CSQC_Centerprint_Generic(self, CPID_ROUND_STARTING, "^1Need at least 1 player in each team to play CA", 2, 0);
-                               warntime = time + 1;
-                       }
+               if(allowed_to_spawn) // round is not started yet
                        return;
-               }
-               else if(!next_round) {
-                       if((red_players && !blue_players) || (blue_players && !red_players)) {
-                               next_round = time + 5;
+               if(!next_round) {
+                       if(!(redalive && bluealive)) {
+                               // every player of (at least) one team is dead, round ends here
+                               if(redalive) {
+                                       play2all("ctf/red_capture.wav");
+                                       FOR_EACH_CLIENT(self) centerprint(self, "^1RED ^7team wins the round");
+                                       TeamScore_AddToTeam(COLOR_TEAM1, ST_SCORE, +1);
+                               }
+                               else if(bluealive) {
+                                       play2all("ctf/blue_capture.wav");
+                                       FOR_EACH_CLIENT(self) centerprint(self, "^4BLUE ^7team wins the round");
+                                       TeamScore_AddToTeam(COLOR_TEAM2, ST_SCORE, +1);
+                               }
+                               else
+                                       FOR_EACH_CLIENT(self) centerprint(self, "^7Round tied");
+                               next_round = -1;
                        }
-                       else if((!red_players && !blue_players) || time - warmup > autocvar_g_ca_round_timelimit) {
+                       else if(time - warmup > autocvar_g_ca_round_timelimit) {
                                FOR_EACH_CLIENT(self) centerprint(self, "^7Round tied");
                                next_round = time + 5;
                        }
-
                }
-               if(!stopalivecheck)
-               {
-                       if(redalive && !bluealive)
-                       {
-                               play2all("ctf/red_capture.wav");
-                               FOR_EACH_CLIENT(self) centerprint(self, "^1RED ^7team wins the round");
-                               TeamScore_AddToTeam(COLOR_TEAM1, ST_SCORE, +1);
-                               stopalivecheck = TRUE;
-                       }
-                       else if(bluealive && !redalive)
-                       {
-                               play2all("ctf/blue_capture.wav");
-                               FOR_EACH_CLIENT(self) centerprint(self, "^4BLUE ^7team wins the round");
-                               TeamScore_AddToTeam(COLOR_TEAM2, ST_SCORE, +1);
-                               stopalivecheck = TRUE;
-                       }
+               else if(next_round == -1) {
+                       // wait for killed players to be put as spectators
+                       if(!(red_players && blue_players))
+                               next_round = time + 5;
                }
-
-               if((next_round && next_round < time))
+               else if((next_round > 0 && next_round < time))
                {
-                       stopalivecheck = FALSE;
                        next_round = 0;
                        reset_map(TRUE);
                }
diff --git a/qcsrc/server/attic/nexball.qc b/qcsrc/server/attic/nexball.qc
new file mode 100644 (file)
index 0000000..a068a33
--- /dev/null
@@ -0,0 +1,738 @@
+//EF_BRIGHTFIELD|EF_BRIGHTLIGHT|EF_DIMLIGHT|EF_BLUE|EF_RED|EF_FLAME
+#define BALL_EFFECTMASK 1229
+#define BALL_MINS '-16 -16 -16'  // The model is 24*24*24
+#define BALL_MAXS '16 16 16'
+#define BALL_ATTACHORG '3 0 16'
+#define BALL_SPRITECOLOR '.91 .85 .62'
+#define BALL_FOOT   1
+#define BALL_BASKET 2
+//spawnflags
+#define GOAL_TOUCHPLAYER 1
+//goal types
+#define GOAL_FAULT -1
+#define GOAL_OUT -2
+
+#define CVTOV(s) s = cvar( #s )
+
+float g_nexball_football_boost_forward;
+float g_nexball_football_boost_up;
+float g_nexball_football_physics;
+float g_nexball_delay_idle;
+float g_nexball_basketball_delay_hold;
+float g_nexball_basketball_delay_hold_forteam;
+float g_nexball_basketball_effects_default;
+float g_nexball_basketball_teamsteal;
+float balls;
+float ball_scale;
+float nb_teams;
+
+.float teamtime;
+
+void nb_delayedinit();
+void nb_init() // Called early (worldspawn stage)
+{
+       CVTOV(g_nexball_meter_period); //sent with the client init entity
+       if (g_nexball_meter_period <= 0)
+               g_nexball_meter_period = 2; // avoid division by zero etc. due to silly users
+       g_nexball_meter_period = rint(g_nexball_meter_period * 32) / 32; //Round to 1/32ths to send as a byte multiplied by 32
+       addstat(STAT_NB_METERSTART, AS_FLOAT, metertime);
+
+       // General settings
+       CVTOV(g_nexball_football_boost_forward);   //100
+       CVTOV(g_nexball_football_boost_up);        //200
+       CVTOV(g_nexball_delay_idle);               //10
+       CVTOV(g_nexball_football_physics);         //0
+
+       radar_showennemies = autocvar_g_nexball_radar_showallplayers;
+
+       InitializeEntity(world, nb_delayedinit, INITPRIO_GAMETYPE);
+}
+
+float OtherTeam(float t)  //works only if there are two teams on the map!
+{
+       entity e;
+       e = find(world, classname, "nexball_team");
+       if (e.team == t)
+               e = find(e, classname, "nexball_team");
+       return e.team;
+}
+
+void ResetBall();
+
+void LogNB(string mode, entity actor)
+{
+       string s;
+       if(!autocvar_sv_eventlog)
+               return;
+       s = strcat(":nexball:", mode);
+       if(actor != world)
+               s = strcat(s, ":", ftos(actor.playerid));
+       GameLogEcho(s);
+}
+
+void ball_restart (void)
+{
+       if(self.owner)
+               DropBall(self, self.owner.origin, '0 0 0');
+       ResetBall();
+}
+
+void nexball_setstatus (void)
+{
+       entity oldself;
+       self.items &~= IT_KEY1;
+       if (self.ballcarried)
+       {
+               if (self.ballcarried.teamtime && (self.ballcarried.teamtime < time))
+               {
+                       bprint("The ", ColoredTeamName(self.team), " held the ball for too long.\n");
+                       oldself = self;
+                       self = self.ballcarried;
+                       DropBall(self, self.owner.origin, '0 0 0');
+                       ResetBall();
+                       self = oldself;
+               } else
+                       self.items |= IT_KEY1;
+       }
+}
+
+void relocate_nexball (void)
+{
+       tracebox(self.origin, BALL_MINS, BALL_MAXS, self.origin, TRUE, self);
+       if (trace_startsolid)
+       {
+               vector o;
+               o = self.origin;
+               if(!move_out_of_solid(self))
+                       objerror("could not get out of solid at all!");
+               print("^1NOTE: this map needs FIXING. ", self.classname, " at ", vtos(o - '0 0 1'));
+               print(" needs to be moved out of solid, e.g. by '", ftos(self.origin_x - o_x));
+               print(" ", ftos(self.origin_y - o_y));
+               print(" ", ftos(self.origin_z - o_z), "'\n");
+               self.origin = o;
+       }
+}
+
+void basketball_touch();
+void football_touch();
+
+void DropOwner (void)
+{
+       entity ownr;
+       ownr = self.owner;
+       DropBall(self, ownr.origin, ownr.velocity);
+       makevectors(ownr.v_angle_y * '0 1 0');
+       ownr.velocity += ('0 0 0.75' - v_forward) * 1000;
+       ownr.flags &~= FL_ONGROUND;
+}
+
+void GiveBall (entity plyr, entity ball)
+{
+       entity ownr;
+
+       if ((ownr = ball.owner))
+       {
+               ownr.effects &~= g_nexball_basketball_effects_default;
+               ownr.ballcarried = world;
+               if (ownr.metertime)
+               {
+                       ownr.metertime = 0;
+                       ownr.weaponentity.state = WS_READY;
+               }
+               WaypointSprite_Kill(ownr.waypointsprite_attachedforcarrier);
+       }
+       else
+       {
+               WaypointSprite_Kill(ball.waypointsprite_attachedforcarrier);
+       }
+
+       setattachment(ball, plyr, "");
+       setorigin(ball, BALL_ATTACHORG);
+
+       if (ball.team != plyr.team)
+               ball.teamtime = time + g_nexball_basketball_delay_hold_forteam;
+
+       ball.owner = ball.pusher = plyr; //"owner" is set to the player carrying, "pusher" to the last player who touched it
+       ball.team = plyr.team;
+       plyr.ballcarried = ball;
+       ball.dropperid = plyr.playerid;
+
+       plyr.effects |= g_nexball_basketball_effects_default;
+       ball.effects &~= g_nexball_basketball_effects_default;
+
+       ball.velocity = '0 0 0';
+       ball.movetype = MOVETYPE_NONE;
+       ball.touch = SUB_Null;
+       ball.effects |= EF_NOSHADOW;
+       ball.scale = 1; // scale down.
+
+       WaypointSprite_AttachCarrier("nb-ball", plyr, RADARICON_FLAGCARRIER, BALL_SPRITECOLOR);
+       WaypointSprite_UpdateRule(plyr.waypointsprite_attachedforcarrier, 0, SPRITERULE_DEFAULT);
+
+       if (g_nexball_basketball_delay_hold)
+       {
+               ball.think = DropOwner;
+               ball.nextthink = time + g_nexball_basketball_delay_hold;
+       }
+}
+
+void DropBall (entity ball, vector org, vector vel)
+{
+       ball.effects |= g_nexball_basketball_effects_default;
+       ball.effects &~= EF_NOSHADOW;
+       ball.owner.effects &~= g_nexball_basketball_effects_default;
+
+       setattachment(ball, world, "");
+       setorigin (ball, org);
+       ball.movetype = MOVETYPE_BOUNCE;
+       ball.flags &~= FL_ONGROUND;
+       ball.scale = ball_scale;
+       ball.velocity = vel;
+       ball.ctf_droptime = time;
+       ball.touch = basketball_touch;
+       ball.think = ResetBall;
+       ball.nextthink = min(time + g_nexball_delay_idle, ball.teamtime);
+
+       if (ball.owner.metertime)
+       {
+               ball.owner.metertime = 0;
+               ball.owner.weaponentity.state = WS_READY;
+       }
+
+       WaypointSprite_Kill(ball.owner.waypointsprite_attachedforcarrier);
+       WaypointSprite_Spawn("nb-ball", 0, 0, ball, '0 0 64', world, ball.team, ball, waypointsprite_attachedforcarrier, FALSE, RADARICON_FLAGCARRIER, BALL_SPRITECOLOR); // no health bar please
+       WaypointSprite_UpdateRule(ball.waypointsprite_attachedforcarrier, 0, SPRITERULE_DEFAULT);
+
+       ball.owner.ballcarried = world;
+       ball.owner = world;
+}
+
+void InitBall (void)
+{
+       if (gameover) return;
+       self.flags &~= FL_ONGROUND;
+       self.movetype = MOVETYPE_BOUNCE;
+       if (self.classname == "nexball_basketball")
+               self.touch = basketball_touch;
+       else if (self.classname == "nexball_football")
+               self.touch = football_touch;
+       self.cnt = 0;
+       self.think = ResetBall;
+       self.nextthink = time + g_nexball_delay_idle + 3;
+       self.teamtime = 0;
+       self.pusher = world;
+       self.team = FALSE;
+       sound (self, CH_TRIGGER, self.noise1, VOL_BASE, ATTN_NORM);
+       WaypointSprite_Ping(self.waypointsprite_attachedforcarrier);
+       LogNB("init", world);
+}
+
+void ResetBall (void)
+{
+       if (self.cnt < 2) { // step 1
+               if (time == self.teamtime)
+                       bprint("The ", ColoredTeamName(self.team), " held the ball for too long.\n");
+               self.touch = SUB_Null;
+               self.movetype = MOVETYPE_NOCLIP;
+               self.velocity = '0 0 0'; // just in case?
+               if(!self.cnt)
+                       LogNB("resetidle", world);
+               self.cnt = 2;
+               self.nextthink = time;
+       } else if (self.cnt < 4) { // step 2 and 3
+//             dprint("Step ", ftos(self.cnt), ": Calculated velocity: ", vtos(self.spawnorigin - self.origin), ", time: ", ftos(time), "\n");
+               self.velocity = (self.spawnorigin - self.origin) * (self.cnt - 1); // 1 or 0.5 second movement
+               self.nextthink = time + 0.5;
+               self.cnt += 1;
+       } else { // step 4
+//             dprint("Step 4: time: ", ftos(time), "\n");
+               if (vlen(self.origin - self.spawnorigin) > 10) // should not happen anymore
+                       dprint("The ball moved too far away from its spawn origin.\nOffset: ",
+                              vtos(self.origin - self.spawnorigin), " Velocity: ", vtos(self.velocity), "\n");
+               self.velocity = '0 0 0';
+               setorigin(self, self.spawnorigin); // make sure it's positioned correctly anyway
+               self.movetype = MOVETYPE_NONE;
+               self.think = InitBall;
+               self.nextthink = max(time, game_starttime) + autocvar_g_nexball_delay_start;
+       }
+}
+
+void football_touch (void)
+{
+       if (other.solid == SOLID_BSP) {
+               if (time > self.lastground + 0.1)
+               {
+                       sound (self, CH_TRIGGER, self.noise, VOL_BASE, ATTN_NORM);
+                       self.lastground = time;
+               }
+               if (vlen(self.velocity) && !self.cnt)
+                       self.nextthink = time + g_nexball_delay_idle;
+               return;
+       }
+       if (other.classname != "player")
+               return;
+       if (other.health < 1)
+               return;
+       if (!self.cnt)
+               self.nextthink = time + g_nexball_delay_idle;
+
+       self.pusher = other;
+       self.team = other.team;
+
+       if (g_nexball_football_physics == -1) { // MrBougo try 1, before decompiling Rev's original
+               if (vlen(other.velocity))
+                       self.velocity = other.velocity * 1.5 + '0 0 1' * g_nexball_football_boost_up;
+       } else if (g_nexball_football_physics == 1) { // MrBougo's modded Rev style: partially independant of the height of the aiming point
+               makevectors(other.v_angle);
+               self.velocity = other.velocity + v_forward * g_nexball_football_boost_forward + '0 0 1' * g_nexball_football_boost_up;
+       } else if (g_nexball_football_physics == 2) { // 2nd mod try: totally independant. Really playable!
+               makevectors(other.v_angle_y * '0 1 0');
+               self.velocity = other.velocity + v_forward * g_nexball_football_boost_forward + v_up * g_nexball_football_boost_up;
+       } else { // Revenant's original style (from the original mod's disassembly, acknowledged by Revenant)
+               makevectors(other.v_angle);
+               self.velocity = other.velocity + v_forward * g_nexball_football_boost_forward + v_up * g_nexball_football_boost_up;
+       }
+       self.avelocity = -250 * v_forward;  // maybe there is a way to make it look better?
+}
+
+void basketball_touch (void)
+{
+       if (other.ballcarried)
+       {
+               football_touch();
+               return;
+       }
+       if (!self.cnt && other.classname == "player" && (other.playerid != self.dropperid || time > self.ctf_droptime + autocvar_g_nexball_delay_collect)) {
+               if (other.health <= 0)
+                       return;
+               LogNB("caught", other);
+               GiveBall(other, self);
+       } else if (other.solid == SOLID_BSP) {
+               sound (self, CH_TRIGGER, self.noise, VOL_BASE, ATTN_NORM);
+               if (vlen(self.velocity) && !self.cnt)
+                       self.nextthink = min(time + g_nexball_delay_idle, self.teamtime);
+       }
+}
+
+void GoalTouch (void)
+{
+       entity ball;
+       float isclient, pscore, otherteam;
+       string pname;
+
+       if (gameover) return;
+       if ((self.spawnflags & GOAL_TOUCHPLAYER) && other.ballcarried)
+               ball = other.ballcarried;
+       else
+               ball = other;
+       if (ball.classname != "nexball_basketball")
+       if (ball.classname != "nexball_football")
+               return;
+       if ((!ball.pusher && self.team != GOAL_OUT) || ball.cnt)
+               return;
+       EXACTTRIGGER_TOUCH;
+
+
+       if(nb_teams == 2)
+               otherteam = OtherTeam(ball.team);
+
+       if((isclient = ball.pusher.flags & FL_CLIENT))
+               pname = ball.pusher.netname;
+       else
+               pname = "Someone (?)";
+
+       if        (ball.team == self.team) //owngoal (regular goals)
+       {
+               LogNB("owngoal", ball.pusher);
+               bprint("Boo! ", pname, "^7 scored a goal against their own team!\n");
+               pscore = -1;
+       } else if (self.team == GOAL_FAULT) {
+               LogNB("fault", ball.pusher);
+               if (nb_teams == 2)
+                       bprint(ColoredTeamName(otherteam), " gets a point due to ", pname, "^7's silliness.\n");
+               else
+                       bprint(ColoredTeamName(ball.team), " loses a point due to ", pname, "^7's silliness.\n");
+               pscore = -1;
+       } else if (self.team == GOAL_OUT) {
+               LogNB("out", ball.pusher);
+               if ((self.spawnflags & GOAL_TOUCHPLAYER) && ball.owner)
+                       bprint(pname, "^7 went out of bounds.\n");
+               else
+                       bprint("The ball was returned.\n");
+               pscore = 0;
+       } else {                           //score
+               LogNB(strcat("goal:", ftos(self.team)), ball.pusher);
+               bprint("Goaaaaal! ", pname, "^7 scored a point for the ", ColoredTeamName(ball.team), ".\n");
+               pscore = 1;
+       }
+
+       sound (ball, CH_TRIGGER, self.noise, VOL_BASE, ATTN_NONE);
+
+       if(ball.team && pscore)
+       {
+               if (nb_teams == 2 && pscore < 0)
+                       TeamScore_AddToTeam(otherteam, ST_NEXBALL_GOALS, -pscore);
+               else
+                       TeamScore_AddToTeam(ball.team, ST_NEXBALL_GOALS, pscore);
+       }
+       if (isclient)
+       {
+               if (pscore > 0)
+                       PlayerScore_Add(ball.pusher, SP_NEXBALL_GOALS, pscore);
+               else if (pscore < 0)
+                       PlayerScore_Add(ball.pusher, SP_NEXBALL_FAULTS, -pscore);
+       }
+
+       if (ball.owner) // Happens on spawnflag GOAL_TOUCHPLAYER
+               DropBall(ball, ball.owner.origin, ball.owner.velocity);
+
+       WaypointSprite_Ping(ball.waypointsprite_attachedforcarrier);
+
+       ball.cnt = 1;
+       ball.think = ResetBall;
+       if (ball.classname == "nexball_basketball")
+               ball.touch = football_touch; // better than SUB_Null: football control until the ball gets reset
+       ball.nextthink = time + autocvar_g_nexball_delay_goal * (self.team != GOAL_OUT);
+}
+
+//=======================//
+//       team ents       //
+//=======================//
+void spawnfunc_nexball_team (void)
+{
+       if(!g_nexball) { remove(self); return; }
+       self.team = self.cnt + 1;
+}
+
+void nb_spawnteam (string teamname, float teamcolor)
+{
+       dprint("^2spawned team ", teamname, "\n");
+       entity e;
+       e = spawn();
+       e.classname = "nexball_team";
+       e.netname = teamname;
+       e.cnt = teamcolor;
+       e.team = e.cnt + 1;
+       nb_teams += 1;
+}
+
+void nb_spawnteams (void)
+{
+       float t_r, t_b, t_y, t_p;
+       entity e;
+       for(e = world; (e = find(e, classname, "nexball_goal")); )
+       {
+               switch(e.team)
+               {
+                       case COLOR_TEAM1: if(!t_r) { nb_spawnteam ("Red", e.team-1)   ; t_r = 1; } break;
+                       case COLOR_TEAM2: if(!t_b) { nb_spawnteam ("Blue", e.team-1)  ; t_b = 1; } break;
+                       case COLOR_TEAM3: if(!t_y) { nb_spawnteam ("Yellow", e.team-1); t_y = 1; } break;
+                       case COLOR_TEAM4: if(!t_p) { nb_spawnteam ("Pink", e.team-1)  ; t_p = 1; } break;
+               }
+       }
+}
+
+void nb_delayedinit (void)
+{
+       if (find(world, classname, "nexball_team") == world)
+               nb_spawnteams();
+       ScoreRules_nexball(nb_teams);
+}
+
+
+//=======================//
+//      spawnfuncs       //
+//=======================//
+
+void SpawnBall (void)
+{
+       if(!g_nexball) { remove(self); return; }
+
+//     balls += 4; // using the remaining bits to count balls will leave more than the max edict count, so it's fine
+
+       if (!self.model) {
+               self.model = "models/nexball/ball.md3";
+               self.scale = 1.3;
+       }
+
+       precache_model (self.model);
+       setmodel (self, self.model);
+       setsize (self, BALL_MINS, BALL_MAXS);
+       ball_scale = self.scale;
+
+       relocate_nexball();
+       self.spawnorigin = self.origin;
+
+       self.effects = self.effects | EF_LOWPRECISION;
+
+       if (cvar(strcat("g_", self.classname, "_trail"))) //nexball_basketball :p
+       {
+               self.glow_color = autocvar_g_nexball_trail_color;
+               self.glow_trail = TRUE;
+       }
+
+       self.movetype = MOVETYPE_FLY;
+
+       if (!autocvar_g_nexball_sound_bounce)
+               self.noise = "";
+       else if (!self.noise)
+               self.noise = "sound/nexball/bounce.wav";
+               //bounce sound placeholder (FIXME)
+       if (!self.noise1)
+               self.noise1 = "sound/nexball/drop.wav";
+               //ball drop sound placeholder (FIXME)
+       if (!self.noise2)
+               self.noise2 = "sound/nexball/steal.wav";
+               //stealing sound placeholder (FIXME)
+       if (self.noise) precache_sound (self.noise);
+       precache_sound (self.noise1);
+       precache_sound (self.noise2);
+
+       WaypointSprite_AttachCarrier("nb-ball", self, RADARICON_FLAGCARRIER, BALL_SPRITECOLOR); // the ball's team is not set yet, no rule update needed
+
+       self.reset = ball_restart;
+       self.think = InitBall;
+       self.nextthink = game_starttime + autocvar_g_nexball_delay_start;
+}
+
+void spawnfunc_nexball_basketball (void)
+{
+       self.classname = "nexball_basketball";
+       if not(balls & BALL_BASKET)
+       {
+               CVTOV(g_nexball_basketball_effects_default);
+               CVTOV(g_nexball_basketball_delay_hold);
+               CVTOV(g_nexball_basketball_delay_hold_forteam);
+               CVTOV(g_nexball_basketball_teamsteal);
+               g_nexball_basketball_effects_default = g_nexball_basketball_effects_default & BALL_EFFECTMASK;
+       }
+       if (!self.effects)
+               self.effects = g_nexball_basketball_effects_default;
+       self.solid = SOLID_TRIGGER;
+       balls |= BALL_BASKET;
+       self.bouncefactor = autocvar_g_nexball_basketball_bouncefactor;
+       self.bouncestop = autocvar_g_nexball_basketball_bouncestop;
+       SpawnBall();
+}
+
+void spawnfunc_nexball_football (void)
+{
+       self.classname = "nexball_football";
+       self.solid = SOLID_TRIGGER;
+       balls |= BALL_FOOT;
+       self.bouncefactor = autocvar_g_nexball_football_bouncefactor;
+       self.bouncestop = autocvar_g_nexball_football_bouncestop;
+       SpawnBall();
+}
+
+void SpawnGoal (void)
+{
+       if(!g_nexball) { remove(self); return; }
+       EXACTTRIGGER_INIT;
+       self.classname = "nexball_goal";
+       if (!self.noise)
+               self.noise = "ctf/respawn.wav";
+       precache_sound(self.noise);
+       self.touch = GoalTouch;
+}
+
+void spawnfunc_nexball_redgoal (void)
+{
+       self.team = COLOR_TEAM1;
+       SpawnGoal();
+}
+void spawnfunc_nexball_bluegoal (void)
+{
+       self.team = COLOR_TEAM2;
+       SpawnGoal();
+}
+void spawnfunc_nexball_yellowgoal (void)
+{
+       self.team = COLOR_TEAM3;
+       SpawnGoal();
+}
+void spawnfunc_nexball_pinkgoal (void)
+{
+       self.team = COLOR_TEAM4;
+       SpawnGoal();
+}
+
+void spawnfunc_nexball_fault (void)
+{
+       self.team = GOAL_FAULT;
+       if (!self.noise)
+               self.noise = "misc/typehit.wav";
+       SpawnGoal();
+}
+
+void spawnfunc_nexball_out (void)
+{
+       self.team = GOAL_OUT;
+       if (!self.noise)
+               self.noise = "misc/typehit.wav";
+       SpawnGoal();
+}
+
+//
+//Spawnfuncs preserved for compatibility
+//
+
+void spawnfunc_ball            (void) { spawnfunc_nexball_football(); }
+void spawnfunc_ball_football   (void) { spawnfunc_nexball_football(); }
+void spawnfunc_ball_basketball (void) { spawnfunc_nexball_basketball(); }
+// The "red goal" is defended by blue team. A ball in there counts as a point for red.
+void spawnfunc_ball_redgoal    (void) { spawnfunc_nexball_bluegoal(); } // I blame Revenant
+void spawnfunc_ball_bluegoal   (void) { spawnfunc_nexball_redgoal(); }  // but he didn't mean to cause trouble :p
+void spawnfunc_ball_fault      (void) { spawnfunc_nexball_fault(); }
+void spawnfunc_ball_bound      (void) { spawnfunc_nexball_out(); }
+
+//=======================//
+//      Weapon code      //
+//=======================//
+
+void W_Nexball_Touch (void)
+{
+       entity ball, attacker;
+       attacker = self.owner;
+
+       PROJECTILE_TOUCH;
+       if(attacker.team != other.team || g_nexball_basketball_teamsteal)
+       if((ball = other.ballcarried) && (attacker.classname == "player"))
+       {
+               other.velocity = other.velocity + normalize(self.velocity) * other.damageforcescale * autocvar_g_balance_nexball_secondary_force;
+               other.flags &~= FL_ONGROUND;
+               if(!attacker.ballcarried)
+               {
+                       LogNB("stole", attacker);
+                       sound (other, CH_TRIGGER, ball.noise2, VOL_BASE, ATTN_NORM);
+
+                       if(attacker.team == other.team && time > attacker.teamkill_complain)
+                       {
+                               attacker.teamkill_complain = time + 5;
+                               attacker.teamkill_soundtime = time + 0.4;
+                               attacker.teamkill_soundsource = other;
+                       }
+
+                       GiveBall(attacker, other.ballcarried);
+               }
+       }
+       remove(self);
+}
+
+void W_Nexball_Attack (float t)
+{
+       entity ball;
+       float mul, mi, ma;
+       if (!(ball = self.ballcarried))
+               return;
+
+       W_SetupShot (self, FALSE, 4, "nexball/shoot1.wav", CH_WEAPON_A, 0);
+       tracebox(w_shotorg, BALL_MINS, BALL_MAXS, w_shotorg, MOVE_WORLDONLY, world);
+       if(trace_startsolid)
+       {
+               if(self.metertime)
+                       self.metertime = 0; // Shot failed, hide the power meter
+               return;
+       }
+
+       //Calculate multiplier
+       if (t < 0)
+               mul = 1;
+       else
+       {
+               mi = autocvar_g_nexball_basketball_meter_minpower;
+               ma = max(mi, autocvar_g_nexball_basketball_meter_maxpower); // avoid confusion
+               //One triangle wave period with 1 as max
+               mul = 2 * mod(t, g_nexball_meter_period) / g_nexball_meter_period;
+               if (mul > 1)
+                       mul = 2 - mul;
+               mul = mi + (ma - mi) * mul; // range from the minimal power to the maximal power
+       }
+       DropBall (ball, w_shotorg, W_CalculateProjectileVelocity(self.velocity, w_shotdir * autocvar_g_balance_nexball_primary_speed * mul, FALSE));
+       //TODO: use the speed_up cvar too ??
+}
+
+void W_Nexball_Attack2 (void)
+{
+       entity missile;
+       if (!(balls & BALL_BASKET))
+               return;
+       W_SetupShot (self, FALSE, 2, "nexball/shoot2.wav", CH_WEAPON_A, 0);
+//     pointparticles(particleeffectnum("grenadelauncher_muzzleflash"), w_shotorg, w_shotdir * 1000, 1);
+       missile = spawn ();
+
+       missile.owner = self;
+       missile.classname = "ballstealer";
+
+       missile.movetype = MOVETYPE_FLY;
+       PROJECTILE_MAKETRIGGER(missile);
+
+       setmodel (missile, "models/elaser.mdl"); // precision set below
+       setsize (missile, '0 0 0', '0 0 0');
+       setorigin (missile, w_shotorg);
+
+       W_SetupProjectileVelocity(missile, autocvar_g_balance_nexball_secondary_speed, 0);
+       missile.angles = vectoangles (missile.velocity);
+       missile.touch = W_Nexball_Touch;
+       missile.think = SUB_Remove;
+       missile.nextthink = time + autocvar_g_balance_nexball_secondary_lifetime; //FIXME: use a distance instead?
+
+       missile.effects = EF_BRIGHTFIELD | EF_LOWPRECISION;
+       missile.flags = FL_PROJECTILE;
+}
+
+float w_nexball_weapon(float req)
+{
+       if (req == WR_THINK)
+       {
+               if (self.BUTTON_ATCK)
+               if (weapon_prepareattack(0, autocvar_g_balance_nexball_primary_refire))
+               if (autocvar_g_nexball_basketball_meter)
+               {
+                       if (self.ballcarried && !self.metertime)
+                               self.metertime = time;
+                       else
+                               weapon_thinkf(WFRAME_FIRE1, autocvar_g_balance_nexball_primary_animtime, w_ready);
+               }
+               else
+               {
+                       W_Nexball_Attack(-1);
+                       weapon_thinkf(WFRAME_FIRE1, autocvar_g_balance_nexball_primary_animtime, w_ready);
+               }
+               if (self.BUTTON_ATCK2)
+               if (weapon_prepareattack(1, autocvar_g_balance_nexball_secondary_refire))
+               {
+                       W_Nexball_Attack2();
+                       weapon_thinkf(WFRAME_FIRE2, autocvar_g_balance_nexball_secondary_animtime, w_ready);
+               }
+
+               if (!self.BUTTON_ATCK && self.metertime && self.ballcarried)
+               {
+                       W_Nexball_Attack(time - self.metertime);
+                       // DropBall or stealing will set metertime back to 0
+                       weapon_thinkf(WFRAME_FIRE1, autocvar_g_balance_nexball_primary_animtime, w_ready);
+               }
+       }
+       else if (req == WR_PRECACHE)
+       {
+               precache_model ("models/weapons/g_porto.md3");
+               precache_model ("models/weapons/v_porto.md3");
+               precache_model ("models/weapons/h_porto.iqm");
+               precache_model ("models/elaser.mdl");
+               precache_sound ("nexball/shoot1.wav");
+               precache_sound ("nexball/shoot2.wav");
+               precache_sound ("misc/typehit.wav");
+       }
+       else if (req == WR_SETUP)
+               weapon_setup(WEP_PORTO);
+       else if (req == WR_SUICIDEMESSAGE)
+       {
+               w_deathtypestring = "is a weirdo";
+       }
+       else if (req == WR_KILLMESSAGE)
+       {
+               w_deathtypestring = "got killed by #'s black magic";
+       }
+       // No need to check WR_CHECKAMMO* or WR_AIM, it should always return TRUE
+       return TRUE;
+}
index e336efc538db42d1d1f737b96713047762903fe5..c75a4387339f58f429cecf8b6d31acb2292652d6 100644 (file)
@@ -1,5 +1,6 @@
 float autocvar__notarget;
 float autocvar__independent_players;
+float autocvar__campaign_testrun;
 float autocvar__campaign_index;
 string autocvar__campaign_name;
 float autocvar__sv_init;
@@ -808,7 +809,6 @@ float autocvar_g_freezetag_warmup;
 float autocvar_g_full_getstatus_responses;
 float autocvar_g_fullbrightitems;
 float autocvar_g_fullbrightplayers;
-string autocvar_g_ghost_items_color;
 #define autocvar_g_grappling_hook cvar("g_grappling_hook")
 float autocvar_g_grappling_hook_tarzan;
 float autocvar_g_hitplots;
@@ -900,10 +900,10 @@ float autocvar_g_nexball_goalleadlimit;
 float autocvar_g_nexball_radar_showallplayers;
 float autocvar_g_nexball_sound_bounce;
 float autocvar_g_nexball_trail_color;
-float autocvar_g_nick_flood_penalty;
+//float autocvar_g_nick_flood_penalty;
 float autocvar_g_nick_flood_penalty_red;
 float autocvar_g_nick_flood_penalty_yellow;
-float autocvar_g_nick_flood_timeout;
+//float autocvar_g_nick_flood_timeout;
 float autocvar_g_nix_with_healtharmor;
 float autocvar_g_nix_with_laser;
 float autocvar_g_nix_with_powerups;
@@ -927,6 +927,7 @@ float autocvar_g_playerclip_collisions;
 string autocvar_g_playerstats_uri;
 float autocvar_g_powerups;
 float autocvar_g_projectiles_damage;
+float autocvar_g_projectiles_keep_owner;
 float autocvar_g_projectiles_newton_style;
 float autocvar_g_projectiles_newton_style_2_maxfactor;
 float autocvar_g_projectiles_newton_style_2_minfactor;
@@ -977,8 +978,15 @@ float autocvar_g_telefrags;
 float autocvar_g_telefrags_avoid;
 float autocvar_g_telefrags_teamplay;
 float autocvar_g_teleport_maxspeed;
+float autocvar_g_throughfloor_debug;
 float autocvar_g_throughfloor_damage;
 float autocvar_g_throughfloor_force;
+float autocvar_g_throughfloor_damage_max_stddev;
+float autocvar_g_throughfloor_force_max_stddev;
+float autocvar_g_throughfloor_min_steps_player;
+float autocvar_g_throughfloor_max_steps_player;
+float autocvar_g_throughfloor_min_steps_other;
+float autocvar_g_throughfloor_max_steps_other;
 float autocvar_g_triggerimpulse_accel_multiplier;
 float autocvar_g_triggerimpulse_accel_power;
 float autocvar_g_triggerimpulse_directional_multiplier;
@@ -1052,6 +1060,7 @@ float autocvar_minplayers;
 string autocvar_nextmap;
 float autocvar_prvm_backtraceforwarnings;
 string autocvar_quit_and_redirect;
+float autocvar_quit_and_redirect_timer;
 float autocvar_quit_when_empty;
 float autocvar_r_showbboxes;
 float autocvar_rescan_pending;
@@ -1162,7 +1171,7 @@ string autocvar_sv_vote_master_password;
 float autocvar_sv_vote_master_playerlimit;
 float autocvar_sv_vote_no_stops_vote;
 float autocvar_sv_vote_nospectators;
-string autocvar_sv_vote_only_commands;
+//string autocvar_sv_vote_only_commands;
 float autocvar_sv_vote_override_mostrecent;
 float autocvar_sv_vote_singlecount;
 float autocvar_sv_vote_stop;
@@ -1213,3 +1222,4 @@ float autocvar_g_sandbox_object_scale_max;
 float autocvar_g_sandbox_object_material_velocity_min;
 float autocvar_g_sandbox_object_material_velocity_factor;
 float autocvar_g_max_info_autoscreenshot;
+float autocvar_physics_ode;
index 039e21daed025bf588322272997456ed3f2fb240..b06d578d1813b096ea7a49e2475e3ce59dfea55c 100644 (file)
@@ -128,7 +128,10 @@ void bot_setnameandstuff()
        file = fopen(autocvar_bot_config_file, FILE_READ);
 
        if(file < 0)
+       {
                print(strcat("Error: Can not open the bot configuration file '",autocvar_bot_config_file,"'\n"));
+               readfile = "";
+       }
        else
        {
                RandomSelection_Init();
index 3aefc45a75323b45782bea68f59dacc6b986e490..e03cbac66a5937baa08cea8a4cd3575a6675c057 100644 (file)
@@ -94,7 +94,7 @@ void havocbot_ai()
                self.aistatus |= AI_STATUS_ATTACKING;
                self.aistatus &~= AI_STATUS_ROAMING;
 
-               if(self.weapons)
+               if(!WEPSET_EMPTY_E(self))
                {
                        weapon_action(self.weapon, WR_AIM);
                        if (autocvar_bot_nofire || IS_INDEPENDENT_PLAYER(self))
@@ -168,7 +168,7 @@ void havocbot_ai()
                        for(i = WEP_FIRST; i <= WEP_LAST; ++i)
                        {
                                e = get_weaponinfo(i);
-                               if ((self.weapons & W_WeaponBit(i)) && (e.spawnflags & WEP_FLAG_RELOADABLE) && (self.weapon_load[i] < cvar(strcat("g_balance_", e.netname, "_reload_ammo"))))
+                               if (WEPSET_CONTAINS_EW(self, i) && (e.spawnflags & WEP_FLAG_RELOADABLE) && (self.weapon_load[i] < cvar(strcat("g_balance_", e.netname, "_reload_ammo"))))
                                        self.switchweapon = i;
                        }
                }
@@ -493,8 +493,8 @@ void havocbot_movetogoal()
                {
                        if(fabs(self.velocity_z)<50)
                        {
-                               entity head, newgoal;
-                               float distance, bestdistance;
+                               entity head, newgoal = world;
+                               float distance, bestdistance = 0;
 
                                for (head = findchain(classname, "waypoint"); head; head = head.chain)
                                {
@@ -908,7 +908,7 @@ void havocbot_chooseenemy()
 
        self.dphitcontentsmask = DPCONTENTS_SOLID | DPCONTENTS_BODY | DPCONTENTS_CORPSE;
 
-       for(;;)
+       for(i = 0; ; ++i)
        {
                while (head)
                {
@@ -930,7 +930,7 @@ void havocbot_chooseenemy()
 
                // I want to do a second scan if no enemy was found or I don't have weapons
                // TODO: Perform the scan when using the rifle (requires changes on the rifle code)
-               if(best || self.weapons) // || self.weapon == WEP_RIFLE
+               if(best || !WEPSET_EMPTY_E(self)) // || self.weapon == WEP_RIFLE
                        break;
                if(i)
                        break;
@@ -939,7 +939,6 @@ void havocbot_chooseenemy()
                self.dphitcontentsmask |= DPCONTENTS_OPAQUE;
 
                head = head2;
-               ++i;
        }
 
        // Restore hit flags
@@ -960,7 +959,7 @@ float havocbot_chooseweapon_checkreload(float new_weapon)
        // if this weapon is scheduled for reloading, don't switch to it during combat
        if (self.weapon_load[new_weapon] < 0)
        {
-               float i, other_weapon_available;
+               float i, other_weapon_available = FALSE;
                for(i = WEP_FIRST; i <= WEP_LAST; ++i)
                {
                        // if we are out of ammo for all other weapons, it's an emergency to switch to anything else
@@ -979,7 +978,7 @@ void havocbot_chooseweapon()
        float i;
 
        // ;)
-       if(g_weaponarena == WEPBIT_TUBA)
+       if(WEPSET_EQ_AW(g_weaponarena_weapons, WEP_TUBA))
        {
                self.switchweapon = WEP_TUBA;
                return;
index 74c611ea18ddf6bdfe8f54dc94c3de1c29c59c57..178ee0da6e8cfe236be697a433ba96a6c4a4cb55 100644 (file)
@@ -60,7 +60,7 @@ float havocbot_ctf_teamcount(entity bot, vector org, float radius)
        if not(teamplay)
                return 0;
 
-       float c;
+       float c = 0;
        entity head;
 
        FOR_EACH_PLAYER(head)
@@ -562,9 +562,8 @@ void havocbot_role_ctf_defense()
                navigation_goalrating_start();
 
                // if enemies are closer to our base, go there
-               entity head, closestplayer;
-               float distance, bestdistance;
-               distance = 10000;
+               entity head, closestplayer = world;
+               float distance, bestdistance = 10000;
                FOR_EACH_PLAYER(head)
                {
                        if(head.deadflag!=DEAD_NO)
@@ -596,20 +595,21 @@ void havocbot_role_ctf_defense()
 void havocbot_calculate_middlepoint()
 {
        entity f;
-       vector p1, p2;
+       vector s = '0 0 0';
+       vector fo = '0 0 0';
+       float n = 0;
 
        f = ctf_worldflaglist;
        while (f)
        {
-               if(p1)
-                       p2 = f.origin;
-               else
-                       p1 = f.origin;
-
+               fo = f.origin;
+               s = s + fo;
                f = f.ctf_worldflagnext;
        }
-       havocbot_ctf_middlepoint = p1 + ((p2-p1) * 0.5);
-       havocbot_ctf_middlepoint_radius  = vlen(p2-p1) * 0.5;
+       if(!n)
+               return;
+       havocbot_ctf_middlepoint = s * (1.0 / n);
+       havocbot_ctf_middlepoint_radius  = vlen(fo - havocbot_ctf_middlepoint);
 }
 
 void havocbot_ctf_reset_role(entity bot)
index 3ae7379be757278c00478a55b39854b410027096..b17697d2f8524d6ae21bc3c9dee8205161a07cf3 100644 (file)
@@ -28,17 +28,18 @@ void(float ratingscale, vector org, float sradius) havocbot_goalrating_enemyplay
 void havocbot_goalrating_ons_offenseitems(float ratingscale, vector org, float sradius)
 {
        entity head;
-       float t, i, c, needarmor, needweapons;
+       float t, i, c, needarmor = FALSE, needweapons = FALSE;
 
        // Needs armor/health?
        if(self.health<100)
                needarmor = TRUE;
 
        // Needs weapons?
+       c = 0;
        for(i = WEP_FIRST; i <= WEP_LAST ; ++i)
        {
                // Find weapon
-               if(power2of(i-1) & self.weapons)
+               if(WEPSET_CONTAINS_EW(self, i))
                if(++c>=4)
                        break;
        }
@@ -58,7 +59,7 @@ void havocbot_goalrating_ons_offenseitems(float ratingscale, vector org, float s
        {
                // gather health and armor only
                if (head.solid)
-               if ( ((head.health || head.armorvalue) && needarmor) || (head.weapons && needweapons ) )
+               if ( ((head.health || head.armorvalue) && needarmor) || (!WEPSET_EMPTY_E(head) && needweapons ) )
                if (vlen(head.origin - org) < sradius)
                {
                        t = head.bot_pickupevalfunc(self, head);
@@ -98,7 +99,7 @@ void havocbot_role_ons_setrole(entity bot, float role)
 
 float havocbot_ons_teamcount(entity bot, float role)
 {
-       float c;
+       float c = 0;
        entity head;
 
        FOR_EACH_PLAYER(head)
@@ -152,6 +153,7 @@ void havocbot_goalrating_ons_controlpoints_attack(float ratingscale)
 
        // We'll consider only the best case
        bestvalue = 99999999999;
+       cp = world;
        for (; cp1; cp1 = cp1.chain)
        {
                if not(cp1.wpconsidered)
index 91eb2ec1a5afbce4132a566baa3c2d115f480edc..ac8ddd161b05c749a1e94bf79b29799bf2674c95 100644 (file)
@@ -85,8 +85,8 @@ void havocbot_goalrating_items(float ratingscale, vector org, float sradius)
                                        if( head.armorvalue && player.armorvalue > self.armorvalue)
                                                continue;
 
-                                       if( head.weapons )
-                                       if( (player.weapons & head.weapons) != head.weapons)
+                                       if( !WEPSET_EMPTY_E(head) )
+                                       if( !WEPSET_CONTAINS_ALL_EE(player, head) )
                                                continue;
 
                                        if (head.ammo_shells && player.ammo_shells > self.ammo_shells)
index 3387fdfef8fdcc1b4e5711cb9d3c165c979782b2..a5c60e3935bca171b1e16e30971d2b34997141cd 100644 (file)
@@ -27,6 +27,7 @@ float tracewalk(entity e, vector start, vector m1, vector m2, vector end, float
        dir = normalize(move);
        stepdist = 32;
        ignorehazards = FALSE;
+       swimming = FALSE;
 
        // Analyze starting point
        traceline(start, start, MOVE_NORMAL, e);
@@ -360,7 +361,6 @@ float navigation_waypoint_will_link(vector v, vector org, entity ent, float walk
 entity navigation_findnearestwaypoint_withdist(entity ent, float walkfromwp, float bestdist)
 {
        entity waylist, w, best;
-       float dist;
        vector v, org, pm1, pm2;
 
        pm1 = ent.origin + ent.mins;
@@ -1219,6 +1219,7 @@ void debuggoalstack()
        else if(self.goalcounter==29)goal=self.goalstack29;
        else if(self.goalcounter==30)goal=self.goalstack30;
        else if(self.goalcounter==31)goal=self.goalstack31;
+       else goal=world;
 
        if(goal==world)
        {
index 63a6cb336d4054c90d3aa0283be057005139bed0..5752e2f499c506e42686b8770e22a925dfe18473 100644 (file)
@@ -38,9 +38,9 @@ void bot_queuecommand(entity bot, string cmdstring)
                {
                        parm = substring(cmdstr, sp + 1, -1);
                        cmdstr = substring(cmdstr, 0, sp);
+                       if(cmdstr == "sound")
+                               precache_sound(cmdstr);
                }
-               if(cmdstr == "sound")
-                       precache_sound(cmdstr);
        }
 
        bot.bot_cmdqueuebuf_end += 1;
@@ -292,7 +292,7 @@ entity find_bot_by_name(string name)
 entity find_bot_by_number(float number)
 {
        entity bot;
-       float c;
+       float c = 0;
 
        if(!number)
                return world;
index 4db72e407da5676ad73a15eab5a3c170a1aafd67..d31a88b52fbe2c954fbc30c2ba01de8ca1b5c325 100644 (file)
@@ -1067,7 +1067,6 @@ void botframe_autowaypoints_fix(entity p, float walkfromwp, .entity fld)
 void botframe_autowaypoints()
 {
        entity p;
-       entity wp0, wp1;
        FOR_EACH_REALPLAYER(p)
        {
                if(p.deadflag)
index 5a68e96058ce0acd36724480d955d9a7213fb44f..b69e0fbe097479687200957a1f8bef54fda96c89 100644 (file)
@@ -15,7 +15,9 @@ float CampaignBailout(string s)
        cvar_string = cvar_string_normal;
        cvar_set = cvar_set_normal;
        cvar_set("g_campaign", "0");
-       print("campaign initialization failed: ", s, "\n");
+       print("^4campaign initialization failed: ", s, "\n");
+       if(autocvar__campaign_testrun)
+               error("CAMPAIGN FAIL AHAHAHAHAHAHAHAHAH))");
        return 1;
 }
 
@@ -118,10 +120,20 @@ void CampaignPostInit()
        // now some sanity checks
        if(Campaign_Invalid())
                return;
-       cvar_set("fraglimit", ftos(campaign_fraglimit[0]));
-       cvar_set("timelimit", ftos(campaign_timelimit[0]));
-       cvar_set_normal("fraglimit", ftos(campaign_fraglimit[0]));
-       cvar_set_normal("timelimit", ftos(campaign_timelimit[0]));
+       if(autocvar__campaign_testrun)
+       {
+               cvar_set("fraglimit", "0");
+               cvar_set("timelimit", "0.01");
+               cvar_set_normal("fraglimit", "0");
+               cvar_set_normal("timelimit", "0.01");
+       }
+       else
+       {
+               cvar_set("fraglimit", ftos(campaign_fraglimit[0]));
+               cvar_set("timelimit", ftos(campaign_timelimit[0]));
+               cvar_set_normal("fraglimit", ftos(campaign_fraglimit[0]));
+               cvar_set_normal("timelimit", ftos(campaign_timelimit[0]));
+       }
 }
 
 void CampaignSaveCvar(string cvarname, float value)
@@ -171,7 +183,7 @@ void CampaignPreIntermission()
        float lost;
        string savevar;
 
-       won = 0;
+       won = lost = 0;
 
        head = findchain(classname, "player");
        while(head)
@@ -186,7 +198,12 @@ void CampaignPreIntermission()
                head = head.chain;
        }
 
-       if(won == 1 && lost == 0 && checkrules_equality == 0 && cheatcount_total == 0)
+       if(autocvar__campaign_testrun)
+       {
+               campaign_won = 1;
+               bprint("Campaign test run, advancing level.\n");
+       }
+       else if(won == 1 && lost == 0 && checkrules_equality == 0)
        {
                if(autocvar_timelimit != 0 && autocvar_fraglimit != 0 && time > autocvar_timelimit * 60) // checks if the timelimit has expired.
                {
@@ -214,23 +231,23 @@ void CampaignPreIntermission()
                // sound!
        }
 
-       if(campaign_won)
+       if(campaign_won && cheatcount_total == 0 && !autocvar__campaign_testrun)
        {
-               if(campaign_entries < 2)
+               if(campaign_level == cvar_normal(campaign_index_var))
                {
-                       // I have won
-                       if(campaign_level == cvar_normal(campaign_index_var))
+                       if(campaign_entries < 2)
                        {
+                               // I have won
                                savevar = strcat("g_campaign", campaign_name, "_won");
                                CampaignSaveCvar(savevar, 1);
                                // advance level (for menu to show it right)
                                CampaignSaveCvar(campaign_index_var, campaign_level + 1);
                        }
-               }
-               else if(campaign_level == cvar_normal(campaign_index_var))
-               {
-                       // advance level
-                       CampaignSaveCvar(campaign_index_var, campaign_level + 1);
+                       else
+                       {
+                               // advance level
+                               CampaignSaveCvar(campaign_index_var, campaign_level + 1);
+                       }
                }
        }
 }
@@ -242,6 +259,7 @@ void CampaignPostIntermission()
        if(campaign_won && campaign_entries < 2)
        {
                // last map won!
+               print("^2test run: campaign looks GOOD\n");
                localcmd("togglemenu 1\n");
                CampaignFile_Unload();
                return;
index 5ba860940a014344a3338f27551448ddbce0ad31..2f6a660cb203f4debee868d307f05fd4c018e4d4 100644 (file)
@@ -145,7 +145,7 @@ float CheatImpulse(float i)
                        self.personal.ammo_fuel = self.ammo_fuel;
                        self.personal.health = self.health;
                        self.personal.armorvalue = self.armorvalue;
-                       self.personal.weapons = self.weapons;
+                       WEPSET_COPY_EE(self.personal, self);
                        self.personal.items = self.items;
                        self.personal.pauserotarmor_finished = self.pauserotarmor_finished;
                        self.personal.pauserothealth_finished = self.pauserothealth_finished;
@@ -206,7 +206,7 @@ float CheatImpulse(float i)
                                        self.ammo_fuel = 999;
                                        self.health = start_health;
                                        self.armorvalue = start_armorvalue;
-                                       self.weapons |= weaponsInMap;
+                                       WEPSET_OR_EA(self.personal, weaponsInMap);
                                        self.pauserotarmor_finished = time + autocvar_g_balance_pause_armor_rot_spawn;
                                        self.pauserothealth_finished = time + autocvar_g_balance_pause_health_rot_spawn;
                                        self.pauserotfuel_finished = time + autocvar_g_balance_pause_fuel_rot_spawn;
@@ -223,7 +223,7 @@ float CheatImpulse(float i)
                                        self.ammo_fuel = self.personal.ammo_fuel;
                                        self.health = self.personal.health;
                                        self.armorvalue = self.personal.armorvalue;
-                                       self.weapons = self.personal.weapons;
+                                       WEPSET_COPY_EE(self, self.personal);
                                        self.items = self.personal.items;
                                        self.pauserotarmor_finished = time + self.personal.pauserotarmor_finished - self.personal.teleport_time;
                                        self.pauserothealth_finished = time + self.personal.pauserothealth_finished - self.personal.teleport_time;
@@ -749,6 +749,7 @@ float CheatFrame()
 
                                float drag;
                                crosshair_trace_plusvisibletriggers(self);
+                               drag = FALSE;
                                if(vlen(self.origin - trace_ent.origin) <= autocvar_g_grab_range)
                                {
                                        switch(trace_ent.grab)
index ba4249744eb90862ab299b96b151ebdad0cd41da..704eff0ae00687c5de4402c4dff2a7367d54168e 100644 (file)
@@ -404,8 +404,7 @@ void PutObserverInServer (void)
        DropAllRunes(self);
        MUTATOR_CALLHOOK(MakePlayerObserver);
 
-       if (g_minstagib)
-               minstagib_stop_countdown();
+       minstagib_stop_countdown(self);
 
        Portal_ClearAll(self);
 
@@ -421,9 +420,6 @@ void PutObserverInServer (void)
        if(self.flagcarried)
                DropFlag(self.flagcarried, world, world);
 
-       if(self.ballcarried && g_nexball)
-               DropBall(self.ballcarried, self.origin + self.ballcarried.origin, self.velocity);
-
        WaypointSprite_PlayerDead();
 
        if not(g_ca)  // don't reset teams when moving a ca player to the spectators
@@ -489,7 +485,7 @@ void PutObserverInServer (void)
        setorigin (self, (spot.origin + PL_VIEW_OFS)); // offset it so that the spectator spawns higher off the ground, looks better this way
        self.prevorigin = self.origin;
        self.items = 0;
-       self.weapons = 0;
+       WEPSET_CLEAR_E(self);
        self.model = "";
        FixPlayermodel();
        setmodel(self, "null");
@@ -551,11 +547,11 @@ void FixPlayermodel()
        vector m1, m2;
 
        defaultmodel = "";
+       defaultskin = 0;
+       chmdl = FALSE;
 
        if(autocvar_sv_defaultcharacter == 1)
        {
-               defaultskin = 0;
-
                if(teamplay)
                {
                        string s;
@@ -645,11 +641,14 @@ Called when a client spawns in the server
 =============
 */
 //void() ctf_playerchanged;
+
 void PutClientInServer (void)
 {
        if(clienttype(self) == CLIENTTYPE_BOT)
        {
                self.classname = "player";
+               if(g_ca)
+                       self.caplayer = 1;
        }
        else if(clienttype(self) == CLIENTTYPE_REAL)
        {
@@ -657,7 +656,7 @@ void PutClientInServer (void)
                WriteByte(MSG_ONE, SVC_SETVIEW);
                WriteEntity(MSG_ONE, self);
        }
-       
+
        // reset player keys
        self.itemkeys = 0;
 
@@ -669,8 +668,7 @@ void PutClientInServer (void)
                        self.classname = "observer";
        }
 
-       if(g_arena || (g_ca && !allowed_to_spawn))
-       if(!self.spawned)
+       if((g_arena && !self.spawned) || (g_ca && !allowed_to_spawn))
                self.classname = "observer";
 
        if(gameover)
@@ -737,7 +735,7 @@ void PutClientInServer (void)
                        self.ammo_fuel = warmup_start_ammo_fuel;
                        self.health = warmup_start_health;
                        self.armorvalue = warmup_start_armorvalue;
-                       self.weapons = warmup_start_weapons;
+                       WEPSET_COPY_EA(self, warmup_start_weapons);
                }
                else
                {
@@ -748,10 +746,10 @@ void PutClientInServer (void)
                        self.ammo_fuel = start_ammo_fuel;
                        self.health = start_health;
                        self.armorvalue = start_armorvalue;
-                       self.weapons = start_weapons;
+                       WEPSET_COPY_EA(self, start_weapons);
                }
 
-               if(self.weapons & WEPBIT_SUPERWEAPONS) // exception for minstagib, as minstanex is a superweapon
+               if(WEPSET_CONTAINS_ANY_EA(self, WEPBIT_SUPERWEAPONS)) // exception for minstagib, as minstanex is a superweapon
                        self.superweapons_finished = time + autocvar_g_balance_superweapons_time;
                else
                        self.superweapons_finished = 0;
@@ -759,10 +757,10 @@ void PutClientInServer (void)
                if(g_weaponarena_random)
                {
                        if(g_weaponarena_random_with_laser)
-                               self.weapons &~= WEPBIT_LASER;
-                       self.weapons = randombits(self.weapons, g_weaponarena_random, FALSE);
+                               WEPSET_ANDNOT_EW(self, WEP_LASER);
+                       W_RandomWeapons(self, g_weaponarena_random);
                        if(g_weaponarena_random_with_laser)
-                               self.weapons |= WEPBIT_LASER;
+                               WEPSET_OR_EW(self, WEP_LASER);
                }
 
                self.items = start_items;
@@ -834,13 +832,12 @@ void PutClientInServer (void)
                self.lastrocket = world; // stop rocket guiding, no revenge from the grave!
                self.lastteleporttime = time; // prevent insane speeds due to changing origin
         self.hud = HUD_NORMAL;
-        
+
                if(g_arena)
                {
                        Spawnqueue_Remove(self);
                        Spawnqueue_Mark(self);
                }
-
                else if(g_ca)
                        self.caplayer = 1;
 
@@ -870,9 +867,6 @@ void PutClientInServer (void)
                //stuffcmd(self, "chase_active 0");
                //stuffcmd(self, "set viewsize $tmpviewsize \n");
 
-               if (autocvar_g_spawnsound)
-                       sound (self, CH_TRIGGER, "misc/spawn.wav", VOL_BASE, ATTN_NORM);
-
                if(g_assault) {
                        if(self.team == assault_attacker_team)
                                centerprint(self, "You are attacking!");
@@ -924,7 +918,10 @@ void PutClientInServer (void)
                        self.alivetime = time;
 
                antilag_clear(self);
-       } else if(self.classname == "observer" || (g_ca && !allowed_to_spawn)) {
+
+               if (autocvar_g_spawnsound)
+                       soundat(world, self.origin, CH_TRIGGER, "misc/spawn.wav", VOL_BASE, ATTN_NORM);
+       } else if(self.classname == "observer") {
                PutObserverInServer ();
        }
 
@@ -1358,7 +1355,7 @@ void ClientConnect (void)
                return;
        }
 
-       if(Ban_MaybeEnforceBan(self))
+       if(Ban_MaybeEnforceBanOnce(self))
                return;
 
        DecodeLevelParms();
@@ -1535,7 +1532,7 @@ void ClientConnect (void)
 
        if(clienttype(self) == CLIENTTYPE_REAL)
        {
-               if(autocvar_g_bugrigs || g_weaponarena == WEPBIT_TUBA)
+               if(autocvar_g_bugrigs || WEPSET_EQ_AW(g_weaponarena_weapons, WEP_TUBA))
                        stuffcmd(self, "cl_cmd settemp chase_active 1\n");
        }
 
@@ -1567,7 +1564,6 @@ void ClientConnect (void)
                        rr = CTS_RECORD;
                else
                        rr = RACE_RECORD;
-               t = stof(db_get(ServerProgsDB, strcat(GetMapname(), rr, "time")));
 
                msg_entity = self;
                race_send_recordtime(MSG_ONE);
@@ -1596,8 +1592,12 @@ void ClientConnect (void)
        CSQCMODEL_AUTOINIT();
 
        self.model_randomizer = random();
+    
+    if(clienttype(self) != CLIENTTYPE_REAL)
+        return;
+        
+    sv_notice_join();
 }
-
 /*
 =============
 ClientDisconnect
@@ -1653,8 +1653,6 @@ void ClientDisconnect (void)
        RemoveGrapplingHook(self);
        if(self.flagcarried)
                DropFlag(self.flagcarried, world, world);
-       if(self.ballcarried && g_nexball)
-               DropBall(self.ballcarried, self.origin + self.ballcarried.origin, self.velocity);
 
        // Here, everything has been done that requires this player to be a client.
 
@@ -1896,9 +1894,7 @@ void player_powerups (void)
                }
                if (self.items & IT_SUPERWEAPON)
                {
-                       //if(W_WeaponBit(self.weapon) & WEPBIT_SUPERWEAPONS)
-                       //      self.effects = self.effects | EF_RED;
-                       if (!(self.weapons & WEPBIT_SUPERWEAPONS))
+                       if (!WEPSET_CONTAINS_ANY_EA(self, WEPBIT_SUPERWEAPONS))
                        {
                                self.superweapons_finished = 0;
                                self.items = self.items - (self.items & IT_SUPERWEAPON);
@@ -1914,12 +1910,12 @@ void player_powerups (void)
                                if (time > self.superweapons_finished)
                                {
                                        self.items = self.items - (self.items & IT_SUPERWEAPON);
-                                       self.weapons &~= WEPBIT_SUPERWEAPONS;
+                                       WEPSET_ANDNOT_EA(self, WEPBIT_SUPERWEAPONS);
                                        sprint(self, "^3Superweapons have broken down\n");
                                }
                        }
                }
-               else if(self.weapons & WEPBIT_SUPERWEAPONS)
+               else if(WEPSET_CONTAINS_ANY_EA(self, WEPBIT_SUPERWEAPONS))
                {
                        if (time < self.superweapons_finished || (self.items & IT_UNLIMITED_SUPERWEAPONS))
                        {
@@ -1929,7 +1925,7 @@ void player_powerups (void)
                        else
                        {
                                self.superweapons_finished = 0;
-                               self.weapons &~= WEPBIT_SUPERWEAPONS; // just in case
+                               WEPSET_ANDNOT_EA(self, WEPBIT_SUPERWEAPONS);
                        }
                }
                else
@@ -2126,6 +2122,15 @@ void GetPressedKeys(void) {
                self.pressedkeys |= KEY_CROUCH;
        else
                self.pressedkeys &~= KEY_CROUCH;
+
+       if (self.BUTTON_ATCK)
+               self.pressedkeys |= KEY_ATCK;
+       else
+               self.pressedkeys &~= KEY_ATCK;
+       if (self.BUTTON_ATCK2)
+               self.pressedkeys |= KEY_ATCK2;
+       else
+               self.pressedkeys &~= KEY_ATCK2;
 }
 
 /*
@@ -2156,7 +2161,7 @@ void SpectateCopy(entity spectatee) {
        self.strength_finished = spectatee.strength_finished;
        self.invincible_finished = spectatee.invincible_finished;
        self.pressedkeys = spectatee.pressedkeys;
-       self.weapons = spectatee.weapons;
+       WEPSET_COPY_EE(self, spectatee);
        self.switchweapon = spectatee.switchweapon;
        self.switchingweapon = spectatee.switchingweapon;
        self.weapon = spectatee.weapon;
@@ -2314,7 +2319,7 @@ void ShowRespawnCountdown()
 .float prevent_join_msgtime;
 void LeaveSpectatorMode()
 {
-       if(nJoinAllowed(1)) {
+       if(nJoinAllowed(self)) {
                if(!teamplay || autocvar_g_campaign || autocvar_g_balance_teams || (self.wasplayer && autocvar_g_changeteam_banned) || self.team_forced > 0) {
                        self.classname = "player";
 
@@ -2364,26 +2369,36 @@ void LeaveSpectatorMode()
  * it checks whether the number of currently playing players exceeds g_maxplayers.
  * @return int number of free slots for players, 0 if none
  */
-float nJoinAllowed(float includeMe) {
+float nJoinAllowed(entity ignore) {
+       if(!ignore)
+       // this is called that way when checking if anyone may be able to join (to build qcstatus)
+       // so report 0 free slots if restricted
+       {
+               if(autocvar_g_forced_team_otherwise == "spectate")
+                       return 0;
+               if(autocvar_g_forced_team_otherwise == "spectator")
+                       return 0;
+       }
+
        if(self.team_forced < 0)
-               return FALSE; // forced spectators can never join
+               return 0; // forced spectators can never join
 
        // TODO simplify this
        entity e;
-
-       float totalClients;
+       float totalClients = 0;
        FOR_EACH_CLIENT(e)
-               totalClients += 1;
+               if(e != ignore)
+                       totalClients += 1;
 
        if (!autocvar_g_maxplayers)
-               return maxclients - totalClients + includeMe;
+               return maxclients - totalClients;
 
-       float currentlyPlaying;
+       float currentlyPlaying = 0;
        FOR_EACH_REALPLAYER(e)
                currentlyPlaying += 1;
 
        if(currentlyPlaying < autocvar_g_maxplayers)
-               return min(maxclients - totalClients + includeMe, autocvar_g_maxplayers - currentlyPlaying);
+               return min(maxclients - totalClients, autocvar_g_maxplayers - currentlyPlaying);
 
        return 0;
 }
@@ -3041,8 +3056,6 @@ void PlayerPostThink (void)
        }
        */
 
-       Arena_Warmup();
-
        //pointparticles(particleeffectnum("machinegun_impact"), self.origin + self.view_ofs + '0 0 7', '0 0 0', 1);
 
        if(self.waypointsprite_attachedforcarrier)
index 79087eb8a366e9a5ed91c67de9024d058ef3140f..51bfc62c6382a3fcf3c64e5aa22e4ebb8812c654 100644 (file)
@@ -875,6 +875,12 @@ void SV_PlayerPhysics()
 
        MUTATOR_CALLHOOK(PlayerPhysics);
 
+       if(self.player_blocked)
+       {
+               self.movement = '0 0 0';
+               self.disableclientprediction = 1;
+       }
+
        maxspd_mod = 1;
 
        swampspd_mod = 1;
index 49b52555f6ebb0734b8ee371a3b33f08b5cf8466..fd14d42b8d9aa4718450f3a68591d0a4a04bfc0c 100644 (file)
@@ -198,8 +198,6 @@ void CopyBody(float keepvelocity)
 
        Drag_MoveDrag(oldself, self);
 
-       self.owner = oldself;
-
        if(self.colormap <= maxclients && self.colormap > 0)
                self.colormap = 1024 + oldself.clientcolors;
 
@@ -362,7 +360,7 @@ void SpawnThrownWeapon (vector org, float w)
                float j;
                for(j = WEP_FIRST; j <= WEP_LAST; ++j)
                {
-                       if(self.weapons & W_WeaponBit(j))
+                       if(WEPSET_CONTAINS_EW(self, j))
                                if(W_IsWeaponThrowable(j))
                                        W_ThrowNewWeapon(self, j, FALSE, org, randomvec() * 175 + '0 0 325');
                }
@@ -437,7 +435,7 @@ void PlayerDamage (entity inflictor, entity attacker, float damage, float deatht
        float valid_damage_for_weaponstats;
        float excess;
 
-       if((g_arena && numspawned < 2) || (g_ca && !ca_teams_ok) && !inWarmupStage)
+       if((g_arena && numspawned < 2) || (g_ca && allowed_to_spawn) && !inWarmupStage)
                return;
 
        dh = max(self.health, 0);
@@ -601,6 +599,8 @@ void PlayerDamage (entity inflictor, entity attacker, float damage, float deatht
        vbot = (clienttype(self) == CLIENTTYPE_BOT);
 
        valid_damage_for_weaponstats = 0;
+       awep = 0;
+
        if(vbot || clienttype(self) == CLIENTTYPE_REAL)
        if(abot || clienttype(attacker) == CLIENTTYPE_REAL)
        if(attacker && self != attacker)
@@ -704,8 +704,6 @@ void PlayerDamage (entity inflictor, entity attacker, float damage, float deatht
                        else
                                DropFlag(self.flagcarried, world, attacker);
                }
-               if(self.ballcarried && g_nexball)
-                       DropBall(self.ballcarried, self.origin, self.velocity);
                Portal_ClearAllLater(self);
 
                if(clienttype(self) == CLIENTTYPE_REAL)
@@ -809,14 +807,12 @@ float Say(entity source, float teamsay, entity privatesay, string msgin, float f
 //   0 = reject
 //  -1 = fake accept
 {
-       string msgstr, colorstr, cmsgstr, namestr, fullmsgstr, sourcemsgstr, fullcmsgstr, sourcecmsgstr, privatemsgprefix;
-       float flood, privatemsgprefixlen;
+       string msgstr, colorstr, cmsgstr, namestr, fullmsgstr, sourcemsgstr, fullcmsgstr, sourcecmsgstr;
+       float flood;
        var .float flood_field;
        entity head;
        float ret;
-
-       if(Ban_MaybeEnforceBan(source))
-               return 0;
+       string privatemsgprefix = string_null; float privatemsgprefixlen = 0;
 
        if(!teamsay && !privatesay)
                if(substring(msgin, 0, 1) == " ")
@@ -829,7 +825,10 @@ float Say(entity source, float teamsay, entity privatesay, string msgin, float f
        else if(teamplay)
                colorstr = Team_ColorCode(source.team);
        else
+       {
+               colorstr = "";
                teamsay = FALSE;
+       }
 
        if(intermission_running)
                teamsay = FALSE;
@@ -888,6 +887,7 @@ float Say(entity source, float teamsay, entity privatesay, string msgin, float f
 
        // FLOOD CONTROL
        flood = 0;
+       flood_field = floodcontrol_chat;
        if(floodcontrol)
        {
                float flood_spl;
@@ -983,7 +983,7 @@ float Say(entity source, float teamsay, entity privatesay, string msgin, float f
        if(source.classname != "player")
        {
                if not(intermission_running)
-                       if(teamsay || (autocvar_g_chat_nospectators == 1) || (autocvar_g_chat_nospectators == 2 && !inWarmupStage))
+                       if(teamsay || (autocvar_g_chat_nospectators == 1) || (autocvar_g_chat_nospectators == 2 && !(inWarmupStage || gameover)))
                                teamsay = -1; // spectators
        }
 
index fac0d73aa2cbf09b30f36ed949e7bb97a9d26085..59efb74d5458508fab560ddb0f5338fa12013372 100644 (file)
@@ -163,11 +163,6 @@ string W_Name(float weaponid)
        return (get_weaponinfo(weaponid)).message;
 }
 
-float W_WeaponBit(float wpn)
-{
-       return (get_weaponinfo(wpn)).weapons;
-}
-
 float W_AmmoItemCode(float wpn)
 {
        return (get_weaponinfo(wpn)).items & IT_AMMO;
@@ -203,7 +198,7 @@ string W_ThrowNewWeapon(entity own, float wpn, float doreduce, vector org, vecto
        wep.flags |= FL_TOSSED;
        wep.colormap = own.colormap;
 
-       if(W_WeaponBit(wpn) & WEPBIT_SUPERWEAPONS)
+       if(WEPSET_CONTAINS_AW(WEPBIT_SUPERWEAPONS, wpn))
        {
                if(own.items & IT_UNLIMITED_SUPERWEAPONS)
                {
@@ -213,8 +208,9 @@ string W_ThrowNewWeapon(entity own, float wpn, float doreduce, vector org, vecto
                {
                        float superweapons = 1;
                        for(i = WEP_FIRST; i <= WEP_LAST; ++i)
-                               if(own.weapons & WEPBIT_SUPERWEAPONS & W_WeaponBit(i))
-                                       ++superweapons;
+                               if(WEPSET_CONTAINS_AW(WEPBIT_SUPERWEAPONS, i))
+                                       if(WEPSET_CONTAINS_EW(own, i))
+                                               ++superweapons;
                        if(superweapons <= 1)
                        {
                                wep.superweapons_finished = own.superweapons_finished;
@@ -262,7 +258,6 @@ string W_ThrowNewWeapon(entity own, float wpn, float doreduce, vector org, vecto
                                if(wa & j)
                                {
                                        ammofield = Item_CounterField(j);
-                                       wep.ammofield = 0;
 
                                        // if our weapon is loaded, give its load back to the player
                                        if(self.(weapon_load[self.weapon]) > 0)
@@ -270,6 +265,8 @@ string W_ThrowNewWeapon(entity own, float wpn, float doreduce, vector org, vecto
                                                own.ammofield += self.(weapon_load[self.weapon]);
                                                self.(weapon_load[self.weapon]) = -1; // schedule the weapon for reloading
                                        }
+
+                                       wep.ammofield = 0;
                                }
                        }
                }
@@ -280,10 +277,6 @@ string W_ThrowNewWeapon(entity own, float wpn, float doreduce, vector org, vecto
                                if(wa & j)
                                {
                                        ammofield = Item_CounterField(j);
-                                       thisammo = min(own.ammofield, wep.ammofield);
-                                       wep.ammofield = thisammo;
-                                       own.ammofield -= thisammo;
-                                       s = strcat(s, " and ", ftos(thisammo), " ", Item_CounterFieldName(j));
 
                                        // if our weapon is loaded, give its load back to the player
                                        if(self.(weapon_load[self.weapon]) > 0)
@@ -291,6 +284,11 @@ string W_ThrowNewWeapon(entity own, float wpn, float doreduce, vector org, vecto
                                                own.ammofield += self.(weapon_load[self.weapon]);
                                                self.(weapon_load[self.weapon]) = -1; // schedule the weapon for reloading
                                        }
+
+                                       thisammo = min(own.ammofield, wep.ammofield);
+                                       wep.ammofield = thisammo;
+                                       own.ammofield -= thisammo;
+                                       s = strcat(s, " and ", ftos(thisammo), " ", Item_CounterFieldName(j));
                                }
                        }
                        s = substring(s, 5, -1);
@@ -306,7 +304,7 @@ string W_ThrowNewWeapon(entity own, float wpn, float doreduce, vector org, vecto
 
 float W_IsWeaponThrowable(float w)
 {
-       float wb, wa;
+       float wa;
 
        if (!autocvar_g_pickup_items)
                return 0;
@@ -318,14 +316,11 @@ float W_IsWeaponThrowable(float w)
                return 0;
        if (g_cts)
                return 0;
-       if (g_nexball && w == WEP_PORTO)
+       if (g_nexball && w == WEP_GRENADE_LAUNCHER)
                return 0;
 
-       wb = W_WeaponBit(w);
-       if(!wb)
-               return 0;
        wa = W_AmmoItemCode(w);
-       if(start_weapons & wb)
+       if(WEPSET_CONTAINS_AW(start_weapons, w))
        {
                // start weapons that take no ammo can't be dropped (this prevents dropping the laser, as long as it continues to use no ammo)
                if(start_items & IT_UNLIMITED_WEAPON_AMMO)
@@ -340,7 +335,7 @@ float W_IsWeaponThrowable(float w)
 // toss current weapon
 void W_ThrowWeapon(vector velo, vector delta, float doreduce)
 {
-       float w, wb;
+       float w;
        string a;
 
        w = self.weapon;
@@ -355,11 +350,10 @@ void W_ThrowWeapon(vector velo, vector delta, float doreduce)
        if(!W_IsWeaponThrowable(w))
                return;
 
-       wb = W_WeaponBit(w);
-       if(self.weapons & wb != wb)
+       if(!WEPSET_CONTAINS_EW(self, w))
                return;
+       WEPSET_ANDNOT_EW(self, w);
 
-       self.weapons &~= wb;
        W_SwitchWeapon_Force(self, w_getbestweapon(self));
        a = W_ThrowNewWeapon(self, w, doreduce, self.origin + delta, velo);
        if not(a)
@@ -459,8 +453,8 @@ void W_WeaponFrame()
        //if (self.button0)
        //      print(ftos(frametime), " ", ftos(time), " >= ", ftos(ATTACK_FINISHED(self)), " >= ", ftos(self.weapon_nextthink), "\n");
 
-       float wb;
-       wb = W_WeaponBit(self.weapon);
+       float w;
+       w = self.weapon;
 
        // call the think code which may fire the weapon
        // and do so multiple times to resolve framerate dependency issues if the
@@ -470,18 +464,18 @@ void W_WeaponFrame()
        while (c < W_TICSPERFRAME)
        {
                c = c + 1;
-               if(wb && ((self.weapons & wb) == 0))
+               if(w && !WEPSET_CONTAINS_EW(self, w))
                {
                        if(self.weapon == self.switchweapon)
                                W_SwitchWeapon_Force(self, w_getbestweapon(self));
-                       wb = 0;
+                       w = 0;
                }
 
                v_forward = fo;
                v_right = ri;
                v_up = up;
 
-               if(wb)
+               if(w)
                        weapon_action(self.weapon, WR_THINK);
                else
                        weapon_action(self.weapon, WR_GONETHINK);
@@ -521,3 +515,20 @@ void W_WeaponFrame()
                self.currentammo = 1;
 #endif
 }
+
+string W_Apply_Weaponreplace(string in)
+{
+       float n = tokenize_console(in);
+       string out = "";
+       float i;
+       for(i = 0; i < n; ++i)
+       {
+               string s = argv(i);
+               string r = cvar_string(strcat("g_weaponreplace_", s));
+               if(r == "")
+                       out = strcat(out, " ", s);
+               else if(r != "0")
+                       out = strcat(out, " ", r);
+       }
+       return substring(out, 1, -1);
+}
index 1208766e21a99fca98117786b7391e0cb312d6f4..402b692af1230fba959a89c1fce3aef5a999ab13 100644 (file)
@@ -69,6 +69,7 @@ vector W_HitPlotNormalizedUntransform(vector org, entity targ, vector screenforw
 
        // x = 0..1 relative to hitbox; y = 0..1 relative to hitbox; z = distance
 
+       mi = ma = targ.origin + 0.5 * (targ.mins + targ.maxs);
        for(i = 0; i < 2; ++i) for(j = 0; j < 2; ++j) for(k = 0; k < 2; ++k)
        {
                thisv = targ.origin;
@@ -557,7 +558,6 @@ void CL_Weaponentity_Think()
 
        self.angles = '0 0 0';
        float f;
-       f = 0;
        if (self.state == WS_RAISE && !intermission_running)
        {
                f = (self.owner.weapon_nextthink - time) * g_weaponratefactor / autocvar_g_balance_weaponswitchdelay;
@@ -727,7 +727,7 @@ void Send_WeaponComplain (entity e, float wpn, string wpnname, float type)
 
 float client_hasweapon(entity cl, float wpn, float andammo, float complain)
 {
-       float weaponbit, f;
+       float f;
        entity oldself;
 
        if(time < self.hasweapon_complain_spam)
@@ -741,8 +741,7 @@ float client_hasweapon(entity cl, float wpn, float andammo, float complain)
                        sprint(self, "Invalid weapon\n");
                return FALSE;
        }
-       weaponbit = W_WeaponBit(wpn);
-       if (cl.weapons & weaponbit)
+       if (WEPSET_CONTAINS_EW(cl, wpn))
        {
                if (andammo)
                {
@@ -783,7 +782,7 @@ float client_hasweapon(entity cl, float wpn, float andammo, float complain)
        {
                // DRESK - 3/16/07
                // Report Proper Weapon Status / Modified Weapon Ownership Message
-               if(weaponsInMap & weaponbit)
+               if (WEPSET_CONTAINS_AW(weaponsInMap, wpn))
                {
                        sprint(cl, strcat("You do not have the ^2", W_Name(wpn), "\n") );
                        Send_WeaponComplain (cl, wpn, W_Name(wpn), 1);
@@ -796,7 +795,7 @@ float client_hasweapon(entity cl, float wpn, float andammo, float complain)
                                e = get_weaponinfo(wpn);
                                s = e.model2;
 
-                               for(e = world; (e = findfloat(e, weapons, weaponbit)); )
+                               for(e = world; (e = findfloat(e, weapon, wpn)); )
                                {
                                        if(e.classname == "droppedweapon")
                                                continue;
@@ -867,10 +866,15 @@ void W_SwitchToOtherWeapon(entity pl)
 {
        // hack to ensure it switches to an OTHER weapon (in case the other fire mode still has ammo, we want that anyway)
        float w, ww;
-       w = W_WeaponBit(pl.weapon);
-       pl.weapons &~= w;
-       ww = w_getbestweapon(pl);
-       pl.weapons |= w;
+       w = pl.weapon;
+       if(WEPSET_CONTAINS_EW(pl, w))
+       {
+               WEPSET_ANDNOT_EW(pl, w);
+               ww = w_getbestweapon(pl);
+               WEPSET_OR_EW(pl, w);
+       }
+       else
+               ww = w_getbestweapon(pl);
        if(ww)
                W_SwitchWeapon_Force(pl, ww);
 }
@@ -1073,8 +1077,6 @@ vector W_CalculateProjectileVelocity(vector pvelocity, vector mvelocity, float f
 {
        vector mdirection;
        float mspeed;
-       float outspeed;
-       float nstyle;
        vector outvelocity;
 
        mvelocity = mvelocity * g_weaponspeedfactor;
@@ -1082,61 +1084,7 @@ vector W_CalculateProjectileVelocity(vector pvelocity, vector mvelocity, float f
        mdirection = normalize(mvelocity);
        mspeed = vlen(mvelocity);
 
-       nstyle = autocvar_g_projectiles_newton_style;
-       if(nstyle == 0 || forceAbsolute)
-       {
-               // absolute velocity
-               outvelocity = mvelocity;
-       }
-       else if(nstyle == 1)
-       {
-               // true Newtonian projectiles
-               outvelocity = pvelocity + mvelocity;
-       }
-       else if(nstyle == 2)
-       {
-               // true Newtonian projectiles with automatic aim adjustment
-               //
-               // solve: |outspeed * mdirection - pvelocity| = mspeed
-               // outspeed^2 - 2 * outspeed * (mdirection * pvelocity) + pvelocity^2 - mspeed^2 = 0
-               // outspeed = (mdirection * pvelocity) +- sqrt((mdirection * pvelocity)^2 - pvelocity^2 + mspeed^2)
-               // PLUS SIGN!
-               // not defined?
-               // then...
-               // pvelocity^2 - (mdirection * pvelocity)^2 > mspeed^2
-               // velocity without mdirection component > mspeed
-               // fire at smallest possible mspeed that works?
-               // |(mdirection * pvelocity) * pvelocity - pvelocity| = mspeed
-
-               vector solution;
-               solution = solve_quadratic(1, -2 * (mdirection * pvelocity), pvelocity * pvelocity - mspeed * mspeed);
-               if(solution_z)
-                       outspeed = solution_y; // the larger one
-               else
-               {
-                       //outspeed = 0; // slowest possible shot
-                       outspeed = solution_x; // the real part (that is, the average!)
-                       //dprint("impossible shot, adjusting\n");
-               }
-
-               outspeed = bound(mspeed * autocvar_g_projectiles_newton_style_2_minfactor, outspeed, mspeed * autocvar_g_projectiles_newton_style_2_maxfactor);
-               outvelocity = mdirection * outspeed;
-       }
-       else if(nstyle == 3)
-       {
-               // pseudo-Newtonian:
-               outspeed = mspeed + mdirection * pvelocity;
-               outspeed = bound(mspeed * 0.7, outspeed, mspeed * 5.0);
-               outvelocity = mdirection * outspeed;
-       }
-       else if(nstyle == 4)
-       {
-               // tZorkian:
-               outspeed = mspeed + vlen(pvelocity);
-               outvelocity = mdirection * outspeed;
-       }
-       else
-               error("g_projectiles_newton_style must be 0 (absolute), 1 (Newtonian), 2 (Newtonian + aimfix), 3 (pseudo Newtonian) or 4 (tZorkian)!");
+       outvelocity = get_shotvelocity(pvelocity, mdirection, mspeed, (forceAbsolute ? 0 : autocvar_g_projectiles_newton_style), autocvar_g_projectiles_newton_style_2_minfactor, autocvar_g_projectiles_newton_style_2_maxfactor);
 
        return outvelocity;
 }
@@ -1512,7 +1460,7 @@ void W_Reload(float sent_ammo_min, float sent_ammo_amount, float sent_time, stri
 
        // now begin the reloading process
 
-       sound (self, CH_WEAPON_B, self.reload_sound, VOL_BASE, ATTN_NORM);
+       sound (self, CH_WEAPON_SINGLE, self.reload_sound, VOL_BASE, ATTN_NORM);
 
        // do not set ATTACK_FINISHED in reload code any more. This causes annoying delays if eg: You start reloading a weapon,
        // then quickly switch to another weapon and back. Reloading is canceled, but the reload delay is still there,
index 7a6138283f5c8ed466dfd91b238078b4b68779cb..8e3ecb7ba0369ab674ac56ccc2198c9bf01c11a6 100644 (file)
@@ -3,7 +3,7 @@
 //  Last updated: December 29th, 2011
 // =====================================
 
-#define GET_BAN_ARG(v,d) if((argc > reason_arg) && ((v = stof(argv(reason_arg))) != 0)) ++reason_arg; else v = d
+#define GET_BAN_ARG(v,d) if(argc > reason_arg) { if((v = stof(argv(reason_arg))) != 0) ++reason_arg; else v = d; } else v = d
 #define GET_BAN_REASON(v,d) if(argc > reason_arg) v = substring(command, argv_start_index(reason_arg), strlen(command) - argv_start_index(reason_arg)); else v = d
 
 void Ban_KickBanClient(entity client, float bantime, float masksize, string reason);
@@ -12,4 +12,4 @@ float Ban_Insert(string ip, float bantime, string reason, float dosync);
 float Ban_Delete(float i);
 
 // used by common/command/generic.qc:GenericCommand_dumpcommands to list all commands into a .txt file
-void BanCommand_macro_write_aliases(float fh)
\ No newline at end of file
+void BanCommand_macro_write_aliases(float fh)
index b901aca6bc01947c0d6279ab20db5473ecf1cdee..b659d44ccab532d2c12502fe4dee0e160bc0662e 100644 (file)
@@ -152,7 +152,7 @@ void ClientCommand_join(float request)
                        {
                                if(self.classname != "player" && !lockteams && !g_arena)
                                {
-                                       if(nJoinAllowed(1)) 
+                                       if(nJoinAllowed(self)) 
                                        {
                                                if(g_ca) { self.caplayer = 1; }
                                                if(autocvar_g_campaign) { campaign_bots_may_start = 1; }
@@ -226,40 +226,6 @@ void ClientCommand_ready(float request) // todo: anti-spam for toggling readynes
        }
 }
 
-void ClientCommand_reportcvar(float request, float argc, string command)
-{      
-       switch(request)
-       {
-               case CMD_REQUEST_COMMAND:
-               {
-                       if(argv(1) != "")
-                       {
-                               float tokens;
-                               string s;
-                               
-                               if(substring(argv(2), 0, 1) == "$") // undefined cvar: use the default value on the server then
-                               {
-                                       s = strcat(substring(command, argv_start_index(0), argv_end_index(1) - argv_start_index(0)), " \"", cvar_defstring(argv(1)), "\"");
-                                       tokens = tokenize_console(s);
-                               }
-                               
-                               GetCvars(1);
-                               
-                               return;
-                       }
-               }
-                       
-               default:
-                       sprint(self, "Incorrect parameters for ^2reportcvar^7\n");
-               case CMD_REQUEST_USAGE:
-               {
-                       sprint(self, "\nUsage:^3 cmd reportcvar <cvar>\n");
-                       sprint(self, "  Where 'cvar' is the cvar plus arguments to send to the server.\n");
-                       return;
-               }
-       }
-}
-
 void ClientCommand_say(float request, float argc, string command)
 {
        switch(request)
@@ -324,7 +290,7 @@ void ClientCommand_selectteam(float request, float argc)
                                                                        case "pink": selection = COLOR_TEAM4; break;
                                                                        case "auto": selection = (-1); break;
                                                                        
-                                                                       default: break;
+                                                                       default: selection = 0; break;
                                                                }
                                                                
                                                                if(selection)
@@ -398,7 +364,7 @@ void ClientCommand_sentcvar(float request, float argc, string command)
                                if(argc == 2) // undefined cvar: use the default value on the server then
                                {
                                        s = strcat(substring(command, argv_start_index(0), argv_end_index(1) - argv_start_index(0)), " \"", cvar_defstring(argv(1)), "\"");
-                                       tokens = tokenize_console(s);
+                                       tokenize_console(s);
                                }
                                
                                GetCvars(1);
@@ -445,7 +411,7 @@ void ClientCommand_spectate(float request)
                                if(self.classname == "player" && autocvar_sv_spectate == 1) 
                                        ClientKill_TeamChange(-2); // observe
                                
-                               // in CA, allow a dead player to move to spectatators (without that, caplayer!=0 will be moved back to the player list)
+                               // in CA, allow a dead player to move to spectators (without that, caplayer!=0 will be moved back to the player list)
                                // note: if arena game mode is ever done properly, this needs to be removed.
                                if(g_ca && self.caplayer && (self.classname == "spectator" || self.classname == "observer"))
                                {
@@ -595,7 +561,6 @@ void ClientCommand_(float request)
        CLIENT_COMMAND("mv_getpicture", ClientCommand_mv_getpicture(request, arguments), "Retrieve mapshot picture from the server") \
        CLIENT_COMMAND("join", ClientCommand_join(request), "Become a player in the game") \
        CLIENT_COMMAND("ready", ClientCommand_ready(request), "Qualify as ready to end warmup stage (or restart server if allowed)") \
-       CLIENT_COMMAND("reportcvar", ClientCommand_reportcvar(request, arguments, command), "Old system for sending a client cvar to the server") \
        CLIENT_COMMAND("say", ClientCommand_say(request, arguments, command), "Print a message to chat to all players") \
        CLIENT_COMMAND("say_team", ClientCommand_say_team(request, arguments, command), "Print a message to chat to all team mates") \
        CLIENT_COMMAND("selectteam", ClientCommand_selectteam(request, arguments), "Attempt to choose a team to join into") \
@@ -658,6 +623,10 @@ void ClientCommand_macro_write_aliases(float fh)
 
 void SV_ParseClientCommand(string command)
 {
+       // if we're banned, don't even parse the command
+       if(Ban_MaybeEnforceBanOnce(self))
+               return;
+
        float argc = tokenize_console(command);
        
        // for the mutator hook system
@@ -679,7 +648,6 @@ void SV_ParseClientCommand(string command)
                case "mv_getpicture": break; // handled by server in this file
                case "pause": break; // handled by engine in host_cmd.c
                case "prespawn": break; // handled by engine in host_cmd.c
-               case "reportcvar": break; // handled by server in this file
                case "sentcvar": break; // handled by server in this file
                case "spawn": break; // handled by engine in host_cmd.c
                
@@ -732,4 +700,4 @@ void SV_ParseClientCommand(string command)
        }
        else
                clientcommand(self, command);
-}
\ No newline at end of file
+}
index 3b71e3d701dfe6c483b17d932a9e6f1822fdacde..13e667ad87123b72c7a282f3633d6940ec1abbd1 100644 (file)
@@ -63,6 +63,7 @@ entity GetIndexedEntity(float argc, float start_index)
        
        next_token = -1;
        index = start_index;
+       selection = world;
        
        if(argc > start_index)
        {
@@ -80,6 +81,8 @@ entity GetIndexedEntity(float argc, float start_index)
                                tmp_number = stof(argv(index));
                                ++index;
                        }
+                       else
+                               tmp_number = 0;
                }
                else // maybe it's ONLY a number?
                {
@@ -102,7 +105,7 @@ entity GetIndexedEntity(float argc, float start_index)
        }
        
        next_token = index;
-       print(strcat("start_index: ", ftos(start_index), ", next_token: ", ftos(next_token), ", edict: ", ftos(num_for_edict(selection)), ".\n"));
+       //print(strcat("start_index: ", ftos(start_index), ", next_token: ", ftos(next_token), ", edict: ", ftos(num_for_edict(selection)), ".\n"));
        return selection;
 }
 
@@ -123,6 +126,7 @@ entity GetFilteredEntity(string input)
        }
        else
        {
+               selection = world;
                FOR_EACH_CLIENT(tmp_player)
                        if (strdecolorize(tmp_player.netname) == strdecolorize(input))
                                selection = tmp_player;
@@ -137,7 +141,7 @@ float GetFilteredNumber(string input)
        entity selection = GetFilteredEntity(input);
        float output;
        
-       if(selection) { output = num_for_edict(selection); }
+       output = num_for_edict(selection);
 
        return output;
 }
@@ -433,7 +437,7 @@ void CommonCommand_records(float request, entity caller)
                        float i;
                        
                        for(i = 0; i < 10; ++i)
-                               if(records_reply[i])
+                               if(records_reply[i] != "")
                                        print_to(caller, records_reply[i]);
                                
                        return; // never fall through to usage
@@ -614,6 +618,7 @@ void CommonCommand_who(float request, entity caller, float argc)
                        print_to(caller, sprintf(strreplace(" ", separator, " %-4s %-20s %-5s %-3s %-9s %-16s %s "), 
                                "ent", "nickname", "ping", "pl", "time", "ip", "crypto_id"));
                        
+                       total_listed_players = 0;
                        FOR_EACH_CLIENT(tmp_player)
                        {
                                is_bot = (clienttype(tmp_player) == CLIENTTYPE_BOT);
@@ -759,4 +764,4 @@ void CommonCommand_macro_write_aliases(float fh)
        #undef COMMON_COMMAND
        
        return;
-}
\ No newline at end of file
+}
index 29b707b93da4bf08de5116d1ece08abda4956bc6..0bedd6d5e21f3ce44f0b2d479eed092a59029b65 100644 (file)
        
 string getrecords(float page) // 50 records per page
 {      
-       float rec, r, i;
+       float rec = 0, r, i;
        string h, s;
+       
+       s = "";
 
        if (g_ctf)
        {
@@ -23,7 +25,7 @@ string getrecords(float page) // 50 records per page
                        {
                                r = stof(db_get(ServerProgsDB, strcat(MapInfo_Map_bspname, "/captimerecord/time")));
                                
-                               if (r == 0)
+                               if not(r)
                                        continue;
                                        
                                // TODO: uid2name
@@ -42,7 +44,7 @@ string getrecords(float page) // 50 records per page
                        {
                                r = race_readTime(MapInfo_Map_bspname, 1);
                                
-                               if (r == 0)
+                               if not(r)
                                        continue;
                                        
                                h = race_readName(MapInfo_Map_bspname, 1);
@@ -60,7 +62,7 @@ string getrecords(float page) // 50 records per page
                        {
                                r = race_readTime(MapInfo_Map_bspname, 1);
                                
-                               if (r == 0)
+                               if not(r)
                                        continue;
                                        
                                h = race_readName(MapInfo_Map_bspname, 1);
@@ -72,7 +74,7 @@ string getrecords(float page) // 50 records per page
 
        MapInfo_ClearTemps();
 
-       if (s == "" && page == 0)
+       if(s == "" && page == 0)
                return "No records are available on this server.\n";
        else
                return s;
@@ -85,6 +87,7 @@ string getrankings()
 
        map = GetMapname();
 
+       s = "";
        for (i = 1; i <= RANKINGS_CNT; ++i)
        {
                t = race_readTime(map, i);
@@ -107,7 +110,7 @@ string getrankings()
 
 string getladder()
 {
-       float i, j, k, uidcnt, thiscnt;
+       float i, j, k, uidcnt = 0, thiscnt;
        string s, temp_s, rr, myuid, thisuid;
        
        if(g_cts)
@@ -281,4 +284,4 @@ string getladder()
                return "No ladder on this server!\n";
        else
                return strcat("Top ", ftos(LADDER_SIZE), " ladder rankings:\n", s);
-}
\ No newline at end of file
+}
index 16f3212eda0cc1852569ac0de61a11d67b1ff470..d8651762965d9d6859dbc05ed205b5ee0407d8dc 100644 (file)
@@ -28,7 +28,7 @@ float FullTraceFraction(vector a, vector mi, vector ma, vector b)
                        c = trace_endpos;
                }
 
-               n += tracebox_inverted(c, mi, ma, b, MOVE_WORLDONLY, world);
+               n += tracebox_inverted(c, mi, ma, b, MOVE_WORLDONLY, world, FALSE);
 
                white += vlen(trace_endpos - c);
                c = trace_endpos;
@@ -424,4 +424,4 @@ float RadarMap_Make(float argc)
        }
        
        return FALSE;
-}
\ No newline at end of file
+}
index 98d877c436beaea85e0b0a438091c3462bec8864..10f725f32f7c3e6cf815f731e71125076c571bbe 100644 (file)
@@ -81,6 +81,7 @@ void GameCommand_adminmsg(float request, float argc)
                        float infobartime = stof(argv(3));
                        
                        string successful, t;
+                       successful = string_null;
                        
                        if((targets) && (admin_message))
                        {
@@ -166,7 +167,7 @@ void GameCommand_allspec(float request, float argc)
                {
                        entity client;
                        string reason = argv(1);
-                       float i;
+                       float i = 0;
                        
                        FOR_EACH_REALPLAYER(client)
                        {
@@ -528,7 +529,7 @@ void GameCommand_defer_clear_all(float request)
                case CMD_REQUEST_COMMAND:
                {
                        entity client;
-                       float i;
+                       float i = 0;
                        float argc;
                        
                        FOR_EACH_CLIENT(client)
@@ -904,6 +905,7 @@ void GameCommand_moveplayer(float request, float argc)
                        string notify = argv(3);
                        
                        string successful, t;
+                       successful = string_null;
                        
                        // lets see if the target(s) even actually exist.
                        if((targets) && (destination))
@@ -1238,10 +1240,12 @@ void GameCommand_shuffleteams(float request)
                {
                        if(teamplay)
                        {
-                               entity tmp_player, client;
-                               float i, x, z, t_teams, t_players, team_color, accepted;
+                               entity tmp_player;
+                               float i, x, z, t_teams, t_players, team_color;
 
                                // count the total amount of players and total amount of teams
+                               t_players = 0;
+                               t_teams = 0;
                                FOR_EACH_PLAYER(tmp_player)
                                {
                                        CheckAllowedTeams(tmp_player);
@@ -1421,7 +1425,6 @@ void GameCommand_trace(float request, float argc)
                                                        {
                                                                rint(42); // do an engine breakpoint on VM_rint so you can get the trace that errnoeously returns startsolid
                                                                tracebox(start, PL_MIN, PL_MAX, end, MOVE_NOMONSTERS, world);
-                                                               tracebox(p, PL_MIN, PL_MAX, q, MOVE_NOMONSTERS, world);
 
                                                                if(trace_startsolid)
                                                                {
@@ -1803,4 +1806,4 @@ void GameCommand(string command)
        print(((command != "") ? strcat("Unknown server command \"", command, "\"") : "No command provided"), ". For a list of supported commands, try sv_cmd help.\n");
        
        return;
-}
\ No newline at end of file
+}
index 8769629f96613bf13247f954617b6535e536f55d..c55eee9acc9187327f1b921c6fece0dfa3b5113a 100644 (file)
@@ -185,18 +185,18 @@ void VoteSpam(float notvoters, float mincount, string result)
        }
 }
 
-void VoteCount() 
+void VoteCount(float first_count
 {
        // declarations
        vote_accept_count = vote_reject_count = vote_abstain_count = 0;
        
        float spectators_allowed = ((autocvar_sv_vote_nospectators != 2) 
-                               || ((autocvar_sv_vote_nospectators == 1) && inWarmupStage) 
+                               || ((autocvar_sv_vote_nospectators == 1) && (inWarmupStage || gameover))
                                || (autocvar_sv_vote_nospectators == 0));
                                
-       float vote_player_count, is_player, notvoters;
-       float vote_real_player_count, vote_real_accept_count;
-       float vote_real_reject_count, vote_real_abstain_count;
+       float vote_player_count = 0, is_player, notvoters = 0;
+       float vote_real_player_count = 0, vote_real_accept_count = 0;
+       float vote_real_reject_count = 0, vote_real_abstain_count = 0;
        float vote_needed_of_voted, final_needed_votes;
        float vote_factor_overall, vote_factor_of_voted;
        
@@ -250,8 +250,15 @@ void VoteCount()
        vote_factor_of_voted = bound(0.5, autocvar_sv_vote_majority_factor_of_voted, 0.999);
        vote_needed_of_voted = floor((vote_accept_count + vote_reject_count) * vote_factor_of_voted) + 1;
        
+       // are there any players at all on the server? it could be an admin vote
+       if(vote_player_count == 0 && first_count)
+       {
+               VoteSpam(0, -1, "yes"); // no players at all, just accept it 
+               VoteAccept();
+               return;
+       }
        
-       // finally calculate the result of the vote     
+       // since there ARE players, finally calculate the result of the vote    
        if(vote_accept_count >= vote_needed_overall)
        {
                VoteSpam(notvoters, -1, "yes"); // there is enough acceptions to pass the vote
@@ -301,7 +308,7 @@ void VoteThink()
        if(vote_endtime > 0) // a vote was called
        if(time > vote_endtime) // time is up
        {
-               VoteCount();
+               VoteCount(FALSE);
        }
        
        return;
@@ -397,7 +404,7 @@ void ReadyCount()
 {
        entity tmp_player;
        float ready_needed_factor, ready_needed_count;
-       float t_ready, t_players;
+       float t_ready = 0, t_players = 0;
 
        FOR_EACH_REALPLAYER(tmp_player)
        {
@@ -602,7 +609,7 @@ void VoteCommand_abstain(float request, entity caller) // CLIENT ONLY
                                print_to(caller, "^1You abstained from your vote.");
                                caller.vote_selection = VOTE_SELECT_ABSTAIN;
                                msg_entity = caller;
-                               if(!autocvar_sv_vote_singlecount) { VoteCount(); }
+                               if(!autocvar_sv_vote_singlecount) { VoteCount(FALSE); }
                        }
                        
                        return;
@@ -628,7 +635,7 @@ void VoteCommand_call(float request, entity caller, float argc, string vote_comm
                                || ((autocvar_sv_vote_nospectators == 1) && inWarmupStage) 
                                || (autocvar_sv_vote_nospectators == 0));
                                
-                       float tmp_playercount;
+                       float tmp_playercount = 0;
                        entity tmp_player;
                        
                        vote_command = VoteCommand_extractcommand(vote_command, 2, argc);
@@ -662,7 +669,7 @@ void VoteCommand_call(float request, entity caller, float argc, string vote_comm
                                bprint("\{1}^2* ^3", GetCallerName(vote_caller), "^2 calls a vote for ", vote_called_display, "\n");
                                if(autocvar_sv_eventlog) { GameLogEcho(strcat(":vote:vcall:", ftos(vote_caller.playerid), ":", vote_called_display)); }
                                Nagger_VoteChanged();
-                               VoteCount(); // needed if you are the only one
+                               VoteCount(TRUE); // needed if you are the only one
                        }
                        
                        return;
@@ -728,8 +735,13 @@ void VoteCommand_master(float request, entity caller, float argc, string vote_co
                                        
                                        default: // calling a vote for master
                                        {
+                                               float spectators_allowed = ((autocvar_sv_vote_nospectators != 2) 
+                                                       || ((autocvar_sv_vote_nospectators == 1) && inWarmupStage) 
+                                                       || (autocvar_sv_vote_nospectators == 0));
+                                               
                                                if not(autocvar_sv_vote_master_callable) { print_to(caller, "^1Vote to become vote master is not allowed."); }
                                                else if(vote_called) { print_to(caller, "^1There is already a vote called."); }
+                                               else if(!spectators_allowed && (caller && (caller.classname != "player"))) { print_to(caller, "^1Only players can call a vote."); }
                                                else if(timeout_status) { print_to(caller, "^1You can not call a vote while a timeout is active."); }
                                                
                                                else // everything went okay, continue with creating vote
@@ -746,7 +758,7 @@ void VoteCommand_master(float request, entity caller, float argc, string vote_co
                                                        bprint("\{1}^2* ^3", GetCallerName(vote_caller), "^2 calls a vote to become ^3master^2.\n");
                                                        if(autocvar_sv_eventlog) { GameLogEcho(strcat(":vote:vcall:", ftos(vote_caller.playerid), ":", vote_called_display)); }
                                                        Nagger_VoteChanged();
-                                                       VoteCount(); // needed if you are the only one
+                                                       VoteCount(TRUE); // needed if you are the only one
                                                }
                                                
                                                return;
@@ -784,7 +796,7 @@ void VoteCommand_no(float request, entity caller) // CLIENT ONLY
                                print_to(caller, "^1You rejected the vote.");
                                caller.vote_selection = VOTE_SELECT_REJECT;
                                msg_entity = caller;
-                               if(!autocvar_sv_vote_singlecount) { VoteCount(); }
+                               if(!autocvar_sv_vote_singlecount) { VoteCount(FALSE); }
                        }
                        
                        return;
@@ -861,7 +873,7 @@ void VoteCommand_yes(float request, entity caller) // CLIENT ONLY
                                print_to(caller, "^1You accepted the vote.");
                                caller.vote_selection = VOTE_SELECT_ACCEPT;
                                msg_entity = caller;
-                               if(!autocvar_sv_vote_singlecount) { VoteCount(); }
+                               if(!autocvar_sv_vote_singlecount) { VoteCount(FALSE); }
                        }
                        
                        return;
@@ -985,4 +997,4 @@ void VoteCommand(float request, entity caller, float argc, string vote_command)
                        return;
                }
        }
-}
\ No newline at end of file
+}
index d5b6697f25932c34ca6936951f6283fd235f9acd..3554f1ff67235142f837507183b772c41c841c09 100644 (file)
@@ -13,6 +13,7 @@ float CSQCProjectile_SendEntity(entity to, float sf)
        if(self.flags & FL_ONGROUND)
                sf |= 0x40;
 
+       ft = fr = 0;
        if(self.fade_time != 0 || self.fade_rate != 0)
        {
                ft = (self.fade_time - time) / sys_frametime;
@@ -79,9 +80,9 @@ void CSQCProjectile(entity e, float clientanimate, float type, float docull)
        else
                e.gravity = 0;
 
-       e.csqcprojectile_type = type;
        if(!sound_allowed(MSG_BROADCAST, e))
                type |= 0x80;
+       e.csqcprojectile_type = type;
 }
 
 void UpdateCSQCProjectile(entity e)
index f5835377d982ea2ded4998baf629d3711883b787..d84075cf4c959b725d97de65c6d85b2ec498dcf5 100644 (file)
@@ -416,6 +416,7 @@ void flag_cap_ring_spawn(vector org)
        shockwave_spawn("models/ctf/shockwavetransring.md3", org - '0 0 15', -0.8, 0, 1);
 }
 
+// TODO add FlagDamage, replace weird hurttrigger handling inside trigger_hurt code by it
 void FlagTouch()
 {
        if(gameover) return;
@@ -423,14 +424,24 @@ void FlagTouch()
        float t;
        entity player;
        string s, s0, h0, h1;
+
+       if (self.cnt == FLAG_CARRY)
+               return;
+
+       if (self.cnt == FLAG_DROPPED)
+       {
+               if(ITEM_TOUCH_NEEDKILL())
+               {
+                       self.pain_finished = 0; // return immediately
+                       return;
+               }
+       }
+
        if (other.classname != "player")
                return;
        if (other.health < 1) // ignore dead players
                return;
 
-       if (self.cnt == FLAG_CARRY)
-               return;
-
        if (self.cnt == FLAG_BASE)
        if (other.team == self.team)
        if (other.flagcarried) // he's got a flag
index 22d9e54d6c71d4c8ea4a007a157354eb23b7e6d4..fe1b00b9a643ea68c510bef32f1c9bff13a49be0 100644 (file)
@@ -100,6 +100,7 @@ float maxclients;
 .float         t_length, t_width;
 
 .vector destvec;               // for rain
+.vector destvec2;              // for train
 .float cnt;            // for rain
 .float count;
 //.float cnt2;
@@ -280,7 +281,7 @@ void checkSpectatorBlock();
 .float jointime; // time of joining
 .float alivetime; // time of being alive
 
-float nJoinAllowed(float includeMe);
+float nJoinAllowed(entity ignore);
 #define PREVENT_JOIN_TEXT "^1You may not join the game at this time.\n\nThe player limit reached maximum capacity."
 
 .float spawnshieldtime;
@@ -342,7 +343,6 @@ string gamemode_name;
 float startitem_failed;
 
 void DropFlag(entity flag, entity penalty_receiver, entity attacker);
-void DropBall(entity ball, vector org, vector vel);
 void DropAllRunes(entity pl);
 
 
@@ -350,13 +350,13 @@ typedef .float floatfield;
 floatfield Item_CounterField(float it);
 
 float W_AmmoItemCode(float wpn);
-float W_WeaponBit(float wpn);
 string W_Name(float weaponid);
+string W_Apply_Weaponreplace(string in);
 
 void FixIntermissionClient(entity e);
 void FixClientCvars(entity e);
 
-float weaponsInMap;
+WEPSET_DECLARE_A(weaponsInMap);
 
 .float respawn_countdown; // next number to count
 
@@ -491,7 +491,6 @@ float independent_players;
 
 string clientstuff;
 .float phase;
-.float weapons;
 .float pressedkeys;
 
 .float porto_forbidden;
@@ -545,7 +544,7 @@ void SUB_UseTargets();
 
 void ClientData_Touch(entity e);
 
-vector debug_shotorg; // if non-zero, overrides the shot origin of all weapons
+//vector debug_shotorg; // if non-zero, overrides the shot origin of all weapons
 
 .float wasplayer;
 
@@ -642,6 +641,8 @@ float serverflags;
 
 .float team_forced; // can be a team number to force a team, or 0 for default action, or -1 for forced spectator
 
+.float player_blocked;
+
 .float freezetag_frozen;
 .float freezetag_revive_progress;
 
@@ -654,3 +655,5 @@ typedef vector(entity player, entity spot, vector current) spawn_evalfunc_t;
 .spawn_evalfunc_t spawn_evalfunc;
 
 .entity conveyor;
+
+string modname;
index bdaeef0a53d19d3ed48ae81cf3468b560350ffb4..ac7c3cd2a7ceb637b4a69d5f2529a110a454a456 100644 (file)
@@ -101,10 +101,9 @@ void UpdateFrags(entity player, float f)
 
 // NOTE: f=0 means still count as a (positive) kill, but count no frags for it
 void W_SwitchWeapon_Force(entity e, float w);
+entity GiveFrags_randomweapons;
 void GiveFrags (entity attacker, entity targ, float f, float deathtype)
 {
-       float w;
-
        // TODO route through PlayerScores instead
        if(gameover) return;
 
@@ -141,34 +140,44 @@ void GiveFrags (entity attacker, entity targ, float f, float deathtype)
                // after a frag, exchange the current weapon (or the culprit, if detectable) by a new random weapon
                float culprit;
                culprit = DEATH_WEAPONOF(deathtype);
-               if(!culprit || !(attacker.weapons & W_WeaponBit(culprit)))
+               if(!culprit)
+                       culprit = attacker.weapon;
+               else if(!WEPSET_CONTAINS_EW(attacker, culprit))
                        culprit = attacker.weapon;
 
-               if(g_weaponarena_random_with_laser && culprit == WEPBIT_LASER)
+               if(g_weaponarena_random_with_laser && culprit == WEP_LASER)
                {
                        // no exchange
                }
                else
                {
+                       if(!GiveFrags_randomweapons)
+                       {
+                               GiveFrags_randomweapons = spawn();
+                               GiveFrags_randomweapons.classname = "GiveFrags_randomweapons";
+                       }
+
                        if(inWarmupStage)
-                               w = warmup_start_weapons;
+                               WEPSET_COPY_EA(GiveFrags_randomweapons, warmup_start_weapons);
                        else
-                               w = start_weapons;
+                               WEPSET_COPY_EA(GiveFrags_randomweapons, start_weapons);
 
                        // all others (including the culprit): remove
-                       w &~= attacker.weapons;
+                       WEPSET_ANDNOT_EE(GiveFrags_randomweapons, attacker);
+                       WEPSET_ANDNOT_EW(GiveFrags_randomweapons, culprit);
 
                        // among the remaining ones, choose one by random
-                       w = randombits(w, 1, FALSE);
-                       if(w)
+                       W_RandomWeapons(GiveFrags_randomweapons, 1);
+
+                       if(!WEPSET_EMPTY_E(GiveFrags_randomweapons))
                        {
-                               attacker.weapons |= w;
-                               attacker.weapons &~= W_WeaponBit(culprit);
+                               WEPSET_OR_EE(attacker, GiveFrags_randomweapons);
+                               WEPSET_ANDNOT_EW(attacker, culprit);
                        }
                }
 
                // after a frag, choose another random weapon set
-               if not(attacker.weapons & W_WeaponBit(attacker.weapon))
+               if not(WEPSET_CONTAINS_EW(attacker, attacker.weapon))
                        W_SwitchWeapon_Force(attacker, w_getbestweapon(attacker));
        }
 
@@ -224,10 +233,10 @@ void GiveFrags (entity attacker, entity targ, float f, float deathtype)
 
 string Obituary_ExtraFragInfo(entity player) // Extra fragmessage information
 {
-       string health_output;
-       string ping_output;
-       string handicap_output;
-       string output;
+       string health_output = string_null;
+       string ping_output = string_null;
+       string handicap_output = string_null;
+       string output = string_null;
 
        if(autocvar_sv_fraginfo && ((autocvar_sv_fraginfo == 2) || inWarmupStage))
        {
@@ -345,6 +354,8 @@ void Obituary (entity attacker, entity inflictor, entity targ, float deathtype)
                {
                        if (deathtype == DEATH_TEAMCHANGE || deathtype == DEATH_AUTOTEAMCHANGE)
                                msg = ColoredTeamName(targ.team); // TODO: check if needed?
+                       else
+                               msg = "";
             if(!g_cts) // no "killed your own dumb self" message in CTS
                 Send_CSQC_KillCenterprint(targ, msg, "", deathtype, MSG_SUICIDE);
 
@@ -356,6 +367,8 @@ void Obituary (entity attacker, entity inflictor, entity targ, float deathtype)
 
                        if (targ.killcount > 2)
                                msg = ftos(targ.killcount);
+                       else
+                               msg = "";
                        if(teamplay && deathtype == DEATH_MIRRORDAMAGE)
                        {
                                if(attacker.team == COLOR_TEAM1)
@@ -379,9 +392,10 @@ void Obituary (entity attacker, entity inflictor, entity targ, float deathtype)
 
                                Send_CSQC_KillCenterprint(attacker, s, "", type, MSG_KILL);
 
-                               if (targ.killcount > 2) {
+                               if (targ.killcount > 2)
                                        msg = ftos(targ.killcount);
-                               }
+                               else
+                                       msg = "";
 
                                if (attacker.killcount > 2) {
                                        msg = ftos(attacker.killcount);
@@ -416,11 +430,12 @@ void Obituary (entity attacker, entity inflictor, entity targ, float deathtype)
 
                                attacker.taunt_soundtime = time + 1;
 
-                               // TODO: fix this?
-                               if (deathtype == DEATH_CUSTOM)
+                               if (deathtype == DEATH_HURTTRIGGER && inflictor.message2 != "")
+                                       msg = inflictor.message2;
+                               else if (deathtype == DEATH_CUSTOM)
                                        msg = deathmessage;
                                else
-                                       msg = inflictor.message2;
+                                       msg = "";
 
                                if(strstrofs(msg, "%", 0) < 0)
                                        msg = strcat("%s ", msg, " by %s");
@@ -497,6 +512,8 @@ void Obituary (entity attacker, entity inflictor, entity targ, float deathtype)
                                msg = inflictor.message;
                        else if (deathtype == DEATH_CUSTOM)
                                msg = deathmessage;
+                       else
+                               msg = "";
                        if(strstrofs(msg, "%", 0) < 0)
                                msg = strcat("%s ", msg);
 
@@ -630,9 +647,7 @@ void Damage (entity targ, entity inflictor, entity attacker, float damage, float
 
                                                        if(autocvar_g_mirrordamage_virtual)
                                                        {
-                                                               vector v;
-                                                               v = healtharmor_applydamage(attacker.armorvalue, autocvar_g_balance_armor_blockpercent, mirrordamage);
-                                                               v_z = 0; // fteqcc sucks
+                                                               vector v = healtharmor_applydamage(attacker.armorvalue, autocvar_g_balance_armor_blockpercent, mirrordamage);
                                                                attacker.dmg_take += v_x;
                                                                attacker.dmg_save += v_y;
                                                                attacker.dmg_inflictor = inflictor;
@@ -642,9 +657,7 @@ void Damage (entity targ, entity inflictor, entity attacker, float damage, float
 
                                                        if(autocvar_g_friendlyfire_virtual)
                                                        {
-                                                               vector v;
-                                                               v = healtharmor_applydamage(targ.armorvalue, autocvar_g_balance_armor_blockpercent, damage);
-                                                               v_z = 0; // fteqcc sucks
+                                                               vector v = healtharmor_applydamage(targ.armorvalue, autocvar_g_balance_armor_blockpercent, damage);
                                                                targ.dmg_take += v_x;
                                                                targ.dmg_save += v_y;
                                                                targ.dmg_inflictor = inflictor;
@@ -799,7 +812,7 @@ void Damage (entity targ, entity inflictor, entity attacker, float damage, float
                if(targ.takedamage == DAMAGE_AIM)
                if(targ != attacker)
                {
-                       if(damage_headshotbonus > 0)
+                       if(damage_headshotbonus)
                        {
                                if(targ.classname == "player")
                                {
@@ -820,7 +833,8 @@ void Damage (entity targ, entity inflictor, entity attacker, float damage, float
                                        deathtype |= HITTYPE_HEADSHOT;
                                }
                                if(deathtype & HITTYPE_HEADSHOT)
-                                       damage *= 1 + damage_headshotbonus;
+                                       if(damage_headshotbonus > 0)
+                                               damage *= 1 + damage_headshotbonus;
                        }
 
                        entity victim;
@@ -887,7 +901,23 @@ void Damage (entity targ, entity inflictor, entity attacker, float damage, float
        if (vlen(force))
        if (self.classname != "player" || time >= self.spawnshieldtime || g_midair)
        {
-               self.velocity = self.velocity + damage_explosion_calcpush(self.damageforcescale * force, self.velocity, autocvar_g_balance_damagepush_speedfactor);
+               vector farce = damage_explosion_calcpush(self.damageforcescale * force, self.velocity, autocvar_g_balance_damagepush_speedfactor);
+               if(self.movetype == MOVETYPE_PHYSICS)
+               {
+                       entity farcent;
+                       farcent = spawn();
+                       farcent.classname = "farce";
+                       farcent.enemy = self;
+                       farcent.movedir = farce * 10;
+                       if(self.mass)
+                               farcent.movedir = farcent.movedir * self.mass;
+                       farcent.origin = hitloc;
+                       farcent.forcetype = FORCETYPE_FORCEATPOS;
+                       farcent.nextthink = time + 0.1;
+                       farcent.think = SUB_Remove;
+               }
+               else
+                       self.velocity = self.velocity + farce;
                self.flags &~= FL_ONGROUND;
                UpdateCSQCProjectile(self);
        }
@@ -957,16 +987,11 @@ void Damage (entity targ, entity inflictor, entity attacker, float damage, float
 
 float RadiusDamage_running;
 float RadiusDamage (entity inflictor, entity attacker, float coredamage, float edgedamage, float rad, entity ignore, float forceintensity, float deathtype, entity directhitentity)
-// Returns total damage applies to creatures
+       // Returns total damage applies to creatures
 {
        entity  targ;
-       float   finaldmg;
-       float   power;
        vector  blastorigin;
        vector  force;
-       vector  diff;
-       vector  center;
-       vector  nearest;
        float   total_damage_to_creatures;
        entity  next;
        float   tfloordmg;
@@ -989,18 +1014,18 @@ float RadiusDamage (entity inflictor, entity attacker, float coredamage, float e
        total_damage_to_creatures = 0;
 
        if(deathtype != (WEP_HOOK | HITTYPE_SECONDARY | HITTYPE_BOUNCE)) // only send gravity bomb damage once
-       if(DEATH_WEAPONOF(deathtype) != WEP_TUBA) // do not send tuba damage (bandwidth hog)
-       {
-               force = inflictor.velocity;
-               if(vlen(force) == 0)
-                       force = '0 0 -1';
-               else
-                       force = normalize(force);
-               if(forceintensity >= 0)
-                       Damage_DamageInfo(blastorigin, coredamage, edgedamage, rad, forceintensity * force, deathtype, 0, attacker);
-               else
-                       Damage_DamageInfo(blastorigin, coredamage, edgedamage, -rad, (-forceintensity) * force, deathtype, 0, attacker);
-       }
+               if(DEATH_WEAPONOF(deathtype) != WEP_TUBA) // do not send tuba damage (bandwidth hog)
+               {
+                       force = inflictor.velocity;
+                       if(vlen(force) == 0)
+                               force = '0 0 -1';
+                       else
+                               force = normalize(force);
+                       if(forceintensity >= 0)
+                               Damage_DamageInfo(blastorigin, coredamage, edgedamage, rad, forceintensity * force, deathtype, 0, attacker);
+                       else
+                               Damage_DamageInfo(blastorigin, coredamage, edgedamage, -rad, (-forceintensity) * force, deathtype, 0, attacker);
+               }
 
        stat_damagedone = 0;
 
@@ -1011,6 +1036,10 @@ float RadiusDamage (entity inflictor, entity attacker, float coredamage, float e
                if (targ != inflictor)
                        if (ignore != targ) if(targ.takedamage)
                        {
+                               vector nearest;
+                               vector diff;
+                               float power;
+
                                // LordHavoc: measure distance to nearest point on target (not origin)
                                // (this guarentees 100% damage on a touch impact)
                                nearest = targ.WarpZone_findradius_nearest;
@@ -1024,6 +1053,7 @@ float RadiusDamage (entity inflictor, entity attacker, float coredamage, float e
                                //      print(ftos(power), "\n");
                                if (power > 0)
                                {
+                                       float finaldmg;
                                        if (power > 1)
                                                power = 1;
                                        finaldmg = coredamage * power + edgedamage * (1 - power);
@@ -1031,95 +1061,128 @@ float RadiusDamage (entity inflictor, entity attacker, float coredamage, float e
                                        {
                                                float a;
                                                float c;
-                                               float hits;
-                                               float total;
-                                               float hitratio;
                                                vector hitloc;
                                                vector myblastorigin;
+                                               vector center;
+
                                                myblastorigin = WarpZone_TransformOrigin(targ, blastorigin);
-                                               center = targ.origin + (targ.mins + targ.maxs) * 0.5;
+
                                                // if it's a player, use the view origin as reference
                                                if (targ.classname == "player")
                                                        center = targ.origin + targ.view_ofs;
+                                               else
+                                                       center = targ.origin + (targ.mins + targ.maxs) * 0.5;
+
                                                force = normalize(center - myblastorigin);
                                                force = force * (finaldmg / coredamage) * forceintensity;
-                                               // test line of sight to multiple positions on box,
-                                               // and do damage if any of them hit
-                                               hits = 0;
-                                               if (targ.classname == "player")
-                                                       total = ceil(bound(1, finaldmg, 50));
-                                               else
-                                                       total = ceil(bound(1, finaldmg/10, 5));
                                                hitloc = nearest;
-                                               c = 0;
-                                               while (c < total)
+
+                                               if(targ != directhitentity)
                                                {
-                                                       //traceline(targ.WarpZone_findradius_findorigin, nearest, MOVE_NOMONSTERS, inflictor);
-                                                       WarpZone_TraceLine(blastorigin, WarpZone_UnTransformOrigin(targ, nearest), MOVE_NOMONSTERS, inflictor);
-                                                       if (trace_fraction == 1 || trace_ent == targ)
+                                                       float hits;
+                                                       float total;
+                                                       float hitratio;
+                                                       float mininv_f, mininv_d;
+
+                                                       // test line of sight to multiple positions on box,
+                                                       // and do damage if any of them hit
+                                                       hits = 0;
+
+                                                       // we know: max stddev of hitratio = 1 / (2 * sqrt(n))
+                                                       // so for a given max stddev:
+                                                       // n = (1 / (2 * max stddev of hitratio))^2
+
+                                                       mininv_d = (finaldmg * (1-tfloordmg)) / autocvar_g_throughfloor_damage_max_stddev;
+                                                       mininv_f = (vlen(force) * (1-tfloorforce)) / autocvar_g_throughfloor_force_max_stddev;
+
+                                                       if(autocvar_g_throughfloor_debug)
+                                                               print(sprintf("THROUGHFLOOR: D=%f F=%f max(dD)=1/%f max(dF)=1/%f", finaldmg, vlen(force), mininv_d, mininv_f));
+
+                                                       total = 0.25 * pow(max(mininv_f, mininv_d), 2);
+
+                                                       if(autocvar_g_throughfloor_debug)
+                                                               print(sprintf(" steps=%f", total));
+
+                                                       if (targ.classname == "player")
+                                                               total = ceil(bound(autocvar_g_throughfloor_min_steps_player, total, autocvar_g_throughfloor_max_steps_player));
+                                                       else
+                                                               total = ceil(bound(autocvar_g_throughfloor_min_steps_other, total, autocvar_g_throughfloor_max_steps_other));
+
+                                                       if(autocvar_g_throughfloor_debug)
+                                                               print(sprintf(" steps=%f dD=%f dF=%f", total, finaldmg * (1-tfloordmg) / (2 * sqrt(total)), vlen(force) * (1-tfloorforce) / (2 * sqrt(total))));
+
+                                                       for(c = 0; c < total; ++c)
                                                        {
-                                                               hits = hits + 1;
-                                                               if (hits > 1)
-                                                                       hitloc = hitloc + nearest;
-                                                               else
-                                                                       hitloc = nearest;
+                                                               //traceline(targ.WarpZone_findradius_findorigin, nearest, MOVE_NOMONSTERS, inflictor);
+                                                               WarpZone_TraceLine(blastorigin, WarpZone_UnTransformOrigin(targ, nearest), MOVE_NOMONSTERS, inflictor);
+                                                               if (trace_fraction == 1 || trace_ent == targ)
+                                                               {
+                                                                       ++hits;
+                                                                       if (hits > 1)
+                                                                               hitloc = hitloc + nearest;
+                                                                       else
+                                                                               hitloc = nearest;
+                                                               }
+                                                               nearest_x = targ.origin_x + targ.mins_x + random() * targ.size_x;
+                                                               nearest_y = targ.origin_y + targ.mins_y + random() * targ.size_y;
+                                                               nearest_z = targ.origin_z + targ.mins_z + random() * targ.size_z;
                                                        }
-                                                       nearest_x = targ.origin_x + targ.mins_x + random() * targ.size_x;
-                                                       nearest_y = targ.origin_y + targ.mins_y + random() * targ.size_y;
-                                                       nearest_z = targ.origin_z + targ.mins_z + random() * targ.size_z;
-                                                       c = c + 1;
+
+                                                       nearest = hitloc * (1 / max(1, hits));
+                                                       hitratio = (hits / total);
+                                                       a = bound(0, tfloordmg + (1-tfloordmg) * hitratio, 1);
+                                                       finaldmg = finaldmg * a;
+                                                       a = bound(0, tfloorforce + (1-tfloorforce) * hitratio, 1);
+                                                       force = force * a;
+
+                                                       if(autocvar_g_throughfloor_debug)
+                                                               print(sprintf(" D=%f F=%f\n", finaldmg, vlen(force)));
                                                }
-                                               nearest = hitloc * (1 / max(1, hits));
-                                               hitratio = (hits / total);
-                                               a = bound(0, tfloordmg + (1-tfloordmg) * hitratio, 1);
-                                               finaldmg = finaldmg * a;
-                                               a = bound(0, tfloorforce + (1-tfloorforce) * hitratio, 1);
-                                               force = force * a;
 
                                                // laser force adjustments :P
                                                if(DEATH_WEAPONOF(deathtype) == WEP_LASER)
                                                {
-                            if (targ == attacker)
-                            {
-                                vector vel;
-
-                                float force_zscale;
-                                float force_velocitybiasramp;
-                                float force_velocitybias;
-
-                                force_velocitybiasramp = autocvar_sv_maxspeed;
-                                if(deathtype & HITTYPE_SECONDARY)
-                                {
-                                    force_zscale = autocvar_g_balance_laser_secondary_force_zscale;
-                                    force_velocitybias = autocvar_g_balance_laser_secondary_force_velocitybias;
-                                }
-                                else
-                                {
-                                    force_zscale = autocvar_g_balance_laser_primary_force_zscale;
-                                    force_velocitybias = autocvar_g_balance_laser_primary_force_velocitybias;
-                                }
-
-                                vel = targ.velocity;
-                                vel_z = 0;
-                                vel = normalize(vel) * bound(0, vlen(vel) / force_velocitybiasramp, 1) * force_velocitybias;
-                                force =
-                                    vlen(force)
-                                    *
-                                    normalize(normalize(force) + vel);
-
-                                force_z *= force_zscale;
-                            }
-                            else
-                            {
-                                if(deathtype & HITTYPE_SECONDARY)
-                                {
-                                    force *= autocvar_g_balance_laser_secondary_force_other_scale;
-                                }
-                                else
-                                {
-                                    force *= autocvar_g_balance_laser_primary_force_other_scale;
-                                }
-                            }
+                                                       if (targ == attacker)
+                                                       {
+                                                               vector vel;
+
+                                                               float force_zscale;
+                                                               float force_velocitybiasramp;
+                                                               float force_velocitybias;
+
+                                                               force_velocitybiasramp = autocvar_sv_maxspeed;
+                                                               if(deathtype & HITTYPE_SECONDARY)
+                                                               {
+                                                                       force_zscale = autocvar_g_balance_laser_secondary_force_zscale;
+                                                                       force_velocitybias = autocvar_g_balance_laser_secondary_force_velocitybias;
+                                                               }
+                                                               else
+                                                               {
+                                                                       force_zscale = autocvar_g_balance_laser_primary_force_zscale;
+                                                                       force_velocitybias = autocvar_g_balance_laser_primary_force_velocitybias;
+                                                               }
+
+                                                               vel = targ.velocity;
+                                                               vel_z = 0;
+                                                               vel = normalize(vel) * bound(0, vlen(vel) / force_velocitybiasramp, 1) * force_velocitybias;
+                                                               force =
+                                                                       vlen(force)
+                                                                       *
+                                                                       normalize(normalize(force) + vel);
+
+                                                               force_z *= force_zscale;
+                                                       }
+                                                       else
+                                                       {
+                                                               if(deathtype & HITTYPE_SECONDARY)
+                                                               {
+                                                                       force *= autocvar_g_balance_laser_secondary_force_other_scale;
+                                                               }
+                                                               else
+                                                               {
+                                                                       force *= autocvar_g_balance_laser_primary_force_other_scale;
+                                                               }
+                                                       }
                                                }
 
                                                //if (targ == attacker)
@@ -1128,7 +1191,7 @@ float RadiusDamage (entity inflictor, entity attacker, float coredamage, float e
                                                //      print(" finaldmg ", ftos(finaldmg), " force ", vtos(force));
                                                //      print(" (", ftos(a), ")\n");
                                                //}
-                                               if(hits || tfloordmg || tfloorforce)
+                                               if(finaldmg || vlen(force))
                                                {
                                                        if(targ.iscreature)
                                                        {
@@ -1206,43 +1269,59 @@ float Fire_AddDamage(entity e, entity o, float d, float t, float dt)
 
                if(maxtime > mintime || maxdps > mindps)
                {
+                       // Constraints:
+                       
+                       // damage we have right now
                        mindamage = mindps * mintime;
-                       maxdamage = mindamage + d;
 
-                       // interval [mintime, maxtime] * [mindps, maxdps]
-                       // intersected with
-                       // [mindamage, maxdamage]
-                       // maximum of this!
-
-                       if(maxdamage >= maxtime * maxdps)
-                       {
-                               totaltime = maxtime;
-                               totaldamage = maxtime * maxdps;
-
-                               // this branch increases totaldamage if either t > mintime, or dps > mindps
-                       }
-                       else
-                       {
-                               // maxdamage is inside the interval!
-                               // first, try to use mindps; only if this fails, increase dps as needed
-                               totaltime = min(maxdamage / mindps, maxtime); // maxdamage / mindps >= mindamage / mindps = mintime
-                               totaldamage = maxdamage;
-                               // can totaldamage / totaltime be >= maxdps?
-                               // max(mindps, maxdamage / maxtime) >= maxdps?
-                               // we know maxdamage < maxtime * maxdps
-                               // so it cannot be
-
-                               // this branch ALWAYS increases totaldamage, but requires maxdamage < maxtime * maxdps
-                       }
+                       // damage we want to get
+                       maxdamage = mindamage + d;
 
-                       // total conditions for increasing:
-                       //     maxtime > mintime OR maxdps > mindps OR maxtime * maxdps > maxdamage
-                       // however:
-                       //     if maxtime = mintime, maxdps = mindps
-                       // then:
-                       //     maxdamage = mindamage + d
-                       //     mindamage = mindps * mintime = maxdps * maxtime < maxdamage!
-                       // so the last condition is not needed
+                       // but we can't exceed maxtime * maxdps!
+                       totaldamage = min(maxdamage, maxtime * maxdps);
+
+                       // LEMMA:
+                       // Look at:
+                       // totaldamage = min(mindamage + d, maxtime * maxdps)
+                       // We see:
+                       // totaldamage <= maxtime * maxdps
+                       // ==> totaldamage / maxdps <= maxtime.
+                       // We also see:
+                       // totaldamage / mindps = min(mindamage / mindps + d, maxtime * maxdps / mindps)
+                       //                     >= min(mintime, maxtime)
+                       // ==> totaldamage / maxdps >= mintime.
+
+                       /*
+                       // how long do we damage then?
+                       // at least as long as before
+                       // but, never exceed maxdps
+                       totaltime = max(mintime, totaldamage / maxdps); // always <= maxtime due to lemma
+                       */
+
+                       // alternate:
+                       // at most as long as maximum allowed
+                       // but, never below mindps
+                       totaltime = min(maxtime, totaldamage / mindps); // always >= mintime due to lemma
+
+                       // assuming t > mintime, dps > mindps:
+                       // we get d = t * dps = maxtime * maxdps
+                       // totaldamage = min(maxdamage, maxtime * maxdps) = min(... + d, maxtime * maxdps) = maxtime * maxdps
+                       // totaldamage / maxdps = maxtime
+                       // totaldamage / mindps > totaldamage / maxdps = maxtime
+                       // FROM THIS:
+                       // a) totaltime = max(mintime, maxtime) = maxtime
+                       // b) totaltime = min(maxtime, totaldamage / maxdps) = maxtime
+
+                       // assuming t <= mintime:
+                       // we get maxtime = mintime
+                       // a) totaltime = max(mintime, ...) >= mintime, also totaltime <= maxtime by the lemma, therefore totaltime = mintime = maxtime
+                       // b) totaltime = min(maxtime, ...) <= maxtime, also totaltime >= mintime by the lemma, therefore totaltime = mintime = maxtime
+
+                       // assuming dps <= mindps:
+                       // we get mindps = maxdps.
+                       // With this, the lemma says that mintime <= totaldamage / mindps = totaldamage / maxdps <= maxtime.
+                       // a) totaltime = max(mintime, totaldamage / maxdps) = totaldamage / maxdps
+                       // b) totaltime = min(maxtime, totaldamage / mindps) = totaldamage / maxdps
 
                        e.fire_damagepersec = totaldamage / totaltime;
                        e.fire_endtime = time + totaltime;
index befdb9bcc437e552e423d8489ac81f14cfec7d26..43dc25ff791da1074919a772bbf9fcea53d0ad7c 100644 (file)
@@ -128,6 +128,7 @@ float g_clientmodel_genericsendentity (entity to, float sf)
 
 
 #define G_MODEL_INIT(sol) \
+       if(self.geomtype) if(autocvar_physics_ode && checkextension("DP_PHYSICS_ODE")) self.movetype = MOVETYPE_PHYSICS; \
        if(!self.scale) self.scale = self.modelscale; \
        SetBrushEntityModel(); \
        self.use = g_model_setcolormaptoactivator; \
@@ -135,6 +136,7 @@ float g_clientmodel_genericsendentity (entity to, float sf)
        if(!self.solid) self.solid = (sol); else if(self.solid < 0) self.solid = SOLID_NOT;
 
 #define G_CLIENTMODEL_INIT(sol) \
+       if(self.geomtype) if(autocvar_physics_ode && checkextension("DP_PHYSICS_ODE")) self.movetype = MOVETYPE_PHYSICS; \
        if(!self.scale) self.scale = self.modelscale; \
        SetBrushEntityModel(); \
        self.use = g_clientmodel_setcolormaptoactivator; \
index e119e5aba40040a359eca73d26d6a909f6f5d128..df63a70bb85d4f01578823b1b4ea3ceaba48f8ce 100644 (file)
@@ -178,24 +178,29 @@ void SUB_CalcMove_controller_think (void)
        float phasepos;
        float nexttick;
        vector delta;
+       vector delta2;
        vector veloc;
        vector nextpos;
+       delta = self.destvec;
+       delta2 = self.destvec2;
        if(time < self.animstate_endtime) {
-               delta = self.destvec;
                nexttick = time + sys_frametime;
 
-               if(nexttick < self.animstate_endtime) {
-                       traveltime = self.animstate_endtime - self.animstate_starttime;
-                       phasepos = (nexttick - self.animstate_starttime) / traveltime; // range: [0, 1]
+               traveltime = self.animstate_endtime - self.animstate_starttime;
+               phasepos = (nexttick - self.animstate_starttime) / traveltime; // range: [0, 1]
+               if(self.platmovetype != 1)
+               {
                        phasepos = 3.14159265 + (phasepos * 3.14159265); // range: [pi, 2pi]
                        phasepos = cos(phasepos); // cos [pi, 2pi] is in [-1, 1]
                        phasepos = phasepos + 1; // correct range to [0, 2]
                        phasepos = phasepos / 2; // correct range to [0, 1]
-                       nextpos = self.origin + (delta * phasepos);
+               }
+               nextpos = self.origin + (delta * phasepos) + (delta2 * phasepos * phasepos);
+               // derivative: delta + 2 * delta2 * phasepos (e.g. for angle positioning)
 
+               if(nexttick < self.animstate_endtime) {
                        veloc = nextpos - self.owner.origin;
                        veloc = veloc * (1 / sys_frametime); // so it arrives for the next frame
-
                } else {
                        veloc = self.finaldest - self.owner.origin;
                        veloc = veloc * (1 / sys_frametime); // so it arrives for the next frame
@@ -203,6 +208,7 @@ void SUB_CalcMove_controller_think (void)
                self.owner.velocity = veloc;
                self.nextthink = nexttick;
        } else {
+               // derivative: delta + 2 * delta2 (e.g. for angle positioning)
                oldself = self;
                self.owner.think = self.think1;
                self = self.owner;
@@ -211,9 +217,35 @@ void SUB_CalcMove_controller_think (void)
        }
 }
 
-void SUB_CalcMove (vector tdest, float tspeed, void() func)
+void SUB_CalcMove_controller_setbezier (entity controller, vector org, vector control, vector dest)
+{
+       // 0 * (1-t) * (1-t) + 2 * control * t * (1-t) + dest * t * t
+       // 2 * control * t - 2 * control * t * t + dest * t * t
+       // 2 * control * t + (dest - 2 * control) * t * t
+
+       controller.origin = org; // starting point
+       control -= org;
+       dest -= org;
+
+       controller.destvec = 2 * control; // control point
+       controller.destvec2 = dest - 2 * control; // quadratic part required to reach end point
+}
+
+void SUB_CalcMove_controller_setlinear (entity controller, vector org, vector dest)
+{
+       // 0 * (1-t) * (1-t) + 2 * control * t * (1-t) + dest * t * t
+       // 2 * control * t - 2 * control * t * t + dest * t * t
+       // 2 * control * t + (dest - 2 * control) * t * t
+
+       controller.origin = org; // starting point
+       dest -= org;
+
+       controller.destvec = dest; // end point
+       controller.destvec2 = '0 0 0';
+}
+
+void SUB_CalcMove_Bezier (vector tcontrol, vector tdest, float tspeed, void() func)
 {
-       vector  delta;
        float   traveltime;
        entity controller;
 
@@ -224,40 +256,24 @@ void SUB_CalcMove (vector tdest, float tspeed, void() func)
        self.finaldest = tdest;
        self.think = SUB_CalcMoveDone;
 
-       if (tdest == self.origin)
-       {
-               self.velocity = '0 0 0';
-               self.nextthink = self.ltime + 0.1;
-               return;
-       }
+       if(tspeed > 0) // positive: start speed
+               traveltime = 2 * vlen(tcontrol - self.origin) /  tspeed;
+       else // negative: end speed
+               traveltime = 2 * vlen(tcontrol - tdest)       / -tspeed;
 
-       delta = tdest - self.origin;
-       traveltime = vlen (delta) / tspeed;
-
-       if (traveltime < 0.1)
+       if (traveltime < 0.1) // useless anim
        {
                self.velocity = '0 0 0';
                self.nextthink = self.ltime + 0.1;
                return;
        }
 
-       // Very short animations don't really show off the effect
-       // of controlled animation, so let's just use linear movement.
-       // Alternatively entities can choose to specify non-controlled movement.
-        // The only currently implemented alternative movement is linear (value 1)
-       if (traveltime < 0.15 || self.platmovetype == 1)
-       {
-               self.velocity = delta * (1/traveltime); // QuakeC doesn't allow vector/float division
-               self.nextthink = self.ltime + traveltime;
-               return;
-       }
-
        controller = spawn();
        controller.classname = "SUB_CalcMove_controller";
        controller.owner = self;
-       controller.origin = self.origin; // starting point
+       controller.platmovetype = self.platmovetype;
+       SUB_CalcMove_controller_setbezier(controller, self.origin, tcontrol, tdest);
        controller.finaldest = (tdest + '0 0 0.125'); // where do we want to end? Offset to overshoot a bit.
-       controller.destvec = delta;
        controller.animstate_starttime = time;
        controller.animstate_endtime = time + traveltime;
        controller.think = SUB_CalcMove_controller_think;
@@ -273,6 +289,43 @@ void SUB_CalcMove (vector tdest, float tspeed, void() func)
        self = self.owner;
 }
 
+void SUB_CalcMove (vector tdest, float tspeed, void() func)
+{
+       vector  delta;
+       float   traveltime;
+
+       if (!tspeed)
+               objerror ("No speed is defined!");
+
+       self.think1 = func;
+       self.finaldest = tdest;
+       self.think = SUB_CalcMoveDone;
+
+       if (tdest == self.origin)
+       {
+               self.velocity = '0 0 0';
+               self.nextthink = self.ltime + 0.1;
+               return;
+       }
+
+       delta = tdest - self.origin;
+       traveltime = vlen (delta) / tspeed;
+
+       // Very short animations don't really show off the effect
+       // of controlled animation, so let's just use linear movement.
+       // Alternatively entities can choose to specify non-controlled movement.
+        // The only currently implemented alternative movement is linear (value 1)
+       if (traveltime < 0.15 || self.platmovetype == 1)
+       {
+               self.velocity = delta * (1/traveltime); // QuakeC doesn't allow vector/float division
+               self.nextthink = self.ltime + traveltime;
+               return;
+       }
+
+       // now just run like a bezier curve...
+       SUB_CalcMove_Bezier((self.origin + tdest) * 0.5, tdest, tspeed, func);
+}
+
 void SUB_CalcMoveEnt (entity ent, vector tdest, float tspeed, void() func)
 {
        entity  oldself;
@@ -382,11 +435,9 @@ void tracebox_antilag_force_wz (entity source, vector v1, vector mi, vector ma,
                lag = 0; // only antilag for clients
 
        // change shooter to SOLID_BBOX so the shot can hit corpses
+       oldsolid = source.dphitcontentsmask;
        if(source)
-       {
-               oldsolid = source.dphitcontentsmask;
                source.dphitcontentsmask = DPCONTENTS_SOLID | DPCONTENTS_BODY | DPCONTENTS_CORPSE;
-       }
 
        if (lag)
        {
@@ -447,10 +498,11 @@ void WarpZone_tracebox_antilag (entity source, vector v1, vector mi, vector ma,
        tracebox_antilag_force_wz(source, v1, mi, ma, v2, nomonst, forent, lag, TRUE);
 }
 
-float tracebox_inverted (vector v1, vector mi, vector ma, vector v2, float nomonsters, entity forent) // returns the number of traces done, for benchmarking
+float tracebox_inverted (vector v1, vector mi, vector ma, vector v2, float nomonsters, entity forent, float stopatentity) // returns the number of traces done, for benchmarking
 {
        vector pos, dir, t;
        float nudge;
+       entity stopentity;
 
        //nudge = 2 * cvar("collision_impactnudge"); // why not?
        nudge = 0.5;
@@ -483,6 +535,8 @@ float tracebox_inverted (vector v1, vector mi, vector ma, vector v2, float nomon
                        dprint("  trace distance is ", ftos(vlen(pos - trace_endpos)), "\n");
                }
 
+               stopentity = trace_ent;
+
                if(trace_startsolid)
                {
                        // we started inside solid.
@@ -495,6 +549,15 @@ float tracebox_inverted (vector v1, vector mi, vector ma, vector v2, float nomon
                                // t is still inside solid? bad
                                // force advance, then, and retry
                                pos = t + dir * nudge;
+
+                               // but if we hit an entity, stop RIGHT before it
+                               if(stopatentity && stopentity)
+                               {
+                                       trace_ent = stopentity;
+                                       trace_endpos = t;
+                                       trace_fraction = ((trace_endpos - v1) * dir) / ((v2 - v1) * dir);
+                                       return c;
+                               }
                        }
                        else
                        {
@@ -513,59 +576,9 @@ float tracebox_inverted (vector v1, vector mi, vector ma, vector v2, float nomon
        }
 }
 
-void traceline_inverted (vector v1, vector v2, float nomonsters, entity forent)
+void traceline_inverted (vector v1, vector v2, float nomonsters, entity forent, float stopatentity)
 {
-#if 0
-       vector pos, dir, t;
-       float nudge;
-
-       //nudge = 2 * cvar("collision_impactnudge"); // why not?
-       nudge = 0.5;
-
-       dir = normalize(v2 - v1);
-
-       pos = v1 + dir * nudge;
-
-       for(;;)
-       {
-               if((pos - v1) * dir >= (v2 - v1) * dir)
-               {
-                       // went too far
-                       trace_fraction = 1;
-                       return;
-               }
-
-               traceline(pos, v2, nomonsters, forent);
-
-               if(trace_startsolid)
-               {
-                       // we started inside solid.
-                       // then trace from endpos to pos
-                       t = trace_endpos;
-                       traceline(t, pos, nomonsters, forent);
-                       if(trace_startsolid)
-                       {
-                               // t is inside solid? bad
-                               // force advance, then
-                               pos = pos + dir * nudge;
-                       }
-                       else
-                       {
-                               // we actually LEFT solid!
-                               trace_fraction = ((trace_endpos - v1) * dir) / ((v2 - v1) * dir);
-                               return;
-                       }
-               }
-               else
-               {
-                       // pos is outside solid?!? but why?!? never mind, just return it.
-                       trace_endpos = pos;
-                       trace_fraction = ((trace_endpos - v1) * dir) / ((v2 - v1) * dir);
-                       return;
-               }
-       }
-#else
-       tracebox_inverted(v1, '0 0 0', '0 0 0', v2, nomonsters, forent);
+       tracebox_inverted(v1, '0 0 0', '0 0 0', v2, nomonsters, forent, stopatentity);
 }
 
 /*
index 4e97136ce8b45354b0a1f695ff36ba9f06fad634..af7c105617769463262f0759e1b392a2463e8abe 100644 (file)
@@ -1390,6 +1390,8 @@ void trigger_impulse_touch1()
         return;
     }
 
+    str = min(self.radius, vlen(self.origin - other.origin));
+
     if(self.falloff == 1)
         str = (str / self.radius) * self.strength;
     else if(self.falloff == 2)
index cae5e3520bc5043939e32f5abeb20952b0eb40b4..34d384c2833ad502a2c164992e2d68ac57481e35 100644 (file)
@@ -29,7 +29,7 @@ void Violence_GibSplash_At(vector org, vector dir, float type, float amount, ent
        // if this is a copied dead body, send the num of its player instead
        // TODO: remove this field, read from model txt files
        if(self.classname == "body")
-               e.team = num_for_edict(self.owner);
+               e.team = num_for_edict(self.enemy);
        else
                e.team = num_for_edict(self);
 
index f699ababc19af8f4e8bd324574a7b386b6b2c769..f2ce297010bd567ec72b6f810794fd6689017530 100644 (file)
@@ -301,6 +301,7 @@ void cvar_changes_init()
                BADCVAR("g_domination_point_leadlimit");
                BADCVAR("g_forced_respawn");
                BADCVAR("g_keyhunt_point_leadlimit");
+               BADPREFIX("g_mod_");
                BADCVAR("g_nexball_goalleadlimit");
                BADCVAR("g_runematch_point_leadlimit");
                BADCVAR("leadlimit_and_fraglimit");
@@ -367,7 +368,6 @@ void cvar_changes_init()
                BADCVAR("g_maplist_votable_nodetail");
                BADCVAR("g_maplist_votable_suggestions");
                BADCVAR("g_maxplayers");
-               BADCVAR("g_minstagib");
                BADCVAR("g_mirrordamage");
                BADCVAR("g_nexball_goallimit");
                BADCVAR("g_powerups");
@@ -414,6 +414,11 @@ void cvar_changes_init()
                BADPREFIX("g_warmup_");
                BADPREFIX("sv_ready_restart_");
 
+               // mutators that announce themselves properly to the server browser
+               BADCVAR("g_minstagib");
+               BADCVAR("g_new_toys");
+               BADCVAR("g_nix");
+
                if(autocvar_g_minstagib)
                {
                        BADCVAR("g_grappling_hook");
@@ -763,7 +768,7 @@ void spawnfunc_worldspawn (void)
 
        WeaponStats_Init();
 
-       addstat(STAT_WEAPONS, AS_INT, weapons);
+       WEPSET_ADDSTAT();
        addstat(STAT_SWITCHWEAPON, AS_INT, switchweapon);
        addstat(STAT_SWITCHINGWEAPON, AS_INT, switchingweapon);
        addstat(STAT_GAMESTARTTIME, AS_FLOAT, stat_game_starttime);
@@ -908,6 +913,28 @@ void spawnfunc_worldspawn (void)
 
        PlayerStats_Init();
 
+       // MOD AUTHORS: change this, and possibly remove a few of the blocks below to ignore certain changes
+       modname = "Xonotic";
+       // physics/balance/config changes that count as mod
+       if(cvar_string("g_mod_physics") != cvar_defstring("g_mod_physics"))
+               modname = cvar_string("g_mod_physics");
+       if(cvar_string("g_mod_balance") != cvar_defstring("g_mod_balance"))
+               modname = cvar_string("g_mod_balance");
+       if(cvar_string("g_mod_config") != cvar_defstring("g_mod_config"))
+               modname = cvar_string("g_mod_config");
+       // weird mutators that deserve to count as mod
+       if(autocvar_g_minstagib)
+               modname = "MinstaGib";
+       // extra mutators that deserve to count as mod
+       MUTATOR_CALLHOOK(SetModname);
+       // weird game types that deserve to count as mod
+       if(g_cts)
+               modname = "CTS";
+       // save it for later
+       modname = strzone(modname);
+
+       WinningConditionHelper(); // set worldstatus
+
        world_initialized = 1;
 }
 
@@ -1228,7 +1255,7 @@ float DoNextMapOverride(float reinit)
                alreadychangedlevel = TRUE;
                return TRUE;
        }
-       if (autocvar_samelevel) // if samelevel is set, stay on same level
+       if (!reinit && autocvar_samelevel) // if samelevel is set, stay on same level
        {
                localcmd("restart\n");
                alreadychangedlevel = TRUE;
@@ -1242,7 +1269,7 @@ float DoNextMapOverride(float reinit)
                        alreadychangedlevel = TRUE;
                        return TRUE;
                }
-       if(autocvar_lastlevel)
+       if(!reinit && autocvar_lastlevel)
        {
                cvar_settemp_restore();
                localcmd("set lastlevel 0\ntogglemenu 1\n");
@@ -1414,6 +1441,8 @@ void DumpStats(float final)
                print(s, "\n");
        if(to_eventlog)
                GameLogEcho(s);
+
+       file = -1;
        if(to_file)
        {
                file = fopen(autocvar_sv_logscores_filename, FILE_APPEND);
@@ -1514,7 +1543,7 @@ void FixIntermissionClient(entity e)
        }
 }
 
-
+void minstagib_stop_countdown(entity e);
 /*
 go to the next level for deathmatch
 only called if a time or frag limit has expired
@@ -1558,6 +1587,7 @@ void NextLevel()
        GameLogClose();
 
        FOR_EACH_PLAYER(other) {
+               minstagib_stop_countdown(other);
                FixIntermissionClient(other);
                if(other.winning)
                        bprint(other.netname, " ^7wins.\n");
@@ -1604,7 +1634,7 @@ float InitiateSuddenDeath()
        // - for this timelimit_overtime needs to be >0 of course
        // - also check the winning condition calculated in the previous frame and only add normal overtime
        //   again, if at the point at which timelimit would be extended again, still no winner was found
-       if ((checkrules_overtimesadded >= 0) && (checkrules_overtimesadded < autocvar_timelimit_overtimes) && autocvar_timelimit_overtime && !(g_race && !g_race_qualifying))
+       if (!autocvar_g_campaign && (checkrules_overtimesadded >= 0) && (checkrules_overtimesadded < autocvar_timelimit_overtimes) && autocvar_timelimit_overtime && !(g_race && !g_race_qualifying))
        {
                return 1; // need to call InitiateOvertime later
        }
@@ -1612,7 +1642,10 @@ float InitiateSuddenDeath()
        {
                if(!checkrules_suddendeathend)
                {
-                       checkrules_suddendeathend = time + 60 * autocvar_timelimit_suddendeath;
+                       if(autocvar_g_campaign)
+                               checkrules_suddendeathend = time; // no suddendeath in campaign
+                       else
+                               checkrules_suddendeathend = time + 60 * autocvar_timelimit_suddendeath;
                        if(g_race && !g_race_qualifying)
                                race_StartCompleting();
                }
@@ -2041,10 +2074,14 @@ float WinningCondition_RanOutOfSpawns()
        else if(team1_score + team2_score + team3_score + team4_score == 1)
        {
                float t, i;
-               if(team1_score) t = COLOR_TEAM1;
-               if(team2_score) t = COLOR_TEAM2;
-               if(team3_score) t = COLOR_TEAM3;
-               if(team4_score) t = COLOR_TEAM4;
+               if(team1_score)
+                       t = COLOR_TEAM1;
+               else if(team2_score)
+                       t = COLOR_TEAM2;
+               else if(team3_score)
+                       t = COLOR_TEAM3;
+               else // if(team4_score)
+                       t = COLOR_TEAM4;
                CheckAllowedTeams(world);
                for(i = 0; i < MAX_TEAMSCORE; ++i)
                {
@@ -2113,9 +2150,6 @@ void CheckRules_World()
                leadlimit = 0; // no leadlimit for now
        }
 
-       if(g_onslaught)
-               timelimit = 0; // ONS has its own overtime rule
-
        if(timelimit > 0)
        {
                timelimit += game_starttime;
@@ -2127,6 +2161,9 @@ void CheckRules_World()
                return;
        }
 
+       if(g_onslaught)
+               timelimit = 0; // ONS has its own overtime rule
+
        float wantovertime;
        wantovertime = 0;
 
@@ -2332,6 +2369,7 @@ void MapVote_AddVotable(string nextMap, float isSuggestion)
        mapvote_maps[mapvote_count] = strzone(nextMap);
        mapvote_maps_suggested[mapvote_count] = isSuggestion;
 
+       pakfile = string_null;
        for(i = 0; i < mapvote_screenshot_dirs_count; ++i)
        {
                mapfile = strcat(mapvote_screenshot_dirs[i], "/", mapvote_maps[i]);
@@ -2837,11 +2875,12 @@ float RedirectionThink()
        clients_found = 0;
        FOR_EACH_REALCLIENT(self)
        {
+               // TODO add timer
                print("Redirecting: sending connect command to ", self.netname, "\n");
                if(redirection_target == "self")
-                       stuffcmd(self, "\ndisconnect; reconnect\n");
+                       stuffcmd(self, "\ndisconnect; defer ", ftos(autocvar_quit_and_redirect_timer), " reconnect\n");
                else
-                       stuffcmd(self, strcat("\ndisconnect; connect ", redirection_target, "\n"));
+                       stuffcmd(self, strcat("\ndisconnect; defer ", ftos(autocvar_quit_and_redirect_timer), " \"connect ", redirection_target, "\"\n"));
                ++clients_found;
        }
 
index b40a1e3a289ad682f95cfe8a96b35e83d84a9aa3..38a1e249d7847a954e20a9df455dd2dfa8289b67 100644 (file)
@@ -19,6 +19,8 @@
  *     server IP that registered the ban
  */
 
+#define MAX_IPBAN_URIS (URI_GET_IPBAN_END - URI_GET_IPBAN + 1)
+
 float Ban_Insert(string ip, float bantime, string reason, float dosync);
 
 void OnlineBanList_SendBan(string ip, float bantime, string reason)
@@ -322,6 +324,7 @@ void Ban_View()
        
        print("^2Listing all existing active bans:\n");
        
+       n = 0;
        for(i = 0; i < ban_count; ++i)
        {
                if(time > ban_expire[i])
@@ -446,6 +449,15 @@ float Ban_MaybeEnforceBan(entity client)
        return FALSE;
 }
 
+.float ban_checked;
+float Ban_MaybeEnforceBanOnce(entity client)
+{
+       if(client.ban_checked)
+               return FALSE;
+       client.ban_checked = TRUE;
+       return Ban_MaybeEnforceBan(self);
+}
+
 string Ban_Enforce(float i, string reason)
 {
        string s;
@@ -464,7 +476,7 @@ string Ban_Enforce(float i, string reason)
                                        reason = strcat(reason, ", ");
                                reason = strcat(reason, e.netname);
                        }
-                       s = strcat(s, "^1NOTE:^7 banned client ", e.netname, "^7 has to go\n");
+                       s = strcat(s, "^1NOTE:^7 banned client ", e.netaddress, "^7 has to go\n");
                        dropclient(e);
                }
        bprint(s);
@@ -551,31 +563,39 @@ float Ban_Insert(string ip, float bantime, string reason, float dosync)
 
 void Ban_KickBanClient(entity client, float bantime, float masksize, string reason)
 {
+       string ip, id;
        if(!Ban_GetClientIP(client))
        {
                sprint(client, strcat("Kickbanned: ", reason, "\n"));
                dropclient(client);
                return;
        }
-       // now ban him
+
+       // who to ban?
        switch(masksize)
        {
                case 1:
-                       Ban_Insert(ban_ip1, bantime, reason, 1);
+                       ip = strcat1(ban_ip1);
                        break;
                case 2:
-                       Ban_Insert(ban_ip2, bantime, reason, 1);
+                       ip = strcat1(ban_ip2);
                        break;
                case 3:
-                       Ban_Insert(ban_ip3, bantime, reason, 1);
+                       ip = strcat1(ban_ip3);
                        break;
                case 4:
                default:
-                       Ban_Insert(ban_ip4, bantime, reason, 1);
+                       ip = strcat1(ban_ip4);
                        break;
        }
        if(ban_idfp)
-               Ban_Insert(ban_idfp, bantime, reason, 1);
+               id = strcat1(ban_idfp);
+       else
+               id = string_null;
+
+       Ban_Insert(ip, bantime, reason, 1);
+       if(id)
+               Ban_Insert(id, bantime, reason, 1);
        /*
         * not needed, as we enforce the ban in Ban_Insert anyway
        // and kick him
index 15939464e00a8579053039af9336e4c814377f3c..d466942e31ed318bd052e5407616ba9a0c90c326 100644 (file)
@@ -1,6 +1,7 @@
 void Ban_SaveBans();
 void Ban_LoadBans();
 float Ban_MaybeEnforceBan(entity client);
+float Ban_MaybeEnforceBanOnce(entity client);
 float BanCommand(string command);
 
 void OnlineBanList_URI_Get_Callback(float id, float status, string data);
index e39f2813450abfad76fd6a9750cee7bee470770f..7b386ec97514ef571a9aa7ab5186e50c1773ee0a 100644 (file)
@@ -36,6 +36,8 @@ string item_keys_keylist(float keylist) {
        if ((keylist & (keylist-1)) != 0)
                return strcat("the ", item_keys_names[lowestbit(keylist)]);
        
+       n = "";
+       base = 0;
        while (keylist) {
                l = lowestbit(keylist);
                if (n)
@@ -181,12 +183,13 @@ void spawnfunc_item_key() {
                break;
        
        default:
+               _netname = "FLUFFY PINK keycard";
+               _colormod = '1 1 1';
+
                if (!self.netname) {
                        objerror("item_key doesn't have a default name for this key and a custom one was not specified!");
                        remove(self);
                        return;
-               } else if (!self.colormod) {
-                       _colormod = '1 1 1';
                }
                break;
                
index b780a8511a882f96ace60faa8e8a82a9223002c3..25b42821ed3621735722e23194374d4922396458 100644 (file)
@@ -526,7 +526,7 @@ string W_FixWeaponOrder_ForceComplete_AndBuildImpulseList(string wo)
 }
 void GetCvars(float f)
 {
-       string s;
+       string s = string_null;
 
        if (f > 0)
                s = strcat1(argv(f));
@@ -740,6 +740,7 @@ float g_pickup_healthmega_anyway;
 float g_pickup_ammo_anyway;
 float g_pickup_weapons_anyway;
 float g_weaponarena;
+WEPSET_DECLARE_A(g_weaponarena_weapons);
 float g_weaponarena_random;
 float g_weaponarena_random_with_laser;
 string g_weaponarena_list;
@@ -749,7 +750,9 @@ float g_weapondamagefactor;
 float g_weaponforcefactor;
 float g_weaponspreadfactor;
 
-float start_weapons;
+WEPSET_DECLARE_A(start_weapons);
+WEPSET_DECLARE_A(start_weapons_default);
+WEPSET_DECLARE_A(start_weapons_defaultmask);
 float start_items;
 float start_ammo_shells;
 float start_ammo_nails;
@@ -758,7 +761,9 @@ float start_ammo_cells;
 float start_ammo_fuel;
 float start_health;
 float start_armorvalue;
-float warmup_start_weapons;
+WEPSET_DECLARE_A(warmup_start_weapons);
+WEPSET_DECLARE_A(warmup_start_weapons_default);
+WEPSET_DECLARE_A(warmup_start_weapons_defaultmask);
 float warmup_start_ammo_shells;
 float warmup_start_ammo_nails;
 float warmup_start_ammo_rockets;
@@ -767,38 +772,48 @@ float warmup_start_ammo_fuel;
 float warmup_start_health;
 float warmup_start_armorvalue;
 float g_weapon_stay;
-float g_ghost_items;
 
 entity get_weaponinfo(float w);
 
 float want_weapon(string cvarprefix, entity weaponinfo, float allguns)
 {
        var float i = weaponinfo.weapon;
+       var float d = 0;
 
        if (!i)
                return 0;
 
-       var float t = cvar(strcat(cvarprefix, weaponinfo.netname));
-
-       if (t < 0) // "default" weapon selection
+       if (g_lms || g_ca || allguns)
        {
-               if (g_lms || g_ca || allguns)
-                       t = (weaponinfo.spawnflags & WEP_FLAG_NORMAL);
-               else if(t < -1)
-                       t = 0;
-               else if (g_cts)
-                       t = (i == WEP_SHOTGUN);
-               else if (g_nexball)
-                       t = 0; // weapon is set a few lines later
+               if(weaponinfo.spawnflags & WEP_FLAG_NORMAL)
+                       d = TRUE;
                else
-                       t = (i == WEP_LASER || i == WEP_SHOTGUN);
-               if(g_grappling_hook) // if possible, redirect off-hand hook to on-hand hook
-                       t |= (i == WEP_HOOK);
+                       d = FALSE;
        }
+       else if (g_cts)
+               d = (i == WEP_SHOTGUN);
+       else if (g_nexball)
+               d = 0; // weapon is set a few lines later
+       else
+               d = (i == WEP_LASER || i == WEP_SHOTGUN);
+               
+       if(g_grappling_hook) // if possible, redirect off-hand hook to on-hand hook
+               d |= (i == WEP_HOOK);
+       if(weaponinfo.spawnflags & WEP_FLAG_MUTATORBLOCKED) // never default mutator blocked guns
+               d = 0;
 
-       // we cannot disable porto in Nexball, we must force it
-       if(g_nexball && i == WEP_PORTO)
-               t = 1;
+       var float t = cvar(strcat(cvarprefix, weaponinfo.netname));
+       
+       //print(strcat("want_weapon: ", weaponinfo.netname, " - d: ", ftos(d), ", t: ", ftos(t), ". \n"));
+       
+       // bit order in t:
+       // 1: want or not
+       // 2: is default?
+       // 4: is set by default?
+       if(t < 0)
+               t = 4 | (3 * d);
+       else
+               t |= (2 * d);
 
        return t;
 }
@@ -810,7 +825,9 @@ void readplayerstartcvars()
        string s;
 
        // initialize starting values for players
-       start_weapons = 0;
+       WEPSET_CLEAR_A(start_weapons);
+       WEPSET_CLEAR_A(start_weapons_default);
+       WEPSET_CLEAR_A(start_weapons_defaultmask);
        start_items = 0;
        start_ammo_shells = 0;
        start_ammo_nails = 0;
@@ -820,6 +837,8 @@ void readplayerstartcvars()
        start_armorvalue = cvar("g_balance_armor_start");
 
        g_weaponarena = 0;
+       WEPSET_CLEAR_A(g_weaponarena_weapons);
+
        s = cvar_string("g_weaponarena");
        if (s == "0" || s == "")
        {
@@ -837,34 +856,35 @@ void readplayerstartcvars()
        }
        else if (s == "all")
        {
+               g_weaponarena = 1;
                g_weaponarena_list = "All Weapons";
                for (j = WEP_FIRST; j <= WEP_LAST; ++j)
                {
                        e = get_weaponinfo(j);
-                       g_weaponarena |= e.weapons;
-                       weapon_action(e.weapon, WR_PRECACHE);
+                       if not(e.spawnflags & WEP_FLAG_MUTATORBLOCKED)
+                               WEPSET_OR_AW(g_weaponarena_weapons, j);
                }
        }
        else if (s == "most")
        {
+               g_weaponarena = 1;
                g_weaponarena_list = "Most Weapons";
                for (j = WEP_FIRST; j <= WEP_LAST; ++j)
                {
                        e = get_weaponinfo(j);
-                       if (e.spawnflags & WEP_FLAG_NORMAL)
-                       {
-                               g_weaponarena |= e.weapons;
-                               weapon_action(e.weapon, WR_PRECACHE);
-                       }
+                       if not(e.spawnflags & WEP_FLAG_MUTATORBLOCKED)
+                               if (e.spawnflags & WEP_FLAG_NORMAL)
+                                       WEPSET_OR_AW(g_weaponarena_weapons, j);
                }
        }
        else if (s == "none")
        {
+               g_weaponarena = 1;
                g_weaponarena_list = "No Weapons";
-               g_weaponarena = WEPBIT_ALL + 1; // this supports no single weapon bit!
        }
        else
        {
+               g_weaponarena = 1;
                t = tokenize_console(s);
                g_weaponarena_list = "";
                for (i = 0; i < t; ++i)
@@ -875,8 +895,7 @@ void readplayerstartcvars()
                                e = get_weaponinfo(j);
                                if (e.netname == s)
                                {
-                                       g_weaponarena |= e.weapons;
-                                       weapon_action(e.weapon, WR_PRECACHE);
+                                       WEPSET_OR_AW(g_weaponarena_weapons, j);
                                        g_weaponarena_list = strcat(g_weaponarena_list, e.message, " & ");
                                        break;
                                }
@@ -897,16 +916,21 @@ void readplayerstartcvars()
 
        if (g_weaponarena)
        {
-               start_weapons = g_weaponarena;
+               g_minstagib = 0; // incompatible
+               g_pinata = 0; // incompatible
+               g_weapon_stay = 0; // incompatible
+               WEPSET_COPY_AA(start_weapons, g_weaponarena_weapons);
                if(!(g_lms || g_ca))
                        start_items |= IT_UNLIMITED_AMMO;
        }
        else if (g_minstagib)
        {
+               g_pinata = 0; // incompatible
+               g_weapon_stay = 0; // incompatible
+               g_bloodloss = 0; // incompatible
                start_health = 100;
                start_armorvalue = 0;
-               start_weapons = WEPBIT_MINSTANEX;
-               weapon_action(WEP_MINSTANEX, WR_PRECACHE);
+               WEPSET_COPY_AW(start_weapons, WEP_MINSTANEX);
                g_minstagib_invis_alpha = cvar("g_minstagib_invis_alpha");
                start_items |= IT_UNLIMITED_SUPERWEAPONS;
 
@@ -918,8 +942,13 @@ void readplayerstartcvars()
                for (i = WEP_FIRST; i <= WEP_LAST; ++i)
                {
                        e = get_weaponinfo(i);
-                       if(want_weapon("g_start_weapon_", e, FALSE))
-                               start_weapons |= e.weapons;
+                       float w = want_weapon("g_start_weapon_", e, FALSE);
+                       if(w & 1)
+                               WEPSET_OR_AW(start_weapons, i);
+                       if(w & 2)
+                               WEPSET_OR_AW(start_weapons_default, i);
+                       if(w & 4)
+                               WEPSET_OR_AW(start_weapons_defaultmask, i);
                }
        }
 
@@ -977,7 +1006,9 @@ void readplayerstartcvars()
                warmup_start_ammo_fuel = start_ammo_fuel;
                warmup_start_health = start_health;
                warmup_start_armorvalue = start_armorvalue;
-               warmup_start_weapons = start_weapons;
+               WEPSET_COPY_AA(warmup_start_weapons, start_weapons);
+               WEPSET_COPY_AA(warmup_start_weapons_default, start_weapons_default);
+               WEPSET_COPY_AA(warmup_start_weapons_defaultmask, start_weapons_defaultmask);
 
                if (!g_weaponarena && !g_minstagib && !g_ca)
                {
@@ -988,17 +1019,29 @@ void readplayerstartcvars()
                        warmup_start_ammo_fuel = cvar("g_warmup_start_ammo_fuel");
                        warmup_start_health = cvar("g_warmup_start_health");
                        warmup_start_armorvalue = cvar("g_warmup_start_armor");
-                       warmup_start_weapons = 0;
+                       WEPSET_CLEAR_A(warmup_start_weapons);
+                       WEPSET_CLEAR_A(warmup_start_weapons_default);
+                       WEPSET_CLEAR_A(warmup_start_weapons_defaultmask);
                        for (i = WEP_FIRST; i <= WEP_LAST; ++i)
                        {
                                e = get_weaponinfo(i);
-                               if(want_weapon("g_start_weapon_", e, cvar("g_warmup_allguns")))
-                                       warmup_start_weapons |= e.weapons;
+                               float w = want_weapon("g_start_weapon_", e, cvar("g_warmup_allguns"));
+                               if(w & 1)
+                                       WEPSET_OR_AW(warmup_start_weapons, i);
+                               if(w & 2)
+                                       WEPSET_OR_AW(warmup_start_weapons_default, i);
+                               if(w & 4)
+                                       WEPSET_OR_AW(warmup_start_weapons_defaultmask, i);
                        }
                }
        }
 
-       if (g_jetpack || (g_grappling_hook && (start_weapons & WEPBIT_HOOK)))
+       if (g_jetpack)
+               start_items |= IT_JETPACK;
+
+       MUTATOR_CALLHOOK(SetStartItems);
+
+       if ((start_items & IT_JETPACK) || (g_grappling_hook && WEPSET_CONTAINS_AW(start_weapons, WEP_HOOK)))
        {
                g_grappling_hook = 0; // these two can't coexist, as they use the same button
                start_items |= IT_FUEL_REGEN;
@@ -1006,16 +1049,11 @@ void readplayerstartcvars()
                warmup_start_ammo_fuel = max(warmup_start_ammo_fuel, cvar("g_balance_fuel_rotstable"));
        }
 
-       if (g_jetpack)
-               start_items |= IT_JETPACK;
-
-       MUTATOR_CALLHOOK(SetStartItems);
-
        for (i = WEP_FIRST; i <= WEP_LAST; ++i)
        {
                e = get_weaponinfo(i);
-               if(e.weapons & (start_weapons | warmup_start_weapons))
-                       weapon_action(e.weapon, WR_PRECACHE);
+               if(WEPSET_CONTAINS_AW(start_weapons, i) || WEPSET_CONTAINS_AW(warmup_start_weapons, i))
+                       weapon_action(i, WR_PRECACHE);
        }
 
        start_ammo_shells = max(0, start_ammo_shells);
@@ -1063,19 +1101,26 @@ float sv_pitch_fixyaw;
 string GetGametype(); // g_world.qc
 void readlevelcvars(void)
 {
-       // first load all the mutators
-       if(cvar("g_invincible_projectiles"))
-               MUTATOR_ADD(mutator_invincibleprojectiles);
-       if(cvar("g_nix"))
-               MUTATOR_ADD(mutator_nix);
+       g_minstagib = cvar("g_minstagib");
+
+       // load ALL the mutators
        if(cvar("g_dodging"))
                MUTATOR_ADD(mutator_dodging);
-       if(cvar("g_rocket_flying"))
-               MUTATOR_ADD(mutator_rocketflying);
-       if(cvar("g_vampire"))
-               MUTATOR_ADD(mutator_vampire);
        if(cvar("g_spawn_near_teammate"))
                MUTATOR_ADD(mutator_spawn_near_teammate);
+       if(!g_minstagib)
+       {
+               if(cvar("g_invincible_projectiles"))
+                       MUTATOR_ADD(mutator_invincibleprojectiles);
+               if(cvar("g_new_toys"))
+                       MUTATOR_ADD(mutator_new_toys);
+               if(cvar("g_nix"))
+                       MUTATOR_ADD(mutator_nix);
+               if(cvar("g_rocket_flying"))
+                       MUTATOR_ADD(mutator_rocketflying);
+               if(cvar("g_vampire"))
+                       MUTATOR_ADD(mutator_vampire);
+       }
 
        // is this a mutator? is this a mode?
        if(cvar("g_sandbox"))
@@ -1121,7 +1166,6 @@ void readlevelcvars(void)
        g_grappling_hook = cvar("g_grappling_hook");
        g_jetpack = cvar("g_jetpack");
        g_midair = cvar("g_midair");
-       g_minstagib = cvar("g_minstagib");
        g_norecoil = cvar("g_norecoil");
        g_bloodloss = cvar("g_bloodloss");
        sv_maxidle = cvar("sv_maxidle");
@@ -1204,11 +1248,6 @@ void readlevelcvars(void)
     if(!g_weapon_stay)
         g_weapon_stay = cvar("g_weapon_stay");
 
-       g_ghost_items = cvar("g_ghost_items");
-
-       if(g_ghost_items >= 1)
-               g_ghost_items = 0.25; // default alpha value
-
        if not(inWarmupStage && !g_ca)
                game_starttime = cvar("g_start_delay");
 
@@ -1654,7 +1693,7 @@ void make_safe_for_remove(entity e)
 {
     if (e.initialize_entity)
     {
-        entity ent, prev;
+        entity ent, prev = world;
         for (ent = initialize_entity_first; ent; )
         {
             if ((ent == e) || ((ent.classname == "initialize_entity") && (ent.enemy == e)))
@@ -1726,6 +1765,7 @@ void InitializeEntity(entity e, void(void) func, float order)
     e.initialize_entity_order = order;
 
     cur = initialize_entity_first;
+    prev = world;
     for (;;)
     {
         if (!cur || cur.initialize_entity_order > order)
@@ -1984,35 +2024,33 @@ float WarpZone_Projectile_Touch_ImpactFilter_Callback()
 }
 #define PROJECTILE_TOUCH if(WarpZone_Projectile_Touch()) return
 
-float MAX_IPBAN_URIS           = 16;
-                              
-float URI_GET_DISCARD          = 0;
-float URI_GET_IPBAN            = 1;
-float URI_GET_IPBAN_END        = 16;
+#define ITEM_TOUCH_NEEDKILL() (((trace_dpstartcontents | trace_dphitcontents) & DPCONTENTS_NODROP) || (trace_dphitq3surfaceflags & Q3SURFACEFLAG_SKY))
+#define ITEM_DAMAGE_NEEDKILL(dt) (((dt) == DEATH_HURTTRIGGER) || ((dt) == DEATH_SLIME) || ((dt) == DEATH_LAVA) || ((dt) == DEATH_SWAMP))
 
 void URI_Get_Callback(float id, float status, string data)
 {
-    dprint("Received HTTP request data for id ", ftos(id), "; status is ", ftos(status), "\nData is:\n");
-    dprint(data);
-    dprint("\nEnd of data.\n");
-
-    if(url_URI_Get_Callback(id, status, data))
-    {
-        // handled
-    }
-    else if (id == URI_GET_DISCARD)
-    {
-        // discard
-    }
-    else if (id >= URI_GET_IPBAN && id <= URI_GET_IPBAN_END)
-    {
-        // online ban list
-        OnlineBanList_URI_Get_Callback(id, status, data);
-    }
-    else
-    {
-        print("Received HTTP request data for an invalid id ", ftos(id), ".\n");
-    }
+       if(url_URI_Get_Callback(id, status, data))
+       {
+               // handled
+       }
+       else if (id == URI_GET_DISCARD)
+       {
+               // discard
+       }
+       else if (id >= URI_GET_CURL && id <= URI_GET_CURL_END)
+       {
+               // sv_cmd curl
+               Curl_URI_Get_Callback(id, status, data);
+       }
+       else if (id >= URI_GET_IPBAN && id <= URI_GET_IPBAN_END)
+       {
+               // online ban list
+               OnlineBanList_URI_Get_Callback(id, status, data);
+       }
+       else
+       {
+               print("Received HTTP request data for an invalid id ", ftos(id), ".\n");
+       }
 }
 
 string uid2name(string myuid) {
@@ -2078,7 +2116,7 @@ void race_writeTime(string map, float t, string myuid)
        float newpos;
        newpos = race_readPos(map, t);
 
-       float i, prevpos;
+       float i, prevpos = 0;
        for(i = 1; i <= RANKINGS_CNT; ++i)
        {
                if(race_readUID(map, i) == myuid)
@@ -2140,6 +2178,8 @@ float MoveToRandomMapLocation(entity e, float goodcontents, float badcontents, f
     org = world.mins;
     delta = world.maxs - world.mins;
 
+    start = end = org;
+
     for (i = 0; i < attempts; ++i)
     {
         start_x = org_x + random() * delta_x;
@@ -2396,12 +2436,8 @@ vector shotorg_adjust(vector vecs, float y_is_right, float visual)
 void attach_sameorigin(entity e, entity to, string tag)
 {
     vector org, t_forward, t_left, t_up, e_forward, e_up;
-    vector org0, ang0;
     float tagscale;
 
-    ang0 = e.angles;
-    org0 = e.origin;
-
     org = e.origin - gettaginfo(to, gettagindex(to, tag));
     tagscale = pow(vlen(v_forward), -2); // undo a scale on the tag
     t_forward = v_forward * tagscale;
index f6e3de4cddf854cf024b8a9f4ad6f3d51caac1b3..ebca6ee2b7b4353ba16afe6b76a941973e1ffcc5 100644 (file)
@@ -400,7 +400,10 @@ void onslaught_generator_think()
                                                d = d + 1;
                                e = e.chain;
                        }
-                       d = d * self.max_health / 300;
+                       if(autocvar_g_campaign && autocvar__campaign_testrun)
+                               d = d * self.max_health;
+                       else
+                               d = d * self.max_health / max(30, 60 * autocvar_timelimit_suddendeath);
                        Damage(self, self, self, d, DEATH_HURTTRIGGER, self.origin, '0 0 0');
                }
                else if (overtime_msg_time)
@@ -949,6 +952,7 @@ void onslaught_controlpoint_icon_damage(entity inflictor, entity attacker, float
 
        if (attacker.classname == "player")
        {
+               nag = FALSE;
                if(self.team == COLOR_TEAM1)
                {
                        if(time - ons_notification_time_team1 > 10)
index fdf24edb75a399a526e085a7f28c11b6791c349c..9be5745cb5e4ec24afbde80bee85c4e58bf94097 100644 (file)
@@ -59,6 +59,7 @@ float CallbackChain_Remove(entity cb, float() func)
        entity e;
        float n;
        n = 0;
+       order = 0;
        for(e = cb; e.cbc_next; e = e.cbc_next)
        {
                while(e.cbc_next.cbc_func == func)
index ecec3c87c57a65c107afb09d2b02cf457526d744..236e311b6a0cb8c0fa7fa39631678b8b46f6ab64 100644 (file)
@@ -201,3 +201,14 @@ MUTATOR_HOOKABLE(Spawn_Score);
 
 MUTATOR_HOOKABLE(SV_StartFrame);
        // runs globally each server frame
+
+MUTATOR_HOOKABLE(SetModname);
+       // OUT
+       string modname; // name of the mutator/mod if it warrants showing as such in the server browser
+
+MUTATOR_HOOKABLE(SetWeaponreplace);
+       // IN
+               entity self; // map entity
+               entity other; // weapon info
+       // IN+OUT
+               string ret_string;
index d2c741f0b46ee0e1757e19c6eab076b4818c5f43..2a2ae9ee2900fea47c6d90233a5fbae180281d96 100644 (file)
@@ -13,7 +13,7 @@ void freezetag_CheckWinner()
        if(next_round || (time > warmup - autocvar_g_freezetag_warmup && time < warmup))
                return; // already waiting for next round to start
 
-       if((redalive >= 1 && bluealive >= 1) // counted in arena.qc
+       if((redalive >= 1 && bluealive >= 1)
                || (redalive >= 1 && yellowalive >= 1)
                || (redalive >= 1 && pinkalive >= 1)
                || (bluealive >= 1 && yellowalive >= 1)
@@ -351,13 +351,11 @@ MUTATOR_DEFINITION(gamemode_freezetag)
        {
                if(time > 1) // game loads at time 1
                        error("This is a game type and it cannot be added at runtime.");
-               g_freezetag = 1;
                freezetag_Initialize();
        }
 
        MUTATOR_ONREMOVE
        {
-               g_freezetag = 0;
                error("This is a game type and it cannot be removed at runtime.");
        }
 
index 9134353e015574860dc4478938633ba80e3a56ec..1f6a82b84b7c9475a29f5d1fdfcd21aa5d624720 100644 (file)
@@ -329,13 +329,11 @@ MUTATOR_DEFINITION(gamemode_keepaway)
        {
                if(time > 1) // game loads at time 1
                        error("This is a game type and it cannot be added at runtime.");
-               g_keepaway = 1;
                ka_Initialize();
        }
 
        MUTATOR_ONREMOVE
        {
-               g_keepaway = 0;
                error("This is a game type and it cannot be removed at runtime.");
        }
 
index d3f4fdc87e8fa328bfc87dd000f79c6ccbe1e38d..58d732d7f70b926c6cb13c6f93aa0f9a5807f48e 100644 (file)
@@ -32,11 +32,11 @@ float kh_no_radar_circles;
 .float siren_time;  //  time delay the siren
 //.float stuff_time;  //  time delay to stuffcmd a cvar
 
-float test[17] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
-//test[0] = status of dropped keys, test[1 - 16] = player #
+float kh_keystatus[17];
+//kh_keystatus[0] = status of dropped keys, kh_keystatus[1 - 16] = player #
 //replace 17 with cvar("maxplayers") or similar !!!!!!!!!
 //for(i = 0; i < maxplayers; ++i)
-//     test[i] = "0";
+//     kh_keystatus[i] = "0";
 
 float kh_Team_ByID(float t)
 {
@@ -342,7 +342,7 @@ void kh_Key_AssignTo(entity key, entity player)  // runs every time a key is pic
                        key.kh_next.kh_prev = key;
 
                float i;
-               i = test[key.owner.playerid];
+               i = kh_keystatus[key.owner.playerid];
                        if(key.netname == "^1red key")
                                i += 1;
                        if(key.netname == "^4blue key")
@@ -351,7 +351,7 @@ void kh_Key_AssignTo(entity key, entity player)  // runs every time a key is pic
                                i += 4;
                        if(key.netname == "^6pink key")
                                i += 8;
-               test[key.owner.playerid] = i;
+               kh_keystatus[key.owner.playerid] = i;
 
                kh_Key_Attach(key);
 
@@ -412,6 +412,13 @@ void kh_Key_Damage(entity inflictor, entity attacker, float damage, float deatht
 {
        if(self.owner)
                return;
+       if(ITEM_DAMAGE_NEEDKILL(deathtype))
+       {
+               // touching lava, or hurt trigger
+               // what shall we do?
+               // immediately return is bad
+               // maybe start a shorter countdown?
+       }
        if(vlen(force) <= 0)
                return;
        if(time > self.pushltime)
@@ -441,6 +448,15 @@ void kh_Key_Touch()  // runs many, many times when a key has been dropped and ca
 
        if(self.owner) // already carried
                return;
+
+       if(ITEM_TOUCH_NEEDKILL())
+       {
+               // touching sky, or nodrop
+               // what shall we do?
+               // immediately return is bad
+               // maybe start a shorter countdown?
+       }
+
        if(other.classname != "player")
                return;
        if(other.deadflag != DEAD_NO)
@@ -529,6 +545,8 @@ void kh_WinnerTeam(float teem)  // runs when a team wins
 
        first = TRUE;
        midpoint = '0 0 0';
+       firstorigin = '0 0 0';
+       lastorigin = '0 0 0';
        FOR_EACH_KH_KEY(key)
        {
                vector thisorigin;
@@ -919,7 +937,7 @@ void kh_StartRound()  // runs at the start of each round
        {
                teem = kh_Team_ByID(i);
                players = 0;
-               entity my_player;
+               entity my_player = world;
                FOR_EACH_PLAYER(player)
                        if(player.deadflag == DEAD_NO)
                                if(!player.BUTTON_CHAT)
@@ -1090,13 +1108,11 @@ MUTATOR_DEFINITION(gamemode_keyhunt)
        {
                if(time > 1) // game loads at time 1
                        error("This is a game type and it cannot be added at runtime.");
-               g_keyhunt = 1;
                kh_Initialize();
        }
 
        MUTATOR_ONREMOVE
        {
-               g_keyhunt = 0;
                error("This is a game type and it cannot be removed at runtime.");
        }
 
diff --git a/qcsrc/server/mutators/gamemode_nexball.qc b/qcsrc/server/mutators/gamemode_nexball.qc
new file mode 100644 (file)
index 0000000..ec8de78
--- /dev/null
@@ -0,0 +1,984 @@
+float autocvar_g_nexball_safepass_turnrate;
+float autocvar_g_nexball_safepass_maxdist;
+float autocvar_g_nexball_safepass_holdtime;
+float autocvar_g_nexball_viewmodel_scale;
+float autocvar_g_nexball_tackling;
+vector autocvar_g_nexball_viewmodel_offset;
+
+void basketball_touch();
+void football_touch();
+void ResetBall();
+#define NBM_NONE 0
+#define NBM_FOOTBALL 2
+#define NBM_BASKETBALL 4
+float nexball_mode;
+
+float OtherTeam(float t)  //works only if there are two teams on the map!
+{
+       entity e;
+       e = find(world, classname, "nexball_team");
+       if(e.team == t)
+               e = find(e, classname, "nexball_team");
+       return e.team;
+}
+
+
+void LogNB(string mode, entity actor)
+{
+       string s;
+       if(!autocvar_sv_eventlog)
+               return;
+       s = strcat(":nexball:", mode);
+       if(actor != world)
+               s = strcat(s, ":", ftos(actor.playerid));
+       GameLogEcho(s);
+}
+
+void ball_restart(void)
+{
+       if(self.owner)
+               DropBall(self, self.owner.origin, '0 0 0');
+       ResetBall();
+}
+
+void nexball_setstatus(void)
+{
+       entity oldself;
+       self.items &~= IT_KEY1;
+       if(self.ballcarried)
+       {
+               if(self.ballcarried.teamtime && (self.ballcarried.teamtime < time))
+               {
+                       bprint("The ", ColoredTeamName(self.team), " held the ball for too long.\n");
+                       oldself = self;
+                       self = self.ballcarried;
+                       DropBall(self, self.owner.origin, '0 0 0');
+                       ResetBall();
+                       self = oldself;
+               }
+               else
+                       self.items |= IT_KEY1;
+       }
+}
+
+void relocate_nexball(void)
+{
+       tracebox(self.origin, BALL_MINS, BALL_MAXS, self.origin, TRUE, self);
+       if(trace_startsolid)
+       {
+               vector o;
+               o = self.origin;
+               if(!move_out_of_solid(self))
+                       objerror("could not get out of solid at all!");
+               print("^1NOTE: this map needs FIXING. ", self.classname, " at ", vtos(o - '0 0 1'));
+               print(" needs to be moved out of solid, e.g. by '", ftos(self.origin_x - o_x));
+               print(" ", ftos(self.origin_y - o_y));
+               print(" ", ftos(self.origin_z - o_z), "'\n");
+               self.origin = o;
+       }
+}
+
+void DropOwner(void)
+{
+       entity ownr;
+       ownr = self.owner;
+       DropBall(self, ownr.origin, ownr.velocity);
+       makevectors(ownr.v_angle_y * '0 1 0');
+       ownr.velocity += ('0 0 0.75' - v_forward) * 1000;
+       ownr.flags &~= FL_ONGROUND;
+}
+
+void GiveBall(entity plyr, entity ball)
+{
+       entity ownr;
+
+       if((ownr = ball.owner))
+       {
+               ownr.effects &~= autocvar_g_nexball_basketball_effects_default;
+               ownr.ballcarried = world;
+               if(ownr.metertime)
+               {
+                       ownr.metertime = 0;
+                       ownr.weaponentity.state = WS_READY;
+               }
+               WaypointSprite_Kill(ownr.waypointsprite_attachedforcarrier);
+       }
+       else
+       {
+               WaypointSprite_Kill(ball.waypointsprite_attachedforcarrier);
+       }
+       
+       //setattachment(ball, plyr, "");
+       setorigin(ball, plyr.origin + plyr.view_ofs);
+
+       if(ball.team != plyr.team)
+               ball.teamtime = time + autocvar_g_nexball_basketball_delay_hold_forteam;
+
+       ball.owner = ball.pusher = plyr; //"owner" is set to the player carrying, "pusher" to the last player who touched it
+       ball.team = plyr.team;
+       plyr.ballcarried = ball;
+       ball.dropperid = plyr.playerid;
+
+       plyr.effects |= autocvar_g_nexball_basketball_effects_default;
+       ball.effects &~= autocvar_g_nexball_basketball_effects_default;
+
+       ball.velocity = '0 0 0';
+       ball.movetype = MOVETYPE_NONE;
+       ball.touch = SUB_Null;
+       ball.effects |= EF_NOSHADOW;
+       ball.scale = 1; // scale down.
+
+       WaypointSprite_AttachCarrier("nb-ball", plyr, RADARICON_FLAGCARRIER, BALL_SPRITECOLOR);
+       WaypointSprite_UpdateRule(plyr.waypointsprite_attachedforcarrier, 0, SPRITERULE_DEFAULT);
+
+       if(autocvar_g_nexball_basketball_delay_hold)
+       {
+               ball.think = DropOwner;
+               ball.nextthink = time + autocvar_g_nexball_basketball_delay_hold;
+       }
+       
+    ownr = self;
+    self = plyr;    
+    WEPSET_COPY_EE(self.weaponentity, self);
+    self.weaponentity.switchweapon = self.weapon;
+    WEPSET_COPY_EW(self, WEP_PORTO);
+    weapon_action(WEP_PORTO, WR_RESETPLAYER);
+    self.switchweapon = WEP_PORTO;
+    W_SwitchWeapon(WEP_PORTO);
+    self = ownr;
+}
+
+void DropBall(entity ball, vector org, vector vel)
+{
+       ball.effects |= autocvar_g_nexball_basketball_effects_default;
+       ball.effects &~= EF_NOSHADOW;
+       ball.owner.effects &~= autocvar_g_nexball_basketball_effects_default;
+
+       setattachment(ball, world, "");
+       setorigin(ball, org);
+       ball.movetype = MOVETYPE_BOUNCE;
+       ball.flags &~= FL_ONGROUND;
+       ball.scale = ball_scale;
+       ball.velocity = vel;
+       ball.ctf_droptime = time;
+       ball.touch = basketball_touch;
+       ball.think = ResetBall;
+       ball.nextthink = min(time + autocvar_g_nexball_delay_idle, ball.teamtime);
+
+       if(ball.owner.metertime)
+       {
+               ball.owner.metertime = 0;
+               ball.owner.weaponentity.state = WS_READY;
+       }
+
+       WaypointSprite_Kill(ball.owner.waypointsprite_attachedforcarrier);
+       WaypointSprite_Spawn("nb-ball", 0, 0, ball, '0 0 64', world, ball.team, ball, waypointsprite_attachedforcarrier, FALSE, RADARICON_FLAGCARRIER, BALL_SPRITECOLOR); // no health bar please
+       WaypointSprite_UpdateRule(ball.waypointsprite_attachedforcarrier, 0, SPRITERULE_DEFAULT);
+
+       ball.owner.ballcarried = world;
+       ball.owner = world;
+}
+
+void InitBall(void)
+{
+       if(gameover) return;
+       self.flags &~= FL_ONGROUND;
+       self.movetype = MOVETYPE_BOUNCE;
+       if(self.classname == "nexball_basketball")
+               self.touch = basketball_touch;
+       else if(self.classname == "nexball_football")
+               self.touch = football_touch;
+       self.cnt = 0;
+       self.think = ResetBall;
+       self.nextthink = time + autocvar_g_nexball_delay_idle + 3;
+       self.teamtime = 0;
+       self.pusher = world;
+       self.team = FALSE;
+       sound(self, CH_TRIGGER, self.noise1, VOL_BASE, ATTN_NORM);
+       WaypointSprite_Ping(self.waypointsprite_attachedforcarrier);
+       LogNB("init", world);
+}
+
+void ResetBall(void)
+{
+       if(self.cnt < 2)    // step 1
+       {
+               if(time == self.teamtime)
+                       bprint("The ", ColoredTeamName(self.team), " held the ball for too long.\n");
+               self.touch = SUB_Null;
+               self.movetype = MOVETYPE_NOCLIP;
+               self.velocity = '0 0 0'; // just in case?
+               if(!self.cnt)
+                       LogNB("resetidle", world);
+               self.cnt = 2;
+               self.nextthink = time;
+       }
+       else if(self.cnt < 4)      // step 2 and 3
+       {
+//             dprint("Step ", ftos(self.cnt), ": Calculated velocity: ", vtos(self.spawnorigin - self.origin), ", time: ", ftos(time), "\n");
+               self.velocity = (self.spawnorigin - self.origin) * (self.cnt - 1); // 1 or 0.5 second movement
+               self.nextthink = time + 0.5;
+               self.cnt += 1;
+       }
+       else     // step 4
+       {
+//             dprint("Step 4: time: ", ftos(time), "\n");
+               if(vlen(self.origin - self.spawnorigin) > 10)  // should not happen anymore
+                       dprint("The ball moved too far away from its spawn origin.\nOffset: ",
+                                  vtos(self.origin - self.spawnorigin), " Velocity: ", vtos(self.velocity), "\n");
+               self.velocity = '0 0 0';
+               setorigin(self, self.spawnorigin); // make sure it's positioned correctly anyway
+               self.movetype = MOVETYPE_NONE;
+               self.think = InitBall;
+               self.nextthink = max(time, game_starttime) + autocvar_g_nexball_delay_start;
+       }
+}
+
+void football_touch(void)
+{
+       if(other.solid == SOLID_BSP)
+       {
+               if(time > self.lastground + 0.1)
+               {
+                       sound(self, CH_TRIGGER, self.noise, VOL_BASE, ATTN_NORM);
+                       self.lastground = time;
+               }
+               if(vlen(self.velocity) && !self.cnt)
+                       self.nextthink = time + autocvar_g_nexball_delay_idle;
+               return;
+       }
+       if(other.classname != "player")
+               return;
+       if(other.health < 1)
+               return;
+       if(!self.cnt)
+               self.nextthink = time + autocvar_g_nexball_delay_idle;
+
+       self.pusher = other;
+       self.team = other.team;
+
+       if(autocvar_g_nexball_football_physics == -1)    // MrBougo try 1, before decompiling Rev's original
+       {
+               if(vlen(other.velocity))
+                       self.velocity = other.velocity * 1.5 + '0 0 1' * autocvar_g_nexball_football_boost_up;
+       }
+       else if(autocvar_g_nexball_football_physics == 1)      // MrBougo's modded Rev style: partially independant of the height of the aiming point
+       {
+               makevectors(other.v_angle);
+               self.velocity = other.velocity + v_forward * autocvar_g_nexball_football_boost_forward + '0 0 1' * autocvar_g_nexball_football_boost_up;
+       }
+       else if(autocvar_g_nexball_football_physics == 2)      // 2nd mod try: totally independant. Really playable!
+       {
+               makevectors(other.v_angle_y * '0 1 0');
+               self.velocity = other.velocity + v_forward * autocvar_g_nexball_football_boost_forward + v_up * autocvar_g_nexball_football_boost_up;
+       }
+       else     // Revenant's original style (from the original mod's disassembly, acknowledged by Revenant)
+       {
+               makevectors(other.v_angle);
+               self.velocity = other.velocity + v_forward * autocvar_g_nexball_football_boost_forward + v_up * autocvar_g_nexball_football_boost_up;
+       }
+       self.avelocity = -250 * v_forward;  // maybe there is a way to make it look better?
+}
+
+void basketball_touch(void)
+{
+       if(other.ballcarried)
+       {
+               football_touch();
+               return;
+       }
+       if(!self.cnt && other.classname == "player" && (other.playerid != self.dropperid || time > self.ctf_droptime + autocvar_g_nexball_delay_collect))
+       {
+               if(other.health <= 0)
+                       return;
+               LogNB("caught", other);
+               GiveBall(other, self);
+       }
+       else if(other.solid == SOLID_BSP)
+       {
+               sound(self, CH_TRIGGER, self.noise, VOL_BASE, ATTN_NORM);
+               if(vlen(self.velocity) && !self.cnt)
+                       self.nextthink = min(time + autocvar_g_nexball_delay_idle, self.teamtime);
+       }
+}
+
+void GoalTouch(void)
+{
+       entity ball;
+       float isclient, pscore, otherteam;
+       string pname;
+
+       if(gameover) return;
+       if((self.spawnflags & GOAL_TOUCHPLAYER) && other.ballcarried)
+               ball = other.ballcarried;
+       else
+               ball = other;
+       if(ball.classname != "nexball_basketball")
+               if(ball.classname != "nexball_football")
+                       return;
+       if((!ball.pusher && self.team != GOAL_OUT) || ball.cnt)
+               return;
+       EXACTTRIGGER_TOUCH;
+
+
+       if(nb_teams == 2)
+               otherteam = OtherTeam(ball.team);
+       else
+               otherteam = 0;
+
+       if((isclient = ball.pusher.flags & FL_CLIENT))
+               pname = ball.pusher.netname;
+       else
+               pname = "Someone (?)";
+
+       if(ball.team == self.team)         //owngoal (regular goals)
+       {
+               LogNB("owngoal", ball.pusher);
+               bprint("Boo! ", pname, "^7 scored a goal against their own team!\n");
+               pscore = -1;
+       }
+       else if(self.team == GOAL_FAULT)
+       {
+               LogNB("fault", ball.pusher);
+               if(nb_teams == 2)
+                       bprint(ColoredTeamName(otherteam), " gets a point due to ", pname, "^7's silliness.\n");
+               else
+                       bprint(ColoredTeamName(ball.team), " loses a point due to ", pname, "^7's silliness.\n");
+               pscore = -1;
+       }
+       else if(self.team == GOAL_OUT)
+       {
+               LogNB("out", ball.pusher);
+               if((self.spawnflags & GOAL_TOUCHPLAYER) && ball.owner)
+                       bprint(pname, "^7 went out of bounds.\n");
+               else
+                       bprint("The ball was returned.\n");
+               pscore = 0;
+       }
+       else                               //score
+       {
+               LogNB(strcat("goal:", ftos(self.team)), ball.pusher);
+               bprint("Goaaaaal! ", pname, "^7 scored a point for the ", ColoredTeamName(ball.team), ".\n");
+               pscore = 1;
+       }
+
+       sound(ball, CH_TRIGGER, self.noise, VOL_BASE, ATTN_NONE);
+
+       if(ball.team && pscore)
+       {
+               if(nb_teams == 2 && pscore < 0)
+                       TeamScore_AddToTeam(otherteam, ST_NEXBALL_GOALS, -pscore);
+               else
+                       TeamScore_AddToTeam(ball.team, ST_NEXBALL_GOALS, pscore);
+       }
+       if(isclient)
+       {
+               if(pscore > 0)
+                       PlayerScore_Add(ball.pusher, SP_NEXBALL_GOALS, pscore);
+               else if(pscore < 0)
+                       PlayerScore_Add(ball.pusher, SP_NEXBALL_FAULTS, -pscore);
+       }
+
+       if(ball.owner)  // Happens on spawnflag GOAL_TOUCHPLAYER
+               DropBall(ball, ball.owner.origin, ball.owner.velocity);
+
+       WaypointSprite_Ping(ball.waypointsprite_attachedforcarrier);
+
+       ball.cnt = 1;
+       ball.think = ResetBall;
+       if(ball.classname == "nexball_basketball")
+               ball.touch = football_touch; // better than SUB_Null: football control until the ball gets reset
+       ball.nextthink = time + autocvar_g_nexball_delay_goal * (self.team != GOAL_OUT);
+}
+
+//=======================//
+//       team ents       //
+//=======================//
+void spawnfunc_nexball_team(void)
+{
+       if(!g_nexball)
+       {
+               remove(self);
+               return;
+       }
+       self.team = self.cnt + 1;
+}
+
+void nb_spawnteam(string teamname, float teamcolor)
+{
+       dprint("^2spawned team ", teamname, "\n");
+       entity e;
+       e = spawn();
+       e.classname = "nexball_team";
+       e.netname = teamname;
+       e.cnt = teamcolor;
+       e.team = e.cnt + 1;
+       nb_teams += 1;
+}
+
+void nb_spawnteams(void)
+{
+       float t_r = 0, t_b = 0, t_y = 0, t_p = 0;
+       entity e;
+       for(e = world; (e = find(e, classname, "nexball_goal"));)
+       {
+               switch(e.team)
+               {
+               case COLOR_TEAM1:
+                       if(!t_r)
+                       {
+                               nb_spawnteam("Red", e.team-1)   ;
+                               t_r = 1;
+                       }
+                       break;
+               case COLOR_TEAM2:
+                       if(!t_b)
+                       {
+                               nb_spawnteam("Blue", e.team-1)  ;
+                               t_b = 1;
+                       }
+                       break;
+               case COLOR_TEAM3:
+                       if(!t_y)
+                       {
+                               nb_spawnteam("Yellow", e.team-1);
+                               t_y = 1;
+                       }
+                       break;
+               case COLOR_TEAM4:
+                       if(!t_p)
+                       {
+                               nb_spawnteam("Pink", e.team-1)  ;
+                               t_p = 1;
+                       }
+                       break;
+               }
+       }
+}
+
+void nb_delayedinit(void)
+{
+       if(find(world, classname, "nexball_team") == world)
+               nb_spawnteams();
+       ScoreRules_nexball(nb_teams);
+}
+
+
+//=======================//
+//      spawnfuncs       //
+//=======================//
+
+void SpawnBall(void)
+{
+       if(!g_nexball)
+       {
+               remove(self);
+               return;
+       }
+
+//     balls += 4; // using the remaining bits to count balls will leave more than the max edict count, so it's fine
+
+       if(!self.model)
+       {
+               self.model = "models/nexball/ball.md3";
+               self.scale = 1.3;
+       }
+
+       precache_model(self.model);
+       setmodel(self, self.model);
+       setsize(self, BALL_MINS, BALL_MAXS);
+       ball_scale = self.scale;
+
+       relocate_nexball();
+       self.spawnorigin = self.origin;
+
+       self.effects = self.effects | EF_LOWPRECISION;
+
+       if(cvar(strcat("g_", self.classname, "_trail")))  //nexball_basketball :p
+       {
+               self.glow_color = autocvar_g_nexball_trail_color;
+               self.glow_trail = TRUE;
+       }
+
+       self.movetype = MOVETYPE_FLY;
+
+       if(!autocvar_g_nexball_sound_bounce)
+               self.noise = "";
+       else if(!self.noise)
+               self.noise = "sound/nexball/bounce.wav";
+       //bounce sound placeholder (FIXME)
+       if(!self.noise1)
+               self.noise1 = "sound/nexball/drop.wav";
+       //ball drop sound placeholder (FIXME)
+       if(!self.noise2)
+               self.noise2 = "sound/nexball/steal.wav";
+       //stealing sound placeholder (FIXME)
+       if(self.noise) precache_sound(self.noise);
+       precache_sound(self.noise1);
+       precache_sound(self.noise2);
+
+       WaypointSprite_AttachCarrier("nb-ball", self, RADARICON_FLAGCARRIER, BALL_SPRITECOLOR); // the ball's team is not set yet, no rule update needed
+
+       self.reset = ball_restart;
+       self.think = InitBall;
+       self.nextthink = game_starttime + autocvar_g_nexball_delay_start;
+}
+
+void spawnfunc_nexball_basketball(void)
+{
+    nexball_mode |= NBM_BASKETBALL;
+       self.classname = "nexball_basketball";
+       if not(balls & BALL_BASKET)
+       {
+               /*
+               CVTOV(g_nexball_basketball_effects_default);
+               CVTOV(g_nexball_basketball_delay_hold);
+               CVTOV(g_nexball_basketball_delay_hold_forteam);
+               CVTOV(g_nexball_basketball_teamsteal);
+               */
+               autocvar_g_nexball_basketball_effects_default = autocvar_g_nexball_basketball_effects_default & BALL_EFFECTMASK;
+       }
+       if(!self.effects)
+               self.effects = autocvar_g_nexball_basketball_effects_default;
+       self.solid = SOLID_TRIGGER;
+       balls |= BALL_BASKET;
+       self.bouncefactor = autocvar_g_nexball_basketball_bouncefactor;
+       self.bouncestop = autocvar_g_nexball_basketball_bouncestop;
+       SpawnBall();
+}
+
+void spawnfunc_nexball_football(void)
+{
+    nexball_mode |= NBM_FOOTBALL;
+       self.classname = "nexball_football";
+       self.solid = SOLID_TRIGGER;
+       balls |= BALL_FOOT;
+       self.bouncefactor = autocvar_g_nexball_football_bouncefactor;
+       self.bouncestop = autocvar_g_nexball_football_bouncestop;
+       SpawnBall();
+}
+
+void SpawnGoal(void)
+{
+       if(!g_nexball)
+       {
+               remove(self);
+               return;
+       }
+       EXACTTRIGGER_INIT;
+       self.classname = "nexball_goal";
+       if(!self.noise)
+               self.noise = "ctf/respawn.wav";
+       precache_sound(self.noise);
+       self.touch = GoalTouch;
+}
+
+void spawnfunc_nexball_redgoal(void)
+{
+       self.team = COLOR_TEAM1;
+       SpawnGoal();
+}
+void spawnfunc_nexball_bluegoal(void)
+{
+       self.team = COLOR_TEAM2;
+       SpawnGoal();
+}
+void spawnfunc_nexball_yellowgoal(void)
+{
+       self.team = COLOR_TEAM3;
+       SpawnGoal();
+}
+void spawnfunc_nexball_pinkgoal(void)
+{
+       self.team = COLOR_TEAM4;
+       SpawnGoal();
+}
+
+void spawnfunc_nexball_fault(void)
+{
+       self.team = GOAL_FAULT;
+       if(!self.noise)
+               self.noise = "misc/typehit.wav";
+       SpawnGoal();
+}
+
+void spawnfunc_nexball_out(void)
+{
+       self.team = GOAL_OUT;
+       if(!self.noise)
+               self.noise = "misc/typehit.wav";
+       SpawnGoal();
+}
+
+//
+//Spawnfuncs preserved for compatibility
+//
+
+void spawnfunc_ball(void)
+{
+       spawnfunc_nexball_football();
+}
+void spawnfunc_ball_football(void)
+{
+       spawnfunc_nexball_football();
+}
+void spawnfunc_ball_basketball(void)
+{
+       spawnfunc_nexball_basketball();
+}
+// The "red goal" is defended by blue team. A ball in there counts as a point for red.
+void spawnfunc_ball_redgoal(void)
+{
+       spawnfunc_nexball_bluegoal();    // I blame Revenant
+}
+void spawnfunc_ball_bluegoal(void)
+{
+       spawnfunc_nexball_redgoal();    // but he didn't mean to cause trouble :p
+}
+void spawnfunc_ball_fault(void)
+{
+       spawnfunc_nexball_fault();
+}
+void spawnfunc_ball_bound(void)
+{
+       spawnfunc_nexball_out();
+}
+
+//=======================//
+//      Weapon code      //
+//=======================//
+
+
+void W_Nexball_Think()
+{
+    //dprint("W_Nexball_Think\n");
+    //vector new_dir = steerlib_arrive(self.enemy.origin, 2500);
+    vector new_dir = normalize(self.enemy.origin - self.origin);
+    vector old_dir = normalize(self.velocity);     
+    float _speed = vlen(self.velocity);    
+    vector new_vel = normalize(old_dir + (new_dir * autocvar_g_nexball_safepass_turnrate)) * _speed;
+    //vector new_vel = (new_dir * autocvar_g_nexball_safepass_turnrate
+    
+    self.velocity = new_vel;
+    
+    self.nextthink = time;
+}
+
+void W_Nexball_Touch(void)
+{
+       entity ball, attacker;
+       attacker = self.owner;
+    //self.think = SUB_Null;
+    //self.enemy = world;
+    
+       PROJECTILE_TOUCH;
+       if(attacker.team != other.team || autocvar_g_nexball_basketball_teamsteal)
+               if((ball = other.ballcarried) && (attacker.classname == "player"))
+               {
+                       other.velocity = other.velocity + normalize(self.velocity) * other.damageforcescale * autocvar_g_balance_nexball_secondary_force;
+                       other.flags &~= FL_ONGROUND;
+                       if(!attacker.ballcarried)
+                       {
+                               LogNB("stole", attacker);
+                               sound(other, CH_TRIGGER, ball.noise2, VOL_BASE, ATTN_NORM);
+
+                               if(attacker.team == other.team && time > attacker.teamkill_complain)
+                               {
+                                       attacker.teamkill_complain = time + 5;
+                                       attacker.teamkill_soundtime = time + 0.4;
+                                       attacker.teamkill_soundsource = other;
+                               }
+
+                               GiveBall(attacker, other.ballcarried);
+                       }
+               }
+       remove(self);
+}
+
+void W_Nexball_Attack(float t)
+{
+       entity ball;
+       float mul, mi, ma;
+       if(!(ball = self.ballcarried))
+               return;
+
+       W_SetupShot(self, FALSE, 4, "nexball/shoot1.wav", CH_WEAPON_A, 0);
+       tracebox(w_shotorg, BALL_MINS, BALL_MAXS, w_shotorg, MOVE_WORLDONLY, world);
+       if(trace_startsolid)
+       {
+               if(self.metertime)
+                       self.metertime = 0; // Shot failed, hide the power meter
+               return;
+       }
+
+       //Calculate multiplier
+       if(t < 0)
+               mul = 1;
+       else
+       {
+               mi = autocvar_g_nexball_basketball_meter_minpower;
+               ma = max(mi, autocvar_g_nexball_basketball_meter_maxpower); // avoid confusion
+               //One triangle wave period with 1 as max
+               mul = 2 * mod(t, g_nexball_meter_period) / g_nexball_meter_period;
+               if(mul > 1)
+                       mul = 2 - mul;
+               mul = mi + (ma - mi) * mul; // range from the minimal power to the maximal power
+       }
+       
+    DropBall(ball, w_shotorg, W_CalculateProjectileVelocity(self.velocity, w_shotdir * autocvar_g_balance_nexball_primary_speed * mul, FALSE));
+       
+
+       //TODO: use the speed_up cvar too ??
+}
+
+void W_Nexball_Attack2(void)
+{
+       if(self.ballcarried.enemy)
+       {
+           entity _ball = self.ballcarried;
+        W_SetupShot(self, FALSE, 4, "nexball/shoot1.wav", CH_WEAPON_A, 0);
+           DropBall(_ball, w_shotorg, trigger_push_calculatevelocity(_ball.origin, _ball.enemy, 32));
+        _ball.think = W_Nexball_Think;
+        _ball.nextthink = time;
+           return;
+       }
+    
+    if(!autocvar_g_nexball_tackling)
+        return;
+       
+       entity missile;
+       if(!(balls & BALL_BASKET))
+               return;
+       W_SetupShot(self, FALSE, 2, "nexball/shoot2.wav", CH_WEAPON_A, 0);
+//     pointparticles(particleeffectnum("grenadelauncher_muzzleflash"), w_shotorg, w_shotdir * 1000, 1);
+       missile = spawn();
+
+       missile.owner = self;
+       missile.classname = "ballstealer";
+
+       missile.movetype = MOVETYPE_FLY;
+       PROJECTILE_MAKETRIGGER(missile);
+
+       setmodel(missile, "models/elaser.mdl");  // precision set below
+       setsize(missile, '0 0 0', '0 0 0');
+       setorigin(missile, w_shotorg);
+
+       W_SetupProjectileVelocity(missile, autocvar_g_balance_nexball_secondary_speed, 0);
+       missile.angles = vectoangles(missile.velocity);
+       missile.touch = W_Nexball_Touch;
+       missile.think = SUB_Remove;
+       missile.nextthink = time + autocvar_g_balance_nexball_secondary_lifetime; //FIXME: use a distance instead?
+
+       missile.effects = EF_BRIGHTFIELD | EF_LOWPRECISION;
+       missile.flags = FL_PROJECTILE;
+}
+
+var const float() nullfunc;
+float ball_customize()
+{
+    if(!self.owner)
+    {
+        self.effects &~= EF_FLAME;
+        self.scale = 1;
+        self.customizeentityforclient = nullfunc;
+        return TRUE;
+    }        
+    
+    if(other == self.owner)
+    {
+        self.scale = autocvar_g_nexball_viewmodel_scale;
+        if(self.enemy)
+            self.effects |= EF_FLAME;
+        else
+            self.effects &~= EF_FLAME;
+    }    
+    else
+    {
+        self.effects &~= EF_FLAME;
+        self.scale = 1;
+    }
+        
+    return TRUE;
+}
+
+float w_nexball_weapon(float req)
+{
+       if(req == WR_THINK)
+       {
+               if(self.BUTTON_ATCK)
+                       if(weapon_prepareattack(0, autocvar_g_balance_nexball_primary_refire))
+                               if(autocvar_g_nexball_basketball_meter)
+                               {
+                                       if(self.ballcarried && !self.metertime)
+                                               self.metertime = time;
+                                       else
+                                               weapon_thinkf(WFRAME_FIRE1, autocvar_g_balance_nexball_primary_animtime, w_ready);
+                               }
+                               else
+                               {
+                                       W_Nexball_Attack(-1);
+                                       weapon_thinkf(WFRAME_FIRE1, autocvar_g_balance_nexball_primary_animtime, w_ready);
+                               }
+               if(self.BUTTON_ATCK2)
+                       if(weapon_prepareattack(1, autocvar_g_balance_nexball_secondary_refire))
+                       {
+                               W_Nexball_Attack2();
+                               weapon_thinkf(WFRAME_FIRE2, autocvar_g_balance_nexball_secondary_animtime, w_ready);
+                       }
+
+               if(!self.BUTTON_ATCK && self.metertime && self.ballcarried)
+               {
+                       W_Nexball_Attack(time - self.metertime);
+                       // DropBall or stealing will set metertime back to 0
+                       weapon_thinkf(WFRAME_FIRE1, autocvar_g_balance_nexball_primary_animtime, w_ready);
+               }
+       }
+       else if(req == WR_PRECACHE)
+       {
+               precache_model("models/weapons/g_porto.md3");
+               precache_model("models/weapons/v_porto.md3");
+               precache_model("models/weapons/h_porto.iqm");
+               precache_model("models/elaser.mdl");
+               precache_sound("nexball/shoot1.wav");
+               precache_sound("nexball/shoot2.wav");
+               precache_sound("misc/typehit.wav");
+       }
+       else if(req == WR_SETUP)
+               weapon_setup(WEP_PORTO);
+       else if(req == WR_SUICIDEMESSAGE)
+       {
+               w_deathtypestring = "is a weirdo";
+       }
+       else if(req == WR_KILLMESSAGE)
+       {
+               w_deathtypestring = "got killed by #'s black magic";
+       }
+       // No need to check WR_CHECKAMMO* or WR_AIM, it should always return TRUE
+       return TRUE;
+}
+
+MUTATOR_HOOKFUNCTION(nexball_BallDrop)
+{
+       if(self.ballcarried && g_nexball)
+               DropBall(self.ballcarried, self.origin, self.velocity);
+
+       return 0;
+}
+
+MUTATOR_HOOKFUNCTION(nexball_BuildMutatorsString)
+{
+       ret_string = strcat(ret_string, ":NB");
+       return 0;
+}
+
+MUTATOR_HOOKFUNCTION(nexball_BuildMutatorsPrettyString)
+{
+       ret_string = strcat(ret_string, ", NexBall");
+       return 0;
+}
+
+MUTATOR_HOOKFUNCTION(nexball_PlayerPreThink)
+{
+    makevectors(self.v_angle);
+    if(nexball_mode & NBM_BASKETBALL)
+    {        
+        if(self.ballcarried)
+        {
+            // 'view ball'
+            self.ballcarried.velocity = self.velocity;            
+            self.ballcarried.customizeentityforclient = ball_customize;
+            
+            setorigin(self.ballcarried, self.origin + self.view_ofs + 
+                      v_forward * autocvar_g_nexball_viewmodel_offset_x + 
+                      v_right * autocvar_g_nexball_viewmodel_offset_y + 
+                      v_up * autocvar_g_nexball_viewmodel_offset_z);    
+                      
+            // 'safe passing'
+            if(autocvar_g_nexball_safepass_maxdist)
+            {
+                if(self.ballcarried.wait < time && self.ballcarried.enemy)
+                {
+                    //centerprint(self, sprintf("Lost lock on %s", self.ballcarried.enemy.netname));
+                    self.ballcarried.enemy = world;
+                }
+                    
+                
+                //tracebox(self.origin + self.view_ofs, '-2 -2 -2', '2 2 2', self.origin + self.view_ofs + v_forward * autocvar_g_nexball_safepass_maxdist);
+                crosshair_trace(self);
+                if( trace_ent && 
+                    trace_ent.flags & FL_CLIENT &&
+                    trace_ent.deadflag == DEAD_NO &&
+                    trace_ent.team == self.team &&
+                    vlen(trace_ent.origin - self.origin) <= autocvar_g_nexball_safepass_maxdist )
+                {
+                    
+                    //if(self.ballcarried.enemy != trace_ent)
+                    //    centerprint(self, sprintf("Locked to %s", trace_ent.netname));
+                    self.ballcarried.enemy = trace_ent;
+                    self.ballcarried.wait = time + autocvar_g_nexball_safepass_holdtime;
+                    
+                    
+                }
+            }
+        }
+        else
+        {            
+            if(!WEPSET_EMPTY_E(self.weaponentity))
+            {
+                WEPSET_COPY_EE(self, self.weaponentity);
+                weapon_action(WEP_PORTO, WR_RESETPLAYER);
+                self.switchweapon = self.weaponentity.switchweapon;
+                W_SwitchWeapon(self.switchweapon);
+                
+               WEPSET_CLEAR_E(self.weaponentity);
+            }
+        }
+        
+    }
+    return FALSE;
+}
+
+MUTATOR_HOOKFUNCTION(nexball_PlayerSpawn)
+{    
+    WEPSET_CLEAR_E(self.weaponentity);
+    
+    if(nexball_mode & NBM_BASKETBALL)
+        WEPSET_OR_EW(self, WEP_PORTO);
+    else
+        WEPSET_CLEAR_E(self);
+
+    return FALSE;
+}
+
+MUTATOR_DEFINITION(gamemode_nexball)
+{
+       MUTATOR_HOOK(PlayerDies, nexball_BallDrop, CBC_ORDER_ANY);
+       MUTATOR_HOOK(MakePlayerObserver, nexball_BallDrop, CBC_ORDER_ANY);
+       MUTATOR_HOOK(ClientDisconnect, nexball_BallDrop, CBC_ORDER_ANY);
+       MUTATOR_HOOK(BuildMutatorsPrettyString, nexball_BuildMutatorsPrettyString, CBC_ORDER_ANY);
+       MUTATOR_HOOK(BuildMutatorsString, nexball_BuildMutatorsString, CBC_ORDER_ANY);
+       MUTATOR_HOOK(PlayerSpawn, nexball_PlayerSpawn, CBC_ORDER_ANY);
+       MUTATOR_HOOK(PlayerPreThink, nexball_PlayerPreThink, CBC_ORDER_ANY);
+
+       MUTATOR_ONADD
+       {
+               g_nexball_meter_period = autocvar_g_nexball_meter_period;
+               if(g_nexball_meter_period <= 0)
+                       g_nexball_meter_period = 2; // avoid division by zero etc. due to silly users
+               g_nexball_meter_period = rint(g_nexball_meter_period * 32) / 32; //Round to 1/32ths to send as a byte multiplied by 32
+               addstat(STAT_NB_METERSTART, AS_FLOAT, metertime);
+
+               // General settings
+               /*
+               CVTOV(g_nexball_football_boost_forward);   //100
+               CVTOV(g_nexball_football_boost_up);        //200
+               CVTOV(g_nexball_delay_idle);               //10
+               CVTOV(g_nexball_football_physics);         //0
+               */
+               radar_showennemies = autocvar_g_nexball_radar_showallplayers;
+
+               InitializeEntity(world, nb_delayedinit, INITPRIO_GAMETYPE);
+       }
+
+       return 0;
+}
diff --git a/qcsrc/server/mutators/gamemode_nexball.qh b/qcsrc/server/mutators/gamemode_nexball.qh
new file mode 100644 (file)
index 0000000..545ec96
--- /dev/null
@@ -0,0 +1,30 @@
+//EF_BRIGHTFIELD|EF_BRIGHTLIGHT|EF_DIMLIGHT|EF_BLUE|EF_RED|EF_FLAME
+#define BALL_EFFECTMASK 1229
+#define BALL_MINS '-16 -16 -16'  // The model is 24*24*24
+#define BALL_MAXS '16 16 16'
+#define BALL_ATTACHORG '3 0 16'
+#define BALL_SPRITECOLOR '.91 .85 .62'
+#define BALL_FOOT   1
+#define BALL_BASKET 2
+//spawnflags
+#define GOAL_TOUCHPLAYER 1
+//goal types
+#define GOAL_FAULT -1
+#define GOAL_OUT -2
+
+void DropBall(entity ball, vector org, vector vel);
+float autocvar_g_nexball_football_boost_forward;
+float autocvar_g_nexball_football_boost_up;
+float autocvar_g_nexball_football_physics;
+float autocvar_g_nexball_delay_idle;
+float autocvar_g_nexball_basketball_delay_hold;
+float autocvar_g_nexball_basketball_delay_hold_forteam;
+float autocvar_g_nexball_basketball_effects_default;
+float autocvar_g_nexball_basketball_teamsteal;
+float autocvar_g_nexball_meter_period;
+
+float balls;
+float ball_scale;
+float nb_teams;
+
+.float teamtime;
\ No newline at end of file
index 3b193c163c9d61ea0cce471f7df999bdd0139323..bdd39b1283f487fe0e74ab42135b6d66f4b180c7 100644 (file)
@@ -55,6 +55,9 @@ MUTATOR_HOOKFUNCTION(dodging_PlayerPhysics) {
        float velocity_difference;
        float clean_up_and_do_nothing;
 
+    if (self.deadflag != DEAD_NO)
+        return 0;
+
        new_velocity_gain = 0;
        clean_up_and_do_nothing = 0;
 
@@ -241,8 +244,6 @@ MUTATOR_HOOKFUNCTION(dodging_GetPressedKeys) {
                }
        }
 
-
-
        if (dodge_detected == 1) {
                self.last_dodging_time = time;
 
@@ -255,7 +256,7 @@ MUTATOR_HOOKFUNCTION(dodging_GetPressedKeys) {
                self.dodging_direction_y = tap_direction_y;
 
                // normalize the dodging_direction vector.. (unlike UT99) XD
-               length = length + self.dodging_direction_x * self.dodging_direction_x;
+               length =          self.dodging_direction_x * self.dodging_direction_x;
                length = length + self.dodging_direction_y * self.dodging_direction_y;
                length = sqrt(length);
 
diff --git a/qcsrc/server/mutators/mutator_new_toys.qc b/qcsrc/server/mutators/mutator_new_toys.qc
new file mode 100644 (file)
index 0000000..cc4f943
--- /dev/null
@@ -0,0 +1,217 @@
+/*
+
+CORE    laser   nex     lg      rl      cry     gl      elec    hagar   fireb   hook
+                                                                       minsta  porto
+                                                                       tuba
+
+NEW             rifle   hlac    minel                           seeker   
+IDEAS                                   OPEN    flak    OPEN            FUN FUN FUN FUN
+
+
+
+How this mutator works:
+ =======================
+
+When a gun tries to spawn, this mutator is called. It will provide alternate
+weaponreplace lists.
+
+Entity:
+
+{
+"classname" "weapon_nex"
+"new_toys" "rifle"
+}
+-> This will spawn as Rifle in this mutator ONLY, and as Nex otherwise.
+
+{
+"classname" "weapon_nex"
+"new_toys" "nex rifle"
+}
+-> This will spawn as either Nex or Rifle in this mutator ONLY, and as Nex otherwise.
+
+{
+"classname" "weapon_nex"
+"new_toys" "nex"
+}
+-> This is always a Nex.
+
+If the map specifies no "new_toys" argument
+
+There will be two default replacements selectable: "replace all" and "replace random".
+In "replace all" mode, e.g. Nex will have the default replacement "rifle".
+In "replace random" mode, Nex will have the default replacement "nex rifle".
+
+This mutator's replacements run BEFORE regular weaponreplace!
+
+The New Toys guns do NOT get a spawn function, so they can only ever be spawned
+when this mutator is active.
+
+Likewise, warmup, give all, give ALL and impulse 99 will not give them unless
+this mutator is active.
+
+Outside this mutator, they still can be spawned by:
+- setting their start weapon cvar to 1
+- give weaponname
+- weaponreplace
+- weaponarena (but all and most weapons arena again won't include them)
+
+This mutator performs the default replacements on the DEFAULTS of the
+start weapon selection.
+
+These weapons appear in the menu's priority list, BUT get a suffix
+"(Mutator weapon)".
+
+Picking up a "new toys" weapon will not play standard weapon pickup sound, but
+roflsound "New toys, new toys!" sound.
+
+*/
+
+.string new_toys;
+
+float autocvar_g_new_toys_autoreplace;
+#define NT_AUTOREPLACE_NEVER 0
+#define NT_AUTOREPLACE_ALWAYS 1
+#define NT_AUTOREPLACE_RANDOM 2
+
+MUTATOR_HOOKFUNCTION(nt_SetModname)
+{
+       modname = "NewToys";
+       return 0;
+}
+
+float nt_IsNewToy(float w)
+{
+       switch(w)
+       {
+               case WEP_SEEKER:
+               case WEP_MINE_LAYER:
+               case WEP_HLAC:
+               case WEP_RIFLE:
+                       return TRUE;
+               default:
+                       return FALSE;
+       }
+}
+
+string nt_GetFullReplacement(string w)
+{
+       switch(w)
+       {
+               case "hagar": return "seeker";
+               case "rocketlauncher": return "minelayer";
+               case "uzi": return "hlac";
+               case "nex": return "rifle";
+               default: return string_null;
+       }
+}
+
+string nt_GetReplacement(string w, float m)
+{
+       if(m == NT_AUTOREPLACE_NEVER)
+               return w;
+       string s = nt_GetFullReplacement(w);
+       if not(s)
+               return w;
+       if(m == NT_AUTOREPLACE_RANDOM)
+               s = strcat(w, " ", s);
+       return s;
+}
+
+MUTATOR_HOOKFUNCTION(nt_SetStartItems)
+{
+       // rearrange start_weapon_default
+       // apply those bits that are set by start_weapon_defaultmask
+       // same for warmup
+
+       float i, j, k, n;
+
+       WEPSET_DECLARE_A(newdefault);
+       WEPSET_DECLARE_A(warmup_newdefault);
+       
+       WEPSET_CLEAR_A(newdefault);
+       WEPSET_CLEAR_A(warmup_newdefault);
+
+       for(i = WEP_FIRST; i <= WEP_LAST; ++i)
+       {
+               entity e = get_weaponinfo(i);
+               if(!e.weapon)
+                       continue;
+
+               n = tokenize_console(nt_GetReplacement(e.netname, autocvar_g_new_toys_autoreplace));
+
+               for(j = 0; j < n; ++j)
+                       for(k = WEP_FIRST; k <= WEP_LAST; ++k)
+                               if(get_weaponinfo(k).netname == argv(j))
+                               {
+                                       if(WEPSET_CONTAINS_AW(start_weapons, i))
+                                               WEPSET_OR_AW(newdefault, k);
+                                       if(WEPSET_CONTAINS_AW(warmup_start_weapons, i))
+                                               WEPSET_OR_AW(warmup_newdefault, k);
+                               }
+       }
+
+       WEPSET_AND_AA(newdefault, start_weapons_defaultmask);
+       WEPSET_ANDNOT_AA(start_weapons, start_weapons_defaultmask);
+       WEPSET_OR_AA(start_weapons, newdefault);
+
+       WEPSET_AND_AA(warmup_newdefault, warmup_start_weapons_defaultmask);
+       WEPSET_ANDNOT_AA(warmup_start_weapons, warmup_start_weapons_defaultmask);
+       WEPSET_OR_AA(warmup_start_weapons, warmup_newdefault);
+
+       return 0;
+}
+
+MUTATOR_HOOKFUNCTION(nt_SetWeaponreplace)
+{
+       // otherwise, we do replace
+       if(self.new_toys)
+       {
+               // map defined replacement:
+               ret_string = self.new_toys;
+       }
+       else
+       {
+               // auto replacement:
+               ret_string = nt_GetReplacement(other.netname, autocvar_g_new_toys_autoreplace);
+       }
+
+       // apply regular weaponreplace
+       ret_string = W_Apply_Weaponreplace(ret_string);
+
+       return 0;
+}
+
+MUTATOR_HOOKFUNCTION(nt_FilterItem)
+{
+       if(nt_IsNewToy(self.weapon))
+               self.item_pickupsound = "weapons/weaponpickup_new_toys.ogg";
+       return 0;
+}
+
+MUTATOR_DEFINITION(mutator_new_toys)
+{
+       MUTATOR_HOOK(SetModname, nt_SetModname, CBC_ORDER_ANY);
+       MUTATOR_HOOK(SetStartItems, nt_SetStartItems, CBC_ORDER_ANY);
+       MUTATOR_HOOK(SetWeaponreplace, nt_SetWeaponreplace, CBC_ORDER_LAST);
+       MUTATOR_HOOK(FilterItem, nt_FilterItem, CBC_ORDER_ANY);
+
+       MUTATOR_ONADD
+       {
+               if(time > 1) // game loads at time 1
+                       error("This cannot be added at runtime\n");
+
+               precache_sound("weapons/weaponpickup_new_toys.ogg");
+
+               // mark the guns as ok to use by e.g. impulse 99
+               float i;
+               for(i = WEP_FIRST; i <= WEP_LAST; ++i)
+                       if(nt_IsNewToy(i))
+                               get_weaponinfo(i).spawnflags &~= WEP_FLAG_MUTATORBLOCKED;
+       }
+       MUTATOR_ONREMOVE
+       {
+               error("This cannot be removed at runtime\n");
+       }
+
+       return 0;
+}
index 28bb8446902b29249d375d94e953886da444961c..dad19e4a3748f468c93db674b6b2e9c7e7e43a2c 100644 (file)
@@ -9,28 +9,23 @@ float nix_nextweapon_ammo;
 .float nix_lastinfotime;
 .float nix_nextincr;
 
-.float nix_save_cells;
-.float nix_save_shells;
-.float nix_save_nails;
-.float nix_save_rockets;
-.float nix_save_fuel;
-.float nix_save_weapons;
-
 float NIX_CanChooseWeapon(float wpn)
 {
        entity e;
        e = get_weaponinfo(wpn);
-       if(!e.weapons) // skip dummies
+       if(!e.weapon) // skip dummies
                return FALSE;
        if(g_weaponarena)
        {
-               if not(g_weaponarena & e.weapons)
+               if not(WEPSET_CONTAINS_AW(g_weaponarena_weapons, wpn))
                        return FALSE;
        }
        else
        {
                if(wpn == WEP_LASER && g_nix_with_laser)
                        return FALSE;
+               if(e.spawnflags & WEP_FLAG_MUTATORBLOCKED)
+                       return FALSE;
                if not(e.spawnflags & WEP_FLAG_NORMAL)
                        return FALSE;
        }
@@ -141,10 +136,10 @@ void NIX_GiveCurrentWeapon()
                self.nix_nextincr = time + autocvar_g_balance_nix_incrtime;
        }
 
-       self.weapons = 0;
+       WEPSET_CLEAR_E(self);
        if(g_nix_with_laser)
-               self.weapons = self.weapons | WEPBIT_LASER;
-       self.weapons = self.weapons | W_WeaponBit(nix_weapon);
+               WEPSET_ANDNOT_EW(self, WEP_LASER);
+       WEPSET_OR_EW(self, nix_weapon);
 
        if(self.switchweapon != nix_weapon)
                if(!client_hasweapon(self, self.switchweapon, TRUE, FALSE))
@@ -165,15 +160,6 @@ MUTATOR_HOOKFUNCTION(nix_ForbidThrowCurrentWeapon)
        return 1; // no throwing in NIX
 }
 
-MUTATOR_HOOKFUNCTION(nix_SetStartItems)
-{
-       NIX_precache();
-       // we do NOT change the start weapons any more, so we can later turn off the mutator!
-       //   start_weapons = 0; // will be done later, when player spawns
-       //   warmup_start_weapons = 0; // will be done later, when player spawns
-       return 0;
-}
-
 MUTATOR_HOOKFUNCTION(nix_BuildMutatorsString)
 {
        ret_string = strcat(ret_string, ":NIX");
@@ -232,18 +218,24 @@ MUTATOR_HOOKFUNCTION(nix_PlayerSpawn)
        return 0;
 }
 
+MUTATOR_HOOKFUNCTION(nix_SetModname)
+{
+       modname = "NIX";
+       return 0;
+}
+
 MUTATOR_DEFINITION(mutator_nix)
 {
        entity e;
 
        MUTATOR_HOOK(ForbidThrowCurrentWeapon, nix_ForbidThrowCurrentWeapon, CBC_ORDER_ANY);
-       MUTATOR_HOOK(SetStartItems, nix_SetStartItems, CBC_ORDER_EXCLUSIVE);
        MUTATOR_HOOK(BuildMutatorsString, nix_BuildMutatorsString, CBC_ORDER_ANY);
        MUTATOR_HOOK(BuildMutatorsPrettyString, nix_BuildMutatorsPrettyString, CBC_ORDER_ANY);
        MUTATOR_HOOK(FilterItem, nix_FilterItem, CBC_ORDER_ANY);
        MUTATOR_HOOK(OnEntityPreSpawn, nix_OnEntityPreSpawn, CBC_ORDER_ANY);
        MUTATOR_HOOK(PlayerPreThink, nix_PlayerPreThink, CBC_ORDER_ANY);
        MUTATOR_HOOK(PlayerSpawn, nix_PlayerSpawn, CBC_ORDER_ANY);
+       MUTATOR_HOOK(SetModname, nix_SetModname, CBC_ORDER_LAST);
 
        MUTATOR_ONADD
        {
@@ -253,28 +245,6 @@ MUTATOR_DEFINITION(mutator_nix)
                nix_nextweapon = 0;
 
                NIX_precache();
-
-               FOR_EACH_PLAYER(e)
-               {
-                       if(e.deadflag == DEAD_NO)
-                       {
-                               e.nix_save_cells = e.ammo_cells;
-                               e.nix_save_shells = e.ammo_shells;
-                               e.nix_save_nails = e.ammo_nails;
-                               e.nix_save_rockets = e.ammo_rockets;
-                               e.nix_save_fuel = e.ammo_fuel;
-                               e.nix_save_weapons = e.weapons;
-                       }
-                       else
-                       {
-                               e.nix_save_cells = 0;
-                               e.nix_save_shells = 0;
-                               e.nix_save_nails = 0;
-                               e.nix_save_rockets = 0;
-                               e.nix_save_fuel = 0;
-                               e.nix_save_weapons = 0;
-                       }
-               }
        }
 
        MUTATOR_ONREMOVE
@@ -283,12 +253,12 @@ MUTATOR_DEFINITION(mutator_nix)
 
                FOR_EACH_PLAYER(e) if(e.deadflag == DEAD_NO)
                {
-                       e.ammo_cells = max(start_ammo_cells, e.nix_save_cells);
-                       e.ammo_shells = max(start_ammo_shells, e.nix_save_shells);
-                       e.ammo_nails = max(start_ammo_nails, e.nix_save_nails);
-                       e.ammo_rockets = max(start_ammo_rockets, e.nix_save_rockets);
-                       e.ammo_fuel = max(start_ammo_fuel, e.nix_save_fuel);
-                       e.weapons = (start_weapons | e.nix_save_weapons);
+                       e.ammo_cells = start_ammo_cells;
+                       e.ammo_shells = start_ammo_shells;
+                       e.ammo_nails = start_ammo_nails;
+                       e.ammo_rockets = start_ammo_rockets;
+                       e.ammo_fuel = start_ammo_fuel;
+                       WEPSET_COPY_EA(e, start_weapons);
                        if(!client_hasweapon(e, e.weapon, TRUE, FALSE))
                                e.switchweapon = w_getbestweapon(self);
                }
index 825062e1cdcd50bdd0429502921eec76c4377a59..4e7d9a6512bd47b8806d2f791fa5fc04cd9ab035 100644 (file)
@@ -1,13 +1,14 @@
 MUTATOR_DECLARATION(gamemode_keyhunt);
 MUTATOR_DECLARATION(gamemode_freezetag);
 MUTATOR_DECLARATION(gamemode_keepaway);
+MUTATOR_DECLARATION(gamemode_nexball);
 
+MUTATOR_DECLARATION(mutator_dodging);
 MUTATOR_DECLARATION(mutator_invincibleprojectiles);
+MUTATOR_DECLARATION(mutator_new_toys);
 MUTATOR_DECLARATION(mutator_nix);
-MUTATOR_DECLARATION(mutator_dodging);
 MUTATOR_DECLARATION(mutator_rocketflying);
-MUTATOR_DECLARATION(mutator_vampire);
-MUTATOR_DECLARATION(mutator_spawn_near_teammate);
 MUTATOR_DECLARATION(mutator_spawn_near_teammate);
+MUTATOR_DECLARATION(mutator_vampire);
 
 MUTATOR_DECLARATION(sandbox);
index e7f51aa887f7931445f0006452db6110a7e8928f..d7fec13264e5cc70bdfa10e02a21570d0b1d7c50 100644 (file)
@@ -205,7 +205,7 @@ string port_string[MAX_STORAGE_ATTACHMENTS]; // fteqcc crashes if this isn't def
 string sandbox_ObjectPort_Save(entity e, float database)
 {
        // save object properties, and return them as a string
-       float i;
+       float i = 0;
        string s;
        entity head;
 
@@ -268,6 +268,7 @@ string sandbox_ObjectPort_Save(entity e, float database)
        }
 
        // now apply the array to a simple string, with the ; symbol separating objects
+       s = "";
        for(i = 0; i <= MAX_STORAGE_ATTACHMENTS; ++i)
        {
                if(port_string[i])
@@ -744,13 +745,16 @@ MUTATOR_HOOKFUNCTION(sandbox_PlayerCommand)
                                                        print_to(self, strcat("^2SANDBOX - INFO: ^7Object is owned by \"^7", e.netname, "^7\", created \"^3", e.message, "^7\", last edited \"^3", e.message2, "^7\""));
                                                        return TRUE;
                                                case "mesh":
+                                                       s = "";
                                                        FOR_EACH_TAG(e)
                                                                s = strcat(s, "^7\"^5", gettaginfo_name, "^7\", ");
                                                        print_to(self, strcat("^2SANDBOX - INFO: ^7Object mesh is \"^3", e.model, "^7\" at animation frame ^3", ftos(e.frame), " ^7containing the following tags: ", s));
                                                        return TRUE;
                                                case "attachments":
                                                        // this should show the same info as 'mesh' but for attachments
+                                                       s = "";
                                                        entity head;
+                                                       i = 0;
                                                        for(head = world; (head = find(head, classname, "object")); )
                                                        {
                                                                if(head.owner == e)
@@ -794,10 +798,17 @@ MUTATOR_HOOKFUNCTION(sandbox_StartFrame)
        return TRUE;
 }
 
+MUTATOR_HOOKFUNCTION(sandbox_SetModname)
+{
+       modname = "Sandbox";
+       return TRUE;
+}
+
 MUTATOR_DEFINITION(sandbox)
 {
        MUTATOR_HOOK(SV_ParseClientCommand, sandbox_PlayerCommand, CBC_ORDER_ANY);
        MUTATOR_HOOK(SV_StartFrame, sandbox_StartFrame, CBC_ORDER_ANY);
+       MUTATOR_HOOK(SetModname, sandbox_SetModname, CBC_ORDER_ANY);
 
        MUTATOR_ONADD
        {
diff --git a/qcsrc/server/nexball.qc b/qcsrc/server/nexball.qc
deleted file mode 100644 (file)
index a068a33..0000000
+++ /dev/null
@@ -1,738 +0,0 @@
-//EF_BRIGHTFIELD|EF_BRIGHTLIGHT|EF_DIMLIGHT|EF_BLUE|EF_RED|EF_FLAME
-#define BALL_EFFECTMASK 1229
-#define BALL_MINS '-16 -16 -16'  // The model is 24*24*24
-#define BALL_MAXS '16 16 16'
-#define BALL_ATTACHORG '3 0 16'
-#define BALL_SPRITECOLOR '.91 .85 .62'
-#define BALL_FOOT   1
-#define BALL_BASKET 2
-//spawnflags
-#define GOAL_TOUCHPLAYER 1
-//goal types
-#define GOAL_FAULT -1
-#define GOAL_OUT -2
-
-#define CVTOV(s) s = cvar( #s )
-
-float g_nexball_football_boost_forward;
-float g_nexball_football_boost_up;
-float g_nexball_football_physics;
-float g_nexball_delay_idle;
-float g_nexball_basketball_delay_hold;
-float g_nexball_basketball_delay_hold_forteam;
-float g_nexball_basketball_effects_default;
-float g_nexball_basketball_teamsteal;
-float balls;
-float ball_scale;
-float nb_teams;
-
-.float teamtime;
-
-void nb_delayedinit();
-void nb_init() // Called early (worldspawn stage)
-{
-       CVTOV(g_nexball_meter_period); //sent with the client init entity
-       if (g_nexball_meter_period <= 0)
-               g_nexball_meter_period = 2; // avoid division by zero etc. due to silly users
-       g_nexball_meter_period = rint(g_nexball_meter_period * 32) / 32; //Round to 1/32ths to send as a byte multiplied by 32
-       addstat(STAT_NB_METERSTART, AS_FLOAT, metertime);
-
-       // General settings
-       CVTOV(g_nexball_football_boost_forward);   //100
-       CVTOV(g_nexball_football_boost_up);        //200
-       CVTOV(g_nexball_delay_idle);               //10
-       CVTOV(g_nexball_football_physics);         //0
-
-       radar_showennemies = autocvar_g_nexball_radar_showallplayers;
-
-       InitializeEntity(world, nb_delayedinit, INITPRIO_GAMETYPE);
-}
-
-float OtherTeam(float t)  //works only if there are two teams on the map!
-{
-       entity e;
-       e = find(world, classname, "nexball_team");
-       if (e.team == t)
-               e = find(e, classname, "nexball_team");
-       return e.team;
-}
-
-void ResetBall();
-
-void LogNB(string mode, entity actor)
-{
-       string s;
-       if(!autocvar_sv_eventlog)
-               return;
-       s = strcat(":nexball:", mode);
-       if(actor != world)
-               s = strcat(s, ":", ftos(actor.playerid));
-       GameLogEcho(s);
-}
-
-void ball_restart (void)
-{
-       if(self.owner)
-               DropBall(self, self.owner.origin, '0 0 0');
-       ResetBall();
-}
-
-void nexball_setstatus (void)
-{
-       entity oldself;
-       self.items &~= IT_KEY1;
-       if (self.ballcarried)
-       {
-               if (self.ballcarried.teamtime && (self.ballcarried.teamtime < time))
-               {
-                       bprint("The ", ColoredTeamName(self.team), " held the ball for too long.\n");
-                       oldself = self;
-                       self = self.ballcarried;
-                       DropBall(self, self.owner.origin, '0 0 0');
-                       ResetBall();
-                       self = oldself;
-               } else
-                       self.items |= IT_KEY1;
-       }
-}
-
-void relocate_nexball (void)
-{
-       tracebox(self.origin, BALL_MINS, BALL_MAXS, self.origin, TRUE, self);
-       if (trace_startsolid)
-       {
-               vector o;
-               o = self.origin;
-               if(!move_out_of_solid(self))
-                       objerror("could not get out of solid at all!");
-               print("^1NOTE: this map needs FIXING. ", self.classname, " at ", vtos(o - '0 0 1'));
-               print(" needs to be moved out of solid, e.g. by '", ftos(self.origin_x - o_x));
-               print(" ", ftos(self.origin_y - o_y));
-               print(" ", ftos(self.origin_z - o_z), "'\n");
-               self.origin = o;
-       }
-}
-
-void basketball_touch();
-void football_touch();
-
-void DropOwner (void)
-{
-       entity ownr;
-       ownr = self.owner;
-       DropBall(self, ownr.origin, ownr.velocity);
-       makevectors(ownr.v_angle_y * '0 1 0');
-       ownr.velocity += ('0 0 0.75' - v_forward) * 1000;
-       ownr.flags &~= FL_ONGROUND;
-}
-
-void GiveBall (entity plyr, entity ball)
-{
-       entity ownr;
-
-       if ((ownr = ball.owner))
-       {
-               ownr.effects &~= g_nexball_basketball_effects_default;
-               ownr.ballcarried = world;
-               if (ownr.metertime)
-               {
-                       ownr.metertime = 0;
-                       ownr.weaponentity.state = WS_READY;
-               }
-               WaypointSprite_Kill(ownr.waypointsprite_attachedforcarrier);
-       }
-       else
-       {
-               WaypointSprite_Kill(ball.waypointsprite_attachedforcarrier);
-       }
-
-       setattachment(ball, plyr, "");
-       setorigin(ball, BALL_ATTACHORG);
-
-       if (ball.team != plyr.team)
-               ball.teamtime = time + g_nexball_basketball_delay_hold_forteam;
-
-       ball.owner = ball.pusher = plyr; //"owner" is set to the player carrying, "pusher" to the last player who touched it
-       ball.team = plyr.team;
-       plyr.ballcarried = ball;
-       ball.dropperid = plyr.playerid;
-
-       plyr.effects |= g_nexball_basketball_effects_default;
-       ball.effects &~= g_nexball_basketball_effects_default;
-
-       ball.velocity = '0 0 0';
-       ball.movetype = MOVETYPE_NONE;
-       ball.touch = SUB_Null;
-       ball.effects |= EF_NOSHADOW;
-       ball.scale = 1; // scale down.
-
-       WaypointSprite_AttachCarrier("nb-ball", plyr, RADARICON_FLAGCARRIER, BALL_SPRITECOLOR);
-       WaypointSprite_UpdateRule(plyr.waypointsprite_attachedforcarrier, 0, SPRITERULE_DEFAULT);
-
-       if (g_nexball_basketball_delay_hold)
-       {
-               ball.think = DropOwner;
-               ball.nextthink = time + g_nexball_basketball_delay_hold;
-       }
-}
-
-void DropBall (entity ball, vector org, vector vel)
-{
-       ball.effects |= g_nexball_basketball_effects_default;
-       ball.effects &~= EF_NOSHADOW;
-       ball.owner.effects &~= g_nexball_basketball_effects_default;
-
-       setattachment(ball, world, "");
-       setorigin (ball, org);
-       ball.movetype = MOVETYPE_BOUNCE;
-       ball.flags &~= FL_ONGROUND;
-       ball.scale = ball_scale;
-       ball.velocity = vel;
-       ball.ctf_droptime = time;
-       ball.touch = basketball_touch;
-       ball.think = ResetBall;
-       ball.nextthink = min(time + g_nexball_delay_idle, ball.teamtime);
-
-       if (ball.owner.metertime)
-       {
-               ball.owner.metertime = 0;
-               ball.owner.weaponentity.state = WS_READY;
-       }
-
-       WaypointSprite_Kill(ball.owner.waypointsprite_attachedforcarrier);
-       WaypointSprite_Spawn("nb-ball", 0, 0, ball, '0 0 64', world, ball.team, ball, waypointsprite_attachedforcarrier, FALSE, RADARICON_FLAGCARRIER, BALL_SPRITECOLOR); // no health bar please
-       WaypointSprite_UpdateRule(ball.waypointsprite_attachedforcarrier, 0, SPRITERULE_DEFAULT);
-
-       ball.owner.ballcarried = world;
-       ball.owner = world;
-}
-
-void InitBall (void)
-{
-       if (gameover) return;
-       self.flags &~= FL_ONGROUND;
-       self.movetype = MOVETYPE_BOUNCE;
-       if (self.classname == "nexball_basketball")
-               self.touch = basketball_touch;
-       else if (self.classname == "nexball_football")
-               self.touch = football_touch;
-       self.cnt = 0;
-       self.think = ResetBall;
-       self.nextthink = time + g_nexball_delay_idle + 3;
-       self.teamtime = 0;
-       self.pusher = world;
-       self.team = FALSE;
-       sound (self, CH_TRIGGER, self.noise1, VOL_BASE, ATTN_NORM);
-       WaypointSprite_Ping(self.waypointsprite_attachedforcarrier);
-       LogNB("init", world);
-}
-
-void ResetBall (void)
-{
-       if (self.cnt < 2) { // step 1
-               if (time == self.teamtime)
-                       bprint("The ", ColoredTeamName(self.team), " held the ball for too long.\n");
-               self.touch = SUB_Null;
-               self.movetype = MOVETYPE_NOCLIP;
-               self.velocity = '0 0 0'; // just in case?
-               if(!self.cnt)
-                       LogNB("resetidle", world);
-               self.cnt = 2;
-               self.nextthink = time;
-       } else if (self.cnt < 4) { // step 2 and 3
-//             dprint("Step ", ftos(self.cnt), ": Calculated velocity: ", vtos(self.spawnorigin - self.origin), ", time: ", ftos(time), "\n");
-               self.velocity = (self.spawnorigin - self.origin) * (self.cnt - 1); // 1 or 0.5 second movement
-               self.nextthink = time + 0.5;
-               self.cnt += 1;
-       } else { // step 4
-//             dprint("Step 4: time: ", ftos(time), "\n");
-               if (vlen(self.origin - self.spawnorigin) > 10) // should not happen anymore
-                       dprint("The ball moved too far away from its spawn origin.\nOffset: ",
-                              vtos(self.origin - self.spawnorigin), " Velocity: ", vtos(self.velocity), "\n");
-               self.velocity = '0 0 0';
-               setorigin(self, self.spawnorigin); // make sure it's positioned correctly anyway
-               self.movetype = MOVETYPE_NONE;
-               self.think = InitBall;
-               self.nextthink = max(time, game_starttime) + autocvar_g_nexball_delay_start;
-       }
-}
-
-void football_touch (void)
-{
-       if (other.solid == SOLID_BSP) {
-               if (time > self.lastground + 0.1)
-               {
-                       sound (self, CH_TRIGGER, self.noise, VOL_BASE, ATTN_NORM);
-                       self.lastground = time;
-               }
-               if (vlen(self.velocity) && !self.cnt)
-                       self.nextthink = time + g_nexball_delay_idle;
-               return;
-       }
-       if (other.classname != "player")
-               return;
-       if (other.health < 1)
-               return;
-       if (!self.cnt)
-               self.nextthink = time + g_nexball_delay_idle;
-
-       self.pusher = other;
-       self.team = other.team;
-
-       if (g_nexball_football_physics == -1) { // MrBougo try 1, before decompiling Rev's original
-               if (vlen(other.velocity))
-                       self.velocity = other.velocity * 1.5 + '0 0 1' * g_nexball_football_boost_up;
-       } else if (g_nexball_football_physics == 1) { // MrBougo's modded Rev style: partially independant of the height of the aiming point
-               makevectors(other.v_angle);
-               self.velocity = other.velocity + v_forward * g_nexball_football_boost_forward + '0 0 1' * g_nexball_football_boost_up;
-       } else if (g_nexball_football_physics == 2) { // 2nd mod try: totally independant. Really playable!
-               makevectors(other.v_angle_y * '0 1 0');
-               self.velocity = other.velocity + v_forward * g_nexball_football_boost_forward + v_up * g_nexball_football_boost_up;
-       } else { // Revenant's original style (from the original mod's disassembly, acknowledged by Revenant)
-               makevectors(other.v_angle);
-               self.velocity = other.velocity + v_forward * g_nexball_football_boost_forward + v_up * g_nexball_football_boost_up;
-       }
-       self.avelocity = -250 * v_forward;  // maybe there is a way to make it look better?
-}
-
-void basketball_touch (void)
-{
-       if (other.ballcarried)
-       {
-               football_touch();
-               return;
-       }
-       if (!self.cnt && other.classname == "player" && (other.playerid != self.dropperid || time > self.ctf_droptime + autocvar_g_nexball_delay_collect)) {
-               if (other.health <= 0)
-                       return;
-               LogNB("caught", other);
-               GiveBall(other, self);
-       } else if (other.solid == SOLID_BSP) {
-               sound (self, CH_TRIGGER, self.noise, VOL_BASE, ATTN_NORM);
-               if (vlen(self.velocity) && !self.cnt)
-                       self.nextthink = min(time + g_nexball_delay_idle, self.teamtime);
-       }
-}
-
-void GoalTouch (void)
-{
-       entity ball;
-       float isclient, pscore, otherteam;
-       string pname;
-
-       if (gameover) return;
-       if ((self.spawnflags & GOAL_TOUCHPLAYER) && other.ballcarried)
-               ball = other.ballcarried;
-       else
-               ball = other;
-       if (ball.classname != "nexball_basketball")
-       if (ball.classname != "nexball_football")
-               return;
-       if ((!ball.pusher && self.team != GOAL_OUT) || ball.cnt)
-               return;
-       EXACTTRIGGER_TOUCH;
-
-
-       if(nb_teams == 2)
-               otherteam = OtherTeam(ball.team);
-
-       if((isclient = ball.pusher.flags & FL_CLIENT))
-               pname = ball.pusher.netname;
-       else
-               pname = "Someone (?)";
-
-       if        (ball.team == self.team) //owngoal (regular goals)
-       {
-               LogNB("owngoal", ball.pusher);
-               bprint("Boo! ", pname, "^7 scored a goal against their own team!\n");
-               pscore = -1;
-       } else if (self.team == GOAL_FAULT) {
-               LogNB("fault", ball.pusher);
-               if (nb_teams == 2)
-                       bprint(ColoredTeamName(otherteam), " gets a point due to ", pname, "^7's silliness.\n");
-               else
-                       bprint(ColoredTeamName(ball.team), " loses a point due to ", pname, "^7's silliness.\n");
-               pscore = -1;
-       } else if (self.team == GOAL_OUT) {
-               LogNB("out", ball.pusher);
-               if ((self.spawnflags & GOAL_TOUCHPLAYER) && ball.owner)
-                       bprint(pname, "^7 went out of bounds.\n");
-               else
-                       bprint("The ball was returned.\n");
-               pscore = 0;
-       } else {                           //score
-               LogNB(strcat("goal:", ftos(self.team)), ball.pusher);
-               bprint("Goaaaaal! ", pname, "^7 scored a point for the ", ColoredTeamName(ball.team), ".\n");
-               pscore = 1;
-       }
-
-       sound (ball, CH_TRIGGER, self.noise, VOL_BASE, ATTN_NONE);
-
-       if(ball.team && pscore)
-       {
-               if (nb_teams == 2 && pscore < 0)
-                       TeamScore_AddToTeam(otherteam, ST_NEXBALL_GOALS, -pscore);
-               else
-                       TeamScore_AddToTeam(ball.team, ST_NEXBALL_GOALS, pscore);
-       }
-       if (isclient)
-       {
-               if (pscore > 0)
-                       PlayerScore_Add(ball.pusher, SP_NEXBALL_GOALS, pscore);
-               else if (pscore < 0)
-                       PlayerScore_Add(ball.pusher, SP_NEXBALL_FAULTS, -pscore);
-       }
-
-       if (ball.owner) // Happens on spawnflag GOAL_TOUCHPLAYER
-               DropBall(ball, ball.owner.origin, ball.owner.velocity);
-
-       WaypointSprite_Ping(ball.waypointsprite_attachedforcarrier);
-
-       ball.cnt = 1;
-       ball.think = ResetBall;
-       if (ball.classname == "nexball_basketball")
-               ball.touch = football_touch; // better than SUB_Null: football control until the ball gets reset
-       ball.nextthink = time + autocvar_g_nexball_delay_goal * (self.team != GOAL_OUT);
-}
-
-//=======================//
-//       team ents       //
-//=======================//
-void spawnfunc_nexball_team (void)
-{
-       if(!g_nexball) { remove(self); return; }
-       self.team = self.cnt + 1;
-}
-
-void nb_spawnteam (string teamname, float teamcolor)
-{
-       dprint("^2spawned team ", teamname, "\n");
-       entity e;
-       e = spawn();
-       e.classname = "nexball_team";
-       e.netname = teamname;
-       e.cnt = teamcolor;
-       e.team = e.cnt + 1;
-       nb_teams += 1;
-}
-
-void nb_spawnteams (void)
-{
-       float t_r, t_b, t_y, t_p;
-       entity e;
-       for(e = world; (e = find(e, classname, "nexball_goal")); )
-       {
-               switch(e.team)
-               {
-                       case COLOR_TEAM1: if(!t_r) { nb_spawnteam ("Red", e.team-1)   ; t_r = 1; } break;
-                       case COLOR_TEAM2: if(!t_b) { nb_spawnteam ("Blue", e.team-1)  ; t_b = 1; } break;
-                       case COLOR_TEAM3: if(!t_y) { nb_spawnteam ("Yellow", e.team-1); t_y = 1; } break;
-                       case COLOR_TEAM4: if(!t_p) { nb_spawnteam ("Pink", e.team-1)  ; t_p = 1; } break;
-               }
-       }
-}
-
-void nb_delayedinit (void)
-{
-       if (find(world, classname, "nexball_team") == world)
-               nb_spawnteams();
-       ScoreRules_nexball(nb_teams);
-}
-
-
-//=======================//
-//      spawnfuncs       //
-//=======================//
-
-void SpawnBall (void)
-{
-       if(!g_nexball) { remove(self); return; }
-
-//     balls += 4; // using the remaining bits to count balls will leave more than the max edict count, so it's fine
-
-       if (!self.model) {
-               self.model = "models/nexball/ball.md3";
-               self.scale = 1.3;
-       }
-
-       precache_model (self.model);
-       setmodel (self, self.model);
-       setsize (self, BALL_MINS, BALL_MAXS);
-       ball_scale = self.scale;
-
-       relocate_nexball();
-       self.spawnorigin = self.origin;
-
-       self.effects = self.effects | EF_LOWPRECISION;
-
-       if (cvar(strcat("g_", self.classname, "_trail"))) //nexball_basketball :p
-       {
-               self.glow_color = autocvar_g_nexball_trail_color;
-               self.glow_trail = TRUE;
-       }
-
-       self.movetype = MOVETYPE_FLY;
-
-       if (!autocvar_g_nexball_sound_bounce)
-               self.noise = "";
-       else if (!self.noise)
-               self.noise = "sound/nexball/bounce.wav";
-               //bounce sound placeholder (FIXME)
-       if (!self.noise1)
-               self.noise1 = "sound/nexball/drop.wav";
-               //ball drop sound placeholder (FIXME)
-       if (!self.noise2)
-               self.noise2 = "sound/nexball/steal.wav";
-               //stealing sound placeholder (FIXME)
-       if (self.noise) precache_sound (self.noise);
-       precache_sound (self.noise1);
-       precache_sound (self.noise2);
-
-       WaypointSprite_AttachCarrier("nb-ball", self, RADARICON_FLAGCARRIER, BALL_SPRITECOLOR); // the ball's team is not set yet, no rule update needed
-
-       self.reset = ball_restart;
-       self.think = InitBall;
-       self.nextthink = game_starttime + autocvar_g_nexball_delay_start;
-}
-
-void spawnfunc_nexball_basketball (void)
-{
-       self.classname = "nexball_basketball";
-       if not(balls & BALL_BASKET)
-       {
-               CVTOV(g_nexball_basketball_effects_default);
-               CVTOV(g_nexball_basketball_delay_hold);
-               CVTOV(g_nexball_basketball_delay_hold_forteam);
-               CVTOV(g_nexball_basketball_teamsteal);
-               g_nexball_basketball_effects_default = g_nexball_basketball_effects_default & BALL_EFFECTMASK;
-       }
-       if (!self.effects)
-               self.effects = g_nexball_basketball_effects_default;
-       self.solid = SOLID_TRIGGER;
-       balls |= BALL_BASKET;
-       self.bouncefactor = autocvar_g_nexball_basketball_bouncefactor;
-       self.bouncestop = autocvar_g_nexball_basketball_bouncestop;
-       SpawnBall();
-}
-
-void spawnfunc_nexball_football (void)
-{
-       self.classname = "nexball_football";
-       self.solid = SOLID_TRIGGER;
-       balls |= BALL_FOOT;
-       self.bouncefactor = autocvar_g_nexball_football_bouncefactor;
-       self.bouncestop = autocvar_g_nexball_football_bouncestop;
-       SpawnBall();
-}
-
-void SpawnGoal (void)
-{
-       if(!g_nexball) { remove(self); return; }
-       EXACTTRIGGER_INIT;
-       self.classname = "nexball_goal";
-       if (!self.noise)
-               self.noise = "ctf/respawn.wav";
-       precache_sound(self.noise);
-       self.touch = GoalTouch;
-}
-
-void spawnfunc_nexball_redgoal (void)
-{
-       self.team = COLOR_TEAM1;
-       SpawnGoal();
-}
-void spawnfunc_nexball_bluegoal (void)
-{
-       self.team = COLOR_TEAM2;
-       SpawnGoal();
-}
-void spawnfunc_nexball_yellowgoal (void)
-{
-       self.team = COLOR_TEAM3;
-       SpawnGoal();
-}
-void spawnfunc_nexball_pinkgoal (void)
-{
-       self.team = COLOR_TEAM4;
-       SpawnGoal();
-}
-
-void spawnfunc_nexball_fault (void)
-{
-       self.team = GOAL_FAULT;
-       if (!self.noise)
-               self.noise = "misc/typehit.wav";
-       SpawnGoal();
-}
-
-void spawnfunc_nexball_out (void)
-{
-       self.team = GOAL_OUT;
-       if (!self.noise)
-               self.noise = "misc/typehit.wav";
-       SpawnGoal();
-}
-
-//
-//Spawnfuncs preserved for compatibility
-//
-
-void spawnfunc_ball            (void) { spawnfunc_nexball_football(); }
-void spawnfunc_ball_football   (void) { spawnfunc_nexball_football(); }
-void spawnfunc_ball_basketball (void) { spawnfunc_nexball_basketball(); }
-// The "red goal" is defended by blue team. A ball in there counts as a point for red.
-void spawnfunc_ball_redgoal    (void) { spawnfunc_nexball_bluegoal(); } // I blame Revenant
-void spawnfunc_ball_bluegoal   (void) { spawnfunc_nexball_redgoal(); }  // but he didn't mean to cause trouble :p
-void spawnfunc_ball_fault      (void) { spawnfunc_nexball_fault(); }
-void spawnfunc_ball_bound      (void) { spawnfunc_nexball_out(); }
-
-//=======================//
-//      Weapon code      //
-//=======================//
-
-void W_Nexball_Touch (void)
-{
-       entity ball, attacker;
-       attacker = self.owner;
-
-       PROJECTILE_TOUCH;
-       if(attacker.team != other.team || g_nexball_basketball_teamsteal)
-       if((ball = other.ballcarried) && (attacker.classname == "player"))
-       {
-               other.velocity = other.velocity + normalize(self.velocity) * other.damageforcescale * autocvar_g_balance_nexball_secondary_force;
-               other.flags &~= FL_ONGROUND;
-               if(!attacker.ballcarried)
-               {
-                       LogNB("stole", attacker);
-                       sound (other, CH_TRIGGER, ball.noise2, VOL_BASE, ATTN_NORM);
-
-                       if(attacker.team == other.team && time > attacker.teamkill_complain)
-                       {
-                               attacker.teamkill_complain = time + 5;
-                               attacker.teamkill_soundtime = time + 0.4;
-                               attacker.teamkill_soundsource = other;
-                       }
-
-                       GiveBall(attacker, other.ballcarried);
-               }
-       }
-       remove(self);
-}
-
-void W_Nexball_Attack (float t)
-{
-       entity ball;
-       float mul, mi, ma;
-       if (!(ball = self.ballcarried))
-               return;
-
-       W_SetupShot (self, FALSE, 4, "nexball/shoot1.wav", CH_WEAPON_A, 0);
-       tracebox(w_shotorg, BALL_MINS, BALL_MAXS, w_shotorg, MOVE_WORLDONLY, world);
-       if(trace_startsolid)
-       {
-               if(self.metertime)
-                       self.metertime = 0; // Shot failed, hide the power meter
-               return;
-       }
-
-       //Calculate multiplier
-       if (t < 0)
-               mul = 1;
-       else
-       {
-               mi = autocvar_g_nexball_basketball_meter_minpower;
-               ma = max(mi, autocvar_g_nexball_basketball_meter_maxpower); // avoid confusion
-               //One triangle wave period with 1 as max
-               mul = 2 * mod(t, g_nexball_meter_period) / g_nexball_meter_period;
-               if (mul > 1)
-                       mul = 2 - mul;
-               mul = mi + (ma - mi) * mul; // range from the minimal power to the maximal power
-       }
-       DropBall (ball, w_shotorg, W_CalculateProjectileVelocity(self.velocity, w_shotdir * autocvar_g_balance_nexball_primary_speed * mul, FALSE));
-       //TODO: use the speed_up cvar too ??
-}
-
-void W_Nexball_Attack2 (void)
-{
-       entity missile;
-       if (!(balls & BALL_BASKET))
-               return;
-       W_SetupShot (self, FALSE, 2, "nexball/shoot2.wav", CH_WEAPON_A, 0);
-//     pointparticles(particleeffectnum("grenadelauncher_muzzleflash"), w_shotorg, w_shotdir * 1000, 1);
-       missile = spawn ();
-
-       missile.owner = self;
-       missile.classname = "ballstealer";
-
-       missile.movetype = MOVETYPE_FLY;
-       PROJECTILE_MAKETRIGGER(missile);
-
-       setmodel (missile, "models/elaser.mdl"); // precision set below
-       setsize (missile, '0 0 0', '0 0 0');
-       setorigin (missile, w_shotorg);
-
-       W_SetupProjectileVelocity(missile, autocvar_g_balance_nexball_secondary_speed, 0);
-       missile.angles = vectoangles (missile.velocity);
-       missile.touch = W_Nexball_Touch;
-       missile.think = SUB_Remove;
-       missile.nextthink = time + autocvar_g_balance_nexball_secondary_lifetime; //FIXME: use a distance instead?
-
-       missile.effects = EF_BRIGHTFIELD | EF_LOWPRECISION;
-       missile.flags = FL_PROJECTILE;
-}
-
-float w_nexball_weapon(float req)
-{
-       if (req == WR_THINK)
-       {
-               if (self.BUTTON_ATCK)
-               if (weapon_prepareattack(0, autocvar_g_balance_nexball_primary_refire))
-               if (autocvar_g_nexball_basketball_meter)
-               {
-                       if (self.ballcarried && !self.metertime)
-                               self.metertime = time;
-                       else
-                               weapon_thinkf(WFRAME_FIRE1, autocvar_g_balance_nexball_primary_animtime, w_ready);
-               }
-               else
-               {
-                       W_Nexball_Attack(-1);
-                       weapon_thinkf(WFRAME_FIRE1, autocvar_g_balance_nexball_primary_animtime, w_ready);
-               }
-               if (self.BUTTON_ATCK2)
-               if (weapon_prepareattack(1, autocvar_g_balance_nexball_secondary_refire))
-               {
-                       W_Nexball_Attack2();
-                       weapon_thinkf(WFRAME_FIRE2, autocvar_g_balance_nexball_secondary_animtime, w_ready);
-               }
-
-               if (!self.BUTTON_ATCK && self.metertime && self.ballcarried)
-               {
-                       W_Nexball_Attack(time - self.metertime);
-                       // DropBall or stealing will set metertime back to 0
-                       weapon_thinkf(WFRAME_FIRE1, autocvar_g_balance_nexball_primary_animtime, w_ready);
-               }
-       }
-       else if (req == WR_PRECACHE)
-       {
-               precache_model ("models/weapons/g_porto.md3");
-               precache_model ("models/weapons/v_porto.md3");
-               precache_model ("models/weapons/h_porto.iqm");
-               precache_model ("models/elaser.mdl");
-               precache_sound ("nexball/shoot1.wav");
-               precache_sound ("nexball/shoot2.wav");
-               precache_sound ("misc/typehit.wav");
-       }
-       else if (req == WR_SETUP)
-               weapon_setup(WEP_PORTO);
-       else if (req == WR_SUICIDEMESSAGE)
-       {
-               w_deathtypestring = "is a weirdo";
-       }
-       else if (req == WR_KILLMESSAGE)
-       {
-               w_deathtypestring = "got killed by #'s black magic";
-       }
-       // No need to check WR_CHECKAMMO* or WR_AIM, it should always return TRUE
-       return TRUE;
-}
index 95aa2f9658909983c085061cd5079d5d030af413..ce4c2b4b8d74a40c13455b05d9020f05473e7cfc 100644 (file)
@@ -598,6 +598,7 @@ float pathlib_makenode_adaptive(entity parent,vector start, vector to, vector go
     {
         pathlib_expandnode = pathlib_expandnode_box;
         pathlib_movenode   = pathlib_swimnode;
+       doedge = 0;
     }
     else
     {
@@ -605,6 +606,7 @@ float pathlib_makenode_adaptive(entity parent,vector start, vector to, vector go
         {
             pathlib_expandnode = pathlib_expandnode_box;
             pathlib_movenode   = pathlib_swimnode;
+           doedge = 0;
         }
         else
         {
index 4647fea1392abdba4013b61f2b2c6c99fdde31bb..a08c66b3ae5f48fd657adf5ee61ac53282177c92 100644 (file)
@@ -49,6 +49,7 @@ float pathlib_expandnode_starf(entity node, vector start, vector goal)
     plib_points2[0] = plib_points[0];
     vector bp;
     bp = plib_points[0];
+    fc2 = 0;
     for(i = 0; i < 8; ++i)
     {
         c = 0;
index 5d9fc3d9788c38aab12173b5c7054e3b45e7d2b2..0a5ea42b1c22e7e996665ee98238dd55a6eb3307 100644 (file)
@@ -156,7 +156,7 @@ float tile_check_plus(vector where)
 float tile_check_plus2(vector where)
 {
     vector p,f,r;
-    float i,e;
+    float i = 0, e = 0;
 
     f = PLIB_FORWARD * pathlib_gridsize;
     r = PLIB_RIGHT   * pathlib_gridsize;
index 2d04876710daa9a0d9de807d60bd0c6d0f86b822..3533b4882e4b94264cb3dcf4a4c6b3fa1337f9e8 100644 (file)
@@ -179,6 +179,7 @@ void PlayerStats_TeamScore(float t, string event_id, float value) // TODO: doesn
        R: release information on the server
        T: time at which the game ended
        G: game type
+       O: mod name (icon request) as in server browser
        M: map name
        I: match ID (see "matchid" in g_world.qc
        S: "hostname" of the server
@@ -222,6 +223,7 @@ void PlayerStats_ready(entity fh, entity pass, float status)
 #endif
                        url_fputs(fh, sprintf("T %s.%06d\n", strftime(FALSE, "%s"), floor(random() * 1000000)));
                        url_fputs(fh, sprintf("G %s\n", GetGametype()));
+                       url_fputs(fh, sprintf("O %s\n", modname));
                        url_fputs(fh, sprintf("M %s\n", GetMapname()));
                        url_fputs(fh, sprintf("I %s\n", matchid));
                        url_fputs(fh, sprintf("S %s\n", cvar_string("hostname")));
index 9a459c5fd464c0ef0249a39717a1a0e5335856d3..1890eddd97a679ae3f279e258dcfe0eb55c6c9f4 100644 (file)
@@ -21,6 +21,7 @@ sys-post.qh
 ../common/command/rpn.qh
 ../common/command/generic.qh
 ../common/command/shared_defs.qh
+../common/net_notice.qh
 
 autocvars.qh
 constants.qh
@@ -29,6 +30,7 @@ defs.qh               // Should rename this, it has fields and globals
 mutators/base.qh
 mutators/mutators.qh
 mutators/gamemode_keyhunt.qh // TODO fix this
+mutators/gamemode_nexball.qh 
 mutators/mutator_dodging.qh
 
 //// tZork Turrets ////
@@ -139,7 +141,7 @@ antilag.qc
 ctf.qc
 domination.qc
 mode_onslaught.qc
-nexball.qc
+//nexball.qc
 g_hook.qc
 
 t_swamp.qc
@@ -152,6 +154,8 @@ campaign.qc
 ../common/command/markup.qc
 ../common/command/rpn.qc
 ../common/command/generic.qc
+../common/net_notice.qc
+
 command/common.qc
 command/banning.qc
 command/radarmap.qc
@@ -201,10 +205,12 @@ playerstats.qc
 ../common/explosion_equation.qc
 
 mutators/base.qc
+mutators/gamemode_nexball.qc
 mutators/gamemode_keyhunt.qc
 mutators/gamemode_freezetag.qc
 mutators/gamemode_keepaway.qc
 mutators/mutator_invincibleproj.qc
+mutators/mutator_new_toys.qc
 mutators/mutator_nix.qc
 mutators/mutator_dodging.qc
 mutators/mutator_rocketflying.qc
index 911106a30560358e6ae03054ab21526dc0e6ad8a..c7c38165dd9845225420660ddede82ae65de8dd5 100644 (file)
@@ -141,6 +141,7 @@ void race_setTime(string map, float t, string myuid, string mynetname, entity e)
        newpos = race_readPos(map, t);
 
        float i;
+       player_prevpos = 0;
        for(i = 1; i <= RANKINGS_CNT; ++i)
        {
                if(race_readUID(map, i) == myuid)
@@ -490,8 +491,8 @@ void checkpoint_passed()
                        self.race_checkpoint = other.race_checkpoint;
                }
 
-               float largest_cp_id;
-               float cp_amount;
+               float largest_cp_id = 0;
+               float cp_amount = 0;
                for(cp = world; (cp = find(cp, classname, "target_checkpoint"));) {
                        cp_amount += 1;
                        if(cp.race_checkpoint > largest_cp_id) // update the finish id if someone hit a new checkpoint
@@ -664,7 +665,7 @@ void trigger_race_checkpoint_verify()
                g_race_qualifying = 1;
                self.race_place = race_lowest_place_spawn;
                if(!Spawn_FilterOutBadSpots(findchain(classname, "info_player_deathmatch"), 0, FALSE))
-                       error(strcat("Checkpoint ", ftos(i), " misses a spawnpoint with race_place==", ftos(self.race_place), " (used for qualifying) - bailing out"));
+                       error(strcat("Checkpoint 0 misses a spawnpoint with race_place==", ftos(self.race_place), " (used for qualifying) - bailing out"));
        }
        else
        {
@@ -710,7 +711,7 @@ void trigger_race_checkpoint_verify()
                        }
 
                        if(defragcpexists != -1){
-                               float largest_cp_id;
+                               float largest_cp_id = 0;
                                for(cp = world; (cp = find(cp, classname, "target_checkpoint"));)
                                        if(cp.race_checkpoint > largest_cp_id)
                                                largest_cp_id = cp.race_checkpoint;
index 8f5e005a425811016052ba7b63882c9cab3f83bb..239afb04a81c4d72702fa840078e50dc1928c29f 100644 (file)
@@ -133,7 +133,8 @@ string RuneName(float r)
 
 vector RuneColormod(float r)
 {
-       vector _color;
+       vector _color = '255 0 255';
+
        if(r == RUNE_STRENGTH)
                _color = '255 0 0';
        if(r == RUNE_DEFENSE)
@@ -178,6 +179,7 @@ void RuneCarriedThink()
        // count runes my owner holds
        rcount = 0;
        rune = find(world, classname, "rune");
+       rnum = -1;
        while(rune)
        {
                if(rune.owner == self.owner)
@@ -341,7 +343,6 @@ void DropAllRunes(entity pl)
 
        entity curse1, rune1, curse2, rune2;
 
-       rune = curse = world;
        rcount = ccount = r = c = 0;
        rune = find(rune, classname, "rune");
        while(rune)
@@ -361,7 +362,6 @@ void DropAllRunes(entity pl)
        numtodrop = autocvar_g_runematch_drop_runes_max;
        prevent_same = !autocvar_g_runematch_allow_same;
 
-       rune = curse = world;
        do
        {
                rune = find(rune, classname, "rune");
@@ -588,6 +588,7 @@ float RunematchHandleFrags(entity attacker, entity targ, float f)
        if(!arunes && !trunes)
                return f - 1 + autocvar_g_runematch_frags_norune; // don't give points to players when no runes are involved.
 
+       newfrags = 0;
        if(arunes)
        {       // got a kill while holding runes
                newfrags = newfrags + autocvar_g_runematch_frags_killedby_runeholder;//5;
index b56065deda01461475cc383317f147b8d4ef9dd7..102dd6a33ef326af860bdd8d66c0ba537f5f8a89 100644 (file)
@@ -127,7 +127,7 @@ float TeamScore_Compare(entity t1, entity t2)
 {
        if(!t1 || !t2) return (!t2) - !t1;
 
-       vector result;
+       vector result = '0 0 0';
        float i;
        for(i = 0; i < MAX_TEAMSCORE; ++i)
        {
@@ -254,7 +254,8 @@ void PlayerScore_Clear(entity player)
 
        if(g_lms) return;
        if(g_arena || g_ca) return;
-       if(g_race && !g_race_qualifying) return;
+       if(g_cts) return; // in CTS, you don't lose score by observing
+       if(g_race && g_race_qualifying) return; // in qualifying, you don't lose score by observing
 
        sk = player.scorekeeper;
        for(i = 0; i < MAX_SCORE; ++i)
@@ -355,7 +356,7 @@ float PlayerScore_Compare(entity t1, entity t2)
 {
        if(!t1 || !t2) return (!t2) - !t1;
 
-       vector result;
+       vector result = '0 0 0';
        float i;
        for(i = 0; i < MAX_SCORE; ++i)
        {
@@ -385,8 +386,9 @@ void WinningConditionHelper()
        s = GetGametype();
        s = strcat(s, ":", autocvar_g_xonoticversion);
        s = strcat(s, ":P", ftos(cvar_purechanges_count));
-       s = strcat(s, ":S", ftos(nJoinAllowed(0)));
+       s = strcat(s, ":S", ftos(nJoinAllowed(world)));
        s = strcat(s, ":F", ftos(serverflags));
+       s = strcat(s, ":M", modname);
        s = strcat(s, "::", GetPlayerScoreString(world, 1)); // make this 1 once we can, note: this doesn't contain any :<letter>
 
        fullstatus = autocvar_g_full_getstatus_responses;
index a586252555dcf58beaa904975135ba0e5e71e4c3..2f59924df6e894c9a4d96a8281fb671bec802abb 100644 (file)
@@ -172,8 +172,8 @@ vector steerlib_dodge(vector point,vector dodge_dir,float min_distance)
 vector steerlib_flock(float radius, float standoff,float separation_force,float flock_force)
 {
     entity flock_member;
-    vector push,pull;
-    float ccount;
+    vector push = '0 0 0', pull = '0 0 0';
+    float ccount = 0;
 
     flock_member = findradius(self.origin,radius);
     while(flock_member)
@@ -198,8 +198,8 @@ vector steerlib_flock(float radius, float standoff,float separation_force,float
 vector steerlib_flock2d(float radius, float standoff,float separation_force,float flock_force)
 {
     entity flock_member;
-    vector push,pull;
-    float ccount;
+    vector push = '0 0 0', pull = '0 0 0';
+    float ccount = 0;
 
     flock_member = findradius(self.origin,radius);
     while(flock_member)
@@ -229,8 +229,8 @@ vector steerlib_flock2d(float radius, float standoff,float separation_force,floa
 vector steerlib_swarm(float radius, float standoff,float separation_force,float swarm_force)
 {
     entity swarm_member;
-    vector force,center;
-    float ccount;
+    vector force = '0 0 0', center = '0 0 0';
+    float ccount = 0;
 
     swarm_member = findradius(self.origin,radius);
 
index 66579bc9c92807ef2cfc11cbf3164b47ee20c2e1..007c6369ede68e3e5239d1b774076b1cf65e3840 100644 (file)
@@ -203,9 +203,12 @@ void StartFrame (void)
 
        skill = autocvar_skill;
 
+       count_players();
+       if(g_ca || g_freezetag)
+               count_alive_players();
+       Arena_Warmup();
        Spawnqueue_Check();
 
-
        // detect when the pre-game countdown (if any) has ended and the game has started
        game_delay = (time < game_starttime) ? TRUE : FALSE;
 
index 4afccd9bee8c7c385177e0038ef677281783ce4b..35eaad6ddab9bb6886386cfc75b3fd99df405bb2 100644 (file)
@@ -1,3 +1,232 @@
+#define ISF_LOCATION 2
+#define ISF_MODEL    4
+#define ISF_STATUS   8
+    #define ITS_STAYWEP   1
+    #define ITS_ANIMATE1  2
+    #define ITS_ANIMATE2  4
+    #define ITS_AVAILABLE 8
+    #define ITS_ALLOWFB   16
+    #define ITS_ALLOWSI   32
+    #define ITS_POWERUP   64
+#define ISF_COLORMAP 16
+#define ISF_DROP 32
+
+.float ItemStatus;
+
+#ifdef CSQC
+
+float  autocvar_cl_ghost_items;
+vector autocvar_cl_ghost_items_color;
+float  autocvar_cl_fullbright_items;
+vector autocvar_cl_staywep_color;
+float  autocvar_cl_staywep_alpha;
+float  autocvar_cl_simple_items;
+float  cl_simple_items;
+
+.float  spawntime;
+.float  gravity;
+.vector colormod;
+void ItemDraw()
+{    
+    if(self.ItemStatus & ITS_ANIMATE1)
+    {
+        self.angles += '0 180 0' * frametime;
+        setorigin(self, '0 0 10' + self.oldorigin + '0 0 8' * sin(time * 2));        
+    }    
+    
+    if(self.ItemStatus & ITS_ANIMATE2)
+    {
+        self.angles += '0 -90 0' * frametime;
+        setorigin(self, '0 0 8' + self.oldorigin + '0 0 4' * sin(time * 3));        
+    }
+    
+    if(self.gravity)
+        Movetype_Physics_MatchServer(autocvar_cl_projectiles_sloppy);
+}
+
+void ItemDrawSimple()
+{
+    if(self.gravity)
+        Movetype_Physics_MatchServer(autocvar_cl_projectiles_sloppy);    
+}
+
+float csqcitems_started; // remove this after a release or two
+void csqcitems_start()
+{
+    autocvar_cl_ghost_items =  bound(0, autocvar_cl_ghost_items, 1);
+    if(autocvar_cl_ghost_items == 1)
+        autocvar_cl_ghost_items = 0.55;
+    
+    string _tmp = cvar_string("cl_ghost_items_color");
+    if(_tmp == "")
+        autocvar_cl_ghost_items_color = '-1 -1 -1';
+
+    csqcitems_started = TRUE;
+}
+
+void ItemRead(float _IsNew)
+{
+    if(!csqcitems_started)
+        csqcitems_start();
+    
+    float sf = ReadByte();
+
+    if(sf & ISF_LOCATION)
+    {
+        self.origin_x = ReadCoord();
+        self.origin_y = ReadCoord();
+        self.origin_z = ReadCoord();
+        setorigin(self, self.origin);
+        self.oldorigin = self.origin;
+    }
+    
+    if(sf & ISF_STATUS) // need to read/write status frist so model can handle simple, fb etc.
+    {
+        self.ItemStatus = ReadByte();    
+        
+        if(self.ItemStatus & ITS_AVAILABLE)
+        {
+            self.alpha = 1;
+            self.colormod = self.glowmod = '1 1 1';
+        }
+        else
+        {
+            if (autocvar_cl_ghost_items)
+            {
+                self.alpha = autocvar_cl_ghost_items;
+                self.colormod = self.glowmod = autocvar_cl_ghost_items_color;
+            }
+            else
+                self.alpha = -1;
+        }    
+        
+        if(autocvar_cl_fullbright_items)
+            if(self.ItemStatus & ITS_ALLOWFB)
+                self.effects |= EF_FULLBRIGHT;
+            
+        if(self.ItemStatus & ITS_STAYWEP)
+        {
+            self.colormod = self.glowmod = autocvar_cl_staywep_color;
+            self.alpha = autocvar_cl_staywep_alpha;
+            
+        }
+        
+        if(self.ItemStatus & ITS_POWERUP)
+        {
+            if(self.ItemStatus & ITS_AVAILABLE)
+                self.effects |= (EF_ADDITIVE | EF_FULLBRIGHT);
+            else
+                 self.effects &~= (EF_ADDITIVE | EF_FULLBRIGHT);
+        }
+    }
+    
+    if(sf & ISF_MODEL)
+    {
+        self.drawmask  = MASK_NORMAL;
+        self.movetype  = MOVETYPE_NOCLIP;
+        
+        if(self.mdl)
+            strunzone(self.mdl);
+        
+        self.mdl = "";
+        string _fn = ReadString();
+        
+        if(cl_simple_items && (self.ItemStatus & ITS_ALLOWSI))
+        {
+            string _fn2 = substring(_fn, 0 , strlen(_fn) -4);
+                        
+            if(fexists(strcat(_fn2, "_simple.md3")))
+                self.mdl = strzone(strcat(_fn2, "_simple.md3"));
+            else if(fexists(strcat(_fn2, "_simple.dpm")))
+                self.mdl = strzone(strcat(_fn2, "_simple.dpm"));
+            else if(fexists(strcat(_fn2, "_simple.iqm")))
+                self.mdl = strzone(strcat(_fn2, "_simple.iqm"));
+            else if(fexists(strcat(_fn2, "_simple.obj")))
+                self.mdl = strzone(strcat(_fn2, "_simple.obj"));
+            else
+            {
+                self.mdl = "";
+                dprint("Simple item requested for ", _fn, " but no model exsist for it\n");
+            }
+        }
+        
+        if(self.mdl == "")
+        {
+            self.mdl       = strzone(_fn);
+            self.draw      = ItemDraw;
+        }
+        else
+            self.draw      = ItemDrawSimple;
+        
+        precache_model(self.mdl);
+        setmodel(self, self.mdl);
+    }
+    
+    if(sf & ISF_COLORMAP)
+        self.colormap = ReadShort();
+    
+    if(sf & ISF_DROP)
+    {
+        self.gravity = 1;
+        self.move_movetype = MOVETYPE_TOSS;
+        self.move_velocity_x = ReadCoord();
+        self.move_velocity_y = ReadCoord();
+        self.move_velocity_z = ReadCoord();
+        self.velocity = self.move_velocity;
+        self.move_origin = self.oldorigin;
+        
+        if(!self.move_time)
+        {
+            self.move_time = time;
+            self.spawntime = time;
+        }
+        else
+            self.move_time = max(self.move_time, time);
+    }    
+}
+#endif
+
+#ifdef SVQC
+float autocvar_sv_simple_items;
+float ItemSend(entity to, float sf)
+{
+    if(self.gravity)
+        sf |= ISF_DROP;
+    else
+        sf &~= ISF_DROP;
+       
+       WriteByte(MSG_ENTITY, ENT_CLIENT_ITEM); 
+       WriteByte(MSG_ENTITY, sf);
+
+        
+       //WriteByte(MSG_ENTITY, self.cnt);
+    if(sf & ISF_LOCATION)
+    {
+        WriteCoord(MSG_ENTITY, self.origin_x);
+        WriteCoord(MSG_ENTITY, self.origin_y);
+        WriteCoord(MSG_ENTITY, self.origin_z);
+    }
+
+    if(sf & ISF_STATUS)
+        WriteByte(MSG_ENTITY, self.ItemStatus);
+
+    if(sf & ISF_MODEL)
+        WriteString(MSG_ENTITY, self.mdl);
+        
+    if(sf & ISF_COLORMAP)
+        WriteShort(MSG_ENTITY, self.colormap);
+
+    if(sf & ISF_DROP)
+    {
+        WriteCoord(MSG_ENTITY, self.velocity_x);
+        WriteCoord(MSG_ENTITY, self.velocity_y);
+        WriteCoord(MSG_ENTITY, self.velocity_z);
+    }
+        
+    return TRUE;
+}
+
+
 float have_pickup_item(void)
 {
        // minstagib: only allow filtered items
@@ -29,7 +258,7 @@ float have_pickup_item(void)
                if(g_ca)
                        return FALSE;
                if(g_weaponarena)
-                       if((self.weapons & WEPBIT_ALL) || (self.items & IT_AMMO))
+                       if(!WEPSET_EMPTY_E(self) || (self.items & IT_AMMO))
                                return FALSE;
        }
        return TRUE;
@@ -78,12 +307,12 @@ string Item_CounterFieldName(float it)
 
 .float max_armorvalue;
 .float pickup_anyway;
-
+/*
 float Item_Customize()
 {
        if(self.spawnshieldtime)
                return TRUE;
-       if(self.weapons != (self.weapons & other.weapons))
+       if(!WEPSET_CONTAINS_ALL_EE(other, self))
        {
                self.colormod = '0 0 0';
                self.glowmod = self.colormod;
@@ -103,80 +332,63 @@ float Item_Customize()
                        return FALSE;
        }
 }
+*/
 
 void Item_Show (entity e, float mode)
-{
+{    
        e.effects &~= EF_ADDITIVE | EF_STARDUST | EF_FULLBRIGHT | EF_NODEPTHTEST;
+       e.ItemStatus &~= ITS_STAYWEP;
        if (mode > 0)
        {
                // make the item look normal, and be touchable
                e.model = e.mdl;
                e.solid = SOLID_TRIGGER;
-               e.colormod = '0 0 0';
-               self.glowmod = self.colormod;
-               e.alpha = 0;
-               e.customizeentityforclient = func_null;
-
                e.spawnshieldtime = 1;
+               e.ItemStatus |= ITS_AVAILABLE;
        }
        else if (mode < 0)
        {
                // hide the item completely
                e.model = string_null;
                e.solid = SOLID_NOT;
-               e.colormod = '0 0 0';
-               self.glowmod = self.colormod;
-               e.alpha = 0;
-               e.customizeentityforclient = func_null;
-
                e.spawnshieldtime = 1;
+               e.ItemStatus &~= ITS_AVAILABLE;
        }
        else if((e.flags & FL_WEAPON) && !(e.flags & FL_NO_WEAPON_STAY) && g_weapon_stay)
        {
                // make the item translucent and not touchable
                e.model = e.mdl;
                e.solid = SOLID_TRIGGER; // can STILL be picked up!
-               e.colormod = '0 0 0';
-               self.glowmod = self.colormod;
                e.effects |= EF_STARDUST;
-               e.customizeentityforclient = Item_Customize;
-
                e.spawnshieldtime = 0; // field indicates whether picking it up may give you anything other than the weapon
-       }
-       else if(g_ghost_items)
-       {
-               // make the item translucent and not touchable
-               e.model = e.mdl;
-               e.solid = SOLID_NOT;
-               e.colormod = stov(autocvar_g_ghost_items_color);
-               e.glowmod = e.colormod;
-               e.alpha = g_ghost_items;
-               e.customizeentityforclient = func_null;
-
-               e.spawnshieldtime = 1;
+               e.ItemStatus |= (ITS_AVAILABLE | ITS_STAYWEP);
        }
        else
        {
-               // hide the item completely
-               e.model = string_null;
+               //setmodel(e, "null");
                e.solid = SOLID_NOT;
                e.colormod = '0 0 0';
                e.glowmod = e.colormod;
-               e.alpha = 0;
-               e.customizeentityforclient = func_null;
-
                e.spawnshieldtime = 1;
+               e.ItemStatus &~= ITS_AVAILABLE;
        }
-
-       if (e.items & (IT_STRENGTH | IT_INVINCIBLE))
-               e.effects |= EF_ADDITIVE | EF_FULLBRIGHT;
+       
+       if (e.items & IT_STRENGTH || e.items & IT_INVINCIBLE)
+           e.ItemStatus |= ITS_POWERUP;                
+       
        if (autocvar_g_nodepthtestitems)
                e.effects |= EF_NODEPTHTEST;
-       if (autocvar_g_fullbrightitems)
-               e.effects |= EF_FULLBRIGHT;
+               
+    
+    if (autocvar_g_fullbrightitems)
+               e.ItemStatus |= ITS_ALLOWFB;
+       
+       if (autocvar_sv_simple_items)
+        e.ItemStatus |= ITS_ALLOWSI;
 
        // relink entity (because solid may have changed)
        setorigin(e, e.origin);
+    e.SendFlags |= ISF_STATUS;
 }
 
 void Item_Respawn (void)
@@ -209,7 +421,7 @@ void Item_RespawnCountdown (void)
                if(self.count == 1)
                {
                        string name;
-                       vector rgb;
+                       vector rgb = '1 0 1';
                        name = string_null;
                        if(g_minstagib)
                        {
@@ -265,7 +477,7 @@ void Item_RespawnCountdown (void)
 
 void Item_ScheduleRespawnIn(entity e, float t)
 {
-       if((e.flags & FL_POWERUP) || (e.weapons & WEPBIT_SUPERWEAPONS))
+       if((e.flags & FL_POWERUP) || WEPSET_CONTAINS_ANY_EA(e, WEPBIT_SUPERWEAPONS))
        {
                e.think = Item_RespawnCountdown;
                e.nextthink = time + max(0, t - ITEM_RESPAWN_TICKS);
@@ -348,7 +560,6 @@ float Item_GiveTo(entity item, entity player)
        float pickedup;
        float it;
        float i;
-       entity e;
 
        // if nothing happens to player, just return without taking the item
        pickedup = FALSE;
@@ -377,10 +588,8 @@ float Item_GiveTo(entity item, entity player)
                        // else if(item.items == IT_CELLS)
                        //      AnnounceTo(player, "ammo");
 
-                       if (item.weapons & WEPBIT_MINSTANEX)
+                       if (WEPSET_CONTAINS_EW(item, WEP_MINSTANEX))
                                W_GiveWeapon (player, WEP_MINSTANEX, item.netname);
-                       if (item.ammo_cells)
-                               player.ammo_cells = bound(player.ammo_cells, 999, player.ammo_cells + autocvar_g_minstagib_ammo_drop);
                        player.health = 100;
                }
 
@@ -428,7 +637,7 @@ float Item_GiveTo(entity item, entity player)
                if (player.switchweapon == w_getbestweapon(player))
                        _switchweapon = TRUE;
 
-               if not(player.weapons & W_WeaponBit(player.switchweapon))
+               if not(WEPSET_CONTAINS_EW(player, player.switchweapon))
                        _switchweapon = TRUE;
 
                pickedup |= Item_GiveAmmoTo(item, player, ammo_fuel, g_pickup_fuel_max, ITEM_MODE_FUEL);
@@ -440,14 +649,17 @@ float Item_GiveTo(entity item, entity player)
                pickedup |= Item_GiveAmmoTo(item, player, armorvalue, item.max_armorvalue, ITEM_MODE_ARMOR);
 
                if (item.flags & FL_WEAPON)
-               if ((it = item.weapons - (item.weapons & player.weapons)) || (item.spawnshieldtime && self.pickup_anyway))
                {
-                       pickedup = TRUE;
-                       for(i = WEP_FIRST; i <= WEP_LAST; ++i)
+                       WEPSET_DECLARE_A(it);
+                       WEPSET_COPY_AE(it, item);
+                       WEPSET_ANDNOT_AE(it, player);
+
+                       if (!WEPSET_EMPTY_A(it) || (item.spawnshieldtime && self.pickup_anyway))
                        {
-                               e = get_weaponinfo(i);
-                               if(it & e.weapons)
-                                       W_GiveWeapon (player, e.weapon, item.netname);
+                               pickedup = TRUE;
+                               for(i = WEP_FIRST; i <= WEP_LAST; ++i)
+                                       if(WEPSET_CONTAINS_AW(it, i))
+                                               W_GiveWeapon (player, i, item.netname);
                        }
                }
 
@@ -495,11 +707,15 @@ void Item_Touch (void)
        entity e, head;
 
        // remove the item if it's currnetly in a NODROP brush or hits a NOIMPACT surface (such as sky)
-       if (((trace_dpstartcontents | trace_dphitcontents) & DPCONTENTS_NODROP) || (trace_dphitq3surfaceflags & Q3SURFACEFLAG_NOIMPACT))
+       if(self.classname == "droppedweapon")
        {
-               remove(self);
-               return;
+               if (ITEM_TOUCH_NEEDKILL())
+               {
+                       remove(self);
+                       return;
+               }
        }
+
        if (other.classname != "player")
                return;
        if (other.deadflag)
@@ -551,6 +767,7 @@ void Item_Touch (void)
                                }
                        }
                        e = RandomSelection_chosen_ent;
+
                }
                else
                        e = self;
@@ -568,7 +785,10 @@ void Item_Reset()
                self.think = SUB_Null;
                self.nextthink = 0;
 
-               if((self.flags & FL_POWERUP) | (self.weapons & WEPBIT_SUPERWEAPONS)) // do not spawn powerups initially!
+               if(self.waypointsprite_attached)
+                       WaypointSprite_Kill(self.waypointsprite_attached);
+
+               if((self.flags & FL_POWERUP) | WEPSET_CONTAINS_ANY_EA(self, WEPBIT_SUPERWEAPONS)) // do not spawn powerups initially!
                        Item_ScheduleInitialRespawn(self);
        }
 }
@@ -617,10 +837,10 @@ float generic_pickupevalfunc(entity player, entity item) {return item.bot_pickup
 
 float weapon_pickupevalfunc(entity player, entity item)
 {
-       float c, i, j, position;
+       float c, j, position;
 
        // See if I have it already
-       if(player.weapons & item.weapons == item.weapons)
+       if(!WEPSET_CONTAINS_ALL_EE(player, item))
        {
                // If I can pick it up
                if(!item.spawnshieldtime)
@@ -639,34 +859,27 @@ float weapon_pickupevalfunc(entity player, entity item)
        // If custom weapon priorities for bots is enabled rate most wanted weapons higher
        if( bot_custom_weapon && c )
        {
-               for(i = WEP_FIRST; i <= WEP_LAST ; ++i)
-               {
-                       // Find weapon
-                       if( (get_weaponinfo(i)).weapons & item.weapons  != item.weapons )
-                               continue;
-
-                       // Find the highest position on any range
-                       position = -1;
-                       for(j = 0; j < WEP_LAST ; ++j){
-                               if(
-                                               bot_weapons_far[j] == i ||
-                                               bot_weapons_mid[j] == i ||
-                                               bot_weapons_close[j] == i
-                                 )
-                               {
-                                       position = j;
-                                       break;
-                               }
-                       }
-
-                       // Rate it
-                       if (position >= 0 )
+               // Find the highest position on any range
+               position = -1;
+               for(j = 0; j < WEP_LAST ; ++j){
+                       if(
+                                       bot_weapons_far[j] == item.weapon ||
+                                       bot_weapons_mid[j] == item.weapon ||
+                                       bot_weapons_close[j] == item.weapon
+                         )
                        {
-                               position = WEP_LAST - position;
-                               // item.bot_pickupbasevalue is overwritten here
-                               return (BOT_PICKUP_RATING_LOW + ( (BOT_PICKUP_RATING_HIGH - BOT_PICKUP_RATING_LOW) * (position / WEP_LAST ))) * c;
+                               position = j;
+                               break;
                        }
                }
+
+               // Rate it
+               if (position >= 0 )
+               {
+                       position = WEP_LAST - position;
+                       // item.bot_pickupbasevalue is overwritten here
+                       return (BOT_PICKUP_RATING_LOW + ( (BOT_PICKUP_RATING_HIGH - BOT_PICKUP_RATING_LOW) * (position / WEP_LAST ))) * c;
+               }
        }
 
        return item.bot_pickupbasevalue * c;
@@ -674,7 +887,8 @@ float weapon_pickupevalfunc(entity player, entity item)
 
 float commodity_pickupevalfunc(entity player, entity item)
 {
-       float c, i, need_shells, need_nails, need_rockets, need_cells, need_fuel;
+       float c, i;
+       float need_shells = FALSE, need_nails = FALSE, need_rockets = FALSE, need_cells = FALSE, need_fuel = FALSE;
        entity wi;
        c = 0;
 
@@ -683,7 +897,7 @@ float commodity_pickupevalfunc(entity player, entity item)
        {
                wi = get_weaponinfo(i);
 
-               if not(wi.weapons & player.weapons)
+               if not(WEPSET_CONTAINS_EW(player, i))
                        continue;
 
                if(wi.items & IT_SHELLS)
@@ -731,16 +945,44 @@ float commodity_pickupevalfunc(entity player, entity item)
        return item.bot_pickupbasevalue * c;
 }
 
+void Item_Damage(entity inflictor, entity attacker, float damage, float deathtype, vector hitloc, vector force)
+{
+       if(ITEM_DAMAGE_NEEDKILL(deathtype))
+               RemoveItem();
+}
 
 .float is_item;
 void StartItem (string itemmodel, string pickupsound, float defaultrespawntime, float defaultrespawntimejitter, string itemname, float itemid, float weaponid, float itemflags, float(entity player, entity item) pickupevalfunc, float pickupbasevalue)
 {
        startitem_failed = FALSE;
 
+       if(self.model == "")
+               self.model = itemmodel;
+       
+       if(self.item_pickupsound == "")
+               self.item_pickupsound = pickupsound;
+       
+       if(!self.respawntime) // both need to be set
+       {
+               self.respawntime = defaultrespawntime;
+               self.respawntimejitter = defaultrespawntimejitter;
+       }
+
        self.items = itemid;
-       self.weapons = weaponid;
+       self.weapon = weaponid;
+
+       if(weaponid)
+               WEPSET_COPY_EW(self, weaponid);
+       
        self.flags = FL_ITEM | itemflags;
 
+       if(MUTATOR_CALLHOOK(FilterItem)) // error means we do not want the item
+       {
+               startitem_failed = TRUE;
+               remove(self);
+               return;
+       }
+
        // is it a dropped weapon?
        if (self.classname == "droppedweapon")
        {
@@ -752,10 +994,13 @@ void StartItem (string itemmodel, string pickupsound, float defaultrespawntime,
                self.think = RemoveItem;
                self.nextthink = time + 20;
 
+               self.takedamage = DAMAGE_YES;
+               self.event_damage = Item_Damage;
+
                if(self.strength_finished || self.invincible_finished || self.superweapons_finished)
                /*
                if(self.items == 0)
-               if(self.weapons == (self.weapons & WEPBIT_SUPERWEAPONS)) // only superweapons
+               if(WEPSET_CONTAINS_ALL_AE(WEPBIT_SUPERWEAPONS, self)) // only superweapons
                if(self.ammo_nails == 0)
                if(self.ammo_cells == 0)
                if(self.ammo_rockets == 0)
@@ -780,13 +1025,6 @@ void StartItem (string itemmodel, string pickupsound, float defaultrespawntime,
        }
        else
        {
-               if(MUTATOR_CALLHOOK(FilterItem)) // error means we do not want the item
-               {
-                       startitem_failed = TRUE;
-                       remove(self);
-                       return;
-               }
-
                if(!have_pickup_item())
                {
                        startitem_failed = TRUE;
@@ -794,11 +1032,6 @@ void StartItem (string itemmodel, string pickupsound, float defaultrespawntime,
                        return;
                }
 
-               if(self.model != "")
-                       itemmodel = self.model;
-               if(self.item_pickupsound != "")
-                       pickupsound = self.item_pickupsound;
-
                self.reset = Item_Reset;
                // it's a level item
                if(self.spawnflags & 1)
@@ -841,6 +1074,7 @@ void StartItem (string itemmodel, string pickupsound, float defaultrespawntime,
                        entity otheritem;
                        for(otheritem = findradius(self.origin, 3); otheritem; otheritem = otheritem.chain)
                        {
+                           // why not flags & fl_item?
                                if(otheritem.is_item)
                                {
                                        dprint("XXX Found duplicated item: ", itemname, vtos(self.origin));
@@ -851,10 +1085,10 @@ void StartItem (string itemmodel, string pickupsound, float defaultrespawntime,
                        self.is_item = TRUE;
                }
 
-               weaponsInMap |= weaponid;
+               WEPSET_OR_AW(weaponsInMap, weaponid);
 
-               precache_model (itemmodel);
-               precache_sound (pickupsound);
+               precache_model (self.model);
+               precache_sound (self.item_pickupsound);
 
                precache_sound ("misc/itemrespawncountdown.wav");
                if(!g_minstagib && itemid == IT_STRENGTH)
@@ -871,46 +1105,54 @@ void StartItem (string itemmodel, string pickupsound, float defaultrespawntime,
        self.bot_pickup = TRUE;
        self.bot_pickupevalfunc = pickupevalfunc;
        self.bot_pickupbasevalue = pickupbasevalue;
-       self.mdl = itemmodel;
-       self.item_pickupsound = pickupsound;
-       if(self.weapons)
-               self.weapon = WEP_FIRST + log2of(lowestbit(self.weapons));
-       else
-               self.weapon = 0;
-       // let mappers override respawntime
-       if(!self.respawntime) // both set
-       {
-               self.respawntime = defaultrespawntime;
-               self.respawntimejitter = defaultrespawntimejitter;
-       }
+       self.mdl = self.model;
        self.netname = itemname;
        self.touch = Item_Touch;
-       setmodel (self, self.mdl); // precision set below
-       self.effects |= EF_LOWPRECISION;
+       setmodel(self, "null"); // precision set below
+       //self.effects |= EF_LOWPRECISION; 
+       
        if((itemflags & FL_POWERUP) || self.health || self.armorvalue)
-               setsize (self, '-16 -16 0', '16 16 48');
+    {
+        self.pos1 = '-16 -16 0';
+        self.pos2 = '16 16 48';
+    }
        else
-               setsize (self, '-16 -16 0', '16 16 32');
+    {
+        self.pos1 = '-16 -16 0';
+        self.pos2 = '16 16 32';
+    }
+    setsize (self, self.pos1, self.pos2);
+    
+    if(itemflags & FL_POWERUP) 
+        self.ItemStatus |= ITS_ANIMATE1;
+       
+       if(self.armorvalue || self.health)
+        self.ItemStatus |= ITS_ANIMATE2;
+       
        if(itemflags & FL_WEAPON)
-               self.modelflags |= MF_ROTATE;
-
-       if (self.classname != "droppedweapon") // if dropped, colormap is already set up nicely
-       if (itemflags & FL_WEAPON)
        {
-               // neutral team color for pickup weapons
-               self.colormap = 1024; // color shirt=0 pants=0 grey
+               if (self.classname != "droppedweapon") // if dropped, colormap is already set up nicely
+            self.colormap = 1024; // color shirt=0 pants=0 grey
+        else
+            self.gravity = 1;
+            
+               self.ItemStatus |= ITS_ANIMATE1;
+               self.ItemStatus |= ISF_COLORMAP;
        }
 
        self.state = 0;
-       if(self.team)
+       if(self.team) // broken, no idea why.
        {
                if(!self.cnt)
                        self.cnt = 1; // item probability weight
-               self.effects = self.effects | EF_NODRAW; // marker for item team search
+                       
+               self.effects |= EF_NODRAW; // marker for item team search
                InitializeEntity(self, Item_FindTeam, INITPRIO_FINDTARGET);
        }
        else
                Item_Reset();
+        
+    Net_LinkEntity(self, FALSE, 0, ItemSend);
 }
 
 /* replace items in minstagib
@@ -918,10 +1160,10 @@ void StartItem (string itemmodel, string pickupsound, float defaultrespawntime,
  * IT_NAILS     = extra lives
  * IT_INVINCIBLE = speed
  */
-void minstagib_items (float itemid)
+void minstagib_items (float itemid) // will be deleted soon.
 {
        float rnd;
-       self.classname = "minstagib";
+       self.classname = "minstagib"; // ...?
 
        // replace rocket launchers and nex guns with ammo cells
        if (itemid == IT_CELLS)
@@ -992,8 +1234,23 @@ void weapon_defaultspawnfunc(float wpn)
        if(self.classname != "droppedweapon" && self.classname != "replacedweapon")
        {
                e = get_weaponinfo(wpn);
-               s = cvar_string(strcat("g_weaponreplace_", e.netname));
-               if(s == "0")
+
+               if(e.spawnflags & WEP_FLAG_MUTATORBLOCKED)
+               {
+                       print("Attempted to spawn a mutator-blocked weapon; these guns will in the future require a mutator\n");
+                       /*
+                       objerror("Attempted to spawn a mutator-blocked weapon rejected");
+                       startitem_failed = TRUE;
+                       return;
+                       */
+               }
+
+               s = W_Apply_Weaponreplace(e.netname);
+               ret_string = s;
+               other = e;
+               MUTATOR_CALLHOOK(SetWeaponreplace);
+               s = ret_string;
+               if(s == "")
                {
                        remove(self);
                        startitem_failed = TRUE;
@@ -1026,7 +1283,7 @@ void weapon_defaultspawnfunc(float wpn)
                        }
                        self = oldself;
                }
-               if(t >= 1)
+               if(t >= 1) // always the case!
                {
                        s = argv(0);
                        wpn = 0;
@@ -1056,7 +1313,7 @@ void weapon_defaultspawnfunc(float wpn)
 
        if(!self.respawntime)
        {
-               if(e.weapons & WEPBIT_SUPERWEAPONS)
+               if(WEPSET_CONTAINS_ANY_EA(e, WEPBIT_SUPERWEAPONS))
                {
                        self.respawntime = g_pickup_respawntime_superweapon;
                        self.respawntimejitter = g_pickup_respawntimejitter_superweapon;
@@ -1068,7 +1325,7 @@ void weapon_defaultspawnfunc(float wpn)
                }
        }
 
-       if(e.weapons & WEPBIT_SUPERWEAPONS)
+       if(WEPSET_CONTAINS_ANY_EA(e, WEPBIT_SUPERWEAPONS))
                if(!self.superweapons_finished)
                        self.superweapons_finished = autocvar_g_balance_superweapons_time;
 
@@ -1092,14 +1349,19 @@ void weapon_defaultspawnfunc(float wpn)
        f = FL_WEAPON;
 
        // no weapon-stay on superweapons
-       if(e.weapons & WEPBIT_SUPERWEAPONS)
+       if(WEPSET_CONTAINS_ANY_EA(e, WEPBIT_SUPERWEAPONS))
                f |= FL_NO_WEAPON_STAY;
 
        // weapon stay isn't supported for teamed weapons
        if(self.team)
                f |= FL_NO_WEAPON_STAY;
 
-       StartItem(e.model, "weapons/weaponpickup.wav", self.respawntime, self.respawntimejitter, e.message, 0, e.weapons, f, weapon_pickupevalfunc, e.bot_pickupbasevalue);
+       // stupid minstagib hack, don't ask
+       if(g_minstagib)
+               if(self.ammo_cells)
+                       self.ammo_cells = autocvar_g_minstagib_ammo_drop;
+
+       StartItem(e.model, "weapons/weaponpickup.wav", self.respawntime, self.respawntimejitter, e.message, 0, e.weapon, f, weapon_pickupevalfunc, e.bot_pickupbasevalue);
        if (self.modelindex) // don't precache if self was removed
                weapon_action(e.weapon, WR_PRECACHE);
 }
@@ -1329,7 +1591,7 @@ void spawnfunc_item_invincible (void) {
 void spawnfunc_item_minst_cells (void) {
        if (g_minstagib)
        {
-               minst_no_auto_cells = 1;
+               minst_no_auto_cells = TRUE;
                minstagib_items(IT_CELLS);
        }
        else
@@ -1402,19 +1664,21 @@ void spawnfunc_target_items (void)
                        else if(argv(i) == "jetpack")                self.items |= IT_JETPACK;
                        else if(argv(i) == "fuel_regen")             self.items |= IT_FUEL_REGEN;
                        else
-                       for(j = WEP_FIRST; j <= WEP_LAST; ++j)
                        {
-                               e = get_weaponinfo(j);
-                               if(argv(i) == e.netname)
+                               for(j = WEP_FIRST; j <= WEP_LAST; ++j)
                                {
-                                       self.weapons |= e.weapons;
-                                       if(self.spawnflags == 0 || self.spawnflags == 2)
-                                               weapon_action(e.weapon, WR_PRECACHE);
-                                       break;
+                                       e = get_weaponinfo(j);
+                                       if(argv(i) == e.netname)
+                                       {
+                                               WEPSET_OR_EW(self, j);
+                                               if(self.spawnflags == 0 || self.spawnflags == 2)
+                                                       weapon_action(e.weapon, WR_PRECACHE);
+                                               break;
+                                       }
                                }
+                               if(j > WEP_LAST)
+                                       print("target_items: invalid item ", argv(i), "\n");
                        }
-                       if(j > WEP_LAST)
-                               print("target_items: invalid item ", argv(i), "\n");
                }
 
                string itemprefix, valueprefix;
@@ -1459,8 +1723,8 @@ void spawnfunc_target_items (void)
                for(j = WEP_FIRST; j <= WEP_LAST; ++j)
                {
                        e = get_weaponinfo(j);
-                       if(e.weapons)
-                               self.netname = sprintf("%s %s%d %s", self.netname, itemprefix, !!(self.weapons & e.weapons), e.netname);
+                       if(e.weapon)
+                               self.netname = sprintf("%s %s%d %s", self.netname, itemprefix, WEPSET_CONTAINS_EW(self, j), e.netname);
                }
        }
        self.netname = strzone(self.netname);
@@ -1521,6 +1785,36 @@ void spawnfunc_item_jetpack(void)
 #define OP_PLUS 3
 #define OP_MINUS 4
 
+float GiveWeapon(entity e, float wpn, float op, float val)
+{
+       float v0, v1;
+       v0 = WEPSET_CONTAINS_EW(e, wpn);
+       switch(op)
+       {
+               case OP_SET:
+                       if(val > 0)
+                               WEPSET_OR_EW(e, wpn);
+                       else
+                               WEPSET_ANDNOT_EW(e, wpn);
+                       break;
+               case OP_MIN:
+               case OP_PLUS:
+                       if(val > 0)
+                               WEPSET_OR_EW(e, wpn);
+                       break;
+               case OP_MAX:
+                       if(val <= 0)
+                               WEPSET_ANDNOT_EW(e, wpn);
+                       break;
+               case OP_MINUS:
+                       if(val > 0)
+                               WEPSET_ANDNOT_EW(e, wpn);
+                       break;
+       }
+       v1 = WEPSET_CONTAINS_EW(e, wpn);
+       return (v0 != v1);
+}
+
 float GiveBit(entity e, .float fld, float bit, float op, float val)
 {
        float v0, v1;
@@ -1601,7 +1895,9 @@ void GiveRot(entity e, float v0, float v1, .float rotfield, float rottime, .floa
                e.regenfield = max(e.regenfield, time + regentime);
 }
 
+#define PREGIVE_WEAPONS(e) WEPSET_DECLARE_A(save_weapons); WEPSET_COPY_AE(save_weapons, e)
 #define PREGIVE(e,f) float save_##f; save_##f = (e).f
+#define POSTGIVE_WEAPON(e,b,snd_incr,snd_decr) GiveSound((e), WEPSET_CONTAINS_AW(save_weapons, b), WEPSET_CONTAINS_EW(e, b), 0, snd_incr, snd_decr)
 #define POSTGIVE_BIT(e,f,b,snd_incr,snd_decr) GiveSound((e), save_##f & (b), (e).f & (b), 0, snd_incr, snd_decr)
 #define POSTGIVE_VALUE(e,f,t,snd_incr,snd_decr) GiveSound((e), save_##f, (e).f, t, snd_incr, snd_decr)
 #define POSTGIVE_VALUE_ROT(e,f,t,rotfield,rottime,regenfield,regentime,snd_incr,snd_decr) GiveRot((e), save_##f, (e).f, rotfield, rottime, regenfield, regentime); GiveSound((e), save_##f, (e).f, t, snd_incr, snd_decr)
@@ -1628,7 +1924,7 @@ float GiveItems(entity e, float beginarg, float endarg)
        e.superweapons_finished = max(0, e.superweapons_finished - time);
        
        PREGIVE(e, items);
-       PREGIVE(e, weapons);
+       PREGIVE_WEAPONS(e);
        PREGIVE(e, strength_finished);
        PREGIVE(e, invincible_finished);
        PREGIVE(e, superweapons_finished);
@@ -1681,8 +1977,9 @@ float GiveItems(entity e, float beginarg, float endarg)
                                for(j = WEP_FIRST; j <= WEP_LAST; ++j)
                                {
                                        wi = get_weaponinfo(j);
-                                       if(wi.weapons)
-                                               got += GiveBit(e, weapons, wi.weapons, op, val);
+                                       if(wi.weapon)
+                                               if not(wi.spawnflags & WEP_FLAG_MUTATORBLOCKED)
+                                                       got += GiveWeapon(e, j, op, val);
                                }
                        case "allammo":
                                got += GiveValue(e, ammo_cells, op, val);
@@ -1743,7 +2040,7 @@ float GiveItems(entity e, float beginarg, float endarg)
                                        wi = get_weaponinfo(j);
                                        if(cmd == wi.netname)
                                        {
-                                               got += GiveBit(e, weapons, wi.weapons, op, val);
+                                               got += GiveWeapon(e, j, op, val);
                                                break;
                                        }
                                }
@@ -1762,11 +2059,11 @@ float GiveItems(entity e, float beginarg, float endarg)
        for(j = WEP_FIRST; j <= WEP_LAST; ++j)
        {
                wi = get_weaponinfo(j);
-               if(wi.weapons)
+               if(wi.weapon)
                {
-                       POSTGIVE_BIT(e, weapons, wi.weapons, "weapons/weaponpickup.wav", string_null);
-                       if not(save_weapons & wi.weapons)
-                               if(e.weapons & wi.weapons)
+                       POSTGIVE_WEAPON(e, j, "weapons/weaponpickup.wav", string_null);
+                       if not(WEPSET_CONTAINS_AW(save_weapons, j))
+                               if(WEPSET_CONTAINS_EW(e, j))
                                        weapon_action(wi.weapon, WR_PRECACHE);
                }
        }
@@ -1781,7 +2078,7 @@ float GiveItems(entity e, float beginarg, float endarg)
        POSTGIVE_VALUE_ROT(e, health, 1, pauserothealth_finished, autocvar_g_balance_pause_health_rot, pauseregen_finished, autocvar_g_balance_pause_health_regen, "misc/megahealth.wav", string_null);
 
        if(e.superweapons_finished <= 0)
-               if(self.weapons & WEPBIT_SUPERWEAPONS)
+               if(WEPSET_CONTAINS_ANY_EA(self, WEPBIT_SUPERWEAPONS))
                        e.superweapons_finished = autocvar_g_balance_superweapons_time;
 
        if (g_minstagib)
@@ -1803,10 +2100,11 @@ float GiveItems(entity e, float beginarg, float endarg)
        else
                e.superweapons_finished += time;
 
-       if not(e.weapons & W_WeaponBit(e.switchweapon))
+       if not(WEPSET_CONTAINS_EW(e, e.switchweapon))
                _switchweapon = TRUE;
        if(_switchweapon)
                W_SwitchWeapon_Force(e, w_getbestweapon(e));
 
        return got;
 }
+#endif
index cce0aab32bb5f062ca66a853f2a7996dfafef5c4..eef4d28b8c67d644b9e3fc51b5efda64dda6febe 100644 (file)
@@ -286,7 +286,7 @@ void trigger_push_findtarget()
                else if(n == 1)
                {
                        // exactly one dest - bots love that
-                       self.enemy = find(e, targetname, self.target);
+                       self.enemy = find(world, targetname, self.target);
                }
                else
                {
index 6ca7aee30428ba864403a079e62c7154707e0041..8d81ca263d60f04ff8df54a6535876d64e0e6e33 100644 (file)
@@ -2075,7 +2075,7 @@ void conveyor_think()
 
        if(self.state)
        {
-               for(e = findradius((self.absmin + self.absmax) * 0.5, vlen(self.absmax - self.absmin) * 0.5); e; e = e.chain)
+               for(e = findradius((self.absmin + self.absmax) * 0.5, vlen(self.absmax - self.absmin) * 0.5 + 1); e; e = e.chain)
                        if(!e.conveyor.state)
                                if(isPushable(e))
                                {
index f415e1fd1d397ad2a632c78648054d70c1f3ffaa..82b5f4457a9b8c5aeea05b5e185085a72fb5160b 100644 (file)
@@ -22,9 +22,9 @@ void spawnfunc_ammo_lightning()      { spawnfunc_item_cells();          }
 void spawnfunc_weapon_plasmagun()    { spawnfunc_weapon_hagar();        }
 void spawnfunc_ammo_cells()          { spawnfunc_item_rockets();        }
 
-// Rail -> Rifle
-void spawnfunc_weapon_railgun()      { spawnfunc_weapon_rifle();  }
-void spawnfunc_ammo_slugs()          { spawnfunc_item_bullets();        }
+// Rail -> Nex
+void spawnfunc_weapon_railgun()      { spawnfunc_weapon_nex();          }
+void spawnfunc_ammo_slugs()          { spawnfunc_item_cells();          }
 
 // BFG -> Crylink
 void spawnfunc_weapon_bfg()          { spawnfunc_weapon_crylink();      }
index f0ce8fd142ec4027b10c524db8b97297a90a8968..db01a8f5887d76f1438bc357c5dddd05570ba389 100644 (file)
@@ -71,7 +71,6 @@ void dom_init();
 void ctf_init();
 void runematch_init();
 void tdm_init();
-void nb_init();
 void entcs_init();
 
 void LogTeamchange(float player_id, float team_number, float type)
@@ -257,13 +256,13 @@ void InitGameplayMode()
 
        if(g_nexball)
        {
-               fraglimit_override = autocvar_g_nexball_goallimit;
-               leadlimit_override = autocvar_g_nexball_goalleadlimit;
-               ActivateTeamplay();
-               nb_init();
-               have_team_spawns = -1; // request team spawns
+        fraglimit_override = autocvar_g_nexball_goallimit;
+        leadlimit_override = autocvar_g_nexball_goalleadlimit;
+        ActivateTeamplay();
+        have_team_spawns = -1; // request team spawns
+           MUTATOR_ADD(gamemode_nexball);
        }
-
+        
        if(g_keepaway)
        {
                MUTATOR_ADD(gamemode_keepaway);
@@ -463,6 +462,7 @@ void CheckAllowedTeams (entity for_whom)
        c1 = c2 = c3 = c4 = -1;
        cb1 = cb2 = cb3 = cb4 = 0;
 
+       teament_name = string_null;
        if(g_onslaught)
        {
                // onslaught is special
@@ -905,7 +905,7 @@ void SV_ChangeTeam(float _color)
                        scount = c2;
                else if(steam == 3)//scolor == COLOR_TEAM3 - 1)
                        scount = c3;
-               else if(steam == 4)//scolor == COLOR_TEAM4 - 1)
+               else // if(steam == 4)//scolor == COLOR_TEAM4 - 1)
                        scount = c4;
 
                if(scount) // started at a valid, nonempty team
@@ -980,7 +980,7 @@ void ShufflePlayerOutOfTeam (float source_team)
                steam = COLOR_TEAM2;
        else if(source_team == 3)
                steam = COLOR_TEAM3;
-       else if(source_team == 4)
+       else // if(source_team == 4)
                steam = COLOR_TEAM4;
 
        lowest_bot = world;
index 7247a3a3476816e6c116019903975c4e48365661..c8bbf537c336ba548310dc896b9680ac41e21f20 100644 (file)
@@ -726,7 +726,7 @@ entity turret_select_target()
         m_score = self.turret_score_target(self,e_enemy) * self.target_select_samebias;
     }
     else
-        self.enemy = world;
+        e_enemy = self.enemy = world;
 
     e = findradius(self.origin, self.target_range);
 
index 1c0a3bad5269ef4552a0b71686b6a8c0d44c6599..5a94b442343832f8ebceef28639d72cd9e277ae0 100644 (file)
@@ -60,7 +60,7 @@ vector shortangle_vxy(vector ang1, vector ang2)
 vector real_origin(entity ent)
 {
     entity e;
-    vector v;
+    vector v = ((ent.absmin + ent.absmax) * 0.5);
 
     e = ent.tag_entity;
     while(e)
@@ -68,7 +68,7 @@ vector real_origin(entity ent)
         v = v + ((e.absmin + e.absmax) * 0.5);
         e = e.tag_entity;
     }
-    v = v + ((ent.absmin + ent.absmax) * 0.5);
+
     return v;
 }
 
index d61289dcbe62e50a458c92f482c30cd5ba0ec0de..aa80e0d6b93a985a996a151f75d2eca69652bff3 100644 (file)
@@ -108,6 +108,8 @@ void turret_hk_missile_think()
     }
     else
     {
+       edist = 0;
+       ve = '0 0 0';
         fe = 0;
     }
 
index 6c2cce6a73341ad4d3b80fcd25a19233b269b688..85fb8bb18205bb367dd194b7e800ea9499d1c554 100644 (file)
@@ -5,7 +5,7 @@ void turret_tesla_fire();
 entity toast(entity from, float range, float damage)
 {
     entity e;
-    entity etarget;
+    entity etarget = world;
     float d,dd;
     float r;
 
index 777820e48c261c26f18cc8c9b093b42abfa71a85..c6523e4b83dcd671668bc6afa50db571afb804e7 100644 (file)
@@ -58,6 +58,7 @@ float autocvar_g_vehicle_racer_rocket_locking_time;
 float autocvar_g_vehicle_racer_rocket_locking_releasetime;
 float autocvar_g_vehicle_racer_rocket_locked_time;
 float autocvar_g_vehicle_racer_rocket_locked_maxangle;
+float autocvar_g_vehicle_racer_rocket_climbspeed;
 
 float autocvar_g_vehicle_racer_respawntime;
 
@@ -72,36 +73,32 @@ vector autocvar_g_vehicle_racer_bouncepain;
 
 var vector racer_force_from_tag(string tag_name, float spring_length, float max_power);
 
-void racer_align4point()
+void racer_align4point(float _delta)
 {
-    vector push_vector, v_add;
+    vector push_vector;
     float fl_push, fr_push, bl_push, br_push;
 
-
     push_vector  = racer_force_from_tag("tag_engine_fr", autocvar_g_vehicle_racer_springlength, autocvar_g_vehicle_racer_hoverpower);
     fr_push      = force_fromtag_normpower;
-    //vehicles_sweap_collision(force_fromtag_origin, self.velocity, frametime, v_add, autocvar_g_vehicle_racer_collision_multiplier);
+    //vehicles_sweap_collision(force_fromtag_origin, self.velocity, _delta, v_add, autocvar_g_vehicle_racer_collision_multiplier);
 
     push_vector += racer_force_from_tag("tag_engine_fl", autocvar_g_vehicle_racer_springlength, autocvar_g_vehicle_racer_hoverpower);
     fl_push      = force_fromtag_normpower;
-    //vehicles_sweap_collision(force_fromtag_origin, self.velocity, frametime, v_add, autocvar_g_vehicle_racer_collision_multiplier);
+    //vehicles_sweap_collision(force_fromtag_origin, self.velocity, _delta, v_add, autocvar_g_vehicle_racer_collision_multiplier);
 
     push_vector += racer_force_from_tag("tag_engine_br", autocvar_g_vehicle_racer_springlength, autocvar_g_vehicle_racer_hoverpower);
     br_push      = force_fromtag_normpower;
-    //vehicles_sweap_collision(force_fromtag_origin, self.velocity, frametime, v_add, autocvar_g_vehicle_racer_collision_multiplier);
+    //vehicles_sweap_collision(force_fromtag_origin, self.velocity, _delta, v_add, autocvar_g_vehicle_racer_collision_multiplier);
 
     push_vector += racer_force_from_tag("tag_engine_bl", autocvar_g_vehicle_racer_springlength, autocvar_g_vehicle_racer_hoverpower);
     bl_push      = force_fromtag_normpower;
-    //vehicles_sweap_collision(force_fromtag_origin, self.velocity, frametime, v_add, autocvar_g_vehicle_racer_collision_multiplier);
+    //vehicles_sweap_collision(force_fromtag_origin, self.velocity, _delta, v_add, autocvar_g_vehicle_racer_collision_multiplier);
 
-    self.velocity += (push_vector * frametime);
+   self.velocity += push_vector * _delta;
 
     // Anti ocilation
-    if(self.velocity_z  > 0)
-        self.velocity_z *= 1 - (autocvar_g_vehicle_racer_upforcedamper * frametime);
-
-    self.velocity   += v_add;
-    //self.velocity_z -= autocvar_sv_gravity * frametime;
+    if(self.velocity_z > 0)
+        self.velocity_z *= 1 - autocvar_g_vehicle_racer_upforcedamper * _delta;
 
     push_vector_x =  (fl_push - bl_push);
     push_vector_x += (fr_push - br_push);
@@ -112,12 +109,12 @@ void racer_align4point()
     push_vector_z *= 360;
 
     // Apply angle diffrance
-    self.angles_z += push_vector_z * frametime;
-    self.angles_x += push_vector_x * frametime;
+    self.angles_z += push_vector_z * _delta;
+    self.angles_x += push_vector_x * _delta;
 
     // Apply stabilizer
-    self.angles_x *= 1 - (autocvar_g_vehicle_racer_anglestabilizer * frametime);
-    self.angles_z *= 1 - (autocvar_g_vehicle_racer_anglestabilizer * frametime);
+    self.angles_x *= 1 - (autocvar_g_vehicle_racer_anglestabilizer * _delta);
+    self.angles_z *= 1 - (autocvar_g_vehicle_racer_anglestabilizer * _delta);
 }
 
 void racer_fire_cannon(string tagname)
@@ -209,8 +206,14 @@ void racer_rocket_tracker()
     newvel = oldvel + self.lip;
     makevectors(vectoangles(olddir));
 
+       float time_to_impact = min(vlen(self.enemy.origin - self.origin) / vlen(self.velocity), 1);
+       vector predicted_origin = self.enemy.origin + self.enemy.velocity * time_to_impact;
+
     traceline(self.origin, self.origin + v_forward * 64 - '0 0 32', MOVE_NORMAL, self);
-    newdir = normalize(self.enemy.origin - self.origin);
+    newdir = normalize(predicted_origin - self.origin);
+
+    //vector
+       float height_diff = predicted_origin_z - self.origin_z;
 
     if(vlen(newdir - v_forward) > autocvar_g_vehicle_racer_rocket_locked_maxangle)
     {
@@ -220,11 +223,12 @@ void racer_rocket_tracker()
         return;
     }
 
-    if(trace_fraction != 1.0)
+    if(trace_fraction != 1.0 && trace_ent != self.enemy)
         newdir_z += 16 * sys_frametime;
 
     self.velocity = normalize(olddir + newdir * autocvar_g_vehicle_racer_rocket_turnrate) * newvel;
     self.velocity_z -= 800 * sys_frametime;
+    self.velocity_z += max(height_diff, autocvar_g_vehicle_racer_rocket_climbspeed) * sys_frametime ;
 
     UpdateCSQCProjectile(self);
     return;
@@ -232,11 +236,8 @@ void racer_rocket_tracker()
 
 void racer_fire_rocket(string tagname, entity trg)
 {
-    vector v;
-    entity rocket;
-
-    v = gettaginfo(self, gettagindex(self, tagname));
-    rocket = vehicles_projectile("wakizashi_rocket_launch", "weapons/rocket_fire.wav",
+    vector v = gettaginfo(self, gettagindex(self, tagname));
+    entity rocket = rocket = vehicles_projectile("wakizashi_rocket_launch", "weapons/rocket_fire.wav",
                            v, v_forward * autocvar_g_vehicle_racer_rocket_speed,
                            autocvar_g_vehicle_racer_rocket_damage, autocvar_g_vehicle_racer_rocket_radius, autocvar_g_vehicle_racer_rocket_force, 3,
                            DEATH_WAKIROCKET, PROJECTILE_WAKIROCKET, 20, FALSE, FALSE);
@@ -265,11 +266,11 @@ float racer_frame()
     player  = self;
     racer   = self.vehicle;
     self    = racer;
-    
+
     player.BUTTON_ZOOM = player.BUTTON_CROUCH = 0;
-    
+
     vehicles_painframe();
-    
+
     if(racer.deadflag != DEAD_NO)
     {
         self = player;
@@ -277,7 +278,7 @@ float racer_frame()
         return 1;
     }
 
-    racer_align4point();
+    racer_align4point(frametime);
 
     crosshair_trace(player);
 
@@ -299,84 +300,68 @@ float racer_frame()
     makevectors(racer.angles);
     racer.angles_x *= -1;
 
-
-    ftmp = racer.velocity_z;
+    //ftmp = racer.velocity_z;
     df = racer.velocity * -autocvar_g_vehicle_racer_friction;
-    racer.velocity_z = ftmp;
+    //racer.velocity_z = ftmp;
 
-    if(player.movement_x != 0)
-    {
-        if(player.movement_x > 0)
-            df += v_forward  * autocvar_g_vehicle_racer_speed_forward;
-        else if(player.movement_x < 0)
-            df -= v_forward  * autocvar_g_vehicle_racer_speed_forward;
-    }
-
-    if(player.movement_y != 0)
-    {
-        if(player.movement_y < 0)
-            df -= v_right * autocvar_g_vehicle_racer_speed_strafe;
-        else if(player.movement_y > 0)
-            df += v_right * autocvar_g_vehicle_racer_speed_strafe;
-    }
-    
     if(vlen(player.movement) != 0)
     {
+        if(player.movement_x)
+            df += v_forward * ((player.movement_x > 0) ? autocvar_g_vehicle_racer_speed_forward : -autocvar_g_vehicle_racer_speed_forward);
+
+        if(player.movement_y)
+            df += v_right * ((player.movement_y > 0) ? autocvar_g_vehicle_racer_speed_strafe : -autocvar_g_vehicle_racer_speed_strafe);
+
         if(self.sound_nexttime < time || self.sounds != 1)
-        {        
+        {
             self.sounds = 1;
             self.sound_nexttime = time + 10.922667; //soundlength("vehicles/racer_move.wav");
             sound (self, CH_TRIGGER_SINGLE, "vehicles/racer_move.wav", VOL_VEHICLEENGINE, ATTN_NORM);
         }
     }
     else
-    {        
+    {
         if(self.sound_nexttime < time || self.sounds != 0)
-        {        
+        {
             self.sounds = 0;
             self.sound_nexttime = time + 11.888604; //soundlength("vehicles/racer_idle.wav");
             sound (self, CH_TRIGGER_SINGLE, "vehicles/racer_idle.wav", VOL_VEHICLEENGINE, ATTN_NORM);
-        }        
+        }
     }
-    
+
     // Afterburn
     if (player.BUTTON_JUMP && racer.vehicle_energy >= (autocvar_g_vehicle_racer_afterburn_cost * frametime))
     {
         if(time - racer.wait > 0.2)
-            pointparticles(particleeffectnum("wakizashi_booster_smoke"), self.origin, '0 0 0', 1);            
-        
+            pointparticles(particleeffectnum("wakizashi_booster_smoke"), self.origin, '0 0 0', 1);
+
         racer.wait = time;
         racer.vehicle_energy -= autocvar_g_vehicle_racer_afterburn_cost * frametime;
         df += (v_forward * autocvar_g_vehicle_racer_speed_afterburn);
-        
-        if(self.invincible_finished < time)
-        {            
-            traceline(self.origin, self.origin - '0 0 256', MOVE_NORMAL, self);
+
+        if(racer.invincible_finished < time)
+        {
+            traceline(racer.origin, racer.origin - '0 0 256', MOVE_NORMAL, self);
             if(trace_fraction != 1.0)
                 pointparticles(particleeffectnum("smoke_small"), trace_endpos, '0 0 0', 1);
-            
-            self.invincible_finished = time + 0.1 + (random() * 0.1);
+
+            racer.invincible_finished = time + 0.1 + (random() * 0.1);
         }
 
-        if(self.strength_finished < time)
-        {        
-            //self.sounds = 2;
-            self.strength_finished = time + 10.922667; //soundlength("vehicles/racer_boost.wav");
-            sound (self.tur_head, CH_TRIGGER_SINGLE, "vehicles/racer_boost.wav", VOL_VEHICLEENGINE, ATTN_NORM);            
-        }        
+        if(racer.strength_finished < time)
+        {
+            racer.strength_finished = time + 10.922667; //soundlength("vehicles/racer_boost.wav");
+            sound (racer.tur_head, CH_TRIGGER_SINGLE, "vehicles/racer_boost.wav", VOL_VEHICLEENGINE, ATTN_NORM);
+        }
     }
     else
     {
-        self.strength_finished = 0;
-        sound (self.tur_head, CH_TRIGGER_SINGLE, "misc/null.wav", VOL_VEHICLEENGINE, ATTN_NORM);
+        racer.strength_finished = 0;
+        sound (racer.tur_head, CH_TRIGGER_SINGLE, "misc/null.wav", VOL_VEHICLEENGINE, ATTN_NORM);
     }
-        
 
-    racer.velocity  += df * frametime;
-
-    df = (vlen(racer.velocity) * autocvar_g_vehicle_racer_downforce * v_up) * frametime;
-    racer.velocity  = racer.velocity - df;
-    player.movement = racer.velocity;
+       df -= v_up * (vlen(racer.velocity) * autocvar_g_vehicle_racer_downforce);
+    player.movement = racer.velocity += df * frametime;
 
     if(player.BUTTON_ATCK)
     if(time > racer.attack_finished_single)
@@ -397,7 +382,6 @@ float racer_frame()
             racer.cnt = 1;
         }
         racer.attack_finished_single = time + autocvar_g_vehicle_racer_cannon_refire;
-        //self.owner.vehicle_energy = racer.vehicle_energy / autocvar_g_vehicle_racer_energy;
     }
 
     if(autocvar_g_vehicle_racer_rocket_locktarget)
@@ -420,16 +404,17 @@ float racer_frame()
     if(time > racer.delay)
     if(player.BUTTON_ATCK2)
     {
-        self.misc_bulletcounter += 1;
+        racer.misc_bulletcounter += 1;
         racer.delay = time + 0.3;
-        if(self.misc_bulletcounter == 1)
-            racer_fire_rocket("tag_rocket_r", (self.lock_strength == 1 && self.lock_target) ? self.lock_target : world);
-        else if(self.misc_bulletcounter == 2)
+
+        if(racer.misc_bulletcounter == 1)
+            racer_fire_rocket("tag_rocket_r", (racer.lock_strength == 1 && racer.lock_target) ? racer.lock_target : world);
+        else if(racer.misc_bulletcounter == 2)
         {
-            racer_fire_rocket("tag_rocket_l", (self.lock_strength == 1 && self.lock_target) ? self.lock_target : world);
-            self.lock_strength  = 0;
-            self.lock_target    = world;
-            self.misc_bulletcounter = 0;
+            racer_fire_rocket("tag_rocket_l", (racer.lock_strength == 1 && racer.lock_target) ? racer.lock_target : world);
+            racer.lock_strength  = 0;
+            racer.lock_target    = world;
+            racer.misc_bulletcounter = 0;
 
             racer.delay = time + autocvar_g_vehicle_racer_rocket_refire;
             racer.lip = time;
@@ -437,23 +422,22 @@ float racer_frame()
     }
     player.vehicle_reload1 = bound(0, 100 * ((time - racer.lip) / (racer.delay - racer.lip)), 100);
 
-    if(self.vehicle_flags  & VHF_SHIELDREGEN)
+    if(racer.vehicle_flags  & VHF_SHIELDREGEN)
         vehicles_regen(dmg_time, vehicle_shield, autocvar_g_vehicle_racer_shield, autocvar_g_vehicle_racer_shield_regen_pause, autocvar_g_vehicle_racer_shield_regen, frametime);
 
-    if(self.vehicle_flags  & VHF_HEALTHREGEN)
+    if(racer.vehicle_flags  & VHF_HEALTHREGEN)
         vehicles_regen(dmg_time, vehicle_health, autocvar_g_vehicle_racer_health, autocvar_g_vehicle_racer_health_regen_pause, autocvar_g_vehicle_racer_health_regen, frametime);
 
-    if(self.vehicle_flags  & VHF_ENERGYREGEN)
+    if(racer.vehicle_flags  & VHF_ENERGYREGEN)
         vehicles_regen(wait, vehicle_energy, autocvar_g_vehicle_racer_energy, autocvar_g_vehicle_racer_energy_regen_pause, autocvar_g_vehicle_racer_energy_regen, frametime);
 
 
     VEHICLE_UPDATE_PLAYER(health, racer);
     VEHICLE_UPDATE_PLAYER(energy, racer);
 
-    if(self.vehicle_flags & VHF_HASSHIELD)
+    if(racer.vehicle_flags & VHF_HASSHIELD)
         VEHICLE_UPDATE_PLAYER(shield, racer);
 
-
     player.BUTTON_ATCK = player.BUTTON_ATCK2 = 0;
     setorigin(player,racer.origin + '0 0 32');
     player.velocity = racer.velocity;
@@ -464,32 +448,24 @@ float racer_frame()
 
 void racer_think()
 {
-    /*
-    float a, b, c;a = autocvar_g_vehicle_racer_anglestabilizer;
-    b = autocvar_g_vehicle_racer_springlength;
-    c = autocvar_g_vehicle_racer_hoverpower;
-
-    autocvar_g_vehicle_racer_anglestabilizer = 36;
-    autocvar_g_vehicle_racer_springlength = 96;
-    autocvar_g_vehicle_racer_hoverpower = 300;
-    */
-
-    racer_align4point(); //time - self.nextthink);
-
-    /*
-    //if(self.velocity_z > 0)
-    //    self.velocity_z *= 0.95;
-
-    autocvar_g_vehicle_racer_anglestabilizer = a;
-    autocvar_g_vehicle_racer_springlength = b;
-    autocvar_g_vehicle_racer_hoverpower = c;
-    */
-
-    self.velocity_x *= 0.9;
-    self.velocity_y *= 0.9;
-    self.velocity_z *= 0.8;
-    self.velocity_z += sin(time * 2) * 16;
-    self.nextthink = time; // + 0.05;
+    self.nextthink = time;
+
+    float pushdeltatime = time - self.lastpushtime;
+    if (pushdeltatime > 0.15) pushdeltatime = 0;
+    self.lastpushtime = time;
+    if(!pushdeltatime) return;
+
+    tracebox(self.origin, self.mins, self.maxs, self.origin - ('0 0 1' * autocvar_g_vehicle_racer_springlength), MOVE_NORMAL, self);
+
+    vector df = self.velocity * -autocvar_g_vehicle_racer_friction;
+       df_z += (1 - trace_fraction) * autocvar_g_vehicle_racer_hoverpower + sin(time * 2) * (autocvar_g_vehicle_racer_springlength * 2);
+
+       self.velocity += df * pushdeltatime;
+    if(self.velocity_z > 0)
+        self.velocity_z *= 1 - autocvar_g_vehicle_racer_upforcedamper * pushdeltatime;
+
+    self.angles_x *= 1 - (autocvar_g_vehicle_racer_anglestabilizer * pushdeltatime);
+    self.angles_z *= 1 - (autocvar_g_vehicle_racer_anglestabilizer * pushdeltatime);
 }
 
 void racer_enter()
@@ -497,20 +473,22 @@ void racer_enter()
     self.movetype = MOVETYPE_BOUNCE;
     self.owner.vehicle_health = (self.vehicle_health / autocvar_g_vehicle_racer_health)  * 100;
     self.owner.vehicle_shield = (self.vehicle_shield / autocvar_g_vehicle_racer_shield)  * 100;
-    
+
     if(self.owner.flagcarried)
        setorigin(self.owner.flagcarried, '-190 0 96');
+
+       //targetdrone_spawn(self.origin + '0 0 512' + randomvec() * 256, 1);
 }
 
 void racer_exit(float eject)
 {
     vector spot;
-    
+
     self.think      = racer_think;
     self.nextthink  = time;
-    self.movetype   = MOVETYPE_TOSS;
+    self.movetype   = MOVETYPE_BOUNCE;
     sound (self.tur_head, CH_TRIGGER_SINGLE, "misc/null.wav", VOL_VEHICLEENGINE, ATTN_NORM);
-    
+
     if not (self.owner)
         return;
 
@@ -525,15 +503,27 @@ void racer_exit(float eject)
        }
        else
        {
-           self.owner.velocity = normalize(self.velocity) * autocvar_sv_maxairspeed;
+               if(vlen(self.velocity) > 2 * autocvar_sv_maxairspeed)
+               {
+                       self.owner.velocity = normalize(self.velocity) * autocvar_sv_maxairspeed * 2;
+                       self.owner.velocity_z += 200;
+                       spot = self.origin + v_forward * 32 + '0 0 32';
+                       spot = vehicles_findgoodexit(spot);
+               }
+               else
+               {
+                       self.owner.velocity = self.velocity * 0.5;
+                       self.owner.velocity_z += 10;
+                       spot = self.origin - v_forward * 200 + '0 0 32';
+                       spot = vehicles_findgoodexit(spot);
+               }
            self.owner.oldvelocity = self.owner.velocity;
-           spot = self.origin - v_forward * 200 + '0 0 64';
-           spot = vehicles_findgoodexit(spot);
            setorigin(self.owner , spot);
        }
        antilag_clear(self.owner);
     self.owner = world;
 }
+
 void racer_impact()
 {
     if(autocvar_g_vehicle_racer_bouncepain_x)
@@ -554,7 +544,7 @@ void racer_spawn()
 
     setsize(self, RACER_MIN * 0.5, RACER_MAX * 0.5);
     self.bouncefactor = autocvar_g_vehicle_racer_bouncefactor;
-    self.bouncestop = autocvar_g_vehicle_racer_bouncestop;    
+    self.bouncestop = autocvar_g_vehicle_racer_bouncestop;
     self.vehicle_impact = racer_impact;
     //self.destvec = autocvar_g_vehicle_racer_bouncepain;
 }
@@ -604,8 +594,8 @@ void racer_die()
     self.wait         = time;
     self.cnt          = 1 + random() * 2;
     self.touch        = racer_deadtouch;
-    
-    pointparticles(particleeffectnum("explosion_medium"), self.origin, '0 0 0', 1);    
+
+    pointparticles(particleeffectnum("explosion_medium"), self.origin, '0 0 0', 1);
 
     if(random() < 0.5)
         self.avelocity_z  = 32;
@@ -661,7 +651,7 @@ void spawnfunc_vehicle_racer()
 
     precache_sound ("weapons/lasergun_fire.wav");
     precache_sound ("weapons/rocket_fire.wav");
-    
+
     precache_sound ("vehicles/racer_idle.wav");
     precache_sound ("vehicles/racer_move.wav");
     precache_sound ("vehicles/racer_boost.wav");
@@ -685,7 +675,7 @@ void spawnfunc_vehicle_racer()
         self.vehicle_flags |= VHF_HEALTHREGEN;
 
     self.think = racer_dinit;
-    
+
     if(g_assault)
         self.nextthink = time + 0.5;
     else
index ab0d388155bf7ca8d17c674d31507770656533e4..ad5252dfd868c83a4805d1e75fe2b05c4a25eec8 100644 (file)
@@ -311,7 +311,7 @@ float raptor_takeoff()
 float raptor_frame()
 {
     entity player, raptor;
-    float ftmp, ftmp2;
+    float ftmp = 0, ftmp2;
     vector df;
     
        if(intermission_running)
index 20c74d3a17e24deb0012882c634c9d527d4747d0..bfd13a0e7d52941c5494b2104d160b9d20126c73 100644 (file)
@@ -84,9 +84,9 @@ void SendAuxiliaryXhair2(entity own, vector loc, vector clr, float axh_id)
 // End AuxiliaryXhair
 
 /**
-    Notifies the client that he enterd a vehicle, and sends 
+    Notifies the client that he enterd a vehicle, and sends
     realavent data.
-    
+
     only sends vehicle_id atm (wich is a HUD_* constant, ex. HUD_SPIDERBOT)
 **/
 void CSQCVehicleSetup(entity own, float vehicle_id)
@@ -115,6 +115,118 @@ void CSQCVehicleSetup(entity own, float vehicle_id)
 .float  lock_strength;
 .float  lock_time;
 .float  lock_soundtime;
+float  DAMAGE_TARGETDRONE = 10;
+
+vector targetdrone_getnewspot()
+{
+
+       vector spot;
+       float i;
+       for(i = 0; i < 100; ++i)
+       {
+               spot = self.origin + randomvec() * 1024;
+               tracebox(spot, self.mins, self.maxs, spot, MOVE_NORMAL, self);
+               if(trace_fraction == 1.0 && trace_startsolid == 0 && trace_allsolid == 0)
+                       return spot;
+       }
+       return self.origin;
+}
+void targetdrone_think();
+void targetdrone_damage(entity inflictor, entity attacker, float damage, float deathtype, vector hitloc, vector force);
+void targetdrone_renwe()
+{
+       self.think = targetdrone_think;
+       self.nextthink = time + 0.1;
+       setorigin(self, targetdrone_getnewspot());
+       self.health = 200;
+       self.takedamage = DAMAGE_TARGETDRONE;
+       self.event_damage = targetdrone_damage;
+       self.solid = SOLID_BBOX;
+       setmodel(self, "models/runematch/rune.mdl");
+       self.effects = EF_LOWPRECISION;
+       self.scale = 10;
+       self.movetype = MOVETYPE_BOUNCEMISSILE;
+       setsize(self, '-100 -100 -100', '100 100 100');
+
+}
+void targetdrone_damage(entity inflictor, entity attacker, float damage, float deathtype, vector hitloc, vector force)
+{
+       self.health -= damage;
+       if(self.health <= 0)
+       {
+               pointparticles(particleeffectnum("explosion_medium"), self.origin, '0 0 0', 1);
+
+               if(!self.cnt)
+                       remove(self);
+               else
+               {
+                       self.think = targetdrone_renwe;
+                       self.nextthink = time + 1 + random() * 2;
+                       self.solid = SOLID_NOT;
+                       setmodel(self, "");
+               }
+       }
+}
+entity targetdrone_getfear()
+{
+       entity fear;
+       float i;
+
+       for(i = 64; i <= 1024; i += 64)
+       {
+               fear = findradius(self.origin, i);
+               while(fear)
+               {
+                       if(fear.bot_dodge)
+                               return fear;
+
+                       fear = fear.chain;
+               }
+       }
+
+       return world;
+}
+void targetdrone_think()
+{
+       self.nextthink = time + 0.1;
+
+       if(self.enemy)
+       if(self.enemy.deadflag != DEAD_NO)
+               self.enemy = targetdrone_getfear();
+
+       if(!self.enemy)
+               self.enemy = targetdrone_getfear();
+
+       vector newdir;
+
+       if(self.enemy)
+               newdir = steerlib_push(self.enemy.origin) + randomvec() * 0.75;
+       else
+               newdir = randomvec() * 0.75;
+
+       newdir = newdir * 0.5 + normalize(self.velocity) * 0.5;
+
+       if(self.enemy)
+               self.velocity = normalize(newdir) * (500 + (1024 / min(vlen(self.enemy.origin - self.origin), 1024)) * 700);
+       else
+               self.velocity = normalize(newdir) * 750;
+
+       tracebox(self.origin, self.mins, self.maxs, self.origin + self.velocity * 2, MOVE_NORMAL, self);
+       if(trace_fraction != 1.0)
+               self.velocity = self.velocity * -1;
+
+       //normalize((normalize(self.velocity) * 0.5 + newdir * 0.5)) * 750;
+}
+
+void targetdrone_spawn(vector _where, float _autorenew)
+{
+       entity drone = spawn();
+       setorigin(drone, _where);
+       drone.think = targetdrone_renwe;
+       drone.nextthink = time + 0.1;
+       drone.cnt = _autorenew;
+}
+
 void vehicles_locktarget(float incr, float decr, float _lock_time)
 {
     if(self.lock_target && self.lock_target.deadflag != DEAD_NO)
@@ -132,7 +244,7 @@ void vehicles_locktarget(float incr, float decr, float _lock_time)
             self.lock_soundtime = time + 0.5;
             play2(self.owner, "vehicles/locked.wav");
         }
-        
+
         return;
     }
 
@@ -144,28 +256,30 @@ void vehicles_locktarget(float incr, float decr, float _lock_time)
         if(trace_ent.deadflag != DEAD_NO)
             trace_ent = world;
 
-        if not (trace_ent.vehicle_flags & VHF_ISVEHICLE || trace_ent.turrcaps_flags & TFL_TURRCAPS_ISTURRET)
+        if not (trace_ent.vehicle_flags & VHF_ISVEHICLE ||
+                               trace_ent.turrcaps_flags & TFL_TURRCAPS_ISTURRET ||
+                               trace_ent.takedamage == DAMAGE_TARGETDRONE)
             trace_ent = world;
     }
 
     if(self.lock_target == world && trace_ent != world)
         self.lock_target = trace_ent;
-    
-    if(self.lock_target && trace_ent == self.lock_target) 
-    {            
+
+    if(self.lock_target && trace_ent == self.lock_target)
+    {
         if(self.lock_strength != 1 && self.lock_strength + incr >= 1)
         {
             play2(self.owner, "vehicles/lock.wav");
             self.lock_soundtime = time + 0.8;
-        }        
+        }
         else if (self.lock_strength != 1 && self.lock_soundtime < time)
-        {            
+        {
             play2(self.owner, "vehicles/locking.wav");
             self.lock_soundtime = time + 0.3;
         }
-        
-    }    
-        
+
+    }
+
     // Have a locking target
     // Trace hit current target
     if(trace_ent == self.lock_target && trace_ent != world)
@@ -237,8 +351,8 @@ void vehicles_projectile_damage(entity inflictor, entity attacker, float damage,
 {
     // Ignore damage from oterh projectiles from my owner (dont mess up volly's)
     if(inflictor.owner == self.owner)
-        return; 
-    
+        return;
+
     self.health -= damage;
     self.velocity += force;
     if(self.health < 1)
@@ -377,21 +491,21 @@ float vehicles_crushable(entity e)
 }
 
 void vehilces_impact(float _minspeed, float _speedfac, float _maxpain)
-{    
+{
     if (trace_dphitq3surfaceflags & Q3SURFACEFLAG_NOIMPACT)
         return;
-    
+
     if(self.play_time < time)
-    {                    
+    {
         float wc = vlen(self.velocity - self.oldvelocity);
         //dprint("oldvel: ", vtos(self.oldvelocity), "\n");
         //dprint("vel: ", vtos(self.velocity), "\n");
         if(_minspeed < wc)
         {
-            float take = take = min(_speedfac * wc, _maxpain);
+            float take = min(_speedfac * wc, _maxpain);
             Damage (self, world, world, take, DEATH_FALL, self.origin, '0 0 0');
             self.play_time = time + 0.25;
-            
+
             //dprint("wc: ", ftos(wc), "\n");
             //dprint("take: ", ftos(take), "\n");
         }
@@ -409,14 +523,14 @@ void vehicles_touch()
         {
             if(vlen(self.velocity) != 0)
                 Damage(other, self, self.owner, autocvar_g_vehicles_crush_dmg, DEATH_VHCRUSH, '0 0 0', normalize(other.origin - self.origin) * autocvar_g_vehicles_crush_force);
-            
+
             return; // Dont do selfdamage when hitting "soft targets".
         }
-        
+
         if(self.play_time < time)
         if(self.vehicle_impact)
             self.vehicle_impact();
-        
+
         return;
     }
 
@@ -449,7 +563,7 @@ void vehicles_enter()
     if(self.team)
     if(self.team != other.team)
         return;
-        
+
     RemoveGrapplingHook(other);
 
     self.vehicle_ammo1   = 0;
@@ -519,19 +633,19 @@ void vehicles_enter()
     vehicles_clearrturn();
 
     CSQCVehicleSetup(self.owner, self.hud);
-    
+
     if(other.flagcarried)
     {
         if(!autocvar_g_vehicles_allow_flagcarry)
             DropFlag(other.flagcarried, world, world);
         else
-        {            
+        {
             other.flagcarried.scale = 1;
-            setattachment(other.flagcarried, self, ""); 
+            setattachment(other.flagcarried, self, "");
             setorigin(other, '0 0 96');
         }
     }
-    
+
     self.vehicle_enter();
     antilag_clear(other);
 }
@@ -545,17 +659,17 @@ vector vehicles_findgoodexit(vector prefer_spot)
 {
     //vector exitspot;
     float mysize;
-    
+
     tracebox(self.origin + '0 0 32', PL_MIN, PL_MAX, prefer_spot, MOVE_NORMAL, self.owner);
     if(trace_fraction == 1.0 && !trace_startsolid && !trace_allsolid)
         return prefer_spot;
-    
+
     mysize = vlen(self.maxs - self.mins);
     float i;
     vector v, v2;
     v2 = 0.5 * (self.absmin + self.absmax);
     for(i = 0; i < 100; ++i)
-    {        
+    {
         v = randomvec();
         v_z = 0;
         v = v2 + normalize(v) * mysize;
@@ -563,13 +677,13 @@ vector vehicles_findgoodexit(vector prefer_spot)
         if(trace_fraction == 1.0 && !trace_startsolid && !trace_allsolid)
             return v;
     }
-    
+
     /*
     exitspot = (self.origin + '0 0 48') + v_forward * mysize;
     tracebox(self.origin + '0 0 32', PL_MIN, PL_MAX, exitspot, MOVE_NORMAL, self.owner);
     if(trace_fraction == 1.0 && !trace_startsolid && !trace_allsolid)
         return exitspot;
-    
+
     exitspot = (self.origin + '0 0 48') - v_forward * mysize;
     tracebox(self.origin + '0 0 32', PL_MIN, PL_MAX, exitspot, MOVE_NORMAL, self.owner);
     if(trace_fraction == 1.0 && !trace_startsolid && !trace_allsolid)
@@ -579,13 +693,13 @@ vector vehicles_findgoodexit(vector prefer_spot)
     tracebox(self.origin + '0 0 32', PL_MIN, PL_MAX, exitspot, MOVE_NORMAL, self.owner);
     if(trace_fraction == 1.0 && !trace_startsolid && !trace_allsolid)
         return exitspot;
-    
+
     exitspot = (self.origin + '0 0 48') - v_right * mysize;
     tracebox(self.origin + '0 0 32', PL_MIN, PL_MAX, exitspot, MOVE_NORMAL, self.owner);
     if(trace_fraction == 1.0 && !trace_startsolid && !trace_allsolid)
         return exitspot;
     */
-    
+
     return self.origin;
 }
 
@@ -594,14 +708,14 @@ vector vehicles_findgoodexit(vector prefer_spot)
     custom code goes in self.vehicle_exit
 **/
 void vehicles_exit(float eject)
-{      
+{
     entity oldself;
     if(self.flags & FL_CLIENT)
     {
         oldself = self;
         self = self.vehicle;
     }
-    
+
        self.flags |= FL_NOTARGET;
 
     if (self.owner)
@@ -629,7 +743,7 @@ void vehicles_exit(float eject)
         self.owner.hud            = HUD_NORMAL;
         self.owner.switchweapon   = self.switchweapon;
         //self.owner.BUTTON_USE     = 0;
-        
+
         CSQCVehicleSetup(self.owner, HUD_NORMAL);
     }
 
@@ -646,19 +760,19 @@ void vehicles_exit(float eject)
         self.team = 0;
     else
         self.team = self.tur_head.team;
-    
+
     if(self.owner.flagcarried)
     {
         self.owner.flagcarried.scale = 0.6;
-        setattachment(self.owner.flagcarried, self.owner, ""); 
+        setattachment(self.owner.flagcarried, self.owner, "");
         setorigin(self.owner.flagcarried, FLAG_CARRY_POS);
     }
-    
+
     sound (self, CH_TRIGGER_SINGLE, "misc/null.wav", 1, ATTN_NORM);
     self.vehicle_exit(eject);
     self.owner = world;
     vehicles_reset_colors();
-    
+
     if(oldself)
         self = oldself;
 }
@@ -691,25 +805,25 @@ void shieldhit_think()
 }
 
 void vehicles_painframe()
-{    
+{
     if(self.owner.vehicle_health <= 50)
     if(self.pain_frame < time)
-    {  
-        float _ftmp;  
+    {
+        float _ftmp;
         _ftmp = self.owner.vehicle_health / 50;
         self.pain_frame = time + 0.1 + (random() * 0.5 * _ftmp);
         pointparticles(particleeffectnum("smoke_small"), (self.origin + (randomvec() * 80)), '0 0 0', 1);
-        
+
         if(self.vehicle_flags & VHF_DMGSHAKE)
             self.velocity += randomvec() * 30;
-        
+
         if(self.vehicle_flags & VHF_DMGROLL)
             if(self.vehicle_flags & VHF_DMGHEADROLL)
                 self.tur_head.angles += randomvec();
             else
                 self.angles += randomvec();
-        
-    }    
+
+    }
 }
 
 void vehicles_damage(entity inflictor, entity attacker, float damage, float deathtype, vector hitloc, vector force)
@@ -743,7 +857,7 @@ void vehicles_damage(entity inflictor, entity attacker, float damage, float deat
             self.vehicle_shieldent.colormod = '2 0 0';
             self.vehicle_shield             = 0;
             self.vehicle_shieldent.alpha    = 0.75;
-            
+
                if(sound_allowed(MSG_BROADCAST, attacker))
                 spamsound (self, CH_PAIN, "onslaught/ons_hit2.wav", VOL_BASE, ATTN_NORM);   // FIXME: PLACEHOLDER
         }
@@ -786,11 +900,11 @@ void vehicles_clearrturn()
         {
             ret.classname   = "";
             ret.think       = SUB_Remove;
-            ret.nextthink   = time + 0.1;            
-            
+            ret.nextthink   = time + 0.1;
+
             if(ret.waypointsprite_attached)
                 WaypointSprite_Kill(ret.waypointsprite_attached);
-            
+
             return;
         }
         ret = ret.chain;
@@ -806,7 +920,7 @@ void vehicles_return()
 
     if(self.waypointsprite_attached)
         WaypointSprite_Kill(self.waypointsprite_attached);
-            
+
     remove(self);
 }
 
@@ -814,50 +928,50 @@ void vehicles_showwp_goaway()
 {
     if(self.waypointsprite_attached)
         WaypointSprite_Kill(self.waypointsprite_attached);
-            
+
     remove(self);
-    
+
 }
 
 void vehicles_showwp()
 {
     entity oldself;
     vector rgb;
-    
+
     if(self.cnt)
-    {        
+    {
         self.think      = vehicles_return;
         self.nextthink  = self.cnt;
-    }    
+    }
     else
     {
         self.think      = vehicles_return;
         self.nextthink  = time +1;
-        
+
         oldself = self;
         self = spawn();
         setmodel(self, "null");
         self.team = oldself.enemy.team;
         self.enemy = oldself.enemy;
         setorigin(self, oldself.enemy.pos1);
-        
+
         self.nextthink = time + 5;
         self.think = vehicles_showwp_goaway;
     }
-    
+
     if(teamplay && self.team)
            rgb = TeamColor(self.team);
     else
            rgb = '1 1 1';
     WaypointSprite_Spawn("vehicle", 0, 0, self, '0 0 64', world, 0, self, waypointsprite_attached, TRUE, RADARICON_POWERUP, rgb);
     if(self.waypointsprite_attached)
-    {        
-        WaypointSprite_UpdateRule(self.waypointsprite_attached, self.enemy.team, SPRITERULE_DEFAULT);        
+    {
+        WaypointSprite_UpdateRule(self.waypointsprite_attached, self.enemy.team, SPRITERULE_DEFAULT);
         if(oldself == world)
-            WaypointSprite_UpdateBuildFinished(self.waypointsprite_attached, self.nextthink);        
+            WaypointSprite_UpdateBuildFinished(self.waypointsprite_attached, self.nextthink);
         WaypointSprite_Ping(self.waypointsprite_attached);
-    }    
-    
+    }
+
     if(oldself != world)
         self = oldself;
 }
@@ -865,28 +979,28 @@ void vehicles_showwp()
 void vehicles_setreturn()
 {
     entity ret;
-    
+
     vehicles_clearrturn();
 
     ret = spawn();
     ret.classname   = "vehicle_return";
-    ret.enemy       = self;    
+    ret.enemy       = self;
     ret.team        = self.team;
     ret.think       = vehicles_showwp;
-    
+
     if(self.deadflag != DEAD_NO)
     {
         ret.cnt         = time + self.vehicle_respawntime;
-        ret.nextthink   = min(time + self.vehicle_respawntime, time + self.vehicle_respawntime - 5);        
-    }        
+        ret.nextthink   = min(time + self.vehicle_respawntime, time + self.vehicle_respawntime - 5);
+    }
     else
     {
-        ret.nextthink   = min(time + self.vehicle_respawntime, time + self.vehicle_respawntime - 1);        
+        ret.nextthink   = min(time + self.vehicle_respawntime, time + self.vehicle_respawntime - 1);
     }
-    
+
     setmodel(ret, "null");
     setorigin(ret, self.pos1 + '0 0 96');
-       
+
 }
 
 void vehicles_configcheck(string  configname, float check_cvar)
@@ -984,9 +1098,9 @@ float vehicle_initialize(string  net_name,
 
     if(self.team && !teamplay)
         self.team = 0;
-        
+
     self.vehicle_flags |= VHF_ISVEHICLE;
-    
+
     setmodel(self, bodymodel);
 
     self.vehicle_viewport   = spawn();
@@ -1005,8 +1119,8 @@ float vehicle_initialize(string  net_name,
     self.PlayerPhysplug      = physproc;
     self.event_damage        = vehicles_damage;
     self.touch               = vehicles_touch;
-    self.think               = vehicles_spawn;    
-    self.nextthink           = time;        
+    self.think               = vehicles_spawn;
+    self.nextthink           = time;
     self.vehicle_respawntime = _respawntime;
     self.vehicle_spawn       = spawnproc;
 
@@ -1045,7 +1159,7 @@ float vehicle_initialize(string  net_name,
     self.pos1 = self.origin;
     self.pos2 = self.angles;
     self.tur_head.team = self.team;
-    
+
     return TRUE;
 }
 
index fab3b41b22808002cca28a5316f0664d65346d21..a2f23956eed6f4f3f7b0389d523e8062555fb2d1 100644 (file)
@@ -6,7 +6,7 @@ void W_GiveWeapon (entity e, float wep, string name)
        if (!wep)
                return;
 
-       e.weapons = e.weapons | W_WeaponBit(wep);
+       WEPSET_OR_EW(e, wep);
 
        oldself = self;
        self = e;
@@ -38,6 +38,8 @@ void FireRailgunBullet (vector start, vector end, float bdamage, float bforce, f
        entity pseudoprojectile;
        float f, ffs;
 
+       pseudoprojectile = world;
+
        railgun_start = start;
        railgun_end = end;
 
@@ -241,31 +243,58 @@ void W_BallisticBullet_LeaveSolid_think()
        UpdateCSQCProjectile(self);
 }
 
-float W_BallisticBullet_LeaveSolid(entity e, vector vel, float constant)
+float W_BallisticBullet_LeaveSolid(float eff)
 {
        // move the entity along its velocity until it's out of solid, then let it resume
-
+       vector vel = self.velocity;
        float dt, dst, velfactor, v0, vs;
        float maxdist;
        float E0_m, Es_m;
+       float constant = self.dmg_radius * (other.ballistics_density ? other.ballistics_density : 1);
 
        // outside the world? forget it
        if(self.origin_x > world.maxs_x || self.origin_y > world.maxs_y || self.origin_z > world.maxs_z || self.origin_x < world.mins_x || self.origin_y < world.mins_y || self.origin_z < world.mins_z)
                return 0;
 
+       // special case for zero density and zero bullet constant: 
+
+       if(self.dmg_radius == 0)
+       {
+               if(other.ballistics_density < 0)
+                       constant = 0; // infinite travel distance
+               else
+                       return 0; // no penetration
+       }
+       else
+       {
+               if(other.ballistics_density < 0)
+                       constant = 0; // infinite travel distance
+               else if(other.ballistics_density == 0)
+                       constant = self.dmg_radius;
+               else
+                       constant = self.dmg_radius * other.ballistics_density;
+       }
+
        // E(s) = E0 - constant * s, constant = area of bullet circle * material constant / mass
        v0 = vlen(vel);
 
        E0_m = 0.5 * v0 * v0;
-       maxdist = E0_m / constant;
-       // maxdist = 0.5 * v0 * v0 / constant
-       // dprint("max dist = ", ftos(maxdist), "\n");
 
-       if(maxdist <= autocvar_g_ballistics_mindistance)
-               return 0;
+       if(constant)
+       {
+               maxdist = E0_m / constant;
+               // maxdist = 0.5 * v0 * v0 / constant
+               // dprint("max dist = ", ftos(maxdist), "\n");
 
-       traceline_inverted (self.origin, self.origin + normalize(vel) * maxdist, MOVE_NORMAL, self);
+               if(maxdist <= autocvar_g_ballistics_mindistance)
+                       return 0;
+       }
+       else
+       {
+               maxdist = vlen(other.maxs - other.mins) + 1; // any distance, as long as we leave the entity
+       }
 
+       traceline_inverted (self.origin, self.origin + normalize(vel) * maxdist, MOVE_NORMAL, self, TRUE);
        if(trace_fraction == 1) // 1: we never got out of solid
                return 0;
 
@@ -298,6 +327,13 @@ float W_BallisticBullet_LeaveSolid(entity e, vector vel, float constant)
        self.flags |= FL_ONGROUND; // prevent moving
        self.W_BallisticBullet_LeaveSolid_velocity = vel;
 
+       if(eff >= 0)
+               if(vlen(trace_endpos - self.origin) > 4)
+               {
+                       endzcurveparticles();
+                       trailparticles(self, eff, self.origin, trace_endpos);
+               }
+
        return 1;
 }
 
@@ -311,6 +347,12 @@ void W_BallisticBullet_Touch (void)
        PROJECTILE_TOUCH;
        W_BallisticBullet_Hit ();
 
+       if(self.dmg_radius < 0) // these NEVER penetrate solid
+       {
+               remove(self);
+               return;
+       }
+
        // if we hit "weapclip", bail out
        //
        // rationale of this check:
@@ -331,12 +373,8 @@ void W_BallisticBullet_Touch (void)
                return;
        }
 
-       density = other.ballistics_density;
-       if(density == 0)
-               density = 1;
-
        // go through solid!
-       if(!W_BallisticBullet_LeaveSolid(self, self.velocity, self.dmg_radius * density))
+       if(!W_BallisticBullet_LeaveSolid(-1))
        {
                remove(self);
                return;
@@ -384,7 +422,12 @@ void fireBallisticBullet(vector start, vector dir, float spread, float pSpeed, f
        proj.nextthink = time + lifetime; // min(pLifetime, vlen(world.maxs - world.mins) / pSpeed);
        W_SetupProjectileVelocityEx(proj, dir, v_up, pSpeed, 0, 0, spread, antilagging);
        proj.angles = vectoangles(proj.velocity);
-       proj.dmg_radius = autocvar_g_ballistics_materialconstant / bulletconstant;
+       if(bulletconstant > 0)
+               proj.dmg_radius = autocvar_g_ballistics_materialconstant / bulletconstant;
+       else if(bulletconstant == 0)
+               proj.dmg_radius = 0;
+       else
+               proj.dmg_radius = -1;
        // so: bulletconstant = bullet mass / area of bullet circle
        setorigin(proj, start);
        proj.flags = FL_PROJECTILE;
@@ -468,6 +511,9 @@ void fireBallisticBullet(vector start, vector dir, float spread, float pSpeed, f
                                W_BallisticBullet_Hit();
                        }
 
+                       if(proj.dmg_radius < 0) // these NEVER penetrate solid
+                               break;
+
                        // if we hit "weapclip", bail out
                        //
                        // rationale of this check:
@@ -485,15 +531,13 @@ void fireBallisticBullet(vector start, vector dir, float spread, float pSpeed, f
                        if not(trace_dphitcontents & DPCONTENTS_OPAQUE)
                                break;
 
-                       density = other.ballistics_density;
-                       if(density == 0)
-                               density = 1;
-
                        // go through solid!
-                       if(!W_BallisticBullet_LeaveSolid(self, self.velocity, self.dmg_radius * density))
+                       if(!W_BallisticBullet_LeaveSolid((other && (other.solid != SOLID_BSP)) ? eff : -1))
                                break;
 
                        W_BallisticBullet_LeaveSolid_think();
+
+                       self.projectiledeathtype |= HITTYPE_BOUNCE;
                }
                frametime = savetime;
                self = oldself;
@@ -585,9 +629,13 @@ void W_PrepareExplosionByDamage(entity attacker, void() explode)
 {
        self.takedamage = DAMAGE_NO;
        self.event_damage = SUB_Null;
-       self.owner = attacker;
-       self.realowner = attacker;
-
+       
+       if((attacker.flags & FL_CLIENT) && !autocvar_g_projectiles_keep_owner)
+       {
+               self.owner = attacker;
+               self.realowner = attacker;
+       }
+       
        // do not explode NOW but in the NEXT FRAME!
        // because recursive calls to RadiusDamage are not allowed
        self.nextthink = time;
index 0b3118bb606cea52a6c5115e5bf437ea0a313b6e..e748987cb56a9d9a7f2441d32930a0da47ea6084 100644 (file)
@@ -133,6 +133,7 @@ vector W_Crylink_LinkJoin(entity e, float jspeed, float jtime)
                        p.velocity = WarpZone_RefSys_TransformVelocity(e, p, avg_velocity);
                        UpdateCSQCProjectile(p);
                }
+               targ_origin = avg_origin + 1000000000 * normalize(avg_velocity); // HUUUUUUGE
        }
        else
        {
@@ -335,8 +336,8 @@ void W_Crylink_Attack (void)
 
        shots = autocvar_g_balance_crylink_primary_shots;
        pointparticles(particleeffectnum("crylink_muzzleflash"), w_shotorg, w_shotdir * 1000, shots);
-       proj = world;
-       while (counter < shots)
+       proj = prevproj = firstproj = world;
+       for(counter = 0; counter < shots; ++counter)
        {
                proj = spawn ();
                proj.reset = W_Crylink_Reset;
@@ -412,8 +413,6 @@ void W_Crylink_Attack (void)
                CSQCProjectile(proj, TRUE, (proj.cnt ? PROJECTILE_CRYLINK_BOUNCING : PROJECTILE_CRYLINK), TRUE);
 
                other = proj; MUTATOR_CALLHOOK(EditProjectile);
-
-               counter = counter + 1;
        }
        if(autocvar_g_balance_crylink_primary_joinspread != 0 || autocvar_g_balance_crylink_primary_jointime != 0)
        {
@@ -440,8 +439,8 @@ void W_Crylink_Attack2 (void)
 
        shots = autocvar_g_balance_crylink_secondary_shots;
        pointparticles(particleeffectnum("crylink_muzzleflash"), w_shotorg, w_shotdir * 1000, shots);
-       proj = world;
-       while (counter < shots)
+       proj = prevproj = firstproj = world;
+       for(counter = 0; counter < shots; ++counter)
        {
                proj = spawn ();
                proj.reset = W_Crylink_Reset;
@@ -505,8 +504,6 @@ void W_Crylink_Attack2 (void)
                CSQCProjectile(proj, TRUE, (proj.cnt ? PROJECTILE_CRYLINK_BOUNCING : PROJECTILE_CRYLINK), TRUE);
 
                other = proj; MUTATOR_CALLHOOK(EditProjectile);
-
-               counter = counter + 1;
        }
        if(autocvar_g_balance_crylink_secondary_joinspread != 0 || autocvar_g_balance_crylink_secondary_jointime != 0)
        {
index 77c67b46bb9f96e548731ad022d702ae1f005fdd..1c950aca4a58ddc2b3e1eff4092008df91a086a7 100644 (file)
@@ -302,7 +302,7 @@ void spawnfunc_weapon_fireball (void)
 
 float w_fireball(float req)
 {
-       float ammo_amount;
+       //float ammo_amount;
        if (req == WR_AIM)
        {
                self.BUTTON_ATCK = FALSE;
index 76103f347e34fa50c6d16c849f6ee0dc0c15f2ac..f3a200f1ca230d9b016e07e2803cea15dbf5310e 100644 (file)
@@ -174,7 +174,7 @@ void W_Hagar_Attack2_Load_Release (void)
 
        shots = self.hagar_load;
        missile = world;
-       while (counter < shots)
+       for(counter = 0; counter < shots; ++counter)
        {
                missile = spawn ();
                missile.owner = missile.realowner = self;
@@ -223,8 +223,6 @@ void W_Hagar_Attack2_Load_Release (void)
                CSQCProjectile(missile, TRUE, PROJECTILE_HAGAR, TRUE);
 
                other = missile; MUTATOR_CALLHOOK(EditProjectile);
-
-               counter = counter + 1;
        }
 
        weapon_thinkf(WFRAME_FIRE2, autocvar_g_balance_hagar_secondary_load_animtime, w_ready);
index 2eb2918ed6c41a138683ff19df07ee427e8ebb8e..62be05f0dcf62a3a8b21bfef514715f9438ca39b 100644 (file)
@@ -1,5 +1,5 @@
 #ifdef REGISTER_WEAPON
-REGISTER_WEAPON(HLAC, w_hlac, IT_CELLS, 6, 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_MUTATORBLOCKED | WEP_FLAG_RELOADABLE | WEP_TYPE_SPLASH, BOT_PICKUP_RATING_MID, "hlac", "hlac", _("Heavy Laser Assault Cannon"))
 #else
 #ifdef SVQC
 
index 3ec50da50d633cc59679dd5087595726d1ab6f1b..5bf98d7524ab256e33d1a73938088ec887a2f38f 100644 (file)
@@ -1,5 +1,5 @@
 #ifdef REGISTER_WEAPON
-REGISTER_WEAPON(MINE_LAYER, w_minelayer, IT_ROCKETS, 4, 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_MUTATORBLOCKED | WEP_FLAG_RELOADABLE | WEP_TYPE_SPLASH, BOT_PICKUP_RATING_HIGH, "minelayer", "minelayer", _("Mine Layer"))
 #else
 #ifdef SVQC
 void W_Mine_Think (void);
@@ -149,7 +149,7 @@ void W_Mine_ProximityExplode ()
 
 float W_Mine_Count(entity e)
 {
-       float minecount;
+       float minecount = 0;
        entity mine;
        for(mine = world; (mine = find(mine, classname, "mine")); ) if(mine.realowner == e)
                minecount += 1;
@@ -325,12 +325,10 @@ void W_Mine_Attack (void)
        self.minelayer_mines = W_Mine_Count(self);
 }
 
-void spawnfunc_weapon_minelayer (void); // defined in t_items.qc
-
 float W_PlacedMines(float detonate)
 {
        entity mine;
-       float minfound;
+       float minfound = 0;
 
        for(mine = world; (mine = find(mine, classname, "mine")); ) if(mine.realowner == self)
        {
index b66386d50a59229309d6f1409648b895b3e93e68..1f1137e4b845b151321d1501c5dbdca9e325b2fd 100644 (file)
@@ -1,5 +1,5 @@
 #ifdef REGISTER_WEAPON
-REGISTER_WEAPON(MINSTANEX, w_minstanex, IT_CELLS, 7, WEP_FLAG_HIDDEN | WEP_FLAG_RELOADABLE | WEP_FLAG_CANCLIMB | WEP_FLAG_SUPERWEAPON | WEP_TYPE_HITSCAN, BOT_PICKUP_RATING_HIGH, "minstanex", "minstanex", _("MinstaNex"))
+REGISTER_WEAPON(MINSTANEX, w_minstanex, IT_CELLS, 7, WEP_FLAG_RELOADABLE | WEP_FLAG_CANCLIMB | WEP_FLAG_SUPERWEAPON | WEP_TYPE_HITSCAN, BOT_PICKUP_RATING_HIGH, "minstanex", "minstanex", _("MinstaNex"))
 #else
 #ifdef SVQC
 .float minstanex_lasthit;
@@ -15,7 +15,9 @@ void W_MinstaNex_Attack (void)
        yoda = 0;
        damage_goodhits = 0;
        headshot = 0;
+       damage_headshotbonus = -1; // no extra damage, just count
        FireRailgunBullet (w_shotorg, w_shotorg + w_shotdir * MAX_SHOT_DISTANCE, 10000, 800, 0, 0, 0, 0, WEP_MINSTANEX);
+       damage_headshotbonus = 0;
 
        if(g_minstagib)
        {
@@ -86,22 +88,25 @@ void W_MinstaNex_Attack (void)
 
 .float minstagib_nextthink;
 .float minstagib_needammo;
-void minstagib_stop_countdown(void)
+void minstagib_stop_countdown(entity e)
 {
-       if (self.minstagib_needammo)
-       {
-               self.health = 100;
-               Send_CSQC_Centerprint_Generic_Expire(self, CPID_MINSTA_FINDAMMO);
-       }
-       self.minstagib_needammo = FALSE;
+       if (!e.minstagib_needammo)
+               return;
+       Send_CSQC_Centerprint_Generic_Expire(e, CPID_MINSTA_FINDAMMO);
+       e.minstagib_needammo = FALSE;
 }
 void minstagib_ammocheck(void)
 {
        if (time < self.minstagib_nextthink)
                return;
 
-       if (self.deadflag || gameover || self.ammo_cells > 0 || (self.items & IT_UNLIMITED_WEAPON_AMMO))
-               minstagib_stop_countdown();
+       if (self.deadflag || gameover)
+               minstagib_stop_countdown(self);
+       else if (self.ammo_cells > 0 || (self.items & IT_UNLIMITED_WEAPON_AMMO))
+       {
+               minstagib_stop_countdown(self);
+               self.health = 100;
+       }
        else
        {
                self.minstagib_needammo = TRUE;
index c919c497e661f7a098eb44199efa7cdfdb6c6c26..3134a8bb3b66805ac2981732e10952a432a4478d 100644 (file)
@@ -36,7 +36,7 @@ void W_Porto_Fail (float failhard)
 
        self.realowner.porto_current = world;
 
-       if(self.cnt < 0 && !failhard && self.realowner.playerid == self.playerid && self.realowner.deadflag == DEAD_NO && !(self.realowner.weapons & WEPBIT_PORTO))
+       if(self.cnt < 0 && !failhard && self.realowner.playerid == self.playerid && self.realowner.deadflag == DEAD_NO && !WEPSET_CONTAINS_EW(self.realowner, WEP_PORTO))
        {
                setsize (self, '-16 -16 0', '16 16 32');
                setorigin(self, self.origin + trace_plane_normal);
@@ -202,12 +202,6 @@ void W_Porto_Attack (float type)
 {
        entity gren;
 
-       if(type == -1)
-       {
-               if not(self.items & IT_UNLIMITED_SUPERWEAPONS)
-                       self.weapons = self.weapons - (self.weapons & WEPBIT_PORTO);
-       }
-
        W_SetupShot (self, FALSE, 4, "porto/fire.wav", CH_WEAPON_A, 0);
        // always shoot from the eye
        w_shotdir = v_forward;
@@ -332,7 +326,6 @@ float w_porto(float req)
                                        ClientData_Touch(self);
                                }
                        }
-                       v_angle_save = self.v_angle;
                        if(self.porto_v_angle_held)
                                makevectors(self.porto_v_angle); // override the previously set angles
 
index 89cb37257d07966aad54751e8dce15d90af11666..1c5f766d7dbf2240ce03ee0bce3e149db4c48489 100644 (file)
@@ -1,5 +1,5 @@
 #ifdef REGISTER_WEAPON
-REGISTER_WEAPON(RIFLE, w_rifle, IT_NAILS, 7, WEP_FLAG_NORMAL | WEP_FLAG_RELOADABLE | WEP_TYPE_HITSCAN, BOT_PICKUP_RATING_MID, "campingrifle", "rifle", _("Rifle"))
+REGISTER_WEAPON(RIFLE, w_rifle, IT_NAILS, 7, WEP_FLAG_MUTATORBLOCKED | WEP_FLAG_NORMAL | WEP_FLAG_RELOADABLE | WEP_TYPE_HITSCAN, BOT_PICKUP_RATING_MID, "campingrifle", "rifle", _("Rifle"))
 #else
 #ifdef SVQC
 
index 7cf9f58d8ce8026a94aa1748754122add077aa86..f5a3e3b1678fe5e4092700003e838c0c7856e1e2 100644 (file)
@@ -1,5 +1,5 @@
 #ifdef REGISTER_WEAPON
-REGISTER_WEAPON(SEEKER, w_seeker, IT_ROCKETS, 8, 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_MUTATORBLOCKED | WEP_FLAG_RELOADABLE | WEP_TYPE_SPLASH, BOT_PICKUP_RATING_MID, "seeker", "seeker", _("T.A.G. Seeker"))
 #else
 #ifdef SVQC
 //.float proxytime; = autoswitch
@@ -78,6 +78,8 @@ void Seeker_Missile_Think()
                newdir = normalize(olddir + desireddir * turnrate); // take the average of the 2 directions; not the best method but simple & easy
                self.velocity = newdir * spd; // make me fly in the new direction at my flight speed
        }
+       else
+               dist = 0;
 
        // Proxy
        if (autocvar_g_balance_seeker_missile_proxy)
@@ -308,6 +310,7 @@ void Seeker_Attack()
 {
        entity tracker, closest_target;
        
+       closest_target = world;
        for(tracker = world; (tracker = find(tracker, classname, "tag_tracker")); ) if (tracker.realowner == self)
        {
                if (closest_target)
index a02061e8b80f741a27e419a786940dc157f9b1c3..f19a50208293073f1507fc4bf2beec258456fa13 100644 (file)
@@ -160,6 +160,7 @@ float Tuba_GetNote(entity pl, float hittype)
                case 2: note = -5; break; // G
                case 3: note = -4; break; // G#
                case 4: note = +5; break; // e#
+               default:
                case 5: note =  0; break; // c
                case 6: note = +2; break; // d
                case 7: note = +3; break; // eb
index a44b3797451b73453fcbe482546827c2d071d0e6..6f75612343c32504af52c437cf3186a08515c114 100644 (file)
@@ -1,11 +1,16 @@
 void WarpZone_Fade_PreDraw()
 {
-       if(self.warpzone_fadestart)
-       {
-               vector org;
-               org = getpropertyvec(VF_ORIGIN);
+       vector org;
+       org = getpropertyvec(VF_ORIGIN);
+       if(
+#ifdef COMPAT_XON060_DONTCRASH_CHECKPVS
+               cvar_string("g_xonoticversion") != "0.5.0" &&
+               cvar_string("g_xonoticversion") != "0.6.0" &&
+#endif
+               !checkpvs(org, self)) // this makes sense as long as we don't support recursive warpzones
+               self.alpha = 0;
+       else if(self.warpzone_fadestart)
                self.alpha = bound(0, (self.warpzone_fadeend - vlen(org - self.origin - 0.5 * (self.mins + self.maxs))) / (self.warpzone_fadeend - self.warpzone_fadestart), 1);
-       }
        else
                self.alpha = 1;
        //print(sprintf("%v <-> %v\n", view_origin, self.origin + 0.5 * (self.mins + self.maxs)));
@@ -79,10 +84,7 @@ void WarpZone_Read(float isnew)
 
        // how to draw
        // engine currently wants this
-       if(self.warpzone_fadestart)
-               self.predraw = WarpZone_Fade_PreDraw;
-       else
-               self.drawmask = MASK_NORMAL;
+       self.predraw = WarpZone_Fade_PreDraw;
 }
 
 void WarpZone_Camera_Read(float isnew)
@@ -139,10 +141,7 @@ void WarpZone_Camera_Read(float isnew)
 
        // how to draw
        // engine currently wants this
-       if(self.warpzone_fadestart)
-               self.predraw = WarpZone_Fade_PreDraw;
-       else
-               self.drawmask = MASK_NORMAL;
+       self.predraw = WarpZone_Fade_PreDraw;
 }
 
 void CL_RotateMoves(vector ang) = #638;
index f09f25bdcd13d320e5b9277da55795865d5c3e88..7bbebdc9c2a707ad0cd5366d2f1de44456db6838 100644 (file)
@@ -334,6 +334,7 @@ void WarpZone_TraceToss_ThroughZone(entity e, entity forent, entity zone, WarpZo
 
        o0 = e.origin;
        v0 = e.velocity;
+       g = cvar("sv_gravity") * e.gravity;
 
        WarpZone_trace_forent = forent;
        WarpZone_trace_firstzone = world;
@@ -376,7 +377,6 @@ void WarpZone_TraceToss_ThroughZone(entity e, entity forent, entity zone, WarpZo
                e.velocity = WarpZone_TransformVelocity(wz, e.velocity);
        }
        WarpZone_MakeAllSolid();
-       g = cvar("sv_gravity") * e.gravity;
        i = 16;
        for(;;)
        {
index 6c27842ef27f2066034a09e7bc81dd3e372bb074..9b94640b5a2319c734a103db57e036b48dd26883 100644 (file)
@@ -1,4 +1,6 @@
-#define REMOVEHACK
+#ifdef WARPZONELIB_KEEPDEBUG
+#define WARPZONELIB_REMOVEHACK
+#endif
 
 // for think function
 .vector warpzone_save_origin;
@@ -257,7 +259,7 @@ float WarpZone_Send(entity to, float sendflags)
 
 float WarpZone_Camera_Send(entity to, float sendflags)
 {
-       float f;
+       float f = 0;
        WriteByte(MSG_ENTITY, ENT_CLIENT_WARPZONE_CAMERA);
 
        if(self.warpzone_fadestart)
@@ -300,6 +302,7 @@ float WarpZone_Camera_Send(entity to, float sendflags)
        return TRUE;
 }
 
+#ifdef WARPZONELIB_KEEPDEBUG
 float WarpZone_CheckProjectileImpact(entity player)
 {
        vector o0, v0;
@@ -317,7 +320,7 @@ float WarpZone_CheckProjectileImpact(entity player)
        if(!wz)
                return 0;
 
-#ifdef REMOVEHACK
+#ifdef WARPZONELIB_REMOVEHACK
        print("impactfilter found something - and it no longer gets handled correctly - please tell divVerent whether anything behaves broken now\n");
 #else
        print("impactfilter found something - and it even gets handled correctly - please tell divVerent that this code apparently gets triggered again\n");
@@ -326,7 +329,7 @@ float WarpZone_CheckProjectileImpact(entity player)
        print("Origin: ", vtos(player.origin), "\n");
        print("Velocity: ", vtos(player.velocity), "\n");
 
-#ifdef REMOVEHACK
+#ifdef WARPZONELIB_REMOVEHACK
        return 0;
 #else
        // retry previous move
@@ -365,16 +368,23 @@ float WarpZone_CheckProjectileImpact(entity player)
        return +1;
 #endif
 }
+#endif
+
 float WarpZone_Projectile_Touch()
 {
-       float f;
        if(other.classname == "trigger_warpzone")
                return TRUE;
 
        // no further impacts if we teleported this frame!
+       // this is because even if we did teleport, the engine still may raise
+       // touch events for the previous location
+       // engine now aborts moves on teleport, so this SHOULD not happen any more
+       // but if this is called from TouchAreaGrid of the projectile moving,
+       // then this won't do
        if(time == self.warpzone_teleport_time)
                return TRUE;
 
+#ifdef WARPZONELIB_KEEPDEBUG
        // this SEEMS to not happen at the moment, but if it did, it would be more reliable
        {
                float save_dpstartcontents;
@@ -403,6 +413,7 @@ float WarpZone_Projectile_Touch()
                save_ent = trace_ent;
                save_inopen = trace_inopen;
                save_inwater = trace_inwater;
+               float f;
                if((f = WarpZone_CheckProjectileImpact(self)) != 0)
                        return (f > 0);
                trace_dpstartcontents = save_dpstartcontents;
@@ -419,6 +430,7 @@ float WarpZone_Projectile_Touch()
                trace_inopen = save_inopen;
                trace_inwater = save_inwater;
        }
+#endif
 
        if(WarpZone_Projectile_Touch_ImpactFilter_Callback())
                return TRUE;
index 718c93ed41f279a807964f27969d605bebf71664..da585064428561cc98643e7ba18abfab8affdd37 100644 (file)
@@ -2,6 +2,7 @@ MNex-Diffuse
 {
        dpglossexponentmod  64
        dpreflectcube env/exomorph/exomorph
+       dpoffsetmapping - 0.125 match8 128
        {
                map models/weapons/mnex.tga
                rgbgen lightingDiffuse
diff --git a/scripts/ok_player.shader b/scripts/ok_player.shader
new file mode 100644 (file)
index 0000000..2d48856
--- /dev/null
@@ -0,0 +1,9 @@
+okplayer
+{
+       dpglossexponentmod  8
+       dpreflectcube env/exomorph/exomorph
+       {
+               map models/ok_player/okplayer.tga
+               rgbgen lightingDiffuse
+       }
+}
diff --git a/scripts/okweapons.shader b/scripts/okweapons.shader
new file mode 100644 (file)
index 0000000..8873bf2
--- /dev/null
@@ -0,0 +1,31 @@
+minsta
+{
+       dpglossexponentmod  64
+       dpreflectcube env/exomorph/exomorph
+       {
+               map models/weapons/okweapons.tga
+               rgbgen lightingDiffuse
+       }
+}
+
+okrocketthrust
+{
+       deformVertexes autosprite2
+       cull none
+       {
+               map models/weapons/okrocketthrust.tga
+               tcmod page 4 4 0.01
+               blendfunc add
+       }
+}
+
+okrocketthrust2
+{
+       deformVertexes autosprite
+       {
+               map models/weapons/okrocketthrust.tga
+               tcmod page 4 4 0.01
+               blendfunc add
+       }
+       
+}
diff --git a/scripts/simpleitems.shader b/scripts/simpleitems.shader
new file mode 100644 (file)
index 0000000..abaab42
--- /dev/null
@@ -0,0 +1,407 @@
+////////// AMMO //////////
+
+a_cells_simple // cells
+{
+       deformVertexes autosprite
+       cull none
+       {
+               map models/items/a_cells_simple
+               blendfunc blend
+               nopicmip
+       }
+}
+
+a_rockets_simple // rockets
+{
+       deformVertexes autosprite
+       cull none
+       {
+               map models/items/a_rockets_simple
+               blendfunc blend
+               nopicmip
+       }
+}
+
+a_bullets_simple // bullets
+{
+       deformVertexes autosprite
+       cull none
+       {
+               map models/items/a_bullets_simple
+               blendfunc blend
+               nopicmip
+       }
+}
+
+a_shells_simple // shells
+{
+       deformVertexes autosprite
+       cull none
+       {
+               map models/items/a_shells_simple
+               blendfunc blend
+               nopicmip
+       }
+}
+
+////////// WEAPONS //////////
+
+g_crylink_simple // crylink
+{
+       deformVertexes autosprite
+       cull none
+       {
+               map models/weapons/g_crylink_simple
+               blendfunc blend
+               nopicmip
+       }
+}
+
+g_electro_simple // electro
+{
+       deformVertexes autosprite
+       cull none
+       {
+               map models/weapons/g_electro_simple
+               blendfunc blend
+               nopicmip
+       }
+}
+
+g_nex_simple // nex
+{
+       deformVertexes autosprite
+       cull none
+       {
+               map models/weapons/g_nex_simple
+               blendfunc blend
+               nopicmip
+       }
+}
+
+g_hagar_simple // hagar
+{
+       deformVertexes autosprite
+       cull none
+       {
+               map models/weapons/g_hagar_simple
+               blendfunc blend
+               nopicmip
+       }
+}
+
+g_gl_simple // mortar
+{
+       deformVertexes autosprite
+       cull none
+       {
+               map models/weapons/g_gl_simple
+               blendfunc blend
+               nopicmip
+       }
+}
+
+g_rl_simple // rocket launcher
+{
+       deformVertexes autosprite
+       cull none
+       {
+               map models/weapons/g_rl_simple
+               blendfunc blend
+               nopicmip
+       }
+}
+
+g_shotgun_simple // shotgun
+{
+       deformVertexes autosprite
+       cull none
+       {
+               map models/weapons/g_shotgun_simple
+               blendfunc blend
+               nopicmip
+       }
+}
+
+g_uzi_simple // machine gun
+{
+       deformVertexes autosprite
+       cull none
+       {
+               map models/weapons/g_uzi_simple
+               blendfunc blend
+               nopicmip
+       }
+}
+
+g_uzi_simple // machine gun
+{
+       deformVertexes autosprite
+       cull none
+       {
+               map models/weapons/g_uzi_simple
+               blendfunc blend
+               nopicmip
+       }
+}
+
+g_campingrifle_simple // sniper rifle
+{
+       deformVertexes autosprite
+       cull none
+       {
+               map models/weapons/g_campingrifle_simple
+               blendfunc blend
+               nopicmip
+       }
+}
+
+g_fireball_simple // fireball
+{
+       deformVertexes autosprite
+       cull none
+       {
+               map models/weapons/g_fireball_simple
+               blendfunc blend
+               nopicmip
+       }
+}
+
+g_hlac_simple // HLAC
+{
+       deformVertexes autosprite
+       cull none
+       {
+               map models/weapons/g_hlac_simple
+               blendfunc blend
+               nopicmip
+       }
+}
+
+g_hookgun_simple // hook gun
+{
+       deformVertexes autosprite
+       cull none
+       {
+               map models/weapons/g_hookgun_simple
+               blendfunc blend
+               nopicmip
+       }
+}
+
+g_laser_simple // laser
+{
+       deformVertexes autosprite
+       cull none
+       {
+               map models/weapons/g_laser_simple
+               blendfunc blend
+               nopicmip
+       }
+}
+
+g_minelayer_simple // minelayer
+{
+       deformVertexes autosprite
+       cull none
+       {
+               map models/weapons/g_minelayer_simple
+               blendfunc blend
+               nopicmip
+       }
+}
+
+g_minstanex_simple // minstanex
+{
+       deformVertexes autosprite
+       cull none
+       {
+               map models/weapons/g_minstanex_simple
+               blendfunc blend
+               nopicmip
+       }
+}
+
+g_porto_simple // portolauncher
+{
+       deformVertexes autosprite
+       cull none
+       {
+               map models/weapons/g_porto_simple
+               blendfunc blend
+               nopicmip
+       }
+}
+
+g_seeker_simple // tag seeker
+{
+       deformVertexes autosprite
+       cull none
+       {
+               map models/weapons/g_seeker_simple
+               blendfunc blend
+               nopicmip
+       }
+}
+
+g_tuba_simple // tuba
+{
+       deformVertexes autosprite
+       cull none
+       {
+               map models/weapons/g_tuba_simple
+               blendfunc blend
+               nopicmip
+       }
+}
+
+////////// ARMOR + HEALTH ITEMS //////////
+
+///// ARMOR /////
+
+item_armor_small_simple // 5a
+{
+       deformVertexes autosprite
+       cull none
+       {
+               map models/items/item_armor_small_simple
+               blendfunc blend
+               nopicmip
+       }
+}
+
+item_armor_medium_simple // 25a
+{
+       deformVertexes autosprite
+       cull none
+       {
+               map models/items/item_armor_medium_simple
+               blendfunc blend
+               nopicmip
+       }
+}
+
+item_armor_big_simple // 50a
+{
+       deformVertexes autosprite
+       cull none
+       {
+               map models/items/item_armor_big_simple
+               blendfunc blend
+               nopicmip
+       }
+}
+
+item_armor_large_simple  // 100a
+{
+       deformVertexes autosprite
+       cull none
+       {
+               map models/items/item_armor_large_simple
+               blendfunc blend
+               nopicmip
+       }
+}
+
+///// HEALTH /////
+
+g_h1_simple // 5hp
+{
+       deformVertexes autosprite
+       cull none
+       {
+               map models/items/g_h1_simple
+               blendfunc blend
+               nopicmip
+       }
+}
+
+g_h25_simple // 25hp
+{
+       deformVertexes autosprite
+       cull none
+       {
+               map models/items/g_h25_simple
+               blendfunc blend
+               nopicmip
+       }
+}
+
+g_h50_simple // 50hp
+{
+       deformVertexes autosprite
+       cull none
+       {
+               map models/items/g_h50_simple
+               blendfunc blend
+               nopicmip
+       }
+}
+
+g_h100_simple // 100hp
+{
+       deformVertexes autosprite
+       cull none
+       {
+               map models/items/g_h100_simple
+               blendfunc blend
+               nopicmip
+       }
+}
+
+////////// POWERUPS //////////
+
+g_strength_simple // strength
+{
+       deformVertexes autosprite
+       cull none
+       {
+               map models/items/g_strength_simple
+               blendfunc blend
+               nopicmip
+       }
+}
+
+g_invincible_simple // shield
+{
+       deformVertexes autosprite
+       cull none
+       {
+               map models/items/g_invincible_simple
+               blendfunc blend
+               nopicmip
+       }
+}
+
+g_jetpack_simple // jetpack
+{
+       deformVertexes autosprite
+       cull none
+       {
+               map models/items/g_jetpack_simple
+               blendfunc blend
+               nopicmip
+       }
+}
+
+g_fuel_simple // fuel for jetpack
+{
+       deformVertexes autosprite
+       cull none
+       {
+               map models/items/g_fuel_simple
+               blendfunc blend
+               nopicmip
+       }
+}
+
+g_fuelregen_simple // fuel regen powerup
+{
+       deformVertexes autosprite
+       cull none
+       {
+               map models/items/g_fuelregen_simple
+               blendfunc blend
+               nopicmip
+       }
+}
\ No newline at end of file
index 1243955c8b66cf7c69663922d64b9f26a0f9fc34..a6dcfaab86df5c107a1f64fce159d06f98359b1a 100644 (file)
@@ -9,6 +9,7 @@ electro
 nexgun
 {
        dpreflectcube cubemaps/default/sky
+       dpoffsetmapping - 0.3 match8 64
        {
                map textures/nexgun.tga
                rgbgen lightingDiffuse
@@ -62,11 +63,11 @@ rl
                rgbgen lightingDiffuse
        }
 }
-laser
+models/weapons/laser
 {
        dpreflectcube cubemaps/default/sky
        {
-               map textures/laser.tga
+               map models/weapons/laser.tga
                rgbgen lightingDiffuse
        }
 }
@@ -98,7 +99,7 @@ minelayer
 {
        dpreflectcube cubemaps/default/sky
        {
-               map textures/minelayer.tga
+               map textures/minelayer.tga      
                rgbgen lightingDiffuse
        }
 }
diff --git a/sound/overkill/grenadebip.ogg b/sound/overkill/grenadebip.ogg
new file mode 100644 (file)
index 0000000..54cdea4
Binary files /dev/null and b/sound/overkill/grenadebip.ogg differ
diff --git a/sound/player/robot/coms/attack.ogg b/sound/player/robot/coms/attack.ogg
new file mode 100644 (file)
index 0000000..6523c3e
Binary files /dev/null and b/sound/player/robot/coms/attack.ogg differ
diff --git a/sound/player/robot/coms/attackinfive.ogg b/sound/player/robot/coms/attackinfive.ogg
new file mode 100644 (file)
index 0000000..e0095d0
Binary files /dev/null and b/sound/player/robot/coms/attackinfive.ogg differ
diff --git a/sound/player/robot/coms/coverme.ogg b/sound/player/robot/coms/coverme.ogg
new file mode 100644 (file)
index 0000000..16d5716
Binary files /dev/null and b/sound/player/robot/coms/coverme.ogg differ
diff --git a/sound/player/robot/coms/defend.ogg b/sound/player/robot/coms/defend.ogg
new file mode 100644 (file)
index 0000000..9f221bb
Binary files /dev/null and b/sound/player/robot/coms/defend.ogg differ
diff --git a/sound/player/robot/coms/freelance1.ogg b/sound/player/robot/coms/freelance1.ogg
new file mode 100644 (file)
index 0000000..602a443
Binary files /dev/null and b/sound/player/robot/coms/freelance1.ogg differ
diff --git a/sound/player/robot/coms/freelance2.ogg b/sound/player/robot/coms/freelance2.ogg
new file mode 100644 (file)
index 0000000..f197e72
Binary files /dev/null and b/sound/player/robot/coms/freelance2.ogg differ
diff --git a/sound/player/robot/coms/incoming.ogg b/sound/player/robot/coms/incoming.ogg
new file mode 100644 (file)
index 0000000..ab44b45
Binary files /dev/null and b/sound/player/robot/coms/incoming.ogg differ
diff --git a/sound/player/robot/coms/meet.ogg b/sound/player/robot/coms/meet.ogg
new file mode 100644 (file)
index 0000000..971a311
Binary files /dev/null and b/sound/player/robot/coms/meet.ogg differ
diff --git a/sound/player/robot/coms/needhelp1.ogg b/sound/player/robot/coms/needhelp1.ogg
new file mode 100644 (file)
index 0000000..bb71c34
Binary files /dev/null and b/sound/player/robot/coms/needhelp1.ogg differ
diff --git a/sound/player/robot/coms/needhelp2.ogg b/sound/player/robot/coms/needhelp2.ogg
new file mode 100644 (file)
index 0000000..3ac2191
Binary files /dev/null and b/sound/player/robot/coms/needhelp2.ogg differ
diff --git a/sound/player/robot/coms/seenflag.ogg b/sound/player/robot/coms/seenflag.ogg
new file mode 100644 (file)
index 0000000..13b3e3d
Binary files /dev/null and b/sound/player/robot/coms/seenflag.ogg differ
diff --git a/sound/player/robot/coms/taunt1.ogg b/sound/player/robot/coms/taunt1.ogg
new file mode 100644 (file)
index 0000000..25dccee
Binary files /dev/null and b/sound/player/robot/coms/taunt1.ogg differ
diff --git a/sound/player/robot/coms/taunt2.ogg b/sound/player/robot/coms/taunt2.ogg
new file mode 100644 (file)
index 0000000..624d561
Binary files /dev/null and b/sound/player/robot/coms/taunt2.ogg differ
diff --git a/sound/player/robot/coms/taunt3.ogg b/sound/player/robot/coms/taunt3.ogg
new file mode 100644 (file)
index 0000000..12f4aa2
Binary files /dev/null and b/sound/player/robot/coms/taunt3.ogg differ
diff --git a/sound/player/robot/coms/teamshoot1.ogg b/sound/player/robot/coms/teamshoot1.ogg
new file mode 100644 (file)
index 0000000..3e152f4
Binary files /dev/null and b/sound/player/robot/coms/teamshoot1.ogg differ
diff --git a/sound/player/robot/coms/teamshoot2.ogg b/sound/player/robot/coms/teamshoot2.ogg
new file mode 100644 (file)
index 0000000..7735188
Binary files /dev/null and b/sound/player/robot/coms/teamshoot2.ogg differ
diff --git a/sound/player/robot/coms/teamshoot3.ogg b/sound/player/robot/coms/teamshoot3.ogg
new file mode 100644 (file)
index 0000000..8ecffab
Binary files /dev/null and b/sound/player/robot/coms/teamshoot3.ogg differ
diff --git a/sound/player/robot/player/death1.ogg b/sound/player/robot/player/death1.ogg
new file mode 100644 (file)
index 0000000..f95bb68
Binary files /dev/null and b/sound/player/robot/player/death1.ogg differ
diff --git a/sound/player/robot/player/death2.ogg b/sound/player/robot/player/death2.ogg
new file mode 100644 (file)
index 0000000..6c5d641
Binary files /dev/null and b/sound/player/robot/player/death2.ogg differ
diff --git a/sound/player/robot/player/death3.ogg b/sound/player/robot/player/death3.ogg
new file mode 100644 (file)
index 0000000..db108b8
Binary files /dev/null and b/sound/player/robot/player/death3.ogg differ
diff --git a/sound/player/robot/player/drown.ogg b/sound/player/robot/player/drown.ogg
new file mode 100644 (file)
index 0000000..76e6488
Binary files /dev/null and b/sound/player/robot/player/drown.ogg differ
diff --git a/sound/player/robot/player/fall.ogg b/sound/player/robot/player/fall.ogg
new file mode 100644 (file)
index 0000000..6120628
Binary files /dev/null and b/sound/player/robot/player/fall.ogg differ
diff --git a/sound/player/robot/player/falling.ogg b/sound/player/robot/player/falling.ogg
new file mode 100644 (file)
index 0000000..b86257a
Binary files /dev/null and b/sound/player/robot/player/falling.ogg differ
diff --git a/sound/player/robot/player/gasp.ogg b/sound/player/robot/player/gasp.ogg
new file mode 100644 (file)
index 0000000..e5d848a
Binary files /dev/null and b/sound/player/robot/player/gasp.ogg differ
diff --git a/sound/player/robot/player/jump.ogg b/sound/player/robot/player/jump.ogg
new file mode 100644 (file)
index 0000000..5b04c29
Binary files /dev/null and b/sound/player/robot/player/jump.ogg differ
diff --git a/sound/player/robot/player/pain100.ogg b/sound/player/robot/player/pain100.ogg
new file mode 100644 (file)
index 0000000..b6e799a
Binary files /dev/null and b/sound/player/robot/player/pain100.ogg differ
diff --git a/sound/player/robot/player/pain25.ogg b/sound/player/robot/player/pain25.ogg
new file mode 100644 (file)
index 0000000..0a1878f
Binary files /dev/null and b/sound/player/robot/player/pain25.ogg differ
diff --git a/sound/player/robot/player/pain50.ogg b/sound/player/robot/player/pain50.ogg
new file mode 100644 (file)
index 0000000..677fc4b
Binary files /dev/null and b/sound/player/robot/player/pain50.ogg differ
diff --git a/sound/player/robot/player/pain75.ogg b/sound/player/robot/player/pain75.ogg
new file mode 100644 (file)
index 0000000..66d0311
Binary files /dev/null and b/sound/player/robot/player/pain75.ogg differ
diff --git a/sound/weapons/weaponpickup_new_toys.ogg b/sound/weapons/weaponpickup_new_toys.ogg
new file mode 100644 (file)
index 0000000..34660ee
Binary files /dev/null and b/sound/weapons/weaponpickup_new_toys.ogg differ
diff --git a/textures/laser.tga b/textures/laser.tga
deleted file mode 100644 (file)
index c0f2bc7..0000000
Binary files a/textures/laser.tga and /dev/null differ
diff --git a/textures/laser_bump.tga b/textures/laser_bump.tga
deleted file mode 100644 (file)
index 2180e6e..0000000
Binary files a/textures/laser_bump.tga and /dev/null differ
diff --git a/textures/laser_gloss.tga b/textures/laser_gloss.tga
deleted file mode 100644 (file)
index fc54840..0000000
Binary files a/textures/laser_gloss.tga and /dev/null differ
diff --git a/textures/laser_glow.tga b/textures/laser_glow.tga
deleted file mode 100644 (file)
index 90e32e7..0000000
Binary files a/textures/laser_glow.tga and /dev/null differ
diff --git a/textures/laser_shirt.tga b/textures/laser_shirt.tga
deleted file mode 100644 (file)
index 279c0e7..0000000
Binary files a/textures/laser_shirt.tga and /dev/null differ
index aaf616158f373cd5ce429fd5ec9ab7b9c2bbae3f..ed455da109ec80f9c511389eebea5c9f7267e1e9 100644 (file)
@@ -1,3 +1,4 @@
+0
 \XonoticSingleplayerDialog\Spiele die Einzelspieler-Kampagne oder habe Instant-Action Spiele gegen Bots
 
 
index 4762f8f2a8f720913cc0b3adcc2195b8cfeb4e5b..34f06780665eb3766c12c23b3557a8c5f4189590 100644 (file)
@@ -28,6 +28,7 @@
 \sv_vote_simple_majority_factor\À partir de 51% de oui seulement, un vote est gagné
 \XonoticMultiplayerDialog/Advanced settings...\Paramètres du serveur avancés
 \XonoticMultiplayerDialog/Mutators...\Spéciales et arènes d'une seule arme
+\g_dodging\Enable dodging
 \g_cloaked\Tous les joueurs sont presque invisibles
 \g_footsteps\Activer les bruitages de pas
 \g_midair\Il faut que votre adversaire soit en l'air pour lui faire mal
 \cl_gunalign\Position de l'arme à l'écran, reconnection au serveur nécessaire pour prendre effet
 
 \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\Ajuster la taille du viseur
 \crosshair_color_alpha\Ajuster l'opacité du viseur
-\crosshair_color_red\Couleur: intensité du rouge dans le viseur
-\crosshair_color_green\Couleur: intensité du vert dans le viseur
-\crosshair_color_blue\Couleur: intensité du bleu dans le viseur
+\crosshair_color\Ajuster le couleur du viseur
 \sbar_hudselector\Utiliser l'ancienne interface HUD
 \XonoticMultiplayerDialog/Waypoints setup...\-
 \_cl_name\Pseudonyme utilisé pour vous reconnaître dans le jeu
 \m_pitch\Inverser la souris sur l'axe vertical (mode jeu d'avion)
 \vid_dgamouse\Utiliser une souris DGA
 \con_closeontoggleconsole\Autoriser la fermeture de console avec la touche d'ouverture de console (sinon, Shift+Échap)
-\sbar_showbinds\Afficher les actions possibles avec des touches/commandes
-\cl_showpressedkeys\Afficher les touches qu'un joueur est en train d'appuyer
 
 \XonoticSettingsDialog/Vidéo\Video settings
 \vid_width\Résolution de l'écran
 \vid_bitsperpixel\Profondeur des couleurs: 16 bits est plus rapide, mais 32 bits est de meilleure qualité (recommandé)
 \vid_fullscreen\Activer le mode plein écran (par défaut: activé)
 \vid_vsync\Activer la syncronisation verticale pour éviter des problèmes d'affichage, limite le nombre maximum d'images par seconde (par défaut: désactivé)
+\gl_texture_anisotropy\Qualité du filtrage anistrope (par défaut: 1x)
 \r_glsl\Activer les Shaders OpenGL 2.0 pour des effets de lumière améliorés
 \gl_vbo\Utiliser les VBOs pour stocker les modèles 3D statiques dans la mémoire pour une meilleure performance (par défaut: Points et Triangles)
 \r_depthfirst\Éviter des problèmes de profondeur de rendu en faisant un rendu de profondeur de la carte/joueurs avant le rendu "standard" (par défaut: désactivé)
 \cl_gentle\Remplacer les effets gore par des effets moins violents (par défaut: désactivé)
 \cl_nogibs\Réduire le nombre de Gibs ou les désactiver totalement (par défaut: beaucoup)
 \v_kicktime\Faire trembler la vue en recevant des dégâts (par défaut: 0)
-\gl_texture_anisotropy\Qualité du filtrage anistrope (par défaut: 1x)
 \r_glsl_deluxemapping\Utiliser les effets lumineux avancés (par défaut: activé)
 \r_shadow_gloss\Utiliser le reflet des textures (par défaut: activé)
 \gl_flashblend\Enable faster but uglier dynamic lights by rendering bright coronas instead of real dynamic lights (default: disabled)
 \r_coronas_occlusionquery\Prendre en compte la visibilité pour les effets "Brillance Lumière" (par défaut: activé)
 \r_bloom\Activer un effet d'éblouissement plus beau, mais gourmand (par défaut: désactivé)
 \r_hdr\Activer un effet d'ébloissement encore plus beau, mais encore plus gourmand (par défaut: désactivé)
-\r_motionblur\Intensité du flou de mouvement - 0.5 est recommandé
-\r_damageblur\Intensité du flou en recevant des dégâts - 0.4 est recommandé
+\r_motionblur\Intensité du flou de mouvement - 0.4 est recommandé
 
 \XonoticSettingsDialog/Audio\Audio settings
 \mastervolume\-
 \XonoticSettingsDialog/Réseau\Paramètres du jeu en réseau
 \cl_movement\Activer la prédiction des mouvements du joueur pour éviter les saccades lors de parties en réseau
 \cl_nolerp\Algorithme pour éviter les saccades lors de parties en réseau
-\shownetgraph\Show a 
+\shownetgraph\Show a graph of packet sizes and other information
 \_cl_rate\Specify your network speed with this slider
 \cl_netfps\Nombre maximum de paquets à envoyer au server chaque seconde
 \cl_curl_maxdownloads\Nombre maximum de téléchargements simultanés
 \cl_port\Forcer le client à passer par le port défini (UDP) s'il n'est pas 0
 
 \XonoticSettingsDialog/Autres\Autres paramètres
+\menu_tooltips\Menu tooltips: disabled, standard or advanced (also shows cvar or console command bound to the menu item)
 \showtime\Montrer l'heure, utile pour les captures d'écran
 \showdate\Montrer la date, utile pour les captures d'écran
 \showfps\Montrer le nombre d'Images Par Seconde rendues (Frames Per Second = FPS)
-\cl_showspeed\Montrer la vitesse du joueur
-\cl_showspeed_unit\Séléctionner l'unité de mesure de la vitesse (qu/s = in/s)
-\cl_showacceleration\Montrer l'accélération du joueur
-\cl_showacceleration_scale\Éxagérer l'accéléromètre avec ce facteur pour qu'il soit plus visible
 
 \XonoticSettingsDialog/Advanced settings...\Paramètres avancés pour configuer le jeu dans ses moindres détails
 \g_friendlyfire\Pourcentage de dégâts infligés aux équipiers si vous les touchez
 \g_mirrordamage\Pourcentage de dégâts infligés aux équipiers qui vous sera renvoyé
 \g_tdm_teams_override\Écraser le nombre d'équipes défini par la carte
 
-\cl_teamradar_position\-
-\cl_teamradar_size\-
-\cl_teamradar_zoommode\-
-\cl_teamradar_rotation\-
-\cl_teamradar_scale\-
-\cl_teamradar_foreground_alpha\-
-\cl_teamradar_background_alpha\Opacité de l'arrière-plan du radar
 \viewsize\Enable/Désactiver l'arrière plan de l'interface
-\sbar_alpha_bg\Opacité de l'arrière plan de l'interface
-\sbar_color_bg_r\Intensité du rouge dans l'arrière-plan de l'interface
-\sbar_color_bg_g\Intensité du vert dans l'arrière-plan de l'interface
-\sbar_color_bg_b\Intensité du bleu dans l'arrière-plan de l'interface
-\sbar_color_bg_team\Saturation de la couleur d'équipe avec l'arrière-plan de l'interface
 \cl_hidewaypoints\Montrer/Cacher les Waypoints (flèches 3D)
 \g_waypointsprite_scale\Ajuster la taille des Waypoints
 \g_waypointsprite_alpha\Ajuster l'opacité des Waypoints
index 3335a0e8a07e8badbc70fccfcdba3209094ca768..81347c7577f0af6e28da4d2329f728382fdc148d 100644 (file)
-0
+0
+//FŐMENÜ
 \XonoticSingleplayerDialog\Egyjátékos mód vagy azonnali játék gépi vezérlésű botok ellen
+\XonoticMultiplayerDialog\Játék interneten keresztül, helyi hálózaton, demók megtekintése, vagy a karaktered beállításainak finomítása
+\XonoticSettingsDialog\A játék beállításainak megváltoztatása: billentyűzetkiosztás, képernyőfelbontás, vizuális effektek, audió, stb.
 
-
-\XonoticMultiplayerDialog\Meccsek neten, a barátaid elleni helyi hálózaton, demó nézés, vagy a karaktered beállításainak finomítása
+//TÖBBJÁTÉKOS MENÜ SZERVEREK FÜL
 \XonoticMultiplayerDialog/Szerverek keresése a játékhoz
-\menu_slist_showempty\Üres szerverek mutatása 
-\menu_slist_showfull\Teli szerverek is mutatása, amelyeken nincs már szabad férőhely
-\net_slist_pause\Megállítja a szerver lista frissítését, hogy a szerverek ne 'ugráljanak össze-vissza' a listában
-\XonoticMultiplayerDialog/Adatok...\Több adat az éppen kiválasztott szerverről
-\XonoticMultiplayerDialog/Könyvjelzők\Az éppen kiválasztott szerver megjelölése, hogy a jövőben könnyebben megtalálható legyen
+\menu_slist_showempty\Üres szerverek mutatása
+\menu_slist_showfull\Teli szerverek mutatása, amelyeken nincs már szabad férőhely
+\net_slist_pause\Megállítja a szerver lista frissítését, hogy a szerverek ne "ugráljanak össze-vissza" a listában
+\XonoticMultiplayerDialog/Szerverek\Internetes és helyi hálózaton indított szerverek böngészése
 \XonoticMultiplayerDialog/Létrehozás\Saját játékszerver indítása
-\XonoticMultiplayerDialog/Demók\Demók böngészése és megtekintése
-\XonoticMultiplayerDialog/Játékos beállítások\Játékoskarakter testreszabása 
+\XonoticMultiplayerDialog/Törlés\A szűkítési paraméterek törlése
+\XonoticMultiplayerDialog/Csatlakozok!\Csatlakozás a kiválasztott szerverhez. Sok sikert és jó szórakozást!
+\XonoticMultiplayerDialog/Könyvjelző\Az éppen kiválasztott szerver megjelölése, hogy a jövőben könnyebben megtaláld
+\XonoticMultiplayerDialog/További infó\Még több információ megjelenítése az éppen kiválasztott szerverről
 
-\XonoticTeamSelectDialog/A 'legjobb' csapathoz csatlakozás (auto-választás)\Önműködő csapatválasztás (ajánlott)
-\XonoticTeamSelectDialog/piros\Csatlakozás a vörös csapathoz
-\XonoticTeamSelectDialog/kék\Csatlakozás a kék csapathoz
-\XonoticTeamSelectDialog/sárga\Csatlakozás a sárga csapathoz
-\XonoticTeamSelectDialog/rózsaszín\Csatlakozás a rózsaszín csapathoz
-
-\timelimit_override\Időhatár percben, aminek elérése után vége a meccsnek
+//TÖBBJÁTÉKOS MENÜ LÉTREHOZÁS FÜL
+\timelimit_override\Időhatár percekben mérve, aminek elérése után vége a meccsnek
 \fraglimit_override\Gyilokok száma, amit a meccs vége előtt el kell érni
-\menu_maxplayers\A játékosok és botok maximális összszáma, ahányan egyszerre a szerverre csatlakozhatnak
+\menu_maxplayers\A játékosok és botok maximális összlétszáma, ahányan egyszerre a szerverre csatlakozhatnak
 \bot_number\Botok száma a szervereden
 \skill\A botok ügyességi szintjének meghatározása
-\g_maplist_votable\Pályaválasztásnál megjelenő lehetőségek száma egy meccs után
-\sv_vote_simple_majority_factor\Egyszerű többség nyerjen egy szavazásban
-\XonoticMultiplayerDialog/Haladó beállítások...\Haladó szerverbeállítások
+\XonoticMultiplayerDialog/Az összes\Minden pálya kiválasztása
+\XonoticMultiplayerDialog/Egyik sem\Egyik pálya sincs kiválasztva
+
+//TÖBBJÁTÉKOS MENÜ LÉTREHOZÁS FÜL MÓDOSÍTÓK ABLAK
 \XonoticMultiplayerDialog/Módosítók...\Módosítók és fegyverarénák
 \g_dodging\El tudsz szökkenni jobbra-balra a lövések elől
 \g_cloaked\Minden játékos majdnem láthatatlan
-\g_footsteps\Lépészaj engedélyezése
+\g_footsteps\Enable footstep sounds
 \g_midair\Csak addig tudod az ellenséged megsebezni, amíg az levegőben tartózkodik
 \g_vampire\Annyi pont adódik életerődhöz, amennyi sebzést a másiknak okozol
 \g_bloodloss\Életerőpont, ami alatt a játékos elkábul a vérveszteségtől
 \sv_gravity\A tárgyak lassabban esnek a földre, kisebb érték alacsonyabb gravitációt jelent
 \g_grappling_hook\A játékosok arzenáljában a vonóhorog is szerepelni fog 
 \g_jetpack\A játékosok hátán sugárhajtóműves hátizsák van
+\g_invincible_projectiles\A már kilőtt lövedékeket (pl. rakéta, gránát) nem lehet elpusztítani
+\g_rocket_flying\Rakétarepülés engedélyezése. Tartsd lenyomva a másodlagos tüzelés gombot, és lőj magad alá a rakétavetővel! 
 \g_pinata\A játékosok eldobnak minden fegyvert, amit birtokoltak a haláluk előtt
 \g_weapon_stay\A fegyverek a helyükön maradnak, még azután is, hogy valaki felvette őket
-\g_weaponarena\ A kiválasztott fegyver aréna minden játékosnak ugyanazt a fegyvert biztosítja korlátlan lőszerrel, és letiltja minden más fegyver felvételét
+\g_weaponarena\A kiválasztott fegyver aréna minden játékosnak ugyanazt a fegyvert biztosítja korlátlan lőszerrel, és letiltja minden más fegyver felvételét
 \menu_weaponarena_with_laser\A lézer is engedélyezett a fegyver arénában
 \g_minstagib\A játékosok egy Minstanex-et kapnak, ami egy azonnal ölő mesterlövész fegyver. Ha a játékos kifogy a lőszerből, 10 másodperce van muníciót találni, vagy meghal. A másodlagos tűz mód a lézer, amely nem okoz kárt, de jól jön trükkös ugrások végrehajtásánál
 \g_nix\Xonotic felvehető fegyverek nélkül – Mindenki ugyanazzal a fegyverrel játszik. Kis idő után visszaszámlálás indul, amely végén mindenki fegyvert vált
 \g_nix_with_laser\Mindig legyen a lézer a Nix mellett kiegészítésül 
-\XonoticMultiplayerDialog/Mind jelölve\Minden pálya kiválasztása
-\XonoticMultiplayerDialog/Egyet se jelölj be\Egyik pálya sincs kiválasztva
 
+//TÖBBJÁTÉKOS MENÜ LÉTREHOZÁS FÜL HALADÓ BEÁLLÍTÁSOK ABLAK
+\XonoticMultiplayerDialog/Haladó beállítások...\Haladó szerverbeállítások
+\sv_spectate\A csak nézőként csatlakozó játékosok engedélyezése
+\g_spawnshieldtime\A Védelmező megjenésének ideje
+\slowmo\A játék sebessége. A nagyobb értékek gyorsabb játékot eredményeznek.
+\g_friendlyfire\Sérülés viszonylagos mértéke, amit a csapattársadnak okozol
+\g_friendlyfire_virtual\A csapattárs csak vizuálisan szenvedjen el sérülést a sebzésedtől, de életerőpontot ne veszítsen
+\g_mirrordamage\Általad okozott csapatsérülés viszonylagos mértéke, amit te szenvedsz el büntetésből, mert a csapattársad ellen fordultál
+\g_mirrordamage_virtual\Csak vizuálisan szenvedj el sérülést azért, mert a csapattársad ellen fordultál
+\g_tdm_teams_override\Csapatjátékban felülbírálja a csapatok számának alapbeállítását
+\g_maplist_votable\A meccs utáni pályaválasztásnál megjelenő szvazati lehetőségek száma
+\sv_vote_simple_majority_factor\Egyszerű többség nyerjen egy szavazásban
+
+//TÖBBJÁTÉKOS MENÜ DEMÓK FÜL
+\XonoticMultiplayerDialog/Demók\Demók böngészése és megtekintése
+\cl_autodemo\Visszajátszható ún. 'demó' felvételek készítése automatikusan az aktuális játékodról.
+\XonoticMultiplayerDialog/Időmérés\Leméri, hogy a számítógéped milyen gyorsan képes futtatni a kiválasztott demót.
+\XonoticMultiplayerDialog/Visszajátszás\A kiválasztott demó felvétel lejátszása.
+
+//TÖBBJÁTÉKOS MENÜ JÁTÉKOS BEÁLLÍTÁSOK FÜL
+\_cl_name\A név, amivel szerepelsz a játékban. Ha engedélyezted a statisztikák gyűjtését és elküldését, akkor a http://stats.xonotic.org -on ezen a néven fogsz szerepelni az adatbázisban
+\_cl_color\A játékoskaraktered elsődleges és másodlagos színei. 
+\XonoticMultiplayerDialog/Játékos beállítások\Játékosmodell, célkereszt, HUD, és egyéb játékosorientált beállítások
+\crosshair_enabled\A célkereszt letiltása vagy engedélyezése. A célkereszt változhat fegyverenként egy előre megadott készletből, vagy engedélyezd az "Egyéni célkereszt" opciót, és válassz egy célkeresztet az alábbi listából!
+\crosshair\Válassz a listából egy egyéni célkeresztet!
+\crosshair_per_weapon\Különböző célkeresztek beállítása az éppen kézben tartott fegyverhez; hasznos lehet fegyvermodell nélküli játék során
+\crosshair_color_per_weapon\A célkereszt színének változtatása az éppen kézben tartott fegyvertől függően
+\crosshair_color_by_health\A célkereszt színének változtatás az életerőd függvényében
+\crosshair_size\A csúszkával a célkereszt méretét tudod beállítani
+\crosshair_alpha\A csúszkával a célkereszt átlátszóságát tudod beállítani
+\crosshair_color\A célkereszt színének megváltoztatása 
 
-\XonoticMultiplayerDialog/Timedemo\Leméri, hogy a számítógéped milyen gyorsan képes futtatni a kiválasztott demót. 
+//TÖBBJÁTÉKOS MENÜ JÁTÉKOS BEÁLLÍTÁSOK FÜL CÉLKERESZT ABLAK
+\crosshair_dot\A célkereszt közepén elhelyezkedő pont engedélyezése
+\crosshair_dot_size\A csúszkával a célkereszt közepén elhelyezkedő pont méretét tudod beállítani
+\crosshair_dot_alpha\A csúszkával a célkereszt közepén elhelyezkedő pont átlátszóságát tudod beállítani. Az érték növelésével az átlátszóság csökken.
+\crosshair_dot_color_custom\A célkereszt közepén elhelyezkedő pont színének beállítása. Egyéni szín beállításához használd az "Egyéni" opciót, majd válassz a palettáról egy színt!
+\crosshair_effect_scalefade\A célkereszt animációi kifejezettebbek és jobban láthatóak lesznek.
+\crosshair_ring\A célkereszt körül egy gyűrű jelenik meg, amely az épp kézben tartott fegyver állapotáról ad információt (pl. Nex töltöttségi szintje, Gépfegyver tárban lévő töltényei stb.)
+\crosshair_hittest\A találatellenőrzés megjelenítése a célkereszten. Nincs: a találat lehetősége nincs hatással a célkeresztre; Valós célzás: elmossa a célkeresztet, mikor nem a falat találod el; Ellenségek: Fel is nagyítja a célkeresztet, mikor egy ellenfelet találsz el
+\crosshair_hittest_blur\A célkereszt elmosása, ha a lövés elakadna a falban (nagyon hasznos fedezék mögül tüzelés esetén)
+\crosshair_hitindication\A célkereszt egy pillanatra megnő sikeres találat esetén
+\crosshair_pickup\A célkereszt egy pillanatra megnő tárgyak (életerő, muníció, fegyverek, zászló stb.) felvétele esetén
 
-\fov\A látószög fokban mérve 60-tól 130-ig, alapérték 90
-\cl_bobcycle\A megjelenített kép biccentése járás közben.
+//TÖBBJÁTÉKOS MENÜ JÁTÉKOS BEÁLLÍTÁSOK FÜL JÁTÉKOSMODELL ABLAK
+\cl_deathglow\A csúszkával a holttestek elhalványulásának idejét tudod beállítani másodpercben mérve
+\cl_nogibs\A csúszkával a felrobbantott ellendelek húscafatainak mennyiségének tudod beállítani (alapértelmezett: sok)
+\cl_playerdetailreduction\A csúszkával játékoskarakterek kinézetének butítását tudod beállítani. A magasabb értékek grafikailag roszabb minőségű, de gyorsabban leképezhető modelleket eredményeznek
+\cl_forceplayermodels\Az összes játékos ugyan azzal a modellel fog megjelenni a képernyődön mint te magad, attól függetlenül, hogy ők mit állítanak be maguknak. Hasznos lehet azoknak, akik versenyszerűen játszanak, és a "megaerebus" modellt választják.
+\cl_forcelplayercolors\Az összes játékos ugyan azzal az elsődleges és másodlagos színnel fog megjelenni a te képernyődön mint te magad, attól függetlenül, hogy ők mit állítanak be maguknak.
+
+
+//TÖBBJÁTÉKOS MENÜ JÁTÉKOS BEÁLLÍTÁSOK FÜL NÉZET ABLAK
+\XonoticTeamSelectDialog/További célkereszt beállítások\További lehetőségek a célkereszt testreszabására, pl. középső pont, gyűrű, találatjelzési viselkedés stb.
+\fov\A látószög fokokban mérve 60-tól 130-ig, az alapérték 90 fok
+\cl_reticle\A távcső használatas során távcsőkeret rajzolása a képernyőre, illetve ennek letiltása
 \cl_zoomfactor\A nagyítási szorzó a ráközelítés gomb megnyomása esetén
-\cl_zoomsensitivity\Mennyire változtatja a nagyítás az egér érzékenységet, 0-tól (kisebb érzékenység) 1-ig (nem változik az érzékenység)
 \cl_zoomspeed\Milyen gyorsan hajtsa végre a távcső a nagyítást. Tiltás esetén a nagyítás azonnal végbemegy
-\XonoticMultiplayerDialog/Fegyver beállítások...\A legkedveltebb fegyver, önműködő fegyverváltás és fegyvermodell pozíciójának beállításai 
+\cl_zoomsensitivity\Nagyítás során az egér érzékenységének változtatása a könnyebb célzás érdekében, 0-tól (kisebb érzékenység) 1-ig (nem változik az érzékenység)
+\cl_velocityzoom_type\A távcső használata során a nagyítási és kicsinyítési animáció sebességének finomítása 
+\cl_velocityzoom\Az animálás simításának mértéke
+\cl_clippedspectating\Nézőként csatlakozva ezen opció bekapcsolásával átjárhatsz a falakon, ellenkező esetben csak a pálya valós, fizikai határain belül tudsz mozogni
+\chase_active\Az első személy nézet bekapcsolása esetén a képernyőn a saját szemszögödből látod a történéseket, mintha te magad is ott lennél. Harmadik személy nézet esetén a játékoskarakteredet felülről, a háta mögül követed. 
+\cl_bobfall\Ha bekapcsolod ezt az opciót, az ugrások utáni földre érkezéskor a képernyő finoman rugózik
+\cl_smoothviewheight\Ha bekapcsolod ezt az opciót, leguggolás során a nézőpont változása finoman történik
+\v_idlescale\Ha bekapcsolod ezt az opciót, egy helyben való ácsorgás során a képernyő ingadozik, mintha finoman jobbra-balra tekintgetnél
+\cl_bob\A képernyő biccentése járás közben
+\chase_back\A csúszkával a kamera hátrafelé való távolságát tudod beállítani harmadik személy nézet esetén 
+\chase_up\A csúszkával a kamera felfelé való távolságát tudod beállítani harmadik személy nézet esetén
 
-\cl_weaponpriority_useforcycling\A fenti lista használata, amikor az egérgörgővel lépkedsz a fegyverek között 
-\cl_autoswitch\Önmagától átvált az újonnan felvett fegyverekre, ha azok jobbak az addig használtnál
-\r_drawviewmodel\Fegyvermodell kirajzolása
-\cl_gunalign\Fegyvermodell helyzete; játék közben újracsatlakozás szükséges az adott szerverhez
+//TÖBBJÁTÉKOS MENÜ JÁTÉKOS BEÁLLÍTÁSOK FÜL FEGYVER BEÁLLÍTÁSOK ABLAK
+\XonoticMultiplayerDialog/Fegyver beállítások\A legkedveltebb fegyver, önműködő fegyverváltás és fegyvermodell pozíciójának beállításai
+\cl_weaponpriority_useforcycling\A bal oldali lista használata, amikor az előző fegyver/következő fegyver gombokkal váltasz a fegyverek között
+\cl_autoswitch\A játék önmagától átvált az újonnan felvett fegyverre, ha az jobb az addig kézben tartottnál az elsőbbségi lista szerint
+\r_drawviewmodel\Az éppen kézben tartott fegyver megjelenítése
+\cl_gunalign\Fegyvermodell helyzete. FIGYELEM! Ha játék közben vagy, újra kell csatlakoznod a szerverhez (helyi játék esetén újra kell indítanod azt), hogy a változtatás életbe lépjen!
+\cl_followmodel\A fegyver mozgatása a tekinteteddel együtt, ahogy nézelődsz
+\cl_bobmodel\A fegyver finom fel-le mozgatása futás során, mintha valóban a kezedben lenne
+\cl_viewmodel_scale\A kirajzolt fegyvermodell mérete
 
-\crosshair_per_weapon\Különböző célkeresztek beállítása az éppen kézben tartott fegyverhez; hasznos lehet fegyvermodell nélküli játék során
-\crosshair_color_per_weapon\A célkereszt színének változtatása az éppen kézben tartott fegyvertől függően
-\crosshair_size\ A célkereszt méretének megváltoztatása
-\crosshair_alpha\A célkereszt átlátszóságának megváltoztatása
-\crosshair_color\A célkereszt színének megváltoztatása 
-\sbar_hudselector\A régi HUD elrendezés használata
-\XonoticMultiplayerDialog/Irányjelzők beállításai...\-
-\_cl_name\A név, amivel szerepelsz a játékban
+//TÖBBJÁTÉKOS MENÜ JÁTÉKOS BEÁLLÍTÁSOK FÜL HUD BEÁLLÍTÁSOK ABLAK
+\hud_damage\Véres foltok rajzolása a képernyőre sérülés esetén. A csúszkával a vérfoltok mennyiségét tudod szabályozni (0 - letiltva)
+\hud_damage_factor\A csúszkával a sérülés esetén a képernyőre rajzolt vérfoltok átlátszóságát tudod szabályozni. Az érték növelésével a foltok egyre kevésbé lesznek átláthatóak
+\hud_damage_fade_rate\A csúszkával a sérülés esetén a képernyőre rajzolt vérfoltok elhalványulásának sebességét tudod szabályozni. Az érték növelésével a foltok gyorsabban eltűnnek a látómeződből
+\cl_hidewaypoints\Különböző játéktípusok során iránypontok rajzolása a képernyőre, amik segítenek a tájékozódásban (pl. bázisok, generátorok, uralmi pontok helyzete stb.)
+\g_waypointsprite_scale\A csúszkával az iránypontok méretét tudod szabályozni. A nagyobb értékek nagyobb feliratokat eredményeznek
+\g_waypointsprite_alpha\A csúszkával az iránypontok átlátszóságát tudod szabályozni. Az érték növelésével az iránypontok egyre kevésbé lesznek átláthatóak
+\g_waypointsprite_edgeoffset_bottom\A csúszkával az iránypontoknak a képernyő széleitől mért távolságát tudod szabályozni. Az érték növelésével az iránypontok távolabb kerülnek a képernyő széleitől.
+\hud_shownames\A látómeződben tartózkodó játékosok nevének mutatása
+\hud_shownames_crosshairdistance\Csak azon játékosok nevének mutatása, akit épp célba vettél
+\hud_shownames_status\Csapatjátékokban a csapattársaid neve alatt az életerejük és páncélzatuk állapota is jelenjen meg
+
+//BEÁLLÍTÁSOK ABLAK BEMENET FÜL
+\XonoticSettingsDialog/Bemenet\Billentyűzetkiosztás, egér és botkormány beállítások
+\con_closeontoggleconsole\A konzol egy különleges interfész, amelynek segítségél különböző parancsokat tudsz adni a játéknak (a parancsok listáját megtalálhatod az Egyéb -> Haladó beállítások alatt). Ennek az opciónak a bekapcsolásával a konzolnyitó billentyűvel be is tudod zárni a konzolt. A konzolnyitó billentyű (BACKQUOTE) sajnos nem létezik magyar billentyűzeten, ezért ha ilyet használsz, először meg kell változtatnod a billentyű hozzárendelést a bal oldali listában (Kliens: belépés a konzolba), vagy használd a SHIFT+ESC kombinációt.
+\cl_movement_track_canjump\Ha lenyomva tartod mozgás közben az ugrás billentyűt, földet érés után automatikusan újra ugrik a karaktered
+\joy_enable\Ha botkormányt vagy kontrollert szeretnél használni a játék irányításához, kapcsold be ezt az opciót
+\sensitivity\Ezzel a csúszkával az egér érzékenységét tudod szabályozni. A magasabb értékek érzékenyebb egeret eredményeznek 
+\m_filter\Simítja az egérmozgást, de így célzás pontossága némiképp csökkenhet
+\m_pitch\Fordított egérmozgás az Y-tengely (fel-le) mentén
+\menu_mouse_speed\Egér sebessége a menüben, nincs hatással a játékbeli célzásra
+\m_accelerate\Amikor gyorsan húzod az egeret, a játék rásegít egy kicsit, de a lassú egérmozgások sebességét nem változtatja
+\vid_dgamouse\Segíti a DGA egér bemenet használatát
+
+//BEÁLLÍTÁSOK ABLAK VIDEÓ FÜL
+\XonoticSettingsDialog/Videó\Videó beállítások: képernyő felbontás, színmélység, fényerő, kontraszt, stb.
+\_menu_vid_width\A csúszkával a képernyő felbontását tudod megváltoztatni. TIPP: Ha több monitorod van, és a kép az összes monitorra szét van feszítve, akkor az Egyéb -> Haladó beállításokban keresd ki a listából a "vid_netwmfullscreen" változót, és állítsd át az értékét "1"-re! Ez megoldja problémát, de ebben az esetben csak a képernyőd natív felbontását tudod csak használni! 
+\menu_vid_scale\A csúszkával a menü és más feliratok betűméretét tudod beállítni
+\vid_bitsperpixel\Színmélyég BPP-ben (bits per pixel). Az ajánlott színmélyég 32bit
+\vid_fullscreen\Teljes képernyős mód engedélyezése (alapértelmezett: engedélyezve)
+\vid_vsync\A függőleges szinkronizáció engedélyezése, a megjelenített kép szétesésének megakadályozására. A másodpercenként leképzett képkockák számát (FPS) a képernyő frissítési frekvenciájához igazítja (alapértelmezett: kikapcsolva)
+\gl_texture_anisotropy\Az anizotrópikus szűrés használatával a megjelenített textúrák távolságtól függetlenül is élesek maradnak, így javul a képminőség. FIGYELEM! Jelentősen csökkenheti a teljesítményt gyengébb számítógépeken (alapérték: 1x)
+\vid_samples\Az élsimítás engedélyezésével a leképzett 3D-s tárgyak széleinek "csipkézettsége" csökken. FIGYELEM! Jelentősen csökkenheti a teljesítményt gyengébb számítógépeken (alapértelmezett: letiltva)
+\r_viewfbo\A jó minőségű Framebuffer használatával tovább javíthatod "Ragyogás" és a "Mozgási elmosódás" effektek minőségét. Az opció engedélyezése az Élsimítás tiltásával jár. 
+\r_depthfirst\Leképzés előtt egy távolságteszt történik, és az aktuális leképzés a közelebbi eseményekkel, tárgyakkal kezdődik. Ez vonatkozhat csak a világ geometriájára, illetve a modellekre is (alapértelmezett: letiltva)
+\gl_vbo\A gyorsabb leképzés érdekében a megjelenítendő statikus geometria a videó memóriában ún. Vertex Buffer Objectként kerül tárolásra (alapértelmezett: Csúcspontok és háromszögek, kompatibilis)
+\v_brightness\A képernyő fényereje, a fekete szín fényességének változtatásával (alapérték: 0)
+\v_contrast\A csúszkával a képernyő kontrasztját tud szabályozni, azaz a fehér szín fényességét (alapérték: 1)
+\v_gamma\Fordított gamma korrekciós érték, egy fényességi hatás , ami nem befolyásolja a fehéret vagy feketét (alapérték: 1)
+\v_contrastboost\A csúszkával a sötét területek kontrasztját tudod növelni (alapérték: 1)
+\r_glsl_saturation\Színtelítettség beállítása  (0 = szürke, 1 = normál, 2 = túltelített ), GLSL színkezelés szükséges (alapérték: 1)
+\r_ambient\Környezeti világítás, a túl magasra beállítás a kép fakóságát eredményezheti (alapérték: 4)
+\r_hdr_scenebrightness\Általános világosság  (alapérték: 1)
+\gl_finish\A processzor megvárja amíg a videókártya befejezi a képkockát leképzését, ez segíthet egyes gépeken jelentkező furcsa bemeneti és videó késés problémák kiküszöbölésében (alapértelmezett: letiltva)
+\r_glsl\Az OpenGL 2.0 pixel shaderek használatának engedélyezése (alapértelmezett: engedélyezve)
+\v_glslgamma\A GLSL alkalmazása a gamma korrekcióhoz, Megjegyzendő, hogy jelentősen csökkenheti a teljesítményt  (alapértelmezett: letiltva)
+\v_psycho\Ilyet lehet az, ha LSD hatása alatt játszol. FIGYELEM! Epilepsziások számára nagyon nem ajánlott!
+\r_trippy\A képernyő ide-oda hullámzik, mintha részeg lennél, mint a csap.
+\v_flipped\A teljes képernyő vízszintes tükrözése, "szegény ember bal kezes módja". (alapértelmezett: ki)
+
+//BEÁLLÍTÁSOK ABLAK HATÁSOK FÜL
+\XonoticSettingsDialog/Effektek\Különböző grafikai effektek beállításai: geometriai részletesség, textúra élesség, fények, árnyékolás, tükröződés, utófeldolgozás stb.
+\r_subdivisions_tolerance\A csúszkával az ívelt geometria finomságát, részletességét tudod szabályozni (alapértelmezett: normál)
+\gl_picmip\A csúszkával a textúrák élességét tudod beállítani. Kisebb érték hatásosan csökkenti a textúra memória használatot, de a textúrák megjelenése csúnyább, homályosabb lesz. (alapértelmezett: jó)
+\r_texture_dds_load\Veszteségmentes DDS textúrák használata TGA helyett, ha lehetséges
+\mod_q3bsp_nolightmaps\Nagy részletességű fénytérképek használata a statikus árnyékok leképzéséhez, ami szépen néz ki, de kissé megemeli a szükséges videó memória mennyiségét (alapértelmezett: engedélyezve)
+\r_glsl_deluxemapping\Képpontokkénti megvilágítás és árnyékolás használata a statikus fényekhez. A textúrák nagy része így olyan lesz, mintha valós felületük lenne. (alapértelmezett: engedélyezve)
+\r_shadow_gloss\A felületek felszínén megcsillanó fény engedélyezése. (alapértelmezett: engedélyezve)
+\cl_particles_quality\A különböző effektek (robbanások, becsapódások) által létrehozott effekt-részecskék számának szorzója. A kisebb értékek kevesebb részecske megjelenítését eredményezik, ami gyengébb gépeken növelheti a teljesítményt. (alapérték: 1.0)
+\r_drawparticles_drawdistance\A különböző effektek (robbanások, becsapódások) által létrehozott effekt-részecskék maximális megjelenítési távolsága (azaz ettől az értéktől messzebb már nem jelennek meg). (alapérték: 1000)
+\cl_damageeffect\A csúszkával a fegyverek típusától függően a sebzési effektek megjelenítését (pl. vérzés, kis lángnyelvek, elektromos kisülések stb.) szabályozhatod a játékos karaktereken (teljesen letilhatod, csak a játékosok testrészein jelenjenek meg, ahol a becsapódás történt, vagy minden modellen).  
+\cl_decals\Becsapódási nyomok (égési és robbanási nyomok, vérfoltok) engedélyzése és tiltása (alapértelmezett: engedélyezve)
+\cl_decals_models\Becsapódási nyomok, (égési nyomok, vérfoltok) engedélyzése és tiltása a játékos karakterek testén is
+\r_drawdecals_drawdistance\A becsapódási nyomok maximális megjelenítési távolsága (azaz ettől az értéktől messzebb már nem jelennek meg) (alapérték: 300)
+\cl_decals_time\A becsapódási nyomok eltűnésének kezdetének időtartama másodpercben mérve (alapérték: 2)
+\r_coronas\Fényudvarok megjelenítése bizonyos effektek körül. (alapértelmezett: engedélyezve)
+\r_coronas_occlusionquery\A fényudvarok elhalványítása láthatóságuk szerint (alapértelmezett: engedélyezve)
+\gl_flashblend\Gyors, de nagyon csúnya dinamikus fényekeffektek megjelenítése a valós dinamikus világítás helyett. Csak nagyon gyenge számítógépek esetén ajánlott (alapértelmezett: letiltva)
+\r_shadow_realtime_dlight\Dinamikus fényeffektek engedélyezése, mint pl. robbanások és rakéták fényei (alapértelmezett: engedélyezve)
+\r_shadow_realtime_dlight_shadows\A dinamikus fényeffektek árnyékokat is vetnek (alapértelmezett: letiltva)
+\r_shadow_realtime_world\Teljesen valós idejű és dinamikus megvilágítások engedélyezése azokon a pályákon, amik támogatják. FIGYELEM! Az opció bekapcsolása jelentősen ronthatja a grafikai teljesítményt, az opció bekapcsolása csak nagyon erős számítógéppel rendelkezők számára ajánlott! (alapértelmezett: letiltva)
+\r_shadow_realtime_world_shadows\A teljesen valós idejű és dinamikus fények árnyékokat is vetnek. FIGYELEM! Az opció bekapcsolása jelentősen ronthatja a grafikai teljesítményt, az opció bekapcsolása csak nagyon erős számítógéppel rendelkezők számára ajánlott! (alapértelmezett: letiltva)
+\r_shadow_usenormalmap\A dinamikus fényeffektek által vetett árnyékok megjelenítése a textúrákon (alapértelmezett: engedélyezve)
+\r_shadow_shadowmapping\A dinamikus fényeffektek által vetett árnyékok simítása, finomítása. Az opció használatához engedélyezned kell a Vertex Buffer Objectek használatát (Videó fül).
+\r_glsl_offsetmapping\A texúrák kidomborításának engedélyezése, mintha valódi felületük lenne (alapértelmezett: letiltva)
+\r_glsl_offsetmapping_reliefmapping\Még jobb minőségű, finomabb Offset mapping. FIGYELEM! Az opció bekapcsolása jelentősen ronthatja a grafikai teljesítményt, az opció bekapcsolása csak nagyon erős számítógéppel rendelkezők számára ajánlott! (alapértelmezett: letiltva)
+\r_bloom\A fényes testek felületén végigfutó halvány, derengő ragyogás engedélyezése FIGYELEM! Az opció bekapcsolása jelentősen ronthatja a grafikai teljesítményt, az opció bekapcsolása csak nagyon erős számítógéppel rendelkezők számára ajánlott! (alapértelmezett: letiltva).
+\r_water\Valós idejű tükröződések, portálok és fénytörések engedélyzése. FIGYELEM! Az opció bekapcsolása jelentősen ronthatja a grafikai teljesítményt, az opció bekapcsolása csak nagyon erős számítógéppel rendelkezők számára ajánlott!  (alapértelmezett: letiltva)
+\r_water_resolutionmultiplier\Tükröződések/A csúszkával a valós idejű tükröződési effektek minőségét tudod szabályozni. (alapértelmezett: jó)
+\r_motionblur\A csúszkával a mozgási elmosódás intenzivitását tudod szabályozni. Az ajánlott érték 0.4
+\hud_postprocessing_maxbluralpha\Extra képernyő effektek engedélyezése, mint pl. víz alatti hullámok, Sebzésnövelő használata során extra kontrasztos látómező stb.
+
+//BEÁLLÍTÁSOK ABLAK HANG FÜL
+\XonoticSettingsDialog/Hang\Hang beállítások: sávok és csatornák hangerejének beállítása, figyelmeztető hangok, gúnyolódások stb. 
+\mastervolume\A csúszkával a játék általános hangerejét állíthatod be 
+\bgmvolume\A csúszkával a játék háttérzenéjének hangerejét állíthatod be
+\snd_staticvolume\A csúszkával a pályák háttérzajainak (gépek motorhangjai, lámpák zümmögése, dörgés stb.) hangerejét állíthatod
+\snd_channel0volume\A csúszkával a játék során hallható információs hangok (figyelmeztetések, visszaszámlálások stb.) 
+\snd_channel3volume\A csúszkával a játék során a felvett tárgyak effektjeinek hangerejét állíthatod be
+\snd_channel6volume\A csúszkával a játékosok fájdalmas nyögéseinek és sikolyainak hangerejét állíthatod be
+\snd_channel7volume\A csúszkával a játékosok egyéb hangjainak hangerejét állíthatod be
+\snd_channel4volume\A csúszkával a robbanások, becsapódások hangerejét állíthatod be
+\snd_channel2volume\A csúszkával a játékosok gúnyolódásainak és egyéb üzeneteinek hangerejét állíthatod be
+\snd_channel1volume\A csúszkával a fegyverek elsülésének hangerejét állíthatod be
+\snd_mutewhenidle\A játék teljes némítása, ha pl. ALT-TAB-bal átváltasz egy másik programra, minimalizálod, stb.
+\snd_speed\Hang kimenet frekvenciája
+\snd_channels\A hang kimenet csatornáinak száma 
+\snd_swapstereo\A jobb és bal hangcsatornák felcserélése
+\snd_spatialization_control\A jobb és bal hangcsatornák enyhe összemosása, a sztereó szétválasztás csökkentésére fejhallgatókban
+\cl_autotaunt\Ha megölsz valakit, kigúnyolod egy mindenki álltal hallható hangüzenetben. A csúszkával ezeknek a beszólásoknak a gyakoriságát változtathatod
+\cl_sound_maptime_warning\Figyelmeztető hang, ami a meccsből hátralévő percekről tájékoztat
+\cl_hitsound\Találatjelző hang adása, ha sikeresen eltaláltad az ellenségedet
+\menu_sounds\Menühangok engedélyezése, ha valamire rákattintasz, vagy az opciók felett mozgatod az egeret
+\con_chatsound\Pittyenések szöveges csevely üzenetek esetén
+\cl_announcer_maptime\Figyelmeztető hangok lejátszása az adott játékból hátralévő időről. Ez történhet az utolsó egy percben, csak akkor, ha még 5 perc van hátra, vagy mindkét esetben
+
+//BEÁLLÍTÁSOK ABLAK FELHASZNÁLÓ FÜL
+\XonoticSettingsDialog/Felhasználó\Menü felületek, nyelvezet beállítása, statisztika stb.
+\XonoticSettingsDialog/Nyelv beállítása\A játék fordításának és nyelvezetének beállítása. A gombra kattintva a játék menüje újraindul a listában kiválasztott fordítással
+\cl_gentle\A véres és erőszakos grafikai tartalmak cserélése színes mintákká, "gyerek barát mód" (alapértelmezett: letiltva)
+\cl_allow_uidtracking\Játékos statisztikák gyűjtésének és elküldésének engedélyezése, mint pl. tüzelési pontosság, gyilokok száma, összegyűjtött pontok, stb. A statisztikák bármikor megtekinthetők a http://stats.xonotic.org weboldalon 
+\cl_allow_uid2name\Az opció engedélyezésével a http://stats.xonotic.org weboldalon a nickneved is szerepelni fog, így könnyebben megtalálhatod magad
+
+//BEÁLLÍTÁSOK ABLAK EGYÉB FÜL
+\XonoticSettingsDialog/Egyéb\Hálózati beállítások, FPS limit, haladó beállítások stb.
+\_cl_rate\A csúszkával a hálózati kapcsolatod sebessége és típusát tudod meghatározni 
+\cl_netfps\A csúszkával a szerver felé küldött adatcsomagok másodpercenkénti számát tudod beállítani. Magasabb érték finomabb mozgást eredményezhet.
+\cl_port\Az adott UDP port használata az alapértelmezett helyett
+\shownetgraph\Csomagméret és egyéb információk grafikonjának kirajzolása játék közben a képernyő jobb alsó sarkába
+\cl_movement\Kliensoldali mozgásbecslés engedélyezése. Ez az opció rossz minőségű, vagy lassú kapcsolat esetén segíthet a késés (lag) okozta mozgási problémák javításában
+\cl_movement_errorcompensation\Összeveti a szerver és a kliens adatait a mozgásról, tovább finomítva és pontosítva azt
+\cl_curl_maxdownloads\A csúszkával az egyszerre futó HTTP/FTP letöltések (pályák, modellek stb.) maximális számát tudod beállítani
+\cl_curl_maxspeed\A csúszkával a maximális letöltési sebességet tudod beállítani
+\cl_maxfps\A csúszkával a maximális képfrissítési (képkocka per másodperc, FPS) sebességet tudod beállítani.
+\cl_minfps\A csúszkával a minimális képfrissítési (képkocka per másodperc, FPS) sebességet tudod beállítani. Ha a gép teljesítménye nem bírja, akkor a játék automatikusan visszavesz egyes grafikai elemek minőségéből, hogy a kívánt minimális értéket tartani tudja
+\showfps\A másodpercenként megjelenített képkockák (FPS) számának kijelzése a képernyő jobb alsó sarkában  
+\menu_tooltips\A csúszkával a menüopciók tippjeinek részletesség tudod beállítani. Letilthatod az összes tippet, iletve a "Részletes" választása esetén a tippek mellett az adott változó is megjelenik
+\showtime\Az aktuális időt kijelzése a képernyő jobb alsó sarkában
+\showdate\Az aktuális dátum kijelzése a képernyő jobb alsó sarkában
+\developer\Fejlesztők számára fenntartott menü opció, rendszerüzenetek és egyéb információk kijelzésére, RENDES JÁTÉK ESETÉN BEKAPCSOLÁSA NEM AJÁNLOTT. Hasznos lehet ellenben hibakeresés és bejelentés során.
+\XonoticSettingsDialog/Haladó beállítások...\Haladó beállítások, ahol finomíthatod a játék minden egyes változóját. Ha nem értesz hozzá, inkább ne piszkáld...
+
+\XonoticTeamSelectDialog/Csatlakozás a 'legjobb' csapathoz (auto-választás)\Automatikus csapatválasztás a játék állásának és játékosok számának függvényében (ajánlott)
+\XonoticTeamSelectDialog/Vörös\Csatlakozás a Vörös csapathoz
+\XonoticTeamSelectDialog/Kék\Csatlakozás a Kék csapathoz
+\XonoticTeamSelectDialog/Sárga\Csatlakozás a Sárga csapathoz
+\XonoticTeamSelectDialog/Rózsaszín\Csatlakozás a Rózsaszín csapathoz
 
-\XonoticSettingsDialog\A beállítások megváltoztatása
-\XonoticCreditsDialog\A Xonotic készítőinek és segítségnyújtóinak listája
 \XonoticTeamSelectDialog\-
 \XonoticMutatorsDialog\-
 \XonoticMapInfoDialog\-
 \XonoticServerInfoDialog\-
 \XonoticCvarsDialog\-
 
+\XonoticCreditsDialog\A Xonotic készítőinek és segítségnyújtóinak listája
 \XonoticQuitDialog\Kilépés a játékból
 \XonoticQuitDialog/Igen\Vissza a munkához...
 \XonoticQuitDialog/Nem\A mészárlás folytatódik!
 
-\XonoticSettingsDialog/Bemenet\Bemenet szabályozása
-\sensitivity\Egér sebesség többszörözése
-\menu_mouse_speed\Egér sebessége a menüben, nincs hatással a játékbeli célzásra
-\m_filter\Elsimítja az egérmozgást, de a célzás érzékenység némiképp csökken
-\m_pitch\Fordított egérmozgás az Y-tengely mentén
-\vid_dgamouse\Segíti a DGA egér bemenet használatát
-\con_closeontoggleconsole\Lehetővé teszi, hogy a konzolnyitó billentyű, a következő megnyomásra visszazárja azt
-
-\XonoticSettingsDialog/Kép\Kép beállítások
-\vid_width\Képernyő felbontás
-\vid_bitsperpixel\Hány bit per pixel(BPP)-el jelenítse meg a képet, 32 az ajánlott
-\vid_fullscreen\Teljes képernyős mód engedélyezése (alapértelmezett: engedélyezve)
-\vid_vsync\A függőleges szinkronizáció engedélyezése, hogy  megelőzze a kép szétesését, a másodpercenkénti képkockák számát a képernyő frissítési rátához igazítja (alapértelmezett: letiltva)
-\r_glsl\Az OpenGL 2.0 pixel árnyalók  alkalmazása a világításhoz (alapértelmezett: engedélyezve)
-\gl_vbo\A statikus geometriákhoz Vertex Buffer Object-eket  használ a videómemóriában a gyorsabb számítás érdekében (alapértelmezett: Csúcspontok és háromszögek)
-\r_depthfirst\Eltávolítja a kép csak a távolban tartozó részeit, mielőtt a normál számítás kezdődne (alapértelmezett: letiltva)
-\gl_texturecompression\Textúrák tömörítése, hogy a videokártyán található memóriából kevesebbet használjon (alapértelmezett: nem)
-\gl_finish\A CPU megvárja amíg a GPU befejezi a képkockát leképzését, ez segít egyes gépeken jelentkező furcsa bemeneti és videó késés elkerülésében (alapértelmezett: letiltva)
-\v_brightness\A fekete fényessége (alapérték: 0)
-\v_contrast\A fehér fényessége (alapérték: 1)
-\v_gamma\Fordított gamma korrekciós érték, egy fényességi hatás , ami nem befolyásolja a fehéret vagy feketét (alapérték: 1.125)
-\v_contrastboost\Milyen mértékben erősítse a sötét területek kontrasztját (alapérték: 1)
-\r_glsl_saturation\Színtelítettség beállítása  (0 = szürke, 1 = normál, 2 = túltelített ), GLSL színkezelés szükséges (alapérték: 1)
-\v_glslgamma\A GLSL alkalmazása a gamma korrekcióhoz, Megjegyzendő, hogy jelentősen csökkenheti a teljesítményt  (alapértelmezett: letiltva)
-\r_ambient\Környezeti világítás, ha túl magasra van állítva a térkép fakónak és laposnak tűnhet (alapérték: 4)
-\r_hdr_scenebrightness\Általános  számítási világosság  (alapérték: 1)
-\vid_samples\Élsimítás engedélyezés, 3D-s tárgyak szélének csipkézettségét csökkenti. Megjegyzendő, hogy jelentősen csökkenheti a teljesítményt  (alapértelmezett: letiltva)
-\v_flipped\Szegény ember bal kezes módja (alapértelmezett: ki)
-
-****
-\XonoticSettingsDialog/Hatások\Hatások beállítása
-\r_subdivisions_tolerance\Az ívek finomságának változtatása a pályán (alapértelmezett: normál)
-\gl_picmip\ A textúrák élességének változtatása. Kisebb érték hatásosan csökkenti a textúra memória használatot, de a textúrák megjelenése homályosabb lehet. (alapértelmezett: jó)
-\r_picmipworld\Ha ha be van állítva, csak a modellek textúra minősége csökken (alapértelmezett: engedélyezve)
-\mod_q3bsp_nolightmaps\Magas felbontású fény térképek használata, ami szépen néz ki, de megemeli a szükséges videó memória mennyiségét (alapértelmezett: engedélyezve)
-\cl_particles_quality\A részecskék számának megtöbbszörözése. Kisebb érték kevesebb részecskét jelent, ami jobb teljesítményt ad (alapérték: 1,0)
-\r_drawparticles_drawdistance\A részecskék csak eddig a távolsági rajzolódnak ki  (alapérték: 1000)
-\cl_decals\Foltok engedélyzése (égési és robbanási nyomok, vérfoltok)  (alapértelmezett: engedélyezve)
-\r_drawdecals_drawdistance\A minták csak eddig a távolsági rajzolódnak ki (alapérték: 300)
-\cl_decals_time\A foltok eltűnésének kezdetének időtartama másodpercben (alapérték: 2)
-\cl_gentle\Kicseréli a vért és húscafatokat olyan tartalomra, ami nem tartalmaz vérontást (alapértelmezett: letiltva)
-\cl_nogibs\A húscafatok mennyiségének csökkentése vagy teljesen eltávolítása (alapértelmezett: sok)
-\v_kicktime\Mennyi ideig legyen a kép kiütve a  sérülés után (alapérték: 0)
-\gl_texture_anisotropy\Anizotropikus  szűrés minősége (alapérték: 1x)
-\r_glsl_deluxemapping\Képpontokkénti világítás hatások használata (alapértelmezett: engedélyezve)
-\r_shadow_gloss\Csillogás a textúrákon, amik támogatják azt (alapértelmezett: engedélyezve)
-\gl_flashblend\A gyorsabb, de csúnyább dinamikus fények engedélyezése a világos fénykörök számításához, a valós dinamikus világítás helyett (alapértelmezett: letiltva)
-\r_shadow_realtime_dlight\A dinamikus világítások engedélyezése, mint robbanások és rakéták fényei (alapértelmezett: engedélyezve)
-\r_shadow_realtime_dlight_shadows\Árnyékok számítása a dinamikus fényekből (alapértelmezett: letiltva)
-\r_shadow_realtime_world\A teljes valósidejű világ világítások engedélyezése azokon a térképeken, amik támogatják Megjegyzendő, hogy jelentősen csökkenheti a teljesítményt  (alapértelmezett: letiltva)
-\r_shadow_realtime_world_shadows\A valósidejű világ fényekhez tartozó árnyékok engedélyezése (alapértelmezett: letiltva)
-\r_shadow_usenormalmap\Irányított árnyékok használatának engedélye a textúrákon (alapértelmezett: engedélyezve)
-\r_showsurfaces\Textúra összetettség letiltása nagyon lassú gépeken. Ez egy  nagy gyorsulást hozz a teljesítményben, de nagyon csúnyán néz ki. (alapértelmezett: letiltva)
-\r_glsl_offsetmapping\Offset mapping hatás , ami rücskössé teszi a textúrák megjelenését, mintha kiállna a 2D-s felületből (alapértelmezett: letiltva)
-\r_glsl_offsetmapping_reliefmapping\Magasabb minőségű offset mapping, ami szintén óriási hatása van a teljesítményre   (alapértelmezett: letiltva)
-\r_water\Tükröződések és fénytörések minősége, óriási hatással van a teljesítményre azokon a pályákon, ahol vannak tükröződő felületek (alapértelmezett: letiltva)
-\r_water_resolutionmultiplier\Tükröződések/fénytörések felbontása (alapértelmezett: jó)
-\r_coronas\A fényudvar engedélyezése bizonyos világítás körül. (alapértelmezett: engedélyezve)
-\r_coronas_occlusionquery\A fényudvar elhalványodik a láthatósága szerint (alapértelmezett: engedélyezve)
-\r_bloom\A bloom hatás engedélyezése, aminél a nagyon világos pixelek növelik a szomszédaik világosságát is. Nagy hatással van a teljesítményre. (alapértelmezett: letiltva)
-\r_hdr\A bloom magas minőségű verziója, ami óriási hatással van a teljesítményre. (alapértelmezett: letiltva)
-\r_motionblur\Mozgási elmosódás nagysága - ajánlott értéke 0.5
-\r_damageblur\Mozgási elmosódás mértéke sérülés esetén – ajánlott értéke 0.4 
-
-****
-\XonoticSettingsDialog/Hang\Hang beállítás
-\mastervolume\-
-\bgmvolume\-
-\snd_staticvolume\-
-\snd_channel0volume\-
-\snd_channel3volume\-
-\snd_channel6volume\-
-\snd_channel7volume\-
-\snd_channel4volume\-
-\snd_channel2volume\-
-\snd_channel1volume\-
-\snd_speed\Hang kimenet frekvenciája
-\snd_channels\A hang kimenet csatornáinak száma 
-\snd_swapstereo\Jobb/bal csatorna felcserélése
-\snd_spatialization_control\Közelítés engedélyezése (kissé összemossa a jobb és bal csatornát, hogy csökkentse a sztereó szétválasztást a fejhallgatókban)
+//SEHOL SE HASZNÁLT, DE MÉG JÓL JÖHET KÉSŐBB
 \cl_voice_directional\Irányított hangok engedélyezése
 \cl_voice_directional_taunt_attenuation\A távolság, ahonnan a gúnyolódás még hallható
-\cl_autotaunt\Az ellenség mindig gúnyolódik, ha legyüröd
-\cl_sound_maptime_warning\Kihirdető hang, ami a meccsből hátralévő percekről tájékoztat
-\cl_hitsound\Egy találatjelző hang, ha sikeres lövés vittél be az ellenségre
-\menu_sounds\Hang lejátszás, ha klikkelsz vagy a menüpontok fölött siklasz
+\viewsize\HUD hátterének engedélyezése/letiltása
+\r_hdr\A bloom magas minőségű verziója, ami óriási hatással van a teljesítményre. (alapértelmezett: letiltva)
+\r_damageblur\Mozgási elmosódás mértéke sérülés esetén – ajánlott értéke 0.4
+\r_showsurfaces\Textúra összetettség letiltása nagyon lassú gépeken. Ez egy  nagy gyorsulást hozz a teljesítményben, de nagyon csúnyán néz ki. (alapértelmezett: letiltva)
+\r_picmipworld\Ha ha be van állítva, csak a modellek textúra minősége csökken (alapértelmezett: engedélyezve)
+\gl_texturecompression\Textúrák tömörítése, hogy a videokártyán található memóriából kevesebbet használjon (alapértelmezett: nem)
 
-\XonoticSettingsDialog/Hálózat\Hálózat beállítások
-\cl_movement\Kliensoldali mozgás jóslás engedélyezés
+\v_kicktime\Mennyi ideig legyen a kép kiütve a  sérülés után (alapérték: 0)
 \cl_nolerp\Engedélyezi a hálózat frissítés simítását
-\shownetgraph\Csomagméret és egyéb információk grafikonjának kirajzolása
-\_cl_rate\A hálózat sebessége határozható meg ezzel a csúszkával
-\cl_netfps\A szervernek küldött bemeneti csomagot másodpercenkénti száma 
-\cl_curl_maxdownloads\Az egyszerre futó HTTP/FTP letöltések maximális száma
-\cl_curl_maxspeed\Maximum letöltési sebesség
-\cl_port\Kényszeríti a klienst, hogy a választott portot használja, amíg nem 0 az érték
-
-\XonoticSettingsDialog/Egyéb\Egyéb beállítások
-\showtime\Az aktuális időt mutatja, kép mentésekor hasznos
-\showdate\Az aktuális dátumot mutatja, kép mentésekor hasznos
-\showfps\A másodpercenként megjelenített képkockák száma
-
-\XonoticSettingsDialog/Haladó beállítások...\Haladó beállítások, ahol finomíthatod a játék minden egyes változóját
-\g_friendlyfire\Sérülés százaléka, amit a csapattársadnak okozol
-\g_mirrordamage\Általad okozott csapatsérülés százaléka, amit te szenvedsz el
-\g_tdm_teams_override\Csapatjátékban felülbírálja a csapatok számának alapbeállítását
-
-\viewsize\HUD háttér engedélyezés/letiltás
-\cl_hidewaypoints\Különböző játéktípus specifikus iránypontok mutatása
-\g_waypointsprite_scale\Az iránypontok szorzódásának mértéke
-\g_waypointsprite_alpha\Az iránypontok átlátszóságának ellenőrzése
-\cl_shownames\Az éppen célba vett játékos nevének mutatása
-
-\crosshair_hittest\Nincs: a találat nincs hatással a célkeresztre; Valós célzás: elmossa a célkeresztet, mikor nem a falat találod el; Ellenségek: Fel is nagyítja a célkeresztet, mikor egy ellenfelet találsz el
index edc75b504675db5ff289c19364aa54b2a202ae01..180076f7719061b60d2b74d6d3c6c799b8ddde8b 100644 (file)
 \vid_bitsperpixel\Bit per pixel (BPP) per il rendering, 32 è raccomandato
 \vid_fullscreen\Abilita modalità a tutto schermo (predefinito: abilitato)
 \vid_vsync\Abilita la sincronizzazione verticale per prevenire la lacrimazione (tearing), imposta il limite massimo di fps alla velocità di aggiornamento dello schermo (predefinito: disabilitato)
+\gl_texture_anisotropy\Qualità del filtro anisotropico (predefinito: 1x)
 \r_glsl\Abilita i pixel shader OpenGL 2.0 per l'illuminazione (predefinito: abilitato)
 \gl_vbo\Fai uso dei Vertex Buffer Objects per salvare nella memoria grafica la geometria statica per un rendering più veloce (predefinito: Vertici e Triangoli)
 \r_depthfirst\Elimina eccesso di disegno (overdraw) eseguendo il rendering della sola profondità della scena prima di iniziare il rendering "standard" (predefinito: disabilitato)
 \cl_gentle\Sostituisci il sangue e i gib con contenuti che non hanno alcun effetto di sangue (predefinito: disabilitato)
 \cl_nogibs\Riduci il numero di gib o rimuovili completamente (predefinito: parecchi)
 \v_kicktime\Quanto dura un colpo alla visuale per il danno (predefinito: 0)
-\gl_texture_anisotropy\Qualità del filtro anisotropico (predefinito: 1x)
 \r_glsl_deluxemapping\Usa gli effetti di illuminazione pixel per pixel (predefinito: abilitati)
 \r_shadow_gloss\Abilita l'uso della lucentezza delle mappe sulle texture che la supportano (predefinito: abilitati)
 \gl_flashblend\Abilita luci dinamiche più veloci ma meno gradevoli tramite il rendering di corone luminose invece di luci dinamiche reali (predefinito: disabilitato)
 \r_coronas_occlusionquery\Dissolvi corone rispetto a visibilità (predefinito: abilitato)
 \r_bloom\Abilita effetti bloom, che illuminano i pixel più vicini a pixel molto luminosi. Hanno un grosso impatto sulle performance. (predefinito: disabilitato)
 \r_hdr\Versione a più alta qualità dei bloom, che hanno un enorme impatto sulle performance. (predefinito: disabilitato)
-\r_motionblur\Forza della sfocatura da movimento - raccomandato a 0.5
-\r_damageblur\Ammontare della sfocatura da movimento quando si è colpiti - raccomandato a 0.4
+\r_motionblur\Intensità della sfocatura da movimento - raccomandato a 0.4
 
 \XonoticSettingsDialog/Audio\Impostazioni audio
 \mastervolume\-
 \g_waypointsprite_alpha\Controlla la trasparenza dei waypoint
 \cl_shownames\Mostra il nome del giocatore a cui stai mirando
 
-\crosshair_hittest\Nessuno: non fare il test di colpire per il mirino; TrueAim: sfoca il mirino quando non colpiresti il muro; Nemici: allarga anche il mirino quando colpiresti un nemico
+\crosshair_hittest\Nessuno: non fare test di colpo a segno per il mirino; VeraMira: sfoca il mirino quando non colpiresti il muro; Nemici: allarga anche il mirino quando colpiresti un nemico
index aebb0b35b1f6952d576dcba91e85c87bb296aefd..9a6d72fbc51d9bb8801465d9840f1c25a150c63a 100644 (file)
@@ -28,6 +28,7 @@
 \sv_vote_simple_majority_factor\Простое большинство выигрывает голосование
 \XonoticMultiplayerDialog/Advanced settings...\Дополнительные серверные настройки
 \XonoticMultiplayerDialog/Mutators...\Мутаторы и арены оружий
+\g_dodging\Enable dodging
 \g_cloaked\Все игроки почти невидимы
 \g_footsteps\Включить звуки шагов
 \g_midair\Только находящиеся в воздухе получают повреждения
 \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\Настроить размер перекрестья
 \crosshair_color_alpha\Настроить прозрачность перекрестья
-\crosshair_color_red\Красная составляющая цвета перекрестья
-\crosshair_color_green\Зелёная составляющая цвета перекрестья
-\crosshair_color_blue\Синяя составляющая цвета перекрестья
+\crosshair_color\Adjust the crosshair color
 \sbar_hudselector\Use the old HUD layout
 \XonoticMultiplayerDialog/Waypoints setup...\-
 \_cl_name\Имя, под которым вы появитесь в игре
 \m_pitch\Обратить движения мыши по вертикальной оси
 \vid_dgamouse\Использовать DGA ввод для мыши
 \con_closeontoggleconsole\Использовать привязку для открытия консоли также и для её сокрытия
-\sbar_showbinds\Отображать действия / привязанные клавиши в строках, показываемых во время игры
-\cl_showpressedkeys\Показывать, какие кнопки движений нажимает игрок
 
 \XonoticSettingsDialog/Изображение\Настройки изображения
 \vid_width\Разрешение экрана
 \vid_bitsperpixel\Сколько бит на точку использовать для вывода, советуется 32
 \vid_fullscreen\Включить полноэкранный режим (по умолчанию: включено)
 \vid_vsync\Enable vertical synchronization to prevent tearing, will cap your fps to the screen refresh rate (default: disabled)
+\gl_texture_anisotropy\Anisotropic filtering quality (default: 1x)
 \r_glsl\Enable OpenGL 2.0 pixel shaders for lightning (default: enabled)
 \gl_vbo\Make use of Vertex Buffer Objects to store static geometry in video memory for faster rendering (default: Vertex and Triangles)
 \r_depthfirst\Eliminate overdraw by rendering a depth-only version of the scene before the normal rendering starts (default: disabled)
 \cl_gentle\Replace blood and gibs with content that does not have any gore effects (default: disabled)
 \cl_nogibs\Reduce the amount of gibs or remove them completely (default: lots)
 \v_kicktime\How long a view kick from damage lasts (default: 0)
-\gl_texture_anisotropy\Anisotropic filtering quality (default: 1x)
 \r_glsl_deluxemapping\Use per-pixel lighting effects (default: enabled)
 \r_shadow_gloss\Enable the use of glossmaps on textures supporting it (default: enabled)
 \gl_flashblend\Enable faster but uglier dynamic lights by rendering bright coronas instead of real dynamic lights (default: disabled)
 \r_coronas_occlusionquery\Fade coronas according to visibility (default: enabled)
 \r_bloom\Enable bloom effect, which brightens the neighboring pixels of very bright pixels. Has a big impact on performance. (default: disabled)
 \r_hdr\Higher quality version of bloom, which has a huge impact on performance. (default: disabled)
-\r_motionblur\Motion blur strength - 0.5 recommended
-\r_damageblur\Amount of motion blur when hurt - 0.4 recommended
+\r_motionblur\Motion blur strength - 0.4 recommended
 
 \XonoticSettingsDialog/Звук\Настройки звука
 \mastervolume\-
 \cl_port\Force client to use chosen port unless it is set to 0
 
 \XonoticSettingsDialog/Разное\Разные настройки
+\menu_tooltips\Menu tooltips: disabled, standard or advanced (also shows cvar or console command bound to the menu item)
 \showtime\Показывать текущее время, полезно на снимках экранов
 \showdate\Показывать текущую дату, полезно на снимках экранов
 \showfps\Show your rendered frames per second
-\cl_showspeed\Показывать скорость игрока
-\cl_showspeed_unit\Выбор единиц измерения спидометра. qu/s = quake units/second = дюйм/секунду
-\cl_showacceleration\Показывать ускорение игрока
-\cl_showacceleration_scale\Excaggerate the accelerometer by this scale multiplier
 
 \XonoticSettingsDialog/Advanced settings...\Продвинутые настройки, в которых можно подстроить каждую переменную игры
 \g_friendlyfire\Доля урона, получаемого союзниками от союзников
 \g_mirrordamage\Доля урона, наносимого союзнику, которая будет отражена на себя
 \g_tdm_teams_override\Заменить значение по умолчанию количества команд в командных играх
 
-\cl_teamradar_position\-
-\cl_teamradar_size\-
-\cl_teamradar_zoommode\-
-\cl_teamradar_rotation\-
-\cl_teamradar_scale\-
-\cl_teamradar_foreground_alpha\-
-\cl_teamradar_background_alpha\Значение прозрачности фона радара
 \viewsize\Включить/выключить фон HUD
-\sbar_alpha_bg\Значение прозрачности фона HUD
-\sbar_color_bg_r\Красная составляющая цвета фона HUD
-\sbar_color_bg_g\Зелёная составляющая цвета фона HUD
-\sbar_color_bg_b\Синяя составляющая цвета фона HUD
-\sbar_color_bg_team\Насыщенность командного цвета фона HUD
 \cl_hidewaypoints\Показывать различные отметки, определяемые видом игры
 \g_waypointsprite_scale\Множитель размера отметок
 \g_waypointsprite_alpha\Управление прозрачностью отметок
index 18df45040b6e82620cb3cc323c015eba43304ce6..31695a6315400860e849782bed2131e298ee2f4d 100644 (file)
 \vid_bitsperpixel\Скільки використовувати бітів на піксель (BPP), рекомендується 32
 \vid_fullscreen\На повний екран (за замовчуванням: увімкнуто)
 \vid_vsync\Вмикає вертикальну синхронізацію щоб запобігти розривам зображення, ваші FPS не будуть підніматися вище швидкості оновлення монітору (за замовчуванням: увімкнуто)
+\gl_texture_anisotropy\Якість анізотропної фільтрації (за замовчуванням: 1x)
 \r_glsl\Вмикає піксельні шейдери OpenGL 2.0 для освітлення (за замовчуванням: увімкнуто)
 \gl_vbo\Використовувати Vertex Buffer Objects щоб зберігати нерухому геометрію у відеопам'яті для прискорення рендеренгу (за замовчуванням: вершини та трикутники)
 \r_depthfirst\Прибирає перекриття одних пікселів іншими створюючи спочатку версію сцени з лише глибиною (за замовчуванням: вимкнуто)
 \cl_gentle\Замінити шматки тіла та кров не жорстокими елементами (за замовчуванням: вимкнуто)
 \cl_nogibs\Зменшити кількість шматків тіла, або відключити їх зовсім (за замовчуванням: багато)
 \v_kicktime\Як довго триватиме поштовх від ураження (за замовчуванням: 0)
-\gl_texture_anisotropy\Якість анізотропної фільтрації (за замовчуванням: 1x)
 \r_glsl_deluxemapping\Використовувати попіксельні ефекти освітлення (за замовчуванням: увімкнуто)
 \r_shadow_gloss\Вмикає використання мап блиску на текстурах, які їх підтримують (за замовчуванням: увімкнуто)
 \gl_flashblend\Вмикає швидкіше, але не таке гарне динамічне освітлення за допомогою яскравих корон, а не справжніх динамічних вогнів (за замовчуванням: вимкнуто)
 \r_coronas_occlusionquery\Прибирати корони відповідно з видимістю (за замовчуванням: увімкнуто)
 \r_bloom\Увімкнути ефект bloom, який освітлює ближні пікселі дуже яскравих пікселів. Має сильний вплив на продуктивність (за замовчуванням: вимкнуто)
 \r_hdr\Якісніша версія ефекту bloom, сильно впливає на продуктивність (за замовчуванням: вимкнуто)
-\r_motionblur\Сила ефекту motion blur - рекомендується 0.5
-\r_damageblur\Кількість motion blur під час поранення - рекомендується 0.4
+\r_motionblur\Сила ефекту motion blur - рекомендується 0.4
 
 \XonoticSettingsDialog/Звук\Налаштування аудіо
 \mastervolume\-
 \cl_port\Змушувати клієнта використовувати обраний порт, але тільки якщо значення не 0
 
 \XonoticSettingsDialog/Різне\Різні налаштування
+\menu_tooltips\Menu tooltips: disabled, standard or advanced (also shows cvar or console command bound to the menu item)
 \showtime\Показувати поточний час, корисно для скриншотів
 \showdate\Показувати поточну дату, корисно для скриншотів
 \showfps\Показувати лічильник кадрів за секунду
index 33fb4140baa7b79a3938cb63029e745f781ab7ef..a3aa34de800b1f7bd599b6f3c88629687f6df3e7 100644 (file)
@@ -4,57 +4,58 @@ set g_vehicle_racer_health              190
 set g_vehicle_racer_health_regen        0
 set g_vehicle_racer_health_regen_pause  0
 
-set g_vehicle_racer_shield              75
-set g_vehicle_racer_shield_regen        25
+set g_vehicle_racer_shield              70
+set g_vehicle_racer_shield_regen        30
 set g_vehicle_racer_shield_regen_pause  1
 
-set g_vehicle_racer_energy              125
+set g_vehicle_racer_energy              100
 set g_vehicle_racer_energy_regen        40
 set g_vehicle_racer_energy_regen_pause  1
 
-set g_vehicle_racer_speed_stop          2000
-set g_vehicle_racer_speed_forward       800
+set g_vehicle_racer_speed_stop          2500
+set g_vehicle_racer_speed_forward       500
 set g_vehicle_racer_speed_strafe        500
-set g_vehicle_racer_speed_afterburn     2000
-set g_vehicle_racer_friction            0.4
-set g_vehicle_racer_afterburn_cost      60      // energy consumed per second
+set g_vehicle_racer_speed_afterburn     3000
+set g_vehicle_racer_friction            0.3
+set g_vehicle_racer_afterburn_cost      50      // energy consumed per second
 
 set g_vehicle_racer_hovertype           0       // 0 = hover, != 0 = maglev
-set g_vehicle_racer_hoverpower          5000    // NOTE!! x 4 (4 engines)
+set g_vehicle_racer_hoverpower          7500    // NOTE!! x 4 (4 engines)
 set g_vehicle_racer_upforcedamper       10
 
 set g_vehicle_racer_downforce            0.01
-set g_vehicle_racer_springlength         65
+set g_vehicle_racer_springlength         70
 set g_vehicle_racer_collision_multiplier 0.05
 set g_vehicle_racer_anglestabilizer      1.75
 
 set g_vehicle_racer_turnspeed          200
 set g_vehicle_racer_pitchspeed         100
-set g_vehicle_racer_maxpitch           25
-set g_vehicle_racer_turnroll           32
+set g_vehicle_racer_maxpitch           20
+set g_vehicle_racer_turnroll           16
 
 set g_vehicle_racer_cannon_speed        9000
-set g_vehicle_racer_cannon_damage       20
+set g_vehicle_racer_cannon_damage       25
 set g_vehicle_racer_cannon_radius       100
 set g_vehicle_racer_cannon_refire       0.1
-set g_vehicle_racer_cannon_cost         4
+set g_vehicle_racer_cannon_cost         10
 set g_vehicle_racer_cannon_spread       0.0125
 set g_vehicle_racer_cannon_force        50
 
 set g_vehicle_racer_rocket_speed       1000
 set g_vehicle_racer_rocket_accel       1400
-set g_vehicle_racer_rocket_turnrate    0.17
-set g_vehicle_racer_rocket_damage      160
+set g_vehicle_racer_rocket_turnrate    0.1
+set g_vehicle_racer_rocket_damage      165
 set g_vehicle_racer_rocket_force       350
 set g_vehicle_racer_rocket_radius      125
 set g_vehicle_racer_rocket_refire      6
 set g_vehicle_racer_rocket_cost        0
+set g_vehicle_racer_rocket_climbspeed  1750
 
 set g_vehicle_racer_rocket_locktarget           1
 set g_vehicle_racer_rocket_locking_time         0.4
-set g_vehicle_racer_rocket_locking_releasetime  1.6
+set g_vehicle_racer_rocket_locking_releasetime  1.5
 set g_vehicle_racer_rocket_locked_time          5
-set g_vehicle_racer_rocket_locked_maxangle      1.46
+set g_vehicle_racer_rocket_locked_maxangle      1.75
 
 set g_vehicle_racer_blowup_radius           250
 set g_vehicle_racer_blowup_coredamage       250
@@ -63,6 +64,6 @@ set g_vehicle_racer_blowup_forceintensity   250
 
 set g_vehicle_racer_bouncefactor 0.25   // Factor of old velocity to keep after colission
 set g_vehicle_racer_bouncestop 0        // if != 0, New veloctiy after bounce = 0 if new velocity < this
-set g_vehicle_racer_bouncepain "35 2 250" // "minspeed_for_pain speedchange_to_pain_factor max_damage"
+set g_vehicle_racer_bouncepain "60 0.75 300" // "minspeed_for_pain speedchange_to_pain_factor max_damage"
 
 set g_vehicle_racer_mass                    900
index d454eae2ca6766e6c814f298d285d781dddb9822..9129bfc4660cce178bac4c79da14de4c054b98a3 100644 (file)
@@ -98,6 +98,7 @@ MirceaKitsune
 *Russian
 Lord Canistra
 Nikoli
+Sergej "Clearness High" Lutsyk
 
 *Spanish
 Rodrigo Mouton Laudin
index ec2d299a80928cfd63bb5b59af455ebf95036ee1..f33540890ba26a784ff572139ee5334de0c87d8a 100644 (file)
@@ -4,9 +4,9 @@ Rudolf "divVerent" Polzer
 Tyler "-z-" Mulligan
 Merlijn Hofstra
 morphed
-mand1nga
-tZork
-
+Samual "Ares" Lenks
+Saulo "mand1nga" Gil
+Jakob "tZork" Markström Gröhn
 
 **Dévlopeurs secondaires
 
@@ -24,15 +24,22 @@ morphed
 LJFHutch
 Pearce "theShadow" Michal
 
+*Animation (FIXME)
+Sahil "DiaboliK" Singhal
+nifrek
+
 *Création des cartes
 FruitieX
 MirceaKitsune
+Jakob "tZork" Markström Gröhn
 Ruszkai "C.Brutail" Ákos
 
 *Musique / Sons
 mand1nga
 Merlijn Hofstra
 remaxim
+Stephan
+Independent.nu
 
 *Améliorations du moteur et QA
 Rudolf "divVerent" Polzer
@@ -40,7 +47,7 @@ Rudolf "divVerent" Polzer
 *Code source du jeu
 Rudolf "divVerent" Polzer
 FruitieX
-tZork
+Jakob "tZork" Markström Gröhn
 
 *Marketing / Management du Projet
 Tyler "-z-" Mulligan
@@ -57,6 +64,10 @@ by Forest "LordHavoc" Hale
 
 **Traducteurs
 
+*Dutch (FIXME)
+Alexander "freefang" van Dam
+PinkRobot
+
 *Allemand
 Rudolf "divVerent" Polzer
 
@@ -65,6 +76,14 @@ Henry "Exitium" Sanmark
 
 *Français
 Calinou
+Maxime "Taximus" Paradis
+
+*Greek (FIXME)
+Γιάννης Α.
+
+*Hungarian (FIXME)
+xaN1C4n3
+Ruszkai "C.Brutail" Ákos
 
 *Italien
 Antonio "terencehill" Piu
@@ -79,20 +98,48 @@ MirceaKitsune
 *Russe
 Lord Canistra
 Nikoli
+Sergej "Clearness High" Lutsyk
+
+*Spanish (FIXME)
+Rodrigo Mouton Laudin
+
+*Swedish (FIXME)
+marcus256
+
+*Ukrainian (FIXME)
+Vasyl "Harmata" Melnyk
 
 **Contribueurs actifs
+Akari
+Ant "Antibody" Zucaro
 Antonio "terencehill" Piu
+atheros
 Ben "MooKow" Banker
+blkrbt
 Calinou
 chooksta
+cortez
 Cuinn "Cuinnton" Herrick
-Kristian "morfar" Johansson
+Florian Paul "lda17h" Schmidt
+Jope “Sless” Withers
 kojn
+Kristian "morfar" Johansson
+kuniuthefrogg
+magorian
 Maik "SavageX" Merten
+Marvin "Mirio" Beck
+Mepper
+Mick Rippon
 MrBougo
-Samual Lenks
+parasti
+Paul Scott
+PlasmaSheep
+Przemysław "atheros" Grzywacz
+{SC0RP} - Ian "ID" Dorrell
 Severin "sev" Meyer
+SoulKeeper_p
 Stephan "esteel" Stahl
+The player with the unnecessarily long name
 Wolfgang "Blub\0" Bumiller
 
 **Anciens contribueurs
@@ -101,7 +148,6 @@ Amos "torus" Dudley
 Andreas "Black" Kirsch
 Attila "WW3" Houtkooper
 BigMac
-blkrbt
 Braden "meoblast001" Walters
 Brain Younds
 Chris "amethyst7" Matz
@@ -152,7 +198,6 @@ Rick "Rat" Kelley
 Robert "ai" Kuroto
 Ronan
 Sajt
-Severin "sev" Meyer
 Shaggy
 Shank
 Simon O'Callaghan
@@ -162,7 +207,6 @@ Spirit
 Steve Vermeulen
 Supajoe
 Tei
-terencehill
 Tomaz
 Ulrich Galbraith
 Vortex
index faf205bce3fd8fada5c7d00b880d1183b2e43475..0fe6352217800a298213c5edc8e943894ff51f10 100644 (file)
@@ -39,6 +39,7 @@ mand1nga
 Merlijn Hofstra
 remaxim
 Stephan
+Independent.nu
 
 *Játék motor kiegészitések
 Rudolf "divVerent" Polzer
@@ -61,9 +62,15 @@ Merlijn Hofstra
 DarkPlaces
 by Forest "LordHavoc" Hale
 
-
 **Fordítók
 
+*Holland
+Alexander "freefang" van Dam
+PinkRobot
+
+*Német
+Rudolf "divVerent" Polzer
+
 *Finn
 Henry "Exitium" Sanmark
 
@@ -71,37 +78,37 @@ Henry "Exitium" Sanmark
 Calinou
 Maxime "Taximus" Paradis
 
-*Holland
-Alexander "freefang" van Dam
-PinkRobot
+*Greek (FIXME)
+Γιάννης Α.
 
 *Magyar
 xaN1C4n3
 Ruszkai "C.Brutail" Ákos
 
-*Német
-Rudolf "divVerent" Polzer
-
 *Olasz
 Antonio "terencehill" Piu
 Felice "MaidenBeast" Sallustio
 
-*Orosz
-Lord Canistra
-Nikoli
-
 *Portugál
 Ricardo "Hellgardia" Silva
 
 *Román
 MirceaKitsune
 
+*Orosz
+Lord Canistra
+Nikoli
+Sergej "Clearness High" Lutsyk
+
 *Spanyol
 Rodrigo Mouton Laudin
 
 *Svéd
 marcus256
 
+*Ukrainian (FIXME)
+Vasyl "Harmata" Melnyk
+
 **További aktív résztvevők
 Akari
 Ant "Antibody" Zucaro
@@ -114,12 +121,14 @@ chooksta
 cortez
 Cuinn "Cuinnton" Herrick
 Florian Paul "lda17h" Schmidt
+Jope “Sless” Withers
 kojn
 Kristian "morfar" Johansson
 kuniuthefrogg
 magorian
 Maik "SavageX" Merten
 Marvin "Mirio" Beck
+Mepper
 Mick Rippon
 MrBougo
 parasti
index f0ace068124096c5efa1edb1525eb2a97562f67a..e64a30a76eaede423caee55d707f97df48fa4806 100644 (file)
@@ -4,7 +4,8 @@ Rudolf "divVerent" Polzer
 Tyler "-z-" Mulligan
 Merlijn Hofstra
 morphed
-mand1nga
+Samual "Ares" Lenks
+Saulo "mand1nga" Gil
 Jakob "tZork" Markström Gröhn
 
 **Coordinatori
@@ -31,12 +32,14 @@ nifrek
 FruitieX
 MirceaKitsune
 Jakob "tZork" Markström Gröhn
+Ruszkai "C.Brutail" Ákos
 
 *Musiche / Effetti sonori
 mand1nga
 Merlijn Hofstra
 remaxim
 Stephan
+Independent.nu
 
 *Aggiunte al codice del motore e QA
 Rudolf "divVerent" Polzer
@@ -49,6 +52,7 @@ Jakob "tZork" Markström Gröhn
 *Marketing / Pubbliche Relazioni
 Tyler "-z-" Mulligan
 mand1nga
+Ruszkai "C.Brutail" Ákos
 
 *Aspetti legali
 Rudolf "divVerent" Polzer
@@ -60,6 +64,10 @@ by Forest "LordHavoc" Hale
 
 **Traduttori
 
+*Dutch
+Alexander "freefang" van Dam
+PinkRobot
+
 *Tedesco
 Rudolf "divVerent" Polzer
 
@@ -68,6 +76,14 @@ Henry "Exitium" Sanmark
 
 *Francese
 Calinou
+Maxime "Taximus" Paradis
+
+*Greco
+Γιάννης Α.
+
+*Ungherese
+xaN1C4n3
+Ruszkai "C.Brutail" Ákos
 
 *Italiano
 Antonio "terencehill" Piu
@@ -82,27 +98,49 @@ MirceaKitsune
 *Russo
 Lord Canistra
 Nikoli
+Sergej "Clearness High" Lutsyk
+
+*Spagnolo
+Rodrigo Mouton Laudin
 
-**Contributori attivi
+*Svedese
+marcus256
+
+*Ucraino
+Vasyl "Harmata" Melnyk
+
+**Altri contributori attivi
+Akari
 Ant "Antibody" Zucaro
 Antonio "terencehill" Piu
+atheros
 Ben "MooKow" Banker
 blkrbt
 Calinou
 chooksta
+cortez
 Cuinn "Cuinnton" Herrick
 Florian Paul "lda17h" Schmidt
-Kristian "morfar" Johansson
+Jope “Sless” Withers
 kojn
+Kristian "morfar" Johansson
+kuniuthefrogg
+magorian
 Maik "SavageX" Merten
+Marvin "Mirio" Beck
+Mepper
+Mick Rippon
 MrBougo
+parasti
+Paul Scott
+PlasmaSheep
 Przemysław "atheros" Grzywacz
-Ruszkai "C.Brutail" Ákos
-Samual Lenks
+{SC0RP} - Ian "ID" Dorrell
 Severin "sev" Meyer
+SoulKeeper_p
 Stephan "esteel" Stahl
+The player with the unnecessarily long name
 Wolfgang "Blub\0" Bumiller
-SoulKeeper_p
 
 **Contributori passati
 Alexander "motorsep" Zubov
index 1b3351d4f8e3e3b6c80b8b3ed6e33ee4d360f898..dee9e99d760022735d4515cb575cfd4960fecb6a 100644 (file)
@@ -39,6 +39,7 @@ mand1nga
 Merlijn Hofstra
 remaxim
 Stephan
+Independent.nu
 
 *Додатки до коду рушія та контроль якості
 Rudolf "divVerent" Polzer
@@ -77,8 +78,12 @@ Henry "Exitium" Sanmark
 Calinou
 Maxime "Taximus" Paradis
 
+*Greek (FIXME)
+Γιάννης Α.
+
 *Угорська мова
 xaN1C4n3
+Ruszkai "C.Brutail" Ákos
 
 *Італійська мова
 Antonio "terencehill" Piu
@@ -93,6 +98,7 @@ MirceaKitsune
 *Російська мова
 Lord Canistra
 Nikoli
+Сергій "Clearness High" Луцик 
 
 *Іспанська мова
 Rodrigo Mouton Laudin
@@ -115,12 +121,14 @@ chooksta
 cortez
 Cuinn "Cuinnton" Herrick
 Florian Paul "lda17h" Schmidt
+Jope “Sless” Withers
 kojn
 Kristian "morfar" Johansson
 kuniuthefrogg
 magorian
 Maik "SavageX" Merten
 Marvin "Mirio" Beck
+Mepper
 Mick Rippon
 MrBougo
 parasti