TMAP -diff -crlf
todo crlf=input
TODO crlf=input
+tooltips.db diff crlf=input
*.ttf -diff -crlf
*.TTF -diff -crlf
*.txt crlf=input
ZIPEXCLUDE ?= -x\!*.pk3 -xr\!\.svn -x\!qcsrc
DIFF ?= diff
-FTEQCCFLAGS_WATERMARK ?= -DWATERMARK='"^1$(shell git describe) TEST BUILD"' -DCVAR_POPCON
+FTEQCCFLAGS_WATERMARK ?= -DWATERMARK='"$(shell git describe)"' -DCVAR_POPCON
FTEQCCFLAGS ?= -Werror -Wno-Q302 -O3 -Ono-c -Ono-cs $(FTEQCCFLAGS_EXTRA) $(FTEQCCFLAGS_WATERMARK)
FTEQCCFLAGS_PROGS ?=
FTEQCCFLAGS_MENU ?=
seta hud_panel_notify_bg_border "" "if set to something else than \"\" = override default size of border around the background"
seta hud_panel_notify_bg_padding "" "if set to something else than \"\" = override default padding of contents from border"
seta hud_panel_notify_flip "" "order the list top to bottom instead of bottom to top"
+seta hud_panel_notify_fontsize "" "multiplier for the font size used for player names in the panel"
seta hud_panel_notify_print "" "also con_notify print the messages that are shown on the notify panel"
seta hud_panel_timer "" "enable/disable this panel"
--- /dev/null
+// TEMPORARY CONFIG FOR BALANCE TESTING PURPOSES
+
+// ANNOY people with the BALANCE
+alias annoy "sv_cmd adminmsg 0 \"${* q}\" 70"
+ // show message for 70 sec, clear previous one
+alias annoy_s "annoy $*; echo \ 1SERVER^7: $*"
+ // annoy_s goes to rcon2irc (this echo fakes a chat message's output)
+alias printbalance "annoy NOTE: Current balance is ^1$curbalance"
+ // refresh the balance status bar (call this every 60 sec)
+alias printbalance_s "annoy_s NOTE: Next match will run ^1$curbalance"
+ // announce the balance for next match
+alias switchbalance_samual "exec balanceXonotic.cfg; set curbalance fruit; printbalance_s"
+alias switchbalance_fruit "exec balanceSamual.cfg; set curbalance samual; printbalance_s"
+alias switchbalance "switchbalance_$curbalance"
+ // toggle between the balances
+alias sv_hook_gameend "switchbalance"
+ // do this at the end of each match
+set curbalance fruit
+alias annoybalance "printbalance; defer 60 annoybalance"
+annoybalance
+ // our timer
\ No newline at end of file
+++ /dev/null
-#!/bin/sh
-
-while read -r EXT EOLSTYLE; do
- echo "Fixing $EXT..."
- find . -name .svn -prune -o -type f \( -name "*.$EXT" -o -name "$EXT" \) -print0 | \
- case "$EOLSTYLE" in
- 1)
- xargs -0 svn propset svn:eol-style native
- ;;
- 0)
- xargs -0 svn propdel svn:eol-style
- ;;
- esac
-done <eol-style.txt
set g_balance_falldamage_minspeed 1400
set g_balance_falldamage_factor 0.15
set g_balance_falldamage_maxdamage 25
+set g_balance_damagepush_speedfactor 0
// }}}
// {{{ powerups
set g_balance_laser_primary_gauntlet 0
set g_balance_laser_primary_force_zscale 1
set g_balance_laser_primary_force_velocitybias 0
+set g_balance_laser_primary_force_other_scale 1
set g_balance_laser_secondary 0 // when 1, a secondary laser mode exists
set g_balance_laser_secondary_damage 35
set g_balance_laser_secondary_edgedamage 10
set g_balance_laser_secondary_gauntlet 0
set g_balance_laser_secondary_force_zscale 1
set g_balance_laser_secondary_force_velocitybias 0
+set g_balance_laser_secondary_force_other_scale 1
+set g_balance_laser_reload_ammo 0 //default: 6
+set g_balance_laser_reload_time 2
// }}}
// {{{ shotgun
set g_balance_shotgun_primary_bullets 6
set g_balance_shotgun_secondary_melee_range 60
set g_balance_shotgun_secondary_melee_swing 50
set g_balance_shotgun_secondary_melee_time 0.1
+set g_balance_shotgun_secondary_melee_no_doubleslap 1
set g_balance_shotgun_secondary_damage 115
set g_balance_shotgun_secondary_force 150
set g_balance_shotgun_secondary_refire 1.1
set g_balance_shotgun_secondary_animtime 1
+set g_balance_shotgun_reload_ammo 0 //default: 5
+set g_balance_shotgun_reload_time 2
// }}}
// {{{ uzi
set g_balance_uzi_mode 0 // Activates varible spread for sustained & burst mode secondary
set g_balance_uzi_spread_add 0.012
set g_balance_uzi_burst 0 // # of bullets in a burst (if set to 2 or more)
+set g_balance_uzi_burst_animtime 0.75
set g_balance_uzi_burst_refire 0.05 // refire between burst bullets
set g_balance_uzi_burst_refire2 0.75 // refire after burst
set g_balance_uzi_burst_spread 0.04
set g_balance_uzi_speed 18000
set g_balance_uzi_bulletconstant 115 // 13.1qu
+
+set g_balance_uzi_reload_ammo 0 //default: 30
+set g_balance_uzi_reload_time 2
// }}}
// {{{ mortar
set g_balance_grenadelauncher_primary_type 0
set g_balance_grenadelauncher_bouncefactor 0.5
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_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_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_combo_radius 250
set g_balance_electro_combo_comboradius 0
set g_balance_electro_combo_speed 2000
+set g_balance_electro_reload_ammo 0 //default: 20
+set g_balance_electro_reload_time 2
// }}}
// {{{ crylink
set g_balance_crylink_primary_damage 18
set g_balance_crylink_secondary_middle_fadetime 5
set g_balance_crylink_secondary_line_lifetime 2 // range: 35000 full, fades to 70000
set g_balance_crylink_secondary_line_fadetime 2
+
+set g_balance_crylink_reload_ammo 0 //default: 10
+set g_balance_crylink_reload_time 2
// }}}
// {{{ nex
set g_balance_nex_primary_damage 100
set g_balance_nex_charge_mindmg 40
set g_balance_nex_charge_start 0
set g_balance_nex_charge_rate 0.1
+set g_balance_nex_charge_animlimit 0.5
set g_balance_nex_charge_limit 0.5
set g_balance_nex_charge_rot_rate 0
set g_balance_nex_charge_rot_pause 0 // Dont rot down untill this long after release of charge button
set g_balance_nex_charge_velocity_rate 0.2
set g_balance_nex_charge_minspeed 400
set g_balance_nex_charge_maxspeed 1000
+
+set g_balance_nex_reload_ammo 0 //default: 25
+set g_balance_nex_reload_time 2
// }}}
// {{{ minstanex
set g_balance_minstanex_refire 1
set g_balance_minstanex_animtime 0.3
set g_balance_minstanex_ammo 10
+set g_balance_minstanex_laser_ammo 0
+set g_balance_minstanex_reload_ammo 0 //default: 50
+set g_balance_minstanex_reload_time 2
// }}}
// {{{ hagar
set g_balance_hagar_primary_damage 37
set g_balance_hagar_secondary_lifetime_rand 0
set g_balance_hagar_secondary_refire 0.15
set g_balance_hagar_secondary_ammo 1
+set g_balance_hagar_reload_ammo 0 //default: 25
+set g_balance_hagar_reload_time 2
// }}}
// {{{ rocketlauncher
set g_balance_rocketlauncher_damage 105
set g_balance_rocketlauncher_remote_edgedamage 40
set g_balance_rocketlauncher_remote_radius 150
set g_balance_rocketlauncher_remote_force 600
+set g_balance_rocketlauncher_reload_ammo 0 //default: 25
+set g_balance_rocketlauncher_reload_time 2
// }}}
// {{{ porto
set g_balance_porto_primary_refire 1.5
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
// }}}
// {{{ sniperrifle
-set g_balance_sniperrifle_magazinecapacity 8
-set g_balance_sniperrifle_reloadtime 2 // matches reload anim
-set g_balance_sniperrifle_auto_reload_on_switch 0
set g_balance_sniperrifle_bursttime 0
set g_balance_sniperrifle_primary_tracer 0
+set g_balance_sniperrifle_primary_shots 1
set g_balance_sniperrifle_primary_damage 60
set g_balance_sniperrifle_primary_headshotaddeddamage 100
set g_balance_sniperrifle_primary_spread 0
set g_balance_sniperrifle_primary_burstcost 0
set g_balance_sniperrifle_primary_bullethail 0 // empty magazine on shot
set g_balance_sniperrifle_secondary 1
+set g_balance_sniperrifle_secondary_reload 0
set g_balance_sniperrifle_secondary_tracer 0
+set g_balance_sniperrifle_secondary_shots 1
set g_balance_sniperrifle_secondary_damage 35
set g_balance_sniperrifle_secondary_headshotaddeddamage 15 // 50 damage only on head
set g_balance_sniperrifle_secondary_spread 0.008
set g_balance_sniperrifle_secondary_bulletconstant 130 // 18.3qu
set g_balance_sniperrifle_secondary_burstcost 0
set g_balance_sniperrifle_secondary_bullethail 0 // empty magazine on shot
+set g_balance_sniperrifle_reload_ammo 80 //default: 80
+set g_balance_sniperrifle_reload_time 2
// }}}
// {{{ tuba
set g_balance_tuba_refire 0.05
set g_balance_fireball_secondary_speed_up 100
set g_balance_fireball_secondary_speed_z 0
set g_balance_fireball_secondary_spread 0
+set g_balance_fireball_reload_ammo 0 //default: 60
+set g_balance_fireball_reload_time 2
// }}}
// {{{ 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_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
set g_balance_falldamage_minspeed 1400
set g_balance_falldamage_factor 0.15
set g_balance_falldamage_maxdamage 25
+set g_balance_damagepush_speedfactor 0
// }}}
// {{{ powerups
set g_balance_laser_primary_gauntlet 0
set g_balance_laser_primary_force_zscale 2 // 300 upforce
set g_balance_laser_primary_force_velocitybias 0.3
+set g_balance_laser_primary_force_other_scale 1
set g_balance_laser_secondary 0 // when 1, a secondary laser mode exists
set g_balance_laser_secondary_damage 200 // dps
set g_balance_laser_secondary_edgedamage 0
set g_balance_laser_secondary_gauntlet 1
set g_balance_laser_secondary_force_zscale 1.25
set g_balance_laser_secondary_force_velocitybias 0
+set g_balance_laser_secondary_force_other_scale 1
+set g_balance_laser_reload_ammo 0 //default: 6
+set g_balance_laser_reload_time 2
// }}}
// {{{ shotgun
set g_balance_shotgun_primary_bullets 5
set g_balance_shotgun_secondary_melee_range 85
set g_balance_shotgun_secondary_melee_swing 50
set g_balance_shotgun_secondary_melee_time 0.1
+set g_balance_shotgun_secondary_melee_no_doubleslap 1
set g_balance_shotgun_secondary_damage 84
set g_balance_shotgun_secondary_force 147
set g_balance_shotgun_secondary_refire 1.1
set g_balance_shotgun_secondary_animtime 1
+set g_balance_shotgun_reload_ammo 0 //default: 5
+set g_balance_shotgun_reload_time 2
// }}}
// {{{ uzi
set g_balance_uzi_mode 0 // Activates varible spread for sustained & burst mode secondary
set g_balance_uzi_spread_add 0.012
set g_balance_uzi_burst 0 // # of bullets in a burst (if set to 2 or more)
+set g_balance_uzi_burst_animtime 0.75
set g_balance_uzi_burst_refire 0.05 // refire between burst bullets
set g_balance_uzi_burst_refire2 0.75 // refire after burst
set g_balance_uzi_burst_spread 0.04
set g_balance_uzi_speed 18000
set g_balance_uzi_bulletconstant 300 // 13.1qu
+
+set g_balance_uzi_reload_ammo 0 //default: 30
+set g_balance_uzi_reload_time 2
// }}}
// {{{ mortar
set g_balance_grenadelauncher_primary_type 0
set g_balance_grenadelauncher_bouncefactor 0.7
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 65
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.3
set g_balance_minelayer_animtime 0.4
set g_balance_minelayer_ammo 5
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_combo_radius 250
set g_balance_electro_combo_comboradius 70
set g_balance_electro_combo_speed 400
+set g_balance_electro_reload_ammo 0 //default: 20
+set g_balance_electro_reload_time 2
// }}}
// {{{ crylink
set g_balance_crylink_primary_damage 23
set g_balance_crylink_secondary_middle_fadetime 5
set g_balance_crylink_secondary_line_lifetime 2 // range: 4000 full, fades to 8000
set g_balance_crylink_secondary_line_fadetime 2
+
+set g_balance_crylink_reload_ammo 0 //default: 10
+set g_balance_crylink_reload_time 2
// }}}
// {{{ nex
set g_balance_nex_primary_damage 72
set g_balance_nex_charge_mindmg 40
set g_balance_nex_charge_start 0
set g_balance_nex_charge_rate 0.1
+set g_balance_nex_charge_animlimit 0.5
set g_balance_nex_charge_limit 0.5
set g_balance_nex_charge_rot_rate 0
set g_balance_nex_charge_rot_pause 0 // Dont rot down untill this long after release of charge button
set g_balance_nex_charge_velocity_rate 0.2
set g_balance_nex_charge_minspeed ""
set g_balance_nex_charge_maxspeed ""
+
+set g_balance_nex_reload_ammo 0 //default: 25
+set g_balance_nex_reload_time 2
// }}}
// {{{ minstanex
set g_balance_minstanex_refire 1
set g_balance_minstanex_animtime 0.278
set g_balance_minstanex_ammo 10
+set g_balance_minstanex_laser_ammo 0
+set g_balance_minstanex_reload_ammo 0 //default: 50
+set g_balance_minstanex_reload_time 2
// }}}
// {{{ hagar
set g_balance_hagar_primary_damage 43
set g_balance_hagar_secondary_lifetime_rand 0
set g_balance_hagar_secondary_refire 0.15
set g_balance_hagar_secondary_ammo 2
+set g_balance_hagar_reload_ammo 0 //default: 25
+set g_balance_hagar_reload_time 2
// }}}
// {{{ rocketlauncher
set g_balance_rocketlauncher_damage 65
set g_balance_rocketlauncher_remote_edgedamage 46
set g_balance_rocketlauncher_remote_radius 185
set g_balance_rocketlauncher_remote_force 590
+set g_balance_rocketlauncher_reload_ammo 0 //default: 25
+set g_balance_rocketlauncher_reload_time 2
// }}}
// {{{ porto
set g_balance_porto_primary_refire 1.5
set g_balance_hlac_secondary_animtime 0.3
set g_balance_hlac_secondary_ammo 11
set g_balance_hlac_secondary_shots 6
+
+set g_balance_hlac_reload_ammo 0 //default: 20
+set g_balance_hlac_reload_time 2
// }}}
// {{{ sniperrifle
-set g_balance_sniperrifle_magazinecapacity 8
-set g_balance_sniperrifle_reloadtime 2 // matches reload anim
-set g_balance_sniperrifle_auto_reload_on_switch 0
set g_balance_sniperrifle_bursttime 0.85 // 0.35 - 0.1 + 0.35 - 0.1 + 0.35 = three secondaries
set g_balance_sniperrifle_primary_tracer 0
+set g_balance_sniperrifle_primary_shots 1
set g_balance_sniperrifle_primary_damage 75
set g_balance_sniperrifle_primary_headshotaddeddamage 90
set g_balance_sniperrifle_primary_spread 0
set g_balance_sniperrifle_primary_burstcost 0 // require same cooldown as secondary, note it's smaller than primary refire time
set g_balance_sniperrifle_primary_bullethail 0 // empty magazine on shot
set g_balance_sniperrifle_secondary 1
+set g_balance_sniperrifle_secondary_reload 0
set g_balance_sniperrifle_secondary_tracer 0
+set g_balance_sniperrifle_secondary_shots 1
set g_balance_sniperrifle_secondary_damage 40
set g_balance_sniperrifle_secondary_headshotaddeddamage 20
set g_balance_sniperrifle_secondary_spread 0.008
set g_balance_sniperrifle_secondary_bulletconstant 130 // 18.3qu
set g_balance_sniperrifle_secondary_burstcost 0
set g_balance_sniperrifle_secondary_bullethail 0
+set g_balance_sniperrifle_reload_ammo 80 //default: 80
+set g_balance_sniperrifle_reload_time 2
// }}}
// {{{ tuba
set g_balance_tuba_refire 0.05
set g_balance_fireball_secondary_speed_up 0
set g_balance_fireball_secondary_speed_z 0
set g_balance_fireball_secondary_spread 0
+set g_balance_fireball_reload_ammo 0 //default: 60
+set g_balance_fireball_reload_time 2
// }}}
// {{{ 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_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
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"
+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"
-set g_start_weapon_sniperrifle -1 "0 = never provide the weapon, 1 = always provide the weapon, -1 = game mode default, -2 = provide the weapon in ca and lms"
+set g_start_weapon_hlac -1 "0 = never provide the weapon, 1 = always provide the weapon, -1 = game mode default, -2 = provide the weapon in ca and lms" // UNTIL IT CAN BE REMOVED FROM CODE
+set g_start_weapon_sniperrifle -1 "0 = never provide the weapon, 1 = always provide the weapon, -1 = game mode default, -2 = provide the weapon in ca and lms" // UNTIL IT CAN BE REMOVED FROM CODE
set g_start_weapon_tuba -1 "0 = never provide the weapon, 1 = always provide the weapon, -1 = game mode default, -2 = provide the weapon in ca and lms"
set g_start_weapon_fireball -1 "0 = never provide the weapon, 1 = always provide the weapon, -1 = game mode default, -2 = provide the weapon in ca and lms"
set g_start_weapon_seeker -1 "0 = never provide the weapon, 1 = always provide the weapon, -1 = game mode default, -2 = provide the weapon in ca and lms"
-set g_balance_health_start 125
+set g_balance_health_start 100
set g_balance_armor_start 0
set g_start_ammo_shells 15
set g_start_ammo_nails 0
set g_start_ammo_rockets 0
set g_start_ammo_cells 0
set g_start_ammo_fuel 0
-set g_warmup_start_health 200 "starting values when being in warmup-stage"
+set g_warmup_start_health 100 "starting values when being in warmup-stage"
set g_warmup_start_armor 100 "starting values when being in warmup-stage"
-set g_warmup_start_ammo_shells 50 "starting values when being in warmup-stage"
-set g_warmup_start_ammo_nails 150 "starting values when being in warmup-stage"
-set g_warmup_start_ammo_rockets 50 "starting values when being in warmup-stage"
-set g_warmup_start_ammo_cells 50 "starting values when being in warmup-stage"
+set g_warmup_start_ammo_shells 30 "starting values when being in warmup-stage"
+set g_warmup_start_ammo_nails 160 "starting values when being in warmup-stage"
+set g_warmup_start_ammo_rockets 80 "starting values when being in warmup-stage"
+set g_warmup_start_ammo_cells 90 "starting values when being in warmup-stage"
set g_warmup_start_ammo_fuel 0 "starting values when being in warmup-stage"
set g_lms_start_health 200
set g_lms_start_armor 200
-set g_lms_start_ammo_shells 120
-set g_lms_start_ammo_nails 400
-set g_lms_start_ammo_rockets 120
-set g_lms_start_ammo_cells 200
+set g_lms_start_ammo_shells 60
+set g_lms_start_ammo_nails 320
+set g_lms_start_ammo_rockets 160
+set g_lms_start_ammo_cells 180
set g_lms_start_ammo_fuel 0
set g_balance_nix_roundtime 25
set g_balance_nix_incrtime 1.6
-set g_balance_nix_ammo_shells 120
-set g_balance_nix_ammo_nails 400
-set g_balance_nix_ammo_rockets 120
-set g_balance_nix_ammo_cells 200
+set g_balance_nix_ammo_shells 60
+set g_balance_nix_ammo_nails 320
+set g_balance_nix_ammo_rockets 160
+set g_balance_nix_ammo_cells 180
set g_balance_nix_ammo_fuel 0
-set g_balance_nix_ammoincr_shells 2
+set g_balance_nix_ammoincr_shells 2 // eh this will need figured out later I assume
set g_balance_nix_ammoincr_nails 6
set g_balance_nix_ammoincr_rockets 2
set g_balance_nix_ammoincr_cells 2
set g_pickup_weapons_anyway 1
set g_pickup_shells 15
set g_pickup_shells_weapon 15
-set g_pickup_shells_max 100
-set g_pickup_nails 75
-set g_pickup_nails_weapon 75
-set g_pickup_nails_max 300
+set g_pickup_shells_max 60
+set g_pickup_nails 80
+set g_pickup_nails_weapon 80
+set g_pickup_nails_max 320
set g_pickup_rockets 40
set g_pickup_rockets_weapon 40
set g_pickup_rockets_max 160
-set g_pickup_cells 50
-set g_pickup_cells_weapon 50
-set g_pickup_cells_max 200
-set g_pickup_fuel 25
-set g_pickup_fuel_weapon 25
-set g_pickup_fuel_jetpack 50
+set g_pickup_cells 30
+set g_pickup_cells_weapon 30
+set g_pickup_cells_max 180
+set g_pickup_fuel 50
+set g_pickup_fuel_weapon 50
+set g_pickup_fuel_jetpack 100
set g_pickup_fuel_max 100
-set g_pickup_armorsmall 10
+set g_pickup_armorsmall 5
set g_pickup_armorsmall_max 200
set g_pickup_armorsmall_anyway 1
set g_pickup_armormedium 25
set g_pickup_armorlarge 100
set g_pickup_armorlarge_max 200
set g_pickup_armorlarge_anyway 1
-set g_pickup_healthsmall 10
+set g_pickup_healthsmall 5
set g_pickup_healthsmall_max 200
set g_pickup_healthsmall_anyway 1
set g_pickup_healthmedium 25
set g_pickup_respawntime_medium 20
set g_pickup_respawntime_long 30
set g_pickup_respawntime_powerup 120
-set g_pickup_respawntime_weapon 15
-set g_pickup_respawntime_ammo 15
+set g_pickup_respawntime_weapon 10
+set g_pickup_respawntime_ammo 10
set g_pickup_respawntimejitter_short 0
set g_pickup_respawntimejitter_medium 0
set g_pickup_respawntimejitter_long 0
-set g_pickup_respawntimejitter_powerup 10
+set g_pickup_respawntimejitter_powerup 30
set g_pickup_respawntimejitter_weapon 0
set g_pickup_respawntimejitter_ammo 0
// }}}
set g_balance_health_regenlinear 5
set g_balance_pause_health_regen 5
set g_balance_pause_health_regen_spawn 0
-set g_balance_health_rot 0
-set g_balance_health_rotlinear 5
-set g_balance_pause_health_rot 3
-set g_balance_pause_health_rot_spawn 1
+set g_balance_health_rot 0.04
+set g_balance_health_rotlinear 1
+set g_balance_pause_health_rot 0.5
+set g_balance_pause_health_rot_spawn 5
set g_balance_health_regenstable 100
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
-set g_balance_armor_rotlinear 3
+set g_balance_armor_rot 0.04
+set g_balance_armor_rotlinear 1
set g_balance_pause_armor_rot 1
-set g_balance_pause_armor_rot_spawn 1
+set g_balance_pause_armor_rot_spawn 5
set g_balance_armor_regenstable 100
set g_balance_armor_rotstable 100
set g_balance_armor_limit 999
// 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 0
+set g_projectiles_spread_style 7
// possible values:
// 0: forward + solid sphere (like Quake) - varies velocity
// 1: forward + flattened solid sphere
// 5: forward + circle with 1-r falloff
// 6: forward + circle with 1-r^2 falloff
// 7: forward + circle with (1-r)(2-r) falloff
-set g_balance_falldamage_deadminspeed 150
-set g_balance_falldamage_minspeed 1400
-set g_balance_falldamage_factor 0.15
-set g_balance_falldamage_maxdamage 25
+set g_balance_falldamage_deadminspeed 250
+set g_balance_falldamage_minspeed 900
+set g_balance_falldamage_factor 0.20
+set g_balance_falldamage_maxdamage 40
+set g_balance_damagepush_speedfactor 2.5
// }}}
// {{{ powerups
-set g_balance_powerup_invincible_takedamage 0.2
+set g_balance_powerup_invincible_takedamage 0.25 // only 1/4th damage is taken
set g_balance_powerup_invincible_time 30
set g_balance_powerup_strength_damage 3
set g_balance_powerup_strength_force 3
// {{{ weapon properties
// {{{ laser
set g_balance_laser_primary_damage 25
-set g_balance_laser_primary_edgedamage 10
+set g_balance_laser_primary_edgedamage 12.5
set g_balance_laser_primary_force 175
set g_balance_laser_primary_radius 70
-set g_balance_laser_primary_speed 12000
+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_lifetime 30
+set g_balance_laser_primary_lifetime 5
set g_balance_laser_primary_shotangle 0
-set g_balance_laser_primary_delay 0.03
+set g_balance_laser_primary_delay 0
set g_balance_laser_primary_gauntlet 0
set g_balance_laser_primary_force_zscale 2 // 350 upforce
set g_balance_laser_primary_force_velocitybias 0.3
+set g_balance_laser_primary_force_other_scale 1
set g_balance_laser_secondary 0 // when 1, a secondary laser mode exists
set g_balance_laser_secondary_damage 25
-set g_balance_laser_secondary_edgedamage 10
+set g_balance_laser_secondary_edgedamage 12.5
set g_balance_laser_secondary_force 400
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_lifetime 30
+set g_balance_laser_secondary_lifetime 5
set g_balance_laser_secondary_shotangle -90
set g_balance_laser_secondary_delay 0
set g_balance_laser_secondary_gauntlet 0
set g_balance_laser_secondary_force_zscale 1.25
set g_balance_laser_secondary_force_velocitybias 0
+set g_balance_laser_secondary_force_other_scale 1
+set g_balance_laser_reload_ammo 0 //default: 6
+set g_balance_laser_reload_time 2
// }}}
// {{{ shotgun
-set g_balance_shotgun_primary_bullets 10
-set g_balance_shotgun_primary_damage 6
+set g_balance_shotgun_primary_bullets 14
+set g_balance_shotgun_primary_damage 4
set g_balance_shotgun_primary_force 15
-set g_balance_shotgun_primary_spread 0.11
-set g_balance_shotgun_primary_refire 0.5
+set g_balance_shotgun_primary_spread 0.12
+set g_balance_shotgun_primary_refire 0.75
set g_balance_shotgun_primary_animtime 0.2
set g_balance_shotgun_primary_ammo 1
set g_balance_shotgun_primary_speed 8000
set g_balance_shotgun_primary_bulletconstant 75 // 3.8qu
set g_balance_shotgun_secondary 1
set g_balance_shotgun_secondary_melee_delay 0.35 // match the anim
-set g_balance_shotgun_secondary_melee_range 60
+set g_balance_shotgun_secondary_melee_range 85
set g_balance_shotgun_secondary_melee_swing 50
set g_balance_shotgun_secondary_melee_time 0.1
+set g_balance_shotgun_secondary_melee_no_doubleslap 1
set g_balance_shotgun_secondary_damage 115
set g_balance_shotgun_secondary_force 150
set g_balance_shotgun_secondary_refire 1.1
set g_balance_shotgun_secondary_animtime 1
+set g_balance_shotgun_reload_ammo 0 //default: 5
+set g_balance_shotgun_reload_time 2
// }}}
// {{{ uzi
-set g_balance_uzi_mode 0 // Activates varible spread for sustained & burst mode secondary
+set g_balance_uzi_mode 1 // Activates varible spread for sustained & burst mode secondary
set g_balance_uzi_spread_min 0.02
-set g_balance_uzi_spread_max 0.6
+set g_balance_uzi_spread_max 0.06
set g_balance_uzi_spread_add 0.012
-set g_balance_uzi_burst 0 // # of bullets in a burst (if set to 2 or more)
-set g_balance_uzi_burst_refire 0.05 // refire between burst bullets
-set g_balance_uzi_burst_refire2 0.75 // refire after burst
-set g_balance_uzi_burst_spread 0.04
-set g_balance_uzi_burst_damage 18
-set g_balance_uzi_burst_force 50
+set g_balance_uzi_burst 3 // # of bullets in a burst (if set to 2 or more)
+set g_balance_uzi_burst_animtime 0.3
+set g_balance_uzi_burst_refire 0.06 // refire between burst bullets
+set g_balance_uzi_burst_refire2 0.45 // refire after burst
+set g_balance_uzi_burst_spread 0.03
+set g_balance_uzi_burst_damage 25
+set g_balance_uzi_burst_force 20
set g_balance_uzi_burst_ammo 3
set g_balance_uzi_first 1
set g_balance_uzi_first_refire 0.2
set g_balance_uzi_first_ammo 1
-set g_balance_uzi_sustained_damage 10
-set g_balance_uzi_sustained_force 10
-set g_balance_uzi_sustained_spread 0.08
+set g_balance_uzi_sustained_damage 14
+set g_balance_uzi_sustained_force 20
+set g_balance_uzi_sustained_spread 0.04
set g_balance_uzi_sustained_refire 0.1
set g_balance_uzi_sustained_ammo 1
set g_balance_uzi_speed 18000
set g_balance_uzi_bulletconstant 115 // 13.1qu
+
+set g_balance_uzi_reload_ammo 60 //default: 30
+set g_balance_uzi_reload_time 2
// }}}
// {{{ mortar
set g_balance_grenadelauncher_primary_type 0
set g_balance_grenadelauncher_primary_damage 50
-set g_balance_grenadelauncher_primary_edgedamage 38
-set g_balance_grenadelauncher_primary_force 400
-set g_balance_grenadelauncher_primary_radius 140
-set g_balance_grenadelauncher_primary_speed 2000
-set g_balance_grenadelauncher_primary_speed_up 220
+set g_balance_grenadelauncher_primary_edgedamage 25
+set g_balance_grenadelauncher_primary_force 250
+set g_balance_grenadelauncher_primary_radius 130
+set g_balance_grenadelauncher_primary_speed 1900
+set g_balance_grenadelauncher_primary_speed_up 225
set g_balance_grenadelauncher_primary_speed_z 0
-set g_balance_grenadelauncher_primary_spread 0
-set g_balance_grenadelauncher_primary_lifetime 30
+set g_balance_grenadelauncher_primary_spread 0.02
+set g_balance_grenadelauncher_primary_lifetime 5
set g_balance_grenadelauncher_primary_lifetime2 1
set g_balance_grenadelauncher_primary_refire 0.8
set g_balance_grenadelauncher_primary_animtime 0.3
set g_balance_grenadelauncher_primary_ammo 2
-set g_balance_grenadelauncher_primary_health 25
-set g_balance_grenadelauncher_primary_damageforcescale 4
+set g_balance_grenadelauncher_primary_health 0
+set g_balance_grenadelauncher_primary_damageforcescale 0
set g_balance_grenadelauncher_primary_remote_minbouncecnt 0
set g_balance_grenadelauncher_secondary_type 1
set g_balance_grenadelauncher_secondary_damage 60
-set g_balance_grenadelauncher_secondary_edgedamage 38
-set g_balance_grenadelauncher_secondary_force 400
-set g_balance_grenadelauncher_secondary_radius 140
+set g_balance_grenadelauncher_secondary_edgedamage 30
+set g_balance_grenadelauncher_secondary_force 250
+set g_balance_grenadelauncher_secondary_radius 130
set g_balance_grenadelauncher_secondary_speed 1400
set g_balance_grenadelauncher_secondary_speed_up 150
set g_balance_grenadelauncher_secondary_speed_z 0
-set g_balance_grenadelauncher_secondary_spread 0
+set g_balance_grenadelauncher_secondary_spread 0.02
set g_balance_grenadelauncher_secondary_lifetime 1
set g_balance_grenadelauncher_secondary_lifetime2 0
set g_balance_grenadelauncher_secondary_refire 0.7
set g_balance_grenadelauncher_secondary_animtime 0.3
set g_balance_grenadelauncher_secondary_ammo 2
-set g_balance_grenadelauncher_secondary_health 70
+set g_balance_grenadelauncher_secondary_health 0
set g_balance_grenadelauncher_secondary_damageforcescale 4
set g_balance_grenadelauncher_secondary_remote_detonateprimary 0
set g_balance_grenadelauncher_bouncefactor 0.5
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_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 750
-set g_balance_minelayer_lifetime 60
+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 5
+set g_balance_minelayer_ammo 4
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_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_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 90
-set g_balance_electro_primary_edgedamage 0
-set g_balance_electro_primary_force 425
-set g_balance_electro_primary_force_up 125
-set g_balance_electro_primary_radius 850
-set g_balance_electro_primary_comboradius 75
-set g_balance_electro_primary_speed 0
+set g_balance_electro_lightning 0
+set g_balance_electro_primary_damage 55
+set g_balance_electro_primary_edgedamage 27.5
+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_speed 2500
set g_balance_electro_primary_spread 0
-set g_balance_electro_primary_lifetime 0
+set g_balance_electro_primary_lifetime 5
set g_balance_electro_primary_refire 0.6
-set g_balance_electro_primary_animtime 0.03
-set g_balance_electro_primary_ammo 7
-set g_balance_electro_primary_range 800
+set g_balance_electro_primary_animtime 0.1
+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
set g_balance_electro_primary_falloff_maxdist 850
set g_balance_electro_primary_falloff_halflifedist 425
-set g_balance_electro_secondary_damage 25
-set g_balance_electro_secondary_edgedamage 0
-set g_balance_electro_secondary_force 100
-set g_balance_electro_secondary_radius 100
+set g_balance_electro_secondary_damage 40
+set g_balance_electro_secondary_edgedamage 20
+set g_balance_electro_secondary_force 200
+set g_balance_electro_secondary_radius 150
set g_balance_electro_secondary_speed 900
set g_balance_electro_secondary_speed_up 200
set g_balance_electro_secondary_speed_z 0
-set g_balance_electro_secondary_spread 0.08
-set g_balance_electro_secondary_lifetime 2.5
+set g_balance_electro_secondary_spread 0.05
+set g_balance_electro_secondary_lifetime 3
set g_balance_electro_secondary_refire 0.2
-set g_balance_electro_secondary_refire2 1
+set g_balance_electro_secondary_refire2 1.5
set g_balance_electro_secondary_animtime 0.2
set g_balance_electro_secondary_ammo 2
set g_balance_electro_secondary_health 5
set g_balance_electro_secondary_count 3
set g_balance_electro_secondary_bouncefactor 0.5
set g_balance_electro_secondary_bouncestop 0.075
-set g_balance_electro_combo_damage 50
-set g_balance_electro_combo_edgedamage 0
-set g_balance_electro_combo_force 200
-set g_balance_electro_combo_radius 250
-set g_balance_electro_combo_comboradius 0
-set g_balance_electro_combo_speed 400
+set g_balance_electro_combo_damage 40
+set g_balance_electro_combo_edgedamage 20
+set g_balance_electro_combo_force 120
+set g_balance_electro_combo_radius 175
+set g_balance_electro_combo_comboradius 250
+set g_balance_electro_combo_speed 2000
+set g_balance_electro_reload_ammo 0 //default: 20
+set g_balance_electro_reload_time 2
// }}}
-// {{{ crylink
+// {{{ crylink
set g_balance_crylink_primary_damage 10
-set g_balance_crylink_primary_edgedamage 0
+set g_balance_crylink_primary_edgedamage 5
set g_balance_crylink_primary_force -55
-set g_balance_crylink_primary_radius 50
-set g_balance_crylink_primary_speed 3000
-set g_balance_crylink_primary_spread 0.05
-set g_balance_crylink_primary_shots 4
+set g_balance_crylink_primary_radius 80
+set g_balance_crylink_primary_speed 1800
+set g_balance_crylink_primary_spread 0.075
+set g_balance_crylink_primary_shots 7
set g_balance_crylink_primary_bounces 1
-set g_balance_crylink_primary_refire 0.4
+set g_balance_crylink_primary_refire 0.7
set g_balance_crylink_primary_animtime 0.3
-set g_balance_crylink_primary_ammo 2
+set g_balance_crylink_primary_ammo 3
set g_balance_crylink_primary_bouncedamagefactor 0.5
set g_balance_crylink_primary_joindelay 0
-set g_balance_crylink_primary_joinspread 0
+set g_balance_crylink_primary_joinspread 0.4
set g_balance_crylink_primary_jointime 0
-set g_balance_crylink_primary_joinexplode 0
+set g_balance_crylink_primary_joinexplode 1
set g_balance_crylink_primary_joinexplode_damage 0
set g_balance_crylink_primary_joinexplode_edgedamage 0
set g_balance_crylink_primary_joinexplode_radius 0
set g_balance_crylink_primary_other_fadetime 5
set g_balance_crylink_secondary 1
-set g_balance_crylink_secondary_damage 8
+set g_balance_crylink_secondary_damage 5
set g_balance_crylink_secondary_edgedamage 0
set g_balance_crylink_secondary_force -40
-set g_balance_crylink_secondary_radius 10
-set g_balance_crylink_secondary_speed 9000
-set g_balance_crylink_secondary_spread 0.03
+set g_balance_crylink_secondary_radius 70
+set g_balance_crylink_secondary_speed 2000
+set g_balance_crylink_secondary_spread 0.02
set g_balance_crylink_secondary_shots 3
-set g_balance_crylink_secondary_bounces 0
+set g_balance_crylink_secondary_bounces 1
set g_balance_crylink_secondary_refire 0.2
set g_balance_crylink_secondary_animtime 0.2
set g_balance_crylink_secondary_ammo 2
set g_balance_crylink_secondary_middle_fadetime 5
set g_balance_crylink_secondary_line_lifetime 5
set g_balance_crylink_secondary_line_fadetime 5
+
+set g_balance_crylink_reload_ammo 0 //default: 10
+set g_balance_crylink_reload_time 2
// }}}
// {{{ nex
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_refire 1.25
set g_balance_nex_primary_animtime 0.3
-set g_balance_nex_primary_ammo 5
-set g_balance_nex_primary_damagefalloff_mindist 1000
-set g_balance_nex_primary_damagefalloff_maxdist 3000
-set g_balance_nex_primary_damagefalloff_halflife 1500
-set g_balance_nex_primary_damagefalloff_forcehalflife 1500
+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
+set g_balance_nex_primary_damagefalloff_halflife 0 // 1500
+set g_balance_nex_primary_damagefalloff_forcehalflife 0 // 1500
set g_balance_nex_secondary 0
set g_balance_nex_secondary_charge 0
set g_balance_nex_charge 1
set g_balance_nex_charge_mindmg 40
set g_balance_nex_charge_start 0
-set g_balance_nex_charge_rate 0.1
-set g_balance_nex_charge_limit 0.5
+set g_balance_nex_charge_rate 0.3
+set g_balance_nex_charge_animlimit 0.5
+set g_balance_nex_charge_limit 1
set g_balance_nex_charge_rot_rate 0
set g_balance_nex_charge_rot_pause 0 // Dont rot down untill this long after release of charge button
set g_balance_nex_charge_shot_multiplier 0.25
-set g_balance_nex_charge_velocity_rate 0.2
+set g_balance_nex_charge_velocity_rate 0
set g_balance_nex_charge_minspeed 400
-set g_balance_nex_charge_maxspeed 1000
+set g_balance_nex_charge_maxspeed 800
+
+set g_balance_nex_reload_ammo 0 //default: 25
+set g_balance_nex_reload_time 2
// }}}
// {{{ minstanex
set g_balance_minstanex_refire 1
set g_balance_minstanex_animtime 0.3
set g_balance_minstanex_ammo 10
+set g_balance_minstanex_laser_ammo 0
+set g_balance_minstanex_reload_ammo 0 //default: 50
+set g_balance_minstanex_reload_time 2
// }}}
-// {{{ hagar
+// {{{ hagar // TO BE REMOVED
set g_balance_hagar_primary_damage 30
-set g_balance_hagar_primary_edgedamage 0
+set g_balance_hagar_primary_edgedamage 15
set g_balance_hagar_primary_force 50
set g_balance_hagar_primary_radius 70
set g_balance_hagar_primary_spread 0.08
set g_balance_hagar_primary_speed 2000
-set g_balance_hagar_primary_lifetime 0.12
+set g_balance_hagar_primary_lifetime 5
set g_balance_hagar_primary_refire 0.15
set g_balance_hagar_primary_ammo 1
set g_balance_hagar_secondary 1
-set g_balance_hagar_secondary_damage 37
-set g_balance_hagar_secondary_edgedamage 15
+set g_balance_hagar_secondary_damage 35
+set g_balance_hagar_secondary_edgedamage 17.5
set g_balance_hagar_secondary_force 100
set g_balance_hagar_secondary_radius 65
set g_balance_hagar_secondary_spread 0.015
set g_balance_hagar_secondary_speed 2000
-set g_balance_hagar_secondary_lifetime_min 30
+set g_balance_hagar_secondary_lifetime_min 10
set g_balance_hagar_secondary_lifetime_rand 0
set g_balance_hagar_secondary_refire 0.15
set g_balance_hagar_secondary_ammo 1
+set g_balance_hagar_reload_ammo 0 //default: 25
+set g_balance_hagar_reload_time 2
// }}}
// {{{ rocketlauncher
set g_balance_rocketlauncher_damage 80
set g_balance_rocketlauncher_edgedamage 40
-set g_balance_rocketlauncher_force 600
+set g_balance_rocketlauncher_force 400
set g_balance_rocketlauncher_radius 100
-set g_balance_rocketlauncher_speed 1600
-set g_balance_rocketlauncher_speedaccel 1600
+set g_balance_rocketlauncher_speed 1500
+set g_balance_rocketlauncher_speedaccel 1500
set g_balance_rocketlauncher_speedstart 800
-set g_balance_rocketlauncher_lifetime 30
-set g_balance_rocketlauncher_refire 1.2
+set g_balance_rocketlauncher_lifetime 10
+set g_balance_rocketlauncher_refire 1.1
set g_balance_rocketlauncher_animtime 0.3
-set g_balance_rocketlauncher_ammo 3
-set g_balance_rocketlauncher_health 40
-set g_balance_rocketlauncher_damageforcescale 4
+set g_balance_rocketlauncher_ammo 4
+set g_balance_rocketlauncher_health 0 // 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
set g_balance_rocketlauncher_detonatedelay 0.05 // 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_rocketlauncher_guiderate 140 // max degrees per second
+set g_balance_rocketlauncher_guiderate 110 // max degrees per second
set g_balance_rocketlauncher_guideratedelay 0.01 // immediate
set g_balance_rocketlauncher_guidegoal 512 // goal distance for (non-laser) guiding (higher = less control, lower = erratic)
-set g_balance_rocketlauncher_guidedelay 0.15 // delay before guiding kicks in
+set g_balance_rocketlauncher_guidedelay 0.2 // delay before guiding kicks in
set g_balance_rocketlauncher_guidestop 0 // stop guiding when firing again
set g_balance_rocketlauncher_remote_damage 70
-set g_balance_rocketlauncher_remote_edgedamage 30
+set g_balance_rocketlauncher_remote_edgedamage 35
set g_balance_rocketlauncher_remote_radius 100
-set g_balance_rocketlauncher_remote_force 500
+set g_balance_rocketlauncher_remote_force 400
+set g_balance_rocketlauncher_reload_ammo 0 //default: 25
+set g_balance_rocketlauncher_reload_time 2
// }}}
// {{{ porto
set g_balance_porto_primary_refire 1.5
set g_balance_hook_secondary_power 3 // effect behaves like a square function
set g_balance_hook_secondary_duration 1.5 // effect runs for three seconds
// }}}
-// {{{ hlac
+// {{{ 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 23
-set g_balance_hlac_primary_edgedamage 10
-set g_balance_hlac_primary_force 100
+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.1
+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_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_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_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
// }}}
// {{{ sniperrifle
-set g_balance_sniperrifle_magazinecapacity 8 // make it pretty much useless in close combat
-set g_balance_sniperrifle_reloadtime 2 // matches reload anim
-set g_balance_sniperrifle_auto_reload_on_switch 0
set g_balance_sniperrifle_bursttime 0
set g_balance_sniperrifle_primary_tracer 1
-set g_balance_sniperrifle_primary_damage 65
-set g_balance_sniperrifle_primary_headshotaddeddamage 75
+set g_balance_sniperrifle_primary_shots 1
+set g_balance_sniperrifle_primary_damage 60
+set g_balance_sniperrifle_primary_headshotaddeddamage 50
set g_balance_sniperrifle_primary_spread 0
-set g_balance_sniperrifle_primary_force 2
+set g_balance_sniperrifle_primary_force 100
set g_balance_sniperrifle_primary_speed 40000
set g_balance_sniperrifle_primary_lifetime 5
-set g_balance_sniperrifle_primary_refire 0.75
-set g_balance_sniperrifle_primary_animtime 0.3
+set g_balance_sniperrifle_primary_refire 1.5
+set g_balance_sniperrifle_primary_animtime 0.7
set g_balance_sniperrifle_primary_ammo 10
set g_balance_sniperrifle_primary_bulletconstant 110 // 62.2qu
set g_balance_sniperrifle_primary_burstcost 0
set g_balance_sniperrifle_primary_bullethail 0 // empty magazine on shot
-set g_balance_sniperrifle_secondary 1
+set g_balance_sniperrifle_secondary 0 // Nex and sniper rifle should never be on the same map, so this (zoom on secondary) is okay
+set g_balance_sniperrifle_secondary_reload 0
set g_balance_sniperrifle_secondary_tracer 0
-set g_balance_sniperrifle_secondary_damage 50
-set g_balance_sniperrifle_secondary_headshotaddeddamage 50 // 50 damage only on head
-set g_balance_sniperrifle_secondary_spread 0
-set g_balance_sniperrifle_secondary_force 2
+set g_balance_sniperrifle_secondary_shots 1
+set g_balance_sniperrifle_secondary_damage 25
+set g_balance_sniperrifle_secondary_headshotaddeddamage 35
+set g_balance_sniperrifle_secondary_spread 0.01
+set g_balance_sniperrifle_secondary_force 50
set g_balance_sniperrifle_secondary_speed 20000
set g_balance_sniperrifle_secondary_lifetime 5
-set g_balance_sniperrifle_secondary_refire 0.1
-set g_balance_sniperrifle_secondary_animtime 0.1
+set g_balance_sniperrifle_secondary_refire 0.6
+set g_balance_sniperrifle_secondary_animtime 0.3
set g_balance_sniperrifle_secondary_ammo 10
set g_balance_sniperrifle_secondary_bulletconstant 110 // 15.5qu
set g_balance_sniperrifle_secondary_burstcost 0
set g_balance_sniperrifle_secondary_bullethail 0 // empty magazine on shot
+set g_balance_sniperrifle_reload_ammo 80 //default: 80
+set g_balance_sniperrifle_reload_time 2
// }}}
// {{{ tuba
set g_balance_tuba_refire 0.05
set g_balance_tuba_radius 200
set g_balance_tuba_force 40
// }}}
-// {{{ fireball
-set g_balance_fireball_primary_ammo 40
-set g_balance_fireball_primary_animtime 0.15
+// {{{ fireball // this is a superweapon -- lets make it behave as one.
+set g_balance_fireball_primary_ammo 20
+set g_balance_fireball_primary_animtime 0.2
set g_balance_fireball_primary_bfgdamage 100
set g_balance_fireball_primary_bfgforce 0
set g_balance_fireball_primary_bfgradius 1000
set g_balance_fireball_primary_damage 200
-set g_balance_fireball_primary_damageforcescale 4
-set g_balance_fireball_primary_edgedamage 0
-set g_balance_fireball_primary_force 700
-set g_balance_fireball_primary_health 50
+set g_balance_fireball_primary_damageforcescale 0
+set g_balance_fireball_primary_edgedamage 50
+set g_balance_fireball_primary_force 600
+set g_balance_fireball_primary_health 0
set g_balance_fireball_primary_laserburntime 0.5
set g_balance_fireball_primary_laserdamage 80
set g_balance_fireball_primary_laseredgedamage 20
set g_balance_fireball_primary_laserradius 256
set g_balance_fireball_primary_lifetime 15
set g_balance_fireball_primary_radius 200
-set g_balance_fireball_primary_refire 5
+set g_balance_fireball_primary_refire 2
set g_balance_fireball_primary_refire2 0
-set g_balance_fireball_primary_speed 650
+set g_balance_fireball_primary_speed 1200
set g_balance_fireball_primary_spread 0
set g_balance_fireball_secondary_ammo 5
set g_balance_fireball_secondary_animtime 0.3
set g_balance_fireball_secondary_laseredgedamage 20
set g_balance_fireball_secondary_laserradius 110
set g_balance_fireball_secondary_lifetime 7
-set g_balance_fireball_secondary_refire 2
+set g_balance_fireball_secondary_refire 1.5
set g_balance_fireball_secondary_speed 900
set g_balance_fireball_secondary_speed_up 100
set g_balance_fireball_secondary_speed_z 0
set g_balance_fireball_secondary_spread 0
+set g_balance_fireball_reload_ammo 0 //default: 100
+set g_balance_fireball_reload_time 2
// }}}
// {{{ 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_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_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.3
-set g_balance_seeker_missile_count 4
-set g_balance_seeker_missile_damage 40
+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 10
-set g_balance_seeker_missile_force 250
-set g_balance_seeker_missile_health 5
+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 80
-set g_balance_seeker_missile_refire 0.5
-set g_balance_seeker_missile_smart 1
+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 700
-set g_balance_seeker_missile_speed_up 300
+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 1250
+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.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_missile_turnrate 0.15
+set g_balance_seeker_reload_ammo 0 //default: 15
+set g_balance_seeker_reload_time 2
// End new seeker
set g_pickup_armormedium_max 50
set g_pickup_armormedium_anyway 0
set g_pickup_armorbig 50
-set g_pickup_armorbig_max 50
+set g_pickup_armorbig_max 75; // LOG: to allow a little more armor from medium armor
set g_pickup_armorbig_anyway 0
set g_pickup_armorlarge 100
set g_pickup_armorlarge_max 150
set g_weaponspreadfactor 1 "weapon spread multiplier"
set g_balance_firetransfer_time 0.9
set g_balance_firetransfer_damage 0.8
-set g_throughfloor_damage 0.5
-set g_throughfloor_force 0.7
+set g_throughfloor_damage 0.7
+set g_throughfloor_force 0.8
set g_projectiles_newton_style 2
// possible values:
// 0: absolute velocity projectiles (like Quake)
set g_balance_falldamage_minspeed 800
set g_balance_falldamage_factor 0.20
set g_balance_falldamage_maxdamage 15
+set g_balance_damagepush_speedfactor 2.5
// }}}
// {{{ powerups
-set g_balance_powerup_invincible_takedamage 0.3
+set g_balance_powerup_invincible_takedamage 0.6
set g_balance_powerup_invincible_time 30
set g_balance_powerup_strength_damage 3
set g_balance_powerup_strength_force 4
set g_balance_laser_primary_gauntlet 0
set g_balance_laser_primary_force_zscale 2 // 300 upforce
set g_balance_laser_primary_force_velocitybias 0.3
+set g_balance_laser_primary_force_other_scale 2.5 // force 375 when pushing others around
set g_balance_laser_secondary 0 // when 1, a secondary laser mode exists
set g_balance_laser_secondary_damage 200 // dps
set g_balance_laser_secondary_edgedamage 0
set g_balance_laser_secondary_gauntlet 1
set g_balance_laser_secondary_force_zscale 1.25
set g_balance_laser_secondary_force_velocitybias 0
+set g_balance_laser_secondary_force_other_scale 0
+set g_balance_laser_reload_ammo 0 //default: 6
+set g_balance_laser_reload_time 2
// }}}
// {{{ shotgun
set g_balance_shotgun_primary_bullets 18
-set g_balance_shotgun_primary_damage 4
+set g_balance_shotgun_primary_damage 3.5 // LOG: changed from 4 to 3.5, total damage 63
set g_balance_shotgun_primary_force 20
-set g_balance_shotgun_primary_spread 0.18
+set g_balance_shotgun_primary_spread 0.16 // LOG: changed from 0.18 -> 0.16 to compensate a little for lower damage
set g_balance_shotgun_primary_refire 1
set g_balance_shotgun_primary_animtime 0.3
set g_balance_shotgun_primary_ammo 1
set g_balance_shotgun_secondary_melee_range 85
set g_balance_shotgun_secondary_melee_swing 50
set g_balance_shotgun_secondary_melee_time 0.1
+set g_balance_shotgun_secondary_melee_no_doubleslap 0
set g_balance_shotgun_secondary_damage 110
set g_balance_shotgun_secondary_force 150
set g_balance_shotgun_secondary_refire 1.1
set g_balance_shotgun_secondary_animtime 1
+set g_balance_shotgun_reload_ammo 0 //default: 5
+set g_balance_shotgun_reload_time 2
// }}}
// {{{ uzi
set g_balance_uzi_mode 1 // Activates varible spread for sustained & burst mode secondary
set g_balance_uzi_spread_min 0.02
-set g_balance_uzi_spread_max 0.6
+set g_balance_uzi_spread_max 0.3 // LOG: 0.6 -> 0.3
set g_balance_uzi_spread_add 0.008
set g_balance_uzi_burst 3 // # of bullets in a burst (if set to 2 or more)
+set g_balance_uzi_burst_animtime 0.45
set g_balance_uzi_burst_refire 0.05 // refire between burst bullets
set g_balance_uzi_burst_refire2 0.45 // refire after burst
-set g_balance_uzi_burst_spread 0.05
-set g_balance_uzi_burst_damage 20 // 100 dps, delivered in 0.15s
+set g_balance_uzi_burst_spread 0.07
+set g_balance_uzi_burst_damage 25
set g_balance_uzi_burst_force 50
set g_balance_uzi_burst_ammo 3
set g_balance_uzi_first 1
-set g_balance_uzi_first_damage 20 // 100 dps
+set g_balance_uzi_first_damage 15 / f/ LOG: 22 -> 15
set g_balance_uzi_first_force 50
set g_balance_uzi_first_spread 0.03
set g_balance_uzi_first_refire 0.2
set g_balance_uzi_sustained_damage 12 // 120 dps
set g_balance_uzi_sustained_force 12
-set g_balance_uzi_sustained_spread 0.08
+set g_balance_uzi_sustained_spread 0.06
set g_balance_uzi_sustained_refire 0.1
set g_balance_uzi_sustained_ammo 1
set g_balance_uzi_speed 18000
set g_balance_uzi_bulletconstant 115 // 13.1qu
+
+set g_balance_uzi_reload_ammo 0 //default: 30
+set g_balance_uzi_reload_time 2
// }}}
// {{{ mortar
set g_balance_grenadelauncher_primary_type 0
set g_balance_grenadelauncher_bouncefactor 0.5
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_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 4 // 0 disables the limit
+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_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_force 425
set g_balance_electro_primary_force_up 125
set g_balance_electro_primary_radius 850
-set g_balance_electro_primary_comboradius 75
+set g_balance_electro_primary_comboradius 150
set g_balance_electro_primary_speed 0
set g_balance_electro_primary_spread 0
set g_balance_electro_primary_lifetime 0
set g_balance_electro_combo_radius 250
set g_balance_electro_combo_comboradius 0
set g_balance_electro_combo_speed 400
+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 6
-set g_balance_crylink_primary_force 40
+set g_balance_crylink_primary_damage 7 // LOG: 10 -> 7
+set g_balance_crylink_primary_edgedamage 4 // LOG: 6 -> 4
+set g_balance_crylink_primary_force 35
set g_balance_crylink_primary_radius 80
set g_balance_crylink_primary_speed 1500
set g_balance_crylink_primary_spread 0.05
set g_balance_crylink_primary_other_fadetime 0.25
set g_balance_crylink_secondary 1
-set g_balance_crylink_secondary_damage 3
-set g_balance_crylink_secondary_edgedamage 0
-set g_balance_crylink_secondary_force -20
-set g_balance_crylink_secondary_radius 5
-set g_balance_crylink_secondary_speed 1700
-set g_balance_crylink_secondary_spread 0.03
-set g_balance_crylink_secondary_shots 3
-set g_balance_crylink_secondary_bounces 0
-set g_balance_crylink_secondary_refire 0.15
-set g_balance_crylink_secondary_animtime 0.15
-set g_balance_crylink_secondary_ammo 1
-set g_balance_crylink_secondary_bouncedamagefactor 0.5
+set g_balance_crylink_secondary_damage 5 // LOG: 8 -> 5
+set g_balance_crylink_secondary_edgedamage 3
+set g_balance_crylink_secondary_force 16 // LOG: 20 -> 16
+set g_balance_crylink_secondary_radius 15 // LOG: 20 -> 15
+set g_balance_crylink_secondary_speed 1250 // LOG: 1500 -> 1250
+set g_balance_crylink_secondary_spread 0.1
+set g_balance_crylink_secondary_shots 6
+set g_balance_crylink_secondary_bounces 2
+set g_balance_crylink_secondary_refire 0.9 // LOG: 0.8 -> 0.9
+set g_balance_crylink_secondary_animtime 0.3
+set g_balance_crylink_secondary_ammo 3 // LOG: 2 -> 3
+set g_balance_crylink_secondary_bouncedamagefactor 0.4 // LOG: 0.2 -> 0.4
set g_balance_crylink_secondary_joindelay 0
-set g_balance_crylink_secondary_joinspread 0
-set g_balance_crylink_secondary_jointime 0
+set g_balance_crylink_secondary_joinspread 0.2
+set g_balance_crylink_secondary_jointime 0.1
set g_balance_crylink_secondary_joinexplode 0
set g_balance_crylink_secondary_joinexplode_damage 0
set g_balance_crylink_secondary_joinexplode_edgedamage 0
set g_balance_crylink_secondary_joinexplode_radius 0
set g_balance_crylink_secondary_joinexplode_force 0
-set g_balance_crylink_secondary_linkexplode 1
+set g_balance_crylink_secondary_linkexplode 0
set g_balance_crylink_secondary_middle_lifetime 5 // range: 10000 full, fades to 10000
set g_balance_crylink_secondary_middle_fadetime 5
set g_balance_crylink_secondary_line_lifetime 2 // range: 4000 full, fades to 8000
-set g_balance_crylink_secondary_line_fadetime 2
+set g_balance_crylink_secondary_line_fadetime 0.25
+
+set g_balance_crylink_reload_ammo 0 //default: 10
+set g_balance_crylink_reload_time 2
// }}}
// {{{ nex
set g_balance_nex_primary_damage 90
set g_balance_nex_primary_damagefalloff_halflife 0
set g_balance_nex_primary_damagefalloff_forcehalflife 0
-set g_balance_nex_secondary 1
-set g_balance_nex_secondary_charge 1
+set g_balance_nex_secondary 0 // LOG: disable secondary
+set g_balance_nex_secondary_charge 0 // LOG: disable secondary charge
set g_balance_nex_secondary_charge_rate 0.4
set g_balance_nex_secondary_chargepool 1
-set g_balance_nex_secondary_chargepool_regen 0.15
-set g_balance_nex_secondary_chargepool_pause_regen 1
-set g_balance_nex_secondary_chargepool_pause_health_regen 1
+set g_balance_nex_secondary_chargepool_regen 0.25
+set g_balance_nex_secondary_chargepool_pause_regen 2
+set g_balance_nex_secondary_chargepool_pause_health_regen 0.5
set g_balance_nex_secondary_damage 0
set g_balance_nex_secondary_force 0
set g_balance_nex_secondary_refire 0
set g_balance_nex_secondary_animtime 0
-set g_balance_nex_secondary_ammo 0.2 // full charge pool is 1, so it depletes in 5 secs
+set g_balance_nex_secondary_ammo 0.4 // full charge pool is 1, so it depletes in 2.5 secs
set g_balance_nex_secondary_damagefalloff_mindist 0
set g_balance_nex_secondary_damagefalloff_maxdist 0
set g_balance_nex_secondary_damagefalloff_halflife 0
set g_balance_nex_charge_mindmg 20
set g_balance_nex_charge_start 0.5
set g_balance_nex_charge_rate 0.5
-set g_balance_nex_charge_limit 0.5
-set g_balance_nex_charge_rot_rate 0.1
-set g_balance_nex_charge_rot_pause 1 // Dont rot down until this long after release of charge button
+set g_balance_nex_charge_animlimit 0.5
+set g_balance_nex_charge_limit 1 // LOG: 0.5 -> 1 - allow to fully charge automaticaly
+set g_balance_nex_charge_rot_rate 0 // LOG: 0.1 -> 0 - disable rot
+set g_balance_nex_charge_rot_pause 0.5 // Dont rot down until this long after release of charge button
set g_balance_nex_charge_shot_multiplier 0
set g_balance_nex_charge_velocity_rate 0
set g_balance_nex_charge_minspeed 600
set g_balance_nex_charge_maxspeed 1000
+
+set g_balance_nex_reload_ammo 0 //default: 25
+set g_balance_nex_reload_time 2
// }}}
// {{{ minstanex
set g_balance_minstanex_refire 1
set g_balance_minstanex_animtime 0.50
set g_balance_minstanex_ammo 10
+set g_balance_minstanex_laser_ammo 0
+set g_balance_minstanex_reload_ammo 0 //default: 50
+set g_balance_minstanex_reload_time 2
// }}}
// {{{ hagar
set g_balance_hagar_primary_damage 14
set g_balance_hagar_primary_edgedamage 6
set g_balance_hagar_primary_force 70
-set g_balance_hagar_primary_radius 115
+set g_balance_hagar_primary_radius 110
set g_balance_hagar_primary_spread 0.1
set g_balance_hagar_primary_speed 1800
set g_balance_hagar_primary_lifetime 5
set g_balance_hagar_secondary_lifetime_rand 0
set g_balance_hagar_secondary_refire 0.12
set g_balance_hagar_secondary_ammo 1
+set g_balance_hagar_reload_ammo 0 //default: 25
+set g_balance_hagar_reload_time 2
// }}}
// {{{ rocketlauncher
set g_balance_rocketlauncher_damage 82
set g_balance_rocketlauncher_remote_edgedamage 20
set g_balance_rocketlauncher_remote_radius 120
set g_balance_rocketlauncher_remote_force 350
+set g_balance_rocketlauncher_reload_ammo 0 //default: 25
+set g_balance_rocketlauncher_reload_time 2
// }}}
// {{{ porto
set g_balance_porto_primary_refire 1.5
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
// }}}
// {{{ sniperrifle
-set g_balance_sniperrifle_magazinecapacity 8 // make it pretty much useless in close combat
-set g_balance_sniperrifle_reloadtime 2 // matches reload anim
-set g_balance_sniperrifle_auto_reload_on_switch 0
set g_balance_sniperrifle_bursttime 0
set g_balance_sniperrifle_primary_tracer 1
+set g_balance_sniperrifle_primary_shots 1
set g_balance_sniperrifle_primary_damage 60
set g_balance_sniperrifle_primary_headshotaddeddamage 60
set g_balance_sniperrifle_primary_spread 0
set g_balance_sniperrifle_primary_burstcost 0
set g_balance_sniperrifle_primary_bullethail 0 // empty magazine on shot
set g_balance_sniperrifle_secondary 1
+set g_balance_sniperrifle_secondary_reload 1
set g_balance_sniperrifle_secondary_tracer 0
+set g_balance_sniperrifle_secondary_shots 1
set g_balance_sniperrifle_secondary_damage 42
set g_balance_sniperrifle_secondary_headshotaddeddamage 42
set g_balance_sniperrifle_secondary_spread 0
set g_balance_sniperrifle_secondary_bulletconstant 110 // 15.5qu
set g_balance_sniperrifle_secondary_burstcost 0
set g_balance_sniperrifle_secondary_bullethail 0 // empty magazine on shot
+set g_balance_sniperrifle_reload_ammo 80 //default: 80
+set g_balance_sniperrifle_reload_time 2
// }}}
// {{{ tuba
set g_balance_tuba_refire 0.05
set g_balance_fireball_secondary_speed_up 100
set g_balance_fireball_secondary_speed_z 0
set g_balance_fireball_secondary_spread 0
+set g_balance_fireball_reload_ammo 0 //default: 60
+set g_balance_fireball_reload_time 2
// }}}
// {{{ 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_missile_accel 1400
set g_balance_seeker_missile_ammo 2
set g_balance_seeker_missile_animtime 0.2
-set g_balance_seeker_missile_count 8
-set g_balance_seeker_missile_damage 15
+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 250
+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_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 1400
+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_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_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
set g_balance_falldamage_minspeed 800
set g_balance_falldamage_factor 0.02 // maxspeed = minspeed + maxdamage / factor = 4550
set g_balance_falldamage_maxdamage 75
+set g_balance_damagepush_speedfactor 0
// }}}
// {{{ powerups
set g_balance_laser_primary_gauntlet 0
set g_balance_laser_primary_force_zscale 1.2
set g_balance_laser_primary_force_velocitybias 0
+set g_balance_laser_primary_force_other_scale 1
set g_balance_laser_secondary 0 // when 1, a secondary laser mode exists
set g_balance_laser_secondary_damage 35
set g_balance_laser_secondary_edgedamage 10
set g_balance_laser_secondary_gauntlet 0
set g_balance_laser_secondary_force_zscale 1
set g_balance_laser_secondary_force_velocitybias 0
+set g_balance_laser_secondary_force_other_scale 1
+set g_balance_laser_reload_ammo 0 //default: 6
+set g_balance_laser_reload_time 2
// }}}
// {{{ shotgun
set g_balance_shotgun_primary_bullets 10
set g_balance_shotgun_secondary_melee_range 85
set g_balance_shotgun_secondary_melee_swing 50
set g_balance_shotgun_secondary_melee_time 0.1
+set g_balance_shotgun_secondary_melee_no_doubleslap 1
set g_balance_shotgun_secondary_damage 110
set g_balance_shotgun_secondary_force 150
set g_balance_shotgun_secondary_refire 1.1
set g_balance_shotgun_secondary_animtime 1
+set g_balance_shotgun_reload_ammo 0 //default: 5
+set g_balance_shotgun_reload_time 2
// }}}
// {{{ uzi
set g_balance_uzi_mode 1 // Activates varible spread for sustained & burst mode secondary
set g_balance_uzi_spread_add 0.008
set g_balance_uzi_burst 3 // # of bullets in a burst (if set to 2 or more)
+set g_balance_uzi_burst_animtime 0.4
set g_balance_uzi_burst_refire 0.05 // refire between burst bullets
set g_balance_uzi_burst_refire2 0.4 // refire after burst
set g_balance_uzi_burst_spread 0.03
set g_balance_uzi_speed 18000
set g_balance_uzi_bulletconstant 115 // 13.1qu
+
+set g_balance_uzi_reload_ammo 0 //default: 30
+set g_balance_uzi_reload_time 2
// }}}
// {{{ mortar
set g_balance_grenadelauncher_primary_type 0
set g_balance_grenadelauncher_bouncefactor 0.5
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_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_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_combo_radius 250
set g_balance_electro_combo_comboradius 0
set g_balance_electro_combo_speed 1000
+set g_balance_electro_reload_ammo 0 //default: 20
+set g_balance_electro_reload_time 2
// }}}
// {{{ crylink
set g_balance_crylink_primary_damage 5
set g_balance_crylink_secondary_middle_fadetime 5
set g_balance_crylink_secondary_line_lifetime 2 // range: 4000 full, fades to 8000
set g_balance_crylink_secondary_line_fadetime 2
+set g_balance_crylink_reload_ammo 0 //default: 10
+set g_balance_crylink_reload_time 2
// }}}
// {{{ nex
set g_balance_nex_primary_damage 100
set g_balance_nex_charge_mindmg 10
set g_balance_nex_charge_start 0
set g_balance_nex_charge_rate 0.35
+set g_balance_nex_charge_animlimit 0.5
set g_balance_nex_charge_limit 0.5
set g_balance_nex_charge_rot_rate 0.1
set g_balance_nex_charge_rot_pause 1 // Dont rot down untill this long after release of charge button
set g_balance_nex_charge_velocity_rate 0
set g_balance_nex_charge_minspeed 400
set g_balance_nex_charge_maxspeed 1000
+
+set g_balance_nex_reload_ammo 0 //default: 25
+set g_balance_nex_reload_time 2
// }}}
// {{{ minstanex
set g_balance_minstanex_refire 1
set g_balance_minstanex_animtime 0.3
set g_balance_minstanex_ammo 10
+set g_balance_minstanex_laser_ammo 0
+set g_balance_minstanex_reload_ammo 0 //default: 50
+set g_balance_minstanex_reload_time 2
// }}}
// {{{ hagar
set g_balance_hagar_primary_damage 25
set g_balance_hagar_secondary_lifetime_rand 0
set g_balance_hagar_secondary_refire 0.15
set g_balance_hagar_secondary_ammo 1
+set g_balance_hagar_reload_ammo 0 //default: 25
+set g_balance_hagar_reload_time 2
// }}}
// {{{ rocketlauncher
set g_balance_rocketlauncher_damage 120
set g_balance_rocketlauncher_remote_edgedamage 20
set g_balance_rocketlauncher_remote_radius 125
set g_balance_rocketlauncher_remote_force 350
+set g_balance_rocketlauncher_reload_ammo 0 //default: 25
+set g_balance_rocketlauncher_reload_time 2
// }}}
// {{{ porto
set g_balance_porto_primary_refire 1.5
set g_balance_hlac_secondary_animtime 0.7
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
// }}}
// {{{ sniperrifle
-set g_balance_sniperrifle_magazinecapacity 8 // make it pretty much useless in close combat
-set g_balance_sniperrifle_reloadtime 2 // matches reload anim
-set g_balance_sniperrifle_auto_reload_on_switch 0
set g_balance_sniperrifle_bursttime 0
set g_balance_sniperrifle_primary_tracer 1
+set g_balance_sniperrifle_primary_shots 1
set g_balance_sniperrifle_primary_damage 40
set g_balance_sniperrifle_primary_headshotaddeddamage 100
set g_balance_sniperrifle_primary_spread 0
set g_balance_sniperrifle_primary_burstcost 0
set g_balance_sniperrifle_primary_bullethail 0 // empty magazine on shot
set g_balance_sniperrifle_secondary 1
+set g_balance_sniperrifle_secondary_reload 0
set g_balance_sniperrifle_secondary_tracer 0
+set g_balance_sniperrifle_secondary_shots 1
set g_balance_sniperrifle_secondary_damage 50
set g_balance_sniperrifle_secondary_headshotaddeddamage 50 // 50 damage only on head
set g_balance_sniperrifle_secondary_spread 0
set g_balance_sniperrifle_secondary_bulletconstant 110 // 15.5qu
set g_balance_sniperrifle_secondary_burstcost 0
set g_balance_sniperrifle_secondary_bullethail 0 // empty magazine on shot
+set g_balance_sniperrifle_reload_ammo 80 //default: 80
+set g_balance_sniperrifle_reload_time 2
// }}}
// {{{ tuba
set g_balance_tuba_refire 0.05
set g_balance_fireball_secondary_speed_up 100
set g_balance_fireball_secondary_speed_z 0
set g_balance_fireball_secondary_spread 0
+set g_balance_fireball_reload_ammo 0 //default: 60
+set g_balance_fireball_reload_time 2
// }}}
// {{{ 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_tag_refire 1
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
--- /dev/null
+#!/bin/sh
+
+for VM in menu csprogs; do
+ case "$VM" in
+ csprogs)
+ VMD=client
+ ;;
+ *)
+ VMD=$VM
+ ;;
+ esac
+ {
+ find qcsrc/"$VMD" -type f -not -name \*.po -not -name \*.txt
+ find qcsrc/common -type f -not -name \*.po -not -name \*.txt
+ find qcsrc/server -type f -name w_\*.qc
+ } | xgettext -LC -k_ -f- --from-code utf-8 -o "$VM".dat.pot >&2
+ for X in "$VM".dat.*.po; do
+ [ -f "$X" ] || continue
+ for Y in ~/check-translations/"$X".*; do
+ [ -f "$Y" ] || continue
+ msgcat -F --use-first "$Y" "$X" > "$X".new
+ mv "$X".new "$X"
+ done
+ msgmerge -F -U "$X" "$VM".dat.pot >&2
+ msgattrib --untranslated "$X" | grep . > "$X".untranslated || rm -f "$X".untranslated
+ msgattrib --fuzzy "$X" | grep . > "$X".fuzzy || rm -f "$X".fuzzy
+ nu=$((`grep -c ^#: "$X".untranslated` + 0))
+ nf=$((`grep -c ^#: "$X".fuzzy` + 0))
+ n=$(($nu + $nf))
+ if [ $n -gt 0 ]; then
+ echo "TODO for translation $X:"
+ echo "Untranslated: $nu"
+ echo "Fuzzy: $nf"
+ ltr=`grep '^"Last-Translator: ' "$X" | cut -d ' ' -f 2- | cut -d '\\' -f 1 | egrep -v '<LL@li.org>|<EMAIL@ADDRESS>'`
+ ltm=`grep '^"Language-Team: ' "$X" | cut -d ' ' -f 2- | cut -d '\\' -f 1 | egrep -v '<LL@li.org>|<EMAIL@ADDRESS>'`
+ echo "Translators: $ltr, $ltm"
+ case "$ltr" in
+ '')
+ to=$ltm
+ cc=
+ ;;
+ *)
+ to=$ltr
+ if [ x"$ltr" = x"$ltm" ]; then
+ cc=
+ else
+ cc=$ltm
+ fi
+ ;;
+ esac
+ if [ -n "$to" ]; then
+ echo "To: $to"
+ fi
+ if [ -n "$cc" ]; then
+ echo "Cc: $cc"
+ fi
+ if [ -n "$to" ]; then
+ while :; do
+ echo "Send mail? [y/n]"
+ read -r yesno
+ case "$yesno" in
+ y)
+ attach=
+ if [ $nu -gt 0 ]; then
+ attach="$attach $X.untranslated"
+ fi
+ if [ $nf -gt 0 ]; then
+ attach="$attach $X.fuzzy"
+ fi
+ {
+ cat <<EOF
+Hi,
+
+as you provided us with translations in the past, we kindly ask you
+to update the translation to match changes in the Xonotic source. Can
+you please work on them and provide updates to us?
+
+If you do not wish to be contacted for translation updates any more,
+please tell us in a reply to this message.
+
+EOF
+ if [ $nu -gt 0 ]; then
+ cat <<EOF
+Attached to this message is a file
+$X.untranslated
+with $nu yet to be translated messages. Please translate them and reply
+with the file containing the translations in the "msgstr" fields.
+
+EOF
+ fi
+ if [ $nf -gt 0 ]; then
+ cat <<EOF
+Attached to this message is a file
+$X.fuzzy
+with $nf automatically generated translations. Please verify and/or fix
+them and reply with the file having been verified by you.
+
+EOF
+ fi
+ cat <<EOF
+Thanks in advance,
+
+Team Xonotic
+EOF
+ } | mutt \
+ -e "set from=\"divVerent@xonotic.org\"" \
+ -e "set use_from=yes" \
+ -e "set use_envelope_from=yes" \
+ -s "Need update for translations: $X" \
+ -c "$cc" \
+ -b "divVerent@xonotic.org" \
+ -a $attach -- \
+ "$to"
+ break
+ ;;
+ n)
+ break
+ ;;
+ esac
+ done
+ fi
+ fi
+ done
+ for X in "$VM".dat.*.po.disabled; do
+ [ -f "$X" ] || continue
+ msgmerge -F -U "$X" "$VM".dat.pot >/dev/null 2>&1
+ done
+done
--- /dev/null
+# Xonotic CSQC
+# Copyright (C) 2011 Team Xonotic
+# This file is distributed under the same license as the Xonotic package.
+# Rudolf Polzer <divVerent@xonotic.org>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 0.1preview\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-04-30 10:06+0200\n"
+"PO-Revision-Date: 2011-04-20 10:46+0200\n"
+"Last-Translator: Rudolf Polzer <divVerent@xonotic.org>\n"
+"Language-Team: Rudolf Polzer <divVerent@xonotic.org>\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: qcsrc/client/Main.qc:30
+msgid "ERROR - MENU IS VISIBLE BUT NO MENU WAS DEFINED!"
+msgstr "FEHLER - MENÜ IST SICHTBAR ABER KEIN MENÜ WURDE DEFINIERT!"
+
+#: qcsrc/client/Main.qc:56
+msgid ""
+"^3Your engine build is outdated\n"
+"^3This Server uses a newer QC VM. Please update!\n"
+msgstr ""
+"^3Diese Engine ist veraltet.\n"
+"^3Dieser Server verwendet eine neuere QC VM. Bitte updaten!\n"
+
+#: qcsrc/client/Main.qc:66
+#, c-format
+msgid "^4CSQC Build information: ^1%s\n"
+msgstr "^4CSQC Build-Information: ^1%s (deutsch)\n"
+
+#: qcsrc/client/Main.qc:232 qcsrc/client/Main.qc:248
+#, c-format
+msgid "trying to switch to unsupported team %d\n"
+msgstr "es wurde versucht, in das nicht unterstützte Team %d zu wechseln"
+
+#: qcsrc/client/Main.qc:364 qcsrc/client/scoreboard.qc:241
+msgid "Usage:\n"
+msgstr "Syntax:\n"
+
+#: qcsrc/client/Main.qc:365
+msgid "hud_save configname (saves to hud_skinname_configname.cfg)\n"
+msgstr "hud_save configname (speichert als hud_skinname_configname.cfg)\n"
+
+#: qcsrc/client/Main.qc:512
+msgid "Usage: cl_cmd COMMAND..., where possible commands are:\n"
+msgstr "Syntax: cl_cmd BEFEHL..., wobei mögliche Befehle sind:\n"
+
+#: qcsrc/client/Main.qc:513
+msgid " settemp cvar value\n"
+msgstr " settemp Cvar Wert\n"
+
+#: qcsrc/client/Main.qc:514
+msgid " scoreboard_columns_set ...\n"
+msgstr " scoreboard_columns_set ...\n"
+
+#: qcsrc/client/Main.qc:515
+msgid " scoreboard_columns_help\n"
+msgstr " scoreboard_columns_help\n"
+
+#: qcsrc/client/Main.qc:720
+msgid "A CSQC entity changed its owner!\n"
+msgstr "Ein CSQC-Entity hat seinen Besitzer gewechselt!\n"
+
+#: qcsrc/client/Main.qc:934
+msgid "A CSQC entity changed its type!\n"
+msgstr "Ein CSQC-Entity hat seinen Typ gewechselt!\n"
+
+#: qcsrc/client/Main.qc:972
+#, c-format
+msgid "unknown entity type in CSQC_Ent_Update: %d\n"
+msgstr "unbekannter Entity-Typ in CSQC_Ent_Update: %d\n"
+
+#: qcsrc/client/Main.qc:1444
+#, c-format
+msgid "%s (not bound)"
+msgstr "%s (nicht zugewiesen)"
+
+#: qcsrc/client/Main.qc:1449 qcsrc/client/hud.qc:407
+#, c-format
+msgid "%s (%s)"
+msgstr "%s (%s)"
+
+#: qcsrc/client/ctf.qc:35
+msgid "----- Order Menu -----"
+msgstr "----- Auftragsmenü -----"
+
+#: qcsrc/client/ctf.qc:36
+#, c-format
+msgid "Order: %s"
+msgstr "Auftrag: %s"
+
+#: qcsrc/client/ctf.qc:37
+msgid "1) ^3previous page"
+msgstr "1) ^3vorherige Seite"
+
+#: qcsrc/client/ctf.qc:38
+msgid "2) ^3next page"
+msgstr "2) ^3nächste Seite"
+
+#: qcsrc/client/ctf.qc:55 qcsrc/client/ctf.qc:161
+msgid "ESC) Exit Menu"
+msgstr "ESC) Menü verlassen"
+
+#: qcsrc/client/ctf.qc:126
+#, c-format
+msgid "Couldn't find player %d\n"
+msgstr "Kann Spieler %d nicht finden\n"
+
+#: qcsrc/client/ctf.qc:154
+msgid "----- Command Menu -----"
+msgstr "---- Befehlsmenü -----"
+
+#: qcsrc/client/ctf.qc:155
+msgid "Issue orders:"
+msgstr "Auftrag geben:"
+
+#: qcsrc/client/ctf.qc:156
+msgid " 1) Attack"
+msgstr " 1) Angreifen"
+
+#: qcsrc/client/ctf.qc:158
+msgid " 2) Defend"
+msgstr " 2) Verteidigen"
+
+#: qcsrc/client/ctf.qc:160
+msgid "3) Resign from command."
+msgstr "3) Befehlsgewalt abgeben."
+
+#: qcsrc/client/ctf.qc:212
+msgid "You're commander!"
+msgstr "Sie sind Befehlshaber!"
+
+#: qcsrc/client/ctf.qc:215
+msgid "Awaiting orders..."
+msgstr "Warten auf Auftrag..."
+
+#: qcsrc/client/hud.qc:337
+msgid "1st"
+msgstr "1."
+
+#: qcsrc/client/hud.qc:339
+msgid "2nd"
+msgstr "2."
+
+#: qcsrc/client/hud.qc:341
+msgid "3rd"
+msgstr "3."
+
+#: qcsrc/client/hud.qc:343
+#, c-format
+msgid "%dth"
+msgstr "%d."
+
+#: qcsrc/client/hud.qc:375
+#, c-format
+msgid " (-%dL)"
+msgstr " (-%dR)"
+
+#: qcsrc/client/hud.qc:380
+#, c-format
+msgid " (+%dL)"
+msgstr " (+%dR)"
+
+#: qcsrc/client/hud.qc:396
+msgid "Start line"
+msgstr "Start"
+
+#: qcsrc/client/hud.qc:398 qcsrc/client/hud.qc:402
+msgid "Finish line"
+msgstr "Ziel"
+
+#: qcsrc/client/hud.qc:400
+#, c-format
+msgid "Intermediate %d"
+msgstr "Zwischenzeit %d"
+
+#: qcsrc/client/hud.qc:409
+#, c-format
+msgid "%s (%s %s)"
+msgstr "%s (%s %s)"
+
+#: qcsrc/client/hud.qc:553
+#, c-format
+msgid "^2Successfully exported to %s! (Note: It's saved in data/data/)\n"
+msgstr ""
+"^2Erfolgreich als %s exportiert! (Hinweis: die Datei wurde in data/data/ "
+"abgelegt)\n"
+
+#: qcsrc/client/hud.qc:557
+#, c-format
+msgid "^1Couldn't write to %s\n"
+msgstr "^1Konnte nicht nach %s schreiben\n"
+
+#: qcsrc/client/hud.qc:1837
+msgid "Out of ammo"
+msgstr "Keine Munition mehr."
+
+#: qcsrc/client/hud.qc:1841
+msgid "Don't have"
+msgstr "nicht vorhanden"
+
+#: qcsrc/client/hud.qc:1845
+msgid "Unavailable"
+msgstr "nicht verfügbar"
+
+#: qcsrc/client/hud.qc:2696
+#, c-format
+msgid "^1%s^1 couldn't take it anymore\n"
+msgstr "^1%s^1 konnte es nicht mehr ertragen\n"
+
+#: qcsrc/client/hud.qc:2700 qcsrc/client/hud.qc:2992
+#, c-format
+msgid "^1%s^1 died\n"
+msgstr "^1%s^1 ist gestorben\n"
+
+#: qcsrc/client/hud.qc:2704
+#, c-format
+msgid "^7%s^7 committed suicide. What's the point of living without ammo?\n"
+msgstr "^7%s^7 hat sich erhängt. Was ist schon ein Leben ohne Munition?\n"
+
+#: qcsrc/client/hud.qc:2708
+#, c-format
+msgid "^1%s^1 thought they found a nice camping ground\n"
+msgstr "^1%s^1 dachte, einen tollen Campingplatz gefunden zu haben\n"
+
+#: qcsrc/client/hud.qc:2712
+#, c-format
+msgid "^1%s^1 didn't become friends with the Lord of Teamplay\n"
+msgstr "^1%s^1 bekam Probleme mit dem Lord of Teamplay\n"
+
+#: qcsrc/client/hud.qc:2716
+#, c-format
+msgid "^1%s^1 unfairly eliminated themself\n"
+msgstr "^1%s^1 hat sich selbst auf unfaire Weise erledigt\n"
+
+#: qcsrc/client/hud.qc:2720
+#, c-format
+msgid "^1%s^1 burned to death\n"
+msgstr "^1%s^1 brannte zu Tode\n"
+
+#: qcsrc/client/hud.qc:2724
+#, c-format
+msgid "^1%s^1 couldn't resist the urge to self-destruct\n"
+msgstr ""
+"^1%s^1 konnte dem Drang zur Selbstzerstörung einfach nicht widerstehen\n"
+
+#: qcsrc/client/hud.qc:2728
+#, c-format
+msgid "^1%s^1 ended it all after a %d kill spree\n"
+msgstr "^1%s^1 machte seinem %d-Amoklauf ein Ende\n"
+
+#: qcsrc/client/hud.qc:2745
+#, c-format
+msgid "^1%s^1 took action against a team mate\n"
+msgstr "^1%s^1 ergriff Maßnahmen gegen einen Mitspieler\n"
+
+#: qcsrc/client/hud.qc:2747
+#, c-format
+msgid "^1%s^1 mows down a team mate\n"
+msgstr "^1%s^1 mähte einen Mitspieler nieder\n"
+
+#: qcsrc/client/hud.qc:2752
+#, c-format
+msgid "^1%s^1 ended a %d scoring spree by going against a team mate\n"
+msgstr ""
+"^1%s^1 dachte, %d Punkte hintereinander reichen, und trug dies an einem "
+"Mitspieler aus\n"
+
+#: qcsrc/client/hud.qc:2754
+#, c-format
+msgid "^1%s^1 ended a %d kill spree by killing a team mate\n"
+msgstr "^1%s^1 beendete seinen %d-Amoklauf, indem er einen Mitspieler tötete\n"
+
+#: qcsrc/client/hud.qc:2758
+#, c-format
+msgid "^1%s^1's %s scoring spree was ended by a team mate!\n"
+msgstr ""
+"^1%s^1s %s Punkte hintereinander wurden von einem Mitspieler gestört!\n"
+
+#: qcsrc/client/hud.qc:2760
+#, c-format
+msgid "^1%s^1's %s kill spree was ended by a team mate!\n"
+msgstr "^1%s^1s %s-Amoklauf wurde von einem Mitspieler beendet!\n"
+
+#: qcsrc/client/hud.qc:2764
+#, c-format
+msgid "^1%s^1 drew first blood\n"
+msgstr "^1%s^1 war der Erste\n"
+
+#: qcsrc/client/hud.qc:2768
+#, c-format
+msgid "^1%s^1 tried to occupy %s^1's teleport destination space\n"
+msgstr "^1%s^1 dachte, %s^1 am Teleportieren hindern zu können\n"
+
+#: qcsrc/client/hud.qc:2770
+#, c-format
+msgid "^1%s^1 was telefragged by %s\n"
+msgstr "^1%s^1 wurde von %s^1 telefragged\n"
+
+#: qcsrc/client/hud.qc:2775
+#, c-format
+msgid "^1%s^1 was drowned by %s\n"
+msgstr "^1%s^1 wurde von %s^1 etränkt\n"
+
+#: qcsrc/client/hud.qc:2780
+#, c-format
+msgid "^1%s^1 was slimed by %s\n"
+msgstr "^1%s^1 wurde von %s^1 im Schleim versenkt\n"
+
+#: qcsrc/client/hud.qc:2785
+#, c-format
+msgid "^1%s^1 was cooked by %s\n"
+msgstr "^1%s^1 wurde von %s^1 gebraten\n"
+
+#: qcsrc/client/hud.qc:2790
+#, c-format
+msgid "^1%s^1 was grounded by %s\n"
+msgstr "^1%s^1 wurde von %s^1 geerdet\n"
+
+#: qcsrc/client/hud.qc:2795
+#, c-format
+msgid "^1%s^1 was shot into space by %s\n"
+msgstr "^1%s^1 wurde von %s^1 ins All geschossen\n"
+
+#: qcsrc/client/hud.qc:2800
+#, c-format
+msgid "^1%s^1 was conserved by %s\n"
+msgstr "^1%s^1 wurde von %s^1 konserviert\n"
+
+#: qcsrc/client/hud.qc:2806
+#, c-format
+msgid "^1%s^1 was thrown into a world of hurt by %s\n"
+msgstr "^1%s^1 wurde von %s^1 in eine Welt des Schmerzes geworfen\n"
+
+#: qcsrc/client/hud.qc:2810
+#, c-format
+msgid "^1%s^1 was crushed by %s\n"
+msgstr "^1%s^1 wurde von %s^1 zerquetscht\n"
+
+#: qcsrc/client/hud.qc:2814
+#, c-format
+msgid "^1%s^1 got shredded by %s\n"
+msgstr "^1%s^1 wurde von %s^1 zerstückelt\n"
+
+#: qcsrc/client/hud.qc:2818
+#, c-format
+msgid "^1%s^1 was blasted to bits by %s\n"
+msgstr "^1%s^1 wurde von %s^1 in die Luft gejagt\n"
+
+#: qcsrc/client/hud.qc:2822
+#, c-format
+msgid "^1%s^1 got caught in the destruction of %s^1's vehicle\n"
+msgstr "^1%s^1 wurde von der Explosion von %s^1s Fahrzeug erwischt\n"
+
+#: qcsrc/client/hud.qc:2826
+#, c-format
+msgid "^1%s^1 was bolted down by %s\n"
+msgstr "^1%s^1 wurde von %s^1 niedergeschmettert\n"
+
+#: qcsrc/client/hud.qc:2830
+#, c-format
+msgid "^1%s^1 could find no shelter from %s^1's rockets\n"
+msgstr "^1%s^1 fand keine Deckung vor %s^1s Raketen\n"
+
+#: qcsrc/client/hud.qc:2834
+#, c-format
+msgid "^1%s^1 dies when %s^1's wakizashi dies.\n"
+msgstr "^1%s^1 starb zusammen mit %s^1's Wakizashi.\n"
+
+#: qcsrc/client/hud.qc:2838
+#, c-format
+msgid "^1%s^1 was pushed into the line of fire by %s\n"
+msgstr "^1%s^1 wurde von %s^1 ins offene Feuer geschubst\n"
+
+#: qcsrc/client/hud.qc:2842
+#, c-format
+msgid "^1%s^1 was pushed into an accident by %s\n"
+msgstr "^1%s^1 wurde von %s^1 in einen unglücklichen Unfall geschubst\n"
+
+#: qcsrc/client/hud.qc:2846
+#, c-format
+msgid "^1%s^1 was unfairly eliminated by %s\n"
+msgstr "^1%s^1 wurde von %s auf unfaire Weise erledigt\n"
+
+#: qcsrc/client/hud.qc:2850
+#, c-format
+msgid "^1%s^1 was burnt to death by %s\n"
+msgstr "^1%s^1 wurde von %s verbrannt\n"
+
+#: qcsrc/client/hud.qc:2862
+#, c-format
+msgid "^1%s^1 was fragged by %s\n"
+msgstr "^1%s^1 wurde von %s^1 gefraggt\n"
+
+#: qcsrc/client/hud.qc:2867
+#, c-format
+msgid "^1%s^1's %s scoring spree was ended by %s\n"
+msgstr "^1%s^1's Punkte-Folge wurde von %s^1 beendet\n"
+
+#: qcsrc/client/hud.qc:2869
+#, c-format
+msgid "^1%s^1's %s kill spree was ended by %s\n"
+msgstr "^1%s^1's Kill-Spree wurde von %s^1 beendet\n"
+
+#: qcsrc/client/hud.qc:2872
+#, c-format
+msgid "^1%s^1 made %s scores in a row\n"
+msgstr "^1%s^1 machte %s Punkte hintereinander\n"
+
+#: qcsrc/client/hud.qc:2874
+#, c-format
+msgid "^1%s^1 has %s frags in a row\n"
+msgstr "^1%s^1 hat %s Frags hintereinander\n"
+
+#: qcsrc/client/hud.qc:2877
+#, c-format
+msgid "%s^7 made a ^1TRIPLE SCORE\n"
+msgstr "%s^7 hat einen ^1TRIPLE SCORE\n"
+
+#: qcsrc/client/hud.qc:2879
+#, c-format
+msgid "%s^7 made a ^1TRIPLE FRAG\n"
+msgstr "%s^7 hat einen ^1TRIPLE FRAG\n"
+
+#: qcsrc/client/hud.qc:2882
+#, c-format
+msgid "%s^7 unleashes ^1SCORING RAGE\n"
+msgstr "%s^7 hat ^1PUNKTE-RASEN\n"
+
+#: qcsrc/client/hud.qc:2884
+#, c-format
+msgid "%s^7 unleashes ^1RAGE\n"
+msgstr "%s^7 ^1RAST VOR ZORN\n"
+
+#: qcsrc/client/hud.qc:2887
+#, c-format
+msgid "%s^7 made ^1TEN SCORES IN A ROW!\n"
+msgstr "%s^7 hat ^1ZEHN PUNKTE HINTEREINANDER!\n"
+
+#: qcsrc/client/hud.qc:2889
+#, c-format
+msgid "%s^7 starts the ^1MASSACRE!\n"
+msgstr "%s^7 beginnt das ^1MASSAKER!\n"
+
+#: qcsrc/client/hud.qc:2892
+#, c-format
+msgid "%s^7 made ^1FIFTEEN SCORES IN A ROW!\n"
+msgstr "%s^7 hat ^1FÜNFZEHN PUNKTE HINTEREINANDER\n"
+
+#: qcsrc/client/hud.qc:2894
+#, c-format
+msgid "%s^7 executes ^1MAYHEM!\n"
+msgstr "%s^7 erzeugt das ^1CHAOS!\n"
+
+#: qcsrc/client/hud.qc:2897
+#, c-format
+msgid "%s^7 made ^1TWENTY SCORES IN A ROW!\n"
+msgstr "%s^7 hat ^1ZWANZIG PUNKTE HINTEREINANDER\n"
+
+#: qcsrc/client/hud.qc:2899
+#, c-format
+msgid "%s^7 is a ^1BERSERKER!\n"
+msgstr "%s^7 ist ein ^1BERSERKER!\n"
+
+#: qcsrc/client/hud.qc:2902
+#, c-format
+msgid "%s^7 made ^1TWENTY FIVE SCORES IN A ROW!\n"
+msgstr "%s^7 hat ^1FÜNFUNDZWANZIG PUNKTE HINTEREINANDER!\n"
+
+#: qcsrc/client/hud.qc:2904
+#, c-format
+msgid "%s^7 inflicts ^1CARNAGE!\n"
+msgstr "%s^7 hält ein ^1BLUTBAD!\n"
+
+#: qcsrc/client/hud.qc:2907
+#, c-format
+msgid "%s^7 made ^1THIRTY SCORES IN A ROW!\n"
+msgstr "%s^7 hat ^1DREISSIG PUNKTE HINTEREINANDER\n"
+
+#: qcsrc/client/hud.qc:2909
+#, c-format
+msgid "%s^7 unleashes ^1ARMAGEDDON!\n"
+msgstr "%s^7 lässt die ^1APOKALYPSE^7 los!\n"
+
+#: qcsrc/client/hud.qc:2917
+#, c-format
+msgid "^1%s^1 was in the water for too long\n"
+msgstr "^1%s^1 war zu lange im Wasser\n"
+
+#: qcsrc/client/hud.qc:2919
+#, c-format
+msgid "^1%s^1 drowned\n"
+msgstr "^1%s^1 ertrank\n"
+
+#: qcsrc/client/hud.qc:2924
+#, c-format
+msgid "^1%s^1 was slimed\n"
+msgstr "^1%s^1 wurde im Schleim versenkt\n"
+
+#: qcsrc/client/hud.qc:2930
+#, c-format
+msgid "^1%s^1 found a hot place\n"
+msgstr "^1%s^1 fand einen heißen Ort\n"
+
+#: qcsrc/client/hud.qc:2932
+#, c-format
+msgid "^1%s^1 turned into hot slag\n"
+msgstr "^1%s^1 verwandelte sich in heiße Schlacke\n"
+
+#: qcsrc/client/hud.qc:2939
+#, c-format
+msgid "^1%s^1 tested gravity (and it worked)\n"
+msgstr "^1%s^1 probierte die Gravitation aus (und sie funktionierte)\n"
+
+#: qcsrc/client/hud.qc:2941
+#, c-format
+msgid "^1%s^1 hit the ground with a crunch\n"
+msgstr "^1%s^1 landete mit einem Knall auf dem Boden\n"
+
+#: qcsrc/client/hud.qc:2946
+#, c-format
+msgid "^1%s^1 became a shooting star\n"
+msgstr "^1%s^1 wurde zu einer Sternschnuppe\n"
+
+#: qcsrc/client/hud.qc:2952
+#, c-format
+msgid "^1%s^1 discovered a swamp\n"
+msgstr "^1%s^1 entdeckte einen Sumpf\n"
+
+#: qcsrc/client/hud.qc:2954
+#, c-format
+msgid "^1%s^1 is now conserved for centuries to come\n"
+msgstr "^1%s^1 ist jetzt für Jahrhunderte konserviert\n"
+
+#: qcsrc/client/hud.qc:2959
+#, c-format
+msgid "^1%s^1 was mowed down by a turret \n"
+msgstr "^1%s^1 wurde von einem Turret niedergemäht\n"
+
+#: qcsrc/client/hud.qc:2971
+#, c-format
+msgid "^1%s^1 died in an accident\n"
+msgstr "^1%s^1 starb an einem Unfall\n"
+
+#: qcsrc/client/hud.qc:2975
+#, c-format
+msgid "^1%s^1 was unfairly eliminated\n"
+msgstr "^1%s^1 wurde auf unfaire Weise eliminiert\n"
+
+#: qcsrc/client/hud.qc:2981
+#, c-format
+msgid "^1%s^1 felt a little hot\n"
+msgstr "^1%s^1 fand es ein wenig zu warm\n"
+
+#: qcsrc/client/hud.qc:2983
+#, c-format
+msgid "^1%s^1 burnt to death\n"
+msgstr "^1%s^1 verbrannte\n"
+
+#: qcsrc/client/hud.qc:2990
+#, c-format
+msgid "^1%s^1 needs a restart\n"
+msgstr "^1%s^1 braucht einen Neustart\n"
+
+#: qcsrc/client/hud.qc:2997
+#, c-format
+msgid "^1%s^1 needs a restart after a %d scoring spree\n"
+msgstr "^1%s^1 braucht einen Neustart nach %d Punkten in Folge\n"
+
+#: qcsrc/client/hud.qc:2999
+#, c-format
+msgid "^1%s^1 died with a %d kill spree\n"
+msgstr "^1%s^1 starb mit einer %d-Kill-Spree\n"
+
+#: qcsrc/client/hud.qc:3003
+#, c-format
+msgid "%s^7 got the %s\n"
+msgstr "%s^7 bekam die %s\n"
+
+#: qcsrc/client/hud.qc:3006
+#, c-format
+msgid "%s^7 lost the %s\n"
+msgstr "%s^7 verlor die %s\n"
+
+#: qcsrc/client/hud.qc:3009
+#, c-format
+msgid "%s^7 picked up the %s\n"
+msgstr "%s^7 nahm sich die %s\n"
+
+#: qcsrc/client/hud.qc:3012
+#, c-format
+msgid "%s^7 returned the %s\n"
+msgstr "%s^7 brachte die %s^7 zurück\n"
+
+#: qcsrc/client/hud.qc:3015
+#, c-format
+msgid "%s^7 captured the %s%s\n"
+msgstr "%s^7 eroberte die %s%s\n"
+
+#: qcsrc/client/hud.qc:3034
+#, c-format
+msgid "%s^7 has picked up the ball!\n"
+msgstr "%s^7 hat den Ball genommen!\n"
+
+#: qcsrc/client/hud.qc:3039
+#, c-format
+msgid "%s^7 has dropped the ball!\n"
+msgstr "%s^7 hat den Ball verloren!\n"
+
+#: qcsrc/client/hud.qc:3052
+#, c-format
+msgid "You are now on: %s"
+msgstr "Du bist jetzt im: %s"
+
+#: qcsrc/client/hud.qc:3054
+#, c-format
+msgid ""
+"You have been moved into a different team to improve team balance\n"
+"You are now on: %s"
+msgstr ""
+"Du wurdest in ein anderes Team verschoben, um Team-Balance zu verbessern.\n"
+"Du bist jetzt im: %s"
+
+#: qcsrc/client/hud.qc:3057
+msgid "^1Reconsider your tactics, camper!"
+msgstr "^1Ändere dein Verhalten, Camper!"
+
+#: qcsrc/client/hud.qc:3059
+msgid "^1Die camper!"
+msgstr "^1Stirb, Camper!"
+
+#: qcsrc/client/hud.qc:3062
+msgid "^1You are reinserted into the game for running out of ammo..."
+msgstr ""
+"^1Du wurdest ins Spiel neu eingesetzt, weil dir die Munition ausging..."
+
+#: qcsrc/client/hud.qc:3064
+msgid "^1You were killed for running out of ammo..."
+msgstr "^1Du wurdest getötet, da dir die Munition ausging..."
+
+#: qcsrc/client/hud.qc:3067
+msgid "^1You need to preserve your health"
+msgstr "^1Du solltest deine Gesundheit erhalten"
+
+#: qcsrc/client/hud.qc:3069
+msgid "^1You grew too old without taking your medicine"
+msgstr "^1Du wurdest zu alt, und hast nicht deine Medizin genommen"
+
+#: qcsrc/client/hud.qc:3072
+msgid "^1Don't go against team mates!"
+msgstr "^1Ärgere deine Teamkollegen nicht!"
+
+#: qcsrc/client/hud.qc:3074
+msgid "^1Don't shoot your team mates!"
+msgstr "^1Schieße nicht auf deine Teamkollegen!"
+
+#: qcsrc/client/hud.qc:3079
+msgid "^1You need to be more careful!"
+msgstr "^1Sei vorsichtiger!"
+
+#: qcsrc/client/hud.qc:3081
+msgid "^1You killed your own dumb self!"
+msgstr "^1Du hast dich selbst umgebracht. Wie blöd."
+
+#: qcsrc/client/hud.qc:3086
+#, c-format
+msgid "^1Moron! You went against %s, a team mate!"
+msgstr "^1Idiot! Du hast %s getroffen, also einen Teamkollegen von dir!"
+
+#: qcsrc/client/hud.qc:3088
+#, c-format
+msgid "^1Moron! You fragged %s, a team mate!"
+msgstr "^1Idiot! Du hast %s getötet, also einen Teamkollegen von dir!"
+
+#: qcsrc/client/hud.qc:3092
+msgid "^1First score"
+msgstr "^1Erster Punkt"
+
+#: qcsrc/client/hud.qc:3094
+msgid "^1First blood"
+msgstr "^1Erstes Blut"
+
+#: qcsrc/client/hud.qc:3098
+msgid "^1First casualty"
+msgstr "^1Erster Kollateralschaden"
+
+#: qcsrc/client/hud.qc:3100
+msgid "^1First victim"
+msgstr "^1Erstes Opfer"
+
+#: qcsrc/client/hud.qc:3104
+#, c-format
+msgid "^1You scored against ^7%s^1 who was typing!"
+msgstr "^1Du hast gegen ^7%s^1 gepunktet, während er am Tippen war!"
+
+#: qcsrc/client/hud.qc:3106
+#, c-format
+msgid "^1You typefragged ^7%s"
+msgstr "^1Du hast ^7%s^1 beim Tippen erschossen"
+
+#: qcsrc/client/hud.qc:3110
+#, c-format
+msgid "^1You were scored against by ^7%s^1 while you were typing!"
+msgstr "^1Gegen dich hat ^7%s^1 gepunktet, während du am Tippen warst!"
+
+#: qcsrc/client/hud.qc:3112
+#, c-format
+msgid "^1You were typefragged by ^7%s"
+msgstr "^1Du wurdest von ^7%s^1 erschossen, während du am Tippen warst"
+
+#: qcsrc/client/hud.qc:3116
+#, c-format
+msgid "^4You scored against ^7%s"
+msgstr "^4Du hast gegen ^7%s^4 gepunktet"
+
+#: qcsrc/client/hud.qc:3118
+#, c-format
+msgid "^4You fragged ^7%s"
+msgstr "^4Du hast ^7%s^4 getötet"
+
+#: qcsrc/client/hud.qc:3122
+#, c-format
+msgid "^1You were scored against by ^7%s"
+msgstr "^1Gegen dich hat ^7%s^1 gepunktet"
+
+#: qcsrc/client/hud.qc:3124
+#, c-format
+msgid "^1You were fragged by ^7%s"
+msgstr "^1Du wurdest von ^7%s^1 getötet"
+
+#: qcsrc/client/hud.qc:3129
+msgid "^1Watch your step!"
+msgstr "^1Achte, wo du hintrittst!"
+
+#: qcsrc/client/hud.qc:3194 qcsrc/client/hud.qc:3195
+#, c-format
+msgid "Player %d"
+msgstr "Spieler %d"
+
+#: qcsrc/client/hud.qc:3791
+msgid "^1Intermediate 1 (+15.42)"
+msgstr "^1Intermediate 1 (+15.42)"
+
+#: qcsrc/client/hud.qc:3793 qcsrc/client/hud.qc:3835 qcsrc/client/hud.qc:3876
+#, c-format
+msgid "^1PENALTY: %.1f (%s)"
+msgstr "^1STRAFE: %.1f (%s)"
+
+#: qcsrc/client/hud.qc:3878
+#, c-format
+msgid "^2PENALTY: %.1f (%s)"
+msgstr "^2STRAFE: %.1f (%s)"
+
+#: qcsrc/client/hud.qc:3903
+msgid "^2Name ^7instead of \"^1Unregistered player^7\" in stats"
+msgstr "^2Name^7 statt \"^1Unregistered player^7\" in den Statistiken"
+
+#: qcsrc/client/hud.qc:3985
+msgid "A vote has been called for:"
+msgstr "Eine Abstimmung wurde initiiert für:"
+
+#: qcsrc/client/hud.qc:3987
+msgid "Allow servers to store and display your name?"
+msgstr "Erlaube Servern, deinen Namen zu speichern und später zu zeigen?"
+
+#: qcsrc/client/hud.qc:3991
+msgid "^1Configure the HUD"
+msgstr "^1Das HUD konfigurieren"
+
+#: qcsrc/client/hud.qc:3995
+#, c-format
+msgid "Yes (%s): %d"
+msgstr "Ja (%s): %d"
+
+#: qcsrc/client/hud.qc:3997
+#, c-format
+msgid "No (%s): %d"
+msgstr "Nein (%s): %d"
+
+#: qcsrc/client/hud.qc:4510 qcsrc/client/hud.qc:4513 qcsrc/client/hud.qc:4515
+msgid "Personal best"
+msgstr "Persönliche Bestzeit"
+
+#: qcsrc/client/hud.qc:4528 qcsrc/client/hud.qc:4531 qcsrc/client/hud.qc:4533
+msgid "Server best"
+msgstr "Server-Bestzeit"
+
+#: qcsrc/client/hud.qc:4765
+msgid "^3Player^7: This is the chat area."
+msgstr "^3Player^7: Das ist der Chat-Bereich."
+
+#: qcsrc/client/hud.qc:4828
+#, c-format
+msgid "FPS: %.*f"
+msgstr "FPS: %.*f"
+
+#: qcsrc/client/hud.qc:4893
+msgid "^1Observing"
+msgstr "^1Beobachten"
+
+#: qcsrc/client/hud.qc:4895
+#, c-format
+msgid "^1Spectating: ^7%s"
+msgstr "^1Zuschauen bei: ^7%s"
+
+#: qcsrc/client/hud.qc:4899
+#, c-format
+msgid "^1Press ^3%s^1 to spectate"
+msgstr "^1Drücke ^3%s^1, um bei jemandem zuzuschauen"
+
+#: qcsrc/client/hud.qc:4901
+#, c-format
+msgid "^1Press ^3%s^1 for another player"
+msgstr "^1Drücke ^3%s^1 für einen anderen Spieler"
+
+#: qcsrc/client/hud.qc:4905
+#, c-format
+msgid "^1Use ^3%s^1 or ^3%s^1 to change the speed"
+msgstr "^1Benutze ^3%s^1 oder ^3%s^1 zum Ändern der Geschwindigkeit"
+
+#: qcsrc/client/hud.qc:4907
+#, c-format
+msgid "^1Press ^3%s^1 to observe"
+msgstr "^1Drücke ^3%s^1 zum Beobachten"
+
+#: qcsrc/client/hud.qc:4910
+#, c-format
+msgid "^1Press ^3%s^1 for gamemode info"
+msgstr "^1Drücke ^3%s^1 für Spielmodus-Info"
+
+#: qcsrc/client/hud.qc:4914
+msgid "^1Wait for your turn to join"
+msgstr "^1Warte, bis du dran bist"
+
+#: qcsrc/client/hud.qc:4920
+msgid "^1Match has already begun"
+msgstr "^1Das Match hat bereits begonnen"
+
+#: qcsrc/client/hud.qc:4922
+msgid "^1You have no more lives left"
+msgstr "^1Du hast keine Leben mehr übrig"
+
+#: qcsrc/client/hud.qc:4924 qcsrc/client/hud.qc:4927
+#, c-format
+msgid "^1Press ^3%s^1 to join"
+msgstr "^1Drücke ^3%s^1 zum Eintreten"
+
+#: qcsrc/client/hud.qc:4935
+#, c-format
+msgid "^1Game starts in ^3%d^1 seconds"
+msgstr "^1Das Spiel beginnt in ^3%d^1 Sekunden"
+
+#: qcsrc/client/hud.qc:4942
+msgid "^2Currently in ^1warmup^2 stage!"
+msgstr "^2Momentan in der ^1Aufwärmphase!"
+
+#: qcsrc/client/hud.qc:4957
+#, c-format
+msgid "%sPress ^3%s%s to end warmup"
+msgstr "%sDrücke ^3%s%s um die Aufwärmphase zu beenden"
+
+#: qcsrc/client/hud.qc:4959
+#, c-format
+msgid "%sPress ^3%s%s once you are ready"
+msgstr "%sDrücke ^3%s%s sobald du soweit bist"
+
+#: qcsrc/client/hud.qc:4964
+msgid "^2Waiting for others to ready up to end warmup..."
+msgstr "^2Warte, bis andere bereit sind, um die Aufwärmphase zu beenden"
+
+#: qcsrc/client/hud.qc:4966
+msgid "^2Waiting for others to ready up..."
+msgstr "^2Warte, bis andere bereit sind..."
+
+#: qcsrc/client/hud.qc:4972
+#, c-format
+msgid "^2Press ^3%s^2 to end warmup"
+msgstr "^2Drücke ^3%s^2 um die Aufwärmphase zu beenden"
+
+#: qcsrc/client/hud.qc:4993
+msgid "Teamnumbers are unbalanced!"
+msgstr "Die Teams sind unbalanciert!"
+
+#: qcsrc/client/hud.qc:4998
+#, c-format
+msgid " Press ^3%s%s to adjust"
+msgstr "Drücke ^3%s%s um dies zu korrigieren"
+
+#: qcsrc/client/hud.qc:5006
+msgid "^7Press ^3ESC ^7to show HUD options."
+msgstr "^7Drücke ^3ESC^7 um die HUD-Optionen zu zeigen"
+
+#: qcsrc/client/hud.qc:5008
+msgid "^3Doubleclick ^7a panel for panel-specific options."
+msgstr "^3Doppelklick^7 auf ein Panel für Panel-spezifische Optionen."
+
+#: qcsrc/client/hud.qc:5010
+msgid "^3CTRL ^7to disable collision testing, ^3SHIFT ^7and"
+msgstr "^3CTRL^7 um Kollisionstests zu deaktivieren, ^3SHIFT^7 und"
+
+#: qcsrc/client/hud.qc:5012
+msgid "^3ALT ^7+ ^3ARROW KEYS ^7for fine adjustments."
+msgstr "^3ALT^7 + ^3PFEILTASTEN^7 für Feinjustierungen"
+
+#: qcsrc/client/hud.qc:5037
+msgid " qu/s"
+msgstr "qu/s"
+
+#: qcsrc/client/hud.qc:5041
+msgid " m/s"
+msgstr "m/s"
+
+#: qcsrc/client/hud.qc:5045
+msgid " km/h"
+msgstr "km/h"
+
+#: qcsrc/client/hud.qc:5049
+msgid " mph"
+msgstr "mph"
+
+#: qcsrc/client/hud.qc:5053
+msgid " knots"
+msgstr "Knoten"
+
+#: qcsrc/client/mapvoting.qc:28
+msgid " (1 vote)"
+msgstr "(1 Stimme)"
+
+#: qcsrc/client/mapvoting.qc:30
+#, c-format
+msgid " (%d votes)"
+msgstr "(%d Stimmen)"
+
+#: qcsrc/client/mapvoting.qc:113
+msgid "Don't care"
+msgstr "Egal"
+
+#: qcsrc/client/mapvoting.qc:194
+msgid "Vote for a map"
+msgstr "Wähle eine Map"
+
+#: qcsrc/client/mapvoting.qc:199
+#, c-format
+msgid "%d seconds left"
+msgstr "%d Sekunden übrig"
+
+#: qcsrc/client/mapvoting.qc:263
+msgid ""
+"mv_mapdownload: ^3You're not supposed to use this command on your own!\n"
+msgstr ""
+"mv_mapdownload: ^3Dieser Befehl darf nur vom Server verwendet werden!\n"
+
+#: qcsrc/client/mapvoting.qc:273
+msgid "^1Error:^7 Couldn't find pak index.\n"
+msgstr "^1Fehler:^7 konnte den pak-Index nicht finden.\n"
+
+#: qcsrc/client/mapvoting.qc:282
+msgid "Requesting preview...\n"
+msgstr "Vorschau wird angefordert...\n"
+
+#: qcsrc/client/miscfunctions.qc:23
+msgid "^1Begin!"
+msgstr "^1Los!"
+
+#: qcsrc/client/miscfunctions.qc:34
+#, c-format
+msgid "^1Game starts in %d seconds"
+msgstr "^1Das Spiel startet in %d Sekunden"
+
+#: qcsrc/client/miscfunctions.qc:113
+msgid "^1RED^7 flag"
+msgstr "^1ROTE^7 Flagge"
+
+#: qcsrc/client/miscfunctions.qc:118
+msgid "^4BLUE^7 flag"
+msgstr "^4BLAUE^7 Flagge"
+
+#: qcsrc/client/miscfunctions.qc:126
+#, c-format
+msgid "You picked up the %s!"
+msgstr "Du hast die %s genommen!"
+
+#: qcsrc/client/miscfunctions.qc:130
+#, c-format
+msgid "You got the %s!"
+msgstr "Du hast die %s!"
+
+#: qcsrc/client/miscfunctions.qc:283
+msgid "Trying to remove a team which is not in the teamlist!"
+msgstr "Versuchte, ein Team zu löschen, das nicht in der Teamliste ist!"
+
+#: qcsrc/client/scoreboard.qc:19
+msgid "SCO^bckills"
+msgstr "BC getötet"
+
+#: qcsrc/client/scoreboard.qc:20
+msgid "SCO^bctime"
+msgstr "Ballbesitz"
+
+#: qcsrc/client/scoreboard.qc:21
+msgid "SCO^caps"
+msgstr "Caps"
+
+#: qcsrc/client/scoreboard.qc:22
+msgid "SCO^deaths"
+msgstr "Deaths"
+
+#: qcsrc/client/scoreboard.qc:23
+msgid "SCO^destroyed"
+msgstr "zerstört"
+
+#: qcsrc/client/scoreboard.qc:24
+msgid "SCO^drops"
+msgstr "verloren"
+
+#: qcsrc/client/scoreboard.qc:25
+msgid "SCO^faults"
+msgstr "Fehler"
+
+#: qcsrc/client/scoreboard.qc:26
+msgid "SCO^fckills"
+msgstr "FC getötet"
+
+#: qcsrc/client/scoreboard.qc:27
+msgid "SCO^goals"
+msgstr "Tore"
+
+#: qcsrc/client/scoreboard.qc:28
+msgid "SCO^kckills"
+msgstr "KC getötet"
+
+#: qcsrc/client/scoreboard.qc:29
+msgid "SCO^kdratio"
+msgstr "kdratio"
+
+#: qcsrc/client/scoreboard.qc:30
+msgid "SCO^k/d"
+msgstr "k/d"
+
+#: qcsrc/client/scoreboard.qc:31
+msgid "SCO^kd"
+msgstr "kd"
+
+#: qcsrc/client/scoreboard.qc:32
+msgid "SCO^kdr"
+msgstr "kdr"
+
+#: qcsrc/client/scoreboard.qc:33
+msgid "SCO^kills"
+msgstr "Kills"
+
+#: qcsrc/client/scoreboard.qc:34
+msgid "SCO^laps"
+msgstr "Runden"
+
+#: qcsrc/client/scoreboard.qc:35
+msgid "SCO^lives"
+msgstr "Leben"
+
+#: qcsrc/client/scoreboard.qc:36
+msgid "SCO^losses"
+msgstr "verloren"
+
+#: qcsrc/client/scoreboard.qc:37
+msgid "SCO^name"
+msgstr "Name"
+
+#: qcsrc/client/scoreboard.qc:38
+msgid "SCO^nick"
+msgstr "Nick"
+
+#: qcsrc/client/scoreboard.qc:39
+msgid "SCO^objectives"
+msgstr "Objectives"
+
+#: qcsrc/client/scoreboard.qc:40
+msgid "SCO^pickups"
+msgstr "Flaggen"
+
+#: qcsrc/client/scoreboard.qc:41
+msgid "SCO^ping"
+msgstr "Ping"
+
+#: qcsrc/client/scoreboard.qc:42
+msgid "SCO^pl"
+msgstr "PL"
+
+#: qcsrc/client/scoreboard.qc:43
+msgid "SCO^pushes"
+msgstr "Pushes"
+
+#: qcsrc/client/scoreboard.qc:44
+msgid "SCO^rank"
+msgstr "Rang"
+
+#: qcsrc/client/scoreboard.qc:45
+msgid "SCO^returns"
+msgstr "Returns"
+
+#: qcsrc/client/scoreboard.qc:46
+msgid "SCO^revivals"
+msgstr "wiederbelebt"
+
+#: qcsrc/client/scoreboard.qc:47
+msgid "SCO^score"
+msgstr "Punkte"
+
+#: qcsrc/client/scoreboard.qc:48
+msgid "SCO^suicides"
+msgstr "Suiz."
+
+#: qcsrc/client/scoreboard.qc:49
+msgid "SCO^takes"
+msgstr "Übernahmen"
+
+#: qcsrc/client/scoreboard.qc:50
+msgid "SCO^ticks"
+msgstr "Ticks"
+
+#: qcsrc/client/scoreboard.qc:239
+msgid ""
+"You can modify the scoreboard using the ^2scoreboard_columns_set command.\n"
+msgstr ""
+"Sie können die Tabelle mit dem ^2scoreboard_columns_set Befehl ändern.\n"
+
+#: qcsrc/client/scoreboard.qc:240
+msgid "^3|---------------------------------------------------------------|\n"
+msgstr "^3|---------------------------------------------------------------|\n"
+
+#: qcsrc/client/scoreboard.qc:242
+msgid "^2scoreboard_columns_set default\n"
+msgstr "^2scoreboard_columns_set default\n"
+
+#: qcsrc/client/scoreboard.qc:243
+msgid "^2scoreboard_columns_set ^7filed1 field2 ...\n"
+msgstr "^2scoreboard_columns_set ^7filed1 field2 ...\n"
+
+#: qcsrc/client/scoreboard.qc:244
+msgid "The following field names are recognized (case insensitive):\n"
+msgstr "Die folgenden Feldnamen werden akzeptiert:\n"
+
+#: qcsrc/client/scoreboard.qc:245
+msgid ""
+"You can use a ^3|^7 to start the right-aligned fields.\n"
+"\n"
+msgstr "Mit ^3|^7 werden die rechtsbündigen Felder gestartet.\n"
+
+#: qcsrc/client/scoreboard.qc:247
+msgid "^3name^7 or ^3nick^7 Name of a player\n"
+msgstr "^3name^7 or ^3nick^7 Name des Spielers\n"
+
+#: qcsrc/client/scoreboard.qc:248
+msgid "^3ping^7 Ping time\n"
+msgstr "^3ping^7 Ping\n"
+
+#: qcsrc/client/scoreboard.qc:249
+msgid "^3pl^7 Packet loss\n"
+msgstr "^3pl^7 Paketverlust\n"
+
+#: qcsrc/client/scoreboard.qc:250
+msgid "^3kills^7 Number of kills\n"
+msgstr "^3kills^7 Anzahl Kills\n"
+
+#: qcsrc/client/scoreboard.qc:251
+msgid "^3deaths^7 Number of deaths\n"
+msgstr "^3deaths^7 Anzahl der Tode\n"
+
+#: qcsrc/client/scoreboard.qc:252
+msgid "^3suicides^7 Number of suicides\n"
+msgstr "^3suicides^7 Anzahl der Suizide\n"
+
+#: qcsrc/client/scoreboard.qc:253
+msgid "^3frags^7 kills - suicides\n"
+msgstr "^3frags^7 Kills minus Suizide\n"
+
+#: qcsrc/client/scoreboard.qc:254
+msgid "^3kd^7 The kill-death ratio\n"
+msgstr "^3kd^7 Das Kill/Death-Ratio\n"
+
+#: qcsrc/client/scoreboard.qc:255
+msgid ""
+"^3caps^7 How often a flag (CTF) or a key (KeyHunt) was "
+"captured\n"
+msgstr ""
+"^3caps^7 Wie oft mit der Flagge (CTF) oder den "
+"Schlüssels (KeyHunt) gepunktet wurde\n"
+
+#: qcsrc/client/scoreboard.qc:256
+msgid ""
+"^3pickups^7 How often a flag (CTF) or a key (KeyHunt) or a "
+"ball (Keepaway) was picked up\n"
+msgstr ""
+"^3pickups^7 Wie oft die Flagge/Schlüssel aufgenommen "
+"wurden\n"
+
+#: qcsrc/client/scoreboard.qc:257
+msgid "^3fckills^7 Number of flag carrier kills\n"
+msgstr "^3fckills^7 Wieviele Flaggenträger getötet wurden\n"
+
+#: qcsrc/client/scoreboard.qc:258
+msgid "^3returns^7 Number of flag returns\n"
+msgstr "^3returns^7 Wie oft die Flagge zurückgebracht wurde\n"
+
+#: qcsrc/client/scoreboard.qc:259
+msgid "^3drops^7 Number of flag drops\n"
+msgstr "^3drops^7 Wie oft die Flagge verloren wurde\n"
+
+#: qcsrc/client/scoreboard.qc:260
+msgid "^3lives^7 Number of lives (LMS)\n"
+msgstr "^3lives^7 Anzahl Leben (LMS)\n"
+
+#: qcsrc/client/scoreboard.qc:261
+msgid "^3rank^7 Player rank\n"
+msgstr "^3rank^7 Rang des Spielers\n"
+
+#: qcsrc/client/scoreboard.qc:262
+msgid "^3pushes^7 Number of players pushed into void\n"
+msgstr "^3pushes^7 Anzahl in die Tiefe geworfener Gegner\n"
+
+#: qcsrc/client/scoreboard.qc:263
+msgid ""
+"^3destroyed^7 Number of keys destroyed by pushing them into "
+"void\n"
+msgstr ""
+"^3destroyed^7 Wie oft ein Gegner mit Schlüssel in die Tiefe "
+"geworfen wurde\n"
+
+#: qcsrc/client/scoreboard.qc:264
+msgid "^3kckills^7 Number of keys carrier kills\n"
+msgstr "^3kckills^7 Wie oft Key-Carrier getötet wurden\n"
+
+#: qcsrc/client/scoreboard.qc:265
+msgid "^3losses^7 Number of times a key was lost\n"
+msgstr "^3losses^7 Anzahl verlorener Schlüssel\n"
+
+#: qcsrc/client/scoreboard.qc:266
+msgid "^3laps^7 Number of laps finished (race/cts)\n"
+msgstr "^3laps^7 Anzahl vollendeter Runden (race/cts)\n"
+
+#: qcsrc/client/scoreboard.qc:267
+msgid "^3time^7 Total time raced (race/cts)\n"
+msgstr "^3time^7 Gesamtzeit des Rennens (race/cts)\n"
+
+#: qcsrc/client/scoreboard.qc:268
+msgid "^3fastest^7 Time of fastest lap (race/cts)\n"
+msgstr "^3fastest^7 Zeit der schnellsten Runde (race/cts)\n"
+
+#: qcsrc/client/scoreboard.qc:269
+msgid "^3ticks^7 Number of ticks (DOM)\n"
+msgstr "^3ticks^7 Anzahl der Ticks (DOM)\n"
+
+#: qcsrc/client/scoreboard.qc:270
+msgid "^3takes^7 Number of domination points taken (DOM)\n"
+msgstr "^3takes^7 Anzahl eingenommener Dom-Points (DOM)\n"
+
+#: qcsrc/client/scoreboard.qc:271
+msgid "^3bckills^7 Number of ball carrier kills\n"
+msgstr "^3bckills^7 Wieviele Ballträger getötet wurden\n"
+
+#: qcsrc/client/scoreboard.qc:272
+msgid ""
+"^3bctime^7 Total amount of time holding the ball in "
+"Keepaway\n"
+msgstr "^3bctime^7 Gesamtzeit des Ballbesitzes\n"
+
+#: qcsrc/client/scoreboard.qc:273
+msgid ""
+"^3score^7 Total score\n"
+"\n"
+msgstr ""
+"^3score^7 Gesamtpunktzahl\n"
+"\n"
+
+#: qcsrc/client/scoreboard.qc:275
+msgid ""
+"Before a field you can put a + or - sign, then a comma separated list\n"
+"of game types, then a slash, to make the field show up only in these\n"
+"or in all but these game types. You can also specify 'all' as a\n"
+"field to show all fields available for the current game mode.\n"
+"\n"
+msgstr ""
+"Vor ein Feld können Sie ein Plus- oder Minuszeichen setzen, anschließend\n"
+"eine durch Kommata getrennte Liste von Spieltypen, dann einen Slash, so "
+"dass\n"
+"das Feld nur in diesen, oder in allen außer diesen Spieltypen erscheint.\n"
+"Außerdem kann \"all\" als Feldname verwendet werden; in diesem Fall "
+"erscheinen\n"
+"sämtliche möglichen Felder im aktuellen Spieltyp.\n"
+"\n"
+
+#: qcsrc/client/scoreboard.qc:280
+msgid ""
+"The special game type names 'teams' and 'noteams' can be used to\n"
+"include/exclude ALL teams/noteams game modes.\n"
+"\n"
+msgstr ""
+"Die speziellen Bezeichner 'teams' und 'noteams' können verwendet werden\n"
+"als Gruppierung aller Teamplay- oder Nicht-Teamplay-Spieltypen.\n"
+"\n"
+
+#: qcsrc/client/scoreboard.qc:283
+msgid "Example: scoreboard_columns_set name ping pl | +ctf/field3 -dm/field4\n"
+msgstr "Beispiel: scoreboard_columns_set name ping pl < +ctf/feld3 dm/feld4\n"
+
+#: qcsrc/client/scoreboard.qc:284
+msgid ""
+"will display name, ping and pl aligned to the left, and the fields\n"
+"right of the vertical bar aligned to the right.\n"
+msgstr ""
+"wird Name, Ping und Paketverlust linksbündig, und die Felder rechts\n"
+"von der Trennlinie (und rechtsbündig) anzeigen.\n"
+
+#: qcsrc/client/scoreboard.qc:286
+msgid ""
+"'field3' will only be shown in CTF, and 'field4' will be shown in all\n"
+"other gamemodes except DM.\n"
+msgstr ""
+"'feld3' wird nur in CTF sichtbar sein, und 'feld4' wird in allen Spieltypen\n"
+"außer DM erscheinen.\n"
+
+#: qcsrc/client/scoreboard.qc:432 qcsrc/client/scoreboard.qc:447
+#: qcsrc/client/scoreboard.qc:457 qcsrc/client/scoreboard.qc:466
+#: qcsrc/client/scoreboard.qc:475
+#, c-format
+msgid "fixed missing field '%s'\n"
+msgstr "Fehlendes Feld '%s' wurde ergänzt.\n"
+
+#: qcsrc/client/scoreboard.qc:515 qcsrc/client/scoreboard.qc:522
+msgid "N/A"
+msgstr "-"
+
+#: qcsrc/client/scoreboard.qc:951
+#, c-format
+msgid "Accuracy stats (average %d%%)"
+msgstr "Genauigkeit (Durchschn.: %d%%)"
+
+#: qcsrc/client/scoreboard.qc:1016
+#, c-format
+msgid "%d%%"
+msgstr "%d%%"
+
+#: qcsrc/client/scoreboard.qc:1076
+msgid "Rankings"
+msgstr "Platzierungen"
+
+#: qcsrc/client/scoreboard.qc:1167 qcsrc/client/scoreboard.qc:1169
+msgid "Scoreboard"
+msgstr "Tabelle"
+
+#: qcsrc/client/scoreboard.qc:1210
+#, c-format
+msgid "Speed award: %d ^7(%s^7)"
+msgstr "Höchstgeschwindigkeit: %d ^7(%s^7)"
+
+#: qcsrc/client/scoreboard.qc:1214
+#, c-format
+msgid "All-time fastest: %d ^7(%s^7)"
+msgstr "Rekord: %d ^7(%s^7)"
+
+#: qcsrc/client/scoreboard.qc:1241 qcsrc/client/teamplay.qc:55
+msgid "Spectators"
+msgstr "Zuschauer"
+
+#: qcsrc/client/scoreboard.qc:1248
+#, c-format
+msgid "playing on ^2%s^7"
+msgstr "es wird auf ^2%s^7 gespielt"
+
+#: qcsrc/client/scoreboard.qc:1255 qcsrc/client/scoreboard.qc:1260
+#, c-format
+msgid " for up to ^1%1.0f minutes^7"
+msgstr " für bis zu ^1%.1f Minuten^7"
+
+#: qcsrc/client/scoreboard.qc:1264 qcsrc/client/scoreboard.qc:1283
+msgid " or"
+msgstr " oder"
+
+#: qcsrc/client/scoreboard.qc:1267 qcsrc/client/scoreboard.qc:1274
+#, c-format
+msgid " until ^3%s %s^7"
+msgstr " bis ^3%s %s^7"
+
+#: qcsrc/client/scoreboard.qc:1268 qcsrc/client/scoreboard.qc:1275
+#: qcsrc/client/scoreboard.qc:1287 qcsrc/client/scoreboard.qc:1294
+msgid "SCO^points"
+msgstr "Punkte"
+
+#: qcsrc/client/scoreboard.qc:1269 qcsrc/client/scoreboard.qc:1276
+#: qcsrc/client/scoreboard.qc:1288 qcsrc/client/scoreboard.qc:1295
+msgid "SCO^is beaten"
+msgstr "geschlagen wird"
+
+#: qcsrc/client/scoreboard.qc:1286 qcsrc/client/scoreboard.qc:1293
+#, c-format
+msgid " until a lead of ^3%s %s^7"
+msgstr " bis zu einem Vorsprung von ^3%s %s^7"
+
+#: qcsrc/client/target_music.qc:93 qcsrc/client/target_music.qc:181
+#, c-format
+msgid "Cannot initialize sound %s\n"
+msgstr "Kann Sound %s nicht initialisieren\n"
+
+#: qcsrc/client/teamplay.qc:56
+msgid "Red Team"
+msgstr "Rotes Team"
+
+#: qcsrc/client/teamplay.qc:57
+msgid "Blue Team"
+msgstr "Blaues Team"
+
+#: qcsrc/client/teamplay.qc:58
+msgid "Yellow Team"
+msgstr "Gelbes Team"
+
+#: qcsrc/client/teamplay.qc:59
+msgid "Pink Team"
+msgstr "Pinkes Team"
+
+#: qcsrc/server/w_crylink.qc:2
+msgid "Crylink"
+msgstr "Crylink"
+
+#: qcsrc/server/w_crylink.qc:664
+#, c-format
+msgid "%s succeeded at self-destructing themself with the Crylink"
+msgstr "%s zerstörte sich selbst erfolgreich mit der Crylink"
+
+#: qcsrc/server/w_crylink.qc:669
+#, c-format
+msgid "%s could not hide from %s's Crylink"
+msgstr "%s konnte sich nicht vor %ss Crylink verstecken"
+
+#: qcsrc/server/w_crylink.qc:671
+#, c-format
+msgid "%s was too close to %s's Crylink"
+msgstr "%s trat %ss Crylink zu nahe"
+
+#: qcsrc/server/w_crylink.qc:673
+#, c-format
+msgid "%s took a close look at %s's Crylink"
+msgstr "%s schaute sich %ss Crylink sehr genau an"
+
+#: qcsrc/server/w_electro.qc:2
+msgid "Electro"
+msgstr "Electro"
+
+#: qcsrc/server/w_electro.qc:571
+#, c-format
+msgid "%s could not remember where they put plasma"
+msgstr "%s vergaß, wo er das Plasma hingetan hatte"
+
+#: qcsrc/server/w_electro.qc:573
+#, c-format
+msgid "%s played with plasma"
+msgstr "%s spielte mit Plasma"
+
+#: qcsrc/server/w_electro.qc:580
+#, c-format
+msgid "%s just noticed %s's blue ball"
+msgstr "%s hat gerade %ss blaue Kugel bemerkt"
+
+#: qcsrc/server/w_electro.qc:582
+#, c-format
+msgid "%s got in touch with %s's blue ball"
+msgstr "%s kam mit %ss blauer Kugel in Kontakt"
+
+#: qcsrc/server/w_electro.qc:587
+#, c-format
+msgid "%s felt the electrifying air of %s's combo"
+msgstr "%s hat gespürt, wie %ss Combo die Luft elektrisierte"
+
+#: qcsrc/server/w_electro.qc:589
+#, c-format
+msgid "%s got too close to %s's blue beam"
+msgstr "%s kam zu nah an %ss blauen Strahl"
+
+#: qcsrc/server/w_electro.qc:591
+#, c-format
+msgid "%s was blasted by %s's blue beam"
+msgstr "%s wurde von %ss blauen Strahl erwischt"
+
+#: qcsrc/server/w_fireball.qc:2
+msgid "Fireball"
+msgstr "Fireball"
+
+#: qcsrc/server/w_fireball.qc:417
+#, c-format
+msgid "%s forgot about some firemine"
+msgstr "%s hat den Platz einer Feuermine vergessen"
+
+#: qcsrc/server/w_fireball.qc:419 qcsrc/server/w_hlac.qc:240
+#, c-format
+msgid "%s should have used a smaller gun"
+msgstr "%s hätte eine kleinere Waffe nehmen sollen"
+
+#: qcsrc/server/w_fireball.qc:426
+#, c-format
+msgid "%s tried to catch %s's firemine"
+msgstr "%s hat versucht %ss Feuermine zu fangen"
+
+#: qcsrc/server/w_fireball.qc:428
+#, c-format
+msgid "%s fatefully ignored %s's firemine"
+msgstr "%s hat tragischerweise %ss Feuermine ignoriert"
+
+#: qcsrc/server/w_fireball.qc:435
+#, c-format
+msgid "%s could not hide from %s's fireball"
+msgstr "%s konnte sich nicht vor %ss Feuerball verstecken"
+
+#: qcsrc/server/w_fireball.qc:437
+#, c-format
+msgid "%s saw the pretty lights of %s's fireball"
+msgstr "%s hat die hübschen Lichter von %ss Feuerball gesehen"
+
+#: qcsrc/server/w_fireball.qc:440
+#, c-format
+msgid "%s got too close to %s's fireball"
+msgstr "%s ist %ss Feuerball zu nahe getreten"
+
+#: qcsrc/server/w_fireball.qc:442
+#, c-format
+msgid "%s tasted %s's fireball"
+msgstr "%s hat von %ss Feuerball probiert"
+
+#: qcsrc/server/w_grenadelauncher.qc:2
+msgid "Mortar"
+msgstr "Mortar"
+
+#: qcsrc/server/w_grenadelauncher.qc:378
+#, c-format
+msgid "%s tried out his own grenade"
+msgstr "%s wollte wissen, ob seine Granate funktioniert"
+
+#: qcsrc/server/w_grenadelauncher.qc:380
+#, c-format
+msgid "%s detonated"
+msgstr "%s verfing sich in der eigenen Detonation"
+
+#: qcsrc/server/w_grenadelauncher.qc:386
+#, c-format
+msgid "%s didn't see %s's grenade"
+msgstr "%s hat %ss Granate nicht gesehen"
+
+#: qcsrc/server/w_grenadelauncher.qc:388
+#, c-format
+msgid "%s almost dodged %s's grenade"
+msgstr "%s ist fast %ss Granate ausgewichen"
+
+#: qcsrc/server/w_grenadelauncher.qc:390
+#, c-format
+msgid "%s ate %s's grenade"
+msgstr "%s nahm %ss Granate in den Mund"
+
+#: qcsrc/server/w_hagar.qc:2
+msgid "Hagar"
+msgstr "Hagar"
+
+#: qcsrc/server/w_hagar.qc:209 qcsrc/server/w_seeker.qc:655
+#, c-format
+msgid "%s played with tiny rockets"
+msgstr "%s hat mit kleinen Raketen gespielt"
+
+#: qcsrc/server/w_hagar.qc:213
+#, c-format
+msgid "%s hoped %s's missiles wouldn't bounce"
+msgstr "%s hat gehofft, dass %ss Raketen nicht von Wänden abprallen"
+
+#: qcsrc/server/w_hagar.qc:215 qcsrc/server/w_seeker.qc:661
+#, c-format
+msgid "%s was pummeled by %s"
+msgstr "^1%s^1 wurde von %s^1 erwischt"
+
+#: qcsrc/server/w_hlac.qc:2
+msgid "Heavy Laser Assault Cannon"
+msgstr "Heavy Laser Assault Cannon"
+
+#: qcsrc/server/w_hlac.qc:242
+#, c-format
+msgid "%s was cut down by %s"
+msgstr "^1%s^1 wurde von %s^1 niedergehauen"
+
+#: qcsrc/server/w_hook.qc:2
+msgid "Grappling Hook"
+msgstr "Grappling Hook"
+
+#: qcsrc/server/w_hook.qc:266 qcsrc/server/w_minstanex.qc:290
+#: qcsrc/server/w_nex.qc:267 qcsrc/server/w_porto.qc:296
+#: qcsrc/server/w_shotgun.qc:203 qcsrc/server/w_uzi.qc:317
+#, c-format
+msgid "%s did the impossible"
+msgstr "%s hat das Unmögliche geschafft"
+
+#: qcsrc/server/w_hook.qc:268
+#, c-format
+msgid "%s has run into %s's gravity bomb"
+msgstr "%s ist in %ss Gravitationsbombe reingelaufen"
+
+#: qcsrc/server/w_laser.qc:2
+msgid "Laser"
+msgstr "Laser"
+
+#: qcsrc/server/w_laser.qc:305
+#, c-format
+msgid "%s lasered themself to hell"
+msgstr "%s hat sich in die Hölle gelasert"
+
+#: qcsrc/server/w_laser.qc:309
+#, c-format
+msgid "%s was cut in half by %s's gauntlet"
+msgstr "%s ist von %ss Gauntlet halbiert worden"
+
+#: qcsrc/server/w_laser.qc:311
+#, c-format
+msgid "%s was lasered to death by %s"
+msgstr "^1%s^1 wurde von %s^1 zu Tode gelasert"
+
+#: qcsrc/server/w_minelayer.qc:2
+msgid "Mine Layer"
+msgstr "Mine Layer"
+
+#: qcsrc/server/w_minelayer.qc:495 qcsrc/server/w_rocketlauncher.qc:500
+#, c-format
+msgid "%s exploded"
+msgstr "%s ist explodiert"
+
+#: qcsrc/server/w_minelayer.qc:499
+#, c-format
+msgid "%s got too close to %s's mine"
+msgstr "%s ist %ss Mine zu nahe getreten"
+
+#: qcsrc/server/w_minelayer.qc:501
+#, c-format
+msgid "%s almost dodged %s's mine"
+msgstr "%s ist fast %ss Mine ausgewichen"
+
+#: qcsrc/server/w_minelayer.qc:503
+#, c-format
+msgid "%s stepped on %s's mine"
+msgstr "%s ist auf %ss Mine gelatscht"
+
+#: qcsrc/server/w_minstanex.qc:2
+msgid "MinstaNex"
+msgstr "MinstaNex"
+
+#: qcsrc/server/w_minstanex.qc:292 qcsrc/server/w_nex.qc:269
+#, c-format
+msgid "%s has been vaporized by %s"
+msgstr "^1%s^1 wurde von %s^1 vernichtet"
+
+#: qcsrc/server/w_nex.qc:2
+msgid "Nex"
+msgstr "Nex"
+
+#: qcsrc/server/w_porto.qc:2
+msgid "Port-O-Launch"
+msgstr "Port-O-Launch"
+
+#: qcsrc/server/w_porto.qc:298
+#, c-format
+msgid "%s felt %s doing the impossible to him"
+msgstr "%s hat gespürt, wie %s das Unmögliche für ihn getan hat"
+
+#: qcsrc/server/w_rocketlauncher.qc:2
+msgid "Rocket Launcher"
+msgstr "Rocket Launcher"
+
+#: qcsrc/server/w_rocketlauncher.qc:504
+#, c-format
+msgid "%s got too close to %s's rocket"
+msgstr "%s ist %ss Rakete zu nahe getreten"
+
+#: qcsrc/server/w_rocketlauncher.qc:506
+#, c-format
+msgid "%s almost dodged %s's rocket"
+msgstr "%s ist fast %ss Rakete ausgewichen"
+
+#: qcsrc/server/w_rocketlauncher.qc:508
+#, c-format
+msgid "%s ate %s's rocket"
+msgstr "%s hat %ss Rakete in den Mund genommen"
+
+#: qcsrc/server/w_seeker.qc:2
+msgid "T.A.G. Seeker"
+msgstr "T.A.G. Seeker"
+
+#: qcsrc/server/w_seeker.qc:659
+#, c-format
+msgid "%s was tagged by %s"
+msgstr "^1%s^1 wurde von %s^1 getagged"
+
+#: qcsrc/server/w_shotgun.qc:2
+msgid "Shotgun"
+msgstr "Shotgun"
+
+#: qcsrc/server/w_shotgun.qc:207
+#, c-format
+msgid "%2$s ^7slapped %1$s ^7around a bit with a large ^2shotgun"
+msgstr "%2$1s ^7hat %1$s ^7ein wenig mit einer großen Schrotflinte geschlagen"
+
+#: qcsrc/server/w_shotgun.qc:209
+#, c-format
+msgid "%s was gunned by %s"
+msgstr "^1%s^1 wurde von %s^1 erschossen"
+
+#: qcsrc/server/w_sniperrifle.qc:2
+msgid "Sniper Rifle"
+msgstr "Sniper Rifle"
+
+#: qcsrc/server/w_sniperrifle.qc:229
+#, c-format
+msgid "%s shot themself automatically"
+msgstr "%s hat sich vollautomatisch selbst erschossen"
+
+#: qcsrc/server/w_sniperrifle.qc:231
+#, c-format
+msgid "%s sniped themself somehow"
+msgstr "%s hat so scharf geschossen, dass er sich selbst getroffen hat"
+
+#: qcsrc/server/w_sniperrifle.qc:238
+#, c-format
+msgid "%s failed to hide from %s's bullet hail"
+msgstr "%s hat es nicht geschafft, sich vor %ss Kugelhagel zu verstecken"
+
+#: qcsrc/server/w_sniperrifle.qc:240
+#, c-format
+msgid "%s died in %s's bullet hail"
+msgstr "%s ist in %ss Kugelhagel gefallen"
+
+#: qcsrc/server/w_sniperrifle.qc:247
+#, c-format
+msgid "%s failed to hide from %s's rifle"
+msgstr "%s hat es nicht geschafft, sich vor %ss Gewehr zu verstecken"
+
+#: qcsrc/server/w_sniperrifle.qc:252
+#, c-format
+msgid "%s got hit in the head by %s"
+msgstr "%s hat ein Loch im Kopf bekommen; schuld war %s"
+
+#: qcsrc/server/w_sniperrifle.qc:254 qcsrc/server/w_uzi.qc:321
+#, c-format
+msgid "%s was sniped by %s"
+msgstr "^1%s^1 wurde von %s^1 erledigt"
+
+#: qcsrc/server/w_tuba.qc:2
+#, c-format
+msgid "@!#%'n Tuba"
+msgstr "@!#%'n Tuba"
+
+#: qcsrc/server/w_tuba.qc:263
+#, c-format
+msgid "%s hurt his own ears with the @!#%%'n Tuba"
+msgstr ""
+"%s haben die Ohren geschmerzt von seinem eigenen Spiel auf der @!#%%'n Tuba"
+
+#: qcsrc/server/w_tuba.qc:267
+#, c-format
+msgid "%s died of %s's great playing on the @!#%%'n Tuba"
+msgstr ""
+"%s ist an seinen Ohrenschmerzen, die von %ss großartigem Spiel auf der @!#"
+"%%'n Tuba stammten, gestorben"
+
+#: qcsrc/server/w_uzi.qc:2
+msgid "Machine Gun"
+msgstr "Machine Gun"
+
+#: qcsrc/server/w_uzi.qc:323
+#, c-format
+msgid "%s was riddled full of holes by %s"
+msgstr "%s ist von %s durchlöchert worden wie ein Schweizer Käse"
--- /dev/null
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-04-30 10:07+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: qcsrc/client/mapvoting.qc:28
+msgid " (1 vote)"
+msgstr ""
+
+#: qcsrc/client/mapvoting.qc:30
+#, c-format
+msgid " (%d votes)"
+msgstr ""
+
+#: qcsrc/client/mapvoting.qc:113
+msgid "Don't care"
+msgstr ""
+
+#: qcsrc/client/mapvoting.qc:194
+msgid "Vote for a map"
+msgstr ""
+
+#: qcsrc/client/mapvoting.qc:199
+#, c-format
+msgid "%d seconds left"
+msgstr ""
+
+#: qcsrc/client/mapvoting.qc:263
+msgid ""
+"mv_mapdownload: ^3You're not supposed to use this command on your own!\n"
+msgstr ""
+
+#: qcsrc/client/mapvoting.qc:273
+msgid "^1Error:^7 Couldn't find pak index.\n"
+msgstr ""
+
+#: qcsrc/client/mapvoting.qc:282
+msgid "Requesting preview...\n"
+msgstr ""
+
+#: qcsrc/client/Main.qc:30
+msgid "ERROR - MENU IS VISIBLE BUT NO MENU WAS DEFINED!"
+msgstr ""
+
+#: qcsrc/client/Main.qc:56
+msgid ""
+"^3Your engine build is outdated\n"
+"^3This Server uses a newer QC VM. Please update!\n"
+msgstr ""
+
+#: qcsrc/client/Main.qc:66
+#, c-format
+msgid "^4CSQC Build information: ^1%s\n"
+msgstr ""
+
+#: qcsrc/client/Main.qc:232 qcsrc/client/Main.qc:248
+#, c-format
+msgid "trying to switch to unsupported team %d\n"
+msgstr ""
+
+#: qcsrc/client/Main.qc:364 qcsrc/client/scoreboard.qc:241
+msgid "Usage:\n"
+msgstr ""
+
+#: qcsrc/client/Main.qc:365
+msgid "hud_save configname (saves to hud_skinname_configname.cfg)\n"
+msgstr ""
+
+#: qcsrc/client/Main.qc:512
+msgid "Usage: cl_cmd COMMAND..., where possible commands are:\n"
+msgstr ""
+
+#: qcsrc/client/Main.qc:513
+msgid " settemp cvar value\n"
+msgstr ""
+
+#: qcsrc/client/Main.qc:514
+msgid " scoreboard_columns_set ...\n"
+msgstr ""
+
+#: qcsrc/client/Main.qc:515
+msgid " scoreboard_columns_help\n"
+msgstr ""
+
+#: qcsrc/client/Main.qc:720
+msgid "A CSQC entity changed its owner!\n"
+msgstr ""
+
+#: qcsrc/client/Main.qc:934
+msgid "A CSQC entity changed its type!\n"
+msgstr ""
+
+#: qcsrc/client/Main.qc:972
+#, c-format
+msgid "unknown entity type in CSQC_Ent_Update: %d\n"
+msgstr ""
+
+#: qcsrc/client/Main.qc:1444
+#, c-format
+msgid "%s (not bound)"
+msgstr ""
+
+#: qcsrc/client/Main.qc:1449 qcsrc/client/hud.qc:407
+#, c-format
+msgid "%s (%s)"
+msgstr ""
+
+#: qcsrc/client/target_music.qc:93 qcsrc/client/target_music.qc:181
+#, c-format
+msgid "Cannot initialize sound %s\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:337
+msgid "1st"
+msgstr ""
+
+#: qcsrc/client/hud.qc:339
+msgid "2nd"
+msgstr ""
+
+#: qcsrc/client/hud.qc:341
+msgid "3rd"
+msgstr ""
+
+#: qcsrc/client/hud.qc:343
+#, c-format
+msgid "%dth"
+msgstr ""
+
+#: qcsrc/client/hud.qc:375
+#, c-format
+msgid " (-%dL)"
+msgstr ""
+
+#: qcsrc/client/hud.qc:380
+#, c-format
+msgid " (+%dL)"
+msgstr ""
+
+#: qcsrc/client/hud.qc:396
+msgid "Start line"
+msgstr ""
+
+#: qcsrc/client/hud.qc:398 qcsrc/client/hud.qc:402
+msgid "Finish line"
+msgstr ""
+
+#: qcsrc/client/hud.qc:400
+#, c-format
+msgid "Intermediate %d"
+msgstr ""
+
+#: qcsrc/client/hud.qc:409
+#, c-format
+msgid "%s (%s %s)"
+msgstr ""
+
+#: qcsrc/client/hud.qc:553
+#, c-format
+msgid "^2Successfully exported to %s! (Note: It's saved in data/data/)\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:557
+#, c-format
+msgid "^1Couldn't write to %s\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:1837
+msgid "Out of ammo"
+msgstr ""
+
+#: qcsrc/client/hud.qc:1841
+msgid "Don't have"
+msgstr ""
+
+#: qcsrc/client/hud.qc:1845
+msgid "Unavailable"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2696
+#, c-format
+msgid "^1%s^1 couldn't take it anymore\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2700 qcsrc/client/hud.qc:2992
+#, c-format
+msgid "^1%s^1 died\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2704
+#, c-format
+msgid "^7%s^7 committed suicide. What's the point of living without ammo?\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2708
+#, c-format
+msgid "^1%s^1 thought they found a nice camping ground\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2712
+#, c-format
+msgid "^1%s^1 didn't become friends with the Lord of Teamplay\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2716
+#, c-format
+msgid "^1%s^1 unfairly eliminated themself\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2720
+#, c-format
+msgid "^1%s^1 burned to death\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2724
+#, c-format
+msgid "^1%s^1 couldn't resist the urge to self-destruct\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2728
+#, c-format
+msgid "^1%s^1 ended it all after a %d kill spree\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2745
+#, c-format
+msgid "^1%s^1 took action against a team mate\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2747
+#, c-format
+msgid "^1%s^1 mows down a team mate\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2752
+#, c-format
+msgid "^1%s^1 ended a %d scoring spree by going against a team mate\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2754
+#, c-format
+msgid "^1%s^1 ended a %d kill spree by killing a team mate\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2758
+#, c-format
+msgid "^1%s^1's %s scoring spree was ended by a team mate!\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2760
+#, c-format
+msgid "^1%s^1's %s kill spree was ended by a team mate!\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2764
+#, c-format
+msgid "^1%s^1 drew first blood\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2768
+#, c-format
+msgid "^1%s^1 tried to occupy %s^1's teleport destination space\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2770
+#, c-format
+msgid "^1%s^1 was telefragged by %s\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2775
+#, c-format
+msgid "^1%s^1 was drowned by %s\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2780
+#, c-format
+msgid "^1%s^1 was slimed by %s\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2785
+#, c-format
+msgid "^1%s^1 was cooked by %s\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2790
+#, c-format
+msgid "^1%s^1 was grounded by %s\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2795
+#, c-format
+msgid "^1%s^1 was shot into space by %s\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2800
+#, c-format
+msgid "^1%s^1 was conserved by %s\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2806
+#, c-format
+msgid "^1%s^1 was thrown into a world of hurt by %s\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2810
+#, c-format
+msgid "^1%s^1 was crushed by %s\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2814
+#, c-format
+msgid "^1%s^1 got shredded by %s\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2818
+#, c-format
+msgid "^1%s^1 was blasted to bits by %s\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2822
+#, c-format
+msgid "^1%s^1 got caught in the destruction of %s^1's vehicle\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2826
+#, c-format
+msgid "^1%s^1 was bolted down by %s\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2830
+#, c-format
+msgid "^1%s^1 could find no shelter from %s^1's rockets\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2834
+#, c-format
+msgid "^1%s^1 dies when %s^1's wakizashi dies.\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2838
+#, c-format
+msgid "^1%s^1 was pushed into the line of fire by %s\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2842
+#, c-format
+msgid "^1%s^1 was pushed into an accident by %s\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2846
+#, c-format
+msgid "^1%s^1 was unfairly eliminated by %s\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2850
+#, c-format
+msgid "^1%s^1 was burnt to death by %s\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2862
+#, c-format
+msgid "^1%s^1 was fragged by %s\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2867
+#, c-format
+msgid "^1%s^1's %s scoring spree was ended by %s\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2869
+#, c-format
+msgid "^1%s^1's %s kill spree was ended by %s\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2872
+#, c-format
+msgid "^1%s^1 made %s scores in a row\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2874
+#, c-format
+msgid "^1%s^1 has %s frags in a row\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2877
+#, c-format
+msgid "%s^7 made a ^1TRIPLE SCORE\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2879
+#, c-format
+msgid "%s^7 made a ^1TRIPLE FRAG\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2882
+#, c-format
+msgid "%s^7 unleashes ^1SCORING RAGE\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2884
+#, c-format
+msgid "%s^7 unleashes ^1RAGE\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2887
+#, c-format
+msgid "%s^7 made ^1TEN SCORES IN A ROW!\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2889
+#, c-format
+msgid "%s^7 starts the ^1MASSACRE!\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2892
+#, c-format
+msgid "%s^7 made ^1FIFTEEN SCORES IN A ROW!\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2894
+#, c-format
+msgid "%s^7 executes ^1MAYHEM!\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2897
+#, c-format
+msgid "%s^7 made ^1TWENTY SCORES IN A ROW!\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2899
+#, c-format
+msgid "%s^7 is a ^1BERSERKER!\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2902
+#, c-format
+msgid "%s^7 made ^1TWENTY FIVE SCORES IN A ROW!\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2904
+#, c-format
+msgid "%s^7 inflicts ^1CARNAGE!\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2907
+#, c-format
+msgid "%s^7 made ^1THIRTY SCORES IN A ROW!\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2909
+#, c-format
+msgid "%s^7 unleashes ^1ARMAGEDDON!\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2917
+#, c-format
+msgid "^1%s^1 was in the water for too long\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2919
+#, c-format
+msgid "^1%s^1 drowned\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2924
+#, c-format
+msgid "^1%s^1 was slimed\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2930
+#, c-format
+msgid "^1%s^1 found a hot place\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2932
+#, c-format
+msgid "^1%s^1 turned into hot slag\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2939
+#, c-format
+msgid "^1%s^1 tested gravity (and it worked)\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2941
+#, c-format
+msgid "^1%s^1 hit the ground with a crunch\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2946
+#, c-format
+msgid "^1%s^1 became a shooting star\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2952
+#, c-format
+msgid "^1%s^1 discovered a swamp\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2954
+#, c-format
+msgid "^1%s^1 is now conserved for centuries to come\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2959
+#, c-format
+msgid "^1%s^1 was mowed down by a turret \n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2971
+#, c-format
+msgid "^1%s^1 died in an accident\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2975
+#, c-format
+msgid "^1%s^1 was unfairly eliminated\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2981
+#, c-format
+msgid "^1%s^1 felt a little hot\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2983
+#, c-format
+msgid "^1%s^1 burnt to death\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2990
+#, c-format
+msgid "^1%s^1 needs a restart\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2997
+#, c-format
+msgid "^1%s^1 needs a restart after a %d scoring spree\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:2999
+#, c-format
+msgid "^1%s^1 died with a %d kill spree\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3003
+#, c-format
+msgid "%s^7 got the %s\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3006
+#, c-format
+msgid "%s^7 lost the %s\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3009
+#, c-format
+msgid "%s^7 picked up the %s\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3012
+#, c-format
+msgid "%s^7 returned the %s\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3015
+#, c-format
+msgid "%s^7 captured the %s%s\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3034
+#, c-format
+msgid "%s^7 has picked up the ball!\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3039
+#, c-format
+msgid "%s^7 has dropped the ball!\n"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3052
+#, c-format
+msgid "You are now on: %s"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3054
+#, c-format
+msgid ""
+"You have been moved into a different team to improve team balance\n"
+"You are now on: %s"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3057
+msgid "^1Reconsider your tactics, camper!"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3059
+msgid "^1Die camper!"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3062
+msgid "^1You are reinserted into the game for running out of ammo..."
+msgstr ""
+
+#: qcsrc/client/hud.qc:3064
+msgid "^1You were killed for running out of ammo..."
+msgstr ""
+
+#: qcsrc/client/hud.qc:3067
+msgid "^1You need to preserve your health"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3069
+msgid "^1You grew too old without taking your medicine"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3072
+msgid "^1Don't go against team mates!"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3074
+msgid "^1Don't shoot your team mates!"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3079
+msgid "^1You need to be more careful!"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3081
+msgid "^1You killed your own dumb self!"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3086
+#, c-format
+msgid "^1Moron! You went against %s, a team mate!"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3088
+#, c-format
+msgid "^1Moron! You fragged %s, a team mate!"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3092
+msgid "^1First score"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3094
+msgid "^1First blood"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3098
+msgid "^1First casualty"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3100
+msgid "^1First victim"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3104
+#, c-format
+msgid "^1You scored against ^7%s^1 who was typing!"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3106
+#, c-format
+msgid "^1You typefragged ^7%s"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3110
+#, c-format
+msgid "^1You were scored against by ^7%s^1 while you were typing!"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3112
+#, c-format
+msgid "^1You were typefragged by ^7%s"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3116
+#, c-format
+msgid "^4You scored against ^7%s"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3118
+#, c-format
+msgid "^4You fragged ^7%s"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3122
+#, c-format
+msgid "^1You were scored against by ^7%s"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3124
+#, c-format
+msgid "^1You were fragged by ^7%s"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3129
+msgid "^1Watch your step!"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3194 qcsrc/client/hud.qc:3195
+#, c-format
+msgid "Player %d"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3791
+msgid "^1Intermediate 1 (+15.42)"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3793 qcsrc/client/hud.qc:3835 qcsrc/client/hud.qc:3876
+#, c-format
+msgid "^1PENALTY: %.1f (%s)"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3878
+#, c-format
+msgid "^2PENALTY: %.1f (%s)"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3903
+msgid "^2Name ^7instead of \"^1Unregistered player^7\" in stats"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3985
+msgid "A vote has been called for:"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3987
+msgid "Allow servers to store and display your name?"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3991
+msgid "^1Configure the HUD"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3995
+#, c-format
+msgid "Yes (%s): %d"
+msgstr ""
+
+#: qcsrc/client/hud.qc:3997
+#, c-format
+msgid "No (%s): %d"
+msgstr ""
+
+#: qcsrc/client/hud.qc:4510 qcsrc/client/hud.qc:4513 qcsrc/client/hud.qc:4515
+msgid "Personal best"
+msgstr ""
+
+#: qcsrc/client/hud.qc:4528 qcsrc/client/hud.qc:4531 qcsrc/client/hud.qc:4533
+msgid "Server best"
+msgstr ""
+
+#: qcsrc/client/hud.qc:4765
+msgid "^3Player^7: This is the chat area."
+msgstr ""
+
+#: qcsrc/client/hud.qc:4828
+#, c-format
+msgid "FPS: %.*f"
+msgstr ""
+
+#: qcsrc/client/hud.qc:4893
+msgid "^1Observing"
+msgstr ""
+
+#: qcsrc/client/hud.qc:4895
+#, c-format
+msgid "^1Spectating: ^7%s"
+msgstr ""
+
+#: qcsrc/client/hud.qc:4899
+#, c-format
+msgid "^1Press ^3%s^1 to spectate"
+msgstr ""
+
+#: qcsrc/client/hud.qc:4901
+#, c-format
+msgid "^1Press ^3%s^1 for another player"
+msgstr ""
+
+#: qcsrc/client/hud.qc:4905
+#, c-format
+msgid "^1Use ^3%s^1 or ^3%s^1 to change the speed"
+msgstr ""
+
+#: qcsrc/client/hud.qc:4907
+#, c-format
+msgid "^1Press ^3%s^1 to observe"
+msgstr ""
+
+#: qcsrc/client/hud.qc:4910
+#, c-format
+msgid "^1Press ^3%s^1 for gamemode info"
+msgstr ""
+
+#: qcsrc/client/hud.qc:4914
+msgid "^1Wait for your turn to join"
+msgstr ""
+
+#: qcsrc/client/hud.qc:4920
+msgid "^1Match has already begun"
+msgstr ""
+
+#: qcsrc/client/hud.qc:4922
+msgid "^1You have no more lives left"
+msgstr ""
+
+#: qcsrc/client/hud.qc:4924 qcsrc/client/hud.qc:4927
+#, c-format
+msgid "^1Press ^3%s^1 to join"
+msgstr ""
+
+#: qcsrc/client/hud.qc:4935
+#, c-format
+msgid "^1Game starts in ^3%d^1 seconds"
+msgstr ""
+
+#: qcsrc/client/hud.qc:4942
+msgid "^2Currently in ^1warmup^2 stage!"
+msgstr ""
+
+#: qcsrc/client/hud.qc:4957
+#, c-format
+msgid "%sPress ^3%s%s to end warmup"
+msgstr ""
+
+#: qcsrc/client/hud.qc:4959
+#, c-format
+msgid "%sPress ^3%s%s once you are ready"
+msgstr ""
+
+#: qcsrc/client/hud.qc:4964
+msgid "^2Waiting for others to ready up to end warmup..."
+msgstr ""
+
+#: qcsrc/client/hud.qc:4966
+msgid "^2Waiting for others to ready up..."
+msgstr ""
+
+#: qcsrc/client/hud.qc:4972
+#, c-format
+msgid "^2Press ^3%s^2 to end warmup"
+msgstr ""
+
+#: qcsrc/client/hud.qc:4993
+msgid "Teamnumbers are unbalanced!"
+msgstr ""
+
+#: qcsrc/client/hud.qc:4998
+#, c-format
+msgid " Press ^3%s%s to adjust"
+msgstr ""
+
+#: qcsrc/client/hud.qc:5006
+msgid "^7Press ^3ESC ^7to show HUD options."
+msgstr ""
+
+#: qcsrc/client/hud.qc:5008
+msgid "^3Doubleclick ^7a panel for panel-specific options."
+msgstr ""
+
+#: qcsrc/client/hud.qc:5010
+msgid "^3CTRL ^7to disable collision testing, ^3SHIFT ^7and"
+msgstr ""
+
+#: qcsrc/client/hud.qc:5012
+msgid "^3ALT ^7+ ^3ARROW KEYS ^7for fine adjustments."
+msgstr ""
+
+#: qcsrc/client/hud.qc:5037
+msgid " qu/s"
+msgstr ""
+
+#: qcsrc/client/hud.qc:5041
+msgid " m/s"
+msgstr ""
+
+#: qcsrc/client/hud.qc:5045
+msgid " km/h"
+msgstr ""
+
+#: qcsrc/client/hud.qc:5049
+msgid " mph"
+msgstr ""
+
+#: qcsrc/client/hud.qc:5053
+msgid " knots"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:19
+msgid "SCO^bckills"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:20
+msgid "SCO^bctime"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:21
+msgid "SCO^caps"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:22
+msgid "SCO^deaths"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:23
+msgid "SCO^destroyed"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:24
+msgid "SCO^drops"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:25
+msgid "SCO^faults"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:26
+msgid "SCO^fckills"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:27
+msgid "SCO^goals"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:28
+msgid "SCO^kckills"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:29
+msgid "SCO^kdratio"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:30
+msgid "SCO^k/d"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:31
+msgid "SCO^kd"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:32
+msgid "SCO^kdr"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:33
+msgid "SCO^kills"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:34
+msgid "SCO^laps"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:35
+msgid "SCO^lives"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:36
+msgid "SCO^losses"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:37
+msgid "SCO^name"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:38
+msgid "SCO^nick"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:39
+msgid "SCO^objectives"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:40
+msgid "SCO^pickups"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:41
+msgid "SCO^ping"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:42
+msgid "SCO^pl"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:43
+msgid "SCO^pushes"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:44
+msgid "SCO^rank"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:45
+msgid "SCO^returns"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:46
+msgid "SCO^revivals"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:47
+msgid "SCO^score"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:48
+msgid "SCO^suicides"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:49
+msgid "SCO^takes"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:50
+msgid "SCO^ticks"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:239
+msgid ""
+"You can modify the scoreboard using the ^2scoreboard_columns_set command.\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:240
+msgid "^3|---------------------------------------------------------------|\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:242
+msgid "^2scoreboard_columns_set default\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:243
+msgid "^2scoreboard_columns_set ^7filed1 field2 ...\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:244
+msgid "The following field names are recognized (case insensitive):\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:245
+msgid ""
+"You can use a ^3|^7 to start the right-aligned fields.\n"
+"\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:247
+msgid "^3name^7 or ^3nick^7 Name of a player\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:248
+msgid "^3ping^7 Ping time\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:249
+msgid "^3pl^7 Packet loss\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:250
+msgid "^3kills^7 Number of kills\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:251
+msgid "^3deaths^7 Number of deaths\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:252
+msgid "^3suicides^7 Number of suicides\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:253
+msgid "^3frags^7 kills - suicides\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:254
+msgid "^3kd^7 The kill-death ratio\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:255
+msgid ""
+"^3caps^7 How often a flag (CTF) or a key (KeyHunt) was "
+"captured\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:256
+msgid ""
+"^3pickups^7 How often a flag (CTF) or a key (KeyHunt) or a "
+"ball (Keepaway) was picked up\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:257
+msgid "^3fckills^7 Number of flag carrier kills\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:258
+msgid "^3returns^7 Number of flag returns\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:259
+msgid "^3drops^7 Number of flag drops\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:260
+msgid "^3lives^7 Number of lives (LMS)\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:261
+msgid "^3rank^7 Player rank\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:262
+msgid "^3pushes^7 Number of players pushed into void\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:263
+msgid ""
+"^3destroyed^7 Number of keys destroyed by pushing them into "
+"void\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:264
+msgid "^3kckills^7 Number of keys carrier kills\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:265
+msgid "^3losses^7 Number of times a key was lost\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:266
+msgid "^3laps^7 Number of laps finished (race/cts)\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:267
+msgid "^3time^7 Total time raced (race/cts)\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:268
+msgid "^3fastest^7 Time of fastest lap (race/cts)\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:269
+msgid "^3ticks^7 Number of ticks (DOM)\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:270
+msgid "^3takes^7 Number of domination points taken (DOM)\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:271
+msgid "^3bckills^7 Number of ball carrier kills\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:272
+msgid ""
+"^3bctime^7 Total amount of time holding the ball in "
+"Keepaway\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:273
+msgid ""
+"^3score^7 Total score\n"
+"\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:275
+msgid ""
+"Before a field you can put a + or - sign, then a comma separated list\n"
+"of game types, then a slash, to make the field show up only in these\n"
+"or in all but these game types. You can also specify 'all' as a\n"
+"field to show all fields available for the current game mode.\n"
+"\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:280
+msgid ""
+"The special game type names 'teams' and 'noteams' can be used to\n"
+"include/exclude ALL teams/noteams game modes.\n"
+"\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:283
+msgid "Example: scoreboard_columns_set name ping pl | +ctf/field3 -dm/field4\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:284
+msgid ""
+"will display name, ping and pl aligned to the left, and the fields\n"
+"right of the vertical bar aligned to the right.\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:286
+msgid ""
+"'field3' will only be shown in CTF, and 'field4' will be shown in all\n"
+"other gamemodes except DM.\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:432 qcsrc/client/scoreboard.qc:447
+#: qcsrc/client/scoreboard.qc:457 qcsrc/client/scoreboard.qc:466
+#: qcsrc/client/scoreboard.qc:475
+#, c-format
+msgid "fixed missing field '%s'\n"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:515 qcsrc/client/scoreboard.qc:522
+msgid "N/A"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:951
+#, c-format
+msgid "Accuracy stats (average %d%%)"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:1016
+#, c-format
+msgid "%d%%"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:1076
+msgid "Rankings"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:1167 qcsrc/client/scoreboard.qc:1169
+msgid "Scoreboard"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:1210
+#, c-format
+msgid "Speed award: %d ^7(%s^7)"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:1214
+#, c-format
+msgid "All-time fastest: %d ^7(%s^7)"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:1241 qcsrc/client/teamplay.qc:55
+msgid "Spectators"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:1248
+#, c-format
+msgid "playing on ^2%s^7"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:1255 qcsrc/client/scoreboard.qc:1260
+#, c-format
+msgid " for up to ^1%1.0f minutes^7"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:1264 qcsrc/client/scoreboard.qc:1283
+msgid " or"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:1267 qcsrc/client/scoreboard.qc:1274
+#, c-format
+msgid " until ^3%s %s^7"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:1268 qcsrc/client/scoreboard.qc:1275
+#: qcsrc/client/scoreboard.qc:1287 qcsrc/client/scoreboard.qc:1294
+msgid "SCO^points"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:1269 qcsrc/client/scoreboard.qc:1276
+#: qcsrc/client/scoreboard.qc:1288 qcsrc/client/scoreboard.qc:1295
+msgid "SCO^is beaten"
+msgstr ""
+
+#: qcsrc/client/scoreboard.qc:1286 qcsrc/client/scoreboard.qc:1293
+#, c-format
+msgid " until a lead of ^3%s %s^7"
+msgstr ""
+
+#: qcsrc/client/miscfunctions.qc:23
+msgid "^1Begin!"
+msgstr ""
+
+#: qcsrc/client/miscfunctions.qc:34
+#, c-format
+msgid "^1Game starts in %d seconds"
+msgstr ""
+
+#: qcsrc/client/miscfunctions.qc:113
+msgid "^1RED^7 flag"
+msgstr ""
+
+#: qcsrc/client/miscfunctions.qc:118
+msgid "^4BLUE^7 flag"
+msgstr ""
+
+#: qcsrc/client/miscfunctions.qc:126
+#, c-format
+msgid "You picked up the %s!"
+msgstr ""
+
+#: qcsrc/client/miscfunctions.qc:130
+#, c-format
+msgid "You got the %s!"
+msgstr ""
+
+#: qcsrc/client/miscfunctions.qc:283
+msgid "Trying to remove a team which is not in the teamlist!"
+msgstr ""
+
+#: qcsrc/client/ctf.qc:35
+msgid "----- Order Menu -----"
+msgstr ""
+
+#: qcsrc/client/ctf.qc:36
+#, c-format
+msgid "Order: %s"
+msgstr ""
+
+#: qcsrc/client/ctf.qc:37
+msgid "1) ^3previous page"
+msgstr ""
+
+#: qcsrc/client/ctf.qc:38
+msgid "2) ^3next page"
+msgstr ""
+
+#: qcsrc/client/ctf.qc:55 qcsrc/client/ctf.qc:161
+msgid "ESC) Exit Menu"
+msgstr ""
+
+#: qcsrc/client/ctf.qc:126
+#, c-format
+msgid "Couldn't find player %d\n"
+msgstr ""
+
+#: qcsrc/client/ctf.qc:154
+msgid "----- Command Menu -----"
+msgstr ""
+
+#: qcsrc/client/ctf.qc:155
+msgid "Issue orders:"
+msgstr ""
+
+#: qcsrc/client/ctf.qc:156
+msgid " 1) Attack"
+msgstr ""
+
+#: qcsrc/client/ctf.qc:158
+msgid " 2) Defend"
+msgstr ""
+
+#: qcsrc/client/ctf.qc:160
+msgid "3) Resign from command."
+msgstr ""
+
+#: qcsrc/client/ctf.qc:212
+msgid "You're commander!"
+msgstr ""
+
+#: qcsrc/client/ctf.qc:215
+msgid "Awaiting orders..."
+msgstr ""
+
+#: qcsrc/client/teamplay.qc:56
+msgid "Red Team"
+msgstr ""
+
+#: qcsrc/client/teamplay.qc:57
+msgid "Blue Team"
+msgstr ""
+
+#: qcsrc/client/teamplay.qc:58
+msgid "Yellow Team"
+msgstr ""
+
+#: qcsrc/client/teamplay.qc:59
+msgid "Pink Team"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:2
+msgid "Fireball"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:417
+#, c-format
+msgid "%s forgot about some firemine"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:419 qcsrc/server/w_hlac.qc:240
+#, c-format
+msgid "%s should have used a smaller gun"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:426
+#, c-format
+msgid "%s tried to catch %s's firemine"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:428
+#, c-format
+msgid "%s fatefully ignored %s's firemine"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:435
+#, c-format
+msgid "%s could not hide from %s's fireball"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:437
+#, c-format
+msgid "%s saw the pretty lights of %s's fireball"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:440
+#, c-format
+msgid "%s got too close to %s's fireball"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:442
+#, c-format
+msgid "%s tasted %s's fireball"
+msgstr ""
+
+#: qcsrc/server/w_nex.qc:2
+msgid "Nex"
+msgstr ""
+
+#: qcsrc/server/w_nex.qc:267 qcsrc/server/w_shotgun.qc:203
+#: qcsrc/server/w_uzi.qc:317 qcsrc/server/w_minstanex.qc:290
+#: qcsrc/server/w_porto.qc:296 qcsrc/server/w_hook.qc:266
+#, c-format
+msgid "%s did the impossible"
+msgstr ""
+
+#: qcsrc/server/w_nex.qc:269 qcsrc/server/w_minstanex.qc:292
+#, c-format
+msgid "%s has been vaporized by %s"
+msgstr ""
+
+#: qcsrc/server/w_laser.qc:2
+msgid "Laser"
+msgstr ""
+
+#: qcsrc/server/w_laser.qc:305
+#, c-format
+msgid "%s lasered themself to hell"
+msgstr ""
+
+#: qcsrc/server/w_laser.qc:309
+#, c-format
+msgid "%s was cut in half by %s's gauntlet"
+msgstr ""
+
+#: qcsrc/server/w_laser.qc:311
+#, c-format
+msgid "%s was lasered to death by %s"
+msgstr ""
+
+#: qcsrc/server/w_shotgun.qc:2
+msgid "Shotgun"
+msgstr ""
+
+#: qcsrc/server/w_shotgun.qc:207
+#, c-format
+msgid "%2$s ^7slapped %1$s ^7around a bit with a large ^2shotgun"
+msgstr ""
+
+#: qcsrc/server/w_shotgun.qc:209
+#, c-format
+msgid "%s was gunned by %s"
+msgstr ""
+
+#: qcsrc/server/w_uzi.qc:2
+msgid "Machine Gun"
+msgstr ""
+
+#: qcsrc/server/w_uzi.qc:321 qcsrc/server/w_sniperrifle.qc:254
+#, c-format
+msgid "%s was sniped by %s"
+msgstr ""
+
+#: qcsrc/server/w_uzi.qc:323
+#, c-format
+msgid "%s was riddled full of holes by %s"
+msgstr ""
+
+#: qcsrc/server/w_sniperrifle.qc:2
+msgid "Sniper Rifle"
+msgstr ""
+
+#: qcsrc/server/w_sniperrifle.qc:229
+#, c-format
+msgid "%s shot themself automatically"
+msgstr ""
+
+#: qcsrc/server/w_sniperrifle.qc:231
+#, c-format
+msgid "%s sniped themself somehow"
+msgstr ""
+
+#: qcsrc/server/w_sniperrifle.qc:238
+#, c-format
+msgid "%s failed to hide from %s's bullet hail"
+msgstr ""
+
+#: qcsrc/server/w_sniperrifle.qc:240
+#, c-format
+msgid "%s died in %s's bullet hail"
+msgstr ""
+
+#: qcsrc/server/w_sniperrifle.qc:247
+#, c-format
+msgid "%s failed to hide from %s's rifle"
+msgstr ""
+
+#: qcsrc/server/w_sniperrifle.qc:252
+#, c-format
+msgid "%s got hit in the head by %s"
+msgstr ""
+
+#: qcsrc/server/w_minstanex.qc:2
+msgid "MinstaNex"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:2
+msgid "Electro"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:571
+#, c-format
+msgid "%s could not remember where they put plasma"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:573
+#, c-format
+msgid "%s played with plasma"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:580
+#, c-format
+msgid "%s just noticed %s's blue ball"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:582
+#, c-format
+msgid "%s got in touch with %s's blue ball"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:587
+#, c-format
+msgid "%s felt the electrifying air of %s's combo"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:589
+#, c-format
+msgid "%s got too close to %s's blue beam"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:591
+#, c-format
+msgid "%s was blasted by %s's blue beam"
+msgstr ""
+
+#: qcsrc/server/w_tuba.qc:2
+#, c-format
+msgid "@!#%'n Tuba"
+msgstr ""
+
+#: qcsrc/server/w_tuba.qc:263
+#, c-format
+msgid "%s hurt his own ears with the @!#%%'n Tuba"
+msgstr ""
+
+#: qcsrc/server/w_tuba.qc:267
+#, c-format
+msgid "%s died of %s's great playing on the @!#%%'n Tuba"
+msgstr ""
+
+#: qcsrc/server/w_porto.qc:2
+msgid "Port-O-Launch"
+msgstr ""
+
+#: qcsrc/server/w_porto.qc:298
+#, c-format
+msgid "%s felt %s doing the impossible to him"
+msgstr ""
+
+#: qcsrc/server/w_hagar.qc:2
+msgid "Hagar"
+msgstr ""
+
+#: qcsrc/server/w_hagar.qc:209 qcsrc/server/w_seeker.qc:655
+#, c-format
+msgid "%s played with tiny rockets"
+msgstr ""
+
+#: qcsrc/server/w_hagar.qc:213
+#, c-format
+msgid "%s hoped %s's missiles wouldn't bounce"
+msgstr ""
+
+#: qcsrc/server/w_hagar.qc:215 qcsrc/server/w_seeker.qc:661
+#, c-format
+msgid "%s was pummeled by %s"
+msgstr ""
+
+#: qcsrc/server/w_crylink.qc:2
+msgid "Crylink"
+msgstr ""
+
+#: qcsrc/server/w_crylink.qc:664
+#, c-format
+msgid "%s succeeded at self-destructing themself with the Crylink"
+msgstr ""
+
+#: qcsrc/server/w_crylink.qc:669
+#, c-format
+msgid "%s could not hide from %s's Crylink"
+msgstr ""
+
+#: qcsrc/server/w_crylink.qc:671
+#, c-format
+msgid "%s was too close to %s's Crylink"
+msgstr ""
+
+#: qcsrc/server/w_crylink.qc:673
+#, c-format
+msgid "%s took a close look at %s's Crylink"
+msgstr ""
+
+#: qcsrc/server/w_rocketlauncher.qc:2
+msgid "Rocket Launcher"
+msgstr ""
+
+#: qcsrc/server/w_rocketlauncher.qc:500 qcsrc/server/w_minelayer.qc:495
+#, c-format
+msgid "%s exploded"
+msgstr ""
+
+#: qcsrc/server/w_rocketlauncher.qc:504
+#, c-format
+msgid "%s got too close to %s's rocket"
+msgstr ""
+
+#: qcsrc/server/w_rocketlauncher.qc:506
+#, c-format
+msgid "%s almost dodged %s's rocket"
+msgstr ""
+
+#: qcsrc/server/w_rocketlauncher.qc:508
+#, c-format
+msgid "%s ate %s's rocket"
+msgstr ""
+
+#: qcsrc/server/w_hook.qc:2
+msgid "Grappling Hook"
+msgstr ""
+
+#: qcsrc/server/w_hook.qc:268
+#, c-format
+msgid "%s has run into %s's gravity bomb"
+msgstr ""
+
+#: qcsrc/server/w_minelayer.qc:2
+msgid "Mine Layer"
+msgstr ""
+
+#: qcsrc/server/w_minelayer.qc:499
+#, c-format
+msgid "%s got too close to %s's mine"
+msgstr ""
+
+#: qcsrc/server/w_minelayer.qc:501
+#, c-format
+msgid "%s almost dodged %s's mine"
+msgstr ""
+
+#: qcsrc/server/w_minelayer.qc:503
+#, c-format
+msgid "%s stepped on %s's mine"
+msgstr ""
+
+#: qcsrc/server/w_seeker.qc:2
+msgid "T.A.G. Seeker"
+msgstr ""
+
+#: qcsrc/server/w_seeker.qc:659
+#, c-format
+msgid "%s was tagged by %s"
+msgstr ""
+
+#: qcsrc/server/w_grenadelauncher.qc:2
+msgid "Mortar"
+msgstr ""
+
+#: qcsrc/server/w_grenadelauncher.qc:378
+#, c-format
+msgid "%s tried out his own grenade"
+msgstr ""
+
+#: qcsrc/server/w_grenadelauncher.qc:380
+#, c-format
+msgid "%s detonated"
+msgstr ""
+
+#: qcsrc/server/w_grenadelauncher.qc:386
+#, c-format
+msgid "%s didn't see %s's grenade"
+msgstr ""
+
+#: qcsrc/server/w_grenadelauncher.qc:388
+#, c-format
+msgid "%s almost dodged %s's grenade"
+msgstr ""
+
+#: qcsrc/server/w_grenadelauncher.qc:390
+#, c-format
+msgid "%s ate %s's grenade"
+msgstr ""
+
+#: qcsrc/server/w_hlac.qc:2
+msgid "Heavy Laser Assault Cannon"
+msgstr ""
+
+#: qcsrc/server/w_hlac.qc:242
+#, c-format
+msgid "%s was cut down by %s"
+msgstr ""
+++ /dev/null
-// Samual's mod configuration file
-exec defaultXonotic.cfg
-
-// weapon replace options
-set g_weaponreplace_laser ""
-set g_weaponreplace_shotgun ""
-set g_weaponreplace_uzi ""
-set g_weaponreplace_grenadelauncher ""
-set g_weaponreplace_electro ""
-set g_weaponreplace_crylink ""
-set g_weaponreplace_nex ""
-set g_weaponreplace_hagar ""
-set g_weaponreplace_rocketlauncher ""
-set g_weaponreplace_porto ""
-set g_weaponreplace_minstanex ""
-set g_weaponreplace_hook ""
-set g_weaponreplace_hlac 0 // Maybe will be enabled later after I figure out what I want to do with it
-set g_weaponreplace_sniperrifle ""
-set g_weaponreplace_tuba ""
-set g_weaponreplace_fireball 0 // Same with this
-set g_weaponreplace_seeker 0 // Same with this
-set sv_q3acompat_machineshotgunswap 0
-
-// other options
-set sv_fragmessage_information_ping 1
-set sv_fragmessage_information_handicap 2
-set sv_fragmessage_information_stats 1
-set sv_fragmessage_information_typefrag 1
-
-exec physicsSamual.cfg
-exec balanceSamual.cfg
//
// e.g. Xonotic 1.5.1 RC1 will be 15101
set g_xonoticversion git "Xonotic version (formatted for humans)"
+
gameversion 100 // 0.1.0
gameversion_min 0 // git builds see all versions
gameversion_max 65535 // git builds see all versions
seta crosshair_dot_color "1 0 0" "when != 0, use custom color for the crosshair dot"
seta crosshair_pickup 0.25
seta crosshair_pickup_speed 4
+seta crosshair_hitindication 0.5
+seta crosshair_hitindication_color "10 -10 -10"
+seta crosshair_hitindication_speed 5
seta crosshair_per_weapon 0 "when 1, each gun will display a different crosshair"
seta crosshair_color_per_weapon 1 "when 1, each gun will display the crosshair with a different color"
seta crosshair_effect_speed -1 "how fast (in seconds) some crosshair effects should take place, 0 = instant, -1 = 2x weapon switch time"
seta crosshair_fireball_color "0.2 1.0 0.2" "crosshair color to display when wielding the fireball"
seta crosshair_fireball_alpha 1 "crosshair alpha value to display when wielding the fireball"
seta crosshair_fireball_size 1 "crosshair size when wielding the fireball"
+seta crosshair_color_by_health 0 "if enabled, crosshair color will depend on current health"
// ring around crosshair, used for various purposes (such as indicating bullets left in clip, nex charge)
-seta crosshair_ring_size 2 "bullet counter ring size for Rifle, velocity ring for Nex"
+seta crosshair_ring 1 "main cvar to enable or disable normal crosshair rings"
+seta crosshair_ring_inner 0 "allow inner rings to be drawn too"
+seta crosshair_ring_size 2 "ring size"
seta crosshair_ring_alpha 0.2 "ring alpha"
-seta crosshair_ring_sniperrifle_alpha 0.15
-
-seta crosshair_ring_nex_outer_alpha 0.15
+seta crosshair_ring_nex 1 "draw a ring showing the current charge of the nexgun"
+seta crosshair_ring_nex_alpha 0.15
seta crosshair_ring_nex_inner_alpha 0.15
seta crosshair_ring_nex_inner_color_red 0.8
seta crosshair_ring_nex_inner_color_green 0
seta crosshair_ring_nex_currentcharge_scale 30
seta crosshair_ring_nex_currentcharge_movingavg_rate 0.05
+seta crosshair_ring_minelayer 1
+seta crosshair_ring_minelayer_alpha 0.15
+
+seta crosshair_ring_reload 1 "main cvar to enable or disable ammo crosshair rings"
+seta crosshair_ring_reload_size 2.5 "reload ring size"
+seta crosshair_ring_reload_alpha 0.2 "reload ring alpha"
+
seta cl_reticle_stretch 0 "whether to stretch reticles so they fit the screen (brakes image proportions)"
-seta cl_reticle_item_nex 1 "draw aiming recticle for the nex weapon's zoom, 0 disables and values between 0 and 1 change alpha"
-seta cl_reticle_item_normal 1 "draw recticle when zooming with the zoom button, 0 disables and values between 0 and 1 change alpha"
+seta cl_reticle_item_nex 1 "draw aiming reticle for the nex weapon's zoom, 0 disables and values between 0 and 1 change alpha"
+seta cl_reticle_item_normal 1 "draw reticle when zooming with the zoom button, 0 disables and values between 0 and 1 change alpha"
fov 90
seta cl_velocityzoom 0 "velocity based zooming of fov, negative values zoom out"
seta cl_velocityzoomtime 0.3 "time value for averaging speed values"
v_deathtilt 0 // needed for spectators (who are dead to avoid prediction)
// these settings determine how much the view is affected by movement/damage
-cl_deathfade 1 // fade screen to dark red when dead, value represents how fast the fade is (higher is faster)
+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
seta sv_taunt 1 "allow taunts on the server"
seta sv_autotaunt 1 "allow autotaunts on the server"
seta cl_voice_directional 1 "0 = all voices are non-directional, 1 = all voices are directional, 2 = only taunts are directional"
-seta cl_voice_directional_taunt_attenuation 0.5 "this defines the distance from which taunts can be heared"
+seta cl_voice_directional_taunt_attenuation 0.5 "this defines the distance from which taunts can be heard"
// server settings
hostname "Xonotic $g_xonoticversion Server"
set sv_ready_restart_after_countdown 0 "if set to 1 the players and map items are reset after the countdown ended, otherwise they're reset already at the beginning of the countdown"
set sv_ready_restart_repeatable 0 "allows the players to restart the game as often as needed"
-set sv_hitsound_antispam_time 0.05 "don't play the hitsound more often than this for the electro lightning gun or the laser gauntlet"
+seta cl_hitsound 1 "play a hit notifier sound when you have hit an enemy"
+set cl_hitsound_antispam_time 0.05 "don't play the hitsound more often than this"
+
+seta cl_eventchase_death 0 "camera goes into 3rd person mode when the player is dead"
+seta cl_eventchase_intermission 0 "camera goes into 3rd person mode when the match ends"
+seta cl_eventchase_distance 140 "final camera distance"
+seta cl_eventchase_speed 1.3 "how fast the camera slides back, 0 is instant"
//nifreks lockonrestart feature, used in team-based game modes, if set to 1 and all players readied up no other player can then join the game anymore, useful to block spectators from joining
set teamplay_lockonrestart 0 "it set to 1 in a team-based game, the teams are locked once all players readied up and the game restarted (no new players can join after restart unless using the server-command unlockteams)"
set g_respawn_ghosts_speed 5 "the speed with which respawn ghosts float and rotate"
set g_respawn_ghosts_maxtime 6 "maximum amount of time a respawn ghost can last, minimum time is half this value. 0 disables and ghosts fade when the body would"
+set sv_gibhealth 100 "Minus health a dead body must have in order to get gibbed"
+
// fragmessage: This allows extra information to be displayed with the frag centerprints.
set sv_fragmessage_information_ping 1 "Enable ping display information, 0 = Never display; 1 = Always display (If the player is a bot, it will say bot instead of the ping.)"
set sv_fragmessage_information_handicap 1 "Enable handicap display information, 0 = Never display; 1 = Only when the player has handicap on; 2 = Always display (Displays Off if off)"
seta bot_prefix [BOT] "Prefix in front of the bot names"
seta bot_suffix "" "Suffix behind the bot names"
seta skill_auto 0 "when 1, \"skill\" gets adjusted to match the best player on the map"
+set bot_debug_tracewalk 0 "Enable visual indicators for short-term navigation. Green: Goal Reached / Yellow: Obstacle found / Red: Unsolvable obstacle found"
+set bot_debug_goalstack 0 "Visualize the current path that each bot is following. Use with as few bots as possible."
+set bot_wander_enable 1 "Have bots wander around if they are unable to reach any useful goal. Disable only for debugging purposes."
// general bot AI cvars
set bot_ai_thinkinterval 0.05
set bot_ai_strategyinterval 5 "How often a new objective is chosen"
set bot_ai_aimskill_firetolerance_maxdegrees 60 "Maximum firing angle. Used on close range"
set bot_ai_aimskill_mouse 1 "How much of the aiming filters are applied"
set bot_ai_keyboard_distance 250 "Keyboard emulation is disabled after this distance to the goal"
-set bot_ai_keyboard_treshold 0.57
+set bot_ai_keyboard_threshold 0.57
set bot_ai_aimskill_offset 0.3 "Amount of error induced to the bots aim"
set bot_ai_aimskill_think 1 "Aiming velocity. Use values below 1 for slower aiming"
set bot_ai_custom_weapon_priority_distances "300 850" "Define close and far distances in any order. Based on the distance to the enemy bots will choose different weapons"
set bot_ai_bunnyhop_stopdistance 125 "Stop jumping after reaching this distance to the goal"
set bot_ai_bunnyhop_firstjumpdelay 0.2 "Start running to the goal only if it was seen for more than N seconds"
set bot_god 0 "god mode for bots"
-set bot_ai_navigation_jetpack 0 "Enable bots to navigat maps using the jetpack"
+set bot_ai_navigation_jetpack 0 "Enable bots to navigate maps using the jetpack"
set bot_ai_navigation_jetpack_mindistance 3500 "Bots will try fly to objects located farther than this distance"
// Better don't touch these, there are hard to tweak!
set bot_ai_aimskill_order_mix_1st 0.01 "Amount of the 1st filter output to apply to the aiming angle"
pausable 0
seta g_spawnshieldtime 1.000000 "number of seconds you are invincible after you spawned, this shield is lost after you fire"
seta g_antilag 2 "AntiLag (0 = no AntiLag, 1 = verified client side hit scan, 2 = server side hit scan in the past, 3 = unverified client side hit scan)"
+set g_trueaim_minrange 44 "TrueAim minimum range (TrueAim adjusts shots so they hit the crosshair point even though the gun is not at the screen center)"
set g_antilag_nudge 0 "don't touch"
set g_antilag_bullets 1 "Bullets AntiLag (0 = no AntiLag, 1 = server side hit scan in the past) - DO NOT TOUCH (severely changes weapon balance)"
set g_shootfromclient 1 "let client decide if it has the gun left or right; if set to 2, center handedness is allowed, and defaulted to, too; see also cl_gunalign"
set g_powerup_strength 1 "if set to 0 the strength powerup will not spawn on the map"
set g_powerup_shield 1 "if set to 0 the shield (invincibility) powerup will not spawn on the map"
set g_balance_powerup_timer 1 "if set to 0 the powerups dont wear off"
-set g_use_ammunition 1 "if set to 0 all weapons you pick up have unlimited ammunition"
+set g_use_ammunition 1 "if set to 0 all weapons have unlimited ammunition"
set g_pickup_items 1 "if set to 0 all items (health, armor, ammo, weapons...) are removed from the map"
set g_minstagib 0 "enable minstagib"
set g_minstagib_extralives 2 "how many extra lives you will get per powerup"
set g_norecoil 0 "if set to 1 shooting weapons won't make you crosshair to move upwards (recoil)"
set g_maplist_mostrecent "" "contains the name of the maps that were most recently played"
seta g_maplist_mostrecent_count 3 "number of most recent maps that are blocked from being played again"
-seta g_maplist "g-23" "the list of maps to be cycled among (is autogenerated if empty)"
+seta g_maplist "" "the list of maps to be cycled among (is autogenerated if empty)"
seta g_maplist_index 0 "this is used internally for saving position in maplist cycle"
seta g_maplist_selectrandom 0 "if 1, a random map will be chosen as next map - DEPRECATED in favor of g_maplist_shuffle"
seta g_maplist_shuffle 1 "new randomization method: like selectrandom, but avoid playing the same maps in short succession. This works by taking out the first element and inserting it into g_maplist with a bias to the end of the list"
seta g_mirrordamage_virtual 1 "for teamplay 4: do not actually apply mirror damage, just show graphics effect for it"
seta g_friendlyfire 0.500000 "for teamplay 4: fiendly fire factor"
seta g_friendlyfire_virtual 1 "for teamplay 4: do not actually apply friendly fire, just show graphics effect for it"
+seta g_friendlyfire_virtual_force 1 "for teamplay 4: apply force even though damage was made virtual only"
seta g_teamdamage_threshold 40 "for teamplay 4: threshold over which to apply mirror damage"
seta g_teamdamage_resetspeed 20 "for teamplay 4: how fast player's teamdamage count decreases"
seta cl_sound_maptime_warning "1" "play announcer sound telling you the remaining maptime - 0: do not play at all, 1: play at one minute, 2: play at five minutes, 3: play both"
seta cl_notify_carried_items "3" "notify you of carried items when you obtain them (e.g. flags in CTF) - 0: disabled, 1: notify of taken items, 2: notify of picking up dropped items, 3: notify of both"
-seta cl_hitsound 1 "play a hit notifier sound when you have hit an enemy"
seta cl_announcer default "name of the announcer you wish to use from data/sound/announcer"
// startmap_dm is used when running with the -listen or -dedicated commandline options
cl_curl_enabled 1
cl_curl_maxspeed 300
sv_curl_defaulturl "http://www.xonotic.com/contentdownload/getmap.php?file="
-set sv_curl_serverpackages_auto 0 "automatically add packs with *.serverpackage files to sv_curl_serverpackages"
+set sv_curl_serverpackages_auto 1 "automatically add packs with *.serverpackage files to sv_curl_serverpackages"
set sv_motd ""
// keepaway
set g_keepaway 0 "game mode which focuses around a ball, look at g_keepaway_win_mode for further details"
-set g_keepaway_bckillscore 1 "enable scoring points (y/n) for ball carrier kills"
-set g_keepaway_pointlimit -1 "total amount of points you can get, -1 for unlimited"
-set g_keepaway_pointleadlimit -1 "mercy rule, -1 for unlimited"
-set g_keepaway_ballcarrier_alpha 0.6 "alpha when the player is the ballcarrier"
-set g_keepaway_ballcarrier_highspeed 1.5 "speed multiplier done to the person holding the ball"
-set g_keepaway_ballcarrier_damage 1.5 "damage multiplier while having powerup"
-set g_keepaway_ballcarrier_force 1.5 "force multiplier while having powerup"
-set g_keepaway_ballcarrier_selfdamage 1 "self damage multiplier while having powerup"
-set g_keepaway_ballcarrier_selfforce 1.5 "self force multiplier while having powerup"
-set g_keepaway_noncarrier_warn 0 "warn players when they kill without holding the ball"
-set g_keepaway_noncarrier_damage 0.5 "damage done to other players if both you and they don't have the ball"
-set g_keepaway_noncarrier_force 0.5 "force done to other players if both you and they don't have the ball"
+set g_keepaway_score_bckill 1 "enable scoring points (y/n) for ball carrier kills (value is how many points to award)"
+set g_keepaway_score_killac 1 "amount of points to give when you kill someone while you have the ball"
+set g_keepaway_score_timeinterval 1 "amount of time it takes between intervals for timepoints to be added to the score"
+set g_keepaway_score_timepoints 0 "points to add to score per timeinterval, 0 for no points"
+set g_keepaway_ballcarrier_effects 8 "Add together the numbers you want: EF_ADDITIVE (32) / EF_NODEPTHTEST (8192) / EF_DIMLIGHT (8)"
+set g_keepaway_ballcarrier_highspeed 1 "speed multiplier done to the person holding the ball (recommended when used with some mutators)"
+set g_keepaway_ballcarrier_damage 1 "damage multiplier while holding the ball"
+set g_keepaway_ballcarrier_force 1 "force multiplier while holding the ball"
+set g_keepaway_ballcarrier_selfdamage 1 "self damage multiplier while holding the ball"
+set g_keepaway_ballcarrier_selfforce 1 "self force multiplier while holding the ball"
+set g_keepaway_noncarrier_warn 1 "warn players when they kill without holding the ball"
+set g_keepaway_noncarrier_damage 1 "damage done to other players if both you and they don't have the ball"
+set g_keepaway_noncarrier_force 1 "force done to other players if both you and they don't have the ball"
set g_keepaway_noncarrier_selfdamage 1 "self damage if you don't have the ball"
set g_keepaway_noncarrier_selfforce 1 "self force if you don't have the ball"
+set g_keepawayball_effects 0 "Add together the numbers you want: EF_ADDITIVE (32) / EF_NODEPTHTEST (8192) / EF_DIMLIGHT (8)"
set g_keepawayball_trail_color 254 "particle trail color from player/ball"
-set g_keepawayball_damageforcescale 2 "Scale of force which is applied to the ball by weapons/explosions/etc"
-set g_keepawayball_respawntime 15 "if no one picks up the ball, how long to wait until the ball respawns"
+set g_keepawayball_damageforcescale 3 "Scale of force which is applied to the ball by weapons/explosions/etc"
+set g_keepawayball_respawntime 10 "if no one picks up the ball, how long to wait until the ball respawns"
seta g_keepaway_teams_override 0
set g_keepaway_teams 0
seta hud_panel_ammo_maxammo "40" "when you have this much ammo, the ammo status bar is full"
-seta hud_panel_healtharmor_maxhealth "250" "when you have this much health, the health status bar is full"
-seta hud_panel_healtharmor_maxarmor "150" "when you have this much armor, the armor status bar is full"
+seta hud_panel_healtharmor_maxhealth "200" "when you have this much health, the health status bar is full"
+seta hud_panel_healtharmor_maxarmor "200" "when you have this much armor, the armor status bar is full"
seta hud_panel_notify_time 10 "time that a new entry stays until it fades out"
seta hud_panel_notify_fadetime 3 "fade out time"
seta hud_colorflash_alpha 0.5 "starting alpha of the color flash"
-seta hud_damage 0.55 "an improved version of gl_polyblend, draw an image instead when hurt"
+seta hud_damage 0.55 "an improved version of gl_polyblend for damage, draw an image instead when hurt"
seta hud_damage_gentle_alpha_multiplier 0.10 "how much to multiply alpha of flash when using the cl_gentle version, it's much more opaque than the non-gentle version"
seta hud_damage_gentle_color "1 0.7 1" "color of flash for cl_gentle version"
seta hud_damage_color "1 0 0" "color of flash"
seta hud_damage_pain_threshold_pulsating_min 0.6 "minimum value when calculating the pulse: max(pulsating_min, fabs(sin(PI * time / period))"
seta hud_damage_pain_threshold_pulsating_period 0.8 "one pulse every X seconds"
+seta hud_contents 1 "an improved version of gl_polyblend for liquids such as water/lava/slime, draw a filler when inside the liquid"
+seta hud_contents_factor 1 "factor at which to multiply the current faded value."
+seta hud_contents_fadeintime 0.02 "factor of time it takes for the alpha level to reach normal value when entering the liquid"
+seta hud_contents_fadeouttime 0.1 "factor of time it takes for the alpha level to reach normal value when leaving the liquid"
+seta hud_contents_lava_alpha 0.7 "alpha of the lava color blend when inside it"
+seta hud_contents_lava_color "0.8 0.1 0"
+seta hud_contents_slime_alpha 0.7 "alpha of the slime color blend when inside it"
+seta hud_contents_slime_color "0 0.4 0.1"
+seta hud_contents_water_alpha 0.5 "alpha of the water color blend when inside it"
+seta hud_contents_water_color "0.4 0.3 0.3"
+
// scoreboard
seta scoreboard_columns default
seta scoreboard_border_thickness 1 "scoreboard border thickness"
set timelimit_decrement 5
set timelimit_min 5
set timelimit_max 60
-alias extendmatchtime "sv_cmd rpn /timelimit timelimit timelimit_max timelimit timelimit_increment add bound def"
-alias reducematchtime "sv_cmd rpn /timelimit timelimit timelimit_decrement sub timelimit_min timelimit bound def"
+alias extendmatchtime "sv_cmd extendmatchtime"
+alias reducematchtime "sv_cmd reducematchtime"
alias endmatch "timelimit -1"
// useful keybind to maximize the chat area temporarily
gl_texturecompression_q3bsplightmaps 0
gl_texturecompression_sky 1
-set menu_mouse_absolute 0 "TODO make this seta if the engine understands this right"
+seta menu_mouse_absolute 1 "use the OS mouse pointer motion for menu"
seta menu_mouse_speed 1 "speed multiplier for the mouse in the menu (does not affect in-game aiming)"
set menu_use_default_hostname 1
alias sethostname "set menu_use_default_hostname 0; hostname $*"
seta hud_fontsize 11
seta scr_centersize 12
seta hud_width 560
-// alias hud_font "loadfont user1 ${1},gfx/fallback ${2-}; loadfont user2 ${1}-big ${2-}; scoreboard_columns_set"
-alias sbar_font "set _requested_sbar_font \"${*}\""
-sbar_font gfx/vera-sans 8 12 16 24 32
// these entities are not referenced by anything directly, they just represent
// teams and are found by find() when needed
alias allready "sv_cmd allready"
-seta cl_weaponpriority "minstanex rocketlauncher nex minelayer grenadelauncher fireball hlac hagar seeker crylink sniperrifle uzi electro tuba shotgun laser hook porto" "weapon priority list"
+seta cl_weaponpriority "minstanex rocketlauncher nex grenadelauncher minelayer fireball hlac hagar seeker crylink sniperrifle uzi electro tuba shotgun laser hook porto" "weapon priority list"
seta cl_weaponpriority_useforcycling 0 "when set, weapon cycling by the mouse wheel makes use of the weapon priority list (the special value 2 uses the weapon ID list for cycling)"
seta cl_weaponpriority0 "rocketlauncher grenadelauncher hagar seeker fireball" "use impulse 200 for prev gun from this list, 210 for best gun, 220 for next gun. Default value: explosives"
seta cl_weaponpriority1 "minstanex nex crylink hlac electro laser" "use impulse 201 for prev gun from this list, 211 for best gun, 221 for next gun. Default value: energy"
seta cl_weaponpriority2 "minstanex nex sniperrifle" "use impulse 202 for prev gun from this list, 212 for best gun, 222 for next gun. Default value: hitscan exact"
seta cl_weaponpriority3 "minstanex nex sniperrifle uzi shotgun" "use impulse 203 for prev gun from this list, 213 for best gun, 223 for next gun. Default value: hitscan all"
-seta cl_weaponpriority4 "minelayer grenadelauncher hlac hagar crylink seeker shotgun" "use impulse 204 for prev gun from this list, 214 for best gun, 224 for next gun. Default value: spam weapons"
+seta cl_weaponpriority4 "grenadelauncher minelayer hlac hagar crylink seeker shotgun" "use impulse 204 for prev gun from this list, 214 for best gun, 224 for next gun. Default value: spam weapons"
seta cl_weaponpriority5 "laser hook porto" "use impulse 205 for prev gun from this list, 215 for best gun, 225 for next gun. Default value: weapons for moving"
seta cl_weaponpriority6 "" "use impulse 206 for prev gun from this list, 216 for best gun, 226 for next gun"
seta cl_weaponpriority7 "" "use impulse 207 for prev gun from this list, 217 for best gun, 227 for next gun"
set camera_speed_chase 4 "Camera movement speed on the x/y/z axis while chasing the player"
set camera_speed_free 8 "Camera movement speed on the x/y/z axis in free mode"
set camera_speed_attenuation 10 "Camera movements attenuation factor. Bigger is smoother. Applies to mouse movements"
-set camera_mouse_treshold 0.5 "Use to ignore small mouse movements. This allows for smoother camera control"
+set camera_mouse_threshold 0.5 "Use to ignore small mouse movements. This allows for smoother camera control"
set camera_chase_smoothly 0 "Attenuate player movements (only in chase mode)"
set camera_look_player 0 "Always look to the player. Mouse input is ignored in this mode"
set camera_look_attenuation 8 "Attenuation of \"looking\" movements, only if camera_look_player is set. Bigger is smoother"
seta g_ghost_items 1 "enable ghosted items (when between 0 and 1, overrides the alpha value)"
seta g_ghost_items_color "-1 -1 -1" "color of ghosted items, 0 0 0 leaves the color unchanged"
-set sv_weaponstats_damagefile "" "when set to a file name, per-weapon damage stats get written to that file"
-set sv_weaponstats_killfile "" "when set to a file name, per-weapon kill stats get written to that file"
+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"
set cl_lerpanim_maxdelta_framegroups 0.05 // must be faster than fastest weapon refire
set cl_lerpanim_maxdelta_server 0.1 // must be slower than slowest server controlled anim (e.g. animinfo stuff)
-// FIXME workaround for engine bug
-sv_gameplayfix_nudgeoutofsolid 0
-// to div0: remove this once 5b7ac1706712977bbc0297d2d53294e73574c7cd (svn r9537) is in the stable branch of the engine again
-
// otherwise, antilag breaks
sv_gameplayfix_consistentplayerprethink 1
scr_loadingscreen_background 0
scr_loadingscreen_barcolor "0 0.5 1"
-scr_loadingscreen_barheight 20
+scr_loadingscreen_barheight 12
scr_loadingscreen_count 1
scr_conforcewhiledisconnected 0
+scr_infobar_height 12
// DP cannot properly detect this, so rather turn off the detection
r_texture_dds_load_dxt1_noalpha 1
r_texture_dds_load_swdecode 1 // SW decode to quarter res if we want to load DDS but don't support the extension for it
+r_texture_dds_load_logfailure 0 // this engine feature SUCKS
+set vid_netwmfullscreen 0 // doesn't support non-native res
// particles optimization
r_drawparticles_nearclip_min 8
// uid2name
seta cl_allow_uid2name -1 "-1 = ask if the player wants to disable/enable this feature, 0 = disable, 1 = enable uid2name (allows showing your name in race rankings for instance)"
+seta cl_allow_uidtracking 1 "-1 = ask if the player wants to disable/enable this feature, 0 = disable, 1 = enable uid tracking (allows associating your data with your player ID)"
+// FIXME set to -1 before release, once we have a dialog for this!
// polygonoffset for submodel SUCKS SUCKS SUCKS (only a hack for quake1, we don't need that)
r_polygonoffset_submodel_offset 0
// player statistics server URI
set g_playerstats_uri ""
+set g_playerstats_debug 0 "when 1, player stats are dumped to the console too"
// create this cvar in case the engine did not
set snd_soundradius 1200
scr_loadingscreen_scale_base 1
scr_loadingscreen_scale_limit 1
+// sRGB configuration (EXPERIMENTAL, needs maps to be relit)
+alias sRGBcorrect_on "r_texture_sRGB_skin_diffuse 1;r_texture_sRGB_skin_gloss 1;r_texture_sRGB_skin_glow 1;r_texture_sRGB_reflect 1;r_texture_sRGB_skybox 1;v_gamma 2.2;r_restart"
+alias sRGBcorrect_off "r_texture_sRGB_skin_diffuse 0;r_texture_sRGB_skin_gloss 0;r_texture_sRGB_skin_glow 0;r_texture_sRGB_reflect 0;r_texture_sRGB_skybox 0;v_gamma 1.0;r_restart"
+
// other config files
exec balanceXonotic.cfg
exec ctfscoring-ai.cfg
exec effects-normal.cfg
exec physicsX0.cfg
exec turrets.cfg
-exec font-nimbussansl.cfg
// hud cvar descriptions
exec _hud_descriptions.cfg
countabsolute 1
type decal
tex 47 47
-size 8 8
+size 24 24
alpha 256 256 0
originjitter 12 12 12
-//lightradius 60
-//lightradiusfade 300
+//lightradius 200
+//lightradiusfade 800
//lightcolor 3.2 0.4 4
// purple flare effect
effect crylink_impact
type static
tex 39 39
color 0x504060 0x504060
-size 8 8
+size 24 24
alpha 256 256 512
// purple sparks
effect crylink_impact
-count 10
+count 40
type spark
tex 41 41
color 0xA040C0 0xA040C0
bounce 2
-size 1 2
+size 6 6
alpha 256 256 1024
-velocityjitter 256 256 256
+velocityjitter 512 512 512
// purple splash
effect crylink_impact
count 1.5
type static
color 0xE070FF 0xE070FF
-size 8 8
+size 16 16
alpha 256 256 512
-velocityjitter 8 8 8
+velocityjitter 32 32 32
// purple splash
effect crylink_impact
-count 1.5
+count 3
type static
color 0xE070FF 0xE070FF
-size 8 8
+size 16 16
alpha 256 256 1024
-velocityjitter 32 32 32
+velocityjitter 256 256 256
velocitymultiplier 15
airfriction -1
rotate 0 360 -180 180
+
+// seeker missile trail
+effect TR_SEEKER
+trailspacing 10
+type smoke
+notunderwater
+color 0x000000 0x666666
+tex 0 8
+size 2 2
+bounce 1
+sizeincrease 11
+alpha 200 300 200
+lightradius 100
+lighttime 0
+lightcolor 6 3 1
+originjitter 2 2 2
+velocityjitter 3 3 3
+velocitymultiplier -0.02
+rotate -180 180 -30 30
+//gravity -0.11
+// fire
+effect TR_SEEKER
+trailspacing 4
+type static
+color 0xffdf72 0x811200
+tex 48 55
+size 5 5
+sizeincrease -30
+alpha 100 144 588
+airfriction 8
+velocityjitter 32 32 32
+velocitymultiplier -1.5
+// bubbles
+effect TR_SEEKER
+type bubble
+underwater
+trailspacing 16
+tex 62 62
+size 1 2
+alpha 256 256 256
+gravity -0.125
+bounce 1.5
+liquidfriction 4
+velocityjitter 16 16 16
+velocitymultiplier -0.31
+rotate 0 0 0 0
+// sparks
+effect TR_SEEKER
+notunderwater
+trailspacing 20
+type spark
+tex 40 40
+color 0xFFFDD9 0xFFFDD9
+size 0.5 0.5
+alpha 444 512 1866
+stretchfactor 0.3
+//gravity 1
+bounce 1
+//velocityoffset 0 0 15
+airfriction 5
+originjitter 1 1 1
+velocityjitter 100 100 100
+velocitymultiplier -0.31
mod_q3bsp_nolightmaps 0
r_bloom 1
r_coronas 1
+r_coronas_occlusionquery 1
r_damageblur 0.4
r_depthfirst 2
r_drawdecals_drawdistance 500
mod_q3bsp_nolightmaps 1
r_bloom 0
r_coronas 1
+r_coronas_occlusionquery 0
r_damageblur 0
r_depthfirst 0
r_drawdecals_drawdistance 200
mod_q3bsp_nolightmaps 0
r_bloom 0
r_coronas 1
+r_coronas_occlusionquery 0
r_damageblur 0
r_depthfirst 0
r_drawdecals_drawdistance 300
mod_q3bsp_nolightmaps 0
r_bloom 0
r_coronas 1
+r_coronas_occlusionquery 0
r_damageblur 0
r_depthfirst 1
r_drawdecals_drawdistance 300
mod_q3bsp_nolightmaps 1
r_bloom 0
r_coronas 1
+r_coronas_occlusionquery 0
r_damageblur 0
r_depthfirst 0
r_drawdecals_drawdistance 100
mod_q3bsp_nolightmaps 0
r_bloom 1
r_coronas 1
+r_coronas_occlusionquery 1
r_damageblur 0.4
r_depthfirst 2
r_drawdecals_drawdistance 500
mod_q3bsp_nolightmaps 0
r_bloom 1
r_coronas 1
+r_coronas_occlusionquery 1
r_damageblur 0.4
r_depthfirst 2
r_drawdecals_drawdistance 500
COLOR_DIALOG_SINGLEPLAYER '1 1 1'
COLOR_DIALOG_CREDITS '1 1 1'
COLOR_DIALOG_WEAPONS '1 1 1'
-COLOR_DIALOG_RADAR '1 1 1'
+COLOR_DIALOG_WAYPOINTS '1 1 1'
COLOR_DIALOG_SERVERINFO '1 1 1'
COLOR_DIALOG_CVARS '1 0 0'
COLOR_DIALOG_SINGLEPLAYER '1 1 1'
COLOR_DIALOG_CREDITS '1 1 1'
COLOR_DIALOG_WEAPONS '1 1 1'
-COLOR_DIALOG_RADAR '1 1 1'
+COLOR_DIALOG_WAYPOINTS '1 1 1'
COLOR_DIALOG_SERVERINFO '1 1 1'
COLOR_DIALOG_CVARS '1 0 0'
COLOR_DIALOG_SINGLEPLAYER '1 1 1'
COLOR_DIALOG_CREDITS '1 1 1'
COLOR_DIALOG_WEAPONS '1 1 1'
-COLOR_DIALOG_RADAR '1 1 1'
+COLOR_DIALOG_WAYPOINTS '1 1 1'
COLOR_DIALOG_SERVERINFO '1 1 1'
COLOR_DIALOG_CVARS '1 0 0'
// after exec'ing them all from your autoexec.cfg
// Set the cvars for each gun
-seta cl_swapattacks_tuba 0
seta cl_swapattacks_laser 0
seta cl_swapattacks_shotgun 0
seta cl_swapattacks_uzi 0
-seta cl_swapattacks_sniperrifle 0
seta cl_swapattacks_grenadelauncher 0
+seta cl_swapattacks_minelayer 0
seta cl_swapattacks_electro 0
-seta cl_swapattacks_hlac 0
seta cl_swapattacks_crylink 0
-seta cl_swapattacks_minstanex 0
seta cl_swapattacks_nex 0
seta cl_swapattacks_hagar 0
-seta cl_swapattacks_seeker 0
-seta cl_swapattacks_fireball 0
seta cl_swapattacks_rocketlauncher 0
-seta cl_swapattacks_hook 0
seta cl_swapattacks_porto 0
+seta cl_swapattacks_minstanex 0
+seta cl_swapattacks_hook 0
+seta cl_swapattacks_hlac 0
+seta cl_swapattacks_tuba 0
+seta cl_swapattacks_sniperrifle 0
+seta cl_swapattacks_fireball 0
+seta cl_swapattacks_seeker 0
// This part of the code is necessary to keep us firing when we switch weapons while holding a fire button pressed
// Also updates the keys before firing, so we don't have to switch to another weapon and back to apply the changes
seta hud_skin "luminos"
-seta hud_panel_bg "border_default"
-seta hud_panel_bg_color "1 0.4375 0"
-seta hud_panel_bg_color_team "0"
+seta hud_panel_bg "0"
+seta hud_panel_bg_color "0.6875 0.84375 1"
+seta hud_panel_bg_color_team "1"
seta hud_panel_bg_alpha "1"
seta hud_panel_bg_border "8"
seta hud_panel_bg_padding "2"
seta hud_panel_fg_alpha "1"
-seta hud_dock "dock"
-seta hud_dock_color "0 0.1875 0.40625"
-seta hud_dock_color_team "0.700000"
+seta hud_dock "0"
+seta hud_dock_color "0 0.449576 0.860796"
+seta hud_dock_color_team "1"
seta hud_dock_alpha "1"
seta hud_progressbar_alpha "0.500000"
seta hud_progressbar_fuel_color "0.6 0.6 0"
seta hud_progressbar_nexball_color "0.7 0.1 0"
-seta _hud_panelorder "10 9 6 8 14 5 0 4 13 2 7 1 3 11 12 "
+seta _hud_panelorder "12 9 10 5 6 14 0 7 4 11 2 1 3 8 13 "
seta hud_configure_grid "1"
seta hud_configure_grid_xsize "0.010000"
seta scr_centerpos "0.25"
seta hud_panel_weapons 1
-seta hud_panel_weapons_pos "0.920000 0.090000"
-seta hud_panel_weapons_size "0.060000 0.630000"
-seta hud_panel_weapons_bg ""
+seta hud_panel_weapons_pos "0.940000 0.180000"
+seta hud_panel_weapons_size "0.060000 0.610000"
+seta hud_panel_weapons_bg "border_small_weapons"
seta hud_panel_weapons_bg_color ""
seta hud_panel_weapons_bg_color_team ""
seta hud_panel_weapons_bg_alpha ""
seta hud_panel_weapons_ammo_alpha "1"
seta hud_panel_weapons_aspect "2"
seta hud_panel_weapons_timeout "3"
-seta hud_panel_weapons_timeout_effect "1"
+seta hud_panel_weapons_timeout_effect "2"
seta hud_panel_ammo 1
-seta hud_panel_ammo_pos "0.190000 0.920000"
-seta hud_panel_ammo_size "0.120000 0.070000"
+seta hud_panel_ammo_pos "0.330000 0.960000"
+seta hud_panel_ammo_size "0.350000 0.040000"
seta hud_panel_ammo_bg ""
seta hud_panel_ammo_bg_color ""
seta hud_panel_ammo_bg_color_team ""
seta hud_panel_ammo_onlycurrent "0"
seta hud_panel_ammo_iconalign "0"
seta hud_panel_ammo_progressbar "0"
-seta hud_panel_ammo_progressbar_xoffset "0"
seta hud_panel_ammo_progressbar_name "progressbar"
+seta hud_panel_ammo_progressbar_xoffset "0"
seta hud_panel_ammo_text "1"
seta hud_panel_powerups 1
-seta hud_panel_powerups_pos "0.660000 0.940000"
-seta hud_panel_powerups_size "0.330000 0.060000"
-seta hud_panel_powerups_bg "0"
+seta hud_panel_powerups_pos "0.360000 0.850000"
+seta hud_panel_powerups_size "0.290000 0.030000"
+seta hud_panel_powerups_bg "border_small_powerups"
seta hud_panel_powerups_bg_color ""
seta hud_panel_powerups_bg_color_team ""
seta hud_panel_powerups_bg_alpha ""
seta hud_panel_powerups_bg_border ""
-seta hud_panel_powerups_bg_padding ""
-seta hud_panel_powerups_flip "1"
+seta hud_panel_powerups_bg_padding "0"
+seta hud_panel_powerups_flip "0"
seta hud_panel_powerups_iconalign "4"
seta hud_panel_powerups_baralign "4"
seta hud_panel_powerups_progressbar "1"
seta hud_panel_powerups_text "1"
seta hud_panel_healtharmor 1
-seta hud_panel_healtharmor_pos "0.330000 0.920000"
-seta hud_panel_healtharmor_size "0.310000 0.070000"
-seta hud_panel_healtharmor_bg ""
+seta hud_panel_healtharmor_pos "0.320000 0.910000"
+seta hud_panel_healtharmor_size "0.370000 0.060000"
+seta hud_panel_healtharmor_bg "border_small_healtharmor"
seta hud_panel_healtharmor_bg_color ""
seta hud_panel_healtharmor_bg_color_team ""
seta hud_panel_healtharmor_bg_alpha ""
seta hud_panel_healtharmor_text "1"
seta hud_panel_notify 1
-seta hud_panel_notify_pos "0.660000 0.730000"
-seta hud_panel_notify_size "0.320000 0.190000"
+seta hud_panel_notify_pos "0.710000 0.800000"
+seta hud_panel_notify_size "0.290000 0.190000"
seta hud_panel_notify_bg "0"
seta hud_panel_notify_bg_color ""
seta hud_panel_notify_bg_color_team ""
seta hud_panel_notify_bg_border ""
seta hud_panel_notify_bg_padding ""
seta hud_panel_notify_flip "0"
+seta hud_panel_notify_fontsize "0.8"
seta hud_panel_notify_print "1"
seta hud_panel_timer 1
-seta hud_panel_timer_pos "0.870000 0"
-seta hud_panel_timer_size "0.130000 0.060000"
-seta hud_panel_timer_bg "0"
+seta hud_panel_timer_pos "0.800000 0.040000"
+seta hud_panel_timer_size "0.070000 0.040000"
+seta hud_panel_timer_bg "border_small_timer"
seta hud_panel_timer_bg_color ""
seta hud_panel_timer_bg_color_team ""
seta hud_panel_timer_bg_alpha ""
seta hud_panel_timer_bg_border ""
seta hud_panel_timer_bg_padding "0"
-seta hud_panel_radar 1
-seta hud_panel_radar_pos "0.030000 0.020000"
-seta hud_panel_radar_size "0.170000 0.220000"
-seta hud_panel_radar_bg ""
+seta hud_panel_radar 2
+seta hud_panel_radar_pos "0 0"
+seta hud_panel_radar_size "0.200000 0.240000"
+seta hud_panel_radar_bg "border_small_radar"
seta hud_panel_radar_bg_color ""
seta hud_panel_radar_bg_color_team ""
-seta hud_panel_radar_bg_alpha ""
+seta hud_panel_radar_bg_alpha "0.800000"
seta hud_panel_radar_bg_border ""
-seta hud_panel_radar_bg_padding "-3"
+seta hud_panel_radar_bg_padding "-1"
seta hud_panel_radar_foreground_alpha "0.800000"
seta hud_panel_score 1
-seta hud_panel_score_pos "0.020000 0.920000"
-seta hud_panel_score_size "0.150000 0.070000"
-seta hud_panel_score_bg ""
+seta hud_panel_score_pos "0.890000 0.030000"
+seta hud_panel_score_size "0.100000 0.050000"
+seta hud_panel_score_bg "border_small_score"
seta hud_panel_score_bg_color ""
seta hud_panel_score_bg_color_team ""
seta hud_panel_score_bg_alpha ""
seta hud_panel_score_bg_border ""
-seta hud_panel_score_bg_padding ""
+seta hud_panel_score_bg_padding "0"
seta hud_panel_racetimer 1
-seta hud_panel_racetimer_pos "0.360000 0.090000"
+seta hud_panel_racetimer_pos "0.360000 0.110000"
seta hud_panel_racetimer_size "0.280000 0.090000"
seta hud_panel_racetimer_bg "0"
seta hud_panel_racetimer_bg_color ""
seta hud_panel_racetimer_bg_padding ""
seta hud_panel_vote 1
-seta hud_panel_vote_pos "0.020000 0.650000"
-seta hud_panel_vote_size "0.230000 0.110000"
-seta hud_panel_vote_bg ""
+seta hud_panel_vote_pos "0.710000 0.660000"
+seta hud_panel_vote_size "0.210000 0.100000"
+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 ""
seta hud_panel_vote_bg_border ""
seta hud_panel_vote_bg_padding ""
-seta hud_panel_vote_alreadyvoted_alpha "0.800000"
+seta hud_panel_vote_alreadyvoted_alpha "0.500000"
seta hud_panel_modicons 1
-seta hud_panel_modicons_pos "0.040000 0.270000"
-seta hud_panel_modicons_size "0.080000 0.200000"
-seta hud_panel_modicons_bg ""
+seta hud_panel_modicons_pos "0.410000 0"
+seta hud_panel_modicons_size "0.180000 0.080000"
+seta hud_panel_modicons_bg "border_small_modicons"
seta hud_panel_modicons_bg_color ""
seta hud_panel_modicons_bg_color_team ""
seta hud_panel_modicons_bg_alpha ""
seta hud_panel_modicons_bg_border ""
-seta hud_panel_modicons_bg_padding ""
+seta hud_panel_modicons_bg_padding "0"
seta hud_panel_pressedkeys 1
-seta hud_panel_pressedkeys_pos "0.410000 0.710000"
-seta hud_panel_pressedkeys_size "0.180000 0.130000"
+seta hud_panel_pressedkeys_pos "0.450000 0.720000"
+seta hud_panel_pressedkeys_size "0.110000 0.090000"
seta hud_panel_pressedkeys_bg "0"
seta hud_panel_pressedkeys_bg_color ""
seta hud_panel_pressedkeys_bg_color_team ""
seta hud_panel_pressedkeys_aspect "1.600000"
seta hud_panel_chat 1
-seta hud_panel_chat_pos "0.020000 0.780000"
-seta hud_panel_chat_size "0.630000 0.110000"
+seta hud_panel_chat_pos "0.010000 0.700000"
+seta hud_panel_chat_size "0.460000 0.190000"
seta hud_panel_chat_bg "0"
seta hud_panel_chat_bg_color ""
seta hud_panel_chat_bg_color_team ""
seta hud_panel_chat_bg_padding ""
seta hud_panel_engineinfo 0
-seta hud_panel_engineinfo_pos "0.910000 0.970000"
-seta hud_panel_engineinfo_size "0.090000 0.030000"
+seta hud_panel_engineinfo_pos "0.930000 0.970000"
+seta hud_panel_engineinfo_size "0.070000 0.030000"
seta hud_panel_engineinfo_bg "0"
seta hud_panel_engineinfo_bg_color ""
seta hud_panel_engineinfo_bg_color_team ""
seta hud_panel_engineinfo_bg_padding ""
seta hud_panel_infomessages 1
-seta hud_panel_infomessages_pos "0.510000 0"
-seta hud_panel_infomessages_size "0.340000 0.090000"
+seta hud_panel_infomessages_pos "0.720000 0.100000"
+seta hud_panel_infomessages_size "0.280000 0.080000"
seta hud_panel_infomessages_bg "0"
seta hud_panel_infomessages_bg_color ""
seta hud_panel_infomessages_bg_color_team ""
seta hud_panel_notify_bg_border ""
seta hud_panel_notify_bg_padding ""
seta hud_panel_notify_flip "1"
+seta hud_panel_notify_fontsize "0.8"
seta hud_panel_notify_print "0"
seta hud_panel_timer 1
--- /dev/null
+seta hud_skin "luminos"
+seta hud_panel_bg "border_default"
+seta hud_panel_bg_color "1 0.4375 0"
+seta hud_panel_bg_color_team "0"
+seta hud_panel_bg_alpha "1"
+seta hud_panel_bg_border "8"
+seta hud_panel_bg_padding "2"
+seta hud_panel_fg_alpha "1"
+
+seta hud_dock "dock"
+seta hud_dock_color "0 0.1875 0.40625"
+seta hud_dock_color_team "0.700000"
+seta hud_dock_alpha "1"
+
+seta hud_progressbar_alpha "0.500000"
+seta hud_progressbar_strength_color "0 0 0.6"
+seta hud_progressbar_shield_color "0.6 0 0.6"
+seta hud_progressbar_health_color "0.6 0 0"
+seta hud_progressbar_armor_color "0 0.6 0"
+seta hud_progressbar_fuel_color "0.6 0.6 0"
+seta hud_progressbar_nexball_color "0.7 0.1 0"
+
+seta _hud_panelorder "10 9 6 8 14 5 0 4 13 2 7 1 3 11 12 "
+
+seta hud_configure_grid "1"
+seta hud_configure_grid_xsize "0.010000"
+seta hud_configure_grid_ysize "0.010000"
+
+seta scr_centerpos "0.25"
+
+seta hud_panel_weapons 1
+seta hud_panel_weapons_pos "0.920000 0.090000"
+seta hud_panel_weapons_size "0.060000 0.630000"
+seta hud_panel_weapons_bg ""
+seta hud_panel_weapons_bg_color ""
+seta hud_panel_weapons_bg_color_team ""
+seta hud_panel_weapons_bg_alpha ""
+seta hud_panel_weapons_bg_border ""
+seta hud_panel_weapons_bg_padding ""
+seta hud_panel_weapons_complainbubble "1"
+seta hud_panel_weapons_complainbubble_padding "-10"
+seta hud_panel_weapons_complainbubble_color_outofammo "0.8 0 0"
+seta hud_panel_weapons_complainbubble_color_donthave "0.8 0.5 0"
+seta hud_panel_weapons_complainbubble_color_unavailable "0 0.3 0.8"
+seta hud_panel_weapons_ammo_color "0 1 0"
+seta hud_panel_weapons_ammo_alpha "1"
+seta hud_panel_weapons_aspect "2"
+seta hud_panel_weapons_timeout "3"
+seta hud_panel_weapons_timeout_effect "1"
+
+seta hud_panel_ammo 1
+seta hud_panel_ammo_pos "0.190000 0.920000"
+seta hud_panel_ammo_size "0.120000 0.070000"
+seta hud_panel_ammo_bg ""
+seta hud_panel_ammo_bg_color ""
+seta hud_panel_ammo_bg_color_team ""
+seta hud_panel_ammo_bg_alpha ""
+seta hud_panel_ammo_bg_border ""
+seta hud_panel_ammo_bg_padding ""
+seta hud_panel_ammo_onlycurrent "0"
+seta hud_panel_ammo_iconalign "0"
+seta hud_panel_ammo_progressbar "0"
+seta hud_panel_ammo_progressbar_xoffset "0"
+seta hud_panel_ammo_progressbar_name "progressbar"
+seta hud_panel_ammo_text "1"
+
+seta hud_panel_powerups 1
+seta hud_panel_powerups_pos "0.660000 0.940000"
+seta hud_panel_powerups_size "0.330000 0.060000"
+seta hud_panel_powerups_bg "0"
+seta hud_panel_powerups_bg_color ""
+seta hud_panel_powerups_bg_color_team ""
+seta hud_panel_powerups_bg_alpha ""
+seta hud_panel_powerups_bg_border ""
+seta hud_panel_powerups_bg_padding ""
+seta hud_panel_powerups_flip "1"
+seta hud_panel_powerups_iconalign "4"
+seta hud_panel_powerups_baralign "4"
+seta hud_panel_powerups_progressbar "1"
+seta hud_panel_powerups_progressbar_strength "progressbar"
+seta hud_panel_powerups_progressbar_shield "progressbar"
+seta hud_panel_powerups_text "1"
+
+seta hud_panel_healtharmor 1
+seta hud_panel_healtharmor_pos "0.330000 0.920000"
+seta hud_panel_healtharmor_size "0.310000 0.070000"
+seta hud_panel_healtharmor_bg ""
+seta hud_panel_healtharmor_bg_color ""
+seta hud_panel_healtharmor_bg_color_team ""
+seta hud_panel_healtharmor_bg_alpha ""
+seta hud_panel_healtharmor_bg_border ""
+seta hud_panel_healtharmor_bg_padding ""
+seta hud_panel_healtharmor_flip "0"
+seta hud_panel_healtharmor_iconalign "4"
+seta hud_panel_healtharmor_baralign "4"
+seta hud_panel_healtharmor_progressbar "1"
+seta hud_panel_healtharmor_progressbar_health "progressbar"
+seta hud_panel_healtharmor_progressbar_armor "progressbar"
+seta hud_panel_healtharmor_text "1"
+
+seta hud_panel_notify 1
+seta hud_panel_notify_pos "0.660000 0.730000"
+seta hud_panel_notify_size "0.320000 0.190000"
+seta hud_panel_notify_bg "0"
+seta hud_panel_notify_bg_color ""
+seta hud_panel_notify_bg_color_team ""
+seta hud_panel_notify_bg_alpha ""
+seta hud_panel_notify_bg_border ""
+seta hud_panel_notify_bg_padding ""
+seta hud_panel_notify_flip "0"
+seta hud_panel_notify_fontsize "0.8"
+seta hud_panel_notify_print "1"
+
+seta hud_panel_timer 1
+seta hud_panel_timer_pos "0.870000 0"
+seta hud_panel_timer_size "0.130000 0.060000"
+seta hud_panel_timer_bg "0"
+seta hud_panel_timer_bg_color ""
+seta hud_panel_timer_bg_color_team ""
+seta hud_panel_timer_bg_alpha ""
+seta hud_panel_timer_bg_border ""
+seta hud_panel_timer_bg_padding "0"
+
+seta hud_panel_radar 2 // enabled for keepaway and to make the HUD consistent throughout game modes
+seta hud_panel_radar_pos "0.030000 0.020000"
+seta hud_panel_radar_size "0.170000 0.220000"
+seta hud_panel_radar_bg ""
+seta hud_panel_radar_bg_color ""
+seta hud_panel_radar_bg_color_team ""
+seta hud_panel_radar_bg_alpha ""
+seta hud_panel_radar_bg_border ""
+seta hud_panel_radar_bg_padding "-3"
+seta hud_panel_radar_foreground_alpha "0.800000"
+
+seta hud_panel_score 1
+seta hud_panel_score_pos "0.020000 0.920000"
+seta hud_panel_score_size "0.150000 0.070000"
+seta hud_panel_score_bg ""
+seta hud_panel_score_bg_color ""
+seta hud_panel_score_bg_color_team ""
+seta hud_panel_score_bg_alpha ""
+seta hud_panel_score_bg_border ""
+seta hud_panel_score_bg_padding ""
+
+seta hud_panel_racetimer 1
+seta hud_panel_racetimer_pos "0.360000 0.090000"
+seta hud_panel_racetimer_size "0.280000 0.090000"
+seta hud_panel_racetimer_bg "0"
+seta hud_panel_racetimer_bg_color ""
+seta hud_panel_racetimer_bg_color_team ""
+seta hud_panel_racetimer_bg_alpha ""
+seta hud_panel_racetimer_bg_border ""
+seta hud_panel_racetimer_bg_padding ""
+
+seta hud_panel_vote 1
+seta hud_panel_vote_pos "0.020000 0.650000"
+seta hud_panel_vote_size "0.230000 0.110000"
+seta hud_panel_vote_bg ""
+seta hud_panel_vote_bg_color ""
+seta hud_panel_vote_bg_color_team ""
+seta hud_panel_vote_bg_alpha ""
+seta hud_panel_vote_bg_border ""
+seta hud_panel_vote_bg_padding ""
+seta hud_panel_vote_alreadyvoted_alpha "0.800000"
+
+seta hud_panel_modicons 1
+seta hud_panel_modicons_pos "0.040000 0.270000"
+seta hud_panel_modicons_size "0.080000 0.200000"
+seta hud_panel_modicons_bg ""
+seta hud_panel_modicons_bg_color ""
+seta hud_panel_modicons_bg_color_team ""
+seta hud_panel_modicons_bg_alpha ""
+seta hud_panel_modicons_bg_border ""
+seta hud_panel_modicons_bg_padding ""
+
+seta hud_panel_pressedkeys 1
+seta hud_panel_pressedkeys_pos "0.410000 0.710000"
+seta hud_panel_pressedkeys_size "0.180000 0.130000"
+seta hud_panel_pressedkeys_bg "0"
+seta hud_panel_pressedkeys_bg_color ""
+seta hud_panel_pressedkeys_bg_color_team ""
+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_chat 1
+seta hud_panel_chat_pos "0.020000 0.780000"
+seta hud_panel_chat_size "0.630000 0.110000"
+seta hud_panel_chat_bg "0"
+seta hud_panel_chat_bg_color ""
+seta hud_panel_chat_bg_color_team ""
+seta hud_panel_chat_bg_alpha ""
+seta hud_panel_chat_bg_border ""
+seta hud_panel_chat_bg_padding ""
+
+seta hud_panel_engineinfo 0
+seta hud_panel_engineinfo_pos "0.910000 0.970000"
+seta hud_panel_engineinfo_size "0.090000 0.030000"
+seta hud_panel_engineinfo_bg "0"
+seta hud_panel_engineinfo_bg_color ""
+seta hud_panel_engineinfo_bg_color_team ""
+seta hud_panel_engineinfo_bg_alpha ""
+seta hud_panel_engineinfo_bg_border ""
+seta hud_panel_engineinfo_bg_padding ""
+
+seta hud_panel_infomessages 1
+seta hud_panel_infomessages_pos "0.510000 0"
+seta hud_panel_infomessages_size "0.340000 0.090000"
+seta hud_panel_infomessages_bg "0"
+seta hud_panel_infomessages_bg_color ""
+seta hud_panel_infomessages_bg_color_team ""
+seta hud_panel_infomessages_bg_alpha ""
+seta hud_panel_infomessages_bg_border ""
+seta hud_panel_infomessages_bg_padding "0"
+seta hud_panel_infomessages_flip "1"
+
+menu_sync
seta hud_panel_powerups_progressbar "1"
seta hud_panel_powerups_progressbar_strength "progressbar"
seta hud_panel_powerups_progressbar_shield "progressbar"
+seta hud_panel_powerups_text "0"
seta hud_panel_healtharmor 1
seta hud_panel_healtharmor_pos "0.350000 0.380000"
seta hud_panel_notify_bg_border ""
seta hud_panel_notify_bg_padding ""
seta hud_panel_notify_flip "1"
+seta hud_panel_notify_fontsize "0.8"
seta hud_panel_notify_print "0"
seta hud_panel_timer 1
seta hud_panel_notify_bg_border ""
seta hud_panel_notify_bg_padding ""
seta hud_panel_notify_flip "0"
+seta hud_panel_notify_fontsize "1"
seta hud_panel_notify_print "1"
seta hud_panel_timer 1
// Then, grab a Tuba, then play notes on your MIDI keyboard!
//
// If you have no keyboard input, you can map the tuba notes to your keyboard:
+// for German keyboard layout
// in_bindmap 3 0
-// for US keyboard layout, and
+// for US keyboard layout
// in_bindmap 4 0
-// for German keyboard layout
alias +tuba_l "+moveleft; +tuba_$*"
alias -tuba_l "-moveleft; -tuba_$*"
"weaplast" "previously used"
"weapbest" "best"
"reload" "reload"
-"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"
+"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"
"" ""
"" "View"
"+zoom" "hold zoom"
--- /dev/null
+"" "Bewegung"
+"+forward" "vorwärts"
+"+back" "rückwärts"
+"+moveleft" "links"
+"+moveright" "rechts"
+"+jump" "springen / schwimmen"
+"+crouch" "ducken / sinken"
+"+hook" "Enterhaken / Jetpack"
+"" ""
+"" "Angriff"
+"+fire" "1. Feuermodus"
+"+fire2" "2. Feuermodus"
+"" ""
+"" "Waffe wechseln"
+"weapprev" "vorherige"
+"weapnext" "nächste"
+"weaplast" "zuletzt benutzte"
+"weapbest" "beste"
+"reload" "nachladen"
+"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"
+"" ""
+"" "Anzeige"
+"+zoom" "Vergrößern (festhalten)"
+"togglezoom" "Vergrößern (umschalten)"
+"+showscores" "Tabelle anzeigen"
+"screenshot" "Bildschirmfoto"
+"" ""
+"" "Kommunikation"
+"messagemode" "Nachricht an alle"
+"messagemode2" "Nachricht ans Team"
+"+con_chat_maximize" "Chat-Historie zeigen"
+"vyes" "Abstimmung: JA"
+"vno" "Abstimmung: Nein"
+"ready" "Bereitschaft signalisieren"
+"" ""
+"" "Client"
+"+show_info" "Serverinfo anzeigen"
+"toggleconsole" "Konsole öffnen"
+"disconnect" "Verbindung trennen"
+"quit" "Beenden"
+"" ""
+"" "Teamplay"
+"messagemode2" "Nachricht ans Team"
+"team_auto" "Team automatisch wählen"
+"menu_showteamselect" "Team auswählen"
+"spec" "Zuschauen"
+"dropweapon" "Waffe wegwerfen"
+"+use" "Schlüssel oder Flagge wegwerfen"
+"" ""
+"" "Benutzerdefiniert"
+"+userbind 1" "$userbind1"
+"+userbind 2" "$userbind2"
+"+userbind 3" "$userbind3"
+"+userbind 4" "$userbind4"
+"+userbind 5" "$userbind5"
+"+userbind 6" "$userbind6"
+"+userbind 7" "$userbind7"
+"+userbind 8" "$userbind8"
+"+userbind 9" "$userbind9"
+"+userbind 10" "$userbind10"
+"+userbind 11" "$userbind11"
+"+userbind 12" "$userbind12"
+"+userbind 13" "$userbind13"
+"+userbind 14" "$userbind14"
+"+userbind 15" "$userbind15"
+"+userbind 16" "$userbind16"
+"+userbind 17" "$userbind17"
+"+userbind 18" "$userbind18"
+"+userbind 19" "$userbind19"
+"+userbind 20" "$userbind20"
+"+userbind 21" "$userbind21"
+"+userbind 22" "$userbind22"
+"+userbind 23" "$userbind23"
+"+userbind 24" "$userbind24"
+"+userbind 25" "$userbind25"
+"+userbind 26" "$userbind26"
+"+userbind 27" "$userbind27"
+"+userbind 28" "$userbind28"
+"+userbind 29" "$userbind29"
+"+userbind 30" "$userbind30"
+"+userbind 31" "$userbind31"
+"+userbind 32" "$userbind32"
--- /dev/null
+"" "Movimiento"
+"+forward" "adelante"
+"+back" "atrás"
+"+moveleft" "izquierda"
+"+moveright" "derecha"
+"+jump" "saltar / nadar"
+"+crouch" "agacharse / bajar"
+"+hook" "gancho / jet pack"
+"" ""
+"" "Ataque"
+"+fire" "ataque primario"
+"+fire2" "ataque secundario"
+"" ""
+"" "Cambio de arma"
+"weapprev" "anterior"
+"weapnext" "siguiente"
+"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"
+"" ""
+"" "Vista"
+"+zoom" "mantener zoom"
+"togglezoom" "cambiar zoom"
+"+showscores" "mostrar puntaje"
+"screenshot" "captura de pantalla"
+"" ""
+"" "Communicación"
+"messagemode" "chat público"
+"messagemode2" "chat de equipo"
+"+con_chat_maximize" "mostrar historial del chat"
+"vyes" "votar SI"
+"vno" "votar NO"
+"ready" "preparado"
+"" ""
+"" "Cliente"
+"+show_info" "información del servidor"
+"toggleconsole" "entrar en la consola"
+"disconnect" "desconectar"
+"quit" "salir"
+"" ""
+"" "Juego en equipo"
+"messagemode2" "chat de equipo"
+"team_auto" "unirse al equipo automáticamente"
+"menu_showteamselect" "menu de equipo"
+"spec" "entrar al modo espectador"
+"dropweapon" "soltar arma"
+"+use" "soltar llave / soltar bandera"
+"" ""
+"" "Definido por el usuario"
+"+userbind 1" "$userbind1"
+"+userbind 2" "$userbind2"
+"+userbind 3" "$userbind3"
+"+userbind 4" "$userbind4"
+"+userbind 5" "$userbind5"
+"+userbind 6" "$userbind6"
+"+userbind 7" "$userbind7"
+"+userbind 8" "$userbind8"
+"+userbind 9" "$userbind9"
+"+userbind 10" "$userbind10"
+"+userbind 11" "$userbind11"
+"+userbind 12" "$userbind12"
+"+userbind 13" "$userbind13"
+"+userbind 14" "$userbind14"
+"+userbind 15" "$userbind15"
+"+userbind 16" "$userbind16"
+"+userbind 17" "$userbind17"
+"+userbind 18" "$userbind18"
+"+userbind 19" "$userbind19"
+"+userbind 20" "$userbind20"
+"+userbind 21" "$userbind21"
+"+userbind 22" "$userbind22"
+"+userbind 23" "$userbind23"
+"+userbind 24" "$userbind24"
+"+userbind 25" "$userbind25"
+"+userbind 26" "$userbind26"
+"+userbind 27" "$userbind27"
+"+userbind 28" "$userbind28"
+"+userbind 29" "$userbind29"
+"+userbind 30" "$userbind30"
+"+userbind 31" "$userbind31"
+"+userbind 32" "$userbind32"
--- /dev/null
+"" "Mouvement"
+"+forward" "avancer"
+"+back" "reculer"
+"+moveleft" "gauche"
+"+moveright" "droite"
+"+jump" "sauter / nager"
+"+crouch" "s'accroupir / couler"
+"+hook" "grappin / jet pack"
+"" ""
+"" "Attaque"
+"+fire" "tir primaire"
+"+fire2" "tir secondaire"
+"" ""
+"" "Changement d'armes"
+"weapprev" "arme précédente"
+"weapnext" "arme suivante"
+"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"
+"" ""
+"" "Vue"
+"+zoom" "zoom clic enfoncé"
+"togglezoom" "zoom 2 clics"
+"+showscores" "montrer les scores (enfoncé)"
+"screenshot" "capture d'écran"
+"" ""
+"" "Communiquer"
+"messagemode" "chat public"
+"messagemode2" "chat d'équipe"
+"+con_chat_maximize" "historique du chat (enfoncé)"
+"vyes" "voter OUI"
+"vno" "voter NON"
+"ready" "prêt (en mode échauffement)"
+"" ""
+"" "Joueur"
+"+show_info" "information serveur"
+"toggleconsole" "ouvrir la console"
+"disconnect" "se déconnecter"
+"quit" "quitter"
+"" ""
+"" "Équipe"
+"messagemode2" "chat d'équipe"
+"team_auto" "auto-joindre une équipe"
+"menu_showteamselect" "séléction d'équipe"
+"spec" "mode spectateur"
+"dropweapon" "lâcher l'arme"
+"+use" "lâcher la clé / lâcher le drapeau"
+"" ""
+"" "Utilisateur"
+"+userbind 1" "$userbind1"
+"+userbind 2" "$userbind2"
+"+userbind 3" "$userbind3"
+"+userbind 4" "$userbind4"
+"+userbind 5" "$userbind5"
+"+userbind 6" "$userbind6"
+"+userbind 7" "$userbind7"
+"+userbind 8" "$userbind8"
+"+userbind 9" "$userbind9"
+"+userbind 10" "$userbind10"
+"+userbind 11" "$userbind11"
+"+userbind 12" "$userbind12"
+"+userbind 13" "$userbind13"
+"+userbind 14" "$userbind14"
+"+userbind 15" "$userbind15"
+"+userbind 16" "$userbind16"
+"+userbind 17" "$userbind17"
+"+userbind 18" "$userbind18"
+"+userbind 19" "$userbind19"
+"+userbind 20" "$userbind20"
+"+userbind 21" "$userbind21"
+"+userbind 22" "$userbind22"
+"+userbind 23" "$userbind23"
+"+userbind 24" "$userbind24"
+"+userbind 25" "$userbind25"
+"+userbind 26" "$userbind26"
+"+userbind 27" "$userbind27"
+"+userbind 28" "$userbind28"
+"+userbind 29" "$userbind29"
+"+userbind 30" "$userbind30"
+"+userbind 31" "$userbind31"
+"+userbind 32" "$userbind32"
--- /dev/null
+"" "Движение"
+"+forward" "вперёд"
+"+back" "назад"
+"+moveleft" "влево"
+"+moveright" "вправо"
+"+jump" "прыжок / плыть"
+"+crouch" "пригнуться / погрузиться"
+"+hook" "крюк / реактивный ранец"
+"" ""
+"" "Нападение"
+"+fire" "основной огонь"
+"+fire2" "дополнительный огонь"
+"" ""
+"" "Переключение оружия"
+"weapprev" "предыдущее"
+"weapnext" "следующее"
+"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"
+"" ""
+"" "Вид"
+"+zoom" "увеличение"
+"togglezoom" "переключить увеличение"
+"+showscores" "показать очки"
+"screenshot" "снимок экрана"
+"" ""
+"" "Общение"
+"messagemode" "общий чат"
+"messagemode2" "чат команды"
+"+con_chat_maximize" "показать историю чата"
+"vyes" "голосовать ДА"
+"vno" "голосовать НЕТ"
+"ready" "готовность"
+"" ""
+"" "Клиент"
+"+show_info" "сведения о сервере"
+"toggleconsole" "открыть консоль"
+"disconnect" "отключиться"
+"quit" "выйти"
+"" ""
+"" "Командная игра"
+"messagemode2" "чат команды"
+"team_auto" "авто-выбор команды"
+"menu_showteamselect" "меню команды"
+"spec" "стать наблюдателем"
+"dropweapon" "бросить оружие"
+"+use" "бросить ключ или флаг"
+"" ""
+"" "Определенно пользователем"
+"+userbind 1" "$userbind1"
+"+userbind 2" "$userbind2"
+"+userbind 3" "$userbind3"
+"+userbind 4" "$userbind4"
+"+userbind 5" "$userbind5"
+"+userbind 6" "$userbind6"
+"+userbind 7" "$userbind7"
+"+userbind 8" "$userbind8"
+"+userbind 9" "$userbind9"
+"+userbind 10" "$userbind10"
+"+userbind 11" "$userbind11"
+"+userbind 12" "$userbind12"
+"+userbind 13" "$userbind13"
+"+userbind 14" "$userbind14"
+"+userbind 15" "$userbind15"
+"+userbind 16" "$userbind16"
+"+userbind 17" "$userbind17"
+"+userbind 18" "$userbind18"
+"+userbind 19" "$userbind19"
+"+userbind 20" "$userbind20"
+"+userbind 21" "$userbind21"
+"+userbind 22" "$userbind22"
+"+userbind 23" "$userbind23"
+"+userbind 24" "$userbind24"
+"+userbind 25" "$userbind25"
+"+userbind 26" "$userbind26"
+"+userbind 27" "$userbind27"
+"+userbind 28" "$userbind28"
+"+userbind 29" "$userbind29"
+"+userbind 30" "$userbind30"
+"+userbind 31" "$userbind31"
+"+userbind 32" "$userbind32"
--- /dev/null
+de German "Deutsch"
+en English "English"
+fi Finnish "Suomi"
+fr French "Français"
+hu Hungarian "Magyar"
+it Italian "Italiano"
+nl Dutch "Nederlands"
+pt Portuguese "Português"
+ro Romanian "Romana"
+ru Russian "Русский"
+se Swedish "Svenska"
+es Spanish "Español"
--- /dev/null
+# Xonotic CSQC
+# Copyright (C) 2011 Team Xonotic
+# This file is distributed under the same license as the Xonotic package.
+# Rudolf Polzer <divVerent@xonotic.org>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 0.1preview\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-04-30 10:05+0200\n"
+"PO-Revision-Date: 2011-04-20 10:46+0200\n"
+"Last-Translator: Rudolf Polzer <divVerent@xonotic.org>\n"
+"Language-Team: Rudolf Polzer <divVerent@xonotic.org>\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: qcsrc/menu/gamecommand.qc:47
+#, c-format
+msgid "error: status is %d\n"
+msgstr "Fehler: Status ist %d\n"
+
+#: qcsrc/menu/gamecommand.qc:65
+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:66
+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:67
+msgid " directmenu ITEM - select a menu item as main item\n"
+msgstr " directmenu ELEMENT - springt zu einem Menüelement"
+
+#: qcsrc/menu/gamecommand.qc:193
+msgid "error creating curl handle\n"
+msgstr "Fehler beim Erstellen eines curl-Handles\n"
+
+#: qcsrc/menu/gamecommand.qc:239
+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 "
+"help ausgegeben.\n"
+
+#: qcsrc/menu/item/gecko.c:49
+msgid "Browser not initialized!"
+msgstr "Browser nicht initialisiert!"
+
+#: qcsrc/menu/item/label.c:63
+#, c-format
+msgid "NOTE: label text %s too wide for label, condensed by factor %f\n"
+msgstr ""
+"HINWEIS: Text %s ist zu weit für das Textfeld, Text wurde um Faktor %f "
+"gestaucht\n"
+
+#: qcsrc/menu/item/listbox.c:300
+#, c-format
+msgid "Item %d"
+msgstr "Eintrag %d"
+
+#: qcsrc/menu/item/slider.c:64
+#, c-format
+msgid "%d (%s)"
+msgstr "%d (%s)"
+
+#: qcsrc/menu/item/textslider.c:29 qcsrc/menu/item/textslider.c:31
+msgid "custom"
+msgstr "benutzerdefiniert"
+
+#: qcsrc/menu/menu.qc:29
+#, c-format
+msgid "^4MQC Build information: ^1%s\n"
+msgstr "^4MQC Build-Information: ^1%s (deutsch)\n"
+
+#: qcsrc/menu/xonotic/campaign.c:284
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:66
+msgid "???"
+msgstr "???"
+
+#: qcsrc/menu/xonotic/campaign.c:285
+#, c-format
+msgid "Level %d: %s"
+msgstr "Level %d: %s"
+
+#: qcsrc/menu/xonotic/cvarlist.c:85
+msgid "will be saved to config.cfg"
+msgstr "wird in config.cfg gespeichert"
+
+#: qcsrc/menu/xonotic/cvarlist.c:87
+msgid "will not be saved"
+msgstr "wird nicht gespeichert"
+
+#: qcsrc/menu/xonotic/cvarlist.c:89
+msgid "private"
+msgstr "privat"
+
+#: qcsrc/menu/xonotic/cvarlist.c:91
+msgid "engine setting"
+msgstr "Engine-Einstellung"
+
+#: qcsrc/menu/xonotic/cvarlist.c:93
+msgid "read only"
+msgstr "nur lesen"
+
+#: qcsrc/menu/xonotic/dialog_credits.c:5
+msgid "Credits"
+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:269
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:41
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:55
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:61
+#: qcsrc/menu/xonotic/dialog_singleplayer_winner.c:21
+msgid "OK"
+msgstr "OK"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:4
+msgid "Welcome"
+msgstr "Willkommen"
+
+#: 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 ""
+"Willkommen in Xonotic! Nach Auswahl der Sprache und Eingabe des "
+"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_settings_input_userbind.c:39
+msgid "Name:"
+msgstr "Name:"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:69
+msgid "Save settings"
+msgstr "Einstellungen speichern"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:4
+msgid "Ammo Panel"
+msgstr "Munitons-Panel"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:22
+msgid "Ammunition display:"
+msgstr "Munitionsanzeige:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:25
+msgid "Show only current ammo type"
+msgstr "Nur aktuellen Munitionstyp anzeigen"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:29
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:28
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:40
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:28
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:40
+msgid "Left"
+msgstr "Links"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:30
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:30
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:41
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:30
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:41
+msgid "Right"
+msgstr "Rechts"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:4
+msgid "Chat Panel"
+msgstr "Chat-Panel"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:22
+msgid "Chat entries:"
+msgstr "Chat-Zeilen:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:25
+msgid "Chat size:"
+msgstr "Chat-Größe:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:29
+msgid "Chat lifetime:"
+msgstr "Chat-Sichtbarkeit:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:33
+msgid "Chat beep sound"
+msgstr "Chat-Piepton:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_engineinfo.c:4
+msgid "Engine Info Panel"
+msgstr "Engine-Info-Panel"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_engineinfo.c:22
+msgid "Engine info:"
+msgstr "Engine-Info:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_engineinfo.c:25
+msgid "Use an averaging algorithm for fps"
+msgstr "Zeige einen Durchschnittswert für fps"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:4
+msgid "Health/Armor Panel"
+msgstr "Health/Armor-Panel"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:22
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:22
+msgid "Enable status bar"
+msgstr "Statusleiste anzeigen"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:24
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:24
+msgid "Status bar alignment:"
+msgstr "Statusleistenausrichtung"
+
+#: 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 "Innen"
+
+#: 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 "Außen"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:37
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:37
+msgid "Icon alignment:"
+msgstr "Iconausrichtung:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:45
+msgid "Flip health and armor positions"
+msgstr "Health und Armor tauschen"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_infomessages.c:4
+msgid "Info Messages Panel"
+msgstr "Informations-Panel"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_infomessages.c:22
+msgid "Info messages:"
+msgstr "Informationen:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_infomessages.c:25
+msgid "Flip align"
+msgstr "Ausrichtung tauschen"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_modicons.c:4
+msgid "Mod Icons Panel"
+msgstr "Mod-Symbole-Panel"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:4
+msgid "Notification Panel"
+msgstr "Anzeige-Panel"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:22
+msgid "Notifications:"
+msgstr "Anzeige:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:25
+msgid "Also print notifications to the console"
+msgstr "auch auf der Konsole ausgeben"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:28
+msgid "Flip notify order"
+msgstr "Scrollrichtung vertauschen"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:31
+msgid "Entry lifetime:"
+msgstr "Eintrags-Sichtbarkeit:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:35
+msgid "Entry fadetime:"
+msgstr "Eintrags-Ausblendung:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:4
+msgid "Powerups Panel"
+msgstr "Bonus-Panel"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:45
+msgid "Flip strength and shield positions"
+msgstr "Strength und Shield vertauschen"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:4
+msgid "Pressed Keys Panel"
+msgstr "Gedrückte-Tasten-Panel"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:21
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:21
+msgid "Panel disabled"
+msgstr "Panel nicht anzeigen"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:22
+msgid "Panel enabled when spectating"
+msgstr "Panel beim Zuschauen anzeigen"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:23
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:23
+msgid "Panel always enabled"
+msgstr "Panel immer anzeigen"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:30
+msgid "Forced aspect:"
+msgstr "Aspektverhältnis:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_racetimer.c:4
+msgid "Race Timer Panel"
+msgstr "Rundenzeit-Panel"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:4
+msgid "Radar Panel"
+msgstr "Radar-Panel"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:22
+msgid "Panel enabled in teamgames"
+msgstr "Panel in Team-Spieltypen aktivieren"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:29
+msgid "Radar:"
+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:608
+msgid "Alpha:"
+msgstr "Alpha:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:36
+msgid "Rotation:"
+msgstr "Drehung:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:38
+msgid "Forward"
+msgstr "Vorwärts"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:39
+msgid "West"
+msgstr "West"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:40
+msgid "South"
+msgstr "Süd"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:41
+msgid "East"
+msgstr "Ost"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:42
+msgid "North"
+msgstr "Nord"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:46
+msgid "Scale:"
+msgstr "Skalierung:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:50
+msgid "Zoom mode:"
+msgstr "Zoom-Modus:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:52
+msgid "Zoomed in"
+msgstr "vergrößert"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:53
+msgid "Zoomed out"
+msgstr "verkleinert"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:54
+msgid "Always zoomed"
+msgstr "immer vergrößert"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:55
+msgid "Never zoomed"
+msgstr "nie vergrößert"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_score.c:4
+msgid "Score Panel"
+msgstr "Punkte-Panel"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_timer.c:4
+msgid "Timer Panel"
+msgstr "Zeit-Panel"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_timer.c:22
+msgid "Timer:"
+msgstr "Zeit:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_timer.c:25
+msgid "Show elapsed time"
+msgstr "Vergangene Zeit anzeigen"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_vote.c:4
+msgid "Vote Panel"
+msgstr "Abstimmungs-Panel"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_vote.c:22
+msgid "Alpha after voting:"
+msgstr "Alpha nach Abstimmung:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:4
+msgid "Weapons Panel"
+msgstr "Waffen-Panel"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:24
+msgid "Fade out after:"
+msgstr "Ausblenden nach:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:26
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:36
+msgid "Never"
+msgstr "Nie"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:28
+#, c-format
+msgid "%ds"
+msgstr "%ds"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:32
+msgid "Fade effect:"
+msgstr "Ausblendeeffekt:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:33
+msgid "EF^None"
+msgstr "keiner"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:35
+msgid "Slide"
+msgstr "Schieben"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:37
+msgid "Alpha"
+msgstr "Alpha"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:40
+msgid "Weapon icons:"
+msgstr "Waffensymbole:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:43
+msgid "Show weapon ID as:"
+msgstr "Waffen-ID zeigen als:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:44
+msgid "SHOWAS^None"
+msgstr "nichts"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:45
+msgid "Number"
+msgstr "Zahl"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:46
+msgid "Bind"
+msgstr "Taste"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:49
+msgid "Show Accuracy"
+msgstr "Trefferquote zeigen"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:50
+msgid "Show Ammo"
+msgstr "Munition zeigen"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:53
+msgid "Ammo bar color:"
+msgstr "Muntionsleistenfarbe:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:59
+msgid "Ammo bar alpha:"
+msgstr "Munitionsleistenalpha:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:4
+msgid "Panel HUD Setup"
+msgstr "HUD-Konfiguration"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:21
+msgid "Panel background defaults:"
+msgstr "Panel-Standardhintergrund:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:25
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:37
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:52
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:91 qcsrc/menu/xonotic/util.qc:586
+#: qcsrc/menu/xonotic/util.qc:602 qcsrc/menu/xonotic/util.qc:619
+msgid "Disable"
+msgstr "Aus"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:30
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:77 qcsrc/menu/xonotic/util.qc:591
+msgid "Color:"
+msgstr "Farbe:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:35 qcsrc/menu/xonotic/util.qc:599
+msgid "Border size:"
+msgstr "Rahmengröße:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:50
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:89
+msgid "Team color:"
+msgstr "Teamfarbe:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:58 qcsrc/menu/xonotic/util.qc:625
+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:628
+msgid "Padding:"
+msgstr "Abstand:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:68
+msgid "HUD Dock:"
+msgstr "HUD-Dock:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:70
+msgid "DOCK^Disabled"
+msgstr "Aus"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:71
+msgid "DOCK^Small"
+msgstr "Klein"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:72
+msgid "DOCK^Medium"
+msgstr "Mittel"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:73
+msgid "DOCK^Large"
+msgstr "Groß"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:96
+msgid "Grid settings:"
+msgstr "Gitter:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:99
+msgid "Snap panels to grid"
+msgstr "Panels am Gitter ausrichten"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:102
+msgid "Grid size:"
+msgstr "Gitterweite:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:103
+msgid "X:"
+msgstr "X:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:109
+msgid "Y:"
+msgstr "Y:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:117
+msgid "Exit setup"
+msgstr "Verlassen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:4
+msgid "Multiplayer"
+msgstr "Mehrspieler"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:18
+msgid "Servers"
+msgstr "Server"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:19
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:5
+msgid "Create"
+msgstr "Starten"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:20
+msgid "Demos"
+msgstr "Demos"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:21
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:5
+msgid "Player Setup"
+msgstr "Spieler-Einstellungen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:35
+msgid "Game type:"
+msgstr "Spieltyp"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:47
+msgid "Match settings:"
+msgstr "Spieleinstellungen:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:50
+msgid "Time limit:"
+msgstr "Zeitlimit:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:54
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:62
+msgid "Use map specified default"
+msgstr "Standardwert der Map verwenden"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:57
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:156
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:157
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:158
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:162
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:163
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:164
+msgid "Point limit:"
+msgstr "Punktelimit"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:65
+msgid "Player slots:"
+msgstr "Spielerplätze:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:68
+msgid "Number of bots:"
+msgstr "Anzahl Bots:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:72
+msgid "Bot skill:"
+msgstr "Spielstärke:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:75
+msgid "Botlike"
+msgstr "Bots halt"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:76
+msgid "Beginner"
+msgstr "Anfänger"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:77
+msgid "You will win"
+msgstr "Gewinnst schon"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:78
+msgid "You can win"
+msgstr "Kannst gewinnen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:79
+msgid "You might win"
+msgstr "Könntest gewinnen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:80
+msgid "Advanced"
+msgstr "Fortgeschritten"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:81
+msgid "Expert"
+msgstr "Experte"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:82
+msgid "Pro"
+msgstr "Profi"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:83
+msgid "Assassin"
+msgstr "Mörder"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:84
+msgid "Unhuman"
+msgstr "Übermenschlich"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:85
+msgid "Godlike"
+msgstr "Gottgleich"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:89
+msgid "Mutators..."
+msgstr "Mutators..."
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:98
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:84
+msgid "Advanced settings..."
+msgstr "Erweiterte Einstellungen..."
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:105
+msgid "Map list:"
+msgstr "Mapliste:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:111
+msgid "Select all"
+msgstr "Alle auswählen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:114
+msgid "Select none"
+msgstr "Keine auswählen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:120
+msgid "Start Multiplayer!"
+msgstr "Starten!"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:155
+msgid "Capture limit:"
+msgstr "Capture-Limit:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:159
+msgid "Lives:"
+msgstr "Leben:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:160
+msgid "Laps:"
+msgstr "Runden:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:161
+msgid "Goals:"
+msgstr "Tore:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:165
+msgid "Frag limit:"
+msgstr "Punktelimit:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:6
+msgid "Advanced server settings"
+msgstr "Erweiterte Servereinstellungen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:25
+msgid "Game settings:"
+msgstr "Spieleinstellungen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:28
+msgid "Allow spectating"
+msgstr "Zuschauer erlauben"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:31
+msgid "Spawn shield:"
+msgstr "Startschutz:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:36
+msgid "Game speed:"
+msgstr "Spieltempo:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:40
+msgid "Teamplay settings:"
+msgstr "Teamplay-Einstellungen:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:43
+msgid "Friendly fire scale:"
+msgstr "Eigenbeschuss-Faktor:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:47
+msgid "Virtual friendly fire (effect only)"
+msgstr "Virtueller Eigenbeschuss (nur Effekt)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:50
+msgid "Friendly fire penalty:"
+msgstr "Strafe für Eigenbeschuss:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:54
+msgid "Virtual penalty (effect only)"
+msgstr "Virtuelle Strafe (nur Effekt)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:57
+msgid "Teams:"
+msgstr "Teams:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:66
+msgid "Map voting:"
+msgstr "Map-Abstimmung:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:68
+msgid "No voting"
+msgstr "Keine Abstimmung"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:69
+msgid "2 choices"
+msgstr "2 Optionen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:70
+msgid "3 choices"
+msgstr "3 Optionen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:71
+msgid "4 choices"
+msgstr "4 Optionen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:72
+msgid "5 choices"
+msgstr "5 Optionen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:73
+msgid "6 choices"
+msgstr "6 Optionen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:74
+msgid "7 choices"
+msgstr "7 Optionen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:75
+msgid "8 choices"
+msgstr "8 Optionen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:76
+msgid "9 choices"
+msgstr "9 Optionen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:79
+msgid "Simple majority wins vcall"
+msgstr "Einfache Mehrheit gewinnt vcall"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:5
+msgid "Map Information"
+msgstr "Map-Information"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:49
+msgid "Full item placement"
+msgstr "mit Waffen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:49
+msgid "MinstaGib only"
+msgstr "nur MinstaGib"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:78
+msgid "Title:"
+msgstr "Titel:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:84
+msgid "Author:"
+msgstr "Autor:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:90
+msgid "Features:"
+msgstr "Features:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:95
+msgid "Game types:"
+msgstr "Spieltyp:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:119
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:314
+msgid "Close"
+msgstr "Schließen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:122
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:46
+msgid "Play"
+msgstr "Start"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:7
+msgid "Mutators"
+msgstr "Mutators"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:33
+msgid "All Weapons Arena"
+msgstr "Alle-Waffen-Arena"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:35
+msgid "Most Weapons Arena"
+msgstr "Viele-Waffen-Arena"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:56
+#, c-format
+msgid "%s Arena"
+msgstr "%s-Arena"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:68
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:167
+msgid "Dodging"
+msgstr "Ausweichen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:70
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:250
+msgid "MinstaGib"
+msgstr "MinstaGib"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:72
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:253
+msgid "NIX"
+msgstr "NIX"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:74
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:205
+msgid "Rocket Flying"
+msgstr "Raketen-Fliegen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:78
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:264
+msgid "No start weapons"
+msgstr "Ohne Waffen starten"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:80
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:189
+msgid "Low gravity"
+msgstr "Wenig Schwerkraft"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:82
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:170
+msgid "Cloaked"
+msgstr "Tarnung"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:84
+msgid "Hook"
+msgstr "Enterhaken"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:86
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:173
+msgid "Midair"
+msgstr "in der Luft"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:88
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:176
+msgid "Vampire"
+msgstr "Vampir"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:90
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:208
+msgid "Piñata"
+msgstr "Piñata"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:92
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:211
+msgid "Weapons stay"
+msgstr "Waffen bleiben"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:94
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:180
+msgid "Blood loss"
+msgstr "Blutverlust"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:96
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:202
+msgid "Jet pack"
+msgstr "Jetpack"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:98
+msgid "MUT^None"
+msgstr "keiner"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:164
+msgid "Gameplay mutators:"
+msgstr "Spielmechanik-Mutators:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:196
+msgid "Weapon & item mutators:"
+msgstr "Waffen/Gegenstände-Mutators:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:199
+msgid "Grappling hook"
+msgstr "Enterhaken"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:215
+msgid "Weapon arenas:"
+msgstr "Waffen-Arenen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:218
+msgid "Regular (no arena)"
+msgstr "Normal (keine Arena)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:239
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:256
+msgid "with laser"
+msgstr "mit Laser"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:247
+msgid "Special arenas:"
+msgstr "Spezielle Arenen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:260
+msgid "Most weapons"
+msgstr "Viele Waffen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:4
+msgid "Demo"
+msgstr "Demo"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:28
+msgid "Record demos while playing"
+msgstr "Demo beim Spielen aufnehmen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:32
+#: 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_join.c:29
+#: qcsrc/menu/xonotic/dialog_settings_input.c:41
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:24
+msgid "Clear"
+msgstr "Löschen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:43
+msgid "Timedemo"
+msgstr "Timedemo"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:4
+msgid "Join"
+msgstr "Verbinden"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:36
+msgid "SRVS^Empty"
+msgstr "leer"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:40
+msgid "SRVS^Full"
+msgstr "voll"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:44
+msgid "Pause"
+msgstr "Pause"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:56
+msgid "Address:"
+msgstr "Adresse:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:67
+msgid "Info..."
+msgstr "Info..."
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:72
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:317
+msgid "Join!"
+msgstr "Verbinden!"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:5
+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:183
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:189
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:199
+msgid "N/A"
+msgstr "-"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:158
+#, c-format
+msgid "%d/%d, %d free player slots"
+msgstr "%d/%d, %d freie Slots"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:172
+#, c-format
+msgid "%d modified settings"
+msgstr "%d veränderte Einstellungen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:172
+msgid "Official settings"
+msgstr "Offizielle Einstellungen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:197
+msgid "N/A (can't connect)"
+msgstr "- (nicht kompatibel)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:205
+msgid "not supported (can't connect)"
+msgstr "nicht unterstützt (nicht kompatibel)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:207
+msgid "not supported (won't encrypt)"
+msgstr "nicht untersützt (nicht aktiv)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:211
+msgid "supported (will encrypt)"
+msgstr "unterstützt (aktiv)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:213
+msgid "supported (won't encrypt)"
+msgstr "unterstützt (nicht aktiv)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:217
+msgid "requested (will encrypt)"
+msgstr "erwünscht (aktiv)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:219
+msgid "requested (won't encrypt)"
+msgstr "erwünscht (nicht aktiv)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:223
+msgid "required (can't connect)"
+msgstr "notwendig (nicht kompatibel)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:225
+msgid "required (will encrypt)"
+msgstr "notwendig (aktiv)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:246
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:269
+msgid "Players:"
+msgstr "Spieler:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:254
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:38
+msgid "Type:"
+msgstr "Typ:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:259
+msgid "Map:"
+msgstr "Map:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:264
+msgid "Gameplay:"
+msgstr "Spielregeln:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:274
+msgid "Bots:"
+msgstr "Bots:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:279
+msgid "Mod:"
+msgstr "Mod:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:284
+msgid "Version:"
+msgstr "Version:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:289
+msgid "Ping:"
+msgstr "Ping:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:295
+msgid "CA:"
+msgstr "CA:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:301
+msgid "Key:"
+msgstr "Schlüssel:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:307
+msgid "Encryption:"
+msgstr "Krypto:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:63
+msgid "Model:"
+msgstr "Modell:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:88
+msgid "Field of view:"
+msgstr "Sichtfeld:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:92
+msgid "View bobbing:"
+msgstr "Sicht-Wackeln:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:96
+msgid "Zoom factor:"
+msgstr "Vergrößerungsfaktor:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:100
+msgid "Zoom speed:"
+msgstr "Vergrößerungsgeschwindigkeit:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:103
+msgid "Weapon settings..."
+msgstr "Waffeneinstellungen..."
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:110
+msgid "Crosshair:"
+msgstr "Fadenkreuz:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:111
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:139
+msgid "Per weapon"
+msgstr "pro Waffe"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:130
+msgid "Crosshair size:"
+msgstr "Größe:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:134
+msgid "Crosshair alpha:"
+msgstr "Alpha:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:138
+msgid "Crosshair color:"
+msgstr "Farbe:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:140
+msgid "By health"
+msgstr "je nach Health"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:143
+msgid "Custom"
+msgstr "benutzerdefiniert"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:148
+msgid "Enable center dot"
+msgstr "Punkt in der Mitte aktivieren"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:151
+msgid "Size:"
+msgstr "Größe:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:158
+msgid "Hit test:"
+msgstr "Treffer-Test:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:159
+msgid "HTST^None"
+msgstr "Aus"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:160
+msgid "TrueAim"
+msgstr "TrueAim"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:161
+msgid "Enemies"
+msgstr "Gegner"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:164
+msgid "Waypoints setup..."
+msgstr "Wegpunkt-Einstellungen..."
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:169
+msgid "Enter HUD editor"
+msgstr "HUD-Editor starten"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:174
+msgid "Force models:"
+msgstr "Modell erzwingen:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:175
+msgid "MDL^None"
+msgstr "keine"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:176
+msgid "MDL^Custom"
+msgstr "inoffizielle"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:177
+msgid "MDL^All"
+msgstr "alle"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:180
+msgid "Disable gore effects"
+msgstr "Gewalteffekte deaktivieren"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:182
+msgid "Gibs:"
+msgstr "Fleischteile:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:184
+msgid "GIBS^None"
+msgstr "Aus"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:185
+msgid "GIBS^Few"
+msgstr "Wenige"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:186
+msgid "GIBS^Many"
+msgstr "Einige"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:187
+msgid "GIBS^Lots"
+msgstr "Viele"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:191
+msgid "Damage splash:"
+msgstr "Schadenseffekt:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:195
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:178
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:194
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:30
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:41
+#: qcsrc/menu/xonotic/dialog_settings_video.c:105
+msgid "Apply immediately"
+msgstr "Sofort anwenden"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:5
+msgid "Waypoints"
+msgstr "Wegpunkte"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:23
+msgid "Show base waypoints"
+msgstr "Basis-Wegpunkte anzeigen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:25
+msgid "Waypoint scale:"
+msgstr "Wegpunkt-Skalierung:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:29
+msgid "Waypoint alpha:"
+msgstr "Wegpunkt-Alpha:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:34
+msgid "Show names:"
+msgstr "Namen anzeigen:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:37
+msgid "Teammates"
+msgstr "Mitspieler"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:38
+msgid "All players"
+msgstr "Alle Spieler"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:6
+msgid "Weapon settings"
+msgstr "Waffeneinstellungen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:29
+msgid "Weapon priority list:"
+msgstr "Waffenreihenfolge"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:34
+msgid "Up"
+msgstr "Hoch"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:37
+msgid "Down"
+msgstr "Runter"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:41
+msgid "Use priority list for weapon cycling"
+msgstr "Waffenreihenfolge für Mausrad verwenden"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:43
+msgid "Auto switch weapons on pickup"
+msgstr "Automatisch auf beste Waffe wechseln"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:45
+msgid "Draw 1st person weapon model"
+msgstr "Waffe in 3D anzeigen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:48
+msgid "Left align"
+msgstr "Links"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:50
+msgid "Right align"
+msgstr "Rechts"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:53
+msgid "Flip view horizontally"
+msgstr "3D-Ansicht spiegeln"
+
+#: qcsrc/menu/xonotic/dialog_news.c:4
+msgid "News"
+msgstr "Nachrichten"
+
+#: qcsrc/menu/xonotic/dialog_news.c:18
+msgid "http://www.xonotic.org/team/blog/"
+msgstr "http://www.xonotic.org/team/blog/"
+
+#: qcsrc/menu/xonotic/dialog_quit.c:4
+msgid "Quit"
+msgstr "Beenden"
+
+#: qcsrc/menu/xonotic/dialog_quit.c:17
+msgid "Are you sure you want to quit?"
+msgstr "Willst du das Spiel wirklich beenden?"
+
+#: qcsrc/menu/xonotic/dialog_quit.c:20
+msgid "Yes"
+msgstr "Ja"
+
+#: qcsrc/menu/xonotic/dialog_quit.c:21
+msgid "No"
+msgstr "Nein"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:4
+msgid "Settings"
+msgstr "Einstellungen"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:18
+#: qcsrc/menu/xonotic/dialog_settings_input.c:4
+msgid "Input"
+msgstr "Eingabe"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:19
+#: qcsrc/menu/xonotic/dialog_settings_video.c:4
+msgid "Video"
+msgstr "Grafik"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:20
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:4
+msgid "Effects"
+msgstr "Effekte"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:21
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:4
+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.c:23
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:4
+msgid "Misc"
+msgstr "Sonstiges"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:27
+msgid "Master:"
+msgstr "Master:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:33
+msgid "Music:"
+msgstr "Musik:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:40
+msgid "VOL^Ambient:"
+msgstr "Umgebung:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:48
+msgid "Info:"
+msgstr "Info:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:57
+msgid "Items:"
+msgstr "Gegenstände:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:65
+msgid "Pain:"
+msgstr "Schmerz:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:73
+msgid "Player:"
+msgstr "Spieler:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:81
+msgid "Shots:"
+msgstr "Schüsse:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:88
+msgid "Voice:"
+msgstr "Stimme:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:96
+msgid "Weapons:"
+msgstr "Waffen:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:103
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:161
+msgid "Frequency:"
+msgstr "Frequenz:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:105
+msgid "8 kHz"
+msgstr "8 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:106
+msgid "11.025 kHz"
+msgstr "11,025 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:107
+msgid "16 kHz"
+msgstr "16 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:108
+msgid "22.05 kHz"
+msgstr "22,05 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:109
+msgid "24 kHz"
+msgstr "24 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:110
+msgid "32 kHz"
+msgstr "32 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:111
+msgid "44.1 kHz"
+msgstr "44,1 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:112
+msgid "48 kHz"
+msgstr "48 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:115
+msgid "Channels:"
+msgstr "Kanäle"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:117
+msgid "Mono"
+msgstr "Mono"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:118
+msgid "Stereo"
+msgstr "Stereo"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:119
+msgid "2.1"
+msgstr "2.1"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:120
+msgid "4"
+msgstr "4"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:121
+msgid "5"
+msgstr "5"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:122
+msgid "5.1"
+msgstr "5.1"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:123
+msgid "6.1"
+msgstr "6.1"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:124
+msgid "7.1"
+msgstr "7.1"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:128
+msgid "Swap Stereo"
+msgstr "Stereokanäle tauschen"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:132
+msgid "Headphone friendly mode"
+msgstr "Kopfhörer-Modus"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:136
+msgid "Spatial voices:"
+msgstr "Räumliche Sprachnachrichten:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:137
+msgid "VOCS^None"
+msgstr "keine"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:138
+msgid "VOCS^Taunts"
+msgstr "nur Spott"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:139
+msgid "VOCS^All"
+msgstr "alle"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:142
+msgid "Taunt range:"
+msgstr "Spott-Radius:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:145
+msgid "RNG^Very short"
+msgstr "Sehr klein"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:146
+msgid "RNG^Short"
+msgstr "Klein"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:147
+msgid "RNG^Normal"
+msgstr "Normal"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:148
+msgid "RNG^Long"
+msgstr "Groß"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:149
+msgid "RNG^Full"
+msgstr "Sehr groß"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:156
+msgid "Automatic taunts"
+msgstr "Automatischer Spott"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:165
+msgid "Time warning:"
+msgstr "Zeitwarnung:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:167
+msgid "WRN^None"
+msgstr "keine"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:168
+msgid "1 minute"
+msgstr "1 Minute"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:169
+msgid "5 minutes"
+msgstr "5 Minuten"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:170
+msgid "WRN^Both"
+msgstr "beide"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:173
+msgid "Hit indicator"
+msgstr "Treffer-Indikator"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:175
+msgid "Menu sounds"
+msgstr "Menü-Sounds"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:38
+msgid "Quality preset:"
+msgstr "Qualitäts-Vorgabe:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:41
+msgid "PRE^OMG!"
+msgstr "OMG!"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:42
+msgid "PRE^Low"
+msgstr "Niedrig"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:43
+msgid "PRE^Medium"
+msgstr "Mittel"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:44
+msgid "PRE^Normal"
+msgstr "Normal"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:45
+msgid "PRE^High"
+msgstr "Hoch"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:46
+msgid "PRE^Ultra"
+msgstr "Ultra"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:48
+msgid "PRE^Ultimate"
+msgstr "Ultimativ"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:52
+msgid "Geometry detail:"
+msgstr "Geometrie-Detail:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:54
+msgid "DET^Lowest"
+msgstr "Sehr niedrig"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:55
+msgid "DET^Low"
+msgstr "Niedrig"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:56
+msgid "DET^Normal"
+msgstr "Normal"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:57
+msgid "DET^Good"
+msgstr "Gut"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:58
+msgid "DET^Best"
+msgstr "Sehr gut"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:59
+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: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 "Texturauflösung:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:73
+msgid "RES^Leet"
+msgstr "Leet"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:74
+msgid "RES^Lowest"
+msgstr "Sehr niedrig"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:75
+msgid "RES^Low"
+msgstr "Niedrig"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:76
+msgid "RES^Normal"
+msgstr "Normal"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:77
+msgid "RES^Good"
+msgstr "Gut"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:78
+msgid "RES^Best"
+msgstr "Sehr gut"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:91
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:94
+msgid "Avoid lossy texture compression"
+msgstr "Texturkompression vermeiden"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:100
+msgid "Anisotropy:"
+msgstr "Anisotropie:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:102
+msgid "ANISO^Disabled"
+msgstr "Aus"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:105
+msgid "8x"
+msgstr "8x"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:106
+msgid "16x"
+msgstr "16x"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:110
+msgid "Particle quality:"
+msgstr "Partikelqualität:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:113
+msgid "Particle distance:"
+msgstr "Partikeldistanz:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:117
+msgid "Decals"
+msgstr "Einschusslöcher"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:120
+msgid "Distance:"
+msgstr "Distanz:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:126
+msgid "Time:"
+msgstr "Zeit:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:132
+msgid "Use lightmaps"
+msgstr "Lightmaps verwenden"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:133
+msgid "Deluxe mapping"
+msgstr "Deluxemapping"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:135
+msgid "Gloss"
+msgstr "Glanz"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:138
+msgid "Offset mapping"
+msgstr "Offsetmapping"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:140
+msgid "Relief mapping"
+msgstr "Reliefmapping"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:143
+msgid "Reflections:"
+msgstr "Reflexionen:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:146
+msgid "Blurred"
+msgstr "Schwammig"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:147
+msgid "REFL^Good"
+msgstr "Gut"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:148
+msgid "Sharp"
+msgstr "Scharf"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:153
+msgid "Show surfaces"
+msgstr "Oberflächen anzeigen"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:155
+msgid "No dynamic lighting"
+msgstr "Kein dynamisches Licht"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:157
+msgid "Flash blend approximation"
+msgstr "Flash-Blend-Näherung"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:159
+msgid "Realtime dynamic lighting"
+msgstr "Dynamisches Licht in Echtzeit"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:160
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:164
+msgid "Shadows"
+msgstr "Schatten"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:163
+msgid "Realtime world lighting"
+msgstr "Map-Licht in Echtzeit"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:168
+msgid "Use normal maps"
+msgstr "Normalmaps verwenden"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:170
+msgid "Soft shadows"
+msgstr "Weiche Schatten"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:173
+msgid "Coronas"
+msgstr "Koronas"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:174
+msgid "Use Occlusion Queries"
+msgstr "Occlusion Queries verwenden"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:176
+msgid "Bloom"
+msgstr "Überstrahlung"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:178
+msgid "High Dynamic Range (HDR)"
+msgstr "Lichtdynamik (HDR)"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:182
+msgid "Motion blur:"
+msgstr "Bewegungsunschärfe:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:188
+msgid "Damage blur:"
+msgstr "Schadensunschärfe:"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:26
+msgid "Key bindings:"
+msgstr "Tastenbelegung:"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:31
+msgid "Change key..."
+msgstr "Taste ändern..."
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:35
+msgid "Edit..."
+msgstr "Bearbeiten..."
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:46
+msgid "Sensitivity:"
+msgstr "Empfindlichkeit:"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:49
+msgid "UI mouse speed:"
+msgstr "Mausgeschwindigkeit:"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:52
+msgid "Mouse filter"
+msgstr "Mausfilterung"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:54
+msgid "Invert mouse"
+msgstr "Höhe invertieren"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:57
+#: qcsrc/menu/xonotic/dialog_settings_input.c:59
+msgid "Use joystick input"
+msgstr "Joystick verwenden"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:62
+#: qcsrc/menu/xonotic/dialog_settings_input.c:64
+msgid "Turn off OS mouse acceleration"
+msgstr "Mausbeschleunigung deaktivieren"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:66
+msgid "\"enter console\" also closes"
+msgstr "\"Konsole öffnen\" schließt auch"
+
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:5
+msgid "User defined key bind"
+msgstr "Benutzerdefinierte Tastenbelegung"
+
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:42
+msgid "Command when pressed:"
+msgstr "Befehl beim Drücken:"
+
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:45
+msgid "Command when released:"
+msgstr "Befehl beim Loslassen:"
+
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:48
+msgid "Save"
+msgstr "Speichern"
+
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:51
+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 "Speedometer"
+msgstr "Tachometer"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:56
+msgid "qu/s (hidden)"
+msgstr "qu/s (ohne Einheit)"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:58
+msgid "qu/s"
+msgstr "qu/s"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:60
+msgid "m/s"
+msgstr "m/s"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:64
+msgid "km/h"
+msgstr "km/h"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:66
+msgid "mph"
+msgstr "mph"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:68
+msgid "knots"
+msgstr "Knoten"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:71
+msgid "Show accelerometer"
+msgstr "Akzelerometer anzeigen"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:74
+msgid "Accelerometer scale:"
+msgstr "Akzelerometer-Skalierung:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:80
+msgid "Minimize input latency"
+msgstr "Eingabelatenz minimieren"
+
+#: 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:"
+
+#: 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
+msgid "56k"
+msgstr "Modem"
+
+#: 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 (langsam)"
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:38
+msgid "Fast ADSL"
+msgstr "ADSL (schnell)"
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:39
+msgid "Broadband"
+msgstr "Breitband"
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:42
+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_network.c:49
+msgid "Downloads:"
+msgstr "Downloads:"
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:53
+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_video.c:26
+msgid "Resolution:"
+msgstr "Auflösung:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:29
+msgid "Font/UI size:"
+msgstr "Schriftgröße:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:31
+msgid "SZ^Unreadable"
+msgstr "Unleserlich"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:32
+msgid "SZ^Tiny"
+msgstr "Winzig"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:33
+msgid "SZ^Little"
+msgstr "Klein"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:34
+msgid "SZ^Small"
+msgstr "Klein"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:35
+msgid "SZ^Medium"
+msgstr "Mittel"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:36
+msgid "SZ^Large"
+msgstr "Groß"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:37
+msgid "SZ^Huge"
+msgstr "Riesig"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:38
+msgid "SZ^Gigantic"
+msgstr "Gigantisch"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:39
+msgid "SZ^Colossal"
+msgstr "Kolossal"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:42
+msgid "Color depth:"
+msgstr "Farbtiefe:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:45
+msgid "Full screen"
+msgstr "Vollbild"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:46
+msgid "Vertical Synchronization"
+msgstr "Vertikale Synchronisation"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:49
+msgid "Use OpenGL 2.0 shaders (GLSL)"
+msgstr "OpenGL 2.0 Shaders verwenden (GLSL)"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:52
+msgid "Use GLSL to handle color control"
+msgstr "GLSL für Farbregelung verwenden"
+
+#: 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:59
+msgid "VBO^Off"
+msgstr "Aus"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:60
+msgid "Vertices, some Tris (compatible)"
+msgstr "Ecken, einige Dreiecke (kompatibel)"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:63
+msgid "Vertices"
+msgstr "Ecken"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:64
+msgid "Vertices and Triangles"
+msgstr "Ecken und Dreiecke"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:67
+msgid "Depth first:"
+msgstr "Tiefe zuerst rendern:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:69
+msgid "DF^Disabled"
+msgstr "Aus"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:70
+msgid "DF^World"
+msgstr "nur Map"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:71
+msgid "DF^All"
+msgstr "Immer"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:75
+msgid "Disable multithreaded OpenGL"
+msgstr "OpenGL-Multithreading deaktivieren"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:77
+msgid "Wait for GPU to finish each frame"
+msgstr "Bei jedem Frame auf die Grafikkarte warten"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:80
+msgid "Brightness:"
+msgstr "Helligkeit:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:83
+msgid "Contrast:"
+msgstr "Kontrast:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:86
+msgid "Gamma:"
+msgstr "Gamma:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:89
+msgid "Contrast boost:"
+msgstr "Kontrasterhöhung:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:92
+msgid "Saturation:"
+msgstr "Sättigung:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:98
+msgid "LIT^Ambient:"
+msgstr "Umgebungslicht:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:101
+msgid "Intensity:"
+msgstr "Lichtstärke:"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:4
+msgid "Singleplayer"
+msgstr "Einzelspieler"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:59
+msgid "Instant action! (random map with bots)"
+msgstr "Sofortstart! (zufällige Map mit Bots)"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:80
+msgid "Start Singleplayer!"
+msgstr "Spiel starten!"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer_winner.c:4
+msgid "Winner"
+msgstr "Gewinner"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:5
+msgid "Team Selection"
+msgstr "Teamauswahl"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:41
+msgid "join 'best' team (auto-select)"
+msgstr "'bestem' Team beitreten"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:45
+msgid "red"
+msgstr "rot"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:46
+msgid "blue"
+msgstr "blau"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:47
+msgid "yellow"
+msgstr "gelb"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:48
+msgid "pink"
+msgstr "pink"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:51
+msgid "spectate"
+msgstr "zuschauen"
+
+#: qcsrc/menu/xonotic/mainwindow.c:35 qcsrc/menu/xonotic/mainwindow.c:38
+msgid "Do not press this button again!"
+msgstr "Bitte nicht nochmal diesen Knopf drücken!"
+
+#: qcsrc/menu/xonotic/maplist.c:278
+msgid ""
+"Huh? Can't play this (m is NULL). Refiltering so this won't happen again.\n"
+msgstr ""
+"Hä? Kann diese Map nicht starten (m ist NULL). Mapliste wird neu gefiltert.\n"
+
+#: qcsrc/menu/xonotic/maplist.c:286
+#, c-format
+msgid "%s's Xonotic Server"
+msgstr "%ss Xonotic-Server"
+
+#: qcsrc/menu/xonotic/maplist.c:291
+msgid ""
+"Huh? Can't play this (invalid game type). Refiltering so this won't happen "
+"again.\n"
+msgstr ""
+"Hä? Kann diese Map nicht starten (ungültiger Spieltyp). Mapliste wird neu "
+"gefiltert.\n"
+
+#: qcsrc/menu/xonotic/playermodel.c:174
+msgid "<no model found>"
+msgstr "<Spielermodell nicht gefunden>"
+
+#: qcsrc/menu/xonotic/serverlist.c:185
+msgid "Remove"
+msgstr "Vergessen"
+
+#: qcsrc/menu/xonotic/serverlist.c:187
+msgid "Bookmark"
+msgstr "Speichern"
+
+#: qcsrc/menu/xonotic/serverlist.c:523
+msgid "Ping"
+msgstr "Ping"
+
+#: qcsrc/menu/xonotic/serverlist.c:524
+msgid "Host name"
+msgstr "Servername"
+
+#: qcsrc/menu/xonotic/serverlist.c:525
+msgid "Map"
+msgstr "Map"
+
+#: qcsrc/menu/xonotic/serverlist.c:526
+msgid "Type"
+msgstr "Typ"
+
+#: qcsrc/menu/xonotic/serverlist.c:527
+msgid "Players"
+msgstr "Spieler"
+
+#: qcsrc/menu/xonotic/skinlist.c:105
+msgid "<TITLE>"
+msgstr "<TITEL>"
+
+#: qcsrc/menu/xonotic/skinlist.c:106
+msgid "<AUTHOR>"
+msgstr "<AUTOR>"
+
+#: qcsrc/menu/xonotic/skinlist.c:163
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: qcsrc/menu/xonotic/slider_decibels.c:50
+msgid "VOL^OFF"
+msgstr "AUS"
+
+#: qcsrc/menu/xonotic/slider_decibels.c:52
+msgid "VOL^MAX"
+msgstr "MAX"
+
+#: qcsrc/menu/xonotic/slider_decibels.c:53
+#, c-format
+msgid "%s dB"
+msgstr "%s dB"
+
+#: qcsrc/menu/xonotic/slider_resolution.c:65
+#, c-format
+msgid "%dx%d"
+msgstr "%dx%d"
+
+#: qcsrc/menu/xonotic/util.qc:270
+#, c-format
+msgid "Received HTTP request data for an invalid id %d.\n"
+msgstr "HTTP-Antwort für ungültige ID %d erhalten.\n"
+
+#: qcsrc/menu/xonotic/util.qc:285
+#, c-format
+msgid "error receiving update notification: status is %d\n"
+msgstr "Fehler beim Empfang von Update-Information (Status: %d)\n"
+
+#: qcsrc/menu/xonotic/util.qc:290
+msgid "error: received HTML instead of an update notification\n"
+msgstr "Fehler: HTML statt Update-Information erhalten\n"
+
+#: qcsrc/menu/xonotic/util.qc:295
+msgid "error: received carriage returns from update notification server\n"
+msgstr "Fehler: Carriage-Returns in Update-Information enthalten\n"
+
+#: qcsrc/menu/xonotic/util.qc:316
+#, c-format
+msgid ""
+"Update can be downloaded at:\n"
+"%s\n"
+msgstr ""
+"Das Update kann bei:\n"
+"%s\n"
+"heruntergeladen werden.\n"
+
+#: qcsrc/menu/xonotic/util.qc:337
+msgid "Autogenerating mapinfo for newly added maps..."
+msgstr "Automatische Generierung von mapinfo-Dateien..."
+
+#: qcsrc/menu/xonotic/util.qc:367
+#, c-format
+msgid "^1%s TEST BUILD"
+msgstr "^1%s TESTVERSION"
+
+#: qcsrc/menu/xonotic/util.qc:432
+#, c-format
+msgid "Update to %s now!"
+msgstr "Jetzt auf %s updaten!"
+
+#: qcsrc/menu/xonotic/util.qc:509
+msgid ""
+"^1ERROR: Texture compression is required but not supported.\n"
+"^1Expect visual problems.\n"
+msgstr ""
+"^1FEHLER: Texturekompression ist notwendig aber nicht unterstützt.\n"
+"^1Darstellungsprobleme sind zu erwarten.\n"
+
+#: qcsrc/menu/xonotic/util.qc:531
+msgid "Arena"
+msgstr "Arena"
+
+#: qcsrc/menu/xonotic/util.qc:532
+msgid "Assault"
+msgstr "Assault"
+
+#: qcsrc/menu/xonotic/util.qc:533
+msgid "Capture The Flag"
+msgstr "Capture The Flag"
+
+#: qcsrc/menu/xonotic/util.qc:534
+msgid "Clan Arena"
+msgstr "Clan Arena"
+
+#: qcsrc/menu/xonotic/util.qc:535
+msgid "Deathmatch"
+msgstr "Deathmatch"
+
+#: qcsrc/menu/xonotic/util.qc:536
+msgid "Domination"
+msgstr "Domination"
+
+#: qcsrc/menu/xonotic/util.qc:537
+msgid "Freeze Tag"
+msgstr "Freeze Tag"
+
+#: qcsrc/menu/xonotic/util.qc:538
+msgid "Keepaway"
+msgstr "Keepaway"
+
+#: qcsrc/menu/xonotic/util.qc:539
+msgid "Key Hunt"
+msgstr "Key Hunt"
+
+#: qcsrc/menu/xonotic/util.qc:540
+msgid "Last Man Standing"
+msgstr "Last Man Standing"
+
+#: qcsrc/menu/xonotic/util.qc:541
+msgid "Nexball"
+msgstr "Nexball"
+
+#: qcsrc/menu/xonotic/util.qc:542
+msgid "Onslaught"
+msgstr "Onslaught"
+
+#: qcsrc/menu/xonotic/util.qc:543
+msgid "Race"
+msgstr "Race"
+
+#: qcsrc/menu/xonotic/util.qc:544
+msgid "Race CTS"
+msgstr "Race CTS"
+
+#: qcsrc/menu/xonotic/util.qc:545
+msgid "Runematch"
+msgstr "Runematch"
+
+#: qcsrc/menu/xonotic/util.qc:546
+msgid "Team Deathmatch"
+msgstr "Team Deathmatch"
+
+#: qcsrc/menu/xonotic/util.qc:565
+#, c-format
+msgid "@!#%'n Tuba Throwing"
+msgstr "@!#%'n Tuba-Werfen"
+
+#: qcsrc/menu/xonotic/util.qc:583
+msgid "Background:"
+msgstr "Hintergrund:"
+
+#: qcsrc/menu/xonotic/util.qc:585 qcsrc/menu/xonotic/util.qc:601
+#: qcsrc/menu/xonotic/util.qc:610 qcsrc/menu/xonotic/util.qc:618
+#: qcsrc/menu/xonotic/util.qc:630
+msgid "Default"
+msgstr "Standard"
+
+#: qcsrc/menu/xonotic/util.qc:596
+msgid "Use default"
+msgstr "Standard verwenden"
+
+#: qcsrc/menu/xonotic/util.qc:616
+msgid "Team Color:"
+msgstr "Teamfarbe:"
+
+#: qcsrc/menu/xonotic/util.qh:49
+msgid "Enable panel"
+msgstr "Panel aktivieren"
+
+#: qcsrc/server/w_crylink.qc:2
+msgid "Crylink"
+msgstr "Crylink"
+
+#: qcsrc/server/w_crylink.qc:664
+#, c-format
+msgid "%s succeeded at self-destructing themself with the Crylink"
+msgstr "%s zerstörte sich selbst erfolgreich mit der Crylink"
+
+#: qcsrc/server/w_crylink.qc:669
+#, c-format
+msgid "%s could not hide from %s's Crylink"
+msgstr "%s konnte sich nicht vor %ss Crylink verstecken"
+
+#: qcsrc/server/w_crylink.qc:671
+#, c-format
+msgid "%s was too close to %s's Crylink"
+msgstr "%s trat %ss Crylink zu nahe"
+
+#: qcsrc/server/w_crylink.qc:673
+#, c-format
+msgid "%s took a close look at %s's Crylink"
+msgstr "%s schaute sich %ss Crylink sehr genau an"
+
+#: qcsrc/server/w_electro.qc:2
+msgid "Electro"
+msgstr "Electro"
+
+#: qcsrc/server/w_electro.qc:571
+#, c-format
+msgid "%s could not remember where they put plasma"
+msgstr "%s vergaß, wo er das Plasma hingetan hatte"
+
+#: qcsrc/server/w_electro.qc:573
+#, c-format
+msgid "%s played with plasma"
+msgstr "%s spielte mit Plasma"
+
+#: qcsrc/server/w_electro.qc:580
+#, c-format
+msgid "%s just noticed %s's blue ball"
+msgstr "%s hat gerade %ss blaue Kugel bemerkt"
+
+#: qcsrc/server/w_electro.qc:582
+#, c-format
+msgid "%s got in touch with %s's blue ball"
+msgstr "%s kam mit %ss blauer Kugel in Kontakt"
+
+#: qcsrc/server/w_electro.qc:587
+#, c-format
+msgid "%s felt the electrifying air of %s's combo"
+msgstr "%s hat gespürt, wie %ss Combo die Luft elektrisierte"
+
+#: qcsrc/server/w_electro.qc:589
+#, c-format
+msgid "%s got too close to %s's blue beam"
+msgstr "%s kam zu nah an %ss blauen Strahl"
+
+#: qcsrc/server/w_electro.qc:591
+#, c-format
+msgid "%s was blasted by %s's blue beam"
+msgstr "%s wurde von %ss blauen Strahl erwischt"
+
+#: qcsrc/server/w_fireball.qc:2
+msgid "Fireball"
+msgstr "Fireball"
+
+#: qcsrc/server/w_fireball.qc:417
+#, c-format
+msgid "%s forgot about some firemine"
+msgstr "%s hat den Platz einer Feuermine vergessen"
+
+#: qcsrc/server/w_fireball.qc:419 qcsrc/server/w_hlac.qc:240
+#, c-format
+msgid "%s should have used a smaller gun"
+msgstr "%s hätte eine kleinere Waffe nehmen sollen"
+
+#: qcsrc/server/w_fireball.qc:426
+#, c-format
+msgid "%s tried to catch %s's firemine"
+msgstr "%s hat versucht %ss Feuermine zu fangen"
+
+#: qcsrc/server/w_fireball.qc:428
+#, c-format
+msgid "%s fatefully ignored %s's firemine"
+msgstr "%s hat tragischerweise %ss Feuermine ignoriert"
+
+#: qcsrc/server/w_fireball.qc:435
+#, c-format
+msgid "%s could not hide from %s's fireball"
+msgstr "%s konnte sich nicht vor %ss Feuerball verstecken"
+
+#: qcsrc/server/w_fireball.qc:437
+#, c-format
+msgid "%s saw the pretty lights of %s's fireball"
+msgstr "%s hat die hübschen Lichter von %ss Feuerball gesehen"
+
+#: qcsrc/server/w_fireball.qc:440
+#, c-format
+msgid "%s got too close to %s's fireball"
+msgstr "%s ist %ss Feuerball zu nahe getreten"
+
+#: qcsrc/server/w_fireball.qc:442
+#, c-format
+msgid "%s tasted %s's fireball"
+msgstr "%s hat von %ss Feuerball probiert"
+
+#: qcsrc/server/w_grenadelauncher.qc:2
+msgid "Mortar"
+msgstr "Mortar"
+
+#: qcsrc/server/w_grenadelauncher.qc:378
+#, c-format
+msgid "%s tried out his own grenade"
+msgstr "%s wollte wissen, ob seine Granate funktioniert"
+
+#: qcsrc/server/w_grenadelauncher.qc:380
+#, c-format
+msgid "%s detonated"
+msgstr "%s verfing sich in der eigenen Detonation"
+
+#: qcsrc/server/w_grenadelauncher.qc:386
+#, c-format
+msgid "%s didn't see %s's grenade"
+msgstr "%s hat %ss Granate nicht gesehen"
+
+#: qcsrc/server/w_grenadelauncher.qc:388
+#, c-format
+msgid "%s almost dodged %s's grenade"
+msgstr "%s ist fast %ss Granate ausgewichen"
+
+#: qcsrc/server/w_grenadelauncher.qc:390
+#, c-format
+msgid "%s ate %s's grenade"
+msgstr "%s nahm %ss Granate in den Mund"
+
+#: qcsrc/server/w_hagar.qc:2
+msgid "Hagar"
+msgstr "Hagar"
+
+#: qcsrc/server/w_hagar.qc:209 qcsrc/server/w_seeker.qc:655
+#, c-format
+msgid "%s played with tiny rockets"
+msgstr "%s hat mit kleinen Raketen gespielt"
+
+#: qcsrc/server/w_hagar.qc:213
+#, c-format
+msgid "%s hoped %s's missiles wouldn't bounce"
+msgstr "%s hat gehofft, dass %ss Raketen nicht von Wänden abprallen"
+
+#: qcsrc/server/w_hagar.qc:215 qcsrc/server/w_seeker.qc:661
+#, c-format
+msgid "%s was pummeled by %s"
+msgstr "^1%s^1 wurde von %s^1 erwischt"
+
+#: qcsrc/server/w_hlac.qc:2
+msgid "Heavy Laser Assault Cannon"
+msgstr "Heavy Laser Assault Cannon"
+
+#: qcsrc/server/w_hlac.qc:242
+#, c-format
+msgid "%s was cut down by %s"
+msgstr "^1%s^1 wurde von %s^1 niedergehauen"
+
+#: qcsrc/server/w_hook.qc:2
+msgid "Grappling Hook"
+msgstr "Grappling Hook"
+
+#: qcsrc/server/w_hook.qc:266 qcsrc/server/w_minstanex.qc:290
+#: qcsrc/server/w_nex.qc:267 qcsrc/server/w_porto.qc:296
+#: qcsrc/server/w_shotgun.qc:203 qcsrc/server/w_uzi.qc:317
+#, c-format
+msgid "%s did the impossible"
+msgstr "%s hat das Unmögliche geschafft"
+
+#: qcsrc/server/w_hook.qc:268
+#, c-format
+msgid "%s has run into %s's gravity bomb"
+msgstr "%s ist in %ss Gravitationsbombe reingelaufen"
+
+#: qcsrc/server/w_laser.qc:2
+msgid "Laser"
+msgstr "Laser"
+
+#: qcsrc/server/w_laser.qc:305
+#, c-format
+msgid "%s lasered themself to hell"
+msgstr "%s hat sich in die Hölle gelasert"
+
+#: qcsrc/server/w_laser.qc:309
+#, c-format
+msgid "%s was cut in half by %s's gauntlet"
+msgstr "%s ist von %ss Gauntlet halbiert worden"
+
+#: qcsrc/server/w_laser.qc:311
+#, c-format
+msgid "%s was lasered to death by %s"
+msgstr "^1%s^1 wurde von %s^1 zu Tode gelasert"
+
+#: qcsrc/server/w_minelayer.qc:2
+msgid "Mine Layer"
+msgstr "Mine Layer"
+
+#: qcsrc/server/w_minelayer.qc:495 qcsrc/server/w_rocketlauncher.qc:500
+#, c-format
+msgid "%s exploded"
+msgstr "%s ist explodiert"
+
+#: qcsrc/server/w_minelayer.qc:499
+#, c-format
+msgid "%s got too close to %s's mine"
+msgstr "%s ist %ss Mine zu nahe getreten"
+
+#: qcsrc/server/w_minelayer.qc:501
+#, c-format
+msgid "%s almost dodged %s's mine"
+msgstr "%s ist fast %ss Mine ausgewichen"
+
+#: qcsrc/server/w_minelayer.qc:503
+#, c-format
+msgid "%s stepped on %s's mine"
+msgstr "%s ist auf %ss Mine gelatscht"
+
+#: qcsrc/server/w_minstanex.qc:2
+msgid "MinstaNex"
+msgstr "MinstaNex"
+
+#: qcsrc/server/w_minstanex.qc:292 qcsrc/server/w_nex.qc:269
+#, c-format
+msgid "%s has been vaporized by %s"
+msgstr "^1%s^1 wurde von %s^1 vernichtet"
+
+#: qcsrc/server/w_nex.qc:2
+msgid "Nex"
+msgstr "Nex"
+
+#: qcsrc/server/w_porto.qc:2
+msgid "Port-O-Launch"
+msgstr "Port-O-Launch"
+
+#: qcsrc/server/w_porto.qc:298
+#, c-format
+msgid "%s felt %s doing the impossible to him"
+msgstr "%s hat gespürt, wie %s das Unmögliche für ihn getan hat"
+
+#: qcsrc/server/w_rocketlauncher.qc:2
+msgid "Rocket Launcher"
+msgstr "Rocket Launcher"
+
+#: qcsrc/server/w_rocketlauncher.qc:504
+#, c-format
+msgid "%s got too close to %s's rocket"
+msgstr "%s ist %ss Rakete zu nahe getreten"
+
+#: qcsrc/server/w_rocketlauncher.qc:506
+#, c-format
+msgid "%s almost dodged %s's rocket"
+msgstr "%s ist fast %ss Rakete ausgewichen"
+
+#: qcsrc/server/w_rocketlauncher.qc:508
+#, c-format
+msgid "%s ate %s's rocket"
+msgstr "%s hat %ss Rakete in den Mund genommen"
+
+#: qcsrc/server/w_seeker.qc:2
+msgid "T.A.G. Seeker"
+msgstr "T.A.G. Seeker"
+
+#: qcsrc/server/w_seeker.qc:659
+#, c-format
+msgid "%s was tagged by %s"
+msgstr "^1%s^1 wurde von %s^1 getagged"
+
+#: qcsrc/server/w_shotgun.qc:2
+msgid "Shotgun"
+msgstr "Shotgun"
+
+#: qcsrc/server/w_shotgun.qc:207
+#, c-format
+msgid "%2$s ^7slapped %1$s ^7around a bit with a large ^2shotgun"
+msgstr "%2$1s ^7hat %1$s ^7ein wenig mit einer großen Schrotflinte geschlagen"
+
+#: qcsrc/server/w_shotgun.qc:209
+#, c-format
+msgid "%s was gunned by %s"
+msgstr "^1%s^1 wurde von %s^1 erschossen"
+
+#: qcsrc/server/w_sniperrifle.qc:2
+msgid "Sniper Rifle"
+msgstr "Sniper Rifle"
+
+#: qcsrc/server/w_sniperrifle.qc:229
+#, c-format
+msgid "%s shot themself automatically"
+msgstr "%s hat sich vollautomatisch selbst erschossen"
+
+#: qcsrc/server/w_sniperrifle.qc:231
+#, c-format
+msgid "%s sniped themself somehow"
+msgstr "%s hat so scharf geschossen, dass er sich selbst getroffen hat"
+
+#: qcsrc/server/w_sniperrifle.qc:238
+#, c-format
+msgid "%s failed to hide from %s's bullet hail"
+msgstr "%s hat es nicht geschafft, sich vor %ss Kugelhagel zu verstecken"
+
+#: qcsrc/server/w_sniperrifle.qc:240
+#, c-format
+msgid "%s died in %s's bullet hail"
+msgstr "%s ist in %ss Kugelhagel gefallen"
+
+#: qcsrc/server/w_sniperrifle.qc:247
+#, c-format
+msgid "%s failed to hide from %s's rifle"
+msgstr "%s hat es nicht geschafft, sich vor %ss Gewehr zu verstecken"
+
+#: qcsrc/server/w_sniperrifle.qc:252
+#, c-format
+msgid "%s got hit in the head by %s"
+msgstr "%s hat ein Loch im Kopf bekommen; schuld war %s"
+
+#: qcsrc/server/w_sniperrifle.qc:254 qcsrc/server/w_uzi.qc:321
+#, c-format
+msgid "%s was sniped by %s"
+msgstr "^1%s^1 wurde von %s^1 erledigt"
+
+#: qcsrc/server/w_tuba.qc:2
+#, c-format
+msgid "@!#%'n Tuba"
+msgstr "@!#%'n Tuba"
+
+#: qcsrc/server/w_tuba.qc:263
+#, c-format
+msgid "%s hurt his own ears with the @!#%%'n Tuba"
+msgstr ""
+"%s haben die Ohren geschmerzt von seinem eigenen Spiel auf der @!#%%'n Tuba"
+
+#: qcsrc/server/w_tuba.qc:267
+#, c-format
+msgid "%s died of %s's great playing on the @!#%%'n Tuba"
+msgstr ""
+"%s ist an seinen Ohrenschmerzen, die von %ss großartigem Spiel auf der @!#"
+"%%'n Tuba stammten, gestorben"
+
+#: qcsrc/server/w_uzi.qc:2
+msgid "Machine Gun"
+msgstr "Machine Gun"
+
+#: qcsrc/server/w_uzi.qc:323
+#, c-format
+msgid "%s was riddled full of holes by %s"
+msgstr "%s ist von %s durchlöchert worden wie ein Schweizer Käse"
--- /dev/null
+# Xonotic Menu
+# Copyright (C) 2011 Team Xonotic
+# This file is distributed under the same license as the Xonotic package.
+# Rodrigo Mouton Laudin <ratogenesis@gmail.com>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Xonotic 0.1preview\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-04-30 10:07+0200\n"
+"Last-Translator: Rodrigo Mouton Laudin <ratogenesis@gmail.com>\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"PO-Revisión-Date: 2011-03-24 19:40+0100\n"
+
+#: qcsrc/menu/gamecommand.qc:47
+#, c-format
+msgid "error: status is %d\n"
+msgstr "error: estado es %d\n"
+
+#: qcsrc/menu/gamecommand.qc:65
+msgid "Usage: menu_cmd command..., where possible commands are:\n"
+msgstr "Uso: menu_cmd commando..., donde los posibles comandos son:\n"
+
+#: qcsrc/menu/gamecommand.qc:66
+msgid " sync - reloads all cvars on the current menu page\n"
+msgstr " sync - recarga todas las cvar en el menu actual\n"
+
+#: qcsrc/menu/gamecommand.qc:67
+msgid " directmenu ITEM - select a menu item as main item\n"
+msgstr " directmenu ITEM - selecciona un item del menu como principal\n"
+
+#: qcsrc/menu/gamecommand.qc:193
+msgid "error creating curl handle\n"
+msgstr "error creando el manejador curl\n"
+
+#: qcsrc/menu/gamecommand.qc:239
+msgid "Invalid command. For a list of supported commands, try menu_cmd help.\n"
+msgstr ""
+"Comando no valido. Para una lista de comandos soportados, teclea menu_cmd "
+"help\n"
+
+#: qcsrc/menu/item/gecko.c:49
+msgid "Browser not initialized!"
+msgstr "navegador no inicializado!"
+
+#: qcsrc/menu/item/label.c:63
+#, c-format
+msgid "NOTE: label text %s too wide for label, condensed by factor %f\n"
+msgstr ""
+"NOTA: texto %s demasiado largo para la etiqueta, condensada por factor %f\n"
+
+#: qcsrc/menu/item/listbox.c:300
+#, c-format
+msgid "Item %d"
+msgstr "Item %d"
+
+#: qcsrc/menu/item/slider.c:64
+#, c-format
+msgid "%d (%s)"
+msgstr "%d (%s)"
+
+#: qcsrc/menu/item/textslider.c:29 qcsrc/menu/item/textslider.c:31
+msgid "custom"
+msgstr "Personalizado"
+
+#: qcsrc/menu/menu.qc:29
+#, fuzzy, c-format
+msgid "^4MQC Build information: ^1%s\n"
+msgstr "^4MQC Información de compilación/build %s\n"
+
+#: qcsrc/menu/xonotic/campaign.c:284
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:66
+msgid "???"
+msgstr "???"
+
+#: qcsrc/menu/xonotic/campaign.c:285
+#, c-format
+msgid "Level %d: %s"
+msgstr "Nivel %d: %s"
+
+#: qcsrc/menu/xonotic/cvarlist.c:85
+msgid "will be saved to config.cfg"
+msgstr "será guardado en config.cfg"
+
+#: qcsrc/menu/xonotic/cvarlist.c:87
+msgid "will not be saved"
+msgstr "no será guardado"
+
+#: qcsrc/menu/xonotic/cvarlist.c:89
+msgid "private"
+msgstr "privado"
+
+#: qcsrc/menu/xonotic/cvarlist.c:91
+msgid "engine setting"
+msgstr "configuración del motor"
+
+#: qcsrc/menu/xonotic/cvarlist.c:93
+msgid "read only"
+msgstr "sólo lectura"
+
+#: qcsrc/menu/xonotic/dialog_credits.c:5
+msgid "Credits"
+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:55
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:61
+#: qcsrc/menu/xonotic/dialog_singleplayer_winner.c:21
+msgid "OK"
+msgstr "OK"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:4
+msgid "Welcome"
+msgstr "Bienvenido"
+
+#: 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 ""
+"Bienvenido a Xonotic, por favor seleccióne su Lenguaje preferido y luego "
+"ingrese su nombre de jugador. Estas opciones pueden ser modificadas luego "
+"utilizando el menú de configuración"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:38
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:35
+msgid "Text language:"
+msgstr "Lenguaje:"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:47
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:40
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:39
+msgid "Name:"
+msgstr "Nombre:"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:69
+msgid "Save settings"
+msgstr "Guardar configuración"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:4
+msgid "Ammo Panel"
+msgstr "panel de munición"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:22
+msgid "Ammunition display:"
+msgstr "Pantalla de munición:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:25
+msgid "Show only current ammo type"
+msgstr "Mostrar sólo la munición actual"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:29
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:28
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:40
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:28
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:40
+msgid "Left"
+msgstr "Izquierda"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:30
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:30
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:41
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:30
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:41
+msgid "Right"
+msgstr "Derecha"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:4
+msgid "Chat Panel"
+msgstr "Panel de chat"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:22
+msgid "Chat entries:"
+msgstr "Entradas de chat:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:25
+msgid "Chat size:"
+msgstr "Tamaño del chat:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:29
+msgid "Chat lifetime:"
+msgstr "Tiempo de vida del chat:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:33
+msgid "Chat beep sound"
+msgstr "Alarma de chat"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_engineinfo.c:4
+msgid "Engine Info Panel"
+msgstr "Panel de Información del Motor"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_engineinfo.c:22
+msgid "Engine info:"
+msgstr "Información del Motor:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_engineinfo.c:25
+msgid "Use an averaging algorithm for fps"
+msgstr "Usar un algoritmo de promediado de fps"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:4
+msgid "Health/Armor Panel"
+msgstr "Panel de Vida/Armadura"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:22
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:22
+msgid "Enable status bar"
+msgstr "Activar barra de estado"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:24
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:24
+msgid "Status bar alignment:"
+msgstr "Alineado de barra de estado:"
+
+#: 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 "Dentro"
+
+#: 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 "Fuera"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:37
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:37
+msgid "Icon alignment:"
+msgstr "Alineado de íconos"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:45
+msgid "Flip health and armor positions"
+msgstr "Intercambiar la posición de vida y armadura"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_infomessages.c:4
+msgid "Info Messages Panel"
+msgstr "Panel de Información de Mensajes"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_infomessages.c:22
+msgid "Info messages:"
+msgstr "Información de mensajes:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_infomessages.c:25
+msgid "Flip align"
+msgstr "Intercambiar alineamiento"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_modicons.c:4
+msgid "Mod Icons Panel"
+msgstr "Panel de íconos modificado"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:4
+msgid "Notification Panel"
+msgstr "Panel de notificaciónes"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:22
+msgid "Notifications:"
+msgstr "Notificaciones:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:25
+msgid "Also print notifications to the console"
+msgstr "Imprimir tambien notificaciónes en la consola"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:28
+msgid "Flip notify order"
+msgstr "Intercambiar orden de notificaciónes"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:31
+msgid "Entry lifetime:"
+msgstr "Tiempo de vida de la entrada:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:35
+msgid "Entry fadetime:"
+msgstr "Desaparecimento de la entrada:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:4
+msgid "Powerups Panel"
+msgstr "Panel de Poderes"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:45
+msgid "Flip strength and shield positions"
+msgstr "Intercambiar posición de escudo y fuerza"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:4
+msgid "Pressed Keys Panel"
+msgstr "Panel de teclas presionadas"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:21
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:21
+msgid "Panel disabled"
+msgstr "Panel desactivado"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:22
+msgid "Panel enabled when spectating"
+msgstr "Panel activado cuando este espectador"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:23
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:23
+msgid "Panel always enabled"
+msgstr "Panel sempre activado"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:30
+msgid "Forced aspect:"
+msgstr "Forzar aspecto:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_racetimer.c:4
+msgid "Race Timer Panel"
+msgstr "Panel de Cronómetro de Carrera"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:4
+msgid "Radar Panel"
+msgstr "Panel de Radar"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:22
+msgid "Panel enabled in teamgames"
+msgstr "Panel activo en juegos de equipo"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:29
+msgid "Radar:"
+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:608
+msgid "Alpha:"
+msgstr "Transparencia:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:36
+msgid "Rotation:"
+msgstr "Rotación:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:38
+msgid "Forward"
+msgstr "Al frente"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:39
+msgid "West"
+msgstr "Oeste"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:40
+msgid "South"
+msgstr "Sul"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:41
+msgid "East"
+msgstr "Este"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:42
+msgid "North"
+msgstr "Norte"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:46
+msgid "Scale:"
+msgstr "Escala:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:50
+msgid "Zoom mode:"
+msgstr "Modo de zoom:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:52
+msgid "Zoomed in"
+msgstr "Ampliado"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:53
+msgid "Zoomed out"
+msgstr "Reducido"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:54
+msgid "Always zoomed"
+msgstr "Siempre ampliado"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:55
+msgid "Never zoomed"
+msgstr "Nunca ampliado"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_score.c:4
+msgid "Score Panel"
+msgstr "Panel de Puntos"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_timer.c:4
+msgid "Timer Panel"
+msgstr "Panel del Temporizador"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_timer.c:22
+msgid "Timer:"
+msgstr "Temporizador:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_timer.c:25
+msgid "Show elapsed time"
+msgstr "Mostrar tiempo pasado"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_vote.c:4
+msgid "Vote Panel"
+msgstr "Panel de votos"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_vote.c:22
+msgid "Alpha after voting:"
+msgstr "Transparencia despues del voto:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:4
+msgid "Weapons Panel"
+msgstr "Panel de armas"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:24
+msgid "Fade out after:"
+msgstr "Desaparecer despues:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:26
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:36
+msgid "Never"
+msgstr "Nunca"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:28
+#, c-format
+msgid "%ds"
+msgstr "%ds"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:32
+msgid "Fade effect:"
+msgstr "Efecto de desvanecimento"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:33
+#, fuzzy
+msgid "EF^None"
+msgstr "Ninguno"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:35
+msgid "Slide"
+msgstr "Corte"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:37
+msgid "Alpha"
+msgstr "Transparencia"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:40
+msgid "Weapon icons:"
+msgstr "íconos de armas"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:43
+msgid "Show weapon ID as:"
+msgstr "Mostra ID de arma como:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:44
+#, fuzzy
+msgid "SHOWAS^None"
+msgstr "Nenhum"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:45
+msgid "Number"
+msgstr "Número"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:46
+msgid "Bind"
+msgstr "Lazo"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:49
+msgid "Show Accuracy"
+msgstr "Mostrar precision"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:50
+msgid "Show Ammo"
+msgstr "Mostrar munición"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:53
+msgid "Ammo bar color:"
+msgstr "Color de la barra de munición:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:59
+msgid "Ammo bar alpha:"
+msgstr "Transparencia de la barra de munición:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:4
+msgid "Panel HUD Setup"
+msgstr "configuración del panel HUD"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:21
+msgid "Panel background defaults:"
+msgstr "Panel de fondo por defecto:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:25
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:37
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:52
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:91 qcsrc/menu/xonotic/util.qc:586
+#: qcsrc/menu/xonotic/util.qc:602 qcsrc/menu/xonotic/util.qc:619
+msgid "Disable"
+msgstr "Desactivar"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:30
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:77 qcsrc/menu/xonotic/util.qc:591
+msgid "Color:"
+msgstr "Color:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:35 qcsrc/menu/xonotic/util.qc:599
+msgid "Border size:"
+msgstr "Tamaño de limite:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:50
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:89
+msgid "Team color:"
+msgstr "Color del equipo:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:58 qcsrc/menu/xonotic/util.qc:625
+msgid "Test team color in configure mode"
+msgstr "Probar color del equipo en modo configuración"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:61 qcsrc/menu/xonotic/util.qc:628
+msgid "Padding:"
+msgstr "Relleno:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:68
+msgid "HUD Dock:"
+msgstr "Muelle de HUD:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:70
+#, fuzzy
+msgid "DOCK^Disabled"
+msgstr "Desactivado"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:71
+#, fuzzy
+msgid "DOCK^Small"
+msgstr "Pequeno"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:72
+#, fuzzy
+msgid "DOCK^Medium"
+msgstr "Medio"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:73
+#, fuzzy
+msgid "DOCK^Large"
+msgstr "Grande"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:96
+msgid "Grid settings:"
+msgstr "Configuración de grilla:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:99
+msgid "Snap panels to grid"
+msgstr "Ajustar paneles a la grilla"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:102
+msgid "Grid size:"
+msgstr "Tamaño de grilla:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:103
+msgid "X:"
+msgstr "X:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:109
+msgid "Y:"
+msgstr "Y:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:117
+msgid "Exit setup"
+msgstr "Salir de la configuración"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:4
+msgid "Multiplayer"
+msgstr "Multijugador"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:18
+msgid "Servers"
+msgstr "Servidores"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:19
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:5
+msgid "Create"
+msgstr "Crear"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:20
+msgid "Demos"
+msgstr "Demos"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:21
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:5
+msgid "Player Setup"
+msgstr "Jugador"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:35
+msgid "Game type:"
+msgstr "Tipo de juego:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:47
+msgid "Match settings:"
+msgstr "Configuración del encuentro:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:50
+msgid "Time limit:"
+msgstr "Limite de tiempo:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:54
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:62
+msgid "Use map specified default"
+msgstr "Usar definicion especifica del mapa"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:57
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:156
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:157
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:158
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:162
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:163
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:164
+msgid "Point limit:"
+msgstr "Limite de puntos:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:65
+msgid "Player slots:"
+msgstr "Slots de Jugadores:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:68
+msgid "Number of bots:"
+msgstr "Número de bots:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:72
+msgid "Bot skill:"
+msgstr "Dificultad del bot:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:75
+msgid "Botlike"
+msgstr "Bot"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:76
+msgid "Beginner"
+msgstr "Iniciado"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:77
+msgid "You will win"
+msgstr "Ganaras"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:78
+msgid "You can win"
+msgstr "Puedes ganar"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:79
+msgid "You might win"
+msgstr "Podrias ganar ganar"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:80
+msgid "Advanced"
+msgstr "Avanzado"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:81
+msgid "Expert"
+msgstr "Experto"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:82
+msgid "Pro"
+msgstr "Profesional"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:83
+msgid "Assassin"
+msgstr "Asesino"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:84
+msgid "Unhuman"
+msgstr "No humano"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:85
+msgid "Godlike"
+msgstr "Semi-dios"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:89
+msgid "Mutators..."
+msgstr "Mutators..."
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:98
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:84
+msgid "Advanced settings..."
+msgstr "Configuración avanzada..."
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:105
+msgid "Map list:"
+msgstr "Lista de mapas:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:111
+msgid "Select all"
+msgstr "Seleccionar todos"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:114
+msgid "Select none"
+msgstr "Seleccionar ninguno"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:120
+msgid "Start Multiplayer!"
+msgstr "Comenzar Multijugador!"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:155
+msgid "Capture limit:"
+msgstr "Limite de capturas:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:159
+msgid "Lives:"
+msgstr "Vidas:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:160
+msgid "Laps:"
+msgstr "Vueltas:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:161
+msgid "Goals:"
+msgstr "Metas:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:165
+msgid "Frag limit:"
+msgstr "Limite de Frags:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:6
+msgid "Advanced server settings"
+msgstr "configuración avanzada del servidor"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:25
+msgid "Game settings:"
+msgstr "Configuración del juego:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:28
+msgid "Allow spectating"
+msgstr "Permitir espectador"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:31
+msgid "Spawn shield:"
+msgstr "Proteccion del colocado:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:36
+msgid "Game speed:"
+msgstr "Velocidad del juego:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:40
+msgid "Teamplay settings:"
+msgstr "Configuración del juego en equipo:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:43
+msgid "Friendly fire scale:"
+msgstr "Escala de daño a aliados:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:47
+msgid "Virtual friendly fire (effect only)"
+msgstr "Daño virtual a aliados (apenas afecta)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:50
+msgid "Friendly fire penalty:"
+msgstr "Penalizacion de daño a aliados:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:54
+msgid "Virtual penalty (effect only)"
+msgstr "Penalizacion virtual (apenas afecta)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:57
+msgid "Teams:"
+msgstr "Equipos:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:66
+msgid "Map voting:"
+msgstr "Votacion de mapa:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:68
+msgid "No voting"
+msgstr "No votar"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:69
+msgid "2 choices"
+msgstr "2 opciones"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:70
+msgid "3 choices"
+msgstr "3 opciones"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:71
+msgid "4 choices"
+msgstr "4 opciones"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:72
+msgid "5 choices"
+msgstr "5 opciones"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:73
+msgid "6 choices"
+msgstr "6 opciones"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:74
+msgid "7 choices"
+msgstr "7 opciones"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:75
+msgid "8 choices"
+msgstr "8 opciones"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:76
+msgid "9 choices"
+msgstr "9 opciones"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:79
+msgid "Simple majority wins vcall"
+msgstr "La mayoría simple gana"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:5
+msgid "Map Information"
+msgstr "Información del mapa"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:49
+msgid "Full item placement"
+msgstr "Colocado total del item"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:49
+msgid "MinstaGib only"
+msgstr "Sólo MinstaGib"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:78
+msgid "Title:"
+msgstr "Título:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:84
+msgid "Author:"
+msgstr "Autor:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:90
+msgid "Features:"
+msgstr "Características:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:95
+msgid "Game types:"
+msgstr "Modos de juego:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:119
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:314
+msgid "Close"
+msgstr "Cerrar"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:122
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:46
+msgid "Play"
+msgstr "Jugar"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:7
+msgid "Mutators"
+msgstr "Mutators"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:33
+msgid "All Weapons Arena"
+msgstr "Arena con todas las armas"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:35
+msgid "Most Weapons Arena"
+msgstr "Arena con la mayoría de las Armas"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:56
+#, c-format
+msgid "%s Arena"
+msgstr "%s Arena"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:68
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:167
+msgid "Dodging"
+msgstr "Agacharse"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:70
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:250
+msgid "MinstaGib"
+msgstr "MinstaGib"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:72
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:253
+msgid "NIX"
+msgstr "NIX"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:74
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:205
+msgid "Rocket Flying"
+msgstr "Vuelo de cohete"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:78
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:264
+msgid "No start weapons"
+msgstr "Empezar sin armas"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:80
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:189
+msgid "Low gravity"
+msgstr "Poca gravedad"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:82
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:170
+msgid "Cloaked"
+msgstr "Escondido"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:84
+msgid "Hook"
+msgstr "Gancho"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:86
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:173
+msgid "Midair"
+msgstr "aire"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:88
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:176
+msgid "Vampire"
+msgstr "Vampiro"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:90
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:208
+msgid "Piñata"
+msgstr "Piñata"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:92
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:211
+msgid "Weapons stay"
+msgstr "Las armas permanecen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:94
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:180
+msgid "Blood loss"
+msgstr "Pérdida de sangre"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:96
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:202
+msgid "Jet pack"
+msgstr "Jetpack"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:98
+#, fuzzy
+msgid "MUT^None"
+msgstr "Ninguno"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:164
+msgid "Gameplay mutators:"
+msgstr "Mutators del juego"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:196
+msgid "Weapon & item mutators:"
+msgstr "Mutators de armas e items"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:199
+msgid "Grappling hook"
+msgstr "Gancho de trepar"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:215
+msgid "Weapon arenas:"
+msgstr "Arenas de armas:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:218
+msgid "Regular (no arena)"
+msgstr "Regular (no arena)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:239
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:256
+msgid "with laser"
+msgstr "con laser"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:247
+msgid "Special arenas:"
+msgstr "Arenas especiales:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:260
+msgid "Most weapons"
+msgstr "Mayoría de las Armas"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:4
+msgid "Demo"
+msgstr "Demo"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:28
+msgid "Record demos while playing"
+msgstr "Grabar demos mientras se juega"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:32
+#: 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_join.c:29
+#: qcsrc/menu/xonotic/dialog_settings_input.c:41
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:24
+msgid "Clear"
+msgstr "Limpiar"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:43
+msgid "Timedemo"
+msgstr "Demo temporizado"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:4
+msgid "Join"
+msgstr "Ingresar"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:36
+#, fuzzy
+msgid "SRVS^Empty"
+msgstr "Vacío"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:40
+#, fuzzy
+msgid "SRVS^Full"
+msgstr "Completo"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:44
+msgid "Pause"
+msgstr "Pausar"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:56
+msgid "Address:"
+msgstr "Direccion:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:67
+msgid "Info..."
+msgstr "Información..."
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:72
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:317
+msgid "Join!"
+msgstr "Ingresar!"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:5
+msgid "Server Information"
+msgstr "Información del 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
+msgid "N/A"
+msgstr "N/A"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:158
+#, c-format
+msgid "%d/%d, %d free player slots"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:172
+#, c-format
+msgid "%d modified settings"
+msgstr "%d configuración modificada"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:172
+msgid "Official settings"
+msgstr "configuración oficial"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:197
+msgid "N/A (can't connect)"
+msgstr "N/A (no se puede conectar)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:205
+msgid "not supported (can't connect)"
+msgstr "no soportado (no se puede conectar)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:207
+msgid "not supported (won't encrypt)"
+msgstr "no soportado (sin cifrado)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:211
+msgid "supported (will encrypt)"
+msgstr "soportado (cifrado)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:213
+msgid "supported (won't encrypt)"
+msgstr "suportado (no cifrado)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:217
+msgid "requested (will encrypt)"
+msgstr "pedido (cifrado)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:219
+msgid "requested (won't encrypt)"
+msgstr "pedido (sin cifrado)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:223
+msgid "required (can't connect)"
+msgstr "requerido (no se puede conectarr)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:225
+msgid "required (will encrypt)"
+msgstr "requerido (cifrado)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:246
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:269
+msgid "Players:"
+msgstr "Jugadores:"
+
+#: 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:259
+msgid "Map:"
+msgstr "Mapa:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:264
+msgid "Gameplay:"
+msgstr "Jugabilidad:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:274
+msgid "Bots:"
+msgstr "Bots:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:279
+msgid "Mod:"
+msgstr "Mod:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:284
+msgid "Version:"
+msgstr "Version:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:289
+msgid "Ping:"
+msgstr "Ping:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:295
+msgid "CA:"
+msgstr "CA:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:301
+msgid "Key:"
+msgstr "Llave:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:307
+msgid "Encryption:"
+msgstr "Encriptación:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:63
+msgid "Model:"
+msgstr "Modelo:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:88
+msgid "Field of view:"
+msgstr "Campo de visión:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:92
+msgid "View bobbing:"
+msgstr "Ver flotando:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:96
+msgid "Zoom factor:"
+msgstr "Factor de zoom:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:100
+msgid "Zoom speed:"
+msgstr "Velocidad de zoom:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:103
+msgid "Weapon settings..."
+msgstr "Configuración de 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:130
+msgid "Crosshair size:"
+msgstr "Tamaño da mira:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:134
+msgid "Crosshair alpha:"
+msgstr "Transparencia da mira:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:138
+msgid "Crosshair color:"
+msgstr "Color de mira:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:140
+msgid "By health"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:143
+#, fuzzy
+msgid "Custom"
+msgstr "Personalizado"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:148
+msgid "Enable center dot"
+msgstr "Activar punto central"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:151
+msgid "Size:"
+msgstr "Tamaño:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:158
+msgid "Hit test:"
+msgstr "Test de tiro:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:159
+#, fuzzy
+msgid "HTST^None"
+msgstr "Ninguno"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:160
+msgid "TrueAim"
+msgstr "Apuntado"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:161
+msgid "Enemies"
+msgstr "Enemigos"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:164
+msgid "Waypoints setup..."
+msgstr "Configurar puntos de camino..."
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:169
+msgid "Enter HUD editor"
+msgstr "Entrar en el editor de HUD"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:174
+msgid "Force models:"
+msgstr "Forzar modelos:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:175
+#, fuzzy
+msgid "MDL^None"
+msgstr "Ninguno"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:176
+#, fuzzy
+msgid "MDL^Custom"
+msgstr "Modificado"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:177
+#, fuzzy
+msgid "MDL^All"
+msgstr "Todos"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:180
+msgid "Disable gore effects"
+msgstr "Desactivar efectos de sangre"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:182
+msgid "Gibs:"
+msgstr "Gibs:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:184
+#, fuzzy
+msgid "GIBS^None"
+msgstr "Ninguno"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:185
+msgid "GIBS^Few"
+msgstr "Pocas"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:186
+#, fuzzy
+msgid "GIBS^Many"
+msgstr "Muchas"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:187
+#, fuzzy
+msgid "GIBS^Lots"
+msgstr "Abundante"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:191
+msgid "Damage splash:"
+msgstr "Daño colateral:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:195
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:178
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:194
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:30
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:41
+#: qcsrc/menu/xonotic/dialog_settings_video.c:105
+msgid "Apply immediately"
+msgstr "Aplicar imediatamente"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:5
+msgid "Waypoints"
+msgstr "Puntos de camino"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:23
+msgid "Show base waypoints"
+msgstr "Mostrar puntos de camino"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:25
+msgid "Waypoint scale:"
+msgstr "Escala:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:29
+msgid "Waypoint alpha:"
+msgstr "Transparencia:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:34
+msgid "Show names:"
+msgstr "Mostrar nombres:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:37
+msgid "Teammates"
+msgstr "Compañeros de equipo"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:38
+msgid "All players"
+msgstr "Todos los jugadores"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:6
+msgid "Weapon settings"
+msgstr "configuración de armas"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:29
+msgid "Weapon priority list:"
+msgstr "Lista de prioridad de armas:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:34
+msgid "Up"
+msgstr "Arriba"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:37
+msgid "Down"
+msgstr "Abajo"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:41
+msgid "Use priority list for weapon cycling"
+msgstr "Usar lista de prioridad para ciclo de armas"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:43
+msgid "Auto switch weapons on pickup"
+msgstr "Cambiar de arma al recojer"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:45
+msgid "Draw 1st person weapon model"
+msgstr "Dibujar modelo de arma en primera persona"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:48
+msgid "Left align"
+msgstr "Alinear a la izquierda"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:50
+msgid "Right align"
+msgstr "Alinear a la derecha"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:53
+msgid "Flip view horizontally"
+msgstr "Invertir vista horizontalmente"
+
+#: qcsrc/menu/xonotic/dialog_news.c:4
+msgid "News"
+msgstr "Novedades"
+
+#: qcsrc/menu/xonotic/dialog_news.c:18
+msgid "http://www.xonotic.org/team/blog/"
+msgstr "http://www.xonotic.org/team/blog/"
+
+#: qcsrc/menu/xonotic/dialog_quit.c:4
+msgid "Quit"
+msgstr "Salir"
+
+#: qcsrc/menu/xonotic/dialog_quit.c:17
+msgid "Are you sure you want to quit?"
+msgstr "Estas seguro de querer salir?"
+
+#: qcsrc/menu/xonotic/dialog_quit.c:20
+msgid "Yes"
+msgstr "Si"
+
+#: qcsrc/menu/xonotic/dialog_quit.c:21
+msgid "No"
+msgstr "No"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:4
+msgid "Settings"
+msgstr "Configuración"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:18
+#: qcsrc/menu/xonotic/dialog_settings_input.c:4
+msgid "Input"
+msgstr "Entrada"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:19
+#: qcsrc/menu/xonotic/dialog_settings_video.c:4
+msgid "Video"
+msgstr "Video"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:20
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:4
+msgid "Effects"
+msgstr "Efectos"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:21
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:4
+msgid "Audio"
+msgstr "Sonido"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:22
+#: qcsrc/menu/xonotic/dialog_settings_network.c:4
+msgid "Network"
+msgstr "Red"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:23
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:4
+msgid "Misc"
+msgstr "Misc"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:27
+msgid "Master:"
+msgstr "Principal:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:33
+msgid "Music:"
+msgstr "Musica:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:40
+#, fuzzy
+msgid "VOL^Ambient:"
+msgstr "Ambiente:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:48
+msgid "Info:"
+msgstr "Información:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:57
+msgid "Items:"
+msgstr "Items:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:65
+msgid "Pain:"
+msgstr "Dolor:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:73
+msgid "Player:"
+msgstr "Jugador:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:81
+msgid "Shots:"
+msgstr "Disparos:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:88
+msgid "Voice:"
+msgstr "Voz:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:96
+msgid "Weapons:"
+msgstr "Armas:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:103
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:161
+msgid "Frequency:"
+msgstr "Frecuencia:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:105
+msgid "8 kHz"
+msgstr "8 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:106
+msgid "11.025 kHz"
+msgstr "11.025 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:107
+msgid "16 kHz"
+msgstr "16 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:108
+msgid "22.05 kHz"
+msgstr "22.05 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:109
+msgid "24 kHz"
+msgstr "24 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:110
+msgid "32 kHz"
+msgstr "32 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:111
+msgid "44.1 kHz"
+msgstr "44.1 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:112
+msgid "48 kHz"
+msgstr "48 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:115
+msgid "Channels:"
+msgstr "Canales:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:117
+msgid "Mono"
+msgstr "Mono"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:118
+msgid "Stereo"
+msgstr "Stereo"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:119
+msgid "2.1"
+msgstr "2.1"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:120
+msgid "4"
+msgstr "4"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:121
+msgid "5"
+msgstr "5"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:122
+msgid "5.1"
+msgstr "5.1"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:123
+msgid "6.1"
+msgstr "6.1"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:124
+msgid "7.1"
+msgstr "7.1"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:128
+msgid "Swap Stereo"
+msgstr "Intercambiar Stereo"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:132
+msgid "Headphone friendly mode"
+msgstr "Modo para auricular"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:136
+msgid "Spatial voices:"
+msgstr "Voces espaciales:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:137
+#, fuzzy
+msgid "VOCS^None"
+msgstr "Ninguno"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:138
+#, fuzzy
+msgid "VOCS^Taunts"
+msgstr "bromas"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:139
+#, fuzzy
+msgid "VOCS^All"
+msgstr "Todos"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:142
+msgid "Taunt range:"
+msgstr "Nivel de taunts:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:145
+#, fuzzy
+msgid "RNG^Very short"
+msgstr "Bien corto"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:146
+#, fuzzy
+msgid "RNG^Short"
+msgstr "Corto"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:147
+#, fuzzy
+msgid "RNG^Normal"
+msgstr "Normal"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:148
+#, fuzzy
+msgid "RNG^Long"
+msgstr "Alto"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:149
+#, fuzzy
+msgid "RNG^Full"
+msgstr "Total"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:156
+msgid "Automatic taunts"
+msgstr "Taunts Automatico"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:165
+msgid "Time warning:"
+msgstr "Aviso de tiempo:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:167
+#, fuzzy
+msgid "WRN^None"
+msgstr "Ninguno"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:168
+msgid "1 minute"
+msgstr "1 minuto"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:169
+msgid "5 minutes"
+msgstr "5 minutos"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:170
+#, fuzzy
+msgid "WRN^Both"
+msgstr "Ambos"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:173
+msgid "Hit indicator"
+msgstr "Indicador de tiro acertado"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:175
+msgid "Menu sounds"
+msgstr "Sonidos del menú"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:38
+msgid "Quality preset:"
+msgstr "Predefinición de calidad:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:41
+#, fuzzy
+msgid "PRE^OMG!"
+msgstr "OMG!"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:42
+#, fuzzy
+msgid "PRE^Low"
+msgstr "Bajo"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:43
+#, fuzzy
+msgid "PRE^Medium"
+msgstr "Media"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:44
+#, fuzzy
+msgid "PRE^Normal"
+msgstr "Normal"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:45
+#, fuzzy
+msgid "PRE^High"
+msgstr "Alta"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:46
+#, fuzzy
+msgid "PRE^Ultra"
+msgstr "Ultra"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:48
+#, fuzzy
+msgid "PRE^Ultimate"
+msgstr "Máxima"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:52
+msgid "Geometry detail:"
+msgstr "Detalles geométricos:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:54
+#, fuzzy
+msgid "DET^Lowest"
+msgstr "Mínimo"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:55
+#, fuzzy
+msgid "DET^Low"
+msgstr "Bajo"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:56
+#, fuzzy
+msgid "DET^Normal"
+msgstr "Normal"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:57
+#, fuzzy
+msgid "DET^Good"
+msgstr "Bueno"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:58
+#, fuzzy
+msgid "DET^Best"
+msgstr "Mejor"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:59
+#, fuzzy
+msgid "DET^Insane"
+msgstr "Insano"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:62
+msgid "Antialiasing:"
+msgstr "Antialiasing:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:64
+#, fuzzy
+msgid "AA^Disabled"
+msgstr "Deshabilitado"
+
+#: 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 "Resolución de textura:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:73
+#, fuzzy
+msgid "RES^Leet"
+msgstr "Leet"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:74
+#, fuzzy
+msgid "RES^Lowest"
+msgstr "Mínimo"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:75
+#, fuzzy
+msgid "RES^Low"
+msgstr "Bajo"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:76
+#, fuzzy
+msgid "RES^Normal"
+msgstr "Normal"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:77
+#, fuzzy
+msgid "RES^Good"
+msgstr "Bueno"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:78
+#, fuzzy
+msgid "RES^Best"
+msgstr "Mejor"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:91
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:94
+msgid "Avoid lossy texture compression"
+msgstr "Evitar compresion de Textura con Pérdida"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:100
+msgid "Anisotropy:"
+msgstr "Filtro Anisotrópico:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:102
+#, fuzzy
+msgid "ANISO^Disabled"
+msgstr "Deshabilitado"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:105
+msgid "8x"
+msgstr "8x"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:106
+msgid "16x"
+msgstr "16x"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:110
+msgid "Particle quality:"
+msgstr "Calidad de partículas:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:113
+msgid "Particle distance:"
+msgstr "Distancia de partículas:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:117
+msgid "Decals"
+msgstr "Símbolos"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:120
+msgid "Distance:"
+msgstr "Distancia:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:126
+msgid "Time:"
+msgstr "Tiempo:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:132
+msgid "Use lightmaps"
+msgstr "Usar lightmaps"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:133
+msgid "Deluxe mapping"
+msgstr "Mapeado Deluxe"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:135
+msgid "Gloss"
+msgstr "Brillo"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:138
+msgid "Offset mapping"
+msgstr "Despl. de mapeado"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:140
+msgid "Relief mapping"
+msgstr "Mapeado Relief"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:143
+msgid "Reflections:"
+msgstr "Reflejos:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:146
+msgid "Blurred"
+msgstr "Borroso"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:147
+#, fuzzy
+msgid "REFL^Good"
+msgstr "Bueno"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:148
+msgid "Sharp"
+msgstr "Ajustado"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:153
+msgid "Show surfaces"
+msgstr "Mostrar superficies"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:155
+msgid "No dynamic lighting"
+msgstr "Sin iluminación dinámica"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:157
+msgid "Flash blend approximation"
+msgstr "Aproximación de flash mezclado"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:159
+msgid "Realtime dynamic lighting"
+msgstr "Iluminación dinámica en tiempo real"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:160
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:164
+msgid "Shadows"
+msgstr "Sombras"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:163
+msgid "Realtime world lighting"
+msgstr "Iluminación del mundo en tiempo real"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:168
+msgid "Use normal maps"
+msgstr "Usar mapa de normales"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:170
+msgid "Soft shadows"
+msgstr "Sombras Suaves"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:173
+msgid "Coronas"
+msgstr "Coronas"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:174
+msgid "Use Occlusion Queries"
+msgstr "Usar consultas de oclusion"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:176
+msgid "Bloom"
+msgstr "Bloom"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:178
+msgid "High Dynamic Range (HDR)"
+msgstr "High Dynamic Range (HDR)"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:182
+msgid "Motion blur:"
+msgstr "Distorsión p/ movimiento:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:188
+msgid "Damage blur:"
+msgstr "Distorsión por daño:"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:26
+msgid "Key bindings:"
+msgstr "Asignacion de Teclas"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:31
+msgid "Change key..."
+msgstr "Cambiar tecla..."
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:35
+msgid "Edit..."
+msgstr "Editar..."
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:46
+msgid "Sensitivity:"
+msgstr "Sensibilidad:"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:49
+msgid "UI mouse speed:"
+msgstr "Velocidad del puntero:"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:52
+msgid "Mouse filter"
+msgstr "Filtro del raton"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:54
+msgid "Invert mouse"
+msgstr "Invertir eje Y"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:57
+#: qcsrc/menu/xonotic/dialog_settings_input.c:59
+msgid "Use joystick input"
+msgstr "Usar entrada de joystick"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:62
+#: qcsrc/menu/xonotic/dialog_settings_input.c:64
+msgid "Turn off OS mouse acceleration"
+msgstr "Desactivar aceleracion del raton"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:66
+msgid "\"enter console\" also closes"
+msgstr "\"entrar a la consola\" tambien cerrar"
+
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:5
+msgid "User defined key bind"
+msgstr "Usar teclas definidas"
+
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:42
+msgid "Command when pressed:"
+msgstr "Comandar cuando se presiona:"
+
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:45
+msgid "Command when released:"
+msgstr "Comandar cuando se suelta:"
+
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:48
+msgid "Save"
+msgstr "Guardar"
+
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:51
+msgid "Cancel"
+msgstr "Cancelar"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:26
+msgid "Menu skins:"
+msgstr "Textura del menú:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:47
+msgid "Show current time"
+msgstr "Mostrar el tiempo actual"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:49
+msgid "Show current date"
+msgstr "Mostrar la fecha actual"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:51
+msgid "Show frames per second"
+msgstr "Mostrar cuadros por segundo"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:53
+msgid "Speedometer"
+msgstr "Medidor de Velocidad"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:56
+msgid "qu/s (hidden)"
+msgstr "qu/s (escondido)"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:58
+msgid "qu/s"
+msgstr "qu/s"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:60
+msgid "m/s"
+msgstr "m/s"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:64
+msgid "km/h"
+msgstr "km/h"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:66
+msgid "mph"
+msgstr "mph"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:68
+msgid "knots"
+msgstr "nudos"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:71
+msgid "Show accelerometer"
+msgstr "Mostrar acelerómetro"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:74
+msgid "Accelerometer scale:"
+msgstr "Escala del acelerómetro:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:80
+msgid "Minimize input latency"
+msgstr "Minimizar retardo de entrada"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:5
+msgid "Advanced settings"
+msgstr "Configuración avanzada"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:23
+msgid "Cvar filter:"
+msgstr "Filtro de Cvar"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:34
+msgid "Setting:"
+msgstr "Configuración:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:42
+msgid "Value:"
+msgstr "Valor:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:56
+msgid "Description:"
+msgstr "Descripción:"
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:26
+msgid "Client-side movement prediction"
+msgstr "Predicción de movimento de lado del cliente"
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:30
+msgid "Show netgraph"
+msgstr "Mostrar gráfico de red"
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:33
+msgid "Network speed:"
+msgstr "Velocidad de red:"
+
+#: 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 ancha"
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:42
+msgid "Input packets/s:"
+msgstr "Paquetes de entrada /s"
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:46
+msgid "HTTP downloads:"
+msgstr "Descargas via HTTP:"
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:49
+msgid "Downloads:"
+msgstr "Descargas:"
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:53
+msgid "Speed (kB/s):"
+msgstr "Velocidad (kB/s):"
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:57
+msgid "Client UDP port:"
+msgstr "Puerto UDP del Cliente:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:26
+msgid "Resolution:"
+msgstr "Resolución:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:29
+msgid "Font/UI size:"
+msgstr "Tamaño de Font/UI:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:31
+#, fuzzy
+msgid "SZ^Unreadable"
+msgstr "Ilegible"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:32
+#, fuzzy
+msgid "SZ^Tiny"
+msgstr "Minuscula"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:33
+#, fuzzy
+msgid "SZ^Little"
+msgstr "Muy pequeña"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:34
+#, fuzzy
+msgid "SZ^Small"
+msgstr "Pequeña"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:35
+#, fuzzy
+msgid "SZ^Medium"
+msgstr "Media"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:36
+#, fuzzy
+msgid "SZ^Large"
+msgstr "Grande"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:37
+#, fuzzy
+msgid "SZ^Huge"
+msgstr "Enorme"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:38
+#, fuzzy
+msgid "SZ^Gigantic"
+msgstr "Gigante"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:39
+#, fuzzy
+msgid "SZ^Colossal"
+msgstr "Colossal"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:42
+msgid "Color depth:"
+msgstr "Profundidad del color:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:45
+msgid "Full screen"
+msgstr "Pantalla entera"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:46
+msgid "Vertical Synchronization"
+msgstr "Sincronizacion 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:52
+msgid "Use GLSL to handle color control"
+msgstr "Usar GLSL como manejador de colores"
+
+#: 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:59
+#, fuzzy
+msgid "VBO^Off"
+msgstr "Desactivado"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:60
+msgid "Vertices, some Tris (compatible)"
+msgstr "Vértices, algunos triangulos (compatible)"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:63
+msgid "Vertices"
+msgstr "Vértices"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:64
+msgid "Vertices and Triangles"
+msgstr "Vertices y triangulos"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:67
+msgid "Depth first:"
+msgstr "Profundidad primero:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:69
+#, fuzzy
+msgid "DF^Disabled"
+msgstr "Desactivado"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:70
+#, fuzzy
+msgid "DF^World"
+msgstr "Mundo"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:71
+#, fuzzy
+msgid "DF^All"
+msgstr "Todos"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:75
+msgid "Disable multithreaded OpenGL"
+msgstr "Desactivar multi-hilos OpenGL"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:77
+msgid "Wait for GPU to finish each frame"
+msgstr "Esperar a la GPU para terminar cada frame"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:80
+msgid "Brightness:"
+msgstr "Brillo:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:83
+msgid "Contrast:"
+msgstr "Contraste:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:86
+msgid "Gamma:"
+msgstr "Gamma:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:89
+msgid "Contrast boost:"
+msgstr "Resaltador de contraste"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:92
+msgid "Saturation:"
+msgstr "Saturacion de color:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:98
+#, fuzzy
+msgid "LIT^Ambient:"
+msgstr "Ambiente:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:101
+msgid "Intensity:"
+msgstr "Intensidad:"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:4
+msgid "Singleplayer"
+msgstr "Jugador"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:59
+msgid "Instant action! (random map with bots)"
+msgstr "Accion instantanea! (Mapa aleatorio con bots)"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:80
+msgid "Start Singleplayer!"
+msgstr "Comenzar!"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer_winner.c:4
+msgid "Winner"
+msgstr "Vencedor"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:5
+msgid "Team Selection"
+msgstr "Selección de equipo"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:41
+msgid "join 'best' team (auto-select)"
+msgstr "Ingresar 'mejor' equipo (selección automática)"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:45
+msgid "red"
+msgstr "rojo"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:46
+msgid "blue"
+msgstr "azul"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:47
+msgid "yellow"
+msgstr "amarillo"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:48
+msgid "pink"
+msgstr "rosa"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:51
+msgid "spectate"
+msgstr "espectador"
+
+#: qcsrc/menu/xonotic/mainwindow.c:35 qcsrc/menu/xonotic/mainwindow.c:38
+msgid "Do not press this button again!"
+msgstr "No vuelva a presionar este boton!"
+
+#: qcsrc/menu/xonotic/maplist.c:278
+msgid ""
+"Huh? Can't play this (m is NULL). Refiltering so this won't happen again.\n"
+msgstr ""
+"Huh? no puedes jugarlo (m es nulo). Reflitrando para que esto no vuelva a "
+"ocurrir.\n"
+
+#: qcsrc/menu/xonotic/maplist.c:286
+#, c-format
+msgid "%s's Xonotic Server"
+msgstr "Servidor de Xonotic de %s"
+
+#: qcsrc/menu/xonotic/maplist.c:291
+msgid ""
+"Huh? Can't play this (invalid game type). Refiltering so this won't happen "
+"again.\n"
+msgstr ""
+"Huh? no puedes jugarlo (tipo de juego invalido). Reflitrado para que esto "
+"no vuelva a ocurrir.\n"
+
+#: qcsrc/menu/xonotic/playermodel.c:174
+msgid "<no model found>"
+msgstr "<ningún modelo encontrado>"
+
+#: qcsrc/menu/xonotic/serverlist.c:185
+msgid "Remove"
+msgstr "Remover"
+
+#: qcsrc/menu/xonotic/serverlist.c:187
+msgid "Bookmark"
+msgstr "Marcador"
+
+#: qcsrc/menu/xonotic/serverlist.c:523
+msgid "Ping"
+msgstr "Ping"
+
+#: qcsrc/menu/xonotic/serverlist.c:524
+msgid "Host name"
+msgstr "Nombre del Host"
+
+#: qcsrc/menu/xonotic/serverlist.c:525
+msgid "Map"
+msgstr "Mapa"
+
+#: qcsrc/menu/xonotic/serverlist.c:526
+msgid "Type"
+msgstr "Tipo"
+
+#: qcsrc/menu/xonotic/serverlist.c:527
+msgid "Players"
+msgstr "Jugadores"
+
+#: qcsrc/menu/xonotic/skinlist.c:105
+msgid "<TITLE>"
+msgstr "<Título>"
+
+#: qcsrc/menu/xonotic/skinlist.c:106
+msgid "<AUTHOR>"
+msgstr "<AUTOR>"
+
+#: qcsrc/menu/xonotic/skinlist.c:163
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: qcsrc/menu/xonotic/slider_decibels.c:50
+#, fuzzy
+msgid "VOL^OFF"
+msgstr "DESACTIVADO"
+
+#: qcsrc/menu/xonotic/slider_decibels.c:52
+#, fuzzy
+msgid "VOL^MAX"
+msgstr "MAXIMO"
+
+#: qcsrc/menu/xonotic/slider_decibels.c:53
+#, c-format
+msgid "%s dB"
+msgstr "%s dB"
+
+#: qcsrc/menu/xonotic/slider_resolution.c:65
+#, c-format
+msgid "%dx%d"
+msgstr "%dx%d"
+
+#: qcsrc/menu/xonotic/util.qc:270
+#, c-format
+msgid "Received HTTP request data for an invalid id %d.\n"
+msgstr "Se ha recibido un pedido de datos HTTP para un id inválido: %d. \n"
+
+#: qcsrc/menu/xonotic/util.qc:285
+#, c-format
+msgid "error receiving update notification: status is %d\n"
+msgstr "error recibiendo notificación de actualización: el estado es %d\n"
+
+#: qcsrc/menu/xonotic/util.qc:290
+msgid "error: received HTML instead of an update notification\n"
+msgstr ""
+"error: se ha recibido HTML en vez de una notificación de actualización\n"
+
+#: qcsrc/menu/xonotic/util.qc:295
+msgid "error: received carriage returns from update notification server\n"
+msgstr ""
+"error: se recibieron retornos de carro desde el servidor que notifica las "
+"actualizaciones\n"
+
+#: qcsrc/menu/xonotic/util.qc:316
+#, c-format
+msgid ""
+"Update can be downloaded at:\n"
+"%s\n"
+msgstr ""
+"Actualización puede ser descargada en:\n"
+"%s\n"
+
+#: qcsrc/menu/xonotic/util.qc:337
+msgid "Autogenerating mapinfo for newly added maps..."
+msgstr "Generación automática de información para mapas nuevos..."
+
+#: qcsrc/menu/xonotic/util.qc:367
+#, c-format
+msgid "^1%s TEST BUILD"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:432
+#, c-format
+msgid "Update to %s now!"
+msgstr "Actualizar para %s ahora!"
+
+#: qcsrc/menu/xonotic/util.qc:509
+msgid ""
+"^1ERROR: Texture compression is required but not supported.\n"
+"^1Expect visual problems.\n"
+msgstr ""
+"^1ERROR: Se requiere la compresion de texturas, pero no es soportada.\n"
+"^1Pueden ocurrir posibles problemas visuales.\n"
+
+#: qcsrc/menu/xonotic/util.qc:531
+msgid "Arena"
+msgstr "Arena"
+
+#: qcsrc/menu/xonotic/util.qc:532
+msgid "Assault"
+msgstr "Asalto"
+
+#: qcsrc/menu/xonotic/util.qc:533
+msgid "Capture The Flag"
+msgstr "Captura la Bandera"
+
+#: qcsrc/menu/xonotic/util.qc:534
+msgid "Clan Arena"
+msgstr "Clan arena"
+
+#: qcsrc/menu/xonotic/util.qc:535
+msgid "Deathmatch"
+msgstr "Combate a muerte"
+
+#: qcsrc/menu/xonotic/util.qc:536
+msgid "Domination"
+msgstr "Dominación"
+
+#: qcsrc/menu/xonotic/util.qc:537
+msgid "Freeze Tag"
+msgstr "Freeze Tag"
+
+#: qcsrc/menu/xonotic/util.qc:538
+msgid "Keepaway"
+msgstr "Keepaway"
+
+#: qcsrc/menu/xonotic/util.qc:539
+msgid "Key Hunt"
+msgstr "Caza de llave"
+
+#: qcsrc/menu/xonotic/util.qc:540
+msgid "Last Man Standing"
+msgstr "Ultimo Sobreviviente"
+
+#: qcsrc/menu/xonotic/util.qc:541
+msgid "Nexball"
+msgstr "Nexball"
+
+#: qcsrc/menu/xonotic/util.qc:542
+msgid "Onslaught"
+msgstr "Embestida"
+
+#: qcsrc/menu/xonotic/util.qc:543
+msgid "Race"
+msgstr "Carrera"
+
+#: qcsrc/menu/xonotic/util.qc:544
+msgid "Race CTS"
+msgstr "Carrera CTS"
+
+#: qcsrc/menu/xonotic/util.qc:545
+msgid "Runematch"
+msgstr "Runamatch"
+
+#: qcsrc/menu/xonotic/util.qc:546
+msgid "Team Deathmatch"
+msgstr "Combate a muerte por equipos"
+
+#: qcsrc/menu/xonotic/util.qc:565
+#, c-format
+msgid "@!#%'n Tuba Throwing"
+msgstr "@!#%'n Tuba Throwing"
+
+#: qcsrc/menu/xonotic/util.qc:583
+msgid "Background:"
+msgstr "Fondo:"
+
+#: qcsrc/menu/xonotic/util.qc:585 qcsrc/menu/xonotic/util.qc:601
+#: qcsrc/menu/xonotic/util.qc:610 qcsrc/menu/xonotic/util.qc:618
+#: qcsrc/menu/xonotic/util.qc:630
+msgid "Default"
+msgstr "Por Defecto"
+
+#: qcsrc/menu/xonotic/util.qc:596
+msgid "Use default"
+msgstr "Usar por defecto"
+
+#: qcsrc/menu/xonotic/util.qc:616
+msgid "Team Color:"
+msgstr "Color del equipo:"
+
+#: qcsrc/menu/xonotic/util.qh:49
+msgid "Enable panel"
+msgstr "Activar panel"
+
+#: qcsrc/server/w_crylink.qc:2
+msgid "Crylink"
+msgstr "Crylink"
+
+#: qcsrc/server/w_crylink.qc:664
+#, c-format
+msgid "%s succeeded at self-destructing themself with the Crylink"
+msgstr "%s logró autodestruirse con el Crylink"
+
+#: qcsrc/server/w_crylink.qc:669
+#, c-format
+msgid "%s could not hide from %s's Crylink"
+msgstr "%s no se pudo esconder del Crylink de %s"
+
+#: qcsrc/server/w_crylink.qc:671
+#, c-format
+msgid "%s was too close to %s's Crylink"
+msgstr "%s estuvo demasiado cerca del Crylink de %s"
+
+#: qcsrc/server/w_crylink.qc:673
+#, c-format
+msgid "%s took a close look at %s's Crylink"
+msgstr "%s miró de cerca al Crylink de %s"
+
+#: qcsrc/server/w_electro.qc:2
+msgid "Electro"
+msgstr "Electro"
+
+#: qcsrc/server/w_electro.qc:571
+#, c-format
+msgid "%s could not remember where they put plasma"
+msgstr "%s no pudo recordar donde dejó su plasma la última vez"
+
+#: qcsrc/server/w_electro.qc:573
+#, c-format
+msgid "%s played with plasma"
+msgstr "%s jugó con plasma"
+
+#: qcsrc/server/w_electro.qc:580
+#, c-format
+msgid "%s just noticed %s's blue ball"
+msgstr "%s acaba de percatarse de la bola azul de %s"
+
+#: qcsrc/server/w_electro.qc:582
+#, c-format
+msgid "%s got in touch with %s's blue ball"
+msgstr "%s tuvo un encuentro cercano con la bola azul de %s"
+
+#: qcsrc/server/w_electro.qc:587
+#, c-format
+msgid "%s felt the electrifying air of %s's combo"
+msgstr "%s sintió el aire electrificante del combo de %s"
+
+#: qcsrc/server/w_electro.qc:589
+#, c-format
+msgid "%s got too close to %s's blue beam"
+msgstr "%s estuvo demasiado cerca del rayo azul de %s"
+
+#: qcsrc/server/w_electro.qc:591
+#, c-format
+msgid "%s was blasted by %s's blue beam"
+msgstr "%s estuvo en estado critico por el rayo azul de %s"
+
+#: qcsrc/server/w_fireball.qc:2
+msgid "Fireball"
+msgstr "Fireball"
+
+#: qcsrc/server/w_fireball.qc:417
+#, c-format
+msgid "%s forgot about some firemine"
+msgstr "%s se olvidó de algunas minas de fuego"
+
+#: qcsrc/server/w_fireball.qc:419 qcsrc/server/w_hlac.qc:240
+#, c-format
+msgid "%s should have used a smaller gun"
+msgstr "%s tendría que haber usado un arma más chica"
+
+#: qcsrc/server/w_fireball.qc:426
+#, c-format
+msgid "%s tried to catch %s's firemine"
+msgstr "%s intentó agarrar la mina de fuego de %s"
+
+#: qcsrc/server/w_fireball.qc:428
+#, c-format
+msgid "%s fatefully ignored %s's firemine"
+msgstr "%s fatalmente ignoró la mina de fuego de %s"
+
+#: qcsrc/server/w_fireball.qc:435
+#, c-format
+msgid "%s could not hide from %s's fireball"
+msgstr "%s no se puedo esconder del fireball de %s"
+
+#: qcsrc/server/w_fireball.qc:437
+#, c-format
+msgid "%s saw the pretty lights of %s's fireball"
+msgstr "%s vió las lindas luces del fireball de %s"
+
+#: qcsrc/server/w_fireball.qc:440
+#, c-format
+msgid "%s got too close to %s's fireball"
+msgstr "%s estuvo demasiado cerca del fireball de %s"
+
+#: qcsrc/server/w_fireball.qc:442
+#, c-format
+msgid "%s tasted %s's fireball"
+msgstr "%s probó el fireball de %s"
+
+#: qcsrc/server/w_grenadelauncher.qc:2
+msgid "Mortar"
+msgstr "Mortero"
+
+#: qcsrc/server/w_grenadelauncher.qc:378
+#, c-format
+msgid "%s tried out his own grenade"
+msgstr "%s probó su propia granada"
+
+#: qcsrc/server/w_grenadelauncher.qc:380
+#, c-format
+msgid "%s detonated"
+msgstr "%s ha detonado"
+
+#: qcsrc/server/w_grenadelauncher.qc:386
+#, c-format
+msgid "%s didn't see %s's grenade"
+msgstr "%s no vió la granada de %s"
+
+#: qcsrc/server/w_grenadelauncher.qc:388
+#, c-format
+msgid "%s almost dodged %s's grenade"
+msgstr "%s casi esquivó la granada de %s"
+
+#: qcsrc/server/w_grenadelauncher.qc:390
+#, c-format
+msgid "%s ate %s's grenade"
+msgstr "%s se comió la granada de %s"
+
+#: qcsrc/server/w_hagar.qc:2
+msgid "Hagar"
+msgstr "Hagar"
+
+#: qcsrc/server/w_hagar.qc:209 qcsrc/server/w_seeker.qc:655
+#, c-format
+msgid "%s played with tiny rockets"
+msgstr "%s jugó con pequeños cohetes"
+
+#: qcsrc/server/w_hagar.qc:213
+#, c-format
+msgid "%s hoped %s's missiles wouldn't bounce"
+msgstr "%s esperó que no le reboten misiles de %s"
+
+#: qcsrc/server/w_hagar.qc:215 qcsrc/server/w_seeker.qc:661
+#, c-format
+msgid "%s was pummeled by %s"
+msgstr "%s fue molido por %s"
+
+#: 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 "%s fue rebanado por %s"
+
+#: qcsrc/server/w_hook.qc:2
+msgid "Grappling Hook"
+msgstr "Grappling Hook"
+
+#: qcsrc/server/w_hook.qc:266 qcsrc/server/w_minstanex.qc:290
+#: qcsrc/server/w_nex.qc:267 qcsrc/server/w_porto.qc:296
+#: qcsrc/server/w_shotgun.qc:203 qcsrc/server/w_uzi.qc:317
+#, c-format
+msgid "%s did the impossible"
+msgstr "%s hizo lo imposible"
+
+#: qcsrc/server/w_hook.qc:268
+#, c-format
+msgid "%s has run into %s's gravity bomb"
+msgstr "%s entró a la bomba de gravedad de %s"
+
+#: qcsrc/server/w_laser.qc:2
+msgid "Laser"
+msgstr "Laser"
+
+#: qcsrc/server/w_laser.qc:305
+#, c-format
+msgid "%s lasered themself to hell"
+msgstr "%s se fué al infierno montado en su laser"
+
+#: qcsrc/server/w_laser.qc:309
+#, c-format
+msgid "%s was cut in half by %s's gauntlet"
+msgstr "%s fue cortado a la mitad por el gauntlet de %s"
+
+#: qcsrc/server/w_laser.qc:311
+#, c-format
+msgid "%s was lasered to death by %s"
+msgstr "%s fue muerto por el laser de %s"
+
+#: qcsrc/server/w_minelayer.qc:2
+msgid "Mine Layer"
+msgstr "Mine Layer"
+
+#: qcsrc/server/w_minelayer.qc:495 qcsrc/server/w_rocketlauncher.qc:500
+#, c-format
+msgid "%s exploded"
+msgstr "%s explotó"
+
+#: qcsrc/server/w_minelayer.qc:499
+#, c-format
+msgid "%s got too close to %s's mine"
+msgstr "%s estuvo cerca de la mina de %s"
+
+#: qcsrc/server/w_minelayer.qc:501
+#, c-format
+msgid "%s almost dodged %s's mine"
+msgstr "%s casi esquivo la mina de %s"
+
+#: qcsrc/server/w_minelayer.qc:503
+#, c-format
+msgid "%s stepped on %s's mine"
+msgstr "%s caminó encima de la mina de %s"
+
+#: qcsrc/server/w_minstanex.qc:2
+msgid "MinstaNex"
+msgstr "MinstaNex"
+
+#: qcsrc/server/w_minstanex.qc:292 qcsrc/server/w_nex.qc:269
+#, c-format
+msgid "%s has been vaporized by %s"
+msgstr "%s ha sido vaporizado por %s"
+
+#: qcsrc/server/w_nex.qc:2
+msgid "Nex"
+msgstr "Nex"
+
+#: qcsrc/server/w_porto.qc:2
+msgid "Port-O-Launch"
+msgstr "Port-O-Launch"
+
+#: qcsrc/server/w_porto.qc:298
+#, c-format
+msgid "%s felt %s doing the impossible to him"
+msgstr "%s sintió a %s hacer lo imposible por él/ella"
+
+#: qcsrc/server/w_rocketlauncher.qc:2
+msgid "Rocket Launcher"
+msgstr "Rocket Launcher"
+
+#: qcsrc/server/w_rocketlauncher.qc:504
+#, c-format
+msgid "%s got too close to %s's rocket"
+msgstr "%s estuvo demasiado cerca del cohete de %s"
+
+#: qcsrc/server/w_rocketlauncher.qc:506
+#, c-format
+msgid "%s almost dodged %s's rocket"
+msgstr "%s casi esquivó el cohete de %s"
+
+#: qcsrc/server/w_rocketlauncher.qc:508
+#, c-format
+msgid "%s ate %s's rocket"
+msgstr "%s se comió el misil de %s"
+
+#: qcsrc/server/w_seeker.qc:2
+msgid "T.A.G. Seeker"
+msgstr "T.A.G. Seeker"
+
+#: qcsrc/server/w_seeker.qc:659
+#, c-format
+msgid "%s was tagged by %s"
+msgstr "%s fue marcado por %s"
+
+#: qcsrc/server/w_shotgun.qc:2
+msgid "Shotgun"
+msgstr "Escopeta"
+
+#: qcsrc/server/w_shotgun.qc:207
+#, c-format
+msgid "%2$s ^7slapped %1$s ^7around a bit with a large ^2shotgun"
+msgstr "%2$s ^7abofeteó %1$s ^7con una gran ^2shotgun"
+
+#: qcsrc/server/w_shotgun.qc:209
+#, c-format
+msgid "%s was gunned by %s"
+msgstr "%s fue tiroteado por %s"
+
+#: qcsrc/server/w_sniperrifle.qc:2
+msgid "Sniper Rifle"
+msgstr "Sniper Rifle"
+
+#: qcsrc/server/w_sniperrifle.qc:229
+#, c-format
+msgid "%s shot themself automatically"
+msgstr "%s se disparó a si mismo"
+
+#: qcsrc/server/w_sniperrifle.qc:231
+#, c-format
+msgid "%s sniped themself somehow"
+msgstr "%s se disparó a si mismo"
+
+#: qcsrc/server/w_sniperrifle.qc:238
+#, c-format
+msgid "%s failed to hide from %s's bullet hail"
+msgstr "%s no logró esconderse del granizo de balas de %s"
+
+#: qcsrc/server/w_sniperrifle.qc:240
+#, c-format
+msgid "%s died in %s's bullet hail"
+msgstr "%s murió en el granizo de balas de %s"
+
+#: qcsrc/server/w_sniperrifle.qc:247
+#, c-format
+msgid "%s failed to hide from %s's rifle"
+msgstr "%s no logró esconderse del rifle de %s"
+
+#: qcsrc/server/w_sniperrifle.qc:252
+#, c-format
+msgid "%s got hit in the head by %s"
+msgstr "%s fué disparado en la cabeza por %s"
+
+#: qcsrc/server/w_sniperrifle.qc:254 qcsrc/server/w_uzi.qc:321
+#, c-format
+msgid "%s was sniped by %s"
+msgstr "%s fué disparado con un rifle por %s"
+
+#: qcsrc/server/w_tuba.qc:2
+#, c-format
+msgid "@!#%'n Tuba"
+msgstr "@!#%'n Tuba"
+
+#: qcsrc/server/w_tuba.qc:263
+#, c-format
+msgid "%s hurt his own ears with the @!#%%'n Tuba"
+msgstr "%s se lastimó sus propios oídos con la Tuba de @!#%%"
+
+#: qcsrc/server/w_tuba.qc:267
+#, c-format
+msgid "%s died of %s's great playing on the @!#%%'n Tuba"
+msgstr "%s murió por la gran interpretación de Tuba de @!#%%"
+
+#: qcsrc/server/w_uzi.qc:2
+msgid "Machine Gun"
+msgstr "Machine Gun"
+
+#: qcsrc/server/w_uzi.qc:323
+#, c-format
+msgid "%s was riddled full of holes by %s"
+msgstr "%s fue totalmente acribillado por %s"
+
+#~ msgid "%s ran into %s's flac"
+#~ msgstr "%s se cruzó con el flac de %s"
+
+#~ msgid "Waypoint settings:"
+#~ msgstr "configuración de puntos de camino:"
+
+#~ msgid "%d/%d"
+#~ msgstr "%d/%d"
--- /dev/null
+# Xonotic Menu
+# Copyright (C) 2011 Team Xonotic
+# This file is distributed under the same license as the PACKAGE package.
+# Henry 'Exitium' Sanmark <henry.sanmark@gmail.com>, 2011.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: 0.1preview\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-04-30 10:07+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: Henry 'Exitium' Sanmark <henry.sanmark@gmail.com>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: qcsrc/menu/gamecommand.qc:47
+#, c-format
+msgid "error: status is %d\n"
+msgstr "virhe: %d\n"
+
+#: qcsrc/menu/gamecommand.qc:65
+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
+msgid " sync - reloads all cvars on the current menu page\n"
+msgstr " sync - uudelleenlataa kaikki cvar-muuttujat nykyiseen valikkoon"
+
+#: qcsrc/menu/gamecommand.qc:67
+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
+msgid "error creating curl handle\n"
+msgstr "virhe luodessa curl handlea\n"
+
+#: qcsrc/menu/gamecommand.qc:239
+msgid "Invalid command. For a list of supported commands, try menu_cmd help.\n"
+msgstr ""
+"Komentoa ei löydy. Saadaksesi listan kaikista tuetuista komennoista, kokeile "
+"menu_cmd help.\n"
+
+#: qcsrc/menu/item/gecko.c:49
+msgid "Browser not initialized!"
+msgstr "Selainta ei ole alustettu!"
+
+#: qcsrc/menu/item/label.c:63
+#, c-format
+msgid "NOTE: label text %s too wide for label, condensed by factor %f\n"
+msgstr "HUOM: tekstikentän teksti %s on liian pitkä, joten se lyhennetään %f\n"
+
+#: qcsrc/menu/item/listbox.c:300
+#, c-format
+msgid "Item %d"
+msgstr "Esine %d"
+
+#: qcsrc/menu/item/slider.c:64
+#, c-format
+msgid "%d (%s)"
+msgstr "%d (%s)"
+
+#: qcsrc/menu/item/textslider.c:29 qcsrc/menu/item/textslider.c:31
+msgid "custom"
+msgstr "omavalintainen"
+
+#: qcsrc/menu/menu.qc:29
+#, fuzzy, c-format
+msgid "^4MQC Build information: ^1%s\n"
+msgstr "^4MQC Version tiedot: %s\n"
+
+#: qcsrc/menu/xonotic/campaign.c:284
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:66
+msgid "???"
+msgstr "???"
+
+#: qcsrc/menu/xonotic/campaign.c:285
+#, c-format
+msgid "Level %d: %s"
+msgstr "Taso %d: %s"
+
+#: qcsrc/menu/xonotic/cvarlist.c:85
+msgid "will be saved to config.cfg"
+msgstr "tallennetaan config.cfg-tiedostoon"
+
+#: qcsrc/menu/xonotic/cvarlist.c:87
+msgid "will not be saved"
+msgstr "ei tallenneta"
+
+#: qcsrc/menu/xonotic/cvarlist.c:89
+msgid "private"
+msgstr "yksityinen"
+
+#: qcsrc/menu/xonotic/cvarlist.c:91
+msgid "engine setting"
+msgstr "pelimoottorin asetus"
+
+#: qcsrc/menu/xonotic/cvarlist.c:93
+msgid "read only"
+msgstr "vain luku"
+
+#: qcsrc/menu/xonotic/dialog_credits.c:5
+msgid "Credits"
+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:55
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:61
+#: qcsrc/menu/xonotic/dialog_singleplayer_winner.c:21
+msgid "OK"
+msgstr "OK"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:4
+msgid "Welcome"
+msgstr "Tervetuloa"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:33
+msgid ""
+"Welcome to Xonotic, please select your language preference and enter your "
+"player name to get started. You can change these options later through the "
+"menu system."
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:38
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:35
+msgid "Text language:"
+msgstr "Tekstin kieli:"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:47
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:40
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:39
+msgid "Name:"
+msgstr "Nimi:"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:69
+msgid "Save settings"
+msgstr "Tallenna asetukset"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:4
+msgid "Ammo Panel"
+msgstr "Ammuspaneeli"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:22
+msgid "Ammunition display:"
+msgstr "Ammuksien näyttö:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:25
+msgid "Show only current ammo type"
+msgstr "Näytä vain nykyinen ammustyyppi"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:29
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:28
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:40
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:28
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:40
+msgid "Left"
+msgstr "Vasen"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:30
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:30
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:41
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:30
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:41
+msgid "Right"
+msgstr "Oikea"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:4
+msgid "Chat Panel"
+msgstr "Keskustelupaneeli"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:22
+msgid "Chat entries:"
+msgstr "Keskustelun sisältö:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:25
+msgid "Chat size:"
+msgstr "Keskustelun koko"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:29
+msgid "Chat lifetime:"
+msgstr "Keskustelun kesto:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:33
+msgid "Chat beep sound"
+msgstr "Keskustelun piippausääni"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_engineinfo.c:4
+msgid "Engine Info Panel"
+msgstr "Pelimoottorin tietopaneeli"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_engineinfo.c:22
+msgid "Engine info:"
+msgstr "Pelimoottorin tiedot:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_engineinfo.c:25
+msgid "Use an averaging algorithm for fps"
+msgstr "Käytä tasoittavaa algoritmia ruudunpäivitykselle (FPS)"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:4
+msgid "Health/Armor Panel"
+msgstr "Elämä/panssaripaneeli"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:22
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:22
+msgid "Enable status bar"
+msgstr "Ota tilapalkki käyttöön"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:24
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:24
+msgid "Status bar alignment:"
+msgstr "Tilapalkin kohdistus:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:32
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:42
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:32
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:42
+msgid "Inward"
+msgstr "Sisäänpäin"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:34
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:43
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:34
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:43
+msgid "Outward"
+msgstr "Ulospäin"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:37
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:37
+msgid "Icon alignment:"
+msgstr "Kuvakkeen kohdistus:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:45
+msgid "Flip health and armor positions"
+msgstr "Vaihda elämän ja panssarin paikkaa"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_infomessages.c:4
+msgid "Info Messages Panel"
+msgstr "Tiedotuspaneeli"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_infomessages.c:22
+msgid "Info messages:"
+msgstr "Tiedoitukset"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_infomessages.c:25
+msgid "Flip align"
+msgstr "Tasoita"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_modicons.c:4
+msgid "Mod Icons Panel"
+msgstr "Modi-ikonit paneeli"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:4
+msgid "Notification Panel"
+msgstr "Ilmoituspaneeli"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:22
+msgid "Notifications:"
+msgstr "Ilmoitukset:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:25
+msgid "Also print notifications to the console"
+msgstr "Laita ilmoitukset myös komentoriville"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:28
+msgid "Flip notify order"
+msgstr "Käännä ilmoitusjärjestys"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:31
+msgid "Entry lifetime:"
+msgstr "Sisääntulon kesto"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:35
+msgid "Entry fadetime:"
+msgstr "Sisääntulon häivennyksen kesto"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:4
+msgid "Powerups Panel"
+msgstr "Tehonlisäyspaneeli"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:45
+msgid "Flip strength and shield positions"
+msgstr "Käännä voimakkuuden ja suojauksen sijainnit"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:4
+msgid "Pressed Keys Panel"
+msgstr "Painettujen näppäinten paneeli"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:21
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:21
+msgid "Panel disabled"
+msgstr "Paneeli pois päältä"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:22
+msgid "Panel enabled when spectating"
+msgstr "Paneeli päällä kun katsojana"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:23
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:23
+msgid "Panel always enabled"
+msgstr "Paneeli aina päällä"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:30
+msgid "Forced aspect:"
+msgstr "Pakotettu näkymä:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_racetimer.c:4
+msgid "Race Timer Panel"
+msgstr "Kilpajuoksun ajanoton paneeli"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:4
+msgid "Radar Panel"
+msgstr "Tutkapaneeli"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:22
+msgid "Panel enabled in teamgames"
+msgstr "Paneeli käytössä joukkuepeleissä"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:29
+msgid "Radar:"
+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:608
+msgid "Alpha:"
+msgstr "Alpha:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:36
+msgid "Rotation:"
+msgstr "Pyöriminen:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:38
+msgid "Forward"
+msgstr "Eteenpäin"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:39
+msgid "West"
+msgstr "Länsi"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:40
+msgid "South"
+msgstr "Etelä"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:41
+msgid "East"
+msgstr "Itä"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:42
+msgid "North"
+msgstr "Pohjoinen"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:46
+msgid "Scale:"
+msgstr "Skaala:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:50
+msgid "Zoom mode:"
+msgstr "Tarkennus:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:52
+msgid "Zoomed in"
+msgstr "Tarkennettu kohteeseen"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:53
+msgid "Zoomed out"
+msgstr "Tarkennuksen poisto"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:54
+msgid "Always zoomed"
+msgstr "Aina tarkennettuna"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:55
+msgid "Never zoomed"
+msgstr "Tarkennus ei ikinä päällä"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_score.c:4
+msgid "Score Panel"
+msgstr "Tulospaneeli"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_timer.c:4
+msgid "Timer Panel"
+msgstr "Ajastinpaneeli"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_timer.c:22
+msgid "Timer:"
+msgstr "Ajastin:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_timer.c:25
+msgid "Show elapsed time"
+msgstr "Näytä kulutettu aika"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_vote.c:4
+msgid "Vote Panel"
+msgstr "Äänestyspaneeli"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_vote.c:22
+msgid "Alpha after voting:"
+msgstr "Alpha äänestyksen jälkeen"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:4
+msgid "Weapons Panel"
+msgstr "Asepaneeli"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:24
+msgid "Fade out after:"
+msgstr "Himmennä jälkikäteen:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:26
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:36
+msgid "Never"
+msgstr "Ei ikinä"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:28
+#, c-format
+msgid "%ds"
+msgstr "%dt"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:32
+msgid "Fade effect:"
+msgstr "Himmennyseffekti:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:33
+msgid "EF^None"
+msgstr "EF^Ei mikään"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:35
+msgid "Slide"
+msgstr "Liukuminen"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:37
+msgid "Alpha"
+msgstr "Alpha"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:40
+msgid "Weapon icons:"
+msgstr "Aseiden kuvakkeet:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:43
+msgid "Show weapon ID as:"
+msgstr "Näytä aseen tunniste:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:44
+msgid "SHOWAS^None"
+msgstr "SHOWAS^Ei mitään."
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:45
+msgid "Number"
+msgstr "Numero"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:46
+msgid "Bind"
+msgstr "Näppäin"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:49
+msgid "Show Accuracy"
+msgstr "Näytä tarkkuus"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:50
+msgid "Show Ammo"
+msgstr "Näytä panokset"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:53
+msgid "Ammo bar color:"
+msgstr "Ammuskotelon väri"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:59
+msgid "Ammo bar alpha:"
+msgstr "Ammuskotelon alpha"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:4
+msgid "Panel HUD Setup"
+msgstr "Paneelin näkymän asetukset"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:21
+msgid "Panel background defaults:"
+msgstr "Paneelin taustan perusasetukset:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:25
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:37
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:52
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:91 qcsrc/menu/xonotic/util.qc:586
+#: qcsrc/menu/xonotic/util.qc:602 qcsrc/menu/xonotic/util.qc:619
+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:591
+msgid "Color:"
+msgstr "Väri:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:35 qcsrc/menu/xonotic/util.qc:599
+msgid "Border size:"
+msgstr "Reunan koko:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:50
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:89
+msgid "Team color:"
+msgstr "Joukkueen väri:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:58 qcsrc/menu/xonotic/util.qc:625
+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:628
+msgid "Padding:"
+msgstr "Pehmustus:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:68
+msgid "HUD Dock:"
+msgstr "Näkymän liitäntä:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:70
+msgid "DOCK^Disabled"
+msgstr "DOCK^Pois"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:71
+msgid "DOCK^Small"
+msgstr "DOCK^Pieni"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:72
+msgid "DOCK^Medium"
+msgstr "DOCK^Keskikokoinen"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:73
+msgid "DOCK^Large"
+msgstr "DOCK^Suuri"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:96
+msgid "Grid settings:"
+msgstr "Ruudukon asetukset:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:99
+msgid "Snap panels to grid"
+msgstr "Katkaise paneelit ruudukkoon"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:102
+msgid "Grid size:"
+msgstr "Ruudukon koko:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:103
+msgid "X:"
+msgstr "X:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:109
+msgid "Y:"
+msgstr "Y:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:117
+msgid "Exit setup"
+msgstr "Poistu asetuksista"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:4
+msgid "Multiplayer"
+msgstr "Moninpeli"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:18
+msgid "Servers"
+msgstr "Palvelimet"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:19
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:5
+msgid "Create"
+msgstr "Luo"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:20
+msgid "Demos"
+msgstr "Demot"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:21
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:5
+msgid "Player Setup"
+msgstr "Pelaajan asetukset"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:35
+msgid "Game type:"
+msgstr "Pelityyppi"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:47
+msgid "Match settings:"
+msgstr "Ottelun asetukset"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:50
+msgid "Time limit:"
+msgstr "Aikaraja"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:54
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:62
+msgid "Use map specified default"
+msgstr "Käytä kartan omaa oletusarvoa"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:57
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:156
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:157
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:158
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:162
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:163
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:164
+msgid "Point limit:"
+msgstr "Pisteraja:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:65
+msgid "Player slots:"
+msgstr "Pelaajamäärä:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:68
+msgid "Number of bots:"
+msgstr "Bottien lukumäärä:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:72
+msgid "Bot skill:"
+msgstr "Bottien taitotaso:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:75
+msgid "Botlike"
+msgstr "Typerä kone"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:76
+msgid "Beginner"
+msgstr "Aloittelija"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:77
+msgid "You will win"
+msgstr "Helppo voitto"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:78
+msgid "You can win"
+msgstr "Helpohko"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:79
+msgid "You might win"
+msgstr "Keskitaso"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:80
+msgid "Advanced"
+msgstr "Kehittynyt"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:81
+msgid "Expert"
+msgstr "Ekspertti"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:82
+msgid "Pro"
+msgstr "Mestari"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:83
+msgid "Assassin"
+msgstr "Murhaaja"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:84
+msgid "Unhuman"
+msgstr "Epäinhimillinen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:85
+msgid "Godlike"
+msgstr "Jumalainen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:89
+msgid "Mutators..."
+msgstr "Muokkaukset..."
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:98
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:84
+msgid "Advanced settings..."
+msgstr "Edistyneet asetukset..."
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:105
+msgid "Map list:"
+msgstr "Karttalista"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:111
+msgid "Select all"
+msgstr "Valitse kaikki"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:114
+msgid "Select none"
+msgstr "Poista kaikki valinnat"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:120
+msgid "Start Multiplayer!"
+msgstr "Aloita moninpeli!"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:155
+msgid "Capture limit:"
+msgstr "Lipunryöstöraja"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:159
+msgid "Lives:"
+msgstr "Elämät:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:160
+msgid "Laps:"
+msgstr "Kierrokset:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:161
+msgid "Goals:"
+msgstr "Maalit:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:165
+msgid "Frag limit:"
+msgstr "Tapporaja:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:6
+msgid "Advanced server settings"
+msgstr "Kehittyneet palvelinasetukset"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:25
+msgid "Game settings:"
+msgstr "Peliasetukset:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:28
+msgid "Allow spectating"
+msgstr "Salli sivustakatsominen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:31
+msgid "Spawn shield:"
+msgstr "Uudelleensyntymissuoja:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:36
+msgid "Game speed:"
+msgstr "Pelinopeus:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:40
+msgid "Teamplay settings:"
+msgstr "Joukkuepeliasetukset:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:43
+msgid "Friendly fire scale:"
+msgstr "Joukkuevahingon skaala:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:47
+msgid "Virtual friendly fire (effect only)"
+msgstr "Virtuaalinen joukkuevahinko (vain effekti)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:50
+msgid "Friendly fire penalty:"
+msgstr "Joukkuevahinkorangaistus:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:54
+msgid "Virtual penalty (effect only)"
+msgstr "Virtuaalinen rangaistus (vain effekti)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:57
+msgid "Teams:"
+msgstr "Joukkueet:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:66
+msgid "Map voting:"
+msgstr "Kartan äänestys:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:68
+msgid "No voting"
+msgstr "Ei äänestystä"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:69
+msgid "2 choices"
+msgstr "2 valintaa"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:70
+msgid "3 choices"
+msgstr "3 valintaa"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:71
+msgid "4 choices"
+msgstr "4 valintaa"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:72
+msgid "5 choices"
+msgstr "5 valintaa"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:73
+msgid "6 choices"
+msgstr "6 valintaa"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:74
+msgid "7 choices"
+msgstr "7 valintaa"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:75
+msgid "8 choices"
+msgstr "8 valintaa"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:76
+msgid "9 choices"
+msgstr "9 valintaa"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:79
+msgid "Simple majority wins vcall"
+msgstr "Suurempi äänimäärä voittaa"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:5
+msgid "Map Information"
+msgstr "Kartan tiedot"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:49
+msgid "Full item placement"
+msgstr "Esineiden täysi sijoittaminen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:49
+msgid "MinstaGib only"
+msgstr "Vain MinstaGib"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:78
+msgid "Title:"
+msgstr "Otsikko:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:84
+msgid "Author:"
+msgstr "Tekijä:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:90
+msgid "Features:"
+msgstr "Ominaisuudet:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:95
+msgid "Game types:"
+msgstr "Pelityypit:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:119
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:314
+msgid "Close"
+msgstr "Sulje"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:122
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:46
+msgid "Play"
+msgstr "Pelaa"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:7
+msgid "Mutators"
+msgstr "Muokatut pelitilat"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:33
+msgid "All Weapons Arena"
+msgstr "Kaikkien aseiden taistelukenttä"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:35
+msgid "Most Weapons Arena"
+msgstr "Suurimman osan aseiden taistelukenttä"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:56
+#, c-format
+msgid "%s Arena"
+msgstr "%s taistelukenttä"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:68
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:167
+msgid "Dodging"
+msgstr "Väistely"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:70
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:250
+msgid "MinstaGib"
+msgstr "MinstaGib"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:72
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:253
+msgid "NIX"
+msgstr "NIX"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:74
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:205
+msgid "Rocket Flying"
+msgstr "Rakettilentely"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:78
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:264
+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
+msgid "Low gravity"
+msgstr "Vajaa painovoima"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:82
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:170
+msgid "Cloaked"
+msgstr "Näkymätön"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:84
+msgid "Hook"
+msgstr "Köysi"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:86
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:173
+msgid "Midair"
+msgstr "Jalat irti maasta"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:88
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:176
+msgid "Vampire"
+msgstr "Vampyyri"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:90
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:208
+msgid "Piñata"
+msgstr "Piñata"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:92
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:211
+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
+msgid "Blood loss"
+msgstr "Verenvuodatus"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:96
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:202
+msgid "Jet pack"
+msgstr "Rakettireppu"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:98
+msgid "MUT^None"
+msgstr "MUT^Ei mitään"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:164
+msgid "Gameplay mutators:"
+msgstr "Pelityylin muokkaukset:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:196
+msgid "Weapon & item mutators:"
+msgstr "Aseiden ja esineiden muokkaukset:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:199
+msgid "Grappling hook"
+msgstr "Köysi"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:215
+msgid "Weapon arenas:"
+msgstr "Tietyn aseen taistelukenttä"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:218
+msgid "Regular (no arena)"
+msgstr "Perinteinen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:239
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:256
+msgid "with laser"
+msgstr "laserilla"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:247
+msgid "Special arenas:"
+msgstr "Erikoistaistelukentät:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:260
+msgid "Most weapons"
+msgstr "Suurin osa aseista"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:4
+msgid "Demo"
+msgstr "Demo"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:28
+msgid "Record demos while playing"
+msgstr "Tallenna demoja pelin aikana"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:32
+#: 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_join.c:29
+#: qcsrc/menu/xonotic/dialog_settings_input.c:41
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:24
+msgid "Clear"
+msgstr "Tyhjennä"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:43
+msgid "Timedemo"
+msgstr "Aikademo"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:4
+msgid "Join"
+msgstr "Liity"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:36
+msgid "SRVS^Empty"
+msgstr "SRVS^Tyhjä"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:40
+msgid "SRVS^Full"
+msgstr "SRVS^Täynnä"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:44
+msgid "Pause"
+msgstr "Keskeytä"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:56
+msgid "Address:"
+msgstr "Osoite:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:67
+msgid "Info..."
+msgstr "Tietoa..."
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:72
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:317
+msgid "Join!"
+msgstr "Liity!"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:5
+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
+msgid "N/A"
+msgstr "N/A"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:158
+#, c-format
+msgid "%d/%d, %d free player slots"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:172
+#, c-format
+msgid "%d modified settings"
+msgstr "%d muokatut asetukset"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:172
+msgid "Official settings"
+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:205
+msgid "not supported (can't connect)"
+msgstr "ei tuettu (ei voida yhdistää)"
+
+#: 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:211
+msgid "supported (will encrypt)"
+msgstr "tuettu (salaus onnistuu)"
+
+#: 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:217
+msgid "requested (will encrypt)"
+msgstr "pyydetty (salaus onnistuu)"
+
+#: 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:223
+msgid "required (can't connect)"
+msgstr "vaadittu (ei voida yhdistää)"
+
+#: 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:246
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:269
+msgid "Players:"
+msgstr "Pelaajat:"
+
+#: 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:259
+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
+msgid "Mod:"
+msgstr "Modi:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:284
+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:295
+msgid "CA:"
+msgstr "Lipunryöstö (CTF)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:301
+msgid "Key:"
+msgstr "Avain (Key)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:307
+msgid "Encryption:"
+msgstr "Salaus:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:63
+msgid "Model:"
+msgstr "Malli:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:88
+msgid "Field of view:"
+msgstr "Näkökenttä:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:92
+msgid "View bobbing:"
+msgstr "Näytä huojunta:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:96
+msgid "Zoom factor:"
+msgstr "Tarkennuskerroin:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:100
+msgid "Zoom speed:"
+msgstr "Tarkennuksen nopeus:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:103
+msgid "Weapon settings..."
+msgstr "Aseiden asetukset..."
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:110
+msgid "Crosshair:"
+msgstr "Tähtäin:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:111
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:139
+msgid "Per weapon"
+msgstr "Asekohtainen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:130
+msgid "Crosshair size:"
+msgstr "Tähtäimen suuruus:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:134
+msgid "Crosshair alpha:"
+msgstr "Tähtäimen alpha:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:138
+msgid "Crosshair color:"
+msgstr "Tähtäimen väri:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:140
+msgid "By health"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:143
+#, fuzzy
+msgid "Custom"
+msgstr "omavalintainen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:148
+msgid "Enable center dot"
+msgstr "Ota keskipiste käyttöön"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:151
+msgid "Size:"
+msgstr "Koko:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:158
+msgid "Hit test:"
+msgstr "Osumatesti:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:159
+msgid "HTST^None"
+msgstr "HTST^Ei mitään."
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:160
+msgid "TrueAim"
+msgstr "TrueAim"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:161
+msgid "Enemies"
+msgstr "Viholliset"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:164
+msgid "Waypoints setup..."
+msgstr "Välimatkojen asetukset..."
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:169
+msgid "Enter HUD editor"
+msgstr "Mene näkymän muokkaimeen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:174
+msgid "Force models:"
+msgstr "Pakota hahmojen ulkomuoto samanlaiseksi:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:175
+msgid "MDL^None"
+msgstr "MDL^Ei mitään."
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:176
+msgid "MDL^Custom"
+msgstr "MDL^Omavalintainen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:177
+msgid "MDL^All"
+msgstr "MDL^Kaikki"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:180
+msgid "Disable gore effects"
+msgstr "Ota ylimitoitettu raakuus pois päältä"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:182
+msgid "Gibs:"
+msgstr "Raajat:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:184
+msgid "GIBS^None"
+msgstr "GIBS^Ei mitään"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:185
+msgid "GIBS^Few"
+msgstr "GIBS^Vähän"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:186
+msgid "GIBS^Many"
+msgstr "GIBS^Paljon"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:187
+msgid "GIBS^Lots"
+msgstr "GIBS^Runsaasti"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:191
+msgid "Damage splash:"
+msgstr "Vahinkoroiskeet"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:195
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:178
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:194
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:30
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:41
+#: qcsrc/menu/xonotic/dialog_settings_video.c:105
+msgid "Apply immediately"
+msgstr "Ota heti käyttöön"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:5
+msgid "Waypoints"
+msgstr "Välimatkat"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:23
+msgid "Show base waypoints"
+msgstr "Näytä päämäärien välimatkat"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:25
+msgid "Waypoint scale:"
+msgstr "Välimatkan skaala:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:29
+msgid "Waypoint alpha:"
+msgstr "Välimatkojen alpha:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:34
+msgid "Show names:"
+msgstr "Näytä nimet:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:37
+msgid "Teammates"
+msgstr "Oma joukkue"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:38
+msgid "All players"
+msgstr "Kaikki pelaajat"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:6
+msgid "Weapon settings"
+msgstr "Aseiden asetukset"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:29
+msgid "Weapon priority list:"
+msgstr "Aseiden prioriteetti:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:34
+msgid "Up"
+msgstr "Ylös"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:37
+msgid "Down"
+msgstr "Alas"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:41
+msgid "Use priority list for weapon cycling"
+msgstr "Käytä prioriteettiä aseiden vaihdossa"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:43
+msgid "Auto switch weapons on pickup"
+msgstr "Vaihda ase automaattisesti poimimisen jälkeen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:45
+msgid "Draw 1st person weapon model"
+msgstr "Piirrä ensimmäisen persoonan asemalli"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:48
+msgid "Left align"
+msgstr "Vasen tasaus"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:50
+msgid "Right align"
+msgstr "Oikea tasaus"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:53
+msgid "Flip view horizontally"
+msgstr "Käännä näkymä horisontaalisesti"
+
+#: qcsrc/menu/xonotic/dialog_news.c:4
+msgid "News"
+msgstr "Uutiset"
+
+#: qcsrc/menu/xonotic/dialog_news.c:18
+msgid "http://www.xonotic.org/team/blog/"
+msgstr "http://www.xonotic.org/team/blog/"
+
+#: qcsrc/menu/xonotic/dialog_quit.c:4
+msgid "Quit"
+msgstr "Lopeta"
+
+#: qcsrc/menu/xonotic/dialog_quit.c:17
+msgid "Are you sure you want to quit?"
+msgstr "Haluatko aivan varmasti lopettaa pelin?"
+
+#: qcsrc/menu/xonotic/dialog_quit.c:20
+msgid "Yes"
+msgstr "Kyllä"
+
+#: qcsrc/menu/xonotic/dialog_quit.c:21
+msgid "No"
+msgstr "Ei"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:4
+msgid "Settings"
+msgstr "Asetukset"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:18
+#: qcsrc/menu/xonotic/dialog_settings_input.c:4
+msgid "Input"
+msgstr "Ohjaus"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:19
+#: qcsrc/menu/xonotic/dialog_settings_video.c:4
+msgid "Video"
+msgstr "Video"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:20
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:4
+msgid "Effects"
+msgstr "Effektit"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:21
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:4
+msgid "Audio"
+msgstr "Ääni"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:22
+#: qcsrc/menu/xonotic/dialog_settings_network.c:4
+msgid "Network"
+msgstr "Verkko"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:23
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:4
+msgid "Misc"
+msgstr "Sekalainen"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:27
+msgid "Master:"
+msgstr "Pääkanava:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:33
+msgid "Music:"
+msgstr "Musiikki:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:40
+msgid "VOL^Ambient:"
+msgstr "VOL^Ympäristö:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:48
+msgid "Info:"
+msgstr "Tiedoitukset:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:57
+msgid "Items:"
+msgstr "Esineet:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:65
+msgid "Pain:"
+msgstr "Kipu:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:73
+msgid "Player:"
+msgstr "Pelaaja:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:81
+msgid "Shots:"
+msgstr "Laukaukset:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:88
+msgid "Voice:"
+msgstr "Puhe:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:96
+msgid "Weapons:"
+msgstr "Aseet:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:103
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:161
+msgid "Frequency:"
+msgstr "Taajuus:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:105
+msgid "8 kHz"
+msgstr "8 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:106
+msgid "11.025 kHz"
+msgstr "11.025 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:107
+msgid "16 kHz"
+msgstr "16 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:108
+msgid "22.05 kHz"
+msgstr "22.05 Khz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:109
+msgid "24 kHz"
+msgstr "24 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:110
+msgid "32 kHz"
+msgstr "32 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:111
+msgid "44.1 kHz"
+msgstr "44.1 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:112
+msgid "48 kHz"
+msgstr "48 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:115
+msgid "Channels:"
+msgstr "Kanavat:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:117
+msgid "Mono"
+msgstr "Mono"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:118
+msgid "Stereo"
+msgstr "Stereo"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:119
+msgid "2.1"
+msgstr "2.1"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:120
+msgid "4"
+msgstr "4"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:121
+msgid "5"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:122
+msgid "5.1"
+msgstr "5.1"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:123
+msgid "6.1"
+msgstr "6.1"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:124
+msgid "7.1"
+msgstr "7.1"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:128
+msgid "Swap Stereo"
+msgstr "Vaihda stereoäänilähteiden paikkaa"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:132
+msgid "Headphone friendly mode"
+msgstr "Kuulokeystävällinen tila"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:136
+msgid "Spatial voices:"
+msgstr "Tilanneäänet:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:137
+msgid "VOCS^None"
+msgstr "VOCS^Ei mitään"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:138
+msgid "VOCS^Taunts"
+msgstr "VOCS^Huudahdukset"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:139
+msgid "VOCS^All"
+msgstr "VOCS^Kaikki"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:142
+msgid "Taunt range:"
+msgstr "Huudahduksen kantama"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:145
+msgid "RNG^Very short"
+msgstr "RNG^Hyvin lyhyt"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:146
+msgid "RNG^Short"
+msgstr "RNG^Lyhyt"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:147
+msgid "RNG^Normal"
+msgstr "RNG^Normaali"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:148
+msgid "RNG^Long"
+msgstr "RNG^Pitkä"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:149
+msgid "RNG^Full"
+msgstr "RNG^Täysi"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:156
+msgid "Automatic taunts"
+msgstr "Automaattiset huudahdukset"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:165
+msgid "Time warning:"
+msgstr "Aikavaroitus:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:167
+msgid "WRN^None"
+msgstr "WRN^Ei mitään"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:168
+msgid "1 minute"
+msgstr "1 minuutti"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:169
+msgid "5 minutes"
+msgstr "5 minuuttia"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:170
+msgid "WRN^Both"
+msgstr "WRN^Molemmat"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:173
+msgid "Hit indicator"
+msgstr "Osumailmaisin"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:175
+msgid "Menu sounds"
+msgstr "Valikon äänet"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:38
+msgid "Quality preset:"
+msgstr "Laadun esiasetus:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:41
+msgid "PRE^OMG!"
+msgstr "PRE^Nörtti"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:42
+msgid "PRE^Low"
+msgstr "PRE^Matala"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:43
+msgid "PRE^Medium"
+msgstr "PRE^Keskitaso"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:44
+msgid "PRE^Normal"
+msgstr "PRE^Normaali"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:45
+msgid "PRE^High"
+msgstr "PRE^Korkea"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:46
+msgid "PRE^Ultra"
+msgstr "PRE^Hyvin korkea"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:48
+msgid "PRE^Ultimate"
+msgstr "PRE^Äärimmäinen"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:52
+msgid "Geometry detail:"
+msgstr "Geometriset yksityiskohdat:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:54
+msgid "DET^Lowest"
+msgstr "DET^Matalin"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:55
+msgid "DET^Low"
+msgstr "DET^Matala"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:56
+msgid "DET^Normal"
+msgstr "DET^Normaali"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:57
+msgid "DET^Good"
+msgstr "DET^Hyvä"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:58
+msgid "DET^Best"
+msgstr "DET^Paras"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:59
+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
+msgid "RES^Leet"
+msgstr "RES^Leet"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:74
+msgid "RES^Lowest"
+msgstr "RES^Matalin"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:75
+msgid "RES^Low"
+msgstr "RES^Matala"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:76
+msgid "RES^Normal"
+msgstr "RES^Normaali"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:77
+msgid "RES^Good"
+msgstr "RES^Hyvä"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:78
+msgid "RES^Best"
+msgstr "RES^Paras"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:91
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:94
+msgid "Avoid lossy texture compression"
+msgstr "Vältä häviöllistä tekstuurien pakkaamista"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:100
+msgid "Anisotropy:"
+msgstr "Anisotropia:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:102
+msgid "ANISO^Disabled"
+msgstr "ANISO^Pois päältä"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:105
+msgid "8x"
+msgstr "8x"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:106
+msgid "16x"
+msgstr "16x"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:110
+msgid "Particle quality:"
+msgstr "Kappaleiden laatu:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:113
+msgid "Particle distance:"
+msgstr "Kappaleiden etäisyys:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:117
+msgid "Decals"
+msgstr "Siirtokuvat"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:120
+msgid "Distance:"
+msgstr "Etäisyys:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:126
+msgid "Time:"
+msgstr "Aika:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:132
+msgid "Use lightmaps"
+msgstr "Käytä valaistuksia"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:133
+msgid "Deluxe mapping"
+msgstr "Pikselikohtainen valaistus"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:135
+msgid "Gloss"
+msgstr "Kiilto"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:138
+msgid "Offset mapping"
+msgstr "Korosta tekstuurien kuhmuja"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:140
+msgid "Relief mapping"
+msgstr "Tehokas tekstuurien kuhmujen korostus"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:143
+msgid "Reflections:"
+msgstr "Heijastukset:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:146
+msgid "Blurred"
+msgstr "Sumea"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:147
+msgid "REFL^Good"
+msgstr "REFL^Hyvä"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:148
+msgid "Sharp"
+msgstr "Terävä"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:153
+msgid "Show surfaces"
+msgstr "Näytä pinnat"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:155
+msgid "No dynamic lighting"
+msgstr "Ei dynaamista valaistusta"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:157
+msgid "Flash blend approximation"
+msgstr "Yksinkertaiset valot"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:159
+msgid "Realtime dynamic lighting"
+msgstr "Reaaliaikainen dynaaminen valaitus"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:160
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:164
+msgid "Shadows"
+msgstr "Varjot"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:163
+msgid "Realtime world lighting"
+msgstr "Reaaliaikainen ympäristön valaistus"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:168
+msgid "Use normal maps"
+msgstr "Käytä tekstuurien suunnattua varjostamista"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:170
+msgid "Soft shadows"
+msgstr "Pehmeät varjot"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:173
+msgid "Coronas"
+msgstr "Valokehät"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:174
+msgid "Use Occlusion Queries"
+msgstr "Käytä Occlusion Queryä"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:176
+msgid "Bloom"
+msgstr "Hehku"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:178
+msgid "High Dynamic Range (HDR)"
+msgstr "HDR"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:182
+msgid "Motion blur:"
+msgstr "Liikesumeus:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:188
+msgid "Damage blur:"
+msgstr "Vahinkosumeus:"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:26
+msgid "Key bindings:"
+msgstr "Näppäimet:"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:31
+msgid "Change key..."
+msgstr "Vaihda näppäin..."
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:35
+msgid "Edit..."
+msgstr "Muokkaa..."
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:46
+msgid "Sensitivity:"
+msgstr "Herkkyys:"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:49
+msgid "UI mouse speed:"
+msgstr "Käyttöliittymän hiiren nopeus:"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:52
+msgid "Mouse filter"
+msgstr "Hiiren suodatin"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:54
+msgid "Invert mouse"
+msgstr "Käännä hiiren suunta"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:57
+#: qcsrc/menu/xonotic/dialog_settings_input.c:59
+msgid "Use joystick input"
+msgstr "Käytä peliohjainta"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:62
+#: qcsrc/menu/xonotic/dialog_settings_input.c:64
+msgid "Turn off OS mouse acceleration"
+msgstr "Laita käyttöjärjestelmän hiiren kiihtyvyys pois päältä"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:66
+msgid "\"enter console\" also closes"
+msgstr "\"avaa komentorivi\" myös sulkee komentorivin"
+
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:5
+msgid "User defined key bind"
+msgstr "Käyttäjän määrittelemä näppäinasetus"
+
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:42
+msgid "Command when pressed:"
+msgstr "Komento painaessa:"
+
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:45
+msgid "Command when released:"
+msgstr "Komento painamisen jälkeen:"
+
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:48
+msgid "Save"
+msgstr "Tallenna"
+
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:51
+msgid "Cancel"
+msgstr "Peruuta"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:26
+msgid "Menu skins:"
+msgstr "Päävalikon ulkoasu:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:47
+msgid "Show current time"
+msgstr "Näytä nykyinen kellonaika"
+
+#: 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:51
+msgid "Show frames per second"
+msgstr "Näytä ruudunpäivitysnopeus (FPS)"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:53
+msgid "Speedometer"
+msgstr "Nopeusmittari"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:56
+msgid "qu/s (hidden)"
+msgstr "qu/s (kätketty)"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:58
+msgid "qu/s"
+msgstr "qu/s"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:60
+msgid "m/s"
+msgstr "m/s"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:64
+msgid "km/h"
+msgstr "km/h"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:66
+msgid "mph"
+msgstr "mph"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:68
+msgid "knots"
+msgstr "knots"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:71
+msgid "Show accelerometer"
+msgstr "Näytä kiihtyvyysmittari"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:74
+msgid "Accelerometer scale:"
+msgstr "Kiihtyvyysmittarin skaala:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:80
+msgid "Minimize input latency"
+msgstr "Minimoi syötteen viive"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:5
+msgid "Advanced settings"
+msgstr "Edistyneet asetukset"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:23
+msgid "Cvar filter:"
+msgstr "Cvar suodatin"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:34
+msgid "Setting:"
+msgstr "Asetus:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:42
+msgid "Value:"
+msgstr "Arvo:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:56
+msgid "Description:"
+msgstr "Kuvaus:"
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:26
+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_network.c:33
+msgid "Network speed:"
+msgstr "Verkon nopeus:"
+
+#: 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 "Hidas ASL"
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:38
+msgid "Fast ADSL"
+msgstr "Nopea ADSL"
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:39
+msgid "Broadband"
+msgstr "Laajakaista"
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:42
+msgid "Input packets/s:"
+msgstr "Vastaanottopaketit /s:"
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:46
+msgid "HTTP downloads:"
+msgstr "HTTP lataukset:"
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:49
+msgid "Downloads:"
+msgstr "Lataukset:"
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:53
+msgid "Speed (kB/s):"
+msgstr "Nopeus (kb/s)"
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:57
+msgid "Client UDP port:"
+msgstr "Asiakkaan UDP portti"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:26
+msgid "Resolution:"
+msgstr "Näytön tarkkuus:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:29
+msgid "Font/UI size:"
+msgstr "Kirjainten/käyttöliittymän koko:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:31
+msgid "SZ^Unreadable"
+msgstr "SZ^Miltein näkymätön"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:32
+msgid "SZ^Tiny"
+msgstr "SZ^Pikkuruinen"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:33
+msgid "SZ^Little"
+msgstr "SZ^Hyvin pieni"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:34
+msgid "SZ^Small"
+msgstr "SZ^Pieni"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:35
+msgid "SZ^Medium"
+msgstr "SZ^Keskikokoinen"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:36
+msgid "SZ^Large"
+msgstr "SZ^Suuri"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:37
+msgid "SZ^Huge"
+msgstr "SZ^Valtava"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:38
+msgid "SZ^Gigantic"
+msgstr "SZ^Jättiläismäinen"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:39
+msgid "SZ^Colossal"
+msgstr "SZ^Massiivinen"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:42
+msgid "Color depth:"
+msgstr "Värisävy:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:45
+msgid "Full screen"
+msgstr "Kokoruutu"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:46
+msgid "Vertical Synchronization"
+msgstr "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:52
+msgid "Use GLSL to handle color control"
+msgstr "Käytä GLSL:ää värien hallinnassa"
+
+#: 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:59
+msgid "VBO^Off"
+msgstr "VBO^Pois"
+
+#: 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:63
+msgid "Vertices"
+msgstr "Verteksit"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:64
+msgid "Vertices and Triangles"
+msgstr "Verteksit ja kolmiot"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:67
+msgid "Depth first:"
+msgstr "Syvyys ensin (Depth First):"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:69
+msgid "DF^Disabled"
+msgstr "DF^Pois"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:70
+msgid "DF^World"
+msgstr "DF^Maailma"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:71
+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:77
+msgid "Wait for GPU to finish each frame"
+msgstr "Anna näytönohjaimen viimeistellä jokainen ruutu"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:80
+msgid "Brightness:"
+msgstr "Kirkkaus:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:83
+msgid "Contrast:"
+msgstr "Kontrasti:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:86
+msgid "Gamma:"
+msgstr "Gamma:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:89
+msgid "Contrast boost:"
+msgstr "Kontrastin lisäys:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:92
+msgid "Saturation:"
+msgstr "Kylläisyys:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:98
+msgid "LIT^Ambient:"
+msgstr "LIT^Ympäristö:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:101
+msgid "Intensity:"
+msgstr "Intensiivisyys:"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:4
+msgid "Singleplayer"
+msgstr "Yksinpeli"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:59
+msgid "Instant action! (random map with bots)"
+msgstr "Suoraan taisteluun! (satunnainen kartta bottien kera)"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:80
+msgid "Start Singleplayer!"
+msgstr "Aloita yksinpeli!"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer_winner.c:4
+msgid "Winner"
+msgstr "Voittaja"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:5
+msgid "Team Selection"
+msgstr "Joukkueen valinta"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:41
+msgid "join 'best' team (auto-select)"
+msgstr "liity 'parhaimpaan' joukkueeseen"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:45
+msgid "red"
+msgstr "punainen"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:46
+msgid "blue"
+msgstr "sininen"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:47
+msgid "yellow"
+msgstr "keltainen"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:48
+msgid "pink"
+msgstr "pinkki"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:51
+msgid "spectate"
+msgstr "seuraa sivusta"
+
+#: qcsrc/menu/xonotic/mainwindow.c:35 qcsrc/menu/xonotic/mainwindow.c:38
+msgid "Do not press this button again!"
+msgstr "Älä paina enää näppäintä!"
+
+#: qcsrc/menu/xonotic/maplist.c:278
+msgid ""
+"Huh? Can't play this (m is NULL). Refiltering so this won't happen again.\n"
+msgstr ""
+"Höh? Tätä ei voida pelata (m on NULL). Uudelleensuodatetaan jottei vastaava "
+"enää toistuisi, anteeksi häiriö.\n"
+
+#: qcsrc/menu/xonotic/maplist.c:286
+#, c-format
+msgid "%s's Xonotic Server"
+msgstr "%s Xonotic-palvelin"
+
+#: qcsrc/menu/xonotic/maplist.c:291
+msgid ""
+"Huh? Can't play this (invalid game type). Refiltering so this won't happen "
+"again.\n"
+msgstr ""
+"Höh? Tätä ei voida pelata (epäkelpo pelityyppi). Uudelleensuodatetaan jottei "
+"vastaava enää toistuisi.\n"
+
+#: qcsrc/menu/xonotic/playermodel.c:174
+msgid "<no model found>"
+msgstr "<mallia ei löytynyt>"
+
+#: qcsrc/menu/xonotic/serverlist.c:185
+msgid "Remove"
+msgstr "Poista"
+
+#: qcsrc/menu/xonotic/serverlist.c:187
+msgid "Bookmark"
+msgstr "Kirjanmerkki"
+
+#: qcsrc/menu/xonotic/serverlist.c:523
+msgid "Ping"
+msgstr "Viive"
+
+#: qcsrc/menu/xonotic/serverlist.c:524
+msgid "Host name"
+msgstr "Palvelimen nimi"
+
+#: qcsrc/menu/xonotic/serverlist.c:525
+msgid "Map"
+msgstr "Kartta"
+
+#: qcsrc/menu/xonotic/serverlist.c:526
+msgid "Type"
+msgstr "Tyyppi"
+
+#: qcsrc/menu/xonotic/serverlist.c:527
+msgid "Players"
+msgstr "Pelaajat"
+
+#: qcsrc/menu/xonotic/skinlist.c:105
+msgid "<TITLE>"
+msgstr "<TITLE>"
+
+#: qcsrc/menu/xonotic/skinlist.c:106
+msgid "<AUTHOR>"
+msgstr "<AUTHOR>"
+
+#: qcsrc/menu/xonotic/skinlist.c:163
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: qcsrc/menu/xonotic/slider_decibels.c:50
+msgid "VOL^OFF"
+msgstr "VOL^OFF"
+
+#: qcsrc/menu/xonotic/slider_decibels.c:52
+msgid "VOL^MAX"
+msgstr "VOL^MAX"
+
+#: qcsrc/menu/xonotic/slider_decibels.c:53
+#, c-format
+msgid "%s dB"
+msgstr "%s dB"
+
+#: qcsrc/menu/xonotic/slider_resolution.c:65
+#, c-format
+msgid "%dx%d"
+msgstr "%dx%d"
+
+#: qcsrc/menu/xonotic/util.qc:270
+#, c-format
+msgid "Received HTTP request data for an invalid id %d.\n"
+msgstr "Vastaanotettiin epäkelpo HTTP datapyyntö: %d.\n"
+
+#: qcsrc/menu/xonotic/util.qc:285
+#, c-format
+msgid "error receiving update notification: status is %d\n"
+msgstr "virhe vastaanottaessa päivitystiedotetta: tilanne %d\n"
+
+#: qcsrc/menu/xonotic/util.qc:290
+msgid "error: received HTML instead of an update notification\n"
+msgstr "virhe: vastaanotettiin HTML päivitystiedotteen asemesta\n"
+
+#: qcsrc/menu/xonotic/util.qc:295
+msgid "error: received carriage returns from update notification server\n"
+msgstr "virhe: vastaanotettiin tyhjää dataa päivitystiedotepalvelimelta\n"
+
+#: qcsrc/menu/xonotic/util.qc:316
+#, c-format
+msgid ""
+"Update can be downloaded at:\n"
+"%s\n"
+msgstr ""
+"Päivitys on ladattavissa:\n"
+"%s\n"
+
+#: qcsrc/menu/xonotic/util.qc:337
+msgid "Autogenerating mapinfo for newly added maps..."
+msgstr ""
+"Luodaan automaattisesti karttatietoja vastikään lisätyille kartoille..."
+
+#: qcsrc/menu/xonotic/util.qc:367
+#, c-format
+msgid "^1%s TEST BUILD"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:432
+#, c-format
+msgid "Update to %s now!"
+msgstr "Päivitä versioon %s nyt!"
+
+#: qcsrc/menu/xonotic/util.qc:509
+msgid ""
+"^1ERROR: Texture compression is required but not supported.\n"
+"^1Expect visual problems.\n"
+msgstr ""
+"^1VIRHE: Tekstuurien pakkaus vaaditaan mutta ei ole tuettuna.\n"
+"^1Grafiikkavirheitä odotettavissa.\n"
+
+#: qcsrc/menu/xonotic/util.qc:531
+msgid "Arena"
+msgstr "Areena"
+
+#: qcsrc/menu/xonotic/util.qc:532
+msgid "Assault"
+msgstr "Rynnäkkö (Assault)"
+
+#: qcsrc/menu/xonotic/util.qc:533
+msgid "Capture The Flag"
+msgstr "Lipunryöstö (CTF)"
+
+#: qcsrc/menu/xonotic/util.qc:534
+msgid "Clan Arena"
+msgstr "Klaaniareena (Clan Arena)"
+
+#: qcsrc/menu/xonotic/util.qc:535
+msgid "Deathmatch"
+msgstr "Mättö (Deathmatch)"
+
+#: qcsrc/menu/xonotic/util.qc:536
+msgid "Domination"
+msgstr "Hallinta (Domination)"
+
+#: qcsrc/menu/xonotic/util.qc:537
+msgid "Freeze Tag"
+msgstr "Pakkashippa (Freeze Tag)"
+
+#: qcsrc/menu/xonotic/util.qc:538
+msgid "Keepaway"
+msgstr "Pakomatka (Keepaway)"
+
+#: qcsrc/menu/xonotic/util.qc:539
+msgid "Key Hunt"
+msgstr "Avaimenmetsästys (Key Hunt)"
+
+#: qcsrc/menu/xonotic/util.qc:540
+msgid "Last Man Standing"
+msgstr "Viimeiseen mieheen (Last Man Standing)"
+
+#: qcsrc/menu/xonotic/util.qc:541
+msgid "Nexball"
+msgstr "Nexpallo (Nexball)"
+
+#: qcsrc/menu/xonotic/util.qc:542
+msgid "Onslaught"
+msgstr "Suurtaistelu (Onslaught)"
+
+#: qcsrc/menu/xonotic/util.qc:543
+msgid "Race"
+msgstr "Kilpailu (RACE)"
+
+#: qcsrc/menu/xonotic/util.qc:544
+msgid "Race CTS"
+msgstr "Kilpailu CTS"
+
+#: qcsrc/menu/xonotic/util.qc:545
+msgid "Runematch"
+msgstr "Riimu-ottelu (Runematch)"
+
+#: qcsrc/menu/xonotic/util.qc:546
+msgid "Team Deathmatch"
+msgstr "Joukkuemättö (Team Deatchmatch)"
+
+#: qcsrc/menu/xonotic/util.qc:565
+#, c-format
+msgid "@!#%'n Tuba Throwing"
+msgstr "@!#% tuubanheitto!"
+
+#: qcsrc/menu/xonotic/util.qc:583
+msgid "Background:"
+msgstr "Tausta:"
+
+#: qcsrc/menu/xonotic/util.qc:585 qcsrc/menu/xonotic/util.qc:601
+#: qcsrc/menu/xonotic/util.qc:610 qcsrc/menu/xonotic/util.qc:618
+#: qcsrc/menu/xonotic/util.qc:630
+msgid "Default"
+msgstr "Perusasetus"
+
+#: qcsrc/menu/xonotic/util.qc:596
+msgid "Use default"
+msgstr "Käytä perusasetusta"
+
+#: qcsrc/menu/xonotic/util.qc:616
+msgid "Team Color:"
+msgstr "Joukkueen väri"
+
+#: qcsrc/menu/xonotic/util.qh:49
+msgid "Enable panel"
+msgstr "Ota paneeli käyttöön"
+
+#: qcsrc/server/w_crylink.qc:2
+msgid "Crylink"
+msgstr ""
+
+#: qcsrc/server/w_crylink.qc:664
+#, c-format
+msgid "%s succeeded at self-destructing themself with the Crylink"
+msgstr ""
+
+#: qcsrc/server/w_crylink.qc:669
+#, c-format
+msgid "%s could not hide from %s's Crylink"
+msgstr ""
+
+#: qcsrc/server/w_crylink.qc:671
+#, c-format
+msgid "%s was too close to %s's Crylink"
+msgstr ""
+
+#: qcsrc/server/w_crylink.qc:673
+#, c-format
+msgid "%s took a close look at %s's Crylink"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:2
+msgid "Electro"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:571
+#, c-format
+msgid "%s could not remember where they put plasma"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:573
+#, c-format
+msgid "%s played with plasma"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:580
+#, c-format
+msgid "%s just noticed %s's blue ball"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:582
+#, c-format
+msgid "%s got in touch with %s's blue ball"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:587
+#, c-format
+msgid "%s felt the electrifying air of %s's combo"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:589
+#, c-format
+msgid "%s got too close to %s's blue beam"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:591
+#, c-format
+msgid "%s was blasted by %s's blue beam"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:2
+#, fuzzy
+msgid "Fireball"
+msgstr "Nexpallo (Nexball)"
+
+#: qcsrc/server/w_fireball.qc:417
+#, c-format
+msgid "%s forgot about some firemine"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:419 qcsrc/server/w_hlac.qc:240
+#, c-format
+msgid "%s should have used a smaller gun"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:426
+#, c-format
+msgid "%s tried to catch %s's firemine"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:428
+#, c-format
+msgid "%s fatefully ignored %s's firemine"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:435
+#, c-format
+msgid "%s could not hide from %s's fireball"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:437
+#, c-format
+msgid "%s saw the pretty lights of %s's fireball"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:440
+#, c-format
+msgid "%s got too close to %s's fireball"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:442
+#, c-format
+msgid "%s tasted %s's fireball"
+msgstr ""
+
+#: qcsrc/server/w_grenadelauncher.qc:2
+msgid "Mortar"
+msgstr ""
+
+#: qcsrc/server/w_grenadelauncher.qc:378
+#, c-format
+msgid "%s tried out his own grenade"
+msgstr ""
+
+#: qcsrc/server/w_grenadelauncher.qc:380
+#, c-format
+msgid "%s detonated"
+msgstr ""
+
+#: qcsrc/server/w_grenadelauncher.qc:386
+#, c-format
+msgid "%s didn't see %s's grenade"
+msgstr ""
+
+#: qcsrc/server/w_grenadelauncher.qc:388
+#, c-format
+msgid "%s almost dodged %s's grenade"
+msgstr ""
+
+#: qcsrc/server/w_grenadelauncher.qc:390
+#, c-format
+msgid "%s ate %s's grenade"
+msgstr ""
+
+#: qcsrc/server/w_hagar.qc:2
+msgid "Hagar"
+msgstr ""
+
+#: qcsrc/server/w_hagar.qc:209 qcsrc/server/w_seeker.qc:655
+#, c-format
+msgid "%s played with tiny rockets"
+msgstr ""
+
+#: qcsrc/server/w_hagar.qc:213
+#, c-format
+msgid "%s hoped %s's missiles wouldn't bounce"
+msgstr ""
+
+#: qcsrc/server/w_hagar.qc:215 qcsrc/server/w_seeker.qc:661
+#, c-format
+msgid "%s was pummeled by %s"
+msgstr ""
+
+#: qcsrc/server/w_hlac.qc:2
+msgid "Heavy Laser Assault Cannon"
+msgstr ""
+
+#: qcsrc/server/w_hlac.qc:242
+#, c-format
+msgid "%s was cut down by %s"
+msgstr ""
+
+#: qcsrc/server/w_hook.qc:2
+#, fuzzy
+msgid "Grappling Hook"
+msgstr "Köysi"
+
+#: qcsrc/server/w_hook.qc:266 qcsrc/server/w_minstanex.qc:290
+#: qcsrc/server/w_nex.qc:267 qcsrc/server/w_porto.qc:296
+#: qcsrc/server/w_shotgun.qc:203 qcsrc/server/w_uzi.qc:317
+#, c-format
+msgid "%s did the impossible"
+msgstr ""
+
+#: qcsrc/server/w_hook.qc:268
+#, c-format
+msgid "%s has run into %s's gravity bomb"
+msgstr ""
+
+#: qcsrc/server/w_laser.qc:2
+msgid "Laser"
+msgstr ""
+
+#: qcsrc/server/w_laser.qc:305
+#, c-format
+msgid "%s lasered themself to hell"
+msgstr ""
+
+#: qcsrc/server/w_laser.qc:309
+#, c-format
+msgid "%s was cut in half by %s's gauntlet"
+msgstr ""
+
+#: qcsrc/server/w_laser.qc:311
+#, c-format
+msgid "%s was lasered to death by %s"
+msgstr ""
+
+#: qcsrc/server/w_minelayer.qc:2
+#, fuzzy
+msgid "Mine Layer"
+msgstr "Yksinpeli"
+
+#: qcsrc/server/w_minelayer.qc:495 qcsrc/server/w_rocketlauncher.qc:500
+#, c-format
+msgid "%s exploded"
+msgstr ""
+
+#: qcsrc/server/w_minelayer.qc:499
+#, c-format
+msgid "%s got too close to %s's mine"
+msgstr ""
+
+#: qcsrc/server/w_minelayer.qc:501
+#, c-format
+msgid "%s almost dodged %s's mine"
+msgstr ""
+
+#: qcsrc/server/w_minelayer.qc:503
+#, c-format
+msgid "%s stepped on %s's mine"
+msgstr ""
+
+#: qcsrc/server/w_minstanex.qc:2
+#, fuzzy
+msgid "MinstaNex"
+msgstr "MinstaGib"
+
+#: qcsrc/server/w_minstanex.qc:292 qcsrc/server/w_nex.qc:269
+#, c-format
+msgid "%s has been vaporized by %s"
+msgstr ""
+
+#: qcsrc/server/w_nex.qc:2
+#, fuzzy
+msgid "Nex"
+msgstr "Nexpallo (Nexball)"
+
+#: qcsrc/server/w_porto.qc:2
+msgid "Port-O-Launch"
+msgstr ""
+
+#: qcsrc/server/w_porto.qc:298
+#, c-format
+msgid "%s felt %s doing the impossible to him"
+msgstr ""
+
+#: qcsrc/server/w_rocketlauncher.qc:2
+msgid "Rocket Launcher"
+msgstr ""
+
+#: qcsrc/server/w_rocketlauncher.qc:504
+#, c-format
+msgid "%s got too close to %s's rocket"
+msgstr ""
+
+#: qcsrc/server/w_rocketlauncher.qc:506
+#, c-format
+msgid "%s almost dodged %s's rocket"
+msgstr ""
+
+#: qcsrc/server/w_rocketlauncher.qc:508
+#, c-format
+msgid "%s ate %s's rocket"
+msgstr ""
+
+#: qcsrc/server/w_seeker.qc:2
+msgid "T.A.G. Seeker"
+msgstr ""
+
+#: qcsrc/server/w_seeker.qc:659
+#, c-format
+msgid "%s was tagged by %s"
+msgstr ""
+
+#: qcsrc/server/w_shotgun.qc:2
+#, fuzzy
+msgid "Shotgun"
+msgstr "Laukaukset:"
+
+#: qcsrc/server/w_shotgun.qc:207
+#, c-format
+msgid "%2$s ^7slapped %1$s ^7around a bit with a large ^2shotgun"
+msgstr ""
+
+#: qcsrc/server/w_shotgun.qc:209
+#, c-format
+msgid "%s was gunned by %s"
+msgstr ""
+
+#: qcsrc/server/w_sniperrifle.qc:2
+msgid "Sniper Rifle"
+msgstr ""
+
+#: qcsrc/server/w_sniperrifle.qc:229
+#, c-format
+msgid "%s shot themself automatically"
+msgstr ""
+
+#: qcsrc/server/w_sniperrifle.qc:231
+#, c-format
+msgid "%s sniped themself somehow"
+msgstr ""
+
+#: qcsrc/server/w_sniperrifle.qc:238
+#, c-format
+msgid "%s failed to hide from %s's bullet hail"
+msgstr ""
+
+#: qcsrc/server/w_sniperrifle.qc:240
+#, c-format
+msgid "%s died in %s's bullet hail"
+msgstr ""
+
+#: qcsrc/server/w_sniperrifle.qc:247
+#, c-format
+msgid "%s failed to hide from %s's rifle"
+msgstr ""
+
+#: qcsrc/server/w_sniperrifle.qc:252
+#, c-format
+msgid "%s got hit in the head by %s"
+msgstr ""
+
+#: qcsrc/server/w_sniperrifle.qc:254 qcsrc/server/w_uzi.qc:321
+#, c-format
+msgid "%s was sniped by %s"
+msgstr ""
+
+#: qcsrc/server/w_tuba.qc:2
+#, fuzzy, c-format
+msgid "@!#%'n Tuba"
+msgstr "@!#% tuubanheitto!"
+
+#: qcsrc/server/w_tuba.qc:263
+#, c-format
+msgid "%s hurt his own ears with the @!#%%'n Tuba"
+msgstr ""
+
+#: qcsrc/server/w_tuba.qc:267
+#, c-format
+msgid "%s died of %s's great playing on the @!#%%'n Tuba"
+msgstr ""
+
+#: qcsrc/server/w_uzi.qc:2
+msgid "Machine Gun"
+msgstr ""
+
+#: qcsrc/server/w_uzi.qc:323
+#, c-format
+msgid "%s was riddled full of holes by %s"
+msgstr ""
+
+#~ msgid "Waypoint settings:"
+#~ msgstr "Välimatkojen asetukset:"
+
+#~ msgid ""
+#~ "Please answer a few initial questions to enhance the game experience."
+#~ msgstr ""
+#~ "Ole hyvä ja vastaa muutamaan alustavaan kysymykseen parantaaksesi "
+#~ "pelikokemustasi."
+
+#~ msgid "%d/%d"
+#~ msgstr "%d/%d"
--- /dev/null
+# Xonotic French Translation.
+# Copyright (C) 2011
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Calinou <hugohachel@gmail.com>, 2011.
+# Maxime Paradis <taximus.micro@gmail.com>, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: Xonotic 0.1preview\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-04-30 10:07+0200\n"
+"PO-Revision-Date: 2011-03-09 15:48-0500\n"
+"Last-Translator: Maxime Paradis <taximus.micro@gmail.com>\n"
+"Language-Team: French <kde-i18n-doc@kde.org>\n"
+"Language: fr\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/menu/gamecommand.qc:47
+#, c-format
+msgid "error: status is %d\n"
+msgstr "erreur: le status est %d\n"
+
+#: qcsrc/menu/gamecommand.qc:65
+msgid "Usage: menu_cmd command..., where possible commands are:\n"
+msgstr "Utilisation: menu_cmd commande..., les commandes possibles sont:\n"
+
+#: qcsrc/menu/gamecommand.qc:66
+msgid " sync - reloads all cvars on the current menu page\n"
+msgstr " sync - recharge toutes les variables sur la page actuelle\n"
+
+#: qcsrc/menu/gamecommand.qc:67
+msgid " directmenu ITEM - select a menu item as main item\n"
+msgstr ""
+" directmenu OBJET - sélectionner un objet de menu comme objet principal\n"
+
+#: qcsrc/menu/gamecommand.qc:193
+msgid "error creating curl handle\n"
+msgstr "erreur de création du curl handle"
+
+#: qcsrc/menu/gamecommand.qc:239
+msgid "Invalid command. For a list of supported commands, try menu_cmd help.\n"
+msgstr ""
+"Commande invalide. Pour une liste des commandes supportées, tapez menu_cmd "
+"help (dans la console).\n"
+
+#: qcsrc/menu/item/gecko.c:49
+msgid "Browser not initialized!"
+msgstr "Navigateur non initialisé !"
+
+#: qcsrc/menu/item/label.c:63
+#, c-format
+msgid "NOTE: label text %s too wide for label, condensed by factor %f\n"
+msgstr ""
+"REMARQUE: le texte label %s est trop large pour un label, condensé par le "
+"facteur %f\n"
+
+#: qcsrc/menu/item/listbox.c:300
+#, c-format
+msgid "Item %d"
+msgstr "Objet %d"
+
+#: qcsrc/menu/item/slider.c:64
+#, c-format
+msgid "%d (%s)"
+msgstr "%d (%s)"
+
+#: qcsrc/menu/item/textslider.c:29 qcsrc/menu/item/textslider.c:31
+msgid "custom"
+msgstr "personnalisé"
+
+#: qcsrc/menu/menu.qc:29
+#, fuzzy, c-format
+msgid "^4MQC Build information: ^1%s\n"
+msgstr "^4MQC Build information : %s (français)\n"
+
+#: qcsrc/menu/xonotic/campaign.c:284
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:66
+msgid "???"
+msgstr "???"
+
+#: qcsrc/menu/xonotic/campaign.c:285
+#, c-format
+msgid "Level %d: %s"
+msgstr "Niveau %d: %s"
+
+#: qcsrc/menu/xonotic/cvarlist.c:85
+msgid "will be saved to config.cfg"
+msgstr "sera sauvegardé vers config.cfg"
+
+#: qcsrc/menu/xonotic/cvarlist.c:87
+msgid "will not be saved"
+msgstr "ne sera pas sauvegardé vers config.cfg"
+
+#: qcsrc/menu/xonotic/cvarlist.c:89
+msgid "private"
+msgstr "privé"
+
+#: qcsrc/menu/xonotic/cvarlist.c:91
+msgid "engine setting"
+msgstr "paramètre moteur"
+
+#: qcsrc/menu/xonotic/cvarlist.c:93
+msgid "read only"
+msgstr "lecture seule"
+
+#: qcsrc/menu/xonotic/dialog_credits.c:5
+msgid "Credits"
+msgstr "Crédits"
+
+#: qcsrc/menu/xonotic/dialog_credits.c:21
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:82
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:269
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:41
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:55
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:61
+#: qcsrc/menu/xonotic/dialog_singleplayer_winner.c:21
+msgid "OK"
+msgstr "OK"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:4
+msgid "Welcome"
+msgstr "Bienvenue"
+
+#: 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 ""
+"Bienvenue sur Xonotic, veuillez sélectionner votre langue et entrer votre "
+"pseudonyme pour commencer. Vous pouvez changer ces options plus tard dans "
+"les menus."
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:38
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:35
+msgid "Text language:"
+msgstr "Langue écran:"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:47
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:40
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:39
+msgid "Name:"
+msgstr "Pseudonyme:"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:69
+msgid "Save settings"
+msgstr "Sauvegarder"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:4
+msgid "Ammo Panel"
+msgstr "Panneau de munitions"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:22
+msgid "Ammunition display:"
+msgstr "Affichage munitions:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:25
+msgid "Show only current ammo type"
+msgstr "Ne montrer que le type de munition actuel"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:29
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:28
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:40
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:28
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:40
+msgid "Left"
+msgstr "Gauche"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:30
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:30
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:41
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:30
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:41
+msgid "Right"
+msgstr "Droite"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:4
+msgid "Chat Panel"
+msgstr "Panneau de Chat"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:22
+msgid "Chat entries:"
+msgstr "Entrées Chat:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:25
+msgid "Chat size:"
+msgstr "Taille du Chat:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:29
+msgid "Chat lifetime:"
+msgstr "Durée du Chat:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:33
+msgid "Chat beep sound"
+msgstr "Sons Chat:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_engineinfo.c:4
+msgid "Engine Info Panel"
+msgstr "Panneau Info Moteur"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_engineinfo.c:22
+msgid "Engine info:"
+msgstr "Info Moteur:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_engineinfo.c:25
+msgid "Use an averaging algorithm for fps"
+msgstr "Utiliser un algorithme pour calculer les FPS"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:4
+msgid "Health/Armor Panel"
+msgstr "Panneau Santé/Armure"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:22
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:22
+msgid "Enable status bar"
+msgstr "Activer jauges"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:24
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:24
+msgid "Status bar alignment:"
+msgstr "Alignement jauges:"
+
+#: 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 "Intérieur"
+
+#: 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 "Extérieur"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:37
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:37
+msgid "Icon alignment:"
+msgstr "Alignement icônes:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:45
+msgid "Flip health and armor positions"
+msgstr "Échanger positions Santé/Armure"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_infomessages.c:4
+msgid "Info Messages Panel"
+msgstr "Panneau d'Information"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_infomessages.c:22
+msgid "Info messages:"
+msgstr "Messages d'Info:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_infomessages.c:25
+msgid "Flip align"
+msgstr "Échanger alignement"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_modicons.c:4
+msgid "Mod Icons Panel"
+msgstr "Panneau d'Icônes de Mode"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:4
+msgid "Notification Panel"
+msgstr "Panneau de Notifications"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:22
+msgid "Notifications:"
+msgstr "Notifications:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:25
+msgid "Also print notifications to the console"
+msgstr "Montrer notifications sur la console"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:28
+msgid "Flip notify order"
+msgstr "Inverser l'ordre de notification"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:31
+msgid "Entry lifetime:"
+msgstr "Durée d'une entrée:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:35
+msgid "Entry fadetime:"
+msgstr "Temps d'effacement d'une entrée:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:4
+msgid "Powerups Panel"
+msgstr "Panneau des Pouvoirs"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:45
+msgid "Flip strength and shield positions"
+msgstr "Échanger les positions Force/Bouclier"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:4
+msgid "Pressed Keys Panel"
+msgstr "Panneau Touches Pressées"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:21
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:21
+msgid "Panel disabled"
+msgstr "Panneau désactivé"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:22
+msgid "Panel enabled when spectating"
+msgstr "Panneau activé en spectateur"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:23
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:23
+msgid "Panel always enabled"
+msgstr "Panneau toujours activé"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:30
+msgid "Forced aspect:"
+msgstr "Aspect forcé:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_racetimer.c:4
+msgid "Race Timer Panel"
+msgstr "Chronomètre Course"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:4
+msgid "Radar Panel"
+msgstr "Panneau Mini-carte"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:22
+msgid "Panel enabled in teamgames"
+msgstr "Panneau activé en Équipe"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:29
+msgid "Radar:"
+msgstr "Mini-carte:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:32
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:43
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:82
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:154
+#: qcsrc/menu/xonotic/util.qc:608
+msgid "Alpha:"
+msgstr "Opacité:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:36
+msgid "Rotation:"
+msgstr "Rotation:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:38
+msgid "Forward"
+msgstr "Direction marche"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:39
+msgid "West"
+msgstr "Ouest"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:40
+msgid "South"
+msgstr "Sud"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:41
+msgid "East"
+msgstr "Est"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:42
+msgid "North"
+msgstr "Nord"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:46
+msgid "Scale:"
+msgstr "Échelle:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:50
+msgid "Zoom mode:"
+msgstr "Mode de Zoom:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:52
+msgid "Zoomed in"
+msgstr "Zoomé"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:53
+msgid "Zoomed out"
+msgstr "Dézoomé"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:54
+msgid "Always zoomed"
+msgstr "Toujours Zoomé"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:55
+msgid "Never zoomed"
+msgstr "Toujours Dézoomé"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_score.c:4
+msgid "Score Panel"
+msgstr "Tableau des scores"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_timer.c:4
+msgid "Timer Panel"
+msgstr "Chronomètre"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_timer.c:22
+msgid "Timer:"
+msgstr "Chronomètre:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_timer.c:25
+msgid "Show elapsed time"
+msgstr "Montrer temps passé"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_vote.c:4
+msgid "Vote Panel"
+msgstr "Panneau de Vote"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_vote.c:22
+msgid "Alpha after voting:"
+msgstr "Opacité après vote:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:4
+msgid "Weapons Panel"
+msgstr "Panneau d'armes"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:24
+msgid "Fade out after:"
+msgstr "Effacer après:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:26
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:36
+msgid "Never"
+msgstr "Jamais"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:28
+#, c-format
+msgid "%ds"
+msgstr "%dsec."
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:32
+msgid "Fade effect:"
+msgstr "Effet d'effacement:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:33
+msgid "EF^None"
+msgstr "Aucun"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:35
+msgid "Slide"
+msgstr "Glisse"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:37
+msgid "Alpha"
+msgstr "Opacité"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:40
+msgid "Weapon icons:"
+msgstr "Icônes d'armes:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:43
+msgid "Show weapon ID as:"
+msgstr "Montrer le numéro d'arme:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:44
+msgid "SHOWAS^None"
+msgstr "Aucun"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:45
+msgid "Number"
+msgstr "Numéro"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:46
+msgid "Bind"
+msgstr "Touche"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:49
+msgid "Show Accuracy"
+msgstr "Monter la précision"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:50
+msgid "Show Ammo"
+msgstr "Montrer barre de munitions"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:53
+msgid "Ammo bar color:"
+msgstr "Couleur barre de munitions:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:59
+msgid "Ammo bar alpha:"
+msgstr "Opacité barre de munitions:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:4
+msgid "Panel HUD Setup"
+msgstr "Configuration Interface"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:21
+msgid "Panel background defaults:"
+msgstr "Fond du Panneau par défaut:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:25
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:37
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:52
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:91 qcsrc/menu/xonotic/util.qc:586
+#: qcsrc/menu/xonotic/util.qc:602 qcsrc/menu/xonotic/util.qc:619
+msgid "Disable"
+msgstr "Désactiver"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:30
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:77 qcsrc/menu/xonotic/util.qc:591
+msgid "Color:"
+msgstr "Couleur:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:35 qcsrc/menu/xonotic/util.qc:599
+msgid "Border size:"
+msgstr "Taille des bords:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:50
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:89
+msgid "Team color:"
+msgstr "Couleur d'équipe:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:58 qcsrc/menu/xonotic/util.qc:625
+msgid "Test team color in configure mode"
+msgstr "Afficher la couleur d'équipe en mode configuration"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:61 qcsrc/menu/xonotic/util.qc:628
+msgid "Padding:"
+msgstr "Ajustement:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:68
+msgid "HUD Dock:"
+msgstr "Contour interface:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:70
+#, fuzzy
+msgid "DOCK^Disabled"
+msgstr "Désactivé"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:71
+#, fuzzy
+msgid "DOCK^Small"
+msgstr "Petit"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:72
+#, fuzzy
+msgid "DOCK^Medium"
+msgstr "Moyen"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:73
+#, fuzzy
+msgid "DOCK^Large"
+msgstr "Grand"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:96
+msgid "Grid settings:"
+msgstr "Paramètres grille:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:99
+msgid "Snap panels to grid"
+msgstr "Coller panneaux sur la grille"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:102
+msgid "Grid size:"
+msgstr "Taille de grille:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:103
+msgid "X:"
+msgstr "Hori.:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:109
+msgid "Y:"
+msgstr "Vert.:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:117
+msgid "Exit setup"
+msgstr "Sauvegarder et quitter"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:4
+msgid "Multiplayer"
+msgstr "Multijoueur"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:18
+msgid "Servers"
+msgstr "Serveurs"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:19
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:5
+msgid "Create"
+msgstr "Créer"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:20
+msgid "Demos"
+msgstr "Vidéos"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:21
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:5
+msgid "Player Setup"
+msgstr "Paramètres Joueur"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:35
+msgid "Game type:"
+msgstr "Mode de jeu:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:47
+msgid "Match settings:"
+msgstr "Paramètres match:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:50
+msgid "Time limit:"
+msgstr "Limite de temps:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:54
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:62
+msgid "Use map specified default"
+msgstr "Utiliser le paramètre de carte"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:57
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:156
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:157
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:158
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:162
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:163
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:164
+msgid "Point limit:"
+msgstr "Limite de points:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:65
+msgid "Player slots:"
+msgstr "Nombre de joueurs max.:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:68
+msgid "Number of bots:"
+msgstr "Nombre de robots:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:72
+msgid "Bot skill:"
+msgstr "Difficulté robot:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:75
+msgid "Botlike"
+msgstr "Nul"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:76
+msgid "Beginner"
+msgstr "Jeu d'enfant"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:77
+msgid "You will win"
+msgstr "Très Facile"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:78
+msgid "You can win"
+msgstr "Facile"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:79
+msgid "You might win"
+msgstr "Assez Facile"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:80
+msgid "Advanced"
+msgstr "Avancé"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:81
+msgid "Expert"
+msgstr "Expert"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:82
+msgid "Pro"
+msgstr "Professionnel"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:83
+msgid "Assassin"
+msgstr "Assassin"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:84
+msgid "Unhuman"
+msgstr "Inhumain"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:85
+msgid "Godlike"
+msgstr "Dieu"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:89
+msgid "Mutators..."
+msgstr "Spéciales..."
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:98
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:84
+msgid "Advanced settings..."
+msgstr "Paramètres avancés..."
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:105
+msgid "Map list:"
+msgstr "Liste de cartes:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:111
+msgid "Select all"
+msgstr "Tout sélectionner"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:114
+msgid "Select none"
+msgstr "Ne rien sélectionner"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:120
+msgid "Start Multiplayer!"
+msgstr "Démarrer!"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:155
+msgid "Capture limit:"
+msgstr "Limite de captures:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:159
+msgid "Lives:"
+msgstr "Vies:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:160
+msgid "Laps:"
+msgstr "Tours:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:161
+msgid "Goals:"
+msgstr "Buts:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:165
+msgid "Frag limit:"
+msgstr "Limite de tués:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:6
+msgid "Advanced server settings"
+msgstr "Paramètres serveur avancés"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:25
+msgid "Game settings:"
+msgstr "Paramètres jeu"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:28
+msgid "Allow spectating"
+msgstr "Autoriser les spectateurs"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:31
+msgid "Spawn shield:"
+msgstr "Bouclier de départ:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:36
+msgid "Game speed:"
+msgstr "Vitesse de jeu:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:40
+msgid "Teamplay settings:"
+msgstr "Paramètres Jeu d'équipe:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:43
+msgid "Friendly fire scale:"
+msgstr "Facteur Dégâts équipiers:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:47
+msgid "Virtual friendly fire (effect only)"
+msgstr "Dégâts équipiers virtuels (seulement effets)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:50
+msgid "Friendly fire penalty:"
+msgstr "Pénalité Dégâts équipiers:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:54
+msgid "Virtual penalty (effect only)"
+msgstr "Pénalité Dégâts équipiers virtuelle (seulement effets)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:57
+msgid "Teams:"
+msgstr "Équipes:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:66
+msgid "Map voting:"
+msgstr "Vote carte suivante:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:68
+msgid "No voting"
+msgstr "Pas de vote"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:69
+msgid "2 choices"
+msgstr "2 choix"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:70
+msgid "3 choices"
+msgstr "3 choix"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:71
+msgid "4 choices"
+msgstr "4 choix"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:72
+msgid "5 choices"
+msgstr "5 choix"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:73
+msgid "6 choices"
+msgstr "6 choix"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:74
+msgid "7 choices"
+msgstr "7 choix"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:75
+msgid "8 choices"
+msgstr "8 choix"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:76
+msgid "9 choices"
+msgstr "9 choix"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:79
+msgid "Simple majority wins vcall"
+msgstr "Majorité 51% pour gagner le vote"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:5
+msgid "Map Information"
+msgstr "Information carte:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:49
+msgid "Full item placement"
+msgstr "Objets présents"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:49
+msgid "MinstaGib only"
+msgstr "MinstaGib seulement"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:78
+msgid "Title:"
+msgstr "Titre:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:84
+msgid "Author:"
+msgstr "Auteur:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:90
+msgid "Features:"
+msgstr "Fonctions:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:95
+msgid "Game types:"
+msgstr "Modes de jeux:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:119
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:314
+msgid "Close"
+msgstr "Fermer"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:122
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:46
+msgid "Play"
+msgstr "Jouer"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:7
+msgid "Mutators"
+msgstr "Spéciales"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:33
+msgid "All Weapons Arena"
+msgstr "Toutes les armes"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:35
+msgid "Most Weapons Arena"
+msgstr "Beaucoup d'armes"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:56
+#, c-format
+msgid "%s Arena"
+msgstr "Arène de %s"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:68
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:167
+msgid "Dodging"
+msgstr "Esquives"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:70
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:250
+msgid "MinstaGib"
+msgstr "MinstaGib"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:72
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:253
+msgid "NIX"
+msgstr "NIX"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:74
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:205
+msgid "Rocket Flying"
+msgstr "Roquettes volantes"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:78
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:264
+msgid "No start weapons"
+msgstr "Pas d'armes au début"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:80
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:189
+msgid "Low gravity"
+msgstr "Gravité basse"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:82
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:170
+msgid "Cloaked"
+msgstr "Joueurs transparents"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:84
+msgid "Hook"
+msgstr "Grappin"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:86
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:173
+msgid "Midair"
+msgstr "Midair"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:88
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:176
+msgid "Vampire"
+msgstr "Vampire"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:90
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:208
+msgid "Piñata"
+msgstr "Piñata"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:92
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:211
+msgid "Weapons stay"
+msgstr "Armes infinies"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:94
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:180
+msgid "Blood loss"
+msgstr "Perte de sang"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:96
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:202
+msgid "Jet pack"
+msgstr "Jet pack"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:98
+msgid "MUT^None"
+msgstr "Aucun"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:164
+msgid "Gameplay mutators:"
+msgstr "Spéciales Mode de jeu:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:196
+msgid "Weapon & item mutators:"
+msgstr "Spéciales Armes et Objets:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:199
+msgid "Grappling hook"
+msgstr "Grappin"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:215
+msgid "Weapon arenas:"
+msgstr "Arènes d'armes:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:218
+msgid "Regular (no arena)"
+msgstr "Régulier (pas d'Arène)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:239
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:256
+msgid "with laser"
+msgstr "avec le laser"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:247
+msgid "Special arenas:"
+msgstr "Arènes Spéciales:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:260
+msgid "Most weapons"
+msgstr "Beaucoup d'armes"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:4
+msgid "Demo"
+msgstr "Vidéo"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:28
+msgid "Record demos while playing"
+msgstr "Auto-enregistrement des Vidéos"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:32
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:28
+msgid "Filter:"
+msgstr "Recherche:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:33
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:29
+#: qcsrc/menu/xonotic/dialog_settings_input.c:41
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:24
+msgid "Clear"
+msgstr "Effacer"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:43
+msgid "Timedemo"
+msgstr "Test Performance"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:4
+msgid "Join"
+msgstr "Joindre"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:36
+msgid "SRVS^Empty"
+msgstr "Vide"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:40
+msgid "SRVS^Full"
+msgstr "Tout"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:44
+msgid "Pause"
+msgstr "Pause"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:56
+msgid "Address:"
+msgstr "Adresse:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:67
+msgid "Info..."
+msgstr "Info..."
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:72
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:317
+msgid "Join!"
+msgstr "Joindre !"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:5
+msgid "Server Information"
+msgstr "Information Serveur"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:115
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:116
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:183
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:189
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:199
+msgid "N/A"
+msgstr "N/A"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:158
+#, c-format
+msgid "%d/%d, %d free player slots"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:172
+#, c-format
+msgid "%d modified settings"
+msgstr "paramètres modifiés: %d"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:172
+msgid "Official settings"
+msgstr "Paramètres Officiels"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:197
+msgid "N/A (can't connect)"
+msgstr "N/A (ne peut pas se connecter)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:205
+msgid "not supported (can't connect)"
+msgstr "non supporté (ne peut pas se connecter)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:207
+msgid "not supported (won't encrypt)"
+msgstr "non supporté (pas de cryptage)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:211
+msgid "supported (will encrypt)"
+msgstr "supporté (cryptage)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:213
+msgid "supported (won't encrypt)"
+msgstr "supporté (pas de cryptage)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:217
+msgid "requested (will encrypt)"
+msgstr "demandé (cryptage)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:219
+msgid "requested (won't encrypt)"
+msgstr "demandé (pas de cryptage)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:223
+msgid "required (can't connect)"
+msgstr "nécessaire (ne peut pas se connecter)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:225
+msgid "required (will encrypt)"
+msgstr "nécessaire (cryptage)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:246
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:269
+msgid "Players:"
+msgstr "Joueurs:"
+
+#: 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:259
+msgid "Map:"
+msgstr "Carte:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:264
+msgid "Gameplay:"
+msgstr "Mode:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:274
+msgid "Bots:"
+msgstr "Robots:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:279
+msgid "Mod:"
+msgstr "Modification:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:284
+msgid "Version:"
+msgstr "Version:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:289
+msgid "Ping:"
+msgstr "Latence:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:295
+msgid "CA:"
+msgstr "CA:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:301
+msgid "Key:"
+msgstr "Clé:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:307
+msgid "Encryption:"
+msgstr "Cryptage:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:63
+msgid "Model:"
+msgstr "Personnage:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:88
+msgid "Field of view:"
+msgstr "Champ de vision:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:92
+msgid "View bobbing:"
+msgstr "Caméra marche:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:96
+msgid "Zoom factor:"
+msgstr "Facteur de Zoom:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:100
+msgid "Zoom speed:"
+msgstr "Vitesse de Zoom:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:103
+msgid "Weapon settings..."
+msgstr "Paramètres armes..."
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:110
+msgid "Crosshair:"
+msgstr "Viseur:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:111
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:139
+msgid "Per weapon"
+msgstr "Par arme"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:130
+msgid "Crosshair size:"
+msgstr "Taille viseur:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:134
+msgid "Crosshair alpha:"
+msgstr "Opacité viseur:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:138
+msgid "Crosshair color:"
+msgstr "Couleur viseur:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:140
+msgid "By health"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:143
+#, fuzzy
+msgid "Custom"
+msgstr "personnalisé"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:148
+msgid "Enable center dot"
+msgstr "Activer point central"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:151
+msgid "Size:"
+msgstr "Taille:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:158
+msgid "Hit test:"
+msgstr "Détection toucher:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:159
+msgid "HTST^None"
+msgstr "Aucun"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:160
+msgid "TrueAim"
+msgstr "TrueAim"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:161
+msgid "Enemies"
+msgstr "Ennemis"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:164
+msgid "Waypoints setup..."
+msgstr "Paramètres Waypoints..."
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:169
+msgid "Enter HUD editor"
+msgstr "Éditer l'interface"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:174
+msgid "Force models:"
+msgstr "Forcer personnages:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:175
+msgid "MDL^None"
+msgstr "Aucun"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:176
+msgid "MDL^Custom"
+msgstr "Personnalisé"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:177
+msgid "MDL^All"
+msgstr "Tout"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:180
+msgid "Disable gore effects"
+msgstr "Désactiver effets gore"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:182
+msgid "Gibs:"
+msgstr "Gibs:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:184
+msgid "GIBS^None"
+msgstr "Aucun"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:185
+msgid "GIBS^Few"
+msgstr "Quelques"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:186
+msgid "GIBS^Many"
+msgstr "Plusieurs"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:187
+msgid "GIBS^Lots"
+msgstr "Beaucoup"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:191
+msgid "Damage splash:"
+msgstr "Effet santé faible:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:195
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:178
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:194
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:30
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:41
+#: qcsrc/menu/xonotic/dialog_settings_video.c:105
+msgid "Apply immediately"
+msgstr "Appliquer maintenant"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:5
+msgid "Waypoints"
+msgstr "Waypoints"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:23
+msgid "Show base waypoints"
+msgstr "Montrer les Waypoints de drapeau"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:25
+msgid "Waypoint scale:"
+msgstr "Taille des Waypoints:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:29
+msgid "Waypoint alpha:"
+msgstr "Opacité Waypoints:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:34
+msgid "Show names:"
+msgstr "Montrer les noms:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:37
+msgid "Teammates"
+msgstr "Équipiers"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:38
+msgid "All players"
+msgstr "Tous les joueurs"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:6
+msgid "Weapon settings"
+msgstr "Paramètres d'armes"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:29
+msgid "Weapon priority list:"
+msgstr "Liste de priorité armes:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:34
+msgid "Up"
+msgstr "Haut"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:37
+msgid "Down"
+msgstr "Bas"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:41
+msgid "Use priority list for weapon cycling"
+msgstr "Utiliser la liste de priorité pour changer les armes"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:43
+msgid "Auto switch weapons on pickup"
+msgstr "Changer d'arme en prenant une arme meilleure"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:45
+msgid "Draw 1st person weapon model"
+msgstr "Afficher l'arme à la première personne"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:48
+msgid "Left align"
+msgstr "À gauche"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:50
+msgid "Right align"
+msgstr "À droite"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:53
+msgid "Flip view horizontally"
+msgstr "Vue Miroir"
+
+#: qcsrc/menu/xonotic/dialog_news.c:4
+msgid "News"
+msgstr "News"
+
+#: qcsrc/menu/xonotic/dialog_news.c:18
+msgid "http://www.xonotic.org/team/blog/"
+msgstr "http://www.xonotic.org/team/blog/"
+
+#: qcsrc/menu/xonotic/dialog_quit.c:4
+msgid "Quit"
+msgstr "Quitter"
+
+#: qcsrc/menu/xonotic/dialog_quit.c:17
+msgid "Are you sure you want to quit?"
+msgstr "Voulez-vous vraiment quitter ?"
+
+#: qcsrc/menu/xonotic/dialog_quit.c:20
+msgid "Yes"
+msgstr "Oui"
+
+#: qcsrc/menu/xonotic/dialog_quit.c:21
+msgid "No"
+msgstr "Non"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:4
+msgid "Settings"
+msgstr "Préférences"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:18
+#: qcsrc/menu/xonotic/dialog_settings_input.c:4
+msgid "Input"
+msgstr "Contrôles"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:19
+#: qcsrc/menu/xonotic/dialog_settings_video.c:4
+msgid "Video"
+msgstr "Vidéo"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:20
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:4
+msgid "Effects"
+msgstr "Graphiques"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:21
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:4
+msgid "Audio"
+msgstr "Audio"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:22
+#: qcsrc/menu/xonotic/dialog_settings_network.c:4
+msgid "Network"
+msgstr "Réseau"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:23
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:4
+msgid "Misc"
+msgstr "Autres"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:27
+msgid "Master:"
+msgstr "Général:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:33
+msgid "Music:"
+msgstr "Musique:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:40
+msgid "VOL^Ambient:"
+msgstr "Ambiance:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:48
+msgid "Info:"
+msgstr "Information:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:57
+msgid "Items:"
+msgstr "Objets:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:65
+msgid "Pain:"
+msgstr "Douleur:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:73
+msgid "Player:"
+msgstr "Joueur:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:81
+msgid "Shots:"
+msgstr "Tirs:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:88
+msgid "Voice:"
+msgstr "Voix:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:96
+msgid "Weapons:"
+msgstr "Armes:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:103
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:161
+msgid "Frequency:"
+msgstr "Fréquence:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:105
+msgid "8 kHz"
+msgstr "8 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:106
+msgid "11.025 kHz"
+msgstr "11.025 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:107
+msgid "16 kHz"
+msgstr "16 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:108
+msgid "22.05 kHz"
+msgstr "22.05 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:109
+msgid "24 kHz"
+msgstr "24 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:110
+msgid "32 kHz"
+msgstr "32 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:111
+msgid "44.1 kHz"
+msgstr "44.1 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:112
+msgid "48 kHz"
+msgstr "48 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:115
+msgid "Channels:"
+msgstr "Canaux:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:117
+msgid "Mono"
+msgstr "Mono"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:118
+msgid "Stereo"
+msgstr "Stéréo"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:119
+msgid "2.1"
+msgstr "2.1"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:120
+msgid "4"
+msgstr "4"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:121
+msgid "5"
+msgstr "5"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:122
+msgid "5.1"
+msgstr "5.1"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:123
+msgid "6.1"
+msgstr "6.1"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:124
+msgid "7.1"
+msgstr "7.1"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:128
+msgid "Swap Stereo"
+msgstr "Échanger les canaux Stéréo"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:132
+msgid "Headphone friendly mode"
+msgstr "Mode casque audio"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:136
+msgid "Spatial voices:"
+msgstr "Voix personnages:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:137
+msgid "VOCS^None"
+msgstr "Aucun"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:138
+msgid "VOCS^Taunts"
+msgstr "Voix"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:139
+msgid "VOCS^All"
+msgstr "Tout"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:142
+msgid "Taunt range:"
+msgstr "Distance voix:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:145
+msgid "RNG^Very short"
+msgstr "Très court"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:146
+msgid "RNG^Short"
+msgstr "Court"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:147
+msgid "RNG^Normal"
+msgstr "Normal"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:148
+msgid "RNG^Long"
+msgstr "Long"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:149
+msgid "RNG^Full"
+msgstr "Tout"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:156
+msgid "Automatic taunts"
+msgstr "Voix automatiques"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:165
+msgid "Time warning:"
+msgstr "Avertissement temps:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:167
+msgid "WRN^None"
+msgstr "Aucun"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:168
+msgid "1 minute"
+msgstr "1 minute"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:169
+msgid "5 minutes"
+msgstr "5 minutes"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:170
+msgid "WRN^Both"
+msgstr "Les deux"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:173
+msgid "Hit indicator"
+msgstr "Son tir réussi"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:175
+msgid "Menu sounds"
+msgstr "Sons du menu"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:38
+msgid "Quality preset:"
+msgstr "Qualité effets:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:41
+msgid "PRE^OMG!"
+msgstr "OMG!"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:42
+msgid "PRE^Low"
+msgstr "Bas"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:43
+msgid "PRE^Medium"
+msgstr "Moyen"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:44
+msgid "PRE^Normal"
+msgstr "Normal"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:45
+msgid "PRE^High"
+msgstr "Élevé"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:46
+msgid "PRE^Ultra"
+msgstr "Très Élevé"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:48
+msgid "PRE^Ultimate"
+msgstr "Ultime"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:52
+msgid "Geometry detail:"
+msgstr "Détail géométrie:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:54
+msgid "DET^Lowest"
+msgstr "Très Bas"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:55
+msgid "DET^Low"
+msgstr "Bas"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:56
+msgid "DET^Normal"
+msgstr "Normal"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:57
+msgid "DET^Good"
+msgstr "Bon"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:58
+msgid "DET^Best"
+msgstr "Élevé"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:59
+msgid "DET^Insane"
+msgstr "Extrême"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:62
+msgid "Antialiasing:"
+msgstr "Anticrénelage:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:64
+msgid "AA^Disabled"
+msgstr "Désactivé"
+
+#: 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 "Qualité textures:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:73
+msgid "RES^Leet"
+msgstr "Leet"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:74
+msgid "RES^Lowest"
+msgstr "Très Bas"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:75
+msgid "RES^Low"
+msgstr "Bas"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:76
+msgid "RES^Normal"
+msgstr "Normal"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:77
+msgid "RES^Good"
+msgstr "Bon"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:78
+msgid "RES^Best"
+msgstr "Élevé"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:91
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:94
+msgid "Avoid lossy texture compression"
+msgstr "Éviter la compression rapide"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:100
+msgid "Anisotropy:"
+msgstr "Filtrage Anisotrope:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:102
+msgid "ANISO^Disabled"
+msgstr "Désactivé"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:105
+msgid "8x"
+msgstr "8x"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:106
+msgid "16x"
+msgstr "16x"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:110
+msgid "Particle quality:"
+msgstr "Qualité particules:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:113
+msgid "Particle distance:"
+msgstr "Distance max. particules:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:117
+msgid "Decals"
+msgstr "Marques impacts"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:120
+msgid "Distance:"
+msgstr "Distance max.:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:126
+msgid "Time:"
+msgstr "Temps:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:132
+msgid "Use lightmaps"
+msgstr "Utiliser les lightmaps"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:133
+msgid "Deluxe mapping"
+msgstr "Textures Deluxe"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:135
+msgid "Gloss"
+msgstr "Brillance textures"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:138
+msgid "Offset mapping"
+msgstr "Textures relief"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:140
+msgid "Relief mapping"
+msgstr "Textures relief avancé"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:143
+msgid "Reflections:"
+msgstr "Réflexions:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:146
+msgid "Blurred"
+msgstr "Flou"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:147
+msgid "REFL^Good"
+msgstr "Bon"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:148
+msgid "Sharp"
+msgstr "Net"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:153
+msgid "Show surfaces"
+msgstr "Textures unies"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:155
+msgid "No dynamic lighting"
+msgstr "Pas de lumières dynamiques"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:157
+msgid "Flash blend approximation"
+msgstr "Lumières dynamiques rapides"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:159
+msgid "Realtime dynamic lighting"
+msgstr "Lumières dynamiques en temps réel"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:160
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:164
+msgid "Shadows"
+msgstr "Ombres"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:163
+msgid "Realtime world lighting"
+msgstr "Lumières carte en temps réel"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:168
+msgid "Use normal maps"
+msgstr "Lumières Deluxe"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:170
+msgid "Soft shadows"
+msgstr "Ombres avancées"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:173
+msgid "Coronas"
+msgstr "Brillance Lumière"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:174
+msgid "Use Occlusion Queries"
+msgstr "Utiliser l'Occlusion du rendu"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:176
+msgid "Bloom"
+msgstr "Effets d'éblouissement"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:178
+msgid "High Dynamic Range (HDR)"
+msgstr "High Dynamic Range (HDR)"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:182
+msgid "Motion blur:"
+msgstr "Flou de vitesse:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:188
+msgid "Damage blur:"
+msgstr "Flou de dégâts:"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:26
+msgid "Key bindings:"
+msgstr "Contrôles:"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:31
+msgid "Change key..."
+msgstr "Changer touche..."
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:35
+msgid "Edit..."
+msgstr "Éditer..."
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:46
+msgid "Sensitivity:"
+msgstr "Sensibilité:"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:49
+msgid "UI mouse speed:"
+msgstr "Vitesse souris menus:"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:52
+msgid "Mouse filter"
+msgstr "Filtre Souris"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:54
+msgid "Invert mouse"
+msgstr "Inverser souris (axe Y)"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:57
+#: qcsrc/menu/xonotic/dialog_settings_input.c:59
+msgid "Use joystick input"
+msgstr "Utiliser une manette"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:62
+#: qcsrc/menu/xonotic/dialog_settings_input.c:64
+msgid "Turn off OS mouse acceleration"
+msgstr "Désactiver l'accélération souris de l'OS"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:66
+msgid "\"enter console\" also closes"
+msgstr "\"ouvrir la console\" ferme aussi la console"
+
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:5
+msgid "User defined key bind"
+msgstr "Touche d'exécution:"
+
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:42
+msgid "Command when pressed:"
+msgstr "Commande quand appuyée:"
+
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:45
+msgid "Command when released:"
+msgstr "Commande quand relâchée:"
+
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:48
+msgid "Save"
+msgstr "Sauvegarder"
+
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:51
+msgid "Cancel"
+msgstr "Annuler"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:26
+msgid "Menu skins:"
+msgstr "Apparences menu:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:47
+msgid "Show current time"
+msgstr "Montrer l'heure"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:49
+msgid "Show current date"
+msgstr "Montrer la date"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:51
+msgid "Show frames per second"
+msgstr "Montrer les Images Par Seconde"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:53
+msgid "Speedometer"
+msgstr "Speedomètre"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:56
+msgid "qu/s (hidden)"
+msgstr "qu/s (caché)"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:58
+msgid "qu/s"
+msgstr "qu/s"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:60
+msgid "m/s"
+msgstr "m/s"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:64
+msgid "km/h"
+msgstr "km/h"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:66
+msgid "mph"
+msgstr "mph"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:68
+msgid "knots"
+msgstr "noeuds"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:71
+msgid "Show accelerometer"
+msgstr "Montrer l'accéléromètre"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:74
+msgid "Accelerometer scale:"
+msgstr "Taille accéléromètre:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:80
+msgid "Minimize input latency"
+msgstr "Minimiser la latence des contrôles"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:5
+msgid "Advanced settings"
+msgstr "Paramètres avancés"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:23
+msgid "Cvar filter:"
+msgstr "Recherche de commandes:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:34
+msgid "Setting:"
+msgstr "Paramètre:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:42
+msgid "Value:"
+msgstr "Valeur:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:56
+msgid "Description:"
+msgstr "Description:"
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:26
+msgid "Client-side movement prediction"
+msgstr "Prédiction des mouvements joueur"
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:30
+msgid "Show netgraph"
+msgstr "Montrer le netgraphe"
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:33
+msgid "Network speed:"
+msgstr "Vitesse réseau:"
+
+#: 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 rapide"
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:39
+msgid "Broadband"
+msgstr "Câble/Fibre optique"
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:42
+msgid "Input packets/s:"
+msgstr "Paquets entrants/seconde:"
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:46
+msgid "HTTP downloads:"
+msgstr "Téléchargements:"
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:49
+msgid "Downloads:"
+msgstr "Téléchargements simultanés:"
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:53
+msgid "Speed (kB/s):"
+msgstr "Vitesse (Ko/seconde):"
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:57
+msgid "Client UDP port:"
+msgstr "Port UDP client:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:26
+msgid "Resolution:"
+msgstr "Résolution:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:29
+msgid "Font/UI size:"
+msgstr "Taille typo:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:31
+msgid "SZ^Unreadable"
+msgstr "Illisible"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:32
+msgid "SZ^Tiny"
+msgstr "Minuscule"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:33
+msgid "SZ^Little"
+msgstr "Très Petit"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:34
+msgid "SZ^Small"
+msgstr "Petit"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:35
+msgid "SZ^Medium"
+msgstr "Moyen"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:36
+msgid "SZ^Large"
+msgstr "Grand"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:37
+msgid "SZ^Huge"
+msgstr "Très Grand"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:38
+msgid "SZ^Gigantic"
+msgstr "Géant"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:39
+msgid "SZ^Colossal"
+msgstr "Gigantesque"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:42
+msgid "Color depth:"
+msgstr "Profondeur de couleurs:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:45
+msgid "Full screen"
+msgstr "Plein écran"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:46
+msgid "Vertical Synchronization"
+msgstr "Synchronisation verticale"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:49
+msgid "Use OpenGL 2.0 shaders (GLSL)"
+msgstr "Utiliser shader OpenGL 2.0 (GLSL)"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:52
+msgid "Use GLSL to handle color control"
+msgstr "Utiliser GLSL pour gérer les couleurs"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:56
+#, fuzzy
+msgid "Vertex Buffer Objects (VBOs)"
+msgstr "Objets en tampon mémoire (VBOs)"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:59
+#, fuzzy
+msgid "VBO^Off"
+msgstr "Désactivé"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:60
+msgid "Vertices, some Tris (compatible)"
+msgstr "Points, quelques Triangles (compatible)"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:63
+msgid "Vertices"
+msgstr "Points"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:64
+msgid "Vertices and Triangles"
+msgstr "Points et Triangles"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:67
+#, fuzzy
+msgid "Depth first:"
+msgstr "Fixeur profondeur:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:69
+#, fuzzy
+msgid "DF^Disabled"
+msgstr "Désactivé"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:70
+#, fuzzy
+msgid "DF^World"
+msgstr "Carte"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:71
+#, fuzzy
+msgid "DF^All"
+msgstr "Tout"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:75
+msgid "Disable multithreaded OpenGL"
+msgstr "Désactiver OpenGL multi-coeurs"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:77
+msgid "Wait for GPU to finish each frame"
+msgstr "Attendre le GPU pour finir chaque trame"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:80
+msgid "Brightness:"
+msgstr "Luminosité:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:83
+msgid "Contrast:"
+msgstr "Contraste:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:86
+msgid "Gamma:"
+msgstr "Gamma:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:89
+msgid "Contrast boost:"
+msgstr "Amélioration contraste:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:92
+msgid "Saturation:"
+msgstr "Saturation:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:98
+msgid "LIT^Ambient:"
+msgstr "Ambiance:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:101
+msgid "Intensity:"
+msgstr "Intensité:"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:4
+msgid "Singleplayer"
+msgstr "Monojoueur"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:59
+msgid "Instant action! (random map with bots)"
+msgstr "Instant action! (map aléatoire avec bots)"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:80
+msgid "Start Singleplayer!"
+msgstr "Démarrer !"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer_winner.c:4
+msgid "Winner"
+msgstr "Gagné"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:5
+msgid "Team Selection"
+msgstr "Sélection d'équipe"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:41
+msgid "join 'best' team (auto-select)"
+msgstr "auto-sélection équipe (recommandé)"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:45
+msgid "red"
+msgstr "rouge"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:46
+msgid "blue"
+msgstr "bleu"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:47
+msgid "yellow"
+msgstr "jaune"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:48
+msgid "pink"
+msgstr "rose"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:51
+msgid "spectate"
+msgstr "mode spectateur"
+
+#: qcsrc/menu/xonotic/mainwindow.c:35 qcsrc/menu/xonotic/mainwindow.c:38
+msgid "Do not press this button again!"
+msgstr "N'appuyez plus sur ce bouton !"
+
+#: qcsrc/menu/xonotic/maplist.c:278
+msgid ""
+"Huh? Can't play this (m is NULL). Refiltering so this won't happen again.\n"
+msgstr ""
+"Euh? Ne peut pas être joué. Re-filtrage pour éviter des nouveaux problèmes.\n"
+
+#: qcsrc/menu/xonotic/maplist.c:286
+#, c-format
+msgid "%s's Xonotic Server"
+msgstr "%s's Xonotic Server"
+
+#: qcsrc/menu/xonotic/maplist.c:291
+msgid ""
+"Huh? Can't play this (invalid game type). Refiltering so this won't happen "
+"again.\n"
+msgstr ""
+"Euh? Ne peut pas être joué. Mode de jeu invalide. Re-filtrage pour éviter "
+"des nouveaux problèmes.\n"
+
+#: qcsrc/menu/xonotic/playermodel.c:174
+msgid "<no model found>"
+msgstr "<modèle non trouvé>"
+
+#: qcsrc/menu/xonotic/serverlist.c:185
+msgid "Remove"
+msgstr "Supprimer"
+
+#: qcsrc/menu/xonotic/serverlist.c:187
+msgid "Bookmark"
+msgstr "Marque-page"
+
+#: qcsrc/menu/xonotic/serverlist.c:523
+msgid "Ping"
+msgstr "Latence"
+
+#: qcsrc/menu/xonotic/serverlist.c:524
+msgid "Host name"
+msgstr "Nom d'Hôte"
+
+#: qcsrc/menu/xonotic/serverlist.c:525
+msgid "Map"
+msgstr "Carte"
+
+#: qcsrc/menu/xonotic/serverlist.c:526
+msgid "Type"
+msgstr "Mode"
+
+#: qcsrc/menu/xonotic/serverlist.c:527
+msgid "Players"
+msgstr "Joueurs"
+
+#: qcsrc/menu/xonotic/skinlist.c:105
+msgid "<TITLE>"
+msgstr "<TITRE>"
+
+#: qcsrc/menu/xonotic/skinlist.c:106
+msgid "<AUTHOR>"
+msgstr "<AUTEUR>"
+
+#: qcsrc/menu/xonotic/skinlist.c:163
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: qcsrc/menu/xonotic/slider_decibels.c:50
+msgid "VOL^OFF"
+msgstr "OFF"
+
+#: qcsrc/menu/xonotic/slider_decibels.c:52
+msgid "VOL^MAX"
+msgstr "MAX"
+
+#: qcsrc/menu/xonotic/slider_decibels.c:53
+#, c-format
+msgid "%s dB"
+msgstr "%s dB"
+
+#: qcsrc/menu/xonotic/slider_resolution.c:65
+#, c-format
+msgid "%dx%d"
+msgstr "%dx%d"
+
+#: qcsrc/menu/xonotic/util.qc:270
+#, c-format
+msgid "Received HTTP request data for an invalid id %d.\n"
+msgstr "A reçu la demande HTTP d'ID invalide %d.\n"
+
+#: qcsrc/menu/xonotic/util.qc:285
+#, c-format
+msgid "error receiving update notification: status is %d\n"
+msgstr ""
+"erreur pour recevoir la notification de mise à jour: le statut est %d\n"
+
+#: qcsrc/menu/xonotic/util.qc:290
+msgid "error: received HTML instead of an update notification\n"
+msgstr ""
+"erreur: a reçu un fichier HTML et non une notification de mise à jour\n"
+
+#: qcsrc/menu/xonotic/util.qc:295
+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."
+"J.\n"
+
+#: qcsrc/menu/xonotic/util.qc:316
+#, c-format
+msgid ""
+"Update can be downloaded at:\n"
+"%s\n"
+msgstr ""
+"La mise à jour peut être téléchargée ici:\n"
+"%s\n"
+
+#: qcsrc/menu/xonotic/util.qc:337
+msgid "Autogenerating mapinfo for newly added maps..."
+msgstr "Génération des mapinfo pour les nouvelles cartes ajoutées..."
+
+#: qcsrc/menu/xonotic/util.qc:367
+#, c-format
+msgid "^1%s TEST BUILD"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:432
+#, c-format
+msgid "Update to %s now!"
+msgstr "Mettez à jour vers %s maintenant !"
+
+#: qcsrc/menu/xonotic/util.qc:509
+msgid ""
+"^1ERROR: Texture compression is required but not supported.\n"
+"^1Expect visual problems.\n"
+msgstr ""
+"^1ERROR: La texture de compression est nécessaire mais non supportée.\n"
+"^1Attendez vous à voir des problèmes de rendu.\n"
+
+#: qcsrc/menu/xonotic/util.qc:531
+msgid "Arena"
+msgstr "Arène Duel"
+
+#: qcsrc/menu/xonotic/util.qc:532
+msgid "Assault"
+msgstr "Assaut"
+
+#: qcsrc/menu/xonotic/util.qc:533
+msgid "Capture The Flag"
+msgstr "Capture Du Drapeau"
+
+#: qcsrc/menu/xonotic/util.qc:534
+msgid "Clan Arena"
+msgstr "Arène Équipes"
+
+#: qcsrc/menu/xonotic/util.qc:535
+msgid "Deathmatch"
+msgstr "Match à Mort"
+
+#: qcsrc/menu/xonotic/util.qc:536
+msgid "Domination"
+msgstr "Domination"
+
+#: qcsrc/menu/xonotic/util.qc:537
+msgid "Freeze Tag"
+msgstr "Freeze Tag"
+
+#: qcsrc/menu/xonotic/util.qc:538
+msgid "Keepaway"
+msgstr "Cache-Cache Du Drapeau"
+
+#: qcsrc/menu/xonotic/util.qc:539
+msgid "Key Hunt"
+msgstr "Chasse aux Clés"
+
+#: qcsrc/menu/xonotic/util.qc:540
+msgid "Last Man Standing"
+msgstr "Dernier Survivant"
+
+#: qcsrc/menu/xonotic/util.qc:541
+msgid "Nexball"
+msgstr "Nexball"
+
+#: qcsrc/menu/xonotic/util.qc:542
+msgid "Onslaught"
+msgstr "Onslaught"
+
+#: qcsrc/menu/xonotic/util.qc:543
+msgid "Race"
+msgstr "Course"
+
+#: qcsrc/menu/xonotic/util.qc:544
+msgid "Race CTS"
+msgstr "Course CTS"
+
+#: qcsrc/menu/xonotic/util.qc:545
+msgid "Runematch"
+msgstr "Runematch"
+
+#: qcsrc/menu/xonotic/util.qc:546
+msgid "Team Deathmatch"
+msgstr "Match à Mort Équipe"
+
+#: qcsrc/menu/xonotic/util.qc:565
+#, c-format
+msgid "@!#%'n Tuba Throwing"
+msgstr "Lancer de @!#%'n Tuba"
+
+#: qcsrc/menu/xonotic/util.qc:583
+msgid "Background:"
+msgstr "Arrière-plan:"
+
+#: qcsrc/menu/xonotic/util.qc:585 qcsrc/menu/xonotic/util.qc:601
+#: qcsrc/menu/xonotic/util.qc:610 qcsrc/menu/xonotic/util.qc:618
+#: qcsrc/menu/xonotic/util.qc:630
+msgid "Default"
+msgstr "Par défaut"
+
+#: qcsrc/menu/xonotic/util.qc:596
+msgid "Use default"
+msgstr "Par défaut"
+
+#: qcsrc/menu/xonotic/util.qc:616
+msgid "Team Color:"
+msgstr "Couleur d'équipe:"
+
+#: qcsrc/menu/xonotic/util.qh:49
+msgid "Enable panel"
+msgstr "Activer ce panneau"
+
+#: qcsrc/server/w_crylink.qc:2
+msgid "Crylink"
+msgstr "Crylink"
+
+#: qcsrc/server/w_crylink.qc:664
+#, c-format
+msgid "%s succeeded at self-destructing themself with the Crylink"
+msgstr "%s a réussi à se suicider avec le 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"
+
+#: qcsrc/server/w_crylink.qc:671
+#, c-format
+msgid "%s was too close to %s's Crylink"
+msgstr "%s a été trop près du Crylink de %s"
+
+#: qcsrc/server/w_crylink.qc:673
+#, c-format
+msgid "%s took a close look at %s's Crylink"
+msgstr "%s a voulu voir se qui se trouvait dans le Crylink de %s"
+
+#: qcsrc/server/w_electro.qc:2
+msgid "Electro"
+msgstr "Electro"
+
+#: qcsrc/server/w_electro.qc:571
+#, c-format
+msgid "%s could not remember where they put plasma"
+msgstr "%s ne se souvenait pas où il a tiré du plasma"
+
+#: qcsrc/server/w_electro.qc:573
+#, c-format
+msgid "%s played with plasma"
+msgstr "%s a joué avec du plasma"
+
+#: qcsrc/server/w_electro.qc:580
+#, c-format
+msgid "%s just noticed %s's blue ball"
+msgstr "%s vient de remarquer la boule plasma de %s"
+
+#: qcsrc/server/w_electro.qc:582
+#, c-format
+msgid "%s got in touch with %s's blue ball"
+msgstr "%s s'est fait toucher par la boule plasma de %s"
+
+#: qcsrc/server/w_electro.qc:587
+#, c-format
+msgid "%s felt the electrifying air of %s's combo"
+msgstr "%s se sent électrisé par le combo de %s"
+
+#: qcsrc/server/w_electro.qc:589
+#, c-format
+msgid "%s got too close to %s's blue beam"
+msgstr "%s a été trop près du rayon plasma de %s"
+
+#: qcsrc/server/w_electro.qc:591
+#, c-format
+msgid "%s was blasted by %s's blue beam"
+msgstr "%s a été désintégré à cause du rayon plasma de %s"
+
+#: qcsrc/server/w_fireball.qc:2
+#, fuzzy
+msgid "Fireball"
+msgstr "Fireball"
+
+#: qcsrc/server/w_fireball.qc:417
+#, c-format
+msgid "%s forgot about some firemine"
+msgstr "%s n'a pas étudié la combustion des boules de feu"
+
+#: qcsrc/server/w_fireball.qc:419 qcsrc/server/w_hlac.qc:240
+#, c-format
+msgid "%s should have used a smaller gun"
+msgstr "%s aurait dû utiliser une arme plus petite"
+
+#: qcsrc/server/w_fireball.qc:426
+#, c-format
+msgid "%s tried to catch %s's firemine"
+msgstr "%s a pensé que la boule de feu de %s était un ballon de football"
+
+#: qcsrc/server/w_fireball.qc:428
+#, c-format
+msgid "%s fatefully ignored %s's firemine"
+msgstr "%s a ignoré la boule de feu de %s"
+
+#: qcsrc/server/w_fireball.qc:435
+#, c-format
+msgid "%s could not hide from %s's fireball"
+msgstr "%s n'a pas réussi à se cacher de la boule de feu de %s"
+
+#: qcsrc/server/w_fireball.qc:437
+#, c-format
+msgid "%s saw the pretty lights of %s's fireball"
+msgstr "%s a vu les belles lumières de la boule de feu de %s"
+
+#: qcsrc/server/w_fireball.qc:440
+#, c-format
+msgid "%s got too close to %s's fireball"
+msgstr "%s s'est trop approché de la boule de feu de %s"
+
+#: qcsrc/server/w_fireball.qc:442
+#, c-format
+msgid "%s tasted %s's fireball"
+msgstr "%s a goûté la boule de feu de %s"
+
+#: qcsrc/server/w_grenadelauncher.qc:2
+msgid "Mortar"
+msgstr "Mortier"
+
+#: qcsrc/server/w_grenadelauncher.qc:378
+#, c-format
+msgid "%s tried out his own grenade"
+msgstr "%s a mangé sa propre grenade"
+
+#: qcsrc/server/w_grenadelauncher.qc:380
+#, c-format
+msgid "%s detonated"
+msgstr "%s a fait boum"
+
+#: qcsrc/server/w_grenadelauncher.qc:386
+#, c-format
+msgid "%s didn't see %s's grenade"
+msgstr "%s n'a pas vu la grenade de %s"
+
+#: qcsrc/server/w_grenadelauncher.qc:388
+#, c-format
+msgid "%s almost dodged %s's grenade"
+msgstr "%s a presque réussi à esquiver la grenade de %s"
+
+#: qcsrc/server/w_grenadelauncher.qc:390
+#, c-format
+msgid "%s ate %s's grenade"
+msgstr "%s a mangé la grenade de %s"
+
+#: qcsrc/server/w_hagar.qc:2
+msgid "Hagar"
+msgstr "Hagar"
+
+#: qcsrc/server/w_hagar.qc:209 qcsrc/server/w_seeker.qc:655
+#, c-format
+msgid "%s played with tiny rockets"
+msgstr "%s a joué avec des petits missiles"
+
+#: qcsrc/server/w_hagar.qc:213
+#, c-format
+msgid "%s hoped %s's missiles wouldn't bounce"
+msgstr "%s a pensé que les petits missiles de %s ne rebondissaient pas"
+
+#: qcsrc/server/w_hagar.qc:215 qcsrc/server/w_seeker.qc:661
+#, c-format
+msgid "%s was pummeled by %s"
+msgstr "%s a trop mangé de mini-missiles de la part de %s"
+
+#: qcsrc/server/w_hlac.qc:2
+msgid "Heavy Laser Assault Cannon"
+msgstr "Canon Laser Lourd d'Assaut "
+
+#: qcsrc/server/w_hlac.qc:242
+#, c-format
+msgid "%s was cut down by %s"
+msgstr "%s s'est fait couper par %s"
+
+#: qcsrc/server/w_hook.qc:2
+#, fuzzy
+msgid "Grappling Hook"
+msgstr "Grappin"
+
+#: qcsrc/server/w_hook.qc:266 qcsrc/server/w_minstanex.qc:290
+#: qcsrc/server/w_nex.qc:267 qcsrc/server/w_porto.qc:296
+#: qcsrc/server/w_shotgun.qc:203 qcsrc/server/w_uzi.qc:317
+#, c-format
+msgid "%s did the impossible"
+msgstr "%s a fait l'impossible"
+
+#: qcsrc/server/w_hook.qc:268
+#, c-format
+msgid "%s has run into %s's gravity bomb"
+msgstr "%s a été emprisonné par la bombe à gravité de %s"
+
+#: qcsrc/server/w_laser.qc:2
+msgid "Laser"
+msgstr "Laser"
+
+#: qcsrc/server/w_laser.qc:305
+#, c-format
+msgid "%s lasered themself to hell"
+msgstr "%s s'est suicidé au laser"
+
+#: qcsrc/server/w_laser.qc:309
+#, c-format
+msgid "%s was cut in half by %s's gauntlet"
+msgstr "%s s'est fait couper en deux par le laser de %s"
+
+#: qcsrc/server/w_laser.qc:311
+#, c-format
+msgid "%s was lasered to death by %s"
+msgstr "%s a été désintégré par le laser de %s"
+
+#: qcsrc/server/w_minelayer.qc:2
+#, fuzzy
+msgid "Mine Layer"
+msgstr "Lance-Mines"
+
+#: qcsrc/server/w_minelayer.qc:495 qcsrc/server/w_rocketlauncher.qc:500
+#, c-format
+msgid "%s exploded"
+msgstr "%s a explosé"
+
+#: qcsrc/server/w_minelayer.qc:499
+#, c-format
+msgid "%s got too close to %s's mine"
+msgstr "%s s'est trop approché de la mine de %s"
+
+#: qcsrc/server/w_minelayer.qc:501
+#, c-format
+msgid "%s almost dodged %s's mine"
+msgstr "%s a presque esquivé la mine de %s"
+
+#: qcsrc/server/w_minelayer.qc:503
+#, c-format
+msgid "%s stepped on %s's mine"
+msgstr "%s a marché sur la mine de %s"
+
+#: qcsrc/server/w_minstanex.qc:2
+#, fuzzy
+msgid "MinstaNex"
+msgstr "MinstaNex"
+
+#: qcsrc/server/w_minstanex.qc:292 qcsrc/server/w_nex.qc:269
+#, c-format
+msgid "%s has been vaporized by %s"
+msgstr "%s s'est fait vaporiser par %s"
+
+#: qcsrc/server/w_nex.qc:2
+#, fuzzy
+msgid "Nex"
+msgstr "Nex"
+
+#: qcsrc/server/w_porto.qc:2
+msgid "Port-O-Launch"
+msgstr "Lance-O-Port"
+
+#: qcsrc/server/w_porto.qc:298
+#, c-format
+msgid "%s felt %s doing the impossible to him"
+msgstr "%s a eu tort de prendre le portail de %s"
+
+#: qcsrc/server/w_rocketlauncher.qc:2
+msgid "Rocket Launcher"
+msgstr "Lance-Roquettes"
+
+#: qcsrc/server/w_rocketlauncher.qc:504
+#, c-format
+msgid "%s got too close to %s's rocket"
+msgstr "%s s'est trop approché de la roquette de %s"
+
+#: qcsrc/server/w_rocketlauncher.qc:506
+#, c-format
+msgid "%s almost dodged %s's rocket"
+msgstr "%s a presque esquivé la roquette de %s"
+
+#: qcsrc/server/w_rocketlauncher.qc:508
+#, c-format
+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
+#, c-format
+msgid "%s was tagged by %s"
+msgstr "%s s'est fait tagguer par %s"
+
+#: qcsrc/server/w_shotgun.qc:2
+#, fuzzy
+msgid "Shotgun"
+msgstr "Fusil"
+
+#: qcsrc/server/w_shotgun.qc:207
+#, c-format
+msgid "%2$s ^7slapped %1$s ^7around a bit with a large ^2shotgun"
+msgstr "%2$s ^7a baffé %1$s ^7avec un ^2fusil"
+
+#: qcsrc/server/w_shotgun.qc:209
+#, c-format
+msgid "%s was gunned by %s"
+msgstr "%s s'est fait fusiller par %s"
+
+#: qcsrc/server/w_sniperrifle.qc:2
+msgid "Sniper Rifle"
+msgstr "Fusil Sniper"
+
+#: qcsrc/server/w_sniperrifle.qc:229
+#, c-format
+msgid "%s shot themself automatically"
+msgstr "%s s'est suicidé au sniper"
+
+#: qcsrc/server/w_sniperrifle.qc:231
+#, c-format
+msgid "%s sniped themself somehow"
+msgstr "%s a oublié le cran de sûreté en chargeant"
+
+#: qcsrc/server/w_sniperrifle.qc:238
+#, c-format
+msgid "%s failed to hide from %s's bullet hail"
+msgstr "%s n'a pas pu se cacher de la nuée de balles de %s"
+
+#: qcsrc/server/w_sniperrifle.qc:240
+#, c-format
+msgid "%s died in %s's bullet hail"
+msgstr "%s est mort de la nuée de balles de %s"
+
+#: qcsrc/server/w_sniperrifle.qc:247
+#, c-format
+msgid "%s failed to hide from %s's rifle"
+msgstr "%s n'a pas réussi à se cacher du sniper de %s"
+
+#: qcsrc/server/w_sniperrifle.qc:252
+#, c-format
+msgid "%s got hit in the head by %s"
+msgstr "%s s'est fait décapiter au sniper par %s"
+
+#: qcsrc/server/w_sniperrifle.qc:254 qcsrc/server/w_uzi.qc:321
+#, c-format
+msgid "%s was sniped by %s"
+msgstr "%s s'est fait descendre au sniper par %s"
+
+#: qcsrc/server/w_tuba.qc:2
+#, fuzzy, c-format
+msgid "@!#%'n Tuba"
+msgstr "@!#%'n Tuba"
+
+#: qcsrc/server/w_tuba.qc:263
+#, c-format
+msgid "%s hurt his own ears with the @!#%%'n Tuba"
+msgstr "%s s'est fait casser les tympans par son propre tuba"
+
+#: qcsrc/server/w_tuba.qc:267
+#, c-format
+msgid "%s died of %s's great playing on the @!#%%'n Tuba"
+msgstr "%s n'a pas aimé la musique de %s et en est mort"
+
+#: qcsrc/server/w_uzi.qc:2
+msgid "Machine Gun"
+msgstr "Mitraillette"
+
+#: qcsrc/server/w_uzi.qc:323
+#, c-format
+msgid "%s was riddled full of holes by %s"
+msgstr "%s s'est fait trouer par %s"
+
+#~ msgid "%s ran into %s's flac"
+#~ msgstr "%s n'a pas eu peur des missiles de %s"
+
+#~ msgid "Waypoint settings:"
+#~ msgstr "Paramètres Waypoint (flèches 3D sur la carte):"
+
+#~ msgid "%d/%d"
+#~ msgstr "%d/%d"
--- /dev/null
+# 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.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-04-30 10:07+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: qcsrc/menu/gamecommand.qc:47
+#, c-format
+msgid "error: status is %d\n"
+msgstr "Hiba: állapot %d\n"
+
+#: qcsrc/menu/gamecommand.qc:65
+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
+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
+msgid " directmenu ITEM - select a menu item as main item\n"
+msgstr " directmenu TÁRGY - kiválaszt egy menü pontot, fő tárgynak\n"
+
+#: qcsrc/menu/gamecommand.qc:193
+msgid "error creating curl handle\n"
+msgstr "Curl kezelő hibát okozott\n"
+
+#: qcsrc/menu/gamecommand.qc:239
+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 "
+"segitséget.\n"
+
+#: qcsrc/menu/item/gecko.c:49
+msgid "Browser not initialized!"
+msgstr "A böngésző nem indult el!"
+
+#: qcsrc/menu/item/label.c:63
+#, c-format
+msgid "NOTE: label text %s too wide for label, condensed by factor %f\n"
+msgstr "MEGJEGYZÉS: a %s szöveg túl széles címkének, csökkentsd %f-el\n"
+
+#: qcsrc/menu/item/listbox.c:300
+#, c-format
+msgid "Item %d"
+msgstr "Tárgy %d"
+
+#: qcsrc/menu/item/slider.c:64
+#, c-format
+msgid "%d (%s)"
+msgstr "%d (%s)"
+
+#: qcsrc/menu/item/textslider.c:29 qcsrc/menu/item/textslider.c:31
+msgid "custom"
+msgstr "egyéni"
+
+#: qcsrc/menu/menu.qc:29
+#, fuzzy, c-format
+msgid "^4MQC Build information: ^1%s\n"
+msgstr "^4MQC Épitési információ: %s\n"
+
+#: qcsrc/menu/xonotic/campaign.c:284
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:66
+msgid "???"
+msgstr "???"
+
+#: qcsrc/menu/xonotic/campaign.c:285
+#, c-format
+msgid "Level %d: %s"
+msgstr "Szint %d: %s"
+
+#: qcsrc/menu/xonotic/cvarlist.c:85
+msgid "will be saved to config.cfg"
+msgstr "A config.cfg-ba lesz mentve"
+
+#: qcsrc/menu/xonotic/cvarlist.c:87
+msgid "will not be saved"
+msgstr "Nem lesz elmentve"
+
+#: qcsrc/menu/xonotic/cvarlist.c:89
+msgid "private"
+msgstr "magán"
+
+#: qcsrc/menu/xonotic/cvarlist.c:91
+msgid "engine setting"
+msgstr "motor beállítás"
+
+#: qcsrc/menu/xonotic/cvarlist.c:93
+msgid "read only"
+msgstr "csak olvasható"
+
+#: qcsrc/menu/xonotic/dialog_credits.c:5
+msgid "Credits"
+msgstr "Köszönetek"
+
+#: qcsrc/menu/xonotic/dialog_credits.c:21
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:82
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:269
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:41
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:55
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:61
+#: qcsrc/menu/xonotic/dialog_singleplayer_winner.c:21
+msgid "OK"
+msgstr "Rendben"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:4
+msgid "Welcome"
+msgstr "Üdvözlet"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:33
+msgid ""
+"Welcome to Xonotic, please select your language preference and enter your "
+"player name to get started. You can change these options later through the "
+"menu system."
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:38
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:35
+msgid "Text language:"
+msgstr "Szöveg nyelv:"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:47
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:40
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:39
+msgid "Name:"
+msgstr "Név:"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:69
+msgid "Save settings"
+msgstr "A beállítások mentése"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:4
+msgid "Ammo Panel"
+msgstr "Lőszer Panel"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:22
+msgid "Ammunition display:"
+msgstr "Lőszer kijelző:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:25
+msgid "Show only current ammo type"
+msgstr "Csak az aktuális lőszer típus megjelenítése"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:29
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:28
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:40
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:28
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:40
+msgid "Left"
+msgstr "Bal"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:30
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:30
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:41
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:30
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:41
+msgid "Right"
+msgstr "Jobb"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:4
+msgid "Chat Panel"
+msgstr "Csevely Panel"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:22
+msgid "Chat entries:"
+msgstr "Csevely bejegyzések:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:25
+msgid "Chat size:"
+msgstr "Csevely méret:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:29
+msgid "Chat lifetime:"
+msgstr "Csevely élettartam:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:33
+msgid "Chat beep sound"
+msgstr "Csevely sípszó"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_engineinfo.c:4
+msgid "Engine Info Panel"
+msgstr "Motor Információs panel"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_engineinfo.c:22
+msgid "Engine info:"
+msgstr "Motor Információ:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_engineinfo.c:25
+msgid "Use an averaging algorithm for fps"
+msgstr "Átlagoló algoritmus használata az fps-hez"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:4
+msgid "Health/Armor Panel"
+msgstr "Életerő/Páncél Panel"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:22
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:22
+msgid "Enable status bar"
+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:"
+
+#: 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 "Befelé"
+
+#: 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 "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:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:45
+msgid "Flip health and armor positions"
+msgstr "Életerő és páncél poziciójának cseréje"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_infomessages.c:4
+msgid "Info Messages Panel"
+msgstr "Info üzenetek lapja"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_infomessages.c:22
+msgid "Info messages:"
+msgstr "Info üzenetek:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_infomessages.c:25
+msgid "Flip align"
+msgstr "Flip összehangolása"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_modicons.c:4
+msgid "Mod Icons Panel"
+msgstr "Mod ikonok panelje"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:4
+msgid "Notification Panel"
+msgstr "Értesítő Panel"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:22
+msgid "Notifications:"
+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 kiirja"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:28
+msgid "Flip notify order"
+msgstr "Értesítés rend megfordítás"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:31
+msgid "Entry lifetime:"
+msgstr "Bejegyzés élettartam:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:35
+msgid "Entry fadetime:"
+msgstr "Bejegyzés halványulási idő:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:4
+msgid "Powerups Panel"
+msgstr "Powerups 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"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:4
+msgid "Pressed Keys Panel"
+msgstr "Lenyomott gombok lapja"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:21
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:21
+msgid "Panel disabled"
+msgstr "Panel kikapcsolva"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:22
+msgid "Panel enabled when spectating"
+msgstr "Panel engedélyezett, ha csak néző vagy"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:23
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:23
+msgid "Panel always enabled"
+msgstr "Panel mindig látható"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:30
+msgid "Forced aspect:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_racetimer.c:4
+msgid "Race Timer Panel"
+msgstr "Időmérő Panel"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:4
+msgid "Radar Panel"
+msgstr "Radar Panel"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:22
+msgid "Panel enabled in teamgames"
+msgstr "Panel engedélyezve a csapatjátékokban"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:29
+msgid "Radar:"
+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:608
+msgid "Alpha:"
+msgstr "Alpha:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:36
+msgid "Rotation:"
+msgstr "Forgatás:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:38
+msgid "Forward"
+msgstr "Előre"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:39
+msgid "West"
+msgstr "Nyugat"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:40
+msgid "South"
+msgstr "Dél"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:41
+msgid "East"
+msgstr "Kelet"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:42
+msgid "North"
+msgstr "Észak"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:46
+msgid "Scale:"
+msgstr "Arány:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:50
+msgid "Zoom mode:"
+msgstr "Nagyítási mód:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:52
+msgid "Zoomed in"
+msgstr "Nagyítás"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:53
+msgid "Zoomed out"
+msgstr "Kicsinyítés"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:54
+msgid "Always zoomed"
+msgstr "Mindig nagyított"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:55
+msgid "Never zoomed"
+msgstr "Sohasem nagyított"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_score.c:4
+msgid "Score Panel"
+msgstr "Ponttáblázat"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_timer.c:4
+msgid "Timer Panel"
+msgstr "Időtáblázat"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_timer.c:22
+msgid "Timer:"
+msgstr "Időzítő:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_timer.c:25
+msgid "Show elapsed time"
+msgstr "Eltelt idő mutatása"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_vote.c:4
+msgid "Vote Panel"
+msgstr "Szavazati tábla"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_vote.c:22
+msgid "Alpha after voting:"
+msgstr "Alpha a szavazás után:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:4
+msgid "Weapons Panel"
+msgstr "Fegyverek lapja"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:24
+msgid "Fade out after:"
+msgstr "Elhalványulás késleltetés:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:26
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:36
+msgid "Never"
+msgstr "Soha"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:28
+#, c-format
+msgid "%ds"
+msgstr "%ds"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:32
+msgid "Fade effect:"
+msgstr "Halványulás hatás:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:33
+msgid "EF^None"
+msgstr "EF^Nincs"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:35
+msgid "Slide"
+msgstr "Csúszás"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:37
+msgid "Alpha"
+msgstr "Alpha"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:40
+msgid "Weapon icons:"
+msgstr "Fegyver ikonok:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:43
+msgid "Show weapon ID as:"
+msgstr "A Fegyver azonosító megjelenítés eszerint:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:44
+msgid "SHOWAS^None"
+msgstr "Nincs"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:45
+msgid "Number"
+msgstr "Szám"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:46
+msgid "Bind"
+msgstr "Hozzárendelés"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:49
+msgid "Show Accuracy"
+msgstr "Pontosság mutatása"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:50
+msgid "Show Ammo"
+msgstr "Lőszer mutatása"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:53
+msgid "Ammo bar color:"
+msgstr "Lőszer jelző színe:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:59
+msgid "Ammo bar alpha:"
+msgstr "Lőszer jelző alpha:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:4
+msgid "Panel HUD Setup"
+msgstr "HUD panel beállítás"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:21
+msgid "Panel background defaults:"
+msgstr "Panel háttér alapértelmezett:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:25
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:37
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:52
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:91 qcsrc/menu/xonotic/util.qc:586
+#: qcsrc/menu/xonotic/util.qc:602 qcsrc/menu/xonotic/util.qc:619
+msgid "Disable"
+msgstr "Letiltás"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:30
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:77 qcsrc/menu/xonotic/util.qc:591
+msgid "Color:"
+msgstr "Szín:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:35 qcsrc/menu/xonotic/util.qc:599
+msgid "Border size:"
+msgstr "Keret méret:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:50
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:89
+msgid "Team color:"
+msgstr "Csapat szín:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:58 qcsrc/menu/xonotic/util.qc:625
+msgid "Test team color in configure mode"
+msgstr "Csapat szín ellenörzés konfigurációs módban"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:61 qcsrc/menu/xonotic/util.qc:628
+msgid "Padding:"
+msgstr "Padding:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:68
+msgid "HUD Dock:"
+msgstr "HUD rögzités:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:70
+msgid "DOCK^Disabled"
+msgstr "Letiltott"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:71
+msgid "DOCK^Small"
+msgstr "Kicsi"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:72
+msgid "DOCK^Medium"
+msgstr "Közepes"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:73
+msgid "DOCK^Large"
+msgstr "Nagy"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:96
+msgid "Grid settings:"
+msgstr "Rács beállítások:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:99
+msgid "Snap panels to grid"
+msgstr "Panelek rácshoz igazítása"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:102
+msgid "Grid size:"
+msgstr "Rács méret:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:103
+msgid "X:"
+msgstr "X:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:109
+msgid "Y:"
+msgstr "Y:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:117
+msgid "Exit setup"
+msgstr "Kilépés a beállitásokból"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:4
+msgid "Multiplayer"
+msgstr "Többjátékos"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:18
+msgid "Servers"
+msgstr "Kiszolgálók"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:19
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:5
+msgid "Create"
+msgstr "Létrehozás"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:20
+msgid "Demos"
+msgstr "Demók"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:21
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:5
+msgid "Player Setup"
+msgstr "Játékos beállítás"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:35
+msgid "Game type:"
+msgstr "Játék típus:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:47
+msgid "Match settings:"
+msgstr "Meccs beállítások:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:50
+msgid "Time limit:"
+msgstr "Idő határ:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:54
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:62
+msgid "Use map specified default"
+msgstr "Térképhez tartozó alapérték használata"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:57
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:156
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:157
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:158
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:162
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:163
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:164
+msgid "Point limit:"
+msgstr "Pont határ:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:65
+msgid "Player slots:"
+msgstr "Összes játékos:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:68
+msgid "Number of bots:"
+msgstr "Botok száma:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:72
+msgid "Bot skill:"
+msgstr "Botok szintje"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:75
+msgid "Botlike"
+msgstr "Béna"
+
+# :)))
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:76
+msgid "Beginner"
+msgstr "Kezdő"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:77
+msgid "You will win"
+msgstr "Biztosan te nyersz"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:78
+msgid "You can win"
+msgstr "Nyerhetsz"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:79
+msgid "You might win"
+msgstr "Még legyőzheted"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:80
+msgid "Advanced"
+msgstr "Rutinos"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:81
+msgid "Expert"
+msgstr "Tapasztalt"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:82
+msgid "Pro"
+msgstr "Hivatásos"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:83
+msgid "Assassin"
+msgstr "Orgyilkos"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:84
+msgid "Unhuman"
+msgstr "Embertelen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:85
+msgid "Godlike"
+msgstr "Isteni"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:89
+msgid "Mutators..."
+msgstr "Mutatorok..."
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:98
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:84
+msgid "Advanced settings..."
+msgstr "Különleges beállítások ..."
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:105
+msgid "Map list:"
+msgstr "Térkép lista:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:111
+msgid "Select all"
+msgstr "Az összes kiválasztása"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:114
+msgid "Select none"
+msgstr "Egyik sem"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:120
+msgid "Start Multiplayer!"
+msgstr "Többjátékos indítása"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:155
+msgid "Capture limit:"
+msgstr "Rablás határérték:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:159
+msgid "Lives:"
+msgstr "Életek:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:160
+msgid "Laps:"
+msgstr "Körök:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:161
+msgid "Goals:"
+msgstr "Célok:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:165
+msgid "Frag limit:"
+msgstr "Frag határérték:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:6
+msgid "Advanced server settings"
+msgstr "Speciális kiszolgáló beállítások"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:25
+msgid "Game settings:"
+msgstr "Játék beállításai:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:28
+msgid "Allow spectating"
+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:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:36
+msgid "Game speed:"
+msgstr "Játék sebesség:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:40
+msgid "Teamplay settings:"
+msgstr "Csapatjáték beállítások:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:43
+msgid "Friendly fire scale:"
+msgstr "Baráti tűz mértéke:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:47
+msgid "Virtual friendly fire (effect only)"
+msgstr "Látszólagos baráti tűz (csak hatás)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:50
+msgid "Friendly fire penalty:"
+msgstr "Baráti tűz büntetés:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:54
+msgid "Virtual penalty (effect only)"
+msgstr "Látszólagos büntetés (csak hatás)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:57
+msgid "Teams:"
+msgstr "Csapatok:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:66
+msgid "Map voting:"
+msgstr "Térkép szavazás:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:68
+msgid "No voting"
+msgstr "Nincs szavazás"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:69
+msgid "2 choices"
+msgstr "2 lehetőség"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:70
+msgid "3 choices"
+msgstr "3 lehetőség"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:71
+msgid "4 choices"
+msgstr "4 lehetőség"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:72
+msgid "5 choices"
+msgstr "5 lehetőség"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:73
+msgid "6 choices"
+msgstr "6 lehetőség"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:74
+msgid "7 choices"
+msgstr "7 lehetőség"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:75
+msgid "8 choices"
+msgstr "8 lehetőség"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:76
+msgid "9 choices"
+msgstr "9 lehetőség"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:79
+msgid "Simple majority wins vcall"
+msgstr "Egyszerű többség nyer"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:5
+msgid "Map Information"
+msgstr "Térkép Információ"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:49
+msgid "Full item placement"
+msgstr "Minden tárgy elhelyezése"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:49
+msgid "MinstaGib only"
+msgstr "Csak MinstaGib"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:78
+msgid "Title:"
+msgstr "Cím:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:84
+msgid "Author:"
+msgstr "Szerző:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:90
+msgid "Features:"
+msgstr "Jellemzők:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:95
+msgid "Game types:"
+msgstr "Játék típusok:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:119
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:314
+msgid "Close"
+msgstr "Zárt"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:122
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:46
+msgid "Play"
+msgstr "Játék"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:7
+msgid "Mutators"
+msgstr "Mutatorok"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:33
+msgid "All Weapons Arena"
+msgstr "Minden Fegyver Aréna"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:35
+msgid "Most Weapons Arena"
+msgstr "Legtöbb Fegyver Aréna"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:56
+#, c-format
+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
+msgid "Dodging"
+msgstr "Kitérés"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:70
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:250
+msgid "MinstaGib"
+msgstr "MinstaGib"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:72
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:253
+msgid "NIX"
+msgstr "NIX"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:74
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:205
+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
+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
+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
+msgid "Cloaked"
+msgstr "Álcázott"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:84
+msgid "Hook"
+msgstr "Horog"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:86
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:173
+msgid "Midair"
+msgstr "Levegőben"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:88
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:176
+msgid "Vampire"
+msgstr "Vámpír"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:90
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:208
+msgid "Piñata"
+msgstr "Piñata"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:92
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:211
+msgid "Weapons stay"
+msgstr "Fegyverek maradnak"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:94
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:180
+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
+msgid "Jet pack"
+msgstr "Jet pack"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:98
+msgid "MUT^None"
+msgstr "Nincs"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:164
+msgid "Gameplay mutators:"
+msgstr "Játékmenet mutatorok:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:196
+msgid "Weapon & item mutators:"
+msgstr "Fegyver és tárgy mutatorok:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:199
+msgid "Grappling hook"
+msgstr "Ragadós horog"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:215
+msgid "Weapon arenas:"
+msgstr "Fegyver Arénák:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:218
+msgid "Regular (no arena)"
+msgstr "Hagyományos (nincs aréna)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:239
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:256
+msgid "with laser"
+msgstr "lézerrel"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:247
+msgid "Special arenas:"
+msgstr "Különleges Arénák:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:260
+msgid "Most weapons"
+msgstr "A legtöbb fegyver"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:4
+msgid "Demo"
+msgstr "Demó"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:28
+msgid "Record demos while playing"
+msgstr "Játék közben rögzitse a demókat"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:32
+#: 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_join.c:29
+#: qcsrc/menu/xonotic/dialog_settings_input.c:41
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:24
+msgid "Clear"
+msgstr "Törlés"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:43
+msgid "Timedemo"
+msgstr "Demó időmérés"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:4
+msgid "Join"
+msgstr "Csatlakozás"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:36
+msgid "SRVS^Empty"
+msgstr "SRVS^Üres"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:40
+msgid "SRVS^Full"
+msgstr "SRVS^Teli"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:44
+msgid "Pause"
+msgstr "Szünet"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:56
+msgid "Address:"
+msgstr "Cím:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:67
+msgid "Info..."
+msgstr "Info..."
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:72
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:317
+msgid "Join!"
+msgstr "Csatlakozz!"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:5
+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
+msgid "N/A"
+msgstr "N/A"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:158
+#, c-format
+msgid "%d/%d, %d free player slots"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:172
+#, c-format
+msgid "%d modified settings"
+msgstr "%d módosított beállításai"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:172
+msgid "Official settings"
+msgstr "Hivatalos beállítások"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:197
+msgid "N/A (can't connect)"
+msgstr "N/A (nem tud csatlakozni)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:205
+msgid "not supported (can't connect)"
+msgstr "nem támogatott (nem tud csatlakozni)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:207
+msgid "not supported (won't encrypt)"
+msgstr "nem támogatott (nem ellenörzött)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:211
+msgid "supported (will encrypt)"
+msgstr "támogatott (ellenörzött)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:213
+msgid "supported (won't encrypt)"
+msgstr "támogatott (nem ellenörzött)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:217
+msgid "requested (will encrypt)"
+msgstr "kért (ellenörzött)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:219
+msgid "requested (won't encrypt)"
+msgstr "kért (nem ellenörzött)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:223
+msgid "required (can't connect)"
+msgstr "szükséges (nem tud csatlakozni)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:225
+msgid "required (will encrypt)"
+msgstr "szükséges (ellenörzött)"
+
+#: 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:254
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:38
+msgid "Type:"
+msgstr "Típus:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:259
+msgid "Map:"
+msgstr "Pálya:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:264
+msgid "Gameplay:"
+msgstr "Játék:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:274
+msgid "Bots:"
+msgstr "Botok:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:279
+msgid "Mod:"
+msgstr "Mod:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:284
+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:295
+msgid "CA:"
+msgstr "CA:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:301
+msgid "Key:"
+msgstr "Kulcs:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:307
+msgid "Encryption:"
+msgstr "Titkosítás:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:63
+msgid "Model:"
+msgstr "Modell:"
+
+#: 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 "Nézet döntés:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:96
+msgid "Zoom factor:"
+msgstr "Nagyítás szorzó:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:100
+msgid "Zoom speed:"
+msgstr "Nagyítás sebesség:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:103
+msgid "Weapon settings..."
+msgstr "Fegyver 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:130
+msgid "Crosshair size:"
+msgstr "Célkereszt mérete:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:134
+msgid "Crosshair alpha:"
+msgstr "Célkereszt alpha:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:138
+msgid "Crosshair color:"
+msgstr "Célkereszt színe:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:140
+msgid "By health"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:143
+#, fuzzy
+msgid "Custom"
+msgstr "egyéni"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:148
+msgid "Enable center dot"
+msgstr "Középpont engedélyezése"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:151
+msgid "Size:"
+msgstr "Méret:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:158
+msgid "Hit test:"
+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.c:160
+msgid "TrueAim"
+msgstr "Valós célzás"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:161
+msgid "Enemies"
+msgstr "Ellenségek"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:164
+msgid "Waypoints setup..."
+msgstr "Útpontok beállítása..."
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:169
+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.c:175
+msgid "MDL^None"
+msgstr "MDL^Nincs"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:176
+msgid "MDL^Custom"
+msgstr "MDL^Egyéni"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:177
+msgid "MDL^All"
+msgstr "MDL^Mind"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:180
+msgid "Disable gore effects"
+msgstr "Sérülés hatások letiltása"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:182
+msgid "Gibs:"
+msgstr "Húscafatok:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:184
+msgid "GIBS^None"
+msgstr "GIBS^Nincs"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:185
+msgid "GIBS^Few"
+msgstr "GIBS^Kevés"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:186
+msgid "GIBS^Many"
+msgstr "GIBS^Sok"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:187
+msgid "GIBS^Lots"
+msgstr "GIBS^Rengeteg"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:191
+msgid "Damage splash:"
+msgstr "Sérülés szórás:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:195
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:178
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:194
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:30
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:41
+#: qcsrc/menu/xonotic/dialog_settings_video.c:105
+msgid "Apply immediately"
+msgstr "Azonnali alkalmazás"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:5
+msgid "Waypoints"
+msgstr "Útpontok"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:23
+msgid "Show base waypoints"
+msgstr "Alap útpontok mutatása"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:25
+msgid "Waypoint scale:"
+msgstr "Útpont részletesség:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:29
+msgid "Waypoint alpha:"
+msgstr "Útpont alpha:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:34
+msgid "Show names:"
+msgstr "Nevek mutatása:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:37
+msgid "Teammates"
+msgstr "Csapattársak"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:38
+msgid "All players"
+msgstr "Minden játékos"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:6
+msgid "Weapon settings"
+msgstr "Fegyver beállítások"
+
+#: 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
+msgid "Up"
+msgstr "Fel"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:37
+msgid "Down"
+msgstr "Le"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:41
+msgid "Use priority list for weapon cycling"
+msgstr "Az elsőbbségi listát használja a fegyverváltáshoz"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:43
+msgid "Auto switch weapons on pickup"
+msgstr "Automatikus váltás a felvett fegyverre"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:45
+msgid "Draw 1st person weapon model"
+msgstr "1.személyű fegyver modell kirajzolása"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:48
+msgid "Left align"
+msgstr "Balra igazítása"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:50
+msgid "Right align"
+msgstr "Jobbra igazított"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:53
+msgid "Flip view horizontally"
+msgstr "A nézet horizontális döntése"
+
+#: qcsrc/menu/xonotic/dialog_news.c:4
+msgid "News"
+msgstr "Hírek"
+
+#: qcsrc/menu/xonotic/dialog_news.c:18
+msgid "http://www.xonotic.org/team/blog/"
+msgstr "http://www.xonotic.org/team/blog/"
+
+#: qcsrc/menu/xonotic/dialog_quit.c:4
+msgid "Quit"
+msgstr "Kilépés"
+
+#: qcsrc/menu/xonotic/dialog_quit.c:17
+msgid "Are you sure you want to quit?"
+msgstr "Biztos vagy benne, hogy kilépsz?"
+
+#: qcsrc/menu/xonotic/dialog_quit.c:20
+msgid "Yes"
+msgstr "Igen"
+
+#: qcsrc/menu/xonotic/dialog_quit.c:21
+msgid "No"
+msgstr "Nem"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:4
+msgid "Settings"
+msgstr "Beállítások"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:18
+#: qcsrc/menu/xonotic/dialog_settings_input.c:4
+msgid "Input"
+msgstr "Bemenet"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:19
+#: qcsrc/menu/xonotic/dialog_settings_video.c:4
+msgid "Video"
+msgstr "Videó"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:20
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:4
+msgid "Effects"
+msgstr "Hatások"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:21
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:4
+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.c:23
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:4
+msgid "Misc"
+msgstr "Egyéb"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:27
+msgid "Master:"
+msgstr "Mester:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:33
+msgid "Music:"
+msgstr "Zene:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:40
+msgid "VOL^Ambient:"
+msgstr "VOL^Környezet:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:48
+msgid "Info:"
+msgstr "Információ:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:57
+msgid "Items:"
+msgstr "Tárgyak:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:65
+msgid "Pain:"
+msgstr "Fájdalom:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:73
+msgid "Player:"
+msgstr "Játékos:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:81
+msgid "Shots:"
+msgstr "Lövések:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:88
+msgid "Voice:"
+msgstr "Hang:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:96
+msgid "Weapons:"
+msgstr "Fegyverek:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:103
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:161
+msgid "Frequency:"
+msgstr "Frekvencia:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:105
+msgid "8 kHz"
+msgstr "8 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:106
+msgid "11.025 kHz"
+msgstr "11,025 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:107
+msgid "16 kHz"
+msgstr "16 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:108
+msgid "22.05 kHz"
+msgstr "22,05 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:109
+msgid "24 kHz"
+msgstr "24 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:110
+msgid "32 kHz"
+msgstr "32 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:111
+msgid "44.1 kHz"
+msgstr "44,1 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:112
+msgid "48 kHz"
+msgstr "48 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:115
+msgid "Channels:"
+msgstr "Csatornák:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:117
+msgid "Mono"
+msgstr "Monó"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:118
+msgid "Stereo"
+msgstr "Sztereó"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:119
+msgid "2.1"
+msgstr "2.1"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:120
+msgid "4"
+msgstr "4"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:121
+msgid "5"
+msgstr "5"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:122
+msgid "5.1"
+msgstr "5.1"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:123
+msgid "6.1"
+msgstr "6.1"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:124
+msgid "7.1"
+msgstr "7.1"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:128
+msgid "Swap Stereo"
+msgstr "Sztereó megcserélése"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:132
+msgid "Headphone friendly mode"
+msgstr "Fejhallgató barát mód"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:136
+msgid "Spatial voices:"
+msgstr "Térbeli hangok:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:137
+msgid "VOCS^None"
+msgstr "VOCS^Nincs"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:138
+msgid "VOCS^Taunts"
+msgstr "VOCS^Bekiabálások"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:139
+msgid "VOCS^All"
+msgstr "VOCS^Minden"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:142
+msgid "Taunt range:"
+msgstr "Bekiabálás terület:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:145
+msgid "RNG^Very short"
+msgstr "RNG^Nagyon rövid"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:146
+msgid "RNG^Short"
+msgstr "RNG^Rövid"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:147
+msgid "RNG^Normal"
+msgstr "RNG^Normál"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:148
+msgid "RNG^Long"
+msgstr "RNG^Hosszú"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:149
+msgid "RNG^Full"
+msgstr "RNG^Teljes"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:156
+msgid "Automatic taunts"
+msgstr "Automatikus bekiabálások"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:165
+msgid "Time warning:"
+msgstr "Idő figyelmeztetés:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:167
+msgid "WRN^None"
+msgstr "Nincs"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:168
+msgid "1 minute"
+msgstr "1 perc"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:169
+msgid "5 minutes"
+msgstr "5 perc"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:170
+msgid "WRN^Both"
+msgstr "Mindkettő"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:173
+msgid "Hit indicator"
+msgstr "Találat jelző"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:175
+msgid "Menu sounds"
+msgstr "Menü hangok"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:38
+msgid "Quality preset:"
+msgstr "Minőség sablon:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:41
+msgid "PRE^OMG!"
+msgstr "PRE^OMG!"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:42
+msgid "PRE^Low"
+msgstr "PRE^Alacsony"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:43
+msgid "PRE^Medium"
+msgstr "PRE^Közepes"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:44
+msgid "PRE^Normal"
+msgstr "PRE^Normál"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:45
+msgid "PRE^High"
+msgstr "PRE^Magas"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:46
+msgid "PRE^Ultra"
+msgstr "PRE^Szélsőséges"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:48
+msgid "PRE^Ultimate"
+msgstr "PRE^Végső"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:52
+msgid "Geometry detail:"
+msgstr "Geometria részletesség:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:54
+msgid "DET^Lowest"
+msgstr "DET^Legalacsonyabb"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:55
+msgid "DET^Low"
+msgstr "DET^Alacsony"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:56
+msgid "DET^Normal"
+msgstr "DET^Normál"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:57
+msgid "DET^Good"
+msgstr "DET^Jó"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:58
+msgid "DET^Best"
+msgstr "DET^Még jobb"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:59
+msgid "DET^Insane"
+msgstr "DET^Őrült 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
+msgid "RES^Leet"
+msgstr "RES^Semmi"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:74
+msgid "RES^Lowest"
+msgstr "RES^Legalacsonyabb"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:75
+msgid "RES^Low"
+msgstr "RES^Alacsony"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:76
+msgid "RES^Normal"
+msgstr "RES^Normál"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:77
+msgid "RES^Good"
+msgstr "RES^Jó"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:78
+msgid "RES^Best"
+msgstr "RES^Legjobb"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:91
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:94
+msgid "Avoid lossy texture compression"
+msgstr "Kerülje a veszteséges textúra tömörítést"
+
+#: 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:105
+msgid "8x"
+msgstr "8x"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:106
+msgid "16x"
+msgstr "16x"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:110
+msgid "Particle quality:"
+msgstr "Részecske minőség:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:113
+msgid "Particle distance:"
+msgstr "Részecske távolság:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:117
+msgid "Decals"
+msgstr "Dekorációk"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:120
+msgid "Distance:"
+msgstr "Távolság:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:126
+msgid "Time:"
+msgstr "Idő:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:132
+msgid "Use lightmaps"
+msgstr "Fénytérképek használata"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:133
+msgid "Deluxe mapping"
+msgstr "Deluxe mapping"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:135
+msgid "Gloss"
+msgstr "Fényes"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:138
+msgid "Offset mapping"
+msgstr "Offset mapping"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:140
+msgid "Relief mapping"
+msgstr "Relief mapping"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:143
+msgid "Reflections:"
+msgstr "Tükrözödés:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:146
+msgid "Blurred"
+msgstr "Homályos"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:147
+msgid "REFL^Good"
+msgstr "Refl^Jó"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:148
+msgid "Sharp"
+msgstr "Éles"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:153
+msgid "Show surfaces"
+msgstr "Felületek megjelenítése"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:155
+msgid "No dynamic lighting"
+msgstr "Nincsenek dinamikus fények"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:157
+msgid "Flash blend approximation"
+msgstr "Közelítő villanás keverés"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:159
+msgid "Realtime dynamic lighting"
+msgstr "Valós idejű dinamikus fények"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:160
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:164
+msgid "Shadows"
+msgstr "Árnyékok"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:163
+msgid "Realtime world lighting"
+msgstr "Valós idejű világ fényhatások"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:168
+msgid "Use normal maps"
+msgstr "Normál map használata"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:170
+msgid "Soft shadows"
+msgstr "Lágy árnyékok"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:173
+msgid "Coronas"
+msgstr "Fénykörök"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:174
+msgid "Use Occlusion Queries"
+msgstr "Use Occlusion Queries"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:176
+msgid "Bloom"
+msgstr "Virágzás"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:178
+msgid "High Dynamic Range (HDR)"
+msgstr "Magas dinamika tartomány (HDR)"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:182
+msgid "Motion blur:"
+msgstr "Mozgási elmosás:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:188
+msgid "Damage blur:"
+msgstr "Sérülés elmosás:"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:26
+msgid "Key bindings:"
+msgstr "Billentyű hozzárendelések:"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:31
+msgid "Change key..."
+msgstr "Billentyű változtatás..."
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:35
+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:49
+msgid "UI mouse speed:"
+msgstr "UI egér sebesség:"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:52
+msgid "Mouse filter"
+msgstr "Egér szürés"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:54
+msgid "Invert mouse"
+msgstr "Forditott egér"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:57
+#: qcsrc/menu/xonotic/dialog_settings_input.c:59
+msgid "Use joystick input"
+msgstr "Joystick bemenet használata"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:62
+#: qcsrc/menu/xonotic/dialog_settings_input.c:64
+msgid "Turn off OS mouse acceleration"
+msgstr "OS egér gyorsítás kikapcsolása"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:66
+msgid "\"enter console\" also closes"
+msgstr "\"belépés a konzolba\" zár is"
+
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:5
+msgid "User defined key bind"
+msgstr "Felhasználó által beállított billentyű"
+
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:42
+msgid "Command when pressed:"
+msgstr "Parancs lenyomáskor:"
+
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:45
+msgid "Command when released:"
+msgstr "Parancs felengedéskor:"
+
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:48
+msgid "Save"
+msgstr "Mentés"
+
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:51
+msgid "Cancel"
+msgstr "Mégsem"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:26
+msgid "Menu skins:"
+msgstr "Menü felületek:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:47
+msgid "Show current time"
+msgstr "Aktuális idő mutatása"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:49
+msgid "Show current date"
+msgstr "Aktuális dátum mutatása"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:51
+msgid "Show frames per second"
+msgstr "A képkocka/s mutatása"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:53
+msgid "Speedometer"
+msgstr "Sebességmérő"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:56
+msgid "qu/s (hidden)"
+msgstr "qu/s (rejtett)"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:58
+msgid "qu/s"
+msgstr "qu/s"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:60
+msgid "m/s"
+msgstr "m/s"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:64
+msgid "km/h"
+msgstr "km/h"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:66
+msgid "mph"
+msgstr "mph"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:68
+msgid "knots"
+msgstr "csomó"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:71
+msgid "Show accelerometer"
+msgstr "Gyorsulásmérő mutatása"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:74
+msgid "Accelerometer scale:"
+msgstr "Gyorsulásmérő beosztás:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:80
+msgid "Minimize input latency"
+msgstr "Bemeneti késleltetés minimalizása"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:5
+msgid "Advanced settings"
+msgstr "További beállítások"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:23
+msgid "Cvar filter:"
+msgstr "Cvar szűrés:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:34
+msgid "Setting:"
+msgstr "Beállítás:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:42
+msgid "Value:"
+msgstr "Érték:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:56
+msgid "Description:"
+msgstr "Leírás:"
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:26
+msgid "Client-side movement prediction"
+msgstr "Kliens-oldali mozgás előrejelzé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ózati sebesség:"
+
+#: 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_network.c:42
+msgid "Input packets/s:"
+msgstr "Bemeneti csomagok/s:"
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:46
+msgid "HTTP downloads:"
+msgstr "HTTP letöltéseket:"
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:49
+msgid "Downloads:"
+msgstr "Letöltések:"
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:53
+msgid "Speed (kB/s):"
+msgstr "Sebesség (kB/s):"
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:57
+msgid "Client UDP port:"
+msgstr "Kliens UDP port:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:26
+msgid "Resolution:"
+msgstr "Felbontás:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:29
+msgid "Font/UI size:"
+msgstr "Font/UI méret:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:31
+msgid "SZ^Unreadable"
+msgstr "SZ^Olvashatatlan"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:32
+msgid "SZ^Tiny"
+msgstr "SZ^Apró"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:33
+msgid "SZ^Little"
+msgstr "SZ^Pici"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:34
+msgid "SZ^Small"
+msgstr "SZ^Kicsi"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:35
+msgid "SZ^Medium"
+msgstr "SZ^Közepes"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:36
+msgid "SZ^Large"
+msgstr "SZ^Nagy"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:37
+msgid "SZ^Huge"
+msgstr "SZ^Hatalmas"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:38
+msgid "SZ^Gigantic"
+msgstr "SZ^Gigantikus"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:39
+msgid "SZ^Colossal"
+msgstr "SZ^Óriási"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:42
+msgid "Color depth:"
+msgstr "Színmélység:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:45
+msgid "Full screen"
+msgstr "Teljes képernyő"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:46
+msgid "Vertical Synchronization"
+msgstr "Szinkonizálás a képfrissítéshez"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:49
+msgid "Use OpenGL 2.0 shaders (GLSL)"
+msgstr "OpenGL 2.0 árnyalók (GLSL) használata"
+
+#: 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:56
+msgid "Vertex Buffer Objects (VBOs)"
+msgstr "Vertex Buffer Objects (VBOs)"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:59
+msgid "VBO^Off"
+msgstr "VBO^Off"
+
+#: 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:63
+msgid "Vertices"
+msgstr "Csúcspontok"
+
+#: 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:67
+msgid "Depth first:"
+msgstr "Mélység először:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:69
+msgid "DF^Disabled"
+msgstr "Kikapcsolva"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:70
+msgid "DF^World"
+msgstr "Világ"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:71
+msgid "DF^All"
+msgstr "Minden"
+
+#: 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:77
+msgid "Wait for GPU to finish each frame"
+msgstr "Várakozás minden képkockánál, hogy a GPU végezzen"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:80
+msgid "Brightness:"
+msgstr "Fényerő:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:83
+msgid "Contrast:"
+msgstr "Kontraszt:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:86
+msgid "Gamma:"
+msgstr "Gamma:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:89
+msgid "Contrast boost:"
+msgstr "Kontraszt növelés:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:92
+msgid "Saturation:"
+msgstr "Színtelítettség:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:98
+msgid "LIT^Ambient:"
+msgstr "Környezet:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:101
+msgid "Intensity:"
+msgstr "Erősség:"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:4
+msgid "Singleplayer"
+msgstr "Egyjátékos"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:59
+msgid "Instant action! (random map with bots)"
+msgstr "Azonnali játék (véletlenszerű pálya botokkal)"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:80
+msgid "Start Singleplayer!"
+msgstr "Egyjátékos mód indítása"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer_winner.c:4
+msgid "Winner"
+msgstr "Győztes"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:5
+msgid "Team Selection"
+msgstr "Csapat választás"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:41
+msgid "join 'best' team (auto-select)"
+msgstr "Csatlakozás a 'legjobb' csapathoz (auto-választás)"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:45
+msgid "red"
+msgstr "vörös"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:46
+msgid "blue"
+msgstr "kék"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:47
+msgid "yellow"
+msgstr "sárga"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:48
+msgid "pink"
+msgstr "rózsaszín"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:51
+msgid "spectate"
+msgstr "néző"
+
+#: qcsrc/menu/xonotic/mainwindow.c:35 qcsrc/menu/xonotic/mainwindow.c:38
+msgid "Do not press this button again!"
+msgstr "Ne nyomd meg újra ezt a gombot!"
+
+#: qcsrc/menu/xonotic/maplist.c:278
+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
+#, c-format
+msgid "%s's Xonotic Server"
+msgstr "%s Xonotic kiszolgálója"
+
+#: qcsrc/menu/xonotic/maplist.c:291
+msgid ""
+"Huh? Can't play this (invalid game type). Refiltering so this won't happen "
+"again.\n"
+msgstr ""
+"Jajj? Ezzel nem lehet játszani (érvénytelen játék típus). Állítsd át a "
+"szürést, hogy ne ismétlődjön meg!\n"
+"."
+
+#: qcsrc/menu/xonotic/playermodel.c:174
+msgid "<no model found>"
+msgstr "<modell nem található>"
+
+#: qcsrc/menu/xonotic/serverlist.c:185
+msgid "Remove"
+msgstr "Eltávolítás"
+
+#: qcsrc/menu/xonotic/serverlist.c:187
+msgid "Bookmark"
+msgstr "Könyvjelző"
+
+#: qcsrc/menu/xonotic/serverlist.c:523
+msgid "Ping"
+msgstr "Ping"
+
+#: qcsrc/menu/xonotic/serverlist.c:524
+msgid "Host name"
+msgstr "Gazda név"
+
+#: qcsrc/menu/xonotic/serverlist.c:525
+msgid "Map"
+msgstr "Térkép"
+
+#: qcsrc/menu/xonotic/serverlist.c:526
+msgid "Type"
+msgstr "Típus"
+
+#: qcsrc/menu/xonotic/serverlist.c:527
+msgid "Players"
+msgstr "Játékosok"
+
+#: qcsrc/menu/xonotic/skinlist.c:105
+msgid "<TITLE>"
+msgstr "<CÍM>"
+
+#: qcsrc/menu/xonotic/skinlist.c:106
+msgid "<AUTHOR>"
+msgstr "<SZERZŐ>"
+
+#: qcsrc/menu/xonotic/skinlist.c:163
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: qcsrc/menu/xonotic/slider_decibels.c:50
+msgid "VOL^OFF"
+msgstr "Hangerő ki"
+
+#: qcsrc/menu/xonotic/slider_decibels.c:52
+msgid "VOL^MAX"
+msgstr "Hangerő maximum"
+
+#: qcsrc/menu/xonotic/slider_decibels.c:53
+#, c-format
+msgid "%s dB"
+msgstr "%s dB"
+
+#: qcsrc/menu/xonotic/slider_resolution.c:65
+#, c-format
+msgid "%dx%d"
+msgstr "%dx%d"
+
+#: qcsrc/menu/xonotic/util.qc:270
+#, 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
+#, 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
+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
+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
+#, c-format
+msgid ""
+"Update can be downloaded at:\n"
+"%s\n"
+msgstr ""
+"Frissítés letölthető: \n"
+"%s -ről\n"
+
+#: qcsrc/menu/xonotic/util.qc:337
+msgid "Autogenerating mapinfo for newly added maps..."
+msgstr "Önállóan előállitott MapInfo az újonnan hozzáadott térképekhez..."
+
+#: qcsrc/menu/xonotic/util.qc:367
+#, c-format
+msgid "^1%s TEST BUILD"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:432
+#, c-format
+msgid "Update to %s now!"
+msgstr "Most frissítsd %s-re!"
+
+#: qcsrc/menu/xonotic/util.qc:509
+msgid ""
+"^1ERROR: Texture compression is required but not supported.\n"
+"^1Expect visual problems.\n"
+msgstr ""
+"^1Hiba: textúra tömörítés szükséges, de nem támogatott.\n"
+"^1Gondok lehetnek a látvánnyal.\n"
+
+#: qcsrc/menu/xonotic/util.qc:531
+msgid "Arena"
+msgstr "Aréna"
+
+#: qcsrc/menu/xonotic/util.qc:532
+msgid "Assault"
+msgstr "Ostrom"
+
+#: qcsrc/menu/xonotic/util.qc:533
+msgid "Capture The Flag"
+msgstr "Szerezd meg a zászlót"
+
+#: qcsrc/menu/xonotic/util.qc:534
+msgid "Clan Arena"
+msgstr "Klán Aréna"
+
+#: qcsrc/menu/xonotic/util.qc:535
+msgid "Deathmatch"
+msgstr "Mindenki mindenki ellen"
+
+#: qcsrc/menu/xonotic/util.qc:536
+msgid "Domination"
+msgstr "Uralom"
+
+#: qcsrc/menu/xonotic/util.qc:537
+msgid "Freeze Tag"
+msgstr "Freeze Tag"
+
+#: qcsrc/menu/xonotic/util.qc:538
+msgid "Keepaway"
+msgstr "Keepaway"
+
+#: qcsrc/menu/xonotic/util.qc:539
+msgid "Key Hunt"
+msgstr "Kulcs vadászat"
+
+#: qcsrc/menu/xonotic/util.qc:540
+msgid "Last Man Standing"
+msgstr "Last Man Standing"
+
+#: qcsrc/menu/xonotic/util.qc:541
+msgid "Nexball"
+msgstr "Nexball"
+
+#: qcsrc/menu/xonotic/util.qc:542
+msgid "Onslaught"
+msgstr "Támadás"
+
+#: qcsrc/menu/xonotic/util.qc:543
+msgid "Race"
+msgstr "Futam"
+
+#: qcsrc/menu/xonotic/util.qc:544
+msgid "Race CTS"
+msgstr "Race CTS"
+
+#: qcsrc/menu/xonotic/util.qc:545
+msgid "Runematch"
+msgstr "Rúnameccs"
+
+#: qcsrc/menu/xonotic/util.qc:546
+msgid "Team Deathmatch"
+msgstr "Csapatos öldöklés"
+
+#: qcsrc/menu/xonotic/util.qc:565
+#, c-format
+msgid "@!#%'n Tuba Throwing"
+msgstr "@!#%'n Tuba Dobás"
+
+#: qcsrc/menu/xonotic/util.qc:583
+msgid "Background:"
+msgstr "Háttér:"
+
+#: qcsrc/menu/xonotic/util.qc:585 qcsrc/menu/xonotic/util.qc:601
+#: qcsrc/menu/xonotic/util.qc:610 qcsrc/menu/xonotic/util.qc:618
+#: qcsrc/menu/xonotic/util.qc:630
+msgid "Default"
+msgstr "Alapértelmezett"
+
+#: qcsrc/menu/xonotic/util.qc:596
+msgid "Use default"
+msgstr "Alapértékek használata"
+
+#: qcsrc/menu/xonotic/util.qc:616
+msgid "Team Color:"
+msgstr "Csapat színe:"
+
+#: qcsrc/menu/xonotic/util.qh:49
+msgid "Enable panel"
+msgstr "Panel engedélyezés"
+
+#: qcsrc/server/w_crylink.qc:2
+msgid "Crylink"
+msgstr ""
+
+#: qcsrc/server/w_crylink.qc:664
+#, c-format
+msgid "%s succeeded at self-destructing themself with the Crylink"
+msgstr ""
+
+#: qcsrc/server/w_crylink.qc:669
+#, c-format
+msgid "%s could not hide from %s's Crylink"
+msgstr ""
+
+#: qcsrc/server/w_crylink.qc:671
+#, c-format
+msgid "%s was too close to %s's Crylink"
+msgstr ""
+
+#: qcsrc/server/w_crylink.qc:673
+#, c-format
+msgid "%s took a close look at %s's Crylink"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:2
+msgid "Electro"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:571
+#, c-format
+msgid "%s could not remember where they put plasma"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:573
+#, c-format
+msgid "%s played with plasma"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:580
+#, c-format
+msgid "%s just noticed %s's blue ball"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:582
+#, c-format
+msgid "%s got in touch with %s's blue ball"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:587
+#, c-format
+msgid "%s felt the electrifying air of %s's combo"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:589
+#, c-format
+msgid "%s got too close to %s's blue beam"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:591
+#, c-format
+msgid "%s was blasted by %s's blue beam"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:2
+#, fuzzy
+msgid "Fireball"
+msgstr "Nexball"
+
+#: qcsrc/server/w_fireball.qc:417
+#, c-format
+msgid "%s forgot about some firemine"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:419 qcsrc/server/w_hlac.qc:240
+#, c-format
+msgid "%s should have used a smaller gun"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:426
+#, c-format
+msgid "%s tried to catch %s's firemine"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:428
+#, c-format
+msgid "%s fatefully ignored %s's firemine"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:435
+#, c-format
+msgid "%s could not hide from %s's fireball"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:437
+#, c-format
+msgid "%s saw the pretty lights of %s's fireball"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:440
+#, c-format
+msgid "%s got too close to %s's fireball"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:442
+#, c-format
+msgid "%s tasted %s's fireball"
+msgstr ""
+
+#: qcsrc/server/w_grenadelauncher.qc:2
+#, fuzzy
+msgid "Mortar"
+msgstr "Előre"
+
+#: qcsrc/server/w_grenadelauncher.qc:378
+#, c-format
+msgid "%s tried out his own grenade"
+msgstr ""
+
+#: qcsrc/server/w_grenadelauncher.qc:380
+#, fuzzy, c-format
+msgid "%s detonated"
+msgstr "néző"
+
+#: qcsrc/server/w_grenadelauncher.qc:386
+#, c-format
+msgid "%s didn't see %s's grenade"
+msgstr ""
+
+#: qcsrc/server/w_grenadelauncher.qc:388
+#, c-format
+msgid "%s almost dodged %s's grenade"
+msgstr ""
+
+#: qcsrc/server/w_grenadelauncher.qc:390
+#, c-format
+msgid "%s ate %s's grenade"
+msgstr ""
+
+#: qcsrc/server/w_hagar.qc:2
+msgid "Hagar"
+msgstr ""
+
+#: qcsrc/server/w_hagar.qc:209 qcsrc/server/w_seeker.qc:655
+#, c-format
+msgid "%s played with tiny rockets"
+msgstr ""
+
+#: qcsrc/server/w_hagar.qc:213
+#, c-format
+msgid "%s hoped %s's missiles wouldn't bounce"
+msgstr ""
+
+#: qcsrc/server/w_hagar.qc:215 qcsrc/server/w_seeker.qc:661
+#, c-format
+msgid "%s was pummeled by %s"
+msgstr ""
+
+#: qcsrc/server/w_hlac.qc:2
+msgid "Heavy Laser Assault Cannon"
+msgstr ""
+
+#: qcsrc/server/w_hlac.qc:242
+#, c-format
+msgid "%s was cut down by %s"
+msgstr ""
+
+#: qcsrc/server/w_hook.qc:2
+#, fuzzy
+msgid "Grappling Hook"
+msgstr "Ragadós horog"
+
+#: qcsrc/server/w_hook.qc:266 qcsrc/server/w_minstanex.qc:290
+#: qcsrc/server/w_nex.qc:267 qcsrc/server/w_porto.qc:296
+#: qcsrc/server/w_shotgun.qc:203 qcsrc/server/w_uzi.qc:317
+#, c-format
+msgid "%s did the impossible"
+msgstr ""
+
+#: qcsrc/server/w_hook.qc:268
+#, c-format
+msgid "%s has run into %s's gravity bomb"
+msgstr ""
+
+#: qcsrc/server/w_laser.qc:2
+#, fuzzy
+msgid "Laser"
+msgstr "Mester:"
+
+#: qcsrc/server/w_laser.qc:305
+#, c-format
+msgid "%s lasered themself to hell"
+msgstr ""
+
+#: qcsrc/server/w_laser.qc:309
+#, c-format
+msgid "%s was cut in half by %s's gauntlet"
+msgstr ""
+
+#: qcsrc/server/w_laser.qc:311
+#, c-format
+msgid "%s was lasered to death by %s"
+msgstr ""
+
+#: qcsrc/server/w_minelayer.qc:2
+#, fuzzy
+msgid "Mine Layer"
+msgstr "Egyjátékos"
+
+#: qcsrc/server/w_minelayer.qc:495 qcsrc/server/w_rocketlauncher.qc:500
+#, c-format
+msgid "%s exploded"
+msgstr ""
+
+#: qcsrc/server/w_minelayer.qc:499
+#, c-format
+msgid "%s got too close to %s's mine"
+msgstr ""
+
+#: qcsrc/server/w_minelayer.qc:501
+#, c-format
+msgid "%s almost dodged %s's mine"
+msgstr ""
+
+#: qcsrc/server/w_minelayer.qc:503
+#, c-format
+msgid "%s stepped on %s's mine"
+msgstr ""
+
+#: qcsrc/server/w_minstanex.qc:2
+#, fuzzy
+msgid "MinstaNex"
+msgstr "MinstaGib"
+
+#: qcsrc/server/w_minstanex.qc:292 qcsrc/server/w_nex.qc:269
+#, c-format
+msgid "%s has been vaporized by %s"
+msgstr ""
+
+#: qcsrc/server/w_nex.qc:2
+#, fuzzy
+msgid "Nex"
+msgstr "Nexball"
+
+#: qcsrc/server/w_porto.qc:2
+msgid "Port-O-Launch"
+msgstr ""
+
+#: qcsrc/server/w_porto.qc:298
+#, c-format
+msgid "%s felt %s doing the impossible to him"
+msgstr ""
+
+#: qcsrc/server/w_rocketlauncher.qc:2
+msgid "Rocket Launcher"
+msgstr ""
+
+#: qcsrc/server/w_rocketlauncher.qc:504
+#, c-format
+msgid "%s got too close to %s's rocket"
+msgstr ""
+
+#: qcsrc/server/w_rocketlauncher.qc:506
+#, c-format
+msgid "%s almost dodged %s's rocket"
+msgstr ""
+
+#: qcsrc/server/w_rocketlauncher.qc:508
+#, c-format
+msgid "%s ate %s's rocket"
+msgstr ""
+
+#: qcsrc/server/w_seeker.qc:2
+msgid "T.A.G. Seeker"
+msgstr ""
+
+#: qcsrc/server/w_seeker.qc:659
+#, c-format
+msgid "%s was tagged by %s"
+msgstr ""
+
+#: qcsrc/server/w_shotgun.qc:2
+#, fuzzy
+msgid "Shotgun"
+msgstr "Lövések:"
+
+#: qcsrc/server/w_shotgun.qc:207
+#, c-format
+msgid "%2$s ^7slapped %1$s ^7around a bit with a large ^2shotgun"
+msgstr ""
+
+#: qcsrc/server/w_shotgun.qc:209
+#, c-format
+msgid "%s was gunned by %s"
+msgstr ""
+
+#: qcsrc/server/w_sniperrifle.qc:2
+msgid "Sniper Rifle"
+msgstr ""
+
+#: qcsrc/server/w_sniperrifle.qc:229
+#, c-format
+msgid "%s shot themself automatically"
+msgstr ""
+
+#: qcsrc/server/w_sniperrifle.qc:231
+#, c-format
+msgid "%s sniped themself somehow"
+msgstr ""
+
+#: qcsrc/server/w_sniperrifle.qc:238
+#, c-format
+msgid "%s failed to hide from %s's bullet hail"
+msgstr ""
+
+#: qcsrc/server/w_sniperrifle.qc:240
+#, c-format
+msgid "%s died in %s's bullet hail"
+msgstr ""
+
+#: qcsrc/server/w_sniperrifle.qc:247
+#, c-format
+msgid "%s failed to hide from %s's rifle"
+msgstr ""
+
+#: qcsrc/server/w_sniperrifle.qc:252
+#, c-format
+msgid "%s got hit in the head by %s"
+msgstr ""
+
+#: qcsrc/server/w_sniperrifle.qc:254 qcsrc/server/w_uzi.qc:321
+#, c-format
+msgid "%s was sniped by %s"
+msgstr ""
+
+#: qcsrc/server/w_tuba.qc:2
+#, fuzzy, c-format
+msgid "@!#%'n Tuba"
+msgstr "@!#%'n Tuba Dobás"
+
+#: qcsrc/server/w_tuba.qc:263
+#, c-format
+msgid "%s hurt his own ears with the @!#%%'n Tuba"
+msgstr ""
+
+#: qcsrc/server/w_tuba.qc:267
+#, c-format
+msgid "%s died of %s's great playing on the @!#%%'n Tuba"
+msgstr ""
+
+#: qcsrc/server/w_uzi.qc:2
+msgid "Machine Gun"
+msgstr ""
+
+#: qcsrc/server/w_uzi.qc:323
+#, c-format
+msgid "%s was riddled full of holes by %s"
+msgstr ""
+
+#~ 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 "Waypoint settings:"
+#~ msgstr "Útpont beállítások:"
+
+#~ msgid "%d/%d"
+#~ msgstr "%d/%d"
--- /dev/null
+# Xonotic Menu
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# 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.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 0.1preview\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-05-01 13:33+0200\n"
+"PO-Revision-Date: 2011-04-29 16:29+0100\n"
+"Last-Translator: Antonio 'terencehill' Piu <piuntn@gmail.com>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: \n"
+"X-Poedit-Language: Italian\n"
+
+#: qcsrc/menu/gamecommand.qc:47
+#, c-format
+msgid "error: status is %d\n"
+msgstr "errore: lo stato è impostato su %d\n"
+
+#: qcsrc/menu/gamecommand.qc:65
+msgid "Usage: menu_cmd command..., where possible commands are:\n"
+msgstr "Uso: menu_cmd command..., dove i possibili comandi sono:\n"
+
+#: qcsrc/menu/gamecommand.qc:66
+msgid " sync - reloads all cvars on the current menu page\n"
+msgstr " sync - ricarica tutte le cvar sulla corrente pagina\n"
+
+#: qcsrc/menu/gamecommand.qc:67
+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
+msgid "error creating curl handle\n"
+msgstr "error creating curl handle\n"
+
+#: qcsrc/menu/gamecommand.qc:239
+msgid "Invalid command. For a list of supported commands, try menu_cmd help.\n"
+msgstr ""
+"Comando non valido. Per una lista dei comandi supportati, prova menu_cmd "
+"help.\n"
+
+#: qcsrc/menu/item/gecko.c:49
+msgid "Browser not initialized!"
+msgstr "Browser non inizializzato!"
+
+#: qcsrc/menu/item/label.c:63
+#, c-format
+msgid "NOTE: label text %s too wide for label, condensed by factor %f\n"
+msgstr ""
+"NOTA: testo dell'etichetta %s troppo grande per l'etichetta, compresso di un "
+"fattore %f\n"
+
+#: qcsrc/menu/item/listbox.c:300
+#, c-format
+msgid "Item %d"
+msgstr "Oggetto %d"
+
+#: qcsrc/menu/item/slider.c:64
+#, c-format
+msgid "%d (%s)"
+msgstr "%d (%s)"
+
+#: qcsrc/menu/item/textslider.c:29 qcsrc/menu/item/textslider.c:31
+msgid "custom"
+msgstr "personalizzato"
+
+#: qcsrc/menu/menu.qc:29
+#, 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:66
+msgid "???"
+msgstr "???"
+
+#: qcsrc/menu/xonotic/campaign.c:285
+#, c-format
+msgid "Level %d: %s"
+msgstr "Livello %d: %s"
+
+#: qcsrc/menu/xonotic/cvarlist.c:85
+msgid "will be saved to config.cfg"
+msgstr "sarà salvato su config.cfg"
+
+#: qcsrc/menu/xonotic/cvarlist.c:87
+msgid "will not be saved"
+msgstr "non sarà salvato"
+
+#: qcsrc/menu/xonotic/cvarlist.c:89
+msgid "private"
+msgstr "privata"
+
+#: qcsrc/menu/xonotic/cvarlist.c:91
+msgid "engine setting"
+msgstr "impostazioni motore"
+
+#: qcsrc/menu/xonotic/cvarlist.c:93
+msgid "read only"
+msgstr "sola lettura"
+
+#: qcsrc/menu/xonotic/dialog_credits.c:5
+msgid "Credits"
+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:55
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:61
+#: qcsrc/menu/xonotic/dialog_singleplayer_winner.c:21
+msgid "OK"
+msgstr "OK"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:4
+msgid "Welcome"
+msgstr "Benvenuto"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:33
+msgid ""
+"Welcome to Xonotic, please select your language preference and enter your "
+"player name to get started. You can change these options later through the "
+"menu system."
+msgstr ""
+"Benvenuto in Xonotic, per favore selezione la tua lingua e inserisci il tuo "
+"nome come giocatore per iniziare. Puoi cambiare queste opzioni più tardi "
+"tramite il menu."
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:38
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:35
+msgid "Text language:"
+msgstr "Lingua testo:"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:47
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:40
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:39
+msgid "Name:"
+msgstr "Nome:"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:69
+msgid "Save settings"
+msgstr "Salva impostazioni"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:4
+msgid "Ammo Panel"
+msgstr "Pannello munizioni"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:22
+msgid "Ammunition display:"
+msgstr "Mostra munizioni:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:25
+msgid "Show only current ammo type"
+msgstr "Mostra solo il tipo corrente di munizioni"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:29
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:28
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:40
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:28
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:40
+msgid "Left"
+msgstr "Sinistra"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:30
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:30
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:41
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:30
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:41
+msgid "Right"
+msgstr "Destra"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:4
+msgid "Chat Panel"
+msgstr "Pannello Chat"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:22
+msgid "Chat entries:"
+msgstr "N° righe della chat:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:25
+msgid "Chat size:"
+msgstr "Dimensioni chat:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:29
+msgid "Chat lifetime:"
+msgstr "Durata chat:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:33
+msgid "Chat beep sound"
+msgstr "Suono della chat"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_engineinfo.c:4
+msgid "Engine Info Panel"
+msgstr "Pannello info motore"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_engineinfo.c:22
+msgid "Engine info:"
+msgstr "Info motore:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_engineinfo.c:25
+msgid "Use an averaging algorithm for fps"
+msgstr "Usa un algoritmo mediano per gli fps"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:4
+msgid "Health/Armor Panel"
+msgstr "Pannello vita/armatura"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:22
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:22
+msgid "Enable status bar"
+msgstr "Abilita barra di stato"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:24
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:24
+msgid "Status bar alignment:"
+msgstr "Allineamento barra di stato:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:32
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:42
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:32
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:42
+msgid "Inward"
+msgstr "Interno"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:34
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:43
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:34
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:43
+msgid "Outward"
+msgstr "Esterno"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:37
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:37
+msgid "Icon alignment:"
+msgstr "Allineamento icone:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:45
+msgid "Flip health and armor positions"
+msgstr "Inverti posizioni di vita e armatura"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_infomessages.c:4
+msgid "Info Messages Panel"
+msgstr "Pannello delle informazioni"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_infomessages.c:22
+msgid "Info messages:"
+msgstr "Informazioni"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_infomessages.c:25
+msgid "Flip align"
+msgstr "Inverti allineamento"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_modicons.c:4
+msgid "Mod Icons Panel"
+msgstr "Pannello delle icone delle Mod"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:4
+msgid "Notification Panel"
+msgstr "Pannello di notifica"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:22
+msgid "Notifications:"
+msgstr "Notifiche:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:25
+msgid "Also print notifications to the console"
+msgstr "Mostra anche le notifiche sulla console"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:28
+msgid "Flip notify order"
+msgstr "Inverti ordine delle notifiche"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:31
+msgid "Entry lifetime:"
+msgstr "Durata notifica:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:35
+msgid "Entry fadetime:"
+msgstr "Durata dissolvenza:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:4
+msgid "Powerups Panel"
+msgstr "Pannello dei Powerup"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:45
+msgid "Flip strength and shield positions"
+msgstr "Inverti posizioni di forza e scudo"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:4
+msgid "Pressed Keys Panel"
+msgstr "Pannello dei tasto premuti"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:21
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:21
+msgid "Panel disabled"
+msgstr "Pannello disabilitato"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:22
+msgid "Panel enabled when spectating"
+msgstr "Pannello abilitato in modalità spettatore"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:23
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:23
+msgid "Panel always enabled"
+msgstr "Pannello sempre abilitato"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:30
+msgid "Forced aspect:"
+msgstr "Forza aspetto:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_racetimer.c:4
+msgid "Race Timer Panel"
+msgstr "Pannello tempi Corsa"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:4
+msgid "Radar Panel"
+msgstr "Pannello Radar"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:22
+msgid "Panel enabled in teamgames"
+msgstr "Pannello abilitato nei teamgames"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:29
+msgid "Radar:"
+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:608
+msgid "Alpha:"
+msgstr "Opacità:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:36
+msgid "Rotation:"
+msgstr "Rotazione:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:38
+msgid "Forward"
+msgstr "Avanti"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:39
+msgid "West"
+msgstr "Ovest"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:40
+msgid "South"
+msgstr "Sud"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:41
+msgid "East"
+msgstr "Est"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:42
+msgid "North"
+msgstr "Nord"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:46
+msgid "Scale:"
+msgstr "Scala:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:50
+msgid "Zoom mode:"
+msgstr "Modalità zoom:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:52
+msgid "Zoomed in"
+msgstr "Ingrandito"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:53
+msgid "Zoomed out"
+msgstr "Non ingrandito"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:54
+msgid "Always zoomed"
+msgstr "Sempre ingrandito"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:55
+msgid "Never zoomed"
+msgstr "Mai ingrandito"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_score.c:4
+msgid "Score Panel"
+msgstr "Pannello punteggio"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_timer.c:4
+msgid "Timer Panel"
+msgstr "Pannello tempo"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_timer.c:22
+msgid "Timer:"
+msgstr "Tempo:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_timer.c:25
+msgid "Show elapsed time"
+msgstr "Mostra tempo trascorso"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_vote.c:4
+msgid "Vote Panel"
+msgstr "Pannello di voto"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_vote.c:22
+msgid "Alpha after voting:"
+msgstr "Opacità dopo aver votato:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:4
+msgid "Weapons Panel"
+msgstr "Pannello armi"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:24
+msgid "Fade out after:"
+msgstr "Dissolvi dopo:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:26
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:36
+msgid "Never"
+msgstr "Mai"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:28
+#, c-format
+msgid "%ds"
+msgstr "%ds"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:32
+msgid "Fade effect:"
+msgstr "Effetto dissolvenza:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:33
+msgid "EF^None"
+msgstr "EF^Nessuno"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:35
+msgid "Slide"
+msgstr "Slide"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:37
+msgid "Alpha"
+msgstr "Opacità"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:40
+msgid "Weapon icons:"
+msgstr "Icone armi:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:43
+msgid "Show weapon ID as:"
+msgstr "Mostra ID arma come:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:44
+msgid "SHOWAS^None"
+msgstr "SHOWAS^Nessuno"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:45
+msgid "Number"
+msgstr "Numero"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:46
+msgid "Bind"
+msgstr "Bind"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:49
+msgid "Show Accuracy"
+msgstr "Mostra precisione"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:50
+msgid "Show Ammo"
+msgstr "Mostra munizioni"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:53
+msgid "Ammo bar color:"
+msgstr "Colore barra munizioni:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:59
+msgid "Ammo bar alpha:"
+msgstr "Opacità barra munizioni:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:4
+msgid "Panel HUD Setup"
+msgstr "Setup del Panel HUD"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:21
+msgid "Panel background defaults:"
+msgstr "Sfondo del pannello predefinito:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:25
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:37
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:52
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:91 qcsrc/menu/xonotic/util.qc:586
+#: qcsrc/menu/xonotic/util.qc:602 qcsrc/menu/xonotic/util.qc:619
+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:591
+msgid "Color:"
+msgstr "Colore:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:35 qcsrc/menu/xonotic/util.qc:599
+msgid "Border size:"
+msgstr "Dimensioni del bordo:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:50
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:89
+msgid "Team color:"
+msgstr "Colore team:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:58 qcsrc/menu/xonotic/util.qc:625
+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:628
+msgid "Padding:"
+msgstr "Riempimento:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:68
+msgid "HUD Dock:"
+msgstr "Sfondo dell'HUD:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:70
+msgid "DOCK^Disabled"
+msgstr "DOCK^Disabilitato"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:71
+msgid "DOCK^Small"
+msgstr "DOCK^Piccolo"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:72
+msgid "DOCK^Medium"
+msgstr "DOCK^Medio"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:73
+msgid "DOCK^Large"
+msgstr "DOCK^Largo"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:96
+msgid "Grid settings:"
+msgstr "Impostazioni griglia:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:99
+msgid "Snap panels to grid"
+msgstr "Incolla i pannelli alla griglia"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:102
+msgid "Grid size:"
+msgstr "Dimensioni griglia:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:103
+msgid "X:"
+msgstr "X:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:109
+msgid "Y:"
+msgstr "Y:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:117
+msgid "Exit setup"
+msgstr "Esci dal setup"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:4
+msgid "Multiplayer"
+msgstr "Multiplayer"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:18
+msgid "Servers"
+msgstr "Server"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:19
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:5
+msgid "Create"
+msgstr "Crea"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:20
+msgid "Demos"
+msgstr "Demo"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:21
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:5
+msgid "Player Setup"
+msgstr "Setup giocatore"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:35
+msgid "Game type:"
+msgstr "Tipo di gioco:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:47
+msgid "Match settings:"
+msgstr "Impostazioni partita:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:50
+msgid "Time limit:"
+msgstr "Limite di tempo:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:54
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:62
+msgid "Use map specified default"
+msgstr "Usa le impostazioni di default della mappa"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:57
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:156
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:157
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:158
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:162
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:163
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:164
+msgid "Point limit:"
+msgstr "Limiti di punteggio:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:65
+msgid "Player slots:"
+msgstr "Posti per giocatori:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:68
+msgid "Number of bots:"
+msgstr "Numero di bot:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:72
+msgid "Bot skill:"
+msgstr "Abilità bot:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:75
+msgid "Botlike"
+msgstr "\"Come un bot\""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:76
+msgid "Beginner"
+msgstr "Principiante"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:77
+msgid "You will win"
+msgstr "Vincerai"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:78
+msgid "You can win"
+msgstr "Puoi vincere"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:79
+msgid "You might win"
+msgstr "Potresti vincere"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:80
+msgid "Advanced"
+msgstr "Avanzato"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:81
+msgid "Expert"
+msgstr "Esperto"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:82
+msgid "Pro"
+msgstr "Pro"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:83
+msgid "Assassin"
+msgstr "Assassino"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:84
+msgid "Unhuman"
+msgstr "Inumano"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:85
+msgid "Godlike"
+msgstr "\"Come un Dio\""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:89
+msgid "Mutators..."
+msgstr "Mutatori..."
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:98
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:84
+msgid "Advanced settings..."
+msgstr "Impostazioni avanzate..."
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:105
+msgid "Map list:"
+msgstr "Lista delle mappe:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:111
+msgid "Select all"
+msgstr "Seleziona tutto"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:114
+msgid "Select none"
+msgstr "Deseleziona tutto"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:120
+msgid "Start Multiplayer!"
+msgstr "Inizia Multiplayer!"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:155
+msgid "Capture limit:"
+msgstr "Limite catture:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:159
+msgid "Lives:"
+msgstr "Vite:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:160
+msgid "Laps:"
+msgstr "Giri:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:161
+msgid "Goals:"
+msgstr "Goal:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:165
+msgid "Frag limit:"
+msgstr "Limiti di frag:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:6
+msgid "Advanced server settings"
+msgstr "Impostazioni avanzate server"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:25
+msgid "Game settings:"
+msgstr "Impostazioni gioco:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:28
+msgid "Allow spectating"
+msgstr "Permetti spettatori"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:31
+msgid "Spawn shield:"
+msgstr "Protezione nascita:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:36
+msgid "Game speed:"
+msgstr "Velocità gioco:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:40
+msgid "Teamplay settings:"
+msgstr "Impostazioni Teamplay:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:43
+msgid "Friendly fire scale:"
+msgstr "Scala di fuoco amico:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:47
+msgid "Virtual friendly fire (effect only)"
+msgstr "Penalità virtuale (solo effetto)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:50
+msgid "Friendly fire penalty:"
+msgstr "Penalità fuoco amico:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:54
+msgid "Virtual penalty (effect only)"
+msgstr "Penalità virtuale (solo effetto)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:57
+msgid "Teams:"
+msgstr "Team:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:66
+msgid "Map voting:"
+msgstr "Voto della mappa:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:68
+msgid "No voting"
+msgstr "Nessun voto"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:69
+msgid "2 choices"
+msgstr "2 scelte"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:70
+msgid "3 choices"
+msgstr "3 scelte"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:71
+msgid "4 choices"
+msgstr "4 scelte"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:72
+msgid "5 choices"
+msgstr "5 scelte"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:73
+msgid "6 choices"
+msgstr "6 scelte"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:74
+msgid "7 choices"
+msgstr "7 scelte"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:75
+msgid "8 choices"
+msgstr "8 scelte"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:76
+msgid "9 choices"
+msgstr "9 scelte"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:79
+msgid "Simple majority wins vcall"
+msgstr "La semplice maggioranza vince il vcall"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:5
+msgid "Map Information"
+msgstr "Informazioni mappa"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:49
+msgid "Full item placement"
+msgstr "Posizionamento oggetti completo"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:49
+msgid "MinstaGib only"
+msgstr "Solo MinstaGib"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:78
+msgid "Title:"
+msgstr "Titolo:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:84
+msgid "Author:"
+msgstr "Autore:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:90
+msgid "Features:"
+msgstr "Caratteristiche:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:95
+msgid "Game types:"
+msgstr "Tipi di gioco:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:119
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:314
+msgid "Close"
+msgstr "Chiudi"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:122
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:46
+msgid "Play"
+msgstr "Gioca"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:7
+msgid "Mutators"
+msgstr "Mutatori"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:33
+msgid "All Weapons Arena"
+msgstr "Arena con tutte le armi"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:35
+msgid "Most Weapons Arena"
+msgstr "Arena con la maggior parte delle armi"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:56
+#, c-format
+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
+msgid "Dodging"
+msgstr "Dodging"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:70
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:250
+msgid "MinstaGib"
+msgstr "MinstaGib"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:72
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:253
+msgid "NIX"
+msgstr "NIX"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:74
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:205
+msgid "Rocket Flying"
+msgstr "Razzo volante"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:78
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:264
+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
+msgid "Low gravity"
+msgstr "Bassa gravità"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:82
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:170
+msgid "Cloaked"
+msgstr "Invisibile"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:84
+msgid "Hook"
+msgstr "Hook"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:86
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:173
+msgid "Midair"
+msgstr "A mezz'aria"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:88
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:176
+msgid "Vampire"
+msgstr "Vampiro"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:90
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:208
+msgid "Piñata"
+msgstr "Piñata"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:92
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:211
+msgid "Weapons stay"
+msgstr "Armi rimangono"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:94
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:180
+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
+msgid "Jet pack"
+msgstr "Jet pack"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:98
+msgid "MUT^None"
+msgstr "MUT^Nessuno"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:164
+msgid "Gameplay mutators:"
+msgstr "Mutatori di gioco:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:196
+msgid "Weapon & item mutators:"
+msgstr "Mutatori di armi ed oggetti:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:199
+msgid "Grappling hook"
+msgstr "Grappling hook"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:215
+msgid "Weapon arenas:"
+msgstr "Arene di armi:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:218
+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
+msgid "with laser"
+msgstr "con laser"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:247
+msgid "Special arenas:"
+msgstr "Arene speciali:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:260
+msgid "Most weapons"
+msgstr "Maggior parte delle armi"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:4
+msgid "Demo"
+msgstr "Demo"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:28
+msgid "Record demos while playing"
+msgstr "Registra demo durante le partite"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:32
+#: 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_join.c:29
+#: qcsrc/menu/xonotic/dialog_settings_input.c:41
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:24
+msgid "Clear"
+msgstr "Pulisci"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:43
+msgid "Timedemo"
+msgstr "Timedemo"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:4
+msgid "Join"
+msgstr "Entra"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:36
+msgid "SRVS^Empty"
+msgstr "SRVS^Vuoti"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:40
+msgid "SRVS^Full"
+msgstr "SRVS^Pieni"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:44
+msgid "Pause"
+msgstr "In pausa"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:56
+msgid "Address:"
+msgstr "Indirizzo:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:67
+msgid "Info..."
+msgstr "Info..."
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:72
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:317
+msgid "Join!"
+msgstr "Entra!"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:5
+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
+msgid "N/A"
+msgstr "N/A"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:158
+#, c-format
+msgid "%d/%d, %d free player slots"
+msgstr "%d/%d, %d slot liberi"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:172
+#, c-format
+msgid "%d modified settings"
+msgstr "%d impostazioni modificate"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:172
+msgid "Official settings"
+msgstr "Impostazioni ufficiali"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:197
+msgid "N/A (can't connect)"
+msgstr "N/A (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:207
+msgid "not supported (won't encrypt)"
+msgstr "non supportato (non criptato)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:211
+msgid "supported (will encrypt)"
+msgstr "supportato (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:217
+msgid "requested (will encrypt)"
+msgstr "richiesto (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:223
+msgid "required (can't connect)"
+msgstr "richiesto (impossibile connettersi)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:225
+msgid "required (will encrypt)"
+msgstr "richiesto (criptato)"
+
+#: 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:254
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:38
+msgid "Type:"
+msgstr "Tipo:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:259
+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
+msgid "Mod:"
+msgstr "Mod:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:284
+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:295
+msgid "CA:"
+msgstr "CA:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:301
+msgid "Key:"
+msgstr "Chiave:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:307
+msgid "Encryption:"
+msgstr "Crittografia:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:63
+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 vista:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:96
+msgid "Zoom factor:"
+msgstr "Moltiplicatore zoom:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:100
+msgid "Zoom speed:"
+msgstr "Velocità zoom:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:103
+msgid "Weapon settings..."
+msgstr "Impostazioni arma..."
+
+#: 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
+msgid "Crosshair size:"
+msgstr "Dimensioni mirino:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:134
+msgid "Crosshair alpha:"
+msgstr "Opacità mirino:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:138
+msgid "Crosshair color:"
+msgstr "Colore mirino:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:140
+msgid "By health"
+msgstr "In base alla vita"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:143
+msgid "Custom"
+msgstr "Personalizzato"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:148
+msgid "Enable center dot"
+msgstr "Abilita puntino al centro"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:151
+msgid "Size:"
+msgstr "Dimensioni:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:158
+msgid "Hit test:"
+msgstr "Test colpi:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:159
+msgid "HTST^None"
+msgstr "HTST^Nessuno"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:160
+msgid "TrueAim"
+msgstr "TrueAim"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:161
+msgid "Enemies"
+msgstr "Nemici"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:164
+msgid "Waypoints setup..."
+msgstr "Setup dei waypoint..."
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:169
+msgid "Enter HUD editor"
+msgstr "Apri HUD editor"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:174
+msgid "Force models:"
+msgstr "Forza modelli:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:175
+msgid "MDL^None"
+msgstr "MDL^Nessuno"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:176
+msgid "MDL^Custom"
+msgstr "MDL^Personalizzato"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:177
+msgid "MDL^All"
+msgstr "MDL^Tutti"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:180
+msgid "Disable gore effects"
+msgstr "Disabilita effetti sangue"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:182
+msgid "Gibs:"
+msgstr "Gib:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:184
+msgid "GIBS^None"
+msgstr "GIBS^Nessuno"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:185
+msgid "GIBS^Few"
+msgstr "GIBS^Pochi"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:186
+msgid "GIBS^Many"
+msgstr "GIBS^Molti"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:187
+msgid "GIBS^Lots"
+msgstr "GIBS^Parecchi"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:191
+msgid "Damage splash:"
+msgstr "Schizzo del danno:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:195
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:178
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:194
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:30
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:41
+#: qcsrc/menu/xonotic/dialog_settings_video.c:105
+msgid "Apply immediately"
+msgstr "Applica immediatamente"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:5
+msgid "Waypoints"
+msgstr "Waypoint"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:23
+msgid "Show base waypoints"
+msgstr "Mostra i waypoint della base"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:25
+msgid "Waypoint scale:"
+msgstr "Grandezza dei waypoint:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:29
+msgid "Waypoint alpha:"
+msgstr "Opacità dei waypoint"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:34
+msgid "Show names:"
+msgstr "Mostra nomi:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:37
+msgid "Teammates"
+msgstr "Compagni del team"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:38
+msgid "All players"
+msgstr "Tutti i giocatori"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:6
+msgid "Weapon settings"
+msgstr "Impostazioni arma"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:29
+msgid "Weapon priority list:"
+msgstr "Lista priorità armi:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:34
+msgid "Up"
+msgstr "Su"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:37
+msgid "Down"
+msgstr "Giù"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:41
+msgid "Use priority list for weapon cycling"
+msgstr "Usa la lista di priorità per ciclare le armi"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:43
+msgid "Auto switch weapons on pickup"
+msgstr "Cambia automaticamente armi dopo raccolta"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:45
+msgid "Draw 1st person weapon model"
+msgstr "Mostra modello arma in 1ª persona"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:48
+msgid "Left align"
+msgstr "Allinea a sinistra"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:50
+msgid "Right align"
+msgstr "Allinea a destra"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:53
+msgid "Flip view horizontally"
+msgstr "Capovolgi la vista orizzontalmente"
+
+#: qcsrc/menu/xonotic/dialog_news.c:4
+msgid "News"
+msgstr "Notizie"
+
+#: qcsrc/menu/xonotic/dialog_news.c:18
+msgid "http://www.xonotic.org/team/blog/"
+msgstr "http://www.xonotic.org/team/blog/"
+
+#: qcsrc/menu/xonotic/dialog_quit.c:4
+msgid "Quit"
+msgstr "Esci"
+
+#: qcsrc/menu/xonotic/dialog_quit.c:17
+msgid "Are you sure you want to quit?"
+msgstr "Sei sicuro di voler uscire?"
+
+#: qcsrc/menu/xonotic/dialog_quit.c:20
+msgid "Yes"
+msgstr "Si"
+
+#: qcsrc/menu/xonotic/dialog_quit.c:21
+msgid "No"
+msgstr "No"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:4
+msgid "Settings"
+msgstr "Impostazioni"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:18
+#: qcsrc/menu/xonotic/dialog_settings_input.c:4
+msgid "Input"
+msgstr "Comandi"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:19
+#: qcsrc/menu/xonotic/dialog_settings_video.c:4
+msgid "Video"
+msgstr "Video"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:20
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:4
+msgid "Effects"
+msgstr "Effetti"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:21
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:4
+msgid "Audio"
+msgstr "Audio"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:22
+#: qcsrc/menu/xonotic/dialog_settings_network.c:4
+msgid "Network"
+msgstr "Rete"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:23
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:4
+msgid "Misc"
+msgstr "Altro"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:27
+msgid "Master:"
+msgstr "Master:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:33
+msgid "Music:"
+msgstr "Musica:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:40
+msgid "VOL^Ambient:"
+msgstr "VOL^Ambiente:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:48
+msgid "Info:"
+msgstr "Info:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:57
+msgid "Items:"
+msgstr "Oggetti:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:65
+msgid "Pain:"
+msgstr "Dolore:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:73
+msgid "Player:"
+msgstr "Giocatore:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:81
+msgid "Shots:"
+msgstr "Spari:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:88
+msgid "Voice:"
+msgstr "Voce:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:96
+msgid "Weapons:"
+msgstr "Armi:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:103
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:161
+msgid "Frequency:"
+msgstr "Frequenza:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:105
+msgid "8 kHz"
+msgstr "8 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:106
+msgid "11.025 kHz"
+msgstr "11.025 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:107
+msgid "16 kHz"
+msgstr "16 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:108
+msgid "22.05 kHz"
+msgstr "22.05 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:109
+msgid "24 kHz"
+msgstr "24 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:110
+msgid "32 kHz"
+msgstr "32 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:111
+msgid "44.1 kHz"
+msgstr "44.1 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:112
+msgid "48 kHz"
+msgstr "48 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:115
+msgid "Channels:"
+msgstr "Canali:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:117
+msgid "Mono"
+msgstr "Mono"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:118
+msgid "Stereo"
+msgstr "Stereo"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:119
+msgid "2.1"
+msgstr "2.1"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:120
+msgid "4"
+msgstr "4"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:121
+msgid "5"
+msgstr "5"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:122
+msgid "5.1"
+msgstr "5.1"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:123
+msgid "6.1"
+msgstr "6.1"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:124
+msgid "7.1"
+msgstr "7.1"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:128
+msgid "Swap Stereo"
+msgstr "Scambia canali stereo"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:132
+msgid "Headphone friendly mode"
+msgstr "Modalità cuffie"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:136
+msgid "Spatial voices:"
+msgstr "Voci spaziali:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:137
+msgid "VOCS^None"
+msgstr "VOCS^Nessuna"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:138
+msgid "VOCS^Taunts"
+msgstr "VOCS^Insulti"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:139
+msgid "VOCS^All"
+msgstr "VOCS^Tutte"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:142
+msgid "Taunt range:"
+msgstr "Range di insulti:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:145
+msgid "RNG^Very short"
+msgstr "RNG^Molto ristretto"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:146
+msgid "RNG^Short"
+msgstr "RNG^Ristretto"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:147
+msgid "RNG^Normal"
+msgstr "RNG^Normale"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:148
+msgid "RNG^Long"
+msgstr "RNG^Lungo"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:149
+msgid "RNG^Full"
+msgstr "RNG^Pieno"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:156
+msgid "Automatic taunts"
+msgstr "Insulti automatici"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:165
+msgid "Time warning:"
+msgstr "Avvertimento di tempo:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:167
+msgid "WRN^None"
+msgstr "WRN^Nessuno"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:168
+msgid "1 minute"
+msgstr "1 minuto"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:169
+msgid "5 minutes"
+msgstr "5 minuti"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:170
+msgid "WRN^Both"
+msgstr "WNR^Entrambi"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:173
+msgid "Hit indicator"
+msgstr "Indicatore di colpo"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:175
+msgid "Menu sounds"
+msgstr "Suoni del menu"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:38
+msgid "Quality preset:"
+msgstr "Preset qualità:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:41
+msgid "PRE^OMG!"
+msgstr "PRE^Oh mio dio!"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:42
+msgid "PRE^Low"
+msgstr "PRE^Bassa"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:43
+msgid "PRE^Medium"
+msgstr "PRE^Media"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:44
+msgid "PRE^Normal"
+msgstr "PRE^Normale"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:45
+msgid "PRE^High"
+msgstr "PRE^Alta"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:46
+msgid "PRE^Ultra"
+msgstr "PRE^Ultra"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:48
+msgid "PRE^Ultimate"
+msgstr "PRE^Massima"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:52
+msgid "Geometry detail:"
+msgstr "Dettagli geometrici:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:54
+msgid "DET^Lowest"
+msgstr "DET^Molto bassi"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:55
+msgid "DET^Low"
+msgstr "DET^Bassi"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:56
+msgid "DET^Normal"
+msgstr "DET^Normali"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:57
+msgid "DET^Good"
+msgstr "DET^Buoni"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:58
+msgid "DET^Best"
+msgstr "DET^Ottimi"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:59
+msgid "DET^Insane"
+msgstr "DET^Bestiali"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:62
+msgid "Antialiasing:"
+msgstr "Antialiasing:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:64
+msgid "AA^Disabled"
+msgstr "AA^Disabilitato"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:65
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:103
+msgid "2x"
+msgstr "2x"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:66
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:104
+msgid "4x"
+msgstr "4x"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:70
+msgid "Texture resolution:"
+msgstr "Risoluzione texture:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:73
+msgid "RES^Leet"
+msgstr "RES^Leet"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:74
+msgid "RES^Lowest"
+msgstr "RES^Molto bassa"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:75
+msgid "RES^Low"
+msgstr "RES^Bassa"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:76
+msgid "RES^Normal"
+msgstr "RES^Normale"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:77
+msgid "RES^Good"
+msgstr "RES^Buona"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:78
+msgid "RES^Best"
+msgstr "RES^Ottima"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:91
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:94
+msgid "Avoid lossy texture compression"
+msgstr "Evita compressione texture con perdita"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:100
+msgid "Anisotropy:"
+msgstr "Anisotropia:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:102
+msgid "ANISO^Disabled"
+msgstr "ANISO^Disabilitato"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:105
+msgid "8x"
+msgstr "8x"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:106
+msgid "16x"
+msgstr "16x"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:110
+msgid "Particle quality:"
+msgstr "Qualità dei particolari:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:113
+msgid "Particle distance:"
+msgstr "Distanza dei particolari:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:117
+msgid "Decals"
+msgstr "Segni"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:120
+msgid "Distance:"
+msgstr "Distanza:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:126
+msgid "Time:"
+msgstr "Tempo:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:132
+msgid "Use lightmaps"
+msgstr "Usa lightmaps"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:133
+msgid "Deluxe mapping"
+msgstr "Mappaggio Deluxe"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:135
+msgid "Gloss"
+msgstr "Lucentezza"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:138
+msgid "Offset mapping"
+msgstr "Mappaggio in offset"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:140
+msgid "Relief mapping"
+msgstr "Mappaggio in rilievo"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:143
+msgid "Reflections:"
+msgstr "Riflessioni:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:146
+msgid "Blurred"
+msgstr "Sfocate"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:147
+msgid "REFL^Good"
+msgstr "REFL^Buone"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:148
+msgid "Sharp"
+msgstr "Nitide"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:153
+msgid "Show surfaces"
+msgstr "Mostra superfici"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:155
+msgid "No dynamic lighting"
+msgstr "Nessuna illuminazione dinamica"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:157
+msgid "Flash blend approximation"
+msgstr "Approssimazione Flash blend"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:159
+msgid "Realtime dynamic lighting"
+msgstr "Illuminazione dinamica in tempo reale"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:160
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:164
+msgid "Shadows"
+msgstr "Ombre"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:163
+msgid "Realtime world lighting"
+msgstr "Illuminazione globale in tempo reale"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:168
+msgid "Use normal maps"
+msgstr "Usa mappe normali"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:170
+msgid "Soft shadows"
+msgstr "Ombre morbide"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:173
+msgid "Coronas"
+msgstr "Corone"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:174
+msgid "Use Occlusion Queries"
+msgstr "Usa le Occlusion Queries"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:176
+msgid "Bloom"
+msgstr "Bloom"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:178
+msgid "High Dynamic Range (HDR)"
+msgstr "High Dynamic Range (HDR)"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:182
+msgid "Motion blur:"
+msgstr "Sfocatura da movimento:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:188
+msgid "Damage blur:"
+msgstr "Sfocatura da danno:"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:26
+msgid "Key bindings:"
+msgstr "Associazione tasti (bind):"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:31
+msgid "Change key..."
+msgstr "Cambia tasto..."
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:35
+msgid "Edit..."
+msgstr "Modifica..."
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:46
+msgid "Sensitivity:"
+msgstr "Sensibilità:"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:49
+msgid "UI mouse speed:"
+msgstr "Velocità UI mouse:"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:52
+msgid "Mouse filter"
+msgstr "Filtro mouse"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:54
+msgid "Invert mouse"
+msgstr "Inverti mouse"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:57
+#: qcsrc/menu/xonotic/dialog_settings_input.c:59
+msgid "Use joystick input"
+msgstr "Usa joystick"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:62
+#: qcsrc/menu/xonotic/dialog_settings_input.c:64
+msgid "Turn off OS mouse acceleration"
+msgstr "Disattiva l'accelerazione mouse dell'OS"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:66
+msgid "\"enter console\" also closes"
+msgstr "\"apri console\" chiude anche"
+
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:5
+msgid "User defined key bind"
+msgstr "Tasti \"bind\" definiti dall'utente"
+
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:42
+msgid "Command when pressed:"
+msgstr "Comando quando premuto:"
+
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:45
+msgid "Command when released:"
+msgstr "Comando quando rilasciato:"
+
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:48
+msgid "Save"
+msgstr "Salva"
+
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:51
+msgid "Cancel"
+msgstr "Annulla"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:26
+msgid "Menu skins:"
+msgstr "Temi del menu:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:47
+msgid "Show current time"
+msgstr "Mostra orario corrente"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:49
+msgid "Show current date"
+msgstr "Mostra data corrente"
+
+#: 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:53
+msgid "Speedometer"
+msgstr "Tachimetro"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:56
+msgid "qu/s (hidden)"
+msgstr "qu/s (nascosto)"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:58
+msgid "qu/s"
+msgstr "qu/s"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:60
+msgid "m/s"
+msgstr "m/s"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:64
+msgid "km/h"
+msgstr "km/h"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:66
+msgid "mph"
+msgstr "mph"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:68
+msgid "knots"
+msgstr "nodi"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:71
+msgid "Show accelerometer"
+msgstr "Mostra accelerometro"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:74
+msgid "Accelerometer scale:"
+msgstr "Scala accelerometro:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:80
+msgid "Minimize input latency"
+msgstr "Minimizza latenza in entrata"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:5
+msgid "Advanced settings"
+msgstr "Impostazioni avanzate"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:23
+msgid "Cvar filter:"
+msgstr "Filtro delle cvar:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:34
+msgid "Setting:"
+msgstr "Impostazioni:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:42
+msgid "Value:"
+msgstr "Valore:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:56
+msgid "Description:"
+msgstr "Descrizione:"
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:26
+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_network.c:33
+msgid "Network speed:"
+msgstr "Velocità rete:"
+
+#: 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 veloce"
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:39
+msgid "Broadband"
+msgstr "Banda larga"
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:42
+msgid "Input packets/s:"
+msgstr "Pacchetti/sec in entrata:"
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:46
+msgid "HTTP downloads:"
+msgstr "Download via HTTP:"
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:49
+msgid "Downloads:"
+msgstr "N° di download:"
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:53
+msgid "Speed (kB/s):"
+msgstr "Velocità (kB/s):"
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:57
+msgid "Client UDP port:"
+msgstr "Porta UDP del client:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:26
+msgid "Resolution:"
+msgstr "Risoluzione:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:29
+msgid "Font/UI size:"
+msgstr "Dimensioni caratteri:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:31
+msgid "SZ^Unreadable"
+msgstr "SZ^Illeggibile"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:32
+msgid "SZ^Tiny"
+msgstr "SZ^Minuscolo"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:33
+msgid "SZ^Little"
+msgstr "SZ^Molto piccolo"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:34
+msgid "SZ^Small"
+msgstr "SZ^Piccolo"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:35
+msgid "SZ^Medium"
+msgstr "SZ^Medio"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:36
+msgid "SZ^Large"
+msgstr "SZ^Largo"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:37
+msgid "SZ^Huge"
+msgstr "SZ^Enorme"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:38
+msgid "SZ^Gigantic"
+msgstr "SZ^Gigante"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:39
+msgid "SZ^Colossal"
+msgstr "SZ^Colossale"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:42
+msgid "Color depth:"
+msgstr "Profondità colore:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:45
+msgid "Full screen"
+msgstr "Schermo intero"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:46
+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:52
+msgid "Use GLSL to handle color control"
+msgstr "Usa GLSL per gestire il controllo del colore"
+
+#: 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:59
+msgid "VBO^Off"
+msgstr "VBO^Off"
+
+#: 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:63
+msgid "Vertices"
+msgstr "Vertici"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:64
+msgid "Vertices and Triangles"
+msgstr "Vertici e Triangoli"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:67
+msgid "Depth first:"
+msgstr "Profondità prima:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:69
+msgid "DF^Disabled"
+msgstr "DF^Disabilitata"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:70
+msgid "DF^World"
+msgstr "DF^Globale"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:71
+msgid "DF^All"
+msgstr "DF^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: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:80
+msgid "Brightness:"
+msgstr "Luminosità:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:83
+msgid "Contrast:"
+msgstr "Contrasto:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:86
+msgid "Gamma:"
+msgstr "Gamma:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:89
+msgid "Contrast boost:"
+msgstr "Aumenta contrasto:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:92
+msgid "Saturation:"
+msgstr "Saturazione:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:98
+msgid "LIT^Ambient:"
+msgstr "LIT^Ambiente:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:101
+msgid "Intensity:"
+msgstr "Intensità:"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:4
+msgid "Singleplayer"
+msgstr "Giocatore singolo"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:59
+msgid "Instant action! (random map with bots)"
+msgstr "Inizia ora! (mappa casuale con bot)"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:80
+msgid "Start Singleplayer!"
+msgstr "Inizia modalità Giocatore Singolo!"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer_winner.c:4
+msgid "Winner"
+msgstr "Vincitore"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:5
+msgid "Team Selection"
+msgstr "Selezione team"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:41
+msgid "join 'best' team (auto-select)"
+msgstr "entra nel 'miglior' team (auto-selezione)"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:45
+msgid "red"
+msgstr "rosso"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:46
+msgid "blue"
+msgstr "blu"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:47
+msgid "yellow"
+msgstr "giallo"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:48
+msgid "pink"
+msgstr "rosa"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:51
+msgid "spectate"
+msgstr "spettatore"
+
+#: qcsrc/menu/xonotic/mainwindow.c:35 qcsrc/menu/xonotic/mainwindow.c:38
+msgid "Do not press this button again!"
+msgstr "Non premere questo tasto di nuovo!"
+
+#: qcsrc/menu/xonotic/maplist.c:278
+msgid ""
+"Huh? Can't play this (m is NULL). Refiltering so this won't happen again.\n"
+msgstr ""
+"Huh? Can't play this (m is NULL). Refiltering so this won't happen again.\n"
+
+#: qcsrc/menu/xonotic/maplist.c:286
+#, c-format
+msgid "%s's Xonotic Server"
+msgstr "Server Xonotic di %s"
+
+#: qcsrc/menu/xonotic/maplist.c:291
+msgid ""
+"Huh? Can't play this (invalid game type). Refiltering so this won't happen "
+"again.\n"
+msgstr ""
+"Huh? Can't play this (invalid game type). Refiltering so this won't happen "
+"again.\n"
+
+#: qcsrc/menu/xonotic/playermodel.c:174
+msgid "<no model found>"
+msgstr "<nessun modello trovato>"
+
+#: qcsrc/menu/xonotic/serverlist.c:185
+msgid "Remove"
+msgstr "Rimuovi"
+
+#: qcsrc/menu/xonotic/serverlist.c:187
+msgid "Bookmark"
+msgstr "Aggiungi tra i preferiti"
+
+#: qcsrc/menu/xonotic/serverlist.c:523
+msgid "Ping"
+msgstr "Ping"
+
+#: qcsrc/menu/xonotic/serverlist.c:524
+msgid "Host name"
+msgstr "Nome dell'host"
+
+#: qcsrc/menu/xonotic/serverlist.c:525
+msgid "Map"
+msgstr "Mappa"
+
+#: qcsrc/menu/xonotic/serverlist.c:526
+msgid "Type"
+msgstr "Tipo"
+
+#: qcsrc/menu/xonotic/serverlist.c:527
+msgid "Players"
+msgstr "Giocatori"
+
+#: qcsrc/menu/xonotic/skinlist.c:105
+msgid "<TITLE>"
+msgstr "<TITOLO>"
+
+#: qcsrc/menu/xonotic/skinlist.c:106
+msgid "<AUTHOR>"
+msgstr "<AUTORE>"
+
+#: qcsrc/menu/xonotic/skinlist.c:163
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: qcsrc/menu/xonotic/slider_decibels.c:50
+msgid "VOL^OFF"
+msgstr "VOL^OFF"
+
+#: qcsrc/menu/xonotic/slider_decibels.c:52
+msgid "VOL^MAX"
+msgstr "VOL^MAX"
+
+#: qcsrc/menu/xonotic/slider_decibels.c:53
+#, c-format
+msgid "%s dB"
+msgstr "%s dB"
+
+#: qcsrc/menu/xonotic/slider_resolution.c:65
+#, c-format
+msgid "%dx%d"
+msgstr "%dx%d"
+
+#: qcsrc/menu/xonotic/util.qc:270
+#, c-format
+msgid "Received HTTP request data for an invalid id %d.\n"
+msgstr "Ricevuta richiesta HTTP per un invalido id %d.\n"
+
+#: qcsrc/menu/xonotic/util.qc:285
+#, c-format
+msgid "error receiving update notification: status is %d\n"
+msgstr ""
+"errore durante la notifica d'aggiornamento: lo stato è impostato su %d\n"
+
+#: qcsrc/menu/xonotic/util.qc:290
+msgid "error: received HTML instead of an update notification\n"
+msgstr "errore: ricevuto HTML invece di una notifica d'aggiornamento\n"
+
+#: qcsrc/menu/xonotic/util.qc:295
+msgid "error: received carriage returns from update notification server\n"
+msgstr "error: received carriage returns from update notification server\n"
+
+#: qcsrc/menu/xonotic/util.qc:316
+#, c-format
+msgid ""
+"Update can be downloaded at:\n"
+"%s\n"
+msgstr ""
+"L'aggiornamento può essere scaricato da:\n"
+"%s\n"
+
+#: qcsrc/menu/xonotic/util.qc:337
+msgid "Autogenerating mapinfo for newly added maps..."
+msgstr "Autogenerando le mapinfo per le nuove mappe..."
+
+#: qcsrc/menu/xonotic/util.qc:367
+#, c-format
+msgid "^1%s TEST BUILD"
+msgstr "^1%s TEST BUILD"
+
+#: qcsrc/menu/xonotic/util.qc:432
+#, c-format
+msgid "Update to %s now!"
+msgstr "Aggiorna a %s ora!"
+
+#: qcsrc/menu/xonotic/util.qc:509
+msgid ""
+"^1ERROR: Texture compression is required but not supported.\n"
+"^1Expect visual problems.\n"
+msgstr ""
+"^1ERRORE: La compressione texture è richiesta ma non supportata.\n"
+"^1Previsti problemi visuali.\n"
+
+#: qcsrc/menu/xonotic/util.qc:531
+msgid "Arena"
+msgstr "Arena"
+
+#: qcsrc/menu/xonotic/util.qc:532
+msgid "Assault"
+msgstr "Assalto"
+
+#: qcsrc/menu/xonotic/util.qc:533
+msgid "Capture The Flag"
+msgstr "Capture The Flag"
+
+#: qcsrc/menu/xonotic/util.qc:534
+msgid "Clan Arena"
+msgstr "Clan Arena"
+
+#: qcsrc/menu/xonotic/util.qc:535
+msgid "Deathmatch"
+msgstr "Deathmatch"
+
+#: qcsrc/menu/xonotic/util.qc:536
+msgid "Domination"
+msgstr "Dominazione"
+
+#: qcsrc/menu/xonotic/util.qc:537
+msgid "Freeze Tag"
+msgstr "Freeze Tag"
+
+#: qcsrc/menu/xonotic/util.qc:538
+msgid "Keepaway"
+msgstr "Keepaway"
+
+#: qcsrc/menu/xonotic/util.qc:539
+msgid "Key Hunt"
+msgstr "Key Hunt"
+
+#: qcsrc/menu/xonotic/util.qc:540
+msgid "Last Man Standing"
+msgstr "Last Man Standing"
+
+#: qcsrc/menu/xonotic/util.qc:541
+msgid "Nexball"
+msgstr "Nexball"
+
+#: qcsrc/menu/xonotic/util.qc:542
+msgid "Onslaught"
+msgstr "Onslaught"
+
+#: qcsrc/menu/xonotic/util.qc:543
+msgid "Race"
+msgstr "Corsa"
+
+#: qcsrc/menu/xonotic/util.qc:544
+msgid "Race CTS"
+msgstr "Corsa CTS"
+
+#: qcsrc/menu/xonotic/util.qc:545
+msgid "Runematch"
+msgstr "Runematch"
+
+#: qcsrc/menu/xonotic/util.qc:546
+msgid "Team Deathmatch"
+msgstr "Team Deathmatch"
+
+#: qcsrc/menu/xonotic/util.qc:565
+#, c-format
+msgid "@!#%'n Tuba Throwing"
+msgstr "@!#%'n Tuba Throwing"
+
+#: qcsrc/menu/xonotic/util.qc:583
+msgid "Background:"
+msgstr "Sfondo:"
+
+#: qcsrc/menu/xonotic/util.qc:585 qcsrc/menu/xonotic/util.qc:601
+#: qcsrc/menu/xonotic/util.qc:610 qcsrc/menu/xonotic/util.qc:618
+#: qcsrc/menu/xonotic/util.qc:630
+msgid "Default"
+msgstr "Predefinito"
+
+#: qcsrc/menu/xonotic/util.qc:596
+msgid "Use default"
+msgstr "Usa predefinito"
+
+#: qcsrc/menu/xonotic/util.qc:616
+msgid "Team Color:"
+msgstr "Colore Team:"
+
+#: qcsrc/menu/xonotic/util.qh:49
+msgid "Enable panel"
+msgstr "Abilita pannello"
+
+#: qcsrc/server/w_crylink.qc:2
+msgid "Crylink"
+msgstr "Crylink"
+
+#: qcsrc/server/w_crylink.qc:664
+#, c-format
+msgid "%s succeeded at self-destructing themself with the Crylink"
+msgstr "%s è riuscito ad autodistrugersi col Crylink"
+
+#: qcsrc/server/w_crylink.qc:669
+#, c-format
+msgid "%s could not hide from %s's Crylink"
+msgstr "%s non s'è potuto nascondere dal Crylink di %s"
+
+#: qcsrc/server/w_crylink.qc:671
+#, c-format
+msgid "%s was too close to %s's Crylink"
+msgstr "%s era troppo vicino al Crylink di %s"
+
+#: qcsrc/server/w_crylink.qc:673
+#, c-format
+msgid "%s took a close look at %s's Crylink"
+msgstr "%s ha visto da vicino il Crylink di %s"
+
+#: qcsrc/server/w_electro.qc:2
+msgid "Electro"
+msgstr "Electro"
+
+#: qcsrc/server/w_electro.qc:571
+#, c-format
+msgid "%s could not remember where they put plasma"
+msgstr "%s non s'è ricordato dove aveva messo il plasma"
+
+#: qcsrc/server/w_electro.qc:573
+#, c-format
+msgid "%s played with plasma"
+msgstr "%s ha giocato col plasma"
+
+#: qcsrc/server/w_electro.qc:580
+#, c-format
+msgid "%s just noticed %s's blue ball"
+msgstr "%s ha appena notato la palla blu di %s"
+
+#: qcsrc/server/w_electro.qc:582
+#, c-format
+msgid "%s got in touch with %s's blue ball"
+msgstr "%s è entrato in contatto con la palla blu di %s"
+
+#: qcsrc/server/w_electro.qc:587
+#, c-format
+msgid "%s felt the electrifying air of %s's combo"
+msgstr "%s ha sentito l'aria elettrificata della combo di %s"
+
+#: qcsrc/server/w_electro.qc:589
+#, c-format
+msgid "%s got too close to %s's blue beam"
+msgstr "%s s'è avvicinato troppo al raggio blu di %s"
+
+#: qcsrc/server/w_electro.qc:591
+#, c-format
+msgid "%s was blasted by %s's blue beam"
+msgstr "%s è stato fatto saltare in aria dal raggio blu di %s"
+
+#: qcsrc/server/w_fireball.qc:2
+msgid "Fireball"
+msgstr "Fireball"
+
+#: qcsrc/server/w_fireball.qc:417
+#, c-format
+msgid "%s forgot about some firemine"
+msgstr "%s s'è dimenticato di alcune mine infuocate"
+
+#: qcsrc/server/w_fireball.qc:419 qcsrc/server/w_hlac.qc:240
+#, c-format
+msgid "%s should have used a smaller gun"
+msgstr "%s avrebbe dovuto usare un'arma più piccola"
+
+#: qcsrc/server/w_fireball.qc:426
+#, c-format
+msgid "%s tried to catch %s's firemine"
+msgstr "%s ha provato a catturare la mina infuocata di %s"
+
+#: qcsrc/server/w_fireball.qc:428
+#, c-format
+msgid "%s fatefully ignored %s's firemine"
+msgstr "%s ha fatalmente ignorato la mina infuocata di %s"
+
+#: qcsrc/server/w_fireball.qc:435
+#, c-format
+msgid "%s could not hide from %s's fireball"
+msgstr "%s non è riuscito a nascondersi dalla fireball di %s"
+
+#: qcsrc/server/w_fireball.qc:437
+#, c-format
+msgid "%s saw the pretty lights of %s's fireball"
+msgstr "%s ha visto le belle luci della fireball di %s"
+
+#: qcsrc/server/w_fireball.qc:440
+#, c-format
+msgid "%s got too close to %s's fireball"
+msgstr "%s s'è avvicinato troppo alla fireball di %s"
+
+#: qcsrc/server/w_fireball.qc:442
+#, c-format
+msgid "%s tasted %s's fireball"
+msgstr "%s ha assaggiato la fireball di %s"
+
+#: qcsrc/server/w_grenadelauncher.qc:2
+msgid "Mortar"
+msgstr "Mortar"
+
+#: qcsrc/server/w_grenadelauncher.qc:378
+#, c-format
+msgid "%s tried out his own grenade"
+msgstr "%s ha provato da solo la propria granata"
+
+#: qcsrc/server/w_grenadelauncher.qc:380
+#, c-format
+msgid "%s detonated"
+msgstr "%s è detonato"
+
+#: qcsrc/server/w_grenadelauncher.qc:386
+#, c-format
+msgid "%s didn't see %s's grenade"
+msgstr "%s non ha visto la granata di %s"
+
+#: qcsrc/server/w_grenadelauncher.qc:388
+#, c-format
+msgid "%s almost dodged %s's grenade"
+msgstr "%s ha quasi schivato la granata di %s"
+
+#: qcsrc/server/w_grenadelauncher.qc:390
+#, c-format
+msgid "%s ate %s's grenade"
+msgstr "%s ha mangiato la granata di %s"
+
+#: qcsrc/server/w_hagar.qc:2
+msgid "Hagar"
+msgstr "Hagar"
+
+#: qcsrc/server/w_hagar.qc:209 qcsrc/server/w_seeker.qc:655
+#, c-format
+msgid "%s played with tiny rockets"
+msgstr "%s ha giocato con piccoli razzi"
+
+#: qcsrc/server/w_hagar.qc:213
+#, c-format
+msgid "%s hoped %s's missiles wouldn't bounce"
+msgstr "%s ha sperato che il missile di %s non rimbalzasse"
+
+#: qcsrc/server/w_hagar.qc:215 qcsrc/server/w_seeker.qc:661
+#, c-format
+msgid "%s was pummeled by %s"
+msgstr "%s è stato preso a pugni da %s"
+
+#: qcsrc/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 "%s è stato abbattuto da %s"
+
+#: qcsrc/server/w_hook.qc:2
+msgid "Grappling Hook"
+msgstr "Grappling Hook"
+
+#: qcsrc/server/w_hook.qc:266 qcsrc/server/w_minstanex.qc:290
+#: qcsrc/server/w_nex.qc:267 qcsrc/server/w_porto.qc:296
+#: qcsrc/server/w_shotgun.qc:203 qcsrc/server/w_uzi.qc:317
+#, c-format
+msgid "%s did the impossible"
+msgstr "%s ha fatto l'impossibile"
+
+#: qcsrc/server/w_hook.qc:268
+#, c-format
+msgid "%s has run into %s's gravity bomb"
+msgstr "%s è corso nella bomba di gravità di %s"
+
+#: qcsrc/server/w_laser.qc:2
+msgid "Laser"
+msgstr "Laser"
+
+#: qcsrc/server/w_laser.qc:305
+#, c-format
+msgid "%s lasered themself to hell"
+msgstr "%s si è \"laserato\" all'inferno"
+
+#: qcsrc/server/w_laser.qc:309
+#, c-format
+msgid "%s was cut in half by %s's gauntlet"
+msgstr "%s è stato tagliato a metà dal guanto di %s"
+
+#: qcsrc/server/w_laser.qc:311
+#, c-format
+msgid "%s was lasered to death by %s"
+msgstr "%s è stato \"laserato\" alla morte da %s"
+
+#: qcsrc/server/w_minelayer.qc:2
+msgid "Mine Layer"
+msgstr "Mine Layer"
+
+#: qcsrc/server/w_minelayer.qc:495 qcsrc/server/w_rocketlauncher.qc:500
+#, c-format
+msgid "%s exploded"
+msgstr "%s è esploso"
+
+#: qcsrc/server/w_minelayer.qc:499
+#, c-format
+msgid "%s got too close to %s's mine"
+msgstr "%s s'è avvicinato troppo alla mina di %s"
+
+#: qcsrc/server/w_minelayer.qc:501
+#, c-format
+msgid "%s almost dodged %s's mine"
+msgstr "%s ha quasi schivato la mina di %s"
+
+#: qcsrc/server/w_minelayer.qc:503
+#, c-format
+msgid "%s stepped on %s's mine"
+msgstr "%s è passato sopra la mina di %s"
+
+#: qcsrc/server/w_minstanex.qc:2
+msgid "MinstaNex"
+msgstr "MinstaNex"
+
+#: qcsrc/server/w_minstanex.qc:292 qcsrc/server/w_nex.qc:269
+#, c-format
+msgid "%s has been vaporized by %s"
+msgstr "%s è stato vaporizzato da %s"
+
+#: qcsrc/server/w_nex.qc:2
+msgid "Nex"
+msgstr "Nex"
+
+#: qcsrc/server/w_porto.qc:2
+msgid "Port-O-Launch"
+msgstr "Port-O-Launch"
+
+#: qcsrc/server/w_porto.qc:298
+#, c-format
+msgid "%s felt %s doing the impossible to him"
+msgstr "%s ha sentito %s fargli l'impossibile"
+
+#: qcsrc/server/w_rocketlauncher.qc:2
+msgid "Rocket Launcher"
+msgstr "Rocket Launcher"
+
+#: qcsrc/server/w_rocketlauncher.qc:504
+#, c-format
+msgid "%s got too close to %s's rocket"
+msgstr "%s s'è avvicinato troppo al razzo di %s"
+
+#: qcsrc/server/w_rocketlauncher.qc:506
+#, c-format
+msgid "%s almost dodged %s's rocket"
+msgstr "%s ha quasi schivato il razzo di %s"
+
+#: qcsrc/server/w_rocketlauncher.qc:508
+#, c-format
+msgid "%s ate %s's rocket"
+msgstr "%s ha mangiato il razzo di %s"
+
+#: qcsrc/server/w_seeker.qc:2
+msgid "T.A.G. Seeker"
+msgstr "T.A.G. Seeker"
+
+#: qcsrc/server/w_seeker.qc:659
+#, c-format
+msgid "%s was tagged by %s"
+msgstr "%s è stato contrassegnato da %s"
+
+#: qcsrc/server/w_shotgun.qc:2
+msgid "Shotgun"
+msgstr "Shotgun"
+
+#: qcsrc/server/w_shotgun.qc:207
+#, c-format
+msgid "%2$s ^7slapped %1$s ^7around a bit with a large ^2shotgun"
+msgstr "%2$s ^7ha schiaffeggiato %1$s ^7un pò con un grosso ^2shotgun"
+
+#: qcsrc/server/w_shotgun.qc:209
+#, c-format
+msgid "%s was gunned by %s"
+msgstr "%s è stato sparato da %s"
+
+#: qcsrc/server/w_sniperrifle.qc:2
+msgid "Sniper Rifle"
+msgstr "Sniper Rifle"
+
+#: qcsrc/server/w_sniperrifle.qc:229
+#, c-format
+msgid "%s shot themself automatically"
+msgstr "%s si è sparato da solo automaticamente"
+
+#: qcsrc/server/w_sniperrifle.qc:231
+#, c-format
+msgid "%s sniped themself somehow"
+msgstr "%s si è fucilato da solo in qualche modo"
+
+#: qcsrc/server/w_sniperrifle.qc:238
+#, c-format
+msgid "%s failed to hide from %s's bullet hail"
+msgstr "%s non è riuscito a nascondersi dalla raffica di proiettili di %s"
+
+#: qcsrc/server/w_sniperrifle.qc:240
+#, c-format
+msgid "%s died in %s's bullet hail"
+msgstr "%s è morto nella raffica di proiettili di %s"
+
+#: qcsrc/server/w_sniperrifle.qc:247
+#, c-format
+msgid "%s failed to hide from %s's rifle"
+msgstr "%s non è riuscito a nascondersi dal fucile di %s"
+
+#: qcsrc/server/w_sniperrifle.qc:252
+#, c-format
+msgid "%s got hit in the head by %s"
+msgstr "%s ha preso un colpo in testa da %s"
+
+#: qcsrc/server/w_sniperrifle.qc:254 qcsrc/server/w_uzi.qc:321
+#, c-format
+msgid "%s was sniped by %s"
+msgstr "%s è stato fucilato da %s"
+
+#: qcsrc/server/w_tuba.qc:2
+#, c-format
+msgid "@!#%'n Tuba"
+msgstr "@!#%'n Tuba"
+
+#: qcsrc/server/w_tuba.qc:263
+#, c-format
+msgid "%s hurt his own ears with the @!#%%'n Tuba"
+msgstr "%s s'è fatto male alle orecchie con la @!#%%'n Tuba"
+
+#: qcsrc/server/w_tuba.qc:267
+#, c-format
+msgid "%s died of %s's great playing on the @!#%%'n Tuba"
+msgstr "%s è morto nella gran esibizione di %s con la @!#%%'n Tuba"
+
+#: qcsrc/server/w_uzi.qc:2
+msgid "Machine Gun"
+msgstr "Machine Gun"
+
+#: qcsrc/server/w_uzi.qc:323
+#, c-format
+msgid "%s was riddled full of holes by %s"
+msgstr "%s è stato riempito di buchi da %s"
+
+#~ msgid "%d/%d"
+#~ msgstr "%d/%d"
+
+#~ msgid ""
+#~ "Please answer a few initial questions to enhance the game experience."
+#~ msgstr ""
+#~ "Per favore rispondi a poche domande iniziali per migliorare l'esperienza "
+#~ "di gioco."
+
+#~ msgid "Waypoint settings:"
+#~ msgstr "Impostazioni dei waypoint"
--- /dev/null
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-04-30 10:07+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: qcsrc/menu/gamecommand.qc:47
+#, c-format
+msgid "error: status is %d\n"
+msgstr "error: status is %d\n"
+
+#: qcsrc/menu/gamecommand.qc:65
+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
+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
+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
+msgid "error creating curl handle\n"
+msgstr "fout bij aanmaken curl handgreep\n"
+
+#: qcsrc/menu/gamecommand.qc:239
+msgid "Invalid command. For a list of supported commands, try menu_cmd help.\n"
+msgstr ""
+"Ongeldige opdracht. Voor een lijst met ondersteunde opdrachten, probeer "
+"menu_cmd help.\n"
+
+#: qcsrc/menu/item/gecko.c:49
+msgid "Browser not initialized!"
+msgstr "Browser is niet geinitialiseerd!"
+
+#: qcsrc/menu/item/label.c:63
+#, c-format
+msgid "NOTE: label text %s too wide for label, condensed by factor %f\n"
+msgstr ""
+"ATTENTIE: tekst van het label is %s te wijd, word met een factor %f "
+"verkleind\n"
+
+#: qcsrc/menu/item/listbox.c:300
+#, c-format
+msgid "Item %d"
+msgstr "Item %d"
+
+#: qcsrc/menu/item/slider.c:64
+#, c-format
+msgid "%d (%s)"
+msgstr "%d (%s)"
+
+#: qcsrc/menu/item/textslider.c:29 qcsrc/menu/item/textslider.c:31
+msgid "custom"
+msgstr "aangepast"
+
+#: qcsrc/menu/menu.qc:29
+#, fuzzy, 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:66
+msgid "???"
+msgstr "???"
+
+#: qcsrc/menu/xonotic/campaign.c:285
+#, c-format
+msgid "Level %d: %s"
+msgstr "Level %d: %s"
+
+#: qcsrc/menu/xonotic/cvarlist.c:85
+msgid "will be saved to config.cfg"
+msgstr "word in config.cfg opgeslagen"
+
+#: qcsrc/menu/xonotic/cvarlist.c:87
+msgid "will not be saved"
+msgstr "word niet opgeslagen"
+
+#: qcsrc/menu/xonotic/cvarlist.c:89
+msgid "private"
+msgstr "privé "
+
+#: qcsrc/menu/xonotic/cvarlist.c:91
+msgid "engine setting"
+msgstr "engine instelling"
+
+#: qcsrc/menu/xonotic/cvarlist.c:93
+msgid "read only"
+msgstr "alleen lezen"
+
+#: qcsrc/menu/xonotic/dialog_credits.c:5
+msgid "Credits"
+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:55
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:61
+#: qcsrc/menu/xonotic/dialog_singleplayer_winner.c:21
+msgid "OK"
+msgstr "OK"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:4
+msgid "Welcome"
+msgstr "Welkom"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:33
+msgid ""
+"Welcome to Xonotic, please select your language preference and enter your "
+"player name to get started. You can change these options later through the "
+"menu system."
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:38
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:35
+msgid "Text language:"
+msgstr "Taal van de tekst:"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:47
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:40
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:39
+msgid "Name:"
+msgstr "Naam:"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:69
+msgid "Save settings"
+msgstr "Opslaginstellingen:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:4
+msgid "Ammo Panel"
+msgstr "Ammunitie Paneel"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:22
+msgid "Ammunition display:"
+msgstr "Ammunitie venster:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:25
+msgid "Show only current ammo type"
+msgstr "Laat alleen huidig ammunitietype zien"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:29
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:28
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:40
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:28
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:40
+msgid "Left"
+msgstr "Links"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:30
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:30
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:41
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:30
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:41
+msgid "Right"
+msgstr "Rechts"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:4
+msgid "Chat Panel"
+msgstr "Chat Paneel"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:22
+msgid "Chat entries:"
+msgstr "Chat posts:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:25
+msgid "Chat size:"
+msgstr "Chat grootte"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:29
+msgid "Chat lifetime:"
+msgstr "Chat tijd:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:33
+msgid "Chat beep sound"
+msgstr "Chat geluid"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_engineinfo.c:4
+msgid "Engine Info Panel"
+msgstr "Engine Informatie Paneel"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_engineinfo.c:22
+msgid "Engine info:"
+msgstr "Engine Informatie:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_engineinfo.c:25
+msgid "Use an averaging algorithm for fps"
+msgstr "Gebruik een middelend algoritme voor fps"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:4
+msgid "Health/Armor Panel"
+msgstr "Health/Armor Paneel"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:22
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:22
+msgid "Enable status bar"
+msgstr "Activeer status balk"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:24
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:24
+msgid "Status bar alignment:"
+msgstr "Statusbalk positie:"
+
+#: 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 "Binnenkant"
+
+#: 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 "Buitenkant"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:37
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:37
+msgid "Icon alignment:"
+msgstr "Icoon positie:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:45
+msgid "Flip health and armor positions"
+msgstr "Keer health en armor posities om"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_infomessages.c:4
+msgid "Info Messages Panel"
+msgstr "Informatieberichten Paneel"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_infomessages.c:22
+msgid "Info messages:"
+msgstr "Informatieberichten"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_infomessages.c:25
+msgid "Flip align"
+msgstr "Anders uitlijnen"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_modicons.c:4
+msgid "Mod Icons Panel"
+msgstr "Speliconen Paneel"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:4
+msgid "Notification Panel"
+msgstr "Notificatie Paneel"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:22
+msgid "Notifications:"
+msgstr "Notificaties:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:25
+msgid "Also print notifications to the console"
+msgstr "Notificaties ook in de console printen"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:28
+msgid "Flip notify order"
+msgstr "Notificatievolgorde omdraaien"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:31
+msgid "Entry lifetime:"
+msgstr "Post tijd:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:35
+msgid "Entry fadetime:"
+msgstr "Post vervaagtijd:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:4
+msgid "Powerups Panel"
+msgstr "Powerups paneel"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:45
+msgid "Flip strength and shield positions"
+msgstr "Keer kracht en schild posities om"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:4
+msgid "Pressed Keys Panel"
+msgstr "Ingedrukte Toetsen Paneel"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:21
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:21
+msgid "Panel disabled"
+msgstr "Paneel uitgeschakeld"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:22
+msgid "Panel enabled when spectating"
+msgstr "Paneel activeren tijdens observeren"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:23
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:23
+msgid "Panel always enabled"
+msgstr "Paneel altijd actief"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:30
+msgid "Forced aspect:"
+msgstr "Aspect ratio:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_racetimer.c:4
+msgid "Race Timer Panel"
+msgstr "Race Tijd Paneel"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:4
+msgid "Radar Panel"
+msgstr "Radar Paneel"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:22
+msgid "Panel enabled in teamgames"
+msgstr "Paneel actief in teammodus"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:29
+msgid "Radar:"
+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:608
+msgid "Alpha:"
+msgstr "Alpha:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:36
+msgid "Rotation:"
+msgstr "Rotatie:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:38
+msgid "Forward"
+msgstr "Voorwaarts"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:39
+msgid "West"
+msgstr "West"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:40
+msgid "South"
+msgstr "Zuid"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:41
+msgid "East"
+msgstr "Oost"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:42
+msgid "North"
+msgstr "Noord"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:46
+msgid "Scale:"
+msgstr "Schaal:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:50
+msgid "Zoom mode:"
+msgstr "Zoom modus:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:52
+msgid "Zoomed in"
+msgstr "Ingezoomd"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:53
+msgid "Zoomed out"
+msgstr "Uitgezoomd"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:54
+msgid "Always zoomed"
+msgstr "Altijd ingezoomd"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:55
+msgid "Never zoomed"
+msgstr "Altijd uitgezoomd"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_score.c:4
+msgid "Score Panel"
+msgstr "Score Paneel"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_timer.c:4
+msgid "Timer Panel"
+msgstr "Tijd Paneel"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_timer.c:22
+msgid "Timer:"
+msgstr "Timer:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_timer.c:25
+msgid "Show elapsed time"
+msgstr "Laat verstreken tijd zien"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_vote.c:4
+msgid "Vote Panel"
+msgstr "Stem Paneel"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_vote.c:22
+msgid "Alpha after voting:"
+msgstr "Alpha na stemmen:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:4
+msgid "Weapons Panel"
+msgstr "Wapenpaneel"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:24
+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"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:28
+#, c-format
+msgid "%ds"
+msgstr "%ds"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:32
+msgid "Fade effect:"
+msgstr "Vervagingseffect:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:33
+msgid "EF^None"
+msgstr "EF^Geen"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:35
+msgid "Slide"
+msgstr "Schuiven"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:37
+msgid "Alpha"
+msgstr "Alpha"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:40
+msgid "Weapon icons:"
+msgstr "Wapeniconen:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:43
+msgid "Show weapon ID as:"
+msgstr "Toon wapen-ID als:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:44
+msgid "SHOWAS^None"
+msgstr "SHOWAS^Geen"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:45
+msgid "Number"
+msgstr "Nummer"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:46
+msgid "Bind"
+msgstr "Binden"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:49
+msgid "Show Accuracy"
+msgstr "Nauwkeurigheid tonen"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:50
+msgid "Show Ammo"
+msgstr "Ammunitie tonen"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:53
+msgid "Ammo bar color:"
+msgstr "Ammunitie balk kleur:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:59
+msgid "Ammo bar alpha:"
+msgstr "Ammunitie alpha:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:4
+msgid "Panel HUD Setup"
+msgstr "Paneel HUD Instellingen"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:21
+msgid "Panel background defaults:"
+msgstr "Paneel achtergrond standaards:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:25
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:37
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:52
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:91 qcsrc/menu/xonotic/util.qc:586
+#: qcsrc/menu/xonotic/util.qc:602 qcsrc/menu/xonotic/util.qc:619
+msgid "Disable"
+msgstr "Uitschakelen"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:30
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:77 qcsrc/menu/xonotic/util.qc:591
+msgid "Color:"
+msgstr "Kleur:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:35 qcsrc/menu/xonotic/util.qc:599
+msgid "Border size:"
+msgstr "Grootte rand:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:50
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:89
+msgid "Team color:"
+msgstr "Teamkleur:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:58 qcsrc/menu/xonotic/util.qc:625
+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:628
+msgid "Padding:"
+msgstr "Opvulling:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:68
+msgid "HUD Dock:"
+msgstr "HUD Werf:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:70
+msgid "DOCK^Disabled"
+msgstr "DOCK^Uitgeschakeld"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:71
+msgid "DOCK^Small"
+msgstr "DOCK^Klein"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:72
+msgid "DOCK^Medium"
+msgstr "DOCK^Gemiddeld"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:73
+msgid "DOCK^Large"
+msgstr "DOCK^Groot"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:96
+msgid "Grid settings:"
+msgstr "Raster instellingen"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:99
+msgid "Snap panels to grid"
+msgstr "Lijn panelen uit met grid"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:102
+msgid "Grid size:"
+msgstr "Raster grootte:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:103
+msgid "X:"
+msgstr "X:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:109
+msgid "Y:"
+msgstr "Y:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:117
+msgid "Exit setup"
+msgstr "Beëindig panel HUD modus"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:4
+msgid "Multiplayer"
+msgstr "Multiplayer"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:18
+msgid "Servers"
+msgstr "Servers"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:19
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:5
+msgid "Create"
+msgstr "Maak aan"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:20
+msgid "Demos"
+msgstr "Demo’s"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:21
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:5
+msgid "Player Setup"
+msgstr "Speler Instellingen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:35
+msgid "Game type:"
+msgstr "Game modus"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:47
+msgid "Match settings:"
+msgstr "Match instellingen:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:50
+msgid "Time limit:"
+msgstr "Tijdslimiet:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:54
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:62
+msgid "Use map specified default"
+msgstr "Gebruik map specificaties"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:57
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:156
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:157
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:158
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:162
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:163
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:164
+msgid "Point limit:"
+msgstr "Punten limiet:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:65
+msgid "Player slots:"
+msgstr "Aantal spelers:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:68
+msgid "Number of bots:"
+msgstr "Aantal bots"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:72
+msgid "Bot skill:"
+msgstr "Bot vaardigheid"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:75
+msgid "Botlike"
+msgstr "Botlike"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:76
+msgid "Beginner"
+msgstr "Beginner"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:77
+msgid "You will win"
+msgstr "Je zal winnen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:78
+msgid "You can win"
+msgstr "Je kan winnen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:79
+msgid "You might win"
+msgstr "Je zou kunnen winnen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:80
+msgid "Advanced"
+msgstr "Geavanceerd"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:81
+msgid "Expert"
+msgstr "Expert"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:82
+msgid "Pro"
+msgstr "Pro"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:83
+msgid "Assassin"
+msgstr "Sluipmoordenaar"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:84
+msgid "Unhuman"
+msgstr "Onmenselijk"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:85
+msgid "Godlike"
+msgstr "Goddelijk"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:89
+msgid "Mutators..."
+msgstr "Mutaties..."
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:98
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:84
+msgid "Advanced settings..."
+msgstr "Geavanceerde instellingen..."
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:105
+msgid "Map list:"
+msgstr "Map lijst:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:111
+msgid "Select all"
+msgstr "Selecteer alles"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:114
+msgid "Select none"
+msgstr "Selecteer niets"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:120
+msgid "Start Multiplayer!"
+msgstr "Start Multiplayer!"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:155
+msgid "Capture limit:"
+msgstr "Vlaggen limiet:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:159
+msgid "Lives:"
+msgstr "Levens:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:160
+msgid "Laps:"
+msgstr "Rondes:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:161
+msgid "Goals:"
+msgstr "Goals:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:165
+msgid "Frag limit:"
+msgstr "Frag limiet:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:6
+msgid "Advanced server settings"
+msgstr "Geavanceerde server instellingen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:25
+msgid "Game settings:"
+msgstr "Game instellingen:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:28
+msgid "Allow spectating"
+msgstr "Observeren toestaan"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:31
+msgid "Spawn shield:"
+msgstr "Spawn shild:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:36
+msgid "Game speed:"
+msgstr "Snelheid:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:40
+msgid "Teamplay settings:"
+msgstr "Team modus instellingen:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:43
+msgid "Friendly fire scale:"
+msgstr "Friendly fire schaal:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:47
+msgid "Virtual friendly fire (effect only)"
+msgstr "Virtuele friendly fire (alleen effect)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:50
+msgid "Friendly fire penalty:"
+msgstr "Friendly fire straf"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:54
+msgid "Virtual penalty (effect only)"
+msgstr "Virtuele straf (alleen effect)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:57
+msgid "Teams:"
+msgstr "Teams:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:66
+msgid "Map voting:"
+msgstr "Map stemmen:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:68
+msgid "No voting"
+msgstr "Geen stemmen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:69
+msgid "2 choices"
+msgstr "2 keuzes"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:70
+msgid "3 choices"
+msgstr "3 keuzes"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:71
+msgid "4 choices"
+msgstr "4 keuzes"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:72
+msgid "5 choices"
+msgstr "5 keuzes"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:73
+msgid "6 choices"
+msgstr "6 keuzes"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:74
+msgid "7 choices"
+msgstr "7 keuzes"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:75
+msgid "8 choices"
+msgstr "8 keuzes"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:76
+msgid "9 choices"
+msgstr "9 keuzes"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:79
+msgid "Simple majority wins vcall"
+msgstr "Simple meerderheid wint vcall"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:5
+msgid "Map Information"
+msgstr "Map informatie"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:49
+msgid "Full item placement"
+msgstr "Volledige item distributie"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:49
+msgid "MinstaGib only"
+msgstr "Alleen MinstaGib"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:78
+msgid "Title:"
+msgstr "Titel:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:84
+msgid "Author:"
+msgstr "Auteur:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:90
+msgid "Features:"
+msgstr "Bevat:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:95
+msgid "Game types:"
+msgstr "Game modus:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:119
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:314
+msgid "Close"
+msgstr "Dichtdoen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:122
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:46
+msgid "Play"
+msgstr "Speel"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:7
+msgid "Mutators"
+msgstr "Mutaties"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:33
+msgid "All Weapons Arena"
+msgstr "Alle Wapens Arena"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:35
+msgid "Most Weapons Arena"
+msgstr "Meeste Wapens Arena"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:56
+#, c-format
+msgid "%s Arena"
+msgstr "%s Arena"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:68
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:167
+msgid "Dodging"
+msgstr "Ontwijken"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:70
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:250
+msgid "MinstaGib"
+msgstr "MinstaGib"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:72
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:253
+msgid "NIX"
+msgstr "NIX"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:74
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:205
+msgid "Rocket Flying"
+msgstr "Raket Vliegen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:78
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:264
+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
+msgid "Low gravity"
+msgstr "Lage zwaartekracht"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:82
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:170
+msgid "Cloaked"
+msgstr "Onzichtbaarheid"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:84
+msgid "Hook"
+msgstr "Haak"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:86
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:173
+msgid "Midair"
+msgstr "In de lucht"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:88
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:176
+msgid "Vampire"
+msgstr "Vampier"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:90
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:208
+msgid "Piñata"
+msgstr "Piñata"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:92
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:211
+msgid "Weapons stay"
+msgstr "Wapens blijven"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:94
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:180
+msgid "Blood loss"
+msgstr "Bloedverlies"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:96
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:202
+msgid "Jet pack"
+msgstr "Jet pack"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:98
+msgid "MUT^None"
+msgstr "MUT^Geen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:164
+msgid "Gameplay mutators:"
+msgstr "Gameplay mutaties:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:196
+msgid "Weapon & item mutators:"
+msgstr "Wapen & item mutaties:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:199
+msgid "Grappling hook"
+msgstr "Grappling hook"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:215
+msgid "Weapon arenas:"
+msgstr "Wapen arena’s:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:218
+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
+msgid "with laser"
+msgstr "met lazer"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:247
+msgid "Special arenas:"
+msgstr "Speciale arenas:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:260
+msgid "Most weapons"
+msgstr "Meeste wapens"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:4
+msgid "Demo"
+msgstr "Demo"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:28
+msgid "Record demos while playing"
+msgstr "Demo’s opnemen tijdens het spelen:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:32
+#: 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_join.c:29
+#: qcsrc/menu/xonotic/dialog_settings_input.c:41
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:24
+msgid "Clear"
+msgstr "Legen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:43
+msgid "Timedemo"
+msgstr "Benchmark demo"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:4
+msgid "Join"
+msgstr "Meedoen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:36
+msgid "SRVS^Empty"
+msgstr "SRVS^Leeg"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:40
+msgid "SRVS^Full"
+msgstr "SRVS^Vol"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:44
+msgid "Pause"
+msgstr "Pauze"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:56
+msgid "Address:"
+msgstr "Adres:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:67
+msgid "Info..."
+msgstr "Info..."
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:72
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:317
+msgid "Join!"
+msgstr "Meedoen!"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:5
+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
+msgid "N/A"
+msgstr "N/A"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:158
+#, c-format
+msgid "%d/%d, %d free player slots"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:172
+#, c-format
+msgid "%d modified settings"
+msgstr "%d gemodificeerde 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:197
+msgid "N/A (can't connect)"
+msgstr "N/A (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:207
+msgid "not supported (won't encrypt)"
+msgstr "niet ondersteund (zal niet versleutelen)"
+
+#: 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:213
+msgid "supported (won't encrypt)"
+msgstr "ondersteund (zal niet 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:219
+msgid "requested (won't encrypt)"
+msgstr "verzocht (zal niet 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:225
+msgid "required (will encrypt)"
+msgstr "verplicht (zal versleutelen)"
+
+#: 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:254
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:38
+msgid "Type:"
+msgstr "Type:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:259
+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
+msgid "Mod:"
+msgstr "Mod:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:284
+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:295
+msgid "CA:"
+msgstr "CA:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:301
+msgid "Key:"
+msgstr "Sleutel:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:307
+msgid "Encryption:"
+msgstr "Versleuteling:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:63
+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:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:103
+msgid "Weapon settings..."
+msgstr "Wapen instellingen..."
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:110
+msgid "Crosshair:"
+msgstr "Richtkruis:"
+
+#: 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
+msgid "Crosshair size:"
+msgstr "Richtkruis grootte:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:134
+msgid "Crosshair alpha:"
+msgstr "Richtkruis alpha:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:138
+msgid "Crosshair color:"
+msgstr "Richtkruis kleur:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:140
+msgid "By health"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:143
+#, fuzzy
+msgid "Custom"
+msgstr "aangepast"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:148
+msgid "Enable center dot"
+msgstr "Activeer middenpunt"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:151
+msgid "Size:"
+msgstr "Grootte"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:158
+msgid "Hit test:"
+msgstr "Tref test:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:159
+msgid "HTST^None"
+msgstr "HTST^Geen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:160
+msgid "TrueAim"
+msgstr "Echt mikken"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:161
+msgid "Enemies"
+msgstr "Tegenstanders"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:164
+msgid "Waypoints setup..."
+msgstr "Wegwijzers instellingen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:169
+msgid "Enter HUD editor"
+msgstr "Ga naar HUD editor"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:174
+msgid "Force models:"
+msgstr "Forceer modellen:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:175
+msgid "MDL^None"
+msgstr "MDL^Geen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:176
+msgid "MDL^Custom"
+msgstr "MDL^Aangepast"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:177
+msgid "MDL^All"
+msgstr "MDL^Alle"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:180
+msgid "Disable gore effects"
+msgstr "Schakel bloederigheid uit"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:182
+msgid "Gibs:"
+msgstr "Gibs:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:184
+msgid "GIBS^None"
+msgstr "GIBS^Geen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:185
+msgid "GIBS^Few"
+msgstr "GIBS^Weinig"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:186
+msgid "GIBS^Many"
+msgstr "GIBS^Veel"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:187
+msgid "GIBS^Lots"
+msgstr "GIBS^Erg veel"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:191
+msgid "Damage splash:"
+msgstr "Pijn spatten:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:195
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:178
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:194
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:30
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:41
+#: qcsrc/menu/xonotic/dialog_settings_video.c:105
+msgid "Apply immediately"
+msgstr "Meteen toepassen"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:5
+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_waypoint.c:25
+msgid "Waypoint scale:"
+msgstr "Wegwijzer schaal:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:29
+msgid "Waypoint alpha:"
+msgstr "Wegwijzer alpha:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:34
+msgid "Show names:"
+msgstr "Laat namen zien:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:37
+msgid "Teammates"
+msgstr "Teammaten"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:38
+msgid "All players"
+msgstr "Alle spelers"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:6
+msgid "Weapon settings"
+msgstr "Wapen instellingen"
+
+#: 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
+msgid "Up"
+msgstr "Omhoog"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:37
+msgid "Down"
+msgstr "Omlaag"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:41
+msgid "Use priority list for weapon cycling"
+msgstr "Gebruik de prioriteit lijst voor het wisselen van wapens "
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:43
+msgid "Auto switch weapons on pickup"
+msgstr "Automatisch wapens wisselen bij oppakken"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:45
+msgid "Draw 1st person weapon model"
+msgstr "Wapen positie"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:48
+msgid "Left align"
+msgstr "Links"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:50
+msgid "Right align"
+msgstr "Rechts"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:53
+msgid "Flip view horizontally"
+msgstr "Spiegel zicht horizontaal"
+
+#: qcsrc/menu/xonotic/dialog_news.c:4
+msgid "News"
+msgstr "Nieuws"
+
+#: qcsrc/menu/xonotic/dialog_news.c:18
+msgid "http://www.xonotic.org/team/blog/"
+msgstr "http://www.xonotic.org/team/blog/"
+
+#: qcsrc/menu/xonotic/dialog_quit.c:4
+msgid "Quit"
+msgstr "Afsluiten"
+
+#: qcsrc/menu/xonotic/dialog_quit.c:17
+msgid "Are you sure you want to quit?"
+msgstr "Weet je zeker dat je wil afsluiten?"
+
+#: qcsrc/menu/xonotic/dialog_quit.c:20
+msgid "Yes"
+msgstr "Ja"
+
+#: qcsrc/menu/xonotic/dialog_quit.c:21
+msgid "No"
+msgstr "Nee"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:4
+msgid "Settings"
+msgstr "Instellingen"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:18
+#: qcsrc/menu/xonotic/dialog_settings_input.c:4
+msgid "Input"
+msgstr "Input"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:19
+#: qcsrc/menu/xonotic/dialog_settings_video.c:4
+msgid "Video"
+msgstr "Video"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:20
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:4
+msgid "Effects"
+msgstr "Effecten"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:21
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:4
+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.c:23
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:4
+msgid "Misc"
+msgstr "Misc"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:27
+msgid "Master:"
+msgstr "Volume:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:33
+msgid "Music:"
+msgstr "Muziek:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:40
+msgid "VOL^Ambient:"
+msgstr "VOL^Achtergrond:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:48
+msgid "Info:"
+msgstr "Info:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:57
+msgid "Items:"
+msgstr "Items:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:65
+msgid "Pain:"
+msgstr "Pijn:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:73
+msgid "Player:"
+msgstr "Speler:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:81
+msgid "Shots:"
+msgstr "Schoten:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:88
+msgid "Voice:"
+msgstr "Spraak:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:96
+msgid "Weapons:"
+msgstr "Wapens:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:103
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:161
+msgid "Frequency:"
+msgstr "Frequentie:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:105
+msgid "8 kHz"
+msgstr "8 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:106
+msgid "11.025 kHz"
+msgstr "11.025 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:107
+msgid "16 kHz"
+msgstr "16 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:108
+msgid "22.05 kHz"
+msgstr "22.05 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:109
+msgid "24 kHz"
+msgstr "24 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:110
+msgid "32 kHz"
+msgstr "32 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:111
+msgid "44.1 kHz"
+msgstr "44.1 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:112
+msgid "48 kHz"
+msgstr "48 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:115
+msgid "Channels:"
+msgstr "Kanalen:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:117
+msgid "Mono"
+msgstr "Mono"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:118
+msgid "Stereo"
+msgstr "Stereo"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:119
+msgid "2.1"
+msgstr "2.1"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:120
+msgid "4"
+msgstr "4"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:121
+msgid "5"
+msgstr "5"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:122
+msgid "5.1"
+msgstr "5.1"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:123
+msgid "6.1"
+msgstr "6.1"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:124
+msgid "7.1"
+msgstr "7.1"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:128
+msgid "Swap Stereo"
+msgstr "Stereo omwisselen"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:132
+msgid "Headphone friendly mode"
+msgstr "Koptelefoon modus"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:136
+msgid "Spatial voices:"
+msgstr "Ruimtelijke stemmen:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:137
+msgid "VOCS^None"
+msgstr "VOCS^Geen"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:138
+msgid "VOCS^Taunts"
+msgstr "VOCS^Honen"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:139
+msgid "VOCS^All"
+msgstr "VOCS^Alles"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:142
+msgid "Taunt range:"
+msgstr "Hoon afstand:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:145
+msgid "RNG^Very short"
+msgstr "RNG^Erg kort"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:146
+msgid "RNG^Short"
+msgstr "RNG^Kort"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:147
+msgid "RNG^Normal"
+msgstr "RNG^Normaal"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:148
+msgid "RNG^Long"
+msgstr "RNG^Lang"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:149
+msgid "RNG^Full"
+msgstr "RNG^Vol"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:156
+msgid "Automatic taunts"
+msgstr "Automatisch honen"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:165
+msgid "Time warning:"
+msgstr "Tijd notificatie:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:167
+msgid "WRN^None"
+msgstr "WRN^Geen"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:168
+msgid "1 minute"
+msgstr "1 minuut"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:169
+msgid "5 minutes"
+msgstr "5 minuten"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:170
+msgid "WRN^Both"
+msgstr "WRN^Beiden"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:173
+msgid "Hit indicator"
+msgstr "Tref indicator"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:175
+msgid "Menu sounds"
+msgstr "Menu geluiden"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:38
+msgid "Quality preset:"
+msgstr "Kwaliteit voorinstellingen:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:41
+msgid "PRE^OMG!"
+msgstr "PRE^"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:42
+msgid "PRE^Low"
+msgstr "PRE^Laag"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:43
+msgid "PRE^Medium"
+msgstr "PRE^Middel"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:44
+msgid "PRE^Normal"
+msgstr "PRE^Normaal"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:45
+msgid "PRE^High"
+msgstr "PRE^Hoog"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:46
+msgid "PRE^Ultra"
+msgstr "PRE^Ultra"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:48
+msgid "PRE^Ultimate"
+msgstr "PRE^Uitstekend"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:52
+msgid "Geometry detail:"
+msgstr "Geometrie detail:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:54
+msgid "DET^Lowest"
+msgstr "DET^Laagste"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:55
+msgid "DET^Low"
+msgstr "DET^Laag"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:56
+msgid "DET^Normal"
+msgstr "DET^Normaal"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:57
+msgid "DET^Good"
+msgstr "DET^Goed"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:58
+msgid "DET^Best"
+msgstr "DET^Beste"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:59
+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
+msgid "RES^Leet"
+msgstr "RES^"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:74
+msgid "RES^Lowest"
+msgstr "RES^Laagste"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:75
+msgid "RES^Low"
+msgstr "RES^Laag"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:76
+msgid "RES^Normal"
+msgstr "RES^Normaal"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:77
+msgid "RES^Good"
+msgstr "RES^Goed"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:78
+msgid "RES^Best"
+msgstr "RES^Beste"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:91
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:94
+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:102
+msgid "ANISO^Disabled"
+msgstr "ANISO^Uitgeschakeld"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:105
+msgid "8x"
+msgstr "8x"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:106
+msgid "16x"
+msgstr "16x"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:110
+msgid "Particle quality:"
+msgstr "Deeltjes kwaliteit"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:113
+msgid "Particle distance:"
+msgstr "Deeltjes afstand"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:117
+msgid "Decals"
+msgstr "Decals"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:120
+msgid "Distance:"
+msgstr "Afstand:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:126
+msgid "Time:"
+msgstr "Tijd:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:132
+msgid "Use lightmaps"
+msgstr "Gebuik "
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:133
+msgid "Deluxe mapping"
+msgstr "Deluxe mapping"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:135
+msgid "Gloss"
+msgstr "Glans"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:138
+msgid "Offset mapping"
+msgstr "Offset mapping"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:140
+msgid "Relief mapping"
+msgstr "Relief mapping"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:143
+msgid "Reflections:"
+msgstr "Reflecties"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:146
+msgid "Blurred"
+msgstr "Vervaagd"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:147
+msgid "REFL^Good"
+msgstr "REFL^Goed"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:148
+msgid "Sharp"
+msgstr "Scherp"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:153
+msgid "Show surfaces"
+msgstr "Laat oppervlaktes zien"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:155
+msgid "No dynamic lighting"
+msgstr "Geen dynamische verlichting"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:157
+msgid "Flash blend approximation"
+msgstr "Flash blend approximation"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:159
+msgid "Realtime dynamic lighting"
+msgstr "Real-time dynamische verlichting"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:160
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:164
+msgid "Shadows"
+msgstr "Schaduwen"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:163
+msgid "Realtime world lighting"
+msgstr "Real-time wereld verlichting"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:168
+msgid "Use normal maps"
+msgstr "Gebruik normal maps"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:170
+msgid "Soft shadows"
+msgstr "Zachte schaduwen"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:173
+msgid "Coronas"
+msgstr "Coronas"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:174
+msgid "Use Occlusion Queries"
+msgstr "Gebruik Occlusion Queries"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:176
+msgid "Bloom"
+msgstr "Bloom"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:178
+msgid "High Dynamic Range (HDR)"
+msgstr "Hoog dynamisch bereik (HDR)"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:182
+msgid "Motion blur:"
+msgstr "Bewegingsonscherpte:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:188
+msgid "Damage blur:"
+msgstr "Schadeonscherpte"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:26
+msgid "Key bindings:"
+msgstr "Toetsen:"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:31
+msgid "Change key..."
+msgstr "Verander toets..."
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:35
+msgid "Edit..."
+msgstr "Aanpassen..."
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:46
+msgid "Sensitivity:"
+msgstr "Gevoeligheid:"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:49
+msgid "UI mouse speed:"
+msgstr "UI muis snelheid:"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:52
+msgid "Mouse filter"
+msgstr "Muis filter"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:54
+msgid "Invert mouse"
+msgstr "Invert muis"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:57
+#: qcsrc/menu/xonotic/dialog_settings_input.c:59
+msgid "Use joystick input"
+msgstr "Gebruik joystick input"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:62
+#: qcsrc/menu/xonotic/dialog_settings_input.c:64
+msgid "Turn off OS mouse acceleration"
+msgstr "Gebruik joystick input"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:66
+msgid "\"enter console\" also closes"
+msgstr "\"console activeren\" sluit deze ook weer"
+
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:5
+msgid "User defined key bind"
+msgstr "Keybind van gebruiker"
+
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:42
+msgid "Command when pressed:"
+msgstr "Opdracht bij drukken:"
+
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:45
+msgid "Command when released:"
+msgstr "Opdracht bij loslaten:"
+
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:48
+msgid "Save"
+msgstr "Opslaan"
+
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:51
+msgid "Cancel"
+msgstr "Annuleren"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:26
+msgid "Menu skins:"
+msgstr "Menu thema’s:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:47
+msgid "Show current time"
+msgstr "Laat huidige tijd zien"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:49
+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 "Speedometer"
+msgstr "Snelheidsmeter"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:56
+msgid "qu/s (hidden)"
+msgstr "qu/s (verborgen)"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:58
+msgid "qu/s"
+msgstr "qu/s"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:60
+msgid "m/s"
+msgstr "m/s"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:64
+msgid "km/h"
+msgstr "km/h"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:66
+msgid "mph"
+msgstr "mph"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:68
+msgid "knots"
+msgstr "knopen"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:71
+msgid "Show accelerometer"
+msgstr "Laat versnellingsmeter zien"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:74
+msgid "Accelerometer scale:"
+msgstr "Versnellingsmeter schaal"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:80
+msgid "Minimize input latency"
+msgstr "Minimaliseer input latentie"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:5
+msgid "Advanced settings"
+msgstr "Geavanceerde instellingen"
+
+#: 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 "Cvar"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:42
+msgid "Value:"
+msgstr "Waarde:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:56
+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_network.c:39
+msgid "Broadband"
+msgstr "Breedband"
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:42
+msgid "Input packets/s:"
+msgstr "Inkomende pakketten/s"
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:46
+msgid "HTTP downloads:"
+msgstr "HTTP downloads:"
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:49
+msgid "Downloads:"
+msgstr "Downloads:"
+
+#: 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_video.c:26
+msgid "Resolution:"
+msgstr "Resolutie:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:29
+msgid "Font/UI size:"
+msgstr "Tekst/UI afmetingen:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:31
+msgid "SZ^Unreadable"
+msgstr "SZ^Onleesbaar"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:32
+msgid "SZ^Tiny"
+msgstr "SZ^Minuscuul"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:33
+msgid "SZ^Little"
+msgstr "SZ^Miniem"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:34
+msgid "SZ^Small"
+msgstr "SZ^Klein"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:35
+msgid "SZ^Medium"
+msgstr "SZ^Gemiddeld"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:36
+msgid "SZ^Large"
+msgstr "SZ^Aanzienlijk"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:37
+msgid "SZ^Huge"
+msgstr "SZ^Groot"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:38
+msgid "SZ^Gigantic"
+msgstr "SZ^Gigantisch"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:39
+msgid "SZ^Colossal"
+msgstr "SZ^Kolossaal"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:42
+msgid "Color depth:"
+msgstr "Kleurdiepte:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:45
+msgid "Full screen"
+msgstr "Volledig scherm"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:46
+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:52
+msgid "Use GLSL to handle color control"
+msgstr "Gebruik GLSL voor gamma correctie"
+
+#: 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:59
+msgid "VBO^Off"
+msgstr "VBO^Uit"
+
+#: 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:63
+msgid "Vertices"
+msgstr "Vertices"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:64
+msgid "Vertices and Triangles"
+msgstr "Vertices en Tris"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:67
+msgid "Depth first:"
+msgstr "Diepte eerst:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:69
+msgid "DF^Disabled"
+msgstr "DF^Uitgeschakeld"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:70
+msgid "DF^World"
+msgstr "DF^Wereld"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:71
+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:77
+msgid "Wait for GPU to finish each frame"
+msgstr "Wacht op GPU voor elk frame"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:80
+msgid "Brightness:"
+msgstr "Helderheid:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:83
+msgid "Contrast:"
+msgstr "Contrast:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:86
+msgid "Gamma:"
+msgstr "Gamma:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:89
+msgid "Contrast boost:"
+msgstr "Verhoog contrast:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:92
+msgid "Saturation:"
+msgstr "Verzadiging:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:98
+msgid "LIT^Ambient:"
+msgstr "LIT^Omgevingslicht"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:101
+msgid "Intensity:"
+msgstr "Intensiteit:"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:4
+msgid "Singleplayer"
+msgstr "Singleplayer"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:59
+msgid "Instant action! (random map with bots)"
+msgstr "Instant actie! (random map met bots)"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:80
+msgid "Start Singleplayer!"
+msgstr "Start Singleplayer!"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer_winner.c:4
+msgid "Winner"
+msgstr "Winnaar"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:5
+msgid "Team Selection"
+msgstr "Team Selectie"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:41
+msgid "join 'best' team (auto-select)"
+msgstr "aansluiten bij het ‘beste’ team (autoselect)"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:45
+msgid "red"
+msgstr "rood"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:46
+msgid "blue"
+msgstr "blauw"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:47
+msgid "yellow"
+msgstr "geel"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:48
+msgid "pink"
+msgstr "roze"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:51
+msgid "spectate"
+msgstr "observeren"
+
+#: qcsrc/menu/xonotic/mainwindow.c:35 qcsrc/menu/xonotic/mainwindow.c:38
+msgid "Do not press this button again!"
+msgstr "Druk deze knop niet meer in!"
+
+#: qcsrc/menu/xonotic/maplist.c:278
+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
+#, c-format
+msgid "%s's Xonotic Server"
+msgstr "%s zijn Xonotic Server"
+
+#: qcsrc/menu/xonotic/maplist.c:291
+msgid ""
+"Huh? Can't play this (invalid game type). Refiltering so this won't happen "
+"again.\n"
+msgstr ""
+"He? Kan (ongeldige spel modus) niet spelen. Opnieuw filteren zodat dit niet "
+"weer gebeurt.\n"
+
+#: qcsrc/menu/xonotic/playermodel.c:174
+msgid "<no model found>"
+msgstr "<geen model gevonden>"
+
+#: qcsrc/menu/xonotic/serverlist.c:185
+msgid "Remove"
+msgstr "Verwijderen"
+
+#: qcsrc/menu/xonotic/serverlist.c:187
+msgid "Bookmark"
+msgstr "Bookmark"
+
+#: qcsrc/menu/xonotic/serverlist.c:523
+msgid "Ping"
+msgstr "Ping"
+
+#: qcsrc/menu/xonotic/serverlist.c:524
+msgid "Host name"
+msgstr "Server naam"
+
+#: qcsrc/menu/xonotic/serverlist.c:525
+msgid "Map"
+msgstr "Map"
+
+#: qcsrc/menu/xonotic/serverlist.c:526
+msgid "Type"
+msgstr "Type"
+
+#: qcsrc/menu/xonotic/serverlist.c:527
+msgid "Players"
+msgstr "Spelers"
+
+#: qcsrc/menu/xonotic/skinlist.c:105
+msgid "<TITLE>"
+msgstr "<TITEL>"
+
+#: qcsrc/menu/xonotic/skinlist.c:106
+msgid "<AUTHOR>"
+msgstr "<AUTEUR>"
+
+#: qcsrc/menu/xonotic/skinlist.c:163
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: qcsrc/menu/xonotic/slider_decibels.c:50
+msgid "VOL^OFF"
+msgstr "VOL^UIT"
+
+#: qcsrc/menu/xonotic/slider_decibels.c:52
+msgid "VOL^MAX"
+msgstr "OL^MAX"
+
+#: qcsrc/menu/xonotic/slider_decibels.c:53
+#, c-format
+msgid "%s dB"
+msgstr "%s dB"
+
+#: qcsrc/menu/xonotic/slider_resolution.c:65
+#, c-format
+msgid "%dx%d"
+msgstr "%dx%d"
+
+#: qcsrc/menu/xonotic/util.qc:270
+#, 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
+#, 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
+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
+msgid "error: received carriage returns from update notification server\n"
+msgstr "fout: enters ontvangen van update meldingsserver"
+
+#: qcsrc/menu/xonotic/util.qc:316
+#, c-format
+msgid ""
+"Update can be downloaded at:\n"
+"%s\n"
+msgstr ""
+"Update kan gedownload worden bij:\n"
+"%s\n"
+
+#: qcsrc/menu/xonotic/util.qc:337
+msgid "Autogenerating mapinfo for newly added maps..."
+msgstr "Automatisch map info aanmaken voor nieuwe maps..."
+
+#: qcsrc/menu/xonotic/util.qc:367
+#, c-format
+msgid "^1%s TEST BUILD"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:432
+#, c-format
+msgid "Update to %s now!"
+msgstr "Update nu naar %s!"
+
+#: qcsrc/menu/xonotic/util.qc:509
+msgid ""
+"^1ERROR: Texture compression is required but not supported.\n"
+"^1Expect visual problems.\n"
+msgstr ""
+"^1ERROR: Textuurcompressie is nodig maar niet ondersteund.\n"
+"^1Verwacht grafische problemen.\n"
+
+#: qcsrc/menu/xonotic/util.qc:531
+msgid "Arena"
+msgstr "Arena"
+
+#: qcsrc/menu/xonotic/util.qc:532
+msgid "Assault"
+msgstr "Assault"
+
+#: qcsrc/menu/xonotic/util.qc:533
+msgid "Capture The Flag"
+msgstr "Capture The Flag"
+
+#: qcsrc/menu/xonotic/util.qc:534
+msgid "Clan Arena"
+msgstr "Clan Arena"
+
+#: qcsrc/menu/xonotic/util.qc:535
+msgid "Deathmatch"
+msgstr "Deathmatch"
+
+#: qcsrc/menu/xonotic/util.qc:536
+msgid "Domination"
+msgstr "Domination"
+
+#: qcsrc/menu/xonotic/util.qc:537
+msgid "Freeze Tag"
+msgstr "Freeze Tag"
+
+#: qcsrc/menu/xonotic/util.qc:538
+msgid "Keepaway"
+msgstr "Keepaway"
+
+#: qcsrc/menu/xonotic/util.qc:539
+msgid "Key Hunt"
+msgstr "Key Hunt"
+
+#: qcsrc/menu/xonotic/util.qc:540
+msgid "Last Man Standing"
+msgstr "Last Man Standing"
+
+#: qcsrc/menu/xonotic/util.qc:541
+msgid "Nexball"
+msgstr "Nexball"
+
+#: qcsrc/menu/xonotic/util.qc:542
+msgid "Onslaught"
+msgstr "Onslaught"
+
+#: qcsrc/menu/xonotic/util.qc:543
+msgid "Race"
+msgstr "Race"
+
+#: qcsrc/menu/xonotic/util.qc:544
+msgid "Race CTS"
+msgstr "Race CTS"
+
+#: qcsrc/menu/xonotic/util.qc:545
+msgid "Runematch"
+msgstr "Runematch"
+
+#: qcsrc/menu/xonotic/util.qc:546
+msgid "Team Deathmatch"
+msgstr "Team Deathmatch"
+
+#: qcsrc/menu/xonotic/util.qc:565
+#, c-format
+msgid "@!#%'n Tuba Throwing"
+msgstr "@!#%'n Tuba Smijten"
+
+#: qcsrc/menu/xonotic/util.qc:583
+msgid "Background:"
+msgstr "Achtergrond"
+
+#: qcsrc/menu/xonotic/util.qc:585 qcsrc/menu/xonotic/util.qc:601
+#: qcsrc/menu/xonotic/util.qc:610 qcsrc/menu/xonotic/util.qc:618
+#: qcsrc/menu/xonotic/util.qc:630
+msgid "Default"
+msgstr "Standaard"
+
+#: qcsrc/menu/xonotic/util.qc:596
+msgid "Use default"
+msgstr "Gebruik standaard"
+
+#: qcsrc/menu/xonotic/util.qc:616
+msgid "Team Color:"
+msgstr "Team Kleur:"
+
+#: qcsrc/menu/xonotic/util.qh:49
+msgid "Enable panel"
+msgstr "Activeer paneel"
+
+#: qcsrc/server/w_crylink.qc:2
+msgid "Crylink"
+msgstr "Crylink"
+
+#: qcsrc/server/w_crylink.qc:664
+#, c-format
+msgid "%s succeeded at self-destructing themself with the Crylink"
+msgstr ""
+
+#: qcsrc/server/w_crylink.qc:669
+#, c-format
+msgid "%s could not hide from %s's Crylink"
+msgstr ""
+
+#: qcsrc/server/w_crylink.qc:671
+#, c-format
+msgid "%s was too close to %s's Crylink"
+msgstr ""
+
+#: qcsrc/server/w_crylink.qc:673
+#, c-format
+msgid "%s took a close look at %s's Crylink"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:2
+msgid "Electro"
+msgstr "Electro"
+
+#: qcsrc/server/w_electro.qc:571
+#, c-format
+msgid "%s could not remember where they put plasma"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:573
+#, c-format
+msgid "%s played with plasma"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:580
+#, c-format
+msgid "%s just noticed %s's blue ball"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:582
+#, c-format
+msgid "%s got in touch with %s's blue ball"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:587
+#, c-format
+msgid "%s felt the electrifying air of %s's combo"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:589
+#, c-format
+msgid "%s got too close to %s's blue beam"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:591
+#, c-format
+msgid "%s was blasted by %s's blue beam"
+msgstr ""
+
+#: qcsrc/server/w_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 ""
+
+#: qcsrc/server/w_fireball.qc:428
+#, c-format
+msgid "%s fatefully ignored %s's firemine"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:435
+#, c-format
+msgid "%s could not hide from %s's fireball"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:437
+#, c-format
+msgid "%s saw the pretty lights of %s's fireball"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:440
+#, c-format
+msgid "%s got too close to %s's fireball"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:442
+#, c-format
+msgid "%s tasted %s's fireball"
+msgstr ""
+
+#: qcsrc/server/w_grenadelauncher.qc:2
+msgid "Mortar"
+msgstr "Mortar"
+
+#: qcsrc/server/w_grenadelauncher.qc:378
+#, c-format
+msgid "%s tried out his own grenade"
+msgstr ""
+
+#: qcsrc/server/w_grenadelauncher.qc:380
+#, c-format
+msgid "%s detonated"
+msgstr ""
+
+#: qcsrc/server/w_grenadelauncher.qc:386
+#, c-format
+msgid "%s didn't see %s's grenade"
+msgstr ""
+
+#: qcsrc/server/w_grenadelauncher.qc:388
+#, c-format
+msgid "%s almost dodged %s's grenade"
+msgstr ""
+
+#: qcsrc/server/w_grenadelauncher.qc:390
+#, c-format
+msgid "%s ate %s's grenade"
+msgstr ""
+
+#: qcsrc/server/w_hagar.qc:2
+msgid "Hagar"
+msgstr "Hagar"
+
+#: qcsrc/server/w_hagar.qc:209 qcsrc/server/w_seeker.qc:655
+#, c-format
+msgid "%s played with tiny rockets"
+msgstr ""
+
+#: qcsrc/server/w_hagar.qc:213
+#, c-format
+msgid "%s hoped %s's missiles wouldn't bounce"
+msgstr ""
+
+#: qcsrc/server/w_hagar.qc:215 qcsrc/server/w_seeker.qc:661
+#, c-format
+msgid "%s was pummeled by %s"
+msgstr ""
+
+#: qcsrc/server/w_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_minstanex.qc:290
+#: qcsrc/server/w_nex.qc:267 qcsrc/server/w_porto.qc:296
+#: qcsrc/server/w_shotgun.qc:203 qcsrc/server/w_uzi.qc:317
+#, c-format
+msgid "%s did the impossible"
+msgstr ""
+
+#: qcsrc/server/w_hook.qc: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:305
+#, c-format
+msgid "%s lasered themself to hell"
+msgstr ""
+
+#: qcsrc/server/w_laser.qc:309
+#, c-format
+msgid "%s was cut in half by %s's gauntlet"
+msgstr ""
+
+#: qcsrc/server/w_laser.qc:311
+#, c-format
+msgid "%s was lasered to death by %s"
+msgstr ""
+
+#: qcsrc/server/w_minelayer.qc:2
+msgid "Mine Layer"
+msgstr "Mine Layer"
+
+#: qcsrc/server/w_minelayer.qc:495 qcsrc/server/w_rocketlauncher.qc:500
+#, c-format
+msgid "%s exploded"
+msgstr ""
+
+#: qcsrc/server/w_minelayer.qc:499
+#, c-format
+msgid "%s got too close to %s's mine"
+msgstr ""
+
+#: qcsrc/server/w_minelayer.qc:501
+#, c-format
+msgid "%s almost dodged %s's mine"
+msgstr ""
+
+#: qcsrc/server/w_minelayer.qc:503
+#, c-format
+msgid "%s stepped on %s's mine"
+msgstr ""
+
+#: qcsrc/server/w_minstanex.qc:2
+msgid "MinstaNex"
+msgstr "MinstaNex"
+
+#: qcsrc/server/w_minstanex.qc:292 qcsrc/server/w_nex.qc:269
+#, c-format
+msgid "%s has been vaporized by %s"
+msgstr ""
+
+#: qcsrc/server/w_nex.qc:2
+msgid "Nex"
+msgstr "Nex"
+
+#: qcsrc/server/w_porto.qc:2
+msgid "Port-O-Launch"
+msgstr "Port-O-Launch"
+
+#: qcsrc/server/w_porto.qc:298
+#, c-format
+msgid "%s felt %s doing the impossible to him"
+msgstr ""
+
+#: qcsrc/server/w_rocketlauncher.qc:2
+msgid "Rocket Launcher"
+msgstr "Rocket Launcher"
+
+#: qcsrc/server/w_rocketlauncher.qc:504
+#, c-format
+msgid "%s got too close to %s's rocket"
+msgstr ""
+
+#: qcsrc/server/w_rocketlauncher.qc:506
+#, c-format
+msgid "%s almost dodged %s's rocket"
+msgstr ""
+
+#: qcsrc/server/w_rocketlauncher.qc:508
+#, c-format
+msgid "%s ate %s's rocket"
+msgstr ""
+
+#: qcsrc/server/w_seeker.qc:2
+msgid "T.A.G. Seeker"
+msgstr "T.A.G. Seeker"
+
+#: qcsrc/server/w_seeker.qc:659
+#, c-format
+msgid "%s was tagged by %s"
+msgstr ""
+
+#: qcsrc/server/w_shotgun.qc:2
+msgid "Shotgun"
+msgstr "Shotgun"
+
+#: qcsrc/server/w_shotgun.qc:207
+#, c-format
+msgid "%2$s ^7slapped %1$s ^7around a bit with a large ^2shotgun"
+msgstr ""
+
+#: qcsrc/server/w_shotgun.qc:209
+#, c-format
+msgid "%s was gunned by %s"
+msgstr ""
+
+#: qcsrc/server/w_sniperrifle.qc:2
+msgid "Sniper Rifle"
+msgstr "Sniper Rifle"
+
+#: qcsrc/server/w_sniperrifle.qc:229
+#, c-format
+msgid "%s shot themself automatically"
+msgstr ""
+
+#: qcsrc/server/w_sniperrifle.qc:231
+#, c-format
+msgid "%s sniped themself somehow"
+msgstr ""
+
+#: qcsrc/server/w_sniperrifle.qc:238
+#, c-format
+msgid "%s failed to hide from %s's bullet hail"
+msgstr ""
+
+#: qcsrc/server/w_sniperrifle.qc:240
+#, c-format
+msgid "%s died in %s's bullet hail"
+msgstr ""
+
+#: qcsrc/server/w_sniperrifle.qc:247
+#, c-format
+msgid "%s failed to hide from %s's rifle"
+msgstr ""
+
+#: qcsrc/server/w_sniperrifle.qc:252
+#, c-format
+msgid "%s got hit in the head by %s"
+msgstr ""
+
+#: qcsrc/server/w_sniperrifle.qc:254 qcsrc/server/w_uzi.qc:321
+#, c-format
+msgid "%s was sniped by %s"
+msgstr ""
+
+#: qcsrc/server/w_tuba.qc:2
+#, c-format
+msgid "@!#%'n Tuba"
+msgstr "@!#%'n Tuba"
+
+#: qcsrc/server/w_tuba.qc:263
+#, c-format
+msgid "%s hurt his own ears with the @!#%%'n Tuba"
+msgstr ""
+
+#: qcsrc/server/w_tuba.qc:267
+#, c-format
+msgid "%s died of %s's great playing on the @!#%%'n Tuba"
+msgstr ""
+
+#: qcsrc/server/w_uzi.qc:2
+msgid "Machine Gun"
+msgstr "Machine Gun"
+
+#: qcsrc/server/w_uzi.qc:323
+#, c-format
+msgid "%s was riddled full of holes by %s"
+msgstr ""
+
+#~ msgid "Waypoint settings:"
+#~ msgstr "Wegwijzer instellingen"
+
+#~ msgid "%d/%d"
+#~ msgstr "%d/%d"
--- /dev/null
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-04-30 10:07+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: qcsrc/menu/menu.qc:29
+#, c-format
+msgid "^4MQC Build information: ^1%s\n"
+msgstr ""
+
+#: qcsrc/menu/item/slider.c:64
+#, c-format
+msgid "%d (%s)"
+msgstr ""
+
+#: qcsrc/menu/item/label.c:63
+#, c-format
+msgid "NOTE: label text %s too wide for label, condensed by factor %f\n"
+msgstr ""
+
+#: qcsrc/menu/item/textslider.c:29 qcsrc/menu/item/textslider.c:31
+msgid "custom"
+msgstr ""
+
+#: qcsrc/menu/item/gecko.c:49
+msgid "Browser not initialized!"
+msgstr ""
+
+#: qcsrc/menu/item/listbox.c:300
+#, c-format
+msgid "Item %d"
+msgstr ""
+
+#: qcsrc/menu/gamecommand.qc:47
+#, c-format
+msgid "error: status is %d\n"
+msgstr ""
+
+#: qcsrc/menu/gamecommand.qc:65
+msgid "Usage: menu_cmd command..., where possible commands are:\n"
+msgstr ""
+
+#: qcsrc/menu/gamecommand.qc:66
+msgid " sync - reloads all cvars on the current menu page\n"
+msgstr ""
+
+#: qcsrc/menu/gamecommand.qc:67
+msgid " directmenu ITEM - select a menu item as main item\n"
+msgstr ""
+
+#: qcsrc/menu/gamecommand.qc:193
+msgid "error creating curl handle\n"
+msgstr ""
+
+#: qcsrc/menu/gamecommand.qc:239
+msgid "Invalid command. For a list of supported commands, try menu_cmd help.\n"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:4
+#: qcsrc/menu/xonotic/dialog_settings.c:19
+msgid "Video"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:26
+msgid "Resolution:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:29
+msgid "Font/UI size:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:31
+msgid "SZ^Unreadable"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:32
+msgid "SZ^Tiny"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:33
+msgid "SZ^Little"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:34
+msgid "SZ^Small"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:35
+msgid "SZ^Medium"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:36
+msgid "SZ^Large"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:37
+msgid "SZ^Huge"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:38
+msgid "SZ^Gigantic"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:39
+msgid "SZ^Colossal"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:42
+msgid "Color depth:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:45
+msgid "Full screen"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:46
+msgid "Vertical Synchronization"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:49
+msgid "Use OpenGL 2.0 shaders (GLSL)"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:52
+msgid "Use GLSL to handle color control"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:56
+msgid "Vertex Buffer Objects (VBOs)"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:59
+msgid "VBO^Off"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:60
+msgid "Vertices, some Tris (compatible)"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:63
+msgid "Vertices"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:64
+msgid "Vertices and Triangles"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:67
+msgid "Depth first:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:69
+msgid "DF^Disabled"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:70
+msgid "DF^World"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:71
+msgid "DF^All"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:75
+msgid "Disable multithreaded OpenGL"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:77
+msgid "Wait for GPU to finish each frame"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:80
+msgid "Brightness:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:83
+msgid "Contrast:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:86
+msgid "Gamma:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:89
+msgid "Contrast boost:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:92
+msgid "Saturation:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:98
+msgid "LIT^Ambient:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:101
+msgid "Intensity:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:105
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:30
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:41
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:195
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:194
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:178
+msgid "Apply immediately"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:4
+msgid "Panel HUD Setup"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:21
+msgid "Panel background defaults:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:25
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:37
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:52
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:91 qcsrc/menu/xonotic/util.qc:586
+#: qcsrc/menu/xonotic/util.qc:602 qcsrc/menu/xonotic/util.qc:619
+msgid "Disable"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:30
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:77 qcsrc/menu/xonotic/util.qc:591
+msgid "Color:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:35 qcsrc/menu/xonotic/util.qc:599
+msgid "Border size:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:43
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:82
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:32
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:154
+#: qcsrc/menu/xonotic/util.qc:608
+msgid "Alpha:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:50
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:89
+msgid "Team color:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:58 qcsrc/menu/xonotic/util.qc:625
+msgid "Test team color in configure mode"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:61 qcsrc/menu/xonotic/util.qc:628
+msgid "Padding:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:68
+msgid "HUD Dock:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:70
+msgid "DOCK^Disabled"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:71
+msgid "DOCK^Small"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:72
+msgid "DOCK^Medium"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:73
+msgid "DOCK^Large"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:96
+msgid "Grid settings:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:99
+msgid "Snap panels to grid"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:102
+msgid "Grid size:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:103
+msgid "X:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:109
+msgid "Y:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:117
+msgid "Exit setup"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_vote.c:4
+msgid "Vote Panel"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_vote.c:22
+msgid "Alpha after voting:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_modicons.c:4
+msgid "Mod Icons Panel"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_infomessages.c:4
+msgid "Info Messages Panel"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_infomessages.c:22
+msgid "Info messages:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_infomessages.c:25
+msgid "Flip align"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:5
+msgid "Waypoints"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:23
+msgid "Show base waypoints"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:25
+msgid "Waypoint scale:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:29
+msgid "Waypoint alpha:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:34
+msgid "Show names:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:36
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:26
+msgid "Never"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:37
+msgid "Teammates"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:38
+msgid "All players"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:41
+#: qcsrc/menu/xonotic/dialog_credits.c:21
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:61
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:269
+#: qcsrc/menu/xonotic/dialog_singleplayer_winner.c:21
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:82
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:55
+msgid "OK"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_credits.c:5
+msgid "Credits"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:5
+msgid "Advanced settings"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:23
+msgid "Cvar filter:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:24
+#: qcsrc/menu/xonotic/dialog_settings_input.c:41
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:29
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:33
+msgid "Clear"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:34
+msgid "Setting:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:38
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:254
+msgid "Type:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:42
+msgid "Value:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:56
+msgid "Description:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:4
+msgid "Pressed Keys Panel"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:21
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:21
+msgid "Panel disabled"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:22
+msgid "Panel enabled when spectating"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:23
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:23
+msgid "Panel always enabled"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:30
+msgid "Forced aspect:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:5
+msgid "Team Selection"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:41
+msgid "join 'best' team (auto-select)"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:45
+msgid "red"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:46
+msgid "blue"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:47
+msgid "yellow"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:48
+msgid "pink"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:51
+msgid "spectate"
+msgstr ""
+
+#: qcsrc/menu/xonotic/slider_resolution.c:65
+#, c-format
+msgid "%dx%d"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings.c:4
+msgid "Settings"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings.c:18
+#: qcsrc/menu/xonotic/dialog_settings_input.c:4
+msgid "Input"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings.c:20
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:4
+msgid "Effects"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings.c:21
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:4
+msgid "Audio"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings.c:22
+#: qcsrc/menu/xonotic/dialog_settings_network.c:4
+msgid "Network"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings.c:23
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:4
+msgid "Misc"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:4
+msgid "Welcome"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:33
+msgid ""
+"Welcome to Xonotic, please select your language preference and enter your "
+"player name to get started. You can change these options later through the "
+"menu system."
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:38
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:35
+msgid "Text language:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:47
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:39
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:40
+msgid "Name:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:69
+msgid "Save settings"
+msgstr ""
+
+#: qcsrc/menu/xonotic/campaign.c:284
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:66
+msgid "???"
+msgstr ""
+
+#: qcsrc/menu/xonotic/campaign.c:285
+#, c-format
+msgid "Level %d: %s"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:26
+msgid "Key bindings:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:31
+msgid "Change key..."
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:35
+msgid "Edit..."
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:46
+msgid "Sensitivity:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:49
+msgid "UI mouse speed:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:52
+msgid "Mouse filter"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:54
+msgid "Invert mouse"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:57
+#: qcsrc/menu/xonotic/dialog_settings_input.c:59
+msgid "Use joystick input"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:62
+#: qcsrc/menu/xonotic/dialog_settings_input.c:64
+msgid "Turn off OS mouse acceleration"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:66
+msgid "\"enter console\" also closes"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:4
+msgid "Weapons Panel"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:24
+msgid "Fade out after:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:28
+#, c-format
+msgid "%ds"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:32
+msgid "Fade effect:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:33
+msgid "EF^None"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:35
+msgid "Slide"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:37
+msgid "Alpha"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:40
+msgid "Weapon icons:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:43
+msgid "Show weapon ID as:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:44
+msgid "SHOWAS^None"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:45
+msgid "Number"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:46
+msgid "Bind"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:49
+msgid "Show Accuracy"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:50
+msgid "Show Ammo"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:53
+msgid "Ammo bar color:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:59
+msgid "Ammo bar alpha:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/mainwindow.c:35 qcsrc/menu/xonotic/mainwindow.c:38
+msgid "Do not press this button again!"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_engineinfo.c:4
+msgid "Engine Info Panel"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_engineinfo.c:22
+msgid "Engine info:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_engineinfo.c:25
+msgid "Use an averaging algorithm for fps"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_quit.c:4
+msgid "Quit"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_quit.c:17
+msgid "Are you sure you want to quit?"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_quit.c:20
+msgid "Yes"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_quit.c:21
+msgid "No"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:4
+msgid "Join"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:28
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:32
+msgid "Filter:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:36
+msgid "SRVS^Empty"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:40
+msgid "SRVS^Full"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:44
+msgid "Pause"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:56
+msgid "Address:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:67
+msgid "Info..."
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:72
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:317
+msgid "Join!"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:4
+msgid "Notification Panel"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:22
+msgid "Notifications:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:25
+msgid "Also print notifications to the console"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:28
+msgid "Flip notify order"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:31
+msgid "Entry lifetime:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:35
+msgid "Entry fadetime:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qh:49
+msgid "Enable panel"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:26
+msgid "Menu skins:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:47
+msgid "Show current time"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:49
+msgid "Show current date"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:51
+msgid "Show frames per second"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:53
+msgid "Speedometer"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:56
+msgid "qu/s (hidden)"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:58
+msgid "qu/s"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:60
+msgid "m/s"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:64
+msgid "km/h"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:66
+msgid "mph"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:68
+msgid "knots"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:71
+msgid "Show accelerometer"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:74
+msgid "Accelerometer scale:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:80
+msgid "Minimize input latency"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:84
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:98
+msgid "Advanced settings..."
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:4
+msgid "Singleplayer"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:59
+msgid "Instant action! (random map with bots)"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:80
+msgid "Start Singleplayer!"
+msgstr ""
+
+#: qcsrc/menu/xonotic/skinlist.c:105
+msgid "<TITLE>"
+msgstr ""
+
+#: qcsrc/menu/xonotic/skinlist.c:106
+msgid "<AUTHOR>"
+msgstr ""
+
+#: qcsrc/menu/xonotic/skinlist.c:163
+#, c-format
+msgid "%s: %s"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_news.c:4
+msgid "News"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_news.c:18
+msgid "http://www.xonotic.org/team/blog/"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:5
+msgid "Server Information"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:115
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:116
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:183
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:189
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:199
+msgid "N/A"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:158
+#, c-format
+msgid "%d/%d, %d free player slots"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:172
+msgid "Official settings"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:172
+#, c-format
+msgid "%d modified settings"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:197
+msgid "N/A (can't connect)"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:205
+msgid "not supported (can't connect)"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:207
+msgid "not supported (won't encrypt)"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:211
+msgid "supported (will encrypt)"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:213
+msgid "supported (won't encrypt)"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:217
+msgid "requested (will encrypt)"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:219
+msgid "requested (won't encrypt)"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:223
+msgid "required (can't connect)"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:225
+msgid "required (will encrypt)"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:246
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:269
+msgid "Players:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:259
+msgid "Map:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:264
+msgid "Gameplay:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:274
+msgid "Bots:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:279
+msgid "Mod:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:284
+msgid "Version:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:289
+msgid "Ping:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:295
+msgid "CA:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:301
+msgid "Key:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:307
+msgid "Encryption:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:314
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:119
+msgid "Close"
+msgstr ""
+
+#: qcsrc/menu/xonotic/slider_decibels.c:50
+msgid "VOL^OFF"
+msgstr ""
+
+#: qcsrc/menu/xonotic/slider_decibels.c:52
+msgid "VOL^MAX"
+msgstr ""
+
+#: qcsrc/menu/xonotic/slider_decibels.c:53
+#, c-format
+msgid "%s dB"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:7
+msgid "Mutators"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:33
+msgid "All Weapons Arena"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:35
+msgid "Most Weapons Arena"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:56
+#, c-format
+msgid "%s Arena"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:68
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:167
+msgid "Dodging"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:70
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:250
+msgid "MinstaGib"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:72
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:253
+msgid "NIX"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:74
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:205
+msgid "Rocket Flying"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:78
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:264
+msgid "No start weapons"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:80
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:189
+msgid "Low gravity"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:82
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:170
+msgid "Cloaked"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:84
+msgid "Hook"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:86
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:173
+msgid "Midair"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:88
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:176
+msgid "Vampire"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:90
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:208
+msgid "Piñata"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:92
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:211
+msgid "Weapons stay"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:94
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:180
+msgid "Blood loss"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:96
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:202
+msgid "Jet pack"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:98
+msgid "MUT^None"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:164
+msgid "Gameplay mutators:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:196
+msgid "Weapon & item mutators:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:199
+msgid "Grappling hook"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:215
+msgid "Weapon arenas:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:218
+msgid "Regular (no arena)"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:239
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:256
+msgid "with laser"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:247
+msgid "Special arenas:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:260
+msgid "Most weapons"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:4
+msgid "Radar Panel"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:22
+msgid "Panel enabled in teamgames"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:29
+msgid "Radar:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:36
+msgid "Rotation:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:38
+msgid "Forward"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:39
+msgid "West"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:40
+msgid "South"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:41
+msgid "East"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:42
+msgid "North"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:46
+msgid "Scale:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:50
+msgid "Zoom mode:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:52
+msgid "Zoomed in"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:53
+msgid "Zoomed out"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:54
+msgid "Always zoomed"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:55
+msgid "Never zoomed"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_racetimer.c:4
+msgid "Race Timer Panel"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:4
+msgid "Chat Panel"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:22
+msgid "Chat entries:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:25
+msgid "Chat size:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:29
+msgid "Chat lifetime:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:33
+msgid "Chat beep sound"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:5
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:19
+msgid "Create"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:35
+msgid "Game type:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:47
+msgid "Match settings:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:50
+msgid "Time limit:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:54
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:62
+msgid "Use map specified default"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:57
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:156
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:157
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:158
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:162
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:163
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:164
+msgid "Point limit:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:65
+msgid "Player slots:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:68
+msgid "Number of bots:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:72
+msgid "Bot skill:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:75
+msgid "Botlike"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:76
+msgid "Beginner"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:77
+msgid "You will win"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:78
+msgid "You can win"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:79
+msgid "You might win"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:80
+msgid "Advanced"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:81
+msgid "Expert"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:82
+msgid "Pro"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:83
+msgid "Assassin"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:84
+msgid "Unhuman"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:85
+msgid "Godlike"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:89
+msgid "Mutators..."
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:105
+msgid "Map list:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:111
+msgid "Select all"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:114
+msgid "Select none"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:120
+msgid "Start Multiplayer!"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:155
+msgid "Capture limit:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:159
+msgid "Lives:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:160
+msgid "Laps:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:161
+msgid "Goals:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:165
+msgid "Frag limit:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_singleplayer_winner.c:4
+msgid "Winner"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:5
+msgid "User defined key bind"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:42
+msgid "Command when pressed:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:45
+msgid "Command when released:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:48
+msgid "Save"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:51
+msgid "Cancel"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:5
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:21
+msgid "Player Setup"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:63
+msgid "Model:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:88
+msgid "Field of view:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:92
+msgid "View bobbing:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:96
+msgid "Zoom factor:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:100
+msgid "Zoom speed:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:103
+msgid "Weapon settings..."
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:110
+msgid "Crosshair:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:111
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:139
+msgid "Per weapon"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:130
+msgid "Crosshair size:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:134
+msgid "Crosshair alpha:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:138
+msgid "Crosshair color:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:140
+msgid "By health"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:143
+msgid "Custom"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:148
+msgid "Enable center dot"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:151
+msgid "Size:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:158
+msgid "Hit test:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:159
+msgid "HTST^None"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:160
+msgid "TrueAim"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:161
+msgid "Enemies"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:164
+msgid "Waypoints setup..."
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:169
+msgid "Enter HUD editor"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:174
+msgid "Force models:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:175
+msgid "MDL^None"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:176
+msgid "MDL^Custom"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:177
+msgid "MDL^All"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:180
+msgid "Disable gore effects"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:182
+msgid "Gibs:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:184
+msgid "GIBS^None"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:185
+msgid "GIBS^Few"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:186
+msgid "GIBS^Many"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:187
+msgid "GIBS^Lots"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:191
+msgid "Damage splash:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/cvarlist.c:85
+msgid "will be saved to config.cfg"
+msgstr ""
+
+#: qcsrc/menu/xonotic/cvarlist.c:87
+msgid "will not be saved"
+msgstr ""
+
+#: qcsrc/menu/xonotic/cvarlist.c:89
+msgid "private"
+msgstr ""
+
+#: qcsrc/menu/xonotic/cvarlist.c:91
+msgid "engine setting"
+msgstr ""
+
+#: qcsrc/menu/xonotic/cvarlist.c:93
+msgid "read only"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_score.c:4
+msgid "Score Panel"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_timer.c:4
+msgid "Timer Panel"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_timer.c:22
+msgid "Timer:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_timer.c:25
+msgid "Show elapsed time"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:5
+msgid "Map Information"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:49
+msgid "Full item placement"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:49
+msgid "MinstaGib only"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:78
+msgid "Title:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:84
+msgid "Author:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:90
+msgid "Features:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:95
+msgid "Game types:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:122
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:46
+msgid "Play"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:6
+msgid "Advanced server settings"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:25
+msgid "Game settings:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:28
+msgid "Allow spectating"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:31
+msgid "Spawn shield:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:36
+msgid "Game speed:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:40
+msgid "Teamplay settings:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:43
+msgid "Friendly fire scale:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:47
+msgid "Virtual friendly fire (effect only)"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:50
+msgid "Friendly fire penalty:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:54
+msgid "Virtual penalty (effect only)"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:57
+msgid "Teams:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:66
+msgid "Map voting:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:68
+msgid "No voting"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:69
+msgid "2 choices"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:70
+msgid "3 choices"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:71
+msgid "4 choices"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:72
+msgid "5 choices"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:73
+msgid "6 choices"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:74
+msgid "7 choices"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:75
+msgid "8 choices"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:76
+msgid "9 choices"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:79
+msgid "Simple majority wins vcall"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:270
+#, c-format
+msgid "Received HTTP request data for an invalid id %d.\n"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:285
+#, c-format
+msgid "error receiving update notification: status is %d\n"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:290
+msgid "error: received HTML instead of an update notification\n"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:295
+msgid "error: received carriage returns from update notification server\n"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:316
+#, c-format
+msgid ""
+"Update can be downloaded at:\n"
+"%s\n"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:337
+msgid "Autogenerating mapinfo for newly added maps..."
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:367
+#, c-format
+msgid "^1%s TEST BUILD"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:432
+#, c-format
+msgid "Update to %s now!"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:509
+msgid ""
+"^1ERROR: Texture compression is required but not supported.\n"
+"^1Expect visual problems.\n"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:531
+msgid "Arena"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:532
+msgid "Assault"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:533
+msgid "Capture The Flag"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:534
+msgid "Clan Arena"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:535
+msgid "Deathmatch"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:536
+msgid "Domination"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:537
+msgid "Freeze Tag"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:538
+msgid "Keepaway"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:539
+msgid "Key Hunt"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:540
+msgid "Last Man Standing"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:541
+msgid "Nexball"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:542
+msgid "Onslaught"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:543
+msgid "Race"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:544
+msgid "Race CTS"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:545
+msgid "Runematch"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:546
+msgid "Team Deathmatch"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:565
+#, c-format
+msgid "@!#%'n Tuba Throwing"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:583
+msgid "Background:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:585 qcsrc/menu/xonotic/util.qc:601
+#: qcsrc/menu/xonotic/util.qc:610 qcsrc/menu/xonotic/util.qc:618
+#: qcsrc/menu/xonotic/util.qc:630
+msgid "Default"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:596
+msgid "Use default"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:616
+msgid "Team Color:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/playermodel.c:174
+msgid "<no model found>"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:4
+msgid "Ammo Panel"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:22
+msgid "Ammunition display:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:25
+msgid "Show only current ammo type"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:29
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:28
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:40
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:28
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:40
+msgid "Left"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:30
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:30
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:41
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:30
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:41
+msgid "Right"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:6
+msgid "Weapon settings"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:29
+msgid "Weapon priority list:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:34
+msgid "Up"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:37
+msgid "Down"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:41
+msgid "Use priority list for weapon cycling"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:43
+msgid "Auto switch weapons on pickup"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:45
+msgid "Draw 1st person weapon model"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:48
+msgid "Left align"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:50
+msgid "Right align"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:53
+msgid "Flip view horizontally"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:38
+msgid "Quality preset:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:41
+msgid "PRE^OMG!"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:42
+msgid "PRE^Low"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:43
+msgid "PRE^Medium"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:44
+msgid "PRE^Normal"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:45
+msgid "PRE^High"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:46
+msgid "PRE^Ultra"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:48
+msgid "PRE^Ultimate"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:52
+msgid "Geometry detail:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:54
+msgid "DET^Lowest"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:55
+msgid "DET^Low"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:56
+msgid "DET^Normal"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:57
+msgid "DET^Good"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:58
+msgid "DET^Best"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:59
+msgid "DET^Insane"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:62
+msgid "Antialiasing:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:64
+msgid "AA^Disabled"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:65
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:103
+msgid "2x"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:66
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:104
+msgid "4x"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:70
+msgid "Texture resolution:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:73
+msgid "RES^Leet"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:74
+msgid "RES^Lowest"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:75
+msgid "RES^Low"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:76
+msgid "RES^Normal"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:77
+msgid "RES^Good"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:78
+msgid "RES^Best"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:91
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:94
+msgid "Avoid lossy texture compression"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:100
+msgid "Anisotropy:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:102
+msgid "ANISO^Disabled"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:105
+msgid "8x"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:106
+msgid "16x"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:110
+msgid "Particle quality:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:113
+msgid "Particle distance:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:117
+msgid "Decals"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:120
+msgid "Distance:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:126
+msgid "Time:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:132
+msgid "Use lightmaps"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:133
+msgid "Deluxe mapping"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:135
+msgid "Gloss"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:138
+msgid "Offset mapping"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:140
+msgid "Relief mapping"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:143
+msgid "Reflections:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:146
+msgid "Blurred"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:147
+msgid "REFL^Good"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:148
+msgid "Sharp"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:153
+msgid "Show surfaces"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:155
+msgid "No dynamic lighting"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:157
+msgid "Flash blend approximation"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:159
+msgid "Realtime dynamic lighting"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:160
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:164
+msgid "Shadows"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:163
+msgid "Realtime world lighting"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:168
+msgid "Use normal maps"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:170
+msgid "Soft shadows"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:173
+msgid "Coronas"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:174
+msgid "Use Occlusion Queries"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:176
+msgid "Bloom"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:178
+msgid "High Dynamic Range (HDR)"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:182
+msgid "Motion blur:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:188
+msgid "Damage blur:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:26
+msgid "Client-side movement prediction"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:30
+msgid "Show netgraph"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:33
+msgid "Network speed:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:35
+msgid "56k"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:36
+msgid "ISDN"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:37
+msgid "Slow ADSL"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:38
+msgid "Fast ADSL"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:39
+msgid "Broadband"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:42
+msgid "Input packets/s:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:46
+msgid "HTTP downloads:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:49
+msgid "Downloads:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:53
+msgid "Speed (kB/s):"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:57
+msgid "Client UDP port:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/serverlist.c:185
+msgid "Remove"
+msgstr ""
+
+#: qcsrc/menu/xonotic/serverlist.c:187
+msgid "Bookmark"
+msgstr ""
+
+#: qcsrc/menu/xonotic/serverlist.c:523
+msgid "Ping"
+msgstr ""
+
+#: qcsrc/menu/xonotic/serverlist.c:524
+msgid "Host name"
+msgstr ""
+
+#: qcsrc/menu/xonotic/serverlist.c:525
+msgid "Map"
+msgstr ""
+
+#: qcsrc/menu/xonotic/serverlist.c:526
+msgid "Type"
+msgstr ""
+
+#: qcsrc/menu/xonotic/serverlist.c:527
+msgid "Players"
+msgstr ""
+
+#: qcsrc/menu/xonotic/maplist.c:278
+msgid ""
+"Huh? Can't play this (m is NULL). Refiltering so this won't happen again.\n"
+msgstr ""
+
+#: qcsrc/menu/xonotic/maplist.c:286
+#, c-format
+msgid "%s's Xonotic Server"
+msgstr ""
+
+#: qcsrc/menu/xonotic/maplist.c:291
+msgid ""
+"Huh? Can't play this (invalid game type). Refiltering so this won't happen "
+"again.\n"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:4
+msgid "Demo"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:28
+msgid "Record demos while playing"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:43
+msgid "Timedemo"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:4
+msgid "Powerups Panel"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:22
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:22
+msgid "Enable status bar"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:24
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:24
+msgid "Status bar alignment:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:32
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:42
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:32
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:42
+msgid "Inward"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:34
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:43
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:34
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:43
+msgid "Outward"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:37
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:37
+msgid "Icon alignment:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:45
+msgid "Flip strength and shield positions"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:27
+msgid "Master:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:33
+msgid "Music:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:40
+msgid "VOL^Ambient:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:48
+msgid "Info:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:57
+msgid "Items:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:65
+msgid "Pain:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:73
+msgid "Player:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:81
+msgid "Shots:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:88
+msgid "Voice:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:96
+msgid "Weapons:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:103
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:161
+msgid "Frequency:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:105
+msgid "8 kHz"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:106
+msgid "11.025 kHz"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:107
+msgid "16 kHz"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:108
+msgid "22.05 kHz"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:109
+msgid "24 kHz"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:110
+msgid "32 kHz"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:111
+msgid "44.1 kHz"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:112
+msgid "48 kHz"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:115
+msgid "Channels:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:117
+msgid "Mono"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:118
+msgid "Stereo"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:119
+msgid "2.1"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:120
+msgid "4"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:121
+msgid "5"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:122
+msgid "5.1"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:123
+msgid "6.1"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:124
+msgid "7.1"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:128
+msgid "Swap Stereo"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:132
+msgid "Headphone friendly mode"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:136
+msgid "Spatial voices:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:137
+msgid "VOCS^None"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:138
+msgid "VOCS^Taunts"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:139
+msgid "VOCS^All"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:142
+msgid "Taunt range:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:145
+msgid "RNG^Very short"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:146
+msgid "RNG^Short"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:147
+msgid "RNG^Normal"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:148
+msgid "RNG^Long"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:149
+msgid "RNG^Full"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:156
+msgid "Automatic taunts"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:165
+msgid "Time warning:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:167
+msgid "WRN^None"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:168
+msgid "1 minute"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:169
+msgid "5 minutes"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:170
+msgid "WRN^Both"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:173
+msgid "Hit indicator"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:175
+msgid "Menu sounds"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:4
+msgid "Multiplayer"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:18
+msgid "Servers"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:20
+msgid "Demos"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:4
+msgid "Health/Armor Panel"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:45
+msgid "Flip health and armor positions"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:2
+msgid "Fireball"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:417
+#, c-format
+msgid "%s forgot about some firemine"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:419 qcsrc/server/w_hlac.qc:240
+#, c-format
+msgid "%s should have used a smaller gun"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:426
+#, c-format
+msgid "%s tried to catch %s's firemine"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:428
+#, c-format
+msgid "%s fatefully ignored %s's firemine"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:435
+#, c-format
+msgid "%s could not hide from %s's fireball"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:437
+#, c-format
+msgid "%s saw the pretty lights of %s's fireball"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:440
+#, c-format
+msgid "%s got too close to %s's fireball"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:442
+#, c-format
+msgid "%s tasted %s's fireball"
+msgstr ""
+
+#: qcsrc/server/w_nex.qc:2
+msgid "Nex"
+msgstr ""
+
+#: qcsrc/server/w_nex.qc:267 qcsrc/server/w_shotgun.qc:203
+#: qcsrc/server/w_uzi.qc:317 qcsrc/server/w_minstanex.qc:290
+#: qcsrc/server/w_porto.qc:296 qcsrc/server/w_hook.qc:266
+#, c-format
+msgid "%s did the impossible"
+msgstr ""
+
+#: qcsrc/server/w_nex.qc:269 qcsrc/server/w_minstanex.qc:292
+#, c-format
+msgid "%s has been vaporized by %s"
+msgstr ""
+
+#: qcsrc/server/w_laser.qc:2
+msgid "Laser"
+msgstr ""
+
+#: qcsrc/server/w_laser.qc:305
+#, c-format
+msgid "%s lasered themself to hell"
+msgstr ""
+
+#: qcsrc/server/w_laser.qc:309
+#, c-format
+msgid "%s was cut in half by %s's gauntlet"
+msgstr ""
+
+#: qcsrc/server/w_laser.qc:311
+#, c-format
+msgid "%s was lasered to death by %s"
+msgstr ""
+
+#: qcsrc/server/w_shotgun.qc:2
+msgid "Shotgun"
+msgstr ""
+
+#: qcsrc/server/w_shotgun.qc:207
+#, c-format
+msgid "%2$s ^7slapped %1$s ^7around a bit with a large ^2shotgun"
+msgstr ""
+
+#: qcsrc/server/w_shotgun.qc:209
+#, c-format
+msgid "%s was gunned by %s"
+msgstr ""
+
+#: qcsrc/server/w_uzi.qc:2
+msgid "Machine Gun"
+msgstr ""
+
+#: qcsrc/server/w_uzi.qc:321 qcsrc/server/w_sniperrifle.qc:254
+#, c-format
+msgid "%s was sniped by %s"
+msgstr ""
+
+#: qcsrc/server/w_uzi.qc:323
+#, c-format
+msgid "%s was riddled full of holes by %s"
+msgstr ""
+
+#: qcsrc/server/w_sniperrifle.qc:2
+msgid "Sniper Rifle"
+msgstr ""
+
+#: qcsrc/server/w_sniperrifle.qc:229
+#, c-format
+msgid "%s shot themself automatically"
+msgstr ""
+
+#: qcsrc/server/w_sniperrifle.qc:231
+#, c-format
+msgid "%s sniped themself somehow"
+msgstr ""
+
+#: qcsrc/server/w_sniperrifle.qc:238
+#, c-format
+msgid "%s failed to hide from %s's bullet hail"
+msgstr ""
+
+#: qcsrc/server/w_sniperrifle.qc:240
+#, c-format
+msgid "%s died in %s's bullet hail"
+msgstr ""
+
+#: qcsrc/server/w_sniperrifle.qc:247
+#, c-format
+msgid "%s failed to hide from %s's rifle"
+msgstr ""
+
+#: qcsrc/server/w_sniperrifle.qc:252
+#, c-format
+msgid "%s got hit in the head by %s"
+msgstr ""
+
+#: qcsrc/server/w_minstanex.qc:2
+msgid "MinstaNex"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:2
+msgid "Electro"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:571
+#, c-format
+msgid "%s could not remember where they put plasma"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:573
+#, c-format
+msgid "%s played with plasma"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:580
+#, c-format
+msgid "%s just noticed %s's blue ball"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:582
+#, c-format
+msgid "%s got in touch with %s's blue ball"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:587
+#, c-format
+msgid "%s felt the electrifying air of %s's combo"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:589
+#, c-format
+msgid "%s got too close to %s's blue beam"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:591
+#, c-format
+msgid "%s was blasted by %s's blue beam"
+msgstr ""
+
+#: qcsrc/server/w_tuba.qc:2
+#, c-format
+msgid "@!#%'n Tuba"
+msgstr ""
+
+#: qcsrc/server/w_tuba.qc:263
+#, c-format
+msgid "%s hurt his own ears with the @!#%%'n Tuba"
+msgstr ""
+
+#: qcsrc/server/w_tuba.qc:267
+#, c-format
+msgid "%s died of %s's great playing on the @!#%%'n Tuba"
+msgstr ""
+
+#: qcsrc/server/w_porto.qc:2
+msgid "Port-O-Launch"
+msgstr ""
+
+#: qcsrc/server/w_porto.qc:298
+#, c-format
+msgid "%s felt %s doing the impossible to him"
+msgstr ""
+
+#: qcsrc/server/w_hagar.qc:2
+msgid "Hagar"
+msgstr ""
+
+#: qcsrc/server/w_hagar.qc:209 qcsrc/server/w_seeker.qc:655
+#, c-format
+msgid "%s played with tiny rockets"
+msgstr ""
+
+#: qcsrc/server/w_hagar.qc:213
+#, c-format
+msgid "%s hoped %s's missiles wouldn't bounce"
+msgstr ""
+
+#: qcsrc/server/w_hagar.qc:215 qcsrc/server/w_seeker.qc:661
+#, c-format
+msgid "%s was pummeled by %s"
+msgstr ""
+
+#: qcsrc/server/w_crylink.qc:2
+msgid "Crylink"
+msgstr ""
+
+#: qcsrc/server/w_crylink.qc:664
+#, c-format
+msgid "%s succeeded at self-destructing themself with the Crylink"
+msgstr ""
+
+#: qcsrc/server/w_crylink.qc:669
+#, c-format
+msgid "%s could not hide from %s's Crylink"
+msgstr ""
+
+#: qcsrc/server/w_crylink.qc:671
+#, c-format
+msgid "%s was too close to %s's Crylink"
+msgstr ""
+
+#: qcsrc/server/w_crylink.qc:673
+#, c-format
+msgid "%s took a close look at %s's Crylink"
+msgstr ""
+
+#: qcsrc/server/w_rocketlauncher.qc:2
+msgid "Rocket Launcher"
+msgstr ""
+
+#: qcsrc/server/w_rocketlauncher.qc:500 qcsrc/server/w_minelayer.qc:495
+#, c-format
+msgid "%s exploded"
+msgstr ""
+
+#: qcsrc/server/w_rocketlauncher.qc:504
+#, c-format
+msgid "%s got too close to %s's rocket"
+msgstr ""
+
+#: qcsrc/server/w_rocketlauncher.qc:506
+#, c-format
+msgid "%s almost dodged %s's rocket"
+msgstr ""
+
+#: qcsrc/server/w_rocketlauncher.qc:508
+#, c-format
+msgid "%s ate %s's rocket"
+msgstr ""
+
+#: qcsrc/server/w_hook.qc:2
+msgid "Grappling Hook"
+msgstr ""
+
+#: qcsrc/server/w_hook.qc:268
+#, c-format
+msgid "%s has run into %s's gravity bomb"
+msgstr ""
+
+#: qcsrc/server/w_minelayer.qc:2
+msgid "Mine Layer"
+msgstr ""
+
+#: qcsrc/server/w_minelayer.qc:499
+#, c-format
+msgid "%s got too close to %s's mine"
+msgstr ""
+
+#: qcsrc/server/w_minelayer.qc:501
+#, c-format
+msgid "%s almost dodged %s's mine"
+msgstr ""
+
+#: qcsrc/server/w_minelayer.qc:503
+#, c-format
+msgid "%s stepped on %s's mine"
+msgstr ""
+
+#: qcsrc/server/w_seeker.qc:2
+msgid "T.A.G. Seeker"
+msgstr ""
+
+#: qcsrc/server/w_seeker.qc:659
+#, c-format
+msgid "%s was tagged by %s"
+msgstr ""
+
+#: qcsrc/server/w_grenadelauncher.qc:2
+msgid "Mortar"
+msgstr ""
+
+#: qcsrc/server/w_grenadelauncher.qc:378
+#, c-format
+msgid "%s tried out his own grenade"
+msgstr ""
+
+#: qcsrc/server/w_grenadelauncher.qc:380
+#, c-format
+msgid "%s detonated"
+msgstr ""
+
+#: qcsrc/server/w_grenadelauncher.qc:386
+#, c-format
+msgid "%s didn't see %s's grenade"
+msgstr ""
+
+#: qcsrc/server/w_grenadelauncher.qc:388
+#, c-format
+msgid "%s almost dodged %s's grenade"
+msgstr ""
+
+#: qcsrc/server/w_grenadelauncher.qc:390
+#, c-format
+msgid "%s ate %s's grenade"
+msgstr ""
+
+#: qcsrc/server/w_hlac.qc:2
+msgid "Heavy Laser Assault Cannon"
+msgstr ""
+
+#: qcsrc/server/w_hlac.qc:242
+#, c-format
+msgid "%s was cut down by %s"
+msgstr ""
--- /dev/null
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Xontoic 0.1preview\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-04-30 10:07+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: Ricardo 'Hellgardia' Silva <ricardo.mccs@gmail.com>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: Portuguese\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: qcsrc/menu/gamecommand.qc:47
+#, c-format
+msgid "error: status is %d\n"
+msgstr "erro: o estado é &d\n"
+
+#: qcsrc/menu/gamecommand.qc:65
+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
+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
+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
+msgid "error creating curl handle\n"
+msgstr "erro a criar curl handle"
+
+#: qcsrc/menu/gamecommand.qc:239
+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 "
+"help.\n"
+
+#: qcsrc/menu/item/gecko.c:49
+msgid "Browser not initialized!"
+msgstr "Browser não inicializado!"
+
+#: qcsrc/menu/item/label.c:63
+#, c-format
+msgid "NOTE: label text %s too wide for label, condensed by factor %f\n"
+msgstr ""
+"NOTA: marca texto %s demasiado larga para etiqueta, condensada por factor "
+"%f\n"
+
+#: qcsrc/menu/item/listbox.c:300
+#, c-format
+msgid "Item %d"
+msgstr "Item %d"
+
+#: qcsrc/menu/item/slider.c:64
+#, c-format
+msgid "%d (%s)"
+msgstr "%d (%s)"
+
+#: qcsrc/menu/item/textslider.c:29 qcsrc/menu/item/textslider.c:31
+msgid "custom"
+msgstr "modificado"
+
+#: qcsrc/menu/menu.qc:29
+#, fuzzy, 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:66
+msgid "???"
+msgstr "???"
+
+#: qcsrc/menu/xonotic/campaign.c:285
+#, c-format
+msgid "Level %d: %s"
+msgstr "Nível %d: %s"
+
+#: qcsrc/menu/xonotic/cvarlist.c:85
+msgid "will be saved to config.cfg"
+msgstr "vai ser guardado para config.cfg"
+
+#: qcsrc/menu/xonotic/cvarlist.c:87
+msgid "will not be saved"
+msgstr "não será guardado"
+
+#: qcsrc/menu/xonotic/cvarlist.c:89
+msgid "private"
+msgstr "privado"
+
+#: qcsrc/menu/xonotic/cvarlist.c:91
+msgid "engine setting"
+msgstr "definição do motor"
+
+#: qcsrc/menu/xonotic/cvarlist.c:93
+msgid "read only"
+msgstr "apenas ler"
+
+#: qcsrc/menu/xonotic/dialog_credits.c:5
+msgid "Credits"
+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:55
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:61
+#: qcsrc/menu/xonotic/dialog_singleplayer_winner.c:21
+msgid "OK"
+msgstr "OK"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:4
+msgid "Welcome"
+msgstr "Bem-Vindo"
+
+#: 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 ""
+"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_settings_input_userbind.c:39
+msgid "Name:"
+msgstr "Nome:"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:69
+msgid "Save settings"
+msgstr "Guardar Definições"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:4
+msgid "Ammo Panel"
+msgstr "Painel de munições"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:22
+msgid "Ammunition display:"
+msgstr "Mostrar munições:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:25
+msgid "Show only current ammo type"
+msgstr "Mostrar apenas o tipo de munição actual"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:29
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:28
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:40
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:28
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:40
+msgid "Left"
+msgstr "Esquerda"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:30
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:30
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:41
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:30
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:41
+msgid "Right"
+msgstr "Direita"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:4
+msgid "Chat Panel"
+msgstr "Painel de Conversa"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:22
+msgid "Chat entries:"
+msgstr "Entradas na Conversa:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:25
+msgid "Chat size:"
+msgstr "Tamanho da Conversa:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:29
+msgid "Chat lifetime:"
+msgstr "Tempo de vida da Conversa:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:33
+msgid "Chat beep sound"
+msgstr "Som de aviso de Conversa"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_engineinfo.c:4
+msgid "Engine Info Panel"
+msgstr "Painel de Informação do Motor"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_engineinfo.c:22
+msgid "Engine info:"
+msgstr "Informação do Motor:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_engineinfo.c:25
+msgid "Use an averaging algorithm for fps"
+msgstr "Usar um algorítmo médio para os fps"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:4
+msgid "Health/Armor Panel"
+msgstr "Painel Vida/Armadura"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:22
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:22
+msgid "Enable status bar"
+msgstr "Activar barra de estado"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:24
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:24
+msgid "Status bar alignment:"
+msgstr "Alinhar barra de estado:"
+
+#: 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 "Para Dentro"
+
+#: 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 "Para Fora"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:37
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:37
+msgid "Icon alignment:"
+msgstr "Alinhamento dos Icones"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:45
+msgid "Flip health and armor positions"
+msgstr "Trocar posição da vida e armadura"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_infomessages.c:4
+msgid "Info Messages Panel"
+msgstr "Painel de Info de Mensagens"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_infomessages.c:22
+msgid "Info messages:"
+msgstr "Informação de mensagens:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_infomessages.c:25
+msgid "Flip align"
+msgstr "Trocar alinhamento"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_modicons.c:4
+msgid "Mod Icons Panel"
+msgstr "Painel dos Icones de Mod"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:4
+msgid "Notification Panel"
+msgstr "Painel de Notificações"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:22
+msgid "Notifications:"
+msgstr "Notificações:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:25
+msgid "Also print notifications to the console"
+msgstr "Imprimir notificações na consola também"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:28
+msgid "Flip notify order"
+msgstr "Trocar ordem de notificações"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:31
+msgid "Entry lifetime:"
+msgstr "Tempo de vida de cada entrada:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:35
+msgid "Entry fadetime:"
+msgstr "Desaparecimento de cada entrada:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:4
+msgid "Powerups Panel"
+msgstr "Painel de Powerups"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:45
+msgid "Flip strength and shield positions"
+msgstr "Trocar posição do escudo e da força"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:4
+msgid "Pressed Keys Panel"
+msgstr "Painel das Teclas Pressionadas"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:21
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:21
+msgid "Panel disabled"
+msgstr "Painel desactivado"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:22
+msgid "Panel enabled when spectating"
+msgstr "Painel activado quando espectador"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:23
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:23
+msgid "Panel always enabled"
+msgstr "Painel sempre activado"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:30
+msgid "Forced aspect:"
+msgstr "Forçar aspecto:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_racetimer.c:4
+msgid "Race Timer Panel"
+msgstr "Painel do Cronómetro de Corrida"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:4
+msgid "Radar Panel"
+msgstr "Painel do Radar"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:22
+msgid "Panel enabled in teamgames"
+msgstr "Painel activo em jogos de equipa"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:29
+msgid "Radar:"
+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:608
+msgid "Alpha:"
+msgstr "Alfa:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:36
+msgid "Rotation:"
+msgstr "Rotação:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:38
+msgid "Forward"
+msgstr "Para a frente"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:39
+msgid "West"
+msgstr "Para oeste"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:40
+msgid "South"
+msgstr "Para sul"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:41
+msgid "East"
+msgstr "Para este"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:42
+msgid "North"
+msgstr "Para norte"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:46
+msgid "Scale:"
+msgstr "Escala:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:50
+msgid "Zoom mode:"
+msgstr "Modo de ampliação:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:52
+msgid "Zoomed in"
+msgstr "Ampliado"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:53
+msgid "Zoomed out"
+msgstr "Não-Ampliado"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:54
+msgid "Always zoomed"
+msgstr "Sempre ampliado"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:55
+msgid "Never zoomed"
+msgstr "Nunca ampliado"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_score.c:4
+msgid "Score Panel"
+msgstr "Painel de Pontos"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_timer.c:4
+msgid "Timer Panel"
+msgstr "Painel Temporizador"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_timer.c:22
+msgid "Timer:"
+msgstr "Temporizador:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_timer.c:25
+msgid "Show elapsed time"
+msgstr "Mostrar tempo passado"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_vote.c:4
+msgid "Vote Panel"
+msgstr "Painel de votos"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_vote.c:22
+msgid "Alpha after voting:"
+msgstr "Alfa após votagem:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:4
+msgid "Weapons Panel"
+msgstr "Painel das Armas"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:24
+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"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:28
+#, c-format
+msgid "%ds"
+msgstr "%ds"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:32
+msgid "Fade effect:"
+msgstr "Efeito de desaparecimento"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:33
+msgid "EF^None"
+msgstr "Nenhum"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:35
+msgid "Slide"
+msgstr "Deslocador"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:37
+msgid "Alpha"
+msgstr "Alfa"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:40
+msgid "Weapon icons:"
+msgstr "Icones das armas"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:43
+msgid "Show weapon ID as:"
+msgstr "Mostra o ID da arma como:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:44
+msgid "SHOWAS^None"
+msgstr "Nenhum"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:45
+msgid "Number"
+msgstr "Número"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:46
+msgid "Bind"
+msgstr "Ligar"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:49
+msgid "Show Accuracy"
+msgstr "Mostrar Pontaria"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:50
+msgid "Show Ammo"
+msgstr "Mostrar Munições"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:53
+msgid "Ammo bar color:"
+msgstr "Cor da barra de munições:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:59
+msgid "Ammo bar alpha:"
+msgstr "Cor da barra alfa:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:4
+msgid "Panel HUD Setup"
+msgstr "Configuração do painel do HUD"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:21
+msgid "Panel background defaults:"
+msgstr "Fundo do painel por defeito:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:25
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:37
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:52
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:91 qcsrc/menu/xonotic/util.qc:586
+#: qcsrc/menu/xonotic/util.qc:602 qcsrc/menu/xonotic/util.qc:619
+msgid "Disable"
+msgstr "Desactivar"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:30
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:77 qcsrc/menu/xonotic/util.qc:591
+msgid "Color:"
+msgstr "Cor:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:35 qcsrc/menu/xonotic/util.qc:599
+msgid "Border size:"
+msgstr "Tamanho do limite:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:50
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:89
+msgid "Team color:"
+msgstr "Cor da Equipa:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:58 qcsrc/menu/xonotic/util.qc:625
+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:628
+msgid "Padding:"
+msgstr "Padding:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:68
+msgid "HUD Dock:"
+msgstr "Local do HUD:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:70
+msgid "DOCK^Disabled"
+msgstr "Desligado"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:71
+msgid "DOCK^Small"
+msgstr "Pequena"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:72
+msgid "DOCK^Medium"
+msgstr "Média"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:73
+msgid "DOCK^Large"
+msgstr "Grande"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:96
+msgid "Grid settings:"
+msgstr "Definições da Rede:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:99
+msgid "Snap panels to grid"
+msgstr "Fixar paineis à Rede"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:102
+msgid "Grid size:"
+msgstr "Tamanho da Rede:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:103
+msgid "X:"
+msgstr "X:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:109
+msgid "Y:"
+msgstr "Y:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:117
+msgid "Exit setup"
+msgstr "Sair da configuração"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:4
+msgid "Multiplayer"
+msgstr "Multi-jogador"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:18
+msgid "Servers"
+msgstr "Servidores"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:19
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:5
+msgid "Create"
+msgstr "Criar"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:20
+msgid "Demos"
+msgstr "Demos"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:21
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:5
+msgid "Player Setup"
+msgstr "Configuração do Jogador"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:35
+msgid "Game type:"
+msgstr "Tipo de jogo:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:47
+msgid "Match settings:"
+msgstr "Definições de jogo:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:50
+msgid "Time limit:"
+msgstr "Tempo limite:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:54
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:62
+msgid "Use map specified default"
+msgstr "Usar definição específica do mapa"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:57
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:156
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:157
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:158
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:162
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:163
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:164
+msgid "Point limit:"
+msgstr "Limite de pontos:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:65
+msgid "Player slots:"
+msgstr "Slots para Jogadores:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:68
+msgid "Number of bots:"
+msgstr "Número de jogadores controlados pelo computador:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:72
+msgid "Bot skill:"
+msgstr "Nível de dificuldade:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:75
+msgid "Botlike"
+msgstr "Bot"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:76
+msgid "Beginner"
+msgstr "Iniciado"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:77
+msgid "You will win"
+msgstr "Vais ganhar"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:78
+msgid "You can win"
+msgstr "Podes ganhar"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:79
+msgid "You might win"
+msgstr "Talvez ganhes"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:80
+msgid "Advanced"
+msgstr "Avançado"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:81
+msgid "Expert"
+msgstr "Perito"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:82
+msgid "Pro"
+msgstr "Profissional"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:83
+msgid "Assassin"
+msgstr "Assassino"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:84
+msgid "Unhuman"
+msgstr "Desumano"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:85
+msgid "Godlike"
+msgstr "Divinal"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:89
+msgid "Mutators..."
+msgstr "Mutators..."
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:98
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:84
+msgid "Advanced settings..."
+msgstr "Definições avançadas..."
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:105
+msgid "Map list:"
+msgstr "Lista de mapas:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:111
+msgid "Select all"
+msgstr "Seleccionar todos"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:114
+msgid "Select none"
+msgstr "Seleccionar nenhum"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:120
+msgid "Start Multiplayer!"
+msgstr "Começar Multijogador!"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:155
+msgid "Capture limit:"
+msgstr "Limite de capturas:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:159
+msgid "Lives:"
+msgstr "Vidas:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:160
+msgid "Laps:"
+msgstr "Voltas:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:161
+msgid "Goals:"
+msgstr "Golos:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:165
+msgid "Frag limit:"
+msgstr "Limite de Frags:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:6
+msgid "Advanced server settings"
+msgstr "Definições avançadas do servidor"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:25
+msgid "Game settings:"
+msgstr "Definições de Jogo:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:28
+msgid "Allow spectating"
+msgstr "Permitir espectador"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:31
+msgid "Spawn shield:"
+msgstr "Protecção de Spawn:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:36
+msgid "Game speed:"
+msgstr "Velocidade do jogo:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:40
+msgid "Teamplay settings:"
+msgstr "Definições de Jogo de Equipa:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:43
+msgid "Friendly fire scale:"
+msgstr "Escala de Dano nos aliados:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:47
+msgid "Virtual friendly fire (effect only)"
+msgstr "Dano nos Aliados Virtual (Apenas o efeito)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:50
+msgid "Friendly fire penalty:"
+msgstr "Penalização por Dano nos Aliados:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:54
+msgid "Virtual penalty (effect only)"
+msgstr "Penalidade Virtual (Apenas o efeito)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:57
+msgid "Teams:"
+msgstr "Equipas:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:66
+msgid "Map voting:"
+msgstr "Votação de mapa:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:68
+msgid "No voting"
+msgstr "Sem votação"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:69
+msgid "2 choices"
+msgstr "2 escolhas"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:70
+msgid "3 choices"
+msgstr "3 escolhas"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:71
+msgid "4 choices"
+msgstr "4 escolhas"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:72
+msgid "5 choices"
+msgstr "5 escolhas"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:73
+msgid "6 choices"
+msgstr "6 escolhas"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:74
+msgid "7 choices"
+msgstr "7 escolhas"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:75
+msgid "8 choices"
+msgstr "8 escolhas"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:76
+msgid "9 choices"
+msgstr "9 escolhas"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:79
+msgid "Simple majority wins vcall"
+msgstr "Maioria ganha vcall"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:5
+msgid "Map Information"
+msgstr "Informação do Mapa"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:49
+msgid "Full item placement"
+msgstr "Colocação total dos items"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:49
+msgid "MinstaGib only"
+msgstr "Apenas MinstaGib"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:78
+msgid "Title:"
+msgstr "Título:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:84
+msgid "Author:"
+msgstr "Autor:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:90
+msgid "Features:"
+msgstr "Características:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:95
+msgid "Game types:"
+msgstr "Modos de jogo:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:119
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:314
+msgid "Close"
+msgstr "Fechar"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:122
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:46
+msgid "Play"
+msgstr "Jogar"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:7
+msgid "Mutators"
+msgstr "Mutators"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:33
+msgid "All Weapons Arena"
+msgstr "Arena com Todas as Armas"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:35
+msgid "Most Weapons Arena"
+msgstr "Arena com Maior Parte das Armas"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:56
+#, c-format
+msgid "%s Arena"
+msgstr "%s Arena"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:68
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:167
+msgid "Dodging"
+msgstr "Desvio"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:70
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:250
+msgid "MinstaGib"
+msgstr "MinstaGib"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:72
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:253
+msgid "NIX"
+msgstr "NIX"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:74
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:205
+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
+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
+msgid "Low gravity"
+msgstr "Pouca gravidade"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:82
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:170
+msgid "Cloaked"
+msgstr "Escondido"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:84
+msgid "Hook"
+msgstr "Gancho"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:86
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:173
+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
+msgid "Vampire"
+msgstr "Vampiro"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:90
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:208
+msgid "Piñata"
+msgstr "Piñata"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:92
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:211
+msgid "Weapons stay"
+msgstr "Armas ficam"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:94
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:180
+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
+msgid "Jet pack"
+msgstr "Jetpack"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:98
+msgid "MUT^None"
+msgstr "Nenhum"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:164
+msgid "Gameplay mutators:"
+msgstr "Mutators de jogabilidade"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:196
+msgid "Weapon & item mutators:"
+msgstr "Mutators de armas e items"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:199
+msgid "Grappling hook"
+msgstr "Gancho de trepar"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:215
+msgid "Weapon arenas:"
+msgstr "Arenas de Armas:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:218
+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
+msgid "with laser"
+msgstr "com laser"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:247
+msgid "Special arenas:"
+msgstr "Arenas Especiais:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:260
+msgid "Most weapons"
+msgstr "Maior parte das Armas"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:4
+msgid "Demo"
+msgstr "Demo"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:28
+msgid "Record demos while playing"
+msgstr "Gravar demos enquanto joga"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:32
+#: 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_join.c:29
+#: qcsrc/menu/xonotic/dialog_settings_input.c:41
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:24
+msgid "Clear"
+msgstr "Limpar"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:43
+msgid "Timedemo"
+msgstr "Demo temporizado"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:4
+msgid "Join"
+msgstr "Juntar"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:36
+msgid "SRVS^Empty"
+msgstr "Vazio"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:40
+msgid "SRVS^Full"
+msgstr "Total"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:44
+msgid "Pause"
+msgstr "Pausar"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:56
+msgid "Address:"
+msgstr "Endereço:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:67
+msgid "Info..."
+msgstr "Informação..."
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:72
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:317
+msgid "Join!"
+msgstr "Juntar!"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:5
+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
+msgid "N/A"
+msgstr "N/A"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:158
+#, c-format
+msgid "%d/%d, %d free player slots"
+msgstr "%d/%d, %d slots disponíveis"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:172
+#, c-format
+msgid "%d modified settings"
+msgstr "%d definições modificadas"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:172
+msgid "Official settings"
+msgstr "Definições oficiais"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:197
+msgid "N/A (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)"
+msgstr "não é suportado (não conseguiu ligar)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:207
+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)"
+msgstr "suportado (vai encriptar)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:213
+msgid "supported (won't encrypt)"
+msgstr "suportado (não encripta)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:217
+msgid "requested (will encrypt)"
+msgstr "pedido (encripta)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:219
+msgid "requested (won't encrypt)"
+msgstr "pedido (não encripta)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:223
+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)"
+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:254
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:38
+msgid "Type:"
+msgstr "Tipo:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:259
+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
+msgid "Mod:"
+msgstr "Mod:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:284
+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:295
+msgid "CA:"
+msgstr "CA:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:301
+msgid "Key:"
+msgstr "Chave:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:307
+msgid "Encryption:"
+msgstr "Encriptação:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:63
+msgid "Model:"
+msgstr "Modelo:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:88
+msgid "Field of view:"
+msgstr "Campo de visão:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:92
+msgid "View bobbing:"
+msgstr "Ver tremor:"
+
+#: 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:130
+msgid "Crosshair size:"
+msgstr "Tamanho da mira:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:134
+msgid "Crosshair alpha:"
+msgstr "Alfa da mira:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:138
+msgid "Crosshair color:"
+msgstr "Cor da mira:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:140
+msgid "By health"
+msgstr "Por vida"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:143
+msgid "Custom"
+msgstr "modificado"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:148
+msgid "Enable center dot"
+msgstr "Activar ponto central"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:151
+msgid "Size:"
+msgstr "Tamanho:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:158
+msgid "Hit test:"
+msgstr "Teste de Tiro:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:159
+msgid "HTST^None"
+msgstr "Nenhum"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:160
+msgid "TrueAim"
+msgstr "PontariaCerta"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:161
+msgid "Enemies"
+msgstr "Inimigos"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:164
+msgid "Waypoints setup..."
+msgstr "Configurar caminhos..."
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:169
+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.c:175
+msgid "MDL^None"
+msgstr "Nenhum"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:176
+msgid "MDL^Custom"
+msgstr "Modificado"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:177
+msgid "MDL^All"
+msgstr "Todos"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:180
+msgid "Disable gore effects"
+msgstr "Desactivar sangue/violencia"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:182
+msgid "Gibs:"
+msgstr "Tripas:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:184
+msgid "GIBS^None"
+msgstr "Nenhum"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:185
+msgid "GIBS^Few"
+msgstr "Poucas"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:186
+msgid "GIBS^Many"
+msgstr "Muitas"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:187
+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.c:195
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:178
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:194
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:30
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:41
+#: qcsrc/menu/xonotic/dialog_settings_video.c:105
+msgid "Apply immediately"
+msgstr "Aplicar imediatamente"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:5
+msgid "Waypoints"
+msgstr "Caminhos"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:23
+msgid "Show base waypoints"
+msgstr "Mostrar caminhos base"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:25
+msgid "Waypoint scale:"
+msgstr "Escala dos Caminhos:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:29
+msgid "Waypoint alpha:"
+msgstr "Caminhos alfa:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:34
+msgid "Show names:"
+msgstr "Mostrar nomes:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:37
+msgid "Teammates"
+msgstr "Companheiros de Equipa"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:38
+msgid "All players"
+msgstr "Todos os jogadores"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:6
+msgid "Weapon settings"
+msgstr "Definições de Armas"
+
+#: 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:34
+msgid "Up"
+msgstr "Cima"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:37
+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"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:43
+msgid "Auto switch weapons on pickup"
+msgstr "Mudar armas automaticamente ao apanhar do chão"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:45
+msgid "Draw 1st person weapon model"
+msgstr "Desenhar modelo da arma na 1a pessoa"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:48
+msgid "Left align"
+msgstr "Alinhamento à esquerda"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:50
+msgid "Right align"
+msgstr "Alinhamento à direita"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:53
+msgid "Flip view horizontally"
+msgstr "Trocar vista horizontal"
+
+#: qcsrc/menu/xonotic/dialog_news.c:4
+msgid "News"
+msgstr "Novidades"
+
+#: qcsrc/menu/xonotic/dialog_news.c:18
+msgid "http://www.xonotic.org/team/blog/"
+msgstr "http://www.xonotic.org/team/blog/"
+
+#: qcsrc/menu/xonotic/dialog_quit.c:4
+msgid "Quit"
+msgstr "Sair"
+
+#: qcsrc/menu/xonotic/dialog_quit.c:17
+msgid "Are you sure you want to quit?"
+msgstr "Tens a certeza que queres sair?"
+
+#: qcsrc/menu/xonotic/dialog_quit.c:20
+msgid "Yes"
+msgstr "Sim"
+
+#: qcsrc/menu/xonotic/dialog_quit.c:21
+msgid "No"
+msgstr "Não"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:4
+msgid "Settings"
+msgstr "Definições"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:18
+#: qcsrc/menu/xonotic/dialog_settings_input.c:4
+msgid "Input"
+msgstr "Input"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:19
+#: qcsrc/menu/xonotic/dialog_settings_video.c:4
+msgid "Video"
+msgstr "Vídeo"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:20
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:4
+msgid "Effects"
+msgstr "Efeitos"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:21
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:4
+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.c:23
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:4
+msgid "Misc"
+msgstr "Misc"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:27
+msgid "Master:"
+msgstr "Principal:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:33
+msgid "Music:"
+msgstr "Música:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:40
+msgid "VOL^Ambient:"
+msgstr "Som Ambiente:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:48
+msgid "Info:"
+msgstr "Informação:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:57
+msgid "Items:"
+msgstr "Items:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:65
+msgid "Pain:"
+msgstr "Dor:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:73
+msgid "Player:"
+msgstr "Jogador:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:81
+msgid "Shots:"
+msgstr "Tiros:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:88
+msgid "Voice:"
+msgstr "Voz:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:96
+msgid "Weapons:"
+msgstr "Armas:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:103
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:161
+msgid "Frequency:"
+msgstr "Frequência:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:105
+msgid "8 kHz"
+msgstr "8 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:106
+msgid "11.025 kHz"
+msgstr "11.025 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:107
+msgid "16 kHz"
+msgstr "16 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:108
+msgid "22.05 kHz"
+msgstr "22.05 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:109
+msgid "24 kHz"
+msgstr "24 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:110
+msgid "32 kHz"
+msgstr "32 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:111
+msgid "44.1 kHz"
+msgstr "44.1 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:112
+msgid "48 kHz"
+msgstr "48 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:115
+msgid "Channels:"
+msgstr "Canais:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:117
+msgid "Mono"
+msgstr "Mono"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:118
+msgid "Stereo"
+msgstr "Stereo"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:119
+msgid "2.1"
+msgstr "2.1"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:120
+msgid "4"
+msgstr "4"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:121
+msgid "5"
+msgstr "5"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:122
+msgid "5.1"
+msgstr "5.1"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:123
+msgid "6.1"
+msgstr "6.1"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:124
+msgid "7.1"
+msgstr "7.1"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:128
+msgid "Swap Stereo"
+msgstr "Trocar Stereo"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:132
+msgid "Headphone friendly mode"
+msgstr "Modo de Headphones"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:136
+msgid "Spatial voices:"
+msgstr "Vozes espaciais:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:137
+msgid "VOCS^None"
+msgstr "Nenhum"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:138
+msgid "VOCS^Taunts"
+msgstr "Taunts"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:139
+msgid "VOCS^All"
+msgstr "Todos"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:142
+msgid "Taunt range:"
+msgstr "Nível dos taunts:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:145
+msgid "RNG^Very short"
+msgstr "Muito baixo"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:146
+msgid "RNG^Short"
+msgstr "Baixo"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:147
+msgid "RNG^Normal"
+msgstr "Normal"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:148
+msgid "RNG^Long"
+msgstr "Alto"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:149
+msgid "RNG^Full"
+msgstr "Total"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:156
+msgid "Automatic taunts"
+msgstr "Taunts Automáticos"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:165
+msgid "Time warning:"
+msgstr "Aviso de tempo:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:167
+msgid "WRN^None"
+msgstr "Nenhum"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:168
+msgid "1 minute"
+msgstr "1 minuto"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:169
+msgid "5 minutes"
+msgstr "5 minutos"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:170
+msgid "WRN^Both"
+msgstr "Ambos"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:173
+msgid "Hit indicator"
+msgstr "Indicador de tiro acertado"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:175
+msgid "Menu sounds"
+msgstr "Sons do menu"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:38
+msgid "Quality preset:"
+msgstr "Predefinição de Qualidade:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:41
+msgid "PRE^OMG!"
+msgstr "OMG!"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:42
+msgid "PRE^Low"
+msgstr "Baixa"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:43
+msgid "PRE^Medium"
+msgstr "Média"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:44
+msgid "PRE^Normal"
+msgstr "Normal"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:45
+msgid "PRE^High"
+msgstr "Alta"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:46
+msgid "PRE^Ultra"
+msgstr "Ultra"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:48
+msgid "PRE^Ultimate"
+msgstr "Máxima"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:52
+msgid "Geometry detail:"
+msgstr "Detalhes geométricos:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:54
+msgid "DET^Lowest"
+msgstr "Mínimo"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:55
+msgid "DET^Low"
+msgstr "Baixa"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:56
+msgid "DET^Normal"
+msgstr "Normal"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:57
+msgid "DET^Good"
+msgstr "Bom"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:58
+msgid "DET^Best"
+msgstr "Melhores"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:59
+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
+msgid "RES^Leet"
+msgstr "Leet"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:74
+msgid "RES^Lowest"
+msgstr "Mínimo"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:75
+msgid "RES^Low"
+msgstr "Baixa"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:76
+msgid "RES^Normal"
+msgstr "Normal"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:77
+msgid "RES^Good"
+msgstr "Bom"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:78
+msgid "RES^Best"
+msgstr "Melhores"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:91
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:94
+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:105
+msgid "8x"
+msgstr "8x"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:106
+msgid "16x"
+msgstr "16x"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:110
+msgid "Particle quality:"
+msgstr "Qualidade das Partículas:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:113
+msgid "Particle distance:"
+msgstr "Distancia visível das Partículas:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:117
+msgid "Decals"
+msgstr "Símbolos"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:120
+msgid "Distance:"
+msgstr "Distância:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:126
+msgid "Time:"
+msgstr "Tempo:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:132
+msgid "Use lightmaps"
+msgstr "Usar lightmaps"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:133
+msgid "Deluxe mapping"
+msgstr "Mapeamento Deluxe"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:135
+msgid "Gloss"
+msgstr "Lustro"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:138
+msgid "Offset mapping"
+msgstr "Mapeamento Offset"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:140
+msgid "Relief mapping"
+msgstr "Mapeamento Relief"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:143
+msgid "Reflections:"
+msgstr "Reflexos:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:146
+msgid "Blurred"
+msgstr "Grau de Blur"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:147
+msgid "REFL^Good"
+msgstr "Bom"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:148
+msgid "Sharp"
+msgstr "Grau de Definição"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:153
+msgid "Show surfaces"
+msgstr "Mostrar superfícies"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:155
+msgid "No dynamic lighting"
+msgstr "Iluminação dinâmica desligada"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:157
+msgid "Flash blend approximation"
+msgstr "Aproximação Flash Blend"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:159
+msgid "Realtime dynamic lighting"
+msgstr "Iluminação dinâmica em tempo real"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:160
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:164
+msgid "Shadows"
+msgstr "Sombras"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:163
+msgid "Realtime world lighting"
+msgstr "Iluminação do mundo em tempo real"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:168
+msgid "Use normal maps"
+msgstr "Usar mapas normais"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:170
+msgid "Soft shadows"
+msgstr "Sombras Suaves"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:173
+msgid "Coronas"
+msgstr "Coronas"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:174
+msgid "Use Occlusion Queries"
+msgstr "Usar Consultas Oclusão"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:176
+msgid "Bloom"
+msgstr "Bloom"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:178
+msgid "High Dynamic Range (HDR)"
+msgstr "High Dynamic Range (HDR)"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:182
+msgid "Motion blur:"
+msgstr "Distorção por movimento:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:188
+msgid "Damage blur:"
+msgstr "Distorção por dano:"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:26
+msgid "Key bindings:"
+msgstr "Bindings de Teclas"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:31
+msgid "Change key..."
+msgstr "Mudar tecla..."
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:35
+msgid "Edit..."
+msgstr "Editar..."
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:46
+msgid "Sensitivity:"
+msgstr "Sensibilidade:"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:49
+msgid "UI mouse speed:"
+msgstr "Velocidade do rato:"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:52
+msgid "Mouse filter"
+msgstr "Filtro do Rato"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:54
+msgid "Invert mouse"
+msgstr "Inverter Rato"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:57
+#: qcsrc/menu/xonotic/dialog_settings_input.c:59
+msgid "Use joystick input"
+msgstr "Usar input do joystick"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:62
+#: qcsrc/menu/xonotic/dialog_settings_input.c:64
+msgid "Turn off OS mouse acceleration"
+msgstr "Desligar aceleração de Rato do SO"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:66
+msgid "\"enter console\" also closes"
+msgstr "\"entrar na consola\" também fecha"
+
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:5
+msgid "User defined key bind"
+msgstr "Keybinds definidas pelo utilizador"
+
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:42
+msgid "Command when pressed:"
+msgstr "Comando quando carregado:"
+
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:45
+msgid "Command when released:"
+msgstr "Comando quando largado:"
+
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:48
+msgid "Save"
+msgstr "Guardar"
+
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:51
+msgid "Cancel"
+msgstr "Cancelar"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:26
+msgid "Menu skins:"
+msgstr "Skins de Menu:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:47
+msgid "Show current time"
+msgstr "Mostrar tempo corrente"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:49
+msgid "Show current date"
+msgstr "Mostrar data corrente"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:51
+msgid "Show frames per second"
+msgstr "Mostrar Frames por Segundo"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:53
+msgid "Speedometer"
+msgstr "Medidor de Velocidade"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:56
+msgid "qu/s (hidden)"
+msgstr "qu/s (escondido)"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:58
+msgid "qu/s"
+msgstr "qu/s"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:60
+msgid "m/s"
+msgstr "m/s"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:64
+msgid "km/h"
+msgstr "km/h"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:66
+msgid "mph"
+msgstr "mph"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:68
+msgid "knots"
+msgstr "nós"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:71
+msgid "Show accelerometer"
+msgstr "Mostrar accelerómetro"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:74
+msgid "Accelerometer scale:"
+msgstr "Escala do accelerómetro:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:80
+msgid "Minimize input latency"
+msgstr "Minimizar latência de entrada"
+
+#: 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
+msgid "Cvar filter:"
+msgstr "Filtro de Cvar"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:34
+msgid "Setting:"
+msgstr "Definição:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:42
+msgid "Value:"
+msgstr "Valor:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:56
+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_network.c:42
+msgid "Input packets/s:"
+msgstr "Pacotes Entrada /s"
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:46
+msgid "HTTP downloads:"
+msgstr "Transferências via HTTP:"
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:49
+msgid "Downloads:"
+msgstr "Transferências:"
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:53
+msgid "Speed (kB/s):"
+msgstr "Velocidade (kB/s):"
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:57
+msgid "Client UDP port:"
+msgstr "Port UDP do Cliente:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:26
+msgid "Resolution:"
+msgstr "Resolução:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:29
+msgid "Font/UI size:"
+msgstr "Font/UI - tamanho:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:31
+msgid "SZ^Unreadable"
+msgstr "Ilegível"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:32
+msgid "SZ^Tiny"
+msgstr "Minuscula"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:33
+msgid "SZ^Little"
+msgstr "Muito Pequena"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:34
+msgid "SZ^Small"
+msgstr "Pequena"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:35
+msgid "SZ^Medium"
+msgstr "Média"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:36
+msgid "SZ^Large"
+msgstr "Grande"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:37
+msgid "SZ^Huge"
+msgstr "Enorme"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:38
+msgid "SZ^Gigantic"
+msgstr "Gigante"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:39
+msgid "SZ^Colossal"
+msgstr "Colossal"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:42
+msgid "Color depth:"
+msgstr "Profundidade da cor:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:45
+msgid "Full screen"
+msgstr "Ecrã Inteiro"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:46
+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:52
+msgid "Use GLSL to handle color control"
+msgstr "Usar GLSL para o controlo de cores"
+
+#: 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:59
+msgid "VBO^Off"
+msgstr "Desligado"
+
+#: 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:63
+msgid "Vertices"
+msgstr "Vértices"
+
+#: 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:67
+msgid "Depth first:"
+msgstr "Profundidade primeiro:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:69
+msgid "DF^Disabled"
+msgstr "Desligado"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:70
+msgid "DF^World"
+msgstr "Mundo"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:71
+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: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:80
+msgid "Brightness:"
+msgstr "Brilho:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:83
+msgid "Contrast:"
+msgstr "Contraste:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:86
+msgid "Gamma:"
+msgstr "Gamma:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:89
+msgid "Contrast boost:"
+msgstr "Contraste - Boost"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:92
+msgid "Saturation:"
+msgstr "Saturação da Cor:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:98
+msgid "LIT^Ambient:"
+msgstr "Som Ambiente:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:101
+msgid "Intensity:"
+msgstr "Intensidade:"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:4
+msgid "Singleplayer"
+msgstr "Um Jogador"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:59
+msgid "Instant action! (random map with bots)"
+msgstr "Acção Instantânea! (Mapa ao acaso contra o computador)"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:80
+msgid "Start Singleplayer!"
+msgstr "Começar Um só Jogador!"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer_winner.c:4
+msgid "Winner"
+msgstr "Vencedor"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:5
+msgid "Team Selection"
+msgstr "Selecção de Equipa"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:41
+msgid "join 'best' team (auto-select)"
+msgstr "juntar 'melhor' equipa (selecção automática)"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:45
+msgid "red"
+msgstr "vermelha"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:46
+msgid "blue"
+msgstr "azul"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:47
+msgid "yellow"
+msgstr "amarela"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:48
+msgid "pink"
+msgstr "rosa"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:51
+msgid "spectate"
+msgstr "espectador"
+
+#: qcsrc/menu/xonotic/mainwindow.c:35 qcsrc/menu/xonotic/mainwindow.c:38
+msgid "Do not press this button again!"
+msgstr "Não voltar a carregar neste botão!"
+
+#: qcsrc/menu/xonotic/maplist.c:278
+msgid ""
+"Huh? Can't play this (m is NULL). Refiltering so this won't happen again.\n"
+msgstr ""
+"Huh? 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
+#, c-format
+msgid "%s's Xonotic Server"
+msgstr "Servidor de Xonotic do %s"
+
+#: qcsrc/menu/xonotic/maplist.c:291
+msgid ""
+"Huh? Can't play this (invalid game type). Refiltering so this won't happen "
+"again.\n"
+msgstr ""
+"Huh? 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
+msgid "<no model found>"
+msgstr "<nenhum modelo encontrado>"
+
+#: qcsrc/menu/xonotic/serverlist.c:185
+msgid "Remove"
+msgstr "Remover"
+
+#: qcsrc/menu/xonotic/serverlist.c:187
+msgid "Bookmark"
+msgstr "Marcar"
+
+#: qcsrc/menu/xonotic/serverlist.c:523
+msgid "Ping"
+msgstr "Ping"
+
+#: qcsrc/menu/xonotic/serverlist.c:524
+msgid "Host name"
+msgstr "Nome do Host"
+
+#: qcsrc/menu/xonotic/serverlist.c:525
+msgid "Map"
+msgstr "Mapa"
+
+#: qcsrc/menu/xonotic/serverlist.c:526
+msgid "Type"
+msgstr "Tipo"
+
+#: qcsrc/menu/xonotic/serverlist.c:527
+msgid "Players"
+msgstr "Jogadores"
+
+#: qcsrc/menu/xonotic/skinlist.c:105
+msgid "<TITLE>"
+msgstr "<TÍTULO>"
+
+#: qcsrc/menu/xonotic/skinlist.c:106
+msgid "<AUTHOR>"
+msgstr "<AUTOR>"
+
+#: qcsrc/menu/xonotic/skinlist.c:163
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: qcsrc/menu/xonotic/slider_decibels.c:50
+msgid "VOL^OFF"
+msgstr "DESLIGADO"
+
+#: qcsrc/menu/xonotic/slider_decibels.c:52
+msgid "VOL^MAX"
+msgstr "MÀX"
+
+#: qcsrc/menu/xonotic/slider_decibels.c:53
+#, c-format
+msgid "%s dB"
+msgstr "%s dB"
+
+#: qcsrc/menu/xonotic/slider_resolution.c:65
+#, c-format
+msgid "%dx%d"
+msgstr "%dx%d"
+
+#: qcsrc/menu/xonotic/util.qc:270
+#, 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
+#, 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
+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
+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
+#, c-format
+msgid ""
+"Update can be downloaded at:\n"
+"%s\n"
+msgstr ""
+"Actualização pode ser transferida em:\n"
+"%s\n"
+
+#: qcsrc/menu/xonotic/util.qc:337
+msgid "Autogenerating mapinfo for newly added maps..."
+msgstr "Informação de mapas auto-gerada para novos mapas..."
+
+#: qcsrc/menu/xonotic/util.qc:367
+#, c-format
+msgid "^1%s TEST BUILD"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:432
+#, c-format
+msgid "Update to %s now!"
+msgstr "Actualize para %s agora!"
+
+#: qcsrc/menu/xonotic/util.qc:509
+msgid ""
+"^1ERROR: Texture compression is required but not supported.\n"
+"^1Expect visual problems.\n"
+msgstr ""
+"^1ERRO: A compressão de texturas é necessária mas não é suportada.\n"
+"^1Possíveis problemas visuais.\n"
+
+#: qcsrc/menu/xonotic/util.qc:531
+msgid "Arena"
+msgstr "Arena"
+
+#: qcsrc/menu/xonotic/util.qc:532
+msgid "Assault"
+msgstr "Assalto"
+
+#: qcsrc/menu/xonotic/util.qc:533
+msgid "Capture The Flag"
+msgstr "Captura a Bandeira"
+
+#: qcsrc/menu/xonotic/util.qc:534
+msgid "Clan Arena"
+msgstr "Clan Arena"
+
+#: qcsrc/menu/xonotic/util.qc:535
+msgid "Deathmatch"
+msgstr "Combate até à Morte"
+
+#: qcsrc/menu/xonotic/util.qc:536
+msgid "Domination"
+msgstr "Domínio"
+
+#: qcsrc/menu/xonotic/util.qc:537
+msgid "Freeze Tag"
+msgstr "Freeze Tag"
+
+#: qcsrc/menu/xonotic/util.qc:538
+msgid "Keepaway"
+msgstr "Keepaway"
+
+#: qcsrc/menu/xonotic/util.qc:539
+msgid "Key Hunt"
+msgstr "Procura da Chave"
+
+#: qcsrc/menu/xonotic/util.qc:540
+msgid "Last Man Standing"
+msgstr "O Ultimo a Cair"
+
+#: qcsrc/menu/xonotic/util.qc:541
+msgid "Nexball"
+msgstr "Nexball"
+
+#: qcsrc/menu/xonotic/util.qc:542
+msgid "Onslaught"
+msgstr "Investida"
+
+#: qcsrc/menu/xonotic/util.qc:543
+msgid "Race"
+msgstr "Corrida"
+
+#: qcsrc/menu/xonotic/util.qc:544
+msgid "Race CTS"
+msgstr "Corrida CTS"
+
+#: qcsrc/menu/xonotic/util.qc:545
+msgid "Runematch"
+msgstr "Luta de Runas"
+
+#: qcsrc/menu/xonotic/util.qc:546
+msgid "Team Deathmatch"
+msgstr "Combate até à Morte por Equipas"
+
+#: qcsrc/menu/xonotic/util.qc:565
+#, c-format
+msgid "@!#%'n Tuba Throwing"
+msgstr "@!#%'n Tuba Throwing"
+
+#: qcsrc/menu/xonotic/util.qc:583
+msgid "Background:"
+msgstr "Fundo:"
+
+#: qcsrc/menu/xonotic/util.qc:585 qcsrc/menu/xonotic/util.qc:601
+#: qcsrc/menu/xonotic/util.qc:610 qcsrc/menu/xonotic/util.qc:618
+#: qcsrc/menu/xonotic/util.qc:630
+msgid "Default"
+msgstr "Por Defeito"
+
+#: qcsrc/menu/xonotic/util.qc:596
+msgid "Use default"
+msgstr "Usar defeito"
+
+#: qcsrc/menu/xonotic/util.qc:616
+msgid "Team Color:"
+msgstr "Cor da Equipa:"
+
+#: qcsrc/menu/xonotic/util.qh:49
+msgid "Enable panel"
+msgstr "Actival painel"
+
+#: qcsrc/server/w_crylink.qc:2
+msgid "Crylink"
+msgstr "Crylink"
+
+#: qcsrc/server/w_crylink.qc:664
+#, c-format
+msgid "%s succeeded at self-destructing themself with the Crylink"
+msgstr "%s conseguiu auto-destruir-se com a Crylink"
+
+#: qcsrc/server/w_crylink.qc:669
+#, c-format
+msgid "%s could not hide from %s's Crylink"
+msgstr "%s não se conseguiu esconder da Crylink do %s"
+
+#: qcsrc/server/w_crylink.qc:671
+#, c-format
+msgid "%s was too close to %s's Crylink"
+msgstr "%s estava demasiado perto da Crylink do %s"
+
+#: qcsrc/server/w_crylink.qc:673
+#, c-format
+msgid "%s took a close look at %s's Crylink"
+msgstr "%s pode ver de perto a Crylink do %s"
+
+#: qcsrc/server/w_electro.qc:2
+msgid "Electro"
+msgstr "Electro"
+
+#: qcsrc/server/w_electro.qc:571
+#, c-format
+msgid "%s could not remember where they put plasma"
+msgstr "%s não se conseguiu lembrar onde pôs a plasma"
+
+#: qcsrc/server/w_electro.qc:573
+#, c-format
+msgid "%s played with plasma"
+msgstr "%s brincou com plasma"
+
+#: qcsrc/server/w_electro.qc:580
+#, c-format
+msgid "%s just noticed %s's blue ball"
+msgstr "%s acabou de reparar na bola azul de %s"
+
+#: qcsrc/server/w_electro.qc:582
+#, c-format
+msgid "%s got in touch with %s's blue ball"
+msgstr "%s esteve em contacto com a bola azul de %s"
+
+#: qcsrc/server/w_electro.qc:587
+#, c-format
+msgid "%s felt the electrifying air of %s's combo"
+msgstr "%s sentiu o ar electrizante do combo de %s"
+
+#: qcsrc/server/w_electro.qc:589
+#, c-format
+msgid "%s got too close to %s's blue beam"
+msgstr "%s estava perto demais do raio azul de %s"
+
+#: qcsrc/server/w_electro.qc:591
+#, c-format
+msgid "%s was blasted by %s's blue beam"
+msgstr "%s foi atingido pelo raio azul de %s"
+
+#: qcsrc/server/w_fireball.qc:2
+msgid "Fireball"
+msgstr "Fireball"
+
+#: qcsrc/server/w_fireball.qc:417
+#, c-format
+msgid "%s forgot about some firemine"
+msgstr "%s esqueceu-se das minas"
+
+#: 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"
+
+#: qcsrc/server/w_fireball.qc:426
+#, c-format
+msgid "%s tried to catch %s's firemine"
+msgstr "%s tentou apanhar a mina de %s"
+
+#: qcsrc/server/w_fireball.qc:428
+#, c-format
+msgid "%s fatefully ignored %s's firemine"
+msgstr "%s ignorou fatalmente a mina de %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"
+
+#: 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"
+
+#: 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"
+
+#: qcsrc/server/w_fireball.qc:442
+#, c-format
+msgid "%s tasted %s's fireball"
+msgstr "%s provou a bola de fogo de %s"
+
+#: qcsrc/server/w_grenadelauncher.qc:2
+msgid "Mortar"
+msgstr "Mortar"
+
+#: qcsrc/server/w_grenadelauncher.qc:378
+#, c-format
+msgid "%s tried out his own grenade"
+msgstr "%s experimentou a sua própria granada"
+
+#: qcsrc/server/w_grenadelauncher.qc:380
+#, c-format
+msgid "%s detonated"
+msgstr "%s foi detonado"
+
+#: qcsrc/server/w_grenadelauncher.qc:386
+#, c-format
+msgid "%s didn't see %s's grenade"
+msgstr "%s não viu a granada de %s"
+
+#: qcsrc/server/w_grenadelauncher.qc:388
+#, c-format
+msgid "%s almost dodged %s's grenade"
+msgstr "%s quase se desviou da granada de %s"
+
+#: qcsrc/server/w_grenadelauncher.qc:390
+#, c-format
+msgid "%s ate %s's grenade"
+msgstr "%s comeu a granada de %s"
+
+#: qcsrc/server/w_hagar.qc:2
+msgid "Hagar"
+msgstr "Hagar"
+
+#: qcsrc/server/w_hagar.qc:209 qcsrc/server/w_seeker.qc:655
+#, c-format
+msgid "%s played with tiny rockets"
+msgstr "%s brincou com pequenos foguetes"
+
+#: qcsrc/server/w_hagar.qc:213
+#, c-format
+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:215 qcsrc/server/w_seeker.qc:661
+#, c-format
+msgid "%s was pummeled by %s"
+msgstr "%s foi serrado por %s"
+
+#: qcsrc/server/w_hlac.qc:2
+msgid "Heavy Laser Assault Cannon"
+msgstr "Heavy Laser Assault Cannon"
+
+#: qcsrc/server/w_hlac.qc:242
+#, c-format
+msgid "%s was cut down by %s"
+msgstr "%s foi totalmente cortado por %s"
+
+#: qcsrc/server/w_hook.qc:2
+msgid "Grappling Hook"
+msgstr "Grappling Hook"
+
+#: qcsrc/server/w_hook.qc:266 qcsrc/server/w_minstanex.qc:290
+#: qcsrc/server/w_nex.qc:267 qcsrc/server/w_porto.qc:296
+#: qcsrc/server/w_shotgun.qc:203 qcsrc/server/w_uzi.qc:317
+#, c-format
+msgid "%s did the impossible"
+msgstr "%s fez o impossível"
+
+#: 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"
+
+#: qcsrc/server/w_laser.qc:2
+msgid "Laser"
+msgstr "Laser"
+
+#: qcsrc/server/w_laser.qc:305
+#, c-format
+msgid "%s lasered themself to hell"
+msgstr "%s laserou-se até à morte"
+
+#: qcsrc/server/w_laser.qc:309
+#, c-format
+msgid "%s was cut in half by %s's gauntlet"
+msgstr "%s foi cortado ao meio pela gauntlet de %s"
+
+#: qcsrc/server/w_laser.qc:311
+#, c-format
+msgid "%s was lasered to death by %s"
+msgstr "%s foi lasereado até à morte por %s"
+
+#: qcsrc/server/w_minelayer.qc:2
+msgid "Mine Layer"
+msgstr "Mine Layer"
+
+#: qcsrc/server/w_minelayer.qc:495 qcsrc/server/w_rocketlauncher.qc:500
+#, c-format
+msgid "%s exploded"
+msgstr "%s explodiu"
+
+#: qcsrc/server/w_minelayer.qc:499
+#, c-format
+msgid "%s got too close to %s's mine"
+msgstr "%s estava perto demais da mina de %s"
+
+#: qcsrc/server/w_minelayer.qc:501
+#, c-format
+msgid "%s almost dodged %s's mine"
+msgstr "%s quase se desviou da mina de %s"
+
+#: qcsrc/server/w_minelayer.qc:503
+#, c-format
+msgid "%s stepped on %s's mine"
+msgstr "%s pisou a mina de %s"
+
+#: qcsrc/server/w_minstanex.qc:2
+msgid "MinstaNex"
+msgstr "MinstaNex"
+
+#: qcsrc/server/w_minstanex.qc:292 qcsrc/server/w_nex.qc:269
+#, c-format
+msgid "%s has been vaporized by %s"
+msgstr "%s foi vaporizado por %s"
+
+#: qcsrc/server/w_nex.qc:2
+msgid "Nex"
+msgstr "Nex"
+
+#: qcsrc/server/w_porto.qc:2
+msgid "Port-O-Launch"
+msgstr "Port-O-Launch"
+
+#: qcsrc/server/w_porto.qc:298
+#, c-format
+msgid "%s felt %s doing the impossible to him"
+msgstr "%s sentiu %s fazer-lhe o impossível"
+
+#: qcsrc/server/w_rocketlauncher.qc:2
+msgid "Rocket Launcher"
+msgstr "Rocket Launcher"
+
+#: qcsrc/server/w_rocketlauncher.qc:504
+#, c-format
+msgid "%s got too close to %s's rocket"
+msgstr "%s estava demasiado perto do foguete de %s"
+
+#: qcsrc/server/w_rocketlauncher.qc:506
+#, c-format
+msgid "%s almost dodged %s's rocket"
+msgstr "%s quase se desviou do foguete de %s"
+
+#: qcsrc/server/w_rocketlauncher.qc:508
+#, c-format
+msgid "%s ate %s's rocket"
+msgstr "%s comeu o foguete de %s"
+
+#: qcsrc/server/w_seeker.qc:2
+msgid "T.A.G. Seeker"
+msgstr "T.A.G. Seeker"
+
+#: qcsrc/server/w_seeker.qc:659
+#, c-format
+msgid "%s was tagged by %s"
+msgstr "%s foi marcado por %s"
+
+#: qcsrc/server/w_shotgun.qc:2
+msgid "Shotgun"
+msgstr "Shotgun"
+
+#: qcsrc/server/w_shotgun.qc:207
+#, c-format
+msgid "%2$s ^7slapped %1$s ^7around a bit with a large ^2shotgun"
+msgstr "%2$s ^7maltratou %1$s ^7com uma grande ^2caçadeira"
+
+#: qcsrc/server/w_shotgun.qc:209
+#, c-format
+msgid "%s was gunned by %s"
+msgstr "%s foi atingido por %s"
+
+#: qcsrc/server/w_sniperrifle.qc:2
+msgid "Sniper Rifle"
+msgstr "Sniper Rifle"
+
+#: qcsrc/server/w_sniperrifle.qc:229
+#, c-format
+msgid "%s shot themself automatically"
+msgstr "%s disparou em si próprio"
+
+#: qcsrc/server/w_sniperrifle.qc:231
+#, c-format
+msgid "%s sniped themself somehow"
+msgstr "%s snipou-se de alguma forma..."
+
+#: qcsrc/server/w_sniperrifle.qc:238
+#, 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"
+
+#: qcsrc/server/w_sniperrifle.qc:240
+#, c-format
+msgid "%s died in %s's bullet hail"
+msgstr "%s morreu na chuva de balas de %s"
+
+#: qcsrc/server/w_sniperrifle.qc:247
+#, c-format
+msgid "%s failed to hide from %s's rifle"
+msgstr "%s não se conseguiu esconder da espingarda de %s"
+
+#: qcsrc/server/w_sniperrifle.qc:252
+#, c-format
+msgid "%s got hit in the head by %s"
+msgstr "%s foi atingido na cabeça por %s"
+
+#: qcsrc/server/w_sniperrifle.qc:254 qcsrc/server/w_uzi.qc:321
+#, c-format
+msgid "%s was sniped by %s"
+msgstr "%s foi snipado por %s"
+
+#: qcsrc/server/w_tuba.qc:2
+#, c-format
+msgid "@!#%'n Tuba"
+msgstr "@!#%'n Tuba"
+
+#: qcsrc/server/w_tuba.qc:263
+#, c-format
+msgid "%s hurt his own ears with the @!#%%'n Tuba"
+msgstr "%s magoou-se a si próprio com a Tuba"
+
+#: qcsrc/server/w_tuba.qc:267
+#, 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"
+
+#: qcsrc/server/w_uzi.qc:2
+msgid "Machine Gun"
+msgstr "Machine Gun"
+
+#: qcsrc/server/w_uzi.qc:323
+#, c-format
+msgid "%s was riddled full of holes by %s"
+msgstr "%s foi enchido de buracos por %s"
+
+#~ msgid "%d/%d"
+#~ msgstr "%d/%d"
+
+#~ msgid "Waypoint settings:"
+#~ msgstr "Definições dos caminhos:"
--- /dev/null
+# Xonotic Romanian Translation.
+# Copyright (C) 2011
+# This file is distributed under the same license as the PACKAGE package.
+# MirceaKitsune <sonichedgehog_hyperblast00@yahoo.com>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Xonotic 0.1preview\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-04-30 10:07+0200\n"
+"PO-Revision-Date: 2011-01-18 11:53+0100\t\n"
+"Last-Translator: MirceaKitsune <sonichedgehog_hyperblast00@yahoo.com>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ro\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: qcsrc/menu/gamecommand.qc:47
+#, c-format
+msgid "error: status is %d\n"
+msgstr "eroare: statusul este %d\n"
+
+#: qcsrc/menu/gamecommand.qc:65
+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
+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
+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
+msgid "error creating curl handle\n"
+msgstr "eroare in crearea unei manevre curl"
+
+#: qcsrc/menu/gamecommand.qc:239
+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 "
+"ajutor (in consola).\n"
+
+#: qcsrc/menu/item/gecko.c:49
+msgid "Browser not initialized!"
+msgstr "Browserul nu a fost initializat!"
+
+#: qcsrc/menu/item/label.c:63
+#, c-format
+msgid "NOTE: label text %s too wide for label, condensed by factor %f\n"
+msgstr "ATENTIE: eticheta text %s este prea mare, condensata cu %f\n"
+
+#: qcsrc/menu/item/listbox.c:300
+#, c-format
+msgid "Item %d"
+msgstr "Obiect %d"
+
+#: qcsrc/menu/item/slider.c:64
+#, c-format
+msgid "%d (%s)"
+msgstr "%d (%s)"
+
+#: qcsrc/menu/item/textslider.c:29 qcsrc/menu/item/textslider.c:31
+msgid "custom"
+msgstr "personalizat"
+
+#: qcsrc/menu/menu.qc:29
+#, 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:66
+msgid "???"
+msgstr "???"
+
+#: qcsrc/menu/xonotic/campaign.c:285
+#, c-format
+msgid "Level %d: %s"
+msgstr "Nivelul %d: %s"
+
+#: qcsrc/menu/xonotic/cvarlist.c:85
+msgid "will be saved to config.cfg"
+msgstr "se va salva catre config.cfg"
+
+#: qcsrc/menu/xonotic/cvarlist.c:87
+msgid "will not be saved"
+msgstr "nu se va salva"
+
+#: qcsrc/menu/xonotic/cvarlist.c:89
+msgid "private"
+msgstr "privat"
+
+#: qcsrc/menu/xonotic/cvarlist.c:91
+msgid "engine setting"
+msgstr "setari motor"
+
+#: qcsrc/menu/xonotic/cvarlist.c:93
+msgid "read only"
+msgstr "numai de citit"
+
+#: qcsrc/menu/xonotic/dialog_credits.c:5
+msgid "Credits"
+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:55
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:61
+#: qcsrc/menu/xonotic/dialog_singleplayer_winner.c:21
+msgid "OK"
+msgstr "OK"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:4
+msgid "Welcome"
+msgstr "Bun venit"
+
+#: 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 ""
+"Bine ati venit in Xonotic, va rugam selectati limba dorita si numele "
+"dumneavoastra de jucator pentru a incepe. Puteti schimba aceste preferinte "
+"mai tarziu din cadrul meniului."
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:38
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:35
+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_settings_input_userbind.c:39
+msgid "Name:"
+msgstr "Nume:"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:69
+msgid "Save settings"
+msgstr "Salvare setari"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:4
+msgid "Ammo Panel"
+msgstr "Fereastra Munitii"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:22
+msgid "Ammunition display:"
+msgstr "Afisaj mutitii:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:25
+msgid "Show only current ammo type"
+msgstr "Afiseaza numai munitia armei selectate"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:29
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:28
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:40
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:28
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:40
+msgid "Left"
+msgstr "Stanga"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:30
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:30
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:41
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:30
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:41
+msgid "Right"
+msgstr "Dreapta"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:4
+msgid "Chat Panel"
+msgstr "Fereastra Chat"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:22
+msgid "Chat entries:"
+msgstr "Intrari chat:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:25
+msgid "Chat size:"
+msgstr "Marime chat:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:29
+msgid "Chat lifetime:"
+msgstr "Durata chat:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:33
+msgid "Chat beep sound"
+msgstr "Sunet chat:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_engineinfo.c:4
+msgid "Engine Info Panel"
+msgstr "Fereastra Informatii Motor"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_engineinfo.c:22
+msgid "Engine info:"
+msgstr "Informatii motor:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_engineinfo.c:25
+msgid "Use an averaging algorithm for fps"
+msgstr "Utilizare algoritm centrare FPS"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:4
+msgid "Health/Armor Panel"
+msgstr "Fereastra Viata/Armura"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:22
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:22
+msgid "Enable status bar"
+msgstr "Activare bara de statut"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:24
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:24
+msgid "Status bar alignment:"
+msgstr "Aliniere bara de statut:"
+
+#: 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 "Interior"
+
+#: 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 "Exterior"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:37
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:37
+msgid "Icon alignment:"
+msgstr "Aliniere iconuri:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:45
+msgid "Flip health and armor positions"
+msgstr "Oglindire pozitie viata/armura"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_infomessages.c:4
+msgid "Info Messages Panel"
+msgstr "Fereastra Informatii"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_infomessages.c:22
+msgid "Info messages:"
+msgstr "Informatii:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_infomessages.c:25
+msgid "Flip align"
+msgstr "Oglindire pozitie"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_modicons.c:4
+msgid "Mod Icons Panel"
+msgstr "Fereastra Iconuri Moduri"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:4
+msgid "Notification Panel"
+msgstr "Fereastra Notificatii"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:22
+msgid "Notifications:"
+msgstr "Notificatii:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:25
+msgid "Also print notifications to the console"
+msgstr "Printare notificatii si in consola"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:28
+msgid "Flip notify order"
+msgstr "Inversare ordine notificatii"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:31
+msgid "Entry lifetime:"
+msgstr "Durata notificare:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:35
+msgid "Entry fadetime:"
+msgstr "Durata atenuare notificatie:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:4
+msgid "Powerups Panel"
+msgstr "Fereastra Powerup"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:45
+msgid "Flip strength and shield positions"
+msgstr "Oglindire pozitie iconuri"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:4
+msgid "Pressed Keys Panel"
+msgstr "Fereastra Taste Apasate"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:21
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:21
+msgid "Panel disabled"
+msgstr "Dezactivata"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:22
+msgid "Panel enabled when spectating"
+msgstr "Activa pentru spectatori"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:23
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:23
+msgid "Panel always enabled"
+msgstr "Mereu activa"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:30
+msgid "Forced aspect:"
+msgstr "Aspect fortat:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_racetimer.c:4
+msgid "Race Timer Panel"
+msgstr "Fereastra Timp Curse"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:4
+msgid "Radar Panel"
+msgstr "Fereastra Radar"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:22
+msgid "Panel enabled in teamgames"
+msgstr "Activa in jocuri de echipa"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:29
+msgid "Radar:"
+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:608
+msgid "Alpha:"
+msgstr "Opacitate:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:36
+msgid "Rotation:"
+msgstr "Rotatie:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:38
+msgid "Forward"
+msgstr "Inainte"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:39
+msgid "West"
+msgstr "Vest"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:40
+msgid "South"
+msgstr "Sud"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:41
+msgid "East"
+msgstr "Est"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:42
+msgid "North"
+msgstr "Nord"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:46
+msgid "Scale:"
+msgstr "Marime:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:50
+msgid "Zoom mode:"
+msgstr "Modalitate Zoom:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:52
+msgid "Zoomed in"
+msgstr "In interior"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:53
+msgid "Zoomed out"
+msgstr "In exterior"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:54
+msgid "Always zoomed"
+msgstr "Permanent activ"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:55
+msgid "Never zoomed"
+msgstr "Niciodata activ"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_score.c:4
+msgid "Score Panel"
+msgstr "Fereastra Scor"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_timer.c:4
+msgid "Timer Panel"
+msgstr "Fereastra Timp"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_timer.c:22
+msgid "Timer:"
+msgstr "Timp:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_timer.c:25
+msgid "Show elapsed time"
+msgstr "Afisaj timp ramas"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_vote.c:4
+msgid "Vote Panel"
+msgstr "Fereastra Voturi"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_vote.c:22
+msgid "Alpha after voting:"
+msgstr "Opacitate dupa vot:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:4
+msgid "Weapons Panel"
+msgstr "Fereastra Arme"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:24
+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"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:28
+#, c-format
+msgid "%ds"
+msgstr "%ds"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:32
+msgid "Fade effect:"
+msgstr "Atenuare opacitate:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:33
+msgid "EF^None"
+msgstr "Nici una"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:35
+msgid "Slide"
+msgstr "Glisare"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:37
+msgid "Alpha"
+msgstr "Opacitate"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:40
+msgid "Weapon icons:"
+msgstr "Iconuri arme:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:43
+msgid "Show weapon ID as:"
+msgstr "Afisaj ID arme ca:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:44
+msgid "SHOWAS^None"
+msgstr "Nici una"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:45
+msgid "Number"
+msgstr "Numar"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:46
+msgid "Bind"
+msgstr "Tasta"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:49
+msgid "Show Accuracy"
+msgstr "Afisaj Acuratete"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:50
+msgid "Show Ammo"
+msgstr "Afisaj Munitie"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:53
+msgid "Ammo bar color:"
+msgstr "Culoare bara munitie:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:59
+msgid "Ammo bar alpha:"
+msgstr "Opacitate bara munitie:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:4
+msgid "Panel HUD Setup"
+msgstr "Configurate Interfata (HUD)"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:21
+msgid "Panel background defaults:"
+msgstr "Setari normale fond:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:25
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:37
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:52
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:91 qcsrc/menu/xonotic/util.qc:586
+#: qcsrc/menu/xonotic/util.qc:602 qcsrc/menu/xonotic/util.qc:619
+msgid "Disable"
+msgstr "Dezactivat"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:30
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:77 qcsrc/menu/xonotic/util.qc:591
+msgid "Color:"
+msgstr "Culoare:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:35 qcsrc/menu/xonotic/util.qc:599
+msgid "Border size:"
+msgstr "Marime borduri:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:50
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:89
+msgid "Team color:"
+msgstr "Culoare echipa:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:58 qcsrc/menu/xonotic/util.qc:625
+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:628
+msgid "Padding:"
+msgstr "Ajustare:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:68
+msgid "HUD Dock:"
+msgstr "Magnet ferestre:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:70
+msgid "DOCK^Disabled"
+msgstr "Dezactivat"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:71
+msgid "DOCK^Small"
+msgstr "Mic"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:72
+msgid "DOCK^Medium"
+msgstr "Mediu"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:73
+msgid "DOCK^Large"
+msgstr "Mare"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:96
+msgid "Grid settings:"
+msgstr "Setari grila:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:99
+msgid "Snap panels to grid"
+msgstr "Utilizare grila pentru ferestre"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:102
+msgid "Grid size:"
+msgstr "Marime grila:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:103
+msgid "X:"
+msgstr "X:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:109
+msgid "Y:"
+msgstr "Y:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:117
+msgid "Exit setup"
+msgstr "Iesire configurare"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:4
+msgid "Multiplayer"
+msgstr "Multiplayer"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:18
+msgid "Servers"
+msgstr "Servere"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:19
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:5
+msgid "Create"
+msgstr "Creare Joc"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:20
+msgid "Demos"
+msgstr "Demonstratii"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:21
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:5
+msgid "Player Setup"
+msgstr "Setari Jucator"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:35
+msgid "Game type:"
+msgstr "Mod joc:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:47
+msgid "Match settings:"
+msgstr "Setari meci:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:50
+msgid "Time limit:"
+msgstr "Limita de timp:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:54
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:62
+msgid "Use map specified default"
+msgstr "Utilizare setari harta"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:57
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:156
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:157
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:158
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:162
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:163
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:164
+msgid "Point limit:"
+msgstr "Limita de puncte:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:65
+msgid "Player slots:"
+msgstr "Numar maxim jucatori:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:68
+msgid "Number of bots:"
+msgstr "Numar boti:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:72
+msgid "Bot skill:"
+msgstr "Dificultate boti:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:75
+msgid "Botlike"
+msgstr "Nula"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:76
+msgid "Beginner"
+msgstr "Incepator"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:77
+msgid "You will win"
+msgstr "Vei castiga"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:78
+msgid "You can win"
+msgstr "Poti castiga"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:79
+msgid "You might win"
+msgstr "Ai putea castiga"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:80
+msgid "Advanced"
+msgstr "Avansat"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:81
+msgid "Expert"
+msgstr "Expert"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:82
+msgid "Pro"
+msgstr "Profesional"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:83
+msgid "Assassin"
+msgstr "Asasin"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:84
+msgid "Unhuman"
+msgstr "Inuman"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:85
+msgid "Godlike"
+msgstr "Dumnezeiesc"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:89
+msgid "Mutators..."
+msgstr "Modificari speciale..."
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:98
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:84
+msgid "Advanced settings..."
+msgstr "Setari avansate..."
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:105
+msgid "Map list:"
+msgstr "Lista harti:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:111
+msgid "Select all"
+msgstr "Selecteaza totul"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:114
+msgid "Select none"
+msgstr "Golire selectie"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:120
+msgid "Start Multiplayer!"
+msgstr "Pornire Joc Multiplayer!"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:155
+msgid "Capture limit:"
+msgstr "Limita de capturi:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:159
+msgid "Lives:"
+msgstr "Vieti:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:160
+msgid "Laps:"
+msgstr "Ture:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:161
+msgid "Goals:"
+msgstr "Goluri:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:165
+msgid "Frag limit:"
+msgstr "Limita de omoruri:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:6
+msgid "Advanced server settings"
+msgstr "Setari avansate server"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:25
+msgid "Game settings:"
+msgstr "Setari joc"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:28
+msgid "Allow spectating"
+msgstr "Perimite spectatori"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:31
+msgid "Spawn shield:"
+msgstr "Scut pornire:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:36
+msgid "Game speed:"
+msgstr "Viteza joc:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:40
+msgid "Teamplay settings:"
+msgstr "Setari echipe:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:43
+msgid "Friendly fire scale:"
+msgstr "Scara foc prietenesc:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:47
+msgid "Virtual friendly fire (effect only)"
+msgstr "Foc prietenesc virtual (efect)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:50
+msgid "Friendly fire penalty:"
+msgstr "Penalitate foc prietenesc:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:54
+msgid "Virtual penalty (effect only)"
+msgstr "Penalitate virtuala (efect)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:57
+msgid "Teams:"
+msgstr "Echipe:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:66
+msgid "Map voting:"
+msgstr "Vot harti:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:68
+msgid "No voting"
+msgstr "Vot dezactivat"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:69
+msgid "2 choices"
+msgstr "2 alegeri"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:70
+msgid "3 choices"
+msgstr "3 alegeri"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:71
+msgid "4 choices"
+msgstr "4 alegeri"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:72
+msgid "5 choices"
+msgstr "5 alegeri"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:73
+msgid "6 choices"
+msgstr "6 alegeri"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:74
+msgid "7 choices"
+msgstr "7 alegeri"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:75
+msgid "8 choices"
+msgstr "8 alegeri"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:76
+msgid "9 choices"
+msgstr "9 alageri"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:79
+msgid "Simple majority wins vcall"
+msgstr "Majoritatea castiga mereu"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:5
+msgid "Map Information"
+msgstr "Informatii harta:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:49
+msgid "Full item placement"
+msgstr "Plasare obiecte"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:49
+msgid "MinstaGib only"
+msgstr "Numai MinstaGib"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:78
+msgid "Title:"
+msgstr "Titlu:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:84
+msgid "Author:"
+msgstr "Autor:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:90
+msgid "Features:"
+msgstr "Trasaturi:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:95
+msgid "Game types:"
+msgstr "Moduri de joc:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:119
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:314
+msgid "Close"
+msgstr "Inchidere"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:122
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:46
+msgid "Play"
+msgstr "Joaca"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:7
+msgid "Mutators"
+msgstr "Modificari speciale"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:33
+msgid "All Weapons Arena"
+msgstr "Toate armele"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:35
+msgid "Most Weapons Arena"
+msgstr "Cele mai multe arme"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:56
+#, c-format
+msgid "%s Arena"
+msgstr "Arena %s"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:68
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:167
+msgid "Dodging"
+msgstr "Satiruta laterala"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:70
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:250
+msgid "MinstaGib"
+msgstr "MinstaGib"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:72
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:253
+msgid "NIX"
+msgstr "NIX"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:74
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:205
+msgid "Rocket Flying"
+msgstr "Zbor Rachete"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:78
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:264
+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
+msgid "Low gravity"
+msgstr "Gravitatie scazuta"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:82
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:170
+msgid "Cloaked"
+msgstr "Jucatori transparenti"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:84
+msgid "Hook"
+msgstr "Carlig"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:86
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:173
+msgid "Midair"
+msgstr "Lovituri in aer"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:88
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:176
+msgid "Vampire"
+msgstr "Vampir"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:90
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:208
+msgid "Piñata"
+msgstr "Piñata"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:92
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:211
+msgid "Weapons stay"
+msgstr "Arme persistente"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:94
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:180
+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
+msgid "Jet pack"
+msgstr "Reactie"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:98
+msgid "MUT^None"
+msgstr "Nici una"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:164
+msgid "Gameplay mutators:"
+msgstr "Modificari speciale joc:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:196
+msgid "Weapon & item mutators:"
+msgstr "Modificari speciale arme si obiecte:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:199
+msgid "Grappling hook"
+msgstr "Carlig"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:215
+msgid "Weapon arenas:"
+msgstr "Arene arme:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:218
+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
+msgid "with laser"
+msgstr "cu arma laser"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:247
+msgid "Special arenas:"
+msgstr "Arene speciale:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:260
+msgid "Most weapons"
+msgstr "Majoritatea armelor"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:4
+msgid "Demo"
+msgstr "Demonstratie"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:28
+msgid "Record demos while playing"
+msgstr "Creare demonstratii in timpul jocului"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:32
+#: 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_join.c:29
+#: qcsrc/menu/xonotic/dialog_settings_input.c:41
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:24
+msgid "Clear"
+msgstr "Curatare"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:43
+msgid "Timedemo"
+msgstr "Timedemo"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:4
+msgid "Join"
+msgstr "Alaturare"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:36
+msgid "SRVS^Empty"
+msgstr "Gol"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:40
+msgid "SRVS^Full"
+msgstr "Plin"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:44
+msgid "Pause"
+msgstr "Pauza"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:56
+msgid "Address:"
+msgstr "Adresa:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:67
+msgid "Info..."
+msgstr "Informatii..."
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:72
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:317
+msgid "Join!"
+msgstr "Alaturare!"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:5
+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
+msgid "N/A"
+msgstr "N/A"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:158
+#, c-format
+msgid "%d/%d, %d free player slots"
+msgstr "%d/%d, %d locuri disponibile"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:172
+#, c-format
+msgid "%d modified settings"
+msgstr "%d setari modificate"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:172
+msgid "Official settings"
+msgstr "Setarile oficiale"
+
+#: 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:205
+msgid "not supported (can't connect)"
+msgstr "nesuportat (nu se poate conecta)"
+
+#: 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:211
+msgid "supported (will encrypt)"
+msgstr "suportat (se va 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:217
+msgid "requested (will encrypt)"
+msgstr "cerut (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:223
+msgid "required (can't connect)"
+msgstr "necesar (nu se poate conecta)"
+
+#: 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:246
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:269
+msgid "Players:"
+msgstr "Jucatori:"
+
+#: 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:259
+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
+msgid "Mod:"
+msgstr "Modificare:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:284
+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:295
+msgid "CA:"
+msgstr "CA:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:301
+msgid "Key:"
+msgstr "Cheie:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:307
+msgid "Encryption:"
+msgstr "Encriptare:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:63
+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:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:103
+msgid "Weapon settings..."
+msgstr "Setari arme..."
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:110
+msgid "Crosshair:"
+msgstr "Ochian:"
+
+#: 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
+msgid "Crosshair size:"
+msgstr "Marime ochian:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:134
+msgid "Crosshair alpha:"
+msgstr "Opacitate ochian:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:138
+msgid "Crosshair color:"
+msgstr "Culoare ochian:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:140
+msgid "By health"
+msgstr "Dupa sanatate"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:143
+msgid "Custom"
+msgstr "personalizat"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:148
+msgid "Enable center dot"
+msgstr "Utilizare punct ochian"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:151
+msgid "Size:"
+msgstr "Marime:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:158
+msgid "Hit test:"
+msgstr "Detectare tinta:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:159
+msgid "HTST^None"
+msgstr "Nici una"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:160
+msgid "TrueAim"
+msgstr "TrueAim"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:161
+msgid "Enemies"
+msgstr "Dusmani"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:164
+msgid "Waypoints setup..."
+msgstr "Setari indicatoare..."
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:169
+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.c:175
+msgid "MDL^None"
+msgstr "Nici una"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:176
+msgid "MDL^Custom"
+msgstr "Personalizat"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:177
+msgid "MDL^All"
+msgstr "Toate"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:180
+msgid "Disable gore effects"
+msgstr "Dezactivare efecte violente"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:182
+msgid "Gibs:"
+msgstr "Cotlete:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:184
+msgid "GIBS^None"
+msgstr "Nici unul"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:185
+msgid "GIBS^Few"
+msgstr "Putine"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:186
+msgid "GIBS^Many"
+msgstr "Multe"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:187
+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.c:195
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:178
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:194
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:30
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:41
+#: qcsrc/menu/xonotic/dialog_settings_video.c:105
+msgid "Apply immediately"
+msgstr "Aplica imediat"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:5
+msgid "Waypoints"
+msgstr "Indicatoare"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:23
+msgid "Show base waypoints"
+msgstr "Afisaj indicatoare de baza"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:25
+msgid "Waypoint scale:"
+msgstr "Marime indicatoare:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:29
+msgid "Waypoint alpha:"
+msgstr "Opacitate indicatoare:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:34
+msgid "Show names:"
+msgstr "Afisaj nume:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:37
+msgid "Teammates"
+msgstr "Coechipieri"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:38
+msgid "All players"
+msgstr "Toti jucatorii"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:6
+msgid "Weapon settings"
+msgstr "Setari arme"
+
+#: 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:34
+msgid "Up"
+msgstr "Sus"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:37
+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:45
+msgid "Draw 1st person weapon model"
+msgstr "Afisaj model 1st person"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:48
+msgid "Left align"
+msgstr "Aliniere stanga"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:50
+msgid "Right align"
+msgstr "Aliniere dreapta"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:53
+msgid "Flip view horizontally"
+msgstr "Oglindire orizontala ecran"
+
+#: qcsrc/menu/xonotic/dialog_news.c:4
+msgid "News"
+msgstr "Stiri"
+
+#: qcsrc/menu/xonotic/dialog_news.c:18
+msgid "http://www.xonotic.org/team/blog/"
+msgstr "http://www.xonotic.org/team/blog/"
+
+#: qcsrc/menu/xonotic/dialog_quit.c:4
+msgid "Quit"
+msgstr "Iesire"
+
+#: qcsrc/menu/xonotic/dialog_quit.c:17
+msgid "Are you sure you want to quit?"
+msgstr "Sunteti sigur ca vreti sa iesiti?"
+
+#: qcsrc/menu/xonotic/dialog_quit.c:20
+msgid "Yes"
+msgstr "Da"
+
+#: qcsrc/menu/xonotic/dialog_quit.c:21
+msgid "No"
+msgstr "Nu"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:4
+msgid "Settings"
+msgstr "Setari"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:18
+#: qcsrc/menu/xonotic/dialog_settings_input.c:4
+msgid "Input"
+msgstr "Control"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:19
+#: qcsrc/menu/xonotic/dialog_settings_video.c:4
+msgid "Video"
+msgstr "Video"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:20
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:4
+msgid "Effects"
+msgstr "Efecte"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:21
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:4
+msgid "Audio"
+msgstr "Audio"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:22
+#: qcsrc/menu/xonotic/dialog_settings_network.c:4
+msgid "Network"
+msgstr "Retea"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:23
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:4
+msgid "Misc"
+msgstr "Altele"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:27
+msgid "Master:"
+msgstr "General:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:33
+msgid "Music:"
+msgstr "Muzica:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:40
+msgid "VOL^Ambient:"
+msgstr "Ambianta:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:48
+msgid "Info:"
+msgstr "Informatii:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:57
+msgid "Items:"
+msgstr "Obiecte:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:65
+msgid "Pain:"
+msgstr "Durere:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:73
+msgid "Player:"
+msgstr "Jucator:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:81
+msgid "Shots:"
+msgstr "Focuri de arma:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:88
+msgid "Voice:"
+msgstr "Voci:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:96
+msgid "Weapons:"
+msgstr "Arme:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:103
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:161
+msgid "Frequency:"
+msgstr "Frecventa:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:105
+msgid "8 kHz"
+msgstr "8 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:106
+msgid "11.025 kHz"
+msgstr "11.025 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:107
+msgid "16 kHz"
+msgstr "16 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:108
+msgid "22.05 kHz"
+msgstr "22.05 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:109
+msgid "24 kHz"
+msgstr "24 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:110
+msgid "32 kHz"
+msgstr "32 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:111
+msgid "44.1 kHz"
+msgstr "44.1 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:112
+msgid "48 kHz"
+msgstr "48 kHz"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:115
+msgid "Channels:"
+msgstr "Canale:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:117
+msgid "Mono"
+msgstr "Mono"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:118
+msgid "Stereo"
+msgstr "Stereo"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:119
+msgid "2.1"
+msgstr "2.1"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:120
+msgid "4"
+msgstr "4"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:121
+msgid "5"
+msgstr "5"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:122
+msgid "5.1"
+msgstr "5.1"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:123
+msgid "6.1"
+msgstr "6.1"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:124
+msgid "7.1"
+msgstr "7.1"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:128
+msgid "Swap Stereo"
+msgstr "Inversare canale stereo"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:132
+msgid "Headphone friendly mode"
+msgstr "Mod casti audio"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:136
+msgid "Spatial voices:"
+msgstr "Voci spatializate:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:137
+msgid "VOCS^None"
+msgstr "Nici una"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:138
+msgid "VOCS^Taunts"
+msgstr "Glume"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:139
+msgid "VOCS^All"
+msgstr "Toate"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:142
+msgid "Taunt range:"
+msgstr "Distanta voci:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:145
+msgid "RNG^Very short"
+msgstr "Foarte scurta"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:146
+msgid "RNG^Short"
+msgstr "Scurta"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:147
+msgid "RNG^Normal"
+msgstr "Normala"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:148
+msgid "RNG^Long"
+msgstr "Lunga"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:149
+msgid "RNG^Full"
+msgstr "Toate"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:156
+msgid "Automatic taunts"
+msgstr "Glume automate"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:165
+msgid "Time warning:"
+msgstr "Avertisment timp:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:167
+msgid "WRN^None"
+msgstr "Nici una"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:168
+msgid "1 minute"
+msgstr "1 minut"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:169
+msgid "5 minutes"
+msgstr "5 minute"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:170
+msgid "WRN^Both"
+msgstr "Ambele"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:173
+msgid "Hit indicator"
+msgstr "Indicator lovituri"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:175
+msgid "Menu sounds"
+msgstr "Sunete meniu"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:38
+msgid "Quality preset:"
+msgstr "Setari calitate:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:41
+msgid "PRE^OMG!"
+msgstr "SFINTE!"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:42
+msgid "PRE^Low"
+msgstr "Scazut"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:43
+msgid "PRE^Medium"
+msgstr "Mediu"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:44
+msgid "PRE^Normal"
+msgstr "Normal"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:45
+msgid "PRE^High"
+msgstr "Ridicat"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:46
+msgid "PRE^Ultra"
+msgstr "Foarte ridicat"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:48
+msgid "PRE^Ultimate"
+msgstr "Extrem de ridicat"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:52
+msgid "Geometry detail:"
+msgstr "Detaliu geometrie:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:54
+msgid "DET^Lowest"
+msgstr "Cel mai scazut"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:55
+msgid "DET^Low"
+msgstr "Scazut"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:56
+msgid "DET^Normal"
+msgstr "Normal"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:57
+msgid "DET^Good"
+msgstr "Ridicat"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:58
+msgid "DET^Best"
+msgstr "Cel mai ridicat"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:59
+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
+msgid "RES^Leet"
+msgstr "Minima"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:74
+msgid "RES^Lowest"
+msgstr "Cea mai joasa"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:75
+msgid "RES^Low"
+msgstr "Joasa"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:76
+msgid "RES^Normal"
+msgstr "Normala"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:77
+msgid "RES^Good"
+msgstr "Ridicata"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:78
+msgid "RES^Best"
+msgstr "Cea mai ridicata"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:91
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:94
+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:105
+msgid "8x"
+msgstr "8x"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:106
+msgid "16x"
+msgstr "16x"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:110
+msgid "Particle quality:"
+msgstr "Calicate particule:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:113
+msgid "Particle distance:"
+msgstr "Distanta particule:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:117
+msgid "Decals"
+msgstr "Semne"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:120
+msgid "Distance:"
+msgstr "Distanta:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:126
+msgid "Time:"
+msgstr "Durata:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:132
+msgid "Use lightmaps"
+msgstr "Utilizare lightmap"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:133
+msgid "Deluxe mapping"
+msgstr "Texturi Deluxe"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:135
+msgid "Gloss"
+msgstr "Suprafete lucioase"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:138
+msgid "Offset mapping"
+msgstr "Relief"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:140
+msgid "Relief mapping"
+msgstr "Detaliu relief"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:143
+msgid "Reflections:"
+msgstr "Reflectii:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:146
+msgid "Blurred"
+msgstr "Blurate"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:147
+msgid "REFL^Good"
+msgstr "Bune"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:148
+msgid "Sharp"
+msgstr "Ascutite"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:153
+msgid "Show surfaces"
+msgstr "Afisaj suprafete"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:155
+msgid "No dynamic lighting"
+msgstr "Luminozitate dinamica dezactivata"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:157
+msgid "Flash blend approximation"
+msgstr "Luminozitate dinamica rapida"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:159
+msgid "Realtime dynamic lighting"
+msgstr "Luminozitate dinamica in timp real"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:160
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:164
+msgid "Shadows"
+msgstr "Umbre"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:163
+msgid "Realtime world lighting"
+msgstr "Luminozitate ambienta in timp real"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:168
+msgid "Use normal maps"
+msgstr "Utilizare texturi normale"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:170
+msgid "Soft shadows"
+msgstr "Umbre fine"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:173
+msgid "Coronas"
+msgstr "Coroane lumini"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:174
+msgid "Use Occlusion Queries"
+msgstr "Utilizare Ocluzii"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:176
+msgid "Bloom"
+msgstr "Luminozitate moale"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:178
+msgid "High Dynamic Range (HDR)"
+msgstr "Distanta Dinamica Inalta (HDR)"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:182
+msgid "Motion blur:"
+msgstr "Blurare viteza:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:188
+msgid "Damage blur:"
+msgstr "Blurare ranire:"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:26
+msgid "Key bindings:"
+msgstr "Taste:"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:31
+msgid "Change key..."
+msgstr "Schimbare tasta..."
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:35
+msgid "Edit..."
+msgstr "Editare..."
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:46
+msgid "Sensitivity:"
+msgstr "Sensitivitate:"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:49
+msgid "UI mouse speed:"
+msgstr "Viteza mouse in meniu:"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:52
+msgid "Mouse filter"
+msgstr "Filtrare mouse"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:54
+msgid "Invert mouse"
+msgstr "Inversare mouse"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:57
+#: qcsrc/menu/xonotic/dialog_settings_input.c:59
+msgid "Use joystick input"
+msgstr "Utilizare joystick"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:62
+#: qcsrc/menu/xonotic/dialog_settings_input.c:64
+msgid "Turn off OS mouse acceleration"
+msgstr "Dezactivare acceleratie mouse din OS"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:66
+msgid "\"enter console\" also closes"
+msgstr "\"enter\" inchide si consola"
+
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:5
+msgid "User defined key bind"
+msgstr "Functionalitate tasta definita:"
+
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:42
+msgid "Command when pressed:"
+msgstr "Commanda apasare tasta:"
+
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:45
+msgid "Command when released:"
+msgstr "Commanda eliberare tasta:"
+
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:48
+msgid "Save"
+msgstr "Salvare"
+
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:51
+msgid "Cancel"
+msgstr "Anulare"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:26
+msgid "Menu skins:"
+msgstr "Stil meniu:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:47
+msgid "Show current time"
+msgstr "Afisaj ora"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:49
+msgid "Show current date"
+msgstr "Afisaj data"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:51
+msgid "Show frames per second"
+msgstr "Afisaj cadre pe secunda"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:53
+msgid "Speedometer"
+msgstr "Vitezometru"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:56
+msgid "qu/s (hidden)"
+msgstr "qu/s (ascuns)"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:58
+msgid "qu/s"
+msgstr "qu/s"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:60
+msgid "m/s"
+msgstr "m/s"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:64
+msgid "km/h"
+msgstr "km/h"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:66
+msgid "mph"
+msgstr "mph"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:68
+msgid "knots"
+msgstr "noduri"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:71
+msgid "Show accelerometer"
+msgstr "Afisaj metru acceleratie"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:74
+msgid "Accelerometer scale:"
+msgstr "Marime metru acceleratie:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:80
+msgid "Minimize input latency"
+msgstr "Minimizare latenta control"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:5
+msgid "Advanced settings"
+msgstr "Setari avansate"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:23
+msgid "Cvar filter:"
+msgstr "Filtru variabile:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:34
+msgid "Setting:"
+msgstr "Setari:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:42
+msgid "Value:"
+msgstr "Valoare:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:56
+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_network.c:42
+msgid "Input packets/s:"
+msgstr "Pachete intrare/secunda:"
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:46
+msgid "HTTP downloads:"
+msgstr "Descarcari HTTP:"
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:49
+msgid "Downloads:"
+msgstr "Descarcari simultane:"
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:53
+msgid "Speed (kB/s):"
+msgstr "Viteza (kB/s):"
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:57
+msgid "Client UDP port:"
+msgstr "Port UDP client:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:26
+msgid "Resolution:"
+msgstr "Rezolutie:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:29
+msgid "Font/UI size:"
+msgstr "Marime font:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:31
+msgid "SZ^Unreadable"
+msgstr "Ilizibil"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:32
+msgid "SZ^Tiny"
+msgstr "Minuscul"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:33
+msgid "SZ^Little"
+msgstr "Foarte mic"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:34
+msgid "SZ^Small"
+msgstr "Mic"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:35
+msgid "SZ^Medium"
+msgstr "Mediu"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:36
+msgid "SZ^Large"
+msgstr "Mare"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:37
+msgid "SZ^Huge"
+msgstr "Foarte mare"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:38
+msgid "SZ^Gigantic"
+msgstr "Gigantic"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:39
+msgid "SZ^Colossal"
+msgstr "Colosal"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:42
+msgid "Color depth:"
+msgstr "Adancime culoare:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:45
+msgid "Full screen"
+msgstr "Ecran plin"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:46
+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:52
+msgid "Use GLSL to handle color control"
+msgstr "Utilizare GLSL pentru culori"
+
+#: 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:59
+msgid "VBO^Off"
+msgstr "Dezactivat"
+
+#: 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:63
+msgid "Vertices"
+msgstr "Puncte"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:64
+msgid "Vertices and Triangles"
+msgstr "Puncte si Triunghiuri"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:67
+msgid "Depth first:"
+msgstr "Calcul adancime:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:69
+msgid "DF^Disabled"
+msgstr "Dezactivat"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:70
+msgid "DF^World"
+msgstr "Mediul"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:71
+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:77
+msgid "Wait for GPU to finish each frame"
+msgstr "Asteapta ca GPU sa termine fiecare cadru"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:80
+msgid "Brightness:"
+msgstr "Luminozitate:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:83
+msgid "Contrast:"
+msgstr "Contrast:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:86
+msgid "Gamma:"
+msgstr "Gama:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:89
+msgid "Contrast boost:"
+msgstr "Exagerare contrast:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:92
+msgid "Saturation:"
+msgstr "Saturatie:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:98
+msgid "LIT^Ambient:"
+msgstr "Ambianta:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:101
+msgid "Intensity:"
+msgstr "Intensitate:"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:4
+msgid "Singleplayer"
+msgstr "Joc singular"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:59
+msgid "Instant action! (random map with bots)"
+msgstr "Actiune instanta! (harta aleatorie cu boti)"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:80
+msgid "Start Singleplayer!"
+msgstr "Pornire Joc Singular!"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer_winner.c:4
+msgid "Winner"
+msgstr "Castigator"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:5
+msgid "Team Selection"
+msgstr "Selectie echipa"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:41
+msgid "join 'best' team (auto-select)"
+msgstr "cea mai potrivita echipa (selectie automata)"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:45
+msgid "red"
+msgstr "rosu"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:46
+msgid "blue"
+msgstr "albastru"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:47
+msgid "yellow"
+msgstr "galben"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:48
+msgid "pink"
+msgstr "roz"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:51
+msgid "spectate"
+msgstr "spectator"
+
+#: qcsrc/menu/xonotic/mainwindow.c:35 qcsrc/menu/xonotic/mainwindow.c:38
+msgid "Do not press this button again!"
+msgstr "Nu mai apasati acest buton din nou!"
+
+#: qcsrc/menu/xonotic/maplist.c:278
+msgid ""
+"Huh? Can't play this (m is NULL). Refiltering so this won't happen again.\n"
+msgstr ""
+"Huh? Nu se poate juca asta (m este NUL). Re-filtrez pentru a preveni asta pe "
+"viitor.\n"
+
+#: qcsrc/menu/xonotic/maplist.c:286
+#, c-format
+msgid "%s's Xonotic Server"
+msgstr "Serverul Xonotic al lui %s"
+
+#: qcsrc/menu/xonotic/maplist.c:291
+msgid ""
+"Huh? Can't play this (invalid game type). Refiltering so this won't happen "
+"again.\n"
+msgstr ""
+"Huh? Nu se poate juca asta (tipul jocului este invalid). Re-filtrez pentru a "
+"preveni asta pe viitor.\n"
+
+#: qcsrc/menu/xonotic/playermodel.c:174
+msgid "<no model found>"
+msgstr "<nu a fost gasit nici un model>"
+
+#: qcsrc/menu/xonotic/serverlist.c:185
+msgid "Remove"
+msgstr "Stergere"
+
+#: qcsrc/menu/xonotic/serverlist.c:187
+msgid "Bookmark"
+msgstr "Favorit"
+
+#: qcsrc/menu/xonotic/serverlist.c:523
+msgid "Ping"
+msgstr "Latenta"
+
+#: qcsrc/menu/xonotic/serverlist.c:524
+msgid "Host name"
+msgstr "Nume server"
+
+#: qcsrc/menu/xonotic/serverlist.c:525
+msgid "Map"
+msgstr "Harta"
+
+#: qcsrc/menu/xonotic/serverlist.c:526
+msgid "Type"
+msgstr "Mod"
+
+#: qcsrc/menu/xonotic/serverlist.c:527
+msgid "Players"
+msgstr "Jucatori"
+
+#: qcsrc/menu/xonotic/skinlist.c:105
+msgid "<TITLE>"
+msgstr "<TITLU>"
+
+#: qcsrc/menu/xonotic/skinlist.c:106
+msgid "<AUTHOR>"
+msgstr "<AUTOR>"
+
+#: qcsrc/menu/xonotic/skinlist.c:163
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: qcsrc/menu/xonotic/slider_decibels.c:50
+msgid "VOL^OFF"
+msgstr "OPRIT"
+
+#: qcsrc/menu/xonotic/slider_decibels.c:52
+msgid "VOL^MAX"
+msgstr "MAXIM"
+
+#: qcsrc/menu/xonotic/slider_decibels.c:53
+#, c-format
+msgid "%s dB"
+msgstr "%s dB"
+
+#: qcsrc/menu/xonotic/slider_resolution.c:65
+#, c-format
+msgid "%dx%d"
+msgstr "%dx%d"
+
+#: qcsrc/menu/xonotic/util.qc:270
+#, 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
+#, 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
+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
+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
+#, c-format
+msgid ""
+"Update can be downloaded at:\n"
+"%s\n"
+msgstr ""
+"Un update se poate descarca aici:\n"
+"%s\n"
+
+#: qcsrc/menu/xonotic/util.qc:337
+msgid "Autogenerating mapinfo for newly added maps..."
+msgstr "Auto-generare mapinfo pentru hartile proaspat adaugate..."
+
+#: qcsrc/menu/xonotic/util.qc:367
+#, c-format
+msgid "^1%s TEST BUILD"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:432
+#, c-format
+msgid "Update to %s now!"
+msgstr "Updatati la %s acum!"
+
+#: qcsrc/menu/xonotic/util.qc:509
+msgid ""
+"^1ERROR: Texture compression is required but not supported.\n"
+"^1Expect visual problems.\n"
+msgstr ""
+"^1EROARE: Comprimarea texturilor este necesara dar nu si suportata.\n"
+"^1Asteptati-va la probleme vizuale.\n"
+
+#: qcsrc/menu/xonotic/util.qc:531
+msgid "Arena"
+msgstr "Arena"
+
+#: qcsrc/menu/xonotic/util.qc:532
+msgid "Assault"
+msgstr "Asalt"
+
+#: qcsrc/menu/xonotic/util.qc:533
+msgid "Capture The Flag"
+msgstr "Captureaza Steagul"
+
+#: qcsrc/menu/xonotic/util.qc:534
+msgid "Clan Arena"
+msgstr "Clan Arena"
+
+#: qcsrc/menu/xonotic/util.qc:535
+msgid "Deathmatch"
+msgstr "Meciul Mortii"
+
+#: qcsrc/menu/xonotic/util.qc:536
+msgid "Domination"
+msgstr "Dominatie"
+
+#: qcsrc/menu/xonotic/util.qc:537
+msgid "Freeze Tag"
+msgstr "Inghet"
+
+#: qcsrc/menu/xonotic/util.qc:538
+msgid "Keepaway"
+msgstr "Keepaway"
+
+#: qcsrc/menu/xonotic/util.qc:539
+msgid "Key Hunt"
+msgstr "Vanatoarea Cheilor"
+
+#: qcsrc/menu/xonotic/util.qc:540
+msgid "Last Man Standing"
+msgstr "Ultimul Supravietuitor"
+
+#: qcsrc/menu/xonotic/util.qc:541
+msgid "Nexball"
+msgstr "Nexball"
+
+#: qcsrc/menu/xonotic/util.qc:542
+msgid "Onslaught"
+msgstr "Onslaught"
+
+#: qcsrc/menu/xonotic/util.qc:543
+msgid "Race"
+msgstr "Cursa"
+
+#: qcsrc/menu/xonotic/util.qc:544
+msgid "Race CTS"
+msgstr "Cursa CTS"
+
+#: qcsrc/menu/xonotic/util.qc:545
+msgid "Runematch"
+msgstr "Runematch"
+
+#: qcsrc/menu/xonotic/util.qc:546
+msgid "Team Deathmatch"
+msgstr "Meciul Mortii (in echipa)"
+
+#: qcsrc/menu/xonotic/util.qc:565
+#, c-format
+msgid "@!#%'n Tuba Throwing"
+msgstr "Arunca @!#%'n Tuba"
+
+#: qcsrc/menu/xonotic/util.qc:583
+msgid "Background:"
+msgstr "Fundal:"
+
+#: qcsrc/menu/xonotic/util.qc:585 qcsrc/menu/xonotic/util.qc:601
+#: qcsrc/menu/xonotic/util.qc:610 qcsrc/menu/xonotic/util.qc:618
+#: qcsrc/menu/xonotic/util.qc:630
+msgid "Default"
+msgstr "Setare normala"
+
+#: qcsrc/menu/xonotic/util.qc:596
+msgid "Use default"
+msgstr "Utilizare setare normala"
+
+#: qcsrc/menu/xonotic/util.qc:616
+msgid "Team Color:"
+msgstr "Culoare echipa:"
+
+#: qcsrc/menu/xonotic/util.qh:49
+msgid "Enable panel"
+msgstr "Activare panou"
+
+#: qcsrc/server/w_crylink.qc:2
+msgid "Crylink"
+msgstr "Crylink"
+
+#: qcsrc/server/w_crylink.qc:664
+#, c-format
+msgid "%s succeeded at self-destructing themself with the Crylink"
+msgstr "%s a reusit sa se auto-distruga cu Crylink-ul"
+
+#: qcsrc/server/w_crylink.qc:669
+#, c-format
+msgid "%s could not hide from %s's Crylink"
+msgstr "%s nu s-a putut ascunde de Crylink-ul lui %s"
+
+#: qcsrc/server/w_crylink.qc:671
+#, c-format
+msgid "%s was too close to %s's Crylink"
+msgstr "%s s-a apropiat prea mult de Crylink-ul lui %s"
+
+#: qcsrc/server/w_crylink.qc:673
+#, c-format
+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_electro.qc:2
+msgid "Electro"
+msgstr "Electro"
+
+#: qcsrc/server/w_electro.qc:571
+#, c-format
+msgid "%s could not remember where they put plasma"
+msgstr "%s a uitat unde a pus plasma"
+
+#: qcsrc/server/w_electro.qc:573
+#, c-format
+msgid "%s played with plasma"
+msgstr "%s s-a jucat cu plasma"
+
+#: qcsrc/server/w_electro.qc:580
+#, c-format
+msgid "%s just noticed %s's blue ball"
+msgstr "%s tocmai a observat bilele albastre ale lui %s"
+
+#: qcsrc/server/w_electro.qc:582
+#, c-format
+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_electro.qc:587
+#, c-format
+msgid "%s felt the electrifying air of %s's combo"
+msgstr "%s a simtit forta electrica a combinatiei lui %s"
+
+#: qcsrc/server/w_electro.qc:589
+#, 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"
+
+#: qcsrc/server/w_electro.qc:591
+#, c-format
+msgid "%s was blasted by %s's blue beam"
+msgstr "%s a fost lovit de raza albastra a lui %s"
+
+#: qcsrc/server/w_fireball.qc:2
+msgid "Fireball"
+msgstr "Fireball"
+
+#: qcsrc/server/w_fireball.qc:417
+#, c-format
+msgid "%s forgot about some firemine"
+msgstr "%s a uitat o minge de foc"
+
+#: 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"
+
+#: 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"
+
+#: 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"
+
+#: 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"
+
+#: 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"
+
+#: 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"
+
+#: qcsrc/server/w_fireball.qc:442
+#, c-format
+msgid "%s tasted %s's fireball"
+msgstr "%s a gustat din Fireball-ul lui %s"
+
+#: qcsrc/server/w_grenadelauncher.qc:2
+msgid "Mortar"
+msgstr "Mortar"
+
+#: qcsrc/server/w_grenadelauncher.qc:378
+#, c-format
+msgid "%s tried out his own grenade"
+msgstr "%s si-a incercat propria grenada"
+
+#: qcsrc/server/w_grenadelauncher.qc:380
+#, c-format
+msgid "%s detonated"
+msgstr "%s a detonat"
+
+#: qcsrc/server/w_grenadelauncher.qc:386
+#, c-format
+msgid "%s didn't see %s's grenade"
+msgstr "%s nu a vazut grenada lui %s"
+
+#: qcsrc/server/w_grenadelauncher.qc:388
+#, c-format
+msgid "%s almost dodged %s's grenade"
+msgstr "%s aproape ca s-a ferit de grenada lui %s"
+
+#: qcsrc/server/w_grenadelauncher.qc:390
+#, c-format
+msgid "%s ate %s's grenade"
+msgstr "%s a mancat grenada lui %s"
+
+#: qcsrc/server/w_hagar.qc:2
+msgid "Hagar"
+msgstr "Hagar"
+
+#: qcsrc/server/w_hagar.qc:209 qcsrc/server/w_seeker.qc:655
+#, c-format
+msgid "%s played with tiny rockets"
+msgstr "%s s-a jucat cu rachete"
+
+#: qcsrc/server/w_hagar.qc:213
+#, c-format
+msgid "%s hoped %s's missiles wouldn't bounce"
+msgstr "%s a sperat ca rachetele lui %s nu vor ricosa"
+
+#: qcsrc/server/w_hagar.qc:215 qcsrc/server/w_seeker.qc:661
+#, c-format
+msgid "%s was pummeled by %s"
+msgstr "%s a fost batut mar de %s"
+
+#: qcsrc/server/w_hlac.qc:2
+msgid "Heavy Laser Assault Cannon"
+msgstr "Heavy Laser Assault Cannon"
+
+#: qcsrc/server/w_hlac.qc:242
+#, c-format
+msgid "%s was cut down by %s"
+msgstr "%s a fost taiat de %s"
+
+#: qcsrc/server/w_hook.qc:2
+msgid "Grappling Hook"
+msgstr "Grappling Hook"
+
+#: qcsrc/server/w_hook.qc:266 qcsrc/server/w_minstanex.qc:290
+#: qcsrc/server/w_nex.qc:267 qcsrc/server/w_porto.qc:296
+#: qcsrc/server/w_shotgun.qc:203 qcsrc/server/w_uzi.qc:317
+#, c-format
+msgid "%s did the impossible"
+msgstr "%s a reusit imposibilul"
+
+#: 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"
+
+#: qcsrc/server/w_laser.qc:2
+msgid "Laser"
+msgstr "Laser"
+
+#: qcsrc/server/w_laser.qc:305
+#, c-format
+msgid "%s lasered themself to hell"
+msgstr "%s s-a lovit prea mult cu laserul"
+
+#: qcsrc/server/w_laser.qc:309
+#, c-format
+msgid "%s was cut in half by %s's gauntlet"
+msgstr "%s a fost taiat in doua de socul lui %s"
+
+#: qcsrc/server/w_laser.qc:311
+#, c-format
+msgid "%s was lasered to death by %s"
+msgstr "%s a fost omorat cu laser de %s"
+
+#: qcsrc/server/w_minelayer.qc:2
+msgid "Mine Layer"
+msgstr "Mine Layer"
+
+#: qcsrc/server/w_minelayer.qc:495 qcsrc/server/w_rocketlauncher.qc:500
+#, c-format
+msgid "%s exploded"
+msgstr "%s a explodat"
+
+#: qcsrc/server/w_minelayer.qc:499
+#, c-format
+msgid "%s got too close to %s's mine"
+msgstr "%s s-a apropiat prea mult de mina lui %s"
+
+#: qcsrc/server/w_minelayer.qc:501
+#, c-format
+msgid "%s almost dodged %s's mine"
+msgstr "%s aproape ca s-a ferit de mina lui %s"
+
+#: qcsrc/server/w_minelayer.qc:503
+#, c-format
+msgid "%s stepped on %s's mine"
+msgstr "%s a calcat pe mina lui %s"
+
+#: qcsrc/server/w_minstanex.qc:2
+msgid "MinstaNex"
+msgstr "MinstaNex"
+
+#: qcsrc/server/w_minstanex.qc:292 qcsrc/server/w_nex.qc:269
+#, c-format
+msgid "%s has been vaporized by %s"
+msgstr "%s a fost vaporizat de %s"
+
+#: qcsrc/server/w_nex.qc:2
+msgid "Nex"
+msgstr "Nex"
+
+#: qcsrc/server/w_porto.qc:2
+msgid "Port-O-Launch"
+msgstr "Port-O-Launch"
+
+#: qcsrc/server/w_porto.qc:298
+#, c-format
+msgid "%s felt %s doing the impossible to him"
+msgstr "%s a simtit cum %s a reusit imposibilul"
+
+#: qcsrc/server/w_rocketlauncher.qc:2
+msgid "Rocket Launcher"
+msgstr "Rocket Launcher"
+
+#: qcsrc/server/w_rocketlauncher.qc:504
+#, c-format
+msgid "%s got too close to %s's rocket"
+msgstr "%s s-a apropiat prea mult de racheta lui %s"
+
+#: qcsrc/server/w_rocketlauncher.qc:506
+#, c-format
+msgid "%s almost dodged %s's rocket"
+msgstr "%s aproape ca s-a ferit de racheta lui %s"
+
+#: qcsrc/server/w_rocketlauncher.qc:508
+#, c-format
+msgid "%s ate %s's rocket"
+msgstr "%s a mancat racheta lui %s"
+
+#: qcsrc/server/w_seeker.qc:2
+msgid "T.A.G. Seeker"
+msgstr "T.A.G. Seeker"
+
+#: qcsrc/server/w_seeker.qc:659
+#, c-format
+msgid "%s was tagged by %s"
+msgstr "%s a fost marcat de %s"
+
+#: qcsrc/server/w_shotgun.qc:2
+msgid "Shotgun"
+msgstr "Shotgun"
+
+#: qcsrc/server/w_shotgun.qc:207
+#, c-format
+msgid "%2$s ^7slapped %1$s ^7around a bit with a large ^2shotgun"
+msgstr "%2$s ^7l-a plesnit pe %1$s ^7cu o ^2Pusca ^7foarte mare"
+
+#: qcsrc/server/w_shotgun.qc:209
+#, c-format
+msgid "%s was gunned by %s"
+msgstr "%s a fost impuscat de %s"
+
+#: qcsrc/server/w_sniperrifle.qc:2
+msgid "Sniper Rifle"
+msgstr "Sniper Rifle"
+
+#: qcsrc/server/w_sniperrifle.qc:229
+#, c-format
+msgid "%s shot themself automatically"
+msgstr "%s s-a impuscat automat"
+
+#: qcsrc/server/w_sniperrifle.qc:231
+#, c-format
+msgid "%s sniped themself somehow"
+msgstr "%s s-a impuscat oarecum cu luneta"
+
+#: qcsrc/server/w_sniperrifle.qc:238
+#, 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"
+
+#: qcsrc/server/w_sniperrifle.qc:240
+#, c-format
+msgid "%s died in %s's bullet hail"
+msgstr "%s a murit in ploaia de gloante a lui %s"
+
+#: qcsrc/server/w_sniperrifle.qc:247
+#, c-format
+msgid "%s failed to hide from %s's rifle"
+msgstr "%s nu a reusit sa se ascunda de luneta lui %s"
+
+#: qcsrc/server/w_sniperrifle.qc:252
+#, c-format
+msgid "%s got hit in the head by %s"
+msgstr "%s a fost lovit in cap de %s"
+
+#: qcsrc/server/w_sniperrifle.qc:254 qcsrc/server/w_uzi.qc:321
+#, c-format
+msgid "%s was sniped by %s"
+msgstr "%s a fost nimerit cu luneta de %s"
+
+#: qcsrc/server/w_tuba.qc:2
+#, c-format
+msgid "@!#%'n Tuba"
+msgstr "@!#%'n Tuba"
+
+#: qcsrc/server/w_tuba.qc:263
+#, c-format
+msgid "%s hurt his own ears with the @!#%%'n Tuba"
+msgstr "%s si-a spart urechile cu propria @!#%%'n Tuba"
+
+#: qcsrc/server/w_tuba.qc:267
+#, 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"
+
+#: qcsrc/server/w_uzi.qc:2
+msgid "Machine Gun"
+msgstr "Machine Gun"
+
+#: qcsrc/server/w_uzi.qc:323
+#, c-format
+msgid "%s was riddled full of holes by %s"
+msgstr "%s a fost gaurit de %s"
+
+#~ msgid "Waypoint settings:"
+#~ msgstr "Setari indicatoare:"
+
+#~ msgid "%d/%d"
+#~ msgstr "%d/%d"
--- /dev/null
+# Xonotic Menu
+# 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-04-30 10:07+0200\n"
+"PO-Revision-Date: 2011-01-20 13:16+0300\n"
+"Last-Translator: Nikoli <nikoli@lavabit.com>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ru\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: qcsrc/menu/gamecommand.qc:47
+#, c-format
+msgid "error: status is %d\n"
+msgstr "ошибка: статус %d\n"
+
+#: qcsrc/menu/gamecommand.qc:65
+msgid "Usage: menu_cmd command..., where possible commands are:\n"
+msgstr "Использование: menu_cmd command..., где возможные команды:\n"
+
+#: qcsrc/menu/gamecommand.qc:66
+msgid " sync - reloads all cvars on the current menu page\n"
+msgstr " синх. - обновляет все cvar на текущей странице меню\n"
+
+#: qcsrc/menu/gamecommand.qc:67
+msgid " directmenu ITEM - select a menu item as main item\n"
+msgstr " directmenu ITEM - определить элемент меню как главный элемент\n"
+
+#: qcsrc/menu/gamecommand.qc:193
+msgid "error creating curl handle\n"
+msgstr "ошибка при создании curl handle\n"
+
+#: qcsrc/menu/gamecommand.qc:239
+msgid "Invalid command. For a list of supported commands, try menu_cmd help.\n"
+msgstr ""
+"Неверная команда. Попробуйте menu_cmd help, чтобы получить список доступных "
+"команд.\n"
+
+#: qcsrc/menu/item/gecko.c:49
+msgid "Browser not initialized!"
+msgstr "Браузер не запущен!"
+
+#: qcsrc/menu/item/label.c:63
+#, c-format
+msgid "NOTE: label text %s too wide for label, condensed by factor %f\n"
+msgstr "ВНИМАНИЕ: текст %s слишком широк для надписи, сжат до %f раз\n"
+
+#: qcsrc/menu/item/listbox.c:300
+#, c-format
+msgid "Item %d"
+msgstr "Предмет %d"
+
+#: qcsrc/menu/item/slider.c:64
+#, c-format
+msgid "%d (%s)"
+msgstr "%d (%s)"
+
+#: qcsrc/menu/item/textslider.c:29 qcsrc/menu/item/textslider.c:31
+msgid "custom"
+msgstr "особо"
+
+#: qcsrc/menu/menu.qc:29
+#, fuzzy, 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:66
+msgid "???"
+msgstr "???"
+
+#: qcsrc/menu/xonotic/campaign.c:285
+#, c-format
+msgid "Level %d: %s"
+msgstr "Уровень %d: %s"
+
+#: qcsrc/menu/xonotic/cvarlist.c:85
+msgid "will be saved to config.cfg"
+msgstr "будет сохранено в config.cfg"
+
+#: qcsrc/menu/xonotic/cvarlist.c:87
+msgid "will not be saved"
+msgstr "не будет сохранено"
+
+# личное, частное
+#: qcsrc/menu/xonotic/cvarlist.c:89
+msgid "private"
+msgstr "личное"
+
+#: qcsrc/menu/xonotic/cvarlist.c:91
+msgid "engine setting"
+msgstr "установка движка"
+
+#: qcsrc/menu/xonotic/cvarlist.c:93
+msgid "read only"
+msgstr "только чтение"
+
+#: qcsrc/menu/xonotic/dialog_credits.c:5
+msgid "Credits"
+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:55
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:61
+#: qcsrc/menu/xonotic/dialog_singleplayer_winner.c:21
+msgid "OK"
+msgstr "ОК"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:4
+msgid "Welcome"
+msgstr "Добро пожаловать"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:33
+msgid ""
+"Welcome to Xonotic, please select your language preference and enter your "
+"player name to get started. You can change these options later through the "
+"menu system."
+msgstr ""
+"Добро пожаловать в 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_settings_input_userbind.c:39
+msgid "Name:"
+msgstr "Имя:"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:69
+msgid "Save settings"
+msgstr "Сохранить настройки:"
+
+# делать транслитерацию вместо перевода нежелательно, panel можно перевести как:
+# область, табло, (приборная) доска, щит, лист, плата, плита, список
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:4
+msgid "Ammo Panel"
+msgstr "Панель боеприпасов"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:22
+msgid "Ammunition display:"
+msgstr "Показ боеприпасов:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:25
+msgid "Show only current ammo type"
+msgstr "Показывать только текущий вид боеприпасов"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:29
+#: qcsrc/menu/xonotic/dialog_hudpanel_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_hudpanel_ammo.c:30
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:30
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:41
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:30
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:41
+msgid "Right"
+msgstr "Справа"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:4
+msgid "Chat Panel"
+msgstr "Панель чата"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:22
+msgid "Chat entries:"
+msgstr "Записи в чате:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:25
+msgid "Chat size:"
+msgstr "Размер чата:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:29
+msgid "Chat lifetime:"
+msgstr "Время жизни:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:33
+msgid "Chat beep sound"
+msgstr "Звук чата:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_engineinfo.c:4
+msgid "Engine Info Panel"
+msgstr "Панель сведений о движке"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_engineinfo.c:22
+msgid "Engine info:"
+msgstr "Сведения о движке:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_engineinfo.c:25
+msgid "Use an averaging algorithm for fps"
+msgstr "Исп. алгоритм усреднения для FPS"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:4
+msgid "Health/Armor Panel"
+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_hudpanel_healtharmor.c:24
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:24
+msgid "Status bar alignment:"
+msgstr "Выравнивание полосы состояния:"
+
+#: 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_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_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
+msgid "Info Messages Panel"
+msgstr "Панель информационных сообщений"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_infomessages.c:22
+msgid "Info messages:"
+msgstr "Инф. сообщения:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_infomessages.c:25
+msgid "Flip align"
+msgstr "Перевернуть выравнивание"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_modicons.c:4
+msgid "Mod Icons Panel"
+msgstr "Панель иконок мода"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:4
+msgid "Notification Panel"
+msgstr "Панель уведомлений"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:22
+msgid "Notifications:"
+msgstr "Уведомления:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:25
+msgid "Also print notifications to the console"
+msgstr "Также показывать уведомления в консоли"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:28
+msgid "Flip notify order"
+msgstr "Обратить порядок уведомлений"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:31
+msgid "Entry lifetime:"
+msgstr "Время видимости:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:35
+msgid "Entry fadetime:"
+msgstr "Время исчезновения:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:4
+msgid "Powerups Panel"
+msgstr "Панель бонусов"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:45
+msgid "Flip strength and shield positions"
+msgstr "Поменять местами Силу и Щит"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:4
+msgid "Pressed Keys Panel"
+msgstr "Панель нажатых кнопок"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:21
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:21
+msgid "Panel disabled"
+msgstr "Отключена"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:22
+msgid "Panel enabled when spectating"
+msgstr "Включена при наблюдении"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:23
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:23
+msgid "Panel always enabled"
+msgstr "Всегда включена"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:30
+msgid "Forced aspect:"
+msgstr "Соотношение:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_racetimer.c:4
+msgid "Race Timer Panel"
+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:32
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:43
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:82
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:154
+#: qcsrc/menu/xonotic/util.qc:608
+msgid "Alpha:"
+msgstr "Прозрачность:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:36
+msgid "Rotation:"
+msgstr "Поворот:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:38
+msgid "Forward"
+msgstr "Взгляд"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:39
+msgid "West"
+msgstr "Запад"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:40
+msgid "South"
+msgstr "Юг"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:41
+msgid "East"
+msgstr "Восток"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:42
+msgid "North"
+msgstr "Север"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:46
+msgid "Scale:"
+msgstr "Размер:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:50
+msgid "Zoom mode:"
+msgstr "Режим увел.:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:52
+msgid "Zoomed in"
+msgstr "Приближён"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:53
+msgid "Zoomed out"
+msgstr "Не приближён"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:54
+msgid "Always zoomed"
+msgstr "Всегда приближён"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:55
+msgid "Never zoomed"
+msgstr "Никогда не приближён"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_score.c:4
+msgid "Score Panel"
+msgstr "Таблица Очков"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_timer.c:4
+msgid "Timer Panel"
+msgstr "Панель таймера"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_timer.c:22
+msgid "Timer:"
+msgstr "Таймер:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_timer.c:25
+msgid "Show elapsed time"
+msgstr "Показывать прошедшее время"
+
+#: qcsrc/menu/xonotic/dialog_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 "Панель оружия"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:24
+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 "Никогда"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:28
+#, c-format
+msgid "%ds"
+msgstr "%dс"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:32
+msgid "Fade effect:"
+msgstr "Эффект исчезновения:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:33
+msgid "EF^None"
+msgstr "Отсутствует"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:35
+msgid "Slide"
+msgstr "Скольжение"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:37
+msgid "Alpha"
+msgstr "Исчезновение"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:40
+msgid "Weapon icons:"
+msgstr "Иконки оружия:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:43
+msgid "Show weapon ID as:"
+msgstr "Показывать ID оружия как:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:44
+msgid "SHOWAS^None"
+msgstr "Не показывать"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:45
+msgid "Number"
+msgstr "Число"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:46
+msgid "Bind"
+msgstr "Привязка"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:49
+msgid "Show Accuracy"
+msgstr "Показывать Точность"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:50
+msgid "Show Ammo"
+msgstr "Показывать Боеприпасы"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:53
+msgid "Ammo bar color:"
+msgstr "Цвет полосы боеприпасов"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:59
+msgid "Ammo bar alpha:"
+msgstr "Прозрачность полосы боеприпасов:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:4
+msgid "Panel HUD Setup"
+msgstr "Настройка панелей"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:21
+msgid "Panel background defaults:"
+msgstr "Фон по умолчанию:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:25
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:37
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:52
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:91 qcsrc/menu/xonotic/util.qc:586
+#: qcsrc/menu/xonotic/util.qc:602 qcsrc/menu/xonotic/util.qc:619
+msgid "Disable"
+msgstr "Отключить"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:30
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:77 qcsrc/menu/xonotic/util.qc:591
+msgid "Color:"
+msgstr "Цвет:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:35 qcsrc/menu/xonotic/util.qc:599
+msgid "Border size:"
+msgstr "Ширина краёв:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:50
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:89
+msgid "Team color:"
+msgstr "Цвет команды:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:58 qcsrc/menu/xonotic/util.qc:625
+msgid "Test team color in configure mode"
+msgstr "Проверить цвет команды в режиме настройки"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:61 qcsrc/menu/xonotic/util.qc:628
+msgid "Padding:"
+msgstr "Промежуток:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:68
+msgid "HUD Dock:"
+msgstr "Область HUD:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:70
+msgid "DOCK^Disabled"
+msgstr "Отключено"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:71
+msgid "DOCK^Small"
+msgstr "Небольшая"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:72
+msgid "DOCK^Medium"
+msgstr "Средняя"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:73
+msgid "DOCK^Large"
+msgstr "Большая"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:96
+msgid "Grid settings:"
+msgstr "Настройки сетки:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:99
+msgid "Snap panels to grid"
+msgstr "Передвижение панелей по сетке"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:102
+msgid "Grid size:"
+msgstr "Шаг сетки:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:103
+msgid "X:"
+msgstr "X:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:109
+msgid "Y:"
+msgstr "Y:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:117
+msgid "Exit setup"
+msgstr "Выйти из настроек"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:4
+msgid "Multiplayer"
+msgstr "Игра по сети"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:18
+msgid "Servers"
+msgstr "Серверы"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:19
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:5
+msgid "Create"
+msgstr "Создать"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:20
+msgid "Demos"
+msgstr "Демо"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:21
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:5
+msgid "Player Setup"
+msgstr "Настройки игрока"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:35
+msgid "Game type:"
+msgstr "Вид игры:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:47
+msgid "Match settings:"
+msgstr "Настройки состязания:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:50
+msgid "Time limit:"
+msgstr "Предел времени:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:54
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:62
+msgid "Use map specified default"
+msgstr "Исп. предел карты"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:57
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:156
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:157
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:158
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:162
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:163
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:164
+msgid "Point limit:"
+msgstr "Предел очков:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:65
+msgid "Player slots:"
+msgstr "Кол-во игроков:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:68
+msgid "Number of bots:"
+msgstr "Кол-во ботов:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:72
+msgid "Bot skill:"
+msgstr "Уровень ботов:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:75
+msgid "Botlike"
+msgstr "Ботоподобный"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:76
+msgid "Beginner"
+msgstr "Новичок"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:77
+msgid "You will win"
+msgstr "Легко победить"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:78
+msgid "You can win"
+msgstr "Можно победить"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:79
+msgid "You might win"
+msgstr "Возможно победить"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:80
+msgid "Advanced"
+msgstr "Продвинутый"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:81
+msgid "Expert"
+msgstr "Опытный"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:82
+msgid "Pro"
+msgstr "Профессионал"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:83
+msgid "Assassin"
+msgstr "Убийца"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:84
+msgid "Unhuman"
+msgstr "Сверхчеловек"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:85
+msgid "Godlike"
+msgstr "Богоподобный"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:89
+msgid "Mutators..."
+msgstr "Мутаторы..."
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:98
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:84
+msgid "Advanced settings..."
+msgstr "Доп. настройки..."
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:105
+msgid "Map list:"
+msgstr "Список карт:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:111
+msgid "Select all"
+msgstr "Выбрать все"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:114
+msgid "Select none"
+msgstr "Снять выделение"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:120
+msgid "Start Multiplayer!"
+msgstr "Начать игру по сети"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:155
+msgid "Capture limit:"
+msgstr "Предел захватов:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:159
+msgid "Lives:"
+msgstr "Жизни:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:160
+msgid "Laps:"
+msgstr "Круги:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:161
+msgid "Goals:"
+msgstr "Цели:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:165
+msgid "Frag limit:"
+msgstr "Предел убийств:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:6
+msgid "Advanced server settings"
+msgstr "Доп. серверные настройки"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:25
+msgid "Game settings:"
+msgstr "Настройки игры:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:28
+msgid "Allow spectating"
+msgstr "Разрешить наблюдение"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:31
+msgid "Spawn shield:"
+msgstr "Защита при возрождении"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:36
+msgid "Game speed:"
+msgstr "Скорость игры:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:40
+msgid "Teamplay settings:"
+msgstr "Настройки команд:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:43
+msgid "Friendly fire scale:"
+msgstr "Огонь по союзникам:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:47
+msgid "Virtual friendly fire (effect only)"
+msgstr "Мнимый огонь по союзникам (только впечатление)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:50
+msgid "Friendly fire penalty:"
+msgstr "Штраф за огонь по союзникам"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:54
+msgid "Virtual penalty (effect only)"
+msgstr "Мнимый штраф (только впечатление)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:57
+msgid "Teams:"
+msgstr "Команды:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:66
+msgid "Map voting:"
+msgstr "Голосование за карты:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:68
+msgid "No voting"
+msgstr "Без голосования"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:69
+msgid "2 choices"
+msgstr "2 выбора"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:70
+msgid "3 choices"
+msgstr "3 выбора"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:71
+msgid "4 choices"
+msgstr "4 выбора"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:72
+msgid "5 choices"
+msgstr "5 выборов"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:73
+msgid "6 choices"
+msgstr "6 выборов"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:74
+msgid "7 choices"
+msgstr "7 выборов"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:75
+msgid "8 choices"
+msgstr "8 выборов"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:76
+msgid "9 choices"
+msgstr "9 выборов"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:79
+msgid "Simple majority wins vcall"
+msgstr "Простое большинство выигрывает"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:5
+msgid "Map Information"
+msgstr "Сведения о карте"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:49
+msgid "Full item placement"
+msgstr "С оружием"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:49
+msgid "MinstaGib only"
+msgstr "Только MinstaGib"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:78
+msgid "Title:"
+msgstr "Заголовок:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:84
+msgid "Author:"
+msgstr "Автор:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:90
+msgid "Features:"
+msgstr "Особенности:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:95
+msgid "Game types:"
+msgstr "Режимы игры:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:119
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:314
+msgid "Close"
+msgstr "Закрыть"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:122
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:46
+msgid "Play"
+msgstr "Играть"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:7
+msgid "Mutators"
+msgstr "Мутаторы"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:33
+msgid "All Weapons Arena"
+msgstr "Арена со всем оружием"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:35
+msgid "Most Weapons Arena"
+msgstr "Арена с большинством оружия"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:56
+#, c-format
+msgid "%s Arena"
+msgstr "%s Арена"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:68
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:167
+msgid "Dodging"
+msgstr "Уклонение"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:70
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:250
+msgid "MinstaGib"
+msgstr "MinstaGib"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:72
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:253
+msgid "NIX"
+msgstr "NIX"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:74
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:205
+msgid "Rocket Flying"
+msgstr "Ракетный полёт"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:78
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:264
+msgid "No start weapons"
+msgstr "Начинать без оружия"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:80
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:189
+msgid "Low gravity"
+msgstr "Низкая гравитация"
+
+# В игре это включает не невидимость, а полупрозрачность, хотя так переводить вполне уместно.
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:82
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:170
+msgid "Cloaked"
+msgstr "Невидимость"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:84
+msgid "Hook"
+msgstr "Крюк"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:86
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:173
+msgid "Midair"
+msgstr "Воздушный бой"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:88
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:176
+msgid "Vampire"
+msgstr "Вампиризм"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:90
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:208
+msgid "Piñata"
+msgstr "Piñata"
+
+# "Неисчерпаемое Оружие" - неправильно, галка не даёт бесконечный боеприпас, а сохраняет все подобранные оружия после каждого возраждения.
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:92
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:211
+msgid "Weapons stay"
+msgstr "Оружия остаются"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:94
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:180
+msgid "Blood loss"
+msgstr "Кровотечение"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:96
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:202
+msgid "Jet pack"
+msgstr "Реактивный ранец"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:98
+msgid "MUT^None"
+msgstr "Отсутствуют"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:164
+msgid "Gameplay mutators:"
+msgstr "Мутаторы игрового процесса:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:196
+msgid "Weapon & item mutators:"
+msgstr "Мутаторы оружия и предметов:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:199
+msgid "Grappling hook"
+msgstr "Крюк"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:215
+msgid "Weapon arenas:"
+msgstr "Арены оружия"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:218
+msgid "Regular (no arena)"
+msgstr "Обычная (не арена)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:239
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:256
+msgid "with laser"
+msgstr "с лазером"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:247
+msgid "Special arenas:"
+msgstr "Особые арены:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:260
+msgid "Most weapons"
+msgstr "Большинство оружия"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:4
+msgid "Demo"
+msgstr "Демо"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:28
+msgid "Record demos while playing"
+msgstr "Записывать демо во время игры"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:32
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:28
+msgid "Filter:"
+msgstr "Фильтр:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:33
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:29
+#: qcsrc/menu/xonotic/dialog_settings_input.c:41
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:24
+msgid "Clear"
+msgstr "Очистить"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:43
+msgid "Timedemo"
+msgstr "Проверка производительности"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:4
+msgid "Join"
+msgstr "Присоединиться"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:36
+msgid "SRVS^Empty"
+msgstr "Пустые"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:40
+msgid "SRVS^Full"
+msgstr "Полные"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:44
+msgid "Pause"
+msgstr "Пауза"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:56
+msgid "Address:"
+msgstr "Адрес:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:67
+msgid "Info..."
+msgstr "Сведения..."
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:72
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:317
+msgid "Join!"
+msgstr "Присоединиться"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:5
+msgid "Server Information"
+msgstr "Сведения о сервере"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:115
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:116
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:183
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:189
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:199
+msgid "N/A"
+msgstr "Н/Д"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:158
+#, c-format
+msgid "%d/%d, %d free player slots"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:172
+#, c-format
+msgid "%d modified settings"
+msgstr "кол-во изменённых настроек: %d"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:172
+msgid "Official settings"
+msgstr "Официальные настройки"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:197
+msgid "N/A (can't connect)"
+msgstr "Н/Д (не могу подключиться)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:205
+msgid "not supported (can't connect)"
+msgstr "не поддерживается (не могу подключиться)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:207
+msgid "not supported (won't encrypt)"
+msgstr "не поддерживается (шифрования не будет)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:211
+msgid "supported (will encrypt)"
+msgstr "поддерживается (будет шифрование)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:213
+msgid "supported (won't encrypt)"
+msgstr "поддерживается (шифрования не будет)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:217
+msgid "requested (will encrypt)"
+msgstr "запрошено (будет шифрование)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:219
+msgid "requested (won't encrypt)"
+msgstr "запрошено (шифрования не будет)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:223
+msgid "required (can't connect)"
+msgstr "требуется (не могу подключиться)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:225
+msgid "required (will encrypt)"
+msgstr "требуется (будет шифрование)"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:246
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:269
+msgid "Players:"
+msgstr "Игроки:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:254
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:38
+msgid "Type:"
+msgstr "Вид:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:259
+msgid "Map:"
+msgstr "Карта:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:264
+msgid "Gameplay:"
+msgstr "Геймплей:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:274
+msgid "Bots:"
+msgstr "Боты:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:279
+msgid "Mod:"
+msgstr "Мод:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:284
+msgid "Version:"
+msgstr "Версия:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:289
+msgid "Ping:"
+msgstr "Пинг:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:295
+msgid "CA:"
+msgstr "CA:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:301
+msgid "Key:"
+msgstr "Ключ:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:307
+msgid "Encryption:"
+msgstr "Шифрование:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:63
+msgid "Model:"
+msgstr "Модель:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:88
+msgid "Field of view:"
+msgstr "Угол обзора:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:92
+msgid "View bobbing:"
+msgstr "Качание вида:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:96
+msgid "Zoom factor:"
+msgstr "Множитель увеличения:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:100
+msgid "Zoom speed:"
+msgstr "Скорость увеличения:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:103
+msgid "Weapon settings..."
+msgstr "Настройки оружия..."
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:110
+msgid "Crosshair:"
+msgstr "Прицел:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:111
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:139
+msgid "Per weapon"
+msgstr "Зависит от оружия"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:130
+msgid "Crosshair size:"
+msgstr "Величина прицела:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:134
+msgid "Crosshair alpha:"
+msgstr "Прозрачность:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:138
+msgid "Crosshair color:"
+msgstr "Цвет прицела:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:140
+msgid "By health"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:143
+#, fuzzy
+msgid "Custom"
+msgstr "особо"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:148
+msgid "Enable center dot"
+msgstr "Точка в центре"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:151
+msgid "Size:"
+msgstr "Размер:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:158
+msgid "Hit test:"
+msgstr "Проверка на попадание:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:159
+msgid "HTST^None"
+msgstr "Отключена"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:160
+msgid "TrueAim"
+msgstr "TrueAim"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:161
+msgid "Enemies"
+msgstr "Враги"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:164
+msgid "Waypoints setup..."
+msgstr "Настройка отметок..."
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:169
+msgid "Enter HUD editor"
+msgstr "Войти в редактор HUD"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:174
+msgid "Force models:"
+msgstr "Использовать свои модели:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:175
+msgid "MDL^None"
+msgstr "Нет"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:176
+msgid "MDL^Custom"
+msgstr "Вместо нестандартных"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:177
+msgid "MDL^All"
+msgstr "Вместо всех"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:180
+msgid "Disable gore effects"
+msgstr "Отключить эффекты жестокости"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:182
+msgid "Gibs:"
+msgstr "Ошмётки:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:184
+msgid "GIBS^None"
+msgstr "Нет"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:185
+msgid "GIBS^Few"
+msgstr "Мало"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:186
+msgid "GIBS^Many"
+msgstr "Много"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:187
+msgid "GIBS^Lots"
+msgstr "Тонны"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:191
+msgid "Damage splash:"
+msgstr "Изображ. урона"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:195
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:178
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:194
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:30
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:41
+#: qcsrc/menu/xonotic/dialog_settings_video.c:105
+msgid "Apply immediately"
+msgstr "Применить"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:5
+msgid "Waypoints"
+msgstr "Отметки"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:23
+msgid "Show base waypoints"
+msgstr "Показывать основные отметки"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:25
+msgid "Waypoint scale:"
+msgstr "Размер отметок:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:29
+msgid "Waypoint alpha:"
+msgstr "Прозрачность отметок:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:34
+msgid "Show names:"
+msgstr "Показывать имена:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:37
+msgid "Teammates"
+msgstr "Союзники"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:38
+msgid "All players"
+msgstr "Все игроки"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:6
+msgid "Weapon settings"
+msgstr "Настройки оружия"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:29
+msgid "Weapon priority list:"
+msgstr "Список приоритета оружия:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:34
+msgid "Up"
+msgstr "Вверх"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:37
+msgid "Down"
+msgstr "Вниз"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:41
+msgid "Use priority list for weapon cycling"
+msgstr "Использовать приоритеты для прокрутки оружия"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:43
+msgid "Auto switch weapons on pickup"
+msgstr "Автоматически переключаться на поднятое оружие"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:45
+msgid "Draw 1st person weapon model"
+msgstr "Показывать модель оружия в руках"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:48
+msgid "Left align"
+msgstr "Слева"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:50
+msgid "Right align"
+msgstr "Справа"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:53
+msgid "Flip view horizontally"
+msgstr "Перевернуть изображение по горизонтали"
+
+#: qcsrc/menu/xonotic/dialog_news.c:4
+msgid "News"
+msgstr "Новости"
+
+#: qcsrc/menu/xonotic/dialog_news.c:18
+msgid "http://www.xonotic.org/team/blog/"
+msgstr "http://www.xonotic.org/team/blog/"
+
+#: qcsrc/menu/xonotic/dialog_quit.c:4
+msgid "Quit"
+msgstr "Выход"
+
+#: qcsrc/menu/xonotic/dialog_quit.c:17
+msgid "Are you sure you want to quit?"
+msgstr "Вы точно желаете выйти?"
+
+#: qcsrc/menu/xonotic/dialog_quit.c:20
+msgid "Yes"
+msgstr "Да"
+
+#: qcsrc/menu/xonotic/dialog_quit.c:21
+msgid "No"
+msgstr "Нет"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:4
+msgid "Settings"
+msgstr "Настройки"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:18
+#: qcsrc/menu/xonotic/dialog_settings_input.c:4
+msgid "Input"
+msgstr "Ввод"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:19
+#: qcsrc/menu/xonotic/dialog_settings_video.c:4
+msgid "Video"
+msgstr "Изображение"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:20
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:4
+msgid "Effects"
+msgstr "Эффекты"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:21
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:4
+msgid "Audio"
+msgstr "Звук"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:22
+#: qcsrc/menu/xonotic/dialog_settings_network.c:4
+msgid "Network"
+msgstr "Сеть"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:23
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:4
+msgid "Misc"
+msgstr "Разное"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:27
+msgid "Master:"
+msgstr "Главный:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:33
+msgid "Music:"
+msgstr "Музыка:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:40
+msgid "VOL^Ambient:"
+msgstr "Фоновые звуки:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:48
+msgid "Info:"
+msgstr "Инфо:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:57
+msgid "Items:"
+msgstr "Предметы:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:65
+msgid "Pain:"
+msgstr "Боль:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:73
+msgid "Player:"
+msgstr "Игрок:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:81
+msgid "Shots:"
+msgstr "Выстрелы:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:88
+msgid "Voice:"
+msgstr "Голос:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:96
+msgid "Weapons:"
+msgstr "Оружие:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:103
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:161
+msgid "Frequency:"
+msgstr "Частота:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:105
+msgid "8 kHz"
+msgstr "8 кГц"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:106
+msgid "11.025 kHz"
+msgstr "11.025 кГц"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:107
+msgid "16 kHz"
+msgstr "16 кГц"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:108
+msgid "22.05 kHz"
+msgstr "22.05 кГц"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:109
+msgid "24 kHz"
+msgstr "24 кГц"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:110
+msgid "32 kHz"
+msgstr "32 кГц"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:111
+msgid "44.1 kHz"
+msgstr "44.1 кГц"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:112
+msgid "48 kHz"
+msgstr "48 кГц"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:115
+msgid "Channels:"
+msgstr "Каналы:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:117
+msgid "Mono"
+msgstr "Моно"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:118
+msgid "Stereo"
+msgstr "Стерео"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:119
+msgid "2.1"
+msgstr "2.1"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:120
+msgid "4"
+msgstr "4"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:121
+msgid "5"
+msgstr "5"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:122
+msgid "5.1"
+msgstr "5.1"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:123
+msgid "6.1"
+msgstr "6.1"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:124
+msgid "7.1"
+msgstr "7.1"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:128
+msgid "Swap Stereo"
+msgstr "Обмен местами каналов"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:132
+msgid "Headphone friendly mode"
+msgstr "Ориентированный на наушники режим"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:136
+msgid "Spatial voices:"
+msgstr "Объёмные голоса:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:137
+msgid "VOCS^None"
+msgstr "Отключены"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:138
+msgid "VOCS^Taunts"
+msgstr "Насмешки"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:139
+msgid "VOCS^All"
+msgstr "Все"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:142
+msgid "Taunt range:"
+msgstr "Радиус насмешек:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:145
+msgid "RNG^Very short"
+msgstr "Очень маленький"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:146
+msgid "RNG^Short"
+msgstr "Маленький"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:147
+msgid "RNG^Normal"
+msgstr "Обычный"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:148
+msgid "RNG^Long"
+msgstr "Большой"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:149
+msgid "RNG^Full"
+msgstr "Полный"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:156
+msgid "Automatic taunts"
+msgstr "Автоматические насмешки"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:165
+msgid "Time warning:"
+msgstr "Предупреждение о таймауте за:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:167
+msgid "WRN^None"
+msgstr "Нет"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:168
+msgid "1 minute"
+msgstr "1 минуту"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:169
+msgid "5 minutes"
+msgstr "5 минут"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:170
+msgid "WRN^Both"
+msgstr "1 и 5 минут"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:173
+msgid "Hit indicator"
+msgstr "Оповещать о попадании"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:175
+msgid "Menu sounds"
+msgstr "Звуки меню"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:38
+msgid "Quality preset:"
+msgstr "Предустановки качества:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:41
+msgid "PRE^OMG!"
+msgstr "Ужасное"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:42
+msgid "PRE^Low"
+msgstr "Низкое"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:43
+msgid "PRE^Medium"
+msgstr "Среднее"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:44
+msgid "PRE^Normal"
+msgstr "Обычное"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:45
+msgid "PRE^High"
+msgstr "Высокое"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:46
+msgid "PRE^Ultra"
+msgstr "Сверх"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:48
+msgid "PRE^Ultimate"
+msgstr "Предельное"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:52
+msgid "Geometry detail:"
+msgstr "Подробность геометрии:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:54
+msgid "DET^Lowest"
+msgstr "Нижайшая"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:55
+msgid "DET^Low"
+msgstr "Низкая"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:56
+msgid "DET^Normal"
+msgstr "Обычная"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:57
+msgid "DET^Good"
+msgstr "Хорошая"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:58
+msgid "DET^Best"
+msgstr "Лучшая"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:59
+msgid "DET^Insane"
+msgstr "Высочайшая"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:62
+msgid "Antialiasing:"
+msgstr "Сглаживание:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:64
+msgid "AA^Disabled"
+msgstr "Отключено"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:65
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:103
+msgid "2x"
+msgstr "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
+msgid "RES^Leet"
+msgstr "Ужасное"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:74
+msgid "RES^Lowest"
+msgstr "Нижайшее"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:75
+msgid "RES^Low"
+msgstr "Низкое"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:76
+msgid "RES^Normal"
+msgstr "Обычное"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:77
+msgid "RES^Good"
+msgstr "Хорошее"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:78
+msgid "RES^Best"
+msgstr "Лучшее"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:91
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:94
+msgid "Avoid lossy texture compression"
+msgstr "Избегать сжатия текстур с потерями"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:100
+msgid "Anisotropy:"
+msgstr "Анизотропия:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:102
+msgid "ANISO^Disabled"
+msgstr "Отключена"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:105
+msgid "8x"
+msgstr "8x"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:106
+msgid "16x"
+msgstr "16x"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:110
+msgid "Particle quality:"
+msgstr "Качество частиц:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:113
+msgid "Particle distance:"
+msgstr "Дальность частиц:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:117
+msgid "Decals"
+msgstr "Декали:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:120
+msgid "Distance:"
+msgstr "Дальность:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:126
+msgid "Time:"
+msgstr "Время:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:132
+msgid "Use lightmaps"
+msgstr "Использовать карты освещения"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:133
+msgid "Deluxe mapping"
+msgstr "Особое качество"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:135
+msgid "Gloss"
+msgstr "Блеск"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:138
+msgid "Offset mapping"
+msgstr "Офсетное текстурирование"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:140
+msgid "Relief mapping"
+msgstr "Рельефное текстурирование"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:143
+msgid "Reflections:"
+msgstr "Отражения:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:146
+msgid "Blurred"
+msgstr "Размытые"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:147
+msgid "REFL^Good"
+msgstr "Хорошие"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:148
+msgid "Sharp"
+msgstr "Резкие"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:153
+msgid "Show surfaces"
+msgstr "Показывать поверхности"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:155
+msgid "No dynamic lighting"
+msgstr "Без динамического освещения"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:157
+msgid "Flash blend approximation"
+msgstr "Грубая имитация"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:159
+msgid "Realtime dynamic lighting"
+msgstr "Дин. освещение в реальном времени"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:160
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:164
+msgid "Shadows"
+msgstr "Тени"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:163
+msgid "Realtime world lighting"
+msgstr "Дин. освещение мира в реальном времени"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:168
+msgid "Use normal maps"
+msgstr "Использовать карты нормалей"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:170
+msgid "Soft shadows"
+msgstr "Мягкие тени"
+
+# Перевод может быть неверным.
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:173
+msgid "Coronas"
+msgstr "Короны"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:174
+msgid "Use Occlusion Queries"
+msgstr "Использовать Occlusion Queries (Проверка видимости)"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:176
+msgid "Bloom"
+msgstr "Свечение"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:178
+msgid "High Dynamic Range (HDR)"
+msgstr "High Dynamic Range (HDR)"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:182
+msgid "Motion blur:"
+msgstr "Размытие от движения:"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:188
+msgid "Damage blur:"
+msgstr "Размытие от урона:"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:26
+msgid "Key bindings:"
+msgstr "Привязки клавиш:"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:31
+msgid "Change key..."
+msgstr "Сменить кнопку..."
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:35
+msgid "Edit..."
+msgstr "Изменить..."
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:46
+msgid "Sensitivity:"
+msgstr "Чувствительность:"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:49
+msgid "UI mouse speed:"
+msgstr "Скорость мыши в UI:"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:52
+msgid "Mouse filter"
+msgstr "Фильтр мыши"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:54
+msgid "Invert mouse"
+msgstr "Обратить мышь"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:57
+#: qcsrc/menu/xonotic/dialog_settings_input.c:59
+msgid "Use joystick input"
+msgstr "Использовать ввод с джойстика"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:62
+#: qcsrc/menu/xonotic/dialog_settings_input.c:64
+msgid "Turn off OS mouse acceleration"
+msgstr "Отключить ускорение OS мыши"
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:66
+msgid "\"enter console\" also closes"
+msgstr "\"открыть консоль\" также закрывает"
+
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:5
+msgid "User defined key bind"
+msgstr "Определённая пользователем привязка клавиш"
+
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:42
+msgid "Command when pressed:"
+msgstr "Команда при нажатии:"
+
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:45
+msgid "Command when released:"
+msgstr "Команда при отжатии:"
+
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:48
+msgid "Save"
+msgstr "Сохранение"
+
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:51
+msgid "Cancel"
+msgstr "Отмена"
+
+#: qcsrc/menu/xonotic/dialog_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 "Показывать кадры/с (FPS)"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:53
+msgid "Speedometer"
+msgstr "Спидометр"
+
+# "quake units per second"
+# you can also translate it as inch/second
+# as it is roughly the same
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:56
+msgid "qu/s (hidden)"
+msgstr "qu/s (без назв.)"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:58
+msgid "qu/s"
+msgstr "qu/s"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:60
+msgid "m/s"
+msgstr "м/с"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:64
+msgid "km/h"
+msgstr "км/ч"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:66
+msgid "mph"
+msgstr "м/ч"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:68
+msgid "knots"
+msgstr "узлы"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:71
+msgid "Show accelerometer"
+msgstr "Показывать акселерометр"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:74
+msgid "Accelerometer scale:"
+msgstr "Размер акселерометра:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:80
+msgid "Minimize input latency"
+msgstr "Уменьшить задержку ввода"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_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 "Настройка:"
+
+#: 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 "Показывать 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_network.c:42
+msgid "Input packets/s:"
+msgstr "Кол-во пакетов/с"
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:46
+msgid "HTTP downloads:"
+msgstr "HTTP загрузки:"
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:49
+msgid "Downloads:"
+msgstr "Загрузки:"
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:53
+msgid "Speed (kB/s):"
+msgstr "Скорость (кБ/с):"
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:57
+msgid "Client UDP port:"
+msgstr "UDP порт клиента:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:26
+msgid "Resolution:"
+msgstr "Разрешение:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:29
+msgid "Font/UI size:"
+msgstr "Размера шрифта/UI"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:31
+msgid "SZ^Unreadable"
+msgstr "Нечитаемый"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:32
+msgid "SZ^Tiny"
+msgstr "Крошечный"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:33
+msgid "SZ^Little"
+msgstr "Маленький"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:34
+msgid "SZ^Small"
+msgstr "Небольшой"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:35
+msgid "SZ^Medium"
+msgstr "Средний"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:36
+msgid "SZ^Large"
+msgstr "Большой"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:37
+msgid "SZ^Huge"
+msgstr "Огромный"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:38
+msgid "SZ^Gigantic"
+msgstr "Гигантский"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:39
+msgid "SZ^Colossal"
+msgstr "Колоссальный"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:42
+msgid "Color depth:"
+msgstr "Глубина цвета:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:45
+msgid "Full screen"
+msgstr "На весь экран"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:46
+msgid "Vertical Synchronization"
+msgstr "Вертикальная синхронизация"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:49
+msgid "Use OpenGL 2.0 shaders (GLSL)"
+msgstr "Использовать шейдеры OpenGL 2.0 (GLSL)"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:52
+msgid "Use GLSL to handle color control"
+msgstr "Использовать GLSL для управления цветом"
+
+#: 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:59
+msgid "VBO^Off"
+msgstr "Отключено"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:60
+msgid "Vertices, some Tris (compatible)"
+msgstr "Вершины, некоторые треугольники (совместимо)"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:63
+msgid "Vertices"
+msgstr "Вершины"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:64
+msgid "Vertices and Triangles"
+msgstr "Вершины и треугольники"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:67
+msgid "Depth first:"
+msgstr "Сперва глубина:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:69
+msgid "DF^Disabled"
+msgstr "Отключено"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:70
+msgid "DF^World"
+msgstr "Мир"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:71
+msgid "DF^All"
+msgstr "Всё"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:75
+msgid "Disable multithreaded OpenGL"
+msgstr "Отключить многопоточный OpenGL"
+
+#: 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:80
+msgid "Brightness:"
+msgstr "Яркость:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:83
+msgid "Contrast:"
+msgstr "Контраст:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:86
+msgid "Gamma:"
+msgstr "Гамма:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:89
+msgid "Contrast boost:"
+msgstr "Усиление контраста:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:92
+msgid "Saturation:"
+msgstr "Насыщенность:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:98
+msgid "LIT^Ambient:"
+msgstr "Окружающее освещение:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:101
+msgid "Intensity:"
+msgstr "Мощность:"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:4
+msgid "Singleplayer"
+msgstr "Одиночная игра"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:59
+msgid "Instant action! (random map with bots)"
+msgstr "Быстрая игра (случайная карта с ботами)"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:80
+msgid "Start Singleplayer!"
+msgstr "Начать одиночную игру"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer_winner.c:4
+msgid "Winner"
+msgstr "Победитель"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:5
+msgid "Team Selection"
+msgstr "Выбор команды"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:41
+msgid "join 'best' team (auto-select)"
+msgstr "Выбрать 'лучшую' команду (автовыбор)"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:45
+msgid "red"
+msgstr "красная"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:46
+msgid "blue"
+msgstr "синяя"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:47
+msgid "yellow"
+msgstr "жёлтая"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:48
+msgid "pink"
+msgstr "розовая"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:51
+msgid "spectate"
+msgstr "наблюдать"
+
+#: qcsrc/menu/xonotic/mainwindow.c:35 qcsrc/menu/xonotic/mainwindow.c:38
+msgid "Do not press this button again!"
+msgstr "Не нажимайте снова эту кнопку!"
+
+#: qcsrc/menu/xonotic/maplist.c:278
+msgid ""
+"Huh? Can't play this (m is NULL). Refiltering so this won't happen again.\n"
+msgstr ""
+"Что? Не могу зайти (m = NULL). Перефильтрую, чтобы такого больше не "
+"случалось.\n"
+
+#: qcsrc/menu/xonotic/maplist.c:286
+#, c-format
+msgid "%s's Xonotic Server"
+msgstr "Сервер Xonotic от %s"
+
+#: qcsrc/menu/xonotic/maplist.c:291
+msgid ""
+"Huh? Can't play this (invalid game type). Refiltering so this won't happen "
+"again.\n"
+msgstr ""
+"Что? Не могу зайти (неверный вид игры). Перефильтрую, чтобы такого больше не "
+"случалось.\n"
+
+#: qcsrc/menu/xonotic/playermodel.c:174
+msgid "<no model found>"
+msgstr "<модель игрока не найдена>"
+
+#: qcsrc/menu/xonotic/serverlist.c:185
+msgid "Remove"
+msgstr "Убрать"
+
+#: qcsrc/menu/xonotic/serverlist.c:187
+msgid "Bookmark"
+msgstr "В закладки"
+
+#: qcsrc/menu/xonotic/serverlist.c:523
+msgid "Ping"
+msgstr "Пинг"
+
+#: qcsrc/menu/xonotic/serverlist.c:524
+msgid "Host name"
+msgstr "Имя сервера"
+
+#: qcsrc/menu/xonotic/serverlist.c:525
+msgid "Map"
+msgstr "Карта"
+
+#: qcsrc/menu/xonotic/serverlist.c:526
+msgid "Type"
+msgstr "Вид"
+
+#: qcsrc/menu/xonotic/serverlist.c:527
+msgid "Players"
+msgstr "Игроки"
+
+#: qcsrc/menu/xonotic/skinlist.c:105
+msgid "<TITLE>"
+msgstr "<ЗАГОЛОВОК>"
+
+#: qcsrc/menu/xonotic/skinlist.c:106
+msgid "<AUTHOR>"
+msgstr "<АВТОР>"
+
+#: qcsrc/menu/xonotic/skinlist.c:163
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: qcsrc/menu/xonotic/slider_decibels.c:50
+msgid "VOL^OFF"
+msgstr "Отключено"
+
+#: qcsrc/menu/xonotic/slider_decibels.c:52
+msgid "VOL^MAX"
+msgstr "Максимум"
+
+#: qcsrc/menu/xonotic/slider_decibels.c:53
+#, c-format
+msgid "%s dB"
+msgstr "%s дБ"
+
+#: qcsrc/menu/xonotic/slider_resolution.c:65
+#, c-format
+msgid "%dx%d"
+msgstr "%dx%d"
+
+#: qcsrc/menu/xonotic/util.qc:270
+#, c-format
+msgid "Received HTTP request data for an invalid id %d.\n"
+msgstr "Получены данные HTTP запроса для неверного id %d.\n"
+
+#: qcsrc/menu/xonotic/util.qc:285
+#, c-format
+msgid "error receiving update notification: status is %d\n"
+msgstr "ошибка при получении уведомления об обновлении: статус %d\n"
+
+#: qcsrc/menu/xonotic/util.qc:290
+msgid "error: received HTML instead of an update notification\n"
+msgstr "ошибка: получение HTML вместо уведомления об обновлении\n"
+
+#: qcsrc/menu/xonotic/util.qc:295
+msgid "error: received carriage returns from update notification server\n"
+msgstr ""
+"ошибка: получены символы возврата строки от сервера уведомлений об "
+"обновлениях\n"
+
+#: qcsrc/menu/xonotic/util.qc:316
+#, c-format
+msgid ""
+"Update can be downloaded at:\n"
+"%s\n"
+msgstr ""
+"Обновление может быть загружено с:\n"
+"%s\n"
+
+#: qcsrc/menu/xonotic/util.qc:337
+msgid "Autogenerating mapinfo for newly added maps..."
+msgstr "Автоматическое создание mapinfo для новых карт..."
+
+#: qcsrc/menu/xonotic/util.qc:367
+#, c-format
+msgid "^1%s TEST BUILD"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:432
+#, c-format
+msgid "Update to %s now!"
+msgstr "Обновитесь до %s сейчас же!"
+
+#: qcsrc/menu/xonotic/util.qc:509
+msgid ""
+"^1ERROR: Texture compression is required but not supported.\n"
+"^1Expect visual problems.\n"
+msgstr ""
+"1^ОШИБКА: Сжатие текстур требуется, но не поддерживается.\n"
+"1^Ожидайте проблемы с отображением.\n"
+
+#: qcsrc/menu/xonotic/util.qc:531
+msgid "Arena"
+msgstr "Arena"
+
+#: qcsrc/menu/xonotic/util.qc:532
+msgid "Assault"
+msgstr "Assault"
+
+#: qcsrc/menu/xonotic/util.qc:533
+msgid "Capture The Flag"
+msgstr "Capture The Flag"
+
+#: qcsrc/menu/xonotic/util.qc:534
+msgid "Clan Arena"
+msgstr "Clan Arena"
+
+#: qcsrc/menu/xonotic/util.qc:535
+msgid "Deathmatch"
+msgstr "Deathmatch"
+
+#: qcsrc/menu/xonotic/util.qc:536
+msgid "Domination"
+msgstr "Domination"
+
+#: qcsrc/menu/xonotic/util.qc:537
+msgid "Freeze Tag"
+msgstr "Freeze Tag"
+
+#: qcsrc/menu/xonotic/util.qc:538
+msgid "Keepaway"
+msgstr "Keepaway"
+
+#: qcsrc/menu/xonotic/util.qc:539
+msgid "Key Hunt"
+msgstr "Key Hunt"
+
+#: qcsrc/menu/xonotic/util.qc:540
+msgid "Last Man Standing"
+msgstr "Last Man Standing"
+
+#: qcsrc/menu/xonotic/util.qc:541
+msgid "Nexball"
+msgstr "Nexball"
+
+#: qcsrc/menu/xonotic/util.qc:542
+msgid "Onslaught"
+msgstr "Onslaught"
+
+#: qcsrc/menu/xonotic/util.qc:543
+msgid "Race"
+msgstr "Race"
+
+#: qcsrc/menu/xonotic/util.qc:544
+msgid "Race CTS"
+msgstr "Race CTS"
+
+#: qcsrc/menu/xonotic/util.qc:545
+msgid "Runematch"
+msgstr "Runematch"
+
+#: qcsrc/menu/xonotic/util.qc:546
+msgid "Team Deathmatch"
+msgstr "Team Deathmatch"
+
+#: qcsrc/menu/xonotic/util.qc:565
+#, c-format
+msgid "@!#%'n Tuba Throwing"
+msgstr "@!#%'n Швыряние Тубой"
+
+#: qcsrc/menu/xonotic/util.qc:583
+msgid "Background:"
+msgstr "Фон:"
+
+#: qcsrc/menu/xonotic/util.qc:585 qcsrc/menu/xonotic/util.qc:601
+#: qcsrc/menu/xonotic/util.qc:610 qcsrc/menu/xonotic/util.qc:618
+#: qcsrc/menu/xonotic/util.qc:630
+msgid "Default"
+msgstr "По умолчанию"
+
+#: qcsrc/menu/xonotic/util.qc:596
+msgid "Use default"
+msgstr "Исп. настройки по умолчанию"
+
+#: qcsrc/menu/xonotic/util.qc:616
+msgid "Team Color:"
+msgstr "Цвет команды:"
+
+#: qcsrc/menu/xonotic/util.qh:49
+msgid "Enable panel"
+msgstr "Включить панель"
+
+#: qcsrc/server/w_crylink.qc:2
+msgid "Crylink"
+msgstr "Crylink"
+
+#: qcsrc/server/w_crylink.qc:664
+#, c-format
+msgid "%s succeeded at self-destructing themself with the Crylink"
+msgstr ""
+
+#: qcsrc/server/w_crylink.qc:669
+#, c-format
+msgid "%s could not hide from %s's Crylink"
+msgstr ""
+
+#: qcsrc/server/w_crylink.qc:671
+#, c-format
+msgid "%s was too close to %s's Crylink"
+msgstr ""
+
+#: qcsrc/server/w_crylink.qc:673
+#, c-format
+msgid "%s took a close look at %s's Crylink"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:2
+msgid "Electro"
+msgstr "Electro"
+
+#: qcsrc/server/w_electro.qc:571
+#, c-format
+msgid "%s could not remember where they put plasma"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:573
+#, c-format
+msgid "%s played with plasma"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:580
+#, c-format
+msgid "%s just noticed %s's blue ball"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:582
+#, c-format
+msgid "%s got in touch with %s's blue ball"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:587
+#, c-format
+msgid "%s felt the electrifying air of %s's combo"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:589
+#, c-format
+msgid "%s got too close to %s's blue beam"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:591
+#, c-format
+msgid "%s was blasted by %s's blue beam"
+msgstr ""
+
+#: qcsrc/server/w_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 ""
+
+#: qcsrc/server/w_fireball.qc:428
+#, c-format
+msgid "%s fatefully ignored %s's firemine"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:435
+#, c-format
+msgid "%s could not hide from %s's fireball"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:437
+#, c-format
+msgid "%s saw the pretty lights of %s's fireball"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:440
+#, c-format
+msgid "%s got too close to %s's fireball"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:442
+#, c-format
+msgid "%s tasted %s's fireball"
+msgstr ""
+
+#: qcsrc/server/w_grenadelauncher.qc:2
+msgid "Mortar"
+msgstr "Mortar"
+
+#: qcsrc/server/w_grenadelauncher.qc:378
+#, c-format
+msgid "%s tried out his own grenade"
+msgstr ""
+
+#: qcsrc/server/w_grenadelauncher.qc:380
+#, c-format
+msgid "%s detonated"
+msgstr ""
+
+#: qcsrc/server/w_grenadelauncher.qc:386
+#, c-format
+msgid "%s didn't see %s's grenade"
+msgstr ""
+
+#: qcsrc/server/w_grenadelauncher.qc:388
+#, c-format
+msgid "%s almost dodged %s's grenade"
+msgstr ""
+
+#: qcsrc/server/w_grenadelauncher.qc:390
+#, c-format
+msgid "%s ate %s's grenade"
+msgstr ""
+
+#: qcsrc/server/w_hagar.qc:2
+msgid "Hagar"
+msgstr "Hagar"
+
+#: qcsrc/server/w_hagar.qc:209 qcsrc/server/w_seeker.qc:655
+#, c-format
+msgid "%s played with tiny rockets"
+msgstr ""
+
+#: qcsrc/server/w_hagar.qc:213
+#, c-format
+msgid "%s hoped %s's missiles wouldn't bounce"
+msgstr ""
+
+#: qcsrc/server/w_hagar.qc:215 qcsrc/server/w_seeker.qc:661
+#, c-format
+msgid "%s was pummeled by %s"
+msgstr ""
+
+#: qcsrc/server/w_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_minstanex.qc:290
+#: qcsrc/server/w_nex.qc:267 qcsrc/server/w_porto.qc:296
+#: qcsrc/server/w_shotgun.qc:203 qcsrc/server/w_uzi.qc:317
+#, c-format
+msgid "%s did the impossible"
+msgstr ""
+
+#: qcsrc/server/w_hook.qc: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:305
+#, c-format
+msgid "%s lasered themself to hell"
+msgstr ""
+
+#: qcsrc/server/w_laser.qc:309
+#, c-format
+msgid "%s was cut in half by %s's gauntlet"
+msgstr ""
+
+#: qcsrc/server/w_laser.qc:311
+#, c-format
+msgid "%s was lasered to death by %s"
+msgstr ""
+
+#: qcsrc/server/w_minelayer.qc:2
+msgid "Mine Layer"
+msgstr "Mine Layer"
+
+#: qcsrc/server/w_minelayer.qc:495 qcsrc/server/w_rocketlauncher.qc:500
+#, c-format
+msgid "%s exploded"
+msgstr ""
+
+#: qcsrc/server/w_minelayer.qc:499
+#, c-format
+msgid "%s got too close to %s's mine"
+msgstr ""
+
+#: qcsrc/server/w_minelayer.qc:501
+#, c-format
+msgid "%s almost dodged %s's mine"
+msgstr ""
+
+#: qcsrc/server/w_minelayer.qc:503
+#, c-format
+msgid "%s stepped on %s's mine"
+msgstr ""
+
+#: qcsrc/server/w_minstanex.qc:2
+msgid "MinstaNex"
+msgstr "MinstaNex"
+
+#: qcsrc/server/w_minstanex.qc:292 qcsrc/server/w_nex.qc:269
+#, c-format
+msgid "%s has been vaporized by %s"
+msgstr ""
+
+#: qcsrc/server/w_nex.qc:2
+msgid "Nex"
+msgstr "Nex"
+
+#: qcsrc/server/w_porto.qc:2
+msgid "Port-O-Launch"
+msgstr "Port-O-Launch"
+
+#: qcsrc/server/w_porto.qc:298
+#, c-format
+msgid "%s felt %s doing the impossible to him"
+msgstr ""
+
+#: qcsrc/server/w_rocketlauncher.qc:2
+msgid "Rocket Launcher"
+msgstr "Rocket Launcher"
+
+#: qcsrc/server/w_rocketlauncher.qc:504
+#, c-format
+msgid "%s got too close to %s's rocket"
+msgstr ""
+
+#: qcsrc/server/w_rocketlauncher.qc:506
+#, c-format
+msgid "%s almost dodged %s's rocket"
+msgstr ""
+
+#: qcsrc/server/w_rocketlauncher.qc:508
+#, c-format
+msgid "%s ate %s's rocket"
+msgstr ""
+
+#: qcsrc/server/w_seeker.qc:2
+msgid "T.A.G. Seeker"
+msgstr "T.A.G. Seeker"
+
+#: qcsrc/server/w_seeker.qc:659
+#, c-format
+msgid "%s was tagged by %s"
+msgstr ""
+
+#: qcsrc/server/w_shotgun.qc:2
+msgid "Shotgun"
+msgstr "Shotgun"
+
+#: qcsrc/server/w_shotgun.qc:207
+#, c-format
+msgid "%2$s ^7slapped %1$s ^7around a bit with a large ^2shotgun"
+msgstr ""
+
+#: qcsrc/server/w_shotgun.qc:209
+#, c-format
+msgid "%s was gunned by %s"
+msgstr ""
+
+#: qcsrc/server/w_sniperrifle.qc:2
+msgid "Sniper Rifle"
+msgstr "Sniper Rifle"
+
+#: qcsrc/server/w_sniperrifle.qc:229
+#, c-format
+msgid "%s shot themself automatically"
+msgstr ""
+
+#: qcsrc/server/w_sniperrifle.qc:231
+#, c-format
+msgid "%s sniped themself somehow"
+msgstr ""
+
+#: qcsrc/server/w_sniperrifle.qc:238
+#, c-format
+msgid "%s failed to hide from %s's bullet hail"
+msgstr ""
+
+#: qcsrc/server/w_sniperrifle.qc:240
+#, c-format
+msgid "%s died in %s's bullet hail"
+msgstr ""
+
+#: qcsrc/server/w_sniperrifle.qc:247
+#, c-format
+msgid "%s failed to hide from %s's rifle"
+msgstr ""
+
+#: qcsrc/server/w_sniperrifle.qc:252
+#, c-format
+msgid "%s got hit in the head by %s"
+msgstr ""
+
+#: qcsrc/server/w_sniperrifle.qc:254 qcsrc/server/w_uzi.qc:321
+#, c-format
+msgid "%s was sniped by %s"
+msgstr ""
+
+#: qcsrc/server/w_tuba.qc:2
+#, c-format
+msgid "@!#%'n Tuba"
+msgstr "@!#%'n Tuba"
+
+#: qcsrc/server/w_tuba.qc:263
+#, c-format
+msgid "%s hurt his own ears with the @!#%%'n Tuba"
+msgstr ""
+
+#: qcsrc/server/w_tuba.qc:267
+#, c-format
+msgid "%s died of %s's great playing on the @!#%%'n Tuba"
+msgstr ""
+
+#: qcsrc/server/w_uzi.qc:2
+msgid "Machine Gun"
+msgstr "Machine Gun"
+
+#: qcsrc/server/w_uzi.qc:323
+#, c-format
+msgid "%s was riddled full of holes by %s"
+msgstr ""
+
+#~ msgid "Waypoint settings:"
+#~ msgstr "Настройки отметок:"
+
+#~ msgid "%d/%d"
+#~ msgstr "%d/%d"
--- /dev/null
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-04-30 10:06+0200\n"
+"PO-Revision-Date: 2011-01-11 22:51+ZONE\n"
+"Last-Translator: marcus256 <marcus256@users.sourceforge.net>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: se\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: qcsrc/menu/gamecommand.qc:47
+#, c-format
+msgid "error: status is %d\n"
+msgstr "fel: status är %d\n"
+
+#: qcsrc/menu/gamecommand.qc:65
+msgid "Usage: menu_cmd command..., where possible commands are:\n"
+msgstr "Användning: menu_cmd kommando..., där möjliga kommandon är:\n"
+
+#: qcsrc/menu/gamecommand.qc:66
+msgid " sync - reloads all cvars on the current menu page\n"
+msgstr " sync - laddar om alla cvars på nuvarande menysida\n"
+
+#: qcsrc/menu/gamecommand.qc:67
+msgid " directmenu ITEM - select a menu item as main item\n"
+msgstr " directmenu ITEM - utse en menyrad som huvudrad\n"
+
+#: qcsrc/menu/gamecommand.qc:193
+msgid "error creating curl handle\n"
+msgstr "fel vid skapande av curl handle\n"
+
+#: qcsrc/menu/gamecommand.qc:239
+msgid "Invalid command. For a list of supported commands, try menu_cmd help.\n"
+msgstr ""
+"Ogiltigt kommando. För en lista över giltiga kommandon, prova menu_cmd "
+"help.\n"
+
+#: qcsrc/menu/item/gecko.c:49
+msgid "Browser not initialized!"
+msgstr ""
+
+#: qcsrc/menu/item/label.c:63
+#, c-format
+msgid "NOTE: label text %s too wide for label, condensed by factor %f\n"
+msgstr ""
+
+#: qcsrc/menu/item/listbox.c:300
+#, c-format
+msgid "Item %d"
+msgstr ""
+
+#: qcsrc/menu/item/slider.c:64
+#, c-format
+msgid "%d (%s)"
+msgstr ""
+
+#: qcsrc/menu/item/textslider.c:29 qcsrc/menu/item/textslider.c:31
+msgid "custom"
+msgstr ""
+
+#: qcsrc/menu/menu.qc:29
+#, c-format
+msgid "^4MQC Build information: ^1%s\n"
+msgstr ""
+
+#: qcsrc/menu/xonotic/campaign.c:284
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:66
+msgid "???"
+msgstr ""
+
+#: qcsrc/menu/xonotic/campaign.c:285
+#, c-format
+msgid "Level %d: %s"
+msgstr ""
+
+#: qcsrc/menu/xonotic/cvarlist.c:85
+msgid "will be saved to config.cfg"
+msgstr ""
+
+#: qcsrc/menu/xonotic/cvarlist.c:87
+msgid "will not be saved"
+msgstr ""
+
+#: qcsrc/menu/xonotic/cvarlist.c:89
+msgid "private"
+msgstr ""
+
+#: qcsrc/menu/xonotic/cvarlist.c:91
+msgid "engine setting"
+msgstr ""
+
+#: qcsrc/menu/xonotic/cvarlist.c:93
+msgid "read only"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_credits.c:5
+msgid "Credits"
+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:55
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:61
+#: qcsrc/menu/xonotic/dialog_singleplayer_winner.c:21
+msgid "OK"
+msgstr "OK"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:4
+msgid "Welcome"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:33
+msgid ""
+"Welcome to Xonotic, please select your language preference and enter your "
+"player name to get started. You can change these options later through the "
+"menu system."
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:38
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:35
+#, fuzzy
+msgid "Text language:"
+msgstr "Avstånd för pikar:"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:47
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:40
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:39
+msgid "Name:"
+msgstr "Namn:"
+
+#: qcsrc/menu/xonotic/dialog_firstrun.c:69
+#, fuzzy
+msgid "Save settings"
+msgstr "Inställningar"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:4
+msgid "Ammo Panel"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:22
+msgid "Ammunition display:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:25
+msgid "Show only current ammo type"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:29
+#: qcsrc/menu/xonotic/dialog_hudpanel_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_hudpanel_ammo.c:30
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:30
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:41
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:30
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:41
+msgid "Right"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:4
+msgid "Chat Panel"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:22
+msgid "Chat entries:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:25
+msgid "Chat size:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:29
+msgid "Chat lifetime:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:33
+msgid "Chat beep sound"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_engineinfo.c:4
+msgid "Engine Info Panel"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_engineinfo.c:22
+msgid "Engine info:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_engineinfo.c:25
+msgid "Use an averaging algorithm for fps"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:4
+msgid "Health/Armor Panel"
+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_hudpanel_healtharmor.c:24
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:24
+msgid "Status bar alignment:"
+msgstr ""
+
+#: 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_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_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
+msgid "Info Messages Panel"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_infomessages.c:22
+msgid "Info messages:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_infomessages.c:25
+msgid "Flip align"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_modicons.c:4
+msgid "Mod Icons Panel"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:4
+msgid "Notification Panel"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:22
+msgid "Notifications:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:25
+msgid "Also print notifications to the console"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:28
+msgid "Flip notify order"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:31
+msgid "Entry lifetime:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:35
+msgid "Entry fadetime:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:4
+msgid "Powerups Panel"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:45
+msgid "Flip strength and shield positions"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:4
+msgid "Pressed Keys Panel"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:21
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:21
+msgid "Panel disabled"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:22
+msgid "Panel enabled when spectating"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:23
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:23
+msgid "Panel always enabled"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:30
+msgid "Forced aspect:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_racetimer.c:4
+msgid "Race Timer Panel"
+msgstr "Tidtagningspanel för Lopp"
+
+#: 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:32
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:43
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:82
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:154
+#: qcsrc/menu/xonotic/util.qc:608
+msgid "Alpha:"
+msgstr "Alfa:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:36
+msgid "Rotation:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:38
+msgid "Forward"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:39
+msgid "West"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:40
+msgid "South"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:41
+msgid "East"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:42
+msgid "North"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:46
+msgid "Scale:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:50
+msgid "Zoom mode:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:52
+msgid "Zoomed in"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:53
+msgid "Zoomed out"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:54
+msgid "Always zoomed"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:55
+msgid "Never zoomed"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_score.c:4
+msgid "Score Panel"
+msgstr "Poängpanel"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_timer.c:4
+msgid "Timer Panel"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_timer.c:22
+msgid "Timer:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_timer.c:25
+msgid "Show elapsed time"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_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 "Vapenpanel"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:24
+msgid "Fade out after:"
+msgstr "Tona ut efter:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:26
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:36
+msgid "Never"
+msgstr "Aldrig"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:28
+#, c-format
+msgid "%ds"
+msgstr "%ds"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:32
+msgid "Fade effect:"
+msgstr "Uttoningseffekt:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:33
+msgid "EF^None"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:35
+msgid "Slide"
+msgstr "Ingen"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:37
+msgid "Alpha"
+msgstr "Alfa"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:40
+msgid "Weapon icons:"
+msgstr "Vapenikoner:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:43
+msgid "Show weapon ID as:"
+msgstr "Visa vapen-ID som:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:44
+msgid "SHOWAS^None"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:45
+msgid "Number"
+msgstr "Nummer"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:46
+msgid "Bind"
+msgstr "Koppla"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:49
+msgid "Show Accuracy"
+msgstr "Visa Noggrannhet"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:50
+msgid "Show Ammo"
+msgstr "Visa Ammunition"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:53
+msgid "Ammo bar color:"
+msgstr "Färg på ammoraden:"
+
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:59
+msgid "Ammo bar alpha:"
+msgstr "Alfa på ammoraden:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:4
+msgid "Panel HUD Setup"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:21
+msgid "Panel background defaults:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:25
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:37
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:52
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:91 qcsrc/menu/xonotic/util.qc:586
+#: qcsrc/menu/xonotic/util.qc:602 qcsrc/menu/xonotic/util.qc:619
+msgid "Disable"
+msgstr "Inaktivera"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:30
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:77 qcsrc/menu/xonotic/util.qc:591
+msgid "Color:"
+msgstr "Färg:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:35 qcsrc/menu/xonotic/util.qc:599
+msgid "Border size:"
+msgstr "Ramstorlek:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:50
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:89
+msgid "Team color:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:58 qcsrc/menu/xonotic/util.qc:625
+msgid "Test team color in configure mode"
+msgstr "Testa lagfärg i konfigureringsläge"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:61 qcsrc/menu/xonotic/util.qc:628
+msgid "Padding:"
+msgstr "Utfyllnad:"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:68
+msgid "HUD Dock:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:70
+#, fuzzy
+msgid "DOCK^Disabled"
+msgstr "Inaktivera"
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:71
+msgid "DOCK^Small"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:72
+msgid "DOCK^Medium"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:73
+msgid "DOCK^Large"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:96
+msgid "Grid settings:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:99
+msgid "Snap panels to grid"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:102
+msgid "Grid size:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:103
+msgid "X:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:109
+msgid "Y:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:117
+msgid "Exit setup"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:4
+msgid "Multiplayer"
+msgstr "Flera Spelare"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:18
+msgid "Servers"
+msgstr "Servrar"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:19
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:5
+msgid "Create"
+msgstr "Skapa"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:20
+msgid "Demos"
+msgstr "Demos"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer.c:21
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:5
+msgid "Player Setup"
+msgstr "Spelarinställning"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:35
+msgid "Game type:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:47
+msgid "Match settings:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:50
+msgid "Time limit:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:54
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:62
+msgid "Use map specified default"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:57
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:156
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:157
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:158
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:162
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:163
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:164
+msgid "Point limit:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:65
+msgid "Player slots:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:68
+msgid "Number of bots:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:72
+msgid "Bot skill:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:75
+msgid "Botlike"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:76
+msgid "Beginner"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:77
+msgid "You will win"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:78
+msgid "You can win"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:79
+msgid "You might win"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:80
+msgid "Advanced"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:81
+msgid "Expert"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:82
+msgid "Pro"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:83
+msgid "Assassin"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:84
+msgid "Unhuman"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:85
+msgid "Godlike"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:89
+msgid "Mutators..."
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:98
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:84
+msgid "Advanced settings..."
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:105
+msgid "Map list:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:111
+msgid "Select all"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:114
+msgid "Select none"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:120
+msgid "Start Multiplayer!"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:155
+msgid "Capture limit:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:159
+msgid "Lives:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:160
+msgid "Laps:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:161
+msgid "Goals:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:165
+msgid "Frag limit:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:6
+msgid "Advanced server settings"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:25
+msgid "Game settings:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:28
+msgid "Allow spectating"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:31
+msgid "Spawn shield:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:36
+msgid "Game speed:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:40
+msgid "Teamplay settings:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:43
+msgid "Friendly fire scale:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:47
+msgid "Virtual friendly fire (effect only)"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:50
+msgid "Friendly fire penalty:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:54
+msgid "Virtual penalty (effect only)"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:57
+msgid "Teams:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:66
+msgid "Map voting:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:68
+msgid "No voting"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:69
+msgid "2 choices"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:70
+msgid "3 choices"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:71
+msgid "4 choices"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:72
+msgid "5 choices"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:73
+msgid "6 choices"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:74
+msgid "7 choices"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:75
+msgid "8 choices"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:76
+msgid "9 choices"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:79
+msgid "Simple majority wins vcall"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:5
+msgid "Map Information"
+msgstr "Kartinformation"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:49
+msgid "Full item placement"
+msgstr "Fullständing sakplacering"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:49
+msgid "MinstaGib only"
+msgstr "Endast MinstaGib"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:78
+msgid "Title:"
+msgstr "Titel:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:84
+msgid "Author:"
+msgstr "Upphovsman:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:90
+msgid "Features:"
+msgstr "Egenskaper."
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:95
+msgid "Game types:"
+msgstr "Speltyper:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:119
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:314
+msgid "Close"
+msgstr "Stäng"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:122
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:46
+msgid "Play"
+msgstr "Spela"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:7
+msgid "Mutators"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:33
+msgid "All Weapons Arena"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:35
+msgid "Most Weapons Arena"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:56
+#, c-format
+msgid "%s Arena"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:68
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:167
+msgid "Dodging"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:70
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:250
+msgid "MinstaGib"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:72
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:253
+msgid "NIX"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:74
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:205
+msgid "Rocket Flying"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:78
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:264
+msgid "No start weapons"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:80
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:189
+msgid "Low gravity"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:82
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:170
+msgid "Cloaked"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:84
+msgid "Hook"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:86
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:173
+msgid "Midair"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:88
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:176
+msgid "Vampire"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:90
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:208
+msgid "Piñata"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:92
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:211
+msgid "Weapons stay"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:94
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:180
+msgid "Blood loss"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:96
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:202
+msgid "Jet pack"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:98
+msgid "MUT^None"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:164
+msgid "Gameplay mutators:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:196
+msgid "Weapon & item mutators:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:199
+msgid "Grappling hook"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:215
+msgid "Weapon arenas:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:218
+msgid "Regular (no arena)"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:239
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:256
+msgid "with laser"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:247
+msgid "Special arenas:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:260
+msgid "Most weapons"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:4
+msgid "Demo"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:28
+msgid "Record demos while playing"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:32
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:28
+msgid "Filter:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:33
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:29
+#: qcsrc/menu/xonotic/dialog_settings_input.c:41
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:24
+msgid "Clear"
+msgstr "Rensa"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:43
+msgid "Timedemo"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:4
+msgid "Join"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:36
+msgid "SRVS^Empty"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:40
+#, fuzzy
+msgid "SRVS^Full"
+msgstr "Fullt"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:44
+msgid "Pause"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:56
+msgid "Address:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:67
+msgid "Info..."
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:72
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:317
+msgid "Join!"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:5
+msgid "Server Information"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:115
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:116
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:183
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:189
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:199
+msgid "N/A"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:158
+#, c-format
+msgid "%d/%d, %d free player slots"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:172
+#, c-format
+msgid "%d modified settings"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:172
+msgid "Official settings"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:197
+msgid "N/A (can't connect)"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:205
+msgid "not supported (can't connect)"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:207
+msgid "not supported (won't encrypt)"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:211
+msgid "supported (will encrypt)"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:213
+msgid "supported (won't encrypt)"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:217
+msgid "requested (will encrypt)"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:219
+msgid "requested (won't encrypt)"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:223
+msgid "required (can't connect)"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:225
+msgid "required (will encrypt)"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:246
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:269
+msgid "Players:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:254
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:38
+msgid "Type:"
+msgstr "Typ:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:259
+msgid "Map:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:264
+msgid "Gameplay:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:274
+msgid "Bots:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:279
+msgid "Mod:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:284
+msgid "Version:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:289
+msgid "Ping:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:295
+msgid "CA:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:301
+msgid "Key:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:307
+msgid "Encryption:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:63
+msgid "Model:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:88
+msgid "Field of view:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:92
+msgid "View bobbing:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:96
+msgid "Zoom factor:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:100
+msgid "Zoom speed:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:103
+msgid "Weapon settings..."
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:110
+msgid "Crosshair:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:111
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:139
+msgid "Per weapon"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:130
+msgid "Crosshair size:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:134
+msgid "Crosshair alpha:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:138
+#, fuzzy
+msgid "Crosshair color:"
+msgstr "Färg på ammoraden:"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:140
+msgid "By health"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:143
+msgid "Custom"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:148
+msgid "Enable center dot"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:151
+msgid "Size:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:158
+msgid "Hit test:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:159
+msgid "HTST^None"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:160
+msgid "TrueAim"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:161
+msgid "Enemies"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:164
+msgid "Waypoints setup..."
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:169
+msgid "Enter HUD editor"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:174
+msgid "Force models:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:175
+msgid "MDL^None"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:176
+msgid "MDL^Custom"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:177
+#, fuzzy
+msgid "MDL^All"
+msgstr "Alla"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:180
+msgid "Disable gore effects"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:182
+msgid "Gibs:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:184
+msgid "GIBS^None"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:185
+msgid "GIBS^Few"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:186
+msgid "GIBS^Many"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:187
+msgid "GIBS^Lots"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:191
+msgid "Damage splash:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:195
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:178
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:194
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:30
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:41
+#: qcsrc/menu/xonotic/dialog_settings_video.c:105
+msgid "Apply immediately"
+msgstr "Tillämpa nu"
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:5
+msgid "Waypoints"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:23
+msgid "Show base waypoints"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:25
+msgid "Waypoint scale:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:29
+msgid "Waypoint alpha:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:34
+msgid "Show names:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:37
+msgid "Teammates"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:38
+msgid "All players"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:6
+msgid "Weapon settings"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:29
+msgid "Weapon priority list:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:34
+msgid "Up"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:37
+msgid "Down"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:41
+msgid "Use priority list for weapon cycling"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:43
+msgid "Auto switch weapons on pickup"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:45
+msgid "Draw 1st person weapon model"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:48
+msgid "Left align"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:50
+msgid "Right align"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:53
+msgid "Flip view horizontally"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_news.c:4
+msgid "News"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_news.c:18
+msgid "http://www.xonotic.org/team/blog/"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_quit.c:4
+msgid "Quit"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_quit.c:17
+msgid "Are you sure you want to quit?"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_quit.c:20
+msgid "Yes"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_quit.c:21
+msgid "No"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings.c:4
+msgid "Settings"
+msgstr "Inställningar"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:18
+#: qcsrc/menu/xonotic/dialog_settings_input.c:4
+msgid "Input"
+msgstr "Inmatning"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:19
+#: qcsrc/menu/xonotic/dialog_settings_video.c:4
+msgid "Video"
+msgstr "Video"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:20
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:4
+msgid "Effects"
+msgstr "Effekter"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:21
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:4
+msgid "Audio"
+msgstr "Ljud"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:22
+#: qcsrc/menu/xonotic/dialog_settings_network.c:4
+msgid "Network"
+msgstr "Nätverk"
+
+#: qcsrc/menu/xonotic/dialog_settings.c:23
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:4
+msgid "Misc"
+msgstr "Blandat"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:27
+msgid "Master:"
+msgstr "Master:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:33
+msgid "Music:"
+msgstr "Musik:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:40
+#, fuzzy
+msgid "VOL^Ambient:"
+msgstr "Bakgrund"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:48
+msgid "Info:"
+msgstr "Info:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:57
+msgid "Items:"
+msgstr "Saker:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:65
+msgid "Pain:"
+msgstr "Smärta:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:73
+msgid "Player:"
+msgstr "Spelare:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:81
+msgid "Shots:"
+msgstr "Skott:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:88
+msgid "Voice:"
+msgstr "Röst:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:96
+msgid "Weapons:"
+msgstr "Vapen:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:103
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:161
+msgid "Frequency:"
+msgstr "Frekvens:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:105
+msgid "8 kHz"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:106
+msgid "11.025 kHz"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:107
+msgid "16 kHz"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:108
+msgid "22.05 kHz"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:109
+msgid "24 kHz"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:110
+msgid "32 kHz"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:111
+msgid "44.1 kHz"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:112
+msgid "48 kHz"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:115
+msgid "Channels:"
+msgstr "Kanaler."
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:117
+msgid "Mono"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:118
+msgid "Stereo"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:119
+msgid "2.1"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:120
+msgid "4"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:121
+msgid "5"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:122
+msgid "5.1"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:123
+msgid "6.1"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:124
+msgid "7.1"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:128
+msgid "Swap Stereo"
+msgstr "Växla Stereo"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:132
+msgid "Headphone friendly mode"
+msgstr "Hörlursvänligt läge"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:136
+msgid "Spatial voices:"
+msgstr "Spatiala kanaler:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:137
+msgid "VOCS^None"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:138
+#, fuzzy
+msgid "VOCS^Taunts"
+msgstr "Pikar"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:139
+msgid "VOCS^All"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:142
+msgid "Taunt range:"
+msgstr "Avstånd för pikar:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:145
+#, fuzzy
+msgid "RNG^Very short"
+msgstr "Väldigt kort"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:146
+#, fuzzy
+msgid "RNG^Short"
+msgstr "Kort"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:147
+#, fuzzy
+msgid "RNG^Normal"
+msgstr "Normalt"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:148
+#, fuzzy
+msgid "RNG^Long"
+msgstr "Långt"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:149
+#, fuzzy
+msgid "RNG^Full"
+msgstr "Fullt"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:156
+msgid "Automatic taunts"
+msgstr "Automatiska pikar"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:165
+msgid "Time warning:"
+msgstr "Tidsvarning:"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:167
+msgid "WRN^None"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:168
+msgid "1 minute"
+msgstr "1 minut"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:169
+msgid "5 minutes"
+msgstr "5 minuter"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:170
+#, fuzzy
+msgid "WRN^Both"
+msgstr "Både och"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:173
+msgid "Hit indicator"
+msgstr "Skadoindikator"
+
+#: qcsrc/menu/xonotic/dialog_settings_audio.c:175
+msgid "Menu sounds"
+msgstr "Menyljud"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:38
+msgid "Quality preset:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:41
+msgid "PRE^OMG!"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:42
+msgid "PRE^Low"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:43
+msgid "PRE^Medium"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:44
+#, fuzzy
+msgid "PRE^Normal"
+msgstr "Normalt"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:45
+msgid "PRE^High"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:46
+msgid "PRE^Ultra"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:48
+msgid "PRE^Ultimate"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:52
+msgid "Geometry detail:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:54
+msgid "DET^Lowest"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:55
+msgid "DET^Low"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:56
+#, fuzzy
+msgid "DET^Normal"
+msgstr "Normalt"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:57
+msgid "DET^Good"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:58
+msgid "DET^Best"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:59
+msgid "DET^Insane"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:62
+msgid "Antialiasing:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:64
+#, fuzzy
+msgid "AA^Disabled"
+msgstr "Inaktivera"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:65
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:103
+msgid "2x"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:66
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:104
+msgid "4x"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:70
+msgid "Texture resolution:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:73
+msgid "RES^Leet"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:74
+msgid "RES^Lowest"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:75
+msgid "RES^Low"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:76
+#, fuzzy
+msgid "RES^Normal"
+msgstr "Normalt"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:77
+msgid "RES^Good"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:78
+msgid "RES^Best"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:91
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:94
+msgid "Avoid lossy texture compression"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:100
+msgid "Anisotropy:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:102
+#, fuzzy
+msgid "ANISO^Disabled"
+msgstr "Inaktivera"
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:105
+msgid "8x"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:106
+msgid "16x"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:110
+msgid "Particle quality:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:113
+msgid "Particle distance:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:117
+msgid "Decals"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:120
+msgid "Distance:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:126
+msgid "Time:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:132
+msgid "Use lightmaps"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:133
+msgid "Deluxe mapping"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:135
+msgid "Gloss"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:138
+msgid "Offset mapping"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:140
+msgid "Relief mapping"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:143
+msgid "Reflections:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:146
+msgid "Blurred"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:147
+msgid "REFL^Good"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:148
+msgid "Sharp"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:153
+msgid "Show surfaces"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:155
+msgid "No dynamic lighting"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:157
+msgid "Flash blend approximation"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:159
+msgid "Realtime dynamic lighting"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:160
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:164
+msgid "Shadows"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:163
+msgid "Realtime world lighting"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:168
+msgid "Use normal maps"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:170
+msgid "Soft shadows"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:173
+msgid "Coronas"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:174
+msgid "Use Occlusion Queries"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:176
+msgid "Bloom"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:178
+msgid "High Dynamic Range (HDR)"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:182
+msgid "Motion blur:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_effects.c:188
+msgid "Damage blur:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:26
+msgid "Key bindings:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:31
+msgid "Change key..."
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:35
+msgid "Edit..."
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:46
+msgid "Sensitivity:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:49
+msgid "UI mouse speed:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:52
+msgid "Mouse filter"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:54
+msgid "Invert mouse"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:57
+#: qcsrc/menu/xonotic/dialog_settings_input.c:59
+msgid "Use joystick input"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:62
+#: qcsrc/menu/xonotic/dialog_settings_input.c:64
+msgid "Turn off OS mouse acceleration"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_input.c:66
+msgid "\"enter console\" also closes"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:5
+msgid "User defined key bind"
+msgstr "Användardefinierad tangentkoppling"
+
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:42
+msgid "Command when pressed:"
+msgstr "Kommando när nedtryckt:"
+
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:45
+msgid "Command when released:"
+msgstr "Kommando när uppsläppt:"
+
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:48
+msgid "Save"
+msgstr "Spara"
+
+#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:51
+msgid "Cancel"
+msgstr "Avbryt"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:26
+msgid "Menu skins:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:47
+msgid "Show current time"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:49
+msgid "Show current date"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:51
+msgid "Show frames per second"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:53
+msgid "Speedometer"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:56
+msgid "qu/s (hidden)"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:58
+msgid "qu/s"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:60
+msgid "m/s"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:64
+msgid "km/h"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:66
+msgid "mph"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:68
+msgid "knots"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:71
+msgid "Show accelerometer"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:74
+msgid "Accelerometer scale:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_misc.c:80
+msgid "Minimize input latency"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:5
+msgid "Advanced settings"
+msgstr "Avancerade inställningar"
+
+#: 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 "Inställning:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:42
+msgid "Value:"
+msgstr "Värde:"
+
+#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:56
+msgid "Description:"
+msgstr "Beskrivning:"
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:26
+msgid "Client-side movement prediction"
+msgstr "Rörelseprediktering i klienten"
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:30
+msgid "Show netgraph"
+msgstr "Visa nätgraf"
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:33
+msgid "Network speed:"
+msgstr "Nätverkshastighet:"
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:35
+msgid "56k"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:36
+msgid "ISDN"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:37
+msgid "Slow ADSL"
+msgstr "Långsam ADSL"
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:38
+msgid "Fast ADSL"
+msgstr "Snabb ADSL"
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:39
+msgid "Broadband"
+msgstr "Bredband"
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:42
+msgid "Input packets/s:"
+msgstr "Inputpaket/s"
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:46
+msgid "HTTP downloads:"
+msgstr "HTTP-nedladdningar:"
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:49
+msgid "Downloads:"
+msgstr "Nedladdningar:"
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:53
+msgid "Speed (kB/s):"
+msgstr "Hastighet (kB/s):"
+
+#: qcsrc/menu/xonotic/dialog_settings_network.c:57
+msgid "Client UDP port:"
+msgstr "Klientens UDB-port:"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:26
+msgid "Resolution:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:29
+msgid "Font/UI size:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:31
+msgid "SZ^Unreadable"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:32
+msgid "SZ^Tiny"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:33
+msgid "SZ^Little"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:34
+msgid "SZ^Small"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:35
+msgid "SZ^Medium"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:36
+msgid "SZ^Large"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:37
+msgid "SZ^Huge"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:38
+msgid "SZ^Gigantic"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:39
+msgid "SZ^Colossal"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:42
+msgid "Color depth:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:45
+msgid "Full screen"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:46
+msgid "Vertical Synchronization"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:49
+msgid "Use OpenGL 2.0 shaders (GLSL)"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:52
+msgid "Use GLSL to handle color control"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:56
+msgid "Vertex Buffer Objects (VBOs)"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:59
+msgid "VBO^Off"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:60
+msgid "Vertices, some Tris (compatible)"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:63
+msgid "Vertices"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:64
+msgid "Vertices and Triangles"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:67
+msgid "Depth first:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:69
+#, fuzzy
+msgid "DF^Disabled"
+msgstr "Inaktivera"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:70
+msgid "DF^World"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:71
+#, fuzzy
+msgid "DF^All"
+msgstr "Alla"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:75
+msgid "Disable multithreaded OpenGL"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:77
+msgid "Wait for GPU to finish each frame"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:80
+msgid "Brightness:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:83
+msgid "Contrast:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:86
+msgid "Gamma:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:89
+msgid "Contrast boost:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:92
+msgid "Saturation:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:98
+#, fuzzy
+msgid "LIT^Ambient:"
+msgstr "Bakgrund"
+
+#: qcsrc/menu/xonotic/dialog_settings_video.c:101
+msgid "Intensity:"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:4
+msgid "Singleplayer"
+msgstr "En Spelare"
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:59
+msgid "Instant action! (random map with bots)"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:80
+msgid "Start Singleplayer!"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_singleplayer_winner.c:4
+msgid "Winner"
+msgstr "Vinnare"
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:5
+msgid "Team Selection"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:41
+msgid "join 'best' team (auto-select)"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:45
+msgid "red"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:46
+msgid "blue"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:47
+msgid "yellow"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:48
+msgid "pink"
+msgstr ""
+
+#: qcsrc/menu/xonotic/dialog_teamselect.c:51
+msgid "spectate"
+msgstr ""
+
+#: qcsrc/menu/xonotic/mainwindow.c:35 qcsrc/menu/xonotic/mainwindow.c:38
+msgid "Do not press this button again!"
+msgstr ""
+
+#: qcsrc/menu/xonotic/maplist.c:278
+msgid ""
+"Huh? Can't play this (m is NULL). Refiltering so this won't happen again.\n"
+msgstr ""
+
+#: qcsrc/menu/xonotic/maplist.c:286
+#, c-format
+msgid "%s's Xonotic Server"
+msgstr ""
+
+#: qcsrc/menu/xonotic/maplist.c:291
+msgid ""
+"Huh? Can't play this (invalid game type). Refiltering so this won't happen "
+"again.\n"
+msgstr ""
+
+#: qcsrc/menu/xonotic/playermodel.c:174
+msgid "<no model found>"
+msgstr "<ingen modell funnen>"
+
+#: qcsrc/menu/xonotic/serverlist.c:185
+msgid "Remove"
+msgstr ""
+
+#: qcsrc/menu/xonotic/serverlist.c:187
+msgid "Bookmark"
+msgstr ""
+
+#: qcsrc/menu/xonotic/serverlist.c:523
+msgid "Ping"
+msgstr ""
+
+#: qcsrc/menu/xonotic/serverlist.c:524
+msgid "Host name"
+msgstr ""
+
+#: qcsrc/menu/xonotic/serverlist.c:525
+msgid "Map"
+msgstr ""
+
+#: qcsrc/menu/xonotic/serverlist.c:526
+msgid "Type"
+msgstr ""
+
+#: qcsrc/menu/xonotic/serverlist.c:527
+msgid "Players"
+msgstr ""
+
+#: qcsrc/menu/xonotic/skinlist.c:105
+msgid "<TITLE>"
+msgstr ""
+
+#: qcsrc/menu/xonotic/skinlist.c:106
+msgid "<AUTHOR>"
+msgstr ""
+
+#: qcsrc/menu/xonotic/skinlist.c:163
+#, c-format
+msgid "%s: %s"
+msgstr ""
+
+#: qcsrc/menu/xonotic/slider_decibels.c:50
+msgid "VOL^OFF"
+msgstr ""
+
+#: qcsrc/menu/xonotic/slider_decibels.c:52
+msgid "VOL^MAX"
+msgstr ""
+
+#: qcsrc/menu/xonotic/slider_decibels.c:53
+#, c-format
+msgid "%s dB"
+msgstr ""
+
+#: qcsrc/menu/xonotic/slider_resolution.c:65
+#, c-format
+msgid "%dx%d"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:270
+#, c-format
+msgid "Received HTTP request data for an invalid id %d.\n"
+msgstr "Mottog HTTP-förfrågan för en ogiltig ID %d.\n"
+
+#: qcsrc/menu/xonotic/util.qc:285
+#, c-format
+msgid "error receiving update notification: status is %d\n"
+msgstr "fel vid mottagande av uppdateringsnotifiering: status 'r %d\n"
+
+#: qcsrc/menu/xonotic/util.qc:290
+msgid "error: received HTML instead of an update notification\n"
+msgstr "fel: mottog HTML istället för en uppdateringsnotifiering"
+
+#: qcsrc/menu/xonotic/util.qc:295
+msgid "error: received carriage returns from update notification server\n"
+msgstr "fel: mottog radslut från uppdateringsnotifieringsservern"
+
+#: qcsrc/menu/xonotic/util.qc:316
+#, c-format
+msgid ""
+"Update can be downloaded at:\n"
+"%s\n"
+msgstr ""
+"Uppdatering kan laddas ner från:\n"
+"%s\n"
+
+#: qcsrc/menu/xonotic/util.qc:337
+msgid "Autogenerating mapinfo for newly added maps..."
+msgstr "Automatgenererar kartinfo för nyligen tillagda kartor..."
+
+#: qcsrc/menu/xonotic/util.qc:367
+#, c-format
+msgid "^1%s TEST BUILD"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:432
+#, c-format
+msgid "Update to %s now!"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:509
+msgid ""
+"^1ERROR: Texture compression is required but not supported.\n"
+"^1Expect visual problems.\n"
+msgstr ""
+"^1FEL: Texturkompression krävs men stöds ej.\n"
+"^1Räkna med visuella problem.\n"
+
+#: qcsrc/menu/xonotic/util.qc:531
+msgid "Arena"
+msgstr "Arena"
+
+#: qcsrc/menu/xonotic/util.qc:532
+msgid "Assault"
+msgstr "Anfall"
+
+#: qcsrc/menu/xonotic/util.qc:533
+msgid "Capture The Flag"
+msgstr "Erövra Flaggan"
+
+#: qcsrc/menu/xonotic/util.qc:534
+msgid "Clan Arena"
+msgstr "Klan Arena"
+
+#: qcsrc/menu/xonotic/util.qc:535
+msgid "Deathmatch"
+msgstr "Dödsmatch"
+
+#: qcsrc/menu/xonotic/util.qc:536
+msgid "Domination"
+msgstr "Dominering"
+
+#: qcsrc/menu/xonotic/util.qc:537
+msgid "Freeze Tag"
+msgstr "Frys-Kull"
+
+#: qcsrc/menu/xonotic/util.qc:538
+msgid "Keepaway"
+msgstr "Håll Dig Undan"
+
+#: qcsrc/menu/xonotic/util.qc:539
+msgid "Key Hunt"
+msgstr "Nyckeljakt"
+
+#: qcsrc/menu/xonotic/util.qc:540
+msgid "Last Man Standing"
+msgstr "Herre På Täppan"
+
+#: qcsrc/menu/xonotic/util.qc:541
+msgid "Nexball"
+msgstr "Nexboll"
+
+#: qcsrc/menu/xonotic/util.qc:542
+msgid "Onslaught"
+msgstr "Stormning"
+
+#: qcsrc/menu/xonotic/util.qc:543
+msgid "Race"
+msgstr "Lopp"
+
+#: qcsrc/menu/xonotic/util.qc:544
+msgid "Race CTS"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:545
+msgid "Runematch"
+msgstr ""
+
+#: qcsrc/menu/xonotic/util.qc:546
+msgid "Team Deathmatch"
+msgstr "Dödsmatch i Lag"
+
+#: qcsrc/menu/xonotic/util.qc:565
+#, c-format
+msgid "@!#%'n Tuba Throwing"
+msgstr "@!#%'n Tubakastning"
+
+#: qcsrc/menu/xonotic/util.qc:583
+msgid "Background:"
+msgstr "Bakgrund:"
+
+#: qcsrc/menu/xonotic/util.qc:585 qcsrc/menu/xonotic/util.qc:601
+#: qcsrc/menu/xonotic/util.qc:610 qcsrc/menu/xonotic/util.qc:618
+#: qcsrc/menu/xonotic/util.qc:630
+msgid "Default"
+msgstr "Standard"
+
+#: qcsrc/menu/xonotic/util.qc:596
+msgid "Use default"
+msgstr "Använd standard"
+
+#: qcsrc/menu/xonotic/util.qc:616
+msgid "Team Color:"
+msgstr "Lagfärg:"
+
+#: qcsrc/menu/xonotic/util.qh:49
+msgid "Enable panel"
+msgstr ""
+
+#: qcsrc/server/w_crylink.qc:2
+msgid "Crylink"
+msgstr ""
+
+#: qcsrc/server/w_crylink.qc:664
+#, c-format
+msgid "%s succeeded at self-destructing themself with the Crylink"
+msgstr ""
+
+#: qcsrc/server/w_crylink.qc:669
+#, c-format
+msgid "%s could not hide from %s's Crylink"
+msgstr ""
+
+#: qcsrc/server/w_crylink.qc:671
+#, c-format
+msgid "%s was too close to %s's Crylink"
+msgstr ""
+
+#: qcsrc/server/w_crylink.qc:673
+#, c-format
+msgid "%s took a close look at %s's Crylink"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:2
+msgid "Electro"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:571
+#, c-format
+msgid "%s could not remember where they put plasma"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:573
+#, c-format
+msgid "%s played with plasma"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:580
+#, c-format
+msgid "%s just noticed %s's blue ball"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:582
+#, c-format
+msgid "%s got in touch with %s's blue ball"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:587
+#, c-format
+msgid "%s felt the electrifying air of %s's combo"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:589
+#, c-format
+msgid "%s got too close to %s's blue beam"
+msgstr ""
+
+#: qcsrc/server/w_electro.qc:591
+#, c-format
+msgid "%s was blasted by %s's blue beam"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:2
+#, fuzzy
+msgid "Fireball"
+msgstr "Nexboll"
+
+#: qcsrc/server/w_fireball.qc:417
+#, c-format
+msgid "%s forgot about some firemine"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:419 qcsrc/server/w_hlac.qc:240
+#, c-format
+msgid "%s should have used a smaller gun"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:426
+#, c-format
+msgid "%s tried to catch %s's firemine"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:428
+#, c-format
+msgid "%s fatefully ignored %s's firemine"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:435
+#, c-format
+msgid "%s could not hide from %s's fireball"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:437
+#, c-format
+msgid "%s saw the pretty lights of %s's fireball"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:440
+#, c-format
+msgid "%s got too close to %s's fireball"
+msgstr ""
+
+#: qcsrc/server/w_fireball.qc:442
+#, c-format
+msgid "%s tasted %s's fireball"
+msgstr ""
+
+#: qcsrc/server/w_grenadelauncher.qc:2
+msgid "Mortar"
+msgstr ""
+
+#: qcsrc/server/w_grenadelauncher.qc:378
+#, c-format
+msgid "%s tried out his own grenade"
+msgstr ""
+
+#: qcsrc/server/w_grenadelauncher.qc:380
+#, c-format
+msgid "%s detonated"
+msgstr ""
+
+#: qcsrc/server/w_grenadelauncher.qc:386
+#, c-format
+msgid "%s didn't see %s's grenade"
+msgstr ""
+
+#: qcsrc/server/w_grenadelauncher.qc:388
+#, c-format
+msgid "%s almost dodged %s's grenade"
+msgstr ""
+
+#: qcsrc/server/w_grenadelauncher.qc:390
+#, c-format
+msgid "%s ate %s's grenade"
+msgstr ""
+
+#: qcsrc/server/w_hagar.qc:2
+msgid "Hagar"
+msgstr ""
+
+#: qcsrc/server/w_hagar.qc:209 qcsrc/server/w_seeker.qc:655
+#, c-format
+msgid "%s played with tiny rockets"
+msgstr ""
+
+#: qcsrc/server/w_hagar.qc:213
+#, c-format
+msgid "%s hoped %s's missiles wouldn't bounce"
+msgstr ""
+
+#: qcsrc/server/w_hagar.qc:215 qcsrc/server/w_seeker.qc:661
+#, c-format
+msgid "%s was pummeled by %s"
+msgstr ""
+
+#: qcsrc/server/w_hlac.qc:2
+msgid "Heavy Laser Assault Cannon"
+msgstr ""
+
+#: qcsrc/server/w_hlac.qc:242
+#, c-format
+msgid "%s was cut down by %s"
+msgstr ""
+
+#: qcsrc/server/w_hook.qc:2
+msgid "Grappling Hook"
+msgstr ""
+
+#: qcsrc/server/w_hook.qc:266 qcsrc/server/w_minstanex.qc:290
+#: qcsrc/server/w_nex.qc:267 qcsrc/server/w_porto.qc:296
+#: qcsrc/server/w_shotgun.qc:203 qcsrc/server/w_uzi.qc:317
+#, c-format
+msgid "%s did the impossible"
+msgstr ""
+
+#: qcsrc/server/w_hook.qc:268
+#, c-format
+msgid "%s has run into %s's gravity bomb"
+msgstr ""
+
+#: qcsrc/server/w_laser.qc:2
+#, fuzzy
+msgid "Laser"
+msgstr "Master:"
+
+#: qcsrc/server/w_laser.qc:305
+#, c-format
+msgid "%s lasered themself to hell"
+msgstr ""
+
+#: qcsrc/server/w_laser.qc:309
+#, c-format
+msgid "%s was cut in half by %s's gauntlet"
+msgstr ""
+
+#: qcsrc/server/w_laser.qc:311
+#, c-format
+msgid "%s was lasered to death by %s"
+msgstr ""
+
+#: qcsrc/server/w_minelayer.qc:2
+#, fuzzy
+msgid "Mine Layer"
+msgstr "En Spelare"
+
+#: qcsrc/server/w_minelayer.qc:495 qcsrc/server/w_rocketlauncher.qc:500
+#, c-format
+msgid "%s exploded"
+msgstr ""
+
+#: qcsrc/server/w_minelayer.qc:499
+#, c-format
+msgid "%s got too close to %s's mine"
+msgstr ""
+
+#: qcsrc/server/w_minelayer.qc:501
+#, c-format
+msgid "%s almost dodged %s's mine"
+msgstr ""
+
+#: qcsrc/server/w_minelayer.qc:503
+#, c-format
+msgid "%s stepped on %s's mine"
+msgstr ""
+
+#: qcsrc/server/w_minstanex.qc:2
+msgid "MinstaNex"
+msgstr ""
+
+#: qcsrc/server/w_minstanex.qc:292 qcsrc/server/w_nex.qc:269
+#, c-format
+msgid "%s has been vaporized by %s"
+msgstr ""
+
+#: qcsrc/server/w_nex.qc:2
+#, fuzzy
+msgid "Nex"
+msgstr "Nexboll"
+
+#: qcsrc/server/w_porto.qc:2
+msgid "Port-O-Launch"
+msgstr ""
+
+#: qcsrc/server/w_porto.qc:298
+#, c-format
+msgid "%s felt %s doing the impossible to him"
+msgstr ""
+
+#: qcsrc/server/w_rocketlauncher.qc:2
+msgid "Rocket Launcher"
+msgstr ""
+
+#: qcsrc/server/w_rocketlauncher.qc:504
+#, c-format
+msgid "%s got too close to %s's rocket"
+msgstr ""
+
+#: qcsrc/server/w_rocketlauncher.qc:506
+#, c-format
+msgid "%s almost dodged %s's rocket"
+msgstr ""
+
+#: qcsrc/server/w_rocketlauncher.qc:508
+#, c-format
+msgid "%s ate %s's rocket"
+msgstr ""
+
+#: qcsrc/server/w_seeker.qc:2
+msgid "T.A.G. Seeker"
+msgstr ""
+
+#: qcsrc/server/w_seeker.qc:659
+#, c-format
+msgid "%s was tagged by %s"
+msgstr ""
+
+#: qcsrc/server/w_shotgun.qc:2
+#, fuzzy
+msgid "Shotgun"
+msgstr "Kort"
+
+#: qcsrc/server/w_shotgun.qc:207
+#, c-format
+msgid "%2$s ^7slapped %1$s ^7around a bit with a large ^2shotgun"
+msgstr ""
+
+#: qcsrc/server/w_shotgun.qc:209
+#, c-format
+msgid "%s was gunned by %s"
+msgstr ""
+
+#: qcsrc/server/w_sniperrifle.qc:2
+msgid "Sniper Rifle"
+msgstr ""
+
+#: qcsrc/server/w_sniperrifle.qc:229
+#, c-format
+msgid "%s shot themself automatically"
+msgstr ""
+
+#: qcsrc/server/w_sniperrifle.qc:231
+#, c-format
+msgid "%s sniped themself somehow"
+msgstr ""
+
+#: qcsrc/server/w_sniperrifle.qc:238
+#, c-format
+msgid "%s failed to hide from %s's bullet hail"
+msgstr ""
+
+#: qcsrc/server/w_sniperrifle.qc:240
+#, c-format
+msgid "%s died in %s's bullet hail"
+msgstr ""
+
+#: qcsrc/server/w_sniperrifle.qc:247
+#, c-format
+msgid "%s failed to hide from %s's rifle"
+msgstr ""
+
+#: qcsrc/server/w_sniperrifle.qc:252
+#, c-format
+msgid "%s got hit in the head by %s"
+msgstr ""
+
+#: qcsrc/server/w_sniperrifle.qc:254 qcsrc/server/w_uzi.qc:321
+#, c-format
+msgid "%s was sniped by %s"
+msgstr ""
+
+#: qcsrc/server/w_tuba.qc:2
+#, fuzzy, c-format
+msgid "@!#%'n Tuba"
+msgstr "@!#%'n Tubakastning"
+
+#: qcsrc/server/w_tuba.qc:263
+#, c-format
+msgid "%s hurt his own ears with the @!#%%'n Tuba"
+msgstr ""
+
+#: qcsrc/server/w_tuba.qc:267
+#, c-format
+msgid "%s died of %s's great playing on the @!#%%'n Tuba"
+msgstr ""
+
+#: qcsrc/server/w_uzi.qc:2
+msgid "Machine Gun"
+msgstr ""
+
+#: qcsrc/server/w_uzi.qc:323
+#, c-format
+msgid "%s was riddled full of holes by %s"
+msgstr ""
370 21 35.000000 1 // forwardleft
391 21 35.000000 1 // backright
412 21 30.000000 1 // backleft
+433 21 20.000000 0 // melee
\ No newline at end of file
370 21 35.000000 1 // forwardleft
391 21 35.000000 1 // backright
412 21 30.000000 1 // backleft
+433 21 20.000000 0 // melee
\ No newline at end of file
370 21 35.000000 1 // forwardleft
391 21 35.000000 1 // backright
412 21 30.000000 1 // backleft
+433 21 20.000000 0 // melee
\ No newline at end of file
370 21 35.000000 1 // forwardleft
391 21 35.000000 1 // backright
412 21 30.000000 1 // backleft
+433 21 20.000000 0 // melee
\ No newline at end of file
--- /dev/null
+0 36 15.000000 0 // dieone
+36 20 15.000000 0 // dietwo
+56 15 15.000000 1 // draw
+71 20 15.000000 1 // duck
+91 21 30.000000 1 // duckwalk
+112 16 15.000000 0 // duckjump
+128 15 5.000000 1 // duckidle
+143 41 5.000000 1 // idle
+184 21 25.000000 0 // jump
+205 15 15.000000 0 // painone
+220 17 15.000000 0 // paintwo
+237 3 15.000000 0 // shoot
+240 21 15.000000 1 // taunt
+261 21 35.000000 1 // run
+282 21 35.000000 1 // runbackwards
+303 21 35.000000 1 // strafeleft
+324 21 35.000000 1 // straferight
+345 2 15.000000 0 // deadone
+347 2 15.000000 0 // deadtwo
+349 21 35.000000 1 // forwardright
+370 21 35.000000 1 // forwardleft
+391 21 35.000000 1 // backright
+412 21 30.000000 1 // backleft
+433 21 20.000000 0 // melee
\ No newline at end of file
--- /dev/null
+0 36 15.000000 0 // dieone
+36 20 15.000000 0 // dietwo
+56 15 15.000000 1 // draw
+71 20 15.000000 1 // duck
+91 21 30.000000 1 // duckwalk
+112 16 15.000000 0 // duckjump
+128 15 5.000000 1 // duckidle
+143 41 5.000000 1 // idle
+184 21 25.000000 0 // jump
+205 15 15.000000 0 // painone
+220 17 15.000000 0 // paintwo
+237 3 15.000000 0 // shoot
+240 21 15.000000 1 // taunt
+261 21 35.000000 1 // run
+282 21 35.000000 1 // runbackwards
+303 21 35.000000 1 // strafeleft
+324 21 35.000000 1 // straferight
+345 2 15.000000 0 // deadone
+347 2 15.000000 0 // deadtwo
+349 21 35.000000 1 // forwardright
+370 21 35.000000 1 // forwardleft
+391 21 35.000000 1 // backright
+412 21 30.000000 1 // backleft
+433 21 20.000000 0 // melee
\ No newline at end of file
370 21 35.000000 1 // forwardleft
391 21 35.000000 1 // backright
412 21 30.000000 1 // backleft
+433 21 20.000000 0 // melee
\ No newline at end of file
--- /dev/null
+0 36 15.000000 0 // dieone
+36 20 15.000000 0 // dietwo
+56 15 15.000000 1 // draw
+71 20 15.000000 1 // duck
+91 21 30.000000 1 // duckwalk
+112 16 15.000000 0 // duckjump
+128 15 5.000000 1 // duckidle
+143 41 5.000000 1 // idle
+184 21 25.000000 0 // jump
+205 15 15.000000 0 // painone
+220 17 15.000000 0 // paintwo
+237 3 15.000000 0 // shoot
+240 21 15.000000 1 // taunt
+261 21 35.000000 1 // run
+282 21 35.000000 1 // runbackwards
+303 21 35.000000 1 // strafeleft
+324 21 35.000000 1 // straferight
+345 2 15.000000 0 // deadone
+347 2 15.000000 0 // deadtwo
+349 21 35.000000 1 // forwardright
+370 21 35.000000 1 // forwardleft
+391 21 35.000000 1 // backright
+412 21 30.000000 1 // backleft
+433 21 20.000000 0 // melee
\ No newline at end of file
--- /dev/null
+0 36 15.000000 0 // dieone
+36 20 15.000000 0 // dietwo
+56 15 15.000000 1 // draw
+71 20 15.000000 1 // duck
+91 21 30.000000 1 // duckwalk
+112 16 15.000000 0 // duckjump
+128 15 5.000000 1 // duckidle
+143 41 5.000000 1 // idle
+184 21 25.000000 0 // jump
+205 15 15.000000 0 // painone
+220 17 15.000000 0 // paintwo
+237 3 15.000000 0 // shoot
+240 21 15.000000 1 // taunt
+261 21 35.000000 1 // run
+282 21 35.000000 1 // runbackwards
+303 21 35.000000 1 // strafeleft
+324 21 35.000000 1 // straferight
+345 2 15.000000 0 // deadone
+347 2 15.000000 0 // deadtwo
+349 21 35.000000 1 // forwardright
+370 21 35.000000 1 // forwardleft
+391 21 35.000000 1 // backright
+412 21 30.000000 1 // backleft
+433 21 20.000000 0 // melee
\ No newline at end of file
370 21 35.000000 1 // forwardleft
391 21 35.000000 1 // backright
412 21 30.000000 1 // backleft
+433 21 20.000000 0 // melee
\ No newline at end of file
--- /dev/null
+0 36 15.000000 0 // dieone
+36 20 15.000000 0 // dietwo
+56 15 15.000000 1 // draw
+71 20 15.000000 1 // duck
+91 21 30.000000 1 // duckwalk
+112 16 15.000000 0 // duckjump
+128 15 5.000000 1 // duckidle
+143 41 5.000000 1 // idle
+184 21 25.000000 0 // jump
+205 15 15.000000 0 // painone
+220 17 15.000000 0 // paintwo
+237 3 15.000000 0 // shoot
+240 21 15.000000 1 // taunt
+261 21 35.000000 1 // run
+282 21 35.000000 1 // runbackwards
+303 21 35.000000 1 // strafeleft
+324 21 35.000000 1 // straferight
+345 2 15.000000 0 // deadone
+347 2 15.000000 0 // deadtwo
+349 21 35.000000 1 // forwardright
+370 21 35.000000 1 // forwardleft
+391 21 35.000000 1 // backright
+412 21 30.000000 1 // backleft
+433 21 20.000000 0 // melee
\ No newline at end of file
--- /dev/null
+0 36 15.000000 0 // dieone
+36 20 15.000000 0 // dietwo
+56 15 15.000000 1 // draw
+71 20 15.000000 1 // duck
+91 21 30.000000 1 // duckwalk
+112 16 15.000000 0 // duckjump
+128 15 5.000000 1 // duckidle
+143 41 5.000000 1 // idle
+184 21 25.000000 0 // jump
+205 15 15.000000 0 // painone
+220 17 15.000000 0 // paintwo
+237 3 15.000000 0 // shoot
+240 21 15.000000 1 // taunt
+261 21 35.000000 1 // run
+282 21 35.000000 1 // runbackwards
+303 21 35.000000 1 // strafeleft
+324 21 35.000000 1 // straferight
+345 2 15.000000 0 // deadone
+347 2 15.000000 0 // deadtwo
+349 21 35.000000 1 // forwardright
+370 21 35.000000 1 // forwardleft
+391 21 35.000000 1 // backright
+412 21 30.000000 1 // backleft
+433 21 20.000000 0 // melee
\ No newline at end of file
370 21 35.000000 1 // forwardleft
391 21 35.000000 1 // backright
412 21 30.000000 1 // backleft
+433 21 20.000000 0 // melee
\ No newline at end of file
370 21 35.000000 1 // forwardleft
391 21 35.000000 1 // backright
412 21 30.000000 1 // backleft
+433 21 20.000000 0 // melee
\ No newline at end of file
370 21 35.000000 1 // forwardleft
391 21 35.000000 1 // backright
412 21 30.000000 1 // backleft
+433 21 20.000000 0 // melee
\ No newline at end of file
370 21 35.000000 1 // forwardleft
391 21 35.000000 1 // backright
412 21 30.000000 1 // backleft
+433 21 20.000000 0 // melee
\ No newline at end of file
370 21 35.000000 1 // forwardleft
391 21 35.000000 1 // backright
412 21 30.000000 1 // backleft
+433 21 20.000000 0 // melee
\ No newline at end of file
370 21 35.000000 1 // forwardleft
391 21 35.000000 1 // backright
412 21 30.000000 1 // backleft
+433 21 20.000000 0 // melee
\ No newline at end of file
370 21 35.000000 1 // forwardleft
391 21 35.000000 1 // backright
412 21 30.000000 1 // backleft
+433 21 20.000000 0 // melee
\ No newline at end of file
370 21 35.000000 1 // forwardleft
391 21 35.000000 1 // backright
412 21 30.000000 1 // backleft
+433 21 20.000000 0 // melee
\ No newline at end of file
370 21 35.000000 1 // forwardleft
391 21 35.000000 1 // backright
412 21 30.000000 1 // backleft
+433 21 20.000000 0 // melee
\ No newline at end of file
370 21 35.000000 1 // forwardleft
391 21 35.000000 1 // backright
412 21 30.000000 1 // backleft
+433 21 20.000000 0 // melee
\ No newline at end of file
--- /dev/null
+0 36 15.000000 0 // dieone
+36 20 15.000000 0 // dietwo
+56 15 15.000000 1 // draw
+71 20 15.000000 1 // duck
+91 21 30.000000 1 // duckwalk
+112 16 15.000000 0 // duckjump
+128 15 5.000000 1 // duckidle
+143 41 5.000000 1 // idle
+184 21 25.000000 0 // jump
+205 15 15.000000 0 // painone
+220 17 15.000000 0 // paintwo
+237 3 15.000000 0 // shoot
+240 21 15.000000 1 // taunt
+261 21 35.000000 1 // run
+282 21 35.000000 1 // runbackwards
+303 21 35.000000 1 // strafeleft
+324 21 35.000000 1 // straferight
+345 2 15.000000 0 // deadone
+347 2 15.000000 0 // deadtwo
+349 21 35.000000 1 // forwardright
+370 21 35.000000 1 // forwardleft
+391 21 35.000000 1 // backright
+412 21 30.000000 1 // backleft
+433 21 20.000000 0 // melee
\ No newline at end of file
--- /dev/null
+0 36 15.000000 0 // dieone
+36 20 15.000000 0 // dietwo
+56 15 15.000000 1 // draw
+71 20 15.000000 1 // duck
+91 21 30.000000 1 // duckwalk
+112 16 15.000000 0 // duckjump
+128 15 5.000000 1 // duckidle
+143 41 5.000000 1 // idle
+184 21 25.000000 0 // jump
+205 15 15.000000 0 // painone
+220 17 15.000000 0 // paintwo
+237 3 15.000000 0 // shoot
+240 21 15.000000 1 // taunt
+261 21 35.000000 1 // run
+282 21 35.000000 1 // runbackwards
+303 21 35.000000 1 // strafeleft
+324 21 35.000000 1 // straferight
+345 2 15.000000 0 // deadone
+347 2 15.000000 0 // deadtwo
+349 21 35.000000 1 // forwardright
+370 21 35.000000 1 // forwardleft
+391 21 35.000000 1 // backright
+412 21 30.000000 1 // backleft
+433 21 20.000000 0 // melee
\ No newline at end of file
339 21 40.000000 1 // forwardleft
360 21 40.000000 1 // backright
381 21 40.000000 1 // backleft
+402 21 20.000000 0 // melee
\ No newline at end of file
--- /dev/null
+0 36 20.000000 0 // dieone
+36 27 20.000000 0 // dietwo
+63 15 15.000000 1 // draw
+78 20 15.000000 1 // duck
+98 11 15.000000 1 // duckwalk
+109 16 15.000000 0 // duckjump
+125 15 5.000000 1 // duckidle
+140 16 5.000000 1 // idle
+156 16 15.000000 0 // jump
+172 15 15.000000 0 // painone
+187 17 15.000000 0 // paintwo
+204 5 15.000000 0 // shoot
+209 21 15.000000 1 // taunt
+230 21 40.000000 1 // run
+251 21 40.000000 1 // runbackwards
+272 21 40.000000 1 // strafeleft
+293 21 40.000000 1 // straferight
+314 2 15.000000 0 // deadone
+316 2 15.000000 0 // deadtwo
+318 21 40.000000 1 // forwardright
+339 21 40.000000 1 // forwardleft
+360 21 40.000000 1 // backright
+381 21 40.000000 1 // backleft
+402 21 20.000000 0 // melee
\ No newline at end of file
--- /dev/null
+0 36 20.000000 0 // dieone
+36 27 20.000000 0 // dietwo
+63 15 15.000000 1 // draw
+78 20 15.000000 1 // duck
+98 11 15.000000 1 // duckwalk
+109 16 15.000000 0 // duckjump
+125 15 5.000000 1 // duckidle
+140 16 5.000000 1 // idle
+156 16 15.000000 0 // jump
+172 15 15.000000 0 // painone
+187 17 15.000000 0 // paintwo
+204 5 15.000000 0 // shoot
+209 21 15.000000 1 // taunt
+230 21 40.000000 1 // run
+251 21 40.000000 1 // runbackwards
+272 21 40.000000 1 // strafeleft
+293 21 40.000000 1 // straferight
+314 2 15.000000 0 // deadone
+316 2 15.000000 0 // deadtwo
+318 21 40.000000 1 // forwardright
+339 21 40.000000 1 // forwardleft
+360 21 40.000000 1 // backright
+381 21 40.000000 1 // backleft
+402 21 20.000000 0 // melee
\ No newline at end of file
370 21 35.000000 1 // forwardleft
391 21 35.000000 1 // backright
412 21 30.000000 1 // backleft
+433 21 20.000000 0 // melee
\ No newline at end of file
370 21 35.000000 1 // forwardleft
391 21 35.000000 1 // backright
412 21 30.000000 1 // backleft
+433 21 20.000000 0 // melee
\ No newline at end of file
370 21 35.000000 1 // forwardleft
391 21 35.000000 1 // backright
412 21 30.000000 1 // backleft
+433 21 20.000000 0 // melee
\ No newline at end of file
370 21 35.000000 1 // forwardleft
391 21 35.000000 1 // backright
412 21 30.000000 1 // backleft
+433 21 20.000000 0 // melee
\ No newline at end of file
370 21 35.000000 1 // forwardleft
391 21 35.000000 1 // backright
412 21 30.000000 1 // backleft
+433 21 20.000000 0 // melee
\ No newline at end of file
370 21 35.000000 1 // forwardleft
391 21 35.000000 1 // backright
412 21 30.000000 1 // backleft
+433 21 20.000000 0 // melee
\ No newline at end of file
339 21 40.000000 1 // forwardleft
360 21 40.000000 1 // backright
381 21 40.000000 1 // backleft
+402 21 20.000000 0 // melee
\ No newline at end of file
--- /dev/null
+0 36 20.000000 0 // dieone
+36 27 20.000000 0 // dietwo
+63 15 15.000000 1 // draw
+78 20 15.000000 1 // duck
+98 11 15.000000 1 // duckwalk
+109 16 15.000000 0 // duckjump
+125 15 5.000000 1 // duckidle
+140 16 5.000000 1 // idle
+156 16 15.000000 0 // jump
+172 15 15.000000 0 // painone
+187 17 15.000000 0 // paintwo
+204 5 15.000000 0 // shoot
+209 21 15.000000 1 // taunt
+230 21 40.000000 1 // run
+251 21 40.000000 1 // runbackwards
+272 21 40.000000 1 // strafeleft
+293 21 40.000000 1 // straferight
+314 2 15.000000 0 // deadone
+316 2 15.000000 0 // deadtwo
+318 21 40.000000 1 // forwardright
+339 21 40.000000 1 // forwardleft
+360 21 40.000000 1 // backright
+381 21 40.000000 1 // backleft
+402 21 20.000000 0 // melee
\ No newline at end of file
--- /dev/null
+0 36 20.000000 0 // dieone
+36 27 20.000000 0 // dietwo
+63 15 15.000000 1 // draw
+78 20 15.000000 1 // duck
+98 11 15.000000 1 // duckwalk
+109 16 15.000000 0 // duckjump
+125 15 5.000000 1 // duckidle
+140 16 5.000000 1 // idle
+156 16 15.000000 0 // jump
+172 15 15.000000 0 // painone
+187 17 15.000000 0 // paintwo
+204 5 15.000000 0 // shoot
+209 21 15.000000 1 // taunt
+230 21 40.000000 1 // run
+251 21 40.000000 1 // runbackwards
+272 21 40.000000 1 // strafeleft
+293 21 40.000000 1 // straferight
+314 2 15.000000 0 // deadone
+316 2 15.000000 0 // deadtwo
+318 21 40.000000 1 // forwardright
+339 21 40.000000 1 // forwardleft
+360 21 40.000000 1 // backright
+381 21 40.000000 1 // backleft
+402 21 20.000000 0 // melee
\ No newline at end of file
--- /dev/null
+0 99 30 1
\ No newline at end of file
--- /dev/null
+ring,models/relics/relic_ring
+mesh,models/relics/relic
+sign,models/relics/sign_resistance
\ No newline at end of file
--- /dev/null
+ring,models/relics/relic_ring
+mesh,models/relics/relic
+sign,models/relics/sign_regeneration
\ No newline at end of file
--- /dev/null
+ring,models/relics/relic_ring
+mesh,models/relics/relic
+sign,models/relics/sign_jump
\ No newline at end of file
--- /dev/null
+ring,models/relics/relic_ring
+mesh,models/relics/relic
+sign,models/relics/sign_flight
\ No newline at end of file
--- /dev/null
+ring,models/relics/relic_ring
+mesh,models/relics/relic
+sign,models/relics/sign_invisible
\ No newline at end of file
--- /dev/null
+ring,models/relics/relic_ring
+mesh,models/relics/relic
+sign,models/relics/sign_radioactive
\ No newline at end of file
--- /dev/null
+ring,models/relics/relic_ring
+mesh,models/relics/relic
+sign,models/relics/sign_resurrection
\ No newline at end of file
--- /dev/null
+ring,models/relics/relic_ring
+mesh,models/relics/relic
+sign,models/relics/sign_vengeance
\ No newline at end of file
--- /dev/null
+ring,models/relics/relic_ring
+mesh,models/relics/relic
+sign,models/relics/sign_vampire
\ No newline at end of file
--- /dev/null
+ring,models/relics/relic_ring
+mesh,models/relics/relic
+sign,models/relics/sign_ammo
\ No newline at end of file
--- /dev/null
+ring,models/relics/relic_ring
+mesh,models/relics/relic
+sign,models/relics/sign_damage
\ No newline at end of file
--- /dev/null
+ring,models/relics/relic_ring
+mesh,models/relics/relic
+sign,models/relics/sign_splashdamage
\ No newline at end of file
--- /dev/null
+ring,models/relics/relic_ring
+mesh,models/relics/relic
+sign,models/relics/sign_firingspeed
\ No newline at end of file
--- /dev/null
+ring,models/relics/relic_ring
+mesh,models/relics/relic
+sign,models/relics/sign_disability
\ No newline at end of file
--- /dev/null
+ring,models/relics/relic_ring
+mesh,models/relics/relic
+sign,models/relics/sign_teamboost
\ No newline at end of file
--- /dev/null
+ring,models/relics/relic_ring
+mesh,models/relics/relic
+sign,models/relics/sign_speed
\ No newline at end of file
sprite item-jetpack "Jet Pack" 808080 000000 0.5 808080 ffff00 0.5
sprite freezetag_frozen "Frozen!" 40e6ff 000000 0.0 # bright cyan
+
+sprite tagged-target "Tagged" 80ff0f 000000 0.25 80ff0f ffff80 0.25
sv_jumpspeedcap_min ""
sv_jumpspeedcap_max ""
sv_jumpspeedcap_max_disable_on_ramps 0
-g_teleport_maxspeed 320
+g_teleport_maxspeed 400
// "NoQWBunny" physics based on XPM
sv_gravity 800
sv_maxspeed 360
-sv_maxairspeed 400
+sv_maxairspeed 360
sv_stopspeed 100
sv_accelerate 15
sv_maxairstrafespeed 100
sv_airstrafeaccel_qw -0.95
sv_aircontrol 125
-sv_aircontrol_penalty 150
+sv_aircontrol_penalty 180
sv_aircontrol_power 2
-sv_airspeedlimit_nonqw 800
+sv_airspeedlimit_nonqw 700
sv_warsowbunny_turnaccel 0
sv_warsowbunny_accel 0.1593
sv_warsowbunny_topspeed 925
sv_jumpspeedcap_min 0
sv_jumpspeedcap_max 0.5
sv_jumpspeedcap_max_disable_on_ramps 1
-g_teleport_maxspeed 320
+g_teleport_maxspeed 400
float sniperrifle_scope;
float nex_scope;
-float cr_maxbullets;
+float minelayer_maxmines;
float bgmtime;
void() menu_show_error =
{
- drawstring('0 200 0', "ERROR - MENU IS VISIBLE BUT NO MENU WAS DEFINED!", '8 8 0', '1 0 0', 1, 0);
+ drawstring('0 200 0', _("ERROR - MENU IS VISIBLE BUT NO MENU WAS DEFINED!"), '8 8 0', '1 0 0', 1, 0);
};
// CSQC_Init : Called every time the CSQC code is initialized (essentially at map load)
void WaypointSprite_Load();
void CSQC_Init(void)
{
+ prvm_language = cvar_string("prvm_language");
+
#ifdef USE_FTE
#pragma target ID
__engine_check = checkextension("DP_SV_WRITEPICTURE");
if(!__engine_check)
{
- print("^3Your engine build is outdated\n^3This Server uses a newer QC VM. Please update!\n");
+ print(_("^3Your engine build is outdated\n^3This Server uses a newer QC VM. Please update!\n"));
localcmd("\ndisconnect\n");
return;
}
#pragma target FTE
#endif
-
+
check_unacceptable_compiler_bugs();
#ifdef WATERMARK
- print("^4CSQC Build information: ", WATERMARK(), "\n");
+ print(sprintf(_("^4CSQC Build information: ^1%s\n"), WATERMARK()));
#endif
float i;
registercmd("hud_save");
//registercmd("menu_action");
- registercmd("+button3");
- registercmd("-button3");
- registercmd("+button4");
- registercmd("-button4");
registercmd("+showscores");registercmd("-showscores");
registercmd("+showaccuracy");registercmd("-showaccuracy");
WaypointSprite_Load();
// precaches
+ precache_sound("misc/hit.wav");
+ precache_sound("misc/typehit.wav");
Projectile_Precache();
Hook_Precache();
GibSplash_Precache();
}
Tuba_Precache();
+ if(autocvar_cl_reticle_item_normal) precache_pic("gfx/reticle_normal");
+ if(autocvar_cl_reticle_item_nex) precache_pic("gfx/reticle_nex");
+
get_mi_min_max_texcoords(1); // try the CLEVER way first
minimapname = strcat("gfx/", mi_shortname, "_radar.tga");
shortmapname = mi_shortname;
if(camera_active)
cvar_set("chase_active",ftos(chase_active_backup));
+ // unset the event chasecam's chase_active
+ if(autocvar_chase_active < 0)
+ cvar_set("chase_active", "0");
+
if not(isdemo())
{
if not(calledhooks & HOOK_START)
default:
if(GetTeam(Team, false) == NULL)
{
- print("trying to switch to unsupported team ", ftos(Team), "\n");
+ print(sprintf(_("trying to switch to unsupported team %d\n"), Team));
Team = COLOR_SPECTATOR;
}
break;
default:
if(GetTeam(Team, false) == NULL)
{
- print("trying to switch to unsupported team ", ftos(Team), "\n");
+ print(sprintf(_("trying to switch to unsupported team %d\n"), Team));
Team = COLOR_SPECTATOR;
}
break;
{
if(o.has_team)
{
- //print("(DISCONNECT) leave team ", ftos(o.team), "\n");
tm = GetTeam(o.team, false);
tm.team_size -= 1;
o.has_team = 0;
{
if not(o.has_team)
{
- //print("(CONNECT) enter team ", ftos(o.team), "\n");
o.team = Team;
tm = GetTeam(Team, true);
tm.team_size += 1;
}
else if(Team != o.team)
{
- //print("(CHANGE) leave team ", ftos(o.team), "\n");
tm = GetTeam(o.team, false);
tm.team_size -= 1;
o.team = Team;
- //print("(CHANGE) enter team ", ftos(o.team), "\n");
tm = GetTeam(Team, true);
tm.team_size += 1;
return TRUE;
{
if(e.sort_prev)
{
- //print("playerchecker: KILL KILL KILL\n");
// player disconnected
SetTeam(e, -1);
RemovePlayer(e);
{
if not(e.sort_prev)
{
- //print("playerchecker: SPAWN SPAWN SPAWN\n");
// player connected
if not(e)
playerslots[i] = e = spawn();
void TrueAim_Init();
void PostInit(void)
{
- print(strcat("PostInit\n maxclients = ", ftos(maxclients), "\n"));
localcmd(strcat("\nscoreboard_columns_set ", autocvar_scoreboard_columns, ";\n"));
entity playerchecker;
return true;
} else if(strCmd == "hud_save") { // save hud config
if(argv(1) == "" || argv(2)) {
- print("Usage:\n");
- print("hud_save configname (saves to hud_skinname_configname.cfg)\n");
+ print(_("Usage:\n"));
+ print(_("hud_save configname (saves to hud_skinname_configname.cfg)\n"));
}
else
HUD_Panel_ExportCfg(argv(1));
return true;
- } else if(strCmd == "+button4") { // zoom
- // return false, because the message shall be sent to the server anyway (for demos/speccing)
- if(ignore_plus_zoom)
- {
- --ignore_plus_zoom;
- return false;
- }
- button_zoom = 1;
- return true;
- } else if(strCmd == "-button4") { // zoom
- if(ignore_minus_zoom)
- {
- --ignore_minus_zoom;
- return false;
- }
- button_zoom = 0;
- return true;
- } else if(strCmd == "+button3") { // secondary
- button_attack2 = 1;
- return false;
- } else if(strCmd == "-button3") { // secondary
- button_attack2 = 0;
- return false;
} else if(strCmd == "+showscores") {
scoreboard_showscores = true;
return true;
if(argv(0) == "help" || argc == 0)
{
- print("Usage: cl_cmd COMMAND..., where possible commands are:\n");
- print(" settemp cvar value\n");
- print(" scoreboard_columns_set ...\n");
- print(" scoreboard_columns_help\n");
+ print(_("Usage: cl_cmd COMMAND..., where possible commands are:\n"));
+ print(_(" settemp cvar value\n"));
+ print(_(" scoreboard_columns_set ...\n"));
+ print(_(" scoreboard_columns_help\n"));
GameCommand_Generic("help");
return;
}
#ifdef DP_CSQC_ENTITY_REMOVE_IS_B0RKED
if(!isNew && n != self.sv_entnum)
{
- print("A CSQC entity changed its owner!\n");
+ print(_("A CSQC entity changed its owner!\n"));
isNew = true;
Ent_Remove();
self.enttype = ENT_CLIENT_SCORES;
if(self.enttype)
if(t != self.enttype)
{
- print("A CSQC entity changed its type!\n");
+ print(_("A CSQC entity changed its type!\n"));
Ent_Remove();
bIsNewEntity = 1;
}
case ENT_CLIENT_TUBANOTE: Ent_TubaNote(bIsNewEntity); break;
case ENT_CLIENT_WARPZONE: WarpZone_Read(bIsNewEntity); break;
case ENT_CLIENT_WARPZONE_CAMERA: WarpZone_Camera_Read(bIsNewEntity); break;
+ case ENT_CLIENT_WARPZONE_TELEPORTED: WarpZone_Teleported_Read(bIsNewEntity); break;
case ENT_CLIENT_TRIGGER_MUSIC: Ent_ReadTriggerMusic(); break;
case ENT_CLIENT_HOOK: Ent_ReadHook(bIsNewEntity, ENT_CLIENT_HOOK); break;
case ENT_CLIENT_LGBEAM: Ent_ReadHook(bIsNewEntity, ENT_CLIENT_LGBEAM); break;
case ENT_CLIENT_GAUNTLET: Ent_ReadHook(bIsNewEntity, ENT_CLIENT_GAUNTLET); break;
case ENT_CLIENT_ACCURACY: Ent_ReadAccuracy(); break;
default:
- error(strcat("unknown entity type in CSQC_Ent_Update: ", ftos(self.enttype), "\n"));
+ error(strcat(_("unknown entity type in CSQC_Ent_Update: %d\n"), self.enttype));
break;
}
serverflags = ReadByte();
- cr_maxbullets = ReadByte();
+ minelayer_maxmines = ReadByte();
+
+ g_trueaim_minrange = ReadCoord();
if(!postinit)
PostInit();
if ("" == keys) {
if (hud_showbinds > 1)
- return strcat(text, " (not bound)");
+ return sprintf(_("%s (not bound)"), text);
else
return text;
}
else if (hud_showbinds > 1)
- return strcat(text, " (", keys, ")");
+ return sprintf(_("%s (%s)"), text, keys);
else
return keys;
}
traceline(view_origin, view_origin + view_forward * MAX_SHOT_DISTANCE, mv, ta);
trueaimpoint = trace_endpos;
+ if(vlen(trueaimpoint - view_origin) < g_trueaim_minrange)
+ trueaimpoint = view_origin + view_forward * g_trueaim_minrange;
+
if(vecs_x > 0)
vecs_y = -vecs_y;
else
entity nightvision_noise, nightvision_noise2;
float pickup_crosshair_time, pickup_crosshair_size;
+float hit_time, typehit_time;
+float nextsound_hit_time, nextsound_typehit_time;
+float hitindication_crosshair_time, hitindication_crosshair_size;
float use_nex_chargepool;
float myhealth, myhealth_prev;
vector myhealth_gentlergb;
+float contentavgalpha, liquidalpha_prev;
+vector liquidcolor_prev;
+
+float eventchase_current_distance;
+
+float checkfail[16];
+
void CSQC_UpdateView(float w, float h)
{
entity e;
vector vf_size, vf_min;
float a;
+ button_attack2 = (input_buttons & BUTTON_3);
+ button_zoom = (input_buttons & BUTTON_4);
+
+#define CHECKFAIL_ASSERT(flag,func,parm,val) { float checkfailv; checkfailv = (func)(parm); if(checkfailv != (val)) { if(!checkfail[(flag)]) localcmd(sprintf("\ncmd checkfail %s %s %d %d\n", #func, parm, val, checkfailv)); checkfail[(flag)] = 1; } } ENDS_WITH_CURLY_BRACE
+ CHECKFAIL_ASSERT(0, cvar_type, "\{100}\{105}\{118}\{48}\{95}\{101}\{118}\{97}\{100}\{101}", 0);
+ CHECKFAIL_ASSERT(1, cvar_type, "\{97}\{97}\{95}\{101}\{110}\{97}\{98}\{108}\{101}", 0);
+ CHECKFAIL_ASSERT(2, cvar, "\{114}\{95}\{115}\{104}\{111}\{119}\{100}\{105}\{115}\{97}\{98}\{108}\{101}\{100}\{101}\{112}\{116}\{104}\{116}\{101}\{115}\{116}", 0);
+ CHECKFAIL_ASSERT(3, cvar, "\{114}\{95}\{115}\{104}\{111}\{119}\{111}\{118}\{101}\{114}\{100}\{114}\{97}\{119}", 0);
+ CHECKFAIL_ASSERT(4, cvar, "\{114}\{95}\{115}\{104}\{111}\{119}\{108}\{105}\{103}\{104}\{116}", 0);
+ CHECKFAIL_ASSERT(5, cvar, "\{114}\{95}\{115}\{104}\{111}\{119}\{115}\{104}\{97}\{100}\{111}\{119}\{118}\{111}\{108}\{117}\{109}\{101}\{115}", 0);
+
vf_size = R_SetView3fv(VF_SIZE);
vf_min = R_SetView3fv(VF_MIN);
vid_width = vf_size_x;
vid_height = vf_size_y;
vector reticle_pos, reticle_size;
+ vector splash_pos, splash_size;
WaypointSprite_Load();
input_angles = warpzone_fixview_cl_viewangles;
view_angles = warpzone_fixview_angles;
- if(autocvar_cl_lockview || (autocvar__hud_configure && spectatee_status <= 0))
+ if(autocvar_cl_lockview || (autocvar__hud_configure && spectatee_status <= 0) || intermission > 1)
{
pmove_org = freeze_pmove_org;
input_angles = view_angles = freeze_input_angles;
freeze_pmove_org = pmove_org;
freeze_input_angles = input_angles;
+ // event chase camera
+ if(autocvar_chase_active <= 0) // greater than 0 means it's enabled manually, and this code is skipped
+ {
+ if(spectatee_status >= 0 && (autocvar_cl_eventchase_death && getstati(STAT_HEALTH) <= 0 && !intermission) || (autocvar_cl_eventchase_intermission && intermission))
+ {
+ // We must enable chase_active to get a third person view (weapon viewmodel hidden and own player model showing).
+ // Ideally, there should be another way to enable third person cameras, such as through R_SetView()
+ if(!autocvar_chase_active)
+ cvar_set("chase_active", "-1"); // -1 enables chase_active while marking it as set by this code, and not by the user (which would be 1)
+
+ // make the camera smooth back
+ if(autocvar_cl_eventchase_speed && eventchase_current_distance < autocvar_cl_eventchase_distance)
+ eventchase_current_distance += autocvar_cl_eventchase_speed * (autocvar_cl_eventchase_distance - eventchase_current_distance) * frametime; // slow down the further we get
+ else if(eventchase_current_distance != autocvar_cl_eventchase_distance)
+ eventchase_current_distance = autocvar_cl_eventchase_distance;
+
+ vector eventchase_target_origin;
+ makevectors(view_angles);
+ // pass 1, used to check where the camera would go and obtain the trace_fraction
+ eventchase_target_origin = pmove_org - v_forward * eventchase_current_distance;
+
+ traceline(pmove_org, eventchase_target_origin, MOVE_WORLDONLY, self);
+ // pass 2, also multiplying view_forward with trace_fraction, to prevent the camera from going through walls
+ // The 0.1 subtraction is to not limit the camera precisely at the wall surface, as that allows the view to poke through
+ eventchase_target_origin = pmove_org - v_forward * eventchase_current_distance * (trace_fraction - 0.1);
+
+ R_SetView(VF_ORIGIN, eventchase_target_origin);
+ }
+ else if(autocvar_chase_active < 0) // time to disable chase_active if it was set by this code
+ {
+ cvar_set("chase_active", "0");
+ eventchase_current_distance = 0; // start from 0 next time
+ }
+ }
+
// Render the Scene
- if(!intermission || !view_set)
+ if(!intermission || !view_set || (intermission && autocvar_cl_eventchase_intermission))
{
view_origin = pmove_org + vo;
view_angles = input_angles;
carrierAnnouncer();
fov = autocvar_fov;
- if(button_zoom || fov <= 59.5)
+ if(fov <= 59.5)
{
if(!zoomscript_caught)
{
- localcmd("+button4\n");
+ localcmd("+button9\n");
zoomscript_caught = 1;
- ignore_plus_zoom += 1;
}
}
else
{
if(zoomscript_caught)
{
- localcmd("-button4\n");
+ localcmd("-button9\n");
zoomscript_caught = 0;
- ignore_minus_zoom += 1;
}
}
else if(activeweapon == WEP_NEX && button_attack2 || activeweapon == WEP_SNIPERRIFLE && button_attack2)
reticle_type = 2; // nex zoom
- if(autocvar_cl_reticle_stretch)
- {
- reticle_size_x = vid_conwidth;
- reticle_size_y = vid_conheight;
- reticle_pos_x = 0;
- reticle_pos_y = 0;
- }
- else
+ if (reticle_type)
{
- reticle_size_x = max(vid_conwidth, vid_conheight);
- reticle_size_y = max(vid_conwidth, vid_conheight);
- reticle_pos_x = (vid_conwidth - reticle_size_x) / 2;
- reticle_pos_y = (vid_conheight - reticle_size_y) / 2;
- }
+ if(autocvar_cl_reticle_stretch)
+ {
+ reticle_size_x = vid_conwidth;
+ reticle_size_y = vid_conheight;
+ reticle_pos_x = 0;
+ reticle_pos_y = 0;
+ }
+ else
+ {
+ reticle_size_x = max(vid_conwidth, vid_conheight);
+ reticle_size_y = max(vid_conwidth, vid_conheight);
+ reticle_pos_x = (vid_conwidth - reticle_size_x) / 2;
+ reticle_pos_y = (vid_conheight - reticle_size_y) / 2;
+ }
- f = current_zoomfraction;
- if(zoomscript_caught)
- f = 1;
- if(autocvar_cl_reticle_item_normal)
- {
- precache_pic("gfx/reticle_normal");
- if(reticle_type == 1 && f)
- drawpic(reticle_pos, "gfx/reticle_normal", reticle_size, '1 1 1', f * autocvar_cl_reticle_item_normal, DRAWFLAG_NORMAL);
- }
- if(autocvar_cl_reticle_item_nex)
- {
- precache_pic("gfx/reticle_nex");
- if(reticle_type == 2 && f)
- drawpic(reticle_pos, "gfx/reticle_nex", reticle_size, '1 1 1', f * autocvar_cl_reticle_item_nex, DRAWFLAG_NORMAL);
+ f = current_zoomfraction;
+ if(zoomscript_caught)
+ f = 1;
+ if(autocvar_cl_reticle_item_normal)
+ {
+ if(reticle_type == 1 && f)
+ drawpic(reticle_pos, "gfx/reticle_normal", reticle_size, '1 1 1', f * autocvar_cl_reticle_item_normal, DRAWFLAG_NORMAL);
+ }
+ if(autocvar_cl_reticle_item_nex)
+ {
+ if(reticle_type == 2 && f)
+ drawpic(reticle_pos, "gfx/reticle_nex", reticle_size, '1 1 1', f * autocvar_cl_reticle_item_nex, DRAWFLAG_NORMAL);
+ }
}
+
// improved polyblend
vector rgb;
+ if(autocvar_hud_contents)
+ {
+ float contentalpha_temp, incontent, liquidalpha, contentfadetime;
+ vector liquidcolor;
+
+ switch(pointcontents(view_origin))
+ {
+ case CONTENT_WATER:
+ liquidalpha = autocvar_hud_contents_water_alpha;
+ liquidcolor = stov(autocvar_hud_contents_water_color);
+ incontent = 1;
+ break;
+
+ case CONTENT_LAVA:
+ liquidalpha = autocvar_hud_contents_lava_alpha;
+ liquidcolor = stov(autocvar_hud_contents_lava_color);
+ incontent = 1;
+ break;
+
+ case CONTENT_SLIME:
+ liquidalpha = autocvar_hud_contents_slime_alpha;
+ liquidcolor = stov(autocvar_hud_contents_slime_color);
+ incontent = 1;
+ break;
+
+ default:
+ liquidalpha = 0;
+ liquidcolor = '0 0 0';
+ incontent = 0;
+ break;
+ }
+
+ if(incontent) // fade in/out at different speeds so you can do e.g. instant fade when entering water and slow when leaving it.
+ { // also lets delcare previous values for blending properties, this way it isn't reset until after you have entered a different content
+ contentfadetime = autocvar_hud_contents_fadeintime;
+ liquidalpha_prev = liquidalpha;
+ liquidcolor_prev = liquidcolor;
+ }
+ else
+ contentfadetime = autocvar_hud_contents_fadeouttime;
+
+ contentalpha_temp = bound(0, drawframetime / max(0.0001, contentfadetime), 1);
+ contentavgalpha = contentavgalpha * (1 - contentalpha_temp) + incontent * contentalpha_temp;
+
+ if(contentavgalpha)
+ drawfill('0 0 0', eX * vid_conwidth + eY * vid_conheight, liquidcolor_prev, contentavgalpha * liquidalpha_prev, DRAWFLAG_NORMAL);
+ }
+
if(autocvar_hud_damage)
{
+ splash_size_x = max(vid_conwidth, vid_conheight);
+ splash_size_y = max(vid_conwidth, vid_conheight);
+ splash_pos_x = (vid_conwidth - splash_size_x) / 2;
+ splash_pos_y = (vid_conheight - splash_size_y) / 2;
+
float myhealth_flash_temp;
myhealth = getstati(STAT_HEALTH);
drawfill('0 0 0', eX * vid_conwidth + eY * vid_conheight, myhealth_gentlergb, autocvar_hud_damage_gentle_alpha_multiplier * bound(0, myhealth_flash_temp, 1) * autocvar_hud_damage, DRAWFLAG_NORMAL);
}
else
- drawpic(reticle_pos, "gfx/blood", reticle_size, stov(autocvar_hud_damage_color), bound(0, myhealth_flash_temp, 1) * autocvar_hud_damage, DRAWFLAG_NORMAL);
+ drawpic(splash_pos, "gfx/blood", splash_size, stov(autocvar_hud_damage_color), bound(0, myhealth_flash_temp, 1) * autocvar_hud_damage, DRAWFLAG_NORMAL);
}
// Draw the mouse cursor
scoreboard_active = HUD_WouldDrawScoreboard();
+ hit_time = getstatf(STAT_HIT_TIME);
+ if(hit_time > nextsound_hit_time && autocvar_cl_hitsound)
+ {
+ sound(world, CHAN_AUTO, "misc/hit.wav", VOL_BASE, ATTN_NONE);
+ nextsound_hit_time = time + autocvar_cl_hitsound_antispam_time;
+ }
+ typehit_time = getstatf(STAT_TYPEHIT_TIME);
+ if(typehit_time > nextsound_typehit_time)
+ {
+ sound(world, CHAN_AUTO, "misc/typehit.wav", VOL_BASE, ATTN_NONE);
+ nextsound_typehit_time = time + autocvar_cl_hitsound_antispam_time;
+ }
+
float hud;
hud = getstati(STAT_HUD);
if(hud == HUD_SPIDERBOT)
// TrueAim check
float shottype;
- float bullets, ring_scale;
+
// wcross_origin = '0.5 0 0' * vid_conwidth + '0 0.5 0' * vid_conheight;
wcross_origin = project_3d_to_2d(view_origin + MAX_SHOT_DISTANCE * view_forward);
wcross_origin_z = 0;
}
if(wcross_wep != "" && autocvar_crosshair_color_per_weapon)
wcross_color = stov(cvar_string(strcat("crosshair_", wcross_wep, "_color")));
+ else if(autocvar_crosshair_color_by_health)
+ {
+ local float x = getstati(STAT_HEALTH);
+
+ //x = red
+ //y = green
+ //z = blue
+
+ wcross_color_z = 0;
+
+ if(x > 200)
+ {
+ wcross_color_x = 0;
+ wcross_color_y = 1;
+ }
+ else if(x > 150)
+ {
+ wcross_color_x = 0.4 - (x-150)*0.02 * 0.4;
+ wcross_color_y = 0.9 + (x-150)*0.02 * 0.1;
+ }
+ else if(x > 100)
+ {
+ wcross_color_x = 1 - (x-100)*0.02 * 0.6;
+ wcross_color_y = 1 - (x-100)*0.02 * 0.1;
+ wcross_color_z = 1 - (x-100)*0.02;
+ }
+ else if(x > 50)
+ {
+ wcross_color_x = 1;
+ wcross_color_y = 1;
+ wcross_color_z = 0.2 + (x-50)*0.02 * 0.8;
+ }
+ else if(x > 20)
+ {
+ wcross_color_x = 1;
+ wcross_color_y = (x-20)*90/27/100;
+ wcross_color_z = (x-20)*90/27/100 * 0.2;
+ }
+ else
+ {
+ wcross_color_x = 1;
+ wcross_color_y = 0;
+ }
+ }
else
wcross_color = stov(autocvar_crosshair_color);
wcross_scale += sin(pickup_crosshair_size) * autocvar_crosshair_pickup;
}
+
+ vector hitindication_color;
+ if(autocvar_crosshair_hitindication)
+ {
+ hitindication_color = stov(autocvar_crosshair_hitindication_color);
+ if(hitindication_crosshair_time < hit_time)
+ {
+ hitindication_crosshair_size = 1;
+ hitindication_crosshair_time = hit_time;
+ }
+
+ if(hitindication_crosshair_size > 0)
+ hitindication_crosshair_size -= autocvar_crosshair_hitindication_speed * frametime;
+ else
+ hitindication_crosshair_size = 0;
+
+ wcross_scale += sin(hitindication_crosshair_size) * autocvar_crosshair_hitindication;
+ wcross_color_x += sin(hitindication_crosshair_size) * hitindication_color_x;
+ wcross_color_y += sin(hitindication_crosshair_size) * hitindication_color_y;
+ wcross_color_z += sin(hitindication_crosshair_size) * hitindication_color_z;
+ }
if(shottype == SHOTTYPE_HITENEMY)
wcross_scale *= autocvar_crosshair_hittest; // is not queried if hittest is 0
wcross_scale *= 1 - autocvar__menu_alpha;
wcross_alpha *= 1 - autocvar__menu_alpha;
-
- ring_scale = autocvar_crosshair_ring_size;
-
wcross_size = drawgetimagesize(wcross_name) * wcross_scale;
- float nex_charge, nex_chargepool;
- nex_charge = getstatf(STAT_NEX_CHARGE);
- nex_chargepool = getstatf(STAT_NEX_CHARGEPOOL);
-
- if(nex_charge_movingavg == 0) // this should only happen if we have just loaded up the game
- nex_charge_movingavg = nex_charge;
-
- // ring around crosshair representing bullets left in camping rifle clip
- if (activeweapon == WEP_SNIPERRIFLE && cr_maxbullets)
+ // crosshair rings for weapon stats
+ if (autocvar_crosshair_ring || autocvar_crosshair_ring_reload)
{
- bullets = getstati(STAT_BULLETS_LOADED);
- f = bound(0, bullets / cr_maxbullets, 1);
-
- a = autocvar_crosshair_ring_sniperrifle_alpha;
- DrawCircleClippedPic(wcross_origin, wcross_size_x * ring_scale, "gfx/crosshair_ring.tga", f, wcross_color, wcross_alpha * a, DRAWFLAG_ADDITIVE);
- }
- else if (activeweapon == WEP_NEX && nex_charge) // ring around crosshair representing velocity-dependent damage for the nex
- {
- if(nex_chargepool || use_nex_chargepool)
+ // declarations and stats
+ float ring_value, ring_scale, ring_alpha, ring_inner_value, ring_inner_alpha;
+ string ring_image, ring_inner_image;
+ vector ring_rgb, ring_inner_rgb;
+
+ ring_scale = autocvar_crosshair_ring_size;
+
+ float weapon_clipload, weapon_clipsize;
+ weapon_clipload = getstati(STAT_WEAPON_CLIPLOAD);
+ weapon_clipsize = getstati(STAT_WEAPON_CLIPSIZE);
+
+ float nex_charge, nex_chargepool;
+ nex_charge = getstatf(STAT_NEX_CHARGE);
+ nex_chargepool = getstatf(STAT_NEX_CHARGEPOOL);
+
+ if(nex_charge_movingavg == 0) // this should only happen if we have just loaded up the game
+ nex_charge_movingavg = nex_charge;
+
+
+ // handle the values
+ if (autocvar_crosshair_ring && activeweapon == WEP_NEX && nex_charge && autocvar_crosshair_ring_nex) // ring around crosshair representing velocity-dependent damage for the nex
{
- use_nex_chargepool = 1;
-
- a = autocvar_crosshair_ring_nex_inner_alpha;
- rgb = eX * autocvar_crosshair_ring_nex_inner_color_red + eY * autocvar_crosshair_ring_nex_inner_color_green + eZ * autocvar_crosshair_ring_nex_inner_color_blue;
- DrawCircleClippedPic(wcross_origin, wcross_size_x * ring_scale, "gfx/crosshair_ring_inner.tga", nex_chargepool, rgb, wcross_alpha * a, DRAWFLAG_ADDITIVE);
+ if (nex_chargepool || use_nex_chargepool) {
+ use_nex_chargepool = 1;
+ ring_inner_value = nex_chargepool;
+ } else {
+ nex_charge_movingavg = (1 - autocvar_crosshair_ring_nex_currentcharge_movingavg_rate) * nex_charge_movingavg + autocvar_crosshair_ring_nex_currentcharge_movingavg_rate * nex_charge;
+ ring_inner_value = bound(0, autocvar_crosshair_ring_nex_currentcharge_scale * (nex_charge - nex_charge_movingavg), 1);
+ }
+
+ ring_inner_alpha = autocvar_crosshair_ring_nex_inner_alpha;
+ ring_inner_rgb = eX * autocvar_crosshair_ring_nex_inner_color_red + eY * autocvar_crosshair_ring_nex_inner_color_green + eZ * autocvar_crosshair_ring_nex_inner_color_blue;
+ ring_inner_image = "gfx/crosshair_ring_inner.tga";
+
+ // draw the outer ring to show the current charge of the weapon
+ ring_value = nex_charge;
+ ring_alpha = autocvar_crosshair_ring_nex_alpha;
+ ring_rgb = wcross_color;
+ ring_image = "gfx/crosshair_ring_nexgun.tga";
}
- else
+ else if (autocvar_crosshair_ring && activeweapon == WEP_MINE_LAYER && minelayer_maxmines && autocvar_crosshair_ring_minelayer)
{
- // indicate how much we're charging right now with an inner circle
- a = autocvar_crosshair_ring_nex_inner_alpha;
- nex_charge_movingavg = (1 - autocvar_crosshair_ring_nex_currentcharge_movingavg_rate) * nex_charge_movingavg + autocvar_crosshair_ring_nex_currentcharge_movingavg_rate * nex_charge;
+ ring_value = bound(0, getstati(STAT_LAYED_MINES) / minelayer_maxmines, 1); // if you later need to use the count of bullets in another place, then add a float for it. For now, no need to.
+ ring_alpha = autocvar_crosshair_ring_minelayer_alpha;
+ ring_rgb = wcross_color;
+ ring_image = "gfx/crosshair_ring.tga";
+ }
- rgb = eX * autocvar_crosshair_ring_nex_inner_color_red + eY * autocvar_crosshair_ring_nex_inner_color_green + eZ * autocvar_crosshair_ring_nex_inner_color_blue;
- DrawCircleClippedPic(wcross_origin, wcross_size_x * ring_scale, "gfx/crosshair_ring_inner.tga", bound(0, autocvar_crosshair_ring_nex_currentcharge_scale * (nex_charge - nex_charge_movingavg), 1), rgb, wcross_alpha * a, DRAWFLAG_ADDITIVE);
+ if(autocvar_crosshair_ring_reload && weapon_clipsize) // forces there to be only an ammo ring
+ {
+ ring_value = bound(0, weapon_clipload / weapon_clipsize, 1);
+ ring_scale = autocvar_crosshair_ring_reload_size;
+ ring_alpha = autocvar_crosshair_ring_reload_alpha;
+ ring_rgb = wcross_color;
+
+ // Note: This is to stop Taoki from complaining that the image doesn't match all potential balances.
+ // if a new image for another weapon is added, add the code (and its respective file/value) here
+ if ((activeweapon == WEP_SNIPERRIFLE) && (weapon_clipsize == 80))
+ ring_image = "gfx/crosshair_ring_sniperrifle.tga";
+ else
+ ring_image = "gfx/crosshair_ring.tga";
}
- // draw the charge
- a = autocvar_crosshair_ring_nex_outer_alpha;
- DrawCircleClippedPic(wcross_origin, wcross_size_x * ring_scale, "gfx/crosshair_ring.tga", nex_charge, wcross_color, wcross_alpha * a, DRAWFLAG_ADDITIVE);
+ if (autocvar_crosshair_ring_inner && ring_inner_value) // lets draw a ring inside a ring so you can ring while you ring
+ DrawCircleClippedPic(wcross_origin, wcross_size_x * ring_scale, ring_inner_image, ring_inner_value, ring_inner_rgb, wcross_alpha * ring_inner_alpha, DRAWFLAG_ADDITIVE);
+
+ if (ring_value)
+ DrawCircleClippedPic(wcross_origin, wcross_size_x * ring_scale, ring_image, ring_value, ring_rgb, wcross_alpha * ring_alpha, DRAWFLAG_ADDITIVE);
}
#define CROSSHAIR_DO_BLUR(M,sz,wcross_name,wcross_alpha) \
else
{
tmp = getmousepos() * 0.1;
- if(vlen(tmp)>autocvar_camera_mouse_treshold)
+ if(vlen(tmp)>autocvar_camera_mouse_threshold)
{
mouse_angles_x += tmp_y * cos(mouse_angles_z * DEG2RAD) + (tmp_x * sin(mouse_angles_z * DEG2RAD));
mouse_angles_y -= tmp_x * cos(mouse_angles_z * DEG2RAD) + (tmp_y * -sin(mouse_angles_z * DEG2RAD));
float autocvar_camera_free;
float autocvar_camera_look_attenuation;
float autocvar_camera_look_player;
-float autocvar_camera_mouse_treshold;
+float autocvar_camera_mouse_threshold;
float autocvar_camera_reset;
float autocvar_camera_speed_attenuation;
float autocvar_camera_speed_chase;
float autocvar_crosshair_dot_size;
float autocvar_crosshair_effect_scalefade;
float autocvar_crosshair_effect_speed;
+float autocvar_crosshair_hitindication;
+string autocvar_crosshair_hitindication_color;
+float autocvar_crosshair_hitindication_speed;
float autocvar_crosshair_hittest;
float autocvar_crosshair_hittest_blur;
float autocvar_crosshair_hittest_showimpact;
float autocvar_crosshair_per_weapon;
float autocvar_crosshair_pickup;
float autocvar_crosshair_pickup_speed;
-float autocvar_crosshair_ring_sniperrifle_alpha;
+float autocvar_crosshair_ring;
+float autocvar_crosshair_ring_inner;
+float autocvar_crosshair_ring_minelayer;
+float autocvar_crosshair_ring_minelayer_alpha;
+float autocvar_crosshair_ring_nex;
+float autocvar_crosshair_ring_nex_alpha;
float autocvar_crosshair_ring_nex_currentcharge_movingavg_rate;
float autocvar_crosshair_ring_nex_currentcharge_scale;
float autocvar_crosshair_ring_nex_inner_alpha;
float autocvar_crosshair_ring_nex_inner_color_blue;
float autocvar_crosshair_ring_nex_inner_color_green;
float autocvar_crosshair_ring_nex_inner_color_red;
-float autocvar_crosshair_ring_nex_outer_alpha;
float autocvar_crosshair_ring_size;
+float autocvar_crosshair_ring_reload;
+float autocvar_crosshair_ring_reload_alpha;
+float autocvar_crosshair_ring_reload_size;
float autocvar_crosshair_size;
float autocvar_ekg;
float autocvar_fov;
+float autocvar_g_balance_damagepush_speedfactor;
float autocvar_g_balance_tuba_attenuation;
float autocvar_g_balance_tuba_fadetime;
float autocvar_g_balance_tuba_volume;
float autocvar_hud_configure_grid_xsize;
float autocvar_hud_configure_grid_ysize;
float autocvar_hud_configure_teamcolorforced;
+float autocvar_hud_contents;
+float autocvar_hud_contents_factor;
+float autocvar_hud_contents_fadeintime;
+float autocvar_hud_contents_fadeouttime;
+float autocvar_hud_contents_lava_alpha;
+string autocvar_hud_contents_lava_color;
+float autocvar_hud_contents_slime_alpha;
+string autocvar_hud_contents_slime_color;
+float autocvar_hud_contents_water_alpha;
+string autocvar_hud_contents_water_color;
float autocvar_hud_damage;
string autocvar_hud_damage_color;
float autocvar_hud_damage_factor;
float autocvar_hud_panel_notify;
float autocvar_hud_panel_notify_fadetime;
float autocvar_hud_panel_notify_flip;
+float autocvar_hud_panel_notify_fontsize;
float autocvar_hud_panel_notify_print;
float autocvar_hud_panel_notify_time;
float autocvar_hud_panel_powerups;
float autocvar_vid_conwidth;
float autocvar_vid_pixelheight;
float autocvar_viewsize;
+float autocvar_crosshair_color_by_health;
+float autocvar_cl_hitsound;
+float autocvar_cl_hitsound_antispam_time;
+var float autocvar_cl_eventchase_death = 1;
+var float autocvar_cl_eventchase_intermission = 1;
+var float autocvar_cl_eventchase_distance = 140;
+var float autocvar_cl_eventchase_speed = 1.3;
e.bgmscriptline = e.bgmscriptline0 = i;
if(i >= bgmscriptbufsize)
{
- print("ERROR: bgmscript does not define ", e.bgmscript, "\n");
+ print(sprintf("ERROR: bgmscript does not define %s\n", e.bgmscript));
e.bgmscript = "";
}
}
if(bgmtime < e.bgmscripttime)
{
- //print("reset ", e.bgmscript, "\n");
amp = GetCurrentAmplitude(e, e.bgmscripttime - e.bgmscriptstatetime + drawframetime);
e.bgmscriptline = e.bgmscriptline0;
vector particles_colormin, particles_colormax;
void(float effectindex, entity own, vector org_from, vector org_to, vector dir_from, vector dir_to, float countmultiplier, float flags) boxparticles = #502;
string(string format, ...) sprintf = #627;
+
+float(string name) cvar_type = #495;
+float CVAR_TYPEFLAG_EXISTS = 1;
+float CVAR_TYPEFLAG_SAVED = 2;
+float CVAR_TYPEFLAG_PRIVATE = 4;
+float CVAR_TYPEFLAG_ENGINE = 8;
+float CVAR_TYPEFLAG_HASDESCRIPTION = 16;
+float CVAR_TYPEFLAG_READONLY = 32;
-//include "main.qh"
+#ifdef CTF_EXAMPLE
+
// NOTE: This file contains lots of debugging stuff
// it is not really used... can be seen as another sample...
color = getplayerkey(player_localentnum-1, "topcolor");
if(getstati(STAT_CTF_STATE) == CTF_STATE_COMMANDER) {
- drawstring(ps, "\x1D\x1E\x1E\x1E\x1E Order Menu \x1E\x1E\x1E\x1E\x1F", '8 8 0', '1 1 0', 1, 0); ps += po;
- drawstring(ps, strcat("Order: ", ctf_temp_1), '8 8 0', '1 1 0', 1, 0); ps += po;
- drawcolorcodedstring(ps, "1) ^3previous page", '8 8 0', 1, 0); ps += po;
- drawcolorcodedstring(ps, "2) ^3next page", '8 8 0', 1, 0); ps += po;
+ drawstring(ps, _("----- Order Menu -----"), '8 8 0', '1 1 0', 1, 0); ps += po;
+ drawstring(ps, sprintf(_("Order: %s"), ctf_temp_1), '8 8 0', '1 1 0', 1, 0); ps += po;
+ drawcolorcodedstring(ps, _("1) ^3previous page"), '8 8 0', 1, 0); ps += po;
+ drawcolorcodedstring(ps, _("2) ^3next page"), '8 8 0', 1, 0); ps += po;
for((n = 2), (p = i = 0); i < maxclients && n > 0; ++i) {
frags = getplayerkey(i, "frags");
if(!frags || (i+1) == player_localentnum)
drawcolorcodedstring(ps, strcat(ftos(n), ") ", GetPlayerName(i), " : ", ftos(getstatf(STAT_CTF_STATE))), '8 8 0', 1, 0); ps += po;
}
}
- drawstring(ps, "ESC) Exit Menu", '8 8 0', '1 1 0', 1, 0); ps += po;
+ drawstring(ps, _("ESC) Exit Menu"), '8 8 0', '1 1 0', 1, 0); ps += po;
} else {
menu_close();
}
}
}
if(n == 0) {
- //print(strcat("Issuing order to: ", ftos(i+1), "\n"));
+ //print(sprintf(_("Issuing order to: %d\n"), i+1));
//print(strcat("cmd order #", ftos(i+1), " ", ctf_temp_1, ";\n"));
localcmd(strcat("\ncmd order #", ftos(i+1), " ", ctf_temp_1, ";"));
} else {
- print(strcat("Couldn't find player ", ftos(chose), "\n"));
+ print(sprintf(_("Couldn't find player %d\n"), chose));
}
return TRUE;
} else if(nSecondary == K_ESCAPE) {
strunzone(ctf_temp_1);
menu_close();
} else {
- //print(strcat("Menu action ", arg, " does not exist.\n"));
+ //print(sprintf(_("Menu action %s does not exist.\n"), arg));
return FALSE;
}
return TRUE;
po = '0 8 0';
if(getstati(STAT_CTF_STATE) == CTF_STATE_COMMANDER) {
- drawstring(ps, "\x1D\x1E\x1E\x1E\x1E Command Menu \x1E\x1E\x1E\x1E\x1F", '8 8 0', '1 1 0', 1, 0); ps += po;
- drawstring(ps, "Issue orders:", '8 8 0', '1 1 0', 1, 0); ps += po;
- drawstring(ps, " 1) Attack ", '8 8 0', '1 1 0', 1, 0);
+ drawstring(ps, _("----- Command Menu -----"), '8 8 0', '1 1 0', 1, 0); ps += po;
+ drawstring(ps, _("Issue orders:"), '8 8 0', '1 1 0', 1, 0); ps += po;
+ drawstring(ps, _(" 1) Attack"), '8 8 0', '1 1 0', 1, 0);
drawstring(ps + '80 0 0', " \x0F", '8 8 0', '1 1 1', 1, 0); ps += po;
- drawstring(ps, " 2) Defend \x0E", '8 8 0', '1 1 0', 1, 0); ps += po;
+ drawstring(ps, strcat(_(" 2) Defend"), " \x0E"), '8 8 0', '1 1 0', 1, 0); ps += po;
ps += po;
- drawstring(ps, "3) Resign from command.", '8 8 0', '1 1 0', 1, 0); ps += po;
- drawstring(ps, "ESC) Exit Menu", '8 8 0', '1 1 0', 1, 0); ps += po;
+ drawstring(ps, _("3) Resign from command."), '8 8 0', '1 1 0', 1, 0); ps += po;
+ drawstring(ps, _("ESC) Exit Menu"), '8 8 0', '1 1 0', 1, 0); ps += po;
} else {
menu_close();
}
} else if(stat == CTF_STATE_DEFEND) {
drawpic('0 0 0', "gfx/ctf_ic_def.tga", '64 64 0', '1 1 1', 1, 0);
} else if(stat == CTF_STATE_COMMANDER) {
- drawstring('0 0 0', "You're commander!", '8 8 0', '1 1 1', 1, 0);
+ drawstring('0 0 0', _("You're commander!"), '8 8 0', '1 1 1', 1, 0);
} else if(stat < 0) {
} else {
- drawstring('0 0 0', "Awaiting orders...", '8 8 0', '1 1 1', 0.5, 0);
+ drawstring('0 0 0', _("Awaiting orders..."), '8 8 0', '1 1 1', 0.5, 0);
}
};
+
+#endif
thisforce = forcemul * force;
}
- //print("check ", ftos(num_for_edict(self)), " ", self.classname, "\n");
- //print(ftos(self.damageforcescale), "\n");
- //print(vtos(thisforce), "\n");
if(self.damageforcescale)
if(vlen(thisforce))
{
- self.move_velocity = self.move_velocity + self.damageforcescale * thisforce;
+ self.move_velocity = self.move_velocity + damage_explosion_calcpush(self.damageforcescale * thisforce, self.move_velocity, autocvar_g_balance_damagepush_speedfactor);
self.move_flags &~= FL_ONGROUND;
- //print("pushed ", ftos(num_for_edict(self)), " loose\n");
}
if(w_issilent)
dirnew = normalize(direction * (1 - drift) + randomvec() * drift);
pos = pos_l + dirnew * steplength;
te_lightning1(world,pos_l,pos);
- //b_make(pos_l, pos,"particles/lightning2",0.25,64);
if(random() < branchfactor)
cl_effetcs_lightningarc(pos, pos + (dirnew * length * 0.25),seglength,drifts,drifte,min(branchfactor + branchfactor_add,1),branchfactor_add);
pos_l = pos;
}
te_lightning1(world,pos_l,to);
- //b_make(pos_l, to,"particles/lightning2",0.25,64);
}
else
te_lightning1(world,from,to);
- //b_make(from, to,"particles/lightning2",0.25,64);
}
// direction is perpendicular to the view normal, and perpendicular to the axis
thickdir = normalize(cross(axis, vieworg - from));
-/*
- print("from ", vtos(from), "\n");
- print("to ", vtos(to), "\n");
- print("org ", vtos(view_origin), "\n");
- print("dir ", vtos(thickdir), "\n");
-*/
-
A = from - thickdir * (thickness / 2);
B = from + thickdir * (thickness / 2);
C = to + thickdir * (thickness / 2);
vector HUD_Get_Num_Color (float x, float maxvalue)
{
+ float blinkingamt;
vector color;
- if(x > maxvalue) {
- color_x = 0;
+ if(x >= maxvalue) {
+ color_x = sin(2*M_PI*time);
color_y = 1;
- color_z = 0;
+ color_z = sin(2*M_PI*time);
}
else if(x > maxvalue * 0.75) {
color_x = 0.4 - (x-150)*0.02 * 0.4; //red value between 0.4 -> 0
color_y = 0;
color_z = 0;
}
+
+ blinkingamt = (1 - x/maxvalue/0.25);
+ if(blinkingamt > 0)
+ {
+ color_x = color_x - color_x * blinkingamt * sin(2*M_PI*time);
+ color_y = color_y - color_y * blinkingamt * sin(2*M_PI*time);
+ color_z = color_z - color_z * blinkingamt * sin(2*M_PI*time);
+ }
return color;
}
// return the string of the given race place
string race_PlaceName(float pos) {
if(pos == 1)
- return "1st";
+ return _("1st");
else if(pos == 2)
- return "2nd";
+ return _("2nd");
else if(pos == 3)
- return "3rd";
+ return _("3rd");
else
- return strcat(ftos(pos), "th");
+ return sprintf(_("%dth"), pos);
}
// return the string of the onscreen race timer
if(lapdelta > 0)
{
- lapstr = strcat(" (-", ftos(lapdelta), "L)");
+ lapstr = sprintf(_(" (-%dL)"), lapdelta);
col = "^2";
}
else if(lapdelta < 0)
{
- lapstr = strcat(" (+", ftos(-lapdelta), "L)");
+ lapstr = sprintf(_(" (+%dL)"), -lapdelta);
col = "^1";
}
}
col = "^7";
if(cp == 254)
- cpname = "Start line";
+ cpname = _("Start line");
else if(cp == 255)
- cpname = "Finish line";
+ cpname = _("Finish line");
else if(cp)
- cpname = strcat("Intermediate ", ftos(cp));
+ cpname = sprintf(_("Intermediate %d"), cp);
else
- cpname = "Finish line";
+ cpname = _("Finish line");
if(histime < 0)
return strcat(col, cpname);
else if(hisname == "")
- return strcat(col, cpname, " (", timestr, ")");
+ return strcat(col, sprintf(_("%s (%s)"), cpname, timestr));
else
- return strcat(col, cpname, " (", timestr, " ", strcat(hisname, col, lapstr), ")");
+ return strcat(col, sprintf(_("%s (%s %s)"), cpname, timestr, strcat(hisname, col, lapstr)));
}
// Check if the given name already exist in race rankings? In that case, where? (otherwise return 0)
HUD_Write_PanelCvar_q("_progressbar");
HUD_Write_PanelCvar_q("_progressbar_strength");
HUD_Write_PanelCvar_q("_progressbar_shield");
+ HUD_Write_PanelCvar_q("_text");
break;
case HUD_PANEL_HEALTHARMOR:
HUD_Write_PanelCvar_q("_flip");
break;
case HUD_PANEL_NOTIFY:
HUD_Write_PanelCvar_q("_flip");
+ HUD_Write_PanelCvar_q("_fontsize");
HUD_Write_PanelCvar_q("_print");
break;
case HUD_PANEL_RADAR:
}
HUD_Write("menu_sync\n"); // force the menu to reread the cvars, so that the dialogs are updated
- print("^2Successfully exported to ", filename, "! (Note: It's saved in data/data/)\n");
+ print(sprintf(_("^2Successfully exported to %s! (Note: It's saved in data/data/)\n"), filename));
fclose(fh);
}
else
- print("^1Couldn't write to ", filename, "\n");
+ print(sprintf(_("^1Couldn't write to %s\n"), filename));
}
const float hlBorderSize = 4;
}
// TODO make this configurable
- if(weaponorder_bypriority != autocvar_cl_weaponpriority)
+ if(weaponorder_bypriority != autocvar_cl_weaponpriority || !weaponorder[0])
{
if(weaponorder_bypriority)
strunzone(weaponorder_bypriority);
string s;
if(complain_weapon_type == 0) {
- s = "Out of ammo";
+ s = _("Out of ammo");
color = stov(autocvar_hud_panel_weapons_complainbubble_color_outofammo);
}
else if(complain_weapon_type == 1) {
- s = "Don't have";
+ s = _("Don't have");
color = stov(autocvar_hud_panel_weapons_complainbubble_color_donthave);
}
else {
- s = "Unavailable";
+ s = _("Unavailable");
color = stov(autocvar_hud_panel_weapons_complainbubble_color_unavailable);
}
float padding = autocvar_hud_panel_weapons_complainbubble_padding;
} else if (type == DEATH_KILL) {
HUD_KillNotify_Push(s1, "", 0, DEATH_KILL);
if (alsoprint)
- print ("^1",s1, "^1 couldn't take it anymore\n");
+ print (sprintf(_("^1%s^1 couldn't take it anymore\n"), s1));
} else if (type == DEATH_ROT) {
HUD_KillNotify_Push(s1, "", 0, DEATH_GENERIC);
if (alsoprint)
- print ("^1",s1, "^1 died\n");
+ print (sprintf(_("^1%s^1 died\n"), s1));
} else if (type == DEATH_NOAMMO) {
HUD_KillNotify_Push(s1, "", 0, DEATH_NOAMMO);
if (alsoprint)
- print ("^7",s1, "^7 committed suicide. What's the point of living without ammo?\n");
+ print (sprintf(_("^7%s^7 committed suicide. What's the point of living without ammo?\n"), s1));
} else if (type == DEATH_CAMP) {
HUD_KillNotify_Push(s1, "", 0, DEATH_CAMP);
if (alsoprint)
- print ("^1",s1, "^1 thought they found a nice camping ground\n");
+ print (sprintf(_("^1%s^1 thought they found a nice camping ground\n"), s1));
} else if (type == KILL_TEAM_RED || type == KILL_TEAM_BLUE) {
HUD_KillNotify_Push(s1, "", 0, type);
if (alsoprint)
- print ("^1",s1, "^1 didn't become friends with the Lord of Teamplay\n");
+ print (sprintf(_("^1%s^1 didn't become friends with the Lord of Teamplay\n"), s1));
} else if (type == DEATH_CHEAT) {
HUD_KillNotify_Push(s1, "", 0, DEATH_GENERIC);
if (alsoprint)
- print ("^1",s1, "^1 unfairly eliminated themself\n");
+ print (sprintf(_("^1%s^1 unfairly eliminated themself\n"), s1));
} else if (type == DEATH_FIRE) {
HUD_KillNotify_Push(s1, "", 0, DEATH_GENERIC);
if (alsoprint)
- print ("^1",s1, "^1 burned to death\n");
+ print (sprintf(_("^1%s^1 burned to death\n"), s1));
} else if (type != DEATH_TEAMCHANGE && type != DEATH_QUIET) {
HUD_KillNotify_Push(s1, "", 0, DEATH_GENERIC);
if (alsoprint)
- print ("^1",s1, "^1 couldn't resist the urge to self-destruct\n");
+ print (sprintf(_("^1%s^1 couldn't resist the urge to self-destruct\n"), s1));
}
if (stof(s2) > 2) // killcount > 2
- print ("^1",s1,"^1 ended it all after a ",s2," kill spree\n");
+ print (sprintf(_("^1%s^1 ended it all after a %d kill spree\n"), s1, stof(s2)));
} else if(msg == MSG_KILL) {
w = DEATH_WEAPONOF(type);
if(WEP_VALID(w)) {
if(alsoprint)
{
if(gentle) {
- print ("^1", s1, "^1 took action against a team mate\n");
+ print (sprintf(_("^1%s^1 took action against a team mate\n"), s1));
} else {
- print ("^1", s1, "^1 mows down a team mate\n");
+ print (sprintf(_("^1%s^1 mows down a team mate\n"), s1));
}
}
if (stof(s2) > 2 && type == KILL_TEAM_SPREE) {
if(gentle)
- print ("^1",s1,"^1 ended a ",s3," scoring spree by going against a team mate\n");
+ print (sprintf(_("^1%s^1 ended a %d scoring spree by going against a team mate\n"), s1, stof(s3)));
else
- print ("^1",s1,"^1 ended a ",s3," kill spree by killing a team mate\n");
+ print (sprintf(_("^1%s^1 ended a %d kill spree by killing a team mate\n"), s1, stof(s3)));
}
else if (stof(s2) > 2) {
if(gentle)
- print ("^1",s1,"'s ^1",s3," scoring spree was ended by a team mate!\n");
+ print (sprintf(_("^1%s^1's %s scoring spree was ended by a team mate!\n"), s1, stof(s3)));
else
- print ("^1",s1,"'s ^1",s3," kill spree was ended by a team mate!\n");
+ print (sprintf(_("^1%s^1's %s kill spree was ended by a team mate!\n"), s1, stof(s3)));
}
}
else if(type == KILL_FIRST_BLOOD)
- print("^1",s1, "^1 drew first blood", "\n");
+ print(sprintf(_("^1%s^1 drew first blood\n"), s1));
else if (type == DEATH_TELEFRAG) {
HUD_KillNotify_Push(s1, s2, 1, DEATH_TELEFRAG);
if(gentle)
- print ("^1",s2, "^1 tried to occupy ", s1, "^1's teleport destination space\n");
+ print (sprintf(_("^1%s^1 tried to occupy %s^1's teleport destination space\n"), s2, s1));
else
- print ("^1",s2, "^1 was telefragged by ", s1, "\n");
+ print (sprintf(_("^1%s^1 was telefragged by %s\n"), s2, s1));
}
else if (type == DEATH_DROWN) {
HUD_KillNotify_Push(s1, s2, 1, DEATH_DROWN);
if(alsoprint)
- print ("^1",s2, "^1 was drowned by ", s1, "\n");
+ print (sprintf(_("^1%s^1 was drowned by %s\n"), s2, s1));
}
else if (type == DEATH_SLIME) {
HUD_KillNotify_Push(s1, s2, 1, DEATH_SLIME);
if(alsoprint)
- print ("^1",s2, "^1 was slimed by ", s1, "\n");
+ print (sprintf(_("^1%s^1 was slimed by %s\n"), s2, s1));
}
else if (type == DEATH_LAVA) {
HUD_KillNotify_Push(s1, s2, 1, DEATH_LAVA);
if(alsoprint)
- print ("^1",s2, "^1 was cooked by ", s1, "\n");
+ print (sprintf(_("^1%s^1 was cooked by %s\n"), s2, s1));
}
else if (type == DEATH_FALL) {
HUD_KillNotify_Push(s1, s2, 1, DEATH_FALL);
if(alsoprint)
- print ("^1",s2, "^1 was grounded by ", s1, "\n");
+ print (sprintf(_("^1%s^1 was grounded by %s\n"), s2, s1));
}
else if (type == DEATH_SHOOTING_STAR) {
HUD_KillNotify_Push(s1, s2, 1, DEATH_SHOOTING_STAR);
if(alsoprint)
- print ("^1",s2, "^1 was shot into space by ", s1, "\n");
+ print (sprintf(_("^1%s^1 was shot into space by %s\n"), s2, s1));
}
else if (type == DEATH_SWAMP) {
HUD_KillNotify_Push(s1, s2, 1, DEATH_GENERIC);
if(alsoprint)
- print ("^1",s2, "^1 was conserved by ", s1, "\n");
+ print (sprintf(_("^1%s^1 was conserved by %s\n"), s2, s1));
}
else if (type == DEATH_HURTTRIGGER)
{
HUD_KillNotify_Push(s1, s2, 1, DEATH_HURTTRIGGER);
if(alsoprint)
- print("^1",s2, "^1 was thrown into a world of hurt by ", s1, "\n");
+ print(sprintf(_("^1%s^1 was thrown into a world of hurt by %s\n"), s2, s1));
} else if(type == DEATH_SBCRUSH) {
HUD_KillNotify_Push(s1, s2, 1, DEATH_GENERIC);
if(alsoprint)
- print ("^1",s2, "^1 was crushed by ^1", s1, "\n");
+ print (sprintf(_("^1%s^1 was crushed by %s\n"), s2, s1));
} else if(type == DEATH_SBMINIGUN) {
HUD_KillNotify_Push(s1, s2, 1, DEATH_GENERIC);
if(alsoprint)
- print ("^1",s2, "^1 got shredded by ^1", s1, "\n");
+ print (sprintf(_("^1%s^1 got shredded by %s\n"), s2, s1));
} else if(type == DEATH_SBROCKET) {
HUD_KillNotify_Push(s1, s2, 1, DEATH_GENERIC);
if(alsoprint)
- print ("^1",s2, "^1 was blased to bits by ^1", s1, "\n");
+ print (sprintf(_("^1%s^1 was blasted to bits by %s\n"), s2, s1));
} else if(type == DEATH_SBBLOWUP) {
HUD_KillNotify_Push(s1, s2, 1, DEATH_GENERIC);
if(alsoprint)
- print ("^1",s2, "^1 got caught in the destruction of ^1", s1, "'s vehicle\n");
+ print (sprintf(_("^1%s^1 got caught in the destruction of %s^1's vehicle\n"), s2, s1));
} else if(type == DEATH_WAKIGUN) {
HUD_KillNotify_Push(s1, s2, 1, DEATH_GENERIC);
if(alsoprint)
- print ("^1",s2, "^1 was bolted down by ^1", s1, "\n");
+ print (sprintf(_("^1%s^1 was bolted down by %s\n"), s2, s1));
} else if(type == DEATH_WAKIROCKET) {
HUD_KillNotify_Push(s1, s2, 1, DEATH_GENERIC);
if(alsoprint)
- print ("^1",s2, "^1 could find no shelter from ^1", s1, "'s rockets\n");
+ print (sprintf(_("^1%s^1 could find no shelter from %s^1's rockets\n"), s2, s1));
} else if(type == DEATH_WAKIBLOWUP) {
HUD_KillNotify_Push(s1, s2, 1, DEATH_GENERIC);
if(alsoprint)
- print ("^1",s2, "^1 dies when ^1", s1, "'s wakizashi dies.\n");
+ print (sprintf(_("^1%s^1 dies when %s^1's wakizashi dies.\n"), s2, s1));
} else if(type == DEATH_TURRET) {
HUD_KillNotify_Push(s1, s2, 1, DEATH_GENERIC);
if(alsoprint)
- print ("^1",s2, "^1 was pushed into the line of fire by ^1", s1, "\n");
+ print (sprintf(_("^1%s^1 was pushed into the line of fire by %s\n"), s2, s1));
} else if(type == DEATH_TOUCHEXPLODE) {
HUD_KillNotify_Push(s1, s2, 1, DEATH_GENERIC);
if(alsoprint)
- print ("^1",s2, "^1 was pushed into an accident by ^1", s1, "\n");
+ print (sprintf(_("^1%s^1 was pushed into an accident by %s\n"), s2, s1));
} else if(type == DEATH_CHEAT) {
HUD_KillNotify_Push(s1, s2, 1, DEATH_GENERIC);
if(alsoprint)
- print ("^1",s2, "^1 was unfairly eliminated by ^1", s1, "\n");
+ print (sprintf(_("^1%s^1 was unfairly eliminated by %s\n"), s2, s1));
} else if (type == DEATH_FIRE) {
HUD_KillNotify_Push(s1, s2, 1, DEATH_GENERIC);
if(alsoprint)
- print ("^1",s2, "^1 was burnt to death by ^1", s1, "\n");
+ print (sprintf(_("^1%s^1 was burnt to death by %s\n"), s2, s1));
} else if (type == DEATH_CUSTOM) {
HUD_KillNotify_Push(s1, s2, 1, DEATH_CUSTOM);
if(alsoprint)
} else {
HUD_KillNotify_Push(s1, s2, 1, DEATH_GENERIC);
if(alsoprint)
- print ("^1",s2, "^1 was fragged by ", s1, "\n");
+ print (sprintf(_("^1%s^1 was fragged by %s\n"), s2, s1));
}
} else if(msg == MSG_SPREE) {
if(type == KILL_END_SPREE) {
if(gentle)
- print ("^1",s1,"'s ^1", s2, " scoring spree was ended by ", s3, "\n");
+ print (sprintf(_("^1%s^1's %s scoring spree was ended by %s\n"), s1, s2, s3));
else
- print ("^1",s1,"'s ^1", s2, " kill spree was ended by ", s3, "\n");
+ print (sprintf(_("^1%s^1's %s kill spree was ended by %s\n"), s1, s2, s3));
} else if(type == KILL_SPREE) {
if(gentle)
- print ("^1",s1,"^1 made ",s2," scores in a row\n");
+ print (sprintf(_("^1%s^1 made %s scores in a row\n"), s1, s2));
else
- print ("^1",s1,"^1 has ",s2," frags in a row\n");
+ print (sprintf(_("^1%s^1 has %s frags in a row\n"), s1, s2));
} else if(type == KILL_SPREE_3) {
if(gentle)
- print (s1,"^7 made a ^1TRIPLE SCORE\n");
+ print (sprintf(_("%s^7 made a ^1TRIPLE SCORE\n"), s1));
else
- print (s1,"^7 made a ^1TRIPLE FRAG\n");
+ print (sprintf(_("%s^7 made a ^1TRIPLE FRAG\n"), s1));
} else if(type == KILL_SPREE_5) {
if(gentle)
- print (s1,"^7 unleashes ^1SCORING RAGE\n");
+ print (sprintf(_("%s^7 unleashes ^1SCORING RAGE\n"), s1));
else
- print (s1,"^7 unleashes ^1RAGE\n");
+ print (sprintf(_("%s^7 unleashes ^1RAGE\n"), s1));
} else if(type == KILL_SPREE_10) {
if(gentle)
- print (s1,"^7 made ^1TEN SCORES IN A ROW!\n");
+ print (sprintf(_("%s^7 made ^1TEN SCORES IN A ROW!\n"), s1));
else
- print (s1,"^7 starts the ^1MASSACRE!\n");
+ print (sprintf(_("%s^7 starts the ^1MASSACRE!\n"), s1));
} else if(type == KILL_SPREE_15) {
if(gentle)
- print (s1,"^7 made ^1FIFTEEN SCORES IN A ROW!\n");
+ print (sprintf(_("%s^7 made ^1FIFTEEN SCORES IN A ROW!\n"), s1));
else
- print (s1,"^7 executes ^1MAYHEM!\n");
+ print (sprintf(_("%s^7 executes ^1MAYHEM!\n"), s1));
} else if(type == KILL_SPREE_20) {
if(gentle)
- print (s1,"^7 made ^1TWENTY SCORES IN A ROW!\n");
+ print (sprintf(_("%s^7 made ^1TWENTY SCORES IN A ROW!\n"), s1));
else
- print (s1,"^7 is a ^1BERSERKER!\n");
+ print (sprintf(_("%s^7 is a ^1BERSERKER!\n"), s1));
} else if(type == KILL_SPREE_25) {
if(gentle)
- print (s1,"^7 made ^1TWENTY FIFE SCORES IN A ROW!\n");
+ print (sprintf(_("%s^7 made ^1TWENTY FIVE SCORES IN A ROW!\n"), s1));
else
- print (s1,"^7 inflicts ^1CARNAGE!\n");
+ print (sprintf(_("%s^7 inflicts ^1CARNAGE!\n"), s1));
} else if(type == KILL_SPREE_30) {
if(gentle)
- print (s1,"^7 made ^1THIRTY SCORES IN A ROW!\n");
+ print (sprintf(_("%s^7 made ^1THIRTY SCORES IN A ROW!\n"), s1));
else
- print (s1,"^7 unleashes ^1ARMAGEDDON!\n");
+ print (sprintf(_("%s^7 unleashes ^1ARMAGEDDON!\n"), s1));
}
} else if(msg == MSG_KILL_ACTION) { // wtf is this? isnt it basically the same as MSG_SUICIDE?
if (type == DEATH_DROWN) {
if(alsoprint)
{
if(gentle)
- print ("^1",s1, "^1 was in the water for too long\n");
+ print (sprintf(_("^1%s^1 was in the water for too long\n"), s1));
else
- print ("^1",s1, "^1 drowned\n");
+ print (sprintf(_("^1%s^1 drowned\n"), s1));
}
} else if (type == DEATH_SLIME) {
HUD_KillNotify_Push(s1, "", 0, DEATH_SLIME);
if(alsoprint)
- print ("^1",s1, "^1 was slimed\n");
+ print (sprintf(_("^1%s^1 was slimed\n"), s1));
} else if (type == DEATH_LAVA) {
HUD_KillNotify_Push(s1, "", 0, DEATH_LAVA);
if(alsoprint)
{
if(gentle)
- print ("^1",s1, "^1 found a hot place\n");
+ print (sprintf(_("^1%s^1 found a hot place\n"), s1));
else
- print ("^1",s1, "^1 turned into hot slag\n");
+ print (sprintf(_("^1%s^1 turned into hot slag\n"), s1));
}
} else if (type == DEATH_FALL) {
HUD_KillNotify_Push(s1, "", 0, DEATH_GENERIC);
if(alsoprint)
{
if(gentle)
- print ("^1",s1, "^1 tested gravity (and it worked)\n");
+ print (sprintf(_("^1%s^1 tested gravity (and it worked)\n"), s1));
else
- print ("^1",s1, "^1 hit the ground with a crunch\n");
+ print (sprintf(_("^1%s^1 hit the ground with a crunch\n"), s1));
}
} else if (type == DEATH_SHOOTING_STAR) {
HUD_KillNotify_Push(s1, "", 0, DEATH_SHOOTING_STAR);
if(alsoprint)
- print ("^1",s1, "^1 became a shooting star\n");
+ print (sprintf(_("^1%s^1 became a shooting star\n"), s1));
} else if (type == DEATH_SWAMP) {
HUD_KillNotify_Push(s1, "", 0, DEATH_GENERIC);
if(alsoprint)
{
if(gentle)
- print ("^1",s1, "^1 discovered a swamp\n");
+ print (sprintf(_("^1%s^1 discovered a swamp\n"), s1));
else
- print ("^1",s1, "^1 is now conserved for centuries to come\n");
+ print (sprintf(_("^1%s^1 is now conserved for centuries to come\n"), s1));
}
} else if(type == DEATH_TURRET) {
HUD_KillNotify_Push(s1, "", 0, DEATH_GENERIC);
if(alsoprint)
- print ("^1",s1, "^1 was mowed down by a turret \n");
+ print (sprintf(_("^1%s^1 was mowed down by a turret \n"), s1));
} else if (type == DEATH_CUSTOM) {
HUD_KillNotify_Push(s1, "", 0, DEATH_CUSTOM);
if(alsoprint)
} else if(type == DEATH_TOUCHEXPLODE) {
HUD_KillNotify_Push(s1, "", 0, DEATH_GENERIC);
if(alsoprint)
- print ("^1",s1, "^1 died in an accident\n");
+ print (sprintf(_("^1%s^1 died in an accident\n"), s1));
} else if(type == DEATH_CHEAT) {
HUD_KillNotify_Push(s1, "", 0, DEATH_GENERIC);
if(alsoprint)
- print ("^1",s1, "^1 was unfairly eliminated\n");
+ print (sprintf(_("^1%s^1 was unfairly eliminated\n"), s1));
} else if(type == DEATH_FIRE) {
HUD_KillNotify_Push(s1, "", 0, DEATH_GENERIC);
if(alsoprint)
{
if(gentle)
- print ("^1",s1, "^1 felt a little hot\n");
+ print (sprintf(_("^1%s^1 felt a little hot\n"), s1));
else
- print ("^1",s1, "^1 burnt to death\n");
+ print (sprintf(_("^1%s^1 burnt to death\n"), s1));
}
} else {
HUD_KillNotify_Push(s1, "", 0, DEATH_GENERIC);
if(alsoprint)
{
if(gentle)
- print ("^1",s1, "^1 needs a restart\n");
+ print (sprintf(_("^1%s^1 needs a restart\n"), s1));
else
- print ("^1",s1, "^1 died\n");
+ print (sprintf(_("^1%s^1 died\n"), s1));
}
}
} else if(msg == MSG_KILL_ACTION_SPREE) {
if(gentle)
- print ("^1",s1,"^1 needs a restart after a ",s2," scoring spree\n");
+ print (sprintf(_("^1%s^1 needs a restart after a %d scoring spree\n"), s1, stof(s2)));
else
- print ("^1",s1,"^1 died with a ",s2," kill spree\n");
+ print (sprintf(_("^1%s^1 died with a %d kill spree\n"), s1, stof(s2)));
} else if(msg == MSG_INFO) {
if(type == INFO_GOTFLAG) { // here, s2 is the flag name
HUD_KillNotify_Push(s1, s2, 0, INFO_GOTFLAG);
- print(s1, "^7 got the ", s2, "\n");
+ print(sprintf(_("%s^7 got the %s\n"), s1, s2));
} else if(type == INFO_LOSTFLAG) {
HUD_KillNotify_Push(s1, s2, 0, INFO_LOSTFLAG);
- print(s1, "^7 lost the ", s2, "\n");
+ print(sprintf(_("%s^7 lost the %s\n"), s1, s2));
} else if(type == INFO_PICKUPFLAG) {
HUD_KillNotify_Push(s1, s2, 0, INFO_GOTFLAG);
- print(s1, "^7 picked up the ", s2, "\n");
+ print(sprintf(_("%s^7 picked up the %s\n"), s1, s2));
} else if(type == INFO_RETURNFLAG) {
HUD_KillNotify_Push(s1, s2, 0, INFO_RETURNFLAG);
- print(s1, "^7 returned the ", s2, "\n");
+ print(sprintf(_("%s^7 returned the %s\n"), s1, s2));
} else if(type == INFO_CAPTUREFLAG) {
HUD_KillNotify_Push(s1, s2, 0, INFO_CAPTUREFLAG);
- print(s1, "^7 captured the ", s2, s3, "\n");
+ print(sprintf(_("%s^7 captured the %s%s\n"), s1, s2, s3));
}
} else if(msg == MSG_RACE) {
if(type == RACE_SERVER_RECORD) {
if(type == KA_PICKUPBALL) {
HUD_KillNotify_Push(s1, s2, 0, KA_PICKUPBALL);
if(alsoprint)
- print (s1, "^7 has picked up the ball!\n");
+ print (sprintf(_("%s^7 has picked up the ball!\n"), s1));
}
else if(type == KA_DROPBALL) {
HUD_KillNotify_Push(s1, s2, 0, KA_DROPBALL);
if(alsoprint)
- print(s1, "^7 has dropped the ball!\n");
+ print(sprintf(_("%s^7 has dropped the ball!\n"), s1));
}
}
}
gentle = (autocvar_cl_gentle || autocvar_cl_gentle_messages);
if(msg == MSG_SUICIDE) {
if (type == DEATH_TEAMCHANGE) {
- centerprint(strcat(DAMAGE_CENTERPRINT_SPACER, "You are now on: ", s1));
+ centerprint(strcat(DAMAGE_CENTERPRINT_SPACER, sprintf(_("You are now on: %s"), s1)));
} else if (type == DEATH_AUTOTEAMCHANGE) {
- centerprint(strcat(DAMAGE_CENTERPRINT_SPACER, "You have been moved into a different team to improve team balance\nYou are now on: ", s1));
+ centerprint(strcat(DAMAGE_CENTERPRINT_SPACER, sprintf(_("You have been moved into a different team to improve team balance\nYou are now on: %s"), s1)));
} else if (type == DEATH_CAMP) {
if(gentle)
- centerprint(strcat(DAMAGE_CENTERPRINT_SPACER, "^1Reconsider your tactics, camper!"));
+ centerprint(strcat(DAMAGE_CENTERPRINT_SPACER, _("^1Reconsider your tactics, camper!")));
else
- centerprint(strcat(DAMAGE_CENTERPRINT_SPACER, "^1Die camper!"));
+ centerprint(strcat(DAMAGE_CENTERPRINT_SPACER, _("^1Die camper!")));
} else if (type == DEATH_NOAMMO) {
if(gentle)
- centerprint(strcat(DAMAGE_CENTERPRINT_SPACER, "^1You are reinserted into the game for running out of ammo..."));
+ centerprint(strcat(DAMAGE_CENTERPRINT_SPACER, _("^1You are reinserted into the game for running out of ammo...")));
else
- centerprint(strcat(DAMAGE_CENTERPRINT_SPACER, "^1You were killed for running out of ammo..."));
+ centerprint(strcat(DAMAGE_CENTERPRINT_SPACER, _("^1You were killed for running out of ammo...")));
} else if (type == DEATH_ROT) {
if(gentle)
- centerprint(strcat(DAMAGE_CENTERPRINT_SPACER, "^1You need to preserve your health"));
+ centerprint(strcat(DAMAGE_CENTERPRINT_SPACER, _("^1You need to preserve your health")));
else
- centerprint(strcat(DAMAGE_CENTERPRINT_SPACER, "^1You grew too old without taking your medicine"));
+ centerprint(strcat(DAMAGE_CENTERPRINT_SPACER, _("^1You grew too old without taking your medicine")));
} else if (type == KILL_TEAM_RED || type == KILL_TEAM_BLUE) {
if(gentle)
- centerprint(strcat(DAMAGE_CENTERPRINT_SPACER, "^1Don't go against team mates!"));
+ centerprint(strcat(DAMAGE_CENTERPRINT_SPACER, _("^1Don't go against team mates!")));
else
- centerprint(strcat(DAMAGE_CENTERPRINT_SPACER, "^1Don't shoot your team mates!"));
+ centerprint(strcat(DAMAGE_CENTERPRINT_SPACER, _("^1Don't shoot your team mates!")));
} else if (type == DEATH_QUIET) {
// do nothing
} else { // generic message
if(gentle)
- centerprint(strcat(DAMAGE_CENTERPRINT_SPACER, "^1You need to be more careful!"));
+ centerprint(strcat(DAMAGE_CENTERPRINT_SPACER, _("^1You need to be more careful!")));
else
- centerprint(strcat(DAMAGE_CENTERPRINT_SPACER, "^1You killed your own dumb self!"));
+ centerprint(strcat(DAMAGE_CENTERPRINT_SPACER, _("^1You killed your own dumb self!")));
}
} else if(msg == MSG_KILL) {
if (type == KILL_TEAM_RED || type == KILL_TEAM_BLUE) {
if(gentle) {
- centerprint(strcat(DAMAGE_CENTERPRINT_SPACER, "^1Moron! You went against", s1, ",a team mate!"));
+ centerprint(strcat(DAMAGE_CENTERPRINT_SPACER, sprintf(_("^1Moron! You went against %s, a team mate!"), s1)));
} else {
- centerprint(strcat(DAMAGE_CENTERPRINT_SPACER, "^1Moron! You fragged ", s1, ", a team mate!"));
+ centerprint(strcat(DAMAGE_CENTERPRINT_SPACER, sprintf(_("^1Moron! You fragged %s, a team mate!"), s1)));
}
} else if (type == KILL_FIRST_BLOOD) {
if(gentle) {
- centerprint(strcat(DAMAGE_CENTERPRINT_SPACER, "^1First score"));
+ centerprint(strcat(DAMAGE_CENTERPRINT_SPACER, _("^1First score")));
} else {
- centerprint(strcat(DAMAGE_CENTERPRINT_SPACER, "^1First blood"));
+ centerprint(strcat(DAMAGE_CENTERPRINT_SPACER, _("^1First blood")));
}
} else if (type == KILL_FIRST_VICTIM) {
if(gentle) {
- centerprint(strcat(DAMAGE_CENTERPRINT_SPACER, "^1First casualty"));
+ centerprint(strcat(DAMAGE_CENTERPRINT_SPACER, _("^1First casualty")));
} else {
- centerprint(strcat(DAMAGE_CENTERPRINT_SPACER, "^1First victim"));
+ centerprint(strcat(DAMAGE_CENTERPRINT_SPACER, _("^1First victim")));
}
} else if (type == KILL_TYPEFRAG) { // s2 contains "advanced kill messages" such as ping, handicap...
if(gentle) {
- centerprint(strcat(DAMAGE_CENTERPRINT_SPACER, "^1You scored against ^7", s1, "^1 who was typing!", s2));
+ centerprint(strcat(DAMAGE_CENTERPRINT_SPACER, sprintf(_("^1You scored against ^7%s^1 who was typing!"), s1), s2));
} else {
- centerprint(strcat(DAMAGE_CENTERPRINT_SPACER, "^1You typefragged ^7", s1, s2));
+ centerprint(strcat(DAMAGE_CENTERPRINT_SPACER, sprintf(_("^1You typefragged ^7%s"), s1), s2));
}
} else if (type == KILL_TYPEFRAGGED) {
if(gentle) {
- centerprint(strcat(DAMAGE_CENTERPRINT_SPACER, "^1You were scored against by ^7", s1, "^1 while you were typing!", s2));
+ centerprint(strcat(DAMAGE_CENTERPRINT_SPACER, sprintf(_("^1You were scored against by ^7%s^1 while you were typing!"), s1), s2));
} else {
- centerprint(strcat(DAMAGE_CENTERPRINT_SPACER, "^1You were typefragged by ^7", s1, s2));
+ centerprint(strcat(DAMAGE_CENTERPRINT_SPACER, sprintf(_("^1You were typefragged by ^7%s"), s1), s2));
}
} else if (type == KILL_FRAG) {
if(gentle) {
- centerprint(strcat(DAMAGE_CENTERPRINT_SPACER, "^4You scored against ^7", s1, s2));
+ centerprint(strcat(DAMAGE_CENTERPRINT_SPACER, sprintf(_("^4You scored against ^7%s"), s1), s2));
} else {
- centerprint(strcat(DAMAGE_CENTERPRINT_SPACER, "^4You fragged ^7", s1, s2));
+ centerprint(strcat(DAMAGE_CENTERPRINT_SPACER, sprintf(_("^4You fragged ^7%s"), s1), s2));
}
} else { // generic message
if(gentle) {
- centerprint(strcat(DAMAGE_CENTERPRINT_SPACER, "^1You were scored against by ^7", s1, s2));
+ centerprint(strcat(DAMAGE_CENTERPRINT_SPACER, sprintf(_("^1You were scored against by ^7%s"), s1), s2));
} else {
- centerprint(strcat(DAMAGE_CENTERPRINT_SPACER, "^1You were fragged by ^7", s1, s2));
+ centerprint(strcat(DAMAGE_CENTERPRINT_SPACER, sprintf(_("^1You were fragged by ^7%s"), s1), s2));
}
}
} else if(msg == MSG_KILL_ACTION) {
// TODO: invent more centerprints here?
- centerprint(strcat(DAMAGE_CENTERPRINT_SPACER, "^1Watch your step!"));
+ centerprint(strcat(DAMAGE_CENTERPRINT_SPACER, _("^1Watch your step!")));
}
}
height = mySize_y/entries;
vector fontsize;
- fontsize = '0.5 0.5 0' * height;
+ float fontheight = height * autocvar_hud_panel_notify_fontsize;
+ fontsize = '0.5 0.5 0' * fontheight;
float a;
float when;
a = i;
else // inverse order
a = entries - 1 - i;
- attacker = textShortenToWidth(strcat("Player", ftos(a+1)), 0.48 * mySize_x - height, fontsize, stringwidth_colors);
- victim = textShortenToWidth(strcat("Player", ftos(a+2)), 0.48 * mySize_x - height, fontsize, stringwidth_colors);
+ attacker = textShortenToWidth(sprintf(_("Player %d"), a+1), 0.48 * mySize_x - height, fontsize, stringwidth_colors);
+ victim = textShortenToWidth(sprintf(_("Player %d"), a+2), 0.48 * mySize_x - height, fontsize, stringwidth_colors);
s = strcat("weapon", get_weaponinfo(WEP_FIRST + mod(floor(a*2.4), WEP_LAST)).netname);
a = bound(0, (when - a) / 4, 1);
goto hud_config_notifyprint;
}
attacker = textShortenToWidth(killnotify_attackers[j], 0.48 * mySize_x - height, fontsize, stringwidth_colors);
- pos_attacker = pos + eX * (0.52 * mySize_x + height) + eY * (0.5 * fontsize_y + i * height);
+ pos_attacker = pos + eX * (0.52 * mySize_x + height) + eY * ((0.5 * fontsize_y + i * height) + (0.5 * (height - fontheight)));
weap_pos = pos + eX * 0.5 * mySize_x - eX * height + eY * i * height;
if(s != "")
victim = textShortenToWidth(killnotify_victims[j], 0.48 * mySize_x - height, fontsize, stringwidth_colors);
:hud_config_notifyprint
width_attacker = stringwidth(attacker, TRUE, fontsize);
- pos_attacker = pos + eX * (0.48 * mySize_x - height - width_attacker) + eY * (0.5 * fontsize_y + i * height);
- pos_victim = pos + eX * (0.52 * mySize_x + height) + eY * (0.5 * fontsize_y + i * height);
+ pos_attacker = pos + eX * (0.48 * mySize_x - height - width_attacker) + eY * ((0.5 * fontsize_y + i * height) + (0.5 * (height - fontheight)));
+ pos_victim = pos + eX * (0.52 * mySize_x + height) + eY * ((0.5 * fontsize_y + i * height) + (0.5 * (height - fontheight)));
weap_pos = pos + eX * 0.5 * mySize_x - eX * height + eY * i * height;
if(s != "")
minutes = floor(sec / 60);
sec -= minutes * 60;
-
- string s;
- s = ftos(100 + sec);
-
- return strcat(ftos(minutes), ":", substring(s, 1, 3));
+ return sprintf("%d:%02d", minutes, sec);
}
void HUD_Timer(void)
{
s = "0:13:37";
drawstring(pos + eX * 0.5 * mySize_x - '0.5 0 0' * stringwidth(s, FALSE, '0.60 0.60 0' * mySize_y), s, '0.60 0.60 0' * mySize_y, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
- s = "^1Intermediate 1 (+15.42)";
+ s = _("^1Intermediate 1 (+15.42)");
drawcolorcodedstring(pos + eX * 0.5 * mySize_x - '0.5 0 0' * stringwidth(s, TRUE, '1 1 0' * 0.20 * mySize_y) + eY * 0.60 * mySize_y, s, '1 1 0' * 0.20 * mySize_y, panel_fg_alpha, DRAWFLAG_NORMAL);
- s = strcat("^1PENALTY: ", ftos_decimals(20 * 0.1, 1), " (missing a checkpoint)");
+ s = sprintf(_("^1PENALTY: %.1f (%s)"), 2, "missing a checkpoint");
drawcolorcodedstring(pos + eX * 0.5 * mySize_x - '0.5 0 0' * stringwidth(s, TRUE, '1 1 0' * 0.20 * mySize_y) + eY * 0.80 * mySize_y, s, '1 1 0' * 0.20 * mySize_y, panel_fg_alpha, DRAWFLAG_NORMAL);
}
else if(race_checkpointtime)
a = bound(0, 2 - (time - race_penaltyeventtime), 1);
if(a > 0)
{
- s = strcat("^1PENALTY: ", ftos_decimals(race_penaltytime * 0.1, 1), " (", race_penaltyreason, ")");
+ s = sprintf(_("^1PENALTY: %.1f (%s)"), race_penaltytime * 0.1, race_penaltyreason);
drawcolorcodedstring(pos + eX * 0.5 * mySize_x - '0.5 0 0' * stringwidth(s, TRUE, '1 1 0' * 0.2 * mySize_y) + eY * 0.8 * mySize_y, s, '1 1 0' * 0.2 * mySize_y, panel_fg_alpha * a, DRAWFLAG_NORMAL);
}
}
if(a > 0)
{
if(time < t)
- s = strcat("^1PENALTY: ", ftos_decimals(t - time, 1), " (", race_penaltyreason, ")");
+ s = sprintf(_("^1PENALTY: %.1f (%s)"), (t - time) * 0.1, race_penaltyreason);
else
- s = strcat("^2PENALTY: 0.0 (", race_penaltyreason, ")");
+ s = sprintf(_("^2PENALTY: %.1f (%s)"), 0, race_penaltyreason);
drawcolorcodedstring(pos + eX * 0.5 * mySize_x - '0.5 0 0' * stringwidth(s, TRUE, '1 1 0' * 0.2 * mySize_y) + eY * 0.6 * mySize_y, s, '1 1 0' * 0.2 * mySize_y, panel_fg_alpha * a, DRAWFLAG_NORMAL);
}
}
if(autocvar_cl_allow_uid2name == -1 && (gametype == GAME_CTS || gametype == GAME_RACE))
{
vote_active = 1;
- vote_called_vote = strzone(strcat("^2Name ^7instead of \"^1Unregistered player\"", " ^7in stats"));
+ vote_called_vote = strzone(_("^2Name ^7instead of \"^1Unregistered player^7\" in stats"));
uid2name_dialog = 1;
}
}
mySize = newSize;
- s = "A vote has been called for:";
+ s = _("A vote has been called for:");
if(uid2name_dialog)
- s = "Allow servers to store and display your name?";
+ s = _("Allow servers to store and display your name?");
drawstring_aspect(pos, s, eX * mySize_x + eY * (2/8) * mySize_y, '1 1 1', a, DRAWFLAG_NORMAL);
s = textShortenToWidth(vote_called_vote, mySize_x, '1 1 0' * mySize_y * (1/8), stringwidth_colors);
if(autocvar__hud_configure)
- s = "^1Configure the HUD";
+ s = _("^1Configure the HUD");
drawcolorcodedstring_aspect(pos + eY * (2/8) * mySize_y, s, eX * mySize_x + eY * (1.75/8) * mySize_y, a, DRAWFLAG_NORMAL);
// print the yes/no counts
- s = strcat("Yes (", getcommandkey("vyes", "vyes"), "): ", ftos(vote_yescount));
+ s = sprintf(_("Yes (%s): %d"), getcommandkey("vyes", "vyes"), vote_yescount);
drawstring_aspect(pos + eY * (4/8) * mySize_y, s, eX * 0.5 * mySize_x + eY * (1.5/8) * mySize_y, '0 1 0', a, DRAWFLAG_NORMAL);
- s = strcat("No (", getcommandkey("vno", "vno"), "): ", ftos(vote_nocount));
+ s = sprintf(_("No (%s): %d"), getcommandkey("vno", "vno"), vote_nocount);
drawstring_aspect(pos + eX * 0.5 * mySize_x + eY * (4/8) * mySize_y, s, eX * 0.5 * mySize_x + eY * (1.5/8) * mySize_y, '1 0 0', a, DRAWFLAG_NORMAL);
// draw the progress bar backgrounds
kaball_prevstatus = kaball;
}
- // todo: Fix the sizing with the expanding image
+ vector kaball_pos, kaball_size;
+
+ if(mySize_x > mySize_y) {
+ kaball_pos = pos + eX * 0.25 * mySize_x;
+ kaball_size = eX * 0.5 * mySize_x + eY * mySize_y;
+ } else {
+ kaball_pos = pos + eY * 0.25 * mySize_y;
+ kaball_size = eY * 0.5 * mySize_y + eX * mySize_x;
+ }
float kaball_statuschange_elapsedtime = time - kaball_statuschange_time;
float f = bound(0, kaball_statuschange_elapsedtime*2, 1);
if(kaball_prevstatus && f < 1)
- drawpic_aspect_skin_expanding(pos + eY * 0.25 * mySize_y, "keepawayball_carrying", eX * mySize_x + eY * mySize_y * 0.5, '1 1 1', panel_fg_alpha * kaball_alpha, DRAWFLAG_NORMAL, f);
+ drawpic_aspect_skin_expanding(kaball_pos, "keepawayball_carrying", kaball_size, '1 1 1', panel_fg_alpha * kaball_alpha, DRAWFLAG_NORMAL, f);
if(kaball)
drawpic_aspect_skin(pos, "keepawayball_carrying", eX * mySize_x + eY * mySize_y, '1 1 1', panel_fg_alpha * kaball_alpha * f, DRAWFLAG_NORMAL);
f = time - crecordtime_change_time;
if (f > 1) {
- drawstring_aspect(textPos, "Personal best", eX * squareSize + eY * 0.25 * squareSize, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
+ drawstring_aspect(textPos, _("Personal best"), eX * squareSize + eY * 0.25 * squareSize, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
drawstring_aspect(textPos + eY * 0.25 * squareSize, TIME_ENCODED_TOSTRING(t), eX * squareSize + eY * 0.25 * squareSize, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
} else {
- drawstring_aspect(textPos, "Personal best", eX * squareSize + eY * 0.25 * squareSize, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
+ drawstring_aspect(textPos, _("Personal best"), eX * squareSize + eY * 0.25 * squareSize, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
drawstring_aspect(textPos + eY * 0.25 * squareSize, TIME_ENCODED_TOSTRING(t), eX * squareSize + eY * 0.25 * squareSize, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
- drawstring_aspect_expanding(pos, "Personal best", eX * squareSize + eY * 0.25 * squareSize, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL, f);
+ drawstring_aspect_expanding(pos, _("Personal best"), eX * squareSize + eY * 0.25 * squareSize, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL, f);
drawstring_aspect_expanding(pos + eY * 0.25 * squareSize, TIME_ENCODED_TOSTRING(t), eX * squareSize + eY * 0.25 * squareSize, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL, f);
}
f = time - srecordtime_change_time;
if (f > 1) {
- drawstring_aspect(textPos + eY * 0.5 * squareSize, "Server best", eX * squareSize + eY * 0.25 * squareSize, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
+ drawstring_aspect(textPos + eY * 0.5 * squareSize, _("Server best"), eX * squareSize + eY * 0.25 * squareSize, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
drawstring_aspect(textPos + eY * 0.75 * squareSize, TIME_ENCODED_TOSTRING(t), eX * squareSize + eY * 0.25 * squareSize, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
} else {
- drawstring_aspect(textPos + eY * 0.5 * squareSize, "Server best", eX * squareSize + eY * 0.25 * squareSize, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
+ drawstring_aspect(textPos + eY * 0.5 * squareSize, _("Server best"), eX * squareSize + eY * 0.25 * squareSize, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
drawstring_aspect(textPos + eY * 0.75 * squareSize, TIME_ENCODED_TOSTRING(t), eX * squareSize + eY * 0.25 * squareSize, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
- drawstring_aspect_expanding(textPos + eY * 0.5 * squareSize, "Server best", eX * squareSize + eY * 0.25 * squareSize, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL, f);
+ drawstring_aspect_expanding(textPos + eY * 0.5 * squareSize, _("Server best"), eX * squareSize + eY * 0.25 * squareSize, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL, f);
drawstring_aspect_expanding(textPos + eY * 0.75 * squareSize, TIME_ENCODED_TOSTRING(t), eX * squareSize + eY * 0.25 * squareSize, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL, f);
}
a = panel_fg_alpha;
else
a = panel_fg_alpha * floor(((i + 1) * 7 + autocvar_con_chattime)/45);
- drawcolorcodedstring(pos + eY * i * chatsize, textShortenToWidth("^3Player^7: This is the chat area.", mySize_x, '1 1 0' * chatsize, stringwidth_colors), '1 1 0' * chatsize, a, DRAWFLAG_NORMAL);
+ drawcolorcodedstring(pos + eY * i * chatsize, textShortenToWidth(_("^3Player^7: This is the chat area."), mySize_x, '1 1 0' * chatsize, stringwidth_colors), '1 1 0' * chatsize, a, DRAWFLAG_NORMAL);
}
}
}
vector color;
color = HUD_Get_Num_Color (prevfps, 100);
- drawstring_aspect(pos, strcat("FPS: ", ftos_decimals(prevfps, autocvar_hud_panel_engineinfo_framecounter_decimals)), mySize, color, panel_fg_alpha, DRAWFLAG_NORMAL);
+ drawstring_aspect(pos, sprintf(_("FPS: %.*f"), autocvar_hud_panel_engineinfo_framecounter_decimals, prevfps), mySize, color, panel_fg_alpha, DRAWFLAG_NORMAL);
}
// Info messages panel (#14)
if(spectatee_status && !intermission)
{
if(spectatee_status == -1)
- s = "^1Observing";
+ s = _("^1Observing");
else
- s = strcat("^1Spectating: ^7", GetPlayerName(spectatee_status - 1));
+ s = sprintf(_("^1Spectating: ^7%s"), GetPlayerName(spectatee_status - 1));
drawInfoMessage(s)
if(spectatee_status == -1)
- s = strcat("^1Press ^3", getcommandkey("primary fire", "+fire"), "^1 to spectate");
+ s = sprintf(_("^1Press ^3%s^1 to spectate"), getcommandkey("primary fire", "+fire"));
else
- s = strcat("^1Press ^3", getcommandkey("primary fire", "+fire"), "^1 for another player");
+ s = sprintf(_("^1Press ^3%s^1 for another player"), getcommandkey("primary fire", "+fire"));
drawInfoMessage(s)
if(spectatee_status == -1)
- s = strcat("^1Use ^3", getcommandkey("next weapon", "weapnext"), "^1 or ^3", getcommandkey("previous weapon", "weapprev"), "^1 to change the speed");
+ s = sprintf(_("^1Use ^3%s^1 or ^3%s^1 to change the speed"), getcommandkey("next weapon", "weapnext"), getcommandkey("previous weapon", "weapprev"));
else
- s = strcat("^1Press ^3", getcommandkey("secondary fire", "+fire2"), "^1 to observe");
+ s = sprintf(_("^1Press ^3%s^1 to observe"), getcommandkey("secondary fire", "+fire2"));
drawInfoMessage(s)
- s = strcat("^1Press ^3", getcommandkey("server info", "+show_info"), "^1 for gamemode info");
+ s = sprintf(_("^1Press ^3%s^1 for gamemode info"), getcommandkey("server info", "+show_info"));
drawInfoMessage(s)
if(gametype == GAME_ARENA)
- s = "^1Wait for your turn to join";
+ s = _("^1Wait for your turn to join");
else if(gametype == GAME_LMS)
{
entity sk;
sk = playerslots[player_localentnum - 1];
if(sk.(scores[ps_primary]) >= 666)
- s = "^1Match has already begun";
+ s = _("^1Match has already begun");
else if(sk.(scores[ps_primary]) > 0)
- s = "^1You have no more lives left";
+ s = _("^1You have no more lives left");
else
- s = strcat("^1Press ^3", getcommandkey("jump", "+jump"), "^1 to join");
+ s = sprintf(_("^1Press ^3%s^1 to join"), getcommandkey("jump", "+jump"));
}
else
- s = strcat("^1Press ^3", getcommandkey("jump", "+jump"), "^1 to join");
+ s = sprintf(_("^1Press ^3%s^1 to join"), getcommandkey("jump", "+jump"));
drawInfoMessage(s)
//show restart countdown:
float countdown;
//we need to ceil, otherwise the countdown would be off by .5 when using round()
countdown = ceil(getstatf(STAT_GAMESTARTTIME) - time);
- s = strcat("^1Game starts in ^3", ftos(countdown), "^1 seconds");
+ s = sprintf(_("^1Game starts in ^3%d^1 seconds"), countdown);
drawcolorcodedstring(o, s, fontsize, a, DRAWFLAG_NORMAL);
o_y += fontsize_y;
}
}
if(warmup_stage && !intermission)
{
- s = "^2Currently in ^1warmup^2 stage!";
+ s = _("^2Currently in ^1warmup^2 stage!");
drawInfoMessage(s)
}
if(ready_waiting_for_me)
{
if(warmup_stage)
- s = strcat(blinkcolor, "Press ^3", getcommandkey("ready", "ready"), blinkcolor, " to end warmup");
+ s = sprintf(_("%sPress ^3%s%s to end warmup"), blinkcolor, getcommandkey("ready", "ready"), blinkcolor);
else
- s = strcat(blinkcolor, "Press ^3", getcommandkey("ready", "ready"), blinkcolor, " once you are ready");
+ s = sprintf(_("%sPress ^3%s%s once you are ready"), blinkcolor, getcommandkey("ready", "ready"), blinkcolor);
}
else
{
if(warmup_stage)
- s = strcat("^2Waiting for others to ready up to end warmup...");
+ s = _("^2Waiting for others to ready up to end warmup...");
else
- s = strcat("^2Waiting for others to ready up...");
+ s = _("^2Waiting for others to ready up...");
}
drawInfoMessage(s)
}
else if(warmup_stage && !intermission && !spectatee_status)
{
- s = strcat("^2Press ^3", getcommandkey("ready", "ready"), "^2 to end warmup");
+ s = sprintf(_("^2Press ^3%s^2 to end warmup"), getcommandkey("ready", "ready"));
drawInfoMessage(s)
}
}
if ((ts_max - ts_min) > 1)
{
- s = strcat(blinkcolor, "Teamnumbers are unbalanced!");
+ s = strcat(blinkcolor, _("Teamnumbers are unbalanced!"));
tm = GetTeam(myteam, false);
if (tm)
if (tm.team != COLOR_SPECTATOR)
if (tm.team_size == ts_max)
- s = strcat(s, " Press ^3", getcommandkey("team menu", "menu_showteamselect"), blinkcolor, " to adjust");
+ s = strcat(s, sprintf(_(" Press ^3%s%s to adjust"), getcommandkey("team menu", "menu_showteamselect"), blinkcolor));
drawInfoMessage(s)
}
}
}
else
{
- s = "^7Press ^3ESC ^7to show HUD options.";
+ s = _("^7Press ^3ESC ^7to show HUD options.");
drawInfoMessage(s)
- s = "^3Doubleclick ^7a panel for panel-specific options.";
+ s = _("^3Doubleclick ^7a panel for panel-specific options.");
drawInfoMessage(s)
- s = "^3CTRL ^7to disable collision testing, ^3SHIFT ^7and";
+ s = _("^3CTRL ^7to disable collision testing, ^3SHIFT ^7and");
drawInfoMessage(s)
- s = "^3ALT ^7+ ^3ARROW KEYS ^7for fine adjustments.";
+ s = _("^3ALT ^7+ ^3ARROW KEYS ^7for fine adjustments.");
drawInfoMessage(s)
}
}
conversion_factor = 1.0;
break;
case 1:
- unit = " qu/s";
+ unit = _(" qu/s");
conversion_factor = 1.0;
break;
case 2:
- unit = " m/s";
+ unit = _(" m/s");
conversion_factor = 0.0254;
break;
case 3:
- unit = " km/h";
+ unit = _(" km/h");
conversion_factor = 0.0254 * 3.6;
break;
case 4:
- unit = " mph";
+ unit = _(" mph");
conversion_factor = 0.0254 * 3.6 * 0.6213711922;
break;
case 5:
- unit = " knots";
+ unit = _(" knots");
conversion_factor = 0.0254 * 1.943844492; // 1 m/s = 1.943844492 knots, because 1 knot = 1.852 km/h
break;
}
}
if (acceleration > 0)
- HUD_Panel_DrawProgressBar(pos, eX * (vid_conwidth - pos_x) + eY * sz, "statusbar", 0, 0, acceleration * scale, rgb, alpha * autocvar_hud_progressbar_alpha * panel_fg_alpha, DRAWFLAG_NORMAL);
+ HUD_Panel_DrawProgressBar(pos, eX * (vid_conwidth - pos_x) + eY * sz, "accelbar", 0, 0, acceleration * scale, rgb, alpha * autocvar_hud_progressbar_alpha * panel_fg_alpha, DRAWFLAG_NORMAL);
else
- HUD_Panel_DrawProgressBar(eY * pos_y, eX * pos_x + eY * sz, "statusbar", 0, 1, -acceleration * scale, rgb, alpha * autocvar_hud_progressbar_alpha * panel_fg_alpha, DRAWFLAG_NORMAL);
+ HUD_Panel_DrawProgressBar(eY * pos_y, eX * pos_x + eY * sz, "accelbar", 0, 1, -acceleration * scale, rgb, alpha * autocvar_hud_progressbar_alpha * panel_fg_alpha, DRAWFLAG_NORMAL);
}
void HUD_Reset (void)
// --------------------------------------------------------------------------
// CTF
+#ifdef CTF_EXAMPLE
void() ctf_menu_show;
string ctf_temp_1;
+#endif
// --------------------------------------------------------------------------
// Onslaught
float button_zoom;
float spectatorbutton_zoom;
float button_attack2;
+
float activeweapon;
float current_viewzoom;
float zoomin_effect;
-float ignore_plus_zoom;
-float ignore_minus_zoom;
float warmup_stage;
string getcommandkey(string text, string command);
float g_balance_grenadelauncher_bouncestop;
float g_balance_electro_secondary_bouncefactor;
float g_balance_electro_secondary_bouncestop;
+float g_trueaim_minrange;
float mv_detail;
float mv_timeout;
float mv_maps_mask;
+float mv_top2_time;
+float mv_top2_alpha;
vector mv_mousepos;
float mv_selection;
string MapVote_FormatMapItem(float id, string map, float count, float maxwidth, vector fontsize)
{
string pre, post;
- pre = strcat(ftos(id+1), ". ");
+ pre = sprintf("%d. ", id+1);
if(mv_detail)
{
if(count == 1)
- post = strcat(" (1 vote)");
- else
- post = strcat(" (", ftos(count), " votes)");
+ post = _(" (1 vote)");
+ else if(count >= 0)
+ post = sprintf(_(" (%d votes)"), count);
}
else
post = "";
return strcat(pre, map, post);
}
-vector MapVote_RGB(float id)
+vector MapVote_RGB(float id, float count)
{
+ if(count < 0)
+ return '1 1 1';
if(id == mv_ownvote)
return '0 1 0';
else if (id == mv_selection)
isize -= hud_fontsize_y; // respect the text when calculating the image size
- rgb = MapVote_RGB(id);
+ rgb = MapVote_RGB(id, count);
img_size_y = isize;
img_size_x = isize / 0.75; // 4:3 x can be stretched easily, height is defined in isize
label = MapVote_FormatMapItem(id, map, count, tsize, hud_fontsize);
text_size = stringwidth(label, false, hud_fontsize);
-
+
+ float alpha;
+ if (count < 0 && mv_top2_alpha)
+ alpha = mv_top2_alpha;
+ else
+ alpha = 1;
+
pos_x -= text_size*0.5;
- drawstring(pos, label, hud_fontsize, rgb, 1, DRAWFLAG_NORMAL);
+ drawstring(pos, label, hud_fontsize, rgb, alpha, DRAWFLAG_NORMAL);
pos_x = pos_x + text_size*0.5 - img_size_x*0.5;
pos_y = pos_y - img_size_y;
img_size -= (autocvar_scoreboard_border_thickness * 2) * '1 1 0';
if(pic == "")
{
- drawfill(pos, img_size, '.5 .5 .5', .7, DRAWFLAG_NORMAL);
+ drawfill(pos, img_size, '.5 .5 .5', .7 * alpha, DRAWFLAG_NORMAL);
}
else
{
- drawpic(pos, pic, img_size, '1 1 1', 1, DRAWFLAG_NORMAL);
+ drawpic(pos, pic, img_size, '1 1 1', alpha, DRAWFLAG_NORMAL);
}
if(id == mv_ownvote)
- drawborderlines(autocvar_scoreboard_border_thickness, pos, img_size, rgb, 1, DRAWFLAG_NORMAL);
+ drawborderlines(autocvar_scoreboard_border_thickness, pos, img_size, rgb, alpha, DRAWFLAG_NORMAL);
else
- drawborderlines(autocvar_scoreboard_border_thickness, pos, img_size, '0 0 0', 1, DRAWFLAG_NORMAL);
+ drawborderlines(autocvar_scoreboard_border_thickness, pos, img_size, '0 0 0', alpha, DRAWFLAG_NORMAL);
- if(id == mv_selection)
+ if(id == mv_selection && count >= 0)
drawfill(pos, img_size, '1 1 1', 0.1, DRAWFLAG_NORMAL);
}
float text_size;
string label;
- rgb = MapVote_RGB(id);
+ rgb = MapVote_RGB(id, count);
pos_y = pos_y + hud_fontsize_y;
- label = MapVote_FormatMapItem(id, "Don't care", count, tsize, hud_fontsize);
+ label = MapVote_FormatMapItem(id, _("Don't care"), count, tsize, hud_fontsize);
text_size = stringwidth(label, false, hud_fontsize);
pos_y = ymin;
pos_z = 0;
//pos_x = center - stringwidth("Vote for a map", false) * 0.5 * 24;
- pos_x = center - stringwidth("Vote for a map", false, '12 0 0');
+ pos_x = center - stringwidth(_("Vote for a map"), false, '12 0 0');
drawstring(pos, "Vote for a map", '24 24 0', '1 1 1', 1, DRAWFLAG_NORMAL);
pos_y += 26;
i = ceil(max(0, mv_timeout - time));
- map = strcat(ftos(i), " seconds left");
+ map = sprintf(_("%d seconds left"), i);
//pos_x = center - stringwidth(map, false) * 0.5 * 16;
pos_x = center - stringwidth(map, false, '8 0 0');
drawstring(pos, map, '16 16 0', '0 1 0', 1, DRAWFLAG_NORMAL);
pos_y += (dist_y - isize) / 2;
ymax -= isize;
+ if (mv_top2_time)
+ mv_top2_alpha = max(0.2, 1 - (time - mv_top2_time)*(time - mv_top2_time));
+
for(i = 0; i < mv_num_maps; ++i)
{
tmp = mv_votes[i]; // FTEQCC bug: too many array accesses in the function call screw it up
- if(tmp < 0)
- continue;
map = mv_maps[i];
if(mv_preview[i])
MapVote_DrawMapItem(pos + MapVote_GridVec(dist, i, columns), isize, tsize, map, mv_pics[i], tmp, i);
if(argc != 2 || !mv_pk3list)
{
- print("mv_mapdownload: ^3You're not supposed to use this command on your own!\n");
+ print(_("mv_mapdownload: ^3You're not supposed to use this command on your own!\n"));
return;
}
break;
if(!pak || pak.sv_entnum != id) {
- print("^1Error:^7 Couldn't find pak index.\n");
+ print(_("^1Error:^7 Couldn't find pak index.\n"));
return;
}
- //print(strcat("^3Adding: ", ftos(id), " - ", pak.message, " - "));
-
if(PreviewExists(pak.message))
{
mv_preview[id] = true;
- //print("^2Found...\n");
return;
} else {
- print("Requesting preview...\n");
+ print(_("Requesting preview...\n"));
localcmd(strcat("\ncmd mv_getpic ", ftos(id), "\n"));
}
}
mv_preview[i] = false;
- //print(strcat("RECV: ", map, " in ", pk3, "\n"));
MapVote_CheckPic(map, pk3, i);
}
else
for(i = 0, power = 1; i < mv_num_maps; ++i, power *= 2)
if not(mv_maps_mask & power)
mv_votes[i] = -1;
+
+ mv_top2_time = time;
}
void MapVote_UpdateVotes()
countdown_rounded = floor(0.5 + countdown);
if(countdown <= 0) {
if (!spectatee_status) //do cprint only for players
- centerprint("^1Begin!");
+ centerprint(_("^1Begin!"));
sound(world, CHAN_AUTO, strcat("announcer/", autocvar_cl_announcer, "/begin.wav"), VOL_BASEVOICE, ATTN_NONE);
//reset maptime announcers now as well
}
else {
if (!spectatee_status) //do cprint only for players
- centerprint(strcat("^1Game starts in ", ftos(countdown_rounded), " seconds"));
+ centerprint(sprintf(_("^1Game starts in %d seconds"), countdown_rounded));
if(countdown_rounded <= 3 && countdown_rounded >= 1) {
sound(world, CHAN_AUTO, strcat("announcer/", autocvar_cl_announcer, "/", ftos(countdown_rounded), ".wav"), VOL_BASEVOICE, ATTN_NONE);
//if we're in warmup mode, check whether there's a warmup timelimit
if not (warmuplimit == -1 && warmup_stage) {
announcer_5min = TRUE;
- //dprint("i will play the sound, I promise!\n");
sound(world, CHAN_AUTO, strcat("announcer/", autocvar_cl_announcer, "/5minutesremain.wav"), VOL_BASEVOICE, ATTN_NONE);
}
}
blueflag = (stat_items/IT_BLUE_FLAG_TAKEN) & 3;
if (redflag == 3 && redflag != redflag_prev) {
- item = "^1RED^7 flag";
+ item = _("^1RED^7 flag");
pickup = (redflag_prev == 2);
}
if (blueflag == 3 && blueflag != blueflag_prev) {
- item = "^4BLUE^7 flag";
+ item = _("^4BLUE^7 flag");
pickup = (blueflag_prev == 2);
}
{
if (pickup) {
if (autocvar_cl_notify_carried_items & 2)
- centerprint(strcat("You picked up the ", item, "!"));
+ centerprint(sprintf(_("You picked up the %s!"), item));
}
else {
if (autocvar_cl_notify_carried_items & 1)
- centerprint(strcat("You got the ", item, "!"));
+ centerprint(sprintf(_("You got the %s!"), item));
}
}
if(!tm)
{
- print("Trying to remove a team which is not in the teamlist!");
+ print(_("Trying to remove a team which is not in the teamlist!"));
return;
}
parent.sort_next = Team.sort_next;
float sz;
sz = expandingbox_sizefactor_from_fadelerp(fadelerp);
- drawpic_skin(position + expandingbox_resize_centered_box_offset(sz, scale, 1), pic, scale * sz, rgb, alpha * (1 - fadelerp), flag);
+ drawpic_aspect_skin(position + expandingbox_resize_centered_box_offset(sz, scale, 1), pic, scale * sz, rgb, alpha * (1 - fadelerp), flag);
}
void drawpic_aspect_skin_expanding_two(vector position, string pic, vector scale, vector rgb, float alpha, float flag, float fadelerp)
prandom_seed = c;
#ifdef USE_PRANDOM_DEBUG
- print("RANDOM -> ", ftos(c), "\n");
+ dprint("RANDOM -> ", ftos(c), "\n");
#endif
return c / 65536; // in [0..1[
{
prandom_seed = seed;
#ifdef USE_PRANDOM_DEBUG
- print("SRANDOM ", ftos(seed), "\n");
+ dprint("SRANDOM ", ftos(seed), "\n");
#endif
}
#ifdef USE_PRANDOM_DEBUG
void prandom_debug()
{
- print("Current random seed = ", ftos(prandom_seed), "\n");
+ dprint("Current random seed = ", ftos(prandom_seed), "\n");
}
#endif
#endif
../common/util.qh
../common/items.qh
+../common/explosion_equation.qh
../common/mapinfo.qh
../common/mapinfo.qc
../common/items.qc
../server/w_all.qc
+../common/explosion_equation.qc
../warpzonelib/anglestransform.qc
../warpzonelib/mathlib.qc
../warpzonelib/common.qc
../warpzonelib/client.qc
+
+../common/if-this-file-errors-scroll-up-and-fix-the-warnings.fteqccfail
case PROJECTILE_FIREBALL: self.model = ""; self.modelindex = 0; self.traileffect = particleeffectnum("fireball"); break; // particle effect is good enough
case PROJECTILE_FIREMINE: self.model = ""; self.modelindex = 0; self.traileffect = particleeffectnum("firemine"); break; // particle effect is good enough
case PROJECTILE_TAG: setmodel(self, "models/laser.mdl"); self.traileffect = particleeffectnum("TR_ROCKET"); break;
- case PROJECTILE_FLAC: setmodel(self, "models/hagarmissile.mdl"); self.scale = 0.4; self.traileffect = particleeffectnum("TR_ROCKET"); break;
- case PROJECTILE_SEEKER: setmodel(self, "models/tagrocket.md3"); self.scale = 2; self.traileffect = particleeffectnum("TR_ROCKET"); break;
+ case PROJECTILE_FLAC: setmodel(self, "models/hagarmissile.mdl"); self.scale = 0.4; self.traileffect = particleeffectnum("TR_SEEKER"); break;
+ case PROJECTILE_SEEKER: setmodel(self, "models/tagrocket.md3"); self.traileffect = particleeffectnum("TR_SEEKER"); break;
default:
error("Received invalid CSQC projectile, can't work with this!");
break;
self.maxs = '4 4 4';
break;
case PROJECTILE_TAG:
- loopsound(self, CHAN_PROJECTILE, "weapons/tag_rocket_fly.wav", VOL_BASE, ATTN_NORM);
self.mins = '-2 -2 -2';
self.maxs = '2 2 2';
break;
self.maxs = '2 2 2';
break;
case PROJECTILE_SEEKER:
+ loopsound(self, CHAN_PROJECTILE, "weapons/tag_rocket_fly.wav", VOL_BASE, ATTN_NORM);
self.mins = '-4 -4 -4';
self.maxs = '4 4 4';
break;
float SCOREBOARD_OFFSET = 50;
+// wrapper to put all possible scores titles through gettext
+string TranslateScoresLabel(string l)
+{
+ switch(l)
+ {
+ case "bckills": return CTX(_("SCO^bckills"));
+ case "bctime": return CTX(_("SCO^bctime"));
+ case "caps": return CTX(_("SCO^caps"));
+ case "deaths": return CTX(_("SCO^deaths"));
+ case "destroyed": return CTX(_("SCO^destroyed"));
+ case "drops": return CTX(_("SCO^drops"));
+ case "faults": return CTX(_("SCO^faults"));
+ case "fckills": return CTX(_("SCO^fckills"));
+ case "goals": return CTX(_("SCO^goals"));
+ case "kckills": return CTX(_("SCO^kckills"));
+ case "kdratio": return CTX(_("SCO^kdratio"));
+ case "k/d": return CTX(_("SCO^k/d"));
+ case "kd": return CTX(_("SCO^kd"));
+ case "kdr": return CTX(_("SCO^kdr"));
+ case "kills": return CTX(_("SCO^kills"));
+ case "laps": return CTX(_("SCO^laps"));
+ case "lives": return CTX(_("SCO^lives"));
+ case "losses": return CTX(_("SCO^losses"));
+ case "name": return CTX(_("SCO^name"));
+ case "nick": return CTX(_("SCO^nick"));
+ case "objectives": return CTX(_("SCO^objectives"));
+ case "pickups": return CTX(_("SCO^pickups"));
+ case "ping": return CTX(_("SCO^ping"));
+ case "pl": return CTX(_("SCO^pl"));
+ case "pushes": return CTX(_("SCO^pushes"));
+ case "rank": return CTX(_("SCO^rank"));
+ case "returns": return CTX(_("SCO^returns"));
+ case "revivals": return CTX(_("SCO^revivals"));
+ case "score": return CTX(_("SCO^score"));
+ case "suicides": return CTX(_("SCO^suicides"));
+ case "takes": return CTX(_("SCO^takes"));
+ case "ticks": return CTX(_("SCO^ticks"));
+ default: return l;
+ }
+}
+
void MapVote_Draw();
void HUD_FinaleOverlay()
{
void Cmd_HUD_Help(float argc)
{
- print("You can modify the scoreboard using the ^2scoreboard_columns_set command.\n");
- print("^3|---------------------------------------------------------------|\n");
- print("Usage:\n");
- print("^2scoreboard_columns_set default\n");
- print("^2scoreboard_columns_set ^7filed1 field2 ...\n");
- print("The following field names are recognized (case insensitive):\n");
- print("You can use a ^3|^7 to start the right-aligned fields.\n\n");
-
- print("^3name^7 or ^3nick^7 Name of a player\n");
- print("^3ping^7 Ping time\n");
- print("^3pl^7 Packet loss\n");
- print("^3kills^7 Number of kills\n");
- print("^3deaths^7 Number of deaths\n");
- print("^3suicides^7 Number of suicides\n");
- print("^3frags^7 kills - suicides\n");
- print("^3kd^7 The kill-death ratio\n");
- print("^3caps^7 How often a flag (CTF) or a key (KeyHunt) was captured\n");
- print("^3pickups^7 How often a flag (CTF) or a key (KeyHunt) was picked up\n");
- print("^3fckills^7 Number of flag carrier kills\n");
- print("^3returns^7 Number of flag returns\n");
- print("^3drops^7 Number of flag drops\n");
- print("^3lives^7 Number of lives (LMS)\n");
- print("^3rank^7 Player rank\n");
- print("^3pushes^7 Number of players pushed into void\n");
- print("^3destroyed^7 Number of keys destroyed by pushing them into void\n");
- print("^3kckills^7 Number of keys carrier kills\n");
- print("^3losses^7 Number of times a key was lost\n");
- print("^3laps^7 Number of laps finished (race/cts)\n");
- print("^3time^7 Total time raced (race/cts)\n");
- print("^3fastest^7 Time of fastest lap (race/cts)\n");
- print("^3ticks^7 Number of ticks (DOM)\n");
- print("^3takes^7 Number of domination points taken (DOM)\n");
- print("^3score^7 Total score\n\n");
-
- print("Before a field you can put a + or - sign, then a comma separated list\n");
- print("of game types, then a slash, to make the field show up only in these\n");
- print("or in all but these game types. You can also specify 'all' as a\n");
- print("field to show all fields available for the current game mode.\n\n");
-
- print("The special game type names 'teams' and 'noteams' can be used to\n");
- print("include/exclude ALL teams/noteams game modes.\n\n");
-
- print("Example: scoreboard_columns_set name ping pl | +ctf/field3 -dm/field4\n");
- print("will display name, ping and pl aligned to the left, and the fields\n");
- print("right of the vertical bar aligned to the right.\n");
- print("'field3' will only be shown in CTF, and 'field4' will be shown in all\n");
- print("other gamemodes except DM.\n");
+ print(_("You can modify the scoreboard using the ^2scoreboard_columns_set command.\n"));
+ print(_("^3|---------------------------------------------------------------|\n"));
+ print(_("Usage:\n"));
+ print(_("^2scoreboard_columns_set default\n"));
+ print(_("^2scoreboard_columns_set ^7filed1 field2 ...\n"));
+ print(_("The following field names are recognized (case insensitive):\n"));
+ print(_("You can use a ^3|^7 to start the right-aligned fields.\n\n"));
+
+ print(_("^3name^7 or ^3nick^7 Name of a player\n"));
+ print(_("^3ping^7 Ping time\n"));
+ print(_("^3pl^7 Packet loss\n"));
+ print(_("^3kills^7 Number of kills\n"));
+ print(_("^3deaths^7 Number of deaths\n"));
+ print(_("^3suicides^7 Number of suicides\n"));
+ print(_("^3frags^7 kills - suicides\n"));
+ print(_("^3kd^7 The kill-death ratio\n"));
+ print(_("^3caps^7 How often a flag (CTF) or a key (KeyHunt) was captured\n"));
+ print(_("^3pickups^7 How often a flag (CTF) or a key (KeyHunt) or a ball (Keepaway) was picked up\n"));
+ print(_("^3fckills^7 Number of flag carrier kills\n"));
+ print(_("^3returns^7 Number of flag returns\n"));
+ print(_("^3drops^7 Number of flag drops\n"));
+ print(_("^3lives^7 Number of lives (LMS)\n"));
+ print(_("^3rank^7 Player rank\n"));
+ print(_("^3pushes^7 Number of players pushed into void\n"));
+ print(_("^3destroyed^7 Number of keys destroyed by pushing them into void\n"));
+ print(_("^3kckills^7 Number of keys carrier kills\n"));
+ print(_("^3losses^7 Number of times a key was lost\n"));
+ print(_("^3laps^7 Number of laps finished (race/cts)\n"));
+ print(_("^3time^7 Total time raced (race/cts)\n"));
+ print(_("^3fastest^7 Time of fastest lap (race/cts)\n"));
+ print(_("^3ticks^7 Number of ticks (DOM)\n"));
+ print(_("^3takes^7 Number of domination points taken (DOM)\n"));
+ print(_("^3bckills^7 Number of ball carrier kills\n"));
+ print(_("^3bctime^7 Total amount of time holding the ball in Keepaway\n"));
+ print(_("^3score^7 Total score\n\n"));
+
+ print(_("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"));
+
+ print(_("The special game type names 'teams' and 'noteams' can be used to\n"
+ "include/exclude ALL teams/noteams game modes.\n\n"));
+
+ print(_("Example: scoreboard_columns_set name ping pl | +ctf/field3 -dm/field4\n"));
+ print(_("will display name, ping and pl aligned to the left, and the fields\n"
+ "right of the vertical bar aligned to the right.\n"));
+ print(_("'field3' will only be shown in CTF, and 'field4' will be shown in all\n"
+ "other gamemodes except DM.\n"));
}
string HUD_DefaultColumnLayout()
"+lms/lives +lms/rank ",
"+kh/caps +kh/pushes +kh/destroyed ",
"?+race/laps ?+race/time ?+race/fastest ",
- "+as/objectives +nexball/faults +nexball/goals +ka/drops +ka/pickups +ka/bckills +freezetag/revivals ",
+ "+as/objectives +nexball/faults +nexball/goals +ka/pickups +ka/bckills +ka/bctime +freezetag/revivals ",
"-lms,race,nexball/score");
}
pattern = substring(str, 0, slash);
str = substring(str, slash + 1, strlen(str) - (slash + 1));
- if not(isGametypeInFilter(gametype, teamplay, pattern))
+ if not(isGametypeInFilter(gametype, teamplay, FALSE, pattern))
continue;
}
strunzone(hud_title[hud_num_fields]);
- hud_title[hud_num_fields] = strzone(str);
- hud_size[hud_num_fields] = stringwidth(str, FALSE, hud_fontsize);
+ hud_title[hud_num_fields] = strzone(TranslateScoresLabel(str));
+ hud_size[hud_num_fields] = stringwidth(hud_title[hud_num_fields], FALSE, hud_fontsize);
str = strtolower(str);
if(str == "ping") {
else
{
if not(nocomplain)
- print(strcat("^1Error:^7 Unknown score field: '", str, "'\n"));
+ print(sprintf("^1Error:^7 Unknown score field: '%s'\n", str));
continue;
}
:found
hud_size[i] = hud_size[i-1];
hud_field[i] = hud_field[i-1];
}
- hud_title[0] = strzone("name");
+ hud_title[0] = strzone(TranslateScoresLabel("name"));
hud_field[0] = SP_NAME;
++hud_num_fields;
- print("fixed missing field 'name'\n");
+ print(sprintf(_("fixed missing field '%s'\n"), "name"));
if(!have_separator)
{
hud_field[1] = SP_SEPARATOR;
hud_size[1] = stringwidth("|", FALSE, hud_fontsize);
++hud_num_fields;
- print("fixed missing field '|'\n");
+ print(sprintf(_("fixed missing field '%s'\n"), "|"));
}
}
else if(!have_separator)
hud_size[hud_num_fields] = stringwidth("|", FALSE, hud_fontsize);
hud_field[hud_num_fields] = SP_SEPARATOR;
++hud_num_fields;
- print("fixed missing field '|'\n");
+ print(sprintf(_("fixed missing field '%s'\n"), "|"));
}
if(!have_secondary)
{
strunzone(hud_title[hud_num_fields]);
- hud_title[hud_num_fields] = strzone(scores_label[ps_secondary]);
+ hud_title[hud_num_fields] = strzone(TranslateScoresLabel(scores_label[ps_secondary]));
hud_size[hud_num_fields] = stringwidth(hud_title[hud_num_fields], FALSE, hud_fontsize);
hud_field[hud_num_fields] = ps_secondary;
++hud_num_fields;
- print("fixed missing field '", scores_label[ps_secondary], "'\n");
+ print(sprintf(_("fixed missing field '%s'\n"), scores_label[ps_secondary]));
}
if(!have_primary)
{
strunzone(hud_title[hud_num_fields]);
- hud_title[hud_num_fields] = strzone(scores_label[ps_primary]);
+ hud_title[hud_num_fields] = strzone(TranslateScoresLabel(scores_label[ps_primary]));
hud_size[hud_num_fields] = stringwidth(hud_title[hud_num_fields], FALSE, hud_fontsize);
hud_field[hud_num_fields] = ps_primary;
++hud_num_fields;
- print("fixed missing field '", scores_label[ps_primary], "'\n");
+ print(sprintf(_("fixed missing field '%s'\n"), scores_label[ps_primary]));
}
}
{
case SP_PING:
if not(pl.gotscores)
- return "\x8D\x8D\x8D"; // >>> sign
+ return "\xEE\x82\x8D\xEE\x82\x8D\xEE\x82\x8D"; // >>> sign
//str = getplayerkey(pl.sv_entnum, "ping");
f = pl.ping;
if(f == 0)
- return "N/A";
+ return _("N/A");
tmp = max(0, min(220, f-80)) / 220;
hud_field_rgb = '1 1 1' - '0 1 1'*tmp;
return ftos(f);
case SP_PL:
if not(pl.gotscores)
- return "N/A";
+ return _("N/A");
f = pl.ping_packetloss;
tmp = pl.ping_movementloss;
if(f == 0 && tmp == 0)
if(denom == 0) {
hud_field_rgb = '0 1 0';
- str = ftos(num);
+ str = sprintf("%d", num);
} else if(num <= 0) {
hud_field_rgb = '1 0 0';
- str = ftos(num/denom);
+ str = sprintf("%.1f", num/denom);
} else
- str = ftos(num/denom);
-
- tmp = strstrofs(str, ".", 0);
- if(tmp > 0)
- str = substring(str, 0, tmp+2);
+ str = sprintf("%.1f", num/denom);
return str;
default:
return 1;
else if (intermission == 1)
return 1;
+ else if (intermission == 2)
+ return 0;
else if (getstati(STAT_HEALTH) <= 0 && autocvar_cl_deathscoreboard && gametype != GAME_CTS)
return 1;
- else if (spectatee_status == -1)
- return 1;
+ else if (spectatee_status == -1)
+ return 1;
else if (scoreboard_showscores_force)
return 1;
return 0;
float weapon_height = height * 2/3;
float weapon_width = sbwidth / weapon_cnt;
- drawstring(pos, strcat("Accuracy stats (average ", ftos(average_accuracy), "%)"), hud_fontsize, '1 1 1', scoreboard_alpha_fg, DRAWFLAG_NORMAL);
+ drawstring(pos, sprintf(_("Accuracy stats (average %d%%)"), average_accuracy), hud_fontsize, '1 1 1', scoreboard_alpha_fg, DRAWFLAG_NORMAL);
pos_y += 1.25 * hud_fontsize_y;
vector tmp;
tmp_x = sbwidth;
average_accuracy += weapon_stats; // store sum of all accuracies in average_accuracy
string s;
- s = sprintf("%d%%", weapon_stats*100);
+ s = sprintf(_("%d%%"), weapon_stats*100);
float padding;
padding = (weapon_width - stringwidth(s, FALSE, '1 0 0' * fontsize)) / 2; // center the accuracy value
hl_rgb_z = autocvar_scoreboard_color_bg_b + 0.5;
pos_y += hud_fontsize_y;
- drawstring(pos, strcat("Rankings"), hud_fontsize, '1 1 1', scoreboard_alpha_fg, DRAWFLAG_NORMAL);
+ drawstring(pos, _("Rankings"), hud_fontsize, '1 1 1', scoreboard_alpha_fg, DRAWFLAG_NORMAL);
pos_y += hud_fontsize_y;
vector tmp;
tmp_x = sbwidth;
pos_z = 0;
// Heading
- drawstring(pos, "Scoreboard", '24 24 0', '1 1 1', scoreboard_alpha_fg, DRAWFLAG_NORMAL);
+ drawstring(pos, _("Scoreboard"), '24 24 0', '1 1 1', scoreboard_alpha_fg, DRAWFLAG_NORMAL);
- centerprint_start_x = vid_conwidth - 0.5 * (pos_x + stringwidth("Scoreboard", FALSE, '24 24 0'));
+ centerprint_start_x = vid_conwidth - 0.5 * (pos_x + stringwidth(_("Scoreboard"), FALSE, '24 24 0'));
centerprint_start_y = pos_y;
pos_y += 24;
if(gametype == GAME_CTS || gametype == GAME_RACE) {
if(race_speedaward) {
- drawcolorcodedstring(pos, strcat("Speed award: ", ftos(race_speedaward), " ^7(", race_speedaward_holder, "^7)"), hud_fontsize, scoreboard_alpha_fg, DRAWFLAG_NORMAL);
+ drawcolorcodedstring(pos, sprintf(_("Speed award: %d ^7(%s^7)"), race_speedaward, race_speedaward_holder), hud_fontsize, scoreboard_alpha_fg, DRAWFLAG_NORMAL);
pos_y += 1.25 * hud_fontsize_y;
}
if(race_speedaward_alltimebest) {
- drawcolorcodedstring(pos, strcat("All-time fastest: ", ftos(race_speedaward_alltimebest), " ^7(", race_speedaward_alltimebest_holder, "^7)"), hud_fontsize, scoreboard_alpha_fg, DRAWFLAG_NORMAL);
+ drawcolorcodedstring(pos, sprintf(_("All-time fastest: %d ^7(%s^7)"), race_speedaward_alltimebest, race_speedaward_alltimebest_holder), hud_fontsize, scoreboard_alpha_fg, DRAWFLAG_NORMAL);
pos_y += 1.25 * hud_fontsize_y;
}
pos = HUD_DrawScoreboardRankings(pos, pl, rgb, bg_size);
if(specs)
{
- drawstring(tmp, "Spectators", hud_fontsize, '1 1 1', scoreboard_alpha_fg, DRAWFLAG_NORMAL);
+ drawstring(tmp, _("Spectators"), hud_fontsize, '1 1 1', scoreboard_alpha_fg, DRAWFLAG_NORMAL);
pos_y += 1.25 * hud_fontsize_y;
}
// Print info string
string str;
float tl, fl, ll;
- str = strcat("playing on ^2", shortmapname, "^7");
+ str = sprintf(_("playing on ^2%s^7"), shortmapname);
tl = getstatf(STAT_TIMELIMIT);
fl = getstatf(STAT_FRAGLIMIT);
ll = getstatf(STAT_LEADLIMIT);
if(gametype == GAME_LMS)
{
if(tl > 0)
- str = strcat(str, " for up to ^1", ftos(tl), " minutes^7");
+ str = strcat(str, sprintf(_(" for up to ^1%1.0f minutes^7"), tl));
}
else
{
if(tl > 0)
- str = strcat(str, " for ^1", ftos(tl), " minutes^7");
+ str = strcat(str, sprintf(_(" for up to ^1%1.0f minutes^7"), tl));
if(fl > 0)
{
if(tl > 0)
- str = strcat(str, " or");
+ str = strcat(str, _(" or"));
if(teamplay)
{
- str = strcat(str, " until ^3", ScoreString(teamscores_flags[ts_primary], fl));
- if(teamscores_label[ts_primary] == "score")
- str = strcat(str, " points^7");
- else if(teamscores_label[ts_primary] == "fastest")
- str = strcat(str, " is beaten^7");
- else
- str = strcat(str, " ", teamscores_label[ts_primary]);
+ str = strcat(str, sprintf(_(" until ^3%s %s^7"), ScoreString(teamscores_flags[ts_primary], fl),
+ (teamscores_label[ts_primary] == "score") ? CTX(_("SCO^points")) :
+ (teamscores_label[ts_primary] == "fastest") ? CTX(_("SCO^is beaten")) :
+ TranslateScoresLabel(teamscores_label[ts_primary])));
}
else
{
- str = strcat(str, " until ^3", ScoreString(scores_flags[ps_primary], fl));
- if(scores_label[ps_primary] == "score")
- str = strcat(str, " points^7");
- else if(scores_label[ps_primary] == "fastest")
- str = strcat(str, " is beaten^7");
- else
- str = strcat(str, " ", scores_label[ps_primary]);
+ str = strcat(str, sprintf(_(" until ^3%s %s^7"), ScoreString(scores_flags[ps_primary], fl),
+ (scores_label[ps_primary] == "score") ? CTX(_("SCO^points")) :
+ (scores_label[ps_primary] == "fastest") ? CTX(_("SCO^is beaten")) :
+ TranslateScoresLabel(scores_label[ps_primary])));
}
}
if(ll > 0)
{
if(tl > 0 || fl > 0)
- str = strcat(str, " or");
+ str = strcat(str, _(" or"));
if(teamplay)
{
- str = strcat(str, " until a lead of ^3", ScoreString(teamscores_flags[ts_primary], ll));
- if(teamscores_label[ts_primary] == "score")
- str = strcat(str, " points^7");
- else if(teamscores_label[ts_primary] == "fastest")
- str = strcat(str, " is beaten^7");
- else
- str = strcat(str, " ", teamscores_label[ts_primary]);
+ str = strcat(str, sprintf(_(" until a lead of ^3%s %s^7"), ScoreString(teamscores_flags[ts_primary], ll),
+ (teamscores_label[ts_primary] == "score") ? CTX(_("SCO^points")) :
+ (teamscores_label[ts_primary] == "fastest") ? CTX(_("SCO^is beaten")) :
+ TranslateScoresLabel(teamscores_label[ts_primary])));
}
else
{
- str = strcat(str, " until a lead of ^3", ScoreString(scores_flags[ps_primary], ll));
- if(scores_label[ps_primary] == "score")
- str = strcat(str, " points^7");
- else if(scores_label[ps_primary] == "fastest")
- str = strcat(str, " is beaten^7");
- else
- str = strcat(str, " ", scores_label[ps_primary]);
+ str = strcat(str, sprintf(_(" until a lead of ^3%s %s^7"), ScoreString(scores_flags[ps_primary], ll),
+ (scores_label[ps_primary] == "score") ? CTX(_("SCO^points")) :
+ (scores_label[ps_primary] == "fastest") ? CTX(_("SCO^is beaten")) :
+ TranslateScoresLabel(scores_label[ps_primary])));
}
}
}
sound(e, CHAN_VOICE, e.noise, 0, ATTN_NONE);
if(getsoundtime(e, CHAN_VOICE) < 0)
{
- print("Cannot initialize sound ", e.noise, "\n");
+ print(sprintf(_("Cannot initialize sound %s\n"), e.noise));
strunzone(e.noise);
e.noise = string_null;
}
sound(self, CHAN_VOICE, self.noise, 0, ATTN_NONE);
if(getsoundtime(self, CHAN_VOICE) < 0)
{
- print("Cannot initialize sound ", self.noise, "\n");
+ print(sprintf(_("Cannot initialize sound %s\n"), self.noise));
strunzone(self.noise);
self.noise = string_null;
}
{
switch(color)
{
- default: return "Spectators";
- case COLOR_TEAM1: return "Red Team";
- case COLOR_TEAM2: return "Blue Team";
- case COLOR_TEAM3: return "Yellow Team";
- case COLOR_TEAM4: return "Pink Team";
+ default: return _("Spectators");
+ case COLOR_TEAM1: return _("Red Team");
+ case COLOR_TEAM2: return _("Blue Team");
+ case COLOR_TEAM3: return _("Yellow Team");
+ case COLOR_TEAM4: return _("Pink Team");
}
}
else
self.build_starthealth = 0;
self.build_finished = servertime + t / 32;
- //print("build: ", ftos(self.build_finished - self.build_started), "\n");
}
}
else
self.entremove = Ent_RemoveWaypointSprite;
}
+void WaypointSprite_Load_Frames(string ext)
+{
+ float dh, n, i, o, f;
+ string s, sname, sframes;
+ dh = search_begin(strcat("models/sprites/*_frame*", ext), FALSE, FALSE);
+ if (dh < 0)
+ return;
+ float ext_len = strlen(ext);
+ n = search_getsize(dh);
+ for(i = 0; i < n; ++i)
+ {
+ s = search_getfilename(dh, i);
+ s = substring(s, 15, strlen(s) - 15 - ext_len); // strip models/sprites/ and extension
+
+ o = strstrofs(s, "_frame", 0);
+ sname = strcat("/spriteframes/", substring(s, 0, o));
+ sframes = substring(s, o + 6, strlen(s) - o - 6);
+ f = stof(sframes) + 1;
+ db_put(tempdb, sname, ftos(max(f, stof(db_get(tempdb, sname)))));
+ }
+ search_end(dh);
+}
+
void WaypointSprite_Load()
{
waypointsprite_fadedistance = vlen(mi_scale);
if(!waypointsprite_initialized)
{
- float dh, n, i, o, f;
- string s, sname, sframes;
-
- dh = search_begin("models/sprites/*_frame*.tga", FALSE, FALSE);
- n = search_getsize(dh);
- for(i = 0; i < n; ++i)
- {
- s = search_getfilename(dh, i);
- s = substring(s, 15, strlen(s) - 15 - 4); // strip models/sprites/ and .tga
-
- o = strstrofs(s, "_frame", 0);
- sname = strcat("/spriteframes/", substring(s, 0, o));
- sframes = substring(s, o + 6, strlen(s) - o - 6);
- f = stof(sframes) + 1;
- db_put(tempdb, sname, ftos(max(f, stof(db_get(tempdb, sname)))));
- }
- search_end(dh);
-
- dh = search_begin("models/sprites/*_frame*.jpg", FALSE, FALSE);
- n = search_getsize(dh);
- for(i = 0; i < n; ++i)
- {
- s = search_getfilename(dh, i);
- s = substring(s, 15, strlen(s) - 15 - 4); // strip models/sprites/ and .jpg
-
- o = strstrofs(s, "_frame", 0);
- sname = strcat("/spriteframes/", substring(s, 0, o));
- sframes = substring(s, o + 6, strlen(s) - o - 6);
- f = stof(sframes) + 1;
- db_put(tempdb, sname, ftos(max(f, stof(db_get(tempdb, sname)))));
- }
- search_end(dh);
+ WaypointSprite_Load_Frames(".tga");
+ WaypointSprite_Load_Frames(".jpg");
waypointsprite_initialized = true;
}
}
const float TE_CSQC_NOTIFY = 112;
const float TE_CSQC_WEAPONCOMPLAIN = 113;
const float TE_CSQC_NEX_SCOPE = 116;
-const float TE_CSQC_CR_MAXBULLETS = 117;
+const float TE_CSQC_MINELAYER_MAXMINES = 117;
const float RACE_NET_CHECKPOINT_HIT_QUALIFYING = 0; // byte checkpoint, short time, short recordtime, string recordholder
const float RACE_NET_CHECKPOINT_CLEAR = 1;
const float ENT_CLIENT_LGBEAM = 28;
const float ENT_CLIENT_GAUNTLET = 29;
const float ENT_CLIENT_ACCURACY = 30;
+const float ENT_CLIENT_WARPZONE_TELEPORTED = 31;
const float ENT_CLIENT_TURRET = 40;
const float STAT_NB_METERSTART = 45;
const float STAT_SHOTORG = 46; // compressShotOrigin
const float STAT_LEADLIMIT = 47;
-const float STAT_BULLETS_LOADED = 48;
-const float STAT_NEX_CHARGE = 49;
-const float STAT_LAST_PICKUP = 50;
-const float STAT_HUD = 51;
-const float STAT_NEX_CHARGEPOOL = 52;
+const float STAT_WEAPON_CLIPLOAD = 48;
+const float STAT_WEAPON_CLIPSIZE = 49;
+const float STAT_NEX_CHARGE = 50;
+const float STAT_LAST_PICKUP = 51;
+const float STAT_HUD = 52;
+const float STAT_NEX_CHARGEPOOL = 53;
+const float STAT_HIT_TIME = 54;
+const float STAT_TYPEHIT_TIME = 55;
+const float STAT_LAYED_MINES = 56;
// see DP source, quakedef.h
const float STAT_MOVEVARS_AIRSPEEDLIMIT_NONQW = 222;
float WR_RELOAD = 9; // (SVQC) does not need to do anything
float WR_RESETPLAYER = 10; // (SVQC) does not need to do anything
float WR_IMPACTEFFECT = 11; // (CSQC) impact effect
+float WR_SWITCHABLE = 12; // (CSQC) impact effect
float HUD_PANEL_WEAPONS = 0;
--- /dev/null
+float explosion_calcpush_getmultiplier(vector explosion_v, vector target_v)
+{
+ float a;
+ a = explosion_v * (explosion_v - target_v);
+
+ if(a <= 0)
+ // target is too fast to be hittable by this
+ return 0;
+
+ a /= (explosion_v * explosion_v);
+ // we know we can divide by this, or above a would be == 0
+
+ return a;
+}
+
+#if 0
+vector explosion_calcpush(vector explosion_v, float explosion_m, vector target_v, float target_m, float elasticity)
+{
+ // solution of the equations:
+ // v' = v + a vp // central hit
+ // m*v' + mp*vp' = m*v + mp*vp // conservation of momentum
+ // m*v'^2 + mp*vp'^2 = m*v^2 + mp*vp^2 // conservation of energy (ELASTIC hit)
+ // -> a = 0 // case 1: did not hit
+ // -> a = 2*mp*(vp^2 - vp.v) / ((m+mp) * vp^2) // case 2: did hit
+ // // non-elastic hits are somewhere between these two
+
+ // this would be physically correct, but we don't do that
+ return explosion_v * explosion_calcpush_getmultiplier(explosion_v, target_v) * (
+ (1 + elasticity) * (
+ explosion_m
+ ) / (
+ target_m + explosion_m
+ )
+ ); // note: this factor is at least 0, at most 2
+}
+#endif
+
+// simplified formula, tuned so that if the target has velocity 0, we get exactly the original force
+vector damage_explosion_calcpush(vector explosion_f, vector target_v, float speedfactor)
+{
+ // if below 1, the formulas make no sense (and would cause superjumps)
+ if(speedfactor < 1)
+ return explosion_f;
+
+#if 0
+ float m;
+ // find m so that
+ // speedfactor * (1 + e) * m / (1 + m) == 1
+ m = 1 / ((1 + 0) * speedfactor - 1);
+ vector v;
+ v = explosion_calcpush(explosion_f * speedfactor, m, target_v, 1, 0);
+ // the factor we then get is:
+ // 1
+ print(sprintf("MASS: %f\nv: %v -> %v\nENERGY BEFORE == %f + %f = %f\nENERGY AFTER >= %f\n",
+ m,
+ target_v, target_v + v,
+ target_v * target_v, m * explosion_f * speedfactor * explosion_f * speedfactor, target_v * target_v + m * explosion_f * speedfactor * explosion_f * speedfactor,
+ (target_v + v) * (target_v + v)));
+ return v;
+#endif
+ return explosion_f * explosion_calcpush_getmultiplier(explosion_f * speedfactor, target_v);
+}
--- /dev/null
+vector damage_explosion_calcpush(vector explosion_f, vector target_v, float speedfactor);
}
else if(argc >= 3 && crc16(0, argv(0)) == 3826 && crc16(0, strcat(argv(0), argv(0), argv(0))) == 55790)
{
- // test case for terrencehill's color codes
+ // test case for terencehill's color codes
s = strdecolorize(substring(command, argv_start_index(2), argv_end_index(-1) - argv_start_index(2)));
s2 = "";
e.model2 = strzone(strcat("wpn-", e.mdl));
e.impulse = i;
e.bot_pickupbasevalue = pickupbasevalue;
+ if(ammotype & IT_SHELLS)
+ e.ammo_field = ammo_shells;
+ else if(ammotype & IT_NAILS)
+ e.ammo_field = ammo_nails;
+ else if(ammotype & IT_ROCKETS)
+ e.ammo_field = ammo_rockets;
+ else if(ammotype & IT_CELLS)
+ e.ammo_field = ammo_cells;
+ else if(ammotype & IT_FUEL)
+ e.ammo_field = ammo_fuel;
+ else
+ e.ammo_field = ammo_batteries;
}
float w_null(float dummy)
{
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_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 IT_UNLIMITED_WEAPON_AMMO = 1;
// when this bit is set, using a weapon does not reduce ammo. Checkpoints can give this powerup.
string W_NameWeaponOrder(string order);
string W_NumberWeaponOrder(string order);
+// ammo types
+.float ammo_shells;
+.float ammo_nails;
+.float ammo_rockets;
+.float ammo_cells;
+.float ammo_fuel;
+.float ammo_batteries; // dummy
+
// entity properties of weaponinfo:
.float weapon; // WEP_...
.float weapons; // WEPBIT_...
.float impulse; // weapon impulse
.float bot_pickupbasevalue; // bot weapon priority
.string model2; // wpn- sprite name
-
-
+..float ammo_field; // main ammo field
// dynamic weapon adding
float w_null(float dummy);
case MAPINFO_TYPE_NEXBALL: return "5 20 0";
case MAPINFO_TYPE_CTS: return "20 0 0";
case MAPINFO_TYPE_FREEZETAG: return "10 20 0";
- case MAPINFO_TYPE_KEEPAWAY: return "30 20 0";
+ // NOTE: DO NOT ADD ANY MORE GAME TYPES HERE
+ // THIS IS JUST LEGACY SUPPORT FOR NEXUIZ MAPS
+ // ONLY ADD NEW STUFF TO _MapInfo_GetDefaultEx
+ // THIS FUNCTION WILL EVENTUALLY BE REMOVED
default: return "";
}
}
s = cdr(s);
}
+ /* keepaway wuz here
if(pWantedType == MAPINFO_TYPE_KEEPAWAY)
{
sa = car(s);
cvar_set("fraglimit", sa);
s = cdr(s);
}
-
+ */
+
// rc = timelimit timelimit_qualification laps laps_teamplay
if(pWantedType == MAPINFO_TYPE_RACE)
{
{
t = car(s); s = cdr(s);
f = MapInfo_Type_FromString(t);
+ print("Map ", pFilename, " contains the legacy 'type' keyword which is deprecated and will be removed in the future. Please migrate the mapinfo file to 'gametype'.\n");
if(f)
_MapInfo_Map_ApplyGametype (s, pGametypeToSet, f, TRUE);
else
return -1;
fh = fopen(pFilename, FILE_READ);
if(fh < 0)
- return buf;
+ {
+ buf_del(buf);
+ return -1;
+ }
i = 0;
while((l = fgets(fh)))
{
return strcat(substring(theText, 0, textLengthUpToLength(theText, maxWidth - tw("..."), tw)), "...");
}
-float isGametypeInFilter(float gt, float tp, string pattern)
+float isGametypeInFilter(float gt, float tp, float ts, string pattern)
{
- string subpattern, subpattern2, subpattern3;
+ string subpattern, subpattern2, subpattern3, subpattern4;
subpattern = strcat(",", GametypeNameFromType(gt), ",");
if(tp)
subpattern2 = ",teams,";
else
subpattern2 = ",noteams,";
+ if(ts)
+ subpattern3 = ",teamspawns,";
+ else
+ subpattern3 = ",noteamspawns,";
if(gt == GAME_RACE || gt == GAME_CTS)
- subpattern3 = ",race,";
+ subpattern4 = ",race,";
else
- subpattern3 = string_null;
+ subpattern4 = string_null;
if(substring(pattern, 0, 1) == "-")
{
return 0;
if(strstrofs(strcat(",", pattern, ","), subpattern2, 0) >= 0)
return 0;
- if(subpattern3 && strstrofs(strcat(",", pattern, ","), subpattern3, 0) >= 0)
+ if(strstrofs(strcat(",", pattern, ","), subpattern3, 0) >= 0)
+ return 0;
+ if(subpattern4 && strstrofs(strcat(",", pattern, ","), subpattern4, 0) >= 0)
return 0;
}
else
pattern = substring(pattern, 1, strlen(pattern) - 1);
if(strstrofs(strcat(",", pattern, ","), subpattern, 0) < 0)
if(strstrofs(strcat(",", pattern, ","), subpattern2, 0) < 0)
- if((!subpattern3) || strstrofs(strcat(",", pattern, ","), subpattern3, 0) < 0)
+ if(strstrofs(strcat(",", pattern, ","), subpattern3, 0) < 0)
+ if((!subpattern4) || strstrofs(strcat(",", pattern, ","), subpattern4, 0) < 0)
return 0;
}
return 1;
return v;
}
-
-float _unacceptable_compiler_bug_1_a(float b, float c) { return b == c; }
-float _unacceptable_compiler_bug_1_b() { return 1; }
-float _unacceptable_compiler_bug_1_c(float d) { return 2 * d; }
-float _unacceptable_compiler_bug_1_d() { return 1; }
-
void check_unacceptable_compiler_bugs()
{
if(cvar("_allow_unacceptable_compiler_bugs"))
}
return l;
}
+
+// translation helpers
+string language_filename(string s)
+{
+ string fn;
+ float fh;
+ fn = prvm_language;
+ if(fn == "" || fn == "dump")
+ return s;
+ fn = strcat(s, ".", fn);
+ if((fh = fopen(fn, FILE_READ)) >= 0)
+ {
+ fclose(fh);
+ return fn;
+ }
+ return s;
+}
+string CTX(string s)
+{
+ float p = strstrofs(s, "^", 0);
+ if(p < 0)
+ return s;
+ return substring(s, p+1, -1);
+}
string getWrappedLine(float w, vector size, textLengthUpToWidth_widthFunction_t tw);
string getWrappedLineLen(float w, textLengthUpToLength_lenFunction_t tw);
-float isGametypeInFilter(float gt, float tp, string pattern);
+float isGametypeInFilter(float gt, float tp, float ts, string pattern);
typedef void(float i1, float i2, entity pass) swapfunc_t; // is only ever called for i1 < i2
typedef float(float i1, float i2, entity pass) comparefunc_t; // <0 for <, ==0 for ==, >0 for > (like strcmp)
float vercmp(string v1, string v2);
float u8_strsize(string s);
+
+// translation helpers
+string prvm_language;
+string language_filename(string s);
+string CTX(string s);
+#define ZCTX(s) strzone(CTX(s))
--- /dev/null
+# list of words that must not be used in the source as a single string;
+# use ZCTX(_("CONTEXT^string")) instead
+# vi macro to do it:
+# :s/_("\([^"]*\)")/ZCTX(_("CONTEXT^\1"))/g
+# test by:
+# grep -v ^# i18n-badwords.txt | while IFS= read -r W; do grep -nri "_(\"$W\")" menu/xonotic; done | sort -n
+# this is done to help with languages like Russian where these words may need
+# different grammatical gender in different instances
+All
+Best
+Disabled
+Good
+High
+Insane
+Low
+Lowest
+Medium
+Normal
+Off
+Ultra
+Small
+Large
+Custom
+Very short
+Short
+Long
+Full
+Empty
+None
+Few
+Many
+Lots
+Both
+Ambient:
--- /dev/null
+How to make the .po template:
+
+find . -type f -not -name \*.po -not -name \*.txt | xgettext -LC -k_ -f- --from-code utf-8
+
+
+How to compare the .po template against a language file:
+
+msgcmp ../../menu.dat.de.po messages.po
+
+
+How to merge the .po template into a language file:
+
+msgmerge -U ../../menu.dat.de.po messages.po
+
+
+Guideline:
+- do NOT translate strings in error() messages, or in dprint()!
+- delete obviously useless developer prints while at it
+- change obvious developer prints from print to dprint (even in comments),
+ unless in developer-only functions (e.g. *dumptree*)
+- mark translatable strings with _()
+- if a translatable string is a strcat monster, change it to sprintf
+- if code loads files with text, use language_filename()
+- interesting vim macros:
+ :map # /"<return>
+ :map ' i_(<esc>2f"a)<esc>/"<return>
+ :map " F"isprintf(_(<esc>%i), )<esc>i
+
+Unresolved TODO:
+
+- translated campaigns
n.prevSibling = p;
else
me.lastChild = p;
+ remove(other);
}
void AnimHost_removeAllAnim(entity me)
{
tmp = e;
e = tmp.prevSibling;
- me.removeAnim(me, tmp);
tmp.finishAnim(tmp);
}
}
{
tmp = e;
e = tmp.prevSibling;
- me.removeAnim(me, tmp);
tmp.finishAnim(tmp);
}
}
for(e = me.firstChild; e; e = e.nextSibling)
{
e.tick(e, time);
- }
- for(e = me.firstChild; e; e = e.nextSibling)
- {
if (e.isFinished(e))
{
tmp = e;
e = tmp.prevSibling;
me.removeAnim(me, tmp);
- remove(tmp);
}
}
}
#include "xonotic/bigbutton.c"
#include "xonotic/commandbutton.c"
#include "xonotic/bigcommandbutton.c"
+#include "xonotic/dialog_firstrun.c"
#include "xonotic/dialog_teamselect.c"
#include "xonotic/dialog_settings.c"
#include "xonotic/dialog_settings_video.c"
#include "xonotic/dialog_multiplayer_create_mutators.c"
#include "xonotic/dialog_multiplayer_create_advanced.c"
#include "xonotic/dialog_multiplayer_create_mapinfo.c"
-#include "xonotic/gametypebutton.c"
+#include "xonotic/gametypelist.c"
#include "xonotic/maplist.c"
#include "xonotic/skinlist.c"
+#include "xonotic/languagelist.c"
#include "xonotic/image.c"
#include "xonotic/crosshairbutton.c"
#include "xonotic/playermodel.c"
}
void draw_CenterText(vector theOrigin, string theText, vector theSize, vector theColor, float theAlpha, float ICanHasKallerz)
{
- //print(strcat("orig = ", vtos(theOrigin) ," tx = ", ftos(draw_TextWidth(theText, ICanHasKallerz, theSize)), "\n"));
+ //dprint(strcat("orig = ", vtos(theOrigin) ," tx = ", ftos(draw_TextWidth(theText, ICanHasKallerz, theSize)), "\n"));
draw_Text(theOrigin - eX * 0.5 * draw_TextWidth(theText, ICanHasKallerz, theSize), theText, theSize, theColor, theAlpha, ICanHasKallerz);
}
float draw_TextWidth(string theText, float ICanHasKallerz, vector SizeThxBye)
{
//return strlen(theText);
- //print("draw_TextWidth \"", theText, "\"\n");
+ //dprint("draw_TextWidth \"", theText, "\"\n");
vector v;
v = '0 0 0';
//float r;
do_cvar = curl_uri_get_cvar[i];
if(status != 0)
{
- print("error: status is ", ftos(status), "\n");
+ print(sprintf(_("error: status is %d\n"), status));
return;
}
if(do_exec)
if(argv(0) == "help" || argc == 0)
{
- print("Usage: menu_cmd theCommand..., where possible theCommands are:\n");
- print(" sync - reloads all cvars on the current menu page\n");
- print(" directmenu ITEM - select a menu item as main item\n");
+ print(_("Usage: menu_cmd command..., where possible commands are:\n"));
+ print(_(" sync - reloads all cvars on the current menu page\n"));
+ print(_(" directmenu ITEM - select a menu item as main item\n"));
GameCommand_Generic("help");
return;
}
return;
}
+ if(argv(0) == "languageselect")
+ {
+ m_goto_language_selector();
+ return;
+ }
+
if(argv(0) == "videosettings")
{
m_goto_video_settings();
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");
+ print(_("error creating curl handle\n"));
buf_del(buf);
}
#endif
- print("Invalid theCommand. For a list of supported theCommands, try menu_cmd help.\n");
+ print(_("Invalid command. For a list of supported commands, try menu_cmd help.\n"));
}
{
me.origin = absOrigin;
me.size = absSize;
- // me.tooltip = "The quick brown fox jumped over the lazy sleeping dog's back then sat on a tack. Franz jagt im komplett verwahrlosten Taxi quer durch Bayern.";
}
void Item_draw(entity me)
}
void BorderImage_draw(entity me)
{
- //print(vtos(me.borderVec), "\n");
-
if(me.src)
draw_BorderPicture('0 0 0', me.src, '1 1 0', me.color, 1, me.borderVec);
if(me.fontSize > 0)
METHOD(Button, mousePress, float(entity, vector))
METHOD(Button, mouseDrag, float(entity, vector))
METHOD(Button, mouseRelease, float(entity, vector))
+ METHOD(Button, focusEnter, void(entity))
ATTRIB(Button, onClick, void(entity, entity), SUB_Null)
ATTRIB(Button, onClickEntity, entity, NULL)
ATTRIB(Button, src, string, string_null)
float Button_mousePress(entity me, vector pos)
{
me.mouseDrag(me, pos); // verify coordinates
- if(cvar("menu_sounds"))
- localsound("sound/misc/menu2.wav");
return 1;
}
float Button_mouseRelease(entity me, vector pos)
if(me.pressed)
{
if not(me.disabled)
+ {
+ if(cvar("menu_sounds"))
+ localsound("sound/misc/menu2.wav");
me.onClick(me, me.onClickEntity);
+ }
me.pressed = 0;
}
return 1;
{
me.focusable = !me.disabled;
}
-.float playedfocus;
+void Button_focusEnter(entity me)
+{
+ if(cvar("menu_sounds") > 1)
+ localsound("sound/misc/menu1.wav");
+ SUPER(Button).focusEnter(me);
+}
void Button_draw(entity me)
{
vector bOrigin, bSize;
me.onClick(me, me.onClickEntity);
}
me.clickTime -= frametime;
-
- if(cvar("menu_sounds") > 1)
- if(me.focused && !me.playedfocus)
- {
- localsound("sound/misc/menu1.wav");
- me.playedfocus = 1;
- }
- else if(!me.focused && me.playedfocus)
- me.playedfocus = 0;
}
-#endif
\ No newline at end of file
+#endif
void Dialog_addItemSimple(entity me, float row, float col, float rowspan, float colspan, entity e, vector v)
{
- //print(vtos(me.itemSpacing), " ", vtos(me.itemSize), "\n");
vector o, s;
o = me.itemOrigin + eX * ( col * me.itemSpacing_x) + eY * ( row * me.itemSpacing_y);
s = me.itemSize + eX * ((colspan - 1) * me.itemSpacing_x) + eY * ((rowspan - 1) * me.itemSpacing_y);
if(me.closable)
{
closebutton = me.closeButton = spawnButton();
- closebutton.configureButton(closebutton, "Close", 0, me.closeButtonImage);
+ 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
local vector fontsize;
fontsize_x = fontsize_y = 1.0 / 30.0;
fontsize_z = 0.0;
- draw_Text( '0 0 0', "Browser not initialized!", fontsize, '1 1 1', 1.0, 0 );
+ draw_Text( '0 0 0', _("Browser not initialized!"), fontsize, '1 1 1', 1.0, 0 );
}
}
draw_Text(p, substring(me.text, i, 2), me.realFontSize, '1 1 1', theAlpha, 0);
}
}
- /*else if(ch2 == "a") // ^a found
- {
- draw_Fill(p, eX * w + eY * me.realFontSize_y, '1 1 1', 0.5);
- draw_Text(p, substring(me.text, i, 2), me.realFontSize, theColor, 0.8, 0);
-
- component = str2chr(me.text, i+2);
- if (component >= '0' && component <= '9')
- component = component - '0';
- else if (component >= 'a' && component <= 'f')
- component = component - 87;
- else if (component >= 'A' && component <= 'F')
- component = component - 55;
- else
- component = -1;
-
- if (component >= 0) // ^ah found
- {
- // FIX ME: overflow here
- if (component == 20 && theVariableAlpha <= 0.97)
- theVariableAlpha = theVariableAlpha + 0.0625;
- else if (component == 30 && theVariableAlpha >= 0.03)
- theVariableAlpha = theVariableAlpha - 0.0625;
- else
- theVariableAlpha = component*0.0625;
-
- draw_Fill(p, eX * draw_TextWidth(substring(me.text, i, 3), 0, me.realFontSize) + eY * me.realFontSize_y, '0.8 0.8 0.8', 0.5);
- draw_Text(p, strcat(ch, ch2), me.realFontSize, theColor, 0.8, 0);
- }
- }*/
else
{
draw_Fill(p, eX * w + eY * me.realFontSize_y, '1 1 1', 0.5);
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))
ATTRIB(Label, text, string, string_null)
ATTRIB(Label, fontSize, float, 8)
ATTRIB(Label, align, float, 0.5)
ATTRIB(Label, textEntity, entity, NULL)
ATTRIB(Label, allowWrap, float, 0)
ATTRIB(Label, recalcPos, float, 0)
+ ATTRIB(Label, condenseFactor, float, 1)
ENDCLASS(Label)
#endif
me.text = txt;
me.recalcPos = 1;
}
+void Label_recalcPosition(entity me)
+{
+ float spaceAvail;
+ spaceAvail = 1 - me.keepspaceLeft - me.keepspaceRight;
+
+ float spaceUsed;
+ spaceUsed = draw_TextWidth(me.text, me.allowColors, me.realFontSize);
+
+ if(spaceUsed <= spaceAvail)
+ {
+ me.realOrigin_x = me.align * (spaceAvail - spaceUsed) + me.keepspaceLeft;
+ me.condenseFactor = 1;
+ }
+ else if(me.allowCut || me.allowWrap)
+ {
+ me.realOrigin_x = me.keepspaceLeft;
+ 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));
+ }
+ me.recalcPos = 0;
+}
void Label_resizeNotify(entity me, vector relOrigin, vector relSize, vector absOrigin, vector absSize)
{
SUPER(Label).resizeNotify(me, relOrigin, relSize, absOrigin, absSize);
me.keepspaceLeft = me.marginLeft * me.realFontSize_x;
if(me.marginRight)
me.keepspaceRight = me.marginRight * me.realFontSize_x;
- me.realOrigin_y = 0.5 * (1 - me.realFontSize_y);
- me.realOrigin_x = me.align * (1 - me.keepspaceLeft - me.keepspaceRight - min(draw_TextWidth(me.text, me.allowColors, me.realFontSize), (1 - me.keepspaceLeft - me.keepspaceRight))) + me.keepspaceLeft;
- me.recalcPos = 0;
+
+ 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);
}
void Label_configureLabel(entity me, string txt, float sz, float algn)
{
t = me.text;
if(me.recalcPos)
- me.realOrigin_x = me.align * (1 - me.keepspaceLeft - me.keepspaceRight - min(draw_TextWidth(t, me.allowColors, me.realFontSize), (1 - me.keepspaceLeft - me.keepspaceRight))) + me.keepspaceLeft;
- me.recalcPos = 0;
+ me.recalcPosition(me);
- //if(me.text == "Bookmark")
- // draw_Fill(me.realOrigin, '0 1 0' + '1 0 0' * draw_TextWidth(t, me.allowColors, me.realFontSize), '1 0 1', 1);
-
if(me.fontSize)
if(t)
{
+ 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
- draw_Text(me.realOrigin, draw_TextShortenToWidth(t, (1 - me.keepspaceLeft - me.keepspaceRight), me.allowColors, me.realFontSize), me.realFontSize, me.colorL, me.alpha, me.allowColors);
+ draw_Text(me.realOrigin, draw_TextShortenToWidth(t, (1 - me.keepspaceLeft - me.keepspaceRight), me.allowColors, fs), fs, me.colorL, me.alpha, me.allowColors);
else if(me.allowWrap) // FIXME allowWrap incompatible with align != 0
{
getWrappedLine_remaining = t;
while(getWrappedLine_remaining)
{
if (me.allowColors)
- t = getWrappedLine((1 - me.keepspaceLeft - me.keepspaceRight), me.realFontSize, draw_TextWidth_WithColors);
+ t = getWrappedLine((1 - me.keepspaceLeft - me.keepspaceRight), fs, draw_TextWidth_WithColors);
else
- t = getWrappedLine((1 - me.keepspaceLeft - me.keepspaceRight), me.realFontSize, draw_TextWidth_WithoutColors);
- draw_Text(o, t, me.realFontSize, me.colorL, me.alpha, me.allowColors);
+ t = getWrappedLine((1 - me.keepspaceLeft - me.keepspaceRight), fs, draw_TextWidth_WithoutColors);
+ draw_Text(o, t, fs, me.colorL, me.alpha, me.allowColors);
o_y += me.realFontSize_y;
}
}
else
- draw_Text(me.realOrigin, t, me.realFontSize, me.colorL, me.alpha, me.allowColors);
+ draw_Text(me.realOrigin, t, fs, me.colorL, me.alpha, me.allowColors);
+
+ draw_fontscale = dfs;
}
}
#endif
oldshift = draw_shift;
oldscale = draw_scale;
absSize = boxToGlobalSize(me.size, eX * (1 - me.controlWidth) + eY * me.itemHeight);
+ draw_scale = boxToGlobalSize(eX * (1 - me.controlWidth) + eY * me.itemHeight, oldscale);
for(i = floor(me.scrollPos / me.itemHeight); i < me.nItems; ++i)
{
float y;
if(y >= 1)
break;
draw_shift = boxToGlobal(eY * y, oldshift, oldscale);
- draw_scale = boxToGlobalSize(eY * me.itemHeight + eX * (1 - me.controlWidth), oldscale);
me.drawListBoxItem(me, i, absSize, (me.selectedItem == i));
}
draw_ClearClip();
void ListBox_drawListBoxItem(entity me, float i, vector absSize, float selected)
{
- draw_Text('0 0 0', strcat("Item ", ftos(i)), eX * (8 / absSize_x) + eY * (8 / absSize_y), (selected ? '0 1 0' : '1 1 1'), 1, 0);
+ draw_Text('0 0 0', sprintf(_("Item %d"), i), eX * (8 / absSize_x) + eY * (8 / absSize_y), (selected ? '0 1 0' : '1 1 1'), 1, 0);
}
#endif
me.animationState = 0;
}
- //print(ftos(me.animationState), "\n");
-
f = min(1, frametime * 5);
switch(me.animationState)
{
METHOD(Slider, mousePress, float(entity, vector))
METHOD(Slider, mouseDrag, float(entity, vector))
METHOD(Slider, mouseRelease, float(entity, vector))
+ METHOD(Slider, focusEnter, void(entity))
METHOD(Slider, valueToText, string(entity, float))
METHOD(Slider, toString, string(entity))
METHOD(Slider, setValue, void(entity, float))
void Slider_setValue(entity me, float val)
{
if (me.animated) {
- anim.stopObjAnim(anim, me);
anim.removeObjAnim(anim, me);
makeHostedEasing(me, Slider_setSliderValue, easingQuadInOut, 1, me.sliderValue, val);
} else {
}
string Slider_toString(entity me)
{
- return strcat(ftos(me.value), " (", me.valueToText(me, me.value), ")");
+ return sprintf(_("%d (%s)"), me.value, me.valueToText(me, me.value));
}
void Slider_resizeNotify(entity me, vector relOrigin, vector relSize, vector absOrigin, vector absSize)
{
if(me.disabled)
return 0;
- anim.finishObjAnim(anim, me);
+ anim.removeObjAnim(anim, me);
animed = me.animated;
me.animated = false;
//me.mouseDrag(me, pos);
}
}
- if(cvar("menu_sounds"))
- localsound("sound/misc/menu2.wav");
return 1;
}
float Slider_mouseRelease(entity me, vector pos)
me.pressed = 0;
if(me.disabled)
return 0;
+ if(cvar("menu_sounds"))
+ localsound("sound/misc/menu2.wav");
return 1;
}
void Slider_showNotify(entity me)
{
me.focusable = !me.disabled;
}
+void Slider_focusEnter(entity me)
+{
+ if(cvar("menu_sounds") > 1)
+ localsound("sound/misc/menu1.wav");
+ SUPER(Slider).focusEnter(me);
+}
void Slider_draw(entity me)
{
float controlLeft;
string TextSlider_valueToText(entity me, float val)
{
if(val >= me.nValues)
- return "custom";
+ return _("custom");
if(val < 0)
- return "custom";
+ return _("custom");
return me.(valueStrings[val]);
}
void TextSlider_setValueFromIdentifier(entity me, string id)
//////////////////////////////////////////////////
// AK FIXME: Create perhaps a special builtin file for the common cmds
-//#define PROFILESTRZONE
-//#define FIXEDFOPEN
-
float checkextension(string ext) = #1;
// error cmds
float pow(float a, float b) = #46;
void copyentity(entity src, entity dst) = #47;
-#ifdef FIXEDFOPEN
-float _fopen( string filename, float mode ) = #48;
-#else
float fopen(string filename, float mode) = #48;
-#endif
void fclose(float fhandle) = #49;
string fgets(float fhandle) = #50;
void fputs(float fhandle, string s) = #51;
vector stov(string s) = #55;
-#ifdef PROFILESTRZONE
-string _strzone(string s) = #56;
-void _strunzone(string s) = #57;
-
-string( string s ) strzone =
-{
- return _strzone( s );
-};
-
-void( string s ) strunzone =
-{
- return _strunzone( s );
-};
-#else
string strzone(string s) = #56;
void strunzone(string s) = #57;
-#endif
float tokenize(string s) = #58;
float(string s, string separator1, ...) tokenizebyseparator = #479;
string(float uselocaltime, string format, ...) strftime = #478;
-#ifdef FIXEDFOPEN
-float fopen( string filename, float mode ) =
-{
- local float handle;
- if( mode == FILE_READ ) {
- return _fopen( filename, mode );
- }
-
- // check for data/
- filename = strzone( filename );
- if( substring( filename, 0, 5 ) != "data/" ) {
- print( "menu: fopen: all output must go into data/!\n" );
- return -1;
- }
- handle = _fopen( substring( filename, 5, 10000 ), mode );
- strunzone( filename );
- return handle;
-};
-#endif
-
float(string s) tokenize_console = #514;
float(float i) argv_start_index = #515;
float(float i) argv_end_index = #516;
void() m_init =
{
cvar_set("_menu_alpha", "0");
+ prvm_language = strzone(cvar_string("prvm_language"));
check_unacceptable_compiler_bugs();
#ifdef WATERMARK
- print("^4MQC Build information: ", WATERMARK(), "\n");
+ print(sprintf(_("^4MQC Build information: ^1%s\n"), WATERMARK()));
#endif
// list all game dirs (TEST)
s = getgamedirinfo(i, GETGAMEDIRINFO_NAME);
if not(s)
break;
- print(s, ": ", getgamedirinfo(i, GETGAMEDIRINFO_DESCRIPTION));
+ dprint(s, ": ", getgamedirinfo(i, GETGAMEDIRINFO_DESCRIPTION));
}
}
}
if(cvar_string("menu_skin") != "")
{
draw_currentSkin = strcat("gfx/menu/", cvar_string("menu_skin"));
- fh = fopen(strcat(draw_currentSkin, "/skinvalues.txt"), FILE_READ);
+ fh = fopen(language_filename(strcat(draw_currentSkin, "/skinvalues.txt")), FILE_READ);
}
if(fh < 0)
if(cvar_defstring("menu_skin") != "")
{
draw_currentSkin = strcat("gfx/menu/", cvar_defstring("menu_skin"));
- fh = fopen(strcat(draw_currentSkin, "/skinvalues.txt"), FILE_READ);
+ fh = fopen(language_filename(strcat(draw_currentSkin, "/skinvalues.txt")), FILE_READ);
}
if(fh < 0)
{
draw_currentSkin = "gfx/menu/default";
- fh = fopen(strcat(draw_currentSkin, "/skinvalues.txt"), FILE_READ);
+ fh = fopen(language_filename(strcat(draw_currentSkin, "/skinvalues.txt")), FILE_READ);
}
draw_currentSkin = strzone(draw_currentSkin);
while((s = fgets(fh)))
if(mouseButtonsPressed < 0)
{
mouseButtonsPressed = 0;
- print("Warning: released an already released button\n");
+ dprint("Warning: released an already released button\n");
}
}
if(key == K_ALT) menuShiftState -= (menuShiftState & S_ALT);
if(mouseButtonsPressed > 10)
{
mouseButtonsPressed = 10;
- print("Warning: pressed an already pressed button\n");
+ dprint("Warning: pressed an already pressed button\n");
}
}
if(key == K_ALT) menuShiftState |= S_ALT;
return FALSE;
if(tooltippos_y + menuTooltipSize_y > 1)
return FALSE;
- /*
- menuTooltipOrigin_x = rint(tooltippos_x * cvar("vid_width")) / cvar("vid_width");
- menuTooltipOrigin_y = rint(tooltippos_y * cvar("vid_height")) / cvar("vid_height");
- menuTooltipOrigin_z = 0;
- */
menuTooltipOrigin = tooltippos;
return TRUE;
}
vector avoidplus, avoidminus;
vector v;
- avoidplus_x = (SKINAVOID_TOOLTIP_x + SKINSIZE_CURSOR_x - SKINOFFSET_CURSOR_x) / conwidth;
- avoidplus_y = (SKINAVOID_TOOLTIP_y + SKINSIZE_CURSOR_y - SKINOFFSET_CURSOR_y) / conheight;
+ avoidplus_x = (SKINAVOID_TOOLTIP_x + SKINSIZE_CURSOR_x - SKINOFFSET_CURSOR_x * SKINSIZE_CURSOR_x) / conwidth;
+ avoidplus_y = (SKINAVOID_TOOLTIP_y + SKINSIZE_CURSOR_y - SKINOFFSET_CURSOR_y * SKINSIZE_CURSOR_y) / conheight;
avoidplus_z = 0;
- avoidminus_x = (SKINAVOID_TOOLTIP_x + SKINOFFSET_CURSOR_x) / conwidth + menuTooltipSize_x;
- avoidminus_y = (SKINAVOID_TOOLTIP_y + SKINOFFSET_CURSOR_y) / conheight + menuTooltipSize_y;
+ avoidminus_x = (SKINAVOID_TOOLTIP_x + SKINOFFSET_CURSOR_x * SKINSIZE_CURSOR_x) / conwidth + menuTooltipSize_x;
+ avoidminus_y = (SKINAVOID_TOOLTIP_y + SKINOFFSET_CURSOR_y * SKINSIZE_CURSOR_y) / conheight + menuTooltipSize_y;
avoidminus_z = 0;
// bottom right
if(Menu_Active)
if(!cvar("menu_video_played"))
{
- localcmd("set menu_video_played 1; cd loop $menu_cdtrack; play sound/announcer/default/welcome.ogg\n");
- menuLogoAlpha = -0.8; // no idea why, but when I start this at zero, it jumps instead of fading
+ localcmd("cd loop $menu_cdtrack; play sound/announcer/default/welcome.ogg\n");
+ menuLogoAlpha = -0.8; // no idea why, but when I start this at zero, it jumps instead of fading FIXME
}
+ // ALWAYS set this cvar; if we start but menu is not active, this means we want no background music!
+ localcmd("set menu_video_played 1\n");
}
t = gettime();
}
else
{
- e = findstring(NULL, name, itemname);
+ for(e = NULL; (e = findstring(e, name, itemname)); )
+ if(e.classname != "vtbl")
+ break;
if(e)
{
m_hide();
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 skin selector (no idea how to do it now)
+ // TODO add code to switch back to the video settings (no idea how to do it now)
m_goto("videosettings");
}
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 Object_vtbl;
.string vtblname;
.entity vtblbase;
+// THIS LINE INTENTIONALLY LEFT BLANK
entity spawnVtbl(entity e, entity b)
{
entity v;
../common/items.qc
../warpzonelib/mathlib.qc
+
+../common/if-this-file-errors-scroll-up-and-fix-the-warnings.fteqccfail
while(<DATA>)
{
chomp;
- if(/^\s*(?:SKINFLOAT|SKINVECTOR)\(([A-Z_]+), ([-'0-9. ]+)\);$/)
+ if(/^\s*(?:SKINFLOAT|SKINVECTOR)\(([A-Z_]+), ([-'0-9. ]+)\);$/) #'
{
printf "%-31s %s\n", $1, $2;
}
SKINVECTOR(AVOID_TOOLTIP, '8 8 0');
// the individual dialog background colors
+ SKINVECTOR(COLOR_DIALOG_FIRSTRUN, '0.7 0.7 1');
SKINVECTOR(COLOR_DIALOG_MULTIPLAYER, '0.7 0.7 1');
SKINVECTOR(COLOR_DIALOG_SETTINGS, '0.7 0.7 1');
SKINVECTOR(COLOR_DIALOG_TEAMSELECT, '1 1 1');
SKINVECTOR(COLOR_DIALOG_SINGLEPLAYER, '1 1 0.7');
SKINVECTOR(COLOR_DIALOG_CREDITS, '0.7 0.7 1');
SKINVECTOR(COLOR_DIALOG_WEAPONS, '1 0.7 0.7');
- SKINVECTOR(COLOR_DIALOG_RADAR, '0.7 0.7 1');
+ SKINVECTOR(COLOR_DIALOG_WAYPOINTS, '0.7 0.7 1');
SKINVECTOR(COLOR_DIALOG_SERVERINFO, '0.7 0.7 1');
SKINVECTOR(COLOR_DIALOG_CVARS, '1 0 0');
SKINVECTOR(COLOR_BUTTON_C, '1 1 1');
SKINVECTOR(COLOR_BUTTON_F, '1 1 1');
SKINVECTOR(COLOR_BUTTON_D, '1 1 1');
+ SKINFLOAT(MARGIN_BUTTON, 0.5);
// item: campaign
SKINFLOAT(ALPHA_CAMPAIGN_SELECTABLE, 0.8);
//#define SKINSTRING(name,def) case #name: break
#define SKINSTRING(name,def) case #name: SKIN##name = strzone(value); break
// I know this leaks memory when skin is read multiple times. Screw it.
-#define SKINEND case "": break; case "//": break; default: print("Invalid key in skin file: ", key, "\n"); } }
+#define SKINEND case "": break; case "//": break; default: dprint("Invalid key in skin file: ", key, "\n"); } }
#include "skin-customizables.inc"
#undef SKINEND
#undef SKINSTRING
ATTRIB(XonoticButton, colorD, vector, SKINCOLOR_BUTTON_D)
ATTRIB(XonoticButton, alpha, float, SKINALPHA_TEXT)
ATTRIB(XonoticButton, disabledAlpha, float, SKINALPHA_DISABLED)
+ ATTRIB(XonoticButton, marginLeft, float, SKINMARGIN_BUTTON) // chars
+ ATTRIB(XonoticButton, marginRight, float, SKINMARGIN_BUTTON) // chars
ENDCLASS(XonoticButton)
entity makeXonoticButton(string theText, vector theColor);
#endif
if(i <= me.campaignIndex)
s = campaign_shortdesc[i]; // fteqcc sucks
else
- s = "???";
- s = draw_TextShortenToWidth(strcat("Level ", ftos(i + 1), ": ", s), me.columnNameSize, 0, me.realFontSize);
+ s = _("???");
+ s = draw_TextShortenToWidth(sprintf(_("Level %d: %s"), i+1, s), me.columnNameSize, 0, me.realFontSize);
draw_Text(me.realUpperMargin1 * eY + (me.columnNameOrigin + 0.00 * (me.columnNameSize - draw_TextWidth(s, 0, me.realFontSize))) * eX, s, me.realFontSize, theColor, theAlpha, 0);
if(i <= me.campaignIndex)
{
me.configureXonoticListBox(me);
// load the file
- me.bufferIndex = buf_load("xonotic-credits.txt");
+ me.bufferIndex = buf_load(language_filename("xonotic-credits.txt"));
+ if(me.bufferIndex < 0)
+ me.bufferIndex = buf_load("xonotic-credits.txt");
me.nItems = buf_getsize(me.bufferIndex);
}
void XonoticCreditsList_destroy(entity me)
void CvarList_Filter_Change(entity box, entity me);
void CvarList_Value_Change(entity box, entity me);
void CvarList_Revert_Click(entity btn, entity me);
+void CvarList_End_Editing(entity box, entity me);
#endif
#ifdef IMPLEMENTATION
t = cvar_type(me.cvarName);
me.cvarType = "";
if(t & CVAR_TYPEFLAG_SAVED)
- me.cvarType = strcat(me.cvarType, ", will be saved to config.cfg");
+ me.cvarType = strcat(me.cvarType, ", ", _("will be saved to config.cfg"));
else
- me.cvarType = strcat(me.cvarType, ", will not be saved");
+ me.cvarType = strcat(me.cvarType, ", ", _("will not be saved"));
if(t & CVAR_TYPEFLAG_PRIVATE)
- me.cvarType = strcat(me.cvarType, ", private");
+ me.cvarType = strcat(me.cvarType, ", ", _("private"));
if(t & CVAR_TYPEFLAG_ENGINE)
- me.cvarType = strcat(me.cvarType, ", engine setting");
+ me.cvarType = strcat(me.cvarType, ", ", _("engine setting"));
if(t & CVAR_TYPEFLAG_READONLY)
- me.cvarType = strcat(me.cvarType, ", read only");
+ me.cvarType = strcat(me.cvarType, ", ", _("read only"));
me.cvarType = strzone(substring(me.cvarType, 2, strlen(me.cvarType) - 2));
me.cvarNameBox.setText(me.cvarNameBox, me.cvarName);
me.cvarValueBox.cursorPos = strlen(me.cvarDefault);
}
+void CvarList_End_Editing(entity box, entity me)
+{
+ box.parent.setFocus(box.parent, me);
+}
+
#endif
// still to be customized by user
/*
ATTRIB(XonoticDialog, closable, float, 1)
- ATTRIB(XonoticDialog, title, string, "Form1") // ;)
+ ATTRIB(XonoticDialog, title, string, _("Form1")) // ;)
ATTRIB(XonoticDialog, color, vector, '1 0.5 1')
ATTRIB(XonoticDialog, intendedWidth, float, 0)
ATTRIB(XonoticDialog, rows, float, 3)
CLASS(XonoticCreditsDialog) EXTENDS(XonoticDialog)
METHOD(XonoticCreditsDialog, fill, void(entity))
METHOD(XonoticCreditsDialog, focusEnter, void(entity))
- ATTRIB(XonoticCreditsDialog, title, string, "Credits")
+ ATTRIB(XonoticCreditsDialog, title, string, _("Credits"))
ATTRIB(XonoticCreditsDialog, color, vector, SKINCOLOR_DIALOG_CREDITS)
ATTRIB(XonoticCreditsDialog, intendedWidth, float, SKINWIDTH_CREDITS)
ATTRIB(XonoticCreditsDialog, rows, float, SKINROWS_CREDITS)
me.TR(me);
me.TD(me, me.rows - 1, me.columns, me.creditsList = makeXonoticCreditsList());
me.gotoRC(me, me.rows - 1, 0);
- me.TD(me, 1, me.columns, e = makeXonoticButton("OK", '0 0 0'));
+ me.TD(me, 1, me.columns, e = makeXonoticButton(_("OK"), '0 0 0'));
e.onClick = Dialog_Close;
e.onClickEntity = me;
}
--- /dev/null
+#ifdef INTERFACE
+CLASS(XonoticFirstRunDialog) EXTENDS(XonoticRootDialog)
+ METHOD(XonoticFirstRunDialog, fill, void(entity)) // to be overridden by user to fill the dialog with controls
+ ATTRIB(XonoticFirstRunDialog, title, string, _("Welcome"))
+ ATTRIB(XonoticFirstRunDialog, color, vector, SKINCOLOR_DIALOG_FIRSTRUN)
+ ATTRIB(XonoticFirstRunDialog, intendedWidth, float, 0.6)
+ ATTRIB(XonoticFirstRunDialog, rows, float, 15)
+ ATTRIB(XonoticFirstRunDialog, columns, float, 3)
+ ATTRIB(XonoticFirstRunDialog, name, string, "FirstRun")
+ ATTRIB(XonoticFirstRunDialog, playerNameLabel, entity, NULL)
+ ATTRIB(XonoticFirstRunDialog, playerNameLabelAlpha, float, 0)
+
+ ATTRIB(XonoticFirstRunDialog, closable, float, 0)
+ENDCLASS(XonoticFirstRunDialog)
+#endif
+
+#ifdef IMPLEMENTATION
+float CheckFirstRunButton(entity me)
+{
+ if(cvar_string("_cl_name") != "Player")
+ return 1;
+ if(cvar_string("prvm_language") != prvm_language)
+ return 1; // OK will then reopen the dialog in another language
+ return 0;
+}
+
+void XonoticFirstRunDialog_fill(entity me)
+{
+ entity e;
+ entity label, box;
+
+ me.TR(me);
+ me.TD(me, 2, 3, e = makeXonoticTextLabel(0, _("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.")));
+ e.allowWrap = 1;
+ me.TR(me);
+
+ me.TR(me);
+ me.TD(me, 1, 3, e = makeXonoticTextLabel(0, _("Text language:")));
+ me.TR(me);
+ me.TD(me, 3, 3, e = makeXonoticLanguageList());
+ e.name = "languageselector_firstrun";
+ e.doubleClickCommand = "saveconfig; menu_restart; togglemenu";
+ me.TR(me);
+ me.TR(me);
+
+ me.TR(me);
+ me.TD(me, 1, 0.5, me.playerNameLabel = makeXonoticTextLabel(0, _("Name:")));
+ me.playerNameLabelAlpha = me.playerNameLabel.alpha;
+ me.TD(me, 1, 2.5, label = makeXonoticTextLabel(0, string_null));
+ label.allowCut = 1;
+ label.allowColors = 1;
+ label.alpha = 1;
+ me.TR(me);
+ me.TD(me, 1, 3.0, box = makeXonoticInputBox(1, "_cl_name"));
+ box.forbiddenCharacters = "\r\n\\\"$"; // don't care, isn't getting saved
+ box.maxLength = -127; // negative means encoded length in bytes
+ box.saveImmediately = 1;
+ label.textEntity = box;
+ me.TR(me);
+ me.TD(me, 5, 1, e = makeXonoticColorpicker(box));
+ me.TD(me, 5, 2, e = makeXonoticCharmap(box));
+ me.TR(me);
+ me.TR(me);
+ me.TR(me);
+ me.TR(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));
+ setDependentWeird(e, CheckFirstRunButton);
+}
+#endif
#ifdef INTERFACE
CLASS(XonoticHUDAmmoDialog) EXTENDS(XonoticRootDialog)
METHOD(XonoticHUDAmmoDialog, fill, void(entity))
- ATTRIB(XonoticHUDAmmoDialog, title, string, "Ammo Panel")
+ ATTRIB(XonoticHUDAmmoDialog, title, string, _("Ammo Panel"))
ATTRIB(XonoticHUDAmmoDialog, color, vector, SKINCOLOR_DIALOG_TEAMSELECT)
ATTRIB(XonoticHUDAmmoDialog, intendedWidth, float, 0.4)
ATTRIB(XonoticHUDAmmoDialog, rows, float, 15)
{
entity e;
string panelname = "ammo";
- float i;
+
+ DIALOG_HUDPANEL_COMMON();
me.TR(me);
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_panel_ammo", "Enable panel"));
- me.TR(me);
- me.TD(me, 1, 1.4, e = makeXonoticTextLabel(0, "Background:"));
- me.TD(me, 1, 1.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg"))));
- e.addValue(e, "Default", "");
- e.addValue(e, "Disable", "0");
- e.addValue(e, strzone(strcat("border_", panelname)), strzone(strcat("border_", panelname)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Color:"));
- me.TD(me, 2, 2.4, e = makeXonoticColorpickerString(strzone(strcat("hud_panel_", panelname, "_bg_color")), "hud_panel_bg_color"));
- setDependentStringNotEqual(e, strzone(strcat("hud_panel_", panelname, "_bg_color")), "");
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticCheckBoxString("", "1 1 1", strzone(strcat("hud_panel_", panelname, "_bg_color")), "Use default"));
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Border size:"));
- me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_border"))));
- e.addValue(e, "Default", "");
- e.addValue(e, "Disable", "0");
- for(i = 1; i <= 10; ++i)
- e.addValue(e, strzone(ftos_decimals(i * 2, 0)), strzone(ftos(i * 2)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Alpha:"));
- me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_alpha"))));
- e.addValue(e, "Default", "");
- for(i = 1; i <= 10; ++i)
- e.addValue(e, strzone(ftos_decimals(i/10, 1)), strzone(ftos(i/10)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Team Color:"));
- me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_color_team"))));
- e.addValue(e, "Default", "");
- e.addValue(e, "Disable", "0");
- for(i = 1; i <= 10; ++i)
- e.addValue(e, strzone(ftos_decimals(i/10, 1)), strzone(ftos(i/10)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TDempty(me, 0.4);
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_configure_teamcolorforced", "Test the team color in HUD configure mode"));
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Padding:"));
- me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_padding"))));
- e.addValue(e, "Default", "");
- for(i = 0; i <= 10; ++i)
- e.addValue(e, strzone(ftos_decimals(i - 5, 0)), strzone(ftos(i - 5)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TD(me, 1, 2, e = makeXonoticTextLabel(0, "Ammunition display:"));
+ me.TD(me, 1, 2, e = makeXonoticTextLabel(0, _("Ammunition display:")));
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 2, e = makeXonoticCheckBox(0, "hud_panel_ammo_onlycurrent", "Show only current ammo type"));
+ me.TD(me, 1, 2, e = makeXonoticCheckBox(0, "hud_panel_ammo_onlycurrent", _("Show only current ammo type")));
me.TR(me);
me.TDempty(me, 0.2);
me.TD(me, 1, 1.4, e = makeXonoticTextLabel(0, "Align icon:"));
- me.TD(me, 1, 0.8, e = makeXonoticRadioButton(2, "hud_panel_ammo_iconalign", "0", "Left"));
- me.TD(me, 1, 0.8, e = makeXonoticRadioButton(2, "hud_panel_ammo_iconalign", "1", "Right"));
+ me.TD(me, 1, 0.8, e = makeXonoticRadioButton(2, "hud_panel_ammo_iconalign", "0", _("Left")));
+ me.TD(me, 1, 0.8, e = makeXonoticRadioButton(2, "hud_panel_ammo_iconalign", "1", _("Right")));
}
#endif
#ifdef INTERFACE
CLASS(XonoticHUDChatDialog) EXTENDS(XonoticRootDialog)
METHOD(XonoticHUDChatDialog, fill, void(entity))
- ATTRIB(XonoticHUDChatDialog, title, string, "Chat Panel")
+ ATTRIB(XonoticHUDChatDialog, title, string, _("Chat Panel"))
ATTRIB(XonoticHUDChatDialog, color, vector, SKINCOLOR_DIALOG_TEAMSELECT)
ATTRIB(XonoticHUDChatDialog, intendedWidth, float, 0.4)
ATTRIB(XonoticHUDChatDialog, rows, float, 15)
{
entity e;
string panelname = "chat";
- float i;
+
+ DIALOG_HUDPANEL_COMMON();
me.TR(me);
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_panel_chat", "Enable panel"));
- me.TR(me);
- me.TD(me, 1, 1.4, e = makeXonoticTextLabel(0, "Background:"));
- me.TD(me, 1, 1.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg"))));
- e.addValue(e, "Default", "");
- e.addValue(e, "Disable", "0");
- e.addValue(e, strzone(strcat("border_", panelname)), strzone(strcat("border_", panelname)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Color:"));
- me.TD(me, 2, 2.4, e = makeXonoticColorpickerString(strzone(strcat("hud_panel_", panelname, "_bg_color")), "hud_panel_bg_color"));
- setDependentStringNotEqual(e, strzone(strcat("hud_panel_", panelname, "_bg_color")), "");
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticCheckBoxString("", "1 1 1", strzone(strcat("hud_panel_", panelname, "_bg_color")), "Use default"));
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Border size:"));
- me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_border"))));
- e.addValue(e, "Default", "");
- e.addValue(e, "Disable", "0");
- for(i = 1; i <= 10; ++i)
- e.addValue(e, strzone(ftos_decimals(i * 2, 0)), strzone(ftos(i * 2)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Alpha:"));
- me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_alpha"))));
- e.addValue(e, "Default", "");
- for(i = 1; i <= 10; ++i)
- e.addValue(e, strzone(ftos_decimals(i/10, 1)), strzone(ftos(i/10)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Team Color:"));
- me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_color_team"))));
- e.addValue(e, "Default", "");
- e.addValue(e, "Disable", "0");
- for(i = 1; i <= 10; ++i)
- e.addValue(e, strzone(ftos_decimals(i/10, 1)), strzone(ftos(i/10)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TDempty(me, 0.4);
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_configure_teamcolorforced", "Test the team color in HUD configure mode"));
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Padding:"));
- me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_padding"))));
- e.addValue(e, "Default", "");
- for(i = 0; i <= 10; ++i)
- e.addValue(e, strzone(ftos_decimals(i - 5, 0)), strzone(ftos(i - 5)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TD(me, 1, 2, e = makeXonoticTextLabel(0, "Chat entries:"));
+ me.TD(me, 1, 2, e = makeXonoticTextLabel(0, _("Chat entries:")));
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Chat size:"));
+ me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, _("Chat size:")));
me.TD(me, 1, 2.6, e = makeXonoticSlider(6, 20, 1, "con_chatsize"));
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Chat lifetime:"));
+ me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, _("Chat lifetime:")));
me.TD(me, 1, 2.6, e = makeXonoticSlider(5, 60, 5, "con_chattime"));
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "con_chatsound", "Chat beep sound"));
+ me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "con_chatsound", _("Chat beep sound")));
}
#endif
#ifdef INTERFACE
CLASS(XonoticHUDEngineInfoDialog) EXTENDS(XonoticRootDialog)
METHOD(XonoticHUDEngineInfoDialog, fill, void(entity))
- ATTRIB(XonoticHUDEngineInfoDialog, title, string, "Engine Info Panel")
+ ATTRIB(XonoticHUDEngineInfoDialog, title, string, _("Engine Info Panel"))
ATTRIB(XonoticHUDEngineInfoDialog, color, vector, SKINCOLOR_DIALOG_TEAMSELECT)
ATTRIB(XonoticHUDEngineInfoDialog, intendedWidth, float, 0.4)
ATTRIB(XonoticHUDEngineInfoDialog, rows, float, 15)
{
entity e;
string panelname = "engineinfo";
- float i;
+
+ DIALOG_HUDPANEL_COMMON();
me.TR(me);
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_panel_engineinfo", "Enable panel"));
- me.TR(me);
- me.TD(me, 1, 1.4, e = makeXonoticTextLabel(0, "Background:"));
- me.TD(me, 1, 1.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg"))));
- e.addValue(e, "Default", "");
- e.addValue(e, "Disable", "0");
- e.addValue(e, strzone(strcat("border_", panelname)), strzone(strcat("border_", panelname)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Color:"));
- me.TD(me, 2, 2.4, e = makeXonoticColorpickerString(strzone(strcat("hud_panel_", panelname, "_bg_color")), "hud_panel_bg_color"));
- setDependentStringNotEqual(e, strzone(strcat("hud_panel_", panelname, "_bg_color")), "");
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticCheckBoxString("", "1 1 1", strzone(strcat("hud_panel_", panelname, "_bg_color")), "Use default"));
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Border size:"));
- me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_border"))));
- e.addValue(e, "Default", "");
- e.addValue(e, "Disable", "0");
- for(i = 1; i <= 10; ++i)
- e.addValue(e, strzone(ftos_decimals(i * 2, 0)), strzone(ftos(i * 2)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Alpha:"));
- me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_alpha"))));
- e.addValue(e, "Default", "");
- for(i = 1; i <= 10; ++i)
- e.addValue(e, strzone(ftos_decimals(i/10, 1)), strzone(ftos(i/10)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Team Color:"));
- me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_color_team"))));
- e.addValue(e, "Default", "");
- e.addValue(e, "Disable", "0");
- for(i = 1; i <= 10; ++i)
- e.addValue(e, strzone(ftos_decimals(i/10, 1)), strzone(ftos(i/10)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TDempty(me, 0.4);
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_configure_teamcolorforced", "Test the team color in HUD configure mode"));
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Padding:"));
- me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_padding"))));
- e.addValue(e, "Default", "");
- for(i = 0; i <= 10; ++i)
- e.addValue(e, strzone(ftos_decimals(i - 5, 0)), strzone(ftos(i - 5)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TD(me, 1, 2, e = makeXonoticTextLabel(0, "Engine info:"));
+ me.TD(me, 1, 2, e = makeXonoticTextLabel(0, _("Engine info:")));
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_panel_engineinfo_framecounter_exponentialmovingaverage", "Use an averaging algorithm for fps"));
+ me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_panel_engineinfo_framecounter_exponentialmovingaverage", _("Use an averaging algorithm for fps")));
}
#endif
#ifdef INTERFACE
CLASS(XonoticHUDHealthArmorDialog) EXTENDS(XonoticRootDialog)
METHOD(XonoticHUDHealthArmorDialog, fill, void(entity))
- ATTRIB(XonoticHUDHealthArmorDialog, title, string, "Health/Armor Panel")
+ ATTRIB(XonoticHUDHealthArmorDialog, title, string, _("Health/Armor Panel"))
ATTRIB(XonoticHUDHealthArmorDialog, color, vector, SKINCOLOR_DIALOG_TEAMSELECT)
ATTRIB(XonoticHUDHealthArmorDialog, intendedWidth, float, 0.4)
ATTRIB(XonoticHUDHealthArmorDialog, rows, float, 15)
{
entity e;
string panelname = "healtharmor";
- float i;
+
+ DIALOG_HUDPANEL_COMMON();
me.TR(me);
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_panel_healtharmor", "Enable panel"));
- me.TR(me);
- me.TD(me, 1, 1.4, e = makeXonoticTextLabel(0, "Background:"));
- me.TD(me, 1, 1.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg"))));
- e.addValue(e, "Default", "");
- e.addValue(e, "Disable", "0");
- e.addValue(e, strzone(strcat("border_", panelname)), strzone(strcat("border_", panelname)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Color:"));
- me.TD(me, 2, 2.4, e = makeXonoticColorpickerString(strzone(strcat("hud_panel_", panelname, "_bg_color")), "hud_panel_bg_color"));
- setDependentStringNotEqual(e, strzone(strcat("hud_panel_", panelname, "_bg_color")), "");
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticCheckBoxString("", "1 1 1", strzone(strcat("hud_panel_", panelname, "_bg_color")), "Use default"));
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Border size:"));
- me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_border"))));
- e.addValue(e, "Default", "");
- e.addValue(e, "Disable", "0");
- for(i = 1; i <= 10; ++i)
- e.addValue(e, strzone(ftos_decimals(i * 2, 0)), strzone(ftos(i * 2)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Alpha:"));
- me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_alpha"))));
- e.addValue(e, "Default", "");
- for(i = 1; i <= 10; ++i)
- e.addValue(e, strzone(ftos_decimals(i/10, 1)), strzone(ftos(i/10)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Team Color:"));
- me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_color_team"))));
- e.addValue(e, "Default", "");
- e.addValue(e, "Disable", "0");
- for(i = 1; i <= 10; ++i)
- e.addValue(e, strzone(ftos_decimals(i/10, 1)), strzone(ftos(i/10)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TDempty(me, 0.4);
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_configure_teamcolorforced", "Test the team color in HUD configure mode"));
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Padding:"));
- me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_padding"))));
- e.addValue(e, "Default", "");
- for(i = 0; i <= 10; ++i)
- e.addValue(e, strzone(ftos_decimals(i - 5, 0)), strzone(ftos(i - 5)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_panel_healtharmor_progressbar", "Enable status bar"));
+ me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_panel_healtharmor_progressbar", _("Enable status bar")));
me.TR(me);
- me.TD(me, 1, 2, e = makeXonoticTextLabel(0, "Status bar alignment:"));
+ me.TD(me, 1, 2, e = makeXonoticTextLabel(0, _("Status bar alignment:")));
setDependent(e, "hud_panel_healtharmor_progressbar", 1, 1);
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 0.95, e = makeXonoticRadioButton(2, "hud_panel_healtharmor_baralign", "0", "Left"));
+ me.TD(me, 1, 0.95, e = makeXonoticRadioButton(2, "hud_panel_healtharmor_baralign", "0", _("Left")));
setDependent(e, "hud_panel_healtharmor_progressbar", 1, 1);
- me.TD(me, 1, 0.95, e = makeXonoticRadioButton(2, "hud_panel_healtharmor_baralign", "1", "Right"));
+ me.TD(me, 1, 0.95, e = makeXonoticRadioButton(2, "hud_panel_healtharmor_baralign", "1", _("Right")));
setDependent(e, "hud_panel_healtharmor_progressbar", 1, 1);
- me.TD(me, 1, 0.95, e = makeXonoticRadioButton(2, "hud_panel_healtharmor_baralign", "3", "Inward"));
+ me.TD(me, 1, 0.95, e = makeXonoticRadioButton(2, "hud_panel_healtharmor_baralign", "3", _("Inward")));
setDependent(e, "hud_panel_healtharmor_progressbar", 1, 1);
- me.TD(me, 1, 0.95, e = makeXonoticRadioButton(2, "hud_panel_healtharmor_baralign", "4", "Outward"));
+ me.TD(me, 1, 0.95, e = makeXonoticRadioButton(2, "hud_panel_healtharmor_baralign", "4", _("Outward")));
setDependent(e, "hud_panel_healtharmor_progressbar", 1, 1);
me.TR(me);
- me.TD(me, 1, 2, e = makeXonoticTextLabel(0, "Icon alignment:"));
+ me.TD(me, 1, 2, e = makeXonoticTextLabel(0, _("Icon alignment:")));
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 0.95, e = makeXonoticRadioButton(3, "hud_panel_healtharmor_iconalign", "0", "Left"));
- me.TD(me, 1, 0.95, e = makeXonoticRadioButton(3, "hud_panel_healtharmor_iconalign", "1", "Right"));
- me.TD(me, 1, 0.95, e = makeXonoticRadioButton(3, "hud_panel_healtharmor_iconalign", "3", "Inward"));
- me.TD(me, 1, 0.95, e = makeXonoticRadioButton(3, "hud_panel_healtharmor_iconalign", "4", "Outward"));
+ me.TD(me, 1, 0.95, e = makeXonoticRadioButton(3, "hud_panel_healtharmor_iconalign", "0", _("Left")));
+ me.TD(me, 1, 0.95, e = makeXonoticRadioButton(3, "hud_panel_healtharmor_iconalign", "1", _("Right")));
+ me.TD(me, 1, 0.95, e = makeXonoticRadioButton(3, "hud_panel_healtharmor_iconalign", "3", _("Inward")));
+ me.TD(me, 1, 0.95, e = makeXonoticRadioButton(3, "hud_panel_healtharmor_iconalign", "4", _("Outward")));
me.TR(me);
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_panel_healtharmor_flip", "Flip health and armor positions"));
+ me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_panel_healtharmor_flip", _("Flip health and armor positions")));
}
#endif
#ifdef INTERFACE
CLASS(XonoticHUDInfoMessagesDialog) EXTENDS(XonoticRootDialog)
METHOD(XonoticHUDInfoMessagesDialog, fill, void(entity))
- ATTRIB(XonoticHUDInfoMessagesDialog, title, string, "Info Messages Panel")
+ ATTRIB(XonoticHUDInfoMessagesDialog, title, string, _("Info Messages Panel"))
ATTRIB(XonoticHUDInfoMessagesDialog, color, vector, SKINCOLOR_DIALOG_TEAMSELECT)
ATTRIB(XonoticHUDInfoMessagesDialog, intendedWidth, float, 0.4)
ATTRIB(XonoticHUDInfoMessagesDialog, rows, float, 15)
{
entity e;
string panelname = "infomessages";
- float i;
+
+ DIALOG_HUDPANEL_COMMON();
me.TR(me);
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_panel_infomessages", "Enable panel"));
- me.TR(me);
- me.TD(me, 1, 1.4, e = makeXonoticTextLabel(0, "Background:"));
- me.TD(me, 1, 1.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg"))));
- e.addValue(e, "Default", "");
- e.addValue(e, "Disable", "0");
- e.addValue(e, strzone(strcat("border_", panelname)), strzone(strcat("border_", panelname)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Color:"));
- me.TD(me, 2, 2.4, e = makeXonoticColorpickerString(strzone(strcat("hud_panel_", panelname, "_bg_color")), "hud_panel_bg_color"));
- setDependentStringNotEqual(e, strzone(strcat("hud_panel_", panelname, "_bg_color")), "");
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticCheckBoxString("", "1 1 1", strzone(strcat("hud_panel_", panelname, "_bg_color")), "Use default"));
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Border size:"));
- me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_border"))));
- e.addValue(e, "Default", "");
- e.addValue(e, "Disable", "0");
- for(i = 1; i <= 10; ++i)
- e.addValue(e, strzone(ftos_decimals(i * 2, 0)), strzone(ftos(i * 2)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Alpha:"));
- me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_alpha"))));
- e.addValue(e, "Default", "");
- for(i = 1; i <= 10; ++i)
- e.addValue(e, strzone(ftos_decimals(i/10, 1)), strzone(ftos(i/10)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Team Color:"));
- me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_color_team"))));
- e.addValue(e, "Default", "");
- e.addValue(e, "Disable", "0");
- for(i = 1; i <= 10; ++i)
- e.addValue(e, strzone(ftos_decimals(i/10, 1)), strzone(ftos(i/10)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TDempty(me, 0.4);
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_configure_teamcolorforced", "Test the team color in HUD configure mode"));
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Padding:"));
- me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_padding"))));
- e.addValue(e, "Default", "");
- for(i = 0; i <= 10; ++i)
- e.addValue(e, strzone(ftos_decimals(i - 5, 0)), strzone(ftos(i - 5)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TD(me, 1, 2, e = makeXonoticTextLabel(0, "Info messages:"));
+ me.TD(me, 1, 2, e = makeXonoticTextLabel(0, _("Info messages:")));
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_panel_infomessages_flip", "Flip align"));
+ me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_panel_infomessages_flip", _("Flip align")));
}
#endif
#ifdef INTERFACE
CLASS(XonoticHUDModIconsDialog) EXTENDS(XonoticRootDialog)
METHOD(XonoticHUDModIconsDialog, fill, void(entity))
- ATTRIB(XonoticHUDModIconsDialog, title, string, "Mod Icons Panel")
+ ATTRIB(XonoticHUDModIconsDialog, title, string, _("Mod Icons Panel"))
ATTRIB(XonoticHUDModIconsDialog, color, vector, SKINCOLOR_DIALOG_TEAMSELECT)
ATTRIB(XonoticHUDModIconsDialog, intendedWidth, float, 0.4)
ATTRIB(XonoticHUDModIconsDialog, rows, float, 15)
{
entity e;
string panelname = "modicons";
- float i;
- me.TR(me);
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_panel_modicons", "Enable panel"));
- me.TR(me);
- me.TD(me, 1, 1.4, e = makeXonoticTextLabel(0, "Background:"));
- me.TD(me, 1, 1.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg"))));
- e.addValue(e, "Default", "");
- e.addValue(e, "Disable", "0");
- e.addValue(e, strzone(strcat("border_", panelname)), strzone(strcat("border_", panelname)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Color:"));
- me.TD(me, 2, 2.4, e = makeXonoticColorpickerString(strzone(strcat("hud_panel_", panelname, "_bg_color")), "hud_panel_bg_color"));
- setDependentStringNotEqual(e, strzone(strcat("hud_panel_", panelname, "_bg_color")), "");
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticCheckBoxString("", "1 1 1", strzone(strcat("hud_panel_", panelname, "_bg_color")), "Use default"));
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Border size:"));
- me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_border"))));
- e.addValue(e, "Default", "");
- e.addValue(e, "Disable", "0");
- for(i = 1; i <= 10; ++i)
- e.addValue(e, strzone(ftos_decimals(i * 2, 0)), strzone(ftos(i * 2)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Alpha:"));
- me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_alpha"))));
- e.addValue(e, "Default", "");
- for(i = 1; i <= 10; ++i)
- e.addValue(e, strzone(ftos_decimals(i/10, 1)), strzone(ftos(i/10)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Team Color:"));
- me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_color_team"))));
- e.addValue(e, "Default", "");
- e.addValue(e, "Disable", "0");
- for(i = 1; i <= 10; ++i)
- e.addValue(e, strzone(ftos_decimals(i/10, 1)), strzone(ftos(i/10)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TDempty(me, 0.4);
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_configure_teamcolorforced", "Test the team color in HUD configure mode"));
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Padding:"));
- me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_padding"))));
- e.addValue(e, "Default", "");
- for(i = 0; i <= 10; ++i)
- e.addValue(e, strzone(ftos_decimals(i - 5, 0)), strzone(ftos(i - 5)));
- e.configureXonoticTextSliderValues(e);
+ DIALOG_HUDPANEL_COMMON();
}
#endif
#ifdef INTERFACE
CLASS(XonoticHUDNotificationDialog) EXTENDS(XonoticRootDialog)
METHOD(XonoticHUDNotificationDialog, fill, void(entity))
- ATTRIB(XonoticHUDNotificationDialog, title, string, "Notification Panel")
+ ATTRIB(XonoticHUDNotificationDialog, title, string, _("Notification Panel"))
ATTRIB(XonoticHUDNotificationDialog, color, vector, SKINCOLOR_DIALOG_TEAMSELECT)
ATTRIB(XonoticHUDNotificationDialog, intendedWidth, float, 0.4)
ATTRIB(XonoticHUDNotificationDialog, rows, float, 15)
{
entity e;
string panelname = "notify";
- float i;
+
+ DIALOG_HUDPANEL_COMMON();
me.TR(me);
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_panel_notify", "Enable panel"));
- me.TR(me);
- me.TD(me, 1, 1.4, e = makeXonoticTextLabel(0, "Background:"));
- me.TD(me, 1, 1.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg"))));
- e.addValue(e, "Default", "");
- e.addValue(e, "Disable", "0");
- e.addValue(e, strzone(strcat("border_", panelname)), strzone(strcat("border_", panelname)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Color:"));
- me.TD(me, 2, 2.4, e = makeXonoticColorpickerString(strzone(strcat("hud_panel_", panelname, "_bg_color")), "hud_panel_bg_color"));
- setDependentStringNotEqual(e, strzone(strcat("hud_panel_", panelname, "_bg_color")), "");
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticCheckBoxString("", "1 1 1", strzone(strcat("hud_panel_", panelname, "_bg_color")), "Use default"));
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Border size:"));
- me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_border"))));
- e.addValue(e, "Default", "");
- e.addValue(e, "Disable", "0");
- for(i = 1; i <= 10; ++i)
- e.addValue(e, strzone(ftos_decimals(i * 2, 0)), strzone(ftos(i * 2)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Alpha:"));
- me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_alpha"))));
- e.addValue(e, "Default", "");
- for(i = 1; i <= 10; ++i)
- e.addValue(e, strzone(ftos_decimals(i/10, 1)), strzone(ftos(i/10)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Team Color:"));
- me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_color_team"))));
- e.addValue(e, "Default", "");
- e.addValue(e, "Disable", "0");
- for(i = 1; i <= 10; ++i)
- e.addValue(e, strzone(ftos_decimals(i/10, 1)), strzone(ftos(i/10)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TDempty(me, 0.4);
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_configure_teamcolorforced", "Test the team color in HUD configure mode"));
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Padding:"));
- me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_padding"))));
- e.addValue(e, "Default", "");
- for(i = 0; i <= 10; ++i)
- e.addValue(e, strzone(ftos_decimals(i - 5, 0)), strzone(ftos(i - 5)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TD(me, 1, 2, e = makeXonoticTextLabel(0, "Notifications:"));
+ me.TD(me, 1, 2, e = makeXonoticTextLabel(0, _("Notifications:")));
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_panel_notify_print", "Also print notifications to the console"));
+ me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_panel_notify_print", _("Also print notifications to the console")));
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_panel_notify_flip", "Flip notify order"));
+ me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_panel_notify_flip", _("Flip notify order")));
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Entry lifetime:"));
+ me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, _("Entry lifetime:")));
me.TD(me, 1, 2.6, e = makeXonoticSlider(3, 15, 1, "hud_panel_notify_time"));
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Entry fadetime:"));
+ me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, _("Entry fadetime:")));
me.TD(me, 1, 2.6, e = makeXonoticSlider(0.5, 5, 0.5, "hud_panel_notify_fadetime"));
}
#endif
#ifdef INTERFACE
CLASS(XonoticHUDPowerupsDialog) EXTENDS(XonoticRootDialog)
METHOD(XonoticHUDPowerupsDialog, fill, void(entity))
- ATTRIB(XonoticHUDPowerupsDialog, title, string, "Powerups Panel")
+ ATTRIB(XonoticHUDPowerupsDialog, title, string, _("Powerups Panel"))
ATTRIB(XonoticHUDPowerupsDialog, color, vector, SKINCOLOR_DIALOG_TEAMSELECT)
ATTRIB(XonoticHUDPowerupsDialog, intendedWidth, float, 0.4)
ATTRIB(XonoticHUDPowerupsDialog, rows, float, 15)
{
entity e;
string panelname = "powerups";
- float i;
+
+ DIALOG_HUDPANEL_COMMON();
me.TR(me);
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_panel_powerups", "Enable panel"));
- me.TR(me);
- me.TD(me, 1, 1.4, e = makeXonoticTextLabel(0, "Background:"));
- me.TD(me, 1, 1.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg"))));
- e.addValue(e, "Default", "");
- e.addValue(e, "Disable", "0");
- e.addValue(e, strzone(strcat("border_", panelname)), strzone(strcat("border_", panelname)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Color:"));
- me.TD(me, 2, 2.4, e = makeXonoticColorpickerString(strzone(strcat("hud_panel_", panelname, "_bg_color")), "hud_panel_bg_color"));
- setDependentStringNotEqual(e, strzone(strcat("hud_panel_", panelname, "_bg_color")), "");
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticCheckBoxString("", "1 1 1", strzone(strcat("hud_panel_", panelname, "_bg_color")), "Use default"));
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Border size:"));
- me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_border"))));
- e.addValue(e, "Default", "");
- e.addValue(e, "Disable", "0");
- for(i = 1; i <= 10; ++i)
- e.addValue(e, strzone(ftos_decimals(i * 2, 0)), strzone(ftos(i * 2)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Alpha:"));
- me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_alpha"))));
- e.addValue(e, "Default", "");
- for(i = 1; i <= 10; ++i)
- e.addValue(e, strzone(ftos_decimals(i/10, 1)), strzone(ftos(i/10)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Team Color:"));
- me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_color_team"))));
- e.addValue(e, "Default", "");
- e.addValue(e, "Disable", "0");
- for(i = 1; i <= 10; ++i)
- e.addValue(e, strzone(ftos_decimals(i/10, 1)), strzone(ftos(i/10)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TDempty(me, 0.4);
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_configure_teamcolorforced", "Test the team color in HUD configure mode"));
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Padding:"));
- me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_padding"))));
- e.addValue(e, "Default", "");
- for(i = 0; i <= 10; ++i)
- e.addValue(e, strzone(ftos_decimals(i - 5, 0)), strzone(ftos(i - 5)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_panel_powerups_progressbar", "Enable status bar"));
+ me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_panel_powerups_progressbar", _("Enable status bar")));
me.TR(me);
- me.TD(me, 1, 2, e = makeXonoticTextLabel(0, "Status bar alignment:"));
+ me.TD(me, 1, 2, e = makeXonoticTextLabel(0, _("Status bar alignment:")));
setDependent(e, "hud_panel_powerups_progressbar", 1, 1);
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 0.95, e = makeXonoticRadioButton(2, "hud_panel_powerups_baralign", "0", "Left"));
+ me.TD(me, 1, 0.95, e = makeXonoticRadioButton(2, "hud_panel_powerups_baralign", "0", _("Left")));
setDependent(e, "hud_panel_powerups_progressbar", 1, 1);
- me.TD(me, 1, 0.95, e = makeXonoticRadioButton(2, "hud_panel_powerups_baralign", "1", "Right"));
+ me.TD(me, 1, 0.95, e = makeXonoticRadioButton(2, "hud_panel_powerups_baralign", "1", _("Right")));
setDependent(e, "hud_panel_powerups_progressbar", 1, 1);
- me.TD(me, 1, 0.95, e = makeXonoticRadioButton(2, "hud_panel_powerups_baralign", "3", "Inward"));
+ me.TD(me, 1, 0.95, e = makeXonoticRadioButton(2, "hud_panel_powerups_baralign", "3", _("Inward")));
setDependent(e, "hud_panel_powerups_progressbar", 1, 1);
- me.TD(me, 1, 0.95, e = makeXonoticRadioButton(2, "hud_panel_powerups_baralign", "4", "Outward"));
+ me.TD(me, 1, 0.95, e = makeXonoticRadioButton(2, "hud_panel_powerups_baralign", "4", _("Outward")));
setDependent(e, "hud_panel_powerups_progressbar", 1, 1);
me.TR(me);
- me.TD(me, 1, 2, e = makeXonoticTextLabel(0, "Icon alignment:"));
+ me.TD(me, 1, 2, e = makeXonoticTextLabel(0, _("Icon alignment:")));
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 0.95, e = makeXonoticRadioButton(3, "hud_panel_powerups_iconalign", "0", "Left"));
- me.TD(me, 1, 0.95, e = makeXonoticRadioButton(3, "hud_panel_powerups_iconalign", "1", "Right"));
- me.TD(me, 1, 0.95, e = makeXonoticRadioButton(3, "hud_panel_powerups_iconalign", "3", "Inward"));
- me.TD(me, 1, 0.95, e = makeXonoticRadioButton(3, "hud_panel_powerups_iconalign", "4", "Outward"));
+ me.TD(me, 1, 0.95, e = makeXonoticRadioButton(3, "hud_panel_powerups_iconalign", "0", _("Left")));
+ me.TD(me, 1, 0.95, e = makeXonoticRadioButton(3, "hud_panel_powerups_iconalign", "1", _("Right")));
+ me.TD(me, 1, 0.95, e = makeXonoticRadioButton(3, "hud_panel_powerups_iconalign", "3", _("Inward")));
+ me.TD(me, 1, 0.95, e = makeXonoticRadioButton(3, "hud_panel_powerups_iconalign", "4", _("Outward")));
me.TR(me);
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_panel_powerups_flip", "Flip strength and shield positions"));
+ me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_panel_powerups_flip", _("Flip strength and shield positions")));
}
#endif
#ifdef INTERFACE
CLASS(XonoticHUDPressedKeysDialog) EXTENDS(XonoticRootDialog)
METHOD(XonoticHUDPressedKeysDialog, fill, void(entity))
- ATTRIB(XonoticHUDPressedKeysDialog, title, string, "Pressed Keys Panel")
+ ATTRIB(XonoticHUDPressedKeysDialog, title, string, _("Pressed Keys Panel"))
ATTRIB(XonoticHUDPressedKeysDialog, color, vector, SKINCOLOR_DIALOG_TEAMSELECT)
ATTRIB(XonoticHUDPressedKeysDialog, intendedWidth, float, 0.4)
ATTRIB(XonoticHUDPressedKeysDialog, rows, float, 15)
{
entity e;
string panelname = "pressedkeys";
- float i;
me.TR(me);
- me.TD(me, 1, 2, e = makeXonoticTextSlider("hud_panel_pressedkeys"));
- e.addValue(e, "Panel disabled", "0");
- e.addValue(e, "Panel enabled when spectating", "1");
- e.addValue(e, "Panel always enabled", "2");
+ me.TD(me, 1, 4, e = makeXonoticTextSlider("hud_panel_pressedkeys"));
+ e.addValue(e, _("Panel disabled"), "0");
+ e.addValue(e, _("Panel enabled when spectating"), "1");
+ e.addValue(e, _("Panel always enabled"), "2");
e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TD(me, 1, 1.4, e = makeXonoticTextLabel(0, "Background:"));
- me.TD(me, 1, 1.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg"))));
- e.addValue(e, "Default", "");
- e.addValue(e, "Disable", "0");
- e.addValue(e, strzone(strcat("border_", panelname)), strzone(strcat("border_", panelname)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Color:"));
- me.TD(me, 2, 2.4, e = makeXonoticColorpickerString(strzone(strcat("hud_panel_", panelname, "_bg_color")), "hud_panel_bg_color"));
- setDependentStringNotEqual(e, strzone(strcat("hud_panel_", panelname, "_bg_color")), "");
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticCheckBoxString("", "1 1 1", strzone(strcat("hud_panel_", panelname, "_bg_color")), "Use default"));
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Border size:"));
- me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_border"))));
- e.addValue(e, "Default", "");
- e.addValue(e, "Disable", "0");
- for(i = 1; i <= 10; ++i)
- e.addValue(e, strzone(ftos_decimals(i * 2, 0)), strzone(ftos(i * 2)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Alpha:"));
- me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_alpha"))));
- e.addValue(e, "Default", "");
- for(i = 1; i <= 10; ++i)
- e.addValue(e, strzone(ftos_decimals(i/10, 1)), strzone(ftos(i/10)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Team Color:"));
- me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_color_team"))));
- e.addValue(e, "Default", "");
- e.addValue(e, "Disable", "0");
- for(i = 1; i <= 10; ++i)
- e.addValue(e, strzone(ftos_decimals(i/10, 1)), strzone(ftos(i/10)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TDempty(me, 0.4);
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_configure_teamcolorforced", "Test the team color in HUD configure mode"));
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Padding:"));
- me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_padding"))));
- e.addValue(e, "Default", "");
- for(i = 0; i <= 10; ++i)
- e.addValue(e, strzone(ftos_decimals(i - 5, 0)), strzone(ftos(i - 5)));
- e.configureXonoticTextSliderValues(e);
+
+ DIALOG_HUDPANEL_COMMON_NOTOGGLE();
+
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Forced aspect:"));
+ me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, _("Forced aspect:")));
me.TD(me, 1, 2.6, e = makeXonoticSlider(0.2, 4, 0.1, "hud_panel_pressedkeys_aspect"));
}
#endif
#ifdef INTERFACE
CLASS(XonoticHUDRaceTimerDialog) EXTENDS(XonoticRootDialog)
METHOD(XonoticHUDRaceTimerDialog, fill, void(entity))
- ATTRIB(XonoticHUDRaceTimerDialog, title, string, "Race Timer Panel")
+ ATTRIB(XonoticHUDRaceTimerDialog, title, string, _("Race Timer Panel"))
ATTRIB(XonoticHUDRaceTimerDialog, color, vector, SKINCOLOR_DIALOG_TEAMSELECT)
ATTRIB(XonoticHUDRaceTimerDialog, intendedWidth, float, 0.4)
ATTRIB(XonoticHUDRaceTimerDialog, rows, float, 15)
{
entity e;
string panelname = "racetimer";
- float i;
- me.TR(me);
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_panel_racetimer", "Enable panel"));
- me.TR(me);
- me.TD(me, 1, 1.4, e = makeXonoticTextLabel(0, "Background:"));
- me.TD(me, 1, 1.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg"))));
- e.addValue(e, "Default", "");
- e.addValue(e, "Disable", "0");
- e.addValue(e, strzone(strcat("border_", panelname)), strzone(strcat("border_", panelname)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Color:"));
- me.TD(me, 2, 2.4, e = makeXonoticColorpickerString(strzone(strcat("hud_panel_", panelname, "_bg_color")), "hud_panel_bg_color"));
- setDependentStringNotEqual(e, strzone(strcat("hud_panel_", panelname, "_bg_color")), "");
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticCheckBoxString("", "1 1 1", strzone(strcat("hud_panel_", panelname, "_bg_color")), "Use default"));
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Border size:"));
- me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_border"))));
- e.addValue(e, "Default", "");
- e.addValue(e, "Disable", "0");
- for(i = 1; i <= 10; ++i)
- e.addValue(e, strzone(ftos_decimals(i * 2, 0)), strzone(ftos(i * 2)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Alpha:"));
- me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_alpha"))));
- e.addValue(e, "Default", "");
- for(i = 1; i <= 10; ++i)
- e.addValue(e, strzone(ftos_decimals(i/10, 1)), strzone(ftos(i/10)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Team Color:"));
- me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_color_team"))));
- e.addValue(e, "Default", "");
- e.addValue(e, "Disable", "0");
- for(i = 1; i <= 10; ++i)
- e.addValue(e, strzone(ftos_decimals(i/10, 1)), strzone(ftos(i/10)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TDempty(me, 0.4);
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_configure_teamcolorforced", "Test the team color in HUD configure mode"));
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Padding:"));
- me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_padding"))));
- e.addValue(e, "Default", "");
- for(i = 0; i <= 10; ++i)
- e.addValue(e, strzone(ftos_decimals(i - 5, 0)), strzone(ftos(i - 5)));
- e.configureXonoticTextSliderValues(e);
+ DIALOG_HUDPANEL_COMMON();
}
#endif
#ifdef INTERFACE
CLASS(XonoticHUDRadarDialog) EXTENDS(XonoticRootDialog)
METHOD(XonoticHUDRadarDialog, fill, void(entity))
- ATTRIB(XonoticHUDRadarDialog, title, string, "Radar Panel")
+ ATTRIB(XonoticHUDRadarDialog, title, string, _("Radar Panel"))
ATTRIB(XonoticHUDRadarDialog, color, vector, SKINCOLOR_DIALOG_TEAMSELECT)
ATTRIB(XonoticHUDRadarDialog, intendedWidth, float, 0.4)
ATTRIB(XonoticHUDRadarDialog, rows, float, 15)
{
entity e;
string panelname = "radar";
- float i;
me.TR(me);
- me.TD(me, 1, 2, e = makeXonoticTextSlider("hud_panel_radar"));
- e.addValue(e, "Panel disabled", "0");
- e.addValue(e, "Panel enabled in teamgames", "1");
- e.addValue(e, "Panel always enabled", "2");
+ me.TD(me, 1, 4, e = makeXonoticTextSlider("hud_panel_radar"));
+ e.addValue(e, _("Panel disabled"), "0");
+ e.addValue(e, _("Panel enabled in teamgames"), "1");
+ e.addValue(e, _("Panel always enabled"), "2");
e.configureXonoticTextSliderValues(e);
+
+ DIALOG_HUDPANEL_COMMON_NOTOGGLE();
+
me.TR(me);
- me.TD(me, 1, 1.4, e = makeXonoticTextLabel(0, "Background:"));
- me.TD(me, 1, 1.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg"))));
- e.addValue(e, "Default", "");
- e.addValue(e, "Disable", "0");
- e.addValue(e, strzone(strcat("border_", panelname)), strzone(strcat("border_", panelname)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Color:"));
- me.TD(me, 2, 2.4, e = makeXonoticColorpickerString(strzone(strcat("hud_panel_", panelname, "_bg_color")), "hud_panel_bg_color"));
- setDependentStringNotEqual(e, strzone(strcat("hud_panel_", panelname, "_bg_color")), "");
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticCheckBoxString("", "1 1 1", strzone(strcat("hud_panel_", panelname, "_bg_color")), "Use default"));
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Border size:"));
- me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_border"))));
- e.addValue(e, "Default", "");
- e.addValue(e, "Disable", "0");
- for(i = 1; i <= 10; ++i)
- e.addValue(e, strzone(ftos_decimals(i * 2, 0)), strzone(ftos(i * 2)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Alpha:"));
- me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_alpha"))));
- e.addValue(e, "Default", "");
- for(i = 1; i <= 10; ++i)
- e.addValue(e, strzone(ftos_decimals(i/10, 1)), strzone(ftos(i/10)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Team Color:"));
- me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_color_team"))));
- e.addValue(e, "Default", "");
- e.addValue(e, "Disable", "0");
- for(i = 1; i <= 10; ++i)
- e.addValue(e, strzone(ftos_decimals(i/10, 1)), strzone(ftos(i/10)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TDempty(me, 0.4);
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_configure_teamcolorforced", "Test the team color in HUD configure mode"));
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Padding:"));
- me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_padding"))));
- e.addValue(e, "Default", "");
- for(i = 0; i <= 10; ++i)
- e.addValue(e, strzone(ftos_decimals(i - 5, 0)), strzone(ftos(i - 5)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TD(me, 1, 2, e = makeXonoticTextLabel(0, "Radar:"));
+ me.TD(me, 1, 2, e = makeXonoticTextLabel(0, _("Radar:")));
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Alpha:"));
+ me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, _("Alpha:")));
me.TD(me, 1, 2.6, e = makeXonoticSlider(0.1, 1, 0.1, "hud_panel_radar_foreground_alpha"));
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Rotation:"));
+ me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, _("Rotation:")));
me.TD(me, 1, 2.6, e = makeXonoticTextSlider("hud_panel_radar_rotation"));
- e.addValue(e, "Forward", "0");
- e.addValue(e, "West", "1");
- e.addValue(e, "South", "2");
- e.addValue(e, "East", "3");
- e.addValue(e, "North", "4");
+ e.addValue(e, _("Forward"), "0");
+ e.addValue(e, _("West"), "1");
+ e.addValue(e, _("South"), "2");
+ e.addValue(e, _("East"), "3");
+ e.addValue(e, _("North"), "4");
e.configureXonoticTextSliderValues(e);
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Scale:"));
+ me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, _("Scale:")));
me.TD(me, 1, 2.6, e = makeXonoticSlider(1024, 8192, 512, "hud_panel_radar_scale"));
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Zoom mode:"));
- me.TD(me, 1, 1.6, e = makeXonoticTextSlider("hud_panel_radar_zoommode"));
- e.addValue(e, "Zoomed in", "0");
- e.addValue(e, "Zoomed out", "1");
- e.addValue(e, "Always zoomed", "2");
- e.addValue(e, "Never zoomed", "3");
+ me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, _("Zoom mode:")));
+ me.TD(me, 1, 2.6, e = makeXonoticTextSlider("hud_panel_radar_zoommode"));
+ e.addValue(e, _("Zoomed in"), "0");
+ e.addValue(e, _("Zoomed out"), "1");
+ e.addValue(e, _("Always zoomed"), "2");
+ e.addValue(e, _("Never zoomed"), "3");
e.configureXonoticTextSliderValues(e);
}
#endif
#ifdef INTERFACE
CLASS(XonoticHUDScoreDialog) EXTENDS(XonoticRootDialog)
METHOD(XonoticHUDScoreDialog, fill, void(entity))
- ATTRIB(XonoticHUDScoreDialog, title, string, "Score Panel")
+ ATTRIB(XonoticHUDScoreDialog, title, string, _("Score Panel"))
ATTRIB(XonoticHUDScoreDialog, color, vector, SKINCOLOR_DIALOG_TEAMSELECT)
ATTRIB(XonoticHUDScoreDialog, intendedWidth, float, 0.4)
ATTRIB(XonoticHUDScoreDialog, rows, float, 15)
{
entity e;
string panelname = "score";
- float i;
- me.TR(me);
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_panel_score", "Enable panel"));
- me.TR(me);
- me.TD(me, 1, 1.4, e = makeXonoticTextLabel(0, "Background:"));
- me.TD(me, 1, 1.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg"))));
- e.addValue(e, "Default", "");
- e.addValue(e, "Disable", "0");
- e.addValue(e, strzone(strcat("border_", panelname)), strzone(strcat("border_", panelname)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Color:"));
- me.TD(me, 2, 2.4, e = makeXonoticColorpickerString(strzone(strcat("hud_panel_", panelname, "_bg_color")), "hud_panel_bg_color"));
- setDependentStringNotEqual(e, strzone(strcat("hud_panel_", panelname, "_bg_color")), "");
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticCheckBoxString("", "1 1 1", strzone(strcat("hud_panel_", panelname, "_bg_color")), "Use default"));
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Border size:"));
- me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_border"))));
- e.addValue(e, "Default", "");
- e.addValue(e, "Disable", "0");
- for(i = 1; i <= 10; ++i)
- e.addValue(e, strzone(ftos_decimals(i * 2, 0)), strzone(ftos(i * 2)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Alpha:"));
- me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_alpha"))));
- e.addValue(e, "Default", "");
- for(i = 1; i <= 10; ++i)
- e.addValue(e, strzone(ftos_decimals(i/10, 1)), strzone(ftos(i/10)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Team Color:"));
- me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_color_team"))));
- e.addValue(e, "Default", "");
- e.addValue(e, "Disable", "0");
- for(i = 1; i <= 10; ++i)
- e.addValue(e, strzone(ftos_decimals(i/10, 1)), strzone(ftos(i/10)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TDempty(me, 0.4);
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_configure_teamcolorforced", "Test the team color in HUD configure mode"));
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Padding:"));
- me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_padding"))));
- e.addValue(e, "Default", "");
- for(i = 0; i <= 10; ++i)
- e.addValue(e, strzone(ftos_decimals(i - 5, 0)), strzone(ftos(i - 5)));
- e.configureXonoticTextSliderValues(e);
+ DIALOG_HUDPANEL_COMMON();
}
#endif
#ifdef INTERFACE
CLASS(XonoticHUDTimerDialog) EXTENDS(XonoticRootDialog)
METHOD(XonoticHUDTimerDialog, fill, void(entity))
- ATTRIB(XonoticHUDTimerDialog, title, string, "Timer Panel")
+ ATTRIB(XonoticHUDTimerDialog, title, string, _("Timer Panel"))
ATTRIB(XonoticHUDTimerDialog, color, vector, SKINCOLOR_DIALOG_TEAMSELECT)
ATTRIB(XonoticHUDTimerDialog, intendedWidth, float, 0.4)
ATTRIB(XonoticHUDTimerDialog, rows, float, 15)
{
entity e;
string panelname = "timer";
- float i;
+
+ DIALOG_HUDPANEL_COMMON();
me.TR(me);
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_panel_timer", "Enable panel"));
- me.TR(me);
- me.TD(me, 1, 1.4, e = makeXonoticTextLabel(0, "Background:"));
- me.TD(me, 1, 1.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg"))));
- e.addValue(e, "Default", "");
- e.addValue(e, "Disable", "0");
- e.addValue(e, strzone(strcat("border_", panelname)), strzone(strcat("border_", panelname)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Color:"));
- me.TD(me, 2, 2.4, e = makeXonoticColorpickerString(strzone(strcat("hud_panel_", panelname, "_bg_color")), "hud_panel_bg_color"));
- setDependentStringNotEqual(e, strzone(strcat("hud_panel_", panelname, "_bg_color")), "");
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticCheckBoxString("", "1 1 1", strzone(strcat("hud_panel_", panelname, "_bg_color")), "Use default"));
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Border size:"));
- me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_border"))));
- e.addValue(e, "Default", "");
- e.addValue(e, "Disable", "0");
- for(i = 1; i <= 10; ++i)
- e.addValue(e, strzone(ftos_decimals(i * 2, 0)), strzone(ftos(i * 2)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Alpha:"));
- me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_alpha"))));
- e.addValue(e, "Default", "");
- for(i = 1; i <= 10; ++i)
- e.addValue(e, strzone(ftos_decimals(i/10, 1)), strzone(ftos(i/10)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Team Color:"));
- me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_color_team"))));
- e.addValue(e, "Default", "");
- e.addValue(e, "Disable", "0");
- for(i = 1; i <= 10; ++i)
- e.addValue(e, strzone(ftos_decimals(i/10, 1)), strzone(ftos(i/10)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TDempty(me, 0.4);
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_configure_teamcolorforced", "Test the team color in HUD configure mode"));
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Padding:"));
- me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_padding"))));
- e.addValue(e, "Default", "");
- for(i = 0; i <= 10; ++i)
- e.addValue(e, strzone(ftos_decimals(i - 5, 0)), strzone(ftos(i - 5)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TD(me, 1, 2, e = makeXonoticTextLabel(0, "Timer:"));
+ me.TD(me, 1, 2, e = makeXonoticTextLabel(0, _("Timer:")));
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_panel_timer_increment", "Show elapsed time"));
+ me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_panel_timer_increment", _("Show elapsed time")));
}
#endif
#ifdef INTERFACE
CLASS(XonoticHUDVoteDialog) EXTENDS(XonoticRootDialog)
METHOD(XonoticHUDVoteDialog, fill, void(entity))
- ATTRIB(XonoticHUDVoteDialog, title, string, "Vote Panel")
+ ATTRIB(XonoticHUDVoteDialog, title, string, _("Vote Panel"))
ATTRIB(XonoticHUDVoteDialog, color, vector, SKINCOLOR_DIALOG_TEAMSELECT)
ATTRIB(XonoticHUDVoteDialog, intendedWidth, float, 0.4)
ATTRIB(XonoticHUDVoteDialog, rows, float, 15)
{
entity e;
string panelname = "vote";
- float i;
+
+ DIALOG_HUDPANEL_COMMON();
me.TR(me);
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_panel_vote", "Enable panel"));
- me.TR(me);
- me.TD(me, 1, 1.4, e = makeXonoticTextLabel(0, "Background:"));
- me.TD(me, 1, 1.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg"))));
- e.addValue(e, "Default", "");
- e.addValue(e, "Disable", "0");
- e.addValue(e, strzone(strcat("border_", panelname)), strzone(strcat("border_", panelname)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Color:"));
- me.TD(me, 2, 2.4, e = makeXonoticColorpickerString(strzone(strcat("hud_panel_", panelname, "_bg_color")), "hud_panel_bg_color"));
- setDependentStringNotEqual(e, strzone(strcat("hud_panel_", panelname, "_bg_color")), "");
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticCheckBoxString("", "1 1 1", strzone(strcat("hud_panel_", panelname, "_bg_color")), "Use default"));
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Border size:"));
- me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_border"))));
- e.addValue(e, "Default", "");
- e.addValue(e, "Disable", "0");
- for(i = 1; i <= 10; ++i)
- e.addValue(e, strzone(ftos_decimals(i * 2, 0)), strzone(ftos(i * 2)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Alpha:"));
- me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_alpha"))));
- e.addValue(e, "Default", "");
- for(i = 1; i <= 10; ++i)
- e.addValue(e, strzone(ftos_decimals(i/10, 1)), strzone(ftos(i/10)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Team Color:"));
- me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_color_team"))));
- e.addValue(e, "Default", "");
- e.addValue(e, "Disable", "0");
- for(i = 1; i <= 10; ++i)
- e.addValue(e, strzone(ftos_decimals(i/10, 1)), strzone(ftos(i/10)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TDempty(me, 0.4);
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_configure_teamcolorforced", "Test the team color in HUD configure mode"));
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Padding:"));
- me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_padding"))));
- e.addValue(e, "Default", "");
- for(i = 0; i <= 10; ++i)
- e.addValue(e, strzone(ftos_decimals(i - 5, 0)), strzone(ftos(i - 5)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TD(me, 1, 1.4, e = makeXonoticTextLabel(0, "Alpha after voting:"));
+ me.TD(me, 1, 1.4, e = makeXonoticTextLabel(0, _("Alpha after voting:")));
me.TD(me, 1, 2.6, e = makeXonoticSlider(0.1, 1, 0.1, "hud_panel_vote_alreadyvoted_alpha"));
}
#endif
#ifdef INTERFACE
CLASS(XonoticHUDWeaponsDialog) EXTENDS(XonoticRootDialog)
METHOD(XonoticHUDWeaponsDialog, fill, void(entity))
- ATTRIB(XonoticHUDWeaponsDialog, title, string, "Weapons Panel")
+ ATTRIB(XonoticHUDWeaponsDialog, title, string, _("Weapons Panel"))
ATTRIB(XonoticHUDWeaponsDialog, color, vector, SKINCOLOR_DIALOG_TEAMSELECT)
ATTRIB(XonoticHUDWeaponsDialog, intendedWidth, float, 0.4)
ATTRIB(XonoticHUDWeaponsDialog, rows, float, 17)
string panelname = "weapons";
float i;
- me.TR(me);
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_panel_weapons", "Enable panel"));
- me.TR(me);
- me.TD(me, 1, 1.4, e = makeXonoticTextLabel(0, "Background:"));
- me.TD(me, 1, 1.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg"))));
- e.addValue(e, "Default", "");
- e.addValue(e, "Disable", "0");
- e.addValue(e, strzone(strcat("border_", panelname)), strzone(strcat("border_", panelname)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Color:"));
- me.TD(me, 2, 2.4, e = makeXonoticColorpickerString(strzone(strcat("hud_panel_", panelname, "_bg_color")), "hud_panel_bg_color"));
- setDependentStringNotEqual(e, strzone(strcat("hud_panel_", panelname, "_bg_color")), "");
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticCheckBoxString("", cvar_string("hud_panel_bg_color"), strzone(strcat("hud_panel_", panelname, "_bg_color")), "Use default"));
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Border size:"));
- me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_border"))));
- e.addValue(e, "Default", "");
- e.addValue(e, "Disable", "0");
- for(i = 1; i <= 10; ++i)
- e.addValue(e, strzone(ftos_decimals(i * 2, 0)), strzone(ftos(i * 2)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Alpha:"));
- me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_alpha"))));
- e.addValue(e, "Default", "");
- for(i = 1; i <= 10; ++i)
- e.addValue(e, strzone(ftos_decimals(i/10, 1)), strzone(ftos(i/10)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Team Color:"));
- me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_color_team"))));
- e.addValue(e, "Default", "");
- e.addValue(e, "Disable", "0");
- for(i = 1; i <= 10; ++i)
- e.addValue(e, strzone(ftos_decimals(i/10, 1)), strzone(ftos(i/10)));
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TDempty(me, 0.4);
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_configure_teamcolorforced", "Test the team color in HUD configure mode"));
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Padding:"));
- me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_padding"))));
- e.addValue(e, "Default", "");
- for(i = 0; i <= 10; ++i)
- e.addValue(e, strzone(ftos_decimals(i - 5, 0)), strzone(ftos(i - 5)));
- e.configureXonoticTextSliderValues(e);
+ DIALOG_HUDPANEL_COMMON();
+
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Fade out after:"));
+ me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, _("Fade out after:")));
me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_timeout"))));
- e.addValue(e, "Never", "0");
+ e.addValue(e, _("Never"), "0");
for(i = 1; i <= 10; ++i)
- e.addValue(e, strzone(strcat(ftos_decimals(i, 0), "s")), strzone(ftos(i)));
+ e.addValue(e, strzone(sprintf(_("%ds"), i)), strzone(ftos(i)));
e.configureXonoticTextSliderValues(e);
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 1.4, e = makeXonoticTextLabel(0, "Fade effect:"));
- me.TD(me, 1, 0.8, e = makeXonoticRadioButton(3, "hud_panel_weapons_timeout_effect", "0", "None"));
+ me.TD(me, 1, 1.4, e = makeXonoticTextLabel(0, _("Fade effect:")));
+ me.TD(me, 1, 0.8, e = makeXonoticRadioButton(3, "hud_panel_weapons_timeout_effect", "0", ZCTX(_("EF^None"))));
setDependentStringNotEqual(e, strzone(strcat("hud_panel_", panelname, "_timeout")), "0");
- me.TD(me, 1, 0.8, e = makeXonoticRadioButton(3, "hud_panel_weapons_timeout_effect", "1", "Slide"));
+ me.TD(me, 1, 0.8, e = makeXonoticRadioButton(3, "hud_panel_weapons_timeout_effect", "1", _("Slide")));
setDependentStringNotEqual(e, strzone(strcat("hud_panel_", panelname, "_timeout")), "0");
- me.TD(me, 1, 0.8, e = makeXonoticRadioButton(3, "hud_panel_weapons_timeout_effect", "2", "Alpha"));
+ me.TD(me, 1, 0.8, e = makeXonoticRadioButton(3, "hud_panel_weapons_timeout_effect", "2", _("Alpha")));
setDependentStringNotEqual(e, strzone(strcat("hud_panel_", panelname, "_timeout")), "0");
me.TR(me);
- me.TD(me, 1, 2, e = makeXonoticTextLabel(0, "Weapon icons:"));
+ me.TD(me, 1, 2, e = makeXonoticTextLabel(0, _("Weapon icons:")));
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 1.4, e = makeXonoticTextLabel(0, "Show weapon ID as:"));
- me.TD(me, 1, 0.8, e = makeXonoticRadioButton(2, "hud_panel_weapons_label", "0", "None"));
- me.TD(me, 1, 0.8, e = makeXonoticRadioButton(2, "hud_panel_weapons_label", "1", "Number"));
- me.TD(me, 1, 0.8, e = makeXonoticRadioButton(2, "hud_panel_weapons_label", "2", "Bind"));
+ me.TD(me, 1, 1.4, e = makeXonoticTextLabel(0, _("Show weapon ID as:")));
+ me.TD(me, 1, 0.8, e = makeXonoticRadioButton(2, "hud_panel_weapons_label", "0", ZCTX(_("SHOWAS^None"))));
+ me.TD(me, 1, 0.8, e = makeXonoticRadioButton(2, "hud_panel_weapons_label", "1", _("Number")));
+ me.TD(me, 1, 0.8, e = makeXonoticRadioButton(2, "hud_panel_weapons_label", "2", _("Bind")));
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 2, e = makeXonoticCheckBox(0, "hud_panel_weapons_accuracy", "Show Accuracy"));
- me.TD(me, 1, 2, e = makeXonoticCheckBox(0, "hud_panel_weapons_ammo", "Show Ammo"));
+ me.TD(me, 1, 2, e = makeXonoticCheckBox(0, "hud_panel_weapons_accuracy", _("Show Accuracy")));
+ me.TD(me, 1, 2, e = makeXonoticCheckBox(0, "hud_panel_weapons_ammo", _("Show Ammo")));
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Ammo bar color:"));
+ me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, _("Ammo bar color:")));
me.TD(me, 2, 2.4, e = makeXonoticColorpickerString("hud_panel_weapons_ammo_color", "hud_panel_weapons_ammo_color"));
setDependent(e, "hud_panel_weapons_ammo", 1, 1);
me.TR(me);
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 1.4, e = makeXonoticTextLabel(0, "Ammo bar alpha:"));
+ me.TD(me, 1, 1.4, e = makeXonoticTextLabel(0, _("Ammo bar alpha:")));
me.TD(me, 1, 2.6, e = makeXonoticSlider(0.1, 1, 0.1, "hud_panel_weapons_ammo_alpha"));
setDependent(e, "hud_panel_weapons_ammo", 1, 1);
}
#ifdef INTERFACE
CLASS(XonoticHUDExitDialog) EXTENDS(XonoticRootDialog)
METHOD(XonoticHUDExitDialog, fill, void(entity))
- ATTRIB(XonoticHUDExitDialog, title, string, "Panel HUD Setup")
+ ATTRIB(XonoticHUDExitDialog, title, string, _("Panel HUD Setup"))
ATTRIB(XonoticHUDExitDialog, color, vector, SKINCOLOR_DIALOG_TEAMSELECT)
ATTRIB(XonoticHUDExitDialog, intendedWidth, float, 0.4)
ATTRIB(XonoticHUDExitDialog, rows, float, 18)
float i;
me.TR(me);
- me.TD(me, 1, 4, makeXonoticTextLabel(0, "Panel background defaults:"));
+ me.TD(me, 1, 4, makeXonoticTextLabel(0, _("Panel background defaults:")));
me.TR(me);
me.TD(me, 1, 1.4, e = makeXonoticTextLabel(0, "Background:"));
- me.TD(me, 1, 1.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_bg"))));
- e.addValue(e, "Disable", "0");
- e.addValue(e, "border_default", "border_default");
+ me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_bg"))));
+ e.addValue(e, _("Disable"), "0");
+ e.addValue(e, "border_default", "border_default"); // this is a file name!
e.configureXonoticTextSliderValues(e);
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Color:"));
- me.TD(me, 2, 2.4, e = makeXonoticColorpickerString("hud_panel_bg_color", "hud_panel_bg_color"));
+ me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, _("Color:")));
+ me.TD(me, 2, 2.6, e = makeXonoticColorpickerString("hud_panel_bg_color", "hud_panel_bg_color"));
me.TR(me);
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Border size:"));
+ me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, _("Border size:")));
me.TD(me, 1, 2.6, e = makeXonoticTextSlider("hud_panel_bg_border"));
- e.addValue(e, "Disable", "0");
+ e.addValue(e, _("Disable"), "0");
for(i = 1; i <= 10; ++i)
e.addValue(e, strzone(ftos_decimals(i * 2, 0)), strzone(ftos(i * 2)));
e.configureXonoticTextSliderValues(e);
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Alpha:"));
+ me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, _("Alpha:")));
me.TD(me, 1, 2.6, e = makeXonoticTextSlider("hud_panel_bg_alpha"));
for(i = 1; i <= 10; ++i)
e.addValue(e, strzone(ftos_decimals(i/10, 1)), strzone(ftos(i/10)));
e.configureXonoticTextSliderValues(e);
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Team color:"));
+ me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, _("Team color:")));
me.TD(me, 1, 2.6, e = makeXonoticTextSlider("hud_panel_bg_color_team"));
- e.addValue(e, "Disable", "0");
+ e.addValue(e, _("Disable"), "0");
for(i = 1; i <= 10; ++i)
e.addValue(e, strzone(ftos_decimals(i/10, 1)), strzone(ftos(i/10)));
e.configureXonoticTextSliderValues(e);
me.TR(me);
me.TDempty(me, 0.4);
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_configure_teamcolorforced", "Test the team color in HUD configure mode"));
+ me.TD(me, 1, 3.6, e = makeXonoticCheckBox(0, "hud_configure_teamcolorforced", _("Test team color in configure mode")));
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Padding:"));
+ me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, _("Padding:")));
me.TD(me, 1, 2.6, e = makeXonoticTextSlider("hud_panel_bg_padding"));
for(i = 0; i <= 10; ++i)
e.addValue(e, strzone(ftos_decimals(i - 5, 0)), strzone(ftos(i - 5)));
e.configureXonoticTextSliderValues(e);
me.TR(me);
- me.TD(me, 1, 1.4, e = makeXonoticTextLabel(0, "HUD Dock:"));
+ me.TD(me, 1, 1.4, e = makeXonoticTextLabel(0, _("HUD Dock:")));
me.TD(me, 1, 2.6, e = makeXonoticTextSlider("hud_dock"));
- e.addValue(e, "Disable", "0");
- e.addValue(e, "Small", "dock_small");
- e.addValue(e, "Medium", "dock_medium");
- e.addValue(e, "Large", "dock_large");
+ e.addValue(e, ZCTX(_("DOCK^Disabled")), "0");
+ e.addValue(e, ZCTX(_("DOCK^Small")), "dock_small");
+ e.addValue(e, ZCTX(_("DOCK^Medium")), "dock_medium");
+ e.addValue(e, ZCTX(_("DOCK^Large")), "dock_large");
e.configureXonoticTextSliderValues(e);
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Color:"));
- me.TD(me, 2, 2.4, e = makeXonoticColorpickerString("hud_dock_color", "hud_dock_color"));
+ me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, _("Color:")));
+ me.TD(me, 2, 2.6, e = makeXonoticColorpickerString("hud_dock_color", "hud_dock_color"));
me.TR(me);
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Alpha:"));
+ me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, _("Alpha:")));
me.TD(me, 1, 2.6, e = makeXonoticTextSlider("hud_dock_alpha"));
for(i = 1; i <= 10; ++i)
e.addValue(e, strzone(ftos_decimals(i/10, 1)), strzone(ftos(i/10)));
e.configureXonoticTextSliderValues(e);
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Team color:"));
+ me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, _("Team color:")));
me.TD(me, 1, 2.6, e = makeXonoticTextSlider("hud_dock_color_team"));
- e.addValue(e, "Disable", "0");
+ e.addValue(e, _("Disable"), "0");
for(i = 1; i <= 10; ++i)
e.addValue(e, strzone(ftos_decimals(i/10, 1)), strzone(ftos(i/10)));
e.configureXonoticTextSliderValues(e);
me.TR(me);
- me.TD(me, 1, 4, makeXonoticTextLabel(0, "Grid settings:"));
+ me.TD(me, 1, 4, makeXonoticTextLabel(0, _("Grid settings:")));
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_configure_grid", "Snap panels to grid"));
+ me.TD(me, 1, 3.8, e = makeXonoticCheckBox(0, "hud_configure_grid", _("Snap panels to grid")));
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Grid size:"));
- me.TD(me, 1, 0.2, e = makeXonoticTextLabel(0, "X:"));
+ me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, _("Grid size:")));
+ me.TD(me, 1, 0.2, e = makeXonoticTextLabel(0, _("X:")));
me.TD(me, 1, 1.1, e = makeXonoticTextSlider("hud_configure_grid_xsize"));
for(i = 1; i <= 14; ++i)
e.addValue(e, strzone(ftos_decimals(i/200, 3)), strzone(ftos(i/200)));
e.configureXonoticTextSliderValues(e);
setDependent(e, "hud_configure_grid", 1, 1);
- me.TD(me, 1, 0.2, e = makeXonoticTextLabel(0, "Y:"));
+ me.TD(me, 1, 0.2, e = makeXonoticTextLabel(0, _("Y:")));
me.TD(me, 1, 1.1, e = makeXonoticTextSlider("hud_configure_grid_ysize"));
for(i = 1; i <= 14; ++i)
e.addValue(e, strzone(ftos_decimals(i/200, 3)), strzone(ftos(i/200)));
setDependent(e, "hud_configure_grid", 1, 1);
me.gotoRC(me, me.rows - 1, 0);
- me.TD(me, 1, me.columns, e = makeXonoticCommandButton("Exit setup", '0 0 0', "_hud_configure 0", 1));
+ me.TD(me, 1, me.columns, e = makeXonoticCommandButton(_("Exit setup"), '0 0 0', "_hud_configure 0", 1));
}
#endif
#ifdef INTERFACE
CLASS(XonoticMultiplayerDialog) EXTENDS(XonoticDialog)
METHOD(XonoticMultiplayerDialog, fill, void(entity))
- ATTRIB(XonoticMultiplayerDialog, title, string, "Multiplayer")
+ ATTRIB(XonoticMultiplayerDialog, title, string, _("Multiplayer"))
ATTRIB(XonoticMultiplayerDialog, color, vector, SKINCOLOR_DIALOG_MULTIPLAYER)
ATTRIB(XonoticMultiplayerDialog, intendedWidth, float, 0.96)
ATTRIB(XonoticMultiplayerDialog, rows, float, 24)
entity mc, e;
mc = makeXonoticTabController(me.rows - 2);
me.TR(me);
- me.TD(me, 1, 1, e = mc.makeTabButton(mc, "Servers", makeXonoticServerListTab()));
- setDependentStringNotEqual(e, "_cl_name", "Player");
- me.TD(me, 1, 1, e = mc.makeTabButton(mc, "Create", makeXonoticServerCreateTab()));
- setDependentStringNotEqual(e, "_cl_name", "Player");
- me.TD(me, 1, 1, mc.makeTabButton(mc, "Demos", makeXonoticDemoBrowserTab()));
- me.TD(me, 1, 1, e = mc.makeTabButton(mc, "Player Setup", makeXonoticPlayerSettingsTab()));
- if(cvar_string("_cl_name") == "Player")
- e.onClick(e, e.onClickEntity); // lol animation
+ me.TD(me, 1, 1, e = mc.makeTabButton(mc, _("Servers"), makeXonoticServerListTab()));
+ me.TD(me, 1, 1, e = mc.makeTabButton(mc, _("Create"), makeXonoticServerCreateTab()));
+ me.TD(me, 1, 1, mc.makeTabButton(mc, _("Demos"), makeXonoticDemoBrowserTab()));
+ me.TD(me, 1, 1, e = mc.makeTabButton(mc, _("Player Setup"), makeXonoticPlayerSettingsTab()));
me.TR(me);
me.TR(me);
CLASS(XonoticServerCreateTab) EXTENDS(XonoticTab)
METHOD(XonoticServerCreateTab, fill, void(entity))
METHOD(XonoticServerCreateTab, gameTypeChangeNotify, void(entity))
- ATTRIB(XonoticServerCreateTab, title, string, "Create")
+ ATTRIB(XonoticServerCreateTab, title, string, _("Create"))
ATTRIB(XonoticServerCreateTab, intendedWidth, float, 0.9)
ATTRIB(XonoticServerCreateTab, rows, float, 22)
ATTRIB(XonoticServerCreateTab, columns, float, 6.5)
float n;
me.TR(me);
- n = 6;
- me.TD(me, 1, me.columns / n, e = makeXonoticGametypeButton(1, "g_dm", "DM"));
- e0 = e;
- me.TD(me, 1, me.columns / n, e = makeXonoticGametypeButton(1, "g_lms", "LMS"));
- if(e.checked) e0 = NULL;
- me.TD(me, 1, me.columns / n, e = makeXonoticGametypeButton(1, "g_arena", "Arena"));
- if(e.checked) e0 = NULL;
- me.TD(me, 1, me.columns / n, e = makeXonoticGametypeButton(1, "g_keepaway", "Keepaway"));
- if(e.checked) e0 = NULL;
- me.TD(me, 1, me.columns / n, e = makeXonoticGametypeButton(1, "g_race", "Race"));
- if(e.checked) e0 = NULL;
- me.TD(me, 1, me.columns / n, e = makeXonoticGametypeButton(1, "g_cts", "Race CTS"));
- if(e.checked) e0 = NULL;
- me.TR(me);
- n = 9;
- me.TD(me, 1, me.columns / n, e = makeXonoticGametypeButton(1, "g_tdm", "TDM"));
- if(e.checked) e0 = NULL;
- me.TD(me, 1, me.columns / n, e = makeXonoticGametypeButton(1, "g_ctf", "CTF"));
- if(e.checked) e0 = NULL;
- me.TD(me, 1, me.columns / n, e = makeXonoticGametypeButton(1, "g_ca", "CA"));
- if(e.checked) e0 = NULL;
- me.TD(me, 1, me.columns / n, e = makeXonoticGametypeButton(1, "g_freezetag", "Freeze Tag"));
- if(e.checked) e0 = NULL;
- me.TD(me, 1, me.columns / n, e = makeXonoticGametypeButton(1, "g_domination", "Domination"));
- if(e.checked) e0 = NULL;
- me.TD(me, 1, me.columns / n, e = makeXonoticGametypeButton(1, "g_keyhunt", "Key Hunt"));
- if(e.checked) e0 = NULL;
- me.TD(me, 1, me.columns / n, e = makeXonoticGametypeButton(1, "g_assault", "Assault"));
- if(e.checked) e0 = NULL;
- me.TD(me, 1, me.columns / n, e = makeXonoticGametypeButton(1, "g_onslaught", "Onslaught"));
- if(e.checked) e0 = NULL;
- me.TD(me, 1, me.columns / n, e = makeXonoticGametypeButton(1, "g_nexball", "Nexball"));
- if(e.checked) e0 = NULL;
- if(e0)
- {
- //print("NO CHECK\n");
- e0.setChecked(e0, 1);
- }
+ me.TD(me, 1, 3, e = makeXonoticTextLabel(0, _("Game type:")));
+ me.TR(me);
+ me.TD(me, 9, 3, e = makeXonoticGametypeList());
+ me.TR(me);
me.TR(me);
me.TR(me);
- me.mapListBox = makeXonoticMapList();
- me.TD(me, 1, 3, e = makeXonoticTextLabel(0, "Map list:"));
- makeCallback(e, me.mapListBox, me.mapListBox.refilterCallback);
me.TR(me);
- me.TD(me, me.rows - 7, 3, me.mapListBox);
- me.gotoRC(me, me.rows - 3, 0);
- me.TDempty(me, 0.5);
- me.TD(me, 1, 1, e = makeXonoticButton("All", '0 0 0'));
- e.onClick = MapList_All;
- e.onClickEntity = me.mapListBox;
- me.TD(me, 1, 1, e = makeXonoticButton("None", '0 0 0'));
- e.onClick = MapList_None;
- e.onClickEntity = me.mapListBox;
- me.TDempty(me, 0.5);
-
- me.gotoRC(me, 3, 3.5); me.setFirstColumn(me, me.currentColumn);
- me.TD(me, 1, 3, e = makeXonoticTextLabel(0, "Match settings:"));
+ me.TR(me);
+ me.TR(me);
+ me.TR(me);
+ me.TR(me);
+ me.TR(me);
+ me.TD(me, 1, 3, e = makeXonoticTextLabel(0, _("Match settings:")));
me.TR(me);
me.sliderTimelimit = makeXonoticSlider(1.0, 60.0, 0.5, "timelimit_override");
- me.TD(me, 1, 1, e = makeXonoticSliderCheckBox(0, 1, me.sliderTimelimit, "Time limit:"));
+ me.TD(me, 1, 1, e = makeXonoticSliderCheckBox(0, 1, me.sliderTimelimit, _("Time limit:")));
me.TD(me, 1, 2, me.sliderTimelimit);
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 2.8, e = makeXonoticSliderCheckBox(-1, 0, me.sliderTimelimit, "Use map specified default"));
+ me.TD(me, 1, 2.8, e = makeXonoticSliderCheckBox(-1, 0, me.sliderTimelimit, _("Use map specified default")));
me.TR(me);
me.sliderFraglimit = makeXonoticSlider(1.0, 2000.0, 5, "fraglimit_override");
- me.TD(me, 1, 1, e = makeXonoticSliderCheckBox(0, 1, me.sliderFraglimit, "Point limit:"));
+ me.TD(me, 1, 1, e = makeXonoticSliderCheckBox(0, 1, me.sliderFraglimit, _("Point limit:")));
me.checkboxFraglimit = e;
me.TD(me, 1, 2, me.sliderFraglimit);
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 2.8, e = makeXonoticSliderCheckBox(-1, 0, me.sliderFraglimit, "Use map specified default"));
+ me.TD(me, 1, 2.8, e = makeXonoticSliderCheckBox(-1, 0, me.sliderFraglimit, _("Use map specified default")));
me.checkboxFraglimitMapinfo = e;
me.TR(me);
- me.TR(me);
- me.TD(me, 1, 1, e = makeXonoticTextLabel(0, "Player slots:"));
+ me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Player slots:")));
me.TD(me, 1, 2, makeXonoticSlider(1, 32, 1, "menu_maxplayers"));
me.TR(me);
- me.TD(me, 1, 1, e = makeXonoticTextLabel(0, "Number of bots:"));
+ me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Number of bots:")));
me.TD(me, 1, 2, makeXonoticSlider(0, 9, 1, "bot_number"));
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 0.8, e = makeXonoticTextLabel(0, "Bot skill:"));
+ me.TD(me, 1, 0.8, e = makeXonoticTextLabel(0, _("Bot skill:")));
setDependent(e, "bot_number", 0, -1);
me.TD(me, 1, 2, e = makeXonoticTextSlider("skill"));
- e.addValue(e, "Botlike", "0");
- e.addValue(e, "Beginner", "1");
- e.addValue(e, "You will win", "2");
- e.addValue(e, "You can win", "3");
- e.addValue(e, "You might win", "4");
- e.addValue(e, "Advanced", "5");
- e.addValue(e, "Expert", "6");
- e.addValue(e, "Pro", "7");
- e.addValue(e, "Assassin", "8");
- e.addValue(e, "Unhuman", "9");
- e.addValue(e, "Godlike", "10");
+ e.addValue(e, _("Botlike"), "0");
+ e.addValue(e, _("Beginner"), "1");
+ e.addValue(e, _("You will win"), "2");
+ e.addValue(e, _("You can win"), "3");
+ e.addValue(e, _("You might win"), "4");
+ e.addValue(e, _("Advanced"), "5");
+ e.addValue(e, _("Expert"), "6");
+ e.addValue(e, _("Pro"), "7");
+ e.addValue(e, _("Assassin"), "8");
+ e.addValue(e, _("Unhuman"), "9");
+ e.addValue(e, _("Godlike"), "10");
e.configureXonoticTextSliderValues(e);
setDependent(e, "bot_number", 0, -1);
me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 0.8, e = makeXonoticTextLabel(0, "Bot names:"));
- me.TD(me, 1, 0.7, e = makeXonoticInputBox(1, "bot_prefix"));
- setDependent(e, "bot_number", 0, -1);
- me.TD(me, 1, 0.6, e = makeXonoticTextLabel(0.5, "Shadow"));
- setDependent(e, "bot_number", 0, -1);
- me.TD(me, 1, 0.7, e = makeXonoticInputBox(1, "bot_suffix"));
- setDependent(e, "bot_number", 0, -1);
- me.TR(me);
- me.TR(me);
- me.TD(me, 1, 1, e = 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");
- e.addValue(e, "3 choices", "3");
- e.addValue(e, "4 choices", "4");
- e.addValue(e, "5 choices", "5");
- e.addValue(e, "6 choices", "6");
- e.addValue(e, "7 choices", "7");
- e.addValue(e, "8 choices", "8");
- 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.TR(me);
- me.TR(me);
- me.TDempty(me, 0.5);
- me.TD(me, 1, 2, e = makeXonoticButton("Advanced settings...", '0 0 0'));
- e.onClick = DialogOpenButton_Click;
- e.onClickEntity = main.advancedDialog;
- main.advancedDialog.refilterEntity = me.mapListBox;
- me.TR(me);
- me.TR(me);
- me.TD(me, 1, 1, e = makeXonoticButton("Mutators...", '0 0 0'));
+ me.TD(me, 1, 1, e = makeXonoticButton(_("Mutators..."), '0 0 0'));
e.onClick = DialogOpenButton_Click;
e.onClickEntity = main.mutatorsDialog;
main.mutatorsDialog.refilterEntity = me.mapListBox;
me.TD(me, 1, 2, e0 = makeXonoticTextLabel(0, string_null));
e0.textEntity = main.mutatorsDialog;
e0.allowCut = 1;
+ me.TR(me);
+ me.TDempty(me, 0.5);
+ me.TD(me, 1, 2, e = makeXonoticButton(_("Advanced settings..."), '0 0 0'));
+ e.onClick = DialogOpenButton_Click;
+ e.onClickEntity = main.advancedDialog;
+ main.advancedDialog.refilterEntity = me.mapListBox;
+
+ me.gotoRC(me, 0, 3.5); me.setFirstColumn(me, me.currentColumn);
+ me.mapListBox = makeXonoticMapList();
+ me.TD(me, 1, 3, e = makeXonoticTextLabel(0, _("Map list:")));
+ makeCallback(e, me.mapListBox, me.mapListBox.refilterCallback);
+ me.TR(me);
+ me.TD(me, me.rows - 4, 3, me.mapListBox);
+ me.gotoRC(me, me.rows - 3, 3.5);
+ me.TDempty(me, 0.25);
+ me.TD(me, 1, 1.125, e = makeXonoticButton(_("Select all"), '0 0 0'));
+ e.onClick = MapList_All;
+ e.onClickEntity = me.mapListBox;
+ me.TD(me, 1, 1.125, e = makeXonoticButton(_("Select none"), '0 0 0'));
+ e.onClick = MapList_None;
+ e.onClickEntity = me.mapListBox;
+ me.TDempty(me, 0.25);
me.gotoRC(me, me.rows - 1, 0);
- me.TD(me, 1, me.columns, e = makeXonoticButton("Start Multiplayer!", '0 0 0'));
+ me.TD(me, 1, me.columns, e = makeXonoticButton(_("Start Multiplayer!"), '0 0 0'));
e.onClick = MapList_LoadMap;
e.onClickEntity = me.mapListBox;
me.mapListBox.startButton = e;
l2 = me.checkboxFraglimitMapinfo;
switch(gt)
{
- case MAPINFO_TYPE_CTF: GameType_ConfigureSliders(e, l, l2, "Capture limit:", 1, 20, 1, "capturelimit_override"); break;
- case MAPINFO_TYPE_DOMINATION: GameType_ConfigureSliders(e, l, l2, "Point limit:", 50, 500, 10, "g_domination_point_limit"); break;
- case MAPINFO_TYPE_KEYHUNT: GameType_ConfigureSliders(e, l, l2, "Point limit:", 200, 1500, 50, "g_keyhunt_point_limit"); break;
- case MAPINFO_TYPE_RUNEMATCH: GameType_ConfigureSliders(e, l, l2, "Point limit:", 50, 500, 10, "g_runematch_point_limit"); break;
- case MAPINFO_TYPE_LMS: GameType_ConfigureSliders(e, l, l2, "Lives:", 3, 50, 1, "g_lms_lives_override"); break;
- case MAPINFO_TYPE_RACE: GameType_ConfigureSliders(e, l, l2, "Laps:", 1, 25, 1, "g_race_laps_limit"); break;
- case MAPINFO_TYPE_NEXBALL: GameType_ConfigureSliders(e, l, l2, "Goals:", 1, 50, 1, "g_nexball_goallimit"); break;
- case MAPINFO_TYPE_ASSAULT: GameType_ConfigureSliders(e, l, l2, "Point limit:", 50, 500, 10, ""); break;
- case MAPINFO_TYPE_ONSLAUGHT: GameType_ConfigureSliders(e, l, l2, "Point limit:", 50, 500, 10, ""); break;
- case MAPINFO_TYPE_CTS: GameType_ConfigureSliders(e, l, l2, "Point limit:", 50, 500, 10, ""); break;
- default: GameType_ConfigureSliders(e, l, l2, "Frag limit:", 5, 100, 5, "fraglimit_override"); break;
+ case MAPINFO_TYPE_CTF: GameType_ConfigureSliders(e, l, l2, _("Capture limit:"), 1, 20, 1, "capturelimit_override"); break;
+ case MAPINFO_TYPE_DOMINATION: GameType_ConfigureSliders(e, l, l2, _("Point limit:"), 50, 500, 10, "g_domination_point_limit"); break;
+ case MAPINFO_TYPE_KEYHUNT: GameType_ConfigureSliders(e, l, l2, _("Point limit:"), 200, 1500, 50, "g_keyhunt_point_limit"); break;
+ case MAPINFO_TYPE_RUNEMATCH: GameType_ConfigureSliders(e, l, l2, _("Point limit:"), 50, 500, 10, "g_runematch_point_limit"); break;
+ case MAPINFO_TYPE_LMS: GameType_ConfigureSliders(e, l, l2, _("Lives:"), 3, 50, 1, "g_lms_lives_override"); break;
+ case MAPINFO_TYPE_RACE: GameType_ConfigureSliders(e, l, l2, _("Laps:"), 1, 25, 1, "g_race_laps_limit"); break;
+ case MAPINFO_TYPE_NEXBALL: GameType_ConfigureSliders(e, l, l2, _("Goals:"), 1, 50, 1, "g_nexball_goallimit"); break;
+ case MAPINFO_TYPE_ASSAULT: GameType_ConfigureSliders(e, l, l2, _("Point limit:"), 50, 500, 10, ""); break;
+ case MAPINFO_TYPE_ONSLAUGHT: GameType_ConfigureSliders(e, l, l2, _("Point limit:"), 50, 500, 10, ""); break;
+ case MAPINFO_TYPE_CTS: GameType_ConfigureSliders(e, l, l2, _("Point limit:"), 50, 500, 10, ""); break;
+ default: GameType_ConfigureSliders(e, l, l2, _("Frag limit:"), 5, 100, 5, "fraglimit_override"); break;
}
me.mapListBox.refilter(me.mapListBox);
}
METHOD(XonoticAdvancedDialog, fill, void(entity))
METHOD(XonoticAdvancedDialog, showNotify, void(entity))
METHOD(XonoticAdvancedDialog, close, void(entity))
- ATTRIB(XonoticAdvancedDialog, title, string, "Advanced server settings")
+ ATTRIB(XonoticAdvancedDialog, title, string, _("Advanced server settings"))
ATTRIB(XonoticAdvancedDialog, color, vector, SKINCOLOR_DIALOG_ADVANCED)
ATTRIB(XonoticAdvancedDialog, intendedWidth, float, 0.5)
- ATTRIB(XonoticAdvancedDialog, rows, float, 14)
+ ATTRIB(XonoticAdvancedDialog, rows, float, 17)
ATTRIB(XonoticAdvancedDialog, columns, float, 3)
ATTRIB(XonoticAdvancedDialog, refilterEntity, entity, NULL)
ENDCLASS(XonoticAdvancedDialog)
{
entity e;
me.TR(me);
- me.TD(me, 1, 3, makeXonoticTextLabel(0, "Game settings:"));
+ 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, e = 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.2, e = makeXonoticTextLabel(0, _("Spawn shield:")));
me.TD(me, 1, 1.6, e = 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.2, e = makeXonoticTextLabel(0, _("Game speed:")));
me.TD(me, 1, 1.6, e = makeXonoticSlider(0.5, 2.0, 0.1, "slowmo"));
me.TR(me);
me.TR(me);
- me.TD(me, 1, 3, makeXonoticTextLabel(0, "Teamplay settings:"));
+ 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.2, e = makeXonoticTextLabel(0, _("Friendly fire scale:")));
me.TD(me, 1, 1.6, e = 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, e = 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.2, e = makeXonoticTextLabel(0, _("Friendly fire penalty:")));
me.TD(me, 1, 1.6, e = 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, e = 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, e = 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");
e.addValue(e, "3 teams", "3");
e.addValue(e, "4 teams", "4");
e.configureXonoticTextSliderValues(e);
+ me.TR(me);
+ me.TR(me);
+ me.TD(me, 1, 1, e = 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");
+ e.addValue(e, _("3 choices"), "3");
+ e.addValue(e, _("4 choices"), "4");
+ e.addValue(e, _("5 choices"), "5");
+ e.addValue(e, _("6 choices"), "6");
+ e.addValue(e, _("7 choices"), "7");
+ e.addValue(e, _("8 choices"), "8");
+ 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.gotoRC(me, me.rows - 1, 0);
- me.TD(me, 1, me.columns, e = makeXonoticButton("OK", '0 0 0'));
+ me.TD(me, 1, me.columns, e = makeXonoticButton(_("OK"), '0 0 0'));
e.onClick = Dialog_Close;
e.onClickEntity = me;
}
CLASS(XonoticMapInfoDialog) EXTENDS(XonoticDialog)
METHOD(XonoticMapInfoDialog, fill, void(entity))
METHOD(XonoticMapInfoDialog, loadMapInfo, void(entity, float, entity))
- ATTRIB(XonoticMapInfoDialog, title, string, "Map Information")
+ ATTRIB(XonoticMapInfoDialog, title, string, _("Map Information"))
ATTRIB(XonoticMapInfoDialog, color, vector, SKINCOLOR_DIALOG_MAPINFO)
- ATTRIB(XonoticMapInfoDialog, intendedWidth, float, 0.85)
- ATTRIB(XonoticMapInfoDialog, rows, float, 9)
+ ATTRIB(XonoticMapInfoDialog, intendedWidth, float, 1.0)
+ ATTRIB(XonoticMapInfoDialog, rows, float, 12)
ATTRIB(XonoticMapInfoDialog, columns, float, 10)
ATTRIB(XonoticMapInfoDialog, previewImage, entity, NULL)
ATTRIB(XonoticMapInfoDialog, descriptionLabel, entity, NULL)
ATTRIB(XonoticMapInfoDialog, featuresLabel, entity, NULL)
- ATTRIB(XonoticMapInfoDialog, typeDeathmatchLabel, entity, NULL)
- ATTRIB(XonoticMapInfoDialog, typeTDMLabel, entity, NULL)
- ATTRIB(XonoticMapInfoDialog, typeLMSLabel, entity, NULL)
- ATTRIB(XonoticMapInfoDialog, typeArenaLabel, entity, NULL)
- ATTRIB(XonoticMapInfoDialog, typeRuneLabel, entity, NULL)
- ATTRIB(XonoticMapInfoDialog, typeDominationLabel, entity, NULL)
- ATTRIB(XonoticMapInfoDialog, typeKeyHuntLabel, entity, NULL)
- ATTRIB(XonoticMapInfoDialog, typeCTFLabel, entity, NULL)
- ATTRIB(XonoticMapInfoDialog, typeCALabel, entity, NULL)
- ATTRIB(XonoticMapInfoDialog, typeAssaultLabel, entity, NULL)
- ATTRIB(XonoticMapInfoDialog, typeOnslaughtLabel, entity, NULL)
- ATTRIB(XonoticMapInfoDialog, typeRaceLabel, entity, NULL)
- ATTRIB(XonoticMapInfoDialog, typeCTSLabel, entity, NULL)
- ATTRIB(XonoticMapInfoDialog, typeNexballLabel, entity, NULL)
- ATTRIB(XonoticMapInfoDialog, typeFreezetagLabel, entity, NULL)
- ATTRIB(XonoticMapInfoDialog, typeKeepawayLabel, entity, NULL)
+ ATTRIBARRAY(XonoticMapInfoDialog, typeLabels, entity, 24)
ATTRIB(XonoticMapInfoDialog, currentMapIndex, float, 0)
ATTRIB(XonoticMapInfoDialog, currentMapBSPName, string, string_null)
me.currentMapTitle = strzone(MapInfo_Map_title);
me.currentMapAuthor = strzone(MapInfo_Map_author);
me.currentMapDescription = strzone(MapInfo_Map_description);
- me.currentMapFeaturesText = strzone((MapInfo_Map_supportedFeatures & MAPINFO_FEATURE_WEAPONS) ? "Full item placement" : "MinstaGib only");
+ me.currentMapFeaturesText = strzone((MapInfo_Map_supportedFeatures & MAPINFO_FEATURE_WEAPONS) ? _("Full item placement") : _("MinstaGib only"));
me.currentMapPreviewImage = strzone(strcat("/maps/", MapInfo_Map_bspname));
me.frame.setText(me.frame, me.currentMapBSPName);
me.featuresLabel.setText(me.featuresLabel, me.currentMapFeaturesText);
me.previewImage.src = me.currentMapPreviewImage;
- me.typeDeathmatchLabel.disabled = !(MapInfo_Map_supportedGametypes & MAPINFO_TYPE_DEATHMATCH);
- me.typeTDMLabel.disabled = !(MapInfo_Map_supportedGametypes & MAPINFO_TYPE_TEAM_DEATHMATCH);
- me.typeLMSLabel.disabled = !(MapInfo_Map_supportedGametypes & MAPINFO_TYPE_LMS);
- me.typeArenaLabel.disabled = !(MapInfo_Map_supportedGametypes & MAPINFO_TYPE_ARENA);
- me.typeDominationLabel.disabled = !(MapInfo_Map_supportedGametypes & MAPINFO_TYPE_DOMINATION);
- me.typeRuneLabel.disabled = !(MapInfo_Map_supportedGametypes & MAPINFO_TYPE_RUNEMATCH);
- me.typeKeyHuntLabel.disabled = !(MapInfo_Map_supportedGametypes & MAPINFO_TYPE_KEYHUNT);
- me.typeCTFLabel.disabled = !(MapInfo_Map_supportedGametypes & MAPINFO_TYPE_CTF);
- me.typeCALabel.disabled = !(MapInfo_Map_supportedGametypes & MAPINFO_TYPE_CA);
- me.typeAssaultLabel.disabled = !(MapInfo_Map_supportedGametypes & MAPINFO_TYPE_ASSAULT);
- me.typeOnslaughtLabel.disabled = !(MapInfo_Map_supportedGametypes & MAPINFO_TYPE_ONSLAUGHT);
- me.typeRaceLabel.disabled = !(MapInfo_Map_supportedGametypes & MAPINFO_TYPE_RACE);
- me.typeCTSLabel.disabled = !(MapInfo_Map_supportedGametypes & MAPINFO_TYPE_CTS);
- me.typeNexballLabel.disabled = !(MapInfo_Map_supportedGametypes & MAPINFO_TYPE_NEXBALL);
- me.typeFreezetagLabel.disabled = !(MapInfo_Map_supportedGametypes & MAPINFO_TYPE_FREEZETAG);
- me.typeKeepawayLabel.disabled = !(MapInfo_Map_supportedGametypes & MAPINFO_TYPE_KEEPAWAY);
+ for(i = 0; i < GameType_GetCount(); ++i)
+ {
+ entity e;
+ e = me.(typeLabels[i]);
+ e.disabled = !(MapInfo_Map_supportedGametypes & GameType_GetID(i));
+ }
MapInfo_ClearTemps();
}
void XonoticMapInfoDialog_fill(entity me)
{
entity e;
- float w, wgt;
+ float w, wgt, i, n;
me.TR(me);
me.TDempty(me, 0.2);
me.TD(me, me.rows - 2, 3, e = makeXonoticImage(string_null, 4.0/3.0));
me.previewImage = e;
me.gotoRC(me, 0, 3.5); me.setFirstColumn(me, me.currentColumn);
w = me.columns - me.currentColumn;
- me.TD(me, 1, 1, e = makeXonoticTextLabel(0, "Title:"));
+ me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Title:")));
me.TD(me, 1, w-1, e = makeXonoticTextLabel(0, ""));
e.colorL = SKINCOLOR_MAPLIST_TITLE;
e.allowCut = 1;
me.titleLabel = e;
me.TR(me);
- me.TD(me, 1, 1, e = makeXonoticTextLabel(0, "Author:"));
+ me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Author:")));
me.TD(me, 1, w-1, e = makeXonoticTextLabel(0, ""));
e.colorL = SKINCOLOR_MAPLIST_AUTHOR;
e.allowCut = 1;
me.authorLabel = e;
me.TR(me);
- me.TD(me, 1, 1, e = makeXonoticTextLabel(0, "Features:"));
+ me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Features:")));
me.TD(me, 1, w-1, e = makeXonoticTextLabel(0, ""));
e.allowCut = 1;
me.featuresLabel = e;
me.TR(me);
- me.TD(me, 1, w, e = makeXonoticTextLabel(0, "Game types:"));
- me.TR(me); wgt = (w-0.2)/5;
- me.TDempty(me, 0.2);
- me.TD(me, 1, wgt, e = makeXonoticTextLabel(0, "DM"));
- me.typeDeathmatchLabel = e;
- me.TD(me, 1, wgt, e = makeXonoticTextLabel(0, "TDM"));
- me.typeTDMLabel = e;
- me.TD(me, 1, wgt, e = makeXonoticTextLabel(0, "LMS"));
- me.typeLMSLabel = e;
- me.TD(me, 1, wgt, e = makeXonoticTextLabel(0, "Arena"));
- me.typeArenaLabel = e;
- me.TD(me, 1, wgt, e = makeXonoticTextLabel(0, "Domination"));
- me.typeDominationLabel = e;
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, wgt, e = makeXonoticTextLabel(0, "Key Hunt"));
- me.typeKeyHuntLabel = e;
- me.TD(me, 1, wgt, e = makeXonoticTextLabel(0, "CTF"));
- me.typeCTFLabel = e;
- me.TD(me, 1, wgt, e = makeXonoticTextLabel(0, "CA"));
- me.typeCALabel = e;
- me.TD(me, 1, wgt, e = makeXonoticTextLabel(0, "Assault"));
- me.typeAssaultLabel = e;
- me.TD(me, 1, wgt, e = makeXonoticTextLabel(0, "Onslaught"));
- me.typeOnslaughtLabel = e;
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, wgt, e = makeXonoticTextLabel(0, "Race"));
- me.typeRaceLabel = e;
- me.TD(me, 1, wgt, e = makeXonoticTextLabel(0, "CTS"));
- me.typeCTSLabel = e;
- me.TD(me, 1, wgt, e = makeXonoticTextLabel(0, "Nexball"));
- me.typeNexballLabel = e;
- me.TD(me, 1, wgt, e = makeXonoticTextLabel(0, "Freezetag"));
- me.typeFreezetagLabel = e;
- me.TD(me, 1, wgt, e = makeXonoticTextLabel(0, "Keepaway"));
- me.typeKeepawayLabel = e;
+ me.TD(me, 1, w, e = makeXonoticTextLabel(0, _("Game types:")));
+
+
+ n = ceil(GameType_GetCount() / (me.rows - 6));
+ wgt = (w - 0.2) / n;
+ for(i = 0; i < GameType_GetCount(); ++i)
+ {
+ if(mod(i, n) == 0)
+ {
+ me.TR(me);
+ me.TDempty(me, 0.2);
+ }
+ me.TD(me, 1, wgt, e = makeXonoticTextLabel(0, GameType_GetName(i)));
+ me.(typeLabels[i]) = e;
+ }
me.gotoRC(me, me.rows - 2, 0);
me.TD(me, 1, me.columns, e = makeXonoticTextLabel(0.5, ""));
me.gotoRC(me, me.rows - 1, 0);
me.TDempty(me, 0.5);
- me.TD(me, 1, me.columns - 5.5, e = makeXonoticButton("Close", '0 0 0'));
+ me.TD(me, 1, me.columns - 5.5, e = makeXonoticButton(_("Close"), '0 0 0'));
e.onClick = Dialog_Close;
e.onClickEntity = me;
- me.TD(me, 1, me.columns - 5.5, me.startButton = e = makeXonoticButton("Play", '0 0 0'));
+ me.TD(me, 1, me.columns - 5.5, me.startButton = e = makeXonoticButton(_("Play"), '0 0 0'));
me.startButton.onClick = MapList_LoadMap;
me.startButton.onClickEntity = NULL; // filled later
}
METHOD(XonoticMutatorsDialog, fill, void(entity))
METHOD(XonoticMutatorsDialog, showNotify, void(entity))
METHOD(XonoticMutatorsDialog, close, void(entity))
- ATTRIB(XonoticMutatorsDialog, title, string, "Mutators")
+ ATTRIB(XonoticMutatorsDialog, title, string, _("Mutators"))
ATTRIB(XonoticMutatorsDialog, color, vector, SKINCOLOR_DIALOG_MUTATORS)
ATTRIB(XonoticMutatorsDialog, intendedWidth, float, 0.9)
ATTRIB(XonoticMutatorsDialog, rows, float, 17)
if(s == "0")
return "";
if(s == "all")
- return "All Weapons Arena";
+ return _("All Weapons Arena");
if(s == "most")
- return "Most Weapons Arena";
+ return _("Most Weapons Arena");
if(s == weaponarenastring_cvar)
return weaponarenastring;
if(weaponarenastring)
s = strcat(s, " & ", e.message);
}
}
- s = strcat(substring(s, 3, strlen(s) - 3), " Arena");
+ s = sprintf(_("%s Arena"), substring(s, 3, strlen(s) - 3));
weaponarenastring = strzone(s);
string s;
s = "";
if(cvar("g_dodging"))
- s = strcat(s, ", Dodging");
+ s = strcat(s, ", ", _("Dodging"));
if(cvar("g_minstagib"))
- s = strcat(s, ", MinstaGib");
+ s = strcat(s, ", ", _("MinstaGib"));
if(cvar("g_nix"))
- s = strcat(s, ", NIX");
+ s = strcat(s, ", ", _("NIX"));
if(cvar("g_rocket_flying"))
- s = strcat(s, ", Rocket Flying");
+ s = strcat(s, ", ", _("Rocket Flying"));
if(cvar_string("g_weaponarena") != "0")
s = strcat(s, ", ", WeaponArenaString());
if(cvar("g_start_weapon_laser") == 0)
- s = strcat(s, ", No start weapons");
+ s = strcat(s, ", ", _("No start weapons"));
if(cvar("sv_gravity") < 800)
- s = strcat(s, ", Low gravity");
+ s = strcat(s, ", ", _("Low gravity"));
if(cvar("g_cloaked"))
- s = strcat(s, ", Cloaked");
+ s = strcat(s, ", ", _("Cloaked"));
if(cvar("g_grappling_hook"))
- s = strcat(s, ", Hook");
+ s = strcat(s, ", ", _("Hook"));
if(cvar("g_midair"))
- s = strcat(s, ", Midair");
+ s = strcat(s, ", ", _("Midair"));
if(cvar("g_vampire"))
- s = strcat(s, ", Vampire");
+ s = strcat(s, ", ", _("Vampire"));
if(cvar("g_pinata"))
- s = strcat(s, ", Pinata");
+ s = strcat(s, ", ", _("Piñata"));
if(cvar("g_weapon_stay"))
- s = strcat(s, ", Weapons stay");
+ s = strcat(s, ", ", _("Weapons stay"));
if(cvar("g_bloodloss") > 0)
- s = strcat(s, ", Bloodloss");
+ s = strcat(s, ", ", _("Blood loss"));
if(cvar("g_jetpack"))
- s = strcat(s, ", Jet pack");
+ s = strcat(s, ", ", _("Jet pack"));
if(s == "")
- return "None";
+ return ZCTX(_("MUT^None"));
else
return substring(s, 2, strlen(s) - 2);
}
float i, j;
string str, hstr;
me.TR(me);
- me.TD(me, 1, 2, makeXonoticTextLabel(0, "Gameplay mutators:"));
+ me.TD(me, 1, 2, makeXonoticTextLabel(0, _("Gameplay mutators:")));
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 2, e = makeXonoticCheckBox(0, "g_dodging", "Dodging"));
+ me.TD(me, 1, 2, e = makeXonoticCheckBox(0, "g_dodging", _("Dodging")));
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 2, e = makeXonoticCheckBox(0, "g_cloaked", "Cloaked"));
+ me.TD(me, 1, 2, e = makeXonoticCheckBox(0, "g_cloaked", _("Cloaked")));
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 2, e = makeXonoticCheckBox(0, "g_midair", "Midair"));
+ me.TD(me, 1, 2, e = makeXonoticCheckBox(0, "g_midair", _("Midair")));
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 2, e = makeXonoticCheckBox(0, "g_vampire", "Vampire"));
+ me.TD(me, 1, 2, e = makeXonoticCheckBox(0, "g_vampire", _("Vampire")));
me.TR(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"));
+ me.TD(me, 1, 2, e = makeXonoticSliderCheckBox(0, 1, s, _("Blood loss")));
me.TR(me);
me.TDempty(me, 0.4);
me.TD(me, 1, 1.8, s);
s = makeXonoticSlider(80, 400, 8, "sv_gravity");
s.valueDigits = 0;
s.valueDisplayMultiplier = 0.125; // show gravity in percent
- me.TD(me, 1, 2, e = makeXonoticSliderCheckBox(800, 1, s, "Low gravity"));
+ me.TD(me, 1, 2, e = makeXonoticSliderCheckBox(800, 1, s, _("Low gravity")));
e.savedValue = 200; // good on silvercity
me.TR(me);
me.TDempty(me, 0.4);
me.TD(me, 1, 1.8, s);
me.TR(me);
me.TR(me);
- me.TD(me, 1, 2, makeXonoticTextLabel(0, "Weapon & item mutators:"));
+ me.TD(me, 1, 2, makeXonoticTextLabel(0, _("Weapon & item mutators:")));
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 2, e = makeXonoticCheckBox(0, "g_grappling_hook", "Grappling hook"));
+ me.TD(me, 1, 2, e = makeXonoticCheckBox(0, "g_grappling_hook", _("Grappling hook")));
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 2, e = makeXonoticCheckBox(0, "g_jetpack", "Jet pack"));
+ me.TD(me, 1, 2, e = makeXonoticCheckBox(0, "g_jetpack", _("Jet pack")));
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 2, e = makeXonoticCheckBox(0, "g_rocket_flying", "Rocket Flying"));
+ 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", "Pinata"));
+ me.TD(me, 1, 2, e = makeXonoticCheckBox(0, "g_pinata", _("Piñata")));
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 2, e = makeXonoticCheckBoxEx(2, 0, "g_weapon_stay", "Weapons stay"));
+ me.TD(me, 1, 2, e = makeXonoticCheckBoxEx(2, 0, "g_weapon_stay", _("Weapons stay")));
me.TR(me);
me.gotoRC(me, 0, 2); me.setFirstColumn(me, me.currentColumn);
- me.TD(me, 1, 4, makeXonoticTextLabel(0, "Weapon arenas:"));
+ me.TD(me, 1, 4, makeXonoticTextLabel(0, _("Weapon arenas:")));
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 2, e = makeXonoticRadioButton(1, string_null, string_null, "Regular (no arena)"));
+ me.TD(me, 1, 2, e = makeXonoticRadioButton(1, string_null, string_null, _("Regular (no arena)")));
for(i = WEP_FIRST, j = 0; i <= WEP_LAST; ++i)
{
w = get_weaponinfo(i);
}
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 1, e = makeXonoticCheckBox(0, "menu_weaponarena_with_laser", "with laser"));
+ me.TD(me, 1, 1, e = makeXonoticCheckBox(0, "menu_weaponarena_with_laser", _("with laser")));
// hook the draw function to gray it out
e.draw_weaponarena = e.draw;
e.draw = preDrawLaserWeaponArenaLaserButton;
e.saveCvars_weaponarena = e.saveCvars;
e.saveCvars = saveCvarsLaserWeaponArenaLaserButton;
me.TR(me);
- me.TD(me, 1, 4, makeXonoticTextLabel(0, "Special arenas:"));
+ me.TD(me, 1, 4, makeXonoticTextLabel(0, _("Special arenas:")));
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 2, e = makeXonoticRadioButton(1, "g_minstagib", string_null, "MinstaGib"));
+ me.TD(me, 1, 2, e = makeXonoticRadioButton(1, "g_minstagib", string_null, _("MinstaGib")));
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 2, e = makeXonoticRadioButton(1, "g_nix", string_null, "NIX"));
+ me.TD(me, 1, 2, e = makeXonoticRadioButton(1, "g_nix", string_null, _("NIX")));
me.TR(me);
me.TDempty(me, 0.4);
- me.TD(me, 1, 1, e = makeXonoticCheckBox(0, "g_nix_with_laser", "with laser"));
+ me.TD(me, 1, 1, e = makeXonoticCheckBox(0, "g_nix_with_laser", _("with laser")));
setDependent(e, "g_nix", 1, 1);
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 2, e = makeXonoticRadioButton(1, "g_weaponarena", "most", "Most weapons"));
+ me.TD(me, 1, 2, e = makeXonoticRadioButton(1, "g_weaponarena", "most", _("Most weapons")));
e.cvarOffValue = "0";
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 2, e = makeXonoticRadioButton(1, "g_start_weapon_laser", "0", "No start weapons"));
+ me.TD(me, 1, 2, e = makeXonoticRadioButton(1, "g_start_weapon_laser", "0", _("No start weapons")));
e.cvarOffValue = "-1";
makeMulti(e, "g_start_weapon_shotgun g_start_weapon_uzi g_start_weapon_grenadelauncher g_start_weapon_minelayer g_start_weapon_electro g_start_weapon_crylink g_start_weapon_nex g_start_weapon_hagar g_start_weapon_rocketlauncher g_start_weapon_sniperrifle g_start_weapon_hlac g_start_weapon_seeker g_start_weapon_minstanex g_start_weapon_hook g_start_weapon_porto g_start_weapon_tuba g_start_weapon_minelayer");
me.gotoRC(me, me.rows - 1, 0);
- me.TD(me, 1, me.columns, e = makeXonoticButton("OK", '0 0 0'));
+ me.TD(me, 1, me.columns, e = makeXonoticButton(_("OK"), '0 0 0'));
e.onClick = Dialog_Close;
e.onClickEntity = me;
}
#ifdef INTERFACE
CLASS(XonoticDemoBrowserTab) EXTENDS(XonoticTab)
METHOD(XonoticDemoBrowserTab, fill, void(entity))
- ATTRIB(XonoticDemoBrowserTab, title, string, "Demo")
+ ATTRIB(XonoticDemoBrowserTab, title, string, _("Demo"))
ATTRIB(XonoticDemoBrowserTab, intendedWidth, float, 0.9)
ATTRIB(XonoticDemoBrowserTab, rows, float, 22)
ATTRIB(XonoticDemoBrowserTab, columns, float, 6.5)
entity dlist;
me.TR(me);
- me.TD(me, 1, me.columns, e = makeXonoticCheckBox(0, "cl_autodemo", "Record demos while playing"));
+ me.TD(me, 1, me.columns, e = makeXonoticCheckBox(0, "cl_autodemo", _("Record demos while playing")));
me.TR(me);
dlist = makeXonoticDemoList();
me.TR(me);
- me.TD(me, 1, 0.5, e = makeXonoticTextLabel(0, "Filter:"));
- me.TD(me, 1, 0.5, btn = makeXonoticButton("Clear", '0 0 0'));
+ me.TD(me, 1, 0.5, e = makeXonoticTextLabel(0, _("Filter:")));
+ me.TD(me, 1, 0.5, btn = makeXonoticButton(_("Clear"), '0 0 0'));
btn.onClick = InputBox_Clear_Click;
me.TD(me, 1, me.columns - 1, e = makeXonoticInputBox(0, string_null));
e.onChange = DemoList_Filter_Change;
me.TR(me);
me.TD(me, me.rows - 4, me.columns, dlist);
me.gotoRC(me, me.rows - 1, 0);
- me.TD(me, 1, me.columns / 2, e = makeXonoticButton("Timedemo", '0 0 0'));
+ me.TD(me, 1, me.columns / 2, e = makeXonoticButton(_("Timedemo"), '0 0 0'));
e.onClick = TimeDemo_Click;
e.onClickEntity = dlist;
- me.TD(me, 1, me.columns / 2, e = makeXonoticButton("Play", '0 0 0'));
+ me.TD(me, 1, me.columns / 2, e = makeXonoticButton(_("Play"), '0 0 0'));
e.onClick = StartDemo_Click;
e.onClickEntity = dlist;
}
#ifdef INTERFACE
CLASS(XonoticServerListTab) EXTENDS(XonoticTab)
METHOD(XonoticServerListTab, fill, void(entity))
- ATTRIB(XonoticServerListTab, title, string, "Join")
+ ATTRIB(XonoticServerListTab, title, string, _("Join"))
ATTRIB(XonoticServerListTab, intendedWidth, float, 0.9)
ATTRIB(XonoticServerListTab, rows, float, 22)
ATTRIB(XonoticServerListTab, columns, float, 6.5)
slist = makeXonoticServerList();
me.TR(me);
- me.TD(me, 1, 0.4, e = makeXonoticTextLabel(0, "Filter:"));
- me.TD(me, 1, 0.6, btn = makeXonoticButton("Clear", '0 0 0'));
+ me.TD(me, 1, 0.4, e = makeXonoticTextLabel(0, _("Filter:")));
+ me.TD(me, 1, 0.6, btn = makeXonoticButton(_("Clear"), '0 0 0'));
btn.onClick = InputBox_Clear_Click;
me.TD(me, 1, me.columns - 0.6 * 4 - 0.4, e = makeXonoticInputBox(0, string_null));
e.onChange = ServerList_Filter_Change;
e.onChangeEntity = slist;
btn.onClickEntity = e;
slist.controlledTextbox = e;
- me.TD(me, 1, 0.6, e = makeXonoticCheckBox(0, "menu_slist_showempty", "Empty"));
+ me.TD(me, 1, 0.6, e = makeXonoticCheckBox(0, "menu_slist_showempty", ZCTX(_("SRVS^Empty"))));
slist.filterShowEmpty = e.checked;
e.onClickEntity = slist;
e.onClick = ServerList_ShowEmpty_Click;
- me.TD(me, 1, 0.6, e = makeXonoticCheckBox(0, "menu_slist_showfull", "Full"));
+ me.TD(me, 1, 0.6, e = makeXonoticCheckBox(0, "menu_slist_showfull", ZCTX(_("SRVS^Full"))));
slist.filterShowFull = e.checked;
e.onClickEntity = slist;
e.onClick = ServerList_ShowFull_Click;
- me.TD(me, 1, 0.6, e = makeXonoticCheckBox(0, "net_slist_pause", "Pause"));
+ me.TD(me, 1, 0.6, e = makeXonoticCheckBox(0, "net_slist_pause", _("Pause")));
me.TR(me);
me.TD(me, 1, 1, slist.sortButton1 = makeXonoticButton(string_null, '0 0 0'));
me.TD(me, me.rows - 4, me.columns, slist);
me.gotoRC(me, me.rows - 2, 0);
- me.TD(me, 1, 0.6, e = makeXonoticTextLabel(0, "Address:"));
+ me.TD(me, 1, 0.6, e = makeXonoticTextLabel(0, _("Address:")));
me.TD(me, 1, 2.9, e = makeXonoticInputBox(0, string_null));
e.onEnter = ServerList_Connect_Click;
e.onEnterEntity = slist;
+ e.onChange = ServerList_Update_favoriteButton;
+ e.onChangeEntity = slist;
slist.ipAddressBox = e;
me.TD(me, 1, 1.5, e = makeXonoticButton("", '0 0 0'));
e.onClick = ServerList_Favorite_Click;
e.onClickEntity = slist;
slist.favoriteButton = e;
- me.TD(me, 1, 1.5, e = makeXonoticButton("Info", '0 0 0'));
+ me.TD(me, 1, 1.5, e = makeXonoticButton(_("Info..."), '0 0 0'));
e.onClick = ServerList_Info_Click;
e.onClickEntity = slist;
slist.infoButton = e;
me.TR(me);
- me.TD(me, 1, me.columns, e = makeXonoticButton("Join!", '0 0 0'));
+ me.TD(me, 1, me.columns, e = makeXonoticButton(_("Join!"), '0 0 0'));
e.onClick = ServerList_Connect_Click;
e.onClickEntity = slist;
slist.connectButton = e;
CLASS(XonoticServerInfoDialog) EXTENDS(XonoticDialog)
METHOD(XonoticServerInfoDialog, fill, void(entity))
METHOD(XonoticServerInfoDialog, loadServerInfo, void(entity, float))
- ATTRIB(XonoticServerInfoDialog, title, string, "Server Information")
+ ATTRIB(XonoticServerInfoDialog, title, string, _("Server Information"))
ATTRIB(XonoticServerInfoDialog, color, vector, SKINCOLOR_DIALOG_SERVERINFO)
- ATTRIB(XonoticServerInfoDialog, intendedWidth, float, 0.68)
+ ATTRIB(XonoticServerInfoDialog, intendedWidth, float, 0.8)
ATTRIB(XonoticServerInfoDialog, rows, float, 15)
ATTRIB(XonoticServerInfoDialog, columns, float, 12)
#ifdef IMPLEMENTATION
void XonoticServerInfoDialog_loadServerInfo(entity me, float i)
{
- float m, pure, j;
- string s, typestr, versionstr, numh, maxp, k, v;
+ float m, pure, freeslots, j, numh, maxp, numb;
+ string s, typestr, versionstr, k, v;
if(me.currentServerName)
strunzone(me.currentServerName);
me.cnameLabel.setText(me.cnameLabel, me.currentServerCName);
pure = -1;
- typestr = "N/A";
- versionstr = "N/A";
+ typestr = _("N/A");
+ versionstr = _("N/A");
SLIST_FIELD_QCSTATUS = gethostcacheindexforkey("qcstatus");
s = gethostcachestring(SLIST_FIELD_QCSTATUS, i);
typestr = argv(0);
versionstr = argv(1);
}
+ freeslots = -1;
for(j = 2; j < m; ++j)
{
if(argv(j) == "")
v = substring(argv(j), 1, -1);
if(k == "P")
pure = stof(v);
+ else if(k == "S")
+ freeslots = stof(v);
}
me.currentServerType = strzone(typestr);
me.rawPlayerList.setPlayerList(me.rawPlayerList, me.currentServerPlayers);
SLIST_FIELD_NUMHUMANS = gethostcacheindexforkey("numhumans");
- numh = ftos(gethostcachenumber(SLIST_FIELD_NUMHUMANS, i));
+ numh = gethostcachenumber(SLIST_FIELD_NUMHUMANS, i);
SLIST_FIELD_MAXPLAYERS = gethostcacheindexforkey("maxplayers");
- maxp = ftos(gethostcachenumber(SLIST_FIELD_MAXPLAYERS, i));
- me.currentServerNumPlayers = strzone(strcat(numh,"/",maxp));
+ maxp = gethostcachenumber(SLIST_FIELD_MAXPLAYERS, i);
+ SLIST_FIELD_NUMBOTS = gethostcacheindexforkey("numbots");
+ numb = gethostcachenumber(SLIST_FIELD_NUMBOTS, i);
+ if(freeslots < 0)
+ freeslots = maxp - numh - numb;
+ me.currentServerNumPlayers = strzone(sprintf(_("%d/%d, %d free player slots"), numh, maxp, freeslots));
me.numPlayersLabel.setText(me.numPlayersLabel, me.currentServerNumPlayers);
- SLIST_FIELD_NUMBOTS = gethostcacheindexforkey("numbots");
- s = ftos(gethostcachenumber(SLIST_FIELD_NUMBOTS, i));
+ s = ftos(numb);
me.currentServerNumBots = strzone(s);
me.numBotsLabel.setText(me.numBotsLabel, me.currentServerNumBots);
me.currentServerVersion = strzone(versionstr);
me.versionLabel.setText(me.versionLabel, me.currentServerVersion);
- me.currentServerPure = ((pure < 0) ? "N/A" : (pure == 0) ? "Official settings" : sprintf("%d modified settings", pure));
+ me.currentServerPure = ((pure < 0) ? "N/A" : (pure == 0) ? _("Official settings") : sprintf(_("%d modified settings"), pure));
me.currentServerPure = strzone(me.currentServerPure);
me.pureLabel.setText(me.pureLabel, me.currentServerPure);
s = crypto_getidfp(me.currentServerCName);
if not(s)
- s = "N/A";
+ s = _("N/A");
me.currentServerID = strzone(s);
me.idLabel.setText(me.idLabel, me.currentServerID);
s = crypto_getkeyfp(me.currentServerCName);
if not(s)
- s = "N/A";
+ s = _("N/A");
me.currentServerKey = strzone(s);
me.keyLabel.setText(me.keyLabel, me.currentServerKey);
if(s == "")
{
if(cvar("crypto_aeslevel") >= 3)
- me.currentServerEncrypt = "N/A (can't connect)";
+ me.currentServerEncrypt = _("N/A (can't connect)");
else
- me.currentServerEncrypt = "N/A";
+ me.currentServerEncrypt = _("N/A");
}
else switch(stof(substring(s, 0, 1)))
{
case 0:
if(cvar("crypto_aeslevel") >= 3)
- me.currentServerEncrypt = "not supported (can't connect)";
+ me.currentServerEncrypt = _("not supported (can't connect)");
else
- me.currentServerEncrypt = "not supported (won't encrypt)";
+ me.currentServerEncrypt = _("not supported (won't encrypt)");
break;
case 1:
if(cvar("crypto_aeslevel") >= 2)
- me.currentServerEncrypt = "supported (will encrypt)";
+ me.currentServerEncrypt = _("supported (will encrypt)");
else
- me.currentServerEncrypt = "supported (won't encrypt)";
+ me.currentServerEncrypt = _("supported (won't encrypt)");
break;
case 2:
if(cvar("crypto_aeslevel") >= 1)
- me.currentServerEncrypt = "requested (will encrypt)";
+ me.currentServerEncrypt = _("requested (will encrypt)");
else
- me.currentServerEncrypt = "requested (won't encrypt)";
+ me.currentServerEncrypt = _("requested (won't encrypt)");
break;
case 3:
if(cvar("crypto_aeslevel") <= 0)
- me.currentServerEncrypt = "required (can't connect)";
+ me.currentServerEncrypt = _("required (can't connect)");
else
- me.currentServerEncrypt = "required (will encrypt)";
+ me.currentServerEncrypt = _("required (will encrypt)");
break;
}
me.encryptLabel.setText(me.encryptLabel, me.currentServerEncrypt);
me.cnameLabel = e;
me.TR(me);
- me.TD(me, 1, 5.5, e = makeXonoticTextLabel(0, "Players:"));
+ me.TD(me, 1, 5.5, e = makeXonoticTextLabel(0, _("Players:")));
me.TR(me);
me.TD(me, me.rows - 4, 6, e = makeXonoticPlayerList());
me.rawPlayerList = e;
me.gotoRC(me, 1, 6.25); me.setFirstColumn(me, me.currentColumn);
me.TR(me);
- me.TD(me, 1, 1.75, e = makeXonoticTextLabel(0, "Type:"));
+ me.TD(me, 1, 1.75, e = makeXonoticTextLabel(0, _("Type:")));
me.TD(me, 1, 4.0, e = makeXonoticTextLabel(0, ""));
e.allowCut = 1;
me.typeLabel = e;
me.TR(me);
- me.TD(me, 1, 1.75, e = makeXonoticTextLabel(0, "Map:"));
+ me.TD(me, 1, 1.75, e = makeXonoticTextLabel(0, _("Map:")));
me.TD(me, 1, 4.0, e = makeXonoticTextLabel(0, ""));
e.allowCut = 1;
me.mapLabel = e;
me.TR(me);
- me.TD(me, 1, 1.75, e = makeXonoticTextLabel(0, "Gameplay:"));
+ me.TD(me, 1, 1.75, e = makeXonoticTextLabel(0, _("Gameplay:")));
me.TD(me, 1, 4.0, e = makeXonoticTextLabel(0, ""));
e.allowCut = 1;
me.pureLabel = e;
me.TR(me);
- me.TD(me, 1, 1.75, e = makeXonoticTextLabel(0, "Players:"));
+ me.TD(me, 1, 1.75, e = makeXonoticTextLabel(0, _("Players:")));
me.TD(me, 1, 4.0, e = makeXonoticTextLabel(0, ""));
e.allowCut = 1;
me.numPlayersLabel = e;
me.TR(me);
- me.TD(me, 1, 1.75, e = makeXonoticTextLabel(0, "Bots:"));
+ me.TD(me, 1, 1.75, e = makeXonoticTextLabel(0, _("Bots:")));
me.TD(me, 1, 4.0, e = makeXonoticTextLabel(0, ""));
e.allowCut = 1;
me.numBotsLabel = e;
me.TR(me);
- me.TD(me, 1, 1.75, e = makeXonoticTextLabel(0, "Mod:"));
+ me.TD(me, 1, 1.75, e = makeXonoticTextLabel(0, _("Mod:")));
me.TD(me, 1, 4.0, e = makeXonoticTextLabel(0, ""));
e.allowCut = 1;
me.modLabel = e;
me.TR(me);
- me.TD(me, 1, 1.75, e = makeXonoticTextLabel(0, "Version:"));
+ me.TD(me, 1, 1.75, e = makeXonoticTextLabel(0, _("Version:")));
me.TD(me, 1, 4.0, e = makeXonoticTextLabel(0, ""));
e.allowCut = 1;
me.versionLabel = e;
me.TR(me);
- me.TD(me, 1, 1.75, e = makeXonoticTextLabel(0, "Ping:"));
+ me.TD(me, 1, 1.75, e = makeXonoticTextLabel(0, _("Ping:")));
me.TD(me, 1, 4.0, e = makeXonoticTextLabel(0, ""));
e.allowCut = 1;
me.pingLabel = e;
me.TR(me);
- me.TD(me, 1, 1.75, e = makeXonoticTextLabel(0, "CA:"));
+ me.TD(me, 1, 1.75, e = makeXonoticTextLabel(0, _("CA:")));
me.TD(me, 1, 4.0, e = makeXonoticTextLabel(0, ""));
e.allowCut = 1;
me.keyLabel = e;
me.TR(me);
- me.TD(me, 1, 1.75, e = makeXonoticTextLabel(0, "Key:"));
+ me.TD(me, 1, 1.75, e = makeXonoticTextLabel(0, _("Key:")));
me.TD(me, 1, 4.0, e = makeXonoticTextLabel(0, ""));
e.allowCut = 1;
me.idLabel = e;
me.TR(me);
- me.TD(me, 1, 1.75, e = makeXonoticTextLabel(0, "Encryption:"));
+ me.TD(me, 1, 1.75, e = makeXonoticTextLabel(0, _("Encryption:")));
me.TD(me, 1, 4.0, e = makeXonoticTextLabel(0, ""));
e.allowCut = 1;
me.encryptLabel = e;
me.gotoRC(me, me.rows - 1, 0);
- me.TD(me, 1, me.columns - 6, e = makeXonoticButton("Close", '0 0 0'));
+ me.TD(me, 1, me.columns - 6, e = makeXonoticButton(_("Close"), '0 0 0'));
e.onClick = Dialog_Close;
e.onClickEntity = me;
- me.TD(me, 1, me.columns - 6, e = makeXonoticButton("Join!", '0 0 0'));
+ me.TD(me, 1, me.columns - 6, e = makeXonoticButton(_("Join!"), '0 0 0'));
e.onClick = Join_Click;
e.onClickEntity = me;
}
CLASS(XonoticPlayerSettingsTab) EXTENDS(XonoticTab)
METHOD(XonoticPlayerSettingsTab, fill, void(entity))
METHOD(XonoticPlayerSettingsTab, draw, void(entity))
- ATTRIB(XonoticPlayerSettingsTab, title, string, "Player Setup")
+ ATTRIB(XonoticPlayerSettingsTab, title, string, _("Player Setup"))
ATTRIB(XonoticPlayerSettingsTab, intendedWidth, float, 0.9)
ATTRIB(XonoticPlayerSettingsTab, rows, float, 22)
ATTRIB(XonoticPlayerSettingsTab, columns, float, 6.5)
float i, r, m, n;
me.TR(me);
- me.TD(me, 1, 0.5, me.playerNameLabel = makeXonoticTextLabel(0, "Name:"));
+ me.TD(me, 1, 0.5, me.playerNameLabel = makeXonoticTextLabel(0, _("Name:")));
me.playerNameLabelAlpha = me.playerNameLabel.alpha;
me.TD(me, 1, 2.5, label = makeXonoticTextLabel(0, string_null));
label.allowCut = 1;
me.TD(me, 1, 3.0, box = makeXonoticInputBox(1, "_cl_name"));
box.forbiddenCharacters = "\r\n\\\"$"; // don't care, isn't getting saved
box.maxLength = -127; // negative means encoded length in bytes
+ box.saveImmediately = 1;
label.textEntity = box;
me.TR(me);
me.TD(me, 5, 1, e = makeXonoticColorpicker(box));
me.TR(me);
me.gotoRC(me, 8, 0.0);
pms = makeXonoticPlayerModelSelector();
- me.TD(me, 1, 0.6, e = makeXonoticTextLabel(1, "Model:"));
+ me.TD(me, 1, 0.6, e = makeXonoticTextLabel(1, _("Model:")));
me.TD(me, 1, 0.3, e = makeXonoticButton("<<", '0 0 0'));
e.onClick = PlayerModelSelector_Prev_Click;
e.onClickEntity = pms;
}
me.gotoRC(me, 0, 3.5); me.setFirstColumn(me, me.currentColumn);
- me.TD(me, 1, 1, e = makeXonoticTextLabel(0, "Field of view:"));
+ me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Field of view:")));
me.TD(me, 1, 2, e = makeXonoticSlider(60, 130, 1, "fov"));
me.TR(me);
sl = makeXonoticSlider(0.45, 0.75, 0.01, "cl_bobcycle");
- me.TD(me, 1, 1, e = makeXonoticSliderCheckBox(0, 1, sl, "View bobbing:"));
+ me.TD(me, 1, 1, e = makeXonoticSliderCheckBox(0, 1, sl, _("View bobbing:")));
makeMulti(sl, "cl_bob2cycle");
me.TD(me, 1, 2, sl);
me.TR(me);
- me.TD(me, 1, 1, e = makeXonoticTextLabel(0, "Zoom factor:"));
+ me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Zoom factor:")));
me.TD(me, 1, 2, e = makeXonoticSlider(2, 16, 0.5, "cl_zoomfactor"));
me.TR(me);
sl = makeXonoticSlider(1, 8, 0.5, "cl_zoomspeed");
- me.TD(me, 1, 1, e = makeXonoticSliderCheckBox(-1, 1, sl, "Zoom speed:"));
+ me.TD(me, 1, 1, e = makeXonoticSliderCheckBox(-1, 1, sl, _("Zoom speed:")));
me.TD(me, 1, 2, sl);
me.TR(me);
- me.TD(me, 1, 1.5, e = makeXonoticButton("Weapon settings...", '0 0 0'));
+ me.TD(me, 1, 1.5, e = makeXonoticButton(_("Weapon settings..."), '0 0 0'));
e.onClick = DialogOpenButton_Click;
e.onClickEntity = main.weaponsDialog;
me.TD(me, 1, 1.5, e0 = makeXonoticTextLabel(0, string_null));
e0.textEntity = main.weaponsDialog;
e0.allowCut = 1;
me.TR(me);
- me.TD(me, 1, 1, e = makeXonoticTextLabel(0, "Crosshair:"));
- me.TD(me, 1, 2, e = makeXonoticCheckBox(0, "crosshair_per_weapon", "Per weapon"));
+ me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Crosshair:")));
+ me.TD(me, 1, 2, e = makeXonoticCheckBox(0, "crosshair_per_weapon", _("Per weapon")));
me.TR(me);
me.TDempty(me, 0.2);
for(i = 1; i <= 10; ++i) {
}
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 1, e = makeXonoticTextLabel(0, "Crosshair size:"));
+ me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Crosshair size:")));
me.TD(me, 1, 1.8, e = makeXonoticSlider(0.10, 1.5, 0.05, "crosshair_size"));
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 1, e = makeXonoticTextLabel(0, "Crosshair alpha:"));
+ me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Crosshair alpha:")));
me.TD(me, 1, 1.8, e = makeXonoticSlider(0, 1, 0.1, "crosshair_alpha"));
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 1, e = makeXonoticTextLabel(0, "Crosshair color:"));
- me.TD(me, 2, 1.8, e = makeXonoticColorpickerString("crosshair_color", "crosshair_color"));
- setDependent(e, "crosshair_color_per_weapon", 0, 0);
+ me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Crosshair color:")));
+ me.TD(me, 1, 0.9, e = makeXonoticRadioButton(4, "crosshair_color_per_weapon", string_null, _("Per weapon")));
+ me.TD(me, 1, 0.9, e = makeXonoticRadioButton(4, "crosshair_color_by_health", string_null, _("By health")));
me.TR(me);
me.TDempty(me, 0.3);
- me.TD(me, 1, 0.7, e = makeXonoticCheckBox(0, "crosshair_color_per_weapon", "Per weapon"));
+ me.TD(me, 1, 0.9, e = makeXonoticRadioButton(4, string_null, string_null, _("Custom")));
+ me.TD(me, 2, 1.8, e = makeXonoticColorpickerString("crosshair_color", "crosshair_color"));
+ setDependentAND(e, "crosshair_color_per_weapon", 0, 0, "crosshair_color_by_health", 0, 0);
me.TR(me);
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "crosshair_dot", "Enable center dot"));
+ me.TR(me);
+ me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "crosshair_dot", _("Enable center dot")));
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 0.5, e = makeXonoticTextLabel(0, "Size:"));
+ me.TD(me, 1, 0.5, e = makeXonoticTextLabel(0, _("Size:")));
me.TD(me, 1, 0.9, e = makeXonoticSlider(0.2, 2, 0.1, "crosshair_dot_size"));
setDependent(e, "crosshair_dot", 1, 1);
- me.TD(me, 1, 0.5, e = makeXonoticTextLabel(0, "Alpha:"));
+ me.TD(me, 1, 0.5, e = makeXonoticTextLabel(0, _("Alpha:")));
me.TD(me, 1, 0.9, e = makeXonoticSlider(0.10, 1, 0.1, "crosshair_dot_alpha"));
setDependent(e, "crosshair_dot", 1, 1);
me.TR(me);
- me.TD(me, 1, 1, e = makeXonoticTextLabel(0, "Hit test:"));
- me.TD(me, 1, 2/3, e = makeXonoticRadioButton(5, "crosshair_hittest", "0", "None"));
- me.TD(me, 1, 2/3, e = makeXonoticRadioButton(5, "crosshair_hittest", "1", "TrueAim"));
- me.TD(me, 1, 2/3, e = makeXonoticRadioButton(5, "crosshair_hittest", "1.25", "Enemies"));
+ me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Hit test:")));
+ me.TD(me, 1, 2/3, e = makeXonoticRadioButton(5, "crosshair_hittest", "0", ZCTX(_("HTST^None"))));
+ me.TD(me, 1, 2/3, e = makeXonoticRadioButton(5, "crosshair_hittest", "1", _("TrueAim")));
+ me.TD(me, 1, 2/3, e = makeXonoticRadioButton(5, "crosshair_hittest", "1.25", _("Enemies")));
me.TR(me);
me.TDempty(me, 0.4);
- me.TD(me, 1, 2.2, e = makeXonoticButton("Waypoints setup...", '0 0 0'));
+ me.TD(me, 1, 2.2, e = makeXonoticButton(_("Waypoints setup..."), '0 0 0'));
e.onClick = DialogOpenButton_Click;
e.onClickEntity = main.waypointDialog;
- me.TDempty(me, 0.5);
me.TR(me);
me.TDempty(me, 0.4);
- me.TD(me, 1, 2.2, e = makeXonoticButton("Enter HUD editor", '0 0 0'));
+ me.TD(me, 1, 2.2, e = makeXonoticButton(_("Enter HUD editor"), '0 0 0'));
e.onClick = HUDSetup_Join_Click;
e.onClickEntity = me;
- me.TDempty(me, 0.5);
- me.TR(me);
- me.TR(me);
#ifdef ALLOW_FORCEMODELS
- me.TD(me, 1, 1, e = makeXonoticTextLabel(0, "Force models:"));
- me.TD(me, 1, 2/3, e = makeXonoticRadioButton(6, string_null, string_null, "None"));
- me.TD(me, 1, 2/3, e = makeXonoticRadioButton(6, "cl_forceplayermodelsfromxonotic", string_null, "Custom"));
- me.TD(me, 1, 2/3, e = makeXonoticRadioButton(6, "cl_forceplayermodels", string_null, "All"));
+ me.TR(me);
+ me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Force models:")));
+ me.TD(me, 1, 2/3, e = makeXonoticRadioButton(6, string_null, string_null, ZCTX(_("MDL^None"))));
+ me.TD(me, 1, 2/3, e = makeXonoticRadioButton(6, "cl_forceplayermodelsfromxonotic", string_null, ZCTX(_("MDL^Custom"))));
+ me.TD(me, 1, 2/3, e = makeXonoticRadioButton(6, "cl_forceplayermodels", string_null, ZCTX(_("MDL^All"))));
#endif
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "cl_gentle", "Disable gore effects"));
me.TR(me);
- me.TD(me, 1, 1, e = makeXonoticTextLabel(0, "Gibs:"));
+ me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "cl_gentle", _("Disable gore effects")));
+ me.TR(me);
+ me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Gibs:")));
me.TD(me, 1, 2, e = makeXonoticTextSlider("cl_nogibs"));
- e.addValue(e, "None", "1");
- e.addValue(e, "Few", "0.75");
- e.addValue(e, "Many", "0.5");
- e.addValue(e, "Lots", "0");
+ e.addValue(e, ZCTX(_("GIBS^None")), "1");
+ e.addValue(e, ZCTX(_("GIBS^Few")), "0.75");
+ e.addValue(e, ZCTX(_("GIBS^Many")), "0.5");
+ 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, "Damage splash:"));
+ me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Damage splash:")));
me.TD(me, 1, 2, e = makeXonoticSlider(0, 1, 0.05, "hud_damage"));
me.gotoRC(me, me.rows - 1, 0);
- me.TD(me, 1, me.columns, makeXonoticCommandButton("Apply immediately", '0 0 0', "color -1 -1;name \"$_cl_name\";cl_cmd sendcvar cl_weaponpriority;sendcvar cl_zoomfactor;sendcvar cl_zoomspeed;sendcvar cl_autoswitch;sendcvar cl_shownames;sendcvar cl_forceplayermodelsfromxonotic;sendcvar cl_forceplayermodels;playermodel $_cl_playermodel;playerskin $_cl_playerskin", COMMANDBUTTON_APPLY));
+ me.TD(me, 1, me.columns, makeXonoticCommandButton(_("Apply immediately"), '0 0 0', "color -1 -1;name \"$_cl_name\";cl_cmd sendcvar cl_weaponpriority;sendcvar cl_zoomfactor;sendcvar cl_zoomspeed;sendcvar cl_autoswitch;sendcvar cl_shownames;sendcvar cl_forceplayermodelsfromxonotic;sendcvar cl_forceplayermodels;playermodel $_cl_playermodel;playerskin $_cl_playerskin", COMMANDBUTTON_APPLY));
}
void HUDSetup_Join_Click(entity me, entity btn)
{
#ifdef INTERFACE
CLASS(XonoticWaypointDialog) EXTENDS(XonoticDialog)
- METHOD(XonoticWaypointDialog, toString, string(entity))
METHOD(XonoticWaypointDialog, fill, void(entity))
METHOD(XonoticWaypointDialog, showNotify, void(entity))
- ATTRIB(XonoticWaypointDialog, title, string, "Waypoints")
- ATTRIB(XonoticWaypointDialog, color, vector, SKINCOLOR_DIALOG_RADAR)
- ATTRIB(XonoticWaypointDialog, intendedWidth, float, 0.7)
+ ATTRIB(XonoticWaypointDialog, title, string, _("Waypoints"))
+ ATTRIB(XonoticWaypointDialog, color, vector, SKINCOLOR_DIALOG_WAYPOINTS)
+ ATTRIB(XonoticWaypointDialog, intendedWidth, float, 0.5)
ATTRIB(XonoticWaypointDialog, rows, float, 6)
- ATTRIB(XonoticWaypointDialog, columns, float, 4)
+ ATTRIB(XonoticWaypointDialog, columns, float, 3)
ENDCLASS(XonoticWaypointDialog)
#endif
#ifdef IMPLEMENTATION
void XonoticWaypointDialog_showNotify(entity me)
{
- loadAllCvars(me);
-}
-string XonoticWaypointDialog_toString(entity me)
-{
- return "XXX";
+ loadAllCvars(me);
}
void XonoticWaypointDialog_fill(entity me)
{
entity e;
-
- me.TR(me);
- me.TD(me, 1, 4, makeXonoticTextLabel(0, "Waypoint settings:"));
+
me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 3.8, e = makeXonoticCheckBox(1, "cl_hidewaypoints", "Show base waypoints"));
+ me.TD(me, 1, 3, e = makeXonoticCheckBox(1, "cl_hidewaypoints", _("Show base waypoints")));
me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 0.8, e = makeXonoticTextLabel(0, "Waypoint scale:"));
- me.TD(me, 1, 3, e = makeXonoticSlider(0.5, 1.5, 0.01, "g_waypointsprite_scale"));
+ me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Waypoint scale:")));
+ me.TD(me, 1, 2, e = makeXonoticSlider(0.5, 1.5, 0.05, "g_waypointsprite_scale"));
setDependent(e, "cl_hidewaypoints", 0, 0);
me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 0.8, e = makeXonoticTextLabel(0, "Waypoint alpha:"));
- me.TD(me, 1, 3, e = makeXonoticSlider(0.1, 1, 0.01, "g_waypointsprite_alpha"));
+ me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Waypoint alpha:")));
+ me.TD(me, 1, 2, e = makeXonoticSlider(0.1, 1, 0.05, "g_waypointsprite_alpha"));
setDependent(e, "cl_hidewaypoints", 0, 0);
me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 0.8, e = makeXonoticTextLabel(0, "Show names:"));
- me.TD(me, 1, 3, e = makeXonoticTextSlider("cl_shownames"));
- e.addValue(e, "Never", "0");
- e.addValue(e, "Teammates", "1");
- e.addValue(e, "All players", "2");
+ me.TR(me);
+ me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Show names:")));
+ me.TD(me, 1, 2, e = makeXonoticTextSlider("cl_shownames"));
+ e.addValue(e, _("Never"), "0");
+ e.addValue(e, _("Teammates"), "1");
+ e.addValue(e, _("All players"), "2");
e.configureXonoticTextSliderValues(e);
me.gotoRC(me, me.rows - 1, 0);
- me.TD(me, 1, me.columns, e = makeXonoticButton("OK", '0 0 0'));
+ me.TD(me, 1, me.columns, e = makeXonoticButton(_("OK"), '0 0 0'));
e.onClick = Dialog_Close;
e.onClickEntity = me;
}
-
#endif
METHOD(XonoticWeaponsDialog, toString, string(entity))
METHOD(XonoticWeaponsDialog, fill, void(entity))
METHOD(XonoticWeaponsDialog, showNotify, void(entity))
- ATTRIB(XonoticWeaponsDialog, title, string, "Weapon settings")
+ ATTRIB(XonoticWeaponsDialog, title, string, _("Weapon settings"))
ATTRIB(XonoticWeaponsDialog, color, vector, SKINCOLOR_DIALOG_WEAPONS)
- ATTRIB(XonoticWeaponsDialog, intendedWidth, float, 0.5)
+ ATTRIB(XonoticWeaponsDialog, intendedWidth, float, 0.4)
ATTRIB(XonoticWeaponsDialog, rows, float, 17)
- ATTRIB(XonoticWeaponsDialog, columns, float, 4)
+ ATTRIB(XonoticWeaponsDialog, columns, float, 3)
ATTRIB(XonoticWeaponsDialog, weaponsList, entity, NULL)
ENDCLASS(XonoticWeaponsDialog)
#endif
entity e;
me.TR(me);
- me.TD(me, 1, 4, makeXonoticTextLabel(0, "Weapon priority list:"));
+ me.TD(me, 1, 3, makeXonoticTextLabel(0, _("Weapon priority list:")));
me.TR(me);
- me.TD(me, 9, 4, e = me.weaponsList = makeXonoticWeaponsList());
+ me.TD(me, 9, 3, e = me.weaponsList = makeXonoticWeaponsList());
me.gotoRC(me, 10, 0);
- me.TDempty(me, 1);
- me.TD(me, 1, 1, e = makeXonoticButton("Up", '0 0 0'));
+ me.TDempty(me, 0.5);
+ me.TD(me, 1, 1, e = makeXonoticButton(_("Up"), '0 0 0'));
e.onClick = WeaponsList_MoveUp_Click;
e.onClickEntity = me.weaponsList;
- me.TD(me, 1, 1, e = makeXonoticButton("Down", '0 0 0'));
+ me.TD(me, 1, 1, e = makeXonoticButton(_("Down"), '0 0 0'));
e.onClick = WeaponsList_MoveDown_Click;
e.onClickEntity = me.weaponsList;
- me.gotoRC(me, 11, 0);
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "cl_weaponpriority_useforcycling", "Use priority list for weapon cycling"));
me.TR(me);
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "cl_autoswitch", "Auto switch weapons on pickup"));
+ me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "cl_weaponpriority_useforcycling", _("Use priority list for weapon cycling")));
me.TR(me);
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "r_drawviewmodel", "Draw 1st person weapon model"));
+ me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "cl_autoswitch", _("Auto switch weapons on pickup")));
+ me.TR(me);
+ me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "r_drawviewmodel", _("Draw 1st person weapon model")));
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 1, e = makeXonoticRadioButton(1, "cl_gunalign", "4", "Left align"));
+ me.TD(me, 1, 1.4, e = makeXonoticRadioButton(1, "cl_gunalign", "4", _("Left align")));
setDependent(e, "r_drawviewmodel", 1, 1);
- me.TD(me, 1, 1, e = makeXonoticRadioButton(1, "cl_gunalign", "3", "Right align"));
+ me.TD(me, 1, 1.4, e = makeXonoticRadioButton(1, "cl_gunalign", "3", _("Right align")));
setDependent(e, "r_drawviewmodel", 1, 1);
me.TR(me);
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "v_flipped", "Flip view horizontally"));
+ me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "v_flipped", _("Flip view horizontally")));
me.TR(me);
- me.TD(me, 1, me.columns, e = makeXonoticButton("OK", '0 0 0'));
+ me.TD(me, 1, me.columns, e = makeXonoticButton(_("OK"), '0 0 0'));
e.onClick = Dialog_Close;
e.onClickEntity = me;
}
#ifdef INTERFACE
CLASS(XonoticNewsDialog) EXTENDS(XonoticDialog)
METHOD(XonoticNewsDialog, fill, void(entity))
- ATTRIB(XonoticNewsDialog, title, string, "News")
+ ATTRIB(XonoticNewsDialog, title, string, _("News"))
ATTRIB(XonoticNewsDialog, color, vector, SKINCOLOR_DIALOG_SETTINGS)
ATTRIB(XonoticNewsDialog, intendedWidth, float, 0.96)
ATTRIB(XonoticNewsDialog, rows, float, 24)
entity e;
me.TR(me);
me.TD(me, 24, 1, e = spawnGecko());
- e.configureBrowser( e, "http://alientrap.org/xonotic/index.php?module=news" );
+ e.configureBrowser( e, _("http://www.xonotic.org/team/blog/") );
}
#endif
#ifdef INTERFACE
CLASS(XonoticQuitDialog) EXTENDS(XonoticDialog)
METHOD(XonoticQuitDialog, fill, void(entity))
- ATTRIB(XonoticQuitDialog, title, string, "Quit")
+ ATTRIB(XonoticQuitDialog, title, string, _("Quit"))
ATTRIB(XonoticQuitDialog, color, vector, SKINCOLOR_DIALOG_QUIT)
ATTRIB(XonoticQuitDialog, intendedWidth, float, 0.5)
ATTRIB(XonoticQuitDialog, rows, float, 3)
{
entity e;
me.TR(me);
- me.TD(me, 1, 2, makeXonoticTextLabel(0.5, "Are you sure you want to quit?"));
+ 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 = makeXonoticButton("No", '0 1 0'));
+ me.TD(me, 1, 1, e = makeXonoticCommandButton(_("Yes"), '1 0 0', "quit", 0));
+ me.TD(me, 1, 1, e = makeXonoticButton(_("No"), '0 1 0'));
e.onClick = Dialog_Close;
e.onClickEntity = me;
}
#ifdef INTERFACE
CLASS(XonoticSettingsDialog) EXTENDS(XonoticDialog)
METHOD(XonoticSettingsDialog, fill, void(entity))
- ATTRIB(XonoticSettingsDialog, title, string, "Settings")
+ ATTRIB(XonoticSettingsDialog, title, string, _("Settings"))
ATTRIB(XonoticSettingsDialog, color, vector, SKINCOLOR_DIALOG_SETTINGS)
ATTRIB(XonoticSettingsDialog, intendedWidth, float, 0.96)
ATTRIB(XonoticSettingsDialog, rows, float, 19)
entity mc;
mc = makeXonoticTabController(me.rows - 2);
me.TR(me);
- me.TD(me, 1, 1, mc.makeTabButton(mc, "Input", makeXonoticInputSettingsTab()));
- me.TD(me, 1, 1, mc.makeTabButton(mc, "Video", makeXonoticVideoSettingsTab()));
- me.TD(me, 1, 1, mc.makeTabButton(mc, "Effects", makeXonoticEffectsSettingsTab()));
- me.TD(me, 1, 1, mc.makeTabButton(mc, "Audio", makeXonoticAudioSettingsTab()));
- me.TD(me, 1, 1, mc.makeTabButton(mc, "Network", makeXonoticNetworkSettingsTab()));
- me.TD(me, 1, 1, mc.makeTabButton(mc, "Misc", makeXonoticMiscSettingsTab()));
+ me.TD(me, 1, 1, mc.makeTabButton(mc, _("Input"), makeXonoticInputSettingsTab()));
+ me.TD(me, 1, 1, mc.makeTabButton(mc, _("Video"), makeXonoticVideoSettingsTab()));
+ me.TD(me, 1, 1, mc.makeTabButton(mc, _("Effects"), makeXonoticEffectsSettingsTab()));
+ me.TD(me, 1, 1, mc.makeTabButton(mc, _("Audio"), makeXonoticAudioSettingsTab()));
+ me.TD(me, 1, 1, mc.makeTabButton(mc, _("Network"), makeXonoticNetworkSettingsTab()));
+ me.TD(me, 1, 1, mc.makeTabButton(mc, _("Misc"), makeXonoticMiscSettingsTab()));
me.TR(me);
me.TR(me);
me.TD(me, me.rows - 2, me.columns, mc);
#ifdef INTERFACE
CLASS(XonoticAudioSettingsTab) EXTENDS(XonoticTab)
METHOD(XonoticAudioSettingsTab, fill, void(entity))
- ATTRIB(XonoticAudioSettingsTab, title, string, "Audio")
+ ATTRIB(XonoticAudioSettingsTab, title, string, _("Audio"))
ATTRIB(XonoticAudioSettingsTab, intendedWidth, float, 0.9)
ATTRIB(XonoticAudioSettingsTab, rows, float, 17)
ATTRIB(XonoticAudioSettingsTab, columns, float, 6.5)
me.TR(me);
s = makeXonoticDecibelsSlider(-20, 0, 0.5, "mastervolume");
- me.TD(me, 1, 1, e = makeXonoticSliderCheckBox(-1000000, 1, s, "Master:"));
+ me.TD(me, 1, 1, e = makeXonoticSliderCheckBox(-1000000, 1, s, _("Master:")));
me.TD(me, 1, 2, s);
me.TR(me);
me.TDempty(me, 0.2);
s = makeXonoticDecibelsSlider(-20, 0, 0.5, "bgmvolume");
makeMulti(s, "snd_csqcchannel2volume");
- me.TD(me, 1, 0.8, e = makeXonoticSliderCheckBox(-1000000, 1, s, "Music:"));
+ me.TD(me, 1, 0.8, e = makeXonoticSliderCheckBox(-1000000, 1, s, _("Music:")));
me.TD(me, 1, 2, s);
+ setDependentStringNotEqual(e, "mastervolume", "0");
+ setDependentStringNotEqual(s, "mastervolume", "0");
me.TR(me);
me.TDempty(me, 0.2);
s = makeXonoticDecibelsSlider(-20, 0, 0.5, "snd_staticvolume");
- me.TD(me, 1, 0.8, e = makeXonoticSliderCheckBox(-1000000, 1, s, "Ambient:"));
+ me.TD(me, 1, 0.8, e = makeXonoticSliderCheckBox(-1000000, 1, s, ZCTX(_("VOL^Ambient:"))));
makeMulti(s, "snd_entchannel2volume");
me.TD(me, 1, 2, s);
- setDependentStringNotEqual(e, "volume", "0");
- setDependentStringNotEqual(s, "volume", "0");
+ setDependentStringNotEqual(e, "mastervolume", "0");
+ setDependentStringNotEqual(s, "mastervolume", "0");
me.TR(me);
me.TDempty(me, 0.2);
s = makeXonoticDecibelsSlider(-20, 0, 0.5, "snd_worldchannel0volume");
- me.TD(me, 1, 0.8, e = makeXonoticSliderCheckBox(-1000000, 1, s, "Info:"));
+ me.TD(me, 1, 0.8, e = makeXonoticSliderCheckBox(-1000000, 1, s, _("Info:")));
makeMulti(s, "snd_csqcchannel0volume");
me.TD(me, 1, 2, s);
- setDependentStringNotEqual(e, "volume", "0");
- setDependentStringNotEqual(s, "volume", "0");
+ setDependentStringNotEqual(e, "mastervolume", "0");
+ setDependentStringNotEqual(s, "mastervolume", "0");
me.TR(me);
me.TDempty(me, 0.2);
s = makeXonoticDecibelsSlider(-20, 0, 0.5, "snd_entchannel3volume");
makeMulti(s, "snd_playerchannel0volume snd_playerchannel3volume snd_csqcchannel3volume");
- me.TD(me, 1, 0.8, e = makeXonoticSliderCheckBox(-1000000, 1, s, "Items:"));
+ me.TD(me, 1, 0.8, e = makeXonoticSliderCheckBox(-1000000, 1, s, _("Items:")));
me.TD(me, 1, 2, s);
- setDependentStringNotEqual(e, "volume", "0");
- setDependentStringNotEqual(s, "volume", "0");
+ setDependentStringNotEqual(e, "mastervolume", "0");
+ setDependentStringNotEqual(s, "mastervolume", "0");
me.TR(me);
me.TDempty(me, 0.2);
s = makeXonoticDecibelsSlider(-20, 0, 0.5, "snd_playerchannel6volume");
makeMulti(s, "snd_csqcchannel6volume");
- me.TD(me, 1, 0.8, e = makeXonoticSliderCheckBox(-1000000, 1, s, "Pain:"));
+ me.TD(me, 1, 0.8, e = makeXonoticSliderCheckBox(-1000000, 1, s, _("Pain:")));
me.TD(me, 1, 2, s);
- setDependentStringNotEqual(e, "volume", "0");
- setDependentStringNotEqual(s, "volume", "0");
+ setDependentStringNotEqual(e, "mastervolume", "0");
+ setDependentStringNotEqual(s, "mastervolume", "0");
me.TR(me);
me.TDempty(me, 0.2);
s = makeXonoticDecibelsSlider(-20, 0, 0.5, "snd_playerchannel7volume");
makeMulti(s, "snd_entchannel7volume");
- me.TD(me, 1, 0.8, e = makeXonoticSliderCheckBox(-1000000, 1, s, "Player:"));
+ me.TD(me, 1, 0.8, e = makeXonoticSliderCheckBox(-1000000, 1, s, _("Player:")));
me.TD(me, 1, 2, s);
- setDependentStringNotEqual(e, "volume", "0");
- setDependentStringNotEqual(s, "volume", "0");
+ setDependentStringNotEqual(e, "mastervolume", "0");
+ setDependentStringNotEqual(s, "mastervolume", "0");
me.TR(me);
me.TDempty(me, 0.2);
s = makeXonoticDecibelsSlider(-20, 0, 0.5, "snd_entchannel4volume");
makeMulti(s, "snd_playerchannel4volume snd_entchannel6volume snd_csqcchannel4volume");
- me.TD(me, 1, 0.8, e = makeXonoticSliderCheckBox(-1000000, 1, s, "Shots:"));
+ me.TD(me, 1, 0.8, e = makeXonoticSliderCheckBox(-1000000, 1, s, _("Shots:")));
me.TD(me, 1, 2, s);
- setDependentStringNotEqual(e, "volume", "0");
- setDependentStringNotEqual(s, "volume", "0");
+ setDependentStringNotEqual(e, "mastervolume", "0");
+ setDependentStringNotEqual(s, "mastervolume", "0");
me.TR(me);
me.TDempty(me, 0.2);
s = makeXonoticDecibelsSlider(-20, 0, 0.5, "snd_playerchannel2volume");
- me.TD(me, 1, 0.8, e = makeXonoticSliderCheckBox(-1000000, 1, s, "Voice:"));
+ me.TD(me, 1, 0.8, e = makeXonoticSliderCheckBox(-1000000, 1, s, _("Voice:")));
me.TD(me, 1, 2, s);
- setDependentStringNotEqual(e, "volume", "0");
- setDependentStringNotEqual(s, "volume", "0");
+ setDependentStringNotEqual(e, "mastervolume", "0");
+ setDependentStringNotEqual(s, "mastervolume", "0");
me.TR(me);
me.TDempty(me, 0.2);
s = makeXonoticDecibelsSlider(-20, 0, 0.5, "snd_playerchannel1volume");
makeMulti(s, "snd_playerchannel5volume snd_entchannel1volume snd_entchannel5volume");
- me.TD(me, 1, 0.8, e = makeXonoticSliderCheckBox(-1000000, 1, s, "Weapons:"));
+ me.TD(me, 1, 0.8, e = makeXonoticSliderCheckBox(-1000000, 1, s, _("Weapons:")));
me.TD(me, 1, 2, s);
- setDependentStringNotEqual(e, "volume", "0");
- setDependentStringNotEqual(s, "volume", "0");
+ setDependentStringNotEqual(e, "mastervolume", "0");
+ setDependentStringNotEqual(s, "mastervolume", "0");
me.TR(me);
me.gotoRC(me, 0, 3.5); me.setFirstColumn(me, me.currentColumn);
- me.TD(me, 1, 1, e = makeXonoticTextLabel(0, "Frequency:"));
+ me.TD(me, 1, 1, e = 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");
- e.addValue(e, "16 kHz", "16000");
- e.addValue(e, "22.05 kHz", "22050");
- e.addValue(e, "24 kHz", "24000");
- e.addValue(e, "32 kHz", "32000");
- e.addValue(e, "44.1 kHz", "44100");
- e.addValue(e, "48 kHz", "48000");
+ e.addValue(e, _("8 kHz"), "8000");
+ e.addValue(e, _("11.025 kHz"), "11025");
+ e.addValue(e, _("16 kHz"), "16000");
+ e.addValue(e, _("22.05 kHz"), "22050");
+ e.addValue(e, _("24 kHz"), "24000");
+ e.addValue(e, _("32 kHz"), "32000");
+ e.addValue(e, _("44.1 kHz"), "44100");
+ 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, e = makeXonoticTextLabel(0, _("Channels:")));
me.TD(me, 1, 2, e = makeXonoticTextSlider("snd_channels"));
- e.addValue(e, "Mono", "1");
- e.addValue(e, "Stereo", "2");
- e.addValue(e, "2.1", "3");
- e.addValue(e, "3.1", "4");
- e.addValue(e, "4.1", "5");
- e.addValue(e, "5.1", "6");
- e.addValue(e, "6.1", "7");
- e.addValue(e, "7.1", "8");
+ e.addValue(e, _("Mono"), "1");
+ e.addValue(e, _("Stereo"), "2");
+ e.addValue(e, _("2.1"), "3");
+ e.addValue(e, _("4"), "4");
+ e.addValue(e, _("5"), "5");
+ e.addValue(e, _("5.1"), "6");
+ e.addValue(e, _("6.1"), "7");
+ e.addValue(e, _("7.1"), "8");
e.configureXonoticTextSliderValues(e);
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 2.8, e = makeXonoticCheckBox(0, "snd_swapstereo", "Swap Stereo"));
+ me.TD(me, 1, 2.8, e = makeXonoticCheckBox(0, "snd_swapstereo", _("Swap Stereo")));
setDependent(e, "snd_channels", 1.5, 0.5);
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 2.8, e = makeXonoticCheckBox(0, "snd_spatialization_control", "Headphone friendly mode"));
+ me.TD(me, 1, 2.8, e = makeXonoticCheckBox(0, "snd_spatialization_control", _("Headphone friendly mode")));
setDependent(e, "snd_channels", 1.5, 0.5);
me.TR(me);
me.TR(me);
- me.TD(me, 1, 1, e = makeXonoticTextLabel(0, "Spatial voices:"));
- me.TD(me, 1, 2/3, e = makeXonoticRadioButton(1, "cl_voice_directional", "0", "None"));
- me.TD(me, 1, 2/3, e = makeXonoticRadioButton(1, "cl_voice_directional", "2", "Taunts"));
- me.TD(me, 1, 2/3, e = makeXonoticRadioButton(1, "cl_voice_directional", "1", "All"));
+ 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:"));
+ 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, "Very short", "3");
- e.addValue(e, "Short", "2");
- e.addValue(e, "Normal", "0.5");
- e.addValue(e, "Long", "0.25");
- e.addValue(e, "Full", "0.015625");
+ 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);
sl = makeXonoticSlider(0.15, 1, 0.05, "cl_autotaunt");
sl.valueDisplayMultiplier = 100;
sl.valueDigits = 0;
- me.TD(me, 1, 1, e = makeXonoticSliderCheckBox(0, 1, sl, "Automatic taunts"));
+ me.TD(me, 1, 3, e = makeXonoticSliderCheckBox(0, 1, sl, _("Automatic taunts")));
if(sl.value != e.savedValue)
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, e = makeXonoticTextLabel(0, _("Frequency:")));
me.TD(me, 1, 2, sl);
me.TR(me);
me.TR(me);
- me.TD(me, 1, 1, e = makeXonoticTextLabel(0, "Time warning:"));
+ me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Time warning:")));
me.TD(me, 1, 2, e = makeXonoticTextSlider("cl_sound_maptime_warning"));
- e.addValue(e, "None", "0");
- e.addValue(e, "1 minute", "1");
- e.addValue(e, "5 minutes", "2");
- e.addValue(e, "Both", "3");
+ e.addValue(e, ZCTX(_("WRN^None")), "0");
+ e.addValue(e, _("1 minute"), "1");
+ e.addValue(e, _("5 minutes"), "2");
+ e.addValue(e, ZCTX(_("WRN^Both")), "3");
e.configureXonoticTextSliderValues(e);
me.TR(me);
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "cl_hitsound", "Hit indicator"));
+ me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "cl_hitsound", _("Hit indicator")));
me.TR(me);
- me.TD(me, 1, 3, e = makeXonoticCheckBoxEx(2, 0, "menu_sounds", "Menu sounds"));
+ me.TD(me, 1, 3, e = makeXonoticCheckBoxEx(2, 0, "menu_sounds", _("Menu sounds")));
me.gotoRC(me, me.rows - 1, 0);
- me.TD(me, 1, me.columns, makeXonoticCommandButton("Apply immediately", '0 0 0', "snd_restart; sendcvar cl_hitsound; sendcvar cl_autotaunt; sendcvar cl_voice_directional; sendcvar cl_voice_directional_taunt_attenuation", COMMANDBUTTON_APPLY));
+ me.TD(me, 1, me.columns, makeXonoticCommandButton(_("Apply immediately"), '0 0 0', "snd_restart; sendcvar cl_hitsound; sendcvar cl_autotaunt; sendcvar cl_voice_directional; sendcvar cl_voice_directional_taunt_attenuation", COMMANDBUTTON_APPLY));
}
#endif
#ifdef INTERFACE
CLASS(XonoticEffectsSettingsTab) EXTENDS(XonoticTab)
METHOD(XonoticEffectsSettingsTab, fill, void(entity))
- ATTRIB(XonoticEffectsSettingsTab, title, string, "Effects")
+ ATTRIB(XonoticEffectsSettingsTab, title, string, _("Effects"))
ATTRIB(XonoticEffectsSettingsTab, intendedWidth, float, 0.9)
ATTRIB(XonoticEffectsSettingsTab, rows, float, 17)
ATTRIB(XonoticEffectsSettingsTab, columns, float, 6.5)
entity e, s;
float n;
me.TR(me);
- me.TD(me, 1, 1, e = makeXonoticTextLabel(0, "Quality preset:"));
+ me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Quality preset:")));
n = 5 + 2 * !!cvar("developer");
if(cvar("developer"))
- me.TD(me, 1, 5.5 / n, e = makeXonoticCommandButton("OMG!", '1 0 1', "exec effects-omg.cfg", 0));
- me.TD(me, 1, 5.5 / n, e = makeXonoticCommandButton("Low", '0 0 0', "exec effects-low.cfg", 0));
- me.TD(me, 1, 5.5 / n, e = makeXonoticCommandButton("Medium", '0 0 0', "exec effects-med.cfg", 0));
- me.TD(me, 1, 5.5 / n, e = makeXonoticCommandButton("Normal", '0 0 0', "exec effects-normal.cfg", 0));
- me.TD(me, 1, 5.5 / n, e = makeXonoticCommandButton("High", '0 0 0', "exec effects-high.cfg", 0));
- me.TD(me, 1, 5.5 / n, e = makeXonoticCommandButton("Ultra", '0 0 0', "exec effects-ultra.cfg", 0));
+ me.TD(me, 1, 5.5 / n, e = makeXonoticCommandButton(ZCTX(_("PRE^OMG!")), '1 0 1', "exec effects-omg.cfg", 0));
+ me.TD(me, 1, 5.5 / n, e = makeXonoticCommandButton(ZCTX(_("PRE^Low")), '0 0 0', "exec effects-low.cfg", 0));
+ me.TD(me, 1, 5.5 / n, e = makeXonoticCommandButton(ZCTX(_("PRE^Medium")), '0 0 0', "exec effects-med.cfg", 0));
+ me.TD(me, 1, 5.5 / n, e = makeXonoticCommandButton(ZCTX(_("PRE^Normal")), '0 0 0', "exec effects-normal.cfg", 0));
+ me.TD(me, 1, 5.5 / n, e = makeXonoticCommandButton(ZCTX(_("PRE^High")), '0 0 0', "exec effects-high.cfg", 0));
+ me.TD(me, 1, 5.5 / n, e = makeXonoticCommandButton(ZCTX(_("PRE^Ultra")), '0 0 0', "exec effects-ultra.cfg", 0));
if(cvar("developer"))
- me.TD(me, 1, 5.5 / n, e = makeXonoticCommandButton("Ultimate", '0 0 0', "exec effects-ultimate.cfg", 0));
+ me.TD(me, 1, 5.5 / n, e = makeXonoticCommandButton(ZCTX(_("PRE^Ultimate")), '0 0 0', "exec effects-ultimate.cfg", 0));
me.TR(me);
me.TR(me);
- me.TD(me, 1, 1, e = makeXonoticTextLabel(0, "Geometry detail:"));
+ me.TD(me, 1, 1.1, e = makeXonoticTextLabel(0, _("Geometry detail:")));
me.TD(me, 1, 2, e = makeXonoticTextSlider("r_subdivisions_tolerance"));
- e.addValue(e, "Lowest", "16");
- e.addValue(e, "Low", "8");
- e.addValue(e, "Normal", "4");
- e.addValue(e, "Good", "3");
- e.addValue(e, "Best", "2");
- e.addValue(e, "Insane", "1");
+ e.addValue(e, ZCTX(_("DET^Lowest")), "16");
+ e.addValue(e, ZCTX(_("DET^Low")), "8");
+ e.addValue(e, ZCTX(_("DET^Normal")), "4");
+ e.addValue(e, ZCTX(_("DET^Good")), "3");
+ 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, "Antialiasing:"));
+ me.TD(me, 1, 1.1, e = makeXonoticTextLabel(0, _("Antialiasing:")));
me.TD(me, 1, 2, e = makeXonoticTextSlider("vid_samples"));
- e.addValue(e, "Disabled", "1");
- e.addValue(e, "2x", "2");
- e.addValue(e, "4x", "4");
+ e.addValue(e, ZCTX(_("AA^Disabled")), "1");
+ e.addValue(e, _("2x"), "2");
+ e.addValue(e, _("4x"), "4");
e.configureXonoticTextSliderValues(e);
me.TR(me);
me.TR(me);
- me.TD(me, 1, 1, e = makeXonoticTextLabel(0, "Texture resolution:"));
+ me.TD(me, 1, 1.1, e = makeXonoticTextLabel(0, _("Texture resolution:")));
me.TD(me, 1, 2, e = makeXonoticPicmipSlider());
if(cvar("developer"))
- e.addValue(e, "Leet", "1337");
- e.addValue(e, "Lowest", "2");
- e.addValue(e, "Low", "1");
- e.addValue(e, "Normal", "0");
- e.addValue(e, "Good", "-1");
- e.addValue(e, "Best", "-2");
+ e.addValue(e, ZCTX(_("RES^Leet")), "1337");
+ e.addValue(e, ZCTX(_("RES^Lowest")), "2");
+ e.addValue(e, ZCTX(_("RES^Low")), "1");
+ e.addValue(e, ZCTX(_("RES^Normal")), "0");
+ e.addValue(e, ZCTX(_("RES^Good")), "-1");
+ e.addValue(e, ZCTX(_("RES^Best")), "-2");
e.configureXonoticTextSliderValues(e);
me.TR(me);
me.TDempty(me, 0.2);
case 0:
break;
case 1:
- me.TD(me, 1, 2.8, e = makeXonoticCheckBox(1, "r_texture_dds_load", "Avoid lossy texture compression"));
+ me.TD(me, 1, 2.8, e = makeXonoticCheckBox(1, "r_texture_dds_load", _("Avoid lossy texture compression")));
break;
case 2:
- me.TD(me, 1, 2.8, e = makeXonoticCheckBox(1, "r_texture_dds_load", "Avoid lossy texture compression"));
+ me.TD(me, 1, 2.8, e = makeXonoticCheckBox(1, "r_texture_dds_load", _("Avoid lossy texture compression")));
makeMulti(e, "gl_texturecompression");
break;
}
}
me.TR(me);
- me.TD(me, 1, 1, e = makeXonoticTextLabel(0, "Anisotropy:"));
+ me.TD(me, 1, 1.1, e = makeXonoticTextLabel(0, _("Anisotropy:")));
me.TD(me, 1, 2, e = makeXonoticTextSlider("gl_texture_anisotropy"));
- e.addValue(e, "Disabled", "1");
- e.addValue(e, "2x", "2");
- e.addValue(e, "4x", "4");
- e.addValue(e, "8x", "8");
- e.addValue(e, "16x", "16");
+ e.addValue(e, ZCTX(_("ANISO^Disabled")), "1");
+ e.addValue(e, _("2x"), "2");
+ e.addValue(e, _("4x"), "4");
+ e.addValue(e, _("8x"), "8");
+ e.addValue(e, _("16x"), "16");
e.configureXonoticTextSliderValues(e);
me.TR(me);
me.TR(me);
- me.TD(me, 1, 1, e = makeXonoticTextLabel(0, "Particle quality:"));
- me.TD(me, 1, 2, e = makeXonoticSlider(0.2, 1.0, 0.1, "cl_particles_quality"));
+ me.TD(me, 1, 1.1, e = makeXonoticTextLabel(0, _("Particle quality:")));
+ me.TD(me, 1, 1.9, e = makeXonoticSlider(0.2, 1.0, 0.1, "cl_particles_quality"));
me.TR(me);
- me.TD(me, 1, 1, e = makeXonoticTextLabel(0, "Particle dist.:"));
- me.TD(me, 1, 2, e = makeXonoticSlider(500, 2000, 100, "r_drawparticles_drawdistance"));
+ me.TD(me, 1, 1.1, e = makeXonoticTextLabel(0, _("Particle distance:")));
+ me.TD(me, 1, 1.9, e = makeXonoticSlider(500, 2000, 100, "r_drawparticles_drawdistance"));
me.TR(me);
me.TR(me);
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "cl_decals", "Decals"));
+ me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "cl_decals", _("Decals")));
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 0.8, e = makeXonoticTextLabel(0, "Distance:"));
+ me.TD(me, 1, 0.9, e = makeXonoticTextLabel(0, _("Distance:")));
setDependent(e, "cl_decals", 1, 1);
- me.TD(me, 1, 2, e = makeXonoticSlider(200, 500, 20, "r_drawdecals_drawdistance"));
+ me.TD(me, 1, 1.9, e = makeXonoticSlider(200, 500, 20, "r_drawdecals_drawdistance"));
setDependent(e, "cl_decals", 1, 1);
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 0.8, e = makeXonoticTextLabel(0, "Time:"));
+ me.TD(me, 1, 0.9, e = makeXonoticTextLabel(0, _("Time:")));
setDependent(e, "cl_decals", 1, 1);
- me.TD(me, 1, 2, e = makeXonoticSlider(1, 20, 1, "cl_decals_time"));
+ me.TD(me, 1, 1.9, e = makeXonoticSlider(1, 20, 1, "cl_decals_time"));
setDependent(e, "cl_decals", 1, 1);
me.gotoRC(me, 2, 3.5); me.setFirstColumn(me, me.currentColumn);
- me.TD(me, 1, 2, e = makeXonoticCheckBox(1, "mod_q3bsp_nolightmaps", "Use lightmaps"));
- me.TD(me, 1, 1.9, e = makeXonoticCheckBox(0, "r_glsl_deluxemapping", "Deluxe mapping"));
+ me.TD(me, 1, 1.2, e = makeXonoticCheckBox(1, "mod_q3bsp_nolightmaps", _("Use lightmaps")));
+ me.TD(me, 1, 1.2, e = makeXonoticCheckBox(0, "r_glsl_deluxemapping", _("Deluxe mapping")));
setDependentAND(e, "vid_gl20", 1, 1, "mod_q3bsp_nolightmaps", 0, 0);
- me.TD(me, 1, 0.7, e = makeXonoticCheckBox(0, "r_shadow_gloss", "Gloss"));
+ me.TD(me, 1, 0.6, e = makeXonoticCheckBox(0, "r_shadow_gloss", _("Gloss")));
setDependentAND3(e, "vid_gl20", 1, 1, "r_glsl_deluxemapping", 1, 2, "mod_q3bsp_nolightmaps", 0, 0);
me.TR(me);
- me.TD(me, 1, 1.5, e = makeXonoticCheckBox(0, "r_glsl_offsetmapping", "Offset mapping"));
+ me.TD(me, 1, 1.2, e = makeXonoticCheckBox(0, "r_glsl_offsetmapping", _("Offset mapping")));
setDependent(e, "vid_gl20", 1, 1);
- me.TD(me, 1, 1.9, e = makeXonoticCheckBox(0, "r_glsl_offsetmapping_reliefmapping", "Relief mapping"));
+ me.TD(me, 1, 1.8, e = makeXonoticCheckBox(0, "r_glsl_offsetmapping_reliefmapping", _("Relief mapping")));
setDependentAND(e, "vid_gl20", 1, 1, "r_glsl_offsetmapping", 1, 1);
me.TR(me);
- me.TD(me, 1, 1, e = makeXonoticCheckBox(0, "r_water", "Reflections:"));
+ me.TD(me, 1, 1, e = makeXonoticCheckBox(0, "r_water", _("Reflections:")));
setDependent(e, "vid_gl20", 1, 1);
me.TD(me, 1, 2, e = makeXonoticTextSlider("r_water_resolutionmultiplier"));
- e.addValue(e, "Blurred", "0.25");
- e.addValue(e, "Good", "0.5");
- e.addValue(e, "Sharp", "1");
+ e.addValue(e, _("Blurred"), "0.25");
+ e.addValue(e, ZCTX(_("REFL^Good")), "0.5");
+ e.addValue(e, _("Sharp"), "1");
e.configureXonoticTextSliderValues(e);
setDependentAND(e, "vid_gl20", 1, 1, "r_water", 1, 1);
me.TR(me);
if(cvar("developer"))
- me.TD(me, 1, 3, e = makeXonoticCheckBoxEx(3, 0, "r_showsurfaces", "Show surfaces"));
+ me.TD(me, 1, 3, e = makeXonoticCheckBoxEx(3, 0, "r_showsurfaces", _("Show surfaces")));
me.TR(me);
- me.TD(me, 1, 3, e = makeXonoticRadioButton(1, string_null, string_null, "No dynamic lighting"));
+ me.TD(me, 1, 3, e = makeXonoticRadioButton(1, string_null, string_null, _("No dynamic lighting")));
me.TR(me);
- me.TD(me, 1, 3, e = makeXonoticRadioButton(1, "gl_flashblend", string_null, "Flash blend approximation"));
+ me.TD(me, 1, 3, e = makeXonoticRadioButton(1, "gl_flashblend", string_null, _("Flash blend approximation")));
me.TR(me);
- me.TD(me, 1, 2, e = makeXonoticRadioButton(1, "r_shadow_realtime_dlight", string_null, "Realtime dynamic lighting"));
- me.TD(me, 1, 1, e = makeXonoticCheckBox(0, "r_shadow_realtime_dlight_shadows", "Shadows"));
+ me.TD(me, 1, 2, e = makeXonoticRadioButton(1, "r_shadow_realtime_dlight", string_null, _("Realtime dynamic lighting")));
+ me.TD(me, 1, 1, e = makeXonoticCheckBox(0, "r_shadow_realtime_dlight_shadows", _("Shadows")));
setDependent(e, "r_shadow_realtime_dlight", 1, 1);
me.TR(me);
- me.TD(me, 1, 2, e = makeXonoticCheckBox(0, "r_shadow_realtime_world", "Realtime world lighting"));
- me.TD(me, 1, 1, e = makeXonoticCheckBox(0, "r_shadow_realtime_world_shadows", "Shadows"));
+ me.TD(me, 1, 2, e = makeXonoticCheckBox(0, "r_shadow_realtime_world", _("Realtime world lighting")));
+ me.TD(me, 1, 1, e = makeXonoticCheckBox(0, "r_shadow_realtime_world_shadows", _("Shadows")));
setDependent(e, "r_shadow_realtime_world", 1, 1);
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 1.8, e = makeXonoticCheckBox(0, "r_shadow_usenormalmap", "Use normal maps"));
+ me.TD(me, 1, 1.8, e = makeXonoticCheckBox(0, "r_shadow_usenormalmap", _("Use normal maps")));
setDependentOR(e, "r_shadow_realtime_dlight", 1, 1, "r_shadow_realtime_world", 1, 1);
- me.TD(me, 1, 1, e = makeXonoticCheckBox(0, "r_shadow_shadowmapping", "Soft shadows"));
+ me.TD(me, 1, 1, e = makeXonoticCheckBox(0, "r_shadow_shadowmapping", _("Soft shadows")));
setDependentWeird(e, someShadowCvarIsEnabled);
me.TR(me);
- me.TD(me, 1, 1, e = makeXonoticCheckBox(0, "r_coronas", "Coronas"));
+ me.TD(me, 1, 1, e = makeXonoticCheckBox(0, "r_coronas", _("Coronas")));
+ me.TD(me, 1, 2, e = makeXonoticCheckBox(0, "r_coronas_occlusionquery", _("Use Occlusion Queries")));
me.TR(me);
- me.TD(me, 1, 1, e = makeXonoticCheckBox(0, "r_bloom", "Bloom"));
+ me.TD(me, 1, 1.2, e = makeXonoticCheckBox(0, "r_bloom", _("Bloom")));
setDependent(e, "r_hdr", 0, 0);
- me.TD(me, 1, 2, e = makeXonoticCheckBoxEx(2, 0, "r_hdr", "High Dynamic Range (HDR)"));
+ me.TD(me, 1, 1.8, e = makeXonoticCheckBoxEx(2, 0, "r_hdr", _("High Dynamic Range (HDR)")));
me.TR(me);
s = makeXonoticSlider(0.1, 1, 0.1, "r_motionblur");
- me.TD(me, 1, 1, e = makeXonoticSliderCheckBox(0, 1, s, "Motion blur:"));
+ me.TD(me, 1, 1, e = makeXonoticSliderCheckBox(0, 1, s, _("Motion blur:")));
if(s.value != e.savedValue)
e.savedValue = 0.5; // default
me.TD(me, 1, 2, s);
me.TR(me);
s = makeXonoticSlider(0.1, 1, 0.1, "r_damageblur");
- me.TD(me, 1, 1, e = makeXonoticSliderCheckBox(0, 1, s, "Damage blur:"));
+ me.TD(me, 1, 1, e = makeXonoticSliderCheckBox(0, 1, s, _("Damage blur:")));
if(s.value != e.savedValue)
e.savedValue = 0.4; // default
me.TD(me, 1, 2, s);
me.gotoRC(me, me.rows - 1, 0);
- me.TD(me, 1, me.columns, makeXonoticCommandButton("Apply immediately", '0 0 0', "vid_restart", COMMANDBUTTON_APPLY));
+ me.TD(me, 1, me.columns, makeXonoticCommandButton(_("Apply immediately"), '0 0 0', "vid_restart", COMMANDBUTTON_APPLY));
}
#endif
#ifdef INTERFACE
CLASS(XonoticInputSettingsTab) EXTENDS(XonoticTab)
METHOD(XonoticInputSettingsTab, fill, void(entity))
- ATTRIB(XonoticInputSettingsTab, title, string, "Input")
+ ATTRIB(XonoticInputSettingsTab, title, string, _("Input"))
ATTRIB(XonoticInputSettingsTab, intendedWidth, float, 0.9)
ATTRIB(XonoticInputSettingsTab, rows, float, 17)
ATTRIB(XonoticInputSettingsTab, columns, float, 6.5)
entity kb;
me.TR(me);
- me.TD(me, 1, 3, e = makeXonoticTextLabel(0, "Key bindings:"));
+ me.TD(me, 1, 3, e = makeXonoticTextLabel(0, _("Key bindings:")));
me.TR(me);
me.TD(me, me.rows - 2, 3.3, kb = makeXonoticKeyBinder());
me.gotoRC(me, me.rows - 1, 0);
me.TR(me);
- me.TD(me, 1, 1.1, e = makeXonoticButton("Change key...", '0 0 0'));
+ me.TD(me, 1, 1.1, e = makeXonoticButton(_("Change key..."), '0 0 0'));
e.onClick = KeyBinder_Bind_Change;
e.onClickEntity = kb;
kb.keyGrabButton = e;
- me.TD(me, 1, 1.1, e = makeXonoticButton("Edit...", '0 0 0'));
+ me.TD(me, 1, 1.1, e = makeXonoticButton(_("Edit..."), '0 0 0'));
e.onClick = KeyBinder_Bind_Edit;
e.onClickEntity = kb;
kb.userbindEditButton = e;
kb.userbindEditDialog = main.userbindEditDialog;
main.userbindEditDialog.keybindBox = kb;
- me.TD(me, 1, 1.1, e = makeXonoticButton("Clear", '0 0 0'));
+ me.TD(me, 1, 1.1, e = makeXonoticButton(_("Clear"), '0 0 0'));
e.onClick = KeyBinder_Bind_Clear;
e.onClickEntity = kb;
me.gotoRC(me, 0, 3.5); me.setFirstColumn(me, me.currentColumn);
- me.TD(me, 1, 1, e = makeXonoticTextLabel(0, "Sensitivity:"));
+ me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Sensitivity:")));
me.TD(me, 1, 2, e = makeXonoticSlider(1, 32, 0.2, "sensitivity"));
me.TR(me);
- me.TD(me, 1, 1, e = makeXonoticTextLabel(0, "UI mouse speed:"));
- me.TD(me, 1, 2, e = makeXonoticSlider(0.2, 4.0, 0.1, "menu_mouse_speed"));
+ if(cvar("menu_mouse_absolute") == 0) // TODO remove this entirely later
+ {
+ me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("UI mouse speed:")));
+ me.TD(me, 1, 2, e = makeXonoticSlider(0.2, 4.0, 0.1, "menu_mouse_speed"));
+ }
me.TR(me);
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "m_filter", "Mouse filter"));
+ me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "m_filter", _("Mouse filter")));
me.TR(me);
- me.TD(me, 1, 3, e = makeXonoticCheckBox(1.022, "m_pitch", "Invert mouse"));
+ me.TD(me, 1, 3, e = makeXonoticCheckBox(1.022, "m_pitch", _("Invert mouse")));
me.TR(me);
if(cvar_type("joy_enable") & CVAR_TYPEFLAG_ENGINE)
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "joy_enable", "Use joystick input"));
+ me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "joy_enable", _("Use joystick input")));
else if(cvar_type("joystick") & CVAR_TYPEFLAG_ENGINE)
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "joystick", "Use joystick input"));
+ me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "joystick", _("Use joystick input")));
me.TR(me);
if(cvar_type("vid_dgamouse") & CVAR_TYPEFLAG_ENGINE)
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "vid_dgamouse", "Turn off OS mouse acceleration"));
+ me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "vid_dgamouse", _("Turn off OS mouse acceleration")));
else if(cvar_type("apple_mouse_noaccel") & CVAR_TYPEFLAG_ENGINE)
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "apple_mouse_noaccel", "Turn off OS mouse acceleration"));
+ me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "apple_mouse_noaccel", _("Turn off OS mouse acceleration")));
me.TR(me);
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "con_closeontoggleconsole", "\"enter console\" also closes"));
- me.TR(me);
- me.TD(me, 1, 1, e = makeXonoticTextLabel(0, "Show binds:"));
- me.TD(me, 1, 2, e = makeXonoticTextSlider("sbar_showbinds"));
- e.addValue(e, "Actions", "0");
- e.addValue(e, "Bound keys", "1");
- e.addValue(e, "Both", "2");
- e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TD(me, 1, 3, e = makeXonoticCheckBoxEx(2, 0, "cl_showpressedkeys", "Show pressed keys"));
+ me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "con_closeontoggleconsole", _("\"enter console\" also closes")));
}
#endif
CLASS(XonoticUserbindEditDialog) EXTENDS(XonoticDialog)
METHOD(XonoticUserbindEditDialog, loadUserBind, void(entity, string, string, string))
METHOD(XonoticUserbindEditDialog, fill, void(entity))
- ATTRIB(XonoticUserbindEditDialog, title, string, "User defined key bind")
+ ATTRIB(XonoticUserbindEditDialog, title, string, _("User defined key bind"))
ATTRIB(XonoticUserbindEditDialog, color, vector, SKINCOLOR_DIALOG_USERBIND)
ATTRIB(XonoticUserbindEditDialog, intendedWidth, float, 0.7)
ATTRIB(XonoticUserbindEditDialog, rows, float, 4)
{
entity e;
me.TR(me);
- me.TD(me, 1, 1, e = makeXonoticTextLabel(0, "Name:"));
+ me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Name:")));
me.TD(me, 1, me.columns - 1, me.nameBox = makeXonoticInputBox(0, string_null));
me.TR(me);
- me.TD(me, 1, 1, e = makeXonoticTextLabel(0, "Command when pressed:"));
+ me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Command when pressed:")));
me.TD(me, 1, me.columns - 1, me.commandPressBox = makeXonoticInputBox(0, string_null));
me.TR(me);
- me.TD(me, 1, 1, e = makeXonoticTextLabel(0, "Command when released:"));
+ me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Command when released:")));
me.TD(me, 1, me.columns - 1, me.commandReleaseBox = makeXonoticInputBox(0, string_null));
me.TR(me);
- me.TD(me, 1, me.columns / 2, e = makeXonoticButton("Save", '0 0 0'));
+ me.TD(me, 1, me.columns / 2, e = makeXonoticButton(_("Save"), '0 0 0'));
e.onClick = XonoticUserbindEditDialog_Save;
e.onClickEntity = me;
- me.TD(me, 1, me.columns / 2, e = makeXonoticButton("Cancel", '0 0 0'));
+ me.TD(me, 1, me.columns / 2, e = makeXonoticButton(_("Cancel"), '0 0 0'));
e.onClick = Dialog_Close;
e.onClickEntity = me;
}
#ifdef INTERFACE
CLASS(XonoticMiscSettingsTab) EXTENDS(XonoticTab)
METHOD(XonoticMiscSettingsTab, fill, void(entity))
- ATTRIB(XonoticMiscSettingsTab, title, string, "Misc")
+ ATTRIB(XonoticMiscSettingsTab, title, string, _("Misc"))
ATTRIB(XonoticMiscSettingsTab, intendedWidth, float, 0.9)
ATTRIB(XonoticMiscSettingsTab, rows, float, 17)
ATTRIB(XonoticMiscSettingsTab, columns, float, 6.5)
entity sk;
me.TR(me);
- me.TD(me, 1, 3, e = makeXonoticTextLabel(0, "Menu skins:"));
+ me.TD(me, 1, 3, e = makeXonoticTextLabel(0, _("Menu skins:")));
me.TR(me);
me.TD(me, me.rows - 2, 3, sk = makeXonoticSkinList());
me.gotoRC(me, me.rows - 1, 0);
- me.TD(me, 1, 3, e = makeXonoticButton("Apply immediately", '0 0 0'));
+ me.TD(me, 1, 3, e = makeXonoticButton(_("Apply immediately"), '0 0 0'));
e.onClick = SetSkin_Click;
e.onClickEntity = sk;
me.gotoRC(me, 0, 3.5); me.setFirstColumn(me, me.currentColumn);
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "showtime", "Show current time"));
+ me.TD(me, 1, 3, e = makeXonoticTextLabel(0, _("Text language:")));
me.TR(me);
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "showdate", "Show current date"));
+ me.TD(me, 3, 3, sk = makeXonoticLanguageList());
me.TR(me);
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "showfps", "Show frames per second"));
me.TR(me);
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "cl_showspeed", "Speedometer"));
+ me.TR(me);
+ me.TD(me, 1, 3, e = makeXonoticButton(_("Apply immediately"), '0 0 0'));
+ e.onClick = SetLanguage_Click;
+ e.onClickEntity = sk;
+
+ me.TR(me);
+ me.TR(me);
+ me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "showtime", _("Show current time")));
+ me.TR(me);
+ me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "showdate", _("Show current date")));
+ me.TR(me);
+ me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "showfps", _("Show frames per second")));
+ me.TR(me);
+ me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "cl_showspeed", _("Speedometer")));
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 2.8/3, e = makeXonoticRadioButton(1, "cl_showspeed_unit", "0", "qu/s (hidden)"));
+ me.TD(me, 1, 2.8/3, e = makeXonoticRadioButton(1, "cl_showspeed_unit", "0", _("qu/s (hidden)")));
setDependent(e, "cl_showspeed", 1, 1);
- me.TD(me, 1, 2.8/3, e = makeXonoticRadioButton(1, "cl_showspeed_unit", "1", "qu/s"));
+ me.TD(me, 1, 2.8/3, e = makeXonoticRadioButton(1, "cl_showspeed_unit", "1", _("qu/s")));
setDependent(e, "cl_showspeed", 1, 1);
- me.TD(me, 1, 2.8/3, e = makeXonoticRadioButton(1, "cl_showspeed_unit", "2", "m/s"));
+ me.TD(me, 1, 2.8/3, e = makeXonoticRadioButton(1, "cl_showspeed_unit", "2", _("m/s")));
setDependent(e, "cl_showspeed", 1, 1);
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 2.8/3, e = makeXonoticRadioButton(1, "cl_showspeed_unit", "3", "km/h"));
+ me.TD(me, 1, 2.8/3, e = makeXonoticRadioButton(1, "cl_showspeed_unit", "3", _("km/h")));
setDependent(e, "cl_showspeed", 1, 1);
- me.TD(me, 1, 2.8/3, e = makeXonoticRadioButton(1, "cl_showspeed_unit", "4", "mph"));
+ me.TD(me, 1, 2.8/3, e = makeXonoticRadioButton(1, "cl_showspeed_unit", "4", _("mph")));
setDependent(e, "cl_showspeed", 1, 1);
- me.TD(me, 1, 2.8/3, e = makeXonoticRadioButton(1, "cl_showspeed_unit", "5", "knots"));
+ me.TD(me, 1, 2.8/3, e = makeXonoticRadioButton(1, "cl_showspeed_unit", "5", _("knots")));
setDependent(e, "cl_showspeed", 1, 1);
me.TR(me);
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "cl_showacceleration", "Show accelerometer"));
+ me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "cl_showacceleration", _("Show accelerometer")));
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 2.8/2, e = makeXonoticTextLabel(0, "Accelerometer scale:"));
+ me.TD(me, 1, 2.8/2, e = makeXonoticTextLabel(0, _("Accelerometer scale:")));
setDependent(e, "cl_showacceleration", 1, 1);
me.TD(me, 1, 2.8/2, e = makeXonoticSlider(0.2, 2, 0.2, "cl_showacceleration_scale"));
setDependent(e, "cl_showacceleration", 1, 1);
me.TR(me);
me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 2.8, e = makeXonoticCheckBox(0, "cl_maxfps_alwayssleep", "Minimize input latency"));
+ me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "cl_maxfps_alwayssleep", _("Minimize input latency")));
me.TR(me);
me.TR(me);
me.TDempty(me, 0.5);
- me.TD(me, 1, 2, e = makeXonoticButton("Advanced settings...", '0 0 0'));
+ me.TD(me, 1, 2, e = makeXonoticButton(_("Advanced settings..."), '0 0 0'));
e.onClick = DialogOpenButton_Click;
e.onClickEntity = main.cvarsDialog;
}
#ifdef INTERFACE
CLASS(XonoticCvarsDialog) EXTENDS(XonoticDialog)
- METHOD(XonoticCvarsDialog, toString, string(entity))
METHOD(XonoticCvarsDialog, fill, void(entity))
METHOD(XonoticCvarsDialog, showNotify, void(entity))
- ATTRIB(XonoticCvarsDialog, title, string, "Advanced settings")
+ ATTRIB(XonoticCvarsDialog, title, string, _("Advanced settings"))
ATTRIB(XonoticCvarsDialog, color, vector, SKINCOLOR_DIALOG_CVARS)
ATTRIB(XonoticCvarsDialog, intendedWidth, float, 0.8)
ATTRIB(XonoticCvarsDialog, rows, float, 25)
{
loadAllCvars(me);
}
-string XonoticCvarsDialog_toString(entity me)
-{
- return "XXX";
-}
void XonoticCvarsDialog_fill(entity me)
{
entity e, cvarlist, btn;
cvarlist = makeXonoticCvarList();
me.TR(me);
- me.TD(me, 1, 1, e = makeXonoticTextLabel(0, "Cvar filter:"));
- me.TD(me, 1, 0.5, btn = makeXonoticButton("Clear", '0 0 0'));
+ me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Cvar filter:")));
+ me.TD(me, 1, 0.5, btn = makeXonoticButton(_("Clear"), '0 0 0'));
me.TD(me, 1, me.columns - 1.5, e = makeXonoticInputBox(0, string_null));
e.onChange = CvarList_Filter_Change;
e.onChangeEntity = cvarlist;
me.TR(me);
me.TD(me, me.rows - me.currentRow - 7, me.columns, cvarlist);
me.gotoRC(me, me.rows - 7, 0);
- me.TD(me, 1, 1, e = makeXonoticTextLabel(0, "Setting:"));
+ me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Setting:")));
me.TD(me, 1, me.columns - 1, e = makeXonoticTextLabel(0, string_null));
cvarlist.cvarNameBox = e;
me.TR(me);
- me.TD(me, 1, 1, e = makeXonoticTextLabel(0, "Type:"));
+ me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Type:")));
me.TD(me, 1, me.columns - 1, e = makeXonoticTextLabel(0, string_null));
cvarlist.cvarTypeBox = e;
me.TR(me);
- me.TD(me, 1, 1, e = makeXonoticTextLabel(0, "Value:"));
+ me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Value:")));
me.TD(me, 1, me.columns - 2, e = makeXonoticInputBox(0, string_null));
cvarlist.cvarValueBox = e;
e.onChange = CvarList_Value_Change;
e.onChangeEntity = cvarlist;
+ e.onEnter = CvarList_End_Editing;
+ e.onEnterEntity = cvarlist;
me.TD(me, 1, 1, e = makeXonoticButton(string_null, SKINCOLOR_CVARLIST_REVERTBUTTON));
cvarlist.cvarDefaultBox = e;
e.onClick = CvarList_Revert_Click;
e.allowCut = 1;
e.marginLeft = e.marginRight = 0.5;
me.TR(me);
- me.TD(me, 1, 1, e = makeXonoticTextLabel(0, "Description:"));
+ me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Description:")));
me.TD(me, 1, me.columns - 1, e = makeXonoticTextLabel(0, string_null));
cvarlist.cvarDescriptionBox = e;
e.allowWrap = 1;
me.gotoRC(me, me.rows - 1, 0);
- me.TD(me, 1, me.columns, e = makeXonoticButton("OK", '0 0 0'));
+ me.TD(me, 1, me.columns, e = makeXonoticButton(_("OK"), '0 0 0'));
e.onClick = Dialog_Close;
e.onClickEntity = me;
}
#ifdef INTERFACE
CLASS(XonoticNetworkSettingsTab) EXTENDS(XonoticTab)
METHOD(XonoticNetworkSettingsTab, fill, void(entity))
- ATTRIB(XonoticNetworkSettingsTab, title, string, "Network")
+ ATTRIB(XonoticNetworkSettingsTab, title, string, _("Network"))
ATTRIB(XonoticNetworkSettingsTab, intendedWidth, float, 0.9)
ATTRIB(XonoticNetworkSettingsTab, rows, float, 17)
ATTRIB(XonoticNetworkSettingsTab, columns, float, 6.5)
entity e;
me.TR(me);
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "cl_movement", "Client-side movement prediction"));
+ me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "cl_movement", _("Client-side movement prediction")));
me.TR(me);
- //me.TD(me, 1, 3, e = makeXonoticCheckBox(1, "cl_nolerp", "Network update smoothing"));
+ //me.TD(me, 1, 3, e = makeXonoticCheckBox(1, "cl_nolerp", _("Network update smoothing")));
me.TR(me);
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "shownetgraph", "Show netgraph"));
+ me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "shownetgraph", _("Show netgraph")));
me.TR(me);
me.TR(me);
- me.TD(me, 1, 1, e = makeXonoticTextLabel(0, "Network speed:"));
+ me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Network speed:")));
me.TD(me, 1, 2, e = makeXonoticTextSlider("_cl_rate"));
- e.addValue(e, "56k", "4000");
- e.addValue(e, "ISDN", "7000");
- e.addValue(e, "Slow ADSL", "15000");
- e.addValue(e, "Fast ADSL", "20000");
- e.addValue(e, "Broadband", "66666");
+ e.addValue(e, _("56k"), "4000");
+ e.addValue(e, _("ISDN"), "7000");
+ e.addValue(e, _("Slow ADSL"), "15000");
+ e.addValue(e, _("Fast ADSL"), "20000");
+ e.addValue(e, _("Broadband"), "66666");
e.configureXonoticTextSliderValues(e);
me.TR(me);
- me.TD(me, 1, 1, e = makeXonoticTextLabel(0, "Input packets/s:"));
+ me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Input packets/s:")));
me.TD(me, 1, 2, e = makeXonoticSlider(20, 100, 1, "cl_netfps"));
me.TR(me);
me.TR(me);
- me.TD(me, 1, 3, e = makeXonoticTextLabel(0, "HTTP downloads:"));
+ me.TD(me, 1, 3, e = makeXonoticTextLabel(0, _("HTTP downloads:")));
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 0.8, e = makeXonoticTextLabel(0, "Downloads:"));
+ me.TD(me, 1, 0.8, e = makeXonoticTextLabel(0, _("Downloads:")));
me.TD(me, 1, 2, e = makeXonoticSlider(1, 5, 1, "cl_curl_maxdownloads"));
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 0.8, e = makeXonoticTextLabel(0, "Speed (kB/s):"));
+ me.TD(me, 1, 0.8, e = makeXonoticTextLabel(0, _("Speed (kB/s):")));
me.TD(me, 1, 2, e = makeXonoticSlider(10, 1500, 10, "cl_curl_maxspeed"));
me.TR(me);
me.TR(me);
- me.TD(me, 1, 1, e = makeXonoticTextLabel(0, "Client UDP port:"));
+ me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Client UDP port:")));
me.TD(me, 1, 0.64, e = makeXonoticInputBox(0, "cl_port"));
}
#endif
#ifdef INTERFACE
CLASS(XonoticVideoSettingsTab) EXTENDS(XonoticTab)
METHOD(XonoticVideoSettingsTab, fill, void(entity))
- ATTRIB(XonoticVideoSettingsTab, title, string, "Video")
+ ATTRIB(XonoticVideoSettingsTab, title, string, _("Video"))
ATTRIB(XonoticVideoSettingsTab, intendedWidth, float, 0.9)
ATTRIB(XonoticVideoSettingsTab, rows, float, 17)
ATTRIB(XonoticVideoSettingsTab, columns, float, 6.5)
entity e;
me.TR(me);
- me.TD(me, 1, 1, e = makeXonoticTextLabel(0, "Resolution:"));
+ me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Resolution:")));
me.TD(me, 1, 2, e = makeXonoticResolutionSlider());
me.TR(me);
- me.TD(me, 1, 1, e = makeXonoticTextLabel(0, "Font/UI size:"));
+ me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Font/UI size:")));
me.TD(me, 1, 2, e = makeXonoticTextSlider("menu_vid_scale"));
- e.addValue(e, "Unreadable", "-1");
- e.addValue(e, "Tiny", "-0.75");
- e.addValue(e, "Little", "-0.5");
- e.addValue(e, "Small", "-0.25");
- e.addValue(e, "Medium", "0");
- e.addValue(e, "Large", "0.25");
- e.addValue(e, "Huge", "0.5");
- e.addValue(e, "Gigantic", "0.75");
- e.addValue(e, "Colossal", "1");
+ e.addValue(e, ZCTX(_("SZ^Unreadable")), "-1");
+ e.addValue(e, ZCTX(_("SZ^Tiny")), "-0.75");
+ e.addValue(e, ZCTX(_("SZ^Little")), "-0.5");
+ e.addValue(e, ZCTX(_("SZ^Small")), "-0.25");
+ e.addValue(e, ZCTX(_("SZ^Medium")), "0");
+ e.addValue(e, ZCTX(_("SZ^Large")), "0.25");
+ e.addValue(e, ZCTX(_("SZ^Huge")), "0.5");
+ e.addValue(e, ZCTX(_("SZ^Gigantic")), "0.75");
+ e.addValue(e, ZCTX(_("SZ^Colossal")), "1");
e.configureXonoticTextSliderValues(e);
me.TR(me);
- me.TD(me, 1, 1, e = makeXonoticTextLabel(0, "Color depth:"));
+ me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Color depth:")));
me.TD(me, 1, 2, e = makeXonoticSlider(16, 32, 16, "vid_bitsperpixel"));
me.TR(me);
- me.TD(me, 1, 1, e = makeXonoticCheckBox(0, "vid_fullscreen", "Full screen"));
- me.TD(me, 1, 2, e = makeXonoticCheckBox(0, "vid_vsync", "Vertical Synchronization"));
+ me.TD(me, 1, 1, e = makeXonoticCheckBox(0, "vid_fullscreen", _("Full screen")));
+ me.TD(me, 1, 2, e = makeXonoticCheckBox(0, "vid_vsync", _("Vertical Synchronization")));
me.TR(me);
me.TR(me);
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "vid_gl20", "Use OpenGL 2.0 shaders (GLSL)"));
+ me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "vid_gl20", _("Use OpenGL 2.0 shaders (GLSL)")));
me.TR(me);
- me.TR(me);
- me.TD(me, 1, 2, e = makeXonoticCheckBox(0, "r_coronas_occlusionquery", "Use Occlusion Queries"));
+ me.TDempty(me, 0.2);
+ me.TD(me, 1, 2.8, e = makeXonoticCheckBox(0, "v_glslgamma", _("Use GLSL to handle color control")));
+ setDependent(e, "vid_gl20", 1, 1);
me.TR(me);
me.TR(me);
- me.TD(me, 1, 3, e = makeXonoticTextLabel(0, "Vertex Buffer Objects (VBOs)"));
+ me.TD(me, 1, 3, e = makeXonoticTextLabel(0, _("Vertex Buffer Objects (VBOs)")));
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 0.9, e = makeXonoticRadioButton(1, "gl_vbo", "0", "Off"));
- me.TD(me, 1, 2.1, e = makeXonoticRadioButton(1, "gl_vbo", "3", "Vertices, some Tris (compatible)"));
+ me.TD(me, 1, 0.9, e = makeXonoticRadioButton(1, "gl_vbo", "0", ZCTX(_("VBO^Off"))));
+ me.TD(me, 1, 1.9, e = makeXonoticRadioButton(1, "gl_vbo", "3", _("Vertices, some Tris (compatible)")));
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 0.9, e = makeXonoticRadioButton(1, "gl_vbo", "2", "Vertices"));
- me.TD(me, 1, 2.1, e = makeXonoticRadioButton(1, "gl_vbo", "1", "Vertices and Triangles"));
+ me.TD(me, 1, 0.9, e = makeXonoticRadioButton(1, "gl_vbo", "2", _("Vertices")));
+ me.TD(me, 1, 1.9, e = makeXonoticRadioButton(1, "gl_vbo", "1", _("Vertices and Triangles")));
+ me.TR(me);
me.TR(me);
- me.TD(me, 1, 1, e = makeXonoticTextLabel(0, "Depth first:"));
+ me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Depth first:")));
me.TD(me, 1, 2, e = makeXonoticTextSlider("r_depthfirst"));
- e.addValue(e, "Disabled", "0");
- e.addValue(e, "World", "1");
- e.addValue(e, "All", "2");
+ e.addValue(e, ZCTX(_("DF^Disabled")), "0");
+ e.addValue(e, ZCTX(_("DF^World")), "1");
+ e.addValue(e, ZCTX(_("DF^All")), "2");
e.configureXonoticTextSliderValues(e);
me.TR(me);
if(cvar_type("apple_multithreadedgl") & CVAR_TYPEFLAG_ENGINE)
- me.TD(me, 1, 3, e = makeXonoticCheckBox(1, "apple_multithreadedgl", "Disable multithreaded OpenGL"));
+ me.TD(me, 1, 3, e = makeXonoticCheckBox(1, "apple_multithreadedgl", _("Disable multithreaded OpenGL")));
me.TR(me);
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "gl_finish", "Wait for GPU to finish each frame"));
+ me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "gl_finish", _("Wait for GPU to finish each frame")));
me.gotoRC(me, 0, 3.5); me.setFirstColumn(me, me.currentColumn);
- me.TD(me, 1, 1, e = makeXonoticTextLabel(0, "Brightness:"));
+ me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Brightness:")));
me.TD(me, 1, 2, e = makeXonoticSlider(0.0, 0.5, 0.02, "v_brightness"));
me.TR(me);
- me.TD(me, 1, 1, e = makeXonoticTextLabel(0, "Contrast:"));
+ me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Contrast:")));
me.TD(me, 1, 2, e = makeXonoticSlider(1.0, 3.0, 0.05, "v_contrast"));
me.TR(me);
- me.TD(me, 1, 1, e = makeXonoticTextLabel(0, "Gamma:"));
+ me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Gamma:")));
+ setDependentAND(e, "r_glsl", 1, 1, "v_glslgamma", 1, 1);
me.TD(me, 1, 2, e = makeXonoticSlider(0.5, 2.0, 0.05, "v_gamma"));
+ setDependentAND(e, "r_glsl", 1, 1, "v_glslgamma", 1, 1);
me.TR(me);
- me.TD(me, 1, 1, e = makeXonoticTextLabel(0, "Contrast boost:"));
+ me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Contrast boost:")));
+ setDependentAND(e, "r_glsl", 1, 1, "v_glslgamma", 1, 1);
me.TD(me, 1, 2, e = makeXonoticSlider(1.0, 5.0, 0.1, "v_contrastboost"));
+ setDependentAND(e, "r_glsl", 1, 1, "v_glslgamma", 1, 1);
me.TR(me);
- me.TD(me, 1, 1, e = makeXonoticTextLabel(0, "Saturation:"));
- setDependent(e, "vid_gl20", 1, 1);
+ me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Saturation:")));
+ setDependent(e, "r_glsl", 1, 1);
me.TD(me, 1, 2, e = makeXonoticSlider(0.5, 2.0, 0.05, "r_glsl_saturation"));
- setDependent(e, "vid_gl20", 1, 1);
- me.TR(me);
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "v_glslgamma", "Use GLSL to handle color control"));
- setDependent(e, "vid_gl20", 1, 1);
+ setDependent(e, "r_glsl", 1, 1);
me.TR(me);
me.TR(me);
- me.TD(me, 1, 1, e = makeXonoticTextLabel(0, "Ambient:"));
+ me.TD(me, 1, 1, e = makeXonoticTextLabel(0, ZCTX(_("LIT^Ambient:"))));
me.TD(me, 1, 2, e = makeXonoticSlider(0, 20.0, 1.0, "r_ambient"));
me.TR(me);
- me.TD(me, 1, 1, e = makeXonoticTextLabel(0, "Intensity:"));
+ me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Intensity:")));
me.TD(me, 1, 2, e = makeXonoticSlider(0.5, 2.0, 0.05, "r_hdr_scenebrightness"));
me.gotoRC(me, me.rows - 1, 0);
- me.TD(me, 1, me.columns, makeXonoticCommandButton("Apply immediately", '0 0 0', "menu_cmd setresolution; 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 setresolution; vid_restart; menu_restart; togglemenu; defer 0.1 \"menu_cmd videosettings\"", COMMANDBUTTON_APPLY));
}
#endif
#ifdef INTERFACE
CLASS(XonoticSingleplayerDialog) EXTENDS(XonoticDialog)
METHOD(XonoticSingleplayerDialog, fill, void(entity))
- ATTRIB(XonoticSingleplayerDialog, title, string, "Singleplayer")
+ ATTRIB(XonoticSingleplayerDialog, title, string, _("Singleplayer"))
ATTRIB(XonoticSingleplayerDialog, color, vector, SKINCOLOR_DIALOG_SINGLEPLAYER)
ATTRIB(XonoticSingleplayerDialog, intendedWidth, float, 0.80)
ATTRIB(XonoticSingleplayerDialog, rows, float, 24)
me.TR(me);
me.TDempty(me, (me.columns - 3) / 2);
- me.TD(me, 2, 3, e = makeXonoticBigButton("Instant action! (random map with bots)", '0 0 0'));
+ me.TD(me, 2, 3, e = makeXonoticBigButton(_("Instant action! (random map with bots)"), '0 0 0'));
e.onClick = InstantAction_LoadMap;
e.onClickEntity = NULL;
me.TR(me);
me.TR(me);
me.TR(me);
me.TD(me, 1, 1, btnPrev = makeXonoticButton("<<", '0 0 0'));
- me.TD(me, 1, me.columns - 2, lblTitle = makeXonoticTextLabel(0.5, "???"));
+ me.TD(me, 1, me.columns - 2, lblTitle = makeXonoticTextLabel(0.5, _("???")));
me.TD(me, 1, 1, btnNext = makeXonoticButton(">>", '0 0 0'));
me.TR(me);
me.TD(me, me.rows - 5, me.columns, me.campaignBox = makeXonoticCampaignList());
me.campaignBox.campaignGo(me.campaignBox, 0);
me.gotoRC(me, me.rows - 1, 0);
- me.TD(me, 1, me.columns, e = makeXonoticButton("Start Singleplayer!", '0 0 0'));
+ me.TD(me, 1, me.columns, e = makeXonoticButton(_("Start Singleplayer!"), '0 0 0'));
e.onClick = CampaignList_LoadMap;
e.onClickEntity = me.campaignBox;
}
#ifdef INTERFACE
CLASS(XonoticWinnerDialog) EXTENDS(XonoticDialog)
METHOD(XonoticWinnerDialog, fill, void(entity))
- ATTRIB(XonoticWinnerDialog, title, string, "Winner")
+ ATTRIB(XonoticWinnerDialog, title, string, _("Winner"))
ATTRIB(XonoticWinnerDialog, color, vector, SKINCOLOR_DIALOG_SINGLEPLAYER)
ATTRIB(XonoticWinnerDialog, intendedWidth, float, 0.32)
ATTRIB(XonoticWinnerDialog, rows, float, 12)
me.TD(me, me.rows - 2, me.columns, e = makeXonoticImage("/gfx/winner", -1));
me.gotoRC(me, me.rows - 1, 0);
- me.TD(me, 1, me.columns, e = makeXonoticButton("OK", '0 0 0'));
+ me.TD(me, 1, me.columns, e = makeXonoticButton(_("OK"), '0 0 0'));
e.onClick = Dialog_Close;
e.onClickEntity = me;
}
CLASS(XonoticTeamSelectDialog) EXTENDS(XonoticRootDialog)
METHOD(XonoticTeamSelectDialog, fill, void(entity)) // to be overridden by user to fill the dialog with controls
METHOD(XonoticTeamSelectDialog, showNotify, void(entity))
- ATTRIB(XonoticTeamSelectDialog, title, string, "Team Selection") // ;)
+ ATTRIB(XonoticTeamSelectDialog, title, string, _("Team Selection")) // ;)
ATTRIB(XonoticTeamSelectDialog, color, vector, SKINCOLOR_DIALOG_TEAMSELECT)
ATTRIB(XonoticTeamSelectDialog, intendedWidth, float, 0.4)
ATTRIB(XonoticTeamSelectDialog, rows, float, 5)
{
entity e;
me.TR(me);
- me.TD(me, 2, 4, e = makeTeamButton("join 'best' team (auto-select)", '0 0 0', "cmd selectteam auto; cmd join"));
+ me.TD(me, 2, 4, e = makeTeamButton(_("join 'best' team (auto-select)"), '0 0 0', "cmd selectteam auto; cmd join"));
e.preferredFocusPriority = 1;
me.TR(me);
me.TR(me);
- me.TD(me, 2, 1, me.team1 = makeTeamButton("red", '1 0.5 0.5', "cmd selectteam red; cmd join"));
- me.TD(me, 2, 1, me.team2 = makeTeamButton("blue", '0.5 0.5 1', "cmd selectteam blue; cmd join"));
- me.TD(me, 2, 1, me.team3 = makeTeamButton("yellow", '1 1 0.5', "cmd selectteam yellow; cmd join"));
- me.TD(me, 2, 1, me.team4 = makeTeamButton("pink", '1 0.5 1', "cmd selectteam pink; cmd join"));
+ me.TD(me, 2, 1, me.team1 = makeTeamButton(_("red"), '1 0.5 0.5', "cmd selectteam red; cmd join"));
+ me.TD(me, 2, 1, me.team2 = makeTeamButton(_("blue"), '0.5 0.5 1', "cmd selectteam blue; cmd join"));
+ me.TD(me, 2, 1, me.team3 = makeTeamButton(_("yellow"), '1 1 0.5', "cmd selectteam yellow; cmd join"));
+ me.TD(me, 2, 1, me.team4 = makeTeamButton(_("pink"), '1 0.5 1', "cmd selectteam pink; cmd join"));
me.TR(me);
me.TR(me);
- me.TD(me, 1, 4, makeXonoticCommandButton("spectate", '0 0 0', "cmd spectate", 1));
+ me.TD(me, 1, 4, makeXonoticCommandButton(_("spectate"), '0 0 0', "cmd spectate", 1));
}
#endif
--- /dev/null
+#ifdef INTERFACE
+CLASS(XonoticGametypeList) EXTENDS(XonoticListBox)
+ METHOD(XonoticGametypeList, configureXonoticGametypeList, void(entity))
+ ATTRIB(XonoticGametypeList, rowsPerItem, float, 1)
+ METHOD(XonoticGametypeList, drawListBoxItem, void(entity, float, vector, float))
+ METHOD(XonoticGametypeList, resizeNotify, void(entity, vector, vector, vector, vector))
+ METHOD(XonoticGametypeList, setSelected, void(entity, float))
+ METHOD(XonoticGametypeList, loadCvars, void(entity))
+ METHOD(XonoticGametypeList, saveCvars, void(entity))
+
+ ATTRIB(XonoticGametypeList, realFontSize, vector, '0 0 0')
+ ATTRIB(XonoticGametypeList, realUpperMargin, float, 0)
+ ATTRIB(XonoticGametypeList, columnNameOrigin, float, 0)
+ ATTRIB(XonoticGametypeList, columnNameSize, float, 0)
+ENDCLASS(XonoticGametypeList)
+entity makeXonoticGametypeList();
+#endif
+
+#ifdef IMPLEMENTATION
+
+entity makeXonoticGametypeList(void)
+{
+ entity me;
+ me = spawnXonoticGametypeList();
+ me.configureXonoticGametypeList(me);
+ return me;
+}
+void XonoticGametypeList_configureXonoticGametypeList(entity me)
+{
+ me.loadCvars(me);
+ me.configureXonoticListBox(me);
+ me.nItems = GameType_GetCount();
+}
+void XonoticGametypeList_setSelected(entity me, float i)
+{
+ SUPER(XonoticGametypeList).setSelected(me, i);
+ me.saveCvars(me);
+}
+
+void XonoticGametypeList_loadCvars(entity me)
+{
+ float t;
+ t = MapInfo_CurrentGametype();
+ float i;
+ for(i = 0; i < GameType_GetCount(); ++i)
+ if(t == GameType_GetID(i))
+ break;
+ if(i >= GameType_GetCount())
+ {
+ for(i = 0; i < GameType_GetCount(); ++i)
+ if(t == MAPINFO_TYPE_DEATHMATCH)
+ break;
+ if(i >= GameType_GetCount())
+ i = 0;
+ }
+ me.setSelected(me, i);
+ // do we need this: me.parent.gameTypeChangeNotify(me.parent); // to make sure
+}
+void XonoticGametypeList_saveCvars(entity me)
+{
+ float t;
+ t = GameType_GetID(me.selectedItem);
+ if(t == MapInfo_CurrentGametype())
+ return;
+ MapInfo_SwitchGameType(t);
+ me.parent.gameTypeChangeNotify(me.parent);
+}
+void XonoticGametypeList_drawListBoxItem(entity me, float i, vector absSize, float isSelected)
+{
+ string s;
+ if(isSelected)
+ draw_Fill('0 0 0', '1 1 0', SKINCOLOR_LISTBOX_SELECTED, SKINALPHA_LISTBOX_SELECTED);
+ s = GameType_GetName(i);
+ draw_Text(me.realUpperMargin * eY + (me.columnNameOrigin + (me.columnNameSize - draw_TextWidth(s, 0, me.realFontSize)) * 0.5) * eX, s, me.realFontSize, '1 1 1', SKINALPHA_TEXT, 0);
+}
+void XonoticGametypeList_resizeNotify(entity me, vector relOrigin, vector relSize, vector absOrigin, vector absSize)
+{
+ SUPER(XonoticServerList).resizeNotify(me, relOrigin, relSize, absOrigin, absSize);
+ me.realFontSize_y = me.fontSize / (absSize_y * me.itemHeight);
+ me.realFontSize_x = me.fontSize / (absSize_x * (1 - me.controlWidth));
+ me.realUpperMargin = 0.5 * (1 - me.realFontSize_y);
+ me.columnNameOrigin = 0;
+ me.columnNameSize = 1;
+}
+#endif
METHOD(XonoticInputBox, loadCvars, void(entity))
METHOD(XonoticInputBox, saveCvars, void(entity))
METHOD(XonoticInputBox, keyDown, float(entity, float, float, float))
+
+ ATTRIB(XonoticInputBox, saveImmediately, float, 0)
ENDCLASS(XonoticInputBox)
entity makeXonoticInputBox(float, string);
#endif
{
SUPER(XonoticInputBox).setText(me, new);
me.onChange(me, me.onChangeEntity);
+ if(me.saveImmediately)
+ me.saveCvars(me);
}
else
SUPER(XonoticInputBox).setText(me, new);
string s;
Xonotic_KeyBinds_Count = 0;
- fh = fopen("keybinds.txt", FILE_READ);
+ fh = fopen(language_filename("keybinds.txt"), FILE_READ);
if(fh < 0)
return;
while((s = fgets(fh)))
--- /dev/null
+#ifdef INTERFACE
+CLASS(XonoticLanguageList) EXTENDS(XonoticListBox)
+ METHOD(XonoticLanguageList, configureXonoticLanguageList, void(entity))
+ ATTRIB(XonoticLanguageList, rowsPerItem, float, 1)
+ METHOD(XonoticLanguageList, drawListBoxItem, void(entity, float, vector, float))
+ METHOD(XonoticLanguageList, resizeNotify, void(entity, vector, vector, vector, vector))
+ METHOD(XonoticLanguageList, setSelected, void(entity, float))
+ METHOD(XonoticLanguageList, loadCvars, void(entity))
+ METHOD(XonoticLanguageList, saveCvars, void(entity))
+
+ ATTRIB(XonoticLanguageList, realFontSize, vector, '0 0 0')
+ ATTRIB(XonoticLanguageList, realUpperMargin, float, 0)
+ ATTRIB(XonoticLanguageList, columnNameOrigin, float, 0)
+ ATTRIB(XonoticLanguageList, columnNameSize, float, 0)
+
+ METHOD(XonoticLanguageList, clickListBoxItem, void(entity, float, vector)) // double click handling
+ METHOD(XonoticLanguageList, keyDown, float(entity, float, float, float)) // enter handling
+ ATTRIB(XonoticLanguageList, lastClickedLanguage, float, -1)
+ ATTRIB(XonoticLanguageList, lastClickedTime, float, 0)
+
+ METHOD(XonoticLanguageList, destroy, void(entity))
+
+ ATTRIB(XonoticLanguageList, languagelist, float, -1)
+ METHOD(XonoticLanguageList, getLanguages, void(entity))
+ METHOD(XonoticLanguageList, setLanguage, void(entity))
+ METHOD(XonoticLanguageList, languageParameter, string(entity, float, float))
+
+ 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\"")
+ENDCLASS(XonoticLanguageList)
+
+entity makeXonoticLanguageList();
+void SetLanguage_Click(entity btn, entity me);
+#endif
+
+#ifdef IMPLEMENTATION
+
+#define LANGPARM_ID 0
+#define LANGPARM_NAME 1
+#define LANGPARM_NAME_LOCALIZED 2
+#define LANGPARM_COUNT 3
+
+entity makeXonoticLanguageList()
+{
+ entity me;
+ me = spawnXonoticLanguageList();
+ me.configureXonoticLanguageList(me);
+ return me;
+}
+
+void XonoticLanguageList_configureXonoticLanguageList(entity me)
+{
+ me.configureXonoticListBox(me);
+ me.getLanguages(me);
+ me.loadCvars(me);
+}
+
+void XonoticLanguageList_drawListBoxItem(entity me, float i, vector absSize, float isSelected)
+{
+ string s;
+ if(isSelected)
+ draw_Fill('0 0 0', '1 1 0', SKINCOLOR_LISTBOX_SELECTED, SKINALPHA_LISTBOX_SELECTED);
+ s = me.languageParameter(me, i, LANGPARM_NAME_LOCALIZED);
+ draw_Text(me.realUpperMargin * eY + (me.columnNameOrigin + (me.columnNameSize - draw_TextWidth(s, 0, me.realFontSize)) * 0.5) * eX, s, me.realFontSize, '1 1 1', SKINALPHA_TEXT, 0);
+}
+
+void XonoticLanguageList_resizeNotify(entity me, vector relOrigin, vector relSize, vector absOrigin, vector absSize)
+{
+ SUPER(XonoticLanguageList).resizeNotify(me, relOrigin, relSize, absOrigin, absSize);
+ me.realFontSize_y = me.fontSize / (absSize_y * me.itemHeight);
+ me.realFontSize_x = me.fontSize / (absSize_x * (1 - me.controlWidth));
+ me.realUpperMargin = 0.5 * (1 - me.realFontSize_y);
+ me.columnNameOrigin = 0;
+ me.columnNameSize = 1;
+}
+
+void XonoticLanguageList_setSelected(entity me, float i)
+{
+ SUPER(XonoticLanguageList).setSelected(me, i);
+ me.saveCvars(me);
+}
+
+void XonoticLanguageList_loadCvars(entity me)
+{
+ string s;
+ float i, n;
+ s = cvar_string("prvm_language");
+ n = me.nItems;
+
+ // default to English
+ for(i = 0; i < n; ++i)
+ {
+ if(me.languageParameter(me, i, LANGPARM_ID) == "en")
+ {
+ me.selectedItem = i;
+ break;
+ }
+ }
+
+ // otherwise, find the language
+ for(i = 0; i < n; ++i)
+ {
+ if(me.languageParameter(me, i, LANGPARM_ID) == s)
+ {
+ me.selectedItem = i;
+ break;
+ }
+ }
+}
+
+void XonoticLanguageList_saveCvars(entity me)
+{
+ cvar_set("prvm_language", me.languageParameter(me, me.selectedItem, LANGPARM_ID));
+}
+
+void XonoticLanguageList_clickListBoxItem(entity me, float i, vector where)
+{
+ if(i == me.lastClickedLanguage)
+ if(time < me.lastClickedTime + 0.3)
+ {
+ // DOUBLE CLICK!
+ me.setSelected(me, i);
+ me.setLanguage(me);
+ }
+ me.lastClickedLanguage = i;
+ me.lastClickedTime = time;
+}
+
+float XonoticLanguageList_keyDown(entity me, float scan, float ascii, float shift)
+{
+ if(scan == K_ENTER || scan == K_KP_ENTER) {
+ me.setLanguage(me);
+ return 1;
+ }
+ else
+ return SUPER(XonoticLanguageList).keyDown(me, scan, ascii, shift);
+}
+
+void XonoticLanguageList_destroy(entity me)
+{
+ buf_del(me.languagelist);
+}
+
+void XonoticLanguageList_getLanguages(entity me)
+{
+ float buf, i, n, fh;
+ string s;
+
+ buf = buf_create();
+
+ fh = fopen("languages.txt", FILE_READ);
+ while((s = fgets(fh)))
+ {
+ n = tokenize_console(s);
+ if(n < 3)
+ continue;
+ bufstr_set(buf, i * LANGPARM_COUNT + LANGPARM_ID, argv(0));
+ bufstr_set(buf, i * LANGPARM_COUNT + LANGPARM_NAME, argv(1));
+ bufstr_set(buf, i * LANGPARM_COUNT + LANGPARM_NAME_LOCALIZED, argv(2));
+ ++i;
+ }
+ fclose(fh);
+
+ me.languagelist = buf;
+ me.nItems = i;
+}
+
+void XonoticLanguageList_setLanguage(entity me)
+{
+ localcmd(sprintf("\n%s\n", me.doubleClickCommand));
+}
+
+string XonoticLanguageList_languageParameter(entity me, float i, float key)
+{
+ return bufstr_get(me.languagelist, i * LANGPARM_COUNT + key);
+}
+
+void SetLanguage_Click(entity btn, entity me)
+{
+ me.setLanguage(me);
+}
+
+#endif
#ifdef INTERFACE
CLASS(MainWindow) EXTENDS(ModalController)
METHOD(MainWindow, configureMainWindow, void(entity))
+ METHOD(MainWindow, draw, void(entity))
+ ATTRIB(MainWindow, firstRunDialog, entity, NULL)
ATTRIB(MainWindow, advancedDialog, entity, NULL)
ATTRIB(MainWindow, mutatorsDialog, entity, NULL)
ATTRIB(MainWindow, weaponsDialog, entity, NULL)
ATTRIB(MainWindow, cvarsDialog, entity, NULL)
ATTRIB(MainWindow, mainNexposee, entity, NULL)
ATTRIB(MainWindow, fadedAlpha, float, SKINALPHA_BEHIND)
+ ATTRIB(MainWindow, dialogToShow, entity, NULL)
ENDCLASS(MainWindow)
#endif
#ifdef IMPLEMENTATION
+void MainWindow_draw(entity me)
+{
+ SUPER(MainWindow).draw(me);
+
+ if(me.dialogToShow)
+ {
+ DialogOpenButton_Click_withCoords(world, me.dialogToShow, '0 0 0', eX * conwidth + eY * conheight);
+ me.dialogToShow = NULL;
+ }
+}
void DemoButton_Click(entity me, entity other)
{
- if(me.text == "Do not press this button again!")
+ if(me.text == _("Do not press this button again!"))
DialogOpenButton_Click(me, other);
else
- me.setText(me, "Do not press this button again!");
+ me.setText(me, _("Do not press this button again!"));
}
void MainWindow_configureMainWindow(entity me)
{
entity n, i;
+ me.firstRunDialog = i = spawnXonoticFirstRunDialog();
+ i.configureDialog(i);
+ me.addItemCentered(me, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z);
+
i = spawnXonoticTeamSelectDialog();
i.configureDialog(i);
me.addItemCentered(me, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z);
me.moveItemAfter(me, n, NULL);
me.initializeDialog(me, n);
+
+ if(cvar_string("_cl_name") == "Player")
+ me.dialogToShow = me.firstRunDialog;
}
#endif
m = MapInfo_BSPName_ByID(i);
if not(m)
{
- print("Huh? Can't play this (m is NULL). Refiltering so this won't happen again.\n");
+ print(_("Huh? Can't play this (m is NULL). Refiltering so this won't happen again.\n"));
+ me.refilter(me);
return;
}
if(MapInfo_CheckMap(m))
{
localcmd("\nmenu_loadmap_prepare\n");
if(cvar("menu_use_default_hostname"))
- localcmd("hostname \"", strdecolorize(cvar_string("_cl_name")), "'s Xonotic server\"\n");
+ localcmd("hostname \"", sprintf(_("%s's Xonotic Server"), strdecolorize(cvar_string("_cl_name"))), "\"\n");
MapInfo_LoadMap(m);
}
else
{
- print("Huh? Can't play this (invalid game type). Refiltering so this won't happen again.\n");
+ print(_("Huh? Can't play this (invalid game type). Refiltering so this won't happen again.\n"));
me.refilter(me);
+ return;
}
}
float XonoticMapList_keyDown(entity me, float scan, float ascii, float shift)
{
string ch, save;
+ if(me.nItems <= 0)
+ return SUPER(XonoticMapList).keyDown(me, scan, ascii, shift);
if(scan == K_ENTER || scan == K_KP_ENTER)
{
// pop up map info screen
float sortbuf, glob, i;
string fn;
- glob = search_begin(get_model_datafilename(string_null, -1, "txt"), TRUE, TRUE);
+ glob = search_begin(language_filename(get_model_datafilename(string_null, -1, "txt")), TRUE, TRUE);
if (glob < 0)
return;
bufstr_set(me.bufModels, BUFMODELS_COUNT*i+BUFMODELS_SKIN, ftos(get_model_parameters_modelskin));
get_model_parameters_desc = strcat(get_model_parameters_desc, "\n");
if(get_model_parameters_sex)
- get_model_parameters_desc = strcat(get_model_parameters_desc, "\nSex: ", get_model_parameters_sex);
+ get_model_parameters_desc = strcat(get_model_parameters_desc, sprintf("\nSex: %s", get_model_parameters_sex));
if(get_model_parameters_weight)
- get_model_parameters_desc = strcat(get_model_parameters_desc, "\nWeight: ", ftos(get_model_parameters_weight), " kg");
+ get_model_parameters_desc = strcat(get_model_parameters_desc, sprintf("\nWeight: %g kg", get_model_parameters_weight));
if(get_model_parameters_age)
- get_model_parameters_desc = strcat(get_model_parameters_desc, "\nAge: ", ftos(get_model_parameters_age));
+ get_model_parameters_desc = strcat(get_model_parameters_desc, sprintf("\nAge: %g", get_model_parameters_age));
while(substring(get_model_parameters_desc, -1, 1) == "\n")
get_model_parameters_desc = substring(get_model_parameters_desc, 0, -2);
bufstr_set(me.bufModels, BUFMODELS_COUNT*i+BUFMODELS_DESC, get_model_parameters_desc);
if (me.numModels <= 0)
{
- draw_CenterText('0.5 0.5 0', "<no model found>", me.realFontSize, '1 1 1', 0.6, FALSE);
+ draw_CenterText('0.5 0.5 0', _("<no model found>"), me.realFontSize, '1 1 1', 0.6, FALSE);
return;
}
// still to be customized by user
/*
ATTRIB(XonoticDialog, closable, float, 1)
- ATTRIB(XonoticDialog, title, string, "Form1") // ;)
+ ATTRIB(XonoticDialog, title, string, _("Form1")) // ;)
ATTRIB(XonoticDialog, color, vector, '1 0.5 1')
ATTRIB(XonoticDialog, intendedWidth, float, 0)
ATTRIB(XonoticDialog, rows, float, 3)
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
if(srv == "")
return FALSE;
srv = netaddress_resolve(srv, 26000);
+ if(srv == "")
+ return FALSE;
p = crypto_getidfp(srv);
n = tokenize_console(cvar_string("net_slist_favorites"));
for(i = 0; i < n; ++i)
resorthostcache();
}
+void ServerList_Update_favoriteButton(entity btn, entity me)
+{
+ if(IsFavorite(me.ipAddressBox.text))
+ me.favoriteButton.setText(me.favoriteButton, _("Remove"));
+ else
+ me.favoriteButton.setText(me.favoriteButton, _("Bookmark"));
+}
+
entity makeXonoticServerList()
{
entity me;
m = SLIST_MASK_AND - 1;
resethostcachemasks();
if(!me.filterShowFull)
- sethostcachemasknumber(++m, SLIST_FIELD_FREESLOTS, 1, SLIST_TEST_GREATEREQUAL);
+ {
+ sethostcachemasknumber(++m, SLIST_FIELD_FREESLOTS, 1, SLIST_TEST_GREATEREQUAL); // legacy
+ sethostcachemaskstring(++m, SLIST_FIELD_QCSTATUS, ":S0:", SLIST_TEST_NOTCONTAIN); // g_maxplayers support
+ }
if(!me.filterShowEmpty)
sethostcachemasknumber(++m, SLIST_FIELD_NUMHUMANS, 1, SLIST_TEST_GREATEREQUAL);
if(typestr != "")
me.connectButton.disabled = ((me.nItems == 0) && (me.ipAddressBox.text == ""));
me.infoButton.disabled = ((me.nItems == 0) || !owned);
+ me.favoriteButton.disabled = ((me.nItems == 0) && (me.ipAddressBox.text == ""));
found = 0;
if(me.selectedServer)
if(me.ipAddressBoxFocused != me.ipAddressBox.focused)
{
if(me.ipAddressBox.focused || me.ipAddressBoxFocused < 0)
- {
- if(IsFavorite(me.ipAddressBox.text))
- me.favoriteButton.setText(me.favoriteButton, "Remove");
- else
- me.favoriteButton.setText(me.favoriteButton, "Bookmark");
- }
+ ServerList_Update_favoriteButton(NULL, me);
me.ipAddressBoxFocused = me.ipAddressBox.focused;
}
me.columnPingSize = me.realFontSize_x * 3;
me.columnMapSize = me.realFontSize_x * 10;
me.columnTypeSize = me.realFontSize_x * 4;
- me.columnPlayersSize = me.realFontSize_x * 4;
+ me.columnPlayersSize = me.realFontSize_x * 5;
me.columnNameSize = 1 - me.columnPlayersSize - me.columnMapSize - me.columnPingSize - me.columnIconsSize - me.columnTypeSize - 5 * me.realFontSize_x;
me.columnPingOrigin = me.columnIconsOrigin + me.columnIconsSize + me.realFontSize_x;
me.columnNameOrigin = me.columnPingOrigin + me.columnPingSize + me.realFontSize_x;
me.columnTypeOrigin = me.columnMapOrigin + me.columnMapSize + me.realFontSize_x;
me.columnPlayersOrigin = me.columnTypeOrigin + me.columnTypeSize + me.realFontSize_x;
- me.positionSortButton(me, me.sortButton1, me.columnPingOrigin, me.columnPingSize, "Ping", ServerList_PingSort_Click);
- me.positionSortButton(me, me.sortButton2, me.columnNameOrigin, me.columnNameSize, "Host name", ServerList_NameSort_Click);
- me.positionSortButton(me, me.sortButton3, me.columnMapOrigin, me.columnMapSize, "Map", ServerList_MapSort_Click);
- me.positionSortButton(me, me.sortButton4, me.columnTypeOrigin, me.columnTypeSize, "Type", ServerList_TypeSort_Click);
- me.positionSortButton(me, me.sortButton5, me.columnPlayersOrigin, me.columnPlayersSize, "Players", ServerList_PlayerSort_Click);
+ me.positionSortButton(me, me.sortButton1, me.columnPingOrigin, me.columnPingSize, _("Ping"), ServerList_PingSort_Click);
+ me.positionSortButton(me, me.sortButton2, me.columnNameOrigin, me.columnNameSize, _("Host name"), ServerList_NameSort_Click);
+ me.positionSortButton(me, me.sortButton3, me.columnMapOrigin, me.columnMapSize, _("Map"), ServerList_MapSort_Click);
+ me.positionSortButton(me, me.sortButton4, me.columnTypeOrigin, me.columnTypeSize, _("Type"), ServerList_TypeSort_Click);
+ me.positionSortButton(me, me.sortButton5, me.columnPlayersOrigin, me.columnPlayersSize, _("Players"), ServerList_PlayerSort_Click);
float f;
f = me.currentSortField;
if(isSelected)
draw_Fill('0 0 0', '1 1 0', SKINCOLOR_LISTBOX_SELECTED, SKINALPHA_LISTBOX_SELECTED);
- if(gethostcachenumber(SLIST_FIELD_NUMPLAYERS, i) >= gethostcachenumber(SLIST_FIELD_MAXPLAYERS, i))
+ if(gethostcachenumber(SLIST_FIELD_FREESLOTS, i) <= 0)
theAlpha = SKINALPHA_SERVERLIST_FULL;
+ else if(strstrofs(gethostcachestring(SLIST_FIELD_QCSTATUS, i), ":S0:", 0) >= 0)
+ theAlpha = SKINALPHA_SERVERLIST_FULL; // g_maxplayers support
else if not(gethostcachenumber(SLIST_FIELD_NUMHUMANS, i))
theAlpha = SKINALPHA_SERVERLIST_EMPTY;
else
}
else if(scan == K_MOUSE2 || scan == K_SPACE)
{
- main.serverInfoDialog.loadServerInfo(main.serverInfoDialog, me.selectedItem);
- DialogOpenButton_Click_withCoords(me, main.serverInfoDialog, org, sz);
+ if(me.nItems != 0)
+ {
+ main.serverInfoDialog.loadServerInfo(main.serverInfoDialog, me.selectedItem);
+ DialogOpenButton_Click_withCoords(me, main.serverInfoDialog, org, sz);
+ }
}
else if(scan == K_INS || scan == K_MOUSE3 || scan == K_KP_INS)
{
{
s = search_getfilename(glob, i);
bufstr_set(buf, i * SKINPARM_COUNT + SKINPARM_NAME, substring(s, 9, strlen(s) - 24)); // the * part
- bufstr_set(buf, i * SKINPARM_COUNT + SKINPARM_TITLE, "<TITLE>");
- bufstr_set(buf, i * SKINPARM_COUNT + SKINPARM_AUTHOR, "<AUTHOR>");
+ bufstr_set(buf, i * SKINPARM_COUNT + SKINPARM_TITLE, _("<TITLE>"));
+ bufstr_set(buf, i * SKINPARM_COUNT + SKINPARM_AUTHOR, _("<AUTHOR>"));
bufstr_set(buf, i * SKINPARM_COUNT + SKINPARM_PREVIEW, strcat("/gfx/menu/", substring(s, 9, strlen(s) - 24), "/skinpreview"));
- fh = fopen(s, FILE_READ);
+ fh = fopen(language_filename(s), FILE_READ);
if(fh < 0)
{
print("Warning: can't open skinvalues.txt file\n");
draw_Picture(me.columnPreviewOrigin * eX, s, me.columnPreviewSize * eX + eY, '1 1 1', 1);
s = me.skinParameter(me, i, SKINPARM_NAME);
- s = strcat(s, ": ", me.skinParameter(me, i, SKINPARM_TITLE));
+ s = sprintf(_("%s: %s"), s, me.skinParameter(me, i, SKINPARM_TITLE));
s = draw_TextShortenToWidth(s, me.columnNameSize, 0, me.realFontSize);
draw_Text(me.realUpperMargin1 * eY + (me.columnNameOrigin + 0.00 * (me.columnNameSize - draw_TextWidth(s, 0, me.realFontSize))) * eX, s, me.realFontSize, SKINCOLOR_SKINLIST_TITLE, SKINALPHA_TEXT, 0);
string XonoticDecibelsSlider_valueToText(entity me, float v)
{
if(v < -33)
- return "OFF";
+ return CTX(_("VOL^OFF"));
else if(v >= -0.1)
- return "MAX";
- return strcat(SUPER(XonoticDecibelsSlider).valueToText(me, v), " dB");
+ return CTX(_("VOL^MAX"));
+ return sprintf(_("%s dB"), SUPER(XonoticDecibelsSlider).valueToText(me, v));
}
#endif
}
void XonoticResolutionSlider_addResolution(entity me, float w, float h, float pixelheight)
{
- me.addValue(me, strzone(strcat(ftos(w), "x", ftos(h))), strzone(strcat(ftos(w), " ", ftos(h), " ", ftos(pixelheight))));
+ me.addValue(me, strzone(sprintf(_("%dx%d"), w, h)), strzone(strcat(ftos(w), " ", ftos(h), " ", ftos(pixelheight))));
// FIXME (in case you ever want to dynamically instantiate this): THIS IS NEVER FREED
}
void XonoticResolutionSlider_configureXonoticResolutionSlider(entity me)
if(r == r0)
continue;
r0 = r;
- if(r_x < 640 || r_y < 400)
+ if(r_x < 640 || r_y < 480)
+ continue;
+ if(r_x > 2 * r_y) // likely dualscreen resolution, skip this one
continue;
me.addResolution(me, r_x, r_y, r_z);
}
+ if(me.nValues == 0)
+ {
+ me.addResolution(me, 640, 480, 1);
+ me.addResolution(me, 800, 600, 1);
+ me.addResolution(me, 1024, 768, 1);
+ me.addResolution(me, 1280, 960, 1);
+ me.addResolution(me, 1280, 1024, 1);
+ me.addResolution(me, 1650, 1080, 1);
+ me.addResolution(me, 1920, 1080, 1);
+ }
+
me.configureXonoticTextSliderValues(me);
}
void XonoticResolutionSlider_loadCvars(entity me)
float tooltipdb;
void loadTooltips()
{
- tooltipdb = db_load("tooltips.db");
+ tooltipdb = db_load(language_filename("tooltips.db"));
}
void unloadTooltips()
{
- db_close(tooltipdb);
+ if(tooltipdb >= 0)
+ db_close(tooltipdb);
tooltipdb = -1;
}
string getZonedTooltipForIdentifier(string s)
string t;
if(s == "")
return string_null;
- t = db_get(tooltipdb, s);
- if(t == "-")
- return string_null;
- if(t != "")
- return strzone(t);
- t = cvar_description(s);
- if(t != "" && t != "custom cvar")
- return strzone(t);
+ if(tooltipdb >= 0)
+ {
+ t = db_get(tooltipdb, s);
+ if(t == "-")
+ return string_null;
+ if(t != "")
+ return strzone(t);
+ }
+ if(prvm_language == "en" || prvm_language == "")
+ {
+ t = cvar_description(s);
+ if(t != "" && t != "custom cvar")
+ return strzone(t);
+ }
dprint("WARNING: no tooltip set for ", s, "\n");
return string_null;
}
}
else
{
- print("Received HTTP request data for an invalid id ", ftos(id), ".\n");
+ print(sprintf(_("Received HTTP request data for an invalid id %d.\n"), id));
}
}
if(_Nex_ExtResponseSystem_UpdateTo)
{
- print("error: UpdateNotification_URI_Get_Callback has been called before\n");
+ dprint("error: UpdateNotification_URI_Get_Callback has been called before\n");
return;
}
if(status != 0)
{
- print(sprintf("error receiving update notification: status is %d\n", status));
+ print(sprintf(_("error receiving update notification: status is %d\n"), status));
return;
}
if(substring(data, 0, 1) == "<")
{
- print("error: received HTML instead of an update notification\n");
+ print(_("error: received HTML instead of an update notification\n"));
return;
}
if(strstrofs(data, "\r", 0) != -1)
{
- print("error: received carriage returns from update notification server\n");
+ print(_("error: received carriage returns from update notification server\n"));
return;
}
{
// update needed
if(n >= 2)
- print(sprintf("Update can be downloaded at:\n%s\n", argv(1)));
+ print(sprintf(_("Update can be downloaded at:\n%s\n"), argv(1)));
}
_Nex_ExtResponseSystem_UpdateTo = strzone(_Nex_ExtResponseSystem_UpdateTo);
draw_reset_cropped();
sz = eX * 0.025 + eY * 0.025 * (draw_scale_x / draw_scale_y);
- draw_CenterText('0.5 0.5 0' - 1.25 * sz_y * eY, "Autogenerating mapinfo for newly added maps...", sz, '1 1 1', 1, 0);
+ draw_CenterText('0.5 0.5 0' - 1.25 * sz_y * eY, _("Autogenerating mapinfo for newly added maps..."), sz, '1 1 1', 1, 0);
boxA = '0.05 0.5 0' + 0.25 * sz_y * eY;
boxB = '0.95 0.5 0' + 1.25 * sz_y * eY;
if(autocvar_menu_watermark != "")
{
vector fs = '48 48 0';
- draw_CenterText('0.5 0.1 0', autocvar_menu_watermark, globalToBoxSize('32 32 0', draw_scale), '1 1 1', 0.05, 1);
+ draw_CenterText('0.5 0.1 0', sprintf(_("^1%s TEST BUILD"), autocvar_menu_watermark), globalToBoxSize('32 32 0', draw_scale), '1 1 1', 0.05, 1);
}
}
void preMenuDraw()
// TODO rather turn this into a dialog
fs = ((1/draw_scale_x) * eX + (1/draw_scale_y) * eY) * 12;
line = eY * fs_y;
- sz_x = draw_TextWidth(" http://www.xonotic.com/ ", 0, fs);
+ sz_x = draw_TextWidth(" http://www.xonotic.org/ ", 0, fs);
sz_y = 3 * fs_y;
draw_alpha = sin(time * 0.112 - 0.3) * 10;
+ eY * (0.5 + 0.5 * (1 - sz_y) * sin(time * 0.071));
draw_Fill(mid - 0.5 * sz, sz, '1 1 0', 1);
- draw_CenterText(mid - 1 * line, strcat("Update to ", _Nex_ExtResponseSystem_UpdateTo, " now!"), fs, '1 0 0', 1, 0);
+ draw_CenterText(mid - 1 * line, sprintf(_("Update to %s now!"), _Nex_ExtResponseSystem_UpdateTo), fs, '1 0 0', 1, 0);
draw_CenterText(mid - 0 * line, "http://www.xonotic.org/", fs, '0 0 1', 1, 0);
}
if not(campaign_name_previous)
cvar_set("gl_texturecompression", "1");
cvar_set("r_texture_dds_load", "1");
if(!can_dds)
- print("^1ERROR: Texture compression is required but not supported.\n^1Expect visual problems.\n");
+ print(_("^1ERROR: Texture compression is required but not supported.\n^1Expect visual problems.\n"));
return 0;
}
else
}
}
}
+
+// note: include only those that should be in the menu!
+#define GAMETYPES \
+ GAMETYPE(MAPINFO_TYPE_ARENA, _("Arena")) \
+ GAMETYPE(MAPINFO_TYPE_ASSAULT, _("Assault")) \
+ GAMETYPE(MAPINFO_TYPE_CTF, _("Capture The Flag")) \
+ GAMETYPE(MAPINFO_TYPE_CA, _("Clan Arena")) \
+ GAMETYPE(MAPINFO_TYPE_DEATHMATCH, _("Deathmatch")) \
+ GAMETYPE(MAPINFO_TYPE_DOMINATION, _("Domination")) \
+ GAMETYPE(MAPINFO_TYPE_FREEZETAG, _("Freeze Tag")) \
+ GAMETYPE(MAPINFO_TYPE_KEEPAWAY, _("Keepaway")) \
+ GAMETYPE(MAPINFO_TYPE_KEYHUNT, _("Key Hunt")) \
+ GAMETYPE(MAPINFO_TYPE_LMS, _("Last Man Standing")) \
+ GAMETYPE(MAPINFO_TYPE_NEXBALL, _("Nexball")) \
+ GAMETYPE(MAPINFO_TYPE_ONSLAUGHT, _("Onslaught")) \
+ GAMETYPE(MAPINFO_TYPE_RACE, _("Race")) \
+ GAMETYPE(MAPINFO_TYPE_CTS, _("Race CTS")) \
+ GAMETYPE(MAPINFO_TYPE_RUNEMATCH, _("Runematch")) \
+ GAMETYPE(MAPINFO_TYPE_TEAM_DEATHMATCH, _("Team Deathmatch")) \
+ /* nothing */
+
+float GameType_GetID(float cnt)
+{
+ float i;
+ i = 0;
+#define GAMETYPE(id,name) if(i++ == cnt) return id;
+ GAMETYPES
+#undef GAMETYPE
+ return 0;
+}
+string GameType_GetName(float cnt)
+{
+ float i;
+ i = 0;
+#define GAMETYPE(id,name) if(i++ == cnt) return name;
+ GAMETYPES
+#undef GAMETYPE
+ return _("@!#%'n Tuba Throwing");
+}
+float GameType_GetCount()
+{
+ float i;
+ i = 0;
+#define GAMETYPE(id,name) ++i;
+ GAMETYPES
+#undef GAMETYPE
+ return i;
+}
+
+void dialog_hudpanel_common_notoggle(entity me, string panelname)
+{
+ float i;
+ entity e;
+
+ me.TR(me);
+ me.TD(me, 1, 1.4, e = makeXonoticTextLabel(0, _("Background:")));
+ me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg"))));
+ e.addValue(e, _("Default"), "");
+ e.addValue(e, _("Disable"), "0");
+ e.addValue(e, strzone(strcat("border_", panelname)), strzone(strcat("border_", panelname)));
+ e.configureXonoticTextSliderValues(e);
+ me.TR(me);
+ me.TDempty(me, 0.2);
+ me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, _("Color:")));
+ me.TD(me, 2, 2.6, e = makeXonoticColorpickerString(strzone(strcat("hud_panel_", panelname, "_bg_color")), "hud_panel_bg_color"));
+ setDependentStringNotEqual(e, strzone(strcat("hud_panel_", panelname, "_bg_color")), "");
+ me.TR(me);
+ me.TDempty(me, 0.2);
+ me.TD(me, 1, 1.0, e = makeXonoticCheckBoxString("", "1 1 1", strzone(strcat("hud_panel_", panelname, "_bg_color")), _("Use default")));
+ me.TR(me);
+ me.TDempty(me, 0.2);
+ me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, _("Border size:")));
+ me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_border"))));
+ e.addValue(e, _("Default"), "");
+ e.addValue(e, _("Disable"), "0");
+ for(i = 1; i <= 10; ++i)
+ e.addValue(e, strzone(ftos_decimals(i * 2, 0)), strzone(ftos(i * 2)));
+ e.configureXonoticTextSliderValues(e);
+ me.TR(me);
+ me.TDempty(me, 0.2);
+ me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, _("Alpha:")));
+ me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_alpha"))));
+ e.addValue(e, _("Default"), "");
+ for(i = 1; i <= 10; ++i)
+ e.addValue(e, strzone(ftos_decimals(i/10, 1)), strzone(ftos(i/10)));
+ e.configureXonoticTextSliderValues(e);
+ me.TR(me);
+ me.TDempty(me, 0.2);
+ me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, _("Team Color:")));
+ me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_color_team"))));
+ e.addValue(e, _("Default"), "");
+ e.addValue(e, _("Disable"), "0");
+ for(i = 1; i <= 10; ++i)
+ e.addValue(e, strzone(ftos_decimals(i/10, 1)), strzone(ftos(i/10)));
+ e.configureXonoticTextSliderValues(e);
+ me.TR(me);
+ me.TDempty(me, 0.4);
+ me.TD(me, 1, 3.6, e = makeXonoticCheckBox(0, "hud_configure_teamcolorforced", _("Test team color in configure mode")));
+ me.TR(me);
+ me.TDempty(me, 0.2);
+ me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, _("Padding:")));
+ me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_padding"))));
+ e.addValue(e, _("Default"), "");
+ for(i = 0; i <= 10; ++i)
+ e.addValue(e, strzone(ftos_decimals(i - 5, 0)), strzone(ftos(i - 5)));
+ e.configureXonoticTextSliderValues(e);
+}
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
+// types stay available via console)
+float GameType_GetID(float cnt);
+string GameType_GetName(float cnt);
+float GameType_GetCount();
+
+void dialog_hudpanel_common_notoggle(entity me, string panelname);
+#define DIALOG_HUDPANEL_COMMON_NOTOGGLE() \
+ dialog_hudpanel_common_notoggle(me, panelname)
+#define DIALOG_HUDPANEL_COMMON() \
+ me.TR(me); \
+ me.TD(me, 1, 4, e = makeXonoticCheckBox(0, strzone(strcat("hud_panel_", panelname)), _("Enable panel"))); \
+ DIALOG_HUDPANEL_COMMON_NOTOGGLE()
self.anticheat_div0_evade_offset = 0;
}
-string anticheat_display(float f, float mi, float ma)
+string anticheat_display(float f, float tmin, float mi, float ma)
{
string s;
s = ftos(f);
if(!autocvar_sv_eventlog)
return;
GameLogEcho(strcat(":anticheat:_time:", ftos(self.playerid), ":", ftos(servertime - self.anticheat_jointime)));
- GameLogEcho(strcat(":anticheat:speedhack:", ftos(self.playerid), ":", ftos(MEAN_EVALUATE(anticheat_speedhack))));
- GameLogEcho(strcat(":anticheat:div0_strafebot_old:", ftos(self.playerid), ":", ftos(MEAN_EVALUATE(anticheat_div0_strafebot_old))));
- GameLogEcho(strcat(":anticheat:div0_strafebot_new:", ftos(self.playerid), ":", ftos(MEAN_EVALUATE(anticheat_div0_strafebot_new))));
- GameLogEcho(strcat(":anticheat:div0_evade:", ftos(self.playerid), ":", anticheat_display(MEAN_EVALUATE(anticheat_div0_evade), 0.15, 0.3)));
+ GameLogEcho(strcat(":anticheat:speedhack:", ftos(self.playerid), ":", anticheat_display(MEAN_EVALUATE(anticheat_speedhack), 240, 0.1, 0.15)));
+ GameLogEcho(strcat(":anticheat:div0_strafebot_old:", ftos(self.playerid), ":", anticheat_display(MEAN_EVALUATE(anticheat_div0_strafebot_old), 120, 0.3, 0.4)));
+ GameLogEcho(strcat(":anticheat:div0_strafebot_new:", ftos(self.playerid), ":", anticheat_display(MEAN_EVALUATE(anticheat_div0_strafebot_new), 120, 0.3, 0.4)));
+ GameLogEcho(strcat(":anticheat:div0_evade:", ftos(self.playerid), ":", anticheat_display(MEAN_EVALUATE(anticheat_div0_evade), 120, 0.1, 0.2)));
}
void anticheat_serverframe()
float autocvar_bot_ai_friends_aware_pickup_radius;
float autocvar_bot_ai_ignoregoal_timeout;
float autocvar_bot_ai_keyboard_distance;
-float autocvar_bot_ai_keyboard_treshold;
+float autocvar_bot_ai_keyboard_threshold;
float autocvar_bot_ai_navigation_jetpack;
float autocvar_bot_ai_navigation_jetpack_mindistance;
float autocvar_bot_ai_strategyinterval;
#define autocvar_bot_suffix cvar_string("bot_suffix")
float autocvar_bot_usemodelnames;
float autocvar_bot_vs_human;
+float autocvar_bot_debug_tracewalk;
+float autocvar_bot_debug_goalstack;
+float autocvar_bot_wander_enable;
float autocvar_captureleadlimit_override;
#define autocvar_capturelimit_override cvar("capturelimit_override")
float autocvar_deathmatch_force_teamplay;
float autocvar_g_balance_armor_rotlinear;
float autocvar_g_balance_armor_rotstable;
float autocvar_g_balance_armor_start;
-float autocvar_g_balance_sniperrifle_auto_reload_on_switch;
float autocvar_g_balance_sniperrifle_bursttime;
-float autocvar_g_balance_sniperrifle_magazinecapacity;
float autocvar_g_balance_sniperrifle_primary_ammo;
float autocvar_g_balance_sniperrifle_primary_animtime;
float autocvar_g_balance_sniperrifle_primary_bulletconstant;
float autocvar_g_balance_sniperrifle_primary_headshotaddeddamage;
float autocvar_g_balance_sniperrifle_primary_lifetime;
float autocvar_g_balance_sniperrifle_primary_refire;
+float autocvar_g_balance_sniperrifle_primary_shots;
float autocvar_g_balance_sniperrifle_primary_speed;
float autocvar_g_balance_sniperrifle_primary_spread;
float autocvar_g_balance_sniperrifle_primary_tracer;
-float autocvar_g_balance_sniperrifle_reloadtime;
float autocvar_g_balance_sniperrifle_secondary;
float autocvar_g_balance_sniperrifle_secondary_ammo;
float autocvar_g_balance_sniperrifle_secondary_animtime;
float autocvar_g_balance_sniperrifle_secondary_force;
float autocvar_g_balance_sniperrifle_secondary_headshotaddeddamage;
float autocvar_g_balance_sniperrifle_secondary_lifetime;
+float autocvar_g_balance_sniperrifle_secondary_reload;
float autocvar_g_balance_sniperrifle_secondary_refire;
+float autocvar_g_balance_sniperrifle_secondary_shots;
float autocvar_g_balance_sniperrifle_secondary_speed;
float autocvar_g_balance_sniperrifle_secondary_spread;
float autocvar_g_balance_sniperrifle_secondary_tracer;
+float autocvar_g_balance_sniperrifle_reload_ammo;
+float autocvar_g_balance_sniperrifle_reload_time;
float autocvar_g_balance_cloaked_alpha;
float autocvar_g_balance_crylink_primary_ammo;
float autocvar_g_balance_crylink_primary_animtime;
float autocvar_g_balance_crylink_secondary_shots;
float autocvar_g_balance_crylink_secondary_speed;
float autocvar_g_balance_crylink_secondary_spread;
+float autocvar_g_balance_crylink_reload_ammo;
+float autocvar_g_balance_crylink_reload_time;
float autocvar_g_balance_ctf_damageforcescale;
float autocvar_g_balance_ctf_delay_collect;
float autocvar_g_balance_curse_empathy_minhealth;
float autocvar_g_balance_curse_vulner_takedamage;
float autocvar_g_balance_curse_weak_damage;
float autocvar_g_balance_curse_weak_force;
+float autocvar_g_balance_damagepush_speedfactor;
float autocvar_g_balance_electro_combo_comboradius;
float autocvar_g_balance_electro_combo_damage;
float autocvar_g_balance_electro_combo_edgedamage;
float autocvar_g_balance_electro_secondary_refire;
float autocvar_g_balance_electro_secondary_refire2;
float autocvar_g_balance_electro_secondary_speed;
+float autocvar_g_balance_electro_reload_ammo;
+float autocvar_g_balance_electro_reload_time;
float autocvar_g_balance_falldamage_deadminspeed;
float autocvar_g_balance_falldamage_factor;
float autocvar_g_balance_falldamage_maxdamage;
float autocvar_g_balance_fireball_secondary_refire;
float autocvar_g_balance_fireball_secondary_speed;
float autocvar_g_balance_fireball_secondary_speed_up;
+float autocvar_g_balance_fireball_reload_ammo;
+float autocvar_g_balance_fireball_reload_time;
float autocvar_g_balance_firetransfer_damage;
float autocvar_g_balance_firetransfer_time;
float autocvar_g_balance_fuel_limit;
float autocvar_g_balance_grenadelauncher_secondary_speed;
float autocvar_g_balance_grenadelauncher_secondary_speed_up;
float autocvar_g_balance_grenadelauncher_secondary_type;
+float autocvar_g_balance_grenadelauncher_reload_ammo;
+float autocvar_g_balance_grenadelauncher_reload_time;
float autocvar_g_balance_hagar_primary_ammo;
float autocvar_g_balance_hagar_primary_damage;
float autocvar_g_balance_hagar_primary_edgedamage;
float autocvar_g_balance_hagar_secondary_lifetime_rand;
float autocvar_g_balance_hagar_secondary_radius;
float autocvar_g_balance_hagar_secondary_refire;
+float autocvar_g_balance_hagar_reload_ammo;
+float autocvar_g_balance_hagar_reload_time;
float autocvar_g_balance_health_limit;
float autocvar_g_balance_health_regen;
float autocvar_g_balance_health_regenlinear;
float autocvar_g_balance_hlac_secondary_speed;
float autocvar_g_balance_hlac_secondary_spread;
float autocvar_g_balance_hlac_secondary_spread_crouchmod;
+float autocvar_g_balance_hlac_reload_ammo;
+float autocvar_g_balance_hlac_reload_time;
float autocvar_g_balance_hook_primary_animtime;
float autocvar_g_balance_hook_primary_fuel;
float autocvar_g_balance_hook_primary_hooked_fuel;
float autocvar_g_balance_laser_primary_delay;
float autocvar_g_balance_laser_primary_edgedamage;
float autocvar_g_balance_laser_primary_force;
+float autocvar_g_balance_laser_primary_force_other_scale;
float autocvar_g_balance_laser_primary_force_velocitybias;
float autocvar_g_balance_laser_primary_force_zscale;
float autocvar_g_balance_laser_primary_lifetime;
float autocvar_g_balance_laser_secondary_damage;
float autocvar_g_balance_laser_secondary_edgedamage;
float autocvar_g_balance_laser_secondary_force;
+float autocvar_g_balance_laser_secondary_force_other_scale;
float autocvar_g_balance_laser_secondary_force_velocitybias;
float autocvar_g_balance_laser_secondary_force_zscale;
float autocvar_g_balance_laser_secondary_lifetime;
float autocvar_g_balance_laser_secondary_radius;
float autocvar_g_balance_laser_secondary_speed;
+float autocvar_g_balance_laser_reload_ammo;
+float autocvar_g_balance_laser_reload_time;
float autocvar_g_balance_minelayer_ammo;
float autocvar_g_balance_minelayer_animtime;
float autocvar_g_balance_minelayer_damage;
float autocvar_g_balance_minelayer_force;
float autocvar_g_balance_minelayer_health;
float autocvar_g_balance_minelayer_lifetime;
+float autocvar_g_balance_minelayer_lifetime_countdown;
float autocvar_g_balance_minelayer_limit;
float autocvar_g_balance_minelayer_protection;
float autocvar_g_balance_minelayer_proximityradius;
float autocvar_g_balance_minelayer_remote_radius;
float autocvar_g_balance_minelayer_speed;
float autocvar_g_balance_minelayer_time;
+float autocvar_g_balance_minelayer_reload_ammo;
+float autocvar_g_balance_minelayer_reload_time;
float autocvar_g_balance_minstanex_ammo;
+float autocvar_g_balance_minstanex_laser_ammo;
float autocvar_g_balance_minstanex_animtime;
float autocvar_g_balance_minstanex_refire;
+float autocvar_g_balance_minstanex_reload_ammo;
+float autocvar_g_balance_minstanex_reload_time;
float autocvar_g_balance_nex_charge;
+float autocvar_g_balance_nex_charge_animlimit;
float autocvar_g_balance_nex_charge_limit;
float autocvar_g_balance_nex_charge_maxspeed;
float autocvar_g_balance_nex_charge_mindmg;
float autocvar_g_balance_nex_secondary_damagefalloff_mindist;
float autocvar_g_balance_nex_secondary_force;
float autocvar_g_balance_nex_secondary_refire;
+float autocvar_g_balance_nex_reload_ammo;
+float autocvar_g_balance_nex_reload_time;
float autocvar_g_balance_nexball_primary_animtime;
float autocvar_g_balance_nexball_primary_refire;
float autocvar_g_balance_nexball_primary_speed;
float autocvar_g_balance_rocketlauncher_speed;
float autocvar_g_balance_rocketlauncher_speedaccel;
float autocvar_g_balance_rocketlauncher_speedstart;
+float autocvar_g_balance_rocketlauncher_reload_ammo;
+float autocvar_g_balance_rocketlauncher_reload_time;
float autocvar_g_balance_rune_defense_combo_takedamage;
float autocvar_g_balance_rune_defense_takedamage;
float autocvar_g_balance_rune_regen_combo_hpmod;
float autocvar_g_balance_rune_vampire_absorb;
float autocvar_g_balance_rune_vampire_combo_absorb;
float autocvar_g_balance_rune_vampire_maxhealth;
+float autocvar_g_balance_seeker_type;
float autocvar_g_balance_seeker_flac_ammo;
float autocvar_g_balance_seeker_flac_animtime;
float autocvar_g_balance_seeker_flac_damage;
float autocvar_g_balance_seeker_flac_refire;
float autocvar_g_balance_seeker_missile_accel;
float autocvar_g_balance_seeker_missile_ammo;
+float autocvar_g_balance_seeker_missile_animtime;
float autocvar_g_balance_seeker_missile_count;
float autocvar_g_balance_seeker_missile_damage;
float autocvar_g_balance_seeker_missile_damageforcescale;
float autocvar_g_balance_seeker_missile_proxy_delay;
float autocvar_g_balance_seeker_missile_proxy_maxrange;
float autocvar_g_balance_seeker_missile_radius;
+float autocvar_g_balance_seeker_missile_refire;
float autocvar_g_balance_seeker_missile_smart;
float autocvar_g_balance_seeker_missile_smart_mindist;
float autocvar_g_balance_seeker_missile_smart_trace_max;
float autocvar_g_balance_seeker_tag_lifetime;
float autocvar_g_balance_seeker_tag_refire;
float autocvar_g_balance_seeker_tag_speed;
+float autocvar_g_balance_seeker_tag_tracker_lifetime;
+float autocvar_g_balance_seeker_reload_ammo;
+float autocvar_g_balance_seeker_reload_time;
float autocvar_g_balance_selfdamagepercent;
float autocvar_g_balance_shotgun_primary_ammo;
float autocvar_g_balance_shotgun_primary_animtime;
float autocvar_g_balance_shotgun_secondary_melee_range;
float autocvar_g_balance_shotgun_secondary_melee_swing;
float autocvar_g_balance_shotgun_secondary_melee_time;
+float autocvar_g_balance_shotgun_secondary_melee_no_doubleslap;
float autocvar_g_balance_shotgun_secondary_refire;
+float autocvar_g_balance_shotgun_reload_ammo;
+float autocvar_g_balance_shotgun_reload_time;
float autocvar_g_balance_teams;
float autocvar_g_balance_teams_force;
float autocvar_g_balance_teams_prevent_imbalance;
float autocvar_g_balance_uzi_bulletconstant;
float autocvar_g_balance_uzi_burst;
float autocvar_g_balance_uzi_burst_ammo;
+float autocvar_g_balance_uzi_burst_animtime;
float autocvar_g_balance_uzi_burst_refire;
float autocvar_g_balance_uzi_burst_refire2;
float autocvar_g_balance_uzi_burst_spread;
float autocvar_g_balance_uzi_sustained_force;
float autocvar_g_balance_uzi_sustained_refire;
float autocvar_g_balance_uzi_sustained_spread;
+float autocvar_g_balance_uzi_reload_ammo;
+float autocvar_g_balance_uzi_reload_time;
float autocvar_g_balance_weaponswitchdelay;
float autocvar_g_ballistics_density_corpse;
float autocvar_g_ballistics_density_player;
float autocvar_g_freezetag_warmup;
#define autocvar_g_friendlyfire cvar("g_friendlyfire")
#define autocvar_g_friendlyfire_virtual cvar("g_friendlyfire_virtual")
+#define autocvar_g_friendlyfire_virtual_force cvar("g_friendlyfire_virtual_force")
float autocvar_g_full_getstatus_responses;
float autocvar_g_fullbrightitems;
float autocvar_g_fullbrightplayers;
float autocvar_g_jetpack_fuel;
float autocvar_g_jetpack_maxspeed_side;
float autocvar_g_jetpack_maxspeed_up;
-float autocvar_g_keepaway_ballcarrier_alpha;
+float autocvar_g_keepaway_ballcarrier_effects;
float autocvar_g_keepaway_ballcarrier_damage;
float autocvar_g_keepaway_ballcarrier_force;
float autocvar_g_keepaway_ballcarrier_highspeed;
float autocvar_g_keepaway_ballcarrier_selfdamage;
float autocvar_g_keepaway_ballcarrier_selfforce;
-float autocvar_g_keepaway_bckillscore;
float autocvar_g_keepaway_noncarrier_damage;
float autocvar_g_keepaway_noncarrier_force;
float autocvar_g_keepaway_noncarrier_selfdamage;
float autocvar_g_keepaway_noncarrier_selfforce;
float autocvar_g_keepaway_noncarrier_warn;
+float autocvar_g_keepaway_score_bckill;
+float autocvar_g_keepaway_score_killac;
+float autocvar_g_keepaway_score_timepoints;
+float autocvar_g_keepaway_score_timeinterval;
float autocvar_g_keepawayball_damageforcescale;
+float autocvar_g_keepawayball_effects;
float autocvar_g_keepawayball_respawntime;
float autocvar_g_keepawayball_trail_color;
float autocvar_g_keyhunt_point_leadlimit;
float autocvar_g_minstagib_ammo_drop;
float autocvar_g_minstagib_extralives;
float autocvar_g_minstagib_speed_highspeed;
-float autocvar_g_mirrordamage;
#define autocvar_g_mirrordamage cvar("g_mirrordamage")
#define autocvar_g_mirrordamage_virtual cvar("g_mirrordamage_virtual")
float autocvar_g_monster_zombie_attack_run_damage;
float autocvar_g_player_brightness;
float autocvar_g_playerclip_collisions;
string autocvar_g_playerstats_uri;
+float autocvar_g_playerstats_debug;
float autocvar_g_powerup_shield;
float autocvar_g_powerup_strength;
float autocvar_g_powerup_superhealth;
float autocvar_sv_friction_on_land;
float autocvar_sv_gameplayfix_q2airaccelerate;
#define autocvar_sv_gravity cvar("sv_gravity")
-float autocvar_sv_hitsound_antispam_time;
string autocvar_sv_intermission_cdtrack;
string autocvar_sv_jumpspeedcap_max;
float autocvar_sv_jumpspeedcap_max_disable_on_ramps;
float autocvar_sv_warsowbunny_backtosideratio;
float autocvar_sv_warsowbunny_topspeed;
float autocvar_sv_warsowbunny_turnaccel;
-string autocvar_sv_weaponstats_damagefile;
-string autocvar_sv_weaponstats_killfile;
+string autocvar_sv_weaponstats_file;
+float autocvar_sv_gibhealth;
float autocvar_sys_ticrate;
float autocvar_teamplay_lockonrestart;
float autocvar_teamplay_mode;
#define autocvar_timelimit cvar("timelimit")
#define autocvar_timelimit_override cvar("timelimit_override")
+float autocvar_timelimit_increment;
+float autocvar_timelimit_decrement;
+float autocvar_timelimit_min;
+float autocvar_timelimit_max;
float autocvar_timelimit_overtime;
float autocvar_timelimit_overtimes;
float autocvar_timelimit_suddendeath;
float autocvar_waypoint_benchmark;
float autocvar_welcome_message_time;
float autocvar_sv_gameplayfix_gravityunaffectedbyticrate;
+float autocvar_g_trueaim_minrange;
self.bot_strategytime = 0;
}
}
+ else if(self.aistatus & AI_STATUS_STUCK)
+ navigation_unstuck();
// now call the current bot AI (havocbot for example)
self.bot_ai();
self.playermodel_freeme = string_null;
self.playerskin_freeme = string_null;
remove(self.bot_cmd_current);
+ if(bot_waypoint_queue_owner==self)
+ bot_waypoint_queue_owner = world;
}
void bot_clientconnect()
* Globals and Fields
*/
-float AI_STATUS_ROAMING = 1; // Bot is just crawling the map. No enemies at sight
-float AI_STATUS_ATTACKING = 2; // There are enemies at sight
-float AI_STATUS_RUNNING = 4; // Bot is bunny hopping
-float AI_STATUS_DANGER_AHEAD = 8; // There is lava/slime/trigger_hurt ahead
-float AI_STATUS_OUT_JUMPPAD = 16; // Trying to get out of a "vertical" jump pad
-float AI_STATUS_OUT_WATER = 32; // Trying to get out of water
+float AI_STATUS_ROAMING = 1; // Bot is just crawling the map. No enemies at sight
+float AI_STATUS_ATTACKING = 2; // There are enemies at sight
+float AI_STATUS_RUNNING = 4; // Bot is bunny hopping
+float AI_STATUS_DANGER_AHEAD = 8; // There is lava/slime/trigger_hurt ahead
+float AI_STATUS_OUT_JUMPPAD = 16; // Trying to get out of a "vertical" jump pad
+float AI_STATUS_OUT_WATER = 32; // Trying to get out of water
float AI_STATUS_WAYPOINT_PERSONAL_LINKING = 64; // Waiting for the personal waypoint to be linked
float AI_STATUS_WAYPOINT_PERSONAL_GOING = 128; // Going to a personal waypoint
float AI_STATUS_WAYPOINT_PERSONAL_REACHED = 256; // Personal waypoint reached
-float AI_STATUS_JETPACK_FLYING = 512;
-float AI_STATUS_JETPACK_LANDING = 1024;
+float AI_STATUS_JETPACK_FLYING = 512;
+float AI_STATUS_JETPACK_LANDING = 1024;
+float AI_STATUS_STUCK = 2048; // Cannot reach any goal
.float isbot; // true if this client is actually a bot
.float aistatus;
bot_aimdir(v, -1);
}
havocbot_movetogoal();
+
+ // if the bot is not attacking, consider reloading weapons
+ if not(self.aistatus & AI_STATUS_ATTACKING)
+ {
+ float i;
+ entity e;
+
+ // we are currently holding a weapon that's not fully loaded, reload it
+ if(skill >= 2) // bots can only reload the held weapon on purpose past this skill
+ if(self.clip_load < self.clip_size)
+ self.impulse = 20; // "press" the reload button, not sure if this is done right
+
+ // if we're not reloading a weapon, switch to any weapon in our invnetory that's not fully loaded to reload it next
+ // the code above executes next frame, starting the reloading then
+ if(skill >= 5) // bots can only look for unloaded weapons past this skill
+ if(self.clip_load >= 0) // only if we're not reloading a weapon already
+ {
+ for(i = WEP_FIRST; i <= WEP_LAST; ++i)
+ {
+ e = get_weaponinfo(i);
+ if ((e.spawnflags & WEP_FLAG_RELOADABLE) && (self.weapon_load[i] < cvar(strcat("g_balance_", e.netname, "_reload_ammo"))))
+ self.switchweapon = i;
+ }
+ }
+ }
};
void havocbot_keyboard_movement(vector destorg)
local float trigger, trigger1;
blend = bound(0,sk*0.1,1);
- trigger = autocvar_bot_ai_keyboard_treshold;
+ trigger = autocvar_bot_ai_keyboard_threshold;
trigger1 = 0 - trigger;
// categorize forward movement
if(self.goalcurrent==self.navigation_jetpack_goal)
if(self.ammo_fuel)
{
- #ifdef DEBUG_BOT_GOALSTACK
+ if(autocvar_bot_debug_goalstack)
+ {
debuggoalstack();
te_wizspike(self.navigation_jetpack_point);
- #endif
+ }
// Take off
if not(self.aistatus & AI_STATUS_JETPACK_FLYING)
return;
}
-#ifdef DEBUG_BOT_GOALSTACK
- debuggoalstack();
-#endif
+ if(autocvar_bot_debug_goalstack)
+ debuggoalstack();
m1 = self.goalcurrent.origin + self.goalcurrent.mins;
m2 = self.goalcurrent.origin + self.goalcurrent.maxs;
self.havocbot_stickenemy = TRUE;
};
+float havocbot_chooseweapon_checkreload(float new_weapon)
+{
+ // bots under this skill cannot find unloaded weapons to reload idly when not in combat,
+ // so skip this for them, or they'll never get to reload their weapons at all.
+ // this also allows bots under this skill to be more stupid, and reload more often during combat :)
+ if(skill < 5)
+ return FALSE;
+
+ // if this weapon is scheduled for reloading, don't switch to it during combat
+ if (self.weapon_load[new_weapon] < 0)
+ {
+ local float i, other_weapon_available;
+ 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
+ if (weapon_action(i, WR_CHECKAMMO1) + weapon_action(i, WR_CHECKAMMO2))
+ other_weapon_available = TRUE;
+ }
+ if(other_weapon_available)
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
void havocbot_chooseweapon()
{
local float i;
if(i < 1)
return;
- // Workaround for rifle reloading (..)
- if(self.weapon == WEP_SNIPERRIFLE)
- if(i < autocvar_g_balance_sniperrifle_reloadtime + 1)
- return;
-
local float w;
local float distance; distance=bound(10,vlen(self.origin-self.enemy.origin)-200,10000);
if ( distance > bot_distance_far ) {
for(i=0; i < WEP_COUNT && bot_weapons_far[i] != -1 ; ++i){
w = bot_weapons_far[i];
- if ( client_hasweapon(self, w, TRUE, FALSE) ){
- if ( self.weapon == w && combo)
+ if ( client_hasweapon(self, w, TRUE, FALSE) )
+ {
+ if ((self.weapon == w && combo) || havocbot_chooseweapon_checkreload(w))
continue;
self.switchweapon = w;
return;
if ( distance > bot_distance_close) {
for(i=0; i < WEP_COUNT && bot_weapons_mid[i] != -1 ; ++i){
w = bot_weapons_mid[i];
- if ( client_hasweapon(self, w, TRUE, FALSE) ){
- if ( self.weapon == w && combo)
+ if ( client_hasweapon(self, w, TRUE, FALSE) )
+ {
+ if ((self.weapon == w && combo) || havocbot_chooseweapon_checkreload(w))
continue;
self.switchweapon = w;
return;
// Choose weapons for close distance
for(i=0; i < WEP_COUNT && bot_weapons_close[i] != -1 ; ++i){
w = bot_weapons_close[i];
- if ( client_hasweapon(self, w, TRUE, FALSE) ){
- if ( self.weapon == w && combo)
+ if ( client_hasweapon(self, w, TRUE, FALSE) )
+ {
+ if ((self.weapon == w && combo) || havocbot_chooseweapon_checkreload(w))
continue;
self.switchweapon = w;
return;
}
}
- #ifdef DEBUG_BOT_GOALSTACK
+ if(autocvar_bot_debug_goalstack)
debuggoalstack();
- #endif
// Heading
local vector dir = self.goalcurrent.origin - (self.origin + self.view_ofs);
local float ignorehazards;
local float swimming;
- #ifdef DEBUG_TRACEWALK
+ if(autocvar_bot_debug_tracewalk)
+ {
debugresetnodes();
debugnode(start);
- #endif
+ }
move = end - start;
move_z = 0;
if (trace_startsolid)
{
// Bad start
- #ifdef DEBUG_TRACEWALK
+ if(autocvar_bot_debug_tracewalk)
debugnodestatus(start, DEBUG_NODE_FAIL);
- #endif
+
//print("tracewalk: ", vtos(start), " is a bad start\n");
return FALSE;
}
if (boxesoverlap(end, end, org + m1 + '-1 -1 -1', org + m2 + '1 1 1'))
{
// Succeeded
- #ifdef DEBUG_TRACEWALK
+ if(autocvar_bot_debug_tracewalk)
debugnodestatus(org, DEBUG_NODE_SUCCESS);
- #endif
+
//print("tracewalk: ", vtos(start), " can reach ", vtos(end), "\n");
return TRUE;
}
- #ifdef DEBUG_TRACEWALK
+ if(autocvar_bot_debug_tracewalk)
debugnode(org);
- #endif
if (dist <= 0)
break;
if (trace_dpstartcontents & (DPCONTENTS_SLIME | DPCONTENTS_LAVA))
{
// hazards blocking path
- #ifdef DEBUG_TRACEWALK
+ if(autocvar_bot_debug_tracewalk)
debugnodestatus(org, DEBUG_NODE_FAIL);
- #endif
+
//print("tracewalk: ", vtos(start), " hits a hazard when trying to reach ", vtos(end), "\n");
return FALSE;
}
move = normalize(end - org);
tracebox(org, m1, m2, org + move * stepdist, movemode, e);
- #ifdef DEBUG_TRACEWALK
+ if(autocvar_bot_debug_tracewalk)
debugnode(trace_endpos);
- #endif
if (trace_fraction < 1)
{
org = trace_endpos - normalize(org - trace_endpos) * stepdist;
for(; org_z < end_z + self.maxs_z; org_z += stepdist)
{
- #ifdef DEBUG_TRACEWALK
+ if(autocvar_bot_debug_tracewalk)
debugnode(org);
- #endif
+
if(pointcontents(org) == CONTENT_EMPTY)
break;
}
if not (pointcontents(org + '0 0 1') == CONTENT_EMPTY)
{
- #ifdef DEBUG_TRACEWALK
+ if(autocvar_bot_debug_tracewalk)
debugnodestatus(org, DEBUG_NODE_FAIL);
- #endif
+
return FALSE;
//print("tracewalk: ", vtos(start), " failed under water\n");
}
move = dir * stepdist + org;
tracebox(org, m1, m2, move, movemode, e);
- #ifdef DEBUG_TRACEWALK
+ if(autocvar_bot_debug_tracewalk)
debugnode(trace_endpos);
- #endif
// hit something
if (trace_fraction < 1)
tracebox(org + stepheightvec, m1, m2, move + stepheightvec, movemode, e);
if (trace_fraction < 1 || trace_startsolid)
{
- #ifdef DEBUG_TRACEWALK
+ if(autocvar_bot_debug_tracewalk)
debugnodestatus(trace_endpos, DEBUG_NODE_WARNING);
- #endif
// check for doors
traceline( org, move, movemode, e);
}
else
{
- #ifdef DEBUG_TRACEWALK
+ if(autocvar_bot_debug_tracewalk)
debugnodestatus(trace_endpos, DEBUG_NODE_FAIL);
- #endif
+
//print("tracewalk: ", vtos(start), " hit something when trying to reach ", vtos(end), "\n");
//te_explosion(trace_endpos);
//print(ftos(e.dphitcontentsmask), "\n");
//print("tracewalk: ", vtos(start), " did not arrive at ", vtos(end), " but at ", vtos(org), "\n");
// moved but didn't arrive at the intended destination
- #ifdef DEBUG_TRACEWALK
+ if(autocvar_bot_debug_tracewalk)
debugnodestatus(org, DEBUG_NODE_FAIL);
- #endif
return FALSE;
};
// begin a goal selection session (queries spawnfunc_waypoint network)
void navigation_goalrating_start()
{
+ if(self.aistatus & AI_STATUS_STUCK)
+ return;
+
self.navigation_jetpack_goal = world;
navigation_bestrating = -1;
self.navigation_hasgoals = FALSE;
// ends a goal selection session (updates goal stack to the best goal)
void navigation_goalrating_end()
{
+ if(self.aistatus & AI_STATUS_STUCK)
+ return;
+
navigation_routetogoal(navigation_bestgoal, self.origin);
// dprint("best goal ", self.goalcurrent.classname , "\n");
- // Hack: if it can't walk to any goal just move blindly to the first visible waypoint
+ // If the bot got stuck then try to reach the farthest waypoint
if not (self.navigation_hasgoals)
+ if (autocvar_bot_wander_enable)
{
- dprint(self.netname, " can't walk to any goal, going to a near waypoint\n");
-
- entity head;
-
- RandomSelection_Init();
- head = findradius(self.origin,1000);
- while(head)
+ if not(self.aistatus & AI_STATUS_STUCK)
{
- if(head.classname=="waypoint")
- if(!(head.wpflags & WAYPOINTFLAG_GENERATED))
- if(vlen(self.origin-head.origin)>100)
- if(checkpvs(self.view_ofs,head))
- RandomSelection_Add(head, 0, string_null, 1 + (vlen(self.origin-head.origin)<500), 0);
- head = head.chain;
+ dprint(self.netname, " cannot walk to any goal\n");
+ self.aistatus |= AI_STATUS_STUCK;
}
- if(RandomSelection_chosen_ent)
- navigation_routetogoal(RandomSelection_chosen_ent, self.origin);
self.navigation_hasgoals = FALSE; // Reset this value
}
}
};
-#ifdef DEBUG_TRACEWALK
+void navigation_unstuck()
+{
+ float search_radius = 1000;
+
+ if not(autocvar_bot_wander_enable)
+ return;
+
+ if not(bot_waypoint_queue_owner)
+ {
+ // dprint(self.netname, " sutck, taking over the waypoints queue\n");
+ bot_waypoint_queue_owner = self;
+ bot_waypoint_queue_bestgoal = world;
+ bot_waypoint_queue_bestgoalrating = 0;
+ }
+
+ if(bot_waypoint_queue_owner!=self)
+ return;
+
+ if (bot_waypoint_queue_goal)
+ {
+ // evaluate the next goal on the queue
+ float d = vlen(self.origin - bot_waypoint_queue_goal.origin);
+ // dprint(self.netname, " evaluating ", bot_waypoint_queue_goal.classname, " with distance ", ftos(d), "\n");
+ if(tracewalk(bot_waypoint_queue_goal, self.origin, PL_MIN, PL_MAX, bot_waypoint_queue_goal.origin, bot_navigation_movemode))
+ {
+ if( d > bot_waypoint_queue_bestgoalrating)
+ {
+ bot_waypoint_queue_bestgoalrating = d;
+ bot_waypoint_queue_bestgoal = bot_waypoint_queue_goal;
+ }
+ }
+ bot_waypoint_queue_goal = bot_waypoint_queue_goal.bot_waypoint_queue_nextgoal;
+
+ if not(bot_waypoint_queue_goal)
+ {
+ if (bot_waypoint_queue_bestgoal)
+ {
+ dprint(self.netname, " stuck, reachable waypoint found, heading to it\n");
+ navigation_routetogoal(bot_waypoint_queue_bestgoal, self.origin);
+ self.bot_strategytime = time + autocvar_bot_ai_strategyinterval;
+ self.aistatus &~= AI_STATUS_STUCK;
+ }
+ else
+ {
+ dprint(self.netname, " stuck, cannot walk to any waypoint at all\n");
+ }
+
+ bot_waypoint_queue_owner = world;
+ }
+ }
+ else
+ {
+ if(bot_strategytoken!=self)
+ return;
+
+ // build a new queue
+ dprint(self.netname, " stuck, scanning reachable waypoints within ", ftos(search_radius)," qu\n");
+
+ entity head, first;
+
+ first = world;
+ head = findradius(self.origin, search_radius);
+
+ while(head)
+ {
+ if(head.classname=="waypoint")
+ if(!(head.wpflags & WAYPOINTFLAG_GENERATED))
+ {
+ if(bot_waypoint_queue_goal)
+ bot_waypoint_queue_goal.bot_waypoint_queue_nextgoal = head;
+ else
+ first = head;
+
+ bot_waypoint_queue_goal = head;
+ bot_waypoint_queue_goal.bot_waypoint_queue_nextgoal = world;
+ }
+
+ head = head.chain;
+ }
+
+ if (first)
+ bot_waypoint_queue_goal = first;
+ else
+ {
+ dprint(self.netname, " stuck, cannot walk to any waypoint at all\n");
+ bot_waypoint_queue_owner = world;
+ }
+ }
+}
+
+// Support for debugging tracewalk visually
void debugresetnodes()
{
void debugnodestatus(vector position, float status)
{
- vector color;
+ vector c;
switch (status)
{
case DEBUG_NODE_SUCCESS:
- color = '0 15 0';
+ c = '0 15 0';
break;
case DEBUG_NODE_WARNING:
- color = '15 15 0';
+ c = '15 15 0';
break;
case DEBUG_NODE_FAIL:
- color = '15 0 0';
+ c = '15 0 0';
break;
default:
- color = '15 15 15';
+ c = '15 15 15';
}
- te_customflash(position, 40, 2, color);
+ te_customflash(position, 40, 2, c);
}
-#endif
-
-#ifdef DEBUG_BOT_GOALSTACK
+// Support for debugging the goal stack visually
.float goalcounter;
.vector lastposition;
// Debug the goal stack visually
void debuggoalstack()
{
- local entity target;
+ local entity goal;
local vector org;
- if(self.goalcounter==0)target=self.goalcurrent;
- else if(self.goalcounter==1)target=self.goalstack01;
- else if(self.goalcounter==2)target=self.goalstack02;
- else if(self.goalcounter==3)target=self.goalstack03;
- else if(self.goalcounter==4)target=self.goalstack04;
- else if(self.goalcounter==5)target=self.goalstack05;
- else if(self.goalcounter==6)target=self.goalstack06;
- else if(self.goalcounter==7)target=self.goalstack07;
- else if(self.goalcounter==8)target=self.goalstack08;
- else if(self.goalcounter==9)target=self.goalstack09;
- else if(self.goalcounter==10)target=self.goalstack10;
- else if(self.goalcounter==11)target=self.goalstack11;
- else if(self.goalcounter==12)target=self.goalstack12;
- else if(self.goalcounter==13)target=self.goalstack13;
- else if(self.goalcounter==14)target=self.goalstack14;
- else if(self.goalcounter==15)target=self.goalstack15;
- else if(self.goalcounter==16)target=self.goalstack16;
- else if(self.goalcounter==17)target=self.goalstack17;
- else if(self.goalcounter==18)target=self.goalstack18;
- else if(self.goalcounter==19)target=self.goalstack19;
- else if(self.goalcounter==20)target=self.goalstack20;
- else if(self.goalcounter==21)target=self.goalstack21;
- else if(self.goalcounter==22)target=self.goalstack22;
- else if(self.goalcounter==23)target=self.goalstack23;
- else if(self.goalcounter==24)target=self.goalstack24;
- else if(self.goalcounter==25)target=self.goalstack25;
- else if(self.goalcounter==26)target=self.goalstack26;
- else if(self.goalcounter==27)target=self.goalstack27;
- else if(self.goalcounter==28)target=self.goalstack28;
- else if(self.goalcounter==29)target=self.goalstack29;
- else if(self.goalcounter==30)target=self.goalstack30;
- else if(self.goalcounter==31)target=self.goalstack31;
-
- if(target==world)
+ if(self.goalcounter==0)goal=self.goalcurrent;
+ else if(self.goalcounter==1)goal=self.goalstack01;
+ else if(self.goalcounter==2)goal=self.goalstack02;
+ else if(self.goalcounter==3)goal=self.goalstack03;
+ else if(self.goalcounter==4)goal=self.goalstack04;
+ else if(self.goalcounter==5)goal=self.goalstack05;
+ else if(self.goalcounter==6)goal=self.goalstack06;
+ else if(self.goalcounter==7)goal=self.goalstack07;
+ else if(self.goalcounter==8)goal=self.goalstack08;
+ else if(self.goalcounter==9)goal=self.goalstack09;
+ else if(self.goalcounter==10)goal=self.goalstack10;
+ else if(self.goalcounter==11)goal=self.goalstack11;
+ else if(self.goalcounter==12)goal=self.goalstack12;
+ else if(self.goalcounter==13)goal=self.goalstack13;
+ else if(self.goalcounter==14)goal=self.goalstack14;
+ else if(self.goalcounter==15)goal=self.goalstack15;
+ else if(self.goalcounter==16)goal=self.goalstack16;
+ else if(self.goalcounter==17)goal=self.goalstack17;
+ else if(self.goalcounter==18)goal=self.goalstack18;
+ else if(self.goalcounter==19)goal=self.goalstack19;
+ else if(self.goalcounter==20)goal=self.goalstack20;
+ else if(self.goalcounter==21)goal=self.goalstack21;
+ else if(self.goalcounter==22)goal=self.goalstack22;
+ else if(self.goalcounter==23)goal=self.goalstack23;
+ else if(self.goalcounter==24)goal=self.goalstack24;
+ else if(self.goalcounter==25)goal=self.goalstack25;
+ else if(self.goalcounter==26)goal=self.goalstack26;
+ else if(self.goalcounter==27)goal=self.goalstack27;
+ else if(self.goalcounter==28)goal=self.goalstack28;
+ else if(self.goalcounter==29)goal=self.goalstack29;
+ else if(self.goalcounter==30)goal=self.goalstack30;
+ else if(self.goalcounter==31)goal=self.goalstack31;
+
+ if(goal==world)
{
self.goalcounter = 0;
self.lastposition='0 0 0';
org = self.lastposition;
- te_lightning2(world, org, target.origin);
- self.lastposition = target.origin;
+ te_lightning2(world, org, goal.origin);
+ self.lastposition = goal.origin;
self.goalcounter++;
}
-
-#endif
.entity navigation_jetpack_goal;
.vector navigation_jetpack_point;
-#ifdef DEBUG_TRACEWALK
float DEBUG_NODE_SUCCESS = 1;
float DEBUG_NODE_WARNING = 2;
float DEBUG_NODE_FAIL = 3;
vector debuglastnode;
-#endif
+
+entity bot_waypoint_queue_owner; // Owner of the temporary list of goals
+entity bot_waypoint_queue_goal; // Head of the temporary list of goals
+.entity bot_waypoint_queue_nextgoal;
+entity bot_waypoint_queue_bestgoal;
+float bot_waypoint_queue_bestgoalrating;
/*
* Functions
*/
-#ifdef DEBUG_TRACEWALK
void debugresetnodes();
void debugnode(vector node);
void debugnodestatus(vector position, float status);
-#endif
-#ifdef DEBUG_BOT_GOALSTACK
void debuggoalstack();
-#endif
float tracewalk(entity e, vector start, vector m1, vector m2, vector end, float movemode);
void navigation_poptouchedgoals();
void navigation_goalrating_start();
void navigation_goalrating_end();
+void navigation_unstuck();
void botframe_updatedangerousobjects(float maxupdate);
prio = 0;
// filter out spots for the wrong team
- if(teamcheck)
- if(spot.team != teamcheck)
- return '-1 0 0';
+ if(teamcheck >= 0)
+ if(spot.team != teamcheck)
+ return '-1 0 0';
if(race_spawns)
if(spot.target == "")
spotlist = spot;
/*
- if(teamcheck)
+ if(teamcheck >= 0)
if(spot.team != teamcheck)
error("invalid spawn added");
/*
entity e;
- if(teamcheck)
+ if(teamcheck >= 0)
for(e = spotlist; e; e = e.chain)
{
print("seen ", etos(e), "\n");
if (spot)
return spot;
- teamcheck = 0;
+ if(anypoint)
+ teamcheck = -1;
+ else if(have_team_spawns > 0)
+ {
+ if(have_team_spawns_forteam[self.team] == 0)
+ {
+ // we request a spawn for a team, and we have team
+ // spawns, but that team has no spawns?
+ if(have_team_spawns[0])
+ // try noteam spawns
+ teamcheck = 0;
+ else
+ // if not, any spawn has to do
+ teamcheck = -1;
+ }
+ else
+ teamcheck = self.team; // MUST be team
+ }
+ else if(have_team_spawns == 0 && have_team_spawns[0])
+ teamcheck = 0; // MUST be noteam
+ else
+ teamcheck = -1;
+ // if we get here, we either require team spawns but have none, or we require non-team spawns and have none; use any spawn then
- if(!anypoint && have_team_spawns > 0)
- teamcheck = self.team;
// get the list of players
playerlist = findchain(classname, "player");
print("spot mindistance: ", vtos(spot.spawnpoint_score), "\n");
entity e;
- if(teamcheck)
+ if(teamcheck >= 0)
for(e = firstspot; e; e = e.chain)
if(e.team != teamcheck)
error("invalid spawn found");
// reset fields the weapons may use
for (j = WEP_FIRST; j <= WEP_LAST; ++j)
+ {
weapon_action(j, WR_RESETPLAYER);
+ // all weapons must be fully loaded when we spawn
+ entity e;
+ e = get_weaponinfo(j);
+ if(e.spawnflags & WEP_FLAG_RELOADABLE) // prevent accessing undefined cvars
+ self.weapon_load[j] = cvar(strcat("g_balance_", e.netname, "_reload_ammo"));
+ }
+
oldself = self;
self = spot;
activator = oldself;
WriteByte(MSG_ENTITY, autocvar_g_balance_nex_secondary); // client has to know if it should zoom or not
WriteByte(MSG_ENTITY, autocvar_g_balance_sniperrifle_secondary); // client has to know if it should zoom or not
WriteByte(MSG_ENTITY, serverflags); // client has to know if it should zoom or not
- WriteByte(MSG_ENTITY, autocvar_g_balance_sniperrifle_magazinecapacity); // rifle max bullets
+ WriteByte(MSG_ENTITY, autocvar_g_balance_minelayer_limit); // minelayer max mines
+ WriteCoord(MSG_ENTITY, autocvar_g_trueaim_minrange);
return TRUE;
}
{
// do nothing
}
- else if(g_freezetag && self.freezetag_frozen == 1)
+ else if(self.freezetag_frozen)
{
// do nothing
}
DecodeLevelParms();
#ifdef WATERMARK
- sprint(self, strcat("^4SVQC Build information: ", WATERMARK(), "\n"));
+ sprint(self, strcat("^4SVQC Build information: ^1", WATERMARK(), "\n"));
#endif
self.classname = "player_joining";
self.modelflags &~= MF_ROCKET;
}
- self.effects &~= (EF_RED | EF_BLUE | EF_ADDITIVE | EF_FULLBRIGHT | EF_FLAME | EF_NODEPTHTEST);
+ self.effects &~= (EF_DIMLIGHT | EF_RED | EF_BLUE | EF_ADDITIVE | EF_FULLBRIGHT | EF_FLAME | EF_NODEPTHTEST);
if(!self.modelindex || self.deadflag) // don't apply the flags if the player is gibbed
return;
self.ammo_nails = spectatee.ammo_nails;
self.ammo_rockets = spectatee.ammo_rockets;
self.ammo_fuel = spectatee.ammo_fuel;
+ self.clip_load = spectatee.clip_load;
+ self.clip_size = spectatee.clip_size;
self.effects = spectatee.effects & EFMASK_CHEAP; // eat performance
self.health = spectatee.health;
self.impulse = 0;
self.items = spectatee.items;
self.last_pickup = spectatee.last_pickup;
+ self.hit_time = spectatee.hit_time;
self.metertime = spectatee.metertime;
self.strength_finished = spectatee.strength_finished;
self.invincible_finished = spectatee.invincible_finished;
self.weapons = spectatee.weapons;
self.switchweapon = spectatee.switchweapon;
self.weapon = spectatee.weapon;
+ self.nex_charge = spectatee.nex_charge;
+ self.nex_chargepool_ammo = spectatee.nex_chargepool_ammo;
+ self.minelayer_mines = spectatee.minelayer_mines;
self.punchangle = spectatee.punchangle;
self.view_ofs = spectatee.view_ofs;
self.v_angle = spectatee.v_angle;
void LeaveSpectatorMode()
{
- if(isJoinAllowed()) {
+ if(nJoinAllowed(1)) {
if(!teams_matter || autocvar_g_campaign || autocvar_g_balance_teams || (self.wasplayer && autocvar_g_changeteam_banned) || self.team_forced > 0) {
self.classname = "player";
* Determines whether the player is allowed to join. This depends on cvar
* g_maxplayers, if it isn't used this function always return TRUE, otherwise
* it checks whether the number of currently playing players exceeds g_maxplayers.
- * @return bool TRUE if the player is allowed to join, false otherwise
+ * @return int number of free slots for players, 0 if none
*/
-float isJoinAllowed() {
+float nJoinAllowed(float includeMe) {
if(self.team_forced < 0)
return FALSE; // forced spectators can never join
+ // TODO simplify this
+ local entity e;
+
+ local float totalClients;
+ FOR_EACH_CLIENT(e)
+ totalClients += 1;
+
if (!autocvar_g_maxplayers)
- return TRUE;
+ return maxclients - totalClients + includeMe;
- local entity e;
local float currentlyPlaying;
- FOR_EACH_REALPLAYER(e) {
- if(e.classname == "player")
- currentlyPlaying += 1;
- }
+ FOR_EACH_REALPLAYER(e)
+ currentlyPlaying += 1;
+
if(currentlyPlaying < autocvar_g_maxplayers)
- return TRUE;
+ return min(maxclients - totalClients + includeMe, autocvar_g_maxplayers - currentlyPlaying);
- return FALSE;
+ return 0;
}
/**
.float items_added;
void PlayerPreThink (void)
{
+ WarpZone_PlayerPhysics_FixVAngle();
+
self.stat_game_starttime = game_starttime;
self.stat_allow_oldnexbeam = autocvar_g_allow_oldnexbeam;
self.stat_leadlimit = autocvar_leadlimit;
return; // the think tics
}
- if(self.teleport_time)
- if(time > self.teleport_time)
- {
- self.teleport_time = 0;
- self.effects = self.effects - (self.effects & EF_NODRAW);
- }
-
if(frametime > 0) // don't do this in cl_movement frames, just in server ticks
UpdateSelectedPlayer();
}
if(!zoomstate_set)
- SetZoomState(self.BUTTON_ZOOM || (self.BUTTON_ATCK2 && self.weapon == WEP_NEX) || (self.BUTTON_ATCK2 && self.weapon == WEP_SNIPERRIFLE && autocvar_g_balance_sniperrifle_secondary == 0));
+ SetZoomState(self.BUTTON_ZOOM || self.BUTTON_ZOOMSCRIPT || (self.BUTTON_ATCK2 && self.weapon == WEP_NEX) || (self.BUTTON_ATCK2 && self.weapon == WEP_SNIPERRIFLE && autocvar_g_balance_sniperrifle_secondary == 0));
float oldspectatee_status;
oldspectatee_status = self.spectatee_status;
}
target_voicescript_next(self);
+
+ // if a player goes unarmed after holding a loaded weapon, empty his clip size and remove the crosshair ammo ring
+ if(!self.weapon)
+ self.clip_load = self.clip_size = 0;
}
float isInvisibleString(string s)
playerdemo_write();
- if((g_cts || g_race) && self.cvar_cl_allow_uid2name == 1)
+ if((g_cts || g_race) && self.cvar_cl_allow_uidtracking == 1 && self.cvar_cl_allow_uid2name == 1)
{
if(!self.stored_netname)
self.stored_netname = strzone(uid2name(self.crypto_idfp));
W_PreviousWeapon (1);
break;
case 20:
- W_Reload ();
+ W_TriggerReload ();
break;
}
}
*/
void PlayerJump (void)
{
- if(g_freezetag && self.freezetag_frozen)
+ if(self.freezetag_frozen)
return; // no jumping in freezetag when frozen
float mjumpheight;
if(!doublejump && self.multijump_ready && self.multijump_count < autocvar_g_multijump && self.velocity_z > autocvar_g_multijump_speed)
{
// doublejump = FALSE; // checked above in the if
- if (autocvar_g_multijump > 0)
+ if (autocvar_g_multijump)
{
if (autocvar_g_multijump_add == 0) // in this case we make the z velocity == jumpvelocity
{
self.velocity_y = wishdir_y * curspeed;
// keep velocity_z unchanged!
}
- self.multijump_count += 1;
+ if (autocvar_g_multijump > 0)
+ self.multijump_count += 1;
}
}
self.multijump_ready = FALSE; // require releasing and pressing the jump button again for the next jump
float buttons_prev;
float not_allowed_to_move;
string c;
+
+ WarpZone_PlayerPhysics_FixVAngle();
maxspd_mod = 1;
if(g_minstagib && (self.items & IT_INVINCIBLE))
void WeaponStats_Init()
{
- if(autocvar_sv_weaponstats_killfile != "" || autocvar_sv_weaponstats_damagefile != "")
+ if(autocvar_sv_weaponstats_file != "")
weaponstats_buffer = buf_create();
else
weaponstats_buffer = -1;
}
-#define WEAPONSTATS_GETINDEX(awep,vwep) ((vwep) + (awep) * (WEP_LAST - WEP_FIRST + 1) - (WEP_FIRST + WEP_FIRST * (WEP_LAST - WEP_FIRST + 1)))
+#define WEAPONSTATS_GETINDEX(awep,abot,vwep,vbot) (((vwep) + (awep) * (WEP_LAST - WEP_FIRST + 1) - (WEP_FIRST + WEP_FIRST * (WEP_LAST - WEP_FIRST + 1))) * 4 + (abot) * 2 + (vbot))
void WeaponStats_Shutdown()
{
- float i, j, idx, f;
+ float i, j, ibot, jbot, idx;
float fh;
+ vector v;
string prefix;
if(weaponstats_buffer < 0)
return;
prefix = strcat(autocvar_hostname, "\t", GetGametype(), "_", GetMapname(), "\t");
- if(autocvar_sv_weaponstats_killfile != "")
- {
- fh = fopen(autocvar_sv_weaponstats_killfile, FILE_APPEND);
- if(fh >= 0)
- {
- fputs(fh, "#begin killfile\n");
- fputs(fh, strcat("#date ", strftime(TRUE, "%a %b %e %H:%M:%S %Z %Y"), "\n"));
- fputs(fh, strcat("#config ", ftos(crc16(FALSE, cvar_changes)), "\n"));
- for(i = WEP_FIRST; i <= WEP_LAST; ++i)
- for(j = WEP_FIRST; j <= WEP_LAST; ++j)
- {
- idx = WEAPONSTATS_GETINDEX(i, j);
- f = stov(bufstr_get(weaponstats_buffer, idx)) * '0 1 0';
- if(f != 0)
- fputs(fh, strcat(prefix, ftos(i), "\t", ftos(j), "\t", ftos(f), "\n"));
- }
- fputs(fh, "#end\n\n");
- fclose(fh);
- print("Weapon kill stats written\n");
- }
- }
- if(autocvar_sv_weaponstats_damagefile != "")
+ if(autocvar_sv_weaponstats_file != "")
{
- fh = fopen(autocvar_sv_weaponstats_damagefile, FILE_APPEND);
+ fh = fopen(autocvar_sv_weaponstats_file, FILE_APPEND);
if(fh >= 0)
{
- fputs(fh, "#begin damagefile\n");
+ fputs(fh, "#begin statsfile\n");
fputs(fh, strcat("#date ", strftime(TRUE, "%a %b %e %H:%M:%S %Z %Y"), "\n"));
fputs(fh, strcat("#config ", ftos(crc16(FALSE, cvar_changes)), "\n"));
- for(i = WEP_FIRST; i <= WEP_LAST; ++i)
- for(j = WEP_FIRST; j <= WEP_LAST; ++j)
+ for(i = WEP_FIRST; i <= WEP_LAST; ++i) for(ibot = 0; ibot <= 1; ++ibot)
+ for(j = WEP_FIRST; j <= WEP_LAST; ++j) for(jbot = 0; jbot <= 1; ++jbot)
{
- idx = WEAPONSTATS_GETINDEX(i, j);
- f = stov(bufstr_get(weaponstats_buffer, idx)) * '1 0 0';
- if(f != 0)
- fputs(fh, strcat(prefix, ftos(i), "\t", ftos(j), "\t", ftos(f), "\n"));
+ idx = WEAPONSTATS_GETINDEX(i, ibot, j, jbot);
+ v = stov(bufstr_get(weaponstats_buffer, idx));
+ if(v != '0 0 0')
+ {
+ //vector is: kills hits damage
+ fputs(fh, sprintf("%s%d %d\t%d %d\t", prefix, i, ibot, j, jbot));
+ fputs(fh, sprintf("%d %d %g\n", v_x, v_y, v_z));
+ }
}
fputs(fh, "#end\n\n");
fclose(fh);
- print("Weapon damage stats written\n");
+ print("Weapon stats written\n");
}
}
buf_del(weaponstats_buffer);
weaponstats_buffer = -1;
}
-void WeaponStats_LogItem(float awep, float vwep, vector item)
+void WeaponStats_LogItem(float awep, float abot, float vwep, float vbot, vector item)
{
float idx;
if(weaponstats_buffer < 0)
return;
if(awep > WEP_LAST || vwep > WEP_LAST)
return;
- idx = WEAPONSTATS_GETINDEX(awep,vwep);
+ idx = WEAPONSTATS_GETINDEX(awep,abot,vwep,vbot);
bufstr_set(weaponstats_buffer, idx, vtos(stov(bufstr_get(weaponstats_buffer, idx)) + item));
}
-void WeaponStats_LogDamage(float awep, float vwep, float damage)
+void WeaponStats_LogDamage(float awep, float abot, float vwep, float vbot, float damage)
{
if(damage < 0)
error("negative damage?");
- WeaponStats_LogItem(awep, vwep, '1 0 0' * damage);
+ WeaponStats_LogItem(awep, abot, vwep, vbot, '0 0 1' * damage + '0 1 0');
}
-void WeaponStats_LogKill(float awep, float vwep)
+void WeaponStats_LogKill(float awep, float abot, float vwep, float vbot)
{
- WeaponStats_LogItem(awep, vwep, '0 1 0');
+ WeaponStats_LogItem(awep, abot, vwep, vbot, '1 0 0');
}
// changes by LordHavoc on 03/29/04 and 03/30/04 at Vermeulen's request
self.anim_forwardleft = '20 1 1';
self.anim_backright = '21 1 1';
self.anim_backleft = '22 1 1';
+ self.anim_melee = '23 1 1';
animparseerror = FALSE;
animfilename = strcat(self.model, ".animinfo");
animfile = fopen(animfilename, FILE_READ);
self.anim_forwardleft = animparseline(animfile);
self.anim_backright = animparseline(animfile);
self.anim_backleft = animparseline(animfile);
+ self.anim_melee = animparseline(animfile);
fclose(animfile);
// derived anims
{
if(self.weapons & W_WeaponBit(j))
if(W_IsWeaponThrowable(j))
- W_ThrowNewWeapon(self, j, FALSE, self.origin, randomvec() * 175 + '0 0 325');
+ W_ThrowNewWeapon(self, j, FALSE, org, randomvec() * 175 + '0 0 325');
}
}
else
- W_ThrowWeapon(randomvec() * 125 + '0 0 200', org - self.origin, FALSE);
+ {
+ if(W_IsWeaponThrowable(self.weapon))
+ W_ThrowNewWeapon(self, self.weapon, FALSE, org, randomvec() * 125 + '0 0 200');
+ }
}
void PlayerCorpseDamage (entity inflictor, entity attacker, float damage, float deathtype, vector hitloc, vector force)
self.dmg_take = self.dmg_take + take;//max(take - 10, 0);
self.dmg_inflictor = inflictor;
- if (self.health <= -100 && self.modelindex != 0)
+ if (self.health <= -autocvar_sv_gibhealth && self.modelindex != 0)
{
// don't use any animations as a gib
self.frame = 0;
local float take, save, waves, sdelay, dh, da, j;
vector v;
float valid_damage_for_weaponstats;
+ float excess;
+
+ if((g_arena && numspawned < 2) || (g_ca && ca_players < required_ca_players) && !inWarmupStage)
+ return;
dh = max(self.health, 0);
da = max(self.armorvalue, 0);
else
Violence_GibSplash_At(hitloc, force, 2, bound(0, damage, 200) / 16, self, attacker);
- if((g_arena && numspawned < 2) || (g_ca && ca_players < required_ca_players) && !inWarmupStage)
- return;
-
if (!g_minstagib)
{
v = healtharmor_applydamage(self.armorvalue, autocvar_g_balance_armor_blockpercent, damage);
MUTATOR_CALLHOOK(PlayerDamage_SplitHealthArmor);
take = bound(0, damage_take, self.health);
save = bound(0, damage_save, self.armorvalue);
+ excess = max(0, damage - take - save);
if(sound_allowed(MSG_BROADCAST, attacker))
{
else
self.pushltime = 0;
+ float abot, vbot, awep;
+ abot = (clienttype(attacker) == CLIENTTYPE_BOT);
+ vbot = (clienttype(self) == CLIENTTYPE_BOT);
+
valid_damage_for_weaponstats = 0;
- if(clienttype(self) == CLIENTTYPE_REAL)
- if(clienttype(attacker) == CLIENTTYPE_REAL)
- if(self != attacker)
- if(!DEATH_ISSPECIAL(deathtype))
+ if(vbot || clienttype(self) == CLIENTTYPE_REAL)
+ if(abot || clienttype(attacker) == CLIENTTYPE_REAL)
+ if(attacker && self != attacker)
if(IsDifferentTeam(self, attacker))
+ {
+ if(DEATH_ISSPECIAL(deathtype))
+ awep = attacker.weapon;
+ else
+ awep = DEATH_WEAPONOF(deathtype);
valid_damage_for_weaponstats = 1;
+ }
if(valid_damage_for_weaponstats)
{
dh = dh - max(self.health, 0);
da = da - max(self.armorvalue, 0);
- WeaponStats_LogDamage(DEATH_WEAPONOF(deathtype), self.weapon, dh + da);
+ WeaponStats_LogDamage(awep, abot, self.weapon, vbot, dh + da);
}
if (self.health < 1)
}
if(valid_damage_for_weaponstats)
- WeaponStats_LogKill(DEATH_WEAPONOF(deathtype), self.weapon);
+ WeaponStats_LogKill(awep, abot, self.weapon, vbot);
if(sv_gentle < 1) // TODO make a "gentle" version?
if(sound_allowed(MSG_BROADCAST, attacker))
// set damage function to corpse damage
self.event_damage = PlayerCorpseDamage;
// call the corpse damage function just in case it wants to gib
- self.event_damage(inflictor, attacker, 0, deathtype, hitloc, force);
+ self.event_damage(inflictor, attacker, excess, deathtype, hitloc, force);
// set up to fade out later
SUB_SetFade (self, time + 6 + random (), 1);
if(sv_gentle > 0 || autocvar_ekg) {
// remove corpse
- PlayerCorpseDamage (inflictor, attacker, 100.0, deathtype, hitloc, force);
+ PlayerCorpseDamage (inflictor, attacker, autocvar_sv_gibhealth+1.0, deathtype, hitloc, force);
}
// reset fields the weapons may use just in case
-void W_Reload()
+void W_TriggerReload()
{
- if(self.switchweapon == self.weapon)
- if(self.weaponentity.state == WS_READY)
- weapon_action(self.weapon, WR_RELOAD);
+ weapon_action(self.weapon, WR_RELOAD);
}
// switch between weapons
}
else
{
- W_Reload();
+ W_TriggerReload();
}
};
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)
+ {
+ own.ammofield += self.weapon_load[self.weapon];
+ self.weapon_load[self.weapon] = -1; // schedule the weapon for reloading
+ }
}
}
s = substring(s, 5, -1);
float W_IsWeaponThrowable(float w)
{
float wb, wa;
+
+ if (!autocvar_g_pickup_items)
+ return 0;
+ if (g_weaponarena)
+ return 0;
+ if (g_lms)
+ return 0;
+ if (g_ca)
+ return 0;
+ if (g_cts)
+ return 0;
+ if (g_nexball && w == WEP_GRENADE_LAUNCHER)
+ return 0;
+
wb = W_WeaponBit(w);
if(!wb)
return 0;
return; // just in case
if(MUTATOR_CALLHOOK(ForbidThrowCurrentWeapon))
return;
- if (g_weaponarena)
- return;
- if (g_lms)
- return;
- if (g_nexball && w == WEP_GRENADE_LAUNCHER)
- return;
- if (!autocvar_g_pickup_items)
- return;
- if (g_ca)
- return;
- if (g_cts)
- return;
if(!autocvar_g_weapon_throwable)
return;
if(autocvar_g_weapon_stay == 1)
return;
- if(!W_IsWeaponThrowable(w))
+ if(self.weaponentity.state != WS_READY)
return;
- if(self.deadflag == DEAD_NO && self.weaponentity.state != WS_READY)
+ if(!W_IsWeaponThrowable(w))
return;
wb = W_WeaponBit(w);
a = W_ThrowNewWeapon(self, w, doreduce, self.origin + delta, velo);
if not(a)
return;
- if(self.health >= 1)
- {
- if(a == "")
- sprint(self, strcat("You dropped the ^2", W_Name(w), "\n"));
- else
- sprint(self, strcat("You dropped the ^2", W_Name(w), " with ", a, "\n"));
- }
+ if(a == "")
+ sprint(self, strcat("You dropped the ^2", W_Name(w), "\n"));
+ else
+ sprint(self, strcat("You dropped the ^2", W_Name(w), " with ", a, "\n"));
};
// Bringed back weapon frame
if(((arena_roundbased || g_ca || g_freezetag) && time < warmup) || ((time < game_starttime) && !autocvar_sv_ready_restart_after_countdown))
return;
- if(g_freezetag && self.freezetag_frozen == 1)
+ if(self.freezetag_frozen == 1)
return;
if (!self.weaponentity || self.health < 1)
setanim(self, self.anim_draw, FALSE, TRUE, TRUE);
self.weaponentity.state = WS_RAISE;
weapon_action(self.switchweapon, WR_SETUP);
+
+ // set our clip load to the load of the weapon we switched to, if it's reloadable
+ entity e;
+ e = get_weaponinfo(self.switchweapon);
+ if(e.spawnflags & WEP_FLAG_RELOADABLE && cvar(strcat("g_balance_", e.netname, "_reload_ammo"))) // prevent accessing undefined cvars
+ {
+ self.clip_load = self.weapon_load[self.switchweapon];
+ self.clip_size = cvar(strcat("g_balance_", e.netname, "_reload_ammo"));
+ }
+ else
+ self.clip_load = self.clip_size = 0;
+
// VorteX: add player model weapon select frame here
// setcustomframe(PlayerWeaponRaise);
weapon_thinkf(WFRAME_IDLE, autocvar_g_balance_weaponswitchdelay, w_ready);
v_right = vr;
v_up = vu;
+ // un-adjust trueaim if shotend is too close
+ if(vlen(w_shotend - (ent.origin + ent.view_ofs)) < autocvar_g_trueaim_minrange)
+ w_shotend = ent.origin + ent.view_ofs + s_forward * autocvar_g_trueaim_minrange;
+
// track max damage
if(accuracy_canbegooddamage(ent))
accuracy_add(ent, ent.weapon, maxdamage, 0);
if (!self.crouch) // shoot anim stands up, this looks bad
{
local vector anim;
- anim = self.anim_shoot;
+ if(self.weapon == WEP_SHOTGUN && self.BUTTON_ATCK2)
+ anim = self.anim_melee;
+ else
+ anim = self.anim_shoot;
anim_z = anim_y / (t + sys_frametime);
setanim(self, anim, FALSE, TRUE, TRUE);
}
#define W_SETUPPROJECTILEVELOCITY_UP(m,s) W_SetupProjectileVelocityEx(m, w_shotdir, v_up, cvar(#s "_speed"), cvar(#s "_speed_up"), cvar(#s "_speed_z"), cvar(#s "_spread"), FALSE)
#define W_SETUPPROJECTILEVELOCITY(m,s) W_SetupProjectileVelocityEx(m, w_shotdir, v_up, cvar(#s "_speed"), 0, 0, cvar(#s "_spread"), FALSE)
+
+void W_DecreaseAmmo(.float ammo_type, float ammo_use, float ammo_reload)
+{
+ if((self.items & IT_UNLIMITED_WEAPON_AMMO) && !ammo_reload)
+ return;
+
+ // if this weapon is reloadable, decrease its load. Else decrease the player's ammo
+ if(ammo_reload)
+ {
+ self.clip_load -= ammo_use;
+ self.weapon_load[self.weapon] = self.clip_load;
+ }
+ else
+ self.(self.current_ammo) -= ammo_use;
+}
+
+// weapon reloading code
+
+.float reload_ammo_amount, reload_ammo_min, reload_time;
+.float reload_complain;
+.string reload_sound;
+
+void W_ReloadedAndReady()
+{
+ // finish the reloading process, and do the ammo transfer
+
+ self.clip_load = self.old_clip_load; // restore the ammo counter, in case we still had ammo in the weapon before reloading
+
+ // if the gun uses no ammo, max out weapon load, else decrease ammo as we increase weapon load
+ if(!self.reload_ammo_min || self.items & IT_UNLIMITED_WEAPON_AMMO)
+ self.clip_load = self.reload_ammo_amount;
+ else
+ {
+ while(self.clip_load < self.reload_ammo_amount && self.(self.current_ammo)) // make sure we don't add more ammo than we have
+ {
+ self.clip_load += 1;
+ self.(self.current_ammo) -= 1;
+ }
+ }
+ self.weapon_load[self.weapon] = self.clip_load;
+
+ // 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,
+ // so your weapon is disabled for a few seconds without reason
+
+ //ATTACK_FINISHED(self) -= self.reload_time - 1;
+
+ w_ready();
+}
+
+void W_Reload(float sent_ammo_min, float sent_ammo_amount, float sent_time, string sent_sound)
+{
+ // set global values to work with
+
+ self.reload_ammo_min = sent_ammo_min;
+ self.reload_ammo_amount = sent_ammo_amount;
+ self.reload_time = sent_time;
+ self.reload_sound = sent_sound;
+
+ // check if we meet the necessary conditions to reload
+
+ entity e;
+ e = get_weaponinfo(self.weapon);
+
+ // don't reload weapons that don't have the RELOADABLE flag
+ if not(e.spawnflags & WEP_FLAG_RELOADABLE)
+ {
+ dprint("Warning: Attempted to reload a weapon that does not have the WEP_FLAG_RELOADABLE flag. Fix your code!\n");
+ return;
+ }
+
+ // return if reloading is disabled for this weapon
+ if(!self.reload_ammo_amount)
+ return;
+
+ // our weapon is fully loaded, no need to reload
+ if (self.clip_load >= self.reload_ammo_amount)
+ return;
+
+ // no ammo, so nothing to load
+ if(!self.(self.current_ammo) && self.reload_ammo_min)
+ if not(self.items & IT_UNLIMITED_WEAPON_AMMO)
+ {
+ if(clienttype(self) == CLIENTTYPE_REAL && self.reload_complain < time)
+ {
+ play2(self, "weapons/unavailable.wav");
+ sprint(self, strcat("You don't have enough ammo to reload the ^2", W_Name(self.weapon), "\n"));
+ self.reload_complain = time + 1;
+ }
+ // switch away if the amount of ammo is not enough to keep using this weapon
+ if not(weapon_action(self.weapon, WR_CHECKAMMO1) + weapon_action(self.weapon, WR_CHECKAMMO2))
+ {
+ self.clip_load = -1; // reload later
+ W_SwitchToOtherWeapon(self);
+ }
+ return;
+ }
+
+ if (self.weaponentity)
+ {
+ if (self.weaponentity.wframe == WFRAME_RELOAD)
+ return;
+
+ // allow switching away while reloading, but this will cause a new reload!
+ self.weaponentity.state = WS_READY;
+ }
+
+ // now begin the reloading process
+
+ sound (self, CHAN_WEAPON2, 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,
+ // so your weapon is disabled for a few seconds without reason
+
+ //ATTACK_FINISHED(self) = max(time, ATTACK_FINISHED(self)) + self.reload_time + 1;
+
+ weapon_thinkf(WFRAME_RELOAD, self.reload_time, W_ReloadedAndReady);
+
+ if(self.clip_load < 0)
+ self.clip_load = 0;
+ self.old_clip_load = self.clip_load;
+ self.clip_load = self.weapon_load[self.weapon] = -1;
+}
return FALSE;
}
+.float checkfail;
void SV_ParseClientCommand(string s) {
string cmd;
float tokens;
tokens = tokenize_console(s);
- cmd = argv(0);
+ cmd = strtolower(argv(0));
if(cmd != "reportcvar")
if(cmd != "sentcvar")
if(cmd != "pause")
return;
} else if(GameCommand_MapVote(argv(0))) {
return;
+ } else if(cmd == "checkfail") {
+ print(sprintf("CHECKFAIL: %s (%s) epically failed check %s\n", self.netname, self.netaddress, substring(s, argv_start_index(1), argv_end_index(-1) - argv_start_index(1))));
+ self.checkfail = 1;
} else if(cmd == "autoswitch") {
// be backwards compatible with older clients (enabled)
self.autoswitch = ("0" != argv(1));
if(!g_arena)
if (self.classname != "player" && !lockteams)
{
- if(isJoinAllowed()) {
+ if(nJoinAllowed(1)) {
self.classname = "player";
if(g_ca)
self.caplayer = 1;
sprint(self, cvar_purechanges);
} else if(CheatCommand(tokens)) {
} else {
+#if 0
//if(ctf_clientcommand())
// return;
// grep for Cmd_AddCommand_WithClientCommand to find them all
print("WARNING: Invalid clientcommand by ", self.netname, ": ", s, "\n");
return;
}
+#endif
if(self.jointime > 0 && time > self.jointime + 10 && time > self.nickspamtime) // allow any changes in the first 10 seconds since joining
if(cmd == "name" || cmd == "playermodel") // TODO also playerskin and color?
setattachment(self, world, "");
self.mdl = self.model;
- self.flags = FL_ITEM;
+ self.flags = FL_ITEM | FL_NOTARGET;
self.solid = SOLID_TRIGGER;
self.movetype = MOVETYPE_NONE;
self.velocity = '0 0 0';
e.angles = e.mangle;
e.cnt = FLAG_BASE;
e.owner = world;
- e.flags = FL_ITEM; // clear FL_ONGROUND and any other junk
+ e.flags = FL_ITEM | FL_NOTARGET; // clear FL_ONGROUND and any other junk
};
void ReturnFlag(entity e)
p.flagcarried = world;
e.owner = world;
- e.flags = FL_ITEM; // clear FL_ONGROUND and any other junk
+ e.flags = FL_ITEM | FL_NOTARGET; // clear FL_ONGROUND and any other junk
e.solid = SOLID_TRIGGER;
e.movetype = MOVETYPE_TOSS;
// setsize(e, '-16 -16 0', '16 16 74');
if (self.cnt == FLAG_DROPPED)
{
- self.flags = FL_ITEM; // clear FL_ONGROUND and any other junk
+ self.flags = FL_ITEM | FL_NOTARGET; // clear FL_ONGROUND and any other junk
if (other.team == self.team || (other.team != COLOR_TEAM1 && other.team != COLOR_TEAM2))
{
// return flag
float require_spawnfunc_prefix; // if this float exists, only functions with spawnfunc_ name prefix qualify as spawn functions
-#define BUTTON_ATCK button0
-#define BUTTON_JUMP button2
-#define BUTTON_ATCK2 button3
-#define BUTTON_ZOOM button4
-#define BUTTON_CROUCH button5
-#define BUTTON_HOOK button6
-#define BUTTON_INFO button7
-#define BUTTON_CHAT buttonchat
-#define BUTTON_USE buttonuse
-#define BUTTON_DRAG button8
+#define BUTTON_ATCK button0
+#define BUTTON_JUMP button2
+#define BUTTON_ATCK2 button3
+#define BUTTON_ZOOM button4
+#define BUTTON_CROUCH button5
+#define BUTTON_HOOK button6
+#define BUTTON_INFO button7
+#define BUTTON_CHAT buttonchat
+#define BUTTON_USE buttonuse
+#define BUTTON_DRAG button8
+#define BUTTON_ZOOMSCRIPT button9
// Globals
//.float style;
//.float skill;
.float sounds;
+.float platmovetype;
.string killtarget;
.vector pos1, pos2;
.vector mangle;
-.float cvar_cl_hitsound;
-
.float pain_finished; //Added by Supajoe
.float pain_frame; //"
.float statdraintime; // record the one-second intervals between draining health and armour when they're over 100
.vector anim_forwardleft; // player running forward and left
.vector anim_backright; // player running backward and right
.vector anim_backleft; // player running back and left
+.vector anim_melee; // player doing the melee action
// weapon animation vectors:
.vector anim_fire1;
.float jointime; // time of joining
.float alivetime; // time of being alive
-float isJoinAllowed();
+float nJoinAllowed(float includeMe);
#define PREVENT_JOIN_TEXT "^1You may not join the game at this time.\n\nThe player limit reached maximum capacity."
//sv_timeout: pauses the game by setting the gamespeed to a really low value (see TIMEOUT_SLOWMO_VALUE)
.string weaponorder_byimpulse;
.float cvar_cl_allow_uid2name;
+.float cvar_cl_allow_uidtracking;
.string stored_netname;
void Announce(string snd);
.float speedrunning;
// Q3 support
-.float notteam;
-.float notsingle;
-.float notfree;
-.float notq3a;
float q3acompat_machineshotgunswap;
// database
float some_spawn_has_been_used;
float have_team_spawns; // 0 = no team spawns requested, -1 = team spawns requested but none found, 1 = team spawns requested and found
+float have_team_spawns_forteam[17]; // 0 = this team has no spawns, 1 = this team has spawns; team 0 is the "no-team"
// set when showing a kill countdown
.entity killindicator;
.float last_pickup;
+.float hit_time;
+.float typehit_time;
+
.float stat_leadlimit;
float radar_showennemies;
float client_cefc_accumulatortime;
#endif
-.float sniperrifle_bulletcounter;
+..float current_ammo;
+
+.float weapon_load[WEP_MAXCOUNT]; FTEQCC_YOU_SUCK_THIS_IS_NOT_UNREFERENCED(weapon_load);
+.float ammo_none; // used by the reloading system, must always be 0
+.float clip_load;
+.float old_clip_load;
+.float clip_size;
+.float minelayer_mines;
#define PROJECTILE_MAKETRIGGER(e) (e).solid = SOLID_CORPSE; (e).dphitcontentsmask = DPCONTENTS_SOLID | DPCONTENTS_BODY | DPCONTENTS_CORPSE
// when doing this, hagar can go through clones
// if no control points are found, spawn defaults
if (find(world, classname, "dom_controlpoint") == world)
{
- // here follow default domination points for each map
- /*
- if (world.model == "maps/e1m1.bsp")
- {
- dom_spawnpoint('0 0 0');
- }
- else
- */
+ // TODO in a few months (maybe 2011/08): change this into error() and remove this very poor dom point selection
+ backtrace("This map contains no dom_controlpoint entities. A very poor dom point placement will be chosen. Please fix the map.");
+
+ // if no supported map was found, make every deathmatch spawn a point
+ head = find(world, classname, "info_player_deathmatch");
+ while (head)
{
- // if no supported map was found, make every deathmatch spawn a point
- head = find(world, classname, "info_player_deathmatch");
- while (head)
- {
- dom_spawnpoint(head.origin);
- head = find(head, classname, "info_player_deathmatch");
- }
+ dom_spawnpoint(head.origin);
+ head = find(head, classname, "info_player_deathmatch");
}
}
.float button6;
.float button7;
.float button8;
+.float button9;
+.float button10;
+.float button11;
+.float button12;
+.float button13;
+.float button14;
+.float button15;
+.float button16;
//description:
//set to the state of the +button3, +button4, +button5, +button6, +button7, and +button8 buttons from the client, this does not involve protocol changes (the extra 6 button bits were simply not used).
//the exact mapping of protocol button bits on the server is:
//NOTE: copying a string-typed autocvar to another variable/field, and then
//changing the cvar or returning from progs is UNDEFINED. Writing to autocvar
//globals is UNDEFINED. Accessing autocvar globals after cvar_set()ing that
-//cvar is IMPLEMENTATION DEFINED (an implementation may either yield the
-//previous, or the current, value). Whether autocvar globals, after restoring
-//a savegame, have the cvar's current value, or the original value at time of
-//saving, is UNDEFINED. Restoring a savegame however must not restore the
-//cvar values themselves.
+//cvar in the same frame is IMPLEMENTATION DEFINED (an implementation may
+//either yield the previous, or the current, value). Whether autocvar globals,
+//after restoring a savegame, have the cvar's current value, or the original
+//value at time of saving, is UNDEFINED. Restoring a savegame however must not
+//restore the cvar values themselves.
//In case the cvar does NOT exist, then it is automatically created with the
//value of the autocvar initializer, if given. This is possible with e.g.
//frikqcc and fteqcc the following way:
//equivalent to the NULL value of the given data type, that is, the empty
//string, 0, or '0 0 0'. However, when automatic cvar creation took place, a
//warning is printed to the game console.
+//NOTE: to prevent an ambiguity with float names for vector types, autocvar
+//names MUST NOT end with _x, _y or _z!
//DP_QC_CHANGEPITCH
//idea: id Software
//builtin definitions:
void(entity ent) changepitch = #63;
//description:
-//equivilant to changeyaw, ent is normally self. (this was a Q2 builtin)
+//equivalent to changeyaw, ent is normally self. (this was a Q2 builtin)
//DP_QC_COPYENTITY
//idea: LordHavoc
//description:
//.movement vector contains the movement input from the player, allowing QC to do as it wishs with the input, and SV_PlayerPhysics will completely replace the player physics if present (works for all MOVETYPE's), see darkplaces mod source for example of this function (in playermovement.qc, adds HalfLife ladders support, as well as acceleration/deceleration while airborn (rather than the quake sudden-stop while airborn), and simplifies the physics a bit)
+//DP_PHYSICS_ODE
+//idea: LordHavoc
+//darkplaces implementation: LordHavoc
+//globals:
+//new movetypes:
+const float MOVETYPE_PHYSICS = 32; // need to be set before any physics_* builtins applied
+//new solid types:
+const float SOLID_PHYSICS_BOX = 32;
+const float SOLID_PHYSICS_SPHERE = 33;
+const float SOLID_PHYSICS_CAPSULE = 34;
+//SOLID_BSP;
+//joint types:
+const float JOINTTYPE_POINT = 1;
+const float JOINTTYPE_HINGE = 2;
+const float JOINTTYPE_SLIDER = 3;
+const float JOINTTYPE_UNIVERSAL = 4;
+const float JOINTTYPE_HINGE2 = 5;
+const float JOINTTYPE_FIXED = -1;
+// common joint properties:
+// .entity aiment, enemy; // connected objects
+// .vector movedir;
+// for a spring:
+// movedir_x = spring constant (force multiplier, must be > 0)
+// movedir_y = spring dampening constant to prevent oscillation (must be > 0)
+// movedir_z = spring stop position (+/-)
+// for a motor:
+// movedir_x = desired motor velocity
+// movedir_y = -1 * max motor force to use
+// movedir_z = stop position (+/-), set to 0 for no stop
+// note that ODE does not support both in one anyway
+//field definitions:
+.float mass; // ODE mass, standart value is 1
+.float bouncefactor;
+.float bouncestop;
+.float jointtype;
+//builtin definitions:
+void(entity e, float physics_enabled) physics_enable = #540; // enable or disable physics on object
+void(entity e, vector force, vector force_pos) physics_addforce = #541; // apply a force from certain origin, length of force vector is power of force
+void(entity e, vector torque) physics_addtorque = #542; // add relative torque
+//description: provides Open Dynamics Engine support, requires extenal dll to be present or engine compiled with statical link option
+//be sure to checkextension for it to know if library i loaded and ready, also to enable physics set "physice_ode" cvar to 1
+//note: this extension is highly experimental and may be unstable
+//note: use SOLID_BSP on entities to get a trimesh collision models on them
+
//DP_SV_PRINT
//idea: id Software (QuakeWorld Server)
//darkplaces implementation: Black, LordHavoc
//engine called QC functions (optional):
//void(float color) SV_ChangeTeam;
//description:
-//setcolor sets the color on a client and updates internal color information accordingly (equivilant to stuffing a "color" command but immediate)
+//setcolor sets the color on a client and updates internal color information accordingly (equivalent to stuffing a "color" command but immediate)
//SV_ChangeTeam is called by the engine whenever a "color" command is recieved, it may decide to do anything it pleases with the color passed by the client, including rejecting it (by doing nothing), or calling setcolor to apply it, preventing team changes is one use for this.
//the color format is pants + shirt * 16 (0-255 potentially)
void(float to, string s) WriteUnterminatedString = #456;
//description:
//like WriteString, but does not write a terminating 0 after the string. This means you can include things like a player's netname in the middle of a string sent over the network. Just be sure to end it up with either a call to WriteString (which includes the trailing 0) or WriteByte(0) to terminate it yourself.
-//A historical note: this extension was suggested by FrikaC years ago, more recently Shadowalker has been badmouthing LordHavoc and Spike for stealing 'his' extension writestring2 which does exactly the same thing but uses a different builtin number and name and extension string, this argument hinges on the idea that it was his idea in the first place, which is incorrect as FrikaC first suggested it and used a rough equivilant of it in his FrikBot mod years ago involving WriteByte calls on each character.
+//A historical note: this extension was suggested by FrikaC years ago, more recently Shadowalker has been badmouthing LordHavoc and Spike for stealing 'his' extension writestring2 which does exactly the same thing but uses a different builtin number and name and extension string, this argument hinges on the idea that it was his idea in the first place, which is incorrect as FrikaC first suggested it and used a rough equivalent of it in his FrikBot mod years ago involving WriteByte calls on each character.
//DP_TE_BLOOD
//idea: LordHavoc
//protocol:
//vector origin
//description:
-//all of these just take a location, and are equivilant in function (but not appearance :) to the original TE_GUNSHOT, etc.
+//all of these just take a location, and are equivalent in function (but not appearance :) to the original TE_GUNSHOT, etc.
//DP_TE_SMALLFLASH
//idea: LordHavoc
// EXPERIMENTAL (not finalized) EXTENSIONS:
-//DP_PHYSICS
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc, divVerent
-//constant definitions:
-float SOLID_PHYSICS_BOX = 32;
-float SOLID_PHYSICS_SPHERE = 33;
-float SOLID_PHYSICS_CAPSULE = 34;
-float MOVETYPE_PHYSICS = 32;
-float JOINTTYPE_POINT = 1; // point; uses origin (anchor)
-float JOINTTYPE_HINGE = 2; // hinge; uses origin (anchor) and angles (axis)
-float JOINTTYPE_SLIDER = 3; // slider; uses angles (axis)
-float JOINTTYPE_UNIVERSAL = 4; // universal; uses origin (anchor) and angles (forward is axis1, up is axis2)
-float JOINTTYPE_HINGE2 = 5; // hinge2; uses origin (anchor), angles (axis1), velocity (axis2)
-//field definitions:
-.float mass;
-.float jointtype; // see JOINTTYPE_ definitions above
-// common joint properties:
-// .entity aiment, enemy; // connected objects
-// .vector movedir;
-// for a spring:
-// movedir_x = spring constant (force multiplier, must be > 0)
-// movedir_y = spring dampening constant to prevent oscillation (must be > 0)
-// movedir_z = spring stop position (+/-)
-// for a motor:
-// movedir_x = desired motor velocity
-// movedir_y = -1 * max motor force to use
-// movedir_z = stop position (+/-), set to 0 for no stop
-// note that ODE does not support both in one anyway
-//description:
-//various physics properties can be defined in an entity and are executed via
-//ODE
-
//DP_CRYPTO
//idea: divVerent
//darkplaces implementation: divVerent
self.takedamage = DAMAGE_AIM;
self.event_damage = func_breakable_damage;
self.state = 0;
+ self.nextthink = 0; // cancel auto respawn
func_breakable_colormod();
}
if(self.cnt)
pointparticles(self.cnt, self.absmin * 0.5 + self.absmax * 0.5, '0 0 0', self.count);
+ if(self.respawntime)
+ {
+ self.think = func_breakable_restore;
+ self.nextthink = time + self.respawntime + crandom() * self.respawntimejitter;
+ }
+
oldmsg = self.message;
self.message = "";
SUB_UseTargets();
self.reset = func_breakable_reset;
func_breakable_reset();
}
+
+// for use in maps with a "model" key set
+void spawnfunc_misc_breakablemodel() {
+ spawnfunc_func_breakable();
+}
{
// teamkill
PlayerScore_Add(attacker, SP_KILLS, -1); // or maybe add a teamkills field?
- PlayerStats_Event(attacker, PLAYERSTATS_KILLS, -1);
}
}
else
{
// regular frag
PlayerScore_Add(attacker, SP_KILLS, 1);
- PlayerStats_Event(attacker, PLAYERSTATS_KILLS, 1);
}
PlayerScore_Add(targ, SP_DEATHS, 1);
{
if(!lms_next_place)
lms_next_place = player_count;
+ else
+ lms_next_place = min(lms_next_place, player_count);
PlayerScore_Add(targ, SP_LMS_RANK, lms_next_place); // won't ever spawn again
--lms_next_place;
}
// TODO: make these print a newline if they dont
Send_CSQC_Centerprint(attacker, "", "", KILL_FIRST_BLOOD, MSG_KILL);
Send_CSQC_Centerprint(targ, "", "", KILL_FIRST_VICTIM, MSG_KILL);
+ PlayerStats_Event(attacker, PLAYERSTATS_ACHIEVEMENT_FIRSTBLOOD, 1);
+ PlayerStats_Event(targ, PLAYERSTATS_ACHIEVEMENT_FIRSTVICTIM, 1);
}
if((autocvar_sv_fragmessage_information_typefrag) && (targ.BUTTON_CHAT)) {
{
Send_KillNotification(a, "", "", KILL_SPREE_3, MSG_SPREE);
AnnounceTo(attacker, "03kills");
+ PlayerStats_Event(attacker, PLAYERSTATS_ACHIEVEMENT_KILL_SPREE_3, 1);
}
else if (attacker.killcount == 5)
{
Send_KillNotification(a, "", "", KILL_SPREE_5, MSG_SPREE);
AnnounceTo(attacker, "05kills");
+ PlayerStats_Event(attacker, PLAYERSTATS_ACHIEVEMENT_KILL_SPREE_5, 1);
}
else if (attacker.killcount == 10)
{
Send_KillNotification(a, "", "", KILL_SPREE_10, MSG_SPREE);
AnnounceTo(attacker, "10kills");
+ PlayerStats_Event(attacker, PLAYERSTATS_ACHIEVEMENT_KILL_SPREE_10, 1);
}
else if (attacker.killcount == 15)
{
Send_KillNotification(a, "", "", KILL_SPREE_15, MSG_SPREE);
AnnounceTo(attacker, "15kills");
+ PlayerStats_Event(attacker, PLAYERSTATS_ACHIEVEMENT_KILL_SPREE_15, 1);
}
else if (attacker.killcount == 20)
{
Send_KillNotification(a, "", "", KILL_SPREE_20, MSG_SPREE);
AnnounceTo(attacker, "20kills");
+ PlayerStats_Event(attacker, PLAYERSTATS_ACHIEVEMENT_KILL_SPREE_20, 1);
}
else if (attacker.killcount == 25)
{
Send_KillNotification(a, "", "", KILL_SPREE_25, MSG_SPREE);
AnnounceTo(attacker, "25kills");
+ PlayerStats_Event(attacker, PLAYERSTATS_ACHIEVEMENT_KILL_SPREE_25, 1);
}
else if (attacker.killcount == 30)
{
Send_KillNotification(a, "", "", KILL_SPREE_30, MSG_SPREE);
AnnounceTo(attacker, "30kills");
+ PlayerStats_Event(attacker, PLAYERSTATS_ACHIEVEMENT_KILL_SPREE_30, 1);
}
LogDeath("frag", deathtype, attacker, targ);
}
GiveFrags(targ, targ, -1, deathtype);
if(PlayerScore_Add(targ, SP_SCORE, 0) == -5) {
AnnounceTo(targ, "botlike");
+ PlayerStats_Event(attacker, PLAYERSTATS_ACHIEVEMENT_BOTLIKE, 1);
}
Send_KillNotification(s, msg, "", deathtype, MSG_KILL_ACTION);
entity damage_targ;
entity damage_inflictor;
entity damage_attacker;
-.float prevhitsound;
void Damage (entity targ, entity inflictor, entity attacker, float damage, float deathtype, vector hitloc, vector force)
{
targ.dmg_save += v_y;
targ.dmg_inflictor = inflictor;
damage = 0;
- force = '0 0 0';
+ if(!autocvar_g_friendlyfire_virtual_force)
+ force = '0 0 0';
}
}
else
{
if(damage > 0)
{
- if(attacker.weapon != WEP_LASER
- && (attacker.weapon != WEP_ELECTRO || !autocvar_g_balance_electro_lightning)
- && attacker.prevhitsound + autocvar_sv_hitsound_antispam_time < time)
+ if(deathtype != DEATH_FIRE)
{
if(targ.BUTTON_CHAT)
attacker.typehitsound += 1;
else
attacker.hitsound += 1;
- attacker.prevhitsound = time;
}
damage_goodhits += 1;
}
else
{
- if(deathtype != DEATH_FIRE
- && attacker.prevhitsound + autocvar_sv_hitsound_antispam_time < time)
+ if(deathtype != DEATH_FIRE)
{
attacker.typehitsound += 1;
- attacker.prevhitsound = time;
}
if(mirrordamage > 0)
if(time > attacker.teamkill_complain)
if (vlen(force))
if (self.classname != "player" || time >= self.spawnshieldtime || g_midair)
{
- self.velocity = self.velocity + self.damageforcescale * force;
+ self.velocity = self.velocity + damage_explosion_calcpush(self.damageforcescale * force, self.velocity, autocvar_g_balance_damagepush_speedfactor);
self.flags &~= FL_ONGROUND;
UpdateCSQCProjectile(self);
}
// laser force adjustments :P
if(DEATH_WEAPONOF(deathtype) == WEP_LASER)
{
- 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;
+ 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)
if(e.watertype != CONTENT_LAVA)
e.fire_endtime = 0;
+ // ice stops fire
+ if(e.freezetag_frozen)
+ e.fire_endtime = 0;
+
t = min(frametime, e.fire_endtime - time);
d = e.fire_damagepersec * t;
if((arena_roundbased && time < warmup) || (time < game_starttime))
return;
- if(g_freezetag && self.freezetag_frozen)
+ if(self.freezetag_frozen)
return;
makevectors(self.v_angle);
self.think1 ();
}
+void SUB_CalcMove_controller_think (void)
+{
+ entity oldself;
+ float traveltime;
+ float phasepos;
+ float nexttick;
+ vector delta;
+ vector veloc;
+ vector nextpos;
+ 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]
+ 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);
+
+ 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
+ }
+ self.owner.velocity = veloc;
+ self.nextthink = nexttick;
+ } else {
+ oldself = self;
+ self.owner.think = self.think1;
+ self = self.owner;
+ remove(oldself);
+ self.think();
+ }
+}
+
void SUB_CalcMove (vector tdest, float tspeed, void() func)
{
vector delta;
float traveltime;
+ entity controller;
if (!tspeed)
objerror ("No speed is defined!");
return;
}
- self.velocity = delta * (1/traveltime); // QuakeC doesn't allow vector/float division
+ // 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.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;
+ controller.think1 = self.think;
+
+ // the thinking is now done by the controller
+ self.think = SUB_Null;
self.nextthink = self.ltime + traveltime;
+
+ // invoke controller
+ self = controller;
+ self.think();
+ self = self.owner;
}
void SUB_CalcMoveEnt (entity ent, vector tdest, float tspeed, void() func)
self.reset = counter_reset;
};
+void trigger_hurt_use()
+{
+ if(activator.classname == "player")
+ self.enemy = activator;
+ else
+ self.enemy = world; // let's just destroy it, if taking over is too much work
+}
+
.float triggerhurttime;
void trigger_hurt_touch()
{
{
EXACTTRIGGER_TOUCH;
other.triggerhurttime = time + 1;
- Damage (other, self, self, self.dmg, DEATH_HURTTRIGGER, other.origin, '0 0 0');
+
+ entity own;
+ own = self.enemy;
+ if(own.classname != "player")
+ {
+ own = self;
+ self.enemy = world; // I still hate you all
+ }
+
+ Damage (other, self, own, self.dmg, DEATH_HURTTRIGGER, other.origin, '0 0 0');
}
}
else
EXACTTRIGGER_INIT;
self.active = ACTIVE_ACTIVE;
self.touch = trigger_hurt_touch;
+ self.use = trigger_hurt_use;
+ self.enemy = world; // I hate you all
if (!self.dmg)
self.dmg = 1000;
if (!self.message)
attach_sameorigin(dst, src, self.message);
}
+ dst.solid = SOLID_NOT; // solid doesn't work with attachment
remove(self);
}
else
#define BADPREFIX(p) if(substring(k, 0, strlen(p)) == p) continue
#define BADPRESUFFIX(p,s) if(substring(k, 0, strlen(p)) == p && substring(k, -strlen(s), -1) == s) continue
#define BADCVAR(p) if(k == p) continue
+
+ // general excludes and namespaces for server admin used cvars
+ BADPREFIX("help_"); // PN's server has this listed as changed, let's not rat him out for THAT
+
// internal
BADPREFIX("csqc_");
BADPREFIX("cvar_check_");
BADCVAR("g_forced_team_pink");
// mapinfo
- BADCVAR("timelimit");
BADCVAR("fraglimit");
- BADCVAR("leadlimit");
- BADCVAR("g_tdm_teams");
- BADCVAR("g_keyhunt_teams");
- BADCVAR("g_domination_default_teams");
- BADCVAR("g_race_qualifying_timelimit");
- BADCVAR("g_lms");
BADCVAR("g_arena");
- BADCVAR("g_ca");
BADCVAR("g_assault");
+ BADCVAR("g_ca");
BADCVAR("g_ctf");
+ BADCVAR("g_cts");
BADCVAR("g_dm");
BADCVAR("g_domination");
+ BADCVAR("g_domination_default_teams");
BADCVAR("g_freezetag");
+ BADCVAR("g_keepaway");
BADCVAR("g_keyhunt");
BADCVAR("g_keyhunt_teams");
+ BADCVAR("g_keyhunt_teams");
+ BADCVAR("g_lms");
+ BADCVAR("g_nexball");
BADCVAR("g_onslaught");
BADCVAR("g_race");
- BADCVAR("g_cts");
+ BADCVAR("g_race_qualifying_timelimit");
BADCVAR("g_runematch");
BADCVAR("g_tdm");
- BADCVAR("g_nexball");
- BADCVAR("g_keepaway");
+ BADCVAR("g_tdm_teams");
+ BADCVAR("leadlimit");
+ BADCVAR("nextmap");
BADCVAR("teamplay");
+ BADCVAR("timelimit");
// long
BADCVAR("hostname");
BADCVAR("hostname");
BADCVAR("log_file");
BADCVAR("maxplayers");
+ BADCVAR("g_maxplayers");
BADCVAR("minplayers");
BADCVAR("net_address");
BADCVAR("port");
addstat(STAT_FUEL, AS_INT, ammo_fuel);
addstat(STAT_SHOTORG, AS_INT, stat_shotorg);
addstat(STAT_LEADLIMIT, AS_FLOAT, stat_leadlimit);
- addstat(STAT_BULLETS_LOADED, AS_INT, sniperrifle_bulletcounter);
+ addstat(STAT_WEAPON_CLIPLOAD, AS_INT, clip_load);
+ addstat(STAT_WEAPON_CLIPSIZE, AS_INT, clip_size);
addstat(STAT_LAST_PICKUP, AS_FLOAT, last_pickup);
+ addstat(STAT_HIT_TIME, AS_FLOAT, hit_time);
+ addstat(STAT_TYPEHIT_TIME, AS_FLOAT, typehit_time);
+ addstat(STAT_LAYED_MINES, AS_INT, minelayer_mines);
addstat(STAT_NEX_CHARGE, AS_FLOAT, nex_charge);
addstat(STAT_NEX_CHARGEPOOL, AS_FLOAT, nex_chargepool_ammo);
// fill sv_curl_serverpackages from .serverpackage files
if(autocvar_sv_curl_serverpackages_auto)
{
- fd = search_begin("*.serverpackage", TRUE, FALSE);
s = "";
+ n = tokenize_console(cvar_string("sv_curl_serverpackages"));
+ for(i = 0; i < n; ++i)
+ if(substring(argv(i), -14, -1) != ".serverpackage")
+ s = strcat(s, " ", argv(i));
+ fd = search_begin("*.serverpackage", TRUE, FALSE);
if(fd >= 0)
{
j = search_getsize(fd);
float to_eventlog;
float to_file;
float i;
- entity e;
to_console = autocvar_sv_logscores_console;
to_eventlog = autocvar_sv_eventlog;
fputs(file, ":end\n");
fclose(file);
}
-
- // send statistics
- FOR_EACH_CLIENT(e)
- PlayerStats_AddGlobalInfo(e);
- PlayerStats_Shutdown();
}
void FixIntermissionClient(entity e)
DumpStats(TRUE);
+ // send statistics
+ entity e;
+ PlayerStats_EndMatch(1);
+ FOR_EACH_CLIENT(e)
+ PlayerStats_AddGlobalInfo(e);
+ PlayerStats_Shutdown();
+
if(autocvar_sv_eventlog)
GameLogEcho(":gameover");
if(self.classname == "spectator")
{
if(self.enemy.typehitsound)
- play2(self, "misc/typehit.wav");
- else if(self.enemy.hitsound && self.cvar_cl_hitsound)
- play2(self, "misc/hit.wav");
+ self.typehit_time = time;
+ else if(self.enemy.hitsound)
+ self.hit_time = time;
}
else
{
if(self.typehitsound)
- play2(self, "misc/typehit.wav");
- else if(self.hitsound && self.cvar_cl_hitsound)
- play2(self, "misc/hit.wav");
+ self.typehit_time = time;
+ else if(self.hitsound)
+ self.hit_time = time;
}
}
altime = time + frametime * (1 + autocvar_g_antilag_nudge);
print("Saving persistent data...\n");
Ban_SaveBans();
+ PlayerStats_EndMatch(0);
FOR_EACH_CLIENT(e)
PlayerStats_AddGlobalInfo(e);
PlayerStats_Shutdown();
db_put(d, "TR_NEHAHRASMOKE", "1"); print("effect TR_NEHAHRASMOKE is ", ftos(particleeffectnum("TR_NEHAHRASMOKE")), "\n");
db_put(d, "TR_NEXUIZPLASMA", "1"); print("effect TR_NEXUIZPLASMA is ", ftos(particleeffectnum("TR_NEXUIZPLASMA")), "\n");
db_put(d, "TR_GLOWTRAIL", "1"); print("effect TR_GLOWTRAIL is ", ftos(particleeffectnum("TR_GLOWTRAIL")), "\n");
+ db_put(d, "TR_SEEKER", "1"); print("effect TR_SEEKER is ", ftos(particleeffectnum("TR_SEEKER")), "\n");
db_put(d, "SVC_PARTICLE", "1"); print("effect SVC_PARTICLE is ", ftos(particleeffectnum("SVC_PARTICLE")), "\n");
fh = fopen("effectinfo.txt", FILE_READ);
}
}
+void changematchtime(float delta, float mi, float ma)
+{
+ float cur;
+ float new;
+ float lim;
+
+ if(delta == 0)
+ return;
+ if(autocvar_timelimit < 0)
+ return;
+
+ if(mi <= 10)
+ mi = 10; // at least ten sec in the future
+ cur = time - game_starttime;
+ if(cur > 0)
+ mi += cur; // from current time!
+
+ lim = autocvar_timelimit * 60;
+
+ if(delta > 0)
+ {
+ if(lim == 0)
+ return; // cannot increase any further
+ else if(lim < ma)
+ new = min(ma, lim + delta);
+ else // already above maximum: FAIL
+ return;
+ }
+ else
+ {
+ if(lim == 0) // infinite: try reducing to max, if we are allowed to
+ new = max(mi, ma);
+ else if(lim > mi) // above minimum: decrease
+ new = max(mi, lim + delta);
+ else // already below minimum: FAIL
+ return;
+ }
+
+ cvar_set("timelimit", ftos(new));
+}
+
void GameCommand(string command)
{
float argc;
if(argv(0) == "help" || argc == 0)
{
print("Usage: sv_cmd COMMAND..., where possible commands are:\n");
- print(" adminmsg clientnumber \"message\"\n");
+ print(" adminmsg clientnumber \"message\" [infobartime]\n");
print(" teamstatus\n");
print(" printstats\n");
print(" make_mapinfo\n");
print(" cvar_changes\n");
print(" cvar_purechanges\n");
print(" find classname\n");
+ print(" extendmatchtime\n");
+ print(" reducematchtime\n");
GameCommand_Vote("help", world);
GameCommand_Ban("help");
GameCommand_Generic("help");
}
if(argv(0) == "adminmsg")
- if(argc == 3)
+ if(argc >= 3 && argc <= 4)
{
entno = stof(argv(1));
- if((entno < 1) | (entno > maxclients)) {
+ if((entno < 0) | (entno > maxclients)) {
print("Player ", argv(1), " doesn't exist\n");
return;
}
- client = edict_num(entno);
-
- if(client.flags & FL_CLIENT)
+ n = 0;
+ for(i = (entno ? entno : 1); i <= (entno ? entno : maxclients); ++i)
{
- centerprint_atprio(client, CENTERPRIO_ADMIN, strcat("^3", admin_name(), ":\n\n^7", argv(2)));
- sprint(client, strcat("\{1}\{13}^3", admin_name(), "^7: ", argv(2), "\n"));
- print("Message sent to ", client.netname, "\n");
+ client = edict_num(i);
+ if(client.flags & FL_CLIENT)
+ {
+ if(argc == 4)
+ {
+ s = argv(2);
+ s = strreplace("\n", "", s);
+ s = strreplace("\\", "\\\\", s);
+ s = strreplace("$", "$$", s);
+ s = strreplace("\"", "\\\"", s);
+ stuffcmd(client, sprintf("\ninfobar %f \"%s\"\n", stof(argv(3)), s));
+ }
+ else
+ {
+ centerprint_atprio(client, CENTERPRIO_ADMIN, strcat("^3", admin_name(), ":\n\n^7", argv(2)));
+ sprint(client, strcat("\{1}\{13}^3", admin_name(), "^7: ", argv(2), "\n"));
+ }
+ print("Message sent to ", client.netname, "\n");
+ ++n;
+ }
}
- else
+ if(!n)
print("Client not found\n");
return;
return;
}
+ if(argv(0) == "extendmatchtime")
+ {
+ changematchtime(autocvar_timelimit_increment* 60, autocvar_timelimit_min*60, autocvar_timelimit_max*60);
+ return;
+ }
+
+ if(argv(0) == "reducematchtime")
+ {
+ changematchtime(autocvar_timelimit_decrement*-60, autocvar_timelimit_min*60, autocvar_timelimit_max*60);
+ return;
+ }
+
print("Invalid command. For a list of supported commands, try sv_cmd help.\n");
}
if (have_team_spawns != 0)
if (self.team)
have_team_spawns = 1;
+ have_team_spawns_forteam[self.team] = 1;
if (autocvar_r_showbboxes)
{
GetCvars_handleFloat(s, f, cvar_cl_noantilag, "cl_noantilag");
GetCvars_handleFloat(s, f, cvar_cl_voice_directional, "cl_voice_directional");
GetCvars_handleFloat(s, f, cvar_cl_voice_directional_taunt_attenuation, "cl_voice_directional_taunt_attenuation");
- GetCvars_handleFloat(s, f, cvar_cl_hitsound, "cl_hitsound");
GetCvars_handleFloat(s, f, cvar_cl_accuracy_data_share, "cl_accuracy_data_share");
GetCvars_handleFloat(s, f, cvar_cl_accuracy_data_receive, "cl_accuracy_data_receive");
#endif
GetCvars_handleFloatOnce(s, f, cvar_cl_gunalign, "cl_gunalign");
GetCvars_handleFloat(s, f, cvar_cl_allow_uid2name, "cl_allow_uid2name");
+ GetCvars_handleFloat(s, f, cvar_cl_allow_uidtracking, "cl_allow_uidtracking");
// fixup of switchweapon (needed for LMS or when spectating is disabled, as PutClientInServer comes too early)
if (f > 0)
s = "most";
}
- if (s == "off")
+ if (s == "0" || s == "")
+ {
+ // no arena
+ }
+ else if (s == "off")
{
// forcibly turn off weaponarena
}
}
else if(start_items & IT_UNLIMITED_WEAPON_AMMO)
{
- for (j = WEP_FIRST; j <= WEP_LAST; ++j)
- {
- e = get_weaponinfo(j);
- if(start_weapons & e.weapons)
- {
- if(e.items & IT_ROCKETS)
- start_ammo_rockets = 999;
- if(e.items & IT_SHELLS)
- start_ammo_shells = 999;
- if(e.items & IT_CELLS)
- start_ammo_cells = 999;
- if(e.items & IT_NAILS)
- start_ammo_nails = 999;
- if(e.items & IT_FUEL)
- start_ammo_fuel = 999;
- }
- }
+ start_ammo_rockets = 999;
+ start_ammo_shells = 999;
+ start_ammo_cells = 999;
+ start_ammo_nails = 999;
+ start_ammo_fuel = 999;
}
else
{
precache_sound ("misc/gib_splat02.wav");
precache_sound ("misc/gib_splat03.wav");
precache_sound ("misc/gib_splat04.wav");
- precache_sound ("misc/hit.wav");
- precache_sound ("misc/typehit.wav");
PrecacheGlobalSound((globalsound_fall = "misc/hitground 4"));
PrecacheGlobalSound((globalsound_metalfall = "misc/metalhitground 4"));
precache_sound ("misc/null.wav");
precache_model ("models/sprites/10.spr32");
// common weapon precaches
+ precache_sound ("weapons/reload.wav"); // until weapons have individual reload sounds, precache the reload sound here
precache_sound ("weapons/weapon_switch.wav");
precache_sound ("weapons/weaponpickup.wav");
precache_sound ("weapons/unavailable.wav");
float ParseCommandPlayerSlotTarget_firsttoken;
entity GetCommandPlayerSlotTargetFromTokenizedCommand(float tokens, float idx) // idx = start index
{
- string s;
- entity e, head;
- float n;
+ string s;
+ entity e, head;
+ float n;
- s = string_null;
+ s = string_null;
- ParseCommandPlayerSlotTarget_firsttoken = -1;
+ ParseCommandPlayerSlotTarget_firsttoken = -1;
- if (tokens > idx)
- {
- if (substring(argv(idx), 0, 1) == "#")
- {
- s = substring(argv(idx), 1, -1);
- ++idx;
- if (s == "")
- if (tokens > idx)
- {
- s = argv(idx);
- ++idx;
- }
+ if (tokens > idx)
+ {
+ if (substring(argv(idx), 0, 1) == "#")
+ {
+ s = substring(argv(idx), 1, -1);
+ ++idx;
+ if (s == "") if (tokens > idx)
+ {
+ s = argv(idx);
+ ++idx;
+ }
ParseCommandPlayerSlotTarget_firsttoken = idx;
- if (s == ftos(stof(s)))
- {
- e = edict_num(stof(s));
- if (e.flags & FL_CLIENT)
- return e;
- }
- }
- else
- {
- // it must be a nick name
- s = argv(idx);
- ++idx;
+ n = stof(s);
+ if (s == ftos(n) && n > 0 && n <= maxclients)
+ {
+ e = edict_num(n);
+ if (e.flags & FL_CLIENT)
+ return e;
+ }
+ }
+ else
+ {
+ // it must be a nick name
+ s = argv(idx);
+ ++idx;
ParseCommandPlayerSlotTarget_firsttoken = idx;
- n = 0;
- FOR_EACH_CLIENT(head)
- if (head.netname == s)
- {
- e = head;
- ++n;
- }
- if (n == 1)
- return e;
+ n = 0;
+ FOR_EACH_CLIENT(head)
+ if (head.netname == s)
+ {
+ e = head;
+ ++n;
+ }
+ if (n == 1)
+ return e;
- s = strdecolorize(s);
- n = 0;
- FOR_EACH_CLIENT(head)
- if (strdecolorize(head.netname) == s)
- {
- e = head;
- ++n;
- }
- if (n == 1)
- return e;
- }
- }
+ s = strdecolorize(s);
+ n = 0;
+ FOR_EACH_CLIENT(head)
+ if (strdecolorize(head.netname) == s)
+ {
+ e = head;
+ ++n;
+ }
+ if (n == 1)
+ return e;
+ }
+ }
- return world;
+ return world;
}
.float scale2;
return r; // callbacks return an error status, so 0 is default return value
}
-float Mutator_Add(float(float) func)
+#define MAX_MUTATORS 8
+string loaded_mutators[MAX_MUTATORS];
+float Mutator_Add(mutatorfunc_t func, string name)
{
+ float i, j;
+ j = -1;
+ for(i = 0; i < MAX_MUTATORS; ++i)
+ {
+ if(name == loaded_mutators[i])
+ return 1; // already added
+ if(!loaded_mutators[i])
+ j = i;
+ }
+ if(j < 0)
+ {
+ backtrace("WARNING: too many mutators, cannot add any more\n");
+ return 0;
+ }
+ loaded_mutators[j] = name;
+
if(func(MUTATOR_ADDING) == 0)
{
// good
return 1;
}
backtrace("WARNING: when adding mutator: adding failed\n");
- Mutator_Remove(func);
+ Mutator_Remove(func, name);
return 0;
}
-void Mutator_Remove(float(float) func)
+void Mutator_Remove(float(float) func, string name)
{
+ float i;
+ for(i = 0; i < MAX_MUTATORS; ++i)
+ if(name == loaded_mutators[i])
+ break;
+ if(i >= MAX_MUTATORS)
+ {
+ backtrace("WARNING: removing not-added mutator\n");
+ return;
+ }
+ loaded_mutators[i] = string_null;
+
if(func(MUTATOR_REMOVING) != 0)
{
// baaaaad
#define MUTATOR_REMOVING 0
#define MUTATOR_ADDING 1
-float Mutator_Add(float(float) func);
-void Mutator_Remove(float(float) func); // calls error() on fail
+typedef float(float) mutatorfunc_t;
+float Mutator_Add(mutatorfunc_t func, string name);
+void Mutator_Remove(mutatorfunc_t func, string name); // calls error() on fail
-#define MUTATOR_ADD(name) Mutator_Add(MUTATOR_##name)
-#define MUTATOR_REMOVE(name) Mutator_Remove(MUTATOR_##name)
+#define MUTATOR_ADD(name) Mutator_Add(MUTATOR_##name, #name)
+#define MUTATOR_REMOVE(name) Mutator_Remove(MUTATOR_##name, #name)
#define MUTATOR_DEFINITION(name) float MUTATOR_##name(float mode)
#define MUTATOR_DECLARATION(name) float MUTATOR_##name(float mode)
#define MUTATOR_HOOKFUNCTION(name) float HOOKFUNCTION_##name()
return 1;
}
+MUTATOR_HOOKFUNCTION(freezetag_ForbidThrowCurrentWeapon)
+{
+ if (self.freezetag_frozen)
+ return 1;
+ return 0;
+}
+
MUTATOR_DEFINITION(gamemode_freezetag)
{
MUTATOR_HOOK(MakePlayerObserver, freezetag_RemovePlayer, CBC_ORDER_ANY);
MUTATOR_HOOK(PlayerPreThink, freezetag_PlayerPreThink, CBC_ORDER_FIRST);
MUTATOR_HOOK(PlayerPhysics, freezetag_PlayerPhysics, CBC_ORDER_FIRST);
MUTATOR_HOOK(PlayerDamage_Calculate, freezetag_PlayerDamage_Calculate, CBC_ORDER_ANY);
+ MUTATOR_HOOK(ForbidThrowCurrentWeapon, freezetag_ForbidThrowCurrentWeapon, CBC_ORDER_FIRST); //first, last or any? dunno.
MUTATOR_ONADD
{
void ka_TouchEvent(void);
void ka_RespawnBall(void);
void ka_DropEvent(entity);
+void ka_TimeScoring(void);
float ka_ballcarrier_waypointsprite_visible_for_player(entity);
ka_RespawnBall();
}
-void ka_SpawnBall() // loads various values for the ball
+void ka_SpawnBall() // loads various values for the ball, runs only once at start of match
{
if(!g_keepaway) { return; }
entity e;
e = spawn();
e.model = "models/orbs/orbblue.md3";
- e.scale = 1;
precache_model(e.model);
setmodel(e, e.model);
setsize(e, '-16 -16 -20', '16 16 20'); // 20 20 20 was too big, player is only 16 16 24... gotta cheat with the Z (20) axis so that the particle isn't cut off
e.classname = "keepawayball";
e.damageforcescale = autocvar_g_keepawayball_damageforcescale;
e.takedamage = DAMAGE_YES;
+ e.solid = SOLID_TRIGGER;
+ e.movetype = MOVETYPE_BOUNCE;
e.glow_color = autocvar_g_keepawayball_trail_color;
e.glow_trail = TRUE;
- e.movetype = MOVETYPE_BOUNCE;
- e.touch = ka_TouchEvent;
e.flags = FL_ITEM;
e.reset = ka_Reset;
+ e.touch = ka_TouchEvent;
e.owner = world;
InitializeEntity(e, ka_RespawnBall, INITPRIO_SETLOCATION); // is this the right priority? Neh, I have no idea.. Well-- it works! So.
void ka_RespawnBall() // runs whenever the ball needs to be relocated
{
+ if(gameover) { return; }
vector oldballorigin = self.origin;
-
+
if(MoveToRandomMapLocation(self, DPCONTENTS_SOLID | DPCONTENTS_CORPSE | DPCONTENTS_PLAYERCLIP, DPCONTENTS_SLIME | DPCONTENTS_LAVA | DPCONTENTS_SKY | DPCONTENTS_BODY | DPCONTENTS_DONOTENTER, Q3SURFACEFLAG_SKY, 10, 1024, 256))
{
makevectors(self.angles);
self.movetype = MOVETYPE_BOUNCE;
self.velocity = '0 0 200';
self.angles = '0 0 0';
- self.solid = SOLID_TRIGGER;
+ self.effects = autocvar_g_keepawayball_effects;
self.think = ka_RespawnBall;
self.nextthink = time + autocvar_g_keepawayball_respawntime;
void ka_TouchEvent() // runs any time that the ball comes in contact with something
{
+ if(gameover) { return; }
if(!self) { return; }
if(trace_dphitq3surfaceflags & Q3SURFACEFLAG_NOIMPACT)
{ // The ball fell off the map, respawn it since players can't get to it
self.owner = other;
other.ballcarried = self;
setattachment(self, other, "");
- setorigin(self, '3 0 20');
+ setorigin(self, '0 0 0');
- // make the ball invisible/unable to do anything
+ // make the ball invisible/unable to do anything/set up time scoring
self.velocity = '0 0 0';
self.movetype = MOVETYPE_NONE;
- self.touch = SUB_Null;
self.effects |= EF_NODRAW;
- self.think = SUB_Null;
- self.nextthink = 0;
+ self.touch = SUB_Null;
+ self.think = ka_TimeScoring;
+ self.nextthink = time + autocvar_g_keepaway_score_timeinterval;
self.takedamage = DAMAGE_NO;
// apply effects to player
other.glow_color = autocvar_g_keepawayball_trail_color;
other.glow_trail = TRUE;
- other.effects |= EF_DIMLIGHT;
- other.alpha = autocvar_g_keepaway_ballcarrier_alpha;
- other.exteriorweaponentity.alpha = autocvar_g_keepaway_ballcarrier_alpha;
-
+ other.effects |= autocvar_g_keepaway_ballcarrier_effects;
+
// messages and sounds
Send_KillNotification(other.netname, "", "", KA_PICKUPBALL, MSG_KA);
WriteByte(MSG_BROADCAST, SVC_CENTERPRINT);
// reset the ball
setattachment(ball, world, "");
ball.movetype = MOVETYPE_BOUNCE;
- ball.solid = SOLID_TRIGGER; // is this needed?
ball.wait = time + 1;
+ ball.touch = ka_TouchEvent;
ball.think = ka_RespawnBall;
ball.nextthink = time + autocvar_g_keepawayball_respawntime;
- ball.touch = ka_TouchEvent;
ball.takedamage = DAMAGE_YES;
ball.effects &~= EF_NODRAW;
setorigin(ball, plyr.origin + '0 0 10');
ball.owner = world;
// reset the player effects
- plyr.effects &~= EF_DIMLIGHT;
- plyr.alpha = default_player_alpha;
- plyr.exteriorweaponentity.alpha = default_weapon_alpha;
plyr.glow_trail = FALSE;
-
+ plyr.effects &~= autocvar_g_keepaway_ballcarrier_effects;
+
// messages and sounds
Send_KillNotification(plyr.netname, "", "", KA_DROPBALL, MSG_KA);
WriteByte(MSG_BROADCAST, SVC_CENTERPRINT);
sound(other, CHAN_AUTO, "keepaway/dropped.wav", VOL_BASE, ATTN_NONE); // ATTN_NONE (it's a sound intended to be heard anywhere)
// scoring
- PlayerScore_Add(plyr, SP_KEEPAWAY_DROPS, 1);
+ // PlayerScore_Add(plyr, SP_KEEPAWAY_DROPS, 1); Not anymore, this is 100% the same as pickups and is useless.
// waypoints
WaypointSprite_Spawn("ka-ball", 0, 0, ball, '0 0 64', world, ball.team, ball, waypointsprite_attachedforcarrier, FALSE);
float ka_ballcarrier_waypointsprite_visible_for_player(entity e) // runs on waypoints which are attached to ballcarriers, updates once per frame
{
if(e.ballcarried)
- {
if(other.classname == "spectator")
return FALSE; // we don't want spectators of the ballcarrier to see the attached waypoint on the top of their screen
- else if(g_minstagib && (e.items & IT_STRENGTH))
- return FALSE; // if the ballcarrier has invisibility, don't draw the waypoint as this is the function of invisibility in keepaway
- }
+
+ // TODO: Make the ballcarrier lack a waypointsprite whenever they have the invisibility powerup
return TRUE;
}
-MUTATOR_HOOKFUNCTION(ka_RemovePlayer)
+void ka_TimeScoring()
{
- if(self.ballcarried) { ka_DropEvent(self); } // a player with the ball has left the match, drop it
- return 0;
+ if(self.owner.ballcarried)
+ { // add points for holding the ball after a certain amount of time
+ if(autocvar_g_keepaway_score_timepoints)
+ PlayerScore_Add(self.owner, SP_SCORE, autocvar_g_keepaway_score_timepoints);
+
+ PlayerScore_Add(self.owner, SP_KEEPAWAY_BCTIME, (autocvar_g_keepaway_score_timeinterval / 1)); // interval is divided by 1 so that time always shows "seconds"
+ self.nextthink = time + autocvar_g_keepaway_score_timeinterval;
+ }
}
MUTATOR_HOOKFUNCTION(ka_Scoring)
{
if(frag_target.ballcarried) { // add to amount of times killing carrier
PlayerScore_Add(frag_attacker, SP_KEEPAWAY_CARRIERKILLS, 1);
- if(autocvar_g_keepaway_bckillscore) // add bckills to the score
- PlayerScore_Add(frag_attacker, SP_KEEPAWAY_SCORE, 1);
+ if(autocvar_g_keepaway_score_bckill) // add bckills to the score
+ PlayerScore_Add(frag_attacker, SP_SCORE, autocvar_g_keepaway_score_bckill);
}
else if(!frag_attacker.ballcarried)
if(autocvar_g_keepaway_noncarrier_warn)
centerprint_atprio(frag_attacker, (CENTERPRIO_SPAM + 5), "Killing people while you don't have the ball gives no points!");
if(frag_attacker.ballcarried) // add to amount of kills while ballcarrier
- PlayerScore_Add(frag_attacker, SP_KEEPAWAY_SCORE, 1);
+ PlayerScore_Add(frag_attacker, SP_SCORE, autocvar_g_keepaway_score_killac);
}
if(self.ballcarried) { ka_DropEvent(self); } // a player with the ball has died, drop it
MUTATOR_HOOKFUNCTION(ka_GiveFragsForKill)
{
frag_score = 0; // no frags counted in keepaway
- return 0;
+ return 1; // you deceptive little bugger ;3 This needs to be true in order for this function to even count.
}
MUTATOR_HOOKFUNCTION(ka_PlayerPreThink)
return 0;
}
+MUTATOR_HOOKFUNCTION(ka_RemovePlayer)
+{
+ if(self.ballcarried) { ka_DropEvent(self); } // a player with the ball has left the match, drop it
+ return 0;
+}
+
MUTATOR_HOOKFUNCTION(ka_PlayerPowerups)
{
- if(self.ballcarried)
- {
- // if the player has the ball, force ballcarrier alpha upon them
- self.alpha = autocvar_g_keepaway_ballcarrier_alpha;
- self.exteriorweaponentity.alpha = autocvar_g_keepaway_ballcarrier_alpha;
+ // In the future this hook is supposed to allow me to do some extra stuff with waypointsprites and invisibility powerup
+ // So bare with me until I can fix a certain bug with ka_ballcarrier_waypointsprite_visible_for_player()
- // if we're in minstagib and a ballcarrier has just picked up invisibility,
- // notify all the other players that the ballcarrier no longer has a waypoint
- if(g_minstagib)
- {
- if(olditems & IT_STRENGTH)
- {
- if(time > self.strength_finished)
- { // this only runs ONCE right after the player loses invisibility
- bprint(self.netname, "^7 isn't invisible from radar anymore.\n");
- }
- }
- else
- {
- if(time < self.strength_finished)
- { // this only runs ONCE right after the player gains invisibility
- bprint(self.netname, "^7 has picked up invisibility and can no longer be seen on radar!\n");
- }
- }
- }
- }
- else if(g_minstagib)
- {
- // if we're in minstagib and a noncarrier has invisibility, assure that we apply the invisibility effects normally
- if(olditems & IT_STRENGTH)
- {
- self.alpha = g_minstagib_invis_alpha;
- self.exteriorweaponentity.alpha = g_minstagib_invis_alpha;
- }
- }
- else
- {
- // if we're a normal player with no powerups that edit alpha make sure the alpha is default.
- // (normal powerups just use EF_ADDITIVE)
- self.alpha = default_player_alpha;
- self.exteriorweaponentity.alpha = default_weapon_alpha;
- }
+ self.effects &~= autocvar_g_keepaway_ballcarrier_effects;
+
+ if(self.ballcarried)
+ self.effects |= autocvar_g_keepaway_ballcarrier_effects;
return 0;
}
MUTATOR_DEFINITION(gamemode_keepaway)
{
- // I don't quite understand these orders, perhaps someone could enlighten me?
MUTATOR_HOOK(MakePlayerObserver, ka_RemovePlayer, CBC_ORDER_ANY);
MUTATOR_HOOK(ClientDisconnect, ka_RemovePlayer, CBC_ORDER_ANY);
MUTATOR_HOOK(PlayerDies, ka_Scoring, CBC_ORDER_ANY);
MUTATOR_HOOK(GiveFragsForKill, ka_GiveFragsForKill, CBC_ORDER_ANY);
- MUTATOR_HOOK(PlayerPreThink, ka_PlayerPreThink, CBC_ORDER_FIRST);
+ MUTATOR_HOOK(PlayerPreThink, ka_PlayerPreThink, CBC_ORDER_ANY);
MUTATOR_HOOK(PlayerDamage_Calculate, ka_PlayerDamage, CBC_ORDER_ANY);
MUTATOR_HOOK(PlayerPowerups, ka_PlayerPowerups, CBC_ORDER_ANY);
MUTATOR_HOOKFUNCTION(nix_OnEntityPreSpawn)
{
- if(self.classname == "target_items") // items triggers cannot work in nixnex (as they change weapons/ammo)
+ if(self.classname == "target_items") // items triggers cannot work in nix (as they change weapons/ammo)
return 1;
return 0;
}
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);
string events_last;
.float playerstats_addedglobalinfo;
float playerstats_requested;
+.string playerstats_id;
void PlayerStats_Init()
{
playerstats_waitforme = FALSE; // must wait for it at match end
PlayerStats_AddEvent(PLAYERSTATS_ALIVETIME);
- PlayerStats_AddEvent(PLAYERSTATS_KILLS);
+ PlayerStats_AddEvent(PLAYERSTATS_WINS);
+ PlayerStats_AddEvent(PLAYERSTATS_MATCHES);
+ PlayerStats_AddEvent(PLAYERSTATS_JOINS);
+ PlayerStats_AddEvent(PLAYERSTATS_SCOREBOARD_VALID);
+
+ PlayerStats_AddEvent(PLAYERSTATS_ACHIEVEMENT_KILL_SPREE_3);
+ PlayerStats_AddEvent(PLAYERSTATS_ACHIEVEMENT_KILL_SPREE_5);
+ PlayerStats_AddEvent(PLAYERSTATS_ACHIEVEMENT_KILL_SPREE_10);
+ PlayerStats_AddEvent(PLAYERSTATS_ACHIEVEMENT_KILL_SPREE_15);
+ PlayerStats_AddEvent(PLAYERSTATS_ACHIEVEMENT_KILL_SPREE_20);
+ PlayerStats_AddEvent(PLAYERSTATS_ACHIEVEMENT_KILL_SPREE_25);
+ PlayerStats_AddEvent(PLAYERSTATS_ACHIEVEMENT_KILL_SPREE_30);
+ PlayerStats_AddEvent(PLAYERSTATS_ACHIEVEMENT_BOTLIKE);
+ PlayerStats_AddEvent(PLAYERSTATS_ACHIEVEMENT_FIRSTBLOOD);
+ PlayerStats_AddEvent(PLAYERSTATS_ACHIEVEMENT_FIRSTVICTIM);
}
void PlayerStats_AddPlayer(entity e)
{
- if(!e.crypto_idfp || playerstats_db < 0)
+ if(playerstats_db < 0)
return;
+
+ if(e.crypto_idfp != "" && e.cvar_cl_allow_uidtracking == 1)
+ e.playerstats_id = strzone(e.crypto_idfp);
+ else if(clienttype(e) == CLIENTTYPE_BOT)
+ e.playerstats_id = strzone(sprintf("bot#%d", e.playerid));
+ else
+ e.playerstats_id = strzone(sprintf("player#%d", e.playerid));
string key;
- key = sprintf("%s:*", e.crypto_idfp);
+ key = sprintf("%s:*", e.playerstats_id);
+
+ string p;
+ p = db_get(playerstats_db, key);
+ if(p == "")
+ {
+ if(playerstats_last)
+ {
+ db_put(playerstats_db, key, playerstats_last);
+ strunzone(playerstats_last);
+ }
+ else
+ db_put(playerstats_db, key, "#");
+ playerstats_last = strzone(e.playerstats_id);
+ }
+}
+
+void PlayerStats_AddTeam(float t)
+{
+ if(playerstats_db < 0)
+ return;
+
+ string key;
+ key = sprintf("team#%d:*", t);
string p;
p = db_get(playerstats_db, key);
}
else
db_put(playerstats_db, key, "#");
- playerstats_last = strzone(e.crypto_idfp);
+ playerstats_last = strzone(sprintf("team%d", t));
}
}
void PlayerStats_Event(entity e, string event_id, float value)
{
- if(!e.crypto_idfp || playerstats_db < 0)
+ if(!e.playerstats_id || playerstats_db < 0)
return;
string key;
float val;
- key = sprintf("%s:%s", e.crypto_idfp, event_id);
+ key = sprintf("%s:%s", e.playerstats_id, event_id);
+ val = stof(db_get(playerstats_db, key));
+ val += value;
+ db_put(playerstats_db, key, ftos(val));
+}
+
+void PlayerStats_TeamScore(float t, string event_id, float value)
+{
+ string key;
+ float val;
+ key = sprintf("team#%d:%s", t, event_id);
val = stof(db_get(playerstats_db, key));
val += value;
db_put(playerstats_db, key, ftos(val));
playerstats_waitforme = TRUE;
}
+/*
+ format spec:
+
+ A collection of lines of the format <key> SPACE <value> NEWLINE, where
+ <key> is always a single character.
+
+ The following keys are defined:
+
+ V: format version (always 1) - this MUST be the first line!
+ #: comment (MUST be ignored by any parser)
+ R: release information on the server
+ T: time at which the game ended
+ G: game type
+ M: map name
+ S: "hostname" of the server
+ C: number of "unpure" cvar changes
+ P: player ID of an existing player; this also sets the owner for all following "n" and "e" lines (lower case!)
+ n: nickname of the player (optional)
+ e: followed by an event name, a space, and the event count/score
+ event names can be:
+ alivetime: total playing time of the player
+ wins: number of games won (can only be set if matches is set)
+ matches: number of matches played to the end (not aborted by map switch)
+ joins: number of matches joined (always 1 unless player never played during the match)
+ scoreboardvalid: set to 1 if the player was there at the end of the match
+ total-<scoreboardname>: total score of that scoreboard item
+ scoreboard-<scoreboardname>: end-of-game score of that scoreboard item (can differ in non-team games)
+ achievement-<achievementname>: achievement counters
+*/
+
//#NO AUTOCVARS START
void PlayerStats_Shutdown()
{
db_dump(playerstats_db, "foo.db");
bufstr_set(b, i++, "V 1");
+#ifdef WATERMARK
+ bufstr_set(b, i++, sprintf("R %s", WATERMARK()));
+#endif
bufstr_set(b, i++, sprintf("T %s.%06d", strftime(FALSE, "%s"), floor(random() * 1000000)));
bufstr_set(b, i++, sprintf("G %s", GetGametype()));
bufstr_set(b, i++, sprintf("M %s", GetMapname()));
{
float v;
v = stof(db_get(playerstats_db, sprintf("%s:%s", p, e)));
- bufstr_set(b, i++, sprintf("e %s %f", e, v));
+ if(v != 0)
+ bufstr_set(b, i++, sprintf("e %s %g", e, v));
}
}
bufstr_set(b, i++, "");
+ if(autocvar_g_playerstats_debug)
+ {
+ for(i = 0; i < buf_getsize(b); ++i)
+ print(bufstr_get(b, i), "\n");
+ }
+
if(crypto_uri_postbuf(uri, URI_GET_PLAYERSTATS_SENT, "text/plain", "\n", b, 0))
playerstats_requested = TRUE;
else
{
if(playerstats_db < 0)
return;
- if(!p.crypto_idfp || playerstats_db < 0)
+ if(!p.playerstats_id || playerstats_db < 0)
return;
p.playerstats_addedglobalinfo = TRUE;
// add global info!
if(p.alivetime)
PlayerStats_Event(p, PLAYERSTATS_ALIVETIME, time - p.alivetime);
+
+ if(p.alivetime)
+ PlayerStats_Event(p, PLAYERSTATS_ALIVETIME, time - p.alivetime);
- if(p.cvar_cl_allow_uid2name == 1)
- db_put(playerstats_db, sprintf("%s:_netname", p.crypto_idfp), p.netname);
+ if(p.cvar_cl_allow_uid2name == 1 || clienttype(p) == CLIENTTYPE_BOT)
+ db_put(playerstats_db, sprintf("%s:_netname", p.playerstats_id), p.netname);
+
+ if(p.alivetime > 0)
+ PlayerStats_Event(p, PLAYERSTATS_JOINS, 1);
+
+ strunzone(p.playerstats_id);
+ p.playerstats_id = string_null;
+}
+
+void PlayerStats_EndMatch(float finished)
+{
+ entity p;
+ FOR_EACH_PLAYER(p)
+ {
+ PlayerScore_PlayerStats(p);
+ PlayerStats_Event(p, PLAYERSTATS_SCOREBOARD_VALID, 1);
+ if(finished)
+ {
+ PlayerStats_Event(p, PLAYERSTATS_WINS, p.winning);
+ PlayerStats_Event(p, PLAYERSTATS_MATCHES, 1);
+ }
+ }
}
// time the player was alive and kicking
-string PLAYERSTATS_ALIVETIME = "alivetime";
-string PLAYERSTATS_KILLS = "kills";
+string PLAYERSTATS_ALIVETIME = "alivetime";
+string PLAYERSTATS_WINS = "wins";
+string PLAYERSTATS_MATCHES = "matches";
+string PLAYERSTATS_JOINS = "joins";
+string PLAYERSTATS_SCOREBOARD_VALID = "scoreboardvalid";
+
+string PLAYERSTATS_TOTAL = "total-";
+string PLAYERSTATS_SCOREBOARD = "scoreboard-";
+
+string PLAYERSTATS_ACHIEVEMENT_KILL_SPREE_3 = "achievement-kill-spree-3";
+string PLAYERSTATS_ACHIEVEMENT_KILL_SPREE_5 = "achievement-kill-spree-5";
+string PLAYERSTATS_ACHIEVEMENT_KILL_SPREE_10 = "achievement-kill-spree-10";
+string PLAYERSTATS_ACHIEVEMENT_KILL_SPREE_15 = "achievement-kill-spree-15";
+string PLAYERSTATS_ACHIEVEMENT_KILL_SPREE_20 = "achievement-kill-spree-20";
+string PLAYERSTATS_ACHIEVEMENT_KILL_SPREE_25 = "achievement-kill-spree-25";
+string PLAYERSTATS_ACHIEVEMENT_KILL_SPREE_30 = "achievement-kill-spree-30";
+string PLAYERSTATS_ACHIEVEMENT_BOTLIKE = "achievement-botlike";
+string PLAYERSTATS_ACHIEVEMENT_FIRSTBLOOD = "achievement-firstblood";
+string PLAYERSTATS_ACHIEVEMENT_FIRSTVICTIM = "achievement-firstvictim";
// delay map switch until this is set
float playerstats_waitforme;
// add a new player
void PlayerStats_AddPlayer(entity e);
+// add a new team
+void PlayerStats_AddTeam(float t);
+
// add a new event
void PlayerStats_AddEvent(string event_id);
// call on each event to track, or at player disconnect OR match end for "global stuff"
void PlayerStats_Event(entity e, string event_id, float value);
+// add a team score
+void PlayerStats_TeamScore(float t, string event_id, float value);
+
// call at game over
void PlayerStats_Shutdown(); // send stats to the server
// call this whenever a player leaves
void PlayerStats_AddGlobalInfo(entity p);
+
+// call this at the end of the match
+void PlayerStats_EndMatch(float finished);
../common/constants.qh
../common/util.qh
../common/items.qh
+../common/explosion_equation.qh
autocvars.qh
constants.qh
cheats.qc
playerstats.qc
+../common/explosion_equation.qc
+
mutators/base.qc
mutators/gamemode_keyhunt.qc
mutators/gamemode_freezetag.qc
../warpzonelib/common.qc
../warpzonelib/util_server.qc
../warpzonelib/server.qc
+
+../common/if-this-file-errors-scroll-up-and-fix-the-warnings.fteqccfail
Net_LinkEntity(ts, FALSE, 0, TeamScore_SendEntity);
teamscorekeepers[t - 1] = ts;
++teamscores_entities_count;
+ PlayerStats_AddTeam(t);
}
float TeamScore_AddToTeam(float t, float scorefield, float score)
scores_primary = scores[i];
scores_flags_primary = scoreflags;
}
+ if(label != "")
+ {
+ PlayerStats_AddEvent(strcat(PLAYERSTATS_TOTAL, label));
+ PlayerStats_AddEvent(strcat(PLAYERSTATS_SCOREBOARD, label));
+ }
}
void ScoreInfo_SetLabel_TeamScore(float i, string label, float scoreflags)
if(teamscores_entities_count)
return;
+
if(g_lms) return;
if(g_arena || g_ca) return;
if(g_race && !g_race_qualifying) return;
if(score)
if(scores_label[scorefield] != "")
s.SendFlags |= pow(2, scorefield);
+ PlayerStats_Event(s.owner, strcat(PLAYERSTATS_TOTAL, scores_label[scorefield]), score);
+ s.(scores_accumulated[scorefield]) += score;
return (s.(scores[scorefield]) += score);
}
entity secondscorekeeper;
entity sk;
+ // format:
+ // gametype:P<pure>:S<slots>::plabel,plabel:tlabel,tlabel:teamid:tscore,tscore:teamid:tscore,tscore
+ // score labels always start with a symbol or with lower case
+ // so to match pure, match for :P0:
+ // to match full, match for :S0:
+
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, "::", GetPlayerScoreString(world, 1)); // make this 1 once we can, note: this doesn't contain any :<letter>
fullstatus = autocvar_g_full_getstatus_responses;
}
}
+void PlayerScore_PlayerStats(entity p)
+{
+ entity s;
+ float i;
+ s = p.scorekeeper;
+
+ for(i = 0; i < MAX_SCORE; ++i)
+ if(s.(scores[i]) != 0)
+ if(scores_label[i] != "")
+ PlayerStats_Event(s.owner, strcat(PLAYERSTATS_SCOREBOARD, scores_label[i]), s.(scores[i]));
+}
+
+void PlayerScore_TeamStats(void)
+{
+ entity sk;
+ float t, i;
+ for(t = 0; t < 16; ++t)
+ {
+ sk = teamscorekeepers[t];
+ if(!sk)
+ continue;
+ for(i = 0; i < MAX_TEAMSCORE; ++i)
+ if(sk.(teamscores[i]) != 0)
+ if(teamscores_label[i] != "")
+ PlayerStats_TeamScore(t, strcat(PLAYERSTATS_SCOREBOARD, teamscores_label[i]), sk.(teamscores[i]));
+ }
+}
.float scores[MAX_SCORE];
.float teamscores[MAX_TEAMSCORE];
+.float scores_accumulated[MAX_SCORE]; // for player stats only
+
/**
* Attaches a PlayerScore entity to a player. Use that in ClientConnect.
* Remember to detach it in ClientDisconnect!
// Keep Away stuff
#define SP_KEEPAWAY_PICKUPS 4
#define SP_KEEPAWAY_CARRIERKILLS 5
-#define SP_KEEPAWAY_DROPS 6
-#define SP_KEEPAWAY_SCORE 7
+#define SP_KEEPAWAY_BCTIME 6
void ScoreRules_keepaway()
{
- ScoreRules_basics(0, SFL_SORT_PRIO_PRIMARY, 0, FALSE); // SFL_SORT_PRIO_PRIMARY
- ScoreInfo_SetLabel_PlayerScore(SP_KEEPAWAY_SCORE, "score", SFL_SORT_PRIO_PRIMARY);
- ScoreInfo_SetLabel_PlayerScore(SP_KEEPAWAY_PICKUPS, "pickups", 0);
+ ScoreRules_basics(0, SFL_SORT_PRIO_PRIMARY, 0, TRUE); // SFL_SORT_PRIO_PRIMARY
+ ScoreInfo_SetLabel_PlayerScore(SP_KEEPAWAY_PICKUPS, "pickups", 0);
ScoreInfo_SetLabel_PlayerScore(SP_KEEPAWAY_CARRIERKILLS, "bckills", 0);
- ScoreInfo_SetLabel_PlayerScore(SP_KEEPAWAY_DROPS, "drops", SFL_LOWER_IS_BETTER);
+ ScoreInfo_SetLabel_PlayerScore(SP_KEEPAWAY_BCTIME, "bctime", SFL_SORT_PRIO_SECONDARY);
ScoreRules_basics_end();
}
void CreatureFrame (void)
{
local entity oldself;
- local float dm, maxspeed;
+ local float dm;
oldself = self;
self = findfloat(world, iscreature, TRUE);
while (self)
self.dmg = 2;
}
// check for falling damage
+ float velocity_len = vlen(self.velocity);
if(!self.hook.state && !g_ca && !(g_cts && !autocvar_g_cts_selfdamage))
{
- dm = vlen(self.oldvelocity) - vlen(self.velocity); // dm is now the velocity DECREASE. Velocity INCREASE should never cause a sound or any damage.
+ dm = vlen(self.oldvelocity) - velocity_len; // dm is now the velocity DECREASE. Velocity INCREASE should never cause a sound or any damage.
if (self.deadflag)
dm = (dm - autocvar_g_balance_falldamage_deadminspeed) * autocvar_g_balance_falldamage_factor;
else
Damage (self, world, world, dm, DEATH_FALL, self.origin, '0 0 0');
}
- maxspeed = autocvar_g_maxspeed;
- if(maxspeed > 0 && vlen(self.velocity) > maxspeed)
+ if(autocvar_g_maxspeed > 0 && velocity_len > autocvar_g_maxspeed)
Damage (self, world, world, 100000, DEATH_SHOOTING_STAR, self.origin, '0 0 0');
// play stupid sounds
if (g_footsteps)
if (!gameover)
if (self.flags & FL_ONGROUND)
- if (vlen(self.velocity) > autocvar_sv_maxspeed * 0.6)
+ if (velocity_len > autocvar_sv_maxspeed * 0.6)
if (!self.deadflag)
if (time < self.lastground + 0.2)
{
.float anglejitter;
.string gametypefilter;
.string cvarfilter;
+float DoesQ3ARemoveThisEntity();
void SV_OnEntityPreSpawnFunction()
{
if(self.gametypefilter != "")
- if not(isGametypeInFilter(game, teams_matter, self.gametypefilter))
+ if not(isGametypeInFilter(game, teams_matter, have_team_spawns, self.gametypefilter))
{
remove(self);
return;
}
}
+ if(DoesQ3ARemoveThisEntity())
+ {
+ remove(self);
+ return;
+ }
+
// support special -1 and -2 angle from radiant
if (self.angles == '0 -1 0')
self.angles = '-90 0 0';
.float colormap;
.float team;
.float max_health;
-.float teleport_time;
+.float teleport_time; // movement input is blocked till that time; set e.g. by waterjump logic - BUT, movement and friction still takes place
.float armortype;
.float armorvalue;
.float waterlevel;
}
else if((e.flags & FL_WEAPON) && (g_weapon_stay == 3))
{
- // make the item translucent green and not touchable
+ // 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';
}
else if(g_ghost_items)
{
- // make the item translucent green and not touchable
+ // make the item translucent and not touchable
e.model = e.mdl;
e.solid = SOLID_NOT;
e.colormod = stov(autocvar_g_ghost_items_color);
// hide the item completely
e.model = string_null;
e.solid = SOLID_NOT;
- e.colormod = stov(autocvar_g_ghost_items_color);
+ e.colormod = '0 0 0';
e.glowmod = e.colormod;
e.alpha = 0;
e.customizeentityforclient = func_null;
}
if (item.flags & FL_WEAPON)
- if ((it = item.weapons - (item.weapons & player.weapons)) || g_pickup_weapons_anyway)
+ if ((it = item.weapons - (item.weapons & player.weapons)) || (g_pickup_weapons_anyway && !(g_weapon_stay == 3 && !e.spawnshieldtime)))
{
pickedup = TRUE;
for(i = WEP_FIRST; i <= WEP_LAST; ++i)
waypoint_spawnforitem(self);
}
- if(teams_matter)
- {
- if(self.notteam)
- {
- print("removed non-teamplay ", self.classname, "\n");
- startitem_failed = TRUE;
- remove (self);
- return;
- }
- }
- else
- {
- if(self.notfree)
- {
- print("removed non-FFA ", self.classname, "\n");
- startitem_failed = TRUE;
- remove (self);
- return;
- }
- }
-
- if(self.notq3a)
- {
- // We aren't TA or something like that, so we keep the Q3A entities
- print("removed non-Q3A ", self.classname, "\n");
- startitem_failed = TRUE;
- remove (self);
- return;
- }
-
/*
* can't do it that way, as it would break maps
* TODO make a target_give like entity another way, that perhaps has
void() train_next;
void train_wait()
{
- self.think = train_next;
- self.nextthink = self.ltime + self.wait;
-
if(self.noise != "")
stopsoundto(MSG_BROADCAST, self, CHAN_TRIGGER); // send this as unreliable only, as the train will resume operation shortly anyway
+
+ if(self.wait < 0)
+ {
+ train_next();
+ }
+ else
+ {
+ self.think = train_next;
+ self.nextthink = self.ltime + self.wait;
+ }
+
+ entity oldself;
+ oldself = self;
+ self = self.enemy;
+ SUB_UseTargets();
+ self = oldself;
+ self.enemy = world;
};
void train_next()
{
local entity targ;
targ = find(world, targetname, self.target);
+ self.enemy = targ;
self.target = targ.target;
if (!self.target)
objerror("train_next: no next target");
self.wait = targ.wait;
if (!self.wait)
self.wait = 0.1;
- if(self.wait < 0)
- {
- if (targ.speed)
- SUB_CalcMove(targ.origin - self.mins, targ.speed, train_next);
- else
- SUB_CalcMove(targ.origin - self.mins, self.speed, train_next);
- }
+
+ if (targ.speed)
+ SUB_CalcMove(targ.origin - self.mins, targ.speed, train_wait);
else
- {
- if (targ.speed)
- SUB_CalcMove(targ.origin - self.mins, targ.speed, train_wait);
- else
- SUB_CalcMove(targ.origin - self.mins, self.speed, train_wait);
- }
+ SUB_CalcMove(targ.origin - self.mins, self.speed, train_wait);
if(self.noise != "")
sound(self, CHAN_TRIGGER, self.noise, VOL_BASE, ATTN_IDLE);
void spawnfunc_team_CTF_bluespawn() { spawnfunc_info_player_team2(); }
void spawnfunc_item_flight() { spawnfunc_item_jetpack(); }
+
+.float notteam;
+.float notsingle;
+.float notfree;
+.float notq3a;
+.float notta;
+.string gametype;
+float DoesQ3ARemoveThisEntity()
+{
+ // Q3 style filters (DO NOT USE, THIS IS COMPAT ONLY)
+
+ if(self.notq3a)
+ if(!teams_matter || g_tdm || g_ctf)
+ return 1;
+
+ if(self.notta)
+ if not(!teams_matter || g_tdm || g_ctf)
+ return 1;
+
+ if(self.notsingle)
+ if(maxclients == 1)
+ return 1;
+
+ if(self.notteam)
+ if(teams_matter)
+ return 1;
+
+ if(self.notfree)
+ if(!teams_matter)
+ return 1;
+
+ if(self.gametype)
+ {
+ string gametypename;
+ // static char *gametypeNames[] = {"ffa", "tournament", "single", "team", "ctf", "oneflag", "obelisk", "harvester", "teamtournament"};
+ gametypename = "ffa";
+ if(teams_matter)
+ gametypename = "team";
+ if(g_arena)
+ gametypename = "tournament";
+ if(g_ctf)
+ gametypename = "ctf";
+ if(maxclients == 1)
+ gametypename = "single";
+ // we do not have the other types (oneflag, obelisk, harvester, teamtournament)
+ if(strstrofs(self.gametype, gametypename, 0) < 0)
+ return 1;
+ }
+
+ return 0;
+}
if(g_midair)
modifications = strcat(modifications, ", Midair");
if(g_pinata)
- modifications = strcat(modifications, ", Pinata");
+ modifications = strcat(modifications, ", Piñata");
if(g_weapon_stay && !g_cts)
modifications = strcat(modifications, ", Weapons stay");
if(g_bloodloss > 0)
- modifications = strcat(modifications, ", Bloodloss");
+ modifications = strcat(modifications, ", Blood loss");
if(g_jetpack)
modifications = strcat(modifications, ", Jet pack");
modifications = substring(modifications, 2, strlen(modifications) - 2);
if(headshot)
f *= q;
- if(DEATH_WEAPONOF(self.projectiledeathtype) == WEP_SNIPERRIFLE)
+ if(self.dmg_edge > 0)
{
if(headshot)
AnnounceTo(self.owner, "headshot");
#ifdef REGISTER_WEAPON
-REGISTER_WEAPON(CRYLINK, w_crylink, IT_CELLS, 6, WEP_FLAG_NORMAL | WEP_TYPE_SPLASH, BOT_PICKUP_RATING_MID, "crylink", "crylink", "Crylink");
+REGISTER_WEAPON(CRYLINK, w_crylink, IT_CELLS, 6, WEP_FLAG_NORMAL | WEP_FLAG_RELOADABLE | WEP_TYPE_SPLASH, BOT_PICKUP_RATING_MID, "crylink", "crylink", _("Crylink"));
#else
#ifdef SVQC
.float gravity;
if(e == world)
error("W_Crylink_CheckLinks: entity is world");
+ if(e.classname != "spike")
+ error("W_Crylink_CheckLinks: entity is not a spike");
p = e;
for(i = 0; i < 1000; ++i)
void W_Crylink_Dequeue_Raw(entity own, entity prev, entity me, entity next)
{
+ W_Crylink_CheckLinks(next);
if(me == own.crylink_lastgroup)
own.crylink_lastgroup = ((me == next) ? world : next);
prev.queuenext = next;
next.queueprev = prev;
+ if(me != next)
+ W_Crylink_CheckLinks(next);
}
void W_Crylink_Dequeue(entity e)
if(e == e.realowner.crylink_lastgroup)
e.realowner.crylink_lastgroup = world;
- RadiusDamage (e, e.realowner, autocvar_g_balance_crylink_primary_damage * a, autocvar_g_balance_crylink_primary_edgedamage * a, autocvar_g_balance_crylink_primary_radius, world, autocvar_g_balance_crylink_primary_force * a, e.projectiledeathtype, other);
+ if(e.projectiledeathtype & HITTYPE_SECONDARY)
+ RadiusDamage (e, e.realowner, autocvar_g_balance_crylink_secondary_damage * a, autocvar_g_balance_crylink_secondary_edgedamage * a, autocvar_g_balance_crylink_secondary_radius, world, autocvar_g_balance_crylink_secondary_force * a, e.projectiledeathtype, other);
+ else
+ RadiusDamage (e, e.realowner, autocvar_g_balance_crylink_primary_damage * a, autocvar_g_balance_crylink_primary_edgedamage * a, autocvar_g_balance_crylink_primary_radius, world, autocvar_g_balance_crylink_primary_force * a, e.projectiledeathtype, other);
if(e.queuenext != e2)
W_Crylink_LinkExplode(e.queuenext, e2);
// p->velocity -> HUEG away from center
}
+ W_Crylink_CheckLinks(e);
+
return targ_origin;
}
}
float a;
- a = 1 - (time - self.fade_time) * self.fade_rate;
+ a = bound(0, 1 - (time - self.fade_time) * self.fade_rate, 1);
finalhit = ((self.cnt <= 0) || (other.takedamage != DAMAGE_NO));
if(finalhit)
vector forward, right, up;
float maxdmg;
- if not(self.items & IT_UNLIMITED_WEAPON_AMMO)
- self.ammo_cells = self.ammo_cells - autocvar_g_balance_crylink_primary_ammo;
+ W_DecreaseAmmo(ammo_cells, autocvar_g_balance_crylink_primary_ammo, autocvar_g_balance_crylink_reload_ammo);
maxdmg = autocvar_g_balance_crylink_primary_damage*autocvar_g_balance_crylink_primary_shots;
maxdmg *= 1 + autocvar_g_balance_crylink_primary_bouncedamagefactor * autocvar_g_balance_crylink_primary_bounces;
counter = counter + 1;
}
self.crylink_lastgroup = proj;
+ W_Crylink_CheckLinks(proj);
}
void W_Crylink_Attack2 (void)
local entity proj, prevproj, firstproj;
float maxdmg;
- if not(self.items & IT_UNLIMITED_WEAPON_AMMO)
- self.ammo_cells = self.ammo_cells - autocvar_g_balance_crylink_secondary_ammo;
+ W_DecreaseAmmo(ammo_cells, autocvar_g_balance_crylink_secondary_ammo, autocvar_g_balance_crylink_reload_ammo);
maxdmg = autocvar_g_balance_crylink_secondary_damage*autocvar_g_balance_crylink_secondary_shots;
maxdmg *= 1 + autocvar_g_balance_crylink_secondary_bouncedamagefactor * autocvar_g_balance_crylink_secondary_bounces;
float w_crylink(float req)
{
+ float ammo_amount;
if (req == WR_AIM)
{
if (random() < 0.10)
}
else if (req == WR_THINK)
{
- if (self.BUTTON_ATCK)
+ if(autocvar_g_balance_crylink_reload_ammo && self.clip_load < min(autocvar_g_balance_crylink_primary_ammo, autocvar_g_balance_crylink_secondary_ammo)) // forced reload
+ weapon_action(self.weapon, WR_RELOAD);
+ else if (self.BUTTON_ATCK)
{
if (!self.crylink_waitrelease)
if (weapon_prepareattack(0, autocvar_g_balance_crylink_primary_refire))
}
self.crylink_waitrelease = 0;
if(!w_crylink(WR_CHECKAMMO1) && !w_crylink(WR_CHECKAMMO2))
+ if not(self.items & IT_UNLIMITED_WEAPON_AMMO)
{
// ran out of ammo!
self.cnt = WEP_CRYLINK;
precache_sound ("weapons/crylink_fire.wav");
precache_sound ("weapons/crylink_fire2.wav");
precache_sound ("weapons/crylink_linkjoin.wav");
+ //precache_sound ("weapons/reload.wav"); // until weapons have individual reload sounds, precache the reload sound somewhere else
}
else if (req == WR_SETUP)
+ {
weapon_setup(WEP_CRYLINK);
+ self.current_ammo = ammo_cells;
+ }
else if (req == WR_CHECKAMMO1)
{
// don't "run out of ammo" and switch weapons while waiting for release
if(self.crylink_lastgroup && self.crylink_waitrelease)
return TRUE;
- return self.ammo_cells >= autocvar_g_balance_crylink_primary_ammo;
+
+ ammo_amount = self.ammo_cells >= autocvar_g_balance_crylink_primary_ammo;
+ ammo_amount += self.weapon_load[WEP_CRYLINK] >= autocvar_g_balance_crylink_primary_ammo;
+ return ammo_amount;
}
else if (req == WR_CHECKAMMO2)
{
// don't "run out of ammo" and switch weapons while waiting for release
if(self.crylink_lastgroup && self.crylink_waitrelease)
return TRUE;
- return self.ammo_cells >= autocvar_g_balance_crylink_secondary_ammo;
+
+ ammo_amount = self.ammo_cells >= autocvar_g_balance_crylink_secondary_ammo;
+ ammo_amount += self.weapon_load[WEP_CRYLINK] >= autocvar_g_balance_crylink_secondary_ammo;
+ return ammo_amount;
+ }
+ else if (req == WR_RELOAD)
+ {
+ W_Reload(min(autocvar_g_balance_crylink_primary_ammo, autocvar_g_balance_crylink_secondary_ammo), autocvar_g_balance_crylink_reload_ammo, autocvar_g_balance_crylink_reload_time, "weapons/reload.wav");
}
return TRUE;
};
}
else if (req == WR_SUICIDEMESSAGE)
{
- w_deathtypestring = "%s succeeded at self-destructing themself with the Crylink";
+ w_deathtypestring = _("%s succeeded at self-destructing themself with the Crylink");
}
else if (req == WR_KILLMESSAGE)
{
if(w_deathtype & HITTYPE_BOUNCE)
- w_deathtypestring = "%s could not hide from %s's Crylink"; // unchecked: SPLASH (SECONDARY can't be)
+ w_deathtypestring = _("%s could not hide from %s's Crylink"); // unchecked: SPLASH (SECONDARY can't be)
else if(w_deathtype & HITTYPE_SPLASH)
- w_deathtypestring = "%s was too close to %s's Crylink"; // unchecked: SECONDARY
+ w_deathtypestring = _("%s was too close to %s's Crylink"); // unchecked: SECONDARY
else
- w_deathtypestring = "%s took a close look at %s's Crylink"; // unchecked: SECONDARY
+ w_deathtypestring = _("%s took a close look at %s's Crylink"); // unchecked: SECONDARY
}
return TRUE;
}
#ifdef REGISTER_WEAPON
-REGISTER_WEAPON(ELECTRO, w_electro, IT_CELLS, 5, WEP_FLAG_NORMAL | WEP_TYPE_SPLASH, BOT_PICKUP_RATING_MID, "electro", "electro", "Electro");
+REGISTER_WEAPON(ELECTRO, w_electro, IT_CELLS, 5, WEP_FLAG_NORMAL | WEP_FLAG_RELOADABLE | WEP_TYPE_SPLASH, BOT_PICKUP_RATING_MID, "electro", "electro", _("Electro"));
#else
#ifdef SVQC
.float electro_count;
{
local entity proj;
+ W_DecreaseAmmo(ammo_cells, autocvar_g_balance_electro_primary_ammo, autocvar_g_balance_electro_reload_ammo);
+
W_SetupShot_ProjectileSize (self, '0 0 -3', '0 0 -3', FALSE, 2, "weapons/electro_fire.wav", CHAN_WEAPON, autocvar_g_balance_electro_primary_damage);
pointparticles(particleeffectnum("electro_muzzleflash"), w_shotorg, w_shotdir * 1000, 1);
proj.projectiledeathtype = WEP_ELECTRO;
setorigin(proj, w_shotorg);
- if not(self.items & IT_UNLIMITED_WEAPON_AMMO)
- self.ammo_cells = self.ammo_cells - autocvar_g_balance_electro_primary_ammo;
proj.movetype = MOVETYPE_FLY;
W_SETUPPROJECTILEVELOCITY(proj, g_balance_electro_primary);
proj.angles = vectoangles(proj.velocity);
{
local entity proj;
+ W_DecreaseAmmo(ammo_cells, autocvar_g_balance_electro_secondary_ammo, autocvar_g_balance_electro_reload_ammo);
+
W_SetupShot_ProjectileSize (self, '0 0 -4', '0 0 -4', FALSE, 2, "weapons/electro_fire2.wav", CHAN_WEAPON, autocvar_g_balance_electro_secondary_damage);
w_shotdir = v_forward; // no TrueAim for grenades please
proj.projectiledeathtype = WEP_ELECTRO | HITTYPE_SECONDARY;
setorigin(proj, w_shotorg);
- if not(self.items & IT_UNLIMITED_WEAPON_AMMO)
- self.ammo_cells = self.ammo_cells - autocvar_g_balance_electro_secondary_ammo;
//proj.glow_size = 50;
//proj.glow_color = 45;
proj.movetype = MOVETYPE_BOUNCE;
CSQCProjectile(proj, TRUE, PROJECTILE_ELECTRO, FALSE); // no culling, it has sound
other = proj; MUTATOR_CALLHOOK(EditProjectile);
- }
+}
.vector hook_start, hook_end;
float lgbeam_send(entity to, float sf)
}
.entity lgbeam;
.float prevlgfire;
+float lgbeam_checkammo()
+{
+ if(self.owner.items & IT_UNLIMITED_WEAPON_AMMO)
+ return TRUE;
+ else if(autocvar_g_balance_electro_reload_ammo)
+ return self.owner.clip_load > 0;
+ else
+ return self.owner.ammo_cells > 0;
+}
+
void lgbeam_think()
{
- self.owner.prevlgfire = time;
- if (self != self.owner.lgbeam)
+ entity owner_player;
+ owner_player = self.owner;
+
+ owner_player.prevlgfire = time;
+ if (self != owner_player.lgbeam)
{
remove(self);
return;
}
- if (self.owner.weaponentity.state != WS_INUSE || (self.owner.ammo_cells <= 0 && !(self.owner.items & IT_UNLIMITED_WEAPON_AMMO)) || self.owner.deadflag != DEAD_NO || !self.owner.BUTTON_ATCK || (g_freezetag && self.owner.freezetag_frozen))
+
+ if (owner_player.weaponentity.state != WS_INUSE || !lgbeam_checkammo() || owner_player.deadflag != DEAD_NO || !owner_player.BUTTON_ATCK || owner_player.freezetag_frozen)
{
- if(self == self.owner.lgbeam)
- self.owner.lgbeam = world;
+ if(self == owner_player.lgbeam)
+ owner_player.lgbeam = world;
remove(self);
return;
}
self.nextthink = time;
- makevectors(self.owner.v_angle);
+ makevectors(owner_player.v_angle);
float dt, f;
dt = frametime;
- if not(self.owner.items & IT_UNLIMITED_WEAPON_AMMO)
+
+ // if this weapon is reloadable, decrease its load. Else decrease the player's ammo
+ if not(owner_player.items & IT_UNLIMITED_WEAPON_AMMO)
{
if(autocvar_g_balance_electro_primary_ammo)
{
- dt = min(dt, self.owner.ammo_cells / autocvar_g_balance_electro_primary_ammo);
- self.owner.ammo_cells = max(0, self.owner.ammo_cells - autocvar_g_balance_electro_primary_ammo * frametime);
+ if(autocvar_g_balance_electro_reload_ammo)
+ {
+ dt = min(dt, owner_player.clip_load / autocvar_g_balance_electro_primary_ammo);
+ owner_player.clip_load = max(0, owner_player.clip_load - autocvar_g_balance_electro_primary_ammo * frametime);
+ owner_player.weapon_load[WEP_ELECTRO] = owner_player.clip_load;
+ }
+ else
+ {
+ dt = min(dt, owner_player.ammo_cells / autocvar_g_balance_electro_primary_ammo);
+ owner_player.ammo_cells = max(0, owner_player.ammo_cells - autocvar_g_balance_electro_primary_ammo * frametime);
+ }
}
}
- W_SetupShot_Range(self.owner, TRUE, 0, "", 0, autocvar_g_balance_electro_primary_damage * dt, autocvar_g_balance_electro_primary_range);
- WarpZone_traceline_antilag(self.owner, w_shotorg, w_shotend, MOVE_NORMAL, self.owner, ANTILAG_LATENCY(self.owner));
+ W_SetupShot_Range(owner_player, TRUE, 0, "", 0, autocvar_g_balance_electro_primary_damage * dt, autocvar_g_balance_electro_primary_range);
+ WarpZone_traceline_antilag(owner_player, w_shotorg, w_shotend, MOVE_NORMAL, owner_player, ANTILAG_LATENCY(owner_player));
// apply the damage
if(trace_ent)
f = ExponentialFalloff(autocvar_g_balance_electro_primary_falloff_mindist, autocvar_g_balance_electro_primary_falloff_maxdist, autocvar_g_balance_electro_primary_falloff_halflifedist, vlen(WarpZone_UnTransformOrigin(WarpZone_trace_transform, trace_endpos) - w_shotorg));
- if(accuracy_isgooddamage(self.owner, trace_ent))
- accuracy_add(self.owner, WEP_ELECTRO, 0, autocvar_g_balance_electro_primary_damage * dt * f);
- Damage (trace_ent, self.owner, self.owner, autocvar_g_balance_electro_primary_damage * dt * f, WEP_ELECTRO, trace_endpos, force * dt);
+ if(accuracy_isgooddamage(owner_player, trace_ent))
+ accuracy_add(owner_player, WEP_ELECTRO, 0, autocvar_g_balance_electro_primary_damage * dt * f);
+ Damage (trace_ent, owner_player, owner_player, autocvar_g_balance_electro_primary_damage * dt * f, WEP_ELECTRO, trace_endpos, force * dt);
}
- W_Plasma_TriggerCombo(trace_endpos, autocvar_g_balance_electro_primary_comboradius, self.owner);
+ W_Plasma_TriggerCombo(trace_endpos, autocvar_g_balance_electro_primary_comboradius, owner_player);
// draw effect
if(w_shotorg != self.hook_start)
.float BUTTON_ATCK_prev;
float w_electro(float req)
{
+ float ammo_amount;
if (req == WR_AIM)
{
self.BUTTON_ATCK=FALSE;
}
else if (req == WR_THINK)
{
+ if(autocvar_g_balance_electro_reload_ammo) // forced reload
+ {
+ if(autocvar_g_balance_electro_lightning)
+ {
+ if(self.clip_load > 0)
+ ammo_amount = 1;
+ }
+ else if(self.clip_load >= autocvar_g_balance_electro_primary_ammo)
+ ammo_amount = 1;
+ if(self.clip_load >= autocvar_g_balance_electro_secondary_ammo)
+ ammo_amount += 1;
+
+ if(!ammo_amount)
+ {
+ weapon_action(self.weapon, WR_RELOAD);
+ return FALSE;
+ }
+ }
if (self.BUTTON_ATCK)
{
if(autocvar_g_balance_electro_lightning)
}
self.BUTTON_ATCK_prev = 0;
}
- }
- if (self.BUTTON_ATCK2)
- if (time >= self.electro_secondarytime)
- if (weapon_prepareattack(1, autocvar_g_balance_electro_secondary_refire))
- {
- W_Electro_Attack2();
- self.electro_count = autocvar_g_balance_electro_secondary_count;
- weapon_thinkf(WFRAME_FIRE2, autocvar_g_balance_electro_secondary_animtime, w_electro_checkattack);
- self.electro_secondarytime = time + autocvar_g_balance_electro_secondary_refire2 * W_WeaponRateFactor();
+ if (self.BUTTON_ATCK2)
+ {
+ if (time >= self.electro_secondarytime)
+ if (weapon_prepareattack(1, autocvar_g_balance_electro_secondary_refire))
+ {
+ W_Electro_Attack2();
+ self.electro_count = autocvar_g_balance_electro_secondary_count;
+ weapon_thinkf(WFRAME_FIRE2, autocvar_g_balance_electro_secondary_animtime, w_electro_checkattack);
+ self.electro_secondarytime = time + autocvar_g_balance_electro_secondary_refire2 * W_WeaponRateFactor();
+ }
+ }
}
}
else if (req == WR_PRECACHE)
precache_sound ("weapons/electro_fire2.wav");
precache_sound ("weapons/electro_impact.wav");
precache_sound ("weapons/electro_impact_combo.wav");
+ //precache_sound ("weapons/reload.wav"); // until weapons have individual reload sounds, precache the reload sound somewhere else
if(autocvar_g_balance_electro_lightning)
{
precache_sound ("weapons/lgbeam_fire.wav");
}
}
else if (req == WR_SETUP)
+ {
weapon_setup(WEP_ELECTRO);
+ self.current_ammo = ammo_cells;
+ }
else if (req == WR_CHECKAMMO1)
{
if(autocvar_g_balance_electro_lightning)
- return !autocvar_g_balance_electro_primary_ammo || (self.ammo_cells > 0);
+ {
+ if(!autocvar_g_balance_electro_primary_ammo)
+ ammo_amount = 1;
+ else
+ ammo_amount = self.ammo_cells > 0;
+ ammo_amount += self.weapon_load[WEP_ELECTRO] > 0;
+ }
else
- return self.ammo_cells >= autocvar_g_balance_electro_primary_ammo;
+ {
+ ammo_amount = self.ammo_cells >= autocvar_g_balance_electro_primary_ammo;
+ ammo_amount += self.weapon_load[WEP_ELECTRO] >= autocvar_g_balance_electro_primary_ammo;
+ }
+ return ammo_amount;
}
else if (req == WR_CHECKAMMO2)
- return self.ammo_cells >= autocvar_g_balance_electro_secondary_ammo;
+ {
+ ammo_amount = self.ammo_cells >= autocvar_g_balance_electro_secondary_ammo;
+ ammo_amount += self.weapon_load[WEP_ELECTRO] >= autocvar_g_balance_electro_secondary_ammo;
+ return ammo_amount;
+ }
else if (req == WR_RESETPLAYER)
{
self.electro_secondarytime = time;
}
+ else if (req == WR_RELOAD)
+ {
+ W_Reload(min(autocvar_g_balance_electro_primary_ammo, autocvar_g_balance_electro_secondary_ammo), autocvar_g_balance_electro_reload_ammo, autocvar_g_balance_electro_reload_time, "weapons/reload.wav");
+ }
return TRUE;
};
#endif
else if (req == WR_SUICIDEMESSAGE)
{
if(w_deathtype & HITTYPE_SECONDARY)
- w_deathtypestring = "%s could not remember where they put plasma";
+ w_deathtypestring = _("%s could not remember where they put plasma");
else
- w_deathtypestring = "%s played with plasma";
+ w_deathtypestring = _("%s played with plasma");
}
else if (req == WR_KILLMESSAGE)
{
if(w_deathtype & HITTYPE_SECONDARY)
{
if(w_deathtype & HITTYPE_SPLASH) // unchecked: BOUNCE
- w_deathtypestring = "%s just noticed %s's blue ball";
+ w_deathtypestring = _("%s just noticed %s's blue ball");
else // unchecked: BOUNCE
- w_deathtypestring = "%s got in touch with %s's blue ball";
+ w_deathtypestring = _("%s got in touch with %s's blue ball");
}
else
{
if(w_deathtype & HITTYPE_BOUNCE) // combo
- w_deathtypestring = "%s felt the electrifying air of %s's combo";
+ w_deathtypestring = _("%s felt the electrifying air of %s's combo");
else if(w_deathtype & HITTYPE_SPLASH)
- w_deathtypestring = "%s got too close to %s's blue beam";
+ w_deathtypestring = _("%s got too close to %s's blue beam");
else
- w_deathtypestring = "%s was blasted by %s's blue beam";
+ w_deathtypestring = _("%s was blasted by %s's blue beam");
}
}
return TRUE;
#ifdef REGISTER_WEAPON
-REGISTER_WEAPON(FIREBALL, w_fireball, IT_FUEL, 9, WEP_TYPE_SPLASH, BOT_PICKUP_RATING_MID, "fireball", "fireball", "Fireball");
+REGISTER_WEAPON(FIREBALL, w_fireball, IT_FUEL, 9, WEP_FLAG_RELOADABLE | WEP_TYPE_SPLASH, BOT_PICKUP_RATING_MID, "fireball", "fireball", _("Fireball"));
#else
#ifdef SVQC
.float bot_primary_fireballmooth; // whatever a mooth is
void W_Fireball_Attack1_Frame0()
{
- if not(self.items & IT_UNLIMITED_WEAPON_AMMO)
- self.ammo_fuel = self.ammo_fuel - autocvar_g_balance_fireball_primary_ammo;
+ W_DecreaseAmmo(ammo_fuel, autocvar_g_balance_fireball_primary_ammo, autocvar_g_balance_fireball_reload_ammo);
W_Fireball_AttackEffect(0, '-1.25 -3.75 0');
sound (self, CHAN_WEAPON, "weapons/fireball_prefire2.wav", VOL_BASE, ATTN_NORM);
vector f_diff;
float c;
- if not(self.items & IT_UNLIMITED_WEAPON_AMMO)
- self.ammo_fuel = self.ammo_fuel - autocvar_g_balance_fireball_secondary_ammo;
+ W_DecreaseAmmo(ammo_fuel, autocvar_g_balance_fireball_secondary_ammo, autocvar_g_balance_fireball_reload_ammo);
c = mod(self.bulletcounter, 4);
switch(c)
float w_fireball(float req)
{
+ float ammo_amount;
if (req == WR_AIM)
{
self.BUTTON_ATCK = FALSE;
}
else if (req == WR_THINK)
{
- if (self.BUTTON_ATCK)
- if (time >= self.fireball_primarytime)
- if (weapon_prepareattack(0, autocvar_g_balance_fireball_primary_refire))
+ if(autocvar_g_balance_fireball_reload_ammo && self.clip_load < min(autocvar_g_balance_fireball_primary_ammo, autocvar_g_balance_fireball_secondary_ammo)) // forced reload
+ weapon_action(self.weapon, WR_RELOAD);
+ else if (self.BUTTON_ATCK)
{
- W_Fireball_Attack1_Frame0();
- self.fireball_primarytime = time + autocvar_g_balance_fireball_primary_refire2;
+ if (time >= self.fireball_primarytime)
+ if (weapon_prepareattack(0, autocvar_g_balance_fireball_primary_refire))
+ {
+ W_Fireball_Attack1_Frame0();
+ self.fireball_primarytime = time + autocvar_g_balance_fireball_primary_refire2;
+ }
}
- if (self.BUTTON_ATCK2)
- if (weapon_prepareattack(1, autocvar_g_balance_fireball_secondary_refire))
+ else if (self.BUTTON_ATCK2)
{
- W_Fireball_Attack2();
- weapon_thinkf(WFRAME_FIRE2, autocvar_g_balance_fireball_secondary_animtime, w_ready);
+ if (weapon_prepareattack(1, autocvar_g_balance_fireball_secondary_refire))
+ {
+ W_Fireball_Attack2();
+ weapon_thinkf(WFRAME_FIRE2, autocvar_g_balance_fireball_secondary_animtime, w_ready);
+ }
}
}
else if (req == WR_PRECACHE)
precache_sound ("weapons/fireball_fire.wav");
precache_sound ("weapons/fireball_fire2.wav");
precache_sound ("weapons/fireball_prefire2.wav");
+ //precache_sound ("weapons/reload.wav"); // until weapons have individual reload sounds, precache the reload sound somewhere else
}
else if (req == WR_SETUP)
+ {
weapon_setup(WEP_FIREBALL);
+ self.current_ammo = ammo_fuel;
+ }
else if (req == WR_CHECKAMMO1)
- return self.ammo_fuel >= autocvar_g_balance_fireball_primary_ammo;
+ {
+ ammo_amount = self.ammo_fuel >= autocvar_g_balance_fireball_primary_ammo;
+ ammo_amount += self.weapon_load[WEP_FIREBALL] >= autocvar_g_balance_fireball_primary_ammo;
+ return ammo_amount;
+ }
else if (req == WR_CHECKAMMO2)
- return self.ammo_fuel >= autocvar_g_balance_fireball_secondary_ammo;
+ {
+ ammo_amount = self.ammo_fuel >= autocvar_g_balance_fireball_secondary_ammo;
+ ammo_amount += self.weapon_load[WEP_FIREBALL] >= autocvar_g_balance_fireball_secondary_ammo;
+ return ammo_amount;
+ }
else if (req == WR_RESETPLAYER)
{
self.fireball_primarytime = time;
}
+ else if (req == WR_RELOAD)
+ {
+ // fuel can be a non-whole number, which brakes stuff here when between 0 and 1
+ if(self.ammo_fuel < 1)
+ self.ammo_fuel = 0;
+
+ W_Reload(min(autocvar_g_balance_fireball_primary_ammo, autocvar_g_balance_fireball_secondary_ammo), autocvar_g_balance_fireball_reload_ammo, autocvar_g_balance_fireball_reload_time, "weapons/reload.wav");
+ }
return TRUE;
};
#endif
else if (req == WR_SUICIDEMESSAGE)
{
if(w_deathtype & HITTYPE_SECONDARY)
- w_deathtypestring = "%s forgot about some firemine";
+ w_deathtypestring = _("%s forgot about some firemine");
else
- w_deathtypestring = "%s should have used a smaller gun";
+ w_deathtypestring = _("%s should have used a smaller gun");
}
else if (req == WR_KILLMESSAGE)
{
if(w_deathtype & HITTYPE_SECONDARY)
{
if(w_deathtype & HITTYPE_HEADSHOT)
- w_deathtypestring = "%s tried to catch %s's firemine";
+ w_deathtypestring = _("%s tried to catch %s's firemine");
else
- w_deathtypestring = "%s fatefully ignored %s's firemine";
+ w_deathtypestring = _("%s fatefully ignored %s's firemine");
}
else
{
if(w_deathtype & HITTYPE_BOUNCE)
{
if(w_deathtype & HITTYPE_SPLASH) // BFG effect
- w_deathtypestring = "%s could not hide from %s's fireball";
+ w_deathtypestring = _("%s could not hide from %s's fireball");
else // laser
- w_deathtypestring = "%s saw the pretty lights of %s's fireball";
+ w_deathtypestring = _("%s saw the pretty lights of %s's fireball");
}
else if(w_deathtype & HITTYPE_SPLASH)
- w_deathtypestring = "%s got too close to %s's fireball";
+ w_deathtypestring = _("%s got too close to %s's fireball");
else
- w_deathtypestring = "%s tasted %s's fireball";
+ w_deathtypestring = _("%s tasted %s's fireball");
}
}
return TRUE;
#ifdef REGISTER_WEAPON
-REGISTER_WEAPON(GRENADE_LAUNCHER, w_glauncher, IT_ROCKETS, 4, WEP_FLAG_NORMAL | WEP_FLAG_CANCLIMB | WEP_TYPE_SPLASH, BOT_PICKUP_RATING_MID, "gl", "grenadelauncher", "Mortar");
+REGISTER_WEAPON(GRENADE_LAUNCHER, w_glauncher, IT_ROCKETS, 4, WEP_FLAG_NORMAL | WEP_FLAG_RELOADABLE | WEP_FLAG_CANCLIMB | WEP_TYPE_SPLASH, BOT_PICKUP_RATING_MID, "gl", "grenadelauncher", _("Mortar"))
#else
#ifdef SVQC
.float gl_detonate_later;
{
local entity gren;
- if not(self.items & IT_UNLIMITED_WEAPON_AMMO)
- self.ammo_rockets = self.ammo_rockets - autocvar_g_balance_grenadelauncher_primary_ammo;
+ W_DecreaseAmmo(ammo_rockets, autocvar_g_balance_grenadelauncher_primary_ammo, autocvar_g_balance_grenadelauncher_reload_ammo);
+
W_SetupShot_ProjectileSize (self, '-3 -3 -3', '3 3 3', FALSE, 4, "weapons/grenade_fire.wav", CHAN_WEAPON, autocvar_g_balance_grenadelauncher_primary_damage);
w_shotdir = v_forward; // no TrueAim for grenades please
{
local entity gren;
- if not(self.items & IT_UNLIMITED_WEAPON_AMMO)
- self.ammo_rockets = self.ammo_rockets - autocvar_g_balance_grenadelauncher_secondary_ammo;
+ W_DecreaseAmmo(ammo_rockets, autocvar_g_balance_grenadelauncher_secondary_ammo, autocvar_g_balance_grenadelauncher_reload_ammo);
+
W_SetupShot_ProjectileSize (self, '-3 -3 -3', '3 3 3', FALSE, 4, "weapons/grenade_fire.wav", CHAN_WEAPON, autocvar_g_balance_grenadelauncher_secondary_damage);
w_shotdir = v_forward; // no TrueAim for grenades please
{
entity nade;
float nadefound;
+ float ammo_amount;
if (req == WR_AIM)
{
}
else if (req == WR_THINK)
{
- if (self.BUTTON_ATCK)
- if (weapon_prepareattack(0, autocvar_g_balance_grenadelauncher_primary_refire))
+ if(autocvar_g_balance_grenadelauncher_reload_ammo && self.clip_load < min(autocvar_g_balance_grenadelauncher_primary_ammo, autocvar_g_balance_grenadelauncher_secondary_ammo)) // forced reload
+ weapon_action(self.weapon, WR_RELOAD);
+ else if (self.BUTTON_ATCK)
{
- W_Grenade_Attack();
- weapon_thinkf(WFRAME_FIRE1, autocvar_g_balance_grenadelauncher_primary_animtime, w_ready);
+ if (weapon_prepareattack(0, autocvar_g_balance_grenadelauncher_primary_refire))
+ {
+ W_Grenade_Attack();
+ weapon_thinkf(WFRAME_FIRE1, autocvar_g_balance_grenadelauncher_primary_animtime, w_ready);
+ }
}
- if (self.BUTTON_ATCK2)
+ else if (self.BUTTON_ATCK2)
{
if (cvar("g_balance_grenadelauncher_secondary_remote_detonateprimary"))
{
precache_sound ("weapons/grenade_bounce6.wav");
precache_sound ("weapons/grenade_stick.wav");
precache_sound ("weapons/grenade_fire.wav");
+ //precache_sound ("weapons/reload.wav"); // until weapons have individual reload sounds, precache the reload sound somewhere else
}
else if (req == WR_SETUP)
+ {
weapon_setup(WEP_GRENADE_LAUNCHER);
+ self.current_ammo = ammo_rockets;
+ }
else if (req == WR_CHECKAMMO1)
- return self.ammo_rockets >= autocvar_g_balance_grenadelauncher_primary_ammo;
+ {
+ ammo_amount = self.ammo_rockets >= autocvar_g_balance_grenadelauncher_primary_ammo;
+ ammo_amount += self.weapon_load[WEP_GRENADE_LAUNCHER] >= autocvar_g_balance_grenadelauncher_primary_ammo;
+ return ammo_amount;
+ }
else if (req == WR_CHECKAMMO2)
- return self.ammo_rockets >= autocvar_g_balance_grenadelauncher_secondary_ammo;
+ {
+ ammo_amount = self.ammo_rockets >= autocvar_g_balance_grenadelauncher_secondary_ammo;
+ ammo_amount += self.weapon_load[WEP_GRENADE_LAUNCHER] >= autocvar_g_balance_grenadelauncher_secondary_ammo;
+ return ammo_amount;
+ }
+ else if (req == WR_RELOAD)
+ {
+ W_Reload(min(autocvar_g_balance_grenadelauncher_primary_ammo, autocvar_g_balance_grenadelauncher_secondary_ammo), autocvar_g_balance_grenadelauncher_reload_ammo, autocvar_g_balance_grenadelauncher_reload_time, "weapons/reload.wav");
+ }
return TRUE;
};
#endif
else if (req == WR_SUICIDEMESSAGE)
{
if(w_deathtype & HITTYPE_SECONDARY)
- w_deathtypestring = "%s tried out his own grenade";
+ w_deathtypestring = _("%s tried out his own grenade");
else
- w_deathtypestring = "%s detonated";
+ w_deathtypestring = _("%s detonated");
}
else if (req == WR_KILLMESSAGE)
{
if(w_deathtype & HITTYPE_SPLASH)
if(w_deathtype & HITTYPE_BOUNCE) // (must be secondary then)
- w_deathtypestring = "%s didn't see %s's grenade";
+ w_deathtypestring = _("%s didn't see %s's grenade");
else // unchecked: SECONDARY
- w_deathtypestring = "%s almost dodged %s's grenade";
+ w_deathtypestring = _("%s almost dodged %s's grenade");
else // unchecked: SECONDARY, BOUNCE
- w_deathtypestring = "%s ate %s's grenade";
+ w_deathtypestring = _("%s ate %s's grenade");
}
return TRUE;
}
#ifdef REGISTER_WEAPON
-REGISTER_WEAPON(HAGAR, w_hagar, IT_ROCKETS, 8, WEP_FLAG_NORMAL | WEP_FLAG_CANCLIMB | WEP_TYPE_SPLASH, BOT_PICKUP_RATING_MID, "hagar", "hagar", "Hagar");
+REGISTER_WEAPON(HAGAR, w_hagar, IT_ROCKETS, 8, WEP_FLAG_NORMAL | WEP_FLAG_RELOADABLE | WEP_FLAG_CANCLIMB | WEP_TYPE_SPLASH, BOT_PICKUP_RATING_MID, "hagar", "hagar", _("Hagar"))
#else
#ifdef SVQC
// NO bounce protection, as bounces are limited!
+
void W_Hagar_Explode (void)
{
self.event_damage = SUB_Null;
{
local entity missile;
- if not(self.items & IT_UNLIMITED_WEAPON_AMMO)
- self.ammo_rockets = self.ammo_rockets - autocvar_g_balance_hagar_primary_ammo;
+ W_DecreaseAmmo(ammo_rockets, autocvar_g_balance_hagar_primary_ammo, autocvar_g_balance_hagar_reload_ammo);
+
W_SetupShot (self, FALSE, 2, "weapons/hagar_fire.wav", CHAN_WEAPON, autocvar_g_balance_hagar_primary_damage);
pointparticles(particleeffectnum("hagar_muzzleflash"), w_shotorg, w_shotdir * 1000, 1);
{
local entity missile;
- if not(self.items & IT_UNLIMITED_WEAPON_AMMO)
- self.ammo_rockets = self.ammo_rockets - autocvar_g_balance_hagar_secondary_ammo;
+ W_DecreaseAmmo(ammo_rockets, autocvar_g_balance_hagar_secondary_ammo, autocvar_g_balance_hagar_reload_ammo);
+
W_SetupShot (self, FALSE, 2, "weapons/hagar_fire.wav", CHAN_WEAPON, autocvar_g_balance_hagar_secondary_damage);
pointparticles(particleeffectnum("hagar_muzzleflash"), w_shotorg, w_shotdir * 1000, 1);
float w_hagar(float req)
{
+ float ammo_amount;
if (req == WR_AIM)
if (random()>0.15)
self.BUTTON_ATCK = bot_aim(autocvar_g_balance_hagar_primary_speed, 0, autocvar_g_balance_hagar_primary_lifetime, FALSE);
}
else if (req == WR_THINK)
{
- if (self.BUTTON_ATCK)
- if (weapon_prepareattack(0, autocvar_g_balance_hagar_primary_refire))
+ if(autocvar_g_balance_hagar_reload_ammo && self.clip_load < min(autocvar_g_balance_hagar_primary_ammo, autocvar_g_balance_hagar_secondary_ammo)) // forced reload
+ weapon_action(self.weapon, WR_RELOAD);
+ else if (self.BUTTON_ATCK)
{
- W_Hagar_Attack();
- weapon_thinkf(WFRAME_FIRE1, autocvar_g_balance_hagar_primary_refire, w_ready);
+ if (weapon_prepareattack(0, autocvar_g_balance_hagar_primary_refire))
+ {
+ W_Hagar_Attack();
+ weapon_thinkf(WFRAME_FIRE1, autocvar_g_balance_hagar_primary_refire, w_ready);
+ }
}
- if (self.BUTTON_ATCK2 && autocvar_g_balance_hagar_secondary)
- if (weapon_prepareattack(1, autocvar_g_balance_hagar_secondary_refire))
+ else if (self.BUTTON_ATCK2 && autocvar_g_balance_hagar_secondary)
{
- W_Hagar_Attack2();
- weapon_thinkf(WFRAME_FIRE2, autocvar_g_balance_hagar_secondary_refire, w_ready);
+ if (weapon_prepareattack(1, autocvar_g_balance_hagar_secondary_refire))
+ {
+ W_Hagar_Attack2();
+ weapon_thinkf(WFRAME_FIRE2, autocvar_g_balance_hagar_secondary_refire, w_ready);
+ }
}
}
else if (req == WR_PRECACHE)
precache_model ("models/weapons/v_hagar.md3");
precache_model ("models/weapons/h_hagar.iqm");
precache_sound ("weapons/hagar_fire.wav");
+ //precache_sound ("weapons/reload.wav"); // until weapons have individual reload sounds, precache the reload sound somewhere else
}
else if (req == WR_SETUP)
+ {
weapon_setup(WEP_HAGAR);
+ self.current_ammo = ammo_rockets;
+ }
else if (req == WR_CHECKAMMO1)
- return self.ammo_rockets >= autocvar_g_balance_hagar_primary_ammo;
+ {
+ ammo_amount = self.ammo_rockets >= autocvar_g_balance_hagar_primary_ammo;
+ ammo_amount += self.weapon_load[WEP_HAGAR] >= autocvar_g_balance_hagar_primary_ammo;
+ return ammo_amount;
+ }
else if (req == WR_CHECKAMMO2)
- return self.ammo_rockets >= autocvar_g_balance_hagar_secondary_ammo;
+ {
+ ammo_amount = self.ammo_rockets >= autocvar_g_balance_hagar_secondary_ammo;
+ ammo_amount += self.weapon_load[WEP_HAGAR] >= autocvar_g_balance_hagar_secondary_ammo;
+ return ammo_amount;
+ }
+ else if (req == WR_RELOAD)
+ {
+ W_Reload(min(autocvar_g_balance_hagar_primary_ammo, autocvar_g_balance_hagar_secondary_ammo), autocvar_g_balance_hagar_reload_ammo, autocvar_g_balance_hagar_reload_time, "weapons/reload.wav");
+ }
return TRUE;
};
#endif
precache_sound("weapons/hagexp3.wav");
}
else if (req == WR_SUICIDEMESSAGE)
- w_deathtypestring = "%s played with tiny rockets";
+ w_deathtypestring = _("%s played with tiny rockets");
else if (req == WR_KILLMESSAGE)
{
if(w_deathtype & HITTYPE_BOUNCE) // must be secondary; unchecked: SPLASH
- w_deathtypestring = "%s hoped %s's missiles wouldn't bounce";
+ w_deathtypestring = _("%s hoped %s's missiles wouldn't bounce");
else // unchecked: SPLASH, SECONDARY
- w_deathtypestring = "%s was pummeled by %s";
+ w_deathtypestring = _("%s was pummeled by %s");
}
return TRUE;
}
#ifdef REGISTER_WEAPON
-REGISTER_WEAPON(HLAC, w_hlac, IT_CELLS, 6, WEP_FLAG_NORMAL | WEP_TYPE_SPLASH, BOT_PICKUP_RATING_MID, "hlac", "hlac", "Heavy Laser Assault Cannon");
+REGISTER_WEAPON(HLAC, w_hlac, IT_CELLS, 6, WEP_FLAG_RELOADABLE | WEP_TYPE_SPLASH, BOT_PICKUP_RATING_MID, "hlac", "hlac", _("Heavy Laser Assault Cannon"))
#else
#ifdef SVQC
local entity missile;
float spread;
- if not(self.items & IT_UNLIMITED_WEAPON_AMMO)
- {
- self.ammo_cells = self.ammo_cells - autocvar_g_balance_hlac_primary_ammo;
- }
+ W_DecreaseAmmo(ammo_cells, autocvar_g_balance_hlac_primary_ammo, autocvar_g_balance_hlac_reload_ammo);
spread = autocvar_g_balance_hlac_primary_spread_min + (autocvar_g_balance_hlac_primary_spread_add * self.misc_bulletcounter);
spread = min(spread,autocvar_g_balance_hlac_primary_spread_max);
{
float i;
- if not(self.items & IT_UNLIMITED_WEAPON_AMMO)
- {
- self.ammo_cells = self.ammo_cells - autocvar_g_balance_hlac_secondary_ammo;
- }
+ W_DecreaseAmmo(ammo_cells, autocvar_g_balance_hlac_secondary_ammo, autocvar_g_balance_hlac_reload_ammo);
for(i=autocvar_g_balance_hlac_secondary_shots;i>0;--i)
W_HLAC_Attack2f();
if (self.BUTTON_ATCK)
{
if (!weapon_action(self.weapon, WR_CHECKAMMO1))
+ if not(self.items & IT_UNLIMITED_WEAPON_AMMO)
{
W_SwitchWeapon_Force(self, w_getbestweapon(self));
w_ready();
float w_hlac(float req)
{
+ float ammo_amount;
if (req == WR_AIM)
self.BUTTON_ATCK = bot_aim(autocvar_g_balance_hlac_primary_speed, 0, autocvar_g_balance_hlac_primary_lifetime, FALSE);
else if (req == WR_THINK)
{
- if (self.BUTTON_ATCK)
- if (weapon_prepareattack(0, autocvar_g_balance_hlac_primary_refire))
+ if(autocvar_g_balance_hlac_reload_ammo && self.clip_load < min(autocvar_g_balance_hlac_primary_ammo, autocvar_g_balance_hlac_secondary_ammo)) // forced reload
+ weapon_action(self.weapon, WR_RELOAD);
+ else if (self.BUTTON_ATCK)
{
- self.misc_bulletcounter = 0;
- W_HLAC_Attack();
- weapon_thinkf(WFRAME_FIRE1, autocvar_g_balance_hlac_primary_refire, HLAC_fire1_02);
+ if (weapon_prepareattack(0, autocvar_g_balance_hlac_primary_refire))
+ {
+ self.misc_bulletcounter = 0;
+ W_HLAC_Attack();
+ weapon_thinkf(WFRAME_FIRE1, autocvar_g_balance_hlac_primary_refire, HLAC_fire1_02);
+ }
}
- if (self.BUTTON_ATCK2 && autocvar_g_balance_hlac_secondary)
- if (weapon_prepareattack(1, autocvar_g_balance_hlac_secondary_refire))
+ else if (self.BUTTON_ATCK2 && autocvar_g_balance_hlac_secondary)
{
- W_HLAC_Attack2();
- weapon_thinkf(WFRAME_FIRE2, autocvar_g_balance_hlac_secondary_animtime, w_ready);
+ if (weapon_prepareattack(1, autocvar_g_balance_hlac_secondary_refire))
+ {
+ W_HLAC_Attack2();
+ weapon_thinkf(WFRAME_FIRE2, autocvar_g_balance_hlac_secondary_animtime, w_ready);
+ }
}
-
}
else if (req == WR_PRECACHE)
{
precache_model ("models/weapons/v_hlac.md3");
precache_model ("models/weapons/h_hlac.iqm");
precache_sound ("weapons/lasergun_fire.wav");
+ //precache_sound ("weapons/reload.wav"); // until weapons have individual reload sounds, precache the reload sound somewhere else
}
else if (req == WR_SETUP)
+ {
weapon_setup(WEP_HLAC);
+ self.current_ammo = ammo_cells;
+ }
else if (req == WR_CHECKAMMO1)
- return self.ammo_cells >= autocvar_g_balance_hlac_primary_ammo;
+ {
+ ammo_amount = self.ammo_cells >= autocvar_g_balance_hlac_primary_ammo;
+ ammo_amount += self.weapon_load[WEP_HLAC] >= autocvar_g_balance_hlac_primary_ammo;
+ return ammo_amount;
+ }
else if (req == WR_CHECKAMMO2)
- return self.ammo_cells >= autocvar_g_balance_hlac_secondary_ammo;
+ {
+ ammo_amount = self.ammo_cells >= autocvar_g_balance_hlac_secondary_ammo;
+ ammo_amount += self.weapon_load[WEP_HLAC] >= autocvar_g_balance_hlac_secondary_ammo;
+ return ammo_amount;
+ }
+ else if (req == WR_RELOAD)
+ {
+ W_Reload(min(autocvar_g_balance_hlac_primary_ammo, autocvar_g_balance_hlac_secondary_ammo), autocvar_g_balance_hlac_reload_ammo, autocvar_g_balance_hlac_reload_time, "weapons/reload.wav");
+ }
return TRUE;
};
#endif
precache_sound("weapons/laserimpact.wav");
}
else if (req == WR_SUICIDEMESSAGE)
- w_deathtypestring = "%s should have used a smaller gun";
+ w_deathtypestring = _("%s should have used a smaller gun");
else if (req == WR_KILLMESSAGE)
- w_deathtypestring = "%s was cut down by %s";
+ w_deathtypestring = _("%s was cut down by %s");
return TRUE;
}
#endif
#ifdef REGISTER_WEAPON
-REGISTER_WEAPON(HOOK, w_hook, IT_CELLS|IT_FUEL, 0, WEP_FLAG_CANCLIMB | WEP_TYPE_SPLASH, 0, "hookgun", "hook", "Grappling Hook");
+REGISTER_WEAPON(HOOK, w_hook, IT_CELLS|IT_FUEL, 0, WEP_FLAG_CANCLIMB | WEP_TYPE_SPLASH, 0, "hookgun", "hook", _("Grappling Hook"))
#else
#ifdef SVQC
.float dmg;
{
local entity gren;
- if not(self.items & IT_UNLIMITED_WEAPON_AMMO)
- self.ammo_cells = self.ammo_cells - autocvar_g_balance_hook_secondary_ammo;
+ W_DecreaseAmmo(ammo_cells, autocvar_g_balance_hook_secondary_ammo, FALSE);
W_SetupShot (self, FALSE, 4, "weapons/hookbomb_fire.wav", CHAN_WEAPON, autocvar_g_balance_hook_secondary_damage);
gren = spawn ();
if (time > self.hook_refire)
if (weapon_prepareattack(0, -1))
{
- if not(self.items & IT_UNLIMITED_WEAPON_AMMO)
- self.ammo_fuel = self.ammo_fuel - autocvar_g_balance_hook_primary_fuel;
+ W_DecreaseAmmo(ammo_fuel, autocvar_g_balance_hook_primary_fuel, FALSE);
self.hook_state |= HOOK_FIRING;
weapon_thinkf(WFRAME_FIRE1, autocvar_g_balance_hook_primary_animtime, w_ready);
}
{
if ( self.ammo_fuel >= (time - self.hook_time_fueldecrease) * hooked_fuel )
{
- self.ammo_fuel -= (time - self.hook_time_fueldecrease) * hooked_fuel;
+ W_DecreaseAmmo(ammo_fuel, (time - self.hook_time_fueldecrease) * hooked_fuel, FALSE);
self.hook_time_fueldecrease = time;
// decrease next frame again
}
else if (req == WR_SETUP)
{
weapon_setup(WEP_HOOK);
+ self.current_ammo = ammo_fuel;
self.hook_state &~= HOOK_WAITING_FOR_RELEASE;
}
else if (req == WR_CHECKAMMO1)
precache_sound("weapons/hookbomb_impact.wav");
}
else if (req == WR_SUICIDEMESSAGE)
- w_deathtypestring = "%s did the impossible";
+ w_deathtypestring = _("%s did the impossible");
else if (req == WR_KILLMESSAGE)
- w_deathtypestring = "%s has run into %s's gravity bomb";
+ w_deathtypestring = _("%s has run into %s's gravity bomb");
return TRUE;
}
#endif
#ifdef REGISTER_WEAPON
-REGISTER_WEAPON(LASER, w_laser, 0, 1, WEP_FLAG_NORMAL | WEP_FLAG_CANCLIMB | WEP_TYPE_SPLASH, 0, "laser", "laser", "Laser");
+REGISTER_WEAPON(LASER, w_laser, 0, 1, WEP_FLAG_NORMAL | WEP_FLAG_RELOADABLE | WEP_FLAG_CANCLIMB | WEP_TYPE_SPLASH, 0, "laser", "laser", _("Laser"))
#else
#ifdef SVQC
void(float imp) W_SwitchWeapon;
}
else if (req == WR_THINK)
{
- if (self.BUTTON_ATCK)
- if (weapon_prepareattack(0, autocvar_g_balance_laser_primary_refire))
+ if(autocvar_g_balance_laser_reload_ammo && self.clip_load < 1) // forced reload
+ weapon_action(self.weapon, WR_RELOAD);
+ else if (self.BUTTON_ATCK)
{
- W_Laser_Attack(0);
- weapon_thinkf(WFRAME_FIRE1, autocvar_g_balance_laser_primary_animtime, w_ready);
+ if (weapon_prepareattack(0, autocvar_g_balance_laser_primary_refire))
+ {
+ W_DecreaseAmmo(ammo_none, 1, TRUE);
+
+ W_Laser_Attack(0);
+ weapon_thinkf(WFRAME_FIRE1, autocvar_g_balance_laser_primary_animtime, w_ready);
+ }
}
- if (self.BUTTON_ATCK2)
+ else if (self.BUTTON_ATCK2)
{
if(autocvar_g_balance_laser_secondary)
{
+ W_DecreaseAmmo(ammo_none, 1, TRUE);
+
if (weapon_prepareattack(0, 0))
{
W_Laser_Attack2();
precache_model ("models/weapons/h_laser.iqm");
precache_sound ("weapons/lasergun_fire.wav");
precache_sound ("weapons/gauntlet_fire.wav");
+ //precache_sound ("weapons/reload.wav"); // until weapons have individual reload sounds, precache the reload sound somewhere else
}
else if (req == WR_SETUP)
+ {
weapon_setup(WEP_LASER);
+ self.current_ammo = ammo_none;
+ }
else if (req == WR_CHECKAMMO1)
+ {
return TRUE;
+ }
else if (req == WR_CHECKAMMO2)
+ {
return TRUE;
+ }
+ else if (req == WR_RELOAD)
+ {
+ W_Reload(0, autocvar_g_balance_laser_reload_ammo, autocvar_g_balance_laser_reload_time, "weapons/reload.wav");
+ }
return TRUE;
};
#endif
precache_sound("weapons/laserimpact.wav");
}
else if (req == WR_SUICIDEMESSAGE)
- w_deathtypestring = "%s lasered themself to hell";
+ w_deathtypestring = _("%s lasered themself to hell");
else if (req == WR_KILLMESSAGE)
{
if(w_deathtype & HITTYPE_SECONDARY)
- w_deathtypestring = "%s was cut in half by %s's gauntlet"; // unchecked: SPLASH
+ w_deathtypestring = _("%s was cut in half by %s's gauntlet"); // unchecked: SPLASH
else
- w_deathtypestring = "%s was lasered to death by %s"; // unchecked: SPLASH
+ w_deathtypestring = _("%s was lasered to death by %s"); // unchecked: SPLASH
}
return TRUE;
}
#ifdef REGISTER_WEAPON
-REGISTER_WEAPON(MINE_LAYER, w_minelayer, IT_ROCKETS, 4, WEP_TYPE_SPLASH, BOT_PICKUP_RATING_HIGH, "minelayer", "minelayer", "Mine Layer");
+REGISTER_WEAPON(MINE_LAYER, w_minelayer, IT_ROCKETS, 4, WEP_FLAG_RELOADABLE | WEP_TYPE_SPLASH, BOT_PICKUP_RATING_HIGH, "minelayer", "minelayer", _("Mine Layer"))
#else
#ifdef SVQC
void W_Mine_Think (void);
-.float minelayer_detonate, minelayer_mines;
+.float minelayer_detonate, mine_explodeanyway;
.float mine_time;
void spawnfunc_weapon_minelayer (void)
if (self.owner.weapon == WEP_MINE_LAYER)
{
- if(self.owner.ammo_rockets < autocvar_g_balance_minelayer_ammo)
+ entity oldself;
+ oldself = self;
+ self = self.owner;
+ if (!weapon_action(WEP_MINE_LAYER, WR_CHECKAMMO1))
{
- self.owner.cnt = WEP_MINE_LAYER;
- ATTACK_FINISHED(self.owner) = time;
- self.owner.switchweapon = w_getbestweapon(self.owner);
+ self.cnt = WEP_MINE_LAYER;
+ ATTACK_FINISHED(self) = time;
+ self.switchweapon = w_getbestweapon(self);
}
+ self = oldself;
}
+ self.owner.minelayer_mines -= 1;
remove (self);
}
if (self.owner.weapon == WEP_MINE_LAYER)
{
- if(self.owner.ammo_rockets < autocvar_g_balance_minelayer_ammo)
+ entity oldself;
+ oldself = self;
+ self = self.owner;
+ if (!weapon_action(WEP_MINE_LAYER, WR_CHECKAMMO1))
{
- self.owner.cnt = WEP_MINE_LAYER;
- ATTACK_FINISHED(self.owner) = time;
- self.owner.switchweapon = w_getbestweapon(self.owner);
+ self.cnt = WEP_MINE_LAYER;
+ ATTACK_FINISHED(self) = time;
+ self.switchweapon = w_getbestweapon(self);
}
+ self = oldself;
}
+ self.owner.minelayer_mines -= 1;
remove (self);
}
void W_Mine_ProximityExplode ()
{
// make sure no friend is in the mine's radius. If there is any, explosion is delayed until he's at a safe distance
- if(autocvar_g_balance_minelayer_protection)
+ if(autocvar_g_balance_minelayer_protection && self.mine_explodeanyway == 0)
{
entity head;
head = findradius(self.origin, autocvar_g_balance_minelayer_radius);
W_Mine_Explode();
}
+float W_Mine_Count(entity e)
+{
+ float minecount;
+ entity mine;
+ for(mine = world; (mine = find(mine, classname, "mine")); ) if(mine.owner == e)
+ minecount += 1;
+
+ return minecount;
+}
+
void W_Mine_Think (void)
{
entity head;
self.nextthink = time;
- if (time > self.cnt)
+
+ // our lifetime has expired, it's time to die - mine_time just allows us to play a sound for this
+ // TODO: replace this mine_trigger.wav sound with a real countdown
+ if ((time > self.cnt) && (!self.mine_time))
{
- other = world;
- self.projectiledeathtype |= HITTYPE_BOUNCE;
- W_Mine_Explode();
- return;
+ if(autocvar_g_balance_minelayer_lifetime_countdown > 0)
+ spamsound (self, CHAN_PROJECTILE, "weapons/mine_trigger.wav", VOL_BASE, ATTN_NORM);
+ self.mine_time = time + autocvar_g_balance_minelayer_lifetime_countdown;
+ self.mine_explodeanyway = 1; // make the mine super aggressive -- Samual: Rather, make it not care if a team mate is near.
}
// a player's mines shall explode if he disconnects or dies
- // TODO: Do this on team change too
+ // TODO: Do this on team change too -- Samual: But isn't a player killed when they switch teams?
if(self.owner.classname != "player" || self.owner.deadflag != DEAD_NO)
{
other = world;
// explode if it's time to
if(self.mine_time && time >= self.mine_time)
+ {
W_Mine_ProximityExplode();
+ return;
+ }
// remote detonation
if (self.owner.weapon == WEP_MINE_LAYER)
// scan how many mines we placed, and return if we reached our limit
if(autocvar_g_balance_minelayer_limit)
{
- self.minelayer_mines = 0;
- for(mine = world; (mine = find(mine, classname, "mine")); ) if(mine.owner == self)
- self.minelayer_mines += 1;
-
- if(self.minelayer_mines >= autocvar_g_balance_minelayer_limit)
+
+ if(W_Mine_Count(self) >= autocvar_g_balance_minelayer_limit)
{
// the refire delay keeps this message from being spammed
sprint(self, strcat("You cannot place more than ^2", ftos(autocvar_g_balance_minelayer_limit), " ^7mines at a time\n") );
}
}
- if not(self.items & IT_UNLIMITED_WEAPON_AMMO)
- self.ammo_rockets = self.ammo_rockets - autocvar_g_balance_minelayer_ammo;
+ W_DecreaseAmmo(ammo_rockets, autocvar_g_balance_minelayer_ammo, autocvar_g_balance_minelayer_reload_ammo);
W_SetupShot_ProjectileSize (self, '-4 -4 -4', '4 4 4', FALSE, 5, "weapons/mine_fire.wav", CHAN_WEAPON, autocvar_g_balance_minelayer_damage);
pointparticles(particleeffectnum("rocketlauncher_muzzleflash"), w_shotorg, w_shotdir * 1000, 1);
mine.touch = W_Mine_Touch;
mine.think = W_Mine_Think;
mine.nextthink = time;
- mine.cnt = time + autocvar_g_balance_minelayer_lifetime;
+ mine.cnt = time + (autocvar_g_balance_minelayer_lifetime - autocvar_g_balance_minelayer_lifetime_countdown);
mine.flags = FL_PROJECTILE;
CSQCProjectile(mine, TRUE, PROJECTILE_MINE, TRUE);
// common properties
other = mine; MUTATOR_CALLHOOK(EditProjectile);
+
+ self.minelayer_mines = W_Mine_Count(self);
}
void spawnfunc_weapon_minelayer (void); // defined in t_items.qc
-float w_minelayer(float req)
+float W_PlacedMines(float detonate)
{
entity mine;
float minfound;
+
+ for(mine = world; (mine = find(mine, classname, "mine")); ) if(mine.owner == self)
+ {
+ if(detonate)
+ {
+ if(!mine.minelayer_detonate)
+ {
+ mine.minelayer_detonate = TRUE;
+ minfound = 1;
+ }
+ }
+ else
+ minfound = 1;
+ }
+ return minfound;
+}
+
+float w_minelayer(float req)
+{
+ entity mine;
+ float ammo_amount;
+
if (req == WR_AIM)
{
// aim and decide to fire if appropriate
}
else if (req == WR_THINK)
{
- if (self.BUTTON_ATCK)
+ if(autocvar_g_balance_minelayer_reload_ammo && self.clip_load < autocvar_g_balance_minelayer_ammo) // forced reload
+ {
+ // not if we're holding the minelayer without enough ammo, but can detonate existing mines
+ if not (W_PlacedMines(FALSE) && self.ammo_rockets < autocvar_g_balance_minelayer_ammo)
+ weapon_action(self.weapon, WR_RELOAD);
+ }
+ else if (self.BUTTON_ATCK)
{
if(weapon_prepareattack(0, autocvar_g_balance_minelayer_refire))
{
if (self.BUTTON_ATCK2)
{
- minfound = 0;
- for(mine = world; (mine = find(mine, classname, "mine")); ) if(mine.owner == self)
- {
- if(!mine.minelayer_detonate)
- {
- mine.minelayer_detonate = TRUE;
- minfound = 1;
- }
- }
- if(minfound)
+ if(W_PlacedMines(TRUE))
sound (self, CHAN_WEAPON2, "weapons/mine_det.wav", VOL_BASE, ATTN_NORM);
}
}
precache_sound ("weapons/mine_fire.wav");
precache_sound ("weapons/mine_stick.wav");
precache_sound ("weapons/mine_trigger.wav");
+ //precache_sound ("weapons/reload.wav"); // until weapons have individual reload sounds, precache the reload sound somewhere else
}
else if (req == WR_SETUP)
{
weapon_setup(WEP_MINE_LAYER);
+ self.current_ammo = ammo_rockets;
}
else if (req == WR_CHECKAMMO1)
{
// don't switch while placing a mine
- if ((ATTACK_FINISHED(self) <= time || self.weapon != WEP_MINE_LAYER)
- && self.ammo_rockets < autocvar_g_balance_minelayer_ammo)
- return FALSE;
+ if (ATTACK_FINISHED(self) <= time || self.weapon != WEP_MINE_LAYER)
+ {
+ ammo_amount = self.ammo_rockets >= autocvar_g_balance_minelayer_ammo;
+ ammo_amount += self.weapon_load[WEP_MINE_LAYER] >= autocvar_g_balance_minelayer_ammo;
+ return ammo_amount;
+ }
}
else if (req == WR_CHECKAMMO2)
- return FALSE;
+ {
+ if (W_PlacedMines(FALSE))
+ return TRUE;
+ else
+ return FALSE;
+ }
+ else if (req == WR_RELOAD)
+ {
+ W_Reload(autocvar_g_balance_minelayer_ammo, autocvar_g_balance_minelayer_reload_ammo, autocvar_g_balance_minelayer_reload_time, "weapons/reload.wav");
+ }
return TRUE;
};
#endif
precache_sound("weapons/mine_exp.wav");
}
else if (req == WR_SUICIDEMESSAGE)
- w_deathtypestring = "%s exploded";
+ w_deathtypestring = _("%s exploded");
else if (req == WR_KILLMESSAGE)
{
if(w_deathtype & HITTYPE_BOUNCE) // (remote detonation)
- w_deathtypestring = "%s got too close to %s's mine";
+ w_deathtypestring = _("%s got too close to %s's mine");
else if(w_deathtype & HITTYPE_SPLASH)
- w_deathtypestring = "%s almost dodged %s's mine";
+ w_deathtypestring = _("%s almost dodged %s's mine");
else
- w_deathtypestring = "%s stepped on %s's mine";
+ w_deathtypestring = _("%s stepped on %s's mine");
}
return TRUE;
}
#ifdef REGISTER_WEAPON
-REGISTER_WEAPON(MINSTANEX, w_minstanex, IT_CELLS, 7, WEP_FLAG_HIDDEN | WEP_FLAG_CANCLIMB | WEP_TYPE_HITSCAN, BOT_PICKUP_RATING_HIGH, "minstanex", "minstanex", "MinstaNex");
+REGISTER_WEAPON(MINSTANEX, w_minstanex, IT_CELLS, 7, WEP_FLAG_HIDDEN | WEP_FLAG_RELOADABLE | WEP_FLAG_CANCLIMB | WEP_TYPE_HITSCAN, BOT_PICKUP_RATING_HIGH, "minstanex", "minstanex", _("MinstaNex"))
#else
#ifdef SVQC
.float minstanex_lasthit;
if (trace_ent.solid == SOLID_BSP && !(trace_dphitq3surfaceflags & Q3SURFACEFLAG_NOIMPACT))
Damage_DamageInfo(trace_endpos, 10000, 0, 0, 800 * w_shotdir, WEP_MINSTANEX, self);
- if not(self.items & IT_UNLIMITED_WEAPON_AMMO)
- {
- if (g_minstagib)
- self.ammo_cells = self.ammo_cells - 1;
- else
- self.ammo_cells = self.ammo_cells - autocvar_g_balance_minstanex_ammo;
- }
+ if (g_minstagib)
+ W_DecreaseAmmo(ammo_cells, 1, autocvar_g_balance_minstanex_reload_ammo);
+ else
+ W_DecreaseAmmo(ammo_cells, autocvar_g_balance_minstanex_ammo, autocvar_g_balance_minstanex_reload_ammo);
}
return;
if (self.ammo_cells <= 0)
+ if not(self.items & IT_UNLIMITED_WEAPON_AMMO)
{
if (self.health == 5)
{
float w_minstanex(float req)
{
+ float ammo_amount;
+ float minstanex_ammo;
+
+ // now multiple WR_s use this
+ if(g_minstagib)
+ minstanex_ammo = 1;
+ else
+ minstanex_ammo = autocvar_g_balance_minstanex_ammo;
+
if (req == WR_AIM)
{
- if(self.ammo_cells>0)
+ if(self.ammo_cells > 0)
self.BUTTON_ATCK = bot_aim(1000000, 0, 1, FALSE);
else
self.BUTTON_ATCK2 = bot_aim(autocvar_g_balance_laser_primary_speed, 0, autocvar_g_balance_laser_primary_lifetime, FALSE);
}
else if (req == WR_THINK)
{
- if (self.BUTTON_ATCK)
+ // if the laser uses load, we also consider its ammo for reloading
+ if(autocvar_g_balance_minstanex_reload_ammo && autocvar_g_balance_minstanex_laser_ammo && self.clip_load < min(minstanex_ammo, autocvar_g_balance_minstanex_laser_ammo)) // forced reload
+ weapon_action(self.weapon, WR_RELOAD);
+ else if(autocvar_g_balance_minstanex_reload_ammo && self.clip_load < minstanex_ammo) // forced reload
+ weapon_action(self.weapon, WR_RELOAD);
+ else if (self.BUTTON_ATCK)
{
if (weapon_prepareattack(0, autocvar_g_balance_minstanex_refire))
{
{
self.jump_interval = time + autocvar_g_balance_laser_primary_refire * W_WeaponRateFactor();
+ // decrease ammo for the laser?
+ if(autocvar_g_balance_minstanex_laser_ammo)
+ W_DecreaseAmmo(ammo_cells, autocvar_g_balance_minstanex_laser_ammo, autocvar_g_balance_minstanex_reload_ammo);
+
// ugly minstagib hack to reuse the fire mode of the laser
float w;
w = self.weapon;
precache_sound ("weapons/nexwhoosh1.wav");
precache_sound ("weapons/nexwhoosh2.wav");
precache_sound ("weapons/nexwhoosh3.wav");
+ //precache_sound ("weapons/reload.wav"); // until weapons have individual reload sounds, precache the reload sound somewhere else
w_laser(WR_PRECACHE);
}
else if (req == WR_SETUP)
{
weapon_setup(WEP_MINSTANEX);
+ self.current_ammo = ammo_cells;
self.minstanex_lasthit = 0;
}
else if (req == WR_CHECKAMMO1)
{
- if (g_minstagib)
- return self.ammo_cells >= 1;
- else
- return self.ammo_cells >= autocvar_g_balance_minstanex_ammo;
+ ammo_amount = self.ammo_cells >= minstanex_ammo;
+ ammo_amount += self.weapon_load[WEP_MINSTANEX] >= minstanex_ammo;
+ return ammo_amount;
}
else if (req == WR_CHECKAMMO2)
- return TRUE;
+ {
+ if(!autocvar_g_balance_minstanex_laser_ammo)
+ return TRUE;
+ ammo_amount = self.ammo_cells >= autocvar_g_balance_minstanex_laser_ammo;
+ ammo_amount += self.weapon_load[WEP_MINSTANEX] >= autocvar_g_balance_minstanex_laser_ammo;
+ return ammo_amount;
+ }
else if (req == WR_RESETPLAYER)
{
self.minstanex_lasthit = 0;
}
+ else if (req == WR_RELOAD)
+ {
+ float used_ammo;
+ if(autocvar_g_balance_minstanex_laser_ammo)
+ used_ammo = min(minstanex_ammo, autocvar_g_balance_minstanex_laser_ammo);
+ else
+ used_ammo = minstanex_ammo;
+
+ W_Reload(used_ammo, autocvar_g_balance_minstanex_reload_ammo, autocvar_g_balance_minstanex_reload_time, "weapons/reload.wav");
+ }
return TRUE;
};
#endif
precache_sound("weapons/neximpact.wav");
}
else if (req == WR_SUICIDEMESSAGE)
- w_deathtypestring = "%s did the impossible";
+ w_deathtypestring = _("%s did the impossible");
else if (req == WR_KILLMESSAGE)
- w_deathtypestring = "%s has been vaporized by %s";
+ w_deathtypestring = _("%s has been vaporized by %s");
return TRUE;
}
#endif
#ifdef REGISTER_WEAPON
-REGISTER_WEAPON(NEX, w_nex, IT_CELLS, 7, WEP_FLAG_NORMAL | WEP_TYPE_HITSCAN, BOT_PICKUP_RATING_HIGH, "nex", "nex", "Nex");
+REGISTER_WEAPON(NEX, w_nex, IT_CELLS, 7, WEP_FLAG_NORMAL | WEP_FLAG_RELOADABLE | WEP_TYPE_HITSCAN, BOT_PICKUP_RATING_HIGH, "nex", "nex", _("Nex"))
#else
#ifdef SVQC
+
void SendCSQCNexBeamParticle(float charge) {
vector v;
v = WarpZone_UnTransformOrigin(WarpZone_trace_transform, trace_endpos);
myforce *= charge;
W_SetupShot (self, TRUE, 5, "weapons/nexfire.wav", CHAN_WEAPON, mydmg);
- if(charge > autocvar_g_balance_nex_charge_limit && autocvar_g_balance_nex_charge_limit) // if the Nex is overcharged, we play an extra sound
+ if(charge > autocvar_g_balance_nex_charge_animlimit && autocvar_g_balance_nex_charge_animlimit) // if the Nex is overcharged, we play an extra sound
{
- sound (self, CHAN_WEAPON2, "weapons/nexcharge.wav", VOL_BASE * (charge - 0.5 * autocvar_g_balance_nex_charge_limit) / (1 - 0.5 * autocvar_g_balance_nex_charge_limit), ATTN_NORM);
+ sound (self, CHAN_WEAPON2, "weapons/nexcharge.wav", VOL_BASE * (charge - 0.5 * autocvar_g_balance_nex_charge_animlimit) / (1 - 0.5 * autocvar_g_balance_nex_charge_animlimit), ATTN_NORM);
}
yoda = 0;
if (trace_ent.solid == SOLID_BSP && !(trace_dphitq3surfaceflags & Q3SURFACEFLAG_NOIMPACT))
Damage_DamageInfo(trace_endpos, mydmg, 0, 0, myforce * w_shotdir, WEP_NEX, self);
- if not(self.items & IT_UNLIMITED_WEAPON_AMMO)
- self.ammo_cells = self.ammo_cells - myammo;
+ W_DecreaseAmmo(ammo_cells, myammo, autocvar_g_balance_nex_reload_ammo);
}
void spawnfunc_weapon_nex (void); // defined in t_items.qc
float w_nex(float req)
{
float dt;
+ float ammo_amount;
if (req == WR_AIM)
{
- self.BUTTON_ATCK = bot_aim(1000000, 0, 1, FALSE);
- self.BUTTON_ATCK2 = bot_aim(1000000, 0, 1, FALSE);
+ if(bot_aim(1000000, 0, 1, FALSE))
+ self.BUTTON_ATCK = TRUE;
+ else
+ {
+ if(autocvar_g_balance_nex_charge)
+ self.BUTTON_ATCK2 = TRUE;
+ }
}
else if (req == WR_THINK)
{
self.pauseregen_finished = max(self.pauseregen_finished, time + autocvar_g_balance_nex_secondary_chargepool_pause_health_regen);
}
- if (self.BUTTON_ATCK)
+ if(autocvar_g_balance_nex_reload_ammo && self.clip_load < min(autocvar_g_balance_nex_primary_ammo, autocvar_g_balance_nex_secondary_ammo)) // forced reload
+ weapon_action(self.weapon, WR_RELOAD);
+ else
{
- if (weapon_prepareattack(0, autocvar_g_balance_nex_primary_refire))
+ if (self.BUTTON_ATCK)
{
- W_Nex_Attack(0);
- weapon_thinkf(WFRAME_FIRE1, autocvar_g_balance_nex_primary_animtime, w_ready);
+ if (weapon_prepareattack(0, autocvar_g_balance_nex_primary_refire))
+ {
+ W_Nex_Attack(0);
+ weapon_thinkf(WFRAME_FIRE1, autocvar_g_balance_nex_primary_animtime, w_ready);
+ }
}
- }
- if ((autocvar_g_balance_nex_secondary_charge && !autocvar_g_balance_nex_secondary) ? self.BUTTON_ZOOM : self.BUTTON_ATCK2)
- {
- if(autocvar_g_balance_nex_secondary_charge)
+ if ((autocvar_g_balance_nex_secondary_charge && !autocvar_g_balance_nex_secondary) ? (self.BUTTON_ZOOM | self.BUTTON_ZOOMSCRIPT) : self.BUTTON_ATCK2)
{
- self.nex_charge_rottime = time + autocvar_g_balance_nex_charge_rot_pause;
- dt = frametime / W_TICSPERFRAME;
-
- if(self.nex_charge < 1)
+ if(autocvar_g_balance_nex_secondary_charge)
{
- if(autocvar_g_balance_nex_secondary_chargepool)
+ self.nex_charge_rottime = time + autocvar_g_balance_nex_charge_rot_pause;
+ dt = frametime / W_TICSPERFRAME;
+
+ if(self.nex_charge < 1)
{
- if(autocvar_g_balance_nex_secondary_ammo)
+ if(autocvar_g_balance_nex_secondary_chargepool)
{
- // always deplete if secondary is held
- self.nex_chargepool_ammo = max(0, self.nex_chargepool_ammo - autocvar_g_balance_nex_secondary_ammo * dt);
+ if(autocvar_g_balance_nex_secondary_ammo)
+ {
+ // always deplete if secondary is held
+ self.nex_chargepool_ammo = max(0, self.nex_chargepool_ammo - autocvar_g_balance_nex_secondary_ammo * dt);
- dt = min(dt, (1 - self.nex_charge) / autocvar_g_balance_nex_secondary_charge_rate);
- self.nex_chargepool_pauseregen_finished = time + autocvar_g_balance_nex_secondary_chargepool_pause_regen;
- dt = min(dt, self.nex_chargepool_ammo);
- dt = max(0, dt);
+ dt = min(dt, (1 - self.nex_charge) / autocvar_g_balance_nex_secondary_charge_rate);
+ self.nex_chargepool_pauseregen_finished = time + autocvar_g_balance_nex_secondary_chargepool_pause_regen;
+ dt = min(dt, self.nex_chargepool_ammo);
+ dt = max(0, dt);
- self.nex_charge += dt * autocvar_g_balance_nex_secondary_charge_rate;
+ self.nex_charge += dt * autocvar_g_balance_nex_secondary_charge_rate;
+ }
}
- }
- else if(autocvar_g_balance_nex_secondary_ammo)
- {
- if(self.BUTTON_ATCK2) // only eat ammo when the button is pressed
+ else if(autocvar_g_balance_nex_secondary_ammo)
{
- dt = min(dt, (1 - self.nex_charge) / autocvar_g_balance_nex_secondary_charge_rate);
- if not(self.items & IT_UNLIMITED_WEAPON_AMMO)
+ if(self.BUTTON_ATCK2) // only eat ammo when the button is pressed
{
- dt = min(dt, (self.ammo_cells - autocvar_g_balance_nex_primary_ammo) / autocvar_g_balance_nex_secondary_ammo);
- dt = max(0, dt);
- if(dt > 0)
+ dt = min(dt, (1 - self.nex_charge) / autocvar_g_balance_nex_secondary_charge_rate);
+ if not(self.items & IT_UNLIMITED_WEAPON_AMMO)
{
- self.ammo_cells = max(autocvar_g_balance_nex_secondary_ammo, self.ammo_cells - autocvar_g_balance_nex_secondary_ammo * dt);
+ // if this weapon is reloadable, decrease its load. Else decrease the player's ammo
+ if(autocvar_g_balance_nex_reload_ammo)
+ {
+ dt = min(dt, (self.clip_load - autocvar_g_balance_nex_primary_ammo) / autocvar_g_balance_nex_secondary_ammo);
+ dt = max(0, dt);
+ if(dt > 0)
+ {
+ self.clip_load = max(autocvar_g_balance_nex_secondary_ammo, self.clip_load - autocvar_g_balance_nex_secondary_ammo * dt);
+ }
+ self.weapon_load[WEP_NEX] = self.clip_load;
+ }
+ else
+ {
+ dt = min(dt, (self.ammo_cells - autocvar_g_balance_nex_primary_ammo) / autocvar_g_balance_nex_secondary_ammo);
+ dt = max(0, dt);
+ if(dt > 0)
+ {
+ self.ammo_cells = max(autocvar_g_balance_nex_secondary_ammo, self.ammo_cells - autocvar_g_balance_nex_secondary_ammo * dt);
+ }
+ }
}
+ self.nex_charge += dt * autocvar_g_balance_nex_secondary_charge_rate;
}
- self.nex_charge += dt * autocvar_g_balance_nex_secondary_charge_rate;
}
- }
- else
- {
- dt = min(dt, (1 - self.nex_charge) / autocvar_g_balance_nex_secondary_charge_rate);
- self.nex_charge += dt * autocvar_g_balance_nex_secondary_charge_rate;
+ else
+ {
+ dt = min(dt, (1 - self.nex_charge) / autocvar_g_balance_nex_secondary_charge_rate);
+ self.nex_charge += dt * autocvar_g_balance_nex_secondary_charge_rate;
+ }
}
}
- }
- else if(autocvar_g_balance_nex_secondary)
- {
- if (weapon_prepareattack(0, autocvar_g_balance_nex_secondary_refire))
+ else if(autocvar_g_balance_nex_secondary)
{
- W_Nex_Attack(1);
- weapon_thinkf(WFRAME_FIRE1, autocvar_g_balance_nex_secondary_animtime, w_ready);
+ if (weapon_prepareattack(0, autocvar_g_balance_nex_secondary_refire))
+ {
+ W_Nex_Attack(1);
+ weapon_thinkf(WFRAME_FIRE1, autocvar_g_balance_nex_secondary_animtime, w_ready);
+ }
}
}
}
if(autocvar_g_balance_nex_charge)
{
- self.weaponentity_glowmod_x = autocvar_g_weapon_charge_colormod_hdrmultiplier * autocvar_g_weapon_charge_colormod_red_half * min(1, self.nex_charge / autocvar_g_balance_nex_charge_limit);
- self.weaponentity_glowmod_y = autocvar_g_weapon_charge_colormod_hdrmultiplier * autocvar_g_weapon_charge_colormod_green_half * min(1, self.nex_charge / autocvar_g_balance_nex_charge_limit);
- self.weaponentity_glowmod_z = autocvar_g_weapon_charge_colormod_hdrmultiplier * autocvar_g_weapon_charge_colormod_blue_half * min(1, self.nex_charge / autocvar_g_balance_nex_charge_limit);
+ self.weaponentity_glowmod_x = autocvar_g_weapon_charge_colormod_hdrmultiplier * autocvar_g_weapon_charge_colormod_red_half * min(1, self.nex_charge / autocvar_g_balance_nex_charge_animlimit);
+ self.weaponentity_glowmod_y = autocvar_g_weapon_charge_colormod_hdrmultiplier * autocvar_g_weapon_charge_colormod_green_half * min(1, self.nex_charge / autocvar_g_balance_nex_charge_animlimit);
+ self.weaponentity_glowmod_z = autocvar_g_weapon_charge_colormod_hdrmultiplier * autocvar_g_weapon_charge_colormod_blue_half * min(1, self.nex_charge / autocvar_g_balance_nex_charge_animlimit);
- if(self.nex_charge > autocvar_g_balance_nex_charge_limit)
+ if(self.nex_charge > autocvar_g_balance_nex_charge_animlimit)
{
- self.weaponentity_glowmod_x = self.weaponentity_glowmod_x + autocvar_g_weapon_charge_colormod_hdrmultiplier * autocvar_g_weapon_charge_colormod_red_full * (self.nex_charge - autocvar_g_balance_nex_charge_limit) / (1 - autocvar_g_balance_nex_charge_limit);
- self.weaponentity_glowmod_y = self.weaponentity_glowmod_y + autocvar_g_weapon_charge_colormod_hdrmultiplier * autocvar_g_weapon_charge_colormod_green_full * (self.nex_charge - autocvar_g_balance_nex_charge_limit) / (1 - autocvar_g_balance_nex_charge_limit);
- self.weaponentity_glowmod_z = self.weaponentity_glowmod_z + autocvar_g_weapon_charge_colormod_hdrmultiplier * autocvar_g_weapon_charge_colormod_blue_full * (self.nex_charge - autocvar_g_balance_nex_charge_limit) / (1 - autocvar_g_balance_nex_charge_limit);
+ self.weaponentity_glowmod_x = self.weaponentity_glowmod_x + autocvar_g_weapon_charge_colormod_hdrmultiplier * autocvar_g_weapon_charge_colormod_red_full * (self.nex_charge - autocvar_g_balance_nex_charge_animlimit) / (1 - autocvar_g_balance_nex_charge_animlimit);
+ self.weaponentity_glowmod_y = self.weaponentity_glowmod_y + autocvar_g_weapon_charge_colormod_hdrmultiplier * autocvar_g_weapon_charge_colormod_green_full * (self.nex_charge - autocvar_g_balance_nex_charge_animlimit) / (1 - autocvar_g_balance_nex_charge_animlimit);
+ self.weaponentity_glowmod_z = self.weaponentity_glowmod_z + autocvar_g_weapon_charge_colormod_hdrmultiplier * autocvar_g_weapon_charge_colormod_blue_full * (self.nex_charge - autocvar_g_balance_nex_charge_animlimit) / (1 - autocvar_g_balance_nex_charge_animlimit);
}
}
}
precache_sound ("weapons/nexwhoosh1.wav");
precache_sound ("weapons/nexwhoosh2.wav");
precache_sound ("weapons/nexwhoosh3.wav");
+ //precache_sound ("weapons/reload.wav"); // until weapons have individual reload sounds, precache the reload sound somewhere else
}
else if (req == WR_SETUP)
+ {
weapon_setup(WEP_NEX);
+ self.current_ammo = ammo_cells;
+ }
else if (req == WR_CHECKAMMO1)
- return self.ammo_cells >= autocvar_g_balance_nex_primary_ammo;
+ {
+ ammo_amount = self.ammo_cells >= autocvar_g_balance_nex_primary_ammo;
+ ammo_amount += (autocvar_g_balance_nex_reload_ammo && self.weapon_load[WEP_NEX] >= autocvar_g_balance_nex_primary_ammo);
+ return ammo_amount;
+ }
else if (req == WR_CHECKAMMO2)
- return self.ammo_cells >= autocvar_g_balance_nex_primary_ammo; // don't allow charging if we don't have enough ammo
+ {
+ // don't allow charging if we don't have enough ammo
+ ammo_amount = self.ammo_cells >= autocvar_g_balance_nex_secondary_ammo;
+ ammo_amount += self.weapon_load[WEP_NEX] >= autocvar_g_balance_nex_secondary_ammo;
+ return ammo_amount;
+ }
+ else if (req == WR_RELOAD)
+ {
+ W_Reload(min(autocvar_g_balance_nex_primary_ammo, autocvar_g_balance_nex_secondary_ammo), autocvar_g_balance_nex_reload_ammo, autocvar_g_balance_nex_reload_time, "weapons/reload.wav");
+ }
+
return TRUE;
};
#endif
precache_sound("weapons/neximpact.wav");
}
else if (req == WR_SUICIDEMESSAGE)
- w_deathtypestring = "%s did the impossible";
+ w_deathtypestring = _("%s did the impossible");
else if (req == WR_KILLMESSAGE)
- w_deathtypestring = "%s has been vaporized by %s";
+ w_deathtypestring = _("%s has been vaporized by %s");
return TRUE;
}
#endif
#ifdef REGISTER_WEAPON
-REGISTER_WEAPON(PORTO, w_porto, 0, 0, WEP_TYPE_OTHER, 0, "porto" , "porto", "Port-O-Launch");
+REGISTER_WEAPON(PORTO, w_porto, 0, 0, WEP_TYPE_OTHER, 0, "porto" , "porto", _("Port-O-Launch"))
#else
#ifdef SVQC
.entity porto_current;
precache_sound ("porto/unsupported.wav");
}
else if (req == WR_SETUP)
+ {
weapon_setup(WEP_PORTO);
+ self.current_ammo = ammo_none;
+ }
else if (req == WR_RESETPLAYER)
{
self.porto_current = world;
// nothing to do
}
else if (req == WR_SUICIDEMESSAGE)
- w_deathtypestring = "%s did the impossible";
+ w_deathtypestring = _("%s did the impossible");
else if (req == WR_KILLMESSAGE)
- w_deathtypestring = "%s felt %s doing the impossible to him";
+ w_deathtypestring = _("%s felt %s doing the impossible to him");
return TRUE;
}
#endif
#ifdef REGISTER_WEAPON
-REGISTER_WEAPON(ROCKET_LAUNCHER, w_rlauncher, IT_ROCKETS, 9, WEP_FLAG_NORMAL | WEP_FLAG_CANCLIMB | WEP_TYPE_SPLASH, BOT_PICKUP_RATING_HIGH, "rl", "rocketlauncher", "Rocket Launcher");
+REGISTER_WEAPON(ROCKET_LAUNCHER, w_rlauncher, IT_ROCKETS, 9, WEP_FLAG_NORMAL | WEP_FLAG_RELOADABLE | WEP_FLAG_CANCLIMB | WEP_TYPE_SPLASH, BOT_PICKUP_RATING_HIGH, "rl", "rocketlauncher", _("Rocket Launcher"))
#else
#ifdef SVQC
.float rl_release;
local entity missile;
local entity flash;
- if not(self.items & IT_UNLIMITED_WEAPON_AMMO)
- self.ammo_rockets = self.ammo_rockets - autocvar_g_balance_rocketlauncher_ammo;
+ W_DecreaseAmmo(ammo_rockets, autocvar_g_balance_rocketlauncher_ammo, autocvar_g_balance_rocketlauncher_reload_ammo);
W_SetupShot_ProjectileSize (self, '-3 -3 -3', '3 3 3', FALSE, 5, "weapons/rocket_fire.wav", CHAN_WEAPON, autocvar_g_balance_rocketlauncher_damage);
pointparticles(particleeffectnum("rocketlauncher_muzzleflash"), w_shotorg, w_shotdir * 1000, 1);
{
entity rock;
float rockfound;
+ float ammo_amount;
+
if (req == WR_AIM)
{
// aim and decide to fire if appropriate
}
else if (req == WR_THINK)
{
- if (self.BUTTON_ATCK)
+ if(autocvar_g_balance_rocketlauncher_reload_ammo && self.clip_load < autocvar_g_balance_rocketlauncher_ammo) // forced reload
+ weapon_action(self.weapon, WR_RELOAD);
+ else
{
- if(self.rl_release || autocvar_g_balance_rocketlauncher_guidestop)
- if(weapon_prepareattack(0, autocvar_g_balance_rocketlauncher_refire))
+ if (self.BUTTON_ATCK)
{
- W_Rocket_Attack();
- weapon_thinkf(WFRAME_FIRE1, autocvar_g_balance_rocketlauncher_animtime, w_ready);
- self.rl_release = 0;
+ if(self.rl_release || autocvar_g_balance_rocketlauncher_guidestop)
+ if(weapon_prepareattack(0, autocvar_g_balance_rocketlauncher_refire))
+ {
+ W_Rocket_Attack();
+ weapon_thinkf(WFRAME_FIRE1, autocvar_g_balance_rocketlauncher_animtime, w_ready);
+ self.rl_release = 0;
+ }
}
- }
- else
- self.rl_release = 1;
+ else
+ self.rl_release = 1;
- if (self.BUTTON_ATCK2)
- {
- rockfound = 0;
- for(rock = world; (rock = find(rock, classname, "rocket")); ) if(rock.owner == self)
+ if (self.BUTTON_ATCK2)
{
- if(!rock.rl_detonate_later)
+ rockfound = 0;
+ for(rock = world; (rock = find(rock, classname, "rocket")); ) if(rock.owner == self)
{
- rock.rl_detonate_later = TRUE;
- rockfound = 1;
+ if(!rock.rl_detonate_later)
+ {
+ rock.rl_detonate_later = TRUE;
+ rockfound = 1;
+ }
}
+ if(rockfound)
+ sound (self, CHAN_WEAPON2, "weapons/rocket_det.wav", VOL_BASE, ATTN_NORM);
}
- if(rockfound)
- sound (self, CHAN_WEAPON2, "weapons/rocket_det.wav", VOL_BASE, ATTN_NORM);
}
}
else if (req == WR_PRECACHE)
precache_sound ("weapons/rocket_det.wav");
precache_sound ("weapons/rocket_fire.wav");
precache_sound ("weapons/rocket_mode.wav");
+ //precache_sound ("weapons/reload.wav"); // until weapons have individual reload sounds, precache the reload sound somewhere else
}
else if (req == WR_SETUP)
{
weapon_setup(WEP_ROCKET_LAUNCHER);
+ self.current_ammo = ammo_rockets;
self.rl_release = 1;
}
else if (req == WR_CHECKAMMO1)
{
// don't switch while guiding a missile
- if ((ATTACK_FINISHED(self) <= time || self.weapon != WEP_ROCKET_LAUNCHER)
- && self.ammo_rockets < autocvar_g_balance_rocketlauncher_ammo)
- return FALSE;
+ if (ATTACK_FINISHED(self) <= time || self.weapon != WEP_ROCKET_LAUNCHER)
+ {
+ if(autocvar_g_balance_rocketlauncher_reload_ammo)
+ {
+ if(self.ammo_rockets < autocvar_g_balance_rocketlauncher_ammo && self.weapon_load[WEP_ROCKET_LAUNCHER] < autocvar_g_balance_rocketlauncher_ammo)
+ ammo_amount = TRUE;
+ }
+ else if(self.ammo_rockets < autocvar_g_balance_rocketlauncher_ammo)
+ ammo_amount = TRUE;
+ return !ammo_amount;
+ }
}
else if (req == WR_CHECKAMMO2)
return FALSE;
{
self.rl_release = 0;
}
+ else if (req == WR_RELOAD)
+ {
+ W_Reload(autocvar_g_balance_rocketlauncher_ammo, autocvar_g_balance_rocketlauncher_reload_ammo, autocvar_g_balance_rocketlauncher_reload_time, "weapons/reload.wav");
+ }
return TRUE;
};
#endif
precache_sound("weapons/rocket_impact.wav");
}
else if (req == WR_SUICIDEMESSAGE)
- w_deathtypestring = "%s exploded";
+ w_deathtypestring = _("%s exploded");
else if (req == WR_KILLMESSAGE)
{
if(w_deathtype & HITTYPE_BOUNCE) // (remote detonation)
- w_deathtypestring = "%s got too close to %s's rocket";
+ w_deathtypestring = _("%s got too close to %s's rocket");
else if(w_deathtype & HITTYPE_SPLASH)
- w_deathtypestring = "%s almost dodged %s's rocket";
+ w_deathtypestring = _("%s almost dodged %s's rocket");
else
- w_deathtypestring = "%s ate %s's rocket";
+ w_deathtypestring = _("%s ate %s's rocket");
}
return TRUE;
}
#ifdef REGISTER_WEAPON
-REGISTER_WEAPON(SEEKER, w_seeker, IT_ROCKETS, 9, WEP_FLAG_NORMAL | WEP_TYPE_SPLASH, BOT_PICKUP_RATING_MID, "seeker", "seeker", "T.A.G. Seeker");
+REGISTER_WEAPON(SEEKER, w_seeker, IT_ROCKETS, 8, WEP_FLAG_RELOADABLE | WEP_TYPE_SPLASH, BOT_PICKUP_RATING_MID, "seeker", "seeker", _("T.A.G. Seeker"))
#else
#ifdef SVQC
//.float proxytime; = autoswitch
//.float tl; = wait
+.entity tag_target, wps_tag_tracker;
+.float tag_time;
+// ============================
+// Begin: Missile functions, these are general functions to be manipulated by other code
+// ============================
void Seeker_Missile_Explode ()
{
self.event_damage = SUB_Null;
}
*/
-void Seeker_Fire_Missile(vector f_diff)
+void Seeker_Fire_Missile(vector f_diff, entity m_target)
{
local entity missile;
- if not(self.items & IT_UNLIMITED_WEAPON_AMMO)
- self.ammo_rockets = self.ammo_rockets - autocvar_g_balance_seeker_missile_ammo;
+ W_DecreaseAmmo(ammo_rockets, autocvar_g_balance_seeker_missile_ammo, autocvar_g_balance_seeker_reload_ammo);
makevectors(self.v_angle);
W_SetupShot_ProjectileSize (self, '-2 -2 -2', '2 2 2', FALSE, 2, "weapons/seeker_fire.wav", CHAN_WEAPON, 0);
missile.event_damage = Seeker_Missile_Damage;
missile.nextthink = time;// + 0.2;// + cvar("g_balance_seeker_missile_activate_delay");
missile.cnt = time + autocvar_g_balance_seeker_missile_lifetime;
- missile.enemy = self.enemy;
+ missile.enemy = m_target;
missile.solid = SOLID_BBOX;
missile.scale = 2;
missile.takedamage = DAMAGE_YES;
missile.health = autocvar_g_balance_seeker_missile_health;
missile.damageforcescale = autocvar_g_balance_seeker_missile_damageforcescale;
- missile.projectiledeathtype = WEP_SEEKER;
//missile.think = Seeker_Missile_Animate; // csqc projectiles.
+
+ if (missile.enemy != world)
+ missile.projectiledeathtype = WEP_SEEKER | HITTYPE_SECONDARY;
+ else
+ missile.projectiledeathtype = WEP_SEEKER;
setorigin (missile, w_shotorg);
other = missile; MUTATOR_CALLHOOK(EditProjectile);
}
-void Seeker_Vollycontroler_Think()
+// ============================
+// Begin: FLAC, close range attack meant for defeating rockets which are coming at you.
+// ============================
+void Seeker_Flac_Explode ()
+{
+ self.event_damage = SUB_Null;
+
+ RadiusDamage (self, self.owner, autocvar_g_balance_seeker_flac_damage, autocvar_g_balance_seeker_flac_edgedamage, autocvar_g_balance_seeker_flac_radius, world, autocvar_g_balance_seeker_flac_force, self.projectiledeathtype, other);
+
+ remove (self);
+}
+
+void Seeker_Flac_Touch()
+{
+ PROJECTILE_TOUCH;
+
+ Seeker_Flac_Explode();
+}
+
+void Seeker_Fire_Flac()
+{
+ local entity missile;
+ vector f_diff;
+ float c;
+
+ W_DecreaseAmmo(ammo_rockets, autocvar_g_balance_seeker_flac_ammo, autocvar_g_balance_seeker_reload_ammo);
+
+ c = mod(self.bulletcounter, 4);
+ switch(c)
+ {
+ case 0:
+ f_diff = '-1.25 -3.75 0';
+ break;
+ case 1:
+ f_diff = '+1.25 -3.75 0';
+ break;
+ case 2:
+ f_diff = '-1.25 +3.75 0';
+ break;
+ case 3:
+ default:
+ f_diff = '+1.25 +3.75 0';
+ break;
+ }
+ W_SetupShot_ProjectileSize (self, '-2 -2 -2', '2 2 2', FALSE, 2, "weapons/flac_fire.wav", CHAN_WEAPON, autocvar_g_balance_seeker_flac_damage);
+ w_shotorg += f_diff;
+
+ pointparticles(particleeffectnum("hagar_muzzleflash"), w_shotorg, w_shotdir * 1000, 1);
+
+ missile = spawn ();
+ missile.owner = missile.realowner = self;
+ missile.classname = "missile";
+ missile.bot_dodge = TRUE;
+ missile.bot_dodgerating = autocvar_g_balance_seeker_flac_damage;
+ missile.touch = Seeker_Flac_Explode;
+ missile.use = Seeker_Flac_Explode;
+ missile.think = adaptor_think2use_hittype_splash;
+ missile.nextthink = time + autocvar_g_balance_seeker_flac_lifetime + autocvar_g_balance_seeker_flac_lifetime_rand;
+ missile.solid = SOLID_BBOX;
+ missile.movetype = MOVETYPE_FLY;
+ missile.projectiledeathtype = WEP_SEEKER;
+ missile.projectiledeathtype = WEP_SEEKER | HITTYPE_SECONDARY;
+ missile.flags = FL_PROJECTILE;
+
+ // csqc projectiles
+ //missile.angles = vectoangles (missile.velocity);
+ //missile.scale = 0.4; // BUG: the model is too big
+
+ setorigin (missile, w_shotorg);
+ setsize (missile, '-2 -2 -2', '2 2 2');
+
+ W_SETUPPROJECTILEVELOCITY_UP(missile, g_balance_seeker_flac);
+ CSQCProjectile(missile, TRUE, PROJECTILE_FLAC, TRUE);
+
+ other = missile; MUTATOR_CALLHOOK(EditProjectile);
+}
+
+// ============================
+// Begin: Tag and rocket controllers
+// ============================
+entity Seeker_Tagged_Info(entity isowner, entity istarget)
+{
+ entity tag;
+ for(tag = world; (tag = find(tag, classname, "tag_tracker")); )
+ if ((tag.owner == isowner) && (tag.tag_target == istarget))
+ return tag;
+
+ return world;
+}
+
+void Seeker_Attack()
+{
+ entity tracker, closest_target;
+
+ for(tracker = world; (tracker = find(tracker, classname, "tag_tracker")); ) if (tracker.owner == self)
+ {
+ if (closest_target)
+ {
+ if (vlen(self.origin - tracker.tag_target.origin) < vlen(self.origin - closest_target.origin))
+ closest_target = tracker.tag_target;
+ }
+ else
+ closest_target = tracker.tag_target;
+ }
+
+ traceline(self.origin + self.view_ofs, closest_target.origin, MOVE_NOMONSTERS, self);
+ if ((!closest_target) || ((trace_fraction < 1) && (trace_ent != closest_target)))
+ closest_target = world;
+
+ Seeker_Fire_Missile('0 0 0', closest_target);
+}
+
+void Seeker_Vollycontroller_Think() // TODO: Merge this with Seeker_Attack
{
float c;
entity oldself,oldenemy;
}
self.nextthink = time + autocvar_g_balance_seeker_missile_delay;
-
+
oldself = self;
self = self.owner;
-
+
oldenemy = self.enemy;
self.enemy = oldself.enemy;
-
- c = mod(oldself.cnt, 4);
+
+ c = mod(self.cnt, 4);
switch(c)
{
case 0:
- Seeker_Fire_Missile('-1.25 -3.75 0');
+ Seeker_Fire_Missile('-1.25 -3.75 0', self.enemy);
break;
case 1:
- Seeker_Fire_Missile('+1.25 -3.75 0');
+ Seeker_Fire_Missile('+1.25 -3.75 0', self.enemy);
break;
case 2:
- Seeker_Fire_Missile('-1.25 +3.75 0');
+ Seeker_Fire_Missile('-1.25 +3.75 0', self.enemy);
break;
case 3:
default:
- Seeker_Fire_Missile('+1.25 +3.75 0');
+ Seeker_Fire_Missile('+1.25 +3.75 0', self.enemy);
break;
}
self = oldself;
}
+void Seeker_Tracker_Think()
+{
+ // commit suicide if: You die OR target dies OR you switch away from the seeker OR commit suicide if lifetime is up
+ if ((self.owner.deadflag != DEAD_NO) || (self.tag_target.deadflag != DEAD_NO) || (self.owner.switchweapon != WEP_SEEKER)
+ || (time > self.tag_time + autocvar_g_balance_seeker_tag_tracker_lifetime))
+ {
+ if (self)
+ {
+ WaypointSprite_Kill(self.tag_target.wps_tag_tracker);
+ remove(self);
+ }
+ return;
+ }
+
+ // Update the think method information
+ self.nextthink = time;
+}
+
+// ============================
+// Begin: Tag projectile
+// ============================
void Seeker_Tag_Explode ()
{
//if(other==self.owner)
Seeker_Tag_Explode();
}
-
void Seeker_Tag_Touch()
{
vector dir;
Damage_DamageInfo(self.origin, 0, 0, 0, self.velocity, WEP_SEEKER | HITTYPE_HEADSHOT, self);
if (other.takedamage == DAMAGE_AIM && other.deadflag == DEAD_NO)
- {
- e = spawn();
- e.cnt = autocvar_g_balance_seeker_missile_count;
- e.owner = self.owner;
- e.enemy = other;
- e.think = Seeker_Vollycontroler_Think;
- e.nextthink = time;
+ {
+ // check to see if this person is already tagged by me
+ entity tag = Seeker_Tagged_Info(self.owner, other);
+
+ if (tag != world)
+ {
+ if (other.wps_tag_tracker && (autocvar_g_balance_seeker_type == 1)) // don't attach another waypointsprite without killing the old one first
+ WaypointSprite_Kill(other.wps_tag_tracker);
+
+ tag.tag_time = time;
+ }
+ else
+ {
+ //sprint(self.owner, strcat("You just tagged ^2", other.netname, "^7 with a tracking device!\n"));
+ e = spawn();
+ e.cnt = autocvar_g_balance_seeker_missile_count;
+ e.classname = "tag_tracker";
+ e.owner = self.owner;
+
+ if (autocvar_g_balance_seeker_type == 1)
+ {
+ e.tag_target = other;
+ e.tag_time = time;
+ e.think = Seeker_Tracker_Think;
+ }
+ else
+ {
+ e.enemy = other;
+ e.think = Seeker_Vollycontroller_Think;
+ }
+
+ e.nextthink = time;
+ }
+
+ if (autocvar_g_balance_seeker_type == 1)
+ {
+ WaypointSprite_Spawn("tagged-target", autocvar_g_balance_seeker_tag_tracker_lifetime, 0, other, '0 0 64', self.owner, 0, other, wps_tag_tracker, TRUE);
+ WaypointSprite_UpdateRule(other.wps_tag_tracker, 0, SPRITERULE_DEFAULT);
+ }
}
remove(self);
void Seeker_Fire_Tag()
{
local entity missile;
- if not(self.items & IT_UNLIMITED_WEAPON_AMMO)
- self.ammo_rockets = self.ammo_rockets - autocvar_g_balance_seeker_tag_ammo;
+ W_DecreaseAmmo(ammo_rockets, autocvar_g_balance_seeker_tag_ammo, autocvar_g_balance_seeker_reload_ammo);
W_SetupShot_ProjectileSize (self, '-2 -2 -2', '2 2 2', FALSE, 2, "weapons/tag_fire.wav", CHAN_WEAPON, autocvar_g_balance_seeker_missile_damage * autocvar_g_balance_seeker_missile_count);
other = missile; MUTATOR_CALLHOOK(EditProjectile);
}
-
-void Seeker_Flac_Explode ()
-{
- self.event_damage = SUB_Null;
-
- RadiusDamage (self, self.owner, autocvar_g_balance_seeker_flac_damage, autocvar_g_balance_seeker_flac_edgedamage, autocvar_g_balance_seeker_flac_radius, world, autocvar_g_balance_seeker_flac_force, self.projectiledeathtype, other);
-
- remove (self);
-}
-
-void Seeker_Flac_Touch()
-{
- PROJECTILE_TOUCH;
-
- Seeker_Flac_Explode();
-}
-
-void Seeker_Fire_Flac()
-{
- local entity missile;
- vector f_diff;
- float c;
-
- if not(self.items & IT_UNLIMITED_WEAPON_AMMO)
- self.ammo_rockets = self.ammo_rockets - autocvar_g_balance_seeker_flac_ammo;
-
- c = mod(self.bulletcounter, 4);
- switch(c)
- {
- case 0:
- f_diff = '-1.25 -3.75 0';
- break;
- case 1:
- f_diff = '+1.25 -3.75 0';
- break;
- case 2:
- f_diff = '-1.25 +3.75 0';
- break;
- case 3:
- default:
- f_diff = '+1.25 +3.75 0';
- break;
- }
- W_SetupShot_ProjectileSize (self, '-2 -2 -2', '2 2 2', FALSE, 2, "weapons/flac_fire.wav", CHAN_WEAPON, autocvar_g_balance_seeker_flac_damage);
- w_shotorg += f_diff;
-
- pointparticles(particleeffectnum("hagar_muzzleflash"), w_shotorg, w_shotdir * 1000, 1);
-
- missile = spawn ();
- missile.owner = missile.realowner = self;
- missile.classname = "missile";
- missile.bot_dodge = TRUE;
- missile.bot_dodgerating = autocvar_g_balance_seeker_flac_damage;
- missile.touch = Seeker_Flac_Explode;
- missile.use = Seeker_Flac_Explode;
- missile.think = adaptor_think2use_hittype_splash;
- missile.nextthink = time + autocvar_g_balance_seeker_flac_lifetime + autocvar_g_balance_seeker_flac_lifetime_rand;
- missile.solid = SOLID_BBOX;
- missile.movetype = MOVETYPE_FLY;
- missile.projectiledeathtype = WEP_SEEKER;
- missile.projectiledeathtype = WEP_SEEKER | HITTYPE_SECONDARY;
- missile.flags = FL_PROJECTILE;
-
- // csqc projectiles
- //missile.angles = vectoangles (missile.velocity);
- //missile.scale = 0.4; // BUG: the model is too big
-
- setorigin (missile, w_shotorg);
- setsize (missile, '-2 -2 -2', '2 2 2');
-
- W_SETUPPROJECTILEVELOCITY_UP(missile, g_balance_seeker_flac);
- CSQCProjectile(missile, TRUE, PROJECTILE_FLAC, TRUE);
-
- other = missile; MUTATOR_CALLHOOK(EditProjectile);
-}
-
+// ============================
+// Begin: Genereal weapon functions
+// ============================
void spawnfunc_weapon_seeker (void)
{
weapon_defaultspawnfunc(WEP_SEEKER);
float w_seeker(float req)
{
- if (req == WR_AIM)
- self.BUTTON_ATCK = bot_aim(autocvar_g_balance_seeker_tag_speed, 0, 20, FALSE);
+ float ammo_amount;
+ if (req == WR_AIM)
+ {
+ if (autocvar_g_balance_seeker_type == 1)
+ if (Seeker_Tagged_Info(self, self.enemy) != world)
+ self.BUTTON_ATCK = bot_aim(autocvar_g_balance_seeker_missile_speed_max, 0, autocvar_g_balance_seeker_missile_lifetime, FALSE);
+ else
+ self.BUTTON_ATCK2 = bot_aim(autocvar_g_balance_seeker_tag_speed, 0, autocvar_g_balance_seeker_tag_lifetime, FALSE);
+ else
+ self.BUTTON_ATCK = bot_aim(autocvar_g_balance_seeker_tag_speed, 0, autocvar_g_balance_seeker_tag_lifetime, FALSE);
+ }
else if (req == WR_THINK)
{
- if (self.BUTTON_ATCK)
- if (weapon_prepareattack(0, autocvar_g_balance_seeker_tag_refire))
+ if(autocvar_g_balance_seeker_reload_ammo && self.clip_load < min(autocvar_g_balance_seeker_missile_ammo, autocvar_g_balance_seeker_tag_ammo)) // forced reload
+ weapon_action(self.weapon, WR_RELOAD);
+
+ else if (self.BUTTON_ATCK)
+ {
+ if (autocvar_g_balance_seeker_type == 1)
{
- Seeker_Fire_Tag();
- weapon_thinkf(WFRAME_FIRE1, autocvar_g_balance_seeker_tag_animtime, w_ready);
+ if (weapon_prepareattack(0, autocvar_g_balance_seeker_missile_refire))
+ {
+ Seeker_Attack();
+ weapon_thinkf(WFRAME_FIRE2, autocvar_g_balance_seeker_missile_animtime, w_ready);
+ }
}
-
- if (self.BUTTON_ATCK2)
- if (weapon_prepareattack(1, autocvar_g_balance_seeker_flac_refire))
+ else
{
- Seeker_Fire_Flac();
- weapon_thinkf(WFRAME_FIRE2, autocvar_g_balance_seeker_flac_animtime, w_ready);
+ if (weapon_prepareattack(0, autocvar_g_balance_seeker_tag_refire))
+ {
+ Seeker_Fire_Tag();
+ weapon_thinkf(WFRAME_FIRE2, autocvar_g_balance_seeker_tag_animtime, w_ready);
+ }
}
+ }
+ else if (self.BUTTON_ATCK2)
+ {
+ if (autocvar_g_balance_seeker_type == 1)
+ {
+ if (weapon_prepareattack(0, autocvar_g_balance_seeker_tag_refire))
+ {
+ Seeker_Fire_Tag();
+ weapon_thinkf(WFRAME_FIRE2, autocvar_g_balance_seeker_tag_animtime, w_ready);
+ }
+ }
+ else
+ {
+ if (weapon_prepareattack(0, autocvar_g_balance_seeker_flac_refire))
+ {
+ Seeker_Fire_Flac();
+ weapon_thinkf(WFRAME_FIRE2, autocvar_g_balance_seeker_flac_animtime, w_ready);
+ }
+ }
+ }
}
else if (req == WR_PRECACHE)
{
precache_sound ("weapons/tag_fire.wav");
precache_sound ("weapons/flac_fire.wav");
precache_sound ("weapons/seeker_fire.wav");
+ //precache_sound ("weapons/reload.wav"); // until weapons have individual reload sounds, precache the reload sound somewhere else
}
else if (req == WR_SETUP)
+ {
weapon_setup(WEP_SEEKER);
+ self.current_ammo = ammo_rockets;
+ }
else if (req == WR_CHECKAMMO1)
- return self.ammo_rockets >= autocvar_g_balance_seeker_tag_ammo + autocvar_g_balance_seeker_missile_ammo;
+ {
+ ammo_amount = self.ammo_rockets >= autocvar_g_balance_seeker_missile_ammo;
+ ammo_amount += self.weapon_load[WEP_SEEKER] >= autocvar_g_balance_seeker_missile_ammo;
+ return ammo_amount;
+ }
else if (req == WR_CHECKAMMO2)
- return self.ammo_rockets >= autocvar_g_balance_seeker_flac_ammo;
+ {
+ ammo_amount = self.ammo_rockets >= autocvar_g_balance_seeker_tag_ammo;
+ ammo_amount += self.weapon_load[WEP_SEEKER] >= autocvar_g_balance_seeker_tag_ammo;
+ return ammo_amount;
+ }
+ else if (req == WR_RELOAD)
+ {
+ W_Reload(min(autocvar_g_balance_seeker_missile_ammo, autocvar_g_balance_seeker_tag_ammo), autocvar_g_balance_seeker_reload_ammo, autocvar_g_balance_seeker_reload_time, "weapons/reload.wav");
+ }
return TRUE;
};
#endif
{
vector org2;
org2 = w_org + w_backoff * 6;
- if(w_deathtype & HITTYPE_SECONDARY)
+ if(w_deathtype & HITTYPE_BOUNCE)
{
- pointparticles(particleeffectnum("flac_explode"), org2, '0 0 0', 1);
+ pointparticles(particleeffectnum("hagar_explode"), org2, '0 0 0', 1);
if(!w_issilent)
{
if (w_random<0.15)
- sound(self, CHAN_PROJECTILE, "weapons/flacexp1.wav", 1, ATTN_NORM);
+ sound(self, CHAN_PROJECTILE, "weapons/tagexp1.wav", 1, ATTN_NORM);
else if (w_random<0.7)
- sound(self, CHAN_PROJECTILE, "weapons/flacexp2.wav", 1, ATTN_NORM);
+ sound(self, CHAN_PROJECTILE, "weapons/tagexp2.wav", 1, ATTN_NORM);
else
- sound(self, CHAN_PROJECTILE, "weapons/flacexp3.wav", 1, ATTN_NORM);
+ sound(self, CHAN_PROJECTILE, "weapons/tagexp3.wav", 1, ATTN_NORM);
}
}
+ else if(w_deathtype & HITTYPE_HEADSHOT)
+ {
+ if(!w_issilent)
+ sound(self, CHAN_PROJECTILE, "weapons/tag_impact.wav", 1, ATTN_NORM);
+ }
else
{
- if(w_deathtype & HITTYPE_BOUNCE)
- {
- pointparticles(particleeffectnum("hagar_explode"), org2, '0 0 0', 1);
- if(!w_issilent)
- {
- if (w_random<0.15)
- sound(self, CHAN_PROJECTILE, "weapons/tagexp1.wav", 1, ATTN_NORM);
- else if (w_random<0.7)
- sound(self, CHAN_PROJECTILE, "weapons/tagexp2.wav", 1, ATTN_NORM);
- else
- sound(self, CHAN_PROJECTILE, "weapons/tagexp3.wav", 1, ATTN_NORM);
- }
- }
- else if(w_deathtype & HITTYPE_HEADSHOT)
- {
- if(!w_issilent)
- sound(self, CHAN_PROJECTILE, "weapons/tag_impact.wav", 1, ATTN_NORM);
- }
- else
+ pointparticles(particleeffectnum("hagar_explode"), org2, '0 0 0', 1);
+ if(!w_issilent)
{
- pointparticles(particleeffectnum("hagar_explode"), org2, '0 0 0', 1);
- if(!w_issilent)
- {
- if (w_random<0.15)
- sound(self, CHAN_PROJECTILE, "weapons/seekerexp1.wav", 1, ATTN_NORM);
- else if (w_random<0.7)
- sound(self, CHAN_PROJECTILE, "weapons/seekerexp2.wav", 1, ATTN_NORM);
- else
- sound(self, CHAN_PROJECTILE, "weapons/seekerexp3.wav", 1, ATTN_NORM);
- }
+ if (w_random<0.15)
+ sound(self, CHAN_PROJECTILE, "weapons/seekerexp1.wav", 1, ATTN_NORM);
+ else if (w_random<0.7)
+ sound(self, CHAN_PROJECTILE, "weapons/seekerexp2.wav", 1, ATTN_NORM);
+ else
+ sound(self, CHAN_PROJECTILE, "weapons/seekerexp3.wav", 1, ATTN_NORM);
}
}
}
else if(req == WR_PRECACHE)
{
- precache_sound("weapons/flacexp1.wav");
- precache_sound("weapons/flacexp2.wav");
- precache_sound("weapons/flacexp3.wav");
precache_sound("weapons/seekerexp1.wav");
precache_sound("weapons/seekerexp2.wav");
precache_sound("weapons/seekerexp3.wav");
precache_sound("weapons/tag_impact.wav");
}
else if (req == WR_SUICIDEMESSAGE)
- w_deathtypestring = "%s played with tiny rockets";
+ w_deathtypestring = _("%s played with tiny rockets");
else if (req == WR_KILLMESSAGE)
{
if(w_deathtype & HITTYPE_SECONDARY)
- w_deathtypestring = "%s ran into %s's flac";
+ w_deathtypestring = _("%s was tagged by %s");
else
- w_deathtypestring = "%s was tagged by %s";
+ w_deathtypestring = _("%s was pummeled by %s");
}
return TRUE;
}
#ifdef REGISTER_WEAPON
-REGISTER_WEAPON(SHOTGUN, w_shotgun, IT_SHELLS, 2, WEP_FLAG_NORMAL | WEP_TYPE_HITSCAN, BOT_PICKUP_RATING_LOW, "shotgun", "shotgun", "Shotgun");
+REGISTER_WEAPON(SHOTGUN, w_shotgun, IT_SHELLS, 2, WEP_FLAG_NORMAL | WEP_FLAG_RELOADABLE | WEP_TYPE_HITSCAN, BOT_PICKUP_RATING_LOW, "shotgun", "shotgun", _("Shotgun"))
#else
#ifdef SVQC
+
void W_Shotgun_Attack (void)
{
float sc;
bulletspeed = autocvar_g_balance_shotgun_primary_speed;
bulletconstant = autocvar_g_balance_shotgun_primary_bulletconstant;
+ W_DecreaseAmmo(ammo_shells, ammoamount, autocvar_g_balance_shotgun_reload_ammo);
+
W_SetupShot (self, autocvar_g_antilag_bullets && bulletspeed >= autocvar_g_antilag_bullets, 5, "weapons/shotgun_fire.wav", CHAN_WEAPON, d * bullets);
for (sc = 0;sc < bullets;sc = sc + 1)
fireBallisticBullet(w_shotorg, w_shotdir, spread, bulletspeed, 5, d, 0, f, WEP_SHOTGUN, 0, 1, bulletconstant);
endFireBallisticBullet();
- if not(self.items & IT_UNLIMITED_WEAPON_AMMO)
- self.ammo_shells = self.ammo_shells - ammoamount;
pointparticles(particleeffectnum("shotgun_muzzleflash"), w_shotorg, w_shotdir * 1000, autocvar_g_balance_shotgun_primary_ammo);
flash.nextthink = time + 0.06;
flash.effects = EF_ADDITIVE | EF_FULLBRIGHT | EF_LOWPRECISION;
W_AttachToShotorg(flash, '5 0 0');
-
}
void shotgun_meleethink (void)
Damage (trace_ent, self.owner, self.owner, autocvar_g_balance_shotgun_secondary_damage * min(1, f + 1), WEP_SHOTGUN | HITTYPE_SECONDARY , self.owner.origin + self.owner.view_ofs, force);
remove(self);
}
- else if(time >= self.cnt + meleetime) // missed, remove ent
+ else if(time >= self.cnt + meleetime || (self.owner.deadflag != DEAD_NO && autocvar_g_balance_shotgun_secondary_melee_no_doubleslap)) // missed or owner died, remove ent
remove(self);
else // continue swinging the weapon in hope of hitting someone :)
self.nextthink = time;
float w_shotgun(float req)
{
+ float ammo_amount;
if (req == WR_AIM)
if(vlen(self.origin-self.enemy.origin) <= autocvar_g_balance_shotgun_secondary_melee_range)
self.BUTTON_ATCK2 = bot_aim(1000000, 0, 0.001, FALSE);
self.BUTTON_ATCK = bot_aim(1000000, 0, 0.001, FALSE);
else if (req == WR_THINK)
{
- if (self.BUTTON_ATCK)
+ if(autocvar_g_balance_shotgun_reload_ammo && self.clip_load < autocvar_g_balance_shotgun_primary_ammo) // forced reload
+ {
+ // don't force reload an empty shotgun if its melee attack is active
+ if not(autocvar_g_balance_shotgun_secondary && self.ammo_shells < autocvar_g_balance_shotgun_primary_ammo)
+ weapon_action(self.weapon, WR_RELOAD);
+ }
+ else
{
- if (time >= self.shotgun_primarytime) // handle refire separately so the secondary can be fired straight after a primary
+ if (self.BUTTON_ATCK)
{
- if(weapon_prepareattack(0, autocvar_g_balance_shotgun_primary_animtime))
+ if (time >= self.shotgun_primarytime) // handle refire separately so the secondary can be fired straight after a primary
{
- W_Shotgun_Attack();
- self.shotgun_primarytime = time + autocvar_g_balance_shotgun_primary_refire;
- weapon_thinkf(WFRAME_FIRE1, autocvar_g_balance_shotgun_primary_animtime, w_ready);
+ if(weapon_prepareattack(0, autocvar_g_balance_shotgun_primary_animtime))
+ {
+ W_Shotgun_Attack();
+ self.shotgun_primarytime = time + autocvar_g_balance_shotgun_primary_refire;
+ weapon_thinkf(WFRAME_FIRE1, autocvar_g_balance_shotgun_primary_animtime, w_ready);
+ }
}
}
}
+ if (self.clip_load >= 0) // we are not currently reloading
if (self.BUTTON_ATCK2 && autocvar_g_balance_shotgun_secondary)
if (weapon_prepareattack(1, autocvar_g_balance_shotgun_secondary_refire))
{
precache_sound ("misc/itempickup.wav");
precache_sound ("weapons/shotgun_fire.wav");
precache_sound ("weapons/shotgun_melee.wav");
+ //precache_sound ("weapons/reload.wav"); // until weapons have individual reload sounds, precache the reload sound somewhere else
}
else if (req == WR_SETUP)
+ {
weapon_setup(WEP_SHOTGUN);
+ self.current_ammo = ammo_shells;
+ }
else if (req == WR_CHECKAMMO1)
- return self.ammo_shells >= autocvar_g_balance_shotgun_primary_ammo;
+ {
+ ammo_amount = self.ammo_shells >= autocvar_g_balance_shotgun_primary_ammo;
+ ammo_amount += self.weapon_load[WEP_SHOTGUN] >= autocvar_g_balance_shotgun_primary_ammo;
+ return ammo_amount;
+ }
else if (req == WR_CHECKAMMO2)
{
+ // melee attack is always available
return TRUE;
}
+ else if (req == WR_RELOAD)
+ {
+ W_Reload(autocvar_g_balance_shotgun_primary_ammo, autocvar_g_balance_shotgun_reload_ammo, autocvar_g_balance_shotgun_reload_time, "weapons/reload.wav");
+ }
return TRUE;
};
#endif
precache_sound("weapons/ric3.wav");
}
else if (req == WR_SUICIDEMESSAGE)
- w_deathtypestring = "%s did the impossible";
+ w_deathtypestring = _("%s did the impossible");
else if (req == WR_KILLMESSAGE)
{
if(w_deathtype & HITTYPE_SECONDARY)
- w_deathtypestring = "%2$s ^7slapped %1$s ^7around a bit with a large ^2shotgun";
+ w_deathtypestring = _("%2$s ^7slapped %1$s ^7around a bit with a large ^2shotgun");
else
- w_deathtypestring = "%s was gunned by %s";
+ w_deathtypestring = _("%s was gunned by %s");
}
return TRUE;
}
#ifdef REGISTER_WEAPON
-REGISTER_WEAPON(SNIPERRIFLE, w_sniperrifle, IT_NAILS, 7, WEP_FLAG_NORMAL | WEP_TYPE_HITSCAN, BOT_PICKUP_RATING_MID, "campingrifle", "sniperrifle", "Sniper Rifle");
+REGISTER_WEAPON(SNIPERRIFLE, w_sniperrifle, IT_NAILS, 7, WEP_FLAG_NORMAL | WEP_FLAG_RELOADABLE | WEP_TYPE_HITSCAN, BOT_PICKUP_RATING_MID, "campingrifle", "sniperrifle", _("Sniper Rifle"))
#else
#ifdef SVQC
-//Sniper rifle Primary mode: manually operated bolt*, Secondary: full automatic**
-//* Manually operating the bolt means that all the power of the gas is used to propell the bullet. In this mode the bolt is prevented from moving backwards in response to the firing of the bullet.
-//** In fully automatic mode some of the gas is used to extract and reload the next cartrige, thus there is less power and range.
.float sniperrifle_accumulator;
-float W_SniperRifle_CheckMaxBullets(float checkammo)
+void W_SniperRifle_FireBullet(float pSpread, float pDamage, float pHeadshotAddedDamage, float pForce, float pSpeed, float pLifetime, float pAmmo, float deathtype, float pBulletConstant, float pTracer, float pShots, string pSound)
{
- float maxbulls;
- maxbulls = autocvar_g_balance_sniperrifle_magazinecapacity;
- if(!maxbulls)
- maxbulls = 8; // match HUD
- if(checkammo)
- if not(self.items & IT_UNLIMITED_WEAPON_AMMO)
- maxbulls = min(maxbulls, floor(self.ammo_nails / min(autocvar_g_balance_sniperrifle_primary_ammo, autocvar_g_balance_sniperrifle_secondary_ammo)));
- if(self.sniperrifle_bulletcounter > maxbulls || !autocvar_g_balance_sniperrifle_magazinecapacity)
- self.sniperrifle_bulletcounter = maxbulls;
- return (self.sniperrifle_bulletcounter == maxbulls);
-}
+ float i;
-void W_SniperRifle_ReloadedAndReady()
-{
- float t;
- self.sniperrifle_bulletcounter = autocvar_g_balance_sniperrifle_magazinecapacity;
- W_SniperRifle_CheckMaxBullets(TRUE);
- t = ATTACK_FINISHED(self) - autocvar_g_balance_sniperrifle_reloadtime - 1;
- ATTACK_FINISHED(self) = t;
- w_ready();
-}
-
-float W_SniperRifle_Reload()
-{
- float t;
+ W_DecreaseAmmo(ammo_nails, pAmmo, autocvar_g_balance_sniperrifle_reload_ammo);
- W_SniperRifle_CheckMaxBullets(TRUE);
+ W_SetupShot (self, autocvar_g_antilag_bullets && pSpeed >= autocvar_g_antilag_bullets, 2, pSound, CHAN_WEAPON, (pDamage + pHeadshotAddedDamage) * pShots);
- if(self.ammo_nails < min(autocvar_g_balance_sniperrifle_primary_ammo, autocvar_g_balance_sniperrifle_secondary_ammo)) // when we get here, bulletcounter must be 0 or -1
- {
- print("cannot reload... not enough bullets\n");
- self.sniperrifle_bulletcounter = -1; // reload later
- W_SwitchToOtherWeapon(self);
- return 0;
- }
-
- if (self.sniperrifle_bulletcounter >= autocvar_g_balance_sniperrifle_magazinecapacity)
- return 0;
+ pointparticles(particleeffectnum("sniperrifle_muzzleflash"), w_shotorg, w_shotdir * 2000, 1);
- if (self.weaponentity)
- {
- if (self.weaponentity.wframe == WFRAME_RELOAD)
- return 0;
-
- // allow to switch away while reloading, but this will cause a new reload!
- self.weaponentity.state = WS_READY;
- }
-
- sound (self, CHAN_WEAPON2, "weapons/campingrifle_reload.wav", VOL_BASE, ATTN_NORM);
-
- t = max(time, ATTACK_FINISHED(self)) + autocvar_g_balance_sniperrifle_reloadtime + 1;
- ATTACK_FINISHED(self) = t;
-
- weapon_thinkf(WFRAME_RELOAD, autocvar_g_balance_sniperrifle_reloadtime, W_SniperRifle_ReloadedAndReady);
-
- self.sniperrifle_bulletcounter = -1;
-
- return 1;
-}
-
-void W_SniperRifle_CheckReloadAndReady()
-{
- w_ready();
- if(self.sniperrifle_bulletcounter <= 0)
- if(W_SniperRifle_Reload())
- return;
-}
-
-void W_SniperRifle_FireBullet(float pSpread, float pDamage, float pHeadshotAddedDamage, float pForce, float pSpeed, float pLifetime, float pAmmo, float deathtype, float pBulletConstant)
-{
- if not(self.items & IT_UNLIMITED_WEAPON_AMMO)
- self.ammo_nails -= pAmmo;
-
- if(deathtype & HITTYPE_SECONDARY)
- W_SetupShot (self, autocvar_g_antilag_bullets && pSpeed >= autocvar_g_antilag_bullets, 2, "weapons/campingrifle_fire2.wav", CHAN_WEAPON, autocvar_g_balance_sniperrifle_secondary_damage + autocvar_g_balance_sniperrifle_secondary_headshotaddeddamage);
- else
- W_SetupShot (self, autocvar_g_antilag_bullets && pSpeed >= autocvar_g_antilag_bullets, 2, "weapons/campingrifle_fire.wav", CHAN_WEAPON, autocvar_g_balance_sniperrifle_primary_damage + autocvar_g_balance_sniperrifle_primary_headshotaddeddamage);
-
- pointparticles(particleeffectnum("shotgun_muzzleflash"), w_shotorg, w_shotdir * 2000, 1);
-
- if(self.BUTTON_ZOOM) // if zoomed, shoot from the eye
+ if(self.BUTTON_ZOOM | self.BUTTON_ZOOMSCRIPT) // if zoomed, shoot from the eye
{
w_shotdir = v_forward;
w_shotorg = self.origin + self.view_ofs + ((w_shotorg - self.origin - self.view_ofs) * v_forward) * v_forward;
}
- if(deathtype & HITTYPE_SECONDARY)
- fireBallisticBullet(w_shotorg, w_shotdir, pSpread, pSpeed, pLifetime, pDamage, pHeadshotAddedDamage / pDamage, pForce, deathtype, (autocvar_g_balance_sniperrifle_secondary_tracer ? EF_RED : EF_BLUE), 1, pBulletConstant);
- else
- fireBallisticBullet(w_shotorg, w_shotdir, pSpread, pSpeed, pLifetime, pDamage, pHeadshotAddedDamage / pDamage, pForce, deathtype, (autocvar_g_balance_sniperrifle_primary_tracer ? EF_RED : EF_BLUE), 1, pBulletConstant);
+ for(i = 0; i < pShots; ++i)
+ fireBallisticBullet(w_shotorg, w_shotdir, pSpread, pSpeed, pLifetime, pDamage, pHeadshotAddedDamage / pDamage, pForce, deathtype, (pTracer ? EF_RED : EF_BLUE), 1, pBulletConstant);
endFireBallisticBullet();
if (autocvar_g_casings >= 2)
SpawnCasing (((random () * 50 + 50) * v_right) - (v_forward * (random () * 25 + 25)) - ((random () * 5 - 70) * v_up), 2, vectoangles(v_forward),'0 250 0', 100, 3, self);
-
- self.sniperrifle_bulletcounter = self.sniperrifle_bulletcounter - 1;
- W_SniperRifle_CheckMaxBullets(TRUE);
}
void W_SniperRifle_Attack()
{
- W_SniperRifle_FireBullet(autocvar_g_balance_sniperrifle_primary_spread, autocvar_g_balance_sniperrifle_primary_damage, autocvar_g_balance_sniperrifle_primary_headshotaddeddamage, autocvar_g_balance_sniperrifle_primary_force, autocvar_g_balance_sniperrifle_primary_speed, autocvar_g_balance_sniperrifle_primary_lifetime, autocvar_g_balance_sniperrifle_primary_ammo, WEP_SNIPERRIFLE, autocvar_g_balance_sniperrifle_primary_bulletconstant);
+ W_SniperRifle_FireBullet(autocvar_g_balance_sniperrifle_primary_spread, autocvar_g_balance_sniperrifle_primary_damage, autocvar_g_balance_sniperrifle_primary_headshotaddeddamage, autocvar_g_balance_sniperrifle_primary_force, autocvar_g_balance_sniperrifle_primary_speed, autocvar_g_balance_sniperrifle_primary_lifetime, autocvar_g_balance_sniperrifle_primary_ammo, WEP_SNIPERRIFLE, autocvar_g_balance_sniperrifle_primary_bulletconstant, autocvar_g_balance_sniperrifle_primary_tracer, autocvar_g_balance_sniperrifle_primary_shots, "weapons/campingrifle_fire.wav");
}
void W_SniperRifle_Attack2()
{
- W_SniperRifle_FireBullet(autocvar_g_balance_sniperrifle_secondary_spread, autocvar_g_balance_sniperrifle_secondary_damage, autocvar_g_balance_sniperrifle_secondary_headshotaddeddamage, autocvar_g_balance_sniperrifle_secondary_force, autocvar_g_balance_sniperrifle_secondary_speed, autocvar_g_balance_sniperrifle_secondary_lifetime, autocvar_g_balance_sniperrifle_secondary_ammo, WEP_SNIPERRIFLE | HITTYPE_SECONDARY, autocvar_g_balance_sniperrifle_secondary_bulletconstant);
+ W_SniperRifle_FireBullet(autocvar_g_balance_sniperrifle_secondary_spread, autocvar_g_balance_sniperrifle_secondary_damage, autocvar_g_balance_sniperrifle_secondary_headshotaddeddamage, autocvar_g_balance_sniperrifle_secondary_force, autocvar_g_balance_sniperrifle_secondary_speed, autocvar_g_balance_sniperrifle_secondary_lifetime, autocvar_g_balance_sniperrifle_secondary_ammo, WEP_SNIPERRIFLE | HITTYPE_SECONDARY, autocvar_g_balance_sniperrifle_secondary_bulletconstant, autocvar_g_balance_sniperrifle_secondary_tracer, autocvar_g_balance_sniperrifle_secondary_shots, "weapons/campingrifle_fire2.wav");
}
void spawnfunc_weapon_sniperrifle (void)
void W_SniperRifle_BulletHail_Continue()
{
float r, sw, af;
- W_SniperRifle_CheckReloadAndReady();
- if(self.sniperrifle_bulletcounter < 0)
- return; // reloading, so we are done
+
sw = self.switchweapon; // make it not detect weapon changes as reason to abort firing
af = ATTACK_FINISHED(self);
self.switchweapon = self.weapon;
else
{
// just one shot
- weapon_thinkf(fr, animtime, W_SniperRifle_CheckReloadAndReady);
+ weapon_thinkf(fr, animtime, w_ready);
}
}
.float bot_secondary_sniperriflemooth;
float w_sniperrifle(float req)
{
- float full;
+ float ammo_amount;
+
if (req == WR_AIM)
{
self.BUTTON_ATCK=FALSE;
}
else if (req == WR_THINK)
{
- if(self.sniperrifle_bulletcounter < 0) // forced reload (e.g. because interrupted)
- {
- if(self.switchweapon == self.weapon)
- if(self.weaponentity.state == WS_READY)
- W_SniperRifle_Reload();
- }
+ if(autocvar_g_balance_sniperrifle_reload_ammo && self.clip_load < min(autocvar_g_balance_sniperrifle_primary_ammo, autocvar_g_balance_sniperrifle_secondary_ammo)) // forced reload
+ weapon_action(self.weapon, WR_RELOAD);
else
{
self.sniperrifle_accumulator = bound(time - autocvar_g_balance_sniperrifle_bursttime, self.sniperrifle_accumulator, time);
{
if (autocvar_g_balance_sniperrifle_secondary)
{
- if (weapon_prepareattack_check(1, autocvar_g_balance_sniperrifle_secondary_refire))
- if (time >= self.sniperrifle_accumulator + autocvar_g_balance_sniperrifle_secondary_burstcost)
- {
- weapon_prepareattack_do(1, autocvar_g_balance_sniperrifle_secondary_refire);
- W_SniperRifle_BulletHail(autocvar_g_balance_sniperrifle_secondary_bullethail, W_SniperRifle_Attack2, WFRAME_FIRE2, autocvar_g_balance_sniperrifle_secondary_animtime, autocvar_g_balance_sniperrifle_primary_refire);
- self.sniperrifle_accumulator += autocvar_g_balance_sniperrifle_secondary_burstcost;
- }
+ if(autocvar_g_balance_sniperrifle_secondary_reload)
+ weapon_action(self.weapon, WR_RELOAD);
+ else
+ {
+ if (weapon_prepareattack_check(1, autocvar_g_balance_sniperrifle_secondary_refire))
+ if (time >= self.sniperrifle_accumulator + autocvar_g_balance_sniperrifle_secondary_burstcost)
+ {
+ weapon_prepareattack_do(1, autocvar_g_balance_sniperrifle_secondary_refire);
+ W_SniperRifle_BulletHail(autocvar_g_balance_sniperrifle_secondary_bullethail, W_SniperRifle_Attack2, WFRAME_FIRE2, autocvar_g_balance_sniperrifle_secondary_animtime, autocvar_g_balance_sniperrifle_primary_refire);
+ self.sniperrifle_accumulator += autocvar_g_balance_sniperrifle_secondary_burstcost;
+ }
+ }
}
}
}
precache_model ("models/weapons/g_campingrifle.md3");
precache_model ("models/weapons/v_campingrifle.md3");
precache_model ("models/weapons/h_campingrifle.iqm");
- precache_sound ("weapons/campingrifle_reload.wav");
precache_sound ("weapons/campingrifle_fire.wav");
precache_sound ("weapons/campingrifle_fire2.wav");
+ //precache_sound ("weapons/reload.wav"); // until weapons have individual reload sounds, precache the reload sound somewhere else
}
else if (req == WR_SETUP)
{
weapon_setup(WEP_SNIPERRIFLE);
-
- full = W_SniperRifle_CheckMaxBullets(TRUE);
- if(autocvar_g_balance_sniperrifle_auto_reload_on_switch)
- if(!full)
- self.sniperrifle_bulletcounter = -1;
+ self.current_ammo = ammo_nails;
}
else if (req == WR_CHECKAMMO1)
- return self.ammo_nails >= autocvar_g_balance_sniperrifle_primary_ammo;
+ {
+ ammo_amount = self.ammo_nails >= autocvar_g_balance_sniperrifle_primary_ammo;
+ ammo_amount += self.weapon_load[WEP_SNIPERRIFLE] >= autocvar_g_balance_sniperrifle_primary_ammo;
+ return ammo_amount;
+ }
else if (req == WR_CHECKAMMO2)
- return self.ammo_nails >= autocvar_g_balance_sniperrifle_secondary_ammo;
- else if (req == WR_RELOAD)
{
- W_SniperRifle_Reload();
+ ammo_amount = self.ammo_nails >= autocvar_g_balance_sniperrifle_secondary_ammo;
+ ammo_amount += self.weapon_load[WEP_SNIPERRIFLE] >= autocvar_g_balance_sniperrifle_secondary_ammo;
+ return ammo_amount;
}
else if (req == WR_RESETPLAYER)
{
self.sniperrifle_accumulator = time - autocvar_g_balance_sniperrifle_bursttime;
- self.sniperrifle_bulletcounter = autocvar_g_balance_sniperrifle_magazinecapacity;
- W_SniperRifle_CheckMaxBullets(FALSE);
+ }
+ else if (req == WR_RELOAD)
+ {
+ W_Reload(min(autocvar_g_balance_sniperrifle_primary_ammo, autocvar_g_balance_sniperrifle_secondary_ammo), autocvar_g_balance_sniperrifle_reload_ammo, autocvar_g_balance_sniperrifle_reload_time, "weapons/reload.wav");
}
return TRUE;
};
else if (req == WR_SUICIDEMESSAGE)
{
if(w_deathtype & HITTYPE_SECONDARY)
- w_deathtypestring = "%s shot themself automatically";
+ w_deathtypestring = _("%s shot themself automatically");
else
- w_deathtypestring = "%s sniped themself somehow";
+ w_deathtypestring = _("%s sniped themself somehow");
}
else if (req == WR_KILLMESSAGE)
{
if(w_deathtype & HITTYPE_SECONDARY)
{
if(w_deathtype & HITTYPE_BOUNCE)
- w_deathtypestring = "%s failed to hide from %s's bullet hail";
+ w_deathtypestring = _("%s failed to hide from %s's bullet hail");
else
- w_deathtypestring = "%s died in %s's bullet hail";
+ w_deathtypestring = _("%s died in %s's bullet hail");
}
else
{
if(w_deathtype & HITTYPE_BOUNCE)
{
// TODO special headshot message here too?
- w_deathtypestring = "%s failed to hide from %s's rifle";
+ w_deathtypestring = _("%s failed to hide from %s's rifle");
}
else
{
if(w_deathtype & HITTYPE_HEADSHOT)
- w_deathtypestring = "%s got hit in the head by %s";
+ w_deathtypestring = _("%s got hit in the head by %s");
else
- w_deathtypestring = "%s was sniped by %s";
+ w_deathtypestring = _("%s was sniped by %s");
}
}
}
#ifdef REGISTER_WEAPON
-REGISTER_WEAPON(TUBA, w_tuba, 0, 1, WEP_FLAG_HIDDEN | WEP_TYPE_SPLASH, BOT_PICKUP_RATING_MID, "tuba", "tuba", "@!#%'n Tuba");
+REGISTER_WEAPON(TUBA, w_tuba, 0, 1, WEP_FLAG_HIDDEN | WEP_TYPE_SPLASH, BOT_PICKUP_RATING_MID, "tuba", "tuba", _("@!#%'n Tuba"))
#else
#ifdef SVQC
//#define TUBA_NOTE(n) strcat("weapons/tuba_note", ftos(n), ".wav")
// precache_sound(TUBA_NOTE(i));
}
else if (req == WR_SETUP)
+ {
weapon_setup(WEP_TUBA);
+ self.current_ammo = ammo_none;
+ }
else if (req == WR_CHECKAMMO1)
return TRUE; // TODO use fuel?
else if (req == WR_CHECKAMMO2)
}
else if (req == WR_SUICIDEMESSAGE)
{
- w_deathtypestring = "%s hurt his own ears with the @!#%%'n Tuba";
+ w_deathtypestring = _("%s hurt his own ears with the @!#%%'n Tuba");
}
else if (req == WR_KILLMESSAGE)
{
- w_deathtypestring = "%s died of %s's great playing on the @!#%%'n Tuba";
+ w_deathtypestring = _("%s died of %s's great playing on the @!#%%'n Tuba");
}
return TRUE;
}
#ifdef REGISTER_WEAPON
-REGISTER_WEAPON(UZI, w_uzi, IT_NAILS, 3, WEP_FLAG_NORMAL | WEP_TYPE_HITSCAN, BOT_PICKUP_RATING_MID, "uzi", "uzi", "Machine Gun");
+REGISTER_WEAPON(UZI, w_uzi, IT_NAILS, 3, WEP_FLAG_NORMAL | WEP_FLAG_RELOADABLE | WEP_TYPE_HITSCAN, BOT_PICKUP_RATING_MID, "uzi", "uzi", _("Machine Gun"))
#else
#ifdef SVQC
// leilei's fancy muzzleflash stuff
-void Uzi_Flash_Go()
+void UZI_Flash_Go()
{
self.frame = self.frame + 2;
self.scale = self.scale * 0.5;
setmodel(self.muzzle_flash, "models/uziflash.md3"); // precision set below
self.muzzle_flash.scale = 0.75;
- self.muzzle_flash.think = Uzi_Flash_Go;
+ self.muzzle_flash.think = UZI_Flash_Go;
self.muzzle_flash.nextthink = time + 0.02;
self.muzzle_flash.frame = 2;
self.muzzle_flash.alpha = 0.75;
self.muzzle_flash.owner = self;
}
-void W_Uzi_Attack (float deathtype)
+void W_UZI_Attack (float deathtype)
{
- if not(self.items & IT_UNLIMITED_WEAPON_AMMO)
- {
- if (self.misc_bulletcounter == 1)
- self.ammo_nails = self.ammo_nails - autocvar_g_balance_uzi_first_ammo;
- else
- self.ammo_nails = self.ammo_nails - autocvar_g_balance_uzi_sustained_ammo;
- }
W_SetupShot (self, autocvar_g_antilag_bullets && autocvar_g_balance_uzi_speed >= autocvar_g_antilag_bullets, 0, "weapons/uzi_fire.wav", CHAN_WEAPON, ((self.misc_bulletcounter == 1) ? autocvar_g_balance_uzi_first_damage : autocvar_g_balance_uzi_sustained_damage));
if (!g_norecoil)
{
// casing code
if (autocvar_g_casings >= 2)
SpawnCasing (((random () * 50 + 50) * v_right) - (v_forward * (random () * 25 + 25)) - ((random () * 5 - 70) * v_up), 2, vectoangles(v_forward),'0 250 0', 100, 3, self);
+
+ if (self.misc_bulletcounter == 1)
+ W_DecreaseAmmo(ammo_nails, autocvar_g_balance_uzi_first_ammo, autocvar_g_balance_uzi_reload_ammo);
+ else
+ W_DecreaseAmmo(ammo_nails, autocvar_g_balance_uzi_sustained_ammo, autocvar_g_balance_uzi_reload_ammo);
}
// weapon frames
if (self.BUTTON_ATCK)
{
if (!weapon_action(self.weapon, WR_CHECKAMMO2))
+ if not(self.items & IT_UNLIMITED_WEAPON_AMMO)
{
W_SwitchWeapon_Force(self, w_getbestweapon(self));
w_ready();
return;
}
self.misc_bulletcounter = self.misc_bulletcounter + 1;
- W_Uzi_Attack(WEP_UZI);
+ W_UZI_Attack(WEP_UZI);
weapon_thinkf(WFRAME_FIRE1, autocvar_g_balance_uzi_sustained_refire, uzi_fire1_02);
}
else
void uzi_mode1_fire_auto()
{
float uzi_spread;
+
+ W_DecreaseAmmo(ammo_nails, autocvar_g_balance_uzi_sustained_ammo, autocvar_g_balance_uzi_reload_ammo);
if (self.BUTTON_ATCK)
weapon_thinkf(WFRAME_FIRE1, autocvar_g_balance_uzi_sustained_refire, uzi_mode1_fire_auto);
}
if (!weapon_action(self.weapon, WR_CHECKAMMO1))
+ if not(self.items & IT_UNLIMITED_WEAPON_AMMO)
{
W_SwitchWeapon_Force(self, w_getbestweapon(self));
w_ready();
if (autocvar_g_casings >= 2) // casing code
SpawnCasing (((random () * 50 + 50) * v_right) - (v_forward * (random () * 25 + 25)) - ((random () * 5 - 70) * v_up), 2, vectoangles(v_forward),'0 250 0', 100, 3, self);
-
- if not(self.items & IT_UNLIMITED_WEAPON_AMMO)
- self.ammo_nails = self.ammo_nails - autocvar_g_balance_uzi_sustained_ammo;
-
}
void uzi_mode1_fire_burst()
self.misc_bulletcounter = self.misc_bulletcounter + 1;
if (self.misc_bulletcounter == 0)
- weapon_thinkf(WFRAME_FIRE2, autocvar_g_balance_uzi_burst_refire2, w_ready);
+ {
+ ATTACK_FINISHED(self) = time + autocvar_g_balance_uzi_burst_refire2 * W_WeaponRateFactor();
+ weapon_thinkf(WFRAME_FIRE2, autocvar_g_balance_uzi_burst_animtime, w_ready);
+ }
else
{
weapon_thinkf(WFRAME_FIRE2, autocvar_g_balance_uzi_burst_refire, uzi_mode1_fire_burst);
float w_uzi(float req)
{
+ float ammo_amount;
if (req == WR_AIM)
if(vlen(self.origin-self.enemy.origin) < 3000 - bound(0, skill, 10) * 200)
self.BUTTON_ATCK = bot_aim(1000000, 0, 0.001, FALSE);
}
else if (req == WR_THINK)
{
- if(autocvar_g_balance_uzi_mode == 1)
+ if(autocvar_g_balance_uzi_reload_ammo && self.clip_load < min(max(autocvar_g_balance_uzi_sustained_ammo, autocvar_g_balance_uzi_first_ammo), autocvar_g_balance_uzi_burst_ammo)) // forced reload
+ weapon_action(self.weapon, WR_RELOAD);
+ else if(autocvar_g_balance_uzi_mode == 1)
{
if (self.BUTTON_ATCK)
if (weapon_prepareattack(0, 0))
w_ready();
return FALSE;
}
-
- if not(self.items & IT_UNLIMITED_WEAPON_AMMO)
- self.ammo_nails = self.ammo_nails - autocvar_g_balance_uzi_burst_ammo;
+
+ W_DecreaseAmmo(ammo_nails, autocvar_g_balance_uzi_burst_ammo, autocvar_g_balance_uzi_reload_ammo);
self.misc_bulletcounter = autocvar_g_balance_uzi_burst * -1;
uzi_mode1_fire_burst();
if (weapon_prepareattack(0, 0))
{
self.misc_bulletcounter = 1;
- W_Uzi_Attack(WEP_UZI); // sets attack_finished
+ W_UZI_Attack(WEP_UZI); // sets attack_finished
weapon_thinkf(WFRAME_FIRE1, autocvar_g_balance_uzi_sustained_refire, uzi_fire1_02);
}
if (weapon_prepareattack(1, 0))
{
self.misc_bulletcounter = 1;
- W_Uzi_Attack(WEP_UZI | HITTYPE_SECONDARY); // sets attack_finished
+ W_UZI_Attack(WEP_UZI | HITTYPE_SECONDARY); // sets attack_finished
weapon_thinkf(WFRAME_FIRE2, autocvar_g_balance_uzi_first_refire, w_ready);
}
}
precache_model ("models/weapons/v_uzi.md3");
precache_model ("models/weapons/h_uzi.iqm");
precache_sound ("weapons/uzi_fire.wav");
+ //precache_sound ("weapons/reload.wav"); // until weapons have individual reload sounds, precache the reload sound somewhere else
}
else if (req == WR_SETUP)
+ {
weapon_setup(WEP_UZI);
+ self.current_ammo = ammo_nails;
+ }
else if (req == WR_CHECKAMMO1)
+ {
if(autocvar_g_balance_uzi_mode == 1)
- return self.ammo_nails >= autocvar_g_balance_uzi_sustained_ammo;
+ ammo_amount = self.ammo_nails >= autocvar_g_balance_uzi_sustained_ammo;
else
- return self.ammo_nails >= autocvar_g_balance_uzi_first_ammo;
+ ammo_amount = self.ammo_nails >= autocvar_g_balance_uzi_first_ammo;
+
+ if(autocvar_g_balance_uzi_reload_ammo)
+ {
+ if(autocvar_g_balance_uzi_mode == 1)
+ ammo_amount += self.weapon_load[WEP_UZI] >= autocvar_g_balance_uzi_sustained_ammo;
+ else
+ ammo_amount += self.weapon_load[WEP_UZI] >= autocvar_g_balance_uzi_first_ammo;
+ }
+ return ammo_amount;
+ }
else if (req == WR_CHECKAMMO2)
+ {
if(autocvar_g_balance_uzi_mode == 1)
- return self.ammo_nails >= autocvar_g_balance_uzi_burst_ammo;
+ ammo_amount = self.ammo_nails >= autocvar_g_balance_uzi_burst_ammo;
else
- return self.ammo_nails >= autocvar_g_balance_uzi_first_ammo;
+ ammo_amount = self.ammo_nails >= autocvar_g_balance_uzi_first_ammo;
+
+ if(autocvar_g_balance_uzi_reload_ammo)
+ {
+ if(autocvar_g_balance_uzi_mode == 1)
+ ammo_amount += self.weapon_load[WEP_UZI] >= autocvar_g_balance_uzi_burst_ammo;
+ else
+ ammo_amount += self.weapon_load[WEP_UZI] >= autocvar_g_balance_uzi_first_ammo;
+ }
+ return ammo_amount;
+ }
+ else if (req == WR_RELOAD)
+ {
+ W_Reload(min(max(autocvar_g_balance_uzi_sustained_ammo, autocvar_g_balance_uzi_first_ammo), autocvar_g_balance_uzi_burst_ammo), autocvar_g_balance_uzi_reload_ammo, autocvar_g_balance_uzi_reload_time, "weapons/reload.wav");
+ }
return TRUE;
};
#endif
precache_sound("weapons/ric3.wav");
}
else if (req == WR_SUICIDEMESSAGE)
- w_deathtypestring = "%s did the impossible";
+ w_deathtypestring = _("%s did the impossible");
else if (req == WR_KILLMESSAGE)
{
if(w_deathtype & HITTYPE_SECONDARY)
- w_deathtypestring = "%s was sniped by %s";
+ w_deathtypestring = _("%s was sniped by %s");
else
- w_deathtypestring = "%s was riddled full of holes by %s";
+ w_deathtypestring = _("%s was riddled full of holes by %s");
}
return TRUE;
}
self.drawmask = MASK_NORMAL;
}
+void CL_RotateMoves(vector ang) = #638;
+void WarpZone_Teleported_Read(float isnew)
+{
+ vector v;
+ self.classname = "warpzone_teleported";
+ v_x = ReadCoord();
+ v_y = ReadCoord();
+ v_z = ReadCoord();
+ if(!isnew)
+ return;
+ self.warpzone_transform = v;
+ R_SetView3fv(VF_CL_VIEWANGLES, WarpZone_TransformVAngles(self, R_SetView3fv(VF_CL_VIEWANGLES)));
+ if(checkextension("DP_CSQC_ROTATEMOVES"))
+ CL_RotateMoves(v);
+ //CL_RotateMoves('0 90 0');
+}
+
float warpzone_fixingview;
float warpzone_fixingview_drawexteriormodel;
//float warpzone_fixingview_sidespeed;
void WarpZone_Read(float bIsNewEntity);
void WarpZone_Camera_Read(float bIsNewEntity);
+void WarpZone_Teleported_Read(float bIsNewEntity);
vector warpzone_fixview_origin;
vector warpzone_fixview_angles;
}
int isnan(float x)
{
- return !(x + x == x + x);
+ float y;
+ y = x;
+ return (x != y);
}
int isnormal(float x)
{
.vector warpzone_oldorigin, warpzone_oldvelocity, warpzone_oldangles;
.float warpzone_teleport_time;
+.entity warpzone_teleport_zone;
void WarpZone_StoreProjectileData(entity e)
{
WarpZone_PostTeleportPlayer_Callback(player);
}
+float WarpZone_Teleported_Send(entity to, float sf)
+{
+ WriteByte(MSG_ENTITY, ENT_CLIENT_WARPZONE_TELEPORTED);
+ WriteCoord(MSG_ENTITY, self.angles_x);
+ WriteCoord(MSG_ENTITY, self.angles_y);
+ WriteCoord(MSG_ENTITY, self.angles_z);
+ return TRUE;
+}
+
float WarpZone_Teleport(entity player)
{
vector o0, a0, v0, o1, a1, v1;
WarpZone_TeleportPlayer(self, player, o1 - player.view_ofs, a1, v1);
WarpZone_StoreProjectileData(player);
player.warpzone_teleport_time = time;
+ player.warpzone_teleport_zone = self;
+#ifndef WARPZONE_USE_FIXANGLE
+ // instead of fixangle, send the transform to the client for smoother operation
+ player.fixangle = FALSE;
+
+ entity ts = spawn();
+ setmodel(ts, "null");
+ ts.SendEntity = WarpZone_Teleported_Send;
+ ts.SendFlags = 0xFFFFFF;
+ ts.drawonlytoclient = player;
+ ts.think = SUB_Remove;
+ ts.nextthink = time + 1;
+ ts.owner = player;
+ ts.enemy = self;
+ ts.effects = EF_NODEPTHTEST;
+ ts.classname = "warpzone_teleported";
+ ts.angles = self.warpzone_transform;
+#endif
return 1;
}
WarpZones_Reconnect();
}
- entity oldself, oldother;
- oldself = self;
- oldother = other;
- for(e = world; (e = nextent(e)); )
+ if(warpzone_warpzones_exist)
{
- WarpZone_StoreProjectileData(e);
- float f;
- f = clienttype(e);
- if(f == CLIENTTYPE_REAL)
- {
- if(e.solid != SOLID_NOT) // not spectating?
- continue;
- if(e.movetype != MOVETYPE_NOCLIP && e.movetype != MOVETYPE_FLY) // not spectating? (this is to catch observers)
- continue;
- self = WarpZone_Find(e.origin + e.mins, e.origin + e.maxs);
- if(!self)
- continue;
- other = e;
- if(WarpZoneLib_ExactTrigger_Touch())
- continue;
- WarpZone_Teleport(e); // NOT triggering targets by this!
- }
- if(f == CLIENTTYPE_NOTACLIENT)
+ entity oldself, oldother;
+ oldself = self;
+ oldother = other;
+ for(e = world; (e = nextent(e)); )
{
- for(; (e = nextent(e)); )
- WarpZone_StoreProjectileData(e);
- break;
+ WarpZone_StoreProjectileData(e);
+ float f;
+ f = clienttype(e);
+ if(f == CLIENTTYPE_REAL)
+ {
+ if(e.solid != SOLID_NOT) // not spectating?
+ continue;
+ if(e.movetype != MOVETYPE_NOCLIP && e.movetype != MOVETYPE_FLY) // not spectating? (this is to catch observers)
+ continue;
+ self = WarpZone_Find(e.origin + e.mins, e.origin + e.maxs);
+ if(!self)
+ continue;
+ other = e;
+ if(WarpZoneLib_ExactTrigger_Touch())
+ continue;
+ WarpZone_Teleport(e); // NOT triggering targets by this!
+ }
+ if(f == CLIENTTYPE_NOTACLIENT)
+ {
+ for(; (e = nextent(e)); )
+ WarpZone_StoreProjectileData(e);
+ break;
+ }
}
+ self = oldself;
+ other = oldother;
}
- self = oldself;
- other = oldother;
}
.float warpzone_reconnecting;
{
spawnfunc_trigger_warpzone_reconnect(); // both names make sense here :(
}
+
+void WarpZone_PlayerPhysics_FixVAngle(void)
+{
+#ifndef WARPZONE_DONT_FIX_VANGLE
+ if(clienttype(self) == CLIENTTYPE_REAL)
+ if(self.v_angle_z <= 360) // if not already adjusted
+ if(time - self.ping * 0.001 < self.warpzone_teleport_time)
+ {
+ self.v_angle = WarpZone_TransformVAngles(self.warpzone_teleport_zone, self.v_angle);
+ self.v_angle_z += 720; // mark as adjusted
+ }
+#endif
+}
// server must also define a float called ENT_CLIENT_WARPZONE for the initial byte of WarpZone entities
const float ENT_CLIENT_WARPZONE;
const float ENT_CLIENT_WARPZONE_CAMERA;
+
+void WarpZone_PlayerPhysics_FixVAngle(void);
maxplayers $menu_maxplayers
exec data/campaign.cfg
exec config_update.cfg
+exec font-xolonium.cfg
exec autoexec.cfg
stuffcmds
//startdemos demos/demo1 demos/demo2 demos/demo3
--- /dev/null
+models/items/5hp
+{
+ dpreflectcube cubemaps/default/sky
+ {
+ map models/items/5hp.tga
+ rgbgen lightingDiffuse
+ }
+}
+models/items/h25
+{
+ dpreflectcube cubemaps/default/sky
+ {
+ map models/items/h25.tga
+ rgbgen lightingDiffuse
+ }
+}
+models/items/red
+{
+ dpreflectcube cubemaps/default/sky
+ {
+ map models/items/red.tga
+ blendfunc filter
+ rgbgen lightingDiffuse
+ }
+}
+models/items/h50
+{
+ dpreflectcube cubemaps/default/sky
+ {
+ map models/items/h50.tga
+ rgbgen lightingDiffuse
+ }
+}
+models/items/h_mega
+{
+ dpreflectcube cubemaps/default/sky
+ {
+ map models/items/h_mega.tga
+ rgbgen lightingDiffuse
+ }
+}
\ No newline at end of file
--- /dev/null
+models/relics/relic
+{
+ dpreflectcube cubemaps/default/sky
+ {
+ map models/relics/relic.tga
+ rgbgen lightingDiffuse
+ }
+}
+models/relics/relic_ring
+{
+ {
+ map models/relics/relic_ring.tga
+ blendfunc add
+ rgbgen lightingDiffuse
+ }
+}
+models/relics/sign_resistance
+{
+ cull none
+ {
+ map models/relics/sign_resistance.tga
+ blendfunc add
+ rgbgen lightingDiffuse
+ }
+}
+models/relics/sign_regeneration
+{
+ cull none
+ {
+ map models/relics/sign_regeneration.tga
+ blendfunc add
+ rgbgen lightingDiffuse
+ }
+}
+models/relics/sign_vampire
+{
+ cull none
+ {
+ map models/relics/sign_vampire.tga
+ blendfunc add
+ rgbgen lightingDiffuse
+ }
+}
+models/relics/sign_ammo
+{
+ cull none
+ {
+ map models/relics/sign_ammo.tga
+ blendfunc add
+ rgbgen lightingDiffuse
+ }
+}
+models/relics/sign_damage
+{
+ cull none
+ {
+ map models/relics/sign_damage.tga
+ blendfunc add
+ rgbgen lightingDiffuse
+ }
+}
+models/relics/sign_splashdamage
+{
+ cull none
+ {
+ map models/relics/sign_splashdamage.tga
+ blendfunc add
+ rgbgen lightingDiffuse
+ }
+}
+models/relics/sign_firingspeed
+{
+ cull none
+ {
+ map models/relics/sign_firingspeed.tga
+ blendfunc add
+ rgbgen lightingDiffuse
+ }
+}
+models/relics/sign_disability
+{
+ cull none
+ {
+ map models/relics/sign_disability.tga
+ blendfunc add
+ rgbgen lightingDiffuse
+ }
+}
+models/relics/sign_teamboost
+{
+ cull none
+ {
+ map models/relics/sign_teamboost.tga
+ blendfunc add
+ rgbgen lightingDiffuse
+ }
+}
+models/relics/sign_speed
+{
+ cull none
+ {
+ map models/relics/sign_speed.tga
+ blendfunc add
+ rgbgen lightingDiffuse
+ }
+}
+models/relics/sign_jump
+{
+ cull none
+ {
+ map models/relics/sign_jump.tga
+ blendfunc add
+ rgbgen lightingDiffuse
+ }
+}
+models/relics/sign_flight
+{
+ cull none
+ {
+ map models/relics/sign_flight.tga
+ blendfunc add
+ rgbgen lightingDiffuse
+ }
+}
+models/relics/sign_invisible
+{
+ cull none
+ {
+ map models/relics/sign_invisible.tga
+ blendfunc add
+ rgbgen lightingDiffuse
+ }
+}
+models/relics/sign_radioactive
+{
+ cull none
+ {
+ map models/relics/sign_radioactive.tga
+ blendfunc add
+ rgbgen lightingDiffuse
+ }
+}
+models/relics/sign_resurrection
+{
+ cull none
+ {
+ map models/relics/sign_resurrection.tga
+ blendfunc add
+ rgbgen lightingDiffuse
+ }
+}
+models/relics/sign_vengeance
+{
+ cull none
+ {
+ map models/relics/sign_vengeance.tga
+ blendfunc add
+ rgbgen lightingDiffuse
+ }
+}
\sv_vote_simple_majority_factor\Simple majority wins a vote
\XonoticMultiplayerDialog/Advanced settings...\Advanced server settings
\XonoticMultiplayerDialog/Mutators...\Mutators and weapon arenas
+\g_dodging\Enable dodging
\g_cloaked\All players are almost invisible
\g_footsteps\Enable footstep sounds
-\g_midair\Only possible to inflict damage on your enemy while he's airborn
+\g_midair\Only possible to inflict damage on your enemy while he's airborne
\g_vampire\Damage done to your enemy gets added to your own health
\g_bloodloss\Amount of health below which your player gets stunned because of blood loss
\sv_gravity\Make things fall to the ground slower, lower value means lower gravity
\g_weaponarena\Selecting a weapon arena will give all players that weapon at spawn as well as unlimited ammo, and disable all other weapon pickups.
\menu_weaponarena_with_laser\Also enable the laser in the weapon arena
\g_minstagib\Players will be given the Minstanex, which is a railgun with infinite damage. If the player runs out of ammo, he will have 10 seconds to find some or if he fails to do so, face death. The secondary fire mode is a laser which does not inflict any damage and is good for doing trickjumps.
-\g_nixnex\No items Xonotic - instead of pickup items, everyone plays with the same weapon. After some time, a countdown will start, after which everyone will switch to another weapon.
-\g_nixnex_with_laser\Always carry the laser as an additional weapon in NixNex
+\g_nix\No items Xonotic - instead of pickup items, everyone plays with the same weapon. After some time, a countdown will start, after which everyone will switch to another weapon.
+\g_nix_with_laser\Always carry the laser as an additional weapon in Nix
\XonoticMultiplayerDialog/All\Select all maps
\XonoticMultiplayerDialog/None\Unselect all maps
--- /dev/null
+0
+\XonoticSingleplayerDialog\Spiele die Einzelspieler-Kampagne oder habe Instant-Action Spiele gegen Bots
+
+
+\XonoticMultiplayerDialog\Spiele online, gegen deine Freunde im LAN, gucke dir Demos an oder ändere deine Spieler-Einstellungen
+\XonoticMultiplayerDialog/Server\Finde Server und spiele online
+\menu_slist_showempty\Aktiviere die Anzeige von leeren Servern
+\menu_slist_showfull\Aktiviere die Anzeige von vollen Servern, die keinen freien Platz mehr haben
+\net_slist_pause\Unterbreche die automatische Aktualisierung der Serverliste um ein "Herumspringen" zu verhindern
+\XonoticMultiplayerDialog/Info\Lass dir mehr Informationen über den markierten Server anzeigen
+\XonoticMultiplayerDialog/Bookmark\Setze ein Lesezeichen für den markierten Server um ihn beim nächsten mal schneller wiederzufinden
+\XonoticMultiplayerDialog/Havoc\Wechsel in den Havoc Modus, welcher zu Änderungen des Spielverhaltens führt
+\XonoticMultiplayerDialog/Starten\Hoste dein eigenes Spiel
+\XonoticMultiplayerDialog/Demos\Gucke dir Demos an
+\XonoticMultiplayerDialog/Spieler-Einstellungen\Ändere deine Spieler-Einstellungen
+
+\XonoticTeamSelectDialog/'bestem' Team beitreten\Automatische Auswahl des Teams (bevorzugt)
+\XonoticTeamSelectDialog/rot\Trete dem roten Team bei
+\XonoticTeamSelectDialog/blau\Trete dem blauen Team bei
+\XonoticTeamSelectDialog/gelb\Trete dem gelben Team bei
+\XonoticTeamSelectDialog/pink\Trete dem pinken Team bei
+
+\timelimit_override\Wähle ein Zeitlimit bei dem die Map endet oder verwende den Map-Standard für diese Option.
+\fraglimit_override\Wähle die Anzahl an Frags die benötigt wird, damit die Map endet oder verwende den Map-Standard für diese Option.
+\menu_maxplayers\Wähle die maximale Anzahl der Spieler, welche sich mit deinem Server gleichzeitig verbinden dürfen. Freie Plätze können mit Bots aufgefüllt werden.
+\bot_number\Wähle die maximale Anzahl von Bots auf dem Server.
+\skill\Stelle die Stärke der Bots ein.
+\g_maplist_votable\Anzahl von Maps, welche am Ende des Spiels zur Wahl stehen.
+\sv_vote_simple_majority_factor\Die einfache Mehrheit gewinnt die Abstimmung.
+\XonoticMultiplayerDialog/Erweiterte Einstellungen...\Erweiterte Einstellungen für den Server
+\XonoticMultiplayerDialog/Mutators...\Wähle Mutators und Waffen-Arenen.
+\g_dodging\Ausweichmodus: Es ist möglich rasch zur Seite zu springen (spezielle Bewegung).
+\g_cloaked\Tarnmodus: Alle Spieler sind fast unsichtbar.
+\g_footsteps\Schrittklang: Schritte von Spielern erzeugen Geräusche.
+\g_midair\"Luft"modus: Dem Gegner Schaden zuzufügen ist nur möglich, wenn er sich in der Luft befindet.
+\g_vampire\Vampirmodus: Der Schaden dem du anderen Spielern zufügst, wird deiner eigenen Lebensenergie hinzugefügt.
+\g_bloodloss\Blutverlust: Aktiviere diesen Modus und stelle den Wert der Lebensenergie, bei der Spieler auf Grund von Blutverlust betäubt wirken, ein.
+\sv_gravity\Verringere die Schwerkraft und lass Gegenstände langsamer zu Boden fallen, ein niedrigerer Wert verringert die Gravitation.
+\g_grappling_hook\Neu erzeugte/auferstandene Spieler starten mit dem Enterhaken.
+\g_jetpack\Neu erzeugte/auferstandene Spieler starten mit dem Jetpack.
+\g_pinata\Gestorbene Spieler lassen alle Waffen fallen, die sie besaßen - Waffen verschwinden nicht.
+\g_rocket_flying\Raketen fliegen in allen Physikeinstellungen.
+\g_weapon_stay\Alle Waffen bleiben liegen, auch wenn sie aufgenommen wurden.
+\g_weaponarena\Waffen-Arenen: Die Auswahl einer Waffen-Arena führt dazu, dass jeder Spieler mit der gewählten Waffe startet. Diese hat unendlich viel Munition, andere Waffen sind nicht vorhanden. - Spezielle Waffen-Arenen: Spieler starten mit allen Waffen und unendlich viel Munition
+\menu_weaponarena_with_laser\Aktiviere auch den Laser in der Waffen-Arena.
+\g_minstagib\Alle Spieler starten mit der Minstanex, eine elektromagnetische Schienenkanone mit unendlich viel Schaden. Wenn ein Spieler keine Munition mehr hat, bleiben ihm 10 Sekunden um neue zu finden, ansonsten stirbt er. Der 2. Feuermodus ist Laser, welcher keinen Schaden hinzufügen kann. Dieser eignet sich gut für Tricksprünge.
+\g_nix\Es gibt keine aufzusammelnden Gegenstände in Xonotic - Anstelle der Möglichkeit Waffen aufzusammeln, spielen alle mit der gleichen Waffe. Nach einiger Zeit startet ein Countdown, danach wechseln alle Spieler zu einer neuen gleichen Waffe.
+\g_nix_with_laser\In Nix ist als zweite Waffe der Laser vorhanden.
+\XonoticMultiplayerDialog/All\Wähle alle Maps.
+\XonoticMultiplayerDialog/None\Wähle alle Maps ab.
+
+
+\XonoticMultiplayerDialog/Timedemo\Mache einen Benchmark-Test der markierten Demo. Die Demo wird in Zeitraffer, -lupe abgespielt. Das Ergebnis wird in "gamedir/data/benchmark.log" gespeichert.
+
+\fov\Stelle den Wert für das Sichtfeld in Grad (60-130) ein - Standard ist 90.
+\cl_bobcycle\Setze einen Wert für das Sicht-Wackeln oder deaktiviere es vollständig.
+\cl_zoomfactor\Setze den Vergrößerungsfaktor.
+\cl_zoomsensitivity\Bestimme die Änderung der Empfindlichkeit während des Vergrößerns. Werte von 0 (geringste Sensiviät) bis 1 (keine Änderung der Sensivität sind möglich).
+\cl_zoomspeed\Bestimme wie schnell der angegebene Vergrößerungsfaktor erreicht werden soll, deaktivieren für sofortige Vergrößerung.
+\XonoticMultiplayerDialog/Waffeneinstellungen...\Lege deine bevorzugten Waffen fest, den automatischen Wechsel der Waffen und weiteres.
+
+\cl_weaponpriority_useforcycling\Verwende die oben angegebene Liste, wenn die Waffen mit Hilfe des Mausrads gewechselt werden.
+\cl_autoswitch\Wechsel automatisch zu der neu aufgesammelten Waffe, wenn diese in der Liste weiter oben steht als die, welche Du gerade trägst.
+\r_drawviewmodel\Darstellung der Waffe im Spiel.
+\cl_gunalign\Position der Waffe, links oder rechts; erfordert Neustart.
+
+\crosshair_per_weapon\Ermögliche unterschiedliche Fadenkreuze für unterschiedliche Waffen. Diese Option ist zu empfehlen, wenn du ohne dargstelltes Waffenmodel spielst.
+\crosshair_color_override\Ermögliche unterschiedliche Farben für unterschiedliche Fandenkreuze, abhängig von der Waffe die gerade getragen wird.
+\crosshair_size\Lege die Größe des Fadenkreuzes fest.
+\crosshair_color_alpha\Lege die Opazität des Fadenkreuzes fest.
+\crosshair_color_by_health\Die Einfärbung des Fadenkreuzes ist abhängig von der Lebensenergie.
+\crosshair_color_red\Roter Farbanteil des Fadenkreuzes.
+\crosshair_color_green\Grüner Farbanteil des Fadenkreuzes.
+\crosshair_color_blue\Blauer Farbanteil des Fadenkreuzes.
+\sbar_hudselector\Verwende das alte HUD Layout.
+\XonoticMultiplayerDialog/Radar, HUD & Waypoints...\Stelle Radar, HUD & Wegpunkte ein.
+\_cl_name\Lege deinen Namen im Spiel fest.
+
+\XonoticSettingsDialog\Ändere die Spiel-Einstellungen
+\XonoticCreditsDialog\Die Xonotic Entwickler
+\XonoticTeamSelectDialog\-
+\XonoticMutatorsDialog\-
+\XonoticMapInfoDialog\-
+\XonoticUserbindEditDialog\-
+\XonoticWinnerDialog\-
+\XonoticWeaponsDialog\-
+\XonoticRadarDialog\-
+\XonoticServerInfoDialog\-
+\XonoticCvarsDialog\-
+
+\XonoticQuitDialog\Beende das Spiel
+\XonoticQuitDialog/Ja\Zurück an die Arbeit...
+\XonoticQuitDialog/Nein\Ich muss noch ein paar Typen fraggen!
+
+\XonoticSettingsDialog/Eingabe\Einstellungen der Eingabe
+\sensitivity\Geschwindigkeitsmultiplikator um die Sensivität der Maus einzustellen.
+\menu_mouse_speed\Multiplikator für die Geschwindigkeit der Maus im Menü, hat keinen Effekt auf die Mausbewegung im Spiel.
+\m_filter\Glättet die Mausbewegung, aber verringert die Reaktion des Zielens etwas.
+\m_pitch\Umkehren der Mausbewegung entlang der Y-Achse.
+\vid_dgamouse\Verwende die DGA Maus Eingabe.
+\joy_enable\Zur Verwendung eines Joysticks aktivieren.
+\con_closeontoggleconsole\Schließen der Konsole auch mit der Taste, die zum Öffnen verwendet wird
+\sbar_showbinds\Darstellung von gedrückten Aktionen / gedrückten Tasten, während des Spielens.
+\cl_showpressedkeys\Lass dir die gedrückten Tasten während des Spielens anzeigen.
+
+\XonoticSettingsDialog/Grafik\Grafik Einstellungen
+
+\vid_width\Einstellung der zu verwendenden Bildschirmauflösung
+\vid_bitsperpixel\Bestimme wie viele Bits pro Pixel (BPP) gerendert werden sollen, 32 ist der bevorzugte Wert
+\vid_fullscreen\Aktiviere den Vollbildmodus (Standard: aktiviert)
+\vid_vsync\Aktiviere die vertikale Synchronization um ein Zeilenreißen zu unterdrücken, die FPS werden auf den Wert der Bildwiederholungsrate deines Monitors gesetzt (Standard: deaktiviert)
+\vid_gl20\Aktiviere OpenGL 2.0 für Lichteffekte (Standard: aktiviert)
+\gl_vbo\Speicher Eckpunkte und/oder Dreiecke der statischen Geometrie im Videospeicher um ein schnelleres Rendern zu ermöglichen (Standard: Eckpunkte, einige Dreiecke)
+\r_depthfirst\Verhindere das Überblenden, in dem das Tiefenbild der Szene vor dem Licht gerendert wird (Standard: nur Map)
+\gl_texturecompression\Komprimiere die Texturen für Grafikkarten mit einem geringen Grafikspeicher (Standard: deaktiviert)
+\gl_finish\Die Grafikkarte wartet bis die CPU die Berechnung eines jeden Frames beendet hat, dies kann bei merkwürdigen Verhalten der Eingabe helfen (Standard: deaktiviert)
+\v_brightness\Helligkeit von Schwarz (Standard: 0)
+\v_contrast\Helligkeit von Weiß (Standard: 1)
+\v_gamma\Korrekturwert für die Kontraststärke (Gamma-Wert), Helligkeitseffekt, der keinen Einfluss auf Weiß und Schwarz hat (Standard: 1)
+\v_contrastboost\Faktor für die Änderung des Kontrasts in dunklen Bildteilen (Standard: 1)
+\r_glsl_saturation\Sättigungskorrektur (0 = Graustufenbild, 1 = normales Bild, 2 = übersättigtes Bild), benötigt GLSL Farbkontrolle (Standard: 1)
+\v_glslgamma\Aktiviere die Verwendung von GLSL um die Gamma-Korrektur zu ermöglichen, kann die Leistung stark verringern (Standard: Aus)
+\r_ambient\Umgebungslicht, ein zu hoch eingestellter Wert lässt die Map matt und flach erscheinen (Standard: 4)
+\r_hdr_scenebrightness\Globales Rendern der Lichtstärke (Standard: 1)
+\vid_samples\Aktiviere Antialiasing um Ecken der 3D-Geometire zu glätten. Kann die Leistung stark verringern (Standard: Aus)
+\v_flipped\Linkshänder Modus (Standard: deaktiviert)
+
+\XonoticSettingsDialog/Effekte\Einstellungen der Effekte
+\r_subdivisions_tolerance\Ändere die Qualität der Geometrie in der Map - Rundheit/Glattheit von Kurven (Standard: Gut)
+\gl_picmip\Ändere die Auflösung von Texturen. Ein geringerer Wert verringert die Auslastung des Speichers, aber lässt die Texturen verschwommen aussehen. (Standard: Gut)
+\gl_texturecompression\Wenn aktiviert, wird die Kompression von Texturen verhindert.
+\r_picmipworld\Wenn aktiviert, wird nur die Texturqualität von Modellen verringert (Standard: aktiviert)
+\mod_q3bsp_nolightmaps\Verwende hochauflösende Lightmaps, welche sehr schön aussehen, aber etwas mehr Videospeicher benötigen. (Standard: aktiviert)
+\cl_particles_quality\Faktor für die Anzahl von Partikel. Weniger beudetet weniger Parikel, was zu einer besseren Performance führt. (Standard: 1.0)
+\r_drawparticles_drawdistance\Weiter, als eingestellt, entfernte Partikel werden nicht dargestellt (Standard 1000)
+\cl_decals\Aktiviere Dekore (Einschusslöcher und Blut) (Standard: aktiviert)
+\r_drawdecals_drawdistance\Weiter, als eingestellt, entfernte Dekore werden nicht dargestellt (Standard: 300)
+\cl_decals_time\Zeit in Sekunden nach dem Dekore verschwinden (Standard: 2)
+\cl_gentle\Blut und Fleischteile werden durch andere, nicht blutige, Effekte ersetzt
+\cl_nogibs\Verringere die Anzahl von Fleischteilen oder entferne sie vollständig (Standard: Viele)
+\v_kicktime\Wert für die Dauer der Beeinträchtigung der Sicht durch einen Schaden (Standard: 0)
+\gl_texture_anisotropy\Qualität für das Filtern von Anisotropie (Standard: Aus)
+\r_glsl_deluxemapping\Verwende ein-Pixel Lichteffekte (Standard: aktiviert)
+\r_shadow_gloss\Aktiviere Glanzeffekte für Texturen, wenn die Textur es unterstützt. (Standard: aktiviert)
+\gl_flashblend\Aktiviere schnell gerenderte dynamische Lichter. Es wird eine große Korona anstelle von eines richtigen dynamischen Lichts dargestellt. (Standard: aktiviert)
+\r_shadow_realtime_dlight\Aktiviere das Rendern von dynamischen Lichtern, wie Explosionen und Raketen-Lichter. (Standard: aktiviert)
+\r_shadow_realtime_dlight_shadows\Aktiviere das Rendern von Schatten von dynamischen Lichtern (Standard: deaktiviert)
+\r_shadow_realtime_world\Aktiviere das Rendern der gesamten Echtzeit-Welt-Lichter. Hat einen großen Einfluss auf die Performance (Standard: deaktiviert)
+\r_shadow_realtime_world_shadows\Aktiviere das Rendern von Schatten von Echtzeit-Welt-Lichter (Standard: deaktiviert)
+\r_shadow_usenormalmap\Aktiviere die Verwendung von gerichteter Schattierung auf Texturen (Standard: aktiviert)
+\r_showsurfaces\Komplettes Deaktivieren von Texturen für sehr langsame Hardware. Starke Verbesserung der Performace, sieht aber sehr komisch aus. (Standard: deaktiviert)
+\r_glsl_offsetmapping\Effekt für den Tiefendruck von Texturen, dieser Effekt lässt Texturen mit Bumpmap aus der 2D Ebene "herausgedrückt" erscheinen (Deaktiviert: deaktiviert)
+\r_glsl_offsetmapping_reliefmapping\Bessere Qualität des Offsetmappings, hat einen großen Einfluss auf die Leistung (Standard: deaktiviert)
+\r_water\Reflektions- und Refraktionsqualität, hat einen großen Einfluss auf die Performance von Maps mit reflektierenden Oberflächen (Standard: deaktiviert)
+\r_water_resolutionmultiplier\Auflösung von Reflektion und Refraktion (Standard: gut)
+\r_coronas\Aktiviere die Korona um bestimmte Lichter (Standard: aktiviert)
+\r_coronas_occlusionquery\Verringern der Korona - Angepasst an die Sichtbarkeit (Standard: deaktiviert)
+\r_bloom\Aktiviere Überstrahlung, welche die umgebenden Pixel sehr hell erleuchteter Pixel erhellt. Dieser Effekt hat einen großen Einfluss auf die Leistung (Standard: deaktiviert)
+\r_hdr\Bessere Qualität des Überstrahlunseffekts, hat einen sehr großen Einfluss auf die Leistung (Standard: deaktiviert)
+\r_motionblur\Wert für die Bewegungsunschärfe - 0.5 empfohlen
+\r_damageblur\Wert für die Unschärfe bei einer Verletzung - 0.4 empfohlen
+
+\XonoticSettingsDialog/Audio\Audio-Einstellungen
+\bgmvolume\-
+\volume\-
+\snd_staticvolume\-
+\snd_worldchannel0volume\-
+\snd_entchannel3volume\-
+\snd_playerchannel6volume\-
+\snd_playerchannel7volume\-
+\snd_entchannel4volume\-
+\snd_playerchannel2volume\-
+\snd_playerchannel1volume\-
+\snd_speed\Ausgangsfrequenz des Tons
+\snd_channels\Anzahl der Kanäle für die Audiowiedergabe
+\snd_swapstereo\Linken und rechten Kanal der Stereowiedergabe tauschen
+\snd_spatialization_control\Aktiviere "räumlicheren" Klang (Mischung des linken und rechten Kanals um die Stereo-Trennung leicht zu verringern, für Kopfhörer).
+\cl_voice_directional\Aktiviere richtungsunabhängige Geräusche.
+\cl_voice_directional_taunt_attenuation\Distanz in der spöttige Bemerkungen anderer Spieler gehört werden können.
+\cl_autotaunt\Automatisches Abspielen einer spöttigen Bemerkung, wenn Gegner gefraggt wurden.
+\cl_sound_maptime_warning\Abspielen einer Ansage für die verbleibenden Minuten des Spiels.
+\cl_hitsound\Spiele einen Treffer-Sound, wenn der Spieler auf den gezielt wurde, getroffen wurde.
+\menu_sounds\Sound abspielen, wenn auf ein Menüitem geklickt wird oder mit dem Mauszeiger auf das Menüitem gezeit wird.
+
+\XonoticSettingsDialog/Netzwerk\Netzwerk Einstellungen
+\cl_movement\Aktiviere die Client-seitige Bewegungssimulation
+\cl_nolerp\Enable network update smoothing
+\shownetgraph\Anzeige eines Netzwerkgraphens für gesendete/empfangene Pakete und weitere Informationen
+\_cl_rate\Gib deine Netzwerkgeschwindigkeit mit dem Schieberegler an.
+\cl_netfps\Anzahl der Pakete die pro Sekunde zum Server, mit dem du verbunden bist, geschickt werden sollen.
+\cl_curl_maxdownloads\Maximale Anzahl der gleichzeitigen HTTP/FTP Downloads
+\cl_curl_maxspeed\Stelle die maximale Download Geschwindigkeit ein.
+\cl_port\Stelle den zu verwendenden UDP Port als Client ein. Wenn der Port auf 0 gesetzt ist, wird kein Port erzwungen.
+
+\XonoticSettingsDialog/Sonstiges\Sonstige Einstellungen, wie Sprache, Menü-Skins
+\showtime\Uhrzeit im Spiel anzeigen, geeignet für Screenshots
+\showdate\Datum im Spiel anzeigen, geeignet für Screenshots
+\showfps\Zeige die gerenderten Frames pro Sekunde
+\cl_showspeed\Zeige die Gescheindigkeit des Spielers
+\cl_showspeed_unit\Wähle die Einheit, in der die Geschindigkeit angezeigt werden soll, qu/s = in/s
+\cl_showacceleration\Zeige die Beschleunigung des Spielers
+\cl_showacceleration_scale\Skalierungsfaktor für das Akzelerometer
+
+\XonoticSettingsDialog/Erweiterte Einstellungen...\Erweiterte Einstellungen, in denen du jede beliebige Variable des Spiels ändern kannst
+\g_friendlyfire\Prozentualer Anteil des Schadens, der Mitspielern hinzugefügt wird
+\g_mirrordamage\Percentage of teamdamage that will be mirrored to you
+\g_tdm_teams_override\Überschreibe die Standardgröße eines Teams in Teammodi
+
+\cl_teamradar_position\-
+\cl_teamradar_size\-
+\cl_teamradar_zoommode\-
+\cl_teamradar_rotation\-
+\cl_teamradar_scale\-
+\cl_teamradar_foreground_alpha\-
+\cl_teamradar_background_alpha\Wert für die Opazität des Radar-Hintergrunds
+\viewsize\Aktiviere/Deaktiviere den HUD-Hintergrund
+\sbar_alpha_bg\Wert für die Opazität des HUD-Hintergrunds
+\sbar_color_bg_r\Roter Farbanteil des HUD-Hintergrunds
+\sbar_color_bg_g\Grüner Farbanteil des HUD-Hintergrunds
+\sbar_color_bg_b\Blauer Farbanteil des HUD-Hintergrunds
+\sbar_color_bg_team\Team-Farben Sättigung des HUD-Hintergrunds
+\cl_hidewaypoints\Lass dir verschiedene Spieltyp spezifische Wegpunkte anzeigen
+\g_waypointsprite_scale\Skalierungsfaktor für Wegpunkte
+\g_waypointsprite_alpha\Verändere den Wert der Transparenz von der Anzeige der Wegpunkte
+\cl_shownames\Lass dir den Namen des Spielers anzeigen auf den du gerade zielst.
+
+\crosshair_hittest\None: do not do hit tests for the crosshair; TrueAim: blur the crosshair when you would not hit the wall; Enemies: also enlarge the crosshair when you would hit an enemy
--- /dev/null
+0
+\XonoticSingleplayerDialog\ Empieza una campaña de un solo jugador o acción instantánea de batalla contra bots
+
+
+\XonoticMultiplayerDialog\Juega online, contra tus amigos en LAN, ver demos o cambia la configuración del jugador
+\XonoticMultiplayerDialog/Servers\Encuentra servidores para jugar
+\menu_slist_showempty\Mostrar servidores vacíos
+\menu_slist_showfull\Mostrar los servidores que no tienen espacio disponible
+\net_slist_pause\Pausa la actualización de la lista de servidores para evitar que salteen
+\XonoticMultiplayerDialog/Info\Mostrar mas información sobre el actual servidor resaltado
+\XonoticMultiplayerDialog/Bookmark\Marcar el actual servidor resaltado para que sea mas facil encontrarlo en un futuro
+\XonoticMultiplayerDialog/Havoc\Cambiar a Havoc modo, el cual tiene algunas modificaciones en el juego
+\XonoticMultiplayerDialog/Create\Crear tu propio juego
+\XonoticMultiplayerDialog/Demos\Navegar y ver demos
+\XonoticMultiplayerDialog/Player Setup\Configuración de jugador
+
+\XonoticTeamSelectDialog/Unirse al'mejor' equipo (seleccion automática)\Auto seleccionar equipo (recomendado)
+\XonoticTeamSelectDialog/red\Unirse al equipo rojo
+\XonoticTeamSelectDialog/blue\Unirse al equipo azul
+\XonoticTeamSelectDialog/yellow\Unirse al equipo amarillo
+\XonoticTeamSelectDialog/pink\Unirse al equipo rosa
+
+\timelimit_override\Límite de tiempo en minutos que cuando pase, terminara el combate
+\fraglimit_override\Cantidad de puntos necesarios antes de que termine el combate
+\menu_maxplayers\La máxima cantidad de jugadores o bots que pueden conectarse a tu servidor a la vez
+\bot_number\Cantidad de bots en tu servidor
+\skill\Especificar que experiencia tendran los bots
+\g_maplist_votable\Numero de mapas que seran mostrados en en voto dde mapas al final de un combate
+\sv_vote_simple_majority_factor\La mayoria gana
+\XonoticMultiplayerDialog/Advanced settings...\Configuración avanzada ddel servidor
+\XonoticMultiplayerDialog/Mutators...\Mutators
+\g_dodging\Activar esquivado
+\g_cloaked\Todos los jugadores son casi invisibles
+\g_footsteps\Activar sonidos de pasos
+\g_midair\solo es posible dañar a tu enemigo mientras este en el aire
+\g_vampire\Daño dado a tu enemigo sera añadido a tu propia vida
+\g_bloodloss\Cantidad de vida sera afectada por perdida de sangre
+\sv_gravity\Hace que las cosas caigan lentamente al suelo, un valor bajo significa baja gravedad
+\g_grappling_hook\Los jugadores aparecen con un gancho para aferrarse
+\g_jetpack\Los jugadores aparecen con el jetpack
+\g_pinata\Los jugadores dejan todas las armas cuando mueren
+\g_weapon_stay\Las armas quedan despues de que son tomadas
+\g_weaponarena\Seleccionando un arma, dara a todos los jugadores cual arma se eligió asi como infinita munición, y deshabilita cualquier otra toma de arma.
+\menu_weaponarena_with_laser\Tambien habilita el láser en la arena
+\g_minstagib\Los jugadores tendran Minstanex, el cual es un railgun con daño infinito. Si el jugador queda sin munición, tendra 10 segundos para buscar mas o morira. El modo de disparo secundario es un laser que no inflige daño y es bueno para hacer bromas.
+\g_nix\Xonotic sin items - en vez de recoger items, todos juegan con la misma arma. Despues de algún tiempo, comienza una cuenta regresiva, despues del cual todos juegan con otra arma.
+\g_nix_with_laser\Siempre lleva el láser como arma adicional en Nix
+\XonoticMultiplayerDialog/All\Seleccionar todos los mapas
+\XonoticMultiplayerDialog/None\Deseleccionar todos los mapas
+
+
+\XonoticMultiplayerDialog/Timedemo\Prueba cuan rápido tu computadora puede correr la demo seleccionada
+
+\fov\Campo de visión en grados de 60 a 130, 90 es el default
+\cl_bobcycle\Frecuencia de balanceo de la vista
+\cl_zoomfactor\Cuan grande es el factor de zoom cuando la tecla de zoom es presionada
+\cl_zoomsensitivity\Cuanto el zoom cambia la sensibilidad, desde 0 (baja sensibilidad) a 1 (sin cambio de sensibilidad)
+\cl_zoomspeed\Cuan rápido es la vista ampliada, deshabilitar para un zoom instantáneo
+\XonoticMultiplayerDialog/Weapon settings...\Seleccionar tu arma preferida, cambio automático y modelo de arma
+
+\cl_weaponpriority_useforcycling\Haz uso de la lista de abajo when cambia de arma con la rueda del raton
+\cl_autoswitch\Cambia automáticamente al arma recogida si es mejor que la que esta llevando
+\r_drawviewmodel\Muestra el modelo de arma
+\cl_gunalign\Posición del modelo de arma; requiere conección
+
+\crosshair_per_weapon\Configura diferentes miras para cada arma, esto ayuda si estas jugando sin un modelo de arma
+\crosshair_color_override\Tambien configura el color del punto de mira dependiendo del arma que uses actualmente
+\crosshair_size\Ajusta el tamaño del punto de mira
+\crosshair_color_alpha\Ajusta la opacidad del punto de mira
+\crosshair_color_red\Componente rojo del color del punto de mira
+\crosshair_color_green\Componente verde del color del punto de mira
+\crosshair_color_blue\Componente azul del color del punto de mira
+\sbar_hudselector\Usar el viejo diseño de HUD
+\XonoticMultiplayerDialog/Radar, HUD & puntos de referencia...\Ajustar el radar, el HUD y los puntos de referencia
+\_cl_name\Nombre con el cual aparecerás en el juego
+
+\XonoticSettingsDialog\Cambiar la configuración del juego
+\XonoticCreditsDialog\Los créditos de Xonotic
+\XonoticTeamSelectDialog\-
+\XonoticMutatorsDialog\-
+\XonoticMapInfoDialog\-
+\XonoticUserbindEditDialog\-
+\XonoticWinnerDialog\-
+\XonoticWeaponsDialog\-
+\XonoticRadarDialog\-
+\XonoticServerInfoDialog\-
+\XonoticCvarsDialog\-
+
+\XonoticQuitDialog\Salir del juego
+\XonoticQuitDialog/Yes\Volver al trabajo...
+\XonoticQuitDialog/No\Tengo algunos puntos más por hacer!
+
+\XonoticSettingsDialog/Input\configuración de entrada
+\sensitivity\Multiplicador de velocidad del ratón
+\menu_mouse_speed\Multiplicador de velocidad del raton en el menu, esto no afecta al apuntar en el juego
+\m_filter\Suaviza el movimiento del raton, pero hace menos sensible al apuntar al objetivo
+\m_pitch\Invierte el movimiento del raton en el eje Y
+\vid_dgamouse\Hace uso de la entrada DGA del raton
+\con_closeontoggleconsole\Permite el fijar un lazo de la consola para tambien cerrarla
+\sbar_showbinds\Display actions / Teclas vinculadas en la cadena se mostrará en el juego
+\cl_showpressedkeys\Mostrar el movimiento de teclas que el jugador esta presionando
+
+\XonoticSettingsDialog/Video\configuración de video
+\vid_width\Resolución de pantalla
+\vid_bitsperpixel\Cuantos bits por pixel (BPP) para renderizar, 32 es lo recomendado
+\vid_fullscreen\Habilitar el modo de pantalla completa (habilitado por defecto)
+\vid_vsync\Habilitar sincronización vertical para prevenir rasgaduras en la imagen, limitara los fps a la tasa de refresco del monitor (desactivado por defecto)
+\r_glsl\Habilitar sombreado de pixel de OpenGL 2.0 (activado por defecto)
+\gl_vbo\Haz uso de objetos de búfer de vertices para almacenar geometría estática en la memoria de video para acelerar el renderizado (Vertices y Triangulos por defecto)
+\r_depthfirst\Eliminar sobre-dibujado renderizando una version de única profundidad de la escena antes de que comience la renderización normal (desactivado por defecto)
+\gl_texturecompression\Comprimir las texturas para tarjetas de video con poca cantidad de memoria disponible (ninguno por defecto)
+\gl_finish\Hacer que la CPU wait esperen que la gpu termine cada marco, puede ayudar con algunas extrañas entradas o retraso de video en algunas máquinas (desactivado por defecto)
+\v_brightness\Brillo en negros (por defecto: 0)
+\v_contrast\Brillo en blancos (por defecto: 1)
+\v_gamma\Valor de corrección de gama inverso, un efecto de brillo que no afecta a blancos o negros (por defecto: 1.125)
+\v_contrastboost\Por cuanto multiplicar el contraste en areas oscuras (por defecto: 1)
+\r_glsl_saturation\Ajuste de saturación (0 = escala de grises, 1 = normal, 2 = sobresaturado), requiere un control de color (por defecto: 1)
+\v_glslgamma\Abilita el uso de GLSL para aplicar en la corrección gama, note que esto podría disminuir mucho el rendimiento (default: disabled)
+\r_ambient\iluminación del ambiente, si se configura en muy elevado, tiende a hacer luz en los mapas de imagen aburrida y plana (por defecto: 4)
+\r_hdr_scenebrightness\Brillo del renderizador global (por defecto: 1)
+\vid_samples\activar antialiasing, el cual suaviza los bordes en geometrias en 3D. Note que esto puede disminuir bastante el rendimiento (por defecto: desactivado)
+\v_flipped\Invertir la imagen horizontalmente (por defecto: desactivado)
+
+\XonoticSettingsDialog/Effects\configuración de efectos.
+\r_subdivisions_tolerance\Cambiar la suavidad de las curvas en el mapa (por defecto: normal)
+\gl_picmip\Cambiar la dureza de las texturas. Bajándolo efectivamente reducira el uso de la memoria de la textura, pero hará que las texturas aparezcan muy borrosas. (por defecto: bueno)
+\r_picmipworld\Si se activa, solo reduce la calidad de texturas de los modelos (activado por defecto)
+\mod_q3bsp_nolightmaps\Use mapas de alta resolución, hara que se vea lindo pero reducira la memoria de video (activado por defecto)
+\cl_particles_quality\Multiplicador de cantidad de partículas. Menos significa menos partículas, lo cual dara mejor rendimiento (por defecto: 0.5)
+\r_drawparticles_drawdistance\Las partículas que se alejen de esto no se dibujarán (por defecto: 1000)
+\cl_decals\Activar decals (agujeros de balas y sangre) (habilitado por defecto)
+\r_drawdecals_drawdistance\Los decals que se alejen de esta distancia no se dibujarán (por defecto: 300)
+\cl_decals_time\Tiempo en segundos antes de que los decals desaparezcan (por defecto: 2)
+\cl_gentle\Reemplazar sangre y tripas por cosas que no tengan nada de gore (desactivado por defecto)
+\cl_nogibs\Reduce la cantidad de tripas o lo remueve completamente (por defecto: muchos)
+\v_kicktime\Cuanto tiempo se verá el ultimo daño (por defecto: 0)
+\gl_texture_anisotropy\Calidad de filtrado anisotrópico (por defecto: 1x)
+\r_glsl_deluxemapping\Usar efectos de iluminado por pixel (activado por defecto)
+\r_shadow_gloss\Activar el uso de glossmaps en texturas soportandolo (activado por defecto)
+\gl_flashblend\Activar luces dinámicas por renderizado de coronas en vez de iluminación dinámica real (desactivado por defecto)
+\r_shadow_realtime_dlight\Activar renderizado de luces dinámicas como explosiones y luces de cohete (activado por defecto)
+\r_shadow_realtime_dlight_shadows\Activar renderizado de sombras de luces dinamicas (desactivado por defecto)
+\r_shadow_realtime_world\Activar renderizado de la iluminación del mundo en tiempo real en mapas que lo soporten. Note que esto puede tener un gran impacto en el rendimiento. (desactivado por defecto)
+\r_shadow_realtime_world_shadows\Activar renderizado de sombras de luces del mundo en tiempo real (desactivado por defecto)
+\r_shadow_usenormalmap\Activar el uso de sombreado direccional en texturas (activado por defecto)
+\r_showsurfaces\Desactivar texturas completamente para hardware muy lento. Esto aumentara el rendimiento en gran medida, pero se verça muy feo. (desactivado por defecto)
+\r_glsl_offsetmapping\Efecto de mapeado del desplazamiento, que hará texturas con mapas de relieve parecerse como resaltado de la superficie plana de 2D (desactivado por defecto)
+\r_glsl_offsetmapping_reliefmapping\Alta calidad de mapeado de desplazamiento, el cual también tiene un gran impacto en el rendimiento (desactivado por defecto)
+\r_water\Calidad de refleccion y refracción, tiene un gran impacto en el rendimiento en mapas de superficies reflectantes (desactivado por defecto)
+\r_water_resolutionmultiplier\Resolución de reflecciones/refracciones (por defecto: bueno)
+\r_coronas\Habilitar iluminación en corona alrededor de ciertas luces (activado por defecto)
+\r_coronas_occlusionquery\Coronas apagadas acorde a la visibilidad (activado por defecto)
+\r_bloom\Activar efecto bloom, que ilumina los píxeles vecinos de píxeles muy brillantes.Tiene un gran impacto en el rendimiento. (desactivado por defecto)
+\r_hdr\Versión de gran calidad de bloom, que tiene un gran impacto en el rendimiento. (desactivado por defecto)
+\r_motionblur\Nivel de desenfoque de movimiento - 0.5 recomendado
+\r_damageblur\Cantidad de desenfoque de movimiento en presencia de daños - 0.4 recomendado
+
+\XonoticSettingsDialog/Audio\configuración de audio
+\bgmvolume\-
+\volume\-
+\snd_staticvolume\-
+\snd_worldchannel0volume\-
+\snd_entchannel3volume\-
+\snd_playerchannel6volume\-
+\snd_playerchannel7volume\-
+\snd_entchannel4volume\-
+\snd_playerchannel2volume\-
+\snd_playerchannel1volume\-
+\snd_speed\Frecuencia de salida del sonido
+\snd_channels\Número de canales para la salida del sonido
+\snd_swapstereo\Invertir canales izquierda o derecha
+\snd_spatialization_control\Activar espacialización (mezcla ligeramente el canal derecho e izquierdo para disminuir la separación estereo un poco en los auriculares)
+\cl_voice_directional\Activar voces direccionales
+\cl_voice_directional_taunt_attenuation\Distancia desde el cual las burlas pueden escucharse
+\cl_autotaunt\automáticamente burlarse del enemigo al anotar puntos
+\cl_sound_maptime_warning\Sonido del anunciante que te indica el tiempo restante del combate
+\cl_hitsound\Reproduce un sonido indicador de anotacion cuando disparas a un enemigo
+\menu_sounds\Reproduce sonidos cuando se clickea o se posiciona sobre un item del menú
+
+\XonoticSettingsDialog/Network\configuración de la red
+\cl_movement\Activar predicción de movimiento del lado del cliente
+\cl_nolerp\Activar actualización suave en la red
+\shownetgraph\Activar un gráfico de tamaño de paquetes y otra información
+\_cl_rate\Especificar tu velocidad de conección con este separador
+\cl_netfps\Cuantos paquetes de entrada mandar a un servidor por cada segundo
+\cl_curl_maxdownloads\Número máximo de descargas concurrentes de HTTP/FTP
+\cl_curl_maxspeed\Velocidad de descarga máxima
+\cl_port\Forzar al cliente a usar un puerto elegido a menos que se establezca en 0
+
+\XonoticSettingsDialog/Misc\configuración misc
+\showtime\Mostrar la hora y el día actual, útil en capturas de pantalla
+\showdate\Mostrar el día actual, útil en capturas de pantalla
+\showfps\Mostrar tus marcos/frames por segundo
+\cl_showspeed\Mostrar la velocidad del jugador
+\cl_showspeed_unit\Seleccionar la velocidad del velocímetro. qu/s = in/s
+\cl_showacceleration\Mostrar la aceleración del jugador
+\cl_showacceleration_scale\Cambiar el acelerómetro por este multiplicador de escala
+
+\XonoticSettingsDialog/configuración avanzada...\configuracion avanzada donde puedes ajustar cada variable del juego
+\g_friendlyfire\Porcentaje de daño infligido a tus compañeros de equipo
+\g_mirrordamage\Porcentaje de daño de equipo que se reflejará a ti
+\g_tdm_teams_override\Sobreescribir la cantidad de equipos por defecto de los modos en equipo
+
+\cl_teamradar_position\-
+\cl_teamradar_size\-
+\cl_teamradar_zoommode\-
+\cl_teamradar_rotation\-
+\cl_teamradar_scale\-
+\cl_teamradar_foreground_alpha\-
+\cl_teamradar_background_alpha\Valor de opacidad del radar de fondo
+\viewsize\Enable/Desavilitar el HUD de fondo
+\sbar_alpha_bg\alor de opacidad del HUD de fondo
+\sbar_color_bg_r\Componente rojo del HUD de fondo
+\sbar_color_bg_g\Componente verde del HUD de fondo
+\sbar_color_bg_b\Componente azul del HUD de fondo
+\sbar_color_bg_team\Saturacion del color de equipo del HUD de fondo
+\cl_hidewaypoints\Mostrar indicadores de ubicación/caminos específicos de diferentes tipos de juego
+\g_waypointsprite_scale\Escala del multiplicador de los indicadores de ubicación/caminos
+\g_waypointsprite_alpha\Transparencia del control de los indicadores de ubicación/caminos
+\cl_shownames\Mostrar el nombre del jugador al que estás apuntando
+
+\crosshair_hittest\Ninguno: no hacer pruebas de aciertos para el punto de mira; Apuntado: difuminar la punta de mira cuando no se apunta contra la pared; Enemigos: también ampliar el punto de mira cuando aciertas al enemigo
--- /dev/null
+0
+\XonoticSingleplayerDialog\Jouer en mode un joueur contre des adversaires contrôlés par l'ordinateur
+
+
+\XonoticMultiplayerDialog\Jouer en ligne avec des amis en réseau local ou sur Internet
+\XonoticMultiplayerDialog/Servers\Trouver des serveurs pour y jouer dessus
+\menu_slist_showempty\Montrer les serveurs vides
+\menu_slist_showfull\Montrer les serveurs où toutes les places sont prises
+\net_slist_pause\Ne met pas à jour la liste de serveurs pour éviter de "glisser" sur un autre serveur
+\XonoticMultiplayerDialog/Info\Montrer plus d'information sur le serveur séléctionné
+\XonoticMultiplayerDialog/Bookmark\Mettre le serveur en haut de la liste pour pouvoir le repérer plus facilement plus tard
+\XonoticMultiplayerDialog/Havoc\Changer au mode Havoc qui comporte des modifications sur le jeu
+\XonoticMultiplayerDialog/Create\Héberger votre propre partie
+\XonoticMultiplayerDialog/Demos\Regarder des Vidéos pré-enregistrées
+\XonoticMultiplayerDialog/Player Setup\Personaliser vos paramètres
+
+\XonoticTeamSelectDialog/join 'best' team (auto-select)\Auto-séléction de l'équipe qui a le plus besoin de vous (recommandé)
+\XonoticTeamSelectDialog/red\Joindre l'équipe rouge
+\XonoticTeamSelectDialog/blue\Joindre l'équipe bleue
+\XonoticTeamSelectDialog/yellow\Joindre l'équipe jaune
+\XonoticTeamSelectDialog/pink\Joindre l'équipe rose
+
+\timelimit_override\Limite de temps au match, le match se finit quand elle est atteinte
+\fraglimit_override\Limite de tués pour le match, le match se finit quand elle est atteinte
+\menu_maxplayers\Le nombre maximum de personnes pouvant jouer sur votre serveur en même temps
+\bot_number\Nombre d'adversaires ordinateur
+\skill\Spécifier la difficulté des adversaires ordinateur
+\g_maplist_votable\Le nombre de cartes pouvant être votées à la fin du match
+\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_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
+\g_vampire\Les dégâts faits à vos enemies vous font gagner de la santé
+\g_bloodloss\Si vous avez moins de santé que spécifié ici, vous perdrez du sang et mourez progressivement
+\sv_gravity\Vous tombez plus lentement, comme sur la lune
+\g_grappling_hook\Tous les joueurs ont un grappin
+\g_jetpack\Tous les joueurs ont un jetpack
+\g_pinata\Tous les joueurs lâchent toutes leurs armes quand ils meurent
+\g_weapon_stay\Les armes restent où elles sont quand elles sont prises sur la carte
+\g_weaponarena\Séléctionner une arène d'une seule arme donne des munitions illimitées pour cette arme, et désactive toutes les autres armes
+\menu_weaponarena_with_laser\Also enable the laser in the weapon arena
+\g_minstagib\Tous les joueurs reçoivent un MinstaNex, qui est un sniper hyperpuissant qui tue d'un coup. Si vous n'avez plus de munitions, vous mourez progressivement.
+\g_nix\No Items Xonotic; tous les joueurs ont la même arme en même temps, et on change d'arme régulièrement
+\g_nix_with_laser\Porter le laser avec l'arme du No Items Xonotic
+\XonoticMultiplayerDialog/All\Séléctionner toutes les cartes
+\XonoticMultiplayerDialog/None\Déséléctionner toutes les cartes
+
+
+\XonoticMultiplayerDialog/Timedemo\Faire un test de performance en utilisant la vidéo choisie
+
+\fov\Champ de vision en degrés, par défaut 90, certains joueurs préfèrent entre 110 et 130
+\cl_bobcycle\Effet de "tremblement" de la caméra en courant
+\cl_zoomfactor\Facteur de Zoom
+\cl_zoomsensitivity\Changer la sensitivité du Zoom: 0 est la plus basse, 1 ne comporte pas de changement par rapport au mode dézoomé
+\cl_zoomspeed\Facteur "d'adoucissement" du Zoom, 0 désactive complètement
+\XonoticMultiplayerDialog/Weapon settings...\Paramétrer les armes (affichage, priorité)
+
+\cl_weaponpriority_useforcycling\Utiliser la liste de priorité pour le changement d'armes à la molette
+\cl_autoswitch\Automatiquement changer d'arme si vous avez une meilleure arme que celle que vous portez
+\r_drawviewmodel\Afficher l'arme à la permière personne
+\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_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
+\sbar_hudselector\Utiliser l'ancienne interface HUD
+\XonoticMultiplayerDialog/Radar, HUD & Waypoints...\Ajuster les paramètres de l'interface, de la mini-carte et des Waypoints
+\_cl_name\Pseudonyme utilisé pour vous reconnaître dans le jeu
+
+\XonoticSettingsDialog\Changer les paramètres du jeu
+\XonoticCreditsDialog\Les Crédits de Xonotic
+\XonoticTeamSelectDialog\-
+\XonoticMutatorsDialog\-
+\XonoticMapInfoDialog\-
+\XonoticUserbindEditDialog\-
+\XonoticWinnerDialog\-
+\XonoticWeaponsDialog\-
+\XonoticRadarDialog\-
+\XonoticServerInfoDialog\-
+\XonoticCvarsDialog\-
+
+\XonoticQuitDialog\Quitter Xonotic
+\XonoticQuitDialog/Yes\Retour au boulot...
+\XonoticQuitDialog/No\'Faut que je fragge plus de monde!
+
+\XonoticSettingsDialog/Input\Paramètres contrôle souris/clavier
+\sensitivity\Sensitivité de la souris
+\menu_mouse_speed\Sensitivité de la souris dans les menus, n'affecte pas le jeu
+\m_filter\Adoucit le mouvement de souris, mais crée une légère latence de souris
+\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/Video\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é)
+\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é)
+\gl_texturecompression\Compresser les textures pour économiser de la mémoire graphique (par défaut: aucun)
+\gl_finish\Faire attendre le processeur que le rendu graphique se finisse pour éviter des problèmes d'affichage divers (par défaut: désactivé)
+\v_brightness\Luminosité du noir (par défaut: 0)
+\v_contrast\Luminosité du blanc (par défaut: 1)
+\v_gamma\Correction du gamma ne changeant pas la luminosité du noir ou du blanc (par défaut: 1.125)
+\v_contrastboost\Multiplier le constraste dans des salles sombres (par défaut: 1)
+\r_glsl_saturation\Ajustement de la saturation (0 = noir et blanc, 1 = normal, 2 = saturé) des couleurs (par défaut: 1)
+\v_glslgamma\Utiliser GLSL pour corriger le gamma, attention, cela risque d'augementer fortement l'utilisation de ressources (par défaut: désactivé)
+\r_ambient\Lumière ambiente, si elle est trop élévée, les cartes auront un éclairage plus "plat" et moins contrasté
+\r_hdr_scenebrightness\Éclairage du rendu global (par défaut: 1)
+\vid_samples\Activer l'anticrénelage, réduit l'effet d'escalier sur les modèles 3D, mais augmente fortement l'utilisation des ressources
+\v_flipped\Mode mirroir (par défaut: désactivé)
+
+\XonoticSettingsDialog/Effects\Paramètres des effets graphiques
+\r_subdivisions_tolerance\Ajuster la qualité des modèles 3D de carte (courbes, tuyaux) (par défaut: normal)
+\gl_picmip\Ajuster la qualité des textures. La baisser diminue l'utilisation des ressources, mais rend les textures floues. (par défaut: normal)
+\r_picmipworld\If set, only reduce the texture quality of models (default: enabled)
+\mod_q3bsp_nolightmaps\Utiliser des lightmaps haute résolution, augmente l'utilisation des resources, mais rend les lightmaps plus nettes (par défaut: activé)
+\cl_particles_quality\Nombre de particules; moins de particules consomment moins de ressources (par défaut: 0.5)
+\r_drawparticles_drawdistance\Toutes les particules qui sont plus loin que cette distance ne seront pas affichées (par défaut: 1000)
+\cl_decals\Activer les marques d'impacts et de sang (par défaut: activé)
+\r_drawdecals_drawdistance\Toutes les marques d'impacts qui sont plus loin que cette distance ne seront pas affichées (par défaut: 300)
+\cl_decals_time\Temps en secondes avant que les marques d'impacts disparaissent (par défaut: 2 secondes)
+\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_shadow_realtime_dlight\Activer le rendu des lumières dynamiques en temps réel (par défaut: activé)
+\r_shadow_realtime_dlight_shadows\Activer le rendu des ombres depuis les lumières dynamiques en temps réel (par défaut: désactivé)
+\r_shadow_realtime_world\Activer le rendu des lumières carte en temps réel, a un gros impact sur la performance (par défaut: désactivé)
+\r_shadow_realtime_world_shadows\Activer le rendu des ombres depuis les lumières carte en temps réel, a un impact sur la performance aussi (par défaut: désactivé)
+\r_shadow_usenormalmap\Utiliser des effets d'ombrage de lumière sur les textures (par défaut: activé)
+\r_showsurfaces\Désactiver les textures et les remplacer par des couleurs unies. Utile pour les configurations très faible, mais laid. (par défaut: désactivé)
+\r_glsl_offsetmapping\Activer l'effet de relief sur les textures, a un léger impact sur la performance (par défaut: désactivé)
+\r_glsl_offsetmapping_reliefmapping\Augmenter la qualité des effets de relief sur les textures, a un gros impact sur la performance (par défaut: désactivé)
+\r_water\Activer des reflets de réflecion et de réfraction d'eau et des portails Warpzone (par défaut: désactivé)
+\r_water_resolutionmultiplier\Qualité des reflets d'eau et des portails Warpzone, l'augmenter a un gros impact sur la performance (par défaut: bon)
+\r_coronas\Activer des effets d'éblouissement peu gourmands (par défaut: activé)
+\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é
+
+\XonoticSettingsDialog/Audio\Audio settings
+\bgmvolume\-
+\volume\-
+\snd_staticvolume\-
+\snd_worldchannel0volume\-
+\snd_entchannel3volume\-
+\snd_playerchannel6volume\-
+\snd_playerchannel7volume\-
+\snd_entchannel4volume\-
+\snd_playerchannel2volume\-
+\snd_playerchannel1volume\-
+\snd_speed\Fréquence de la sortie audio
+\snd_channels\Nombre de canaux pour la sortie audio
+\snd_swapstereo\Échanger les canneaux stéréo gauche/droite
+\snd_spatialization_control\Essayer de diminuer le "constraste" entre la partie gauche et droite du casque audio pour un meilleur son
+\cl_voice_directional\Activer les voix des personnages sur la carte
+\cl_voice_directional_taunt_attenuation\Distance à laquelle les voix sont audibles
+\cl_autotaunt\Automatiquement narguer les enemis quand vous les tuez
+\cl_sound_maptime_warning\Voix (en anglais) qui vous dit le temps restant avant la fin du match
+\cl_hitsound\Jouer un son quand vous touchez un enemi
+\menu_sounds\Jouer des sons en cliquant ou en passant la souris sur des options
+
+\XonoticSettingsDialog/Network\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
+\_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_curl_maxspeed\Vitesse maximum de téléchargement
+\cl_port\Forcer le client à passer par le port défini (UDP) s'il n'est pas 0
+
+\XonoticSettingsDialog/Misc\Autres paramètres
+\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
+\cl_shownames\Afficher le nom du joueur que vous pointez avec votre viseur
+
+\crosshair_hittest\Aucun: aucun effet de viseur - TrueAim: rendre le viseur flou si vous risquez de vous blesser vous même ou un équipier - Enemis: rendre le viseur plus grand si vous pouvez toucher un enemi
--- /dev/null
+0
+\XonoticSingleplayerDialog\Начать одиночную кампанию или быструю игру против ботов
+
+
+\XonoticMultiplayerDialog\Играть по сети, просмотреть демо или изменить настройки игрока
+\XonoticMultiplayerDialog/Servers\Поиск игровых серверов
+\menu_slist_showempty\Показывать пустые сервера
+\menu_slist_showfull\Показывать полные сервера, не имеющие свободных мест
+\net_slist_pause\Приостановить обновление списка серверов для предотвращения их скакания
+\XonoticMultiplayerDialog/Info\Показать больше сведений о выбранном сервере
+\XonoticMultiplayerDialog/Bookmark\Добавить выбранный сервер в закладки, так найти его будет быстрее
+\XonoticMultiplayerDialog/Havoc\Change to Havoc mode which has some modifications to the gameplay
+\XonoticMultiplayerDialog/Create\Запустить собственную игру
+\XonoticMultiplayerDialog/Demos\Список демо для просмотра
+\XonoticMultiplayerDialog/Player Setup\Изменить настройки игрока
+
+\XonoticTeamSelectDialog/join 'best' team (auto-select)\Автовыбор команды (советуется)
+\XonoticTeamSelectDialog/red\Присоединиться к красной команде
+\XonoticTeamSelectDialog/blue\Присоединиться к синей команде
+\XonoticTeamSelectDialog/yellow\Присоединиться к жёлтой команде
+\XonoticTeamSelectDialog/pink\Присоединиться к розовой команде
+
+\timelimit_override\Ограничение времени в минутах, состязание закончится при его достижении
+\fraglimit_override\Количество очков, необходимых для завершения состязания
+\menu_maxplayers\Предельное количество игроков и ботов, которые могут быть одновременно подключены к серверу
+\bot_number\Количество ботов на сервере
+\skill\Насколько искусными будут боты
+\g_maplist_votable\Количество карт, предлагаемых в голосовании после состязания
+\sv_vote_simple_majority_factor\Простое большинство выигрывает голосование
+\XonoticMultiplayerDialog/Advanced settings...\Дополнительные серверные настройки
+\XonoticMultiplayerDialog/Mutators...\Мутаторы и арены оружий
+\g_cloaked\Все игроки почти невидимы
+\g_footsteps\Включить звуки шагов
+\g_midair\Только находящиеся в воздухе получают повреждения
+\g_vampire\Урон, наносимый противнику, прибавляется к собственному здоровью
+\g_bloodloss\Величина здоровья, ниже которой наступает оглушение из-за потери крови
+\sv_gravity\Падение происходит медленнее. Чем ниже значение, тем ниже гравитация
+\g_grappling_hook\Передвижение и полёты на подтягивающем крюке
+\g_jetpack\Полёты на реактивном ранце
+\g_pinata\Во время смерти выбрасывается всё оружие, которое нёс "убитый", что даёт возможность его подобрать
+\g_weapon_stay\Всё собранное оружие остаётся после возрождений
+\g_weaponarena\Selecting a weapon arena will give all players that weapon at spawn as well as unlimited ammo, and disable all other weapon pickups.
+\menu_weaponarena_with_laser\Also enable the laser in the weapon arena
+\g_minstagib\Players will be given the Minstanex, which is a railgun with infinite damage. If the player runs out of ammo, he will have 10 seconds to find some or if he fails to do so, face death. The secondary fire mode is a laser which does not inflict any damage and is good for doing trickjumps.
+\g_nix\No items Xonotic - instead of pickup items, everyone plays with the same weapon. After some time, a countdown will start, after which everyone will switch to another weapon.
+\g_nix_with_laser\Always carry the laser as an additional weapon in Nix
+\XonoticMultiplayerDialog/All\Выбрать все карты
+\XonoticMultiplayerDialog/None\Снять выделение со всех карт
+
+
+\XonoticMultiplayerDialog/Timedemo\Замерить, насколько быстро компьютер способен играть выбранное демо
+
+\fov\Угол обзора в градусах, допустимы значения от 60 то 130, по умолчанию 90
+\cl_bobcycle\Частота качания вида
+\cl_zoomfactor\How big the zoom factor is when the zoom button is pressed
+\cl_zoomsensitivity\How zoom changes sensitivity, from 0 (lower sensitivity) to 1 (no sensitivity change)
+\cl_zoomspeed\How fast the view will be zoomed, disable to zoom instantly
+\XonoticMultiplayerDialog/Weapon settings...\Set your most preferred weapons, autoswitch and weapon model settings
+
+\cl_weaponpriority_useforcycling\Make use of the list above when cycling through weapons with the mouse wheel
+\cl_autoswitch\Automatically switch to newly picked up weapons if they are better than what you are carrying
+\r_drawviewmodel\Draw the weapon model
+\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_size\Настроить размер перекрестья
+\crosshair_color_alpha\Настроить прозрачность перекрестья
+\crosshair_color_red\Красная составляющая цвета перекрестья
+\crosshair_color_green\Зелёная составляющая цвета перекрестья
+\crosshair_color_blue\Синяя составляющая цвета перекрестья
+\sbar_hudselector\Use the old HUD layout
+\XonoticMultiplayerDialog/Radar, HUD & Waypoints...\Настроить радар, HUD и отметки
+\_cl_name\Имя, под которым вы появитесь в игре
+
+\XonoticSettingsDialog\Изменить настройки игры
+\XonoticCreditsDialog\The Xonotic credits
+\XonoticTeamSelectDialog\-
+\XonoticMutatorsDialog\-
+\XonoticMapInfoDialog\-
+\XonoticUserbindEditDialog\-
+\XonoticWinnerDialog\-
+\XonoticWeaponsDialog\-
+\XonoticRadarDialog\-
+\XonoticServerInfoDialog\-
+\XonoticCvarsDialog\-
+
+\XonoticQuitDialog\Выйти из игры
+\XonoticQuitDialog/Yes\Пора саночки возить...
+\XonoticQuitDialog/No\Остались здесь ещё дела!
+
+\XonoticSettingsDialog/Input\Настройки устройств ввода
+\sensitivity\Множитель скорости мыши
+\menu_mouse_speed\Множитель скорости мыши в меню, не влияет на прицеливание в игре
+\m_filter\Сглаживает движения мыши, но значительно ухудшает отзывчивость прицеливания
+\m_pitch\Обратить движения мыши по вертикальной оси
+\vid_dgamouse\Использовать DGA ввод для мыши
+\con_closeontoggleconsole\Использовать привязку для открытия консоли также и для её сокрытия
+\sbar_showbinds\Отображать действия / привязанные клавиши в строках, показываемых во время игры
+\cl_showpressedkeys\Показывать, какие кнопки движений нажимает игрок
+
+\XonoticSettingsDialog/Video\Настройки изображения
+\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)
+\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)
+\gl_texturecompression\Compress the textures for video cards with small amounts of video memory available (default: None)
+\gl_finish\Make the CPU wait for the GPU to finish each frame, can help with some strange input or video lag on some machines (default: disabled)
+\v_brightness\Яркость чёрного (по умолчанию: 0)
+\v_contrast\Яркость белого (по умолчанию: 1)
+\v_gamma\Inverse gamma correction value, a brightness effect that does not affect white or black (default: 1.125)
+\v_contrastboost\By how much to multiply the contrast in dark areas (default: 1)
+\r_glsl_saturation\Saturation adjustment (0 = grayscale, 1 = normal, 2 = oversaturated), requires GLSL color control (default: 1)
+\v_glslgamma\Enable use of GLSL to apply gamma correction, note that it might decrease performance by a lot (default: disabled)
+\r_ambient\Окружающее освещение, если выставлено слишком сильным, приводит к тому, что свет на картах выглядит блёклым и плоским (по умолчанию: 4)
+\r_hdr_scenebrightness\Общая яркость вывода (по умолчанию: 1)
+\vid_samples\Enable antialiasing, which smooths the edges of 3D geometry. Note that it might decrease performance by quite a lot (default: disabled)
+\v_flipped\Poor man's left handed mode (default: off)
+
+\XonoticSettingsDialog/Effects\Настройки эффектов
+\r_subdivisions_tolerance\Change the smoothness of the curves on the map (default: normal)
+\gl_picmip\Change the sharpness of the textures. Lowering it will effectively reduce texture memory usage, but make the textures appear very blurry. (default: good)
+\r_picmipworld\If set, only reduce the texture quality of models (default: enabled)
+\mod_q3bsp_nolightmaps\Use high resolution lightmaps, which will look pretty but use up some extra video memory (default: enabled)
+\cl_particles_quality\Multiplier for amount of particles. Less means less particles, which in turn gives for better performance (default: 0.5)
+\r_drawparticles_drawdistance\Particles further away than this will not be drawn (default: 1000)
+\cl_decals\Enable decals (bullet holes and blood) (default: enabled)
+\r_drawdecals_drawdistance\Decals further away than this will not be drawn (default: 300)
+\cl_decals_time\Time in seconds before decals fade away (default: 2)
+\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_shadow_realtime_dlight\Enable rendering of dynamic lights such as explosions and rocket lights (default: enabled)
+\r_shadow_realtime_dlight_shadows\Enable rendering of shadows from dynamic lights (default: disabled)
+\r_shadow_realtime_world\Enable rendering of full realtime world lighting on maps that support it. Note that this might have a big impact on performance. (default: disabled)
+\r_shadow_realtime_world_shadows\Enable rendering of shadows from realtime world lights (default: disabled)
+\r_shadow_usenormalmap\Enable use of directional shading on textures (default: enabled)
+\r_showsurfaces\Disable textures completely for very slow hardware. This gives a huge performance boost, but looks very ugly. (default: disabled)
+\r_glsl_offsetmapping\Offset mapping effect that will make textures with bumpmaps appear like they "pop out" of the flat 2D surface (default: disabled)
+\r_glsl_offsetmapping_reliefmapping\Higher quality offset mapping, which also has a huge impact on performance (default: disabled)
+\r_water\Reflection and refraction quality, has a huge impact on performance on maps with reflecting surfaces (default: disabled)
+\r_water_resolutionmultiplier\Resolution of reflections/refractions (default: good)
+\r_coronas\Enable corona flares around certain lights (default: enabled)
+\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
+
+\XonoticSettingsDialog/Audio\Настройки звука
+\bgmvolume\-
+\volume\-
+\snd_staticvolume\-
+\snd_worldchannel0volume\-
+\snd_entchannel3volume\-
+\snd_playerchannel6volume\-
+\snd_playerchannel7volume\-
+\snd_entchannel4volume\-
+\snd_playerchannel2volume\-
+\snd_playerchannel1volume\-
+\snd_speed\Частота дискретизации для вывода звука
+\snd_channels\Число каналов для вывода звука
+\snd_swapstereo\Поменять местами правый и левый каналы
+\snd_spatialization_control\Enable spatialization (blend the right and left channel slightly to decrease stereo separation a bit for headphones)
+\cl_voice_directional\Enable directional voices
+\cl_voice_directional_taunt_attenuation\Расстояние, с которого будут слышны насмешки
+\cl_autotaunt\Автоматически насмехаться над противниками после их поражений
+\cl_sound_maptime_warning\Звук предупреждения, сообщающий оставшиеся до конца состязания минуты
+\cl_hitsound\Играть звук оповещения, когда выстрел достигает противника
+\menu_sounds\Играть звуки при взаимодействии с меню
+
+\XonoticSettingsDialog/Network\Настройки сети
+\cl_movement\Включить предсказание движения на стороне клиента
+\cl_nolerp\Enable network update smoothing
+\shownetgraph\Показывать график размеров пакетов и других сведений
+\_cl_rate\Укажите скорость вашей сети с помощью этого ползунка
+\cl_netfps\Сколько пакетов посылать серверу каждую секунду
+\cl_curl_maxdownloads\Предел одновременных HTTP/FTP загрузок
+\cl_curl_maxspeed\Предел скорости скачивания
+\cl_port\Force client to use chosen port unless it is set to 0
+
+\XonoticSettingsDialog/Misc\Разные настройки
+\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\Управление прозрачностью отметок
+\cl_shownames\Показывать имя игрока, в которого вы целитесь
+
+\crosshair_hittest\Отключена: нет проверок перекрестья на попадание; TrueAim: размывать перекрестье, когда не наведено на стену; Враги: также увеличивать перекрестье, когда наведено на врага
awk '/^seta? g_/ { print $2; }' "$b" | sort -u | tr -d '\r' > "$B"
diff "$A" "$B" | grep '^[<>]' | sort
rm -f "$A" "$B"
- exit 1
+ echo "Please wait for 30 seconds, so you have had enough time to read this..."
+ sleep 30
fi
done
**Core Team
Rudolf "divVerent" Polzer
--z-
+Tyler "-z-" Mulligan
Merlijn Hofstra
morphed
mand1nga
-tZork
-
+Jakob "tZork" Markström Gröhn
**Coordinators
*Art
-Diabolik a.k.a Dib
+Sahil "DiaboliK" Singhal
*2D Art / Web
--z- (web / game)
+Tyler "-z-" Mulligan (web / game)
FruitieX (game / web)
*3D Art
*Concept Art
LJFHutch
-theShadow
+Pearce "theShadow" Michal
+
+*Animation
+Sahil "DiaboliK" Singhal
+nifrek
*Level Design
FruitieX
MirceaKitsune
+Jakob "tZork" Markström Gröhn
*Music / Sound FX
mand1nga
*Game Code
Rudolf "divVerent" Polzer
FruitieX
-tZork
+Jakob "tZork" Markström Gröhn
*Marketing / PR
--z-
+Tyler "-z-" Mulligan
mand1nga
*Legal
DarkPlaces
by Forest "LordHavoc" Hale
+**Translators
+
+*German
+Rudolf "divVerent" Polzer
+
+*Finnish
+Henry "Exitium" Sanmark
+
+*French
+Calinou
+
+*Portuguese
+Ricardo "Hellgardia" Silva
+
+*Romanian
+MirceaKitsune
+
+*Russian
+Lord Canistra
+Nikoli
+
**Active Contributors
Antonio "terencehill" Piu
Ben "MooKow" Banker
kojn
Maik "SavageX" Merten
MrBougo
+Ruszkai "C.Brutail" Ákos
Samual Lenks
+Severin "sev" Meyer
Stephan "esteel" Stahl
Wolfgang "Blub\0" Bumiller
+SoulKeeper_p
**Past Contributors
Alexander "motorsep" Zubov
Robert "ai" Kuroto
Ronan
Sajt
-Severin "sev" Meyer
Shaggy
Shank
Simon O'Callaghan
--- /dev/null
+**Dévlopeurs principaux
+
+Rudolf "divVerent" Polzer
+Tyler "-z-" Mulligan
+Merlijn Hofstra
+morphed
+mand1nga
+tZork
+
+
+**Dévlopeurs secondaires
+
+*Art
+Diabolik a.k.a Dib
+
+*Textures / Web
+Tyler "-z-" Mulligan (web / game)
+FruitieX (game / web)
+
+*Modèles 3D
+morphed
+
+*Concepts
+LJFHutch
+Pearce "theShadow" Michal
+
+*Création des cartes
+FruitieX
+MirceaKitsune
+
+*Musique / Sons
+mand1nga
+Merlijn Hofstra
+remaxim
+
+*Améliorations du moteur et QA
+Rudolf "divVerent" Polzer
+
+*Code source du jeu
+Rudolf "divVerent" Polzer
+FruitieX
+tZork
+
+*Marketing / Management du Projet
+Tyler "-z-" Mulligan
+mand1nga
+
+*Légalité
+Rudolf "divVerent" Polzer
+Merlijn Hofstra
+
+**Moteur du jeu
+DarkPlaces
+by Forest "LordHavoc" Hale
+
+**Traducteurs
+
+*Allemand
+Rudolf "divVerent" Polzer
+
+*Finnish (TODO TRANSLATE THIS)
+Henry "Exitium" Sanmark
+
+*Français
+Calinou
+
+*Portugais
+Ricardo "Hellgardia" Silva
+
+*Roumain
+MirceaKitsune
+
+*Russe
+Lord Canistra
+Nikoli
+
+**Contribueurs actifs
+Antonio "terencehill" Piu
+Ben "MooKow" Banker
+Calinou
+chooksta
+Cuinn "Cuinnton" Herrick
+Kristian "morfar" Johansson
+kojn
+Maik "SavageX" Merten
+MrBougo
+Ruszkai "C.Brutail" Ákos
+Samual Lenks
+Severin "sev" Meyer
+Stephan "esteel" Stahl
+Wolfgang "Blub\0" Bumiller
+
+**Anciens contribueurs
+Alexander "motorsep" Zubov
+Amos "torus" Dudley
+Andreas "Black" Kirsch
+Attila "WW3" Houtkooper
+BigMac
+blkrbt
+Braden "meoblast001" Walters
+Brain Younds
+Chris "amethyst7" Matz
+Christian Ice
+Clinton "Kaziganthe" Freeman
+Dan "Digger" Korostelev
+Dan "Wazat" Hale
+Donkey
+dstrek
+Dustin Geeraert
+Edgenetwork
+Edward "Ed" Holness
+Eric "Munyul Verminard" Sambach
+Fabien "H. Reaper" Tschirhart
+FrikaC
+Garth "Zombie" Hendy
+Gerd "Elysis" Raudenbusch
+Gottfried "Toddd" Hofmann
+Henning "Tymo" Janssen
+"Innovati"
+Jitspoe
+Jody Gallagher
+Juergen "LowDragon" Timm
+KadaverJack
+Kevin "Tyrann" Shanahan
+Kurt Dereli
+lcatlnx
+Lee David Ash
+Lee Vermeulen
+leileilol
+Marius "GreEn`mArine" Shekow
+Marko "Urre" Permanto
+Mathieu "Elric" Olivier
+Mattrew "Tronyn" Rye
+MauveBib
+Mephisto
+michaelb
+Michael "Tenshihan" Quinn
+Munyul
+Netzwerg
+NoelCower
+Parapraxis
+Paul "Strahlemann" Evers
+Petithomme
+Q1 Retexturing Project
+Qantourisc
+Rick "Rat" Kelley
+Robert "ai" Kuroto
+Ronan
+Sajt
+Severin "sev" Meyer
+Shaggy
+Shank
+Simon O'Callaghan
+SomeGuy
+Spike
+Spirit
+Steve Vermeulen
+Supajoe
+Tei
+terencehill
+Tomaz
+Ulrich Galbraith
+Vortex
+William Libert
+William "Willis" Weilep
+Yves "EviLair" Allaire
+Zenex